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.
- package/build/css/help.min.css +2 -2
- package/build/css/public.min.css +2 -2
- package/build/css/themes/default/api_authentication.min.css +3 -3
- package/build/css/themes/default/api_cloud.min.css +3 -3
- package/build/css/themes/default/api_main.min.css +4 -4
- package/build/css/themes/default/api_reports.min.css +4 -4
- package/build/css/themes/default/api_webinstaller.min.css +3 -3
- package/build/css/themes/default/ext_app.min.css +4 -4
- package/build/css/themes/default/ext_authentication.min.css +3 -3
- package/build/css/themes/default/ext_external.min.css +2 -2
- package/build/css/themes/default/ext_in_form_cta.min.css +3 -3
- package/build/css/themes/default/ext_in_form_menu.min.css +3 -3
- package/build/css/themes/default/ext_quickaccess.min.css +3 -3
- package/build/css/themes/midgar/api_authentication.min.css +9 -0
- package/build/css/themes/midgar/api_main.min.css +4 -4
- package/build/css/themes/midgar/api_reports.min.css +4 -4
- package/build/css/themes/midgar/ext_app.min.css +4 -4
- package/build/css/themes/midgar/ext_authentication.min.css +3 -3
- package/build/css/themes/midgar/ext_in_form_cta.min.css +3 -3
- package/build/css/themes/midgar/ext_in_form_menu.min.css +3 -3
- package/build/css/themes/midgar/ext_quickaccess.min.css +3 -3
- package/build/js/dist/api-app.js +1 -1
- package/build/js/dist/api-recover.js +1 -1
- package/build/js/dist/api-setup.js +1 -1
- package/build/js/dist/api-triage.js +1 -1
- package/build/js/dist/api-vendors.js +1 -1
- package/build/js/dist/api-vendors.js.LICENSE.txt +40 -4
- package/package.json +7 -6
- package/src/img/third_party/ChromeWebStore_black.svg +1 -0
- package/src/img/third_party/ChromeWebStore_white.svg +1 -0
- package/src/img/third_party/edge-addon-black.svg +1 -0
- package/src/img/third_party/edge-addon-white.svg +1 -0
- package/src/locales/de-DE/common.json +11 -11
- package/src/locales/en-UK/common.json +11 -12
- package/src/locales/fr/common.json +750 -0
- package/src/locales/fr-FR/common.json +11 -11
- package/src/locales/sv-SE/common.json +11 -11
- package/src/react-extension/ExtApp.js +9 -6
- package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.js +1 -1
- package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.stories.js +0 -1
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.js +1 -1
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.js +1 -1
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.stories.js +5 -8
- package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.js +1 -1
- package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.data.js +4 -1
- package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.js +4 -4
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.js +1 -1
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.js +1 -1
- package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.test.js +2 -3
- package/src/react-extension/components/Administration/DisplayTestUserDirectoryAdministration/DisplayTestUserDirectoryAdministration.test.stories.js +5 -9
- package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.js +2 -2
- package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.stories.js +0 -3
- package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.js +1 -1
- package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.js +2 -2
- package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.test.js +1 -1
- package/src/react-extension/components/Authentication/CheckMailBox/CheckMailbox.test.stories.js +12 -14
- package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.js +1 -1
- package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/HandleSessionExpired/HandleSessionExpired.test.data.js +14 -0
- package/src/react-extension/components/Authentication/HandleSessionExpired/HandleSessionExpired.test.js +65 -0
- package/src/react-extension/components/Authentication/HandleSessionExpired/HandleSessionExpired.test.page.js +38 -0
- package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.js +15 -6
- package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.js +27 -0
- package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.test.stories.js +12 -15
- package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.stories.js +8 -11
- package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.stories.js +12 -15
- package/src/react-extension/components/AuthenticationLogin/DisplayLoginError/DisplayLoginError.test.stories.js +12 -15
- package/src/react-extension/components/AuthenticationLogin/DisplayLoginInProgress/DisplayLoginProgress.test.stories.js +12 -15
- package/src/react-extension/components/AuthenticationLogin/Login/Login.test.stories.js +12 -15
- package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.test.stories.js +5 -11
- package/src/react-extension/components/AuthenticationRecover/RecoverAuthentication/RecoverAuthentication.js +1 -1
- package/src/react-extension/components/Common/Error/ShowErrorDetails/ShowErrorDetails.js +1 -1
- package/src/react-extension/components/Common/Icons/Icon.test.stories.js +3 -1
- package/src/react-extension/components/Common/Loading/LoadingSpinner/LoadingSpinner.js +2 -1
- package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.js +1 -1
- package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.test.js +1 -1
- package/src/react-extension/components/Common/Progress/DisplayProgress/DisplayProgress.test.stories.js +34 -0
- package/src/react-extension/components/Resource/CreateResource/CreateResource.test.stories.js +14 -4
- package/src/react-extension/components/Resource/DisplayResourcesList/DisplayDragResource.js +68 -0
- package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.js +9 -42
- package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.test.page.js +4 -1
- package/src/react-extension/components/Resource/ExportResources/ExportResources.test.stories.js +5 -11
- package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.js +6 -10
- package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.test.stories.js +5 -11
- package/src/react-extension/components/Resource/FilterResourcesByBreadcrumb/FilterResourcesByBreadcrumb.test.stories.js +0 -1
- package/src/react-extension/components/Resource/FilterResourcesByFolders/DisplayDragFolderItem.js +109 -0
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.js +40 -192
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.data.js +10 -5
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.js +9 -12
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.page.js +5 -1
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.stories.js +0 -1
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.js +83 -58
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.test.data.js +52 -59
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.test.js +25 -20
- package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFoldersItem.test.page.js +11 -5
- package/src/react-extension/components/Resource/FilterResourcesByShortcuts/FilterResourcesByShortcuts.test.stories.js +0 -1
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.data.js +47 -0
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.js +34 -3
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.page.js +46 -9
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTags.test.stories.js +0 -1
- package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTagsList.js +124 -4
- package/src/react-extension/components/Resource/FilterResourcesByText/FilterResourcesByText.test.stories.js +0 -2
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.js +6 -10
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.test.stories.js +5 -11
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.js +3 -3
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.test.js +3 -3
- package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.test.stories.js +5 -11
- package/src/react-extension/components/ResourceComment/AddResourceComment/AddResourceComment.test.stories.js +8 -14
- package/src/react-extension/components/ResourceComment/ConfirmResourceCommentDeletion/ConfirmResourceCommentDeletion.test.stories.js +5 -11
- package/src/react-extension/components/ResourceComment/DisplayResourceCommentList/DisplayResourceCommentList.test.stories.js +8 -14
- package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.test.stories.js +8 -15
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsActivity.test.stories.js +0 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsDescription.test.stories.js +0 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.test.js +1 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.test.stories.js +0 -1
- package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.stories.js +0 -3
- package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.test.stories.js +0 -6
- package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.test.stories.js +0 -5
- package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.stories.js +0 -7
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsActivity.test.stories.js +0 -2
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsInformation.test.stories.js +0 -2
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsPermissions.test.stories.js +0 -2
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePassphraseGenerator.test.stories.js +0 -1
- package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.test.stories.js +0 -2
- package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.stories.js +0 -4
- package/src/react-extension/components/ResourceTag/EditResourceTags/EditResourceTags.js +1 -1
- package/src/react-extension/components/Share/ShareDialog.test.stories.js +5 -9
- package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.test.stories.js +5 -9
- package/src/react-extension/components/User/CreateUser/CreateUser.test.stories.js +3 -1
- package/src/react-extension/components/User/DeleteUser/DeleteUser.test.stories.js +5 -8
- package/src/react-extension/components/User/DeleteUser/DeleteUserWithConflicts.test.stories.js +5 -8
- package/src/react-extension/components/User/EditUser/EditUser.test.stories.js +3 -1
- package/src/react-extension/components/User/FilterUsersByBreadcrumb/FilterUsersByBreadcrumb.test.stories.js +5 -8
- package/src/react-extension/components/User/FilterUsersByShortcut/FilterUsersByShortcut.test.stories.js +0 -1
- package/src/react-extension/components/User/FilterUsersByText/FilterUsersByText.test.stories.js +0 -2
- package/src/react-extension/components/UserDetails/DisplayUserDetailsGroups/DisplayUserDetailsGroups.test.stories.js +8 -11
- package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.test.stories.js +8 -11
- package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.stories.js +8 -12
- package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.stories.js +5 -8
- package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.test.stories.js +5 -8
- package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.test.stories.js +5 -8
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsInformation/DisplayUserGroupDetailsInformation.test.stories.js +8 -11
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembers.test.stories.js +8 -11
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.stories.js +5 -8
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.js +55 -2
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.test.data.js +6 -0
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.js +54 -6
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.data.js +6 -0
- package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.js +1 -1
- package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.test.stories.js +5 -8
- package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.js +21 -6
- package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.test.stories.js +5 -8
- package/src/react-extension/components/UserSetting/DisplayUserProfile/DisplayUserProfile.test.stories.js +5 -8
- package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspaceBreadcrumb/DisplayUserSettingsWorkspaceBreadcrumb.test.stories.js +5 -8
- package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.test.stories.js +5 -8
- package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.test.stories.js +5 -8
- package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.test.stories.js +7 -10
- package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.js +2 -2
- package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.test.stories.js +5 -8
- package/src/react-extension/contexts/ApiAppContext.js +1 -1
- package/src/react-extension/contexts/ApiRecoverContext.js +1 -1
- package/src/react-extension/contexts/ApiSetupContext.js +1 -1
- package/src/react-extension/contexts/DragContext.js +122 -0
- package/src/react-extension/contexts/DragContext.test.js +53 -0
- package/src/react-extension/test/mock/components/Internationalisation/MockTranslationProvider.js +42 -7
- package/src/react-quickaccess/components/AnimatedSwitch/AnimatedSwitch.js +3 -3
- package/src/react-quickaccess/components/ExtensionSetup/SetupExtensionInProgress/SetupExtensionInProgressPage.test.stories.js +3 -4
- package/src/react-quickaccess/components/FilterResourcesByFavoritePage/FilterResourcesByFavoritePage.test.stories.js +6 -6
- package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.test.stories.js +7 -3
- package/src/react-quickaccess/components/FilterResourcesByItemsIOwnPage/FilterResourcesByItemsIOwnPage.test.stories.js +6 -6
- package/src/react-quickaccess/components/FilterResourcesByRecentlyModifiedPage/FilterResourcesByRecentlyModifiedPage.test.stories.js +6 -6
- package/src/react-quickaccess/components/FilterResourcesBySharedWithMePage/FilterResourcesBySharedWithMePage.test.stories.js +6 -6
- package/src/react-quickaccess/components/FilterResourcesByTagPage/FilterResourcesByTagPage.test.stories.js +7 -3
- package/src/react-quickaccess/components/Header/Header.test.stories.js +3 -6
- package/src/react-quickaccess/components/HomePage/HomePage.test.stories.js +13 -9
- package/src/react-quickaccess/components/LoginPage/LoginPage.js +41 -5
- package/src/react-quickaccess/components/LoginPage/LoginPage.test.stories.js +3 -5
- package/src/react-quickaccess/components/MoreFiltersPage/MoreFiltersPage.test.stories.js +3 -5
- package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.test.stories.js +5 -5
- package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.stories.js +5 -5
- package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.stories.js +5 -5
- package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.test.stories.js +4 -2
- package/src/react-quickaccess/components/Search/Search.test.stories.js +3 -5
- package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.stories.js +6 -2
- package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.test.stories.js +9 -2
- package/src/react-web-integration/lib/InForm/InFormCallToActionField.js +3 -3
- package/src/react-web-integration/lib/InForm/InFormManager.js +12 -6
- package/src/react-web-integration/lib/InForm/InformMenuField.js +1 -1
- package/src/shared/lib/Browser/detectBrowserName.js +2 -1
- package/src/img/third_party/ChromeWebStore_black.png +0 -0
- package/src/img/third_party/ChromeWebStore_white.png +0 -0
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import {MemoryRouter, Route} from "react-router-dom";
|
|
3
|
-
import "../../../css/themes/default/ext_quickaccess.css";
|
|
4
3
|
import PropTypes from "prop-types";
|
|
5
4
|
import FilterResourcesByTagPage from "./FilterResourcesByTagPage";
|
|
6
5
|
import AppContext from "../../contexts/AppContext";
|
|
@@ -24,13 +23,16 @@ Template.propTypes = {
|
|
|
24
23
|
initialEntries: PropTypes.array
|
|
25
24
|
};
|
|
26
25
|
|
|
27
|
-
|
|
26
|
+
const parameters = {
|
|
27
|
+
css: "ext_quickaccess"
|
|
28
|
+
};
|
|
28
29
|
|
|
29
30
|
export const InitialLoad = Template.bind({});
|
|
30
31
|
InitialLoad.args = {
|
|
31
32
|
context: defaultAppContext(),
|
|
32
33
|
initialEntries: ['/']
|
|
33
34
|
};
|
|
35
|
+
InitialLoad.parameters = parameters;
|
|
34
36
|
|
|
35
37
|
const contextNoTag = {
|
|
36
38
|
port: {
|
|
@@ -42,6 +44,7 @@ NoTags.args = {
|
|
|
42
44
|
context: defaultAppContext(contextNoTag),
|
|
43
45
|
initialEntries: ['/']
|
|
44
46
|
};
|
|
47
|
+
NoTags.parameters = parameters;
|
|
45
48
|
|
|
46
49
|
const contextResourcesTags = {
|
|
47
50
|
port: {
|
|
@@ -52,4 +55,5 @@ export const TagsResourcesMatched = Template.bind({});
|
|
|
52
55
|
TagsResourcesMatched.args = {
|
|
53
56
|
context: defaultAppContext(contextResourcesTags),
|
|
54
57
|
initialEntries: ['/']
|
|
55
|
-
};
|
|
58
|
+
};
|
|
59
|
+
TagsResourcesMatched.parameters = parameters;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import {MemoryRouter, Route} from "react-router-dom";
|
|
3
|
-
import "../../../css/themes/default/ext_quickaccess.css";
|
|
4
3
|
import PropTypes from "prop-types";
|
|
5
4
|
import Header from "./Header";
|
|
6
5
|
import AppContext from "../../contexts/AppContext";
|
|
@@ -23,14 +22,12 @@ Template.propTypes = {
|
|
|
23
22
|
context: PropTypes.object,
|
|
24
23
|
};
|
|
25
24
|
|
|
26
|
-
|
|
27
|
-
|
|
28
25
|
export const Initial = Template.bind({});
|
|
29
26
|
Initial.args = {
|
|
30
27
|
context: defaultAppContext(),
|
|
31
28
|
logoutSuccessCallback: () => {}
|
|
32
29
|
};
|
|
33
30
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
31
|
+
Initial.parameters = {
|
|
32
|
+
css: "ext_quickaccess"
|
|
33
|
+
};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import {MemoryRouter, Route} from "react-router-dom";
|
|
3
|
-
import "../../../css/themes/default/ext_quickaccess.css";
|
|
4
3
|
import PropTypes from "prop-types";
|
|
5
4
|
import HomePage from "./HomePage";
|
|
6
5
|
import AppContext from "../../contexts/AppContext";
|
|
@@ -23,10 +22,15 @@ Template.propTypes = {
|
|
|
23
22
|
context: PropTypes.object,
|
|
24
23
|
};
|
|
25
24
|
|
|
25
|
+
const parameters = {
|
|
26
|
+
css: "ext_quickaccess"
|
|
27
|
+
};
|
|
28
|
+
|
|
26
29
|
export const Initial = Template.bind({});
|
|
27
30
|
Initial.args = {
|
|
28
31
|
context: defaultAppContext()
|
|
29
32
|
};
|
|
33
|
+
Initial.parameters = parameters;
|
|
30
34
|
|
|
31
35
|
const contextNoResource = {
|
|
32
36
|
storage: {
|
|
@@ -38,10 +42,11 @@ const contextNoResource = {
|
|
|
38
42
|
}
|
|
39
43
|
},
|
|
40
44
|
};
|
|
41
|
-
export const
|
|
42
|
-
|
|
45
|
+
export const NoResource = Template.bind({});
|
|
46
|
+
NoResource.args = {
|
|
43
47
|
context: defaultAppContext(contextNoResource)
|
|
44
48
|
};
|
|
49
|
+
NoResource.parameters = parameters;
|
|
45
50
|
|
|
46
51
|
const contextSearchNotFoundResource = {
|
|
47
52
|
storage: {
|
|
@@ -54,10 +59,11 @@ const contextSearchNotFoundResource = {
|
|
|
54
59
|
},
|
|
55
60
|
search: "apache",
|
|
56
61
|
};
|
|
57
|
-
export const
|
|
58
|
-
|
|
62
|
+
export const NoFoundResource = Template.bind({});
|
|
63
|
+
NoFoundResource.args = {
|
|
59
64
|
context: defaultAppContext(contextSearchNotFoundResource)
|
|
60
65
|
};
|
|
66
|
+
NoFoundResource.parameters = parameters;
|
|
61
67
|
|
|
62
68
|
const contextSearchResources = {
|
|
63
69
|
storage: {
|
|
@@ -74,6 +80,7 @@ export const SearchResources = Template.bind({});
|
|
|
74
80
|
SearchResources.args = {
|
|
75
81
|
context: defaultAppContext(contextSearchResources)
|
|
76
82
|
};
|
|
83
|
+
SearchResources.parameters = parameters;
|
|
77
84
|
|
|
78
85
|
const contextResources = {
|
|
79
86
|
storage: {
|
|
@@ -89,7 +96,4 @@ export const SuggestedResources = Template.bind({});
|
|
|
89
96
|
SuggestedResources.args = {
|
|
90
97
|
context: defaultAppContext(contextResources)
|
|
91
98
|
};
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
99
|
+
SuggestedResources.parameters = parameters;
|
|
@@ -5,6 +5,7 @@ import PropTypes from "prop-types";
|
|
|
5
5
|
import {withRouter} from "react-router-dom";
|
|
6
6
|
import {withAppContext} from "../../contexts/AppContext";
|
|
7
7
|
import {Trans, withTranslation} from "react-i18next";
|
|
8
|
+
import Icon from "../../../react-extension/components/Common/Icons/Icon";
|
|
8
9
|
|
|
9
10
|
class LoginPage extends React.Component {
|
|
10
11
|
constructor(props) {
|
|
@@ -19,6 +20,7 @@ class LoginPage extends React.Component {
|
|
|
19
20
|
this.handleInputChange = this.handleInputChange.bind(this);
|
|
20
21
|
this.handleInputFocus = this.handleInputFocus.bind(this);
|
|
21
22
|
this.handleInputBlur = this.handleInputBlur.bind(this);
|
|
23
|
+
this.handleToggleObfuscate = this.handleToggleObfuscate.bind(this);
|
|
22
24
|
}
|
|
23
25
|
|
|
24
26
|
initState() {
|
|
@@ -28,7 +30,8 @@ class LoginPage extends React.Component {
|
|
|
28
30
|
passphrase: "",
|
|
29
31
|
rememberMe: false,
|
|
30
32
|
passphraseStyle: {},
|
|
31
|
-
securityTokenStyle: {}
|
|
33
|
+
securityTokenStyle: {},
|
|
34
|
+
isObfuscated: true, // True if the passphrase should not be visible
|
|
32
35
|
};
|
|
33
36
|
}
|
|
34
37
|
|
|
@@ -105,6 +108,20 @@ class LoginPage extends React.Component {
|
|
|
105
108
|
});
|
|
106
109
|
}
|
|
107
110
|
|
|
111
|
+
/**
|
|
112
|
+
* Whenever one wants to toggle the obfuscated mode
|
|
113
|
+
*/
|
|
114
|
+
handleToggleObfuscate() {
|
|
115
|
+
this.toggleObfuscate();
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Toggle the obfuscate mode of the passphrase view
|
|
120
|
+
*/
|
|
121
|
+
toggleObfuscate() {
|
|
122
|
+
this.setState({isObfuscated: !this.state.isObfuscated});
|
|
123
|
+
}
|
|
124
|
+
|
|
108
125
|
render() {
|
|
109
126
|
return (
|
|
110
127
|
<div className="quickaccess-login">
|
|
@@ -117,10 +134,29 @@ class LoginPage extends React.Component {
|
|
|
117
134
|
</div>
|
|
118
135
|
<div className="input text passphrase required">
|
|
119
136
|
<label htmlFor="passphrase"><Trans>Passphrase</Trans></label>
|
|
120
|
-
<
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
137
|
+
<div className="password with-token">
|
|
138
|
+
<input
|
|
139
|
+
type={this.state.isObfuscated ? "password" : "text"}
|
|
140
|
+
name="passphrase" placeholder={this.translate('passphrase')}
|
|
141
|
+
id="passphrase"
|
|
142
|
+
autoFocus
|
|
143
|
+
ref={this.passphraseInputRef}
|
|
144
|
+
value={this.state.passphrase}
|
|
145
|
+
onChange={this.handleInputChange}
|
|
146
|
+
onFocus={this.handleInputFocus}
|
|
147
|
+
onBlur={this.handleInputBlur}
|
|
148
|
+
disabled={this.state.processing}
|
|
149
|
+
style={this.state.passphraseStyle}
|
|
150
|
+
autoComplete="off"/>
|
|
151
|
+
<a
|
|
152
|
+
className={`password-view button-icon button button-toggle ${this.state.isObfuscated ? "" : "selected"}`}
|
|
153
|
+
role="button"
|
|
154
|
+
onClick={this.handleToggleObfuscate}>
|
|
155
|
+
<Icon name="eye-open"/>
|
|
156
|
+
<span className="visually-hidden">view</span>
|
|
157
|
+
</a>
|
|
158
|
+
<span className="security-token" style={this.state.securityTokenStyle}>{this.props.context.userSettings.getSecurityTokenCode()}</span>
|
|
159
|
+
</div>
|
|
124
160
|
{this.state.error &&
|
|
125
161
|
<div className="error-message">{this.state.error}</div>
|
|
126
162
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import {MemoryRouter, Route} from "react-router-dom";
|
|
3
|
-
import "../../../css/themes/default/ext_quickaccess.css";
|
|
4
3
|
import PropTypes from "prop-types";
|
|
5
4
|
import AppContext from "../../contexts/AppContext";
|
|
6
5
|
import LoginPage from "./LoginPage";
|
|
@@ -23,13 +22,12 @@ Template.propTypes = {
|
|
|
23
22
|
};
|
|
24
23
|
|
|
25
24
|
|
|
26
|
-
|
|
27
25
|
export const Initial = Template.bind({});
|
|
28
26
|
Initial.args = {
|
|
29
27
|
context: defaultAppContext(),
|
|
30
28
|
loginSuccessCallback: () => {},
|
|
31
29
|
canRememberMe: true,
|
|
32
30
|
};
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
Initial.parameters = {
|
|
32
|
+
css: "ext_quickaccess"
|
|
33
|
+
};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import {MemoryRouter, Route} from "react-router-dom";
|
|
3
|
-
import "../../../css/themes/default/ext_quickaccess.css";
|
|
4
3
|
import MoreFiltersPage from "./MoreFiltersPage";
|
|
5
4
|
|
|
6
5
|
export default {
|
|
@@ -14,10 +13,9 @@ const Template = () =>
|
|
|
14
13
|
</MemoryRouter>;
|
|
15
14
|
|
|
16
15
|
|
|
17
|
-
|
|
18
16
|
export const Initial = Template.bind({});
|
|
19
17
|
Initial.args = {
|
|
20
18
|
};
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
Initial.parameters = {
|
|
20
|
+
css: "ext_quickaccess"
|
|
21
|
+
};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import {MemoryRouter, Route} from "react-router-dom";
|
|
3
|
-
import "../../../css/themes/default/ext_quickaccess.css";
|
|
4
3
|
import PropTypes from "prop-types";
|
|
5
4
|
import AppContext from "../../contexts/AppContext";
|
|
6
5
|
import PassphraseDialog from "./PassphraseDialog";
|
|
@@ -22,7 +21,9 @@ Template.propTypes = {
|
|
|
22
21
|
context: PropTypes.object,
|
|
23
22
|
};
|
|
24
23
|
|
|
25
|
-
|
|
24
|
+
const parameters = {
|
|
25
|
+
css: "ext_quickaccess"
|
|
26
|
+
};
|
|
26
27
|
|
|
27
28
|
export const Initial = Template.bind({});
|
|
28
29
|
Initial.args = {
|
|
@@ -31,6 +32,7 @@ Initial.args = {
|
|
|
31
32
|
classname: "",
|
|
32
33
|
onComplete: () => {},
|
|
33
34
|
};
|
|
35
|
+
Initial.parameters = parameters;
|
|
34
36
|
|
|
35
37
|
const contextRequestError = {
|
|
36
38
|
port: {
|
|
@@ -44,6 +46,4 @@ ErrorPassphrase.args = {
|
|
|
44
46
|
classname: "",
|
|
45
47
|
onComplete: () => {},
|
|
46
48
|
};
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
49
|
+
ErrorPassphrase.parameters = parameters;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import {MemoryRouter, Route} from "react-router-dom";
|
|
3
|
-
import "../../../css/themes/default/ext_quickaccess.css";
|
|
4
3
|
import PropTypes from "prop-types";
|
|
5
4
|
import AppContext from "../../contexts/AppContext";
|
|
6
5
|
import SaveResource from "./SaveResource";
|
|
@@ -23,12 +22,15 @@ Template.propTypes = {
|
|
|
23
22
|
context: PropTypes.object,
|
|
24
23
|
};
|
|
25
24
|
|
|
26
|
-
|
|
25
|
+
const parameters = {
|
|
26
|
+
css: "ext_quickaccess"
|
|
27
|
+
};
|
|
27
28
|
|
|
28
29
|
export const Initial = Template.bind({});
|
|
29
30
|
Initial.args = {
|
|
30
31
|
context: defaultAppContext(),
|
|
31
32
|
};
|
|
33
|
+
Initial.parameters = parameters;
|
|
32
34
|
|
|
33
35
|
const contextMock = {
|
|
34
36
|
port: {
|
|
@@ -39,6 +41,4 @@ export const SaveResourceFromTab = Template.bind({});
|
|
|
39
41
|
SaveResourceFromTab.args = {
|
|
40
42
|
context: defaultAppContext(contextMock)
|
|
41
43
|
};
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
44
|
+
SaveResourceFromTab.parameters = parameters;
|
package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.stories.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import {MemoryRouter, Route} from "react-router-dom";
|
|
3
|
-
import "../../../css/themes/default/ext_quickaccess.css";
|
|
4
3
|
import PropTypes from "prop-types";
|
|
5
4
|
import AppContext from "../../contexts/AppContext";
|
|
6
5
|
import ResourceCreatePage from "./ResourceCreatePage";
|
|
@@ -22,12 +21,15 @@ Template.propTypes = {
|
|
|
22
21
|
context: PropTypes.object,
|
|
23
22
|
};
|
|
24
23
|
|
|
25
|
-
|
|
24
|
+
const parameters = {
|
|
25
|
+
css: "ext_quickaccess"
|
|
26
|
+
};
|
|
26
27
|
|
|
27
28
|
export const Initial = Template.bind({});
|
|
28
29
|
Initial.args = {
|
|
29
30
|
context: defaultAppContext(),
|
|
30
31
|
};
|
|
32
|
+
Initial.parameters = parameters;
|
|
31
33
|
|
|
32
34
|
const contextMock = {
|
|
33
35
|
port: {
|
|
@@ -38,6 +40,4 @@ export const CreateResourceFromTab = Template.bind({});
|
|
|
38
40
|
CreateResourceFromTab.args = {
|
|
39
41
|
context: defaultAppContext(contextMock)
|
|
40
42
|
};
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
CreateResourceFromTab.parameters = parameters;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import {MemoryRouter, Route} from "react-router-dom";
|
|
3
|
-
import "../../../css/themes/default/ext_quickaccess.css";
|
|
4
3
|
import PropTypes from "prop-types";
|
|
5
4
|
import ResourceViewPage from "./ResourceViewPage";
|
|
6
5
|
import AppContext from "../../contexts/AppContext";
|
|
@@ -27,4 +26,7 @@ export const ResourceView = Template.bind({});
|
|
|
27
26
|
ResourceView.args = {
|
|
28
27
|
context: defaultAppContext(),
|
|
29
28
|
initialEntries: ['/8e3874ae-4b40-590b-968a-418f704b9d9a']
|
|
30
|
-
};
|
|
29
|
+
};
|
|
30
|
+
ResourceView.parameters = {
|
|
31
|
+
css: "ext_quickaccess"
|
|
32
|
+
};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import {MemoryRouter, Route} from "react-router-dom";
|
|
3
|
-
import "../../../css/themes/default/ext_quickaccess.css";
|
|
4
3
|
import PropTypes from "prop-types";
|
|
5
4
|
import AppContext from "../../contexts/AppContext";
|
|
6
5
|
import Search from "./Search";
|
|
@@ -23,11 +22,10 @@ Template.propTypes = {
|
|
|
23
22
|
};
|
|
24
23
|
|
|
25
24
|
|
|
26
|
-
|
|
27
25
|
export const Initial = Template.bind({});
|
|
28
26
|
Initial.args = {
|
|
29
27
|
context: defaultAppContext(),
|
|
30
28
|
};
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
Initial.parameters = {
|
|
30
|
+
css: "ext_quickaccess"
|
|
31
|
+
};
|
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
import React, {useEffect} from "react";
|
|
16
16
|
import AskInFormMenuDisplay from "./AskInFormMenuDisplay";
|
|
17
17
|
import ReactDOM from "react-dom";
|
|
18
|
-
import "../../../css/themes/default/ext_in_form_cta.css";
|
|
19
18
|
import AppContext from "../../contexts/AppContext";
|
|
20
19
|
|
|
21
20
|
export default {
|
|
@@ -57,7 +56,9 @@ const Template = ({context}) =>
|
|
|
57
56
|
<InFormAnchor context={context}/>
|
|
58
57
|
</div>;
|
|
59
58
|
|
|
60
|
-
|
|
59
|
+
const parameters = {
|
|
60
|
+
css: "ext_in_form_cta"
|
|
61
|
+
};
|
|
61
62
|
|
|
62
63
|
export const Inactive = Template.bind({});
|
|
63
64
|
Inactive.args = {
|
|
@@ -67,6 +68,7 @@ Inactive.args = {
|
|
|
67
68
|
}
|
|
68
69
|
}
|
|
69
70
|
};
|
|
71
|
+
Inactive.parameters = parameters;
|
|
70
72
|
|
|
71
73
|
export const ActiveWithNoSuggestion = Template.bind({});
|
|
72
74
|
ActiveWithNoSuggestion.args = {
|
|
@@ -76,6 +78,7 @@ ActiveWithNoSuggestion.args = {
|
|
|
76
78
|
}
|
|
77
79
|
}
|
|
78
80
|
};
|
|
81
|
+
ActiveWithNoSuggestion.parameters = parameters;
|
|
79
82
|
|
|
80
83
|
export const ActiveWithOneSuggestion = Template.bind({});
|
|
81
84
|
ActiveWithOneSuggestion.args = {
|
|
@@ -85,3 +88,4 @@ ActiveWithOneSuggestion.args = {
|
|
|
85
88
|
}
|
|
86
89
|
}
|
|
87
90
|
};
|
|
91
|
+
ActiveWithOneSuggestion.parameters = parameters;
|
package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.test.stories.js
CHANGED
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
import React from "react";
|
|
16
16
|
import DisplayInFormMenu from "./DisplayInFormMenu";
|
|
17
17
|
import DisplayInFormMenuItem from "./DisplayInFormMenuItem";
|
|
18
|
-
import "../../../css/themes/default/ext_in_form_menu.css";
|
|
19
18
|
|
|
20
19
|
export default {
|
|
21
20
|
title: 'Passbolt/WebIntegration/InFormMenu',
|
|
@@ -186,6 +185,14 @@ const TemplateWithScroll = () => {
|
|
|
186
185
|
);
|
|
187
186
|
}
|
|
188
187
|
|
|
188
|
+
const parameters = {
|
|
189
|
+
css: "ext_in_form_menu"
|
|
190
|
+
};
|
|
191
|
+
|
|
189
192
|
export const AllMenuItems = TemplateAllItemsMenu.bind({});
|
|
190
193
|
export const NoScrollItems = TemplateNoScroll.bind({});
|
|
191
|
-
export const ScrollableMenu = TemplateWithScroll.bind({});
|
|
194
|
+
export const ScrollableMenu = TemplateWithScroll.bind({});
|
|
195
|
+
|
|
196
|
+
AllMenuItems.parameters = parameters;
|
|
197
|
+
NoScrollItems.parameters = parameters;
|
|
198
|
+
ScrollableMenu.parameters = parameters;
|
|
@@ -146,10 +146,10 @@ class InFormCallToActionField {
|
|
|
146
146
|
let y = 0;
|
|
147
147
|
let currentElement = this.field;
|
|
148
148
|
const {height, width} = this.field.getBoundingClientRect();
|
|
149
|
-
const {top: topBody, left: leftBody} = document.
|
|
149
|
+
const {top: topBody, left: leftBody} = document.documentElement.getBoundingClientRect();
|
|
150
150
|
// We loop to calculate the cumulated position of the field
|
|
151
151
|
// from its ancestors and itself differential offset / scroll position
|
|
152
|
-
while(
|
|
152
|
+
while(currentElement && !isNaN(currentElement.offsetLeft) && !isNaN(currentElement.offsetTop)) {
|
|
153
153
|
x += currentElement.offsetLeft - currentElement.scrollLeft;
|
|
154
154
|
y += currentElement.offsetTop - currentElement.scrollTop;
|
|
155
155
|
currentElement = currentElement.offsetParent;
|
|
@@ -157,7 +157,7 @@ class InFormCallToActionField {
|
|
|
157
157
|
// Then we add the body offset (notably in case of window scroll) + some local adjustments (margin / vertical aligment )
|
|
158
158
|
x = x + leftBody + width - 25;
|
|
159
159
|
y = y + topBody + Math.floor(height / 2) - 9; // Calculate the middle position of the input, 9 is the half of the iframe height
|
|
160
|
-
return {
|
|
160
|
+
return {top: y, left: x};
|
|
161
161
|
}
|
|
162
162
|
|
|
163
163
|
|
|
@@ -78,16 +78,22 @@ class InFormManager {
|
|
|
78
78
|
findAndSetUsernameAndPasswordFields() {
|
|
79
79
|
/* We find the username / passwords DOM callToActionFields.
|
|
80
80
|
* If it was previously found, we reuse the same InformUsernameField, otherwise we create one
|
|
81
|
+
* Else we clean and reset callToActionFields
|
|
81
82
|
*/
|
|
82
83
|
const newUsernameFields = InFormCallToActionField.findAll(InFormFieldSelector.USERNAME_FIELD_SELECTOR);
|
|
83
84
|
const newPasswordFields = InFormCallToActionField.findAll(InFormFieldSelector.PASSWORD_FIELD_SELECTOR);
|
|
84
85
|
const newFields = newUsernameFields.concat(newPasswordFields);
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
86
|
+
if (newFields.length > 0) {
|
|
87
|
+
this.callToActionFields = newFields.map(newField => {
|
|
88
|
+
const matchField = fieldToMatch => callToActionField => callToActionField.field === fieldToMatch;
|
|
89
|
+
const existingField = this.callToActionFields.find(matchField(newField));
|
|
90
|
+
const fieldType = newField.matches(InFormFieldSelector.USERNAME_FIELD_SELECTOR) ? 'username' : 'password';
|
|
91
|
+
return existingField || new InFormCallToActionField(newField, fieldType);
|
|
92
|
+
});
|
|
93
|
+
} else {
|
|
94
|
+
this.clean();
|
|
95
|
+
this.callToActionFields = [];
|
|
96
|
+
}
|
|
91
97
|
}
|
|
92
98
|
|
|
93
99
|
/**
|
|
@@ -97,7 +97,7 @@ class InFormMenuField {
|
|
|
97
97
|
let y = 0;
|
|
98
98
|
let currentElement = this.field;
|
|
99
99
|
const {height, width} = this.field.getBoundingClientRect();
|
|
100
|
-
const {top: topBody, left: leftBody} = document.
|
|
100
|
+
const {top: topBody, left: leftBody} = document.documentElement.getBoundingClientRect();
|
|
101
101
|
// We loop to calculate the cumulated position of the field
|
|
102
102
|
// from its ancestors and itself differential offset / scroll position
|
|
103
103
|
while( currentElement && !isNaN( currentElement.offsetLeft ) && !isNaN( currentElement.offsetTop ) ) {
|
|
@@ -44,9 +44,10 @@ export function detectBrowserName() {
|
|
|
44
44
|
} else if (userAgent.indexOf("trident") > -1) {
|
|
45
45
|
browserName = BROWSER_NAMES.INTERNET_EXPLORER;
|
|
46
46
|
// "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; Zoom 3.6.0; wbx 1.0.0; rv:11.0) like Gecko"
|
|
47
|
-
} else if (userAgent.indexOf("
|
|
47
|
+
} else if (userAgent.indexOf("edg") > -1) {
|
|
48
48
|
browserName = BROWSER_NAMES.EDGE;
|
|
49
49
|
// "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299"
|
|
50
|
+
// 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.55 Safari/537.36 Edg/96.0.1054.34'
|
|
50
51
|
} else if (userAgent.indexOf("chrome") > -1) {
|
|
51
52
|
browserName = BROWSER_NAMES.CHROME;
|
|
52
53
|
// "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/66.0.3359.181 Chrome/66.0.3359.181 Safari/537.36"
|
|
Binary file
|
|
Binary file
|