@plumile/backoffice-react 0.1.72 → 0.1.73

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 (390) hide show
  1. package/lib/esm/{auth/pages/AcceptInvitationScreen.js → AcceptInvitationScreen-CNLlSbdx.js} +25 -29
  2. package/lib/esm/AcceptInvitationScreen-CNLlSbdx.js.map +1 -0
  3. package/lib/esm/{auth/login/AuthPanel.js → AuthPanel-ttoH9YxE.js} +7 -7
  4. package/lib/esm/AuthPanel-ttoH9YxE.js.map +1 -0
  5. package/lib/esm/BackofficeAcceptInvitationPage-DRxM1Z-U.js +30 -0
  6. package/lib/esm/BackofficeAcceptInvitationPage-DRxM1Z-U.js.map +1 -0
  7. package/lib/esm/BackofficeDashboardPage-GKyT60qb.js +195 -0
  8. package/lib/esm/BackofficeDashboardPage-GKyT60qb.js.map +1 -0
  9. package/lib/esm/BackofficeDetailPayload-B-qs8Fai.js +94 -0
  10. package/lib/esm/BackofficeDetailPayload-B-qs8Fai.js.map +1 -0
  11. package/lib/esm/{components/backoffice/actions/BackofficeEntityActionFormDialog.js → BackofficeEntityActionFormDialog-FHlW0vys.js} +120 -131
  12. package/lib/esm/BackofficeEntityActionFormDialog-FHlW0vys.js.map +1 -0
  13. package/lib/esm/{pages/detail/BackofficeEntityDetailLayoutContext.js → BackofficeEntityDetailLayoutContext-C_tBqkVq.js} +2 -2
  14. package/lib/esm/BackofficeEntityDetailLayoutContext-C_tBqkVq.js.map +1 -0
  15. package/lib/esm/BackofficeEntityDetailLayoutPage-DXjRqvcZ.js +18 -0
  16. package/lib/esm/BackofficeEntityDetailLayoutPage-DXjRqvcZ.js.map +1 -0
  17. package/lib/esm/BackofficeEntityDetailPage-CdrMXu5a.js +991 -0
  18. package/lib/esm/BackofficeEntityDetailPage-CdrMXu5a.js.map +1 -0
  19. package/lib/esm/{pages/BackofficeEntityDetailUnknownPageRedirect.js → BackofficeEntityDetailUnknownPageRedirect-DRWTeox-.js} +3 -3
  20. package/lib/esm/BackofficeEntityDetailUnknownPageRedirect-DRWTeox-.js.map +1 -0
  21. package/lib/esm/BackofficeEntityListPage-BxgqdFpL.js +385 -0
  22. package/lib/esm/BackofficeEntityListPage-BxgqdFpL.js.map +1 -0
  23. package/lib/esm/BackofficeLayoutPage-k9OkLfXb.js +485 -0
  24. package/lib/esm/BackofficeLayoutPage-k9OkLfXb.js.map +1 -0
  25. package/lib/esm/BackofficeLoginPage-C64BcxMw.js +50 -0
  26. package/lib/esm/BackofficeLoginPage-C64BcxMw.js.map +1 -0
  27. package/lib/esm/BackofficePasswordResetCompletePage-BA7kkUxN.js +60 -0
  28. package/lib/esm/BackofficePasswordResetCompletePage-BA7kkUxN.js.map +1 -0
  29. package/lib/esm/{pages/BackofficePasswordResetRequestPage.js → BackofficePasswordResetRequestPage-B9wSZcyn.js} +15 -13
  30. package/lib/esm/BackofficePasswordResetRequestPage-B9wSZcyn.js.map +1 -0
  31. package/lib/esm/BackofficeRightPageLayout-ktdlvTZJ.js +107 -0
  32. package/lib/esm/BackofficeRightPageLayout-ktdlvTZJ.js.map +1 -0
  33. package/lib/esm/{components/backoffice/layout/breadcrumb/BackofficeTopbarPortalContext.js → BackofficeTopbarPortalContext-iD7dm4_h.js} +2 -2
  34. package/lib/esm/BackofficeTopbarPortalContext-iD7dm4_h.js.map +1 -0
  35. package/lib/esm/BackofficeVerifyEmailPage-CAzMqo2K.js +59 -0
  36. package/lib/esm/BackofficeVerifyEmailPage-CAzMqo2K.js.map +1 -0
  37. package/lib/esm/EntityFilterValue-SC_jkj4O.js +77 -0
  38. package/lib/esm/EntityFilterValue-SC_jkj4O.js.map +1 -0
  39. package/lib/esm/EntityIdPickerDialog-FMC5Hx_I.js +308 -0
  40. package/lib/esm/EntityIdPickerDialog-FMC5Hx_I.js.map +1 -0
  41. package/lib/esm/LazyBackofficeEntityActionFormDialog-DOEgoIfT.js +486 -0
  42. package/lib/esm/LazyBackofficeEntityActionFormDialog-DOEgoIfT.js.map +1 -0
  43. package/lib/esm/{auth/pages/PasswordResetCompleteScreen.js → PasswordResetCompleteScreen-C4GQdavL.js} +21 -25
  44. package/lib/esm/PasswordResetCompleteScreen-C4GQdavL.js.map +1 -0
  45. package/lib/esm/{auth/pages/PasswordResetRequestScreen.js → PasswordResetRequestScreen-aUY_yDqM.js} +19 -23
  46. package/lib/esm/PasswordResetRequestScreen-aUY_yDqM.js.map +1 -0
  47. package/lib/esm/VerifyEmailScreen-2DuHJgdY.js +62 -0
  48. package/lib/esm/VerifyEmailScreen-2DuHJgdY.js.map +1 -0
  49. package/lib/esm/backoffice-react.js +1804 -0
  50. package/lib/esm/backoffice-react.js.map +1 -0
  51. package/lib/esm/{router/backofficeAuthPaths.js → backofficeAuthPaths-BiJvoI5Q.js} +2 -2
  52. package/lib/esm/backofficeAuthPaths-BiJvoI5Q.js.map +1 -0
  53. package/lib/esm/{components/backoffice/layout/breadcrumb/buildBreadcrumbs.js → buildBreadcrumbs-CqF9Nh6x.js} +3 -7
  54. package/lib/esm/buildBreadcrumbs-CqF9Nh6x.js.map +1 -0
  55. package/lib/esm/{relay/environment.js → environment-BJeJTbIN.js} +91 -71
  56. package/lib/esm/environment-BJeJTbIN.js.map +1 -0
  57. package/lib/esm/loginPage.css-BDQJNcSr.js +12 -0
  58. package/lib/esm/loginPage.css-BDQJNcSr.js.map +1 -0
  59. package/lib/esm/{relay/mutationResult.js → mutationResult-CcQMY13J.js} +2 -2
  60. package/lib/esm/mutationResult-CcQMY13J.js.map +1 -0
  61. package/lib/esm/{pages/detail/pageResolution.js → pageResolution-hAQA5C6S.js} +2 -2
  62. package/lib/esm/pageResolution-hAQA5C6S.js.map +1 -0
  63. package/lib/esm/{components/backoffice/layout/sidebarUtils.js → sidebarUtils-CuwJ_3mD.js} +2 -12
  64. package/lib/esm/{components/backoffice/layout/sidebarUtils.js.map → sidebarUtils-CuwJ_3mD.js.map} +1 -1
  65. package/lib/esm/{provider/BackofficeConfigContext.js → sprinkles.css.ts.vanilla-n-NK_DwW.js} +2 -2
  66. package/lib/esm/sprinkles.css.ts.vanilla-n-NK_DwW.js.map +1 -0
  67. package/lib/esm/style.css +1 -1
  68. package/lib/esm/synchronizeAuthStatusQuery-lLR0XFew.js +323 -0
  69. package/lib/esm/synchronizeAuthStatusQuery-lLR0XFew.js.map +1 -0
  70. package/lib/esm/{components/backoffice/actions/toastViewAction.js → toastViewAction-BGTS7vqm.js} +2 -2
  71. package/lib/esm/{components/backoffice/actions/toastViewAction.js.map → toastViewAction-BGTS7vqm.js.map} +1 -1
  72. package/lib/esm/useAuth-AczFS-oL.js +543 -0
  73. package/lib/esm/useAuth-AczFS-oL.js.map +1 -0
  74. package/lib/esm/useBackofficeAuth-BHteJQzA.js +89 -0
  75. package/lib/esm/useBackofficeAuth-BHteJQzA.js.map +1 -0
  76. package/lib/esm/{provider/useBackofficeLazyValue.js → useBackofficeLazyValue-B0-ckL6e.js} +7 -15
  77. package/lib/esm/useBackofficeLazyValue-B0-ckL6e.js.map +1 -0
  78. package/lib/esm/{hooks/useBackofficeListUrlState.js → useBackofficeListUrlState-D4fx5O7u.js} +2 -2
  79. package/lib/esm/useBackofficeListUrlState-D4fx5O7u.js.map +1 -0
  80. package/lib/esm/{components/backoffice/errors/BackofficeErrorBoundary.js → useBackofficeReactTranslation-WfXU8kCf.js} +9 -3
  81. package/lib/esm/useBackofficeReactTranslation-WfXU8kCf.js.map +1 -0
  82. package/lib/esm/{relay/useRelayEnvironment.js → useRelayEnvironment-vQ86aW-n.js} +2 -2
  83. package/lib/esm/useRelayEnvironment-vQ86aW-n.js.map +1 -0
  84. package/lib/types/auth/login/EmailCapturePanel.d.ts.map +1 -1
  85. package/lib/types/auth/login/MethodChooser.d.ts.map +1 -1
  86. package/lib/types/auth/login/MfaChallengeForm.d.ts.map +1 -1
  87. package/lib/types/auth/login/PasskeyLoginForm.d.ts.map +1 -1
  88. package/lib/types/auth/login/PasswordLoginPanel.d.ts +1 -1
  89. package/lib/types/auth/login/PasswordLoginPanel.d.ts.map +1 -1
  90. package/lib/types/auth/pages/AcceptInvitationScreen.d.ts.map +1 -1
  91. package/lib/types/auth/pages/PasswordResetCompleteScreen.d.ts.map +1 -1
  92. package/lib/types/auth/pages/PasswordResetRequestScreen.d.ts.map +1 -1
  93. package/lib/types/auth/pages/VerifyEmailScreen.d.ts.map +1 -1
  94. package/lib/types/components/backoffice/detail/BackofficeDetailErrorList.d.ts.map +1 -1
  95. package/lib/types/components/backoffice/detail/BackofficeDetailField.d.ts.map +1 -1
  96. package/lib/types/components/backoffice/filters/BackofficeFilterAction.d.ts.map +1 -1
  97. package/lib/types/components/backoffice/layout/buildSidebarSections.d.ts +1 -1
  98. package/lib/types/components/backoffice/layout/buildSidebarSections.d.ts.map +1 -1
  99. package/lib/types/components/backoffice/pickers/EntityIdPickerDialog.d.ts.map +1 -1
  100. package/lib/types/components/backoffice/scaffolds/BackofficeEntityListScaffold.d.ts.map +1 -1
  101. package/lib/types/filters/filterHelpers.d.ts +1 -1
  102. package/lib/types/filters/filterHelpers.d.ts.map +1 -1
  103. package/lib/types/index.d.ts +5 -0
  104. package/lib/types/index.d.ts.map +1 -1
  105. package/lib/types/pages/BackofficeEntityDetailPage.d.ts.map +1 -1
  106. package/lib/types/provider/BackofficeConfigContext.d.ts +1 -0
  107. package/lib/types/provider/BackofficeConfigContext.d.ts.map +1 -1
  108. package/lib/types/provider/BackofficeProvider.d.ts.map +1 -1
  109. package/lib/types/provider/types.d.ts +2 -0
  110. package/lib/types/provider/types.d.ts.map +1 -1
  111. package/lib/types/relay/environment.d.ts +1 -0
  112. package/lib/types/relay/environment.d.ts.map +1 -1
  113. package/lib/types/router/createBackofficeRoutes.d.ts.map +1 -1
  114. package/package.json +9 -9
  115. package/lib/esm/auth/login/AuthPanel.js.map +0 -1
  116. package/lib/esm/auth/login/EmailCapturePanel.js +0 -52
  117. package/lib/esm/auth/login/EmailCapturePanel.js.map +0 -1
  118. package/lib/esm/auth/login/LoginFlow.js +0 -130
  119. package/lib/esm/auth/login/LoginFlow.js.map +0 -1
  120. package/lib/esm/auth/login/MethodChooser.js +0 -51
  121. package/lib/esm/auth/login/MethodChooser.js.map +0 -1
  122. package/lib/esm/auth/login/MfaChallengeForm.js +0 -83
  123. package/lib/esm/auth/login/MfaChallengeForm.js.map +0 -1
  124. package/lib/esm/auth/login/OidcButtons.js +0 -29
  125. package/lib/esm/auth/login/OidcButtons.js.map +0 -1
  126. package/lib/esm/auth/login/PasskeyLoginForm.js +0 -84
  127. package/lib/esm/auth/login/PasskeyLoginForm.js.map +0 -1
  128. package/lib/esm/auth/login/PasswordLoginPanel.js +0 -37
  129. package/lib/esm/auth/login/PasswordLoginPanel.js.map +0 -1
  130. package/lib/esm/auth/login/loginPage.css.js +0 -8
  131. package/lib/esm/auth/login/loginPage.css.js.map +0 -1
  132. package/lib/esm/auth/login/synchronizeAuthStatusQuery.js +0 -10
  133. package/lib/esm/auth/login/synchronizeAuthStatusQuery.js.map +0 -1
  134. package/lib/esm/auth/pages/AcceptInvitationScreen.js.map +0 -1
  135. package/lib/esm/auth/pages/PasswordResetCompleteScreen.js.map +0 -1
  136. package/lib/esm/auth/pages/PasswordResetRequestScreen.js.map +0 -1
  137. package/lib/esm/auth/pages/VerifyEmailScreen.js +0 -65
  138. package/lib/esm/auth/pages/VerifyEmailScreen.js.map +0 -1
  139. package/lib/esm/components/backoffice/actions/BackofficeEntityActionFormDialog.js.map +0 -1
  140. package/lib/esm/components/backoffice/actions/LazyBackofficeEntityActionFormDialog.js +0 -11
  141. package/lib/esm/components/backoffice/actions/LazyBackofficeEntityActionFormDialog.js.map +0 -1
  142. package/lib/esm/components/backoffice/actions/backofficeEntityActionFormDialog.css.js +0 -8
  143. package/lib/esm/components/backoffice/actions/backofficeEntityActionFormDialog.css.js.map +0 -1
  144. package/lib/esm/components/backoffice/columns/buildDataTableColumns.js +0 -59
  145. package/lib/esm/components/backoffice/columns/buildDataTableColumns.js.map +0 -1
  146. package/lib/esm/components/backoffice/detail/BackofficeDetailBadgeRow.js +0 -22
  147. package/lib/esm/components/backoffice/detail/BackofficeDetailBadgeRow.js.map +0 -1
  148. package/lib/esm/components/backoffice/detail/BackofficeDetailErrorList.js +0 -41
  149. package/lib/esm/components/backoffice/detail/BackofficeDetailErrorList.js.map +0 -1
  150. package/lib/esm/components/backoffice/detail/BackofficeDetailField.js +0 -31
  151. package/lib/esm/components/backoffice/detail/BackofficeDetailField.js.map +0 -1
  152. package/lib/esm/components/backoffice/detail/BackofficeDetailFlagTag.css.js +0 -8
  153. package/lib/esm/components/backoffice/detail/BackofficeDetailFlagTag.css.js.map +0 -1
  154. package/lib/esm/components/backoffice/detail/BackofficeDetailFlagTag.js +0 -24
  155. package/lib/esm/components/backoffice/detail/BackofficeDetailFlagTag.js.map +0 -1
  156. package/lib/esm/components/backoffice/detail/BackofficeDetailLayout.js +0 -20
  157. package/lib/esm/components/backoffice/detail/BackofficeDetailLayout.js.map +0 -1
  158. package/lib/esm/components/backoffice/detail/BackofficeDetailPayload.js +0 -18
  159. package/lib/esm/components/backoffice/detail/BackofficeDetailPayload.js.map +0 -1
  160. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationLink.js +0 -49
  161. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationLink.js.map +0 -1
  162. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationList.js +0 -11
  163. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationList.js.map +0 -1
  164. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationListBlock.js +0 -115
  165. package/lib/esm/components/backoffice/detail/BackofficeDetailRelationListBlock.js.map +0 -1
  166. package/lib/esm/components/backoffice/detail/BackofficeDetailSection.js +0 -33
  167. package/lib/esm/components/backoffice/detail/BackofficeDetailSection.js.map +0 -1
  168. package/lib/esm/components/backoffice/detail/BackofficeDetailTaggedValue.js +0 -18
  169. package/lib/esm/components/backoffice/detail/BackofficeDetailTaggedValue.js.map +0 -1
  170. package/lib/esm/components/backoffice/detail/backofficeDetailBadgeRow.css.js +0 -8
  171. package/lib/esm/components/backoffice/detail/backofficeDetailBadgeRow.css.js.map +0 -1
  172. package/lib/esm/components/backoffice/detail/backofficeDetailErrorList.css.js +0 -8
  173. package/lib/esm/components/backoffice/detail/backofficeDetailErrorList.css.js.map +0 -1
  174. package/lib/esm/components/backoffice/detail/backofficeDetailField.css.js +0 -15
  175. package/lib/esm/components/backoffice/detail/backofficeDetailField.css.js.map +0 -1
  176. package/lib/esm/components/backoffice/detail/backofficeDetailLayout.css.js +0 -8
  177. package/lib/esm/components/backoffice/detail/backofficeDetailLayout.css.js.map +0 -1
  178. package/lib/esm/components/backoffice/detail/backofficeDetailRelationLink.css.js +0 -8
  179. package/lib/esm/components/backoffice/detail/backofficeDetailRelationLink.css.js.map +0 -1
  180. package/lib/esm/components/backoffice/detail/backofficeDetailRelationList.css.js +0 -8
  181. package/lib/esm/components/backoffice/detail/backofficeDetailRelationList.css.js.map +0 -1
  182. package/lib/esm/components/backoffice/detail/backofficeDetailSection.css.js +0 -8
  183. package/lib/esm/components/backoffice/detail/backofficeDetailSection.css.js.map +0 -1
  184. package/lib/esm/components/backoffice/detail/backofficeDetailTaggedValue.css.js +0 -8
  185. package/lib/esm/components/backoffice/detail/backofficeDetailTaggedValue.css.js.map +0 -1
  186. package/lib/esm/components/backoffice/detail/detailPayloadUtils.js +0 -17
  187. package/lib/esm/components/backoffice/detail/detailPayloadUtils.js.map +0 -1
  188. package/lib/esm/components/backoffice/errors/BackofficeErrorBoundary.js.map +0 -1
  189. package/lib/esm/components/backoffice/filters/BackofficeFilterAction.js +0 -43
  190. package/lib/esm/components/backoffice/filters/BackofficeFilterAction.js.map +0 -1
  191. package/lib/esm/components/backoffice/filters/EntityFilterValue.js +0 -46
  192. package/lib/esm/components/backoffice/filters/EntityFilterValue.js.map +0 -1
  193. package/lib/esm/components/backoffice/filters/EntityIdFilterField.js +0 -51
  194. package/lib/esm/components/backoffice/filters/EntityIdFilterField.js.map +0 -1
  195. package/lib/esm/components/backoffice/filters/backofficeFilterAction.css.js +0 -8
  196. package/lib/esm/components/backoffice/filters/backofficeFilterAction.css.js.map +0 -1
  197. package/lib/esm/components/backoffice/filters/entityIdFilterField.css.js +0 -8
  198. package/lib/esm/components/backoffice/filters/entityIdFilterField.css.js.map +0 -1
  199. package/lib/esm/components/backoffice/layout/backofficeSidebarActions.css.js +0 -8
  200. package/lib/esm/components/backoffice/layout/backofficeSidebarActions.css.js.map +0 -1
  201. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeRightPageLayout.js +0 -10
  202. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeRightPageLayout.js.map +0 -1
  203. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarBreadcrumb.js +0 -38
  204. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarBreadcrumb.js.map +0 -1
  205. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarPortal.js +0 -12
  206. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarPortal.js.map +0 -1
  207. package/lib/esm/components/backoffice/layout/breadcrumb/BackofficeTopbarPortalContext.js.map +0 -1
  208. package/lib/esm/components/backoffice/layout/breadcrumb/assertValidBreadcrumb.js +0 -16
  209. package/lib/esm/components/backoffice/layout/breadcrumb/assertValidBreadcrumb.js.map +0 -1
  210. package/lib/esm/components/backoffice/layout/breadcrumb/backofficeTopbarBreadcrumb.css.js +0 -8
  211. package/lib/esm/components/backoffice/layout/breadcrumb/backofficeTopbarBreadcrumb.css.js.map +0 -1
  212. package/lib/esm/components/backoffice/layout/breadcrumb/buildBreadcrumbs.js.map +0 -1
  213. package/lib/esm/components/backoffice/layout/breadcrumb/types.js +0 -0
  214. package/lib/esm/components/backoffice/layout/buildSidebarSections.js +0 -183
  215. package/lib/esm/components/backoffice/layout/buildSidebarSections.js.map +0 -1
  216. package/lib/esm/components/backoffice/layout/mapViewerToSidebarProfileView.js +0 -18
  217. package/lib/esm/components/backoffice/layout/mapViewerToSidebarProfileView.js.map +0 -1
  218. package/lib/esm/components/backoffice/list/RowFlagsCell.css.js +0 -7
  219. package/lib/esm/components/backoffice/list/RowFlagsCell.css.js.map +0 -1
  220. package/lib/esm/components/backoffice/list/RowFlagsCell.js +0 -37
  221. package/lib/esm/components/backoffice/list/RowFlagsCell.js.map +0 -1
  222. package/lib/esm/components/backoffice/overview/BackofficeOverviewLayout.js +0 -31
  223. package/lib/esm/components/backoffice/overview/BackofficeOverviewLayout.js.map +0 -1
  224. package/lib/esm/components/backoffice/overview/backofficeOverviewLayout.css.js +0 -8
  225. package/lib/esm/components/backoffice/overview/backofficeOverviewLayout.css.js.map +0 -1
  226. package/lib/esm/components/backoffice/pickers/EntityIdPickerDialog.js +0 -106
  227. package/lib/esm/components/backoffice/pickers/EntityIdPickerDialog.js.map +0 -1
  228. package/lib/esm/components/backoffice/pickers/entityIdPickerDialog.css.js +0 -8
  229. package/lib/esm/components/backoffice/pickers/entityIdPickerDialog.css.js.map +0 -1
  230. package/lib/esm/components/backoffice/pickers/shared/EntityPickerList.js +0 -23
  231. package/lib/esm/components/backoffice/pickers/shared/EntityPickerList.js.map +0 -1
  232. package/lib/esm/components/backoffice/pickers/shared/EntityPickerRowBase.js +0 -23
  233. package/lib/esm/components/backoffice/pickers/shared/EntityPickerRowBase.js.map +0 -1
  234. package/lib/esm/components/backoffice/pickers/shared/EntityPickerShell.js +0 -24
  235. package/lib/esm/components/backoffice/pickers/shared/EntityPickerShell.js.map +0 -1
  236. package/lib/esm/components/backoffice/pickers/types.js +0 -0
  237. package/lib/esm/components/backoffice/refs/BackofficeEntityIdRef.js +0 -35
  238. package/lib/esm/components/backoffice/refs/BackofficeEntityIdRef.js.map +0 -1
  239. package/lib/esm/components/backoffice/refs/BackofficeRelatedCountLink.js +0 -54
  240. package/lib/esm/components/backoffice/refs/BackofficeRelatedCountLink.js.map +0 -1
  241. package/lib/esm/components/backoffice/refs/backofficeEntityIdRef.css.js +0 -8
  242. package/lib/esm/components/backoffice/refs/backofficeEntityIdRef.css.js.map +0 -1
  243. package/lib/esm/components/backoffice/refs/backofficeRelatedCountLink.css.js +0 -8
  244. package/lib/esm/components/backoffice/refs/backofficeRelatedCountLink.css.js.map +0 -1
  245. package/lib/esm/components/backoffice/routing/BackofficeContentBoundary.js +0 -24
  246. package/lib/esm/components/backoffice/routing/BackofficeContentBoundary.js.map +0 -1
  247. package/lib/esm/components/backoffice/routing/BackofficeContentError.js +0 -38
  248. package/lib/esm/components/backoffice/routing/BackofficeContentError.js.map +0 -1
  249. package/lib/esm/components/backoffice/routing/BackofficeContentFallback.js +0 -47
  250. package/lib/esm/components/backoffice/routing/BackofficeContentFallback.js.map +0 -1
  251. package/lib/esm/components/backoffice/routing/BackofficeRouteFallback.js +0 -22
  252. package/lib/esm/components/backoffice/routing/BackofficeRouteFallback.js.map +0 -1
  253. package/lib/esm/components/backoffice/routing/BackofficeRoutePendingBar.js +0 -12
  254. package/lib/esm/components/backoffice/routing/BackofficeRoutePendingBar.js.map +0 -1
  255. package/lib/esm/components/backoffice/routing/backofficeContentBoundary.css.js +0 -8
  256. package/lib/esm/components/backoffice/routing/backofficeContentBoundary.css.js.map +0 -1
  257. package/lib/esm/components/backoffice/routing/backofficeContentError.css.js +0 -8
  258. package/lib/esm/components/backoffice/routing/backofficeContentError.css.js.map +0 -1
  259. package/lib/esm/components/backoffice/routing/backofficeContentFallback.css.js +0 -8
  260. package/lib/esm/components/backoffice/routing/backofficeContentFallback.css.js.map +0 -1
  261. package/lib/esm/components/backoffice/routing/backofficeRouteFallback.css.js +0 -8
  262. package/lib/esm/components/backoffice/routing/backofficeRouteFallback.css.js.map +0 -1
  263. package/lib/esm/components/backoffice/routing/backofficeRoutePendingBar.css.js +0 -8
  264. package/lib/esm/components/backoffice/routing/backofficeRoutePendingBar.css.js.map +0 -1
  265. package/lib/esm/components/backoffice/scaffolds/BackofficeEntityDetailScaffold.js +0 -11
  266. package/lib/esm/components/backoffice/scaffolds/BackofficeEntityDetailScaffold.js.map +0 -1
  267. package/lib/esm/components/backoffice/scaffolds/BackofficeEntityListScaffold.js +0 -438
  268. package/lib/esm/components/backoffice/scaffolds/BackofficeEntityListScaffold.js.map +0 -1
  269. package/lib/esm/components/backoffice/scaffolds/BackofficeListFilterContext.js +0 -40
  270. package/lib/esm/components/backoffice/scaffolds/BackofficeListFilterContext.js.map +0 -1
  271. package/lib/esm/components/backoffice/scaffolds/BackofficeTabbedDetailShell.js +0 -24
  272. package/lib/esm/components/backoffice/scaffolds/BackofficeTabbedDetailShell.js.map +0 -1
  273. package/lib/esm/components/backoffice/scaffolds/backofficeEntityListScaffold.css.js +0 -8
  274. package/lib/esm/components/backoffice/scaffolds/backofficeEntityListScaffold.css.js.map +0 -1
  275. package/lib/esm/components/backoffice/scaffolds/backofficeTabbedDetailShell.css.js +0 -8
  276. package/lib/esm/components/backoffice/scaffolds/backofficeTabbedDetailShell.css.js.map +0 -1
  277. package/lib/esm/components/backoffice/shared/BackofficeInlineFilterRow.js +0 -12
  278. package/lib/esm/components/backoffice/shared/BackofficeInlineFilterRow.js.map +0 -1
  279. package/lib/esm/components/backoffice/shared/backofficeInlineFilterRow.css.js +0 -8
  280. package/lib/esm/components/backoffice/shared/backofficeInlineFilterRow.css.js.map +0 -1
  281. package/lib/esm/filters/filterHelpers.js +0 -36
  282. package/lib/esm/filters/filterHelpers.js.map +0 -1
  283. package/lib/esm/hooks/useAuth.js +0 -439
  284. package/lib/esm/hooks/useAuth.js.map +0 -1
  285. package/lib/esm/hooks/useBackofficeAuth.js +0 -89
  286. package/lib/esm/hooks/useBackofficeAuth.js.map +0 -1
  287. package/lib/esm/hooks/useBackofficeListRefetch.js +0 -40
  288. package/lib/esm/hooks/useBackofficeListRefetch.js.map +0 -1
  289. package/lib/esm/hooks/useBackofficeListUrlState.js.map +0 -1
  290. package/lib/esm/hooks/useBackofficeLoadMore.js +0 -18
  291. package/lib/esm/hooks/useBackofficeLoadMore.js.map +0 -1
  292. package/lib/esm/hooks/useBackofficeSessionAuth.js +0 -28
  293. package/lib/esm/hooks/useBackofficeSessionAuth.js.map +0 -1
  294. package/lib/esm/hooks/useBackofficeSidebarPins.js +0 -70
  295. package/lib/esm/hooks/useBackofficeSidebarPins.js.map +0 -1
  296. package/lib/esm/hooks/useConditionalSubscription.js +0 -57
  297. package/lib/esm/hooks/useConditionalSubscription.js.map +0 -1
  298. package/lib/esm/hooks/useCopyToClipboard.js +0 -31
  299. package/lib/esm/hooks/useCopyToClipboard.js.map +0 -1
  300. package/lib/esm/hooks/useRefetchNeededReload.js +0 -23
  301. package/lib/esm/hooks/useRefetchNeededReload.js.map +0 -1
  302. package/lib/esm/hooks/useSidebarGroupCollapse.js +0 -35
  303. package/lib/esm/hooks/useSidebarGroupCollapse.js.map +0 -1
  304. package/lib/esm/i18n/createI18nInstance.js +0 -62
  305. package/lib/esm/i18n/createI18nInstance.js.map +0 -1
  306. package/lib/esm/i18n/locales/en/backofficeReact.js +0 -249
  307. package/lib/esm/i18n/locales/en/backofficeReact.js.map +0 -1
  308. package/lib/esm/i18n/locales/en/shared.js +0 -201
  309. package/lib/esm/i18n/locales/en/shared.js.map +0 -1
  310. package/lib/esm/i18n/locales/fr/backofficeReact.js +0 -251
  311. package/lib/esm/i18n/locales/fr/backofficeReact.js.map +0 -1
  312. package/lib/esm/i18n/locales/fr/shared.js +0 -201
  313. package/lib/esm/i18n/locales/fr/shared.js.map +0 -1
  314. package/lib/esm/i18n/mergeResourceLanguages.js +0 -19
  315. package/lib/esm/i18n/mergeResourceLanguages.js.map +0 -1
  316. package/lib/esm/i18n/resources.js +0 -19
  317. package/lib/esm/i18n/resources.js.map +0 -1
  318. package/lib/esm/i18n/useBackofficeFormats.js +0 -23
  319. package/lib/esm/i18n/useBackofficeFormats.js.map +0 -1
  320. package/lib/esm/i18n/useBackofficeReactTranslation.js +0 -9
  321. package/lib/esm/i18n/useBackofficeReactTranslation.js.map +0 -1
  322. package/lib/esm/i18n/useReviewStatusLabel.js +0 -19
  323. package/lib/esm/i18n/useReviewStatusLabel.js.map +0 -1
  324. package/lib/esm/i18n/useSharedTranslation.js +0 -9
  325. package/lib/esm/i18n/useSharedTranslation.js.map +0 -1
  326. package/lib/esm/index.js +0 -37
  327. package/lib/esm/modules/base64.js +0 -23
  328. package/lib/esm/modules/base64.js.map +0 -1
  329. package/lib/esm/modules/formatFileSize.js +0 -28
  330. package/lib/esm/modules/formatFileSize.js.map +0 -1
  331. package/lib/esm/modules/sharedSchemaTypes.js +0 -0
  332. package/lib/esm/modules/webauthn.js +0 -33
  333. package/lib/esm/modules/webauthn.js.map +0 -1
  334. package/lib/esm/pages/BackofficeAcceptInvitationPage.js +0 -24
  335. package/lib/esm/pages/BackofficeAcceptInvitationPage.js.map +0 -1
  336. package/lib/esm/pages/BackofficeDashboardPage.js +0 -197
  337. package/lib/esm/pages/BackofficeDashboardPage.js.map +0 -1
  338. package/lib/esm/pages/BackofficeEntityDetailLayoutPage.js +0 -18
  339. package/lib/esm/pages/BackofficeEntityDetailLayoutPage.js.map +0 -1
  340. package/lib/esm/pages/BackofficeEntityDetailPage.js +0 -837
  341. package/lib/esm/pages/BackofficeEntityDetailPage.js.map +0 -1
  342. package/lib/esm/pages/BackofficeEntityDetailUnknownPageRedirect.js.map +0 -1
  343. package/lib/esm/pages/BackofficeEntityListPage.js +0 -363
  344. package/lib/esm/pages/BackofficeEntityListPage.js.map +0 -1
  345. package/lib/esm/pages/BackofficeLayoutPage.js +0 -137
  346. package/lib/esm/pages/BackofficeLayoutPage.js.map +0 -1
  347. package/lib/esm/pages/BackofficeLoginPage.js +0 -46
  348. package/lib/esm/pages/BackofficeLoginPage.js.map +0 -1
  349. package/lib/esm/pages/BackofficePasswordResetCompletePage.js +0 -59
  350. package/lib/esm/pages/BackofficePasswordResetCompletePage.js.map +0 -1
  351. package/lib/esm/pages/BackofficePasswordResetRequestPage.js.map +0 -1
  352. package/lib/esm/pages/BackofficeVerifyEmailPage.js +0 -59
  353. package/lib/esm/pages/BackofficeVerifyEmailPage.js.map +0 -1
  354. package/lib/esm/pages/backofficeDashboardPage.css.js +0 -8
  355. package/lib/esm/pages/backofficeDashboardPage.css.js.map +0 -1
  356. package/lib/esm/pages/backofficeEntityDetailPage.css.js +0 -8
  357. package/lib/esm/pages/backofficeEntityDetailPage.css.js.map +0 -1
  358. package/lib/esm/pages/backofficeEntityListPage.css.js +0 -8
  359. package/lib/esm/pages/backofficeEntityListPage.css.js.map +0 -1
  360. package/lib/esm/pages/detail/BackofficeEntityDetailLayoutContext.js.map +0 -1
  361. package/lib/esm/pages/detail/buildTabsItems.js +0 -10
  362. package/lib/esm/pages/detail/buildTabsItems.js.map +0 -1
  363. package/lib/esm/pages/detail/pageResolution.js.map +0 -1
  364. package/lib/esm/provider/BackofficeConfigContext.js.map +0 -1
  365. package/lib/esm/provider/BackofficeProvider.js +0 -152
  366. package/lib/esm/provider/BackofficeProvider.js.map +0 -1
  367. package/lib/esm/provider/entityRegistry.js +0 -91
  368. package/lib/esm/provider/entityRegistry.js.map +0 -1
  369. package/lib/esm/provider/lazyValue.js +0 -14
  370. package/lib/esm/provider/lazyValue.js.map +0 -1
  371. package/lib/esm/provider/types.js +0 -0
  372. package/lib/esm/provider/useBackofficeEntityLoader.js +0 -137
  373. package/lib/esm/provider/useBackofficeEntityLoader.js.map +0 -1
  374. package/lib/esm/provider/useBackofficeLazyValue.js.map +0 -1
  375. package/lib/esm/relay/RelayProvider.js +0 -12
  376. package/lib/esm/relay/RelayProvider.js.map +0 -1
  377. package/lib/esm/relay/createInlineDataReader.js +0 -2
  378. package/lib/esm/relay/createInlineReader.js +0 -7
  379. package/lib/esm/relay/createInlineReader.js.map +0 -1
  380. package/lib/esm/relay/envHelpers.js +0 -46
  381. package/lib/esm/relay/envHelpers.js.map +0 -1
  382. package/lib/esm/relay/environment.js.map +0 -1
  383. package/lib/esm/relay/identityView.js +0 -6
  384. package/lib/esm/relay/identityView.js.map +0 -1
  385. package/lib/esm/relay/mutationResult.js.map +0 -1
  386. package/lib/esm/relay/useRelayEnvironment.js.map +0 -1
  387. package/lib/esm/router/backofficeAuthPaths.js.map +0 -1
  388. package/lib/esm/router/createBackofficeRoutes.js +0 -273
  389. package/lib/esm/router/createBackofficeRoutes.js.map +0 -1
  390. package/lib/esm/style.js +0 -1
@@ -0,0 +1,486 @@
1
+ import { n as e, t } from "./useBackofficeReactTranslation-WfXU8kCf.js";
2
+ import { n, r, t as i } from "./EntityFilterValue-SC_jkj4O.js";
3
+ import { i as a, t as o } from "./EntityIdPickerDialog-FMC5Hx_I.js";
4
+ import { Suspense as s, lazy as c, startTransition as l, useCallback as u, useEffect as d, useMemo as f, useRef as p, useState as m } from "react";
5
+ import { useTranslation as ee } from "react-i18next";
6
+ import { BackofficeEmptyState as h, BackofficeFilterDrawer as te, BackofficeFilterField as ne, BackofficeLoadMore as re, BackofficePageHeader as ie, BackofficeTableSkeleton as ae, BackofficeTableToolbar as oe, BackofficeVirtualizedConnectionTable as se, Button as g, FilterChipRow as ce, GlobalSearchInput as le, InlineBanner as ue, ListPageTemplate as de, SimpleSelect as _, denseTableClass as fe } from "@plumile/ui";
7
+ import { Fragment as v, jsx as y, jsxs as b } from "react/jsx-runtime";
8
+ import { readWhereValue as x, setWhereValue as S } from "@plumile/backoffice-core/filters/where.js";
9
+ import { stableListVariablesKey as C } from "@plumile/backoffice-core/state/stableKey.js";
10
+ //#region src/hooks/useBackofficeLoadMore.ts
11
+ function w({ hasNext: e, isLoadingNext: t, loadNext: n, count: r }) {
12
+ return u(() => {
13
+ !e || t || l(() => {
14
+ n(r);
15
+ });
16
+ }, [
17
+ r,
18
+ e,
19
+ t,
20
+ n
21
+ ]);
22
+ }
23
+ //#endregion
24
+ //#region src/hooks/useBackofficeListRefetch.ts
25
+ function pe({ refetch: e, variables: t, defaults: n, fetchPolicy: r, buildVariables: i }) {
26
+ let a = p(C({
27
+ where: n.where,
28
+ sort: n.sort,
29
+ count: n.count
30
+ })), o = u((e) => i == null ? e : i(e), [i]);
31
+ return d(() => {
32
+ let n = C({
33
+ where: t.where,
34
+ sort: t.sort,
35
+ count: t.count
36
+ });
37
+ a.current !== n && (a.current = n, e(o({
38
+ ...t,
39
+ cursor: null
40
+ }), { fetchPolicy: r }));
41
+ }, [
42
+ r,
43
+ e,
44
+ o,
45
+ t
46
+ ]), { onRefresh: u(() => {
47
+ e(o({
48
+ ...t,
49
+ cursor: null
50
+ }), { fetchPolicy: r });
51
+ }, [
52
+ r,
53
+ e,
54
+ o,
55
+ t
56
+ ]) };
57
+ }
58
+ //#endregion
59
+ //#region src/components/backoffice/scaffolds/backofficeEntityListScaffold.css.ts
60
+ var me = "_8gc5760 vncd899io vncd89ajx vncd89co vncd89ao6", he = "_8gc5761 vncd89u3f vncd89jdo", ge = "_8gc5762 vncd899io vncd89ai6 vncd89aof", _e = "_8gc5763 vncd8996 vncd89amo vncd89v8p", T = (e, t) => e(t), E = (e, t) => e.fromGraphQL != null && t != null ? e.fromGraphQL(t) : x(t, e.whereKey ?? e.id, e.path), ve = (e, t, n) => {
61
+ if (t == null) return null;
62
+ if (Array.isArray(t)) {
63
+ let e = t.map((e) => {
64
+ if (e == null || typeof e != "string" && typeof e != "number" && typeof e != "boolean") return null;
65
+ let t = String(e).trim();
66
+ return t === "" ? null : t;
67
+ }).filter((e) => e != null);
68
+ return e.length === 0 ? null : e.join(", ");
69
+ }
70
+ if (typeof t == "boolean") return e.kind === "boolean" ? n.booleanLabel(t) : t ? n.fallbackBooleanLabels.yes : n.fallbackBooleanLabels.no;
71
+ if (typeof t != "string" && typeof t != "number") return null;
72
+ let r = String(t).trim();
73
+ return r === "" ? null : e.kind === "entityId" ? /* @__PURE__ */ y(i, {
74
+ entityId: e.entity,
75
+ id: r
76
+ }) : e.kind === "enum" ? n.enumLabel(r) : r;
77
+ }, D = (i) => {
78
+ let { t: s } = ee(), { t: c } = t(), { config: l, state: d, pushState: p, rows: x, getRowId: C, columns: w, gridTemplateColumns: pe, hasNextPage: D, isLoadingMore: O, onLoadMore: k, onRefresh: A, totalCount: j, emptyState: M, header: N, headerActions: ye, isLoadingInitial: P = !1, virtualize: F = !0, variant: be = "page", showFilters: xe = !0 } = i, I = l.list, L = l.listDefaults ?? I.defaultState ?? {
79
+ where: null,
80
+ sort: null
81
+ }, Se = f(() => w.some((e) => e.isPrimary === !0) || w.length === 0 ? w : w.map((e, t) => {
82
+ let { header: n } = e;
83
+ return t === 0 ? {
84
+ ...e,
85
+ isPrimary: !0,
86
+ header: n
87
+ } : {
88
+ ...e,
89
+ header: n
90
+ };
91
+ }), [w]), R = f(() => {
92
+ let e = [];
93
+ for (let t of I.filters) {
94
+ let n = E(t, d.where), r = ve(t, n, {
95
+ enumLabel: (e) => {
96
+ if (t.kind !== "enum") return e;
97
+ let n = t.options.find((t) => t.value === e);
98
+ return n == null ? e : T(n.label, s);
99
+ },
100
+ booleanLabel: (e) => {
101
+ if (t.kind === "boolean") {
102
+ if (e && t.trueLabel != null) return T(t.trueLabel, s);
103
+ if (!e && t.falseLabel != null) return T(t.falseLabel, s);
104
+ }
105
+ return c(e ? "filters.boolean.yes" : "filters.boolean.no");
106
+ },
107
+ fallbackBooleanLabels: {
108
+ yes: c("filters.boolean.yes"),
109
+ no: c("filters.boolean.no")
110
+ }
111
+ });
112
+ if (r != null) {
113
+ let i = String(n);
114
+ Array.isArray(n) && (i = n.join(","));
115
+ let a = /* @__PURE__ */ b("span", { children: [
116
+ T(t.label, s),
117
+ ": ",
118
+ r
119
+ ] });
120
+ e.push({
121
+ id: `${t.id}:${i}`,
122
+ label: a,
123
+ onRemove: () => {
124
+ let e = t.whereKey ?? t.id, n = S(d.where, e, null, t.path);
125
+ p({
126
+ ...d,
127
+ where: n
128
+ });
129
+ }
130
+ });
131
+ }
132
+ }
133
+ return e;
134
+ }, [
135
+ I.filters,
136
+ p,
137
+ d,
138
+ c,
139
+ s
140
+ ]), z = u(() => {
141
+ p({ ...L });
142
+ }, [L, p]), [Ce, B] = m(!1), [V, H] = m(""), [U, W] = m(null), G = u((e) => {
143
+ let t = e.whereKey ?? e.id, r = E(e, d.where), i = "";
144
+ typeof r == "string" && (i = r);
145
+ let o = T(e.label, s);
146
+ if (e.kind === "text") {
147
+ let n = c("filters.placeholders.search", { label: e.placeholderLabel == null ? o : T(e.placeholderLabel, s) });
148
+ return e.placeholderText != null && (n = T(e.placeholderText, s)), /* @__PURE__ */ y(le, {
149
+ value: i,
150
+ onChange: (n) => {
151
+ let r = S(d.where, t, n, e.path);
152
+ p({
153
+ ...d,
154
+ where: r
155
+ });
156
+ },
157
+ placeholder: n,
158
+ className: he
159
+ });
160
+ }
161
+ if (e.kind === "enum") return /* @__PURE__ */ y(_, {
162
+ options: [{
163
+ id: "any",
164
+ value: "",
165
+ label: c("filters.all", { label: o })
166
+ }, ...e.options.map((e) => ({
167
+ id: e.value,
168
+ value: e.value,
169
+ label: T(e.label, s)
170
+ }))],
171
+ value: i,
172
+ onChange: (n) => {
173
+ let r = S(d.where, t, n, e.path);
174
+ p({
175
+ ...d,
176
+ where: r
177
+ });
178
+ }
179
+ });
180
+ if (e.kind === "boolean") {
181
+ let n = null;
182
+ typeof r == "boolean" && (n = r);
183
+ let i = "";
184
+ n === !0 && (i = "true"), n === !1 && (i = "false");
185
+ let a = e.trueLabel == null ? c("filters.boolean.yes") : T(e.trueLabel, s), l = e.falseLabel == null ? c("filters.boolean.no") : T(e.falseLabel, s);
186
+ return /* @__PURE__ */ y(_, {
187
+ options: [
188
+ {
189
+ id: "any",
190
+ value: "",
191
+ label: c("filters.all", { label: o })
192
+ },
193
+ {
194
+ id: "true",
195
+ value: "true",
196
+ label: a
197
+ },
198
+ {
199
+ id: "false",
200
+ value: "false",
201
+ label: l
202
+ }
203
+ ],
204
+ value: i,
205
+ onChange: (n) => {
206
+ let r = null;
207
+ n === "true" && (r = !0), n === "false" && (r = !1);
208
+ let i = S(d.where, t, r, e.path);
209
+ p({
210
+ ...d,
211
+ where: i
212
+ });
213
+ }
214
+ });
215
+ }
216
+ let l = (() => {
217
+ if (e.pickerScope != null) return typeof e.pickerScope == "function" ? e.pickerScope(d.where) : e.pickerScope;
218
+ })(), u = null;
219
+ typeof r == "string" && (u = r);
220
+ let f = (n = null) => {
221
+ let r = n?.trim() ?? "";
222
+ return /* @__PURE__ */ y(a, {
223
+ label: o,
224
+ value: u,
225
+ displayValue: r,
226
+ onPick: () => {
227
+ W({
228
+ entity: e.entity,
229
+ whereKey: t,
230
+ label: o,
231
+ path: e.path,
232
+ scope: l
233
+ });
234
+ },
235
+ onClear: () => {
236
+ let n = S(d.where, t, null, e.path);
237
+ p({
238
+ ...d,
239
+ where: n
240
+ });
241
+ }
242
+ });
243
+ };
244
+ return u == null || u.trim() === "" ? f() : /* @__PURE__ */ y(n, {
245
+ entityId: e.entity,
246
+ id: u,
247
+ children: (e) => f(e)
248
+ });
249
+ }, [
250
+ p,
251
+ d,
252
+ c,
253
+ s
254
+ ]), K = f(() => I.filters.some((e) => e.placement != null), [I.filters]), q = f(() => I.filters.length === 0 ? [] : K ? I.filters.filter((e) => e.placement === "quick" || e.placement === "both") : I.filters.slice(0, 3), [I.filters, K]), J = f(() => I.filters.filter((e) => e.placement == null ? !0 : e.placement === "drawer" || e.placement === "both"), [I.filters]), Y = f(() => q.find((e) => e.kind === "text"), [q]), we = f(() => {
255
+ let e = q.filter((e) => e !== Y);
256
+ return e.length === 0 ? null : /* @__PURE__ */ y("div", {
257
+ className: me,
258
+ children: e.map((e) => /* @__PURE__ */ y("span", { children: G(e) }, e.id))
259
+ });
260
+ }, [
261
+ q,
262
+ G,
263
+ Y
264
+ ]), Te = f(() => Y == null ? null : G(Y), [G, Y]), Ee = f(() => {
265
+ if (I.sorts.length === 0) return null;
266
+ let e = I.sorts[0];
267
+ return e == null ? null : /* @__PURE__ */ y(_, {
268
+ options: I.sorts.map((e) => ({
269
+ id: e.id,
270
+ value: e.id,
271
+ label: T(e.label, s)
272
+ })),
273
+ value: d.sort ?? e.id,
274
+ onChange: (e) => {
275
+ p({
276
+ ...d,
277
+ sort: e
278
+ });
279
+ }
280
+ });
281
+ }, [
282
+ I.sorts,
283
+ p,
284
+ d,
285
+ s
286
+ ]), De = f(() => /* @__PURE__ */ y(ce, {
287
+ chips: R,
288
+ onClearAll: z
289
+ }), [R, z]), Oe = f(() => {
290
+ if (J.length === 0) return [];
291
+ let e = V.trim().toLowerCase(), t = [];
292
+ for (let n of J) {
293
+ let r = T(n.label, s);
294
+ (e === "" || r.toLowerCase().includes(e)) && t.push({
295
+ id: n.id,
296
+ node: /* @__PURE__ */ y(ne, {
297
+ label: r,
298
+ children: G(n)
299
+ })
300
+ });
301
+ }
302
+ return t.length === 0 ? [] : [{
303
+ id: "backoffice.filters.sections.default",
304
+ title: c("filters.sections.default"),
305
+ items: t
306
+ }];
307
+ }, [
308
+ J,
309
+ V,
310
+ G,
311
+ c,
312
+ s
313
+ ]), ke = f(() => {
314
+ if (J.length === 0) return null;
315
+ let e = R.length, t = c("filters.allFilters");
316
+ return e > 0 && (t = c("filters.allFiltersWithCount", { count: e })), /* @__PURE__ */ y(g, {
317
+ type: "button",
318
+ variant: "secondary",
319
+ size: "small",
320
+ onClick: () => {
321
+ B(!0);
322
+ },
323
+ children: t
324
+ });
325
+ }, [
326
+ R.length,
327
+ J.length,
328
+ c
329
+ ]), Ae = /* @__PURE__ */ y(te, {
330
+ isOpen: Ce,
331
+ onClose: () => {
332
+ B(!1), H("");
333
+ },
334
+ sections: Oe,
335
+ searchValue: V,
336
+ onSearchChange: (e) => {
337
+ H(e);
338
+ },
339
+ onReset: z
340
+ }), je = f(() => M ?? (P ? /* @__PURE__ */ y(ae, {}) : R.length > 0 ? /* @__PURE__ */ y(h, {
341
+ title: c("emptyState.listEmpty.title"),
342
+ description: c("emptyState.listEmptyFiltered.description"),
343
+ actions: /* @__PURE__ */ y(g, {
344
+ type: "button",
345
+ variant: "secondary",
346
+ size: "small",
347
+ onClick: z,
348
+ children: c("emptyState.listEmptyFiltered.actions.reset")
349
+ })
350
+ }) : /* @__PURE__ */ y(h, {
351
+ title: c("emptyState.listEmpty.title"),
352
+ description: c("emptyState.listEmpty.description")
353
+ })), [
354
+ R.length,
355
+ M,
356
+ z,
357
+ P,
358
+ c
359
+ ]), Me = f(() => typeof j == "number" ? /* @__PURE__ */ y("span", { children: c("list.showing", {
360
+ shown: x.length,
361
+ total: j
362
+ }) }) : null, [
363
+ x.length,
364
+ c,
365
+ j
366
+ ]), X = N?.title ?? T(I.title, s), Ne = N?.subtitle, Pe = /* @__PURE__ */ y(e, {
367
+ fallback: (e) => {
368
+ let { reset: t } = e;
369
+ return /* @__PURE__ */ y(ue, {
370
+ tone: "danger",
371
+ title: c("list.errors.title"),
372
+ actions: /* @__PURE__ */ y(g, {
373
+ type: "button",
374
+ variant: "secondary",
375
+ size: "small",
376
+ onClick: () => {
377
+ t(), A?.();
378
+ },
379
+ children: c("list.actions.retry")
380
+ }),
381
+ children: c("list.errors.tableFailed")
382
+ });
383
+ },
384
+ children: /* @__PURE__ */ y(se, {
385
+ columns: Se,
386
+ rows: x,
387
+ getRowId: C,
388
+ emptyState: je,
389
+ className: fe,
390
+ gridTemplateColumns: pe,
391
+ virtualization: f(() => F ? {
392
+ enabled: !0,
393
+ rowHeightPx: 52,
394
+ overscan: 10
395
+ } : {
396
+ enabled: !1,
397
+ rowHeightPx: 0,
398
+ overscan: 0
399
+ }, [F]),
400
+ infiniteScroll: {
401
+ enabled: !0,
402
+ thresholdPx: 800,
403
+ autoLoad: !0
404
+ },
405
+ hasNextPage: D,
406
+ isLoadingMore: O,
407
+ onLoadMore: k
408
+ })
409
+ }), Z = xe ? /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y(oe, {
410
+ searchSlot: Te,
411
+ filtersSlot: /* @__PURE__ */ b(v, { children: [we, ke] }),
412
+ sortSlot: Ee,
413
+ refreshSlot: /* @__PURE__ */ y(g, {
414
+ type: "button",
415
+ variant: "text",
416
+ size: "small",
417
+ disabled: A == null,
418
+ onClick: () => {
419
+ A?.();
420
+ },
421
+ children: c("list.actions.refresh")
422
+ }),
423
+ chipsSlot: De
424
+ }), Ae] }) : null, Q = /* @__PURE__ */ b("div", { children: [Pe, /* @__PURE__ */ y(o, {
425
+ isOpen: U != null,
426
+ entity: U?.entity ?? l.id,
427
+ title: U?.label ?? c("picker.title"),
428
+ scope: U?.scope,
429
+ onClose: () => {
430
+ W(null);
431
+ },
432
+ onSelectId: (e) => {
433
+ if (U == null) return;
434
+ let t = S(d.where, U.whereKey, e, U.path);
435
+ p({
436
+ ...d,
437
+ where: t
438
+ });
439
+ }
440
+ })] }), $ = /* @__PURE__ */ y(re, {
441
+ hasNextPage: D,
442
+ isLoading: O,
443
+ meta: Me,
444
+ loadMoreLabel: c("list.loadMore.more"),
445
+ endLabel: c("list.loadMore.end"),
446
+ loadingLabel: c("list.loadMore.loading")
447
+ });
448
+ return be === "embedded" ? /* @__PURE__ */ y(r, {
449
+ config: l,
450
+ state: d,
451
+ pushState: p,
452
+ children: /* @__PURE__ */ b("div", {
453
+ className: ge,
454
+ children: [
455
+ /* @__PURE__ */ y("div", {
456
+ className: _e,
457
+ children: X
458
+ }),
459
+ Z,
460
+ Q,
461
+ $
462
+ ]
463
+ })
464
+ }) : /* @__PURE__ */ y(r, {
465
+ config: l,
466
+ state: d,
467
+ pushState: p,
468
+ children: /* @__PURE__ */ y(de, {
469
+ headerNode: /* @__PURE__ */ y(ie, {
470
+ title: X,
471
+ subtitle: Ne,
472
+ actions: ye
473
+ }),
474
+ toolbarNode: Z,
475
+ tableNode: Q,
476
+ tableFooterNode: $
477
+ })
478
+ });
479
+ }, O = c(async () => ({ default: (await import("./BackofficeEntityActionFormDialog-FHlW0vys.js")).BackofficeEntityActionFormDialog })), k = (e) => /* @__PURE__ */ y(s, {
480
+ fallback: null,
481
+ children: /* @__PURE__ */ y(O, { ...e })
482
+ });
483
+ //#endregion
484
+ export { w as i, D as n, pe as r, k as t };
485
+
486
+ //# sourceMappingURL=LazyBackofficeEntityActionFormDialog-DOEgoIfT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LazyBackofficeEntityActionFormDialog-DOEgoIfT.js","names":[],"sources":["../../src/hooks/useBackofficeLoadMore.ts","../../src/hooks/useBackofficeListRefetch.ts","../../src/components/backoffice/scaffolds/backofficeEntityListScaffold.css.ts","../../src/components/backoffice/scaffolds/BackofficeEntityListScaffold.tsx","../../src/components/backoffice/actions/LazyBackofficeEntityActionFormDialog.tsx"],"sourcesContent":["import { startTransition, useCallback } from 'react';\n\ntype Params = {\n hasNext: boolean;\n isLoadingNext: boolean;\n loadNext: (count: number) => void;\n count: number;\n};\n\n/**\n * Wraps Relay `loadNext()` with consistent guards and `startTransition()`.\n */\nexport function useBackofficeLoadMore({\n hasNext,\n isLoadingNext,\n loadNext,\n count,\n}: Params): () => void {\n return useCallback(() => {\n if (!hasNext || isLoadingNext) {\n return;\n }\n\n startTransition(() => {\n loadNext(count);\n });\n }, [count, hasNext, isLoadingNext, loadNext]);\n}\n","import { useCallback, useEffect, useRef } from 'react';\nimport type { FetchPolicy } from 'relay-runtime';\n\nimport { stableListVariablesKey } from '@plumile/backoffice-core/state/stableKey.js';\nimport type { BackofficeListVariables } from '@plumile/backoffice-core/types.js';\n\ntype RefetchFn<TVariables> = (\n vars: TVariables,\n opts: { fetchPolicy: FetchPolicy },\n) => void;\n\ntype Params<Where, Sort extends string, Variables> = {\n refetch: RefetchFn<Variables>;\n variables: BackofficeListVariables<Where, Sort>;\n defaults: BackofficeListVariables<Where, Sort>;\n fetchPolicy: FetchPolicy;\n buildVariables?: (input: BackofficeListVariables<Where, Sort>) => Variables;\n};\n\n/**\n * Standardizes refetch behavior for backoffice list components:\n * - Refetches when list URL state changes (where/sort/count), gated by a stable key.\n * - Exposes a manual refresh callback using the same variables.\n *\n * This hook must not call Relay hooks (`useFragment`, `usePaginationFragment`, ...).\n */\nexport function useBackofficeListRefetch<\n Where,\n Sort extends string,\n Variables extends Record<string, unknown>,\n>({\n refetch,\n variables,\n defaults,\n fetchPolicy,\n buildVariables,\n}: Params<Where, Sort, Variables>): { onRefresh: () => void } {\n const lastRefetchKeyRef = useRef<string | null>(\n stableListVariablesKey({\n where: defaults.where,\n sort: defaults.sort,\n count: defaults.count,\n }),\n );\n\n const resolveVariables = useCallback(\n (input: BackofficeListVariables<Where, Sort>) => {\n if (buildVariables != null) {\n return buildVariables(input);\n }\n return input as unknown as Variables;\n },\n [buildVariables],\n );\n\n useEffect(() => {\n const key = stableListVariablesKey({\n where: variables.where,\n sort: variables.sort,\n count: variables.count,\n });\n if (lastRefetchKeyRef.current === key) {\n return;\n }\n lastRefetchKeyRef.current = key;\n\n const nextVariables = resolveVariables({ ...variables, cursor: null });\n refetch(nextVariables, { fetchPolicy });\n }, [fetchPolicy, refetch, resolveVariables, variables]);\n\n const onRefresh = useCallback(() => {\n const nextVariables = resolveVariables({ ...variables, cursor: null });\n refetch(nextVariables, { fetchPolicy });\n }, [fetchPolicy, refetch, resolveVariables, variables]);\n\n return { onRefresh };\n}\n","import { sprinkles } from '@plumile/ui/theme/sprinkles.css.js';\n\nexport const controlsRow = sprinkles({\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n gap: 2,\n});\n\nexport const filterInput = sprinkles({\n width: 72,\n maxWidth: 'full',\n});\n\nexport const embeddedContainer = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 3,\n});\n\nexport const embeddedHeader = sprinkles({\n fontSize: 'base',\n fontWeight: 'semibold',\n color: 'text',\n});\n","/* eslint-disable no-ternary */\nimport {\n type JSX,\n type ReactNode,\n useCallback,\n useMemo,\n useState,\n} from 'react';\nimport type { TFunction } from 'i18next';\nimport { useTranslation } from 'react-i18next';\nimport {\n BackofficeEmptyState,\n BackofficeFilterDrawer,\n BackofficeFilterField,\n BackofficeLoadMore,\n BackofficePageHeader,\n BackofficeTableSkeleton,\n BackofficeTableToolbar,\n BackofficeVirtualizedConnectionTable,\n Button,\n FilterChipRow,\n GlobalSearchInput,\n InlineBanner,\n ListPageTemplate,\n SimpleSelect,\n type FilterChip,\n type DataTableColumn,\n type GetRowId,\n denseTableClass,\n} from '@plumile/ui';\n\nimport {\n readWhereValue,\n setWhereValue,\n} from '@plumile/backoffice-core/filters/where.js';\nimport type {\n BackofficeFilterSpec,\n BackofficeListState,\n BackofficePickerScope,\n BackofficeResolvedListFacetConfig,\n I18nLabel,\n} from '@plumile/backoffice-core/types.js';\n\nimport { BackofficeErrorBoundary } from '../errors/BackofficeErrorBoundary.js';\nimport {\n EntityFilterValue,\n EntityFilterValueText,\n} from '../filters/EntityFilterValue.js';\nimport { EntityIdPickerDialog } from '../pickers/EntityIdPickerDialog.js';\nimport { EntityIdFilterField } from '../filters/EntityIdFilterField.js';\nimport { BackofficeListFilterProvider } from './BackofficeListFilterContext.js';\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\n\nimport * as styles from './backofficeEntityListScaffold.css.js';\n\nconst resolveLabel = (label: I18nLabel, tApp: TFunction): string => {\n return label(tApp);\n};\n\nconst getFilterValue = <Where extends Record<string, unknown>>(\n filter: BackofficeFilterSpec<Where>,\n where: Where | null,\n): unknown => {\n if (filter.fromGraphQL != null && where != null) {\n return filter.fromGraphQL(where);\n }\n\n const key = (filter.whereKey ?? filter.id) as keyof Where;\n return readWhereValue(where, key, filter.path);\n};\n\nconst getFilterDisplayValue = <Where extends Record<string, unknown>>(\n filter: BackofficeFilterSpec<Where>,\n raw: unknown,\n options: {\n enumLabel: (value: string) => string;\n booleanLabel: (value: boolean) => string;\n fallbackBooleanLabels: { yes: string; no: string };\n },\n): ReactNode | null => {\n if (raw == null) {\n return null;\n }\n\n if (Array.isArray(raw)) {\n const normalized = raw\n .map((entry) => {\n if (entry == null) {\n return null;\n }\n if (\n typeof entry !== 'string' &&\n typeof entry !== 'number' &&\n typeof entry !== 'boolean'\n ) {\n return null;\n }\n const value = String(entry).trim();\n if (value === '') {\n return null;\n }\n return value;\n })\n .filter((entry): entry is string => {\n return entry != null;\n });\n\n if (normalized.length === 0) {\n return null;\n }\n return normalized.join(', ');\n }\n\n if (typeof raw === 'boolean') {\n if (filter.kind === 'boolean') {\n return options.booleanLabel(raw);\n }\n if (raw) {\n return options.fallbackBooleanLabels.yes;\n }\n return options.fallbackBooleanLabels.no;\n }\n\n if (typeof raw !== 'string' && typeof raw !== 'number') {\n return null;\n }\n\n const rawString = String(raw).trim();\n if (rawString === '') {\n return null;\n }\n\n if (filter.kind === 'entityId') {\n return <EntityFilterValue entityId={filter.entity} id={rawString} />;\n }\n\n if (filter.kind === 'enum') {\n return options.enumLabel(rawString);\n }\n\n return rawString;\n};\n\ntype Props<\n RowView,\n Where extends Record<string, unknown>,\n Sort extends string,\n> = {\n config: BackofficeResolvedListFacetConfig<Where, Sort>;\n state: BackofficeListState<Where, Sort>;\n pushState: (next: BackofficeListState<Where, Sort>) => void;\n header?: {\n title?: string;\n subtitle?: string;\n };\n headerActions?: ReactNode;\n rows: readonly RowView[];\n getRowId: GetRowId<RowView>;\n columns: readonly DataTableColumn<RowView>[];\n gridTemplateColumns?: string;\n hasNextPage: boolean;\n isLoadingMore: boolean;\n onLoadMore: () => void;\n onRefresh?: () => void;\n totalCount?: number | null;\n emptyState?: JSX.Element;\n isLoadingInitial?: boolean;\n virtualize?: boolean;\n variant?: 'page' | 'embedded';\n showFilters?: boolean;\n};\n\nexport const BackofficeEntityListScaffold = <\n RowView,\n Where extends Record<string, unknown>,\n Sort extends string,\n>(\n props: Props<RowView, Where, Sort>,\n): JSX.Element | null => {\n const { t: tApp } = useTranslation();\n const { t } = useBackofficeReactTranslation();\n const {\n config,\n state,\n pushState,\n rows,\n getRowId,\n columns,\n gridTemplateColumns,\n hasNextPage,\n isLoadingMore,\n onLoadMore,\n onRefresh,\n totalCount,\n emptyState,\n header,\n headerActions,\n isLoadingInitial = false,\n virtualize = true,\n variant = 'page',\n showFilters = true,\n } = props;\n const listConfig = config.list;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const listDefaults = config.listDefaults ??\n listConfig.defaultState ?? { where: null, sort: null };\n\n const columnsWithPrimary = useMemo(() => {\n const hasPrimary = columns.some((col) => {\n return col.isPrimary === true;\n });\n if (hasPrimary || columns.length === 0) {\n return columns;\n }\n return columns.map((col, index) => {\n const { header } = col;\n if (index === 0) {\n return { ...col, isPrimary: true, header };\n }\n return { ...col, header };\n });\n }, [columns]);\n\n const chips = useMemo<readonly FilterChip[]>(() => {\n const out: FilterChip[] = [];\n for (const filter of listConfig.filters) {\n const raw = getFilterValue(filter, state.where);\n const displayValue = getFilterDisplayValue(filter, raw, {\n enumLabel: (value) => {\n if (filter.kind !== 'enum') {\n return value;\n }\n const match = filter.options.find((option) => {\n return option.value === value;\n });\n if (match != null) {\n return resolveLabel(match.label, tApp);\n }\n return value;\n },\n booleanLabel: (value) => {\n if (filter.kind === 'boolean') {\n if (value && filter.trueLabel != null) {\n return resolveLabel(filter.trueLabel, tApp);\n }\n if (!value && filter.falseLabel != null) {\n return resolveLabel(filter.falseLabel, tApp);\n }\n }\n if (value) {\n return t('filters.boolean.yes');\n }\n return t('filters.boolean.no');\n },\n fallbackBooleanLabels: {\n yes: t('filters.boolean.yes'),\n no: t('filters.boolean.no'),\n },\n });\n\n if (displayValue != null) {\n let idValue = String(raw);\n if (Array.isArray(raw)) {\n idValue = raw.join(',');\n }\n const label = (\n <span>\n {resolveLabel(filter.label, tApp)}: {displayValue}\n </span>\n );\n out.push({\n id: `${filter.id}:${idValue}`,\n label,\n onRemove: () => {\n const key = (filter.whereKey ?? filter.id) as keyof Where;\n const nextWhere = setWhereValue(\n state.where,\n key,\n null,\n filter.path,\n );\n pushState({ ...state, where: nextWhere });\n },\n });\n }\n }\n return out;\n }, [listConfig.filters, pushState, state, t, tApp]);\n\n const handleClearAll = useCallback(() => {\n pushState({\n ...listDefaults,\n });\n }, [listDefaults, pushState]);\n const [isFilterDrawerOpen, setIsFilterDrawerOpen] = useState(false);\n const [filterSearch, setFilterSearch] = useState('');\n\n const [pickerDialog, setPickerDialog] = useState<{\n entity: string;\n whereKey: keyof Where;\n label: string;\n path?: readonly string[];\n scope?: BackofficePickerScope;\n } | null>(null);\n\n const renderFilterControl = useCallback(\n (filter: BackofficeFilterSpec<Where>): JSX.Element => {\n const key = (filter.whereKey ?? filter.id) as keyof Where;\n const candidate = getFilterValue(filter, state.where);\n let value = '';\n if (typeof candidate === 'string') {\n value = candidate;\n }\n\n const filterLabelText = resolveLabel(filter.label, tApp);\n\n if (filter.kind === 'text') {\n const placeholderLabelText =\n filter.placeholderLabel != null\n ? resolveLabel(filter.placeholderLabel, tApp)\n : filterLabelText;\n let placeholder = t('filters.placeholders.search', {\n label: placeholderLabelText,\n });\n if (filter.placeholderText != null) {\n placeholder = resolveLabel(filter.placeholderText, tApp);\n }\n return (\n <GlobalSearchInput\n value={value}\n onChange={(next) => {\n const nextWhere = setWhereValue(\n state.where,\n key,\n next,\n filter.path,\n );\n pushState({ ...state, where: nextWhere });\n }}\n placeholder={placeholder}\n className={styles.filterInput}\n />\n );\n }\n\n if (filter.kind === 'enum') {\n const options = [\n {\n id: 'any',\n value: '',\n label: t('filters.all', {\n label: filterLabelText,\n }),\n },\n ...filter.options.map((option) => {\n return {\n id: option.value,\n value: option.value,\n label: resolveLabel(option.label, tApp),\n };\n }),\n ];\n\n return (\n <SimpleSelect\n options={options}\n value={value}\n onChange={(next) => {\n const nextWhere = setWhereValue(\n state.where,\n key,\n next,\n filter.path,\n );\n pushState({ ...state, where: nextWhere });\n }}\n />\n );\n }\n\n if (filter.kind === 'boolean') {\n let current: boolean | null = null;\n if (typeof candidate === 'boolean') {\n current = candidate;\n }\n\n let selectValue = '';\n if (current === true) {\n selectValue = 'true';\n }\n if (current === false) {\n selectValue = 'false';\n }\n\n const trueLabel =\n filter.trueLabel != null\n ? resolveLabel(filter.trueLabel, tApp)\n : t('filters.boolean.yes');\n const falseLabel =\n filter.falseLabel != null\n ? resolveLabel(filter.falseLabel, tApp)\n : t('filters.boolean.no');\n const options = [\n {\n id: 'any',\n value: '',\n label: t('filters.all', {\n label: filterLabelText,\n }),\n },\n {\n id: 'true',\n value: 'true',\n label: trueLabel,\n },\n {\n id: 'false',\n value: 'false',\n label: falseLabel,\n },\n ];\n\n return (\n <SimpleSelect\n options={options}\n value={selectValue}\n onChange={(next) => {\n let parsed: boolean | null = null;\n if (next === 'true') {\n parsed = true;\n }\n if (next === 'false') {\n parsed = false;\n }\n const nextWhere = setWhereValue(\n state.where,\n key,\n parsed,\n filter.path,\n );\n pushState({ ...state, where: nextWhere });\n }}\n />\n );\n }\n\n const pickerScope = (() => {\n if (filter.pickerScope == null) {\n return undefined;\n }\n if (typeof filter.pickerScope === 'function') {\n return filter.pickerScope(state.where);\n }\n return filter.pickerScope;\n })();\n let currentId: string | null = null;\n if (typeof candidate === 'string') {\n currentId = candidate;\n }\n\n const renderField = (displayValue: string | null = null) => {\n const normalizedDisplayValue = displayValue?.trim() ?? '';\n return (\n <EntityIdFilterField\n label={filterLabelText}\n value={currentId}\n displayValue={normalizedDisplayValue}\n onPick={() => {\n setPickerDialog({\n entity: filter.entity,\n whereKey: key,\n label: filterLabelText,\n path: filter.path,\n scope: pickerScope,\n });\n }}\n onClear={() => {\n const nextWhere = setWhereValue(\n state.where,\n key,\n null,\n filter.path,\n );\n pushState({ ...state, where: nextWhere });\n }}\n />\n );\n };\n\n if (currentId == null || currentId.trim() === '') {\n return renderField();\n }\n\n return (\n <EntityFilterValueText entityId={filter.entity} id={currentId}>\n {(label) => {\n return renderField(label);\n }}\n </EntityFilterValueText>\n );\n },\n [pushState, state, t, tApp],\n );\n\n const hasPlacementConfig = useMemo(() => {\n return listConfig.filters.some((filter) => {\n return filter.placement != null;\n });\n }, [listConfig.filters]);\n\n const quickFilters = useMemo(() => {\n if (listConfig.filters.length === 0) {\n return [];\n }\n if (hasPlacementConfig) {\n return listConfig.filters.filter((filter) => {\n return filter.placement === 'quick' || filter.placement === 'both';\n });\n }\n return listConfig.filters.slice(0, 3);\n }, [listConfig.filters, hasPlacementConfig]);\n\n const drawerFilters = useMemo(() => {\n return listConfig.filters.filter((filter) => {\n if (filter.placement == null) {\n return true;\n }\n return filter.placement === 'drawer' || filter.placement === 'both';\n });\n }, [listConfig.filters]);\n\n const searchFilter = useMemo(() => {\n return quickFilters.find((filter) => {\n return filter.kind === 'text';\n });\n }, [quickFilters]);\n\n const quickFiltersNode = useMemo(() => {\n const visibleQuickFilters = quickFilters.filter((filter) => {\n return filter !== searchFilter;\n });\n\n if (visibleQuickFilters.length === 0) {\n return null;\n }\n\n return (\n <div className={styles.controlsRow}>\n {visibleQuickFilters.map((filter) => {\n return <span key={filter.id}>{renderFilterControl(filter)}</span>;\n })}\n </div>\n );\n }, [quickFilters, renderFilterControl, searchFilter]);\n\n const searchNode = useMemo(() => {\n if (searchFilter == null) {\n return null;\n }\n return renderFilterControl(searchFilter);\n }, [renderFilterControl, searchFilter]);\n\n const sortNode = useMemo(() => {\n if (listConfig.sorts.length === 0) {\n return null;\n }\n const firstSort = listConfig.sorts[0];\n if (firstSort == null) {\n return null;\n }\n const options = listConfig.sorts.map((s) => {\n return { id: s.id, value: s.id, label: resolveLabel(s.label, tApp) };\n });\n return (\n <SimpleSelect\n options={options}\n value={state.sort ?? firstSort.id}\n onChange={(next) => {\n pushState({\n ...state,\n sort: next as Sort,\n });\n }}\n />\n );\n }, [listConfig.sorts, pushState, state, tApp]);\n\n const chipsNode = useMemo(() => {\n return <FilterChipRow chips={chips} onClearAll={handleClearAll} />;\n }, [chips, handleClearAll]);\n\n const drawerSections = useMemo(() => {\n if (drawerFilters.length === 0) {\n return [];\n }\n\n const normalizedQuery = filterSearch.trim().toLowerCase();\n const items: { id: string; node: JSX.Element }[] = [];\n\n for (const filter of drawerFilters) {\n const resolvedLabel = resolveLabel(filter.label, tApp);\n const matchesQuery =\n normalizedQuery === '' ||\n resolvedLabel.toLowerCase().includes(normalizedQuery);\n\n if (matchesQuery) {\n items.push({\n id: filter.id,\n node: (\n <BackofficeFilterField label={resolvedLabel}>\n {renderFilterControl(filter)}\n </BackofficeFilterField>\n ),\n });\n }\n }\n\n if (items.length === 0) {\n return [];\n }\n\n return [\n {\n id: 'backoffice.filters.sections.default',\n title: t('filters.sections.default'),\n items,\n },\n ];\n }, [drawerFilters, filterSearch, renderFilterControl, t, tApp]);\n\n const allFiltersNode = useMemo(() => {\n if (drawerFilters.length === 0) {\n return null;\n }\n const activeCount = chips.length;\n let label = t('filters.allFilters');\n if (activeCount > 0) {\n label = t('filters.allFiltersWithCount', {\n count: activeCount,\n });\n }\n return (\n <Button\n type=\"button\"\n variant=\"secondary\"\n size=\"small\"\n onClick={() => {\n setIsFilterDrawerOpen(true);\n }}\n >\n {label}\n </Button>\n );\n }, [chips.length, drawerFilters.length, t]);\n\n const filterDrawerNode = (\n <BackofficeFilterDrawer\n isOpen={isFilterDrawerOpen}\n onClose={() => {\n setIsFilterDrawerOpen(false);\n setFilterSearch('');\n }}\n sections={drawerSections}\n searchValue={filterSearch}\n onSearchChange={(next) => {\n setFilterSearch(next);\n }}\n onReset={handleClearAll}\n />\n );\n\n const resolvedEmptyState = useMemo((): JSX.Element => {\n if (emptyState != null) {\n return emptyState;\n }\n\n if (isLoadingInitial) {\n return <BackofficeTableSkeleton />;\n }\n\n if (chips.length > 0) {\n return (\n <BackofficeEmptyState\n title={t('emptyState.listEmpty.title')}\n description={t('emptyState.listEmptyFiltered.description')}\n actions={\n <Button\n type=\"button\"\n variant=\"secondary\"\n size=\"small\"\n onClick={handleClearAll}\n >\n {t('emptyState.listEmptyFiltered.actions.reset')}\n </Button>\n }\n />\n );\n }\n\n return (\n <BackofficeEmptyState\n title={t('emptyState.listEmpty.title')}\n description={t('emptyState.listEmpty.description')}\n />\n );\n }, [chips.length, emptyState, handleClearAll, isLoadingInitial, t]);\n\n const tableFooterMeta = useMemo(() => {\n if (typeof totalCount !== 'number') {\n return null;\n }\n return (\n <span>\n {t('list.showing', {\n shown: rows.length,\n total: totalCount,\n })}\n </span>\n );\n }, [rows.length, t, totalCount]);\n\n const headerTitle = header?.title ?? resolveLabel(listConfig.title, tApp);\n const headerSubtitle = header?.subtitle;\n\n const virtualizationConfig = useMemo(() => {\n if (!virtualize) {\n return { enabled: false, rowHeightPx: 0, overscan: 0 };\n }\n\n return { enabled: true, rowHeightPx: 52, overscan: 10 };\n }, [virtualize]);\n\n const tableInnerNode = (\n <BackofficeVirtualizedConnectionTable\n columns={columnsWithPrimary}\n rows={rows}\n getRowId={getRowId}\n emptyState={resolvedEmptyState}\n className={denseTableClass}\n gridTemplateColumns={gridTemplateColumns}\n virtualization={virtualizationConfig}\n infiniteScroll={{\n enabled: true,\n thresholdPx: 800,\n autoLoad: true,\n }}\n hasNextPage={hasNextPage}\n isLoadingMore={isLoadingMore}\n onLoadMore={onLoadMore}\n />\n );\n\n const tableNodeWithErrorBoundary = (\n <BackofficeErrorBoundary\n fallback={(args: { error: unknown; reset: () => void }) => {\n const { reset } = args;\n\n const retry = (): void => {\n reset();\n if (onRefresh != null) {\n onRefresh();\n }\n };\n\n return (\n <InlineBanner\n tone=\"danger\"\n title={t('list.errors.title')}\n actions={\n <Button\n type=\"button\"\n variant=\"secondary\"\n size=\"small\"\n onClick={retry}\n >\n {t('list.actions.retry')}\n </Button>\n }\n >\n {t('list.errors.tableFailed')}\n </InlineBanner>\n );\n }}\n >\n {tableInnerNode}\n </BackofficeErrorBoundary>\n );\n\n const filtersBarNode = showFilters ? (\n <>\n <BackofficeTableToolbar\n searchSlot={searchNode}\n filtersSlot={\n <>\n {quickFiltersNode}\n {allFiltersNode}\n </>\n }\n sortSlot={sortNode}\n refreshSlot={\n <Button\n type=\"button\"\n variant=\"text\"\n size=\"small\"\n disabled={onRefresh == null}\n onClick={() => {\n if (onRefresh != null) {\n onRefresh();\n }\n }}\n >\n {t('list.actions.refresh')}\n </Button>\n }\n chipsSlot={chipsNode}\n />\n {filterDrawerNode}\n </>\n ) : null;\n\n const tableNode = (\n <div>\n {tableNodeWithErrorBoundary}\n <EntityIdPickerDialog\n isOpen={pickerDialog != null}\n entity={pickerDialog?.entity ?? config.id}\n title={pickerDialog?.label ?? t('picker.title')}\n scope={pickerDialog?.scope}\n onClose={() => {\n setPickerDialog(null);\n }}\n onSelectId={(id) => {\n if (pickerDialog == null) {\n return;\n }\n const nextWhere = setWhereValue(\n state.where,\n pickerDialog.whereKey,\n id,\n pickerDialog.path,\n );\n pushState({ ...state, where: nextWhere });\n }}\n />\n </div>\n );\n\n const tableFooterNode = (\n <BackofficeLoadMore\n hasNextPage={hasNextPage}\n isLoading={isLoadingMore}\n meta={tableFooterMeta}\n loadMoreLabel={t('list.loadMore.more')}\n endLabel={t('list.loadMore.end')}\n loadingLabel={t('list.loadMore.loading')}\n />\n );\n\n if (variant === 'embedded') {\n return (\n <BackofficeListFilterProvider\n config={config}\n state={state}\n pushState={pushState}\n >\n <div className={styles.embeddedContainer}>\n <div className={styles.embeddedHeader}>{headerTitle}</div>\n {filtersBarNode}\n {tableNode}\n {tableFooterNode}\n </div>\n </BackofficeListFilterProvider>\n );\n }\n\n return (\n <BackofficeListFilterProvider\n config={config}\n state={state}\n pushState={pushState}\n >\n <ListPageTemplate\n headerNode={\n <BackofficePageHeader\n title={headerTitle}\n subtitle={headerSubtitle}\n actions={headerActions}\n />\n }\n toolbarNode={filtersBarNode}\n tableNode={tableNode}\n tableFooterNode={tableFooterNode}\n />\n </BackofficeListFilterProvider>\n );\n};\n\nexport default BackofficeEntityListScaffold;\n","import { Suspense, lazy, type JSX } from 'react';\n\nimport type { BackofficeEntityActionFormDialogProps } from './BackofficeEntityActionFormDialog.js';\n\nconst BackofficeEntityActionFormDialog = lazy(async () => {\n const module = await import('./BackofficeEntityActionFormDialog.js');\n return { default: module.BackofficeEntityActionFormDialog };\n});\n\nexport const LazyBackofficeEntityActionFormDialog = <Node,>(\n props: BackofficeEntityActionFormDialogProps<Node>,\n): JSX.Element => {\n const Dialog = BackofficeEntityActionFormDialog as <TNode>(\n dialogProps: BackofficeEntityActionFormDialogProps<TNode>,\n ) => JSX.Element;\n\n return (\n <Suspense fallback={null}>\n <Dialog {...props} />\n </Suspense>\n );\n};\n\nexport default LazyBackofficeEntityActionFormDialog;\n"],"mappings":"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"}
@@ -1,15 +1,11 @@
1
- import { brandGhostButton as e, formSurface as t, helper as n } from "../login/loginPage.css.js";
2
- import { AuthPanel as r } from "../login/AuthPanel.js";
3
- import { useSharedTranslation as i } from "../../i18n/useSharedTranslation.js";
4
- import { jsx as a, jsxs as o } from "react/jsx-runtime";
5
- import { Button as s } from "@plumile/ui";
6
- import { FormField as c } from "@plumile/ui/atomic/molecules/form_field/FormField.js";
7
- import { FormError as l } from "@plumile/ui/atomic/molecules/form_error/FormError.js";
8
- import { useCallback as u, useMemo as d, useState as f } from "react";
9
- import { AuthLayout as p } from "@plumile/ui/atomic/templates/auth_layout/AuthLayout.js";
1
+ import { a as e, f as t, r as n, s as r } from "./loginPage.css-BDQJNcSr.js";
2
+ import { t as i } from "./AuthPanel-ttoH9YxE.js";
3
+ import { useCallback as a, useMemo as o, useState as s } from "react";
4
+ import { AuthLayout as c, Button as l, FormError as u, FormField as d } from "@plumile/ui";
5
+ import { jsx as f, jsxs as p } from "react/jsx-runtime";
10
6
  //#region src/auth/pages/PasswordResetCompleteScreen.tsx
11
7
  var m = 8, h = ({ onBackToLogin: h, onCompletePasswordReset: g, token: _ }) => {
12
- let { t: v } = i(), [y, b] = f(""), [x, S] = f(""), [C, w] = f("idle"), [T, E] = f(null), [D, O] = f(!1), k = d(() => _ ?? (typeof window > "u" ? "" : new URLSearchParams(window.location.search).get("token") ?? ""), [_]), A = u((e) => {
8
+ let { t: v } = t(), [y, b] = s(""), [x, S] = s(""), [C, w] = s("idle"), [T, E] = s(null), [D, O] = s(!1), k = o(() => _ ?? (typeof window > "u" ? "" : new URLSearchParams(window.location.search).get("token") ?? ""), [_]), A = a((e) => {
13
9
  if (e.preventDefault(), E(null), k === "") {
14
10
  E(v("auth.passwordResetComplete.errors.missingToken"));
15
11
  return;
@@ -39,30 +35,30 @@ var m = 8, h = ({ onBackToLogin: h, onCompletePasswordReset: g, token: _ }) => {
39
35
  k,
40
36
  v
41
37
  ]), j;
42
- return j = C === "completed" ? /* @__PURE__ */ a(r, {
38
+ return j = C === "completed" ? /* @__PURE__ */ f(i, {
43
39
  title: v("auth.passwordResetComplete.success.title"),
44
40
  description: v("auth.passwordResetComplete.success.description"),
45
- footer: /* @__PURE__ */ a(s, {
41
+ footer: /* @__PURE__ */ f(l, {
46
42
  type: "button",
47
43
  variant: "secondary",
48
- className: e,
44
+ className: n,
49
45
  onClick: h,
50
46
  children: v("auth.passwordResetComplete.success.action")
51
47
  }),
52
- children: /* @__PURE__ */ a("p", {
53
- className: n,
48
+ children: /* @__PURE__ */ f("p", {
49
+ className: r,
54
50
  children: v("auth.passwordResetComplete.success.helper")
55
51
  })
56
- }) : /* @__PURE__ */ a(r, {
52
+ }) : /* @__PURE__ */ f(i, {
57
53
  title: v("auth.passwordResetComplete.form.title"),
58
54
  description: v("auth.passwordResetComplete.form.description"),
59
- children: /* @__PURE__ */ o("form", {
60
- className: t,
55
+ children: /* @__PURE__ */ p("form", {
56
+ className: e,
61
57
  onSubmit: A,
62
58
  noValidate: !0,
63
59
  children: [
64
- T == null ? null : /* @__PURE__ */ a(l, { children: T }),
65
- /* @__PURE__ */ a(c, {
60
+ T == null ? null : /* @__PURE__ */ f(u, { children: T }),
61
+ /* @__PURE__ */ f(d, {
66
62
  label: v("auth.passwordResetComplete.form.passwordLabel"),
67
63
  name: "new-password",
68
64
  type: "password",
@@ -74,7 +70,7 @@ var m = 8, h = ({ onBackToLogin: h, onCompletePasswordReset: g, token: _ }) => {
74
70
  autoComplete: "new-password",
75
71
  required: !0
76
72
  }),
77
- /* @__PURE__ */ a(c, {
73
+ /* @__PURE__ */ f(d, {
78
74
  label: v("auth.passwordResetComplete.form.confirmLabel"),
79
75
  name: "confirm-password",
80
76
  type: "password",
@@ -86,20 +82,20 @@ var m = 8, h = ({ onBackToLogin: h, onCompletePasswordReset: g, token: _ }) => {
86
82
  autoComplete: "new-password",
87
83
  required: !0
88
84
  }),
89
- /* @__PURE__ */ a(s, {
85
+ /* @__PURE__ */ f(l, {
90
86
  type: "submit",
91
87
  isLoading: D,
92
88
  children: v("auth.passwordResetComplete.form.submit")
93
89
  })
94
90
  ]
95
91
  })
96
- }), /* @__PURE__ */ a(p, {
92
+ }), /* @__PURE__ */ f(c, {
97
93
  title: v("auth.passwordResetComplete.title"),
98
94
  subtitle: v("auth.passwordResetComplete.subtitle"),
99
95
  children: j
100
96
  });
101
97
  };
102
98
  //#endregion
103
- export { h as PasswordResetCompleteScreen };
99
+ export { h as t };
104
100
 
105
- //# sourceMappingURL=PasswordResetCompleteScreen.js.map
101
+ //# sourceMappingURL=PasswordResetCompleteScreen-C4GQdavL.js.map