@plumile/backoffice-react 0.1.59

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 (639) hide show
  1. package/LICENSE +21 -0
  2. package/lib/esm/auth/login/AuthPanel.js +28 -0
  3. package/lib/esm/auth/login/AuthPanel.js.map +1 -0
  4. package/lib/esm/auth/login/EmailCapturePanel.js +52 -0
  5. package/lib/esm/auth/login/EmailCapturePanel.js.map +1 -0
  6. package/lib/esm/auth/login/LoginFlow.js +130 -0
  7. package/lib/esm/auth/login/LoginFlow.js.map +1 -0
  8. package/lib/esm/auth/login/MethodChooser.js +51 -0
  9. package/lib/esm/auth/login/MethodChooser.js.map +1 -0
  10. package/lib/esm/auth/login/MfaChallengeForm.js +83 -0
  11. package/lib/esm/auth/login/MfaChallengeForm.js.map +1 -0
  12. package/lib/esm/auth/login/OidcButtons.js +29 -0
  13. package/lib/esm/auth/login/OidcButtons.js.map +1 -0
  14. package/lib/esm/auth/login/PasskeyLoginForm.js +84 -0
  15. package/lib/esm/auth/login/PasskeyLoginForm.js.map +1 -0
  16. package/lib/esm/auth/login/PasswordLoginPanel.js +37 -0
  17. package/lib/esm/auth/login/PasswordLoginPanel.js.map +1 -0
  18. package/lib/esm/auth/login/loginPage.css.js +8 -0
  19. package/lib/esm/auth/login/loginPage.css.js.map +1 -0
  20. package/lib/esm/auth/login/synchronizeAuthStatusQuery.js +9 -0
  21. package/lib/esm/auth/login/synchronizeAuthStatusQuery.js.map +1 -0
  22. package/lib/esm/auth/pages/AcceptInvitationScreen.js +120 -0
  23. package/lib/esm/auth/pages/AcceptInvitationScreen.js.map +1 -0
  24. package/lib/esm/auth/pages/PasswordResetCompleteScreen.js +105 -0
  25. package/lib/esm/auth/pages/PasswordResetCompleteScreen.js.map +1 -0
  26. package/lib/esm/auth/pages/PasswordResetRequestScreen.js +88 -0
  27. package/lib/esm/auth/pages/PasswordResetRequestScreen.js.map +1 -0
  28. package/lib/esm/auth/pages/VerifyEmailScreen.js +65 -0
  29. package/lib/esm/auth/pages/VerifyEmailScreen.js.map +1 -0
  30. package/lib/esm/components/backoffice/actions/BackofficeEntityActionFormDialog.js +525 -0
  31. package/lib/esm/components/backoffice/actions/BackofficeEntityActionFormDialog.js.map +1 -0
  32. package/lib/esm/components/backoffice/actions/LazyBackofficeEntityActionFormDialog.js +11 -0
  33. package/lib/esm/components/backoffice/actions/LazyBackofficeEntityActionFormDialog.js.map +1 -0
  34. package/lib/esm/components/backoffice/actions/backofficeEntityActionFormDialog.css.js +8 -0
  35. package/lib/esm/components/backoffice/actions/backofficeEntityActionFormDialog.css.js.map +1 -0
  36. package/lib/esm/components/backoffice/actions/toastViewAction.js +27 -0
  37. package/lib/esm/components/backoffice/actions/toastViewAction.js.map +1 -0
  38. package/lib/esm/components/backoffice/columns/buildDataTableColumns.js +60 -0
  39. package/lib/esm/components/backoffice/columns/buildDataTableColumns.js.map +1 -0
  40. package/lib/esm/components/backoffice/detail/BackofficeDetailBadgeRow.js +22 -0
  41. package/lib/esm/components/backoffice/detail/BackofficeDetailBadgeRow.js.map +1 -0
  42. package/lib/esm/components/backoffice/detail/BackofficeDetailErrorList.js +41 -0
  43. package/lib/esm/components/backoffice/detail/BackofficeDetailErrorList.js.map +1 -0
  44. package/lib/esm/components/backoffice/detail/BackofficeDetailField.js +31 -0
  45. package/lib/esm/components/backoffice/detail/BackofficeDetailField.js.map +1 -0
  46. package/lib/esm/components/backoffice/detail/BackofficeDetailFlagTag.css.js +8 -0
  47. package/lib/esm/components/backoffice/detail/BackofficeDetailFlagTag.css.js.map +1 -0
  48. package/lib/esm/components/backoffice/detail/BackofficeDetailFlagTag.js +24 -0
  49. package/lib/esm/components/backoffice/detail/BackofficeDetailFlagTag.js.map +1 -0
  50. package/lib/esm/components/backoffice/detail/BackofficeDetailLayout.js +20 -0
  51. package/lib/esm/components/backoffice/detail/BackofficeDetailLayout.js.map +1 -0
  52. package/lib/esm/components/backoffice/detail/BackofficeDetailPayload.js +18 -0
  53. package/lib/esm/components/backoffice/detail/BackofficeDetailPayload.js.map +1 -0
  54. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationLink.js +49 -0
  55. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationLink.js.map +1 -0
  56. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationList.js +11 -0
  57. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationList.js.map +1 -0
  58. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationListBlock.js +115 -0
  59. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationListBlock.js.map +1 -0
  60. package/lib/esm/components/backoffice/detail/BackofficeDetailSection.js +33 -0
  61. package/lib/esm/components/backoffice/detail/BackofficeDetailSection.js.map +1 -0
  62. package/lib/esm/components/backoffice/detail/BackofficeDetailTaggedValue.js +18 -0
  63. package/lib/esm/components/backoffice/detail/BackofficeDetailTaggedValue.js.map +1 -0
  64. package/lib/esm/components/backoffice/detail/backofficeDetailBadgeRow.css.js +8 -0
  65. package/lib/esm/components/backoffice/detail/backofficeDetailBadgeRow.css.js.map +1 -0
  66. package/lib/esm/components/backoffice/detail/backofficeDetailErrorList.css.js +8 -0
  67. package/lib/esm/components/backoffice/detail/backofficeDetailErrorList.css.js.map +1 -0
  68. package/lib/esm/components/backoffice/detail/backofficeDetailField.css.js +15 -0
  69. package/lib/esm/components/backoffice/detail/backofficeDetailField.css.js.map +1 -0
  70. package/lib/esm/components/backoffice/detail/backofficeDetailLayout.css.js +8 -0
  71. package/lib/esm/components/backoffice/detail/backofficeDetailLayout.css.js.map +1 -0
  72. package/lib/esm/components/backoffice/detail/backofficeDetailRelationLink.css.js +8 -0
  73. package/lib/esm/components/backoffice/detail/backofficeDetailRelationLink.css.js.map +1 -0
  74. package/lib/esm/components/backoffice/detail/backofficeDetailRelationList.css.js +8 -0
  75. package/lib/esm/components/backoffice/detail/backofficeDetailRelationList.css.js.map +1 -0
  76. package/lib/esm/components/backoffice/detail/backofficeDetailSection.css.js +8 -0
  77. package/lib/esm/components/backoffice/detail/backofficeDetailSection.css.js.map +1 -0
  78. package/lib/esm/components/backoffice/detail/backofficeDetailTaggedValue.css.js +8 -0
  79. package/lib/esm/components/backoffice/detail/backofficeDetailTaggedValue.css.js.map +1 -0
  80. package/lib/esm/components/backoffice/detail/detailPayloadUtils.js +17 -0
  81. package/lib/esm/components/backoffice/detail/detailPayloadUtils.js.map +1 -0
  82. package/lib/esm/components/backoffice/errors/BackofficeErrorBoundary.js +21 -0
  83. package/lib/esm/components/backoffice/errors/BackofficeErrorBoundary.js.map +1 -0
  84. package/lib/esm/components/backoffice/filters/BackofficeFilterAction.js +43 -0
  85. package/lib/esm/components/backoffice/filters/BackofficeFilterAction.js.map +1 -0
  86. package/lib/esm/components/backoffice/filters/EntityFilterValue.js +46 -0
  87. package/lib/esm/components/backoffice/filters/EntityFilterValue.js.map +1 -0
  88. package/lib/esm/components/backoffice/filters/EntityIdFilterField.js +51 -0
  89. package/lib/esm/components/backoffice/filters/EntityIdFilterField.js.map +1 -0
  90. package/lib/esm/components/backoffice/filters/backofficeFilterAction.css.js +8 -0
  91. package/lib/esm/components/backoffice/filters/backofficeFilterAction.css.js.map +1 -0
  92. package/lib/esm/components/backoffice/filters/entityIdFilterField.css.js +8 -0
  93. package/lib/esm/components/backoffice/filters/entityIdFilterField.css.js.map +1 -0
  94. package/lib/esm/components/backoffice/layout/backofficeSidebarActions.css.js +8 -0
  95. package/lib/esm/components/backoffice/layout/backofficeSidebarActions.css.js.map +1 -0
  96. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeRightPageLayout.js +10 -0
  97. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeRightPageLayout.js.map +1 -0
  98. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarBreadcrumb.js +38 -0
  99. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarBreadcrumb.js.map +1 -0
  100. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarPortal.js +12 -0
  101. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarPortal.js.map +1 -0
  102. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarPortalContext.js +11 -0
  103. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarPortalContext.js.map +1 -0
  104. package/lib/esm/components/backoffice/layout/breadcrumb/assertValidBreadcrumb.js +16 -0
  105. package/lib/esm/components/backoffice/layout/breadcrumb/assertValidBreadcrumb.js.map +1 -0
  106. package/lib/esm/components/backoffice/layout/breadcrumb/backofficeTopbarBreadcrumb.css.js +8 -0
  107. package/lib/esm/components/backoffice/layout/breadcrumb/backofficeTopbarBreadcrumb.css.js.map +1 -0
  108. package/lib/esm/components/backoffice/layout/breadcrumb/buildBreadcrumbs.js +48 -0
  109. package/lib/esm/components/backoffice/layout/breadcrumb/buildBreadcrumbs.js.map +1 -0
  110. package/lib/esm/components/backoffice/layout/breadcrumb/types.js +0 -0
  111. package/lib/esm/components/backoffice/layout/buildSidebarSections.js +183 -0
  112. package/lib/esm/components/backoffice/layout/buildSidebarSections.js.map +1 -0
  113. package/lib/esm/components/backoffice/layout/mapViewerToSidebarProfileView.js +18 -0
  114. package/lib/esm/components/backoffice/layout/mapViewerToSidebarProfileView.js.map +1 -0
  115. package/lib/esm/components/backoffice/layout/sidebarUtils.js +44 -0
  116. package/lib/esm/components/backoffice/layout/sidebarUtils.js.map +1 -0
  117. package/lib/esm/components/backoffice/list/RowFlagsCell.css.js +7 -0
  118. package/lib/esm/components/backoffice/list/RowFlagsCell.css.js.map +1 -0
  119. package/lib/esm/components/backoffice/list/RowFlagsCell.js +37 -0
  120. package/lib/esm/components/backoffice/list/RowFlagsCell.js.map +1 -0
  121. package/lib/esm/components/backoffice/overview/BackofficeOverviewLayout.js +31 -0
  122. package/lib/esm/components/backoffice/overview/BackofficeOverviewLayout.js.map +1 -0
  123. package/lib/esm/components/backoffice/overview/backofficeOverviewLayout.css.js +8 -0
  124. package/lib/esm/components/backoffice/overview/backofficeOverviewLayout.css.js.map +1 -0
  125. package/lib/esm/components/backoffice/pickers/EntityIdPickerDialog.js +107 -0
  126. package/lib/esm/components/backoffice/pickers/EntityIdPickerDialog.js.map +1 -0
  127. package/lib/esm/components/backoffice/pickers/entityIdPickerDialog.css.js +8 -0
  128. package/lib/esm/components/backoffice/pickers/entityIdPickerDialog.css.js.map +1 -0
  129. package/lib/esm/components/backoffice/pickers/shared/EntityPickerList.js +24 -0
  130. package/lib/esm/components/backoffice/pickers/shared/EntityPickerList.js.map +1 -0
  131. package/lib/esm/components/backoffice/pickers/shared/EntityPickerRowBase.js +23 -0
  132. package/lib/esm/components/backoffice/pickers/shared/EntityPickerRowBase.js.map +1 -0
  133. package/lib/esm/components/backoffice/pickers/shared/EntityPickerShell.js +24 -0
  134. package/lib/esm/components/backoffice/pickers/shared/EntityPickerShell.js.map +1 -0
  135. package/lib/esm/components/backoffice/pickers/types.js +0 -0
  136. package/lib/esm/components/backoffice/refs/BackofficeEntityIdRef.js +35 -0
  137. package/lib/esm/components/backoffice/refs/BackofficeEntityIdRef.js.map +1 -0
  138. package/lib/esm/components/backoffice/refs/BackofficeRelatedCountLink.js +54 -0
  139. package/lib/esm/components/backoffice/refs/BackofficeRelatedCountLink.js.map +1 -0
  140. package/lib/esm/components/backoffice/refs/backofficeEntityIdRef.css.js +8 -0
  141. package/lib/esm/components/backoffice/refs/backofficeEntityIdRef.css.js.map +1 -0
  142. package/lib/esm/components/backoffice/refs/backofficeRelatedCountLink.css.js +8 -0
  143. package/lib/esm/components/backoffice/refs/backofficeRelatedCountLink.css.js.map +1 -0
  144. package/lib/esm/components/backoffice/routing/BackofficeContentBoundary.js +24 -0
  145. package/lib/esm/components/backoffice/routing/BackofficeContentBoundary.js.map +1 -0
  146. package/lib/esm/components/backoffice/routing/BackofficeContentError.js +39 -0
  147. package/lib/esm/components/backoffice/routing/BackofficeContentError.js.map +1 -0
  148. package/lib/esm/components/backoffice/routing/BackofficeContentFallback.js +47 -0
  149. package/lib/esm/components/backoffice/routing/BackofficeContentFallback.js.map +1 -0
  150. package/lib/esm/components/backoffice/routing/BackofficeRouteFallback.js +22 -0
  151. package/lib/esm/components/backoffice/routing/BackofficeRouteFallback.js.map +1 -0
  152. package/lib/esm/components/backoffice/routing/BackofficeRoutePendingBar.js +12 -0
  153. package/lib/esm/components/backoffice/routing/BackofficeRoutePendingBar.js.map +1 -0
  154. package/lib/esm/components/backoffice/routing/backofficeContentBoundary.css.js +8 -0
  155. package/lib/esm/components/backoffice/routing/backofficeContentBoundary.css.js.map +1 -0
  156. package/lib/esm/components/backoffice/routing/backofficeContentError.css.js +8 -0
  157. package/lib/esm/components/backoffice/routing/backofficeContentError.css.js.map +1 -0
  158. package/lib/esm/components/backoffice/routing/backofficeContentFallback.css.js +8 -0
  159. package/lib/esm/components/backoffice/routing/backofficeContentFallback.css.js.map +1 -0
  160. package/lib/esm/components/backoffice/routing/backofficeRouteFallback.css.js +8 -0
  161. package/lib/esm/components/backoffice/routing/backofficeRouteFallback.css.js.map +1 -0
  162. package/lib/esm/components/backoffice/routing/backofficeRoutePendingBar.css.js +8 -0
  163. package/lib/esm/components/backoffice/routing/backofficeRoutePendingBar.css.js.map +1 -0
  164. package/lib/esm/components/backoffice/scaffolds/BackofficeEntityDetailScaffold.js +11 -0
  165. package/lib/esm/components/backoffice/scaffolds/BackofficeEntityDetailScaffold.js.map +1 -0
  166. package/lib/esm/components/backoffice/scaffolds/BackofficeEntityListScaffold.js +446 -0
  167. package/lib/esm/components/backoffice/scaffolds/BackofficeEntityListScaffold.js.map +1 -0
  168. package/lib/esm/components/backoffice/scaffolds/BackofficeListFilterContext.js +40 -0
  169. package/lib/esm/components/backoffice/scaffolds/BackofficeListFilterContext.js.map +1 -0
  170. package/lib/esm/components/backoffice/scaffolds/BackofficeTabbedDetailShell.js +25 -0
  171. package/lib/esm/components/backoffice/scaffolds/BackofficeTabbedDetailShell.js.map +1 -0
  172. package/lib/esm/components/backoffice/scaffolds/backofficeEntityListScaffold.css.js +8 -0
  173. package/lib/esm/components/backoffice/scaffolds/backofficeEntityListScaffold.css.js.map +1 -0
  174. package/lib/esm/components/backoffice/scaffolds/backofficeTabbedDetailShell.css.js +8 -0
  175. package/lib/esm/components/backoffice/scaffolds/backofficeTabbedDetailShell.css.js.map +1 -0
  176. package/lib/esm/components/backoffice/shared/BackofficeInlineFilterRow.js +12 -0
  177. package/lib/esm/components/backoffice/shared/BackofficeInlineFilterRow.js.map +1 -0
  178. package/lib/esm/components/backoffice/shared/backofficeInlineFilterRow.css.js +8 -0
  179. package/lib/esm/components/backoffice/shared/backofficeInlineFilterRow.css.js.map +1 -0
  180. package/lib/esm/components/backoffice/tools/BackofficeToolsDocPanel.js +40 -0
  181. package/lib/esm/components/backoffice/tools/BackofficeToolsDocPanel.js.map +1 -0
  182. package/lib/esm/components/backoffice/tools/BackofficeToolsErrorFallback.js +48 -0
  183. package/lib/esm/components/backoffice/tools/BackofficeToolsErrorFallback.js.map +1 -0
  184. package/lib/esm/components/backoffice/tools/BackofficeToolsJsonForm.js +58 -0
  185. package/lib/esm/components/backoffice/tools/BackofficeToolsJsonForm.js.map +1 -0
  186. package/lib/esm/components/backoffice/tools/BackofficeToolsPageLayout.js +81 -0
  187. package/lib/esm/components/backoffice/tools/BackofficeToolsPageLayout.js.map +1 -0
  188. package/lib/esm/components/backoffice/tools/BackofficeToolsParamsContext.js +16 -0
  189. package/lib/esm/components/backoffice/tools/BackofficeToolsParamsContext.js.map +1 -0
  190. package/lib/esm/components/backoffice/tools/BackofficeToolsProjectPicker.js +56 -0
  191. package/lib/esm/components/backoffice/tools/BackofficeToolsProjectPicker.js.map +1 -0
  192. package/lib/esm/components/backoffice/tools/BackofficeToolsQueryBoundary.js +20 -0
  193. package/lib/esm/components/backoffice/tools/BackofficeToolsQueryBoundary.js.map +1 -0
  194. package/lib/esm/components/backoffice/tools/BackofficeToolsScopePicker.js +56 -0
  195. package/lib/esm/components/backoffice/tools/BackofficeToolsScopePicker.js.map +1 -0
  196. package/lib/esm/components/backoffice/tools/backofficeToolsDocPanel.css.js +8 -0
  197. package/lib/esm/components/backoffice/tools/backofficeToolsDocPanel.css.js.map +1 -0
  198. package/lib/esm/components/backoffice/tools/backofficeToolsForm.css.js +8 -0
  199. package/lib/esm/components/backoffice/tools/backofficeToolsForm.css.js.map +1 -0
  200. package/lib/esm/components/backoffice/tools/backofficeToolsJsonForm.css.js +8 -0
  201. package/lib/esm/components/backoffice/tools/backofficeToolsJsonForm.css.js.map +1 -0
  202. package/lib/esm/components/backoffice/tools/backofficeToolsPageLayout.css.js +8 -0
  203. package/lib/esm/components/backoffice/tools/backofficeToolsPageLayout.css.js.map +1 -0
  204. package/lib/esm/components/backoffice/tools/backofficeToolsProjectPicker.css.js +8 -0
  205. package/lib/esm/components/backoffice/tools/backofficeToolsProjectPicker.css.js.map +1 -0
  206. package/lib/esm/components/backoffice/tools/backofficeToolsScopePicker.css.js +8 -0
  207. package/lib/esm/components/backoffice/tools/backofficeToolsScopePicker.css.js.map +1 -0
  208. package/lib/esm/filters/filterHelpers.js +36 -0
  209. package/lib/esm/filters/filterHelpers.js.map +1 -0
  210. package/lib/esm/hooks/useAuth.js +439 -0
  211. package/lib/esm/hooks/useAuth.js.map +1 -0
  212. package/lib/esm/hooks/useBackofficeAuth.js +89 -0
  213. package/lib/esm/hooks/useBackofficeAuth.js.map +1 -0
  214. package/lib/esm/hooks/useBackofficeListRefetch.js +40 -0
  215. package/lib/esm/hooks/useBackofficeListRefetch.js.map +1 -0
  216. package/lib/esm/hooks/useBackofficeListUrlState.js +37 -0
  217. package/lib/esm/hooks/useBackofficeListUrlState.js.map +1 -0
  218. package/lib/esm/hooks/useBackofficeLoadMore.js +18 -0
  219. package/lib/esm/hooks/useBackofficeLoadMore.js.map +1 -0
  220. package/lib/esm/hooks/useBackofficeSessionAuth.js +28 -0
  221. package/lib/esm/hooks/useBackofficeSessionAuth.js.map +1 -0
  222. package/lib/esm/hooks/useBackofficeSidebarPins.js +70 -0
  223. package/lib/esm/hooks/useBackofficeSidebarPins.js.map +1 -0
  224. package/lib/esm/hooks/useBackofficeToolsUrlParams.js +15 -0
  225. package/lib/esm/hooks/useBackofficeToolsUrlParams.js.map +1 -0
  226. package/lib/esm/hooks/useSidebarGroupCollapse.js +35 -0
  227. package/lib/esm/hooks/useSidebarGroupCollapse.js.map +1 -0
  228. package/lib/esm/i18n/createI18nInstance.js +62 -0
  229. package/lib/esm/i18n/createI18nInstance.js.map +1 -0
  230. package/lib/esm/i18n/locales/en/backofficeReact.js +249 -0
  231. package/lib/esm/i18n/locales/en/backofficeReact.js.map +1 -0
  232. package/lib/esm/i18n/locales/en/shared.js +207 -0
  233. package/lib/esm/i18n/locales/en/shared.js.map +1 -0
  234. package/lib/esm/i18n/locales/fr/backofficeReact.js +251 -0
  235. package/lib/esm/i18n/locales/fr/backofficeReact.js.map +1 -0
  236. package/lib/esm/i18n/locales/fr/shared.js +207 -0
  237. package/lib/esm/i18n/locales/fr/shared.js.map +1 -0
  238. package/lib/esm/i18n/mergeResourceLanguages.js +19 -0
  239. package/lib/esm/i18n/mergeResourceLanguages.js.map +1 -0
  240. package/lib/esm/i18n/resources.js +19 -0
  241. package/lib/esm/i18n/resources.js.map +1 -0
  242. package/lib/esm/i18n/useBackofficeFormats.js +23 -0
  243. package/lib/esm/i18n/useBackofficeFormats.js.map +1 -0
  244. package/lib/esm/i18n/useBackofficeReactTranslation.js +9 -0
  245. package/lib/esm/i18n/useBackofficeReactTranslation.js.map +1 -0
  246. package/lib/esm/i18n/useSharedTranslation.js +9 -0
  247. package/lib/esm/i18n/useSharedTranslation.js.map +1 -0
  248. package/lib/esm/index.js +2 -0
  249. package/lib/esm/modules/sharedSchemaTypes.js +0 -0
  250. package/lib/esm/modules/webauthn.js +33 -0
  251. package/lib/esm/modules/webauthn.js.map +1 -0
  252. package/lib/esm/pages/BackofficeAcceptInvitationPage.js +24 -0
  253. package/lib/esm/pages/BackofficeAcceptInvitationPage.js.map +1 -0
  254. package/lib/esm/pages/BackofficeDashboardPage.js +198 -0
  255. package/lib/esm/pages/BackofficeDashboardPage.js.map +1 -0
  256. package/lib/esm/pages/BackofficeEntityDetailLayoutPage.js +18 -0
  257. package/lib/esm/pages/BackofficeEntityDetailLayoutPage.js.map +1 -0
  258. package/lib/esm/pages/BackofficeEntityDetailPage.js +843 -0
  259. package/lib/esm/pages/BackofficeEntityDetailPage.js.map +1 -0
  260. package/lib/esm/pages/BackofficeEntityDetailUnknownPageRedirect.js +17 -0
  261. package/lib/esm/pages/BackofficeEntityDetailUnknownPageRedirect.js.map +1 -0
  262. package/lib/esm/pages/BackofficeEntityListPage.js +363 -0
  263. package/lib/esm/pages/BackofficeEntityListPage.js.map +1 -0
  264. package/lib/esm/pages/BackofficeLayoutPage.js +141 -0
  265. package/lib/esm/pages/BackofficeLayoutPage.js.map +1 -0
  266. package/lib/esm/pages/BackofficeLoginPage.js +46 -0
  267. package/lib/esm/pages/BackofficeLoginPage.js.map +1 -0
  268. package/lib/esm/pages/BackofficePasswordResetCompletePage.js +59 -0
  269. package/lib/esm/pages/BackofficePasswordResetCompletePage.js.map +1 -0
  270. package/lib/esm/pages/BackofficePasswordResetRequestPage.js +54 -0
  271. package/lib/esm/pages/BackofficePasswordResetRequestPage.js.map +1 -0
  272. package/lib/esm/pages/BackofficeToolsOperationPage.js +465 -0
  273. package/lib/esm/pages/BackofficeToolsOperationPage.js.map +1 -0
  274. package/lib/esm/pages/BackofficeVerifyEmailPage.js +59 -0
  275. package/lib/esm/pages/BackofficeVerifyEmailPage.js.map +1 -0
  276. package/lib/esm/pages/backofficeDashboardPage.css.js +8 -0
  277. package/lib/esm/pages/backofficeDashboardPage.css.js.map +1 -0
  278. package/lib/esm/pages/backofficeEntityDetailPage.css.js +8 -0
  279. package/lib/esm/pages/backofficeEntityDetailPage.css.js.map +1 -0
  280. package/lib/esm/pages/backofficeEntityListPage.css.js +8 -0
  281. package/lib/esm/pages/backofficeEntityListPage.css.js.map +1 -0
  282. package/lib/esm/pages/detail/BackofficeEntityDetailLayoutContext.js +11 -0
  283. package/lib/esm/pages/detail/BackofficeEntityDetailLayoutContext.js.map +1 -0
  284. package/lib/esm/pages/detail/buildTabsItems.js +10 -0
  285. package/lib/esm/pages/detail/buildTabsItems.js.map +1 -0
  286. package/lib/esm/pages/detail/pageResolution.js +28 -0
  287. package/lib/esm/pages/detail/pageResolution.js.map +1 -0
  288. package/lib/esm/provider/BackofficeConfigContext.js +12 -0
  289. package/lib/esm/provider/BackofficeConfigContext.js.map +1 -0
  290. package/lib/esm/provider/BackofficeProvider.js +142 -0
  291. package/lib/esm/provider/BackofficeProvider.js.map +1 -0
  292. package/lib/esm/provider/entityRegistry.js +91 -0
  293. package/lib/esm/provider/entityRegistry.js.map +1 -0
  294. package/lib/esm/provider/lazyValue.js +14 -0
  295. package/lib/esm/provider/lazyValue.js.map +1 -0
  296. package/lib/esm/provider/types.js +0 -0
  297. package/lib/esm/provider/useBackofficeEntityLoader.js +137 -0
  298. package/lib/esm/provider/useBackofficeEntityLoader.js.map +1 -0
  299. package/lib/esm/provider/useBackofficeLazyValue.js +39 -0
  300. package/lib/esm/provider/useBackofficeLazyValue.js.map +1 -0
  301. package/lib/esm/relay/RelayProvider.js +12 -0
  302. package/lib/esm/relay/RelayProvider.js.map +1 -0
  303. package/lib/esm/relay/createInlineDataReader.js +2 -0
  304. package/lib/esm/relay/createInlineReader.js +7 -0
  305. package/lib/esm/relay/createInlineReader.js.map +1 -0
  306. package/lib/esm/relay/envHelpers.js +46 -0
  307. package/lib/esm/relay/envHelpers.js.map +1 -0
  308. package/lib/esm/relay/environment.js +221 -0
  309. package/lib/esm/relay/environment.js.map +1 -0
  310. package/lib/esm/relay/identityView.js +6 -0
  311. package/lib/esm/relay/identityView.js.map +1 -0
  312. package/lib/esm/relay/mutationResult.js +47 -0
  313. package/lib/esm/relay/mutationResult.js.map +1 -0
  314. package/lib/esm/relay/useRelayEnvironment.js +2 -0
  315. package/lib/esm/router/backofficeAuthPaths.js +13 -0
  316. package/lib/esm/router/backofficeAuthPaths.js.map +1 -0
  317. package/lib/esm/router/createBackofficeRoutes.js +273 -0
  318. package/lib/esm/router/createBackofficeRoutes.js.map +1 -0
  319. package/lib/esm/style.css +2 -0
  320. package/lib/esm/style.js +1 -0
  321. package/lib/types/auth/login/AuthPanel.d.ts +10 -0
  322. package/lib/types/auth/login/AuthPanel.d.ts.map +1 -0
  323. package/lib/types/auth/login/EmailCapturePanel.d.ts +12 -0
  324. package/lib/types/auth/login/EmailCapturePanel.d.ts.map +1 -0
  325. package/lib/types/auth/login/LoginFlow.d.ts +11 -0
  326. package/lib/types/auth/login/LoginFlow.d.ts.map +1 -0
  327. package/lib/types/auth/login/MethodChooser.d.ts +12 -0
  328. package/lib/types/auth/login/MethodChooser.d.ts.map +1 -0
  329. package/lib/types/auth/login/MfaChallengeForm.d.ts +10 -0
  330. package/lib/types/auth/login/MfaChallengeForm.d.ts.map +1 -0
  331. package/lib/types/auth/login/OidcButtons.d.ts +8 -0
  332. package/lib/types/auth/login/OidcButtons.d.ts.map +1 -0
  333. package/lib/types/auth/login/PasskeyLoginForm.d.ts +12 -0
  334. package/lib/types/auth/login/PasskeyLoginForm.d.ts.map +1 -0
  335. package/lib/types/auth/login/PasswordLoginPanel.d.ts +13 -0
  336. package/lib/types/auth/login/PasswordLoginPanel.d.ts.map +1 -0
  337. package/lib/types/auth/login/loginPage.css.d.ts +14 -0
  338. package/lib/types/auth/login/loginPage.css.d.ts.map +1 -0
  339. package/lib/types/auth/login/synchronizeAuthStatusQuery.d.ts +3 -0
  340. package/lib/types/auth/login/synchronizeAuthStatusQuery.d.ts.map +1 -0
  341. package/lib/types/auth/pages/AcceptInvitationScreen.d.ts +11 -0
  342. package/lib/types/auth/pages/AcceptInvitationScreen.d.ts.map +1 -0
  343. package/lib/types/auth/pages/PasswordResetCompleteScreen.d.ts +12 -0
  344. package/lib/types/auth/pages/PasswordResetCompleteScreen.d.ts.map +1 -0
  345. package/lib/types/auth/pages/PasswordResetRequestScreen.d.ts +10 -0
  346. package/lib/types/auth/pages/PasswordResetRequestScreen.d.ts.map +1 -0
  347. package/lib/types/auth/pages/VerifyEmailScreen.d.ts +11 -0
  348. package/lib/types/auth/pages/VerifyEmailScreen.d.ts.map +1 -0
  349. package/lib/types/components/backoffice/actions/BackofficeEntityActionFormDialog.d.ts +12 -0
  350. package/lib/types/components/backoffice/actions/BackofficeEntityActionFormDialog.d.ts.map +1 -0
  351. package/lib/types/components/backoffice/actions/LazyBackofficeEntityActionFormDialog.d.ts +5 -0
  352. package/lib/types/components/backoffice/actions/LazyBackofficeEntityActionFormDialog.d.ts.map +1 -0
  353. package/lib/types/components/backoffice/actions/backofficeEntityActionFormDialog.css.d.ts +7 -0
  354. package/lib/types/components/backoffice/actions/backofficeEntityActionFormDialog.css.d.ts.map +1 -0
  355. package/lib/types/components/backoffice/actions/toastViewAction.d.ts +17 -0
  356. package/lib/types/components/backoffice/actions/toastViewAction.d.ts.map +1 -0
  357. package/lib/types/components/backoffice/columns/buildDataTableColumns.d.ts +13 -0
  358. package/lib/types/components/backoffice/columns/buildDataTableColumns.d.ts.map +1 -0
  359. package/lib/types/components/backoffice/detail/BackofficeDetailBadgeRow.d.ts +8 -0
  360. package/lib/types/components/backoffice/detail/BackofficeDetailBadgeRow.d.ts.map +1 -0
  361. package/lib/types/components/backoffice/detail/BackofficeDetailErrorList.d.ts +14 -0
  362. package/lib/types/components/backoffice/detail/BackofficeDetailErrorList.d.ts.map +1 -0
  363. package/lib/types/components/backoffice/detail/BackofficeDetailField.d.ts +13 -0
  364. package/lib/types/components/backoffice/detail/BackofficeDetailField.d.ts.map +1 -0
  365. package/lib/types/components/backoffice/detail/BackofficeDetailFlagTag.css.d.ts +4 -0
  366. package/lib/types/components/backoffice/detail/BackofficeDetailFlagTag.css.d.ts.map +1 -0
  367. package/lib/types/components/backoffice/detail/BackofficeDetailFlagTag.d.ts +10 -0
  368. package/lib/types/components/backoffice/detail/BackofficeDetailFlagTag.d.ts.map +1 -0
  369. package/lib/types/components/backoffice/detail/BackofficeDetailLayout.d.ts +8 -0
  370. package/lib/types/components/backoffice/detail/BackofficeDetailLayout.d.ts.map +1 -0
  371. package/lib/types/components/backoffice/detail/BackofficeDetailPayload.d.ts +10 -0
  372. package/lib/types/components/backoffice/detail/BackofficeDetailPayload.d.ts.map +1 -0
  373. package/lib/types/components/backoffice/detail/BackofficeDetailRelationLink.d.ts +13 -0
  374. package/lib/types/components/backoffice/detail/BackofficeDetailRelationLink.d.ts.map +1 -0
  375. package/lib/types/components/backoffice/detail/BackofficeDetailRelationList.d.ts +7 -0
  376. package/lib/types/components/backoffice/detail/BackofficeDetailRelationList.d.ts.map +1 -0
  377. package/lib/types/components/backoffice/detail/BackofficeDetailRelationListBlock.d.ts +11 -0
  378. package/lib/types/components/backoffice/detail/BackofficeDetailRelationListBlock.d.ts.map +1 -0
  379. package/lib/types/components/backoffice/detail/BackofficeDetailSection.d.ts +11 -0
  380. package/lib/types/components/backoffice/detail/BackofficeDetailSection.d.ts.map +1 -0
  381. package/lib/types/components/backoffice/detail/BackofficeDetailTaggedValue.d.ts +12 -0
  382. package/lib/types/components/backoffice/detail/BackofficeDetailTaggedValue.d.ts.map +1 -0
  383. package/lib/types/components/backoffice/detail/backofficeDetailBadgeRow.css.d.ts +2 -0
  384. package/lib/types/components/backoffice/detail/backofficeDetailBadgeRow.css.d.ts.map +1 -0
  385. package/lib/types/components/backoffice/detail/backofficeDetailErrorList.css.d.ts +8 -0
  386. package/lib/types/components/backoffice/detail/backofficeDetailErrorList.css.d.ts.map +1 -0
  387. package/lib/types/components/backoffice/detail/backofficeDetailField.css.d.ts +13 -0
  388. package/lib/types/components/backoffice/detail/backofficeDetailField.css.d.ts.map +1 -0
  389. package/lib/types/components/backoffice/detail/backofficeDetailLayout.css.d.ts +5 -0
  390. package/lib/types/components/backoffice/detail/backofficeDetailLayout.css.d.ts.map +1 -0
  391. package/lib/types/components/backoffice/detail/backofficeDetailRelationLink.css.d.ts +4 -0
  392. package/lib/types/components/backoffice/detail/backofficeDetailRelationLink.css.d.ts.map +1 -0
  393. package/lib/types/components/backoffice/detail/backofficeDetailRelationList.css.d.ts +2 -0
  394. package/lib/types/components/backoffice/detail/backofficeDetailRelationList.css.d.ts.map +1 -0
  395. package/lib/types/components/backoffice/detail/backofficeDetailSection.css.d.ts +6 -0
  396. package/lib/types/components/backoffice/detail/backofficeDetailSection.css.d.ts.map +1 -0
  397. package/lib/types/components/backoffice/detail/backofficeDetailTaggedValue.css.d.ts +3 -0
  398. package/lib/types/components/backoffice/detail/backofficeDetailTaggedValue.css.d.ts.map +1 -0
  399. package/lib/types/components/backoffice/detail/detailPayloadUtils.d.ts +3 -0
  400. package/lib/types/components/backoffice/detail/detailPayloadUtils.d.ts.map +1 -0
  401. package/lib/types/components/backoffice/errors/BackofficeErrorBoundary.d.ts +19 -0
  402. package/lib/types/components/backoffice/errors/BackofficeErrorBoundary.d.ts.map +1 -0
  403. package/lib/types/components/backoffice/filters/BackofficeFilterAction.d.ts +12 -0
  404. package/lib/types/components/backoffice/filters/BackofficeFilterAction.d.ts.map +1 -0
  405. package/lib/types/components/backoffice/filters/EntityFilterValue.d.ts +14 -0
  406. package/lib/types/components/backoffice/filters/EntityFilterValue.d.ts.map +1 -0
  407. package/lib/types/components/backoffice/filters/EntityIdFilterField.d.ts +12 -0
  408. package/lib/types/components/backoffice/filters/EntityIdFilterField.d.ts.map +1 -0
  409. package/lib/types/components/backoffice/filters/backofficeFilterAction.css.d.ts +3 -0
  410. package/lib/types/components/backoffice/filters/backofficeFilterAction.css.d.ts.map +1 -0
  411. package/lib/types/components/backoffice/filters/entityIdFilterField.css.d.ts +6 -0
  412. package/lib/types/components/backoffice/filters/entityIdFilterField.css.d.ts.map +1 -0
  413. package/lib/types/components/backoffice/layout/backofficeSidebarActions.css.d.ts +2 -0
  414. package/lib/types/components/backoffice/layout/backofficeSidebarActions.css.d.ts.map +1 -0
  415. package/lib/types/components/backoffice/layout/breadcrumb/BackofficeRightPageLayout.d.ts +9 -0
  416. package/lib/types/components/backoffice/layout/breadcrumb/BackofficeRightPageLayout.d.ts.map +1 -0
  417. package/lib/types/components/backoffice/layout/breadcrumb/BackofficeTopbarBreadcrumb.d.ts +8 -0
  418. package/lib/types/components/backoffice/layout/breadcrumb/BackofficeTopbarBreadcrumb.d.ts.map +1 -0
  419. package/lib/types/components/backoffice/layout/breadcrumb/BackofficeTopbarPortal.d.ts +7 -0
  420. package/lib/types/components/backoffice/layout/breadcrumb/BackofficeTopbarPortal.d.ts.map +1 -0
  421. package/lib/types/components/backoffice/layout/breadcrumb/BackofficeTopbarPortalContext.d.ts +6 -0
  422. package/lib/types/components/backoffice/layout/breadcrumb/BackofficeTopbarPortalContext.d.ts.map +1 -0
  423. package/lib/types/components/backoffice/layout/breadcrumb/assertValidBreadcrumb.d.ts +3 -0
  424. package/lib/types/components/backoffice/layout/breadcrumb/assertValidBreadcrumb.d.ts.map +1 -0
  425. package/lib/types/components/backoffice/layout/breadcrumb/backofficeTopbarBreadcrumb.css.d.ts +7 -0
  426. package/lib/types/components/backoffice/layout/breadcrumb/backofficeTopbarBreadcrumb.css.d.ts.map +1 -0
  427. package/lib/types/components/backoffice/layout/breadcrumb/buildBreadcrumbs.d.ts +21 -0
  428. package/lib/types/components/backoffice/layout/breadcrumb/buildBreadcrumbs.d.ts.map +1 -0
  429. package/lib/types/components/backoffice/layout/breadcrumb/types.d.ts +9 -0
  430. package/lib/types/components/backoffice/layout/breadcrumb/types.d.ts.map +1 -0
  431. package/lib/types/components/backoffice/layout/buildSidebarSections.d.ts +22 -0
  432. package/lib/types/components/backoffice/layout/buildSidebarSections.d.ts.map +1 -0
  433. package/lib/types/components/backoffice/layout/mapViewerToSidebarProfileView.d.ts +15 -0
  434. package/lib/types/components/backoffice/layout/mapViewerToSidebarProfileView.d.ts.map +1 -0
  435. package/lib/types/components/backoffice/layout/sidebarUtils.d.ts +16 -0
  436. package/lib/types/components/backoffice/layout/sidebarUtils.d.ts.map +1 -0
  437. package/lib/types/components/backoffice/list/RowFlagsCell.css.d.ts +4 -0
  438. package/lib/types/components/backoffice/list/RowFlagsCell.css.d.ts.map +1 -0
  439. package/lib/types/components/backoffice/list/RowFlagsCell.d.ts +10 -0
  440. package/lib/types/components/backoffice/list/RowFlagsCell.d.ts.map +1 -0
  441. package/lib/types/components/backoffice/overview/BackofficeOverviewLayout.d.ts +10 -0
  442. package/lib/types/components/backoffice/overview/BackofficeOverviewLayout.d.ts.map +1 -0
  443. package/lib/types/components/backoffice/overview/backofficeOverviewLayout.css.d.ts +6 -0
  444. package/lib/types/components/backoffice/overview/backofficeOverviewLayout.css.d.ts.map +1 -0
  445. package/lib/types/components/backoffice/pickers/EntityIdPickerDialog.d.ts +14 -0
  446. package/lib/types/components/backoffice/pickers/EntityIdPickerDialog.d.ts.map +1 -0
  447. package/lib/types/components/backoffice/pickers/entityIdPickerDialog.css.d.ts +8 -0
  448. package/lib/types/components/backoffice/pickers/entityIdPickerDialog.css.d.ts.map +1 -0
  449. package/lib/types/components/backoffice/pickers/shared/EntityPickerList.d.ts +10 -0
  450. package/lib/types/components/backoffice/pickers/shared/EntityPickerList.d.ts.map +1 -0
  451. package/lib/types/components/backoffice/pickers/shared/EntityPickerRowBase.d.ts +8 -0
  452. package/lib/types/components/backoffice/pickers/shared/EntityPickerRowBase.d.ts.map +1 -0
  453. package/lib/types/components/backoffice/pickers/shared/EntityPickerShell.d.ts +11 -0
  454. package/lib/types/components/backoffice/pickers/shared/EntityPickerShell.d.ts.map +1 -0
  455. package/lib/types/components/backoffice/pickers/types.d.ts +14 -0
  456. package/lib/types/components/backoffice/pickers/types.d.ts.map +1 -0
  457. package/lib/types/components/backoffice/refs/BackofficeEntityIdRef.d.ts +13 -0
  458. package/lib/types/components/backoffice/refs/BackofficeEntityIdRef.d.ts.map +1 -0
  459. package/lib/types/components/backoffice/refs/BackofficeRelatedCountLink.d.ts +9 -0
  460. package/lib/types/components/backoffice/refs/BackofficeRelatedCountLink.d.ts.map +1 -0
  461. package/lib/types/components/backoffice/refs/backofficeEntityIdRef.css.d.ts +2 -0
  462. package/lib/types/components/backoffice/refs/backofficeEntityIdRef.css.d.ts.map +1 -0
  463. package/lib/types/components/backoffice/refs/backofficeRelatedCountLink.css.d.ts +2 -0
  464. package/lib/types/components/backoffice/refs/backofficeRelatedCountLink.css.d.ts.map +1 -0
  465. package/lib/types/components/backoffice/routing/BackofficeContentBoundary.d.ts +7 -0
  466. package/lib/types/components/backoffice/routing/BackofficeContentBoundary.d.ts.map +1 -0
  467. package/lib/types/components/backoffice/routing/BackofficeContentError.d.ts +8 -0
  468. package/lib/types/components/backoffice/routing/BackofficeContentError.d.ts.map +1 -0
  469. package/lib/types/components/backoffice/routing/BackofficeContentFallback.d.ts +4 -0
  470. package/lib/types/components/backoffice/routing/BackofficeContentFallback.d.ts.map +1 -0
  471. package/lib/types/components/backoffice/routing/BackofficeRouteFallback.d.ts +4 -0
  472. package/lib/types/components/backoffice/routing/BackofficeRouteFallback.d.ts.map +1 -0
  473. package/lib/types/components/backoffice/routing/BackofficeRoutePendingBar.d.ts +4 -0
  474. package/lib/types/components/backoffice/routing/BackofficeRoutePendingBar.d.ts.map +1 -0
  475. package/lib/types/components/backoffice/routing/backofficeContentBoundary.css.d.ts +2 -0
  476. package/lib/types/components/backoffice/routing/backofficeContentBoundary.css.d.ts.map +1 -0
  477. package/lib/types/components/backoffice/routing/backofficeContentError.css.d.ts +3 -0
  478. package/lib/types/components/backoffice/routing/backofficeContentError.css.d.ts.map +1 -0
  479. package/lib/types/components/backoffice/routing/backofficeContentFallback.css.d.ts +5 -0
  480. package/lib/types/components/backoffice/routing/backofficeContentFallback.css.d.ts.map +1 -0
  481. package/lib/types/components/backoffice/routing/backofficeRouteFallback.css.d.ts +3 -0
  482. package/lib/types/components/backoffice/routing/backofficeRouteFallback.css.d.ts.map +1 -0
  483. package/lib/types/components/backoffice/routing/backofficeRoutePendingBar.css.d.ts +3 -0
  484. package/lib/types/components/backoffice/routing/backofficeRoutePendingBar.css.d.ts.map +1 -0
  485. package/lib/types/components/backoffice/scaffolds/BackofficeEntityDetailScaffold.d.ts +13 -0
  486. package/lib/types/components/backoffice/scaffolds/BackofficeEntityDetailScaffold.d.ts.map +1 -0
  487. package/lib/types/components/backoffice/scaffolds/BackofficeEntityListScaffold.d.ts +30 -0
  488. package/lib/types/components/backoffice/scaffolds/BackofficeEntityListScaffold.d.ts.map +1 -0
  489. package/lib/types/components/backoffice/scaffolds/BackofficeListFilterContext.d.ts +23 -0
  490. package/lib/types/components/backoffice/scaffolds/BackofficeListFilterContext.d.ts.map +1 -0
  491. package/lib/types/components/backoffice/scaffolds/BackofficeTabbedDetailShell.d.ts +11 -0
  492. package/lib/types/components/backoffice/scaffolds/BackofficeTabbedDetailShell.d.ts.map +1 -0
  493. package/lib/types/components/backoffice/scaffolds/backofficeEntityListScaffold.css.d.ts +5 -0
  494. package/lib/types/components/backoffice/scaffolds/backofficeEntityListScaffold.css.d.ts.map +1 -0
  495. package/lib/types/components/backoffice/scaffolds/backofficeTabbedDetailShell.css.d.ts +3 -0
  496. package/lib/types/components/backoffice/scaffolds/backofficeTabbedDetailShell.css.d.ts.map +1 -0
  497. package/lib/types/components/backoffice/shared/BackofficeInlineFilterRow.d.ts +8 -0
  498. package/lib/types/components/backoffice/shared/BackofficeInlineFilterRow.d.ts.map +1 -0
  499. package/lib/types/components/backoffice/shared/backofficeInlineFilterRow.css.d.ts +2 -0
  500. package/lib/types/components/backoffice/shared/backofficeInlineFilterRow.css.d.ts.map +1 -0
  501. package/lib/types/components/backoffice/tools/BackofficeToolsDocPanel.d.ts +11 -0
  502. package/lib/types/components/backoffice/tools/BackofficeToolsDocPanel.d.ts.map +1 -0
  503. package/lib/types/components/backoffice/tools/BackofficeToolsErrorFallback.d.ts +8 -0
  504. package/lib/types/components/backoffice/tools/BackofficeToolsErrorFallback.d.ts.map +1 -0
  505. package/lib/types/components/backoffice/tools/BackofficeToolsJsonForm.d.ts +15 -0
  506. package/lib/types/components/backoffice/tools/BackofficeToolsJsonForm.d.ts.map +1 -0
  507. package/lib/types/components/backoffice/tools/BackofficeToolsPageLayout.d.ts +13 -0
  508. package/lib/types/components/backoffice/tools/BackofficeToolsPageLayout.d.ts.map +1 -0
  509. package/lib/types/components/backoffice/tools/BackofficeToolsParamsContext.d.ts +14 -0
  510. package/lib/types/components/backoffice/tools/BackofficeToolsParamsContext.d.ts.map +1 -0
  511. package/lib/types/components/backoffice/tools/BackofficeToolsProjectPicker.d.ts +8 -0
  512. package/lib/types/components/backoffice/tools/BackofficeToolsProjectPicker.d.ts.map +1 -0
  513. package/lib/types/components/backoffice/tools/BackofficeToolsQueryBoundary.d.ts +7 -0
  514. package/lib/types/components/backoffice/tools/BackofficeToolsQueryBoundary.d.ts.map +1 -0
  515. package/lib/types/components/backoffice/tools/BackofficeToolsScopePicker.d.ts +8 -0
  516. package/lib/types/components/backoffice/tools/BackofficeToolsScopePicker.d.ts.map +1 -0
  517. package/lib/types/components/backoffice/tools/backofficeToolsDocPanel.css.d.ts +8 -0
  518. package/lib/types/components/backoffice/tools/backofficeToolsDocPanel.css.d.ts.map +1 -0
  519. package/lib/types/components/backoffice/tools/backofficeToolsForm.css.d.ts +6 -0
  520. package/lib/types/components/backoffice/tools/backofficeToolsForm.css.d.ts.map +1 -0
  521. package/lib/types/components/backoffice/tools/backofficeToolsJsonForm.css.d.ts +4 -0
  522. package/lib/types/components/backoffice/tools/backofficeToolsJsonForm.css.d.ts.map +1 -0
  523. package/lib/types/components/backoffice/tools/backofficeToolsPageLayout.css.d.ts +13 -0
  524. package/lib/types/components/backoffice/tools/backofficeToolsPageLayout.css.d.ts.map +1 -0
  525. package/lib/types/components/backoffice/tools/backofficeToolsProjectPicker.css.d.ts +4 -0
  526. package/lib/types/components/backoffice/tools/backofficeToolsProjectPicker.css.d.ts.map +1 -0
  527. package/lib/types/components/backoffice/tools/backofficeToolsScopePicker.css.d.ts +4 -0
  528. package/lib/types/components/backoffice/tools/backofficeToolsScopePicker.css.d.ts.map +1 -0
  529. package/lib/types/filters/filterHelpers.d.ts +5 -0
  530. package/lib/types/filters/filterHelpers.d.ts.map +1 -0
  531. package/lib/types/hooks/useAuth.d.ts +170 -0
  532. package/lib/types/hooks/useAuth.d.ts.map +1 -0
  533. package/lib/types/hooks/useBackofficeAuth.d.ts +3 -0
  534. package/lib/types/hooks/useBackofficeAuth.d.ts.map +1 -0
  535. package/lib/types/hooks/useBackofficeListRefetch.d.ts +17 -0
  536. package/lib/types/hooks/useBackofficeListRefetch.d.ts.map +1 -0
  537. package/lib/types/hooks/useBackofficeListUrlState.d.ts +8 -0
  538. package/lib/types/hooks/useBackofficeListUrlState.d.ts.map +1 -0
  539. package/lib/types/hooks/useBackofficeLoadMore.d.ts +9 -0
  540. package/lib/types/hooks/useBackofficeLoadMore.d.ts.map +1 -0
  541. package/lib/types/hooks/useBackofficeSessionAuth.d.ts +7 -0
  542. package/lib/types/hooks/useBackofficeSessionAuth.d.ts.map +1 -0
  543. package/lib/types/hooks/useBackofficeSidebarPins.d.ts +15 -0
  544. package/lib/types/hooks/useBackofficeSidebarPins.d.ts.map +1 -0
  545. package/lib/types/hooks/useBackofficeToolsUrlParams.d.ts +8 -0
  546. package/lib/types/hooks/useBackofficeToolsUrlParams.d.ts.map +1 -0
  547. package/lib/types/hooks/useSidebarGroupCollapse.d.ts +11 -0
  548. package/lib/types/hooks/useSidebarGroupCollapse.d.ts.map +1 -0
  549. package/lib/types/i18n/createI18nInstance.d.ts +17 -0
  550. package/lib/types/i18n/createI18nInstance.d.ts.map +1 -0
  551. package/lib/types/i18n/mergeResourceLanguages.d.ts +3 -0
  552. package/lib/types/i18n/mergeResourceLanguages.d.ts.map +1 -0
  553. package/lib/types/i18n/resources.d.ts +1010 -0
  554. package/lib/types/i18n/resources.d.ts.map +1 -0
  555. package/lib/types/i18n/useBackofficeFormats.d.ts +7 -0
  556. package/lib/types/i18n/useBackofficeFormats.d.ts.map +1 -0
  557. package/lib/types/i18n/useBackofficeReactTranslation.d.ts +3 -0
  558. package/lib/types/i18n/useBackofficeReactTranslation.d.ts.map +1 -0
  559. package/lib/types/i18n/useSharedTranslation.d.ts +3 -0
  560. package/lib/types/i18n/useSharedTranslation.d.ts.map +1 -0
  561. package/lib/types/index.d.ts +3 -0
  562. package/lib/types/index.d.ts.map +1 -0
  563. package/lib/types/modules/sharedSchemaTypes.d.ts +7 -0
  564. package/lib/types/modules/sharedSchemaTypes.d.ts.map +1 -0
  565. package/lib/types/modules/webauthn.d.ts +6 -0
  566. package/lib/types/modules/webauthn.d.ts.map +1 -0
  567. package/lib/types/pages/BackofficeAcceptInvitationPage.d.ts +4 -0
  568. package/lib/types/pages/BackofficeAcceptInvitationPage.d.ts.map +1 -0
  569. package/lib/types/pages/BackofficeDashboardPage.d.ts +4 -0
  570. package/lib/types/pages/BackofficeDashboardPage.d.ts.map +1 -0
  571. package/lib/types/pages/BackofficeEntityDetailLayoutPage.d.ts +11 -0
  572. package/lib/types/pages/BackofficeEntityDetailLayoutPage.d.ts.map +1 -0
  573. package/lib/types/pages/BackofficeEntityDetailPage.d.ts +18 -0
  574. package/lib/types/pages/BackofficeEntityDetailPage.d.ts.map +1 -0
  575. package/lib/types/pages/BackofficeEntityDetailUnknownPageRedirect.d.ts +13 -0
  576. package/lib/types/pages/BackofficeEntityDetailUnknownPageRedirect.d.ts.map +1 -0
  577. package/lib/types/pages/BackofficeEntityListPage.d.ts +10 -0
  578. package/lib/types/pages/BackofficeEntityListPage.d.ts.map +1 -0
  579. package/lib/types/pages/BackofficeLayoutPage.d.ts +17 -0
  580. package/lib/types/pages/BackofficeLayoutPage.d.ts.map +1 -0
  581. package/lib/types/pages/BackofficeLoginPage.d.ts +11 -0
  582. package/lib/types/pages/BackofficeLoginPage.d.ts.map +1 -0
  583. package/lib/types/pages/BackofficePasswordResetCompletePage.d.ts +4 -0
  584. package/lib/types/pages/BackofficePasswordResetCompletePage.d.ts.map +1 -0
  585. package/lib/types/pages/BackofficePasswordResetRequestPage.d.ts +4 -0
  586. package/lib/types/pages/BackofficePasswordResetRequestPage.d.ts.map +1 -0
  587. package/lib/types/pages/BackofficeToolsOperationPage.d.ts +9 -0
  588. package/lib/types/pages/BackofficeToolsOperationPage.d.ts.map +1 -0
  589. package/lib/types/pages/BackofficeVerifyEmailPage.d.ts +4 -0
  590. package/lib/types/pages/BackofficeVerifyEmailPage.d.ts.map +1 -0
  591. package/lib/types/pages/backofficeDashboardPage.css.d.ts +5 -0
  592. package/lib/types/pages/backofficeDashboardPage.css.d.ts.map +1 -0
  593. package/lib/types/pages/backofficeEntityDetailPage.css.d.ts +5 -0
  594. package/lib/types/pages/backofficeEntityDetailPage.css.d.ts.map +1 -0
  595. package/lib/types/pages/backofficeEntityListPage.css.d.ts +4 -0
  596. package/lib/types/pages/backofficeEntityListPage.css.d.ts.map +1 -0
  597. package/lib/types/pages/detail/BackofficeEntityDetailLayoutContext.d.ts +6 -0
  598. package/lib/types/pages/detail/BackofficeEntityDetailLayoutContext.d.ts.map +1 -0
  599. package/lib/types/pages/detail/buildTabsItems.d.ts +12 -0
  600. package/lib/types/pages/detail/buildTabsItems.d.ts.map +1 -0
  601. package/lib/types/pages/detail/pageResolution.d.ts +20 -0
  602. package/lib/types/pages/detail/pageResolution.d.ts.map +1 -0
  603. package/lib/types/provider/BackofficeConfigContext.d.ts +18 -0
  604. package/lib/types/provider/BackofficeConfigContext.d.ts.map +1 -0
  605. package/lib/types/provider/BackofficeProvider.d.ts +7 -0
  606. package/lib/types/provider/BackofficeProvider.d.ts.map +1 -0
  607. package/lib/types/provider/entityRegistry.d.ts +28 -0
  608. package/lib/types/provider/entityRegistry.d.ts.map +1 -0
  609. package/lib/types/provider/lazyValue.d.ts +7 -0
  610. package/lib/types/provider/lazyValue.d.ts.map +1 -0
  611. package/lib/types/provider/types.d.ts +101 -0
  612. package/lib/types/provider/types.d.ts.map +1 -0
  613. package/lib/types/provider/useBackofficeEntityLoader.d.ts +39 -0
  614. package/lib/types/provider/useBackofficeEntityLoader.d.ts.map +1 -0
  615. package/lib/types/provider/useBackofficeLazyValue.d.ts +13 -0
  616. package/lib/types/provider/useBackofficeLazyValue.d.ts.map +1 -0
  617. package/lib/types/relay/RelayProvider.d.ts +7 -0
  618. package/lib/types/relay/RelayProvider.d.ts.map +1 -0
  619. package/lib/types/relay/createInlineDataReader.d.ts +2 -0
  620. package/lib/types/relay/createInlineDataReader.d.ts.map +1 -0
  621. package/lib/types/relay/createInlineReader.d.ts +4 -0
  622. package/lib/types/relay/createInlineReader.d.ts.map +1 -0
  623. package/lib/types/relay/envHelpers.d.ts +16 -0
  624. package/lib/types/relay/envHelpers.d.ts.map +1 -0
  625. package/lib/types/relay/environment.d.ts +12 -0
  626. package/lib/types/relay/environment.d.ts.map +1 -0
  627. package/lib/types/relay/identityView.d.ts +2 -0
  628. package/lib/types/relay/identityView.d.ts.map +1 -0
  629. package/lib/types/relay/mutationResult.d.ts +51 -0
  630. package/lib/types/relay/mutationResult.d.ts.map +1 -0
  631. package/lib/types/relay/useRelayEnvironment.d.ts +2 -0
  632. package/lib/types/relay/useRelayEnvironment.d.ts.map +1 -0
  633. package/lib/types/router/backofficeAuthPaths.d.ts +3 -0
  634. package/lib/types/router/backofficeAuthPaths.d.ts.map +1 -0
  635. package/lib/types/router/createBackofficeRoutes.d.ts +32 -0
  636. package/lib/types/router/createBackofficeRoutes.d.ts.map +1 -0
  637. package/lib/types/style.d.ts +2 -0
  638. package/lib/types/style.d.ts.map +1 -0
  639. package/package.json +138 -0
@@ -0,0 +1,183 @@
1
+ import { actionButton as e } from "./backofficeSidebarActions.css.js";
2
+ import { buildEntityGroupLookup as t, isActivePath as n, resolveLabel as r, resolveSidebarGroups as i } from "./sidebarUtils.js";
3
+ import { jsx as a } from "react/jsx-runtime";
4
+ import { GripDotsSvg as o } from "@plumile/ui/icons/GripDotsSvg.js";
5
+ import { PinFilledSvg as s } from "@plumile/ui/icons/PinFilledSvg.js";
6
+ import { PinSvg as c } from "@plumile/ui/icons/PinSvg.js";
7
+ import { SidebarHomeSvg as l } from "@plumile/ui/icons/SidebarHomeSvg.js";
8
+ import { SidebarTasksSvg as u } from "@plumile/ui/icons/SidebarTasksSvg.js";
9
+ //#region src/components/backoffice/layout/buildSidebarSections.tsx
10
+ var d = (e, t) => e == null ? t ?? null : /* @__PURE__ */ a(e, {
11
+ width: 18,
12
+ height: 18,
13
+ "aria-hidden": "true"
14
+ });
15
+ function f(f) {
16
+ let { basePath: p, pathname: m, entities: h, sidebar: g, permissions: _, searchQuery: v, tApp: y, t: b, pinnedEntityIds: x = [], onTogglePin: S, onReorderPin: C, collapsedByGroupId: w, onGroupCollapsedChange: T } = f, E = i(h, g), D = Object.entries(E), O = new Set(x), k = b("sidebar.actions.pin"), A = b("sidebar.actions.unpin"), j = b("sidebar.actions.reorder"), M = t(E), N = v?.trim().toLowerCase() ?? "", P = (t) => {
17
+ if (S == null) return null;
18
+ let n = O.has(t), r = k, i = c;
19
+ return n && (r = A, i = s), /* @__PURE__ */ a("button", {
20
+ type: "button",
21
+ className: e,
22
+ "aria-pressed": n,
23
+ "aria-label": r,
24
+ title: r,
25
+ onClick: (e) => {
26
+ e.preventDefault(), e.stopPropagation(), S(t);
27
+ },
28
+ children: /* @__PURE__ */ a(i, {
29
+ width: 14,
30
+ height: 14,
31
+ "aria-hidden": "true"
32
+ })
33
+ });
34
+ }, F = (e) => {
35
+ let { entityId: t, groupId: i, groupIcon: s, enableReorder: c } = e, l = h[t];
36
+ if (l == null) return null;
37
+ let f = {
38
+ kind: "entity",
39
+ id: t
40
+ };
41
+ if (l.kind === "tool" && (f = {
42
+ kind: "tool",
43
+ id: t
44
+ }), g?.isItemVisible?.(f, _) === !1) return null;
45
+ if (l.kind === "tool") {
46
+ let e = r(l.label, y);
47
+ return N !== "" && !e.toLowerCase().includes(N) ? null : {
48
+ id: `tool-${t}`,
49
+ data: {
50
+ kind: "tool",
51
+ id: t,
52
+ groupId: i
53
+ },
54
+ label: e,
55
+ href: l.routes.list,
56
+ icon: d(s, /* @__PURE__ */ a(u, {
57
+ width: 18,
58
+ height: 18,
59
+ "aria-hidden": "true"
60
+ })),
61
+ isActive: n(m, l.routes.list),
62
+ ariaLabel: e,
63
+ actionSlot: P(t)
64
+ };
65
+ }
66
+ if (!l.hasList) return null;
67
+ let p = r(l.label, y);
68
+ if (N !== "" && !p.toLowerCase().includes(N)) return null;
69
+ let v, b, x, S, w = !1;
70
+ c === !0 && C != null && (w = !0, v = /* @__PURE__ */ a(o, {
71
+ width: 14,
72
+ height: 14,
73
+ "aria-hidden": "true"
74
+ }), b = (e) => {
75
+ let { dataTransfer: n } = e;
76
+ n.effectAllowed = "move", n.setData("text/plain", t);
77
+ }, x = (e) => {
78
+ e.preventDefault();
79
+ let { dataTransfer: t } = e;
80
+ t.dropEffect = "move";
81
+ }, S = (e) => {
82
+ e.preventDefault();
83
+ let n = e.dataTransfer.getData("text/plain");
84
+ n === "" || n === t || C(n, t);
85
+ });
86
+ let T;
87
+ return v != null && (T = j), {
88
+ id: t,
89
+ data: {
90
+ kind: "entity",
91
+ id: t,
92
+ groupId: i
93
+ },
94
+ label: p,
95
+ href: l.routes.list,
96
+ icon: d(s, /* @__PURE__ */ a(u, {
97
+ width: 18,
98
+ height: 18,
99
+ "aria-hidden": "true"
100
+ })),
101
+ isActive: n(m, l.routes.list),
102
+ ariaLabel: p,
103
+ actionSlot: P(t),
104
+ dragHandleSlot: v,
105
+ dragHandleLabel: T,
106
+ draggable: w,
107
+ onDragStart: b,
108
+ onDragOver: x,
109
+ onDrop: S
110
+ };
111
+ }, I = [];
112
+ if (x.length > 0) {
113
+ let e = x.map((e) => {
114
+ let t = M.get(e);
115
+ return F({
116
+ entityId: e,
117
+ groupId: t?.groupId,
118
+ groupIcon: t?.icon,
119
+ enableReorder: !0
120
+ });
121
+ }).filter((e) => e != null);
122
+ e.length > 0 && I.push({
123
+ id: "pinned",
124
+ title: b("sidebar.sections.pinned"),
125
+ items: e,
126
+ collapsible: !1
127
+ });
128
+ }
129
+ return D.forEach(([e, t], i) => {
130
+ if (t.isVisible != null && !t.isVisible(_)) return;
131
+ let o = [];
132
+ if (i === 0 && g?.isItemVisible?.({
133
+ kind: "dashboard",
134
+ id: "dashboard"
135
+ }, _) !== !1) {
136
+ let t = b("sidebar.items.dashboard");
137
+ if (N !== "" && !t.toLowerCase().includes(N)) return;
138
+ o.push({
139
+ id: "dashboard",
140
+ data: {
141
+ kind: "dashboard",
142
+ id: "dashboard",
143
+ groupId: e
144
+ },
145
+ label: t,
146
+ href: p,
147
+ icon: d(void 0, /* @__PURE__ */ a(l, {
148
+ width: 18,
149
+ height: 18,
150
+ "aria-hidden": "true"
151
+ })),
152
+ isActive: n(m, p),
153
+ ariaLabel: b("sidebar.items.dashboard")
154
+ });
155
+ }
156
+ if (t.entities != null && t.entities.forEach((n) => {
157
+ let r = F({
158
+ entityId: n,
159
+ groupId: e,
160
+ groupIcon: t.icon
161
+ });
162
+ r != null && o.push(r);
163
+ }), o.length === 0) return;
164
+ let s;
165
+ t.title != null && (s = r(t.title, y));
166
+ let c = w?.[e], u;
167
+ T != null && (u = (t) => {
168
+ T(e, t);
169
+ }), I.push({
170
+ id: e,
171
+ title: s,
172
+ items: o,
173
+ collapsible: !0,
174
+ defaultCollapsed: !0,
175
+ isCollapsed: c,
176
+ onCollapsedChange: u
177
+ });
178
+ }), I;
179
+ }
180
+ //#endregion
181
+ export { f as buildSidebarSections };
182
+
183
+ //# sourceMappingURL=buildSidebarSections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildSidebarSections.js","names":[],"sources":["../../../../../src/components/backoffice/layout/buildSidebarSections.tsx"],"sourcesContent":["import { type DragEvent, type ReactNode } from 'react';\nimport type { TFunction } from 'i18next';\n\nimport type { BackofficeEntityManifestMap } from '@plumile/backoffice-core/types.js';\nimport type {\n BackofficeSidebarConfig,\n BackofficeSidebarItemDescriptor,\n BackofficeIconComponent,\n} from '../../../provider/types.js';\nimport type { BackofficeSidebarSection } from '@plumile/ui-backoffice/backoffice/organisms/backoffice_sidebar/BackofficeSidebar.js';\nimport type { SidebarNavSectionItem } from '@plumile/ui-backoffice/backoffice/molecules/sidebar_nav_section/SidebarNavSection.js';\nimport { GripDotsSvg } from '@plumile/ui/icons/GripDotsSvg.js';\nimport { PinFilledSvg } from '@plumile/ui/icons/PinFilledSvg.js';\nimport { PinSvg } from '@plumile/ui/icons/PinSvg.js';\nimport { SidebarHomeSvg } from '@plumile/ui/icons/SidebarHomeSvg.js';\nimport { SidebarTasksSvg } from '@plumile/ui/icons/SidebarTasksSvg.js';\nimport type { SidebarGroupCollapseState } from '../../../hooks/useSidebarGroupCollapse.js';\nimport * as styles from './backofficeSidebarActions.css.js';\nimport {\n buildEntityGroupLookup,\n isActivePath,\n resolveLabel,\n resolveSidebarGroups,\n} from './sidebarUtils.js';\n\nconst renderIcon = (\n Icon?: BackofficeIconComponent,\n fallback?: ReactNode,\n): ReactNode => {\n if (Icon != null) {\n return <Icon width={18} height={18} aria-hidden=\"true\" />;\n }\n return fallback ?? null;\n};\n\nexport type BuildSidebarSectionsInput = {\n basePath: string;\n pathname: string;\n entities: BackofficeEntityManifestMap;\n sidebar?: BackofficeSidebarConfig;\n permissions: unknown;\n searchQuery?: string;\n tApp: TFunction;\n t: TFunction;\n pinnedEntityIds?: readonly string[];\n onTogglePin?: (entityId: string) => void;\n onReorderPin?: (fromId: string, toId: string) => void;\n collapsedByGroupId?: SidebarGroupCollapseState;\n onGroupCollapsedChange?: (groupId: string, collapsed: boolean) => void;\n};\n\n/**\n * Builds the sidebar sections for the backoffice layout.\n */\nexport function buildSidebarSections(\n input: BuildSidebarSectionsInput,\n): readonly BackofficeSidebarSection[] {\n const {\n basePath,\n pathname,\n entities,\n sidebar,\n permissions,\n searchQuery,\n tApp,\n t,\n pinnedEntityIds = [],\n onTogglePin,\n onReorderPin,\n collapsedByGroupId,\n onGroupCollapsedChange,\n } = input;\n\n const groups = resolveSidebarGroups(entities, sidebar);\n const entries = Object.entries(groups);\n const pinnedSet = new Set(pinnedEntityIds);\n const pinLabel = t('sidebar.actions.pin');\n const unpinLabel = t('sidebar.actions.unpin');\n const reorderLabel = t('sidebar.actions.reorder');\n const entityGroupLookup = buildEntityGroupLookup(groups);\n const normalizedQuery = searchQuery?.trim().toLowerCase() ?? '';\n\n const renderPinAction = (entityId: string): ReactNode | null => {\n if (onTogglePin == null) {\n return null;\n }\n const isPinned = pinnedSet.has(entityId);\n let label = pinLabel;\n let Icon = PinSvg;\n if (isPinned) {\n label = unpinLabel;\n Icon = PinFilledSvg;\n }\n\n return (\n <button\n type=\"button\"\n className={styles.actionButton}\n aria-pressed={isPinned}\n aria-label={label}\n title={label}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n onTogglePin(entityId);\n }}\n >\n <Icon width={14} height={14} aria-hidden=\"true\" />\n </button>\n );\n };\n\n const buildEntityItem = (inputItem: {\n entityId: string;\n groupId?: string;\n groupIcon?: BackofficeIconComponent;\n enableReorder?: boolean;\n }): SidebarNavSectionItem | null => {\n const { entityId, groupId, groupIcon, enableReorder } = inputItem;\n const config = entities[entityId];\n if (config == null) {\n return null;\n }\n\n let descriptor: BackofficeSidebarItemDescriptor = {\n kind: 'entity',\n id: entityId,\n };\n if (config.kind === 'tool') {\n descriptor = { kind: 'tool', id: entityId };\n }\n const isEntityVisible = sidebar?.isItemVisible?.(descriptor, permissions);\n if (isEntityVisible === false) {\n return null;\n }\n\n if (config.kind === 'tool') {\n const label = resolveLabel(config.label, tApp);\n if (\n normalizedQuery !== '' &&\n !label.toLowerCase().includes(normalizedQuery)\n ) {\n return null;\n }\n return {\n id: `tool-${entityId}`,\n data: {\n kind: 'tool',\n id: entityId,\n groupId,\n },\n label,\n href: config.routes.list,\n icon: renderIcon(\n groupIcon,\n <SidebarTasksSvg width={18} height={18} aria-hidden=\"true\" />,\n ),\n isActive: isActivePath(pathname, config.routes.list),\n ariaLabel: label,\n actionSlot: renderPinAction(entityId),\n };\n }\n\n if (!config.hasList) {\n return null;\n }\n\n const label = resolveLabel(config.label, tApp);\n if (\n normalizedQuery !== '' &&\n !label.toLowerCase().includes(normalizedQuery)\n ) {\n return null;\n }\n\n let dragHandleSlot: ReactNode | undefined;\n let onDragStart: ((event: DragEvent) => void) | undefined;\n let onDragOver: ((event: DragEvent) => void) | undefined;\n let onDrop: ((event: DragEvent) => void) | undefined;\n let draggable = false;\n\n if (enableReorder === true && onReorderPin != null) {\n draggable = true;\n dragHandleSlot = (\n <GripDotsSvg width={14} height={14} aria-hidden=\"true\" />\n );\n onDragStart = (event) => {\n const { dataTransfer } = event;\n dataTransfer.effectAllowed = 'move';\n dataTransfer.setData('text/plain', entityId);\n };\n onDragOver = (event) => {\n event.preventDefault();\n const { dataTransfer } = event;\n dataTransfer.dropEffect = 'move';\n };\n onDrop = (event) => {\n event.preventDefault();\n const fromId = event.dataTransfer.getData('text/plain');\n if (fromId === '' || fromId === entityId) {\n return;\n }\n onReorderPin(fromId, entityId);\n };\n }\n\n let dragHandleLabel: string | undefined;\n if (dragHandleSlot != null) {\n dragHandleLabel = reorderLabel;\n }\n\n return {\n id: entityId,\n data: {\n kind: 'entity',\n id: entityId,\n groupId,\n },\n label,\n href: config.routes.list,\n icon: renderIcon(\n groupIcon,\n <SidebarTasksSvg width={18} height={18} aria-hidden=\"true\" />,\n ),\n isActive: isActivePath(pathname, config.routes.list),\n ariaLabel: label,\n actionSlot: renderPinAction(entityId),\n dragHandleSlot,\n dragHandleLabel,\n draggable,\n onDragStart,\n onDragOver,\n onDrop,\n };\n };\n\n const sections: BackofficeSidebarSection[] = [];\n\n if (pinnedEntityIds.length > 0) {\n const pinnedItems = pinnedEntityIds\n .map((entityId) => {\n const groupMeta = entityGroupLookup.get(entityId);\n return buildEntityItem({\n entityId,\n groupId: groupMeta?.groupId,\n groupIcon: groupMeta?.icon,\n enableReorder: true,\n });\n })\n .filter((item): item is SidebarNavSectionItem => {\n return item != null;\n });\n\n if (pinnedItems.length > 0) {\n sections.push({\n id: 'pinned',\n title: t('sidebar.sections.pinned'),\n items: pinnedItems,\n collapsible: false,\n });\n }\n }\n\n entries.forEach(([groupId, group], index) => {\n if (group.isVisible != null && !group.isVisible(permissions)) {\n return;\n }\n\n const items: SidebarNavSectionItem[] = [];\n\n if (index === 0) {\n const dashboardDescriptor: BackofficeSidebarItemDescriptor = {\n kind: 'dashboard',\n id: 'dashboard',\n };\n const isDashboardVisible = sidebar?.isItemVisible?.(\n dashboardDescriptor,\n permissions,\n );\n if (isDashboardVisible !== false) {\n const dashboardLabel = t('sidebar.items.dashboard');\n if (\n normalizedQuery !== '' &&\n !dashboardLabel.toLowerCase().includes(normalizedQuery)\n ) {\n return;\n }\n items.push({\n id: 'dashboard',\n data: {\n kind: 'dashboard',\n id: 'dashboard',\n groupId,\n },\n label: dashboardLabel,\n href: basePath,\n icon: renderIcon(\n undefined,\n <SidebarHomeSvg width={18} height={18} aria-hidden=\"true\" />,\n ),\n isActive: isActivePath(pathname, basePath),\n ariaLabel: t('sidebar.items.dashboard'),\n });\n }\n }\n\n if (group.entities != null) {\n group.entities.forEach((entityId) => {\n const item = buildEntityItem({\n entityId,\n groupId,\n groupIcon: group.icon,\n });\n if (item != null) {\n items.push(item);\n }\n });\n }\n\n if (items.length === 0) {\n return;\n }\n\n let title: string | undefined;\n if (group.title != null) {\n title = resolveLabel(group.title, tApp);\n }\n\n const isCollapsed = collapsedByGroupId?.[groupId];\n let onCollapsedChange: ((collapsed: boolean) => void) | undefined;\n if (onGroupCollapsedChange != null) {\n onCollapsedChange = (collapsed: boolean) => {\n onGroupCollapsedChange(groupId, collapsed);\n };\n }\n\n sections.push({\n id: groupId,\n title,\n items,\n collapsible: true,\n defaultCollapsed: true,\n isCollapsed,\n onCollapsedChange,\n });\n });\n\n return sections;\n}\n"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ //#region src/components/backoffice/layout/mapViewerToSidebarProfileView.ts
2
+ var e = (e) => e?.trim() ?? "", t = ({ viewer: t, unknownUserLabel: n }) => {
3
+ let r = [e(t?.firstName), e(t?.lastName)].filter((e) => e !== "").join(" ").trim();
4
+ r === "" && (r = n);
5
+ let i = e(t?.email), a = e(t?.initials);
6
+ a === "" && (a = "?");
7
+ let o = [r];
8
+ return i !== "" && o.push(i), {
9
+ displayName: r,
10
+ email: i,
11
+ initials: a,
12
+ ariaLabel: o.join(" - ")
13
+ };
14
+ };
15
+ //#endregion
16
+ export { t as default, t as mapViewerToSidebarProfileView };
17
+
18
+ //# sourceMappingURL=mapViewerToSidebarProfileView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapViewerToSidebarProfileView.js","names":[],"sources":["../../../../../src/components/backoffice/layout/mapViewerToSidebarProfileView.ts"],"sourcesContent":["import type { BackofficeSidebarProfileViewer } from '@plumile/ui-backoffice/backoffice/molecules/sidebar_profile_menu/BackofficeSidebarProfileMenu.js';\n\nexport type BackofficeViewerIdentity = {\n id: string;\n firstName: string;\n lastName: string;\n email: string;\n initials: string;\n};\n\ntype MapViewerToSidebarProfileViewInput = {\n viewer: BackofficeViewerIdentity | null | undefined;\n unknownUserLabel: string;\n};\n\nconst sanitizeToken = (value: string | null | undefined): string => {\n return value?.trim() ?? '';\n};\n\nexport const mapViewerToSidebarProfileView = ({\n viewer,\n unknownUserLabel,\n}: MapViewerToSidebarProfileViewInput): BackofficeSidebarProfileViewer => {\n const firstName = sanitizeToken(viewer?.firstName);\n const lastName = sanitizeToken(viewer?.lastName);\n const joinedDisplayName = [firstName, lastName]\n .filter((token) => {\n return token !== '';\n })\n .join(' ')\n .trim();\n let displayName = joinedDisplayName;\n if (displayName === '') {\n displayName = unknownUserLabel;\n }\n\n const email = sanitizeToken(viewer?.email);\n const initialsToken = sanitizeToken(viewer?.initials);\n let initials = initialsToken;\n if (initials === '') {\n initials = '?';\n }\n\n const ariaParts = [displayName];\n if (email !== '') {\n ariaParts.push(email);\n }\n\n return {\n displayName,\n email,\n initials,\n ariaLabel: ariaParts.join(' - '),\n };\n};\n\nexport default mapViewerToSidebarProfileView;\n"],"mappings":";AAeA,IAAM,KAAiB,MACd,GAAO,MAAM,IAAI,IAGb,KAAiC,EAC5C,WACA,0BACwE;CASxE,IAAI,IANsB,CAFR,EAAc,GAAQ,UAAU,EACjC,EAAc,GAAQ,SAAS,CACD,CAC5C,QAAQ,MACA,MAAU,GACjB,CACD,KAAK,IAAI,CACT,MAAM;AAET,CAAI,MAAgB,OAClB,IAAc;CAGhB,IAAM,IAAQ,EAAc,GAAQ,MAAM,EAEtC,IADkB,EAAc,GAAQ,SAAS;AAErD,CAAI,MAAa,OACf,IAAW;CAGb,IAAM,IAAY,CAAC,EAAY;AAK/B,QAJI,MAAU,MACZ,EAAU,KAAK,EAAM,EAGhB;EACL;EACA;EACA;EACA,WAAW,EAAU,KAAK,MAAM;EACjC"}
@@ -0,0 +1,44 @@
1
+ //#region src/components/backoffice/layout/sidebarUtils.ts
2
+ var e = (e, t) => e(t), t = (e, t) => !!(e === t || t !== "/" && e.startsWith(`${t}/`)), n = (e) => ({ main: { entities: Object.keys(e) } }), r = (e, t) => t?.groups ?? n(e), i = (e) => {
3
+ let t = /* @__PURE__ */ new Map();
4
+ return Object.entries(e).forEach(([e, n]) => {
5
+ n.entities != null && n.entities.forEach((r) => {
6
+ t.has(r) || t.set(r, {
7
+ groupId: e,
8
+ icon: n.icon
9
+ });
10
+ });
11
+ }), t;
12
+ }, a = (e, t, n, r) => {
13
+ let i = t[e];
14
+ if (i == null) return !1;
15
+ let a = {
16
+ kind: "entity",
17
+ id: e
18
+ };
19
+ return i.kind === "tool" && (a = {
20
+ kind: "tool",
21
+ id: e
22
+ }), n?.isItemVisible == null ? i.kind === "tool" ? !0 : i.hasList : n.isItemVisible(a, r);
23
+ }, o = (e, t, n, r) => {
24
+ let i = [], o = /* @__PURE__ */ new Set();
25
+ return Object.entries(e).forEach(([, e]) => {
26
+ e.isVisible != null && !e.isVisible(r) || e.entities != null && e.entities.forEach((e) => {
27
+ o.has(e) || a(e, t, n, r) && (o.add(e), i.push(e));
28
+ });
29
+ }), i;
30
+ }, s = (e, n) => {
31
+ let r = Object.entries(n);
32
+ for (let [n, i] of r) if (i.kind === "tool") {
33
+ if (t(e, i.routes.list)) return n;
34
+ } else if (i.hasList && t(e, i.routes.list)) return n;
35
+ return null;
36
+ }, c = (e, t, n, r, i) => {
37
+ if (t == null || !a(t, n, r, i)) return null;
38
+ for (let [n, r] of Object.entries(e)) if ((r.isVisible == null || r.isVisible(i)) && r.entities?.includes(t) === !0) return n;
39
+ return null;
40
+ };
41
+ //#endregion
42
+ export { n as buildDefaultGroups, i as buildEntityGroupLookup, t as isActivePath, s as resolveActiveEntityId, c as resolveActiveGroupId, e as resolveLabel, r as resolveSidebarGroups, o as resolveVisibleEntityIds };
43
+
44
+ //# sourceMappingURL=sidebarUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebarUtils.js","names":[],"sources":["../../../../../src/components/backoffice/layout/sidebarUtils.ts"],"sourcesContent":["import type { TFunction } from 'i18next';\n\nimport type {\n BackofficeEntityManifestMap,\n I18nLabel,\n} from '@plumile/backoffice-core/types.js';\nimport type {\n BackofficeSidebarConfig,\n BackofficeIconComponent,\n BackofficeSidebarGroupConfig,\n BackofficeSidebarItemDescriptor,\n} from '../../../provider/types.js';\n\nexport const resolveLabel = (label: I18nLabel, tApp: TFunction): string => {\n return label(tApp);\n};\n\nexport const isActivePath = (pathname: string, href: string): boolean => {\n if (pathname === href) {\n return true;\n }\n if (href !== '/' && pathname.startsWith(`${href}/`)) {\n return true;\n }\n return false;\n};\n\nexport const buildDefaultGroups = (\n entities: BackofficeEntityManifestMap,\n): Record<string, BackofficeSidebarGroupConfig> => {\n const entityIds = Object.keys(entities);\n\n return {\n main: {\n entities: entityIds,\n },\n };\n};\n\nexport const resolveSidebarGroups = (\n entities: BackofficeEntityManifestMap,\n sidebar: BackofficeSidebarConfig | undefined,\n): Record<string, BackofficeSidebarGroupConfig> => {\n return sidebar?.groups ?? buildDefaultGroups(entities);\n};\n\nexport type EntityGroupLookup = Map<\n string,\n { groupId: string; icon?: BackofficeIconComponent }\n>;\n\nexport const buildEntityGroupLookup = (\n groups: Record<string, BackofficeSidebarGroupConfig>,\n): EntityGroupLookup => {\n const lookup: EntityGroupLookup = new Map();\n\n Object.entries(groups).forEach(([groupId, group]) => {\n if (group.entities == null) {\n return;\n }\n group.entities.forEach((entityId) => {\n if (!lookup.has(entityId)) {\n lookup.set(entityId, { groupId, icon: group.icon });\n }\n });\n });\n\n return lookup;\n};\n\nconst isEntityVisible = (\n entityId: string,\n entities: BackofficeEntityManifestMap,\n sidebar: BackofficeSidebarConfig | undefined,\n permissions: unknown,\n): boolean => {\n const config = entities[entityId];\n if (config == null) {\n return false;\n }\n\n let descriptor: BackofficeSidebarItemDescriptor = {\n kind: 'entity',\n id: entityId,\n };\n if (config.kind === 'tool') {\n descriptor = { kind: 'tool', id: entityId };\n }\n\n if (sidebar?.isItemVisible != null) {\n return sidebar.isItemVisible(descriptor, permissions);\n }\n\n if (config.kind === 'tool') {\n return true;\n }\n return config.hasList;\n};\n\nexport const resolveVisibleEntityIds = (\n groups: Record<string, BackofficeSidebarGroupConfig>,\n entities: BackofficeEntityManifestMap,\n sidebar: BackofficeSidebarConfig | undefined,\n permissions: unknown,\n): string[] => {\n const output: string[] = [];\n const seen = new Set<string>();\n\n Object.entries(groups).forEach(([, group]) => {\n if (group.isVisible != null && !group.isVisible(permissions)) {\n return;\n }\n if (group.entities == null) {\n return;\n }\n group.entities.forEach((entityId) => {\n if (seen.has(entityId)) {\n return;\n }\n if (!isEntityVisible(entityId, entities, sidebar, permissions)) {\n return;\n }\n seen.add(entityId);\n output.push(entityId);\n });\n });\n\n return output;\n};\n\nexport const resolveActiveEntityId = (\n pathname: string,\n entities: BackofficeEntityManifestMap,\n): string | null => {\n const entries = Object.entries(entities);\n for (const [entityId, config] of entries) {\n if (config.kind === 'tool') {\n if (isActivePath(pathname, config.routes.list)) {\n return entityId;\n }\n } else if (config.hasList && isActivePath(pathname, config.routes.list)) {\n return entityId;\n }\n }\n return null;\n};\n\nexport const resolveActiveGroupId = (\n groups: Record<string, BackofficeSidebarGroupConfig>,\n activeEntityId: string | null,\n entities: BackofficeEntityManifestMap,\n sidebar: BackofficeSidebarConfig | undefined,\n permissions: unknown,\n): string | null => {\n if (activeEntityId == null) {\n return null;\n }\n\n if (!isEntityVisible(activeEntityId, entities, sidebar, permissions)) {\n return null;\n }\n\n for (const [groupId, group] of Object.entries(groups)) {\n const isVisible = group.isVisible == null || group.isVisible(permissions);\n if (isVisible && group.entities?.includes(activeEntityId) === true) {\n return groupId;\n }\n }\n\n return null;\n};\n"],"mappings":";AAaA,IAAa,KAAgB,GAAkB,MACtC,EAAM,EAAK,EAGP,KAAgB,GAAkB,MAI7C,GAHI,MAAa,KAGb,MAAS,OAAO,EAAS,WAAW,GAAG,EAAK,GAAG,GAMxC,KACX,OAIO,EACL,MAAM,EACJ,UAJc,OAAO,KAAK,EAAS,EAKpC,EACF,GAGU,KACX,GACA,MAEO,GAAS,UAAU,EAAmB,EAAS,EAQ3C,KACX,MACsB;CACtB,IAAM,oBAA4B,IAAI,KAAK;AAa3C,QAXA,OAAO,QAAQ,EAAO,CAAC,SAAS,CAAC,GAAS,OAAW;AAC/C,IAAM,YAAY,QAGtB,EAAM,SAAS,SAAS,MAAa;AACnC,GAAK,EAAO,IAAI,EAAS,IACvB,EAAO,IAAI,GAAU;IAAE;IAAS,MAAM,EAAM;IAAM,CAAC;IAErD;GACF,EAEK;GAGH,KACJ,GACA,GACA,GACA,MACY;CACZ,IAAM,IAAS,EAAS;AACxB,KAAI,KAAU,KACZ,QAAO;CAGT,IAAI,IAA8C;EAChD,MAAM;EACN,IAAI;EACL;AAYD,QAXI,EAAO,SAAS,WAClB,IAAa;EAAE,MAAM;EAAQ,IAAI;EAAU,GAGzC,GAAS,iBAAiB,OAI1B,EAAO,SAAS,SACX,KAEF,EAAO,UANL,EAAQ,cAAc,GAAY,EAAY;GAS5C,KACX,GACA,GACA,GACA,MACa;CACb,IAAM,IAAmB,EAAE,EACrB,oBAAO,IAAI,KAAa;AAqB9B,QAnBA,OAAO,QAAQ,EAAO,CAAC,SAAS,GAAG,OAAW;AACxC,IAAM,aAAa,QAAQ,CAAC,EAAM,UAAU,EAAY,IAGxD,EAAM,YAAY,QAGtB,EAAM,SAAS,SAAS,MAAa;AAC/B,KAAK,IAAI,EAAS,IAGjB,EAAgB,GAAU,GAAU,GAAS,EAAY,KAG9D,EAAK,IAAI,EAAS,EAClB,EAAO,KAAK,EAAS;IACrB;GACF,EAEK;GAGI,KACX,GACA,MACkB;CAClB,IAAM,IAAU,OAAO,QAAQ,EAAS;AACxC,MAAK,IAAM,CAAC,GAAU,MAAW,EAC/B,KAAI,EAAO,SAAS;MACd,EAAa,GAAU,EAAO,OAAO,KAAK,CAC5C,QAAO;YAEA,EAAO,WAAW,EAAa,GAAU,EAAO,OAAO,KAAK,CACrE,QAAO;AAGX,QAAO;GAGI,KACX,GACA,GACA,GACA,GACA,MACkB;AAKlB,KAJI,KAAkB,QAIlB,CAAC,EAAgB,GAAgB,GAAU,GAAS,EAAY,CAClE,QAAO;AAGT,MAAK,IAAM,CAAC,GAAS,MAAU,OAAO,QAAQ,EAAO,CAEnD,MADkB,EAAM,aAAa,QAAQ,EAAM,UAAU,EAAY,KACxD,EAAM,UAAU,SAAS,EAAe,KAAK,GAC5D,QAAO;AAIX,QAAO"}
@@ -0,0 +1,7 @@
1
+ /* empty css */
2
+ //#region src/components/backoffice/list/RowFlagsCell.css.ts
3
+ var e = "wy96wu0", t = "wy96wu1", n = "wy96wu2";
4
+ //#endregion
5
+ export { t as container, n as flag, e as rowFlagsColumnCell };
6
+
7
+ //# sourceMappingURL=RowFlagsCell.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RowFlagsCell.css.js","names":[],"sources":["../../../../../src/components/backoffice/list/RowFlagsCell.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\n\nexport const rowFlagsColumnCell = style({\n justifyContent: 'center',\n padding: '0 4px',\n});\n\nexport const container = style({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 6,\n width: '100%',\n});\n\nexport const flag = style({\n display: 'grid',\n placeItems: 'center',\n width: 24,\n height: 24,\n});\n"],"mappings":""}
@@ -0,0 +1,37 @@
1
+ import { container as e, flag as t } from "./RowFlagsCell.css.js";
2
+ import { jsx as n } from "react/jsx-runtime";
3
+ import { useMemo as r } from "react";
4
+ //#region src/components/backoffice/list/RowFlagsCell.tsx
5
+ var i = ({ row: i, flags: a, tApp: o }) => {
6
+ let s = r(() => {
7
+ let e = [];
8
+ for (let t of a) {
9
+ let n = t.render(i);
10
+ n != null && n !== "" && n !== !1 && e.push({
11
+ id: t.id,
12
+ node: n,
13
+ label: t.label(i)(o)
14
+ });
15
+ }
16
+ return e;
17
+ }, [
18
+ a,
19
+ i,
20
+ o
21
+ ]), c = s.map((e) => e.label.trim()).filter((e) => e !== "").join(", "), l;
22
+ return c !== "" && (l = c), /* @__PURE__ */ n("div", {
23
+ className: e,
24
+ "aria-label": l,
25
+ children: s.map((e) => /* @__PURE__ */ n("span", {
26
+ className: t,
27
+ title: e.label,
28
+ role: "img",
29
+ "aria-label": e.label,
30
+ children: e.node
31
+ }, e.id))
32
+ });
33
+ };
34
+ //#endregion
35
+ export { i as RowFlagsCell };
36
+
37
+ //# sourceMappingURL=RowFlagsCell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RowFlagsCell.js","names":[],"sources":["../../../../../src/components/backoffice/list/RowFlagsCell.tsx"],"sourcesContent":["import { useMemo, type JSX, type ReactNode } from 'react';\nimport type { TFunction } from 'i18next';\n\nimport type { BackofficeRowFlagSpec } from '@plumile/backoffice-core/types.js';\n\nimport * as styles from './RowFlagsCell.css.js';\n\nexport type RowFlagsCellProps<Row> = {\n row: Row;\n flags: readonly BackofficeRowFlagSpec<Row>[];\n tApp: TFunction;\n};\n\n/**\n * Renders row-level flags (icons) in a dedicated compact column.\n */\nexport const RowFlagsCell = <Row,>({\n row,\n flags,\n tApp,\n}: RowFlagsCellProps<Row>): JSX.Element => {\n const resolved = useMemo(() => {\n const out: { id: string; node: ReactNode; label: string }[] = [];\n for (const flag of flags) {\n const node = flag.render(row) as ReactNode;\n if (node != null && node !== '' && node !== false) {\n out.push({ id: flag.id, node, label: flag.label(row)(tApp) });\n }\n }\n return out;\n }, [flags, row, tApp]);\n\n const ariaLabel = resolved\n .map((entry) => {\n return entry.label.trim();\n })\n .filter((label) => {\n return label !== '';\n })\n .join(', ');\n\n let ariaLabelProp: string | undefined;\n if (ariaLabel !== '') {\n ariaLabelProp = ariaLabel;\n }\n\n return (\n <div className={styles.container} aria-label={ariaLabelProp}>\n {resolved.map((entry) => {\n return (\n <span\n key={entry.id}\n className={styles.flag}\n title={entry.label}\n role=\"img\"\n aria-label={entry.label}\n >\n {entry.node}\n </span>\n );\n })}\n </div>\n );\n};\n"],"mappings":";;;;AAgBA,IAAa,KAAsB,EACjC,QACA,UACA,cACyC;CACzC,IAAM,IAAW,QAAc;EAC7B,IAAM,IAAwD,EAAE;AAChE,OAAK,IAAM,KAAQ,GAAO;GACxB,IAAM,IAAO,EAAK,OAAO,EAAI;AAC7B,GAAI,KAAQ,QAAQ,MAAS,MAAM,MAAS,MAC1C,EAAI,KAAK;IAAE,IAAI,EAAK;IAAI;IAAM,OAAO,EAAK,MAAM,EAAI,CAAC,EAAK;IAAE,CAAC;;AAGjE,SAAO;IACN;EAAC;EAAO;EAAK;EAAK,CAAC,EAEhB,IAAY,EACf,KAAK,MACG,EAAM,MAAM,MAAM,CACzB,CACD,QAAQ,MACA,MAAU,GACjB,CACD,KAAK,KAAK,EAET;AAKJ,QAJI,MAAc,OAChB,IAAgB,IAIhB,kBAAC,OAAD;EAAK,WAAW;EAAkB,cAAY;YAC3C,EAAS,KAAK,MAEX,kBAAC,QAAD;GAEE,WAAW;GACX,OAAO,EAAM;GACb,MAAK;GACL,cAAY,EAAM;aAEjB,EAAM;GACF,EAPA,EAAM,GAON,CAET;EACE,CAAA"}
@@ -0,0 +1,31 @@
1
+ import { aside as e, container as t, content as n, primary as r, summary as i } from "./backofficeOverviewLayout.css.js";
2
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
3
+ import { cx as s } from "@plumile/ui/theme/tools.js";
4
+ //#region src/components/backoffice/overview/BackofficeOverviewLayout.tsx
5
+ var c = ({ summary: c, aside: l, children: u, className: d }) => {
6
+ let f = null;
7
+ c != null && (f = /* @__PURE__ */ a("div", {
8
+ className: i,
9
+ children: c
10
+ }));
11
+ let p = null;
12
+ l != null && (p = /* @__PURE__ */ a("aside", {
13
+ className: e,
14
+ children: l
15
+ }));
16
+ let m = null;
17
+ return (u != null || p != null) && (m = /* @__PURE__ */ a("div", {
18
+ className: r,
19
+ children: u
20
+ })), /* @__PURE__ */ o("div", {
21
+ className: s(t, d),
22
+ children: [f, /* @__PURE__ */ o("div", {
23
+ className: n,
24
+ children: [m, p]
25
+ })]
26
+ });
27
+ };
28
+ //#endregion
29
+ export { c as BackofficeOverviewLayout, c as default };
30
+
31
+ //# sourceMappingURL=BackofficeOverviewLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackofficeOverviewLayout.js","names":[],"sources":["../../../../../src/components/backoffice/overview/BackofficeOverviewLayout.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\n\nimport { cx } from '@plumile/ui/theme/tools.js';\n\nimport * as styles from './backofficeOverviewLayout.css.js';\n\nexport type BackofficeOverviewLayoutProps = {\n summary?: ReactNode;\n aside?: ReactNode;\n children?: ReactNode;\n className?: string;\n};\n\nexport const BackofficeOverviewLayout = ({\n summary,\n aside,\n children,\n className,\n}: BackofficeOverviewLayoutProps): JSX.Element => {\n let summaryNode: JSX.Element | null = null;\n if (summary != null) {\n summaryNode = <div className={styles.summary}>{summary}</div>;\n }\n\n let asideNode: JSX.Element | null = null;\n if (aside != null) {\n asideNode = <aside className={styles.aside}>{aside}</aside>;\n }\n\n let primaryNode: JSX.Element | null = null;\n if (children != null || asideNode != null) {\n primaryNode = <div className={styles.primary}>{children}</div>;\n }\n\n return (\n <div className={cx(styles.container, className)}>\n {summaryNode}\n <div className={styles.content}>\n {primaryNode}\n {asideNode}\n </div>\n </div>\n );\n};\n\nexport default BackofficeOverviewLayout;\n"],"mappings":";;;;AAaA,IAAa,KAA4B,EACvC,SAAA,GACA,OAAA,GACA,aACA,mBACgD;CAChD,IAAI,IAAkC;AACtC,CAAI,KAAW,SACb,IAAc,kBAAC,OAAD;EAAK,WAAW;YAAiB;EAAc,CAAA;CAG/D,IAAI,IAAgC;AACpC,CAAI,KAAS,SACX,IAAY,kBAAC,SAAD;EAAO,WAAW;YAAe;EAAc,CAAA;CAG7D,IAAI,IAAkC;AAKtC,SAJI,KAAY,QAAQ,KAAa,UACnC,IAAc,kBAAC,OAAD;EAAK,WAAW;EAAiB;EAAe,CAAA,GAI9D,kBAAC,OAAD;EAAK,WAAW,EAAG,GAAkB,EAAU;YAA/C,CACG,GACD,kBAAC,OAAD;GAAK,WAAW;aAAhB,CACG,GACA,EACG;KACF"}
@@ -0,0 +1,8 @@
1
+ /* empty css */
2
+ /* empty css */
3
+ //#region src/components/backoffice/overview/backofficeOverviewLayout.css.ts
4
+ var e = "_1f81p5z0 vncd899io vncd89ai6 vncd89ap6", t = "_1f81p5z1 vncd899io vncd89ai6 vncd89aoo", n = "_1f81p5z2 vncd899ix vncd89bwx vncd89ap6 vncd89cf", r = "_1f81p5z3 vncd899io vncd89ai6 vncd89ap6", i = "_1f81p5z4 vncd899io vncd89ai6 vncd89ap6";
5
+ //#endregion
6
+ export { i as aside, e as container, n as content, r as primary, t as summary };
7
+
8
+ //# sourceMappingURL=backofficeOverviewLayout.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backofficeOverviewLayout.css.js","names":[],"sources":["../../../../../src/components/backoffice/overview/backofficeOverviewLayout.css.ts"],"sourcesContent":["import { sprinkles } from '@plumile/ui/theme/sprinkles.css.js';\n\nexport const container = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 6,\n});\n\nexport const summary = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 4,\n});\n\nexport const content = sprinkles({\n display: 'grid',\n gridTemplateColumns: 'twoFrOneFr',\n gap: 6,\n alignItems: 'flex-start',\n});\n\nexport const primary = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 6,\n});\n\nexport const aside = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 6,\n});\n"],"mappings":""}
@@ -0,0 +1,107 @@
1
+ import { useBackofficeReactTranslation as e } from "../../../i18n/useBackofficeReactTranslation.js";
2
+ import { BackofficeErrorBoundary as t } from "../errors/BackofficeErrorBoundary.js";
3
+ import { useBackofficePickerEntityLoader as n } from "../../../provider/useBackofficeEntityLoader.js";
4
+ import { searchRequiredMessage as r } from "./entityIdPickerDialog.css.js";
5
+ import { EntityPickerShell as i } from "./shared/EntityPickerShell.js";
6
+ import { EntityPickerList as a } from "./shared/EntityPickerList.js";
7
+ import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";
8
+ import { useTranslation as l } from "react-i18next";
9
+ import { Button as u } from "@plumile/ui";
10
+ import { Suspense as d, useCallback as f, useEffect as p, useMemo as m, useState as h } from "react";
11
+ import { useFragment as g, useLazyLoadQuery as _ } from "react-relay";
12
+ import { Modal as v } from "@plumile/ui/atomic/atoms/modal/Modal.js";
13
+ import { Spinner as y } from "@plumile/ui-backoffice/backoffice/atoms/spinner/Spinner.js";
14
+ //#region src/components/backoffice/pickers/EntityIdPickerDialog.tsx
15
+ var b = "store-and-network", x = (e, t) => e(t), S = ({ config: e, search: t, scope: n, fetchKey: r, onSelectId: i }) => {
16
+ let o = m(() => {
17
+ let r = t.trim();
18
+ if (e.buildVariables != null) return e.buildVariables({
19
+ search: r,
20
+ scope: n
21
+ });
22
+ let i = r;
23
+ return r === "" && (i = null), {
24
+ search: i,
25
+ scope: n
26
+ };
27
+ }, [
28
+ e,
29
+ n,
30
+ t
31
+ ]), c = _(e.query, o, {
32
+ fetchPolicy: b,
33
+ fetchKey: r
34
+ }), l = g(e.fragment, c), u = e.getConnection(l);
35
+ return /* @__PURE__ */ s(a, {
36
+ items: m(() => u.edges.map((t) => {
37
+ let n = e.toRow(t.node);
38
+ return {
39
+ id: e.getRowId(n),
40
+ title: n.title,
41
+ subtitle: n.subtitle
42
+ };
43
+ }), [e, u.edges]),
44
+ onSelectId: i
45
+ });
46
+ }, C = (e, t) => /* @__PURE__ */ s(o, { children: /* @__PURE__ */ s(u, {
47
+ type: "button",
48
+ variant: "secondary",
49
+ onClick: e,
50
+ children: t
51
+ }) }), w = ({ message: e }) => /* @__PURE__ */ s("div", { children: e }), T = ({ isOpen: a, entity: o, title: g, scope: _, onClose: b, onSelectId: T }) => {
52
+ let { t: E } = l(), { t: D } = e(), [O, k] = h(""), [A, j] = h(0), M = n(o, { enabled: a }), N;
53
+ M.status === "loaded" && (N = M.module.config.picker), p(() => {
54
+ a && (k(""), j((e) => e + 1));
55
+ }, [a]);
56
+ let P = m(() => C(b, D("common.actions.close")), [b, D]), F = f((e) => {
57
+ k(e), j((e) => e + 1);
58
+ }, []), I = f((e) => {
59
+ T(e), b();
60
+ }, [b, T]);
61
+ if (!a) return null;
62
+ let L;
63
+ N?.searchPlaceholder != null && (L = x(N.searchPlaceholder, E));
64
+ let R = O.trim(), z = N?.searchRequired === !0, B;
65
+ return B = M.status === "loading" ? /* @__PURE__ */ s(y, {}) : N == null ? /* @__PURE__ */ s(w, { message: D("picker.unavailable", { entity: o }) }) : z && R === "" ? /* @__PURE__ */ s("div", {
66
+ className: r,
67
+ children: D("picker.searchRequired")
68
+ }) : /* @__PURE__ */ s(S, {
69
+ config: N,
70
+ search: O,
71
+ scope: _,
72
+ fetchKey: A,
73
+ onSelectId: I
74
+ }), /* @__PURE__ */ s(v, {
75
+ isOpen: a,
76
+ onClose: b,
77
+ title: g,
78
+ footer: P,
79
+ children: /* @__PURE__ */ s(i, {
80
+ search: O,
81
+ onSearchChange: F,
82
+ searchPlaceholder: L,
83
+ searchEnabled: N?.searchEnabled ?? !0,
84
+ children: /* @__PURE__ */ s(t, {
85
+ fallback: (e) => {
86
+ let { reset: t } = e;
87
+ return /* @__PURE__ */ c("div", { children: [/* @__PURE__ */ s("div", { children: D("picker.errors.loadFailed") }), /* @__PURE__ */ s(u, {
88
+ type: "button",
89
+ variant: "secondary",
90
+ onClick: () => {
91
+ t(), j((e) => e + 1);
92
+ },
93
+ children: D("common.actions.retry")
94
+ })] });
95
+ },
96
+ children: /* @__PURE__ */ s(d, {
97
+ fallback: /* @__PURE__ */ s(y, {}),
98
+ children: B
99
+ })
100
+ })
101
+ })
102
+ });
103
+ };
104
+ //#endregion
105
+ export { T as EntityIdPickerDialog, T as default };
106
+
107
+ //# sourceMappingURL=EntityIdPickerDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityIdPickerDialog.js","names":[],"sources":["../../../../../src/components/backoffice/pickers/EntityIdPickerDialog.tsx"],"sourcesContent":["import {\n Suspense,\n useCallback,\n useEffect,\n useMemo,\n useState,\n type JSX,\n} from 'react';\nimport type { TFunction } from 'i18next';\nimport { useTranslation } from 'react-i18next';\nimport { useFragment, useLazyLoadQuery } from 'react-relay';\n\nimport { Button } from '@plumile/ui';\nimport { Modal } from '@plumile/ui/atomic/atoms/modal/Modal.js';\nimport { Spinner } from '@plumile/ui-backoffice/backoffice/atoms/spinner/Spinner.js';\nimport type {\n BackofficeEntityPickerConfig,\n BackofficePickerScope,\n I18nLabel,\n} from '@plumile/backoffice-core/types.js';\n\nimport { BackofficeErrorBoundary } from '../errors/BackofficeErrorBoundary.js';\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\nimport { useBackofficePickerEntityLoader } from '../../../provider/useBackofficeEntityLoader.js';\n\nimport { EntityPickerShell } from './shared/EntityPickerShell.js';\nimport { EntityPickerList } from './shared/EntityPickerList.js';\nimport type { EntityPickerRowViewModel } from './types.js';\nimport * as styles from './entityIdPickerDialog.css.js';\n\nexport type EntityIdPickerDialogProps = {\n isOpen: boolean;\n entity: string;\n title: string;\n scope?: BackofficePickerScope;\n onClose: () => void;\n onSelectId: (id: string) => void;\n};\n\nconst PICKER_FETCH_POLICY = 'store-and-network' as const;\n\nconst resolveLabel = (label: I18nLabel, tApp: TFunction): string => {\n return label(tApp);\n};\n\ntype PickerBodyProps<RowRef, RowView extends EntityPickerRowViewModel> = {\n config: BackofficeEntityPickerConfig<RowRef, RowView>;\n search: string;\n scope?: BackofficePickerScope;\n fetchKey: number;\n onSelectId: (id: string) => void;\n};\n\nconst PickerBody = <RowRef, RowView extends EntityPickerRowViewModel>({\n config,\n search,\n scope,\n fetchKey,\n onSelectId,\n}: PickerBodyProps<RowRef, RowView>): JSX.Element => {\n const variables = useMemo(() => {\n const trimmed = search.trim();\n if (config.buildVariables != null) {\n return config.buildVariables({ search: trimmed, scope });\n }\n let searchValue: string | null = trimmed;\n if (trimmed === '') {\n searchValue = null;\n }\n return {\n search: searchValue,\n scope,\n } as Record<string, unknown>;\n }, [config, scope, search]);\n\n const queryData = useLazyLoadQuery(config.query, variables, {\n fetchPolicy: PICKER_FETCH_POLICY,\n fetchKey,\n });\n\n const fragmentData = useFragment(\n config.fragment,\n queryData as never,\n ) as unknown;\n\n const connection = config.getConnection(fragmentData as never);\n\n const items = useMemo<readonly EntityPickerRowViewModel[]>(() => {\n return connection.edges.map((edge) => {\n const row = config.toRow(edge.node);\n const id = config.getRowId(row);\n return {\n id,\n title: row.title,\n subtitle: row.subtitle,\n };\n });\n }, [config, connection.edges]);\n\n return <EntityPickerList items={items} onSelectId={onSelectId} />;\n};\n\nconst buildFooter = (onClose: () => void, closeLabel: string): JSX.Element => {\n return (\n <>\n <Button type=\"button\" variant=\"secondary\" onClick={onClose}>\n {closeLabel}\n </Button>\n </>\n );\n};\n\nconst PickerUnavailable = ({ message }: { message: string }) => {\n return <div>{message}</div>;\n};\n\nexport const EntityIdPickerDialog = ({\n isOpen,\n entity,\n title,\n scope,\n onClose,\n onSelectId,\n}: EntityIdPickerDialogProps): JSX.Element | null => {\n const { t: tApp } = useTranslation();\n const { t } = useBackofficeReactTranslation();\n const [search, setSearch] = useState('');\n const [fetchKey, setFetchKey] = useState(0);\n const entityState = useBackofficePickerEntityLoader(entity, {\n enabled: isOpen,\n });\n\n let pickerConfig:\n | BackofficeEntityPickerConfig<unknown, EntityPickerRowViewModel>\n | undefined;\n if (entityState.status === 'loaded') {\n pickerConfig = entityState.module.config.picker as\n | BackofficeEntityPickerConfig<unknown, EntityPickerRowViewModel>\n | undefined;\n }\n\n useEffect(() => {\n if (isOpen) {\n setSearch('');\n setFetchKey((value) => {\n return value + 1;\n });\n }\n }, [isOpen]);\n\n const footer = useMemo(() => {\n return buildFooter(onClose, t('common.actions.close'));\n }, [onClose, t]);\n\n const handleSearchChange = useCallback((next: string) => {\n setSearch(next);\n setFetchKey((value) => {\n return value + 1;\n });\n }, []);\n\n const handleSelectId = useCallback(\n (id: string) => {\n onSelectId(id);\n onClose();\n },\n [onClose, onSelectId],\n );\n\n if (!isOpen) {\n return null;\n }\n\n let resolvedSearchPlaceholder: string | undefined;\n if (pickerConfig?.searchPlaceholder != null) {\n resolvedSearchPlaceholder = resolveLabel(\n pickerConfig.searchPlaceholder,\n tApp,\n );\n }\n\n const trimmedSearch = search.trim();\n const isSearchRequired = pickerConfig?.searchRequired === true;\n\n let pickerNode: JSX.Element;\n if (entityState.status === 'loading') {\n pickerNode = <Spinner />;\n } else if (pickerConfig != null) {\n if (isSearchRequired && trimmedSearch === '') {\n pickerNode = (\n <div className={styles.searchRequiredMessage}>\n {t('picker.searchRequired')}\n </div>\n );\n } else {\n pickerNode = (\n <PickerBody\n config={pickerConfig}\n search={search}\n scope={scope}\n fetchKey={fetchKey}\n onSelectId={handleSelectId}\n />\n );\n }\n } else {\n pickerNode = (\n <PickerUnavailable message={t('picker.unavailable', { entity })} />\n );\n }\n\n return (\n <Modal isOpen={isOpen} onClose={onClose} title={title} footer={footer}>\n <EntityPickerShell\n search={search}\n onSearchChange={handleSearchChange}\n searchPlaceholder={resolvedSearchPlaceholder}\n searchEnabled={pickerConfig?.searchEnabled ?? true}\n >\n <BackofficeErrorBoundary\n fallback={(args: { error: unknown; reset: () => void }) => {\n const { reset } = args;\n return (\n <div>\n <div>{t('picker.errors.loadFailed')}</div>\n <Button\n type=\"button\"\n variant=\"secondary\"\n onClick={() => {\n reset();\n setFetchKey((value) => {\n return value + 1;\n });\n }}\n >\n {t('common.actions.retry')}\n </Button>\n </div>\n );\n }}\n >\n <Suspense fallback={<Spinner />}>{pickerNode}</Suspense>\n </BackofficeErrorBoundary>\n </EntityPickerShell>\n </Modal>\n );\n};\n\nexport type { BackofficePickerScope } from '@plumile/backoffice-core/types.js';\n\nexport default EntityIdPickerDialog;\n"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /* empty css */
2
+ /* empty css */
3
+ //#region src/components/backoffice/pickers/entityIdPickerDialog.css.ts
4
+ var e = "_10f5c550 vncd899io vncd89ai6 vncd89aof", t = "_10f5c551 vncd89nuf vncd89oho vncd89p5o vncd89lxf vncd89v8r vncd898x vncd89t5x", n = "_10f5c552 vncd899io vncd89ao6 vncd89co", r = "_10f5c553 vncd899mx vncd89k4x vncd899io vncd89ai6 vncd89t5o", i = "_10f5c554 vncd89v8p vncd89amf vncd8996 vncd89f3x", a = "_10f5c555 vncd89v8r vncd898x vncd89f3x", o = "_10f5c556 vncd89v8t vncd898o vncd89f3x vncd89uw6";
5
+ //#endregion
6
+ export { e as layout, n as row, o as rowMeta, a as rowSubtitle, r as rowText, i as rowTitle, t as searchRequiredMessage };
7
+
8
+ //# sourceMappingURL=entityIdPickerDialog.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entityIdPickerDialog.css.js","names":[],"sources":["../../../../../src/components/backoffice/pickers/entityIdPickerDialog.css.ts"],"sourcesContent":["import { sprinkles } from '@plumile/ui/theme/sprinkles.css.js';\n\nexport const layout = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 3,\n});\n\nexport const searchRequiredMessage = sprinkles({\n color: 'textSecondary',\n fontSize: 'sm',\n textAlign: 'center',\n paddingY: 3,\n paddingX: 0,\n});\n\nexport const row = sprinkles({\n display: 'flex',\n gap: 2,\n alignItems: 'center',\n});\n\nexport const rowText = sprinkles({\n flex: 1,\n minWidth: 0,\n display: 'flex',\n flexDirection: 'column',\n textAlign: 'left',\n});\n\nexport const rowTitle = sprinkles({\n color: 'text',\n fontWeight: 'medium',\n fontSize: 'base',\n lineHeight: 1.2,\n});\n\nexport const rowSubtitle = sprinkles({\n color: 'textSecondary',\n fontSize: 'sm',\n lineHeight: 1.2,\n});\n\nexport const rowMeta = sprinkles({\n color: 'textMuted',\n fontSize: 'xs',\n lineHeight: 1.2,\n whiteSpace: 'nowrap',\n});\n"],"mappings":""}
@@ -0,0 +1,24 @@
1
+ import { EntityPickerRowBase as e } from "./EntityPickerRowBase.js";
2
+ import { jsx as t } from "react/jsx-runtime";
3
+ import { Button as n } from "@plumile/ui";
4
+ import { BackofficeEmptyState as r } from "@plumile/ui-backoffice/backoffice/molecules/backoffice_empty_state/BackofficeEmptyState.js";
5
+ //#region src/components/backoffice/pickers/shared/EntityPickerList.tsx
6
+ var i = ({ items: i, onSelectId: a, emptyState: o }) => i.length === 0 ? o ?? /* @__PURE__ */ t(r, {
7
+ title: "No result",
8
+ description: "Try another search term."
9
+ }) : /* @__PURE__ */ t("div", { children: i.map((r) => /* @__PURE__ */ t(n, {
10
+ type: "button",
11
+ variant: "text",
12
+ onClick: () => {
13
+ a(r.id);
14
+ },
15
+ width: "full",
16
+ children: /* @__PURE__ */ t(e, {
17
+ title: r.title,
18
+ subtitle: r.subtitle
19
+ })
20
+ }, r.id)) });
21
+ //#endregion
22
+ export { i as EntityPickerList, i as default };
23
+
24
+ //# sourceMappingURL=EntityPickerList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityPickerList.js","names":[],"sources":["../../../../../../src/components/backoffice/pickers/shared/EntityPickerList.tsx"],"sourcesContent":["import { type JSX } from 'react';\n\nimport { Button } from '@plumile/ui';\nimport { BackofficeEmptyState } from '@plumile/ui-backoffice/backoffice/molecules/backoffice_empty_state/BackofficeEmptyState.js';\n\nimport { EntityPickerRowBase } from './EntityPickerRowBase.js';\nimport type { EntityPickerRowViewModel } from '../types.js';\n\nexport type EntityPickerListProps = {\n items: readonly EntityPickerRowViewModel[];\n onSelectId: (id: string) => void;\n emptyState?: JSX.Element;\n};\n\nexport const EntityPickerList = ({\n items,\n onSelectId,\n emptyState,\n}: EntityPickerListProps): JSX.Element => {\n if (items.length === 0) {\n return (\n emptyState ?? (\n <BackofficeEmptyState\n title=\"No result\"\n description=\"Try another search term.\"\n />\n )\n );\n }\n\n return (\n <div>\n {items.map((item) => {\n return (\n <Button\n key={item.id}\n type=\"button\"\n variant=\"text\"\n onClick={() => {\n onSelectId(item.id);\n }}\n width=\"full\"\n >\n <EntityPickerRowBase title={item.title} subtitle={item.subtitle} />\n </Button>\n );\n })}\n </div>\n );\n};\n\nexport default EntityPickerList;\n"],"mappings":";;;;;AAcA,IAAa,KAAoB,EAC/B,UACA,eACA,oBAEI,EAAM,WAAW,IAEjB,KACE,kBAAC,GAAD;CACE,OAAM;CACN,aAAY;CACZ,CAAA,GAMN,kBAAC,OAAD,EAAA,UACG,EAAM,KAAK,MAER,kBAAC,GAAD;CAEE,MAAK;CACL,SAAQ;CACR,eAAe;AACb,IAAW,EAAK,GAAG;;CAErB,OAAM;WAEN,kBAAC,GAAD;EAAqB,OAAO,EAAK;EAAO,UAAU,EAAK;EAAY,CAAA;CAC5D,EATF,EAAK,GASH,CAEX,EACE,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { row as e, rowSubtitle as t, rowText as n, rowTitle as r } from "../entityIdPickerDialog.css.js";
2
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
3
+ //#region src/components/backoffice/pickers/shared/EntityPickerRowBase.tsx
4
+ var o = ({ title: o, subtitle: s }) => {
5
+ let c = null;
6
+ return s != null && (c = /* @__PURE__ */ i("div", {
7
+ className: t,
8
+ children: s
9
+ })), /* @__PURE__ */ i("div", {
10
+ className: e,
11
+ children: /* @__PURE__ */ a("div", {
12
+ className: n,
13
+ children: [/* @__PURE__ */ i("div", {
14
+ className: r,
15
+ children: o
16
+ }), c]
17
+ })
18
+ });
19
+ };
20
+ //#endregion
21
+ export { o as EntityPickerRowBase, o as default };
22
+
23
+ //# sourceMappingURL=EntityPickerRowBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityPickerRowBase.js","names":[],"sources":["../../../../../../src/components/backoffice/pickers/shared/EntityPickerRowBase.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\n\nimport * as styles from '../entityIdPickerDialog.css.js';\n\nexport type EntityPickerRowBaseProps = {\n title: ReactNode;\n subtitle?: ReactNode;\n};\n\nexport const EntityPickerRowBase = ({\n title,\n subtitle,\n}: EntityPickerRowBaseProps): JSX.Element => {\n let subtitleNode: ReactNode | null = null;\n if (subtitle != null) {\n subtitleNode = <div className={styles.rowSubtitle}>{subtitle}</div>;\n }\n\n return (\n <div className={styles.row}>\n <div className={styles.rowText}>\n <div className={styles.rowTitle}>{title}</div>\n {subtitleNode}\n </div>\n </div>\n );\n};\n\nexport default EntityPickerRowBase;\n"],"mappings":";;;AASA,IAAa,KAAuB,EAClC,UACA,kBAC2C;CAC3C,IAAI,IAAiC;AAKrC,QAJI,KAAY,SACd,IAAe,kBAAC,OAAD;EAAK,WAAW;YAAqB;EAAe,CAAA,GAInE,kBAAC,OAAD;EAAK,WAAW;YACd,kBAAC,OAAD;GAAK,WAAW;aAAhB,CACE,kBAAC,OAAD;IAAK,WAAW;cAAkB;IAAY,CAAA,EAC7C,EACG;;EACF,CAAA"}