@plumile/backoffice-react 0.1.105 → 0.1.106

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 (633) hide show
  1. package/lib/esm/_virtual/_rolldown/runtime.js +7 -0
  2. package/lib/esm/auth/AuthRefreshNotice.js +38 -0
  3. package/lib/esm/auth/AuthRefreshNotice.js.map +1 -0
  4. package/lib/esm/auth/TotpQrCode.js +28 -0
  5. package/lib/esm/auth/TotpQrCode.js.map +1 -0
  6. package/lib/esm/auth/authRefreshNotice.css.js +7 -0
  7. package/lib/esm/auth/authRefreshNotice.css.js.map +1 -0
  8. package/lib/esm/{AuthPanel-BaIRFGbX.js → auth/login/AuthPanel.js} +7 -7
  9. package/lib/esm/auth/login/AuthPanel.js.map +1 -0
  10. package/lib/esm/auth/login/EmailCapturePanel.js +50 -0
  11. package/lib/esm/auth/login/EmailCapturePanel.js.map +1 -0
  12. package/lib/esm/auth/login/LoginFlow.js +130 -0
  13. package/lib/esm/auth/login/LoginFlow.js.map +1 -0
  14. package/lib/esm/auth/login/MethodChooser.js +49 -0
  15. package/lib/esm/auth/login/MethodChooser.js.map +1 -0
  16. package/lib/esm/auth/login/MfaChallengeForm.js +80 -0
  17. package/lib/esm/auth/login/MfaChallengeForm.js.map +1 -0
  18. package/lib/esm/auth/login/OidcButtons.js +29 -0
  19. package/lib/esm/auth/login/OidcButtons.js.map +1 -0
  20. package/lib/esm/auth/login/PasskeyLoginForm.js +81 -0
  21. package/lib/esm/auth/login/PasskeyLoginForm.js.map +1 -0
  22. package/lib/esm/auth/login/PasswordLoginPanel.js +37 -0
  23. package/lib/esm/auth/login/PasswordLoginPanel.js.map +1 -0
  24. package/lib/esm/auth/login/loginPage.css.js +7 -0
  25. package/lib/esm/auth/login/loginPage.css.js.map +1 -0
  26. package/lib/esm/auth/login/synchronizeAuthStatusQuery.js +10 -0
  27. package/lib/esm/auth/login/synchronizeAuthStatusQuery.js.map +1 -0
  28. package/lib/esm/{AcceptInvitationScreen-VaWXQPHp.js → auth/pages/AcceptInvitationScreen.js} +11 -11
  29. package/lib/esm/auth/pages/AcceptInvitationScreen.js.map +1 -0
  30. package/lib/esm/{PasswordResetCompleteScreen-Cgg96DPo.js → auth/pages/PasswordResetCompleteScreen.js} +10 -10
  31. package/lib/esm/auth/pages/PasswordResetCompleteScreen.js.map +1 -0
  32. package/lib/esm/{PasswordResetRequestScreen-I1nFvGLd.js → auth/pages/PasswordResetRequestScreen.js} +10 -10
  33. package/lib/esm/auth/pages/PasswordResetRequestScreen.js.map +1 -0
  34. package/lib/esm/{VerifyEmailScreen-Br5KyHjg.js → auth/pages/VerifyEmailScreen.js} +7 -7
  35. package/lib/esm/auth/pages/VerifyEmailScreen.js.map +1 -0
  36. package/lib/esm/{BackofficeEntityActionFormDialog-DrZxuytz.js → components/backoffice/actions/BackofficeEntityActionFormDialog.js} +123 -121
  37. package/lib/esm/{BackofficeEntityActionFormDialog-DrZxuytz.js.map → components/backoffice/actions/BackofficeEntityActionFormDialog.js.map} +1 -1
  38. package/lib/esm/components/backoffice/actions/LazyBackofficeEntityActionFormDialog.js +26 -0
  39. package/lib/esm/components/backoffice/actions/LazyBackofficeEntityActionFormDialog.js.map +1 -0
  40. package/lib/esm/{backofficeEntityActionFormDialog.css-DJgEKwaA.js → components/backoffice/actions/backofficeEntityActionFormDialog.css.js} +3 -2
  41. package/lib/esm/{backofficeEntityActionFormDialog.css-DJgEKwaA.js.map → components/backoffice/actions/backofficeEntityActionFormDialog.css.js.map} +1 -1
  42. package/lib/esm/{toastViewAction-DQYlcGOL.js → components/backoffice/actions/toastViewAction.js} +2 -2
  43. package/lib/esm/{toastViewAction-DQYlcGOL.js.map → components/backoffice/actions/toastViewAction.js.map} +1 -1
  44. package/lib/esm/{buildDataTableColumns-DdmF-EYq.js → components/backoffice/columns/buildDataTableColumns.js} +18 -18
  45. package/lib/esm/{buildDataTableColumns-DdmF-EYq.js.map → components/backoffice/columns/buildDataTableColumns.js.map} +1 -1
  46. package/lib/esm/components/backoffice/detail/BackofficeAuditMetadataPanel.js +31 -0
  47. package/lib/esm/components/backoffice/detail/BackofficeAuditMetadataPanel.js.map +1 -0
  48. package/lib/esm/components/backoffice/detail/BackofficeDetailBadgeRow.js +22 -0
  49. package/lib/esm/components/backoffice/detail/BackofficeDetailBadgeRow.js.map +1 -0
  50. package/lib/esm/components/backoffice/detail/BackofficeDetailErrorList.js +40 -0
  51. package/lib/esm/components/backoffice/detail/BackofficeDetailErrorList.js.map +1 -0
  52. package/lib/esm/components/backoffice/detail/BackofficeDetailField.js +30 -0
  53. package/lib/esm/components/backoffice/detail/BackofficeDetailField.js.map +1 -0
  54. package/lib/esm/components/backoffice/detail/BackofficeDetailFlagTag.css.js +7 -0
  55. package/lib/esm/components/backoffice/detail/BackofficeDetailFlagTag.css.js.map +1 -0
  56. package/lib/esm/components/backoffice/detail/BackofficeDetailFlagTag.js +24 -0
  57. package/lib/esm/components/backoffice/detail/BackofficeDetailFlagTag.js.map +1 -0
  58. package/lib/esm/components/backoffice/detail/BackofficeDetailLayout.js +20 -0
  59. package/lib/esm/components/backoffice/detail/BackofficeDetailLayout.js.map +1 -0
  60. package/lib/esm/components/backoffice/detail/BackofficeDetailPayload.js +18 -0
  61. package/lib/esm/components/backoffice/detail/BackofficeDetailPayload.js.map +1 -0
  62. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationLink.js +56 -0
  63. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationLink.js.map +1 -0
  64. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationList.js +11 -0
  65. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationList.js.map +1 -0
  66. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationListBlock.js +123 -0
  67. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationListBlock.js.map +1 -0
  68. package/lib/esm/components/backoffice/detail/BackofficeDetailSection.js +36 -0
  69. package/lib/esm/components/backoffice/detail/BackofficeDetailSection.js.map +1 -0
  70. package/lib/esm/components/backoffice/detail/BackofficeDetailTaggedValue.js +18 -0
  71. package/lib/esm/components/backoffice/detail/BackofficeDetailTaggedValue.js.map +1 -0
  72. package/lib/esm/components/backoffice/detail/BackofficeEntityRefLink.js +17 -0
  73. package/lib/esm/components/backoffice/detail/BackofficeEntityRefLink.js.map +1 -0
  74. package/lib/esm/components/backoffice/detail/BackofficeEntitySummaryHeader.js +72 -0
  75. package/lib/esm/components/backoffice/detail/BackofficeEntitySummaryHeader.js.map +1 -0
  76. package/lib/esm/components/backoffice/detail/BackofficeEnumLabel.js +11 -0
  77. package/lib/esm/components/backoffice/detail/BackofficeEnumLabel.js.map +1 -0
  78. package/lib/esm/components/backoffice/detail/BackofficeKpiStrip.js +35 -0
  79. package/lib/esm/components/backoffice/detail/BackofficeKpiStrip.js.map +1 -0
  80. package/lib/esm/components/backoffice/detail/BackofficeLifecycleTimelineSection.js +37 -0
  81. package/lib/esm/components/backoffice/detail/BackofficeLifecycleTimelineSection.js.map +1 -0
  82. package/lib/esm/components/backoffice/detail/BackofficePayloadInspectorSection.js +36 -0
  83. package/lib/esm/components/backoffice/detail/BackofficePayloadInspectorSection.js.map +1 -0
  84. package/lib/esm/components/backoffice/detail/BackofficeReferenceValue.js +22 -0
  85. package/lib/esm/components/backoffice/detail/BackofficeReferenceValue.js.map +1 -0
  86. package/lib/esm/components/backoffice/detail/BackofficeRelationsSummaryGrid.js +43 -0
  87. package/lib/esm/components/backoffice/detail/BackofficeRelationsSummaryGrid.js.map +1 -0
  88. package/lib/esm/components/backoffice/detail/BackofficeScopeStack.js +28 -0
  89. package/lib/esm/components/backoffice/detail/BackofficeScopeStack.js.map +1 -0
  90. package/lib/esm/components/backoffice/detail/BackofficeStatusMetaBadge.js +27 -0
  91. package/lib/esm/components/backoffice/detail/BackofficeStatusMetaBadge.js.map +1 -0
  92. package/lib/esm/components/backoffice/detail/BackofficeTokenUsageBreakdown.js +37 -0
  93. package/lib/esm/components/backoffice/detail/BackofficeTokenUsageBreakdown.js.map +1 -0
  94. package/lib/esm/components/backoffice/detail/BackofficeUsageCostBreakdown.js +84 -0
  95. package/lib/esm/components/backoffice/detail/BackofficeUsageCostBreakdown.js.map +1 -0
  96. package/lib/esm/components/backoffice/detail/backofficeAuditMetadataPanel.css.js +7 -0
  97. package/lib/esm/components/backoffice/detail/backofficeAuditMetadataPanel.css.js.map +1 -0
  98. package/lib/esm/components/backoffice/detail/backofficeDetailBadgeRow.css.js +7 -0
  99. package/lib/esm/components/backoffice/detail/backofficeDetailBadgeRow.css.js.map +1 -0
  100. package/lib/esm/components/backoffice/detail/backofficeDetailErrorList.css.js +7 -0
  101. package/lib/esm/components/backoffice/detail/backofficeDetailErrorList.css.js.map +1 -0
  102. package/lib/esm/components/backoffice/detail/backofficeDetailField.css.js +15 -0
  103. package/lib/esm/components/backoffice/detail/backofficeDetailField.css.js.map +1 -0
  104. package/lib/esm/components/backoffice/detail/backofficeDetailLayout.css.js +7 -0
  105. package/lib/esm/components/backoffice/detail/backofficeDetailLayout.css.js.map +1 -0
  106. package/lib/esm/components/backoffice/detail/backofficeDetailRelationLink.css.js +7 -0
  107. package/lib/esm/components/backoffice/detail/backofficeDetailRelationLink.css.js.map +1 -0
  108. package/lib/esm/components/backoffice/detail/backofficeDetailRelationList.css.js +7 -0
  109. package/lib/esm/components/backoffice/detail/backofficeDetailRelationList.css.js.map +1 -0
  110. package/lib/esm/components/backoffice/detail/backofficeDetailSection.css.js +7 -0
  111. package/lib/esm/components/backoffice/detail/backofficeDetailSection.css.js.map +1 -0
  112. package/lib/esm/components/backoffice/detail/backofficeDetailTaggedValue.css.js +7 -0
  113. package/lib/esm/components/backoffice/detail/backofficeDetailTaggedValue.css.js.map +1 -0
  114. package/lib/esm/components/backoffice/detail/backofficeEntitySummaryHeader.css.js +7 -0
  115. package/lib/esm/components/backoffice/detail/backofficeEntitySummaryHeader.css.js.map +1 -0
  116. package/lib/esm/components/backoffice/detail/backofficeKpiStrip.css.js +7 -0
  117. package/lib/esm/components/backoffice/detail/backofficeKpiStrip.css.js.map +1 -0
  118. package/lib/esm/components/backoffice/detail/backofficeLifecycleTimelineSection.css.js +7 -0
  119. package/lib/esm/components/backoffice/detail/backofficeLifecycleTimelineSection.css.js.map +1 -0
  120. package/lib/esm/components/backoffice/detail/backofficePayloadInspectorSection.css.js +7 -0
  121. package/lib/esm/components/backoffice/detail/backofficePayloadInspectorSection.css.js.map +1 -0
  122. package/lib/esm/components/backoffice/detail/backofficeReferenceValue.css.js +7 -0
  123. package/lib/esm/components/backoffice/detail/backofficeReferenceValue.css.js.map +1 -0
  124. package/lib/esm/components/backoffice/detail/backofficeRelationsSummaryGrid.css.js +7 -0
  125. package/lib/esm/components/backoffice/detail/backofficeRelationsSummaryGrid.css.js.map +1 -0
  126. package/lib/esm/components/backoffice/detail/backofficeScopeStack.css.js +7 -0
  127. package/lib/esm/components/backoffice/detail/backofficeScopeStack.css.js.map +1 -0
  128. package/lib/esm/components/backoffice/detail/backofficeStatusMetaBadge.css.js +7 -0
  129. package/lib/esm/components/backoffice/detail/backofficeStatusMetaBadge.css.js.map +1 -0
  130. package/lib/esm/components/backoffice/detail/backofficeUsageCostBreakdown.css.js +7 -0
  131. package/lib/esm/components/backoffice/detail/backofficeUsageCostBreakdown.css.js.map +1 -0
  132. package/lib/esm/components/backoffice/detail/createBackofficeEntityLinkProps.js +21 -0
  133. package/lib/esm/components/backoffice/detail/createBackofficeEntityLinkProps.js.map +1 -0
  134. package/lib/esm/components/backoffice/detail/detailPayloadUtils.js +17 -0
  135. package/lib/esm/components/backoffice/detail/detailPayloadUtils.js.map +1 -0
  136. package/lib/esm/{BackofficeErrorBoundary-BwRVSDHU.js → components/backoffice/errors/BackofficeErrorBoundary.js} +2 -2
  137. package/lib/esm/{BackofficeErrorBoundary-BwRVSDHU.js.map → components/backoffice/errors/BackofficeErrorBoundary.js.map} +1 -1
  138. package/lib/esm/components/backoffice/filters/BackofficeFilterAction.js +46 -0
  139. package/lib/esm/components/backoffice/filters/BackofficeFilterAction.js.map +1 -0
  140. package/lib/esm/components/backoffice/filters/DeferredFilterSearchInput.js +67 -0
  141. package/lib/esm/components/backoffice/filters/DeferredFilterSearchInput.js.map +1 -0
  142. package/lib/esm/components/backoffice/filters/EntityFilterValue.js +46 -0
  143. package/lib/esm/components/backoffice/filters/EntityFilterValue.js.map +1 -0
  144. package/lib/esm/components/backoffice/filters/EntityIdFilterField.js +65 -0
  145. package/lib/esm/components/backoffice/filters/EntityIdFilterField.js.map +1 -0
  146. package/lib/esm/components/backoffice/filters/backofficeFilterAction.css.js +7 -0
  147. package/lib/esm/components/backoffice/filters/backofficeFilterAction.css.js.map +1 -0
  148. package/lib/esm/components/backoffice/filters/deferredFilterSearchInput.css.js +7 -0
  149. package/lib/esm/components/backoffice/filters/deferredFilterSearchInput.css.js.map +1 -0
  150. package/lib/esm/components/backoffice/filters/entityIdFilterField.css.js +7 -0
  151. package/lib/esm/components/backoffice/filters/entityIdFilterField.css.js.map +1 -0
  152. package/lib/esm/components/backoffice/hub/BackofficeHubTemplate.js +83 -0
  153. package/lib/esm/components/backoffice/hub/BackofficeHubTemplate.js.map +1 -0
  154. package/lib/esm/components/backoffice/hub/backofficeHubTemplate.css.js +7 -0
  155. package/lib/esm/components/backoffice/hub/backofficeHubTemplate.css.js.map +1 -0
  156. package/lib/esm/{BackofficePermissionsContext-C2bdxy2z.js → components/backoffice/layout/BackofficePermissionsContext.js} +2 -2
  157. package/lib/esm/{BackofficePermissionsContext-C2bdxy2z.js.map → components/backoffice/layout/BackofficePermissionsContext.js.map} +1 -1
  158. package/lib/esm/components/backoffice/layout/backofficeSidebarActions.css.js +7 -0
  159. package/lib/esm/components/backoffice/layout/backofficeSidebarActions.css.js.map +1 -0
  160. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeRightPageLayout.js +10 -0
  161. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeRightPageLayout.js.map +1 -0
  162. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarBreadcrumb.js +69 -0
  163. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarBreadcrumb.js.map +1 -0
  164. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarPortal.js +12 -0
  165. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarPortal.js.map +1 -0
  166. package/lib/esm/{BackofficeTopbarPortalContext-Da5XFatM.js → components/backoffice/layout/breadcrumb/BackofficeTopbarPortalContext.js} +2 -2
  167. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarPortalContext.js.map +1 -0
  168. package/lib/esm/components/backoffice/layout/breadcrumb/assertValidBreadcrumb.js +16 -0
  169. package/lib/esm/components/backoffice/layout/breadcrumb/assertValidBreadcrumb.js.map +1 -0
  170. package/lib/esm/components/backoffice/layout/breadcrumb/backofficeTopbarBreadcrumb.css.js +7 -0
  171. package/lib/esm/components/backoffice/layout/breadcrumb/backofficeTopbarBreadcrumb.css.js.map +1 -0
  172. package/lib/esm/{buildBreadcrumbs-C5St167Y.js → components/backoffice/layout/breadcrumb/buildBreadcrumbs.js} +7 -3
  173. package/lib/esm/components/backoffice/layout/breadcrumb/buildBreadcrumbs.js.map +1 -0
  174. package/lib/esm/components/backoffice/layout/breadcrumb/types.js +0 -0
  175. package/lib/esm/components/backoffice/layout/buildSidebarSections.js +301 -0
  176. package/lib/esm/components/backoffice/layout/buildSidebarSections.js.map +1 -0
  177. package/lib/esm/components/backoffice/layout/mapViewerToSidebarProfileView.js +18 -0
  178. package/lib/esm/components/backoffice/layout/mapViewerToSidebarProfileView.js.map +1 -0
  179. package/lib/esm/{sidebarUtils-BgCBLJLv.js → components/backoffice/layout/sidebarUtils.js} +32 -22
  180. package/lib/esm/{sidebarUtils-BgCBLJLv.js.map → components/backoffice/layout/sidebarUtils.js.map} +1 -1
  181. package/lib/esm/components/backoffice/list/RowFlagsCell.css.js +7 -0
  182. package/lib/esm/components/backoffice/list/RowFlagsCell.css.js.map +1 -0
  183. package/lib/esm/components/backoffice/list/RowFlagsCell.js +37 -0
  184. package/lib/esm/components/backoffice/list/RowFlagsCell.js.map +1 -0
  185. package/lib/esm/components/backoffice/lists/BackofficeListToolbar.js +33 -0
  186. package/lib/esm/components/backoffice/lists/BackofficeListToolbar.js.map +1 -0
  187. package/lib/esm/components/backoffice/lists/backofficeListToolbar.css.js +13 -0
  188. package/lib/esm/components/backoffice/lists/backofficeListToolbar.css.js.map +1 -0
  189. package/lib/esm/components/backoffice/overview/BackofficeOverviewLayout.js +31 -0
  190. package/lib/esm/components/backoffice/overview/BackofficeOverviewLayout.js.map +1 -0
  191. package/lib/esm/components/backoffice/overview/backofficeOverviewLayout.css.js +7 -0
  192. package/lib/esm/components/backoffice/overview/backofficeOverviewLayout.css.js.map +1 -0
  193. package/lib/esm/components/backoffice/pickers/EntityIdPickerDialog.js +117 -0
  194. package/lib/esm/components/backoffice/pickers/EntityIdPickerDialog.js.map +1 -0
  195. package/lib/esm/components/backoffice/pickers/entityIdPickerDialog.css.js +7 -0
  196. package/lib/esm/components/backoffice/pickers/entityIdPickerDialog.css.js.map +1 -0
  197. package/lib/esm/components/backoffice/pickers/shared/EntityPickerList.js +27 -0
  198. package/lib/esm/components/backoffice/pickers/shared/EntityPickerList.js.map +1 -0
  199. package/lib/esm/components/backoffice/pickers/shared/EntityPickerRowBase.js +23 -0
  200. package/lib/esm/components/backoffice/pickers/shared/EntityPickerRowBase.js.map +1 -0
  201. package/lib/esm/components/backoffice/pickers/shared/EntityPickerShell.js +28 -0
  202. package/lib/esm/components/backoffice/pickers/shared/EntityPickerShell.js.map +1 -0
  203. package/lib/esm/components/backoffice/pickers/types.js +0 -0
  204. package/lib/esm/components/backoffice/refs/BackofficeEntityIdRef.js +35 -0
  205. package/lib/esm/components/backoffice/refs/BackofficeEntityIdRef.js.map +1 -0
  206. package/lib/esm/components/backoffice/refs/BackofficeEntityLink.js +30 -0
  207. package/lib/esm/components/backoffice/refs/BackofficeEntityLink.js.map +1 -0
  208. package/lib/esm/components/backoffice/refs/BackofficeRelatedCountLink.js +65 -0
  209. package/lib/esm/components/backoffice/refs/BackofficeRelatedCountLink.js.map +1 -0
  210. package/lib/esm/components/backoffice/refs/backofficeEntityIdRef.css.js +7 -0
  211. package/lib/esm/components/backoffice/refs/backofficeEntityIdRef.css.js.map +1 -0
  212. package/lib/esm/components/backoffice/refs/backofficeRelatedCountLink.css.js +7 -0
  213. package/lib/esm/components/backoffice/refs/backofficeRelatedCountLink.css.js.map +1 -0
  214. package/lib/esm/components/backoffice/routing/BackofficeContentBoundary.js +24 -0
  215. package/lib/esm/components/backoffice/routing/BackofficeContentBoundary.js.map +1 -0
  216. package/lib/esm/components/backoffice/routing/BackofficeContentError.js +27 -0
  217. package/lib/esm/components/backoffice/routing/BackofficeContentError.js.map +1 -0
  218. package/lib/esm/components/backoffice/routing/BackofficeContentFallback.js +47 -0
  219. package/lib/esm/components/backoffice/routing/BackofficeContentFallback.js.map +1 -0
  220. package/lib/esm/components/backoffice/routing/BackofficeRouteFallback.js +25 -0
  221. package/lib/esm/components/backoffice/routing/BackofficeRouteFallback.js.map +1 -0
  222. package/lib/esm/components/backoffice/routing/BackofficeRoutePendingBar.js +12 -0
  223. package/lib/esm/components/backoffice/routing/BackofficeRoutePendingBar.js.map +1 -0
  224. package/lib/esm/components/backoffice/routing/backofficeContentBoundary.css.js +7 -0
  225. package/lib/esm/components/backoffice/routing/backofficeContentBoundary.css.js.map +1 -0
  226. package/lib/esm/components/backoffice/routing/backofficeContentError.css.js +7 -0
  227. package/lib/esm/components/backoffice/routing/backofficeContentError.css.js.map +1 -0
  228. package/lib/esm/components/backoffice/routing/backofficeContentFallback.css.js +7 -0
  229. package/lib/esm/components/backoffice/routing/backofficeContentFallback.css.js.map +1 -0
  230. package/lib/esm/components/backoffice/routing/backofficeRouteFallback.css.js +7 -0
  231. package/lib/esm/components/backoffice/routing/backofficeRouteFallback.css.js.map +1 -0
  232. package/lib/esm/components/backoffice/routing/backofficeRoutePendingBar.css.js +7 -0
  233. package/lib/esm/components/backoffice/routing/backofficeRoutePendingBar.css.js.map +1 -0
  234. package/lib/esm/components/backoffice/scaffolds/BackofficeEntityDetailScaffold.js +12 -0
  235. package/lib/esm/components/backoffice/scaffolds/BackofficeEntityDetailScaffold.js.map +1 -0
  236. package/lib/esm/components/backoffice/scaffolds/BackofficeEntityListScaffold.js +506 -0
  237. package/lib/esm/components/backoffice/scaffolds/BackofficeEntityListScaffold.js.map +1 -0
  238. package/lib/esm/components/backoffice/scaffolds/BackofficeListFilterContext.js +40 -0
  239. package/lib/esm/components/backoffice/scaffolds/BackofficeListFilterContext.js.map +1 -0
  240. package/lib/esm/components/backoffice/scaffolds/BackofficeTabbedDetailShell.js +24 -0
  241. package/lib/esm/components/backoffice/scaffolds/BackofficeTabbedDetailShell.js.map +1 -0
  242. package/lib/esm/components/backoffice/scaffolds/backofficeEntityListScaffold.css.js +7 -0
  243. package/lib/esm/components/backoffice/scaffolds/backofficeEntityListScaffold.css.js.map +1 -0
  244. package/lib/esm/components/backoffice/scaffolds/backofficeTabbedDetailShell.css.js +7 -0
  245. package/lib/esm/components/backoffice/scaffolds/backofficeTabbedDetailShell.css.js.map +1 -0
  246. package/lib/esm/components/backoffice/shared/BackofficeFilterableCell.js +41 -0
  247. package/lib/esm/components/backoffice/shared/BackofficeFilterableCell.js.map +1 -0
  248. package/lib/esm/components/backoffice/shared/BackofficeFormattedCurrency.js +17 -0
  249. package/lib/esm/components/backoffice/shared/BackofficeFormattedCurrency.js.map +1 -0
  250. package/lib/esm/components/backoffice/shared/BackofficeFormattedNumber.js +17 -0
  251. package/lib/esm/components/backoffice/shared/BackofficeFormattedNumber.js.map +1 -0
  252. package/lib/esm/components/backoffice/shared/BackofficeInlineFilterRow.js +12 -0
  253. package/lib/esm/components/backoffice/shared/BackofficeInlineFilterRow.js.map +1 -0
  254. package/lib/esm/components/backoffice/shared/backofficeFilterableCell.css.js +16 -0
  255. package/lib/esm/components/backoffice/shared/backofficeFilterableCell.css.js.map +1 -0
  256. package/lib/esm/components/backoffice/shared/backofficeInlineFilterRow.css.js +7 -0
  257. package/lib/esm/components/backoffice/shared/backofficeInlineFilterRow.css.js.map +1 -0
  258. package/lib/esm/components/backoffice/tools/BackofficeToolsDocPanel.js +41 -0
  259. package/lib/esm/components/backoffice/tools/BackofficeToolsDocPanel.js.map +1 -0
  260. package/lib/esm/components/backoffice/tools/BackofficeToolsErrorFallback.js +48 -0
  261. package/lib/esm/components/backoffice/tools/BackofficeToolsErrorFallback.js.map +1 -0
  262. package/lib/esm/components/backoffice/tools/BackofficeToolsJsonForm.js +63 -0
  263. package/lib/esm/components/backoffice/tools/BackofficeToolsJsonForm.js.map +1 -0
  264. package/lib/esm/components/backoffice/tools/BackofficeToolsQueryBoundary.js +35 -0
  265. package/lib/esm/components/backoffice/tools/BackofficeToolsQueryBoundary.js.map +1 -0
  266. package/lib/esm/components/backoffice/tools/backofficeToolsDocPanel.css.js +7 -0
  267. package/lib/esm/components/backoffice/tools/backofficeToolsDocPanel.css.js.map +1 -0
  268. package/lib/esm/components/backoffice/tools/backofficeToolsForm.css.js +7 -0
  269. package/lib/esm/components/backoffice/tools/backofficeToolsForm.css.js.map +1 -0
  270. package/lib/esm/components/backoffice/tools/backofficeToolsJsonForm.css.js +7 -0
  271. package/lib/esm/components/backoffice/tools/backofficeToolsJsonForm.css.js.map +1 -0
  272. package/lib/esm/components/backoffice/tools/parseToolJson.js +13 -0
  273. package/lib/esm/components/backoffice/tools/parseToolJson.js.map +1 -0
  274. package/lib/esm/filters/filterHelpers.js +26 -0
  275. package/lib/esm/filters/filterHelpers.js.map +1 -0
  276. package/lib/esm/hooks/useAuth.js +444 -0
  277. package/lib/esm/hooks/useAuth.js.map +1 -0
  278. package/lib/esm/hooks/useBackofficeAuth.js +89 -0
  279. package/lib/esm/hooks/useBackofficeAuth.js.map +1 -0
  280. package/lib/esm/hooks/useBackofficeInfiniteScrollSentinel.js +39 -0
  281. package/lib/esm/hooks/useBackofficeInfiniteScrollSentinel.js.map +1 -0
  282. package/lib/esm/hooks/useBackofficeListRefetch.js +50 -0
  283. package/lib/esm/hooks/useBackofficeListRefetch.js.map +1 -0
  284. package/lib/esm/{useBackofficeListUrlState-Ca6d7uIN.js → hooks/useBackofficeListUrlState.js} +2 -2
  285. package/lib/esm/hooks/useBackofficeListUrlState.js.map +1 -0
  286. package/lib/esm/hooks/useBackofficeLoadMore.js +18 -0
  287. package/lib/esm/hooks/useBackofficeLoadMore.js.map +1 -0
  288. package/lib/esm/hooks/useBackofficeSessionAuth.js +33 -0
  289. package/lib/esm/hooks/useBackofficeSessionAuth.js.map +1 -0
  290. package/lib/esm/hooks/useBackofficeSidebarPins.js +89 -0
  291. package/lib/esm/hooks/useBackofficeSidebarPins.js.map +1 -0
  292. package/lib/esm/hooks/useConditionalSubscription.js +63 -0
  293. package/lib/esm/hooks/useConditionalSubscription.js.map +1 -0
  294. package/lib/esm/hooks/useCopyToClipboard.js +31 -0
  295. package/lib/esm/hooks/useCopyToClipboard.js.map +1 -0
  296. package/lib/esm/hooks/useInfiniteConnection.js +95 -0
  297. package/lib/esm/hooks/useInfiniteConnection.js.map +1 -0
  298. package/lib/esm/hooks/useRefetchNeededReload.js +23 -0
  299. package/lib/esm/hooks/useRefetchNeededReload.js.map +1 -0
  300. package/lib/esm/hooks/useSidebarGroupCollapse.js +70 -0
  301. package/lib/esm/hooks/useSidebarGroupCollapse.js.map +1 -0
  302. package/lib/esm/i18n/createI18nInstance.js +68 -0
  303. package/lib/esm/i18n/createI18nInstance.js.map +1 -0
  304. package/lib/esm/i18n/locales/en/backofficeReact.js +436 -0
  305. package/lib/esm/i18n/locales/en/backofficeReact.js.map +1 -0
  306. package/lib/esm/i18n/locales/fr/backofficeReact.js +439 -0
  307. package/lib/esm/i18n/locales/fr/backofficeReact.js.map +1 -0
  308. package/lib/esm/i18n/mergeResourceLanguages.js +22 -0
  309. package/lib/esm/i18n/mergeResourceLanguages.js.map +1 -0
  310. package/lib/esm/i18n/resources.js +23 -0
  311. package/lib/esm/i18n/resources.js.map +1 -0
  312. package/lib/esm/i18n/useBackofficeFormats.js +23 -0
  313. package/lib/esm/i18n/useBackofficeFormats.js.map +1 -0
  314. package/lib/esm/i18n/useBackofficeReactTranslation.js +9 -0
  315. package/lib/esm/i18n/useBackofficeReactTranslation.js.map +1 -0
  316. package/lib/esm/i18n/useReviewStatusLabel.js +19 -0
  317. package/lib/esm/i18n/useReviewStatusLabel.js.map +1 -0
  318. package/lib/esm/index.js +73 -0
  319. package/lib/esm/modules/base64.js +21 -0
  320. package/lib/esm/modules/base64.js.map +1 -0
  321. package/lib/esm/modules/formatFileSize.js +28 -0
  322. package/lib/esm/modules/formatFileSize.js.map +1 -0
  323. package/lib/esm/modules/sharedSchemaTypes.js +0 -0
  324. package/lib/esm/modules/webauthn.js +33 -0
  325. package/lib/esm/modules/webauthn.js.map +1 -0
  326. package/lib/esm/node_modules/@babel/runtime/helpers/arrayLikeToArray.js +15 -0
  327. package/lib/esm/node_modules/@babel/runtime/helpers/arrayLikeToArray.js.map +1 -0
  328. package/lib/esm/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js +15 -0
  329. package/lib/esm/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js.map +1 -0
  330. package/lib/esm/node_modules/@babel/runtime/helpers/defineProperty.js +20 -0
  331. package/lib/esm/node_modules/@babel/runtime/helpers/defineProperty.js.map +1 -0
  332. package/lib/esm/node_modules/@babel/runtime/helpers/interopRequireDefault.js +13 -0
  333. package/lib/esm/node_modules/@babel/runtime/helpers/interopRequireDefault.js.map +1 -0
  334. package/lib/esm/node_modules/@babel/runtime/helpers/iterableToArray.js +13 -0
  335. package/lib/esm/node_modules/@babel/runtime/helpers/iterableToArray.js.map +1 -0
  336. package/lib/esm/node_modules/@babel/runtime/helpers/nonIterableSpread.js +13 -0
  337. package/lib/esm/node_modules/@babel/runtime/helpers/nonIterableSpread.js.map +1 -0
  338. package/lib/esm/node_modules/@babel/runtime/helpers/objectSpread2.js +33 -0
  339. package/lib/esm/node_modules/@babel/runtime/helpers/objectSpread2.js.map +1 -0
  340. package/lib/esm/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js +19 -0
  341. package/lib/esm/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js.map +1 -0
  342. package/lib/esm/node_modules/@babel/runtime/helpers/toConsumableArray.js +18 -0
  343. package/lib/esm/node_modules/@babel/runtime/helpers/toConsumableArray.js.map +1 -0
  344. package/lib/esm/node_modules/@babel/runtime/helpers/toPrimitive.js +22 -0
  345. package/lib/esm/node_modules/@babel/runtime/helpers/toPrimitive.js.map +1 -0
  346. package/lib/esm/node_modules/@babel/runtime/helpers/toPropertyKey.js +17 -0
  347. package/lib/esm/node_modules/@babel/runtime/helpers/toPropertyKey.js.map +1 -0
  348. package/lib/esm/node_modules/@babel/runtime/helpers/typeof.js +18 -0
  349. package/lib/esm/node_modules/@babel/runtime/helpers/typeof.js.map +1 -0
  350. package/lib/esm/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js +19 -0
  351. package/lib/esm/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js.map +1 -0
  352. package/lib/esm/node_modules/@vanilla-extract/recipes/dist/createRuntimeFn-62c9670f.esm.js +80 -0
  353. package/lib/esm/node_modules/@vanilla-extract/recipes/dist/createRuntimeFn-62c9670f.esm.js.map +1 -0
  354. package/lib/esm/node_modules/fbjs/lib/areEqual.js +42 -0
  355. package/lib/esm/node_modules/fbjs/lib/areEqual.js.map +1 -0
  356. package/lib/esm/node_modules/invariant/browser.js +30 -0
  357. package/lib/esm/node_modules/invariant/browser.js.map +1 -0
  358. package/lib/esm/node_modules/relay-test-utils/index.js +11 -0
  359. package/lib/esm/node_modules/relay-test-utils/index.js.map +1 -0
  360. package/lib/esm/node_modules/relay-test-utils/lib/RelayMockPayloadGenerator.js +288 -0
  361. package/lib/esm/node_modules/relay-test-utils/lib/RelayMockPayloadGenerator.js.map +1 -0
  362. package/lib/esm/node_modules/relay-test-utils/lib/RelayModernMockEnvironment.js +183 -0
  363. package/lib/esm/node_modules/relay-test-utils/lib/RelayModernMockEnvironment.js.map +1 -0
  364. package/lib/esm/node_modules/relay-test-utils/lib/RelayResolverTestUtils.js +19 -0
  365. package/lib/esm/node_modules/relay-test-utils/lib/RelayResolverTestUtils.js.map +1 -0
  366. package/lib/esm/node_modules/relay-test-utils/lib/index.js +21 -0
  367. package/lib/esm/node_modules/relay-test-utils/lib/index.js.map +1 -0
  368. package/lib/esm/node_modules/relay-test-utils/lib/unwrapContainer.js +16 -0
  369. package/lib/esm/node_modules/relay-test-utils/lib/unwrapContainer.js.map +1 -0
  370. package/lib/esm/pages/BackofficeAcceptInvitationPage.js +24 -0
  371. package/lib/esm/pages/BackofficeAcceptInvitationPage.js.map +1 -0
  372. package/lib/esm/pages/BackofficeDashboardPage.helpers.js +18 -0
  373. package/lib/esm/pages/BackofficeDashboardPage.helpers.js.map +1 -0
  374. package/lib/esm/pages/BackofficeDashboardPage.js +266 -0
  375. package/lib/esm/pages/BackofficeDashboardPage.js.map +1 -0
  376. package/lib/esm/pages/BackofficeEntityDetailLayoutPage.js +18 -0
  377. package/lib/esm/pages/BackofficeEntityDetailLayoutPage.js.map +1 -0
  378. package/lib/esm/pages/BackofficeEntityDetailPage.helpers.js +14 -0
  379. package/lib/esm/pages/BackofficeEntityDetailPage.helpers.js.map +1 -0
  380. package/lib/esm/pages/BackofficeEntityDetailPage.js +474 -0
  381. package/lib/esm/pages/BackofficeEntityDetailPage.js.map +1 -0
  382. package/lib/esm/pages/BackofficeEntityDetailPage.view-helpers.js +414 -0
  383. package/lib/esm/pages/BackofficeEntityDetailPage.view-helpers.js.map +1 -0
  384. package/lib/esm/{BackofficeEntityDetailUnknownPageRedirect-Iu4R3WvX.js → pages/BackofficeEntityDetailUnknownPageRedirect.js} +3 -3
  385. package/lib/esm/pages/BackofficeEntityDetailUnknownPageRedirect.js.map +1 -0
  386. package/lib/esm/pages/BackofficeEntityListPage.helpers.js +37 -0
  387. package/lib/esm/pages/BackofficeEntityListPage.helpers.js.map +1 -0
  388. package/lib/esm/pages/BackofficeEntityListPage.js +381 -0
  389. package/lib/esm/pages/BackofficeEntityListPage.js.map +1 -0
  390. package/lib/esm/{BackofficeHubPage-DOePQ8Fc.js → pages/BackofficeHubPage.js} +29 -28
  391. package/lib/esm/pages/BackofficeHubPage.js.map +1 -0
  392. package/lib/esm/pages/BackofficeLayoutPage.js +273 -0
  393. package/lib/esm/pages/BackofficeLayoutPage.js.map +1 -0
  394. package/lib/esm/pages/BackofficeLoginPage.js +47 -0
  395. package/lib/esm/pages/BackofficeLoginPage.js.map +1 -0
  396. package/lib/esm/{BackofficePasswordResetCompletePage-Cit5sdDm.js → pages/BackofficePasswordResetCompletePage.js} +16 -15
  397. package/lib/esm/pages/BackofficePasswordResetCompletePage.js.map +1 -0
  398. package/lib/esm/{BackofficePasswordResetRequestPage-B_TurHev.js → pages/BackofficePasswordResetRequestPage.js} +12 -12
  399. package/lib/esm/pages/BackofficePasswordResetRequestPage.js.map +1 -0
  400. package/lib/esm/{BackofficeVerifyEmailPage-DQbFIob1.js → pages/BackofficeVerifyEmailPage.js} +16 -15
  401. package/lib/esm/pages/BackofficeVerifyEmailPage.js.map +1 -0
  402. package/lib/esm/pages/backofficeDashboardPage.css.js +7 -0
  403. package/lib/esm/pages/backofficeDashboardPage.css.js.map +1 -0
  404. package/lib/esm/pages/backofficeEntityDetailPage.css.js +7 -0
  405. package/lib/esm/pages/backofficeEntityDetailPage.css.js.map +1 -0
  406. package/lib/esm/pages/backofficeEntityListPage.css.js +7 -0
  407. package/lib/esm/pages/backofficeEntityListPage.css.js.map +1 -0
  408. package/lib/esm/pages/dashboard/DashboardMetricGroup.js +25 -0
  409. package/lib/esm/pages/dashboard/DashboardMetricGroup.js.map +1 -0
  410. package/lib/esm/pages/dashboard/DashboardPanel.js +15 -0
  411. package/lib/esm/pages/dashboard/DashboardPanel.js.map +1 -0
  412. package/lib/esm/pages/dashboard/DashboardQuickActions.js +27 -0
  413. package/lib/esm/pages/dashboard/DashboardQuickActions.js.map +1 -0
  414. package/lib/esm/pages/dashboard/DashboardStatusList.js +28 -0
  415. package/lib/esm/pages/dashboard/DashboardStatusList.js.map +1 -0
  416. package/lib/esm/pages/dashboard/dashboardMetricGroup.css.js +8 -0
  417. package/lib/esm/pages/dashboard/dashboardMetricGroup.css.js.map +1 -0
  418. package/lib/esm/pages/dashboard/dashboardPanel.css.js +7 -0
  419. package/lib/esm/pages/dashboard/dashboardPanel.css.js.map +1 -0
  420. package/lib/esm/pages/dashboard/dashboardQuickActions.css.js +7 -0
  421. package/lib/esm/pages/dashboard/dashboardQuickActions.css.js.map +1 -0
  422. package/lib/esm/pages/dashboard/dashboardStatusList.css.js +7 -0
  423. package/lib/esm/pages/dashboard/dashboardStatusList.css.js.map +1 -0
  424. package/lib/esm/{BackofficeEntityDetailLayoutContext-C5G-PH28.js → pages/detail/BackofficeEntityDetailLayoutContext.js} +2 -2
  425. package/lib/esm/pages/detail/BackofficeEntityDetailLayoutContext.js.map +1 -0
  426. package/lib/esm/pages/detail/buildTabsItems.js +10 -0
  427. package/lib/esm/pages/detail/buildTabsItems.js.map +1 -0
  428. package/lib/esm/{pageResolution-CUaTq4Ql.js → pages/detail/pageResolution.js} +2 -2
  429. package/lib/esm/pages/detail/pageResolution.js.map +1 -0
  430. package/lib/esm/provider/BackofficeConfigContext.js +12 -0
  431. package/lib/esm/provider/BackofficeConfigContext.js.map +1 -0
  432. package/lib/esm/provider/BackofficeProvider.js +171 -0
  433. package/lib/esm/provider/BackofficeProvider.js.map +1 -0
  434. package/lib/esm/provider/entityRegistry.js +95 -0
  435. package/lib/esm/provider/entityRegistry.js.map +1 -0
  436. package/lib/esm/provider/lazyValue.js +14 -0
  437. package/lib/esm/provider/lazyValue.js.map +1 -0
  438. package/lib/esm/provider/types.js +0 -0
  439. package/lib/esm/provider/useBackofficeEntityLoader.js +141 -0
  440. package/lib/esm/provider/useBackofficeEntityLoader.js.map +1 -0
  441. package/lib/esm/{useBackofficeLazyValue-CW9xfRzQ.js → provider/useBackofficeLazyValue.js} +15 -7
  442. package/lib/esm/provider/useBackofficeLazyValue.js.map +1 -0
  443. package/lib/esm/relay/RelayProvider.js +13 -0
  444. package/lib/esm/relay/RelayProvider.js.map +1 -0
  445. package/lib/esm/relay/connectionUtils.js +19 -0
  446. package/lib/esm/relay/connectionUtils.js.map +1 -0
  447. package/lib/esm/relay/createInlineDataReader.js +2 -0
  448. package/lib/esm/relay/createInlineReader.js +7 -0
  449. package/lib/esm/relay/createInlineReader.js.map +1 -0
  450. package/lib/esm/relay/envHelpers.js +55 -0
  451. package/lib/esm/relay/envHelpers.js.map +1 -0
  452. package/lib/esm/{environment-DQfVyWHJ.js → relay/environment.js} +90 -100
  453. package/lib/esm/relay/environment.js.map +1 -0
  454. package/lib/esm/relay/identityView.js +6 -0
  455. package/lib/esm/relay/identityView.js.map +1 -0
  456. package/lib/esm/{mutationResult-C2Vb_vPt.js → relay/mutationResult.js} +2 -2
  457. package/lib/esm/relay/mutationResult.js.map +1 -0
  458. package/lib/esm/{useRelayEnvironment-vQ86aW-n.js → relay/useRelayEnvironment.js} +2 -2
  459. package/lib/esm/relay/useRelayEnvironment.js.map +1 -0
  460. package/lib/esm/{backofficeAuthPaths-2hHNn8D3.js → router/backofficeAuthPaths.js} +2 -2
  461. package/lib/esm/router/backofficeAuthPaths.js.map +1 -0
  462. package/lib/esm/router/createBackofficeRoutes.js +322 -0
  463. package/lib/esm/router/createBackofficeRoutes.js.map +1 -0
  464. package/lib/esm/storybook/relay/RelayStory.css.js +7 -0
  465. package/lib/esm/storybook/relay/RelayStory.css.js.map +1 -0
  466. package/lib/esm/storybook/relay/RelayStory.js +86 -0
  467. package/lib/esm/storybook/relay/RelayStory.js.map +1 -0
  468. package/lib/esm/storybook/relay/mockResolvers.js +99 -0
  469. package/lib/esm/storybook/relay/mockResolvers.js.map +1 -0
  470. package/lib/esm/storybook/relay/relay-test-utils.d.js +0 -0
  471. package/lib/esm/style.css +1 -1
  472. package/lib/esm/style.js +1 -0
  473. package/lib/esm/subscriptions/useCursorResumableSubscription.js +29 -0
  474. package/lib/esm/subscriptions/useCursorResumableSubscription.js.map +1 -0
  475. package/lib/types/auth/AuthRefreshNotice.d.ts +14 -0
  476. package/lib/types/auth/AuthRefreshNotice.d.ts.map +1 -0
  477. package/lib/types/auth/TotpQrCode.d.ts +17 -0
  478. package/lib/types/auth/TotpQrCode.d.ts.map +1 -0
  479. package/lib/types/auth/authRefreshNotice.css.d.ts +4 -0
  480. package/lib/types/auth/authRefreshNotice.css.d.ts.map +1 -0
  481. package/lib/types/components/backoffice/detail/BackofficeAuditMetadataPanel.d.ts +19 -0
  482. package/lib/types/components/backoffice/detail/BackofficeAuditMetadataPanel.d.ts.map +1 -0
  483. package/lib/types/components/backoffice/detail/BackofficeEntityRefLink.d.ts +15 -0
  484. package/lib/types/components/backoffice/detail/BackofficeEntityRefLink.d.ts.map +1 -0
  485. package/lib/types/components/backoffice/detail/BackofficeEntitySummaryHeader.d.ts +34 -0
  486. package/lib/types/components/backoffice/detail/BackofficeEntitySummaryHeader.d.ts.map +1 -0
  487. package/lib/types/components/backoffice/detail/BackofficeEnumLabel.d.ts +9 -0
  488. package/lib/types/components/backoffice/detail/BackofficeEnumLabel.d.ts.map +1 -0
  489. package/lib/types/components/backoffice/detail/BackofficeKpiStrip.d.ts +17 -0
  490. package/lib/types/components/backoffice/detail/BackofficeKpiStrip.d.ts.map +1 -0
  491. package/lib/types/components/backoffice/detail/BackofficeLifecycleTimelineSection.d.ts +20 -0
  492. package/lib/types/components/backoffice/detail/BackofficeLifecycleTimelineSection.d.ts.map +1 -0
  493. package/lib/types/components/backoffice/detail/BackofficePayloadInspectorSection.d.ts +15 -0
  494. package/lib/types/components/backoffice/detail/BackofficePayloadInspectorSection.d.ts.map +1 -0
  495. package/lib/types/components/backoffice/detail/BackofficeReferenceValue.d.ts +9 -0
  496. package/lib/types/components/backoffice/detail/BackofficeReferenceValue.d.ts.map +1 -0
  497. package/lib/types/components/backoffice/detail/BackofficeRelationsSummaryGrid.d.ts +17 -0
  498. package/lib/types/components/backoffice/detail/BackofficeRelationsSummaryGrid.d.ts.map +1 -0
  499. package/lib/types/components/backoffice/detail/BackofficeScopeStack.d.ts +13 -0
  500. package/lib/types/components/backoffice/detail/BackofficeScopeStack.d.ts.map +1 -0
  501. package/lib/types/components/backoffice/detail/BackofficeStatusMetaBadge.d.ts +13 -0
  502. package/lib/types/components/backoffice/detail/BackofficeStatusMetaBadge.d.ts.map +1 -0
  503. package/lib/types/components/backoffice/detail/BackofficeTokenUsageBreakdown.d.ts +18 -0
  504. package/lib/types/components/backoffice/detail/BackofficeTokenUsageBreakdown.d.ts.map +1 -0
  505. package/lib/types/components/backoffice/detail/BackofficeUsageCostBreakdown.d.ts +31 -0
  506. package/lib/types/components/backoffice/detail/BackofficeUsageCostBreakdown.d.ts.map +1 -0
  507. package/lib/types/components/backoffice/detail/backofficeAuditMetadataPanel.css.d.ts +5 -0
  508. package/lib/types/components/backoffice/detail/backofficeAuditMetadataPanel.css.d.ts.map +1 -0
  509. package/lib/types/components/backoffice/detail/backofficeEntitySummaryHeader.css.d.ts +12 -0
  510. package/lib/types/components/backoffice/detail/backofficeEntitySummaryHeader.css.d.ts.map +1 -0
  511. package/lib/types/components/backoffice/detail/backofficeKpiStrip.css.d.ts +5 -0
  512. package/lib/types/components/backoffice/detail/backofficeKpiStrip.css.d.ts.map +1 -0
  513. package/lib/types/components/backoffice/detail/backofficeLifecycleTimelineSection.css.d.ts +3 -0
  514. package/lib/types/components/backoffice/detail/backofficeLifecycleTimelineSection.css.d.ts.map +1 -0
  515. package/lib/types/components/backoffice/detail/backofficePayloadInspectorSection.css.d.ts +4 -0
  516. package/lib/types/components/backoffice/detail/backofficePayloadInspectorSection.css.d.ts.map +1 -0
  517. package/lib/types/components/backoffice/detail/backofficeReferenceValue.css.d.ts +3 -0
  518. package/lib/types/components/backoffice/detail/backofficeReferenceValue.css.d.ts.map +1 -0
  519. package/lib/types/components/backoffice/detail/backofficeRelationsSummaryGrid.css.d.ts +6 -0
  520. package/lib/types/components/backoffice/detail/backofficeRelationsSummaryGrid.css.d.ts.map +1 -0
  521. package/lib/types/components/backoffice/detail/backofficeScopeStack.css.d.ts +5 -0
  522. package/lib/types/components/backoffice/detail/backofficeScopeStack.css.d.ts.map +1 -0
  523. package/lib/types/components/backoffice/detail/backofficeStatusMetaBadge.css.d.ts +2 -0
  524. package/lib/types/components/backoffice/detail/backofficeStatusMetaBadge.css.d.ts.map +1 -0
  525. package/lib/types/components/backoffice/detail/backofficeUsageCostBreakdown.css.d.ts +7 -0
  526. package/lib/types/components/backoffice/detail/backofficeUsageCostBreakdown.css.d.ts.map +1 -0
  527. package/lib/types/components/backoffice/detail/createBackofficeEntityLinkProps.d.ts +30 -0
  528. package/lib/types/components/backoffice/detail/createBackofficeEntityLinkProps.d.ts.map +1 -0
  529. package/lib/types/components/backoffice/errors/BackofficeErrorBoundary.stories.d.ts +12 -0
  530. package/lib/types/components/backoffice/errors/BackofficeErrorBoundary.stories.d.ts.map +1 -0
  531. package/lib/types/components/backoffice/filters/EntityIdFilterField.stories.d.ts +12 -0
  532. package/lib/types/components/backoffice/filters/EntityIdFilterField.stories.d.ts.map +1 -0
  533. package/lib/types/components/backoffice/overview/BackofficeOverviewLayout.stories.d.ts +11 -0
  534. package/lib/types/components/backoffice/overview/BackofficeOverviewLayout.stories.d.ts.map +1 -0
  535. package/lib/types/components/backoffice/refs/BackofficeEntityLink.d.ts +15 -0
  536. package/lib/types/components/backoffice/refs/BackofficeEntityLink.d.ts.map +1 -0
  537. package/lib/types/components/backoffice/scaffolds/BackofficeTabbedDetailShell.stories.d.ts +11 -0
  538. package/lib/types/components/backoffice/scaffolds/BackofficeTabbedDetailShell.stories.d.ts.map +1 -0
  539. package/lib/types/components/backoffice/shared/BackofficeFormattedCurrency.d.ts +9 -0
  540. package/lib/types/components/backoffice/shared/BackofficeFormattedCurrency.d.ts.map +1 -0
  541. package/lib/types/components/backoffice/shared/BackofficeFormattedNumber.d.ts +9 -0
  542. package/lib/types/components/backoffice/shared/BackofficeFormattedNumber.d.ts.map +1 -0
  543. package/lib/types/components/backoffice/tools/BackofficeToolsDocPanel.d.ts +11 -0
  544. package/lib/types/components/backoffice/tools/BackofficeToolsDocPanel.d.ts.map +1 -0
  545. package/lib/types/components/backoffice/tools/BackofficeToolsErrorFallback.d.ts +8 -0
  546. package/lib/types/components/backoffice/tools/BackofficeToolsErrorFallback.d.ts.map +1 -0
  547. package/lib/types/components/backoffice/tools/BackofficeToolsJsonForm.d.ts +15 -0
  548. package/lib/types/components/backoffice/tools/BackofficeToolsJsonForm.d.ts.map +1 -0
  549. package/lib/types/components/backoffice/tools/BackofficeToolsQueryBoundary.d.ts +7 -0
  550. package/lib/types/components/backoffice/tools/BackofficeToolsQueryBoundary.d.ts.map +1 -0
  551. package/lib/types/components/backoffice/tools/backofficeToolsDocPanel.css.d.ts +8 -0
  552. package/lib/types/components/backoffice/tools/backofficeToolsDocPanel.css.d.ts.map +1 -0
  553. package/lib/types/components/backoffice/tools/backofficeToolsForm.css.d.ts +7 -0
  554. package/lib/types/components/backoffice/tools/backofficeToolsForm.css.d.ts.map +1 -0
  555. package/lib/types/components/backoffice/tools/backofficeToolsJsonForm.css.d.ts +4 -0
  556. package/lib/types/components/backoffice/tools/backofficeToolsJsonForm.css.d.ts.map +1 -0
  557. package/lib/types/components/backoffice/tools/parseToolJson.d.ts +2 -0
  558. package/lib/types/components/backoffice/tools/parseToolJson.d.ts.map +1 -0
  559. package/lib/types/hooks/useInfiniteConnection.d.ts +37 -0
  560. package/lib/types/hooks/useInfiniteConnection.d.ts.map +1 -0
  561. package/lib/types/i18n/resources.d.ts +54 -0
  562. package/lib/types/i18n/resources.d.ts.map +1 -1
  563. package/lib/types/index.d.ts +28 -0
  564. package/lib/types/index.d.ts.map +1 -1
  565. package/lib/types/relay/connectionUtils.d.ts +10 -0
  566. package/lib/types/relay/connectionUtils.d.ts.map +1 -0
  567. package/lib/types/storybook/relay/RelayStory.css.d.ts +5 -0
  568. package/lib/types/storybook/relay/RelayStory.css.d.ts.map +1 -0
  569. package/lib/types/storybook/relay/RelayStory.d.ts +35 -0
  570. package/lib/types/storybook/relay/RelayStory.d.ts.map +1 -0
  571. package/lib/types/storybook/relay/mockResolvers.d.ts +3 -0
  572. package/lib/types/storybook/relay/mockResolvers.d.ts.map +1 -0
  573. package/lib/types/subscriptions/useCursorResumableSubscription.d.ts +16 -0
  574. package/lib/types/subscriptions/useCursorResumableSubscription.d.ts.map +1 -0
  575. package/package.json +24 -9
  576. package/lib/esm/AcceptInvitationScreen-VaWXQPHp.js.map +0 -1
  577. package/lib/esm/AuthPanel-BaIRFGbX.js.map +0 -1
  578. package/lib/esm/BackofficeAcceptInvitationPage-tpfBfhT9.js +0 -24
  579. package/lib/esm/BackofficeAcceptInvitationPage-tpfBfhT9.js.map +0 -1
  580. package/lib/esm/BackofficeDashboardPage-D5W36DY-.js +0 -329
  581. package/lib/esm/BackofficeDashboardPage-D5W36DY-.js.map +0 -1
  582. package/lib/esm/BackofficeDetailPayload-CZcsDv2w.js +0 -98
  583. package/lib/esm/BackofficeDetailPayload-CZcsDv2w.js.map +0 -1
  584. package/lib/esm/BackofficeEntityDetailLayoutContext-C5G-PH28.js.map +0 -1
  585. package/lib/esm/BackofficeEntityDetailLayoutPage-BSgGBzSL.js +0 -18
  586. package/lib/esm/BackofficeEntityDetailLayoutPage-BSgGBzSL.js.map +0 -1
  587. package/lib/esm/BackofficeEntityDetailPage-LB1uEJVM.js +0 -1061
  588. package/lib/esm/BackofficeEntityDetailPage-LB1uEJVM.js.map +0 -1
  589. package/lib/esm/BackofficeEntityDetailUnknownPageRedirect-Iu4R3WvX.js.map +0 -1
  590. package/lib/esm/BackofficeEntityListPage-D_zL-qRb.js +0 -432
  591. package/lib/esm/BackofficeEntityListPage-D_zL-qRb.js.map +0 -1
  592. package/lib/esm/BackofficeHubPage-DOePQ8Fc.js.map +0 -1
  593. package/lib/esm/BackofficeHubTemplate-C6K55egX.js +0 -82
  594. package/lib/esm/BackofficeHubTemplate-C6K55egX.js.map +0 -1
  595. package/lib/esm/BackofficeLayoutPage-Bq2bKkYF.js +0 -783
  596. package/lib/esm/BackofficeLayoutPage-Bq2bKkYF.js.map +0 -1
  597. package/lib/esm/BackofficeListToolbar-loFfIPtP.js +0 -109
  598. package/lib/esm/BackofficeListToolbar-loFfIPtP.js.map +0 -1
  599. package/lib/esm/BackofficeLoginPage-DIlcOueK.js +0 -46
  600. package/lib/esm/BackofficeLoginPage-DIlcOueK.js.map +0 -1
  601. package/lib/esm/BackofficePasswordResetCompletePage-Cit5sdDm.js.map +0 -1
  602. package/lib/esm/BackofficePasswordResetRequestPage-B_TurHev.js.map +0 -1
  603. package/lib/esm/BackofficeRightPageLayout-CfNkrMvH.js +0 -83
  604. package/lib/esm/BackofficeRightPageLayout-CfNkrMvH.js.map +0 -1
  605. package/lib/esm/BackofficeTopbarPortalContext-Da5XFatM.js.map +0 -1
  606. package/lib/esm/BackofficeVerifyEmailPage-DQbFIob1.js.map +0 -1
  607. package/lib/esm/EntityIdPickerDialog-BSn0v3bv.js +0 -340
  608. package/lib/esm/EntityIdPickerDialog-BSn0v3bv.js.map +0 -1
  609. package/lib/esm/LazyBackofficeEntityActionFormDialog-oRd_WHAK.js +0 -670
  610. package/lib/esm/LazyBackofficeEntityActionFormDialog-oRd_WHAK.js.map +0 -1
  611. package/lib/esm/PasswordResetCompleteScreen-Cgg96DPo.js.map +0 -1
  612. package/lib/esm/PasswordResetRequestScreen-I1nFvGLd.js.map +0 -1
  613. package/lib/esm/VerifyEmailScreen-Br5KyHjg.js.map +0 -1
  614. package/lib/esm/backoffice-react.js +0 -1925
  615. package/lib/esm/backoffice-react.js.map +0 -1
  616. package/lib/esm/backofficeAuthPaths-2hHNn8D3.js.map +0 -1
  617. package/lib/esm/buildBreadcrumbs-C5St167Y.js.map +0 -1
  618. package/lib/esm/environment-DQfVyWHJ.js.map +0 -1
  619. package/lib/esm/loginPage.css-B7Io_DuU.js +0 -6
  620. package/lib/esm/loginPage.css-B7Io_DuU.js.map +0 -1
  621. package/lib/esm/mutationResult-C2Vb_vPt.js.map +0 -1
  622. package/lib/esm/pageResolution-CUaTq4Ql.js.map +0 -1
  623. package/lib/esm/synchronizeAuthStatusQuery-DNJR5MfH.js +0 -323
  624. package/lib/esm/synchronizeAuthStatusQuery-DNJR5MfH.js.map +0 -1
  625. package/lib/esm/useAuth-CWf8ZspF.js +0 -548
  626. package/lib/esm/useAuth-CWf8ZspF.js.map +0 -1
  627. package/lib/esm/useBackofficeAuth-Da7FPNys.js +0 -89
  628. package/lib/esm/useBackofficeAuth-Da7FPNys.js.map +0 -1
  629. package/lib/esm/useBackofficeLazyValue-CW9xfRzQ.js.map +0 -1
  630. package/lib/esm/useBackofficeListUrlState-Ca6d7uIN.js.map +0 -1
  631. package/lib/esm/useBackofficeReactTranslation-Btt58EIo.js +0 -18
  632. package/lib/esm/useBackofficeReactTranslation-Btt58EIo.js.map +0 -1
  633. package/lib/esm/useRelayEnvironment-vQ86aW-n.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackofficeEntityDetailPage.js","names":[],"sources":["../../../src/pages/BackofficeEntityDetailPage.tsx"],"sourcesContent":["/* eslint-disable no-ternary */\nimport { type JSX, type ReactNode, useContext, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n commitMutation,\n type PreloadedQuery,\n useFragment,\n usePreloadedQuery,\n} from 'react-relay';\nimport type { OperationType } from 'relay-runtime';\nimport { resolveMutationOutcome } from '../relay/mutationResult.js';\nimport { setWhereValue } from '@plumile/backoffice-core/filters/where.js';\nimport {\n buildBackofficeFallbackListHref,\n buildBackofficeListHref,\n buildBackofficeListLink,\n} from '@plumile/backoffice-core/state/buildListHref.js';\n\nimport { BACKOFFICE_DATE_TIME_OPTIONS } from '@plumile/backoffice-core/constants.js';\nimport type {\n BackofficeResolvedDetailLayoutFacetConfigBase,\n BackofficeResolvedDetailPageFacetConfig,\n BackofficeResolvedDetailPageFacetConfigBase,\n} from '@plumile/backoffice-core/types.js';\nimport {\n BackofficeKeyValueList,\n BackofficePageHeader,\n BackofficeRelationsMenu,\n BackofficeTabs,\n type BackofficeRelationsMenuItem,\n Button,\n ChatCheckSvg,\n DataTable,\n DetailPageTemplate,\n FormattedDate,\n HighlightCode,\n KeyOffSvg,\n KeySvg,\n LazyBackofficeJsonViewer,\n LinkButton,\n LockOpenSvg,\n LockSvg,\n RobotCheckSvg,\n RobotXSvg,\n RocketOffSvg,\n RocketSvg,\n SettingsCheckSvg,\n SettingsXSvg,\n ShieldLockSvg,\n ShieldOffSvg,\n Tag,\n useToast,\n XBadgeSvg,\n} from '@plumile/ui';\nimport { HttpRedirect, Link, RoutingContext } from '@plumile/router';\n\nimport { buildDataTableColumns } from '../components/backoffice/columns/buildDataTableColumns.js';\nimport { BackofficeEntityDetailScaffold } from '../components/backoffice/scaffolds/BackofficeEntityDetailScaffold.js';\nimport { BackofficeDetailBadgeRow } from '../components/backoffice/detail/BackofficeDetailBadgeRow.js';\nimport { BackofficeDetailFlagTag } from '../components/backoffice/detail/BackofficeDetailFlagTag.js';\nimport { BackofficeDetailTaggedValue } from '../components/backoffice/detail/BackofficeDetailTaggedValue.js';\nimport { BackofficeDetailPayload } from '../components/backoffice/detail/BackofficeDetailPayload.js';\nimport { BackofficeDetailErrorList } from '../components/backoffice/detail/BackofficeDetailErrorList.js';\nimport { BackofficeDetailRelationListBlock } from '../components/backoffice/detail/BackofficeDetailRelationListBlock.js';\nimport { BackofficeDetailSection } from '../components/backoffice/detail/BackofficeDetailSection.js';\nimport { LazyBackofficeEntityActionFormDialog } from '../components/backoffice/actions/LazyBackofficeEntityActionFormDialog.js';\nimport {\n resolveToastSpec,\n resolveToastViewActions,\n} from '../components/backoffice/actions/toastViewAction.js';\nimport * as pageStyles from './backofficeEntityDetailPage.css.js';\nimport { useBackofficeFormats } from '../i18n/useBackofficeFormats.js';\nimport { useBackofficeReactTranslation } from '../i18n/useBackofficeReactTranslation.js';\nimport { useBackofficeConfig } from '../provider/BackofficeConfigContext.js';\nimport { useRelayEnvironment } from '../relay/useRelayEnvironment.js';\nimport { useBackofficeEntityDetailLayoutContext } from './detail/BackofficeEntityDetailLayoutContext.js';\nimport { buildTabsItems } from './detail/buildTabsItems.js';\nimport { resolveVisibleDetailPages } from './detail/pageResolution.js';\nimport { BackofficeRightPageLayout } from '../components/backoffice/layout/breadcrumb/BackofficeRightPageLayout.js';\nimport { buildEntityDetailBreadcrumb } from '../components/backoffice/layout/breadcrumb/buildBreadcrumbs.js';\nimport {\n extractMutationPayload,\n isFormMutationAction,\n isMutationAction,\n isRouteAction,\n resolveLabel,\n} from './BackofficeEntityDetailPage.helpers.js';\nimport {\n buildFieldItems,\n renderBlocks,\n resolveHeaderItems,\n type FlagIconName,\n} from './BackofficeEntityDetailPage.view-helpers.js';\n\nexport type BackofficeEntityDetailPageProps = {\n config: BackofficeResolvedDetailLayoutFacetConfigBase;\n prepared: {\n id: string;\n detailId?: string;\n pageConfig: BackofficeResolvedDetailPageFacetConfigBase;\n pageQuery: PreloadedQuery<OperationType>;\n pageId: string;\n pagePath: string;\n };\n};\n\nconst renderFlagIcon = (iconName: FlagIconName): JSX.Element => {\n const iconSize = 14;\n switch (iconName) {\n case 'shield-lock':\n return (\n <ShieldLockSvg width={iconSize} height={iconSize} aria-hidden=\"true\" />\n );\n case 'shield-off':\n return (\n <ShieldOffSvg width={iconSize} height={iconSize} aria-hidden=\"true\" />\n );\n case 'settings-check':\n return (\n <SettingsCheckSvg\n width={iconSize}\n height={iconSize}\n aria-hidden=\"true\"\n />\n );\n case 'settings-x':\n return (\n <SettingsXSvg width={iconSize} height={iconSize} aria-hidden=\"true\" />\n );\n case 'x-badge':\n return (\n <XBadgeSvg width={iconSize} height={iconSize} aria-hidden=\"true\" />\n );\n case 'chat-check':\n return (\n <ChatCheckSvg width={iconSize} height={iconSize} aria-hidden=\"true\" />\n );\n case 'key':\n return <KeySvg width={iconSize} height={iconSize} aria-hidden=\"true\" />;\n case 'key-off':\n return (\n <KeyOffSvg width={iconSize} height={iconSize} aria-hidden=\"true\" />\n );\n case 'lock':\n return <LockSvg width={iconSize} height={iconSize} aria-hidden=\"true\" />;\n case 'lock-open':\n return (\n <LockOpenSvg width={iconSize} height={iconSize} aria-hidden=\"true\" />\n );\n case 'robot-check':\n return (\n <RobotCheckSvg width={iconSize} height={iconSize} aria-hidden=\"true\" />\n );\n case 'robot-x':\n return (\n <RobotXSvg width={iconSize} height={iconSize} aria-hidden=\"true\" />\n );\n case 'rocket':\n return (\n <RocketSvg width={iconSize} height={iconSize} aria-hidden=\"true\" />\n );\n case 'rocket-off':\n return (\n <RocketOffSvg width={iconSize} height={iconSize} aria-hidden=\"true\" />\n );\n default:\n throw new Error(`Unsupported flag icon: ${String(iconName)}`);\n }\n};\n\nconst resolveDetailPlacement = (item: {\n placement?: 'primary' | 'secondary';\n presentation?: {\n group?: string;\n desktop?: 'primary' | 'secondary' | 'fullWidth';\n };\n kind?: string;\n fields?: readonly {\n presentation?: {\n group?: string;\n desktop?: 'primary' | 'secondary' | 'fullWidth';\n };\n }[];\n}): 'primary' | 'secondary' => {\n if (item.presentation?.desktop === 'secondary') {\n return 'secondary';\n }\n if (\n item.presentation?.group === 'scope' ||\n item.presentation?.group === 'status'\n ) {\n return 'secondary';\n }\n const fieldGroups =\n item.fields?.map((field) => {\n return field.presentation?.group;\n }) ?? [];\n if (\n fieldGroups.length > 0 &&\n fieldGroups.every((group) => {\n return group === 'scope' || group === 'status';\n })\n ) {\n return 'secondary';\n }\n return item.placement ?? 'primary';\n};\n\nconst BackofficeEntityDetailPageContent = ({\n config,\n prepared,\n}: {\n config: BackofficeResolvedDetailPageFacetConfig;\n prepared: {\n pageQuery: PreloadedQuery<OperationType>;\n id: string;\n detailId?: string;\n pageId: string;\n pagePath: string;\n };\n}): JSX.Element => {\n const { t: tApp } = useTranslation();\n const { t } = useBackofficeReactTranslation();\n const { formatNumber, formatCurrency, formatPercent } =\n useBackofficeFormats();\n const { entities, entityRegistry } = useBackofficeConfig();\n const { layoutView } = useBackofficeEntityDetailLayoutContext();\n const routing = useContext(RoutingContext);\n const environment = useRelayEnvironment();\n const toast = useToast();\n const [actionState, setActionState] = useState<Record<string, boolean>>({});\n const [activeFormActionId, setActiveFormActionId] = useState<string | null>(\n null,\n );\n const resolvedPages = resolveVisibleDetailPages({\n mainPage: config.pages.mainPage,\n subPages: config.pages.subPages,\n activePagePath: prepared.pagePath,\n node: layoutView as never,\n });\n const activePage = resolvedPages.activePage ?? config.pages.mainPage;\n const pages =\n resolvedPages.pages.length > 0\n ? resolvedPages.pages\n : [config.pages.mainPage];\n\n const setActionLoading = (actionId: string, isLoading: boolean) => {\n setActionState((prev) => {\n if (prev[actionId] === isLoading) {\n return prev;\n }\n return { ...prev, [actionId]: isLoading };\n });\n };\n\n const { page } = config;\n\n const pageQueryData = usePreloadedQuery(page.query, prepared.pageQuery);\n const pageNodeRef = page.resolveNode(pageQueryData, {\n id: prepared.id,\n detailId: prepared.detailId,\n });\n const hasPageNode = pageNodeRef != null;\n const resolvedNode = useFragment(page.fragment, pageNodeRef as never);\n const relationEntityListRoutes = useMemo(() => {\n return Object.fromEntries(\n page.content\n .flatMap((block) => {\n if (block.kind !== 'section') {\n return [];\n }\n\n return block.fields.flatMap((field) => {\n if (field.type !== 'relation') {\n return [];\n }\n return [field.relation.target];\n });\n })\n .flatMap((entityId) => {\n const entityManifest = entities[entityId];\n if (entityManifest?.hasList !== true) {\n return [];\n }\n return [[entityId, entityManifest.routes.list]];\n }),\n );\n }, [entities, page.content]);\n\n if (!hasPageNode) {\n throw new HttpRedirect(config.routes.list);\n }\n\n return (\n <BackofficeEntityDetailScaffold\n node={resolvedNode}\n render={(node) => {\n const view = page.toView(node);\n const tabsItems = buildTabsItems({\n 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 resolveRelationItem = ({\n id,\n label,\n count,\n relation,\n listRoute,\n value,\n where,\n }: {\n id: string;\n label: string;\n count: number | null;\n relation: {\n target: string;\n filterId?: string;\n whereKey: string;\n path?: readonly string[];\n };\n listRoute: string;\n value: string;\n where: Record<string, unknown>;\n }): BackofficeRelationsMenuItem => {\n const { target, filterId, whereKey, path } = relation;\n const loadedEntity = entityRegistry.getLoadedListEntity(target);\n return {\n id,\n label,\n count,\n href:\n loadedEntity == null\n ? buildBackofficeFallbackListHref(listRoute, where, [\n {\n id:\n filterId ??\n (path == null\n ? whereKey\n : `${whereKey}.${path.join('.')}`),\n value,\n },\n ])\n : buildBackofficeListHref(loadedEntity.config, { where }),\n onClick: async (event) => {\n if (\n routing == null ||\n event.defaultPrevented ||\n event.button !== 0 ||\n event.metaKey ||\n event.altKey ||\n event.ctrlKey ||\n event.shiftKey\n ) {\n return;\n }\n\n event.preventDefault();\n\n const listEntity = await entityRegistry.loadListEntity(target);\n const next = buildBackofficeListLink(listEntity.config, {\n where,\n });\n\n routing.history.push({\n pathname: next.pathname,\n search: next.search === '' ? '' : `?${next.search}`,\n hash: '',\n });\n },\n };\n };\n\n const header = resolveHeaderItems(config.header, layoutView, {\n tApp,\n t,\n resolveEntityHref,\n renderLink: (href, label) => {\n return <Link to={href}>{label}</Link>;\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 });\n\n const actions = page.actions ?? [];\n let headerActionButtons: ReactNode[] = [];\n if (actions.length > 0) {\n const visibleActions = actions.filter((action) => {\n if (action.isVisible == null) {\n return true;\n }\n return action.isVisible(view);\n });\n\n if (visibleActions.length > 0) {\n headerActionButtons = visibleActions.map((action) => {\n const label = resolveLabel(action.label, tApp);\n const ariaLabel =\n action.ariaLabel != null\n ? resolveLabel(action.ariaLabel, tApp)\n : label;\n const variant = action.variant ?? 'secondary';\n const size = action.size ?? 'small';\n const isLoading = actionState[action.id] ?? false;\n const isDisabled =\n isLoading || action.isDisabled?.(view) === true;\n\n if (isRouteAction(action)) {\n const href = action.to(view);\n return (\n <LinkButton\n key={action.id}\n to={href}\n variant={variant}\n size={size}\n isDisabled={isDisabled}\n aria-label={ariaLabel}\n >\n {label}\n </LinkButton>\n );\n }\n\n if (isFormMutationAction(action)) {\n return (\n <Button\n key={action.id}\n type=\"button\"\n variant={variant}\n size={size}\n isLoading={false}\n disabled={isDisabled}\n onClick={() => {\n setActiveFormActionId(action.id);\n }}\n aria-label={ariaLabel}\n >\n {label}\n </Button>\n );\n }\n\n if (isMutationAction(action)) {\n const handleClick = () => {\n if (isLoading) {\n return;\n }\n const variables = action.getVariables(view);\n setActionLoading(action.id, true);\n commitMutation(environment, {\n mutation: action.mutation,\n variables,\n updater: (store) => {\n action.updater?.(store, view);\n },\n onCompleted: (response) => {\n setActionLoading(action.id, false);\n const mutationPayload = extractMutationPayload(response);\n if (mutationPayload != null) {\n let defaultErrorMessage = t(\n 'actions.form.errors.invalidPayload',\n );\n if (action.toasts?.error?.message != null) {\n defaultErrorMessage = resolveLabel(\n action.toasts.error.message,\n tApp,\n );\n } else if (action.toasts?.error?.title != null) {\n defaultErrorMessage = resolveLabel(\n action.toasts.error.title,\n tApp,\n );\n }\n\n const outcome = resolveMutationOutcome(\n mutationPayload,\n {\n defaultErrorMessage,\n mapReason: (reason) => {\n const mapped = action.mapErrorReason?.(\n reason,\n view,\n );\n if (mapped == null) {\n return null;\n }\n if (typeof mapped === 'function') {\n return resolveLabel(mapped, tApp);\n }\n return String(mapped);\n },\n },\n );\n if (!outcome.ok) {\n const error = new Error(outcome.message);\n action.onError?.(error, view);\n if (action.toasts?.error != null) {\n const toastSpec = resolveToastSpec(\n action.toasts.error,\n tApp,\n );\n toast.error(toastSpec.title, toastSpec.message);\n }\n return;\n }\n }\n\n action.onCompleted?.(response, view);\n if (action.toasts?.success != null) {\n const toastSpec = resolveToastSpec(\n action.toasts.success,\n tApp,\n );\n const toastActions = resolveToastViewActions({\n toast: action.toasts.success,\n response,\n node: view,\n tApp,\n entities,\n defaultLabel: t('actions.view'),\n navigateTo: (to) => {\n routing?.history.push({ pathname: to });\n },\n });\n toast.push({\n kind: 'info',\n title: toastSpec.title,\n message: toastSpec.message,\n actions: toastActions,\n });\n }\n },\n onError: (error) => {\n setActionLoading(action.id, false);\n action.onError?.(error, view);\n if (action.toasts?.error != null) {\n const toastSpec = resolveToastSpec(\n action.toasts.error,\n tApp,\n );\n toast.error(toastSpec.title, toastSpec.message);\n }\n },\n });\n };\n\n return (\n <Button\n key={action.id}\n type=\"button\"\n variant={variant}\n size={size}\n isLoading={isLoading}\n disabled={isDisabled}\n onClick={handleClick}\n aria-label={ariaLabel}\n >\n {label}\n </Button>\n );\n }\n\n return null;\n });\n }\n }\n\n const activeFormAction = actions.find((action) => {\n return action.id === activeFormActionId;\n });\n\n const { content } = page;\n\n const primaryNodes: ReactNode[] = [];\n const secondaryNodes: ReactNode[] = [];\n const relationMenuItems: BackofficeRelationsMenuItem[] = [];\n\n content.forEach((item, index) => {\n const placement = resolveDetailPlacement(item);\n const targetNodes =\n placement === 'secondary' ? secondaryNodes : primaryNodes;\n\n if (item.kind === 'section') {\n const sectionLabel = resolveLabel(item.title, tApp);\n const description =\n item.description != null\n ? resolveLabel(item.description, tApp)\n : undefined;\n const { items, relationItems, customNodes } = buildFieldItems(\n item.fields,\n view,\n {\n tApp,\n t,\n resolveEntityHref,\n formatNumber,\n formatCurrency,\n formatPercent,\n relationEntityListRoutes,\n resolveRelationItem,\n setWhereValue,\n renderTag: (tone, label) => {\n return <Tag tone={tone}>{label}</Tag>;\n },\n renderBadgeRow: (items) => {\n return <BackofficeDetailBadgeRow items={items} />;\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 renderFlagTag: (tag) => {\n return (\n <BackofficeDetailFlagTag\n tone={tag.tone}\n icon={\n tag.iconName != null\n ? renderFlagIcon(tag.iconName)\n : undefined\n }\n label={tag.label}\n />\n );\n },\n renderLink: (href, label) => {\n return <Link to={href}>{label}</Link>;\n },\n renderTaggedValue: (tag, value) => {\n return (\n <BackofficeDetailTaggedValue\n tag={tag as never}\n value={value}\n />\n );\n },\n wrapCustomNode: (id, custom) => {\n return <div key={id}>{custom}</div>;\n },\n },\n );\n relationItems.forEach((relation) => {\n if (\n !relationMenuItems.some((entry) => {\n return entry.id === relation.id;\n })\n ) {\n relationMenuItems.push(relation);\n }\n });\n\n const hasContent = items.length > 0 || customNodes.length > 0;\n\n if (!hasContent) {\n return;\n }\n\n targetNodes.push(\n <BackofficeDetailSection\n key={`${sectionLabel}-${index}`}\n title={sectionLabel}\n description={description}\n items={items.length > 0 ? items : undefined}\n >\n {customNodes}\n </BackofficeDetailSection>,\n );\n return;\n }\n\n const rendered = renderBlocks([item], view, {\n tApp,\n t,\n resolveEntityHref,\n keyPrefix: String(index),\n renderCustomSection: (key, title, child) => {\n return (\n <BackofficeDetailSection key={key} title={title}>\n {child}\n </BackofficeDetailSection>\n );\n },\n wrapCustomNode: (key, custom) => {\n return <div key={key}>{custom}</div>;\n },\n renderRelationList: ({ key, title, relation, value }) => {\n return (\n <BackofficeDetailRelationListBlock\n key={key}\n title={title}\n relation={relation}\n value={value ?? null}\n />\n );\n },\n resolveTableColumns: (columns) => {\n return buildDataTableColumns(columns as never, {\n tApp,\n t,\n resolveEntityHref,\n });\n },\n renderTable: ({ key, title, description, columns, rows }) => {\n return (\n <BackofficeDetailSection\n key={key}\n title={title}\n description={description}\n >\n <DataTable\n columns={columns as never}\n rows={rows}\n getRowId={(row, rowIndex) => {\n if (row != null && typeof row === 'object') {\n const record = row as Record<string, unknown>;\n const maybeId = record.id;\n if (\n typeof maybeId === 'string' &&\n maybeId.trim() !== ''\n ) {\n return maybeId;\n }\n }\n return String(rowIndex);\n }}\n />\n </BackofficeDetailSection>\n );\n },\n renderJson: ({\n key,\n title,\n description,\n value,\n defaultCollapsed,\n }) => {\n const content = (\n <BackofficeDetailSection\n key={key}\n title={title}\n description={description}\n >\n <LazyBackofficeJsonViewer value={value} title={title} />\n </BackofficeDetailSection>\n );\n if (defaultCollapsed !== true) {\n return content;\n }\n return (\n <details key={key}>\n <summary>{title}</summary>\n {content}\n </details>\n );\n },\n renderCode: ({ key, title, description, value, outputLabel }) => {\n return (\n <BackofficeDetailSection\n key={key}\n title={title}\n description={description}\n >\n <HighlightCode\n badgeLabel={outputLabel}\n copyCode={value}\n fallbackCodeText={value}\n />\n </BackofficeDetailSection>\n );\n },\n renderPayload: ({ key, title, description, content, format }) => {\n return (\n <BackofficeDetailPayload\n key={key}\n title={title}\n description={description}\n content={content}\n format={format as never}\n />\n );\n },\n renderErrorList: ({ key, title, description, items }) => {\n return (\n <BackofficeDetailErrorList\n key={key}\n title={title}\n description={description}\n items={items as never}\n />\n );\n },\n renderKeyValueListSection: ({ key, title, description, items }) => {\n return (\n <BackofficeDetailSection\n key={key}\n title={title}\n description={description}\n >\n <BackofficeKeyValueList items={items} />\n </BackofficeDetailSection>\n );\n },\n });\n const blockNode = rendered[0];\n if (blockNode != null) {\n targetNodes.push(blockNode);\n }\n });\n\n const relationsMenuNode =\n relationMenuItems.length > 0 ? (\n <BackofficeRelationsMenu\n label={t('relations.menu.label')}\n items={relationMenuItems}\n />\n ) : null;\n\n const headerActions =\n headerActionButtons.length > 0 || relationsMenuNode != null ? (\n <div className={pageStyles.headerActions}>\n {headerActionButtons.length > 0 && (\n <div className={pageStyles.headerActionGroup}>\n {headerActionButtons}\n </div>\n )}\n {relationsMenuNode != null && (\n <div className={pageStyles.headerRelationGroup}>\n {relationsMenuNode}\n </div>\n )}\n </div>\n ) : undefined;\n\n const headerMetaNode =\n header.status != null || header.badges != null ? (\n <div className={pageStyles.headerMeta}>\n {header.status}\n {header.badges}\n </div>\n ) : undefined;\n\n const headerItemsNode =\n header.items != null && header.items.length > 0 ? (\n <div className={pageStyles.headerMetaList}>\n <BackofficeKeyValueList items={header.items} />\n </div>\n ) : null;\n\n const hasAside = secondaryNodes.length > 0;\n let tabsNode: JSX.Element | null = null;\n if (pages.length > 1) {\n tabsNode = (\n <BackofficeTabs\n items={tabsItems}\n activeId={activePage.id}\n onChange={() => {}}\n variant=\"underline\"\n />\n );\n }\n const headerNode = (\n <div className={pageStyles.headerBlock}>\n <BackofficePageHeader\n title={header.title}\n subtitle={header.subtitle}\n actions={headerActions}\n meta={headerMetaNode}\n />\n {headerItemsNode}\n </div>\n );\n\n return (\n <BackofficeRightPageLayout breadcrumb={breadcrumb}>\n <DetailPageTemplate\n headerNode={headerNode}\n tabsNode={tabsNode}\n sidePanel={hasAside ? <>{secondaryNodes}</> : undefined}\n sidePanelVariant=\"plain\"\n headerDensity=\"compact\"\n >\n <>{primaryNodes}</>\n </DetailPageTemplate>\n {activeFormAction != null &&\n isFormMutationAction(activeFormAction) && (\n <LazyBackofficeEntityActionFormDialog\n isOpen\n action={activeFormAction}\n node={view}\n onClose={() => {\n setActiveFormActionId(null);\n }}\n />\n )}\n </BackofficeRightPageLayout>\n );\n }}\n />\n );\n};\n\nexport const BackofficeEntityDetailPage = ({\n config,\n prepared,\n}: BackofficeEntityDetailPageProps): JSX.Element => {\n const { layoutView } = useBackofficeEntityDetailLayoutContext();\n\n const resolvedPages = resolveVisibleDetailPages({\n mainPage: config.pages.mainPage,\n subPages: config.pages.subPages,\n activePagePath: prepared.pagePath,\n node: layoutView as never,\n });\n\n if (!resolvedPages.hasVisiblePages || resolvedPages.activePage == null) {\n throw new HttpRedirect(config.routes.list);\n }\n\n if (resolvedPages.activePage.id !== prepared.pageId) {\n throw new HttpRedirect(\n config.routes.detailPage(prepared.id, resolvedPages.activePage.id),\n );\n }\n\n return (\n <BackofficeEntityDetailPageContent\n config={prepared.pageConfig}\n prepared={prepared}\n />\n );\n};\n\nexport default BackofficeEntityDetailPage;\n"],"mappings":"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"}
@@ -0,0 +1,414 @@
1
+ import { isEmptyText as e, resolveBadgeTone as t, resolveLabel as n, resolveRelationValue as r, resolveValueLabel as i } from "./BackofficeEntityDetailPage.helpers.js";
2
+ import { Fragment as a, createElement as o } from "react";
3
+ //#region src/pages/BackofficeEntityDetailPage.view-helpers.ts
4
+ var s = (e, t, n) => {
5
+ switch (e) {
6
+ case "yesNo": return t ? {
7
+ tone: "success",
8
+ label: n("common.boolean.yes")
9
+ } : {
10
+ tone: "neutral",
11
+ label: n("common.boolean.no")
12
+ };
13
+ case "capability": return t ? {
14
+ tone: "success",
15
+ label: n("flags.capability.allowed"),
16
+ iconName: "shield-lock"
17
+ } : {
18
+ tone: "neutral",
19
+ label: n("flags.capability.denied"),
20
+ iconName: "shield-off"
21
+ };
22
+ case "enabled": return t ? {
23
+ tone: "success",
24
+ label: n("flags.enabled.enabled"),
25
+ iconName: "settings-check"
26
+ } : {
27
+ tone: "neutral",
28
+ label: n("flags.enabled.disabled"),
29
+ iconName: "settings-x"
30
+ };
31
+ case "failure": return t ? {
32
+ tone: "danger",
33
+ label: n("flags.failure.failed"),
34
+ iconName: "x-badge"
35
+ } : {
36
+ tone: "success",
37
+ label: n("flags.failure.ok"),
38
+ iconName: "chat-check"
39
+ };
40
+ case "encrypted": return t ? {
41
+ tone: "info",
42
+ label: n("flags.encrypted.encrypted"),
43
+ iconName: "key"
44
+ } : {
45
+ tone: "neutral",
46
+ label: n("flags.encrypted.notEncrypted"),
47
+ iconName: "key-off"
48
+ };
49
+ case "locked": return t ? {
50
+ tone: "warning",
51
+ label: n("flags.locked.locked"),
52
+ iconName: "lock"
53
+ } : {
54
+ tone: "success",
55
+ label: n("flags.locked.unlocked"),
56
+ iconName: "lock-open"
57
+ };
58
+ case "default": return t ? {
59
+ tone: "info",
60
+ label: n("flags.default.default")
61
+ } : {
62
+ tone: "neutral",
63
+ label: n("flags.default.notDefault")
64
+ };
65
+ case "agentManaged": return t ? {
66
+ tone: "info",
67
+ label: n("flags.agentManaged.agentManaged"),
68
+ iconName: "robot-check"
69
+ } : {
70
+ tone: "neutral",
71
+ label: n("flags.agentManaged.userManaged"),
72
+ iconName: "robot-x"
73
+ };
74
+ case "deployedProduction": return t ? {
75
+ tone: "success",
76
+ label: n("flags.deployedProduction.deployed"),
77
+ iconName: "rocket"
78
+ } : {
79
+ tone: "neutral",
80
+ label: n("flags.deployedProduction.notDeployed"),
81
+ iconName: "rocket-off"
82
+ };
83
+ case "forced": return t ? {
84
+ tone: "warning",
85
+ label: n("flags.forced.forced")
86
+ } : {
87
+ tone: "neutral",
88
+ label: n("flags.forced.normal")
89
+ };
90
+ default: throw Error(`Unsupported flag variant: ${String(e)}`);
91
+ }
92
+ }, c = (t, n) => {
93
+ let { tApp: r, t: a, resolveEntityHref: o, renderLink: s } = n, c = a("common.notAvailable");
94
+ if (t.type === "text") {
95
+ let n = i(t.value, r);
96
+ return e(n) ? c : n;
97
+ }
98
+ if (t.type === "entityRef") {
99
+ let { id: e } = t;
100
+ if (e == null || e.trim() === "") return c;
101
+ let n = i(t.label, r), a = n != null && String(n).trim() !== "" ? n : null;
102
+ if (a == null) return c;
103
+ let l = o?.(t.entity, e) ?? null;
104
+ return l == null ? a : s(l, a);
105
+ }
106
+ let { href: l } = t;
107
+ if (l == null || l.trim() === "") return c;
108
+ let u = i(t.label, r);
109
+ return e(u) ? c : s(l, u);
110
+ }, l = (t, n, r) => {
111
+ let { tApp: a, t: o, resolveEntityHref: s, renderDate: c, renderLink: l } = r, u = o("common.notAvailable");
112
+ if (t.type === "dateTime") return c(t.value(n), u);
113
+ if (t.type === "entityRef") {
114
+ let e = t.id(n);
115
+ if (e == null || e.trim() === "") return u;
116
+ let r = i(t.value?.(n), a), o = r != null && String(r).trim() !== "" ? r : null;
117
+ if (o == null) return u;
118
+ let c = s?.(t.entity, e) ?? null;
119
+ return c == null ? o : l(c, o);
120
+ }
121
+ if (t.type === "link") {
122
+ let r = t.href(n), o = i(t.value(n), a);
123
+ return r == null || r.trim() === "" || e(o) ? u : l(r, o);
124
+ }
125
+ let d = i(t.value(n), a);
126
+ return e(d) ? u : d;
127
+ }, u = (e, n, r, a) => {
128
+ if (e.type === "badgeRow") {
129
+ let t = e.items(n).map((e) => {
130
+ let t = i(e.label, r), n = t == null ? "" : String(t);
131
+ return {
132
+ ...e,
133
+ label: n
134
+ };
135
+ });
136
+ return t.length === 0 ? void 0 : a.renderBadgeRow(t);
137
+ }
138
+ let o = i(e.value(n), r), s = o == null ? "" : String(o);
139
+ if (s.trim() === "") return;
140
+ let c = t(e.tone, n);
141
+ return a.renderTag(c, s);
142
+ }, d = (a, o, l) => {
143
+ let { tApp: u, t: d, resolveEntityHref: f, formatNumber: p, formatCurrency: m, formatPercent: h, relationEntityListRoutes: g, resolveRelationItem: _, setWhereValue: v, renderTag: y, renderBadgeRow: b, renderDate: x, renderFlagTag: S, renderLink: C, renderTaggedValue: w, wrapCustomNode: T } = l, E = [], D = [], O = [], k = d("common.notAvailable");
144
+ return a.forEach((a, l) => {
145
+ let A = `${a.type}-${l}`;
146
+ switch (a.type) {
147
+ case "text": {
148
+ let e = i(a.value(o), u);
149
+ E.push({
150
+ id: A,
151
+ label: n(a.label, u),
152
+ size: a.size,
153
+ value: e,
154
+ copyValue: a.copyValue?.(o) ?? void 0,
155
+ fullWidth: a.fullWidth
156
+ });
157
+ break;
158
+ }
159
+ case "badge": {
160
+ let e = i(a.value(o), u), r = e == null ? "" : String(e), s = t(a.tone, o);
161
+ E.push({
162
+ id: A,
163
+ label: n(a.label, u),
164
+ size: a.size,
165
+ value: r.trim() === "" ? null : y(s, r)
166
+ });
167
+ break;
168
+ }
169
+ case "badgeRow": {
170
+ let e = a.items(o).map((e) => {
171
+ let t = i(e.label, u), n = t == null ? "" : String(t);
172
+ return {
173
+ ...e,
174
+ label: n
175
+ };
176
+ });
177
+ E.push({
178
+ id: A,
179
+ label: n(a.label, u),
180
+ size: a.size,
181
+ value: e.length > 0 ? b(e) : null,
182
+ fullWidth: a.fullWidth
183
+ });
184
+ break;
185
+ }
186
+ case "dateTime":
187
+ E.push({
188
+ id: A,
189
+ label: n(a.label, u),
190
+ size: a.size,
191
+ value: x(a.value(o), k)
192
+ });
193
+ break;
194
+ case "number": {
195
+ let e = a.value(o), t = null;
196
+ e != null && (t = a.format === "currency" ? m(e) : a.format === "percent" ? h(e) : p(e)), E.push({
197
+ id: A,
198
+ label: n(a.label, u),
199
+ size: a.size,
200
+ value: t
201
+ });
202
+ break;
203
+ }
204
+ case "flag": {
205
+ let e = a.value(o);
206
+ E.push({
207
+ id: A,
208
+ label: n(a.label, u),
209
+ size: a.size,
210
+ value: e == null ? null : S(s(a.variant, e, d))
211
+ });
212
+ break;
213
+ }
214
+ case "entityRef": {
215
+ let e = a.id(o), t = null;
216
+ if (e != null && e.trim() !== "") {
217
+ let n = a.value?.(o), r = n != null && n.trim() !== "" ? n : null, i = f?.(a.entity, e) ?? null;
218
+ r != null && (t = i == null ? r : C(i, r));
219
+ }
220
+ E.push({
221
+ id: A,
222
+ label: n(a.label, u),
223
+ size: a.size,
224
+ value: t ?? k
225
+ });
226
+ break;
227
+ }
228
+ case "link": {
229
+ let t = a.href(o), r = a.value(o);
230
+ E.push({
231
+ id: A,
232
+ label: n(a.label, u),
233
+ size: a.size,
234
+ value: t != null && t.trim() !== "" && !e(r) ? C(t, r) : null
235
+ });
236
+ break;
237
+ }
238
+ case "taggedValue": {
239
+ let e = a.tag(o), t = c(a.value(o), {
240
+ tApp: u,
241
+ t: d,
242
+ resolveEntityHref: f,
243
+ renderLink: C
244
+ }), r = e == null ? null : {
245
+ ...e,
246
+ label: (() => {
247
+ let t = i(e.label, u);
248
+ return t == null ? "" : String(t);
249
+ })()
250
+ };
251
+ E.push({
252
+ id: A,
253
+ label: n(a.label, u),
254
+ size: a.size,
255
+ value: r != null || t != null ? w(r, t) : null,
256
+ fullWidth: a.fullWidth
257
+ });
258
+ break;
259
+ }
260
+ case "relation": {
261
+ let e = r(a.value(o));
262
+ if (e == null) break;
263
+ let t = g[a.relation.target];
264
+ if (t == null) break;
265
+ let i = v(null, a.relation.whereKey, e, a.relation.path);
266
+ if (i == null) break;
267
+ D.push(_({
268
+ id: A,
269
+ label: n(a.label, u),
270
+ count: a.count?.(o) ?? null,
271
+ relation: a.relation,
272
+ listRoute: t,
273
+ value: e,
274
+ where: i
275
+ }));
276
+ break;
277
+ }
278
+ case "custom": {
279
+ let e = a.render(o);
280
+ if (e == null) break;
281
+ if (a.label != null) {
282
+ E.push({
283
+ id: A,
284
+ label: n(a.label, u),
285
+ size: a.size,
286
+ value: e,
287
+ fullWidth: a.fullWidth
288
+ });
289
+ break;
290
+ }
291
+ O.push(T(A, e));
292
+ break;
293
+ }
294
+ default: break;
295
+ }
296
+ }), {
297
+ items: E,
298
+ relationItems: D,
299
+ customNodes: O
300
+ };
301
+ }, f = (e, r, s) => {
302
+ let { tApp: d, t: f, resolveEntityHref: p, renderLink: m, renderDate: h, renderTag: g, renderBadgeRow: _ } = s, v = e.titleValue?.(r, d) ?? n(e.title, d), y = v.trim() === "" ? n(e.title, d) : v, b;
303
+ if (e.subtitleItems != null && e.subtitleItems.length > 0) {
304
+ let { subtitleItems: t } = e, n = e.subtitleSeparator ?? " / ", i = [];
305
+ t.forEach((e, a) => {
306
+ i.push(o("span", { key: e.id }, c(e.value(r), {
307
+ tApp: d,
308
+ t: f,
309
+ resolveEntityHref: p,
310
+ renderLink: m
311
+ }))), a < t.length - 1 && i.push(o("span", { key: `${e.id}-sep` }, n));
312
+ }), b = o("span", null, ...i);
313
+ } else {
314
+ let t = e.subtitleValue?.(r, d) ?? (e.subtitle == null ? null : n(e.subtitle, d));
315
+ b = t != null && t.trim() !== "" ? t : void 0;
316
+ }
317
+ let x = [];
318
+ e.badges?.forEach((e, s) => {
319
+ let c = n(e.label, d), l = i(e.value(r), d), u = l == null ? "" : String(l);
320
+ u.trim() !== "" && (x.push(g(t(e.tone, r), `${c}: ${u}`)), typeof x[x.length - 1] == "object" && (x[x.length - 1] = o(a, { key: `${c}-${s}` }, x[x.length - 1])));
321
+ });
322
+ let S = e.status == null ? void 0 : u(e.status, r, d, {
323
+ renderBadgeRow: _,
324
+ renderTag: g
325
+ }), C = e.meta?.map((e, t) => {
326
+ let i = n(e.label, d);
327
+ return {
328
+ id: `${i}-${t}`,
329
+ label: i,
330
+ value: l(e, r, {
331
+ tApp: d,
332
+ t: f,
333
+ resolveEntityHref: p,
334
+ renderDate: h,
335
+ renderLink: m
336
+ })
337
+ };
338
+ });
339
+ return {
340
+ title: y,
341
+ subtitle: b,
342
+ badges: x.length > 0 ? o(a, null, ...x) : void 0,
343
+ status: S,
344
+ items: C
345
+ };
346
+ }, p = (e, t, r) => {
347
+ let { tApp: a, t: o, keyPrefix: s } = r;
348
+ return e == null || e.length === 0 ? [] : e.map((e, c) => {
349
+ let l = s == null ? `${e.kind}-${c}` : `${s}-${e.kind}-${c}`;
350
+ if (e.kind === "custom") {
351
+ let i = e.render(t);
352
+ return i == null ? null : e.label == null ? r.wrapCustomNode(l, i) : r.renderCustomSection(l, n(e.label, a), i);
353
+ }
354
+ let u = n(e.label, a), d = e.description == null ? void 0 : n(e.description, a);
355
+ if (e.kind === "relationList") return r.renderRelationList({
356
+ key: l,
357
+ title: u,
358
+ relation: e.relation,
359
+ value: e.value(t)
360
+ });
361
+ if (e.kind === "table") return r.renderTable({
362
+ key: l,
363
+ title: u,
364
+ description: d,
365
+ columns: r.resolveTableColumns(e.columns),
366
+ rows: e.rows(t)
367
+ });
368
+ if (e.kind === "json") return r.renderJson({
369
+ key: l,
370
+ title: u,
371
+ description: d,
372
+ value: e.value(t),
373
+ defaultCollapsed: e.presentation?.collapse?.defaultCollapsed ?? (e.presentation?.group === "technical" || e.presentation?.group === "raw")
374
+ });
375
+ if (e.kind === "code") return r.renderCode({
376
+ key: l,
377
+ title: u,
378
+ description: d,
379
+ value: e.value(t),
380
+ outputLabel: o("tools.output")
381
+ });
382
+ if (e.kind === "payload") return r.renderPayload({
383
+ key: l,
384
+ title: u,
385
+ description: d,
386
+ content: e.value(t),
387
+ format: e.format
388
+ });
389
+ if (e.kind === "errorList") return r.renderErrorList({
390
+ key: l,
391
+ title: u,
392
+ description: d,
393
+ items: e.errors(t)
394
+ });
395
+ let f = e.items.map((e, r) => {
396
+ let s = n(e.label, a), c = i(e.value(t), a);
397
+ return {
398
+ id: `${s}-${r}`,
399
+ label: s,
400
+ value: c ?? o("common.notAvailable")
401
+ };
402
+ });
403
+ return r.renderKeyValueListSection({
404
+ key: l,
405
+ title: u,
406
+ description: d,
407
+ items: f
408
+ });
409
+ });
410
+ };
411
+ //#endregion
412
+ export { d as buildFieldItems, p as renderBlocks, s as resolveFlagTag, f as resolveHeaderItems, l as resolveHeaderMeta, u as resolveHeaderStatus, c as resolveInlineValue };
413
+
414
+ //# sourceMappingURL=BackofficeEntityDetailPage.view-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackofficeEntityDetailPage.view-helpers.js","names":[],"sources":["../../../src/pages/BackofficeEntityDetailPage.view-helpers.ts"],"sourcesContent":["/* eslint-disable no-ternary */\nimport type {\n BackofficeBadgeItem,\n BackofficeDetailBlockSpec,\n BackofficeDetailFieldSpec,\n BackofficeDetailHeaderConfig,\n BackofficeDetailHeaderMetaSpec,\n BackofficeDetailHeaderStatusSpec,\n BackofficeFieldSize,\n BackofficeFlagVariant,\n BackofficeInlineValueSpec,\n BackofficeRuntimeRelationFilterSpec,\n} from '@plumile/backoffice-core/types.js';\nimport type { TFunction } from 'i18next';\nimport { Fragment, createElement, type ReactNode } from 'react';\n\nimport {\n isEmptyText,\n resolveLabel,\n resolveBadgeTone,\n resolveRelationValue,\n resolveValueLabel,\n} from './BackofficeEntityDetailPage.helpers.js';\n\nexport type ResolvedFieldItem = {\n id: string;\n label: string;\n size: BackofficeFieldSize;\n value: ReactNode;\n copyValue?: string;\n fullWidth?: boolean;\n};\n\nexport type ResolvedHeaderItem = {\n id: string;\n label: string;\n value: ReactNode;\n};\n\nexport type FlagIconName =\n | 'shield-lock'\n | 'shield-off'\n | 'settings-check'\n | 'settings-x'\n | 'x-badge'\n | 'chat-check'\n | 'key'\n | 'key-off'\n | 'lock'\n | 'lock-open'\n | 'robot-check'\n | 'robot-x'\n | 'rocket'\n | 'rocket-off';\n\nexport type ResolvedFlagTag = {\n tone: 'neutral' | 'info' | 'success' | 'warning' | 'danger';\n label: string;\n iconName?: FlagIconName;\n};\n\nexport const resolveFlagTag = (\n variant: BackofficeFlagVariant,\n value: boolean,\n t: TFunction,\n): ResolvedFlagTag => {\n switch (variant) {\n case 'yesNo':\n return value\n ? { tone: 'success', label: t('common.boolean.yes') }\n : { tone: 'neutral', label: t('common.boolean.no') };\n case 'capability':\n return value\n ? {\n tone: 'success',\n label: t('flags.capability.allowed'),\n iconName: 'shield-lock',\n }\n : {\n tone: 'neutral',\n label: t('flags.capability.denied'),\n iconName: 'shield-off',\n };\n case 'enabled':\n return value\n ? {\n tone: 'success',\n label: t('flags.enabled.enabled'),\n iconName: 'settings-check',\n }\n : {\n tone: 'neutral',\n label: t('flags.enabled.disabled'),\n iconName: 'settings-x',\n };\n case 'failure':\n return value\n ? {\n tone: 'danger',\n label: t('flags.failure.failed'),\n iconName: 'x-badge',\n }\n : {\n tone: 'success',\n label: t('flags.failure.ok'),\n iconName: 'chat-check',\n };\n case 'encrypted':\n return value\n ? {\n tone: 'info',\n label: t('flags.encrypted.encrypted'),\n iconName: 'key',\n }\n : {\n tone: 'neutral',\n label: t('flags.encrypted.notEncrypted'),\n iconName: 'key-off',\n };\n case 'locked':\n return value\n ? {\n tone: 'warning',\n label: t('flags.locked.locked'),\n iconName: 'lock',\n }\n : {\n tone: 'success',\n label: t('flags.locked.unlocked'),\n iconName: 'lock-open',\n };\n case 'default':\n return value\n ? { tone: 'info', label: t('flags.default.default') }\n : { tone: 'neutral', label: t('flags.default.notDefault') };\n case 'agentManaged':\n return value\n ? {\n tone: 'info',\n label: t('flags.agentManaged.agentManaged'),\n iconName: 'robot-check',\n }\n : {\n tone: 'neutral',\n label: t('flags.agentManaged.userManaged'),\n iconName: 'robot-x',\n };\n case 'deployedProduction':\n return value\n ? {\n tone: 'success',\n label: t('flags.deployedProduction.deployed'),\n iconName: 'rocket',\n }\n : {\n tone: 'neutral',\n label: t('flags.deployedProduction.notDeployed'),\n iconName: 'rocket-off',\n };\n case 'forced':\n return value\n ? { tone: 'warning', label: t('flags.forced.forced') }\n : { tone: 'neutral', label: t('flags.forced.normal') };\n default:\n throw new Error(`Unsupported flag variant: ${String(variant)}`);\n }\n};\n\nexport const resolveInlineValue = (\n value: BackofficeInlineValueSpec,\n options: {\n tApp: TFunction;\n t: TFunction;\n resolveEntityHref?: (entityId: string, refId: string) => string | null;\n renderLink: (href: string, label: ReactNode) => ReactNode;\n },\n): ReactNode => {\n const { tApp, t, resolveEntityHref, renderLink } = options;\n const fallback = t('common.notAvailable');\n\n if (value.type === 'text') {\n const resolved = resolveValueLabel(value.value, tApp);\n return isEmptyText(resolved) ? fallback : resolved;\n }\n\n if (value.type === 'entityRef') {\n const { id } = value;\n if (id == null || id.trim() === '') {\n return fallback;\n }\n const resolvedLabel = resolveValueLabel(value.label, tApp);\n const label =\n resolvedLabel != null && String(resolvedLabel).trim() !== ''\n ? resolvedLabel\n : null;\n if (label == null) {\n return fallback;\n }\n const href = resolveEntityHref?.(value.entity, id) ?? null;\n return href != null ? renderLink(href, label) : label;\n }\n\n const { href } = value;\n if (href == null || href.trim() === '') {\n return fallback;\n }\n const label = resolveValueLabel(value.label, tApp);\n if (isEmptyText(label)) {\n return fallback;\n }\n return renderLink(href, label);\n};\n\nexport const resolveHeaderMeta = <Node>(\n meta: BackofficeDetailHeaderMetaSpec<Node>,\n node: Node,\n options: {\n tApp: TFunction;\n t: TFunction;\n resolveEntityHref?: (entityId: string, refId: string) => string | null;\n renderDate: (\n value: string | number | null | undefined,\n fallback: string,\n ) => ReactNode;\n renderLink: (href: string, label: ReactNode) => ReactNode;\n },\n): ReactNode => {\n const { tApp, t, resolveEntityHref, renderDate, renderLink } = options;\n const fallback = t('common.notAvailable');\n\n if (meta.type === 'dateTime') {\n return renderDate(meta.value(node), fallback);\n }\n\n if (meta.type === 'entityRef') {\n const idValue = meta.id(node);\n if (idValue == null || idValue.trim() === '') {\n return fallback;\n }\n const labelValue = resolveValueLabel(meta.value?.(node), tApp);\n const label =\n labelValue != null && String(labelValue).trim() !== ''\n ? labelValue\n : null;\n if (label == null) {\n return fallback;\n }\n const href = resolveEntityHref?.(meta.entity, idValue) ?? null;\n return href != null ? renderLink(href, label) : label;\n }\n\n if (meta.type === 'link') {\n const href = meta.href(node);\n const labelValue = resolveValueLabel(meta.value(node), tApp);\n if (href == null || href.trim() === '' || isEmptyText(labelValue)) {\n return fallback;\n }\n return renderLink(href, labelValue);\n }\n\n const value = resolveValueLabel(meta.value(node), tApp);\n return isEmptyText(value) ? fallback : value;\n};\n\nexport const resolveHeaderStatus = <Node>(\n status: BackofficeDetailHeaderStatusSpec<Node>,\n node: Node,\n tApp: TFunction,\n renderers: {\n renderBadgeRow: (items: readonly BackofficeBadgeItem[]) => ReactNode;\n renderTag: (\n tone: ReturnType<typeof resolveBadgeTone<Node>>,\n label: string,\n ) => ReactNode;\n },\n): ReactNode | undefined => {\n if (status.type === 'badgeRow') {\n const items = status.items(node).map((item) => {\n const resolvedLabel = resolveValueLabel(item.label, tApp);\n const label = resolvedLabel == null ? '' : String(resolvedLabel);\n return { ...item, label };\n });\n if (items.length === 0) {\n return undefined;\n }\n return renderers.renderBadgeRow(items);\n }\n\n const value = resolveValueLabel(status.value(node), tApp);\n const label = value == null ? '' : String(value);\n if (label.trim() === '') {\n return undefined;\n }\n const tone = resolveBadgeTone(status.tone, node);\n return renderers.renderTag(tone, label);\n};\n\nexport const buildFieldItems = <Node, RelationItem>(\n fields: readonly BackofficeDetailFieldSpec<Node>[],\n node: Node,\n options: {\n tApp: TFunction;\n t: TFunction;\n resolveEntityHref?: (entityId: string, refId: string) => string | null;\n formatNumber: (value: number | null | undefined) => string;\n formatCurrency: (value: number | null | undefined) => string;\n formatPercent: (value: number | null | undefined) => string;\n relationEntityListRoutes: Record<string, string>;\n resolveRelationItem: (args: {\n id: string;\n label: string;\n count: number | null;\n relation: BackofficeRuntimeRelationFilterSpec;\n listRoute: string;\n value: string;\n where: Record<string, unknown>;\n }) => RelationItem;\n setWhereValue: (\n where: Record<string, unknown> | null,\n whereKey: string,\n value: string,\n path?: readonly string[],\n ) => Record<string, unknown> | null;\n renderTag: (\n tone: ReturnType<typeof resolveBadgeTone<Node>>,\n label: string,\n ) => ReactNode;\n renderBadgeRow: (items: readonly BackofficeBadgeItem[]) => ReactNode;\n renderDate: (\n value: string | number | null | undefined,\n fallback: string,\n ) => ReactNode;\n renderFlagTag: (tag: ResolvedFlagTag) => ReactNode;\n renderLink: (href: string, label: ReactNode) => ReactNode;\n renderTaggedValue: (tag: unknown, value: ReactNode) => ReactNode;\n wrapCustomNode: (id: string, node: ReactNode) => ReactNode;\n },\n): {\n items: ResolvedFieldItem[];\n relationItems: RelationItem[];\n customNodes: ReactNode[];\n} => {\n const {\n tApp,\n t,\n resolveEntityHref,\n formatNumber,\n formatCurrency,\n formatPercent,\n relationEntityListRoutes,\n resolveRelationItem,\n setWhereValue,\n renderTag,\n renderBadgeRow,\n renderDate,\n renderFlagTag,\n renderLink,\n renderTaggedValue,\n wrapCustomNode,\n } = options;\n const items: ResolvedFieldItem[] = [];\n const relationItems: RelationItem[] = [];\n const customNodes: ReactNode[] = [];\n const fallback = t('common.notAvailable');\n\n fields.forEach((field, index) => {\n const id = `${field.type}-${index}`;\n\n switch (field.type) {\n case 'text': {\n const value = resolveValueLabel(field.value(node), tApp);\n items.push({\n id,\n label: resolveLabel(field.label, tApp),\n size: field.size,\n value,\n copyValue: field.copyValue?.(node) ?? undefined,\n fullWidth: field.fullWidth,\n });\n break;\n }\n case 'badge': {\n const value = resolveValueLabel(field.value(node), tApp);\n const label = value != null ? String(value) : '';\n const tone = resolveBadgeTone(field.tone, node);\n items.push({\n id,\n label: resolveLabel(field.label, tApp),\n size: field.size,\n value: label.trim() !== '' ? renderTag(tone, label) : null,\n });\n break;\n }\n case 'badgeRow': {\n const badgeItems = field.items(node).map((item) => {\n const resolvedLabel = resolveValueLabel(item.label, tApp);\n const label = resolvedLabel == null ? '' : String(resolvedLabel);\n return { ...item, label };\n });\n items.push({\n id,\n label: resolveLabel(field.label, tApp),\n size: field.size,\n value: badgeItems.length > 0 ? renderBadgeRow(badgeItems) : null,\n fullWidth: field.fullWidth,\n });\n break;\n }\n case 'dateTime': {\n items.push({\n id,\n label: resolveLabel(field.label, tApp),\n size: field.size,\n value: renderDate(field.value(node), fallback),\n });\n break;\n }\n case 'number': {\n const value = field.value(node);\n let formatted: string | null = null;\n if (value != null) {\n if (field.format === 'currency') {\n formatted = formatCurrency(value);\n } else if (field.format === 'percent') {\n formatted = formatPercent(value);\n } else {\n formatted = formatNumber(value);\n }\n }\n items.push({\n id,\n label: resolveLabel(field.label, tApp),\n size: field.size,\n value: formatted,\n });\n break;\n }\n case 'flag': {\n const value = field.value(node);\n items.push({\n id,\n label: resolveLabel(field.label, tApp),\n size: field.size,\n value:\n value != null\n ? renderFlagTag(resolveFlagTag(field.variant, value, t))\n : null,\n });\n break;\n }\n case 'entityRef': {\n const idValue = field.id(node);\n let value: ReactNode | null = null;\n if (idValue != null && idValue.trim() !== '') {\n const labelValue = field.value?.(node);\n const label =\n labelValue != null && labelValue.trim() !== '' ? labelValue : null;\n const href = resolveEntityHref?.(field.entity, idValue) ?? null;\n if (label != null) {\n value = href != null ? renderLink(href, label) : label;\n }\n }\n items.push({\n id,\n label: resolveLabel(field.label, tApp),\n size: field.size,\n value: value ?? fallback,\n });\n break;\n }\n case 'link': {\n const href = field.href(node);\n const labelValue = field.value(node);\n items.push({\n id,\n label: resolveLabel(field.label, tApp),\n size: field.size,\n value:\n href != null && href.trim() !== '' && !isEmptyText(labelValue)\n ? renderLink(href, labelValue)\n : null,\n });\n break;\n }\n case 'taggedValue': {\n const tag = field.tag(node);\n const valueNode = resolveInlineValue(field.value(node), {\n tApp,\n t,\n resolveEntityHref,\n renderLink,\n });\n const resolvedTag =\n tag == null\n ? null\n : {\n ...tag,\n label: (() => {\n const labelValue = resolveValueLabel(tag.label, tApp);\n return labelValue == null ? '' : String(labelValue);\n })(),\n };\n items.push({\n id,\n label: resolveLabel(field.label, tApp),\n size: field.size,\n value:\n resolvedTag != null || valueNode != null\n ? renderTaggedValue(resolvedTag, valueNode)\n : null,\n fullWidth: field.fullWidth,\n });\n break;\n }\n case 'relation': {\n const value = resolveRelationValue(field.value(node));\n if (value == null) {\n break;\n }\n const listRoute = relationEntityListRoutes[field.relation.target];\n if (listRoute == null) {\n break;\n }\n const where = setWhereValue(\n null,\n field.relation.whereKey,\n value,\n field.relation.path,\n );\n if (where == null) {\n break;\n }\n relationItems.push(\n resolveRelationItem({\n id,\n label: resolveLabel(field.label, tApp),\n count: field.count?.(node) ?? null,\n relation: field.relation,\n listRoute,\n value,\n where,\n }),\n );\n break;\n }\n case 'custom': {\n const custom = field.render(node) as ReactNode;\n if (custom == null) {\n break;\n }\n if (field.label != null) {\n items.push({\n id,\n label: resolveLabel(field.label, tApp),\n size: field.size,\n value: custom,\n fullWidth: field.fullWidth,\n });\n break;\n }\n customNodes.push(wrapCustomNode(id, custom));\n break;\n }\n default:\n break;\n }\n });\n\n return { items, relationItems, customNodes };\n};\n\nexport const resolveHeaderItems = <Node>(\n header: BackofficeDetailHeaderConfig<Node>,\n node: Node,\n options: {\n tApp: TFunction;\n t: TFunction;\n resolveEntityHref?: (entityId: string, refId: string) => string | null;\n renderLink: (href: string, label: ReactNode) => ReactNode;\n renderDate: (\n value: string | number | null | undefined,\n fallback: string,\n ) => ReactNode;\n renderTag: (\n tone: ReturnType<typeof resolveBadgeTone<Node>>,\n label: string,\n ) => ReactNode;\n renderBadgeRow: (items: readonly BackofficeBadgeItem[]) => ReactNode;\n },\n): {\n title: string;\n subtitle?: ReactNode;\n badges?: ReactNode;\n status?: ReactNode;\n items?: readonly ResolvedHeaderItem[];\n} => {\n const {\n tApp,\n t,\n resolveEntityHref,\n renderLink,\n renderDate,\n renderTag,\n renderBadgeRow,\n } = options;\n const resolvedTitle =\n header.titleValue?.(node, tApp) ?? resolveLabel(header.title, tApp);\n const title =\n resolvedTitle.trim() === ''\n ? resolveLabel(header.title, tApp)\n : resolvedTitle;\n\n let subtitleNode: ReactNode | undefined;\n if (header.subtitleItems != null && header.subtitleItems.length > 0) {\n const { subtitleItems } = header;\n const separator = header.subtitleSeparator ?? ' / ';\n const parts: ReactNode[] = [];\n subtitleItems.forEach((item, index) => {\n parts.push(\n createElement(\n 'span',\n { key: item.id },\n resolveInlineValue(item.value(node), {\n tApp,\n t,\n resolveEntityHref,\n renderLink,\n }),\n ),\n );\n if (index < subtitleItems.length - 1) {\n parts.push(createElement('span', { key: `${item.id}-sep` }, separator));\n }\n });\n subtitleNode = createElement('span', null, ...parts);\n } else {\n const subtitleValue =\n header.subtitleValue?.(node, tApp) ??\n (header.subtitle != null ? resolveLabel(header.subtitle, tApp) : null);\n subtitleNode =\n subtitleValue != null && subtitleValue.trim() !== ''\n ? subtitleValue\n : undefined;\n }\n\n const badgeNodes: ReactNode[] = [];\n header.badges?.forEach((badge, index) => {\n const label = resolveLabel(badge.label, tApp);\n const resolvedValue = resolveValueLabel(badge.value(node), tApp);\n const value = resolvedValue == null ? '' : String(resolvedValue);\n if (value.trim() === '') {\n return;\n }\n badgeNodes.push(\n renderTag(resolveBadgeTone(badge.tone, node), `${label}: ${value}`),\n );\n if (typeof badgeNodes[badgeNodes.length - 1] === 'object') {\n badgeNodes[badgeNodes.length - 1] = createElement(\n Fragment,\n { key: `${label}-${index}` },\n badgeNodes[badgeNodes.length - 1],\n );\n }\n });\n\n const status =\n header.status != null\n ? resolveHeaderStatus(header.status, node, tApp, {\n renderBadgeRow,\n renderTag,\n })\n : undefined;\n\n const items = header.meta?.map((meta, index) => {\n const label = resolveLabel(meta.label, tApp);\n return {\n id: `${label}-${index}`,\n label,\n value: resolveHeaderMeta(meta, node, {\n tApp,\n t,\n resolveEntityHref,\n renderDate,\n renderLink,\n }),\n };\n });\n\n return {\n title,\n subtitle: subtitleNode,\n badges:\n badgeNodes.length > 0\n ? createElement(Fragment, null, ...badgeNodes)\n : undefined,\n status,\n items,\n };\n};\n\nexport const renderBlocks = <Node>(\n blocks: readonly BackofficeDetailBlockSpec<Node>[] | undefined,\n node: Node,\n options: {\n tApp: TFunction;\n t: TFunction;\n resolveEntityHref: (entityId: string, refId: string) => string | null;\n keyPrefix?: string;\n renderCustomSection: (\n key: string,\n title: string,\n child: ReactNode,\n ) => ReactNode;\n wrapCustomNode: (key: string, node: ReactNode) => ReactNode;\n renderRelationList: (args: {\n key: string;\n title: string;\n relation: BackofficeRuntimeRelationFilterSpec;\n value: string | null | undefined;\n }) => ReactNode;\n resolveTableColumns: (columns: readonly unknown[]) => unknown;\n renderTable: (args: {\n key: string;\n title: string;\n description?: string;\n columns: unknown;\n rows: readonly unknown[];\n }) => ReactNode;\n renderJson: (args: {\n key: string;\n title: string;\n description?: string;\n value: unknown;\n defaultCollapsed?: boolean;\n }) => ReactNode;\n renderCode: (args: {\n key: string;\n title: string;\n description?: string;\n value: string;\n outputLabel: string;\n }) => ReactNode;\n renderPayload: (args: {\n key: string;\n title: string;\n description?: string;\n content: unknown;\n format?: string;\n }) => ReactNode;\n renderErrorList: (args: {\n key: string;\n title: string;\n description?: string;\n items: readonly unknown[];\n }) => ReactNode;\n renderKeyValueListSection: (args: {\n key: string;\n title: string;\n description?: string;\n items: readonly { id: string; label: string; value: ReactNode }[];\n }) => ReactNode;\n },\n): ReactNode[] => {\n const { tApp, t, keyPrefix } = options;\n if (blocks == null || blocks.length === 0) {\n return [];\n }\n\n return blocks.map((block, index): ReactNode => {\n const key =\n keyPrefix != null\n ? `${keyPrefix}-${block.kind}-${index}`\n : `${block.kind}-${index}`;\n\n if (block.kind === 'custom') {\n const custom = block.render(node) as ReactNode;\n if (custom == null) {\n return null;\n }\n if (block.label != null) {\n return options.renderCustomSection(\n key,\n resolveLabel(block.label, tApp),\n custom,\n );\n }\n return options.wrapCustomNode(key, custom);\n }\n\n const title = resolveLabel(block.label, tApp);\n const description =\n block.description != null\n ? resolveLabel(block.description, tApp)\n : undefined;\n\n if (block.kind === 'relationList') {\n return options.renderRelationList({\n key,\n title,\n relation: block.relation,\n value: block.value(node),\n });\n }\n\n if (block.kind === 'table') {\n return options.renderTable({\n key,\n title,\n description,\n columns: options.resolveTableColumns(\n block.columns as readonly unknown[],\n ),\n rows: block.rows(node) as readonly unknown[],\n });\n }\n\n if (block.kind === 'json') {\n return options.renderJson({\n key,\n title,\n description,\n value: block.value(node),\n defaultCollapsed:\n block.presentation?.collapse?.defaultCollapsed ??\n (block.presentation?.group === 'technical' ||\n block.presentation?.group === 'raw'),\n });\n }\n\n if (block.kind === 'code') {\n return options.renderCode({\n key,\n title,\n description,\n value: block.value(node),\n outputLabel: t('tools.output'),\n });\n }\n\n if (block.kind === 'payload') {\n return options.renderPayload({\n key,\n title,\n description,\n content: block.value(node),\n format: block.format,\n });\n }\n\n if (block.kind === 'errorList') {\n return options.renderErrorList({\n key,\n title,\n description,\n items: block.errors(node),\n });\n }\n\n const items = block.items.map((item, itemIndex) => {\n const label = resolveLabel(item.label, tApp);\n const resolvedValue = resolveValueLabel(item.value(node), tApp);\n return {\n id: `${label}-${itemIndex}`,\n label,\n value: resolvedValue ?? t('common.notAvailable'),\n };\n });\n\n return options.renderKeyValueListSection({\n key,\n title,\n description,\n items,\n });\n });\n};\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { t as e } from "./pageResolution-CUaTq4Ql.js";
2
- import { n as t } from "./BackofficeEntityDetailLayoutContext-C5G-PH28.js";
1
+ import { resolveVisibleDetailPages as e } from "./detail/pageResolution.js";
2
+ import { useBackofficeEntityDetailLayoutContext as t } from "./detail/BackofficeEntityDetailLayoutContext.js";
3
3
  import { HttpRedirect as n } from "@plumile/router";
4
4
  //#region src/pages/BackofficeEntityDetailUnknownPageRedirect.tsx
5
5
  var r = ({ config: r, prepared: i }) => {
@@ -14,4 +14,4 @@ var r = ({ config: r, prepared: i }) => {
14
14
  //#endregion
15
15
  export { r as BackofficeEntityDetailUnknownPageRedirect, r as default };
16
16
 
17
- //# sourceMappingURL=BackofficeEntityDetailUnknownPageRedirect-Iu4R3WvX.js.map
17
+ //# sourceMappingURL=BackofficeEntityDetailUnknownPageRedirect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackofficeEntityDetailUnknownPageRedirect.js","names":[],"sources":["../../../src/pages/BackofficeEntityDetailUnknownPageRedirect.tsx"],"sourcesContent":["import { type JSX } from 'react';\nimport { HttpRedirect } from '@plumile/router';\n\nimport type {\n BackofficeEntityManifestItem,\n BackofficeResolvedDetailLayoutFacetConfig,\n} from '@plumile/backoffice-core/types.js';\n\nimport { useBackofficeEntityDetailLayoutContext } from './detail/BackofficeEntityDetailLayoutContext.js';\nimport { resolveVisibleDetailPages } from './detail/pageResolution.js';\n\nexport type BackofficeEntityDetailUnknownPageRedirectProps = {\n entityManifest: BackofficeEntityManifestItem;\n config: BackofficeResolvedDetailLayoutFacetConfig;\n prepared: {\n id: string;\n pagePath: string;\n };\n};\n\nexport const BackofficeEntityDetailUnknownPageRedirect = ({\n config,\n prepared,\n}: BackofficeEntityDetailUnknownPageRedirectProps): JSX.Element => {\n const { layoutView } = useBackofficeEntityDetailLayoutContext();\n\n const resolvedPages = resolveVisibleDetailPages({\n mainPage: config.pages.mainPage,\n subPages: config.pages.subPages,\n activePagePath: prepared.pagePath,\n node: layoutView as never,\n });\n\n if (!resolvedPages.hasVisiblePages || resolvedPages.activePage == null) {\n throw new HttpRedirect(config.routes.list);\n }\n\n throw new HttpRedirect(\n config.routes.detailPage(prepared.id, resolvedPages.activePage.id),\n );\n};\n\nexport default BackofficeEntityDetailUnknownPageRedirect;\n"],"mappings":";;;;AAoBA,IAAa,KAA6C,EACxD,WACA,kBACiE;CACjE,IAAM,EAAE,kBAAe,GAAwC,EAEzD,IAAgB,EAA0B;EAC9C,UAAU,EAAO,MAAM;EACvB,UAAU,EAAO,MAAM;EACvB,gBAAgB,EAAS;EACzB,MAAM;EACP,CAAC;CAMF,MAJI,CAAC,EAAc,mBAAmB,EAAc,cAAc,OAC1D,IAAI,EAAa,EAAO,OAAO,KAAK,GAGtC,IAAI,EACR,EAAO,OAAO,WAAW,EAAS,IAAI,EAAc,WAAW,GAAG,CACnE"}
@@ -0,0 +1,37 @@
1
+ //#region src/pages/BackofficeEntityListPage.helpers.tsx
2
+ var e = 24, t = 6, n = 4, r = 32, i = 8, a = 12, o = 4, s = {
3
+ xs: "minmax(72px, 92px)",
4
+ s: "minmax(104px, 136px)",
5
+ statusAction: "minmax(136px, 168px)",
6
+ m: "minmax(136px, 184px)",
7
+ l: "minmax(160px, 220px)",
8
+ xl: "minmax(220px, 300px)",
9
+ fluid: "minmax(0, 1fr)"
10
+ }, c = (r) => r <= 0 ? 0 : n * 2 + e * r + t * Math.max(0, r - 1), l = (e) => e <= 0 ? 0 : o + a * 2 + r * e + i * Math.max(0, e - 1), u = (e, t) => e.mobileRole === "action" ? "60px" : e.isPrimary === !0 ? "minmax(0, 1fr)" : "size" in e && typeof e.size == "string" ? s[e.size] : t, d = (e) => e.kind === "route", f = (e) => e.kind === "formMutation", p = (e, t) => e ?? (t === 0 ? "primary" : "secondary"), m = (e) => {
11
+ if (typeof e != "object" || !e || !("id" in e)) return null;
12
+ let t = e.id;
13
+ if (typeof t != "string") return null;
14
+ let n = t.trim();
15
+ return n === "" ? null : n;
16
+ }, h = (e) => e.list.kind === "records", g = (e) => e.list.kind !== "records", _ = (e, t) => e(t), v = (e) => {
17
+ let { ariaLabel: t, fallback: n, resolveDetailHref: r, className: i, renderAction: a } = e;
18
+ return {
19
+ id: "actions",
20
+ header: "",
21
+ className: i,
22
+ mobileRole: "action",
23
+ cell: (e) => {
24
+ let i = m(e);
25
+ if (i == null) return n;
26
+ let o = r(i);
27
+ return o == null ? n : a({
28
+ href: o,
29
+ ariaLabel: t
30
+ });
31
+ }
32
+ };
33
+ };
34
+ //#endregion
35
+ export { v as buildActionsColumn, l as computeActionsColumnWidthPx, c as computeRowFlagsColumnWidthPx, g as isConnectionListConfig, f as isFormMutationAction, h as isRecordListConfig, d as isRouteAction, p as resolveActionVariant, _ as resolveLabel, m as resolveRowId, u as resolveTrackBySize };
36
+
37
+ //# sourceMappingURL=BackofficeEntityListPage.helpers.js.map