@plumile/backoffice-react 0.1.200 → 0.1.201

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 (46) hide show
  1. package/lib/esm/components/backoffice/actions/BackofficeEntityActionFormDialog.js.map +1 -1
  2. package/lib/esm/components/backoffice/layout/breadcrumb/buildBreadcrumbs.js.map +1 -1
  3. package/lib/esm/components/backoffice/layout/sidebarUtils.js.map +1 -1
  4. package/lib/esm/components/backoffice/pickers/EntityIdPickerDialog.js +1 -1
  5. package/lib/esm/components/backoffice/pickers/EntityIdPickerDialog.js.map +1 -1
  6. package/lib/esm/pages/BackofficeEntityDetailLayoutPage.js +1 -1
  7. package/lib/esm/pages/BackofficeEntityDetailLayoutPage.js.map +1 -1
  8. package/lib/esm/pages/BackofficeEntityDetailPage.helpers.js.map +1 -1
  9. package/lib/esm/pages/BackofficeEntityDetailPage.js +169 -169
  10. package/lib/esm/pages/BackofficeEntityDetailPage.js.map +1 -1
  11. package/lib/esm/pages/BackofficeEntityListDataPage.js +1 -1
  12. package/lib/esm/pages/BackofficeEntityListDataPage.js.map +1 -1
  13. package/lib/esm/pages/BackofficeEntityListPage.helpers.js.map +1 -1
  14. package/lib/esm/provider/entityRegistry.js +39 -36
  15. package/lib/esm/provider/entityRegistry.js.map +1 -1
  16. package/lib/esm/provider/useBackofficeAuthRouteGate.js +7 -7
  17. package/lib/esm/provider/useBackofficeAuthRouteGate.js.map +1 -1
  18. package/lib/esm/relay/createInlineReader.js.map +1 -1
  19. package/lib/esm/relay/envHelpers.js +30 -22
  20. package/lib/esm/relay/envHelpers.js.map +1 -1
  21. package/lib/esm/relay/typedRelayHooks.js +11 -2
  22. package/lib/esm/relay/typedRelayHooks.js.map +1 -1
  23. package/lib/esm/router/createBackofficeRoutes.js.map +1 -1
  24. package/lib/types/components/backoffice/actions/BackofficeEntityActionFormDialog.d.ts +2 -2
  25. package/lib/types/components/backoffice/actions/BackofficeEntityActionFormDialog.d.ts.map +1 -1
  26. package/lib/types/components/backoffice/layout/sidebarUtils.d.ts.map +1 -1
  27. package/lib/types/components/backoffice/pickers/EntityIdPickerDialog.d.ts.map +1 -1
  28. package/lib/types/index.d.ts +1 -0
  29. package/lib/types/index.d.ts.map +1 -1
  30. package/lib/types/pages/BackofficeEntityDetailPage.d.ts.map +1 -1
  31. package/lib/types/pages/BackofficeEntityDetailPage.helpers.d.ts +3 -3
  32. package/lib/types/pages/BackofficeEntityDetailPage.helpers.d.ts.map +1 -1
  33. package/lib/types/pages/BackofficeEntityListPage.helpers.d.ts +2 -2
  34. package/lib/types/pages/BackofficeEntityListPage.helpers.d.ts.map +1 -1
  35. package/lib/types/provider/entityRegistry.d.ts.map +1 -1
  36. package/lib/types/provider/types.d.ts +1 -1
  37. package/lib/types/provider/types.d.ts.map +1 -1
  38. package/lib/types/provider/useBackofficeAuthRouteGate.d.ts.map +1 -1
  39. package/lib/types/relay/createInlineReader.d.ts +4 -1
  40. package/lib/types/relay/createInlineReader.d.ts.map +1 -1
  41. package/lib/types/relay/envHelpers.d.ts.map +1 -1
  42. package/lib/types/relay/typedRelayHooks.d.ts +15 -5
  43. package/lib/types/relay/typedRelayHooks.d.ts.map +1 -1
  44. package/lib/types/router/createBackofficeRoutes.d.ts +1 -1
  45. package/lib/types/router/createBackofficeRoutes.d.ts.map +1 -1
  46. package/package.json +13 -13
@@ -1,55 +1,63 @@
1
1
  //#region src/relay/envHelpers.ts
2
- var e = (() => {
2
+ function e(e) {
3
+ return typeof e == "object" && !!e;
4
+ }
5
+ var t = (() => {
3
6
  try {
4
- let e = import.meta;
5
- return e.env == null ? {} : e.env;
7
+ let t = import.meta, n;
8
+ if ("env" in t && (n = t.env), e(n)) {
9
+ let e = {};
10
+ for (let [t, r] of Object.entries(n)) (typeof r == "string" || typeof r == "boolean" || r === void 0) && (e[t] = r);
11
+ return e;
12
+ }
13
+ return {};
6
14
  } catch {
7
15
  return {};
8
16
  }
9
- })(), t = (e, t) => {
17
+ })(), n = (e, t) => {
10
18
  let n = e[t];
11
19
  if (typeof n != "string") return;
12
20
  let r = n.trim();
13
21
  if (r !== "") return r;
14
- }, n = (e, t) => {
22
+ }, r = (e, t) => {
15
23
  let n = e[t];
16
24
  if (n === !0 || n === !1) return n;
17
25
  if (typeof n == "string") {
18
26
  if (n === "true") return !0;
19
27
  if (n === "false") return !1;
20
28
  }
21
- }, r = (e) => !!n(e, "DEV");
22
- function i(n) {
23
- return t(e, n);
29
+ }, i = (e) => !!r(e, "DEV");
30
+ function a(e) {
31
+ return n(t, e);
24
32
  }
25
- function a(t) {
26
- return n(e, t);
33
+ function o(e) {
34
+ return r(t, e);
27
35
  }
28
- function o() {
29
- return r(e);
36
+ function s() {
37
+ return i(t);
30
38
  }
31
- function s(e) {
32
- let { envKeys: t, fallback: n, read: r = i } = e;
39
+ function c(e) {
40
+ let { envKeys: t, fallback: n, read: r = a } = e;
33
41
  for (let e of t) {
34
42
  let t = r(e);
35
43
  if (t != null) return t;
36
44
  }
37
45
  return n;
38
46
  }
39
- function c(e) {
40
- let { envKeys: t, fallback: n, httpEndpoint: r, read: a = i } = e;
47
+ function l(e) {
48
+ let { envKeys: t, fallback: n, httpEndpoint: r, read: i = a } = e;
41
49
  for (let e of t) {
42
- let t = a(e);
50
+ let t = i(e);
43
51
  if (t != null) return t;
44
52
  }
45
53
  return r.startsWith("http") ? r.replace(/^http/, "ws") : r.startsWith("/") ? r.replace(/\/graphql$/, "/ws") : n;
46
54
  }
47
- var l = {
48
- isDevEnvFromRecord: r,
49
- readBooleanEnvFromRecord: n,
50
- readEnvFromRecord: t
55
+ var u = {
56
+ isDevEnvFromRecord: i,
57
+ readBooleanEnvFromRecord: r,
58
+ readEnvFromRecord: n
51
59
  };
52
60
  //#endregion
53
- export { l as __test, o as isDevEnv, a as readBooleanEnv, i as readEnv, s as resolveHttpEndpoint, c as resolveWebsocketEndpoint };
61
+ export { u as __test, s as isDevEnv, o as readBooleanEnv, a as readEnv, c as resolveHttpEndpoint, l as resolveWebsocketEndpoint };
54
62
 
55
63
  //# sourceMappingURL=envHelpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"envHelpers.js","names":[],"sources":["../../../src/relay/envHelpers.ts"],"sourcesContent":["type EnvRecord = Record<string, string | boolean | undefined>;\n\nconst viteEnv: EnvRecord = (() => {\n try {\n const meta = import.meta as unknown as { env?: EnvRecord };\n if (meta.env != null) {\n return meta.env;\n }\n return {};\n } catch {\n // `import.meta` is not defined outside of ESM environments; fall back to an empty record.\n return {};\n }\n})();\n\nexport type ReadEnvFn = (key: string) => string | undefined;\n\nconst readEnvFromRecord = (env: EnvRecord, key: string): string | undefined => {\n const value = env[key];\n if (typeof value !== 'string') {\n return undefined;\n }\n\n const trimmed = value.trim();\n if (trimmed === '') {\n return undefined;\n }\n\n return trimmed;\n};\n\nconst readBooleanEnvFromRecord = (\n env: EnvRecord,\n key: string,\n): boolean | undefined => {\n const value = env[key];\n if (value === true || value === false) {\n return value;\n }\n if (typeof value === 'string') {\n if (value === 'true') {\n return true;\n }\n if (value === 'false') {\n return false;\n }\n }\n return undefined;\n};\n\nconst isDevEnvFromRecord = (env: EnvRecord): boolean => {\n return Boolean(readBooleanEnvFromRecord(env, 'DEV'));\n};\n\n/**\n * Read a string environment variable from Vite's `import.meta.env` (if available).\n * Returns `undefined` when the value is missing or empty.\n */\nexport function readEnv(key: string): string | undefined {\n return readEnvFromRecord(viteEnv, key);\n}\n\n/**\n * Reads an environment variable and coerces common string values to booleans.\n */\nexport function readBooleanEnv(key: string): boolean | undefined {\n return readBooleanEnvFromRecord(viteEnv, key);\n}\n\n/**\n * Indicates whether the current build is running in development mode.\n */\nexport function isDevEnv(): boolean {\n return isDevEnvFromRecord(viteEnv);\n}\n\ninterface ResolveEndpointOptions {\n envKeys: readonly string[];\n fallback: string;\n read?: ReadEnvFn;\n}\n\n/**\n * Resolve HTTP endpoint from environment variables.\n */\nexport function resolveHttpEndpoint(options: ResolveEndpointOptions): string {\n const { envKeys, fallback, read = readEnv } = options;\n for (const key of envKeys) {\n const value = read(key);\n if (value != null) {\n return value;\n }\n }\n return fallback;\n}\n\ninterface ResolveWebsocketEndpointOptions extends ResolveEndpointOptions {\n httpEndpoint: string;\n}\n\n/**\n * Resolve websocket endpoint from environment variables or derive it from the HTTP endpoint.\n */\nexport function resolveWebsocketEndpoint(\n options: ResolveWebsocketEndpointOptions,\n): string {\n const { envKeys, fallback, httpEndpoint, read = readEnv } = options;\n\n for (const key of envKeys) {\n const value = read(key);\n if (value != null) {\n return value;\n }\n }\n\n if (httpEndpoint.startsWith('http')) {\n return httpEndpoint.replace(/^http/, 'ws');\n }\n\n if (httpEndpoint.startsWith('/')) {\n return httpEndpoint.replace(/\\/graphql$/, '/ws');\n }\n\n return fallback;\n}\n\nexport const __test = {\n isDevEnvFromRecord,\n readBooleanEnvFromRecord,\n readEnvFromRecord,\n};\n"],"mappings":";AAEA,IAAM,WAA4B;CAChC,IAAI;EACF,IAAM,IAAO;EAIb,OAHI,EAAK,OAAO,OAGT,CAAC,IAFC,EAAK;CAGhB,QAAQ;EAEN,OAAO,CAAC;CACV;AACF,EAAA,CAAG,GAIG,KAAqB,GAAgB,MAAoC;CAC7E,IAAM,IAAQ,EAAI;CAClB,IAAI,OAAO,KAAU,UACnB;CAGF,IAAM,IAAU,EAAM,KAAK;CACvB,UAAY,IAIhB,OAAO;AACT,GAEM,KACJ,GACA,MACwB;CACxB,IAAM,IAAQ,EAAI;CAClB,IAAI,MAAU,MAAQ,MAAU,IAC9B,OAAO;CAET,IAAI,OAAO,KAAU,UAAU;EAC7B,IAAI,MAAU,QACZ,OAAO;EAET,IAAI,MAAU,SACZ,OAAO;CAEX;AAEF,GAEM,KAAsB,MACnB,EAAQ,EAAyB,GAAK,KAAK;AAOpD,SAAgB,EAAQ,GAAiC;CACvD,OAAO,EAAkB,GAAS,CAAG;AACvC;AAKA,SAAgB,EAAe,GAAkC;CAC/D,OAAO,EAAyB,GAAS,CAAG;AAC9C;AAKA,SAAgB,IAAoB;CAClC,OAAO,EAAmB,CAAO;AACnC;AAWA,SAAgB,EAAoB,GAAyC;CAC3E,IAAM,EAAE,YAAS,aAAU,UAAO,MAAY;CAC9C,KAAK,IAAM,KAAO,GAAS;EACzB,IAAM,IAAQ,EAAK,CAAG;EACtB,IAAI,KAAS,MACX,OAAO;CAEX;CACA,OAAO;AACT;AASA,SAAgB,EACd,GACQ;CACR,IAAM,EAAE,YAAS,aAAU,iBAAc,UAAO,MAAY;CAE5D,KAAK,IAAM,KAAO,GAAS;EACzB,IAAM,IAAQ,EAAK,CAAG;EACtB,IAAI,KAAS,MACX,OAAO;CAEX;CAUA,OARI,EAAa,WAAW,MAAM,IACzB,EAAa,QAAQ,SAAS,IAAI,IAGvC,EAAa,WAAW,GAAG,IACtB,EAAa,QAAQ,cAAc,KAAK,IAG1C;AACT;AAEA,IAAa,IAAS;CACpB;CACA;CACA;AACF"}
1
+ {"version":3,"file":"envHelpers.js","names":[],"sources":["../../../src/relay/envHelpers.ts"],"sourcesContent":["type EnvRecord = Record<string, string | boolean | undefined>;\n\n/** Narrows external environment objects before enumerating their values. */\nfunction isUnknownRecord(value: unknown): value is Record<string, unknown> {\n return value != null && typeof value === 'object';\n}\n\nconst viteEnv: EnvRecord = (() => {\n try {\n const meta: object = import.meta;\n let env: unknown;\n if ('env' in meta) {\n env = meta.env;\n }\n if (isUnknownRecord(env)) {\n const result: EnvRecord = {};\n for (const [key, value] of Object.entries(env)) {\n if (\n typeof value === 'string' ||\n typeof value === 'boolean' ||\n value === undefined\n ) {\n result[key] = value;\n }\n }\n return result;\n }\n return {};\n } catch {\n // `import.meta` is not defined outside of ESM environments; fall back to an empty record.\n return {};\n }\n})();\n\nexport type ReadEnvFn = (key: string) => string | undefined;\n\nconst readEnvFromRecord = (env: EnvRecord, key: string): string | undefined => {\n const value = env[key];\n if (typeof value !== 'string') {\n return undefined;\n }\n\n const trimmed = value.trim();\n if (trimmed === '') {\n return undefined;\n }\n\n return trimmed;\n};\n\nconst readBooleanEnvFromRecord = (\n env: EnvRecord,\n key: string,\n): boolean | undefined => {\n const value = env[key];\n if (value === true || value === false) {\n return value;\n }\n if (typeof value === 'string') {\n if (value === 'true') {\n return true;\n }\n if (value === 'false') {\n return false;\n }\n }\n return undefined;\n};\n\nconst isDevEnvFromRecord = (env: EnvRecord): boolean => {\n return Boolean(readBooleanEnvFromRecord(env, 'DEV'));\n};\n\n/**\n * Read a string environment variable from Vite's `import.meta.env` (if available).\n * Returns `undefined` when the value is missing or empty.\n */\nexport function readEnv(key: string): string | undefined {\n return readEnvFromRecord(viteEnv, key);\n}\n\n/**\n * Reads an environment variable and coerces common string values to booleans.\n */\nexport function readBooleanEnv(key: string): boolean | undefined {\n return readBooleanEnvFromRecord(viteEnv, key);\n}\n\n/**\n * Indicates whether the current build is running in development mode.\n */\nexport function isDevEnv(): boolean {\n return isDevEnvFromRecord(viteEnv);\n}\n\ninterface ResolveEndpointOptions {\n envKeys: readonly string[];\n fallback: string;\n read?: ReadEnvFn;\n}\n\n/**\n * Resolve HTTP endpoint from environment variables.\n */\nexport function resolveHttpEndpoint(options: ResolveEndpointOptions): string {\n const { envKeys, fallback, read = readEnv } = options;\n for (const key of envKeys) {\n const value = read(key);\n if (value != null) {\n return value;\n }\n }\n return fallback;\n}\n\ninterface ResolveWebsocketEndpointOptions extends ResolveEndpointOptions {\n httpEndpoint: string;\n}\n\n/**\n * Resolve websocket endpoint from environment variables or derive it from the HTTP endpoint.\n */\nexport function resolveWebsocketEndpoint(\n options: ResolveWebsocketEndpointOptions,\n): string {\n const { envKeys, fallback, httpEndpoint, read = readEnv } = options;\n\n for (const key of envKeys) {\n const value = read(key);\n if (value != null) {\n return value;\n }\n }\n\n if (httpEndpoint.startsWith('http')) {\n return httpEndpoint.replace(/^http/, 'ws');\n }\n\n if (httpEndpoint.startsWith('/')) {\n return httpEndpoint.replace(/\\/graphql$/, '/ws');\n }\n\n return fallback;\n}\n\nexport const __test = {\n isDevEnvFromRecord,\n readBooleanEnvFromRecord,\n readEnvFromRecord,\n};\n"],"mappings":";AAGA,SAAS,EAAgB,GAAkD;CACzE,OAAwB,OAAO,KAAU,cAAlC;AACT;AAEA,IAAM,WAA4B;CAChC,IAAI;EACF,IAAM,IAAe,aACjB;EAIJ,IAHI,SAAS,MACX,IAAM,EAAK,MAET,EAAgB,CAAG,GAAG;GACxB,IAAM,IAAoB,CAAC;GAC3B,KAAK,IAAM,CAAC,GAAK,MAAU,OAAO,QAAQ,CAAG,GAC3C,CACE,OAAO,KAAU,YACjB,OAAO,KAAU,aACjB,MAAU,KAAA,OAEV,EAAO,KAAO;GAGlB,OAAO;EACT;EACA,OAAO,CAAC;CACV,QAAQ;EAEN,OAAO,CAAC;CACV;AACF,EAAA,CAAG,GAIG,KAAqB,GAAgB,MAAoC;CAC7E,IAAM,IAAQ,EAAI;CAClB,IAAI,OAAO,KAAU,UACnB;CAGF,IAAM,IAAU,EAAM,KAAK;CACvB,UAAY,IAIhB,OAAO;AACT,GAEM,KACJ,GACA,MACwB;CACxB,IAAM,IAAQ,EAAI;CAClB,IAAI,MAAU,MAAQ,MAAU,IAC9B,OAAO;CAET,IAAI,OAAO,KAAU,UAAU;EAC7B,IAAI,MAAU,QACZ,OAAO;EAET,IAAI,MAAU,SACZ,OAAO;CAEX;AAEF,GAEM,KAAsB,MACnB,EAAQ,EAAyB,GAAK,KAAK;AAOpD,SAAgB,EAAQ,GAAiC;CACvD,OAAO,EAAkB,GAAS,CAAG;AACvC;AAKA,SAAgB,EAAe,GAAkC;CAC/D,OAAO,EAAyB,GAAS,CAAG;AAC9C;AAKA,SAAgB,IAAoB;CAClC,OAAO,EAAmB,CAAO;AACnC;AAWA,SAAgB,EAAoB,GAAyC;CAC3E,IAAM,EAAE,YAAS,aAAU,UAAO,MAAY;CAC9C,KAAK,IAAM,KAAO,GAAS;EACzB,IAAM,IAAQ,EAAK,CAAG;EACtB,IAAI,KAAS,MACX,OAAO;CAEX;CACA,OAAO;AACT;AASA,SAAgB,EACd,GACQ;CACR,IAAM,EAAE,YAAS,aAAU,iBAAc,UAAO,MAAY;CAE5D,KAAK,IAAM,KAAO,GAAS;EACzB,IAAM,IAAQ,EAAK,CAAG;EACtB,IAAI,KAAS,MACX,OAAO;CAEX;CAUA,OARI,EAAa,WAAW,MAAM,IACzB,EAAa,QAAQ,SAAS,IAAI,IAGvC,EAAa,WAAW,GAAG,IACtB,EAAa,QAAQ,cAAc,KAAK,IAG1C;AACT;AAEA,IAAa,IAAS;CACpB;CACA;CACA;AACF"}
@@ -1,7 +1,16 @@
1
1
  import * as e from "react-relay";
2
2
  //#region src/relay/typedRelayHooks.ts
3
- var t = (t, n) => e.useFragment(t, n), n = (t, n) => e.usePaginationFragment(t, n), r = (t, n) => e.usePreloadedQuery(t, n), i = (t, n) => e.readInlineData(t, n);
3
+ function t(t, n) {
4
+ return e.useFragment(t, n);
5
+ }
6
+ function n(t, n) {
7
+ return e.usePaginationFragment(t, n);
8
+ }
9
+ var r = (t, n) => e.useFragment(t, n), i = (t, n) => e.usePaginationFragment(t, n), a = (t, n) => e.usePreloadedQuery(t, n);
10
+ function o(t, n) {
11
+ return e.readInlineData(t, n);
12
+ }
4
13
  //#endregion
5
- export { i as readBackofficeInlineData, t as useBackofficeFragment, n as useBackofficePaginationFragment, r as useBackofficePreloadedQuery };
14
+ export { o as readBackofficeInlineData, t as useBackofficeFragment, n as useBackofficePaginationFragment, a as useBackofficePreloadedQuery, r as useBackofficeRuntimeFragment, i as useBackofficeRuntimePaginationFragment };
6
15
 
7
16
  //# sourceMappingURL=typedRelayHooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typedRelayHooks.js","names":[],"sources":["../../../src/relay/typedRelayHooks.ts"],"sourcesContent":["import * as ReactRelay from 'react-relay';\nimport type { GraphQLTaggedNode, OperationType } from 'relay-runtime';\n\nexport type BackofficeFragmentInput = GraphQLTaggedNode;\n\nexport const useBackofficeFragment = <TRef, TData>(\n fragment: BackofficeFragmentInput,\n ref: TRef,\n): TData => {\n return ReactRelay.useFragment(fragment, ref as any) as TData;\n};\n\nexport const useBackofficePaginationFragment = <\n TQuery extends OperationType,\n TRef,\n TData,\n>(\n fragment: BackofficeFragmentInput,\n ref: TRef,\n): ReturnType<typeof ReactRelay.usePaginationFragment<TQuery, any>> & {\n data: TData;\n} => {\n return ReactRelay.usePaginationFragment<TQuery, any>(\n fragment,\n ref as any,\n ) as ReturnType<typeof ReactRelay.usePaginationFragment<TQuery, any>> & {\n data: TData;\n };\n};\n\nexport const useBackofficePreloadedQuery = <TQuery extends OperationType>(\n query: GraphQLTaggedNode,\n preloadedQuery: Parameters<typeof ReactRelay.usePreloadedQuery<TQuery>>[1],\n): TQuery['response'] => {\n return ReactRelay.usePreloadedQuery<TQuery>(query, preloadedQuery);\n};\n\nexport const readBackofficeInlineData = <TRef, TData>(\n fragment: GraphQLTaggedNode,\n ref: TRef,\n): TData => {\n return ReactRelay.readInlineData(fragment, ref as any) as TData;\n};\n"],"mappings":";;AAKA,IAAa,KACX,GACA,MAEO,EAAW,YAAY,GAAU,CAAU,GAGvC,KAKX,GACA,MAIO,EAAW,sBAChB,GACA,CACF,GAKW,KACX,GACA,MAEO,EAAW,kBAA0B,GAAO,CAAc,GAGtD,KACX,GACA,MAEO,EAAW,eAAe,GAAU,CAAU"}
1
+ {"version":3,"file":"typedRelayHooks.js","names":[],"sources":["../../../src/relay/typedRelayHooks.ts"],"sourcesContent":["import * as ReactRelay from 'react-relay';\nimport type { GraphQLTaggedNode, OperationType } from 'relay-runtime';\n\nexport type BackofficeRelayKey<TData = unknown> = Readonly<{\n ' $data'?: TData;\n ' $fragmentSpreads': unknown;\n}>;\n\nexport type BackofficeRelayKeyData<TKey extends BackofficeRelayKey> =\n Required<TKey>[' $data'];\n\nexport type BackofficeFragmentInput = GraphQLTaggedNode;\n\nexport function useBackofficeFragment<TKey extends BackofficeRelayKey>(\n fragment: BackofficeFragmentInput,\n ref: TKey,\n): BackofficeRelayKeyData<TKey>;\nexport function useBackofficeFragment<TKey extends BackofficeRelayKey>(\n fragment: BackofficeFragmentInput,\n ref: TKey | null | undefined,\n): BackofficeRelayKeyData<TKey> | null | undefined;\nexport function useBackofficeFragment<TKey extends BackofficeRelayKey>(\n fragment: BackofficeFragmentInput,\n ref: TKey | null | undefined,\n): BackofficeRelayKeyData<TKey> | null | undefined {\n return ReactRelay.useFragment(fragment, ref);\n}\n\nexport function useBackofficePaginationFragment<\n TQuery extends OperationType,\n TKey extends BackofficeRelayKey,\n>(fragment: BackofficeFragmentInput, ref: TKey) {\n return ReactRelay.usePaginationFragment<TQuery, TKey>(fragment, ref);\n}\n\n/**\n * Dynamic backoffice manifests erase the generated Relay key while crossing the\n * package boundary. Keep that unavoidable conversion in this adapter instead\n * of letting every renderer choose its own result type.\n */\nexport const useBackofficeRuntimeFragment = (\n fragment: BackofficeFragmentInput,\n ref: unknown,\n): unknown => {\n return ReactRelay.useFragment(fragment, ref as BackofficeRelayKey);\n};\n\nexport const useBackofficeRuntimePaginationFragment = <\n TQuery extends OperationType,\n>(\n fragment: BackofficeFragmentInput,\n ref: unknown,\n) => {\n return ReactRelay.usePaginationFragment<TQuery, BackofficeRelayKey>(\n fragment,\n ref as BackofficeRelayKey,\n );\n};\n\nexport const useBackofficePreloadedQuery = <TQuery extends OperationType>(\n query: GraphQLTaggedNode,\n preloadedQuery: Parameters<typeof ReactRelay.usePreloadedQuery<TQuery>>[1],\n): TQuery['response'] => {\n return ReactRelay.usePreloadedQuery<TQuery>(query, preloadedQuery);\n};\n\nexport function readBackofficeInlineData<TKey extends BackofficeRelayKey>(\n fragment: GraphQLTaggedNode,\n ref: TKey,\n): BackofficeRelayKeyData<TKey>;\nexport function readBackofficeInlineData<TKey extends BackofficeRelayKey>(\n fragment: GraphQLTaggedNode,\n ref: TKey | null | undefined,\n): BackofficeRelayKeyData<TKey> | null | undefined;\nexport function readBackofficeInlineData<TKey extends BackofficeRelayKey>(\n fragment: GraphQLTaggedNode,\n ref: TKey | null | undefined,\n): BackofficeRelayKeyData<TKey> | null | undefined {\n return ReactRelay.readInlineData(fragment, ref);\n}\n"],"mappings":";;AAqBA,SAAgB,EACd,GACA,GACiD;CACjD,OAAO,EAAW,YAAY,GAAU,CAAG;AAC7C;AAEA,SAAgB,EAGd,GAAmC,GAAW;CAC9C,OAAO,EAAW,sBAAoC,GAAU,CAAG;AACrE;AAOA,IAAa,KACX,GACA,MAEO,EAAW,YAAY,GAAU,CAAyB,GAGtD,KAGX,GACA,MAEO,EAAW,sBAChB,GACA,CACF,GAGW,KACX,GACA,MAEO,EAAW,kBAA0B,GAAO,CAAc;AAWnE,SAAgB,EACd,GACA,GACiD;CACjD,OAAO,EAAW,eAAe,GAAU,CAAG;AAChD"}
@@ -1 +1 @@
1
- {"version":3,"file":"createBackofficeRoutes.js","names":[],"sources":["../../../src/router/createBackofficeRoutes.tsx"],"sourcesContent":["/* eslint-disable no-ternary */\nimport {\n useContext,\n useEffect,\n type ComponentType,\n type JSX,\n type ReactNode,\n} from 'react';\nimport {\n getResourcePage,\n type ResourcePage,\n} from '@plumile/router/ResourcePage.js';\nimport RoutingContext from '@plumile/router/routing/RoutingContext.js';\nimport { r } from '@plumile/router/tools.js';\nimport {\n type AnyRoute,\n type Route,\n type RouteFallbackArgs,\n} from '@plumile/router/types.js';\nimport * as ReactRelay from 'react-relay';\nimport type { PreloadedQuery } from 'react-relay';\nimport type {\n Environment,\n GraphQLTaggedNode,\n OperationType,\n Variables,\n} from 'relay-runtime';\n\nimport { BACKOFFICE_LIST_DEFAULTS } from '@plumile/backoffice-core/constants.js';\nimport type {\n BackofficeDashboardConfig,\n BackofficeDetailPageManifestItem,\n BackofficeEntityManifestItem,\n BackofficeEntityManifestMap,\n I18nLabel,\n BackofficePreparedDetailFrameRoute,\n BackofficePreparedDetailLayoutDataRoute,\n BackofficePreparedDetailPageConfigRoute,\n BackofficePreparedDetailPageDataRoute,\n BackofficePreparedDetailShellRoute,\n BackofficePreparedDetailUnknownPageRoute,\n BackofficePreparedListDataRoute,\n BackofficePreparedListLayoutRoute,\n BackofficePreparedListShellRoute,\n BackofficePreparedToolConfigRoute,\n BackofficePreparedToolRoute,\n} from '@plumile/backoffice-core/types.js';\n\nimport type {\n BackofficeAuthConfig,\n BackofficeDashboardRegistration,\n BackofficeDashboardModule,\n BackofficeResolvedSidebarHubConfig,\n BackofficeSidebarConfig,\n} from '../provider/types.js';\nimport {\n buildEntityGroupLookup,\n resolveSidebarHubEntries,\n resolveSidebarGroups,\n} from '../components/backoffice/layout/sidebarUtils.js';\nimport type { BackofficeEntityRegistry } from '../provider/entityRegistry.js';\nimport { validateBackofficeDashboardRegistrations } from '../provider/dashboardRegistrations.js';\nimport { BackofficeEntityDetailManifestFallback } from '../pages/detail/BackofficeEntityDetailManifestFallback.js';\n\nconst { loadQuery, usePreloadedQuery } = ReactRelay;\n\nexport type CreateBackofficeRoutesInput = {\n basePath: string;\n entityManifest: BackofficeEntityManifestMap;\n entityRegistry: BackofficeEntityRegistry;\n sidebar?: BackofficeSidebarConfig;\n auth: BackofficeAuthConfig;\n dashboard?: BackofficeDashboardModule;\n dashboards?: readonly BackofficeDashboardRegistration[];\n toolsOperationPage?: ResourcePage | null;\n};\n\nexport type BackofficeRouterContext = {\n relayEnvironment: Environment;\n};\n\nexport const WrapperPageResource: ResourcePage | null = getResourcePage(\n 'WrapperPage',\n // eslint-disable-next-line arrow-body-style\n async () => ({\n default: (await import('@plumile/ui/pages/WrapperPage.js')).WrapperPage,\n }),\n);\n\nexport const BackofficeLayoutPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeLayoutPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeLayoutPage.js'),\n );\n\nexport const BackofficeEntityListPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityListPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityListPage.js'),\n );\n\nexport const BackofficeEntityListShellPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityListShellPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityListShellPage.js'),\n );\n\nexport const BackofficeEntityListDataPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityListDataPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityListDataPage.js'),\n );\n\nexport const BackofficeEntityDetailPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailPage.js'),\n );\n\nexport const BackofficeEntityDetailFramePageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailFramePage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailFramePage.js'),\n );\n\nexport const BackofficeEntityDetailLayoutPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailLayoutPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailLayoutPage.js'),\n );\n\nexport const BackofficeEntityDetailPageConfigPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailPageConfigPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailPageConfigPage.js'),\n );\n\nexport const BackofficeEntityDetailShellPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailShellPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailShellPage.js'),\n );\n\nexport const BackofficeEntityDetailUnknownPageRedirectResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailUnknownPageRedirect',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailUnknownPageRedirect.js'),\n );\n\nexport const BackofficeDashboardPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeDashboardPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeDashboardPage.js'),\n );\n\nexport const BackofficeDashboardShellPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeDashboardShellPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeDashboardShellPage.js'),\n );\n\nexport const BackofficeToolShellPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeToolShellPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeToolShellPage.js'),\n );\n\nexport const BackofficeHubPageResource: ResourcePage | null = getResourcePage(\n 'BackofficeHubPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeHubPage.js'),\n);\n\nexport const BackofficeLoginPageResource: ResourcePage | null = getResourcePage(\n 'BackofficeLoginPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeLoginPage.js'),\n);\n\nexport const BackofficePasswordResetRequestPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficePasswordResetRequestPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficePasswordResetRequestPage.js'),\n );\n\nexport const BackofficePasswordResetCompletePageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficePasswordResetCompletePage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficePasswordResetCompletePage.js'),\n );\n\nexport const BackofficeVerifyEmailPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeVerifyEmailPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeVerifyEmailPage.js'),\n );\n\nexport const BackofficeAcceptInvitationPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeAcceptInvitationPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeAcceptInvitationPage.js'),\n );\n\ntype PreparedLayout = {\n permissionsQuery: PreloadedQuery<OperationType> | null;\n authStatusQuery: PreloadedQuery<OperationType> | null;\n};\n\nexport type BackofficePreparedDashboardShellRoute = {\n dashboardId: string | null;\n label?: I18nLabel;\n};\n\nexport type BackofficePreparedDashboardRoute =\n BackofficePreparedDashboardShellRoute & {\n config: BackofficeDashboardConfig;\n };\n\ntype LayoutAuthStatus = {\n isLoggedIn?: boolean | null;\n me?: {\n id: string;\n firstName: string;\n lastName: string;\n email: string;\n initials: string;\n } | null;\n} | null;\n\ntype LayoutRouteComponent = ComponentType<{\n children: ReactNode;\n permissionsQuery?: GraphQLTaggedNode;\n prepared?: PreloadedQuery<OperationType> | null;\n authStatus?: LayoutAuthStatus;\n activeGroupId?: string | null;\n}>;\n\ntype LayoutRouteRenderProps = {\n children: ReactNode;\n Component: LayoutRouteComponent;\n preparedLayout: PreparedLayout | undefined;\n permissionsQuery: GraphQLTaggedNode | undefined;\n activeGroupId: string | null;\n};\n\nconst BackofficeHistoryRedirect = ({\n pathname,\n}: {\n pathname: string;\n}): null => {\n const router = useContext(RoutingContext);\n\n useEffect(() => {\n router?.history.set({\n pathname,\n });\n }, [pathname, router]);\n\n return null;\n};\n\nconst BackofficeLayoutRouteWithoutAuthStatus = ({\n children,\n Component,\n preparedLayout,\n permissionsQuery,\n activeGroupId,\n}: LayoutRouteRenderProps): JSX.Element => {\n return (\n <Component\n permissionsQuery={permissionsQuery}\n prepared={preparedLayout?.permissionsQuery ?? null}\n authStatus={null}\n activeGroupId={activeGroupId}\n >\n {children}\n </Component>\n );\n};\n\nconst BackofficeLayoutRouteWithAuthStatus = ({\n children,\n Component,\n preparedLayout,\n permissionsQuery,\n activeGroupId,\n authStatusQuery,\n authStatusPrepared,\n loginRedirectPath,\n}: LayoutRouteRenderProps & {\n authStatusQuery: GraphQLTaggedNode;\n authStatusPrepared: PreloadedQuery<OperationType>;\n loginRedirectPath: string;\n}): JSX.Element => {\n const data = usePreloadedQuery(authStatusQuery, authStatusPrepared);\n const authStatus = data as LayoutAuthStatus;\n\n if (authStatus?.isLoggedIn !== true) {\n return <BackofficeHistoryRedirect pathname={loginRedirectPath} />;\n }\n\n return (\n <Component\n permissionsQuery={permissionsQuery}\n prepared={preparedLayout?.permissionsQuery ?? null}\n authStatus={authStatus}\n activeGroupId={activeGroupId}\n >\n {children}\n </Component>\n );\n};\n\nexport type BackofficePreparedHubRoute = {\n hubId: string;\n hub: BackofficeResolvedSidebarHubConfig;\n};\n\nconst normalizeBaseSegment = (value: string): string => {\n const trimmed = value.trim();\n if (trimmed === '' || trimmed === '/') {\n return '';\n }\n return trimmed.replace(/^\\/+|\\/+$/g, '');\n};\n\nconst normalizePath = (value: string): string => {\n const trimmed = value.trim();\n if (trimmed === '') {\n return '/';\n }\n return `/${trimmed}`.replace(/\\/+/g, '/');\n};\n\nconst buildScopedPath = (baseSegment: string, path: string): string => {\n const normalizedPath = path.replace(/^\\/+|\\/+$/g, '');\n if (baseSegment === '') {\n return normalizedPath;\n }\n if (normalizedPath === '') {\n return baseSegment;\n }\n return `${baseSegment}/${normalizedPath}`;\n};\n\nconst buildScopedAbsolutePath = (baseSegment: string, path: string): string => {\n return normalizePath(buildScopedPath(baseSegment, path));\n};\n\nconst normalizePagePath = (value: string): string => {\n return value.trim().replace(/^\\/+|\\/+$/g, '');\n};\n\nconst buildRelativePath = (\n absolutePath: string,\n baseSegment: string,\n): string => {\n const normalized = normalizePath(absolutePath);\n const basePrefix = baseSegment === '' ? '' : `/${baseSegment}`;\n if (basePrefix !== '' && normalized.startsWith(basePrefix)) {\n return normalized.slice(basePrefix.length).replace(/^\\/+/, '');\n }\n return normalized.replace(/^\\/+/, '');\n};\n\nconst resolveActiveEntityIdFromRoute = (\n route: { routes: AnyRoute[] } | null,\n routeEntityIdMap: WeakMap<AnyRoute, string>,\n): string | null => {\n if (route?.routes == null) {\n return null;\n }\n for (let index = route.routes.length - 1; index >= 0; index -= 1) {\n const routeEntry = route.routes[index];\n if (routeEntry != null) {\n const entityId = routeEntityIdMap.get(routeEntry);\n if (entityId != null) {\n return entityId;\n }\n }\n }\n return null;\n};\n\nconst resolveDetailPageManifestByPath = (\n entityManifestItem: BackofficeEntityManifestItem,\n rawPagePath: string,\n): BackofficeDetailPageManifestItem | null => {\n const pagePath = normalizePagePath(rawPagePath);\n return (\n entityManifestItem.detailPages?.find((page) => {\n return normalizePagePath(page.pathSegment) === pagePath;\n }) ?? null\n );\n};\n\nconst resolveDetailPageIdForPath = (\n entityManifestItem: BackofficeEntityManifestItem,\n rawPagePath: string,\n): string => {\n return (\n resolveDetailPageManifestByPath(entityManifestItem, rawPagePath)?.id ??\n rawPagePath\n );\n};\n\nconst rBackoffice = r<BackofficeRouterContext>;\n\n/**\n * Creates backoffice routes based on the provided configuration\n */\nexport function createBackofficeRoutes(\n input: CreateBackofficeRoutesInput,\n): Route<BackofficeRouterContext, any>[] {\n const { basePath, entityManifest, entityRegistry, sidebar, auth, dashboard } =\n input;\n const dashboards = validateBackofficeDashboardRegistrations(input.dashboards);\n const baseSegment = normalizeBaseSegment(basePath);\n const loginPath = buildScopedPath(baseSegment, 'login');\n const passwordResetRequestPath = buildScopedPath(baseSegment, 'login/reset');\n const passwordResetCompletePath = buildScopedPath(\n baseSegment,\n 'login/reset/complete',\n );\n const verifyEmailPath = buildScopedPath(baseSegment, 'verify-email');\n const acceptInvitationPath = buildScopedPath(\n baseSegment,\n 'accept-invitation',\n );\n const loginRedirectPath = buildScopedAbsolutePath(baseSegment, 'login');\n const entities = entityManifest;\n const groups = resolveSidebarGroups(entities, sidebar);\n const hubEntries = resolveSidebarHubEntries(groups, sidebar);\n const entityGroupLookup = buildEntityGroupLookup(groups, sidebar);\n const entityIdToGroupId = new Map<string, string>();\n entityGroupLookup.forEach((value, entityId) => {\n entityIdToGroupId.set(entityId, value.groupId);\n });\n const routeEntityIdMap = new WeakMap<AnyRoute, string>();\n const routeGroupIdMap = new WeakMap<AnyRoute, string>();\n\n const permissionsQuery = sidebar?.permissionsQuery;\n const layoutPrepare = async ({\n context,\n }: {\n context: BackofficeRouterContext;\n }) => {\n const sessionAuth = await auth.session.load();\n const permissionsQueryRef =\n permissionsQuery != null\n ? loadQuery<OperationType>(\n context.relayEnvironment,\n permissionsQuery,\n {},\n )\n : null;\n const authStatusQueryRef =\n sessionAuth.authStatusQuery != null\n ? loadQuery<OperationType>(\n context.relayEnvironment,\n sessionAuth.authStatusQuery,\n {},\n { fetchPolicy: 'network-only' },\n )\n : null;\n return {\n permissionsQuery: permissionsQueryRef,\n authStatusQuery: authStatusQueryRef,\n };\n };\n\n const prepareRootDashboard =\n async (): Promise<BackofficePreparedDashboardRoute | null> => {\n if (dashboard == null) {\n return null;\n }\n const config = await dashboard.load();\n return {\n dashboardId: 'dashboard',\n config,\n };\n };\n const prepareRootDashboardShell =\n (): BackofficePreparedDashboardShellRoute | null => {\n if (dashboard == null) {\n return null;\n }\n return {\n dashboardId: 'dashboard',\n };\n };\n const renderDashboard = ({\n prepared,\n Component,\n }: {\n prepared: unknown;\n Component?: ComponentType<Record<string, unknown>> | null;\n }): JSX.Element | null => {\n if (Component == null) {\n return null;\n }\n const DashboardComponent = Component as ComponentType<{\n prepared?: unknown;\n }>;\n return <DashboardComponent prepared={prepared} />;\n };\n const renderDashboardShell = ({\n children: dashboardChildren,\n prepared,\n Component,\n }: {\n children: ReactNode;\n prepared: unknown;\n Component?: ComponentType<Record<string, unknown>> | null;\n }): JSX.Element | null => {\n if (Component == null) {\n return null;\n }\n const DashboardShellComponent = Component as ComponentType<{\n children?: ReactNode;\n prepared?: BackofficePreparedDashboardShellRoute | null;\n }>;\n return (\n <DashboardShellComponent\n prepared={prepared as BackofficePreparedDashboardShellRoute | null}\n >\n {dashboardChildren}\n </DashboardShellComponent>\n );\n };\n\n const dashboardConfigRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeDashboardPageResource,\n prepare: prepareRootDashboard,\n render: renderDashboard,\n });\n const dashboardRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeDashboardShellPageResource,\n prepare: prepareRootDashboardShell,\n render: renderDashboardShell,\n children: [dashboardConfigRoute],\n });\n const dashboardAliasConfigRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeDashboardPageResource,\n prepare: prepareRootDashboard,\n render: renderDashboard,\n });\n const dashboardAliasRoute = rBackoffice({\n path: 'dashboard',\n resourcePage: BackofficeDashboardShellPageResource,\n prepare: prepareRootDashboardShell,\n render: renderDashboardShell,\n children: [dashboardAliasConfigRoute],\n });\n const secondaryDashboardRoutes = dashboards.map((registration) => {\n const dashboardConfigChildRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeDashboardPageResource,\n prepare: async () => {\n const config = await registration.module.load();\n return {\n dashboardId: registration.id,\n label: registration.label,\n config,\n } satisfies BackofficePreparedDashboardRoute;\n },\n render: renderDashboard,\n });\n return rBackoffice({\n path: `dashboard/${registration.id}`,\n resourcePage: BackofficeDashboardShellPageResource,\n prepare: () => {\n return {\n dashboardId: registration.id,\n label: registration.label,\n } satisfies BackofficePreparedDashboardShellRoute;\n },\n render: renderDashboardShell,\n children: [dashboardConfigChildRoute],\n });\n });\n\n const listEntityEntries = Object.values(entityManifest).filter((entity) => {\n return entity.kind === 'list-detail';\n });\n\n const hubRoutes = hubEntries.map((entry) => {\n const hubRelative = buildRelativePath(entry.hub.href, baseSegment);\n const hubRoute = rBackoffice({\n path: hubRelative,\n resourcePage: BackofficeHubPageResource,\n prepare: () => {\n return {\n hubId: entry.hub.id,\n hub: entry.hub,\n } satisfies BackofficePreparedHubRoute;\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component prepared={prepared} />;\n },\n });\n if (entry.groupId != null) {\n routeGroupIdMap.set(hubRoute, entry.groupId);\n }\n return hubRoute;\n });\n\n const entityRoutes = listEntityEntries.map((entityManifestItem) => {\n const listPath = entityManifestItem.routes.list;\n const listRelative = buildRelativePath(listPath, baseSegment);\n const children: Route<any, any>[] = [];\n const renderDetailRouteFallback = ({\n match,\n }: RouteFallbackArgs<BackofficeRouterContext>): JSX.Element => {\n const rawId = String(match?.params.id ?? '');\n const rawPagePath =\n typeof match?.params.pagePath === 'string'\n ? match.params.pagePath\n : null;\n const pageId =\n rawPagePath == null\n ? entityManifestItem.defaultDetailPageId\n : resolveDetailPageIdForPath(entityManifestItem, rawPagePath);\n return (\n <BackofficeEntityDetailManifestFallback\n entityManifest={entityManifestItem}\n id={rawId}\n pageId={pageId}\n pagePath={rawPagePath}\n />\n );\n };\n\n if (entityManifestItem.hasList) {\n const listDataRoute = rBackoffice({\n path: '',\n querySchema: entityManifestItem.listNavigation.querySchema,\n resourcePage: BackofficeEntityListDataPageResource,\n prepareSearchBehavior: 'path',\n prepare: async ({ context, filters, query }) => {\n const entityModule = await entityRegistry.loadListEntity(\n entityManifestItem.id,\n );\n const { config } = entityModule;\n const { list } = config;\n const { defaults: listDefaults } = entityManifestItem.listNavigation;\n const navigationQuery: { sort?: string } = {};\n if (typeof query.sort === 'string') {\n navigationQuery.sort = query.sort;\n }\n const navigationFilters = filters as Parameters<\n typeof entityManifestItem.listNavigation.decode\n >[0]['filters'];\n const state = entityManifestItem.listNavigation.decode({\n filters: navigationFilters,\n query: navigationQuery,\n });\n const { pageSize } = BACKOFFICE_LIST_DEFAULTS;\n const variablesBase = {\n where: state.where,\n sort: state.sort ?? listDefaults.sort,\n count: pageSize,\n cursor: null,\n };\n const variables = list.buildQueryVariables(variablesBase);\n const queryRef = loadQuery<OperationType>(\n context.relayEnvironment,\n list.query,\n variables,\n );\n const prepared: BackofficePreparedListDataRoute = {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n entityConfig: config,\n query: queryRef,\n };\n return prepared;\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute = prepared as BackofficePreparedListDataRoute;\n return <Component prepared={preparedRoute} />;\n },\n });\n routeEntityIdMap.set(listDataRoute, entityManifestItem.id);\n\n const listRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeEntityListPageResource,\n prepareSearchBehavior: 'path',\n prepare: async () => {\n const entityModule = await entityRegistry.loadListEntity(\n entityManifestItem.id,\n );\n const { config } = entityModule;\n const prepared: BackofficePreparedListLayoutRoute = {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n entityConfig: config,\n };\n return prepared;\n },\n render: ({ children: listChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute = prepared as BackofficePreparedListLayoutRoute;\n return (\n <Component\n entityManifest={preparedRoute.entityManifest}\n config={preparedRoute.entityConfig}\n prepared={preparedRoute}\n >\n {listChildren}\n </Component>\n );\n },\n children: [listDataRoute],\n });\n routeEntityIdMap.set(listRoute, entityManifestItem.id);\n\n const listShellRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeEntityListShellPageResource,\n prepareSearchBehavior: 'path',\n prepare: () => {\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n } satisfies BackofficePreparedListShellRoute;\n },\n render: ({ children: listShellChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute = prepared as BackofficePreparedListShellRoute;\n return (\n <Component\n entityManifest={preparedRoute.entityManifest}\n prepared={preparedRoute}\n >\n {listShellChildren}\n </Component>\n );\n },\n children: [listRoute],\n });\n routeEntityIdMap.set(listShellRoute, entityManifestItem.id);\n children.push(listShellRoute);\n }\n\n const detailPageRoutes = entityManifestItem.detailPages.map(\n (pageManifest) => {\n const pageDataRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeEntityDetailPageResource,\n suspenseBoundary: 'segment',\n fallback: renderDetailRouteFallback,\n prepare: async ({ context, variables }) => {\n const rawId = String(variables.id ?? '');\n const pageModule = await entityRegistry.loadDetailPageEntity(\n entityManifestItem.id,\n pageManifest.id,\n );\n const pageBuildResult =\n pageModule.config.page.buildVariables != null\n ? pageModule.config.page.buildVariables({\n id: rawId,\n })\n : { variables: { id: rawId } };\n const pageQueryRef = loadQuery<OperationType>(\n context.relayEnvironment,\n pageModule.config.page.query,\n pageBuildResult.variables as Variables,\n );\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n detailId: pageBuildResult.detailId,\n id: rawId,\n pageConfig: pageModule.config,\n pageQuery: pageQueryRef,\n pageId: pageManifest.id,\n pagePath: pageManifest.pathSegment,\n } satisfies BackofficePreparedDetailPageDataRoute;\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute =\n prepared as BackofficePreparedDetailPageDataRoute;\n return <Component prepared={preparedRoute} />;\n },\n });\n routeEntityIdMap.set(pageDataRoute, entityManifestItem.id);\n\n const pageConfigRoute = rBackoffice({\n path: pageManifest.pathSegment,\n resourcePage: BackofficeEntityDetailPageConfigPageResource,\n suspenseBoundary: 'segment',\n fallback: renderDetailRouteFallback,\n prepare: async ({ variables }) => {\n const rawId = String(variables.id ?? '');\n const [pageModule, layoutModule] = await Promise.all([\n entityRegistry.loadDetailPageEntity(\n entityManifestItem.id,\n pageManifest.id,\n ),\n entityRegistry.loadDetailLayoutEntity(entityManifestItem.id),\n ]);\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n entityConfig: layoutModule.config,\n id: rawId,\n pageConfig: pageModule.config,\n pageId: pageManifest.id,\n pagePath: pageManifest.pathSegment,\n } satisfies BackofficePreparedDetailPageConfigRoute;\n },\n render: ({ children: pageChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute =\n prepared as BackofficePreparedDetailPageConfigRoute;\n return (\n <Component\n config={preparedRoute.entityConfig}\n prepared={preparedRoute}\n >\n {pageChildren}\n </Component>\n );\n },\n children: [pageDataRoute],\n });\n routeEntityIdMap.set(pageConfigRoute, entityManifestItem.id);\n return pageConfigRoute;\n },\n );\n\n const detailLayoutDataRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeEntityDetailLayoutPageResource,\n suspenseBoundary: 'segment',\n fallback: renderDetailRouteFallback,\n prepare: async ({ context, variables }) => {\n const entityModule = await entityRegistry.loadDetailLayoutEntity(\n entityManifestItem.id,\n );\n const { config } = entityModule;\n const rawId = String(variables.id ?? '');\n const layoutBuildResult =\n config.layoutPage.buildVariables != null\n ? config.layoutPage.buildVariables({\n id: rawId,\n })\n : { variables: { id: rawId } };\n const layoutQueryRef = loadQuery<OperationType>(\n context.relayEnvironment,\n config.layoutPage.query,\n layoutBuildResult.variables as Variables,\n );\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n entityConfig: config,\n layoutQuery: layoutQueryRef,\n id: rawId,\n } satisfies BackofficePreparedDetailLayoutDataRoute;\n },\n render: ({ children: detailChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute =\n prepared as BackofficePreparedDetailLayoutDataRoute;\n return (\n <Component\n entityManifest={preparedRoute.entityManifest}\n config={preparedRoute.entityConfig}\n prepared={preparedRoute}\n >\n {detailChildren}\n </Component>\n );\n },\n children: [\n rBackoffice({\n path: '',\n resourcePage: WrapperPageResource,\n prepare: ({ variables }) => {\n const rawId = String(variables.id ?? '').trim();\n return {\n redirectTo:\n rawId === ''\n ? null\n : entityManifestItem.routes.detailPage(\n rawId,\n entityManifestItem.defaultDetailPageId,\n ),\n };\n },\n render: ({ prepared }) => {\n const redirectTo =\n (prepared as { redirectTo?: string | null }).redirectTo ?? null;\n if (redirectTo == null) {\n return null;\n }\n return <BackofficeHistoryRedirect pathname={redirectTo} />;\n },\n }),\n ...detailPageRoutes,\n rBackoffice({\n path: ':pagePath',\n resourcePage: BackofficeEntityDetailUnknownPageRedirectResource,\n suspenseBoundary: 'segment',\n fallback: renderDetailRouteFallback,\n prepare: async ({ variables }) => {\n const entityModule = await entityRegistry.loadDetailLayoutEntity(\n entityManifestItem.id,\n );\n const rawId = String(variables.id ?? '');\n const rawPagePath = String(variables.pagePath ?? '');\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n entityConfig: entityModule.config,\n id: rawId,\n pagePath: rawPagePath,\n } satisfies BackofficePreparedDetailUnknownPageRoute;\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedDetail =\n prepared as BackofficePreparedDetailUnknownPageRoute;\n return (\n <Component\n entityManifest={preparedDetail.entityManifest}\n config={preparedDetail.entityConfig}\n prepared={preparedDetail}\n />\n );\n },\n }),\n ],\n });\n routeEntityIdMap.set(detailLayoutDataRoute, entityManifestItem.id);\n\n const detailShellRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeEntityDetailShellPageResource,\n suspenseBoundary: 'segment',\n fallback: renderDetailRouteFallback,\n prepare: ({ variables }) => {\n const rawId = String(variables.id ?? '');\n const rawPagePath =\n typeof variables.pagePath === 'string' ? variables.pagePath : null;\n const pageId =\n rawPagePath == null\n ? entityManifestItem.defaultDetailPageId\n : resolveDetailPageIdForPath(entityManifestItem, rawPagePath);\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n id: rawId,\n pageId,\n pagePath: rawPagePath,\n } satisfies BackofficePreparedDetailShellRoute;\n },\n render: ({ children: shellChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute = prepared as BackofficePreparedDetailShellRoute;\n return (\n <Component\n entityManifest={preparedRoute.entityManifest}\n prepared={preparedRoute}\n >\n {shellChildren}\n </Component>\n );\n },\n children: [detailLayoutDataRoute],\n });\n routeEntityIdMap.set(detailShellRoute, entityManifestItem.id);\n\n const detailFrameRoute = rBackoffice({\n path: ':id',\n resourcePage: BackofficeEntityDetailFramePageResource,\n suspenseBoundary: 'segment',\n fallback: renderDetailRouteFallback,\n prepare: ({ variables }) => {\n const rawId = String(variables.id ?? '');\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n id: rawId,\n } satisfies BackofficePreparedDetailFrameRoute;\n },\n render: ({ children: detailChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute = prepared as BackofficePreparedDetailFrameRoute;\n return (\n <Component\n entityManifest={preparedRoute.entityManifest}\n prepared={preparedRoute}\n >\n {detailChildren}\n </Component>\n );\n },\n children: [detailShellRoute],\n });\n routeEntityIdMap.set(detailFrameRoute, entityManifestItem.id);\n children.push(detailFrameRoute);\n\n return rBackoffice({\n path: listRelative,\n children,\n resourcePage: WrapperPageResource,\n suspenseBoundary: 'segment',\n });\n });\n\n const toolsRoutes = Object.values(entityManifest)\n .filter((entity) => {\n return entity.kind === 'tool';\n })\n .map((toolManifest) => {\n const toolRelative = buildRelativePath(\n toolManifest.routes.list,\n baseSegment,\n );\n const toolConfigRoute = rBackoffice({\n path: '',\n resourcePage: input.toolsOperationPage ?? null,\n prepare: async () => {\n const toolModule = await entityRegistry.loadToolEntity(\n toolManifest.id,\n );\n return {\n entityId: toolManifest.id,\n entityManifest: toolManifest,\n entityConfig: toolModule.config,\n } satisfies BackofficePreparedToolConfigRoute;\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedTool = prepared as BackofficePreparedToolConfigRoute;\n return (\n <Component\n entityManifest={preparedTool.entityManifest}\n operation={preparedTool.entityConfig.tool.operation}\n toolId={preparedTool.entityConfig.id}\n />\n );\n },\n });\n routeEntityIdMap.set(toolConfigRoute, toolManifest.id);\n\n const toolRoute = rBackoffice({\n path: toolRelative,\n resourcePage: BackofficeToolShellPageResource,\n prepare: () => {\n return {\n entityId: toolManifest.id,\n entityManifest: toolManifest,\n } satisfies BackofficePreparedToolRoute;\n },\n render: ({ children: toolChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedTool = prepared as BackofficePreparedToolRoute;\n return (\n <Component\n entityManifest={preparedTool.entityManifest}\n prepared={preparedTool}\n >\n {toolChildren}\n </Component>\n );\n },\n children: [toolConfigRoute],\n });\n routeEntityIdMap.set(toolRoute, toolManifest.id);\n return toolRoute;\n });\n\n const layoutRoute = rBackoffice({\n path: baseSegment,\n resourcePage: BackofficeLayoutPageResource,\n prepareSearchBehavior: 'path',\n suspenseBoundary: 'segment',\n prepare: layoutPrepare,\n render: ({ children, prepared, route, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedLayout = prepared as PreparedLayout | undefined;\n const activeEntityId = resolveActiveEntityIdFromRoute(\n route,\n routeEntityIdMap,\n );\n const activeGroupId =\n activeEntityId != null\n ? (entityIdToGroupId.get(activeEntityId) ?? null)\n : resolveActiveEntityIdFromRoute(route, routeGroupIdMap);\n const LayoutComponent = Component as LayoutRouteComponent;\n const authStatusQuery = auth.session.get()?.authStatusQuery ?? null;\n if (authStatusQuery != null && preparedLayout?.authStatusQuery != null) {\n return (\n <BackofficeLayoutRouteWithAuthStatus\n Component={LayoutComponent}\n preparedLayout={preparedLayout}\n permissionsQuery={sidebar?.permissionsQuery}\n activeGroupId={activeGroupId}\n authStatusQuery={authStatusQuery}\n authStatusPrepared={preparedLayout.authStatusQuery}\n loginRedirectPath={loginRedirectPath}\n >\n {children}\n </BackofficeLayoutRouteWithAuthStatus>\n );\n }\n return (\n <BackofficeLayoutRouteWithoutAuthStatus\n Component={LayoutComponent}\n preparedLayout={preparedLayout}\n permissionsQuery={sidebar?.permissionsQuery}\n activeGroupId={activeGroupId}\n >\n {children}\n </BackofficeLayoutRouteWithoutAuthStatus>\n );\n },\n children: [\n dashboardRoute,\n ...hubRoutes,\n ...entityRoutes,\n ...toolsRoutes,\n ...secondaryDashboardRoutes,\n dashboardAliasRoute,\n ],\n });\n\n const routes: Route<BackofficeRouterContext, any>[] = [\n rBackoffice({\n path: loginPath,\n resourcePage: BackofficeLoginPageResource,\n prepare: async ({ context }) => {\n const loginAuth = await auth.login.load();\n const queryRef = loadQuery<OperationType>(\n context.relayEnvironment,\n loginAuth.loginQuery,\n {},\n );\n return { query: queryRef };\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component prepared={prepared} />;\n },\n }),\n rBackoffice({\n path: passwordResetRequestPath,\n resourcePage: BackofficePasswordResetRequestPageResource,\n prepare: async () => {\n await auth.passwordResetRequest.load();\n return null;\n },\n render: ({ Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component />;\n },\n }),\n rBackoffice({\n path: passwordResetCompletePath,\n resourcePage: BackofficePasswordResetCompletePageResource,\n prepare: async () => {\n await auth.passwordResetComplete.load();\n return null;\n },\n render: ({ Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component />;\n },\n }),\n rBackoffice({\n path: verifyEmailPath,\n resourcePage: BackofficeVerifyEmailPageResource,\n prepare: async () => {\n await auth.verifyEmail.load();\n return null;\n },\n render: ({ Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component />;\n },\n }),\n ];\n\n if (auth.hasAcceptInvitation === true || auth.acceptInvitation != null) {\n routes.push(\n rBackoffice({\n path: acceptInvitationPath,\n resourcePage: BackofficeAcceptInvitationPageResource,\n prepare: async () => {\n await auth.acceptInvitation?.load();\n return null;\n },\n render: ({ Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component />;\n },\n }),\n );\n }\n\n routes.push(layoutRoute);\n\n return routes;\n}\n\nexport const __test = {\n normalizeBaseSegment,\n normalizePath,\n buildScopedPath,\n buildScopedAbsolutePath,\n buildRelativePath,\n resolveActiveEntityIdFromRoute,\n resolveDetailPageIdForPath,\n resolveDetailPageManifestByPath,\n validateBackofficeDashboardRegistrations,\n BackofficeLayoutRouteWithAuthStatus,\n} as const;\n\nexport default createBackofficeRoutes;\n"],"mappings":"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"}
1
+ {"version":3,"file":"createBackofficeRoutes.js","names":[],"sources":["../../../src/router/createBackofficeRoutes.tsx"],"sourcesContent":["/* eslint-disable no-ternary */\nimport {\n useContext,\n useEffect,\n type ComponentType,\n type JSX,\n type ReactNode,\n} from 'react';\nimport {\n getResourcePage,\n type ResourcePage,\n} from '@plumile/router/ResourcePage.js';\nimport RoutingContext from '@plumile/router/routing/RoutingContext.js';\nimport { r } from '@plumile/router/tools.js';\nimport {\n type AnyRoute,\n type Route,\n type RouteFallbackArgs,\n} from '@plumile/router/types.js';\nimport * as ReactRelay from 'react-relay';\nimport type { PreloadedQuery } from 'react-relay';\nimport type {\n Environment,\n GraphQLTaggedNode,\n OperationType,\n Variables,\n} from 'relay-runtime';\n\nimport { BACKOFFICE_LIST_DEFAULTS } from '@plumile/backoffice-core/constants.js';\nimport type {\n BackofficeDashboardConfig,\n BackofficeDetailPageManifestItem,\n BackofficeEntityManifestItem,\n BackofficeEntityManifestMap,\n I18nLabel,\n BackofficePreparedDetailFrameRoute,\n BackofficePreparedDetailLayoutDataRoute,\n BackofficePreparedDetailPageConfigRoute,\n BackofficePreparedDetailPageDataRoute,\n BackofficePreparedDetailShellRoute,\n BackofficePreparedDetailUnknownPageRoute,\n BackofficePreparedListDataRoute,\n BackofficePreparedListLayoutRoute,\n BackofficePreparedListShellRoute,\n BackofficePreparedToolConfigRoute,\n BackofficePreparedToolRoute,\n} from '@plumile/backoffice-core/types.js';\n\nimport type {\n BackofficeAuthConfig,\n BackofficeDashboardRegistration,\n BackofficeDashboardModule,\n BackofficeResolvedSidebarHubConfig,\n BackofficeSidebarConfig,\n} from '../provider/types.js';\nimport {\n buildEntityGroupLookup,\n resolveSidebarHubEntries,\n resolveSidebarGroups,\n} from '../components/backoffice/layout/sidebarUtils.js';\nimport type { BackofficeEntityRegistry } from '../provider/entityRegistry.js';\nimport { validateBackofficeDashboardRegistrations } from '../provider/dashboardRegistrations.js';\nimport { BackofficeEntityDetailManifestFallback } from '../pages/detail/BackofficeEntityDetailManifestFallback.js';\n\nconst { loadQuery, usePreloadedQuery } = ReactRelay;\n\nexport type CreateBackofficeRoutesInput = {\n basePath: string;\n entityManifest: BackofficeEntityManifestMap;\n entityRegistry: BackofficeEntityRegistry;\n sidebar?: BackofficeSidebarConfig;\n auth: BackofficeAuthConfig;\n dashboard?: BackofficeDashboardModule;\n dashboards?: readonly BackofficeDashboardRegistration[];\n toolsOperationPage?: ResourcePage | null;\n};\n\nexport type BackofficeRouterContext = {\n relayEnvironment: Environment;\n};\n\nexport const WrapperPageResource: ResourcePage | null = getResourcePage(\n 'WrapperPage',\n // eslint-disable-next-line arrow-body-style\n async () => ({\n default: (await import('@plumile/ui/pages/WrapperPage.js')).WrapperPage,\n }),\n);\n\nexport const BackofficeLayoutPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeLayoutPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeLayoutPage.js'),\n );\n\nexport const BackofficeEntityListPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityListPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityListPage.js'),\n );\n\nexport const BackofficeEntityListShellPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityListShellPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityListShellPage.js'),\n );\n\nexport const BackofficeEntityListDataPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityListDataPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityListDataPage.js'),\n );\n\nexport const BackofficeEntityDetailPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailPage.js'),\n );\n\nexport const BackofficeEntityDetailFramePageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailFramePage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailFramePage.js'),\n );\n\nexport const BackofficeEntityDetailLayoutPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailLayoutPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailLayoutPage.js'),\n );\n\nexport const BackofficeEntityDetailPageConfigPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailPageConfigPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailPageConfigPage.js'),\n );\n\nexport const BackofficeEntityDetailShellPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailShellPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailShellPage.js'),\n );\n\nexport const BackofficeEntityDetailUnknownPageRedirectResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeEntityDetailUnknownPageRedirect',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeEntityDetailUnknownPageRedirect.js'),\n );\n\nexport const BackofficeDashboardPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeDashboardPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeDashboardPage.js'),\n );\n\nexport const BackofficeDashboardShellPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeDashboardShellPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeDashboardShellPage.js'),\n );\n\nexport const BackofficeToolShellPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeToolShellPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeToolShellPage.js'),\n );\n\nexport const BackofficeHubPageResource: ResourcePage | null = getResourcePage(\n 'BackofficeHubPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeHubPage.js'),\n);\n\nexport const BackofficeLoginPageResource: ResourcePage | null = getResourcePage(\n 'BackofficeLoginPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeLoginPage.js'),\n);\n\nexport const BackofficePasswordResetRequestPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficePasswordResetRequestPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficePasswordResetRequestPage.js'),\n );\n\nexport const BackofficePasswordResetCompletePageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficePasswordResetCompletePage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficePasswordResetCompletePage.js'),\n );\n\nexport const BackofficeVerifyEmailPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeVerifyEmailPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeVerifyEmailPage.js'),\n );\n\nexport const BackofficeAcceptInvitationPageResource: ResourcePage | null =\n getResourcePage(\n 'BackofficeAcceptInvitationPage',\n // eslint-disable-next-line arrow-body-style\n async () => import('../pages/BackofficeAcceptInvitationPage.js'),\n );\n\ntype PreparedLayout = {\n permissionsQuery: PreloadedQuery<OperationType> | null;\n authStatusQuery: PreloadedQuery<OperationType> | null;\n};\n\nexport type BackofficePreparedDashboardShellRoute = {\n dashboardId: string | null;\n label?: I18nLabel;\n};\n\nexport type BackofficePreparedDashboardRoute =\n BackofficePreparedDashboardShellRoute & {\n config: BackofficeDashboardConfig;\n };\n\ntype LayoutAuthStatus = {\n isLoggedIn?: boolean | null;\n me?: {\n id: string;\n firstName: string;\n lastName: string;\n email: string;\n initials: string;\n } | null;\n} | null;\n\ntype LayoutRouteComponent = ComponentType<{\n children: ReactNode;\n permissionsQuery?: GraphQLTaggedNode;\n prepared?: PreloadedQuery<OperationType> | null;\n authStatus?: LayoutAuthStatus;\n activeGroupId?: string | null;\n}>;\n\ntype LayoutRouteRenderProps = {\n children: ReactNode;\n Component: LayoutRouteComponent;\n preparedLayout: PreparedLayout | undefined;\n permissionsQuery: GraphQLTaggedNode | undefined;\n activeGroupId: string | null;\n};\n\nconst BackofficeHistoryRedirect = ({\n pathname,\n}: {\n pathname: string;\n}): null => {\n const router = useContext(RoutingContext);\n\n useEffect(() => {\n router?.history.set({\n pathname,\n });\n }, [pathname, router]);\n\n return null;\n};\n\nconst BackofficeLayoutRouteWithoutAuthStatus = ({\n children,\n Component,\n preparedLayout,\n permissionsQuery,\n activeGroupId,\n}: LayoutRouteRenderProps): JSX.Element => {\n return (\n <Component\n permissionsQuery={permissionsQuery}\n prepared={preparedLayout?.permissionsQuery ?? null}\n authStatus={null}\n activeGroupId={activeGroupId}\n >\n {children}\n </Component>\n );\n};\n\nconst BackofficeLayoutRouteWithAuthStatus = ({\n children,\n Component,\n preparedLayout,\n permissionsQuery,\n activeGroupId,\n authStatusQuery,\n authStatusPrepared,\n loginRedirectPath,\n}: LayoutRouteRenderProps & {\n authStatusQuery: GraphQLTaggedNode;\n authStatusPrepared: PreloadedQuery<OperationType>;\n loginRedirectPath: string;\n}): JSX.Element => {\n const data = usePreloadedQuery(authStatusQuery, authStatusPrepared);\n const authStatus = data as LayoutAuthStatus;\n\n if (authStatus?.isLoggedIn !== true) {\n return <BackofficeHistoryRedirect pathname={loginRedirectPath} />;\n }\n\n return (\n <Component\n permissionsQuery={permissionsQuery}\n prepared={preparedLayout?.permissionsQuery ?? null}\n authStatus={authStatus}\n activeGroupId={activeGroupId}\n >\n {children}\n </Component>\n );\n};\n\nexport type BackofficePreparedHubRoute = {\n hubId: string;\n hub: BackofficeResolvedSidebarHubConfig;\n};\n\nconst normalizeBaseSegment = (value: string): string => {\n const trimmed = value.trim();\n if (trimmed === '' || trimmed === '/') {\n return '';\n }\n return trimmed.replace(/^\\/+|\\/+$/g, '');\n};\n\nconst normalizePath = (value: string): string => {\n const trimmed = value.trim();\n if (trimmed === '') {\n return '/';\n }\n return `/${trimmed}`.replace(/\\/+/g, '/');\n};\n\nconst buildScopedPath = (baseSegment: string, path: string): string => {\n const normalizedPath = path.replace(/^\\/+|\\/+$/g, '');\n if (baseSegment === '') {\n return normalizedPath;\n }\n if (normalizedPath === '') {\n return baseSegment;\n }\n return `${baseSegment}/${normalizedPath}`;\n};\n\nconst buildScopedAbsolutePath = (baseSegment: string, path: string): string => {\n return normalizePath(buildScopedPath(baseSegment, path));\n};\n\nconst normalizePagePath = (value: string): string => {\n return value.trim().replace(/^\\/+|\\/+$/g, '');\n};\n\nconst buildRelativePath = (\n absolutePath: string,\n baseSegment: string,\n): string => {\n const normalized = normalizePath(absolutePath);\n const basePrefix = baseSegment === '' ? '' : `/${baseSegment}`;\n if (basePrefix !== '' && normalized.startsWith(basePrefix)) {\n return normalized.slice(basePrefix.length).replace(/^\\/+/, '');\n }\n return normalized.replace(/^\\/+/, '');\n};\n\nconst resolveActiveEntityIdFromRoute = (\n route: { routes: AnyRoute[] } | null,\n routeEntityIdMap: WeakMap<AnyRoute, string>,\n): string | null => {\n if (route?.routes == null) {\n return null;\n }\n for (let index = route.routes.length - 1; index >= 0; index -= 1) {\n const routeEntry = route.routes[index];\n if (routeEntry != null) {\n const entityId = routeEntityIdMap.get(routeEntry);\n if (entityId != null) {\n return entityId;\n }\n }\n }\n return null;\n};\n\nconst resolveDetailPageManifestByPath = (\n entityManifestItem: BackofficeEntityManifestItem,\n rawPagePath: string,\n): BackofficeDetailPageManifestItem | null => {\n const pagePath = normalizePagePath(rawPagePath);\n return (\n entityManifestItem.detailPages?.find((page) => {\n return normalizePagePath(page.pathSegment) === pagePath;\n }) ?? null\n );\n};\n\nconst resolveDetailPageIdForPath = (\n entityManifestItem: BackofficeEntityManifestItem,\n rawPagePath: string,\n): string => {\n return (\n resolveDetailPageManifestByPath(entityManifestItem, rawPagePath)?.id ??\n rawPagePath\n );\n};\n\nconst rBackoffice = r<BackofficeRouterContext>;\n\n/**\n * Creates backoffice routes based on the provided configuration\n */\nexport function createBackofficeRoutes(\n input: CreateBackofficeRoutesInput,\n): Route<BackofficeRouterContext, unknown>[] {\n const { basePath, entityManifest, entityRegistry, sidebar, auth, dashboard } =\n input;\n const dashboards = validateBackofficeDashboardRegistrations(input.dashboards);\n const baseSegment = normalizeBaseSegment(basePath);\n const loginPath = buildScopedPath(baseSegment, 'login');\n const passwordResetRequestPath = buildScopedPath(baseSegment, 'login/reset');\n const passwordResetCompletePath = buildScopedPath(\n baseSegment,\n 'login/reset/complete',\n );\n const verifyEmailPath = buildScopedPath(baseSegment, 'verify-email');\n const acceptInvitationPath = buildScopedPath(\n baseSegment,\n 'accept-invitation',\n );\n const loginRedirectPath = buildScopedAbsolutePath(baseSegment, 'login');\n const entities = entityManifest;\n const groups = resolveSidebarGroups(entities, sidebar);\n const hubEntries = resolveSidebarHubEntries(groups, sidebar);\n const entityGroupLookup = buildEntityGroupLookup(groups, sidebar);\n const entityIdToGroupId = new Map<string, string>();\n entityGroupLookup.forEach((value, entityId) => {\n entityIdToGroupId.set(entityId, value.groupId);\n });\n const routeEntityIdMap = new WeakMap<AnyRoute, string>();\n const routeGroupIdMap = new WeakMap<AnyRoute, string>();\n\n const permissionsQuery = sidebar?.permissionsQuery;\n const layoutPrepare = async ({\n context,\n }: {\n context: BackofficeRouterContext;\n }) => {\n const sessionAuth = await auth.session.load();\n const permissionsQueryRef =\n permissionsQuery != null\n ? loadQuery<OperationType>(\n context.relayEnvironment,\n permissionsQuery,\n {},\n )\n : null;\n const authStatusQueryRef =\n sessionAuth.authStatusQuery != null\n ? loadQuery<OperationType>(\n context.relayEnvironment,\n sessionAuth.authStatusQuery,\n {},\n { fetchPolicy: 'network-only' },\n )\n : null;\n return {\n permissionsQuery: permissionsQueryRef,\n authStatusQuery: authStatusQueryRef,\n };\n };\n\n const prepareRootDashboard =\n async (): Promise<BackofficePreparedDashboardRoute | null> => {\n if (dashboard == null) {\n return null;\n }\n const config = await dashboard.load();\n return {\n dashboardId: 'dashboard',\n config,\n };\n };\n const prepareRootDashboardShell =\n (): BackofficePreparedDashboardShellRoute | null => {\n if (dashboard == null) {\n return null;\n }\n return {\n dashboardId: 'dashboard',\n };\n };\n const renderDashboard = ({\n prepared,\n Component,\n }: {\n prepared: unknown;\n Component?: ComponentType<Record<string, unknown>> | null;\n }): JSX.Element | null => {\n if (Component == null) {\n return null;\n }\n const DashboardComponent = Component as ComponentType<{\n prepared?: unknown;\n }>;\n return <DashboardComponent prepared={prepared} />;\n };\n const renderDashboardShell = ({\n children: dashboardChildren,\n prepared,\n Component,\n }: {\n children: ReactNode;\n prepared: unknown;\n Component?: ComponentType<Record<string, unknown>> | null;\n }): JSX.Element | null => {\n if (Component == null) {\n return null;\n }\n const DashboardShellComponent = Component as ComponentType<{\n children?: ReactNode;\n prepared?: BackofficePreparedDashboardShellRoute | null;\n }>;\n return (\n <DashboardShellComponent\n prepared={prepared as BackofficePreparedDashboardShellRoute | null}\n >\n {dashboardChildren}\n </DashboardShellComponent>\n );\n };\n\n const dashboardConfigRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeDashboardPageResource,\n prepare: prepareRootDashboard,\n render: renderDashboard,\n });\n const dashboardRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeDashboardShellPageResource,\n prepare: prepareRootDashboardShell,\n render: renderDashboardShell,\n children: [dashboardConfigRoute],\n });\n const dashboardAliasConfigRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeDashboardPageResource,\n prepare: prepareRootDashboard,\n render: renderDashboard,\n });\n const dashboardAliasRoute = rBackoffice({\n path: 'dashboard',\n resourcePage: BackofficeDashboardShellPageResource,\n prepare: prepareRootDashboardShell,\n render: renderDashboardShell,\n children: [dashboardAliasConfigRoute],\n });\n const secondaryDashboardRoutes = dashboards.map((registration) => {\n const dashboardConfigChildRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeDashboardPageResource,\n prepare: async () => {\n const config = await registration.module.load();\n return {\n dashboardId: registration.id,\n label: registration.label,\n config,\n } satisfies BackofficePreparedDashboardRoute;\n },\n render: renderDashboard,\n });\n return rBackoffice({\n path: `dashboard/${registration.id}`,\n resourcePage: BackofficeDashboardShellPageResource,\n prepare: () => {\n return {\n dashboardId: registration.id,\n label: registration.label,\n } satisfies BackofficePreparedDashboardShellRoute;\n },\n render: renderDashboardShell,\n children: [dashboardConfigChildRoute],\n });\n });\n\n const listEntityEntries = Object.values(entityManifest).filter((entity) => {\n return entity.kind === 'list-detail';\n });\n\n const hubRoutes = hubEntries.map((entry) => {\n const hubRelative = buildRelativePath(entry.hub.href, baseSegment);\n const hubRoute = rBackoffice({\n path: hubRelative,\n resourcePage: BackofficeHubPageResource,\n prepare: () => {\n return {\n hubId: entry.hub.id,\n hub: entry.hub,\n } satisfies BackofficePreparedHubRoute;\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component prepared={prepared} />;\n },\n });\n if (entry.groupId != null) {\n routeGroupIdMap.set(hubRoute, entry.groupId);\n }\n return hubRoute;\n });\n\n const entityRoutes = listEntityEntries.map((entityManifestItem) => {\n const listPath = entityManifestItem.routes.list;\n const listRelative = buildRelativePath(listPath, baseSegment);\n const children: Route<unknown, unknown>[] = [];\n const renderDetailRouteFallback = ({\n match,\n }: RouteFallbackArgs<BackofficeRouterContext>): JSX.Element => {\n const rawId = String(match?.params.id ?? '');\n const rawPagePath =\n typeof match?.params.pagePath === 'string'\n ? match.params.pagePath\n : null;\n const pageId =\n rawPagePath == null\n ? entityManifestItem.defaultDetailPageId\n : resolveDetailPageIdForPath(entityManifestItem, rawPagePath);\n return (\n <BackofficeEntityDetailManifestFallback\n entityManifest={entityManifestItem}\n id={rawId}\n pageId={pageId}\n pagePath={rawPagePath}\n />\n );\n };\n\n if (entityManifestItem.hasList) {\n const listDataRoute = rBackoffice({\n path: '',\n querySchema: entityManifestItem.listNavigation.querySchema,\n resourcePage: BackofficeEntityListDataPageResource,\n prepareSearchBehavior: 'path',\n prepare: async ({ context, filters, query }) => {\n const entityModule = await entityRegistry.loadListEntity(\n entityManifestItem.id,\n );\n const { config } = entityModule;\n const { list } = config;\n const { defaults: listDefaults } = entityManifestItem.listNavigation;\n const navigationQuery: { sort?: string } = {};\n if (typeof query.sort === 'string') {\n navigationQuery.sort = query.sort;\n }\n const navigationFilters = filters as Parameters<\n typeof entityManifestItem.listNavigation.decode\n >[0]['filters'];\n const state = entityManifestItem.listNavigation.decode({\n filters: navigationFilters,\n query: navigationQuery,\n });\n const { pageSize } = BACKOFFICE_LIST_DEFAULTS;\n const variablesBase = {\n where: state.where,\n sort: state.sort ?? listDefaults.sort,\n count: pageSize,\n cursor: null,\n };\n const variables = list.buildQueryVariables(variablesBase);\n const queryRef = loadQuery<OperationType>(\n context.relayEnvironment,\n list.query,\n variables,\n );\n const prepared: BackofficePreparedListDataRoute = {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n entityConfig: config,\n query: queryRef,\n };\n return prepared;\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute = prepared as BackofficePreparedListDataRoute;\n return <Component prepared={preparedRoute} />;\n },\n });\n routeEntityIdMap.set(listDataRoute, entityManifestItem.id);\n\n const listRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeEntityListPageResource,\n prepareSearchBehavior: 'path',\n prepare: async () => {\n const entityModule = await entityRegistry.loadListEntity(\n entityManifestItem.id,\n );\n const { config } = entityModule;\n const prepared: BackofficePreparedListLayoutRoute = {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n entityConfig: config,\n };\n return prepared;\n },\n render: ({ children: listChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute = prepared as BackofficePreparedListLayoutRoute;\n return (\n <Component\n entityManifest={preparedRoute.entityManifest}\n config={preparedRoute.entityConfig}\n prepared={preparedRoute}\n >\n {listChildren}\n </Component>\n );\n },\n children: [listDataRoute],\n });\n routeEntityIdMap.set(listRoute, entityManifestItem.id);\n\n const listShellRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeEntityListShellPageResource,\n prepareSearchBehavior: 'path',\n prepare: () => {\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n } satisfies BackofficePreparedListShellRoute;\n },\n render: ({ children: listShellChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute = prepared as BackofficePreparedListShellRoute;\n return (\n <Component\n entityManifest={preparedRoute.entityManifest}\n prepared={preparedRoute}\n >\n {listShellChildren}\n </Component>\n );\n },\n children: [listRoute],\n });\n routeEntityIdMap.set(listShellRoute, entityManifestItem.id);\n children.push(listShellRoute);\n }\n\n const detailPageRoutes = entityManifestItem.detailPages.map(\n (pageManifest) => {\n const pageDataRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeEntityDetailPageResource,\n suspenseBoundary: 'segment',\n fallback: renderDetailRouteFallback,\n prepare: async ({ context, variables }) => {\n const rawId = String(variables.id ?? '');\n const pageModule = await entityRegistry.loadDetailPageEntity(\n entityManifestItem.id,\n pageManifest.id,\n );\n const pageBuildResult =\n pageModule.config.page.buildVariables != null\n ? pageModule.config.page.buildVariables({\n id: rawId,\n })\n : { variables: { id: rawId } };\n const pageQueryRef = loadQuery<OperationType>(\n context.relayEnvironment,\n pageModule.config.page.query,\n pageBuildResult.variables as Variables,\n );\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n detailId: pageBuildResult.detailId,\n id: rawId,\n pageConfig: pageModule.config,\n pageQuery: pageQueryRef,\n pageId: pageManifest.id,\n pagePath: pageManifest.pathSegment,\n } satisfies BackofficePreparedDetailPageDataRoute;\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute =\n prepared as BackofficePreparedDetailPageDataRoute;\n return <Component prepared={preparedRoute} />;\n },\n });\n routeEntityIdMap.set(pageDataRoute, entityManifestItem.id);\n\n const pageConfigRoute = rBackoffice({\n path: pageManifest.pathSegment,\n resourcePage: BackofficeEntityDetailPageConfigPageResource,\n suspenseBoundary: 'segment',\n fallback: renderDetailRouteFallback,\n prepare: async ({ variables }) => {\n const rawId = String(variables.id ?? '');\n const [pageModule, layoutModule] = await Promise.all([\n entityRegistry.loadDetailPageEntity(\n entityManifestItem.id,\n pageManifest.id,\n ),\n entityRegistry.loadDetailLayoutEntity(entityManifestItem.id),\n ]);\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n entityConfig: layoutModule.config,\n id: rawId,\n pageConfig: pageModule.config,\n pageId: pageManifest.id,\n pagePath: pageManifest.pathSegment,\n } satisfies BackofficePreparedDetailPageConfigRoute;\n },\n render: ({ children: pageChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute =\n prepared as BackofficePreparedDetailPageConfigRoute;\n return (\n <Component\n config={preparedRoute.entityConfig}\n prepared={preparedRoute}\n >\n {pageChildren}\n </Component>\n );\n },\n children: [pageDataRoute],\n });\n routeEntityIdMap.set(pageConfigRoute, entityManifestItem.id);\n return pageConfigRoute;\n },\n );\n\n const detailLayoutDataRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeEntityDetailLayoutPageResource,\n suspenseBoundary: 'segment',\n fallback: renderDetailRouteFallback,\n prepare: async ({ context, variables }) => {\n const entityModule = await entityRegistry.loadDetailLayoutEntity(\n entityManifestItem.id,\n );\n const { config } = entityModule;\n const rawId = String(variables.id ?? '');\n const layoutBuildResult =\n config.layoutPage.buildVariables != null\n ? config.layoutPage.buildVariables({\n id: rawId,\n })\n : { variables: { id: rawId } };\n const layoutQueryRef = loadQuery<OperationType>(\n context.relayEnvironment,\n config.layoutPage.query,\n layoutBuildResult.variables as Variables,\n );\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n entityConfig: config,\n layoutQuery: layoutQueryRef,\n id: rawId,\n } satisfies BackofficePreparedDetailLayoutDataRoute;\n },\n render: ({ children: detailChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute =\n prepared as BackofficePreparedDetailLayoutDataRoute;\n return (\n <Component\n entityManifest={preparedRoute.entityManifest}\n config={preparedRoute.entityConfig}\n prepared={preparedRoute}\n >\n {detailChildren}\n </Component>\n );\n },\n children: [\n rBackoffice({\n path: '',\n resourcePage: WrapperPageResource,\n prepare: ({ variables }) => {\n const rawId = String(variables.id ?? '').trim();\n return {\n redirectTo:\n rawId === ''\n ? null\n : entityManifestItem.routes.detailPage(\n rawId,\n entityManifestItem.defaultDetailPageId,\n ),\n };\n },\n render: ({ prepared }) => {\n const redirectTo =\n (prepared as { redirectTo?: string | null }).redirectTo ?? null;\n if (redirectTo == null) {\n return null;\n }\n return <BackofficeHistoryRedirect pathname={redirectTo} />;\n },\n }),\n ...detailPageRoutes,\n rBackoffice({\n path: ':pagePath',\n resourcePage: BackofficeEntityDetailUnknownPageRedirectResource,\n suspenseBoundary: 'segment',\n fallback: renderDetailRouteFallback,\n prepare: async ({ variables }) => {\n const entityModule = await entityRegistry.loadDetailLayoutEntity(\n entityManifestItem.id,\n );\n const rawId = String(variables.id ?? '');\n const rawPagePath = String(variables.pagePath ?? '');\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n entityConfig: entityModule.config,\n id: rawId,\n pagePath: rawPagePath,\n } satisfies BackofficePreparedDetailUnknownPageRoute;\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedDetail =\n prepared as BackofficePreparedDetailUnknownPageRoute;\n return (\n <Component\n entityManifest={preparedDetail.entityManifest}\n config={preparedDetail.entityConfig}\n prepared={preparedDetail}\n />\n );\n },\n }),\n ],\n });\n routeEntityIdMap.set(detailLayoutDataRoute, entityManifestItem.id);\n\n const detailShellRoute = rBackoffice({\n path: '',\n resourcePage: BackofficeEntityDetailShellPageResource,\n suspenseBoundary: 'segment',\n fallback: renderDetailRouteFallback,\n prepare: ({ variables }) => {\n const rawId = String(variables.id ?? '');\n const rawPagePath =\n typeof variables.pagePath === 'string' ? variables.pagePath : null;\n const pageId =\n rawPagePath == null\n ? entityManifestItem.defaultDetailPageId\n : resolveDetailPageIdForPath(entityManifestItem, rawPagePath);\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n id: rawId,\n pageId,\n pagePath: rawPagePath,\n } satisfies BackofficePreparedDetailShellRoute;\n },\n render: ({ children: shellChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute = prepared as BackofficePreparedDetailShellRoute;\n return (\n <Component\n entityManifest={preparedRoute.entityManifest}\n prepared={preparedRoute}\n >\n {shellChildren}\n </Component>\n );\n },\n children: [detailLayoutDataRoute],\n });\n routeEntityIdMap.set(detailShellRoute, entityManifestItem.id);\n\n const detailFrameRoute = rBackoffice({\n path: ':id',\n resourcePage: BackofficeEntityDetailFramePageResource,\n suspenseBoundary: 'segment',\n fallback: renderDetailRouteFallback,\n prepare: ({ variables }) => {\n const rawId = String(variables.id ?? '');\n return {\n entityId: entityManifestItem.id,\n entityManifest: entityManifestItem,\n id: rawId,\n } satisfies BackofficePreparedDetailFrameRoute;\n },\n render: ({ children: detailChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedRoute = prepared as BackofficePreparedDetailFrameRoute;\n return (\n <Component\n entityManifest={preparedRoute.entityManifest}\n prepared={preparedRoute}\n >\n {detailChildren}\n </Component>\n );\n },\n children: [detailShellRoute],\n });\n routeEntityIdMap.set(detailFrameRoute, entityManifestItem.id);\n children.push(detailFrameRoute);\n\n return rBackoffice({\n path: listRelative,\n children,\n resourcePage: WrapperPageResource,\n suspenseBoundary: 'segment',\n });\n });\n\n const toolsRoutes = Object.values(entityManifest)\n .filter((entity) => {\n return entity.kind === 'tool';\n })\n .map((toolManifest) => {\n const toolRelative = buildRelativePath(\n toolManifest.routes.list,\n baseSegment,\n );\n const toolConfigRoute = rBackoffice({\n path: '',\n resourcePage: input.toolsOperationPage ?? null,\n prepare: async () => {\n const toolModule = await entityRegistry.loadToolEntity(\n toolManifest.id,\n );\n return {\n entityId: toolManifest.id,\n entityManifest: toolManifest,\n entityConfig: toolModule.config,\n } satisfies BackofficePreparedToolConfigRoute;\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedTool = prepared as BackofficePreparedToolConfigRoute;\n return (\n <Component\n entityManifest={preparedTool.entityManifest}\n operation={preparedTool.entityConfig.tool.operation}\n toolId={preparedTool.entityConfig.id}\n />\n );\n },\n });\n routeEntityIdMap.set(toolConfigRoute, toolManifest.id);\n\n const toolRoute = rBackoffice({\n path: toolRelative,\n resourcePage: BackofficeToolShellPageResource,\n prepare: () => {\n return {\n entityId: toolManifest.id,\n entityManifest: toolManifest,\n } satisfies BackofficePreparedToolRoute;\n },\n render: ({ children: toolChildren, prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedTool = prepared as BackofficePreparedToolRoute;\n return (\n <Component\n entityManifest={preparedTool.entityManifest}\n prepared={preparedTool}\n >\n {toolChildren}\n </Component>\n );\n },\n children: [toolConfigRoute],\n });\n routeEntityIdMap.set(toolRoute, toolManifest.id);\n return toolRoute;\n });\n\n const layoutRoute = rBackoffice({\n path: baseSegment,\n resourcePage: BackofficeLayoutPageResource,\n prepareSearchBehavior: 'path',\n suspenseBoundary: 'segment',\n prepare: layoutPrepare,\n render: ({ children, prepared, route, Component }) => {\n if (Component == null) {\n return null;\n }\n const preparedLayout = prepared as PreparedLayout | undefined;\n const activeEntityId = resolveActiveEntityIdFromRoute(\n route,\n routeEntityIdMap,\n );\n const activeGroupId =\n activeEntityId != null\n ? (entityIdToGroupId.get(activeEntityId) ?? null)\n : resolveActiveEntityIdFromRoute(route, routeGroupIdMap);\n const LayoutComponent = Component as LayoutRouteComponent;\n const authStatusQuery = auth.session.get()?.authStatusQuery ?? null;\n if (authStatusQuery != null && preparedLayout?.authStatusQuery != null) {\n return (\n <BackofficeLayoutRouteWithAuthStatus\n Component={LayoutComponent}\n preparedLayout={preparedLayout}\n permissionsQuery={sidebar?.permissionsQuery}\n activeGroupId={activeGroupId}\n authStatusQuery={authStatusQuery}\n authStatusPrepared={preparedLayout.authStatusQuery}\n loginRedirectPath={loginRedirectPath}\n >\n {children}\n </BackofficeLayoutRouteWithAuthStatus>\n );\n }\n return (\n <BackofficeLayoutRouteWithoutAuthStatus\n Component={LayoutComponent}\n preparedLayout={preparedLayout}\n permissionsQuery={sidebar?.permissionsQuery}\n activeGroupId={activeGroupId}\n >\n {children}\n </BackofficeLayoutRouteWithoutAuthStatus>\n );\n },\n children: [\n dashboardRoute,\n ...hubRoutes,\n ...entityRoutes,\n ...toolsRoutes,\n ...secondaryDashboardRoutes,\n dashboardAliasRoute,\n ],\n });\n\n const routes: Route<BackofficeRouterContext, unknown>[] = [\n rBackoffice({\n path: loginPath,\n resourcePage: BackofficeLoginPageResource,\n prepare: async ({ context }) => {\n const loginAuth = await auth.login.load();\n const queryRef = loadQuery<OperationType>(\n context.relayEnvironment,\n loginAuth.loginQuery,\n {},\n );\n return { query: queryRef };\n },\n render: ({ prepared, Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component prepared={prepared} />;\n },\n }),\n rBackoffice({\n path: passwordResetRequestPath,\n resourcePage: BackofficePasswordResetRequestPageResource,\n prepare: async () => {\n await auth.passwordResetRequest.load();\n return null;\n },\n render: ({ Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component />;\n },\n }),\n rBackoffice({\n path: passwordResetCompletePath,\n resourcePage: BackofficePasswordResetCompletePageResource,\n prepare: async () => {\n await auth.passwordResetComplete.load();\n return null;\n },\n render: ({ Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component />;\n },\n }),\n rBackoffice({\n path: verifyEmailPath,\n resourcePage: BackofficeVerifyEmailPageResource,\n prepare: async () => {\n await auth.verifyEmail.load();\n return null;\n },\n render: ({ Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component />;\n },\n }),\n ];\n\n if (auth.hasAcceptInvitation === true || auth.acceptInvitation != null) {\n routes.push(\n rBackoffice({\n path: acceptInvitationPath,\n resourcePage: BackofficeAcceptInvitationPageResource,\n prepare: async () => {\n await auth.acceptInvitation?.load();\n return null;\n },\n render: ({ Component }) => {\n if (Component == null) {\n return null;\n }\n return <Component />;\n },\n }),\n );\n }\n\n routes.push(layoutRoute);\n\n return routes;\n}\n\nexport const __test = {\n normalizeBaseSegment,\n normalizePath,\n buildScopedPath,\n buildScopedAbsolutePath,\n buildRelativePath,\n resolveActiveEntityIdFromRoute,\n resolveDetailPageIdForPath,\n resolveDetailPageManifestByPath,\n validateBackofficeDashboardRegistrations,\n BackofficeLayoutRouteWithAuthStatus,\n} as const;\n\nexport default createBackofficeRoutes;\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { type JSX } from 'react';
2
- import type { BackofficeEntityFormMutationActionSpec } from '@plumile/backoffice-core/types.js';
2
+ import type { BackofficeRuntimeEntityFormMutationActionSpec } from '@plumile/backoffice-core/types.js';
3
3
  export type BackofficeEntityActionFormDialogProps<Node> = {
4
4
  isOpen: boolean;
5
- action: BackofficeEntityFormMutationActionSpec<Node, any, any, any>;
5
+ action: BackofficeRuntimeEntityFormMutationActionSpec<Node>;
6
6
  node: Node;
7
7
  onClose: () => void;
8
8
  onSuccess?: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeEntityActionFormDialog.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/actions/BackofficeEntityActionFormDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,GAAG,EAOT,MAAM,OAAO,CAAC;AAqBf,OAAO,KAAK,EAEV,sCAAsC,EAEvC,MAAM,mCAAmC,CAAC;AAgB3C,MAAM,MAAM,qCAAqC,CAAC,IAAI,IAAI;IACxD,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,sCAAsC,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACpE,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAoGF,eAAO,MAAM,gCAAgC,GAAI,IAAI,iDAMlD,qCAAqC,CAAC,IAAI,CAAC,KAAG,GAAG,CAAC,OAAO,GAAG,IAs3B9D,CAAC;eAEa,gCAAgC"}
1
+ {"version":3,"file":"BackofficeEntityActionFormDialog.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/actions/BackofficeEntityActionFormDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,GAAG,EAOT,MAAM,OAAO,CAAC;AAqBf,OAAO,KAAK,EAEV,6CAA6C,EAE9C,MAAM,mCAAmC,CAAC;AAgB3C,MAAM,MAAM,qCAAqC,CAAC,IAAI,IAAI;IACxD,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,6CAA6C,CAAC,IAAI,CAAC,CAAC;IAC5D,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAoGF,eAAO,MAAM,gCAAgC,GAAI,IAAI,iDAMlD,qCAAqC,CAAC,IAAI,CAAC,KAAG,GAAG,CAAC,OAAO,GAAG,IAs3B9D,CAAC;eAEa,gCAAgC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sidebarUtils.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/layout/sidebarUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sidebarUtils.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/layout/sidebarUtils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityIdPickerDialog.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/pickers/EntityIdPickerDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,GAAG,EACT,MAAM,OAAO,CAAC;AAef,OAAO,KAAK,EACV,qBAAqB,EAGtB,MAAM,mCAAmC,CAAC;AAW3C,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC,CAAC;AA8FF,eAAO,MAAM,oBAAoB,2DAO9B,yBAAyB,KAAG,GAAG,CAAC,OAAO,GAAG,IAmI5C,CAAC;AAEF,YAAY,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;eAEhE,oBAAoB"}
1
+ {"version":3,"file":"EntityIdPickerDialog.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/pickers/EntityIdPickerDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,GAAG,EACT,MAAM,OAAO,CAAC;AAef,OAAO,KAAK,EACV,qBAAqB,EAGtB,MAAM,mCAAmC,CAAC;AAW3C,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC,CAAC;AA2FF,eAAO,MAAM,oBAAoB,2DAO9B,yBAAyB,KAAG,GAAG,CAAC,OAAO,GAAG,IAmI5C,CAAC;AAEF,YAAY,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;eAEhE,oBAAoB"}
@@ -71,6 +71,7 @@ export { formatListAsMarkdown } from './components/backoffice/detail/detailPaylo
71
71
  export { BackofficeRightPageLayout } from './components/backoffice/layout/breadcrumb/BackofficeRightPageLayout.js';
72
72
  export { EntityIdPickerDialog } from './components/backoffice/pickers/EntityIdPickerDialog.js';
73
73
  export { createInlineDataReader } from './relay/createInlineReader.js';
74
+ export type { BackofficeRelayKey, BackofficeRelayKeyData, } from './relay/typedRelayHooks.js';
74
75
  export { appendNodeToConnections, type AppendNodeToConnectionsOptions, } from './relay/connectionUtils.js';
75
76
  export { RelayProvider } from './relay/RelayProvider.js';
76
77
  export { configureRelayEnvironment, getEnvironment, getNetwork, getRelayOperationActivitySnapshot, getRelayTransportSnapshot, reconnectRelayWebSocket, refreshRelayWebSocketAuthentication, resetRelayStore, subscribeRelayOperationActivity, subscribeRelayTransport, type RelayOperationActivitySnapshot, type RelayOperationKind, type RelayPendingOperation, type RelayAuthRefreshOptions, type RelayReconnectOptions, type RelayTransportSnapshot, type RelayTransportStatus, } from './relay/environment.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeEntityDetailPage.d.ts","sourceRoot":"","sources":["../../../src/pages/BackofficeEntityDetailPage.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,GAAG,EAAwC,MAAM,OAAO,CAAC;AAWvE,OAAO,KAAK,EACV,qCAAqC,EAEtC,MAAM,mCAAmC,CAAC;AAgE3C,MAAM,MAAM,+BAA+B,GAAG;IAC5C,QAAQ,EAAE,qCAAqC,CAAC;CACjD,CAAC;AAopBF,eAAO,MAAM,0BAA0B,kBAEpC,+BAA+B,KAAG,GAAG,CAAC,OAOxC,CAAC;eAEa,0BAA0B"}
1
+ {"version":3,"file":"BackofficeEntityDetailPage.d.ts","sourceRoot":"","sources":["../../../src/pages/BackofficeEntityDetailPage.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,GAAG,EAAwC,MAAM,OAAO,CAAC;AAWvE,OAAO,KAAK,EACV,qCAAqC,EAEtC,MAAM,mCAAmC,CAAC;AAgE3C,MAAM,MAAM,+BAA+B,GAAG;IAC5C,QAAQ,EAAE,qCAAqC,CAAC;CACjD,CAAC;AA8pBF,eAAO,MAAM,0BAA0B,kBAEpC,+BAA+B,KAAG,GAAG,CAAC,OAOxC,CAAC;eAEa,0BAA0B"}
@@ -1,12 +1,12 @@
1
- import type { BackofficeBadgeTone, BackofficeEntityActionSpec, BackofficeEntityFormMutationActionSpec, BackofficeEntityMutationActionSpec, BackofficeEntityRouteActionSpec, BackofficeValueLabel, I18nLabel } from '@plumile/backoffice-core/types.js';
1
+ import type { BackofficeBadgeTone, BackofficeEntityActionSpec, BackofficeRuntimeEntityFormMutationActionSpec, BackofficeRuntimeEntityMutationActionSpec, BackofficeEntityRouteActionSpec, BackofficeValueLabel, I18nLabel } from '@plumile/backoffice-core/types.js';
2
2
  import type { MutationPayloadBase } from '../relay/mutationResult.js';
3
3
  import type { TFunction } from 'i18next';
4
4
  export declare const resolveLabel: (label: I18nLabel, tApp: TFunction) => string;
5
5
  export declare const isPlainObject: (value: unknown) => value is Record<string, unknown>;
6
6
  export declare const extractMutationPayload: (response: unknown) => MutationPayloadBase | null;
7
7
  export declare const isRouteAction: <Node>(action: BackofficeEntityActionSpec<Node>) => action is BackofficeEntityRouteActionSpec<Node>;
8
- export declare const isMutationAction: <Node>(action: BackofficeEntityActionSpec<Node>) => action is BackofficeEntityMutationActionSpec<Node, any>;
9
- export declare const isFormMutationAction: <Node>(action: BackofficeEntityActionSpec<Node>) => action is BackofficeEntityFormMutationActionSpec<Node, any, any, any>;
8
+ export declare const isMutationAction: <Node>(action: BackofficeEntityActionSpec<Node>) => action is BackofficeRuntimeEntityMutationActionSpec<Node>;
9
+ export declare const isFormMutationAction: <Node>(action: BackofficeEntityActionSpec<Node>) => action is BackofficeRuntimeEntityFormMutationActionSpec<Node>;
10
10
  export declare const resolveValueLabel: (value: BackofficeValueLabel | null | undefined, tApp: TFunction) => string | number | null;
11
11
  export declare const resolveRelationValue: (value: string | null) => string | null;
12
12
  export declare const isEmptyText: (value: string | number | null | undefined) => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeEntityDetailPage.helpers.d.ts","sourceRoot":"","sources":["../../../src/pages/BackofficeEntityDetailPage.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,0BAA0B,EAC1B,sCAAsC,EACtC,kCAAkC,EAClC,+BAA+B,EAC/B,oBAAoB,EACpB,SAAS,EACV,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,eAAO,MAAM,YAAY,UAAW,SAAS,QAAQ,SAAS,KAAG,MAEhE,CAAC;AAEF,eAAO,MAAM,aAAa,UACjB,OAAO,KACb,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAEjC,CAAC;AAEF,eAAO,MAAM,sBAAsB,aACvB,OAAO,KAChB,mBAAmB,GAAG,IAYxB,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,IAAI,UACxB,0BAA0B,CAAC,IAAI,CAAC,KACvC,MAAM,IAAI,+BAA+B,CAAC,IAAI,CAEhD,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,IAAI,UAC3B,0BAA0B,CAAC,IAAI,CAAC,KACvC,MAAM,IAAI,kCAAkC,CAAC,IAAI,EAAE,GAAG,CAExD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,IAAI,UAC/B,0BAA0B,CAAC,IAAI,CAAC,KACvC,MAAM,IAAI,sCAAsC,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAEtE,CAAC;AAEF,eAAO,MAAM,iBAAiB,UACrB,oBAAoB,GAAG,IAAI,GAAG,SAAS,QACxC,SAAS,KACd,MAAM,GAAG,MAAM,GAAG,IAQpB,CAAC;AAEF,eAAO,MAAM,oBAAoB,UAAW,MAAM,GAAG,IAAI,KAAG,MAAM,GAAG,IASpE,CAAC;AAEF,eAAO,MAAM,WAAW,UACf,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,KACxC,OAQF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,IAAI,QAC7B,mBAAmB,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,mBAAmB,CAAC,GAAG,SAAS,QACvE,IAAI,KACT,mBAAmB,GAAG,SAKxB,CAAC"}
1
+ {"version":3,"file":"BackofficeEntityDetailPage.helpers.d.ts","sourceRoot":"","sources":["../../../src/pages/BackofficeEntityDetailPage.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,0BAA0B,EAC1B,6CAA6C,EAC7C,yCAAyC,EACzC,+BAA+B,EAC/B,oBAAoB,EACpB,SAAS,EACV,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,eAAO,MAAM,YAAY,UAAW,SAAS,QAAQ,SAAS,KAAG,MAEhE,CAAC;AAEF,eAAO,MAAM,aAAa,UACjB,OAAO,KACb,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAEjC,CAAC;AAEF,eAAO,MAAM,sBAAsB,aACvB,OAAO,KAChB,mBAAmB,GAAG,IAYxB,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,IAAI,UACxB,0BAA0B,CAAC,IAAI,CAAC,KACvC,MAAM,IAAI,+BAA+B,CAAC,IAAI,CAEhD,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,IAAI,UAC3B,0BAA0B,CAAC,IAAI,CAAC,KACvC,MAAM,IAAI,yCAAyC,CAAC,IAAI,CAE1D,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,IAAI,UAC/B,0BAA0B,CAAC,IAAI,CAAC,KACvC,MAAM,IAAI,6CAA6C,CAAC,IAAI,CAE9D,CAAC;AAEF,eAAO,MAAM,iBAAiB,UACrB,oBAAoB,GAAG,IAAI,GAAG,SAAS,QACxC,SAAS,KACd,MAAM,GAAG,MAAM,GAAG,IAQpB,CAAC;AAEF,eAAO,MAAM,oBAAoB,UAAW,MAAM,GAAG,IAAI,KAAG,MAAM,GAAG,IASpE,CAAC;AAEF,eAAO,MAAM,WAAW,UACf,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,KACxC,OAQF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,IAAI,QAC7B,mBAAmB,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,mBAAmB,CAAC,GAAG,SAAS,QACvE,IAAI,KACT,mBAAmB,GAAG,SAKxB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { ComponentProps, JSX } from 'react';
2
- import type { BackofficeEntityFormMutationActionSpec, BackofficeEntityRouteActionSpec, BackofficeListActionSpec, BackofficeRuntimeConnectionListConfig, BackofficeRuntimeResolvedListFacetConfig, I18nLabel } from '@plumile/backoffice-core/types.js';
2
+ import type { BackofficeRuntimeEntityFormMutationActionSpec, BackofficeEntityRouteActionSpec, BackofficeListActionSpec, BackofficeRuntimeConnectionListConfig, BackofficeRuntimeResolvedListFacetConfig, I18nLabel } from '@plumile/backoffice-core/types.js';
3
3
  import type { Button } from '@plumile/ui/atomic/atoms/button/Button.js';
4
4
  import type { DataTableColumn } from '@plumile/ui/components/data-table/DataTable.js';
5
5
  import type { TFunction } from 'i18next';
@@ -8,7 +8,7 @@ export declare const computeRowFlagsColumnWidthPx: (flagCount: number) => number
8
8
  export declare const computeActionsColumnWidthPx: (actionCount: number) => number;
9
9
  export declare const resolveTrackBySize: (column: DataTableColumn<unknown>, fallback: string) => string;
10
10
  export declare const isRouteAction: (action: BackofficeListActionSpec) => action is BackofficeEntityRouteActionSpec<null>;
11
- export declare const isFormMutationAction: (action: BackofficeListActionSpec) => action is BackofficeEntityFormMutationActionSpec<null, any, any, any>;
11
+ export declare const isFormMutationAction: (action: BackofficeListActionSpec) => action is BackofficeRuntimeEntityFormMutationActionSpec<null>;
12
12
  export declare const resolveActionVariant: (actionVariant: ButtonVariant | undefined, index: number) => Exclude<ButtonVariant, undefined>;
13
13
  export declare const resolveRowId: (row: unknown) => string | null;
14
14
  export type ConnectionListConfig = BackofficeRuntimeResolvedListFacetConfig & {
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeEntityListPage.helpers.d.ts","sourceRoot":"","sources":["../../../src/pages/BackofficeEntityListPage.helpers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAEjD,OAAO,KAAK,EACV,sCAAsC,EACtC,+BAA+B,EAC/B,wBAAwB,EACxB,qCAAqC,EACrC,wCAAwC,EACxC,SAAS,EACV,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AACtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAIzC,KAAK,aAAa,GAAG,cAAc,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;AAwB9D,eAAO,MAAM,4BAA4B,cAAe,MAAM,KAAG,MAShE,CAAC;AAEF,eAAO,MAAM,2BAA2B,gBAAiB,MAAM,KAAG,MAUjE,CAAC;AAEF,eAAO,MAAM,kBAAkB,WACrB,eAAe,CAAC,OAAO,CAAC,YACtB,MAAM,KACf,MAaF,CAAC;AAEF,eAAO,MAAM,aAAa,WAChB,wBAAwB,KAC/B,MAAM,IAAI,+BAA+B,CAAC,IAAI,CAEhD,CAAC;AAEF,eAAO,MAAM,oBAAoB,WACvB,wBAAwB,KAC/B,MAAM,IAAI,sCAAsC,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAEtE,CAAC;AAEF,eAAO,MAAM,oBAAoB,kBAChB,aAAa,GAAG,SAAS,SACjC,MAAM,KACZ,OAAO,CAAC,aAAa,EAAE,SAAS,CAQlC,CAAC;AAEF,eAAO,MAAM,YAAY,QAAS,OAAO,KAAG,MAAM,GAAG,IAgBpD,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,wCAAwC,GAAG;IAC5E,IAAI,EAAE,qCAAqC,CAAC;CAC7C,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,SAAS,QAAQ,SAAS,KAAG,MAEhE,CAAC;AAEF,eAAO,MAAM,kBAAkB,YAAa;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;CAC3E,KAAG,eAAe,CAAC,OAAO,CAqB1B,CAAC"}
1
+ {"version":3,"file":"BackofficeEntityListPage.helpers.d.ts","sourceRoot":"","sources":["../../../src/pages/BackofficeEntityListPage.helpers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAEjD,OAAO,KAAK,EACV,6CAA6C,EAC7C,+BAA+B,EAC/B,wBAAwB,EACxB,qCAAqC,EACrC,wCAAwC,EACxC,SAAS,EACV,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AACtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAIzC,KAAK,aAAa,GAAG,cAAc,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;AAwB9D,eAAO,MAAM,4BAA4B,cAAe,MAAM,KAAG,MAShE,CAAC;AAEF,eAAO,MAAM,2BAA2B,gBAAiB,MAAM,KAAG,MAUjE,CAAC;AAEF,eAAO,MAAM,kBAAkB,WACrB,eAAe,CAAC,OAAO,CAAC,YACtB,MAAM,KACf,MAaF,CAAC;AAEF,eAAO,MAAM,aAAa,WAChB,wBAAwB,KAC/B,MAAM,IAAI,+BAA+B,CAAC,IAAI,CAEhD,CAAC;AAEF,eAAO,MAAM,oBAAoB,WACvB,wBAAwB,KAC/B,MAAM,IAAI,6CAA6C,CAAC,IAAI,CAE9D,CAAC;AAEF,eAAO,MAAM,oBAAoB,kBAChB,aAAa,GAAG,SAAS,SACjC,MAAM,KACZ,OAAO,CAAC,aAAa,EAAE,SAAS,CAQlC,CAAC;AAEF,eAAO,MAAM,YAAY,QAAS,OAAO,KAAG,MAAM,GAAG,IAgBpD,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,wCAAwC,GAAG;IAC5E,IAAI,EAAE,qCAAqC,CAAC;CAC7C,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,SAAS,QAAQ,SAAS,KAAG,MAEhE,CAAC;AAEF,eAAO,MAAM,kBAAkB,YAAa;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;CAC3E,KAAG,eAAe,CAAC,OAAO,CAqB1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"entityRegistry.d.ts","sourceRoot":"","sources":["../../../src/provider/entityRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAEV,wBAAwB,EACxB,2BAA2B,EAI3B,yCAAyC,EACzC,uCAAuC,EACvC,iCAAiC,EACjC,mCAAmC,EACnC,iCAAiC,EAClC,MAAM,mCAAmC,CAAC;AAE3C,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,2BAA2B,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAC9E,mBAAmB,EAAE,CACnB,QAAQ,EAAE,MAAM,KACb,iCAAiC,GAAG,IAAI,CAAC;IAC9C,qBAAqB,EAAE,CACrB,QAAQ,EAAE,MAAM,KACb,mCAAmC,GAAG,IAAI,CAAC;IAChD,2BAA2B,EAAE,CAC3B,QAAQ,EAAE,MAAM,KACb,yCAAyC,GAAG,IAAI,CAAC;IACtD,yBAAyB,EAAE,CACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,KACX,uCAAuC,GAAG,IAAI,CAAC;IACpD,mBAAmB,EAAE,CACnB,QAAQ,EAAE,MAAM,KACb,iCAAiC,GAAG,IAAI,CAAC;IAC9C,cAAc,EAAE,CACd,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,wBAAwB,CAAA;KAAE,KAC1C,OAAO,CAAC,iCAAiC,CAAC,CAAC;IAChD,gBAAgB,EAAE,CAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,wBAAwB,CAAA;KAAE,KAC1C,OAAO,CAAC,mCAAmC,CAAC,CAAC;IAClD,sBAAsB,EAAE,CACtB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,wBAAwB,CAAA;KAAE,KAC1C,OAAO,CAAC,yCAAyC,CAAC,CAAC;IACxD,oBAAoB,EAAE,CACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,wBAAwB,CAAA;KAAE,KAC1C,OAAO,CAAC,uCAAuC,CAAC,CAAC;IACtD,cAAc,EAAE,CACd,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,wBAAwB,CAAA;KAAE,KAC1C,OAAO,CAAC,iCAAiC,CAAC,CAAC;CACjD,CAAC;AAyBF,QAAA,MAAM,kBAAkB,aACZ,MAAM,QACV,MAAM,GAAG,QAAQ,GAAG,eAAe,GAAG,aAAa,GAAG,MAAM,WACzD,MAAM,KACd,MAKF,CAAC;AAEF,QAAA,MAAM,OAAO,UAAW,OAAO,KAAG,KAKjC,CAAC;AAWF,QAAA,MAAM,eAAe,aACT,2BAA2B,YAC3B,MAAM,KACf,2BAA2B,CAAC,MAAM,CAMpC,CAAC;AAEF,eAAO,MAAM,8BAA8B,aAC/B,2BAA2B,WAC5B,8BAA8B,KACtC,wBAmQF,CAAC;AAEF,eAAO,MAAM,MAAM;;;;CAIlB,CAAC;eAEa,8BAA8B"}
1
+ {"version":3,"file":"entityRegistry.d.ts","sourceRoot":"","sources":["../../../src/provider/entityRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAEV,wBAAwB,EACxB,2BAA2B,EAI3B,yCAAyC,EACzC,uCAAuC,EACvC,iCAAiC,EACjC,mCAAmC,EACnC,iCAAiC,EAClC,MAAM,mCAAmC,CAAC;AAE3C,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,2BAA2B,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAC9E,mBAAmB,EAAE,CACnB,QAAQ,EAAE,MAAM,KACb,iCAAiC,GAAG,IAAI,CAAC;IAC9C,qBAAqB,EAAE,CACrB,QAAQ,EAAE,MAAM,KACb,mCAAmC,GAAG,IAAI,CAAC;IAChD,2BAA2B,EAAE,CAC3B,QAAQ,EAAE,MAAM,KACb,yCAAyC,GAAG,IAAI,CAAC;IACtD,yBAAyB,EAAE,CACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,KACX,uCAAuC,GAAG,IAAI,CAAC;IACpD,mBAAmB,EAAE,CACnB,QAAQ,EAAE,MAAM,KACb,iCAAiC,GAAG,IAAI,CAAC;IAC9C,cAAc,EAAE,CACd,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,wBAAwB,CAAA;KAAE,KAC1C,OAAO,CAAC,iCAAiC,CAAC,CAAC;IAChD,gBAAgB,EAAE,CAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,wBAAwB,CAAA;KAAE,KAC1C,OAAO,CAAC,mCAAmC,CAAC,CAAC;IAClD,sBAAsB,EAAE,CACtB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,wBAAwB,CAAA;KAAE,KAC1C,OAAO,CAAC,yCAAyC,CAAC,CAAC;IACxD,oBAAoB,EAAE,CACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,wBAAwB,CAAA;KAAE,KAC1C,OAAO,CAAC,uCAAuC,CAAC,CAAC;IACtD,cAAc,EAAE,CACd,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,wBAAwB,CAAA;KAAE,KAC1C,OAAO,CAAC,iCAAiC,CAAC,CAAC;CACjD,CAAC;AAyBF,QAAA,MAAM,kBAAkB,aACZ,MAAM,QACV,MAAM,GAAG,QAAQ,GAAG,eAAe,GAAG,aAAa,GAAG,MAAM,WACzD,MAAM,KACd,MAKF,CAAC;AAEF,QAAA,MAAM,OAAO,UAAW,OAAO,KAAG,KAKjC,CAAC;AA0BF,QAAA,MAAM,eAAe,aACT,2BAA2B,YAC3B,MAAM,KACf,2BAA2B,CAAC,MAAM,CAMpC,CAAC;AAEF,eAAO,MAAM,8BAA8B,aAC/B,2BAA2B,WAC5B,8BAA8B,KACtC,wBAmRF,CAAC;AAEF,eAAO,MAAM,MAAM;;;;CAIlB,CAAC;eAEa,8BAA8B"}
@@ -22,7 +22,7 @@ export type BackofficeSidebarGroupBehavior = {
22
22
  export type BackofficeSidebarGroupConfig<TManifest extends BackofficeEntityManifestMap = BackofficeEntityManifestMap> = {
23
23
  title?: I18nLabel;
24
24
  description?: I18nLabel;
25
- entities?: readonly string[];
25
+ entities?: readonly BackofficeManifestEntityId<TManifest>[];
26
26
  items?: readonly BackofficeSidebarItemConfig<TManifest>[];
27
27
  icon?: BackofficeIconComponent;
28
28
  tone?: BackofficeSidebarSectionTone;