@plumile/backoffice-react 0.1.104 → 0.1.105

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 (228) hide show
  1. package/lib/esm/{AcceptInvitationScreen-B1IPafwD.js → AcceptInvitationScreen-VaWXQPHp.js} +4 -4
  2. package/lib/esm/AcceptInvitationScreen-VaWXQPHp.js.map +1 -0
  3. package/lib/esm/{BackofficeAcceptInvitationPage-BfRsORii.js → BackofficeAcceptInvitationPage-tpfBfhT9.js} +4 -4
  4. package/lib/esm/{BackofficeAcceptInvitationPage-BfRsORii.js.map → BackofficeAcceptInvitationPage-tpfBfhT9.js.map} +1 -1
  5. package/lib/esm/BackofficeDashboardPage-D5W36DY-.js +329 -0
  6. package/lib/esm/BackofficeDashboardPage-D5W36DY-.js.map +1 -0
  7. package/lib/esm/BackofficeDetailPayload-CZcsDv2w.js +98 -0
  8. package/lib/esm/BackofficeDetailPayload-CZcsDv2w.js.map +1 -0
  9. package/lib/esm/BackofficeEntityActionFormDialog-DrZxuytz.js +589 -0
  10. package/lib/esm/BackofficeEntityActionFormDialog-DrZxuytz.js.map +1 -0
  11. package/lib/esm/{BackofficeEntityDetailLayoutContext-DeuH5PCW.js → BackofficeEntityDetailLayoutContext-C5G-PH28.js} +1 -1
  12. package/lib/esm/{BackofficeEntityDetailLayoutContext-DeuH5PCW.js.map → BackofficeEntityDetailLayoutContext-C5G-PH28.js.map} +1 -1
  13. package/lib/esm/{BackofficeEntityDetailLayoutPage-Duc_DcIV.js → BackofficeEntityDetailLayoutPage-BSgGBzSL.js} +2 -2
  14. package/lib/esm/{BackofficeEntityDetailLayoutPage-Duc_DcIV.js.map → BackofficeEntityDetailLayoutPage-BSgGBzSL.js.map} +1 -1
  15. package/lib/esm/{BackofficeEntityDetailPage-ChxBrqz8.js → BackofficeEntityDetailPage-LB1uEJVM.js} +366 -358
  16. package/lib/esm/BackofficeEntityDetailPage-LB1uEJVM.js.map +1 -0
  17. package/lib/esm/{BackofficeEntityDetailUnknownPageRedirect-xupMeril.js → BackofficeEntityDetailUnknownPageRedirect-Iu4R3WvX.js} +3 -3
  18. package/lib/esm/{BackofficeEntityDetailUnknownPageRedirect-xupMeril.js.map → BackofficeEntityDetailUnknownPageRedirect-Iu4R3WvX.js.map} +1 -1
  19. package/lib/esm/BackofficeEntityListPage-D_zL-qRb.js +432 -0
  20. package/lib/esm/BackofficeEntityListPage-D_zL-qRb.js.map +1 -0
  21. package/lib/esm/BackofficeHubPage-DOePQ8Fc.js +121 -0
  22. package/lib/esm/BackofficeHubPage-DOePQ8Fc.js.map +1 -0
  23. package/lib/esm/BackofficeHubTemplate-C6K55egX.js +82 -0
  24. package/lib/esm/BackofficeHubTemplate-C6K55egX.js.map +1 -0
  25. package/lib/esm/{BackofficeLayoutPage-r6dXo9SI.js → BackofficeLayoutPage-Bq2bKkYF.js} +301 -217
  26. package/lib/esm/BackofficeLayoutPage-Bq2bKkYF.js.map +1 -0
  27. package/lib/esm/BackofficeListToolbar-loFfIPtP.js +109 -0
  28. package/lib/esm/BackofficeListToolbar-loFfIPtP.js.map +1 -0
  29. package/lib/esm/{BackofficeLoginPage-BMPhO1cr.js → BackofficeLoginPage-DIlcOueK.js} +5 -5
  30. package/lib/esm/{BackofficeLoginPage-BMPhO1cr.js.map → BackofficeLoginPage-DIlcOueK.js.map} +1 -1
  31. package/lib/esm/{BackofficePasswordResetCompletePage-OApMUiOi.js → BackofficePasswordResetCompletePage-Cit5sdDm.js} +6 -7
  32. package/lib/esm/{BackofficePasswordResetCompletePage-OApMUiOi.js.map → BackofficePasswordResetCompletePage-Cit5sdDm.js.map} +1 -1
  33. package/lib/esm/{BackofficePasswordResetRequestPage-DPDImb37.js → BackofficePasswordResetRequestPage-B_TurHev.js} +5 -6
  34. package/lib/esm/{BackofficePasswordResetRequestPage-DPDImb37.js.map → BackofficePasswordResetRequestPage-B_TurHev.js.map} +1 -1
  35. package/lib/esm/{BackofficePermissionsContext-CmWwudBU.js → BackofficePermissionsContext-C2bdxy2z.js} +1 -1
  36. package/lib/esm/{BackofficePermissionsContext-CmWwudBU.js.map → BackofficePermissionsContext-C2bdxy2z.js.map} +1 -1
  37. package/lib/esm/BackofficeRightPageLayout-CfNkrMvH.js +83 -0
  38. package/lib/esm/BackofficeRightPageLayout-CfNkrMvH.js.map +1 -0
  39. package/lib/esm/{BackofficeTopbarPortalContext-CphoSrZD.js → BackofficeTopbarPortalContext-Da5XFatM.js} +1 -1
  40. package/lib/esm/BackofficeTopbarPortalContext-Da5XFatM.js.map +1 -0
  41. package/lib/esm/{BackofficeVerifyEmailPage-DHuSOxDf.js → BackofficeVerifyEmailPage-DQbFIob1.js} +6 -7
  42. package/lib/esm/{BackofficeVerifyEmailPage-DHuSOxDf.js.map → BackofficeVerifyEmailPage-DQbFIob1.js.map} +1 -1
  43. package/lib/esm/EntityIdPickerDialog-BSn0v3bv.js +340 -0
  44. package/lib/esm/EntityIdPickerDialog-BSn0v3bv.js.map +1 -0
  45. package/lib/esm/LazyBackofficeEntityActionFormDialog-oRd_WHAK.js +670 -0
  46. package/lib/esm/LazyBackofficeEntityActionFormDialog-oRd_WHAK.js.map +1 -0
  47. package/lib/esm/backoffice-react.js +553 -315
  48. package/lib/esm/backoffice-react.js.map +1 -1
  49. package/lib/esm/{backofficeAuthPaths-2KMmkBLv.js → backofficeAuthPaths-2hHNn8D3.js} +1 -1
  50. package/lib/esm/{backofficeAuthPaths-2KMmkBLv.js.map → backofficeAuthPaths-2hHNn8D3.js.map} +1 -1
  51. package/lib/esm/backofficeEntityActionFormDialog.css-DJgEKwaA.js +6 -0
  52. package/lib/esm/backofficeEntityActionFormDialog.css-DJgEKwaA.js.map +1 -0
  53. package/lib/esm/{buildBreadcrumbs-C9cyiXb7.js → buildBreadcrumbs-C5St167Y.js} +1 -1
  54. package/lib/esm/buildBreadcrumbs-C5St167Y.js.map +1 -0
  55. package/lib/esm/{buildDataTableColumns-DGPjPK4N.js → buildDataTableColumns-DdmF-EYq.js} +1 -1
  56. package/lib/esm/{buildDataTableColumns-DGPjPK4N.js.map → buildDataTableColumns-DdmF-EYq.js.map} +1 -1
  57. package/lib/esm/{mutationResult-CcQMY13J.js → mutationResult-C2Vb_vPt.js} +1 -1
  58. package/lib/esm/{mutationResult-CcQMY13J.js.map → mutationResult-C2Vb_vPt.js.map} +1 -1
  59. package/lib/esm/{pageResolution-hAQA5C6S.js → pageResolution-CUaTq4Ql.js} +1 -1
  60. package/lib/esm/{pageResolution-hAQA5C6S.js.map → pageResolution-CUaTq4Ql.js.map} +1 -1
  61. package/lib/esm/{sidebarUtils-BZETlHea.js → sidebarUtils-BgCBLJLv.js} +20 -6
  62. package/lib/esm/sidebarUtils-BgCBLJLv.js.map +1 -0
  63. package/lib/esm/style.css +1 -1
  64. package/lib/esm/{synchronizeAuthStatusQuery-BoPKMrP1.js → synchronizeAuthStatusQuery-DNJR5MfH.js} +8 -9
  65. package/lib/esm/synchronizeAuthStatusQuery-DNJR5MfH.js.map +1 -0
  66. package/lib/esm/{toastViewAction-DJkv_4p9.js → toastViewAction-DQYlcGOL.js} +1 -1
  67. package/lib/esm/{toastViewAction-DJkv_4p9.js.map → toastViewAction-DQYlcGOL.js.map} +1 -1
  68. package/lib/esm/{useAuth-CheTnq60.js → useAuth-CWf8ZspF.js} +70 -66
  69. package/lib/esm/useAuth-CWf8ZspF.js.map +1 -0
  70. package/lib/esm/{useBackofficeAuth-DVAXNAjP.js → useBackofficeAuth-Da7FPNys.js} +2 -2
  71. package/lib/esm/{useBackofficeAuth-DVAXNAjP.js.map → useBackofficeAuth-Da7FPNys.js.map} +1 -1
  72. package/lib/esm/{useBackofficeLazyValue-CoIAK-5N.js → useBackofficeLazyValue-CW9xfRzQ.js} +1 -1
  73. package/lib/esm/{useBackofficeLazyValue-CoIAK-5N.js.map → useBackofficeLazyValue-CW9xfRzQ.js.map} +1 -1
  74. package/lib/esm/{useBackofficeListUrlState-D4fx5O7u.js → useBackofficeListUrlState-Ca6d7uIN.js} +1 -1
  75. package/lib/esm/useBackofficeListUrlState-Ca6d7uIN.js.map +1 -0
  76. package/lib/types/auth/login/LoginFlow.d.ts.map +1 -1
  77. package/lib/types/auth/login/MfaChallengeForm.d.ts.map +1 -1
  78. package/lib/types/auth/login/PasskeyLoginForm.d.ts.map +1 -1
  79. package/lib/types/auth/pages/AcceptInvitationScreen.d.ts.map +1 -1
  80. package/lib/types/components/backoffice/actions/BackofficeEntityActionFormDialog.d.ts.map +1 -1
  81. package/lib/types/components/backoffice/actions/LazyBackofficeEntityActionFormDialog.d.ts.map +1 -1
  82. package/lib/types/components/backoffice/actions/backofficeEntityActionFormDialog.css.d.ts +4 -0
  83. package/lib/types/components/backoffice/actions/backofficeEntityActionFormDialog.css.d.ts.map +1 -1
  84. package/lib/types/components/backoffice/detail/BackofficeDetailRelationLink.d.ts +3 -5
  85. package/lib/types/components/backoffice/detail/BackofficeDetailRelationLink.d.ts.map +1 -1
  86. package/lib/types/components/backoffice/detail/BackofficeDetailRelationListBlock.d.ts +3 -4
  87. package/lib/types/components/backoffice/detail/BackofficeDetailRelationListBlock.d.ts.map +1 -1
  88. package/lib/types/components/backoffice/detail/BackofficeDetailSection.d.ts.map +1 -1
  89. package/lib/types/components/backoffice/detail/backofficeDetailField.css.d.ts +1 -0
  90. package/lib/types/components/backoffice/detail/backofficeDetailField.css.d.ts.map +1 -1
  91. package/lib/types/components/backoffice/detail/backofficeDetailLayout.css.d.ts.map +1 -1
  92. package/lib/types/components/backoffice/detail/backofficeDetailRelationLink.css.d.ts +2 -0
  93. package/lib/types/components/backoffice/detail/backofficeDetailRelationLink.css.d.ts.map +1 -1
  94. package/lib/types/components/backoffice/filters/BackofficeFilterAction.d.ts +4 -4
  95. package/lib/types/components/backoffice/filters/BackofficeFilterAction.d.ts.map +1 -1
  96. package/lib/types/components/backoffice/filters/DeferredFilterSearchInput.d.ts +13 -0
  97. package/lib/types/components/backoffice/filters/DeferredFilterSearchInput.d.ts.map +1 -0
  98. package/lib/types/components/backoffice/filters/EntityIdFilterField.d.ts +4 -0
  99. package/lib/types/components/backoffice/filters/EntityIdFilterField.d.ts.map +1 -1
  100. package/lib/types/components/backoffice/filters/deferredFilterSearchInput.css.d.ts +3 -0
  101. package/lib/types/components/backoffice/filters/deferredFilterSearchInput.css.d.ts.map +1 -0
  102. package/lib/types/components/backoffice/filters/entityIdFilterField.css.d.ts +3 -0
  103. package/lib/types/components/backoffice/filters/entityIdFilterField.css.d.ts.map +1 -1
  104. package/lib/types/components/backoffice/hub/BackofficeHubTemplate.d.ts +36 -0
  105. package/lib/types/components/backoffice/hub/BackofficeHubTemplate.d.ts.map +1 -0
  106. package/lib/types/{pages/backofficeHubPage.css.d.ts → components/backoffice/hub/backofficeHubTemplate.css.d.ts} +5 -3
  107. package/lib/types/components/backoffice/hub/backofficeHubTemplate.css.d.ts.map +1 -0
  108. package/lib/types/components/backoffice/layout/breadcrumb/BackofficeTopbarBreadcrumb.d.ts.map +1 -1
  109. package/lib/types/components/backoffice/layout/breadcrumb/BackofficeTopbarPortalContext.d.ts +2 -0
  110. package/lib/types/components/backoffice/layout/breadcrumb/BackofficeTopbarPortalContext.d.ts.map +1 -1
  111. package/lib/types/components/backoffice/layout/breadcrumb/backofficeTopbarBreadcrumb.css.d.ts +3 -0
  112. package/lib/types/components/backoffice/layout/breadcrumb/backofficeTopbarBreadcrumb.css.d.ts.map +1 -1
  113. package/lib/types/components/backoffice/layout/breadcrumb/buildBreadcrumbs.d.ts +2 -2
  114. package/lib/types/components/backoffice/layout/breadcrumb/buildBreadcrumbs.d.ts.map +1 -1
  115. package/lib/types/components/backoffice/layout/buildSidebarSections.d.ts +1 -0
  116. package/lib/types/components/backoffice/layout/buildSidebarSections.d.ts.map +1 -1
  117. package/lib/types/components/backoffice/layout/sidebarUtils.d.ts +2 -1
  118. package/lib/types/components/backoffice/layout/sidebarUtils.d.ts.map +1 -1
  119. package/lib/types/components/backoffice/lists/BackofficeListToolbar.d.ts +16 -0
  120. package/lib/types/components/backoffice/lists/BackofficeListToolbar.d.ts.map +1 -0
  121. package/lib/types/components/backoffice/lists/backofficeListToolbar.css.d.ts +16 -0
  122. package/lib/types/components/backoffice/lists/backofficeListToolbar.css.d.ts.map +1 -0
  123. package/lib/types/components/backoffice/pickers/EntityIdPickerDialog.d.ts +1 -1
  124. package/lib/types/components/backoffice/pickers/EntityIdPickerDialog.d.ts.map +1 -1
  125. package/lib/types/components/backoffice/pickers/entityIdPickerDialog.css.d.ts +2 -0
  126. package/lib/types/components/backoffice/pickers/entityIdPickerDialog.css.d.ts.map +1 -1
  127. package/lib/types/components/backoffice/pickers/shared/EntityPickerList.d.ts.map +1 -1
  128. package/lib/types/components/backoffice/pickers/shared/EntityPickerShell.d.ts.map +1 -1
  129. package/lib/types/components/backoffice/pickers/types.d.ts +1 -1
  130. package/lib/types/components/backoffice/pickers/types.d.ts.map +1 -1
  131. package/lib/types/components/backoffice/refs/BackofficeEntityIdRef.d.ts +4 -4
  132. package/lib/types/components/backoffice/refs/BackofficeEntityIdRef.d.ts.map +1 -1
  133. package/lib/types/components/backoffice/refs/BackofficeRelatedCountLink.d.ts.map +1 -1
  134. package/lib/types/components/backoffice/refs/backofficeRelatedCountLink.css.d.ts +2 -0
  135. package/lib/types/components/backoffice/refs/backofficeRelatedCountLink.css.d.ts.map +1 -1
  136. package/lib/types/components/backoffice/routing/BackofficeContentError.d.ts +1 -1
  137. package/lib/types/components/backoffice/routing/BackofficeContentError.d.ts.map +1 -1
  138. package/lib/types/components/backoffice/routing/BackofficeRouteFallback.d.ts +4 -0
  139. package/lib/types/components/backoffice/routing/BackofficeRouteFallback.d.ts.map +1 -1
  140. package/lib/types/components/backoffice/scaffolds/BackofficeEntityDetailScaffold.d.ts.map +1 -1
  141. package/lib/types/components/backoffice/scaffolds/BackofficeEntityListScaffold.d.ts +10 -6
  142. package/lib/types/components/backoffice/scaffolds/BackofficeEntityListScaffold.d.ts.map +1 -1
  143. package/lib/types/components/backoffice/scaffolds/BackofficeListFilterContext.d.ts +3 -3
  144. package/lib/types/components/backoffice/scaffolds/BackofficeListFilterContext.d.ts.map +1 -1
  145. package/lib/types/components/backoffice/scaffolds/backofficeEntityListScaffold.css.d.ts.map +1 -1
  146. package/lib/types/components/backoffice/shared/BackofficeFilterableCell.d.ts +13 -0
  147. package/lib/types/components/backoffice/shared/BackofficeFilterableCell.d.ts.map +1 -0
  148. package/lib/types/components/backoffice/shared/backofficeFilterableCell.css.d.ts +12 -0
  149. package/lib/types/components/backoffice/shared/backofficeFilterableCell.css.d.ts.map +1 -0
  150. package/lib/types/components/backoffice/shared/backofficeInlineFilterRow.css.d.ts.map +1 -1
  151. package/lib/types/filters/filterHelpers.d.ts +3 -3
  152. package/lib/types/filters/filterHelpers.d.ts.map +1 -1
  153. package/lib/types/hooks/useAuth.d.ts.map +1 -1
  154. package/lib/types/hooks/useBackofficeInfiniteScrollSentinel.d.ts.map +1 -1
  155. package/lib/types/hooks/useBackofficeListRefetch.d.ts +7 -3
  156. package/lib/types/hooks/useBackofficeListRefetch.d.ts.map +1 -1
  157. package/lib/types/hooks/useBackofficeListUrlState.d.ts +2 -2
  158. package/lib/types/hooks/useBackofficeListUrlState.d.ts.map +1 -1
  159. package/lib/types/i18n/resources.d.ts +84 -7
  160. package/lib/types/i18n/resources.d.ts.map +1 -1
  161. package/lib/types/index.d.ts +3 -0
  162. package/lib/types/index.d.ts.map +1 -1
  163. package/lib/types/pages/BackofficeDashboardPage.d.ts.map +1 -1
  164. package/lib/types/pages/BackofficeEntityDetailPage.d.ts.map +1 -1
  165. package/lib/types/pages/BackofficeEntityDetailPage.view-helpers.d.ts +3 -8
  166. package/lib/types/pages/BackofficeEntityDetailPage.view-helpers.d.ts.map +1 -1
  167. package/lib/types/pages/BackofficeEntityListPage.d.ts +2 -2
  168. package/lib/types/pages/BackofficeEntityListPage.d.ts.map +1 -1
  169. package/lib/types/pages/BackofficeEntityListPage.helpers.d.ts +8 -4
  170. package/lib/types/pages/BackofficeEntityListPage.helpers.d.ts.map +1 -1
  171. package/lib/types/pages/BackofficeHubPage.d.ts.map +1 -1
  172. package/lib/types/pages/BackofficeLayoutPage.d.ts.map +1 -1
  173. package/lib/types/pages/BackofficePasswordResetCompletePage.d.ts.map +1 -1
  174. package/lib/types/pages/BackofficePasswordResetRequestPage.d.ts.map +1 -1
  175. package/lib/types/pages/BackofficeVerifyEmailPage.d.ts.map +1 -1
  176. package/lib/types/pages/backofficeDashboardPage.css.d.ts +1 -14
  177. package/lib/types/pages/backofficeDashboardPage.css.d.ts.map +1 -1
  178. package/lib/types/pages/backofficeEntityDetailPage.css.d.ts +2 -0
  179. package/lib/types/pages/backofficeEntityDetailPage.css.d.ts.map +1 -1
  180. package/lib/types/pages/dashboard/DashboardMetricGroup.d.ts +14 -0
  181. package/lib/types/pages/dashboard/DashboardMetricGroup.d.ts.map +1 -0
  182. package/lib/types/pages/dashboard/DashboardPanel.d.ts +9 -0
  183. package/lib/types/pages/dashboard/DashboardPanel.d.ts.map +1 -0
  184. package/lib/types/pages/dashboard/DashboardQuickActions.d.ts +13 -0
  185. package/lib/types/pages/dashboard/DashboardQuickActions.d.ts.map +1 -0
  186. package/lib/types/pages/dashboard/DashboardStatusList.d.ts +13 -0
  187. package/lib/types/pages/dashboard/DashboardStatusList.d.ts.map +1 -0
  188. package/lib/types/pages/dashboard/dashboardMetricGroup.css.d.ts +4 -0
  189. package/lib/types/pages/dashboard/dashboardMetricGroup.css.d.ts.map +1 -0
  190. package/lib/types/pages/dashboard/dashboardPanel.css.d.ts +2 -0
  191. package/lib/types/pages/dashboard/dashboardPanel.css.d.ts.map +1 -0
  192. package/lib/types/pages/dashboard/dashboardQuickActions.css.d.ts +5 -0
  193. package/lib/types/pages/dashboard/dashboardQuickActions.css.d.ts.map +1 -0
  194. package/lib/types/pages/dashboard/dashboardStatusList.css.d.ts +6 -0
  195. package/lib/types/pages/dashboard/dashboardStatusList.css.d.ts.map +1 -0
  196. package/lib/types/provider/BackofficeProvider.d.ts.map +1 -1
  197. package/lib/types/provider/types.d.ts +5 -1
  198. package/lib/types/provider/types.d.ts.map +1 -1
  199. package/lib/types/router/createBackofficeRoutes.d.ts.map +1 -1
  200. package/package.json +5 -5
  201. package/lib/esm/AcceptInvitationScreen-B1IPafwD.js.map +0 -1
  202. package/lib/esm/BackofficeDashboardPage-CZAcZwRc.js +0 -344
  203. package/lib/esm/BackofficeDashboardPage-CZAcZwRc.js.map +0 -1
  204. package/lib/esm/BackofficeDetailPayload-P61MDRLE.js +0 -94
  205. package/lib/esm/BackofficeDetailPayload-P61MDRLE.js.map +0 -1
  206. package/lib/esm/BackofficeEntityActionFormDialog-BgMuhyU8.js +0 -512
  207. package/lib/esm/BackofficeEntityActionFormDialog-BgMuhyU8.js.map +0 -1
  208. package/lib/esm/BackofficeEntityDetailPage-ChxBrqz8.js.map +0 -1
  209. package/lib/esm/BackofficeEntityListPage-BACvfX6c.js +0 -404
  210. package/lib/esm/BackofficeEntityListPage-BACvfX6c.js.map +0 -1
  211. package/lib/esm/BackofficeHubPage-BsUXulN0.js +0 -136
  212. package/lib/esm/BackofficeHubPage-BsUXulN0.js.map +0 -1
  213. package/lib/esm/BackofficeLayoutPage-r6dXo9SI.js.map +0 -1
  214. package/lib/esm/BackofficeRightPageLayout-BZb7LhT-.js +0 -53
  215. package/lib/esm/BackofficeRightPageLayout-BZb7LhT-.js.map +0 -1
  216. package/lib/esm/BackofficeTopbarPortalContext-CphoSrZD.js.map +0 -1
  217. package/lib/esm/EntityFilterValue-BWUdPBwp.js +0 -78
  218. package/lib/esm/EntityFilterValue-BWUdPBwp.js.map +0 -1
  219. package/lib/esm/EntityIdPickerDialog-Yhmr-WsV.js +0 -308
  220. package/lib/esm/EntityIdPickerDialog-Yhmr-WsV.js.map +0 -1
  221. package/lib/esm/LazyBackofficeEntityActionFormDialog-uyYFFJGM.js +0 -522
  222. package/lib/esm/LazyBackofficeEntityActionFormDialog-uyYFFJGM.js.map +0 -1
  223. package/lib/esm/buildBreadcrumbs-C9cyiXb7.js.map +0 -1
  224. package/lib/esm/sidebarUtils-BZETlHea.js.map +0 -1
  225. package/lib/esm/synchronizeAuthStatusQuery-BoPKMrP1.js.map +0 -1
  226. package/lib/esm/useAuth-CheTnq60.js.map +0 -1
  227. package/lib/esm/useBackofficeListUrlState-D4fx5O7u.js.map +0 -1
  228. package/lib/types/pages/backofficeHubPage.css.d.ts.map +0 -1
@@ -1,344 +0,0 @@
1
- import { r as e, t } from "./useBackofficeReactTranslation-Btt58EIo.js";
2
- import { t as n } from "./BackofficeErrorBoundary-BwRVSDHU.js";
3
- import { t as r } from "./buildDataTableColumns-DGPjPK4N.js";
4
- import { t as i } from "./BackofficeRightPageLayout-BZb7LhT-.js";
5
- import { a } from "./useBackofficeLazyValue-CoIAK-5N.js";
6
- import { t as o } from "./buildBreadcrumbs-C9cyiXb7.js";
7
- import { Suspense as s } from "react";
8
- import { useTranslation as c } from "react-i18next";
9
- import { Link as l } from "@plumile/router";
10
- import { DataTable as u, DetailPageTemplate as d, InfoTile as f, MetricCard as p } from "@plumile/ui";
11
- import * as m from "react-relay";
12
- import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
13
- //#region src/pages/BackofficeDashboardPage.helpers.ts
14
- var v = (e, t) => e(t), y = (e, t) => {
15
- switch (e.kind) {
16
- case "entityCount":
17
- case "shortcut": return e.label;
18
- case "tablePreview":
19
- case "textBlock": return e.title;
20
- case "recentItems":
21
- case "metricGroup":
22
- case "quickActions":
23
- case "statusSummary": return e.title == null ? t.title : e.title;
24
- default: return t.title;
25
- }
26
- }, b = (e) => "query" in e && e.query != null;
27
- //#endregion
28
- //#region ../../node_modules/@vanilla-extract/recipes/dist/createRuntimeFn-62c9670f.esm.js
29
- function x(e, t) {
30
- if (typeof e != "object" || !e) return e;
31
- var n = e[Symbol.toPrimitive];
32
- if (n !== void 0) {
33
- var r = n.call(e, t || "default");
34
- if (typeof r != "object") return r;
35
- throw TypeError("@@toPrimitive must return a primitive value.");
36
- }
37
- return (t === "string" ? String : Number)(e);
38
- }
39
- function S(e) {
40
- var t = x(e, "string");
41
- return typeof t == "symbol" ? t : String(t);
42
- }
43
- function C(e, t, n) {
44
- return t = S(t), t in e ? Object.defineProperty(e, t, {
45
- value: n,
46
- enumerable: !0,
47
- configurable: !0,
48
- writable: !0
49
- }) : e[t] = n, e;
50
- }
51
- function w(e, t) {
52
- var n = Object.keys(e);
53
- if (Object.getOwnPropertySymbols) {
54
- var r = Object.getOwnPropertySymbols(e);
55
- t && (r = r.filter(function(t) {
56
- return Object.getOwnPropertyDescriptor(e, t).enumerable;
57
- })), n.push.apply(n, r);
58
- }
59
- return n;
60
- }
61
- function T(e) {
62
- for (var t = 1; t < arguments.length; t++) {
63
- var n = arguments[t] == null ? {} : arguments[t];
64
- t % 2 ? w(Object(n), !0).forEach(function(t) {
65
- C(e, t, n[t]);
66
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : w(Object(n)).forEach(function(t) {
67
- Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t));
68
- });
69
- }
70
- return e;
71
- }
72
- function E(e, t) {
73
- var n = {};
74
- for (var r in e) n[r] = t(e[r], r);
75
- return n;
76
- }
77
- var D = (e, t, n) => {
78
- for (var r of Object.keys(e)) if (e[r] !== (t[r] ?? n[r])) return !1;
79
- return !0;
80
- }, O = (e) => {
81
- var t = (t) => {
82
- var n = e.defaultClassName, r = T(T({}, e.defaultVariants), t);
83
- for (var i in r) {
84
- var a = r[i] ?? e.defaultVariants[i];
85
- if (a != null) {
86
- var o = a;
87
- typeof o == "boolean" && (o = o === !0 ? "true" : "false");
88
- var s = e.variantClassNames[i][o];
89
- s && (n += " " + s);
90
- }
91
- }
92
- for (var [c, l] of e.compoundVariants) D(c, r, e.defaultVariants) && (n += " " + l);
93
- return n;
94
- };
95
- return t.variants = () => Object.keys(e.variantClassNames), t.classNames = {
96
- get base() {
97
- return e.defaultClassName.split(" ")[0];
98
- },
99
- get variants() {
100
- return E(e.variantClassNames, (e) => E(e, (e) => e.split(" ")[0]));
101
- }
102
- }, t;
103
- }, k = "mt26ef0 txvbqb9iy txvbqbaog", A = O({
104
- defaultClassName: "mt26ef7 mt26ef1",
105
- variantClassNames: { size: {
106
- s: "mt26ef8 mt26ef2",
107
- m: "mt26ef9 mt26ef3",
108
- l: "mt26efa mt26ef4",
109
- xl: "mt26efb mt26ef5",
110
- full: "mt26efc mt26ef6"
111
- } },
112
- defaultVariants: { size: "m" },
113
- compoundVariants: []
114
- }), j = "txvbqb9ip txvbqbai7 txvbqbao7", M = "txvbqba7 txvbqbamy txvbqbehy", N = "txvbqb9ip txvbqbajy txvbqbqi7 txvbqb8vg", P = "txvbqb9ip txvbqbai7 txvbqbao7", F = "mt26efd txvbqbp6g txvbqbly7 txvbqb9ip txvbqbcp txvbqbdpp txvbqbaog txvbqb12g txvbqb62p txvbqb1qg txvbqb3og txvbqbv9z txvbqb3b", I = "txvbqbamp txvbqbakg", { useLazyLoadQuery: L } = m, R = (e) => e ?? "m", z = ({ widget: n, globalData: i }) => {
115
- let { t: a } = c(), { t: o } = t(), { entities: s } = e(), d = (e) => "resolve" in n && n.resolve != null ? n.resolve(e) : null;
116
- if (n.kind === "textBlock") return /* @__PURE__ */ g(f, {
117
- title: v(n.title, a),
118
- children: /* @__PURE__ */ g("div", {
119
- className: j,
120
- children: v(n.body, a)
121
- })
122
- });
123
- if (n.kind === "shortcut") {
124
- let e = s[n.entityId];
125
- if (e == null) return null;
126
- let t = v(n.label, a);
127
- return e.kind === "tool" ? /* @__PURE__ */ g(f, {
128
- title: t,
129
- children: /* @__PURE__ */ g("div", {
130
- className: N,
131
- children: /* @__PURE__ */ g(l, {
132
- to: e.routes.list,
133
- children: o("dashboard.actions.openTool")
134
- })
135
- })
136
- }) : /* @__PURE__ */ g(f, {
137
- title: t,
138
- children: /* @__PURE__ */ g("div", {
139
- className: N,
140
- children: /* @__PURE__ */ g(l, {
141
- to: e.routes.list,
142
- children: o("dashboard.actions.openList")
143
- })
144
- })
145
- });
146
- }
147
- if (n.kind === "tablePreview") {
148
- let e = d(i);
149
- if (e == null) return null;
150
- let t = r(e.columns, {
151
- tApp: a,
152
- t: o,
153
- resolveEntityHref: (e, t) => {
154
- let n = s[e];
155
- return n == null ? null : n.routes.detail(t);
156
- }
157
- });
158
- return /* @__PURE__ */ g(f, {
159
- title: v(n.title, a),
160
- children: /* @__PURE__ */ g(u, {
161
- columns: t,
162
- rows: e.rows,
163
- getRowId: (e, t) => {
164
- if (typeof e == "object" && e) {
165
- let { id: t } = e;
166
- if (typeof t == "string" && t.trim() !== "") return t;
167
- }
168
- return String(t);
169
- }
170
- })
171
- });
172
- }
173
- if (n.kind === "metricGroup") {
174
- let e = d(i);
175
- return e == null ? null : /* @__PURE__ */ g("div", {
176
- className: k,
177
- children: e.map((e) => {
178
- let t = e.value ?? o("common.notAvailable");
179
- return /* @__PURE__ */ g(p, {
180
- label: v(e.label, a),
181
- value: t,
182
- hint: e.meta == null ? void 0 : v(e.meta, a)
183
- }, e.id);
184
- })
185
- });
186
- }
187
- if (n.kind === "quickActions") return /* @__PURE__ */ g(f, {
188
- title: n.title == null ? o("dashboard.actions.openTool") : v(n.title, a),
189
- children: /* @__PURE__ */ g("div", {
190
- className: N,
191
- children: n.actions.map((e) => /* @__PURE__ */ g(l, {
192
- to: e.href,
193
- children: v(e.label, a)
194
- }, e.id))
195
- })
196
- });
197
- if (n.kind === "statusSummary") {
198
- let e = d(i);
199
- return e == null ? null : /* @__PURE__ */ g(f, {
200
- title: n.title == null ? void 0 : v(n.title, a),
201
- children: /* @__PURE__ */ g("div", {
202
- className: P,
203
- children: e.map((e) => {
204
- let t = e.value ?? o("common.notAvailable"), n = /* @__PURE__ */ _(h, { children: [/* @__PURE__ */ g("span", { children: v(e.label, a) }), /* @__PURE__ */ g("span", {
205
- className: I,
206
- children: t
207
- })] });
208
- return e.href == null ? /* @__PURE__ */ g("div", {
209
- className: F,
210
- children: n
211
- }, e.id) : /* @__PURE__ */ g(l, {
212
- to: e.href,
213
- className: F,
214
- children: n
215
- }, e.id);
216
- })
217
- })
218
- });
219
- }
220
- if (n.kind === "recentItems") return /* @__PURE__ */ g(f, {
221
- title: n.title == null ? o("dashboard.title") : v(n.title, a),
222
- children: /* @__PURE__ */ g("div", {
223
- className: j,
224
- children: o("common.notAvailable")
225
- })
226
- });
227
- let m = s[n.entityId];
228
- if (m?.kind !== "list-detail") return null;
229
- let y = d(i), b = o("common.notAvailable");
230
- return typeof y?.count == "number" && (b = y.count), /* @__PURE__ */ g(f, {
231
- title: v(n.label, a),
232
- children: /* @__PURE__ */ _("div", {
233
- className: j,
234
- children: [/* @__PURE__ */ g("div", {
235
- className: M,
236
- children: b
237
- }), /* @__PURE__ */ g("div", {
238
- className: N,
239
- children: /* @__PURE__ */ g(l, {
240
- to: m.routes.list,
241
- children: o("dashboard.actions.openList")
242
- })
243
- })]
244
- })
245
- });
246
- }, B = ({ widget: e }) => /* @__PURE__ */ g(z, {
247
- widget: e,
248
- globalData: L(e.query, {}, { fetchPolicy: "store-or-network" })
249
- }), V = ({ config: e, globalData: r }) => {
250
- let { t: i } = c(), { t: a } = t();
251
- return /* @__PURE__ */ g(d, {
252
- header: {
253
- title: v(e.title, i),
254
- subtitle: (e.subtitle == null ? void 0 : v(e.subtitle, i)) ?? a("dashboard.subtitle")
255
- },
256
- children: /* @__PURE__ */ g("div", {
257
- className: k,
258
- children: e.widgets.map((t) => {
259
- let o = b(t) ? /* @__PURE__ */ g(B, { widget: t }) : /* @__PURE__ */ g(z, {
260
- widget: t,
261
- globalData: r
262
- });
263
- return /* @__PURE__ */ g(n, {
264
- fallback: () => /* @__PURE__ */ g(f, {
265
- title: v(y(t, e), i),
266
- children: /* @__PURE__ */ g("div", {
267
- className: j,
268
- children: a("common.notAvailable")
269
- })
270
- }),
271
- children: /* @__PURE__ */ g(s, {
272
- fallback: /* @__PURE__ */ g(f, {
273
- title: v(y(t, e), i),
274
- children: /* @__PURE__ */ g("div", {
275
- className: j,
276
- children: a("common.loading")
277
- })
278
- }),
279
- children: /* @__PURE__ */ g("div", {
280
- className: A({ size: R(t.size) }),
281
- children: o
282
- })
283
- })
284
- }, t.id);
285
- })
286
- })
287
- });
288
- }, H = ({ config: e }) => /* @__PURE__ */ g(V, {
289
- config: e,
290
- globalData: L(e.query, {}, { fetchPolicy: "store-or-network" })
291
- }), U = () => {
292
- let { t: n } = c(), { t: r } = t(), { entities: s } = e(), u = a(), p = o(r);
293
- if (u == null) {
294
- let e = Object.values(s).filter((e) => e.kind === "list-detail" && e.hasList).map((e) => ({
295
- config: e,
296
- label: v(e.label, n)
297
- })).sort((e, t) => e.label.localeCompare(t.label));
298
- return /* @__PURE__ */ g(i, {
299
- breadcrumb: p,
300
- children: /* @__PURE__ */ g(d, {
301
- header: {
302
- title: r("dashboard.title"),
303
- subtitle: r("dashboard.subtitle")
304
- },
305
- children: /* @__PURE__ */ g("div", {
306
- className: k,
307
- children: e.map(({ config: e, label: t }) => /* @__PURE__ */ g("div", {
308
- className: A({ size: "m" }),
309
- children: /* @__PURE__ */ g(f, {
310
- title: t,
311
- children: /* @__PURE__ */ _("div", {
312
- className: j,
313
- children: [/* @__PURE__ */ g("div", {
314
- className: M,
315
- children: r("common.notAvailable")
316
- }), /* @__PURE__ */ g("div", {
317
- className: N,
318
- children: /* @__PURE__ */ g(l, {
319
- to: e.routes.list,
320
- children: r("dashboard.actions.openList")
321
- })
322
- })]
323
- })
324
- })
325
- }, e.id))
326
- })
327
- })
328
- });
329
- }
330
- return u.query == null ? /* @__PURE__ */ g(i, {
331
- breadcrumb: p,
332
- children: /* @__PURE__ */ g(V, {
333
- config: u,
334
- globalData: null
335
- })
336
- }) : /* @__PURE__ */ g(i, {
337
- breadcrumb: p,
338
- children: /* @__PURE__ */ g(H, { config: u })
339
- });
340
- };
341
- //#endregion
342
- export { U as BackofficeDashboardPage, U as default };
343
-
344
- //# sourceMappingURL=BackofficeDashboardPage-CZAcZwRc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BackofficeDashboardPage-CZAcZwRc.js","names":[],"sources":["../../src/pages/BackofficeDashboardPage.helpers.ts","../../../../node_modules/@vanilla-extract/recipes/dist/createRuntimeFn-62c9670f.esm.js","../../src/pages/backofficeDashboardPage.css.ts","../../src/pages/BackofficeDashboardPage.tsx"],"sourcesContent":["import type {\n BackofficeDashboardConfig,\n BackofficeDashboardWidget,\n I18nLabel,\n} from '@plumile/backoffice-core/types.js';\nimport type { TFunction } from 'i18next';\nimport type { GraphQLTaggedNode } from 'relay-runtime';\n\nexport const resolveLabel = (label: I18nLabel, tApp: TFunction): string => {\n return label(tApp);\n};\n\nexport const getWidgetLabel = (\n widget: BackofficeDashboardWidget,\n config: BackofficeDashboardConfig,\n): I18nLabel => {\n switch (widget.kind) {\n case 'entityCount':\n case 'shortcut':\n return widget.label;\n case 'tablePreview':\n case 'textBlock':\n return widget.title;\n case 'recentItems':\n case 'metricGroup':\n case 'quickActions':\n case 'statusSummary':\n if (widget.title != null) {\n return widget.title;\n }\n return config.title;\n default:\n return config.title;\n }\n};\n\nexport const hasWidgetQuery = (\n widget: BackofficeDashboardWidget,\n): widget is BackofficeDashboardWidget & { query: GraphQLTaggedNode } => {\n return 'query' in widget && widget.query != null;\n};\n","function toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\n\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : String(i);\n}\n\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\n\nfunction mapValues(input, fn) {\n var result = {};\n for (var _key in input) {\n result[_key] = fn(input[_key], _key);\n }\n return result;\n}\n\nvar shouldApplyCompound = (compoundCheck, selections, defaultVariants) => {\n for (var key of Object.keys(compoundCheck)) {\n var _selections$key;\n if (compoundCheck[key] !== ((_selections$key = selections[key]) !== null && _selections$key !== void 0 ? _selections$key : defaultVariants[key])) {\n return false;\n }\n }\n return true;\n};\nvar createRuntimeFn = config => {\n var runtimeFn = options => {\n var className = config.defaultClassName;\n var selections = _objectSpread2(_objectSpread2({}, config.defaultVariants), options);\n for (var variantName in selections) {\n var _selections$variantNa;\n var variantSelection = (_selections$variantNa = selections[variantName]) !== null && _selections$variantNa !== void 0 ? _selections$variantNa : config.defaultVariants[variantName];\n if (variantSelection != null) {\n var selection = variantSelection;\n if (typeof selection === 'boolean') {\n // @ts-expect-error\n selection = selection === true ? 'true' : 'false';\n }\n var selectionClassName =\n // @ts-expect-error\n config.variantClassNames[variantName][selection];\n if (selectionClassName) {\n className += ' ' + selectionClassName;\n }\n }\n }\n for (var [compoundCheck, compoundClassName] of config.compoundVariants) {\n if (shouldApplyCompound(compoundCheck, selections, config.defaultVariants)) {\n className += ' ' + compoundClassName;\n }\n }\n return className;\n };\n runtimeFn.variants = () => Object.keys(config.variantClassNames);\n runtimeFn.classNames = {\n get base() {\n return config.defaultClassName.split(' ')[0];\n },\n get variants() {\n return mapValues(config.variantClassNames, classNames => mapValues(classNames, className => className.split(' ')[0]));\n }\n };\n return runtimeFn;\n};\n\nexport { createRuntimeFn as c, mapValues as m };\n","import { style } from '@vanilla-extract/css';\nimport { recipe } from '@vanilla-extract/recipes';\nimport { sprinkles, vars } from '@plumile/ui';\n\nexport const tilesGrid = style([\n sprinkles({\n display: 'grid',\n gap: 3,\n }),\n {\n gridTemplateColumns: 'repeat(12, minmax(0, 1fr))',\n '@media': {\n 'screen and (max-width: 1199px)': {\n gridTemplateColumns: 'repeat(2, minmax(0, 1fr))',\n },\n 'screen and (max-width: 767px)': {\n gridTemplateColumns: 'minmax(0, 1fr)',\n },\n },\n },\n]);\n\nexport const widget = recipe({\n base: style({\n minWidth: 0,\n }),\n variants: {\n size: {\n s: style({\n gridColumn: 'span 3',\n '@media': {\n 'screen and (max-width: 1199px)': {\n gridColumn: 'span 1',\n },\n },\n }),\n m: style({\n gridColumn: 'span 4',\n '@media': {\n 'screen and (max-width: 1199px)': {\n gridColumn: 'span 1',\n },\n },\n }),\n l: style({\n gridColumn: 'span 6',\n '@media': {\n 'screen and (max-width: 1199px)': {\n gridColumn: 'span 2',\n },\n 'screen and (max-width: 767px)': {\n gridColumn: 'span 1',\n },\n },\n }),\n xl: style({\n gridColumn: 'span 8',\n '@media': {\n 'screen and (max-width: 1199px)': {\n gridColumn: 'span 2',\n },\n 'screen and (max-width: 767px)': {\n gridColumn: 'span 1',\n },\n },\n }),\n full: style({\n gridColumn: '1 / -1',\n }),\n },\n },\n defaultVariants: {\n size: 'm',\n },\n});\n\nexport const tileBody = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 2,\n});\n\nexport const tileCount = sprinkles({\n fontSize: '3xl',\n fontWeight: 'bold',\n lineHeight: 1,\n});\n\nexport const links = sprinkles({\n display: 'flex',\n flexWrap: 'wrap',\n rowGap: 2,\n columnGap: 3,\n});\n\nexport const statusList = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 2,\n});\n\nexport const statusItem = style([\n sprinkles({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: 3,\n paddingY: 2,\n borderWidth: 0,\n borderBottomWidth: 'default',\n borderStyle: 'solid',\n borderBottomColor: 'borderLight',\n color: 'text',\n textDecoration: 'none',\n }),\n {\n selectors: {\n '&:last-child': {\n borderBottomWidth: 0,\n },\n '&:hover': {\n color: vars.colors.primary,\n },\n },\n },\n]);\n\nexport const statusValue = sprinkles({\n fontWeight: 'semibold',\n fontVariantNumeric: 'tabular-nums',\n});\n","/* eslint-disable no-ternary */\nimport { type JSX, Suspense } from 'react';\nimport { Link } from '@plumile/router';\nimport type {\n BackofficeDashboardConfig,\n BackofficeDashboardWidget,\n BackofficeDashboardWidgetSize,\n I18nLabel,\n} from '@plumile/backoffice-core/types.js';\nimport {\n DataTable,\n DetailPageTemplate,\n InfoTile,\n MetricCard,\n} from '@plumile/ui';\nimport { useTranslation } from 'react-i18next';\nimport * as ReactRelay from 'react-relay';\nimport type { GraphQLTaggedNode, OperationType } from 'relay-runtime';\n\nimport { BackofficeErrorBoundary } from '../components/backoffice/errors/BackofficeErrorBoundary.js';\nimport { useBackofficeReactTranslation } from '../i18n/useBackofficeReactTranslation.js';\nimport { useBackofficeConfig } from '../provider/BackofficeConfigContext.js';\nimport { useBackofficeDashboardConfig } from '../provider/useBackofficeLazyValue.js';\nimport { buildDataTableColumns } from '../components/backoffice/columns/buildDataTableColumns.js';\nimport { BackofficeRightPageLayout } from '../components/backoffice/layout/breadcrumb/BackofficeRightPageLayout.js';\nimport { buildDashboardBreadcrumb } from '../components/backoffice/layout/breadcrumb/buildBreadcrumbs.js';\nimport {\n getWidgetLabel,\n hasWidgetQuery,\n resolveLabel,\n} from './BackofficeDashboardPage.helpers.js';\n\nimport * as styles from './backofficeDashboardPage.css.js';\n\nconst { useLazyLoadQuery } = ReactRelay;\n\ntype WidgetContentProps = {\n widget: BackofficeDashboardWidget;\n globalData: unknown;\n};\n\nconst resolveWidgetSize = (\n size: BackofficeDashboardWidgetSize | undefined,\n): BackofficeDashboardWidgetSize => {\n return size ?? 'm';\n};\n\nconst WidgetContent = ({\n widget,\n globalData,\n}: WidgetContentProps): JSX.Element | null => {\n const { t: tApp } = useTranslation();\n const { t } = useBackofficeReactTranslation();\n const { entities } = useBackofficeConfig();\n\n const resolveData = (data: unknown): unknown => {\n if ('resolve' in widget && widget.resolve != null) {\n return widget.resolve(data);\n }\n return null;\n };\n\n if (widget.kind === 'textBlock') {\n const title = resolveLabel(widget.title, tApp);\n const body = resolveLabel(widget.body, tApp);\n return (\n <InfoTile title={title}>\n <div className={styles.tileBody}>{body}</div>\n </InfoTile>\n );\n }\n\n if (widget.kind === 'shortcut') {\n const entity = entities[widget.entityId];\n if (entity == null) {\n return null;\n }\n const title = resolveLabel(widget.label, tApp);\n if (entity.kind === 'tool') {\n return (\n <InfoTile title={title}>\n <div className={styles.links}>\n <Link to={entity.routes.list}>\n {t('dashboard.actions.openTool')}\n </Link>\n </div>\n </InfoTile>\n );\n }\n return (\n <InfoTile title={title}>\n <div className={styles.links}>\n <Link to={entity.routes.list}>{t('dashboard.actions.openList')}</Link>\n </div>\n </InfoTile>\n );\n }\n\n if (widget.kind === 'tablePreview') {\n const resolved = resolveData(globalData) as {\n columns: readonly unknown[];\n rows: readonly unknown[];\n } | null;\n if (resolved == null) {\n return null;\n }\n const columns = buildDataTableColumns(resolved.columns as never, {\n tApp,\n t,\n resolveEntityHref: (entityId, refId) => {\n const entityConfig = entities[entityId];\n if (entityConfig == null) {\n return null;\n }\n return entityConfig.routes.detail(refId);\n },\n });\n const title = resolveLabel(widget.title, tApp);\n return (\n <InfoTile title={title}>\n <DataTable\n columns={columns}\n rows={resolved.rows}\n getRowId={(row, index) => {\n if (row != null && typeof row === 'object') {\n const record = row as Record<string, unknown>;\n const { id } = record;\n if (typeof id === 'string' && id.trim() !== '') {\n return id;\n }\n }\n return String(index);\n }}\n />\n </InfoTile>\n );\n }\n\n if (widget.kind === 'metricGroup') {\n const resolved = resolveData(globalData) as\n | readonly {\n id: string;\n label: I18nLabel;\n value: string | number | null;\n meta?: I18nLabel;\n href?: string;\n }[]\n | null;\n if (resolved == null) {\n return null;\n }\n return (\n <div className={styles.tilesGrid}>\n {resolved.map((metric) => {\n const value = metric.value ?? t('common.notAvailable');\n return (\n <MetricCard\n key={metric.id}\n label={resolveLabel(metric.label, tApp)}\n value={value}\n hint={\n metric.meta != null\n ? resolveLabel(metric.meta, tApp)\n : undefined\n }\n />\n );\n })}\n </div>\n );\n }\n\n if (widget.kind === 'quickActions') {\n const title =\n widget.title != null\n ? resolveLabel(widget.title, tApp)\n : t('dashboard.actions.openTool');\n return (\n <InfoTile title={title}>\n <div className={styles.links}>\n {widget.actions.map((action) => {\n return (\n <Link key={action.id} to={action.href}>\n {resolveLabel(action.label, tApp)}\n </Link>\n );\n })}\n </div>\n </InfoTile>\n );\n }\n\n if (widget.kind === 'statusSummary') {\n const resolved = resolveData(globalData) as\n | readonly {\n id: string;\n label: I18nLabel;\n value: string | number | null;\n href?: string;\n }[]\n | null;\n if (resolved == null) {\n return null;\n }\n const title =\n widget.title != null ? resolveLabel(widget.title, tApp) : undefined;\n return (\n <InfoTile title={title}>\n <div className={styles.statusList}>\n {resolved.map((item) => {\n const value = item.value ?? t('common.notAvailable');\n const content = (\n <>\n <span>{resolveLabel(item.label, tApp)}</span>\n <span className={styles.statusValue}>{value}</span>\n </>\n );\n if (item.href != null) {\n return (\n <Link\n key={item.id}\n to={item.href}\n className={styles.statusItem}\n >\n {content}\n </Link>\n );\n }\n return (\n <div key={item.id} className={styles.statusItem}>\n {content}\n </div>\n );\n })}\n </div>\n </InfoTile>\n );\n }\n\n if (widget.kind === 'recentItems') {\n const title =\n widget.title != null\n ? resolveLabel(widget.title, tApp)\n : t('dashboard.title');\n return (\n <InfoTile title={title}>\n <div className={styles.tileBody}>{t('common.notAvailable')}</div>\n </InfoTile>\n );\n }\n\n const entityManifest = entities[widget.entityId];\n if (entityManifest?.kind !== 'list-detail') {\n return null;\n }\n const resolved = resolveData(globalData) as { count: number | null } | null;\n let countLabel: number | string = t('common.notAvailable');\n if (typeof resolved?.count === 'number') {\n countLabel = resolved.count;\n }\n const title = resolveLabel(widget.label, tApp);\n return (\n <InfoTile title={title}>\n <div className={styles.tileBody}>\n <div className={styles.tileCount}>{countLabel}</div>\n <div className={styles.links}>\n <Link to={entityManifest.routes.list}>\n {t('dashboard.actions.openList')}\n </Link>\n </div>\n </div>\n </InfoTile>\n );\n};\n\ntype WidgetWithQueryProps = {\n widget: BackofficeDashboardWidget & { query: GraphQLTaggedNode };\n};\n\nconst WidgetWithQuery = ({ widget }: WidgetWithQueryProps): JSX.Element => {\n const data = useLazyLoadQuery<OperationType>(\n widget.query,\n {},\n {\n fetchPolicy: 'store-or-network',\n },\n );\n\n return <WidgetContent widget={widget} globalData={data} />;\n};\n\ntype DashboardContentProps = {\n config: BackofficeDashboardConfig;\n globalData: unknown;\n};\n\nconst DashboardContent = ({\n config,\n globalData,\n}: DashboardContentProps): JSX.Element => {\n const { t: tApp } = useTranslation();\n const { t } = useBackofficeReactTranslation();\n\n const title = resolveLabel(config.title, tApp);\n const subtitle =\n config.subtitle != null ? resolveLabel(config.subtitle, tApp) : undefined;\n\n return (\n <DetailPageTemplate\n header={{\n title,\n subtitle: subtitle ?? t('dashboard.subtitle'),\n }}\n >\n <div className={styles.tilesGrid}>\n {config.widgets.map((widget) => {\n const content = hasWidgetQuery(widget) ? (\n <WidgetWithQuery widget={widget} />\n ) : (\n <WidgetContent widget={widget} globalData={globalData} />\n );\n\n return (\n <BackofficeErrorBoundary\n key={widget.id}\n fallback={() => {\n return (\n <InfoTile\n title={resolveLabel(getWidgetLabel(widget, config), tApp)}\n >\n <div className={styles.tileBody}>\n {t('common.notAvailable')}\n </div>\n </InfoTile>\n );\n }}\n >\n <Suspense\n fallback={\n <InfoTile\n title={resolveLabel(getWidgetLabel(widget, config), tApp)}\n >\n <div className={styles.tileBody}>{t('common.loading')}</div>\n </InfoTile>\n }\n >\n <div\n className={styles.widget({\n size: resolveWidgetSize(widget.size),\n })}\n >\n {content}\n </div>\n </Suspense>\n </BackofficeErrorBoundary>\n );\n })}\n </div>\n </DetailPageTemplate>\n );\n};\n\ntype DashboardWithQueryProps = {\n config: BackofficeDashboardConfig;\n};\n\nconst DashboardWithQuery = ({\n config,\n}: DashboardWithQueryProps): JSX.Element => {\n const data = useLazyLoadQuery<OperationType>(\n config.query as never,\n {},\n { fetchPolicy: 'store-or-network' },\n );\n\n return <DashboardContent config={config} globalData={data} />;\n};\n\nexport const BackofficeDashboardPage = (): JSX.Element => {\n const { t: tApp } = useTranslation();\n const { t } = useBackofficeReactTranslation();\n const { entities } = useBackofficeConfig();\n const dashboard = useBackofficeDashboardConfig();\n const breadcrumb = buildDashboardBreadcrumb(t);\n\n if (dashboard == null) {\n const items = Object.values(entities)\n .filter((config) => {\n return config.kind === 'list-detail' && config.hasList;\n })\n .map((config) => {\n return {\n config,\n label: resolveLabel(config.label, tApp),\n };\n })\n .sort((left, right) => {\n return left.label.localeCompare(right.label);\n });\n\n return (\n <BackofficeRightPageLayout breadcrumb={breadcrumb}>\n <DetailPageTemplate\n header={{\n title: t('dashboard.title'),\n subtitle: t('dashboard.subtitle'),\n }}\n >\n <div className={styles.tilesGrid}>\n {items.map(({ config, label }) => {\n return (\n <div key={config.id} className={styles.widget({ size: 'm' })}>\n <InfoTile title={label}>\n <div className={styles.tileBody}>\n <div className={styles.tileCount}>\n {t('common.notAvailable')}\n </div>\n <div className={styles.links}>\n <Link to={config.routes.list}>\n {t('dashboard.actions.openList')}\n </Link>\n </div>\n </div>\n </InfoTile>\n </div>\n );\n })}\n </div>\n </DetailPageTemplate>\n </BackofficeRightPageLayout>\n );\n }\n\n if (dashboard.query != null) {\n return (\n <BackofficeRightPageLayout breadcrumb={breadcrumb}>\n <DashboardWithQuery config={dashboard} />\n </BackofficeRightPageLayout>\n );\n }\n\n return (\n <BackofficeRightPageLayout breadcrumb={breadcrumb}>\n <DashboardContent config={dashboard} globalData={null} />\n </BackofficeRightPageLayout>\n );\n};\n\nexport default BackofficeDashboardPage;\n"],"x_google_ignoreList":[1],"mappings":"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"}
@@ -1,94 +0,0 @@
1
- import { t as e } from "./useBackofficeReactTranslation-Btt58EIo.js";
2
- import { useTranslation as t } from "react-i18next";
3
- import { CopyableText as n, LazyMarkdownRenderer as r, Tag as i, cx as a } from "@plumile/ui";
4
- import { jsx as o, jsxs as s } from "react/jsx-runtime";
5
- //#region src/components/backoffice/detail/backofficeDetailBadgeRow.css.ts
6
- var c = "txvbqb9ip txvbqbajy txvbqbao7 txvbqbcp", l = ({ items: e }) => {
7
- let { t: n } = t();
8
- return /* @__PURE__ */ o("div", {
9
- className: c,
10
- children: e.map((e) => {
11
- let t = typeof e.label == "function" ? e.label(n) : e.label;
12
- return /* @__PURE__ */ o(i, {
13
- tone: e.tone ?? "neutral",
14
- children: t
15
- }, e.id);
16
- })
17
- });
18
- }, u = "txvbqb9ip txvbqbai7 txvbqbany txvbqbk5y", d = "txvbqb8p txvbqb66 txvbqbefp txvbqbva1", f = "txvbqb8y txvbqbv9z txvbqbuu7", p = "txvbqbbg7", m = {
19
- xs: "_1vn15b70",
20
- s: "_1vn15b71",
21
- m: "_1vn15b72",
22
- l: "_1vn15b73",
23
- xl: "_1vn15b74",
24
- fluid: "_1vn15b75"
25
- }, h = ({ label: t, size: r, value: i, copyValue: c, fullWidth: l = !1 }) => {
26
- let { t: h } = e(), g = i;
27
- (g == null || typeof g == "string" && g.trim() === "") && (g = h("common.notAvailable")), c != null && c !== "" && (g = /* @__PURE__ */ o(n, {
28
- value: c,
29
- copyValue: c,
30
- truncate: !1,
31
- copyLabel: h("common.actions.copy"),
32
- copiedLabel: h("common.actions.copied")
33
- }));
34
- let _ = [u, m[r]];
35
- return l && _.push(p), /* @__PURE__ */ s("div", {
36
- className: a(..._),
37
- children: [/* @__PURE__ */ o("span", {
38
- className: d,
39
- children: t
40
- }), /* @__PURE__ */ o("div", {
41
- className: f,
42
- children: g
43
- })]
44
- });
45
- }, g = "txvbqb9ip txvbqbai7 txvbqbaop txvbqblby txvbqb1rg txvbqbv41 txvbqb1cp txvbqb1qg txvbqbwp txvbqb8qy", _ = "txvbqb9ip txvbqbai7 txvbqbany", v = "txvbqb97 txvbqbamp txvbqbv9z", y = "txvbqb8y txvbqbva1", b = "txvbqb9iy txvbqbaop txvbqbc0y", x = ({ title: e, description: t, items: n, children: r }) => {
46
- let i = null;
47
- t != null && t !== "" && (i = /* @__PURE__ */ o("p", {
48
- className: y,
49
- children: t
50
- }));
51
- let a = null;
52
- return n != null && n.length > 0 && (a = /* @__PURE__ */ o("div", {
53
- className: b,
54
- children: n.map((e) => /* @__PURE__ */ o(h, { ...e }, e.id))
55
- })), /* @__PURE__ */ s("section", {
56
- className: g,
57
- children: [
58
- /* @__PURE__ */ s("header", {
59
- className: _,
60
- children: [/* @__PURE__ */ o("h3", {
61
- className: v,
62
- children: e
63
- }), i]
64
- }),
65
- a,
66
- r
67
- ]
68
- });
69
- };
70
- //#endregion
71
- //#region src/components/backoffice/detail/detailPayloadUtils.ts
72
- function S(e) {
73
- if (e == null) return "";
74
- try {
75
- return `\`\`\`json\n${JSON.stringify(e, null, 2)}\n\`\`\``;
76
- } catch {
77
- let t = "[unserializable]";
78
- return typeof e == "string" ? t = e : (typeof e == "number" || typeof e == "boolean") && (t = String(e)), `\`\`\`\n${t}\n\`\`\``;
79
- }
80
- }
81
- //#endregion
82
- //#region src/components/backoffice/detail/BackofficeDetailPayload.tsx
83
- var C = ({ title: t, content: n, format: i = "markdown", description: a }) => {
84
- let { t: s } = e(), c = "";
85
- return i === "json" ? c = S(n) : n != null && (c = typeof n == "string" ? n : typeof n == "number" || typeof n == "boolean" ? String(n) : S(n)), c.trim() === "" && (c = s("common.notAvailable")), /* @__PURE__ */ o(x, {
86
- title: t,
87
- description: a,
88
- children: /* @__PURE__ */ o(r, { content: c })
89
- });
90
- };
91
- //#endregion
92
- export { l as a, h as i, S as n, x as r, C as t };
93
-
94
- //# sourceMappingURL=BackofficeDetailPayload-P61MDRLE.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BackofficeDetailPayload-P61MDRLE.js","names":[],"sources":["../../src/components/backoffice/detail/backofficeDetailBadgeRow.css.ts","../../src/components/backoffice/detail/BackofficeDetailBadgeRow.tsx","../../src/components/backoffice/detail/backofficeDetailField.css.ts","../../src/components/backoffice/detail/BackofficeDetailField.tsx","../../src/components/backoffice/detail/backofficeDetailSection.css.ts","../../src/components/backoffice/detail/BackofficeDetailSection.tsx","../../src/components/backoffice/detail/detailPayloadUtils.ts","../../src/components/backoffice/detail/BackofficeDetailPayload.tsx"],"sourcesContent":["import { sprinkles } from '@plumile/ui';\n\nexport const row = sprinkles({\n display: 'flex',\n flexWrap: 'wrap',\n gap: 2,\n alignItems: 'center',\n});\n","/* eslint-disable no-ternary */\nimport { type JSX } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport type { BackofficeBadgeItem } from '@plumile/backoffice-core/types.js';\nimport { Tag } from '@plumile/ui';\n\nimport * as styles from './backofficeDetailBadgeRow.css.js';\n\nexport type BackofficeDetailBadgeRowProps = {\n items: readonly BackofficeBadgeItem[];\n};\n\nexport const BackofficeDetailBadgeRow = ({\n items,\n}: BackofficeDetailBadgeRowProps): JSX.Element => {\n const { t } = useTranslation();\n return (\n <div className={styles.row}>\n {items.map((item) => {\n const label =\n typeof item.label === 'function' ? item.label(t) : item.label;\n return (\n <Tag key={item.id} tone={item.tone ?? 'neutral'}>\n {label}\n </Tag>\n );\n })}\n </div>\n );\n};\n\nexport default BackofficeDetailBadgeRow;\n","import { style } from '@vanilla-extract/css';\nimport { sprinkles } from '@plumile/ui';\n\nexport const field = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n minWidth: 0,\n});\n\nexport const label = sprinkles({\n fontSize: 'xs',\n textTransform: 'uppercase',\n letterSpacing: 'capsTight',\n color: 'textSecondary',\n});\n\nexport const value = sprinkles({\n fontSize: 'sm',\n color: 'text',\n wordBreak: 'break-word',\n});\n\nexport const fullWidth = sprinkles({\n gridColumn: 'span-full',\n});\n\nexport const size = {\n xs: style({ maxWidth: '10ch' }),\n s: style({ maxWidth: '18ch' }),\n m: style({ maxWidth: '28ch' }),\n l: style({ maxWidth: '44ch' }),\n xl: style({ maxWidth: '64ch' }),\n fluid: style({ maxWidth: '100%' }),\n};\n","import { type JSX, type ReactNode } from 'react';\nimport type { BackofficeFieldSize } from '@plumile/backoffice-core/types.js';\n\nimport { CopyableText, cx } from '@plumile/ui';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\n\nimport * as styles from './backofficeDetailField.css.js';\n\nexport type BackofficeDetailFieldProps = {\n id: string;\n label: string;\n size: BackofficeFieldSize;\n value: ReactNode | null | undefined;\n copyValue?: string;\n fullWidth?: boolean;\n};\n\nexport const BackofficeDetailField = ({\n label,\n size,\n value,\n copyValue,\n fullWidth = false,\n}: BackofficeDetailFieldProps): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n let resolvedValue: ReactNode = value;\n if (\n resolvedValue == null ||\n (typeof resolvedValue === 'string' && resolvedValue.trim() === '')\n ) {\n resolvedValue = t('common.notAvailable');\n }\n\n if (copyValue != null && copyValue !== '') {\n resolvedValue = (\n <CopyableText\n value={copyValue}\n copyValue={copyValue}\n truncate={false}\n copyLabel={t('common.actions.copy')}\n copiedLabel={t('common.actions.copied')}\n />\n );\n }\n\n const fieldClassNames = [styles.field, styles.size[size]];\n if (fullWidth) {\n fieldClassNames.push(styles.fullWidth);\n }\n\n return (\n <div className={cx(...fieldClassNames)}>\n <span className={styles.label}>{label}</span>\n <div className={styles.value}>{resolvedValue}</div>\n </div>\n );\n};\n\nexport default BackofficeDetailField;\n","import { sprinkles } from '@plumile/ui';\n\nexport const section = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 4,\n padding: 6,\n borderRadius: 'md',\n backgroundColor: 'surface',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'borderSubtle',\n boxShadow: 'inkSoft',\n});\n\nexport const header = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n});\n\nexport const title = sprinkles({\n fontSize: 'base',\n fontWeight: 'semibold',\n color: 'text',\n});\n\nexport const description = sprinkles({\n fontSize: 'sm',\n color: 'textSecondary',\n});\n\nexport const grid = sprinkles({\n display: 'grid',\n gap: 4,\n gridTemplateColumns: 'autoFitMinmax220',\n});\n","import { type JSX, type ReactNode } from 'react';\n\nimport {\n BackofficeDetailField,\n type BackofficeDetailFieldProps,\n} from './BackofficeDetailField.js';\nimport * as styles from './backofficeDetailSection.css.js';\n\nexport type BackofficeDetailSectionProps = {\n title: string;\n description?: string;\n items?: readonly BackofficeDetailFieldProps[];\n children?: ReactNode;\n};\n\nexport const BackofficeDetailSection = ({\n title,\n description,\n items,\n children,\n}: BackofficeDetailSectionProps): JSX.Element => {\n let descriptionNode: JSX.Element | null = null;\n if (description != null && description !== '') {\n descriptionNode = <p className={styles.description}>{description}</p>;\n }\n\n let itemsNode: JSX.Element | null = null;\n if (items != null && items.length > 0) {\n itemsNode = (\n <div className={styles.grid}>\n {items.map((item) => {\n return <BackofficeDetailField key={item.id} {...item} />;\n })}\n </div>\n );\n }\n\n return (\n <section className={styles.section}>\n <header className={styles.header}>\n <h3 className={styles.title}>{title}</h3>\n {descriptionNode}\n </header>\n {itemsNode}\n {children}\n </section>\n );\n};\n\nexport default BackofficeDetailSection;\n","/**\n * Formats a JSON payload into a fenced Markdown code block.\n */\nexport function formatJsonPayload(value: unknown): string {\n if (value == null) {\n return '';\n }\n try {\n return `\\`\\`\\`json\\n${JSON.stringify(value, null, 2)}\\n\\`\\`\\``;\n } catch {\n let fallback = '[unserializable]';\n if (typeof value === 'string') {\n fallback = value;\n } else if (typeof value === 'number' || typeof value === 'boolean') {\n fallback = String(value);\n }\n return `\\`\\`\\`\\n${fallback}\\n\\`\\`\\``;\n }\n}\n\n/**\n * Formats a list of strings as a Markdown bullet list.\n */\nexport function formatListAsMarkdown(items: readonly string[]): string {\n if (items.length === 0) {\n return '';\n }\n return items\n .map((item) => {\n return `- ${item}`;\n })\n .join('\\n');\n}\n","import { type JSX } from 'react';\n\nimport { LazyMarkdownRenderer } from '@plumile/ui';\n\nimport { useBackofficeReactTranslation } from '../../../i18n/useBackofficeReactTranslation.js';\nimport { BackofficeDetailSection } from './BackofficeDetailSection.js';\nimport { formatJsonPayload } from './detailPayloadUtils.js';\n\nexport type BackofficeDetailPayloadProps = {\n title: string;\n content: unknown;\n format?: 'markdown' | 'json' | 'text';\n description?: string;\n};\n\nexport const BackofficeDetailPayload = ({\n title,\n content,\n format = 'markdown',\n description,\n}: BackofficeDetailPayloadProps): JSX.Element => {\n const { t } = useBackofficeReactTranslation();\n let resolved = '';\n if (format === 'json') {\n resolved = formatJsonPayload(content);\n } else if (content != null) {\n if (typeof content === 'string') {\n resolved = content;\n } else if (typeof content === 'number' || typeof content === 'boolean') {\n resolved = String(content);\n } else {\n resolved = formatJsonPayload(content);\n }\n }\n\n if (resolved.trim() === '') {\n resolved = t('common.notAvailable');\n }\n\n return (\n <BackofficeDetailSection title={title} description={description}>\n <LazyMarkdownRenderer content={resolved} />\n </BackofficeDetailSection>\n );\n};\n\nexport default BackofficeDetailPayload;\n"],"mappings":";;;;;kDCaa,KAA4B,EACvC,eACgD;CAChD,IAAM,EAAE,SAAM,GAAgB;CAC9B,OACE,kBAAC,OAAD;EAAK,WAAW;YACb,EAAM,KAAK,MAAS;GACnB,IAAM,IACJ,OAAO,EAAK,SAAU,aAAa,EAAK,MAAM,EAAE,GAAG,EAAK;GAC1D,OACE,kBAAC,GAAD;IAAmB,MAAM,EAAK,QAAQ;cACnC;IACG,EAFI,EAAK,GAET;IAER;EACE,CAAA;;;;;;;;GEVG,KAAyB,EACpC,OAAA,GACA,MAAA,GACA,OAAA,GACA,cACA,WAAA,IAAY,SACiC;CAC7C,IAAM,EAAE,SAAM,GAA+B,EACzC,IAA2B;CAQ/B,CANE,KAAiB,QAChB,OAAO,KAAkB,YAAY,EAAc,MAAM,KAAK,QAE/D,IAAgB,EAAE,sBAAsB,GAGtC,KAAa,QAAQ,MAAc,OACrC,IACE,kBAAC,GAAD;EACE,OAAO;EACI;EACX,UAAU;EACV,WAAW,EAAE,sBAAsB;EACnC,aAAa,EAAE,wBAAwB;EACvC,CAAA;CAIN,IAAM,IAAkB,CAAC,GAAc,EAAY,GAAM;CAKzD,OAJI,KACF,EAAgB,KAAK,EAAiB,EAItC,kBAAC,OAAD;EAAK,WAAW,EAAG,GAAG,EAAgB;YAAtC,CACE,kBAAC,QAAD;GAAM,WAAW;aAAe;GAAa,CAAA,EAC7C,kBAAC,OAAD;GAAK,WAAW;aAAe;GAAoB,CAAA,CAC/C;;qPExCG,KAA2B,EACtC,OAAA,GACA,aAAA,GACA,UACA,kBAC+C;CAC/C,IAAI,IAAsC;CAC1C,AAAI,KAAe,QAAQ,MAAgB,OACzC,IAAkB,kBAAC,KAAD;EAAG,WAAW;YAAqB;EAAgB,CAAA;CAGvE,IAAI,IAAgC;CAWpC,OAVI,KAAS,QAAQ,EAAM,SAAS,MAClC,IACE,kBAAC,OAAD;EAAK,WAAW;YACb,EAAM,KAAK,MACH,kBAAC,GAAD,EAAqC,GAAI,GAAQ,EAArB,EAAK,GAAgB,CACxD;EACE,CAAA,GAKR,kBAAC,WAAD;EAAS,WAAW;YAApB;GACE,kBAAC,UAAD;IAAQ,WAAW;cAAnB,CACE,kBAAC,MAAD;KAAI,WAAW;eAAe;KAAW,CAAA,EACxC,EACM;;GACR;GACA;GACO;;;;;AC1Cd,SAAgB,EAAkB,GAAwB;CACxD,IAAI,KAAS,MACX,OAAO;CAET,IAAI;EACF,OAAO,eAAe,KAAK,UAAU,GAAO,MAAM,EAAE,CAAC;SAC/C;EACN,IAAI,IAAW;EAMf,OALI,OAAO,KAAU,WACnB,IAAW,KACF,OAAO,KAAU,YAAY,OAAO,KAAU,eACvD,IAAW,OAAO,EAAM,GAEnB,WAAW,EAAS;;;;;ACD/B,IAAa,KAA2B,EACtC,UACA,YACA,YAAS,YACT,qBAC+C;CAC/C,IAAM,EAAE,SAAM,GAA+B,EACzC,IAAW;CAiBf,OAhBI,MAAW,SACb,IAAW,EAAkB,EAAQ,GAC5B,KAAW,SACpB,AAKE,IALE,OAAO,KAAY,WACV,IACF,OAAO,KAAY,YAAY,OAAO,KAAY,YAChD,OAAO,EAAQ,GAEf,EAAkB,EAAQ,GAIrC,EAAS,MAAM,KAAK,OACtB,IAAW,EAAE,sBAAsB,GAInC,kBAAC,GAAD;EAAgC;EAAoB;YAClD,kBAAC,GAAD,EAAsB,SAAS,GAAY,CAAA;EACnB,CAAA"}