passbolt-styleguide 3.5.3 → 3.6.0-beta1

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 (741) hide show
  1. package/build/css/help.min.css +4 -4
  2. package/build/css/public.min.css +5 -5
  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 +4 -4
  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 +87 -1
  26. package/build/js/dist/api-recover.js +1 -1
  27. package/build/js/dist/api-recover.js.LICENSE.txt +15 -1
  28. package/build/js/dist/api-setup.js +1 -1
  29. package/build/js/dist/api-setup.js.LICENSE.txt +15 -1
  30. package/build/js/dist/api-triage.js +1 -1
  31. package/build/js/dist/api-triage.js.LICENSE.txt +15 -1
  32. package/build/js/dist/api-vendors.js +1 -1
  33. package/build/js/dist/api-vendors.js.LICENSE.txt +164 -20
  34. package/jest.config.json +13 -0
  35. package/package.json +30 -23
  36. package/src/fonts/opensans-semibold.woff +0 -0
  37. package/src/fonts/passbolt.ttf +0 -0
  38. package/src/img/avatar/group_default.png +0 -0
  39. package/src/img/avatar/user.png +0 -0
  40. package/src/img/avatar/user_medium.png +0 -0
  41. package/src/img/controls/fail.svg +1 -0
  42. package/src/img/controls/success.svg +1 -0
  43. package/src/img/controls/warning.svg +1 -0
  44. package/src/img/diagrams/totp.svg +1 -1
  45. package/src/img/illustrations/passphrase_intro.svg +37 -0
  46. package/src/img/third_party/appstore.svg +27 -0
  47. package/src/img/third_party/firefox_logo-black.png +0 -0
  48. package/src/img/third_party/firefox_logo-white.png +0 -0
  49. package/src/img/third_party/playstore.svg +47 -0
  50. package/src/locales/en-UK/common.json +163 -16
  51. package/src/react-extension/ApiAccountRecovery.entry.js +25 -0
  52. package/src/react-extension/ApiAccountRecovery.js +235 -0
  53. package/src/react-extension/ApiApp.js +50 -43
  54. package/src/react-extension/ApiRecover.js +3 -1
  55. package/src/react-extension/ApiSetup.js +3 -1
  56. package/src/react-extension/ApiTriage.js +2 -26
  57. package/src/react-extension/ExtApp.js +129 -105
  58. package/src/react-extension/ExtAuthenticationAccountRecovery.js +173 -0
  59. package/src/react-extension/ExtAuthenticationLogin.js +35 -33
  60. package/src/react-extension/ExtAuthenticationRecover.js +23 -35
  61. package/src/react-extension/ExtAuthenticationSetup.js +24 -46
  62. package/src/react-extension/ExtBootstrapAccountRecovery.js +75 -0
  63. package/src/react-extension/ExtBootstrapApp.js +4 -0
  64. package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.js +114 -0
  65. package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.test.data.js +27 -0
  66. package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.test.js +72 -0
  67. package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.test.page.js +74 -0
  68. package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.test.stories.js +51 -0
  69. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryStatusCheck/HandleAccountRecoveryStatusCheck.js +80 -0
  70. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryStatusCheck/HandleAccountRecoveryStatusCheck.test.data.js +60 -0
  71. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryStatusCheck/HandleAccountRecoveryStatusCheck.test.js +110 -0
  72. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryStatusCheck/HandleAccountRecoveryStatusCheck.test.page.js +40 -0
  73. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryUserSettingsRoute/HandleAccountRecoveryUserSettingsRoute.js +96 -0
  74. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryUserSettingsRoute/HandleAccountRecoveryUserSettingsRoute.test.data.js +63 -0
  75. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryUserSettingsRoute/HandleAccountRecoveryUserSettingsRoute.test.js +88 -0
  76. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryUserSettingsRoute/HandleAccountRecoveryUserSettingsRoute.test.page.js +37 -0
  77. package/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.js +218 -0
  78. package/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.test.data.js +49 -0
  79. package/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.test.js +98 -0
  80. package/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.test.page.js +37 -0
  81. package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.js +311 -0
  82. package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.test.data.js +55 -0
  83. package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.test.js +132 -0
  84. package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.test.page.js +70 -0
  85. package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.test.stories.js +104 -0
  86. package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.js +279 -0
  87. package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.test.data.js +52 -0
  88. package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.test.js +77 -0
  89. package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.test.page.js +119 -0
  90. package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.test.stories.js +36 -0
  91. package/src/react-extension/components/Administration/AdministrationWorkspace.js +31 -20
  92. package/src/react-extension/components/Administration/AdministrationWorkspace.test.data.js +5 -1
  93. package/src/react-extension/components/Administration/AdministrationWorkspace.test.js +45 -0
  94. package/src/react-extension/components/Administration/AdministrationWorkspace.test.page.js +23 -3
  95. package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.js +250 -0
  96. package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.data.js +153 -0
  97. package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.js +109 -0
  98. package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.page.js +174 -0
  99. package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.stories.js +43 -0
  100. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.js +36 -0
  101. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.data.js +2 -1
  102. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.js +9 -0
  103. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.page.js +12 -0
  104. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationAccountRecoveryAction/DisplayAdministrationAccountRecoveryActions.js +138 -0
  105. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationAccountRecoveryAction/DisplayAdministrationAccountRecoveryActions.test.data.js +46 -0
  106. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationAccountRecoveryAction/DisplayAdministrationAccountRecoveryActions.test.js +51 -0
  107. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationAccountRecoveryAction/DisplayAdministrationAccountRecoveryActions.test.page.js +93 -0
  108. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationWorkspaceActions.js +1 -1
  109. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.js +2 -0
  110. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.test.js +9 -0
  111. package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.js +271 -146
  112. package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.test.stories.js +102 -0
  113. package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.js +9 -11
  114. package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.page.js +14 -7
  115. package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.stories.js +67 -0
  116. package/src/react-extension/components/Administration/DisplayLoadingDialog/DisplayLoadingDialog.js +63 -10
  117. package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.js +101 -114
  118. package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.stories.js +3 -10
  119. package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.js +9 -11
  120. package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.js +15 -15
  121. package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.data.js +17 -3
  122. package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.page.js +2 -2
  123. package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.stories.js +71 -0
  124. package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.js +8 -10
  125. package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.js +16 -10
  126. package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.js +288 -454
  127. package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.js +2 -2
  128. package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.page.js +4 -4
  129. package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.stories.js +3 -9
  130. package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.js +32 -24
  131. package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.test.js +10 -3
  132. package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.test.page.js +2 -2
  133. package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.test.stories.js +28 -0
  134. package/src/react-extension/components/Administration/HandleSaveAccountRecoveryOrganizationPolicyWorkflow/HandleSaveAccountRecoveryOrganizationPolicyWorkflow.js +180 -0
  135. package/src/react-extension/components/Administration/HandleSaveAccountRecoveryOrganizationPolicyWorkflow/HandleSaveAccountRecoveryOrganizationPolicyWorkflow.test.data.js +47 -0
  136. package/src/react-extension/components/Administration/HandleSaveAccountRecoveryOrganizationPolicyWorkflow/HandleSaveAccountRecoveryOrganizationPolicyWorkflow.test.js +64 -0
  137. package/src/react-extension/components/Administration/HandleSaveAccountRecoveryOrganizationPolicyWorkflow/HandleSaveAccountRecoveryOrganizationPolicyWorkflow.test.page.js +35 -0
  138. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.js +434 -0
  139. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.data.js +186 -0
  140. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.js +100 -0
  141. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.page.js +159 -0
  142. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.stories.js +62 -0
  143. package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.js +473 -0
  144. package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.test.data.js +31 -0
  145. package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.test.js +155 -0
  146. package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.test.page.js +124 -0
  147. package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.test.stories.js +41 -0
  148. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.js +108 -0
  149. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.test.js +48 -0
  150. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.test.page.js +82 -0
  151. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.test.stories.js +49 -0
  152. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/GenerateOrganizationKey.js +384 -0
  153. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/GenerateOrganizationKey.test.js +181 -0
  154. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/ImportOrganizationKey.js +288 -0
  155. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/ImportOrganizationKey.test.js +188 -0
  156. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.js +121 -0
  157. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.test.page.js +262 -0
  158. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.test.stories.js +48 -0
  159. package/src/react-extension/components/Announcement/AnnouncementWrapper/AnnouncementWrapper.js +1 -1
  160. package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.js +91 -0
  161. package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.test.data.js +41 -0
  162. package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.test.js +57 -0
  163. package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.test.page.js +64 -0
  164. package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.test.stories.js +40 -0
  165. package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.js +36 -0
  166. package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.test.js +37 -0
  167. package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.test.page.js +55 -0
  168. package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.test.stories.js +39 -0
  169. package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.test.js +3 -3
  170. package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.test.page.js +0 -1
  171. package/src/react-extension/components/Authentication/CheckMailBox/CheckMailbox.test.stories.js +21 -15
  172. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.js +39 -51
  173. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.data.js +18 -30
  174. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.js +110 -47
  175. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.page.js +33 -10
  176. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.stories.js +36 -19
  177. package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.js +191 -0
  178. package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.test.data.js +90 -0
  179. package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.test.js +92 -0
  180. package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.test.page.js +109 -0
  181. package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.test.stories.js +60 -0
  182. package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.js +5 -29
  183. package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.data.js +17 -18
  184. package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.js +48 -25
  185. package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.page.js +16 -9
  186. package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.stories.js +20 -16
  187. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.js +86 -94
  188. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.data.js +18 -14
  189. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.js +197 -104
  190. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.page.js +55 -16
  191. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.stories.js +31 -19
  192. package/src/react-extension/components/Authentication/DisplayAlreadyLoggedInError/DisplayAlreadyLoggedInError.js +60 -0
  193. package/src/react-extension/components/Authentication/DisplayAlreadyLoggedInError/DisplayAlreadyLoggedInError.test.data.js +25 -0
  194. package/src/react-extension/components/Authentication/DisplayAlreadyLoggedInError/DisplayAlreadyLoggedInError.test.js +40 -0
  195. package/src/react-extension/components/Authentication/DisplayAlreadyLoggedInError/DisplayAlreadyLoggedInError.test.page.js +64 -0
  196. package/src/react-extension/components/Authentication/DisplayAlreadyLoggedInError/DisplayAlreadyLoggedInError.test.stories.js +60 -0
  197. package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.js +13 -7
  198. package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.test.js +18 -1
  199. package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/{DisplayBrowserNotSupportedPage.js → DisplayBrowserNotSupported.test.page.js} +2 -5
  200. package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.test.stories.js +21 -15
  201. package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.js +6 -10
  202. package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.data.js +36 -0
  203. package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.js +34 -0
  204. package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.page.js +49 -0
  205. package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.stories.js +23 -15
  206. package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.js +6 -10
  207. package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.test.js +1 -1
  208. package/src/react-extension/components/Authentication/DisplayRequireInvitationError/{DisplayRequireInvitationErrorPage.js → DisplayRequireInvitationError.test.page.js} +0 -3
  209. package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.test.stories.js +21 -15
  210. package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.js +91 -10
  211. package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.data.js +56 -0
  212. package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.js +46 -0
  213. package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.page.js +79 -0
  214. package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.stories.js +48 -15
  215. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.js +12 -53
  216. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.data.js +16 -16
  217. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.js +10 -13
  218. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.page.js +16 -6
  219. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.stories.js +23 -15
  220. package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.js +4 -1
  221. package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.data.js +17 -3
  222. package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.js +1 -1
  223. package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.page.js +1 -2
  224. package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.stories.js +21 -15
  225. package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.test.data.js +28 -11
  226. package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.test.page.js +1 -1
  227. package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.test.stories.js +21 -16
  228. package/src/react-extension/components/Authentication/HandleSessionExpired/HandleSessionExpired.test.data.js +17 -3
  229. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.js +87 -39
  230. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.data.js +25 -17
  231. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.js +204 -58
  232. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.page.js +44 -8
  233. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.stories.js +31 -19
  234. package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.js +0 -9
  235. package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.data.js +17 -3
  236. package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.stories.js +62 -18
  237. package/src/react-extension/components/Authentication/{IntroduceSetupExtension/IntroduceSetupExtension.js → IntroduceExtension/IntroduceExtension.js} +8 -19
  238. package/src/react-extension/components/Authentication/IntroduceExtension/IntroduceExtension.test.data.js +24 -0
  239. package/src/react-extension/components/Authentication/{IntroduceSetupExtension/IntroduceSetupExtension.test.js → IntroduceExtension/IntroduceExtension.test.js} +16 -6
  240. package/src/react-extension/components/Authentication/{IntroduceSetupExtension/IntroduceSetupExtension.test.page.js → IntroduceExtension/IntroduceExtension.test.page.js} +3 -4
  241. package/src/react-extension/components/Authentication/IntroduceExtension/IntroduceExtension.test.stories.js +39 -0
  242. package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.data.js +27 -9
  243. package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.js +2 -8
  244. package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.page.js +4 -9
  245. package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.stories.js +23 -14
  246. package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.js +70 -0
  247. package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.test.data.js +25 -0
  248. package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.test.js +49 -0
  249. package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.test.page.js +74 -0
  250. package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.test.stories.js +40 -0
  251. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.js +46 -0
  252. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.test.data.js +36 -0
  253. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.test.js +35 -0
  254. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.test.page.js +50 -0
  255. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.test.stories.js +41 -0
  256. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.js +47 -0
  257. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.test.js +43 -0
  258. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.test.page.js +62 -0
  259. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.test.stories.js +40 -0
  260. package/src/react-extension/components/AuthenticationAccountRecovery/OrchestrateAccountRecovery/InsertAccountRecoveryIframe.js +64 -0
  261. package/src/react-extension/components/AuthenticationAccountRecovery/OrchestrateAccountRecovery/OrchestrateAccountRecovery.js +84 -0
  262. package/src/react-extension/components/AuthenticationAccountRecovery/OrchestrateApiAccountRecovery/OrchestrateApiAccountRecovery.js +74 -0
  263. package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.js +8 -22
  264. package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.data.js +25 -0
  265. package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.js +52 -0
  266. package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.page.js +82 -0
  267. package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.stories.js +23 -16
  268. package/src/react-extension/components/AuthenticationLogin/Login/Login.js +135 -202
  269. package/src/react-extension/components/AuthenticationLogin/Login/Login.test.data.js +67 -0
  270. package/src/react-extension/components/AuthenticationLogin/Login/Login.test.js +157 -0
  271. package/src/react-extension/components/AuthenticationLogin/Login/Login.test.page.js +155 -0
  272. package/src/react-extension/components/AuthenticationLogin/Login/Login.test.stories.js +32 -27
  273. package/src/react-extension/components/AuthenticationLogin/OrchestrateLogin/OrchestrateLoginBoxFooter.js +48 -0
  274. package/src/react-extension/components/AuthenticationLogin/OrchestrateLogin/OrchestrateLoginBoxMain.js +91 -0
  275. package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.js +67 -174
  276. package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.test.js +15 -9
  277. package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.test.stories.js +6 -8
  278. package/src/react-extension/components/AuthenticationRecover/OrchestrateApiRecover/OrchestrateApiRecover.js +12 -1
  279. package/src/react-extension/components/AuthenticationRecover/RecoverAuthentication/RecoverAuthentication.js +95 -82
  280. package/src/react-extension/components/AuthenticationSetup/OrchestrateApiSetup/OrchestrateApiSetup.js +12 -1
  281. package/src/react-extension/components/AuthenticationSetup/SetupAuthentication/SetupAuthentication.js +84 -87
  282. package/src/react-extension/components/Common/ActionFeedback/DisplayActionFeedbacks.test.data.js +4 -2
  283. package/src/react-extension/components/Common/ActionFeedback/DisplayActionFeedbacks.test.js +8 -3
  284. package/src/react-extension/components/Common/ActionFeedback/DisplayActionFeedbacks.test.stories.js +30 -0
  285. package/src/react-extension/components/Common/ActionFeedback/ShareActionFeedback.js +1 -1
  286. package/src/react-extension/components/Common/Avatar/UserAvatar.js +6 -1
  287. package/src/react-extension/components/Common/Avatar/UserAvatar.test.data.js +27 -0
  288. package/src/react-extension/components/Common/Avatar/UserAvatar.test.stories.js +54 -0
  289. package/src/react-extension/components/Common/Button/Button.test.stories.js +234 -0
  290. package/src/react-extension/components/Common/Checkbox/Checkbox.test.stories.js +67 -0
  291. package/src/react-extension/components/Common/ContextualMenu/ContextualMenu.test.stories.js +100 -0
  292. package/src/react-extension/components/Common/ContextualMenu/ContextualMenuWrapper.js +17 -2
  293. package/src/react-extension/components/Common/Dialog/DialogCloseButton/DialogCloseButton.js +2 -2
  294. package/src/react-extension/components/Common/Dialog/DialogWrapper/DialogFooter.test.stories.js +51 -0
  295. package/src/react-extension/components/Common/Dialog/DialogWrapper/DialogWrapper.js +13 -11
  296. package/src/react-extension/components/Common/Dialog/DialogWrapper/DialogWrapper.test.stories.js +38 -0
  297. package/src/react-extension/components/Common/Dialog/ManageDialogs/ManageDialogs.js +7 -2
  298. package/src/react-extension/components/Common/DragInfo/DragInfo.test.stories.js +70 -0
  299. package/src/react-extension/components/Common/Error/HandleErrorEvents/HandleErrorEvents.js +2 -3
  300. package/src/react-extension/components/Common/Error/NotifyError/NotifyError.js +88 -31
  301. package/src/react-extension/components/Common/Error/NotifyError/NotifyError.test.stories.js +26 -0
  302. package/src/react-extension/components/Common/Error/ShowErrorDetails/ShowErrorDetails.js +1 -1
  303. package/src/react-extension/components/Common/Footer/Footer.js +10 -9
  304. package/src/react-extension/components/Common/Icons/MobileTransferIcon.js +77 -0
  305. package/src/react-extension/components/Common/Inputs/FormSubmitButton/FormSubmitButton.js +10 -5
  306. package/src/react-extension/components/Common/Internationalisation/TranslationProvider.js +1 -0
  307. package/src/react-extension/components/Common/Link/Link.test.stories.js +33 -0
  308. package/src/react-extension/components/Common/Loading/LoadingBar/LoadingBar.js +1 -1
  309. package/src/react-extension/components/Common/Loading/LoadingBar/LoadingBar.test.stories.js +30 -0
  310. package/src/react-extension/components/Common/Loading/LoadingSpinner/LoadingSpinner.js +16 -3
  311. package/src/react-extension/components/Common/Loading/LoadingSpinner/LoadingSpinner.test.stories.js +49 -0
  312. package/src/react-extension/components/Common/Navigation/Search/SearchBar.js +29 -9
  313. package/src/react-extension/components/Common/Navigation/Search/SearchBar.test.data.js +26 -0
  314. package/src/react-extension/components/Common/Navigation/Search/SearchBar.test.stories.js +35 -0
  315. package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.js +116 -14
  316. package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.test.js +9 -6
  317. package/src/react-extension/components/Common/RadioButton/RadioButton.test.stories.js +59 -0
  318. package/src/react-extension/components/Common/Route/HandleApplicationFirstLoadRoute.js +77 -0
  319. package/src/react-extension/components/Common/Route/HandleRouteFallback.js +14 -46
  320. package/src/react-extension/components/Common/Select/Select.js +434 -0
  321. package/src/react-extension/components/Common/Select/Select.test.data.js +70 -0
  322. package/src/react-extension/components/Common/Select/Select.test.stories.js +66 -0
  323. package/src/react-extension/components/Common/Tab/Tabs.js +3 -1
  324. package/src/react-extension/components/Common/Text/Text.test.stories.js +26 -0
  325. package/src/react-extension/components/Common/TextField/TextField.test.stories.js +361 -0
  326. package/src/react-extension/components/Common/Toggle/Toggle.test.stories.js +54 -0
  327. package/src/react-extension/components/Common/Tooltip/Tooltip.js +14 -10
  328. package/src/react-extension/components/Common/Tooltip/Tooltip.test.stories.js +56 -0
  329. package/src/react-extension/components/Common/Workflow/ManageWorkflows/ManageWorkflows.js +72 -0
  330. package/src/react-extension/components/InsertAppIframe.js +12 -6
  331. package/src/react-extension/components/Internationalisation/ChangeLocale/ChangeLocale.js +15 -9
  332. package/src/react-extension/components/Internationalisation/ChangeLocale/ChangeLocale.test.js +1 -1
  333. package/src/react-extension/components/Internationalisation/ChangeLocale/ChangeLocale.test.page.js +14 -7
  334. package/src/react-extension/components/Resource/CreateResource/CreateResource.js +35 -97
  335. package/src/react-extension/components/Resource/CreateResource/CreateResource.test.data.js +2 -2
  336. package/src/react-extension/components/Resource/CreateResource/CreateResource.test.js +27 -9
  337. package/src/react-extension/components/Resource/CreateResource/CreateResource.test.page.js +2 -2
  338. package/src/react-extension/components/Resource/CreateResource/CreateResource.test.stories.js +19 -3
  339. package/src/react-extension/components/Resource/DeleteResource/DeleteResource.js +3 -5
  340. package/src/react-extension/components/Resource/DeleteResource/DeleteResource.test.js +21 -7
  341. package/src/react-extension/components/Resource/DeleteResource/DeleteResource.test.stories.js +12 -0
  342. package/src/react-extension/components/Resource/DisplayResourcesList/DisplayDragResource.js +13 -5
  343. package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.js +27 -33
  344. package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.test.page.js +2 -2
  345. package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.test.stories.js +107 -6
  346. package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMainMenu.js +6 -6
  347. package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMainMenu.test.data.js +1 -0
  348. package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMainMenu.test.page.js +2 -2
  349. package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMainMenu.test.stories.js +37 -0
  350. package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMenu.js +12 -12
  351. package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMenu.test.data.js +7 -1
  352. package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMenu.test.page.js +10 -10
  353. package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMenu.test.stories.js +58 -0
  354. package/src/react-extension/components/Resource/EditResource/EditResource.js +27 -95
  355. package/src/react-extension/components/Resource/EditResource/EditResource.test.data.js +2 -2
  356. package/src/react-extension/components/Resource/EditResource/EditResource.test.js +18 -12
  357. package/src/react-extension/components/Resource/EditResource/EditResource.test.page.js +2 -2
  358. package/src/react-extension/components/Resource/EditResource/EditResource.test.stories.js +18 -4
  359. package/src/react-extension/components/Resource/ExportResources/ExportResources.js +14 -24
  360. package/src/react-extension/components/Resource/ExportResources/ExportResources.test.js +13 -7
  361. package/src/react-extension/components/Resource/ExportResources/ExportResources.test.page.js +13 -7
  362. package/src/react-extension/components/Resource/ExportResources/ExportResources.test.stories.js +4 -2
  363. package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.js +52 -53
  364. package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.test.js +9 -3
  365. package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.test.page.js +2 -2
  366. package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.test.stories.js +4 -2
  367. package/src/react-extension/components/Resource/FilterResourcesByFolders/DisplayDragFolderItem.js +3 -2
  368. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.js +50 -36
  369. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.js +1 -1
  370. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.page.js +3 -3
  371. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.stories.js +24 -8
  372. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.js +31 -27
  373. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.test.js +6 -1
  374. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItemContextualMenu.js +47 -17
  375. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItemContextualMenu.test.js +5 -5
  376. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItemContextualMenu.test.page.js +0 -7
  377. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByRootFolderContextualMenu.js +19 -22
  378. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByRootFolderContextualMenu.test.js +0 -2
  379. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByRootFolderContextualMenu.test.page.js +0 -7
  380. package/src/react-extension/components/Resource/FilterResourcesByGroups/FilterResourcesByGroups.js +22 -18
  381. package/src/react-extension/components/Resource/FilterResourcesByShortcuts/FilterResourcesByShortcuts.js +10 -10
  382. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.js +37 -20
  383. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.js +2 -2
  384. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.page.js +2 -2
  385. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.stories.js +7 -6
  386. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTagsContextualMenu.js +16 -2
  387. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTagsList.js +33 -13
  388. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTagsListContextualMenu.js +17 -3
  389. package/src/react-extension/components/Resource/ImportResources/ImportResources.js +43 -41
  390. package/src/react-extension/components/Resource/ImportResources/ImportResources.test.js +11 -3
  391. package/src/react-extension/components/Resource/ImportResources/ImportResources.test.page.js +3 -3
  392. package/src/react-extension/components/Resource/ImportResources/ImportResources.test.stories.js +28 -0
  393. package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.js +57 -58
  394. package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.test.js +10 -3
  395. package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.test.page.js +3 -3
  396. package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.test.stories.js +9 -1
  397. package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.js +6 -4
  398. package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.test.page.js +1 -1
  399. package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.test.stories.js +19 -1
  400. package/src/react-extension/components/ResourceComment/AddResourceComment/AddResourceComment.js +7 -7
  401. package/src/react-extension/components/ResourceComment/AddResourceComment/AddResourceComment.test.stories.js +15 -3
  402. package/src/react-extension/components/ResourceComment/ConfirmResourceCommentDeletion/ConfirmResourceCommentDeletion.js +3 -3
  403. package/src/react-extension/components/ResourceComment/ConfirmResourceCommentDeletion/ConfirmResourceCommentDeletion.test.stories.js +8 -3
  404. package/src/react-extension/components/ResourceComment/DeleteResourceComment/DeleteComment.js +2 -2
  405. package/src/react-extension/components/ResourceComment/DisplayResourceCommentList/DisplayResourceCommentList.js +2 -0
  406. package/src/react-extension/components/ResourceComment/DisplayResourceCommentList/DisplayResourceCommentList.test.stories.js +9 -8
  407. package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.js +21 -14
  408. package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.test.stories.js +6 -3
  409. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetails.js +2 -2
  410. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsActivity.js +2 -1
  411. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsActivity.test.stories.js +1 -1
  412. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsComment.js +8 -13
  413. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsDescription.js +8 -7
  414. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsDescription.test.js +1 -1
  415. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsDescription.test.stories.js +1 -1
  416. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsInformation.js +3 -3
  417. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsInformation.test.data.js +11 -0
  418. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsInformation.test.js +11 -4
  419. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsPermission.js +3 -2
  420. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.js +3 -3
  421. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.test.js +1 -1
  422. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.test.page.js +1 -1
  423. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.test.stories.js +11 -10
  424. package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.js +3 -5
  425. package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.js +16 -5
  426. package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.page.js +2 -2
  427. package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.stories.js +13 -0
  428. package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.js +9 -11
  429. package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.test.js +12 -5
  430. package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.test.page.js +2 -2
  431. package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.test.stories.js +4 -1
  432. package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.js +3 -5
  433. package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.test.js +2 -5
  434. package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.test.page.js +2 -2
  435. package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.test.stories.js +6 -2
  436. package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.js +3 -5
  437. package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.js +15 -4
  438. package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.page.js +2 -2
  439. package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.stories.js +10 -2
  440. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetails.js +1 -1
  441. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsActivity.js +2 -1
  442. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsActivity.test.stories.js +4 -2
  443. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsInformation.js +1 -1
  444. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsInformation.test.js +2 -3
  445. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsInformation.test.stories.js +3 -1
  446. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsPermissions.js +3 -2
  447. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsPermissions.test.stories.js +3 -1
  448. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePassphraseGenerator.js +15 -6
  449. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePassphraseGenerator.test.stories.js +2 -1
  450. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePasswordGenerator.js +13 -16
  451. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePasswordGenerator.test.stories.js +2 -3
  452. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/GenerateResourcePassword.js +18 -62
  453. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/GenerateResourcePassword.test.stories.js +7 -8
  454. package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.js +3 -5
  455. package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.test.js +1 -1
  456. package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.test.page.js +2 -2
  457. package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.test.stories.js +6 -2
  458. package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.js +3 -5
  459. package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.js +1 -1
  460. package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.page.js +2 -2
  461. package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.stories.js +6 -2
  462. package/src/react-extension/components/ResourceTag/EditResourceTags/EditResourceTags.js +9 -10
  463. package/src/react-extension/components/ResourceTag/EditResourceTags/EditResourceTagsItemViewer.js +4 -2
  464. package/src/react-extension/components/Share/ShareDialog.js +3 -5
  465. package/src/react-extension/components/Share/ShareDialog.test.js +20 -9
  466. package/src/react-extension/components/Share/ShareDialog.test.page.js +13 -4
  467. package/src/react-extension/components/Share/ShareDialog.test.stories.js +5 -3
  468. package/src/react-extension/components/Share/SharePermissionDeleteButton.js +3 -3
  469. package/src/react-extension/components/Share/SharePermissionItem.js +32 -20
  470. package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.js +7 -9
  471. package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.test.js +6 -2
  472. package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.test.page.js +1 -1
  473. package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.test.stories.js +5 -0
  474. package/src/react-extension/components/User/CreateUser/CreateUser.js +6 -8
  475. package/src/react-extension/components/User/CreateUser/CreateUser.test.page.js +2 -2
  476. package/src/react-extension/components/User/CreateUser/CreateUser.test.stories.js +14 -3
  477. package/src/react-extension/components/User/DeleteUser/DeleteUser.js +3 -5
  478. package/src/react-extension/components/User/DeleteUser/DeleteUser.test.js +1 -1
  479. package/src/react-extension/components/User/DeleteUser/DeleteUser.test.stories.js +9 -2
  480. package/src/react-extension/components/User/DeleteUser/DeleteUserWithConflicts.js +29 -29
  481. package/src/react-extension/components/User/DeleteUser/DeleteUserWithConflicts.test.js +1 -1
  482. package/src/react-extension/components/User/DeleteUser/DeleteUserWithConflicts.test.stories.js +7 -1
  483. package/src/react-extension/components/User/DisplayExpiredAccountRecovery/DisplayExpiredAccountRecovery.js +79 -0
  484. package/src/react-extension/components/User/DisplayExpiredAccountRecovery/DisplayExpiredAccountRecovery.test.stories.js +32 -0
  485. package/src/react-extension/components/User/DisplayUserBadgeMenu/DisplayUserBadgeMenu.js +18 -11
  486. package/src/react-extension/components/User/DisplayUserBadgeMenu/DisplayUserBadgeMenu.test.data.js +37 -0
  487. package/src/react-extension/components/User/DisplayUserBadgeMenu/DisplayUserBadgeMenu.test.stories.js +10 -44
  488. package/src/react-extension/components/User/DisplayUserWorkspace/DisplayUserWorkspace.js +5 -1
  489. package/src/react-extension/components/User/DisplayUserWorkspace/DisplayUserWorkspace.test.data.js +18 -9
  490. package/src/react-extension/components/User/DisplayUserWorkspace/DisplayUserWorkspace.test.js +2 -2
  491. package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.js +55 -13
  492. package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.data.js +16 -1
  493. package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.js +14 -0
  494. package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.page.js +8 -0
  495. package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.stories.js +55 -0
  496. package/src/react-extension/components/User/DisplayUserWorkspaceMainActions/DisplayUserWorkspaceMainActions.js +4 -4
  497. package/src/react-extension/components/User/DisplayUserWorkspaceMainActions/DisplayUserWorkspaceMainActions.test.page.js +1 -1
  498. package/src/react-extension/components/User/DisplayUsers/DisplayUsers.js +109 -28
  499. package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.data.js +37 -13
  500. package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.js +25 -5
  501. package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.page.js +29 -6
  502. package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.stories.js +38 -0
  503. package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.js +46 -10
  504. package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.test.data.js +17 -2
  505. package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.test.js +38 -5
  506. package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.test.page.js +10 -0
  507. package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.test.stories.js +53 -0
  508. package/src/react-extension/components/User/EditUser/EditUser.js +6 -8
  509. package/src/react-extension/components/User/EditUser/EditUser.test.page.js +2 -2
  510. package/src/react-extension/components/User/EditUser/EditUser.test.stories.js +8 -1
  511. package/src/react-extension/components/User/FilterUsersByGroups/DisplayGroupContextualMenu.js +20 -8
  512. package/src/react-extension/components/User/FilterUsersByGroups/FilterUsersByGroup.js +66 -30
  513. package/src/react-extension/components/User/FilterUsersByGroups/FilterUsersByGroup.test.page.js +2 -2
  514. package/src/react-extension/components/User/FilterUsersByGroups/FilterUsersByGroupContextualMenu.js +16 -2
  515. package/src/react-extension/components/User/FilterUsersByShortcut/FilterUsersByShortcut.js +4 -4
  516. package/src/react-extension/components/User/HandleReviewAccountRecoveryRequestRoute/HandleReviewAccountRecoveryRequestRoute.js +98 -0
  517. package/src/react-extension/components/User/HandleReviewAccountRecoveryRequestRoute/HandleReviewAccountRecoveryRequestRoute.test.data.js +56 -0
  518. package/src/react-extension/components/User/HandleReviewAccountRecoveryRequestRoute/HandleReviewAccountRecoveryRequestRoute.test.js +54 -0
  519. package/src/react-extension/components/User/HandleReviewAccountRecoveryRequestRoute/HandleReviewAccountRecoveryRequestRoute.test.page.js +37 -0
  520. package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.js +37 -4
  521. package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.test.data.js +20 -6
  522. package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.test.js +1 -1
  523. package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.js +252 -0
  524. package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.data.js +125 -0
  525. package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.js +150 -0
  526. package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.page.js +113 -0
  527. package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.stories.js +142 -0
  528. package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.js +468 -0
  529. package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.test.data.js +167 -0
  530. package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.test.js +106 -0
  531. package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.test.page.js +101 -0
  532. package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.test.stories.js +143 -0
  533. package/src/react-extension/components/UserDetails/DisplayUserDetailsGroups/DisplayUserDetailsGroups.js +6 -1
  534. package/src/react-extension/components/UserDetails/DisplayUserDetailsGroups/DisplayUserDetailsGroups.test.stories.js +1 -1
  535. package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.js +63 -2
  536. package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.test.data.js +15 -23
  537. package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.test.js +10 -3
  538. package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.test.page.js +18 -13
  539. package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.test.stories.js +1 -1
  540. package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.js +5 -4
  541. package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.data.js +1 -1
  542. package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.stories.js +1 -1
  543. package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.js +43 -24
  544. package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.js +3 -3
  545. package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.page.js +18 -4
  546. package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.stories.js +5 -1
  547. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.js +3 -5
  548. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.test.js +1 -1
  549. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.test.stories.js +8 -1
  550. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.js +18 -23
  551. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.test.js +1 -1
  552. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.test.stories.js +8 -1
  553. package/src/react-extension/components/UserGroup/DisplayUserGroupDetails/DisplayUserGroupDetails.js +2 -2
  554. package/src/react-extension/components/UserGroup/DisplayUserGroupDetails/DisplayUserGroupDetails.test.data.js +1 -1
  555. package/src/react-extension/components/UserGroup/DisplayUserGroupDetails/DisplayUserGroupDetails.test.js +1 -1
  556. package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsInformation/DisplayUserGroupDetailsInformation.js +1 -1
  557. package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsInformation/DisplayUserGroupDetailsInformation.test.data.js +1 -1
  558. package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembers.js +4 -3
  559. package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembers.test.data.js +1 -1
  560. package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembers.test.stories.js +2 -1
  561. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.js +91 -72
  562. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.data.js +1 -1
  563. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.js +16 -7
  564. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.page.js +7 -6
  565. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.stories.js +1 -1
  566. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.js +25 -87
  567. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.test.js +7 -4
  568. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.test.page.js +1 -1
  569. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/DisplayChangePassphraseIntroduction.js +2 -2
  570. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/DownloadRecoveryKit.js +3 -5
  571. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/DownloadRecoveryKit.test.page.js +1 -1
  572. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.js +52 -106
  573. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.js +25 -7
  574. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.page.js +6 -6
  575. package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.js +5 -5
  576. package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.test.js +11 -3
  577. package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.test.stories.js +11 -3
  578. package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.js +240 -0
  579. package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.test.data.js +53 -0
  580. package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.test.js +110 -0
  581. package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.test.page.js +85 -0
  582. package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.test.stories.js +65 -0
  583. package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.js +24 -21
  584. package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.test.stories.js +1 -1
  585. package/src/react-extension/components/UserSetting/DisplayUserMfa/DisplayUserMfa.js +1 -1
  586. package/src/react-extension/components/UserSetting/DisplayUserProfile/DisplayUserProfile.js +18 -17
  587. package/src/react-extension/components/UserSetting/DisplayUserProfile/DisplayUserProfile.test.stories.js +6 -4
  588. package/src/react-extension/components/UserSetting/DisplayUserSettingWorkspaceActions/DisplayUserSettingWorkspaceActions.js +1 -1
  589. package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspace/DisplayUserSettingsWorkspace.js +16 -2
  590. package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspaceBreadcrumb/DisplayUserSettingsWorkspaceBreadcrumb.js +2 -1
  591. package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.js +23 -23
  592. package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.test.stories.js +18 -12
  593. package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.js +14 -18
  594. package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.test.stories.js +18 -3
  595. package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.js +29 -0
  596. package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.test.stories.js +5 -0
  597. package/src/react-extension/components/UserSetting/TransferToMobile/TransferToMobile.js +107 -89
  598. package/src/react-extension/components/UserSetting/TransferToMobile/TransferToMobile.test.page.js +2 -2
  599. package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.js +24 -32
  600. package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.test.stories.js +10 -3
  601. package/src/react-extension/contexts/AccountRecoveryUserContext.js +223 -0
  602. package/src/react-extension/contexts/AccountRecoveryUserContext.test.data.js +68 -0
  603. package/src/react-extension/contexts/AccountRecoveryUserContext.test.js +58 -0
  604. package/src/react-extension/contexts/ActionFeedbackContext.test.data.js +28 -0
  605. package/src/react-extension/contexts/AdminAccountRecoveryContext.js +211 -0
  606. package/src/react-extension/contexts/AdminAccountRecoveryContext.test.data.js +66 -0
  607. package/src/react-extension/contexts/AdminAccountRecoveryContext.test.js +229 -0
  608. package/src/react-extension/contexts/AdministrationWorkspaceContext.js +27 -0
  609. package/src/react-extension/contexts/ApiAccountRecoveryContext.js +182 -0
  610. package/src/react-extension/contexts/ApiAccountRecoveryContext.test.data.js +28 -0
  611. package/src/react-extension/contexts/ApiAccountRecoveryContext.test.js +101 -0
  612. package/src/react-extension/contexts/ApiAppContext.js +2 -26
  613. package/src/react-extension/contexts/ApiAppContext.test.data.js +44 -0
  614. package/src/react-extension/contexts/ApiRecoverContext.js +59 -22
  615. package/src/react-extension/contexts/ApiSetupContext.js +56 -18
  616. package/src/react-extension/contexts/Authentication/AuthenticationAccountRecoveryContext.js +282 -0
  617. package/src/react-extension/contexts/Authentication/AuthenticationAccountRecoveryContext.test.data.js +51 -0
  618. package/src/react-extension/contexts/Authentication/AuthenticationAccountRecoveryContext.test.js +231 -0
  619. package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.js +264 -0
  620. package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.test.data.js +79 -0
  621. package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.test.js +234 -0
  622. package/src/react-extension/contexts/Authentication/AuthenticationRecoverContext.js +325 -0
  623. package/src/react-extension/contexts/Authentication/AuthenticationRecoverContext.test.data.js +65 -0
  624. package/src/react-extension/contexts/Authentication/AuthenticationRecoverContext.test.js +381 -0
  625. package/src/react-extension/contexts/Authentication/AuthenticationSetupContext.js +339 -0
  626. package/src/react-extension/contexts/Authentication/AuthenticationSetupContext.test.data.js +65 -0
  627. package/src/react-extension/contexts/Authentication/AuthenticationSetupContext.test.js +366 -0
  628. package/src/react-extension/contexts/DialogContext.test.data.js +27 -0
  629. package/src/react-extension/contexts/DragContext.js +2 -2
  630. package/src/react-extension/contexts/ExtAppContext.js +0 -6
  631. package/src/react-extension/contexts/ExtAppContext.test.data.js +54 -0
  632. package/src/react-extension/contexts/NavigationContext.js +26 -2
  633. package/src/react-extension/contexts/ResourceWorkspaceContext.js +37 -10
  634. package/src/react-extension/contexts/ResourceWorkspaceContext.test.js +4 -3
  635. package/src/react-extension/contexts/ResourceWorkspaceContext.test.page.js +10 -1
  636. package/src/react-extension/contexts/UserSettingsContext.js +1 -2
  637. package/src/react-extension/contexts/UserWorkspaceContext.js +40 -11
  638. package/src/react-extension/contexts/UserWorkspaceContext.test.data.js +13 -0
  639. package/src/react-extension/contexts/UserWorkspaceContext.test.page.js +6 -1
  640. package/src/react-extension/contexts/WorkflowContext.js +89 -0
  641. package/src/react-extension/contexts/WorkflowContext.test.data.js +27 -0
  642. package/src/react-extension/lib/Error/GpgKeyError.js +22 -0
  643. package/src/react-extension/lib/Error/InvalidMasterPasswordError.js +23 -0
  644. package/src/react-extension/lib/Error/ServerKeyChangedError.js +22 -0
  645. package/src/react-extension/test/fixture/Settings/siteSettings.js +7 -0
  646. package/src/react-extension/test/fixture/Settings/userSettings.js +1 -1
  647. package/src/react-extension/test/mock/MockPort.js +2 -2
  648. package/src/react-extension/test/mock/MockStorage.js +0 -2
  649. package/src/react-extension/test/mock/components/Internationalisation/MockTranslationProvider.js +2 -1
  650. package/src/react-extension/test/mock/components/React/mockSetState.js +22 -0
  651. package/src/react-quickaccess/ExtQuickAccess.js +12 -1
  652. package/src/react-quickaccess/components/ExtensionSetup/SetupExtensionInProgress/SetupExtensionInProgressPage.test.stories.js +1 -1
  653. package/src/react-quickaccess/components/FilterResourcesByFavoritePage/FilterResourcesByFavoritePage.js +7 -10
  654. package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.js +8 -11
  655. package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.test.stories.js +6 -10
  656. package/src/react-quickaccess/components/FilterResourcesByItemsIOwnPage/FilterResourcesByItemsIOwnPage.js +7 -10
  657. package/src/react-quickaccess/components/FilterResourcesByRecentlyModifiedPage/FilterResourcesByRecentlyModifiedPage.js +7 -10
  658. package/src/react-quickaccess/components/FilterResourcesBySharedWithMePage/FilterResourcesBySharedWithMePage.js +7 -10
  659. package/src/react-quickaccess/components/FilterResourcesByTagPage/FilterResourcesByTagPage.js +7 -10
  660. package/src/react-quickaccess/components/FilterResourcesByTagPage/FilterResourcesByTagPage.test.stories.js +6 -10
  661. package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePassphraseGenerator.js +16 -7
  662. package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePassphraseGenerator.test.js +3 -3
  663. package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePassphraseGenerator.test.page.js +18 -6
  664. package/src/react-quickaccess/components/GeneratePasswordPage/ConfigurePasswordGenerator.js +1 -1
  665. package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.js +56 -97
  666. package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.test.js +1 -1
  667. package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.test.page.js +3 -3
  668. package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.test.stories.js +109 -0
  669. package/src/react-quickaccess/components/Header/Header.js +4 -7
  670. package/src/react-quickaccess/components/HomePage/HomePage.js +17 -16
  671. package/src/react-quickaccess/components/LoginPage/LoginPage.js +32 -73
  672. package/src/react-quickaccess/components/LoginPage/LoginPage.test.stories.js +1 -0
  673. package/src/react-quickaccess/components/MoreFiltersPage/MoreFiltersPage.js +16 -23
  674. package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.js +49 -47
  675. package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.test.js +1 -1
  676. package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.test.stories.js +5 -3
  677. package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.js +54 -44
  678. package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.data.js +1 -1
  679. package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.js +65 -73
  680. package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.data.js +6 -3
  681. package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.js +30 -20
  682. package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.js +117 -106
  683. package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.test.data.js +2 -0
  684. package/src/react-quickaccess/components/Search/Search.js +54 -12
  685. package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.stories.js +12 -9
  686. package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.js +2 -2
  687. package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.test.stories.js +127 -164
  688. package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenuItem.js +2 -9
  689. package/src/react-web-integration/lib/Dom/DomUtils.js +25 -2
  690. package/src/react-web-integration/lib/InForm/InFormCallToActionField.js +6 -3
  691. package/src/react-web-integration/lib/InForm/InFormFieldSelector.js +7 -1
  692. package/src/react-web-integration/lib/InForm/InFormManager.js +24 -14
  693. package/src/react-web-integration/lib/InForm/InformManager.test.data.js +80 -2
  694. package/src/react-web-integration/lib/InForm/InformManager.test.js +147 -7
  695. package/src/react-web-integration/lib/InForm/InformManager.test.page.js +16 -2
  696. package/src/react-web-integration/lib/InForm/InformMenuField.js +4 -2
  697. package/src/shared/components/Icons/AnimatedFeedback.js +37 -0
  698. package/src/shared/components/Icons/Icon.js +1194 -0
  699. package/src/shared/components/Icons/Icon.test.stories.js +140 -0
  700. package/src/shared/components/Password/Password.js +180 -0
  701. package/src/shared/components/Password/Password.test.data.js +31 -0
  702. package/src/shared/components/Password/Password.test.js +86 -0
  703. package/src/shared/components/Password/Password.test.page.js +118 -0
  704. package/src/shared/components/Password/Password.test.stories.js +38 -0
  705. package/src/shared/components/PasswordComplexity/PasswordComplexity.js +138 -0
  706. package/src/shared/components/PasswordComplexity/PasswordComplexity.test.stories.js +45 -0
  707. package/src/shared/lib/Error/EntityValidationError.js +81 -0
  708. package/src/shared/lib/PropTypes/CustomPropTypes.js +38 -0
  709. package/src/shared/lib/SecretGenerator/SecretGeneratorComplexity.js +5 -5
  710. package/src/shared/lib/Settings/UserSettings.js +10 -10
  711. package/src/shared/lib/apiClient/apiClient.test.js +1 -1
  712. package/src/shared/lib/apiClient/csrfToken.js +25 -0
  713. package/src/shared/services/accountRecovery/ApiAppAccountRecoveryUserService.js +78 -0
  714. package/src/shared/services/accountRecovery/ExtAppAccountRecoveryUserService.js +24 -0
  715. package/test/jest.setup.js +14 -0
  716. package/test/mocks/mockApiResponse.js +20 -0
  717. package/src/img/diagrams/mobile-transfer.svg +0 -296
  718. package/src/img/illustrations/passphrase_intro.png +0 -0
  719. package/src/img/third_party/firefox_logo.png +0 -0
  720. package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.js +0 -97
  721. package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.test.stories.js +0 -33
  722. package/src/react-extension/components/Authentication/CheckPassphrase/GenerateKeyOnPassphraseLostSecondaryAction.js +0 -41
  723. package/src/react-extension/components/Authentication/CheckPassphrase/HelpOnPassphraseLostSecondaryAction.js +0 -41
  724. package/src/react-extension/components/Authentication/CheckPassphrase/HelpOnPrivateKeyLostSecondaryAction.js +0 -41
  725. package/src/react-extension/components/Authentication/ImportGpgKey/GenerateKeySecondaryAction.js +0 -40
  726. package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.test.data.js +0 -11
  727. package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.test.stories.js +0 -34
  728. package/src/react-extension/components/AuthenticationLogin/DisplayLoginError/DisplayLoginError.js +0 -87
  729. package/src/react-extension/components/AuthenticationLogin/DisplayLoginError/DisplayLoginError.test.stories.js +0 -33
  730. package/src/react-extension/components/AuthenticationLogin/DisplayLoginInProgress/DisplayLoginInProgress.js +0 -49
  731. package/src/react-extension/components/AuthenticationLogin/DisplayLoginInProgress/DisplayLoginProgress.test.stories.js +0 -33
  732. package/src/react-extension/components/AuthenticationLogin/OrchestrateLogin/OrchestrateLogin.js +0 -102
  733. package/src/react-extension/components/Common/Icons/AnimatedFeedback.js +0 -58
  734. package/src/react-extension/components/Common/Icons/Icon.js +0 -316
  735. package/src/react-extension/components/Common/Icons/Icon.test.stories.js +0 -78
  736. package/src/react-extension/components/Common/Tooltip/TooltipHtml.js +0 -81
  737. package/src/react-extension/components/Internationalisation/ChangeLocale/ChangeExtAuthenticationLocale.js +0 -63
  738. package/src/react-extension/contexts/AuthenticationContext.js +0 -467
  739. package/src/react-extension/contexts/AuthenticationContext.test.data.js +0 -15
  740. package/src/react-extension/contexts/AuthenticationContext.test.js +0 -252
  741. package/src/react-quickaccess/components/SimpleBar/SimpleBar.js +0 -145
@@ -15,13 +15,14 @@ import React from "react";
15
15
  import PropTypes from "prop-types";
16
16
  import {withAppContext} from "../../../contexts/AppContext";
17
17
  import {withActionFeedback} from "../../../contexts/ActionFeedbackContext";
18
- import Icon from "../../Common/Icons/Icon";
18
+ import Icon from "../../../../shared/components/Icons/Icon";
19
19
  import {withAdministrationWorkspace} from "../../../contexts/AdministrationWorkspaceContext";
20
20
  import XRegExp from "xregexp";
21
21
  import DisplayTestUserDirectoryAdministration
22
22
  from "../DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration";
23
23
  import {withDialog} from "../../../contexts/DialogContext";
24
24
  import {Trans, withTranslation} from "react-i18next";
25
+ import Select from "../../Common/Select/Select";
25
26
 
26
27
  /**
27
28
  * This component allows to display the MFA for the administration
@@ -47,6 +48,8 @@ class DisplayUserDirectoryAdministration extends React.Component {
47
48
  loading: true, // component is loading or not
48
49
  processing: false, // component is processing or not
49
50
 
51
+ hasFieldFocus: false, // true if the form field has focus
52
+
50
53
  openCredentials: true, // section credential open
51
54
  openDirectoryConfiguration: false, // section directory configuration open
52
55
  openSynchronizationOptions: false, // section synchronization options open
@@ -126,17 +129,15 @@ class DisplayUserDirectoryAdministration extends React.Component {
126
129
  this.handleDirectoryConfigurationTitleClicked = this.handleDirectoryConfigurationTitleClicked.bind(this);
127
130
  this.handleSynchronizationOptionsTitleClicked = this.handleSynchronizationOptionsTitleClicked.bind(this);
128
131
  this.handleConnectionTypeClicked = this.handleConnectionTypeClicked.bind(this);
129
- this.handleDefaultAdminClicked = this.handleDefaultAdminClicked.bind(this);
130
- this.handleDefaultGroupAdminClicked = this.handleDefaultGroupAdminClicked.bind(this);
131
132
 
132
133
  this.handleInputChange = this.handleInputChange.bind(this);
133
134
  this.handleHostInputKeyUp = this.handleHostInputKeyUp.bind(this);
134
135
  this.handlePortInputKeyUp = this.handlePortInputKeyUp.bind(this);
135
136
  this.handleDomainInputKeyUp = this.handleDomainInputKeyUp.bind(this);
137
+ this.handleFieldFocus = this.handleFieldFocus.bind(this);
138
+ this.handleFieldBlur = this.handleFieldBlur.bind(this);
136
139
  this.stopPropagation = this.stopPropagation.bind(this);
137
140
  this.handleConnectionTypeChange = this.handleConnectionTypeChange.bind(this);
138
- this.handleUserToBeDefaultAdminClick = this.handleUserToBeDefaultAdminClick.bind(this);
139
- this.handleUserToBeDefaultGroupAdminClick = this.handleUserToBeDefaultGroupAdminClick.bind(this);
140
141
  }
141
142
 
142
143
  /**
@@ -144,8 +145,6 @@ class DisplayUserDirectoryAdministration extends React.Component {
144
145
  */
145
146
  createRefs() {
146
147
  this.connectionTypeRef = React.createRef();
147
- this.defaultAdminRef = React.createRef();
148
- this.defaultGroupAdminRef = React.createRef();
149
148
  }
150
149
 
151
150
  /**
@@ -165,12 +164,6 @@ class DisplayUserDirectoryAdministration extends React.Component {
165
164
  */
166
165
  handleUserDirectoryClickEvent(event) {
167
166
  // Prevent stop editing when the user click on an element of the editor
168
- if (this.defaultAdminRef.current !== null && !this.defaultAdminRef.current.contains(event.target)) {
169
- this.setState({openDefaultAdmin: false});
170
- }
171
- if (this.defaultGroupAdminRef.current !== null && !this.defaultGroupAdminRef.current.contains(event.target)) {
172
- this.setState({openDefaultGroupAdmin: false});
173
- }
174
167
  if (this.connectionTypeRef.current !== null && !this.connectionTypeRef.current.contains(event.target)) {
175
168
  this.setState({openConnectionType: false});
176
169
  }
@@ -320,24 +313,6 @@ class DisplayUserDirectoryAdministration extends React.Component {
320
313
  }
321
314
  }
322
315
 
323
- /**
324
- * Handle the click on the default admin
325
- */
326
- handleDefaultAdminClicked() {
327
- if (!this.hasAllInputDisabled()) {
328
- this.setState({openDefaultAdmin: !this.state.openDefaultAdmin, defaultAdminSearch: ""});
329
- }
330
- }
331
-
332
- /**
333
- * Handle the click on the default group admin
334
- */
335
- handleDefaultGroupAdminClicked() {
336
- if (!this.hasAllInputDisabled()) {
337
- this.setState({openDefaultGroupAdmin: !this.state.openDefaultGroupAdmin, defaultGroupAdminSearch: ""});
338
- }
339
- }
340
-
341
316
  /**
342
317
  * Handle host input keyUp event.
343
318
  */
@@ -381,36 +356,14 @@ class DisplayUserDirectoryAdministration extends React.Component {
381
356
  this.handleEnabledSaveButton();
382
357
  }
383
358
 
384
- /**
385
- * Handle user to be default admin click event
386
- * @param event
387
- */
388
- handleUserToBeDefaultAdminClick(event) {
389
- const target = event.target;
390
- const userId = target.dataset.id;
391
- this.setState({defaultAdmin: userId});
392
- this.handleEnabledSaveButton();
393
- }
394
-
395
- /**
396
- * Handle user to be default Group admin click event
397
- * @param event
398
- */
399
- handleUserToBeDefaultGroupAdminClick(event) {
400
- const target = event.target;
401
- const userId = target.dataset.id;
402
- this.setState({defaultGroupAdmin: userId});
403
- this.handleEnabledSaveButton();
404
- }
405
-
406
359
  /**
407
360
  * Handle connection typeclick event
408
361
  * @param event
409
362
  */
410
363
  handleConnectionTypeChange(event) {
411
364
  const target = event.target;
412
- const connectionType = target.dataset.id;
413
- this.setState({connectionType});
365
+ const connectionType = target.value;
366
+ this.setState({connectionType, hasFieldFocus: false}); // Due to React < v17 onBlur is not propagated by the child
414
367
  this.handleEnabledSaveButton();
415
368
  }
416
369
 
@@ -694,10 +647,7 @@ class DisplayUserDirectoryAdministration extends React.Component {
694
647
  getUsersAllowedToBeDefaultAdmin() {
695
648
  if (this.state.users !== null) {
696
649
  const users = this.state.users.filter(user => user.active === true && user.role.name === "admin");
697
- if (this.state.defaultAdminSearch !== "") {
698
- return this.getUsersMatch(users, this.state.defaultAdminSearch.toLowerCase());
699
- }
700
- return users;
650
+ return users && users.map(user => ({value: user.id, label: this.displayUser(user)}));
701
651
  }
702
652
  return [];
703
653
  }
@@ -708,36 +658,11 @@ class DisplayUserDirectoryAdministration extends React.Component {
708
658
  getUsersAllowedToBeDefaultGroupAdmin() {
709
659
  if (this.state.users !== null) {
710
660
  const users = this.state.users.filter(user => user.active === true);
711
- if (this.state.defaultGroupAdminSearch !== "") {
712
- return this.getUsersMatch(users, this.state.defaultGroupAdminSearch.toLowerCase());
713
- }
714
- return users;
661
+ return users && users.map(user => ({value: user.id, label: this.displayUser(user)}));
715
662
  }
716
663
  return [];
717
664
  }
718
665
 
719
- /**
720
- * get users who match the keyword
721
- * @param users
722
- * @param keyword
723
- * @returns {*}
724
- */
725
- getUsersMatch(users, keyword) {
726
- const words = (keyword && keyword.split(/\s+/)) || [''];
727
-
728
- // Test match of some escaped test words against the name / username
729
- const escapeWord = word => word.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
730
- const wordToRegex = word => new RegExp(escapeWord(word), 'i');
731
- const matchWord = (word, value) => wordToRegex(word).test(value);
732
-
733
- const matchUsernameProperty = (word, user) => matchWord(word, user.username);
734
- const matchNameProperty = (word, user) => matchWord(word, user.profile.first_name) || matchWord(word, user.profile.last_name);
735
- const matchUser = (word, user) => matchUsernameProperty(word, user) || matchNameProperty(word, user);
736
- const matchText = user => words.every(word => matchUser(word, user));
737
-
738
- return users.filter(matchText);
739
- }
740
-
741
666
  /**
742
667
  * display user firstname, lastname and username
743
668
  * @param user
@@ -762,22 +687,25 @@ class DisplayUserDirectoryAdministration extends React.Component {
762
687
  * get the connection type
763
688
  */
764
689
  get connectionType() {
765
- return {
766
- plain: "ldap://",
767
- ssl: "ldaps:// (ssl)",
768
- tls: "ldaps:// (tls)"
769
- };
690
+ return [
691
+ {value: "plain", label: "ldap://"},
692
+ {value: "ssl", label: "ldaps:// (ssl)"},
693
+ {value: "tls", label: "ldaps:// (tls)"},
694
+ ];
770
695
  }
771
696
 
772
697
  /**
773
- * Display default group admin
698
+ * Handle field focus
774
699
  */
775
- displayDefaultGroupAdmin() {
776
- if (this.state.users !== null && this.state.defaultGroupAdmin !== "") {
777
- const user = this.state.users.find(user => user.id === this.state.defaultGroupAdmin);
778
- return this.displayUser(user);
779
- }
780
- return "";
700
+ handleFieldFocus() {
701
+ this.setState({hasFieldFocus: true});
702
+ }
703
+
704
+ /**
705
+ * Handle field blur
706
+ */
707
+ handleFieldBlur() {
708
+ this.setState({hasFieldFocus: false});
781
709
  }
782
710
 
783
711
  /**
@@ -793,401 +721,307 @@ class DisplayUserDirectoryAdministration extends React.Component {
793
721
  * @returns {JSX}
794
722
  */
795
723
  render() {
796
- const userAllowedToBeDefaultAdmin = this.getUsersAllowedToBeDefaultAdmin();
797
- const userAllowedToBeDefaultGroupAdmin = this.getUsersAllowedToBeDefaultGroupAdmin();
798
-
799
724
  return (
800
725
  <div className="row">
801
- <div className="ldap-settings col7">
802
- <form className="form">
803
- <h3>
804
- <span className="input toggle-switch form-element">
805
- <input type="checkbox" className="toggle-switch-checkbox checkbox" name="userDirectoryToggle"
806
- onChange={this.handleInputChange} checked={this.state.userDirectoryToggle} disabled={this.hasAllInputDisabled()}
807
- id="userDirectoryToggle"/>
808
- <label className="toggle-switch-button" htmlFor="userDirectoryToggle"></label>
809
- </span><label><Trans>Users Directory</Trans></label>
810
- </h3>
811
- {!this.isUserDirectoryChecked() &&
726
+ <div className="ldap-settings col7 main-column">
727
+ <h3>
728
+ <span className="input toggle-switch form-element">
729
+ <input type="checkbox" className="toggle-switch-checkbox checkbox" name="userDirectoryToggle"
730
+ onChange={this.handleInputChange} checked={this.state.userDirectoryToggle} disabled={this.hasAllInputDisabled()}
731
+ id="userDirectoryToggle"/>
732
+ <label htmlFor="userDirectoryToggle"><Trans>Users Directory</Trans></label>
733
+ </span>
734
+ </h3>
735
+ {!this.isUserDirectoryChecked() &&
736
+ <p className="description">
737
+ <Trans>No Users Directory is configured. Enable it to synchronise your users and groups with passbolt.</Trans>
738
+ </p>
739
+ }
740
+ {this.isUserDirectoryChecked() &&
741
+ <>
812
742
  <p className="description">
813
- <Trans>No Users Directory is configured. Enable it to synchronise your users and groups with passbolt.</Trans>
743
+ <Trans>A Users Directory is configured. The users and groups of passbolt will synchronize with it.</Trans>
814
744
  </p>
815
- }
816
- {this.isUserDirectoryChecked() &&
817
- <div>
818
- <p className="description">
819
- <Trans>A Users Directory is configured. The users and groups of passbolt will synchronize with it.</Trans>
820
- </p>
821
- <div className="form-content">
822
- <div className={`accordion section-general ${this.state.openCredentials ? "" : "closed"}`}>
823
- <h3 className="accordion-header">
824
- <a onClick={this.handleCredentialTitleClicked}>
825
- {this.state.openCredentials && <Icon name="caret-down" baseline={true}/>}
826
- {!this.state.openCredentials && <Icon name="caret-right" baseline={true}/>}
827
- <Trans>Credentials</Trans>
828
- </a>
829
- </h3>
830
- <div className="accordion-content">
831
- <div className="radiolist required">
832
- <label><Trans>Directory type</Trans></label>
833
- <div className="input radio ad openldap form-element ">
834
- <div className="input radio">
835
- <input type="radio" value="ad" onChange={this.handleInputChange} name="directoryType"
836
- checked={this.state.directoryType === "ad"} id="directoryTypeAd"
837
- disabled={this.hasAllInputDisabled()}/>
838
- <label htmlFor="directoryTypeAd"><Trans>Active Directory</Trans></label>
839
- </div>
840
- <div className="input radio">
841
- <input type="radio" value="openldap" onChange={this.handleInputChange} name="directoryType"
842
- checked={this.state.directoryType === "openldap"} id="directoryTypeOpenLdap"
843
- disabled={this.hasAllInputDisabled()}/>
844
- <label htmlFor="directoryTypeOpenLdap"><Trans>Open Ldap</Trans></label>
845
- </div>
846
- </div>
847
- </div>
848
- <div className="clearfix required ad openldap">
849
- <label><Trans>Server url</Trans></label>
850
- <div className="input text singleline connection_info ad openldap">
851
- <div onClick={this.handleConnectionTypeClicked} ref={this.connectionTypeRef}
852
- className={`protocol chosen-container chosen-container-single connection-type ${this.hasAllInputDisabled() ? "chosen-disabled" : "chosen-container-active"} ${this.state.openConnectionType ? "chosen-with-drop" : ""}`}>
853
- <a className="chosen-single">
854
- <span id="connection-type-input">{this.connectionType[this.state.connectionType]}</span>
855
- <div>
856
- {!this.state.openDefaultGroupAdmin &&
857
- <Icon name="caret-down" baseline={true}/>
858
- }
859
- {this.state.openDefaultGroupAdmin &&
860
- <Icon name="caret-up" baseline={true}/>
861
- }
862
- </div>
863
- </a>
864
- <div className="chosen-drop">
865
- <ul className="chosen-results">
866
- <li className="active-result" onClick={this.handleConnectionTypeChange} data-id={"plain"}>ldap://</li>
867
- <li className="active-result" onClick={this.handleConnectionTypeChange} data-id={"ssl"}>ldaps:// (ssl)</li>
868
- <li className="active-result" onClick={this.handleConnectionTypeChange} data-id={"tls"}>ldaps:// (tls)</li>
869
- </ul>
870
- </div>
871
- </div>
872
- <div className="input text host ad openldap">
873
- <input id="server-input" type="text" className="required fluid form-element" name="host"
874
- value={this.state.host} onChange={this.handleInputChange} onKeyUp={this.handleHostInputKeyUp}
875
- placeholder={this.translate("host")} disabled={this.hasAllInputDisabled()}/>
876
- {this.state.hostError &&
877
- <div id="server-input-feedback" className="error-message">{this.state.hostError}</div>
878
- }
879
- </div>
880
- <div className="input text port ad openldap">
881
- <input id="port-input" type="number" className="required fluid form-element" name="port"
882
- value={this.state.port} onChange={this.handleInputChange} onKeyUp={this.handlePortInputKeyUp} placeholder={this.translate("port")}
883
- disabled={this.hasAllInputDisabled()}/>
884
- {this.state.portError &&
885
- <div id="port-input-feedback" className="error-message">{this.state.portError}</div>
886
- }
887
- </div>
888
- </div>
745
+ <div className={`accordion section-general ${this.state.openCredentials ? "" : "closed"}`}>
746
+ <h4 className="accordion-header">
747
+ <a onClick={this.handleCredentialTitleClicked}>
748
+ {this.state.openCredentials && <Icon name="caret-down"/>}
749
+ {!this.state.openCredentials && <Icon name="caret-right"/>}
750
+ <Trans>Credentials</Trans>
751
+ </a>
752
+ </h4>
753
+ <div className="accordion-content">
754
+ <div className="radiolist required">
755
+ <label><Trans>Directory type</Trans></label>
756
+ <div className="input radio ad openldap form-element ">
757
+ <div className="input radio">
758
+ <input type="radio" value="ad" onChange={this.handleInputChange} name="directoryType"
759
+ checked={this.state.directoryType === "ad"} id="directoryTypeAd"
760
+ disabled={this.hasAllInputDisabled()}/>
761
+ <label htmlFor="directoryTypeAd"><Trans>Active Directory</Trans></label>
889
762
  </div>
890
- <div className="singleline clearfix">
891
- <div className="input text first-field ad openldap">
892
- <label><Trans>Username</Trans></label>
893
- <input id="username-input" type="text" className="fluid form-element" name="username"
894
- value={this.state.username} onChange={this.handleInputChange} placeholder={this.translate("username")}
895
- disabled={this.hasAllInputDisabled()}/>
896
- </div>
897
- <div className="input text last-field ad openldap">
898
- <label><Trans>Password</Trans></label>
899
- <input id="password-input" className="fluid form-element" name="password"
900
- value={this.state.password} onChange={this.handleInputChange} placeholder={this.translate("password")} type="password"
901
- disabled={this.hasAllInputDisabled()}/>
902
- </div>
763
+ <div className="input radio">
764
+ <input type="radio" value="openldap" onChange={this.handleInputChange} name="directoryType"
765
+ checked={this.state.directoryType === "openldap"} id="directoryTypeOpenLdap"
766
+ disabled={this.hasAllInputDisabled()}/>
767
+ <label htmlFor="directoryTypeOpenLdap"><Trans>Open Ldap</Trans></label>
903
768
  </div>
904
- <div className="input text required ad openldap">
905
- <label><Trans>Domain</Trans></label>
906
- <input id="domain-name-input" type="text" name="domain" value={this.state.domain}
907
- onChange={this.handleInputChange} className="required fluid form-element" onKeyUp={this.handleDomainInputKeyUp}
908
- placeholder="domain.ext" disabled={this.hasAllInputDisabled()}/>
909
- {this.state.domainError &&
910
- <div id="domain-name-input-feedback" className="error-message">{this.state.domainError}</div>
911
- }
769
+ </div>
770
+ </div>
771
+ <div className="input text required ad openldap">
772
+ <label><Trans>Server url</Trans></label>
773
+ <div className={`input text singleline connection_info ad openldap ${this.state.hasFieldFocus ? "no-focus" : ""}`}>
774
+ <input id="server-input" type="text" className="required host ad openldap form-element" name="host"
775
+ value={this.state.host} onChange={this.handleInputChange} onKeyUp={this.handleHostInputKeyUp}
776
+ placeholder={this.translate("host")} disabled={this.hasAllInputDisabled()}/>
777
+ <div className="protocol" onBlur={this.handleFieldBlur} onFocus={this.handleFieldFocus}>
778
+ <Select className="inline" name="connectionType" items={this.connectionType} value={this.state.connectionType} onChange={this.handleConnectionTypeChange} disabled={this.hasAllInputDisabled()}/>
912
779
  </div>
913
- <div className="input text ad openldap">
914
- <label><Trans>Base DN</Trans></label>
915
- <input id="base-dn-input" type="text" name="baseDn" value={this.state.baseDn}
916
- onChange={this.handleInputChange} className="fluid form-element" placeholder="OU=OrgUsers,DC=mydomain,DC=local"
780
+ <div className="port ad openldap">
781
+ <input id="port-input" type="number" className="required in-field form-element" name="port"
782
+ value={this.state.port} onBlur={this.handleFieldBlur} onFocus={this.handleFieldFocus} onChange={this.handleInputChange} onKeyUp={this.handlePortInputKeyUp} placeholder={this.translate("port")}
917
783
  disabled={this.hasAllInputDisabled()}/>
918
- <div className="help-message">
919
- <Trans>The base DN (default naming context) for the domain.</Trans> <Trans>If this is empty then it will be queried from the RootDSE.</Trans>
920
- </div>
921
784
  </div>
922
785
  </div>
786
+ {this.state.hostError &&
787
+ <div id="server-input-feedback" className="error-message">{this.state.hostError}</div>
788
+ }
789
+ {this.state.portError &&
790
+ <div id="port-input-feedback" className="error-message">{this.state.portError}</div>
791
+ }
923
792
  </div>
924
- <div
925
- className={`accordion section-directory-configuration ${this.state.openDirectoryConfiguration ? "" : "closed"}`}>
926
- <h3 className="accordion-header">
927
- <a onClick={this.handleDirectoryConfigurationTitleClicked}>
928
- {this.state.openDirectoryConfiguration && <Icon name="caret-down" baseline={true}/>}
929
- {!this.state.openDirectoryConfiguration && <Icon name="caret-right" baseline={true}/>}
930
- <Trans>Directory configuration</Trans>
931
- </a>
932
- </h3>
933
- <div className="accordion-content">
934
- <div className="input text ad openldap">
935
- <label><Trans>Group path</Trans></label>
936
- <input id="group-path-input" type="text" name="groupPath" value={this.state.groupPath}
937
- onChange={this.handleInputChange} className="required fluid form-element" placeholder={this.translate("Group Path")}
938
- disabled={this.hasAllInputDisabled()}/>
939
- <div className="help-message">
940
- <Trans>Group path is used in addition to the base DN while searching groups.</Trans> <Trans>Leave empty if users and groups are in the same DN.</Trans>
941
- </div>
793
+ <div className="singleline clearfix">
794
+ <div className="input text first-field ad openldap">
795
+ <label><Trans>Username</Trans></label>
796
+ <input id="username-input" type="text" className="fluid form-element" name="username"
797
+ value={this.state.username} onChange={this.handleInputChange} placeholder={this.translate("username")}
798
+ disabled={this.hasAllInputDisabled()}/>
799
+ </div>
800
+ <div className="input text last-field ad openldap">
801
+ <label><Trans>Password</Trans></label>
802
+ <input id="password-input" className="fluid form-element" name="password"
803
+ value={this.state.password} onChange={this.handleInputChange} placeholder={this.translate("password")} type="password"
804
+ disabled={this.hasAllInputDisabled()}/>
805
+ </div>
806
+ </div>
807
+ <div className="input text required ad openldap">
808
+ <label><Trans>Domain</Trans></label>
809
+ <input id="domain-name-input" type="text" name="domain" value={this.state.domain}
810
+ onChange={this.handleInputChange} className="required fluid form-element" onKeyUp={this.handleDomainInputKeyUp}
811
+ placeholder="domain.ext" disabled={this.hasAllInputDisabled()}/>
812
+ {this.state.domainError &&
813
+ <div id="domain-name-input-feedback" className="error-message">{this.state.domainError}</div>
814
+ }
815
+ </div>
816
+ <div className="input text ad openldap">
817
+ <label><Trans>Base DN</Trans></label>
818
+ <input id="base-dn-input" type="text" name="baseDn" value={this.state.baseDn}
819
+ onChange={this.handleInputChange} className="fluid form-element" placeholder="OU=OrgUsers,DC=mydomain,DC=local"
820
+ disabled={this.hasAllInputDisabled()}/>
821
+ <div className="help-message">
822
+ <Trans>The base DN (default naming context) for the domain.</Trans> <Trans>If this is empty then it will be queried from the RootDSE.</Trans>
823
+ </div>
824
+ </div>
825
+ </div>
826
+ </div>
827
+ <div
828
+ className={`accordion section-directory-configuration ${this.state.openDirectoryConfiguration ? "" : "closed"}`}>
829
+ <h4 className="accordion-header">
830
+ <a onClick={this.handleDirectoryConfigurationTitleClicked}>
831
+ {this.state.openDirectoryConfiguration && <Icon name="caret-down"/>}
832
+ {!this.state.openDirectoryConfiguration && <Icon name="caret-right"/>}
833
+ <Trans>Directory configuration</Trans>
834
+ </a>
835
+ </h4>
836
+ <div className="accordion-content">
837
+ <div className="input text ad openldap">
838
+ <label><Trans>Group path</Trans></label>
839
+ <input id="group-path-input" type="text" name="groupPath" value={this.state.groupPath}
840
+ onChange={this.handleInputChange} className="required fluid form-element" placeholder={this.translate("Group Path")}
841
+ disabled={this.hasAllInputDisabled()}/>
842
+ <div className="help-message">
843
+ <Trans>Group path is used in addition to the base DN while searching groups.</Trans> <Trans>Leave empty if users and groups are in the same DN.</Trans>
844
+ </div>
845
+ </div>
846
+ <div className="input text ad openldap">
847
+ <label><Trans>User path</Trans></label>
848
+ <input id="user-path-input" type="text" name="userPath" value={this.state.userPath}
849
+ onChange={this.handleInputChange} className="required fluid form-element" placeholder={this.translate("User Path")}
850
+ disabled={this.hasAllInputDisabled()}/>
851
+ <div className="help-message"><Trans>User path is used in addition to base DN while searching users.</Trans></div>
852
+ </div>
853
+ {this.isOpenLdapChecked() &&
854
+ <div>
855
+ <div className="input text openldap">
856
+ <label><Trans>Group object class</Trans></label>
857
+ <input id="group-object-class-input" type="text" name="groupObjectClass"
858
+ value={this.state.groupObjectClass} onChange={this.handleInputChange} className="required fluid"
859
+ placeholder="GroupObjectClass" disabled={this.hasAllInputDisabled()}/>
860
+ <div className="help-message">
861
+ <Trans>For Openldap only. Defines which group object to use.</Trans> (<Trans>Default</Trans>: posixGroup)
942
862
  </div>
943
- <div className="input text ad openldap">
944
- <label><Trans>User path</Trans></label>
945
- <input id="user-path-input" type="text" name="userPath" value={this.state.userPath}
946
- onChange={this.handleInputChange} className="required fluid form-element" placeholder={this.translate("User Path")}
863
+ </div>
864
+ <div className="input text openldap">
865
+ <label><Trans>User object class</Trans></label>
866
+ <input id="user-object-class-input" type="text" name="userObjectClass"
867
+ value={this.state.userObjectClass} onChange={this.handleInputChange} className="required fluid form-element"
868
+ placeholder="UserObjectClass" disabled={this.hasAllInputDisabled()}/>
869
+ <div className="help-message"><Trans>For Openldap only. Defines which user object to use.</Trans> (<Trans>Default</Trans>: inetOrgPerson)
870
+ </div>
871
+ </div>
872
+ <div className="input text openldap">
873
+ <label><Trans>Use email prefix / suffix?</Trans></label>
874
+ <div className="input toggle-switch openldap form-element">
875
+ <input type="checkbox" className="toggle-switch-checkbox checkbox" name="useEmailPrefix"
876
+ value={this.state.useEmailPrefix} onChange={this.handleInputChange} id="use-email-prefix-suffix-toggle-button"
947
877
  disabled={this.hasAllInputDisabled()}/>
948
- <div className="help-message"><Trans>User path is used in addition to base DN while searching users.</Trans></div>
878
+ <label className="text" htmlFor="use-email-prefix-suffix-toggle-button">
879
+ <Trans>Build email based on a prefix and suffix?</Trans>
880
+ </label>
949
881
  </div>
950
- {this.isOpenLdapChecked() &&
951
- <div>
952
- <div className="input text openldap">
953
- <label><Trans>Group object class</Trans></label>
954
- <input id="group-object-class-input" type="text" name="groupObjectClass"
955
- value={this.state.groupObjectClass} onChange={this.handleInputChange} className="required fluid"
956
- placeholder="GroupObjectClass" disabled={this.hasAllInputDisabled()}/>
957
- <div className="help-message">
958
- <Trans>For Openldap only. Defines which group object to use.</Trans> (<Trans>Default</Trans>: posixGroup)
959
- </div>
960
- </div>
961
- <div className="input text openldap">
962
- <label><Trans>User object class</Trans></label>
963
- <input id="user-object-class-input" type="text" name="userObjectClass"
964
- value={this.state.userObjectClass} onChange={this.handleInputChange} className="required fluid form-element"
965
- placeholder="UserObjectClass" disabled={this.hasAllInputDisabled()}/>
966
- <div className="help-message"><Trans>For Openldap only. Defines which user object to use.</Trans> (<Trans>Default</Trans>: inetOrgPerson)
967
- </div>
968
- </div>
969
- <div className="input text openldap">
970
- <label><Trans>Use email prefix / suffix?</Trans></label>
971
- <div className="input toggle-switch openldap form-element">
972
- <label htmlFor="use-email-prefix-suffix-toggle-button">
973
- <Trans>Build email based on a prefix and suffix?</Trans>
974
- </label>
975
- <input type="checkbox" className="toggle-switch-checkbox checkbox" name="useEmailPrefix"
976
- value={this.state.useEmailPrefix} onChange={this.handleInputChange} id="use-email-prefix-suffix-toggle-button"
977
- disabled={this.hasAllInputDisabled()}/>
978
- <label className="toggle-switch-button" htmlFor="use-email-prefix-suffix-toggle-button"></label>
979
- </div>
980
- <div className="help-message">
981
- <Trans>Use this option when user entries do not include an email address by default</Trans>
982
- </div>
983
- </div>
984
- {this.isUseEmailPrefixChecked() &&
985
- <div className="singleline clearfix" id="use-email-prefix-suffix-options">
986
- <div className="input text first-field openldap">
987
- <label><Trans>Email prefix</Trans></label>
988
- <input id="email-prefix-input" type="text" name="emailPrefix" checked={this.state.emailPrefix}
989
- onChange={this.handleInputChange} className="required fluid form-element" placeholder={this.translate("username")}
990
- disabled={this.hasAllInputDisabled()}/>
991
- <div className="help-message">
992
- <Trans>The attribute you would like to use for the first part of the email (usually username).</Trans>
993
- </div>
994
- </div>
995
- <div className="input text last-field openldap">
996
- <label><Trans>Email suffix</Trans></label>
997
- <input id="email-suffix-input" type="text" name="emailSuffix" value={this.state.emailSuffix}
998
- onChange={this.handleInputChange} className="required form-element"
999
- placeholder={this.translate("@your-domain.com")} disabled={this.hasAllInputDisabled()}/>
1000
- <div className="help-message">
1001
- <Trans>The domain name part of the email (@your-domain-name).</Trans>
1002
- </div>
1003
- </div>
1004
- </div>
1005
- }
882
+ <div className="help-message">
883
+ <Trans>Use this option when user entries do not include an email address by default</Trans>
1006
884
  </div>
1007
- }
1008
885
  </div>
1009
- </div>
1010
- <div
1011
- className={`accordion section-sync-options ${this.state.openSynchronizationOptions ? "" : "closed"}`}>
1012
- <h3 className="accordion-header">
1013
- <a onClick={this.handleSynchronizationOptionsTitleClicked}>
1014
- {this.state.openSynchronizationOptions && <Icon name="caret-down" baseline={true}/>}
1015
- {!this.state.openSynchronizationOptions && <Icon name="caret-right" baseline={true}/>}
1016
- <Trans>Synchronization options</Trans>
1017
- </a>
1018
- </h3>
1019
- <div className="accordion-content">
1020
- <div className="input select required ad openldap">
1021
- <label><Trans>Default admin</Trans></label>
1022
- <div onClick={this.handleDefaultAdminClicked} ref={this.defaultAdminRef}>
1023
- <div
1024
- className={`chosen-container chosen-container-single ${this.hasAllInputDisabled() ? "chosen-disabled" : "chosen-container-active"} ${this.state.openDefaultAdmin ? "chosen-with-drop" : ""}`}>
1025
- <a className="chosen-single">
1026
- <span id="default-user-select">{this.displayDefaultAdmin()}</span>
1027
- <div>
1028
- {!this.state.openDefaultAdmin &&
1029
- <Icon name="caret-down" baseline={true}/>
1030
- }
1031
- {this.state.openDefaultAdmin &&
1032
- <Icon name="caret-up" baseline={true}/>
1033
- }
1034
- </div>
1035
- </a>
1036
- <div className="chosen-drop">
1037
- <div className="chosen-search" onClick={this.stopPropagation}>
1038
- <input className="chosen-search-input" name="defaultAdminSearch"
1039
- value={this.state.defaultAdminSearch} onChange={this.handleInputChange} type="text"/>
1040
- <Icon name="search"/>
1041
- </div>
1042
- <ul className="chosen-results">
1043
- {userAllowedToBeDefaultAdmin.length > 0 &&
1044
- userAllowedToBeDefaultAdmin.map(user =>
1045
- <li key={user.id} className="active-result" onClick={this.handleUserToBeDefaultAdminClick} data-id={user.id}>
1046
- {this.displayUser(user)}
1047
- </li>
1048
- )
1049
- }
1050
- {userAllowedToBeDefaultAdmin.length === 0 &&
1051
- <li className="no-results" onClick={this.stopPropagation}>
1052
- <Trans>No results match</Trans> <span>{this.state.defaultAdminSearch}</span>
1053
- </li>
1054
- }
1055
- </ul>
1056
- </div>
1057
- </div>
1058
- </div>
886
+ {this.isUseEmailPrefixChecked() &&
887
+ <div className="singleline clearfix" id="use-email-prefix-suffix-options">
888
+ <div className="input text first-field openldap">
889
+ <label><Trans>Email prefix</Trans></label>
890
+ <input id="email-prefix-input" type="text" name="emailPrefix" checked={this.state.emailPrefix}
891
+ onChange={this.handleInputChange} className="required fluid form-element" placeholder={this.translate("username")}
892
+ disabled={this.hasAllInputDisabled()}/>
1059
893
  <div className="help-message">
1060
- <Trans>The default admin user is the user that will perform the operations for the the directory.</Trans>
894
+ <Trans>The attribute you would like to use for the first part of the email (usually username).</Trans>
1061
895
  </div>
1062
896
  </div>
1063
- <div className="input select required ad openldap">
1064
- <label><Trans>Default group admin</Trans></label>
1065
- <div onClick={this.handleDefaultGroupAdminClicked} ref={this.defaultGroupAdminRef}>
1066
- <div
1067
- className={`chosen-container chosen-container-single ${this.hasAllInputDisabled() ? "chosen-disabled" : "chosen-container-active"} ${this.state.openDefaultGroupAdmin ? "chosen-with-drop" : ""}`}>
1068
- <a className="chosen-single">
1069
- <span id="default-group-admin-user-select">{this.displayDefaultGroupAdmin()}</span>
1070
- <div>
1071
- {!this.state.openDefaultGroupAdmin &&
1072
- <Icon name="caret-down" baseline={true}/>
1073
- }
1074
- {this.state.openDefaultGroupAdmin &&
1075
- <Icon name="caret-up" baseline={true}/>
1076
- }
1077
- </div>
1078
- </a>
1079
- <div className="chosen-drop">
1080
- <div className="chosen-search" onClick={this.stopPropagation}>
1081
- <input className="chosen-search-input" name="defaultGroupAdminSearch"
1082
- value={this.state.defaultGroupAdminSearch} onChange={this.handleInputChange} type="text"/>
1083
- <Icon name="search"/>
1084
- </div>
1085
- <ul className="chosen-results">
1086
- {userAllowedToBeDefaultGroupAdmin.length > 0 &&
1087
- userAllowedToBeDefaultGroupAdmin.map(user =>
1088
- <li key={user.id} className="active-result" onClick={this.handleUserToBeDefaultGroupAdminClick} data-id={user.id}>
1089
- {this.displayUser(user)}
1090
- </li>
1091
- )
1092
- }
1093
- {userAllowedToBeDefaultGroupAdmin.length === 0 &&
1094
- <li className="no-results" onClick={this.stopPropagation}>
1095
- <Trans>No results match</Trans> <span>{this.state.defaultGroupAdminSearch}</span>
1096
- </li>
1097
- }
1098
- </ul>
1099
- </div>
1100
- </div>
1101
- </div>
897
+ <div className="input text last-field openldap">
898
+ <label><Trans>Email suffix</Trans></label>
899
+ <input id="email-suffix-input" type="text" name="emailSuffix" value={this.state.emailSuffix}
900
+ onChange={this.handleInputChange} className="required form-element"
901
+ placeholder={this.translate("@your-domain.com")} disabled={this.hasAllInputDisabled()}/>
1102
902
  <div className="help-message">
1103
- <Trans>The default group manager is the user that will be the group manager of newly created groups.</Trans>
903
+ <Trans>The domain name part of the email (@your-domain-name).</Trans>
1104
904
  </div>
1105
905
  </div>
1106
- <div className="input text ad openldap">
1107
- <label><Trans>Groups parent group</Trans></label>
1108
- <input id="groups-parent-group-input" type="text" name="groupsParentGroup"
1109
- value={this.state.groupsParentGroup} onChange={this.handleInputChange} className="fluid form-element" placeholder={this.translate("Group name")}
906
+ </div>
907
+ }
908
+ </div>
909
+ }
910
+ </div>
911
+ </div>
912
+ <div
913
+ className={`accordion section-sync-options ${this.state.openSynchronizationOptions ? "" : "closed"}`}>
914
+ <h4 className="accordion-header">
915
+ <a onClick={this.handleSynchronizationOptionsTitleClicked}>
916
+ {this.state.openSynchronizationOptions && <Icon name="caret-down"/>}
917
+ {!this.state.openSynchronizationOptions && <Icon name="caret-right"/>}
918
+ <Trans>Synchronization options</Trans>
919
+ </a>
920
+ </h4>
921
+ <div className="accordion-content">
922
+ <div className="select-wrapper input required ad openldap">
923
+ <label><Trans>Default admin</Trans></label>
924
+ <Select items={this.getUsersAllowedToBeDefaultAdmin()}
925
+ id="default-user-select"
926
+ name="defaultAdmin"
927
+ value={this.state.defaultAdmin}
928
+ onChange={this.handleInputChange}
929
+ disabled={this.hasAllInputDisabled()}
930
+ search={true}/>
931
+ <div className="help-message">
932
+ <Trans>The default admin user is the user that will perform the operations for the the directory.</Trans>
933
+ </div>
934
+ </div>
935
+ <div className="select-wrapper input required ad openldap">
936
+ <label><Trans>Default group admin</Trans></label>
937
+ <Select items={this.getUsersAllowedToBeDefaultGroupAdmin()}
938
+ id="default-group-admin-user-select"
939
+ name="defaultGroupAdmin"
940
+ value={this.state.defaultGroupAdmin}
941
+ onChange={this.handleInputChange}
942
+ disabled={this.hasAllInputDisabled()}
943
+ search={true}/>
944
+ <div className="help-message">
945
+ <Trans>The default group manager is the user that will be the group manager of newly created groups.</Trans>
946
+ </div>
947
+ </div>
948
+ <div className="input text ad openldap">
949
+ <label><Trans>Groups parent group</Trans></label>
950
+ <input id="groups-parent-group-input" type="text" name="groupsParentGroup"
951
+ value={this.state.groupsParentGroup} onChange={this.handleInputChange} className="fluid form-element" placeholder={this.translate("Group name")}
952
+ disabled={this.hasAllInputDisabled()}/>
953
+ <div className="help-message">
954
+ <Trans>Synchronize only the groups which are members of this group.</Trans>
955
+ </div>
956
+ </div>
957
+ <div className="input text ad openldap">
958
+ <label><Trans>Users parent group</Trans></label>
959
+ <input id="users-parent-group-input" type="text" name="usersParentGroup"
960
+ value={this.state.usersParentGroup} onChange={this.handleInputChange} className="fluid form-element" placeholder={this.translate("Group name")}
961
+ disabled={this.hasAllInputDisabled()}/>
962
+ <div className="help-message">
963
+ <Trans>Synchronize only the users which are members of this group.</Trans>
964
+ </div>
965
+ </div>
966
+ {this.isActiveDirectoryChecked() &&
967
+ <div className="input text clearfix ad">
968
+ <label><Trans>Enabled users only</Trans></label>
969
+ <div className="input toggle-switch ad form-element">
970
+ <input type="checkbox" className="toggle-switch-checkbox checkbox" name="enabledUsersOnly"
971
+ checked={this.state.enabledUsersOnly} onChange={this.handleInputChange} id="enabled-users-only-toggle-button"
972
+ disabled={this.hasAllInputDisabled()}/>
973
+ <label className="text" htmlFor="enabled-users-only-toggle-button"><Trans>Only synchronize enabled users (AD)</Trans></label>
974
+ </div>
975
+ </div>
976
+ }
977
+ <div className="input text clearfix ad openldap">
978
+ <label><Trans>Sync operations</Trans></label>
979
+ <div className="col6">
980
+ <div className="input toggle-switch ad openldap form-element">
981
+ <input type="checkbox" className="toggle-switch-checkbox checkbox" name="createUsers"
982
+ checked={this.state.createUsers} onChange={this.handleInputChange} id="sync-users-create-toggle-button"
1110
983
  disabled={this.hasAllInputDisabled()}/>
1111
- <div className="help-message">
1112
- <Trans>Synchronize only the groups which are members of this group.</Trans>
1113
- </div>
984
+ <label className="text" htmlFor="sync-users-create-toggle-button"><Trans>Create users</Trans></label>
1114
985
  </div>
1115
- <div className="input text ad openldap">
1116
- <label><Trans>Users parent group</Trans></label>
1117
- <input id="users-parent-group-input" type="text" name="usersParentGroup"
1118
- value={this.state.usersParentGroup} onChange={this.handleInputChange} className="fluid form-element" placeholder={this.translate("Group name")}
986
+ <div className="input toggle-switch ad openldap form-element">
987
+ <input type="checkbox" className="toggle-switch-checkbox checkbox" name="deleteUsers"
988
+ checked={this.state.deleteUsers} onChange={this.handleInputChange} id="sync-users-delete-toggle-button"
1119
989
  disabled={this.hasAllInputDisabled()}/>
1120
- <div className="help-message">
1121
- <Trans>Synchronize only the users which are members of this group.</Trans>
1122
- </div>
990
+ <label className="text" htmlFor="sync-users-delete-toggle-button"><Trans>Delete users</Trans></label>
1123
991
  </div>
1124
- {this.isActiveDirectoryChecked() &&
1125
- <div className="input text clearfix ad">
1126
- <label><Trans>Enabled users only</Trans></label>
1127
- <div className="input toggle-switch ad form-element">
1128
- <label htmlFor="enabled-users-only-toggle-button"><Trans>Only synchronize enabled users (AD)</Trans></label>
1129
- <input type="checkbox" className="toggle-switch-checkbox checkbox" name="enabledUsersOnly"
1130
- checked={this.state.enabledUsersOnly} onChange={this.handleInputChange} id="enabled-users-only-toggle-button"
1131
- disabled={this.hasAllInputDisabled()}/>
1132
- <label className="toggle-switch-button" htmlFor="enabled-users-only-toggle-button"></label>
1133
- </div>
992
+ </div>
993
+ <div className="col6 last">
994
+ <div className="input toggle-switch ad openldap form-element">
995
+ <input type="checkbox" className="toggle-switch-checkbox checkbox" name="createGroups"
996
+ checked={this.state.createGroups} onChange={this.handleInputChange} id="sync-groups-create-toggle-button"
997
+ disabled={this.hasAllInputDisabled()}/>
998
+ <label className="text" htmlFor="sync-groups-create-toggle-button"><Trans>Create groups</Trans></label>
1134
999
  </div>
1135
- }
1136
- <div className="input text clearfix ad openldap">
1137
- <label><Trans>Sync operations</Trans></label>
1138
- <div className="col6">
1139
- <div className="input toggle-switch ad openldap form-element">
1140
- <label htmlFor="sync-users-create-toggle-button"><Trans>Create users</Trans></label>
1141
- <input type="checkbox" className="toggle-switch-checkbox checkbox" name="createUsers"
1142
- checked={this.state.createUsers} onChange={this.handleInputChange} id="sync-users-create-toggle-button"
1143
- disabled={this.hasAllInputDisabled()}/>
1144
- <label className="toggle-switch-button" htmlFor="sync-users-create-toggle-button"></label>
1145
- </div>
1146
- <div className="input toggle-switch ad openldap form-element">
1147
- <label htmlFor="sync-users-delete-toggle-button"><Trans>Delete users</Trans></label>
1148
- <input type="checkbox" className="toggle-switch-checkbox checkbox" name="deleteUsers"
1149
- checked={this.state.deleteUsers} onChange={this.handleInputChange} id="sync-users-delete-toggle-button"
1150
- disabled={this.hasAllInputDisabled()}/>
1151
- <label className="toggle-switch-button" htmlFor="sync-users-delete-toggle-button"></label>
1152
- </div>
1153
- </div>
1154
- <div className="col6 last">
1155
- <div className="input toggle-switch ad openldap form-element">
1156
- <label htmlFor="sync-groups-create-toggle-button"><Trans>Create groups</Trans></label>
1157
- <input type="checkbox" className="toggle-switch-checkbox checkbox" name="createGroups"
1158
- checked={this.state.createGroups} onChange={this.handleInputChange} id="sync-groups-create-toggle-button"
1159
- disabled={this.hasAllInputDisabled()}/>
1160
- <label className="toggle-switch-button" htmlFor="sync-groups-create-toggle-button"></label>
1161
- </div>
1162
- <div className="input toggle-switch ad openldap form-element">
1163
- <label htmlFor="sync-groups-delete-toggle-button"><Trans>Delete groups</Trans></label>
1164
- <input type="checkbox" className="toggle-switch-checkbox checkbox" name="deleteGroups"
1165
- checked={this.state.deleteGroups} onChange={this.handleInputChange} id="sync-groups-delete-toggle-button"
1166
- disabled={this.hasAllInputDisabled()}/>
1167
- <label className="toggle-switch-button" htmlFor="sync-groups-delete-toggle-button"></label>
1168
- </div>
1169
- <div className="input toggle-switch ad openldap form-element">
1170
- <label htmlFor="sync-groups-update-toggle-button"><Trans>Update groups</Trans></label>
1171
- <input type="checkbox" className="toggle-switch-checkbox checkbox" name="updateGroups"
1172
- checked={this.state.updateGroups} onChange={this.handleInputChange} id="sync-groups-update-toggle-button"
1173
- disabled={this.hasAllInputDisabled()}/>
1174
- <label className="toggle-switch-button" htmlFor="sync-groups-update-toggle-button"></label>
1175
- </div>
1176
- </div>
1000
+ <div className="input toggle-switch ad openldap form-element">
1001
+ <input type="checkbox" className="toggle-switch-checkbox checkbox" name="deleteGroups"
1002
+ checked={this.state.deleteGroups} onChange={this.handleInputChange} id="sync-groups-delete-toggle-button"
1003
+ disabled={this.hasAllInputDisabled()}/>
1004
+ <label className="text" htmlFor="sync-groups-delete-toggle-button"><Trans>Delete groups</Trans></label>
1005
+ </div>
1006
+ <div className="input toggle-switch ad openldap form-element">
1007
+ <input type="checkbox" className="toggle-switch-checkbox checkbox" name="updateGroups"
1008
+ checked={this.state.updateGroups} onChange={this.handleInputChange} id="sync-groups-update-toggle-button"
1009
+ disabled={this.hasAllInputDisabled()}/>
1010
+ <label className="text" htmlFor="sync-groups-update-toggle-button"><Trans>Update groups</Trans></label>
1177
1011
  </div>
1178
1012
  </div>
1179
1013
  </div>
1180
1014
  </div>
1181
1015
  </div>
1182
- }
1183
- </form>
1016
+ </>
1017
+ }
1184
1018
  </div>
1185
1019
  <div className="col4 last">
1186
1020
  <div className="sidebar-help">
1187
1021
  <h3><Trans>Need help?</Trans></h3>
1188
1022
  <p><Trans>Check out our ldap configuration guide.</Trans></p>
1189
1023
  <a className="button" href="https://help.passbolt.com/configure/ldap" target="_blank" rel="noopener noreferrer">
1190
- <Icon name="life-ring"/>
1024
+ <Icon name="document"/>
1191
1025
  <span><Trans>Read the documentation</Trans></span>
1192
1026
  </a>
1193
1027
  </div>