@panneau/app 3.0.222 → 3.0.224
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/css/styles.css +1 -1
- package/package.json +42 -43
- package/lib/index.js +0 -2771
package/lib/index.js
DELETED
@@ -1,2771 +0,0 @@
|
|
1
|
-
'use strict';
|
2
|
-
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
4
|
-
|
5
|
-
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
6
|
-
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
7
|
-
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
8
|
-
var React = require('react');
|
9
|
-
var PropTypes = require('prop-types');
|
10
|
-
var pathToRegexp = require('path-to-regexp');
|
11
|
-
var mitt = require('mitt');
|
12
|
-
var _createForOfIteratorHelper = require('@babel/runtime/helpers/createForOfIteratorHelper');
|
13
|
-
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
14
|
-
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
15
|
-
var _toArray = require('@babel/runtime/helpers/toArray');
|
16
|
-
var regexparam = require('regexparam');
|
17
|
-
var index_js = require('use-sync-external-store/shim/index.js');
|
18
|
-
var ActionsProvider = require('@panneau/actions');
|
19
|
-
var auth = require('@panneau/auth');
|
20
|
-
var core = require('@panneau/core');
|
21
|
-
var contexts = require('@panneau/core/contexts');
|
22
|
-
var data = require('@panneau/data');
|
23
|
-
var DisplaysProvider = require('@panneau/displays');
|
24
|
-
var FieldsProvider = require('@panneau/fields');
|
25
|
-
var FiltersProvider = require('@panneau/filters');
|
26
|
-
var FormsProvider = require('@panneau/forms');
|
27
|
-
var intl = require('@panneau/intl');
|
28
|
-
var ListsProvider = require('@panneau/lists');
|
29
|
-
var ModalsProvider = require('@panneau/modals');
|
30
|
-
var uppy = require('@panneau/uppy');
|
31
|
-
var isObject = require('lodash/isObject');
|
32
|
-
var classNames = require('classnames');
|
33
|
-
var isString = require('lodash/isString');
|
34
|
-
var _typeof = require('@babel/runtime/helpers/typeof');
|
35
|
-
var reactIntl = require('react-intl');
|
36
|
-
var hooks = require('@panneau/core/hooks');
|
37
|
-
var Alert = require('@panneau/element-alert');
|
38
|
-
var Button = require('@panneau/element-button');
|
39
|
-
var Dropdown = require('@panneau/element-dropdown');
|
40
|
-
var elementModal = require('@panneau/element-modal');
|
41
|
-
var isArray = require('lodash/isArray');
|
42
|
-
var Link = require('@panneau/element-link');
|
43
|
-
var Menu = require('@panneau/element-menu');
|
44
|
-
var Navbar = require('@panneau/element-navbar');
|
45
|
-
var Label = require('@panneau/element-label');
|
46
|
-
var ResourceList = require('@panneau/list-resource-items');
|
47
|
-
var Loading = require('@panneau/element-loading');
|
48
|
-
var ResourceForm$1 = require('@panneau/form-resource');
|
49
|
-
var utils = require('@panneau/core/utils');
|
50
|
-
var Filters = require('@panneau/filter-filters');
|
51
|
-
|
52
|
-
function _interopNamespaceDefault(e) {
|
53
|
-
var n = Object.create(null);
|
54
|
-
if (e) {
|
55
|
-
Object.keys(e).forEach(function (k) {
|
56
|
-
if (k !== 'default') {
|
57
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
58
|
-
Object.defineProperty(n, k, d.get ? d : {
|
59
|
-
enumerable: true,
|
60
|
-
get: function () { return e[k]; }
|
61
|
-
});
|
62
|
-
}
|
63
|
-
});
|
64
|
-
}
|
65
|
-
n.default = e;
|
66
|
-
return Object.freeze(n);
|
67
|
-
}
|
68
|
-
|
69
|
-
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
70
|
-
|
71
|
-
var useEffect = React__namespace.useEffect,
|
72
|
-
useLayoutEffect = React__namespace.useLayoutEffect,
|
73
|
-
useRef = React__namespace.useRef;
|
74
|
-
|
75
|
-
// React.useInsertionEffect is not available in React <18
|
76
|
-
// This hack fixes a transpilation issue on some apps
|
77
|
-
var useBuiltinInsertionEffect = React__namespace['useInsertion' + 'Effect'];
|
78
|
-
|
79
|
-
// Copied from:
|
80
|
-
// https://github.com/facebook/react/blob/main/packages/shared/ExecutionEnvironment.js
|
81
|
-
var canUseDOM = !!(typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined");
|
82
|
-
|
83
|
-
// Copied from:
|
84
|
-
// https://github.com/reduxjs/react-redux/blob/master/src/utils/useIsomorphicLayoutEffect.ts
|
85
|
-
// "React currently throws a warning when using useLayoutEffect on the server.
|
86
|
-
// To get around it, we can conditionally useEffect on the server (no-op) and
|
87
|
-
// useLayoutEffect in the browser."
|
88
|
-
var useIsomorphicLayoutEffect = canUseDOM ? useLayoutEffect : useEffect;
|
89
|
-
|
90
|
-
// useInsertionEffect is already a noop on the server.
|
91
|
-
// See: https://github.com/facebook/react/blob/main/packages/react-server/src/ReactFizzHooks.js
|
92
|
-
var useInsertionEffect = useBuiltinInsertionEffect || useIsomorphicLayoutEffect;
|
93
|
-
|
94
|
-
// Userland polyfill while we wait for the forthcoming
|
95
|
-
// https://github.com/reactjs/rfcs/blob/useevent/text/0000-useevent.md
|
96
|
-
// Note: "A high-fidelity polyfill for useEvent is not possible because
|
97
|
-
// there is no lifecycle or Hook in React that we can use to switch
|
98
|
-
// .current at the right timing."
|
99
|
-
// So we will have to make do with this "close enough" approach for now.
|
100
|
-
var useEvent = function useEvent(fn) {
|
101
|
-
var ref = useRef([fn, function () {
|
102
|
-
return ref[0].apply(ref, arguments);
|
103
|
-
}]).current;
|
104
|
-
// Per Dan Abramov: useInsertionEffect executes marginally closer to the
|
105
|
-
// correct timing for ref synchronization than useLayoutEffect on React 18.
|
106
|
-
// See: https://github.com/facebook/react/pull/25881#issuecomment-1356244360
|
107
|
-
useInsertionEffect(function () {
|
108
|
-
ref[0] = fn;
|
109
|
-
});
|
110
|
-
return ref[1];
|
111
|
-
};
|
112
|
-
|
113
|
-
/**
|
114
|
-
* History API docs @see https://developer.mozilla.org/en-US/docs/Web/API/History
|
115
|
-
*/
|
116
|
-
var eventPopstate = "popstate";
|
117
|
-
var eventPushState = "pushState";
|
118
|
-
var eventReplaceState = "replaceState";
|
119
|
-
var eventHashchange = "hashchange";
|
120
|
-
var events = [eventPopstate, eventPushState, eventReplaceState, eventHashchange];
|
121
|
-
var subscribeToLocationUpdates = function subscribeToLocationUpdates(callback) {
|
122
|
-
for (var _i = 0, _events = events; _i < _events.length; _i++) {
|
123
|
-
var event = _events[_i];
|
124
|
-
addEventListener(event, callback);
|
125
|
-
}
|
126
|
-
return function () {
|
127
|
-
for (var _i2 = 0, _events2 = events; _i2 < _events2.length; _i2++) {
|
128
|
-
var _event = _events2[_i2];
|
129
|
-
removeEventListener(_event, callback);
|
130
|
-
}
|
131
|
-
};
|
132
|
-
};
|
133
|
-
var useLocationProperty = function useLocationProperty(fn, ssrFn) {
|
134
|
-
return index_js.useSyncExternalStore(subscribeToLocationUpdates, fn, ssrFn);
|
135
|
-
};
|
136
|
-
var currentSearch = function currentSearch() {
|
137
|
-
return location.search;
|
138
|
-
};
|
139
|
-
var useSearch$1 = function useSearch() {
|
140
|
-
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
141
|
-
_ref$ssrSearch = _ref.ssrSearch,
|
142
|
-
ssrSearch = _ref$ssrSearch === void 0 ? "" : _ref$ssrSearch;
|
143
|
-
return useLocationProperty(currentSearch, function () {
|
144
|
-
return ssrSearch;
|
145
|
-
});
|
146
|
-
};
|
147
|
-
var currentPathname = function currentPathname() {
|
148
|
-
return location.pathname;
|
149
|
-
};
|
150
|
-
var usePathname = function usePathname() {
|
151
|
-
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
152
|
-
ssrPath = _ref2.ssrPath;
|
153
|
-
return useLocationProperty(currentPathname, ssrPath ? function () {
|
154
|
-
return ssrPath;
|
155
|
-
} : currentPathname);
|
156
|
-
};
|
157
|
-
var navigate = function navigate(to) {
|
158
|
-
var _ref3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
159
|
-
_ref3$replace = _ref3.replace,
|
160
|
-
replace = _ref3$replace === void 0 ? false : _ref3$replace,
|
161
|
-
_ref3$state = _ref3.state,
|
162
|
-
state = _ref3$state === void 0 ? null : _ref3$state;
|
163
|
-
return history[replace ? eventReplaceState : eventPushState](state, "", to);
|
164
|
-
};
|
165
|
-
|
166
|
-
// the 2nd argument of the `useBrowserLocation` return value is a function
|
167
|
-
// that allows to perform a navigation.
|
168
|
-
var useBrowserLocation = function useBrowserLocation() {
|
169
|
-
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
170
|
-
return [usePathname(opts), navigate];
|
171
|
-
};
|
172
|
-
var patchKey = Symbol["for"]("wouter_v3");
|
173
|
-
|
174
|
-
// While History API does have `popstate` event, the only
|
175
|
-
// proper way to listen to changes via `push/replaceState`
|
176
|
-
// is to monkey-patch these methods.
|
177
|
-
//
|
178
|
-
// See https://stackoverflow.com/a/4585031
|
179
|
-
if (typeof history !== "undefined" && typeof window[patchKey] === "undefined") {
|
180
|
-
var _loop = function _loop() {
|
181
|
-
var type = _arr[_i3];
|
182
|
-
var original = history[type];
|
183
|
-
// TODO: we should be using unstable_batchedUpdates to avoid multiple re-renders,
|
184
|
-
// however that will require an additional peer dependency on react-dom.
|
185
|
-
// See: https://github.com/reactwg/react-18/discussions/86#discussioncomment-1567149
|
186
|
-
history[type] = function () {
|
187
|
-
var result = original.apply(this, arguments);
|
188
|
-
var event = new Event(type);
|
189
|
-
event.arguments = arguments;
|
190
|
-
dispatchEvent(event);
|
191
|
-
return result;
|
192
|
-
};
|
193
|
-
};
|
194
|
-
for (var _i3 = 0, _arr = [eventPushState, eventReplaceState]; _i3 < _arr.length; _i3++) {
|
195
|
-
_loop();
|
196
|
-
}
|
197
|
-
|
198
|
-
// patch history object only once
|
199
|
-
// See: https://github.com/molefrog/wouter/issues/167
|
200
|
-
Object.defineProperty(window, patchKey, {
|
201
|
-
value: true
|
202
|
-
});
|
203
|
-
}
|
204
|
-
|
205
|
-
var _excluded$5 = ["children"],
|
206
|
-
_excluded2$1 = ["path", "nest", "match"],
|
207
|
-
_excluded3 = ["to", "href", "onClick", "asChild", "children", "className", "replace", "state"];
|
208
|
-
|
209
|
-
/*
|
210
|
-
* Transforms `path` into its relative `base` version
|
211
|
-
* If base isn't part of the path provided returns absolute path e.g. `~/app`
|
212
|
-
*/
|
213
|
-
var relativePath = function relativePath() {
|
214
|
-
var base = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
|
215
|
-
var path = arguments.length > 1 ? arguments[1] : undefined;
|
216
|
-
return !path.toLowerCase().indexOf(base.toLowerCase()) ? path.slice(base.length) || "/" : "~" + path;
|
217
|
-
};
|
218
|
-
var absolutePath = function absolutePath(to) {
|
219
|
-
var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
|
220
|
-
return to[0] === "~" ? to.slice(1) : base + to;
|
221
|
-
};
|
222
|
-
|
223
|
-
/*
|
224
|
-
* Removes leading question mark
|
225
|
-
*/
|
226
|
-
var stripQm = function stripQm(str) {
|
227
|
-
return str[0] === "?" ? str.slice(1) : str;
|
228
|
-
};
|
229
|
-
|
230
|
-
/*
|
231
|
-
* decodes escape sequences such as %20
|
232
|
-
*/
|
233
|
-
var unescape = function unescape(str) {
|
234
|
-
try {
|
235
|
-
return decodeURI(str);
|
236
|
-
} catch (_e) {
|
237
|
-
// fail-safe mode: if string can't be decoded do nothing
|
238
|
-
return str;
|
239
|
-
}
|
240
|
-
};
|
241
|
-
|
242
|
-
/*
|
243
|
-
* Router and router context. Router is a lightweight object that represents the current
|
244
|
-
* routing options: how location is managed, base path etc.
|
245
|
-
*
|
246
|
-
* There is a default router present for most of the use cases, however it can be overridden
|
247
|
-
* via the <Router /> component.
|
248
|
-
*/
|
249
|
-
|
250
|
-
var defaultRouter = {
|
251
|
-
hook: useBrowserLocation,
|
252
|
-
searchHook: useSearch$1,
|
253
|
-
parser: regexparam.parse,
|
254
|
-
base: "",
|
255
|
-
// this option is used to override the current location during SSR
|
256
|
-
ssrPath: undefined,
|
257
|
-
ssrSearch: undefined,
|
258
|
-
// customizes how `href` props are transformed for <Link />
|
259
|
-
hrefs: function hrefs(x) {
|
260
|
-
return x;
|
261
|
-
}
|
262
|
-
};
|
263
|
-
var RouterCtx = React.createContext(defaultRouter);
|
264
|
-
|
265
|
-
// gets the closest parent router from the context
|
266
|
-
var useRouter = function useRouter() {
|
267
|
-
return React.useContext(RouterCtx);
|
268
|
-
};
|
269
|
-
|
270
|
-
/**
|
271
|
-
* Parameters context. Used by `useParams()` to get the
|
272
|
-
* matched params from the innermost `Route` component.
|
273
|
-
*/
|
274
|
-
|
275
|
-
var ParamsCtx = React.createContext({});
|
276
|
-
|
277
|
-
/*
|
278
|
-
* Part 1, Hooks API: useRoute and useLocation
|
279
|
-
*/
|
280
|
-
|
281
|
-
// Internal version of useLocation to avoid redundant useRouter calls
|
282
|
-
|
283
|
-
var useLocationFromRouter = function useLocationFromRouter(router) {
|
284
|
-
var _router$hook = router.hook(router),
|
285
|
-
_router$hook2 = _slicedToArray(_router$hook, 2),
|
286
|
-
location = _router$hook2[0],
|
287
|
-
navigate = _router$hook2[1];
|
288
|
-
|
289
|
-
// the function reference should stay the same between re-renders, so that
|
290
|
-
// it can be passed down as an element prop without any performance concerns.
|
291
|
-
// (This is achieved via `useEvent`.)
|
292
|
-
return [unescape(relativePath(router.base, location)), useEvent(function (to, navOpts) {
|
293
|
-
return navigate(absolutePath(to, router.base), navOpts);
|
294
|
-
})];
|
295
|
-
};
|
296
|
-
var useLocation = function useLocation() {
|
297
|
-
return useLocationFromRouter(useRouter());
|
298
|
-
};
|
299
|
-
var useSearch = function useSearch() {
|
300
|
-
var router = useRouter();
|
301
|
-
return unescape(stripQm(router.searchHook(router)));
|
302
|
-
};
|
303
|
-
var matchRoute = function matchRoute(parser, route, path, loose) {
|
304
|
-
// when parser is in "loose" mode, `$base` is equal to the
|
305
|
-
// first part of the route that matches the pattern
|
306
|
-
// (e.g. for pattern `/a/:b` and path `/a/1/2/3` the `$base` is `a/1`)
|
307
|
-
// we use this for route nesting
|
308
|
-
var _parser = parser(route || "*", loose),
|
309
|
-
pattern = _parser.pattern,
|
310
|
-
keys = _parser.keys;
|
311
|
-
var _ref = pattern.exec(path) || [],
|
312
|
-
_ref2 = _toArray(_ref),
|
313
|
-
$base = _ref2[0],
|
314
|
-
matches = _ref2.slice(1);
|
315
|
-
return $base !== undefined ? [true,
|
316
|
-
// an object with parameters matched, e.g. { foo: "bar" } for "/:foo"
|
317
|
-
// we "zip" two arrays here to construct the object
|
318
|
-
// ["foo"], ["bar"] → { foo: "bar" }
|
319
|
-
Object.fromEntries(keys.map(function (key, i) {
|
320
|
-
return [key, matches[i]];
|
321
|
-
}))].concat(_toConsumableArray(loose ? [$base] : [])) : [false, null];
|
322
|
-
};
|
323
|
-
|
324
|
-
/*
|
325
|
-
* Part 2, Low Carb Router API: Router, Route, Link, Switch
|
326
|
-
*/
|
327
|
-
|
328
|
-
var Router = function Router(_ref3) {
|
329
|
-
var _props$ssrPath$split, _props$ssrPath, _props$hrefs, _props$hook;
|
330
|
-
var children = _ref3.children,
|
331
|
-
props = _objectWithoutProperties(_ref3, _excluded$5);
|
332
|
-
// the router we will inherit from - it is the closest router in the tree,
|
333
|
-
// unless the custom `hook` is provided (in that case it's the default one)
|
334
|
-
var parent_ = useRouter();
|
335
|
-
var parent = props.hook ? defaultRouter : parent_;
|
336
|
-
|
337
|
-
// holds to the context value: the router object
|
338
|
-
var value = parent;
|
339
|
-
|
340
|
-
// when `ssrPath` contains a `?` character, we can extract the search from it
|
341
|
-
var _ref4 = (_props$ssrPath$split = (_props$ssrPath = props.ssrPath) === null || _props$ssrPath === void 0 ? void 0 : _props$ssrPath.split("?")) !== null && _props$ssrPath$split !== void 0 ? _props$ssrPath$split : [],
|
342
|
-
_ref5 = _slicedToArray(_ref4, 2),
|
343
|
-
path = _ref5[0],
|
344
|
-
search = _ref5[1];
|
345
|
-
if (search) props.ssrSearch = search, props.ssrPath = path;
|
346
|
-
|
347
|
-
// hooks can define their own `href` formatter (e.g. for hash location)
|
348
|
-
props.hrefs = (_props$hrefs = props.hrefs) !== null && _props$hrefs !== void 0 ? _props$hrefs : (_props$hook = props.hook) === null || _props$hook === void 0 ? void 0 : _props$hook.hrefs;
|
349
|
-
|
350
|
-
// what is happening below: to avoid unnecessary rerenders in child components,
|
351
|
-
// we ensure that the router object reference is stable, unless there are any
|
352
|
-
// changes that require reload (e.g. `base` prop changes -> all components that
|
353
|
-
// get the router from the context should rerender, even if the component is memoized).
|
354
|
-
// the expected behaviour is:
|
355
|
-
//
|
356
|
-
// 1) when the resulted router is no different from the parent, use parent
|
357
|
-
// 2) if the custom `hook` prop is provided, we always inherit from the
|
358
|
-
// default router instead. this resets all previously overridden options.
|
359
|
-
// 3) when the router is customized here, it should stay stable between renders
|
360
|
-
var ref = React.useRef({}),
|
361
|
-
prev = ref.current,
|
362
|
-
next = prev;
|
363
|
-
for (var k in parent) {
|
364
|
-
var option = k === "base" ? /* base is special case, it is appended to the parent's base */
|
365
|
-
parent[k] + (props[k] || "") : props[k] || parent[k];
|
366
|
-
if (prev === next && option !== next[k]) {
|
367
|
-
ref.current = next = _objectSpread({}, next);
|
368
|
-
}
|
369
|
-
next[k] = option;
|
370
|
-
|
371
|
-
// the new router is no different from the parent, use parent
|
372
|
-
if (option !== parent[k]) value = next;
|
373
|
-
}
|
374
|
-
return React.createElement(RouterCtx.Provider, {
|
375
|
-
value: value,
|
376
|
-
children: children
|
377
|
-
});
|
378
|
-
};
|
379
|
-
var h_route = function h_route(_ref6, params) {
|
380
|
-
var children = _ref6.children,
|
381
|
-
component = _ref6.component;
|
382
|
-
// React-Router style `component` prop
|
383
|
-
if (component) return React.createElement(component, {
|
384
|
-
params: params
|
385
|
-
});
|
386
|
-
|
387
|
-
// support render prop or plain children
|
388
|
-
return typeof children === "function" ? children(params) : children;
|
389
|
-
};
|
390
|
-
var Route = function Route(_ref7) {
|
391
|
-
var path = _ref7.path,
|
392
|
-
nest = _ref7.nest,
|
393
|
-
match = _ref7.match,
|
394
|
-
renderProps = _objectWithoutProperties(_ref7, _excluded2$1);
|
395
|
-
var router = useRouter();
|
396
|
-
var _useLocationFromRoute = useLocationFromRouter(router),
|
397
|
-
_useLocationFromRoute2 = _slicedToArray(_useLocationFromRoute, 1),
|
398
|
-
location = _useLocationFromRoute2[0];
|
399
|
-
var _ref8 = // `match` is a special prop to give up control to the parent,
|
400
|
-
// it is used by the `Switch` to avoid double matching
|
401
|
-
match !== null && match !== void 0 ? match : matchRoute(router.parser, path, location, nest),
|
402
|
-
_ref9 = _slicedToArray(_ref8, 3),
|
403
|
-
matches = _ref9[0],
|
404
|
-
params = _ref9[1],
|
405
|
-
base = _ref9[2];
|
406
|
-
if (!matches) return null;
|
407
|
-
var children = base ? React.createElement(Router, {
|
408
|
-
base: base
|
409
|
-
}, h_route(renderProps, params)) : h_route(renderProps, params);
|
410
|
-
return React.createElement(ParamsCtx.Provider, {
|
411
|
-
value: params,
|
412
|
-
children: children
|
413
|
-
});
|
414
|
-
};
|
415
|
-
React.forwardRef(function (props, ref) {
|
416
|
-
var router = useRouter();
|
417
|
-
var _useLocationFromRoute3 = useLocationFromRouter(router),
|
418
|
-
_useLocationFromRoute4 = _slicedToArray(_useLocationFromRoute3, 2),
|
419
|
-
path = _useLocationFromRoute4[0],
|
420
|
-
navigate = _useLocationFromRoute4[1];
|
421
|
-
var to = props.to,
|
422
|
-
_props$href = props.href,
|
423
|
-
_href = _props$href === void 0 ? to : _props$href,
|
424
|
-
_onClick = props.onClick,
|
425
|
-
asChild = props.asChild,
|
426
|
-
children = props.children,
|
427
|
-
cls = props.className;
|
428
|
-
props.replace;
|
429
|
-
props.state;
|
430
|
-
var restProps = _objectWithoutProperties(props, _excluded3);
|
431
|
-
var onClick = useEvent(function (event) {
|
432
|
-
// ignores the navigation when clicked using right mouse button or
|
433
|
-
// by holding a special modifier key: ctrl, command, win, alt, shift
|
434
|
-
if (event.ctrlKey || event.metaKey || event.altKey || event.shiftKey || event.button !== 0) return;
|
435
|
-
_onClick === null || _onClick === void 0 || _onClick(event);
|
436
|
-
if (!event.defaultPrevented) {
|
437
|
-
event.preventDefault();
|
438
|
-
navigate(_href, props);
|
439
|
-
}
|
440
|
-
});
|
441
|
-
|
442
|
-
// handle nested routers and absolute paths
|
443
|
-
var href = router.hrefs(_href[0] === "~" ? _href.slice(1) : router.base + _href, router // pass router as a second argument for convinience
|
444
|
-
);
|
445
|
-
return asChild && React.isValidElement(children) ? React.cloneElement(children, {
|
446
|
-
onClick: onClick,
|
447
|
-
href: href
|
448
|
-
}) : React.createElement("a", _objectSpread(_objectSpread({}, restProps), {}, {
|
449
|
-
onClick: onClick,
|
450
|
-
href: href,
|
451
|
-
// `className` can be a function to apply the class if this link is active
|
452
|
-
className: cls !== null && cls !== void 0 && cls.call ? cls(path === href) : cls,
|
453
|
-
children: children,
|
454
|
-
ref: ref
|
455
|
-
}));
|
456
|
-
});
|
457
|
-
var flattenChildren = function flattenChildren(children) {
|
458
|
-
return Array.isArray(children) ? children.flatMap(function (c) {
|
459
|
-
return flattenChildren(c && c.type === React.Fragment ? c.props.children : c);
|
460
|
-
}) : [children];
|
461
|
-
};
|
462
|
-
var Switch = function Switch(_ref10) {
|
463
|
-
var children = _ref10.children,
|
464
|
-
location = _ref10.location;
|
465
|
-
var router = useRouter();
|
466
|
-
var _useLocationFromRoute5 = useLocationFromRouter(router),
|
467
|
-
_useLocationFromRoute6 = _slicedToArray(_useLocationFromRoute5, 1),
|
468
|
-
originalLocation = _useLocationFromRoute6[0];
|
469
|
-
var _iterator = _createForOfIteratorHelper(flattenChildren(children)),
|
470
|
-
_step;
|
471
|
-
try {
|
472
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
473
|
-
var element = _step.value;
|
474
|
-
var match = 0;
|
475
|
-
if (React.isValidElement(element) &&
|
476
|
-
// we don't require an element to be of type Route,
|
477
|
-
// but we do require it to contain a truthy `path` prop.
|
478
|
-
// this allows to use different components that wrap Route
|
479
|
-
// inside of a switch, for example <AnimatedRoute />.
|
480
|
-
(match = matchRoute(router.parser, element.props.path, location || originalLocation, element.props.nest))[0]) return React.cloneElement(element, {
|
481
|
-
match: match
|
482
|
-
});
|
483
|
-
}
|
484
|
-
} catch (err) {
|
485
|
-
_iterator.e(err);
|
486
|
-
} finally {
|
487
|
-
_iterator.f();
|
488
|
-
}
|
489
|
-
return null;
|
490
|
-
};
|
491
|
-
var Redirect = function Redirect(props) {
|
492
|
-
var to = props.to,
|
493
|
-
_props$href2 = props.href,
|
494
|
-
href = _props$href2 === void 0 ? to : _props$href2;
|
495
|
-
var _useLocation = useLocation(),
|
496
|
-
_useLocation2 = _slicedToArray(_useLocation, 2),
|
497
|
-
navigate = _useLocation2[1];
|
498
|
-
var redirect = useEvent(function () {
|
499
|
-
return navigate(to || href, props);
|
500
|
-
});
|
501
|
-
|
502
|
-
// redirect is guaranteed to be stable since it is returned from useEvent
|
503
|
-
useIsomorphicLayoutEffect(function () {
|
504
|
-
redirect();
|
505
|
-
}, []); // eslint-disable-line react-hooks/exhaustive-deps
|
506
|
-
|
507
|
-
return null;
|
508
|
-
};
|
509
|
-
|
510
|
-
({
|
511
|
-
children: PropTypes.node.isRequired,
|
512
|
-
routes: PropTypes.objectOf(PropTypes.string).isRequired,
|
513
|
-
basePath: PropTypes.string
|
514
|
-
});
|
515
|
-
function parseLocation(location) {
|
516
|
-
var search = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
517
|
-
var hash = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
518
|
-
var _split = (location || '').split('?', 2),
|
519
|
-
_split2 = _slicedToArray(_split, 2),
|
520
|
-
pathname = _split2[0],
|
521
|
-
_split2$ = _split2[1],
|
522
|
-
searchFromPath = _split2$ === void 0 ? null : _split2$;
|
523
|
-
var _split3 = (searchFromPath || '').split('#', 2),
|
524
|
-
_split4 = _slicedToArray(_split3, 2),
|
525
|
-
searchWithoutHash = _split4[0],
|
526
|
-
_split4$ = _split4[1],
|
527
|
-
hashFromPath = _split4$ === void 0 ? null : _split4$;
|
528
|
-
return {
|
529
|
-
pathname: pathname !== '' ? pathname : '/',
|
530
|
-
search: search || searchWithoutHash || null,
|
531
|
-
hash: hash || hashFromPath || null
|
532
|
-
};
|
533
|
-
}
|
534
|
-
function useMemoryRouter() {
|
535
|
-
var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
536
|
-
_ref3$path = _ref3.path,
|
537
|
-
path = _ref3$path === void 0 ? '/' : _ref3$path,
|
538
|
-
_ref3$static = _ref3["static"],
|
539
|
-
staticLocation = _ref3$static === void 0 ? false : _ref3$static;
|
540
|
-
_ref3.record;
|
541
|
-
var currentPath = parseLocation(path);
|
542
|
-
var emitter = mitt();
|
543
|
-
var navigateImplementation = function navigateImplementation(newPath) {
|
544
|
-
var newParsedPath = parseLocation(newPath);
|
545
|
-
currentPath = newParsedPath;
|
546
|
-
emitter.emit('navigate', path);
|
547
|
-
};
|
548
|
-
var navigate = !staticLocation ? navigateImplementation : function () {
|
549
|
-
return null;
|
550
|
-
};
|
551
|
-
var subscribe = function subscribe(cb) {
|
552
|
-
emitter.on('navigate', cb);
|
553
|
-
return function () {
|
554
|
-
return emitter.off('navigate', cb);
|
555
|
-
};
|
556
|
-
};
|
557
|
-
function reset() {
|
558
|
-
navigateImplementation(path);
|
559
|
-
}
|
560
|
-
var locationHook = function locationHook() {
|
561
|
-
return [React.useSyncExternalStore(subscribe, function () {
|
562
|
-
return currentPath.pathname;
|
563
|
-
}), navigate];
|
564
|
-
};
|
565
|
-
var searchHook = function searchHook() {
|
566
|
-
return React.useSyncExternalStore(subscribe, function () {
|
567
|
-
return currentPath.search || '';
|
568
|
-
});
|
569
|
-
};
|
570
|
-
return {
|
571
|
-
hook: locationHook,
|
572
|
-
searchHook: searchHook,
|
573
|
-
reset: reset,
|
574
|
-
navigate: navigate
|
575
|
-
};
|
576
|
-
}
|
577
|
-
function createPathToRegexpParser(opts) {
|
578
|
-
return function (fullPath, loose) {
|
579
|
-
var path = fullPath.replace(/^(https?:\/\/[^/]+)\/?/, '/');
|
580
|
-
var keys = [];
|
581
|
-
var isWildcard = path.match(/(\/|^)\*$/) !== null;
|
582
|
-
var pattern = pathToRegexp.pathToRegexp(isWildcard ? path.replace(/(\/|^)\*$/, '$1(.*)') : path, keys, _objectSpread({
|
583
|
-
end: !loose && !isWildcard
|
584
|
-
}, opts));
|
585
|
-
return {
|
586
|
-
pattern: pattern,
|
587
|
-
// `pathToRegexp` returns some metadata about the keys,
|
588
|
-
// we want to strip it to just an array of keys
|
589
|
-
keys: keys.map(function (k) {
|
590
|
-
return k.name;
|
591
|
-
})
|
592
|
-
};
|
593
|
-
};
|
594
|
-
}
|
595
|
-
|
596
|
-
var token = '%[a-f0-9]{2}';
|
597
|
-
var singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi');
|
598
|
-
var multiMatcher = new RegExp('(' + token + ')+', 'gi');
|
599
|
-
function decodeComponents(components, split) {
|
600
|
-
try {
|
601
|
-
// Try to decode the entire string first
|
602
|
-
return [decodeURIComponent(components.join(''))];
|
603
|
-
} catch (_unused) {
|
604
|
-
// Do nothing
|
605
|
-
}
|
606
|
-
if (components.length === 1) {
|
607
|
-
return components;
|
608
|
-
}
|
609
|
-
split = split || 1;
|
610
|
-
|
611
|
-
// Split the array in 2 parts
|
612
|
-
var left = components.slice(0, split);
|
613
|
-
var right = components.slice(split);
|
614
|
-
return Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));
|
615
|
-
}
|
616
|
-
function decode$1(input) {
|
617
|
-
try {
|
618
|
-
return decodeURIComponent(input);
|
619
|
-
} catch (_unused2) {
|
620
|
-
var tokens = input.match(singleMatcher) || [];
|
621
|
-
for (var i = 1; i < tokens.length; i++) {
|
622
|
-
input = decodeComponents(tokens, i).join('');
|
623
|
-
tokens = input.match(singleMatcher) || [];
|
624
|
-
}
|
625
|
-
return input;
|
626
|
-
}
|
627
|
-
}
|
628
|
-
function customDecodeURIComponent(input) {
|
629
|
-
// Keep track of all the replacements and prefill the map with the `BOM`
|
630
|
-
var replaceMap = {
|
631
|
-
'%FE%FF': "\uFFFD\uFFFD",
|
632
|
-
'%FF%FE': "\uFFFD\uFFFD"
|
633
|
-
};
|
634
|
-
var match = multiMatcher.exec(input);
|
635
|
-
while (match) {
|
636
|
-
try {
|
637
|
-
// Decode as big chunks as possible
|
638
|
-
replaceMap[match[0]] = decodeURIComponent(match[0]);
|
639
|
-
} catch (_unused3) {
|
640
|
-
var result = decode$1(match[0]);
|
641
|
-
if (result !== match[0]) {
|
642
|
-
replaceMap[match[0]] = result;
|
643
|
-
}
|
644
|
-
}
|
645
|
-
match = multiMatcher.exec(input);
|
646
|
-
}
|
647
|
-
|
648
|
-
// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else
|
649
|
-
replaceMap['%C2'] = "\uFFFD";
|
650
|
-
var entries = Object.keys(replaceMap);
|
651
|
-
for (var _i = 0, _entries = entries; _i < _entries.length; _i++) {
|
652
|
-
var key = _entries[_i];
|
653
|
-
// Replace all decoded components
|
654
|
-
input = input.replace(new RegExp(key, 'g'), replaceMap[key]);
|
655
|
-
}
|
656
|
-
return input;
|
657
|
-
}
|
658
|
-
function decodeUriComponent(encodedURI) {
|
659
|
-
if (typeof encodedURI !== 'string') {
|
660
|
-
throw new TypeError('Expected `encodedURI` to be of type `string`, got `' + _typeof(encodedURI) + '`');
|
661
|
-
}
|
662
|
-
try {
|
663
|
-
// Try the built in decoder first
|
664
|
-
return decodeURIComponent(encodedURI);
|
665
|
-
} catch (_unused4) {
|
666
|
-
// Fallback to a more advanced decoder
|
667
|
-
return customDecodeURIComponent(encodedURI);
|
668
|
-
}
|
669
|
-
}
|
670
|
-
|
671
|
-
function splitOnFirst(string, separator) {
|
672
|
-
if (!(typeof string === 'string' && typeof separator === 'string')) {
|
673
|
-
throw new TypeError('Expected the arguments to be of type `string`');
|
674
|
-
}
|
675
|
-
if (string === '' || separator === '') {
|
676
|
-
return [];
|
677
|
-
}
|
678
|
-
var separatorIndex = string.indexOf(separator);
|
679
|
-
if (separatorIndex === -1) {
|
680
|
-
return [];
|
681
|
-
}
|
682
|
-
return [string.slice(0, separatorIndex), string.slice(separatorIndex + separator.length)];
|
683
|
-
}
|
684
|
-
|
685
|
-
function includeKeys(object, predicate) {
|
686
|
-
var result = {};
|
687
|
-
if (Array.isArray(predicate)) {
|
688
|
-
var _iterator = _createForOfIteratorHelper(predicate),
|
689
|
-
_step;
|
690
|
-
try {
|
691
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
692
|
-
var key = _step.value;
|
693
|
-
var descriptor = Object.getOwnPropertyDescriptor(object, key);
|
694
|
-
if (descriptor !== null && descriptor !== void 0 && descriptor.enumerable) {
|
695
|
-
Object.defineProperty(result, key, descriptor);
|
696
|
-
}
|
697
|
-
}
|
698
|
-
} catch (err) {
|
699
|
-
_iterator.e(err);
|
700
|
-
} finally {
|
701
|
-
_iterator.f();
|
702
|
-
}
|
703
|
-
} else {
|
704
|
-
// `Reflect.ownKeys()` is required to retrieve symbol properties
|
705
|
-
var _iterator2 = _createForOfIteratorHelper(Reflect.ownKeys(object)),
|
706
|
-
_step2;
|
707
|
-
try {
|
708
|
-
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
709
|
-
var _key = _step2.value;
|
710
|
-
var _descriptor = Object.getOwnPropertyDescriptor(object, _key);
|
711
|
-
if (_descriptor.enumerable) {
|
712
|
-
var value = object[_key];
|
713
|
-
if (predicate(_key, value, object)) {
|
714
|
-
Object.defineProperty(result, _key, _descriptor);
|
715
|
-
}
|
716
|
-
}
|
717
|
-
}
|
718
|
-
} catch (err) {
|
719
|
-
_iterator2.e(err);
|
720
|
-
} finally {
|
721
|
-
_iterator2.f();
|
722
|
-
}
|
723
|
-
}
|
724
|
-
return result;
|
725
|
-
}
|
726
|
-
|
727
|
-
const isNullOrUndefined = value => value === null || value === undefined;
|
728
|
-
|
729
|
-
// eslint-disable-next-line unicorn/prefer-code-point
|
730
|
-
const strictUriEncode = string => encodeURIComponent(string).replaceAll(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);
|
731
|
-
|
732
|
-
const encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');
|
733
|
-
|
734
|
-
function encoderForArrayFormat(options) {
|
735
|
-
switch (options.arrayFormat) {
|
736
|
-
case 'index': {
|
737
|
-
return key => (result, value) => {
|
738
|
-
const index = result.length;
|
739
|
-
|
740
|
-
if (
|
741
|
-
value === undefined
|
742
|
-
|| (options.skipNull && value === null)
|
743
|
-
|| (options.skipEmptyString && value === '')
|
744
|
-
) {
|
745
|
-
return result;
|
746
|
-
}
|
747
|
-
|
748
|
-
if (value === null) {
|
749
|
-
return [
|
750
|
-
...result, [encode(key, options), '[', index, ']'].join(''),
|
751
|
-
];
|
752
|
-
}
|
753
|
-
|
754
|
-
return [
|
755
|
-
...result,
|
756
|
-
[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join(''),
|
757
|
-
];
|
758
|
-
};
|
759
|
-
}
|
760
|
-
|
761
|
-
case 'bracket': {
|
762
|
-
return key => (result, value) => {
|
763
|
-
if (
|
764
|
-
value === undefined
|
765
|
-
|| (options.skipNull && value === null)
|
766
|
-
|| (options.skipEmptyString && value === '')
|
767
|
-
) {
|
768
|
-
return result;
|
769
|
-
}
|
770
|
-
|
771
|
-
if (value === null) {
|
772
|
-
return [
|
773
|
-
...result,
|
774
|
-
[encode(key, options), '[]'].join(''),
|
775
|
-
];
|
776
|
-
}
|
777
|
-
|
778
|
-
return [
|
779
|
-
...result,
|
780
|
-
[encode(key, options), '[]=', encode(value, options)].join(''),
|
781
|
-
];
|
782
|
-
};
|
783
|
-
}
|
784
|
-
|
785
|
-
case 'colon-list-separator': {
|
786
|
-
return key => (result, value) => {
|
787
|
-
if (
|
788
|
-
value === undefined
|
789
|
-
|| (options.skipNull && value === null)
|
790
|
-
|| (options.skipEmptyString && value === '')
|
791
|
-
) {
|
792
|
-
return result;
|
793
|
-
}
|
794
|
-
|
795
|
-
if (value === null) {
|
796
|
-
return [
|
797
|
-
...result,
|
798
|
-
[encode(key, options), ':list='].join(''),
|
799
|
-
];
|
800
|
-
}
|
801
|
-
|
802
|
-
return [
|
803
|
-
...result,
|
804
|
-
[encode(key, options), ':list=', encode(value, options)].join(''),
|
805
|
-
];
|
806
|
-
};
|
807
|
-
}
|
808
|
-
|
809
|
-
case 'comma':
|
810
|
-
case 'separator':
|
811
|
-
case 'bracket-separator': {
|
812
|
-
const keyValueSeparator = options.arrayFormat === 'bracket-separator'
|
813
|
-
? '[]='
|
814
|
-
: '=';
|
815
|
-
|
816
|
-
return key => (result, value) => {
|
817
|
-
if (
|
818
|
-
value === undefined
|
819
|
-
|| (options.skipNull && value === null)
|
820
|
-
|| (options.skipEmptyString && value === '')
|
821
|
-
) {
|
822
|
-
return result;
|
823
|
-
}
|
824
|
-
|
825
|
-
// Translate null to an empty string so that it doesn't serialize as 'null'
|
826
|
-
value = value === null ? '' : value;
|
827
|
-
|
828
|
-
if (result.length === 0) {
|
829
|
-
return [[encode(key, options), keyValueSeparator, encode(value, options)].join('')];
|
830
|
-
}
|
831
|
-
|
832
|
-
return [[result, encode(value, options)].join(options.arrayFormatSeparator)];
|
833
|
-
};
|
834
|
-
}
|
835
|
-
|
836
|
-
default: {
|
837
|
-
return key => (result, value) => {
|
838
|
-
if (
|
839
|
-
value === undefined
|
840
|
-
|| (options.skipNull && value === null)
|
841
|
-
|| (options.skipEmptyString && value === '')
|
842
|
-
) {
|
843
|
-
return result;
|
844
|
-
}
|
845
|
-
|
846
|
-
if (value === null) {
|
847
|
-
return [
|
848
|
-
...result,
|
849
|
-
encode(key, options),
|
850
|
-
];
|
851
|
-
}
|
852
|
-
|
853
|
-
return [
|
854
|
-
...result,
|
855
|
-
[encode(key, options), '=', encode(value, options)].join(''),
|
856
|
-
];
|
857
|
-
};
|
858
|
-
}
|
859
|
-
}
|
860
|
-
}
|
861
|
-
|
862
|
-
function parserForArrayFormat(options) {
|
863
|
-
let result;
|
864
|
-
|
865
|
-
switch (options.arrayFormat) {
|
866
|
-
case 'index': {
|
867
|
-
return (key, value, accumulator) => {
|
868
|
-
result = /\[(\d*)]$/.exec(key);
|
869
|
-
|
870
|
-
key = key.replace(/\[\d*]$/, '');
|
871
|
-
|
872
|
-
if (!result) {
|
873
|
-
accumulator[key] = value;
|
874
|
-
return;
|
875
|
-
}
|
876
|
-
|
877
|
-
if (accumulator[key] === undefined) {
|
878
|
-
accumulator[key] = {};
|
879
|
-
}
|
880
|
-
|
881
|
-
accumulator[key][result[1]] = value;
|
882
|
-
};
|
883
|
-
}
|
884
|
-
|
885
|
-
case 'bracket': {
|
886
|
-
return (key, value, accumulator) => {
|
887
|
-
result = /(\[])$/.exec(key);
|
888
|
-
key = key.replace(/\[]$/, '');
|
889
|
-
|
890
|
-
if (!result) {
|
891
|
-
accumulator[key] = value;
|
892
|
-
return;
|
893
|
-
}
|
894
|
-
|
895
|
-
if (accumulator[key] === undefined) {
|
896
|
-
accumulator[key] = [value];
|
897
|
-
return;
|
898
|
-
}
|
899
|
-
|
900
|
-
accumulator[key] = [...accumulator[key], value];
|
901
|
-
};
|
902
|
-
}
|
903
|
-
|
904
|
-
case 'colon-list-separator': {
|
905
|
-
return (key, value, accumulator) => {
|
906
|
-
result = /(:list)$/.exec(key);
|
907
|
-
key = key.replace(/:list$/, '');
|
908
|
-
|
909
|
-
if (!result) {
|
910
|
-
accumulator[key] = value;
|
911
|
-
return;
|
912
|
-
}
|
913
|
-
|
914
|
-
if (accumulator[key] === undefined) {
|
915
|
-
accumulator[key] = [value];
|
916
|
-
return;
|
917
|
-
}
|
918
|
-
|
919
|
-
accumulator[key] = [...accumulator[key], value];
|
920
|
-
};
|
921
|
-
}
|
922
|
-
|
923
|
-
case 'comma':
|
924
|
-
case 'separator': {
|
925
|
-
return (key, value, accumulator) => {
|
926
|
-
const isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);
|
927
|
-
const isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));
|
928
|
-
value = isEncodedArray ? decode(value, options) : value;
|
929
|
-
const newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : (value === null ? value : decode(value, options));
|
930
|
-
accumulator[key] = newValue;
|
931
|
-
};
|
932
|
-
}
|
933
|
-
|
934
|
-
case 'bracket-separator': {
|
935
|
-
return (key, value, accumulator) => {
|
936
|
-
const isArray = /(\[])$/.test(key);
|
937
|
-
key = key.replace(/\[]$/, '');
|
938
|
-
|
939
|
-
if (!isArray) {
|
940
|
-
accumulator[key] = value ? decode(value, options) : value;
|
941
|
-
return;
|
942
|
-
}
|
943
|
-
|
944
|
-
const arrayValue = value === null
|
945
|
-
? []
|
946
|
-
: value.split(options.arrayFormatSeparator).map(item => decode(item, options));
|
947
|
-
|
948
|
-
if (accumulator[key] === undefined) {
|
949
|
-
accumulator[key] = arrayValue;
|
950
|
-
return;
|
951
|
-
}
|
952
|
-
|
953
|
-
accumulator[key] = [...accumulator[key], ...arrayValue];
|
954
|
-
};
|
955
|
-
}
|
956
|
-
|
957
|
-
default: {
|
958
|
-
return (key, value, accumulator) => {
|
959
|
-
if (accumulator[key] === undefined) {
|
960
|
-
accumulator[key] = value;
|
961
|
-
return;
|
962
|
-
}
|
963
|
-
|
964
|
-
accumulator[key] = [...[accumulator[key]].flat(), value];
|
965
|
-
};
|
966
|
-
}
|
967
|
-
}
|
968
|
-
}
|
969
|
-
|
970
|
-
function validateArrayFormatSeparator(value) {
|
971
|
-
if (typeof value !== 'string' || value.length !== 1) {
|
972
|
-
throw new TypeError('arrayFormatSeparator must be single character string');
|
973
|
-
}
|
974
|
-
}
|
975
|
-
|
976
|
-
function encode(value, options) {
|
977
|
-
if (options.encode) {
|
978
|
-
return options.strict ? strictUriEncode(value) : encodeURIComponent(value);
|
979
|
-
}
|
980
|
-
|
981
|
-
return value;
|
982
|
-
}
|
983
|
-
|
984
|
-
function decode(value, options) {
|
985
|
-
if (options.decode) {
|
986
|
-
return decodeUriComponent(value);
|
987
|
-
}
|
988
|
-
|
989
|
-
return value;
|
990
|
-
}
|
991
|
-
|
992
|
-
function keysSorter(input) {
|
993
|
-
if (Array.isArray(input)) {
|
994
|
-
return input.sort();
|
995
|
-
}
|
996
|
-
|
997
|
-
if (typeof input === 'object') {
|
998
|
-
return keysSorter(Object.keys(input))
|
999
|
-
.sort((a, b) => Number(a) - Number(b))
|
1000
|
-
.map(key => input[key]);
|
1001
|
-
}
|
1002
|
-
|
1003
|
-
return input;
|
1004
|
-
}
|
1005
|
-
|
1006
|
-
function removeHash(input) {
|
1007
|
-
const hashStart = input.indexOf('#');
|
1008
|
-
if (hashStart !== -1) {
|
1009
|
-
input = input.slice(0, hashStart);
|
1010
|
-
}
|
1011
|
-
|
1012
|
-
return input;
|
1013
|
-
}
|
1014
|
-
|
1015
|
-
function getHash(url) {
|
1016
|
-
let hash = '';
|
1017
|
-
const hashStart = url.indexOf('#');
|
1018
|
-
if (hashStart !== -1) {
|
1019
|
-
hash = url.slice(hashStart);
|
1020
|
-
}
|
1021
|
-
|
1022
|
-
return hash;
|
1023
|
-
}
|
1024
|
-
|
1025
|
-
function parseValue(value, options) {
|
1026
|
-
if (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {
|
1027
|
-
value = Number(value);
|
1028
|
-
} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {
|
1029
|
-
value = value.toLowerCase() === 'true';
|
1030
|
-
}
|
1031
|
-
|
1032
|
-
return value;
|
1033
|
-
}
|
1034
|
-
|
1035
|
-
function extract(input) {
|
1036
|
-
input = removeHash(input);
|
1037
|
-
const queryStart = input.indexOf('?');
|
1038
|
-
if (queryStart === -1) {
|
1039
|
-
return '';
|
1040
|
-
}
|
1041
|
-
|
1042
|
-
return input.slice(queryStart + 1);
|
1043
|
-
}
|
1044
|
-
|
1045
|
-
function parse(query, options) {
|
1046
|
-
options = {
|
1047
|
-
decode: true,
|
1048
|
-
sort: true,
|
1049
|
-
arrayFormat: 'none',
|
1050
|
-
arrayFormatSeparator: ',',
|
1051
|
-
parseNumbers: false,
|
1052
|
-
parseBooleans: false,
|
1053
|
-
...options,
|
1054
|
-
};
|
1055
|
-
|
1056
|
-
validateArrayFormatSeparator(options.arrayFormatSeparator);
|
1057
|
-
|
1058
|
-
const formatter = parserForArrayFormat(options);
|
1059
|
-
|
1060
|
-
// Create an object with no prototype
|
1061
|
-
const returnValue = Object.create(null);
|
1062
|
-
|
1063
|
-
if (typeof query !== 'string') {
|
1064
|
-
return returnValue;
|
1065
|
-
}
|
1066
|
-
|
1067
|
-
query = query.trim().replace(/^[?#&]/, '');
|
1068
|
-
|
1069
|
-
if (!query) {
|
1070
|
-
return returnValue;
|
1071
|
-
}
|
1072
|
-
|
1073
|
-
for (const parameter of query.split('&')) {
|
1074
|
-
if (parameter === '') {
|
1075
|
-
continue;
|
1076
|
-
}
|
1077
|
-
|
1078
|
-
const parameter_ = options.decode ? parameter.replaceAll('+', ' ') : parameter;
|
1079
|
-
|
1080
|
-
let [key, value] = splitOnFirst(parameter_, '=');
|
1081
|
-
|
1082
|
-
if (key === undefined) {
|
1083
|
-
key = parameter_;
|
1084
|
-
}
|
1085
|
-
|
1086
|
-
// Missing `=` should be `null`:
|
1087
|
-
// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters
|
1088
|
-
value = value === undefined ? null : (['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options));
|
1089
|
-
formatter(decode(key, options), value, returnValue);
|
1090
|
-
}
|
1091
|
-
|
1092
|
-
for (const [key, value] of Object.entries(returnValue)) {
|
1093
|
-
if (typeof value === 'object' && value !== null) {
|
1094
|
-
for (const [key2, value2] of Object.entries(value)) {
|
1095
|
-
value[key2] = parseValue(value2, options);
|
1096
|
-
}
|
1097
|
-
} else {
|
1098
|
-
returnValue[key] = parseValue(value, options);
|
1099
|
-
}
|
1100
|
-
}
|
1101
|
-
|
1102
|
-
if (options.sort === false) {
|
1103
|
-
return returnValue;
|
1104
|
-
}
|
1105
|
-
|
1106
|
-
// TODO: Remove the use of `reduce`.
|
1107
|
-
// eslint-disable-next-line unicorn/no-array-reduce
|
1108
|
-
return (options.sort === true ? Object.keys(returnValue).sort() : Object.keys(returnValue).sort(options.sort)).reduce((result, key) => {
|
1109
|
-
const value = returnValue[key];
|
1110
|
-
result[key] = Boolean(value) && typeof value === 'object' && !Array.isArray(value) ? keysSorter(value) : value;
|
1111
|
-
return result;
|
1112
|
-
}, Object.create(null));
|
1113
|
-
}
|
1114
|
-
|
1115
|
-
function stringify(object, options) {
|
1116
|
-
if (!object) {
|
1117
|
-
return '';
|
1118
|
-
}
|
1119
|
-
|
1120
|
-
options = {
|
1121
|
-
encode: true,
|
1122
|
-
strict: true,
|
1123
|
-
arrayFormat: 'none',
|
1124
|
-
arrayFormatSeparator: ',',
|
1125
|
-
...options,
|
1126
|
-
};
|
1127
|
-
|
1128
|
-
validateArrayFormatSeparator(options.arrayFormatSeparator);
|
1129
|
-
|
1130
|
-
const shouldFilter = key => (
|
1131
|
-
(options.skipNull && isNullOrUndefined(object[key]))
|
1132
|
-
|| (options.skipEmptyString && object[key] === '')
|
1133
|
-
);
|
1134
|
-
|
1135
|
-
const formatter = encoderForArrayFormat(options);
|
1136
|
-
|
1137
|
-
const objectCopy = {};
|
1138
|
-
|
1139
|
-
for (const [key, value] of Object.entries(object)) {
|
1140
|
-
if (!shouldFilter(key)) {
|
1141
|
-
objectCopy[key] = value;
|
1142
|
-
}
|
1143
|
-
}
|
1144
|
-
|
1145
|
-
const keys = Object.keys(objectCopy);
|
1146
|
-
|
1147
|
-
if (options.sort !== false) {
|
1148
|
-
keys.sort(options.sort);
|
1149
|
-
}
|
1150
|
-
|
1151
|
-
return keys.map(key => {
|
1152
|
-
const value = object[key];
|
1153
|
-
|
1154
|
-
if (value === undefined) {
|
1155
|
-
return '';
|
1156
|
-
}
|
1157
|
-
|
1158
|
-
if (value === null) {
|
1159
|
-
return encode(key, options);
|
1160
|
-
}
|
1161
|
-
|
1162
|
-
if (Array.isArray(value)) {
|
1163
|
-
if (value.length === 0 && options.arrayFormat === 'bracket-separator') {
|
1164
|
-
return encode(key, options) + '[]';
|
1165
|
-
}
|
1166
|
-
|
1167
|
-
return value
|
1168
|
-
.reduce(formatter(key), [])
|
1169
|
-
.join('&');
|
1170
|
-
}
|
1171
|
-
|
1172
|
-
return encode(key, options) + '=' + encode(value, options);
|
1173
|
-
}).filter(x => x.length > 0).join('&');
|
1174
|
-
}
|
1175
|
-
|
1176
|
-
function parseUrl(url, options) {
|
1177
|
-
options = {
|
1178
|
-
decode: true,
|
1179
|
-
...options,
|
1180
|
-
};
|
1181
|
-
|
1182
|
-
let [url_, hash] = splitOnFirst(url, '#');
|
1183
|
-
|
1184
|
-
if (url_ === undefined) {
|
1185
|
-
url_ = url;
|
1186
|
-
}
|
1187
|
-
|
1188
|
-
return {
|
1189
|
-
url: url_?.split('?')?.[0] ?? '',
|
1190
|
-
query: parse(extract(url), options),
|
1191
|
-
...(options && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}),
|
1192
|
-
};
|
1193
|
-
}
|
1194
|
-
|
1195
|
-
function stringifyUrl(object, options) {
|
1196
|
-
options = {
|
1197
|
-
encode: true,
|
1198
|
-
strict: true,
|
1199
|
-
[encodeFragmentIdentifier]: true,
|
1200
|
-
...options,
|
1201
|
-
};
|
1202
|
-
|
1203
|
-
const url = removeHash(object.url).split('?')[0] || '';
|
1204
|
-
const queryFromUrl = extract(object.url);
|
1205
|
-
|
1206
|
-
const query = {
|
1207
|
-
...parse(queryFromUrl, {sort: false}),
|
1208
|
-
...object.query,
|
1209
|
-
};
|
1210
|
-
|
1211
|
-
let queryString = stringify(query, options);
|
1212
|
-
queryString &&= `?${queryString}`;
|
1213
|
-
|
1214
|
-
let hash = getHash(object.url);
|
1215
|
-
if (typeof object.fragmentIdentifier === 'string') {
|
1216
|
-
const urlObjectForFragmentEncode = new URL(url);
|
1217
|
-
urlObjectForFragmentEncode.hash = object.fragmentIdentifier;
|
1218
|
-
hash = options[encodeFragmentIdentifier] ? urlObjectForFragmentEncode.hash : `#${object.fragmentIdentifier}`;
|
1219
|
-
}
|
1220
|
-
|
1221
|
-
return `${url}${queryString}${hash}`;
|
1222
|
-
}
|
1223
|
-
|
1224
|
-
function pick(input, filter, options) {
|
1225
|
-
options = {
|
1226
|
-
parseFragmentIdentifier: true,
|
1227
|
-
[encodeFragmentIdentifier]: false,
|
1228
|
-
...options,
|
1229
|
-
};
|
1230
|
-
|
1231
|
-
const {url, query, fragmentIdentifier} = parseUrl(input, options);
|
1232
|
-
|
1233
|
-
return stringifyUrl({
|
1234
|
-
url,
|
1235
|
-
query: includeKeys(query, filter),
|
1236
|
-
fragmentIdentifier,
|
1237
|
-
}, options);
|
1238
|
-
}
|
1239
|
-
|
1240
|
-
function exclude(input, filter, options) {
|
1241
|
-
const exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);
|
1242
|
-
|
1243
|
-
return pick(input, exclusionFilter, options);
|
1244
|
-
}
|
1245
|
-
|
1246
|
-
var queryString = /*#__PURE__*/Object.freeze({
|
1247
|
-
__proto__: null,
|
1248
|
-
exclude: exclude,
|
1249
|
-
extract: extract,
|
1250
|
-
parse: parse,
|
1251
|
-
parseUrl: parseUrl,
|
1252
|
-
pick: pick,
|
1253
|
-
stringify: stringify,
|
1254
|
-
stringifyUrl: stringifyUrl
|
1255
|
-
});
|
1256
|
-
|
1257
|
-
/* eslint-disable react/jsx-props-no-spreading */
|
1258
|
-
// import PropTypes from 'prop-types';
|
1259
|
-
|
1260
|
-
// Kept for backward compatibility with exports
|
1261
|
-
var ResourceFormWrapper = function ResourceFormWrapper(props) {
|
1262
|
-
return /*#__PURE__*/React.createElement(ResourceForm$1, props);
|
1263
|
-
};
|
1264
|
-
var ResourceForm = ResourceFormWrapper;
|
1265
|
-
|
1266
|
-
var propTypes$k = {
|
1267
|
-
withAccountForm: PropTypes.bool,
|
1268
|
-
className: PropTypes.string,
|
1269
|
-
itemClassName: PropTypes.string,
|
1270
|
-
linkClassName: PropTypes.string
|
1271
|
-
};
|
1272
|
-
var defaultProps$j = {
|
1273
|
-
withAccountForm: false,
|
1274
|
-
className: null,
|
1275
|
-
itemClassName: null,
|
1276
|
-
linkClassName: null
|
1277
|
-
};
|
1278
|
-
var AccountMenu = function AccountMenu(_ref) {
|
1279
|
-
var withAccountForm = _ref.withAccountForm,
|
1280
|
-
className = _ref.className,
|
1281
|
-
itemClassName = _ref.itemClassName,
|
1282
|
-
linkClassName = _ref.linkClassName;
|
1283
|
-
var route = contexts.useUrlGenerator();
|
1284
|
-
var user = auth.useUser();
|
1285
|
-
var logout = auth.useLogout();
|
1286
|
-
var onClickLogout = React.useCallback(function (e) {
|
1287
|
-
e.preventDefault();
|
1288
|
-
logout();
|
1289
|
-
}, [logout, route]);
|
1290
|
-
var items = React.useMemo(function () {
|
1291
|
-
return user !== null ? [{
|
1292
|
-
id: 'account',
|
1293
|
-
label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
1294
|
-
id: "IuqEHB",
|
1295
|
-
defaultMessage: [{
|
1296
|
-
"type": 0,
|
1297
|
-
"value": "Account"
|
1298
|
-
}]
|
1299
|
-
}),
|
1300
|
-
href: route('account'),
|
1301
|
-
dropdown: [].concat(_toConsumableArray(withAccountForm ? [{
|
1302
|
-
label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
1303
|
-
id: "V7Us0a",
|
1304
|
-
defaultMessage: [{
|
1305
|
-
"type": 0,
|
1306
|
-
"value": "Update account"
|
1307
|
-
}]
|
1308
|
-
}),
|
1309
|
-
href: route('account')
|
1310
|
-
}] : []), [{
|
1311
|
-
label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
1312
|
-
id: "REIcPg",
|
1313
|
-
defaultMessage: [{
|
1314
|
-
"type": 0,
|
1315
|
-
"value": "Logout"
|
1316
|
-
}]
|
1317
|
-
}),
|
1318
|
-
href: route('auth.logout'),
|
1319
|
-
onClick: onClickLogout
|
1320
|
-
}])
|
1321
|
-
}] : [{
|
1322
|
-
label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
1323
|
-
id: "d0g58T",
|
1324
|
-
defaultMessage: [{
|
1325
|
-
"type": 0,
|
1326
|
-
"value": "Login"
|
1327
|
-
}]
|
1328
|
-
}),
|
1329
|
-
href: route('auth.login')
|
1330
|
-
}];
|
1331
|
-
}, [user, route, onClickLogout, withAccountForm]);
|
1332
|
-
return items !== null ? /*#__PURE__*/React.createElement(Menu, {
|
1333
|
-
className: className,
|
1334
|
-
itemClassName: itemClassName,
|
1335
|
-
linkClassName: linkClassName,
|
1336
|
-
items: items,
|
1337
|
-
dropdownAlign: "end"
|
1338
|
-
}) : null;
|
1339
|
-
};
|
1340
|
-
AccountMenu.propTypes = propTypes$k;
|
1341
|
-
AccountMenu.defaultProps = defaultProps$j;
|
1342
|
-
var AccountMenu$1 = AccountMenu;
|
1343
|
-
|
1344
|
-
var propTypes$j = {
|
1345
|
-
className: PropTypes.string,
|
1346
|
-
itemClassName: PropTypes.string,
|
1347
|
-
linkClassName: PropTypes.string
|
1348
|
-
};
|
1349
|
-
var defaultProps$i = {
|
1350
|
-
className: null,
|
1351
|
-
itemClassName: null,
|
1352
|
-
linkClassName: null
|
1353
|
-
};
|
1354
|
-
var ResourcesMenu = function ResourcesMenu(_ref) {
|
1355
|
-
var className = _ref.className,
|
1356
|
-
itemClassName = _ref.itemClassName,
|
1357
|
-
linkClassName = _ref.linkClassName;
|
1358
|
-
var _useLocation = useLocation(),
|
1359
|
-
_useLocation2 = _slicedToArray(_useLocation, 1),
|
1360
|
-
pathname = _useLocation2[0];
|
1361
|
-
var resources = contexts.usePanneauResources();
|
1362
|
-
var resourceRoute = hooks.useResourceUrlGenerator();
|
1363
|
-
var items = React.useMemo(function () {
|
1364
|
-
return resources.filter(function (_ref2) {
|
1365
|
-
var _ref2$settings = _ref2.settings,
|
1366
|
-
_ref2$settings2 = _ref2$settings === void 0 ? {} : _ref2$settings,
|
1367
|
-
_ref2$settings2$hideI = _ref2$settings2.hideInNavbar,
|
1368
|
-
hideInNavbar = _ref2$settings2$hideI === void 0 ? false : _ref2$settings2$hideI;
|
1369
|
-
return !hideInNavbar;
|
1370
|
-
}).map(function (it) {
|
1371
|
-
var url = resourceRoute(it, 'index');
|
1372
|
-
return {
|
1373
|
-
id: it.id,
|
1374
|
-
label: it.name,
|
1375
|
-
href: url,
|
1376
|
-
active: pathname.substr(0, url.length) === url
|
1377
|
-
};
|
1378
|
-
});
|
1379
|
-
}, [resources, pathname, resourceRoute]);
|
1380
|
-
return /*#__PURE__*/React.createElement(Menu, {
|
1381
|
-
items: items,
|
1382
|
-
className: className,
|
1383
|
-
itemClassName: itemClassName,
|
1384
|
-
linkClassName: linkClassName
|
1385
|
-
});
|
1386
|
-
};
|
1387
|
-
ResourcesMenu.propTypes = propTypes$j;
|
1388
|
-
ResourcesMenu.defaultProps = defaultProps$i;
|
1389
|
-
var ResourcesMenu$1 = ResourcesMenu;
|
1390
|
-
|
1391
|
-
var _excluded$4 = ["loading", "theme"];
|
1392
|
-
var propTypes$i = {
|
1393
|
-
loading: PropTypes.bool,
|
1394
|
-
theme: PropTypes.string
|
1395
|
-
};
|
1396
|
-
var defaultProps$h = {
|
1397
|
-
loading: false,
|
1398
|
-
theme: 'light'
|
1399
|
-
};
|
1400
|
-
var MainNavbar = function MainNavbar(_ref) {
|
1401
|
-
var loading = _ref.loading;
|
1402
|
-
_ref.theme;
|
1403
|
-
var props = _objectWithoutProperties(_ref, _excluded$4);
|
1404
|
-
var _usePanneau = contexts.usePanneau(),
|
1405
|
-
name = _usePanneau.name,
|
1406
|
-
_usePanneau$menus = _usePanneau.menus,
|
1407
|
-
menus = _usePanneau$menus === void 0 ? null : _usePanneau$menus;
|
1408
|
-
var _ref2 = menus || {},
|
1409
|
-
_ref2$main = _ref2.main,
|
1410
|
-
main = _ref2$main === void 0 ? null : _ref2$main,
|
1411
|
-
_ref2$guest = _ref2.guest,
|
1412
|
-
guest = _ref2$guest === void 0 ? null : _ref2$guest;
|
1413
|
-
var _usePanneauColorSchem = contexts.usePanneauColorScheme(),
|
1414
|
-
background = _usePanneauColorSchem.background;
|
1415
|
-
var route = contexts.useUrlGenerator();
|
1416
|
-
var user = auth.useUser();
|
1417
|
-
var items = React.useMemo(function () {
|
1418
|
-
var menuItems = (user !== null ? main : guest) || [];
|
1419
|
-
var hasResources = menuItems.indexOf('resources') !== -1;
|
1420
|
-
var hasAccount = menuItems.indexOf('account') !== -1;
|
1421
|
-
return [!hasResources && user !== null ? 'resources' : null].concat(_toConsumableArray(menuItems), [!hasAccount && menuItems.indexOf('separator') === -1 ? 'separator' : null, !hasAccount ? 'account' : null]).filter(function (it) {
|
1422
|
-
return it !== null;
|
1423
|
-
}).reduce(function (currentItems, item, index) {
|
1424
|
-
if (item === 'resources') {
|
1425
|
-
return [].concat(_toConsumableArray(currentItems), [/*#__PURE__*/React.createElement(ResourcesMenu$1, {
|
1426
|
-
key: "menu-item-resource-".concat(index + 1),
|
1427
|
-
className: "navbar-nav",
|
1428
|
-
itemClassName: "nav-item",
|
1429
|
-
linkClassName: "nav-link"
|
1430
|
-
})]);
|
1431
|
-
}
|
1432
|
-
if (item === 'account') {
|
1433
|
-
return [].concat(_toConsumableArray(currentItems), [/*#__PURE__*/React.createElement(AccountMenu$1, {
|
1434
|
-
key: "menu-item-account-".concat(index + 1),
|
1435
|
-
className: "navbar-nav",
|
1436
|
-
itemClassName: "nav-item",
|
1437
|
-
linkClassName: "nav-link"
|
1438
|
-
})]);
|
1439
|
-
}
|
1440
|
-
if (item === 'separator') {
|
1441
|
-
return [].concat(_toConsumableArray(currentItems), [/*#__PURE__*/React.createElement("span", {
|
1442
|
-
key: "menu-item-spacer-".concat(index + 1),
|
1443
|
-
className: "ms-auto"
|
1444
|
-
})]);
|
1445
|
-
}
|
1446
|
-
var lastItem = currentItems.length > 0 ? currentItems[currentItems.length - 1] : null;
|
1447
|
-
return isArray(lastItem) ? [].concat(_toConsumableArray(currentItems.slice(0, currentItems.length - 1)), [[].concat(_toConsumableArray(lastItem), [item])]) : [].concat(_toConsumableArray(currentItems), [[item]]);
|
1448
|
-
}, []).map(function (it, index) {
|
1449
|
-
return isArray(it) ? /*#__PURE__*/React.createElement(Menu, {
|
1450
|
-
items: it,
|
1451
|
-
key: "submenu-item-".concat(index + 1),
|
1452
|
-
className: "navbar-nav",
|
1453
|
-
itemClassName: "nav-item",
|
1454
|
-
linkClassName: "nav-link"
|
1455
|
-
}) : it;
|
1456
|
-
});
|
1457
|
-
}, [main]);
|
1458
|
-
|
1459
|
-
// 'text-light': theme === 'dark', 'text-dark': theme !== 'dark',
|
1460
|
-
|
1461
|
-
return /*#__PURE__*/React.createElement(Navbar, Object.assign({
|
1462
|
-
theme: background,
|
1463
|
-
loading: loading
|
1464
|
-
}, props), name !== null ? /*#__PURE__*/React.createElement(Link, {
|
1465
|
-
href: route('home'),
|
1466
|
-
className: "navbar-brand"
|
1467
|
-
}, /*#__PURE__*/React.createElement("span", {
|
1468
|
-
className: classNames([{
|
1469
|
-
'text-opacity-75': loading
|
1470
|
-
}])
|
1471
|
-
}, name)) : null, items);
|
1472
|
-
};
|
1473
|
-
MainNavbar.propTypes = propTypes$i;
|
1474
|
-
MainNavbar.defaultProps = defaultProps$h;
|
1475
|
-
var MainNavbar$1 = MainNavbar;
|
1476
|
-
|
1477
|
-
var styles$1 = {};
|
1478
|
-
|
1479
|
-
var propTypes$h = {
|
1480
|
-
children: PropTypes.node,
|
1481
|
-
loading: PropTypes.bool,
|
1482
|
-
fullscreen: PropTypes.bool
|
1483
|
-
};
|
1484
|
-
var defaultProps$g = {
|
1485
|
-
fullscreen: false,
|
1486
|
-
loading: false,
|
1487
|
-
children: null
|
1488
|
-
};
|
1489
|
-
var MainLayout = function MainLayout(_ref) {
|
1490
|
-
var fullscreen = _ref.fullscreen,
|
1491
|
-
loading = _ref.loading,
|
1492
|
-
children = _ref.children;
|
1493
|
-
var _usePanneauColorSchem = contexts.usePanneauColorScheme(),
|
1494
|
-
_usePanneauColorSchem2 = _usePanneauColorSchem.theme,
|
1495
|
-
theme = _usePanneauColorSchem2 === void 0 ? null : _usePanneauColorSchem2,
|
1496
|
-
_usePanneauColorSchem3 = _usePanneauColorSchem.background,
|
1497
|
-
background = _usePanneauColorSchem3 === void 0 ? null : _usePanneauColorSchem3,
|
1498
|
-
_usePanneauColorSchem4 = _usePanneauColorSchem.text,
|
1499
|
-
text = _usePanneauColorSchem4 === void 0 ? null : _usePanneauColorSchem4;
|
1500
|
-
return /*#__PURE__*/React.createElement("div", {
|
1501
|
-
className: classNames([styles$1.container, 'd-flex', 'flex-column', 'min-vh-100']),
|
1502
|
-
"data-bs-theme": theme !== null ? theme : null
|
1503
|
-
}, /*#__PURE__*/React.createElement(MainNavbar$1, {
|
1504
|
-
className: classNames(['border-bottom', 'sticky-top', 'px-3']),
|
1505
|
-
theme: theme,
|
1506
|
-
loading: loading
|
1507
|
-
}), /*#__PURE__*/React.createElement("div", {
|
1508
|
-
className: classNames(['flex-grow-1', _defineProperty(_defineProperty({
|
1509
|
-
'd-flex flex-column': fullscreen
|
1510
|
-
}, "bg-".concat(background), background !== null), "text-".concat(text), text !== null)])
|
1511
|
-
}, children), /*#__PURE__*/React.createElement(elementModal.Modals, {
|
1512
|
-
theme: theme
|
1513
|
-
}));
|
1514
|
-
};
|
1515
|
-
MainLayout.propTypes = propTypes$h;
|
1516
|
-
MainLayout.defaultProps = defaultProps$g;
|
1517
|
-
var MainLayout$1 = MainLayout;
|
1518
|
-
|
1519
|
-
var propTypes$g = {
|
1520
|
-
title: core.PropTypes.label,
|
1521
|
-
actions: PropTypes.node,
|
1522
|
-
small: PropTypes.bool,
|
1523
|
-
className: PropTypes.string,
|
1524
|
-
children: PropTypes.node
|
1525
|
-
};
|
1526
|
-
var defaultProps$f = {
|
1527
|
-
title: null,
|
1528
|
-
actions: null,
|
1529
|
-
small: false,
|
1530
|
-
className: null,
|
1531
|
-
children: null
|
1532
|
-
};
|
1533
|
-
var PageHeader = function PageHeader(_ref) {
|
1534
|
-
var title = _ref.title,
|
1535
|
-
actions = _ref.actions,
|
1536
|
-
small = _ref.small,
|
1537
|
-
className = _ref.className,
|
1538
|
-
children = _ref.children;
|
1539
|
-
// TODO: fix page header components
|
1540
|
-
// const { components } = usePanneau();
|
1541
|
-
// console.log('page-header', components); // eslint-disable-line
|
1542
|
-
var _usePanneauColorSchem = contexts.usePanneauColorScheme(),
|
1543
|
-
text = _usePanneauColorSchem.text,
|
1544
|
-
background = _usePanneauColorSchem.background;
|
1545
|
-
var inner = /*#__PURE__*/React.createElement("div", {
|
1546
|
-
className: "d-flex align-items-center flex-wrap"
|
1547
|
-
}, title !== null ? /*#__PURE__*/React.createElement("h1", {
|
1548
|
-
className: classNames(['mb-0', {
|
1549
|
-
h2: small
|
1550
|
-
}])
|
1551
|
-
}, /*#__PURE__*/React.createElement(Label, null, title)) : null, actions !== null ? /*#__PURE__*/React.createElement("div", {
|
1552
|
-
className: "ms-auto"
|
1553
|
-
}, actions) : null);
|
1554
|
-
return /*#__PURE__*/React.createElement("div", {
|
1555
|
-
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)])
|
1556
|
-
}, /*#__PURE__*/React.createElement("div", {
|
1557
|
-
className: "container-sm"
|
1558
|
-
}, small ? /*#__PURE__*/React.createElement("div", {
|
1559
|
-
className: "row justify-content-center"
|
1560
|
-
}, /*#__PURE__*/React.createElement("div", {
|
1561
|
-
className: "col-12 col-md-8 col-lg-7"
|
1562
|
-
}, inner)) : inner), children);
|
1563
|
-
};
|
1564
|
-
PageHeader.propTypes = propTypes$g;
|
1565
|
-
PageHeader.defaultProps = defaultProps$f;
|
1566
|
-
var PageHeader$1 = PageHeader;
|
1567
|
-
|
1568
|
-
var propTypes$f = {
|
1569
|
-
resource: core.PropTypes.resource.isRequired
|
1570
|
-
};
|
1571
|
-
var defaultProps$e = {};
|
1572
|
-
var ResourceCreatePage = function ResourceCreatePage(_ref) {
|
1573
|
-
var resource = _ref.resource;
|
1574
|
-
var _useLocation = useLocation(),
|
1575
|
-
_useLocation2 = _slicedToArray(_useLocation, 2),
|
1576
|
-
navigate = _useLocation2[1];
|
1577
|
-
var search = useSearch();
|
1578
|
-
var resourceRoute = hooks.useResourceUrlGenerator(resource);
|
1579
|
-
var _useMemo = React.useMemo(function () {
|
1580
|
-
return queryString.parse(search, {
|
1581
|
-
arrayFormat: 'bracket'
|
1582
|
-
});
|
1583
|
-
}, [search]),
|
1584
|
-
_useMemo$type = _useMemo.type,
|
1585
|
-
type = _useMemo$type === void 0 ? null : _useMemo$type;
|
1586
|
-
var resourceValues = intl.useResourceValues(resource);
|
1587
|
-
var typeName = hooks.useResourceTypeName(resource, type);
|
1588
|
-
var onSuccess = React.useCallback(function () {
|
1589
|
-
navigate("".concat(resourceRoute('index'), "?created=true"));
|
1590
|
-
}, [navigate, resourceRoute]);
|
1591
|
-
return /*#__PURE__*/React.createElement(contexts.ResourceProvider, {
|
1592
|
-
resource: resource
|
1593
|
-
}, /*#__PURE__*/React.createElement(MainLayout$1, null, /*#__PURE__*/React.createElement(PageHeader$1, {
|
1594
|
-
title: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
1595
|
-
values: resourceValues,
|
1596
|
-
id: "6viUpq",
|
1597
|
-
defaultMessage: [{
|
1598
|
-
"type": 0,
|
1599
|
-
"value": "Create "
|
1600
|
-
}, {
|
1601
|
-
"type": 1,
|
1602
|
-
"value": "a_singular"
|
1603
|
-
}]
|
1604
|
-
}), typeName !== null ? /*#__PURE__*/React.createElement("span", {
|
1605
|
-
className: "text-body-secondary"
|
1606
|
-
}, " (", typeName, ")") : null),
|
1607
|
-
small: true
|
1608
|
-
}), /*#__PURE__*/React.createElement("div", {
|
1609
|
-
className: "container-sm py-4"
|
1610
|
-
}, /*#__PURE__*/React.createElement("div", {
|
1611
|
-
className: "row justify-content-center"
|
1612
|
-
}, /*#__PURE__*/React.createElement("div", {
|
1613
|
-
className: "col-12 col-md-8 col-lg-7"
|
1614
|
-
}, /*#__PURE__*/React.createElement(ResourceForm, {
|
1615
|
-
resource: resource,
|
1616
|
-
type: type,
|
1617
|
-
onSuccess: onSuccess
|
1618
|
-
}))))));
|
1619
|
-
};
|
1620
|
-
ResourceCreatePage.propTypes = propTypes$f;
|
1621
|
-
ResourceCreatePage.defaultProps = defaultProps$e;
|
1622
|
-
var ResourceCreate = ResourceCreatePage;
|
1623
|
-
|
1624
|
-
var propTypes$e = {
|
1625
|
-
itemId: PropTypes.string.isRequired,
|
1626
|
-
resource: core.PropTypes.resource.isRequired
|
1627
|
-
};
|
1628
|
-
var defaultProps$d = {};
|
1629
|
-
var ResourceDeletePage = function ResourceDeletePage(_ref) {
|
1630
|
-
var itemId = _ref.itemId,
|
1631
|
-
resource = _ref.resource;
|
1632
|
-
var _useLocation = useLocation(),
|
1633
|
-
_useLocation2 = _slicedToArray(_useLocation, 2),
|
1634
|
-
navigate = _useLocation2[1];
|
1635
|
-
var resourceRoute = hooks.useResourceUrlGenerator(resource);
|
1636
|
-
var _useResourceItem = data.useResourceItem(resource, itemId),
|
1637
|
-
item = _useResourceItem.item,
|
1638
|
-
loading = _useResourceItem.loading,
|
1639
|
-
error = _useResourceItem.error;
|
1640
|
-
var _ref2 = item || {},
|
1641
|
-
_ref2$type = _ref2.type,
|
1642
|
-
type = _ref2$type === void 0 ? null : _ref2$type;
|
1643
|
-
var resourceValues = intl.useResourceValues(resource);
|
1644
|
-
var typeName = hooks.useResourceTypeName(resource, type);
|
1645
|
-
var onSuccess = React.useCallback(function () {
|
1646
|
-
return navigate("".concat(resourceRoute('index'), "?deleted=true"));
|
1647
|
-
}, [navigate, resourceRoute]);
|
1648
|
-
return /*#__PURE__*/React.createElement(contexts.ResourceProvider, {
|
1649
|
-
resource: resource
|
1650
|
-
}, /*#__PURE__*/React.createElement(MainLayout$1, {
|
1651
|
-
loading: loading
|
1652
|
-
}, /*#__PURE__*/React.createElement(PageHeader$1, {
|
1653
|
-
title: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
1654
|
-
values: resourceValues,
|
1655
|
-
id: "zN5N/Q",
|
1656
|
-
defaultMessage: [{
|
1657
|
-
"type": 0,
|
1658
|
-
"value": "Delete "
|
1659
|
-
}, {
|
1660
|
-
"type": 1,
|
1661
|
-
"value": "a_singular"
|
1662
|
-
}]
|
1663
|
-
}), typeName !== null ? /*#__PURE__*/React.createElement("span", {
|
1664
|
-
className: "text-body-secondary"
|
1665
|
-
}, " (", typeName, ")") : null),
|
1666
|
-
small: true
|
1667
|
-
}), /*#__PURE__*/React.createElement("div", {
|
1668
|
-
className: "container-sm py-4"
|
1669
|
-
}, /*#__PURE__*/React.createElement("div", {
|
1670
|
-
className: "row justify-content-center"
|
1671
|
-
}, /*#__PURE__*/React.createElement("div", {
|
1672
|
-
className: "col-12 col-md-8 col-lg-7"
|
1673
|
-
}, item !== null ? /*#__PURE__*/React.createElement(ResourceForm, {
|
1674
|
-
resource: resource,
|
1675
|
-
item: item,
|
1676
|
-
onSuccess: onSuccess,
|
1677
|
-
isDelete: true
|
1678
|
-
}) : null, item === null && loading && !error ? /*#__PURE__*/React.createElement(Loading, {
|
1679
|
-
withDelay: true
|
1680
|
-
}, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
1681
|
-
id: "TV3jir",
|
1682
|
-
defaultMessage: [{
|
1683
|
-
"type": 0,
|
1684
|
-
"value": "Loading"
|
1685
|
-
}]
|
1686
|
-
})) : null)))));
|
1687
|
-
};
|
1688
|
-
ResourceDeletePage.propTypes = propTypes$e;
|
1689
|
-
ResourceDeletePage.defaultProps = defaultProps$d;
|
1690
|
-
var ResourceDelete = ResourceDeletePage;
|
1691
|
-
|
1692
|
-
var propTypes$d = {
|
1693
|
-
itemId: PropTypes.string.isRequired,
|
1694
|
-
resource: core.PropTypes.resource.isRequired
|
1695
|
-
};
|
1696
|
-
var defaultProps$c = {};
|
1697
|
-
var ResourceEditPage = function ResourceEditPage(_ref) {
|
1698
|
-
var itemId = _ref.itemId,
|
1699
|
-
resource = _ref.resource;
|
1700
|
-
var _useResourceItem = data.useResourceItem(resource, itemId),
|
1701
|
-
item = _useResourceItem.item,
|
1702
|
-
loading = _useResourceItem.loading,
|
1703
|
-
error = _useResourceItem.error;
|
1704
|
-
var _ref2 = item || {},
|
1705
|
-
_ref2$type = _ref2.type,
|
1706
|
-
type = _ref2$type === void 0 ? null : _ref2$type;
|
1707
|
-
var _useState = React.useState(item),
|
1708
|
-
_useState2 = _slicedToArray(_useState, 2),
|
1709
|
-
editItem = _useState2[0],
|
1710
|
-
setEditItem = _useState2[1];
|
1711
|
-
var typeName = hooks.useResourceTypeName(resource, type);
|
1712
|
-
var onSuccess = React.useCallback(function (newItem) {
|
1713
|
-
return setEditItem(newItem);
|
1714
|
-
}, []);
|
1715
|
-
React.useEffect(function () {
|
1716
|
-
setEditItem(item);
|
1717
|
-
}, [item, setEditItem]);
|
1718
|
-
var resourceValues = intl.useResourceValues(resource);
|
1719
|
-
return /*#__PURE__*/React.createElement(contexts.ResourceProvider, {
|
1720
|
-
resource: resource
|
1721
|
-
}, /*#__PURE__*/React.createElement(MainLayout$1, {
|
1722
|
-
loading: loading
|
1723
|
-
}, /*#__PURE__*/React.createElement(PageHeader$1, {
|
1724
|
-
title: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
1725
|
-
values: resourceValues,
|
1726
|
-
id: "mCfzkJ",
|
1727
|
-
defaultMessage: [{
|
1728
|
-
"type": 0,
|
1729
|
-
"value": "Edit "
|
1730
|
-
}, {
|
1731
|
-
"type": 1,
|
1732
|
-
"value": "a_singular"
|
1733
|
-
}]
|
1734
|
-
}), typeName !== null ? /*#__PURE__*/React.createElement("span", {
|
1735
|
-
className: "text-body-secondary"
|
1736
|
-
}, " (", typeName, ")") : null),
|
1737
|
-
small: true
|
1738
|
-
}), /*#__PURE__*/React.createElement("div", {
|
1739
|
-
className: "container-sm py-4"
|
1740
|
-
}, /*#__PURE__*/React.createElement("div", {
|
1741
|
-
className: "row justify-content-center"
|
1742
|
-
}, /*#__PURE__*/React.createElement("div", {
|
1743
|
-
className: "col-12 col-md-8 col-lg-7"
|
1744
|
-
}, editItem !== null ? /*#__PURE__*/React.createElement(ResourceForm, {
|
1745
|
-
resource: resource,
|
1746
|
-
item: editItem,
|
1747
|
-
type: type,
|
1748
|
-
onSuccess: onSuccess
|
1749
|
-
}) : null, editItem === null && loading && !error ? /*#__PURE__*/React.createElement(Loading, {
|
1750
|
-
withDelay: true
|
1751
|
-
}, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
1752
|
-
id: "TV3jir",
|
1753
|
-
defaultMessage: [{
|
1754
|
-
"type": 0,
|
1755
|
-
"value": "Loading"
|
1756
|
-
}]
|
1757
|
-
})) : null)))));
|
1758
|
-
};
|
1759
|
-
ResourceEditPage.propTypes = propTypes$d;
|
1760
|
-
ResourceEditPage.defaultProps = defaultProps$c;
|
1761
|
-
var ResourceEdit = ResourceEditPage;
|
1762
|
-
|
1763
|
-
var propTypes$c = {
|
1764
|
-
resource: core.PropTypes.resource.isRequired,
|
1765
|
-
className: PropTypes.string
|
1766
|
-
};
|
1767
|
-
var defaultProps$b = {
|
1768
|
-
className: null
|
1769
|
-
};
|
1770
|
-
var ResourceCreateButtom = function ResourceCreateButtom(_ref) {
|
1771
|
-
var resource = _ref.resource,
|
1772
|
-
className = _ref.className;
|
1773
|
-
var _resource$types = resource.types,
|
1774
|
-
types = _resource$types === void 0 ? null : _resource$types;
|
1775
|
-
// const intl = useIntl();
|
1776
|
-
var resourceRoute = hooks.useResourceUrlGenerator(resource);
|
1777
|
-
var resourceValues = intl.useResourceValues(resource);
|
1778
|
-
var _useState = React.useState(false),
|
1779
|
-
_useState2 = _slicedToArray(_useState, 2),
|
1780
|
-
dropdownOpened = _useState2[0],
|
1781
|
-
setDropdownOpened = _useState2[1];
|
1782
|
-
var onClickDropdown = React.useCallback(function (e) {
|
1783
|
-
e.preventDefault();
|
1784
|
-
e.stopPropagation();
|
1785
|
-
setDropdownOpened(!dropdownOpened);
|
1786
|
-
}, [setDropdownOpened, dropdownOpened]);
|
1787
|
-
var finalTypes = types !== null ? types.filter(function (_ref2) {
|
1788
|
-
var _ref2$settings = _ref2.settings,
|
1789
|
-
_ref2$settings2 = _ref2$settings === void 0 ? {} : _ref2$settings,
|
1790
|
-
_ref2$settings2$canCr = _ref2$settings2.canCreate,
|
1791
|
-
canCreate = _ref2$settings2$canCr === void 0 ? true : _ref2$settings2$canCr;
|
1792
|
-
return canCreate;
|
1793
|
-
}) : null;
|
1794
|
-
var hasMultipleTypes = finalTypes !== null && finalTypes.length > 1;
|
1795
|
-
var onDropdownClickOutside = React.useCallback(function () {
|
1796
|
-
if (dropdownOpened) {
|
1797
|
-
setDropdownOpened(false);
|
1798
|
-
}
|
1799
|
-
}, [setDropdownOpened, dropdownOpened]);
|
1800
|
-
var button = /*#__PURE__*/React.createElement(Button, {
|
1801
|
-
href: !hasMultipleTypes ? "".concat(resourceRoute('create')).concat(finalTypes !== null && finalTypes.length === 1 ? "?type=".concat(finalTypes[0].id) : '') : '#',
|
1802
|
-
size: "lg",
|
1803
|
-
theme: "primary",
|
1804
|
-
className: classNames([_defineProperty({
|
1805
|
-
'dropdown-toggle': hasMultipleTypes
|
1806
|
-
}, className, className !== null)]),
|
1807
|
-
onClick: hasMultipleTypes ? onClickDropdown : null
|
1808
|
-
}, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
1809
|
-
values: resourceValues,
|
1810
|
-
id: "l+ddDH",
|
1811
|
-
defaultMessage: [{
|
1812
|
-
"type": 0,
|
1813
|
-
"value": "Create "
|
1814
|
-
}, {
|
1815
|
-
"type": 1,
|
1816
|
-
"value": "a_singular"
|
1817
|
-
}]
|
1818
|
-
}));
|
1819
|
-
return hasMultipleTypes ? /*#__PURE__*/React.createElement("div", {
|
1820
|
-
className: classNames(['dropdown', {
|
1821
|
-
show: dropdownOpened
|
1822
|
-
}])
|
1823
|
-
}, button, /*#__PURE__*/React.createElement(Dropdown, {
|
1824
|
-
items: finalTypes.map(function (it) {
|
1825
|
-
return {
|
1826
|
-
id: it.id,
|
1827
|
-
label: it.name,
|
1828
|
-
href: "".concat(resourceRoute('create'), "?type=").concat(it.id)
|
1829
|
-
};
|
1830
|
-
}),
|
1831
|
-
visible: dropdownOpened,
|
1832
|
-
align: "end",
|
1833
|
-
onClickOutside: onDropdownClickOutside
|
1834
|
-
})) : button;
|
1835
|
-
};
|
1836
|
-
ResourceCreateButtom.propTypes = propTypes$c;
|
1837
|
-
ResourceCreateButtom.defaultProps = defaultProps$b;
|
1838
|
-
var ResourceCreateButton = ResourceCreateButtom;
|
1839
|
-
|
1840
|
-
var _excluded$3 = ["resource"];
|
1841
|
-
var propTypes$b = {
|
1842
|
-
resource: PropTypes.oneOfType([PropTypes.string, PropTypes.shape({
|
1843
|
-
id: PropTypes.string
|
1844
|
-
})]).isRequired
|
1845
|
-
};
|
1846
|
-
|
1847
|
-
// Kept for backward compatibility with exports
|
1848
|
-
var ResourceItemsList = function ResourceItemsList(_ref) {
|
1849
|
-
var resource = _ref.resource,
|
1850
|
-
props = _objectWithoutProperties(_ref, _excluded$3);
|
1851
|
-
var _ref2 = isObject(resource) ? resource : {
|
1852
|
-
id: resource
|
1853
|
-
},
|
1854
|
-
_ref2$id = _ref2.id,
|
1855
|
-
finalResource = _ref2$id === void 0 ? null : _ref2$id;
|
1856
|
-
return /*#__PURE__*/React.createElement(ResourceList, Object.assign({
|
1857
|
-
resource: finalResource
|
1858
|
-
}, props));
|
1859
|
-
};
|
1860
|
-
ResourceItemsList.propTypes = propTypes$b;
|
1861
|
-
var ResourceItemsList$1 = ResourceItemsList;
|
1862
|
-
|
1863
|
-
var _excluded$2 = ["id", "component"];
|
1864
|
-
var propTypes$a = {
|
1865
|
-
resource: core.PropTypes.resource.isRequired,
|
1866
|
-
defaultActions: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.object])) // eslint-disable-line react/forbid-prop-types
|
1867
|
-
};
|
1868
|
-
var defaultProps$a = {
|
1869
|
-
defaultActions: ['create']
|
1870
|
-
};
|
1871
|
-
var ResourceIndexPage = function ResourceIndexPage(_ref) {
|
1872
|
-
var resource = _ref.resource,
|
1873
|
-
defaultActions = _ref.defaultActions;
|
1874
|
-
var _usePanneauColorSchem = contexts.usePanneauColorScheme(),
|
1875
|
-
_usePanneauColorSchem2 = _usePanneauColorSchem.theme,
|
1876
|
-
theme = _usePanneauColorSchem2 === void 0 ? null : _usePanneauColorSchem2;
|
1877
|
-
var name = resource.name,
|
1878
|
-
_resource$settings = resource.settings,
|
1879
|
-
settings = _resource$settings === void 0 ? {} : _resource$settings,
|
1880
|
-
_resource$index = resource.index,
|
1881
|
-
index = _resource$index === void 0 ? {} : _resource$index;
|
1882
|
-
var _ref2 = settings || {},
|
1883
|
-
_ref2$canCreate = _ref2.canCreate,
|
1884
|
-
canCreate = _ref2$canCreate === void 0 ? true : _ref2$canCreate,
|
1885
|
-
_ref2$indexIsPaginate = _ref2.indexIsPaginated,
|
1886
|
-
paginated = _ref2$indexIsPaginate === void 0 ? false : _ref2$indexIsPaginate;
|
1887
|
-
var _ref3 = index || {},
|
1888
|
-
_ref3$actions = _ref3.actions,
|
1889
|
-
indexActions = _ref3$actions === void 0 ? null : _ref3$actions;
|
1890
|
-
var finalActions = React.useMemo(function () {
|
1891
|
-
return (indexActions || defaultActions.filter(function (it) {
|
1892
|
-
return it !== 'create' || canCreate;
|
1893
|
-
})).map(function (it) {
|
1894
|
-
return it === 'create' ? {
|
1895
|
-
id: 'create',
|
1896
|
-
component: ResourceCreateButton,
|
1897
|
-
size: 'lg',
|
1898
|
-
theme: 'primary'
|
1899
|
-
} : it;
|
1900
|
-
});
|
1901
|
-
}, [canCreate, indexActions]);
|
1902
|
-
var resourceValues = intl.useResourceValues(resource);
|
1903
|
-
var componentsManager = contexts.useComponentsManager();
|
1904
|
-
var _useLocation = useLocation(),
|
1905
|
-
_useLocation2 = _slicedToArray(_useLocation, 2),
|
1906
|
-
navigate = _useLocation2[1];
|
1907
|
-
var search = useSearch();
|
1908
|
-
var query = React.useMemo(function () {
|
1909
|
-
return queryString.parse(search, {
|
1910
|
-
arrayFormat: 'bracket'
|
1911
|
-
});
|
1912
|
-
}, [search]);
|
1913
|
-
var listQuery = React.useMemo(function () {
|
1914
|
-
return query;
|
1915
|
-
}, [query]); // TODO: omit routes
|
1916
|
-
var _ref4 = query || {},
|
1917
|
-
_ref4$created = _ref4.created,
|
1918
|
-
created = _ref4$created === void 0 ? false : _ref4$created,
|
1919
|
-
_ref4$deleted = _ref4.deleted,
|
1920
|
-
deleted = _ref4$deleted === void 0 ? false : _ref4$deleted;
|
1921
|
-
var resourceRoute = hooks.useResourceUrlGenerator(resource);
|
1922
|
-
var url = resourceRoute('index');
|
1923
|
-
var onQueryChange = React.useCallback(function (submitQuery) {
|
1924
|
-
var newQuery = submitQuery !== null ? Object.keys(submitQuery).reduce(function (currentQuery, key) {
|
1925
|
-
var value = submitQuery[key];
|
1926
|
-
return value !== null ? _objectSpread(_objectSpread({}, currentQuery), {}, _defineProperty({}, key, value)) : currentQuery;
|
1927
|
-
}, null) : null;
|
1928
|
-
navigate("".concat(url).concat(newQuery !== null ? "?".concat(queryString.stringify(newQuery, {
|
1929
|
-
arrayFormat: 'bracket'
|
1930
|
-
})) : ''));
|
1931
|
-
}, [navigate, url, query, paginated]);
|
1932
|
-
var onQueryReset = React.useCallback(function () {
|
1933
|
-
var resetQuery = queryString.stringify(null, {
|
1934
|
-
arrayFormat: 'bracket'
|
1935
|
-
});
|
1936
|
-
navigate("".concat(url, "?").concat(resetQuery));
|
1937
|
-
}, [navigate, url, paginated]);
|
1938
|
-
var onClickCloseAlert = React.useCallback(function () {
|
1939
|
-
navigate(url, {
|
1940
|
-
replace: true
|
1941
|
-
});
|
1942
|
-
}, [navigate, url]);
|
1943
|
-
return /*#__PURE__*/React.createElement(contexts.ResourceProvider, {
|
1944
|
-
resource: resource
|
1945
|
-
}, /*#__PURE__*/React.createElement(MainLayout$1, null, /*#__PURE__*/React.createElement(PageHeader$1, {
|
1946
|
-
title: name,
|
1947
|
-
actions: finalActions.length > 0 ? /*#__PURE__*/React.createElement("div", {
|
1948
|
-
className: "d-flex align-items-center"
|
1949
|
-
}, finalActions.map(function (_ref5) {
|
1950
|
-
var id = _ref5.id,
|
1951
|
-
_ref5$component = _ref5.component,
|
1952
|
-
component = _ref5$component === void 0 ? Button : _ref5$component,
|
1953
|
-
actionsProps = _objectWithoutProperties(_ref5, _excluded$2);
|
1954
|
-
var ActionComponent = isString(component) ? componentsManager.getComponent(component) : component;
|
1955
|
-
return ActionComponent !== null ? /*#__PURE__*/React.createElement(ActionComponent, Object.assign({
|
1956
|
-
key: "action-".concat(id)
|
1957
|
-
}, actionsProps, ActionComponent !== Button ? {
|
1958
|
-
resource: resource,
|
1959
|
-
query: query,
|
1960
|
-
onQueryChange: onQueryChange
|
1961
|
-
} : {})) : null;
|
1962
|
-
})) : null
|
1963
|
-
}), /*#__PURE__*/React.createElement("div", {
|
1964
|
-
className: classNames(['container-sm py-4'])
|
1965
|
-
}, created ? /*#__PURE__*/React.createElement(Alert, {
|
1966
|
-
className: "mb-4",
|
1967
|
-
onClose: onClickCloseAlert
|
1968
|
-
}, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
1969
|
-
values: resourceValues,
|
1970
|
-
id: "bfP/d8",
|
1971
|
-
defaultMessage: [{
|
1972
|
-
"type": 1,
|
1973
|
-
"value": "The_singular"
|
1974
|
-
}, {
|
1975
|
-
"type": 0,
|
1976
|
-
"value": " has been created."
|
1977
|
-
}]
|
1978
|
-
})) : null, deleted ? /*#__PURE__*/React.createElement(Alert, {
|
1979
|
-
className: "mb-4",
|
1980
|
-
onClose: onClickCloseAlert
|
1981
|
-
}, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
1982
|
-
values: resourceValues,
|
1983
|
-
id: "dkRdks",
|
1984
|
-
defaultMessage: [{
|
1985
|
-
"type": 1,
|
1986
|
-
"value": "The_singular"
|
1987
|
-
}, {
|
1988
|
-
"type": 0,
|
1989
|
-
"value": " has been deleted."
|
1990
|
-
}]
|
1991
|
-
})) : null, /*#__PURE__*/React.createElement(ResourceItemsList$1, {
|
1992
|
-
resource: resource,
|
1993
|
-
baseUrl: url,
|
1994
|
-
query: listQuery,
|
1995
|
-
paginated: paginated,
|
1996
|
-
onQueryChange: onQueryChange,
|
1997
|
-
onQueryReset: onQueryReset,
|
1998
|
-
theme: theme
|
1999
|
-
}))));
|
2000
|
-
};
|
2001
|
-
ResourceIndexPage.propTypes = propTypes$a;
|
2002
|
-
ResourceIndexPage.defaultProps = defaultProps$a;
|
2003
|
-
var ResourceIndex = ResourceIndexPage;
|
2004
|
-
|
2005
|
-
var propTypes$9 = {
|
2006
|
-
resource: core.PropTypes.resource.isRequired,
|
2007
|
-
itemId: PropTypes.string.isRequired
|
2008
|
-
};
|
2009
|
-
var defaultProps$9 = {};
|
2010
|
-
var ResourceShowPage = function ResourceShowPage(_ref) {
|
2011
|
-
var resource = _ref.resource,
|
2012
|
-
itemId = _ref.itemId;
|
2013
|
-
var name = resource.name;
|
2014
|
-
var _useResourceItem = data.useResourceItem(resource, itemId),
|
2015
|
-
item = _useResourceItem.item,
|
2016
|
-
loading = _useResourceItem.loading,
|
2017
|
-
error = _useResourceItem.error;
|
2018
|
-
var _ref2 = item || {},
|
2019
|
-
_ref2$type = _ref2.type,
|
2020
|
-
type = _ref2$type === void 0 ? null : _ref2$type;
|
2021
|
-
return /*#__PURE__*/React.createElement(contexts.ResourceProvider, {
|
2022
|
-
resource: resource
|
2023
|
-
}, /*#__PURE__*/React.createElement(MainLayout$1, {
|
2024
|
-
loading: loading
|
2025
|
-
}, /*#__PURE__*/React.createElement(PageHeader$1, {
|
2026
|
-
title: "".concat(name, " #").concat(itemId),
|
2027
|
-
small: true
|
2028
|
-
}), /*#__PURE__*/React.createElement("div", {
|
2029
|
-
className: "container-sm py-4"
|
2030
|
-
}, /*#__PURE__*/React.createElement("div", {
|
2031
|
-
className: "row justify-content-center"
|
2032
|
-
}, /*#__PURE__*/React.createElement("div", {
|
2033
|
-
className: "col-12 col-md-8 col-lg-7"
|
2034
|
-
}, item !== null ? /*#__PURE__*/React.createElement(ResourceForm, {
|
2035
|
-
resource: resource,
|
2036
|
-
item: item,
|
2037
|
-
type: type,
|
2038
|
-
disabled: true
|
2039
|
-
}) : null, item === null && loading && !error ? /*#__PURE__*/React.createElement(Loading, {
|
2040
|
-
withDelay: true
|
2041
|
-
}, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
2042
|
-
id: "TV3jir",
|
2043
|
-
defaultMessage: [{
|
2044
|
-
"type": 0,
|
2045
|
-
"value": "Loading"
|
2046
|
-
}]
|
2047
|
-
})) : null)))));
|
2048
|
-
};
|
2049
|
-
ResourceShowPage.propTypes = propTypes$9;
|
2050
|
-
ResourceShowPage.defaultProps = defaultProps$9;
|
2051
|
-
var ResourceShow = ResourceShowPage;
|
2052
|
-
|
2053
|
-
var propTypes$8 = {
|
2054
|
-
itemId: PropTypes.string.isRequired,
|
2055
|
-
resource: core.PropTypes.resource.isRequired
|
2056
|
-
};
|
2057
|
-
var defaultProps$8 = {};
|
2058
|
-
var ResourceDuplicatePage = function ResourceDuplicatePage(_ref) {
|
2059
|
-
var itemId = _ref.itemId,
|
2060
|
-
resource = _ref.resource;
|
2061
|
-
var _useLocation = useLocation(),
|
2062
|
-
_useLocation2 = _slicedToArray(_useLocation, 2),
|
2063
|
-
navigate = _useLocation2[1];
|
2064
|
-
var resourceRoute = hooks.useResourceUrlGenerator(resource);
|
2065
|
-
var _useResourceItem = data.useResourceItem(resource, itemId),
|
2066
|
-
item = _useResourceItem.item,
|
2067
|
-
loading = _useResourceItem.loading,
|
2068
|
-
error = _useResourceItem.error;
|
2069
|
-
var _ref2 = item || {},
|
2070
|
-
_ref2$type = _ref2.type,
|
2071
|
-
type = _ref2$type === void 0 ? null : _ref2$type;
|
2072
|
-
var resourceValues = intl.useResourceValues(resource);
|
2073
|
-
var typeName = hooks.useResourceTypeName(resource, type);
|
2074
|
-
var onSuccess = React.useCallback(function () {
|
2075
|
-
var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
2076
|
-
_ref3$id = _ref3.id,
|
2077
|
-
id = _ref3$id === void 0 ? null : _ref3$id;
|
2078
|
-
return navigate("".concat(resourceRoute('edit', {
|
2079
|
-
id: id
|
2080
|
-
}), "?duplicated=true"));
|
2081
|
-
}, [navigate, resourceRoute]);
|
2082
|
-
return /*#__PURE__*/React.createElement(contexts.ResourceProvider, {
|
2083
|
-
resource: resource
|
2084
|
-
}, /*#__PURE__*/React.createElement(MainLayout$1, {
|
2085
|
-
loading: loading
|
2086
|
-
}, /*#__PURE__*/React.createElement(PageHeader$1, {
|
2087
|
-
title: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
2088
|
-
values: resourceValues,
|
2089
|
-
id: "G7M4nI",
|
2090
|
-
defaultMessage: [{
|
2091
|
-
"type": 0,
|
2092
|
-
"value": "Duplicate "
|
2093
|
-
}, {
|
2094
|
-
"type": 1,
|
2095
|
-
"value": "a_singular"
|
2096
|
-
}]
|
2097
|
-
}), typeName !== null ? /*#__PURE__*/React.createElement("span", {
|
2098
|
-
className: "text-body-secondary"
|
2099
|
-
}, " (", typeName, ")") : null),
|
2100
|
-
small: true
|
2101
|
-
}), /*#__PURE__*/React.createElement("div", {
|
2102
|
-
className: "container-sm py-4"
|
2103
|
-
}, /*#__PURE__*/React.createElement("div", {
|
2104
|
-
className: "row justify-content-center"
|
2105
|
-
}, /*#__PURE__*/React.createElement("div", {
|
2106
|
-
className: "col-12 col-md-8 col-lg-7"
|
2107
|
-
}, item !== null ? /*#__PURE__*/React.createElement(ResourceForm, {
|
2108
|
-
resource: resource,
|
2109
|
-
item: item,
|
2110
|
-
onSuccess: onSuccess,
|
2111
|
-
isDuplicate: true
|
2112
|
-
}) : null, item === null && loading && !error ? /*#__PURE__*/React.createElement(Loading, {
|
2113
|
-
withDelay: true
|
2114
|
-
}, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
2115
|
-
id: "TV3jir",
|
2116
|
-
defaultMessage: [{
|
2117
|
-
"type": 0,
|
2118
|
-
"value": "Loading"
|
2119
|
-
}]
|
2120
|
-
})) : null)))));
|
2121
|
-
};
|
2122
|
-
ResourceDuplicatePage.propTypes = propTypes$8;
|
2123
|
-
ResourceDuplicatePage.defaultProps = defaultProps$8;
|
2124
|
-
var ResourceDuplicate = ResourceDuplicatePage;
|
2125
|
-
|
2126
|
-
/* eslint-disable react/jsx-props-no-spreading */
|
2127
|
-
var propTypes$7 = {};
|
2128
|
-
var defaultProps$7 = {};
|
2129
|
-
var HomePage = function HomePage() {
|
2130
|
-
var route = contexts.useUrlGenerator();
|
2131
|
-
var resources = contexts.usePanneauResources();
|
2132
|
-
var visibleResources = resources.filter(function (_ref) {
|
2133
|
-
var _ref$settings = _ref.settings,
|
2134
|
-
_ref$settings2 = _ref$settings === void 0 ? {} : _ref$settings,
|
2135
|
-
_ref$settings2$hideIn = _ref$settings2.hideInNavbar,
|
2136
|
-
hideInNavbar = _ref$settings2$hideIn === void 0 ? false : _ref$settings2$hideIn;
|
2137
|
-
return !hideInNavbar;
|
2138
|
-
});
|
2139
|
-
return /*#__PURE__*/React.createElement(MainLayout$1, null, /*#__PURE__*/React.createElement("div", {
|
2140
|
-
className: "container-sm py-4"
|
2141
|
-
}, visibleResources.map(function (resource) {
|
2142
|
-
var _ref2 = resource || {},
|
2143
|
-
resourceId = _ref2.id;
|
2144
|
-
var resourceValues = intl.useResourceValues(resource);
|
2145
|
-
return /*#__PURE__*/React.createElement(Link, {
|
2146
|
-
className: "d-block my-2",
|
2147
|
-
key: "resource-link-".concat(resourceId),
|
2148
|
-
href: route('resources.index', {
|
2149
|
-
resource: resourceId
|
2150
|
-
})
|
2151
|
-
}, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
2152
|
-
values: resourceValues,
|
2153
|
-
id: "FntHPK",
|
2154
|
-
defaultMessage: [{
|
2155
|
-
"type": 0,
|
2156
|
-
"value": "View "
|
2157
|
-
}, {
|
2158
|
-
"type": 1,
|
2159
|
-
"value": "the_plural"
|
2160
|
-
}]
|
2161
|
-
}));
|
2162
|
-
})));
|
2163
|
-
};
|
2164
|
-
HomePage.propTypes = propTypes$7;
|
2165
|
-
HomePage.defaultProps = defaultProps$7;
|
2166
|
-
var HomePage$1 = HomePage;
|
2167
|
-
|
2168
|
-
var propTypes$6 = {};
|
2169
|
-
var defaultProps$6 = {};
|
2170
|
-
var AccountPage = function AccountPage() {
|
2171
|
-
return /*#__PURE__*/React.createElement(MainLayout$1, null, /*#__PURE__*/React.createElement("div", {
|
2172
|
-
className: "container-sm py-4"
|
2173
|
-
}, "Account page"));
|
2174
|
-
};
|
2175
|
-
AccountPage.propTypes = propTypes$6;
|
2176
|
-
AccountPage.defaultProps = defaultProps$6;
|
2177
|
-
var AccountPage$1 = AccountPage;
|
2178
|
-
|
2179
|
-
/* eslint-disable react/jsx-props-no-spreading */
|
2180
|
-
var propTypes$5 = {
|
2181
|
-
className: PropTypes.string,
|
2182
|
-
onSuccess: PropTypes.func
|
2183
|
-
};
|
2184
|
-
var defaultProps$5 = {
|
2185
|
-
className: null,
|
2186
|
-
onSuccess: null
|
2187
|
-
};
|
2188
|
-
var LoginForm = function LoginForm(_ref) {
|
2189
|
-
var className = _ref.className,
|
2190
|
-
onSuccess = _ref.onSuccess;
|
2191
|
-
var url = contexts.useUrlGenerator();
|
2192
|
-
var _useAuth = auth.useAuth(),
|
2193
|
-
login = _useAuth.login;
|
2194
|
-
var postForm = React.useCallback(function (action, _ref2) {
|
2195
|
-
var email = _ref2.email,
|
2196
|
-
password = _ref2.password;
|
2197
|
-
return login(email, password);
|
2198
|
-
}, [login]);
|
2199
|
-
var FormComponents = contexts.useFormsComponents();
|
2200
|
-
var FormComponent = utils.getComponentFromName('login', FormComponents);
|
2201
|
-
return FormComponent !== null ? /*#__PURE__*/React.createElement(FormComponent, {
|
2202
|
-
action: url('auth.login'),
|
2203
|
-
postForm: postForm,
|
2204
|
-
onComplete: onSuccess,
|
2205
|
-
className: className,
|
2206
|
-
submitButtonLabel: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
2207
|
-
id: "g6qbbX",
|
2208
|
-
defaultMessage: [{
|
2209
|
-
"type": 0,
|
2210
|
-
"value": "Log in"
|
2211
|
-
}]
|
2212
|
-
})
|
2213
|
-
}) : null;
|
2214
|
-
};
|
2215
|
-
LoginForm.propTypes = propTypes$5;
|
2216
|
-
LoginForm.defaultProps = defaultProps$5;
|
2217
|
-
var LoginForm$1 = LoginForm;
|
2218
|
-
|
2219
|
-
var styles = {};
|
2220
|
-
|
2221
|
-
var propTypes$4 = {
|
2222
|
-
children: PropTypes.node.isRequired,
|
2223
|
-
fullscreen: PropTypes.bool
|
2224
|
-
};
|
2225
|
-
var defaultProps$4 = {
|
2226
|
-
fullscreen: false
|
2227
|
-
};
|
2228
|
-
var GuestLayout = function GuestLayout(_ref) {
|
2229
|
-
var fullscreen = _ref.fullscreen,
|
2230
|
-
children = _ref.children;
|
2231
|
-
var _usePanneauColorSchem = contexts.usePanneauColorScheme(),
|
2232
|
-
_usePanneauColorSchem2 = _usePanneauColorSchem.theme,
|
2233
|
-
theme = _usePanneauColorSchem2 === void 0 ? null : _usePanneauColorSchem2,
|
2234
|
-
_usePanneauColorSchem3 = _usePanneauColorSchem.background,
|
2235
|
-
background = _usePanneauColorSchem3 === void 0 ? null : _usePanneauColorSchem3,
|
2236
|
-
_usePanneauColorSchem4 = _usePanneauColorSchem.text,
|
2237
|
-
text = _usePanneauColorSchem4 === void 0 ? null : _usePanneauColorSchem4;
|
2238
|
-
return /*#__PURE__*/React.createElement("div", {
|
2239
|
-
className: classNames([styles.container, {
|
2240
|
-
'd-flex flex-column min-vh-100': fullscreen
|
2241
|
-
}]),
|
2242
|
-
"data-bs-theme": theme !== null ? theme : null
|
2243
|
-
}, /*#__PURE__*/React.createElement(MainNavbar$1, {
|
2244
|
-
className: classNames(['sticky-top', 'px-3'])
|
2245
|
-
}), /*#__PURE__*/React.createElement("div", {
|
2246
|
-
className: classNames(_defineProperty(_defineProperty({
|
2247
|
-
'd-flex flex-column flex-grow-1': fullscreen
|
2248
|
-
}, "bg-".concat(background), background !== null), "text-".concat(text), text !== null))
|
2249
|
-
}, /*#__PURE__*/React.createElement("div", {
|
2250
|
-
className: classNames({
|
2251
|
-
'w-100 my-auto': fullscreen
|
2252
|
-
})
|
2253
|
-
}, children)));
|
2254
|
-
};
|
2255
|
-
GuestLayout.propTypes = propTypes$4;
|
2256
|
-
GuestLayout.defaultProps = defaultProps$4;
|
2257
|
-
var GuestLayout$1 = GuestLayout;
|
2258
|
-
|
2259
|
-
/* eslint-disable react/jsx-props-no-spreading */
|
2260
|
-
var propTypes$3 = {};
|
2261
|
-
var defaultProps$3 = {};
|
2262
|
-
var LoginPage = function LoginPage() {
|
2263
|
-
var route = contexts.useUrlGenerator();
|
2264
|
-
// Sadly necessary to update cookies and routes correctly from the backend,
|
2265
|
-
// make it post directly instead of api call
|
2266
|
-
var onSuccess = React.useCallback(function () {
|
2267
|
-
window.location.href = route('home');
|
2268
|
-
}, [route]);
|
2269
|
-
return /*#__PURE__*/React.createElement(GuestLayout$1, {
|
2270
|
-
fullscreen: true
|
2271
|
-
}, /*#__PURE__*/React.createElement("div", {
|
2272
|
-
className: "container-sm py-4"
|
2273
|
-
}, /*#__PURE__*/React.createElement("div", {
|
2274
|
-
className: "row justify-content-center"
|
2275
|
-
}, /*#__PURE__*/React.createElement("div", {
|
2276
|
-
className: "col-12 col-sm-8 col-md-6"
|
2277
|
-
}, /*#__PURE__*/React.createElement("h1", {
|
2278
|
-
className: "mb-4"
|
2279
|
-
}, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
2280
|
-
id: "AeOZq+",
|
2281
|
-
defaultMessage: [{
|
2282
|
-
"type": 0,
|
2283
|
-
"value": "Login"
|
2284
|
-
}]
|
2285
|
-
})), /*#__PURE__*/React.createElement(LoginForm$1, {
|
2286
|
-
onSuccess: onSuccess
|
2287
|
-
})))));
|
2288
|
-
};
|
2289
|
-
LoginPage.propTypes = propTypes$3;
|
2290
|
-
LoginPage.defaultProps = defaultProps$3;
|
2291
|
-
var LoginPage$1 = LoginPage;
|
2292
|
-
|
2293
|
-
var messages = reactIntl.defineMessages({
|
2294
|
-
metaTitle401: {
|
2295
|
-
"id": "HOobY2",
|
2296
|
-
"defaultMessage": [{
|
2297
|
-
"type": 0,
|
2298
|
-
"value": "Error 401"
|
2299
|
-
}]
|
2300
|
-
},
|
2301
|
-
title401: {
|
2302
|
-
"id": "6nwWPR",
|
2303
|
-
"defaultMessage": [{
|
2304
|
-
"type": 0,
|
2305
|
-
"value": "Error 401"
|
2306
|
-
}]
|
2307
|
-
},
|
2308
|
-
description401: {
|
2309
|
-
"id": "82P2dS",
|
2310
|
-
"defaultMessage": [{
|
2311
|
-
"type": 0,
|
2312
|
-
"value": "You are not authorized to access this page."
|
2313
|
-
}]
|
2314
|
-
},
|
2315
|
-
metaTitle403: {
|
2316
|
-
"id": "+6cCPF",
|
2317
|
-
"defaultMessage": [{
|
2318
|
-
"type": 0,
|
2319
|
-
"value": "Error 403"
|
2320
|
-
}]
|
2321
|
-
},
|
2322
|
-
title403: {
|
2323
|
-
"id": "Pih2UO",
|
2324
|
-
"defaultMessage": [{
|
2325
|
-
"type": 0,
|
2326
|
-
"value": "Error 403"
|
2327
|
-
}]
|
2328
|
-
},
|
2329
|
-
description403: {
|
2330
|
-
"id": "8HFiMs",
|
2331
|
-
"defaultMessage": [{
|
2332
|
-
"type": 0,
|
2333
|
-
"value": "Access to this page is forbidden"
|
2334
|
-
}]
|
2335
|
-
},
|
2336
|
-
metaTitle404: {
|
2337
|
-
"id": "US/AMe",
|
2338
|
-
"defaultMessage": [{
|
2339
|
-
"type": 0,
|
2340
|
-
"value": "Error 404"
|
2341
|
-
}]
|
2342
|
-
},
|
2343
|
-
title404: {
|
2344
|
-
"id": "6Ie+vL",
|
2345
|
-
"defaultMessage": [{
|
2346
|
-
"type": 0,
|
2347
|
-
"value": "Error 404"
|
2348
|
-
}]
|
2349
|
-
},
|
2350
|
-
description404: {
|
2351
|
-
"id": "wKPI1y",
|
2352
|
-
"defaultMessage": [{
|
2353
|
-
"type": 0,
|
2354
|
-
"value": "This page doesn’t exist"
|
2355
|
-
}]
|
2356
|
-
},
|
2357
|
-
metaTitle500: {
|
2358
|
-
"id": "ejwBSw",
|
2359
|
-
"defaultMessage": [{
|
2360
|
-
"type": 0,
|
2361
|
-
"value": "Error 500"
|
2362
|
-
}]
|
2363
|
-
},
|
2364
|
-
title500: {
|
2365
|
-
"id": "owrRHV",
|
2366
|
-
"defaultMessage": [{
|
2367
|
-
"type": 0,
|
2368
|
-
"value": "Error 500"
|
2369
|
-
}]
|
2370
|
-
},
|
2371
|
-
description500: {
|
2372
|
-
"id": "yALN2p",
|
2373
|
-
"defaultMessage": [{
|
2374
|
-
"type": 0,
|
2375
|
-
"value": "There was an error"
|
2376
|
-
}]
|
2377
|
-
},
|
2378
|
-
gotoHome: {
|
2379
|
-
"id": "hezcGl",
|
2380
|
-
"defaultMessage": [{
|
2381
|
-
"type": 0,
|
2382
|
-
"value": "Go to home page"
|
2383
|
-
}]
|
2384
|
-
}
|
2385
|
-
});
|
2386
|
-
var propTypes$2 = {
|
2387
|
-
statusCode: core.PropTypes.statusCode
|
2388
|
-
};
|
2389
|
-
var defaultProps$2 = {
|
2390
|
-
statusCode: null
|
2391
|
-
};
|
2392
|
-
var ErrorPage = function ErrorPage(_ref) {
|
2393
|
-
var statusCode = _ref.statusCode;
|
2394
|
-
return /*#__PURE__*/React.createElement(GuestLayout$1, {
|
2395
|
-
fullscreen: true
|
2396
|
-
}, /*#__PURE__*/React.createElement("div", {
|
2397
|
-
className: "container-sm py-4"
|
2398
|
-
}, /*#__PURE__*/React.createElement("div", {
|
2399
|
-
className: "row justify-content-center"
|
2400
|
-
}, /*#__PURE__*/React.createElement("div", {
|
2401
|
-
className: "col-12 col-sm-8 col-md-6"
|
2402
|
-
}, /*#__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)]))))));
|
2403
|
-
};
|
2404
|
-
ErrorPage.propTypes = propTypes$2;
|
2405
|
-
ErrorPage.defaultProps = defaultProps$2;
|
2406
|
-
var ErrorPage$1 = ErrorPage;
|
2407
|
-
|
2408
|
-
var _excluded$1 = ["path", "component"];
|
2409
|
-
var createResourceRoutes = function createResourceRoutes(resource, _ref) {
|
2410
|
-
var route = _ref.route,
|
2411
|
-
componentsManager = _ref.componentsManager,
|
2412
|
-
_ref$pages = _ref.pages,
|
2413
|
-
pages = _ref$pages === void 0 ? {} : _ref$pages;
|
2414
|
-
var resourceId = resource.id,
|
2415
|
-
_resource$pages = resource.pages,
|
2416
|
-
resourcePages = _resource$pages === void 0 ? {} : _resource$pages,
|
2417
|
-
_resource$extraRoutes = resource.extraRoutes,
|
2418
|
-
extraRoutes = _resource$extraRoutes === void 0 ? [] : _resource$extraRoutes;
|
2419
|
-
|
2420
|
-
// Load custom pages from resource
|
2421
|
-
var _ref2 = pages || {},
|
2422
|
-
_ref2$index = _ref2.index,
|
2423
|
-
indexPage = _ref2$index === void 0 ? null : _ref2$index,
|
2424
|
-
_ref2$show = _ref2.show,
|
2425
|
-
showPage = _ref2$show === void 0 ? null : _ref2$show,
|
2426
|
-
_ref2$create = _ref2.create,
|
2427
|
-
createPage = _ref2$create === void 0 ? null : _ref2$create,
|
2428
|
-
_ref2$edit = _ref2.edit,
|
2429
|
-
editPage = _ref2$edit === void 0 ? null : _ref2$edit,
|
2430
|
-
_ref2$delete = _ref2["delete"],
|
2431
|
-
deletePage = _ref2$delete === void 0 ? null : _ref2$delete,
|
2432
|
-
_ref2$duplicate = _ref2.duplicate,
|
2433
|
-
duplicatePage = _ref2$duplicate === void 0 ? null : _ref2$duplicate;
|
2434
|
-
var _ref3 = resourcePages || {},
|
2435
|
-
_ref3$index = _ref3.index,
|
2436
|
-
resourceIndexPage = _ref3$index === void 0 ? null : _ref3$index,
|
2437
|
-
_ref3$show = _ref3.show,
|
2438
|
-
resourceShowPage = _ref3$show === void 0 ? null : _ref3$show,
|
2439
|
-
_ref3$create = _ref3.create,
|
2440
|
-
resourceCreatePage = _ref3$create === void 0 ? null : _ref3$create,
|
2441
|
-
_ref3$edit = _ref3.edit,
|
2442
|
-
resourceEditPage = _ref3$edit === void 0 ? null : _ref3$edit,
|
2443
|
-
_ref3$delete = _ref3["delete"],
|
2444
|
-
resourceDeletePage = _ref3$delete === void 0 ? null : _ref3$delete,
|
2445
|
-
_ref3$duplicate = _ref3.duplicate,
|
2446
|
-
resourceDuplicatePage = _ref3$duplicate === void 0 ? null : _ref3$duplicate;
|
2447
|
-
var ResourceIndexComponent = componentsManager.getComponent(resourceIndexPage === null || resourceIndexPage === void 0 ? void 0 : resourceIndexPage.component) || componentsManager.getComponent(indexPage === null || indexPage === void 0 ? void 0 : indexPage.component) || ResourceIndex;
|
2448
|
-
var ResourceShowComponent = componentsManager.getComponent(resourceShowPage === null || resourceShowPage === void 0 ? void 0 : resourceShowPage.component) || componentsManager.getComponent(showPage === null || showPage === void 0 ? void 0 : showPage.component) || ResourceShow;
|
2449
|
-
var ResourceCreateComponent = componentsManager.getComponent(resourceCreatePage === null || resourceCreatePage === void 0 ? void 0 : resourceCreatePage.component) || componentsManager.getComponent(createPage === null || createPage === void 0 ? void 0 : createPage.component) || ResourceCreate;
|
2450
|
-
var ResourceEditComponent = componentsManager.getComponent(resourceEditPage === null || resourceEditPage === void 0 ? void 0 : resourceEditPage.component) || componentsManager.getComponent(editPage === null || editPage === void 0 ? void 0 : editPage.component) || ResourceEdit;
|
2451
|
-
var ResourceDeleteComponent = componentsManager.getComponent(resourceDeletePage === null || resourceDeletePage === void 0 ? void 0 : resourceDeletePage.component) || componentsManager.getComponent(deletePage === null || deletePage === void 0 ? void 0 : deletePage.component) || ResourceDelete;
|
2452
|
-
componentsManager.getComponent(resourceDuplicatePage === null || resourceDuplicatePage === void 0 ? void 0 : resourceDuplicatePage.component) || componentsManager.getComponent(duplicatePage === null || duplicatePage === void 0 ? void 0 : duplicatePage.component) || ResourceDuplicate;
|
2453
|
-
return [/*#__PURE__*/React.createElement(Route, {
|
2454
|
-
key: "".concat(resourceId, "-create"),
|
2455
|
-
path: route('resources.create', {
|
2456
|
-
resource: resourceId
|
2457
|
-
}),
|
2458
|
-
exact: true
|
2459
|
-
}, function () {
|
2460
|
-
return /*#__PURE__*/React.createElement(ResourceCreateComponent, {
|
2461
|
-
resource: resource
|
2462
|
-
});
|
2463
|
-
}), /*#__PURE__*/React.createElement(Route, {
|
2464
|
-
key: "".concat(resourceId, "-show"),
|
2465
|
-
path: route('resources.show', {
|
2466
|
-
resource: resourceId,
|
2467
|
-
id: ':id'
|
2468
|
-
})
|
2469
|
-
}, function (_ref4) {
|
2470
|
-
var _ref4$id = _ref4.id,
|
2471
|
-
id = _ref4$id === void 0 ? null : _ref4$id;
|
2472
|
-
return /*#__PURE__*/React.createElement(ResourceShowComponent, {
|
2473
|
-
itemId: id,
|
2474
|
-
resource: resource
|
2475
|
-
});
|
2476
|
-
}), /*#__PURE__*/React.createElement(Route, {
|
2477
|
-
key: "".concat(resourceId, "-edit"),
|
2478
|
-
path: route('resources.edit', {
|
2479
|
-
resource: resourceId,
|
2480
|
-
id: ':id'
|
2481
|
-
})
|
2482
|
-
}, function (_ref5) {
|
2483
|
-
var _ref5$id = _ref5.id,
|
2484
|
-
id = _ref5$id === void 0 ? null : _ref5$id;
|
2485
|
-
return /*#__PURE__*/React.createElement(ResourceEditComponent, {
|
2486
|
-
itemId: id,
|
2487
|
-
resource: resource
|
2488
|
-
});
|
2489
|
-
}), /*#__PURE__*/React.createElement(Route, {
|
2490
|
-
key: "".concat(resourceId, "-delete"),
|
2491
|
-
path: route('resources.delete', {
|
2492
|
-
resource: resourceId,
|
2493
|
-
id: ':id'
|
2494
|
-
})
|
2495
|
-
}, function (_ref6) {
|
2496
|
-
var _ref6$id = _ref6.id,
|
2497
|
-
id = _ref6$id === void 0 ? null : _ref6$id;
|
2498
|
-
return /*#__PURE__*/React.createElement(ResourceDeleteComponent, {
|
2499
|
-
itemId: id,
|
2500
|
-
resource: resource
|
2501
|
-
});
|
2502
|
-
})].concat(_toConsumableArray(extraRoutes.map(function (_ref7) {
|
2503
|
-
var path = _ref7.path,
|
2504
|
-
component = _ref7.component,
|
2505
|
-
pageProps = _objectWithoutProperties(_ref7, _excluded$1);
|
2506
|
-
var RouteComponent = componentsManager.getComponent(component);
|
2507
|
-
return RouteComponent !== null ? /*#__PURE__*/React.createElement(Route, {
|
2508
|
-
key: "route-".concat(path),
|
2509
|
-
path: path
|
2510
|
-
}, function () {
|
2511
|
-
return /*#__PURE__*/React.createElement(RouteComponent, Object.assign({
|
2512
|
-
resource: resource
|
2513
|
-
}, pageProps));
|
2514
|
-
}) : null;
|
2515
|
-
})), [/*#__PURE__*/React.createElement(Route, {
|
2516
|
-
key: "".concat(resourceId, "-index"),
|
2517
|
-
path: route('resources.index', {
|
2518
|
-
resource: resourceId
|
2519
|
-
})
|
2520
|
-
}, function () {
|
2521
|
-
return /*#__PURE__*/React.createElement(ResourceIndexComponent, {
|
2522
|
-
resource: resource
|
2523
|
-
});
|
2524
|
-
})]);
|
2525
|
-
};
|
2526
|
-
|
2527
|
-
var _excluded = ["home", "login", "account", "error", "index", "show", "create", "edit", "delete"],
|
2528
|
-
_excluded2 = ["path", "route", "component"];
|
2529
|
-
var propTypes$1 = {
|
2530
|
-
statusCode: core.PropTypes.statusCode
|
2531
|
-
};
|
2532
|
-
var defaultProps$1 = {
|
2533
|
-
statusCode: null
|
2534
|
-
};
|
2535
|
-
var PanneauRoutes = function PanneauRoutes(_ref) {
|
2536
|
-
var initialStatusCode = _ref.statusCode;
|
2537
|
-
var routes = contexts.useRoutes();
|
2538
|
-
var _useLocation = useLocation(),
|
2539
|
-
_useLocation2 = _slicedToArray(_useLocation, 1),
|
2540
|
-
pathname = _useLocation2[0];
|
2541
|
-
var _useState = React.useState({
|
2542
|
-
statusCode: initialStatusCode,
|
2543
|
-
pathname: pathname
|
2544
|
-
}),
|
2545
|
-
_useState2 = _slicedToArray(_useState, 2),
|
2546
|
-
_useState2$ = _useState2[0],
|
2547
|
-
statusCode = _useState2$.statusCode,
|
2548
|
-
lastPathname = _useState2$.pathname,
|
2549
|
-
setInitialRequest = _useState2[1];
|
2550
|
-
var user = auth.useUser();
|
2551
|
-
var route = contexts.useUrlGenerator();
|
2552
|
-
var resources = contexts.usePanneauResources();
|
2553
|
-
var componentsManager = contexts.usePagesComponentsManager();
|
2554
|
-
React.useEffect(function () {
|
2555
|
-
if (pathname !== lastPathname) {
|
2556
|
-
setInitialRequest({
|
2557
|
-
pathname: pathname,
|
2558
|
-
statusCode: null
|
2559
|
-
});
|
2560
|
-
}
|
2561
|
-
}, [pathname, lastPathname]);
|
2562
|
-
|
2563
|
-
// Custom Pages
|
2564
|
-
var _usePanneau = contexts.usePanneau(),
|
2565
|
-
_usePanneau$pages = _usePanneau.pages,
|
2566
|
-
pages = _usePanneau$pages === void 0 ? null : _usePanneau$pages,
|
2567
|
-
routesDefinition = _usePanneau.routes;
|
2568
|
-
var _ref2 = pages || {},
|
2569
|
-
_ref2$home = _ref2.home,
|
2570
|
-
homePage = _ref2$home === void 0 ? null : _ref2$home,
|
2571
|
-
_ref2$login = _ref2.login,
|
2572
|
-
loginPage = _ref2$login === void 0 ? null : _ref2$login,
|
2573
|
-
_ref2$account = _ref2.account,
|
2574
|
-
accountPage = _ref2$account === void 0 ? null : _ref2$account,
|
2575
|
-
_ref2$error = _ref2.error,
|
2576
|
-
errorPage = _ref2$error === void 0 ? null : _ref2$error;
|
2577
|
-
_ref2.index;
|
2578
|
-
_ref2.show;
|
2579
|
-
_ref2.create;
|
2580
|
-
_ref2.edit;
|
2581
|
-
_ref2["delete"];
|
2582
|
-
var otherPages = _objectWithoutProperties(_ref2, _excluded);
|
2583
|
-
var customRoutes = React.useMemo(function () {
|
2584
|
-
return [].concat(_toConsumableArray(Object.keys(routesDefinition).filter(function (key) {
|
2585
|
-
return key.match(/^(resources\.|auth\.)/) === null && key !== 'home' && key !== 'account';
|
2586
|
-
}).filter(function (key) {
|
2587
|
-
var routeDef = routesDefinition[key];
|
2588
|
-
return isObject(routeDef) && typeof routeDef.component !== 'undefined' && typeof routeDef.path !== 'undefined';
|
2589
|
-
}).map(function (key) {
|
2590
|
-
return routesDefinition[key];
|
2591
|
-
})), _toConsumableArray(Object.keys(otherPages).map(function (key) {
|
2592
|
-
return otherPages[key];
|
2593
|
-
}).filter(function (_ref3) {
|
2594
|
-
var _ref3$path = _ref3.path,
|
2595
|
-
path = _ref3$path === void 0 ? null : _ref3$path,
|
2596
|
-
_ref3$route = _ref3.route,
|
2597
|
-
pageRoute = _ref3$route === void 0 ? null : _ref3$route;
|
2598
|
-
return path !== null || pageRoute !== null;
|
2599
|
-
})));
|
2600
|
-
}, [routesDefinition, otherPages]);
|
2601
|
-
var HomeComponent = componentsManager.getComponent(homePage === null || homePage === void 0 ? void 0 : homePage.component) || HomePage$1;
|
2602
|
-
var LoginComponent = componentsManager.getComponent(loginPage === null || loginPage === void 0 ? void 0 : loginPage.component) || LoginPage$1;
|
2603
|
-
var AccountComponent = componentsManager.getComponent(accountPage === null || accountPage === void 0 ? void 0 : accountPage.component) || AccountPage$1;
|
2604
|
-
var ErrorComponent = componentsManager.getComponent(errorPage === null || errorPage === void 0 ? void 0 : errorPage.component) || ErrorPage$1;
|
2605
|
-
|
2606
|
-
// If there is an error status code
|
2607
|
-
if (statusCode !== null) {
|
2608
|
-
return /*#__PURE__*/React.createElement(ErrorComponent, Object.assign({
|
2609
|
-
statusCode: statusCode
|
2610
|
-
}, errorPage));
|
2611
|
-
}
|
2612
|
-
|
2613
|
-
// If user is unauthenticated
|
2614
|
-
if (user === null) {
|
2615
|
-
return /*#__PURE__*/React.createElement(Switch, null, /*#__PURE__*/React.createElement(Route, {
|
2616
|
-
path: routes['auth.login']
|
2617
|
-
}, /*#__PURE__*/React.createElement(LoginComponent, loginPage)), /*#__PURE__*/React.createElement(Route, null, /*#__PURE__*/React.createElement(Redirect, {
|
2618
|
-
to: "".concat(route('auth.login'), "?next=").concat(encodeURIComponent(pathname))
|
2619
|
-
})));
|
2620
|
-
}
|
2621
|
-
|
2622
|
-
// Normal routes
|
2623
|
-
return /*#__PURE__*/React.createElement(Switch, null, user !== null ? /*#__PURE__*/React.createElement(Route, {
|
2624
|
-
path: routes['auth.login']
|
2625
|
-
}, /*#__PURE__*/React.createElement(Redirect, {
|
2626
|
-
to: routes.home,
|
2627
|
-
replace: true
|
2628
|
-
})) : null, resources.map(function (resource) {
|
2629
|
-
var _ref4 = resource || {},
|
2630
|
-
resourceId = _ref4.id;
|
2631
|
-
return /*#__PURE__*/React.createElement(React.Fragment, {
|
2632
|
-
key: "resource-".concat(resourceId)
|
2633
|
-
}, createResourceRoutes(resource, {
|
2634
|
-
route: route,
|
2635
|
-
componentsManager: componentsManager,
|
2636
|
-
pages: pages
|
2637
|
-
}));
|
2638
|
-
}), /*#__PURE__*/React.createElement(Route, {
|
2639
|
-
path: routes.account
|
2640
|
-
}, /*#__PURE__*/React.createElement(AccountComponent, accountPage)), customRoutes.map(function (_ref5) {
|
2641
|
-
var _ref5$path = _ref5.path,
|
2642
|
-
path = _ref5$path === void 0 ? null : _ref5$path,
|
2643
|
-
_ref5$route = _ref5.route,
|
2644
|
-
pageRoute = _ref5$route === void 0 ? null : _ref5$route,
|
2645
|
-
component = _ref5.component,
|
2646
|
-
props = _objectWithoutProperties(_ref5, _excluded2);
|
2647
|
-
var PageComponent = componentsManager.getComponent(component);
|
2648
|
-
var finalPath = path || routes[pageRoute];
|
2649
|
-
return PageComponent !== null ? /*#__PURE__*/React.createElement(Route, {
|
2650
|
-
key: "custom-route-".concat(finalPath),
|
2651
|
-
path: path || routes[pageRoute]
|
2652
|
-
}, /*#__PURE__*/React.createElement(PageComponent, props)) : null;
|
2653
|
-
}), /*#__PURE__*/React.createElement(Route, {
|
2654
|
-
path: routes.home
|
2655
|
-
}, /*#__PURE__*/React.createElement(HomeComponent, homePage)), /*#__PURE__*/React.createElement(Route, null, /*#__PURE__*/React.createElement(ErrorComponent, null)));
|
2656
|
-
};
|
2657
|
-
PanneauRoutes.propTypes = propTypes$1;
|
2658
|
-
PanneauRoutes.defaultProps = defaultProps$1;
|
2659
|
-
var Routes = PanneauRoutes;
|
2660
|
-
|
2661
|
-
var pathToRegexpParser = createPathToRegexpParser();
|
2662
|
-
var propTypes = {
|
2663
|
-
definition: core.PropTypes.panneauDefinition.isRequired,
|
2664
|
-
components: PropTypes.oneOfType([PropTypes.objectOf(PropTypes.elementType), PropTypes.objectOf(PropTypes.objectOf(PropTypes.elementType))]),
|
2665
|
-
user: core.PropTypes.user,
|
2666
|
-
memoryRouter: PropTypes.bool,
|
2667
|
-
baseUrl: PropTypes.string,
|
2668
|
-
uppy: core.PropTypes.uppy,
|
2669
|
-
statusCode: core.PropTypes.statusCode
|
2670
|
-
};
|
2671
|
-
var defaultProps = {
|
2672
|
-
components: null,
|
2673
|
-
user: null,
|
2674
|
-
memoryRouter: false,
|
2675
|
-
baseUrl: null,
|
2676
|
-
uppy: null,
|
2677
|
-
statusCode: null
|
2678
|
-
};
|
2679
|
-
var Container = function Container(_ref) {
|
2680
|
-
var definition = _ref.definition,
|
2681
|
-
components = _ref.components,
|
2682
|
-
user = _ref.user,
|
2683
|
-
memoryRouter = _ref.memoryRouter,
|
2684
|
-
baseUrl = _ref.baseUrl,
|
2685
|
-
uppy$1 = _ref.uppy,
|
2686
|
-
statusCode = _ref.statusCode;
|
2687
|
-
var _ref2 = definition || {},
|
2688
|
-
_ref2$intl = _ref2.intl,
|
2689
|
-
_ref2$intl2 = _ref2$intl === void 0 ? {} : _ref2$intl,
|
2690
|
-
_ref2$intl2$locale = _ref2$intl2.locale,
|
2691
|
-
locale = _ref2$intl2$locale === void 0 ? 'en' : _ref2$intl2$locale,
|
2692
|
-
_ref2$intl2$locales = _ref2$intl2.locales,
|
2693
|
-
locales = _ref2$intl2$locales === void 0 ? [] : _ref2$intl2$locales,
|
2694
|
-
_ref2$routes = _ref2.routes,
|
2695
|
-
routes = _ref2$routes === void 0 ? {} : _ref2$routes,
|
2696
|
-
_ref2$settings = _ref2.settings,
|
2697
|
-
_ref2$settings2 = _ref2$settings === void 0 ? {} : _ref2$settings,
|
2698
|
-
_ref2$settings2$memor = _ref2$settings2.memoryRouter,
|
2699
|
-
usesMemoryRouter = _ref2$settings2$memor === void 0 ? false : _ref2$settings2$memor;
|
2700
|
-
var isMemoryRouter = memoryRouter || usesMemoryRouter || false;
|
2701
|
-
var extraMessages = React.useMemo(function () {
|
2702
|
-
var _definition$intl = definition.intl,
|
2703
|
-
_definition$intl2 = _definition$intl === void 0 ? {} : _definition$intl,
|
2704
|
-
_definition$intl2$mes = _definition$intl2.messages,
|
2705
|
-
messages = _definition$intl2$mes === void 0 ? null : _definition$intl2$mes,
|
2706
|
-
_definition$resources = definition.resources,
|
2707
|
-
resources = _definition$resources === void 0 ? [] : _definition$resources;
|
2708
|
-
return _objectSpread(_objectSpread({}, messages), resources.reduce(function (allMessages, _ref3) {
|
2709
|
-
var id = _ref3.id,
|
2710
|
-
_ref3$intl = _ref3.intl,
|
2711
|
-
_ref3$intl2 = _ref3$intl === void 0 ? {} : _ref3$intl,
|
2712
|
-
_ref3$intl2$messages = _ref3$intl2.messages,
|
2713
|
-
resourceMessages = _ref3$intl2$messages === void 0 ? {} : _ref3$intl2$messages;
|
2714
|
-
return _objectSpread(_objectSpread({}, allMessages), Object.keys(resourceMessages).reduce(function (allResourceMessages, key) {
|
2715
|
-
return _objectSpread(_objectSpread({}, allResourceMessages), {}, _defineProperty({}, "resources.".concat(id, ".").concat(key), resourceMessages[key]));
|
2716
|
-
}, {}));
|
2717
|
-
}, {}));
|
2718
|
-
}, [definition]);
|
2719
|
-
var onUnauthorized = React.useCallback(function () {
|
2720
|
-
window.location.href = baseUrl;
|
2721
|
-
}, [baseUrl]);
|
2722
|
-
var onLogout = React.useCallback(function () {
|
2723
|
-
window.location.reload();
|
2724
|
-
}, [baseUrl]);
|
2725
|
-
var _useMemoryRouter = useMemoryRouter(),
|
2726
|
-
memoryLocationHook = _useMemoryRouter.hook,
|
2727
|
-
memorySearchHook = _useMemoryRouter.searchHook;
|
2728
|
-
return /*#__PURE__*/React.createElement(Router, {
|
2729
|
-
hook: isMemoryRouter ? memoryLocationHook : null,
|
2730
|
-
searchHook: isMemoryRouter ? memorySearchHook : null,
|
2731
|
-
parser: pathToRegexpParser
|
2732
|
-
}, /*#__PURE__*/React.createElement(intl.IntlProvider, {
|
2733
|
-
locale: locale,
|
2734
|
-
locales: locales,
|
2735
|
-
extraMessages: extraMessages
|
2736
|
-
}, /*#__PURE__*/React.createElement(contexts.PanneauProvider, {
|
2737
|
-
definition: definition
|
2738
|
-
}, /*#__PURE__*/React.createElement(uppy.UppyProvider, uppy$1, /*#__PURE__*/React.createElement(contexts.RoutesProvider, {
|
2739
|
-
routes: routes
|
2740
|
-
}, /*#__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(contexts.ModalProvider, null, /*#__PURE__*/React.createElement(ModalsProvider, null, /*#__PURE__*/React.createElement(data.ApiProvider, {
|
2741
|
-
baseUrl: baseUrl,
|
2742
|
-
onUnauthorized: onUnauthorized
|
2743
|
-
}, /*#__PURE__*/React.createElement(data.QueryProvider, null, /*#__PURE__*/React.createElement(auth.AuthProvider, {
|
2744
|
-
user: user,
|
2745
|
-
onLogout: onLogout
|
2746
|
-
}, /*#__PURE__*/React.createElement(contexts.ComponentsProvider, {
|
2747
|
-
components: components
|
2748
|
-
}, /*#__PURE__*/React.createElement(Routes, {
|
2749
|
-
statusCode: statusCode
|
2750
|
-
}))))))))))))))))));
|
2751
|
-
};
|
2752
|
-
Container.propTypes = propTypes;
|
2753
|
-
Container.defaultProps = defaultProps;
|
2754
|
-
var PanneauContainer = Container;
|
2755
|
-
|
2756
|
-
/* eslint-disable react/jsx-props-no-spreading */
|
2757
|
-
// import PropTypes from 'prop-types';
|
2758
|
-
|
2759
|
-
// Kept for backward compatibility with exports
|
2760
|
-
var ResourceFilters = function ResourceFilters(props) {
|
2761
|
-
return /*#__PURE__*/React.createElement(Filters, props);
|
2762
|
-
};
|
2763
|
-
var ResourceFilters$1 = ResourceFilters;
|
2764
|
-
|
2765
|
-
exports.GuestLayout = GuestLayout$1;
|
2766
|
-
exports.MainLayout = MainLayout$1;
|
2767
|
-
exports.PageHeader = PageHeader$1;
|
2768
|
-
exports.ResourceFilters = ResourceFilters$1;
|
2769
|
-
exports.ResourceForm = ResourceForm;
|
2770
|
-
exports.ResourceItemsList = ResourceItemsList$1;
|
2771
|
-
exports.default = PanneauContainer;
|