@plumile/backoffice-react 0.1.154 → 0.1.157

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 (72) hide show
  1. package/lib/esm/auth/login/synchronizeAuthStatusQuery.js.map +1 -1
  2. package/lib/esm/components/backoffice/actions/BackofficeEntityActionFormDialog.js.map +1 -1
  3. package/lib/esm/components/backoffice/columns/buildDataTableColumns.js +1 -0
  4. package/lib/esm/components/backoffice/columns/buildDataTableColumns.js.map +1 -1
  5. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationListBlock.js +1 -1
  6. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationListBlock.js.map +1 -1
  7. package/lib/esm/components/backoffice/detail/BackofficeRelationsSummaryGrid.js +1 -0
  8. package/lib/esm/components/backoffice/detail/BackofficeRelationsSummaryGrid.js.map +1 -1
  9. package/lib/esm/components/backoffice/detail/backofficeDetailRelationLink.css.js +0 -1
  10. package/lib/esm/components/backoffice/filters/BackofficeFilterAction.js +1 -0
  11. package/lib/esm/components/backoffice/filters/BackofficeFilterAction.js.map +1 -1
  12. package/lib/esm/components/backoffice/hub/BackofficeHubTemplate.js +1 -0
  13. package/lib/esm/components/backoffice/hub/BackofficeHubTemplate.js.map +1 -1
  14. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarBreadcrumb.js +1 -0
  15. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarBreadcrumb.js.map +1 -1
  16. package/lib/esm/components/backoffice/links/BackofficeInlineLink.js +15 -14
  17. package/lib/esm/components/backoffice/links/BackofficeInlineLink.js.map +1 -1
  18. package/lib/esm/components/backoffice/links/BackofficeLink.js +9 -8
  19. package/lib/esm/components/backoffice/links/BackofficeLink.js.map +1 -1
  20. package/lib/esm/components/backoffice/list/RowFlagsCell.css.js +1 -0
  21. package/lib/esm/components/backoffice/refs/BackofficeLazyEntityCount.js +31 -0
  22. package/lib/esm/components/backoffice/refs/BackofficeLazyEntityCount.js.map +1 -0
  23. package/lib/esm/components/backoffice/refs/BackofficeRelatedCountLink.js +36 -32
  24. package/lib/esm/components/backoffice/refs/BackofficeRelatedCountLink.js.map +1 -1
  25. package/lib/esm/i18n/locales/en/backofficeReact.js +0 -1
  26. package/lib/esm/i18n/locales/en/backofficeReact.js.map +1 -1
  27. package/lib/esm/i18n/locales/fr/backofficeReact.js +0 -1
  28. package/lib/esm/i18n/locales/fr/backofficeReact.js.map +1 -1
  29. package/lib/esm/index.js +33 -32
  30. package/lib/esm/pages/BackofficeEntityDetailLayoutPage.js +110 -10
  31. package/lib/esm/pages/BackofficeEntityDetailLayoutPage.js.map +1 -1
  32. package/lib/esm/pages/BackofficeEntityDetailPage.js +220 -283
  33. package/lib/esm/pages/BackofficeEntityDetailPage.js.map +1 -1
  34. package/lib/esm/pages/BackofficeEntityDetailPage.view-helpers.js +0 -1
  35. package/lib/esm/pages/BackofficeEntityDetailPage.view-helpers.js.map +1 -1
  36. package/lib/esm/pages/BackofficeEntityListPage.helpers.js +2 -2
  37. package/lib/esm/pages/BackofficeEntityListPage.helpers.js.map +1 -1
  38. package/lib/esm/pages/BackofficeEntityListPage.js +78 -267
  39. package/lib/esm/pages/BackofficeEntityListPage.js.map +1 -1
  40. package/lib/esm/pages/detail/BackofficeEntityDetailLayoutContext.js.map +1 -1
  41. package/lib/esm/pages/detail/buildTabsItems.js +1 -0
  42. package/lib/esm/pages/detail/buildTabsItems.js.map +1 -1
  43. package/lib/types/components/backoffice/columns/buildDataTableColumns.d.ts.map +1 -1
  44. package/lib/types/components/backoffice/detail/BackofficeDetailRelationListBlock.d.ts.map +1 -1
  45. package/lib/types/components/backoffice/detail/BackofficeRelationsSummaryGrid.d.ts +1 -1
  46. package/lib/types/components/backoffice/detail/BackofficeRelationsSummaryGrid.d.ts.map +1 -1
  47. package/lib/types/components/backoffice/filters/BackofficeFilterAction.d.ts.map +1 -1
  48. package/lib/types/components/backoffice/hub/BackofficeHubTemplate.d.ts.map +1 -1
  49. package/lib/types/components/backoffice/layout/breadcrumb/BackofficeTopbarBreadcrumb.d.ts.map +1 -1
  50. package/lib/types/components/backoffice/links/BackofficeInlineLink.d.ts +2 -1
  51. package/lib/types/components/backoffice/links/BackofficeInlineLink.d.ts.map +1 -1
  52. package/lib/types/components/backoffice/links/BackofficeLink.d.ts +2 -1
  53. package/lib/types/components/backoffice/links/BackofficeLink.d.ts.map +1 -1
  54. package/lib/types/components/backoffice/refs/BackofficeLazyEntityCount.d.ts +8 -0
  55. package/lib/types/components/backoffice/refs/BackofficeLazyEntityCount.d.ts.map +1 -0
  56. package/lib/types/components/backoffice/refs/BackofficeRelatedCountLink.d.ts +1 -1
  57. package/lib/types/components/backoffice/refs/BackofficeRelatedCountLink.d.ts.map +1 -1
  58. package/lib/types/i18n/resources.d.ts +0 -2
  59. package/lib/types/i18n/resources.d.ts.map +1 -1
  60. package/lib/types/index.d.ts +1 -0
  61. package/lib/types/index.d.ts.map +1 -1
  62. package/lib/types/pages/BackofficeEntityDetailLayoutPage.d.ts.map +1 -1
  63. package/lib/types/pages/BackofficeEntityDetailPage.d.ts.map +1 -1
  64. package/lib/types/pages/BackofficeEntityDetailPage.view-helpers.d.ts +2 -3
  65. package/lib/types/pages/BackofficeEntityDetailPage.view-helpers.d.ts.map +1 -1
  66. package/lib/types/pages/BackofficeEntityListPage.d.ts.map +1 -1
  67. package/lib/types/pages/BackofficeEntityListPage.helpers.d.ts +1 -6
  68. package/lib/types/pages/BackofficeEntityListPage.helpers.d.ts.map +1 -1
  69. package/lib/types/pages/detail/BackofficeEntityDetailLayoutContext.d.ts +7 -0
  70. package/lib/types/pages/detail/BackofficeEntityDetailLayoutContext.d.ts.map +1 -1
  71. package/lib/types/pages/detail/buildTabsItems.d.ts.map +1 -1
  72. package/package.json +11 -11
@@ -1,16 +1,116 @@
1
- import { BackofficeEntityDetailLayoutContextProvider as e } from "./detail/BackofficeEntityDetailLayoutContext.js";
2
- import { BackofficeRedirect as t } from "./BackofficeRedirect.js";
3
- import { Fragment as n, jsx as r } from "react/jsx-runtime";
4
- import * as i from "react-relay";
1
+ import { useBackofficeReactTranslation as e } from "../i18n/useBackofficeReactTranslation.js";
2
+ import { useBackofficeConfig as t } from "../provider/BackofficeConfigContext.js";
3
+ import { BackofficeDetailBadgeRow as n } from "../components/backoffice/detail/BackofficeDetailBadgeRow.js";
4
+ import { BackofficeRightPageLayout as r } from "../components/backoffice/layout/breadcrumb/BackofficeRightPageLayout.js";
5
+ import { buildEntityDetailBreadcrumb as i } from "../components/backoffice/layout/breadcrumb/buildBreadcrumbs.js";
6
+ import { resolveVisibleDetailPages as a } from "./detail/pageResolution.js";
7
+ import { headerBlock as o, headerMeta as s, headerMetaList as c } from "./backofficeEntityDetailPage.css.js";
8
+ import { resolveHeaderItems as l } from "./BackofficeEntityDetailPage.view-helpers.js";
9
+ import { BackofficeEntityDetailLayoutContextProvider as u } from "./detail/BackofficeEntityDetailLayoutContext.js";
10
+ import { buildTabsItems as d } from "./detail/buildTabsItems.js";
11
+ import { BackofficeRedirect as f } from "./BackofficeRedirect.js";
12
+ import { Fragment as p, jsx as m, jsxs as h } from "react/jsx-runtime";
13
+ import { useTranslation as g } from "react-i18next";
14
+ import * as _ from "react-relay";
15
+ import { FormattedDate as v } from "@plumile/ui/atomic/atoms/formatted-date/FormattedDate.js";
16
+ import { BACKOFFICE_DATE_TIME_OPTIONS as y } from "@plumile/backoffice-core/constants.js";
17
+ import b from "@plumile/router/routing/Link.js";
18
+ import { Tag as x } from "@plumile/ui/backoffice/atoms/tag/Tag.js";
19
+ import { BackofficePageHeader as S } from "@plumile/ui/backoffice/molecules/backoffice_page_header/BackofficePageHeader.js";
20
+ import { Tabs as C } from "@plumile/ui/atomic/molecules/tabs/Tabs.js";
21
+ import { DetailPageTemplate as w } from "@plumile/ui/backoffice/templates/detail_page_template/DetailPageTemplate.js";
22
+ import T from "@plumile/router/routing/useLocation.js";
23
+ import { BackofficeKeyValueList as E } from "@plumile/ui/backoffice/molecules/backoffice_key_value_list/BackofficeKeyValueList.js";
5
24
  //#region src/pages/BackofficeEntityDetailLayoutPage.tsx
6
- var { useFragment: a, usePreloadedQuery: o } = i, s = ({ config: i, prepared: s, children: c }) => {
7
- let l = o(i.layoutPage.query, s.layoutQuery), u = i.layoutPage.resolveNode(l, { id: s.id }), d = a(i.layoutPage.fragment, u);
8
- return u == null ? /* @__PURE__ */ r(t, { to: i.routes.list }) : /* @__PURE__ */ r(e, {
9
- value: { layoutView: i.layoutPage.toView(d) },
10
- children: /* @__PURE__ */ r(n, { children: c })
25
+ var { useFragment: D, usePreloadedQuery: O } = _, k = (e) => e.trim().replace(/^\/+|\/+$/g, ""), A = (e, t, n) => [n.pages.mainPage, ...n.pages.subPages ?? []].find((r) => e === n.routes.detailPage(t, r.id))?.path ?? "", j = ({ config: _, prepared: j, children: M }) => {
26
+ let { t: N } = g(), { t: P } = e(), { entities: F } = t(), { pathname: I } = T(), L = O(_.layoutPage.query, j.layoutQuery), R = _.layoutPage.resolveNode(L, { id: j.id }), z = D(_.layoutPage.fragment, R);
27
+ if (R == null) return /* @__PURE__ */ m(f, { to: _.routes.list });
28
+ let B = _.layoutPage.toView(z), V = A(I, j.id, _), H = a({
29
+ mainPage: _.pages.mainPage,
30
+ subPages: _.pages.subPages,
31
+ activePagePath: V,
32
+ node: B
33
+ });
34
+ if (!H.hasVisiblePages || H.activePage == null) return /* @__PURE__ */ m(f, { to: _.routes.list });
35
+ let { activePage: U } = H;
36
+ if (V !== "" && k(U.path) !== k(V)) return /* @__PURE__ */ m(f, { to: _.routes.detailPage(j.id, U.id) });
37
+ let W = d({
38
+ pages: H.pages,
39
+ id: j.id,
40
+ tApp: N,
41
+ detailPageHref: _.routes.detailPage
42
+ }), G = l(_.header, B, {
43
+ tApp: N,
44
+ t: P,
45
+ resolveEntityHref: (e, t) => {
46
+ let n = F[e];
47
+ return n == null ? null : n.routes.detail(t);
48
+ },
49
+ renderLink: (e, t) => /* @__PURE__ */ m(b, {
50
+ to: e,
51
+ preloadOnMouseEnter: !0,
52
+ children: t
53
+ }),
54
+ renderDate: (e, t) => /* @__PURE__ */ m(v, {
55
+ value: e,
56
+ options: y,
57
+ fallback: t
58
+ }),
59
+ renderTag: (e, t) => /* @__PURE__ */ m(x, {
60
+ tone: e,
61
+ children: t
62
+ }),
63
+ renderBadgeRow: (e) => /* @__PURE__ */ m(n, { items: e })
64
+ }), K = i({
65
+ config: _,
66
+ tApp: N,
67
+ entityId: j.id,
68
+ layoutView: B,
69
+ pageLabel: U.label(N),
70
+ pageId: U.id
71
+ }), q;
72
+ (G.status != null || G.badges != null) && (q = /* @__PURE__ */ h("div", {
73
+ className: s,
74
+ children: [G.status, G.badges]
75
+ }));
76
+ let J = null;
77
+ G.items != null && G.items.length > 0 && (J = /* @__PURE__ */ m("div", {
78
+ className: c,
79
+ children: /* @__PURE__ */ m(E, { items: G.items })
80
+ }));
81
+ let Y = /* @__PURE__ */ h("div", {
82
+ className: o,
83
+ children: [/* @__PURE__ */ m(S, {
84
+ title: G.title,
85
+ subtitle: G.subtitle,
86
+ meta: q
87
+ }), J]
88
+ }), X = null;
89
+ return H.pages.length > 1 && (X = /* @__PURE__ */ m(C, {
90
+ items: W,
91
+ activeId: U.id,
92
+ variant: "underline"
93
+ })), /* @__PURE__ */ m(u, {
94
+ value: {
95
+ activePage: U,
96
+ config: _,
97
+ entityId: j.id,
98
+ layoutView: B,
99
+ tabsItems: W,
100
+ visiblePages: H.pages
101
+ },
102
+ children: /* @__PURE__ */ m(r, {
103
+ breadcrumb: K,
104
+ children: /* @__PURE__ */ m(w, {
105
+ headerNode: Y,
106
+ tabsNode: X,
107
+ headerDensity: "compact",
108
+ children: /* @__PURE__ */ m(p, { children: M })
109
+ })
110
+ })
11
111
  });
12
112
  };
13
113
  //#endregion
14
- export { s as BackofficeEntityDetailLayoutPage, s as default };
114
+ export { j as BackofficeEntityDetailLayoutPage, j as default };
15
115
 
16
116
  //# sourceMappingURL=BackofficeEntityDetailLayoutPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeEntityDetailLayoutPage.js","names":[],"sources":["../../../src/pages/BackofficeEntityDetailLayoutPage.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\nimport * as ReactRelay from 'react-relay';\n\nimport type {\n BackofficeEntityManifestItem,\n BackofficePreparedDetailLayoutRoute,\n BackofficeResolvedDetailLayoutFacetConfig,\n} from '@plumile/backoffice-core/types.js';\nimport { BackofficeEntityDetailLayoutContextProvider } from './detail/BackofficeEntityDetailLayoutContext.js';\nimport { BackofficeRedirect } from './BackofficeRedirect.js';\n\nconst { useFragment, usePreloadedQuery } = ReactRelay;\n\nexport type BackofficeEntityDetailLayoutPageProps = {\n entityManifest: BackofficeEntityManifestItem;\n config: BackofficeResolvedDetailLayoutFacetConfig;\n prepared: BackofficePreparedDetailLayoutRoute;\n children?: ReactNode;\n};\n\nexport const BackofficeEntityDetailLayoutPage = ({\n config,\n prepared,\n children,\n}: BackofficeEntityDetailLayoutPageProps): JSX.Element => {\n const layoutQueryData = usePreloadedQuery(\n config.layoutPage.query,\n prepared.layoutQuery,\n );\n const layoutNodeRef = config.layoutPage.resolveNode(layoutQueryData, {\n id: prepared.id,\n });\n\n const layoutNode = useFragment(\n config.layoutPage.fragment,\n layoutNodeRef as never,\n );\n\n if (layoutNodeRef == null) {\n return <BackofficeRedirect to={config.routes.list} />;\n }\n\n const layoutView = config.layoutPage.toView(layoutNode);\n\n return (\n <BackofficeEntityDetailLayoutContextProvider\n value={{\n layoutView,\n }}\n >\n <>{children}</>\n </BackofficeEntityDetailLayoutContextProvider>\n );\n};\n\nexport default BackofficeEntityDetailLayoutPage;\n"],"mappings":";;;;;AAWA,IAAM,EAAE,aAAA,GAAa,mBAAA,MAAsB,GAS9B,KAAoC,EAC/C,WACA,aACA,kBACwD;CACxD,IAAM,IAAkB,EACtB,EAAO,WAAW,OAClB,EAAS,WACX,GACM,IAAgB,EAAO,WAAW,YAAY,GAAiB,EACnE,IAAI,EAAS,GACf,CAAC,GAEK,IAAa,EACjB,EAAO,WAAW,UAClB,CACF;CAQA,OANI,KAAiB,OACZ,kBAAC,GAAD,EAAoB,IAAI,EAAO,OAAO,KAAO,CAAA,IAMpD,kBAAC,GAAD;EACE,OAAO,EACL,YALa,EAAO,WAAW,OAAO,CAKtC,EACF;YAEA,kBAAA,GAAA,EAAG,YAAW,CAAA;CAC6B,CAAA;AAEjD"}
1
+ {"version":3,"file":"BackofficeEntityDetailLayoutPage.js","names":[],"sources":["../../../src/pages/BackofficeEntityDetailLayoutPage.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport * as ReactRelay from 'react-relay';\nimport Link from '@plumile/router/routing/Link.js';\nimport useLocation from '@plumile/router/routing/useLocation.js';\n\nimport { BACKOFFICE_DATE_TIME_OPTIONS } from '@plumile/backoffice-core/constants.js';\nimport type {\n BackofficeEntityManifestItem,\n BackofficePreparedDetailLayoutRoute,\n BackofficeResolvedDetailLayoutFacetConfig,\n} from '@plumile/backoffice-core/types.js';\nimport { FormattedDate } from '@plumile/ui/atomic/atoms/formatted-date/FormattedDate.js';\nimport { Tabs } from '@plumile/ui/atomic/molecules/tabs/Tabs.js';\nimport { Tag } from '@plumile/ui/backoffice/atoms/tag/Tag.js';\nimport { BackofficeKeyValueList } from '@plumile/ui/backoffice/molecules/backoffice_key_value_list/BackofficeKeyValueList.js';\nimport { BackofficePageHeader } from '@plumile/ui/backoffice/molecules/backoffice_page_header/BackofficePageHeader.js';\nimport { DetailPageTemplate } from '@plumile/ui/backoffice/templates/detail_page_template/DetailPageTemplate.js';\n\nimport { BackofficeDetailBadgeRow } from '../components/backoffice/detail/BackofficeDetailBadgeRow.js';\nimport { BackofficeRightPageLayout } from '../components/backoffice/layout/breadcrumb/BackofficeRightPageLayout.js';\nimport { buildEntityDetailBreadcrumb } from '../components/backoffice/layout/breadcrumb/buildBreadcrumbs.js';\nimport { useBackofficeReactTranslation } from '../i18n/useBackofficeReactTranslation.js';\nimport { useBackofficeConfig } from '../provider/BackofficeConfigContext.js';\nimport * as pageStyles from './backofficeEntityDetailPage.css.js';\nimport { resolveHeaderItems } from './BackofficeEntityDetailPage.view-helpers.js';\nimport { BackofficeEntityDetailLayoutContextProvider } from './detail/BackofficeEntityDetailLayoutContext.js';\nimport { buildTabsItems } from './detail/buildTabsItems.js';\nimport { resolveVisibleDetailPages } from './detail/pageResolution.js';\nimport { BackofficeRedirect } from './BackofficeRedirect.js';\n\nconst { useFragment, usePreloadedQuery } = ReactRelay;\n\nconst normalizePath = (value: string): string => {\n return value.trim().replace(/^\\/+|\\/+$/g, '');\n};\n\nconst resolveActivePagePath = (\n pathname: string,\n id: string,\n config: BackofficeResolvedDetailLayoutFacetConfig,\n): string => {\n const pages = [config.pages.mainPage, ...(config.pages.subPages ?? [])];\n const activePage = pages.find((page) => {\n return pathname === config.routes.detailPage(id, page.id);\n });\n return activePage?.path ?? '';\n};\n\nexport type BackofficeEntityDetailLayoutPageProps = {\n entityManifest: BackofficeEntityManifestItem;\n config: BackofficeResolvedDetailLayoutFacetConfig;\n prepared: BackofficePreparedDetailLayoutRoute;\n children?: ReactNode;\n};\n\nexport const BackofficeEntityDetailLayoutPage = ({\n config,\n prepared,\n children,\n}: BackofficeEntityDetailLayoutPageProps): JSX.Element => {\n const { t: tApp } = useTranslation();\n const { t } = useBackofficeReactTranslation();\n const { entities } = useBackofficeConfig();\n const { pathname } = useLocation();\n const layoutQueryData = usePreloadedQuery(\n config.layoutPage.query,\n prepared.layoutQuery,\n );\n const layoutNodeRef = config.layoutPage.resolveNode(layoutQueryData, {\n id: prepared.id,\n });\n\n const layoutNode = useFragment(\n config.layoutPage.fragment,\n layoutNodeRef as never,\n );\n\n if (layoutNodeRef == null) {\n return <BackofficeRedirect to={config.routes.list} />;\n }\n\n const layoutView = config.layoutPage.toView(layoutNode);\n const activePagePath = resolveActivePagePath(pathname, prepared.id, config);\n const resolvedPages = resolveVisibleDetailPages({\n mainPage: config.pages.mainPage,\n subPages: config.pages.subPages,\n activePagePath,\n node: layoutView as never,\n });\n\n if (!resolvedPages.hasVisiblePages || resolvedPages.activePage == null) {\n return <BackofficeRedirect to={config.routes.list} />;\n }\n\n const { activePage } = resolvedPages;\n if (\n activePagePath !== '' &&\n normalizePath(activePage.path) !== normalizePath(activePagePath)\n ) {\n return (\n <BackofficeRedirect\n to={config.routes.detailPage(prepared.id, activePage.id)}\n />\n );\n }\n\n const tabsItems = buildTabsItems({\n pages: resolvedPages.pages,\n id: prepared.id,\n tApp,\n detailPageHref: config.routes.detailPage,\n });\n const resolveEntityHref = (entityId: string, refId: string) => {\n const entityConfig = entities[entityId];\n if (entityConfig == null) {\n return null;\n }\n return entityConfig.routes.detail(refId);\n };\n const header = resolveHeaderItems(config.header, layoutView, {\n tApp,\n t,\n resolveEntityHref,\n renderLink: (href, label) => {\n return (\n <Link to={href} preloadOnMouseEnter>\n {label}\n </Link>\n );\n },\n renderDate: (value, fallback) => {\n return (\n <FormattedDate\n value={value}\n options={BACKOFFICE_DATE_TIME_OPTIONS}\n fallback={fallback}\n />\n );\n },\n renderTag: (tone, label) => {\n return <Tag tone={tone}>{label}</Tag>;\n },\n renderBadgeRow: (items) => {\n return <BackofficeDetailBadgeRow items={items} />;\n },\n });\n const breadcrumb = buildEntityDetailBreadcrumb({\n config,\n tApp,\n entityId: prepared.id,\n layoutView,\n pageLabel: activePage.label(tApp),\n pageId: activePage.id,\n });\n let headerMetaNode: JSX.Element | undefined;\n if (header.status != null || header.badges != null) {\n headerMetaNode = (\n <div className={pageStyles.headerMeta}>\n {header.status}\n {header.badges}\n </div>\n );\n }\n let headerItemsNode: JSX.Element | null = null;\n if (header.items != null && header.items.length > 0) {\n headerItemsNode = (\n <div className={pageStyles.headerMetaList}>\n <BackofficeKeyValueList items={header.items} />\n </div>\n );\n }\n const headerNode = (\n <div className={pageStyles.headerBlock}>\n <BackofficePageHeader\n title={header.title}\n subtitle={header.subtitle}\n meta={headerMetaNode}\n />\n {headerItemsNode}\n </div>\n );\n let tabsNode: JSX.Element | null = null;\n if (resolvedPages.pages.length > 1) {\n tabsNode = (\n <Tabs items={tabsItems} activeId={activePage.id} variant=\"underline\" />\n );\n }\n\n return (\n <BackofficeEntityDetailLayoutContextProvider\n value={{\n activePage,\n config,\n entityId: prepared.id,\n layoutView,\n tabsItems,\n visiblePages: resolvedPages.pages,\n }}\n >\n <BackofficeRightPageLayout breadcrumb={breadcrumb}>\n <DetailPageTemplate\n headerNode={headerNode}\n tabsNode={tabsNode}\n headerDensity=\"compact\"\n >\n <>{children}</>\n </DetailPageTemplate>\n </BackofficeRightPageLayout>\n </BackofficeEntityDetailLayoutContextProvider>\n );\n};\n\nexport default BackofficeEntityDetailLayoutPage;\n"],"mappings":"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"}