@plumile/backoffice-react 0.1.189 → 0.1.191

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 (33) hide show
  1. package/lib/esm/components/backoffice/list/RowFlagsCell.css.js +0 -1
  2. package/lib/esm/components/backoffice/scaffolds/BackofficeEntityListScaffold.js +369 -298
  3. package/lib/esm/components/backoffice/scaffolds/BackofficeEntityListScaffold.js.map +1 -1
  4. package/lib/esm/components/backoffice/scaffolds/backofficeEntityListScaffold.css.js +2 -2
  5. package/lib/esm/components/backoffice/scaffolds/backofficeEntityListScaffold.css.js.map +1 -1
  6. package/lib/esm/components/backoffice/shared/backofficeFilterableCell.css.js +1 -0
  7. package/lib/esm/i18n/locales/en/backofficeReact.js +4 -1
  8. package/lib/esm/i18n/locales/en/backofficeReact.js.map +1 -1
  9. package/lib/esm/i18n/locales/fr/backofficeReact.js +5 -1
  10. package/lib/esm/i18n/locales/fr/backofficeReact.js.map +1 -1
  11. package/lib/esm/pages/BackofficeEntityListDataPage.js +77 -70
  12. package/lib/esm/pages/BackofficeEntityListDataPage.js.map +1 -1
  13. package/lib/esm/pages/BackofficeEntityListPage.js +89 -85
  14. package/lib/esm/pages/BackofficeEntityListPage.js.map +1 -1
  15. package/lib/esm/pages/BackofficeEntityListRouteContext.js.map +1 -1
  16. package/lib/esm/provider/BackofficeListUiStateContext.js +88 -0
  17. package/lib/esm/provider/BackofficeListUiStateContext.js.map +1 -0
  18. package/lib/esm/provider/BackofficeProvider.js +80 -79
  19. package/lib/esm/provider/BackofficeProvider.js.map +1 -1
  20. package/lib/types/components/backoffice/scaffolds/BackofficeEntityListScaffold.d.ts +2 -0
  21. package/lib/types/components/backoffice/scaffolds/BackofficeEntityListScaffold.d.ts.map +1 -1
  22. package/lib/types/components/backoffice/scaffolds/backofficeEntityListScaffold.css.d.ts +2 -0
  23. package/lib/types/components/backoffice/scaffolds/backofficeEntityListScaffold.css.d.ts.map +1 -1
  24. package/lib/types/i18n/resources.d.ts +7 -0
  25. package/lib/types/i18n/resources.d.ts.map +1 -1
  26. package/lib/types/pages/BackofficeEntityListDataPage.d.ts.map +1 -1
  27. package/lib/types/pages/BackofficeEntityListPage.d.ts.map +1 -1
  28. package/lib/types/pages/BackofficeEntityListRouteContext.d.ts +2 -0
  29. package/lib/types/pages/BackofficeEntityListRouteContext.d.ts.map +1 -1
  30. package/lib/types/provider/BackofficeListUiStateContext.d.ts +21 -0
  31. package/lib/types/provider/BackofficeListUiStateContext.d.ts.map +1 -0
  32. package/lib/types/provider/BackofficeProvider.d.ts.map +1 -1
  33. package/package.json +13 -13
@@ -0,0 +1,88 @@
1
+ import { createContext as e, useCallback as t, useContext as n, useMemo as r, useSyncExternalStore as i } from "react";
2
+ import { jsx as a } from "react/jsx-runtime";
3
+ //#region src/provider/BackofficeListUiStateContext.tsx
4
+ var o = {
5
+ isFilterDrawerOpen: !1,
6
+ filterSearch: ""
7
+ }, s = e(null), c = "plumile.backoffice.listUiState.v1", l = (e) => typeof e == "object" && !!e, u = (e) => l(e) && typeof e.key == "string" && typeof e.isFilterDrawerOpen == "boolean" && typeof e.filterSearch == "string", d = () => {
8
+ if (typeof window > "u") return /* @__PURE__ */ new Map();
9
+ try {
10
+ let e = window.sessionStorage.getItem(c);
11
+ if (e == null) return /* @__PURE__ */ new Map();
12
+ let t = JSON.parse(e);
13
+ return Array.isArray(t) ? new Map(t.filter(u).map((e) => [e.key, {
14
+ isFilterDrawerOpen: e.isFilterDrawerOpen,
15
+ filterSearch: e.filterSearch
16
+ }])) : /* @__PURE__ */ new Map();
17
+ } catch {
18
+ return /* @__PURE__ */ new Map();
19
+ }
20
+ }, f = (e) => {
21
+ if (!(typeof window > "u")) try {
22
+ if (e.size === 0) {
23
+ window.sessionStorage.removeItem(c);
24
+ return;
25
+ }
26
+ let t = Array.from(e.entries()).map(([e, t]) => ({
27
+ key: e,
28
+ isFilterDrawerOpen: t.isFilterDrawerOpen,
29
+ filterSearch: t.filterSearch
30
+ }));
31
+ window.sessionStorage.setItem(c, JSON.stringify(t));
32
+ } catch {}
33
+ }, p = d(), m = /* @__PURE__ */ new Set(), h = () => {
34
+ m.forEach((e) => {
35
+ e();
36
+ });
37
+ }, g = (e) => p.get(e) ?? o, _ = (e) => (m.add(e), () => {
38
+ m.delete(e);
39
+ }), v = (e, t) => {
40
+ let n = t(g(e)), r = new Map(p);
41
+ n.isFilterDrawerOpen === o.isFilterDrawerOpen && n.filterSearch === o.filterSearch ? r.delete(e) : r.set(e, n), p = r, f(p), h();
42
+ }, y = (e) => ({
43
+ kind: "entity-list",
44
+ entityId: e
45
+ }), b = (e) => `${e.kind}:${e.entityId}`, x = ({ children: e }) => {
46
+ let t = r(() => ({
47
+ getEntry: g,
48
+ subscribe: _,
49
+ updateEntry: v
50
+ }), []);
51
+ return /* @__PURE__ */ a(s.Provider, {
52
+ value: t,
53
+ children: e
54
+ });
55
+ }, S = (e) => {
56
+ let a = n(s);
57
+ if (a == null) throw Error("BackofficeListUiStateProvider is missing.");
58
+ let c = b(e), l = i(a.subscribe, () => a.getEntry(c), () => a.getEntry(c)), u = t((e) => {
59
+ a.updateEntry(c, (t) => ({
60
+ ...t,
61
+ isFilterDrawerOpen: e
62
+ }));
63
+ }, [a, c]), d = t((e) => {
64
+ a.updateEntry(c, (t) => ({
65
+ ...t,
66
+ filterSearch: e
67
+ }));
68
+ }, [a, c]), f = t(() => {
69
+ a.updateEntry(c, () => o);
70
+ }, [a, c]);
71
+ return r(() => ({
72
+ isOpen: l.isFilterDrawerOpen,
73
+ search: l.filterSearch,
74
+ setOpen: u,
75
+ setSearch: d,
76
+ reset: f
77
+ }), [
78
+ l.filterSearch,
79
+ l.isFilterDrawerOpen,
80
+ f,
81
+ u,
82
+ d
83
+ ]);
84
+ };
85
+ //#endregion
86
+ export { x as BackofficeListUiStateProvider, y as createBackofficeEntityListUiStateKey, b as serializeBackofficeListUiStateKey, S as useBackofficeListFilterDrawerState };
87
+
88
+ //# sourceMappingURL=BackofficeListUiStateContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackofficeListUiStateContext.js","names":[],"sources":["../../../src/provider/BackofficeListUiStateContext.tsx"],"sourcesContent":["import {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useSyncExternalStore,\n type JSX,\n type ReactNode,\n} from 'react';\n\nimport type { BackofficeEntityManifestItem } from '@plumile/backoffice-core/types.js';\n\nexport type BackofficeEntityListUiStateKey = {\n readonly kind: 'entity-list';\n readonly entityId: BackofficeEntityManifestItem['id'];\n};\n\nexport type BackofficeListUiStateKey = BackofficeEntityListUiStateKey;\n\nexport type BackofficeFilterDrawerState = {\n readonly isOpen: boolean;\n readonly search: string;\n readonly setOpen: (isOpen: boolean) => void;\n readonly setSearch: (search: string) => void;\n readonly reset: () => void;\n};\n\ntype BackofficeListUiStateEntry = {\n readonly isFilterDrawerOpen: boolean;\n readonly filterSearch: string;\n};\n\ntype BackofficeListUiStateStore = ReadonlyMap<\n string,\n BackofficeListUiStateEntry\n>;\n\ntype PersistedBackofficeListUiStateEntry = {\n readonly key: string;\n readonly isFilterDrawerOpen: boolean;\n readonly filterSearch: string;\n};\n\ntype BackofficeListUiStateContextValue = {\n readonly getEntry: (serializedKey: string) => BackofficeListUiStateEntry;\n readonly subscribe: (listener: () => void) => () => void;\n readonly updateEntry: (\n serializedKey: string,\n update: (current: BackofficeListUiStateEntry) => BackofficeListUiStateEntry,\n ) => void;\n};\n\nconst closedEntry: BackofficeListUiStateEntry = {\n isFilterDrawerOpen: false,\n filterSearch: '',\n};\n\nconst BackofficeListUiStateContext =\n createContext<BackofficeListUiStateContextValue | null>(null);\n\nconst storageKey = 'plumile.backoffice.listUiState.v1';\n\nconst isRecord = (value: unknown): value is Record<string, unknown> => {\n return typeof value === 'object' && value != null;\n};\n\nconst isPersistedEntry = (\n value: unknown,\n): value is PersistedBackofficeListUiStateEntry => {\n return (\n isRecord(value) &&\n typeof value.key === 'string' &&\n typeof value.isFilterDrawerOpen === 'boolean' &&\n typeof value.filterSearch === 'string'\n );\n};\n\nconst readPersistedEntries = (): BackofficeListUiStateStore => {\n if (typeof window === 'undefined') {\n return new Map();\n }\n\n try {\n const raw = window.sessionStorage.getItem(storageKey);\n if (raw == null) {\n return new Map();\n }\n const parsed: unknown = JSON.parse(raw);\n if (!Array.isArray(parsed)) {\n return new Map();\n }\n return new Map(\n parsed.filter(isPersistedEntry).map((entry) => {\n return [\n entry.key,\n {\n isFilterDrawerOpen: entry.isFilterDrawerOpen,\n filterSearch: entry.filterSearch,\n },\n ] as const;\n }),\n );\n } catch {\n return new Map();\n }\n};\n\nconst persistEntries = (entries: BackofficeListUiStateStore): void => {\n if (typeof window === 'undefined') {\n return;\n }\n\n try {\n if (entries.size === 0) {\n window.sessionStorage.removeItem(storageKey);\n return;\n }\n\n const payload: PersistedBackofficeListUiStateEntry[] = Array.from(\n entries.entries(),\n ).map(([key, entry]) => {\n return {\n key,\n isFilterDrawerOpen: entry.isFilterDrawerOpen,\n filterSearch: entry.filterSearch,\n };\n });\n window.sessionStorage.setItem(storageKey, JSON.stringify(payload));\n } catch {\n // Persistence is a convenience layer; the in-memory store remains canonical.\n }\n};\n\nlet currentEntries: BackofficeListUiStateStore = readPersistedEntries();\nconst listeners = new Set<() => void>();\n\nconst notifyListeners = (): void => {\n listeners.forEach((listener) => {\n listener();\n });\n};\n\nconst getEntry = (serializedKey: string): BackofficeListUiStateEntry => {\n return currentEntries.get(serializedKey) ?? closedEntry;\n};\n\nconst subscribe = (listener: () => void): (() => void) => {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n};\n\nconst updateEntry = (\n serializedKey: string,\n update: (current: BackofficeListUiStateEntry) => BackofficeListUiStateEntry,\n): void => {\n const currentEntry = getEntry(serializedKey);\n const nextEntry = update(currentEntry);\n const nextEntries = new Map(currentEntries);\n\n if (\n nextEntry.isFilterDrawerOpen === closedEntry.isFilterDrawerOpen &&\n nextEntry.filterSearch === closedEntry.filterSearch\n ) {\n nextEntries.delete(serializedKey);\n } else {\n nextEntries.set(serializedKey, nextEntry);\n }\n\n currentEntries = nextEntries;\n persistEntries(currentEntries);\n notifyListeners();\n};\n\nexport const createBackofficeEntityListUiStateKey = (\n entityId: BackofficeEntityManifestItem['id'],\n): BackofficeEntityListUiStateKey => {\n return {\n kind: 'entity-list',\n entityId,\n };\n};\n\nexport const serializeBackofficeListUiStateKey = (\n key: BackofficeListUiStateKey,\n): string => {\n return `${key.kind}:${key.entityId}`;\n};\n\nexport const BackofficeListUiStateProvider = ({\n children,\n}: {\n children: ReactNode;\n}): JSX.Element => {\n const value = useMemo(() => {\n return {\n getEntry,\n subscribe,\n updateEntry,\n };\n }, []);\n\n return (\n <BackofficeListUiStateContext.Provider value={value}>\n {children}\n </BackofficeListUiStateContext.Provider>\n );\n};\n\nexport const useBackofficeListFilterDrawerState = (\n key: BackofficeListUiStateKey,\n): BackofficeFilterDrawerState => {\n const context = useContext(BackofficeListUiStateContext);\n if (context == null) {\n throw new Error('BackofficeListUiStateProvider is missing.');\n }\n const serializedKey = serializeBackofficeListUiStateKey(key);\n const entry = useSyncExternalStore(\n context.subscribe,\n () => {\n return context.getEntry(serializedKey);\n },\n () => {\n return context.getEntry(serializedKey);\n },\n );\n\n const setOpen = useCallback(\n (isOpen: boolean) => {\n context.updateEntry(serializedKey, (current) => {\n return {\n ...current,\n isFilterDrawerOpen: isOpen,\n };\n });\n },\n [context, serializedKey],\n );\n\n const setSearch = useCallback(\n (search: string) => {\n context.updateEntry(serializedKey, (current) => {\n return {\n ...current,\n filterSearch: search,\n };\n });\n },\n [context, serializedKey],\n );\n\n const reset = useCallback(() => {\n context.updateEntry(serializedKey, () => {\n return closedEntry;\n });\n }, [context, serializedKey]);\n\n return useMemo(() => {\n return {\n isOpen: entry.isFilterDrawerOpen,\n search: entry.filterSearch,\n setOpen,\n setSearch,\n reset,\n };\n }, [entry.filterSearch, entry.isFilterDrawerOpen, reset, setOpen, setSearch]);\n};\n"],"mappings":"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"}
@@ -6,31 +6,32 @@ import { createI18nInstance as a } from "../i18n/createI18nInstance.js";
6
6
  import { withBackofficeReactI18nResources as o } from "../i18n/resources.js";
7
7
  import { createBackofficeRoutes as s } from "../router/createBackofficeRoutes.js";
8
8
  import { createBackofficeEntityRegistry as c } from "./entityRegistry.js";
9
- import { StrictMode as l, useEffect as u, useMemo as d, useRef as f, useState as p } from "react";
10
- import { jsx as m, jsxs as h } from "react/jsx-runtime";
11
- import { I18nextProvider as g } from "react-i18next";
12
- import _ from "@plumile/router/routing/RoutingContext.js";
13
- import { RelayProvider as v, configureRelayEnvironment as y, useRelayOperationActivity as b } from "@plumile/relay";
14
- import { createInstance as x } from "i18next";
15
- import S from "@plumile/router/routing/createRouter.js";
16
- import C from "@plumile/router/routing/RouterRenderer.js";
17
- import { BackofficeThemeProvider as w } from "@plumile/ui/admin/theme/BackofficeThemeProvider.js";
18
- import { RoutePendingBar as T } from "@plumile/ui/components/routing/RoutePendingBar.js";
9
+ import { BackofficeListUiStateProvider as l } from "./BackofficeListUiStateContext.js";
10
+ import { StrictMode as u, useEffect as d, useMemo as f, useRef as p, useState as m } from "react";
11
+ import { jsx as h, jsxs as g } from "react/jsx-runtime";
12
+ import { I18nextProvider as _ } from "react-i18next";
13
+ import v from "@plumile/router/routing/RoutingContext.js";
14
+ import { RelayProvider as y, configureRelayEnvironment as b, useRelayOperationActivity as x } from "@plumile/relay";
15
+ import { createInstance as S } from "i18next";
16
+ import C from "@plumile/router/routing/createRouter.js";
17
+ import w from "@plumile/router/routing/RouterRenderer.js";
18
+ import { BackofficeThemeProvider as T } from "@plumile/ui/admin/theme/BackofficeThemeProvider.js";
19
+ import { RoutePendingBar as E } from "@plumile/ui/components/routing/RoutePendingBar.js";
19
20
  //#region src/provider/BackofficeProvider.tsx
20
- var E = (e) => e.trim() === "" || e === "/" ? "/" : e.startsWith("/") ? e.endsWith("/") ? e.slice(0, -1) : e : `/${e}`, D = (e, t) => {
21
- let n = E(t), r = E(e);
21
+ var D = (e) => e.trim() === "" || e === "/" ? "/" : e.startsWith("/") ? e.endsWith("/") ? e.slice(0, -1) : e : `/${e}`, O = (e, t) => {
22
+ let n = D(t), r = D(e);
22
23
  return r === "/" || n === r || n.startsWith(`${r}/`) ? n : n === "/" ? r : `${r}${n}`;
23
- }, O = (e, t) => Object.fromEntries(Object.entries(e).map(([e, n]) => [e, {
24
+ }, k = (e, t) => Object.fromEntries(Object.entries(e).map(([e, n]) => [e, {
24
25
  ...n,
25
26
  routes: {
26
- list: D(t, n.routes.list),
27
- detail: (e) => D(t, n.routes.detail(e)),
28
- detailPage: (e, r) => D(t, n.routes.detailPage(e, r))
27
+ list: O(t, n.routes.list),
28
+ detail: (e) => O(t, n.routes.detail(e)),
29
+ detailPage: (e, r) => O(t, n.routes.detailPage(e, r))
29
30
  }
30
- }])), k = ({ routes: e, context: t, instrumentations: n }) => {
31
- let [r, i] = p(null), a = f(null);
32
- return u(() => {
33
- let r = S(e, {
31
+ }])), A = ({ routes: e, context: t, instrumentations: n }) => {
32
+ let [r, i] = m(null), a = p(null);
33
+ return d(() => {
34
+ let r = C(e, {
34
35
  context: t,
35
36
  instrumentations: n
36
37
  });
@@ -42,57 +43,57 @@ var E = (e) => e.trim() === "" || e === "/" ? "/" : e.startsWith("/") ? e.endsWi
42
43
  n,
43
44
  e
44
45
  ]), r;
45
- }, A = ({ routes: e, instrumentations: t }) => {
46
- let r = i(), a = b(), o = k({
46
+ }, j = ({ routes: e, instrumentations: t }) => {
47
+ let r = i(), a = x(), o = A({
47
48
  routes: e,
48
- context: d(() => ({ relayEnvironment: r }), [r]),
49
+ context: f(() => ({ relayEnvironment: r }), [r]),
49
50
  instrumentations: t
50
51
  });
51
- return o == null ? /* @__PURE__ */ m(n, {}) : /* @__PURE__ */ m(_.Provider, {
52
+ return o == null ? /* @__PURE__ */ h(n, {}) : /* @__PURE__ */ h(v.Provider, {
52
53
  value: o.context,
53
- children: /* @__PURE__ */ m(C, {
54
+ children: /* @__PURE__ */ h(w, {
54
55
  enableTransition: !0,
55
56
  externalPending: a.pendingCount > 0,
56
- fallback: /* @__PURE__ */ m(n, {}),
57
- pending: /* @__PURE__ */ m(T, {})
57
+ fallback: /* @__PURE__ */ h(n, {}),
58
+ pending: /* @__PURE__ */ h(E, {})
58
59
  })
59
60
  });
60
- }, j = (n) => {
61
- let i = E(n.basePath ?? "/"), f = d(() => O(n.entityManifest, i), [i, n.entityManifest]), _ = d(() => c(f, { basePath: i }), [i, f]), b = n.graphql, S = d(() => t(n.dashboards), [n.dashboards]);
62
- u(() => {
63
- y({
64
- httpUrl: b.httpUrl ?? b.endpoint,
65
- wsUrl: b.wsUrl ?? b.wsEndpoint,
66
- getDataId: b.getDataId,
67
- logEvents: b.logEvents,
68
- getAuthHeaders: b.getAuthHeaders
61
+ }, M = (n) => {
62
+ let i = D(n.basePath ?? "/"), p = f(() => k(n.entityManifest, i), [i, n.entityManifest]), v = f(() => c(p, { basePath: i }), [i, p]), x = n.graphql, C = f(() => t(n.dashboards), [n.dashboards]);
63
+ d(() => {
64
+ b({
65
+ httpUrl: x.httpUrl ?? x.endpoint,
66
+ wsUrl: x.wsUrl ?? x.wsEndpoint,
67
+ getDataId: x.getDataId,
68
+ logEvents: x.logEvents,
69
+ getAuthHeaders: x.getAuthHeaders
69
70
  });
70
71
  }, [
71
- b.endpoint,
72
- b.getAuthHeaders,
73
- b.getDataId,
74
- b.httpUrl,
75
- b.logEvents,
76
- b.wsEndpoint,
77
- b.wsUrl
72
+ x.endpoint,
73
+ x.getAuthHeaders,
74
+ x.getDataId,
75
+ x.httpUrl,
76
+ x.logEvents,
77
+ x.wsEndpoint,
78
+ x.wsUrl
78
79
  ]);
79
- let C = d(() => o(n.i18n?.resources ?? {}), [n.i18n?.resources]), T = d(() => n.i18n?.instance ?? x(), [n.i18n?.instance]), [D, k] = p(T.isInitialized);
80
- u(() => {
80
+ let w = f(() => o(n.i18n?.resources ?? {}), [n.i18n?.resources]), E = f(() => n.i18n?.instance ?? S(), [n.i18n?.instance]), [O, A] = m(E.isInitialized);
81
+ d(() => {
81
82
  let e = !0, t = () => {
82
- e && k(!0);
83
+ e && A(!0);
83
84
  };
84
- if (T.on("initialized", t), T.isInitialized) return t(), () => {
85
- e = !1, T.off("initialized", t);
85
+ if (E.on("initialized", t), E.isInitialized) return t(), () => {
86
+ e = !1, E.off("initialized", t);
86
87
  };
87
88
  let r = globalThis.setTimeout(() => {
88
- T.isInitialized && t();
89
+ E.isInitialized && t();
89
90
  }, 0), i = n.i18n?.initOptions ?? {}, o = i.defaultNS ?? "translations", s = i.ns ?? [
90
91
  "backofficeReact",
91
92
  "translations",
92
93
  "ui"
93
94
  ];
94
95
  return a({
95
- resources: C,
96
+ resources: w,
96
97
  lng: n.i18n?.lng,
97
98
  fallbackLng: n.i18n?.fallbackLng,
98
99
  initOptions: {
@@ -104,75 +105,75 @@ var E = (e) => e.trim() === "" || e === "/" ? "/" : e.startsWith("/") ? e.endsWi
104
105
  ...i.react
105
106
  }
106
107
  },
107
- instance: T,
108
+ instance: E,
108
109
  useLanguageDetector: n.i18n?.useLanguageDetector,
109
110
  detection: n.i18n?.detection
110
111
  }).then(t).catch((e) => {
111
112
  t(), console.error(e);
112
113
  }), () => {
113
- e = !1, globalThis.clearTimeout(r), T.off("initialized", t);
114
+ e = !1, globalThis.clearTimeout(r), E.off("initialized", t);
114
115
  };
115
116
  }, [
116
- T,
117
- C,
117
+ E,
118
+ w,
118
119
  n.i18n?.initOptions,
119
120
  n.i18n?.detection,
120
121
  n.i18n?.fallbackLng,
121
122
  n.i18n?.lng,
122
123
  n.i18n?.useLanguageDetector
123
124
  ]);
124
- let j = d(() => ({
125
+ let M = f(() => ({
125
126
  basePath: i,
126
- entities: f,
127
- entityManifest: f,
128
- entityRegistry: _,
127
+ entities: p,
128
+ entityManifest: p,
129
+ entityRegistry: v,
129
130
  filterColumnAliases: n.filterColumnAliases,
130
131
  sidebar: n.sidebar,
131
132
  dashboard: n.dashboard,
132
- dashboards: S,
133
+ dashboards: C,
133
134
  auth: n.auth,
134
135
  graphql: n.graphql
135
136
  }), [
136
137
  i,
137
138
  n.auth,
138
139
  n.dashboard,
139
- S,
140
- f,
141
- _,
140
+ C,
141
+ p,
142
+ v,
142
143
  n.filterColumnAliases,
143
144
  n.graphql,
144
145
  n.sidebar
145
- ]), M = d(() => s({
146
+ ]), N = f(() => s({
146
147
  basePath: i,
147
- entityManifest: f,
148
- entityRegistry: _,
148
+ entityManifest: p,
149
+ entityRegistry: v,
149
150
  sidebar: n.sidebar,
150
151
  auth: n.auth,
151
152
  dashboard: n.dashboard,
152
- dashboards: S,
153
+ dashboards: C,
153
154
  toolsOperationPage: n.toolsOperationPage
154
155
  }), [
155
156
  i,
156
- f,
157
- _,
157
+ p,
158
+ v,
158
159
  n.auth,
159
160
  n.dashboard,
160
- S,
161
+ C,
161
162
  n.toolsOperationPage,
162
163
  n.sidebar
163
- ]), N = /* @__PURE__ */ m(r, { label: "Loading..." });
164
- return D && (N = /* @__PURE__ */ m(w, { children: /* @__PURE__ */ m(v, { children: /* @__PURE__ */ h(e, {
165
- value: j,
166
- children: [n.overlay, /* @__PURE__ */ m(A, {
167
- routes: M,
164
+ ]), P = /* @__PURE__ */ h(r, { label: "Loading..." });
165
+ return O && (P = /* @__PURE__ */ h(T, { children: /* @__PURE__ */ h(y, { children: /* @__PURE__ */ g(e, {
166
+ value: M,
167
+ children: [n.overlay, /* @__PURE__ */ h(l, { children: /* @__PURE__ */ h(j, {
168
+ routes: N,
168
169
  instrumentations: n.instrumentations
169
- })]
170
- }) }) })), /* @__PURE__ */ m(l, { children: /* @__PURE__ */ m(g, {
171
- i18n: T,
172
- children: N
170
+ }) })]
171
+ }) }) })), /* @__PURE__ */ h(u, { children: /* @__PURE__ */ h(_, {
172
+ i18n: E,
173
+ children: P
173
174
  }) });
174
175
  };
175
176
  //#endregion
176
- export { j as BackofficeProvider, j as default };
177
+ export { M as BackofficeProvider, M as default };
177
178
 
178
179
  //# sourceMappingURL=BackofficeProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeProvider.js","names":[],"sources":["../../../src/provider/BackofficeProvider.tsx"],"sourcesContent":["import {\n StrictMode,\n useEffect,\n useMemo,\n useRef,\n useState,\n type ContextType,\n type JSX,\n} from 'react';\nimport { createInstance } from 'i18next';\nimport { I18nextProvider } from 'react-i18next';\nimport createRouter from '@plumile/router/routing/createRouter.js';\nimport RouterRenderer from '@plumile/router/routing/RouterRenderer.js';\nimport RoutingContext from '@plumile/router/routing/RoutingContext.js';\nimport { BackofficeThemeProvider } from '@plumile/ui/admin/theme/BackofficeThemeProvider.js';\nimport { RoutePendingBar } from '@plumile/ui/components/routing/RoutePendingBar.js';\n\nimport { type BackofficeEntityManifestMap } from '@plumile/backoffice-core/types.js';\nimport {\n RelayProvider,\n configureRelayEnvironment,\n useRelayOperationActivity,\n} from '@plumile/relay';\n\nimport { createI18nInstance } from '../i18n/createI18nInstance.js';\nimport { withBackofficeReactI18nResources } from '../i18n/resources.js';\nimport { useRelayEnvironment } from '../relay/useRelayEnvironment.js';\nimport { BackofficeConfigProvider } from './BackofficeConfigContext.js';\nimport {\n createBackofficeRoutes,\n type BackofficeRouterContext,\n} from '../router/createBackofficeRoutes.js';\nimport type { BackofficeProviderProps } from './types.js';\nimport { validateBackofficeDashboardRegistrations } from './dashboardRegistrations.js';\nimport {\n BackofficeRouteFallback,\n BackofficeStaticRouteFallback,\n} from '../components/backoffice/routing/BackofficeRouteFallback.js';\nimport { createBackofficeEntityRegistry } from './entityRegistry.js';\n\nconst normalizeAbsolutePath = (value: string): string => {\n if (value.trim() === '' || value === '/') {\n return '/';\n }\n if (!value.startsWith('/')) {\n return `/${value}`;\n }\n if (value.endsWith('/')) {\n return value.slice(0, -1);\n }\n return value;\n};\n\nconst prefixRoutePath = (basePath: string, value: string): string => {\n const normalizedPath = normalizeAbsolutePath(value);\n const normalizedBasePath = normalizeAbsolutePath(basePath);\n if (normalizedBasePath === '/') {\n return normalizedPath;\n }\n if (\n normalizedPath === normalizedBasePath ||\n normalizedPath.startsWith(`${normalizedBasePath}/`)\n ) {\n return normalizedPath;\n }\n if (normalizedPath === '/') {\n return normalizedBasePath;\n }\n return `${normalizedBasePath}${normalizedPath}`;\n};\n\nconst resolveEntityManifest = (\n manifest: BackofficeEntityManifestMap,\n basePath: string,\n): BackofficeEntityManifestMap => {\n return Object.fromEntries(\n Object.entries(manifest).map(([entityId, item]) => {\n return [\n entityId,\n {\n ...item,\n routes: {\n list: prefixRoutePath(basePath, item.routes.list),\n detail: (id: string) => {\n return prefixRoutePath(basePath, item.routes.detail(id));\n },\n detailPage: (id: string, pageId: string) => {\n return prefixRoutePath(\n basePath,\n item.routes.detailPage(id, pageId),\n );\n },\n },\n } satisfies BackofficeEntityManifestMap[string],\n ] as const;\n }),\n );\n};\n\ntype RouterShellProps = {\n routes: ReturnType<typeof createBackofficeRoutes>;\n instrumentations?: BackofficeProviderProps['instrumentations'];\n};\n\ntype BackofficeRouterInstance = {\n context: NonNullable<ContextType<typeof RoutingContext>>;\n cleanup: () => void;\n};\n\nconst useBackofficeRouterInstance = ({\n routes,\n context,\n instrumentations,\n}: {\n routes: ReturnType<typeof createBackofficeRoutes>;\n context: BackofficeRouterContext;\n instrumentations?: BackofficeProviderProps['instrumentations'];\n}): BackofficeRouterInstance | null => {\n const [router, setRouter] = useState<BackofficeRouterInstance | null>(null);\n const routerRef = useRef<BackofficeRouterInstance | null>(null);\n\n useEffect(() => {\n const nextRouter = createRouter(routes, {\n context,\n instrumentations,\n });\n routerRef.current = nextRouter;\n setRouter(nextRouter);\n\n return () => {\n if (routerRef.current === nextRouter) {\n routerRef.current = null;\n }\n nextRouter.cleanup();\n };\n }, [context, instrumentations, routes]);\n\n return router;\n};\n\nconst RouterShell = ({\n routes,\n instrumentations,\n}: RouterShellProps): JSX.Element => {\n const relayEnvironment = useRelayEnvironment();\n const relayOperationActivity = useRelayOperationActivity();\n\n const routerContext = useMemo(() => {\n return { relayEnvironment };\n }, [relayEnvironment]);\n\n const router = useBackofficeRouterInstance({\n routes,\n context: routerContext,\n instrumentations,\n });\n\n if (router == null) {\n return <BackofficeRouteFallback />;\n }\n\n return (\n <RoutingContext.Provider value={router.context}>\n <RouterRenderer\n enableTransition\n externalPending={relayOperationActivity.pendingCount > 0}\n fallback={<BackofficeRouteFallback />}\n pending={<RoutePendingBar />}\n />\n </RoutingContext.Provider>\n );\n};\n\nexport const BackofficeProvider = (\n props: BackofficeProviderProps,\n): JSX.Element => {\n const basePath = normalizeAbsolutePath(props.basePath ?? '/');\n\n const entityManifest = useMemo(() => {\n return resolveEntityManifest(props.entityManifest, basePath);\n }, [basePath, props.entityManifest]);\n const entityRegistry = useMemo(() => {\n return createBackofficeEntityRegistry(entityManifest, { basePath });\n }, [basePath, entityManifest]);\n\n const graphQLConfig = props.graphql;\n const dashboards = useMemo(() => {\n return validateBackofficeDashboardRegistrations(props.dashboards);\n }, [props.dashboards]);\n\n useEffect(() => {\n const httpUrl = graphQLConfig.httpUrl ?? graphQLConfig.endpoint;\n const wsUrl = graphQLConfig.wsUrl ?? graphQLConfig.wsEndpoint;\n configureRelayEnvironment({\n httpUrl,\n wsUrl,\n getDataId: graphQLConfig.getDataId,\n logEvents: graphQLConfig.logEvents,\n getAuthHeaders: graphQLConfig.getAuthHeaders,\n });\n }, [\n graphQLConfig.endpoint,\n graphQLConfig.getAuthHeaders,\n graphQLConfig.getDataId,\n graphQLConfig.httpUrl,\n graphQLConfig.logEvents,\n graphQLConfig.wsEndpoint,\n graphQLConfig.wsUrl,\n ]);\n\n const mergedResources = useMemo(() => {\n return withBackofficeReactI18nResources(props.i18n?.resources ?? {});\n }, [props.i18n?.resources]);\n\n const i18nInstance = useMemo(() => {\n return props.i18n?.instance ?? createInstance();\n }, [props.i18n?.instance]);\n const [isI18nReady, setIsI18nReady] = useState(i18nInstance.isInitialized);\n\n useEffect(() => {\n let isCurrent = true;\n const markI18nReady = (): void => {\n if (isCurrent) {\n setIsI18nReady(true);\n }\n };\n\n i18nInstance.on('initialized', markI18nReady);\n if (i18nInstance.isInitialized) {\n markI18nReady();\n return () => {\n isCurrent = false;\n i18nInstance.off('initialized', markI18nReady);\n };\n }\n\n const readyCheck = globalThis.setTimeout(() => {\n if (i18nInstance.isInitialized) {\n markI18nReady();\n }\n }, 0);\n\n const initOptions = props.i18n?.initOptions ?? {};\n const defaultNs = initOptions.defaultNS ?? 'translations';\n const ns = initOptions.ns ?? ['backofficeReact', 'translations', 'ui'];\n createI18nInstance({\n resources: mergedResources,\n lng: props.i18n?.lng,\n fallbackLng: props.i18n?.fallbackLng,\n initOptions: {\n ...initOptions,\n defaultNS: defaultNs,\n ns,\n react: {\n useSuspense: false,\n ...initOptions.react,\n },\n },\n instance: i18nInstance,\n useLanguageDetector: props.i18n?.useLanguageDetector,\n detection: props.i18n?.detection,\n })\n .then(markI18nReady)\n .catch((error: unknown) => {\n markI18nReady();\n // eslint-disable-next-line no-console\n console.error(error);\n });\n\n return () => {\n isCurrent = false;\n globalThis.clearTimeout(readyCheck);\n i18nInstance.off('initialized', markI18nReady);\n };\n }, [\n i18nInstance,\n mergedResources,\n props.i18n?.initOptions,\n props.i18n?.detection,\n props.i18n?.fallbackLng,\n props.i18n?.lng,\n props.i18n?.useLanguageDetector,\n ]);\n\n const configValue = useMemo(() => {\n return {\n basePath,\n entities: entityManifest,\n entityManifest,\n entityRegistry,\n filterColumnAliases: props.filterColumnAliases,\n sidebar: props.sidebar,\n dashboard: props.dashboard,\n dashboards,\n auth: props.auth,\n graphql: props.graphql,\n };\n }, [\n basePath,\n props.auth,\n props.dashboard,\n dashboards,\n entityManifest,\n entityRegistry,\n props.filterColumnAliases,\n props.graphql,\n props.sidebar,\n ]);\n\n const routes = useMemo(() => {\n return createBackofficeRoutes({\n basePath,\n entityManifest,\n entityRegistry,\n sidebar: props.sidebar,\n auth: props.auth,\n dashboard: props.dashboard,\n dashboards,\n toolsOperationPage: props.toolsOperationPage,\n });\n }, [\n basePath,\n entityManifest,\n entityRegistry,\n props.auth,\n props.dashboard,\n dashboards,\n props.toolsOperationPage,\n props.sidebar,\n ]);\n\n let contentNode = <BackofficeStaticRouteFallback label=\"Loading...\" />;\n if (isI18nReady) {\n contentNode = (\n <BackofficeThemeProvider>\n <RelayProvider>\n <BackofficeConfigProvider value={configValue}>\n {props.overlay}\n <RouterShell\n routes={routes}\n instrumentations={props.instrumentations}\n />\n </BackofficeConfigProvider>\n </RelayProvider>\n </BackofficeThemeProvider>\n );\n }\n\n return (\n <StrictMode>\n <I18nextProvider i18n={i18nInstance}>{contentNode}</I18nextProvider>\n </StrictMode>\n );\n};\n\nexport default BackofficeProvider;\n"],"mappings":"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"}
1
+ {"version":3,"file":"BackofficeProvider.js","names":[],"sources":["../../../src/provider/BackofficeProvider.tsx"],"sourcesContent":["import {\n StrictMode,\n useEffect,\n useMemo,\n useRef,\n useState,\n type ContextType,\n type JSX,\n} from 'react';\nimport { createInstance } from 'i18next';\nimport { I18nextProvider } from 'react-i18next';\nimport createRouter from '@plumile/router/routing/createRouter.js';\nimport RouterRenderer from '@plumile/router/routing/RouterRenderer.js';\nimport RoutingContext from '@plumile/router/routing/RoutingContext.js';\nimport { BackofficeThemeProvider } from '@plumile/ui/admin/theme/BackofficeThemeProvider.js';\nimport { RoutePendingBar } from '@plumile/ui/components/routing/RoutePendingBar.js';\n\nimport { type BackofficeEntityManifestMap } from '@plumile/backoffice-core/types.js';\nimport {\n RelayProvider,\n configureRelayEnvironment,\n useRelayOperationActivity,\n} from '@plumile/relay';\n\nimport { createI18nInstance } from '../i18n/createI18nInstance.js';\nimport { withBackofficeReactI18nResources } from '../i18n/resources.js';\nimport { useRelayEnvironment } from '../relay/useRelayEnvironment.js';\nimport { BackofficeConfigProvider } from './BackofficeConfigContext.js';\nimport {\n createBackofficeRoutes,\n type BackofficeRouterContext,\n} from '../router/createBackofficeRoutes.js';\nimport type { BackofficeProviderProps } from './types.js';\nimport { validateBackofficeDashboardRegistrations } from './dashboardRegistrations.js';\nimport {\n BackofficeRouteFallback,\n BackofficeStaticRouteFallback,\n} from '../components/backoffice/routing/BackofficeRouteFallback.js';\nimport { createBackofficeEntityRegistry } from './entityRegistry.js';\nimport { BackofficeListUiStateProvider } from './BackofficeListUiStateContext.js';\n\nconst normalizeAbsolutePath = (value: string): string => {\n if (value.trim() === '' || value === '/') {\n return '/';\n }\n if (!value.startsWith('/')) {\n return `/${value}`;\n }\n if (value.endsWith('/')) {\n return value.slice(0, -1);\n }\n return value;\n};\n\nconst prefixRoutePath = (basePath: string, value: string): string => {\n const normalizedPath = normalizeAbsolutePath(value);\n const normalizedBasePath = normalizeAbsolutePath(basePath);\n if (normalizedBasePath === '/') {\n return normalizedPath;\n }\n if (\n normalizedPath === normalizedBasePath ||\n normalizedPath.startsWith(`${normalizedBasePath}/`)\n ) {\n return normalizedPath;\n }\n if (normalizedPath === '/') {\n return normalizedBasePath;\n }\n return `${normalizedBasePath}${normalizedPath}`;\n};\n\nconst resolveEntityManifest = (\n manifest: BackofficeEntityManifestMap,\n basePath: string,\n): BackofficeEntityManifestMap => {\n return Object.fromEntries(\n Object.entries(manifest).map(([entityId, item]) => {\n return [\n entityId,\n {\n ...item,\n routes: {\n list: prefixRoutePath(basePath, item.routes.list),\n detail: (id: string) => {\n return prefixRoutePath(basePath, item.routes.detail(id));\n },\n detailPage: (id: string, pageId: string) => {\n return prefixRoutePath(\n basePath,\n item.routes.detailPage(id, pageId),\n );\n },\n },\n } satisfies BackofficeEntityManifestMap[string],\n ] as const;\n }),\n );\n};\n\ntype RouterShellProps = {\n routes: ReturnType<typeof createBackofficeRoutes>;\n instrumentations?: BackofficeProviderProps['instrumentations'];\n};\n\ntype BackofficeRouterInstance = {\n context: NonNullable<ContextType<typeof RoutingContext>>;\n cleanup: () => void;\n};\n\nconst useBackofficeRouterInstance = ({\n routes,\n context,\n instrumentations,\n}: {\n routes: ReturnType<typeof createBackofficeRoutes>;\n context: BackofficeRouterContext;\n instrumentations?: BackofficeProviderProps['instrumentations'];\n}): BackofficeRouterInstance | null => {\n const [router, setRouter] = useState<BackofficeRouterInstance | null>(null);\n const routerRef = useRef<BackofficeRouterInstance | null>(null);\n\n useEffect(() => {\n const nextRouter = createRouter(routes, {\n context,\n instrumentations,\n });\n routerRef.current = nextRouter;\n setRouter(nextRouter);\n\n return () => {\n if (routerRef.current === nextRouter) {\n routerRef.current = null;\n }\n nextRouter.cleanup();\n };\n }, [context, instrumentations, routes]);\n\n return router;\n};\n\nconst RouterShell = ({\n routes,\n instrumentations,\n}: RouterShellProps): JSX.Element => {\n const relayEnvironment = useRelayEnvironment();\n const relayOperationActivity = useRelayOperationActivity();\n\n const routerContext = useMemo(() => {\n return { relayEnvironment };\n }, [relayEnvironment]);\n\n const router = useBackofficeRouterInstance({\n routes,\n context: routerContext,\n instrumentations,\n });\n\n if (router == null) {\n return <BackofficeRouteFallback />;\n }\n\n return (\n <RoutingContext.Provider value={router.context}>\n <RouterRenderer\n enableTransition\n externalPending={relayOperationActivity.pendingCount > 0}\n fallback={<BackofficeRouteFallback />}\n pending={<RoutePendingBar />}\n />\n </RoutingContext.Provider>\n );\n};\n\nexport const BackofficeProvider = (\n props: BackofficeProviderProps,\n): JSX.Element => {\n const basePath = normalizeAbsolutePath(props.basePath ?? '/');\n\n const entityManifest = useMemo(() => {\n return resolveEntityManifest(props.entityManifest, basePath);\n }, [basePath, props.entityManifest]);\n const entityRegistry = useMemo(() => {\n return createBackofficeEntityRegistry(entityManifest, { basePath });\n }, [basePath, entityManifest]);\n\n const graphQLConfig = props.graphql;\n const dashboards = useMemo(() => {\n return validateBackofficeDashboardRegistrations(props.dashboards);\n }, [props.dashboards]);\n\n useEffect(() => {\n const httpUrl = graphQLConfig.httpUrl ?? graphQLConfig.endpoint;\n const wsUrl = graphQLConfig.wsUrl ?? graphQLConfig.wsEndpoint;\n configureRelayEnvironment({\n httpUrl,\n wsUrl,\n getDataId: graphQLConfig.getDataId,\n logEvents: graphQLConfig.logEvents,\n getAuthHeaders: graphQLConfig.getAuthHeaders,\n });\n }, [\n graphQLConfig.endpoint,\n graphQLConfig.getAuthHeaders,\n graphQLConfig.getDataId,\n graphQLConfig.httpUrl,\n graphQLConfig.logEvents,\n graphQLConfig.wsEndpoint,\n graphQLConfig.wsUrl,\n ]);\n\n const mergedResources = useMemo(() => {\n return withBackofficeReactI18nResources(props.i18n?.resources ?? {});\n }, [props.i18n?.resources]);\n\n const i18nInstance = useMemo(() => {\n return props.i18n?.instance ?? createInstance();\n }, [props.i18n?.instance]);\n const [isI18nReady, setIsI18nReady] = useState(i18nInstance.isInitialized);\n\n useEffect(() => {\n let isCurrent = true;\n const markI18nReady = (): void => {\n if (isCurrent) {\n setIsI18nReady(true);\n }\n };\n\n i18nInstance.on('initialized', markI18nReady);\n if (i18nInstance.isInitialized) {\n markI18nReady();\n return () => {\n isCurrent = false;\n i18nInstance.off('initialized', markI18nReady);\n };\n }\n\n const readyCheck = globalThis.setTimeout(() => {\n if (i18nInstance.isInitialized) {\n markI18nReady();\n }\n }, 0);\n\n const initOptions = props.i18n?.initOptions ?? {};\n const defaultNs = initOptions.defaultNS ?? 'translations';\n const ns = initOptions.ns ?? ['backofficeReact', 'translations', 'ui'];\n createI18nInstance({\n resources: mergedResources,\n lng: props.i18n?.lng,\n fallbackLng: props.i18n?.fallbackLng,\n initOptions: {\n ...initOptions,\n defaultNS: defaultNs,\n ns,\n react: {\n useSuspense: false,\n ...initOptions.react,\n },\n },\n instance: i18nInstance,\n useLanguageDetector: props.i18n?.useLanguageDetector,\n detection: props.i18n?.detection,\n })\n .then(markI18nReady)\n .catch((error: unknown) => {\n markI18nReady();\n // eslint-disable-next-line no-console\n console.error(error);\n });\n\n return () => {\n isCurrent = false;\n globalThis.clearTimeout(readyCheck);\n i18nInstance.off('initialized', markI18nReady);\n };\n }, [\n i18nInstance,\n mergedResources,\n props.i18n?.initOptions,\n props.i18n?.detection,\n props.i18n?.fallbackLng,\n props.i18n?.lng,\n props.i18n?.useLanguageDetector,\n ]);\n\n const configValue = useMemo(() => {\n return {\n basePath,\n entities: entityManifest,\n entityManifest,\n entityRegistry,\n filterColumnAliases: props.filterColumnAliases,\n sidebar: props.sidebar,\n dashboard: props.dashboard,\n dashboards,\n auth: props.auth,\n graphql: props.graphql,\n };\n }, [\n basePath,\n props.auth,\n props.dashboard,\n dashboards,\n entityManifest,\n entityRegistry,\n props.filterColumnAliases,\n props.graphql,\n props.sidebar,\n ]);\n\n const routes = useMemo(() => {\n return createBackofficeRoutes({\n basePath,\n entityManifest,\n entityRegistry,\n sidebar: props.sidebar,\n auth: props.auth,\n dashboard: props.dashboard,\n dashboards,\n toolsOperationPage: props.toolsOperationPage,\n });\n }, [\n basePath,\n entityManifest,\n entityRegistry,\n props.auth,\n props.dashboard,\n dashboards,\n props.toolsOperationPage,\n props.sidebar,\n ]);\n\n let contentNode = <BackofficeStaticRouteFallback label=\"Loading...\" />;\n if (isI18nReady) {\n contentNode = (\n <BackofficeThemeProvider>\n <RelayProvider>\n <BackofficeConfigProvider value={configValue}>\n {props.overlay}\n <BackofficeListUiStateProvider>\n <RouterShell\n routes={routes}\n instrumentations={props.instrumentations}\n />\n </BackofficeListUiStateProvider>\n </BackofficeConfigProvider>\n </RelayProvider>\n </BackofficeThemeProvider>\n );\n }\n\n return (\n <StrictMode>\n <I18nextProvider i18n={i18nInstance}>{contentNode}</I18nextProvider>\n </StrictMode>\n );\n};\n\nexport default BackofficeProvider;\n"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { type JSX, type ReactNode } from 'react';
2
2
  import { type DataTableColumn, type GetRowId } from '@plumile/ui/components/data-table/DataTable.js';
3
3
  import type { BackofficeListState, BackofficeRuntimeResolvedListFacetConfig } from '@plumile/backoffice-core/types.js';
4
+ import type { BackofficeFilterDrawerState } from '../../../provider/BackofficeListUiStateContext.js';
4
5
  type RuntimeWhere = Record<string, unknown>;
5
6
  type RuntimeSort = string;
6
7
  type Props<RowView> = {
@@ -29,6 +30,7 @@ type Props<RowView> = {
29
30
  virtualize?: boolean;
30
31
  variant?: 'page' | 'embedded';
31
32
  showFilters?: boolean;
33
+ filterDrawerState?: BackofficeFilterDrawerState;
32
34
  };
33
35
  export declare const BackofficeEntityListScaffold: <RowView>(props: Props<RowView>) => JSX.Element | null;
34
36
  export default BackofficeEntityListScaffold;
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeEntityListScaffold.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/scaffolds/BackofficeEntityListScaffold.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAkBf,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,QAAQ,EACd,MAAM,gDAAgD,CAAC;AAWxD,OAAO,KAAK,EAEV,mBAAmB,EAEnB,wCAAwC,EAEzC,MAAM,mCAAmC,CAAC;AA+H3C,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC5C,KAAK,WAAW,GAAG,MAAM,CAAC;AAE1B,KAAK,KAAK,CAAC,OAAO,IAAI;IACpB,MAAM,EAAE,wCAAwC,CAAC;IACjD,KAAK,EAAE,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IACtD,SAAS,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,KAAK,IAAI,CAAC;IAC1E,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5B,OAAO,EAAE,SAAS,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,OAAO,EAClD,OAAO,KAAK,CAAC,OAAO,CAAC,KACpB,GAAG,CAAC,OAAO,GAAG,IA48BhB,CAAC;AAEF,eAAe,4BAA4B,CAAC"}
1
+ {"version":3,"file":"BackofficeEntityListScaffold.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/scaffolds/BackofficeEntityListScaffold.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAmBf,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,QAAQ,EACd,MAAM,gDAAgD,CAAC;AAWxD,OAAO,KAAK,EAEV,mBAAmB,EAEnB,wCAAwC,EAEzC,MAAM,mCAAmC,CAAC;AAc3C,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mDAAmD,CAAC;AAkIrG,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC5C,KAAK,WAAW,GAAG,MAAM,CAAC;AAE1B,KAAK,KAAK,CAAC,OAAO,IAAI;IACpB,MAAM,EAAE,wCAAwC,CAAC;IACjD,KAAK,EAAE,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IACtD,SAAS,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,KAAK,IAAI,CAAC;IAC1E,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5B,OAAO,EAAE,SAAS,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,2BAA2B,CAAC;CACjD,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,OAAO,EAClD,OAAO,KAAK,CAAC,OAAO,CAAC,KACpB,GAAG,CAAC,OAAO,GAAG,IA0jChB,CAAC;AAEF,eAAe,4BAA4B,CAAC"}
@@ -1,5 +1,7 @@
1
1
  export declare const controlsRow: string;
2
2
  export declare const filterInput: string;
3
+ export declare const entityIdListFilter: string;
4
+ export declare const entityIdListTags: string;
3
5
  export declare const embeddedContainer: string;
4
6
  export declare const tableHost: string;
5
7
  export declare const refreshingIndicator: string;
@@ -1 +1 @@
1
- {"version":3,"file":"backofficeEntityListScaffold.css.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/scaffolds/backofficeEntityListScaffold.css.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,QAKtB,CAAC;AAEH,eAAO,MAAM,WAAW,QAMtB,CAAC;AAEH,eAAO,MAAM,iBAAiB,QAI5B,CAAC;AAEH,eAAO,MAAM,SAAS,QAKpB,CAAC;AAEH,eAAO,MAAM,mBAAmB,QAgB9B,CAAC;AAEH,eAAO,MAAM,cAAc,QAIzB,CAAC"}
1
+ {"version":3,"file":"backofficeEntityListScaffold.css.d.ts","sourceRoot":"","sources":["../../../../../src/components/backoffice/scaffolds/backofficeEntityListScaffold.css.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,QAKtB,CAAC;AAEH,eAAO,MAAM,WAAW,QAMtB,CAAC;AAEH,eAAO,MAAM,kBAAkB,QAK7B,CAAC;AAEH,eAAO,MAAM,gBAAgB,QAM3B,CAAC;AAEH,eAAO,MAAM,iBAAiB,QAI5B,CAAC;AAEH,eAAO,MAAM,SAAS,QAKpB,CAAC;AAEH,eAAO,MAAM,mBAAmB,QAgB9B,CAAC;AAEH,eAAO,MAAM,cAAc,QAIzB,CAAC"}
@@ -300,6 +300,7 @@ export declare const backofficeReactI18nResources: {
300
300
  changeFilterValue: string;
301
301
  clearFilter: string;
302
302
  filterBy: string;
303
+ removeFilterValue: string;
303
304
  };
304
305
  all: string;
305
306
  boolean: {
@@ -317,6 +318,8 @@ export declare const backofficeReactI18nResources: {
317
318
  sections: {
318
319
  default: string;
319
320
  };
321
+ selectedEntities_one: string;
322
+ selectedEntities_other: string;
320
323
  trigger: string;
321
324
  triggerWithCount_one: string;
322
325
  triggerWithCount_other: string;
@@ -775,6 +778,7 @@ export declare const backofficeReactI18nResources: {
775
778
  changeFilterValue: string;
776
779
  clearFilter: string;
777
780
  filterBy: string;
781
+ removeFilterValue: string;
778
782
  };
779
783
  all: string;
780
784
  boolean: {
@@ -792,6 +796,9 @@ export declare const backofficeReactI18nResources: {
792
796
  sections: {
793
797
  default: string;
794
798
  };
799
+ selectedEntities_one: string;
800
+ selectedEntities_many: string;
801
+ selectedEntities_other: string;
795
802
  trigger: string;
796
803
  triggerWithCount_one: string;
797
804
  triggerWithCount_many: string;
@@ -1 +1 @@
1
- {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../src/i18n/resources.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,SAAS,CAAC;AAI1D,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG/B,CAAC;AAEX,MAAM,MAAM,4BAA4B,GAAG,OAAO,4BAA4B,CAAC;AAsB/E,wBAAgB,gCAAgC,CAC9C,YAAY,GAAE,QAAa,GAC1B,QAAQ,CAsBV"}
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../src/i18n/resources.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,SAAS,CAAC;AAI1D,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG/B,CAAC;AAEX,MAAM,MAAM,4BAA4B,GAAG,OAAO,4BAA4B,CAAC;AAsB/E,wBAAgB,gCAAgC,CAC9C,YAAY,GAAE,QAAa,GAC1B,QAAQ,CAsBV"}
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeEntityListDataPage.d.ts","sourceRoot":"","sources":["../../../src/pages/BackofficeEntityListDataPage.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EAMT,MAAM,OAAO,CAAC;AAOf,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAczF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,QAAQ,EAAE,+BAA+B,CAAC;CAC3C,CAAC;AAgJF,eAAO,MAAM,4BAA4B,GAAI,eAE1C,iCAAiC,KAAG,GAAG,CAAC,OAAO,GAAG,IA8GpD,CAAC;AAEF,eAAe,4BAA4B,CAAC"}
1
+ {"version":3,"file":"BackofficeEntityListDataPage.d.ts","sourceRoot":"","sources":["../../../src/pages/BackofficeEntityListDataPage.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EAMT,MAAM,OAAO,CAAC;AAQf,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAczF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,QAAQ,EAAE,+BAA+B,CAAC;CAC3C,CAAC;AA8JF,eAAO,MAAM,4BAA4B,GAAI,eAE1C,iCAAiC,KAAG,GAAG,CAAC,OAAO,GAAG,IAgHpD,CAAC;AAEF,eAAe,4BAA4B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeEntityListPage.d.ts","sourceRoot":"","sources":["../../../src/pages/BackofficeEntityListPage.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,GAAG,EACR,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EACV,4BAA4B,EAC5B,iCAAiC,EACjC,wCAAwC,EAEzC,MAAM,mCAAmC,CAAC;AAgC3C,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,cAAc,EAAE,4BAA4B,CAAC;IAC7C,MAAM,EAAE,wCAAwC,CAAC;IACjD,QAAQ,EAAE,iCAAiC,CAAC;CAC7C,CAAC;AAmSF,eAAO,MAAM,wBAAwB,GAAI,uCAItC,6BAA6B,KAAG,GAAG,CAAC,OAAO,GAAG,IAYhD,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
1
+ {"version":3,"file":"BackofficeEntityListPage.d.ts","sourceRoot":"","sources":["../../../src/pages/BackofficeEntityListPage.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,GAAG,EACR,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EACV,4BAA4B,EAC5B,iCAAiC,EACjC,wCAAwC,EAEzC,MAAM,mCAAmC,CAAC;AAoC3C,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,cAAc,EAAE,4BAA4B,CAAC;IAC7C,MAAM,EAAE,wCAAwC,CAAC;IACjD,QAAQ,EAAE,iCAAiC,CAAC;CAC7C,CAAC;AA0SF,eAAO,MAAM,wBAAwB,GAAI,uCAItC,6BAA6B,KAAG,GAAG,CAAC,OAAO,GAAG,IAYhD,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { type JSX } from 'react';
2
2
  import { type DataTableColumn, type GetRowId } from '@plumile/ui/components/data-table/DataTable.js';
3
3
  import type { useBackofficeListUrlState } from '../hooks/useBackofficeListUrlState.js';
4
+ import type { BackofficeFilterDrawerState } from '../provider/BackofficeListUiStateContext.js';
4
5
  import type { ConnectionListConfig } from './BackofficeEntityListPage.helpers.js';
5
6
  export type BackofficeEntityListRouteContextValue = {
6
7
  config: ConnectionListConfig;
@@ -12,6 +13,7 @@ export type BackofficeEntityListRouteContextValue = {
12
13
  getRowId: GetRowId<unknown>;
13
14
  countFetchKey: number;
14
15
  bumpCountFetchKey: () => void;
16
+ filterDrawerState: BackofficeFilterDrawerState;
15
17
  registerRefresh: (refresh: (() => void) | null) => void;
16
18
  };
17
19
  export declare const BackofficeEntityListRouteProvider: ({ children, value, }: {
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeEntityListRouteContext.d.ts","sourceRoot":"","sources":["../../../src/pages/BackofficeEntityListRouteContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,QAAQ,EACd,MAAM,gDAAgD,CAAC;AAExD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAElF,MAAM,MAAM,qCAAqC,GAAG;IAClD,MAAM,EAAE,oBAAoB,CAAC;IAC7B,KAAK,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,OAAO,CAAC,CAAC;IAC7D,SAAS,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,WAAW,CAAC,CAAC;IACrE,aAAa,EAAE,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;IACvC,OAAO,EAAE,SAAS,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,eAAe,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;CACzD,CAAC;AAKF,eAAO,MAAM,iCAAiC,GAAI,sBAG/C;IACD,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,KAAK,EAAE,qCAAqC,CAAC;CAC9C,KAAG,GAAG,CAAC,OAMP,CAAC;AAEF,eAAO,MAAM,mCAAmC,QAC1C,qCAMH,CAAC"}
1
+ {"version":3,"file":"BackofficeEntityListRouteContext.d.ts","sourceRoot":"","sources":["../../../src/pages/BackofficeEntityListRouteContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,QAAQ,EACd,MAAM,gDAAgD,CAAC;AAExD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAC;AAC/F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAElF,MAAM,MAAM,qCAAqC,GAAG;IAClD,MAAM,EAAE,oBAAoB,CAAC;IAC7B,KAAK,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,OAAO,CAAC,CAAC;IAC7D,SAAS,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,WAAW,CAAC,CAAC;IACrE,aAAa,EAAE,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;IACvC,OAAO,EAAE,SAAS,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,iBAAiB,EAAE,2BAA2B,CAAC;IAC/C,eAAe,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;CACzD,CAAC;AAKF,eAAO,MAAM,iCAAiC,GAAI,sBAG/C;IACD,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,KAAK,EAAE,qCAAqC,CAAC;CAC9C,KAAG,GAAG,CAAC,OAMP,CAAC;AAEF,eAAO,MAAM,mCAAmC,QAC1C,qCAMH,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { type JSX, type ReactNode } from 'react';
2
+ import type { BackofficeEntityManifestItem } from '@plumile/backoffice-core/types.js';
3
+ export type BackofficeEntityListUiStateKey = {
4
+ readonly kind: 'entity-list';
5
+ readonly entityId: BackofficeEntityManifestItem['id'];
6
+ };
7
+ export type BackofficeListUiStateKey = BackofficeEntityListUiStateKey;
8
+ export type BackofficeFilterDrawerState = {
9
+ readonly isOpen: boolean;
10
+ readonly search: string;
11
+ readonly setOpen: (isOpen: boolean) => void;
12
+ readonly setSearch: (search: string) => void;
13
+ readonly reset: () => void;
14
+ };
15
+ export declare const createBackofficeEntityListUiStateKey: (entityId: BackofficeEntityManifestItem["id"]) => BackofficeEntityListUiStateKey;
16
+ export declare const serializeBackofficeListUiStateKey: (key: BackofficeListUiStateKey) => string;
17
+ export declare const BackofficeListUiStateProvider: ({ children, }: {
18
+ children: ReactNode;
19
+ }) => JSX.Element;
20
+ export declare const useBackofficeListFilterDrawerState: (key: BackofficeListUiStateKey) => BackofficeFilterDrawerState;
21
+ //# sourceMappingURL=BackofficeListUiStateContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackofficeListUiStateContext.d.ts","sourceRoot":"","sources":["../../../src/provider/BackofficeListUiStateContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,GAAG,EACR,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAEtF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,4BAA4B,CAAC,IAAI,CAAC,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,8BAA8B,CAAC;AAEtE,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;CAC5B,CAAC;AAsJF,eAAO,MAAM,oCAAoC,GAC/C,UAAU,4BAA4B,CAAC,IAAI,CAAC,KAC3C,8BAKF,CAAC;AAEF,eAAO,MAAM,iCAAiC,GAC5C,KAAK,wBAAwB,KAC5B,MAEF,CAAC;AAEF,eAAO,MAAM,6BAA6B,GAAI,eAE3C;IACD,QAAQ,EAAE,SAAS,CAAC;CACrB,KAAG,GAAG,CAAC,OAcP,CAAC;AAEF,eAAO,MAAM,kCAAkC,GAC7C,KAAK,wBAAwB,KAC5B,2BAuDF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeProvider.d.ts","sourceRoot":"","sources":["../../../src/provider/BackofficeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,GAAG,EACT,MAAM,OAAO,CAAC;AAwBf,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AA6I1D,eAAO,MAAM,kBAAkB,GAC7B,OAAO,uBAAuB,KAC7B,GAAG,CAAC,OAkLN,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"BackofficeProvider.d.ts","sourceRoot":"","sources":["../../../src/provider/BackofficeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,GAAG,EACT,MAAM,OAAO,CAAC;AAwBf,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AA8I1D,eAAO,MAAM,kBAAkB,GAC7B,OAAO,uBAAuB,KAC7B,GAAG,CAAC,OAoLN,CAAC;AAEF,eAAe,kBAAkB,CAAC"}