passbolt-styleguide 3.5.3 → 3.6.0-alpha1

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 (488) hide show
  1. package/build/css/help.min.css +3 -3
  2. package/build/css/public.min.css +4 -4
  3. package/build/css/themes/default/api_authentication.min.css +3 -3
  4. package/build/css/themes/default/api_cloud.min.css +3 -3
  5. package/build/css/themes/default/api_main.min.css +4 -4
  6. package/build/css/themes/default/api_reports.min.css +4 -4
  7. package/build/css/themes/default/api_webinstaller.min.css +3 -3
  8. package/build/css/themes/default/ext_app.min.css +4 -4
  9. package/build/css/themes/default/ext_authentication.min.css +3 -3
  10. package/build/css/themes/default/ext_external.min.css +2 -2
  11. package/build/css/themes/default/ext_in_form_cta.min.css +3 -3
  12. package/build/css/themes/default/ext_in_form_menu.min.css +3 -3
  13. package/build/css/themes/default/ext_quickaccess.min.css +3 -3
  14. package/build/css/themes/midgar/api_authentication.min.css +3 -3
  15. package/build/css/themes/midgar/api_main.min.css +4 -4
  16. package/build/css/themes/midgar/api_reports.min.css +4 -4
  17. package/build/css/themes/midgar/ext_app.min.css +4 -4
  18. package/build/css/themes/midgar/ext_authentication.min.css +3 -3
  19. package/build/css/themes/midgar/ext_in_form_cta.min.css +3 -3
  20. package/build/css/themes/midgar/ext_in_form_menu.min.css +3 -3
  21. package/build/css/themes/midgar/ext_quickaccess.min.css +3 -3
  22. package/build/js/dist/api-account-recovery.js +2 -0
  23. package/build/js/dist/api-account-recovery.js.LICENSE.txt +107 -0
  24. package/build/js/dist/api-app.js +1 -1
  25. package/build/js/dist/api-app.js.LICENSE.txt +73 -1
  26. package/build/js/dist/api-recover.js +1 -1
  27. package/build/js/dist/api-setup.js +1 -1
  28. package/build/js/dist/api-triage.js +1 -1
  29. package/build/js/dist/api-vendors.js +1 -1
  30. package/build/js/dist/api-vendors.js.LICENSE.txt +152 -12
  31. package/package.json +22 -16
  32. package/src/locales/en-UK/common.json +134 -1
  33. package/src/react-extension/ApiAccountRecovery.entry.js +25 -0
  34. package/src/react-extension/ApiAccountRecovery.js +233 -0
  35. package/src/react-extension/ApiApp.js +50 -43
  36. package/src/react-extension/ExtApp.js +129 -105
  37. package/src/react-extension/ExtAuthenticationAccountRecovery.js +173 -0
  38. package/src/react-extension/ExtAuthenticationLogin.js +31 -33
  39. package/src/react-extension/ExtAuthenticationRecover.js +23 -35
  40. package/src/react-extension/ExtAuthenticationSetup.js +24 -46
  41. package/src/react-extension/ExtBootstrapAccountRecovery.js +73 -0
  42. package/src/react-extension/ExtBootstrapApp.js +4 -0
  43. package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.js +114 -0
  44. package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.test.data.js +27 -0
  45. package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.test.js +72 -0
  46. package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.test.page.js +74 -0
  47. package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.test.stories.js +51 -0
  48. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryStatusCheck/HandleAccountRecoveryStatusCheck.js +80 -0
  49. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryStatusCheck/HandleAccountRecoveryStatusCheck.test.data.js +60 -0
  50. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryStatusCheck/HandleAccountRecoveryStatusCheck.test.js +110 -0
  51. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryStatusCheck/HandleAccountRecoveryStatusCheck.test.page.js +40 -0
  52. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryUserSettingsRoute/HandleAccountRecoveryUserSettingsRoute.js +96 -0
  53. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryUserSettingsRoute/HandleAccountRecoveryUserSettingsRoute.test.data.js +63 -0
  54. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryUserSettingsRoute/HandleAccountRecoveryUserSettingsRoute.test.js +88 -0
  55. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryUserSettingsRoute/HandleAccountRecoveryUserSettingsRoute.test.page.js +37 -0
  56. package/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.js +223 -0
  57. package/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.test.data.js +49 -0
  58. package/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.test.js +98 -0
  59. package/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.test.page.js +37 -0
  60. package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.js +313 -0
  61. package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.test.data.js +55 -0
  62. package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.test.js +132 -0
  63. package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.test.page.js +70 -0
  64. package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.test.stories.js +104 -0
  65. package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.js +286 -0
  66. package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.test.data.js +51 -0
  67. package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.test.js +77 -0
  68. package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.test.page.js +119 -0
  69. package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.test.stories.js +36 -0
  70. package/src/react-extension/components/Administration/AdministrationWorkspace.js +15 -2
  71. package/src/react-extension/components/Administration/AdministrationWorkspace.test.data.js +5 -1
  72. package/src/react-extension/components/Administration/AdministrationWorkspace.test.js +45 -0
  73. package/src/react-extension/components/Administration/AdministrationWorkspace.test.page.js +23 -3
  74. package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.js +254 -0
  75. package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.data.js +153 -0
  76. package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.js +109 -0
  77. package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.page.js +174 -0
  78. package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.stories.js +43 -0
  79. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.js +36 -0
  80. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.data.js +2 -1
  81. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.js +9 -0
  82. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.page.js +12 -0
  83. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationAccountRecoveryAction/DisplayAdministrationAccountRecoveryActions.js +138 -0
  84. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationAccountRecoveryAction/DisplayAdministrationAccountRecoveryActions.test.data.js +46 -0
  85. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationAccountRecoveryAction/DisplayAdministrationAccountRecoveryActions.test.js +51 -0
  86. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationAccountRecoveryAction/DisplayAdministrationAccountRecoveryActions.test.page.js +93 -0
  87. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.js +2 -0
  88. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.test.js +9 -0
  89. package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.js +105 -2
  90. package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.test.stories.js +104 -0
  91. package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.js +2 -4
  92. package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.test.js +10 -3
  93. package/src/react-extension/components/Administration/HandleSaveAccountRecoveryOrganizationPolicyWorkflow/HandleSaveAccountRecoveryOrganizationPolicyWorkflow.js +178 -0
  94. package/src/react-extension/components/Administration/HandleSaveAccountRecoveryOrganizationPolicyWorkflow/HandleSaveAccountRecoveryOrganizationPolicyWorkflow.test.data.js +47 -0
  95. package/src/react-extension/components/Administration/HandleSaveAccountRecoveryOrganizationPolicyWorkflow/HandleSaveAccountRecoveryOrganizationPolicyWorkflow.test.js +64 -0
  96. package/src/react-extension/components/Administration/HandleSaveAccountRecoveryOrganizationPolicyWorkflow/HandleSaveAccountRecoveryOrganizationPolicyWorkflow.test.page.js +35 -0
  97. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.js +435 -0
  98. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.data.js +186 -0
  99. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.js +95 -0
  100. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.page.js +158 -0
  101. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.stories.js +64 -0
  102. package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.js +535 -0
  103. package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.test.data.js +31 -0
  104. package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.test.js +155 -0
  105. package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.test.page.js +124 -0
  106. package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.test.stories.js +41 -0
  107. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.js +108 -0
  108. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.test.js +48 -0
  109. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.test.page.js +82 -0
  110. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.test.stories.js +51 -0
  111. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/GenerateOrganizationKey.js +471 -0
  112. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/GenerateOrganizationKey.test.js +181 -0
  113. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/ImportOrganizationKey.js +289 -0
  114. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/ImportOrganizationKey.test.js +188 -0
  115. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.js +121 -0
  116. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.test.page.js +262 -0
  117. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.test.stories.js +50 -0
  118. package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.js +8 -41
  119. package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.test.data.js +37 -0
  120. package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.test.js +40 -0
  121. package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.test.page.js +67 -0
  122. package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.test.stories.js +24 -17
  123. package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.js +36 -0
  124. package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.test.js +37 -0
  125. package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.test.page.js +55 -0
  126. package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.test.stories.js +39 -0
  127. package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.test.js +3 -3
  128. package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.test.page.js +0 -1
  129. package/src/react-extension/components/Authentication/CheckMailBox/CheckMailbox.test.stories.js +21 -15
  130. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.js +33 -23
  131. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.data.js +18 -30
  132. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.js +110 -47
  133. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.page.js +33 -10
  134. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.stories.js +36 -19
  135. package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.js +191 -0
  136. package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.test.data.js +90 -0
  137. package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.test.js +92 -0
  138. package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.test.page.js +109 -0
  139. package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.test.stories.js +60 -0
  140. package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.js +5 -29
  141. package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.data.js +17 -18
  142. package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.js +48 -25
  143. package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.page.js +16 -9
  144. package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.stories.js +20 -16
  145. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.js +40 -36
  146. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.data.js +18 -14
  147. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.js +189 -103
  148. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.page.js +50 -11
  149. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.stories.js +31 -19
  150. package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.js +0 -9
  151. package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.test.js +1 -1
  152. package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/{DisplayBrowserNotSupportedPage.js → DisplayBrowserNotSupported.test.page.js} +2 -5
  153. package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.test.stories.js +21 -15
  154. package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.js +0 -9
  155. package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.data.js +36 -0
  156. package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.js +34 -0
  157. package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.page.js +49 -0
  158. package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.stories.js +23 -15
  159. package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.js +0 -9
  160. package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.test.js +1 -1
  161. package/src/react-extension/components/Authentication/DisplayRequireInvitationError/{DisplayRequireInvitationErrorPage.js → DisplayRequireInvitationError.test.page.js} +0 -3
  162. package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.test.stories.js +21 -15
  163. package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.js +91 -10
  164. package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.data.js +56 -0
  165. package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.js +46 -0
  166. package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.page.js +79 -0
  167. package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.stories.js +48 -15
  168. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.js +12 -53
  169. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.data.js +16 -16
  170. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.js +10 -13
  171. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.page.js +16 -6
  172. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.stories.js +21 -15
  173. package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.data.js +17 -3
  174. package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.page.js +0 -1
  175. package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.stories.js +21 -15
  176. package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.test.data.js +28 -11
  177. package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.test.stories.js +21 -16
  178. package/src/react-extension/components/Authentication/HandleSessionExpired/HandleSessionExpired.test.data.js +17 -3
  179. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.js +56 -19
  180. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.data.js +25 -17
  181. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.js +204 -58
  182. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.page.js +43 -7
  183. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.stories.js +31 -19
  184. package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.js +0 -9
  185. package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.data.js +17 -3
  186. package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.stories.js +62 -18
  187. package/src/react-extension/components/Authentication/{IntroduceSetupExtension/IntroduceSetupExtension.js → IntroduceExtension/IntroduceExtension.js} +8 -19
  188. package/src/react-extension/components/Authentication/IntroduceExtension/IntroduceExtension.test.data.js +24 -0
  189. package/src/react-extension/components/Authentication/{IntroduceSetupExtension/IntroduceSetupExtension.test.js → IntroduceExtension/IntroduceExtension.test.js} +16 -6
  190. package/src/react-extension/components/Authentication/{IntroduceSetupExtension/IntroduceSetupExtension.test.page.js → IntroduceExtension/IntroduceExtension.test.page.js} +3 -4
  191. package/src/react-extension/components/Authentication/IntroduceExtension/IntroduceExtension.test.stories.js +39 -0
  192. package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.data.js +27 -9
  193. package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.js +2 -8
  194. package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.page.js +4 -9
  195. package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.stories.js +23 -14
  196. package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.js +114 -0
  197. package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.test.data.js +24 -0
  198. package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.test.js +40 -0
  199. package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.test.page.js +74 -0
  200. package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.test.stories.js +40 -0
  201. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.js +41 -0
  202. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.test.data.js +36 -0
  203. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.test.js +35 -0
  204. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.test.page.js +50 -0
  205. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.test.stories.js +41 -0
  206. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.js +42 -0
  207. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.test.js +43 -0
  208. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.test.page.js +62 -0
  209. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.test.stories.js +40 -0
  210. package/src/react-extension/components/AuthenticationAccountRecovery/OrchestrateAccountRecovery/InsertAccountRecoveryIframe.js +64 -0
  211. package/src/react-extension/components/AuthenticationAccountRecovery/OrchestrateAccountRecovery/OrchestrateAccountRecovery.js +68 -0
  212. package/src/react-extension/components/AuthenticationAccountRecovery/OrchestrateApiAccountRecovery/OrchestrateApiAccountRecovery.js +66 -0
  213. package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.js +8 -22
  214. package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.data.js +25 -0
  215. package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.js +52 -0
  216. package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.page.js +82 -0
  217. package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.stories.js +23 -16
  218. package/src/react-extension/components/AuthenticationLogin/Login/Login.js +167 -145
  219. package/src/react-extension/components/AuthenticationLogin/Login/Login.test.data.js +67 -0
  220. package/src/react-extension/components/AuthenticationLogin/Login/Login.test.js +157 -0
  221. package/src/react-extension/components/AuthenticationLogin/Login/Login.test.page.js +155 -0
  222. package/src/react-extension/components/AuthenticationLogin/Login/Login.test.stories.js +32 -27
  223. package/src/react-extension/components/AuthenticationLogin/OrchestrateLogin/OrchestrateLogin.js +52 -81
  224. package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.js +12 -3
  225. package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.test.stories.js +1 -1
  226. package/src/react-extension/components/AuthenticationRecover/RecoverAuthentication/RecoverAuthentication.js +82 -81
  227. package/src/react-extension/components/AuthenticationSetup/SetupAuthentication/SetupAuthentication.js +80 -87
  228. package/src/react-extension/components/Common/ActionFeedback/DisplayActionFeedbacks.test.js +8 -3
  229. package/src/react-extension/components/Common/Avatar/UserAvatar.js +6 -1
  230. package/src/react-extension/components/Common/Avatar/UserAvatar.test.data.js +27 -0
  231. package/src/react-extension/components/Common/Avatar/UserAvatar.test.stories.js +47 -0
  232. package/src/react-extension/components/Common/Dialog/ManageDialogs/ManageDialogs.js +7 -2
  233. package/src/react-extension/components/Common/Error/HandleErrorEvents/HandleErrorEvents.js +2 -3
  234. package/src/react-extension/components/Common/Error/NotifyError/NotifyError.js +78 -15
  235. package/src/react-extension/components/Common/Icons/Icon.js +7 -0
  236. package/src/react-extension/components/Common/Internationalisation/TranslationProvider.js +1 -0
  237. package/src/react-extension/components/Common/Loading/LoadingSpinner/LoadingSpinner.js +15 -2
  238. package/src/react-extension/components/Common/Loading/LoadingSpinner/LoadingSpinner.test.stories.js +49 -0
  239. package/src/react-extension/components/Common/Route/HandleApplicationFirstLoadRoute.js +77 -0
  240. package/src/react-extension/components/Common/Route/HandleRouteFallback.js +14 -46
  241. package/src/react-extension/components/Common/Tab/Tabs.js +3 -1
  242. package/src/react-extension/components/Common/Workflow/ManageWorkflows/ManageWorkflows.js +72 -0
  243. package/src/react-extension/components/InsertAppIframe.js +12 -6
  244. package/src/react-extension/components/Resource/CreateResource/CreateResource.js +2 -4
  245. package/src/react-extension/components/Resource/CreateResource/CreateResource.test.data.js +2 -2
  246. package/src/react-extension/components/Resource/CreateResource/CreateResource.test.js +17 -2
  247. package/src/react-extension/components/Resource/CreateResource/CreateResource.test.stories.js +19 -3
  248. package/src/react-extension/components/Resource/DeleteResource/DeleteResource.js +2 -4
  249. package/src/react-extension/components/Resource/DeleteResource/DeleteResource.test.js +20 -6
  250. package/src/react-extension/components/Resource/DeleteResource/DeleteResource.test.stories.js +12 -0
  251. package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.test.stories.js +107 -6
  252. package/src/react-extension/components/Resource/EditResource/EditResource.js +2 -4
  253. package/src/react-extension/components/Resource/EditResource/EditResource.test.data.js +2 -2
  254. package/src/react-extension/components/Resource/EditResource/EditResource.test.js +3 -0
  255. package/src/react-extension/components/Resource/EditResource/EditResource.test.stories.js +18 -4
  256. package/src/react-extension/components/Resource/ExportResources/ExportResources.js +5 -7
  257. package/src/react-extension/components/Resource/ExportResources/ExportResources.test.js +9 -2
  258. package/src/react-extension/components/Resource/ExportResources/ExportResources.test.stories.js +4 -2
  259. package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.js +5 -7
  260. package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.test.js +8 -2
  261. package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.test.stories.js +4 -2
  262. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.stories.js +24 -8
  263. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTagsList.js +2 -4
  264. package/src/react-extension/components/Resource/ImportResources/ImportResources.js +2 -4
  265. package/src/react-extension/components/Resource/ImportResources/ImportResources.test.js +10 -2
  266. package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.js +4 -6
  267. package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.test.js +9 -2
  268. package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.test.stories.js +9 -1
  269. package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.js +4 -2
  270. package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.test.stories.js +19 -1
  271. package/src/react-extension/components/ResourceComment/AddResourceComment/AddResourceComment.test.stories.js +15 -3
  272. package/src/react-extension/components/ResourceComment/ConfirmResourceCommentDeletion/ConfirmResourceCommentDeletion.test.stories.js +8 -3
  273. package/src/react-extension/components/ResourceComment/DisplayResourceCommentList/DisplayResourceCommentList.test.stories.js +9 -8
  274. package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.test.stories.js +6 -3
  275. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsActivity.test.stories.js +1 -1
  276. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsDescription.test.stories.js +1 -1
  277. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsInformation.test.data.js +11 -0
  278. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsInformation.test.js +11 -4
  279. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.test.stories.js +11 -10
  280. package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.js +2 -4
  281. package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.js +16 -5
  282. package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.stories.js +13 -0
  283. package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.js +8 -10
  284. package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.test.js +12 -5
  285. package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.test.stories.js +4 -1
  286. package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.js +2 -4
  287. package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.test.js +2 -5
  288. package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.test.stories.js +6 -2
  289. package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.js +2 -4
  290. package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.js +15 -4
  291. package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.stories.js +10 -2
  292. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsActivity.test.stories.js +4 -2
  293. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsInformation.test.js +2 -3
  294. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsInformation.test.stories.js +3 -1
  295. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsPermissions.test.stories.js +3 -1
  296. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePassphraseGenerator.test.stories.js +2 -1
  297. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePasswordGenerator.js +1 -1
  298. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePasswordGenerator.test.stories.js +2 -3
  299. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/GenerateResourcePassword.test.stories.js +7 -3
  300. package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.js +2 -4
  301. package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.test.stories.js +6 -2
  302. package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.js +2 -4
  303. package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.stories.js +6 -2
  304. package/src/react-extension/components/Share/ShareDialog.js +2 -4
  305. package/src/react-extension/components/Share/ShareDialog.test.js +14 -3
  306. package/src/react-extension/components/Share/ShareDialog.test.stories.js +5 -3
  307. package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.js +4 -6
  308. package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.test.js +6 -2
  309. package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.test.stories.js +5 -0
  310. package/src/react-extension/components/User/CreateUser/CreateUser.js +2 -4
  311. package/src/react-extension/components/User/CreateUser/CreateUser.test.stories.js +14 -3
  312. package/src/react-extension/components/User/DeleteUser/DeleteUser.js +2 -4
  313. package/src/react-extension/components/User/DeleteUser/DeleteUser.test.stories.js +9 -2
  314. package/src/react-extension/components/User/DeleteUser/DeleteUserWithConflicts.js +2 -4
  315. package/src/react-extension/components/User/DeleteUser/DeleteUserWithConflicts.test.stories.js +7 -1
  316. package/src/react-extension/components/User/DisplayExpiredAccountRecovery/DisplayExpiredAccountRecovery.js +79 -0
  317. package/src/react-extension/components/User/DisplayExpiredAccountRecovery/DisplayExpiredAccountRecovery.test.stories.js +32 -0
  318. package/src/react-extension/components/User/DisplayUserBadgeMenu/DisplayUserBadgeMenu.js +13 -3
  319. package/src/react-extension/components/User/DisplayUserBadgeMenu/DisplayUserBadgeMenu.test.stories.js +7 -9
  320. package/src/react-extension/components/User/DisplayUserWorkspace/DisplayUserWorkspace.js +5 -1
  321. package/src/react-extension/components/User/DisplayUserWorkspace/DisplayUserWorkspace.test.data.js +18 -9
  322. package/src/react-extension/components/User/DisplayUserWorkspace/DisplayUserWorkspace.test.js +2 -2
  323. package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.js +48 -6
  324. package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.data.js +16 -1
  325. package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.js +14 -0
  326. package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.page.js +8 -0
  327. package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.stories.js +55 -0
  328. package/src/react-extension/components/User/DisplayUsers/DisplayUsers.js +35 -0
  329. package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.data.js +33 -13
  330. package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.js +16 -3
  331. package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.page.js +19 -6
  332. package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.stories.js +38 -0
  333. package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.js +46 -10
  334. package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.test.data.js +21 -6
  335. package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.test.js +38 -5
  336. package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.test.page.js +10 -0
  337. package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.test.stories.js +53 -0
  338. package/src/react-extension/components/User/EditUser/EditUser.js +2 -4
  339. package/src/react-extension/components/User/EditUser/EditUser.test.stories.js +8 -1
  340. package/src/react-extension/components/User/FilterUsersByGroups/DisplayGroupContextualMenu.js +2 -4
  341. package/src/react-extension/components/User/HandleReviewAccountRecoveryRequestRoute/HandleReviewAccountRecoveryRequestRoute.js +98 -0
  342. package/src/react-extension/components/User/HandleReviewAccountRecoveryRequestRoute/HandleReviewAccountRecoveryRequestRoute.test.data.js +56 -0
  343. package/src/react-extension/components/User/HandleReviewAccountRecoveryRequestRoute/HandleReviewAccountRecoveryRequestRoute.test.js +54 -0
  344. package/src/react-extension/components/User/HandleReviewAccountRecoveryRequestRoute/HandleReviewAccountRecoveryRequestRoute.test.page.js +37 -0
  345. package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.js +36 -3
  346. package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.test.data.js +1 -1
  347. package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.test.js +1 -1
  348. package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.js +234 -0
  349. package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.data.js +125 -0
  350. package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.js +150 -0
  351. package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.page.js +113 -0
  352. package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.stories.js +142 -0
  353. package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.js +467 -0
  354. package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.test.data.js +167 -0
  355. package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.test.js +106 -0
  356. package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.test.page.js +101 -0
  357. package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.test.stories.js +143 -0
  358. package/src/react-extension/components/UserDetails/DisplayUserDetailsGroups/DisplayUserDetailsGroups.js +5 -0
  359. package/src/react-extension/components/UserDetails/DisplayUserDetailsGroups/DisplayUserDetailsGroups.test.stories.js +1 -1
  360. package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.test.data.js +1 -1
  361. package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.test.stories.js +1 -1
  362. package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.js +1 -1
  363. package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.data.js +1 -1
  364. package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.stories.js +1 -1
  365. package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.js +2 -4
  366. package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.stories.js +5 -1
  367. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.js +2 -4
  368. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.test.stories.js +8 -1
  369. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.js +2 -4
  370. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.test.stories.js +8 -1
  371. package/src/react-extension/components/UserGroup/DisplayUserGroupDetails/DisplayUserGroupDetails.test.data.js +1 -1
  372. package/src/react-extension/components/UserGroup/DisplayUserGroupDetails/DisplayUserGroupDetails.test.js +1 -1
  373. package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsInformation/DisplayUserGroupDetailsInformation.test.data.js +1 -1
  374. package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembers.test.data.js +1 -1
  375. package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembers.test.stories.js +2 -1
  376. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.js +2 -4
  377. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.data.js +1 -1
  378. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.js +13 -2
  379. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.stories.js +1 -1
  380. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.js +1 -1
  381. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.test.js +5 -2
  382. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.js +1 -1
  383. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.js +11 -1
  384. package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.js +1 -1
  385. package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.test.js +11 -3
  386. package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.test.stories.js +5 -1
  387. package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.js +240 -0
  388. package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.test.data.js +53 -0
  389. package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.test.js +110 -0
  390. package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.test.page.js +85 -0
  391. package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.test.stories.js +65 -0
  392. package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.js +3 -4
  393. package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.test.stories.js +1 -1
  394. package/src/react-extension/components/UserSetting/DisplayUserProfile/DisplayUserProfile.test.stories.js +1 -1
  395. package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspace/DisplayUserSettingsWorkspace.js +16 -2
  396. package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspaceBreadcrumb/DisplayUserSettingsWorkspaceBreadcrumb.js +2 -1
  397. package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.js +2 -4
  398. package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.test.stories.js +18 -12
  399. package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.js +2 -4
  400. package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.test.stories.js +17 -3
  401. package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.js +29 -0
  402. package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.test.stories.js +5 -0
  403. package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.js +2 -4
  404. package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.test.stories.js +10 -3
  405. package/src/react-extension/contexts/AccountRecoveryUserContext.js +223 -0
  406. package/src/react-extension/contexts/AccountRecoveryUserContext.test.data.js +55 -0
  407. package/src/react-extension/contexts/AccountRecoveryUserContext.test.js +58 -0
  408. package/src/react-extension/contexts/ActionFeedbackContext.test.data.js +28 -0
  409. package/src/react-extension/contexts/AdminAccountRecoveryContext.js +211 -0
  410. package/src/react-extension/contexts/AdminAccountRecoveryContext.test.data.js +66 -0
  411. package/src/react-extension/contexts/AdminAccountRecoveryContext.test.js +229 -0
  412. package/src/react-extension/contexts/AdministrationWorkspaceContext.js +27 -0
  413. package/src/react-extension/contexts/ApiAccountRecoveryContext.js +147 -0
  414. package/src/react-extension/contexts/ApiRecoverContext.js +11 -12
  415. package/src/react-extension/contexts/ApiSetupContext.js +8 -8
  416. package/src/react-extension/contexts/Authentication/AuthenticationAccountRecoveryContext.js +241 -0
  417. package/src/react-extension/contexts/Authentication/AuthenticationAccountRecoveryContext.test.data.js +49 -0
  418. package/src/react-extension/contexts/Authentication/AuthenticationAccountRecoveryContext.test.js +161 -0
  419. package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.js +218 -0
  420. package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.test.data.js +61 -0
  421. package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.test.js +178 -0
  422. package/src/react-extension/contexts/Authentication/AuthenticationRecoverContext.js +297 -0
  423. package/src/react-extension/contexts/Authentication/AuthenticationRecoverContext.test.data.js +60 -0
  424. package/src/react-extension/contexts/Authentication/AuthenticationRecoverContext.test.js +320 -0
  425. package/src/react-extension/contexts/Authentication/AuthenticationSetupContext.js +336 -0
  426. package/src/react-extension/contexts/Authentication/AuthenticationSetupContext.test.data.js +63 -0
  427. package/src/react-extension/contexts/Authentication/AuthenticationSetupContext.test.js +364 -0
  428. package/src/react-extension/contexts/DialogContext.test.data.js +27 -0
  429. package/src/react-extension/contexts/ExtAppContext.js +0 -6
  430. package/src/react-extension/contexts/ExtAppContext.test.data.js +50 -0
  431. package/src/react-extension/contexts/NavigationContext.js +26 -2
  432. package/src/react-extension/contexts/ResourceWorkspaceContext.test.page.js +10 -1
  433. package/src/react-extension/contexts/UserSettingsContext.js +1 -2
  434. package/src/react-extension/contexts/UserWorkspaceContext.js +35 -10
  435. package/src/react-extension/contexts/UserWorkspaceContext.test.data.js +13 -0
  436. package/src/react-extension/contexts/UserWorkspaceContext.test.page.js +6 -1
  437. package/src/react-extension/contexts/WorkflowContext.js +89 -0
  438. package/src/react-extension/contexts/WorkflowContext.test.data.js +27 -0
  439. package/src/react-extension/lib/Error/GpgKeyError.js +22 -0
  440. package/src/react-extension/lib/Error/InvalidMasterPasswordError.js +23 -0
  441. package/src/react-extension/lib/Error/ServerKeyChangedError.js +22 -0
  442. package/src/react-extension/test/fixture/Settings/siteSettings.js +3 -0
  443. package/src/react-extension/test/fixture/Settings/userSettings.js +1 -1
  444. package/src/react-extension/test/mock/MockPort.js +2 -2
  445. package/src/react-extension/test/mock/MockStorage.js +0 -2
  446. package/src/react-extension/test/mock/components/Internationalisation/MockTranslationProvider.js +2 -1
  447. package/src/react-extension/test/mock/components/React/mockSetState.js +22 -0
  448. package/src/react-quickaccess/ExtQuickAccess.js +10 -1
  449. package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.js +1 -1
  450. package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.test.stories.js +6 -10
  451. package/src/react-quickaccess/components/FilterResourcesByTagPage/FilterResourcesByTagPage.test.stories.js +6 -10
  452. package/src/react-quickaccess/components/LoginPage/LoginPage.js +2 -6
  453. package/src/react-quickaccess/components/LoginPage/LoginPage.test.stories.js +1 -0
  454. package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.js +17 -3
  455. package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.test.stories.js +5 -3
  456. package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.js +31 -2
  457. package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.data.js +1 -1
  458. package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.js +32 -3
  459. package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.data.js +6 -3
  460. package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.js +29 -19
  461. package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.test.data.js +2 -0
  462. package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.stories.js +12 -9
  463. package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.js +1 -1
  464. package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.test.stories.js +127 -164
  465. package/src/react-web-integration/lib/Dom/DomUtils.js +23 -1
  466. package/src/react-web-integration/lib/InForm/InFormFieldSelector.js +7 -1
  467. package/src/react-web-integration/lib/InForm/InFormManager.js +24 -14
  468. package/src/react-web-integration/lib/InForm/InformManager.test.data.js +80 -2
  469. package/src/react-web-integration/lib/InForm/InformManager.test.js +147 -7
  470. package/src/react-web-integration/lib/InForm/InformManager.test.page.js +16 -2
  471. package/src/shared/lib/Error/EntityValidationError.js +81 -0
  472. package/src/shared/lib/apiClient/apiClient.test.js +1 -1
  473. package/src/shared/services/accountRecovery/ApiAppAccountRecoveryUserService.js +78 -0
  474. package/src/shared/services/accountRecovery/ExtAppAccountRecoveryUserService.js +24 -0
  475. package/src/react-extension/components/Authentication/CheckPassphrase/GenerateKeyOnPassphraseLostSecondaryAction.js +0 -41
  476. package/src/react-extension/components/Authentication/CheckPassphrase/HelpOnPassphraseLostSecondaryAction.js +0 -41
  477. package/src/react-extension/components/Authentication/CheckPassphrase/HelpOnPrivateKeyLostSecondaryAction.js +0 -41
  478. package/src/react-extension/components/Authentication/ImportGpgKey/GenerateKeySecondaryAction.js +0 -40
  479. package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.test.data.js +0 -11
  480. package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.test.stories.js +0 -34
  481. package/src/react-extension/components/AuthenticationLogin/DisplayLoginError/DisplayLoginError.js +0 -87
  482. package/src/react-extension/components/AuthenticationLogin/DisplayLoginError/DisplayLoginError.test.stories.js +0 -33
  483. package/src/react-extension/components/AuthenticationLogin/DisplayLoginInProgress/DisplayLoginInProgress.js +0 -49
  484. package/src/react-extension/components/AuthenticationLogin/DisplayLoginInProgress/DisplayLoginProgress.test.stories.js +0 -33
  485. package/src/react-extension/components/Internationalisation/ChangeLocale/ChangeExtAuthenticationLocale.js +0 -63
  486. package/src/react-extension/contexts/AuthenticationContext.js +0 -467
  487. package/src/react-extension/contexts/AuthenticationContext.test.data.js +0 -15
  488. package/src/react-extension/contexts/AuthenticationContext.test.js +0 -252
@@ -0,0 +1,262 @@
1
+ /**
2
+ * Passbolt ~ Open source password manager for teams
3
+ * Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
4
+ *
5
+ * Licensed under GNU Affero General Public License version 3 of the or any later version.
6
+ * For full copyright and license information, please see the LICENSE.txt
7
+ * Redistributions of files must retain the above copyright notice.
8
+ *
9
+ * @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
10
+ * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
11
+ * @link https://www.passbolt.com Passbolt(tm)
12
+ * @since 3.6.0
13
+ */
14
+
15
+ import {fireEvent, render, waitFor} from "@testing-library/react";
16
+ import React from "react";
17
+ import SelectAccountRecoveryOrganizationKey from "./SelectAccountRecoveryOrganizationKey";
18
+ import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
19
+
20
+ const GENERATE_TAB_INDEX = 1;
21
+
22
+ /**
23
+ * The SelectAccountRecoveryOrganizationKeyPage component represented as a page
24
+ */
25
+ export default class SelectAccountRecoveryOrganizationKeyPage {
26
+ /**
27
+ * Default constructor
28
+ * @param appContext An app context
29
+ * @param props Props to attach
30
+ */
31
+ constructor(props) {
32
+ this._page = render(
33
+ <MockTranslationProvider>
34
+ <SelectAccountRecoveryOrganizationKey {...props} />
35
+ </MockTranslationProvider>
36
+ );
37
+ }
38
+
39
+ /**
40
+ * Returns the Select Account Recovery Organization Key Dialog
41
+ */
42
+ get selectAccountRecoveryOrganizationKeyDialog() {
43
+ return this._page.container.querySelector('.organization-recover-key-dialog');
44
+ }
45
+
46
+ /**
47
+ * Returns the dialog close element
48
+ */
49
+ get closeButton() {
50
+ return this._page.container.querySelector('.dialog-close');
51
+ }
52
+
53
+ /**
54
+ * Returns the title element
55
+ */
56
+ get title() {
57
+ return this._page.container.querySelector('.organization-recover-key-dialog.dialog-wrapper .dialog-header-title');
58
+ }
59
+
60
+ /**
61
+ * Returns all the available tabs
62
+ */
63
+ get tabs() {
64
+ return this._page.container.querySelectorAll('.organization-recover-key-dialog.dialog-wrapper .tab');
65
+ }
66
+
67
+ /**
68
+ * Get the title in the tab "Import"
69
+ */
70
+ get imoprtKeyTitle() {
71
+ return this._page.container.querySelector('.organization-recover-key-dialog.dialog-wrapper .form-content.import-organization-key label[for="organization-recover-form-key"]');
72
+ }
73
+
74
+ /**
75
+ * Get the textarea in the tab "Import"
76
+ */
77
+ get importKeyTextArea() {
78
+ return this._page.container.querySelector('.organization-recover-key-dialog.dialog-wrapper .form-content.import-organization-key #organization-recover-form-key');
79
+ }
80
+
81
+ /**
82
+ * Get the file input in the tab "Import"
83
+ */
84
+ get browseInput() {
85
+ return this._page.container.querySelector('.organization-recover-key-dialog.dialog-wrapper .form-content.import-organization-key .input-file-chooser-wrapper input');
86
+ }
87
+
88
+ /**
89
+ * Get the text in the pro tip box
90
+ */
91
+ get proTipDescription() {
92
+ return this._page.container.querySelector('.organization-recover-key-dialog.dialog-wrapper .message.notice').textContent;
93
+ }
94
+
95
+ /**
96
+ * Get the link found in the pro tip box
97
+ */
98
+ get proTipLink() {
99
+ return this._page.container.querySelector('.organization-recover-key-dialog.dialog-wrapper .message.notice a[href]');
100
+ }
101
+
102
+ /**
103
+ * Get the "Apply" button
104
+ */
105
+ get applyButton() {
106
+ return this._page.container.querySelector('.organization-recover-key-dialog.dialog-wrapper .submit-wrapper input[type="submit"]');
107
+ }
108
+
109
+ /**
110
+ * Get the HTML element that holds the error message of the "Import" form
111
+ */
112
+ get importErrorMessage() {
113
+ return this._page.container.querySelector('.organization-recover-key-dialog.dialog-wrapper .form-content.import-organization-key .error-message');
114
+ }
115
+
116
+ get nameField() {
117
+ return this._page.container.querySelector('#generate-organization-key-form-name');
118
+ }
119
+
120
+ get emailField() {
121
+ return this._page.container.querySelector('#generate-organization-key-form-email');
122
+ }
123
+
124
+ get algorithmField() {
125
+ return this._page.container.querySelector('#generate-organization-key-form-algorithm');
126
+ }
127
+
128
+ get keySizeField() {
129
+ return this._page.container.querySelector('#generate-organization-key-form-key-size');
130
+ }
131
+
132
+ get passphraseField() {
133
+ return this._page.container.querySelector('#generate-organization-key-form-password');
134
+ }
135
+
136
+ get showPassphraseButton() {
137
+ return this._page.container.querySelector('.organization-recover-key-dialog.dialog-wrapper .form-content.generate-organization-key .password-view');
138
+ }
139
+
140
+ get securityToken() {
141
+ return this._page.container.querySelector('.organization-recover-key-dialog.dialog-wrapper .form-content.generate-organization-key .security-token');
142
+ }
143
+
144
+ get passphraseStrength() {
145
+ return this._page.container.querySelector('.organization-recover-key-dialog.dialog-wrapper .form-content.generate-organization-key .password-complexity');
146
+ }
147
+
148
+ get warningImportInstead() {
149
+ return this._page.container.querySelector('#generate-organization-key-setting-overridden-banner');
150
+ }
151
+
152
+ get cancelButton() {
153
+ return this._page.container.querySelector('.organization-recover-key-dialog.dialog-wrapper .cancel');
154
+ }
155
+
156
+ get generateButton() {
157
+ return this._page.container.querySelector('.organization-recover-key-dialog.dialog-wrapper .submit-wrapper input[type="submit"]');
158
+ }
159
+
160
+ get generateTab() {
161
+ return this._page.container.querySelectorAll('.organization-recover-key-dialog.dialog-wrapper .tabs .tab a')[GENERATE_TAB_INDEX];
162
+ }
163
+
164
+ get algorithmTooltip() {
165
+ return this._page.container.querySelector('.organization-recover-key-dialog.dialog-wrapper .form-content.generate-organization-key [for="generate-organization-key-form-algorithm"] .tooltip');
166
+ }
167
+
168
+ get keySizeTooltip() {
169
+ return this._page.container.querySelector('.organization-recover-key-dialog.dialog-wrapper .form-content.generate-organization-key [for="generate-organization-key-form-keySize"] .tooltip');
170
+ }
171
+
172
+ get nameFieldError() {
173
+ return this._page.container.querySelector('.organization-recover-key-dialog.dialog-wrapper .form-content.generate-organization-key .name.error-message');
174
+ }
175
+
176
+ get emailFieldError() {
177
+ return this._page.container.querySelector('.organization-recover-key-dialog.dialog-wrapper .form-content.generate-organization-key .email.error-message');
178
+ }
179
+
180
+ get passphraseFieldError() {
181
+ return this._page.container.querySelector('.organization-recover-key-dialog.dialog-wrapper .form-content.generate-organization-key .password.error-message');
182
+ }
183
+
184
+ /**
185
+ * Returns true if the page object exists in the container
186
+ */
187
+ exists() {
188
+ return this.selectAccountRecoveryOrganizationKeyDialog !== null;
189
+ }
190
+
191
+ /**
192
+ * Returns true if the current selected tab is the "Import" one
193
+ * @returns bool
194
+ */
195
+ isImportKeyTabSelected() {
196
+ return this._page.container.querySelector(".organization-recover-key-dialog.dialog-wrapper .tabs-active-content form .import-organization-key") !== null;
197
+ }
198
+
199
+ /**
200
+ * Returns true if the current selected tab is the "Generate" one
201
+ * @returns bool
202
+ */
203
+ isGenerateTabSeletect() {
204
+ return this._page.container.querySelector(".organization-recover-key-dialog.dialog-wrapper .tabs-active-content .generate-organization-key") !== null;
205
+ }
206
+
207
+ /**
208
+ * Return true if the given field is marked as required
209
+ * @return bool
210
+ */
211
+ isFieldRequired(field) {
212
+ return field.className.indexOf("required") !== -1;
213
+ }
214
+
215
+ /**
216
+ * Simulates a user having selected a file from the OS.
217
+ *
218
+ * @param {string} fileContent
219
+ * @param {function} waitForCallback
220
+ */
221
+ async userHasSelectedAFile(fileContent, waitForCallback) {
222
+ fireEvent.change(this.browseInput, {
223
+ target: {
224
+ files: [new File([fileContent], 'file.txt', {type: 'plain/text'})],
225
+ },
226
+ });
227
+
228
+ await waitFor(waitForCallback);
229
+ }
230
+
231
+ /**
232
+ * Simulates a click on the "Apply" button
233
+ * @param {function} waitForCallback
234
+ */
235
+ async applyChanges(waitForCallback) {
236
+ const leftClick = {button: 0};
237
+ fireEvent.click(this.applyButton, leftClick);
238
+
239
+ await waitFor(waitForCallback);
240
+ }
241
+
242
+ async clickOnGenerateTab(waitForCallback) {
243
+ const leftClick = {button: 0};
244
+ fireEvent.click(this.generateTab, leftClick);
245
+
246
+ await waitFor(waitForCallback);
247
+ }
248
+
249
+ async toggleShowPassword(waitForCallback) {
250
+ const leftClick = {button: 0};
251
+ fireEvent.click(this.showPassphraseButton, leftClick);
252
+
253
+ await waitFor(waitForCallback);
254
+ }
255
+
256
+ async clickOnGenerateButton(waitForCallback) {
257
+ const leftClick = {button: 0};
258
+ fireEvent.click(this.generateButton, leftClick);
259
+
260
+ await waitFor(waitForCallback);
261
+ }
262
+ }
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Passbolt ~ Open source password manager for teams
3
+ * Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
4
+ *
5
+ * Licensed under GNU Affero General Public License version 3 of the or any later version.
6
+ * For full copyright and license information, please see the LICENSE.txt
7
+ * Redistributions of files must retain the above copyright notice.
8
+ *
9
+ * @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
10
+ * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
11
+ * @link https://www.passbolt.com Passbolt(tm)
12
+ * @since 3.6.0
13
+ */
14
+
15
+ import {MemoryRouter, Route} from "react-router-dom";
16
+ import React from "react";
17
+ import SelectAccountRecoveryOrganizationKey from "./SelectAccountRecoveryOrganizationKey";
18
+ import "../../../../css/themes/default/api_main.css";
19
+ import AppContext from "../../../contexts/AppContext";
20
+ import UserSettings from "../../../../shared/lib/Settings/UserSettings";
21
+ import userSettingsFixture from "../../../test/fixture/Settings/userSettings";
22
+
23
+
24
+ export default {
25
+ title: 'Passbolt/Administration/SelectAccountRecoveryOrganizationKey',
26
+ component: SelectAccountRecoveryOrganizationKey
27
+ };
28
+
29
+ const context = {
30
+ userSettings: new UserSettings(userSettingsFixture),
31
+ };
32
+
33
+ const Template = args =>
34
+ <AppContext.Provider value={context}>
35
+ <MemoryRouter initialEntries={['/']}>
36
+ <div className="panel main">
37
+ <div className="panel middle">
38
+ <div className="workspace-main">
39
+ <div className="grid grid-responsive-12">
40
+ <Route component={routerProps => <SelectAccountRecoveryOrganizationKey {...args} {...routerProps}/>}></Route>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ </div>
45
+ </MemoryRouter>
46
+ </AppContext.Provider>;
47
+
48
+ export const Default = Template.bind({});
49
+ Default.args = {
50
+ };
@@ -13,50 +13,18 @@
13
13
  */
14
14
  import React, {Component} from "react";
15
15
  import PropTypes from "prop-types";
16
- import {withAppContext} from "../../../contexts/AppContext";
17
- import {
18
- AuthenticationContextProcess,
19
- withAuthenticationContext
20
- } from "../../../contexts/AuthenticationContext";
21
16
  import {Trans, withTranslation} from "react-i18next";
17
+ import {withAppContext} from "../../../contexts/AppContext";
22
18
 
23
19
  /**
24
20
  * This component propose to help the use who lost his gpg key or passphrase
25
21
  */
26
22
  class AskForAuthenticationHelp extends Component {
27
23
  /**
28
- * Default contrustor
29
- */
30
- constructor(props) {
31
- super(props);
32
- this.bindEventHandlers();
33
- }
34
-
35
-
36
- /**
37
- * Handle component event handlers
38
- */
39
- bindEventHandlers() {
40
- this.onGoToImportGpgKeyRequested = this.onGoToImportGpgKeyRequested.bind(this);
41
- }
42
-
43
- /**
44
- * When the user wants to enter its credentials again
45
- */
46
- onGoToImportGpgKeyRequested() {
47
- if (this.props.authenticationContext.process === AuthenticationContextProcess.SETUP) {
48
- this.props.authenticationContext.onGoToImportGpgKeyRequested();
49
- } else {
50
- this.props.authenticationContext.onInitializeRecoverRequested();
51
- }
52
- }
53
-
54
- /**
55
- * Get the translate function
56
- * @returns {function(...[*]=)}
24
+ * When the user wants to try again.
57
25
  */
58
- get translate() {
59
- return this.props.t;
26
+ handleClickTryAgain() {
27
+ this.props.onTryAgain();
60
28
  }
61
29
 
62
30
  /**
@@ -79,7 +47,7 @@ class AskForAuthenticationHelp extends Component {
79
47
  rel="noopener noreferrer">
80
48
  <Trans>Request new account</Trans>
81
49
  </a>
82
- <a onClick={this.onGoToImportGpgKeyRequested}>
50
+ <a onClick={this.handleClickTryAgain.bind(this)}>
83
51
  <Trans>I want to try again.</Trans>
84
52
  </a>
85
53
  </div>
@@ -89,9 +57,8 @@ class AskForAuthenticationHelp extends Component {
89
57
  }
90
58
 
91
59
  AskForAuthenticationHelp.propTypes = {
92
- context: PropTypes.object, // The application context
93
- authenticationContext: PropTypes.any, // The authentication context
94
- t: PropTypes.func, // The translation function
60
+ context: PropTypes.object.isRequired, // The application context.
61
+ onTryAgain: PropTypes.func.isRequired, // The callback to trigger when the user wants to try again.
95
62
  };
96
63
 
97
- export default withAppContext(withAuthenticationContext(withTranslation('common')(AskForAuthenticationHelp)));
64
+ export default withAppContext(withTranslation('common')(AskForAuthenticationHelp));
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Passbolt ~ Open source password manager for teams
3
+ * Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
4
+ *
5
+ * Licensed under GNU Affero General Public License version 3 of the or any later version.
6
+ * For full copyright and license information, please see the LICENSE.txt
7
+ * Redistributions of files must retain the above copyright notice.
8
+ *
9
+ * @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
10
+ * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
11
+ * @link https://www.passbolt.com Passbolt(tm)
12
+ * @since 3.6.0
13
+ */
14
+
15
+ /**
16
+ * Returns the default app context for the unit test
17
+ * @param appContext An existing app context
18
+ * @returns {any}
19
+ */
20
+ export function defaultAppContext(appContext) {
21
+ const defaultAppContext = {
22
+ trustedDomain: "https://passbolt.local"
23
+ };
24
+ return Object.assign(defaultAppContext, appContext || {});
25
+ }
26
+
27
+ /**
28
+ * Default props
29
+ * @returns {{}}
30
+ */
31
+ export function defaultProps(props) {
32
+ const defaultProps = {
33
+ context: defaultAppContext(),
34
+ onTryAgain: jest.fn(() => Promise.resolve()),
35
+ };
36
+ return Object.assign(defaultProps, props || {});
37
+ }
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Passbolt ~ Open source password manager for teams
3
+ * Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
4
+ *
5
+ * Licensed under GNU Affero General Public License version 3 of the or any later version.
6
+ * For full copyright and license information, please see the LICENSE.txt
7
+ * Redistributions of files must retain the above copyright notice.
8
+ *
9
+ * @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
10
+ * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
11
+ * @link https://www.passbolt.com Passbolt(tm)
12
+ * @since 3.6.0
13
+ */
14
+ import {defaultProps} from "./AskForAuthenticationHelp.test.data";
15
+ import AskForAuthenticationHelpTestPage from "./AskForAuthenticationHelp.test.page";
16
+
17
+ beforeEach(() => {
18
+ jest.resetModules();
19
+ });
20
+
21
+ describe("AskForAuthenticationHelp", () => {
22
+ let page, props;
23
+
24
+ beforeEach(() => {
25
+ props = defaultProps(); // The props to pass
26
+ page = new AskForAuthenticationHelpTestPage(props);
27
+ });
28
+
29
+ it('As AN I should be able to request a new account', async() => {
30
+ expect.assertions(1);
31
+ expect(page.requestNewAccountButton.getAttribute("href")).toEqual(`${props.context.trustedDomain}/users/recover`);
32
+ });
33
+
34
+ it('As AN I should be able to try again', async() => {
35
+ expect.assertions(1);
36
+ await page.tryAgain();
37
+ expect(props.onTryAgain).toHaveBeenCalled();
38
+ });
39
+ });
40
+
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Passbolt ~ Open source password manager for teams
3
+ * Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
4
+ *
5
+ * Licensed under GNU Affero General Public License version 3 of the or any later version.
6
+ * For full copyright and license information, please see the LICENSE.txt
7
+ * Redistributions of files must retain the above copyright notice.
8
+ *
9
+ * @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
10
+ * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
11
+ * @link https://www.passbolt.com Passbolt(tm)
12
+ * @since 3.6.0
13
+ */
14
+ import {fireEvent, render} from "@testing-library/react";
15
+ import React from "react";
16
+ import AskForAuthenticationHelp from "./AskForAuthenticationHelp";
17
+ import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
18
+
19
+ /**
20
+ * The AskForAuthenticationHelp component represented as a page
21
+ */
22
+ export default class AskForAuthenticationHelpTestPage {
23
+ /**
24
+ * Default constructor
25
+ * @param props Props to attach
26
+ */
27
+ constructor(props) {
28
+ this._page = render(
29
+ <MockTranslationProvider>
30
+ <AskForAuthenticationHelp {...props}/>
31
+ </MockTranslationProvider>
32
+ );
33
+ }
34
+
35
+ /**
36
+ * Returns the request new account element
37
+ */
38
+ get requestNewAccountButton() {
39
+ return this._page.container.querySelector('.button.primary');
40
+ }
41
+
42
+ /**
43
+ * Request new account
44
+ */
45
+ async requestNewAccount() {
46
+ const leftClick = {button: 0};
47
+ fireEvent.click(this.requestNewAccountButton, leftClick);
48
+ }
49
+
50
+ /**
51
+ * Returns the try again link element
52
+ */
53
+ get tryAgainLink() {
54
+ return this._page.container.querySelector('.form-actions a:not(.primary)');
55
+ }
56
+
57
+ /**
58
+ * Try again
59
+ */
60
+ /**
61
+ * Request new account
62
+ */
63
+ async tryAgain() {
64
+ const leftClick = {button: 0};
65
+ fireEvent.click(this.tryAgainLink, leftClick);
66
+ }
67
+ }
@@ -1,33 +1,40 @@
1
+ /**
2
+ * Passbolt ~ Open source password manager for teams
3
+ * Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
4
+ *
5
+ * Licensed under GNU Affero General Public License version 3 of the or any later version.
6
+ * For full copyright and license information, please see the LICENSE.txt
7
+ * Redistributions of files must retain the above copyright notice.
8
+ *
9
+ * @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
10
+ * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
11
+ * @link https://www.passbolt.com Passbolt(tm)
12
+ * @since 3.0.0
13
+ */
14
+
1
15
  import React from "react";
2
16
  import {MemoryRouter, Route} from "react-router-dom";
3
- import {AuthenticationContext} from "../../../contexts/AuthenticationContext";
4
17
  import AskForAuthenticationHelp from "./AskForAuthenticationHelp";
5
-
18
+ import {defaultProps} from "./AskForAuthenticationHelp.test.data";
6
19
 
7
20
  export default {
8
21
  title: 'Passbolt/Authentication/AskForAuthenticationHelp',
9
22
  component: AskForAuthenticationHelp
10
23
  };
11
24
 
12
- const context = {
13
- };
14
-
15
25
  const Template = args =>
16
- <AuthenticationContext.Provider value={context}>
17
- <div id="container" className="container page login">
18
- <div className="content">
19
- <div className="login-form">
20
- <MemoryRouter initialEntries={['/']}>
21
- <Route component={routerProps => <AskForAuthenticationHelp {...args} {...routerProps}/>}></Route>
22
- </MemoryRouter>
23
- </div>
26
+ <div id="container" className="container page login">
27
+ <div className="content">
28
+ <div className="login-form">
29
+ <MemoryRouter initialEntries={['/']}>
30
+ <Route component={routerProps => <AskForAuthenticationHelp {...args} {...routerProps}/>}/>
31
+ </MemoryRouter>
24
32
  </div>
25
33
  </div>
26
- </AuthenticationContext.Provider>;
27
-
34
+ </div>;
28
35
 
29
36
  export const Initial = Template.bind({});
30
-
37
+ Initial.args = defaultProps();
31
38
  Initial.parameters = {
32
- css: "ext_authentication"
39
+ css: "ext_authentication",
33
40
  };
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Passbolt ~ Open source password manager for teams
3
+ * Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
4
+ *
5
+ * Licensed under GNU Affero General Public License version 3 of the or any later version.
6
+ * For full copyright and license information, please see the LICENSE.txt
7
+ * Redistributions of files must retain the above copyright notice.
8
+ *
9
+ * @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
10
+ * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
11
+ * @link https://www.passbolt.com Passbolt(tm)
12
+ * @since 3.6.0
13
+ */
14
+ import React, {Component} from "react";
15
+ import {Trans, withTranslation} from "react-i18next";
16
+
17
+ class CheckAccountRecoveryEmail extends Component {
18
+ /**
19
+ * Render the component
20
+ * @returns {JSX}
21
+ */
22
+ render() {
23
+ // @todo review style as per figma
24
+ return (
25
+ <div className="email-sent-instructions">
26
+ <div className="email-sent-bg">
27
+ </div>
28
+ <h1><Trans>Please wait, while your request is processed.</Trans></h1>
29
+ <p><Trans>As soon as an administrator validates your request you will receive an email link to complete the process.</Trans></p>
30
+ <p><b><Trans>You need use the same computer and browser to finalize the process.</Trans></b></p>
31
+ </div>
32
+ );
33
+ }
34
+ }
35
+
36
+ export default withTranslation('common')(CheckAccountRecoveryEmail);
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Passbolt ~ Open source password manager for teams
3
+ * Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
4
+ *
5
+ * Licensed under GNU Affero General Public License version 3 of the or any later version.
6
+ * For full copyright and license information, please see the LICENSE.txt
7
+ * Redistributions of files must retain the above copyright notice.
8
+ *
9
+ * @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
10
+ * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
11
+ * @link https://www.passbolt.com Passbolt(tm)
12
+ * @since 3.6.0
13
+ */
14
+
15
+ /**
16
+ * Unit tests on CheckAccountRecoveryEmail in regard of specifications
17
+ */
18
+
19
+ import CheckAccountRecoveryEmailTestPage from "./CheckAccountRecoveryEmail.test.page";
20
+
21
+ beforeEach(() => {
22
+ jest.resetModules();
23
+ });
24
+
25
+ describe("CheckAccountRecoveryEmail", () => {
26
+ let page; // The page to test against
27
+
28
+ beforeEach(() => {
29
+ page = new CheckAccountRecoveryEmailTestPage();
30
+ });
31
+
32
+ it('As AN I should be notified that an email will be sent to me when an administrator accept my account recovery request', () => {
33
+ expect(page.exists()).toBeTruthy();
34
+ expect(page.title).toBe("Please wait, while your request is processed.");
35
+ expect(page.message).toContain("As soon as an administrator validates your request you will receive an email link to complete the process.");
36
+ });
37
+ });