passbolt-styleguide 3.5.2 → 3.6.0-alpha2

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 (495) 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 +159 -15
  31. package/jest.config.json +13 -0
  32. package/package.json +26 -21
  33. package/src/locales/en-UK/common.json +140 -4
  34. package/src/react-extension/ApiAccountRecovery.entry.js +25 -0
  35. package/src/react-extension/ApiAccountRecovery.js +233 -0
  36. package/src/react-extension/ApiApp.js +50 -43
  37. package/src/react-extension/ExtApp.js +129 -105
  38. package/src/react-extension/ExtAuthenticationAccountRecovery.js +173 -0
  39. package/src/react-extension/ExtAuthenticationLogin.js +35 -33
  40. package/src/react-extension/ExtAuthenticationRecover.js +23 -35
  41. package/src/react-extension/ExtAuthenticationSetup.js +24 -46
  42. package/src/react-extension/ExtBootstrapAccountRecovery.js +75 -0
  43. package/src/react-extension/ExtBootstrapApp.js +4 -0
  44. package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.js +114 -0
  45. package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.test.data.js +27 -0
  46. package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.test.js +72 -0
  47. package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.test.page.js +74 -0
  48. package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.test.stories.js +51 -0
  49. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryStatusCheck/HandleAccountRecoveryStatusCheck.js +80 -0
  50. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryStatusCheck/HandleAccountRecoveryStatusCheck.test.data.js +60 -0
  51. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryStatusCheck/HandleAccountRecoveryStatusCheck.test.js +110 -0
  52. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryStatusCheck/HandleAccountRecoveryStatusCheck.test.page.js +40 -0
  53. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryUserSettingsRoute/HandleAccountRecoveryUserSettingsRoute.js +96 -0
  54. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryUserSettingsRoute/HandleAccountRecoveryUserSettingsRoute.test.data.js +63 -0
  55. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryUserSettingsRoute/HandleAccountRecoveryUserSettingsRoute.test.js +88 -0
  56. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryUserSettingsRoute/HandleAccountRecoveryUserSettingsRoute.test.page.js +37 -0
  57. package/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.js +214 -0
  58. package/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.test.data.js +49 -0
  59. package/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.test.js +98 -0
  60. package/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.test.page.js +37 -0
  61. package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.js +316 -0
  62. package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.test.data.js +55 -0
  63. package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.test.js +132 -0
  64. package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.test.page.js +70 -0
  65. package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.test.stories.js +104 -0
  66. package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.js +286 -0
  67. package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.test.data.js +51 -0
  68. package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.test.js +77 -0
  69. package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.test.page.js +119 -0
  70. package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.test.stories.js +36 -0
  71. package/src/react-extension/components/Administration/AdministrationWorkspace.js +15 -2
  72. package/src/react-extension/components/Administration/AdministrationWorkspace.test.data.js +5 -1
  73. package/src/react-extension/components/Administration/AdministrationWorkspace.test.js +45 -0
  74. package/src/react-extension/components/Administration/AdministrationWorkspace.test.page.js +23 -3
  75. package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.js +254 -0
  76. package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.data.js +153 -0
  77. package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.js +109 -0
  78. package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.page.js +174 -0
  79. package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.stories.js +43 -0
  80. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.js +36 -0
  81. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.data.js +2 -1
  82. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.js +9 -0
  83. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.page.js +12 -0
  84. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationAccountRecoveryAction/DisplayAdministrationAccountRecoveryActions.js +138 -0
  85. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationAccountRecoveryAction/DisplayAdministrationAccountRecoveryActions.test.data.js +46 -0
  86. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationAccountRecoveryAction/DisplayAdministrationAccountRecoveryActions.test.js +51 -0
  87. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationAccountRecoveryAction/DisplayAdministrationAccountRecoveryActions.test.page.js +93 -0
  88. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.js +2 -0
  89. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.test.js +9 -0
  90. package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.js +105 -2
  91. package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.test.stories.js +104 -0
  92. package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.js +2 -4
  93. package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.test.js +10 -3
  94. package/src/react-extension/components/Administration/HandleSaveAccountRecoveryOrganizationPolicyWorkflow/HandleSaveAccountRecoveryOrganizationPolicyWorkflow.js +180 -0
  95. package/src/react-extension/components/Administration/HandleSaveAccountRecoveryOrganizationPolicyWorkflow/HandleSaveAccountRecoveryOrganizationPolicyWorkflow.test.data.js +47 -0
  96. package/src/react-extension/components/Administration/HandleSaveAccountRecoveryOrganizationPolicyWorkflow/HandleSaveAccountRecoveryOrganizationPolicyWorkflow.test.js +64 -0
  97. package/src/react-extension/components/Administration/HandleSaveAccountRecoveryOrganizationPolicyWorkflow/HandleSaveAccountRecoveryOrganizationPolicyWorkflow.test.page.js +35 -0
  98. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.js +435 -0
  99. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.data.js +186 -0
  100. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.js +100 -0
  101. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.page.js +159 -0
  102. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.stories.js +64 -0
  103. package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.js +535 -0
  104. package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.test.data.js +31 -0
  105. package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.test.js +155 -0
  106. package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.test.page.js +124 -0
  107. package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.test.stories.js +41 -0
  108. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.js +108 -0
  109. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.test.js +48 -0
  110. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.test.page.js +82 -0
  111. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.test.stories.js +51 -0
  112. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/GenerateOrganizationKey.js +471 -0
  113. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/GenerateOrganizationKey.test.js +181 -0
  114. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/ImportOrganizationKey.js +289 -0
  115. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/ImportOrganizationKey.test.js +188 -0
  116. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.js +121 -0
  117. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.test.page.js +262 -0
  118. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.test.stories.js +50 -0
  119. package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.js +73 -0
  120. package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.test.data.js +41 -0
  121. package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.test.js +48 -0
  122. package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.test.page.js +64 -0
  123. package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.test.stories.js +40 -0
  124. package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.js +36 -0
  125. package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.test.js +37 -0
  126. package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.test.page.js +55 -0
  127. package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.test.stories.js +39 -0
  128. package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.test.js +3 -3
  129. package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.test.page.js +0 -1
  130. package/src/react-extension/components/Authentication/CheckMailBox/CheckMailbox.test.stories.js +21 -15
  131. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.js +33 -23
  132. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.data.js +18 -30
  133. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.js +110 -47
  134. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.page.js +33 -10
  135. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.stories.js +36 -19
  136. package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.js +191 -0
  137. package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.test.data.js +90 -0
  138. package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.test.js +92 -0
  139. package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.test.page.js +109 -0
  140. package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.test.stories.js +60 -0
  141. package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.js +5 -29
  142. package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.data.js +17 -18
  143. package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.js +48 -25
  144. package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.page.js +16 -9
  145. package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.stories.js +20 -16
  146. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.js +40 -36
  147. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.data.js +18 -14
  148. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.js +189 -103
  149. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.page.js +50 -11
  150. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.stories.js +31 -19
  151. package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.js +0 -9
  152. package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.test.js +1 -1
  153. package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/{DisplayBrowserNotSupportedPage.js → DisplayBrowserNotSupported.test.page.js} +2 -5
  154. package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.test.stories.js +21 -15
  155. package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.js +0 -9
  156. package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.data.js +36 -0
  157. package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.js +34 -0
  158. package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.page.js +49 -0
  159. package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.stories.js +23 -15
  160. package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.js +0 -9
  161. package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.test.js +1 -1
  162. package/src/react-extension/components/Authentication/DisplayRequireInvitationError/{DisplayRequireInvitationErrorPage.js → DisplayRequireInvitationError.test.page.js} +0 -3
  163. package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.test.stories.js +21 -15
  164. package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.js +91 -10
  165. package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.data.js +56 -0
  166. package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.js +46 -0
  167. package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.page.js +79 -0
  168. package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.stories.js +48 -15
  169. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.js +12 -53
  170. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.data.js +16 -16
  171. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.js +10 -13
  172. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.page.js +16 -6
  173. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.stories.js +21 -15
  174. package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.data.js +17 -3
  175. package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.page.js +0 -1
  176. package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.stories.js +21 -15
  177. package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.test.data.js +28 -11
  178. package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.test.stories.js +21 -16
  179. package/src/react-extension/components/Authentication/HandleSessionExpired/HandleSessionExpired.test.data.js +17 -3
  180. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.js +56 -19
  181. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.data.js +25 -17
  182. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.js +204 -58
  183. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.page.js +43 -7
  184. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.stories.js +31 -19
  185. package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.js +0 -9
  186. package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.data.js +17 -3
  187. package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.stories.js +62 -18
  188. package/src/react-extension/components/Authentication/{IntroduceSetupExtension/IntroduceSetupExtension.js → IntroduceExtension/IntroduceExtension.js} +8 -19
  189. package/src/react-extension/components/Authentication/IntroduceExtension/IntroduceExtension.test.data.js +24 -0
  190. package/src/react-extension/components/Authentication/{IntroduceSetupExtension/IntroduceSetupExtension.test.js → IntroduceExtension/IntroduceExtension.test.js} +16 -6
  191. package/src/react-extension/components/Authentication/{IntroduceSetupExtension/IntroduceSetupExtension.test.page.js → IntroduceExtension/IntroduceExtension.test.page.js} +3 -4
  192. package/src/react-extension/components/Authentication/IntroduceExtension/IntroduceExtension.test.stories.js +39 -0
  193. package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.data.js +27 -9
  194. package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.js +2 -8
  195. package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.page.js +4 -9
  196. package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.stories.js +23 -14
  197. package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.js +70 -0
  198. package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.test.data.js +25 -0
  199. package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.test.js +49 -0
  200. package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.test.page.js +74 -0
  201. package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.test.stories.js +40 -0
  202. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.js +41 -0
  203. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.test.data.js +36 -0
  204. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.test.js +35 -0
  205. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.test.page.js +50 -0
  206. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.test.stories.js +41 -0
  207. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.js +42 -0
  208. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.test.js +43 -0
  209. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.test.page.js +62 -0
  210. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.test.stories.js +40 -0
  211. package/src/react-extension/components/AuthenticationAccountRecovery/OrchestrateAccountRecovery/InsertAccountRecoveryIframe.js +64 -0
  212. package/src/react-extension/components/AuthenticationAccountRecovery/OrchestrateAccountRecovery/OrchestrateAccountRecovery.js +84 -0
  213. package/src/react-extension/components/AuthenticationAccountRecovery/OrchestrateApiAccountRecovery/OrchestrateApiAccountRecovery.js +66 -0
  214. package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.js +8 -22
  215. package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.data.js +25 -0
  216. package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.js +52 -0
  217. package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.page.js +82 -0
  218. package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.stories.js +23 -16
  219. package/src/react-extension/components/AuthenticationLogin/Login/Login.js +156 -145
  220. package/src/react-extension/components/AuthenticationLogin/Login/Login.test.data.js +67 -0
  221. package/src/react-extension/components/AuthenticationLogin/Login/Login.test.js +157 -0
  222. package/src/react-extension/components/AuthenticationLogin/Login/Login.test.page.js +155 -0
  223. package/src/react-extension/components/AuthenticationLogin/Login/Login.test.stories.js +32 -27
  224. package/src/react-extension/components/AuthenticationLogin/OrchestrateLogin/OrchestrateLoginBoxFooter.js +48 -0
  225. package/src/react-extension/components/AuthenticationLogin/OrchestrateLogin/OrchestrateLoginBoxMain.js +90 -0
  226. package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.js +12 -3
  227. package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.test.stories.js +1 -1
  228. package/src/react-extension/components/AuthenticationRecover/RecoverAuthentication/RecoverAuthentication.js +90 -82
  229. package/src/react-extension/components/AuthenticationSetup/SetupAuthentication/SetupAuthentication.js +80 -87
  230. package/src/react-extension/components/Common/ActionFeedback/DisplayActionFeedbacks.test.js +8 -3
  231. package/src/react-extension/components/Common/Avatar/UserAvatar.js +6 -1
  232. package/src/react-extension/components/Common/Avatar/UserAvatar.test.data.js +27 -0
  233. package/src/react-extension/components/Common/Avatar/UserAvatar.test.stories.js +47 -0
  234. package/src/react-extension/components/Common/Dialog/ManageDialogs/ManageDialogs.js +7 -2
  235. package/src/react-extension/components/Common/Error/HandleErrorEvents/HandleErrorEvents.js +2 -3
  236. package/src/react-extension/components/Common/Error/NotifyError/NotifyError.js +78 -15
  237. package/src/react-extension/components/Common/Icons/Icon.js +7 -0
  238. package/src/react-extension/components/Common/Internationalisation/TranslationProvider.js +1 -0
  239. package/src/react-extension/components/Common/Loading/LoadingSpinner/LoadingSpinner.js +15 -2
  240. package/src/react-extension/components/Common/Loading/LoadingSpinner/LoadingSpinner.test.stories.js +49 -0
  241. package/src/react-extension/components/Common/Route/HandleApplicationFirstLoadRoute.js +77 -0
  242. package/src/react-extension/components/Common/Route/HandleRouteFallback.js +14 -46
  243. package/src/react-extension/components/Common/Tab/Tabs.js +3 -1
  244. package/src/react-extension/components/Common/Workflow/ManageWorkflows/ManageWorkflows.js +72 -0
  245. package/src/react-extension/components/InsertAppIframe.js +12 -6
  246. package/src/react-extension/components/Resource/CreateResource/CreateResource.js +2 -4
  247. package/src/react-extension/components/Resource/CreateResource/CreateResource.test.data.js +2 -2
  248. package/src/react-extension/components/Resource/CreateResource/CreateResource.test.js +17 -2
  249. package/src/react-extension/components/Resource/CreateResource/CreateResource.test.stories.js +19 -3
  250. package/src/react-extension/components/Resource/DeleteResource/DeleteResource.js +2 -4
  251. package/src/react-extension/components/Resource/DeleteResource/DeleteResource.test.js +20 -6
  252. package/src/react-extension/components/Resource/DeleteResource/DeleteResource.test.stories.js +12 -0
  253. package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.test.stories.js +107 -6
  254. package/src/react-extension/components/Resource/EditResource/EditResource.js +2 -4
  255. package/src/react-extension/components/Resource/EditResource/EditResource.test.data.js +2 -2
  256. package/src/react-extension/components/Resource/EditResource/EditResource.test.js +3 -0
  257. package/src/react-extension/components/Resource/EditResource/EditResource.test.stories.js +18 -4
  258. package/src/react-extension/components/Resource/ExportResources/ExportResources.js +5 -7
  259. package/src/react-extension/components/Resource/ExportResources/ExportResources.test.js +9 -2
  260. package/src/react-extension/components/Resource/ExportResources/ExportResources.test.stories.js +4 -2
  261. package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.js +5 -7
  262. package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.test.js +8 -2
  263. package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.test.stories.js +4 -2
  264. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.stories.js +24 -8
  265. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTagsList.js +2 -4
  266. package/src/react-extension/components/Resource/ImportResources/ImportResources.js +2 -4
  267. package/src/react-extension/components/Resource/ImportResources/ImportResources.test.js +10 -2
  268. package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.js +4 -6
  269. package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.test.js +9 -2
  270. package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.test.stories.js +9 -1
  271. package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.js +4 -2
  272. package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.test.stories.js +19 -1
  273. package/src/react-extension/components/ResourceComment/AddResourceComment/AddResourceComment.test.stories.js +15 -3
  274. package/src/react-extension/components/ResourceComment/ConfirmResourceCommentDeletion/ConfirmResourceCommentDeletion.test.stories.js +8 -3
  275. package/src/react-extension/components/ResourceComment/DisplayResourceCommentList/DisplayResourceCommentList.test.stories.js +9 -8
  276. package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.test.stories.js +6 -3
  277. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsActivity.test.stories.js +1 -1
  278. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsDescription.test.stories.js +1 -1
  279. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsInformation.test.data.js +11 -0
  280. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsInformation.test.js +11 -4
  281. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.test.stories.js +11 -10
  282. package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.js +2 -4
  283. package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.js +16 -5
  284. package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.stories.js +13 -0
  285. package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.js +8 -10
  286. package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.test.js +12 -5
  287. package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.test.stories.js +4 -1
  288. package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.js +2 -4
  289. package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.test.js +2 -5
  290. package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.test.stories.js +6 -2
  291. package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.js +2 -4
  292. package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.js +15 -4
  293. package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.stories.js +10 -2
  294. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsActivity.test.stories.js +4 -2
  295. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsInformation.test.js +2 -3
  296. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsInformation.test.stories.js +3 -1
  297. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsPermissions.test.stories.js +3 -1
  298. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePassphraseGenerator.test.stories.js +2 -1
  299. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePasswordGenerator.js +1 -1
  300. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePasswordGenerator.test.stories.js +2 -3
  301. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/GenerateResourcePassword.test.stories.js +7 -3
  302. package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.js +2 -4
  303. package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.test.stories.js +6 -2
  304. package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.js +2 -4
  305. package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.stories.js +6 -2
  306. package/src/react-extension/components/Share/ShareDialog.js +2 -4
  307. package/src/react-extension/components/Share/ShareDialog.test.js +14 -3
  308. package/src/react-extension/components/Share/ShareDialog.test.stories.js +5 -3
  309. package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.js +4 -6
  310. package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.test.js +6 -2
  311. package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.test.stories.js +5 -0
  312. package/src/react-extension/components/User/CreateUser/CreateUser.js +2 -4
  313. package/src/react-extension/components/User/CreateUser/CreateUser.test.stories.js +14 -3
  314. package/src/react-extension/components/User/DeleteUser/DeleteUser.js +2 -4
  315. package/src/react-extension/components/User/DeleteUser/DeleteUser.test.stories.js +9 -2
  316. package/src/react-extension/components/User/DeleteUser/DeleteUserWithConflicts.js +2 -4
  317. package/src/react-extension/components/User/DeleteUser/DeleteUserWithConflicts.test.stories.js +7 -1
  318. package/src/react-extension/components/User/DisplayExpiredAccountRecovery/DisplayExpiredAccountRecovery.js +79 -0
  319. package/src/react-extension/components/User/DisplayExpiredAccountRecovery/DisplayExpiredAccountRecovery.test.stories.js +32 -0
  320. package/src/react-extension/components/User/DisplayUserBadgeMenu/DisplayUserBadgeMenu.js +13 -3
  321. package/src/react-extension/components/User/DisplayUserBadgeMenu/DisplayUserBadgeMenu.test.stories.js +7 -9
  322. package/src/react-extension/components/User/DisplayUserWorkspace/DisplayUserWorkspace.js +5 -1
  323. package/src/react-extension/components/User/DisplayUserWorkspace/DisplayUserWorkspace.test.data.js +18 -9
  324. package/src/react-extension/components/User/DisplayUserWorkspace/DisplayUserWorkspace.test.js +2 -2
  325. package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.js +48 -6
  326. package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.data.js +16 -1
  327. package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.js +14 -0
  328. package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.page.js +8 -0
  329. package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.stories.js +55 -0
  330. package/src/react-extension/components/User/DisplayUsers/DisplayUsers.js +35 -0
  331. package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.data.js +33 -13
  332. package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.js +16 -3
  333. package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.page.js +19 -6
  334. package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.stories.js +38 -0
  335. package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.js +46 -10
  336. package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.test.data.js +21 -6
  337. package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.test.js +38 -5
  338. package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.test.page.js +10 -0
  339. package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.test.stories.js +53 -0
  340. package/src/react-extension/components/User/EditUser/EditUser.js +2 -4
  341. package/src/react-extension/components/User/EditUser/EditUser.test.stories.js +8 -1
  342. package/src/react-extension/components/User/FilterUsersByGroups/DisplayGroupContextualMenu.js +2 -4
  343. package/src/react-extension/components/User/HandleReviewAccountRecoveryRequestRoute/HandleReviewAccountRecoveryRequestRoute.js +98 -0
  344. package/src/react-extension/components/User/HandleReviewAccountRecoveryRequestRoute/HandleReviewAccountRecoveryRequestRoute.test.data.js +56 -0
  345. package/src/react-extension/components/User/HandleReviewAccountRecoveryRequestRoute/HandleReviewAccountRecoveryRequestRoute.test.js +54 -0
  346. package/src/react-extension/components/User/HandleReviewAccountRecoveryRequestRoute/HandleReviewAccountRecoveryRequestRoute.test.page.js +37 -0
  347. package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.js +36 -3
  348. package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.test.data.js +1 -1
  349. package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.test.js +1 -1
  350. package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.js +234 -0
  351. package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.data.js +125 -0
  352. package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.js +150 -0
  353. package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.page.js +113 -0
  354. package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.stories.js +142 -0
  355. package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.js +467 -0
  356. package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.test.data.js +167 -0
  357. package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.test.js +106 -0
  358. package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.test.page.js +101 -0
  359. package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.test.stories.js +143 -0
  360. package/src/react-extension/components/UserDetails/DisplayUserDetailsGroups/DisplayUserDetailsGroups.js +5 -0
  361. package/src/react-extension/components/UserDetails/DisplayUserDetailsGroups/DisplayUserDetailsGroups.test.stories.js +1 -1
  362. package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.test.data.js +1 -1
  363. package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.test.stories.js +1 -1
  364. package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.js +1 -1
  365. package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.data.js +1 -1
  366. package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.stories.js +1 -1
  367. package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.js +2 -4
  368. package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.stories.js +5 -1
  369. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.js +2 -4
  370. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.test.stories.js +8 -1
  371. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.js +2 -4
  372. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.test.stories.js +8 -1
  373. package/src/react-extension/components/UserGroup/DisplayUserGroupDetails/DisplayUserGroupDetails.test.data.js +1 -1
  374. package/src/react-extension/components/UserGroup/DisplayUserGroupDetails/DisplayUserGroupDetails.test.js +1 -1
  375. package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsInformation/DisplayUserGroupDetailsInformation.test.data.js +1 -1
  376. package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembers.test.data.js +1 -1
  377. package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembers.test.stories.js +2 -1
  378. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.js +2 -4
  379. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.data.js +1 -1
  380. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.js +13 -2
  381. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.stories.js +1 -1
  382. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.js +1 -1
  383. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.test.js +5 -2
  384. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.js +1 -1
  385. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.js +11 -1
  386. package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.js +1 -1
  387. package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.test.js +11 -3
  388. package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.test.stories.js +5 -1
  389. package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.js +240 -0
  390. package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.test.data.js +53 -0
  391. package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.test.js +110 -0
  392. package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.test.page.js +85 -0
  393. package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.test.stories.js +65 -0
  394. package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.js +3 -4
  395. package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.test.stories.js +1 -1
  396. package/src/react-extension/components/UserSetting/DisplayUserProfile/DisplayUserProfile.test.stories.js +1 -1
  397. package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspace/DisplayUserSettingsWorkspace.js +16 -2
  398. package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspaceBreadcrumb/DisplayUserSettingsWorkspaceBreadcrumb.js +2 -1
  399. package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.js +2 -4
  400. package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.test.stories.js +18 -12
  401. package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.js +2 -4
  402. package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.test.stories.js +17 -3
  403. package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.js +29 -0
  404. package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.test.stories.js +5 -0
  405. package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.js +2 -4
  406. package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.test.stories.js +10 -3
  407. package/src/react-extension/contexts/AccountRecoveryUserContext.js +223 -0
  408. package/src/react-extension/contexts/AccountRecoveryUserContext.test.data.js +55 -0
  409. package/src/react-extension/contexts/AccountRecoveryUserContext.test.js +58 -0
  410. package/src/react-extension/contexts/ActionFeedbackContext.test.data.js +28 -0
  411. package/src/react-extension/contexts/AdminAccountRecoveryContext.js +211 -0
  412. package/src/react-extension/contexts/AdminAccountRecoveryContext.test.data.js +66 -0
  413. package/src/react-extension/contexts/AdminAccountRecoveryContext.test.js +229 -0
  414. package/src/react-extension/contexts/AdministrationWorkspaceContext.js +27 -0
  415. package/src/react-extension/contexts/ApiAccountRecoveryContext.js +148 -0
  416. package/src/react-extension/contexts/ApiRecoverContext.js +14 -15
  417. package/src/react-extension/contexts/ApiSetupContext.js +8 -8
  418. package/src/react-extension/contexts/Authentication/AuthenticationAccountRecoveryContext.js +282 -0
  419. package/src/react-extension/contexts/Authentication/AuthenticationAccountRecoveryContext.test.data.js +51 -0
  420. package/src/react-extension/contexts/Authentication/AuthenticationAccountRecoveryContext.test.js +231 -0
  421. package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.js +264 -0
  422. package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.test.data.js +79 -0
  423. package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.test.js +234 -0
  424. package/src/react-extension/contexts/Authentication/AuthenticationRecoverContext.js +325 -0
  425. package/src/react-extension/contexts/Authentication/AuthenticationRecoverContext.test.data.js +63 -0
  426. package/src/react-extension/contexts/Authentication/AuthenticationRecoverContext.test.js +379 -0
  427. package/src/react-extension/contexts/Authentication/AuthenticationSetupContext.js +339 -0
  428. package/src/react-extension/contexts/Authentication/AuthenticationSetupContext.test.data.js +63 -0
  429. package/src/react-extension/contexts/Authentication/AuthenticationSetupContext.test.js +364 -0
  430. package/src/react-extension/contexts/DialogContext.test.data.js +27 -0
  431. package/src/react-extension/contexts/ExtAppContext.js +0 -6
  432. package/src/react-extension/contexts/ExtAppContext.test.data.js +50 -0
  433. package/src/react-extension/contexts/NavigationContext.js +26 -2
  434. package/src/react-extension/contexts/ResourceWorkspaceContext.js +9 -2
  435. package/src/react-extension/contexts/ResourceWorkspaceContext.test.page.js +10 -1
  436. package/src/react-extension/contexts/UserSettingsContext.js +1 -2
  437. package/src/react-extension/contexts/UserWorkspaceContext.js +35 -10
  438. package/src/react-extension/contexts/UserWorkspaceContext.test.data.js +13 -0
  439. package/src/react-extension/contexts/UserWorkspaceContext.test.page.js +6 -1
  440. package/src/react-extension/contexts/WorkflowContext.js +89 -0
  441. package/src/react-extension/contexts/WorkflowContext.test.data.js +27 -0
  442. package/src/react-extension/lib/Error/GpgKeyError.js +22 -0
  443. package/src/react-extension/lib/Error/InvalidMasterPasswordError.js +23 -0
  444. package/src/react-extension/lib/Error/ServerKeyChangedError.js +22 -0
  445. package/src/react-extension/test/fixture/Settings/siteSettings.js +4 -0
  446. package/src/react-extension/test/fixture/Settings/userSettings.js +1 -1
  447. package/src/react-extension/test/mock/MockPort.js +2 -2
  448. package/src/react-extension/test/mock/MockStorage.js +0 -2
  449. package/src/react-extension/test/mock/components/Internationalisation/MockTranslationProvider.js +2 -1
  450. package/src/react-extension/test/mock/components/React/mockSetState.js +22 -0
  451. package/src/react-quickaccess/ExtQuickAccess.js +10 -1
  452. package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.js +1 -1
  453. package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.test.stories.js +6 -10
  454. package/src/react-quickaccess/components/FilterResourcesByTagPage/FilterResourcesByTagPage.test.stories.js +6 -10
  455. package/src/react-quickaccess/components/LoginPage/LoginPage.js +2 -6
  456. package/src/react-quickaccess/components/LoginPage/LoginPage.test.stories.js +1 -0
  457. package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.js +17 -3
  458. package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.test.stories.js +5 -3
  459. package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.js +31 -2
  460. package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.data.js +1 -1
  461. package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.js +32 -3
  462. package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.data.js +6 -3
  463. package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.js +29 -19
  464. package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.test.data.js +2 -0
  465. package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.stories.js +12 -9
  466. package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.js +1 -1
  467. package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.test.stories.js +127 -164
  468. package/src/react-web-integration/lib/Dom/DomUtils.js +23 -1
  469. package/src/react-web-integration/lib/InForm/InFormFieldSelector.js +7 -1
  470. package/src/react-web-integration/lib/InForm/InFormManager.js +24 -14
  471. package/src/react-web-integration/lib/InForm/InformManager.test.data.js +80 -2
  472. package/src/react-web-integration/lib/InForm/InformManager.test.js +147 -7
  473. package/src/react-web-integration/lib/InForm/InformManager.test.page.js +16 -2
  474. package/src/shared/lib/Error/EntityValidationError.js +81 -0
  475. package/src/shared/lib/apiClient/apiClient.test.js +1 -1
  476. package/src/shared/services/accountRecovery/ApiAppAccountRecoveryUserService.js +78 -0
  477. package/src/shared/services/accountRecovery/ExtAppAccountRecoveryUserService.js +24 -0
  478. package/test/jest.setup.js +8 -0
  479. package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.js +0 -97
  480. package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.test.stories.js +0 -33
  481. package/src/react-extension/components/Authentication/CheckPassphrase/GenerateKeyOnPassphraseLostSecondaryAction.js +0 -41
  482. package/src/react-extension/components/Authentication/CheckPassphrase/HelpOnPassphraseLostSecondaryAction.js +0 -41
  483. package/src/react-extension/components/Authentication/CheckPassphrase/HelpOnPrivateKeyLostSecondaryAction.js +0 -41
  484. package/src/react-extension/components/Authentication/ImportGpgKey/GenerateKeySecondaryAction.js +0 -40
  485. package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.test.data.js +0 -11
  486. package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.test.stories.js +0 -34
  487. package/src/react-extension/components/AuthenticationLogin/DisplayLoginError/DisplayLoginError.js +0 -87
  488. package/src/react-extension/components/AuthenticationLogin/DisplayLoginError/DisplayLoginError.test.stories.js +0 -33
  489. package/src/react-extension/components/AuthenticationLogin/DisplayLoginInProgress/DisplayLoginInProgress.js +0 -49
  490. package/src/react-extension/components/AuthenticationLogin/DisplayLoginInProgress/DisplayLoginProgress.test.stories.js +0 -33
  491. package/src/react-extension/components/AuthenticationLogin/OrchestrateLogin/OrchestrateLogin.js +0 -102
  492. package/src/react-extension/components/Internationalisation/ChangeLocale/ChangeExtAuthenticationLocale.js +0 -63
  493. package/src/react-extension/contexts/AuthenticationContext.js +0 -467
  494. package/src/react-extension/contexts/AuthenticationContext.test.data.js +0 -15
  495. package/src/react-extension/contexts/AuthenticationContext.test.js +0 -252
@@ -22,25 +22,25 @@ import {
22
22
  domElementLoginWithAutocompleteAttributeUsername,
23
23
  domElementLoginWithClassEmail,
24
24
  domElementLoginWithClassUsername,
25
- domElementLoginWithIdAttributeEmail,
25
+ domElementLoginWithIdAttributeEmail, domElementLoginWithIdAttributeLogin,
26
26
  domElementLoginWithIdAttributeUsername,
27
- domElementLoginWithNameAttributeEmail,
27
+ domElementLoginWithNameAttributeEmail, domElementLoginWithNameAttributeLogin,
28
28
  domElementLoginWithNameAttributeUsername,
29
29
  domElementLoginWithNoTypeAndAutocompleteAttributeEmail,
30
30
  domElementLoginWithNoTypeAndAutocompleteAttributeUsername,
31
31
  domElementLoginWithNoTypeAndClassEmail,
32
32
  domElementLoginWithNoTypeAndClassUsername,
33
- domElementLoginWithNoTypeAndIdAttributeEmail,
33
+ domElementLoginWithNoTypeAndIdAttributeEmail, domElementLoginWithNoTypeAndIdAttributeLogin,
34
34
  domElementLoginWithNoTypeAndIdAttributeUsername,
35
- domElementLoginWithNoTypeAndNameAttributeEmail,
36
- domElementLoginWithNoTypeAndNameAttributeUsername,
35
+ domElementLoginWithNoTypeAndNameAttributeEmail, domElementLoginWithNoTypeAndNameAttributeLogin,
36
+ domElementLoginWithNoTypeAndNameAttributeUsername, domElementLoginWithNoTypeAndPlaceHolderAttributeE_mail,
37
37
  domElementLoginWithNoTypeAndPlaceHolderAttributeEmail,
38
- domElementLoginWithNoTypeAndPlaceHolderAttributeUsername,
38
+ domElementLoginWithNoTypeAndPlaceHolderAttributeUsername, domElementLoginWithPlaceHolderAttributeE_mail,
39
39
  domElementLoginWithPlaceHolderAttributeEmail,
40
40
  domElementLoginWithPlaceHolderAttributeUsername,
41
41
  domElementLoginWithSubmitButton,
42
42
  domElementOnlyPassword,
43
- domElementOnlyUsername,
43
+ domElementOnlyUsername, domElementWithMultipleLogin,
44
44
  domElementWithNoUsernamePassword,
45
45
  initializeWindow
46
46
  } from "./InformManager.test.data";
@@ -97,6 +97,25 @@ describe("InformManager", () => {
97
97
  expect(informManager.iframesLength).toBe(2);
98
98
  });
99
99
 
100
+ it("As LU I should see the inform call to action on form with name attribute login", async() => {
101
+ // Set up document body
102
+ document.body.innerHTML = domElementLoginWithNameAttributeLogin; // The Dom
103
+ const informManager = new InformManagerPage();
104
+ expect(informManager.iframesLength).toBe(0);
105
+ await informManager.focusOnUsername();
106
+ expect(informManager.iframesLength).toBe(1);
107
+ await informManager.mouseOverOnPassword();
108
+ expect(informManager.iframesLength).toBe(2);
109
+ await informManager.blurOnUsername();
110
+ expect(informManager.iframesLength).toBe(1);
111
+ await informManager.blurOnPassword();
112
+ expect(informManager.iframesLength).toBe(0);
113
+ await informManager.focusOnPassword();
114
+ expect(informManager.iframesLength).toBe(1);
115
+ await informManager.mouseOverOnUsername();
116
+ expect(informManager.iframesLength).toBe(2);
117
+ });
118
+
100
119
  it("As LU I should see the inform call to action on form with no type and name attribute username", async() => {
101
120
  // Set up document body
102
121
  document.body.innerHTML = domElementLoginWithNoTypeAndNameAttributeUsername; // The Dom
@@ -135,6 +154,25 @@ describe("InformManager", () => {
135
154
  expect(informManager.iframesLength).toBe(2);
136
155
  });
137
156
 
157
+ it("As LU I should see the inform call to action on form with no type name attribute login", async() => {
158
+ // Set up document body
159
+ document.body.innerHTML = domElementLoginWithNoTypeAndNameAttributeLogin; // The Dom
160
+ const informManager = new InformManagerPage();
161
+ expect(informManager.iframesLength).toBe(0);
162
+ await informManager.focusOnUsername();
163
+ expect(informManager.iframesLength).toBe(1);
164
+ await informManager.mouseOverOnPassword();
165
+ expect(informManager.iframesLength).toBe(2);
166
+ await informManager.blurOnUsername();
167
+ expect(informManager.iframesLength).toBe(1);
168
+ await informManager.blurOnPassword();
169
+ expect(informManager.iframesLength).toBe(0);
170
+ await informManager.focusOnPassword();
171
+ expect(informManager.iframesLength).toBe(1);
172
+ await informManager.mouseOverOnUsername();
173
+ expect(informManager.iframesLength).toBe(2);
174
+ });
175
+
138
176
  it("As LU I should see the inform call to action on form with id attribute username", async() => {
139
177
  // Set up document body
140
178
  document.body.innerHTML = domElementLoginWithIdAttributeUsername; // The Dom
@@ -173,6 +211,25 @@ describe("InformManager", () => {
173
211
  expect(informManager.iframesLength).toBe(2);
174
212
  });
175
213
 
214
+ it("As LU I should see the inform call to action on form with id attribute login", async() => {
215
+ // Set up document body
216
+ document.body.innerHTML = domElementLoginWithIdAttributeLogin; // The Dom
217
+ const informManager = new InformManagerPage();
218
+ expect(informManager.iframesLength).toBe(0);
219
+ await informManager.focusOnUsername();
220
+ expect(informManager.iframesLength).toBe(1);
221
+ await informManager.mouseOverOnPassword();
222
+ expect(informManager.iframesLength).toBe(2);
223
+ await informManager.blurOnUsername();
224
+ expect(informManager.iframesLength).toBe(1);
225
+ await informManager.blurOnPassword();
226
+ expect(informManager.iframesLength).toBe(0);
227
+ await informManager.focusOnPassword();
228
+ expect(informManager.iframesLength).toBe(1);
229
+ await informManager.mouseOverOnUsername();
230
+ expect(informManager.iframesLength).toBe(2);
231
+ });
232
+
176
233
  it("As LU I should see the inform call to action on form with no type and id attribute username", async() => {
177
234
  // Set up document body
178
235
  document.body.innerHTML = domElementLoginWithNoTypeAndIdAttributeUsername; // The Dom
@@ -211,6 +268,25 @@ describe("InformManager", () => {
211
268
  expect(informManager.iframesLength).toBe(2);
212
269
  });
213
270
 
271
+ it("As LU I should see the inform call to action on form with no type and id attribute login", async() => {
272
+ // Set up document body
273
+ document.body.innerHTML = domElementLoginWithNoTypeAndIdAttributeLogin; // The Dom
274
+ const informManager = new InformManagerPage();
275
+ expect(informManager.iframesLength).toBe(0);
276
+ await informManager.focusOnUsername();
277
+ expect(informManager.iframesLength).toBe(1);
278
+ await informManager.mouseOverOnPassword();
279
+ expect(informManager.iframesLength).toBe(2);
280
+ await informManager.blurOnUsername();
281
+ expect(informManager.iframesLength).toBe(1);
282
+ await informManager.blurOnPassword();
283
+ expect(informManager.iframesLength).toBe(0);
284
+ await informManager.focusOnPassword();
285
+ expect(informManager.iframesLength).toBe(1);
286
+ await informManager.mouseOverOnUsername();
287
+ expect(informManager.iframesLength).toBe(2);
288
+ });
289
+
214
290
  it("As LU I should see the inform call to action on form with autocomplete attribute username", async() => {
215
291
  // Set up document body
216
292
  document.body.innerHTML = domElementLoginWithAutocompleteAttributeUsername; // The Dom
@@ -325,6 +401,25 @@ describe("InformManager", () => {
325
401
  expect(informManager.iframesLength).toBe(2);
326
402
  });
327
403
 
404
+ it("As LU I should see the inform call to action on form with placeholder attribute e-mail", async() => {
405
+ // Set up document body
406
+ document.body.innerHTML = domElementLoginWithPlaceHolderAttributeE_mail; // The Dom
407
+ const informManager = new InformManagerPage();
408
+ expect(informManager.iframesLength).toBe(0);
409
+ await informManager.focusOnUsername();
410
+ expect(informManager.iframesLength).toBe(1);
411
+ await informManager.mouseOverOnPassword();
412
+ expect(informManager.iframesLength).toBe(2);
413
+ await informManager.blurOnUsername();
414
+ expect(informManager.iframesLength).toBe(1);
415
+ await informManager.blurOnPassword();
416
+ expect(informManager.iframesLength).toBe(0);
417
+ await informManager.focusOnPassword();
418
+ expect(informManager.iframesLength).toBe(1);
419
+ await informManager.mouseOverOnUsername();
420
+ expect(informManager.iframesLength).toBe(2);
421
+ });
422
+
328
423
  it("As LU I should see the inform call to action on form with no type and placeholder attribute username", async() => {
329
424
  // Set up document body
330
425
  document.body.innerHTML = domElementLoginWithNoTypeAndPlaceHolderAttributeUsername; // The Dom
@@ -363,6 +458,25 @@ describe("InformManager", () => {
363
458
  expect(informManager.iframesLength).toBe(2);
364
459
  });
365
460
 
461
+ it("As LU I should see the inform call to action on form with no type and placeholder attribute e-mail", async() => {
462
+ // Set up document body
463
+ document.body.innerHTML = domElementLoginWithNoTypeAndPlaceHolderAttributeE_mail; // The Dom
464
+ const informManager = new InformManagerPage();
465
+ expect(informManager.iframesLength).toBe(0);
466
+ await informManager.focusOnUsername();
467
+ expect(informManager.iframesLength).toBe(1);
468
+ await informManager.mouseOverOnPassword();
469
+ expect(informManager.iframesLength).toBe(2);
470
+ await informManager.blurOnUsername();
471
+ expect(informManager.iframesLength).toBe(1);
472
+ await informManager.blurOnPassword();
473
+ expect(informManager.iframesLength).toBe(0);
474
+ await informManager.focusOnPassword();
475
+ expect(informManager.iframesLength).toBe(1);
476
+ await informManager.mouseOverOnUsername();
477
+ expect(informManager.iframesLength).toBe(2);
478
+ });
479
+
366
480
  it("As LU I should see the inform call to action on form with class username", async() => {
367
481
  // Set up document body
368
482
  document.body.innerHTML = domElementLoginWithClassUsername; // The Dom
@@ -485,6 +599,32 @@ describe("InformManager", () => {
485
599
  expect(informManager.username.value).toBe('test');
486
600
  });
487
601
 
602
+ it("As LU I should see the inform call to action when I clicked on it and autofill only fields in the same parent container", async() => {
603
+ // Set up document body
604
+ document.body.innerHTML = domElementWithMultipleLogin; // The Dom
605
+ const informManager = new InformManagerPage();
606
+ expect(informManager.iframesLength).toBe(0);
607
+ await informManager.focusOnUsername();
608
+ expect(informManager.iframesLength).toBe(1);
609
+ await informManager.clickOnInformCallToAction();
610
+ expect(informManager.iframesLength).toBe(1);
611
+ await informManager.blurOnUsername();
612
+ expect(informManager.iframesLength).toBe(0);
613
+ await informManager.focusOnPassword();
614
+ expect(informManager.iframesLength).toBe(1);
615
+ await informManager.clickOnInformCallToAction(2);
616
+ expect(informManager.iframesLength).toBe(1);
617
+ await informManager.blurOnPassword();
618
+ expect(informManager.iframesLength).toBe(0);
619
+ await informManager.autofillCredentials('test', 'password');
620
+ expect(informManager.usernames[0].value).toBe('');
621
+ expect(informManager.passwords[0].value).toBe('');
622
+ expect(informManager.usernames[1].value).toBe('test');
623
+ expect(informManager.passwords[1].value).toBe('password');
624
+ expect(informManager.usernames[2].value).toBe('');
625
+ expect(informManager.passwords[2].value).toBe('');
626
+ });
627
+
488
628
  it("As LU I should auto save a form", async() => {
489
629
  // Set up document body
490
630
  document.body.innerHTML = domElementLoginWithSubmitButton; // The Dom
@@ -39,6 +39,13 @@ export default class InformManagerPage {
39
39
  return document.querySelector(InFormFieldSelector.USERNAME_FIELD_SELECTOR);
40
40
  }
41
41
 
42
+ /**
43
+ * Returns the usernames element
44
+ */
45
+ get usernames() {
46
+ return document.querySelectorAll(InFormFieldSelector.USERNAME_FIELD_SELECTOR);
47
+ }
48
+
42
49
  /**
43
50
  * Returns the password element
44
51
  */
@@ -46,6 +53,13 @@ export default class InformManagerPage {
46
53
  return document.querySelector(InFormFieldSelector.PASSWORD_FIELD_SELECTOR);
47
54
  }
48
55
 
56
+ /**
57
+ * Returns the passwords element
58
+ */
59
+ get passwords() {
60
+ return document.querySelectorAll(InFormFieldSelector.PASSWORD_FIELD_SELECTOR);
61
+ }
62
+
49
63
  /**
50
64
  * Returns the search element
51
65
  */
@@ -125,8 +139,8 @@ export default class InformManagerPage {
125
139
  await waitFor(() => {});
126
140
  }
127
141
 
128
- async clickOnInformCallToAction() {
129
- InFormManager.lastCallToActionFieldClicked = InFormManager.callToActionFields[0];
142
+ async clickOnInformCallToAction(index = 1) {
143
+ InFormManager.lastCallToActionFieldClicked = InFormManager.callToActionFields[index - 1];
130
144
  await waitFor(() => {});
131
145
  }
132
146
 
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Passbolt ~ Open source password manager for teams
3
+ * Copyright (c) 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) 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 2.13.0
13
+ */
14
+ class EntityValidationError extends Error {
15
+ /**
16
+ * EntityValidationError constructor
17
+ *
18
+ * @param {string} message
19
+ */
20
+ constructor(message) {
21
+ message = message || 'Entity validation error.';
22
+ super(message);
23
+ this.name = 'EntityValidationError';
24
+ this.details = {};
25
+ }
26
+
27
+ /**
28
+ * Add a given an error for a given property and rule
29
+ *
30
+ * @param {string} property example: name
31
+ * @param {string} rule example: required
32
+ * @param {string} message example: the name is required
33
+ */
34
+ addError(property, rule, message) {
35
+ if (typeof property !== 'string') {
36
+ throw new TypeError('EntityValidationError addError property should be a string.');
37
+ }
38
+ if (typeof rule !== 'string') {
39
+ throw new TypeError('EntityValidationError addError rule should be a string.');
40
+ }
41
+ if (typeof message !== 'string') {
42
+ throw new TypeError('EntityValidationError addError message should be a string.');
43
+ }
44
+ if (!Object.prototype.hasOwnProperty.call(this.details, property)) {
45
+ this.details[property] = {};
46
+ }
47
+ this.details[property][rule] = message;
48
+ }
49
+
50
+ /**
51
+ * Return true if a property has any error or error for the provided rule
52
+ *
53
+ * @param {string} property
54
+ * @param {string} [rule] optional example: required
55
+ * @returns {boolean} true if a given property as an error
56
+ */
57
+ hasError(property, rule) {
58
+ if (typeof property !== 'string') {
59
+ throw new TypeError('EntityValidationError hasError property should be a string.');
60
+ }
61
+ const hasError = (this.details && Object.prototype.hasOwnProperty.call(this.details, property));
62
+ if (!rule) {
63
+ return hasError;
64
+ }
65
+ if (typeof rule !== 'string') {
66
+ throw new TypeError('EntityValidationError hasError rule should be a string.');
67
+ }
68
+ return Object.prototype.hasOwnProperty.call(this.details[property], rule);
69
+ }
70
+
71
+ /**
72
+ * Return true if some error details are present
73
+ *
74
+ * @returns {boolean}
75
+ */
76
+ hasErrors() {
77
+ return (Object.keys(this.details).length > 0);
78
+ }
79
+ }
80
+
81
+ export default EntityValidationError;
@@ -13,7 +13,7 @@
13
13
  */
14
14
  import {ApiClient} from "./apiClient";
15
15
  import {ApiClientOptions} from "./apiClientOptions";
16
- import fetch from 'node-fetch';
16
+ import fetch from 'cross-fetch';
17
17
  import PassboltServiceUnavailableError from "../Error/PassboltServiceUnavailableError";
18
18
 
19
19
  // Reset the modules before each test.
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Passbolt ~ Open source password manager for teams
3
+ * Copyright (c) 2020 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) 2020 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 {ApiClient} from "../../lib/apiClient/apiClient";
16
+ import {ApiClientOptions} from "../../lib/apiClient/apiClientOptions";
17
+
18
+ export default class ApiAppAccountRecoveryUserService {
19
+
20
+ constructor() {
21
+ this.baseUrl = this.getBaseUrl();
22
+ }
23
+
24
+ async getOrganizationAccountRecoverySettings() {
25
+ const apiClientOptions = this.getApiClientOptions().setResourceName("account-recovery/organization-policies");
26
+ const apiClient = new ApiClient(apiClientOptions);
27
+ const accountRecoverySettings = await apiClient.findAll();
28
+ return accountRecoverySettings.body;
29
+ }
30
+
31
+ /**
32
+ * Get the application base url
33
+ * @return {string}
34
+ */
35
+ getBaseUrl() {
36
+ const baseElement = document.getElementsByTagName('base') && document.getElementsByTagName('base')[0];
37
+ if (baseElement) {
38
+ return baseElement.attributes.href.value.replace(/\/*$/g, '');
39
+ }
40
+ console.error("Unable to retrieve the page base tag");
41
+ return "";
42
+ }
43
+
44
+ /**
45
+ * Get the API client options
46
+ * @returns {ApiClientOptions}
47
+ */
48
+ getApiClientOptions() {
49
+ return new ApiClientOptions()
50
+ .setBaseUrl(this.baseUrl)
51
+ .setCsrfToken(this.getCsrfToken());
52
+ }
53
+
54
+ /**
55
+ * Get csrf token
56
+ * @returns {string}
57
+ */
58
+ getCsrfToken() {
59
+ const cookieString = document.cookie;
60
+ if (!cookieString) {
61
+ return undefined;
62
+ }
63
+ const cookieArray = cookieString.split('; ');
64
+ if (!cookieArray) {
65
+ return undefined;
66
+ }
67
+ const csrfCookie = cookieArray.find(row => row.startsWith('csrfToken'));
68
+ if (!csrfCookie) {
69
+ return undefined;
70
+ }
71
+ const csrfToken = csrfCookie.split('=');
72
+ if (csrfToken && csrfToken.length === 2) {
73
+ return csrfToken[1];
74
+ }
75
+
76
+ return undefined;
77
+ }
78
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Passbolt ~ Open source password manager for teams
3
+ * Copyright (c) 2020 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) 2020 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
+ export default class ExtAppAccountRecoveryUserService {
16
+
17
+ constructor(port) {
18
+ this.port = port;
19
+ }
20
+
21
+ async getOrganizationAccountRecoverySettings() {
22
+ return await this.port.request('passbolt.account-recovery.get-organization-policy');
23
+ }
24
+ }
@@ -0,0 +1,8 @@
1
+ // Disable console debug, warning and error while executing the tests.
2
+ // Keep console log as it can be useful for testing.
3
+ global.console = {
4
+ ...console,
5
+ debug: jest.fn(),
6
+ error: jest.fn(),
7
+ warning: jest.fn()
8
+ };
@@ -1,97 +0,0 @@
1
- /**
2
- * Passbolt ~ Open source password manager for teams
3
- * Copyright (c) 2020 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) 2020 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
- import React, {Component} from "react";
15
- import PropTypes from "prop-types";
16
- import {withAppContext} from "../../../contexts/AppContext";
17
- import {
18
- AuthenticationContextProcess,
19
- withAuthenticationContext
20
- } from "../../../contexts/AuthenticationContext";
21
- import {Trans, withTranslation} from "react-i18next";
22
-
23
- /**
24
- * This component propose to help the use who lost his gpg key or passphrase
25
- */
26
- class AskForAuthenticationHelp extends Component {
27
- /**
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(...[*]=)}
57
- */
58
- get translate() {
59
- return this.props.t;
60
- }
61
-
62
- /**
63
- * Render the component
64
- * @returns {JSX.Element}
65
- */
66
- render() {
67
- return (
68
- <div className="ask-for-authentication-help">
69
- <h1><Trans>Sorry... maybe an administrator can help?</Trans></h1>
70
- <p>
71
- <Trans>Both the private key and passphrase are required to perform an account recovery.</Trans> <Trans>If you do not have access, you can request a new account from the administrator.</Trans>
72
- </p>
73
- <div className="form-actions">
74
- <a
75
- href={`${this.props.context.trustedDomain}/users/recover`}
76
- className="button primary big full-width"
77
- role="button"
78
- target="_parent"
79
- rel="noopener noreferrer">
80
- <Trans>Request new account</Trans>
81
- </a>
82
- <a onClick={this.onGoToImportGpgKeyRequested}>
83
- <Trans>I want to try again.</Trans>
84
- </a>
85
- </div>
86
- </div>
87
- );
88
- }
89
- }
90
-
91
- AskForAuthenticationHelp.propTypes = {
92
- context: PropTypes.object, // The application context
93
- authenticationContext: PropTypes.any, // The authentication context
94
- t: PropTypes.func, // The translation function
95
- };
96
-
97
- export default withAppContext(withAuthenticationContext(withTranslation('common')(AskForAuthenticationHelp)));
@@ -1,33 +0,0 @@
1
- import React from "react";
2
- import {MemoryRouter, Route} from "react-router-dom";
3
- import {AuthenticationContext} from "../../../contexts/AuthenticationContext";
4
- import AskForAuthenticationHelp from "./AskForAuthenticationHelp";
5
-
6
-
7
- export default {
8
- title: 'Passbolt/Authentication/AskForAuthenticationHelp',
9
- component: AskForAuthenticationHelp
10
- };
11
-
12
- const context = {
13
- };
14
-
15
- 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>
24
- </div>
25
- </div>
26
- </AuthenticationContext.Provider>;
27
-
28
-
29
- export const Initial = Template.bind({});
30
-
31
- Initial.parameters = {
32
- css: "ext_authentication"
33
- };
@@ -1,41 +0,0 @@
1
- /**
2
- * Passbolt ~ Open source password manager for teams
3
- * Copyright (c) 2020 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) 2020 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
- import React, {Component} from "react";
15
- import {withAuthenticationContext} from "../../../contexts/AuthenticationContext";
16
- import {Trans, withTranslation} from "react-i18next";
17
- import PropTypes from "prop-types";
18
-
19
- class GenerateKeyOnPassphraseLostSecondaryAction extends Component {
20
- /**
21
- * Get the translate function
22
- * @returns {function(...[*]=)}
23
- */
24
- get translate() {
25
- return this.props.t;
26
- }
27
-
28
- render() {
29
- return (
30
- <a onClick={this.props.authenticationContext.onGoToGenerateGpgKeyRequested}>
31
- <Trans>I lost my passphrase, generate a new private key.</Trans>
32
- </a>
33
- );
34
- }
35
- }
36
-
37
- GenerateKeyOnPassphraseLostSecondaryAction.propTypes = {
38
- authenticationContext: PropTypes.any, // The authentication context
39
- t: PropTypes.func, // The translation function
40
- };
41
- export default withAuthenticationContext(withTranslation('common')(GenerateKeyOnPassphraseLostSecondaryAction));
@@ -1,41 +0,0 @@
1
- /**
2
- * Passbolt ~ Open source password manager for teams
3
- * Copyright (c) 2020 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) 2020 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
- import React, {Component} from "react";
15
- import {withAuthenticationContext} from "../../../contexts/AuthenticationContext";
16
- import {Trans, withTranslation} from "react-i18next";
17
- import PropTypes from "prop-types";
18
-
19
- class HelpOnPassphraseLostSecondaryAction extends Component {
20
- /**
21
- * Get the translate function
22
- * @returns {function(...[*]=)}
23
- */
24
- get translate() {
25
- return this.props.t;
26
- }
27
-
28
- render() {
29
- return (
30
- <a onClick={this.props.authenticationContext.onPassphraseLost}>
31
- <Trans>Help, I lost my passphrase.</Trans>
32
- </a>
33
- );
34
- }
35
- }
36
-
37
- HelpOnPassphraseLostSecondaryAction.propTypes = {
38
- authenticationContext: PropTypes.any, // The authentication context
39
- t: PropTypes.func, // The translation function
40
- };
41
- export default withAuthenticationContext(withTranslation('common')(HelpOnPassphraseLostSecondaryAction));