passbolt-styleguide 3.3.2 → 3.4.0-alpha1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/build/css/help.min.css +2 -2
  2. package/build/css/public.min.css +2 -2
  3. package/build/css/themes/default/api_authentication.min.css +3 -3
  4. package/build/css/themes/default/api_cloud.min.css +3 -3
  5. package/build/css/themes/default/api_main.min.css +4 -4
  6. package/build/css/themes/default/api_reports.min.css +4 -4
  7. package/build/css/themes/default/api_webinstaller.min.css +3 -3
  8. package/build/css/themes/default/ext_app.min.css +4 -4
  9. package/build/css/themes/default/ext_authentication.min.css +3 -3
  10. package/build/css/themes/default/ext_external.min.css +2 -2
  11. package/build/css/themes/default/ext_in_form_cta.min.css +3 -3
  12. package/build/css/themes/default/ext_in_form_menu.min.css +3 -3
  13. package/build/css/themes/default/ext_quickaccess.min.css +3 -3
  14. package/build/css/themes/midgar/api_authentication.min.css +9 -0
  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-app.js +1 -1
  23. package/build/js/dist/api-recover.js +1 -1
  24. package/build/js/dist/api-setup.js +1 -1
  25. package/build/js/dist/api-triage.js +1 -1
  26. package/build/js/dist/api-vendors.js +1 -1
  27. package/build/js/dist/api-vendors.js.LICENSE.txt +40 -4
  28. package/package.json +7 -6
  29. package/src/img/third_party/ChromeWebStore_black.svg +1 -0
  30. package/src/img/third_party/ChromeWebStore_white.svg +1 -0
  31. package/src/img/third_party/edge-addon-black.svg +1 -0
  32. package/src/img/third_party/edge-addon-white.svg +1 -0
  33. package/src/locales/de-DE/common.json +11 -11
  34. package/src/locales/en-UK/common.json +11 -12
  35. package/src/locales/fr/common.json +750 -0
  36. package/src/locales/fr-FR/common.json +11 -11
  37. package/src/locales/sv-SE/common.json +11 -11
  38. package/src/react-extension/ExtApp.js +9 -6
  39. package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.js +1 -1
  40. package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.stories.js +0 -1
  41. package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.js +1 -1
  42. package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.js +1 -1
  43. package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.stories.js +5 -8
  44. package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.js +1 -1
  45. package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.data.js +4 -1
  46. package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.js +4 -4
  47. package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.js +1 -1
  48. package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.js +1 -1
  49. package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.test.js +2 -3
  50. package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.test.stories.js +5 -9
  51. package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.js +2 -2
  52. package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.stories.js +0 -3
  53. package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.js +1 -1
  54. package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.test.stories.js +12 -15
  55. package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.js +2 -2
  56. package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.test.js +1 -1
  57. package/src/react-extension/components/Authentication/CheckMailBox/CheckMailbox.test.stories.js +12 -14
  58. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.stories.js +12 -15
  59. package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.stories.js +12 -15
  60. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.stories.js +12 -15
  61. package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.test.stories.js +12 -15
  62. package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.stories.js +12 -15
  63. package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.test.stories.js +12 -15
  64. package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.stories.js +12 -15
  65. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.js +1 -1
  66. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.stories.js +12 -15
  67. package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.stories.js +12 -15
  68. package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.test.stories.js +12 -15
  69. package/src/react-extension/components/Authentication/HandleSessionExpired/HandleSessionExpired.test.data.js +14 -0
  70. package/src/react-extension/components/Authentication/HandleSessionExpired/HandleSessionExpired.test.js +65 -0
  71. package/src/react-extension/components/Authentication/HandleSessionExpired/HandleSessionExpired.test.page.js +38 -0
  72. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.stories.js +12 -15
  73. package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.js +15 -6
  74. package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.js +27 -0
  75. package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.stories.js +12 -15
  76. package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.test.stories.js +12 -15
  77. package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.stories.js +8 -11
  78. package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.stories.js +12 -15
  79. package/src/react-extension/components/AuthenticationLogin/DisplayLoginError/DisplayLoginError.test.stories.js +12 -15
  80. package/src/react-extension/components/AuthenticationLogin/DisplayLoginInProgress/DisplayLoginProgress.test.stories.js +12 -15
  81. package/src/react-extension/components/AuthenticationLogin/Login/Login.test.stories.js +12 -15
  82. package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.test.stories.js +5 -11
  83. package/src/react-extension/components/AuthenticationRecover/RecoverAuthentication/RecoverAuthentication.js +1 -1
  84. package/src/react-extension/components/Common/Error/ShowErrorDetails/ShowErrorDetails.js +1 -1
  85. package/src/react-extension/components/Common/Icons/Icon.test.stories.js +3 -1
  86. package/src/react-extension/components/Common/Loading/LoadingSpinner/LoadingSpinner.js +2 -1
  87. package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.js +1 -1
  88. package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.test.js +1 -1
  89. package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.test.stories.js +34 -0
  90. package/src/react-extension/components/Resource/CreateResource/CreateResource.test.stories.js +14 -4
  91. package/src/react-extension/components/Resource/DisplayResourcesList/DisplayDragResource.js +68 -0
  92. package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.js +9 -42
  93. package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.test.page.js +4 -1
  94. package/src/react-extension/components/Resource/ExportResources/ExportResources.test.stories.js +5 -11
  95. package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.js +6 -10
  96. package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.test.stories.js +5 -11
  97. package/src/react-extension/components/Resource/FilterResourcesByBreadcrumb/FilterResourcesByBreadcrumb.test.stories.js +0 -1
  98. package/src/react-extension/components/Resource/FilterResourcesByFolders/DisplayDragFolderItem.js +109 -0
  99. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.js +40 -192
  100. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.data.js +10 -5
  101. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.js +9 -12
  102. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.page.js +5 -1
  103. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.stories.js +0 -1
  104. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.js +83 -58
  105. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.test.data.js +52 -59
  106. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.test.js +25 -20
  107. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.test.page.js +11 -5
  108. package/src/react-extension/components/Resource/FilterResourcesByShortcuts/FilterResourcesByShortcuts.test.stories.js +0 -1
  109. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.data.js +47 -0
  110. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.js +34 -3
  111. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.page.js +46 -9
  112. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.stories.js +0 -1
  113. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTagsList.js +124 -4
  114. package/src/react-extension/components/Resource/FilterResourcesByText/FilterResourcesByText.test.stories.js +0 -2
  115. package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.js +6 -10
  116. package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.test.stories.js +5 -11
  117. package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.js +3 -3
  118. package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.test.js +3 -3
  119. package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.test.stories.js +5 -11
  120. package/src/react-extension/components/ResourceComment/AddResourceComment/AddResourceComment.test.stories.js +8 -14
  121. package/src/react-extension/components/ResourceComment/ConfirmResourceCommentDeletion/ConfirmResourceCommentDeletion.test.stories.js +5 -11
  122. package/src/react-extension/components/ResourceComment/DisplayResourceCommentList/DisplayResourceCommentList.test.stories.js +8 -14
  123. package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.test.stories.js +8 -15
  124. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsActivity.test.stories.js +0 -1
  125. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsDescription.test.stories.js +0 -1
  126. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.test.js +1 -1
  127. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.test.stories.js +0 -1
  128. package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.stories.js +0 -3
  129. package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.test.stories.js +0 -6
  130. package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.test.stories.js +0 -5
  131. package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.stories.js +0 -7
  132. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsActivity.test.stories.js +0 -2
  133. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsInformation.test.stories.js +0 -2
  134. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsPermissions.test.stories.js +0 -2
  135. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePassphraseGenerator.test.stories.js +0 -1
  136. package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.test.stories.js +0 -2
  137. package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.stories.js +0 -4
  138. package/src/react-extension/components/ResourceTag/EditResourceTags/EditResourceTags.js +1 -1
  139. package/src/react-extension/components/Share/ShareDialog.test.stories.js +5 -9
  140. package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.test.stories.js +5 -9
  141. package/src/react-extension/components/User/CreateUser/CreateUser.test.stories.js +3 -1
  142. package/src/react-extension/components/User/DeleteUser/DeleteUser.test.stories.js +5 -8
  143. package/src/react-extension/components/User/DeleteUser/DeleteUserWithConflicts.test.stories.js +5 -8
  144. package/src/react-extension/components/User/EditUser/EditUser.test.stories.js +3 -1
  145. package/src/react-extension/components/User/FilterUsersByBreadcrumb/FilterUsersByBreadcrumb.test.stories.js +5 -8
  146. package/src/react-extension/components/User/FilterUsersByShortcut/FilterUsersByShortcut.test.stories.js +0 -1
  147. package/src/react-extension/components/User/FilterUsersByText/FilterUsersByText.test.stories.js +0 -2
  148. package/src/react-extension/components/UserDetails/DisplayUserDetailsGroups/DisplayUserDetailsGroups.test.stories.js +8 -11
  149. package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.test.stories.js +8 -11
  150. package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.stories.js +8 -12
  151. package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.stories.js +5 -8
  152. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.test.stories.js +5 -8
  153. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.test.stories.js +5 -8
  154. package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsInformation/DisplayUserGroupDetailsInformation.test.stories.js +8 -11
  155. package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembers.test.stories.js +8 -11
  156. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.stories.js +5 -8
  157. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.js +55 -2
  158. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.test.data.js +6 -0
  159. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.js +54 -6
  160. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.data.js +6 -0
  161. package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.js +1 -1
  162. package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.test.stories.js +5 -8
  163. package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.js +21 -6
  164. package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.test.stories.js +5 -8
  165. package/src/react-extension/components/UserSetting/DisplayUserProfile/DisplayUserProfile.test.stories.js +5 -8
  166. package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspaceBreadcrumb/DisplayUserSettingsWorkspaceBreadcrumb.test.stories.js +5 -8
  167. package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.test.stories.js +5 -8
  168. package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.test.stories.js +5 -8
  169. package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.test.stories.js +7 -10
  170. package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.js +2 -2
  171. package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.test.stories.js +5 -8
  172. package/src/react-extension/contexts/ApiAppContext.js +1 -1
  173. package/src/react-extension/contexts/ApiRecoverContext.js +1 -1
  174. package/src/react-extension/contexts/ApiSetupContext.js +1 -1
  175. package/src/react-extension/contexts/DragContext.js +122 -0
  176. package/src/react-extension/contexts/DragContext.test.js +53 -0
  177. package/src/react-extension/test/mock/components/Internationalisation/MockTranslationProvider.js +42 -7
  178. package/src/react-quickaccess/components/AnimatedSwitch/AnimatedSwitch.js +3 -3
  179. package/src/react-quickaccess/components/ExtensionSetup/SetupExtensionInProgress/SetupExtensionInProgressPage.test.stories.js +3 -4
  180. package/src/react-quickaccess/components/FilterResourcesByFavoritePage/FilterResourcesByFavoritePage.test.stories.js +6 -6
  181. package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.test.stories.js +7 -3
  182. package/src/react-quickaccess/components/FilterResourcesByItemsIOwnPage/FilterResourcesByItemsIOwnPage.test.stories.js +6 -6
  183. package/src/react-quickaccess/components/FilterResourcesByRecentlyModifiedPage/FilterResourcesByRecentlyModifiedPage.test.stories.js +6 -6
  184. package/src/react-quickaccess/components/FilterResourcesBySharedWithMePage/FilterResourcesBySharedWithMePage.test.stories.js +6 -6
  185. package/src/react-quickaccess/components/FilterResourcesByTagPage/FilterResourcesByTagPage.test.stories.js +7 -3
  186. package/src/react-quickaccess/components/Header/Header.test.stories.js +3 -6
  187. package/src/react-quickaccess/components/HomePage/HomePage.test.stories.js +13 -9
  188. package/src/react-quickaccess/components/LoginPage/LoginPage.js +41 -5
  189. package/src/react-quickaccess/components/LoginPage/LoginPage.test.stories.js +3 -5
  190. package/src/react-quickaccess/components/MoreFiltersPage/MoreFiltersPage.test.stories.js +3 -5
  191. package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.test.stories.js +5 -5
  192. package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.stories.js +5 -5
  193. package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.stories.js +5 -5
  194. package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.test.stories.js +4 -2
  195. package/src/react-quickaccess/components/Search/Search.test.stories.js +3 -5
  196. package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.stories.js +6 -2
  197. package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.test.stories.js +9 -2
  198. package/src/react-web-integration/lib/InForm/InFormCallToActionField.js +3 -3
  199. package/src/react-web-integration/lib/InForm/InFormManager.js +12 -6
  200. package/src/react-web-integration/lib/InForm/InformMenuField.js +1 -1
  201. package/src/shared/lib/Browser/detectBrowserName.js +2 -1
  202. package/src/img/third_party/ChromeWebStore_black.png +0 -0
  203. package/src/img/third_party/ChromeWebStore_white.png +0 -0
@@ -1,7 +1,5 @@
1
1
  import React from "react";
2
2
  import {MemoryRouter, Route} from "react-router-dom";
3
- import "../../../../css/themes/default/ext_authentication.css";
4
- import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
5
3
  import {AuthenticationContext} from "../../../contexts/AuthenticationContext";
6
4
  import InstallExtension from "./InstallExtension";
7
5
 
@@ -16,21 +14,20 @@ const context = {
16
14
 
17
15
 
18
16
  const Template = args =>
19
- <MockTranslationProvider>
20
- <AuthenticationContext.Provider value={context}>
21
- <div id="container" className="container page login">
22
- <div className="content">
23
- <div className="login-form">
24
- <MemoryRouter initialEntries={['/']}>
25
- <Route component={routerProps => <InstallExtension {...args} {...routerProps}/>}></Route>
26
- </MemoryRouter>
27
- </div>
17
+ <AuthenticationContext.Provider value={context}>
18
+ <div id="container" className="container page login">
19
+ <div className="content">
20
+ <div className="login-form">
21
+ <MemoryRouter initialEntries={['/']}>
22
+ <Route component={routerProps => <InstallExtension {...args} {...routerProps}/>}></Route>
23
+ </MemoryRouter>
28
24
  </div>
29
25
  </div>
30
- </AuthenticationContext.Provider>
31
- </MockTranslationProvider>;
32
-
26
+ </div>
27
+ </AuthenticationContext.Provider>;
33
28
 
34
29
 
35
30
  export const Initial = Template.bind({});
36
-
31
+ Initial.parameters = {
32
+ css: "ext_authentication"
33
+ };
@@ -1,7 +1,5 @@
1
1
  import React from "react";
2
2
  import {MemoryRouter, Route} from "react-router-dom";
3
- import "../../../../css/themes/default/ext_authentication.css";
4
- import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
5
3
  import {AuthenticationContext} from "../../../contexts/AuthenticationContext";
6
4
  import IntroduceSetupExtension from "./IntroduceSetupExtension";
7
5
 
@@ -17,21 +15,20 @@ const context = {
17
15
 
18
16
 
19
17
  const Template = args =>
20
- <MockTranslationProvider>
21
- <AuthenticationContext.Provider value={context}>
22
- <div id="container" className="container page login">
23
- <div className="content">
24
- <div className="login-form">
25
- <MemoryRouter initialEntries={['/']}>
26
- <Route component={routerProps => <IntroduceSetupExtension {...args} {...routerProps}/>}></Route>
27
- </MemoryRouter>
28
- </div>
18
+ <AuthenticationContext.Provider value={context}>
19
+ <div id="container" className="container page login">
20
+ <div className="content">
21
+ <div className="login-form">
22
+ <MemoryRouter initialEntries={['/']}>
23
+ <Route component={routerProps => <IntroduceSetupExtension {...args} {...routerProps}/>}></Route>
24
+ </MemoryRouter>
29
25
  </div>
30
26
  </div>
31
- </AuthenticationContext.Provider>
32
- </MockTranslationProvider>;
33
-
27
+ </div>
28
+ </AuthenticationContext.Provider>;
34
29
 
35
30
 
36
31
  export const Initial = Template.bind({});
37
-
32
+ Initial.parameters = {
33
+ css: "ext_authentication"
34
+ };
@@ -1,7 +1,5 @@
1
1
  import React from "react";
2
2
  import {MemoryRouter, Route} from "react-router-dom";
3
- import "../../../../css/themes/default/ext_authentication.css";
4
- import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
5
3
  import {AuthenticationContext} from "../../../contexts/AuthenticationContext";
6
4
  import NotifyExpiredSession from "./NotifyExpiredSession";
7
5
 
@@ -16,15 +14,14 @@ const context = {
16
14
 
17
15
 
18
16
  const Template = args =>
19
- <MockTranslationProvider>
20
- <AuthenticationContext.Provider value={context}>
21
- <MemoryRouter initialEntries={['/']}>
22
- <Route component={routerProps => <NotifyExpiredSession {...args} {...routerProps}/>}></Route>
23
- </MemoryRouter>
24
- </AuthenticationContext.Provider>
25
- </MockTranslationProvider>;
26
-
17
+ <AuthenticationContext.Provider value={context}>
18
+ <MemoryRouter initialEntries={['/']}>
19
+ <Route component={routerProps => <NotifyExpiredSession {...args} {...routerProps}/>}></Route>
20
+ </MemoryRouter>
21
+ </AuthenticationContext.Provider>;
27
22
 
28
23
 
29
24
  export const Initial = Template.bind({});
30
-
25
+ Initial.parameters = {
26
+ css: "ext_authentication"
27
+ };
@@ -1,7 +1,5 @@
1
1
  import React from "react";
2
2
  import {MemoryRouter, Route} from "react-router-dom";
3
- import "../../../../css/themes/default/ext_authentication.css";
4
- import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
5
3
  import AcceptLoginServerKeyChange from "./AcceptLoginServerKeyChange";
6
4
  import {AuthenticationContext} from "../../../contexts/AuthenticationContext";
7
5
 
@@ -17,21 +15,20 @@ const context = {
17
15
 
18
16
 
19
17
  const Template = args =>
20
- <MockTranslationProvider>
21
- <AuthenticationContext.Provider value={context}>
22
- <MemoryRouter initialEntries={['/']}>
23
- <div id="container" className="container page login">
24
- <div className="content">
25
- <div className="login-form">
26
- <Route component={routerProps => <AcceptLoginServerKeyChange {...args} {...routerProps}/>}></Route>
27
- </div>
18
+ <AuthenticationContext.Provider value={context}>
19
+ <MemoryRouter initialEntries={['/']}>
20
+ <div id="container" className="container page login">
21
+ <div className="content">
22
+ <div className="login-form">
23
+ <Route component={routerProps => <AcceptLoginServerKeyChange {...args} {...routerProps}/>}></Route>
28
24
  </div>
29
25
  </div>
30
- </MemoryRouter>
31
- </AuthenticationContext.Provider>
32
- </MockTranslationProvider>;
33
-
26
+ </div>
27
+ </MemoryRouter>
28
+ </AuthenticationContext.Provider>;
34
29
 
35
30
 
36
31
  export const Initial = Template.bind({});
37
-
32
+ Initial.parameters = {
33
+ css: "ext_authentication"
34
+ };
@@ -1,7 +1,5 @@
1
1
  import React from "react";
2
2
  import {MemoryRouter, Route} from "react-router-dom";
3
- import "../../../../css/themes/default/ext_authentication.css";
4
- import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
5
3
  import {AuthenticationContext} from "../../../contexts/AuthenticationContext";
6
4
  import DisplayLoginError from "./DisplayLoginError";
7
5
 
@@ -16,21 +14,20 @@ const context = {
16
14
 
17
15
 
18
16
  const Template = args =>
19
- <MockTranslationProvider>
20
- <AuthenticationContext.Provider value={context}>
21
- <div id="container" className="container page login">
22
- <div className="content">
23
- <div className="login-form">
24
- <MemoryRouter initialEntries={['/']}>
25
- <Route component={routerProps => <DisplayLoginError {...args} {...routerProps}/>}></Route>
26
- </MemoryRouter>
27
- </div>
17
+ <AuthenticationContext.Provider value={context}>
18
+ <div id="container" className="container page login">
19
+ <div className="content">
20
+ <div className="login-form">
21
+ <MemoryRouter initialEntries={['/']}>
22
+ <Route component={routerProps => <DisplayLoginError {...args} {...routerProps}/>}></Route>
23
+ </MemoryRouter>
28
24
  </div>
29
25
  </div>
30
- </AuthenticationContext.Provider>
31
- </MockTranslationProvider>;
32
-
26
+ </div>
27
+ </AuthenticationContext.Provider>;
33
28
 
34
29
 
35
30
  export const Initial = Template.bind({});
36
-
31
+ Initial.parameters = {
32
+ css: "ext_authentication"
33
+ };
@@ -1,7 +1,5 @@
1
1
  import React from "react";
2
2
  import {MemoryRouter, Route} from "react-router-dom";
3
- import "../../../../css/themes/default/ext_authentication.css";
4
- import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
5
3
  import {AuthenticationContext} from "../../../contexts/AuthenticationContext";
6
4
  import DisplayLoginInProgress from "./DisplayLoginInProgress";
7
5
 
@@ -16,21 +14,20 @@ const context = {
16
14
 
17
15
 
18
16
  const Template = args =>
19
- <MockTranslationProvider>
20
- <AuthenticationContext.Provider value={context}>
21
- <div id="container" className="container page login">
22
- <div className="content">
23
- <div className="login-form">
24
- <MemoryRouter initialEntries={['/']}>
25
- <Route component={routerProps => <DisplayLoginInProgress {...args} {...routerProps}/>}></Route>
26
- </MemoryRouter>
27
- </div>
17
+ <AuthenticationContext.Provider value={context}>
18
+ <div id="container" className="container page login">
19
+ <div className="content">
20
+ <div className="login-form">
21
+ <MemoryRouter initialEntries={['/']}>
22
+ <Route component={routerProps => <DisplayLoginInProgress {...args} {...routerProps}/>}></Route>
23
+ </MemoryRouter>
28
24
  </div>
29
25
  </div>
30
- </AuthenticationContext.Provider>
31
- </MockTranslationProvider>;
32
-
26
+ </div>
27
+ </AuthenticationContext.Provider>;
33
28
 
34
29
 
35
30
  export const Initial = Template.bind({});
36
-
31
+ Initial.parameters = {
32
+ css: "ext_authentication"
33
+ };
@@ -1,7 +1,5 @@
1
1
  import React from "react";
2
2
  import {MemoryRouter, Route} from "react-router-dom";
3
- import "../../../../css/themes/default/ext_authentication.css";
4
- import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
5
3
  import {AuthenticationContext} from "../../../contexts/AuthenticationContext";
6
4
  import Login from "./Login";
7
5
 
@@ -24,21 +22,20 @@ const context = {
24
22
 
25
23
 
26
24
  const Template = args =>
27
- <MockTranslationProvider>
28
- <AuthenticationContext.Provider value={context}>
29
- <div id="container" className="container page login">
30
- <div className="content">
31
- <div className="login-form">
32
- <MemoryRouter initialEntries={['/']}>
33
- <Route component={routerProps => <Login {...args} {...routerProps}/>}></Route>
34
- </MemoryRouter>
35
- </div>
25
+ <AuthenticationContext.Provider value={context}>
26
+ <div id="container" className="container page login">
27
+ <div className="content">
28
+ <div className="login-form">
29
+ <MemoryRouter initialEntries={['/']}>
30
+ <Route component={routerProps => <Login {...args} {...routerProps}/>}></Route>
31
+ </MemoryRouter>
36
32
  </div>
37
33
  </div>
38
- </AuthenticationContext.Provider>
39
- </MockTranslationProvider>;
40
-
34
+ </div>
35
+ </AuthenticationContext.Provider>;
41
36
 
42
37
 
43
38
  export const Initial = Template.bind({});
44
-
39
+ Initial.parameters = {
40
+ css: "ext_authentication"
41
+ };
@@ -1,7 +1,5 @@
1
1
  import React from "react";
2
2
  import {MemoryRouter, Route} from "react-router-dom";
3
- import "../../../../css/themes/default/ext_authentication.css";
4
- import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
5
3
  import InputPassphrase from "./InputPassphrase";
6
4
  import AppContext from "../../../contexts/AppContext";
7
5
 
@@ -25,15 +23,11 @@ const context = {
25
23
 
26
24
 
27
25
  const Template = args =>
28
- <MockTranslationProvider>
29
- <AppContext.Provider value={context}>
30
- <MemoryRouter initialEntries={['/']}>
31
- <Route component={routerProps => <InputPassphrase {...args} {...routerProps}/>}></Route>
32
- </MemoryRouter>
33
- </AppContext.Provider>
34
- </MockTranslationProvider>;
35
-
26
+ <AppContext.Provider value={context}>
27
+ <MemoryRouter initialEntries={['/']}>
28
+ <Route component={routerProps => <InputPassphrase {...args} {...routerProps}/>}></Route>
29
+ </MemoryRouter>
30
+ </AppContext.Provider>;
36
31
 
37
32
 
38
33
  export const Initial = Template.bind({});
39
-
@@ -78,7 +78,7 @@ class RecoverAuthentication extends Component {
78
78
  case AuthenticationContextState.RECOVER_INITIALIZED:
79
79
  case AuthenticationContextState.INTRODUCE_SETUP_EXTENSION_COMPLETED:
80
80
  return <ImportGpgKey
81
- title={this.translate("Welcome back, please enter your private key to begin with the recovery process.")}
81
+ title={this.translate("Welcome back, please enter your private key to begin the recovery process.")}
82
82
  secondaryAction={<HelpOnPrivateKeyLostSecondaryAction/>}/>;
83
83
  case AuthenticationContextState.GPG_KEY_VALIDATED:
84
84
  return <CheckPassphrase canRememberMe={this.canRememberMe} secondaryAction={<HelpOnPassphraseLostSecondaryAction/>}/>;
@@ -101,7 +101,7 @@ class ShowErrorDetails extends Component {
101
101
  <div className="accordion-header">
102
102
  <a onClick={this.handleErrorDetailsToggle}>
103
103
  <Icon baseline={true} name={this.state.showErrorDetails ? "caret-down" : "caret-right"}/>
104
- <Trans>Errors details</Trans>
104
+ <Trans>Error details</Trans>
105
105
  </a>
106
106
  </div>
107
107
  {this.state.showErrorDetails &&
@@ -1,7 +1,6 @@
1
1
  import React from "react";
2
2
  import PropTypes from "prop-types";
3
3
  import Icon from "./Icon";
4
- import "../../../../css/themes/default/api_main.css";
5
4
 
6
5
 
7
6
  export default {
@@ -74,3 +73,6 @@ Template.propTypes = {
74
73
  };
75
74
 
76
75
  export const Initial = Template.bind({});
76
+ Initial.parameters = {
77
+ css: "api_main"
78
+ };
@@ -12,6 +12,7 @@
12
12
  * @since 2.13.0
13
13
  */
14
14
  import React from "react";
15
+ import {Trans} from "react-i18next";
15
16
 
16
17
  /**
17
18
  * This component displays a waiting loading spinner
@@ -27,7 +28,7 @@ class LoadingSpinner extends React.Component {
27
28
  <div className="processing">
28
29
  </div>
29
30
  </div>
30
- <h1>Please wait...</h1>
31
+ <h1><Trans>Please wait...</Trans></h1>
31
32
  </div>
32
33
  );
33
34
  }
@@ -60,7 +60,7 @@ class DisplayProgress extends Component {
60
60
  </div>
61
61
  {displayDetailsSection &&
62
62
  <div className="progress-details">
63
- <span className="progress-step-label">&nbsp; {this.props.context.progressDialogProps.message || this.translate("Please wait...") }</span>
63
+ <span className="progress-step-label">{this.props.context.progressDialogProps.message || this.translate("Please wait...") }</span>
64
64
  <span style={progressLabelStyle} className="progress-percent">{progress}%</span>
65
65
  </div>
66
66
  }
@@ -76,7 +76,7 @@ describe("DisplayProgress", () => {
76
76
  // Details message.
77
77
  const progressStepLabel = container.querySelector(".progress-step-label");
78
78
  // &nbsp; translate to unix code \u00a0
79
- expect(progressStepLabel.textContent).toBe("\u00a0 Step 0");
79
+ expect(progressStepLabel.textContent).toBe("Step 0");
80
80
 
81
81
  // Details percent.
82
82
  const progressPercent = container.querySelector(".progress-percent");
@@ -0,0 +1,34 @@
1
+ import {MemoryRouter, Route} from "react-router-dom";
2
+ import React from "react";
3
+ import DisplayProgress from "./DisplayProgress";
4
+
5
+
6
+ export default {
7
+ title: 'Passbolt/Common/DisplayProgress',
8
+ component: DisplayProgress
9
+ };
10
+
11
+ const Template = args =>
12
+ <MemoryRouter initialEntries={['/']}>
13
+ <Route component={routerProps => <DisplayProgress {...args} {...routerProps}/>}></Route>
14
+ </MemoryRouter>;
15
+
16
+
17
+ export const Initial = Template.bind({});
18
+ Initial.args = {
19
+ context: {
20
+ progressDialogProps: {}
21
+ }
22
+ };
23
+
24
+ export const ProgressMessage = Template.bind({});
25
+ ProgressMessage.args = {
26
+ context: {
27
+ progressDialogProps: {
28
+ title: "Title",
29
+ goals: 100,
30
+ completed: 50,
31
+ message: "message"
32
+ }
33
+ }
34
+ };
@@ -3,12 +3,19 @@ import React from "react";
3
3
  import AppContext from "../../../contexts/AppContext";
4
4
  import PropTypes from "prop-types";
5
5
  import CreateResource from "./CreateResource";
6
- import "../../../../css/themes/default/ext_app.css";
7
6
 
8
7
 
9
8
  export default {
10
9
  title: 'Passbolt/Resource/CreateResource',
11
- component: CreateResource
10
+ component: CreateResource,
11
+ argTypes: {
12
+ language: {
13
+ control: {
14
+ type: 'select',
15
+ options: ['en-US', 'fr']
16
+ }
17
+ }
18
+ }
12
19
  };
13
20
 
14
21
  const context = {
@@ -80,7 +87,7 @@ const context = {
80
87
  };
81
88
 
82
89
 
83
- const Template = args =>
90
+ const Template = ({context, ...args}) =>
84
91
  <AppContext.Provider value={context}>
85
92
  <MemoryRouter initialEntries={['/']}>
86
93
  <Route component={routerProps => <CreateResource {...args} {...routerProps}/>}></Route>
@@ -88,7 +95,10 @@ const Template = args =>
88
95
  </AppContext.Provider>;
89
96
 
90
97
  Template.propTypes = {
91
- context: PropTypes.object,
98
+ context: PropTypes.object
92
99
  };
93
100
 
94
101
  export const Initial = Template.bind({});
102
+ Initial.args = {
103
+ context: context,
104
+ };
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Passbolt ~ Open source password manager for teams
3
+ * Copyright (c) Passbolt SA (https://www.passbolt.com)
4
+ *
5
+ * Licensed under GNU Affero General Public License version 3 of the or any later version.
6
+ * For full copyright and license information, please see the LICENSE.txt
7
+ * Redistributions of files must retain the above copyright notice.
8
+ *
9
+ * @copyright Copyright (c) Passbolt SA (https://www.passbolt.com)
10
+ * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
11
+ * @link https://www.passbolt.com Passbolt(tm)
12
+ * @since 3.4.0
13
+ */
14
+ import React from "react";
15
+ import PropTypes from "prop-types";
16
+ import AppContext from "../../../contexts/AppContext";
17
+ import {withResourceWorkspace} from "../../../contexts/ResourceWorkspaceContext";
18
+
19
+ class DisplayDragResource extends React.Component {
20
+ /**
21
+ * the resource selected
22
+ * @returns {*}
23
+ */
24
+ get selectedResources() {
25
+ return this.props.resourceWorkspaceContext.selectedResources;
26
+ }
27
+
28
+ /**
29
+ * is multiple resources selected
30
+ * @returns {boolean}
31
+ */
32
+ isMultipleSelected() {
33
+ return this.props.resourceWorkspaceContext.selectedResources.length > 1;
34
+ }
35
+
36
+ /**
37
+ * Get the number of resources
38
+ * @returns {string|*}
39
+ */
40
+ get numberOfResources() {
41
+ return this.props.resourceWorkspaceContext.selectedResources.length > 99 ? '99+' : this.props.resourceWorkspaceContext.selectedResources.length;
42
+ }
43
+
44
+ /**
45
+ * Render the component.
46
+ * @returns {JSX}
47
+ */
48
+ render() {
49
+ return (
50
+ <div className={`${this.isMultipleSelected() ? "drag-and-drop-multiple" : "drag-and-drop"}`}>
51
+ {this.selectedResources[0].name}
52
+ {this.isMultipleSelected() &&
53
+ <span className="count">
54
+ {this.numberOfResources}
55
+ </span>
56
+ }
57
+ </div>
58
+ );
59
+ }
60
+ }
61
+
62
+ DisplayDragResource.contextType = AppContext;
63
+
64
+ DisplayDragResource.propTypes = {
65
+ resourceWorkspaceContext: PropTypes.any
66
+ };
67
+
68
+ export default withResourceWorkspace(DisplayDragResource);
@@ -29,6 +29,8 @@ import {withContextualMenu} from "../../../contexts/ContextualMenuContext";
29
29
  import sanitizeUrl, {urlProtocols} from "../../../lib/Sanitize/sanitizeUrl";
30
30
  import {Trans, withTranslation} from "react-i18next";
31
31
  import {DateTime} from "luxon";
32
+ import {withDrag} from "../../../contexts/DragContext";
33
+ import DisplayDragResource from "./DisplayDragResource";
32
34
 
33
35
  /**
34
36
  * This component allows to display the filtered resources into a grid
@@ -53,7 +55,6 @@ class DisplayResourcesList extends React.Component {
53
55
  return {
54
56
  resources: [], // The current list of resources to display
55
57
  selectStrategy: "",
56
- previewedPassword: null, // The previewed password.
57
58
  };
58
59
  }
59
60
 
@@ -109,7 +110,6 @@ class DisplayResourcesList extends React.Component {
109
110
  */
110
111
  createRefs() {
111
112
  this.listRef = React.createRef();
112
- this.dragFeedbackElement = React.createRef();
113
113
  }
114
114
 
115
115
  /**
@@ -378,17 +378,15 @@ class DisplayResourcesList extends React.Component {
378
378
  if (!this.isResourceSelected(resource)) {
379
379
  await this.props.resourceWorkspaceContext.onResourceSelected.single(resource);
380
380
  }
381
- event.dataTransfer.setDragImage(this.dragFeedbackElement.current, 5, 5);
382
381
  const draggedItems = {resources: this.props.resourceWorkspaceContext.selectedResources, folders: []};
383
- const triggerEvent = document.createEvent("CustomEvent");
384
- triggerEvent.initCustomEvent("passbolt.resources.drag-start", true, true, draggedItems);
385
- document.dispatchEvent(triggerEvent);
382
+ this.props.dragContext.onDragStart(event, DisplayDragResource, draggedItems);
386
383
  }
387
384
 
385
+ /**
386
+ * Handle when the user stop dragging content.
387
+ */
388
388
  handleDragEndEvent() {
389
- const trigerEvent = document.createEvent("CustomEvent");
390
- trigerEvent.initCustomEvent("passbolt.resources.drag-end", true, true);
391
- document.dispatchEvent(trigerEvent);
389
+ this.props.dragContext.onDragEnd();
392
390
  }
393
391
 
394
392
  /**
@@ -611,37 +609,6 @@ class DisplayResourcesList extends React.Component {
611
609
  );
612
610
  }
613
611
 
614
- /**
615
- * Render the drag tooltip of the selected resources
616
- * @returns {JSX.Element}
617
- */
618
- renderDragFeedback() {
619
- const isSelected = this.props.resourceWorkspaceContext.selectedResources.length > 0;
620
- const isMultipleSelected = this.props.resourceWorkspaceContext.selectedResources.length > 1;
621
- let dragFeedbackText = "";
622
- let dragElementClassname = "";
623
-
624
- if (isSelected) {
625
- const isSelected = resource => resource.id === this.props.resourceWorkspaceContext.selectedResources[0].id;
626
- const firstSelectedResource = this.resources.find(isSelected);
627
- if (firstSelectedResource) {
628
- dragElementClassname = isMultipleSelected ? "drag-and-drop-multiple" : "drag-and-drop";
629
- dragFeedbackText = firstSelectedResource.name;
630
- }
631
- }
632
-
633
- return (
634
- <div ref={this.dragFeedbackElement} className={dragElementClassname}>
635
- {dragFeedbackText}
636
- {isMultipleSelected &&
637
- <span className="count">
638
- {this.props.resourceWorkspaceContext.selectedResources.length}
639
- </span>
640
- }
641
- </div>
642
- );
643
- }
644
-
645
612
  /**
646
613
  * Get the translate function
647
614
  * @returns {function(...[*]=)}
@@ -709,7 +676,6 @@ class DisplayResourcesList extends React.Component {
709
676
  }
710
677
  {!isEmpty &&
711
678
  <React.Fragment>
712
- {this.renderDragFeedback()}
713
679
  <div className="tableview-header">
714
680
  <table>
715
681
  <thead>
@@ -846,7 +812,8 @@ DisplayResourcesList.propTypes = {
846
812
  actionFeedbackContext: PropTypes.any, // The action feedback context
847
813
  contextualMenuContext: PropTypes.any, // The contextual menu context
848
814
  history: PropTypes.any,
815
+ dragContext: PropTypes.any,
849
816
  t: PropTypes.func, // The translation function
850
817
  };
851
818
 
852
- export default withAppContext(withRouter(withActionFeedback(withContextualMenu(withResourceWorkspace(withTranslation('common')(DisplayResourcesList))))));
819
+ export default withAppContext(withRouter(withActionFeedback(withContextualMenu(withResourceWorkspace(withDrag(withTranslation('common')(DisplayResourcesList)))))));