@panneau/app 4.0.74 → 4.0.75

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.
Files changed (3) hide show
  1. package/dist/index.d.ts +4 -2
  2. package/dist/index.js +368 -445
  3. package/package.json +41 -41
package/dist/index.d.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  import * as react from 'react';
2
2
  import { ElementType, ReactNode } from 'react';
3
- import { PanneauDefinition, User, Uppy, StatusCode, Label } from '@panneau/core';
3
+ import { PanneauDefinition, FormDefinition, FieldDefinition, User, Uppy, StatusCode, Label } from '@panneau/core';
4
4
 
5
5
  interface ContainerProps {
6
6
  definition: PanneauDefinition;
7
+ forms: FormDefinition[];
8
+ fields: FieldDefinition[];
7
9
  components?: Record<string, ElementType> | Record<string, Record<string, ElementType>> | null;
8
10
  user?: User | null;
9
11
  memoryRouter?: boolean;
@@ -11,7 +13,7 @@ interface ContainerProps {
11
13
  uppy?: Uppy | null;
12
14
  statusCode?: StatusCode | null;
13
15
  }
14
- declare function Container({ definition, components, user, memoryRouter, baseUrl, uppy, statusCode, }: ContainerProps): react.JSX.Element;
16
+ declare function Container({ definition, forms: providedForms, fields: providedFields, components, user, memoryRouter, baseUrl, uppy, statusCode, }: ContainerProps): react.JSX.Element;
15
17
 
16
18
  interface MainLayoutProps {
17
19
  children?: ReactNode;
package/dist/index.js CHANGED
@@ -1,9 +1,8 @@
1
1
  import { useMemoryRouter, createPathToRegexpParser } from '@folklore/routes';
2
- import { useState, useEffect, Fragment as Fragment$1, useMemo, useCallback } from 'react';
3
2
  import { useLocation, useSearch, Route, Redirect, Switch, Router } from 'wouter';
4
3
  import ActionsProvider from '@panneau/actions';
5
4
  import { useUser, useLogout, useAuth, AuthProvider } from '@panneau/auth';
6
- import { useUrlGenerator, usePanneauResources, usePanneau, usePanneauColorScheme, ResourceProvider, useActionsComponentsManager, useFormsComponents, useRoutes, usePagesComponentsManager, PanneauProvider, RoutesProvider, ModalProvider, ComponentsProvider } from '@panneau/core/contexts';
5
+ import { useUrlGenerator, usePanneauResources, usePanneau, usePanneauColorScheme, ResourceProvider, useActionsComponentsManager, useRoutes, usePagesComponentsManager, PanneauProvider, RoutesProvider, ModalProvider, ComponentsProvider } from '@panneau/core/contexts';
7
6
  import { useResourceItem, DataProvider } from '@panneau/data';
8
7
  import DisplaysProvider from '@panneau/displays';
9
8
  import FieldsProvider from '@panneau/fields';
@@ -15,6 +14,7 @@ import ModalsProvider from '@panneau/modals';
15
14
  import { UppyProvider } from '@panneau/uppy';
16
15
  import { c } from 'react/compiler-runtime';
17
16
  import isObject from 'lodash-es/isObject';
17
+ import { useState, useEffect } from 'react';
18
18
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
19
19
  import classNames from 'classnames';
20
20
  import isString from 'lodash-es/isString';
@@ -33,7 +33,7 @@ import LabelComponent from '@panneau/element-label';
33
33
  import ResourceList from '@panneau/list-resource-items';
34
34
  import Loading from '@panneau/element-loading';
35
35
  import ResourceForm from '@panneau/form-resource';
36
- import { getComponentFromName } from '@panneau/core/utils';
36
+ import Form from '@panneau/form';
37
37
  import Filters from '@panneau/filter-filters';
38
38
 
39
39
  function ResourceFormWrapper(props) {
@@ -325,6 +325,7 @@ function MainNavbar(t0) {
325
325
  t10 = name !== null ? /*#__PURE__*/jsx(Link, {
326
326
  href: route("home"),
327
327
  className: "navbar-brand",
328
+ withoutTheme: true,
328
329
  children: /*#__PURE__*/jsx("span", {
329
330
  className: classNames([{
330
331
  "text-opacity-75": loading,
@@ -1671,7 +1672,7 @@ function AccountPage() {
1671
1672
  }
1672
1673
 
1673
1674
  function LoginForm(t0) {
1674
- const $ = c(10);
1675
+ const $ = c(9);
1675
1676
  const {
1676
1677
  className: t1,
1677
1678
  onComplete: t2
@@ -1697,35 +1698,30 @@ function LoginForm(t0) {
1697
1698
  t3 = $[1];
1698
1699
  }
1699
1700
  const postForm = t3;
1700
- const FormComponents = useFormsComponents();
1701
1701
  let t4;
1702
- if ($[2] !== FormComponents) {
1703
- t4 = getComponentFromName("login", FormComponents);
1704
- $[2] = FormComponents;
1702
+ if ($[2] !== url) {
1703
+ t4 = url("auth.login");
1704
+ $[2] = url;
1705
1705
  $[3] = t4;
1706
1706
  } else {
1707
1707
  t4 = $[3];
1708
1708
  }
1709
- const FormComponent = t4;
1710
1709
  let t5;
1711
- if ($[4] !== FormComponent || $[5] !== className || $[6] !== onComplete || $[7] !== postForm || $[8] !== url) {
1712
- t5 = FormComponent !== null ? /*#__PURE__*/jsx(FormComponent, {
1713
- action: url("auth.login"),
1710
+ if ($[4] !== className || $[5] !== onComplete || $[6] !== postForm || $[7] !== t4) {
1711
+ t5 = /*#__PURE__*/jsx(Form, {
1712
+ type: "login",
1713
+ action: t4,
1714
1714
  postForm: postForm,
1715
1715
  onComplete: onComplete,
1716
- className: className,
1717
- submitButtonLabel: /*#__PURE__*/jsx(FormattedMessage, {
1718
- id: "g6qbbX"
1719
- })
1720
- }) : null;
1721
- $[4] = FormComponent;
1722
- $[5] = className;
1723
- $[6] = onComplete;
1724
- $[7] = postForm;
1725
- $[8] = url;
1726
- $[9] = t5;
1716
+ className: className
1717
+ });
1718
+ $[4] = className;
1719
+ $[5] = onComplete;
1720
+ $[6] = postForm;
1721
+ $[7] = t4;
1722
+ $[8] = t5;
1727
1723
  } else {
1728
- t5 = $[9];
1724
+ t5 = $[8];
1729
1725
  }
1730
1726
  return t5;
1731
1727
  }
@@ -2020,35 +2016,16 @@ function createResourceRoutes(resource, {
2020
2016
  pages: resourcePages = {},
2021
2017
  extraRoutes = []
2022
2018
  } = resource;
2023
-
2024
- // Load custom pages from resource
2025
- const {
2026
- index: indexPage = null,
2027
- show: showPage = null,
2028
- create: createPage = null,
2029
- edit: editPage = null,
2030
- delete: deletePage = null,
2031
- duplicate: duplicatePage = null
2032
- } = pages || {};
2033
- const {
2034
- index: resourceIndexPage = null,
2035
- show: resourceShowPage = null,
2036
- create: resourceCreatePage = null,
2037
- edit: resourceEditPage = null,
2038
- delete: resourceDeletePage = null,
2039
- duplicate: resourceDuplicatePage = null
2040
- } = resourcePages || {};
2041
- const ResourceIndexComponent = componentsManager.getComponent(resourceIndexPage?.component) || componentsManager.getComponent(indexPage?.component) || ResourceIndexPage;
2042
- const ResourceShowComponent = componentsManager.getComponent(resourceShowPage?.component) || componentsManager.getComponent(showPage?.component) || ResourceShowPage;
2043
- const ResourceCreateComponent = componentsManager.getComponent(resourceCreatePage?.component) || componentsManager.getComponent(createPage?.component) || ResourceCreatePage;
2044
- const ResourceEditComponent = componentsManager.getComponent(resourceEditPage?.component) || componentsManager.getComponent(editPage?.component) || ResourceEditPage;
2045
- const ResourceDeleteComponent = componentsManager.getComponent(resourceDeletePage?.component) || componentsManager.getComponent(deletePage?.component) || ResourceDeletePage;
2046
- const ResourceDuplicateComponent = componentsManager.getComponent(resourceDuplicatePage?.component) || componentsManager.getComponent(duplicatePage?.component) || ResourceDuplicatePage;
2019
+ const ResourceIndexComponent = componentsManager.getComponent(resourcePages?.resourceIndexPage?.component) || componentsManager.getComponent(pages?.indexPage?.component) || ResourceIndexPage;
2020
+ const ResourceShowComponent = componentsManager.getComponent(resourcePages?.resourceShowPage?.component) || componentsManager.getComponent(pages?.showPage?.component) || ResourceShowPage;
2021
+ const ResourceCreateComponent = componentsManager.getComponent(resourcePages?.resourceCreatePage?.component) || componentsManager.getComponent(pages?.createPage?.component) || ResourceCreatePage;
2022
+ const ResourceEditComponent = componentsManager.getComponent(resourcePages?.resourceEditPage?.component) || componentsManager.getComponent(pages?.editPage?.component) || ResourceEditPage;
2023
+ const ResourceDeleteComponent = componentsManager.getComponent(resourcePages?.resourceDeletePage?.component) || componentsManager.getComponent(pages?.deletePage?.component) || ResourceDeletePage;
2024
+ const ResourceDuplicateComponent = componentsManager.getComponent(resourcePages?.resourceDuplicatePage?.component) || componentsManager.getComponent(pages?.duplicatePage?.component) || ResourceDuplicatePage;
2047
2025
  return [/*#__PURE__*/jsx(Route, {
2048
2026
  path: route('resources.create', {
2049
2027
  resource: resourceId
2050
2028
  }),
2051
- exact: true,
2052
2029
  children: () => /*#__PURE__*/jsx(ResourceCreateComponent, {
2053
2030
  resource: resource
2054
2031
  })
@@ -2120,7 +2097,7 @@ function createResourceRoutes(resource, {
2120
2097
  }
2121
2098
 
2122
2099
  function PanneauRoutes(t0) {
2123
- const $ = c(103);
2100
+ const $ = c(91);
2124
2101
  const {
2125
2102
  statusCode: t1
2126
2103
  } = t0;
@@ -2139,19 +2116,19 @@ function PanneauRoutes(t0) {
2139
2116
  } else {
2140
2117
  t2 = $[2];
2141
2118
  }
2142
- const [t3, setInitialRequest] = useState(t2);
2119
+ const [initialRequest, setInitialRequest] = useState(t2);
2143
2120
  const {
2144
2121
  statusCode,
2145
2122
  pathname: lastPathname
2146
- } = t3;
2123
+ } = initialRequest;
2147
2124
  const user = useUser();
2148
2125
  const route = useUrlGenerator();
2149
2126
  const resources = usePanneauResources();
2150
2127
  const componentsManager = usePagesComponentsManager();
2128
+ let t3;
2151
2129
  let t4;
2152
- let t5;
2153
2130
  if ($[3] !== lastPathname || $[4] !== pathname) {
2154
- t4 = () => {
2131
+ t3 = () => {
2155
2132
  if (pathname !== lastPathname) {
2156
2133
  setInitialRequest({
2157
2134
  pathname,
@@ -2159,400 +2136,346 @@ function PanneauRoutes(t0) {
2159
2136
  });
2160
2137
  }
2161
2138
  };
2162
- t5 = [pathname, lastPathname];
2139
+ t4 = [pathname, lastPathname];
2163
2140
  $[3] = lastPathname;
2164
2141
  $[4] = pathname;
2165
- $[5] = t4;
2166
- $[6] = t5;
2142
+ $[5] = t3;
2143
+ $[6] = t4;
2167
2144
  } else {
2168
- t4 = $[5];
2169
- t5 = $[6];
2145
+ t3 = $[5];
2146
+ t4 = $[6];
2170
2147
  }
2171
- useEffect(t4, t5);
2148
+ useEffect(t3, t4);
2172
2149
  const {
2173
- pages: t6,
2150
+ pages: t5,
2174
2151
  routes: routesDefinition
2175
2152
  } = usePanneau();
2176
- const pages = t6 === undefined ? null : t6;
2177
- let t7;
2178
- if ($[7] !== pages) {
2179
- t7 = pages || {};
2180
- $[7] = pages;
2181
- $[8] = t7;
2153
+ const pages = t5 === undefined ? null : t5;
2154
+ let t6;
2155
+ if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
2156
+ t6 = ["home", "login", "account", "error", "index", "show", "create", "edit", "delete", "duplicate"];
2157
+ $[7] = t6;
2182
2158
  } else {
2183
- t7 = $[8];
2159
+ t6 = $[7];
2184
2160
  }
2185
- let otherPages;
2161
+ const builtinPages = t6;
2162
+ let ErrorComponent;
2163
+ let HomeComponent;
2164
+ let T0;
2165
+ let homePage;
2186
2166
  let t10;
2187
2167
  let t11;
2188
- let t12;
2189
- let t13;
2190
- let t14;
2191
- let t15;
2192
- let t16;
2193
- let t17;
2168
+ let t7;
2194
2169
  let t8;
2195
2170
  let t9;
2196
- if ($[9] !== t7) {
2197
- ({
2198
- home: t8,
2199
- login: t9,
2200
- account: t10,
2201
- error: t11,
2202
- index: t12,
2203
- show: t13,
2204
- create: t14,
2205
- edit: t15,
2206
- delete: t16,
2207
- duplicate: t17,
2208
- ...otherPages
2209
- } = t7);
2210
- $[9] = t7;
2211
- $[10] = otherPages;
2212
- $[11] = t10;
2213
- $[12] = t11;
2214
- $[13] = t12;
2215
- $[14] = t13;
2216
- $[15] = t14;
2217
- $[16] = t15;
2218
- $[17] = t16;
2219
- $[18] = t17;
2220
- $[19] = t8;
2221
- $[20] = t9;
2222
- } else {
2223
- otherPages = $[10];
2224
- t10 = $[11];
2225
- t11 = $[12];
2226
- t12 = $[13];
2227
- t13 = $[14];
2228
- t14 = $[15];
2229
- t15 = $[16];
2230
- t16 = $[17];
2231
- t17 = $[18];
2232
- t8 = $[19];
2233
- t9 = $[20];
2234
- }
2235
- const homePage = t8 === undefined ? null : t8;
2236
- const loginPage = t9 === undefined ? null : t9;
2237
- const accountPage = t10 === undefined ? null : t10;
2238
- const errorPage = t11 === undefined ? null : t11;
2239
- let t18;
2240
- if ($[21] !== routesDefinition) {
2241
- t18 = Object.keys(routesDefinition).filter(_temp);
2242
- $[21] = routesDefinition;
2243
- $[22] = t18;
2244
- } else {
2245
- t18 = $[22];
2246
- }
2247
- let t19;
2248
- if ($[23] !== routesDefinition || $[24] !== t18) {
2249
- t19 = t18.filter(key_0 => {
2250
- const routeDef = routesDefinition[key_0];
2251
- return isObject(routeDef) && typeof routeDef.component !== "undefined" && typeof routeDef.path !== "undefined";
2252
- });
2253
- $[23] = routesDefinition;
2254
- $[24] = t18;
2255
- $[25] = t19;
2256
- } else {
2257
- t19 = $[25];
2258
- }
2259
- let t20;
2260
- if ($[26] !== routesDefinition || $[27] !== t19) {
2261
- t20 = t19.map(key_1 => routesDefinition[key_1]);
2262
- $[26] = routesDefinition;
2263
- $[27] = t19;
2264
- $[28] = t20;
2265
- } else {
2266
- t20 = $[28];
2267
- }
2268
- let t21;
2269
- if ($[29] !== otherPages) {
2270
- t21 = Object.keys(otherPages);
2271
- $[29] = otherPages;
2272
- $[30] = t21;
2273
- } else {
2274
- t21 = $[30];
2275
- }
2276
- let t22;
2277
- if ($[31] !== otherPages || $[32] !== t21) {
2278
- t22 = t21.map(key_2 => otherPages[key_2]).filter(_temp2);
2279
- $[31] = otherPages;
2280
- $[32] = t21;
2281
- $[33] = t22;
2282
- } else {
2283
- t22 = $[33];
2284
- }
2285
- let t23;
2286
- if ($[34] !== t20 || $[35] !== t22) {
2287
- t23 = [...t20, ...t22];
2288
- $[34] = t20;
2289
- $[35] = t22;
2290
- $[36] = t23;
2291
- } else {
2292
- t23 = $[36];
2293
- }
2294
- const customRoutes = t23;
2295
- let t24;
2296
- if ($[37] !== componentsManager || $[38] !== homePage?.component) {
2297
- t24 = componentsManager.getComponent(homePage?.component) || HomePage;
2298
- $[37] = componentsManager;
2299
- $[38] = homePage?.component;
2300
- $[39] = t24;
2301
- } else {
2302
- t24 = $[39];
2303
- }
2304
- const HomeComponent = t24;
2305
- let t25;
2306
- if ($[40] !== componentsManager || $[41] !== loginPage?.component) {
2307
- t25 = componentsManager.getComponent(loginPage?.component) || LoginPage;
2308
- $[40] = componentsManager;
2309
- $[41] = loginPage?.component;
2310
- $[42] = t25;
2311
- } else {
2312
- t25 = $[42];
2313
- }
2314
- const LoginComponent = t25;
2315
- let t26;
2316
- if ($[43] !== accountPage?.component || $[44] !== componentsManager) {
2317
- t26 = componentsManager.getComponent(accountPage?.component) || AccountPage;
2318
- $[43] = accountPage?.component;
2319
- $[44] = componentsManager;
2320
- $[45] = t26;
2321
- } else {
2322
- t26 = $[45];
2323
- }
2324
- const AccountComponent = t26;
2325
- let t27;
2326
- if ($[46] !== componentsManager || $[47] !== errorPage?.component) {
2327
- t27 = componentsManager.getComponent(errorPage?.component) || ErrorPage;
2328
- $[46] = componentsManager;
2329
- $[47] = errorPage?.component;
2330
- $[48] = t27;
2331
- } else {
2332
- t27 = $[48];
2333
- }
2334
- const ErrorComponent = t27;
2335
- if (statusCode !== null) {
2336
- let t28;
2337
- if ($[49] !== ErrorComponent || $[50] !== errorPage || $[51] !== statusCode) {
2338
- t28 = /*#__PURE__*/jsx(ErrorComponent, {
2339
- statusCode: statusCode,
2340
- ...errorPage
2341
- });
2342
- $[49] = ErrorComponent;
2343
- $[50] = errorPage;
2344
- $[51] = statusCode;
2345
- $[52] = t28;
2346
- } else {
2347
- t28 = $[52];
2348
- }
2349
- return t28;
2350
- }
2351
- if (user === null) {
2352
- const t28 = routes["auth.login"];
2353
- let t29;
2354
- if ($[53] !== LoginComponent || $[54] !== loginPage) {
2355
- t29 = /*#__PURE__*/jsx(LoginComponent, {
2356
- ...loginPage
2357
- });
2358
- $[53] = LoginComponent;
2359
- $[54] = loginPage;
2360
- $[55] = t29;
2361
- } else {
2362
- t29 = $[55];
2363
- }
2364
- let t30;
2365
- if ($[56] !== t28 || $[57] !== t29) {
2366
- t30 = /*#__PURE__*/jsx(Route, {
2367
- path: t28,
2368
- children: t29
2369
- });
2370
- $[56] = t28;
2371
- $[57] = t29;
2372
- $[58] = t30;
2373
- } else {
2374
- t30 = $[58];
2375
- }
2376
- let t31;
2377
- if ($[59] !== route) {
2378
- t31 = route("auth.login");
2379
- $[59] = route;
2380
- $[60] = t31;
2381
- } else {
2382
- t31 = $[60];
2383
- }
2384
- const t32 = `${t31}?next=${encodeURIComponent(pathname)}`;
2385
- let t33;
2386
- if ($[61] !== t32) {
2387
- t33 = /*#__PURE__*/jsx(Route, {
2388
- children: /*#__PURE__*/jsx(Redirect, {
2389
- to: t32
2390
- })
2391
- });
2392
- $[61] = t32;
2393
- $[62] = t33;
2394
- } else {
2395
- t33 = $[62];
2396
- }
2397
- let t34;
2398
- if ($[63] !== t30 || $[64] !== t33) {
2399
- t34 = /*#__PURE__*/jsxs(Switch, {
2400
- children: [t30, t33]
2401
- });
2402
- $[63] = t30;
2403
- $[64] = t33;
2404
- $[65] = t34;
2405
- } else {
2406
- t34 = $[65];
2407
- }
2408
- return t34;
2409
- }
2410
- let t28;
2411
- if ($[66] !== routes || $[67] !== user) {
2412
- t28 = user !== null ? /*#__PURE__*/jsx(Route, {
2413
- path: routes["auth.login"],
2414
- children: /*#__PURE__*/jsx(Redirect, {
2415
- to: routes.home,
2416
- replace: true
2417
- })
2418
- }) : null;
2419
- $[66] = routes;
2420
- $[67] = user;
2421
- $[68] = t28;
2422
- } else {
2423
- t28 = $[68];
2424
- }
2425
- let t29;
2426
- if ($[69] !== componentsManager || $[70] !== pages || $[71] !== resources || $[72] !== route) {
2427
- let t30;
2428
- if ($[74] !== componentsManager || $[75] !== pages || $[76] !== route) {
2429
- t30 = resource => {
2430
- const {
2431
- id: resourceId
2432
- } = resource || {};
2433
- return /*#__PURE__*/jsx(Fragment$1, {
2434
- children: createResourceRoutes(resource, {
2171
+ if ($[8] !== componentsManager || $[9] !== pages || $[10] !== pathname || $[11] !== resources || $[12] !== route || $[13] !== routes || $[14] !== routesDefinition || $[15] !== statusCode || $[16] !== user) {
2172
+ t11 = Symbol.for("react.early_return_sentinel");
2173
+ bb0: {
2174
+ const otherPages = Object.keys(pages || {}).filter(key => builtinPages.indexOf(key) === -1).reduce((acc, key_0) => ({
2175
+ ...acc,
2176
+ [key_0]: pages[key_0]
2177
+ }), {});
2178
+ let t12;
2179
+ if ($[26] !== pages) {
2180
+ t12 = pages || {};
2181
+ $[26] = pages;
2182
+ $[27] = t12;
2183
+ } else {
2184
+ t12 = $[27];
2185
+ }
2186
+ const {
2187
+ home: t13,
2188
+ login: t14,
2189
+ account: t15,
2190
+ error: t16
2191
+ } = t12;
2192
+ homePage = t13 === undefined ? null : t13;
2193
+ const loginPage = t14 === undefined ? null : t14;
2194
+ const accountPage = t15 === undefined ? null : t15;
2195
+ const errorPage = t16 === undefined ? null : t16;
2196
+ const customRoutes = [...Object.keys(routesDefinition).filter(_temp).filter(key_2 => {
2197
+ const routeDef = routesDefinition[key_2];
2198
+ return isObject(routeDef) && typeof routeDef.component !== "undefined" && typeof routeDef.path !== "undefined";
2199
+ }).map(key_3 => routesDefinition[key_3]), ...Object.keys(otherPages).map(key_4 => otherPages[key_4]).filter(_temp2)];
2200
+ let t17;
2201
+ if ($[28] !== componentsManager || $[29] !== homePage?.component) {
2202
+ t17 = componentsManager.getComponent(homePage?.component) || HomePage;
2203
+ $[28] = componentsManager;
2204
+ $[29] = homePage?.component;
2205
+ $[30] = t17;
2206
+ } else {
2207
+ t17 = $[30];
2208
+ }
2209
+ HomeComponent = t17;
2210
+ let t18;
2211
+ if ($[31] !== componentsManager || $[32] !== loginPage?.component) {
2212
+ t18 = componentsManager.getComponent(loginPage?.component) || LoginPage;
2213
+ $[31] = componentsManager;
2214
+ $[32] = loginPage?.component;
2215
+ $[33] = t18;
2216
+ } else {
2217
+ t18 = $[33];
2218
+ }
2219
+ const LoginComponent = t18;
2220
+ let t19;
2221
+ if ($[34] !== accountPage?.component || $[35] !== componentsManager) {
2222
+ t19 = componentsManager.getComponent(accountPage?.component) || AccountPage;
2223
+ $[34] = accountPage?.component;
2224
+ $[35] = componentsManager;
2225
+ $[36] = t19;
2226
+ } else {
2227
+ t19 = $[36];
2228
+ }
2229
+ const AccountComponent = t19;
2230
+ let t20;
2231
+ if ($[37] !== componentsManager || $[38] !== errorPage?.component) {
2232
+ t20 = componentsManager.getComponent(errorPage?.component) || ErrorPage;
2233
+ $[37] = componentsManager;
2234
+ $[38] = errorPage?.component;
2235
+ $[39] = t20;
2236
+ } else {
2237
+ t20 = $[39];
2238
+ }
2239
+ ErrorComponent = t20;
2240
+ if (statusCode !== null) {
2241
+ let t21;
2242
+ if ($[40] !== ErrorComponent || $[41] !== errorPage || $[42] !== statusCode) {
2243
+ t21 = /*#__PURE__*/jsx(ErrorComponent, {
2244
+ statusCode: statusCode,
2245
+ ...errorPage
2246
+ });
2247
+ $[40] = ErrorComponent;
2248
+ $[41] = errorPage;
2249
+ $[42] = statusCode;
2250
+ $[43] = t21;
2251
+ } else {
2252
+ t21 = $[43];
2253
+ }
2254
+ t11 = t21;
2255
+ break bb0;
2256
+ }
2257
+ if (user === null) {
2258
+ const t21 = routes["auth.login"];
2259
+ let t22;
2260
+ if ($[44] !== LoginComponent || $[45] !== loginPage) {
2261
+ t22 = /*#__PURE__*/jsx(LoginComponent, {
2262
+ ...loginPage
2263
+ });
2264
+ $[44] = LoginComponent;
2265
+ $[45] = loginPage;
2266
+ $[46] = t22;
2267
+ } else {
2268
+ t22 = $[46];
2269
+ }
2270
+ let t23;
2271
+ if ($[47] !== t21 || $[48] !== t22) {
2272
+ t23 = /*#__PURE__*/jsx(Route, {
2273
+ path: t21,
2274
+ children: t22
2275
+ });
2276
+ $[47] = t21;
2277
+ $[48] = t22;
2278
+ $[49] = t23;
2279
+ } else {
2280
+ t23 = $[49];
2281
+ }
2282
+ let t24;
2283
+ if ($[50] !== route) {
2284
+ t24 = route("auth.login");
2285
+ $[50] = route;
2286
+ $[51] = t24;
2287
+ } else {
2288
+ t24 = $[51];
2289
+ }
2290
+ const t25 = `${t24}?next=${encodeURIComponent(pathname)}`;
2291
+ let t26;
2292
+ if ($[52] !== t25) {
2293
+ t26 = /*#__PURE__*/jsx(Route, {
2294
+ children: /*#__PURE__*/jsx(Redirect, {
2295
+ to: t25
2296
+ })
2297
+ });
2298
+ $[52] = t25;
2299
+ $[53] = t26;
2300
+ } else {
2301
+ t26 = $[53];
2302
+ }
2303
+ let t27;
2304
+ if ($[54] !== t23 || $[55] !== t26) {
2305
+ t27 = /*#__PURE__*/jsxs(Switch, {
2306
+ children: [t23, t26]
2307
+ });
2308
+ $[54] = t23;
2309
+ $[55] = t26;
2310
+ $[56] = t27;
2311
+ } else {
2312
+ t27 = $[56];
2313
+ }
2314
+ t11 = t27;
2315
+ break bb0;
2316
+ }
2317
+ T0 = Switch;
2318
+ if ($[57] !== routes || $[58] !== user) {
2319
+ t7 = user !== null ? /*#__PURE__*/jsx(Route, {
2320
+ path: routes["auth.login"],
2321
+ children: /*#__PURE__*/jsx(Redirect, {
2322
+ to: routes.home,
2323
+ replace: true
2324
+ })
2325
+ }) : null;
2326
+ $[57] = routes;
2327
+ $[58] = user;
2328
+ $[59] = t7;
2329
+ } else {
2330
+ t7 = $[59];
2331
+ }
2332
+ if ($[60] !== componentsManager || $[61] !== pages || $[62] !== resources || $[63] !== route) {
2333
+ let t21;
2334
+ if ($[65] !== componentsManager || $[66] !== pages || $[67] !== route) {
2335
+ t21 = (acc_0, resource) => [...acc_0, ...createResourceRoutes(resource, {
2435
2336
  route,
2436
2337
  componentsManager,
2437
2338
  pages
2339
+ })];
2340
+ $[65] = componentsManager;
2341
+ $[66] = pages;
2342
+ $[67] = route;
2343
+ $[68] = t21;
2344
+ } else {
2345
+ t21 = $[68];
2346
+ }
2347
+ t8 = resources.reduce(t21, []);
2348
+ $[60] = componentsManager;
2349
+ $[61] = pages;
2350
+ $[62] = resources;
2351
+ $[63] = route;
2352
+ $[64] = t8;
2353
+ } else {
2354
+ t8 = $[64];
2355
+ }
2356
+ let t21;
2357
+ if ($[69] !== AccountComponent || $[70] !== accountPage) {
2358
+ t21 = /*#__PURE__*/jsx(AccountComponent, {
2359
+ ...accountPage
2360
+ });
2361
+ $[69] = AccountComponent;
2362
+ $[70] = accountPage;
2363
+ $[71] = t21;
2364
+ } else {
2365
+ t21 = $[71];
2366
+ }
2367
+ if ($[72] !== routes.account || $[73] !== t21) {
2368
+ t9 = /*#__PURE__*/jsx(Route, {
2369
+ path: routes.account,
2370
+ children: t21
2371
+ });
2372
+ $[72] = routes.account;
2373
+ $[73] = t21;
2374
+ $[74] = t9;
2375
+ } else {
2376
+ t9 = $[74];
2377
+ }
2378
+ t10 = customRoutes.map(t22 => {
2379
+ const {
2380
+ path: t23,
2381
+ route: t24,
2382
+ component,
2383
+ ...props
2384
+ } = t22;
2385
+ const path_0 = t23 === undefined ? null : t23;
2386
+ const pageRoute_0 = t24 === undefined ? null : t24;
2387
+ const PageComponent = componentsManager.getComponent(component);
2388
+ const finalPath = path_0 || routes[pageRoute_0];
2389
+ return PageComponent !== null ? /*#__PURE__*/jsx(Route, {
2390
+ path: path_0 || routes[pageRoute_0],
2391
+ children: /*#__PURE__*/jsx(PageComponent, {
2392
+ ...props
2438
2393
  })
2439
- }, `resource-${resourceId}`);
2440
- };
2441
- $[74] = componentsManager;
2442
- $[75] = pages;
2443
- $[76] = route;
2444
- $[77] = t30;
2445
- } else {
2446
- t30 = $[77];
2394
+ }, `custom-route-${finalPath}`) : null;
2395
+ });
2447
2396
  }
2448
- t29 = resources.map(t30);
2449
- $[69] = componentsManager;
2450
- $[70] = pages;
2451
- $[71] = resources;
2452
- $[72] = route;
2453
- $[73] = t29;
2454
- } else {
2455
- t29 = $[73];
2456
- }
2457
- let t30;
2458
- if ($[78] !== AccountComponent || $[79] !== accountPage) {
2459
- t30 = /*#__PURE__*/jsx(AccountComponent, {
2460
- ...accountPage
2461
- });
2462
- $[78] = AccountComponent;
2463
- $[79] = accountPage;
2464
- $[80] = t30;
2465
- } else {
2466
- t30 = $[80];
2397
+ $[8] = componentsManager;
2398
+ $[9] = pages;
2399
+ $[10] = pathname;
2400
+ $[11] = resources;
2401
+ $[12] = route;
2402
+ $[13] = routes;
2403
+ $[14] = routesDefinition;
2404
+ $[15] = statusCode;
2405
+ $[16] = user;
2406
+ $[17] = ErrorComponent;
2407
+ $[18] = HomeComponent;
2408
+ $[19] = T0;
2409
+ $[20] = homePage;
2410
+ $[21] = t10;
2411
+ $[22] = t11;
2412
+ $[23] = t7;
2413
+ $[24] = t8;
2414
+ $[25] = t9;
2415
+ } else {
2416
+ ErrorComponent = $[17];
2417
+ HomeComponent = $[18];
2418
+ T0 = $[19];
2419
+ homePage = $[20];
2420
+ t10 = $[21];
2421
+ t11 = $[22];
2422
+ t7 = $[23];
2423
+ t8 = $[24];
2424
+ t9 = $[25];
2425
+ }
2426
+ if (t11 !== Symbol.for("react.early_return_sentinel")) {
2427
+ return t11;
2467
2428
  }
2468
- let t31;
2469
- if ($[81] !== routes.account || $[82] !== t30) {
2470
- t31 = /*#__PURE__*/jsx(Route, {
2471
- path: routes.account,
2472
- children: t30
2473
- });
2474
- $[81] = routes.account;
2475
- $[82] = t30;
2476
- $[83] = t31;
2477
- } else {
2478
- t31 = $[83];
2479
- }
2480
- let t32;
2481
- if ($[84] !== componentsManager || $[85] !== customRoutes || $[86] !== routes) {
2482
- t32 = customRoutes.map(t33 => {
2483
- const {
2484
- path: t34,
2485
- route: t35,
2486
- component,
2487
- ...props
2488
- } = t33;
2489
- const path_0 = t34 === undefined ? null : t34;
2490
- const pageRoute_0 = t35 === undefined ? null : t35;
2491
- const PageComponent = componentsManager.getComponent(component);
2492
- const finalPath = path_0 || routes[pageRoute_0];
2493
- return PageComponent !== null ? /*#__PURE__*/jsx(Route, {
2494
- path: path_0 || routes[pageRoute_0],
2495
- children: /*#__PURE__*/jsx(PageComponent, {
2496
- ...props
2497
- })
2498
- }, `custom-route-${finalPath}`) : null;
2499
- });
2500
- $[84] = componentsManager;
2501
- $[85] = customRoutes;
2502
- $[86] = routes;
2503
- $[87] = t32;
2504
- } else {
2505
- t32 = $[87];
2506
- }
2507
- let t33;
2508
- if ($[88] !== HomeComponent || $[89] !== homePage) {
2509
- t33 = /*#__PURE__*/jsx(HomeComponent, {
2429
+ let t12;
2430
+ if ($[75] !== HomeComponent || $[76] !== homePage) {
2431
+ t12 = /*#__PURE__*/jsx(HomeComponent, {
2510
2432
  ...homePage
2511
2433
  });
2512
- $[88] = HomeComponent;
2513
- $[89] = homePage;
2514
- $[90] = t33;
2434
+ $[75] = HomeComponent;
2435
+ $[76] = homePage;
2436
+ $[77] = t12;
2515
2437
  } else {
2516
- t33 = $[90];
2438
+ t12 = $[77];
2517
2439
  }
2518
- let t34;
2519
- if ($[91] !== routes.home || $[92] !== t33) {
2520
- t34 = /*#__PURE__*/jsx(Route, {
2440
+ let t13;
2441
+ if ($[78] !== routes.home || $[79] !== t12) {
2442
+ t13 = /*#__PURE__*/jsx(Route, {
2521
2443
  path: routes.home,
2522
- children: t33
2444
+ children: t12
2523
2445
  });
2524
- $[91] = routes.home;
2525
- $[92] = t33;
2526
- $[93] = t34;
2446
+ $[78] = routes.home;
2447
+ $[79] = t12;
2448
+ $[80] = t13;
2527
2449
  } else {
2528
- t34 = $[93];
2450
+ t13 = $[80];
2529
2451
  }
2530
- let t35;
2531
- if ($[94] !== ErrorComponent) {
2532
- t35 = /*#__PURE__*/jsx(Route, {
2452
+ let t14;
2453
+ if ($[81] !== ErrorComponent) {
2454
+ t14 = /*#__PURE__*/jsx(Route, {
2533
2455
  children: /*#__PURE__*/jsx(ErrorComponent, {})
2534
2456
  });
2535
- $[94] = ErrorComponent;
2536
- $[95] = t35;
2457
+ $[81] = ErrorComponent;
2458
+ $[82] = t14;
2537
2459
  } else {
2538
- t35 = $[95];
2460
+ t14 = $[82];
2539
2461
  }
2540
- let t36;
2541
- if ($[96] !== t28 || $[97] !== t29 || $[98] !== t31 || $[99] !== t32 || $[100] !== t34 || $[101] !== t35) {
2542
- t36 = /*#__PURE__*/jsxs(Switch, {
2543
- children: [t28, t29, t31, t32, t34, t35]
2462
+ let t15;
2463
+ if ($[83] !== T0 || $[84] !== t10 || $[85] !== t13 || $[86] !== t14 || $[87] !== t7 || $[88] !== t8 || $[89] !== t9) {
2464
+ t15 = /*#__PURE__*/jsxs(T0, {
2465
+ children: [t7, t8, t9, t10, t13, t14]
2544
2466
  });
2545
- $[96] = t28;
2546
- $[97] = t29;
2547
- $[98] = t31;
2548
- $[99] = t32;
2549
- $[100] = t34;
2550
- $[101] = t35;
2551
- $[102] = t36;
2552
- } else {
2553
- t36 = $[102];
2554
- }
2555
- return t36;
2467
+ $[83] = T0;
2468
+ $[84] = t10;
2469
+ $[85] = t13;
2470
+ $[86] = t14;
2471
+ $[87] = t7;
2472
+ $[88] = t8;
2473
+ $[89] = t9;
2474
+ $[90] = t15;
2475
+ } else {
2476
+ t15 = $[90];
2477
+ }
2478
+ return t15;
2556
2479
  }
2557
2480
  function _temp2(t0) {
2558
2481
  const {
@@ -2563,8 +2486,8 @@ function _temp2(t0) {
2563
2486
  const pageRoute = t2 === undefined ? null : t2;
2564
2487
  return path !== null || pageRoute !== null;
2565
2488
  }
2566
- function _temp(key) {
2567
- return key.match(/^(resources\.|auth\.)/) === null && key !== "home" && key !== "account";
2489
+ function _temp(key_1) {
2490
+ return key_1.match(/^(resources\.|auth\.)/) === null && key_1 !== "home" && key_1 !== "account";
2568
2491
  }
2569
2492
 
2570
2493
  const pathToRegexpParser = createPathToRegexpParser();
@@ -2572,6 +2495,8 @@ const DEFAULT_ROUTES = {};
2572
2495
  const DEFAULT_LOCALES = [];
2573
2496
  function Container({
2574
2497
  definition,
2498
+ forms: providedForms = null,
2499
+ fields: providedFields = null,
2575
2500
  components = null,
2576
2501
  user = null,
2577
2502
  memoryRouter = false,
@@ -2582,43 +2507,39 @@ function Container({
2582
2507
  const {
2583
2508
  intl: {
2584
2509
  locale = 'en',
2585
- locales = DEFAULT_LOCALES
2510
+ locales = DEFAULT_LOCALES,
2511
+ messages
2586
2512
  } = {},
2587
2513
  routes = DEFAULT_ROUTES,
2514
+ resources = [],
2588
2515
  settings: {
2589
2516
  memoryRouter: usesMemoryRouter = false
2590
- } = {}
2517
+ } = {},
2518
+ forms,
2519
+ fields
2591
2520
  } = definition || {};
2592
2521
  const isMemoryRouter = memoryRouter || usesMemoryRouter || false;
2593
- const extraMessages = useMemo(() => {
2594
- const {
2522
+ const extraMessages = {
2523
+ ...messages,
2524
+ ...resources.reduce((allMessages, {
2525
+ id,
2595
2526
  intl: {
2596
- messages = null
2597
- } = {},
2598
- resources = []
2599
- } = definition;
2600
- return {
2601
- ...messages,
2602
- ...resources.reduce((allMessages, {
2603
- id,
2604
- intl: {
2605
- messages: resourceMessages = {}
2606
- } = {}
2607
- }) => ({
2608
- ...allMessages,
2609
- ...Object.keys(resourceMessages).reduce((allResourceMessages, key) => ({
2610
- ...allResourceMessages,
2611
- [`resources.${id}.${key}`]: resourceMessages[key]
2612
- }), {})
2527
+ messages: resourceMessages = {}
2528
+ } = {}
2529
+ }) => ({
2530
+ ...allMessages,
2531
+ ...Object.keys(resourceMessages).reduce((allResourceMessages, key) => ({
2532
+ ...allResourceMessages,
2533
+ [`resources.${id}.${key}`]: resourceMessages[key]
2613
2534
  }), {})
2614
- };
2615
- }, [definition]);
2616
- const onUnauthorized = useCallback(() => {
2535
+ }), {})
2536
+ };
2537
+ const onUnauthorized = () => {
2617
2538
  window.location.href = baseUrl || '/';
2618
- }, [baseUrl]);
2619
- const onLogout = useCallback(() => {
2539
+ };
2540
+ const onLogout = () => {
2620
2541
  window.location.reload();
2621
- }, []);
2542
+ };
2622
2543
  const {
2623
2544
  hook: memoryLocationHook,
2624
2545
  searchHook: memorySearchHook
@@ -2638,7 +2559,9 @@ function Container({
2638
2559
  children: /*#__PURE__*/jsx(RoutesProvider, {
2639
2560
  routes: routes,
2640
2561
  children: /*#__PURE__*/jsx(FieldsProvider, {
2562
+ definitions: [...(fields || []), ...(providedFields || [])],
2641
2563
  children: /*#__PURE__*/jsx(FormsProvider, {
2564
+ definitions: [...(forms || []), ...(providedForms || [])],
2642
2565
  children: /*#__PURE__*/jsx(ListsProvider, {
2643
2566
  children: /*#__PURE__*/jsx(DisplaysProvider, {
2644
2567
  children: /*#__PURE__*/jsx(FiltersProvider, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panneau/app",
3
- "version": "4.0.74",
3
+ "version": "4.0.75",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "javascript"
@@ -67,45 +67,45 @@
67
67
  "@fortawesome/fontawesome-svg-core": "^6.5.1",
68
68
  "@fortawesome/free-solid-svg-icons": "^6.5.1",
69
69
  "@fortawesome/react-fontawesome": "^0.2.0",
70
- "@panneau/actions": "^4.0.74",
71
- "@panneau/auth": "^4.0.74",
72
- "@panneau/core": "^4.0.74",
73
- "@panneau/data": "^4.0.74",
74
- "@panneau/displays": "^4.0.74",
75
- "@panneau/element-accordion": "^4.0.74",
76
- "@panneau/element-alert": "^4.0.74",
77
- "@panneau/element-avatar": "^4.0.74",
78
- "@panneau/element-breadcrumbs": "^4.0.74",
79
- "@panneau/element-button": "^4.0.74",
80
- "@panneau/element-buttons": "^4.0.74",
81
- "@panneau/element-dropdown": "^4.0.74",
82
- "@panneau/element-form": "^4.0.74",
83
- "@panneau/element-form-group": "^4.0.74",
84
- "@panneau/element-grid": "^4.0.74",
85
- "@panneau/element-icon": "^4.0.74",
86
- "@panneau/element-label": "^4.0.74",
87
- "@panneau/element-link": "^4.0.74",
88
- "@panneau/element-loading": "^4.0.74",
89
- "@panneau/element-media-card": "^4.0.74",
90
- "@panneau/element-media-player": "^4.0.74",
91
- "@panneau/element-menu": "^4.0.74",
92
- "@panneau/element-modal": "^4.0.74",
93
- "@panneau/element-navbar": "^4.0.74",
94
- "@panneau/element-pagination": "^4.0.74",
95
- "@panneau/element-radios": "^4.0.74",
96
- "@panneau/element-range": "^4.0.74",
97
- "@panneau/element-resource-card": "^4.0.74",
98
- "@panneau/fields": "^4.0.74",
99
- "@panneau/filter-filters": "^4.0.74",
100
- "@panneau/filters": "^4.0.74",
101
- "@panneau/form-resource": "^4.0.74",
102
- "@panneau/forms": "^4.0.74",
103
- "@panneau/intl": "^4.0.74",
104
- "@panneau/list-resource-items": "^4.0.74",
105
- "@panneau/lists": "^4.0.74",
106
- "@panneau/modals": "^4.0.74",
107
- "@panneau/themes": "^4.0.74",
108
- "@panneau/uppy": "^4.0.74",
70
+ "@panneau/actions": "^4.0.75",
71
+ "@panneau/auth": "^4.0.75",
72
+ "@panneau/core": "^4.0.75",
73
+ "@panneau/data": "^4.0.75",
74
+ "@panneau/displays": "^4.0.75",
75
+ "@panneau/element-accordion": "^4.0.75",
76
+ "@panneau/element-alert": "^4.0.75",
77
+ "@panneau/element-avatar": "^4.0.75",
78
+ "@panneau/element-breadcrumbs": "^4.0.75",
79
+ "@panneau/element-button": "^4.0.75",
80
+ "@panneau/element-buttons": "^4.0.75",
81
+ "@panneau/element-dropdown": "^4.0.75",
82
+ "@panneau/element-form": "^4.0.75",
83
+ "@panneau/element-form-group": "^4.0.75",
84
+ "@panneau/element-grid": "^4.0.75",
85
+ "@panneau/element-icon": "^4.0.75",
86
+ "@panneau/element-label": "^4.0.75",
87
+ "@panneau/element-link": "^4.0.75",
88
+ "@panneau/element-loading": "^4.0.75",
89
+ "@panneau/element-media-card": "^4.0.75",
90
+ "@panneau/element-media-player": "^4.0.75",
91
+ "@panneau/element-menu": "^4.0.75",
92
+ "@panneau/element-modal": "^4.0.75",
93
+ "@panneau/element-navbar": "^4.0.75",
94
+ "@panneau/element-pagination": "^4.0.75",
95
+ "@panneau/element-radios": "^4.0.75",
96
+ "@panneau/element-range": "^4.0.75",
97
+ "@panneau/element-resource-card": "^4.0.75",
98
+ "@panneau/fields": "^4.0.75",
99
+ "@panneau/filter-filters": "^4.0.75",
100
+ "@panneau/filters": "^4.0.75",
101
+ "@panneau/form-resource": "^4.0.75",
102
+ "@panneau/forms": "^4.0.75",
103
+ "@panneau/intl": "^4.0.75",
104
+ "@panneau/list-resource-items": "^4.0.75",
105
+ "@panneau/lists": "^4.0.75",
106
+ "@panneau/modals": "^4.0.75",
107
+ "@panneau/themes": "^4.0.75",
108
+ "@panneau/uppy": "^4.0.75",
109
109
  "classnames": "^2.5.1",
110
110
  "lodash": "^4.17.21",
111
111
  "query-string": "^9.0.0",
@@ -123,5 +123,5 @@
123
123
  "publishConfig": {
124
124
  "access": "public"
125
125
  },
126
- "gitHead": "122cadcf8ea5faacc035e7fe911fbdfb9fb87d26"
126
+ "gitHead": "2eb608f88ad5041b3fa9c472e97a68680e281766"
127
127
  }