@plumile/backoffice-react 0.1.70 → 0.1.72

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 (108) hide show
  1. package/lib/esm/i18n/locales/en/shared.js +0 -6
  2. package/lib/esm/i18n/locales/en/shared.js.map +1 -1
  3. package/lib/esm/i18n/locales/fr/shared.js +0 -6
  4. package/lib/esm/i18n/locales/fr/shared.js.map +1 -1
  5. package/lib/esm/index.js +9 -15
  6. package/lib/esm/provider/BackofficeProvider.js +3 -1
  7. package/lib/esm/provider/BackofficeProvider.js.map +1 -1
  8. package/lib/esm/router/createBackofficeRoutes.js +67 -67
  9. package/lib/esm/router/createBackofficeRoutes.js.map +1 -1
  10. package/lib/esm/style.css +1 -1
  11. package/lib/types/i18n/resources.d.ts +0 -12
  12. package/lib/types/i18n/resources.d.ts.map +1 -1
  13. package/lib/types/index.d.ts +0 -6
  14. package/lib/types/index.d.ts.map +1 -1
  15. package/lib/types/provider/BackofficeProvider.d.ts.map +1 -1
  16. package/lib/types/provider/types.d.ts +2 -1
  17. package/lib/types/provider/types.d.ts.map +1 -1
  18. package/lib/types/router/createBackofficeRoutes.d.ts +1 -1
  19. package/lib/types/router/createBackofficeRoutes.d.ts.map +1 -1
  20. package/package.json +5 -5
  21. package/lib/esm/components/backoffice/tools/BackofficeToolsDocPanel.js +0 -40
  22. package/lib/esm/components/backoffice/tools/BackofficeToolsDocPanel.js.map +0 -1
  23. package/lib/esm/components/backoffice/tools/BackofficeToolsErrorFallback.js +0 -48
  24. package/lib/esm/components/backoffice/tools/BackofficeToolsErrorFallback.js.map +0 -1
  25. package/lib/esm/components/backoffice/tools/BackofficeToolsJsonForm.js +0 -58
  26. package/lib/esm/components/backoffice/tools/BackofficeToolsJsonForm.js.map +0 -1
  27. package/lib/esm/components/backoffice/tools/BackofficeToolsPageLayout.js +0 -81
  28. package/lib/esm/components/backoffice/tools/BackofficeToolsPageLayout.js.map +0 -1
  29. package/lib/esm/components/backoffice/tools/BackofficeToolsParamsContext.js +0 -16
  30. package/lib/esm/components/backoffice/tools/BackofficeToolsParamsContext.js.map +0 -1
  31. package/lib/esm/components/backoffice/tools/BackofficeToolsProjectPicker.js +0 -56
  32. package/lib/esm/components/backoffice/tools/BackofficeToolsProjectPicker.js.map +0 -1
  33. package/lib/esm/components/backoffice/tools/BackofficeToolsQueryBoundary.js +0 -20
  34. package/lib/esm/components/backoffice/tools/BackofficeToolsQueryBoundary.js.map +0 -1
  35. package/lib/esm/components/backoffice/tools/BackofficeToolsScopePicker.js +0 -56
  36. package/lib/esm/components/backoffice/tools/BackofficeToolsScopePicker.js.map +0 -1
  37. package/lib/esm/components/backoffice/tools/backofficeToolsDocPanel.css.js +0 -8
  38. package/lib/esm/components/backoffice/tools/backofficeToolsDocPanel.css.js.map +0 -1
  39. package/lib/esm/components/backoffice/tools/backofficeToolsForm.css.js +0 -8
  40. package/lib/esm/components/backoffice/tools/backofficeToolsForm.css.js.map +0 -1
  41. package/lib/esm/components/backoffice/tools/backofficeToolsJsonForm.css.js +0 -8
  42. package/lib/esm/components/backoffice/tools/backofficeToolsJsonForm.css.js.map +0 -1
  43. package/lib/esm/components/backoffice/tools/backofficeToolsPageLayout.css.js +0 -8
  44. package/lib/esm/components/backoffice/tools/backofficeToolsPageLayout.css.js.map +0 -1
  45. package/lib/esm/components/backoffice/tools/backofficeToolsProjectPicker.css.js +0 -8
  46. package/lib/esm/components/backoffice/tools/backofficeToolsProjectPicker.css.js.map +0 -1
  47. package/lib/esm/components/backoffice/tools/backofficeToolsScopePicker.css.js +0 -8
  48. package/lib/esm/components/backoffice/tools/backofficeToolsScopePicker.css.js.map +0 -1
  49. package/lib/esm/hooks/useBackofficeToolsUrlParams.js +0 -15
  50. package/lib/esm/hooks/useBackofficeToolsUrlParams.js.map +0 -1
  51. package/lib/esm/i18n/useSharedEnumLabels.js +0 -22
  52. package/lib/esm/i18n/useSharedEnumLabels.js.map +0 -1
  53. package/lib/esm/modules/access/viewerPermissionsPolicy.js +0 -17
  54. package/lib/esm/modules/access/viewerPermissionsPolicy.js.map +0 -1
  55. package/lib/esm/modules/billing/usageChartMappers.js +0 -49
  56. package/lib/esm/modules/billing/usageChartMappers.js.map +0 -1
  57. package/lib/esm/modules/merge/taskMergeRun.js +0 -67
  58. package/lib/esm/modules/merge/taskMergeRun.js.map +0 -1
  59. package/lib/esm/modules/projectIngestionStatus.js +0 -25
  60. package/lib/esm/modules/projectIngestionStatus.js.map +0 -1
  61. package/lib/esm/pages/BackofficeToolsOperationPage.js +0 -464
  62. package/lib/esm/pages/BackofficeToolsOperationPage.js.map +0 -1
  63. package/lib/esm/subscriptions/conversationStream.js +0 -38
  64. package/lib/esm/subscriptions/conversationStream.js.map +0 -1
  65. package/lib/types/components/backoffice/tools/BackofficeToolsDocPanel.d.ts +0 -11
  66. package/lib/types/components/backoffice/tools/BackofficeToolsDocPanel.d.ts.map +0 -1
  67. package/lib/types/components/backoffice/tools/BackofficeToolsErrorFallback.d.ts +0 -8
  68. package/lib/types/components/backoffice/tools/BackofficeToolsErrorFallback.d.ts.map +0 -1
  69. package/lib/types/components/backoffice/tools/BackofficeToolsJsonForm.d.ts +0 -15
  70. package/lib/types/components/backoffice/tools/BackofficeToolsJsonForm.d.ts.map +0 -1
  71. package/lib/types/components/backoffice/tools/BackofficeToolsPageLayout.d.ts +0 -13
  72. package/lib/types/components/backoffice/tools/BackofficeToolsPageLayout.d.ts.map +0 -1
  73. package/lib/types/components/backoffice/tools/BackofficeToolsParamsContext.d.ts +0 -14
  74. package/lib/types/components/backoffice/tools/BackofficeToolsParamsContext.d.ts.map +0 -1
  75. package/lib/types/components/backoffice/tools/BackofficeToolsProjectPicker.d.ts +0 -8
  76. package/lib/types/components/backoffice/tools/BackofficeToolsProjectPicker.d.ts.map +0 -1
  77. package/lib/types/components/backoffice/tools/BackofficeToolsQueryBoundary.d.ts +0 -7
  78. package/lib/types/components/backoffice/tools/BackofficeToolsQueryBoundary.d.ts.map +0 -1
  79. package/lib/types/components/backoffice/tools/BackofficeToolsScopePicker.d.ts +0 -8
  80. package/lib/types/components/backoffice/tools/BackofficeToolsScopePicker.d.ts.map +0 -1
  81. package/lib/types/components/backoffice/tools/backofficeToolsDocPanel.css.d.ts +0 -8
  82. package/lib/types/components/backoffice/tools/backofficeToolsDocPanel.css.d.ts.map +0 -1
  83. package/lib/types/components/backoffice/tools/backofficeToolsForm.css.d.ts +0 -6
  84. package/lib/types/components/backoffice/tools/backofficeToolsForm.css.d.ts.map +0 -1
  85. package/lib/types/components/backoffice/tools/backofficeToolsJsonForm.css.d.ts +0 -4
  86. package/lib/types/components/backoffice/tools/backofficeToolsJsonForm.css.d.ts.map +0 -1
  87. package/lib/types/components/backoffice/tools/backofficeToolsPageLayout.css.d.ts +0 -13
  88. package/lib/types/components/backoffice/tools/backofficeToolsPageLayout.css.d.ts.map +0 -1
  89. package/lib/types/components/backoffice/tools/backofficeToolsProjectPicker.css.d.ts +0 -4
  90. package/lib/types/components/backoffice/tools/backofficeToolsProjectPicker.css.d.ts.map +0 -1
  91. package/lib/types/components/backoffice/tools/backofficeToolsScopePicker.css.d.ts +0 -4
  92. package/lib/types/components/backoffice/tools/backofficeToolsScopePicker.css.d.ts.map +0 -1
  93. package/lib/types/hooks/useBackofficeToolsUrlParams.d.ts +0 -8
  94. package/lib/types/hooks/useBackofficeToolsUrlParams.d.ts.map +0 -1
  95. package/lib/types/i18n/useSharedEnumLabels.d.ts +0 -6
  96. package/lib/types/i18n/useSharedEnumLabels.d.ts.map +0 -1
  97. package/lib/types/modules/access/viewerPermissionsPolicy.d.ts +0 -38
  98. package/lib/types/modules/access/viewerPermissionsPolicy.d.ts.map +0 -1
  99. package/lib/types/modules/billing/usageChartMappers.d.ts +0 -26
  100. package/lib/types/modules/billing/usageChartMappers.d.ts.map +0 -1
  101. package/lib/types/modules/merge/taskMergeRun.d.ts +0 -48
  102. package/lib/types/modules/merge/taskMergeRun.d.ts.map +0 -1
  103. package/lib/types/modules/projectIngestionStatus.d.ts +0 -9
  104. package/lib/types/modules/projectIngestionStatus.d.ts.map +0 -1
  105. package/lib/types/pages/BackofficeToolsOperationPage.d.ts +0 -9
  106. package/lib/types/pages/BackofficeToolsOperationPage.d.ts.map +0 -1
  107. package/lib/types/subscriptions/conversationStream.d.ts +0 -12
  108. package/lib/types/subscriptions/conversationStream.d.ts.map +0 -1
@@ -188,12 +188,6 @@ var e = {
188
188
  title: "Verify your email"
189
189
  }
190
190
  },
191
- projectIngestionStatus: {
192
- failed: "Failed",
193
- idle: "Idle",
194
- running: "Running",
195
- unknown: "Unknown"
196
- },
197
191
  review: { status: {
198
192
  approved: "Approved",
199
193
  changesRequested: "Changes requested",
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","names":[],"sources":["../../../../../src/i18n/locales/en/shared.json"],"sourcesContent":["{\n \"auth\": {\n \"acceptInvitation\": {\n \"actions\": {\n \"backToLogin\": \"Back to login\"\n },\n \"errors\": {\n \"alreadyAccepted\": \"This invitation has already been accepted.\",\n \"default\": \"Unable to accept invitation.\",\n \"emailMismatch\": \"This invitation was sent to a different email address.\",\n \"expired\": \"Invitation link has expired.\",\n \"invalidToken\": \"Invitation link is invalid.\",\n \"missingToken\": \"Invitation link is missing or invalid.\",\n \"passwordMismatch\": \"Password and confirmation do not match.\",\n \"passwordPolicyViolation\": \"Your password does not meet policy requirements.\",\n \"rateLimited\": \"Too many attempts. Please try again later.\"\n },\n \"form\": {\n \"confirmLabel\": \"Confirm password\",\n \"confirmPlaceholder\": \"Confirm your password\",\n \"passwordLabel\": \"Password\",\n \"passwordPlaceholder\": \"Create a password\",\n \"submit\": \"Accept invitation\"\n },\n \"mfaSubtitle\": \"Enter the verification code to continue.\",\n \"mfaTitle\": \"Verify your identity\",\n \"status\": {\n \"success\": \"Invitation accepted.\",\n \"workingButton\": \"Working...\"\n },\n \"subtitle\": \"Create your account to join.\",\n \"title\": \"Accept invitation\"\n },\n \"emailCapture\": {\n \"continue\": \"Continue\",\n \"description\": \"Enter your work email to continue.\",\n \"emailLabel\": \"Work email\",\n \"emailPlaceholder\": \"you@company.com\",\n \"forgotPassword\": \"Forgot your password?\"\n },\n \"loginFlow\": {\n \"errors\": {\n \"accountLocked\": \"Too many attempts. Try again later.\",\n \"emailRequired\": \"Enter an email address to continue.\",\n \"invalidCredentials\": \"Email or password is incorrect.\",\n \"invalidEmail\": \"Enter a valid email address.\",\n \"passkeyUnavailable\": \"Passkeys are not available.\",\n \"rateLimited\": \"Too many attempts. Please try again later.\",\n \"tryAgain\": \"Something went wrong. Please try again.\"\n },\n \"methods\": {\n \"title\": \"Choose a sign-in method\"\n },\n \"passkey\": {\n \"description\": \"Use the passkey associated with {{email}}.\",\n \"title\": \"Use a passkey\"\n },\n \"subtitle\": {\n \"default\": \"Choose a sign-in method to continue.\",\n \"mfa\": \"Enter the verification code to continue.\"\n },\n \"title\": {\n \"default\": \"Sign in\",\n \"mfa\": \"Two-factor authentication\"\n }\n },\n \"methodChooser\": {\n \"actions\": {\n \"back\": \"Back\"\n },\n \"locked\": \"Too many attempts. Try again later.\",\n \"lockedWithTime\": \"Too many attempts. Try again at {{time}}.\",\n \"methods\": {\n \"other\": \"{{method}}\",\n \"passkey\": \"Passkey\",\n \"password\": \"Password\"\n },\n \"prompt\": \"Choose how to sign in for <strong>{{email}}</strong>.\"\n },\n \"mfa\": {\n \"actions\": {\n \"back\": \"Back\",\n \"submit\": \"Verify\"\n },\n \"errors\": {\n \"expired\": \"Verification session expired. Please try again.\",\n \"invalidChallenge\": \"Verification session is invalid. Restart the login.\",\n \"invalidCode\": \"Invalid code. Try again.\",\n \"shortCode\": \"Enter the 6-digit code.\",\n \"tooManyAttempts\": \"Too many attempts. Try again later.\",\n \"verificationFailed\": \"Verification failed. Try again.\"\n },\n \"form\": {\n \"label\": \"Verification code\",\n \"placeholder\": \"123456\"\n },\n \"helper\": {\n \"default\": \"Enter the 6-digit code from your authenticator.\",\n \"withEmail\": \"Enter the 6-digit code sent to {{email}}.\"\n }\n },\n \"oidc\": {\n \"buttons\": {\n \"apple\": \"Continue with Apple\",\n \"generic\": \"Continue with single sign-on\",\n \"google\": \"Continue with Google\"\n }\n },\n \"passkey\": {\n \"actions\": {\n \"showMethods\": \"Use another method\",\n \"submit\": \"Continue with passkey\",\n \"submitting\": \"Waiting for passkey...\"\n },\n \"errors\": {\n \"challengeExpired\": \"Passkey request expired. Try again.\",\n \"emailRequired\": \"Enter your email to continue.\",\n \"failed\": \"Passkey sign-in failed.\",\n \"invalidAssertion\": \"Passkey response is invalid. Try again.\",\n \"invalidChallenge\": \"Passkey request is invalid. Try again.\",\n \"invalidEmail\": \"Enter a valid email address.\",\n \"locked\": \"Too many attempts. Try again later.\",\n \"lockedWithTime\": \"Too many attempts. Try again at {{time}}.\",\n \"notAvailable\": \"Passkeys are not available on this device.\",\n \"notFound\": \"No passkey found for this account.\"\n },\n \"form\": {\n \"emailLabel\": \"Email\",\n \"emailPlaceholder\": \"you@company.com\"\n },\n \"helper\": \"Use a passkey instead of your password.\"\n },\n \"passwordLogin\": {\n \"forgotPassword\": \"Forgot your password?\",\n \"title\": \"Sign in\"\n },\n \"passwordResetComplete\": {\n \"errors\": {\n \"invalid\": \"Reset link is invalid or expired.\",\n \"minLength\": \"Password must be at least {{minLength}} characters.\",\n \"mismatch\": \"Passwords do not match.\",\n \"missingToken\": \"Reset link is missing or invalid.\"\n },\n \"form\": {\n \"confirmLabel\": \"Confirm password\",\n \"confirmPlaceholder\": \"Re-enter your password\",\n \"description\": \"Enter a new password for your account.\",\n \"passwordLabel\": \"Password\",\n \"passwordPlaceholder\": \"Enter a new password\",\n \"submit\": \"Update password\",\n \"title\": \"New password\"\n },\n \"subtitle\": \"Choose a strong password to secure your account.\",\n \"success\": {\n \"action\": \"Back to login\",\n \"description\": \"Your password has been changed.\",\n \"helper\": \"You can now sign in with your new password.\",\n \"title\": \"Password updated\"\n },\n \"title\": \"Set a new password\"\n },\n \"passwordResetRequest\": {\n \"errors\": {\n \"emailRequired\": \"Enter an email address.\",\n \"startFailed\": \"Unable to start password reset.\"\n },\n \"form\": {\n \"description\": \"Enter the email for your account.\",\n \"emailLabel\": \"Email\",\n \"emailPlaceholder\": \"you@company.com\",\n \"submit\": \"Send reset link\"\n },\n \"sent\": {\n \"action\": \"Send another email\",\n \"description\": \"We sent a reset link to {{email}}.\",\n \"helper\": \"If you don't see it, check spam or try again.\",\n \"title\": \"Check your email\"\n },\n \"title\": \"Reset your password\"\n },\n \"verifyEmail\": {\n \"actions\": {\n \"continue\": \"Continue\",\n \"return\": \"Back to login\"\n },\n \"errors\": {\n \"invalid\": \"Verification link is invalid or expired.\",\n \"missingToken\": \"Verification link is missing or invalid.\"\n },\n \"status\": {\n \"success\": \"Email verified. You can continue.\",\n \"verifying\": \"Verifying...\",\n \"verifyingButton\": \"Verifying\"\n },\n \"subtitle\": \"Confirm your email address to continue.\",\n \"title\": \"Verify your email\"\n }\n },\n \"projectIngestionStatus\": {\n \"failed\": \"Failed\",\n \"idle\": \"Idle\",\n \"running\": \"Running\",\n \"unknown\": \"Unknown\"\n },\n \"review\": {\n \"status\": {\n \"approved\": \"Approved\",\n \"changesRequested\": \"Changes requested\",\n \"pending\": \"Pending\",\n \"unknown\": \"Unknown\"\n }\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"shared.js","names":[],"sources":["../../../../../src/i18n/locales/en/shared.json"],"sourcesContent":["{\n \"auth\": {\n \"acceptInvitation\": {\n \"actions\": {\n \"backToLogin\": \"Back to login\"\n },\n \"errors\": {\n \"alreadyAccepted\": \"This invitation has already been accepted.\",\n \"default\": \"Unable to accept invitation.\",\n \"emailMismatch\": \"This invitation was sent to a different email address.\",\n \"expired\": \"Invitation link has expired.\",\n \"invalidToken\": \"Invitation link is invalid.\",\n \"missingToken\": \"Invitation link is missing or invalid.\",\n \"passwordMismatch\": \"Password and confirmation do not match.\",\n \"passwordPolicyViolation\": \"Your password does not meet policy requirements.\",\n \"rateLimited\": \"Too many attempts. Please try again later.\"\n },\n \"form\": {\n \"confirmLabel\": \"Confirm password\",\n \"confirmPlaceholder\": \"Confirm your password\",\n \"passwordLabel\": \"Password\",\n \"passwordPlaceholder\": \"Create a password\",\n \"submit\": \"Accept invitation\"\n },\n \"mfaSubtitle\": \"Enter the verification code to continue.\",\n \"mfaTitle\": \"Verify your identity\",\n \"status\": {\n \"success\": \"Invitation accepted.\",\n \"workingButton\": \"Working...\"\n },\n \"subtitle\": \"Create your account to join.\",\n \"title\": \"Accept invitation\"\n },\n \"emailCapture\": {\n \"continue\": \"Continue\",\n \"description\": \"Enter your work email to continue.\",\n \"emailLabel\": \"Work email\",\n \"emailPlaceholder\": \"you@company.com\",\n \"forgotPassword\": \"Forgot your password?\"\n },\n \"loginFlow\": {\n \"errors\": {\n \"accountLocked\": \"Too many attempts. Try again later.\",\n \"emailRequired\": \"Enter an email address to continue.\",\n \"invalidCredentials\": \"Email or password is incorrect.\",\n \"invalidEmail\": \"Enter a valid email address.\",\n \"passkeyUnavailable\": \"Passkeys are not available.\",\n \"rateLimited\": \"Too many attempts. Please try again later.\",\n \"tryAgain\": \"Something went wrong. Please try again.\"\n },\n \"methods\": {\n \"title\": \"Choose a sign-in method\"\n },\n \"passkey\": {\n \"description\": \"Use the passkey associated with {{email}}.\",\n \"title\": \"Use a passkey\"\n },\n \"subtitle\": {\n \"default\": \"Choose a sign-in method to continue.\",\n \"mfa\": \"Enter the verification code to continue.\"\n },\n \"title\": {\n \"default\": \"Sign in\",\n \"mfa\": \"Two-factor authentication\"\n }\n },\n \"methodChooser\": {\n \"actions\": {\n \"back\": \"Back\"\n },\n \"locked\": \"Too many attempts. Try again later.\",\n \"lockedWithTime\": \"Too many attempts. Try again at {{time}}.\",\n \"methods\": {\n \"other\": \"{{method}}\",\n \"passkey\": \"Passkey\",\n \"password\": \"Password\"\n },\n \"prompt\": \"Choose how to sign in for <strong>{{email}}</strong>.\"\n },\n \"mfa\": {\n \"actions\": {\n \"back\": \"Back\",\n \"submit\": \"Verify\"\n },\n \"errors\": {\n \"expired\": \"Verification session expired. Please try again.\",\n \"invalidChallenge\": \"Verification session is invalid. Restart the login.\",\n \"invalidCode\": \"Invalid code. Try again.\",\n \"shortCode\": \"Enter the 6-digit code.\",\n \"tooManyAttempts\": \"Too many attempts. Try again later.\",\n \"verificationFailed\": \"Verification failed. Try again.\"\n },\n \"form\": {\n \"label\": \"Verification code\",\n \"placeholder\": \"123456\"\n },\n \"helper\": {\n \"default\": \"Enter the 6-digit code from your authenticator.\",\n \"withEmail\": \"Enter the 6-digit code sent to {{email}}.\"\n }\n },\n \"oidc\": {\n \"buttons\": {\n \"apple\": \"Continue with Apple\",\n \"generic\": \"Continue with single sign-on\",\n \"google\": \"Continue with Google\"\n }\n },\n \"passkey\": {\n \"actions\": {\n \"showMethods\": \"Use another method\",\n \"submit\": \"Continue with passkey\",\n \"submitting\": \"Waiting for passkey...\"\n },\n \"errors\": {\n \"challengeExpired\": \"Passkey request expired. Try again.\",\n \"emailRequired\": \"Enter your email to continue.\",\n \"failed\": \"Passkey sign-in failed.\",\n \"invalidAssertion\": \"Passkey response is invalid. Try again.\",\n \"invalidChallenge\": \"Passkey request is invalid. Try again.\",\n \"invalidEmail\": \"Enter a valid email address.\",\n \"locked\": \"Too many attempts. Try again later.\",\n \"lockedWithTime\": \"Too many attempts. Try again at {{time}}.\",\n \"notAvailable\": \"Passkeys are not available on this device.\",\n \"notFound\": \"No passkey found for this account.\"\n },\n \"form\": {\n \"emailLabel\": \"Email\",\n \"emailPlaceholder\": \"you@company.com\"\n },\n \"helper\": \"Use a passkey instead of your password.\"\n },\n \"passwordLogin\": {\n \"forgotPassword\": \"Forgot your password?\",\n \"title\": \"Sign in\"\n },\n \"passwordResetComplete\": {\n \"errors\": {\n \"invalid\": \"Reset link is invalid or expired.\",\n \"minLength\": \"Password must be at least {{minLength}} characters.\",\n \"mismatch\": \"Passwords do not match.\",\n \"missingToken\": \"Reset link is missing or invalid.\"\n },\n \"form\": {\n \"confirmLabel\": \"Confirm password\",\n \"confirmPlaceholder\": \"Re-enter your password\",\n \"description\": \"Enter a new password for your account.\",\n \"passwordLabel\": \"Password\",\n \"passwordPlaceholder\": \"Enter a new password\",\n \"submit\": \"Update password\",\n \"title\": \"New password\"\n },\n \"subtitle\": \"Choose a strong password to secure your account.\",\n \"success\": {\n \"action\": \"Back to login\",\n \"description\": \"Your password has been changed.\",\n \"helper\": \"You can now sign in with your new password.\",\n \"title\": \"Password updated\"\n },\n \"title\": \"Set a new password\"\n },\n \"passwordResetRequest\": {\n \"errors\": {\n \"emailRequired\": \"Enter an email address.\",\n \"startFailed\": \"Unable to start password reset.\"\n },\n \"form\": {\n \"description\": \"Enter the email for your account.\",\n \"emailLabel\": \"Email\",\n \"emailPlaceholder\": \"you@company.com\",\n \"submit\": \"Send reset link\"\n },\n \"sent\": {\n \"action\": \"Send another email\",\n \"description\": \"We sent a reset link to {{email}}.\",\n \"helper\": \"If you don't see it, check spam or try again.\",\n \"title\": \"Check your email\"\n },\n \"title\": \"Reset your password\"\n },\n \"verifyEmail\": {\n \"actions\": {\n \"continue\": \"Continue\",\n \"return\": \"Back to login\"\n },\n \"errors\": {\n \"invalid\": \"Verification link is invalid or expired.\",\n \"missingToken\": \"Verification link is missing or invalid.\"\n },\n \"status\": {\n \"success\": \"Email verified. You can continue.\",\n \"verifying\": \"Verifying...\",\n \"verifyingButton\": \"Verifying\"\n },\n \"subtitle\": \"Confirm your email address to continue.\",\n \"title\": \"Verify your email\"\n }\n },\n \"review\": {\n \"status\": {\n \"approved\": \"Approved\",\n \"changesRequested\": \"Changes requested\",\n \"pending\": \"Pending\",\n \"unknown\": \"Unknown\"\n }\n }\n}\n"],"mappings":""}
@@ -188,12 +188,6 @@ var e = {
188
188
  title: "Vérifier votre email"
189
189
  }
190
190
  },
191
- projectIngestionStatus: {
192
- failed: "Échec",
193
- idle: "Inactif",
194
- running: "En cours",
195
- unknown: "Inconnu"
196
- },
197
191
  review: { status: {
198
192
  approved: "Approuvé",
199
193
  changesRequested: "Modifications demandées",
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","names":[],"sources":["../../../../../src/i18n/locales/fr/shared.json"],"sourcesContent":["{\n \"auth\": {\n \"acceptInvitation\": {\n \"actions\": {\n \"backToLogin\": \"Retour à la connexion\"\n },\n \"errors\": {\n \"alreadyAccepted\": \"Cette invitation a déjà été acceptée.\",\n \"default\": \"Impossible d'accepter l'invitation.\",\n \"emailMismatch\": \"Cette invitation a été envoyée à une autre adresse email.\",\n \"expired\": \"Le lien d'invitation a expiré.\",\n \"invalidToken\": \"Le lien d'invitation est invalide.\",\n \"missingToken\": \"Le lien d'invitation est manquant ou invalide.\",\n \"passwordMismatch\": \"Le mot de passe et sa confirmation ne correspondent pas.\",\n \"passwordPolicyViolation\": \"Votre mot de passe ne respecte pas la politique de sécurité.\",\n \"rateLimited\": \"Trop de tentatives. Veuillez réessayer plus tard.\"\n },\n \"form\": {\n \"confirmLabel\": \"Confirmer le mot de passe\",\n \"confirmPlaceholder\": \"Confirmez votre mot de passe\",\n \"passwordLabel\": \"Mot de passe\",\n \"passwordPlaceholder\": \"Créez un mot de passe\",\n \"submit\": \"Accepter l'invitation\"\n },\n \"mfaSubtitle\": \"Entrez le code de vérification pour continuer.\",\n \"mfaTitle\": \"Vérifiez votre identité\",\n \"status\": {\n \"success\": \"Invitation acceptée.\",\n \"workingButton\": \"Traitement...\"\n },\n \"subtitle\": \"Créez votre compte pour rejoindre.\",\n \"title\": \"Accepter l'invitation\"\n },\n \"emailCapture\": {\n \"continue\": \"Continuer\",\n \"description\": \"Entrez votre email professionnel pour continuer.\",\n \"emailLabel\": \"Email professionnel\",\n \"emailPlaceholder\": \"vous@entreprise.com\",\n \"forgotPassword\": \"Mot de passe oublié ?\"\n },\n \"loginFlow\": {\n \"errors\": {\n \"accountLocked\": \"Trop de tentatives. Veuillez réessayer plus tard.\",\n \"emailRequired\": \"Entrez une adresse email pour continuer.\",\n \"invalidCredentials\": \"Email ou mot de passe incorrect.\",\n \"invalidEmail\": \"Entrez une adresse email valide.\",\n \"passkeyUnavailable\": \"Les passkeys ne sont pas disponibles.\",\n \"rateLimited\": \"Trop de tentatives. Veuillez réessayer plus tard.\",\n \"tryAgain\": \"Une erreur est survenue. Veuillez réessayer.\"\n },\n \"methods\": {\n \"title\": \"Choisissez une méthode de connexion\"\n },\n \"passkey\": {\n \"description\": \"Utilisez la passkey associée à {{email}}.\",\n \"title\": \"Utiliser une passkey\"\n },\n \"subtitle\": {\n \"default\": \"Choisissez une méthode de connexion pour continuer.\",\n \"mfa\": \"Entrez le code de vérification pour continuer.\"\n },\n \"title\": {\n \"default\": \"Se connecter\",\n \"mfa\": \"Authentification à deux facteurs\"\n }\n },\n \"methodChooser\": {\n \"actions\": {\n \"back\": \"Retour\"\n },\n \"locked\": \"Trop de tentatives. Veuillez réessayer plus tard.\",\n \"lockedWithTime\": \"Trop de tentatives. Veuillez réessayer à {{time}}.\",\n \"methods\": {\n \"other\": \"{{method}}\",\n \"passkey\": \"Passkey\",\n \"password\": \"Mot de passe\"\n },\n \"prompt\": \"Choisissez comment vous connecter pour <strong>{{email}}</strong>.\"\n },\n \"mfa\": {\n \"actions\": {\n \"back\": \"Retour\",\n \"submit\": \"Vérifier\"\n },\n \"errors\": {\n \"expired\": \"La session de vérification a expiré. Réessayez.\",\n \"invalidChallenge\": \"La session de vérification est invalide. Reprenez la connexion.\",\n \"invalidCode\": \"Code invalide. Réessayez.\",\n \"shortCode\": \"Entrez le code à 6 chiffres.\",\n \"tooManyAttempts\": \"Trop de tentatives. Veuillez réessayer plus tard.\",\n \"verificationFailed\": \"La vérification a échoué. Réessayez.\"\n },\n \"form\": {\n \"label\": \"Code de vérification\",\n \"placeholder\": \"123456\"\n },\n \"helper\": {\n \"default\": \"Entrez le code à 6 chiffres de votre authentificateur.\",\n \"withEmail\": \"Entrez le code à 6 chiffres envoyé à {{email}}.\"\n }\n },\n \"oidc\": {\n \"buttons\": {\n \"apple\": \"Continuer avec Apple\",\n \"generic\": \"Continuer avec un SSO\",\n \"google\": \"Continuer avec Google\"\n }\n },\n \"passkey\": {\n \"actions\": {\n \"showMethods\": \"Utiliser une autre méthode\",\n \"submit\": \"Continuer avec la passkey\",\n \"submitting\": \"En attente de la passkey...\"\n },\n \"errors\": {\n \"challengeExpired\": \"La demande de passkey a expiré. Réessayez.\",\n \"emailRequired\": \"Entrez votre email pour continuer.\",\n \"failed\": \"Échec de la connexion par passkey.\",\n \"invalidAssertion\": \"La réponse de passkey est invalide. Réessayez.\",\n \"invalidChallenge\": \"La demande de passkey est invalide. Réessayez.\",\n \"invalidEmail\": \"Entrez une adresse email valide.\",\n \"locked\": \"Trop de tentatives. Veuillez réessayer plus tard.\",\n \"lockedWithTime\": \"Trop de tentatives. Veuillez réessayer à {{time}}.\",\n \"notAvailable\": \"Les passkeys ne sont pas disponibles sur cet appareil.\",\n \"notFound\": \"Aucune passkey n'est associée à ce compte.\"\n },\n \"form\": {\n \"emailLabel\": \"Email\",\n \"emailPlaceholder\": \"vous@entreprise.com\"\n },\n \"helper\": \"Utilisez une passkey à la place de votre mot de passe.\"\n },\n \"passwordLogin\": {\n \"forgotPassword\": \"Mot de passe oublié ?\",\n \"title\": \"Se connecter\"\n },\n \"passwordResetComplete\": {\n \"errors\": {\n \"invalid\": \"Le lien de réinitialisation est invalide ou expiré.\",\n \"minLength\": \"Le mot de passe doit contenir au moins {{minLength}} caractères.\",\n \"mismatch\": \"Les mots de passe ne correspondent pas.\",\n \"missingToken\": \"Le lien de réinitialisation est manquant ou invalide.\"\n },\n \"form\": {\n \"confirmLabel\": \"Confirmer le mot de passe\",\n \"confirmPlaceholder\": \"Saisissez à nouveau votre mot de passe\",\n \"description\": \"Entrez un nouveau mot de passe pour votre compte.\",\n \"passwordLabel\": \"Mot de passe\",\n \"passwordPlaceholder\": \"Entrez un nouveau mot de passe\",\n \"submit\": \"Mettre à jour le mot de passe\",\n \"title\": \"Nouveau mot de passe\"\n },\n \"subtitle\": \"Choisissez un mot de passe robuste pour sécuriser votre compte.\",\n \"success\": {\n \"action\": \"Retour à la connexion\",\n \"description\": \"Votre mot de passe a été modifié.\",\n \"helper\": \"Vous pouvez maintenant vous connecter avec votre nouveau mot de passe.\",\n \"title\": \"Mot de passe mis à jour\"\n },\n \"title\": \"Définir un nouveau mot de passe\"\n },\n \"passwordResetRequest\": {\n \"errors\": {\n \"emailRequired\": \"Entrez une adresse email.\",\n \"startFailed\": \"Impossible de démarrer la réinitialisation.\"\n },\n \"form\": {\n \"description\": \"Entrez l'email de votre compte.\",\n \"emailLabel\": \"Email\",\n \"emailPlaceholder\": \"vous@entreprise.com\",\n \"submit\": \"Envoyer le lien de réinitialisation\"\n },\n \"sent\": {\n \"action\": \"Envoyer un autre email\",\n \"description\": \"Nous avons envoyé un lien de réinitialisation à {{email}}.\",\n \"helper\": \"Si vous ne le voyez pas, vérifiez les spams ou réessayez.\",\n \"title\": \"Vérifiez votre email\"\n },\n \"title\": \"Réinitialiser votre mot de passe\"\n },\n \"verifyEmail\": {\n \"actions\": {\n \"continue\": \"Continuer\",\n \"return\": \"Retour à la connexion\"\n },\n \"errors\": {\n \"invalid\": \"Le lien de vérification est invalide ou expiré.\",\n \"missingToken\": \"Le lien de vérification est manquant ou invalide.\"\n },\n \"status\": {\n \"success\": \"Email vérifié. Vous pouvez continuer.\",\n \"verifying\": \"Vérification...\",\n \"verifyingButton\": \"Vérification\"\n },\n \"subtitle\": \"Confirmez votre adresse email pour continuer.\",\n \"title\": \"Vérifier votre email\"\n }\n },\n \"projectIngestionStatus\": {\n \"failed\": \"Échec\",\n \"idle\": \"Inactif\",\n \"running\": \"En cours\",\n \"unknown\": \"Inconnu\"\n },\n \"review\": {\n \"status\": {\n \"approved\": \"Approuvé\",\n \"changesRequested\": \"Modifications demandées\",\n \"pending\": \"En attente\",\n \"unknown\": \"Inconnu\"\n }\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"shared.js","names":[],"sources":["../../../../../src/i18n/locales/fr/shared.json"],"sourcesContent":["{\n \"auth\": {\n \"acceptInvitation\": {\n \"actions\": {\n \"backToLogin\": \"Retour à la connexion\"\n },\n \"errors\": {\n \"alreadyAccepted\": \"Cette invitation a déjà été acceptée.\",\n \"default\": \"Impossible d'accepter l'invitation.\",\n \"emailMismatch\": \"Cette invitation a été envoyée à une autre adresse email.\",\n \"expired\": \"Le lien d'invitation a expiré.\",\n \"invalidToken\": \"Le lien d'invitation est invalide.\",\n \"missingToken\": \"Le lien d'invitation est manquant ou invalide.\",\n \"passwordMismatch\": \"Le mot de passe et sa confirmation ne correspondent pas.\",\n \"passwordPolicyViolation\": \"Votre mot de passe ne respecte pas la politique de sécurité.\",\n \"rateLimited\": \"Trop de tentatives. Veuillez réessayer plus tard.\"\n },\n \"form\": {\n \"confirmLabel\": \"Confirmer le mot de passe\",\n \"confirmPlaceholder\": \"Confirmez votre mot de passe\",\n \"passwordLabel\": \"Mot de passe\",\n \"passwordPlaceholder\": \"Créez un mot de passe\",\n \"submit\": \"Accepter l'invitation\"\n },\n \"mfaSubtitle\": \"Entrez le code de vérification pour continuer.\",\n \"mfaTitle\": \"Vérifiez votre identité\",\n \"status\": {\n \"success\": \"Invitation acceptée.\",\n \"workingButton\": \"Traitement...\"\n },\n \"subtitle\": \"Créez votre compte pour rejoindre.\",\n \"title\": \"Accepter l'invitation\"\n },\n \"emailCapture\": {\n \"continue\": \"Continuer\",\n \"description\": \"Entrez votre email professionnel pour continuer.\",\n \"emailLabel\": \"Email professionnel\",\n \"emailPlaceholder\": \"vous@entreprise.com\",\n \"forgotPassword\": \"Mot de passe oublié ?\"\n },\n \"loginFlow\": {\n \"errors\": {\n \"accountLocked\": \"Trop de tentatives. Veuillez réessayer plus tard.\",\n \"emailRequired\": \"Entrez une adresse email pour continuer.\",\n \"invalidCredentials\": \"Email ou mot de passe incorrect.\",\n \"invalidEmail\": \"Entrez une adresse email valide.\",\n \"passkeyUnavailable\": \"Les passkeys ne sont pas disponibles.\",\n \"rateLimited\": \"Trop de tentatives. Veuillez réessayer plus tard.\",\n \"tryAgain\": \"Une erreur est survenue. Veuillez réessayer.\"\n },\n \"methods\": {\n \"title\": \"Choisissez une méthode de connexion\"\n },\n \"passkey\": {\n \"description\": \"Utilisez la passkey associée à {{email}}.\",\n \"title\": \"Utiliser une passkey\"\n },\n \"subtitle\": {\n \"default\": \"Choisissez une méthode de connexion pour continuer.\",\n \"mfa\": \"Entrez le code de vérification pour continuer.\"\n },\n \"title\": {\n \"default\": \"Se connecter\",\n \"mfa\": \"Authentification à deux facteurs\"\n }\n },\n \"methodChooser\": {\n \"actions\": {\n \"back\": \"Retour\"\n },\n \"locked\": \"Trop de tentatives. Veuillez réessayer plus tard.\",\n \"lockedWithTime\": \"Trop de tentatives. Veuillez réessayer à {{time}}.\",\n \"methods\": {\n \"other\": \"{{method}}\",\n \"passkey\": \"Passkey\",\n \"password\": \"Mot de passe\"\n },\n \"prompt\": \"Choisissez comment vous connecter pour <strong>{{email}}</strong>.\"\n },\n \"mfa\": {\n \"actions\": {\n \"back\": \"Retour\",\n \"submit\": \"Vérifier\"\n },\n \"errors\": {\n \"expired\": \"La session de vérification a expiré. Réessayez.\",\n \"invalidChallenge\": \"La session de vérification est invalide. Reprenez la connexion.\",\n \"invalidCode\": \"Code invalide. Réessayez.\",\n \"shortCode\": \"Entrez le code à 6 chiffres.\",\n \"tooManyAttempts\": \"Trop de tentatives. Veuillez réessayer plus tard.\",\n \"verificationFailed\": \"La vérification a échoué. Réessayez.\"\n },\n \"form\": {\n \"label\": \"Code de vérification\",\n \"placeholder\": \"123456\"\n },\n \"helper\": {\n \"default\": \"Entrez le code à 6 chiffres de votre authentificateur.\",\n \"withEmail\": \"Entrez le code à 6 chiffres envoyé à {{email}}.\"\n }\n },\n \"oidc\": {\n \"buttons\": {\n \"apple\": \"Continuer avec Apple\",\n \"generic\": \"Continuer avec un SSO\",\n \"google\": \"Continuer avec Google\"\n }\n },\n \"passkey\": {\n \"actions\": {\n \"showMethods\": \"Utiliser une autre méthode\",\n \"submit\": \"Continuer avec la passkey\",\n \"submitting\": \"En attente de la passkey...\"\n },\n \"errors\": {\n \"challengeExpired\": \"La demande de passkey a expiré. Réessayez.\",\n \"emailRequired\": \"Entrez votre email pour continuer.\",\n \"failed\": \"Échec de la connexion par passkey.\",\n \"invalidAssertion\": \"La réponse de passkey est invalide. Réessayez.\",\n \"invalidChallenge\": \"La demande de passkey est invalide. Réessayez.\",\n \"invalidEmail\": \"Entrez une adresse email valide.\",\n \"locked\": \"Trop de tentatives. Veuillez réessayer plus tard.\",\n \"lockedWithTime\": \"Trop de tentatives. Veuillez réessayer à {{time}}.\",\n \"notAvailable\": \"Les passkeys ne sont pas disponibles sur cet appareil.\",\n \"notFound\": \"Aucune passkey n'est associée à ce compte.\"\n },\n \"form\": {\n \"emailLabel\": \"Email\",\n \"emailPlaceholder\": \"vous@entreprise.com\"\n },\n \"helper\": \"Utilisez une passkey à la place de votre mot de passe.\"\n },\n \"passwordLogin\": {\n \"forgotPassword\": \"Mot de passe oublié ?\",\n \"title\": \"Se connecter\"\n },\n \"passwordResetComplete\": {\n \"errors\": {\n \"invalid\": \"Le lien de réinitialisation est invalide ou expiré.\",\n \"minLength\": \"Le mot de passe doit contenir au moins {{minLength}} caractères.\",\n \"mismatch\": \"Les mots de passe ne correspondent pas.\",\n \"missingToken\": \"Le lien de réinitialisation est manquant ou invalide.\"\n },\n \"form\": {\n \"confirmLabel\": \"Confirmer le mot de passe\",\n \"confirmPlaceholder\": \"Saisissez à nouveau votre mot de passe\",\n \"description\": \"Entrez un nouveau mot de passe pour votre compte.\",\n \"passwordLabel\": \"Mot de passe\",\n \"passwordPlaceholder\": \"Entrez un nouveau mot de passe\",\n \"submit\": \"Mettre à jour le mot de passe\",\n \"title\": \"Nouveau mot de passe\"\n },\n \"subtitle\": \"Choisissez un mot de passe robuste pour sécuriser votre compte.\",\n \"success\": {\n \"action\": \"Retour à la connexion\",\n \"description\": \"Votre mot de passe a été modifié.\",\n \"helper\": \"Vous pouvez maintenant vous connecter avec votre nouveau mot de passe.\",\n \"title\": \"Mot de passe mis à jour\"\n },\n \"title\": \"Définir un nouveau mot de passe\"\n },\n \"passwordResetRequest\": {\n \"errors\": {\n \"emailRequired\": \"Entrez une adresse email.\",\n \"startFailed\": \"Impossible de démarrer la réinitialisation.\"\n },\n \"form\": {\n \"description\": \"Entrez l'email de votre compte.\",\n \"emailLabel\": \"Email\",\n \"emailPlaceholder\": \"vous@entreprise.com\",\n \"submit\": \"Envoyer le lien de réinitialisation\"\n },\n \"sent\": {\n \"action\": \"Envoyer un autre email\",\n \"description\": \"Nous avons envoyé un lien de réinitialisation à {{email}}.\",\n \"helper\": \"Si vous ne le voyez pas, vérifiez les spams ou réessayez.\",\n \"title\": \"Vérifiez votre email\"\n },\n \"title\": \"Réinitialiser votre mot de passe\"\n },\n \"verifyEmail\": {\n \"actions\": {\n \"continue\": \"Continuer\",\n \"return\": \"Retour à la connexion\"\n },\n \"errors\": {\n \"invalid\": \"Le lien de vérification est invalide ou expiré.\",\n \"missingToken\": \"Le lien de vérification est manquant ou invalide.\"\n },\n \"status\": {\n \"success\": \"Email vérifié. Vous pouvez continuer.\",\n \"verifying\": \"Vérification...\",\n \"verifyingButton\": \"Vérification\"\n },\n \"subtitle\": \"Confirmez votre adresse email pour continuer.\",\n \"title\": \"Vérifier votre email\"\n }\n },\n \"review\": {\n \"status\": {\n \"approved\": \"Approuvé\",\n \"changesRequested\": \"Modifications demandées\",\n \"pending\": \"En attente\",\n \"unknown\": \"Inconnu\"\n }\n }\n}\n"],"mappings":""}
package/lib/esm/index.js CHANGED
@@ -26,18 +26,12 @@ import { useRefetchNeededReload as N } from "./hooks/useRefetchNeededReload.js";
26
26
  import { createI18nInstance as P } from "./i18n/createI18nInstance.js";
27
27
  import { backofficeReactI18nResources as F } from "./i18n/resources.js";
28
28
  import { useReviewStatusLabel as I } from "./i18n/useReviewStatusLabel.js";
29
- import { useSharedEnumLabels as L } from "./i18n/useSharedEnumLabels.js";
30
- import { RelayProvider as R } from "./relay/RelayProvider.js";
31
- import { BackofficeProvider as z } from "./provider/BackofficeProvider.js";
32
- import { createBackofficeLazyValue as B } from "./provider/lazyValue.js";
33
- import { AccessReason as V, canAssignGroupRoles as H, canAssignOrganizationRoles as U, canCreateProject as W, canEditTaskByPermission as G, canLaunchInitiativeTechAgent as K, canLaunchProjectTechAgent as q, canLaunchTaskDevAgent as J, canLaunchTaskReviewAgent as Y, canManageBilling as X, canManageGroupInitiatives as Z, canManageGroups as Q, canManageProject as $, canRunGroupTechAgents as ee, canRunOrganizationTechAgents as te, canStartProjectDigestAgent as ne, canViewBilling as re, decideConnectorAccess as ie } from "./modules/access/viewerPermissionsPolicy.js";
34
- import { DEFAULT_BILLING_USAGE_CHART_CATEGORIES as ae, DEFAULT_BILLING_USAGE_CHART_CATEGORY_COLORS as oe, toBillingUsageChartSeries as se } from "./modules/billing/usageChartMappers.js";
35
- import { decodeBase64ToUtf8 as ce, encodeUtf8ToBase64 as le } from "./modules/base64.js";
36
- import { formatFileSize as ue } from "./modules/formatFileSize.js";
37
- import { createMergeRunViewModel as de, formatMergeBlockReasonCode as fe, getMergeRunStatusTone as pe, getMergeRunTone as me } from "./modules/merge/taskMergeRun.js";
38
- import { getProjectIngestionStatusMeta as he } from "./modules/projectIngestionStatus.js";
39
- import { resolveVisibleDetailPages as ge } from "./pages/detail/pageResolution.js";
40
- import { createInlineDataReader as _e } from "./relay/createInlineReader.js";
41
- import { identityView as ve } from "./relay/identityView.js";
42
- import { createConversationStreamUpdater as ye } from "./subscriptions/conversationStream.js";
43
- export { n as AcceptInvitationScreen, V as AccessReason, p as BackofficeDetailBadgeRow, h as BackofficeDetailPayload, m as BackofficeDetailSection, f as BackofficeErrorBoundary, g as BackofficeFilterAction, v as BackofficeInlineFilterRow, _ as BackofficeOverviewLayout, z as BackofficeProvider, y as BackofficeRelatedCountLink, b as BackofficeTabbedDetailShell, ae as DEFAULT_BILLING_USAGE_CHART_CATEGORIES, oe as DEFAULT_BILLING_USAGE_CHART_CATEGORY_COLORS, d as EntityIdFilterField, e as LoginFlow, r as PasswordResetCompleteScreen, i as PasswordResetRequestScreen, R as RelayProvider, a as VerifyEmailScreen, F as backofficeReactI18nResources, T as base64UrlToBuffer, E as bufferToBase64Url, H as canAssignGroupRoles, U as canAssignOrganizationRoles, W as canCreateProject, G as canEditTaskByPermission, K as canLaunchInitiativeTechAgent, q as canLaunchProjectTechAgent, J as canLaunchTaskDevAgent, Y as canLaunchTaskReviewAgent, X as canManageBilling, Z as canManageGroupInitiatives, Q as canManageGroups, $ as canManageProject, ee as canRunGroupTechAgents, te as canRunOrganizationTechAgents, ne as canStartProjectDigestAgent, re as canViewBilling, x as configureRelayEnvironment, B as createBackofficeLazyValue, ye as createConversationStreamUpdater, P as createI18nInstance, _e as createInlineDataReader, de as createMergeRunViewModel, k as createUseAuth, ie as decideConnectorAccess, ce as decodeBase64ToUtf8, le as encodeUtf8ToBase64, ue as formatFileSize, fe as formatMergeBlockReasonCode, S as getEnvironment, pe as getMergeRunStatusTone, me as getMergeRunTone, C as getNetwork, he as getProjectIngestionStatusMeta, ve as identityView, D as mapWebAuthnRegistrationError, O as parseSignCount, o as requireField, s as requireLinkedRecordId, w as resetRelayStore, c as resolveAgentStartOutcome, l as resolveMutationOutcome, ge as resolveVisibleDetailPages, t as synchronizeAuthStatusQuery, se as toBillingUsageChartSeries, u as useBackofficeConfig, A as useBackofficeListUrlState, j as useConditionalSubscription, M as useCopyToClipboard, N as useRefetchNeededReload, I as useReviewStatusLabel, L as useSharedEnumLabels };
29
+ import { RelayProvider as L } from "./relay/RelayProvider.js";
30
+ import { BackofficeProvider as R } from "./provider/BackofficeProvider.js";
31
+ import { createBackofficeLazyValue as z } from "./provider/lazyValue.js";
32
+ import { decodeBase64ToUtf8 as B, encodeUtf8ToBase64 as V } from "./modules/base64.js";
33
+ import { formatFileSize as H } from "./modules/formatFileSize.js";
34
+ import { resolveVisibleDetailPages as U } from "./pages/detail/pageResolution.js";
35
+ import { createInlineDataReader as W } from "./relay/createInlineReader.js";
36
+ import { identityView as G } from "./relay/identityView.js";
37
+ export { n as AcceptInvitationScreen, p as BackofficeDetailBadgeRow, h as BackofficeDetailPayload, m as BackofficeDetailSection, f as BackofficeErrorBoundary, g as BackofficeFilterAction, v as BackofficeInlineFilterRow, _ as BackofficeOverviewLayout, R as BackofficeProvider, y as BackofficeRelatedCountLink, b as BackofficeTabbedDetailShell, d as EntityIdFilterField, e as LoginFlow, r as PasswordResetCompleteScreen, i as PasswordResetRequestScreen, L as RelayProvider, a as VerifyEmailScreen, F as backofficeReactI18nResources, T as base64UrlToBuffer, E as bufferToBase64Url, x as configureRelayEnvironment, z as createBackofficeLazyValue, P as createI18nInstance, W as createInlineDataReader, k as createUseAuth, B as decodeBase64ToUtf8, V as encodeUtf8ToBase64, H as formatFileSize, S as getEnvironment, C as getNetwork, G as identityView, D as mapWebAuthnRegistrationError, O as parseSignCount, o as requireField, s as requireLinkedRecordId, w as resetRelayStore, c as resolveAgentStartOutcome, l as resolveMutationOutcome, U as resolveVisibleDetailPages, t as synchronizeAuthStatusQuery, u as useBackofficeConfig, A as useBackofficeListUrlState, j as useConditionalSubscription, M as useCopyToClipboard, N as useRefetchNeededReload, I as useReviewStatusLabel };
@@ -130,13 +130,15 @@ var x = (e) => e.trim() === "" || e === "/" ? "/" : e.startsWith("/") ? e.endsWi
130
130
  entityRegistry: g,
131
131
  sidebar: t.sidebar,
132
132
  auth: t.auth,
133
- dashboard: t.dashboard
133
+ dashboard: t.dashboard,
134
+ toolsOperationPage: t.toolsOperationPage
134
135
  }), [
135
136
  n,
136
137
  i,
137
138
  g,
138
139
  t.auth,
139
140
  t.dashboard,
141
+ t.toolsOperationPage,
140
142
  t.sidebar
141
143
  ]),
142
144
  instrumentations: t.instrumentations
@@ -1 +1 @@
1
- {"version":3,"file":"BackofficeProvider.js","names":[],"sources":["../../../src/provider/BackofficeProvider.tsx"],"sourcesContent":["import { StrictMode, useEffect, useMemo, type JSX } from 'react';\nimport {\n createInstance,\n type Resource,\n type ResourceKey,\n type ResourceLanguage,\n} from 'i18next';\nimport { I18nextProvider } from 'react-i18next';\nimport { createRouter, RouterRenderer, RoutingContext } from '@plumile/router';\nimport { ThemeProvider } from '@plumile/ui/theme/ThemeProvider';\n\nimport { type BackofficeEntityManifestMap } from '@plumile/backoffice-core/types.js';\n\nimport { createI18nInstance } from '../i18n/createI18nInstance.js';\nimport { mergeResourceLanguages } from '../i18n/mergeResourceLanguages.js';\nimport { backofficeReactI18nResources } from '../i18n/resources.js';\nimport { RelayProvider } from '../relay/RelayProvider.js';\nimport { useRelayEnvironment } from '../relay/useRelayEnvironment.js';\nimport { configureRelayEnvironment } from '../relay/environment.js';\nimport { BackofficeConfigProvider } from './BackofficeConfigContext.js';\nimport { createBackofficeRoutes } from '../router/createBackofficeRoutes.js';\nimport type { BackofficeProviderProps } from './types.js';\nimport { BackofficeRouteFallback } from '../components/backoffice/routing/BackofficeRouteFallback.js';\nimport { BackofficeRoutePendingBar } from '../components/backoffice/routing/BackofficeRoutePendingBar.js';\nimport { createBackofficeEntityRegistry } from './entityRegistry.js';\n\nconst normalizeAbsolutePath = (value: string): string => {\n if (value.trim() === '' || value === '/') {\n return '/';\n }\n if (!value.startsWith('/')) {\n return `/${value}`;\n }\n if (value.endsWith('/')) {\n return value.slice(0, -1);\n }\n return value;\n};\n\nconst prefixRoutePath = (basePath: string, value: string): string => {\n const normalizedPath = normalizeAbsolutePath(value);\n const normalizedBasePath = normalizeAbsolutePath(basePath);\n if (normalizedBasePath === '/') {\n return normalizedPath;\n }\n if (\n normalizedPath === normalizedBasePath ||\n normalizedPath.startsWith(`${normalizedBasePath}/`)\n ) {\n return normalizedPath;\n }\n if (normalizedPath === '/') {\n return normalizedBasePath;\n }\n return `${normalizedBasePath}${normalizedPath}`;\n};\n\nconst resolveEntityManifest = (\n manifest: BackofficeEntityManifestMap,\n basePath: string,\n): BackofficeEntityManifestMap => {\n return Object.fromEntries(\n Object.entries(manifest).map(([entityId, item]) => {\n return [\n entityId,\n {\n ...item,\n routes: {\n list: prefixRoutePath(basePath, item.routes.list),\n detail: (id: string) => {\n return prefixRoutePath(basePath, item.routes.detail(id));\n },\n detailPage: (id: string, pageId: string) => {\n return prefixRoutePath(\n basePath,\n item.routes.detailPage(id, pageId),\n );\n },\n },\n } satisfies BackofficeEntityManifestMap[string],\n ] as const;\n }),\n );\n};\n\nconst asResourceLanguage = (\n value: ResourceKey | undefined,\n): ResourceLanguage => {\n if (typeof value === 'object' && !Array.isArray(value)) {\n return value as ResourceLanguage;\n }\n return {};\n};\n\ntype RouterShellProps = {\n routes: ReturnType<typeof createBackofficeRoutes>;\n instrumentations?: BackofficeProviderProps['instrumentations'];\n};\n\nconst RouterShell = ({\n routes,\n instrumentations,\n}: RouterShellProps): JSX.Element => {\n const relayEnvironment = useRelayEnvironment();\n\n const routerContext = useMemo(() => {\n return { relayEnvironment };\n }, [relayEnvironment]);\n\n const router = useMemo(() => {\n return createRouter(routes, {\n context: routerContext,\n instrumentations,\n });\n }, [instrumentations, routes, routerContext]);\n\n useEffect(() => {\n return () => {\n router.cleanup();\n };\n }, [router]);\n\n return (\n <RoutingContext.Provider value={router.context}>\n <RouterRenderer\n enableTransition\n fallback={<BackofficeRouteFallback />}\n pending={<BackofficeRoutePendingBar />}\n />\n </RoutingContext.Provider>\n );\n};\n\nexport const BackofficeProvider = (\n props: BackofficeProviderProps,\n): JSX.Element => {\n const basePath = normalizeAbsolutePath(props.basePath ?? '/');\n\n const entityManifest = useMemo(() => {\n return resolveEntityManifest(props.entityManifest, basePath);\n }, [basePath, props.entityManifest]);\n const entityRegistry = useMemo(() => {\n return createBackofficeEntityRegistry(entityManifest, { basePath });\n }, [basePath, entityManifest]);\n\n const graphQLConfig = props.graphql;\n\n useEffect(() => {\n const httpUrl = graphQLConfig.httpUrl ?? graphQLConfig.endpoint;\n const wsUrl = graphQLConfig.wsUrl ?? graphQLConfig.wsEndpoint;\n configureRelayEnvironment({\n httpUrl,\n wsUrl,\n logEvents: graphQLConfig.logEvents,\n getAuthHeaders: graphQLConfig.getAuthHeaders,\n });\n }, [\n graphQLConfig.endpoint,\n graphQLConfig.getAuthHeaders,\n graphQLConfig.httpUrl,\n graphQLConfig.logEvents,\n graphQLConfig.wsEndpoint,\n graphQLConfig.wsUrl,\n ]);\n\n const mergedResources = useMemo(() => {\n const appResources: Resource = props.i18n?.resources ?? {};\n const backofficeReactResources = backofficeReactI18nResources as Resource;\n const locales = new Set([\n ...Object.keys(backofficeReactResources),\n ...Object.keys(appResources),\n ]);\n\n const output: Resource = {};\n\n locales.forEach((locale) => {\n const packageLocale = asResourceLanguage(\n backofficeReactResources[locale],\n );\n const appLocale = asResourceLanguage(appResources[locale]);\n output[locale] = {\n ...packageLocale,\n ...appLocale,\n backofficeReact: mergeResourceLanguages(\n asResourceLanguage(packageLocale.backofficeReact),\n asResourceLanguage(appLocale.backofficeReact),\n ),\n shared: mergeResourceLanguages(\n asResourceLanguage(packageLocale.shared),\n asResourceLanguage(appLocale.shared),\n ),\n };\n });\n\n return output;\n }, [props.i18n?.resources]);\n\n const i18nInstance = useMemo(() => {\n return props.i18n?.instance ?? createInstance();\n }, [props.i18n?.instance]);\n\n useEffect(() => {\n const initOptions = props.i18n?.initOptions ?? {};\n const defaultNs = initOptions.defaultNS ?? 'translations';\n const ns = initOptions.ns ?? [\n 'backofficeReact',\n 'translations',\n 'shared',\n 'ui',\n ];\n createI18nInstance({\n resources: mergedResources,\n lng: props.i18n?.lng,\n fallbackLng: props.i18n?.fallbackLng,\n initOptions: {\n ...initOptions,\n defaultNS: defaultNs,\n ns,\n },\n instance: i18nInstance,\n useLanguageDetector: props.i18n?.useLanguageDetector,\n detection: props.i18n?.detection,\n // eslint-disable-next-line no-console\n }).catch(console.error);\n }, [\n i18nInstance,\n mergedResources,\n props.i18n?.initOptions,\n props.i18n?.detection,\n props.i18n?.fallbackLng,\n props.i18n?.lng,\n props.i18n?.useLanguageDetector,\n ]);\n\n const configValue = useMemo(() => {\n return {\n basePath,\n entities: entityManifest,\n entityManifest,\n entityRegistry,\n sidebar: props.sidebar,\n dashboard: props.dashboard,\n auth: props.auth,\n graphql: props.graphql,\n };\n }, [\n basePath,\n props.auth,\n props.dashboard,\n entityManifest,\n entityRegistry,\n props.graphql,\n props.sidebar,\n ]);\n\n const routes = useMemo(() => {\n return createBackofficeRoutes({\n basePath,\n entityManifest,\n entityRegistry,\n sidebar: props.sidebar,\n auth: props.auth,\n dashboard: props.dashboard,\n });\n }, [\n basePath,\n entityManifest,\n entityRegistry,\n props.auth,\n props.dashboard,\n props.sidebar,\n ]);\n\n return (\n <StrictMode>\n <I18nextProvider i18n={i18nInstance}>\n <ThemeProvider>\n <RelayProvider>\n <BackofficeConfigProvider value={configValue}>\n <RouterShell\n routes={routes}\n instrumentations={props.instrumentations}\n />\n </BackofficeConfigProvider>\n </RelayProvider>\n </ThemeProvider>\n </I18nextProvider>\n </StrictMode>\n );\n};\n\nexport default BackofficeProvider;\n"],"mappings":"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"}
1
+ {"version":3,"file":"BackofficeProvider.js","names":[],"sources":["../../../src/provider/BackofficeProvider.tsx"],"sourcesContent":["import { StrictMode, useEffect, useMemo, type JSX } from 'react';\nimport {\n createInstance,\n type Resource,\n type ResourceKey,\n type ResourceLanguage,\n} from 'i18next';\nimport { I18nextProvider } from 'react-i18next';\nimport { createRouter, RouterRenderer, RoutingContext } from '@plumile/router';\nimport { ThemeProvider } from '@plumile/ui/theme/ThemeProvider';\n\nimport { type BackofficeEntityManifestMap } from '@plumile/backoffice-core/types.js';\n\nimport { createI18nInstance } from '../i18n/createI18nInstance.js';\nimport { mergeResourceLanguages } from '../i18n/mergeResourceLanguages.js';\nimport { backofficeReactI18nResources } from '../i18n/resources.js';\nimport { RelayProvider } from '../relay/RelayProvider.js';\nimport { useRelayEnvironment } from '../relay/useRelayEnvironment.js';\nimport { configureRelayEnvironment } from '../relay/environment.js';\nimport { BackofficeConfigProvider } from './BackofficeConfigContext.js';\nimport { createBackofficeRoutes } from '../router/createBackofficeRoutes.js';\nimport type { BackofficeProviderProps } from './types.js';\nimport { BackofficeRouteFallback } from '../components/backoffice/routing/BackofficeRouteFallback.js';\nimport { BackofficeRoutePendingBar } from '../components/backoffice/routing/BackofficeRoutePendingBar.js';\nimport { createBackofficeEntityRegistry } from './entityRegistry.js';\n\nconst normalizeAbsolutePath = (value: string): string => {\n if (value.trim() === '' || value === '/') {\n return '/';\n }\n if (!value.startsWith('/')) {\n return `/${value}`;\n }\n if (value.endsWith('/')) {\n return value.slice(0, -1);\n }\n return value;\n};\n\nconst prefixRoutePath = (basePath: string, value: string): string => {\n const normalizedPath = normalizeAbsolutePath(value);\n const normalizedBasePath = normalizeAbsolutePath(basePath);\n if (normalizedBasePath === '/') {\n return normalizedPath;\n }\n if (\n normalizedPath === normalizedBasePath ||\n normalizedPath.startsWith(`${normalizedBasePath}/`)\n ) {\n return normalizedPath;\n }\n if (normalizedPath === '/') {\n return normalizedBasePath;\n }\n return `${normalizedBasePath}${normalizedPath}`;\n};\n\nconst resolveEntityManifest = (\n manifest: BackofficeEntityManifestMap,\n basePath: string,\n): BackofficeEntityManifestMap => {\n return Object.fromEntries(\n Object.entries(manifest).map(([entityId, item]) => {\n return [\n entityId,\n {\n ...item,\n routes: {\n list: prefixRoutePath(basePath, item.routes.list),\n detail: (id: string) => {\n return prefixRoutePath(basePath, item.routes.detail(id));\n },\n detailPage: (id: string, pageId: string) => {\n return prefixRoutePath(\n basePath,\n item.routes.detailPage(id, pageId),\n );\n },\n },\n } satisfies BackofficeEntityManifestMap[string],\n ] as const;\n }),\n );\n};\n\nconst asResourceLanguage = (\n value: ResourceKey | undefined,\n): ResourceLanguage => {\n if (typeof value === 'object' && !Array.isArray(value)) {\n return value as ResourceLanguage;\n }\n return {};\n};\n\ntype RouterShellProps = {\n routes: ReturnType<typeof createBackofficeRoutes>;\n instrumentations?: BackofficeProviderProps['instrumentations'];\n};\n\nconst RouterShell = ({\n routes,\n instrumentations,\n}: RouterShellProps): JSX.Element => {\n const relayEnvironment = useRelayEnvironment();\n\n const routerContext = useMemo(() => {\n return { relayEnvironment };\n }, [relayEnvironment]);\n\n const router = useMemo(() => {\n return createRouter(routes, {\n context: routerContext,\n instrumentations,\n });\n }, [instrumentations, routes, routerContext]);\n\n useEffect(() => {\n return () => {\n router.cleanup();\n };\n }, [router]);\n\n return (\n <RoutingContext.Provider value={router.context}>\n <RouterRenderer\n enableTransition\n fallback={<BackofficeRouteFallback />}\n pending={<BackofficeRoutePendingBar />}\n />\n </RoutingContext.Provider>\n );\n};\n\nexport const BackofficeProvider = (\n props: BackofficeProviderProps,\n): JSX.Element => {\n const basePath = normalizeAbsolutePath(props.basePath ?? '/');\n\n const entityManifest = useMemo(() => {\n return resolveEntityManifest(props.entityManifest, basePath);\n }, [basePath, props.entityManifest]);\n const entityRegistry = useMemo(() => {\n return createBackofficeEntityRegistry(entityManifest, { basePath });\n }, [basePath, entityManifest]);\n\n const graphQLConfig = props.graphql;\n\n useEffect(() => {\n const httpUrl = graphQLConfig.httpUrl ?? graphQLConfig.endpoint;\n const wsUrl = graphQLConfig.wsUrl ?? graphQLConfig.wsEndpoint;\n configureRelayEnvironment({\n httpUrl,\n wsUrl,\n logEvents: graphQLConfig.logEvents,\n getAuthHeaders: graphQLConfig.getAuthHeaders,\n });\n }, [\n graphQLConfig.endpoint,\n graphQLConfig.getAuthHeaders,\n graphQLConfig.httpUrl,\n graphQLConfig.logEvents,\n graphQLConfig.wsEndpoint,\n graphQLConfig.wsUrl,\n ]);\n\n const mergedResources = useMemo(() => {\n const appResources: Resource = props.i18n?.resources ?? {};\n const backofficeReactResources = backofficeReactI18nResources as Resource;\n const locales = new Set([\n ...Object.keys(backofficeReactResources),\n ...Object.keys(appResources),\n ]);\n\n const output: Resource = {};\n\n locales.forEach((locale) => {\n const packageLocale = asResourceLanguage(\n backofficeReactResources[locale],\n );\n const appLocale = asResourceLanguage(appResources[locale]);\n output[locale] = {\n ...packageLocale,\n ...appLocale,\n backofficeReact: mergeResourceLanguages(\n asResourceLanguage(packageLocale.backofficeReact),\n asResourceLanguage(appLocale.backofficeReact),\n ),\n shared: mergeResourceLanguages(\n asResourceLanguage(packageLocale.shared),\n asResourceLanguage(appLocale.shared),\n ),\n };\n });\n\n return output;\n }, [props.i18n?.resources]);\n\n const i18nInstance = useMemo(() => {\n return props.i18n?.instance ?? createInstance();\n }, [props.i18n?.instance]);\n\n useEffect(() => {\n const initOptions = props.i18n?.initOptions ?? {};\n const defaultNs = initOptions.defaultNS ?? 'translations';\n const ns = initOptions.ns ?? [\n 'backofficeReact',\n 'translations',\n 'shared',\n 'ui',\n ];\n createI18nInstance({\n resources: mergedResources,\n lng: props.i18n?.lng,\n fallbackLng: props.i18n?.fallbackLng,\n initOptions: {\n ...initOptions,\n defaultNS: defaultNs,\n ns,\n },\n instance: i18nInstance,\n useLanguageDetector: props.i18n?.useLanguageDetector,\n detection: props.i18n?.detection,\n // eslint-disable-next-line no-console\n }).catch(console.error);\n }, [\n i18nInstance,\n mergedResources,\n props.i18n?.initOptions,\n props.i18n?.detection,\n props.i18n?.fallbackLng,\n props.i18n?.lng,\n props.i18n?.useLanguageDetector,\n ]);\n\n const configValue = useMemo(() => {\n return {\n basePath,\n entities: entityManifest,\n entityManifest,\n entityRegistry,\n sidebar: props.sidebar,\n dashboard: props.dashboard,\n auth: props.auth,\n graphql: props.graphql,\n };\n }, [\n basePath,\n props.auth,\n props.dashboard,\n entityManifest,\n entityRegistry,\n props.graphql,\n props.sidebar,\n ]);\n\n const routes = useMemo(() => {\n return createBackofficeRoutes({\n basePath,\n entityManifest,\n entityRegistry,\n sidebar: props.sidebar,\n auth: props.auth,\n dashboard: props.dashboard,\n toolsOperationPage: props.toolsOperationPage,\n });\n }, [\n basePath,\n entityManifest,\n entityRegistry,\n props.auth,\n props.dashboard,\n props.toolsOperationPage,\n props.sidebar,\n ]);\n\n return (\n <StrictMode>\n <I18nextProvider i18n={i18nInstance}>\n <ThemeProvider>\n <RelayProvider>\n <BackofficeConfigProvider value={configValue}>\n <RouterShell\n routes={routes}\n instrumentations={props.instrumentations}\n />\n </BackofficeConfigProvider>\n </RelayProvider>\n </ThemeProvider>\n </I18nextProvider>\n </StrictMode>\n );\n};\n\nexport default BackofficeProvider;\n"],"mappings":"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"}
@@ -4,19 +4,19 @@ import * as r from "react-relay";
4
4
  import { HttpRedirect as i, getResourcePage as a, r as o } from "@plumile/router";
5
5
  import { BACKOFFICE_LIST_DEFAULTS as s } from "@plumile/backoffice-core/constants.js";
6
6
  //#region src/router/createBackofficeRoutes.tsx
7
- var { loadQuery: c, usePreloadedQuery: l } = r, u = a("WrapperPage", async () => import("@plumile/ui/pages/WrapperPage.js")), d = a("BackofficeLayoutPage", async () => import("../pages/BackofficeLayoutPage.js")), f = a("BackofficeEntityListPage", async () => import("../pages/BackofficeEntityListPage.js")), p = a("BackofficeEntityDetailPage", async () => import("../pages/BackofficeEntityDetailPage.js")), m = a("BackofficeEntityDetailLayoutPage", async () => import("../pages/BackofficeEntityDetailLayoutPage.js")), h = a("BackofficeEntityDetailUnknownPageRedirect", async () => import("../pages/BackofficeEntityDetailUnknownPageRedirect.js")), g = a("BackofficeDashboardPage", async () => import("../pages/BackofficeDashboardPage.js")), _ = a("BackofficeToolsOperationPage", async () => import("../pages/BackofficeToolsOperationPage.js")), v = a("BackofficeLoginPage", async () => import("../pages/BackofficeLoginPage.js")), y = a("BackofficePasswordResetRequestPage", async () => import("../pages/BackofficePasswordResetRequestPage.js")), b = a("BackofficePasswordResetCompletePage", async () => import("../pages/BackofficePasswordResetCompletePage.js")), x = a("BackofficeVerifyEmailPage", async () => import("../pages/BackofficeVerifyEmailPage.js")), S = a("BackofficeAcceptInvitationPage", async () => import("../pages/BackofficeAcceptInvitationPage.js")), C = (e) => {
7
+ var { loadQuery: c, usePreloadedQuery: l } = r, u = a("WrapperPage", async () => import("@plumile/ui/pages/WrapperPage.js")), d = a("BackofficeLayoutPage", async () => import("../pages/BackofficeLayoutPage.js")), f = a("BackofficeEntityListPage", async () => import("../pages/BackofficeEntityListPage.js")), p = a("BackofficeEntityDetailPage", async () => import("../pages/BackofficeEntityDetailPage.js")), m = a("BackofficeEntityDetailLayoutPage", async () => import("../pages/BackofficeEntityDetailLayoutPage.js")), h = a("BackofficeEntityDetailUnknownPageRedirect", async () => import("../pages/BackofficeEntityDetailUnknownPageRedirect.js")), g = a("BackofficeDashboardPage", async () => import("../pages/BackofficeDashboardPage.js")), _ = a("BackofficeLoginPage", async () => import("../pages/BackofficeLoginPage.js")), v = a("BackofficePasswordResetRequestPage", async () => import("../pages/BackofficePasswordResetRequestPage.js")), y = a("BackofficePasswordResetCompletePage", async () => import("../pages/BackofficePasswordResetCompletePage.js")), b = a("BackofficeVerifyEmailPage", async () => import("../pages/BackofficeVerifyEmailPage.js")), x = a("BackofficeAcceptInvitationPage", async () => import("../pages/BackofficeAcceptInvitationPage.js")), S = (e) => {
8
8
  let t = e.trim();
9
9
  return t === "" || t === "/" ? "" : t.replace(/^\/+|\/+$/g, "");
10
- }, w = (e) => {
10
+ }, C = (e) => {
11
11
  let t = e.trim();
12
12
  return t === "" ? "/" : `/${t}`.replace(/\/+/g, "/");
13
- }, T = (e, t) => {
13
+ }, w = (e, t) => {
14
14
  let n = t.replace(/^\/+|\/+$/g, "");
15
15
  return e === "" ? n : n === "" ? e : `${e}/${n}`;
16
- }, E = (e, t) => w(T(e, t)), D = (e, t) => {
17
- let n = w(e), r = t === "" ? "" : `/${t}`;
16
+ }, T = (e, t) => C(w(e, t)), E = (e, t) => {
17
+ let n = C(e), r = t === "" ? "" : `/${t}`;
18
18
  return r !== "" && n.startsWith(r) ? n.slice(r.length).replace(/^\/+/, "") : n.replace(/^\/+/, "");
19
- }, O = (e, t) => {
19
+ }, D = (e, t) => {
20
20
  if (e?.routes == null) return null;
21
21
  for (let n = e.routes.length - 1; n >= 0; --n) {
22
22
  let r = e.routes[n];
@@ -26,7 +26,7 @@ var { loadQuery: c, usePreloadedQuery: l } = r, u = a("WrapperPage", async () =>
26
26
  }
27
27
  }
28
28
  return null;
29
- }, k = (e) => {
29
+ }, O = (e) => {
30
30
  let t = new URLSearchParams();
31
31
  return Object.entries(e).forEach(([e, n]) => {
32
32
  if (n != null) {
@@ -39,33 +39,33 @@ var { loadQuery: c, usePreloadedQuery: l } = r, u = a("WrapperPage", async () =>
39
39
  t.set(e, String(n));
40
40
  }
41
41
  }), t;
42
- }, A = o;
43
- function j(r) {
44
- let { basePath: a, entityManifest: o, entityRegistry: w, sidebar: j, auth: M, dashboard: N } = r, P = C(a), F = T(P, "login"), I = T(P, "login/reset"), L = T(P, "login/reset/complete"), R = T(P, "verify-email"), z = T(P, "accept-invitation"), B = E(P, "login"), V = e(t(o, j)), H = /* @__PURE__ */ new Map();
45
- V.forEach((e, t) => {
46
- H.set(t, e.groupId);
42
+ }, k = o;
43
+ function A(r) {
44
+ let { basePath: a, entityManifest: o, entityRegistry: C, sidebar: A, auth: j, dashboard: M } = r, N = S(a), P = w(N, "login"), F = w(N, "login/reset"), I = w(N, "login/reset/complete"), L = w(N, "verify-email"), R = w(N, "accept-invitation"), z = T(N, "login"), B = e(t(o, A)), V = /* @__PURE__ */ new Map();
45
+ B.forEach((e, t) => {
46
+ V.set(t, e.groupId);
47
47
  });
48
- let U = /* @__PURE__ */ new WeakMap(), W = j?.permissionsQuery, G = async ({ context: e }) => {
49
- let t = await M.session.load();
48
+ let H = /* @__PURE__ */ new WeakMap(), U = A?.permissionsQuery, W = async ({ context: e }) => {
49
+ let t = await j.session.load();
50
50
  return {
51
- permissionsQuery: W == null ? null : c(e.relayEnvironment, W, {}),
51
+ permissionsQuery: U == null ? null : c(e.relayEnvironment, U, {}),
52
52
  authStatusQuery: t.authStatusQuery == null ? null : c(e.relayEnvironment, t.authStatusQuery, {}, { fetchPolicy: "network-only" })
53
53
  };
54
- }, K = A({
54
+ }, G = k({
55
55
  path: "",
56
56
  resourcePage: g,
57
- prepare: async () => (N == null || await N.load(), null),
57
+ prepare: async () => (M == null || await M.load(), null),
58
58
  render: ({ Component: e }) => e == null ? null : /* @__PURE__ */ n(e, {})
59
- }), q = Object.values(o).filter((e) => e.kind === "list-detail").map((e) => {
60
- let t = e.routes.list, r = D(t, P), a = [];
59
+ }), K = Object.values(o).filter((e) => e.kind === "list-detail").map((e) => {
60
+ let t = e.routes.list, r = E(t, N), a = [];
61
61
  if (e.hasList) {
62
- let t = A({
62
+ let t = k({
63
63
  path: "",
64
64
  resourcePage: f,
65
65
  prepare: async ({ context: t, query: n }) => {
66
- let { config: r } = await w.loadListEntity(e.id), { list: i, listUrlCodec: a, listDefaults: o } = r;
66
+ let { config: r } = await C.loadListEntity(e.id), { list: i, listUrlCodec: a, listDefaults: o } = r;
67
67
  if (a == null || o == null) throw Error(`Backoffice entity ${e.id} does not expose a list configuration.`);
68
- let l = k(n), u = a.parse(l), { pageSize: d } = s, f = {
68
+ let l = O(n), u = a.parse(l), { pageSize: d } = s, f = {
69
69
  where: u.where,
70
70
  sort: u.sort ?? o.sort,
71
71
  count: d,
@@ -88,13 +88,13 @@ function j(r) {
88
88
  });
89
89
  }
90
90
  });
91
- U.set(t, e.id), a.push(t);
91
+ H.set(t, e.id), a.push(t);
92
92
  }
93
- let o = A({
93
+ let o = k({
94
94
  path: ":id",
95
95
  resourcePage: m,
96
96
  prepare: async ({ context: t, variables: n }) => {
97
- let { config: r } = await w.loadDetailLayoutEntity(e.id), i = String(n.id ?? ""), a = r.layoutPage.buildVariables == null ? { variables: { id: i } } : r.layoutPage.buildVariables({ id: i }), o = c(t.relayEnvironment, r.layoutPage.query, a.variables);
97
+ let { config: r } = await C.loadDetailLayoutEntity(e.id), i = String(n.id ?? ""), a = r.layoutPage.buildVariables == null ? { variables: { id: i } } : r.layoutPage.buildVariables({ id: i }), o = c(t.relayEnvironment, r.layoutPage.query, a.variables);
98
98
  return {
99
99
  entityId: e.id,
100
100
  entityManifest: e,
@@ -114,7 +114,7 @@ function j(r) {
114
114
  });
115
115
  },
116
116
  children: [
117
- A({
117
+ k({
118
118
  path: "",
119
119
  resourcePage: u,
120
120
  prepare: ({ variables: t }) => {
@@ -127,11 +127,11 @@ function j(r) {
127
127
  throw new i(t);
128
128
  }
129
129
  }),
130
- ...(e.detailPages ?? []).map((t) => A({
130
+ ...(e.detailPages ?? []).map((t) => k({
131
131
  path: t.pathSegment,
132
132
  resourcePage: p,
133
133
  prepare: async ({ context: n, variables: r }) => {
134
- let i = String(r.id ?? ""), a = await w.loadDetailPageEntity(e.id, t.id), o = a.config.page.buildVariables == null ? { variables: { id: i } } : a.config.page.buildVariables({ id: i }), s = c(n.relayEnvironment, a.config.page.query, o.variables);
134
+ let i = String(r.id ?? ""), a = await C.loadDetailPageEntity(e.id, t.id), o = a.config.page.buildVariables == null ? { variables: { id: i } } : a.config.page.buildVariables({ id: i }), s = c(n.relayEnvironment, a.config.page.query, o.variables);
135
135
  return {
136
136
  entityId: e.id,
137
137
  entityManifest: e,
@@ -154,11 +154,11 @@ function j(r) {
154
154
  });
155
155
  }
156
156
  })),
157
- A({
157
+ k({
158
158
  path: ":pagePath",
159
159
  resourcePage: h,
160
160
  prepare: async ({ variables: t }) => {
161
- let n = await w.loadDetailLayoutEntity(e.id), r = String(t.id ?? ""), i = String(t.pagePath ?? "");
161
+ let n = await C.loadDetailLayoutEntity(e.id), r = String(t.id ?? ""), i = String(t.pagePath ?? "");
162
162
  return {
163
163
  entityManifest: e,
164
164
  entityConfig: n.config,
@@ -178,17 +178,17 @@ function j(r) {
178
178
  })
179
179
  ]
180
180
  });
181
- return U.set(o, e.id), a.push(o), A({
181
+ return H.set(o, e.id), a.push(o), k({
182
182
  path: r,
183
183
  children: a,
184
184
  resourcePage: u
185
185
  });
186
- }), J = Object.values(o).filter((e) => e.kind === "tool").map((e) => {
187
- let t = A({
188
- path: D(e.routes.list, P),
189
- resourcePage: _,
186
+ }), q = Object.values(o).filter((e) => e.kind === "tool").map((e) => {
187
+ let t = k({
188
+ path: E(e.routes.list, N),
189
+ resourcePage: r.toolsOperationPage ?? null,
190
190
  prepare: async () => {
191
- let t = await w.loadToolEntity(e.id);
191
+ let t = await C.loadToolEntity(e.id);
192
192
  return {
193
193
  entityId: e.id,
194
194
  entityManifest: e,
@@ -205,21 +205,21 @@ function j(r) {
205
205
  });
206
206
  }
207
207
  });
208
- return U.set(t, e.id), t;
209
- }), Y = A({
210
- path: P,
208
+ return H.set(t, e.id), t;
209
+ }), J = k({
210
+ path: N,
211
211
  resourcePage: d,
212
- prepare: G,
212
+ prepare: W,
213
213
  render: ({ children: e, prepared: t, route: r, Component: a }) => {
214
214
  if (a == null) return null;
215
- let o = t, s = O(r, U), c = s == null ? null : H.get(s) ?? null, u = null, d = M.session.get()?.authStatusQuery ?? null;
215
+ let o = t, s = D(r, H), c = s == null ? null : V.get(s) ?? null, u = null, d = j.session.get()?.authStatusQuery ?? null;
216
216
  if (d != null && o?.authStatusQuery != null) {
217
217
  u = l(d, o.authStatusQuery);
218
218
  let { isLoggedIn: e } = u;
219
- if (!e) throw new i(B);
219
+ if (!e) throw new i(z);
220
220
  }
221
221
  return /* @__PURE__ */ n(a, {
222
- permissionsQuery: j?.permissionsQuery,
222
+ permissionsQuery: A?.permissionsQuery,
223
223
  prepared: o?.permissionsQuery ?? null,
224
224
  authStatus: u,
225
225
  activeGroupId: c,
@@ -227,47 +227,47 @@ function j(r) {
227
227
  });
228
228
  },
229
229
  children: [
230
- K,
231
- ...q,
232
- ...J
230
+ G,
231
+ ...K,
232
+ ...q
233
233
  ]
234
- }), X = [
235
- A({
236
- path: F,
237
- resourcePage: v,
234
+ }), Y = [
235
+ k({
236
+ path: P,
237
+ resourcePage: _,
238
238
  prepare: async ({ context: e }) => {
239
- let t = await M.login.load();
239
+ let t = await j.login.load();
240
240
  return { query: c(e.relayEnvironment, t.loginQuery, {}) };
241
241
  },
242
242
  render: ({ prepared: e, Component: t }) => t == null ? null : /* @__PURE__ */ n(t, { prepared: e })
243
243
  }),
244
- A({
244
+ k({
245
+ path: F,
246
+ resourcePage: v,
247
+ prepare: async () => (await j.passwordResetRequest.load(), null),
248
+ render: ({ Component: e }) => e == null ? null : /* @__PURE__ */ n(e, {})
249
+ }),
250
+ k({
245
251
  path: I,
246
252
  resourcePage: y,
247
- prepare: async () => (await M.passwordResetRequest.load(), null),
253
+ prepare: async () => (await j.passwordResetComplete.load(), null),
248
254
  render: ({ Component: e }) => e == null ? null : /* @__PURE__ */ n(e, {})
249
255
  }),
250
- A({
256
+ k({
251
257
  path: L,
252
258
  resourcePage: b,
253
- prepare: async () => (await M.passwordResetComplete.load(), null),
254
- render: ({ Component: e }) => e == null ? null : /* @__PURE__ */ n(e, {})
255
- }),
256
- A({
257
- path: R,
258
- resourcePage: x,
259
- prepare: async () => (await M.verifyEmail.load(), null),
259
+ prepare: async () => (await j.verifyEmail.load(), null),
260
260
  render: ({ Component: e }) => e == null ? null : /* @__PURE__ */ n(e, {})
261
261
  })
262
262
  ];
263
- return (M.hasAcceptInvitation === !0 || M.acceptInvitation != null) && X.push(A({
264
- path: z,
265
- resourcePage: S,
266
- prepare: async () => (await M.acceptInvitation?.load(), null),
263
+ return (j.hasAcceptInvitation === !0 || j.acceptInvitation != null) && Y.push(k({
264
+ path: R,
265
+ resourcePage: x,
266
+ prepare: async () => (await j.acceptInvitation?.load(), null),
267
267
  render: ({ Component: e }) => e == null ? null : /* @__PURE__ */ n(e, {})
268
- })), X.push(Y), X;
268
+ })), Y.push(J), Y;
269
269
  }
270
270
  //#endregion
271
- export { S as BackofficeAcceptInvitationPageResource, g as BackofficeDashboardPageResource, m as BackofficeEntityDetailLayoutPageResource, p as BackofficeEntityDetailPageResource, h as BackofficeEntityDetailUnknownPageRedirectResource, f as BackofficeEntityListPageResource, d as BackofficeLayoutPageResource, v as BackofficeLoginPageResource, b as BackofficePasswordResetCompletePageResource, y as BackofficePasswordResetRequestPageResource, _ as BackofficeToolsOperationPageResource, x as BackofficeVerifyEmailPageResource, u as WrapperPageResource, j as createBackofficeRoutes, j as default };
271
+ export { x as BackofficeAcceptInvitationPageResource, g as BackofficeDashboardPageResource, m as BackofficeEntityDetailLayoutPageResource, p as BackofficeEntityDetailPageResource, h as BackofficeEntityDetailUnknownPageRedirectResource, f as BackofficeEntityListPageResource, d as BackofficeLayoutPageResource, _ as BackofficeLoginPageResource, y as BackofficePasswordResetCompletePageResource, v as BackofficePasswordResetRequestPageResource, b as BackofficeVerifyEmailPageResource, u as WrapperPageResource, A as createBackofficeRoutes, A as default };
272
272
 
273
273
  //# sourceMappingURL=createBackofficeRoutes.js.map