passbolt-styleguide 3.8.4 → 3.9.0-alpha2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/css/help.min.css +3 -3
- package/build/css/public.min.css +3 -3
- 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 +3 -3
- package/build/css/themes/default/api_reports.min.css +3 -3
- package/build/css/themes/default/api_webinstaller.min.css +3 -3
- package/build/css/themes/default/ext_app.min.css +3 -3
- 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 +3 -3
- package/build/css/themes/midgar/api_main.min.css +3 -3
- package/build/css/themes/midgar/api_reports.min.css +3 -3
- package/build/css/themes/midgar/ext_app.min.css +3 -3
- 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/css/themes/solarized_dark/api_authentication.min.css +1 -1
- package/build/css/themes/solarized_dark/api_main.min.css +1 -1
- package/build/css/themes/solarized_dark/api_reports.min.css +1 -1
- package/build/css/themes/solarized_dark/ext_app.min.css +1 -1
- package/build/css/themes/solarized_dark/ext_authentication.min.css +1 -1
- package/build/css/themes/solarized_dark/ext_in_form_cta.min.css +1 -1
- package/build/css/themes/solarized_dark/ext_in_form_menu.min.css +1 -1
- package/build/css/themes/solarized_dark/ext_quickaccess.min.css +1 -1
- package/build/css/themes/solarized_light/api_authentication.min.css +1 -1
- package/build/css/themes/solarized_light/api_main.min.css +1 -1
- package/build/css/themes/solarized_light/api_reports.min.css +1 -1
- package/build/css/themes/solarized_light/ext_app.min.css +1 -1
- package/build/css/themes/solarized_light/ext_authentication.min.css +1 -1
- package/build/css/themes/solarized_light/ext_in_form_cta.min.css +1 -1
- package/build/css/themes/solarized_light/ext_in_form_menu.min.css +1 -1
- package/build/css/themes/solarized_light/ext_quickaccess.min.css +1 -1
- package/build/js/dist/api-account-recovery.js +1 -1
- package/build/js/dist/api-app.js +1 -1
- package/build/js/dist/api-app.js.LICENSE.txt +75 -5
- package/build/js/dist/api-feedback.js +2 -0
- package/build/js/dist/api-feedback.js.LICENSE.txt +45 -0
- 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 +19 -9
- package/build/js/dist/src/locales/de-DE/common.json +995 -0
- package/build/js/dist/src/locales/en-UK/common.json +1061 -0
- package/build/js/dist/src/locales/es-ES/common.json +995 -0
- package/build/js/dist/src/locales/fr-FR/common.json +995 -0
- package/build/js/dist/src/locales/ja-JP/common.json +980 -0
- package/build/js/dist/src/locales/lt-LT/common.json +1025 -0
- package/build/js/dist/src/locales/nl-NL/common.json +995 -0
- package/build/js/dist/src/locales/pl-PL/common.json +1025 -0
- package/build/js/dist/src/locales/sv-SE/common.json +995 -0
- package/package.json +18 -1
- package/src/img/controls/attention.svg +1 -0
- package/src/locales/en-UK/common.json +80 -16
- package/src/react-extension/ApiApp.js +17 -5
- package/src/react-extension/ApiFeedback.entry.js +24 -0
- package/src/react-extension/ExtApp.js +12 -5
- package/src/react-extension/ExtAuthenticationLogin.js +17 -15
- package/src/react-extension/ExtAuthenticationLogin.test.stories.js +59 -0
- package/src/react-extension/ExtBootstrapApp.js +1 -0
- package/src/react-extension/components/Administration/AdministrationWorkspace.js +24 -0
- package/src/react-extension/components/Administration/AdministrationWorkspace.test.data.js +3 -3
- package/src/react-extension/components/Administration/AdministrationWorkspace.test.js +13 -1
- package/src/react-extension/components/Administration/AdministrationWorkspace.test.page.js +7 -0
- package/src/react-extension/components/Administration/ConfirmDeleteSsoSettingsDialog/ConfirmDeleteSsoSettingsDialog.js +101 -0
- package/src/react-extension/components/Administration/ConfirmDeleteSsoSettingsDialog/ConfirmDeleteSsoSettingsDialog.test.data.js +23 -0
- package/src/react-extension/components/Administration/ConfirmDeleteSsoSettingsDialog/ConfirmDeleteSsoSettingsDialog.test.stories.js +27 -0
- package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.js +1 -1
- package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.js +78 -2
- package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.data.js +3 -1
- package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.js +60 -0
- package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.page.js +23 -4
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationInternationalisationActions/DisplayAdministrationInternationalisationActions.js +125 -0
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationMfaActions/DisplayAdministrationMfaActions.js +131 -0
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationSelfRegistrationActions/DisplayAdministrationSelfRegistrationActions.js +103 -0
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationSsoActions/DisplayAdministrationSsoActions.js +91 -0
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationSubscriptionActions/DisplayAdministrationSubscriptionActions.js +85 -0
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationUserDirectoryActions/DisplayAdministrationUserDirectoryActions.js +228 -0
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.js +4 -0
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.test.js +9 -0
- package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.js +3 -3
- package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.test.data.js +14 -0
- package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.test.page.js +0 -17
- package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.js +18 -115
- package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.data.js +11 -13
- package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.js +38 -43
- package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.page.js +47 -10
- package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.stories.js +10 -43
- package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.js +82 -367
- package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.data.js +128 -42
- package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.js +75 -121
- package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.page.js +46 -16
- package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.stories.js +18 -14
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmDeletionSelfRegistrationSettings/ConfirmDeletionSelfRegistrationSettings.js +103 -0
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmDeletionSelfRegistrationSettings/ConfirmDeletionSelfRegistrationSettings.test.js +53 -0
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmDeletionSelfRegistrationSettings/ConfirmDeletionSelfRegistrationSettings.test.page.js +81 -0
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmDeletionSelfRegistrationSettings/ConfirmDeletionSelfRegistrationSettings.test.stories.js +34 -0
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmSaveSelfRegistrationSettings/ConfirmSaveSelfRegistrationSettings.js +125 -0
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmSaveSelfRegistrationSettings/ConfirmSaveSelfRegistrationSettings.test.data.js +63 -0
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmSaveSelfRegistrationSettings/ConfirmSaveSelfRegistrationSettings.test.js +54 -0
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmSaveSelfRegistrationSettings/ConfirmSaveSelfRegistrationSettings.test.page.js +88 -0
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmSaveSelfRegistrationSettings/ConfirmSaveSelfRegistrationSettings.test.stories.js +35 -0
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/DisplaySelfRegistrationAdministration.js +381 -0
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/DisplaySelfRegistrationAdministration.test.data.js +69 -0
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/DisplaySelfRegistrationAdministration.test.js +332 -0
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/DisplaySelfRegistrationAdministration.test.page.js +247 -0
- package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/DisplaySelfRegistrationAdministration.test.stories.js +72 -0
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.js +19 -19
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.data.js +1717 -1729
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.js +11 -3
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.page.js +4 -1
- package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.stories.js +11 -1784
- package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.js +41 -140
- package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.data.js +15 -3
- package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.js +22 -49
- package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.page.js +19 -11
- package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.stories.js +9 -3
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.js +5 -6
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.data.js +1717 -1728
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.js +11 -3
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.page.js +4 -1
- package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.stories.js +11 -1784
- package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.js +362 -835
- package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.data.js +427 -418
- package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.js +134 -175
- package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.page.js +108 -11
- package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.stories.js +17 -25
- package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.js +4 -2
- package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.js +3 -3
- package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.js +1 -1
- package/src/react-extension/components/Administration/ManageSmtpAdministrationSettings/ManageSmtpAdministrationSettings.js +32 -7
- package/src/react-extension/components/Administration/ManageSmtpAdministrationSettings/ManageSmtpAdministrationSettings.test.data.js +0 -3
- package/src/react-extension/components/Administration/ManageSmtpAdministrationSettings/ManageSmtpAdministrationSettings.test.js +145 -1
- package/src/react-extension/components/Administration/ManageSmtpAdministrationSettings/ManageSmtpAdministrationSettings.test.page.js +52 -1
- package/src/react-extension/components/Administration/ManageSmtpAdministrationSettings/ManageSmtpAdministrationSettings.test.stories.js +15 -0
- package/src/react-extension/components/Administration/ManageSsoSettings/ManageSsoSettings.js +340 -0
- package/src/react-extension/components/Administration/ManageSsoSettings/ManageSsoSettings.test.data.js +56 -0
- package/src/react-extension/components/Administration/ManageSsoSettings/ManageSsoSettings.test.js +223 -0
- package/src/react-extension/components/Administration/ManageSsoSettings/ManageSsoSettings.test.page.js +235 -0
- package/src/react-extension/components/Administration/ManageSsoSettings/ManageSsoSettings.test.stories.js +55 -0
- package/src/react-extension/components/Administration/ManageSsoSettings/SsoProviders.data.js +34 -0
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/GenerateOrganizationKey.js +12 -3
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/GenerateOrganizationKey.test.js +27 -0
- package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.test.page.js +8 -0
- package/src/react-extension/components/Administration/TestSsoSettingsDialog/TestSsoSettingsDialog.js +197 -0
- package/src/react-extension/components/Administration/TestSsoSettingsDialog/TestSsoSettingsDialog.test.data.js +37 -0
- package/src/react-extension/components/Administration/TestSsoSettingsDialog/TestSsoSettingsDialog.test.js +187 -0
- package/src/react-extension/components/Administration/TestSsoSettingsDialog/TestSsoSettingsDialog.test.page.js +120 -0
- package/src/react-extension/components/Administration/TestSsoSettingsDialog/TestSsoSettingsDialog.test.stories.js +31 -0
- package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.js +9 -5
- package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.data.js +4 -0
- package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.js +11 -42
- package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.page.js +1 -0
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.js +9 -5
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.data.js +4 -0
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.js +16 -2
- package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.page.js +17 -1
- package/src/react-extension/components/AuthenticationLogin/Login/Login.js +159 -61
- package/src/react-extension/components/AuthenticationLogin/Login/Login.test.data.js +14 -11
- package/src/react-extension/components/AuthenticationLogin/Login/Login.test.js +79 -0
- package/src/react-extension/components/AuthenticationLogin/Login/Login.test.page.js +16 -0
- package/src/react-extension/components/AuthenticationLogin/OrchestrateLogin/OrchestrateLoginBoxMain.js +2 -0
- package/src/react-extension/components/AuthenticationSetup/SetupAuthentication/SetupAuthentication.js +4 -0
- package/src/react-extension/components/Common/Error/ApiError/ApiError.js +119 -0
- package/src/react-extension/components/Common/Error/ApiError/ApiError.test.js +43 -0
- package/src/react-extension/components/Common/Error/ApiError/ApiError.test.page.js +108 -0
- package/src/react-extension/components/Common/Error/ApiError/ApiError.test.stories.js +39 -0
- package/src/react-extension/components/Common/Inputs/Autocomplete/Autocomplete.test.js +12 -0
- package/src/react-extension/components/Common/Inputs/Autocomplete/AutocompleteItem.js +2 -2
- package/src/react-extension/components/Common/Legacy/HandleLegacyAppjs.js +1 -1
- package/src/react-extension/components/Common/Navigation/Header/Logo.js +13 -1
- package/src/react-extension/components/Resource/CreateResource/CreateResource.js +103 -30
- package/src/react-extension/components/Resource/CreateResource/CreateResource.test.js +44 -10
- package/src/react-extension/components/Resource/CreateResource/CreateResource.test.page.js +35 -7
- package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.js +3 -3
- package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesListContextualMenu.js +6 -5
- package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMenu.js +5 -4
- package/src/react-extension/components/Resource/EditResource/EditResource.js +95 -23
- package/src/react-extension/components/Resource/EditResource/EditResource.test.js +45 -13
- package/src/react-extension/components/Resource/EditResource/EditResource.test.page.js +35 -2
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetails.js +2 -1
- package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsInformation.js +3 -2
- package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.js +23 -2
- package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.js +8 -0
- package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.page.js +26 -2
- package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.js +22 -1
- package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.js +8 -0
- package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.page.js +25 -2
- package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetails.js +2 -1
- package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/GenerateResourcePassword.js +2 -1
- package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.js +14 -1
- package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.js +8 -0
- package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.page.js +12 -0
- package/src/react-extension/components/User/CreateUser/CreateUser.js +42 -3
- package/src/react-extension/components/User/CreateUser/CreateUser.test.js +16 -0
- package/src/react-extension/components/User/CreateUser/CreateUser.test.page.js +26 -0
- package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.js +2 -1
- package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.js +5 -5
- package/src/react-extension/components/User/EditUser/EditUser.js +29 -2
- package/src/react-extension/components/User/EditUser/EditUser.test.js +12 -0
- package/src/react-extension/components/User/EditUser/EditUser.test.page.js +26 -0
- package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.js +2 -1
- package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.test.data.js +1332 -1331
- package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.js +2 -1
- package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.js +19 -1
- package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.js +9 -0
- package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.page.js +12 -0
- package/src/react-extension/components/UserGroup/DisplayUserGroupDetails/DisplayUserGroupDetails.js +2 -1
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.js +16 -1
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.js +8 -0
- package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.page.js +26 -1
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.js +1 -1
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.js +6 -4
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.data.js +4 -1
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.js +21 -11
- package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.page.js +10 -1
- package/src/react-extension/contexts/AdminSmtpSettingsContext.js +2 -0
- package/src/react-extension/contexts/AdminSmtpSettingsContext.test.data.js +13 -0
- package/src/react-extension/contexts/AdminSmtpSettingsContext.test.js +3 -1
- package/src/react-extension/contexts/AdminSsoContext.js +558 -0
- package/src/react-extension/contexts/AdminSsoContext.test.data.js +51 -0
- package/src/react-extension/contexts/Administration/AdministrationInternationalizationContext/AdministrationInternationalizationContext.js +194 -0
- package/src/react-extension/contexts/Administration/AdministrationInternationalizationContext/AdministrationInternationalizationContext.test.js +111 -0
- package/src/react-extension/contexts/Administration/AdministrationMfa/AdministrationMfaContext.js +265 -0
- package/src/react-extension/contexts/Administration/AdministrationMfa/AdministrationMfaContext.test.js +178 -0
- package/src/react-extension/contexts/Administration/AdministrationSelfRegistration/AdministrationSelfRegistrationContext.js +453 -0
- package/src/react-extension/contexts/Administration/AdministrationSelfRegistration/AdministrationSelfRegistrationContext.test.js +218 -0
- package/src/react-extension/contexts/Administration/AdministrationSubscription/AdministrationSubscription.js +168 -0
- package/src/react-extension/contexts/Administration/AdministrationSubscription/AdministrationSubscription.test.js +73 -0
- package/src/react-extension/contexts/Administration/AdministrationUserDirectory/AdministrationUserDirectoryContext.js +353 -0
- package/src/react-extension/contexts/Administration/AdministrationUserDirectory/AdministrationUserDirectoryContext.test.js +220 -0
- package/src/react-extension/contexts/AdministrationWorkspaceContext.js +17 -178
- package/src/react-extension/contexts/AdministrationWorkspaceContext.test.js +0 -26
- package/src/react-extension/contexts/ApiAppContext.test.data.js +4 -2
- package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.js +54 -4
- package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.test.data.js +10 -1
- package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.test.js +92 -14
- package/src/react-extension/contexts/Authentication/AuthenticationSetupContext.js +1 -0
- package/src/react-extension/contexts/NavigationContext.js +34 -0
- package/src/react-extension/contexts/SsoContext.js +151 -0
- package/src/react-extension/contexts/SsoContext.test.data.js +36 -0
- package/src/react-extension/contexts/SsoContext.test.js +104 -0
- package/src/react-extension/lib/Domain/DomainUtil.js +70 -0
- package/src/react-extension/lib/Domain/DomainUtil.test.js +129 -0
- package/src/react-extension/lib/Domain/Domains.js +6113 -0
- package/src/react-extension/lib/Error/InputValidator.js +24 -0
- package/src/react-extension/lib/Map/DynamicRef.js +49 -0
- package/src/react-extension/lib/Map/DynamicRef.test.js +56 -0
- package/src/react-extension/lib/Map/MapObject.js +48 -0
- package/src/react-extension/lib/Map/MapObject.test.js +43 -0
- package/src/react-quickaccess/ExtQuickAccess.js +7 -4
- package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.js +3 -1
- package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.test.data.js +4 -0
- package/src/react-quickaccess/components/LoginPage/LoginPage.js +115 -4
- package/src/react-quickaccess/components/LoginPage/LoginPage.test.data.js +10 -0
- package/src/react-quickaccess/components/LoginPage/LoginPage.test.stories.js +30 -3
- package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.js +33 -1
- package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.data.js +25 -0
- package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.js +60 -0
- package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.page.js +60 -0
- package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.js +33 -1
- package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.js +36 -7
- package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.js +3 -2
- package/src/react-quickaccess/contexts/SsoContext.js +150 -0
- package/src/react-web-integration/lib/InForm/InFormFieldSelector.js +5 -0
- package/src/shared/constants/inputs.const.js +30 -0
- package/src/shared/lib/Browser/clipBoard.js +45 -0
- package/src/shared/lib/Browser/clipBoard.test.js +59 -0
- package/src/shared/models/Mfa/Duo.js +36 -0
- package/src/shared/models/Mfa/Duo.test.js +59 -0
- package/src/shared/models/Mfa/MfaDTO.js +51 -0
- package/src/shared/models/Mfa/MfaDTO.test.js +48 -0
- package/src/shared/models/Mfa/MfaEnumeration.js +17 -0
- package/src/shared/models/Mfa/MfaModel.js +48 -0
- package/src/shared/models/Mfa/MfaModel.test.js +37 -0
- package/src/shared/models/Mfa/Yubikey.js +35 -0
- package/src/shared/models/Mfa/Yubikey.test.js +47 -0
- package/src/shared/models/selfRegistration/SelfRegistrationDomainsViewModel.js +55 -0
- package/src/shared/models/selfRegistration/SelfRegistrationDomainsViewModel.test.js +37 -0
- package/src/shared/models/selfRegistration/SelfRegistrationDto.js +42 -0
- package/src/shared/models/selfRegistration/SelfRegistrationDto.test.js +48 -0
- package/src/shared/models/selfRegistration/SelfRegistrationEnumeration.js +17 -0
- package/src/shared/models/subscription/SubscriptionDto.js +34 -0
- package/src/shared/models/subscription/SubscriptionDto.test.js +31 -0
- package/src/shared/models/subscription/SubscriptionModel.js +33 -0
- package/src/shared/models/subscription/SubscriptionModel.test.js +48 -0
- package/src/shared/models/user/UserModel.js +37 -0
- package/src/shared/models/userDirectory/UserDirectoryDTO.js +57 -0
- package/src/shared/models/userDirectory/UserDirectoryDTO.test.js +40 -0
- package/src/shared/models/userDirectory/UserDirectoryEnum.js +22 -0
- package/src/shared/models/userDirectory/UserDirectoryModel.js +64 -0
- package/src/shared/models/userDirectory/UserDirectoryModel.test.js +37 -0
- package/src/shared/services/actions/subscription/SubscriptionActionService.js +69 -0
- package/src/shared/services/actions/subscription/SubscriptionActionService.test.js +73 -0
- package/src/shared/services/api/Internationalisation/InternationalisationService.js +46 -0
- package/src/shared/services/api/Mfa/MfaService.js +54 -0
- package/src/shared/services/{accountRecovery → api/accountRecovery}/ApiAppAccountRecoveryUserService.js +2 -2
- package/src/shared/services/{accountRecovery → api/accountRecovery}/ExtAppAccountRecoveryUserService.js +0 -0
- package/src/shared/services/api/secrets/pownedService.js +64 -0
- package/src/shared/services/api/secrets/pownedService.test.js +63 -0
- package/src/shared/services/api/selfRegistration/selfRegistrationService.js +64 -0
- package/src/shared/services/api/user/UserService.js +45 -0
- package/src/shared/services/api/userDirectory/UserDirectoryService.js +108 -0
- package/src/shared/services/forms/Mfa/MfaFormService.js +195 -0
- package/src/shared/services/forms/Mfa/MfaFormService.test.js +341 -0
- package/src/shared/services/forms/selfRegistration/SelfRegistrationFormService.js +92 -0
- package/src/shared/services/forms/selfRegistration/SelfRegistrationFormService.test.js +101 -0
- package/src/shared/services/forms/userDirectory/UserDirectoryFormService.js +118 -0
- package/src/shared/services/forms/userDirectory/UserDirectoryFormService.test.js +128 -0
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationWorkspaceActions.js +0 -205
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationWorkspaceActions.test.data.js +0 -37
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationWorkspaceActions.test.js +0 -197
- package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationWorkspaceActions.test.page.js +0 -133
package/build/js/dist/api-app.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! For license information please see api-app.js.LICENSE.txt */
|
|
2
|
-
(()=>{"use strict";var e,t,n,s={361:(e,t,n)=>{var s=n(7294),r=n(3935),a=n(5697),i=n.n(a),o=n(2045);function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},l.apply(this,arguments)}const c=s.createContext({feedbacks:[],displaySuccess:()=>{},displayError:()=>{},remove:()=>{}});class d extends s.Component{constructor(e){super(e),this.state=this.defaultState}get defaultState(){return{feedbacks:[],displaySuccess:this.displaySuccess.bind(this),displayError:this.displayError.bind(this),remove:this.remove.bind(this)}}async displaySuccess(e){await this.setState({feedbacks:[...this.state.feedbacks,{id:(0,o.Z)(),type:"success",message:e}]})}async displayError(e){await this.setState({feedbacks:[...this.state.feedbacks,{id:(0,o.Z)(),type:"error",message:e}]})}async remove(e){await this.setState({feedbacks:this.state.feedbacks.filter((t=>e.id!==t.id))})}render(){return s.createElement(c.Provider,{value:this.state},this.props.children)}}function h(e){return class extends s.Component{render(){return s.createElement(c.Consumer,null,(t=>s.createElement(e,l({actionFeedbackContext:t},this.props))))}}}function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},u.apply(this,arguments)}d.displayName="ActionFeedbackContextProvider",d.propTypes={children:i().any};const p=s.createContext({dialogs:[],open:()=>{},close:()=>{}});class m extends s.Component{constructor(e){super(e),this.state=this.defaultState}get defaultState(){return{dialogs:[],open:(e,t)=>{const n=(0,o.Z)();return this.setState({dialogs:[...this.state.dialogs,{key:n,Dialog:e,DialogProps:t}]}),n},close:e=>this.setState({dialogs:this.state.dialogs.filter((t=>e!==t.key))})}}render(){return s.createElement(p.Provider,{value:this.state},this.props.children)}}function g(e){return class extends s.Component{render(){return s.createElement(p.Consumer,null,(t=>s.createElement(e,u({dialogContext:t},this.props))))}}}function y(){return y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},y.apply(this,arguments)}m.displayName="DialogContextProvider",m.propTypes={children:i().any};const b=s.createContext({ContextualMenu:null,show:()=>{},hide:()=>{}});class v extends s.Component{constructor(e){super(e),this.state=this.defaultState}get defaultState(){return{contextualMenus:[],show:(e,t)=>this.setState({contextualMenus:[...this.state.contextualMenus,{ContextualMenuComponent:e,componentProps:t}]}),hide:e=>this.setState({contextualMenus:this.state.contextualMenus.filter(((t,n)=>n!==e))})}}render(){return s.createElement(b.Provider,{value:this.state},this.props.children)}}v.displayName="ContextualMenuContextProvider",v.propTypes={children:i().any};var f=n(9116),k=n(570);class E extends s.Component{static get DEFAULT_WAIT_TO_CLOSE_TIME_IN_MS(){return 500}constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks()}get defaultState(){return{shouldRender:!0,isPersisted:!1,timeoutId:null}}componentDidMount(){this.displayWithTimer(this.props.displayTimeInMs)}componentDidUpdate(e){const t=e&&e.feedback.id!==this.props.feedback.id,n=e&&this.props.displayTimeInMs&&e.displayTimeInMs!==this.props.displayTimeInMs;t?(this.setState({shouldRender:!0}),this.displayWithTimer(this.props.displayTimeInMs)):n&&this.updateTimer(this.props.displayTimeInMs)}componentWillUnmount(){this.state.timeoutId&&clearTimeout(this.state.timeoutId)}bindCallbacks(){this.persist=this.persist.bind(this),this.displayWithTimer=this.displayWithTimer.bind(this),this.close=this.close.bind(this)}displayWithTimer(e){this.state.timeoutId&&clearTimeout(this.state.timeoutId);const t=setTimeout(this.close,e),n=Date.now();this.setState({timeoutId:t,time:n})}updateTimer(e){const t=e-(Date.now()-this.state.time);t>0?this.displayWithTimer(t):(clearTimeout(this.state.timeoutId),this.close())}persist(){this.state.timeoutId&&!this.state.isPersisted&&(clearTimeout(this.state.timeoutId),this.setState({isPersisted:!0}))}close(){this.setState({shouldRender:!1}),setTimeout(this.props.onClose,E.DEFAULT_WAIT_TO_CLOSE_TIME_IN_MS)}render(){return s.createElement(s.Fragment,null,s.createElement("div",{className:"notification",onMouseOver:this.persist,onMouseLeave:this.displayWithTimer,onClick:this.close},s.createElement("div",{className:`message animated ${this.state.shouldRender?"fadeInUp":"fadeOutUp"} ${this.props.feedback.type}`},s.createElement("span",{className:"content"},s.createElement("strong",null,"success"===this.props.feedback.type&&s.createElement(s.Fragment,null,s.createElement(f.c,null,"Success"),": "),"error"===this.props.feedback.type&&s.createElement(s.Fragment,null,s.createElement(f.c,null,"Error"),": ")),this.props.feedback.message))))}}E.propTypes={feedback:i().object,onClose:i().func,displayTimeInMs:i().number};const C=(0,k.Z)("common")(E);class w extends s.Component{constructor(e){super(e),this.bindCallbacks()}static get DEFAULT_DISPLAY_TIME_IN_MS(){return 5e3}static get DEFAULT_DISPLAY_MIN_TIME_IN_MS(){return 1200}bindCallbacks(){this.close=this.close.bind(this)}get feedbackToDisplay(){return this.props.actionFeedbackContext.feedbacks[0]}get length(){return this.props.actionFeedbackContext.feedbacks.length}get hasFeedbacks(){return this.length>0}async close(e){await this.props.actionFeedbackContext.remove(e)}render(){const e=this.length>1?w.DEFAULT_DISPLAY_MIN_TIME_IN_MS:w.DEFAULT_DISPLAY_TIME_IN_MS;return s.createElement(s.Fragment,null,this.hasFeedbacks&&s.createElement("div",{className:"notification-container"},s.createElement(C,{feedback:this.feedbackToDisplay,onClose:()=>this.close(this.feedbackToDisplay),displayTimeInMs:e})))}}w.propTypes={actionFeedbackContext:i().any};const S=h(w);var x=n(3727),N=n(6550);function L(){return L=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},L.apply(this,arguments)}const R=s.createContext({user:null,users:null,roles:null,rememberMeOptions:{},resources:null,resource:null,shareResources:null,selectedResources:null,selectedUser:null,folders:null,resourceCommentId:null,mustRefreshComments:!1,siteSettings:null,userSettings:null,onCheckIsAuthenticatedRequested:null});function I(e){return class extends s.Component{render(){return s.createElement(R.Consumer,null,(t=>s.createElement(e,L({context:t},this.props))))}}}const A=R;function T(){return T=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},T.apply(this,arguments)}const D=s.createContext({counter:[],add:()=>{},remove:()=>{}});class U extends s.Component{constructor(e){super(e),this.state=this.defaultState}get defaultState(){return{counter:0,add:()=>{this.setState({counter:this.state.counter+1})},remove:()=>{this.setState({counter:Math.min(this.state.counter-1,0)})}}}render(){return s.createElement(D.Provider,{value:this.state},this.props.children)}}U.propTypes={children:i().any};class _ extends Error{constructor(e,t){super(e),this.name="PassboltApiFetchError",this.data=t||{}}}const M=_;class P extends Error{constructor(){super("An internal error occurred. The server response could not be parsed. Please contact your administrator."),this.name="PassboltBadResponseError"}}const j=P;class W extends Error{constructor(e){super(e=e||"The service is unavailable"),this.name="PassboltServiceUnavailableError"}}const z=W;class q{constructor(e){if(this.options=e,!this.options.getBaseUrl())throw new TypeError("ApiClient constructor error: baseUrl is required.");if(!this.options.getResourceName())throw new TypeError("ApiClient constructor error: resourceName is required.");try{let e=this.options.getBaseUrl().toString();e.endsWith("/")&&(e=e.slice(0,-1)),this.baseUrl=`${e}/${this.options.getResourceName()}`,this.baseUrl=new URL(this.baseUrl)}catch(e){throw new TypeError("ApiClient constructor error: b.")}this.apiVersion="api-version=v2"}getDefaultHeaders(){return{Accept:"application/json","content-type":"application/json"}}buildFetchOptions(){return{credentials:"include",headers:{...this.getDefaultHeaders(),...this.options.getHeaders()}}}async get(e,t){this.assertValidId(e);const n=this.buildUrl(`${this.baseUrl}/${e}`,t||{});return this.fetchAndHandleResponse("GET",n)}async delete(e,t,n,s){let r;this.assertValidId(e),void 0===s&&(s=!1),r=s?this.buildUrl(`${this.baseUrl}/${e}/dry-run`,n||{}):this.buildUrl(`${this.baseUrl}/${e}`,n||{});let a=null;return t&&(a=this.buildBody(t)),this.fetchAndHandleResponse("DELETE",r,a)}async findAll(e){const t=this.buildUrl(this.baseUrl.toString(),e||{});return await this.fetchAndHandleResponse("GET",t)}async create(e,t){const n=this.buildUrl(this.baseUrl.toString(),t||{}),s=this.buildBody(e);return this.fetchAndHandleResponse("POST",n,s)}async update(e,t,n,s){let r;this.assertValidId(e),void 0===s&&(s=!1),r=s?this.buildUrl(`${this.baseUrl}/${e}/dry-run`,n||{}):this.buildUrl(`${this.baseUrl}/${e}`,n||{});let a=null;return t&&(a=this.buildBody(t)),this.fetchAndHandleResponse("PUT",r,a)}assertValidId(e){if(!e)throw new TypeError("ApiClient.assertValidId error: id cannot be empty");if("string"!=typeof e)throw new TypeError("ApiClient.assertValidId error: id should be a string")}assertMethod(e){"string"!=typeof e&&new TypeError("ApiClient.assertValidMethod method should be a string."),["GET","POST","PUT","DELETE"].indexOf(e)<0&&new TypeError(`ApiClient.assertValidMethod error: method ${e} is not supported.`)}assertUrl(e){if(!e)throw new TypeError("ApliClient.assertUrl error: url is required.");if(!(e instanceof URL))throw new TypeError("ApliClient.assertUrl error: url should be a valid URL object.")}assertBody(e){"string"!=typeof e&&new TypeError("ApiClient.assertBody error: body should be a string.")}buildBody(e){return JSON.stringify(e)}buildUrl(e,t){if("string"!=typeof e)throw new TypeError("ApiClient.buildUrl error: url should be a string.");const n=new URL(`${e}.json?${this.apiVersion}`);t=t||{};for(const[e,s]of Object.entries(t)){if("string"!=typeof e)throw new TypeError("ApiClient.buildUrl error: urlOptions key should be a string.");if("string"==typeof s)n.searchParams.append(e,s);else{if(!Array.isArray(s))throw new TypeError("ApiClient.buildUrl error: urlOptions value should be a string or array.");s.forEach((t=>{n.searchParams.append(e,t)}))}}return n}async fetchAndHandleResponse(e,t,n,s){let r,a;this.assertUrl(t),this.assertMethod(e),n&&this.assertBody(n);const i={...this.buildFetchOptions(),...s};i.method=e,n&&(i.body=n);try{r=await fetch(t.toString(),i)}catch(e){throw new z(e.message)}try{a=await r.json()}catch(e){throw new j}if(!r.ok){const e=a.header.message;throw new M(e,{code:r.status,body:a.body})}return a}}class F extends s.Component{getClassName(){let e=`svg-icon ${this.props.name}`;return this.props.big&&(e+=" icon-only"),this.props.baseline&&(e+=" baseline"),this.props.dim&&(e+=" dim"),e}render(){return s.createElement("span",{className:this.getClassName(),onClick:this.props.onClick},"2-columns"===this.props.name&&s.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M7.97528 1.43999V15.24M7.97528 1.43999H13.3453C13.5466 1.43866 13.7461 1.47733 13.9323 1.55375C14.1185 1.63017 14.2878 1.74282 14.4301 1.88516C14.5725 2.0275 14.6851 2.19669 14.7615 2.38292C14.838 2.56915 14.8766 2.7687 14.8753 2.96999V13.7C14.8766 13.9018 14.838 14.1018 14.7617 14.2886C14.6854 14.4754 14.5729 14.6452 14.4307 14.7883C14.2885 14.9315 14.1194 15.0451 13.9332 15.1226C13.7469 15.2001 13.547 15.24 13.3453 15.24H7.97528V1.43999ZM7.97528 1.43999H2.6153C2.41353 1.43867 2.21346 1.47727 2.02667 1.55357C1.83989 1.62987 1.67005 1.74236 1.52692 1.88457C1.38378 2.02677 1.2702 2.19588 1.19269 2.38217C1.11517 2.56845 1.07525 2.76823 1.07526 2.96999V13.7C1.07526 14.1084 1.2375 14.5001 1.52631 14.7889C1.81511 15.0777 2.20686 15.24 2.6153 15.24H7.97528V1.43999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"3-dots-h"===this.props.name&&s.createElement("svg",{width:"16",height:"3",viewBox:"0 0 16 3",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("circle",{cx:"1.5",cy:"1.5",r:"1.5",fill:"var(--icon-color)",stroke:"none"}),s.createElement("circle",{cx:"8",cy:"1.5",r:"1.5",fill:"var(--icon-color)",stroke:"none"}),s.createElement("circle",{cx:"14.5",cy:"1.5",r:"1.5",fill:"var(--icon-color)",stroke:"none"})),"3-dots-v"===this.props.name&&s.createElement("svg",{width:"3",height:"16",viewBox:"0 0 3 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("circle",{cx:"1.5",cy:"1.5",r:"1.5",fill:"var(--icon-color)",stroke:"none"}),s.createElement("circle",{cx:"1.5",cy:"8",r:"1.5",fill:"var(--icon-color)",stroke:"none"}),s.createElement("circle",{cx:"1.5",cy:"14.5",r:"1.5",fill:"var(--icon-color)",stroke:"none"})),"add"===this.props.name&&s.createElement("svg",{width:"13",height:"12",viewBox:"0 0 13 12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M6.51996 1.50999V11.17",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M1.68994 6.34H11.3499",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"arrow-left"===this.props.name&&s.createElement("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M10.62 6.34H0.959961",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M5.77995 11.17L0.949951 6.34L5.77995 1.50999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"arrow-right"===this.props.name&&s.createElement("svg",{width:"13",height:"12",viewBox:"0 0 13 12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M1.61993 6.34H11.2799",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M6.47992 1.50999L11.3099 6.34L6.47992 11.17",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"ascending"===this.props.name&&s.createElement("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M4.87466 9.07V1.61",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M1.13467 5.34L4.87466 1.61L8.60464 5.34",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"ban"===this.props.name&&s.createElement("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M7.58527 13.33C10.8935 13.33 13.5753 10.6482 13.5753 7.34001C13.5753 4.03182 10.8935 1.35001 7.58527 1.35001C4.27708 1.35001 1.59528 4.03182 1.59528 7.34001C1.59528 10.6482 4.27708 13.33 7.58527 13.33Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M3.34528 3.11L11.8152 11.57",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"broken-link"===this.props.name&&s.createElement("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M7.76352 11.73L6.76352 12.73C6.44415 13.0524 6.0633 13.3075 5.64352 13.48C5.22571 13.6553 4.7766 13.7438 4.32352 13.74C3.40986 13.7429 2.53235 13.3833 1.88351 12.74C1.56332 12.4205 1.30928 12.0409 1.13596 11.6231C0.962628 11.2053 0.873383 10.7573 0.873383 10.305C0.873383 9.85264 0.962628 9.40473 1.13596 8.9869C1.30928 8.56907 1.56332 8.18952 1.88351 7.87L2.88351 6.87",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M11.6635 7.82999L12.6635 6.82999C12.986 6.51063 13.241 6.12976 13.4135 5.70999C13.592 5.29282 13.6838 4.84374 13.6835 4.38999C13.6837 3.70751 13.4815 3.0403 13.1024 2.47277C12.7233 1.90524 12.1844 1.4629 11.5539 1.2017C10.9234 0.940496 10.2296 0.872172 9.56021 1.00537C8.89085 1.13857 8.27598 1.46731 7.79349 1.94999L6.79349 2.94999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M11.1735 11.24L3.36349 3.42999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"calendar"===this.props.name&&s.createElement("svg",{width:"15",height:"17",viewBox:"0 0 15 17",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M12.7348 2.64999H2.7748C1.99055 2.64999 1.35475 3.28575 1.35475 4.06999V14.03C1.35475 14.8142 1.99055 15.45 2.7748 15.45H12.7348C13.519 15.45 14.1548 14.8142 14.1548 14.03V4.06999C14.1548 3.28575 13.519 2.64999 12.7348 2.64999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M10.5948 1.23V4.07",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M4.9048 1.23V4.07",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M1.35475 6.92H14.1548",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"camera"===this.props.name&&s.createElement("svg",{width:"18",height:"15",viewBox:"0 0 18 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M16.5953 12.07C16.5926 12.429 16.4482 12.7723 16.1934 13.0252C15.9387 13.2781 15.5941 13.42 15.2352 13.42H3.04523C2.68718 13.42 2.34381 13.2778 2.09064 13.0246C1.83746 12.7714 1.69525 12.428 1.69525 12.07V4.59C1.69525 4.23196 1.83746 3.88858 2.09064 3.63541C2.34381 3.38224 2.68718 3.24001 3.04523 3.24001H5.74518L7.09528 1.24001H11.1452L12.4952 3.24001H15.1953C15.5542 3.24 15.8986 3.38191 16.1534 3.6348C16.4081 3.88769 16.5526 4.23105 16.5552 4.59L16.5953 12.07Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M9.16522 10.72C10.6564 10.72 11.8652 9.51118 11.8652 8.02001C11.8652 6.52884 10.6564 5.32001 9.16522 5.32001C7.67405 5.32001 6.46527 6.52884 6.46527 8.02001C6.46527 9.51118 7.67405 10.72 9.16522 10.72Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"caret-down"===this.props.name&&s.createElement("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M1 3L5 7L9 3",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"caret-left"===this.props.name&&s.createElement("svg",{width:"10",height:"10",transform:"rotate(90)",viewBox:"0 0 10 10",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M1 3L5 7L9 3",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"caret-right"===this.props.name&&s.createElement("svg",{width:"10",height:"10",transform:"rotate(270)",viewBox:"0 0 10 10",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M1 3L5 7L9 3",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"caret-up"===this.props.name&&s.createElement("svg",{width:"10",height:"10",transform:"rotate(180)",viewBox:"0 0 10 10",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M1 3L5 7L9 3",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"check"===this.props.name&&s.createElement("svg",{width:"15",height:"11",viewBox:"0 0 15 11",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M13.6647 0.940002L4.86478 9.74L0.864777 5.74",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"clock"===this.props.name&&s.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M7.69485 15.18C11.4725 15.18 14.5348 12.1176 14.5348 8.34C14.5348 4.56237 11.4725 1.5 7.69485 1.5C3.91723 1.5 0.854767 4.56237 0.854767 8.34C0.854767 12.1176 3.91723 15.18 7.69485 15.18Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M7.69485 4.23V8.34L10.4248 9.71",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"close-circle"===this.props.name&&s.createElement("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M7.42523 13.33C10.7334 13.33 13.4152 10.6482 13.4152 7.34001C13.4152 4.03182 10.7334 1.35001 7.42523 1.35001C4.11705 1.35001 1.43524 4.03182 1.43524 7.34001C1.43524 10.6482 4.11705 13.33 7.42523 13.33Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M9.12518 5.65001L5.73517 9.03001",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M5.73517 5.65001L9.12518 9.03001",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"close"===this.props.name&&s.createElement("svg",{width:"11",height:"11",viewBox:"0 0 11 11",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M9.69525 1.2L1.41522 9.48",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M1.41522 1.2L9.69525 9.48",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"copy-to-clipboard"===this.props.name&&s.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M13.6147 6.27H7.40469C7.22347 6.27 7.04405 6.3057 6.87662 6.37505C6.70919 6.4444 6.55707 6.54605 6.42892 6.6742C6.30078 6.80234 6.19908 6.95447 6.12973 7.1219C6.06038 7.28933 6.02469 7.46878 6.02469 7.65001V13.86C6.02469 14.226 6.17012 14.577 6.42892 14.8358C6.68772 15.0946 7.03869 15.24 7.40469 15.24H13.6147C13.9807 15.24 14.3317 15.0946 14.5905 14.8358C14.8493 14.577 14.9947 14.226 14.9947 13.86V7.65001C14.9947 7.46878 14.959 7.28933 14.8897 7.1219C14.8203 6.95447 14.7186 6.80234 14.5905 6.6742C14.4623 6.54605 14.3102 6.4444 14.1428 6.37505C13.9754 6.3057 13.7959 6.27 13.6147 6.27Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M3.26468 10.41H2.57468C2.38882 10.4136 2.20425 10.3791 2.03226 10.3086C1.86026 10.2381 1.70449 10.1331 1.57468 10C1.44256 9.86948 1.33818 9.71364 1.26773 9.54181C1.19728 9.36998 1.16224 9.1857 1.1647 9V2.82C1.16281 2.63439 1.19811 2.45027 1.26852 2.27852C1.33894 2.10677 1.44303 1.95086 1.57468 1.82C1.70499 1.68827 1.86107 1.58477 2.03311 1.51596C2.20515 1.44714 2.38946 1.41448 2.57468 1.42H8.7847C8.968 1.41862 9.14969 1.45404 9.31906 1.52416C9.48843 1.59428 9.64204 1.69767 9.77072 1.82822C9.8994 1.95877 10.0006 2.11381 10.0683 2.28417C10.1359 2.45453 10.1687 2.63674 10.1647 2.82V3.51",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"descending"===this.props.name&&s.createElement("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M5.40469 1.61V9.07",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M9.13467 5.34L5.40469 9.07L1.6647 5.34",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"document"===this.props.name&&s.createElement("svg",{width:"14",height:"17",viewBox:"0 0 14 17",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M8.47476 1.39999H2.92471C2.74218 1.39999 2.5615 1.43594 2.39285 1.5058C2.22421 1.57565 2.071 1.67804 1.94193 1.80711C1.81285 1.93619 1.71039 2.08942 1.64053 2.25806C1.57068 2.42671 1.53482 2.60746 1.53482 2.78999V13.89C1.53482 14.0721 1.5708 14.2523 1.64078 14.4204C1.71075 14.5885 1.81333 14.7411 1.94254 14.8694C2.07174 14.9976 2.225 15.0991 2.39359 15.1678C2.56217 15.2366 2.74265 15.2713 2.92471 15.27H11.2448C11.4268 15.2713 11.6073 15.2366 11.7759 15.1678C11.9445 15.0991 12.0979 14.9976 12.2271 14.8694C12.3563 14.7411 12.4587 14.5885 12.5287 14.4204C12.5987 14.2523 12.6348 14.0721 12.6348 13.89V5.58999L8.47476 1.39999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M8.46475 1.39999V5.56999H12.6248",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M9.85477 9.03H4.30472",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M9.85477 11.81H4.30472",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M5.69473 6.25999H4.99478H4.30472",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"download-a"===this.props.name&&s.createElement("svg",{width:"17",height:"15",viewBox:"0 0 17 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M6.01358 10.65L8.65359 13.29L11.2936 10.65",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M8.65359 7.34V13.29",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M14.5135 11.36C15.0875 10.9566 15.518 10.3808 15.7425 9.71616C15.9671 9.05151 15.974 8.33258 15.7622 7.66375C15.5504 6.99492 15.131 6.411 14.5648 5.99674C13.9986 5.58248 13.3151 5.35944 12.6135 5.36H11.7835C11.5878 4.58232 11.2178 3.85932 10.7015 3.24567C10.1852 2.63202 9.53617 2.14378 8.80345 1.81786C8.07073 1.49194 7.27349 1.33687 6.47203 1.36438C5.67056 1.39189 4.88587 1.60126 4.17723 1.97666C3.46858 2.35205 2.85455 2.88365 2.38157 3.53126C1.90859 4.17886 1.58909 4.92553 1.44712 5.7148C1.30516 6.50407 1.34445 7.31529 1.56211 8.08712C1.77978 8.85895 2.17005 9.5712 2.70347 10.17",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"download"===this.props.name&&s.createElement("svg",{width:"17",height:"16",viewBox:"0 0 17 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M15.3233 10.64V13.7C15.3246 13.9018 15.286 14.1018 15.2097 14.2886C15.1334 14.4754 15.0209 14.6452 14.8787 14.7883C14.7365 14.9315 14.5674 15.0451 14.3811 15.1226C14.1949 15.2001 13.9951 15.24 13.7933 15.24H3.06332C2.86109 15.24 2.66081 15.2002 2.47397 15.1228C2.28713 15.0454 2.11737 14.9319 1.97437 14.7889C1.83136 14.6459 1.71793 14.4762 1.64053 14.2893C1.56314 14.1025 1.52332 13.9022 1.52332 13.7V10.64",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M4.59332 6.81L8.43332 10.64L12.2633 6.81",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M8.43332 10.64V1.44",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"edit"===this.props.name&&s.createElement("svg",{width:"16",height:"17",viewBox:"0 0 16 17",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M7.53454 2.85999H2.70452C2.52292 2.85866 2.34289 2.89345 2.17486 2.96233C2.00683 3.03121 1.85417 3.13281 1.72576 3.26122C1.59735 3.38963 1.49575 3.54229 1.42687 3.71032C1.35799 3.87835 1.32318 4.0584 1.32451 4.23999V13.9C1.31899 14.0852 1.35164 14.2696 1.42046 14.4416C1.48928 14.6136 1.59281 14.7697 1.72454 14.9C1.8554 15.0316 2.01128 15.1357 2.18303 15.2062C2.35478 15.2766 2.53892 15.3119 2.72454 15.31H12.3845C12.7489 15.3048 13.0969 15.1578 13.3546 14.9001C13.6123 14.6424 13.7593 14.2944 13.7645 13.93V9.06999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M12.7045 1.82C12.9733 1.55934 13.3303 1.4094 13.7045 1.4C13.8966 1.39867 14.0871 1.43552 14.2648 1.50842C14.4426 1.58132 14.604 1.68882 14.7399 1.82466C14.8757 1.9605 14.9832 2.12197 15.0561 2.29971C15.129 2.47745 15.1659 2.6679 15.1646 2.86C15.1622 3.04677 15.1229 3.23124 15.0491 3.40284C14.9753 3.57443 14.8685 3.72979 14.7346 3.86L8.18451 10.42L5.42456 11.11L6.11456 8.35L12.7045 1.82Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"envelope"===this.props.name&&s.createElement("svg",{width:"16",height:"13",viewBox:"0 0 16 13",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M2.96527 1.24001H13.1552C13.493 1.24 13.8171 1.37348 14.0568 1.61137C14.2966 1.84925 14.4326 2.17226 14.4352 2.51V10.16C14.4326 10.4977 14.2966 10.8208 14.0568 11.0586C13.8171 11.2965 13.493 11.43 13.1552 11.43H2.96527C2.62752 11.43 2.30342 11.2965 2.06366 11.0586C1.8239 10.8208 1.68788 10.4977 1.68524 10.16V2.51C1.68788 2.17226 1.8239 1.84925 2.06366 1.61137C2.30342 1.37348 2.62752 1.24 2.96527 1.24001V1.24001Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M14.4352 2.52L8.06525 6.98L1.69525 2.52",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"expand"===this.props.name&&s.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M10.4549 1.73H14.8548V6.14",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M6.04483 14.95H1.6348V10.54",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M14.8648 1.73L9.71487 6.87",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M1.6348 14.95L6.77481 9.81",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"external-link"===this.props.name&&s.createElement("svg",{width:"17",height:"16",viewBox:"0 0 17 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M13.2239 9.10001V13.7C13.2239 14.1084 13.0617 14.5001 12.7729 14.7889C12.4841 15.0778 12.0924 15.24 11.6839 15.24H3.25388C3.05289 15.2412 2.85377 15.2019 2.66824 15.1246C2.48272 15.0473 2.31461 14.9335 2.17392 14.79C2.03098 14.6468 1.91764 14.4768 1.84043 14.2898C1.76321 14.1028 1.72363 13.9023 1.72391 13.7V5.27C1.72653 4.86503 1.88859 4.47739 2.17496 4.19103C2.46132 3.90466 2.84891 3.74263 3.25388 3.74001H7.85391",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M10.9239 1.44H15.5239V6.04",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M7.08389 9.87L15.5239 1.44",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"eye-close"===this.props.name&&s.createElement("svg",{width:"18",height:"17",viewBox:"0 0 18 17",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M10.2347 9.8C10.0451 10.0025 9.81744 10.1656 9.56473 10.28C9.30808 10.3893 9.0335 10.4503 8.75473 10.46C8.47778 10.4605 8.20314 10.4096 7.94473 10.31C7.68694 10.2031 7.45254 10.0469 7.25473 9.85001C7.05246 9.65668 6.89537 9.42107 6.79471 9.16C6.69246 8.90261 6.64477 8.62678 6.65469 8.35C6.65565 8.07447 6.71357 7.80211 6.82474 7.55C6.94001 7.29486 7.10291 7.06406 7.30472 6.87L10.2347 9.8ZM12.8647 12.44C11.6829 13.3356 10.2473 13.8329 8.76474 13.86C3.93474 13.86 1.17471 8.34 1.17471 8.34C2.03377 6.73809 3.22745 5.33978 4.67471 4.24L12.8647 12.44ZM7.30472 2.98C7.77695 2.87138 8.26016 2.81769 8.74472 2.82C13.5747 2.82 16.3347 8.34 16.3347 8.34C15.9175 9.12411 15.418 9.86159 14.8447 10.54L7.30472 2.98Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M1.17471 0.75L16.3547 15.93",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"eye-open"===this.props.name&&s.createElement("svg",{width:"17",height:"13",viewBox:"0 0 17 13",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M0.99472 6.33999C0.99472 6.33999 3.75475 0.819992 8.58475 0.819992C13.4147 0.819992 16.1747 6.33999 16.1747 6.33999C16.1747 6.33999 13.4147 11.86 8.58475 11.86C3.75475 11.86 0.99472 6.33999 0.99472 6.33999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M8.58475 8.40999C8.99415 8.40999 9.39436 8.28859 9.73477 8.06113C10.0752 7.83368 10.3405 7.51038 10.4972 7.13214C10.6538 6.7539 10.6948 6.33769 10.615 5.93615C10.5351 5.53461 10.3379 5.16577 10.0484 4.87628C9.75894 4.58678 9.3901 4.38964 8.98856 4.30976C8.58702 4.22989 8.17082 4.27089 7.79257 4.42756C7.41433 4.58423 7.09101 4.84955 6.86356 5.18996C6.6361 5.53037 6.51474 5.93058 6.51474 6.33999C6.51474 6.88899 6.7328 7.4155 7.121 7.8037C7.5092 8.1919 8.03575 8.40999 8.58475 8.40999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"filter"===this.props.name&&s.createElement("svg",{width:"18",height:"16",viewBox:"0 0 18 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M16.8734 1.44H1.54337L7.67337 8.69V13.71L10.7334 15.24V8.69L16.8734 1.44Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"folder"===this.props.name&&s.createElement("svg",{width:"15",height:"13",viewBox:"0 0 15 13",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M14 10.77C14.0011 10.9326 13.9672 11.0937 13.9006 11.2433C13.834 11.393 13.736 11.528 13.6127 11.64C13.3673 11.8712 13.0363 12.0006 12.6916 12H2.29792C1.95325 12.0006 1.62224 11.8712 1.37683 11.64C1.25729 11.5257 1.16249 11.3901 1.09784 11.2408C1.03319 11.0915 0.999929 10.9316 1 10.77V2.22C1.00148 1.89698 1.13701 1.58771 1.37683 1.36C1.62224 1.12877 1.95325 0.999403 2.29792 1H5.54266L6.85103 2.84H12.6916C13.0363 2.8394 13.3673 2.96877 13.6127 3.2C13.7348 3.31089 13.832 3.44427 13.8986 3.59209C13.9651 3.73991 13.9996 3.89909 14 4.06V10.77Z",fill:"var(--icon-background-color)",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"folders"===this.props.name&&s.createElement("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M13.9438 12.5803C13.9455 12.7685 13.9124 12.9552 13.8464 13.1293C13.7804 13.3035 13.6829 13.4616 13.5595 13.5943C13.309 13.8584 12.972 14.0042 12.6222 13.9999H2.3125C1.96297 14.0031 1.62631 13.8574 1.37525 13.5943C1.25312 13.4611 1.15697 13.3027 1.09257 13.1285C1.02816 12.9543 0.996821 12.7679 1.00035 12.5803V5.92825C0.996282 5.74059 1.02739 5.55399 1.09182 5.37971C1.15626 5.20542 1.25268 5.04707 1.37525 4.91422C1.4979 4.78073 1.64403 4.67516 1.805 4.60376C1.96597 4.53235 2.13853 4.49655 2.3125 4.49847H5.54599L6.8394 6.59751H12.6597C13.0013 6.60275 13.3274 6.75187 13.5689 7.01317C13.8104 7.27447 13.9483 7.62737 13.9531 7.99687L13.9438 12.5803Z",fill:"var(--icon-background-color)",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M1.04723 2.42985C1.04316 2.24219 1.07426 2.05559 1.1387 1.88131C1.20313 1.70702 1.29955 1.54868 1.42212 1.41582C1.54477 1.28233 1.6909 1.17676 1.85188 1.10535C2.01285 1.03395 2.1854 0.998153 2.35937 1.00007H6.8863L8.17968 3.09911H12.7066C13.0481 3.10435 13.3743 3.25347 13.6158 3.51477C13.8574 3.77607 13.9952 4.12896 14 4.49847",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"info-circle"===this.props.name&&s.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M8.25473 15.24C9.61942 15.24 10.9535 14.8353 12.0882 14.0771C13.2229 13.319 14.1072 12.2413 14.6295 10.9805C15.1517 9.71971 15.2884 8.33235 15.0221 6.99388C14.7559 5.65541 14.0987 4.42595 13.1338 3.46097C12.1688 2.49599 10.9393 1.83882 9.60086 1.57259C8.26239 1.30635 6.87504 1.44299 5.61423 1.96524C4.35342 2.48748 3.27579 3.37187 2.51761 4.50657C1.75943 5.64127 1.35471 6.97531 1.35471 8.34C1.35735 10.1692 2.0852 11.9227 3.37863 13.2161C4.67206 14.5095 6.42555 15.2374 8.25473 15.24Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M8.25473 11.1V8.34",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M8.25473 5.65V5.59",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"internal-link"===this.props.name&&s.createElement("svg",{width:"17",height:"16",viewBox:"0 0 17 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M1.52392 8.8V3.28C1.5226 3.038 1.56925 2.79813 1.66125 2.5743C1.75325 2.35046 1.88875 2.14709 2.05987 1.97597C2.231 1.80484 2.43436 1.66936 2.6582 1.57736C2.88204 1.48536 3.12189 1.43867 3.36389 1.44H13.4839C13.9719 1.44 14.4399 1.63386 14.785 1.97892C15.13 2.32399 15.3239 2.792 15.3239 3.28V13.4C15.3229 13.6402 15.2753 13.8779 15.1839 14.1C15.0899 14.3236 14.9542 14.5272 14.7839 14.7C14.4387 15.0443 13.9714 15.2383 13.4839 15.24H7.96393",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M5.35385 6.75999H9.95389V11.4",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M1.5239 15.24L9.95389 6.75999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"layout"===this.props.name&&s.createElement("svg",{width:"14",height:"15",viewBox:"0 0 14 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M11.8629 1.19H2.30292C1.54629 1.19 0.932922 1.80337 0.932922 2.56V12.12C0.932922 12.8766 1.54629 13.49 2.30292 13.49H11.8629C12.6195 13.49 13.2329 12.8766 13.2329 12.12V2.56C13.2329 1.80337 12.6195 1.19 11.8629 1.19Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M0.932922 5.29001H13.2329",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M5.03296 13.49V5.29001",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"license"===this.props.name&&s.createElement("svg",{width:"17",height:"17",viewBox:"0 0 17 17",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M14.2155 8.58999C14.9711 7.80057 15.3874 6.74663 15.3755 5.65392C15.3635 4.5612 14.9242 3.51661 14.1515 2.7439C13.3788 1.97119 12.3342 1.5318 11.2415 1.51986C10.1487 1.50791 9.09484 1.92436 8.30542 2.67999L3.60535 7.38V13.3H9.52539L14.2155 8.58999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M11.2654 5.59L1.51538 15.34",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M12.3154 10.47H6.39539",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"life-ring"===this.props.name&&s.createElement("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M7.70966 13.43C11.0731 13.43 13.7996 10.7034 13.7996 7.34C13.7996 3.97659 11.0731 1.25 7.70966 1.25C4.34624 1.25 1.61969 3.97659 1.61969 7.34C1.61969 10.7034 4.34624 13.43 7.70966 13.43Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M7.70966 9.77999C9.05723 9.77999 10.1497 8.68757 10.1497 7.33999C10.1497 5.99242 9.05723 4.89999 7.70966 4.89999C6.36208 4.89999 5.26971 5.99242 5.26971 7.33999C5.26971 8.68757 6.36208 9.77999 7.70966 9.77999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M3.40973 3.03L5.98969 5.62",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M9.43964 9.06L12.0197 11.65",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M9.43964 5.62L12.0197 3.03",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M9.43964 5.62L11.5897 3.47",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M3.40973 11.65L5.98969 9.06",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"link"===this.props.name&&s.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M6.84119 9.03C7.13202 9.43825 7.50715 9.77928 7.94119 10.03C8.37534 10.2686 8.85677 10.4086 9.3512 10.44C9.86059 10.4745 10.3709 10.3889 10.8412 10.19C11.3076 10.0211 11.731 9.75138 12.0812 9.39999L14.1512 7.33C14.6209 6.84495 14.938 6.23271 15.0631 5.56918C15.1883 4.90564 15.1159 4.21998 14.8551 3.59716C14.5943 2.97435 14.1564 2.44177 13.5958 2.06543C13.0351 1.68909 12.3764 1.48553 11.7012 1.47999C11.2503 1.47878 10.8036 1.56647 10.3866 1.73806C9.96966 1.90966 9.59061 2.16177 9.27118 2.47999L8.08118 3.58999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M9.64117 7.65C9.34989 7.23849 8.97075 6.89691 8.53118 6.65C8.09831 6.40942 7.61823 6.266 7.12432 6.22974C6.63042 6.19347 6.13455 6.26522 5.67118 6.44C5.20474 6.60886 4.78133 6.87861 4.43118 7.23L2.36119 9.3C1.87601 9.78489 1.54639 10.4034 1.41442 11.0765C1.28246 11.7497 1.35414 12.4469 1.62033 13.079C1.88651 13.7112 2.33511 14.2497 2.90881 14.6257C3.48251 15.0017 4.15529 15.1982 4.84118 15.19C5.29207 15.1912 5.73876 15.1035 6.15573 14.9319C6.57269 14.7603 6.95174 14.5082 7.27117 14.19L8.45117 13.01",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"list"===this.props.name&&s.createElement("svg",{width:"17",height:"12",viewBox:"0 0 17 12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M4.95473 1.53999H15.3548",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M4.95473 6.34H15.3548",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M4.95473 11.14H15.3548",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M0.954727 1.53999H0.964737",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M0.954727 6.34H0.964737",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M0.954727 11.14H0.964737",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"log-out"===this.props.name&&s.createElement("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M5.44388 13.59H2.68387C2.49801 13.5936 2.31338 13.5591 2.14139 13.4886C1.96939 13.4181 1.81368 13.3131 1.68387 13.18C1.55176 13.0495 1.44737 12.8936 1.37692 12.7218C1.30647 12.55 1.27143 12.3657 1.27389 12.18V2.51C1.272 2.32439 1.3073 2.14028 1.37772 1.96853C1.44813 1.79678 1.55222 1.64087 1.68387 1.51C1.81418 1.37827 1.9702 1.27478 2.14224 1.20596C2.31428 1.13714 2.49866 1.10448 2.68387 1.11001H5.44388",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M10.2739 10.79L13.7239 7.34L10.2739 3.89",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M13.7239 7.34H5.44388",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"plus-circle"===this.props.name&&s.createElement("svg",{width:"11",height:"11",viewBox:"0 0 11 11",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M5.38519 9.63999C7.76002 9.63999 9.68524 7.71482 9.68524 5.33999C9.68524 2.96517 7.76002 1.03999 5.38519 1.03999C3.01037 1.03999 1.08527 2.96517 1.08527 5.33999C1.08527 7.71482 3.01037 9.63999 5.38519 9.63999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M5.38519 3.62V7.06",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M3.66522 5.34H7.10516",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"plus-square"===this.props.name&&s.createElement("svg",{width:"11",height:"11",viewBox:"0 0 11 11",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M9.12531 1.03999H2.43524C1.90505 1.03999 1.47528 1.4698 1.47528 1.99999V8.68999C1.47528 9.22019 1.90505 9.64999 2.43524 9.64999H9.12531C9.6555 9.64999 10.0853 9.22019 10.0853 8.68999V1.99999C10.0853 1.4698 9.6555 1.03999 9.12531 1.03999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M5.77533 3.42999V7.24999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M3.8653 5.34H7.68524",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"power"===this.props.name&&s.createElement("svg",{width:"15",height:"17",viewBox:"0 0 15 17",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M11.9098 4.59C12.7908 5.47109 13.3908 6.59365 13.6338 7.81571C13.8768 9.03777 13.752 10.3045 13.2751 11.4556C12.7983 12.6067 11.9908 13.5906 10.9548 14.2828C9.91882 14.9751 8.70077 15.3445 7.45477 15.3445C6.20878 15.3445 4.99079 14.9751 3.95477 14.2828C2.91876 13.5906 2.11125 12.6067 1.6344 11.4556C1.15755 10.3045 1.03278 9.03777 1.27582 7.81571C1.51885 6.59365 2.11881 5.47109 2.99982 4.59",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M7.47981 1.34V8.34",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"printer"===this.props.name&&s.createElement("svg",{width:"14",height:"15",viewBox:"0 0 14 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M3.38623 5.49V1.17H10.7863V5.49",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M3.38627 11.04H2.14628C1.98391 11.04 1.82314 11.0079 1.67326 10.9454C1.52337 10.883 1.38734 10.7915 1.27299 10.6762C1.15864 10.5609 1.06822 10.4242 1.007 10.2738C0.945777 10.1234 0.914858 9.96237 0.916178 9.8V6.72001C0.916178 6.39379 1.04586 6.08093 1.27653 5.85026C1.5072 5.61959 1.82006 5.49001 2.14628 5.49001H11.9762C12.3034 5.48999 12.6173 5.61926 12.8495 5.84965C13.0818 6.08003 13.2136 6.39287 13.2162 6.72001V9.8C13.2162 10.1289 13.0856 10.4443 12.8531 10.6768C12.6205 10.9094 12.3051 11.04 11.9762 11.04H10.7463",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M10.7863 8.56999H3.38623V13.51H10.7863V8.56999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"question-circle"===this.props.name&&s.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M8.04996 15.24C9.41465 15.24 10.7487 14.8353 11.8834 14.0771C13.0181 13.319 13.9025 12.2413 14.4247 10.9805C14.947 9.71971 15.0836 8.33235 14.8174 6.99388C14.5511 5.65541 13.894 4.42595 12.929 3.46097C11.964 2.49599 10.7345 1.83882 9.39608 1.57259C8.05761 1.30635 6.67026 1.44299 5.40945 1.96524C4.14864 2.48748 3.071 3.37187 2.31282 4.50657C1.55464 5.64127 1.14996 6.97531 1.14996 8.34C1.14996 10.17 1.87692 11.925 3.17092 13.219C4.46492 14.513 6.21996 15.24 8.04996 15.24Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M6.03998 6.27001C6.20089 5.80813 6.52015 5.41815 6.94115 5.16921C7.36216 4.92026 7.85772 4.82844 8.33997 4.91001C8.8197 4.99744 9.25434 5.24832 9.56998 5.62001C9.88695 5.99449 10.0606 6.46939 10.06 6.96001C10.06 8.34001 7.98997 9.03001 7.98997 9.03001",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M8.04993 11.79V11.73",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"refresh-1"===this.props.name&&s.createElement("svg",{width:"17",height:"14",viewBox:"0 0 17 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M15.4753 2.14V6.04H11.5753",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M1.18524 12.54V8.64H5.08527",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M2.81525 5.39C3.33356 3.92951 4.41025 2.73435 5.8089 2.0669C7.20755 1.39945 8.8138 1.31425 10.2752 1.83001C11.097 2.11893 11.8425 2.59081 12.4553 3.21L15.4553 6.04M1.16522 8.64001L4.16522 11.47C4.86357 12.1684 5.72733 12.6787 6.67609 12.9532C7.62484 13.2277 8.62773 13.2575 9.59113 13.0399C10.5545 12.8222 11.4471 12.3642 12.1857 11.7085C12.9243 11.0528 13.485 10.2208 13.8152 9.29",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"refresh"===this.props.name&&s.createElement("svg",{width:"16",height:"15",viewBox:"0 0 16 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M1.60464 2.06999V6.06999H5.54471",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M3.25467 9.29999C3.57205 10.2045 4.1047 11.0183 4.80667 11.6711C5.50864 12.3239 6.3588 12.7962 7.28397 13.0471C8.20913 13.2981 9.18158 13.3203 10.1172 13.1117C11.0529 12.9032 11.9237 12.4701 12.6547 11.85C13.2373 11.3277 13.7104 10.695 14.0465 9.98847C14.3827 9.28196 14.5751 8.51572 14.6128 7.73422C14.6505 6.95272 14.5327 6.17152 14.2661 5.43591C13.9996 4.70031 13.5897 4.02495 13.0601 3.44902C12.5305 2.87309 11.8918 2.40804 11.1811 2.08087C10.4703 1.75369 9.70175 1.57089 8.91983 1.54307C8.13792 1.51526 7.3583 1.64298 6.62613 1.91882C5.89396 2.19467 5.22387 2.61315 4.65469 3.14999L1.65469 6.01999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"save"===this.props.name&&s.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M13.4247 15.24H2.69469C2.28625 15.24 1.89456 15.0777 1.60576 14.7889C1.31695 14.5001 1.15471 14.1084 1.15471 13.7V2.96999C1.1547 2.76823 1.19463 2.56845 1.27214 2.38217C1.34965 2.19588 1.46323 2.02677 1.60637 1.88457C1.7495 1.74236 1.91934 1.62987 2.10612 1.55357C2.29291 1.47727 2.49292 1.43867 2.69469 1.43999H11.1247L14.9547 5.26999V13.7C14.956 13.9018 14.9174 14.1018 14.8411 14.2886C14.7648 14.4754 14.6523 14.6452 14.5101 14.7883C14.3679 14.9315 14.1988 15.0451 14.0125 15.1226C13.8262 15.2001 13.6265 15.24 13.4247 15.24Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M11.8947 15.24V9.10999H4.22472V15.24",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M4.22472 1.43999V5.26999H10.3647",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"search"===this.props.name&&s.createElement("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M7.20346 12.17C8.29521 12.17 9.36247 11.8462 10.2702 11.2397C11.178 10.6332 11.8855 9.77105 12.3033 8.7624C12.7211 7.75375 12.8304 6.64387 12.6174 5.57309C12.4044 4.50232 11.8787 3.51875 11.1067 2.74676C10.3347 1.97478 9.35114 1.44905 8.28036 1.23606C7.20959 1.02307 6.09974 1.13238 5.09109 1.55018C4.08245 1.96797 3.22028 2.67548 2.61374 3.58324C2.00719 4.491 1.6835 5.55824 1.6835 6.64999C1.6835 8.11399 2.26506 9.51802 3.30026 10.5532C4.33546 11.5884 5.73947 12.17 7.20346 12.17V12.17Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M14.1035 13.59L11.1035 10.59",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"share"===this.props.name&&s.createElement("svg",{width:"15",height:"16",viewBox:"0 0 15 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M11.4733 5.58C12.6166 5.58 13.5434 4.65323 13.5434 3.51C13.5434 2.36677 12.6166 1.44 11.4733 1.44C10.3301 1.44 9.40335 2.36677 9.40335 3.51C9.40335 4.65323 10.3301 5.58 11.4733 5.58Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M3.19333 10.41C4.33656 10.41 5.26334 9.48323 5.26334 8.34C5.26334 7.19677 4.33656 6.27 3.19333 6.27C2.0501 6.27 1.12335 7.19677 1.12335 8.34C1.12335 9.48323 2.0501 10.41 3.19333 10.41Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M11.4733 15.24C12.6166 15.24 13.5434 14.3132 13.5434 13.17C13.5434 12.0268 12.6166 11.1 11.4733 11.1C10.3301 11.1 9.40335 12.0268 9.40335 13.17C9.40335 14.3132 10.3301 15.24 11.4733 15.24Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M4.98334 9.38L9.69333 12.13",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M9.69333 4.55L4.98334 7.3",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"star"===this.props.name&&s.createElement("svg",{width:"14",height:"13",viewBox:"0 0 14 13",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M7.30478 0.110001L9.32474 4.21L13.8548 4.87L10.5747 8.06L11.3548 12.57L7.30478 10.44L3.25479 12.57L4.03476 8.06L0.754791 4.87L5.28476 4.21L7.30478 0.110001Z",fill:"var(--icon-favorites-color)"})),"star-stroke"===this.props.name&&s.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M8 1.77L10.02 5.87L14.55 6.53L11.2699 9.72L12.05 14.23L8 12.1L3.95001 14.23L4.72998 9.72L1.45001 6.53L5.97998 5.87L8 1.77Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinejoin:"round"})),"switch"===this.props.name&&s.createElement("svg",{width:"18",height:"15",viewBox:"0 0 18 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M16.5154 10.8L13.7454 13.58L10.9753 10.8",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M9.58545 1.09999H10.9653C11.7009 1.09999 12.4065 1.39151 12.9276 1.9107C13.4487 2.42989 13.7427 3.13442 13.7454 3.86999V13.59",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M1.27539 3.87999L4.04541 1.09999L6.81543 3.87999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M8.19543 13.59H6.81543C6.45083 13.5913 6.08955 13.5206 5.75232 13.382C5.41509 13.2434 5.1085 13.0396 4.85022 12.7822C4.59194 12.5249 4.38702 12.2191 4.24719 11.8823C4.10736 11.5456 4.0354 11.1846 4.0354 10.82V1.12",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"theme-dark"===this.props.name&&s.createElement("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M13.14 7.31001C13.0365 8.40623 12.6232 9.45037 11.9483 10.3204C11.2734 11.1904 10.3648 11.8503 9.32868 12.2229C8.29257 12.5956 7.17169 12.6656 6.09724 12.4248C5.02279 12.1841 4.03916 11.6424 3.26118 10.8632C2.4832 10.084 1.94314 9.09942 1.70405 8.02459C1.46497 6.94976 1.53678 5.82909 1.91108 4.79356C2.28539 3.75804 2.94664 2.85046 3.8177 2.17692C4.68876 1.50337 5.73364 1.09169 6.83003 0.990005C6.19481 1.86018 5.8913 2.92863 5.97419 4.0028C6.05709 5.07697 6.52085 6.08621 7.28205 6.84863C8.04326 7.61104 9.05177 8.07648 10.1258 8.16107C11.1998 8.24567 12.2688 7.94385 13.14 7.31001V7.31001Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"theme-light"===this.props.name&&s.createElement("svg",{width:"17",height:"16",viewBox:"0 0 17 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M8.47571 11.23C10.2541 11.23 11.6957 9.78835 11.6957 8.00999C11.6957 6.23164 10.2541 4.78999 8.47571 4.78999C6.69735 4.78999 5.25574 6.23164 5.25574 8.00999C5.25574 9.78835 6.69735 11.23 8.47571 11.23Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M8.47571 0.919998V2.21",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M8.47571 13.82V15.11",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M3.45569 3L4.37573 3.91",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M12.5757 12.11L13.4857 13.03",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M1.37573 8.00999H2.66577",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M14.2758 8.00999H15.5657",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M3.45569 13.03L4.37573 12.11",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M12.5757 3.91L13.4857 3",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"trash"===this.props.name&&s.createElement("svg",{width:"15",height:"16",viewBox:"0 0 15 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M1.30994 4.2H13.6899",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M4.75995 4.19999V2.81999C4.75806 2.63438 4.79335 2.45026 4.86377 2.27851C4.93419 2.10676 5.03829 1.95085 5.16994 1.81999C5.30095 1.68922 5.45711 1.58635 5.62898 1.5176C5.80086 1.44885 5.98488 1.41565 6.16994 1.41999H8.92995C9.11154 1.41866 9.29158 1.45345 9.45961 1.52233C9.62764 1.59121 9.78031 1.69281 9.90872 1.82122C10.0371 1.94963 10.1387 2.10229 10.2076 2.27032C10.2765 2.43835 10.3113 2.6184 10.3099 2.79999V4.17999L4.75995 4.19999ZM12.3799 4.17999V13.84C12.3843 14.0251 12.3511 14.2091 12.2823 14.3809C12.2136 14.5528 12.1107 14.709 11.9799 14.84C11.8491 14.9716 11.6932 15.0758 11.5214 15.1462C11.3497 15.2166 11.1656 15.2519 10.9799 15.25H4.07994C3.7121 15.2474 3.36007 15.1001 3.09996 14.84C2.83985 14.5799 2.69256 14.2278 2.68994 13.86V4.19999L12.3799 4.17999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M6.13995 7.64999V11.79",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M8.89996 7.64999V11.79",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"txt"===this.props.name&&s.createElement("svg",{width:"17",height:"12",viewBox:"0 0 17 12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M12.0753 4.78H0.875366",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M15.2754 1.58H0.875366",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M15.2754 7.98H0.875366",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M12.0753 11.18H0.875366",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"upload-a"===this.props.name&&s.createElement("svg",{width:"17",height:"15",viewBox:"0 0 17 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M10.7482 9.98L8.10822 7.34L5.4682 9.98",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M8.10822 7.34V13.28",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M13.6383 11.59C14.2828 11.24 14.7924 10.6853 15.0865 10.0134C15.3807 9.34158 15.4426 8.59089 15.2626 7.87992C15.0825 7.16895 14.6707 6.53821 14.0923 6.08732C13.5138 5.63642 12.8018 5.39107 12.0684 5.39H11.2283C11.0717 4.70118 10.7786 4.05078 10.3661 3.47732C9.95362 2.90385 9.43025 2.41898 8.82702 2.05142C8.22379 1.68385 7.553 1.44107 6.85425 1.33744C6.1555 1.23382 5.44297 1.27145 4.75903 1.44813C4.07509 1.6248 3.43358 1.93692 2.87243 2.366C2.31129 2.79507 1.84193 3.33239 1.49219 3.94612C1.14244 4.55985 0.919424 5.23753 0.836302 5.93901C0.753179 6.6405 0.811675 7.35153 1.0083 8.03C1.21212 8.83805 1.60647 9.58555 2.15832 10.21",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M10.7482 9.98L8.10822 7.34L5.4682 9.98",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"upload"===this.props.name&&s.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M15.1234 10.64V13.7C15.1234 14.1067 14.9625 14.4969 14.6758 14.7854C14.3892 15.0739 14.0001 15.2374 13.5934 15.24H2.85333C2.44663 15.2374 2.05752 15.0739 1.77087 14.7854C1.48423 14.4969 1.32333 14.1067 1.32333 13.7V10.64",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M12.0634 5.27L8.22336 1.44L4.39334 5.27",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M8.22336 1.44V10.64",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"user"===this.props.name&&s.createElement("svg",{width:"13",height:"15",viewBox:"0 0 13 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M11.9329 13.59V12.17C11.9305 11.4474 11.6458 10.7543 11.1395 10.2386C10.6332 9.72301 9.94542 9.42564 9.22295 9.40999H3.70296C3.34014 9.40867 2.98065 9.47915 2.64519 9.61739C2.30974 9.75562 2.00495 9.95887 1.7484 10.2154C1.49185 10.472 1.28858 10.7768 1.15035 11.1122C1.01211 11.4477 0.941629 11.8072 0.94295 12.17V13.59",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M6.41296 6.64999C6.95884 6.64999 7.49247 6.48812 7.94635 6.18485C8.40023 5.88157 8.75396 5.45052 8.96286 4.9462C9.17176 4.44187 9.22643 3.88693 9.11993 3.35154C9.01344 2.81615 8.75056 2.32437 8.36456 1.93838C7.97857 1.55238 7.4868 1.28952 6.95142 1.18302C6.41603 1.07653 5.86107 1.13118 5.35675 1.34008C4.85243 1.54898 4.42138 1.90274 4.1181 2.35662C3.81483 2.8105 3.65295 3.34411 3.65295 3.88999C3.65559 4.62118 3.94723 5.32166 4.46426 5.83869C4.98129 6.35572 5.68178 6.64736 6.41296 6.64999V6.64999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"users"===this.props.name&&s.createElement("svg",{width:"18",height:"15",viewBox:"0 0 18 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M12.1038 13.59V12.17C12.1124 11.799 12.0449 11.4302 11.9056 11.0862C11.7663 10.7423 11.5581 10.4305 11.2938 10.17C11.0319 9.90758 10.7199 9.70061 10.3763 9.56145C10.0326 9.42228 9.66448 9.35376 9.2938 9.35999H3.77378C3.04963 9.38607 2.36453 9.69487 1.8654 10.2202C1.36627 10.7455 1.09287 11.4455 1.1038 12.17V13.59",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M6.6138 6.64999C7.15968 6.64999 7.69331 6.48812 8.14719 6.18485C8.60107 5.88157 8.95483 5.45052 9.16373 4.9462C9.37262 4.44187 9.42727 3.88693 9.32077 3.35154C9.21428 2.81615 8.95139 2.32437 8.5654 1.93838C8.17941 1.55238 7.68764 1.28952 7.15225 1.18302C6.61686 1.07653 6.06191 1.13118 5.55759 1.34008C5.05326 1.54898 4.62221 1.90274 4.31894 2.35662C4.01567 2.8105 3.85379 3.34411 3.85379 3.88999C3.85643 4.62118 4.14804 5.32166 4.66507 5.83869C5.1821 6.35572 5.88261 6.64736 6.6138 6.64999V6.64999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M16.2738 13.59V12.17C16.2709 11.5583 16.0672 10.9645 15.6938 10.48C15.324 9.98829 14.7989 9.63591 14.2038 9.48",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M11.4438 1.22C12.0403 1.37297 12.5662 1.72595 12.9338 2.22C13.3101 2.703 13.5144 3.29774 13.5144 3.91C13.5144 4.52226 13.3101 5.117 12.9338 5.6C12.5662 6.09405 12.0403 6.44703 11.4438 6.6",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"video"===this.props.name&&s.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M13.6053 1.59H3.04523C2.23337 1.59 1.57526 2.24814 1.57526 3.06V13.62C1.57526 14.4319 2.23337 15.09 3.04523 15.09H13.6053C14.4171 15.09 15.0753 14.4319 15.0753 13.62V3.06C15.0753 2.24814 14.4171 1.59 13.6053 1.59Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M4.94525 1.59V15.09",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M11.6953 1.59V15.09",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M1.57526 8.34H15.0753",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M1.57526 4.97H4.94525",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M1.57526 11.71H4.94525",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M11.6953 11.71H15.0753",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M11.6953 4.97H15.0753",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"warning"===this.props.name&&s.createElement("svg",{width:"16",height:"15",viewBox:"0 0 16 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M7.04506 1.94L1.39504 11.38C1.30734 11.5316 1.25039 11.699 1.22756 11.8726C1.20473 12.0462 1.21645 12.2227 1.26198 12.3918C1.30751 12.5609 1.38602 12.7193 1.49294 12.858C1.59986 12.9967 1.73308 13.1129 1.88503 13.2C2.08111 13.3184 2.30599 13.3807 2.53505 13.38H13.845C14.0205 13.3787 14.1941 13.3427 14.3556 13.274C14.5171 13.2053 14.6634 13.1054 14.7862 12.9799C14.9089 12.8544 15.0055 12.7058 15.0706 12.5428C15.1356 12.3798 15.1677 12.2055 15.1651 12.03C15.1657 11.8009 15.1034 11.5761 14.985 11.38L9.33498 1.94C9.2446 1.78868 9.12507 1.65685 8.98329 1.55214C8.84152 1.44744 8.68038 1.37195 8.50917 1.33008C8.33797 1.28821 8.1602 1.28079 7.9861 1.30824C7.812 1.33569 7.64503 1.39748 7.49501 1.49C7.312 1.60289 7.15795 1.75699 7.04506 1.94V1.94Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M8.1951 5.37V8.04",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M8.1951 10.71H8.20511",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"chevron-left"===this.props.name&&s.createElement("svg",{width:"7",height:"12",viewBox:"0 0 7 12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M5.76616 10.805L0.936157 5.975L5.76616 1.145",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"chevron-right"===this.props.name&&s.createElement("svg",{width:"7",height:"12",viewBox:"0 0 7 12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M0.766174 1.145L5.59618 5.975L0.766174 10.805",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"cog"===this.props.name&&s.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M12.7254 6.42L12.4355 5.7C12.3855 5.13 13.5555 3.92 13.3255 3.7L12.7654 3.13C12.7654 3.13 12.4354 2.80999 12.2054 2.56999C11.9754 2.32999 10.7554 3.57 10.2054 3.47L9.49545 3.17C9.05545 2.8 9.02545 1.11 8.69545 1.11H7.12544C6.79544 1.11 6.77545 2.8 6.33545 3.17L5.61545 3.47C5.05545 3.52 3.84545 2.33999 3.61545 2.56999C3.38545 2.79999 3.05545 3.13 3.05545 3.13L2.49545 3.7C2.25545 3.93 3.43545 5.14 3.38545 5.7L3.08545 6.42C2.72545 6.85 1.08545 6.88001 1.08545 7.21001V8.8C1.08545 9.13 2.77545 9.15 3.08545 9.59L3.38545 10.31C3.38545 10.87 2.25545 12.09 2.49545 12.31L3.05545 12.87L3.61545 13.43C3.85545 13.67 5.06545 12.49 5.61545 12.54L6.33545 12.84C6.77545 13.2 6.79544 14.84 7.12544 14.84H8.72545C9.05545 14.84 9.08545 13.15 9.52545 12.84L10.2354 12.54C10.8054 12.54 12.0154 13.67 12.2354 13.43L12.7955 12.87L13.3555 12.31C13.5855 12.08 12.4155 10.86 12.4655 10.31L12.7254 9.64C13.0954 9.2 14.7854 9.18001 14.7854 8.85001V7.25999C14.8254 6.87999 13.1354 6.85 12.7254 6.42ZM7.88545 10.19C7.45189 10.192 7.02749 10.0652 6.66603 9.82579C6.30457 9.58636 6.02233 9.24502 5.85504 8.84503C5.68775 8.44504 5.64295 8.00439 5.72632 7.57892C5.80969 7.15344 6.01747 6.76228 6.32335 6.455C6.62922 6.14772 7.01941 5.93816 7.4445 5.85284C7.86959 5.76753 8.31044 5.81031 8.7112 5.97577C9.11195 6.14123 9.45458 6.42192 9.69566 6.78227C9.93675 7.14263 10.0654 7.56643 10.0654 8C10.0656 8.57226 9.84174 9.12185 9.44179 9.53114C9.04184 9.94044 8.49756 10.1769 7.92545 10.19H7.88545Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"contrast"===this.props.name&&s.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M8.30612 14.875C9.67081 14.875 11.0049 14.4703 12.1396 13.7121C13.2743 12.954 14.1587 11.8763 14.6809 10.6155C15.2032 9.35471 15.3398 7.96734 15.0735 6.62888C14.8073 5.29041 14.1502 4.06094 13.1852 3.09596C12.2202 2.13098 10.9907 1.47382 9.65225 1.20758C8.31378 0.941342 6.92643 1.07799 5.66562 1.60023C4.40481 2.12248 3.32718 3.00687 2.569 4.14157C1.81082 5.27627 1.40613 6.61031 1.40613 7.97501C1.40613 9.805 2.13309 11.56 3.42709 12.854C4.72109 14.1481 6.47613 14.875 8.30612 14.875V14.875Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M8.30612 1.07501C6.47613 1.07501 4.72109 1.80196 3.42709 3.09596C2.13309 4.38996 1.40613 6.14501 1.40613 7.97501C1.40613 9.805 2.13309 11.56 3.42709 12.854C4.72109 14.1481 6.47613 14.875 8.30612 14.875V1.07501Z",fill:"var(--icon-color)",stroke:"none"})),"copy-to-clipboard-2"===this.props.name&&s.createElement("svg",{width:"14",height:"16",viewBox:"0 0 14 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M11.0061 2.55C11.3774 2.55 11.7335 2.6975 11.9961 2.96005C12.2586 3.2226 12.4061 3.57869 12.4061 3.95V13.75C12.4061 14.1213 12.2586 14.4774 11.9961 14.7399C11.7335 15.0025 11.3774 15.15 11.0061 15.15H2.60611C2.23481 15.15 1.87872 15.0025 1.61617 14.7399C1.35361 14.4774 1.20612 14.1213 1.20612 13.75V3.95C1.20612 3.57869 1.35361 3.2226 1.61617 2.96005C1.87872 2.6975 2.23481 2.55 2.60611 2.55",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M8.9061 2.22H8.2261C8.2261 1.84339 8.0765 1.48221 7.8102 1.21591C7.54389 0.94961 7.18271 0.800003 6.80611 0.800003C6.4295 0.800003 6.0683 0.94961 5.802 1.21591C5.5357 1.48221 5.38611 1.84339 5.38611 2.22H4.7061C4.52045 2.22 4.3424 2.29374 4.21112 2.42502C4.07985 2.55629 4.0061 2.73435 4.0061 2.92V3.62C4.0061 3.80565 4.07985 3.9837 4.21112 4.11497C4.3424 4.24625 4.52045 4.32001 4.7061 4.32001H8.9061C9.09175 4.32001 9.26979 4.24625 9.40106 4.11497C9.53234 3.9837 9.60611 3.80565 9.60611 3.62V2.92C9.60611 2.73435 9.53234 2.55629 9.40106 2.42502C9.26979 2.29374 9.09175 2.22 8.9061 2.22Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"home-1"===this.props.name&&s.createElement("svg",{width:"15",height:"16",viewBox:"0 0 15 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M7.54611 0.934998L1.20612 5.86499V13.605C1.20873 13.9781 1.35812 14.3353 1.62198 14.5991C1.88584 14.863 2.24297 15.0124 2.61612 15.015H5.61612V8.755H9.52612V15.015H12.5261C12.8985 15.0098 13.2541 14.8596 13.5174 14.5963C13.7807 14.333 13.931 13.9773 13.9361 13.605V5.86499L7.54611 0.934998Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"home"===this.props.name&&s.createElement("svg",{width:"13",height:"14",viewBox:"0 0 13 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M6.56547 0.764991L0.975466 5.115V11.945C0.974867 12.2743 1.10424 12.5905 1.33547 12.825C1.57112 13.0544 1.88658 13.1835 2.21546 13.185H4.83547V7.665H8.28546V13.185H10.9055C11.2348 13.1856 11.551 13.0562 11.7855 12.825C11.9031 12.7107 11.9965 12.5739 12.0601 12.4227C12.1237 12.2715 12.1561 12.109 12.1555 11.945V5.115L6.56547 0.764991Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"key"===this.props.name&&s.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M4.96613 14.385C6.75553 14.385 8.20613 12.9344 8.20613 11.145C8.20613 9.3556 6.75553 7.905 4.96613 7.905C3.17672 7.905 1.72614 9.3556 1.72614 11.145C1.72614 12.9344 3.17672 14.385 4.96613 14.385Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M14.5461 1.565L7.2561 8.845",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M13.3461 5.735L15.2061 3.875",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"lock-open"===this.props.name&&s.createElement("svg",{width:"12",height:"16",viewBox:"0 0 12 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M10.3155 7.4H1.73545C1.31019 7.4 0.965454 7.74475 0.965454 8.17001V14.23C0.965454 14.6553 1.31019 15 1.73545 15H10.3155C10.7407 15 11.0854 14.6553 11.0854 14.23V8.17001C11.0854 7.74475 10.7407 7.4 10.3155 7.4Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinejoin:"round"}),s.createElement("path",{d:"M2.57545 7.4V4.4C2.57413 3.94657 2.66246 3.49735 2.83537 3.07818C3.00828 2.65901 3.26237 2.27817 3.58299 1.95754C3.90362 1.63692 4.28446 1.38283 4.70363 1.20992C5.1228 1.03701 5.57202 0.948684 6.02545 0.950004C6.84173 0.948607 7.6319 1.23752 8.25476 1.76511C8.87762 2.29271 9.29256 3.02462 9.42545 3.83001",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"lock"===this.props.name&&s.createElement("svg",{width:"12",height:"16",viewBox:"0 0 12 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M10.2155 7.41H1.90546C1.49124 7.41 1.15546 7.74579 1.15546 8.16V14.03C1.15546 14.4442 1.49124 14.78 1.90546 14.78H10.2155C10.6297 14.78 10.9655 14.4442 10.9655 14.03V8.16C10.9655 7.74579 10.6297 7.41 10.2155 7.41Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinejoin:"round"}),s.createElement("path",{d:"M2.72546 7.39999V4.52C2.72546 3.63153 3.07841 2.77945 3.70666 2.1512C4.3349 1.52295 5.18699 1.17 6.07546 1.17V1.17C6.96394 1.17 7.81603 1.52295 8.44427 2.1512C9.07252 2.77945 9.42546 3.63153 9.42546 4.52V7.39999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"settings"===this.props.name&&s.createElement("svg",{width:"13",height:"16",viewBox:"0 0 13 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M0.786133 3.105H3.55614",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M5.98615 3.105H11.7262",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M0.786133 7.97501H8.09613",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M10.5361 7.97501H11.7261",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M0.786133 12.835H3.82614",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M6.2561 12.835H11.7261",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M3.55615 1.285V4.935",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M8.09613 6.145V9.795",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M3.82617 11.015V14.665",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"tag"===this.props.name&&s.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M13.62 8.39256L14.93 4.53256C14.9802 4.38718 14.989 4.23071 14.9554 4.08062C14.9219 3.93053 14.8473 3.79272 14.74 3.68255L12.38 1.32255C12.2698 1.21524 12.132 1.14064 11.9819 1.10709C11.8318 1.07354 11.6754 1.08236 11.53 1.13255L7.66999 2.44256C7.54938 2.48377 7.43989 2.5522 7.34999 2.64256L1.43999 8.62255C1.3638 8.6987 1.30335 8.78912 1.26211 8.88863C1.22087 8.98815 1.19965 9.09483 1.19965 9.20255C1.19965 9.31028 1.22087 9.41694 1.26211 9.51646C1.30335 9.61598 1.3638 9.70641 1.43999 9.78256L6.34999 14.6226C6.42614 14.6987 6.51656 14.7592 6.61608 14.8004C6.7156 14.8417 6.82227 14.8629 6.92999 14.8629C7.03772 14.8629 7.14439 14.8417 7.2439 14.8004C7.34342 14.7592 7.43384 14.6987 7.50999 14.6226L13.44 8.69256C13.5206 8.60648 13.582 8.50421 13.62 8.39256V8.39256Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeMiterlimit:"10",strokeLinecap:"round"}),s.createElement("path",{d:"M11.78 5.34255C12.3433 5.34255 12.8 4.88588 12.8 4.32255C12.8 3.75922 12.3433 3.30256 11.78 3.30256C11.2167 3.30256 10.76 3.75922 10.76 4.32255C10.76 4.88588 11.2167 5.34255 11.78 5.34255Z",fill:"var(--icon-color)",stroke:"none"})),"2-columns-narrow-right"===this.props.name&&s.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M13.4927 1.01001H2.75269C1.90769 1.01001 1.22266 1.69501 1.22266 2.54001V13.28C1.22266 14.125 1.90769 14.81 2.75269 14.81H13.4927C14.3377 14.81 15.0226 14.125 15.0226 13.28V2.54001C15.0226 1.69501 14.3377 1.01001 13.4927 1.01001Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M10.4227 1.01001V14.81",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"2+2-columns"===this.props.name&&s.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M13.0927 1.01001H2.35266C1.50767 1.01001 0.822693 1.69501 0.822693 2.54001V13.28C0.822693 14.125 1.50767 14.81 2.35266 14.81H13.0927C13.9376 14.81 14.6227 14.125 14.6227 13.28V2.54001C14.6227 1.69501 13.9376 1.01001 13.0927 1.01001Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M10.0226 1.01001V7.91",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M5.35266 7.91V14.81",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M14.6227 7.91H0.822693",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"3+1-columns"===this.props.name&&s.createElement("svg",{width:"16",height:"17",viewBox:"0 0 16 17",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M13.2927 1.66H2.55267C1.70768 1.66 1.02264 2.34501 1.02264 3.19V13.93C1.02264 14.775 1.70768 15.46 2.55267 15.46H13.2927C14.1377 15.46 14.8227 14.775 14.8227 13.93V3.19C14.8227 2.34501 14.1377 1.66 13.2927 1.66Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M5.62268 1.66V6.51999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M10.2227 1.66V6.51999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M14.8227 6.51999H1.02264",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"bug"===this.props.name&&s.createElement("svg",{width:"15",height:"16",viewBox:"0 0 15 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M7.73268 5.40999C8.15113 5.40867 8.56568 5.48993 8.95265 5.64916C9.33962 5.80838 9.6914 6.04242 9.98775 6.33785C10.2841 6.63327 10.5192 6.98427 10.6796 7.37074C10.8401 7.75721 10.9227 8.17154 10.9227 8.58998V9.98998C10.9227 10.836 10.5866 11.6474 9.98836 12.2457C9.39012 12.8439 8.57872 13.18 7.73268 13.18C7.31424 13.18 6.89991 13.0974 6.51344 12.937C6.12697 12.7765 5.77597 12.5414 5.48055 12.245C5.18512 11.9487 4.95111 11.5969 4.79189 11.21C4.63267 10.823 4.55137 10.4084 4.55269 9.98998V8.58998C4.55269 7.74659 4.88772 6.93775 5.48409 6.34139C6.08045 5.74502 6.88929 5.40999 7.73268 5.40999V5.40999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M5.74268 5.41V4.69C5.74268 4.2577 5.91441 3.8431 6.22009 3.53741C6.52578 3.23173 6.94038 3.06 7.37268 3.06H8.09265C8.52495 3.06 8.93955 3.23173 9.24524 3.53741C9.55092 3.8431 9.72266 4.2577 9.72266 4.69V5.41",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M6.06268 1.45999C6.99268 1.64999 7.61268 2.11999 7.62268 2.64999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M9.40265 1.45999C8.47265 1.64999 7.85265 2.11999 7.84265 2.64999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M10.8627 7.95999L13.5427 6.51001L12.5427 4.31",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M10.9227 9.29999H13.0226L14.1627 11.8",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M10.5427 11.51L12.0126 12.78L10.5427 14.91",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M4.52264 7.95999L1.84265 6.51001L2.84265 4.31",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M4.46265 9.29999H2.36267L1.22266 11.8",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M4.84265 11.51L3.36267 12.78L4.84265 14.91",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"cloud"===this.props.name&&s.createElement("svg",{width:"17",height:"13",viewBox:"0 0 17 13",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M12.2073 5.06497H11.3573C11.1192 4.10573 10.616 3.2328 9.90537 2.54587C9.19474 1.85894 8.30523 1.38569 7.33847 1.18018C6.3717 0.974661 5.36663 1.04515 4.43801 1.38361C3.5094 1.72206 2.69467 2.31484 2.08688 3.09424C1.47909 3.87364 1.10273 4.80825 1.00077 5.79135C0.898818 6.77445 1.07538 7.76642 1.51029 8.65396C1.94521 9.5415 2.62095 10.2889 3.46035 10.8107C4.29975 11.3325 5.26897 11.6077 6.25733 11.605H12.2073C13.0746 11.605 13.9063 11.2605 14.5196 10.6472C15.1328 10.034 15.4773 9.20222 15.4773 8.33496C15.4773 7.4677 15.1328 6.63598 14.5196 6.02274C13.9063 5.40949 13.0746 5.06497 12.2073 5.06497V5.06497Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"columns-caret-left"===this.props.name&&s.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M13.6927 1.01001H2.9527C2.1077 1.01001 1.42267 1.69501 1.42267 2.54001V13.28C1.42267 14.125 2.1077 14.81 2.9527 14.81H13.6927C14.5377 14.81 15.2227 14.125 15.2227 13.28V2.54001C15.2227 1.69501 14.5377 1.01001 13.6927 1.01001Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M6.02271 1.01001V14.81",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M11.9327 5.59L9.61267 7.91L11.9327 10.23",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"columns-caret-right"===this.props.name&&s.createElement("svg",{width:"17",height:"16",viewBox:"0 0 17 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M13.8927 1.01001H3.15265C2.30765 1.01001 1.62268 1.69501 1.62268 2.54001V13.28C1.62268 14.125 2.30765 14.81 3.15265 14.81H13.8927C14.7377 14.81 15.4227 14.125 15.4227 13.28V2.54001C15.4227 1.69501 14.7377 1.01001 13.8927 1.01001Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M6.22266 1.01001V14.81",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M9.81268 10.23L12.1327 7.91L9.81268 5.59",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"columns-narrow-left"===this.props.name&&s.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M13.6927 1.01001H2.95267C2.10767 1.01001 1.42267 1.69501 1.42267 2.54001V13.28C1.42267 14.125 2.10767 14.81 2.95267 14.81H13.6927C14.5377 14.81 15.2227 14.125 15.2227 13.28V2.54001C15.2227 1.69501 14.5377 1.01001 13.6927 1.01001Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M6.02264 1.01001V14.81",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"columns"===this.props.name&&s.createElement("svg",{width:"17",height:"17",viewBox:"0 0 17 17",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M13.8926 1.66H3.15265C2.30765 1.66 1.62265 2.34501 1.62265 3.19V13.93C1.62265 14.775 2.30765 15.46 3.15265 15.46H13.8926C14.7376 15.46 15.4227 14.775 15.4227 13.93V3.19C15.4227 2.34501 14.7376 1.66 13.8926 1.66Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M6.22266 1.66V15.46",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M10.8227 1.66V15.46",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"dashboard-2"===this.props.name&&s.createElement("svg",{width:"17",height:"13",viewBox:"0 0 17 13",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M14.1126 3.82999C15.0921 5.06821 15.6243 6.6012 15.6227 8.17999C15.6218 9.26541 15.3721 10.3362 14.8927 11.31",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M2.20267 11.28C1.72784 10.3157 1.48147 9.25491 1.48267 8.18001C1.48722 7.09544 1.74051 6.02639 2.22309 5.0551C2.70566 4.0838 3.40465 3.23616 4.26624 2.57741C5.12783 1.91865 6.12907 1.46634 7.19291 1.25529C8.25675 1.04424 9.35483 1.08005 10.4027 1.36",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M8.55267 8.17999L12.4326 2.34",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M15.6227 8.17999H14.0527",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M8.55267 1.12V2.69",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M3.56262 3.19L4.67264 4.29999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M1.49268 8.17999H3.06268",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"dice"===this.props.name&&s.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M7.14615 5.29L1.81615 6.97C1.50297 7.07105 1.24229 7.29153 1.09065 7.58358C0.939009 7.87563 0.908637 8.2157 1.00615 8.52999L2.68616 13.86C2.78515 14.175 3.00477 14.4381 3.29706 14.5917C3.58934 14.7453 3.93054 14.7771 4.24615 14.68L9.57616 13C9.73199 12.9511 9.87662 12.8719 10.0018 12.7669C10.1269 12.6619 10.23 12.5333 10.3053 12.3883C10.3806 12.2433 10.4265 12.0849 10.4403 11.9222C10.4542 11.7595 10.4358 11.5956 10.3862 11.44L8.70616 6.1C8.60511 5.78683 8.38463 5.52612 8.09257 5.37448C7.80052 5.22283 7.46044 5.19249 7.14615 5.29V5.29Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M11.6762 10.09C11.8345 10.1286 11.9988 10.1353 12.1597 10.1098C12.3207 10.0843 12.4749 10.0271 12.6135 9.94154C12.7521 9.85595 12.8724 9.74366 12.9673 9.61122C13.0621 9.47877 13.1297 9.32879 13.1662 9.17L14.4562 3.72001C14.5313 3.40046 14.4766 3.06417 14.3041 2.78486C14.1317 2.50556 13.8555 2.30603 13.5362 2.23002L8.09618 0.940016C7.77417 0.867702 7.43664 0.924619 7.15614 1.09852C6.87565 1.27243 6.67459 1.54943 6.59618 1.87001L6.13617 3.87001",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M3.43617 9.62C3.878 9.62 4.23618 9.26184 4.23618 8.82001C4.23618 8.37818 3.878 8.01999 3.43617 8.01999C2.99434 8.01999 2.63617 8.37818 2.63617 8.82001C2.63617 9.26184 2.99434 9.62 3.43617 9.62Z",fill:"var(--icon-color)",stroke:"none"}),s.createElement("path",{d:"M6.88617 8.51999C7.328 8.51999 7.68617 8.16183 7.68617 7.72C7.68617 7.27817 7.328 6.92001 6.88617 6.92001C6.44434 6.92001 6.08618 7.27817 6.08618 7.72C6.08618 8.16183 6.44434 8.51999 6.88617 8.51999Z",fill:"var(--icon-color)",stroke:"none"}),s.createElement("path",{d:"M5.69617 10.79C6.13799 10.79 6.49617 10.4318 6.49617 9.98999C6.49617 9.54816 6.13799 9.19 5.69617 9.19C5.25434 9.19 4.89618 9.54816 4.89618 9.98999C4.89618 10.4318 5.25434 10.79 5.69617 10.79Z",fill:"var(--icon-color)",stroke:"none"}),s.createElement("path",{d:"M4.52618 13.05C4.96801 13.05 5.32619 12.6918 5.32619 12.25C5.32619 11.8082 4.96801 11.45 4.52618 11.45C4.08436 11.45 3.7262 11.8082 3.7262 12.25C3.7262 12.6918 4.08436 13.05 4.52618 13.05Z",fill:"var(--icon-color)",stroke:"none"}),s.createElement("path",{d:"M7.96614 11.97C8.40797 11.97 8.76614 11.6118 8.76614 11.17C8.76614 10.7282 8.40797 10.37 7.96614 10.37C7.52431 10.37 7.16614 10.7282 7.16614 11.17C7.16614 11.6118 7.52431 11.97 7.96614 11.97Z",fill:"var(--icon-color)",stroke:"none"}),s.createElement("path",{d:"M11.2362 8.48999C11.678 8.48999 12.0362 8.13183 12.0362 7.69C12.0362 7.24817 11.678 6.89001 11.2362 6.89001C10.7943 6.89001 10.4362 7.24817 10.4362 7.69C10.4362 8.13183 10.7943 8.48999 11.2362 8.48999Z",fill:"var(--icon-color)",stroke:"none"}),s.createElement("path",{d:"M8.54616 4.14001C8.98799 4.14001 9.34616 3.78182 9.34616 3.34C9.34616 2.89817 8.98799 2.54001 8.54616 2.54001C8.10433 2.54001 7.74615 2.89817 7.74615 3.34C7.74615 3.78182 8.10433 4.14001 8.54616 4.14001Z",fill:"var(--icon-color)",stroke:"none"})),"face-ID"===this.props.name&&s.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M1.35001 5.07001V2.51001C1.34869 2.33845 1.38134 2.16831 1.44608 2.00943C1.51082 1.85055 1.60637 1.70607 1.72722 1.58429C1.84807 1.46251 1.99183 1.36585 2.15021 1.2999C2.30859 1.23394 2.47845 1.19998 2.65002 1.19998H4.95001",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M10.72 1.19998H13.29C13.4616 1.19998 13.6315 1.23394 13.7898 1.2999C13.9482 1.36585 14.092 1.46251 14.2128 1.58429C14.3337 1.70607 14.4292 1.85055 14.494 2.00943C14.5587 2.16831 14.5913 2.33845 14.59 2.51001V4.79999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M14.59 10.59V13.16C14.59 13.5057 14.4534 13.8374 14.2098 14.0828C13.9663 14.3282 13.6357 14.4674 13.29 14.47H10.99",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M5.22 14.45H2.67C2.3243 14.4473 1.99366 14.3082 1.75014 14.0628C1.50663 13.8174 1.36999 13.4857 1.37 13.14V10.84",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M4.94 5.53V7.13",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M11.01 5.53V7.13",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M7.97 5.39999V8.23999C7.97002 8.38679 7.9124 8.52774 7.80953 8.63248C7.70666 8.73721 7.56678 8.79737 7.42 8.79999H7.31",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M10.1 10.28C9.49291 10.8839 8.67138 11.223 7.81503 11.223C6.95867 11.223 6.13715 10.8839 5.53003 10.28",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"fingerprint"===this.props.name&&s.createElement("svg",{width:"16",height:"17",viewBox:"0 0 16 17",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M8.68002 16C7.83861 15.3719 7.15609 14.5553 6.68721 13.6158C6.21833 12.6763 5.97612 11.64 5.98003 10.59C6.01806 10.0205 6.27111 9.48669 6.68794 9.09676C7.10478 8.70683 7.65424 8.48989 8.22502 8.48989C8.79581 8.48989 9.34526 8.70683 9.7621 9.09676C10.1789 9.48669 10.432 10.0205 10.47 10.59C10.47 10.8841 10.528 11.1754 10.6405 11.4472C10.7531 11.719 10.9181 11.9659 11.1261 12.1739C11.3341 12.3819 11.581 12.5469 11.8528 12.6595C12.1246 12.772 12.4159 12.83 12.71 12.83C13.0042 12.83 13.2955 12.772 13.5672 12.6595C13.839 12.5469 14.0859 12.3819 14.2939 12.1739C14.5019 11.9659 14.6669 11.719 14.7795 11.4472C14.8921 11.1754 14.95 10.8841 14.95 10.59C14.9417 8.90033 14.2971 7.27584 13.1447 6.04012C11.9923 4.8044 10.4167 4.04814 8.73169 3.92202C7.04672 3.7959 5.37609 4.30918 4.05258 5.35958C2.72907 6.40997 1.84984 7.9204 1.59003 9.58998",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeMiterlimit:"10",strokeLinecap:"round"}),s.createElement("path",{d:"M12.6801 10.59C12.6801 9.39652 12.2059 8.25193 11.362 7.40802C10.5181 6.56411 9.37353 6.09 8.18005 6.09C6.98658 6.09 5.84198 6.56411 4.99807 7.40802C4.15416 8.25193 3.68005 9.39652 3.68005 10.59C3.67942 12.0766 4.04704 13.5402 4.75005 14.85",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeMiterlimit:"10",strokeLinecap:"round"}),s.createElement("path",{d:"M3.52002 2.98998C5.11912 2.00811 6.98513 1.55064 8.85704 1.68153C10.7289 1.81242 12.5131 2.52514 13.96 3.71999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeMiterlimit:"10",strokeLinecap:"round"}),s.createElement("path",{d:"M8.22003 10.59C8.2202 11.6349 8.58483 12.6471 9.2511 13.4521C9.91736 14.2571 10.8435 14.8045 11.87 15",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeMiterlimit:"10",strokeLinecap:"round"})),"folder-root"===this.props.name&&s.createElement("svg",{width:"15",height:"13",viewBox:"0 0 15 13",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M14 10.7744C14.0001 10.9354 13.9668 11.0948 13.9022 11.2436C13.8375 11.3923 13.7427 11.5275 13.6232 11.6413C13.3765 11.8699 13.0463 11.9985 12.7021 12H2.29791C1.95367 11.9985 1.62347 11.8699 1.37681 11.6413C1.25728 11.5275 1.16248 11.3923 1.09782 11.2436C1.03317 11.0948 0.999929 10.9354 1 10.7744V2.22555C0.999929 2.06459 1.03317 1.90517 1.09782 1.75643C1.16248 1.6077 1.25728 1.47257 1.37681 1.35871C1.62347 1.13012 1.95367 1.00152 2.29791 1H5.55314L6.85105 2.83333H12.7021C13.0463 2.83485 13.3765 2.96345 13.6232 3.19204C13.7427 3.30589 13.8375 3.44106 13.9022 3.58979C13.9668 3.73853 14.0001 3.89792 14 4.05888V10.7744Z",fill:"var(--icon-background-color)",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M7.49995 4.91578L4.25519 7.26721V10.9937C4.25519 11.1733 4.33018 11.3457 4.46366 11.4727C4.59714 11.5998 4.77817 11.6712 4.96694 11.6712H6.46372V8.68208H8.45245V11.6712H9.9597C10.0532 11.6715 10.1458 11.6541 10.232 11.6199C10.3183 11.5856 10.3965 11.5353 10.4621 11.4719C10.5938 11.344 10.6688 11.1727 10.6715 10.9937V7.26721L7.49995 4.91578Z",fill:"var(--icon-color)",stroke:"none"})),"folder-shared"===this.props.name&&s.createElement("svg",{width:"15",height:"13",viewBox:"0 0 15 13",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M14 10.7744C14.0001 10.9354 13.9668 11.0948 13.9022 11.2436C13.8375 11.3923 13.7427 11.5275 13.6232 11.6413C13.3765 11.8699 13.0463 11.9985 12.7021 12H2.2979C1.95366 11.9985 1.62347 11.8699 1.37681 11.6413C1.25728 11.5275 1.16248 11.3923 1.09782 11.2436C1.03317 11.0948 0.999929 10.9354 1 10.7744V2.22555C0.999929 2.06459 1.03317 1.90517 1.09782 1.75643C1.16248 1.6077 1.25728 1.47256 1.37681 1.35871C1.62347 1.13012 1.95366 1.00152 2.2979 1H5.55314L6.85104 2.83333H12.7021C13.0463 2.83485 13.3765 2.96345 13.6232 3.19204C13.7427 3.30589 13.8375 3.44106 13.9022 3.58979C13.9668 3.73853 14.0001 3.89791 14 4.05888V10.7744Z",fill:"var(--icon-background-color)",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M10.3889 12V10.7246C10.3922 10.3531 10.2418 9.99517 9.97022 9.72827C9.83273 9.59843 9.66922 9.49625 9.48941 9.42779C9.30959 9.35932 9.11715 9.32597 8.92353 9.32972H6.05557C5.8655 9.3284 5.67704 9.36305 5.50116 9.43168C5.32528 9.50031 5.1655 9.60154 5.03109 9.72948C4.89668 9.85743 4.79034 10.0095 4.71824 10.177C4.64615 10.3444 4.60973 10.5238 4.61112 10.7047V11.9801",fill:"var(--icon-color)",stroke:"none"}),s.createElement("path",{d:"M7.49998 7.97461C7.78567 7.97461 8.06493 7.89397 8.30247 7.74288C8.54001 7.5918 8.72515 7.37705 8.83448 7.1258C8.9438 6.87456 8.97241 6.59808 8.91667 6.33136C8.86094 6.06464 8.72337 5.81965 8.52136 5.62735C8.31935 5.43505 8.06198 5.30409 7.78178 5.25103C7.50159 5.19798 7.21116 5.22523 6.94722 5.3293C6.68329 5.43337 6.45769 5.60961 6.29897 5.83573C6.14025 6.06184 6.05554 6.32766 6.05554 6.59961C6.05554 6.96428 6.20772 7.31404 6.47861 7.5719C6.74949 7.82977 7.11689 7.97461 7.49998 7.97461Z",fill:"var(--icon-color)",stroke:"none"})),"heart-o"===this.props.name&&s.createElement("svg",{width:"17",height:"15",viewBox:"0 0 17 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M8.46701 14.12C8.39968 14.1229 8.33253 14.1109 8.27032 14.085C8.20811 14.0591 8.15238 14.0198 8.10702 13.97L2.98703 9.04L2.75701 8.82L2.30703 8.29C2.10475 8.03461 1.91773 7.76746 1.747 7.48998C1.56775 7.17196 1.42039 6.837 1.30703 6.48998C1.1817 6.1264 1.11749 5.74455 1.11703 5.35998C1.08303 4.84662 1.15416 4.33172 1.32611 3.84682C1.49806 3.36192 1.76721 2.91725 2.11703 2.54C2.50658 2.19036 2.9619 1.92184 3.45639 1.75014C3.95087 1.57845 4.4746 1.50701 4.997 1.54C5.33771 1.5472 5.67517 1.60793 5.997 1.71999C6.34988 1.83562 6.68607 1.99697 6.997 2.19997C7.26741 2.3717 7.52783 2.5587 7.777 2.76C7.99865 2.93314 8.20908 3.12018 8.40701 3.32C8.59918 3.11788 8.80644 2.93068 9.027 2.76C9.247 2.58 9.50703 2.39997 9.80703 2.19997C10.1184 1.99766 10.4545 1.83635 10.807 1.71999C11.1286 1.60695 11.4662 1.54619 11.807 1.54C12.3295 1.50645 12.8534 1.57762 13.3479 1.74935C13.8425 1.92107 14.2978 2.18989 14.687 2.54C15.0388 2.9159 15.3092 3.36039 15.4813 3.84563C15.6534 4.33088 15.7234 4.84641 15.687 5.35998C15.6358 6.06837 15.4442 6.75949 15.1231 7.39303C14.802 8.02656 14.358 8.58983 13.817 9.04998L8.70703 13.97C8.64352 14.0425 8.56002 14.0947 8.46701 14.12Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"heart"===this.props.name&&s.createElement("svg",{width:"16",height:"14",viewBox:"0 0 16 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M8.05462 13.12C7.98595 13.1217 7.91766 13.1093 7.854 13.0835C7.79034 13.0577 7.73269 13.0191 7.68462 12.97L2.57461 8.04L2.34463 7.82L1.89462 7.29C1.68905 7.03708 1.5019 6.7697 1.33462 6.48998C1.15536 6.17196 1.00798 5.837 0.894616 5.48998C0.769279 5.1264 0.705073 4.74455 0.704614 4.35998C0.670613 3.84662 0.74177 3.33172 0.91372 2.84682C1.08567 2.36192 1.35479 1.91725 1.70461 1.54C2.09386 1.18989 2.54913 0.921074 3.04369 0.74935C3.53826 0.577625 4.06216 0.506451 4.58462 0.539999C4.92533 0.547199 5.26278 0.607934 5.58462 0.719992C5.93749 0.835618 6.27369 0.996973 6.58462 1.19997C6.88462 1.39997 7.14462 1.58 7.36462 1.76C7.58627 1.93314 7.79669 2.12018 7.99462 2.32C8.18679 2.11788 8.39405 1.93068 8.61462 1.76C8.83462 1.58 9.09462 1.39997 9.39462 1.19997C9.70594 0.997665 10.042 0.836354 10.3946 0.719992C10.716 0.606272 11.0537 0.545489 11.3946 0.539999C11.9171 0.506451 12.441 0.577625 12.9355 0.74935C13.4301 0.921074 13.8854 1.18989 14.2746 1.54C14.6264 1.9159 14.8968 2.36039 15.0689 2.84563C15.241 3.33088 15.311 3.84641 15.2746 4.35998C15.2235 5.06837 15.0317 5.75949 14.7107 6.39303C14.3896 7.02656 13.9457 7.58983 13.4046 8.04998L8.29461 12.97C8.23111 13.0425 8.14763 13.0947 8.05462 13.12V13.12Z",fill:"var(--icon-color)",stroke:"none"})),"heartbeat"===this.props.name&&s.createElement("svg",{width:"16",height:"14",viewBox:"0 0 16 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M14.524 7.18165H9.754L8.55402 13.14L6.14401 1.69998L4.95401 7.03865H1.284",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"Pin"===this.props.name&&s.createElement("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M8.98903 8.67999L10.849 5.16L11.019 5.32999C11.2505 5.55539 11.5609 5.68152 11.884 5.68152C12.2072 5.68152 12.5175 5.55539 12.749 5.32999C12.863 5.21661 12.9535 5.08183 13.0152 4.93338C13.0769 4.78493 13.1087 4.62576 13.1087 4.465C13.1087 4.30423 13.0769 4.14506 13.0152 3.99661C12.9535 3.84817 12.863 3.71338 12.749 3.60001L10.419 1.26999C10.1896 1.04058 9.87847 0.911713 9.55403 0.911713C9.22959 0.911713 8.91844 1.04058 8.68903 1.26999C8.45961 1.4994 8.33073 1.81057 8.33073 2.13501C8.33073 2.45945 8.45961 2.77059 8.68903 3L8.86903 3.16998L5.33904 5.03C4.87276 4.77332 4.33557 4.67547 3.80873 4.75125C3.28189 4.82703 2.79407 5.07229 2.41904 5.44998L2.00903 5.85001L8.16904 12.01L8.56903 11.61C8.94755 11.2334 9.19324 10.7438 9.26901 10.2152C9.34478 9.68667 9.2465 9.14779 8.98903 8.67999V8.67999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M3.89906 10.13L1.29907 12.73",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"plug"===this.props.name&&s.createElement("svg",{width:"13",height:"15",viewBox:"0 0 13 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M4.01277 5.26999C3.52129 5.84389 3.26446 6.58213 3.29362 7.33716C3.32278 8.09219 3.63577 8.8084 4.17005 9.34268C4.70434 9.87697 5.42058 10.19 6.17561 10.2191C6.93064 10.2483 7.66884 9.99148 8.24275 9.5L10.3528 7.38998L6.13276 3.16L4.01277 5.26999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M4.01273 9.5L1.96271 11.5C1.7532 11.7098 1.61057 11.9769 1.5528 12.2677C1.49503 12.5585 1.52473 12.8599 1.63816 13.1339C1.75158 13.4078 1.94364 13.642 2.19007 13.8068C2.4365 13.9716 2.72623 14.0597 3.02271 14.06H12.0227",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M8.17273 2.82999L9.46271 1.54001",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M10.6927 5.35001L11.9828 4.06",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M5.58276 2.62L10.8528 7.89001",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"server"===this.props.name&&s.createElement("svg",{width:"15",height:"14",viewBox:"0 0 15 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M12.2891 8.79999H2.47908C1.93232 8.79999 1.48907 9.24325 1.48907 9.79001V11.77C1.48907 12.3168 1.93232 12.76 2.47908 12.76H12.2891C12.8358 12.76 13.2791 12.3168 13.2791 11.77V9.79001C13.2791 9.24325 12.8358 8.79999 12.2891 8.79999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M1.48907 7.01001V5.82999C1.48907 5.56477 1.59443 5.31043 1.78197 5.12289C1.9695 4.93536 2.22386 4.82999 2.48907 4.82999H12.2991C12.5643 4.82999 12.8186 4.93536 13.0062 5.12289C13.1937 5.31043 13.2991 5.56477 13.2991 5.82999V7.01001",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M1.48907 3.04999V1.87C1.48907 1.60478 1.59443 1.35044 1.78197 1.1629C1.9695 0.975366 2.22386 0.869995 2.48907 0.869995H12.2991C12.5643 0.869995 12.8186 0.975366 13.0062 1.1629C13.1937 1.35044 13.2991 1.60478 13.2991 1.87V3.04999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M3.46906 3.60999C3.88327 3.60999 4.21906 3.2742 4.21906 2.85999C4.21906 2.44577 3.88327 2.10999 3.46906 2.10999C3.05484 2.10999 2.71906 2.44577 2.71906 2.85999C2.71906 3.2742 3.05484 3.60999 3.46906 3.60999Z",fill:"var(--icon-color)",stroke:"none"}),s.createElement("path",{d:"M3.46906 7.57001C3.88327 7.57001 4.21906 7.23422 4.21906 6.82001C4.21906 6.40579 3.88327 6.07001 3.46906 6.07001C3.05484 6.07001 2.71906 6.40579 2.71906 6.82001C2.71906 7.23422 3.05484 7.57001 3.46906 7.57001Z",fill:"var(--icon-color)",stroke:"none"}),s.createElement("path",{d:"M3.46906 11.53C3.88327 11.53 4.21906 11.1942 4.21906 10.78C4.21906 10.3658 3.88327 10.03 3.46906 10.03C3.05484 10.03 2.71906 10.3658 2.71906 10.78C2.71906 11.1942 3.05484 11.53 3.46906 11.53Z",fill:"var(--icon-color)",stroke:"none"})),"share-2"===this.props.name&&s.createElement("svg",{width:"17",height:"14",viewBox:"0 0 17 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M8.11267 11.7L6.36267 13.21L6.32269 7.70999L1.16266 5.44L15.9727 1.45999L10.7827 12.82L8.21265 8.38",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"failed"===this.props.name&&s.createElement("svg",{width:"127",height:"127",viewBox:"0 0 127 127",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("circle",{cx:"63.25",cy:"63.1909",r:"61",stroke:"var(--icon-failed-color)",strokeWidth:"4"}),s.createElement("g",{clipPath:"url(#clip0_174_687280)"},s.createElement("path",{d:"M63.249 32.4197L63.249 69.784",stroke:"var(--icon-failed-color)",strokeWidth:"6.66667",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M63.249 85.2234H63.1493",stroke:"var(--icon-failed-color)",strokeWidth:"6.66667",strokeLinecap:"round",strokeLinejoin:"round"})),s.createElement("defs",null,s.createElement("clipPath",{id:"clip0_174_687280"},s.createElement("rect",{width:"68.1081",height:"68.1081",fill:"var(--icon-exclamation-color)",transform:"translate(29.1959 29.137)"})))),"success"===this.props.name&&s.createElement("svg",{width:"127",height:"127",viewBox:"0 0 127 127",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("circle",{cx:"63.25",cy:"63.1909",r:"61",stroke:"var(--icon-success-color)",strokeWidth:"4"}),s.createElement("path",{d:"M85.9519 46.1641L54.7357 77.3803L40.5465 63.1911",stroke:"var(--icon-success-color)",strokeWidth:"6.69935",strokeLinecap:"round",strokeLinejoin:"round"})),"exclamation"===this.props.name&&s.createElement("svg",{width:"13",height:"13",viewBox:"0 0 13 13",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("path",{d:"M6.70175 0.0187378C5.51507 0.0187378 4.35498 0.370631 3.36829 1.02992C2.38159 1.68921 1.61254 2.62628 1.15842 3.72264C0.704293 4.81899 0.585428 6.02539 0.816939 7.18927C1.04845 8.35316 1.62007 9.42228 2.45918 10.2614C3.29829 11.1005 4.36718 11.6719 5.53107 11.9035C6.69495 12.135 7.90159 12.0161 8.99794 11.562C10.0943 11.1079 11.0313 10.3389 11.6905 9.35217C12.3498 8.36548 12.7017 7.20539 12.7017 6.0187C12.7017 4.42741 12.0695 2.90129 10.9443 1.77607C9.81911 0.650856 8.29305 0.0187378 6.70175 0.0187378Z",fill:"var(--icon-exclamation-background-color)"}),s.createElement("path",{d:"M6.71118 3.0694L6.71118 6.6279",stroke:"var(--icon-exclamation-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),s.createElement("path",{d:"M6.71118 9H6.70169",stroke:"var(--icon-exclamation-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"spinner"===this.props.name&&s.createElement("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.createElement("circle",{cx:"8",cy:"8",r:"8",transform:"translate(1 1)",fill:"none",stroke:"var(--spinner-background)",strokeWidth:"var(--spinner-stroke-width)"}),s.createElement("ellipse",{id:"loading",rx:"8",ry:"8",transform:"translate(9 9)",fill:"none",stroke:"var(--spinner-color)",strokeWidth:"var(--spinner-stroke-width)",strokeLinecap:"round"})))}}F.defaultProps={big:!1,baseline:!1,dim:!1,onClick:()=>{}},F.propTypes={name:i().string,big:i().bool,dim:i().bool,baseline:i().bool,onClick:i().func};const O=F;class K extends s.Component{constructor(e){super(e),this.bindCallbacks()}bindCallbacks(){this.handleCloseClick=this.handleCloseClick.bind(this)}handleCloseClick(){this.props.onClose()}getClassName(){let e="dialog-close button button-transparent";return this.props.disabled&&(e+=" disabled"),e}render(){return s.createElement("a",{className:this.getClassName(),onClick:this.handleCloseClick,role:"button"},s.createElement(O,{name:"close"}),s.createElement("span",{className:"visually-hidden"},s.createElement(f.c,null,"Close")))}}K.propTypes={onClose:i().func,disabled:i().bool};const V=(0,k.Z)("common")(K);class G extends s.Component{render(){return s.createElement("div",{className:"tooltip"},this.props.children,s.createElement("span",{className:`tooltip-text ${this.props.direction}`},this.props.message))}}G.defaultProps={direction:"right"},G.propTypes={children:i().any,message:i().any.isRequired,direction:i().string};const B=G;class H extends s.Component{constructor(e){super(e),this.bindCallbacks()}bindCallbacks(){this.handleKeyDown=this.handleKeyDown.bind(this),this.handleClose=this.handleClose.bind(this)}handleKeyDown(e){27===e.keyCode&&this.handleClose()}handleClose(){this.props.disabled||this.props.onClose()}componentDidMount(){document.addEventListener("keydown",this.handleKeyDown,{capture:!0})}componentWillUnmount(){document.removeEventListener("keydown",this.handleKeyDown,{capture:!0})}render(){return s.createElement("div",{className:`${this.props.className} dialog-wrapper`},s.createElement("div",{className:"dialog"},s.createElement("div",{className:"dialog-header"},s.createElement("div",{className:"dialog-title-wrapper"},s.createElement("h2",null,s.createElement("span",{className:"dialog-header-title"},this.props.title),this.props.subtitle&&s.createElement("span",{className:"dialog-header-subtitle"},this.props.subtitle)),this.props.tooltip&&""!==this.props.tooltip&&s.createElement(B,{message:this.props.tooltip},s.createElement(O,{name:"info-circle"}))),s.createElement(V,{onClose:this.handleClose,disabled:this.props.disabled})),s.createElement("div",{className:"dialog-content"},this.props.children)))}}H.propTypes={children:i().node,className:i().string,title:i().string,subtitle:i().string,tooltip:i().string,disabled:i().bool,onClose:i().func};const $=H;class Z extends s.Component{constructor(e){super(e),this.bindCallbacks()}bindCallbacks(){this.handleClick=this.handleClick.bind(this)}handleClick(){this.props.disabled||this.props.onClick()}getClassName(){let e="cancel";return this.props.disabled&&(e+=" disabled"),e}render(){return s.createElement("a",{className:this.getClassName(),role:"button",onClick:this.handleClick},s.createElement(f.c,null,"Cancel"))}}Z.propTypes={disabled:i().bool,onClick:i().func};const Y=(0,k.Z)("common")(Z);class J extends s.Component{constructor(e){super(e),this.infiniteTimerUpdateIntervalId=null,this.state=this.defaultState}get defaultState(){return{infiniteTimer:0}}componentDidMount(){this.startInfiniteTimerUpdateProgress()}componentWillUnmount(){this.resetInterval()}resetInterval(){this.infiniteTimerUpdateIntervalId&&(clearInterval(this.infiniteTimerUpdateIntervalId),this.infiniteTimerUpdateIntervalId=null)}startInfiniteTimerUpdateProgress(){this.infiniteTimerUpdateIntervalId=setInterval((()=>{const e=this.state.infiniteTimer+2;this.setState({infiniteTimer:e})}),500)}calculateInfiniteProgress(){return 100-100/Math.pow(1.1,this.state.infiniteTimer)}handleClose(){this.props.onClose()}render(){const e=this.calculateInfiniteProgress(),t={width:`${e}%`};return s.createElement($,{className:"loading-dialog",title:this.props.title,onClose:this.handleClose,disabled:!0},s.createElement("div",{className:"form-content"},s.createElement("label",null,s.createElement(f.c,null,"Take a deep breath and enjoy being in the present moment...")),s.createElement("div",{className:"progress-bar-wrapper"},s.createElement("span",{className:"progress-bar"},s.createElement("span",{className:"progress "+(100===e?"completed":""),style:t})))),s.createElement("div",{className:"submit-wrapper clearfix"},s.createElement("a",{className:"button disabled processing"},"Submit",s.createElement(O,{name:"spinner"}))))}}J.propTypes={onClose:i().func,title:i().string};const Q=(0,k.Z)("common")(J);class X extends s.Component{constructor(e){super(e),this.state=this.defaultState,this.bindEventHandlers()}get defaultState(){return{loading:!0,openFullReport:!1,userDirectorySimulateSynchronizeResult:null}}bindEventHandlers(){this.handleFullReportClicked=this.handleFullReportClicked.bind(this),this.handleClose=this.handleClose.bind(this),this.handleSynchronize=this.handleSynchronize.bind(this)}async componentDidMount(){try{const e=(await this.props.administrationWorkspaceContext.onGetSimulateSynchronizeUsersDirectoryRequested()).body;this.setState({loading:!1,userDirectorySimulateSynchronizeResult:e})}catch(e){await this.handleError(e)}}async handleError(e){console.error(e),await this.props.actionFeedbackContext.displayError(e.message),this.handleClose()}handleFullReportClicked(){this.setState({openFullReport:!this.state.openFullReport})}handleClose(){this.props.onClose()}handleSynchronize(){this.props.administrationWorkspaceContext.onMustSynchronizeSettings(),this.handleClose()}isLoading(){return this.state.loading}get users(){return this.state.userDirectorySimulateSynchronizeResult.users}get groups(){return this.state.userDirectorySimulateSynchronizeResult.groups}get usersSuccess(){return this.users.filter((e=>"success"===e.status))}get groupsSuccess(){return this.groups.filter((e=>"success"===e.status))}get usersError(){return this.users.filter((e=>"error"===e.status))}get groupsError(){return this.groups.filter((e=>"error"===e.status))}get usersIgnored(){return this.users.filter((e=>"ignore"===e.status))}get groupsIgnored(){return this.groups.filter((e=>"ignore"===e.status))}hasSuccessResource(){return this.usersSuccess.length>0||this.groupsSuccess.length>0}hasSuccessUserResource(){return this.usersSuccess.length>0}hasSuccessGroupResource(){return this.groupsSuccess.length>0}hasErrorOrIgnoreResource(){return this.usersError.length>0||this.groupsError.length>0||this.usersIgnored.length>0||this.groupsIgnored.length>0}getFullReport(){let e="";return e=e.concat(this.getUsersFullReport()),e=e.concat(this.getGroupsFullReport()),e}getUsersFullReport(){let e="";if(this.usersSuccess.length>0||this.usersError.length>0||this.usersIgnored.length>0){const t=`-----------------------------------------------\n${this.translate("Users")}\n-----------------------------------------------\n`;e=e.concat(t);const n=t=>e=e.concat(`- ${t.message}\n`);this.usersSuccess.length>0&&(e=e.concat(`\n${this.translate("Success:")}\n`),this.usersSuccess.map(n)),this.usersError.length>0&&(e=e.concat(`\n${this.translate("Errors:")}\n`),this.usersError.map(n)),this.usersIgnored.length>0&&(e=e.concat(`\n${this.translate("Ignored:")}\n`),this.usersIgnored.map(n))}return e.concat("\n")}getGroupsFullReport(){let e="";if(this.groupsSuccess.length>0||this.groupsError.length>0||this.groupsIgnored.length>0){const t=`-----------------------------------------------\n${this.translate("Groups")}\n-----------------------------------------------\n`;e=e.concat(t);const n=t=>e=e.concat(`- ${t.message}\n`);this.groupsSuccess.length>0&&(e=e.concat(`\n${this.translate("Success:")}\n`),this.groupsSuccess.map(n)),this.groupsError.length>0&&(e=e.concat(`\n${this.translate("Errors:")}\n`),this.groupsError.map(n)),this.groupsIgnored.length>0&&(e=e.concat(`\n${this.translate("Ignored:")}\n`),this.groupsIgnored.map(n))}return e}get translate(){return this.props.t}render(){return s.createElement("div",null,this.isLoading()&&s.createElement(Q,{onClose:this.handleClose,title:this.translate("Synchronize simulation")}),!this.isLoading()&&s.createElement($,{className:"ldap-simulate-synchronize-dialog",title:this.translate("Synchronize simulation report"),onClose:this.handleClose,disabled:this.isLoading()},s.createElement("div",{className:"form-content",onSubmit:this.handleFormSubmit},s.createElement("p",null,s.createElement("strong",null,s.createElement(f.c,null,"The operation was successful."))),s.createElement("p",null),this.hasSuccessResource()&&s.createElement("p",{id:"resources-synchronize"},this.hasSuccessUserResource()&&s.createElement(s.Fragment,null,this.translate("{{count}} user will be synchronized.",{count:this.usersSuccess.length})),this.hasSuccessUserResource()&&this.hasSuccessGroupResource()&&s.createElement("br",null),this.hasSuccessGroupResource()&&s.createElement(s.Fragment,null,this.translate("{{count}} group will be synchronized.",{count:this.groupsSuccess.length}))),!this.hasSuccessResource()&&s.createElement("p",{id:"no-resources"}," ",s.createElement(f.c,null,"No resources will be synchronized.")," "),this.hasErrorOrIgnoreResource()&&s.createElement("p",{className:"error inline-error"},s.createElement(f.c,null,"Some resources will not be synchronized and will require your attention, see the full report.")),s.createElement("div",{className:"accordion operation-details "+(this.state.openFullReport?"":"closed")},s.createElement("div",{className:"accordion-header",onClick:this.handleFullReportClicked},s.createElement("a",{role:"link"},s.createElement(f.c,null,"Full report"),this.state.openFullReport&&s.createElement(O,{name:"caret-down"}),!this.state.openFullReport&&s.createElement(O,{name:"caret-right"}))),s.createElement("div",{className:"accordion-content"},s.createElement("div",{className:"input text"},s.createElement("textarea",{className:"full_report",readOnly:!0,value:this.getFullReport()})))),s.createElement("p",null)),s.createElement("div",{className:"submit-wrapper clearfix"},s.createElement(Y,{disabled:this.isLoading(),onClick:this.handleClose}),s.createElement("a",{className:"button primary "+(this.isLoading()?"disabled":""),role:"button",onClick:this.handleSynchronize},s.createElement(f.c,null,"Synchronize")))))}}X.propTypes={onClose:i().func,actionFeedbackContext:i().any,administrationWorkspaceContext:i().object,t:i().func};const ee=h(de((0,k.Z)("common")(X)));class te extends s.Component{constructor(e){super(e),this.state=this.defaultState,this.bindEventHandlers()}get defaultState(){return{loading:!0,openFullReport:!1,userDirectorySynchronizeResult:null}}bindEventHandlers(){this.handleFullReportClicked=this.handleFullReportClicked.bind(this),this.handleClose=this.handleClose.bind(this),this.handleSynchronize=this.handleSynchronize.bind(this)}async componentDidMount(){try{const e=(await this.props.administrationWorkspaceContext.onGetSynchronizeUsersDirectoryRequested()).body;this.setState({loading:!1,userDirectorySynchronizeResult:e})}catch(e){await this.handleError(e)}}async handleError(e){console.error(e),await this.props.actionFeedbackContext.displayError(e.message),this.handleClose()}handleFullReportClicked(){this.setState({openFullReport:!this.state.openFullReport})}handleClose(){this.props.onClose()}handleSynchronize(){this.handleClose()}isLoading(){return this.state.loading}get users(){return this.state.userDirectorySynchronizeResult.users}get groups(){return this.state.userDirectorySynchronizeResult.groups}get usersSuccess(){return this.users.filter((e=>"success"===e.status))}get groupsSuccess(){return this.groups.filter((e=>"success"===e.status))}get usersError(){return this.users.filter((e=>"error"===e.status))}get groupsError(){return this.groups.filter((e=>"error"===e.status))}get usersIgnored(){return this.users.filter((e=>"ignore"===e.status))}get groupsIgnored(){return this.groups.filter((e=>"ignore"===e.status))}hasSuccessResource(){return this.usersSuccess.length>0||this.groupsSuccess.length>0}hasSuccessUserResource(){return this.usersSuccess.length>0}hasSuccessGroupResource(){return this.groupsSuccess.length>0}hasErrorOrIgnoreResource(){return this.usersError.length>0||this.groupsError.length>0||this.usersIgnored.length>0||this.groupsIgnored.length>0}getFullReport(){let e="";return e=e.concat(this.getUsersFullReport()),e=e.concat(this.getGroupsFullReport()),e}getUsersFullReport(){let e="";if(this.usersSuccess.length>0||this.usersError.length>0||this.usersIgnored.length>0){const t=`-----------------------------------------------\n${this.translate("Users")}\n-----------------------------------------------\n`;e=e.concat(t);const n=t=>e=e.concat(`- ${t.message}\n`);this.usersSuccess.length>0&&(e=e.concat(`\n${this.translate("Success:")}\n`),this.usersSuccess.map(n)),this.usersError.length>0&&(e=e.concat(`\n${this.translate("Errors:")}\n`),this.usersError.map(n)),this.usersIgnored.length>0&&(e=e.concat(`\n${this.translate("Ignored:")}\n`),this.usersIgnored.map(n))}return e.concat("\n")}getGroupsFullReport(){let e="";if(this.groupsSuccess.length>0||this.groupsError.length>0||this.groupsIgnored.length>0){const t=`-----------------------------------------------\n${this.translate("Groups")}\n-----------------------------------------------\n`;e=e.concat(t);const n=t=>e=e.concat(`- ${t.message}\n`);this.groupsSuccess.length>0&&(e=e.concat(`\n${this.translate("Success:")}\n`),this.groupsSuccess.map(n)),this.groupsError.length>0&&(e=e.concat(`\n${this.translate("Errors:")}\n`),this.groupsError.map(n)),this.groupsIgnored.length>0&&(e=e.concat(`\n${this.translate("Ignored:")}\n`),this.groupsIgnored.map(n))}return e}get translate(){return this.props.t}render(){return s.createElement("div",null,this.isLoading()&&s.createElement(Q,{onClose:this.handleClose,title:this.translate("Synchronize")}),!this.isLoading()&&s.createElement($,{className:"ldap-simulate-synchronize-dialog",title:this.translate("Synchronize report"),onClose:this.handleClose,disabled:this.isLoading()},s.createElement("div",{className:"form-content",onSubmit:this.handleFormSubmit},s.createElement("p",null,s.createElement("strong",null,s.createElement(f.c,null,"The operation was successful."))),s.createElement("p",null),this.hasSuccessResource()&&s.createElement("p",{id:"resources-synchronize"},this.hasSuccessUserResource()&&s.createElement(s.Fragment,null,this.translate("{{count}} user has been synchronized.",{count:this.usersSuccess.length})),this.hasSuccessUserResource()&&this.hasSuccessGroupResource()&&s.createElement("br",null),this.hasSuccessGroupResource()&&s.createElement(s.Fragment,null,this.translate("{{count}} group has been synchronized.",{count:this.groupsSuccess.length}))),!this.hasSuccessResource()&&s.createElement("p",{id:"no-resources"}," ",s.createElement(f.c,null,"No resources have been synchronized.")," "),this.hasErrorOrIgnoreResource()&&s.createElement("p",{className:"error inline-error"},s.createElement(f.c,null,"Some resources will not be synchronized and will require your attention, see the full report.")),s.createElement("div",{className:"accordion operation-details "+(this.state.openFullReport?"":"closed")},s.createElement("div",{className:"accordion-header",onClick:this.handleFullReportClicked},s.createElement("a",{role:"link"},s.createElement(f.c,null,"Full report"),this.state.openFullReport&&s.createElement(O,{name:"caret-down"}),!this.state.openFullReport&&s.createElement(O,{name:"caret-right"}))),s.createElement("div",{className:"accordion-content"},s.createElement("div",{className:"input text"},s.createElement("textarea",{className:"full_report",readOnly:!0,value:this.getFullReport()})))),s.createElement("p",null)),s.createElement("div",{className:"submit-wrapper clearfix"},s.createElement("a",{className:"button primary "+(this.isLoading()?"disabled":""),role:"button",onClick:this.handleClose},s.createElement(f.c,null,"Ok")))))}}te.propTypes={onClose:i().func,actionFeedbackContext:i().any,administrationWorkspaceContext:i().object,t:i().func};const ne=h(de((0,k.Z)("common")(te)));class se extends s.Component{constructor(e){super(e),this.bindCallbacks()}bindCallbacks(){this.handleSaveClick=this.handleSaveClick.bind(this),this.handleTestClick=this.handleTestClick.bind(this),this.handleSimulateSynchronizeClick=this.handleSimulateSynchronizeClick.bind(this),this.handleSynchronizeClick=this.handleSynchronizeClick.bind(this),this.handleEditSubscriptionClick=this.handleEditSubscriptionClick.bind(this)}async componentDidUpdate(e){await this.handleMustSynchronize(e.administrationWorkspaceContext.must.synchronize)}handleMustSynchronize(e){this.props.administrationWorkspaceContext.must.synchronize!==e&&this.props.administrationWorkspaceContext.must.synchronize&&(this.handleSynchronizeClick(),this.props.administrationWorkspaceContext.onResetActionsSettings())}handleSaveClick(){this.props.administrationWorkspaceContext.onMustSaveSettings()}handleTestClick(){this.props.administrationWorkspaceContext.onMustTestSettings()}handleSimulateSynchronizeClick(){this.props.dialogContext.open(ee)}handleSynchronizeClick(){this.props.dialogContext.open(ne)}handleEditSubscriptionClick(){this.props.administrationWorkspaceContext.onMustEditSubscriptionKey()}isSaveEnabled(){return this.props.administrationWorkspaceContext.can.save}isTestEnabled(){return this.props.administrationWorkspaceContext.can.test}isSynchronizeEnabled(){return this.props.administrationWorkspaceContext.can.synchronize}isUserDirectorySelected(){return he.USER_DIRECTORY===this.props.administrationWorkspaceContext.selectedAdministration}isSubscriptionSelected(){return he.SUBSCRIPTION===this.props.administrationWorkspaceContext.selectedAdministration}render(){return s.createElement("div",{className:"col2_3 actions-wrapper"},s.createElement("div",{className:"actions"},!this.isSubscriptionSelected()&&s.createElement("div",null,s.createElement("li",null,s.createElement("a",{className:"button "+(this.isSaveEnabled()?"":"disabled"),onClick:this.handleSaveClick},s.createElement(O,{name:"save"}),s.createElement("span",null,s.createElement(f.c,null,"Save settings")))),this.isUserDirectorySelected()&&s.createElement("div",null,s.createElement("li",null,s.createElement("a",{className:"button "+(this.isTestEnabled()?"":"disabled"),onClick:this.handleTestClick},s.createElement(O,{name:"plug"}),s.createElement("span",null,s.createElement(f.c,null,"Test settings")))),s.createElement("li",null,s.createElement("a",{className:"button "+(this.isSynchronizeEnabled()?"":"disabled"),onClick:this.handleSimulateSynchronizeClick},s.createElement(O,{name:"magic-wand"}),s.createElement("span",null,s.createElement(f.c,null,"Simulate synchronize")))),s.createElement("li",null,s.createElement("a",{className:"button "+(this.isSynchronizeEnabled()?"":"disabled"),onClick:this.handleSynchronizeClick},s.createElement(O,{name:"refresh"}),s.createElement("span",null,s.createElement(f.c,null,"Synchronize")))))),this.isSubscriptionSelected()&&s.createElement("div",null,s.createElement("li",null,s.createElement("a",{className:"button",onClick:this.handleEditSubscriptionClick},s.createElement(O,{name:"edit"}),s.createElement("span",null,s.createElement(f.c,null,"Update key")))))))}}se.propTypes={administrationWorkspaceContext:i().object,dialogContext:i().any};const re=g(de((0,k.Z)("common")(se)));function ae(){return ae=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},ae.apply(this,arguments)}const ie=s.createContext({selectedAdministration:null,can:{save:!1,test:!1,synchronize:!1},must:{save:!1,test:!1,synchronize:!1,editSubscriptionKey:!1,refreshSubscriptionKey:!1},administrationWorkspaceAction:re,setDisplayAdministrationWorkspaceAction:()=>{},resetDisplayAdministrationWorkspaceAction:()=>{},onGetMfaRequested:()=>{},onSaveMfaRequested:()=>{},onGetUsersDirectoryRequested:()=>{},onUpdateUsersDirectoryRequested:()=>{},onDeleteUsersDirectoryRequested:()=>{},onTestUsersDirectoryRequested:()=>{},onGetSimulateSynchronizeUsersDirectoryRequested:()=>{},onGetSynchronizeUsersDirectoryRequested:()=>{},onGetUsersRequested:()=>{},onUpdateSubscriptionKeyRequested:()=>{},onSaveLocaleRequested:()=>{},onSaveEnabled:()=>{},onMustSaveSettings:()=>{},onTestEnabled:()=>{},onMustTestSettings:()=>{},onSynchronizeEnabled:()=>{},onMustSynchronizeSettings:()=>{},onMustEditSubscriptionKey:()=>{},onMustRefreshSubscriptionKey:()=>{},onResetActionsSettings:()=>{}});class oe extends s.Component{constructor(e){super(e),this.state=this.defaultState}get defaultState(){return{selectedAdministration:he.NONE,can:{save:!1,test:!1,synchronize:!1},must:{save:!1,test:!1,synchronize:!1,editSubscriptionKey:!1,refreshSubscriptionKey:!1},administrationWorkspaceAction:re,setDisplayAdministrationWorkspaceAction:this.setDisplayAdministrationWorkspaceAction.bind(this),resetDisplayAdministrationWorkspaceAction:this.resetDisplayAdministrationWorkspaceAction.bind(this),onGetMfaRequested:this.onGetMfaRequested.bind(this),onSaveMfaRequested:this.onSaveMfaRequested.bind(this),onGetUsersDirectoryRequested:this.onGetUsersDirectoryRequested.bind(this),onUpdateUsersDirectoryRequested:this.onUpdateUsersDirectoryRequested.bind(this),onDeleteUsersDirectoryRequested:this.onDeleteUsersDirectoryRequested.bind(this),onTestUsersDirectoryRequested:this.onTestUsersDirectoryRequested.bind(this),onGetSimulateSynchronizeUsersDirectoryRequested:this.onGetSimulateSynchronizeUsersDirectoryRequested.bind(this),onGetSynchronizeUsersDirectoryRequested:this.onGetSynchronizeUsersDirectoryRequested.bind(this),onGetUsersRequested:this.onGetUsersRequested.bind(this),onUpdateSubscriptionKeyRequested:this.onUpdateSubscriptionKeyRequested.bind(this),onSaveLocaleRequested:this.onSaveLocaleRequested.bind(this),onSaveEnabled:this.handleSaveEnabled.bind(this),onMustSaveSettings:this.handleMustSaveSettings.bind(this),onTestEnabled:this.handleTestEnabled.bind(this),onMustTestSettings:this.handleMustTestSettings.bind(this),onSynchronizeEnabled:this.handleSynchronizeEnabled.bind(this),onMustSynchronizeSettings:this.handleMustSynchronizeSettings.bind(this),onMustEditSubscriptionKey:this.handleMustEditSubscriptionKey.bind(this),onMustRefreshSubscriptionKey:this.handleMustRefreshSubscriptionKey.bind(this),onResetActionsSettings:this.handleResetActionsSettings.bind(this)}}componentDidMount(){this.handleAdministrationMenuRouteChange()}async componentDidUpdate(e){await this.handleRouteChange(e.location)}async handleSaveEnabled(){await this.setState({can:{...this.state.can,save:!0}})}async handleMustSaveSettings(){await this.setState({must:{...this.state.must,save:!0}})}async handleTestEnabled(e){await this.setState({can:{...this.state.can,test:e}})}async handleMustTestSettings(){await this.setState({must:{...this.state.must,test:!0}})}async handleSynchronizeEnabled(e){await this.setState({can:{...this.state.can,synchronize:e}})}async handleMustSynchronizeSettings(){await this.setState({must:{...this.state.must,synchronize:!0}})}async handleMustEditSubscriptionKey(){await this.setState({must:{...this.state.must,editSubscriptionKey:!0}})}async handleMustRefreshSubscriptionKey(){await this.setState({must:{...this.state.must,refreshSubscriptionKey:!0}})}async handleResetActionsSettings(){await this.setState({must:{save:!1,test:!1,synchronize:!1,editSubscriptionKey:!1,refreshSubscriptionKey:!1}})}async handleRouteChange(e){this.props.location.key!==e.key&&await this.handleAdministrationMenuRouteChange()}async handleAdministrationMenuRouteChange(){const e=this.props.location.pathname.includes("mfa"),t=this.props.location.pathname.includes("users-directory"),n=this.props.location.pathname.includes("email-notification"),s=this.props.location.pathname.includes("subscription"),r=this.props.location.pathname.includes("internationalization"),a=this.props.location.pathname.includes("account-recovery"),i=this.props.location.pathname.includes("smtp-settings");let o;e?o=he.MFA:t?o=he.USER_DIRECTORY:n?o=he.EMAIL_NOTIFICATION:s?o=he.SUBSCRIPTION:r?o=he.INTERNATIONALIZATION:a?o=he.ACCOUNT_RECOVERY:i&&(o=he.SMTP_SETTINGS),await this.setState({selectedAdministration:o,can:{save:!1,test:!1,synchronize:!1},must:{save:!1,test:!1,synchronize:!1,editSubscriptionKey:!1,refreshSubscriptionKey:!1}})}setDisplayAdministrationWorkspaceAction(e){this.setState({administrationWorkspaceAction:e})}resetDisplayAdministrationWorkspaceAction(){this.setState({administrationWorkspaceAction:re})}async onGetMfaRequested(){const e=this.props.context.getApiClientOptions().setResourceName("mfa/settings");return new q(e).findAll()}async onSaveMfaRequested(e){const t=this.props.context.getApiClientOptions().setResourceName("mfa/settings"),n=new q(t);await n.create(e)}async onGetUsersDirectoryRequested(){const e=this.props.context.getApiClientOptions().setResourceName("directorysync/settings");return new q(e).findAll()}async onUpdateUsersDirectoryRequested(e){const t=this.props.context.getApiClientOptions().setResourceName("directorysync");return new q(t).update("settings",e)}async onDeleteUsersDirectoryRequested(){const e=this.props.context.getApiClientOptions().setResourceName("directorysync");return new q(e).delete("settings")}async onTestUsersDirectoryRequested(e){const t=this.props.context.getApiClientOptions().setResourceName("directorysync/settings/test");return new q(t).create(e)}async onGetSimulateSynchronizeUsersDirectoryRequested(){const e=this.props.context.getApiClientOptions().setResourceName("directorysync");return new q(e).get("synchronize/dry-run")}async onGetSynchronizeUsersDirectoryRequested(){const e=this.props.context.getApiClientOptions().setResourceName("directorysync/synchronize");return new q(e).create({})}async onGetUsersRequested(){const e=this.props.context.getApiClientOptions().setResourceName("users");return new q(e).findAll()}async onUpdateSubscriptionKeyRequested(e){return this.props.context.port.request("passbolt.subscription.update",e)}async onSaveLocaleRequested(e){const t=this.props.context.getApiClientOptions().setResourceName("locale/settings");return new q(t).create({value:e})}render(){return s.createElement(ie.Provider,{value:this.state},this.props.children)}}oe.displayName="AdministrationWorkspaceContextProvider",oe.propTypes={context:i().object,children:i().any,location:i().object,match:i().object,history:i().object,loadingContext:i().object};const le=(0,N.EN)(I((ce=oe,class extends s.Component{render(){return s.createElement(D.Consumer,null,(e=>s.createElement(ce,T({loadingContext:e},this.props))))}})));var ce;function de(e){return class extends s.Component{render(){return s.createElement(ie.Consumer,null,(t=>s.createElement(e,ae({administrationWorkspaceContext:t},this.props))))}}}const he={NONE:"NONE",MFA:"MFA",USER_DIRECTORY:"USER-DIRECTORY",EMAIL_NOTIFICATION:"EMAIL-NOTIFICATION",SUBSCRIPTION:"SUBSCRIPTION",INTERNATIONALIZATION:"INTERNATIONALIZATION",ACCOUNT_RECOVERY:"ACCOUNT-RECOVERY",SMTP_SETTINGS:"SMTP-SETTINGS"};function ue(){return ue=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},ue.apply(this,arguments)}class pe extends s.Component{constructor(e){super(e),this.bindCallback()}bindCallback(){this.close=this.close.bind(this)}async close(e){const t=this.props.dialogContext.dialogs.find((({key:t})=>t===e));t?.DialogProps?.onClose&&t.DialogProps.onClose(),this.props.dialogContext.close(e)}render(){return s.createElement(s.Fragment,null,this.props.dialogContext.dialogs.map((({key:e,Dialog:t,DialogProps:n})=>s.createElement(t,ue({key:e},n,{onClose:()=>this.close(e)})))),this.props.children)}}pe.propTypes={dialogContext:i().any,children:i().any};const me=g(pe);function ge(){return ge=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},ge.apply(this,arguments)}class ye extends s.Component{constructor(e){super(e),this.createRefs(),this.bindCallback()}bindCallback(){this.handleHide=this.handleHide.bind(this)}createRefs(){this.elementRef=s.createRef()}handleHide(e){this.props.contextualMenuContext.hide(e)}render(){return s.createElement("div",{ref:this.elementRef},this.props.contextualMenuContext.contextualMenus.map(((e,t)=>s.createElement(e.ContextualMenuComponent,ge({key:t,hide:()=>this.handleHide(t)},e.componentProps)))))}}ye.propTypes={contextualMenuContext:i().any};const be=function(e){return class extends s.Component{render(){return s.createElement(b.Consumer,null,(t=>s.createElement(e,y({contextualMenuContext:t},this.props))))}}}(ye);function ve(){return ve=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},ve.apply(this,arguments)}const fe=s.createContext({onGoToAdministrationRequested:()=>{},onGoToAdministrationMfaRequested:()=>{},onGoToAdministrationUsersDirectoryRequested:()=>{},onGoToAdministrationEmailNotificationsRequested:()=>{},onGoToAdministrationSubscriptionRequested:()=>{},onGoToAdministrationInternationalizationRequested:()=>{},onGoToAdministrationAccountRecoveryRequested:()=>{},onGoToAdministrationSmtpSettingsRequested:()=>{},onGoToPasswordsRequested:()=>{},onGoToUsersRequested:()=>{},onGoToUserSettingsProfileRequested:()=>{},onGoToUserSettingsPassphraseRequested:()=>{},onGoToUserSettingsSecurityTokenRequested:()=>{},onGoToUserSettingsThemeRequested:()=>{},onGoToUserSettingsMfaRequested:()=>{},onGoToUserSettingsKeysRequested:()=>{},onGoToUserSettingsMobileRequested:()=>{},onGoToUserSettingsAccountRecoveryRequested:()=>{},onGoToNewTab:()=>{}});class ke extends s.Component{constructor(e){super(e),this.state=this.defaultState}get defaultState(){return{onGoToNewTab:this.onGoToNewTab.bind(this),onGoToAdministrationRequested:this.onGoToAdministrationRequested.bind(this),onGoToAdministrationMfaRequested:this.onGoToAdministrationMfaRequested.bind(this),onGoToAdministrationUsersDirectoryRequested:this.onGoToAdministrationUsersDirectoryRequested.bind(this),onGoToAdministrationEmailNotificationsRequested:this.onGoToAdministrationEmailNotificationsRequested.bind(this),onGoToAdministrationSubscriptionRequested:this.onGoToAdministrationSubscriptionRequested.bind(this),onGoToAdministrationInternationalizationRequested:this.onGoToAdministrationInternationalizationRequested.bind(this),onGoToAdministrationAccountRecoveryRequested:this.onGoToAdministrationAccountRecoveryRequested.bind(this),onGoToAdministrationSmtpSettingsRequested:this.onGoToAdministrationSmtpSettingsRequested.bind(this),onGoToPasswordsRequested:this.onGoToPasswordsRequested.bind(this),onGoToUsersRequested:this.onGoToUsersRequested.bind(this),onGoToUserSettingsProfileRequested:this.onGoToUserSettingsProfileRequested.bind(this),onGoToUserSettingsPassphraseRequested:this.onGoToUserSettingsPassphraseRequested.bind(this),onGoToUserSettingsSecurityTokenRequested:this.onGoToUserSettingsSecurityTokenRequested.bind(this),onGoToUserSettingsThemeRequested:this.onGoToUserSettingsThemeRequested.bind(this),onGoToUserSettingsMfaRequested:this.onGoToUserSettingsMfaRequested.bind(this),onGoToUserSettingsKeysRequested:this.onGoToUserSettingsKeysRequested.bind(this),onGoToUserSettingsMobileRequested:this.onGoToUserSettingsMobileRequested.bind(this),onGoToUserSettingsAccountRecoveryRequested:this.onGoToUserSettingsAccountRecoveryRequested.bind(this)}}async goTo(e,t){if(e===this.props.context.name)await this.props.history.push({pathname:t});else{const e=`${this.props.context.userSettings?this.props.context.userSettings.getTrustedDomain():this.props.context.trustedDomain}${t}`;window.open(e,"_parent","noopener,noreferrer")}}onGoToNewTab(e){window.open(e,"_blank","noopener,noreferrer")}async onGoToAdministrationRequested(){let e="/app/administration/email-notification";this.isMfaEnabled?e="/app/administration/mfa":this.isUserDirectoryEnabled?e="/app/administration/users-directory":this.isSmtpSettingsEnable&&(e="/app/administration/smtp-settings"),await this.goTo("api",e)}async onGoToAdministrationMfaRequested(){await this.goTo("api","/app/administration/mfa")}async onGoToAdministrationUsersDirectoryRequested(){await this.goTo("api","/app/administration/users-directory")}async onGoToAdministrationEmailNotificationsRequested(){await this.goTo("api","/app/administration/email-notification")}async onGoToAdministrationSmtpSettingsRequested(){await this.goTo("api","/app/administration/smtp-settings")}async onGoToAdministrationSubscriptionRequested(){await this.goTo("browser-extension","/app/administration/subscription")}async onGoToAdministrationInternationalizationRequested(){await this.goTo("api","/app/administration/internationalization")}async onGoToAdministrationAccountRecoveryRequested(){await this.goTo("browser-extension","/app/administration/account-recovery")}get isMfaEnabled(){const e=this.props.context.siteSettings;return e&&e.canIUse("multiFactorAuthentication")}get isUserDirectoryEnabled(){const e=this.props.context.siteSettings;return e&&e.canIUse("directorySync")}get isSmtpSettingsEnable(){const e=this.props.context.siteSettings;return e&&e.canIUse("smtpSettings")}async onGoToPasswordsRequested(){await this.goTo("browser-extension","/app/passwords")}async onGoToUsersRequested(){await this.goTo("browser-extension","/app/users")}async onGoToUserSettingsProfileRequested(){await this.goTo("browser-extension","/app/settings/profile")}async onGoToUserSettingsPassphraseRequested(){await this.goTo("browser-extension","/app/settings/passphrase")}async onGoToUserSettingsSecurityTokenRequested(){await this.goTo("browser-extension","/app/settings/security-token")}async onGoToUserSettingsThemeRequested(){await this.goTo("browser-extension","/app/settings/theme")}async onGoToUserSettingsMfaRequested(){await this.goTo("api","/app/settings/mfa")}async onGoToUserSettingsKeysRequested(){await this.goTo("browser-extension","/app/settings/keys")}async onGoToUserSettingsMobileRequested(){await this.goTo("browser-extension","/app/settings/mobile")}async onGoToUserSettingsAccountRecoveryRequested(){await this.goTo("browser-extension","/app/settings/account-recovery")}render(){return s.createElement(fe.Provider,{value:this.state},this.props.children)}}ke.displayName="NavigationContextProvider",ke.propTypes={context:i().object,children:i().any,location:i().object,match:i().object,history:i().object};const Ee=(0,N.EN)(I(ke));function Ce(e){return class extends s.Component{render(){return s.createElement(fe.Consumer,null,(t=>s.createElement(e,ve({navigationContext:t},this.props))))}}}class we extends s.Component{isSelected(e){let t=!1;return"passwords"===e?t=/^\/app\/(passwords|folders)/.test(this.props.location.pathname):"users"===e?t=/^\/app\/(users|groups)/.test(this.props.location.pathname):"administration"===e&&(t=/^\/app\/administration/.test(this.props.location.pathname)),t}isLoggedInUserAdmin(){return this.props.context.loggedInUser&&"admin"===this.props.context.loggedInUser.role.name}render(){return s.createElement("nav",null,s.createElement("div",{className:"primary navigation top"},s.createElement("ul",null,s.createElement("li",{key:"password"},s.createElement("div",{className:"row "+(this.isSelected("passwords")?"selected":"")},s.createElement("div",{className:"main-cell-wrapper"},s.createElement("div",{className:"main-cell"},s.createElement("a",{onClick:this.props.navigationContext.onGoToPasswordsRequested,role:"button"},s.createElement("span",null,s.createElement(f.c,null,"passwords"))))))),s.createElement("li",{key:"users"},s.createElement("div",{className:"row "+(this.isSelected("users")?"selected":"")},s.createElement("div",{className:"main-cell-wrapper"},s.createElement("div",{className:"main-cell"},s.createElement("a",{onClick:this.props.navigationContext.onGoToUsersRequested,role:"button"},s.createElement("span",null,s.createElement(f.c,null,"users"))))))),this.isLoggedInUserAdmin()&&s.createElement("li",{key:"administration"},s.createElement("div",{className:"row "+(this.isSelected("administration")?"selected":"")},s.createElement("div",{className:"main-cell-wrapper"},s.createElement("div",{className:"main-cell"},s.createElement("a",{onClick:this.props.navigationContext.onGoToAdministrationRequested,role:"button"},s.createElement("span",null,s.createElement(f.c,null,"administration"))))))),s.createElement("li",{key:"help"},s.createElement("div",{className:"row"},s.createElement("div",{className:"main-cell-wrapper"},s.createElement("div",{className:"main-cell"},s.createElement("a",{href:"https://help.passbolt.com",role:"button",target:"_blank",rel:"noopener noreferrer"},s.createElement("span",null,s.createElement(f.c,null,"help"))))))),s.createElement("li",{key:"logout",className:"right"},s.createElement("div",{className:"row"},s.createElement("div",{className:"main-cell-wrapper"},s.createElement("div",{className:"main-cell"},s.createElement("a",{role:"button",onClick:this.props.context.onLogoutRequested},s.createElement("span",null,s.createElement(f.c,null,"sign out"))))))))))}}we.propTypes={context:i().object,navigationContext:i().any,history:i().object,location:i().object};const Se=I((0,N.EN)(Ce((0,k.Z)("common")(we))));class xe extends s.Component{render(){return s.createElement("div",{className:"col1"},s.createElement("div",{className:"logo no-img"},s.createElement("h1",null,s.createElement("span",null,"Passbolt"))))}}const Ne=xe;function Le(){return Le=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},Le.apply(this,arguments)}const Re=s.createContext({accountRecoveryOrganizationPolicy:null,status:null,findAccountRecoveryPolicy:()=>{},getOrganizationPolicy:()=>{},getRequestor:()=>{},getRequestedDate:()=>{},getPolicy:()=>{},getUserAccountRecoverySubscriptionStatus:()=>{},isAccountRecoveryChoiceRequired:()=>{},isPolicyEnabled:()=>{},loadAccountRecoveryPolicy:()=>{},reloadAccountRecoveryPolicy:()=>{}});class Ie extends s.Component{constructor(e){super(e),this.state=this.defaultState}get defaultState(){return{accountRecoveryOrganizationPolicy:null,status:null,findAccountRecoveryPolicy:this.findAccountRecoveryPolicy.bind(this),getOrganizationPolicy:this.getOrganizationPolicy.bind(this),getRequestor:this.getRequestor.bind(this),getRequestedDate:this.getRequestedDate.bind(this),getPolicy:this.getPolicy.bind(this),getUserAccountRecoverySubscriptionStatus:this.getUserAccountRecoverySubscriptionStatus.bind(this),setUserAccountRecoveryStatus:this.setUserAccountRecoveryStatus.bind(this),isAccountRecoveryChoiceRequired:this.isAccountRecoveryChoiceRequired.bind(this),isPolicyEnabled:this.isPolicyEnabled.bind(this),loadAccountRecoveryPolicy:this.loadAccountRecoveryPolicy.bind(this),reloadAccountRecoveryPolicy:this.reloadAccountRecoveryPolicy.bind(this)}}async loadAccountRecoveryPolicy(){null===this.state.accountRecoveryOrganizationPolicy&&await this.findAccountRecoveryPolicy()}async reloadAccountRecoveryPolicy(){await this.findAccountRecoveryPolicy()}async findAccountRecoveryPolicy(){if(!this.props.context.siteSettings.canIUse("accountRecovery"))return;const e=this.props.context.loggedInUser;if(!e)return;const t=await this.props.accountRecoveryUserService.getOrganizationAccountRecoverySettings(),n=e.account_recovery_user_setting?.status||Ie.STATUS_PENDING;this.setState({accountRecoveryOrganizationPolicy:t,status:n})}getOrganizationPolicy(){return this.state.accountRecoveryOrganizationPolicy}getRequestedDate(){return this.getOrganizationPolicy()?.modified}getRequestor(){return this.getOrganizationPolicy()?.creator}getPolicy(){return this.getOrganizationPolicy()?.policy}getUserAccountRecoverySubscriptionStatus(){return this.state.status}setUserAccountRecoveryStatus(e){this.setState({status:e})}isAccountRecoveryChoiceRequired(){if(null===this.getOrganizationPolicy())return!1;const e=this.getPolicy();return this.state.status===Ie.STATUS_PENDING&&e!==Ie.POLICY_DISABLED}isPolicyEnabled(){const e=this.getPolicy();return e&&e!==Ie.POLICY_DISABLED}static get STATUS_PENDING(){return"pending"}static get POLICY_DISABLED(){return"disabled"}static get POLICY_MANDATORY(){return"mandatory"}static get POLICY_OPT_OUT(){return"opt-out"}static get STATUS_APPROVED(){return"approved"}render(){return s.createElement(Re.Provider,{value:this.state},this.props.children)}}Ie.propTypes={context:i().any.isRequired,children:i().any,accountRecoveryUserService:i().object.isRequired};const Ae=I(Ie);function Te(e){return class extends s.Component{render(){return s.createElement(Re.Consumer,null,(t=>s.createElement(e,Le({accountRecoveryContext:t},this.props))))}}}class De extends s.Component{constructor(e){super(e),this.state=this.getDefaultState(),this.bindCallbacks()}getDefaultState(){return{error:!1}}bindCallbacks(){this.handleError=this.handleError.bind(this)}propsHasUrl(){return this.props.user&&this.props.user.profile&&this.props.user.profile.avatar&&this.props.user.profile.avatar.url&&this.props.user.profile.avatar.url.medium}propsUrlHasProtocol(){return this.props.user.profile.avatar.url.medium.startsWith("https://")||this.props.user.profile.avatar.url.medium.startsWith("http://")}formatUrl(e){return`${this.props.baseUrl}/${e}`}getDefaultAvatarUrl(){return`${this.props.baseUrl}/img/avatar/user.png`}getAvatarSrc(){return!this.state.error&&this.propsHasUrl()?this.propsUrlHasProtocol()?this.props.user.profile.avatar.url.medium:this.formatUrl(this.props.user.profile.avatar.url.medium):this.getDefaultAvatarUrl()}handleError(){console.error(`Could not load avatar image url: ${this.getAvatarSrc()}`),this.setState({error:!0})}getAltText(){return this.props.user&&this.props.user.first_name&&this.props.user.last_name?`Avatar of user ${this.props.user.first_name} ${this.props.user.last_name}.`:"..."}render(){return s.createElement("div",{className:`${this.props.className} ${this.props.attentionRequired?"attention-required":""}`},!this.state.error&&s.createElement("img",{src:this.getAvatarSrc(),onError:this.handleError,alt:this.getAltText()}),this.state.error&&s.createElement("img",{src:this.getDefaultAvatarUrl(),alt:this.getAltText()}),this.props.attentionRequired&&s.createElement(O,{name:"exclamation"}))}}De.defaultProps={className:"avatar user-avatar"},De.propTypes={baseUrl:i().string,user:i().object,attentionRequired:i().bool,className:i().string};const Ue=De;class _e extends s.Component{constructor(e){super(e),this.state=this.getDefaultState(),this.bindCallbacks(),this.createRefs()}getDefaultState(){return{open:!1,loading:!0}}bindCallbacks(){this.handleDocumentClickEvent=this.handleDocumentClickEvent.bind(this),this.handleDocumentContextualMenuEvent=this.handleDocumentContextualMenuEvent.bind(this),this.handleDocumentDragStartEvent=this.handleDocumentDragStartEvent.bind(this),this.handleToggleMenuClick=this.handleToggleMenuClick.bind(this),this.handleProfileClick=this.handleProfileClick.bind(this),this.handleThemeClick=this.handleThemeClick.bind(this),this.handleMobileAppsClick=this.handleMobileAppsClick.bind(this)}componentDidMount(){document.addEventListener("click",this.handleDocumentClickEvent,{capture:!0}),document.addEventListener("contextmenu",this.handleDocumentContextualMenuEvent,{capture:!0}),document.addEventListener("dragstart",this.handleDocumentDragStartEvent,{capture:!0})}componentWillUnmount(){document.removeEventListener("click",this.handleDocumentClickEvent,{capture:!0}),document.removeEventListener("contextmenu",this.handleDocumentContextualMenuEvent,{capture:!0}),document.removeEventListener("dragstart",this.handleDocumentDragStartEvent,{capture:!0})}createRefs(){this.userBadgeMenuRef=s.createRef()}get canIUseThemeCapability(){return this.props.context.siteSettings&&this.props.context.siteSettings.canIUse("accountSettings")}get canIUseMobileCapability(){return this.props.context.siteSettings&&this.props.context.siteSettings.canIUse("mobile")}handleDocumentClickEvent(e){this.userBadgeMenuRef.current.contains(e.target)||this.closeUserBadgeMenu()}handleDocumentContextualMenuEvent(e){this.userBadgeMenuRef.current.contains(e.target)||this.closeUserBadgeMenu()}handleDocumentDragStartEvent(){this.closeUserBadgeMenu()}closeUserBadgeMenu(){this.setState({open:!1})}getUserFullName(){return this.props.user&&this.props.user.profile?`${this.props.user.profile.first_name} ${this.props.user.profile.last_name}`:"..."}getUserUsername(){return this.props.user&&this.props.user.username?`${this.props.user.username}`:"..."}handleToggleMenuClick(e){e.preventDefault();const t=!this.state.open;this.setState({open:t})}handleProfileClick(){this.props.navigationContext.onGoToUserSettingsProfileRequested(),this.closeUserBadgeMenu()}handleThemeClick(){this.props.navigationContext.onGoToUserSettingsThemeRequested(),this.closeUserBadgeMenu()}handleMobileAppsClick(){this.props.navigationContext.onGoToUserSettingsMobileRequested(),this.closeUserBadgeMenu()}get attentionRequired(){return this.props.accountRecoveryContext.isAccountRecoveryChoiceRequired()}render(){return s.createElement("div",{className:"col3 profile-wrapper"},s.createElement("div",{className:"user profile dropdown",ref:this.userBadgeMenuRef},s.createElement("div",{className:"avatar-with-name button "+(this.state.open?"open":""),onClick:this.handleToggleMenuClick},s.createElement(Ue,{user:this.props.user,className:"avatar picture left-cell",baseUrl:this.props.baseUrl,attentionRequired:this.attentionRequired}),s.createElement("div",{className:"details center-cell"},s.createElement("span",{className:"name"},this.getUserFullName()),s.createElement("span",{className:"email"},this.getUserUsername())),s.createElement("div",{className:"more right-cell"},s.createElement("a",{role:"button"},s.createElement(O,{name:"caret-down"})))),this.state.open&&s.createElement("ul",{className:"dropdown-content right visible"},s.createElement("li",{key:"profile"},s.createElement("div",{className:"row"},s.createElement("a",{role:"button",tabIndex:"1",onClick:this.handleProfileClick},s.createElement("span",null,s.createElement(f.c,null,"Profile")),this.attentionRequired&&s.createElement(O,{name:"exclamation",baseline:!0})))),this.canIUseThemeCapability&&s.createElement("li",{key:"theme"},s.createElement("div",{className:"row"},s.createElement("a",{role:"button",tabIndex:"2",onClick:this.handleThemeClick},s.createElement("span",null,s.createElement(f.c,null,"Theme"))))),this.canIUseMobileCapability&&s.createElement("li",{key:"mobile"},s.createElement("div",{className:"row"},s.createElement("a",{role:"button",tabIndex:"3",onClick:this.handleMobileAppsClick},s.createElement("span",null,s.createElement(f.c,null,"Mobile Apps")),s.createElement("span",{className:"chips new"},"new")))))))}}_e.propTypes={context:i().object,navigationContext:i().any,accountRecoveryContext:i().object,baseUrl:i().string,user:i().object};const Me=I(Ce(Te((0,k.Z)("common")(_e))));class Pe extends s.Component{constructor(e){super(e),this.bindCallbacks()}get isMfaEnabled(){const e=this.props.context.siteSettings;return e&&e.canIUse("multiFactorAuthentication")}get isUserDirectoryEnabled(){const e=this.props.context.siteSettings;return e&&e.canIUse("directorySync")}get canIUseEE(){const e=this.props.context.siteSettings;return e&&e.canIUse("ee")}get canIUseLocale(){return this.props.context.siteSettings&&this.props.context.siteSettings.canIUse("locale")}get canIUseAccountRecovery(){const e=this.props.context.siteSettings;return e&&e.canIUse("accountRecovery")}get canIUseSmtpSettings(){const e=this.props.context.siteSettings;return e&&e.canIUse("smtpSettings")}bindCallbacks(){this.handleMfaClick=this.handleMfaClick.bind(this),this.handleUserDirectoryClick=this.handleUserDirectoryClick.bind(this),this.handleEmailNotificationsClick=this.handleEmailNotificationsClick.bind(this),this.handleSubscriptionClick=this.handleSubscriptionClick.bind(this),this.handleInternationalizationClick=this.handleInternationalizationClick.bind(this),this.handleAccountRecoveryClick=this.handleAccountRecoveryClick.bind(this),this.handleSmtpSettingsClick=this.handleSmtpSettingsClick.bind(this)}handleMfaClick(){this.props.navigationContext.onGoToAdministrationMfaRequested()}handleUserDirectoryClick(){this.props.navigationContext.onGoToAdministrationUsersDirectoryRequested()}handleEmailNotificationsClick(){this.props.navigationContext.onGoToAdministrationEmailNotificationsRequested()}handleSubscriptionClick(){this.props.navigationContext.onGoToAdministrationSubscriptionRequested()}handleInternationalizationClick(){this.props.navigationContext.onGoToAdministrationInternationalizationRequested()}handleAccountRecoveryClick(){this.props.navigationContext.onGoToAdministrationAccountRecoveryRequested()}handleSmtpSettingsClick(){this.props.navigationContext.onGoToAdministrationSmtpSettingsRequested()}isMfaSelected(){return he.MFA===this.props.administrationWorkspaceContext.selectedAdministration}isUserDirectorySelected(){return he.USER_DIRECTORY===this.props.administrationWorkspaceContext.selectedAdministration}isEmailNotificationsSelected(){return he.EMAIL_NOTIFICATION===this.props.administrationWorkspaceContext.selectedAdministration}isSubscriptionSelected(){return he.SUBSCRIPTION===this.props.administrationWorkspaceContext.selectedAdministration}isInternationalizationSelected(){return he.INTERNATIONALIZATION===this.props.administrationWorkspaceContext.selectedAdministration}isAccountRecoverySelected(){return he.ACCOUNT_RECOVERY===this.props.administrationWorkspaceContext.selectedAdministration}isSmtpSettingsSelected(){return he.SMTP_SETTINGS===this.props.administrationWorkspaceContext.selectedAdministration}render(){return s.createElement("div",{className:"navigation-secondary navigation-administration"},s.createElement("ul",{id:"administration_menu",className:"clearfix menu ready"},this.isMfaEnabled&&s.createElement("li",{id:"mfa_menu"},s.createElement("div",{className:"row "+(this.isMfaSelected()?"selected":"")},s.createElement("div",{className:"main-cell-wrapper"},s.createElement("div",{className:"main-cell"},s.createElement("a",{onClick:this.handleMfaClick},s.createElement("span",null,s.createElement(f.c,null,"Multi Factor Authentication"))))))),this.isUserDirectoryEnabled&&s.createElement("li",{id:"user_directory_menu"},s.createElement("div",{className:"row "+(this.isUserDirectorySelected()?"selected":"")},s.createElement("div",{className:"main-cell-wrapper"},s.createElement("div",{className:"main-cell"},s.createElement("a",{onClick:this.handleUserDirectoryClick},s.createElement("span",null,s.createElement(f.c,null,"Users Directory"))))))),s.createElement("li",{id:"email_notification_menu"},s.createElement("div",{className:"row "+(this.isEmailNotificationsSelected()?"selected":"")},s.createElement("div",{className:"main-cell-wrapper"},s.createElement("div",{className:"main-cell"},s.createElement("a",{onClick:this.handleEmailNotificationsClick},s.createElement("span",null,s.createElement(f.c,null,"Email Notifications"))))))),this.canIUseLocale&&s.createElement("li",{id:"internationalization_menu"},s.createElement("div",{className:"row "+(this.isInternationalizationSelected()?"selected":"")},s.createElement("div",{className:"main-cell-wrapper"},s.createElement("div",{className:"main-cell"},s.createElement("a",{onClick:this.handleInternationalizationClick},s.createElement("span",null,s.createElement(f.c,null,"Internationalisation"))))))),this.canIUseEE&&s.createElement("li",{id:"subscription_menu"},s.createElement("div",{className:"row "+(this.isSubscriptionSelected()?"selected":"")},s.createElement("div",{className:"main-cell-wrapper"},s.createElement("div",{className:"main-cell"},s.createElement("a",{onClick:this.handleSubscriptionClick},s.createElement("span",null,s.createElement(f.c,null,"Subscription"))))))),this.canIUseAccountRecovery&&s.createElement("li",{id:"account_recovery_menu"},s.createElement("div",{className:"row "+(this.isAccountRecoverySelected()?"selected":"")},s.createElement("div",{className:"main-cell-wrapper"},s.createElement("div",{className:"main-cell"},s.createElement("a",{onClick:this.handleAccountRecoveryClick},s.createElement("span",null,s.createElement(f.c,null,"Account Recovery"))))))),this.canIUseSmtpSettings&&s.createElement("li",{id:"smtp_settings_menu"},s.createElement("div",{className:"row "+(this.isSmtpSettingsSelected()?"selected":"")},s.createElement("div",{className:"main-cell-wrapper"},s.createElement("div",{className:"main-cell"},s.createElement("a",{onClick:this.handleSmtpSettingsClick},s.createElement("span",null,s.createElement(f.c,null,"Email server")))))))))}}Pe.propTypes={context:i().object,administrationWorkspaceContext:i().object,history:i().object,navigationContext:i().any};const je=(0,N.EN)(I(Ce(de(Pe))));var We=n(648),ze=n.n(We);class qe extends s.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks()}get defaultState(){return{viewPassword:!1,hasPassphraseFocus:!1}}bindCallbacks(){this.handleInputChange=this.handleInputChange.bind(this),this.handlePasswordInputFocus=this.handlePasswordInputFocus.bind(this),this.handlePasswordInputBlur=this.handlePasswordInputBlur.bind(this),this.handleViewPasswordButtonClick=this.handleViewPasswordButtonClick.bind(this)}handleInputChange(e){this.props.onChange(e)}handlePasswordInputFocus(){this.setState({hasPassphraseFocus:!0})}handlePasswordInputBlur(){this.setState({hasPassphraseFocus:!1})}handleViewPasswordButtonClick(){this.props.disabled||this.setState({viewPassword:!this.state.viewPassword})}get securityTokenStyle(){const e={background:this.props.securityToken.textColor,color:this.props.securityToken.backgroundColor},t={background:this.props.securityToken.backgroundColor,color:this.props.securityToken.textColor};return this.state.hasPassphraseFocus?e:t}get passphraseInputStyle(){const e={background:this.props.securityToken.backgroundColor,color:this.props.securityToken.textColor,"--passphrase-placeholder-color":this.props.securityToken.textColor};return this.state.hasPassphraseFocus?e:void 0}get previewStyle(){const e={"--icon-color":this.props.securityToken.textColor,"--icon-background-color":this.props.securityToken.backgroundColor};return this.state.hasPassphraseFocus?e:void 0}render(){return s.createElement("div",{className:"input password "+(this.props.securityToken?"security":""),style:this.props.securityToken?this.passphraseInputStyle:void 0},s.createElement("input",{id:this.props.id,name:this.props.name,maxLength:"4096",placeholder:this.props.placeholder,type:this.state.viewPassword&&!this.props.disabled?"text":"password",onKeyUp:this.props.onKeyUp,value:this.props.value,onFocus:this.handlePasswordInputFocus,onBlur:this.handlePasswordInputBlur,onChange:this.handleInputChange,disabled:this.props.disabled,readOnly:this.props.readOnly,autoComplete:this.props.autoComplete,ref:this.props.inputRef}),this.props.preview&&s.createElement("div",{className:"password-view-wrapper"},s.createElement("a",{onClick:this.handleViewPasswordButtonClick,style:this.props.securityToken?this.previewStyle:void 0,className:"password-view infield button button-transparent "+(this.props.disabled?"disabled":"")},!this.state.viewPassword&&s.createElement(O,{name:"eye-open"}),this.state.viewPassword&&s.createElement(O,{name:"eye-close"}),s.createElement("span",{className:"visually-hidden"},s.createElement(f.c,null,"View")))),this.props.securityToken&&s.createElement("div",{className:"security-token-wrapper"},s.createElement("span",{className:"security-token",style:this.securityTokenStyle},this.props.securityToken.code)))}}qe.defaultProps={id:"",name:"",autoComplete:"off"},qe.propTypes={context:i().any,id:i().string,name:i().string,value:i().string.isRequired,placeholder:i().string,autoComplete:i().string,inputRef:i().object,disabled:i().bool,readOnly:i().bool,preview:i().bool,onChange:i().func.isRequired,onKeyUp:i().func,securityToken:i().shape({code:i().string,backgroundColor:i().string,textColor:i().string})};const Fe=(0,k.Z)("common")(qe);class Oe extends s.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks()}get defaultState(){return{loading:!0,processing:!1,totpProviderToggle:!0,yubikeyToggle:!1,yubikeyClientIdentifier:"",yubikeyClientIdentifierError:null,yubikeySecretKey:"",yubikeySecretKeyError:null,duoToggle:!1,duoHostname:"",duoHostnameError:null,duoIntegrationKey:"",duoIntegrationKeyError:null,duoSalt:"",duoSaltError:null,duoSecretKey:"",duoSecretKeyError:null}}async componentDidMount(){this.findAllMfaSettings()}async componentDidUpdate(e){await this.handleMustSave(e.administrationWorkspaceContext.must.save)}bindCallbacks(){this.handleInputChange=this.handleInputChange.bind(this)}async handleMustSave(e){this.props.administrationWorkspaceContext.must.save!==e&&this.props.administrationWorkspaceContext.must.save&&(await this.handleFormSubmit(),this.props.administrationWorkspaceContext.onResetActionsSettings())}async findAllMfaSettings(){const e=(await this.props.administrationWorkspaceContext.onGetMfaRequested()).body,t=e.providers,n=t.includes("totp"),s=t.includes("yubikey");let r="",a="";s&&(r=e.yubikey.clientId,a=e.yubikey.secretKey);const i=t.includes("duo");let o="",l="",c="",d="";i&&(o=e.duo.hostName,l=e.duo.integrationKey,c=e.duo.salt,d=e.duo.secretKey),this.setState({loading:!1,totpProviderToggle:n,yubikeyToggle:s,yubikeyClientIdentifier:r,yubikeySecretKey:a,duoToggle:i,duoHostname:o,duoIntegrationKey:l,duoSalt:c,duoSecretKey:d})}handleInputChange(e){const t=e.target,n="checkbox"===t.type?t.checked:t.value,s=t.name;this.setState({[s]:n}),this.handleEnabledSaveButton()}handleEnabledSaveButton(){this.props.administrationWorkspaceContext.can.save||this.props.administrationWorkspaceContext.onSaveEnabled()}hasAllInputDisabled(){return this.state.processing||this.state.loading}isOtpProviderChecked(){return this.state.totpProviderToggle}isYubikeyChecked(){return this.state.yubikeyToggle}isDuoChecked(){return this.state.duoToggle}async validate(){await Promise.all([this.validateYubikeyInput(),this.validateDuoInput()])}async validateYubikeyInput(){let e=null,t=null;if(this.isYubikeyChecked()){const n=this.state.yubikeyClientIdentifier.trim();n.length?ze()("^[0-9]{1,64}$").test(n)||(e=this.translate("The client identifier should be an integer.")):e=this.translate("A client identifier is required.");const s=this.state.yubikeySecretKey.trim();s.length?ze()("^[a-zA-Z0-9\\/=+]{10,128}$").test(s)||(t=this.translate("This secret key is not valid.")):t=this.translate("A secret key is required.")}return this.setState({yubikeyClientIdentifierError:e,yubikeySecretKeyError:t})}async validateDuoInput(){let e=null,t=null,n=null,s=null;if(this.isDuoChecked()){const r=this.state.duoHostname.trim();r.length?ze()("^api-[a-fA-F0-9]{8,16}\\.duosecurity\\.com$").test(r)||(e=this.translate("This is not a valid hostname.")):e=this.translate("A hostname is required.");const a=this.state.duoIntegrationKey.trim();a.length?ze()("^[a-zA-Z0-9]{16,32}$").test(a)||(t=this.translate("This is not a valid integration key.")):t=this.translate("An integration key is required.");const i=this.state.duoSalt.trim();i.length?ze()("^.{40,128}$").test(i)||(n=this.translate("The salt should be between 40 and 128 characters in length.")):n=this.translate("A salt is required.");const o=this.state.duoSecretKey.trim();o.length?ze()("^[a-zA-Z0-9]{32,128}$").test(o)||(s=this.translate("This is not a valid secret key.")):s=this.translate("A secret key is required.")}return this.setState({duoHostnameError:e,duoIntegrationKeyError:t,duoSaltError:n,duoSecretKeyError:s})}hasValidationError(){return this.hasYubikeyError()||this.hasDuoError()}hasYubikeyError(){return null!==this.state.yubikeyClientIdentifierError||null!==this.state.yubikeySecretKeyError}hasDuoError(){return null!==this.state.duoHostnameError||null!==this.state.duoIntegrationKeyError||null!==this.state.duoSaltError||null!==this.state.duoSecretKeyError}async handleFormSubmit(){if(!this.state.processing){if(await this.toggleProcessing(),await this.validate(),this.hasValidationError())return void await this.toggleProcessing();try{await this.saveMfa(),await this.handleSaveSuccess()}catch(e){await this.handleSaveError(e)}}}async saveMfa(){const e=[];this.state.totpProviderToggle&&e.push("totp");let t=null;this.state.yubikeyToggle&&(e.push("yubikey"),t={clientId:this.state.yubikeyClientIdentifier,secretKey:this.state.yubikeySecretKey});let n=null;this.state.duoToggle&&(e.push("duo"),n={hostName:this.state.duoHostname,integrationKey:this.state.duoIntegrationKey,salt:this.state.duoSalt,secretKey:this.state.duoSecretKey}),await this.props.administrationWorkspaceContext.onSaveMfaRequested({providers:e,yubikey:t,duo:n})}async handleSaveSuccess(){await this.props.actionFeedbackContext.displaySuccess(this.translate("The multi factor authentication settings for the organization were updated.")),this.setState({processing:!1})}async handleSaveError(e){"UserAbortsOperationError"===e.name||(console.error(e),await this.handleError(e)),this.setState({processing:!1})}async handleError(e){await this.props.actionFeedbackContext.displayError(e.message)}async toggleProcessing(){const e=this.state.processing;return this.setState({processing:!e})}get translate(){return this.props.t}render(){return s.createElement("div",{className:"row"},s.createElement("div",{className:"mfa-settings col7 main-column"},s.createElement("h3",null,"Multi Factor Authentication"),s.createElement("p",null,s.createElement(f.c,null,"In this section you can choose which multi factor authentication will be available.")),s.createElement("h4",{className:"no-border"},s.createElement("span",{className:"input toggle-switch form-element ready"},s.createElement("input",{id:"totp-provider-toggle-button",type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"totpProviderToggle",onChange:this.handleInputChange,checked:this.state.totpProviderToggle,disabled:this.hasAllInputDisabled()}),s.createElement("label",{htmlFor:"totp-provider-toggle-button"},s.createElement(f.c,null,"Time-based One Time Password")))),!this.isOtpProviderChecked()&&s.createElement("p",{className:"description"},s.createElement(f.c,null,"The Time-based One Time Password provider is disabled for all users.")),this.isOtpProviderChecked()&&s.createElement("p",{className:"description"},s.createElement(f.c,null,"The Time-based One Time Password provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication.")),s.createElement("h4",null,s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{id:"yubikey-provider-toggle-button",type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"yubikeyToggle",onChange:this.handleInputChange,checked:this.state.yubikeyToggle,disabled:this.hasAllInputDisabled()}),s.createElement("label",{htmlFor:"yubikey-provider-toggle-button"},"Yubikey"))),!this.isYubikeyChecked()&&s.createElement("p",{className:"description"},s.createElement(f.c,null,"The Yubikey provider is disabled for all users.")),this.isYubikeyChecked()&&s.createElement(s.Fragment,null,s.createElement("p",{className:"description"},s.createElement(f.c,null,"The Yubikey provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication.")),s.createElement("div",{className:`input text required ${this.state.yubikeyClientIdentifierError?"error":""} ${this.hasAllInputDisabled()?"disabled":""}`},s.createElement("label",null,s.createElement(f.c,null,"Client identifier")),s.createElement("input",{id:"yubikeyClientIdentifier",type:"text",name:"yubikeyClientIdentifier",required:"required",className:"required fluid form-element ready",placeholder:"123456789",onChange:this.handleInputChange,value:this.state.yubikeyClientIdentifier,disabled:this.hasAllInputDisabled()}),this.state.yubikeyClientIdentifierError&&s.createElement("div",{className:"yubikey_client_identifier error-message"},this.state.yubikeyClientIdentifierError)),s.createElement("div",{className:`input required input-secret ${this.state.yubikeySecretKeyError?"error":""} ${this.hasAllInputDisabled()?"disabled":""}`},s.createElement("label",null,s.createElement(f.c,null,"Secret key")),s.createElement(Fe,{id:"yubikeySecretKey",onChange:this.handleInputChange,autoComplete:"off",name:"yubikeySecretKey",placeholder:"**********",disabled:this.hasAllInputDisabled(),value:this.state.yubikeySecretKey,preview:!0}),this.state.yubikeySecretKeyError&&s.createElement("div",{className:"yubikey_secret_key error-message"},this.state.yubikeySecretKeyError))),s.createElement("h4",null,s.createElement("span",{className:"input toggle-switch form-element ready"},s.createElement("input",{id:"duo-provider-toggle-button",type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"duoToggle",onChange:this.handleInputChange,checked:this.state.duoToggle,disabled:this.hasAllInputDisabled()}),s.createElement("label",{htmlFor:"duo-provider-toggle-button"},"Duo"))),!this.isDuoChecked()&&s.createElement("p",{className:"description"},s.createElement(f.c,null,"The Duo provider is disabled for all users.")),this.isDuoChecked()&&s.createElement(s.Fragment,null,s.createElement("p",{className:"description enabled"},s.createElement(f.c,null,"The Duo provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication.")),s.createElement("div",{className:`input text required ${this.state.duoHostnameError?"error":""} ${this.hasAllInputDisabled()?"disabled":""}`},s.createElement("label",null,s.createElement(f.c,null,"Hostname")),s.createElement("input",{id:"duoHostname",type:"text",name:"duoHostname",required:"required",className:"required fluid form-element ready",placeholder:"api-24zlkn4.duosecurity.com",value:this.state.duoHostname,onChange:this.handleInputChange,disabled:this.hasAllInputDisabled()}),this.state.duoHostnameError&&s.createElement("div",{className:"duo_hostname error-message"},this.state.duoHostnameError)),s.createElement("div",{className:`input text required ${this.state.duoIntegrationKeyError?"error":""} ${this.hasAllInputDisabled()?"disabled":""}`},s.createElement("label",null,s.createElement(f.c,null,"Integration key")),s.createElement("input",{id:"duoIntegrationKey",type:"text",name:"duoIntegrationKey",required:"required",className:"required fluid form-element ready",placeholder:"HASJKDSQJO213123KQSLDF",value:this.state.duoIntegrationKey,onChange:this.handleInputChange,disabled:this.hasAllInputDisabled()}),this.state.duoIntegrationKeyError&&s.createElement("div",{className:"duo_integration_key error-message"},this.state.duoIntegrationKeyError)),s.createElement("div",{className:`input text required ${this.state.duoSaltError?"error":""} ${this.hasAllInputDisabled()?"disabled":""}`},s.createElement("label",null,s.createElement(f.c,null,"Salt")),s.createElement(Fe,{id:"duoSalt",onChange:this.handleInputChange,autoComplete:"off",name:"duoSalt",placeholder:"**********",disabled:this.hasAllInputDisabled(),value:this.state.duoSalt,preview:!0}),this.state.duoSaltError&&s.createElement("div",{className:"duo_salt error-message"},this.state.duoSaltError)),s.createElement("div",{className:`input text required ${this.state.duoSecretKeyError?"error":""} ${this.hasAllInputDisabled()?"disabled":""}`},s.createElement("label",null,s.createElement(f.c,null,"Secret key")),s.createElement(Fe,{id:"duoSecretKey",onChange:this.handleInputChange,autoComplete:"off",name:"duoSecretKey",placeholder:"**********",disabled:this.hasAllInputDisabled(),value:this.state.duoSecretKey,preview:!0}),this.state.duoSecretKeyError&&s.createElement("div",{className:"duo_secret_key error-message"},this.state.duoSecretKeyError)))),s.createElement("div",{className:"col4 last"},s.createElement("div",{className:"sidebar-help"},s.createElement("h3",null,s.createElement(f.c,null,"Need help?")),s.createElement("p",null,s.createElement(f.c,null,"Check out our Multi Factor Authentication configuration guide.")),s.createElement("a",{className:"button",href:"https://help.passbolt.com/configure",target:"_blank",rel:"noopener noreferrer"},s.createElement(O,{name:"document"}),s.createElement("span",null,s.createElement(f.c,null,"Read the documentation"))))))}}Oe.propTypes={administrationWorkspaceContext:i().object,actionFeedbackContext:i().any,t:i().func};const Ke=h(de((0,k.Z)("common")(Oe)));class Ve extends s.Component{render(){let e=0;return s.createElement("div",{className:"breadcrumbs"},s.createElement("ul",{className:"menu"},this.props.items&&this.props.items.map((t=>(e++,s.createElement("li",{className:"ellipsis",key:e},t))))))}}Ve.propTypes={items:i().array};const Ge=Ve;class Be extends s.Component{render(){return s.createElement("a",{onClick:this.props.onClick},this.props.name)}}Be.propTypes={name:i().string,onClick:i().func};const He=Be;class $e extends s.Component{get items(){return this.props.administrationWorkspaceContext.selectedAdministration===he.NONE?[]:[s.createElement(He,{key:"bread-1",name:this.translate("Administration"),onClick:this.props.navigationContext.onGoToAdministrationRequested}),s.createElement(He,{key:"bread-2",name:this.getLastBreadcrumbItemName(),onClick:this.onLastBreadcrumbClick.bind(this)}),s.createElement(He,{key:"bread-3",name:this.translate("Settings"),onClick:this.onLastBreadcrumbClick.bind(this)})]}getLastBreadcrumbItemName(){switch(this.props.administrationWorkspaceContext.selectedAdministration){case he.MFA:return this.translate("Multi Factor Authentication");case he.USER_DIRECTORY:return this.translate("Users Directory");case he.EMAIL_NOTIFICATION:return this.translate("Email Notification");case he.SUBSCRIPTION:return this.translate("Subscription");case he.INTERNATIONALIZATION:return this.translate("Internationalisation");case he.ACCOUNT_RECOVERY:return this.translate("Account Recovery");case he.SMTP_SETTINGS:return this.translate("Email server");default:return""}}async onLastBreadcrumbClick(){const e=this.props.location.pathname;this.props.history.push({pathname:e})}get translate(){return this.props.t}render(){return s.createElement(Ge,{items:this.items})}}$e.propTypes={administrationWorkspaceContext:i().object,location:i().object,history:i().object,navigationContext:i().any,t:i().func};const Ze=(0,N.EN)(Ce(de((0,k.Z)("common")($e))));class Ye extends s.Component{hasChildren(){return this.props.node.group.groups.length>0}displayUserName(e){return`${e.profile.first_name} ${e.profile.last_name}`}get node(){return this.props.node}render(){return s.createElement("ul",{key:this.node.id},"group"===this.node.type&&s.createElement("li",{className:"group"},this.node.group.name,s.createElement("ul",null,Object.values(this.node.group.users).map((e=>s.createElement("li",{className:"user",key:e.id},e.errors&&s.createElement("span",{className:"error"},e.directory_name),!e.errors&&s.createElement("span",null,this.displayUserName(e.user)," ",s.createElement("em",null,"(",e.user.username,")"))))),Object.values(this.node.group.groups).map((e=>s.createElement(Ye,{key:`tree-${e.id}`,node:e}))))),"user"===this.node.type&&s.createElement("li",{className:"user"},this.node.errors&&s.createElement("span",{className:"error"},this.node.directory_name),!this.node.errors&&s.createElement("span",null,this.displayUserName(this.node.user)," ",s.createElement("em",null,"(",this.node.user.username,")"))))}}Ye.propTypes={node:i().object};const Je=Ye;class Qe extends s.Component{constructor(e){super(e),this.state=this.defaultState,this.bindEventHandlers()}get defaultState(){return{loading:!0,openListGroupsUsers:!1,openStructureGroupsUsers:!1,openErrors:!1}}bindEventHandlers(){this.handleListGroupsUsersClicked=this.handleListGroupsUsersClicked.bind(this),this.handleStructureGroupsUsersClicked=this.handleStructureGroupsUsersClicked.bind(this),this.handleErrorsClicked=this.handleErrorsClicked.bind(this),this.handleClose=this.handleClose.bind(this)}componentDidMount(){this.setState({loading:!1})}handleListGroupsUsersClicked(){this.setState({openListGroupsUsers:!this.state.openListGroupsUsers})}handleStructureGroupsUsersClicked(){this.setState({openStructureGroupsUsers:!this.state.openStructureGroupsUsers})}handleErrorsClicked(){this.setState({openErrors:!this.state.openErrors})}handleClose(){this.props.onClose(),this.props.context.setContext({displayTestUserDirectoryDialogProps:null})}hasAllInputDisabled(){return this.state.loading}displayUserName(e){return`${e.profile.first_name} ${e.profile.last_name}`}get users(){return this.props.context.displayTestUserDirectoryDialogProps.userDirectoryTestResult.users}get groups(){return this.props.context.displayTestUserDirectoryDialogProps.userDirectoryTestResult.groups}get tree(){return this.props.context.displayTestUserDirectoryDialogProps.userDirectoryTestResult.tree}get errors(){return this.props.context.displayTestUserDirectoryDialogProps.userDirectoryTestResult.errors}get translate(){return this.props.t}render(){return s.createElement($,{className:"ldap-test-settings-dialog",title:this.translate("Test settings report"),onClose:this.handleClose,disabled:this.hasAllInputDisabled()},s.createElement("div",{className:"form-content"},s.createElement("p",null,s.createElement("strong",null,s.createElement(f.c,null,"A connection could be established. Well done!"))),s.createElement("p",null),s.createElement("div",{className:"ldap-test-settings-report"},s.createElement("p",null,this.users.length>0&&s.createElement(s.Fragment,null,this.translate("{{count}} user has been found.",{count:this.users.length})),this.users.length>0&&this.groups.length>0&&s.createElement("br",null),this.groups.length>0&&s.createElement(s.Fragment,null,this.translate("{{count}} group has been found.",{count:this.groups.length}))),s.createElement("div",{className:"accordion directory-list "+(this.state.openListGroupsUsers?"":"closed")},s.createElement("div",{className:"accordion-header",onClick:this.handleListGroupsUsersClicked},s.createElement("a",{role:"link"},s.createElement(f.c,null,"See list"),this.state.openListGroupsUsers&&s.createElement(O,{name:"caret-down",baseline:!0}),!this.state.openListGroupsUsers&&s.createElement(O,{name:"caret-right",baseline:!0}))),s.createElement("div",{className:"accordion-content"},s.createElement("table",null,s.createElement("tbody",null,s.createElement("tr",null,s.createElement("td",null,s.createElement(f.c,null,"Groups")),s.createElement("td",null,s.createElement(f.c,null,"Users"))),s.createElement("tr",null,s.createElement("td",null,this.groups.map((e=>e.errors&&s.createElement("div",{key:e.id},s.createElement("span",{className:"error"},e.directory_name))||s.createElement("div",{key:e.id},e.group.name)))),s.createElement("td",null,this.users.map((e=>e.errors&&s.createElement("div",{key:e.id},s.createElement("span",{className:"error"},e.directory_name))||s.createElement("div",{key:e.id},this.displayUserName(e.user)," ",s.createElement("em",null,"(",e.user.username,")")))))))))),s.createElement("div",{className:"accordion accordion-directory-structure "+(this.state.openStructureGroupsUsers?"":"closed")},s.createElement("div",{className:"accordion-header",onClick:this.handleStructureGroupsUsersClicked},s.createElement("a",{role:"link"},s.createElement(f.c,null,"See structure"),this.state.openStructureGroupsUsers&&s.createElement(O,{name:"caret-down",baseline:!0}),!this.state.openStructureGroupsUsers&&s.createElement(O,{name:"caret-right",baseline:!0}))),s.createElement("div",{className:"accordion-content"},s.createElement("div",{className:"directory-structure"},s.createElement("ul",null,s.createElement("li",{className:"group"},"Root",Object.values(this.tree).map((e=>s.createElement(Je,{key:`tree-${e.id}`,node:e})))))))),this.errors.length>0&&s.createElement("div",null,s.createElement("p",{className:"directory-errors error"},this.translate("{{count}} entry had errors and will be ignored during synchronization.",{count:this.errors.length})),s.createElement("div",{className:"accordion accordion-directory-errors "+(this.state.openErrors?"":"closed")},s.createElement("div",{className:"accordion-header",onClick:this.handleErrorsClicked},s.createElement("a",{role:"link"},s.createElement(f.c,null,"See error details"),this.state.openErrors&&s.createElement(O,{name:"caret-down",baseline:!0}),!this.state.openErrors&&s.createElement(O,{name:"caret-right",baseline:!0}))),s.createElement("div",{className:"accordion-content"},s.createElement("div",{className:"directory-errors"},s.createElement("textarea",{value:JSON.stringify(this.errors,null," "),readOnly:!0}))))))),s.createElement("div",{className:"submit-wrapper clearfix"},s.createElement("a",{className:"button primary "+(this.hasAllInputDisabled()?"disabled":""),role:"button",onClick:this.handleClose},s.createElement(f.c,null,"OK"))))}}Qe.propTypes={context:i().any,onClose:i().func,t:i().func};const Xe=I((0,k.Z)("common")(Qe)),et=new class{allPropTypes=(...e)=>(...t)=>{const n=e.map((e=>e(...t))).filter(Boolean);if(0===n.length)return;const s=n.map((e=>e.message)).join("\n");return new Error(s)}};class tt extends s.Component{constructor(e){super(e),this.state=this.getDefaultState(e),this.bindCallback(),this.createRefs()}getDefaultState(e){return{selectedValue:e.value,search:"",open:!1,style:void 0}}get listItemsFiltered(){const e=this.props.items.filter((e=>e.value!==this.state.selectedValue));return this.props.search&&""!==this.state.search?this.getItemsMatch(e,this.state.search):e}get selectedItemLabel(){const e=this.props.items&&this.props.items.find((e=>e.value===this.state.selectedValue));return e&&e.label||s.createElement(s.Fragment,null," ")}static getDerivedStateFromProps(e,t){return void 0!==e.value&&e.value!==t.selectedValue?{selectedValue:e.value}:null}bindCallback(){this.handleDocumentClickEvent=this.handleDocumentClickEvent.bind(this),this.handleDocumentContextualMenuEvent=this.handleDocumentContextualMenuEvent.bind(this),this.handleDocumentDragStartEvent=this.handleDocumentDragStartEvent.bind(this),this.handleDocumentScrollEvent=this.handleDocumentScrollEvent.bind(this),this.handleSelectClick=this.handleSelectClick.bind(this),this.handleInputChange=this.handleInputChange.bind(this),this.handleItemClick=this.handleItemClick.bind(this),this.handleSelectKeyDown=this.handleSelectKeyDown.bind(this),this.handleItemKeyDown=this.handleItemKeyDown.bind(this),this.handleBlur=this.handleBlur.bind(this)}createRefs(){this.selectedItemRef=s.createRef(),this.selectItemsRef=s.createRef(),this.itemsRef=s.createRef()}componentDidMount(){document.addEventListener("click",this.handleDocumentClickEvent,{capture:!0}),document.addEventListener("contextmenu",this.handleDocumentContextualMenuEvent,{capture:!0}),document.addEventListener("dragstart",this.handleDocumentDragStartEvent,{capture:!0}),document.addEventListener("scroll",this.handleDocumentScrollEvent,{capture:!0})}componentWillUnmount(){document.removeEventListener("click",this.handleDocumentClickEvent,{capture:!0}),document.removeEventListener("contextmenu",this.handleDocumentContextualMenuEvent,{capture:!0}),document.removeEventListener("dragstart",this.handleDocumentDragStartEvent,{capture:!0}),document.removeEventListener("scroll",this.handleDocumentScrollEvent,{capture:!0})}handleDocumentClickEvent(e){this.selectedItemRef.current.contains(e.target)||this.selectItemsRef.current.contains(e.target)||this.closeSelect()}handleDocumentContextualMenuEvent(e){this.selectedItemRef.current.contains(e.target)||this.selectItemsRef.current.contains(e.target)||this.closeSelect()}handleDocumentDragStartEvent(){this.closeSelect()}handleDocumentScrollEvent(e){this.itemsRef.current.contains(e.target)||this.closeSelect()}handleSelectClick(){if(this.props.disabled)this.closeSelect();else{const e=!this.state.open;e?this.forceVisibilitySelect():this.resetStyleSelect(),this.setState({open:e})}}getFirstParentWithTransform(){let e=this.selectedItemRef.current.parentElement;for(;null!==e&&""===e.style.getPropertyValue("transform");)e=e.parentElement;return e}forceVisibilitySelect(){const e=this.selectedItemRef.current.getBoundingClientRect(),{width:t,height:n}=e;let{top:s,left:r}=e;const a=this.getFirstParentWithTransform();if(a){const e=a.getBoundingClientRect();s-=e.top,r-=e.left}const i={position:"fixed",zIndex:1,width:t,height:n,top:s,left:r};this.setState({style:i})}handleBlur(e){e.currentTarget.contains(e.relatedTarget)||this.closeSelect()}closeSelect(){this.resetStyleSelect(),this.setState({open:!1})}resetStyleSelect(){this.setState({style:void 0})}handleInputChange(e){const t=e.target,n=t.value,s=t.name;this.setState({[s]:n})}handleItemClick(e){if(this.setState({selectedValue:e.value,open:!1}),"function"==typeof this.props.onChange){const t={target:{value:e.value,name:this.props.name}};this.props.onChange(t)}this.closeSelect()}getItemsMatch(e,t){const n=t&&t.split(/\s+/)||[""];return e.filter((e=>n.every((t=>((e,t)=>(e=>new RegExp((e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))(e),"i"))(e).test(t))(t,e.label)))))}handleSelectKeyDown(e){switch(e.keyCode){case 13:return e.stopPropagation(),void this.handleSelectClick();case 40:return e.preventDefault(),e.stopPropagation(),void(this.state.open?this.focusItem(0):this.handleSelectClick());case 38:return e.preventDefault(),e.stopPropagation(),void(this.state.open?this.focusItem(this.listItemsFiltered.length-1):this.handleSelectClick());case 27:return e.stopPropagation(),void this.closeSelect();default:return}}focusItem(e){this.itemsRef.current.childNodes[e]?.focus()}handleItemKeyDown(e,t){switch(e.keyCode){case 13:return e.stopPropagation(),void this.handleItemClick(t);case 40:return e.stopPropagation(),e.preventDefault(),void(e.target.nextSibling?e.target.nextSibling.focus():this.focusItem(0));case 38:return e.stopPropagation(),e.preventDefault(),void(e.target.previousSibling?e.target.previousSibling.focus():this.focusItem(this.listItemsFiltered.length-1));default:return}}hasFilteredItems(){return this.listItemsFiltered.length>0}render(){return s.createElement("div",{className:`select-container ${this.props.className}`,style:{width:this.state.style?.width,height:this.state.style?.height}},s.createElement("div",{onKeyDown:this.handleSelectKeyDown,onBlur:this.handleBlur,id:this.props.id,className:`select ${this.props.direction} ${this.state.open?"open":""}`,style:this.state.style},s.createElement("div",{ref:this.selectedItemRef,className:"selected-value "+(this.props.disabled?"disabled":""),tabIndex:this.props.disabled?-1:0,onClick:this.handleSelectClick},s.createElement("span",{className:"value"},this.selectedItemLabel),s.createElement(O,{name:"caret-down"})),s.createElement("div",{ref:this.selectItemsRef,className:"select-items "+(this.state.open?"visible":"")},this.props.search&&s.createElement(s.Fragment,null,s.createElement("input",{className:"search-input",name:"search",value:this.state.search,onChange:this.handleInputChange,type:"text"}),s.createElement(O,{name:"search"})),s.createElement("ul",{ref:this.itemsRef,className:"items"},this.hasFilteredItems()&&this.listItemsFiltered.map((e=>s.createElement("li",{tabIndex:e.disabled?-1:0,key:e.value,className:"option",onKeyDown:t=>this.handleItemKeyDown(t,e),onClick:()=>this.handleItemClick(e)},e.label))),!this.hasFilteredItems()&&this.props.search&&s.createElement("li",{className:"option no-results"},s.createElement(f.c,null,"No results match")," ",s.createElement("span",null,this.state.search))))))}}tt.defaultProps={id:"",name:"select",className:"",direction:"bottom"},tt.propTypes={id:i().string,name:i().string,className:i().string,direction:i().oneOf(Object.values({top:"top",bottom:"bottom",left:"left",right:"right"})),search:i().bool,items:i().array.isRequired,value:et.allPropTypes(i().oneOfType([i().string,i().number,i().bool]).isRequired,((e,t,n)=>{const s=e[t],r=e.items;if(r.length>0&&r.every((e=>e.value!==s)))return new Error(`Invalid prop ${t} passed to ${n}. Expected the value ${s} in items.`)})),disabled:i().bool,onChange:i().func};const nt=(0,k.Z)("common")(tt);class st extends s.Component{constructor(e){super(e),this.state=this.defaultState,this.createRefs(),this.bindCallbacks()}get defaultState(){return{loading:!0,processing:!1,hasFieldFocus:!1,openCredentials:!0,openDirectoryConfiguration:!1,openSynchronizationOptions:!1,openConnectionType:!1,openDefaultAdmin:!1,openDefaultGroupAdmin:!1,userDirectoryToggle:!1,directoryType:"ad",connectionType:"plain",host:"",hostError:null,port:"389",portError:null,username:"",password:"",domain:"",domainError:null,baseDn:"",groupPath:"",userPath:"",groupObjectClass:"",userObjectClass:"",useEmailPrefix:!1,emailPrefix:"",emailSuffix:"",defaultAdmin:"",defaultGroupAdmin:"",groupsParentGroup:"",usersParentGroup:"",enabledUsersOnly:!1,createUsers:!0,deleteUsers:!0,createGroups:!0,deleteGroups:!0,updateGroups:!0,defaultAdminSearch:"",defaultGroupAdminSearch:"",users:null,hasAlreadyBeenValidated:!1}}async componentDidMount(){document.addEventListener("click",this.handleUserDirectoryClickEvent,{capture:!0}),this.findAllUserDirectorySettings()}componentWillUnmount(){document.removeEventListener("click",this.handleUserDirectoryClickEvent,{capture:!0})}async componentDidUpdate(e,t){await this.handleEnabledTestButton(t.userDirectoryToggle),await this.handleMustSubmit(e.administrationWorkspaceContext)}bindCallbacks(){this.handleUserDirectoryClickEvent=this.handleUserDirectoryClickEvent.bind(this),this.handleCredentialTitleClicked=this.handleCredentialTitleClicked.bind(this),this.handleDirectoryConfigurationTitleClicked=this.handleDirectoryConfigurationTitleClicked.bind(this),this.handleSynchronizationOptionsTitleClicked=this.handleSynchronizationOptionsTitleClicked.bind(this),this.handleConnectionTypeClicked=this.handleConnectionTypeClicked.bind(this),this.handleInputChange=this.handleInputChange.bind(this),this.handleHostInputKeyUp=this.handleHostInputKeyUp.bind(this),this.handlePortInputKeyUp=this.handlePortInputKeyUp.bind(this),this.handleDomainInputKeyUp=this.handleDomainInputKeyUp.bind(this),this.handleFieldFocus=this.handleFieldFocus.bind(this),this.handleFieldBlur=this.handleFieldBlur.bind(this),this.stopPropagation=this.stopPropagation.bind(this),this.handleConnectionTypeChange=this.handleConnectionTypeChange.bind(this)}createRefs(){this.connectionTypeRef=s.createRef()}handleEnabledTestButton(e){this.state.userDirectoryToggle!==e&&this.props.administrationWorkspaceContext.onTestEnabled(this.state.userDirectoryToggle)}handleUserDirectoryClickEvent(e){null===this.connectionTypeRef.current||this.connectionTypeRef.current.contains(e.target)||this.setState({openConnectionType:!1})}stopPropagation(e){e.stopPropagation()}async handleMustSubmit(e){const t=this.props.administrationWorkspaceContext.must.save!==e.must.save,n=this.props.administrationWorkspaceContext.must.test!==e.must.test;(t&&this.props.administrationWorkspaceContext.must.save||n&&this.props.administrationWorkspaceContext.must.test)&&(await this.handleFormSubmit(),this.props.administrationWorkspaceContext.onResetActionsSettings())}async findAllUserDirectorySettings(){const e=(await this.props.administrationWorkspaceContext.onGetUsersDirectoryRequested()).body,t=await this.props.administrationWorkspaceContext.onGetUsersRequested(),n=this.sortUsers(t.body);let s="",r="";if(0!==e.length){const t=!0,a=e.directory_type,i=e.connection_type,o=e.domain_name,l=e.username,c=e.password,d=e.base_dn,h=e.server,u=e.port.toString();s=e.default_user,r=e.default_group_admin_user;const p=e.sync_users_create,m=e.sync_users_delete,g=e.sync_groups_create,y=e.sync_groups_delete,b=e.sync_groups_update,v=!0===e.enabled_users_only,f=e.group_path,k=e.user_path,E=e.group_object_class,C=e.user_object_class,w=e.use_email_prefix_suffix,S=e.email_prefix,x=e.email_suffix,N=e.groups_parent_group,L=e.users_parent_group;this.setState({loading:!1,users:n,userDirectoryToggle:t,directoryType:a,connectionType:i,domain:o,username:l,password:c,baseDn:d,host:h,port:u,defaultAdmin:s,defaultGroupAdmin:r,enabledUsersOnly:v,groupPath:f,userPath:k,groupObjectClass:E,userObjectClass:C,useEmailPrefix:w,emailPrefix:S,emailSuffix:x,groupsParentGroup:N,usersParentGroup:L,createUsers:p,deleteUsers:m,createGroups:g,deleteGroups:y,updateGroups:b}),this.props.administrationWorkspaceContext.onTestEnabled(t),this.props.administrationWorkspaceContext.onSynchronizeEnabled(t)}else{const e=n.find((e=>this.props.context.loggedInUser.id===e.id));s=e.id,r=e.id,this.setState({loading:!1,users:n,defaultAdmin:s,defaultGroupAdmin:r})}}sortUsers(e){const t=e=>`${e.profile.first_name} ${e.profile.last_name}`;return e.sort(((e,n)=>t(e).localeCompare(t(n))))}handleCredentialTitleClicked(){this.setState({openCredentials:!this.state.openCredentials})}handleDirectoryConfigurationTitleClicked(){this.setState({openDirectoryConfiguration:!this.state.openDirectoryConfiguration})}handleSynchronizationOptionsTitleClicked(){this.setState({openSynchronizationOptions:!this.state.openSynchronizationOptions})}handleConnectionTypeClicked(){this.hasAllInputDisabled()||this.setState({openConnectionType:!this.state.openConnectionType})}handleHostInputKeyUp(){if(this.state.hasAlreadyBeenValidated){const e=this.validateHostInput();this.setState(e)}}handlePortInputKeyUp(){if(this.state.hasAlreadyBeenValidated){const e=this.validatePortInput();this.setState(e)}}handleDomainInputKeyUp(){if(this.state.hasAlreadyBeenValidated){const e=this.validateDomainInput();this.setState(e)}}handleInputChange(e){const t=e.target,n="checkbox"===t.type?t.checked:t.value,s=t.name;this.setState({[s]:n}),this.handleEnabledSaveButton()}handleConnectionTypeChange(e){const t=e.target.value;this.setState({connectionType:t,hasFieldFocus:!1}),this.handleEnabledSaveButton()}handleEnabledSaveButton(){this.props.administrationWorkspaceContext.can.save||this.props.administrationWorkspaceContext.onSaveEnabled()}hasAllInputDisabled(){return this.state.processing||this.state.loading}isUserDirectoryChecked(){return this.state.userDirectoryToggle}isActiveDirectoryChecked(){return"ad"===this.state.directoryType}isOpenLdapChecked(){return"openldap"===this.state.directoryType}isUseEmailPrefixChecked(){return this.state.useEmailPrefix}async validate(){await Promise.all([this.validateHostInput(),this.validatePortInput(),this.validateDomainInput()])}async validateHostInput(){let e=null;return this.state.host.trim().length||(e=this.translate("A host is required.")),this.setState({hostError:e})}async validatePortInput(){let e=null;const t=this.state.port.trim();return t.length?ze()("^[0-9]+").test(t)||(e=this.translate("Only numeric characters allowed.")):e=this.translate("A port is required."),this.setState({portError:e})}async validateDomainInput(){let e=null;return this.state.domain.trim().length||(e=this.translate("A domain name is required.")),this.setState({domainError:e})}hasValidationError(){return null!==this.state.hostError||null!==this.state.portError||null!==this.state.domainError}async handleFormSubmit(){if(await this.setState({hasAlreadyBeenValidated:!0}),!this.state.processing){if(await this.toggleProcessing(),await this.validate(),this.hasValidationError())return void await this.toggleProcessing();try{this.props.administrationWorkspaceContext.must.save?(await this.saveUserDirectory(),await this.handleSaveSuccess()):this.props.administrationWorkspaceContext.must.test&&await this.testUserDirectory(),this.setState({processing:!1})}catch(e){await this.handleSaveError(e)}}}createUserDirectoryDTO(){const e=this.state.directoryType,t=this.state.domain,n=this.state.connectionType,s=this.state.host,r=parseInt(this.state.port),a=this.state.username,i=this.state.password,o=this.state.baseDn,l=this.state.groupPath,c=this.state.userPath,d=this.state.defaultAdmin,h=this.state.defaultGroupAdmin,u=this.state.groupsParentGroup,p=this.state.usersParentGroup,m=this.state.enabledUsersOnly,g=this.state.createUsers,y=this.state.deleteUsers,b=this.state.createGroups,v=this.state.deleteGroups,f=this.state.updateGroups,k=this.state.userDirectoryToggle;let E="",C="",w=!1,S="",x="";return"openldap"==e&&(E=this.state.groupObjectClass,C=this.state.userObjectClass,w=this.state.useEmailPrefix,w&&(S=this.state.emailPrefix,x=this.state.emailSuffix)),{directory_type:e,domain_name:t,connection_type:n,server:s,port:r,username:a,password:i,base_dn:o,group_path:l,user_path:c,group_object_class:E,user_object_class:C,default_user:d,default_group_admin_user:h,groups_parent_group:u,users_parent_group:p,enabled_users_only:m,sync_users_create:g,sync_users_delete:y,sync_groups_create:b,sync_groups_delete:v,sync_groups_update:f,enabled:k,use_email_prefix_suffix:w,email_prefix:S,email_suffix:x}}async saveUserDirectory(){this.state.userDirectoryToggle?(await this.props.administrationWorkspaceContext.onUpdateUsersDirectoryRequested(this.createUserDirectoryDTO()),this.props.administrationWorkspaceContext.onSynchronizeEnabled(!0)):(this.setState(this.defaultState),await this.props.administrationWorkspaceContext.onDeleteUsersDirectoryRequested(),this.props.administrationWorkspaceContext.onSynchronizeEnabled(!1),this.setState({loading:!1}))}async testUserDirectory(){const e={userDirectoryTestResult:(await this.props.administrationWorkspaceContext.onTestUsersDirectoryRequested(this.createUserDirectoryDTO())).body};this.props.context.setContext({displayTestUserDirectoryDialogProps:e}),this.props.dialogContext.open(Xe)}async handleSaveSuccess(){await this.props.actionFeedbackContext.displaySuccess(this.translate("The user directory settings for the organization were updated."))}async handleSaveError(e){"UserAbortsOperationError"===e.name||(console.error(e),await this.handleError(e)),this.setState({processing:!1})}async handleError(e){await this.props.actionFeedbackContext.displayError(e.message)}async toggleProcessing(){const e=this.state.processing;return this.setState({processing:!e})}getUsersAllowedToBeDefaultAdmin(){if(null!==this.state.users){const e=this.state.users.filter((e=>!0===e.active&&"admin"===e.role.name));return e&&e.map((e=>({value:e.id,label:this.displayUser(e)})))}return[]}getUsersAllowedToBeDefaultGroupAdmin(){if(null!==this.state.users){const e=this.state.users.filter((e=>!0===e.active));return e&&e.map((e=>({value:e.id,label:this.displayUser(e)})))}return[]}displayUser(e){return`${e.profile.first_name} ${e.profile.last_name} (${e.username})`}displayDefaultAdmin(){if(null!==this.state.users&&""!==this.state.defaultAdmin){const e=this.state.users.find((e=>e.id===this.state.defaultAdmin));return this.displayUser(e)}return""}get connectionType(){return[{value:"plain",label:"ldap://"},{value:"ssl",label:"ldaps:// (ssl)"},{value:"tls",label:"ldaps:// (tls)"}]}handleFieldFocus(){this.setState({hasFieldFocus:!0})}handleFieldBlur(){this.setState({hasFieldFocus:!1})}get translate(){return this.props.t}render(){return s.createElement("div",{className:"row"},s.createElement("div",{className:"ldap-settings col7 main-column"},s.createElement("h3",null,s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"userDirectoryToggle",onChange:this.handleInputChange,checked:this.state.userDirectoryToggle,disabled:this.hasAllInputDisabled(),id:"userDirectoryToggle"}),s.createElement("label",{htmlFor:"userDirectoryToggle"},s.createElement(f.c,null,"Users Directory")))),!this.isUserDirectoryChecked()&&s.createElement("p",{className:"description"},s.createElement(f.c,null,"No Users Directory is configured. Enable it to synchronise your users and groups with passbolt.")),this.isUserDirectoryChecked()&&s.createElement(s.Fragment,null,s.createElement("p",{className:"description"},s.createElement(f.c,null,"A Users Directory is configured. The users and groups of passbolt will synchronize with it.")),s.createElement("div",{className:"accordion section-general "+(this.state.openCredentials?"":"closed")},s.createElement("h4",{className:"accordion-header"},s.createElement("a",{onClick:this.handleCredentialTitleClicked},this.state.openCredentials&&s.createElement(O,{name:"caret-down"}),!this.state.openCredentials&&s.createElement(O,{name:"caret-right"}),s.createElement(f.c,null,"Credentials"))),s.createElement("div",{className:"accordion-content"},s.createElement("div",{className:"radiolist required"},s.createElement("label",null,s.createElement(f.c,null,"Directory type")),s.createElement("div",{className:"input radio ad openldap form-element "},s.createElement("div",{className:"input radio"},s.createElement("input",{type:"radio",value:"ad",onChange:this.handleInputChange,name:"directoryType",checked:"ad"===this.state.directoryType,id:"directoryTypeAd",disabled:this.hasAllInputDisabled()}),s.createElement("label",{htmlFor:"directoryTypeAd"},s.createElement(f.c,null,"Active Directory"))),s.createElement("div",{className:"input radio"},s.createElement("input",{type:"radio",value:"openldap",onChange:this.handleInputChange,name:"directoryType",checked:"openldap"===this.state.directoryType,id:"directoryTypeOpenLdap",disabled:this.hasAllInputDisabled()}),s.createElement("label",{htmlFor:"directoryTypeOpenLdap"},s.createElement(f.c,null,"Open Ldap"))))),s.createElement("div",{className:"input text required ad openldap "+(this.hasAllInputDisabled()?"disabled":"")},s.createElement("label",null,s.createElement(f.c,null,"Server url")),s.createElement("div",{className:"input text singleline connection_info ad openldap "+(this.state.hasFieldFocus?"no-focus":"")},s.createElement("input",{id:"server-input",type:"text",className:"required host ad openldap form-element",name:"host",value:this.state.host,onChange:this.handleInputChange,onKeyUp:this.handleHostInputKeyUp,placeholder:this.translate("host"),disabled:this.hasAllInputDisabled()}),s.createElement("div",{className:"protocol",onBlur:this.handleFieldBlur,onFocus:this.handleFieldFocus},s.createElement(nt,{className:"inline",name:"connectionType",items:this.connectionType,value:this.state.connectionType,onChange:this.handleConnectionTypeChange,disabled:this.hasAllInputDisabled()})),s.createElement("div",{className:"port ad openldap"},s.createElement("input",{id:"port-input",type:"number",className:"required in-field form-element",name:"port",value:this.state.port,onBlur:this.handleFieldBlur,onFocus:this.handleFieldFocus,onChange:this.handleInputChange,onKeyUp:this.handlePortInputKeyUp,placeholder:this.translate("port"),disabled:this.hasAllInputDisabled()}))),this.state.hostError&&s.createElement("div",{id:"server-input-feedback",className:"error-message"},this.state.hostError),this.state.portError&&s.createElement("div",{id:"port-input-feedback",className:"error-message"},this.state.portError)),s.createElement("div",{className:"singleline clearfix"},s.createElement("div",{className:"input text first-field ad openldap "+(this.hasAllInputDisabled()?"disabled":"")},s.createElement("label",null,s.createElement(f.c,null,"Username")),s.createElement("input",{id:"username-input",type:"text",className:"fluid form-element",name:"username",value:this.state.username,onChange:this.handleInputChange,placeholder:this.translate("Username"),disabled:this.hasAllInputDisabled()})),s.createElement("div",{className:"input text last-field ad openldap "+(this.hasAllInputDisabled()?"disabled":"")},s.createElement("label",null,s.createElement(f.c,null,"Password")),s.createElement("input",{id:"password-input",className:"fluid form-element",name:"password",value:this.state.password,onChange:this.handleInputChange,placeholder:this.translate("Password"),type:"password",disabled:this.hasAllInputDisabled()}))),s.createElement("div",{className:"input text required ad openldap "+(this.hasAllInputDisabled()?"disabled":"")},s.createElement("label",null,s.createElement(f.c,null,"Domain")),s.createElement("input",{id:"domain-name-input",type:"text",name:"domain",value:this.state.domain,onChange:this.handleInputChange,className:"required fluid form-element",onKeyUp:this.handleDomainInputKeyUp,placeholder:"domain.ext",disabled:this.hasAllInputDisabled()}),this.state.domainError&&s.createElement("div",{id:"domain-name-input-feedback",className:"error-message"},this.state.domainError)),s.createElement("div",{className:"input text ad openldap "+(this.hasAllInputDisabled()?"disabled":"")},s.createElement("label",null,s.createElement(f.c,null,"Base DN")),s.createElement("input",{id:"base-dn-input",type:"text",name:"baseDn",value:this.state.baseDn,onChange:this.handleInputChange,className:"fluid form-element",placeholder:"OU=OrgUsers,DC=mydomain,DC=local",disabled:this.hasAllInputDisabled()}),s.createElement("div",{className:"help-message"},s.createElement(f.c,null,"The base DN (default naming context) for the domain.")," ",s.createElement(f.c,null,"If this is empty then it will be queried from the RootDSE."))))),s.createElement("div",{className:"accordion section-directory-configuration "+(this.state.openDirectoryConfiguration?"":"closed")},s.createElement("h4",{className:"accordion-header"},s.createElement("a",{onClick:this.handleDirectoryConfigurationTitleClicked},this.state.openDirectoryConfiguration&&s.createElement(O,{name:"caret-down"}),!this.state.openDirectoryConfiguration&&s.createElement(O,{name:"caret-right"}),s.createElement(f.c,null,"Directory configuration"))),s.createElement("div",{className:"accordion-content"},s.createElement("div",{className:"input text ad openldap "+(this.hasAllInputDisabled()?"disabled":"")},s.createElement("label",null,s.createElement(f.c,null,"Group path")),s.createElement("input",{id:"group-path-input",type:"text",name:"groupPath",value:this.state.groupPath,onChange:this.handleInputChange,className:"required fluid form-element",placeholder:this.translate("Group path"),disabled:this.hasAllInputDisabled()}),s.createElement("div",{className:"help-message"},s.createElement(f.c,null,"Group path is used in addition to the base DN while searching groups.")," ",s.createElement(f.c,null,"Leave empty if users and groups are in the same DN."))),s.createElement("div",{className:"input text ad openldap "+(this.hasAllInputDisabled()?"disabled":"")},s.createElement("label",null,s.createElement(f.c,null,"User path")),s.createElement("input",{id:"user-path-input",type:"text",name:"userPath",value:this.state.userPath,onChange:this.handleInputChange,className:"required fluid form-element",placeholder:this.translate("User path"),disabled:this.hasAllInputDisabled()}),s.createElement("div",{className:"help-message"},s.createElement(f.c,null,"User path is used in addition to base DN while searching users."))),this.isOpenLdapChecked()&&s.createElement("div",null,s.createElement("div",{className:"input text ad openldap "+(this.hasAllInputDisabled()?"disabled":"")},s.createElement("label",null,s.createElement(f.c,null,"Group object class")),s.createElement("input",{id:"group-object-class-input",type:"text",name:"groupObjectClass",value:this.state.groupObjectClass,onChange:this.handleInputChange,className:"required fluid",placeholder:"GroupObjectClass",disabled:this.hasAllInputDisabled()}),s.createElement("div",{className:"help-message"},s.createElement(f.c,null,"For Openldap only. Defines which group object to use.")," (",s.createElement(f.c,null,"Default"),": posixGroup)")),s.createElement("div",{className:"input text ad openldap "+(this.hasAllInputDisabled()?"disabled":"")},s.createElement("label",null,s.createElement(f.c,null,"User object class")),s.createElement("input",{id:"user-object-class-input",type:"text",name:"userObjectClass",value:this.state.userObjectClass,onChange:this.handleInputChange,className:"required fluid form-element",placeholder:"UserObjectClass",disabled:this.hasAllInputDisabled()}),s.createElement("div",{className:"help-message"},s.createElement(f.c,null,"For Openldap only. Defines which user object to use.")," (",s.createElement(f.c,null,"Default"),": inetOrgPerson)")),s.createElement("div",{className:"input text openldap "+(this.hasAllInputDisabled()?"disabled":"")},s.createElement("label",null,s.createElement(f.c,null,"Use email prefix / suffix?")),s.createElement("div",{className:"input toggle-switch openldap form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"useEmailPrefix",value:this.state.useEmailPrefix,onChange:this.handleInputChange,id:"use-email-prefix-suffix-toggle-button",disabled:this.hasAllInputDisabled()}),s.createElement("label",{className:"text",htmlFor:"use-email-prefix-suffix-toggle-button"},s.createElement(f.c,null,"Build email based on a prefix and suffix?"))),s.createElement("div",{className:"help-message"},s.createElement(f.c,null,"Use this option when user entries do not include an email address by default"))),this.isUseEmailPrefixChecked()&&s.createElement("div",{className:"singleline clearfix",id:"use-email-prefix-suffix-options"},s.createElement("div",{className:"input text first-field openldap "+(this.hasAllInputDisabled()?"disabled":"")},s.createElement("label",null,s.createElement(f.c,null,"Email prefix")),s.createElement("input",{id:"email-prefix-input",type:"text",name:"emailPrefix",checked:this.state.emailPrefix,onChange:this.handleInputChange,className:"required fluid form-element",placeholder:this.translate("Username"),disabled:this.hasAllInputDisabled()}),s.createElement("div",{className:"help-message"},s.createElement(f.c,null,"The attribute you would like to use for the first part of the email (usually username)."))),s.createElement("div",{className:"input text last-field openldap "+(this.hasAllInputDisabled()?"disabled":"")},s.createElement("label",null,s.createElement(f.c,null,"Email suffix")),s.createElement("input",{id:"email-suffix-input",type:"text",name:"emailSuffix",value:this.state.emailSuffix,onChange:this.handleInputChange,className:"required form-element",placeholder:this.translate("@your-domain.com"),disabled:this.hasAllInputDisabled()}),s.createElement("div",{className:"help-message"},s.createElement(f.c,null,"The domain name part of the email (@your-domain-name)."))))))),s.createElement("div",{className:"accordion section-sync-options "+(this.state.openSynchronizationOptions?"":"closed")},s.createElement("h4",{className:"accordion-header"},s.createElement("a",{onClick:this.handleSynchronizationOptionsTitleClicked},this.state.openSynchronizationOptions&&s.createElement(O,{name:"caret-down"}),!this.state.openSynchronizationOptions&&s.createElement(O,{name:"caret-right"}),s.createElement(f.c,null,"Synchronization options"))),s.createElement("div",{className:"accordion-content"},s.createElement("div",{className:"select-wrapper input required ad openldap "+(this.hasAllInputDisabled()?"disabled":"")},s.createElement("label",null,s.createElement(f.c,null,"Default admin")),s.createElement(nt,{items:this.getUsersAllowedToBeDefaultAdmin(),id:"default-user-select",name:"defaultAdmin",value:this.state.defaultAdmin,onChange:this.handleInputChange,disabled:this.hasAllInputDisabled(),search:!0}),s.createElement("div",{className:"help-message"},s.createElement(f.c,null,"The default admin user is the user that will perform the operations for the the directory."))),s.createElement("div",{className:"select-wrapper input required ad openldap "+(this.hasAllInputDisabled()?"disabled":"")},s.createElement("label",null,s.createElement(f.c,null,"Default group admin")),s.createElement(nt,{items:this.getUsersAllowedToBeDefaultGroupAdmin(),id:"default-group-admin-user-select",name:"defaultGroupAdmin",value:this.state.defaultGroupAdmin,onChange:this.handleInputChange,disabled:this.hasAllInputDisabled(),search:!0}),s.createElement("div",{className:"help-message"},s.createElement(f.c,null,"The default group manager is the user that will be the group manager of newly created groups."))),s.createElement("div",{className:"input text ad openldap "+(this.hasAllInputDisabled()?"disabled":"")},s.createElement("label",null,s.createElement(f.c,null,"Groups parent group")),s.createElement("input",{id:"groups-parent-group-input",type:"text",name:"groupsParentGroup",value:this.state.groupsParentGroup,onChange:this.handleInputChange,className:"fluid form-element",placeholder:this.translate("Group name"),disabled:this.hasAllInputDisabled()}),s.createElement("div",{className:"help-message"},s.createElement(f.c,null,"Synchronize only the groups which are members of this group."))),s.createElement("div",{className:"input text ad openldap "+(this.hasAllInputDisabled()?"disabled":"")},s.createElement("label",null,s.createElement(f.c,null,"Users parent group")),s.createElement("input",{id:"users-parent-group-input",type:"text",name:"usersParentGroup",value:this.state.usersParentGroup,onChange:this.handleInputChange,className:"fluid form-element",placeholder:this.translate("Group name"),disabled:this.hasAllInputDisabled()}),s.createElement("div",{className:"help-message"},s.createElement(f.c,null,"Synchronize only the users which are members of this group."))),this.isActiveDirectoryChecked()&&s.createElement("div",{className:"input text clearfix ad "+(this.hasAllInputDisabled()?"disabled":"")},s.createElement("label",null,s.createElement(f.c,null,"Enabled users only")),s.createElement("div",{className:"input toggle-switch ad form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"enabledUsersOnly",checked:this.state.enabledUsersOnly,onChange:this.handleInputChange,id:"enabled-users-only-toggle-button",disabled:this.hasAllInputDisabled()}),s.createElement("label",{className:"text",htmlFor:"enabled-users-only-toggle-button"},s.createElement(f.c,null,"Only synchronize enabled users (AD)")))),s.createElement("div",{className:"input text clearfix ad openldap"},s.createElement("label",null,s.createElement(f.c,null,"Sync operations")),s.createElement("div",{className:"col6"},s.createElement("div",{className:"input toggle-switch ad openldap form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"createUsers",checked:this.state.createUsers,onChange:this.handleInputChange,id:"sync-users-create-toggle-button",disabled:this.hasAllInputDisabled()}),s.createElement("label",{className:"text",htmlFor:"sync-users-create-toggle-button"},s.createElement(f.c,null,"Create users"))),s.createElement("div",{className:"input toggle-switch ad openldap form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"deleteUsers",checked:this.state.deleteUsers,onChange:this.handleInputChange,id:"sync-users-delete-toggle-button",disabled:this.hasAllInputDisabled()}),s.createElement("label",{className:"text",htmlFor:"sync-users-delete-toggle-button"},s.createElement(f.c,null,"Delete users")))),s.createElement("div",{className:"col6 last"},s.createElement("div",{className:"input toggle-switch ad openldap form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"createGroups",checked:this.state.createGroups,onChange:this.handleInputChange,id:"sync-groups-create-toggle-button",disabled:this.hasAllInputDisabled()}),s.createElement("label",{className:"text",htmlFor:"sync-groups-create-toggle-button"},s.createElement(f.c,null,"Create groups"))),s.createElement("div",{className:"input toggle-switch ad openldap form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"deleteGroups",checked:this.state.deleteGroups,onChange:this.handleInputChange,id:"sync-groups-delete-toggle-button",disabled:this.hasAllInputDisabled()}),s.createElement("label",{className:"text",htmlFor:"sync-groups-delete-toggle-button"},s.createElement(f.c,null,"Delete groups"))),s.createElement("div",{className:"input toggle-switch ad openldap form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"updateGroups",checked:this.state.updateGroups,onChange:this.handleInputChange,id:"sync-groups-update-toggle-button",disabled:this.hasAllInputDisabled()}),s.createElement("label",{className:"text",htmlFor:"sync-groups-update-toggle-button"},s.createElement(f.c,null,"Update groups"))))))))),s.createElement("div",{className:"col4 last"},s.createElement("div",{className:"sidebar-help"},s.createElement("h3",null,s.createElement(f.c,null,"Need help?")),s.createElement("p",null,s.createElement(f.c,null,"Check out our ldap configuration guide.")),s.createElement("a",{className:"button",href:"https://help.passbolt.com/configure/ldap",target:"_blank",rel:"noopener noreferrer"},s.createElement(O,{name:"document"}),s.createElement("span",null,s.createElement(f.c,null,"Read the documentation"))))))}}st.propTypes={context:i().object,administrationWorkspaceContext:i().object,actionFeedbackContext:i().any,dialogContext:i().any,t:i().func};const rt=I(h(g(de((0,k.Z)("common")(st))))),at=class{constructor(e={}){this.hasDatabaseSetting="sources_database"in e&&e.sources_database,this.hasFileConfigSetting="sources_file"in e&&e.sources_file,this.passwordCreate=!("send_password_create"in e)||e.send_password_create,this.passwordShare=!("send_password_share"in e)||e.send_password_share,this.passwordUpdate=!("send_password_update"in e)||e.send_password_update,this.passwordDelete=!("send_password_delete"in e)||e.send_password_delete,this.folderCreate=!("send_folder_create"in e)||e.send_folder_create,this.folderUpdate=!("send_folder_update"in e)||e.send_folder_update,this.folderDelete=!("send_folder_delete"in e)||e.send_folder_delete,this.folderShare=!("send_folder_share"in e)||e.send_folder_share,this.commentAdd=!("send_comment_add"in e)||e.send_comment_add,this.groupDelete=!("send_group_delete"in e)||e.send_group_delete,this.groupUserAdd=!("send_group_user_add"in e)||e.send_group_user_add,this.groupUserDelete=!("send_group_user_delete"in e)||e.send_group_user_delete,this.groupUserUpdate=!("send_group_user_update"in e)||e.send_group_user_update,this.groupManagerUpdate=!("send_group_manager_update"in e)||e.send_group_manager_update,this.userCreate=!("send_user_create"in e)||e.send_user_create,this.userRecover=!("send_user_recover"in e)||e.send_user_recover,this.userRecoverComplete=!("send_user_recoverComplete"in e)||e.send_user_recoverComplete,this.userRecoverAbortAdmin=!("send_admin_user_recover_abort"in e)||e.send_admin_user_recover_abort,this.userRecoverCompleteAdmin=!("send_admin_user_recover_complete"in e)||e.send_admin_user_recover_complete,this.userSetupCompleteAdmin=!("send_admin_user_setup_completed"in e)||e.send_admin_user_setup_completed,this.showDescription=!("show_description"in e)||e.show_description,this.showSecret=!("show_secret"in e)||e.show_secret,this.showUri=!("show_uri"in e)||e.show_uri,this.showUsername=!("show_username"in e)||e.show_username,this.showComment=!("show_comment"in e)||e.show_comment,this.accountRecoveryRequestUser=!("send_accountRecovery_request_user"in e)||e.send_accountRecovery_request_user,this.accountRecoveryRequestAdmin=!("send_accountRecovery_request_admin"in e)||e.send_accountRecovery_request_admin,this.accountRecoveryRequestGuessing=!("send_accountRecovery_request_guessing"in e)||e.send_accountRecovery_request_guessing,this.accountRecoveryRequestUserApproved=!("send_accountRecovery_response_user_approved"in e)||e.send_accountRecovery_response_user_approved,this.accountRecoveryRequestUserRejected=!("send_accountRecovery_response_user_rejected"in e)||e.send_accountRecovery_response_user_rejected,this.accountRecoveryRequestCreatedAmin=!("send_accountRecovery_response_created_admin"in e)||e.send_accountRecovery_response_created_admin,this.accountRecoveryRequestCreatedAllAdmins=!("send_accountRecovery_response_created_allAdmins"in e)||e.send_accountRecovery_response_created_allAdmins,this.accountRecoveryRequestPolicyUpdate=!("send_accountRecovery_policy_update"in e)||e.send_accountRecovery_policy_update}};function it(){return it=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},it.apply(this,arguments)}const ot=s.createContext({getCurrentSettings:()=>{},getSettings:()=>{},setSettings:()=>{},hasSettingsChanges:()=>{},findEmailNotificationSettings:()=>{},save:()=>{},setProcessing:()=>{},isProcessing:()=>{},clearContext:()=>{}});class lt extends s.Component{constructor(e){super(e),this.state=this.defaultState;const t=e.context.getApiClientOptions();this.emailNotificationService=new class{constructor(e){e.setResourceName("settings/emails/notifications"),this.apiClient=new q(e)}async find(){return(await this.apiClient.findAll()).body}async save(e){return(await this.apiClient.create(e)).body}}(t)}get defaultState(){return{currentSettings:null,settings:new at,processing:!0,getCurrentSettings:this.getCurrentSettings.bind(this),getSettings:this.getSettings.bind(this),setSettings:this.setSettings.bind(this),findEmailNotificationSettings:this.findEmailNotificationSettings.bind(this),hasSettingsChanges:this.hasSettingsChanges.bind(this),isProcessing:this.isProcessing.bind(this),setProcessing:this.setProcessing.bind(this),save:this.save.bind(this),clearContext:this.clearContext.bind(this)}}async findEmailNotificationSettings(){this.setProcessing(!0);const e=await this.emailNotificationService.find(),t=new at(e);this.setState({currentSettings:t}),this.setState({settings:Object.assign({},t)}),this.setProcessing(!1)}getCurrentSettings(){return this.state.currentSettings}getSettings(){return this.state.settings}async setSettings(e,t){const n=Object.assign({},this.state.settings,{[e]:t});await this.setState({settings:n})}isProcessing(){return this.state.processing}setProcessing(e){this.setState({processing:e})}hasSettingsChanges(){return JSON.stringify(this.state.currentSettings)!==JSON.stringify(this.state.settings)}clearContext(){const{currentSettings:e,settings:t,processing:n}=this.defaultState;this.setState({currentSettings:e,settings:t,processing:n})}async save(){this.setProcessing(!0);const e=new class{constructor(e={}){this.sources_database="hasDatabaseSetting"in e&&e.hasDatabaseSetting,this.sources_file="hasFileConfigSetting"in e&&e.hasFileConfigSetting,this.send_password_create=!("passwordCreate"in e)||e.passwordCreate,this.send_password_share=!("passwordShare"in e)||e.passwordShare,this.send_password_update=!("passwordUpdate"in e)||e.passwordUpdate,this.send_password_delete=!("passwordDelete"in e)||e.passwordDelete,this.send_folder_create=!("folderCreate"in e)||e.folderCreate,this.send_folder_update=!("folderUpdate"in e)||e.folderUpdate,this.send_folder_delete=!("folderDelete"in e)||e.folderDelete,this.send_folder_share=!("folderShare"in e)||e.folderShare,this.send_comment_add=!("commentAdd"in e)||e.commentAdd,this.send_group_delete=!("groupDelete"in e)||e.groupDelete,this.send_group_user_add=!("groupUserAdd"in e)||e.groupUserAdd,this.send_group_user_delete=!("groupUserDelete"in e)||e.groupUserDelete,this.send_group_user_update=!("groupUserUpdate"in e)||e.groupUserUpdate,this.send_group_manager_update=!("groupManagerUpdate"in e)||e.groupManagerUpdate,this.send_user_create=!("userCreate"in e)||e.userCreate,this.send_user_recover=!("userRecover"in e)||e.userRecover,this.send_user_recoverComplete=!("userRecoverComplete"in e)||e.userRecoverComplete,this.send_admin_user_setup_completed=!("userSetupCompleteAdmin"in e)||e.userSetupCompleteAdmin,this.send_admin_user_recover_abort=!("userRecoverAbortAdmin"in e)||e.userRecoverAbortAdmin,this.send_admin_user_recover_complete=!("userRecoverCompleteAdmin"in e)||e.userRecoverCompleteAdmin,this.send_accountRecovery_request_user=!("accountRecoveryRequestUser"in e)||e.accountRecoveryRequestUser,this.send_accountRecovery_request_admin=!("accountRecoveryRequestAdmin"in e)||e.accountRecoveryRequestAdmin,this.send_accountRecovery_request_guessing=!("accountRecoveryRequestGuessing"in e)||e.accountRecoveryRequestGuessing,this.send_accountRecovery_response_user_approved=!("accountRecoveryRequestUserApproved"in e)||e.accountRecoveryRequestUserApproved,this.send_accountRecovery_response_user_rejected=!("accountRecoveryRequestUserRejected"in e)||e.accountRecoveryRequestUserRejected,this.send_accountRecovery_response_created_admin=!("accountRecoveryRequestCreatedAmin"in e)||e.accountRecoveryRequestCreatedAmin,this.send_accountRecovery_response_created_allAdmins=!("accountRecoveryRequestCreatedAllAdmins"in e)||e.accountRecoveryRequestCreatedAllAdmins,this.send_accountRecovery_policy_update=!("accountRecoveryRequestPolicyUpdate"in e)||e.accountRecoveryRequestPolicyUpdate,this.show_description=!("showDescription"in e)||e.showDescription,this.show_secret=!("showSecret"in e)||e.showSecret,this.show_uri=!("showUri"in e)||e.showUri,this.show_username=!("showUsername"in e)||e.showUsername,this.show_comment=!("showComment"in e)||e.showComment}}(this.state.settings);await this.emailNotificationService.save(e),await this.findEmailNotificationSettings()}render(){return s.createElement(ot.Provider,{value:this.state},this.props.children)}}lt.propTypes={context:i().any,children:i().any};const ct=I(lt);function dt(e){return class extends s.Component{render(){return s.createElement(ot.Consumer,null,(t=>s.createElement(e,it({adminEmailNotificationContext:t},this.props))))}}}class ht extends s.Component{constructor(e){super(e),this.bindCallbacks()}async handleSaveClick(){try{await this.props.adminEmailNotificationContext.save(),this.handleSaveSuccess()}catch(e){this.handleSaveError(e)}finally{this.props.adminEmailNotificationContext.setProcessing(!1)}}isSaveEnabled(){return!this.props.adminEmailNotificationContext.isProcessing()&&this.props.adminEmailNotificationContext.hasSettingsChanges()}bindCallbacks(){this.handleSaveClick=this.handleSaveClick.bind(this)}async handleSaveSuccess(){await this.props.actionFeedbackContext.displaySuccess(this.props.t("The email notification settings were updated."))}async handleSaveError(e){"UserAbortsOperationError"!==e.name&&(console.error(e),await this.handleError(e))}async handleError(e){await this.props.actionFeedbackContext.displayError(e.message)}render(){return s.createElement("div",{className:"col2_3 actions-wrapper"},s.createElement("div",{className:"actions"},s.createElement("div",null,s.createElement("li",null,s.createElement("a",{className:"button "+(this.isSaveEnabled()?"":"disabled"),onClick:this.handleSaveClick},s.createElement(O,{name:"save"}),s.createElement("span",null,s.createElement(f.c,null,"Save settings")))))))}}ht.propTypes={adminEmailNotificationContext:i().object,actionFeedbackContext:i().object,t:i().func};const ut=dt(h((0,k.Z)("common")(ht)));class pt extends s.Component{constructor(e){super(e),this.bindCallbacks()}async componentDidMount(){this.props.administrationWorkspaceContext.setDisplayAdministrationWorkspaceAction(ut),this.props.adminEmailNotificationContext.findEmailNotificationSettings()}componentWillUnmount(){this.props.administrationWorkspaceContext.resetDisplayAdministrationWorkspaceAction(),this.props.adminEmailNotificationContext.clearContext()}bindCallbacks(){this.handleInputChange=this.handleInputChange.bind(this)}handleInputChange(e){const t=e.target.checked,n=e.target.name;this.props.adminEmailNotificationContext.setSettings(n,t)}hasAllInputDisabled(){return this.props.adminEmailNotificationContext.isProcessing()}hasDatabaseSetting(){return this.props.adminEmailNotificationContext.getSettings().hasDatabaseSetting}hasFileConfigSetting(){return this.props.adminEmailNotificationContext.getSettings().hasFileConfigSetting}canUseFolders(){return this.props.context.siteSettings.canIUse("folders")}canUseAccountRecovery(){return this.props.context.siteSettings.canIUse("accountRecovery")}render(){const e=this.props.adminEmailNotificationContext.getSettings();return s.createElement("div",{className:"row"},s.createElement("div",{className:"email-notification-settings col8 main-column"},e&&this.hasDatabaseSetting()&&this.hasFileConfigSetting()&&s.createElement("div",{className:"warning message",id:"email-notification-setting-overridden-banner"},s.createElement("p",null,s.createElement(f.c,null,"Settings have been found in your database as well as in your passbolt.php (or environment variables).")," ",s.createElement(f.c,null,"The settings displayed in the form below are the one stored in your database and have precedence over others."))),e&&!this.hasDatabaseSetting()&&this.hasFileConfigSetting()&&s.createElement("div",{className:"warning message",id:"email-notification-fileconfig-exists-banner"},s.createElement("p",null,s.createElement(f.c,null,"You seem to have Email Notification Settings defined in your passbolt.php (or via environment variables).")," ",s.createElement(f.c,null,"Submitting the form will overwrite those settings with the ones you choose in the form below."))),s.createElement("h3",null,s.createElement(f.c,null,"Email delivery")),s.createElement("p",null,s.createElement(f.c,null,"In this section you can choose which email notifications will be sent.")),s.createElement("div",{className:"section"},s.createElement("div",{className:"password-section"},s.createElement("label",null,s.createElement(f.c,null,"Passwords")),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"passwordCreate",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.passwordCreate,id:"send-password-create-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"send-password-create-toggle-button"},s.createElement(f.c,null,"When a password is created, notify its creator."))),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"passwordUpdate",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.passwordUpdate,id:"send-password-update-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"send-password-update-toggle-button"},s.createElement(f.c,null,"When a password is updated, notify the users who have access to it."))),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"passwordDelete",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.passwordDelete,id:"send-password-delete-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"send-password-delete-toggle-button"},s.createElement(f.c,null,"When a password is deleted, notify the users who had access to it."))),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"passwordShare",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.passwordShare,id:"send-password-share-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"send-password-share-toggle-button"},s.createElement(f.c,null,"When a password is shared, notify the users who gain access to it.")))),this.canUseFolders()&&s.createElement("div",{className:"folder-section"},s.createElement("label",null,s.createElement(f.c,null,"Folders")),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"folderCreate",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.folderCreate,id:"send-folder-create-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"send-folder-create-toggle-button"},s.createElement(f.c,null,"When a folder is created, notify its creator."))),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"folderUpdate",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.folderUpdate,id:"send-folder-update-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"send-folder-update-toggle-button"},s.createElement(f.c,null,"When a folder is updated, notify the users who have access to it."))),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"folderDelete",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.folderDelete,id:"send-folder-delete-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"send-folder-delete-toggle-button"},s.createElement(f.c,null,"When a folder is deleted, notify the users who had access to it."))),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"folderShare",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.folderShare,id:"send-folder-share-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"send-folder-share-toggle-button"},s.createElement(f.c,null,"When a folder is shared, notify the users who gain access to it."))))),s.createElement("div",{className:"section"},s.createElement("div",{className:"comment-section"},s.createElement("label",null,s.createElement(f.c,null,"Comments")),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"commentAdd",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.commentAdd,id:"send-comment-add-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"send-comment-add-toggle-button"},s.createElement(f.c,null,"When a comment is posted on a password, notify the users who have access to this password."))))),s.createElement("div",{className:"section"},s.createElement("div",{className:"group-section"},s.createElement("label",null,s.createElement(f.c,null,"Group membership")),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"groupDelete",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.groupDelete,id:"send-group-delete-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"send-group-delete-toggle-button"},s.createElement(f.c,null,"When a group is deleted, notify the users who were members of it."))),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"groupUserAdd",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.groupUserAdd,id:"send-group-user-add-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"send-group-user-add-toggle-button"},s.createElement(f.c,null,"When users are added to a group, notify them."))),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"groupUserDelete",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.groupUserDelete,id:"send-group-user-delete-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"send-group-user-delete-toggle-button"},s.createElement(f.c,null,"When users are removed from a group, notify them."))),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"groupUserUpdate",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.groupUserUpdate,id:"send-group-user-update-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"send-group-user-update-toggle-button"},s.createElement(f.c,null,"When user roles change in a group, notify the corresponding users.")))),s.createElement("div",{className:"group-admin-section"},s.createElement("label",null,s.createElement(f.c,null,"Group manager")),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"groupManagerUpdate",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.groupManagerUpdate,id:"send-group-manager-update-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"send-group-manager-update-toggle-button"},s.createElement(f.c,null,"When members of a group change, notify the group manager(s)."))))),s.createElement("h3",null,s.createElement(f.c,null,"Registration & Recovery")),s.createElement("div",{className:"section"},s.createElement("div",{className:"admin-section"},s.createElement("label",null,s.createElement(f.c,null,"Admin")),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"userSetupCompleteAdmin",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.userSetupCompleteAdmin,id:"user-setup-complete-admin-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"user-setup-complete-admin-toggle-button"},s.createElement(f.c,null,"When a user completed a setup, notify all the administrators."))),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"userRecoverCompleteAdmin",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.userRecoverCompleteAdmin,id:"user-recover-complete-admin-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"user-recover-complete-admin-toggle-button"},s.createElement(f.c,null,"When a user completed a recover, notify all the administrators."))),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"userRecoverAbortAdmin",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.userRecoverAbortAdmin,id:"user-recover-abort-admin-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"user-recover-abort-admin-toggle-button"},s.createElement(f.c,null,"When a user aborted a recover, notify all the administrators.")))),s.createElement("div",{className:"user-section"},s.createElement("label",null,s.createElement(f.c,null,"User")),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"userCreate",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.userCreate,id:"send-user-create-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"send-user-create-toggle-button"},s.createElement(f.c,null,"When new users are invited to passbolt, notify them."))),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"userRecover",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.userRecover,id:"send-user-recover-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"send-user-recover-toggle-button"},s.createElement(f.c,null,"When users try to recover their account, notify them."))),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"userRecoverComplete",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.userRecoverComplete,id:"user-recover-complete-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"user-recover-complete-toggle-button"},s.createElement(f.c,null,"When users completed the recover of their account, notify them."))))),this.canUseAccountRecovery()&&s.createElement(s.Fragment,null,s.createElement("h3",null,s.createElement(f.c,null,"Account recovery")),s.createElement("div",{className:"section"},s.createElement("div",{className:"admin-section"},s.createElement("label",null,s.createElement(f.c,null,"Admin")),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"accountRecoveryRequestAdmin",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.accountRecoveryRequestAdmin,id:"account-recovery-request-admin-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"account-recovery-request-admin-toggle-button"},s.createElement(f.c,null,"When an account recovery is requested, notify the administrators."))),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"accountRecoveryRequestPolicyUpdate",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.accountRecoveryRequestPolicyUpdate,id:"account-recovery-policy-update-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"account-recovery-policy-update-toggle-button"},s.createElement(f.c,null,"When an account recovery policy is updated, notify the administrators."))),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"accountRecoveryRequestCreatedAmin",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.accountRecoveryRequestCreatedAmin,id:"account-recovery-response-created-admin-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"account-recovery-response-created-admin-toggle-button"},s.createElement(f.c,null,"When an administrator answered to an account recovery request, notify the administrator."))),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"accountRecoveryRequestCreatedAllAdmins",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.accountRecoveryRequestCreatedAllAdmins,id:"account-recovery-response-created-all-admin-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"account-recovery-response-created-all-admin-toggle-button"},s.createElement(f.c,null,"When an administrator answered to an account recovery request, notify all the administrators.")))),s.createElement("div",{className:"user-section"},s.createElement("label",null,s.createElement(f.c,null,"User")),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"accountRecoveryRequestUser",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.accountRecoveryRequestUser,id:"account-recovery-request-user-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"account-recovery-request-user-toggle-button"},s.createElement(f.c,null,"When an account recovery is requested, notify the user."))),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"accountRecoveryRequestUserApproved",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.accountRecoveryRequestUserApproved,id:"account-recovery-response-user-approved-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"account-recovery-response-user-approved-toggle-button"},s.createElement(f.c,null,"When an account recovery is approved, notify the user."))),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"accountRecoveryRequestUserRejected",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.accountRecoveryRequestUserRejected,id:"account-recovery-response-user-rejected-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"account-recovery-response-user-rejected-toggle-button"},s.createElement(f.c,null,"When an account recovery is rejected, notify the user.")))))),s.createElement("h3",null,s.createElement(f.c,null,"Email content visibility")),s.createElement("p",null,s.createElement(f.c,null,"In this section you can adjust the composition of the emails, e.g. which information will be included in the notification.")),s.createElement("div",{className:"section"},s.createElement("div",{className:"password-section"},s.createElement("label",null,s.createElement(f.c,null,"Passwords")),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"showUsername",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.showUsername,id:"show-username-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"show-username-toggle-button"},s.createElement(f.c,null,"Username"))),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"showUri",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.showUri,id:"show-uri-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"show-uri-toggle-button"},s.createElement(f.c,null,"URI"))),s.createElement("span",{className:"input toggle-switch form-element ready"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"showSecret",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.showSecret,id:"show-secret-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"show-secret-toggle-button"},s.createElement(f.c,null,"Encrypted secret"))),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"showDescription",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.showDescription,id:"show-description-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"show-description-toggle-button"},s.createElement(f.c,null,"Description")))),s.createElement("div",{className:"comment-section"},s.createElement("label",null,s.createElement(f.c,null,"Comments")),s.createElement("span",{className:"input toggle-switch form-element"},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"showComment",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.showComment,id:"show-comment-toggle-button"}),s.createElement("label",{className:"text",htmlFor:"show-comment-toggle-button"},s.createElement(f.c,null,"Comment content")))))),s.createElement("div",{className:"col4 last"},s.createElement("div",{className:"sidebar-help"},s.createElement("h3",null,s.createElement(f.c,null,"Need some help?")),s.createElement("p",null,s.createElement(f.c,null,"For more information about email notification, checkout the dedicated page on the help website.")),s.createElement("a",{className:"button",href:"https://help.passbolt.com/configure/notification/email",target:"_blank",rel:"noopener noreferrer"},s.createElement(O,{name:"document"}),s.createElement("span",null,s.createElement(f.c,null,"Read the documentation"))))))}}pt.propTypes={context:i().any,administrationWorkspaceContext:i().object,adminEmailNotificationContext:i().object};const mt=I(dt(de((0,k.Z)("common")(pt))));class gt extends s.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks(),this.createReferences()}bindCallbacks(){this.handleChangeEvent=this.handleChangeEvent.bind(this),this.handleSubmitButtonFocus=this.handleSubmitButtonFocus.bind(this),this.handleSubmitButtonBlur=this.handleSubmitButtonBlur.bind(this),this.handleOnSubmitEvent=this.handleOnSubmitEvent.bind(this)}get defaultState(){return{hasSubmitButtonFocus:!1}}createReferences(){this.searchInputRef=s.createRef()}handleChangeEvent(e){const t=e.target.value;this.props.onSearch&&this.props.onSearch(t)}handleSubmitButtonFocus(){this.setState({hasSubmitButtonFocus:!0})}handleSubmitButtonBlur(){this.setState({hasSubmitButtonFocus:!1})}handleOnSubmitEvent(e){if(e.preventDefault(),this.props.onSearch){const e=this.searchInputRef.current.value;this.props.onSearch(e)}}render(){return s.createElement("div",{className:"col2 search-wrapper"},s.createElement("form",{className:"search",onSubmit:this.handleOnSubmitEvent},s.createElement("div",{className:`input search required ${this.state.hasSubmitButtonFocus?"no-focus":""} ${this.props.disabled?"disabled":""}`},s.createElement("label",null,s.createElement(f.c,null,"Search")),s.createElement("input",{ref:this.searchInputRef,className:"required",type:"search",disabled:this.props.disabled?"disabled":"",onChange:this.handleChangeEvent,placeholder:this.props.placeholder||this.props.t("Search"),value:this.props.value}),s.createElement("div",{className:"search-button-wrapper"},s.createElement("button",{className:"button button-transparent",value:this.props.t("Search"),onBlur:this.handleSubmitButtonBlur,onFocus:this.handleSubmitButtonFocus,type:"submit",disabled:this.props.disabled?"disabled":""},s.createElement(O,{name:"search"}),s.createElement("span",{className:"visuallyhidden"},s.createElement(f.c,null,"Search")))))))}}gt.propTypes={disabled:i().bool,onSearch:i().func,placeholder:i().string,value:i().string,t:i().func},gt.defaultProps={disabled:!1};const yt=(0,k.Z)("common")(gt);var bt=n(7009);class vt extends s.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks()}get defaultState(){return{showErrorDetails:!1}}bindCallbacks(){this.handleKeyDown=this.handleKeyDown.bind(this),this.handleErrorDetailsToggle=this.handleErrorDetailsToggle.bind(this)}componentDidMount(){document.addEventListener("keydown",this.handleKeyDown,{capture:!0})}componentWillUnmount(){document.removeEventListener("keydown",this.handleKeyDown,{capture:!0})}getTitle(){return this.props.title?this.props.title:this.props.t("There was an unexpected error...")}getMessage(){return this.props.error.message}handleKeyDown(e){27!==e.keyCode&&13!==e.keyCode||(e.stopPropagation(),this.props.onClose())}handleErrorDetailsToggle(){this.setState({showErrorDetails:!this.state.showErrorDetails})}get hasErrorDetails(){return Boolean(this.props.error.data?.body)||Boolean(this.props.error.details)}formatErrors(){const e=this.props.error?.details||this.props.error?.data;return JSON.stringify(e,null,4)}render(){return s.createElement($,{className:"dialog-wrapper error-dialog",onClose:this.props.onClose,title:this.getTitle()},s.createElement("div",{className:"form-content"},s.createElement("p",null,this.getMessage()),this.hasErrorDetails&&s.createElement("div",{className:"accordion error-details"},s.createElement("div",{className:"accordion-header"},s.createElement("a",{onClick:this.handleErrorDetailsToggle},s.createElement(f.c,null,"Error details"),s.createElement(O,{baseline:!0,name:this.state.showErrorDetails?"caret-up":"caret-down"}))),this.state.showErrorDetails&&s.createElement("div",{className:"accordion-content"},s.createElement("div",{className:"input text"},s.createElement("label",{htmlFor:"js_field_debug",className:"visuallyhidden"},s.createElement(f.c,null,"Error details")),s.createElement("textarea",{id:"js_field_debug",defaultValue:this.formatErrors(),readOnly:!0}))))),s.createElement("div",{className:"submit-wrapper clearfix"},s.createElement("button",{type:"button",className:"button primary warning",onClick:this.props.onClose},"Ok")))}}vt.propTypes={title:i().string,error:i().object.isRequired,onClose:i().func,t:i().func};const ft=(0,k.Z)("common")(vt);class kt extends s.Component{constructor(e){super(e),this.bindCallbacks()}bindCallbacks(){this.getClassName=this.getClassName.bind(this)}getClassName(){let e="button primary";return this.props.warning&&(e+=" warning"),this.props.disabled&&(e+=" disabled"),this.props.processing&&(e+=" processing"),this.props.big&&(e+=" big"),this.props.medium&&(e+=" medium"),this.props.fullWidth&&(e+=" full-width"),e}render(){return s.createElement("button",{type:"submit",className:this.getClassName(),disabled:this.props.disabled},this.props.value||s.createElement(f.c,null,"Save"),this.props.processing&&s.createElement(O,{name:"spinner"}))}}kt.defaultProps={warning:!1},kt.propTypes={processing:i().bool,disabled:i().bool,value:i().string,warning:i().bool,big:i().bool,medium:i().bool,fullWidth:i().bool};const Et=(0,k.Z)("common")(kt);class Ct extends s.Component{constructor(e){super(e),this.state=this.getDefaultState(),this.initEventHandlers(),this.createInputRef()}getDefaultState(){return{selectedFile:null,key:"",keyError:"",processing:!1,hasBeenValidated:!1}}initEventHandlers(){this.handleCloseClick=this.handleCloseClick.bind(this),this.handleFormSubmit=this.handleFormSubmit.bind(this),this.handleInputChange=this.handleInputChange.bind(this),this.handleKeyInputKeyUp=this.handleKeyInputKeyUp.bind(this),this.handleSelectSubscriptionKeyFile=this.handleSelectSubscriptionKeyFile.bind(this),this.handleSelectFile=this.handleSelectFile.bind(this)}createInputRef(){this.keyInputRef=s.createRef(),this.fileUploaderRef=s.createRef()}componentDidMount(){this.setState({key:this.props.context.editSubscriptionKey.key||""})}async handleFormSubmit(e){e.preventDefault(),this.state.processing||await this.save()}handleInputChange(e){const t=e.target,n=t.value,s=t.name;this.setState({[s]:n})}handleKeyInputKeyUp(){if(this.state.hasAlreadyBeenValidated){const e=this.validateNameInput();this.setState(e)}}handleCloseClick(){this.props.context.setContext({editSubscriptionKey:null}),this.props.onClose()}handleSelectFile(){this.fileUploaderRef.current.click()}get selectedFilename(){return this.state.selectedFile?this.state.selectedFile.name:""}async handleSelectSubscriptionKeyFile(e){const[t]=e.target.files,n=await this.readSubscriptionKeyFile(t);this.setState({key:n,selectedFile:t}),this.state.hasBeenValidated&&await this.validate()}readSubscriptionKeyFile(e){const t=new FileReader;return new Promise(((n,s)=>{t.onloadend=()=>{try{n(t.result)}catch(e){s(e)}},t.readAsText(e)}))}async save(){if(this.state.processing)return;if(await this.setState({hasBeenValidated:!0}),await this.toggleProcessing(),!await this.validate())return this.handleValidateError(),void await this.toggleProcessing();const e={data:this.state.key};try{await this.props.administrationWorkspaceContext.onUpdateSubscriptionKeyRequested(e),await this.handleSaveSuccess()}catch(e){await this.toggleProcessing(),this.handleSaveError(e),this.focusFieldError()}}handleValidateError(){this.focusFieldError()}async handleSaveSuccess(){await this.props.actionFeedbackContext.displaySuccess(this.translate("The subscription key has been updated successfully.")),this.props.administrationWorkspaceContext.onMustRefreshSubscriptionKey(),this.props.context.setContext({editSubscriptionKey:null,refreshSubscriptionAnnouncement:!0}),this.props.onClose()}async handleSaveError(e){if("PassboltSubscriptionError"===e.name)this.setState({keyError:e.message});else if("EntityValidationError"===e.name)this.setState({keyError:this.translate("The subscription key is invalid.")});else if("PassboltApiFetchError"===e.name&&e.data&&400===e.data.code)this.setState({keyError:e.message});else{console.error(e);const t={error:e};this.props.dialogContext.open(ft,t)}}focusFieldError(){this.state.keyError&&this.keyInputRef.current.focus()}validateKeyInput(){const e=this.state.key.trim();let t="";return e.length||(t=this.translate("A subscription key is required.")),new Promise((e=>{this.setState({keyError:t},e)}))}async validate(){return this.setState({keyError:""}),await this.validateKeyInput(),""===this.state.keyError}async toggleProcessing(){await this.setState({processing:!this.state.processing})}hasAllInputDisabled(){return this.state.processing}get translate(){return this.props.t}render(){return s.createElement($,{title:this.translate("Edit subscription key"),onClose:this.handleCloseClick,disabled:this.state.processing,className:"edit-subscription-dialog"},s.createElement("form",{onSubmit:this.handleFormSubmit,noValidate:!0},s.createElement("div",{className:"form-content"},s.createElement("div",{className:`input textarea required ${this.state.keyError?"error":""} ${this.hasAllInputDisabled()?"disabled":""}`},s.createElement("label",{htmlFor:"edit-tag-form-name"},s.createElement(f.c,null,"Subscription key")),s.createElement("textarea",{id:"edit-subscription-form-key",name:"key",value:this.state.key,onKeyUp:this.handleKeyInputKeyUp,onChange:this.handleInputChange,disabled:this.hasAllInputDisabled(),ref:this.keyInputRef,className:"required full_report",required:"required",autoComplete:"off",autoFocus:!0})),s.createElement("div",{className:"input file "+(this.hasAllInputDisabled()?"disabled":"")},s.createElement("input",{type:"file",ref:this.fileUploaderRef,disabled:this.hasAllInputDisabled(),onChange:this.handleSelectSubscriptionKeyFile}),s.createElement("div",{className:"input-file-inline"},s.createElement("input",{type:"text",disabled:!0,placeholder:this.translate("No key file selected"),value:this.selectedFilename}),s.createElement("button",{type:"button",className:"button primary",onClick:this.handleSelectFile,disabled:this.hasAllInputDisabled()},s.createElement("span",null,s.createElement(f.c,null,"Choose a file")))),this.state.keyError&&s.createElement("div",{className:"key error-message"},this.state.keyError))),s.createElement("div",{className:"submit-wrapper clearfix"},s.createElement(Y,{disabled:this.hasAllInputDisabled(),onClick:this.handleCloseClick}),s.createElement(Et,{disabled:this.hasAllInputDisabled(),processing:this.state.processing,value:this.translate("Save")}))))}}Ct.propTypes={context:i().any,onClose:i().func,actionFeedbackContext:i().any,dialogContext:i().any,administrationWorkspaceContext:i().any,t:i().func};const wt=I(de(h(g((0,k.Z)("common")(Ct)))));class St extends s.Component{render(){return s.createElement("div",{className:"illustration icon-feedback"},s.createElement("div",{className:this.props.name}))}}St.defaultProps={},St.propTypes={name:i().string};const xt=St;class Nt extends s.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks()}get defaultState(){return{loading:!0,customerId:"",subscriptionId:"",users:null,email:"",expiry:null,created:null,data:null,activeUsers:null}}async componentDidMount(){this.findActiveUsers(),this.findSubscriptionKey()}async componentDidUpdate(e){await this.handleMustRefreshSubscriptionKey(e.administrationWorkspaceContext.must.refreshSubscriptionKey),await this.handleMustEditSubscriptionKey(e.administrationWorkspaceContext.must.editSubscriptionKey)}bindCallbacks(){this.handleRenewKey=this.handleRenewKey.bind(this),this.handleUpdateKey=this.handleUpdateKey.bind(this)}async handleMustRefreshSubscriptionKey(e){this.props.administrationWorkspaceContext.must.refreshSubscriptionKey!==e&&this.props.administrationWorkspaceContext.must.refreshSubscriptionKey&&(await this.findActiveUsers(),await this.findSubscriptionKey(),this.props.administrationWorkspaceContext.onResetActionsSettings())}async handleMustEditSubscriptionKey(e){this.props.administrationWorkspaceContext.must.editSubscriptionKey!==e&&this.props.administrationWorkspaceContext.must.editSubscriptionKey&&(this.openEditSubscriptionKey(),this.props.administrationWorkspaceContext.onResetActionsSettings())}openEditSubscriptionKey(){const e={key:this.state.data};this.props.context.setContext({editSubscriptionKey:e}),this.props.dialogContext.open(wt)}async findActiveUsers(){const e=await this.getActiveUsers();this.setState({activeUsers:e})}async findSubscriptionKey(){try{const e=await this.props.context.onGetSubscriptionKeyRequested(),t=e.customer_id,n=e.subscription_id,s=e.users,r=e.email,a=e.expiry,i=e.created,o=e.data;this.setState({loading:!1,customerId:t,subscriptionId:n,users:s,email:r,expiry:a,created:i,data:o})}catch(e){this.handleSubscriptionError(e)}}handleSubscriptionError(e){if("PassboltSubscriptionError"===e.name){const t=e.subscription,n=t.customer_id||"N/A",s=t.subscription_id,r=t.users,a=t.email||"N/A",i=t.expiry,o=t.created,l=t.data;this.setState({loading:!1,customerId:n,subscriptionId:s,users:r,email:a,expiry:i,created:o,data:l})}else this.setState({loading:!1})}handleRenewKey(){this.hasLimitUsersExceeded()?this.props.navigationContext.onGoToNewTab(`https://www.passbolt.com/subscription/ee/update/qty?subscription_id=${this.state.subscriptionId}&customer_id=${this.state.customerId}`):(this.hasSubscriptionKeyExpired()||this.hasSubscriptionKeyGoingToExpire())&&this.props.navigationContext.onGoToNewTab(`https://www.passbolt.com/subscription/ee/update/renew?subscription_id=${this.state.subscriptionId}&customer_id=${this.state.customerId}`)}handleUpdateKey(){this.openEditSubscriptionKey()}isLoading(){return this.state.loading}hasSubscriptionKeyExpired(){return bt.ou.fromISO(this.state.expiry)<bt.ou.now()}hasSubscriptionKeyGoingToExpire(){return bt.ou.fromISO(this.state.expiry)<bt.ou.now().plus({days:30})&&!this.hasSubscriptionKeyExpired()}hasSubscriptionKey(){return Boolean(this.state.data)}hasLimitUsersExceeded(){return this.state.users<this.state.activeUsers}hasSubscriptionToRenew(){return this.hasInvalidSubscription()||this.hasSubscriptionKeyGoingToExpire()}hasValidSubscription(){return this.hasSubscriptionKey()&&!this.hasLimitUsersExceeded()&&!this.hasSubscriptionKeyExpired()}hasInvalidSubscription(){return!this.hasSubscriptionKey()||this.hasLimitUsersExceeded()||this.hasSubscriptionKeyExpired()}formatDate(e){try{return bt.ou.fromISO(e).setLocale(this.props.context.locale).toLocaleString(bt.ou.DATE_SHORT)}catch(e){return""}}formatDateTimeAgo(e){const t=bt.ou.fromISO(e),n=t.diffNow().toMillis();return n>-1e3&&n<0?this.translate("Just now"):t.toRelative({locale:this.props.context.locale})}async getActiveUsers(){return(await this.props.context.port.request("passbolt.users.get-all")).filter((e=>e.active)).length}get translate(){return this.props.t}render(){return s.createElement("div",{className:"row"},!this.isLoading()&&s.createElement("div",{className:"subscription-key col8 main-column"},s.createElement("h3",null,s.createElement(f.c,null,"Subscription key details")),s.createElement("div",{className:"feedback-card"},this.hasValidSubscription()&&!this.hasSubscriptionKeyGoingToExpire()&&s.createElement(xt,{name:"success"}),this.hasInvalidSubscription()&&s.createElement(xt,{name:"error"}),this.hasValidSubscription()&&this.hasSubscriptionKeyGoingToExpire()&&s.createElement(xt,{name:"warning"}),s.createElement("div",{className:"subscription-information"},!this.hasSubscriptionKey()&&s.createElement(s.Fragment,null,s.createElement("h4",{className:"no-border"},s.createElement(f.c,null,"Your subscription key is either missing or not valid.")),s.createElement("p",null,s.createElement(f.c,null,"Sorry your subscription is either missing or not readable."),s.createElement("br",null),s.createElement(f.c,null,"Update the subscription key and try again.")," ",s.createElement(f.c,null,"If this does not work get in touch with support."))),this.hasValidSubscription()&&this.hasSubscriptionKeyGoingToExpire()&&s.createElement("h4",{className:"no-border"},s.createElement(f.c,null,"Your subscription key is going to expire.")),this.hasSubscriptionKey()&&this.hasInvalidSubscription()&&s.createElement("h4",{className:"no-border"},s.createElement(f.c,null,"Your subscription key is not valid.")),this.hasValidSubscription()&&!this.hasSubscriptionKeyGoingToExpire()&&s.createElement("h4",{className:"no-border"},s.createElement(f.c,null,"Your subscription key is valid and up to date!")),this.hasSubscriptionKey()&&s.createElement("ul",null,s.createElement("li",{className:"customer-id"},s.createElement("span",{className:"label"},s.createElement(f.c,null,"Customer id:")),s.createElement("span",{className:"value"},this.state.customerId)),s.createElement("li",{className:"subscription-id"},s.createElement("span",{className:"label"},s.createElement(f.c,null,"Subscription id:")),s.createElement("span",{className:"value"},this.state.subscriptionId)),s.createElement("li",{className:"email"},s.createElement("span",{className:"label"},s.createElement(f.c,null,"Email:")),s.createElement("span",{className:"value"},this.state.email)),s.createElement("li",{className:"users"},s.createElement("span",{className:"label "+(this.hasLimitUsersExceeded()?"error":"")},s.createElement(f.c,null,"Users limit:")),s.createElement("span",{className:"value "+(this.hasLimitUsersExceeded()?"error":"")},this.state.users," (",s.createElement(f.c,null,"currently:")," ",this.state.activeUsers,")")),s.createElement("li",{className:"created"},s.createElement("span",{className:"label"},s.createElement(f.c,null,"Valid from:")),s.createElement("span",{className:"value"},this.formatDate(this.state.created))),s.createElement("li",{className:"expiry"},s.createElement("span",{className:`label ${this.hasSubscriptionKeyExpired()?"error":""} ${this.hasSubscriptionKeyGoingToExpire()?"warning":""}`},s.createElement(f.c,null,"Expires on:")),s.createElement("span",{className:`value ${this.hasSubscriptionKeyExpired()?"error":""} ${this.hasSubscriptionKeyGoingToExpire()?"warning":""}`},this.formatDate(this.state.expiry)," (",`${this.hasSubscriptionKeyExpired()?this.translate("expired "):""}${this.formatDateTimeAgo(this.state.expiry)}`,")"))),this.hasSubscriptionToRenew()&&s.createElement("div",{className:"actions-wrapper"},this.hasSubscriptionKey()&&s.createElement("button",{className:"button primary",type:"button",onClick:this.handleRenewKey},s.createElement(f.c,null,"Renew key")),!this.hasSubscriptionKey()&&s.createElement("button",{className:"button primary",type:"button",onClick:this.handleUpdateKey},s.createElement(f.c,null,"Update key")),s.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:"https://www.passbolt.com/contact"},s.createElement(f.c,null,"or, contact us")))))),!this.isLoading()&&s.createElement("div",{className:"col4 last"},s.createElement("div",{className:"sidebar-help"},s.createElement("h3",null,s.createElement(f.c,null,"Need help?")),s.createElement("p",null,s.createElement(f.c,null,"For any change or question related to your passbolt subscription, kindly contact our sales team.")),s.createElement("a",{className:"button",target:"_blank",rel:"noopener noreferrer",href:"https://www.passbolt.com/contact"},s.createElement(O,{name:"envelope"}),s.createElement("span",null,s.createElement(f.c,null,"Contact Sales"))))))}}Nt.propTypes={context:i().any,navigationContext:i().any,administrationWorkspaceContext:i().object,dialogContext:i().any,t:i().func};const Lt=I(Ce(de(g((0,k.Z)("common")(Nt)))));class Rt extends s.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks()}get defaultState(){return{loading:!0,processing:!1,locale:""}}async componentDidMount(){this.setState({locale:this.props.context.siteSettings.locale})}async componentDidUpdate(e){await this.handleMustSave(e.administrationWorkspaceContext.must.save)}bindCallbacks(){this.handleInputChange=this.handleInputChange.bind(this)}async handleMustSave(e){this.props.administrationWorkspaceContext.must.save!==e&&this.props.administrationWorkspaceContext.must.save&&(await this.handleFormSubmit(),this.props.administrationWorkspaceContext.onResetActionsSettings())}handleInputChange(e){const t=e.target,n=t.value,s=t.name;this.setState({[s]:n}),this.handleEnabledSaveButton()}handleEnabledSaveButton(){this.props.administrationWorkspaceContext.can.save||this.props.administrationWorkspaceContext.onSaveEnabled()}hasAllInputDisabled(){return this.state.processing||this.state.loading}async handleFormSubmit(){if(!this.state.processing){await this.toggleProcessing();try{await this.props.administrationWorkspaceContext.onSaveLocaleRequested(this.state.locale),await this.handleSaveSuccess()}catch(e){await this.handleSaveError(e)}}}async handleSaveSuccess(){this.props.context.onRefreshLocaleRequested(this.state.locale),await this.props.actionFeedbackContext.displaySuccess(this.props.t("The internationalization settings were updated.")),this.setState({processing:!1})}async handleSaveError(e){"UserAbortsOperationError"===e.name||(console.error(e),await this.handleError(e)),this.setState({processing:!1})}async handleError(e){await this.props.actionFeedbackContext.displayError(e.message)}async toggleProcessing(){const e=this.state.processing;return this.setState({processing:!e})}get supportedLocales(){return this.props.context.siteSettings.supportedLocales?this.props.context.siteSettings.supportedLocales.map((e=>({value:e.locale,label:e.label}))):[]}render(){return s.createElement("div",{className:"row"},s.createElement("div",{className:"internationalisation-settings col7 main-column"},s.createElement("h3",null,s.createElement(f.c,null,"Internationalisation")),s.createElement("form",{className:"form"},s.createElement("div",{className:"select-wrapper input"},s.createElement("label",{htmlFor:"app-locale-input"},s.createElement(f.c,null,"Language")),s.createElement(nt,{className:"medium",id:"locale-input",name:"locale",items:this.supportedLocales,value:this.state.locale,onChange:this.handleInputChange}),s.createElement("p",null,s.createElement(f.c,null,"The default language of the organisation."))))),s.createElement("div",{className:"col4 last"},s.createElement("div",{className:"sidebar-help"},s.createElement("h3",null,s.createElement(f.c,null,"Want to contribute?")),s.createElement("p",null,s.createElement(f.c,null,"Your language is missing or you discovered an error in the translation, help us to improve passbolt.")),s.createElement("a",{className:"button",href:"https://help.passbolt.com/contribute/translation",target:"_blank",rel:"noopener noreferrer"},s.createElement(O,{name:"heart-o"}),s.createElement("span",null,s.createElement(f.c,null,"Contribute"))))))}}Rt.propTypes={context:i().object,administrationWorkspaceContext:i().object,actionFeedbackContext:i().any,t:i().func};const It=I(h(de((0,k.Z)("common")(Rt))));function At(){return At=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},At.apply(this,arguments)}const Tt=s.createContext({currentPolicy:null,policyChanges:{},findAccountRecoveryPolicy:()=>{},getKeyInfo:()=>{},changePolicy:()=>{},changePublicKey:()=>{},hasPolicyChanges:()=>{},resetChanges:()=>{},downloadPrivateKey:()=>{},save:()=>{}});class Dt extends s.Component{constructor(e){super(e),this.state=this.defaultState}get defaultState(){return{currentPolicy:null,policyChanges:{},findAccountRecoveryPolicy:this.findAccountRecoveryPolicy.bind(this),getKeyInfo:this.getKeyInfo.bind(this),changePolicy:this.changePolicy.bind(this),changePublicKey:this.changePublicKey.bind(this),hasPolicyChanges:this.hasPolicyChanges.bind(this),resetChanges:this.resetChanges.bind(this),downloadPrivateKey:this.downloadPrivateKey.bind(this),save:this.save.bind(this)}}async findAccountRecoveryPolicy(){if(!this.props.context.siteSettings.canIUse("accountRecovery"))return;const e=await this.props.context.port.request("passbolt.account-recovery.get-organization-policy");this.setState({currentPolicy:e})}async changePolicy(e){const t=this.state.policyChanges;e===this.state.currentPolicy?.policy?delete t.policy:t.policy=e,"disabled"===e&&delete t.publicKey,await this.setState({policyChanges:t})}async changePublicKey(e){const t={...this.state.policyChanges,publicKey:e};await this.setState({policyChanges:t})}hasPolicyChanges(){return Boolean(this.state.policyChanges?.publicKey)||Boolean(this.state.policyChanges?.policy)}async getKeyInfo(e){return e?this.props.context.port.request("passbolt.keyring.get-key-info",e):null}async resetChanges(){await this.setState({policyChanges:{}})}async downloadPrivateKey(e){await this.props.context.port.request("passbolt.account-recovery.download-organization-generated-key",e)}async save(e){const t=this.buildPolicySaveDto(),n=await this.props.context.port.request("passbolt.account-recovery.save-organization-policy",t,e);this.setState({currentPolicy:n,policyChanges:{}}),this.props.accountRecoveryContext.reloadAccountRecoveryPolicy()}buildPolicySaveDto(){const e={};return this.state.policyChanges.policy&&(e.policy=this.state.policyChanges.policy),this.state.policyChanges.publicKey&&(e.account_recovery_organization_public_key={armored_key:this.state.policyChanges.publicKey}),e}render(){return s.createElement(Tt.Provider,{value:this.state},this.props.children)}}function Ut(e){return class extends s.Component{render(){return s.createElement(Tt.Consumer,null,(t=>s.createElement(e,At({adminAccountRecoveryContext:t},this.props))))}}}function _t(){return _t=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},_t.apply(this,arguments)}Dt.propTypes={context:i().any,children:i().any,accountRecoveryContext:i().object},I(Te(Dt));const Mt=s.createContext({workflows:[],start:()=>{},stop:()=>{}});class Pt extends s.Component{constructor(e){super(e),this.state=this.defaultState}get defaultState(){return{workflows:[],start:(e,t)=>{const n=(0,o.Z)();return this.setState({workflows:[...this.state.workflows,{key:n,Workflow:e,workflowProps:t}]}),n},stop:async e=>await this.setState({workflows:this.state.workflows.filter((t=>e!==t.key))})}}render(){return s.createElement(Mt.Provider,{value:this.state},this.props.children)}}Pt.displayName="WorkflowContextProvider",Pt.propTypes={children:i().any};class jt extends s.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks(),this.createInputRef()}get defaultState(){return{processing:!1,key:"",keyError:"",password:"",passwordError:"",passwordWarning:"",hasAlreadyBeenValidated:!1,selectedFile:null}}bindCallbacks(){this.handleFormSubmit=this.handleFormSubmit.bind(this),this.handleCloseClick=this.handleCloseClick.bind(this),this.handleInputChange=this.handleInputChange.bind(this),this.handleKeyInputKeyUp=this.handleKeyInputKeyUp.bind(this),this.handlePasswordInputKeyUp=this.handlePasswordInputKeyUp.bind(this),this.handleSelectFile=this.handleSelectFile.bind(this),this.handleSelectOrganizationKeyFile=this.handleSelectOrganizationKeyFile.bind(this)}createInputRef(){this.keyInputRef=s.createRef(),this.fileUploaderRef=s.createRef(),this.passwordInputRef=s.createRef()}handleKeyInputKeyUp(){if(this.state.hasAlreadyBeenValidated){const e=this.validateKeyInput();this.setState(e)}}async handleSelectOrganizationKeyFile(e){const[t]=e.target.files,n=await this.readOrganizationKeyFile(t);await this.fillOrganizationKey(n),this.setState({selectedFile:t}),this.state.hasAlreadyBeenValidated&&await this.validate()}readOrganizationKeyFile(e){const t=new FileReader;return new Promise(((n,s)=>{t.onloadend=()=>{try{n(t.result)}catch(e){s(e)}},t.readAsText(e)}))}async fillOrganizationKey(e){await this.setState({key:e})}validateKeyInput(){const e=this.state.key.trim();let t="";return e.length||(t=this.translate("An organization key is required.")),new Promise((e=>{this.setState({keyError:t},e)}))}focusFirstFieldError(){this.state.keyError?this.keyInputRef.current.focus():this.state.passwordError&&this.passwordInputRef.current.focus()}handlePasswordInputKeyUp(){if(this.state.hasAlreadyBeenValidated){const e=this.validatePasswordInput();this.setState(e)}else{const e=this.state.password.length>=4096,t=this.translate("this is the maximum size for this field, make sure your data was not truncated"),n=e?t:"";this.setState({passwordWarning:n})}}validatePasswordInput(){const e=this.state.password;let t="";return e.length||(t=this.translate("A password is required.")),new Promise((e=>{this.setState({passwordError:t},e)}))}handleInputChange(e){const t=e.target,n=t.value,s=t.name;this.setState({[s]:n})}handleSelectFile(){this.fileUploaderRef.current.click()}async handleFormSubmit(e){e.preventDefault(),this.state.processing||await this.save()}async save(){if(this.setState({hasAlreadyBeenValidated:!0}),await this.toggleProcessing(),!await this.validate())return this.handleValidateError(),void await this.toggleProcessing();const e={armored_key:this.state.key,passphrase:this.state.password};try{await this.props.context.port.request("passbolt.account-recovery.validate-organization-private-key",e),await this.props.onSubmit(e),await this.toggleProcessing(),this.props.onClose()}catch(e){await this.handleSubmitError(e),await this.toggleProcessing()}}async handleSubmitError(e){"UserAbortsOperationError"!==e.name&&("WrongOrganizationRecoveryKeyError"===e.name?this.setState({expectedFingerprintError:e.expectedFingerprint}):"InvalidMasterPasswordError"===e.name?this.setState({passwordError:this.translate("This is not a valid passphrase.")}):"BadSignatureMessageGpgKeyError"===e.name||"GpgKeyError"===e.name?this.setState({keyError:e.message}):(console.error("Uncaught uncontrolled error"),this.onUnexpectedError(e)))}onUnexpectedError(e){const t={error:e};this.props.dialogContext.open(ft,t)}handleValidateError(){this.focusFirstFieldError()}async validate(){return this.setState({keyError:"",passwordError:"",expectedFingerprintError:""}),await Promise.all([this.validateKeyInput(),this.validatePasswordInput()]),""===this.state.keyError&&""===this.state.passwordError}async toggleProcessing(){await this.setState({processing:!this.state.processing})}hasAllInputDisabled(){return this.state.processing}handleCloseClick(){this.props.onClose()}formatFingerprint(e){if(!e)return s.createElement(s.Fragment,null);const t=e.toUpperCase().replace(/.{4}/g,"$& ");return s.createElement(s.Fragment,null,t.substr(0,24),s.createElement("br",null),t.substr(25))}get selectedFilename(){return this.state.selectedFile?this.state.selectedFile.name:""}get translate(){return this.props.t}render(){return s.createElement($,{title:this.translate("Organization Recovery Key"),onClose:this.handleCloseClick,disabled:this.state.processing,className:"provide-organization-recover-key-dialog"},s.createElement("form",{onSubmit:this.handleFormSubmit,noValidate:!0},s.createElement("div",{className:"form-content provide-organization-key"},s.createElement("div",{className:"input textarea required "+(this.state.keyError||this.state.expectedFingerprintError?"error":"")},s.createElement("label",{htmlFor:"organization-recover-form-key"},s.createElement(f.c,null,"Enter the private key used by your organization for account recovery")),s.createElement("textarea",{id:"organization-recover-form-key",name:"key",value:this.state.key,onKeyUp:this.handleKeyInputKeyUp,onChange:this.handleInputChange,disabled:this.hasAllInputDisabled(),ref:this.keyInputRef,className:"required",placeholder:this.translate("Paste the OpenPGP Private key here"),required:"required",autoComplete:"off",autoFocus:!0})),s.createElement("div",{className:"input file"},s.createElement("input",{type:"file",id:"dialog-import-private-key",ref:this.fileUploaderRef,disabled:this.hasAllInputDisabled(),onChange:this.handleSelectOrganizationKeyFile}),s.createElement("label",{htmlFor:"dialog-import-private-key"},s.createElement(f.c,null,"Select a file to import")),s.createElement("div",{className:"input-file-inline"},s.createElement("input",{type:"text",disabled:!0,placeholder:this.translate("No file selected"),defaultValue:this.selectedFilename}),s.createElement("button",{className:"button primary",type:"button",disabled:this.hasAllInputDisabled(),onClick:this.handleSelectFile},s.createElement("span",null,s.createElement(f.c,null,"Choose a file")))),this.state.keyError&&s.createElement("div",{className:"key error-message"},this.state.keyError),this.state.expectedFingerprintError&&s.createElement("div",{className:"key error-message"},s.createElement(f.c,null,"Error, this is not the current organization recovery key."),s.createElement("br",null),s.createElement(f.c,null,"Expected fingerprint:"),s.createElement("br",null),s.createElement("br",null),s.createElement("span",{className:"fingerprint"},this.formatFingerprint(this.state.expectedFingerprintError)))),s.createElement("div",{className:"input-password-wrapper input required "+(this.state.passwordError?"error":"")},s.createElement("label",{htmlFor:"generate-organization-key-form-password"},s.createElement(f.c,null,"Organization key passphrase"),this.state.passwordWarning&&s.createElement(O,{name:"exclamation"})),s.createElement(Fe,{id:"generate-organization-key-form-password",name:"password",placeholder:this.translate("Passphrase"),autoComplete:"new-password",onKeyUp:this.handlePasswordInputKeyUp,value:this.state.password,securityToken:this.props.context.userSettings.getSecurityToken(),preview:!0,onChange:this.handleInputChange,disabled:this.hasAllInputDisabled(),inputRef:this.passwordInputRef}),this.state.passwordError&&s.createElement("div",{className:"password error-message"},this.state.passwordError),this.state.passwordWarning&&s.createElement("div",{className:"password warning-message"},s.createElement("strong",null,s.createElement(f.c,null,"Warning:"))," ",this.state.passwordWarning))),s.createElement("div",{className:"submit-wrapper clearfix"},s.createElement(Y,{disabled:this.hasAllInputDisabled(),onClick:this.handleCloseClick}),s.createElement(Et,{disabled:this.hasAllInputDisabled(),processing:this.state.processing,value:this.translate("Submit")}))))}}jt.propTypes={context:i().any.isRequired,onClose:i().func,onSubmit:i().func,actionFeedbackContext:i().any,dialogContext:i().object,t:i().func};const Wt=I(g((0,k.Z)("common")(jt)));class zt extends s.Component{constructor(e){super(e),this.state=this.getDefaultState(),this.bindCallbacks()}getDefaultState(){return{processing:!1}}bindCallbacks(){this.handleSubmit=this.handleSubmit.bind(this),this.handleClose=this.handleClose.bind(this)}handleClose(){this.props.onClose()}async toggleProcessing(){await this.setState({processing:!this.state.processing})}get isProcessing(){return this.state.processing}async handleSubmit(e){e.preventDefault(),await this.toggleProcessing();try{await this.props.onSubmit(),this.props.onClose()}catch(e){if(await this.toggleProcessing(),"UserAbortsOperationError"!==e.name)throw console.error("Uncaught uncontrolled error"),e}}formatFingerprint(e){const t=(e=e||"").toUpperCase().replace(/.{4}/g,"$& ");return s.createElement(s.Fragment,null,t.substr(0,24),s.createElement("br",null),t.substr(25))}formatUserIds(e){return(e=e||[]).map(((e,t)=>s.createElement(s.Fragment,{key:t},e.name,"<",e.email,">",s.createElement("br",null))))}formatDateTimeAgo(e){if(null===e)return"n/a";if("Infinity"===e)return this.translate("Never");const t=bt.ou.fromISO(e),n=t.diffNow().toMillis();return n>-1e3&&n<0?this.translate("Just now"):t.toRelative({locale:this.props.context.locale})}formatDate(e){return bt.ou.fromJSDate(new Date(e)).setLocale(this.props.context.locale).toLocaleString(bt.ou.DATETIME_FULL)}get translate(){return this.props.t}render(){return s.createElement($,{title:this.translate("Save Settings Summary"),onClose:this.handleClose,disabled:this.state.processing,className:"save-recovery-account-settings-dialog"},s.createElement("form",{onSubmit:this.handleSubmit},s.createElement("div",{className:"form-content"},this.props.policy&&s.createElement(s.Fragment,null,s.createElement("label",null,s.createElement(f.c,null,"New Account Recovery Policy")),s.createElement("div",{className:"radiolist-alt"},s.createElement("div",{className:"input radio"},s.createElement("label",{htmlFor:"accountPolicy"},s.createElement("span",{className:"name"},{mandatory:s.createElement(f.c,null,"Mandatory"),"opt-out":s.createElement(f.c,null,"Optional, Opt-out"),"opt-in":s.createElement(f.c,null,"Optional, Opt-in"),disabled:s.createElement(f.c,null,"Disable")}[this.props.policy]),s.createElement("span",{className:"info"},{mandatory:s.createElement(s.Fragment,null,s.createElement(f.c,null,"Every user is required to provide a copy of their private key and passphrase during setup."),s.createElement("br",null),s.createElement(f.c,null,"Warning: You should inform your users not to store personal passwords.")),"opt-out":s.createElement(f.c,null,"Every user will be prompted to provide a copy of their private key and passphrase by default during the setup, but they can opt out."),"opt-in":s.createElement(f.c,null,"Every user can decide to provide a copy of their private key and passphrase by default during the setup, but they can opt in."),disabled:s.createElement(s.Fragment,null,s.createElement(f.c,null,"Backup of the private key and passphrase will not be stored. This is the safest option."),s.createElement("br",null),s.createElement(f.c,null,"Warning: If users lose their private key and passphrase they will not be able to recover their account."))}[this.props.policy]))))),this.props.keyInfo&&s.createElement(s.Fragment,null,s.createElement("label",null,s.createElement(f.c,null,"New Organization Recovery Key")),s.createElement("div",{className:"recovery-key-details"},s.createElement("table",{className:"table-info recovery-key"},s.createElement("tbody",null,s.createElement("tr",{className:"user-ids"},s.createElement("td",{className:"label"},s.createElement(f.c,null,"Uid")),s.createElement("td",{className:"value"},this.formatUserIds(this.props.keyInfo.user_ids))),s.createElement("tr",{className:"fingerprint"},s.createElement("td",{className:"label"},s.createElement(f.c,null,"Fingerprint")),s.createElement("td",{className:"value"},this.formatFingerprint(this.props.keyInfo.fingerprint))),s.createElement("tr",{className:"algorithm"},s.createElement("td",{className:"label"},s.createElement(f.c,null,"Algorithm")),s.createElement("td",{className:"value"},this.props.keyInfo.algorithm)),s.createElement("tr",{className:"key-length"},s.createElement("td",{className:"label"},s.createElement(f.c,null,"Key length")),s.createElement("td",{className:"value"},this.props.keyInfo.length)),s.createElement("tr",{className:"created"},s.createElement("td",{className:"label"},s.createElement(f.c,null,"Created")),s.createElement("td",{className:"value"},this.formatDate(this.props.keyInfo.created))),s.createElement("tr",{className:"expires"},s.createElement("td",{className:"label"},s.createElement(f.c,null,"Expires")),s.createElement("td",{className:"value"},this.formatDateTimeAgo(this.props.keyInfo.expires)))))))),s.createElement("div",{className:"warning message"},s.createElement(f.c,null,"Warning, Please review carefully this configuration as it will not be trivial to change this later.")),s.createElement("div",{className:"submit-wrapper clearfix"},s.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:"https://help.passbolt.com/configure/account-recovery",className:"button button-left "+(this.isProcessing?"disabled":"")},s.createElement(f.c,null,"Learn more")),s.createElement(Y,{onClick:this.handleClose,disabled:this.isProcessing}),s.createElement(Et,{value:this.translate("Save"),disabled:this.isProcessing,processing:this.isProcessing,warning:!0}))))}}zt.propTypes={context:i().any,onClose:i().func,onSubmit:i().func,policy:i().string,keyInfo:i().object,t:i().func};const qt=I((0,k.Z)("common")(zt));class Ft extends s.Component{constructor(e){super(e),this.bindCallbacks()}componentDidMount(){this.displayConfirmSummaryDialog()}bindCallbacks(){this.handleCloseDialog=this.handleCloseDialog.bind(this),this.handleConfirmSave=this.handleConfirmSave.bind(this),this.handleSave=this.handleSave.bind(this),this.handleError=this.handleError.bind(this)}async displayConfirmSummaryDialog(){this.props.dialogContext.open(qt,{policy:this.props.adminAccountRecoveryContext.policyChanges?.policy,keyInfo:await this.getNewOrganizationKeyInfo(),onClose:this.handleCloseDialog,onSubmit:this.handleConfirmSave})}getNewOrganizationKeyInfo(){const e=this.props.adminAccountRecoveryContext.policyChanges?.publicKey;return e?this.props.adminAccountRecoveryContext.getKeyInfo(e):null}displayProvideAccountRecoveryOrganizationKeyDialog(){this.props.dialogContext.open(Wt,{onClose:this.handleCloseDialog,onSubmit:this.handleSave})}handleCloseDialog(){this.props.onStop()}async handleConfirmSave(){Boolean(this.props.adminAccountRecoveryContext.currentPolicy?.account_recovery_organization_public_key)?this.displayProvideAccountRecoveryOrganizationKeyDialog():await this.handleSave()}async handleSave(e=null){try{await this.props.adminAccountRecoveryContext.save(e),await this.props.actionFeedbackContext.displaySuccess(this.translate("The organization recovery policy has been updated successfully")),this.props.onStop()}catch(e){this.handleError(e)}}handleError(e){if(["UserAbortsOperationError","WrongOrganizationRecoveryKeyError","InvalidMasterPasswordError","BadSignatureMessageGpgKeyError","GpgKeyError"].includes(e.name))throw e;"PassboltApiFetchError"===e.name&&e?.data?.body?.account_recovery_organization_public_key?.fingerprint?.isNotAccountRecoveryOrganizationPublicKeyFingerprintRule?this.props.dialogContext.open(ft,{error:new Error(this.translate("The new organization recovery key should not be a formerly used organization recovery key."))}):this.props.dialogContext.open(ft,{error:e}),this.props.onStop()}get translate(){return this.props.t}render(){return s.createElement(s.Fragment,null)}}Ft.propTypes={dialogContext:i().any,adminAccountRecoveryContext:i().any,actionFeedbackContext:i().object,context:i().object,onStop:i().func.isRequired,t:i().func};const Ot=I(g(h(Ut((0,k.Z)("common")(Ft)))));class Kt extends s.Component{constructor(e){super(e),this.bindCallbacks()}bindCallbacks(){this.handleSaveClick=this.handleSaveClick.bind(this),this.handleEditSubscriptionClick=this.handleEditSubscriptionClick.bind(this)}handleSaveClick(){this.props.workflowContext.start(Ot,{})}handleEditSubscriptionClick(){this.props.adminAccountRecoveryContext.resetChanges()}isSaveEnabled(){if(!this.props.adminAccountRecoveryContext.hasPolicyChanges())return!1;const e=this.props.adminAccountRecoveryContext.policyChanges,t=this.props.adminAccountRecoveryContext.currentPolicy;if(e?.policy===Ie.POLICY_DISABLED)return!0;const n=e.publicKey||t.account_recovery_organization_public_key?.armored_key;return!(!Boolean(e.policy)||!Boolean(n))||t.policy!==Ie.POLICY_DISABLED&&Boolean(e.publicKey)}isResetEnabled(){return this.props.adminAccountRecoveryContext.hasPolicyChanges()}render(){return s.createElement("div",{className:"col2_3 actions-wrapper"},s.createElement("div",{className:"actions"},s.createElement("div",null,s.createElement("li",null,s.createElement("a",{className:"button "+(this.isSaveEnabled()?"":"disabled"),onClick:this.handleSaveClick},s.createElement(O,{name:"save"}),s.createElement("span",null,s.createElement(f.c,null,"Save settings"))))),s.createElement("div",null,s.createElement("li",null,s.createElement("a",{className:"button "+(this.isResetEnabled()?"":"disabled"),onClick:this.handleEditSubscriptionClick},s.createElement(O,{name:"edit"}),s.createElement("span",null,s.createElement(f.c,null,"Reset settings")))))))}}Kt.propTypes={adminAccountRecoveryContext:i().object,workflowContext:i().any};const Vt=function(e){return class extends s.Component{render(){return s.createElement(Mt.Consumer,null,(t=>s.createElement(e,_t({workflowContext:t},this.props))))}}}(Ut((0,k.Z)("common")(Kt)));class Gt extends s.Component{constructor(e){super(e),this.bindCallback()}bindCallback(){this.handleClick=this.handleClick.bind(this)}handleClick(){this.props.onClick(this.props.name)}render(){return s.createElement("li",{className:"tab "+(this.props.isActive?"active":"")},s.createElement("a",{className:"tab-link",onClick:this.handleClick},this.props.name))}}Gt.propTypes={name:i().string,type:i().string,isActive:i().bool,onClick:i().func,children:i().any};const Bt=Gt;class Ht extends s.Component{constructor(e){super(e),this.state=this.getDefaultState(e),this.bindCallback()}getDefaultState(e){return{activeTabName:e.activeTabName}}bindCallback(){this.handleTabClick=this.handleTabClick.bind(this)}handleTabClick(e){this.setState({activeTabName:e.name}),"function"==typeof e.onClick&&e.onClick()}render(){return s.createElement("div",{className:"tabs"},s.createElement("ul",{className:"tabs-nav tabs-nav--bordered"},this.props.children.map((({key:e,props:t})=>s.createElement(Bt,{key:e,name:t.name,onClick:()=>this.handleTabClick(t),isActive:t.name===this.state.activeTabName})))),s.createElement("div",{className:"tabs-active-content"},this.props.children.find((e=>e.props.name===this.state.activeTabName)).props.children))}}Ht.propTypes={activeTabName:i().string,children:i().any};const $t=Ht;class Zt extends s.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks(),this.createInputRef()}get defaultState(){return{processing:!1,key:"",keyError:"",hasAlreadyBeenValidated:!1,selectedFile:null}}bindCallbacks(){this.handleSelectFile=this.handleSelectFile.bind(this),this.handleFormSubmit=this.handleFormSubmit.bind(this),this.handleInputChange=this.handleInputChange.bind(this),this.handleSelectOrganizationKeyFile=this.handleSelectOrganizationKeyFile.bind(this)}createInputRef(){this.keyInputRef=s.createRef(),this.fileUploaderRef=s.createRef()}async handleSelectOrganizationKeyFile(e){const[t]=e.target.files,n=await this.readOrganizationKeyFile(t);this.setState({key:n,selectedFile:t})}readOrganizationKeyFile(e){const t=new FileReader;return new Promise(((n,s)=>{t.onloadend=()=>{try{n(t.result)}catch(e){s(e)}},t.readAsText(e)}))}async validateKeyInput(){const e=this.state.key.trim();return""===e?Promise.reject(new Error(this.translate("The key can't be empty."))):await this.props.context.port.request("passbolt.account-recovery.validate-organization-key",e)}async validate(){return this.setState({keyError:""}),await this.validateKeyInput().then((()=>!0)).catch((e=>(this.setState({keyError:e.message}),!1)))}handleInputChange(e){const t=e.target;this.setState({[t.name]:t.value})}handleSelectFile(){this.fileUploaderRef.current.click()}async handleFormSubmit(e){e.preventDefault(),this.state.processing||await this.save()}async save(){if(await this.setState({hasAlreadyBeenValidated:!0}),await this.toggleProcessing(),!await this.validate())return this.handleValidateError(),void await this.toggleProcessing();await this.props.onUpdateOrganizationKey(this.state.key.trim())}handleValidateError(){this.focusFieldError()}focusFieldError(){this.state.keyError&&this.keyInputRef.current.focus()}async toggleProcessing(){await this.setState({processing:!this.state.processing})}hasAllInputDisabled(){return this.state.processing}get translate(){return this.props.t}get selectedFilename(){return this.state.selectedFile?this.state.selectedFile.name:""}render(){return s.createElement("form",{onSubmit:this.handleFormSubmit,noValidate:!0},s.createElement("div",{className:"form-content import-organization-key"},s.createElement("div",{className:"input textarea required "+(this.state.keyError?"error":"")},s.createElement("label",{htmlFor:"organization-recover-form-key"},s.createElement(f.c,null,"Import an OpenPGP Public key")),s.createElement("textarea",{id:"organization-recover-form-key",name:"key",value:this.state.key,onKeyUp:this.handleKeyInputKeyUp,onChange:this.handleInputChange,disabled:this.hasAllInputDisabled(),ref:this.keyInputRef,className:"required",placeholder:this.translate("Add Open PGP Public key"),required:"required",autoComplete:"off",autoFocus:!0})),s.createElement("div",{className:"input file"},s.createElement("input",{type:"file",id:"dialog-import-private-key",ref:this.fileUploaderRef,disabled:this.hasAllInputDisabled(),onChange:this.handleSelectOrganizationKeyFile}),s.createElement("label",{htmlFor:"dialog-import-private-key"},s.createElement(f.c,null,"Select a file to import")),s.createElement("div",{className:"input-file-inline"},s.createElement("input",{type:"text",disabled:!0,placeholder:this.translate("No file selected"),defaultValue:this.selectedFilename}),s.createElement("button",{className:"button primary",type:"button",disabled:this.hasAllInputDisabled(),onClick:this.handleSelectFile},s.createElement("span",null,s.createElement(f.c,null,"Choose a file")))),this.state.keyError&&s.createElement("div",{className:"key error-message"},this.state.keyError))),!this.state.hasAlreadyBeenValidated&&s.createElement("div",{className:"message notice"},s.createElement(O,{baseline:!0,name:"info-circle"}),s.createElement("strong",null,s.createElement(f.c,null,"Pro tip"),":")," ",s.createElement(f.c,null,"Learn how to ",s.createElement("a",{href:"https://help.passbolt.com/configure/account-recovery",target:"_blank",rel:"noopener noreferrer"},"generate a key separately."))),s.createElement("div",{className:"submit-wrapper clearfix"},s.createElement(Y,{disabled:this.hasAllInputDisabled(),onClick:this.props.onClose}),s.createElement(Et,{disabled:this.hasAllInputDisabled(),processing:this.state.processing,value:this.translate("Apply")})))}}Zt.propTypes={context:i().object,onUpdateOrganizationKey:i().func,onClose:i().func,t:i().func};const Yt=I((0,k.Z)("common")(Zt));var Jt=n(9496),Qt=n.n(Jt);const Xt={"en-UK":["abdominal","acclimate","accompany","activator","acuteness","aerospace","affecting","affection","affidavit","affiliate","afflicted","afterglow","afterlife","aftermath","aftermost","afternoon","aggregate","agonizing","agreeable","agreeably","agreement","alabaster","albatross","algorithm","alienable","alongside","amazingly","ambiguity","ambiguous","ambitious","ambulance","amendable","amendment","amplifier","amusement","anaerobic","anatomist","angelfish","angriness","anguished","animating","animation","animosity","announcer","answering","antarctic","anthology","antiquely","antiquity","antitoxic","antitrust","antiviral","antivirus","appealing","appeasing","appendage","appetizer","appliance","applicant","appointee","appraisal","appraiser","apprehend","arbitrary","arbitrate","armadillo","arrogance","ascension","ascertain","asparagus","astrology","astronaut","astronomy","atrocious","attendant","attention","attentive","attractor","attribute","audacious","augmented","authentic","autograph","automaker","automated","automatic","autopilot","available","avalanche","backboard","backboned","backfield","backlands","backlight","backpedal","backshift","backspace","backstage","backtrack","backwater","bacterium","bagginess","balancing","bannister","barometer","barracuda","barricade","bartender","basically","battalion","battering","blanching","blandness","blaspheme","blasphemy","blatantly","blunderer","bodacious","boogeyman","boogieman","boondocks","borrowing","botanical","boundless","bountiful","breeching","brilliant","briskness","broadband","broadcast","broadness","broadside","broadways","bronchial","brownnose","brutishly","buccaneer","bucktooth","buckwheat","bulginess","bulldozer","bullfight","bunkhouse","cabdriver","calculate","calibrate","camcorder","canopener","capillary","capricorn","captivate","captivity","cardboard","cardstock","carefully","caregiver","caretaker","carnation","carnivore","carpenter","carpentry","carrousel","cartridge","cartwheel","catatonic","catchable","cathedral","cattishly","caucasian","causation","cauterize","celestial","certainly","certainty","certified","challenge","chamomile","chaperone","character","charbroil","chemicals","cherisher","chihuahua","childcare","childhood","childless","childlike","chokehold","circulate","clamshell","clergyman","clubhouse","clustered","coagulant","coastland","coastline","cofounder","cognition","cognitive","coherence","collected","collector","collision","commodity","commodore","commotion","commuting","compacted","compacter","compactly","compactor","companion","component","composite","composure","comprised","computing","concerned","concierge","condiment","condition","conducive","conductor","confidant","confident","confiding","configure","confining","confusing","confusion","congenial","congested","conjoined","connected","connector","consensus","consoling","consonant","constable","constrain","constrict","construct","consuming","container","contented","contently","contusion","copartner","cornbread","cornfield","cornflake","cornstalk","corporate","corroding","corrosive","cosmetics","cosponsor","countable","countdown","countless","crabgrass","craftsman","craftwork","cranberry","craziness","creamlike","creatable","crestless","crispness","crudeness","cruelness","crummiest","crunching","crushable","cubbyhole","culminate","cultivate","cupbearer","curliness","curvature","custodian","customary","customize","cytoplasm","cytoplast","dandelion","daredevil","darkening","darwinism","dastardly","deafening","dealmaker","debatable","decathlon","deceiving","deception","deceptive","decidable","decimeter","decompose","decorated","decorator","dedicator","defection","defective","defendant","defensive","deflation","deflected","deflector","degrading","dehydrate","delegator","delicious","delighted","delirious","deliverer","demanding","demeaning","democracy","demystify","denatured","deodorant","deodorize","departure","depletion","depravity","deprecate","desecrate","deserving","designate","designing","deskbound","destitute","detection","detective","detention","detergent","detonator","deviation","devotedly","devouring","dexterity","dexterous","diagnoses","diagnosis","diaphragm","dictation","difficult","diffusion","diffusive","diligence","dinginess","direction","directive","directory","dirtiness","disbelief","discharge","discourse","disengage","disfigure","disinfect","disliking","dislocate","dismantle","disparate","disparity","dispersal","dispersed","disperser","displease","disregard","dividable","divisible","divisibly","dizziness","dollhouse","doorframe","dormitory","dragonfly","dragonish","drainable","drainpipe","dramatize","dreadlock","dreamboat","dreamland","dreamless","dreamlike","drinkable","drop-down","dubiously","duplicate","duplicity","dwindling","earthlike","earthling","earthworm","eastbound","eastcoast","eccentric","ecologist","economist","ecosphere","ecosystem","education","effective","efficient","eggbeater","egomaniac","egotistic","elaborate","eldercare","electable","elevating","elevation","eliminate","elongated","eloquence","elsewhere","embattled","embellish","embroider","emergency","emphasize","empirical","emptiness","enactment","enchanted","enchilada","enclosure","encounter","encourage","endearing","endocrine","endorphin","endowment","endurable","endurance","energetic","engraving","enigmatic","enjoyable","enjoyably","enjoyment","enlarging","enlighten","entangled","entertain","entourage","enunciate","epidermal","epidermis","epileptic","equipment","equivocal","eradicate","ergonomic","escalator","escapable","esophagus","espionage","essential","establish","estimator","estranged","ethically","euphemism","evaluator","evaporate","everglade","evergreen","everybody","evolution","excavator","exceeding","exception","excitable","excluding","exclusion","exclusive","excretion","excretory","excursion","excusable","excusably","exemplary","exemplify","exemption","exerciser","exfoliate","exonerate","expansion","expansive","expectant","expedited","expediter","expensive","expletive","exploring","exposable","expulsion","exquisite","extending","extenuate","extortion","extradite","extrovert","extruding","exuberant","facecloth","faceplate","facsimile","factsheet","fanciness","fantasize","fantastic","favorable","favorably","ferocious","festivity","fidgeting","financial","finishing","flagstick","flagstone","flammable","flashback","flashbulb","flashcard","flattered","flatterer","flavorful","flavoring","footboard","footprint","fragility","fragrance","fraternal","freemason","freestyle","freezable","frequency","frightful","frigidity","frivolous","frostbite","frostlike","frugality","frustrate","gainfully","gallantly","gallstone","galvanize","gathering","gentleman","geography","geologist","geometric","geriatric","germicide","germinate","germproof","gestation","gibberish","giddiness","gigahertz","gladiator","glamorous","glandular","glorified","glorifier","glutinous","goldsmith","goofiness","graceless","gradation","gradually","grappling","gratified","gratitude","graveness","graveyard","gravitate","greedless","greyhound","grievance","grimacing","griminess","grumbling","guacamole","guileless","gumminess","habitable","hamburger","hamstring","handbrake","handclasp","handcraft","handiness","handiwork","handlebar","handprint","handsfree","handshake","handstand","handwoven","handwrite","hankering","haphazard","happening","happiness","hardcover","hardening","hardiness","hardwired","harmonica","harmonics","harmonize","hastiness","hatchback","hatchling","headboard","headcount","headdress","headfirst","headphone","headpiece","headscarf","headstand","headstone","heaviness","heftiness","hemstitch","herbicide","hesitancy","humiliate","humongous","humorless","hunchback","hundredth","hurricane","huskiness","hydration","hydroxide","hyperlink","hypertext","hypnotism","hypnotist","hypnotize","hypocrisy","hypocrite","ibuprofen","idealness","identical","illicitly","imaginary","imitation","immersion","immorally","immovable","immovably","impatient","impending","imperfect","implement","implicate","implosion","implosive","important","impotence","impotency","imprecise","impromptu","improving","improvise","imprudent","impulsive","irregular","irritable","irritably","isolating","isolation","italicize","itinerary","jackknife","jailbreak","jailhouse","jaywalker","jeeringly","jockstrap","jolliness","joylessly","jubilance","judgingly","judiciary","juiciness","justifier","kilometer","kinswoman","laborious","landowner","landscape","landslide","lankiness","legislate","legwarmer","lethargic","levitator","liability","librarian","limelight","litigator","livestock","lubricant","lubricate","luckiness","lucrative","ludicrous","luminance","lumpiness","lunchroom","lunchtime","luridness","lustfully","lustiness","luxurious","lyrically","machinist","magnesium","magnetism","magnetize","magnifier","magnitude","majorette","makeshift","malformed","mammogram","mandatory","manhandle","manicotti","manifesto","manliness","marauding","margarine","margarita","marmalade","marshland","marsupial","marvelous","masculine","matchbook","matchless","maternity","matriarch","matrimony","mayflower","modulator","moistness","molecular","monastery","moneybags","moneyless","moneywise","monologue","monstrous","moodiness","moonlight","moonscape","moonshine","moonstone","morbidity","mortality","mortician","mortified","mothproof","motivator","motocross","mountable","mousiness","moustache","multitask","multitude","mummified","municipal","murkiness","murmuring","mushiness","muskiness","mustiness","mutilated","mutilator","mystified","nanometer","nastiness","navigator","nebulizer","neglector","negligent","negotiate","neurology","ninetieth","numerator","nuttiness","obedience","oblivious","obnoxious","obscurity","observant","observing","obsession","obsessive","obstinate","obtrusive","occultist","occupancy","onslaught","operating","operation","operative","oppressed","oppressor","opulently","outnumber","outplayed","outskirts","outsource","outspoken","overblown","overboard","overbuilt","overcrowd","overdraft","overdrawn","overdress","overdrive","overeager","overeater","overexert","overgrown","overjoyed","overlabor","overlying","overnight","overplant","overpower","overprice","overreach","overreact","overshoot","oversight","oversized","oversleep","overspend","overstate","overstock","overstuff","oversweet","overthrow","overvalue","overwrite","oxidation","oxidizing","pacemaker","palatable","palpitate","panhandle","panoramic","pantomime","pantyhose","paparazzi","parachute","paragraph","paralegal","paralyses","paralysis","paramedic","parameter","paramount","parasitic","parchment","partition","partridge","passenger","passivism","patchwork","paternity","patriarch","patronage","patronize","pavestone","pediatric","pedometer","penholder","penniless","pentagram","percolate","perennial","perfected","perfectly","periscope","perkiness","perpetual","perplexed","persecute","persevere","persuaded","persuader","pessimism","pessimist","pesticide","petroleum","petticoat","pettiness","phonebook","phoniness","phosphate","plausible","plausibly","playgroup","playhouse","playmaker","plaything","plentiful","plexiglas","plutonium","pointless","polyester","polygraph","porcupine","portfolio","postnasal","powdering","prankster","preaching","precision","predefine","preflight","preformed","pregnancy","preheated","prelaunch","preoccupy","preschool","prescribe","preseason","president","presuming","pretended","pretender","prevalent","prewashed","primarily","privatize","proactive","probation","probiotic","procedure","procreate","profanity","professed","professor","profusely","prognosis","projector","prolonged","promenade","prominent","promotion","pronounce","proofread","propeller","proponent","protector","prototype","protozoan","providing","provoking","provolone","proximity","prudishly","publisher","pulmonary","pulverize","punctuate","punctured","pureblood","purgatory","purposely","pursuable","pushchair","pushiness","pyromania","qualified","qualifier","quartered","quarterly","quickness","quicksand","quickstep","quintuple","quizzical","quotation","radiantly","radiation","rancidity","ravishing","reacquire","reanalyze","reappoint","reapprove","rearrange","rebalance","recapture","recharger","recipient","reclining","reclusive","recognize","recollect","reconcile","reconfirm","reconvene","rectangle","rectified","recycling","reexamine","referable","reference","refinance","reflected","reflector","reformist","refueling","refurbish","refurnish","refutable","registrar","regretful","regulator","rehydrate","reimburse","reiterate","rejoicing","relapsing","relatable","relenting","relieving","reluctant","remindful","remission","remodeler","removable","rendering","rendition","renewable","renewably","renovator","repackage","repacking","repayment","repossess","repressed","reprimand","reprocess","reproduce","reprogram","reptilian","repugnant","repulsion","repulsive","repurpose","reputable","reputably","requisite","reshuffle","residence","residency","resilient","resistant","resisting","resurface","resurrect","retaining","retaliate","retention","retrieval","retriever","reverence","reversing","reversion","revisable","revivable","revocable","revolving","riverbank","riverboat","riverside","rockiness","rockslide","roundness","roundworm","runaround","sacrament","sacrifice","saddlebag","safeguard","safehouse","salvaging","salvation","sanctuary","sandblast","sandpaper","sandstone","sandstorm","sanitizer","sappiness","sarcastic","sasquatch","satirical","satisfied","sauciness","saxophone","scapegoat","scarecrow","scariness","scavenger","schematic","schilling","scientist","scorebook","scorecard","scoreless","scoundrel","scrambled","scrambler","scrimmage","scrounger","sculpture","secluding","seclusion","sectional","selection","selective","semicolon","semifinal","semisweet","sensation","sensitive","sensitize","sensually","september","sequester","serotonin","sevenfold","seventeen","shadiness","shakiness","sharpener","sharpness","shiftless","shininess","shivering","shortcake","shorthand","shortlist","shortness","shortwave","showpiece","showplace","shredding","shrubbery","shuffling","silliness","similarly","simmering","sincerity","situation","sixtyfold","skedaddle","skintight","skyrocket","slackness","slapstick","sliceable","slideshow","slighting","slingshot","slouching","smartness","smilingly","smokeless","smokiness","smuggling","snowboard","snowbound","snowdrift","snowfield","snowflake","snowiness","snowstorm","spearfish","spearhead","spearmint","spectacle","spectator","speculate","spellbind","spendable","spherical","spiritism","spiritual","splashing","spokesman","spotlight","sprinkled","sprinkler","squatting","squealing","squeamish","squeezing","squishier","stability","stabilize","stainable","stainless","stalemate","staleness","starboard","stargazer","starlight","startling","statistic","statutory","steadfast","steadying","steerable","steersman","stegosaur","sterility","sterilize","sternness","stiffness","stillness","stimulant","stimulate","stipulate","stonewall","stoneware","stonework","stoplight","stoppable","stopwatch","storeroom","storewide","straggler","straining","strangely","strategic","strenuous","strongbox","strongman","structure","stumbling","stylishly","subarctic","subatomic","subdivide","subheader","submarine","submersed","submitter","subscribe","subscript","subsector","subsiding","subsidize","substance","subsystem","subwoofer","succulent","suffering","suffocate","sulphuric","superbowl","superglue","superhero","supernova","supervise","supremacy","surcharge","surfacing","surfboard","surrender","surrogate","surviving","sustained","sustainer","swaddling","swampland","swiftness","swimmable","symphonic","synthesis","synthetic","tableware","tackiness","taekwondo","tarantula","tastiness","theatrics","thesaurus","thickness","thirstily","thirsting","threefold","throbbing","throwaway","throwback","thwarting","tightness","tightrope","tinderbox","tiptoeing","tradition","trailside","transform","translate","transpire","transport","transpose","trapezoid","treachery","treadmill","trembling","tribesman","tributary","trickster","trifocals","trimester","troubling","trustable","trustless","turbulent","twentieth","twiddling","twistable","ultimatum","umbilical","unabashed","unadorned","unadvised","unaligned","unaltered","unarmored","unashamed","unaudited","unbalance","unblended","unblessed","unbounded","unbraided","unbuckled","uncertain","unchanged","uncharted","unclaimed","unclamped","unclothed","uncolored","uncorrupt","uncounted","uncrushed","uncurious","undamaged","undaunted","undecided","undefined","undercoat","undercook","underdone","underfeed","underfoot","undergrad","underhand","underline","underling","undermine","undermost","underpaid","underpass","underrate","undertake","undertone","undertook","underwear","underwent","underwire","undesired","undiluted","undivided","undrafted","undrilled","uneatable","unelected","unengaged","unethical","unexpired","unexposed","unfailing","unfeeling","unfitting","unfixable","unfocused","unfounded","unfrosted","ungreased","unguarded","unhappily","unhealthy","unhearing","unhelpful","unhitched","uniformed","uniformly","unimpeded","uninjured","uninstall","uninsured","uninvited","unisexual","universal","unknotted","unknowing","unlearned","unleveled","unlighted","unlikable","unlimited","unlivable","unlocking","unlovable","unluckily","unmanaged","unmasking","unmatched","unmindful","unmixable","unmovable","unnamable","unnatural","unnerving","unnoticed","unopposed","unpainted","unpiloted","unplanned","unplanted","unpleased","unpledged","unpopular","unraveled","unreached","unreeling","unrefined","unrelated","unretired","unrevised","unrivaled","unroasted","unruffled","unscathed","unscented","unsecured","unselfish","unsettled","unshackle","unsheathe","unshipped","unsightly","unskilled","unspoiled","unstaffed","unstamped","unsterile","unstirred","unstopped","unstuffed","unstylish","untainted","untangled","untoasted","untouched","untracked","untrained","untreated","untrimmed","unvarying","unveiling","unvisited","unwarlike","unwatched","unwelcome","unwilling","unwitting","unwomanly","unworldly","unworried","unwrapped","unwritten","upcountry","uplifting","urologist","uselessly","vagrantly","vagueness","valuables","vaporizer","vehicular","veneering","ventricle","verbalize","vertebrae","viability","viewpoint","vindicate","violation","viscosity","vivacious","vividness","wackiness","washbasin","washboard","washcloth","washhouse","washstand","whimsical","wieldable","wikipedia","willfully","willpower","wolverine","womanhood","womankind","womanless","womanlike","worrisome","worsening","worshiper","wrongdoer","wrongness","yesterday","zestfully","zigzagged","zookeeper","zoologist","abnormal","abrasion","abrasive","abruptly","absentee","absently","absinthe","absolute","abstract","accuracy","accurate","accustom","achiness","acquaint","activate","activism","activist","activity","aeration","aerobics","affected","affluent","aflutter","agnostic","agreeing","alienate","alkaline","alkalize","almighty","alphabet","although","altitude","aluminum","amaretto","ambiance","ambition","amicably","ammonium","amniotic","amperage","amusable","anaconda","aneurism","animator","annotate","annoying","annually","anointer","anteater","antelope","antennae","antibody","antidote","antihero","antiques","antirust","anyplace","anything","anywhere","appendix","appetite","applause","approach","approval","aptitude","aqueduct","ardently","arguable","arguably","armchair","arrogant","aspirate","astonish","atlantic","atonable","attendee","attitude","atypical","audacity","audience","audition","autistic","avenging","aversion","aviation","babbling","backache","backdrop","backfire","backhand","backlash","backless","backpack","backrest","backroom","backside","backslid","backspin","backstab","backtalk","backward","backwash","backyard","bacteria","baffling","baguette","bakeshop","balsamic","banister","bankable","bankbook","banknote","bankroll","barbecue","bargraph","baritone","barrette","barstool","barterer","battered","blatancy","blighted","blinking","blissful","blizzard","bloating","bloomers","blooming","blustery","boastful","boasting","bondless","bonehead","boneless","bonelike","bootlace","borrower","botanist","bottling","bouncing","bounding","breeches","breeding","brethren","broiling","bronzing","browbeat","browsing","bruising","brunette","brussels","bubbling","buckshot","buckskin","buddhism","buddhist","bullfrog","bullhorn","bullring","bullseye","bullwhip","bunkmate","busybody","cadillac","calamari","calamity","calculus","camisole","campfire","campsite","canister","cannabis","capacity","cardigan","cardinal","careless","carmaker","carnival","cartload","cassette","casually","casualty","catacomb","catalyst","catalyze","catapult","cataract","catching","catering","catfight","cathouse","cautious","cavalier","celibacy","celibate","ceramics","ceremony","cesarean","cesspool","chaffing","champion","chaplain","charcoal","charging","charting","chastise","chastity","chatroom","chatting","cheating","chewable","childish","chirping","chitchat","chivalry","chloride","chlorine","choosing","chowtime","cilantro","cinnamon","circling","circular","citation","clambake","clanking","clapping","clarinet","clavicle","clerical","climatic","clinking","closable","clothing","clubbing","clumsily","coasting","coauthor","coeditor","cogwheel","coherent","cohesive","coleslaw","coliseum","collapse","colonial","colonist","colonize","colossal","commence","commerce","composed","composer","compound","compress","computer","conceded","conclude","concrete","condense","confetti","confider","confined","conflict","confound","confront","confused","congrats","congress","conjuror","constant","consumer","contempt","contents","contrite","cornball","cornhusk","cornmeal","coronary","corporal","corridor","cosigner","counting","covenant","coveting","coziness","crabbing","crablike","crabmeat","cradling","craftily","crawfish","crawlers","crawling","crayfish","creasing","creation","creative","creature","credible","credibly","crescent","cresting","crewless","crewmate","cringing","crisping","criteria","crumpled","cruncher","crusader","crushing","cucumber","cufflink","culinary","culpable","cultural","customer","cylinder","daffodil","daintily","dallying","dandruff","dangling","daringly","darkened","darkness","darkroom","datebook","daughter","daunting","daybreak","daydream","daylight","dazzling","deafness","debating","debtless","deceased","deceiver","december","decipher","declared","decrease","dedicate","deepness","defacing","defender","deferral","deferred","defiance","defiling","definite","deflator","deforest","degraded","degrease","dejected","delegate","deletion","delicacy","delicate","delirium","delivery","delusion","demeanor","democrat","demotion","deniable","departed","deplored","depraved","deputize","deranged","designed","designer","deskwork","desolate","destruct","detached","detector","detonate","detoxify","deviancy","deviator","devotion","devourer","devoutly","diabetes","diabetic","diabolic","diameter","dictator","diffused","diffuser","dilation","diligent","diminish","directed","directly","direness","disabled","disagree","disallow","disarray","disaster","disburse","disclose","discolor","discount","discover","disgrace","dislodge","disloyal","dismount","disorder","dispatch","dispense","displace","disposal","disprove","dissuade","distance","distaste","distinct","distract","distress","district","distrust","dividend","dividers","dividing","divinely","divinity","division","divisive","divorcee","doctrine","document","domelike","domestic","dominion","dominoes","donation","doorbell","doorknob","doornail","doorpost","doorstep","doorstop","doubling","dragging","dragster","drainage","dramatic","dreadful","dreamily","drearily","drilling","drinking","dripping","drivable","driveway","dropkick","drowsily","duckbill","duckling","ducktail","dullness","dumpling","dumpster","duration","dwelling","dynamite","dyslexia","dyslexic","earphone","earpiece","earplugs","easiness","eastward","economic","edginess","educated","educator","eggplant","eggshell","election","elective","elephant","elevator","eligible","eligibly","elliptic","eloquent","embezzle","embolism","emission","emoticon","empathic","emphases","emphasis","emphatic","employed","employee","employer","emporium","encircle","encroach","endanger","endeared","endpoint","enduring","energize","enforced","enforcer","engaging","engraved","engraver","enjoying","enlarged","enlisted","enquirer","entering","enticing","entrench","entryway","envelope","enviable","enviably","envision","epidemic","epidural","epilepsy","epilogue","epiphany","equation","erasable","escalate","escapade","escapist","escargot","espresso","esteemed","estimate","estrogen","eternity","evacuate","evaluate","everyday","everyone","evidence","excavate","exchange","exciting","existing","exorcism","exorcist","expenses","expiring","explicit","exponent","exporter","exposure","extended","exterior","external","fabulous","facebook","facedown","faceless","facelift","facility","familiar","famished","fastball","fastness","favoring","favorite","felt-tip","feminine","feminism","feminist","feminize","fernlike","ferocity","festival","fiddling","fidelity","fiftieth","figurine","filtrate","finalist","finalize","fineness","finished","finisher","fiscally","flagpole","flagship","flanking","flannels","flashily","flashing","flatfoot","flatness","flattery","flatware","flatworm","flavored","flaxseed","flogging","flounder","flypaper","follicle","fondling","fondness","football","footbath","footgear","foothill","foothold","footless","footnote","footpath","footrest","footsore","footwear","footwork","founding","fountain","fraction","fracture","fragment","fragrant","freckled","freckles","freebase","freefall","freehand","freeload","freeness","freeware","freewill","freezing","frenzied","frequent","friction","frighten","frigidly","frostily","frosting","fructose","frugally","galleria","gambling","gangrene","gatherer","gauntlet","generous","genetics","geologic","geometry","geranium","germless","gigabyte","gigantic","giggling","giveaway","glancing","glaucoma","gleaming","gloating","gloomily","glorious","glowworm","goatskin","goldfish","goldmine","goofball","gorgeous","graceful","gracious","gradient","graduate","graffiti","grafting","granddad","grandkid","grandson","granular","gratuity","greasily","greedily","greeting","grieving","grievous","grinning","groggily","grooving","grudging","grueling","grumpily","guidable","guidance","gullible","gurgling","gyration","habitant","habitual","handball","handbook","handcart","handclap","handcuff","handgrip","handheld","handling","handmade","handpick","handrail","handwash","handwork","handyman","hangnail","hangover","happiest","hardcopy","hardcore","harddisk","hardened","hardener","hardhead","hardness","hardship","hardware","hardwood","harmless","hatchery","hatching","hazelnut","haziness","headache","headband","headgear","headlamp","headless","headlock","headrest","headroom","headsman","headwear","helpless","helpline","henchman","heritage","hesitant","hesitate","hexagram","huddling","humbling","humility","humorist","humorous","humpback","hungrily","huntress","huntsman","hydrated","hydrogen","hypnoses","hypnosis","hypnotic","idealism","idealist","idealize","identify","identity","ideology","ignition","illusion","illusive","imagines","imbecile","immature","imminent","immobile","immodest","immortal","immunity","immunize","impaired","impeding","imperial","implicit","impolite","importer","imposing","impotent","imprison","improper","impurity","irrigate","irritant","irritate","islamist","isolated","jailbird","jalapeno","jaundice","jingling","jokester","jokingly","joyfully","joystick","jubilant","judicial","juggling","junction","juncture","junkyard","justness","juvenile","kangaroo","keenness","kerchief","kerosene","kilobyte","kilogram","kilowatt","kindling","kindness","kissable","knapsack","knickers","laboring","labrador","ladylike","landfall","landfill","landlady","landless","landline","landlord","landmark","landmass","landmine","landside","language","latitude","latticed","lavender","laxative","laziness","lecturer","leggings","lethargy","leverage","levitate","licorice","ligament","likeness","likewise","limpness","linguini","linguist","linoleum","litigate","luckless","lukewarm","luminous","lunchbox","luncheon","lushness","lustrous","lyricism","lyricist","macarena","macaroni","magazine","magician","magnetic","magnolia","mahogany","majestic","majority","makeover","managing","mandarin","mandolin","manicure","manpower","marathon","marbling","marigold","maritime","massager","matchbox","matching","material","maternal","maturely","maturing","maturity","maverick","maximize","mobility","mobilize","modified","moisture","molasses","molecule","molehill","monetary","monetize","mongoose","monkhood","monogamy","monogram","monopoly","monorail","monotone","monotype","monoxide","monsieur","monument","moonbeam","moonlike","moonrise","moonwalk","morality","morbidly","morphine","morphing","mortally","mortuary","mothball","motivate","mountain","mounting","mournful","mulberry","multiple","multiply","mumbling","munchkin","muscular","mushroom","mutation","national","nativity","naturist","nautical","navigate","nearness","neatness","negation","negative","negligee","neurosis","neurotic","nickname","nicotine","nineteen","nintendo","numbness","numerate","numerous","nuptials","nutrient","nutshell","obedient","obituary","obligate","oblivion","observer","obsessed","obsolete","obstacle","obstruct","occupant","occupier","ointment","olympics","omission","omnivore","oncoming","onlooker","onscreen","operable","operator","opponent","opposing","opposite","outboard","outbound","outbreak","outburst","outclass","outdated","outdoors","outfield","outflank","outgoing","outhouse","outlying","outmatch","outreach","outright","outscore","outshine","outshoot","outsider","outsmart","outtakes","outthink","outweigh","overarch","overbill","overbite","overbook","overcast","overcoat","overcome","overcook","overfeed","overfill","overflow","overfull","overhand","overhang","overhaul","overhead","overhear","overheat","overhung","overkill","overlaid","overload","overlook","overlord","overpass","overplay","overrate","override","overripe","overrule","overshot","oversold","overstay","overstep","overtake","overtime","overtone","overture","overturn","overview","oxymoron","pacifier","pacifism","pacifist","paddling","palpable","pampered","pamperer","pamphlet","pancreas","pandemic","panorama","parabola","parakeet","paralyze","parasail","parasite","parmesan","passable","passably","passcode","passerby","passover","passport","password","pastrami","paternal","patience","pavement","pavilion","paycheck","payphone","peculiar","peddling","pedicure","pedigree","pegboard","penalize","penknife","pentagon","perceive","perjurer","peroxide","petition","phrasing","placidly","platform","platinum","platonic","platypus","playable","playback","playlist","playmate","playroom","playtime","pleading","plethora","plunging","pointing","politely","popsicle","populace","populate","porridge","portable","porthole","portside","possible","possibly","postcard","pouncing","powdered","praising","prancing","prankish","preacher","preamble","precinct","predator","pregnant","premiere","premises","prenatal","preorder","pretense","previous","prideful","princess","pristine","probable","probably","proclaim","procurer","prodigal","profound","progress","prologue","promoter","prompter","promptly","proofing","properly","property","proposal","protegee","protract","protrude","provable","provided","provider","province","prowling","punctual","punisher","purchase","purebred","pureness","purifier","purplish","pursuant","purveyor","pushcart","pushover","puzzling","quadrant","quaintly","quarters","quotable","radiance","radiated","radiator","railroad","rambling","reabsorb","reaction","reactive","reaffirm","reappear","rearview","reassign","reassure","reattach","reburial","rebuttal","reckless","recliner","recovery","recreate","recycled","recycler","reemerge","refinery","refining","refinish","reforest","reformat","reformed","reformer","refreeze","refusing","register","registry","regulate","rekindle","relation","relative","reliable","reliably","reliance","relocate","remedial","remember","reminder","removing","renderer","renegade","renounce","renovate","rentable","reoccupy","repaying","repeated","repeater","rephrase","reporter","reproach","resample","research","reselect","reseller","resemble","resident","residual","resigned","resolute","resolved","resonant","resonate","resource","resubmit","resupply","retainer","retiring","retorted","reusable","reverend","reversal","revision","reviving","revolver","richness","riddance","ripeness","ripening","rippling","riverbed","riveting","robotics","rockband","rockfish","rocklike","rockstar","roulette","rounding","roundish","rumbling","sabotage","saddling","safeness","salaried","salutary","sampling","sanction","sanctity","sandbank","sandfish","sandworm","sanitary","satiable","saturate","saturday","scalding","scallion","scalping","scanning","scarcity","scarring","schedule","scheming","schnapps","scolding","scorpion","scouring","scouting","scowling","scrabble","scraggly","scribble","scribing","scrubbed","scrubber","scrutiny","sculptor","secluded","securely","security","sedation","sedative","sediment","seducing","selected","selector","semantic","semester","semisoft","senorita","sensuous","sequence","serrated","sessions","settling","severity","shakable","shamrock","shelving","shifting","shoplift","shopping","shoptalk","shortage","shortcut","showcase","showdown","showgirl","showroom","shrapnel","shredder","shrewdly","shrouded","shucking","siberian","silenced","silencer","simplify","singular","sinister","situated","sixtieth","sizzling","skeletal","skeleton","skillful","skimming","skimpily","skincare","skinhead","skinless","skinning","skipping","skirmish","skydiver","skylight","slacking","slapping","slashing","slighted","slightly","slimness","slinging","slobbery","sloppily","smashing","smelting","smuggler","smugness","sneezing","snipping","snowbird","snowdrop","snowfall","snowless","snowplow","snowshoe","snowsuit","snugness","spearman","specimen","speckled","spectrum","spelling","spending","spinning","spinster","spirited","splashed","splatter","splendid","splendor","splicing","splinter","splotchy","spoilage","spoiling","spookily","sporting","spotless","spotting","spyglass","squabble","squander","squatted","squatter","squealer","squeegee","squiggle","squiggly","stagnant","stagnate","staining","stalling","stallion","stapling","stardust","starfish","starless","starring","starship","starting","starving","steadier","steadily","steering","sterling","stifling","stimulus","stingily","stinging","stingray","stinking","stoppage","stopping","storable","stowaway","straddle","strained","strainer","stranger","strangle","strategy","strength","stricken","striking","striving","stroller","strongly","struggle","stubborn","stuffing","stunning","sturdily","stylized","subduing","subfloor","subgroup","sublease","sublevel","submerge","subpanel","subprime","subsonic","subtitle","subtotal","subtract","sufferer","suffrage","suitable","suitably","suitcase","sulphate","superior","superjet","superman","supermom","supplier","sureness","surgical","surprise","surround","survival","survivor","suspense","swapping","swimming","swimsuit","swimwear","swinging","sycamore","sympathy","symphony","syndrome","synopses","synopsis","tableful","tackling","tactical","tactless","talisman","tameness","tapeless","tapering","tapestry","tartness","tattered","tattling","theology","theorize","thespian","thieving","thievish","thinness","thinning","thirteen","thousand","threaten","thriving","throttle","throwing","thumping","thursday","tidiness","tightwad","tingling","tinkling","tinsmith","traction","trailing","tranquil","transfer","trapdoor","trapping","traverse","travesty","treading","trespass","triangle","tribunal","trickery","trickily","tricking","tricolor","tricycle","trillion","trimming","trimness","tripping","trolling","trombone","tropical","trousers","trustful","trusting","tubeless","tumbling","turbofan","turbojet","tweezers","twilight","twisting","ultimate","umbrella","unafraid","unbeaten","unbiased","unbitten","unbolted","unbridle","unbroken","unbundle","unburned","unbutton","uncapped","uncaring","uncoated","uncoiled","uncombed","uncommon","uncooked","uncouple","uncurled","underage","underarm","undercut","underdog","underfed","underpay","undertow","underuse","undocked","undusted","unearned","uneasily","unedited","unending","unenvied","unfasten","unfilled","unfitted","unflawed","unframed","unfreeze","unfrozen","unfunded","unglazed","ungloved","ungraded","unguided","unharmed","unheated","unhidden","unicycle","uniquely","unissued","universe","unjustly","unlawful","unleaded","unlinked","unlisted","unloaded","unloader","unlocked","unlovely","unloving","unmanned","unmapped","unmarked","unmasked","unmolded","unmoving","unneeded","unopened","unpadded","unpaired","unpeeled","unpicked","unpinned","unplowed","unproven","unranked","unrented","unrigged","unrushed","unsaddle","unsalted","unsavory","unsealed","unseated","unseeing","unseemly","unselect","unshaken","unshaved","unshaven","unsigned","unsliced","unsmooth","unsocial","unsoiled","unsolved","unsorted","unspoken","unstable","unsteady","unstitch","unsubtle","unsubtly","unsuited","untagged","untapped","unthawed","unthread","untimely","untitled","unturned","unusable","unvalued","unvaried","unveiled","unvented","unviable","unwanted","unwashed","unwieldy","unworthy","upcoming","upheaval","uplifted","uprising","upstairs","upstream","upstroke","upturned","urethane","vacation","vagabond","vagrancy","vanquish","variable","variably","vascular","vaseline","vastness","velocity","vendetta","vengeful","venomous","verbally","vertical","vexingly","vicinity","viewable","viewless","vigorous","vineyard","violator","virtuous","viselike","visiting","vitality","vitalize","vitamins","vocalist","vocalize","vocation","volatile","washable","washbowl","washroom","waviness","whacking","whenever","whisking","whomever","whooping","wildcard","wildfire","wildfowl","wildland","wildlife","wildness","winnings","wireless","wisplike","wobbling","wreckage","wrecking","wrongful","yearbook","yearling","yearning","zeppelin","abdomen","abiding","ability","abreast","abridge","absence","absolve","abstain","acclaim","account","acetone","acquire","acrobat","acronym","actress","acutely","aerosol","affront","ageless","agility","agonize","aground","alfalfa","algebra","almanac","alright","amenity","amiable","ammonia","amnesty","amplify","amusing","anagram","anatomy","anchovy","ancient","android","angelic","angling","angrily","angular","animate","annuity","another","antacid","anthill","antonym","anybody","anymore","anytime","apostle","appease","applaud","applied","approve","apricot","armband","armhole","armless","armoire","armored","armrest","arousal","arrange","arrival","ashamed","aspirin","astound","astride","atrophy","attempt","auction","audible","audibly","average","aviator","awkward","backing","backlit","backlog","badland","badness","baggage","bagging","bagpipe","balance","balcony","banking","banshee","barbell","barcode","barista","barmaid","barrack","barrier","battery","batting","bazooka","blabber","bladder","blaming","blazing","blemish","blinked","blinker","bloated","blooper","blubber","blurred","boaster","bobbing","bobsled","bobtail","bolster","bonanza","bonding","bonfire","booting","bootleg","borough","boxlike","breeder","brewery","brewing","bridged","brigade","brisket","briskly","bristle","brittle","broaden","broadly","broiler","brought","budding","buffalo","buffing","buffoon","bulldog","bullion","bullish","bullpen","bunkbed","busload","cabbage","caboose","cadmium","cahoots","calcium","caliber","caloric","calorie","calzone","camping","candied","canning","canteen","capable","capably","capital","capitol","capsize","capsule","caption","captive","capture","caramel","caravan","cardiac","carless","carload","carnage","carpool","carport","carried","cartoon","carving","carwash","cascade","catalog","catcall","catcher","caterer","catfish","catlike","cattail","catwalk","causing","caution","cavalry","certify","chalice","chamber","channel","chapped","chapter","charger","chariot","charity","charred","charter","chasing","chatter","cheddar","chemist","chevron","chewing","choking","chooser","chowder","citable","citadel","citizen","clapped","clapper","clarify","clarity","clatter","cleaver","clicker","climate","clobber","cloning","closure","clothes","clubbed","clutter","coastal","coaster","cobbler","coconut","coexist","collage","collide","comfort","commend","comment","commode","commute","company","compare","compile","compost","comrade","concave","conceal","concept","concert","concise","condone","conduit","confess","confirm","conform","conical","conjure","consent","console","consult","contact","contend","contest","context","contort","contour","control","convene","convent","copilot","copious","corncob","coroner","correct","corrode","corsage","cottage","country","courier","coveted","coyness","crafter","cranial","cranium","craving","crazily","creamed","creamer","crested","crevice","crewman","cricket","crimson","crinkle","crinkly","crisped","crisply","critter","crouton","crowbar","crucial","crudely","cruelly","cruelty","crumpet","crunchy","crushed","crusher","cryptic","crystal","cubical","cubicle","culprit","culture","cupcake","cupping","curable","curator","curling","cursive","curtain","custard","custody","customs","cycling","cyclist","dancing","darkish","darling","dawdler","daycare","daylong","dayroom","daytime","dazzler","dealing","debrief","decency","decibel","decimal","decline","default","defense","defiant","deflate","defraud","defrost","delouse","density","dentist","denture","deplete","depress","deprive","derived","deserve","desktop","despair","despise","despite","destiny","detract","devalue","deviant","deviate","devious","devotee","diagram","dictate","dimness","dingbat","diocese","dioxide","diploma","dipping","disband","discard","discern","discuss","disdain","disjoin","dislike","dismiss","disobey","display","dispose","dispute","disrupt","distant","distill","distort","divided","dolphin","donated","donator","doorman","doormat","doorway","drained","drainer","drapery","drastic","dreaded","dribble","driller","driving","drizzle","drizzly","dropbox","droplet","dropout","dropper","duchess","ducking","dumping","durable","durably","dutiful","dwelled","dweller","dwindle","dynamic","dynasty","earache","eardrum","earflap","earlobe","earmark","earmuff","earring","earshot","earthen","earthly","easeful","easiest","eatable","eclipse","ecology","economy","edition","effects","egotism","elastic","elderly","elevate","elitism","ellipse","elusive","embargo","embassy","emblaze","emerald","emotion","empathy","emperor","empower","emptier","enclose","encrust","encrypt","endless","endnote","endorse","engaged","engorge","engross","enhance","enjoyer","enslave","ensnare","entitle","entrust","entwine","envious","episode","equator","equinox","erasure","erratic","esquire","essence","etching","eternal","ethanol","evacuee","evasion","evasive","evident","exalted","example","exclaim","exclude","exhaust","expanse","explain","explode","exploit","explore","express","extinct","extrude","faceted","faction","factoid","factual","faculty","failing","falsify","fanatic","fancied","fanfare","fanning","fantasy","fascism","fasting","favored","federal","fencing","ferment","festive","fiction","fidgety","fifteen","figment","filling","finally","finance","finicky","finless","finlike","flaccid","flagman","flakily","flanked","flaring","flatbed","flatten","flattop","fleshed","florist","flyable","flyaway","flyover","footage","footing","footman","footpad","footsie","founder","fragile","framing","frantic","fraying","freebee","freebie","freedom","freeing","freeway","freight","fretful","fretted","frisbee","fritter","frosted","gaining","gallery","gallows","gangway","garbage","garland","garment","garnish","gauging","generic","gentile","geology","gestate","gesture","getaway","getting","giddily","gimmick","gizzard","glacial","glacier","glamour","glaring","glazing","gleeful","gliding","glimmer","glimpse","glisten","glitter","gloater","glorify","glowing","glucose","glutton","goggles","goliath","gondola","gosling","grading","grafted","grandly","grandma","grandpa","granite","granola","grapple","gratify","grating","gravity","grazing","greeter","grimace","gristle","grouped","growing","gruffly","grumble","grumbly","guiding","gumball","gumdrop","gumming","gutless","guzzler","habitat","hacking","hacksaw","haggler","halogen","hammock","hamster","handbag","handful","handgun","handled","handler","handoff","handsaw","handset","hangout","happier","happily","hardhat","harmful","harmony","harness","harpist","harvest","hastily","hatchet","hatless","heading","headset","headway","heavily","heaving","hedging","helpful","helping","hemlock","heroics","heroism","herring","herself","hexagon","humming","hunting","hurling","hurried","husband","hydrant","iciness","ideally","imaging","imitate","immerse","impeach","implant","implode","impound","imprint","improve","impulse","islamic","isotope","issuing","italics","jackpot","janitor","january","jarring","jasmine","jawless","jawline","jaybird","jellied","jitters","jittery","jogging","joining","joyride","jugular","jujitsu","jukebox","juniper","junkman","justice","justify","karaoke","kindred","kinetic","kinfolk","kinship","kinsman","kissing","kitchen","kleenex","krypton","labored","laborer","ladybug","lagging","landing","lantern","lapping","latrine","launder","laundry","legible","legibly","legroom","legwork","leotard","letdown","lettuce","liberty","library","licking","lifting","liftoff","limeade","limping","linseed","liquefy","liqueur","livable","lividly","luckily","lullaby","lumping","lumpish","lustily","machine","magenta","magical","magnify","majesty","mammary","manager","manatee","mandate","manhole","manhood","manhunt","mankind","manlike","manmade","mannish","marbled","marbles","marital","married","marxism","mashing","massive","mastiff","matador","matcher","maximum","moaning","mobster","modular","moisten","mollusk","mongrel","monitor","monsoon","monthly","moocher","moonlit","morally","mortify","mounted","mourner","movable","mullets","mummify","mundane","mushily","mustang","mustard","mutable","myspace","mystify","napping","nastily","natural","nearest","nemeses","nemesis","nervous","neutron","nuclear","nucleus","nullify","numbing","numeral","numeric","nursery","nursing","nurture","nutcase","nutlike","obliged","obscure","obvious","octagon","october","octopus","ominous","onboard","ongoing","onshore","onstage","opacity","operate","opossum","osmosis","outback","outcast","outcome","outgrow","outlast","outline","outlook","outmost","outpost","outpour","outrage","outrank","outsell","outward","overact","overall","overbid","overdue","overfed","overlap","overlay","overpay","overrun","overtly","overuse","oxidant","oxidize","pacific","padding","padlock","pajamas","pampers","pancake","panning","panther","paprika","papyrus","paradox","parched","parking","parkway","parsley","parsnip","partake","parting","partner","passage","passing","passion","passive","pastime","pasture","patient","patriot","payable","payback","payment","payroll","pelican","penalty","pendant","pending","pennant","pension","percent","perfume","perjury","petunia","phantom","phoenix","phonics","placard","placate","planner","plaster","plastic","plating","platter","playful","playing","playoff","playpen","playset","pliable","plunder","plywood","pointed","pointer","polygon","polymer","popcorn","popular","portion","postage","postbox","posting","posture","postwar","pouring","powdery","pranker","praying","preachy","precise","precook","predict","preface","pregame","prelude","premium","prepaid","preplan","preshow","presoak","presume","preteen","pretext","pretzel","prevail","prevent","preview","primary","primate","privacy","private","probing","problem","process","prodigy","produce","product","profane","profile","progeny","program","propose","prorate","proving","provoke","prowess","prowler","pruning","psychic","pulsate","pungent","purging","puritan","pursuit","pushing","pushpin","putdown","pyramid","quaking","qualify","quality","quantum","quarrel","quartet","quicken","quickly","quintet","ragweed","railcar","railing","railway","ranging","ranking","ransack","ranting","rasping","ravioli","reactor","reapply","reawake","rebirth","rebound","rebuild","rebuilt","recital","reclaim","recluse","recolor","recount","rectify","reenact","reenter","reentry","referee","refined","refocus","refract","refrain","refresh","refried","refusal","regalia","regally","regress","regroup","regular","reissue","rejoice","relapse","related","relearn","release","reliant","relieve","relight","remarry","rematch","remnant","remorse","removal","removed","remover","renewal","renewed","reoccur","reorder","repaint","replace","replica","reprint","reprise","reptile","request","require","reroute","rescuer","reshape","reshoot","residue","respect","rethink","retinal","retired","retiree","retouch","retrace","retract","retrain","retread","retreat","retrial","retying","reunion","reunite","reveler","revenge","revenue","revered","reverse","revisit","revival","reviver","rewrite","ribcage","rickety","ricotta","rifling","rigging","rimless","rinsing","ripcord","ripping","riptide","risotto","ritalin","riveter","roaming","robbing","rocking","rotting","rotunda","roundup","routine","routing","rubbing","rubdown","rummage","rundown","running","rupture","sabbath","saddled","sadness","saffron","sagging","salvage","sandbag","sandbar","sandbox","sanding","sandlot","sandpit","sapling","sarcasm","sardine","satchel","satisfy","savanna","savings","scabbed","scalded","scaling","scallop","scandal","scanner","scarily","scholar","science","scooter","scoring","scoured","scratch","scrawny","scrooge","scruffy","scrunch","scuttle","secrecy","secular","segment","seismic","seizing","seltzer","seminar","senator","serpent","service","serving","setback","setting","seventh","seventy","shadily","shading","shakily","shaking","shallot","shallow","shampoo","shaping","sharper","sharpie","sharply","shelter","shifter","shimmer","shindig","shingle","shining","shopper","shorten","shorter","shortly","showbiz","showing","showman","showoff","shrivel","shudder","shuffle","siamese","sibling","sighing","silicon","sincere","singing","sinless","sinuous","sitting","sixfold","sixteen","sixties","sizable","sizably","skating","skeptic","skilled","skillet","skimmed","skimmer","skipper","skittle","skyline","skyward","slacked","slacker","slander","slashed","slather","slicing","sliding","sloping","slouchy","smartly","smasher","smashup","smitten","smoking","smolder","smother","snagged","snaking","snippet","snooper","snoring","snorkel","snowcap","snowman","snuggle","species","specked","speller","spender","spinach","spindle","spinner","spinout","spirits","splashy","splurge","spoiled","spoiler","sponsor","spotted","spotter","spousal","sputter","squeeze","squishy","stadium","staging","stained","stamina","stammer","stardom","staring","starlet","starlit","starter","startle","startup","starved","stature","statute","staunch","stellar","stencil","sterile","sternum","stiffen","stiffly","stimuli","stinger","stipend","stoning","stopped","stopper","storage","stowing","stratus","stretch","strudel","stubbed","stubble","stubbly","student","studied","stuffed","stumble","stunned","stunner","styling","stylist","subdued","subject","sublime","subplot","subside","subsidy","subsoil","subtext","subtype","subzero","suction","suffice","suggest","sulfate","sulfide","sulfite","support","supreme","surface","surgery","surging","surname","surpass","surplus","surreal","survive","suspect","suspend","swagger","swifter","swiftly","swimmer","swinger","swizzle","swooned","symptom","synapse","synergy","t-shirt","tabasco","tabloid","tacking","tactful","tactics","tactile","tadpole","tainted","tannery","tanning","tantrum","tapered","tapioca","tapping","tarnish","tasting","theater","thermal","thermos","thicken","thicket","thimble","thinner","thirsty","thrower","thyself","tidings","tighten","tightly","tigress","timothy","tinfoil","tinwork","tipping","tracing","tractor","trading","traffic","tragedy","traitor","trapeze","trapped","trapper","treason","trekker","tremble","tribune","tribute","triceps","trickle","trident","trilogy","trimmer","trinity","triumph","trivial","trodden","tropics","trouble","truffle","trustee","tubular","tucking","tuesday","tuition","turbine","turmoil","twiddle","twisted","twister","twitter","unaired","unawake","unaware","unbaked","unblock","unboxed","uncanny","unchain","uncheck","uncivil","unclasp","uncloak","uncouth","uncover","uncross","uncrown","uncured","undated","undergo","undoing","undress","undying","unearth","uneaten","unequal","unfazed","unfiled","unfixed","ungodly","unhappy","unheard","unhinge","unicorn","unified","unifier","unkempt","unknown","unlaced","unlatch","unleash","unlined","unloved","unlucky","unmixed","unmoral","unmoved","unnamed","unnerve","unpaved","unquote","unrated","unrobed","unsaved","unscrew","unstuck","unsworn","untaken","untamed","untaxed","untimed","untried","untruth","untwist","untying","unusual","unvocal","unweave","unwired","unwound","unwoven","upchuck","upfront","upgrade","upright","upriver","upscale","upstage","upstart","upstate","upswing","uptight","uranium","urgency","urology","useable","utensil","utility","utilize","vacancy","vaguely","valiant","vanilla","vantage","variety","various","varmint","varnish","varsity","varying","vending","venture","verbose","verdict","version","vertigo","veteran","victory","viewing","village","villain","vintage","violate","virtual","viscous","visible","visibly","visitor","vitally","vividly","vocally","voicing","voltage","volumes","voucher","walmart","wannabe","wanting","washday","washing","washout","washtub","wasting","whoever","whoopee","wielder","wildcat","willing","wincing","winking","wistful","womanly","worried","worrier","wrangle","wrecker","wriggle","wriggly","wrinkle","wrinkly","writing","written","wronged","wrongly","wrought","yanking","yapping","yelling","yiddish","zealous","zipfile","zipping","zoology","abacus","ablaze","abroad","absurd","accent","aching","acting","action","active","affair","affirm","afford","aflame","afloat","afraid","agency","agenda","aghast","agreed","aliens","almost","alumni","always","ambush","amends","amount","amulet","amused","amuser","anchor","anemia","anemic","angled","angler","angles","animal","anthem","antics","antler","anyhow","anyone","anyway","apache","appear","armful","arming","armory","around","arrest","arrive","ascend","ascent","asleep","aspect","aspire","astute","atrium","attach","attain","attest","attire","august","author","autism","avatar","avenge","avenue","awaken","awhile","awning","babble","babied","baboon","backed","backer","backup","badass","baffle","bagful","bagged","baggie","bakery","baking","bamboo","banana","banish","banked","banker","banner","banter","barbed","barber","barley","barman","barrel","basics","basket","batboy","battle","bauble","blazer","bleach","blinks","blouse","bluish","blurry","bobbed","bobble","bobcat","bogged","boggle","bonded","bonnet","bonsai","booted","bootie","boring","botany","bottle","bottom","bounce","bouncy","bovine","boxcar","boxing","breach","breath","breeze","breezy","bright","broken","broker","bronco","bronze","browse","brunch","bubble","bubbly","bucked","bucket","buckle","budget","buffed","buffer","bulgur","bundle","bungee","bunion","busboy","busily","cabana","cabbie","cackle","cactus","caddie","camera","camper","campus","canary","cancel","candle","canine","canned","cannon","cannot","canola","canopy","canyon","capped","carbon","carded","caress","caring","carrot","cartel","carton","casing","casino","casket","catchy","catnap","catnip","catsup","cattle","caucus","causal","caviar","cavity","celery","celtic","cement","census","chance","change","chaste","chatty","cheese","cheesy","cherub","chewer","chirpy","choice","choosy","chosen","chrome","chubby","chummy","cinema","circle","circus","citric","citrus","clammy","clamor","clause","clench","clever","client","clinic","clique","clover","clumsy","clunky","clutch","cobalt","cobweb","coerce","coffee","collar","collie","colony","coming","common","compel","comply","concur","copied","copier","coping","copper","cornea","corned","corner","corral","corset","cortex","cosmic","cosmos","cotton","county","cozily","cradle","crafty","crayon","crazed","crease","create","credit","creole","cringe","crispy","crouch","crummy","crying","cuddle","cuddly","cupped","curdle","curfew","curing","curled","curler","cursor","curtly","curtsy","cussed","cyclic","cymbal","dagger","dainty","dander","danger","dangle","dating","daybed","deacon","dealer","debate","debtor","debunk","decade","deceit","decent","decode","decree","deduce","deduct","deepen","deeply","deface","defame","defeat","defile","define","deftly","defuse","degree","delete","deluge","deluxe","demise","demote","denial","denote","dental","depict","deploy","deport","depose","deputy","derail","detail","detest","device","diaper","dicing","dilute","dimmed","dimmer","dimple","dinghy","dining","dinner","dipped","dipper","disarm","dismay","disown","diving","doable","docile","dollar","dollop","domain","doodle","dorsal","dosage","dotted","douche","dreamt","dreamy","dreary","drench","drippy","driven","driver","drudge","dubbed","duffel","dugout","duller","duplex","duress","during","earful","earthy","earwig","easily","easing","easter","eatery","eating","eclair","edging","editor","effort","egging","eggnog","either","elated","eldest","eleven","elixir","embark","emblem","embody","emboss","enable","enamel","encode","encore","ending","energy","engine","engulf","enrage","enrich","enroll","ensure","entail","entire","entity","entomb","entrap","entree","enzyme","equate","equity","erased","eraser","errand","errant","eskimo","estate","ethics","evolve","excess","excuse","exhale","exhume","exodus","expand","expend","expert","expire","expose","extent","extras","fabric","facial","facing","factor","fading","falcon","family","famine","faster","faucet","fedora","feeble","feisty","feline","fender","ferret","ferris","fervor","fester","fiddle","figure","filing","filled","filler","filter","finale","finite","flashy","flatly","fleshy","flight","flinch","floral","flying","follow","fondly","fondue","footer","fossil","foster","frayed","freely","french","frenzy","friday","fridge","friend","fringe","frolic","frosty","frozen","frying","galley","gallon","galore","gaming","gander","gangly","garage","garden","gargle","garlic","garnet","garter","gating","gazing","geiger","gender","gently","gerbil","giblet","giggle","giggly","gigolo","gilled","girdle","giving","gladly","glance","glider","glitch","glitzy","gloomy","gluten","gnarly","google","gopher","gorged","gossip","gothic","gotten","graded","grader","granny","gravel","graves","greedy","grinch","groggy","groove","groovy","ground","grower","grudge","grunge","gurgle","gutter","hacked","hacker","halved","halves","hamlet","hamper","handed","hangup","hankie","harbor","hardly","hassle","hatbox","hatred","hazard","hazily","hazing","headed","header","helium","helmet","helper","herald","herbal","hermit","hubcap","huddle","humble","humbly","hummus","humped","humvee","hunger","hungry","hunter","hurdle","hurled","hurler","hurray","husked","hybrid","hyphen","idiocy","ignore","iguana","impale","impart","impish","impose","impure","iodine","iodize","iphone","itunes","jackal","jacket","jailer","jargon","jersey","jester","jigsaw","jingle","jockey","jogger","jovial","joyous","juggle","jumble","junior","junkie","jurist","justly","karate","keenly","kennel","kettle","kimono","kindle","kindly","kisser","kitten","kosher","ladder","ladies","lagged","lagoon","landed","lapdog","lapped","laptop","lather","latter","launch","laurel","lavish","lazily","legacy","legend","legged","legume","length","lesser","letter","levers","liable","lifter","likely","liking","lining","linked","liquid","litmus","litter","little","lively","living","lizard","lugged","lumber","lunacy","lushly","luster","luxury","lyrics","maggot","maimed","making","mammal","manger","mangle","manila","manned","mantis","mantra","manual","margin","marina","marine","marlin","maroon","marrow","marshy","mascot","mashed","masses","mating","matrix","matron","matted","matter","mayday","moaner","mobile","mocker","mockup","modify","module","monday","mooing","mooned","morale","mosaic","motion","motive","moving","mowing","mulled","mumble","muppet","museum","musket","muster","mutate","mutiny","mutual","muzzle","myself","naming","napkin","napped","narrow","native","nature","nearby","nearly","neatly","nebula","nectar","negate","nephew","neuron","neuter","nibble","nimble","nimbly","nuclei","nugget","number","numbly","nutmeg","nuzzle","object","oblong","obtain","obtuse","occupy","ocelot","octane","online","onward","oppose","outage","outbid","outfit","outing","outlet","output","outwit","oxford","oxygen","oyster","pacify","padded","paddle","paging","palace","paltry","panama","pantry","papaya","parade","parcel","pardon","parish","parlor","parole","parrot","parted","partly","pasted","pastel","pastor","patchy","patrol","pauper","paving","pawing","payday","paying","pebble","pebbly","pectin","pellet","pelvis","pencil","penpal","perish","pester","petite","petted","phobia","phoney","phrase","plasma","plated","player","pledge","plenty","plural","pointy","poison","poking","police","policy","polish","poncho","poplar","popper","porous","portal","portly","posing","possum","postal","posted","poster","pounce","powwow","prance","prayer","precut","prefix","prelaw","prepay","preppy","preset","pretty","prewar","primal","primer","prison","prissy","pronto","proofs","proton","proved","proven","prozac","public","pucker","pueblo","pumice","pummel","puppet","purely","purify","purist","purity","purple","pusher","pushup","puzzle","python","quarry","quench","quiver","racing","racism","racoon","radial","radish","raffle","ragged","raging","raider","raisin","raking","ramble","ramrod","random","ranged","ranger","ranked","rarity","rascal","ravage","ravine","raving","reason","rebate","reboot","reborn","rebuff","recall","recant","recast","recede","recent","recess","recite","recoil","recopy","record","recoup","rectal","refill","reflex","reflux","refold","refund","refuse","refute","regain","reggae","regime","region","reheat","rehire","rejoin","relish","relive","reload","relock","remake","remark","remedy","remold","remote","rename","rental","rented","renter","reopen","repair","repave","repeal","repent","replay","repose","repost","resale","reseal","resend","resent","resize","resort","result","resume","retail","retake","retold","retool","return","retype","reveal","reverb","revert","revise","revoke","revolt","reward","rewash","rewind","rewire","reword","rework","rewrap","ribbon","riches","richly","ridden","riding","rimmed","ripple","rising","roamer","robust","rocker","rocket","roping","roster","rotten","roving","rubbed","rubber","rubble","ruckus","rudder","ruined","rumble","runner","runway","sacred","sadden","safari","safely","salami","salary","saline","saloon","salute","sample","sandal","sanded","savage","savior","scabby","scarce","scared","scenic","scheme","scorch","scored","scorer","scotch","scouts","screen","scribe","script","scroll","scurvy","second","secret","sector","sedate","seduce","seldom","senate","senior","septic","septum","sequel","series","sermon","sesame","settle","shabby","shaded","shadow","shanty","sheath","shelve","sherry","shield","shifty","shimmy","shorts","shorty","shower","shrank","shriek","shrill","shrimp","shrine","shrink","shrubs","shrunk","siding","sierra","siesta","silent","silica","silver","simile","simple","simply","singer","single","sinner","sister","sitcom","sitter","sizing","sizzle","skater","sketch","skewed","skewer","skiing","skinny","slacks","sleeve","sliced","slicer","slider","slinky","sliver","slogan","sloped","sloppy","sludge","smoked","smooth","smudge","smudgy","smugly","snazzy","sneeze","snitch","snooze","snugly","specks","speech","sphere","sphinx","spider","spiffy","spinal","spiral","spleen","splice","spoils","spoken","sponge","spongy","spooky","sports","sporty","spotty","spouse","sprain","sprang","sprawl","spring","sprint","sprite","sprout","spruce","sprung","squall","squash","squeak","squint","squire","squirt","stable","staple","starch","starry","static","statue","status","stench","stereo","stifle","stingy","stinky","stitch","stooge","streak","stream","street","stress","strewn","strict","stride","strife","strike","strive","strobe","strode","struck","strung","stucco","studio","stuffy","stupor","sturdy","stylus","sublet","subpar","subtly","suburb","subway","sudden","sudoku","suffix","suitor","sulfur","sullen","sultry","supper","supply","surely","surfer","survey","swerve","switch","swivel","swoosh","system","tables","tablet","tackle","taking","talcum","tamale","tamper","tanned","target","tarmac","tartar","tartly","tassel","tattle","tattoo","tavern","thesis","thinly","thirty","thrash","thread","thrift","thrill","thrive","throat","throng","tidbit","tiling","timing","tingle","tingly","tinker","tinsel","tipoff","tipped","tipper","tiptop","tiring","tissue","trance","travel","treble","tremor","trench","triage","tricky","trifle","tripod","trophy","trough","trowel","trunks","tumble","turban","turkey","turret","turtle","twelve","twenty","twisty","twitch","tycoon","umpire","unable","unbend","unbent","unclad","unclip","unclog","uncork","undead","undone","unease","uneasy","uneven","unfair","unfold","unglue","unholy","unhook","unison","unkind","unless","unmade","unpack","unpaid","unplug","unread","unreal","unrest","unripe","unroll","unruly","unsafe","unsaid","unseen","unsent","unsnap","unsold","unsure","untidy","untold","untrue","unused","unwary","unwell","unwind","unworn","upbeat","update","upheld","uphill","uphold","upload","uproar","uproot","upside","uptake","uptown","upward","upwind","urchin","urgent","urging","usable","utmost","utopia","vacant","vacate","valium","valley","vanish","vanity","varied","vastly","veggie","velcro","velvet","vendor","verify","versus","vessel","viable","viewer","violet","violin","vision","volley","voting","voyage","waffle","waggle","waking","walnut","walrus","wanted","wasabi","washed","washer","waving","whacky","whinny","whoops","widely","widget","wilder","wildly","willed","willow","winner","winter","wiring","wisdom","wizard","wobble","wobbly","wooing","wreath","wrench","yearly","yippee","yogurt","yonder","zodiac","zombie","zoning","abide","acorn","affix","afoot","agent","agile","aging","agony","ahead","alarm","album","alias","alibi","alike","alive","aloft","aloha","alone","aloof","amaze","amber","amigo","amino","amiss","among","ample","amply","amuck","anger","anime","ankle","annex","antsy","anvil","aorta","apple","apply","april","apron","aptly","arena","argue","arise","armed","aroma","arose","array","arson","ashen","ashes","aside","askew","atlas","attic","audio","avert","avoid","await","award","aware","awoke","bacon","badge","badly","bagel","baggy","baked","balmy","banjo","barge","basil","basin","basis","batch","baton","blade","blame","blank","blast","bleak","bleep","blend","bless","blimp","bling","blitz","bluff","blunt","blurb","blurt","blush","bogus","boned","boney","bonus","booth","boots","boozy","borax","botch","boxer","briar","bribe","brick","bride","bring","brink","brook","broom","brunt","brush","brute","buddy","buggy","bulge","bully","bunch","bunny","cable","cache","cacti","caddy","cadet","cameo","canal","candy","canon","carat","cargo","carol","carry","carve","catty","cause","cedar","chafe","chain","chair","chant","chaos","chaps","charm","chase","cheek","cheer","chemo","chess","chest","chevy","chewy","chief","chili","chill","chimp","chive","chomp","chuck","chump","chunk","churn","chute","cider","cinch","civic","civil","claim","clamp","clang","clash","clasp","class","clean","clear","cleat","cleft","clerk","cling","cloak","clock","clone","cloud","clump","coach","cocoa","comfy","comic","comma","conch","coral","corny","couch","cough","could","cover","cramp","crane","crank","crate","crave","crazy","creed","creme","crepe","crept","cried","crier","crimp","croak","crock","crook","croon","cross","crowd","crown","crumb","crust","cupid","curly","curry","curse","curve","curvy","cushy","cycle","daily","dairy","daisy","dance","dandy","dares","dealt","debit","debug","decaf","decal","decay","decoy","defog","deity","delay","delta","denim","dense","depth","derby","deuce","diary","dimly","diner","dingo","dingy","ditch","ditto","ditzy","dizzy","dodge","dodgy","doily","doing","dolly","donor","donut","doozy","dowry","drank","dress","dried","drier","drift","drone","drool","droop","drove","drown","ducky","duvet","dwarf","dweeb","eagle","early","easel","eaten","ebony","ebook","ecard","eject","elbow","elite","elope","elude","elves","email","ember","emcee","emote","empty","ended","envoy","equal","error","erupt","essay","ether","evade","evict","evoke","exact","exert","exile","expel","fable","false","fancy","feast","femur","fence","ferry","fetal","fetch","fever","fiber","fifth","fifty","filth","finch","finer","flail","flaky","flame","flask","flick","flier","fling","flint","flirt","float","flock","floss","flyer","folic","foyer","frail","frame","frays","fresh","fried","frill","frisk","front","froth","frown","fruit","gaffe","gains","gamma","gauze","gecko","genre","gents","getup","giant","giddy","gills","given","giver","gizmo","glade","glare","glass","glory","gloss","glove","going","gonad","gooey","goofy","grain","grant","grape","graph","grasp","grass","gravy","green","grief","grill","grime","grimy","groin","groom","grope","grout","grove","growl","grunt","guide","guise","gully","gummy","gusto","gusty","haiku","hanky","happy","hardy","harsh","haste","hasty","haunt","haven","heave","hedge","hefty","hence","henna","herbs","hertz","human","humid","hurry","icing","idiom","igloo","image","imply","irate","issue","ivory","jaunt","jawed","jelly","jiffy","jimmy","jolly","judge","juice","juicy","jumbo","juror","kabob","karma","kebab","kitty","knelt","knoll","koala","kooky","kudos","ladle","lance","lanky","lapel","large","lasso","latch","legal","lemon","level","lilac","lilly","limes","limit","lingo","lived","liver","lucid","lunar","lurch","lusty","lying","macaw","magma","maker","mango","mangy","manly","manor","march","mardi","marry","mauve","maybe","mocha","molar","moody","morse","mossy","motor","motto","mouse","mousy","mouth","movie","mower","mulch","mumbo","mummy","mumps","mural","murky","mushy","music","musky","musty","nacho","nanny","nappy","nervy","never","niece","nifty","ninja","ninth","nutty","nylon","oasis","ocean","olive","omega","onion","onset","opium","other","otter","ought","ounce","outer","ovary","ozone","paced","pagan","pager","panda","panic","pants","paper","parka","party","pasta","pasty","patio","paver","payee","payer","pecan","penny","perch","perky","pesky","petal","petri","petty","phony","photo","plank","plant","plaza","pleat","pluck","poach","poise","poker","polar","polio","polka","poppy","poser","pouch","pound","power","press","pried","primp","print","prior","prism","prize","probe","prone","prong","props","proud","proxy","prude","prune","pulse","punch","pupil","puppy","purge","purse","pushy","quack","quail","quake","qualm","query","quiet","quill","quilt","quirk","quote","rabid","radar","radio","rally","ranch","rants","raven","reach","rebel","rehab","relax","relay","relic","remix","reply","rerun","reset","retry","reuse","rhyme","rigid","rigor","rinse","ritzy","rival","roast","robin","rocky","rogue","roman","rover","royal","rumor","runny","rural","sadly","saggy","saint","salad","salon","salsa","sandy","santa","sappy","sassy","satin","saucy","sauna","saved","savor","scale","scant","scarf","scary","scion","scoff","scone","scoop","scope","scorn","scrap","scuba","scuff","sedan","sepia","serve","setup","shack","shady","shaft","shaky","shale","shame","shank","shape","share","shawl","sheep","sheet","shelf","shell","shine","shiny","shirt","shock","shone","shore","shout","shove","shown","showy","shrug","shush","silly","siren","sixth","skied","skier","skies","skirt","skype","slain","slang","slate","sleek","sleep","sleet","slept","slick","slimy","slurp","slush","small","smell","smile","smirk","smite","smith","smock","smoky","snack","snare","snarl","sneak","sneer","snide","sniff","snore","snort","snout","snowy","snuff","speak","speed","spent","spied","spill","spilt","spiny","spoof","spool","spoon","spore","spout","spray","spree","sprig","squad","squid","stack","staff","stage","stamp","stand","stank","stark","stash","state","stays","steam","steed","steep","stick","stilt","stock","stoic","stoke","stole","stomp","stony","stood","stool","stoop","storm","stout","stove","straw","stray","strep","strum","strut","stuck","study","stump","stung","stunt","suave","sugar","suing","sushi","swarm","swear","sweat","sweep","swell","swept","swipe","swirl","swoop","swore","sworn","swung","syrup","tabby","tacky","talon","tamer","tarot","taste","tasty","taunt","thank","theft","theme","these","thigh","thing","think","thong","thorn","those","thumb","tiara","tibia","tidal","tiger","timid","trace","track","trade","train","traps","trash","treat","trend","trial","tried","trout","truce","truck","trump","truth","tubby","tulip","tummy","tutor","tweak","tweed","tweet","twerp","twice","twine","twins","twirl","tying","udder","ultra","uncle","uncut","unify","union","unlit","untie","until","unwed","unzip","upper","urban","usage","usher","usual","utter","valid","value","vegan","venue","venus","verse","vibes","video","viper","viral","virus","visor","vista","vixen","voice","voter","vowed","vowel","wafer","waged","wager","wages","wagon","waltz","watch","water","wharf","wheat","whiff","whiny","whole","widen","widow","width","wince","wired","wispy","woozy","worry","worst","wound","woven","wrath","wrist","xerox","yahoo","yeast","yield","yo-yo","yodel","yummy","zebra","zesty","zippy","able","acid","acre","acts","afar","aged","ahoy","aide","aids","ajar","aloe","alto","amid","anew","aqua","area","army","ashy","atom","atop","avid","awry","axis","barn","bash","bath","bats","blah","blip","blob","blog","blot","boat","body","boil","bolt","bony","book","boss","both","boxy","brim","bulb","bulk","bunt","bush","bust","buzz","cage","cake","calm","cane","cape","case","cash","chef","chip","chop","chug","city","clad","claw","clay","clip","coat","coil","coke","cola","cold","colt","coma","come","cone","cope","copy","cork","cost","cozy","crib","crop","crux","cube","cure","cusp","darn","dart","dash","data","dawn","dean","deck","deed","deem","defy","deny","dial","dice","dill","dime","dish","disk","dock","dole","dork","dose","dove","down","doze","drab","draw","drew","drum","duct","dude","duke","duly","dupe","dusk","dust","duty","each","eats","ebay","echo","edge","edgy","emit","envy","epic","even","evil","exes","exit","fade","fall","fame","fang","feed","feel","film","five","flap","fled","flip","flop","foam","foil","folk","font","food","fool","from","gala","game","gave","gawk","gear","geek","gift","glue","gnat","goal","goes","golf","gone","gong","good","goon","gore","gory","gout","gown","grab","gray","grew","grid","grip","grit","grub","gulf","gulp","guru","gush","guts","half","halt","hash","hate","hazy","heap","heat","huff","hula","hulk","hull","hunk","hurt","hush","icky","icon","idly","ipad","ipod","iron","item","java","jaws","jazz","jeep","jinx","john","jolt","judo","july","jump","june","jury","keep","kelp","kept","kick","kiln","kilt","king","kite","kiwi","knee","kung","lair","lake","lard","lark","lash","last","late","lazy","left","lego","lend","lens","lent","life","lily","limb","line","lint","lion","lisp","list","lung","lure","lurk","mace","malt","mama","many","math","mold","most","move","much","muck","mule","mute","mutt","myth","nail","name","nape","navy","neon","nerd","nest","next","oboe","ogle","oink","okay","omen","omit","only","onto","onyx","oops","ooze","oozy","opal","open","ouch","oval","oven","palm","pang","path","pelt","perm","peso","plod","plop","plot","plow","ploy","plug","plus","poem","poet","pogo","polo","pond","pony","pope","pork","posh","pout","pull","pulp","puma","punk","purr","putt","quit","race","rack","raft","rage","rake","ramp","rare","rash","ream","rely","reps","rice","ride","rift","rind","rink","riot","rise","risk","robe","romp","rope","rosy","ruby","rule","runt","ruse","rush","rust","saga","sage","said","sake","salt","same","sank","sash","scam","self","send","shed","ship","shun","shut","sift","silk","silo","silt","size","skid","slab","slam","slaw","sled","slip","slit","slot","slug","slum","smog","snap","snub","spew","spry","spud","spur","stem","step","stew","stir","such","suds","sulk","swab","swan","sway","taco","take","tall","tank","taps","task","that","thaw","thee","thud","thus","tidy","tile","till","tilt","tint","tiny","tray","tree","trio","turf","tusk","tutu","twig","tyke","unit","upon","used","user","veal","very","vest","veto","vice","visa","void","wake","walk","wand","wasp","wavy","wham","wick","wife","wifi","wilt","wimp","wind","wing","wipe","wiry","wise","wish","wolf","womb","woof","wool","word","work","xbox","yard","yarn","yeah","yelp","yoga","yoyo","zero","zips","zone","zoom","aim","art","bok","cod","cut","dab","dad","dig","dry","duh","duo","eel","elf","elk","elm","emu","fax","fit","foe","fog","fox","gab","gag","gap","gas","gem","guy","had","hug","hut","ice","icy","ion","irk","ivy","jab","jam","jet","job","jot","keg","lid","lip","map","mom","mop","mud","mug","nag","net","oaf","oak","oat","oil","old","opt","owl","pep","pod","pox","pry","pug","rug","rut","say","shy","sip","sly","tag","try","tug","tux","wad","why","wok","wow","yam","yen","yin","zap","zen","zit"]};var en=n(323),tn=n.n(en);const nn=[{id:"not_available",label:"n/a",strength:0},{id:"very-weak",label:"Very weak",strength:1},{id:"weak",label:"Weak",strength:60},{id:"fair",label:"Fair",strength:80},{id:"strong",label:"Strong",strength:112},{id:"very-strong",label:"Very strong",strength:128}],sn=[{name:"upper",label:"A-Z",characters:["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"],active:!0},{name:"lower",label:"a-z",characters:["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"],active:!0},{name:"digit",label:"0-9",characters:["0","1","2","3","4","5","6","7","8","9"],active:!0},{name:"special_char1",label:"# $ % & @ ^ ~",characters:["#","$","%","&","@","^","~"],active:!0},{name:"parenthesis",label:"{ [ ( | ) ] ] }",characters:["{","(","[","|","]",")","}"],active:!0},{name:"special_char2",label:". , : ;",characters:[".",",",":",";"],active:!0},{name:"special_char3",label:"' \" `",characters:["'",'"',"`"],active:!0},{name:"special_char4",label:"/ \\ _ -",characters:["/","\\","_","-"],active:!0},{name:"special_char5",label:"< * + ! ? =",characters:["<","*","+","!","?","="],active:!0},{name:"emoji",label:"😘",characters:["😀","😁","😂","😃","😄","😅","😆","😇","😈","😉","😊","😋","😌","😍","😎","😏","😐","😑","😒","😓","😔","😕","😖","😗","😘","😙","😚","😛","😜","😝","😞","😟","😠","😡","😢","😣","😤","😥","😦","😧","😨","😩","😪","😫","😬","😭","😮","😯","😰","😱","😲","😳","😴","😵","😶","😷","😸","😹","😺","😻","😼","😽","😾","😿","🙀","🙁","🙂","🙃","🙄","🙅","🙆","🙇","🙈","🙉","🙊","🙋","🙌","🙍","🙎","🙏"]}],rn=(e="")=>{const t=(new(tn())).splitGraphemes(e);let n=0;for(const e of sn)t.some((t=>e.characters.includes(t)))&&(n+=e.characters.length);return ln(t.length,n)},an=(e=0,t="")=>{const n=Xt["en-UK"];return ln(e,128*t.length+n.length+3)},on=(e=0)=>nn.reduce(((t,n)=>t?n.strength>t.strength&&e>=n.strength?n:t:n));function ln(e,t){return e&&t?e*(Math.log(t)/Math.log(2)):0}const cn=function(e){if(!e)return{isPassphrase:!1};const t=Xt["en-UK"].reduce(((e,t)=>{const n=e.remainingSecret.replace(new RegExp(t,"g"),""),s=(e.remainingSecret.length-n.length)/t.length;return{numberReplacement:e.numberReplacement+s,remainingSecret:n}}),{numberReplacement:0,remainingSecret:e.toLowerCase()}),n=t.numberReplacement-1,s=t.remainingSecret.length/n,r=t.remainingSecret.length%n!=0,a=0==t.remainingSecret.length;if(r)return{isPassphrase:!1};if(a)return{numberWords:t.numberReplacement,separator:"",isPassphrase:!0};const i=t.remainingSecret.substring(0,s),o=String(i).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1"),l=0===t.remainingSecret.replace(new RegExp(o,"g"),"").length;return{numberWords:t.numberReplacement,separator:i,isPassphrase:l&&!e.startsWith(i)&&!e.endsWith(i)}};class dn extends s.Component{colorGradient(e,t,n,s){let r,a,i=e/100*2;return i>=1?(i-=1,r=this.hexToRgb(n),a=this.hexToRgb(s)):(r=this.hexToRgb(t),a=this.hexToRgb(n)),`rgb(${Math.floor(r.red+(a.red-r.red)*i)},${Math.floor(r.green+(a.green-r.green)*i)},${Math.floor(r.blue+(a.blue-r.blue)*i)})`}hexToRgb(e){const t=new RegExp("^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$","i").exec(e.trim());return t?{red:parseInt(t[1],16),green:parseInt(t[2],16),blue:parseInt(t[3],16)}:null}get complexityBarStyle(){const e=100-99/(1+Math.pow(this.props.entropy/90,10));return{background:`linear-gradient(to right, ${this.colorGradient(e,"#A40000","#FFA724","#0EAA00")} ${e}%, var(--complexity-bar-background-default) ${e}%`}}get entropy(){return(this.props.entropy||0).toFixed(1)}hasEntropy(){return null!==this.props.entropy&&void 0!==this.props.entropy}hasError(){return this.props.error}render(){const e=on(this.props.entropy);return s.createElement("div",{className:"password-complexity"},s.createElement("span",{className:"complexity-text"},(this.hasEntropy()||this.hasError())&&s.createElement(s.Fragment,null,e.label," (",s.createElement(f.c,null,"entropy:")," ",this.entropy," bits)"),!this.hasEntropy()&&!this.hasError()&&s.createElement(f.c,null,"Quality")),s.createElement("span",{className:"progress"},s.createElement("span",{className:"progress-bar "+(this.hasError()?"error":""),style:this.hasEntropy()?this.complexityBarStyle:void 0})))}}dn.defaultProps={entropy:null},dn.propTypes={entropy:i().number,error:i().bool};const hn=(0,k.Z)("common")(dn);var un=n(6574);class pn extends Error{constructor(e){super(e=e||"The external service is unavailable"),this.name="ExternalServiceUnavailableError"}}const mn=pn;class gn extends Error{constructor(e){super(e=e||"An error occurred when requesting the external service."),this.name="ExternalServiceError"}}const yn=gn;class bn{static async pwnedPasswords(e){if("string"!=typeof e){const e=new Error("Input password must be a string.");return Promise.reject(e)}const t=new un.Z("SHA-1","TEXT");t.update(e);const n=t.getHash("HEX"),s=n.substr(0,5),r=n.substr(5),a="https://api.pwnedpasswords.com/range/"+s;let i;try{i=await fetch(a)}catch(e){throw new mn("pwnedpasswords API service is not available")}if(200!==i.status)throw new yn(`Failed to request pwnedpasswords API: ${i.status}`);return(await i.text()).split("\n").map((e=>e.split(":"))).filter((e=>e[0].toLowerCase()===r)).map((e=>Number(e[1]))).shift()||0}}const vn=[{id:"not_available",label:"n/a",strength:0},{id:"very-weak",label:"very weak",strength:1},{id:"weak",label:"weak",strength:60},{id:"fair",label:"fair",strength:80},{id:"strong",label:"strong",strength:112},{id:"very-strong",label:"very strong",strength:128}],fn={alpha:{size:26,data:"abcdefghijklmnopqrstuvwxyz",pattern:/[a-z]/},uppercase:{size:26,data:"ABCDEFGHIJKLMNOPQRSTUVWXYZ",pattern:/[A-Z]/},digit:{size:10,data:"0123456789",pattern:/[0-9]/},special:{size:32,data:"!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",pattern:/[!"#$%&\'\(\)*+,\-./:;<=>?@\[\\\]^_`{|}~]/}};class kn{static randomRange(e,t){const n=new Uint32Array(1);window.crypto.getRandomValues(n);const s=n[0]/4294967296;return Math.floor(s*(t-e+1))+e}static calculEntropy(e,t){return e&&t?e*(Math.log(t)/Math.log(2)):0}static entropy(e=""){let t=0;for(const n in fn)e.match(fn[n].pattern)&&(t+=fn[n].size);return this.calculEntropy(e.length,t)}static getStrength(e){e=e||"";const t=this.entropy(e);return vn.reduce(((e,n)=>e?n.strength>e.strength&&t>=n.strength?n:e:n))}static matchMasks(e){const t={};for(const n in fn)t[n]=!1,e.match(fn[n].pattern)&&(t[n]=!0);return t}static generate(e,t){let n="",s=[];e=e||18,t=t||["alpha","uppercase","digit","special"];for(const e in t)s=[...s,...fn[t[e]].data];let r=0;const a=this.calculEntropy(e,s.length);do{n="";for(let t=0;t<e;t++)n+=s[this.randomRange(0,s.length-1)]}while(this.entropy(n)<a&&r++<10);return n}static async ispwned(e){return await bn.pwnedPasswords(e)>0}}class En extends s.Component{constructor(e){super(e),this.state=this.defaultState,this.isPwndProcessingPromise=null,this.evaluatePassphraseIsInDictionaryDebounce=Qt()(this.evaluatePassphraseIsInDictionary,300),this.bindCallbacks(),this.createInputRef()}get defaultState(){return{name:"",nameError:"",email:"",emailError:"",algorithm:"RSA",keySize:4096,passphrase:"",passphraseErrorState:0,passphraseWarning:"",passphraseEntropy:null,hasAlreadyBeenValidated:!1,isPwned:!1,isPwnedServiceAvailable:!0}}bindCallbacks(){this.handleFormSubmit=this.handleFormSubmit.bind(this),this.handleInputChange=this.handleInputChange.bind(this),this.handleNameInputKeyUp=this.handleNameInputKeyUp.bind(this),this.handleEmailInputKeyUp=this.handleEmailInputKeyUp.bind(this),this.handlePassphraseChange=this.handlePassphraseChange.bind(this)}createInputRef(){this.nameInputRef=s.createRef(),this.emailInputRef=s.createRef(),this.passphraseInputRef=s.createRef()}handleNameInputKeyUp(){this.state.hasAlreadyBeenValidated&&this.validateNameInput()}validateNameInput(){let e=null;return this.state.name.trim().length||(e=this.translate("A name is required.")),this.setState({nameError:e}),null===e}handleEmailInputKeyUp(){this.state.hasAlreadyBeenValidated&&this.validateEmailInput()}validateEmailInput(){let e=null;const t=this.state.email.trim();return t.length?this.isEmail(t)||(e=this.translate("Please enter a valid email address.")):e=this.translate("An email is required."),this.setState({email:t,emailError:e}),null===e}isEmail(e){return ze()("^[\\p{L}0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\p{L}0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[_\\p{L}0-9][-_\\p{L}0-9]*\\.)*(?:[\\p{L}0-9][-\\p{L}0-9]{0,62})\\.(?:(?:[a-z]{2}\\.)?[a-z]{2,})$").test(e)}async handlePassphraseChange(e){const t=e.target.value,n=t?.length?(e=>{const{numberWords:t,separator:n,isPassphrase:s}=cn(e);return s?an(t,n):rn(e)})(t):null,s=4===this.state.passphraseErrorState?0:this.state.passphraseErrorState;if(this.setState({passphrase:t,passphraseEntropy:n,passphraseErrorState:s}),n>=80&&(this.isPwndProcessingPromise=this.evaluatePassphraseIsInDictionaryDebounce()),this.state.hasAlreadyBeenValidated)await this.validatePassphraseInput(t,n);else{const e=t.length>=4096,n=this.translate("this is the maximum size for this field, make sure your data was not truncated"),s=e?n:"";this.setState({passphraseWarning:s})}}async validatePassphraseInput(e,t){let n=0;return e?.length?t<80&&(n=2):n=1,this.setState({passphraseErrorState:n}),0===n}async evaluatePassphraseIsInDictionary(){if(!this.state.isPwnedServiceAvailable)return!1;let e;try{e=await kn.ispwned(this.state.passphrase)}catch(e){if(e instanceof mn||e instanceof yn)return this.setState({isPwnedServiceAvailable:!1}),!1;throw e}let t=this.state.passphraseErrorState,n=this.state.passphraseEntropy;return e&&(t=4,n=0),this.setState({isPwned:e,passphraseEntropy:n,passphraseErrorState:t}),e}handleInputChange(e){const t=e.target;this.setState({[t.name]:t.value})}handleValidateError(){this.focusFirstFieldError()}focusFirstFieldError(){this.state.nameError?this.nameInputRef.current.focus():this.state.emailError?this.emailInputRef.current.focus():0!==this.state.passphraseErrorState&&this.passphraseInputRef.current.focus()}async handleFormSubmit(e){e.preventDefault(),this.state.processing||(await this.isPwndProcessingPromise,this.state.isPwned||await this.save())}async save(){if(this.setState({hasAlreadyBeenValidated:!0}),this.toggleProcessing(),!await this.validate())return this.handleValidateError(),void this.toggleProcessing();const e=await this.generateKey();this.props.onUpdateOrganizationKey(e.public_key.armored_key,e.private_key.armored_key)}async validate(){const e=this.validateNameInput(),t=this.validateEmailInput(),n=await this.validatePassphraseInput(this.state.passphrase,this.state.passphraseEntropy);return e&&t&&n}async generateKey(){const e={name:this.state.name,email:this.state.email,algorithm:this.state.algorithm,keySize:this.state.keySize,passphrase:this.state.passphrase};return await this.props.context.port.request("passbolt.account-recovery.generate-organization-key",e)}toggleProcessing(){this.setState({processing:!this.state.processing})}hasAllInputDisabled(){return this.state.processing}get translate(){return this.props.t}render(){return s.createElement("form",{onSubmit:this.handleFormSubmit,noValidate:!0},s.createElement("div",{className:"form-content generate-organization-key"},s.createElement("div",{className:"input text required "+(this.state.nameError?"error":"")},s.createElement("label",{htmlFor:"generate-organization-key-form-name"},s.createElement(f.c,null,"Name")),s.createElement("input",{id:"generate-organization-key-form-name",name:"name",type:"text",value:this.state.name,onKeyUp:this.handleNameInputKeyUp,onChange:this.handleInputChange,disabled:this.hasAllInputDisabled(),ref:this.nameInputRef,className:"required fluid",maxLength:"64",required:"required",autoComplete:"off",autoFocus:!0,placeholder:this.translate("Name")}),this.state.nameError&&s.createElement("div",{className:"name error-message"},this.state.nameError)),s.createElement("div",{className:"input text required "+(this.state.emailError?"error":"")},s.createElement("label",{htmlFor:"generate-organization-key-form-email"},s.createElement(f.c,null,"Email")),s.createElement("input",{id:"generate-organization-key-form-email",name:"email",ref:this.emailInputRef,className:"required fluid",maxLength:"64",type:"email",autoComplete:"off",value:this.state.email,onChange:this.handleInputChange,placeholder:this.translate("Email Address"),onKeyUp:this.handleEmailInputKeyUp,disabled:this.hasAllInputDisabled(),required:"required"}),this.state.emailError&&s.createElement("div",{className:"email error-message"},this.state.emailError)),s.createElement("div",{className:"input select-wrapper"},s.createElement("label",{htmlFor:"generate-organization-key-form-algorithm"},s.createElement(f.c,null,"Algorithm"),s.createElement(B,{message:this.translate("Algorithm and key size cannot be changed at the moment. These are secure default")},s.createElement(O,{name:"info-circle"}))),s.createElement("input",{id:"generate-organization-key-form-algorithm",name:"algorithm",value:this.state.algorithm,className:"fluid",type:"text",autoComplete:"off",disabled:!0})),s.createElement("div",{className:"input select-wrapper"},s.createElement("label",{htmlFor:"generate-organization-key-form-keySize"},s.createElement(f.c,null,"Key Size"),s.createElement(B,{message:this.translate("Algorithm and key size cannot be changed at the moment. These are secure default")},s.createElement(O,{name:"info-circle"}))),s.createElement("input",{id:"generate-organization-key-form-key-size",name:"keySize",value:this.state.keySize,className:"fluid",type:"text",autoComplete:"off",disabled:!0})),s.createElement("div",{className:"input-password-wrapper input required "+(0!==this.state.passphraseErrorState?"error":"")},s.createElement("label",{htmlFor:"generate-organization-key-form-password"},s.createElement(f.c,null,"Organization key passphrase"),this.state.passphraseWarning&&s.createElement(O,{name:"exclamation"})),s.createElement(Fe,{id:"generate-organization-key-form-password",name:"password",placeholder:this.translate("Passphrase"),autoComplete:"new-password",preview:!0,securityToken:this.props.context.userSettings.getSecurityToken(),value:this.state.passphrase,onChange:this.handlePassphraseChange,disabled:this.hasAllInputDisabled(),inputRef:this.passphraseInputRef}),s.createElement(hn,{entropy:this.state.passphraseEntropy}),0!==this.state.passphraseErrorState&&s.createElement("div",{className:"password error-message"},{1:s.createElement(f.c,null,"A passphrase is required."),2:s.createElement(f.c,null,"A strong passphrase is required. The minimum complexity must be 'fair'"),4:s.createElement(f.c,null,"The passphrase should not be part of an exposed data breach.")}[this.state.passphraseErrorState]),this.state.passphraseWarning&&s.createElement("div",{className:"password warning-message"},s.createElement("strong",null,s.createElement(f.c,null,"Warning:"))," ",this.state.passphraseWarning),!this.state.isPwnedServiceAvailable&&s.createElement("div",{className:"password warning-message"},s.createElement("strong",null,s.createElement(f.c,null,"Warning:"))," ",s.createElement(f.c,null,"The pwnedpasswords service is unavailable, your passphrase might be part of an exposed data breach")))),!this.state.hasAlreadyBeenValidated&&s.createElement("div",{className:"warning message",id:"generate-organization-key-setting-overridden-banner"},s.createElement("p",null,s.createElement(f.c,null,"Warning, we encourage you to generate your OpenPGP Organization Recovery Key separately. Make sure you keep a backup in a safe place."))),s.createElement("div",{className:"submit-wrapper clearfix"},s.createElement(Y,{disabled:this.hasAllInputDisabled(),onClick:this.props.onClose}),s.createElement(Et,{disabled:this.hasAllInputDisabled(),processing:this.state.processing,value:this.translate("Generate & Apply")})))}}En.propTypes={context:i().any,onUpdateOrganizationKey:i().func,onClose:i().func,t:i().func};const Cn=I(g((0,k.Z)("common")(En)));function wn(){return wn=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},wn.apply(this,arguments)}class Sn extends s.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks()}get defaultState(){return{processing:!1}}bindCallbacks(){this.handleCloseClick=this.handleCloseClick.bind(this),this.handleApplyChanges=this.handleApplyChanges.bind(this)}handleCloseClick(){this.props.onClose()}handleApplyChanges(e,t){this.handleCloseClick(),this.props.handleUpdateOrganizationKey(e,t)}render(){return s.createElement($,{title:this.props.t("Organization Recovery Key"),onClose:this.handleCloseClick,disabled:this.state.processing,className:"organization-recover-key-dialog"},s.createElement($t,{activeTabName:"Import"},s.createElement(Bt,{key:"Import",name:"Import",type:"Import"},s.createElement(Yt,wn({},this.props,{onClose:this.handleCloseClick,onUpdateOrganizationKey:this.handleApplyChanges}))),s.createElement(Bt,{key:"Generate",name:"Generate",type:"Generate"},s.createElement(Cn,wn({},this.props,{onClose:this.handleCloseClick,onUpdateOrganizationKey:this.handleApplyChanges})))))}}Sn.propTypes={handleUpdateOrganizationKey:i().func,onClose:i().func,t:i().func};const xn=(0,k.Z)("common")(Sn);class Nn extends s.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks()}get defaultState(){return{processing:!1}}bindCallbacks(){this.handleCloseClick=this.handleCloseClick.bind(this)}handleCloseClick(){this.props.onClose()}render(){return s.createElement($,{title:this.props.t("Confirm Organization Recovery Key download"),onClose:this.handleCloseClick,disabled:!1,className:"organization-recover-key-download-dialog"},s.createElement("div",{className:"dialog-body"},s.createElement("p",null,s.createElement(f.c,null,"A download of the organization private key has automatically started."),s.createElement("br",null),s.createElement(f.c,null,"Make sure your print it or store it in a safe place. You may need it later!"))),s.createElement("div",{className:"dialog-footer clearfix"},s.createElement("button",{className:"button button-left cancel medium",type:"button",onClick:this.props.handleDownloadAgain},s.createElement(f.c,null,"Download again")),s.createElement("button",{className:"button primary",role:"button",type:"button",onClick:this.handleCloseClick,disabled:this.isProcessing},s.createElement("span",null,s.createElement(f.c,null,"Ok")))))}}Nn.propTypes={onClose:i().func,handleDownloadAgain:i().func,privateKey:i().string,t:i().func};const Ln=(0,k.Z)("common")(Nn);class Rn extends s.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks()}get defaultState(){return{keyInfoDto:null,loading:!0,processing:!1}}async componentDidMount(){this.props.administrationWorkspaceContext.setDisplayAdministrationWorkspaceAction(Vt),this.findAccountRecoveryPolicy()}componentWillUnmount(){this.props.administrationWorkspaceContext.resetDisplayAdministrationWorkspaceAction(),this.props.adminAccountRecoveryContext.resetChanges()}async componentDidUpdate(){const e=this.props?.adminAccountRecoveryContext?.policyChanges?.publicKey||this.props?.adminAccountRecoveryContext?.currentPolicy?.account_recovery_organization_public_key?.armored_key,t=await(this.props?.adminAccountRecoveryContext?.getKeyInfo(e));Boolean(e)&&this.state.keyInfoDto?.fingerprint!==t?.fingerprint?this.setState({keyInfoDto:t}):!e&&this.state.keyInfoDto&&this.setState({keyInfoDto:null})}bindCallbacks(){this.handlePolicyInputChange=this.handlePolicyInputChange.bind(this),this.HandleUpdatePublicKeyClick=this.HandleUpdatePublicKeyClick.bind(this),this.handleUpdateOrganizationKey=this.handleUpdateOrganizationKey.bind(this),this.downloadPrivateKey=this.downloadPrivateKey.bind(this)}get policy(){return this.props.adminAccountRecoveryContext.policyChanges.policy||this.props.adminAccountRecoveryContext.currentPolicy?.policy}get organizationKey(){return this.props.adminAccountRecoveryContext.policyChanges.publicKey||this.props.adminAccountRecoveryContext.currentPolicy?.account_recovery_organization_public_key.armored_key}get organizationKeyInfo(){return this.state.keyInfoDto}async findAccountRecoveryPolicy(){await this.props.adminAccountRecoveryContext.findAccountRecoveryPolicy(),this.setState({loading:!1})}async handlePolicyInputChange(e){const t=e.target.value;"disabled"===t&&this.resetKeyInfo(),await this.props.adminAccountRecoveryContext.changePolicy(t)}HandleUpdatePublicKeyClick(){this.props.dialogContext.open(xn,{handleUpdateOrganizationKey:this.handleUpdateOrganizationKey})}async handleUpdateOrganizationKey(e,t){this.resetKeyInfo(),await this.props.adminAccountRecoveryContext.changePublicKey(e),t&&await this.downloadPrivateKey(t)}async downloadPrivateKey(e){await this.props.adminAccountRecoveryContext.downloadPrivateKey(e),this.props.dialogContext.open(Ln,{privateKey:e,handleDownloadAgain:async()=>{await this.props.adminAccountRecoveryContext.downloadPrivateKey(e)}})}hasAllInputDisabled(){return this.state.processing||this.state.loading}hasOrganisationRecoveryKey(){const e=this.state.keyInfoDto;return Boolean(e)}isPolicyEnabled(){return Boolean("disabled"!==this.policy)}resetKeyInfo(){this.setState({keyInfoDto:null})}async toggleProcessing(){this.setState({processing:!this.state.processing})}formatDateTimeAgo(e){if(null===e)return"n/a";if("Infinity"===e)return this.translate("Never");const t=bt.ou.fromISO(e),n=t.diffNow().toMillis();return n>-1e3&&n<0?this.translate("Just now"):t.toRelative({locale:this.props.context.locale})}formatFingerprint(e){if(!e)return null;const t=e.toUpperCase().replace(/.{4}/g,"$& ");return s.createElement(s.Fragment,null,t.substr(0,24),s.createElement("br",null),t.substr(25))}formatUserIds(e){return e?e.map(((e,t)=>s.createElement(s.Fragment,{key:t},e.name," <",e.email,">",s.createElement("br",null)))):null}get translate(){return this.props.t}render(){return s.createElement("div",{className:"row"},s.createElement("div",{className:"recover-account-settings col8 main-column"},s.createElement("h3",null,s.createElement(f.c,null,"Account Recovery")),this.props.adminAccountRecoveryContext.hasPolicyChanges()&&s.createElement("div",{className:"warning message",id:"email-notification-setting-overridden-banner"},s.createElement("p",null,s.createElement(f.c,null,"Warning, Don't forget to save your settings to apply your modification."))),!this.hasOrganisationRecoveryKey()&&this.isPolicyEnabled()&&s.createElement("div",{className:"warning message",id:"email-notification-setting-overridden-banner"},s.createElement("p",null,s.createElement(f.c,null,"Warning, Don't forget to add an organization recovery key."))),s.createElement("form",{className:"form"},s.createElement("h4",{className:"no-border"},s.createElement(f.c,null,"Account Recovery Policy")),s.createElement("p",null,s.createElement(f.c,null,"In this section you can choose the default behavior of account recovery for all users.")),s.createElement("div",{className:"radiolist-alt"},s.createElement("div",{className:"input radio "+("mandatory"===this.policy?"checked":"")},s.createElement("input",{type:"radio",value:"mandatory",onChange:this.handlePolicyInputChange,name:"accountRecoveryPolicy",checked:"mandatory"===this.policy,id:"accountRecoveryPolicyMandatory",disabled:this.hasAllInputDisabled()}),s.createElement("label",{htmlFor:"accountRecoveryPolicyMandatory"},s.createElement("span",{className:"name"},s.createElement(f.c,null,"Mandatory")),s.createElement("span",{className:"info"},s.createElement(f.c,null,"Every user is required to provide a copy of their private key and passphrase during setup."),s.createElement("br",null),s.createElement(f.c,null,"Warning: You should inform your users not to store personal passwords.")))),s.createElement("div",{className:"input radio "+("opt-out"===this.policy?"checked":"")},s.createElement("input",{type:"radio",value:"opt-out",onChange:this.handlePolicyInputChange,name:"accountRecoveryPolicy",checked:"opt-out"===this.policy,id:"accountRecoveryPolicyOptOut",disabled:this.hasAllInputDisabled()}),s.createElement("label",{htmlFor:"accountRecoveryPolicyOptOut"},s.createElement("span",{className:"name"},s.createElement(f.c,null,"Optional, Opt-out")),s.createElement("span",{className:"info"},s.createElement(f.c,null,"Every user will be prompted to provide a copy of their private key and passphrase by default during the setup, but they can opt out.")))),s.createElement("div",{className:"input radio "+("opt-in"===this.policy?"checked":"")},s.createElement("input",{type:"radio",value:"opt-in",onChange:this.handlePolicyInputChange,name:"accountRecoveryPolicy",checked:"opt-in"===this.policy,id:"accountRecoveryPolicyOptIn",disabled:this.hasAllInputDisabled()}),s.createElement("label",{htmlFor:"accountRecoveryPolicyOptIn"},s.createElement("span",{className:"name"},s.createElement(f.c,null,"Optional, Opt-in")),s.createElement("span",{className:"info"},s.createElement(f.c,null,"Every user can decide to provide a copy of their private key and passphrase by default during the setup, but they can opt in.")))),s.createElement("div",{className:"input radio "+("disabled"===this.policy?"checked":"")},s.createElement("input",{type:"radio",value:"disabled",onChange:this.handlePolicyInputChange,name:"accountRecoveryPolicy",checked:"disabled"===this.policy,id:"accountRecoveryPolicyDisable",disabled:this.hasAllInputDisabled()}),s.createElement("label",{htmlFor:"accountRecoveryPolicyDisable"},s.createElement("span",{className:"name"},s.createElement(f.c,null,"Disable (Default)")),s.createElement("span",{className:"info"},s.createElement(f.c,null,"Backup of the private key and passphrase will not be stored. This is the safest option."),s.createElement(f.c,null,"Warning: If users lose their private key and passphrase they will not be able to recover their account."))))),s.createElement("h4",null,s.createElement("span",{className:"input toggle-switch form-element "},s.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"organisationRecoveryKeyToggle",disabled:this.hasAllInputDisabled(),checked:this.isPolicyEnabled(),id:"recovery-key-toggle-button"}),s.createElement("label",{htmlFor:"recovery-key-toggle-button"},s.createElement(f.c,null,"Organization Recovery Key")))),this.isPolicyEnabled()&&s.createElement(s.Fragment,null,s.createElement("p",null,s.createElement(f.c,null,"Your organization recovery key will be used to decrypt and recover the private key and passphrase of the users that are participating in the account recovery program.")," ",s.createElement(f.c,null,"The organization private recovery key should not be stored in passbolt.")," ",s.createElement(f.c,null,"You should keep it offline in a safe place.")),s.createElement("div",{className:"recovery-key-details"},s.createElement("table",{className:"table-info recovery-key"},s.createElement("tbody",null,s.createElement("tr",{className:"user-ids"},s.createElement("td",{className:"label"},s.createElement(f.c,null,"User ids")),this.organizationKeyInfo?.user_ids&&s.createElement("td",{className:"value"},this.formatUserIds(this.organizationKeyInfo.user_ids)),!this.organizationKeyInfo?.user_ids&&s.createElement("td",{className:"empty-value"},s.createElement(f.c,null,"not available")),s.createElement("td",{className:"table-button"},s.createElement("button",{className:"button primary medium",type:"button",disabled:this.hasAllInputDisabled(),onClick:this.HandleUpdatePublicKeyClick},this.hasOrganisationRecoveryKey()&&s.createElement(f.c,null,"Rotate Key"),!this.hasOrganisationRecoveryKey()&&s.createElement(f.c,null,"Add an Organization Recovery Key")))),s.createElement("tr",{className:"fingerprint"},s.createElement("td",{className:"label"},s.createElement(f.c,null,"Fingerprint")),this.organizationKeyInfo?.fingerprint&&s.createElement("td",{className:"value"},this.formatFingerprint(this.organizationKeyInfo.fingerprint)),!this.organizationKeyInfo?.fingerprint&&s.createElement("td",{className:"empty-value"},s.createElement(f.c,null,"not available"))),s.createElement("tr",{className:"algorithm"},s.createElement("td",{className:"label"},s.createElement(f.c,null,"Algorithm")),this.organizationKeyInfo?.algorithm&&s.createElement("td",{className:"value"},this.organizationKeyInfo.algorithm),!this.organizationKeyInfo?.algorithm&&s.createElement("td",{className:"empty-value"},s.createElement(f.c,null,"not available"))),s.createElement("tr",{className:"key-length"},s.createElement("td",{className:"label"},s.createElement(f.c,null,"Key length")),this.organizationKeyInfo?.length&&s.createElement("td",{className:"value"},this.organizationKeyInfo.length),!this.organizationKeyInfo?.length&&s.createElement("td",{className:"empty-value"},s.createElement(f.c,null,"not available"))),s.createElement("tr",{className:"created"},s.createElement("td",{className:"label"},s.createElement(f.c,null,"Created")),this.organizationKeyInfo?.created&&s.createElement("td",{className:"value"},this.formatDateTimeAgo(this.organizationKeyInfo.created)),!this.organizationKeyInfo?.created&&s.createElement("td",{className:"empty-value"},s.createElement(f.c,null,"not available"))),s.createElement("tr",{className:"expires"},s.createElement("td",{className:"label"},s.createElement(f.c,null,"Expires")),this.organizationKeyInfo?.expires&&s.createElement("td",{className:"value"},this.formatDateTimeAgo(this.organizationKeyInfo.expires)),!this.organizationKeyInfo?.expires&&s.createElement("td",{className:"empty-value"},s.createElement(f.c,null,"not available"))))))))),s.createElement("div",{className:"col4 last"},s.createElement("div",{className:"sidebar-help"},s.createElement("h3",null,s.createElement(f.c,null,"Need some help?")),s.createElement("p",null,s.createElement(f.c,null,"For more information about account recovery, checkout the dedicated page on the help website.")),s.createElement("a",{className:"button",href:"https://help.passbolt.com/configure/account-recovery",target:"_blank",rel:"noopener noreferrer"},s.createElement(O,{name:"life-ring"}),s.createElement("span",null,s.createElement(f.c,null,"Read the documentation"))))))}}Rn.propTypes={context:i().object,dialogContext:i().any,administrationWorkspaceContext:i().object,adminAccountRecoveryContext:i().object,t:i().func};const In=I(g(de(Ut((0,k.Z)("common")(Rn))))),An={25:{port:25,tls:!1},2525:{port:2525,tls:!1},587:{port:587,tls:!0},588:{port:588,tls:!0}};function Tn(e,t){const n=[];for(let s=0;s<e.length;s++){const r=e[s];for(let e=0;e<t.length;e++){const s=An[t[e].toString()];n.push({host:r,...s})}}return n}function Dn(e,t,n){return e.availableConfigurations.find((e=>(!n||e.host===n)&&e.port===t))}const Un={id:"aws-ses",name:"AWS SES",icon:"aws-ses.svg",help_page:"https://docs.aws.amazon.com/ses/latest/dg/send-email-smtp.html",availableConfigurations:Tn(function(){const e=[];return["us-east-2","us-east-1","us-west-1","us-west-2","ap-south-1","ap-northeast-3","ap-northeast-2","ap-northeast-1","ap-southeast-1","ap-southeast-2","ca-central-1","eu-central-1","eu-west-1","eu-west-2","eu-west-3","sa-east-1","us-gov-west-1"].forEach((t=>{e.push(`email-smtp.${t}.amazonaws.com`)})),e}(),[25,2525,587])};Un.defaultConfiguration=Dn(Un,587,"email-smtp.eu-central-1.amazonaws.com");const _n={id:"elastic-email",name:"ElasticEmail",icon:"elastic-email.svg",help_page:"https://help.elasticemail.com/en/articles/4803409-smtp-settings",availableConfigurations:Tn(["smtp.elasticemail.com","smtp25.elasticemail.com"],[25,2525,587])};_n.defaultConfiguration=Dn(_n,587,"smtp.elasticemail.com");const Mn={id:"gmail",name:"Gmail",icon:"gmail.svg",help_page:"https://support.google.com/a/answer/2956491",availableConfigurations:Tn(["smtp-relay.gmail.com"],[25,587])};Mn.defaultConfiguration=Dn(Mn,587);const Pn={id:"mailgun",name:"MailGun",icon:"mailgun.svg",help_page:"https://documentation.mailgun.com/en/latest/quickstart-sending.html",availableConfigurations:Tn(["smtp.mailgun.com"],[587])};Pn.defaultConfiguration=Pn.availableConfigurations[0];const jn={id:"mailjet",name:"Mailjet",icon:"mailjet.svg",help_page:"https://dev.mailjet.com/smtp-relay/configuration/",availableConfigurations:Tn(["in-v3.mailjet.com"],[25,2525,587,588])};jn.defaultConfiguration=Dn(jn,587);const Wn={id:"mandrill",name:"Mandrill",icon:"mandrill.svg",help_page:"https://mailchimp.com/developer/transactional/docs/smtp-integration/",availableConfigurations:Tn(["smtp.mandrillapp.com"],[25,2525,587])};Wn.defaultConfiguration=Dn(Wn,587);const zn={id:"sendgrid",name:"Sendgrid",icon:"sendgrid.svg",help_page:"https://docs.sendgrid.com/for-developers/sending-email/integrating-with-the-smtp-api",availableConfigurations:Tn(["smtp.sendgrid.com"],[25,2525,587])};zn.defaultConfiguration=Dn(zn,587);const qn={id:"sendinblue",name:"Sendinblue",icon:"sendinblue.svg",help_page:"https://help.sendinblue.com/hc/en-us/articles/209462765",availableConfigurations:Tn(["smtp-relay.sendinblue.com"],[25,587])};qn.defaultConfiguration=Dn(qn,587);const Fn={id:"zoho",name:"Zoho",icon:"zoho.svg",help_page:"https://www.zoho.com/mail/help/zoho-smtp.html",availableConfigurations:Tn(["smtp.zoho.eu","smtppro.zoho.eu"],[587])};Fn.defaultConfiguration=Dn(Fn,587,"smtp.zoho.eu");const On=[Un,_n,Mn,Pn,jn,Wn,zn,qn,Fn,{id:"other",name:"Other",icon:null,availableConfigurations:[],defaultConfiguration:{host:"",port:"",tls:!0}}];function Kn(){return Kn=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},Kn.apply(this,arguments)}const Vn=s.createContext({getCurrentSmtpSettings:()=>{},findSmtpSettings:()=>{},changeProvider:()=>{},setData:()=>{},isSettingsModified:()=>{},isSettingsValid:()=>{},getErrors:()=>{},validateData:()=>{},getFieldToFocus:()=>{},saveSmtpSettings:()=>{},isProcessing:()=>{},hasProviderChanged:()=>{},sendTestMailTo:()=>{},isDataReady:()=>{},clearContext:()=>{}});class Gn extends s.Component{constructor(e){super(e),this.state=this.defaultState;const t=e.context.getApiClientOptions();this.smtpSettingsModel=new class{constructor(e){this.smtpSettingsService=new class{constructor(e){e.setResourceName("smtp/settings"),this.apiClient=new q(e)}async find(){const e=(await this.apiClient.findAll())?.body;return e.tls=Boolean(e?.tls),e}async save(e){const t=(await this.apiClient.create(e)).body;return t.tls=Boolean(t.tls),t}}(e)}findSmtpSettings(){return this.smtpSettingsService.find()}saveSmtpSettings(e){return this.smtpSettingsService.save(e)}}(t),this.smtpTestSettingsModel=new class{constructor(e){this.smtpTestSettingsService=new class{constructor(e){e.setResourceName("smtp/email"),this.apiClient=new q(e)}async sendTestEmail(e){return(await this.apiClient.create(e)).body}}(e)}sendTestEmail(e,t){const{sender_name:n,sender_email:s,host:r,port:a,username:i,password:o,tls:l}=e,c={sender_name:n,sender_email:s,host:r,port:a,username:i,password:o,tls:l,email_test_to:t};return this.smtpTestSettingsService.sendTestEmail(c)}}(t),this.fieldToFocus=null,this.providerHasChanged=!1}get defaultState(){return{settingsModified:!1,currentSmtpSettings:{provider:null,username:"",password:"",host:"",tls:!0,port:"",sender_email:"",sender_name:"Passbolt"},errors:{},isLoaded:!1,processing:!1,hasSumittedForm:!1,getCurrentSmtpSettings:this.getCurrentSmtpSettings.bind(this),findSmtpSettings:this.findSmtpSettings.bind(this),changeProvider:this.changeProvider.bind(this),setData:this.setData.bind(this),isSettingsModified:this.isSettingsModified.bind(this),getErrors:this.getErrors.bind(this),validateData:this.validateData.bind(this),getFieldToFocus:this.getFieldToFocus.bind(this),saveSmtpSettings:this.saveSmtpSettings.bind(this),isProcessing:this.isProcessing.bind(this),hasProviderChanged:this.hasProviderChanged.bind(this),sendTestMailTo:this.sendTestMailTo.bind(this),isDataReady:this.isDataReady.bind(this),clearContext:this.clearContext.bind(this)}}async findSmtpSettings(){if(this.props.context.siteSettings.canIUse("smtpSettings"))try{const e=await this.smtpSettingsModel.findSmtpSettings();e.sender_email||(e.sender_email=this.props.context.loggedInUser.username),e.host&&e.port&&(e.provider=this.detectProvider(e)),this.setState({currentSmtpSettings:e,isLoaded:!0})}catch(e){this.setState({isLoaded:!0,currentSmtpSettings:{...this.state.currentSmtpSettings,sender_email:this.props.context.loggedInUser.username}}),this.handleError(e)}}clearContext(){const{settingsModified:e,currentSmtpSettings:t,errors:n,isLoaded:s,processing:r,hasSumittedForm:a}=this.defaultState;this.setState({settingsModified:e,currentSmtpSettings:t,errors:n,isLoaded:s,processing:r,hasSumittedForm:a})}async saveSmtpSettings(){this._doProcess((async()=>{try{const e={...this.state.currentSmtpSettings};delete e.provider,await this.smtpSettingsModel.saveSmtpSettings(e),this.props.actionFeedbackContext.displaySuccess(this.props.t("The SMTP settings have been saved successfully"))}catch(e){this.handleError(e)}}))}async sendTestMailTo(e){return await this.smtpTestSettingsModel.sendTestEmail(this.getCurrentSmtpSettings(),e)}_doProcess(e){this.setState({processing:!0},(async()=>{await e(),this.setState({processing:!1})}))}hasProviderChanged(){const e=this.providerHasChanged;return this.providerHasChanged=!1,e}changeProvider(e){e.id!==this.state.currentSmtpSettings.provider?.id&&(this.providerHasChanged=!0,this.setState({settingsModified:!0,currentSmtpSettings:{...this.state.currentSmtpSettings,...e.defaultConfiguration,provider:e}}))}setData(e){const t=Object.assign({},this.state.currentSmtpSettings,e),n={currentSmtpSettings:{...t,provider:this.detectProvider(t)},settingsModified:!0};this.setState(n),this.state.hasSumittedForm&&this.validateData(t)}detectProvider(e){for(let t=0;t<On.length;t++){const n=On[t];if(n.availableConfigurations.find((t=>t.host===e.host&&t.port===parseInt(e.port,10)&&t.tls===e.tls)))return n}return On.find((e=>"other"===e.id))}isDataReady(){return this.state.isLoaded}isProcessing(){return this.state.processing}isSettingsModified(){return this.state.settingsModified}getErrors(){return this.state.errors}validateData(e){e=e||this.state.currentSmtpSettings;const t={};let n=!0;return n=this.validate_host(e.host,t)&&n,n=this.validate_sender_email(e.sender_email,t)&&n,n=this.validate_sender_name(e.sender_name,t)&&n,n=this.validate_username(e.username,t)&&n,n=this.validate_password(e.password,t)&&n,n=this.validate_port(e.port,t)&&n,n=this.validate_tls(e.tls,t)&&n,n||(this.fieldToFocus=this.getFirstFieldInError(t,["username","password","host","tls","port","sender_name","sender_email"])),this.setState({errors:t,hasSumittedForm:!0}),n}validate_host(e,t){return"string"!=typeof e?(t.host=this.props.t("SMTP Host must be a valid string"),!1):0!==e.length||(t.host=this.props.t("SMTP Host is required"),!1)}validate_sender_email(e,t){return"string"!=typeof e?(t.sender_email=this.props.t("Sender email must be a valid email"),!1):0===e.length?(t.sender_email=this.props.t("Sender email is required"),!1):!!this.isEmail(e)||(t.sender_email=this.props.t("Sender email must be a valid email"),!1)}validate_sender_name(e,t){return"string"!=typeof e?(t.sender_name=this.props.t("Sender name must be a valid string"),!1):0!==e.length||(t.sender_name=this.props.t("Sender name is required"),!1)}validate_username(e,t){return null===e||"string"==typeof e||(t.username=this.props.t("Username must be a valid string"),!1)}validate_password(e,t){return null===e||"string"==typeof e||(t.password=this.props.t("Password must be a valid string"),!1)}validate_tls(e,t){return"boolean"==typeof e||(t.tls=this.props.t("TLS must be set to 'Yes' or 'No'"),!1)}validate_port(e,t){const n=parseInt(e,10);return isNaN(n)?(t.port=this.props.t("Port must be a valid number"),!1):!(n<1||n>65535)||(t.port=this.props.t("Port must be a number between 1 and 65535"),!1)}getFirstFieldInError(e,t){for(let n=0;n<t.length;n++){const s=t[n];if(void 0!==e[s])return s}return null}isEmail(e){return ze()("^[\\p{L}0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\p{L}0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[_\\p{L}0-9][-_\\p{L}0-9]*\\.)*(?:[\\p{L}0-9][-\\p{L}0-9]{0,62})\\.(?:(?:[a-z]{2}\\.)?[a-z]{2,})$").test(e)}getCurrentSmtpSettings(){return this.state.currentSmtpSettings}getFieldToFocus(){const e=this.fieldToFocus;return this.fieldToFocus=null,e}handleError(e){console.error(e),this.props.dialogContext.open(ft,{error:e})}render(){return s.createElement(Vn.Provider,{value:this.state},this.props.children)}}Gn.propTypes={context:i().any,dialogContext:i().object,actionFeedbackContext:i().object,children:i().any,t:i().func};const Bn=I(g(h((0,k.Z)("common")(Gn))));function Hn(e){return class extends s.Component{render(){return s.createElement(Vn.Consumer,null,(t=>s.createElement(e,Kn({adminSmtpSettingsContext:t},this.props))))}}}const $n="form",Zn="error",Yn="success";class Jn extends s.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks()}get defaultState(){return{uiState:$n,recipient:this.props.context.loggedInUser.username,processing:!1,displayLogs:!0}}bindCallbacks(){this.handleRetryClick=this.handleRetryClick.bind(this),this.handleError=this.handleError.bind(this),this.handleFormSubmit=this.handleFormSubmit.bind(this),this.handleInputChange=this.handleInputChange.bind(this),this.handleDisplayLogsClick=this.handleDisplayLogsClick.bind(this)}async handleFormSubmit(e){if(e.preventDefault(),this.validateForm()){try{this.setState({processing:!0});const e=await this.props.adminSmtpSettingsContext.sendTestMailTo(this.state.recipient);this.setState({uiState:Yn,debugDetails:this.formatDebug(e.debug),displayLogs:!1})}catch(e){this.handleError(e)}this.setState({processing:!1})}}async handleInputChange(e){this.setState({recipient:e.target.value})}validateForm(){const e=ze()("^[\\p{L}0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\p{L}0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[_\\p{L}0-9][-_\\p{L}0-9]*\\.)*(?:[\\p{L}0-9][-\\p{L}0-9]{0,62})\\.(?:(?:[a-z]{2}\\.)?[a-z]{2,})$").test(this.state.recipient);return this.setState({recipientError:e?"":this.translate("Recipient must be a valid email")}),e}formatDebug(e){return JSON.stringify(e,null,4)}handleError(e){const t=e.data?.body?.debug,n=t?.length>0?t:e?.message;this.setState({uiState:Zn,debugDetails:this.formatDebug(n),displayLogs:!0})}handleDisplayLogsClick(){this.setState({displayLogs:!this.state.displayLogs})}handleRetryClick(){this.setState({uiState:$n})}hasAllInputDisabled(){return this.state.processing}get title(){return{form:this.translate("Send test email"),error:this.translate("Something went wrong!"),success:this.translate("Email sent")}[this.state.uiState]||""}get translate(){return this.props.t}render(){return s.createElement($,{className:"send-test-email-dialog",title:this.title,onClose:this.props.handleClose,disabled:this.hasAllInputDisabled()},this.state.uiState===$n&&s.createElement("form",{onSubmit:this.handleFormSubmit,noValidate:!0},s.createElement("div",{className:"form-content"},s.createElement("div",{className:`input text required ${this.state.recipientError?"error":""} ${this.hasAllInputDisabled()?"disabled":""}`},s.createElement("label",null,s.createElement(f.c,null,"Recipient")),s.createElement("input",{id:"recipient",type:"text",name:"recipient",required:"required",className:"required fluid form-element ready",placeholder:"name@email.com",onChange:this.handleInputChange,value:this.state.recipient,disabled:this.hasAllInputDisabled()}),this.state.recipientError&&s.createElement("div",{className:"recipient error-message"},this.state.recipientError))),s.createElement("div",{className:"message notice"},s.createElement("strong",null,s.createElement(f.c,null,"Pro tip"),":")," ",s.createElement(f.c,null,"after clicking on send, a test email will be sent to the recipient email in order to check that your configuration is correct.")),s.createElement("div",{className:"submit-wrapper clearfix"},s.createElement(Y,{disabled:this.hasAllInputDisabled(),onClick:this.props.handleClose}),s.createElement(Et,{disabled:this.hasAllInputDisabled(),processing:this.state.processing,value:this.translate("Send")}))),this.state.uiState===Zn&&s.createElement(s.Fragment,null,s.createElement("div",{className:"dialog-body"},s.createElement("p",null,s.createElement(f.c,null,"The test email could not be sent. Kindly check the logs below for more information."),s.createElement("br",null),s.createElement("a",{className:"faq-link",href:"https://help.passbolt.com/faq/hosting/why-email-not-sent",rel:"noopener noreferrer",target:"_blank"},s.createElement(f.c,null,"FAQ: Why are my emails not sent?"))),s.createElement("div",{className:"accordion-header"},s.createElement("a",{onClick:this.handleDisplayLogsClick},s.createElement(O,{name:this.state.displayLogs?"caret-down":"caret-right"})," ",s.createElement(f.c,null,"Logs"))),this.state.displayLogs&&s.createElement("div",{className:"accordion-content"},s.createElement("textarea",{className:"full_report",readOnly:!0,value:this.state.debugDetails}))),s.createElement("div",{className:"dialog-footer clearfix"},s.createElement("a",{className:"cancel",role:"button",disabled:this.hasAllInputDisabled(),onClick:this.handleRetryClick},s.createElement(f.c,null,"Retry")),s.createElement("button",{className:"button primary",role:"button",type:"button",onClick:this.props.handleClose,disabled:this.isProcessing},s.createElement("span",null,s.createElement(f.c,null,"Close"))))),this.state.uiState===Yn&&s.createElement(s.Fragment,null,s.createElement("div",{className:"dialog-body"},s.createElement("p",null,s.createElement(f.c,null,"The test email has been sent. Check your email box, you should receive it in a minute.")),s.createElement("div",{className:"accordion-header"},s.createElement("a",{onClick:this.handleDisplayLogsClick},s.createElement(O,{name:this.state.displayLogs?"caret-down":"caret-right"})," ",s.createElement(f.c,null,"Logs"))),this.state.displayLogs&&s.createElement("div",{className:"accordion-content"},s.createElement("textarea",{className:"full_report",readOnly:!0,value:this.state.debugDetails}))),s.createElement("div",{className:"message notice"},s.createElement("strong",null,s.createElement(f.c,null,"Pro tip"),":")," ",s.createElement(f.c,null,"Check your spam folder if you do not hear from us after a while.")),s.createElement("div",{className:"dialog-footer clearfix"},s.createElement("a",{className:"cancel",role:"button",disabled:this.hasAllInputDisabled(),onClick:this.handleRetryClick},s.createElement(f.c,null,"Retry")),s.createElement("button",{className:"button primary",role:"button",type:"button",onClick:this.props.handleClose,disabled:this.isProcessing},s.createElement("span",null,s.createElement(f.c,null,"Close"))))))}}Jn.propTypes={context:i().object,adminSmtpSettingsContext:i().object,handleClose:i().func,t:i().func};const Qn=I(Hn((0,k.Z)("common")(Jn)));class Xn extends s.Component{constructor(e){super(e),this.bindCallbacks(),this.dialogId=null}bindCallbacks(){this.handleSaveClick=this.handleSaveClick.bind(this),this.handleTestClick=this.handleTestClick.bind(this),this.handleCloseDialog=this.handleCloseDialog.bind(this)}async handleSaveClick(){this.smtpSettings.isProcessing()||this.smtpSettings.validateData()&&await this.smtpSettings.saveSmtpSettings()}async handleTestClick(){this.smtpSettings.isProcessing()||this.smtpSettings.validateData()&&(null!==this.dialogId&&this.handleCloseDialog(),this.dialogId=await this.props.dialogContext.open(Qn,{handleClose:this.handleCloseDialog}))}handleCloseDialog(){this.props.dialogContext.close(this.dialogId),this.dialogId=null}isSaveEnabled(){return this.smtpSettings.isSettingsModified()&&!this.smtpSettings.isProcessing()}isTestEnabled(){return this.smtpSettings.isSettingsModified()&&!this.smtpSettings.isProcessing()}get smtpSettings(){return this.props.adminSmtpSettingsContext}render(){return s.createElement("div",{className:"col2_3 actions-wrapper"},s.createElement("div",{className:"actions"},s.createElement("div",null,s.createElement("li",null,s.createElement("a",{className:"button "+(this.isSaveEnabled()?"":"disabled"),onClick:this.handleSaveClick},s.createElement(O,{name:"save"}),s.createElement("span",null,s.createElement(f.c,null,"Save settings"))))),s.createElement("div",null,s.createElement("li",null,s.createElement("a",{className:"button "+(this.isTestEnabled()?"":"disabled"),onClick:this.handleTestClick},s.createElement(O,{name:"plug"}),s.createElement("span",null,s.createElement(f.c,null,"Send test email")))))))}}Xn.propTypes={adminSmtpSettingsContext:i().object,workflowContext:i().any,dialogContext:i().object};const es=Hn(g((0,k.Z)("common")(Xn))),ts="None",ns="Username only",ss="Username & password";class rs extends s.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks(),this.createRefs()}get defaultState(){return{showAdvancedSettings:!1,source:"db"}}createRefs(){this.usernameFieldRef=s.createRef(),this.passwordFieldRef=s.createRef(),this.hostFieldRef=s.createRef(),this.portFieldRef=s.createRef(),this.senderEmailFieldRef=s.createRef(),this.senderNameFieldRef=s.createRef()}async componentDidMount(){this.props.administrationWorkspaceContext.setDisplayAdministrationWorkspaceAction(es),await this.props.adminSmtpSettingsContext.findSmtpSettings();const e=this.props.adminSmtpSettingsContext.getCurrentSmtpSettings();this.setState({showAdvancedSettings:"other"===e.provider?.id})}componentWillUnmount(){this.props.administrationWorkspaceContext.resetDisplayAdministrationWorkspaceAction(),this.props.adminSmtpSettingsContext.clearContext()}componentDidUpdate(){const e=this.props.adminSmtpSettingsContext,t=e.getFieldToFocus();t&&this[`${t}FieldRef`]?.current?.focus(),e.hasProviderChanged()&&this.setState({showAdvancedSettings:"other"===e.getCurrentSmtpSettings().provider?.id})}bindCallbacks(){this.handleAdvancedSettingsToggle=this.handleAdvancedSettingsToggle.bind(this),this.handleInputChange=this.handleInputChange.bind(this),this.handleProviderChange=this.handleProviderChange.bind(this),this.handleAuthenticationMethodChange=this.handleAuthenticationMethodChange.bind(this)}handleProviderChange(e){const t=e.target.value,n=On.find((e=>e.id===t));this.props.adminSmtpSettingsContext.changeProvider(n)}handleAuthenticationMethodChange(e){let t=null,n=null;e.target.value===ns?t="":e.target.value===ss&&(t="",n=""),this.props.adminSmtpSettingsContext.setData({username:t,password:n})}handleInputChange(e){const t=e.target;this.props.adminSmtpSettingsContext.setData({[t.name]:t.value})}handleAdvancedSettingsToggle(){this.setState({showAdvancedSettings:!this.state.showAdvancedSettings})}isProcessing(){return this.props.adminSmtpSettingsContext.isProcessing()}get providerList(){return On.map((e=>({value:e.id,label:e.name})))}get authenticationMethodList(){return[{value:ts,label:this.translate("None")},{value:ns,label:this.translate("Username only")},{value:ss,label:this.translate("Username & password")}]}get tlsSelectList(){return[{value:!0,label:this.translate("Yes")},{value:!1,label:this.translate("No")}]}get authenticationMethod(){const e=this.props.adminSmtpSettingsContext.getCurrentSmtpSettings();return null===e?.username?ts:null===e?.password?ns:ss}shouldDisplayUsername(){return this.authenticationMethod===ns||this.authenticationMethod===ss}shouldDisplayPassword(){return this.authenticationMethod===ss}shouldShowSourceWarningMessage(){const e=this.props.adminSmtpSettingsContext;return"file"===e.getCurrentSmtpSettings().source&&e.isSettingsModified()}isReady(){return this.props.adminSmtpSettingsContext.isDataReady()}get translate(){return this.props.t}render(){const e=this.props.adminSmtpSettingsContext.getCurrentSmtpSettings(),t=this.props.adminSmtpSettingsContext.getErrors();return s.createElement("div",{className:"grid grid-responsive-12"},s.createElement("div",{className:"row"},s.createElement("div",{className:"smtp-settings col8 main-column"},s.createElement("h3",null,s.createElement(f.c,null,"Email server")),this.isReady()&&!e?.provider&&s.createElement(s.Fragment,null,s.createElement("h4",{className:"no-border"},s.createElement(f.c,null,"Select a provider")),s.createElement("div",{className:"smtp-provider-list"},On.map((e=>s.createElement("div",{key:e.id,className:"smtp-provider button",id:e.id,onClick:()=>this.props.adminSmtpSettingsContext.changeProvider(e)},s.createElement("div",{className:"smtp-provider-logo"},"other"===e.id&&s.createElement(O,{name:"envelope"}),"other"!==e.id&&s.createElement("img",{src:`${this.props.context.trustedDomain}/img/third_party/${e.icon}`})),s.createElement("p",{className:"smtp-provider-name"},e.name)))))),this.isReady()&&e?.provider&&s.createElement(s.Fragment,null,this.shouldShowSourceWarningMessage()&&s.createElement("div",{className:"warning message"},s.createElement(f.c,null,s.createElement("b",null,"Warning:")," These are the settings provided by a configuration file. If you save it, will ignore the settings on file and use the ones from the database.")),s.createElement("form",{className:"form"},s.createElement("h4",{className:"no-border"},s.createElement(f.c,null,"SMTP server configuration")),s.createElement("div",{className:"select-wrapper input required "+(this.isProcessing()?"disabled":"")},s.createElement("label",{htmlFor:"smtp-settings-form-provider"},s.createElement(f.c,null,"Email provider")),s.createElement(nt,{id:"smtp-settings-form-provider",name:"provider",items:this.providerList,value:e.provider.id,onChange:this.handleProviderChange,disabled:this.isProcessing()})),s.createElement("div",{className:"select-wrapper input required "+(this.isProcessing()?"disabled":"")},s.createElement("label",{htmlFor:"smtp-settings-form-authentication-method"},s.createElement(f.c,null,"Authentication method")),s.createElement(nt,{id:"smtp-settings-form-authentication-method",name:"authentication-method",items:this.authenticationMethodList,value:this.authenticationMethod,onChange:this.handleAuthenticationMethodChange,disabled:this.isProcessing()})),this.shouldDisplayUsername()&&s.createElement("div",{className:`input text ${t.username?"error":""} ${this.isProcessing()?"disabled":""}`},s.createElement("label",{htmlFor:"smtp-settings-form-username"},s.createElement(f.c,null,"Username")),s.createElement("input",{id:"smtp-settings-form-username",ref:this.usernameFieldRef,name:"username",className:"fluid",maxLength:"256",type:"text",autoComplete:"off",value:e.username,onChange:this.handleInputChange,placeholder:this.translate("Username"),disabled:this.isProcessing()}),t.username&&s.createElement("div",{className:"error-message"},t.username)),this.shouldDisplayPassword()&&s.createElement("div",{className:`input-password-wrapper input ${t.password?"error":""} ${this.isProcessing()?"disabled":""}`},s.createElement("label",{htmlFor:"smtp-settings-form-password"},s.createElement(f.c,null,"Password")),s.createElement(Fe,{id:"smtp-settings-form-password",name:"password",autoComplete:"new-password",placeholder:this.translate("Password"),preview:!0,value:e.password,onChange:this.handleInputChange,disabled:this.isProcessing(),inputRef:this.passwordFieldRef}),t.password&&s.createElement("div",{className:"password error-message"},t.password)),s.createElement("div",{className:"accordion-header"},s.createElement("a",{onClick:this.handleAdvancedSettingsToggle},s.createElement(O,{name:this.state.showAdvancedSettings?"caret-down":"caret-right"}),s.createElement(f.c,null,"Advanced settings"))),this.state.showAdvancedSettings&&s.createElement("div",{className:"advanced-settings"},s.createElement("div",{className:`input text required ${t.host?"error":""} ${this.isProcessing()?"disabled":""}`},s.createElement("label",{htmlFor:"smtp-settings-form-host"},s.createElement(f.c,null,"SMTP host")),s.createElement("input",{id:"smtp-settings-form-host",ref:this.hostFieldRef,name:"host",className:"fluid",maxLength:"256",type:"text",autoComplete:"off",value:e.host,onChange:this.handleInputChange,placeholder:this.translate("SMTP server address"),disabled:this.isProcessing()}),t.host&&s.createElement("div",{className:"error-message"},t.host)),s.createElement("div",{className:`input text required ${t.tls?"error":""} ${this.isProcessing()?"disabled":""}`},s.createElement("label",{htmlFor:"smtp-settings-form-tls"},s.createElement(f.c,null,"Use TLS")),s.createElement(nt,{id:"smtp-settings-form-tls",name:"tls",items:this.tlsSelectList,value:e.tls,onChange:this.handleInputChange,disabled:this.isProcessing()})),s.createElement("div",{className:`input text required ${t.port?"error":""} ${this.isProcessing()?"disabled":""}`},s.createElement("label",{htmlFor:"smtp-settings-form-port"},s.createElement(f.c,null,"Port")),s.createElement("input",{id:"smtp-settings-form-port",ref:this.portFieldRef,name:"port",className:"fluid",maxLength:"256",type:"text",autoComplete:"off",value:e.port,onChange:this.handleInputChange,placeholder:this.translate("Port number"),disabled:this.isProcessing()}),t.port&&s.createElement("div",{className:"error-message"},t.port))),s.createElement("h4",null,s.createElement(f.c,null,"Sender configuration")),s.createElement("div",{className:`input text required ${t.sender_name?"error":""} ${this.isProcessing()?"disabled":""}`},s.createElement("label",{htmlFor:"smtp-settings-form-sender-name"},s.createElement(f.c,null,"Sender name")),s.createElement("input",{id:"smtp-settings-form-sender-name",ref:this.senderNameFieldRef,name:"sender_name",className:"fluid",maxLength:"256",type:"text",autoComplete:"off",value:e.sender_name,onChange:this.handleInputChange,placeholder:this.translate("Sender name"),disabled:this.isProcessing()}),t.sender_name&&s.createElement("div",{className:"error-message"},t.sender_name),s.createElement("p",null,s.createElement(f.c,null,"This is the name users will see in their mailbox when passbolt sends a notification."))),s.createElement("div",{className:`input text required ${t.sender_email?"error":""} ${this.isProcessing()?"disabled":""}`},s.createElement("label",{htmlFor:"smtp-settings-form-sender-name"},s.createElement(f.c,null,"Sender email")),s.createElement("input",{id:"smtp-settings-form-sender-email",ref:this.senderEmailFieldRef,name:"sender_email",className:"fluid",maxLength:"256",type:"text",autoComplete:"off",value:e.sender_email,onChange:this.handleInputChange,placeholder:this.translate("Sender email"),disabled:this.isProcessing()}),t.sender_email&&s.createElement("div",{className:"error-message"},t.sender_email),s.createElement("p",null,s.createElement(f.c,null,"This is the email address users will see in their mail box when passbolt sends a notification.",s.createElement("br",null),"It's a good practice to provide a working email address that users can reply to.")))))),s.createElement("div",{className:"col4 last"},s.createElement("div",{className:"sidebar-help"},s.createElement("h3",null,s.createElement(f.c,null,"Why do I need an SMTP server?")),s.createElement("p",null,s.createElement(f.c,null,"Passbolt needs an smtp server in order to send invitation emails after an account creation and to send email notifications.")),s.createElement("a",{className:"button",href:"https://help.passbolt.com/configure/email/setup",target:"_blank",rel:"noopener noreferrer"},s.createElement(O,{name:"document"}),s.createElement("span",null,s.createElement(f.c,null,"Read the documentation")))),e?.provider&&"other"!==e?.provider.id&&s.createElement("div",{className:"sidebar-help"},s.createElement("h3",null,s.createElement(f.c,null,"How do I configure a ",e.provider.name," SMTP server?")),s.createElement("a",{className:"button",href:e.provider.help_page,target:"_blank",rel:"noopener noreferrer"},s.createElement(O,{name:"link"}),s.createElement("span",null,s.createElement(f.c,null,"See the ",e.provider.name," documentation")))))))}}rs.propTypes={context:i().object,dialogContext:i().any,administrationWorkspaceContext:i().object,adminSmtpSettingsContext:i().object,t:i().func};const as=I(Hn(g(de((0,k.Z)("common")(rs)))));class is extends s.Component{isMfaSelected(){return he.MFA===this.props.administrationWorkspaceContext.selectedAdministration}isUserDirectorySelected(){return he.USER_DIRECTORY===this.props.administrationWorkspaceContext.selectedAdministration}isEmailNotificationsSelected(){return he.EMAIL_NOTIFICATION===this.props.administrationWorkspaceContext.selectedAdministration}isSubscriptionSelected(){return he.SUBSCRIPTION===this.props.administrationWorkspaceContext.selectedAdministration}isInternationalizationSelected(){return he.INTERNATIONALIZATION===this.props.administrationWorkspaceContext.selectedAdministration}isAccountRecoverySelected(){return he.ACCOUNT_RECOVERY===this.props.administrationWorkspaceContext.selectedAdministration}isSmtpSettingsSelected(){return he.SMTP_SETTINGS===this.props.administrationWorkspaceContext.selectedAdministration}render(){const e=this.props.administrationWorkspaceContext.administrationWorkspaceAction;return s.createElement("div",{id:"container",className:"page administration"},s.createElement("div",{id:"app",tabIndex:"1000"},s.createElement("div",{className:"header first"},s.createElement(Se,null)),s.createElement("div",{className:"header second"},s.createElement(Ne,null),s.createElement(yt,{disabled:!0}),s.createElement(Me,{baseUrl:this.props.context.trustedDomain||this.props.context.userSettings.getTrustedDomain(),user:this.props.context.loggedInUser})),s.createElement("div",{className:"header third"},s.createElement("div",{className:"col1 main-action-wrapper"}),s.createElement(e,null)),s.createElement("div",{className:"panel main"},s.createElement("div",null,s.createElement("div",{className:"panel left"},s.createElement(je,null)),s.createElement("div",{className:"panel middle"},s.createElement(Ze,null),s.createElement("div",{className:"grid grid-responsive-12"},this.isMfaSelected()&&s.createElement(Ke,null),this.isUserDirectorySelected()&&s.createElement(rt,null),this.isEmailNotificationsSelected()&&s.createElement(mt,null),this.isSubscriptionSelected()&&s.createElement(Lt,null),this.isInternationalizationSelected()&&s.createElement(It,null),this.isAccountRecoverySelected()&&s.createElement(In,null),this.isSmtpSettingsSelected()&&s.createElement(as,null)))))))}}is.propTypes={context:i().any,administrationWorkspaceContext:i().object};const os=I(de(is));class ls extends s.Component{get privacyUrl(){return this.props.context.siteSettings.privacyLink}get creditsUrl(){return"https://www.passbolt.com/credits"}get unsafeUrl(){return"https://help.passbolt.com/faq/hosting/why-unsafe"}get termsUrl(){return this.props.context.siteSettings.termsLink}get versions(){const e=[],t=this.props.context.siteSettings.version;return t&&e.push(t),this.props.context.extensionVersion&&e.push(this.props.context.extensionVersion),e.join(" / ")}get isUnsafeMode(){const e=this.props.context.siteSettings.debug,t=this.props.context.siteSettings.url.startsWith("http://");return e||t}render(){return s.createElement("footer",null,s.createElement("div",{className:"footer"},s.createElement("ul",{className:"footer-links"},this.isUnsafeMode&&s.createElement("li",{className:"error-message"},s.createElement("a",{href:this.unsafeUrl,target:"_blank",rel:"noopener noreferrer"},s.createElement(f.c,null,"Unsafe mode"))),this.termsUrl&&s.createElement("li",null,s.createElement("a",{href:this.termsUrl,target:"_blank",rel:"noopener noreferrer"},s.createElement(f.c,null,"Terms"))),this.privacyUrl&&s.createElement("li",null,s.createElement("a",{href:this.privacyUrl,target:"_blank",rel:"noopener noreferrer"},s.createElement(f.c,null,"Privacy"))),s.createElement("li",null,s.createElement("a",{href:this.creditsUrl,target:"_blank",rel:"noopener noreferrer"},s.createElement(f.c,null,"Credits"))),s.createElement("li",null,this.versions&&s.createElement(B,{message:this.versions,direction:"left"},s.createElement("a",{href:this.creditsUrl,target:"_blank",rel:"noopener noreferrer"},s.createElement(O,{name:"heart-o"}))),!this.versions&&s.createElement("a",{href:this.creditsUrl,target:"_blank",rel:"noopener noreferrer"},s.createElement(O,{name:"heart-o"}))))))}}ls.propTypes={context:i().any};const cs=I((0,k.Z)("common")(ls));class ds extends s.Component{get isMfaEnabled(){return this.props.context.siteSettings.canIUse("multiFactorAuthentication")}get canIUseThemeCapability(){return this.props.context.siteSettings&&this.props.context.siteSettings.canIUse("accountSettings")}get canIUseMobileCapability(){return this.props.context.siteSettings&&this.props.context.siteSettings.canIUse("mobile")}get canIUseAccountRecoveryCapability(){return this.props.context.siteSettings&&this.props.context.siteSettings.canIUse("accountRecovery")}render(){const e=e=>this.props.location.pathname.endsWith(e);return s.createElement("div",{className:"navigation-secondary navigation-shortcuts"},s.createElement("ul",null,s.createElement("li",null,s.createElement("div",{className:"row "+(e("profile")?"selected":"")},s.createElement("div",{className:"main-cell-wrapper"},s.createElement("div",{className:"main-cell"},s.createElement("a",{onClick:this.props.navigationContext.onGoToUserSettingsProfileRequested},s.createElement("span",null,s.createElement(f.c,null,"Profile"))))))),s.createElement("li",null,s.createElement("div",{className:"row "+(e("keys")?"selected":"")},s.createElement("div",{className:"main-cell-wrapper"},s.createElement("div",{className:"main-cell"},s.createElement("a",{onClick:this.props.navigationContext.onGoToUserSettingsKeysRequested},s.createElement("span",null,s.createElement(f.c,null,"Keys inspector"))))))),s.createElement("li",null,s.createElement("div",{className:"row "+(e("passphrase")?"selected":"")},s.createElement("div",{className:"main-cell-wrapper"},s.createElement("div",{className:"main-cell"},s.createElement("a",{onClick:this.props.navigationContext.onGoToUserSettingsPassphraseRequested},s.createElement("span",null,s.createElement(f.c,null,"Passphrase"))))))),s.createElement("li",null,s.createElement("div",{className:"row "+(e("security-token")?"selected":"")},s.createElement("div",{className:"main-cell-wrapper"},s.createElement("div",{className:"main-cell"},s.createElement("a",{onClick:this.props.navigationContext.onGoToUserSettingsSecurityTokenRequested},s.createElement("span",null,s.createElement(f.c,null,"Security token"))))))),this.canIUseThemeCapability&&s.createElement("li",null,s.createElement("div",{className:"row "+(e("theme")?"selected":"")},s.createElement("div",{className:"main-cell-wrapper"},s.createElement("div",{className:"main-cell"},s.createElement("a",{onClick:this.props.navigationContext.onGoToUserSettingsThemeRequested},s.createElement("span",null,s.createElement(f.c,null,"Theme"))))))),this.isMfaEnabled&&s.createElement("li",null,s.createElement("div",{className:"row "+(e("mfa")?"selected":"")},s.createElement("div",{className:"main-cell-wrapper"},s.createElement("div",{className:"main-cell"},s.createElement("a",{onClick:this.props.navigationContext.onGoToUserSettingsMfaRequested},s.createElement("span",null,s.createElement(f.c,null,"Multi Factor Authentication"))))))),this.canIUseAccountRecoveryCapability&&s.createElement("li",null,s.createElement("div",{className:"row "+(e("account-recovery")?"selected":"")},s.createElement("div",{className:"main-cell-wrapper"},s.createElement("div",{className:"main-cell"},s.createElement("a",{onClick:this.props.navigationContext.onGoToUserSettingsAccountRecoveryRequested},s.createElement("span",null,s.createElement(f.c,null,"Account Recovery")),this.props.hasPendingAccountRecoveryChoice&&s.createElement(O,{name:"exclamation",baseline:!0})))))),this.canIUseMobileCapability&&s.createElement("li",null,s.createElement("div",{className:"row "+(e("mobile")?"selected":"")},s.createElement("div",{className:"main-cell-wrapper"},s.createElement("div",{className:"main-cell"},s.createElement("a",{onClick:this.props.navigationContext.onGoToUserSettingsMobileRequested},s.createElement("span",null,s.createElement(f.c,null,"Mobile setup")))))))))}}ds.propTypes={context:i().any,navigationContext:i().any,history:i().object,location:i().object,hasPendingAccountRecoveryChoice:i().bool};const hs=I((0,N.EN)(Ce((0,k.Z)("common")(ds))));class us extends s.Component{get items(){return[s.createElement(He,{key:"bread-1",name:this.translate("All users"),onClick:this.props.navigationContext.onGoToUsersRequested}),s.createElement(He,{key:"bread-2",name:this.loggedInUserName,onClick:this.props.navigationContext.onGoToUserSettingsProfileRequested}),s.createElement(He,{key:"bread-3",name:this.getLastBreadcrumbItemName,onClick:this.onLastBreadcrumbClick.bind(this)})]}get loggedInUserName(){const e=this.props.context.loggedInUser;return e?`${e.profile.first_name} ${e.profile.last_name}`:""}get getLastBreadcrumbItemName(){const e={profile:this.translate("Profile"),passphrase:this.translate("Passphrase"),"security-token":this.translate("Security token"),theme:this.translate("Theme"),mfa:this.translate("Multi Factor Authentication"),keys:this.translate("Keys inspector"),mobile:this.translate("Mobile transfer"),"account-recovery":this.translate("Account Recovery"),"smtp-settings":this.translate("Email server")};return e[Object.keys(e).find((e=>this.props.location.pathname.endsWith(e)))]}async onLastBreadcrumbClick(){const e=this.props.location.pathname;this.props.history.push({pathname:e})}get translate(){return this.props.t}render(){return s.createElement(Ge,{items:this.items})}}us.propTypes={context:i().any,location:i().object,history:i().object,navigationContext:i().any,t:i().func};const ps=I((0,N.EN)(Ce((0,k.Z)("common")(us))));class ms extends s.Component{render(){return s.createElement("iframe",{id:"setup-mfa",src:`${this.props.context.trustedDomain}/mfa/setup/select`,width:"100%",height:"100%"})}}ms.propTypes={context:i().any};const gs=I(ms);class ys extends s.Component{render(){return s.createElement("div",null,s.createElement("div",{className:"header second"},s.createElement(Ne,null),s.createElement(yt,{disabled:!0}),s.createElement(Me,{baseUrl:this.props.context.trustedDomain,user:this.props.context.loggedInUser})),s.createElement("div",{className:"header third"}),s.createElement("div",{className:"panel main"},s.createElement("div",{className:"panel left"},s.createElement(hs,null)),s.createElement("div",{className:"panel middle"},s.createElement(ps,null),s.createElement(N.AW,{path:"/app/settings/mfa",component:gs}))))}}ys.propTypes={context:i().any};const bs=(0,N.EN)(I(ys));class vs extends s.Component{constructor(e){super(e),this.initEventHandlers(),this.createReferences()}initEventHandlers(){this.handleCloseClick=this.handleCloseClick.bind(this)}createReferences(){this.loginLinkRef=s.createRef()}handleCloseClick(){this.goToLogin()}goToLogin(){this.loginLinkRef.current.click()}get loginUrl(){let e=this.props.context.userSettings&&this.props.context.userSettings.getTrustedDomain();return e=e||this.props.context.trustedDomain,`${e}/auth/login`}render(){return s.createElement($,{title:this.props.t("Session Expired"),onClose:this.handleCloseClick,className:"session-expired-dialog"},s.createElement("div",{className:"form-content"},s.createElement("p",null,s.createElement(f.c,null,"Your session has expired, you need to sign in."))),s.createElement("div",{className:"submit-wrapper clearfix"},s.createElement("a",{ref:this.loginLinkRef,href:this.loginUrl,className:"primary button",target:"_parent",role:"button",rel:"noopener noreferrer"},s.createElement(f.c,null,"Sign in"))))}}vs.propTypes={context:i().any,t:i().func};const fs=I((0,N.EN)((0,k.Z)("common")(vs)));class ks extends s.Component{constructor(e){super(e),this.bindCallbacks(),this.scheduledCheckIsAuthenticatedTimeout=null}bindCallbacks(){this.handleSessionExpiredEvent=this.handleSessionExpiredEvent.bind(this)}componentDidMount(){this.scheduleCheckIsAuthenticated()}componentWillUnmount(){clearTimeout(this.scheduledCheckIsAuthenticatedTimeout)}scheduleCheckIsAuthenticated(){this.scheduledCheckIsAuthenticatedTimeout=setTimeout((async()=>{await this.checkIsAuthenticated()?this.scheduleCheckIsAuthenticated():this.handleSessionExpiredEvent()}),6e4)}async checkIsAuthenticated(){return await this.props.context.onCheckIsAuthenticatedRequested()}handleSessionExpiredEvent(){this.props.dialogContext.open(fs)}render(){return s.createElement(s.Fragment,null)}}ks.propTypes={context:i().any,dialogContext:i().any};const Es=I(g(ks));function Cs(){return Cs=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},Cs.apply(this,arguments)}const ws=s.createContext({announcements:[],show:()=>{},close:()=>{}});class Ss extends s.Component{constructor(e){super(e),this.state=this.defaultState}get defaultState(){return{announcements:[],show:(e,t)=>{const n=(0,o.Z)();return this.setState({announcements:[...this.state.announcements,{key:n,Announcement:e,AnnouncementProps:t}]}),n},close:async e=>await this.setState({announcements:this.state.announcements.filter((t=>e!==t.key))})}}render(){return s.createElement(ws.Provider,{value:this.state},this.props.children)}}function xs(e){return class extends s.Component{render(){return s.createElement(ws.Consumer,null,(t=>s.createElement(e,Cs({announcementContext:t},this.props))))}}}Ss.displayName="AnnouncementContextProvider",Ss.propTypes={children:i().any};class Ns extends s.Component{constructor(e){super(e),this.bindCallbacks()}bindCallbacks(){this.handleClose=this.handleClose.bind(this)}handleClose(){this.props.onClose()}render(){return s.createElement("div",{className:`${this.props.className} announcement`},s.createElement("div",{className:"announcement-content"},this.props.canClose&&s.createElement("a",{className:"announcement-close dialog-close button button-transparent",onClick:this.handleClose,role:"button"},s.createElement(O,{name:"close"}),s.createElement("span",{className:"visually-hidden"},s.createElement(f.c,null,"Close"))),this.props.children))}}Ns.propTypes={children:i().node,className:i().string,canClose:i().bool,onClose:i().func};const Ls=(0,k.Z)("common")(Ns);class Rs extends s.Component{formatDateTimeAgo(e){const t=bt.ou.fromISO(e),n=t.diffNow().toMillis();return n>-1e3&&n<0?this.props.t("Just now"):t.toRelative({locale:this.props.context.locale})}render(){return s.createElement(Ls,{className:"subscription",onClose:this.props.onClose,canClose:!0},s.createElement("p",null,s.createElement(f.c,null,"Warning:")," ",s.createElement(f.c,null,"your subscription key will expire")," ",this.formatDateTimeAgo(this.props.expiry),".",s.createElement("a",{onClick:this.props.navigationContext.onGoToAdministrationSubscriptionRequested},s.createElement(f.c,null,"Manage Subscription"))))}}Rs.propTypes={context:i().any,expiry:i().string,navigationContext:i().any,onClose:i().func,t:i().func};const Is=I(Ce(xs((0,k.Z)("common")(Rs))));class As extends s.Component{render(){return s.createElement(Ls,{className:"subscription",onClose:this.props.onClose,canClose:!1},s.createElement("p",null,s.createElement(f.c,null,"Warning:")," ",s.createElement(f.c,null,"your subscription key has expired. The stability of the application is at risk."),s.createElement("a",{onClick:this.props.navigationContext.onGoToAdministrationSubscriptionRequested},s.createElement(f.c,null,"Manage Subscription"))))}}As.propTypes={navigationContext:i().any,onClose:i().func,i18n:i().any};const Ts=Ce(xs((0,k.Z)("common")(As)));class Ds extends s.Component{render(){return s.createElement(Ls,{className:"subscription",onClose:this.props.onClose,canClose:!1},s.createElement("p",null,s.createElement(f.c,null,"Warning:")," ",s.createElement(f.c,null,"your subscription key is not valid. The stability of the application is at risk."),s.createElement("a",{onClick:this.props.navigationContext.onGoToAdministrationSubscriptionRequested},s.createElement(f.c,null,"Manage Subscription"))))}}Ds.propTypes={navigationContext:i().any,onClose:i().func,i18n:i().any};const Us=Ce(xs((0,k.Z)("common")(Ds)));class _s extends s.Component{constructor(e){super(e),this.bindCallbacks()}bindCallbacks(){this.handleAnnouncementSubscriptionEvent=this.handleAnnouncementSubscriptionEvent.bind(this)}componentDidMount(){this.handleAnnouncementSubscriptionEvent()}componentDidUpdate(e){this.handleRefreshSubscriptionAnnouncement(e.context.refreshSubscriptionAnnouncement)}async handleRefreshSubscriptionAnnouncement(e){this.props.context.refreshSubscriptionAnnouncement!==e&&this.props.context.refreshSubscriptionAnnouncement&&(await this.handleAnnouncementSubscriptionEvent(),this.props.context.setContext({refreshSubscriptionAnnouncement:null}))}async handleAnnouncementSubscriptionEvent(){this.hideSubscriptionAnnouncement();try{const e=await this.props.context.onGetSubscriptionKeyRequested();this.isSubscriptionGoingToExpire(e.expiry)&&this.props.announcementContext.show(Is,{expiry:e.expiry})}catch(e){"PassboltSubscriptionError"===e.name?this.props.announcementContext.show(Ts):this.props.announcementContext.show(Us)}}hideSubscriptionAnnouncement(){const e=[Is,Ts,Us];this.props.announcementContext.announcements.forEach((t=>{e.some((e=>e===t.Announcement))&&this.props.announcementContext.close(t.key)}))}isSubscriptionGoingToExpire(e){return bt.ou.fromISO(e)<bt.ou.now().plus({days:30})}render(){return s.createElement(s.Fragment,null)}}_s.propTypes={context:i().any,announcementContext:i().any};const Ms=I(xs(_s));function Ps(){return Ps=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},Ps.apply(this,arguments)}class js extends s.Component{constructor(e){super(e),this.bindCallback()}bindCallback(){this.close=this.close.bind(this)}async close(e){this.props.announcementContext.close(e)}render(){return s.createElement(s.Fragment,null,this.props.announcementContext.announcements.map((({key:e,Announcement:t,AnnouncementProps:n})=>s.createElement(t,Ps({key:e,onClose:()=>this.close(e)},n)))),this.props.children)}}js.propTypes={announcementContext:i().any,children:i().any};const Ws=xs(js),zs=(e,t)=>t.split(".").reduce(((e,t)=>void 0===e?e:e[t]),e),qs=(e,t)=>{if(void 0===e||"string"!=typeof e||!e.length)return!1;if((t=t||{}).whitelistedProtocols&&!Array.isArray(t.whitelistedProtocols))throw new TypeError("The whitelistedProtocols should be an array of string.");if(t.defaultProtocol&&"string"!=typeof t.defaultProtocol)throw new TypeError("The defaultProtocol should be a string.");const n=t.whitelistedProtocols||[Fs.HTTP,Fs.HTTPS],s=[Fs.JAVASCRIPT],r=t.defaultProtocol||"";!/^((?!:\/\/).)*:\/\//.test(e)&&r&&(e=`${r}//${e}`);try{const t=new URL(e);return!s.includes(t.protocol)&&!!n.includes(t.protocol)&&t.href}catch(e){return!1}},Fs={FTP:"http:",FTPS:"https:",HTTP:"http:",HTTPS:"https:",JAVASCRIPT:"javascript:",SSH:"ssh:"};class Os{constructor(e){this.settings=e}canIUse(e){let t=!1;const n=`passbolt.plugins.${e}`,s=zs(this.settings,n)||null;if(s&&"object"==typeof s){const e=zs(s,"enabled");void 0!==e&&!0!==e||(t=!0)}return t}getPluginSettings(e){const t=`passbolt.plugins.${e}`;return zs(this.settings,t)}getRememberMeOptions(){return(this.getPluginSettings("rememberMe")||{}).options||{}}get hasRememberMeUntilILogoutOption(){return void 0!==(this.getRememberMeOptions()||{})[-1]}getServerTimezone(){return zs(this.settings,"passbolt.app.server_timezone")}get termsLink(){const e=zs(this.settings,"passbolt.legal.terms.url");return!!e&&qs(e)}get privacyLink(){const e=zs(this.settings,"passbolt.legal.privacy_policy.url");return!!e&&qs(e)}get registrationPublic(){return!0===zs(this.settings,"passbolt.registration.public")}get debug(){return!0===zs(this.settings,"app.debug")}get url(){return zs(this.settings,"app.url")||""}get version(){return zs(this.settings,"app.version.number")}get locale(){return zs(this.settings,"app.locale")||Os.DEFAULT_LOCALE.locale}async setLocale(e){this.settings.app.locale=e}get supportedLocales(){return zs(this.settings,"passbolt.plugins.locale.options")||Os.DEFAULT_SUPPORTED_LOCALES}get generatorConfiguration(){return zs(this.settings,"passbolt.plugins.generator.configuration")}static get DEFAULT_SUPPORTED_LOCALES(){return[Os.DEFAULT_LOCALE]}static get DEFAULT_LOCALE(){return{locale:"en-UK",label:"English"}}}class Ks{constructor(e){this.setToken(e)}setToken(e){this.validate(e),this.token=e}validate(e){if(!e)throw new TypeError("CSRF token cannot be empty.");if("string"!=typeof e)throw new TypeError("CSRF token should be a string.")}toFetchHeaders(){return{"X-CSRF-Token":this.token}}static getToken(){const e=document.cookie;if(!e)return;const t=e.split("; ");if(!t)return;const n=t.find((e=>e.startsWith("csrfToken")));if(!n)return;const s=n.split("=");return s&&2===s.length?s[1]:void 0}}class Vs{setBaseUrl(e){if(!e)throw new TypeError("ApiClientOption baseUrl is required.");if("string"==typeof e)try{this.baseUrl=new URL(e)}catch(e){throw new TypeError("ApiClientOption baseUrl is invalid.")}else{if(!(e instanceof URL))throw new TypeError("ApiClientOptions baseurl should be a string or URL");this.baseUrl=e}return this}setCsrfToken(e){if(!e)throw new TypeError("ApiClientOption csrfToken is required.");if("string"==typeof e)this.csrfToken=new Ks(e);else{if(!(e instanceof Ks))throw new TypeError("ApiClientOption csrfToken should be a string or a valid CsrfToken.");this.csrfToken=e}return this}setResourceName(e){if(!e)throw new TypeError("ApiClientOptions.setResourceName resourceName is required.");if("string"!=typeof e)throw new TypeError("ApiClientOptions.setResourceName resourceName should be a valid string.");return this.resourceName=e,this}getBaseUrl(){return this.baseUrl}getResourceName(){return this.resourceName}getHeaders(){if(this.csrfToken)return this.csrfToken.toFetchHeaders()}}class Gs extends Error{constructor(e,t={}){super(e),this.name="PassboltSubscriptionError",this.subscription=t}}const Bs=Gs;class Hs extends s.Component{constructor(e){super(e),this.state=this.defaultState}async componentDidMount(){await this.getLoggedInUser(),await this.getSiteSettings(),this.initLocale(),this.removeSplashScreen()}get defaultState(){return{name:"api",loggedInUser:null,siteSettings:null,trustedDomain:this.baseUrl,basename:new URL(this.baseUrl).pathname,getApiClientOptions:this.getApiClientOptions.bind(this),locale:null,displayTestUserDirectoryDialogProps:{userDirectoryTestResult:null},setContext:e=>{this.setState(e)},onLogoutRequested:()=>this.onLogoutRequested(),onCheckIsAuthenticatedRequested:()=>this.onCheckIsAuthenticatedRequested(),onGetSubscriptionKeyRequested:()=>this.onGetSubscriptionKeyRequested(),onRefreshLocaleRequested:this.onRefreshLocaleRequested.bind(this)}}get isReady(){return null!==this.state.siteSettings&&null!==this.state.locale}get baseUrl(){const e=document.getElementsByTagName("base")&&document.getElementsByTagName("base")[0];return e?e.attributes.href.value.replace(/\/*$/g,""):(console.error("Unable to retrieve the page base tag"),"")}getApiClientOptions(){return(new Vs).setBaseUrl(this.state.trustedDomain).setCsrfToken(Ks.getToken())}async getLoggedInUser(){const e=this.getApiClientOptions().setResourceName("users"),t=new q(e),n=(await t.get("me")).body;this.setState({loggedInUser:n})}async getSiteSettings(){const e=this.getApiClientOptions().setResourceName("settings"),t=new q(e),n=await t.findAll();await this.setState({siteSettings:new Os(n.body)})}async initLocale(){const e=await this.getUserLocale();if(e)return this.setState({locale:e.locale});const t=this.state.siteSettings.locale;return this.setState({locale:t})}async getUserLocale(){const e=(await this.getUserSettings()).find((e=>"locale"===e.property));if(e)return this.state.siteSettings.supportedLocales.find((t=>t.locale===e.value))}async getUserSettings(){const e=this.getApiClientOptions().setResourceName("account/settings"),t=new q(e);return(await t.findAll()).body}removeSplashScreen(){document.getElementsByTagName("html")[0].classList.remove("launching")}onLogoutRequested(){document.location.href=`${this.state.trustedDomain}/auth/logout`}async onCheckIsAuthenticatedRequested(){try{const e=this.getApiClientOptions().setResourceName("auth"),t=new q(e);return await t.get("is-authenticated"),!0}catch(e){if(e instanceof M&&401===e.data.code)return!1;throw e}}async onGetSubscriptionKeyRequested(){try{const e=this.getApiClientOptions().setResourceName("ee/subscription"),t=new q(e);return(await t.get("key")).body}catch(e){if(e instanceof M&&e.data&&402===e.data.code){const t=e.data.body;throw new Bs(e.message,t)}throw e}}onRefreshLocaleRequested(e){this.state.siteSettings.setLocale(e),this.initLocale()}render(){const e=this.isReady;return s.createElement(A.Provider,{value:this.state},e&&this.props.children)}}Hs.propTypes={children:i().any};const $s=Hs;var Zs=n(4872),Ys=n(7031),Js=n(5538);class Qs extends s.Component{constructor(e){super(e),this.state=this.defaultState}get defaultState(){return{ready:!1}}async componentDidMount(){await Zs.ZP.use(Ys.Db).use(Js.Z).init({lng:this.locale,load:"currentOnly",interpolation:{escapeValue:!1},react:{useSuspense:!1},backend:{loadPath:this.props.loadingPath||"/locales/{{lng}}/{{ns}}.json"},supportedLngs:this.supportedLocales,fallbackLng:!1,ns:["common"],defaultNS:"common",keySeparator:!1,nsSeparator:!1,debug:!1}),this.setState({ready:!0})}get supportedLocales(){return this.props.context.siteSettings.supportedLocales?this.props.context.siteSettings.supportedLocales.map((e=>e.locale)):[this.locale]}get locale(){return this.props.context.locale}async componentDidUpdate(e){await this.handleLocaleChange(e.context.locale)}async handleLocaleChange(e){this.locale!==e&&await Zs.ZP.changeLanguage(this.locale)}get isReady(){return this.state.ready}render(){return s.createElement(s.Fragment,null,this.isReady&&this.props.children)}}Qs.propTypes={context:i().any,loadingPath:i().any,children:i().any};const Xs=I(Qs);class er{constructor(){this.baseUrl=this.getBaseUrl()}async getOrganizationAccountRecoverySettings(){const e=this.getApiClientOptions().setResourceName("account-recovery/organization-policies"),t=new q(e);return(await t.findAll()).body}getBaseUrl(){const e=document.getElementsByTagName("base")&&document.getElementsByTagName("base")[0];return e?e.attributes.href.value.replace(/\/*$/g,""):(console.error("Unable to retrieve the page base tag"),"")}getApiClientOptions(){return(new Vs).setBaseUrl(this.baseUrl).setCsrfToken(this.getCsrfToken())}getCsrfToken(){const e=document.cookie;if(!e)return;const t=e.split("; ");if(!t)return;const n=t.find((e=>e.startsWith("csrfToken")));if(!n)return;const s=n.split("=");return s&&2===s.length?s[1]:void 0}}class tr extends s.Component{render(){const e=new er;return s.createElement($s,null,s.createElement(A.Consumer,null,(t=>s.createElement(Xs,{loadingPath:`${t.trustedDomain}/locales/{{lng}}/{{ns}}.json`},s.createElement(Ae,{accountRecoveryUserService:e},s.createElement(d,null,s.createElement(m,null,s.createElement(Ss,null,s.createElement(v,null,s.createElement(S,null),s.createElement(Es,null),t.loggedInUser&&"admin"===t.loggedInUser.role.name&&t.siteSettings.canIUse("ee")&&s.createElement(Ms,null),s.createElement(x.VK,{basename:t.basename},s.createElement(Ee,null,s.createElement(N.rs,null,s.createElement(N.AW,{exact:!0,path:["/app/administration/subscription","/app/administration/account-recovery"]}),s.createElement(N.AW,{path:"/app/administration"},s.createElement(le,null,s.createElement(Bn,null,s.createElement(me,null),s.createElement(be,null),s.createElement(Ws,null),s.createElement(ct,null,s.createElement(os,null))))),s.createElement(N.AW,{path:["/app/settings/mfa"]},s.createElement(me,null),s.createElement(be,null),s.createElement(Ws,null),s.createElement("div",{id:"container",className:"page settings"},s.createElement("div",{id:"app",className:"app",tabIndex:"1000"},s.createElement("div",{className:"header first"},s.createElement(Se,null)),s.createElement(bs,null))))))),s.createElement(cs,null))))))))))}}const nr=tr,sr=document.createElement("div");document.body.appendChild(sr),r.render(s.createElement(nr,null),sr)}},r={};function a(e){var t=r[e];if(void 0!==t)return t.exports;var n=r[e]={exports:{}};return s[e].call(n.exports,n,n.exports,a),n.exports}a.m=s,e=[],a.O=(t,n,s,r)=>{if(!n){var i=1/0;for(d=0;d<e.length;d++){for(var[n,s,r]=e[d],o=!0,l=0;l<n.length;l++)(!1&r||i>=r)&&Object.keys(a.O).every((e=>a.O[e](n[l])))?n.splice(l--,1):(o=!1,r<i&&(i=r));if(o){e.splice(d--,1);var c=s();void 0!==c&&(t=c)}}return t}r=r||0;for(var d=e.length;d>0&&e[d-1][2]>r;d--)e[d]=e[d-1];e[d]=[n,s,r]},a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},n=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,a.t=function(e,s){if(1&s&&(e=this(e)),8&s)return e;if("object"==typeof e&&e){if(4&s&&e.__esModule)return e;if(16&s&&"function"==typeof e.then)return e}var r=Object.create(null);a.r(r);var i={};t=t||[null,n({}),n([]),n(n)];for(var o=2&s&&e;"object"==typeof o&&!~t.indexOf(o);o=n(o))Object.getOwnPropertyNames(o).forEach((t=>i[t]=()=>e[t]));return i.default=()=>e,a.d(r,i),r},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.j=978,(()=>{var e={978:0};a.O.j=t=>0===e[t];var t=(t,n)=>{var s,r,[i,o,l]=n,c=0;if(i.some((t=>0!==e[t]))){for(s in o)a.o(o,s)&&(a.m[s]=o[s]);if(l)var d=l(a)}for(t&&t(n);c<i.length;c++)r=i[c],a.o(e,r)&&e[r]&&e[r][0](),e[r]=0;return a.O(d)},n=self.webpackChunkpassbolt_styleguide=self.webpackChunkpassbolt_styleguide||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})();var i=a.O(void 0,[596],(()=>a(361)));i=a.O(i)})();
|
|
2
|
+
(()=>{"use strict";var e,t,a,n={2482:(e,t,a)=>{var n=a(7294),o=a(3935),i=a(5697),s=a.n(i),r=a(2045);function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},l.apply(this,arguments)}const c=n.createContext({feedbacks:[],displaySuccess:()=>{},displayError:()=>{},remove:()=>{}});class m extends n.Component{constructor(e){super(e),this.state=this.defaultState}get defaultState(){return{feedbacks:[],displaySuccess:this.displaySuccess.bind(this),displayError:this.displayError.bind(this),remove:this.remove.bind(this)}}async displaySuccess(e){await this.setState({feedbacks:[...this.state.feedbacks,{id:(0,r.Z)(),type:"success",message:e}]})}async displayError(e){await this.setState({feedbacks:[...this.state.feedbacks,{id:(0,r.Z)(),type:"error",message:e}]})}async remove(e){await this.setState({feedbacks:this.state.feedbacks.filter((t=>e.id!==t.id))})}render(){return n.createElement(c.Provider,{value:this.state},this.props.children)}}function d(e){return class extends n.Component{render(){return n.createElement(c.Consumer,null,(t=>n.createElement(e,l({actionFeedbackContext:t},this.props))))}}}function h(){return h=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},h.apply(this,arguments)}m.displayName="ActionFeedbackContextProvider",m.propTypes={children:s().any};const u=n.createContext({dialogs:[],open:()=>{},close:()=>{}});class p extends n.Component{constructor(e){super(e),this.state=this.defaultState}get defaultState(){return{dialogs:[],open:(e,t)=>{const a=(0,r.Z)();return this.setState({dialogs:[...this.state.dialogs,{key:a,Dialog:e,DialogProps:t}]}),a},close:e=>this.setState({dialogs:this.state.dialogs.filter((t=>e!==t.key))})}}render(){return n.createElement(u.Provider,{value:this.state},this.props.children)}}function g(e){return class extends n.Component{render(){return n.createElement(u.Consumer,null,(t=>n.createElement(e,h({dialogContext:t},this.props))))}}}function b(){return b=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},b.apply(this,arguments)}p.displayName="DialogContextProvider",p.propTypes={children:s().any};const f=n.createContext({ContextualMenu:null,show:()=>{},hide:()=>{}});class y extends n.Component{constructor(e){super(e),this.state=this.defaultState}get defaultState(){return{contextualMenus:[],show:(e,t)=>this.setState({contextualMenus:[...this.state.contextualMenus,{ContextualMenuComponent:e,componentProps:t}]}),hide:e=>this.setState({contextualMenus:this.state.contextualMenus.filter(((t,a)=>a!==e))})}}render(){return n.createElement(f.Provider,{value:this.state},this.props.children)}}y.displayName="ContextualMenuContextProvider",y.propTypes={children:s().any};var v=a(9116),k=a(570);class E extends n.Component{static get DEFAULT_WAIT_TO_CLOSE_TIME_IN_MS(){return 500}constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks()}get defaultState(){return{shouldRender:!0,isPersisted:!1,timeoutId:null}}componentDidMount(){this.displayWithTimer(this.props.displayTimeInMs)}componentDidUpdate(e){const t=e&&e.feedback.id!==this.props.feedback.id,a=e&&this.props.displayTimeInMs&&e.displayTimeInMs!==this.props.displayTimeInMs;t?(this.setState({shouldRender:!0}),this.displayWithTimer(this.props.displayTimeInMs)):a&&this.updateTimer(this.props.displayTimeInMs)}componentWillUnmount(){this.state.timeoutId&&clearTimeout(this.state.timeoutId)}bindCallbacks(){this.persist=this.persist.bind(this),this.displayWithTimer=this.displayWithTimer.bind(this),this.close=this.close.bind(this)}displayWithTimer(e){this.state.timeoutId&&clearTimeout(this.state.timeoutId);const t=setTimeout(this.close,e),a=Date.now();this.setState({timeoutId:t,time:a})}updateTimer(e){const t=e-(Date.now()-this.state.time);t>0?this.displayWithTimer(t):(clearTimeout(this.state.timeoutId),this.close())}persist(){this.state.timeoutId&&!this.state.isPersisted&&(clearTimeout(this.state.timeoutId),this.setState({isPersisted:!0}))}close(){this.setState({shouldRender:!1}),setTimeout(this.props.onClose,E.DEFAULT_WAIT_TO_CLOSE_TIME_IN_MS)}render(){return n.createElement(n.Fragment,null,n.createElement("div",{className:"notification",onMouseOver:this.persist,onMouseLeave:this.displayWithTimer,onClick:this.close},n.createElement("div",{className:`message animated ${this.state.shouldRender?"fadeInUp":"fadeOutUp"} ${this.props.feedback.type}`},n.createElement("span",{className:"content"},n.createElement("strong",null,"success"===this.props.feedback.type&&n.createElement(n.Fragment,null,n.createElement(v.c,null,"Success"),": "),"error"===this.props.feedback.type&&n.createElement(n.Fragment,null,n.createElement(v.c,null,"Error"),": ")),this.props.feedback.message))))}}E.propTypes={feedback:s().object,onClose:s().func,displayTimeInMs:s().number};const w=(0,k.Z)("common")(E);class C extends n.Component{constructor(e){super(e),this.bindCallbacks()}static get DEFAULT_DISPLAY_TIME_IN_MS(){return 5e3}static get DEFAULT_DISPLAY_MIN_TIME_IN_MS(){return 1200}bindCallbacks(){this.close=this.close.bind(this)}get feedbackToDisplay(){return this.props.actionFeedbackContext.feedbacks[0]}get length(){return this.props.actionFeedbackContext.feedbacks.length}get hasFeedbacks(){return this.length>0}async close(e){await this.props.actionFeedbackContext.remove(e)}render(){const e=this.length>1?C.DEFAULT_DISPLAY_MIN_TIME_IN_MS:C.DEFAULT_DISPLAY_TIME_IN_MS;return n.createElement(n.Fragment,null,this.hasFeedbacks&&n.createElement("div",{className:"notification-container"},n.createElement(w,{feedback:this.feedbackToDisplay,onClose:()=>this.close(this.feedbackToDisplay),displayTimeInMs:e})))}}C.propTypes={actionFeedbackContext:s().any};const S=d(C);var x=a(3727),N=a(6550);function L(){return L=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},L.apply(this,arguments)}const I=n.createContext({user:null,users:null,roles:null,rememberMeOptions:{},resources:null,resource:null,shareResources:null,selectedResources:null,selectedUser:null,folders:null,resourceCommentId:null,mustRefreshComments:!1,siteSettings:null,userSettings:null,onCheckIsAuthenticatedRequested:null});function R(e){return class extends n.Component{render(){return n.createElement(I.Consumer,null,(t=>n.createElement(e,L({context:t},this.props))))}}}const A=I;function z(){return z=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},z.apply(this,arguments)}const D=n.createContext({counter:[],add:()=>{},remove:()=>{}});class T extends n.Component{constructor(e){super(e),this.state=this.defaultState}get defaultState(){return{counter:0,add:()=>{this.setState({counter:this.state.counter+1})},remove:()=>{this.setState({counter:Math.min(this.state.counter-1,0)})}}}render(){return n.createElement(D.Provider,{value:this.state},this.props.children)}}function j(){return j=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},j.apply(this,arguments)}T.propTypes={children:s().any};const U=n.createContext({selectedAdministration:null,can:{save:!1},must:{save:!1,editSubscriptionKey:!1,refreshSubscriptionKey:!1},administrationWorkspaceAction:null,setDisplayAdministrationWorkspaceAction:()=>{},resetDisplayAdministrationWorkspaceAction:()=>{},onUpdateSubscriptionKeyRequested:()=>{},onSaveEnabled:()=>{},onMustSaveSettings:()=>{},onMustEditSubscriptionKey:()=>{},onMustRefreshSubscriptionKey:()=>{},onResetActionsSettings:()=>{}});class _ extends n.Component{constructor(e){super(e),this.state=this.defaultState}get defaultState(){return{selectedAdministration:q.NONE,can:{save:!1},must:{save:!1,editSubscriptionKey:!1,refreshSubscriptionKey:!1},administrationWorkspaceAction:()=>n.createElement(n.Fragment,null),setDisplayAdministrationWorkspaceAction:this.setDisplayAdministrationWorkspaceAction.bind(this),resetDisplayAdministrationWorkspaceAction:this.resetDisplayAdministrationWorkspaceAction.bind(this),onUpdateSubscriptionKeyRequested:this.onUpdateSubscriptionKeyRequested.bind(this),onSaveEnabled:this.handleSaveEnabled.bind(this),onMustSaveSettings:this.handleMustSaveSettings.bind(this),onMustEditSubscriptionKey:this.handleMustEditSubscriptionKey.bind(this),onMustRefreshSubscriptionKey:this.handleMustRefreshSubscriptionKey.bind(this),onResetActionsSettings:this.handleResetActionsSettings.bind(this)}}componentDidMount(){this.handleAdministrationMenuRouteChange()}async componentDidUpdate(e){await this.handleRouteChange(e.location)}async handleSaveEnabled(){await this.setState({can:{...this.state.can,save:!0}})}async handleMustSaveSettings(){await this.setState({must:{...this.state.must,save:!0}})}async handleMustEditSubscriptionKey(){await this.setState({must:{...this.state.must,editSubscriptionKey:!0}})}async handleMustRefreshSubscriptionKey(){await this.setState({must:{...this.state.must,refreshSubscriptionKey:!0}})}async handleResetActionsSettings(){await this.setState({must:{save:!1,test:!1,synchronize:!1,editSubscriptionKey:!1,refreshSubscriptionKey:!1}})}async handleRouteChange(e){this.props.location.key!==e.key&&await this.handleAdministrationMenuRouteChange()}async handleAdministrationMenuRouteChange(){const e=this.props.location.pathname.includes("mfa"),t=this.props.location.pathname.includes("users-directory"),a=this.props.location.pathname.includes("email-notification"),n=this.props.location.pathname.includes("subscription"),o=this.props.location.pathname.includes("internationalization"),i=this.props.location.pathname.includes("account-recovery"),s=this.props.location.pathname.includes("smtp-settings"),r=this.props.location.pathname.includes("self-registration"),l=this.props.location.pathname.includes("sso");let c;e?c=q.MFA:t?c=q.USER_DIRECTORY:a?c=q.EMAIL_NOTIFICATION:n?c=q.SUBSCRIPTION:o?c=q.INTERNATIONALIZATION:i?c=q.ACCOUNT_RECOVERY:s?c=q.SMTP_SETTINGS:r?c=q.SELF_REGISTRATION:l&&(c=q.SSO),await this.setState({selectedAdministration:c,can:{save:!1,test:!1,synchronize:!1},must:{save:!1,test:!1,synchronize:!1,editSubscriptionKey:!1,refreshSubscriptionKey:!1}})}setDisplayAdministrationWorkspaceAction(e){this.setState({administrationWorkspaceAction:e})}resetDisplayAdministrationWorkspaceAction(){this.setState({administrationWorkspaceAction:()=>n.createElement(n.Fragment,null)})}async onUpdateSubscriptionKeyRequested(e){return this.props.context.port.request("passbolt.subscription.update",e)}render(){return n.createElement(U.Provider,{value:this.state},this.props.children)}}_.displayName="AdministrationWorkspaceContextProvider",_.propTypes={context:s().object,children:s().any,location:s().object,match:s().object,history:s().object,loadingContext:s().object};const P=(0,N.EN)(R((M=_,class extends n.Component{render(){return n.createElement(D.Consumer,null,(e=>n.createElement(M,z({loadingContext:e},this.props))))}})));var M;function F(e){return class extends n.Component{render(){return n.createElement(U.Consumer,null,(t=>n.createElement(e,j({administrationWorkspaceContext:t},this.props))))}}}const q={NONE:"NONE",MFA:"MFA",USER_DIRECTORY:"USER-DIRECTORY",EMAIL_NOTIFICATION:"EMAIL-NOTIFICATION",SUBSCRIPTION:"SUBSCRIPTION",INTERNATIONALIZATION:"INTERNATIONALIZATION",ACCOUNT_RECOVERY:"ACCOUNT-RECOVERY",SMTP_SETTINGS:"SMTP-SETTINGS",SELF_REGISTRATION:"SELF-REGISTRATION",SSO:"SSO"};function O(){return O=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},O.apply(this,arguments)}class W extends n.Component{constructor(e){super(e),this.bindCallback()}bindCallback(){this.close=this.close.bind(this)}async close(e){const t=this.props.dialogContext.dialogs.find((({key:t})=>t===e));t?.DialogProps?.onClose&&t.DialogProps.onClose(),this.props.dialogContext.close(e)}render(){return n.createElement(n.Fragment,null,this.props.dialogContext.dialogs.map((({key:e,Dialog:t,DialogProps:a})=>n.createElement(t,O({key:e},a,{onClose:()=>this.close(e)})))),this.props.children)}}W.propTypes={dialogContext:s().any,children:s().any};const K=g(W);function V(){return V=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},V.apply(this,arguments)}class H extends n.Component{constructor(e){super(e),this.createRefs(),this.bindCallback()}bindCallback(){this.handleHide=this.handleHide.bind(this)}createRefs(){this.elementRef=n.createRef()}handleHide(e){this.props.contextualMenuContext.hide(e)}render(){return n.createElement("div",{ref:this.elementRef},this.props.contextualMenuContext.contextualMenus.map(((e,t)=>n.createElement(e.ContextualMenuComponent,V({key:t,hide:()=>this.handleHide(t)},e.componentProps)))))}}H.propTypes={contextualMenuContext:s().any};const B=function(e){return class extends n.Component{render(){return n.createElement(f.Consumer,null,(t=>n.createElement(e,b({contextualMenuContext:t},this.props))))}}}(H);function G(){return G=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},G.apply(this,arguments)}const $=n.createContext({onGoToAdministrationRequested:()=>{},onGoToAdministrationSelfRegistrationRequested:()=>{},onGoToAdministrationMfaRequested:()=>{},onGoToAdministrationUsersDirectoryRequested:()=>{},onGoToAdministrationEmailNotificationsRequested:()=>{},onGoToAdministrationSubscriptionRequested:()=>{},onGoToAdministrationInternationalizationRequested:()=>{},onGoToAdministrationAccountRecoveryRequested:()=>{},onGoToAdministrationSmtpSettingsRequested:()=>{},onGoToAdministrationSsoRequested:()=>{},onGoToPasswordsRequested:()=>{},onGoToUsersRequested:()=>{},onGoToUserSettingsProfileRequested:()=>{},onGoToUserSettingsPassphraseRequested:()=>{},onGoToUserSettingsSecurityTokenRequested:()=>{},onGoToUserSettingsThemeRequested:()=>{},onGoToUserSettingsMfaRequested:()=>{},onGoToUserSettingsKeysRequested:()=>{},onGoToUserSettingsMobileRequested:()=>{},onGoToUserSettingsAccountRecoveryRequested:()=>{},onGoToNewTab:()=>{}});class Z extends n.Component{constructor(e){super(e),this.state=this.defaultState}get defaultState(){return{onGoToNewTab:this.onGoToNewTab.bind(this),onGoToAdministrationRequested:this.onGoToAdministrationRequested.bind(this),onGoToAdministrationMfaRequested:this.onGoToAdministrationMfaRequested.bind(this),onGoToAdministrationUsersDirectoryRequested:this.onGoToAdministrationUsersDirectoryRequested.bind(this),onGoToAdministrationEmailNotificationsRequested:this.onGoToAdministrationEmailNotificationsRequested.bind(this),onGoToAdministrationSubscriptionRequested:this.onGoToAdministrationSubscriptionRequested.bind(this),onGoToAdministrationInternationalizationRequested:this.onGoToAdministrationInternationalizationRequested.bind(this),onGoToAdministrationAccountRecoveryRequested:this.onGoToAdministrationAccountRecoveryRequested.bind(this),onGoToAdministrationSmtpSettingsRequested:this.onGoToAdministrationSmtpSettingsRequested.bind(this),onGoToAdministrationSelfRegistrationRequested:this.onGoToAdministrationSelfRegistrationRequested.bind(this),onGoToAdministrationSsoRequested:this.onGoToAdministrationSsoRequested.bind(this),onGoToPasswordsRequested:this.onGoToPasswordsRequested.bind(this),onGoToUsersRequested:this.onGoToUsersRequested.bind(this),onGoToUserSettingsProfileRequested:this.onGoToUserSettingsProfileRequested.bind(this),onGoToUserSettingsPassphraseRequested:this.onGoToUserSettingsPassphraseRequested.bind(this),onGoToUserSettingsSecurityTokenRequested:this.onGoToUserSettingsSecurityTokenRequested.bind(this),onGoToUserSettingsThemeRequested:this.onGoToUserSettingsThemeRequested.bind(this),onGoToUserSettingsMfaRequested:this.onGoToUserSettingsMfaRequested.bind(this),onGoToUserSettingsKeysRequested:this.onGoToUserSettingsKeysRequested.bind(this),onGoToUserSettingsMobileRequested:this.onGoToUserSettingsMobileRequested.bind(this),onGoToUserSettingsAccountRecoveryRequested:this.onGoToUserSettingsAccountRecoveryRequested.bind(this)}}async goTo(e,t){if(e===this.props.context.name)await this.props.history.push({pathname:t});else{const e=`${this.props.context.userSettings?this.props.context.userSettings.getTrustedDomain():this.props.context.trustedDomain}${t}`;window.open(e,"_parent","noopener,noreferrer")}}onGoToNewTab(e){window.open(e,"_blank","noopener,noreferrer")}async onGoToAdministrationRequested(){let e="/app/administration/email-notification";this.isMfaEnabled?e="/app/administration/mfa":this.isUserDirectoryEnabled?e="/app/administration/users-directory":this.isSmtpSettingsEnable?e="/app/administration/smtp-settings":this.isSelfRegistrationEnable&&(e="/app/administration/self-registation"),await this.goTo("api",e)}async onGoToAdministrationMfaRequested(){await this.goTo("api","/app/administration/mfa")}async onGoToAdministrationSelfRegistrationRequested(){await this.goTo("api","/app/administration/self-registration")}async onGoToAdministrationUsersDirectoryRequested(){await this.goTo("api","/app/administration/users-directory")}async onGoToAdministrationEmailNotificationsRequested(){await this.goTo("api","/app/administration/email-notification")}async onGoToAdministrationSmtpSettingsRequested(){await this.goTo("api","/app/administration/smtp-settings")}async onGoToAdministrationSubscriptionRequested(){await this.goTo("browser-extension","/app/administration/subscription")}async onGoToAdministrationInternationalizationRequested(){await this.goTo("api","/app/administration/internationalization")}async onGoToAdministrationAccountRecoveryRequested(){await this.goTo("browser-extension","/app/administration/account-recovery")}async onGoToAdministrationSsoRequested(){await this.goTo("browser-extension","/app/administration/sso")}get isMfaEnabled(){const e=this.props.context.siteSettings;return e&&e.canIUse("multiFactorAuthentication")}get isUserDirectoryEnabled(){const e=this.props.context.siteSettings;return e&&e.canIUse("directorySync")}get isSmtpSettingsEnable(){const e=this.props.context.siteSettings;return e&&e.canIUse("smtpSettings")}get isSelfRegistrationEnable(){const e=this.props.context.siteSettings;return e&&e.canIUse("selfRegistration")}async onGoToPasswordsRequested(){await this.goTo("browser-extension","/app/passwords")}async onGoToUsersRequested(){await this.goTo("browser-extension","/app/users")}async onGoToUserSettingsProfileRequested(){await this.goTo("browser-extension","/app/settings/profile")}async onGoToUserSettingsPassphraseRequested(){await this.goTo("browser-extension","/app/settings/passphrase")}async onGoToUserSettingsSecurityTokenRequested(){await this.goTo("browser-extension","/app/settings/security-token")}async onGoToUserSettingsThemeRequested(){await this.goTo("browser-extension","/app/settings/theme")}async onGoToUserSettingsMfaRequested(){await this.goTo("api","/app/settings/mfa")}async onGoToUserSettingsKeysRequested(){await this.goTo("browser-extension","/app/settings/keys")}async onGoToUserSettingsMobileRequested(){await this.goTo("browser-extension","/app/settings/mobile")}async onGoToUserSettingsAccountRecoveryRequested(){await this.goTo("browser-extension","/app/settings/account-recovery")}render(){return n.createElement($.Provider,{value:this.state},this.props.children)}}Z.displayName="NavigationContextProvider",Z.propTypes={context:s().object,children:s().any,location:s().object,match:s().object,history:s().object};const Y=(0,N.EN)(R(Z));function J(e){return class extends n.Component{render(){return n.createElement($.Consumer,null,(t=>n.createElement(e,G({navigationContext:t},this.props))))}}}class Q extends n.Component{isSelected(e){let t=!1;return"passwords"===e?t=/^\/app\/(passwords|folders)/.test(this.props.location.pathname):"users"===e?t=/^\/app\/(users|groups)/.test(this.props.location.pathname):"administration"===e&&(t=/^\/app\/administration/.test(this.props.location.pathname)),t}isLoggedInUserAdmin(){return this.props.context.loggedInUser&&"admin"===this.props.context.loggedInUser.role.name}render(){return n.createElement("nav",null,n.createElement("div",{className:"primary navigation top"},n.createElement("ul",null,n.createElement("li",{key:"password"},n.createElement("div",{className:"row "+(this.isSelected("passwords")?"selected":"")},n.createElement("div",{className:"main-cell-wrapper"},n.createElement("div",{className:"main-cell"},n.createElement("a",{onClick:this.props.navigationContext.onGoToPasswordsRequested,role:"button"},n.createElement("span",null,n.createElement(v.c,null,"passwords"))))))),n.createElement("li",{key:"users"},n.createElement("div",{className:"row "+(this.isSelected("users")?"selected":"")},n.createElement("div",{className:"main-cell-wrapper"},n.createElement("div",{className:"main-cell"},n.createElement("a",{onClick:this.props.navigationContext.onGoToUsersRequested,role:"button"},n.createElement("span",null,n.createElement(v.c,null,"users"))))))),this.isLoggedInUserAdmin()&&n.createElement("li",{key:"administration"},n.createElement("div",{className:"row "+(this.isSelected("administration")?"selected":"")},n.createElement("div",{className:"main-cell-wrapper"},n.createElement("div",{className:"main-cell"},n.createElement("a",{onClick:this.props.navigationContext.onGoToAdministrationRequested,role:"button"},n.createElement("span",null,n.createElement(v.c,null,"administration"))))))),n.createElement("li",{key:"help"},n.createElement("div",{className:"row"},n.createElement("div",{className:"main-cell-wrapper"},n.createElement("div",{className:"main-cell"},n.createElement("a",{href:"https://help.passbolt.com",role:"button",target:"_blank",rel:"noopener noreferrer"},n.createElement("span",null,n.createElement(v.c,null,"help"))))))),n.createElement("li",{key:"logout",className:"right"},n.createElement("div",{className:"row"},n.createElement("div",{className:"main-cell-wrapper"},n.createElement("div",{className:"main-cell"},n.createElement("a",{role:"button",onClick:this.props.context.onLogoutRequested},n.createElement("span",null,n.createElement(v.c,null,"sign out"))))))))))}}Q.propTypes={context:s().object,navigationContext:s().any,history:s().object,location:s().object};const X=R((0,N.EN)(J((0,k.Z)("common")(Q))));class ee extends n.Component{render(){return n.createElement("div",{className:"col1"},n.createElement("div",{className:"logo-svg no-img"},n.createElement("svg",{height:"25px",fill:"none",xmlns:"http://www.w3.org/2000/svg",width:"100%",viewBox:"0 30 450 20"},n.createElement("g",{clipPath:"url(#clip0)"},n.createElement("path",{d:"M12.1114 26.4938V52.609h7.4182c4.9203 0 8.3266-1.0597 10.3704-3.1035 2.0438-2.0438 3.0278-5.5258 3.0278-10.2947 0-4.6175-.9083-7.8724-2.8007-9.7648-1.8924-2.0438-5.0717-2.9522-9.6891-2.9522h-8.3266zM0 16.5776h23.3144c7.0398 0 12.4899 2.0438 16.4261 6.2071 3.9362 4.1633 5.9043 9.9162 5.9043 17.2588 0 3.0278-.3785 5.8286-1.2111 8.3265-.8327 2.498-2.0438 4.8446-3.7091 6.8884-1.9681 2.498-4.3904 4.3147-7.1155 5.4501-2.8007 1.0598-6.4342 1.5896-11.0516 1.5896H12.1114v16.5775H0v-62.298zM70.0188 53.1389H85.158v-9.462H70.9272c-2.8008 0-4.7689.3785-5.8287 1.1354-1.0597.757-1.5896 2.1195-1.5896 4.0119 0 1.5896.4542 2.7251 1.2869 3.4063.8326.6056 2.5736.9084 5.223.9084zM53.9712 16.5776h24.7527c6.2827 0 10.9759 1.4383 14.1551 4.3147 3.1793 2.8765 4.7689 7.1155 4.7689 12.7927v28.6888H65.0985c-4.5417 0-8.0994-1.1354-10.5217-3.4063s-3.6334-5.5258-3.6334-9.7648c0-5.223 1.3625-8.9322 4.1633-11.203 2.8007-2.2709 7.4939-3.4064 14.0794-3.4064h15.8962v-1.1354c0-2.7251-.8326-4.6175-2.4222-5.7529-1.5897-1.1355-4.3904-1.6653-8.5537-1.6653H53.9712v-9.4621zM107.488 52.8356h25.51c2.271 0 3.936-.3784 4.92-1.0597 1.06-.6813 1.59-1.8167 1.59-3.4063 0-1.5897-.53-2.7251-1.59-3.4064-1.059-.7569-2.725-1.1354-4.92-1.1354h-10.446c-6.207 0-10.37-.9841-12.566-2.8765-2.195-1.8924-3.255-5.2987-3.255-10.0676 0-4.9202 1.287-8.5536 3.937-10.9002 2.649-2.3466 6.737-3.482 12.187-3.482h25.964v9.5377h-21.347c-3.482 0-5.753.3028-6.812.9083-1.06.6056-1.59 1.6654-1.59 3.255 0 1.4382.454 2.498 1.362 3.1035.909.6813 2.423.9841 4.391.9841h10.976c4.996 0 8.856 1.2111 11.43 3.5577 2.649 2.3466 3.936 5.6772 3.936 10.0676 0 4.239-1.211 7.721-3.558 10.3704-2.346 2.6493-5.298 4.0119-9.007 4.0119h-31.112v-9.4621zM159.113 52.8356h25.51c2.271 0 3.936-.3784 4.92-1.0597 1.06-.6813 1.59-1.8167 1.59-3.4063 0-1.5897-.53-2.7251-1.59-3.4064-1.059-.7569-2.725-1.1354-4.92-1.1354h-10.446c-6.207 0-10.37-.9841-12.566-2.8765-2.195-1.8924-3.255-5.2987-3.255-10.0676 0-4.9202 1.287-8.5536 3.937-10.9002 2.649-2.3466 6.737-3.482 12.187-3.482h25.964v9.5377h-21.347c-3.482 0-5.753.3028-6.812.9083-1.06.6056-1.59 1.6654-1.59 3.255 0 1.4382.454 2.498 1.362 3.1035.909.6813 2.423.9841 4.391.9841h10.976c4.996 0 8.856 1.2111 11.43 3.5577 2.649 2.3466 3.936 5.6772 3.936 10.0676 0 4.239-1.211 7.721-3.558 10.3704-2.346 2.6493-5.298 4.0119-9.007 4.0119h-31.263v-9.4621h.151zM223.607 0v16.5775h10.37c4.617 0 8.251.5298 11.052 1.6653 2.8 1.0597 5.147 2.8764 7.115 5.3744 1.665 2.1195 2.876 4.3904 3.709 6.9641.833 2.4979 1.211 5.2987 1.211 8.3265 0 7.3426-1.968 13.0955-5.904 17.2588-3.936 4.1633-9.386 6.2071-16.426 6.2071h-23.315V0h12.188zm7.342 26.4937h-7.418v26.1152h8.326c4.618 0 7.873-.9841 9.69-2.8765 1.892-1.9681 2.8-5.223 2.8-9.9162 0-4.7689-1.059-8.1752-3.103-10.219-1.968-2.1195-5.45-3.1035-10.295-3.1035zM274.172 39.5132c0 4.3904.984 7.721 3.027 10.219 2.044 2.4223 4.845 3.6334 8.554 3.6334 3.633 0 6.434-1.2111 8.554-3.6334 2.044-2.4223 3.103-5.8286 3.103-10.219s-1.059-7.721-3.103-10.1433c-2.044-2.4222-4.845-3.6334-8.554-3.6334-3.633 0-6.434 1.2112-8.554 3.6334-2.043 2.4223-3.027 5.8286-3.027 10.1433zm35.88 0c0 7.1912-2.196 12.9441-6.586 17.2588-4.39 4.2389-10.219 6.4341-17.637 6.4341-7.418 0-13.323-2.1195-17.713-6.4341-4.391-4.3147-6.586-9.9919-6.586-17.1831 0-7.1911 2.195-12.944 6.586-17.2587 4.39-4.3147 10.295-6.5099 17.713-6.5099 7.342 0 13.247 2.1952 17.637 6.5099 4.39 4.239 6.586 9.9919 6.586 17.183zM329.884 62.3737h-12.565V0h12.565v62.3737zM335.712 16.5775h8.554V0h12.111v16.5775h12.793v9.1592h-12.793v18.4699c0 3.4063.606 5.7529 1.742 7.1154 1.135 1.2869 3.179 1.9681 6.055 1.9681h4.996v9.1593h-11.127c-4.466 0-7.873-1.2112-10.295-3.7091-2.346-2.498-3.558-6.0557-3.558-10.6732V25.7367h-8.553v-9.1592h.075z",fill:"var(--icon-color)"}),n.createElement("path",{d:"M446.532 30.884L419.433 5.52579c-2.347-2.19519-6.056-2.19519-8.478 0L393.923 21.4977c4.466 1.6653 7.948 5.3744 9.235 9.9919h23.012c1.211 0 2.119.984 2.119 2.1195v3.482c0 1.2111-.984 2.1195-2.119 2.1195h-2.649v4.9202c0 1.2112-.985 2.1195-2.12 2.1195h-5.829c-1.211 0-2.119-.984-2.119-2.1195v-4.9202h-10.219c-1.287 4.6932-4.769 8.478-9.311 10.0676l17.108 15.9719c2.346 2.1952 6.055 2.1952 8.478 0l27.023-25.3582c2.574-2.4223 2.574-6.5099 0-9.0079z",fill:"#E10600"}),n.createElement("path",{d:"M388.927 28.3862c-1.135 0-2.195.3028-3.179.757-2.271 1.1354-3.86 3.482-3.86 6.2071 0 2.6493 1.438 4.9202 3.633 6.1314.984.5298 2.12.8326 3.331.8326 3.86 0 6.964-3.1035 6.964-6.964.151-3.7848-3.028-6.9641-6.889-6.9641z",fill:"#E10600"})),n.createElement("defs",null,n.createElement("clipPath",{id:"clip0"},n.createElement("path",{fill:"#fff",d:"M0 0h448.5v78.9511H0z"})))),n.createElement("h1",null,n.createElement("span",null,"Passbolt"))))}}const te=ee;function ae(){return ae=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},ae.apply(this,arguments)}const ne=n.createContext({accountRecoveryOrganizationPolicy:null,status:null,findAccountRecoveryPolicy:()=>{},getOrganizationPolicy:()=>{},getRequestor:()=>{},getRequestedDate:()=>{},getPolicy:()=>{},getUserAccountRecoverySubscriptionStatus:()=>{},isAccountRecoveryChoiceRequired:()=>{},isPolicyEnabled:()=>{},loadAccountRecoveryPolicy:()=>{},reloadAccountRecoveryPolicy:()=>{}});class oe extends n.Component{constructor(e){super(e),this.state=this.defaultState}get defaultState(){return{accountRecoveryOrganizationPolicy:null,status:null,findAccountRecoveryPolicy:this.findAccountRecoveryPolicy.bind(this),getOrganizationPolicy:this.getOrganizationPolicy.bind(this),getRequestor:this.getRequestor.bind(this),getRequestedDate:this.getRequestedDate.bind(this),getPolicy:this.getPolicy.bind(this),getUserAccountRecoverySubscriptionStatus:this.getUserAccountRecoverySubscriptionStatus.bind(this),setUserAccountRecoveryStatus:this.setUserAccountRecoveryStatus.bind(this),isAccountRecoveryChoiceRequired:this.isAccountRecoveryChoiceRequired.bind(this),isPolicyEnabled:this.isPolicyEnabled.bind(this),loadAccountRecoveryPolicy:this.loadAccountRecoveryPolicy.bind(this),reloadAccountRecoveryPolicy:this.reloadAccountRecoveryPolicy.bind(this)}}async loadAccountRecoveryPolicy(){null===this.state.accountRecoveryOrganizationPolicy&&await this.findAccountRecoveryPolicy()}async reloadAccountRecoveryPolicy(){await this.findAccountRecoveryPolicy()}async findAccountRecoveryPolicy(){if(!this.props.context.siteSettings.canIUse("accountRecovery"))return;const e=this.props.context.loggedInUser;if(!e)return;const t=await this.props.accountRecoveryUserService.getOrganizationAccountRecoverySettings(),a=e.account_recovery_user_setting?.status||oe.STATUS_PENDING;this.setState({accountRecoveryOrganizationPolicy:t,status:a})}getOrganizationPolicy(){return this.state.accountRecoveryOrganizationPolicy}getRequestedDate(){return this.getOrganizationPolicy()?.modified}getRequestor(){return this.getOrganizationPolicy()?.creator}getPolicy(){return this.getOrganizationPolicy()?.policy}getUserAccountRecoverySubscriptionStatus(){return this.state.status}setUserAccountRecoveryStatus(e){this.setState({status:e})}isAccountRecoveryChoiceRequired(){if(null===this.getOrganizationPolicy())return!1;const e=this.getPolicy();return this.state.status===oe.STATUS_PENDING&&e!==oe.POLICY_DISABLED}isPolicyEnabled(){const e=this.getPolicy();return e&&e!==oe.POLICY_DISABLED}static get STATUS_PENDING(){return"pending"}static get POLICY_DISABLED(){return"disabled"}static get POLICY_MANDATORY(){return"mandatory"}static get POLICY_OPT_OUT(){return"opt-out"}static get STATUS_APPROVED(){return"approved"}render(){return n.createElement(ne.Provider,{value:this.state},this.props.children)}}oe.propTypes={context:s().any.isRequired,children:s().any,accountRecoveryUserService:s().object.isRequired};const ie=R(oe);function se(e){return class extends n.Component{render(){return n.createElement(ne.Consumer,null,(t=>n.createElement(e,ae({accountRecoveryContext:t},this.props))))}}}class re extends n.Component{getClassName(){let e=`svg-icon ${this.props.name}`;return this.props.big&&(e+=" icon-only"),this.props.baseline&&(e+=" baseline"),this.props.dim&&(e+=" dim"),e}render(){return n.createElement("span",{className:this.getClassName(),onClick:this.props.onClick},"2-columns"===this.props.name&&n.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M7.97528 1.43999V15.24M7.97528 1.43999H13.3453C13.5466 1.43866 13.7461 1.47733 13.9323 1.55375C14.1185 1.63017 14.2878 1.74282 14.4301 1.88516C14.5725 2.0275 14.6851 2.19669 14.7615 2.38292C14.838 2.56915 14.8766 2.7687 14.8753 2.96999V13.7C14.8766 13.9018 14.838 14.1018 14.7617 14.2886C14.6854 14.4754 14.5729 14.6452 14.4307 14.7883C14.2885 14.9315 14.1194 15.0451 13.9332 15.1226C13.7469 15.2001 13.547 15.24 13.3453 15.24H7.97528V1.43999ZM7.97528 1.43999H2.6153C2.41353 1.43867 2.21346 1.47727 2.02667 1.55357C1.83989 1.62987 1.67005 1.74236 1.52692 1.88457C1.38378 2.02677 1.2702 2.19588 1.19269 2.38217C1.11517 2.56845 1.07525 2.76823 1.07526 2.96999V13.7C1.07526 14.1084 1.2375 14.5001 1.52631 14.7889C1.81511 15.0777 2.20686 15.24 2.6153 15.24H7.97528V1.43999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"3-dots-h"===this.props.name&&n.createElement("svg",{width:"16",height:"3",viewBox:"0 0 16 3",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("circle",{cx:"1.5",cy:"1.5",r:"1.5",fill:"var(--icon-color)",stroke:"none"}),n.createElement("circle",{cx:"8",cy:"1.5",r:"1.5",fill:"var(--icon-color)",stroke:"none"}),n.createElement("circle",{cx:"14.5",cy:"1.5",r:"1.5",fill:"var(--icon-color)",stroke:"none"})),"3-dots-v"===this.props.name&&n.createElement("svg",{width:"3",height:"16",viewBox:"0 0 3 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("circle",{cx:"1.5",cy:"1.5",r:"1.5",fill:"var(--icon-color)",stroke:"none"}),n.createElement("circle",{cx:"1.5",cy:"8",r:"1.5",fill:"var(--icon-color)",stroke:"none"}),n.createElement("circle",{cx:"1.5",cy:"14.5",r:"1.5",fill:"var(--icon-color)",stroke:"none"})),"add"===this.props.name&&n.createElement("svg",{width:"13",height:"12",viewBox:"0 0 13 12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M6.51996 1.50999V11.17",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M1.68994 6.34H11.3499",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"arrow-left"===this.props.name&&n.createElement("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M10.62 6.34H0.959961",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M5.77995 11.17L0.949951 6.34L5.77995 1.50999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"arrow-right"===this.props.name&&n.createElement("svg",{width:"13",height:"12",viewBox:"0 0 13 12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M1.61993 6.34H11.2799",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M6.47992 1.50999L11.3099 6.34L6.47992 11.17",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"ascending"===this.props.name&&n.createElement("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M4.87466 9.07V1.61",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M1.13467 5.34L4.87466 1.61L8.60464 5.34",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"ban"===this.props.name&&n.createElement("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M7.58527 13.33C10.8935 13.33 13.5753 10.6482 13.5753 7.34001C13.5753 4.03182 10.8935 1.35001 7.58527 1.35001C4.27708 1.35001 1.59528 4.03182 1.59528 7.34001C1.59528 10.6482 4.27708 13.33 7.58527 13.33Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M3.34528 3.11L11.8152 11.57",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"broken-link"===this.props.name&&n.createElement("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M7.76352 11.73L6.76352 12.73C6.44415 13.0524 6.0633 13.3075 5.64352 13.48C5.22571 13.6553 4.7766 13.7438 4.32352 13.74C3.40986 13.7429 2.53235 13.3833 1.88351 12.74C1.56332 12.4205 1.30928 12.0409 1.13596 11.6231C0.962628 11.2053 0.873383 10.7573 0.873383 10.305C0.873383 9.85264 0.962628 9.40473 1.13596 8.9869C1.30928 8.56907 1.56332 8.18952 1.88351 7.87L2.88351 6.87",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M11.6635 7.82999L12.6635 6.82999C12.986 6.51063 13.241 6.12976 13.4135 5.70999C13.592 5.29282 13.6838 4.84374 13.6835 4.38999C13.6837 3.70751 13.4815 3.0403 13.1024 2.47277C12.7233 1.90524 12.1844 1.4629 11.5539 1.2017C10.9234 0.940496 10.2296 0.872172 9.56021 1.00537C8.89085 1.13857 8.27598 1.46731 7.79349 1.94999L6.79349 2.94999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M11.1735 11.24L3.36349 3.42999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"calendar"===this.props.name&&n.createElement("svg",{width:"15",height:"17",viewBox:"0 0 15 17",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M12.7348 2.64999H2.7748C1.99055 2.64999 1.35475 3.28575 1.35475 4.06999V14.03C1.35475 14.8142 1.99055 15.45 2.7748 15.45H12.7348C13.519 15.45 14.1548 14.8142 14.1548 14.03V4.06999C14.1548 3.28575 13.519 2.64999 12.7348 2.64999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M10.5948 1.23V4.07",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M4.9048 1.23V4.07",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M1.35475 6.92H14.1548",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"camera"===this.props.name&&n.createElement("svg",{width:"18",height:"15",viewBox:"0 0 18 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M16.5953 12.07C16.5926 12.429 16.4482 12.7723 16.1934 13.0252C15.9387 13.2781 15.5941 13.42 15.2352 13.42H3.04523C2.68718 13.42 2.34381 13.2778 2.09064 13.0246C1.83746 12.7714 1.69525 12.428 1.69525 12.07V4.59C1.69525 4.23196 1.83746 3.88858 2.09064 3.63541C2.34381 3.38224 2.68718 3.24001 3.04523 3.24001H5.74518L7.09528 1.24001H11.1452L12.4952 3.24001H15.1953C15.5542 3.24 15.8986 3.38191 16.1534 3.6348C16.4081 3.88769 16.5526 4.23105 16.5552 4.59L16.5953 12.07Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M9.16522 10.72C10.6564 10.72 11.8652 9.51118 11.8652 8.02001C11.8652 6.52884 10.6564 5.32001 9.16522 5.32001C7.67405 5.32001 6.46527 6.52884 6.46527 8.02001C6.46527 9.51118 7.67405 10.72 9.16522 10.72Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"caret-down"===this.props.name&&n.createElement("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M1 3L5 7L9 3",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"caret-left"===this.props.name&&n.createElement("svg",{width:"10",height:"10",transform:"rotate(90)",viewBox:"0 0 10 10",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M1 3L5 7L9 3",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"caret-right"===this.props.name&&n.createElement("svg",{width:"10",height:"10",transform:"rotate(270)",viewBox:"0 0 10 10",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M1 3L5 7L9 3",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"caret-up"===this.props.name&&n.createElement("svg",{width:"10",height:"10",transform:"rotate(180)",viewBox:"0 0 10 10",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M1 3L5 7L9 3",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"check"===this.props.name&&n.createElement("svg",{width:"15",height:"11",viewBox:"0 0 15 11",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M13.6647 0.940002L4.86478 9.74L0.864777 5.74",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"clock"===this.props.name&&n.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M7.69485 15.18C11.4725 15.18 14.5348 12.1176 14.5348 8.34C14.5348 4.56237 11.4725 1.5 7.69485 1.5C3.91723 1.5 0.854767 4.56237 0.854767 8.34C0.854767 12.1176 3.91723 15.18 7.69485 15.18Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M7.69485 4.23V8.34L10.4248 9.71",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"close-circle"===this.props.name&&n.createElement("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M7.42523 13.33C10.7334 13.33 13.4152 10.6482 13.4152 7.34001C13.4152 4.03182 10.7334 1.35001 7.42523 1.35001C4.11705 1.35001 1.43524 4.03182 1.43524 7.34001C1.43524 10.6482 4.11705 13.33 7.42523 13.33Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M9.12518 5.65001L5.73517 9.03001",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M5.73517 5.65001L9.12518 9.03001",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"close"===this.props.name&&n.createElement("svg",{width:"11",height:"11",viewBox:"0 0 11 11",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M9.69525 1.2L1.41522 9.48",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M1.41522 1.2L9.69525 9.48",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"copy-to-clipboard"===this.props.name&&n.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M13.6147 6.27H7.40469C7.22347 6.27 7.04405 6.3057 6.87662 6.37505C6.70919 6.4444 6.55707 6.54605 6.42892 6.6742C6.30078 6.80234 6.19908 6.95447 6.12973 7.1219C6.06038 7.28933 6.02469 7.46878 6.02469 7.65001V13.86C6.02469 14.226 6.17012 14.577 6.42892 14.8358C6.68772 15.0946 7.03869 15.24 7.40469 15.24H13.6147C13.9807 15.24 14.3317 15.0946 14.5905 14.8358C14.8493 14.577 14.9947 14.226 14.9947 13.86V7.65001C14.9947 7.46878 14.959 7.28933 14.8897 7.1219C14.8203 6.95447 14.7186 6.80234 14.5905 6.6742C14.4623 6.54605 14.3102 6.4444 14.1428 6.37505C13.9754 6.3057 13.7959 6.27 13.6147 6.27Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M3.26468 10.41H2.57468C2.38882 10.4136 2.20425 10.3791 2.03226 10.3086C1.86026 10.2381 1.70449 10.1331 1.57468 10C1.44256 9.86948 1.33818 9.71364 1.26773 9.54181C1.19728 9.36998 1.16224 9.1857 1.1647 9V2.82C1.16281 2.63439 1.19811 2.45027 1.26852 2.27852C1.33894 2.10677 1.44303 1.95086 1.57468 1.82C1.70499 1.68827 1.86107 1.58477 2.03311 1.51596C2.20515 1.44714 2.38946 1.41448 2.57468 1.42H8.7847C8.968 1.41862 9.14969 1.45404 9.31906 1.52416C9.48843 1.59428 9.64204 1.69767 9.77072 1.82822C9.8994 1.95877 10.0006 2.11381 10.0683 2.28417C10.1359 2.45453 10.1687 2.63674 10.1647 2.82V3.51",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"descending"===this.props.name&&n.createElement("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M5.40469 1.61V9.07",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M9.13467 5.34L5.40469 9.07L1.6647 5.34",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"document"===this.props.name&&n.createElement("svg",{width:"14",height:"17",viewBox:"0 0 14 17",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M8.47476 1.39999H2.92471C2.74218 1.39999 2.5615 1.43594 2.39285 1.5058C2.22421 1.57565 2.071 1.67804 1.94193 1.80711C1.81285 1.93619 1.71039 2.08942 1.64053 2.25806C1.57068 2.42671 1.53482 2.60746 1.53482 2.78999V13.89C1.53482 14.0721 1.5708 14.2523 1.64078 14.4204C1.71075 14.5885 1.81333 14.7411 1.94254 14.8694C2.07174 14.9976 2.225 15.0991 2.39359 15.1678C2.56217 15.2366 2.74265 15.2713 2.92471 15.27H11.2448C11.4268 15.2713 11.6073 15.2366 11.7759 15.1678C11.9445 15.0991 12.0979 14.9976 12.2271 14.8694C12.3563 14.7411 12.4587 14.5885 12.5287 14.4204C12.5987 14.2523 12.6348 14.0721 12.6348 13.89V5.58999L8.47476 1.39999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M8.46475 1.39999V5.56999H12.6248",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M9.85477 9.03H4.30472",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M9.85477 11.81H4.30472",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M5.69473 6.25999H4.99478H4.30472",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"download-a"===this.props.name&&n.createElement("svg",{width:"17",height:"15",viewBox:"0 0 17 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M6.01358 10.65L8.65359 13.29L11.2936 10.65",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M8.65359 7.34V13.29",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M14.5135 11.36C15.0875 10.9566 15.518 10.3808 15.7425 9.71616C15.9671 9.05151 15.974 8.33258 15.7622 7.66375C15.5504 6.99492 15.131 6.411 14.5648 5.99674C13.9986 5.58248 13.3151 5.35944 12.6135 5.36H11.7835C11.5878 4.58232 11.2178 3.85932 10.7015 3.24567C10.1852 2.63202 9.53617 2.14378 8.80345 1.81786C8.07073 1.49194 7.27349 1.33687 6.47203 1.36438C5.67056 1.39189 4.88587 1.60126 4.17723 1.97666C3.46858 2.35205 2.85455 2.88365 2.38157 3.53126C1.90859 4.17886 1.58909 4.92553 1.44712 5.7148C1.30516 6.50407 1.34445 7.31529 1.56211 8.08712C1.77978 8.85895 2.17005 9.5712 2.70347 10.17",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"download"===this.props.name&&n.createElement("svg",{width:"17",height:"16",viewBox:"0 0 17 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M15.3233 10.64V13.7C15.3246 13.9018 15.286 14.1018 15.2097 14.2886C15.1334 14.4754 15.0209 14.6452 14.8787 14.7883C14.7365 14.9315 14.5674 15.0451 14.3811 15.1226C14.1949 15.2001 13.9951 15.24 13.7933 15.24H3.06332C2.86109 15.24 2.66081 15.2002 2.47397 15.1228C2.28713 15.0454 2.11737 14.9319 1.97437 14.7889C1.83136 14.6459 1.71793 14.4762 1.64053 14.2893C1.56314 14.1025 1.52332 13.9022 1.52332 13.7V10.64",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M4.59332 6.81L8.43332 10.64L12.2633 6.81",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M8.43332 10.64V1.44",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"edit"===this.props.name&&n.createElement("svg",{width:"16",height:"17",viewBox:"0 0 16 17",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M7.53454 2.85999H2.70452C2.52292 2.85866 2.34289 2.89345 2.17486 2.96233C2.00683 3.03121 1.85417 3.13281 1.72576 3.26122C1.59735 3.38963 1.49575 3.54229 1.42687 3.71032C1.35799 3.87835 1.32318 4.0584 1.32451 4.23999V13.9C1.31899 14.0852 1.35164 14.2696 1.42046 14.4416C1.48928 14.6136 1.59281 14.7697 1.72454 14.9C1.8554 15.0316 2.01128 15.1357 2.18303 15.2062C2.35478 15.2766 2.53892 15.3119 2.72454 15.31H12.3845C12.7489 15.3048 13.0969 15.1578 13.3546 14.9001C13.6123 14.6424 13.7593 14.2944 13.7645 13.93V9.06999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M12.7045 1.82C12.9733 1.55934 13.3303 1.4094 13.7045 1.4C13.8966 1.39867 14.0871 1.43552 14.2648 1.50842C14.4426 1.58132 14.604 1.68882 14.7399 1.82466C14.8757 1.9605 14.9832 2.12197 15.0561 2.29971C15.129 2.47745 15.1659 2.6679 15.1646 2.86C15.1622 3.04677 15.1229 3.23124 15.0491 3.40284C14.9753 3.57443 14.8685 3.72979 14.7346 3.86L8.18451 10.42L5.42456 11.11L6.11456 8.35L12.7045 1.82Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"envelope"===this.props.name&&n.createElement("svg",{width:"16",height:"13",viewBox:"0 0 16 13",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M2.96527 1.24001H13.1552C13.493 1.24 13.8171 1.37348 14.0568 1.61137C14.2966 1.84925 14.4326 2.17226 14.4352 2.51V10.16C14.4326 10.4977 14.2966 10.8208 14.0568 11.0586C13.8171 11.2965 13.493 11.43 13.1552 11.43H2.96527C2.62752 11.43 2.30342 11.2965 2.06366 11.0586C1.8239 10.8208 1.68788 10.4977 1.68524 10.16V2.51C1.68788 2.17226 1.8239 1.84925 2.06366 1.61137C2.30342 1.37348 2.62752 1.24 2.96527 1.24001V1.24001Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M14.4352 2.52L8.06525 6.98L1.69525 2.52",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"expand"===this.props.name&&n.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M10.4549 1.73H14.8548V6.14",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M6.04483 14.95H1.6348V10.54",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M14.8648 1.73L9.71487 6.87",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M1.6348 14.95L6.77481 9.81",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"external-link"===this.props.name&&n.createElement("svg",{width:"17",height:"16",viewBox:"0 0 17 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M13.2239 9.10001V13.7C13.2239 14.1084 13.0617 14.5001 12.7729 14.7889C12.4841 15.0778 12.0924 15.24 11.6839 15.24H3.25388C3.05289 15.2412 2.85377 15.2019 2.66824 15.1246C2.48272 15.0473 2.31461 14.9335 2.17392 14.79C2.03098 14.6468 1.91764 14.4768 1.84043 14.2898C1.76321 14.1028 1.72363 13.9023 1.72391 13.7V5.27C1.72653 4.86503 1.88859 4.47739 2.17496 4.19103C2.46132 3.90466 2.84891 3.74263 3.25388 3.74001H7.85391",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M10.9239 1.44H15.5239V6.04",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M7.08389 9.87L15.5239 1.44",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"eye-close"===this.props.name&&n.createElement("svg",{width:"18",height:"17",viewBox:"0 0 18 17",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M10.2347 9.8C10.0451 10.0025 9.81744 10.1656 9.56473 10.28C9.30808 10.3893 9.0335 10.4503 8.75473 10.46C8.47778 10.4605 8.20314 10.4096 7.94473 10.31C7.68694 10.2031 7.45254 10.0469 7.25473 9.85001C7.05246 9.65668 6.89537 9.42107 6.79471 9.16C6.69246 8.90261 6.64477 8.62678 6.65469 8.35C6.65565 8.07447 6.71357 7.80211 6.82474 7.55C6.94001 7.29486 7.10291 7.06406 7.30472 6.87L10.2347 9.8ZM12.8647 12.44C11.6829 13.3356 10.2473 13.8329 8.76474 13.86C3.93474 13.86 1.17471 8.34 1.17471 8.34C2.03377 6.73809 3.22745 5.33978 4.67471 4.24L12.8647 12.44ZM7.30472 2.98C7.77695 2.87138 8.26016 2.81769 8.74472 2.82C13.5747 2.82 16.3347 8.34 16.3347 8.34C15.9175 9.12411 15.418 9.86159 14.8447 10.54L7.30472 2.98Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M1.17471 0.75L16.3547 15.93",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"eye-open"===this.props.name&&n.createElement("svg",{width:"17",height:"13",viewBox:"0 0 17 13",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M0.99472 6.33999C0.99472 6.33999 3.75475 0.819992 8.58475 0.819992C13.4147 0.819992 16.1747 6.33999 16.1747 6.33999C16.1747 6.33999 13.4147 11.86 8.58475 11.86C3.75475 11.86 0.99472 6.33999 0.99472 6.33999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M8.58475 8.40999C8.99415 8.40999 9.39436 8.28859 9.73477 8.06113C10.0752 7.83368 10.3405 7.51038 10.4972 7.13214C10.6538 6.7539 10.6948 6.33769 10.615 5.93615C10.5351 5.53461 10.3379 5.16577 10.0484 4.87628C9.75894 4.58678 9.3901 4.38964 8.98856 4.30976C8.58702 4.22989 8.17082 4.27089 7.79257 4.42756C7.41433 4.58423 7.09101 4.84955 6.86356 5.18996C6.6361 5.53037 6.51474 5.93058 6.51474 6.33999C6.51474 6.88899 6.7328 7.4155 7.121 7.8037C7.5092 8.1919 8.03575 8.40999 8.58475 8.40999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"filter"===this.props.name&&n.createElement("svg",{width:"18",height:"16",viewBox:"0 0 18 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M16.8734 1.44H1.54337L7.67337 8.69V13.71L10.7334 15.24V8.69L16.8734 1.44Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"folder"===this.props.name&&n.createElement("svg",{width:"15",height:"13",viewBox:"0 0 15 13",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M14 10.77C14.0011 10.9326 13.9672 11.0937 13.9006 11.2433C13.834 11.393 13.736 11.528 13.6127 11.64C13.3673 11.8712 13.0363 12.0006 12.6916 12H2.29792C1.95325 12.0006 1.62224 11.8712 1.37683 11.64C1.25729 11.5257 1.16249 11.3901 1.09784 11.2408C1.03319 11.0915 0.999929 10.9316 1 10.77V2.22C1.00148 1.89698 1.13701 1.58771 1.37683 1.36C1.62224 1.12877 1.95325 0.999403 2.29792 1H5.54266L6.85103 2.84H12.6916C13.0363 2.8394 13.3673 2.96877 13.6127 3.2C13.7348 3.31089 13.832 3.44427 13.8986 3.59209C13.9651 3.73991 13.9996 3.89909 14 4.06V10.77Z",fill:"var(--icon-background-color)",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"folders"===this.props.name&&n.createElement("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M13.9438 12.5803C13.9455 12.7685 13.9124 12.9552 13.8464 13.1293C13.7804 13.3035 13.6829 13.4616 13.5595 13.5943C13.309 13.8584 12.972 14.0042 12.6222 13.9999H2.3125C1.96297 14.0031 1.62631 13.8574 1.37525 13.5943C1.25312 13.4611 1.15697 13.3027 1.09257 13.1285C1.02816 12.9543 0.996821 12.7679 1.00035 12.5803V5.92825C0.996282 5.74059 1.02739 5.55399 1.09182 5.37971C1.15626 5.20542 1.25268 5.04707 1.37525 4.91422C1.4979 4.78073 1.64403 4.67516 1.805 4.60376C1.96597 4.53235 2.13853 4.49655 2.3125 4.49847H5.54599L6.8394 6.59751H12.6597C13.0013 6.60275 13.3274 6.75187 13.5689 7.01317C13.8104 7.27447 13.9483 7.62737 13.9531 7.99687L13.9438 12.5803Z",fill:"var(--icon-background-color)",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M1.04723 2.42985C1.04316 2.24219 1.07426 2.05559 1.1387 1.88131C1.20313 1.70702 1.29955 1.54868 1.42212 1.41582C1.54477 1.28233 1.6909 1.17676 1.85188 1.10535C2.01285 1.03395 2.1854 0.998153 2.35937 1.00007H6.8863L8.17968 3.09911H12.7066C13.0481 3.10435 13.3743 3.25347 13.6158 3.51477C13.8574 3.77607 13.9952 4.12896 14 4.49847",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"info-circle"===this.props.name&&n.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M8.25473 15.24C9.61942 15.24 10.9535 14.8353 12.0882 14.0771C13.2229 13.319 14.1072 12.2413 14.6295 10.9805C15.1517 9.71971 15.2884 8.33235 15.0221 6.99388C14.7559 5.65541 14.0987 4.42595 13.1338 3.46097C12.1688 2.49599 10.9393 1.83882 9.60086 1.57259C8.26239 1.30635 6.87504 1.44299 5.61423 1.96524C4.35342 2.48748 3.27579 3.37187 2.51761 4.50657C1.75943 5.64127 1.35471 6.97531 1.35471 8.34C1.35735 10.1692 2.0852 11.9227 3.37863 13.2161C4.67206 14.5095 6.42555 15.2374 8.25473 15.24Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M8.25473 11.1V8.34",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M8.25473 5.65V5.59",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"internal-link"===this.props.name&&n.createElement("svg",{width:"17",height:"16",viewBox:"0 0 17 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M1.52392 8.8V3.28C1.5226 3.038 1.56925 2.79813 1.66125 2.5743C1.75325 2.35046 1.88875 2.14709 2.05987 1.97597C2.231 1.80484 2.43436 1.66936 2.6582 1.57736C2.88204 1.48536 3.12189 1.43867 3.36389 1.44H13.4839C13.9719 1.44 14.4399 1.63386 14.785 1.97892C15.13 2.32399 15.3239 2.792 15.3239 3.28V13.4C15.3229 13.6402 15.2753 13.8779 15.1839 14.1C15.0899 14.3236 14.9542 14.5272 14.7839 14.7C14.4387 15.0443 13.9714 15.2383 13.4839 15.24H7.96393",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M5.35385 6.75999H9.95389V11.4",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M1.5239 15.24L9.95389 6.75999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"layout"===this.props.name&&n.createElement("svg",{width:"14",height:"15",viewBox:"0 0 14 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M11.8629 1.19H2.30292C1.54629 1.19 0.932922 1.80337 0.932922 2.56V12.12C0.932922 12.8766 1.54629 13.49 2.30292 13.49H11.8629C12.6195 13.49 13.2329 12.8766 13.2329 12.12V2.56C13.2329 1.80337 12.6195 1.19 11.8629 1.19Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M0.932922 5.29001H13.2329",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M5.03296 13.49V5.29001",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"license"===this.props.name&&n.createElement("svg",{width:"17",height:"17",viewBox:"0 0 17 17",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M14.2155 8.58999C14.9711 7.80057 15.3874 6.74663 15.3755 5.65392C15.3635 4.5612 14.9242 3.51661 14.1515 2.7439C13.3788 1.97119 12.3342 1.5318 11.2415 1.51986C10.1487 1.50791 9.09484 1.92436 8.30542 2.67999L3.60535 7.38V13.3H9.52539L14.2155 8.58999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M11.2654 5.59L1.51538 15.34",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M12.3154 10.47H6.39539",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"life-ring"===this.props.name&&n.createElement("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M7.70966 13.43C11.0731 13.43 13.7996 10.7034 13.7996 7.34C13.7996 3.97659 11.0731 1.25 7.70966 1.25C4.34624 1.25 1.61969 3.97659 1.61969 7.34C1.61969 10.7034 4.34624 13.43 7.70966 13.43Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M7.70966 9.77999C9.05723 9.77999 10.1497 8.68757 10.1497 7.33999C10.1497 5.99242 9.05723 4.89999 7.70966 4.89999C6.36208 4.89999 5.26971 5.99242 5.26971 7.33999C5.26971 8.68757 6.36208 9.77999 7.70966 9.77999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M3.40973 3.03L5.98969 5.62",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M9.43964 9.06L12.0197 11.65",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M9.43964 5.62L12.0197 3.03",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M9.43964 5.62L11.5897 3.47",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M3.40973 11.65L5.98969 9.06",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"link"===this.props.name&&n.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M6.84119 9.03C7.13202 9.43825 7.50715 9.77928 7.94119 10.03C8.37534 10.2686 8.85677 10.4086 9.3512 10.44C9.86059 10.4745 10.3709 10.3889 10.8412 10.19C11.3076 10.0211 11.731 9.75138 12.0812 9.39999L14.1512 7.33C14.6209 6.84495 14.938 6.23271 15.0631 5.56918C15.1883 4.90564 15.1159 4.21998 14.8551 3.59716C14.5943 2.97435 14.1564 2.44177 13.5958 2.06543C13.0351 1.68909 12.3764 1.48553 11.7012 1.47999C11.2503 1.47878 10.8036 1.56647 10.3866 1.73806C9.96966 1.90966 9.59061 2.16177 9.27118 2.47999L8.08118 3.58999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M9.64117 7.65C9.34989 7.23849 8.97075 6.89691 8.53118 6.65C8.09831 6.40942 7.61823 6.266 7.12432 6.22974C6.63042 6.19347 6.13455 6.26522 5.67118 6.44C5.20474 6.60886 4.78133 6.87861 4.43118 7.23L2.36119 9.3C1.87601 9.78489 1.54639 10.4034 1.41442 11.0765C1.28246 11.7497 1.35414 12.4469 1.62033 13.079C1.88651 13.7112 2.33511 14.2497 2.90881 14.6257C3.48251 15.0017 4.15529 15.1982 4.84118 15.19C5.29207 15.1912 5.73876 15.1035 6.15573 14.9319C6.57269 14.7603 6.95174 14.5082 7.27117 14.19L8.45117 13.01",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"list"===this.props.name&&n.createElement("svg",{width:"17",height:"12",viewBox:"0 0 17 12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M4.95473 1.53999H15.3548",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M4.95473 6.34H15.3548",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M4.95473 11.14H15.3548",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M0.954727 1.53999H0.964737",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M0.954727 6.34H0.964737",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M0.954727 11.14H0.964737",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"log-out"===this.props.name&&n.createElement("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M5.44388 13.59H2.68387C2.49801 13.5936 2.31338 13.5591 2.14139 13.4886C1.96939 13.4181 1.81368 13.3131 1.68387 13.18C1.55176 13.0495 1.44737 12.8936 1.37692 12.7218C1.30647 12.55 1.27143 12.3657 1.27389 12.18V2.51C1.272 2.32439 1.3073 2.14028 1.37772 1.96853C1.44813 1.79678 1.55222 1.64087 1.68387 1.51C1.81418 1.37827 1.9702 1.27478 2.14224 1.20596C2.31428 1.13714 2.49866 1.10448 2.68387 1.11001H5.44388",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M10.2739 10.79L13.7239 7.34L10.2739 3.89",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M13.7239 7.34H5.44388",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"plus-circle"===this.props.name&&n.createElement("svg",{width:"11",height:"11",viewBox:"0 0 11 11",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M5.38519 9.63999C7.76002 9.63999 9.68524 7.71482 9.68524 5.33999C9.68524 2.96517 7.76002 1.03999 5.38519 1.03999C3.01037 1.03999 1.08527 2.96517 1.08527 5.33999C1.08527 7.71482 3.01037 9.63999 5.38519 9.63999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M5.38519 3.62V7.06",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M3.66522 5.34H7.10516",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"plus-square"===this.props.name&&n.createElement("svg",{width:"11",height:"11",viewBox:"0 0 11 11",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M9.12531 1.03999H2.43524C1.90505 1.03999 1.47528 1.4698 1.47528 1.99999V8.68999C1.47528 9.22019 1.90505 9.64999 2.43524 9.64999H9.12531C9.6555 9.64999 10.0853 9.22019 10.0853 8.68999V1.99999C10.0853 1.4698 9.6555 1.03999 9.12531 1.03999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M5.77533 3.42999V7.24999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M3.8653 5.34H7.68524",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"power"===this.props.name&&n.createElement("svg",{width:"15",height:"17",viewBox:"0 0 15 17",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M11.9098 4.59C12.7908 5.47109 13.3908 6.59365 13.6338 7.81571C13.8768 9.03777 13.752 10.3045 13.2751 11.4556C12.7983 12.6067 11.9908 13.5906 10.9548 14.2828C9.91882 14.9751 8.70077 15.3445 7.45477 15.3445C6.20878 15.3445 4.99079 14.9751 3.95477 14.2828C2.91876 13.5906 2.11125 12.6067 1.6344 11.4556C1.15755 10.3045 1.03278 9.03777 1.27582 7.81571C1.51885 6.59365 2.11881 5.47109 2.99982 4.59",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M7.47981 1.34V8.34",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"printer"===this.props.name&&n.createElement("svg",{width:"14",height:"15",viewBox:"0 0 14 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M3.38623 5.49V1.17H10.7863V5.49",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M3.38627 11.04H2.14628C1.98391 11.04 1.82314 11.0079 1.67326 10.9454C1.52337 10.883 1.38734 10.7915 1.27299 10.6762C1.15864 10.5609 1.06822 10.4242 1.007 10.2738C0.945777 10.1234 0.914858 9.96237 0.916178 9.8V6.72001C0.916178 6.39379 1.04586 6.08093 1.27653 5.85026C1.5072 5.61959 1.82006 5.49001 2.14628 5.49001H11.9762C12.3034 5.48999 12.6173 5.61926 12.8495 5.84965C13.0818 6.08003 13.2136 6.39287 13.2162 6.72001V9.8C13.2162 10.1289 13.0856 10.4443 12.8531 10.6768C12.6205 10.9094 12.3051 11.04 11.9762 11.04H10.7463",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M10.7863 8.56999H3.38623V13.51H10.7863V8.56999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"question-circle"===this.props.name&&n.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M8.04996 15.24C9.41465 15.24 10.7487 14.8353 11.8834 14.0771C13.0181 13.319 13.9025 12.2413 14.4247 10.9805C14.947 9.71971 15.0836 8.33235 14.8174 6.99388C14.5511 5.65541 13.894 4.42595 12.929 3.46097C11.964 2.49599 10.7345 1.83882 9.39608 1.57259C8.05761 1.30635 6.67026 1.44299 5.40945 1.96524C4.14864 2.48748 3.071 3.37187 2.31282 4.50657C1.55464 5.64127 1.14996 6.97531 1.14996 8.34C1.14996 10.17 1.87692 11.925 3.17092 13.219C4.46492 14.513 6.21996 15.24 8.04996 15.24Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M6.03998 6.27001C6.20089 5.80813 6.52015 5.41815 6.94115 5.16921C7.36216 4.92026 7.85772 4.82844 8.33997 4.91001C8.8197 4.99744 9.25434 5.24832 9.56998 5.62001C9.88695 5.99449 10.0606 6.46939 10.06 6.96001C10.06 8.34001 7.98997 9.03001 7.98997 9.03001",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M8.04993 11.79V11.73",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"refresh-1"===this.props.name&&n.createElement("svg",{width:"17",height:"14",viewBox:"0 0 17 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M15.4753 2.14V6.04H11.5753",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M1.18524 12.54V8.64H5.08527",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M2.81525 5.39C3.33356 3.92951 4.41025 2.73435 5.8089 2.0669C7.20755 1.39945 8.8138 1.31425 10.2752 1.83001C11.097 2.11893 11.8425 2.59081 12.4553 3.21L15.4553 6.04M1.16522 8.64001L4.16522 11.47C4.86357 12.1684 5.72733 12.6787 6.67609 12.9532C7.62484 13.2277 8.62773 13.2575 9.59113 13.0399C10.5545 12.8222 11.4471 12.3642 12.1857 11.7085C12.9243 11.0528 13.485 10.2208 13.8152 9.29",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"refresh"===this.props.name&&n.createElement("svg",{width:"16",height:"15",viewBox:"0 0 16 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M1.60464 2.06999V6.06999H5.54471",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M3.25467 9.29999C3.57205 10.2045 4.1047 11.0183 4.80667 11.6711C5.50864 12.3239 6.3588 12.7962 7.28397 13.0471C8.20913 13.2981 9.18158 13.3203 10.1172 13.1117C11.0529 12.9032 11.9237 12.4701 12.6547 11.85C13.2373 11.3277 13.7104 10.695 14.0465 9.98847C14.3827 9.28196 14.5751 8.51572 14.6128 7.73422C14.6505 6.95272 14.5327 6.17152 14.2661 5.43591C13.9996 4.70031 13.5897 4.02495 13.0601 3.44902C12.5305 2.87309 11.8918 2.40804 11.1811 2.08087C10.4703 1.75369 9.70175 1.57089 8.91983 1.54307C8.13792 1.51526 7.3583 1.64298 6.62613 1.91882C5.89396 2.19467 5.22387 2.61315 4.65469 3.14999L1.65469 6.01999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"save"===this.props.name&&n.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M13.4247 15.24H2.69469C2.28625 15.24 1.89456 15.0777 1.60576 14.7889C1.31695 14.5001 1.15471 14.1084 1.15471 13.7V2.96999C1.1547 2.76823 1.19463 2.56845 1.27214 2.38217C1.34965 2.19588 1.46323 2.02677 1.60637 1.88457C1.7495 1.74236 1.91934 1.62987 2.10612 1.55357C2.29291 1.47727 2.49292 1.43867 2.69469 1.43999H11.1247L14.9547 5.26999V13.7C14.956 13.9018 14.9174 14.1018 14.8411 14.2886C14.7648 14.4754 14.6523 14.6452 14.5101 14.7883C14.3679 14.9315 14.1988 15.0451 14.0125 15.1226C13.8262 15.2001 13.6265 15.24 13.4247 15.24Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M11.8947 15.24V9.10999H4.22472V15.24",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M4.22472 1.43999V5.26999H10.3647",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"search"===this.props.name&&n.createElement("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M7.20346 12.17C8.29521 12.17 9.36247 11.8462 10.2702 11.2397C11.178 10.6332 11.8855 9.77105 12.3033 8.7624C12.7211 7.75375 12.8304 6.64387 12.6174 5.57309C12.4044 4.50232 11.8787 3.51875 11.1067 2.74676C10.3347 1.97478 9.35114 1.44905 8.28036 1.23606C7.20959 1.02307 6.09974 1.13238 5.09109 1.55018C4.08245 1.96797 3.22028 2.67548 2.61374 3.58324C2.00719 4.491 1.6835 5.55824 1.6835 6.64999C1.6835 8.11399 2.26506 9.51802 3.30026 10.5532C4.33546 11.5884 5.73947 12.17 7.20346 12.17V12.17Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M14.1035 13.59L11.1035 10.59",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"share"===this.props.name&&n.createElement("svg",{width:"15",height:"16",viewBox:"0 0 15 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M11.4733 5.58C12.6166 5.58 13.5434 4.65323 13.5434 3.51C13.5434 2.36677 12.6166 1.44 11.4733 1.44C10.3301 1.44 9.40335 2.36677 9.40335 3.51C9.40335 4.65323 10.3301 5.58 11.4733 5.58Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M3.19333 10.41C4.33656 10.41 5.26334 9.48323 5.26334 8.34C5.26334 7.19677 4.33656 6.27 3.19333 6.27C2.0501 6.27 1.12335 7.19677 1.12335 8.34C1.12335 9.48323 2.0501 10.41 3.19333 10.41Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M11.4733 15.24C12.6166 15.24 13.5434 14.3132 13.5434 13.17C13.5434 12.0268 12.6166 11.1 11.4733 11.1C10.3301 11.1 9.40335 12.0268 9.40335 13.17C9.40335 14.3132 10.3301 15.24 11.4733 15.24Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M4.98334 9.38L9.69333 12.13",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M9.69333 4.55L4.98334 7.3",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"star"===this.props.name&&n.createElement("svg",{width:"14",height:"13",viewBox:"0 0 14 13",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M7.30478 0.110001L9.32474 4.21L13.8548 4.87L10.5747 8.06L11.3548 12.57L7.30478 10.44L3.25479 12.57L4.03476 8.06L0.754791 4.87L5.28476 4.21L7.30478 0.110001Z",fill:"var(--icon-favorites-color)"})),"star-stroke"===this.props.name&&n.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M8 1.77L10.02 5.87L14.55 6.53L11.2699 9.72L12.05 14.23L8 12.1L3.95001 14.23L4.72998 9.72L1.45001 6.53L5.97998 5.87L8 1.77Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinejoin:"round"})),"switch"===this.props.name&&n.createElement("svg",{width:"18",height:"15",viewBox:"0 0 18 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M16.5154 10.8L13.7454 13.58L10.9753 10.8",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M9.58545 1.09999H10.9653C11.7009 1.09999 12.4065 1.39151 12.9276 1.9107C13.4487 2.42989 13.7427 3.13442 13.7454 3.86999V13.59",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M1.27539 3.87999L4.04541 1.09999L6.81543 3.87999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M8.19543 13.59H6.81543C6.45083 13.5913 6.08955 13.5206 5.75232 13.382C5.41509 13.2434 5.1085 13.0396 4.85022 12.7822C4.59194 12.5249 4.38702 12.2191 4.24719 11.8823C4.10736 11.5456 4.0354 11.1846 4.0354 10.82V1.12",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"theme-dark"===this.props.name&&n.createElement("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M13.14 7.31001C13.0365 8.40623 12.6232 9.45037 11.9483 10.3204C11.2734 11.1904 10.3648 11.8503 9.32868 12.2229C8.29257 12.5956 7.17169 12.6656 6.09724 12.4248C5.02279 12.1841 4.03916 11.6424 3.26118 10.8632C2.4832 10.084 1.94314 9.09942 1.70405 8.02459C1.46497 6.94976 1.53678 5.82909 1.91108 4.79356C2.28539 3.75804 2.94664 2.85046 3.8177 2.17692C4.68876 1.50337 5.73364 1.09169 6.83003 0.990005C6.19481 1.86018 5.8913 2.92863 5.97419 4.0028C6.05709 5.07697 6.52085 6.08621 7.28205 6.84863C8.04326 7.61104 9.05177 8.07648 10.1258 8.16107C11.1998 8.24567 12.2688 7.94385 13.14 7.31001V7.31001Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"theme-light"===this.props.name&&n.createElement("svg",{width:"17",height:"16",viewBox:"0 0 17 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M8.47571 11.23C10.2541 11.23 11.6957 9.78835 11.6957 8.00999C11.6957 6.23164 10.2541 4.78999 8.47571 4.78999C6.69735 4.78999 5.25574 6.23164 5.25574 8.00999C5.25574 9.78835 6.69735 11.23 8.47571 11.23Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M8.47571 0.919998V2.21",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M8.47571 13.82V15.11",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M3.45569 3L4.37573 3.91",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M12.5757 12.11L13.4857 13.03",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M1.37573 8.00999H2.66577",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M14.2758 8.00999H15.5657",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M3.45569 13.03L4.37573 12.11",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M12.5757 3.91L13.4857 3",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"trash"===this.props.name&&n.createElement("svg",{width:"15",height:"16",viewBox:"0 0 15 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M1.30994 4.2H13.6899",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M4.75995 4.19999V2.81999C4.75806 2.63438 4.79335 2.45026 4.86377 2.27851C4.93419 2.10676 5.03829 1.95085 5.16994 1.81999C5.30095 1.68922 5.45711 1.58635 5.62898 1.5176C5.80086 1.44885 5.98488 1.41565 6.16994 1.41999H8.92995C9.11154 1.41866 9.29158 1.45345 9.45961 1.52233C9.62764 1.59121 9.78031 1.69281 9.90872 1.82122C10.0371 1.94963 10.1387 2.10229 10.2076 2.27032C10.2765 2.43835 10.3113 2.6184 10.3099 2.79999V4.17999L4.75995 4.19999ZM12.3799 4.17999V13.84C12.3843 14.0251 12.3511 14.2091 12.2823 14.3809C12.2136 14.5528 12.1107 14.709 11.9799 14.84C11.8491 14.9716 11.6932 15.0758 11.5214 15.1462C11.3497 15.2166 11.1656 15.2519 10.9799 15.25H4.07994C3.7121 15.2474 3.36007 15.1001 3.09996 14.84C2.83985 14.5799 2.69256 14.2278 2.68994 13.86V4.19999L12.3799 4.17999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M6.13995 7.64999V11.79",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M8.89996 7.64999V11.79",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"txt"===this.props.name&&n.createElement("svg",{width:"17",height:"12",viewBox:"0 0 17 12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M12.0753 4.78H0.875366",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M15.2754 1.58H0.875366",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M15.2754 7.98H0.875366",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M12.0753 11.18H0.875366",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"upload-a"===this.props.name&&n.createElement("svg",{width:"17",height:"15",viewBox:"0 0 17 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M10.7482 9.98L8.10822 7.34L5.4682 9.98",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M8.10822 7.34V13.28",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M13.6383 11.59C14.2828 11.24 14.7924 10.6853 15.0865 10.0134C15.3807 9.34158 15.4426 8.59089 15.2626 7.87992C15.0825 7.16895 14.6707 6.53821 14.0923 6.08732C13.5138 5.63642 12.8018 5.39107 12.0684 5.39H11.2283C11.0717 4.70118 10.7786 4.05078 10.3661 3.47732C9.95362 2.90385 9.43025 2.41898 8.82702 2.05142C8.22379 1.68385 7.553 1.44107 6.85425 1.33744C6.1555 1.23382 5.44297 1.27145 4.75903 1.44813C4.07509 1.6248 3.43358 1.93692 2.87243 2.366C2.31129 2.79507 1.84193 3.33239 1.49219 3.94612C1.14244 4.55985 0.919424 5.23753 0.836302 5.93901C0.753179 6.6405 0.811675 7.35153 1.0083 8.03C1.21212 8.83805 1.60647 9.58555 2.15832 10.21",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M10.7482 9.98L8.10822 7.34L5.4682 9.98",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"upload"===this.props.name&&n.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M15.1234 10.64V13.7C15.1234 14.1067 14.9625 14.4969 14.6758 14.7854C14.3892 15.0739 14.0001 15.2374 13.5934 15.24H2.85333C2.44663 15.2374 2.05752 15.0739 1.77087 14.7854C1.48423 14.4969 1.32333 14.1067 1.32333 13.7V10.64",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M12.0634 5.27L8.22336 1.44L4.39334 5.27",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M8.22336 1.44V10.64",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"user"===this.props.name&&n.createElement("svg",{width:"13",height:"15",viewBox:"0 0 13 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M11.9329 13.59V12.17C11.9305 11.4474 11.6458 10.7543 11.1395 10.2386C10.6332 9.72301 9.94542 9.42564 9.22295 9.40999H3.70296C3.34014 9.40867 2.98065 9.47915 2.64519 9.61739C2.30974 9.75562 2.00495 9.95887 1.7484 10.2154C1.49185 10.472 1.28858 10.7768 1.15035 11.1122C1.01211 11.4477 0.941629 11.8072 0.94295 12.17V13.59",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M6.41296 6.64999C6.95884 6.64999 7.49247 6.48812 7.94635 6.18485C8.40023 5.88157 8.75396 5.45052 8.96286 4.9462C9.17176 4.44187 9.22643 3.88693 9.11993 3.35154C9.01344 2.81615 8.75056 2.32437 8.36456 1.93838C7.97857 1.55238 7.4868 1.28952 6.95142 1.18302C6.41603 1.07653 5.86107 1.13118 5.35675 1.34008C4.85243 1.54898 4.42138 1.90274 4.1181 2.35662C3.81483 2.8105 3.65295 3.34411 3.65295 3.88999C3.65559 4.62118 3.94723 5.32166 4.46426 5.83869C4.98129 6.35572 5.68178 6.64736 6.41296 6.64999V6.64999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"users"===this.props.name&&n.createElement("svg",{width:"18",height:"15",viewBox:"0 0 18 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M12.1038 13.59V12.17C12.1124 11.799 12.0449 11.4302 11.9056 11.0862C11.7663 10.7423 11.5581 10.4305 11.2938 10.17C11.0319 9.90758 10.7199 9.70061 10.3763 9.56145C10.0326 9.42228 9.66448 9.35376 9.2938 9.35999H3.77378C3.04963 9.38607 2.36453 9.69487 1.8654 10.2202C1.36627 10.7455 1.09287 11.4455 1.1038 12.17V13.59",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M6.6138 6.64999C7.15968 6.64999 7.69331 6.48812 8.14719 6.18485C8.60107 5.88157 8.95483 5.45052 9.16373 4.9462C9.37262 4.44187 9.42727 3.88693 9.32077 3.35154C9.21428 2.81615 8.95139 2.32437 8.5654 1.93838C8.17941 1.55238 7.68764 1.28952 7.15225 1.18302C6.61686 1.07653 6.06191 1.13118 5.55759 1.34008C5.05326 1.54898 4.62221 1.90274 4.31894 2.35662C4.01567 2.8105 3.85379 3.34411 3.85379 3.88999C3.85643 4.62118 4.14804 5.32166 4.66507 5.83869C5.1821 6.35572 5.88261 6.64736 6.6138 6.64999V6.64999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M16.2738 13.59V12.17C16.2709 11.5583 16.0672 10.9645 15.6938 10.48C15.324 9.98829 14.7989 9.63591 14.2038 9.48",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M11.4438 1.22C12.0403 1.37297 12.5662 1.72595 12.9338 2.22C13.3101 2.703 13.5144 3.29774 13.5144 3.91C13.5144 4.52226 13.3101 5.117 12.9338 5.6C12.5662 6.09405 12.0403 6.44703 11.4438 6.6",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"video"===this.props.name&&n.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M13.6053 1.59H3.04523C2.23337 1.59 1.57526 2.24814 1.57526 3.06V13.62C1.57526 14.4319 2.23337 15.09 3.04523 15.09H13.6053C14.4171 15.09 15.0753 14.4319 15.0753 13.62V3.06C15.0753 2.24814 14.4171 1.59 13.6053 1.59Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M4.94525 1.59V15.09",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M11.6953 1.59V15.09",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M1.57526 8.34H15.0753",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M1.57526 4.97H4.94525",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M1.57526 11.71H4.94525",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M11.6953 11.71H15.0753",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M11.6953 4.97H15.0753",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"warning"===this.props.name&&n.createElement("svg",{width:"16",height:"15",viewBox:"0 0 16 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M7.04506 1.94L1.39504 11.38C1.30734 11.5316 1.25039 11.699 1.22756 11.8726C1.20473 12.0462 1.21645 12.2227 1.26198 12.3918C1.30751 12.5609 1.38602 12.7193 1.49294 12.858C1.59986 12.9967 1.73308 13.1129 1.88503 13.2C2.08111 13.3184 2.30599 13.3807 2.53505 13.38H13.845C14.0205 13.3787 14.1941 13.3427 14.3556 13.274C14.5171 13.2053 14.6634 13.1054 14.7862 12.9799C14.9089 12.8544 15.0055 12.7058 15.0706 12.5428C15.1356 12.3798 15.1677 12.2055 15.1651 12.03C15.1657 11.8009 15.1034 11.5761 14.985 11.38L9.33498 1.94C9.2446 1.78868 9.12507 1.65685 8.98329 1.55214C8.84152 1.44744 8.68038 1.37195 8.50917 1.33008C8.33797 1.28821 8.1602 1.28079 7.9861 1.30824C7.812 1.33569 7.64503 1.39748 7.49501 1.49C7.312 1.60289 7.15795 1.75699 7.04506 1.94V1.94Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M8.1951 5.37V8.04",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M8.1951 10.71H8.20511",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"chevron-left"===this.props.name&&n.createElement("svg",{width:"7",height:"12",viewBox:"0 0 7 12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M5.76616 10.805L0.936157 5.975L5.76616 1.145",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"chevron-right"===this.props.name&&n.createElement("svg",{width:"7",height:"12",viewBox:"0 0 7 12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M0.766174 1.145L5.59618 5.975L0.766174 10.805",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"cog"===this.props.name&&n.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M12.7254 6.42L12.4355 5.7C12.3855 5.13 13.5555 3.92 13.3255 3.7L12.7654 3.13C12.7654 3.13 12.4354 2.80999 12.2054 2.56999C11.9754 2.32999 10.7554 3.57 10.2054 3.47L9.49545 3.17C9.05545 2.8 9.02545 1.11 8.69545 1.11H7.12544C6.79544 1.11 6.77545 2.8 6.33545 3.17L5.61545 3.47C5.05545 3.52 3.84545 2.33999 3.61545 2.56999C3.38545 2.79999 3.05545 3.13 3.05545 3.13L2.49545 3.7C2.25545 3.93 3.43545 5.14 3.38545 5.7L3.08545 6.42C2.72545 6.85 1.08545 6.88001 1.08545 7.21001V8.8C1.08545 9.13 2.77545 9.15 3.08545 9.59L3.38545 10.31C3.38545 10.87 2.25545 12.09 2.49545 12.31L3.05545 12.87L3.61545 13.43C3.85545 13.67 5.06545 12.49 5.61545 12.54L6.33545 12.84C6.77545 13.2 6.79544 14.84 7.12544 14.84H8.72545C9.05545 14.84 9.08545 13.15 9.52545 12.84L10.2354 12.54C10.8054 12.54 12.0154 13.67 12.2354 13.43L12.7955 12.87L13.3555 12.31C13.5855 12.08 12.4155 10.86 12.4655 10.31L12.7254 9.64C13.0954 9.2 14.7854 9.18001 14.7854 8.85001V7.25999C14.8254 6.87999 13.1354 6.85 12.7254 6.42ZM7.88545 10.19C7.45189 10.192 7.02749 10.0652 6.66603 9.82579C6.30457 9.58636 6.02233 9.24502 5.85504 8.84503C5.68775 8.44504 5.64295 8.00439 5.72632 7.57892C5.80969 7.15344 6.01747 6.76228 6.32335 6.455C6.62922 6.14772 7.01941 5.93816 7.4445 5.85284C7.86959 5.76753 8.31044 5.81031 8.7112 5.97577C9.11195 6.14123 9.45458 6.42192 9.69566 6.78227C9.93675 7.14263 10.0654 7.56643 10.0654 8C10.0656 8.57226 9.84174 9.12185 9.44179 9.53114C9.04184 9.94044 8.49756 10.1769 7.92545 10.19H7.88545Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"contrast"===this.props.name&&n.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M8.30612 14.875C9.67081 14.875 11.0049 14.4703 12.1396 13.7121C13.2743 12.954 14.1587 11.8763 14.6809 10.6155C15.2032 9.35471 15.3398 7.96734 15.0735 6.62888C14.8073 5.29041 14.1502 4.06094 13.1852 3.09596C12.2202 2.13098 10.9907 1.47382 9.65225 1.20758C8.31378 0.941342 6.92643 1.07799 5.66562 1.60023C4.40481 2.12248 3.32718 3.00687 2.569 4.14157C1.81082 5.27627 1.40613 6.61031 1.40613 7.97501C1.40613 9.805 2.13309 11.56 3.42709 12.854C4.72109 14.1481 6.47613 14.875 8.30612 14.875V14.875Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M8.30612 1.07501C6.47613 1.07501 4.72109 1.80196 3.42709 3.09596C2.13309 4.38996 1.40613 6.14501 1.40613 7.97501C1.40613 9.805 2.13309 11.56 3.42709 12.854C4.72109 14.1481 6.47613 14.875 8.30612 14.875V1.07501Z",fill:"var(--icon-color)",stroke:"none"})),"copy-to-clipboard-2"===this.props.name&&n.createElement("svg",{width:"14",height:"16",viewBox:"0 0 14 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M11.0061 2.55C11.3774 2.55 11.7335 2.6975 11.9961 2.96005C12.2586 3.2226 12.4061 3.57869 12.4061 3.95V13.75C12.4061 14.1213 12.2586 14.4774 11.9961 14.7399C11.7335 15.0025 11.3774 15.15 11.0061 15.15H2.60611C2.23481 15.15 1.87872 15.0025 1.61617 14.7399C1.35361 14.4774 1.20612 14.1213 1.20612 13.75V3.95C1.20612 3.57869 1.35361 3.2226 1.61617 2.96005C1.87872 2.6975 2.23481 2.55 2.60611 2.55",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M8.9061 2.22H8.2261C8.2261 1.84339 8.0765 1.48221 7.8102 1.21591C7.54389 0.94961 7.18271 0.800003 6.80611 0.800003C6.4295 0.800003 6.0683 0.94961 5.802 1.21591C5.5357 1.48221 5.38611 1.84339 5.38611 2.22H4.7061C4.52045 2.22 4.3424 2.29374 4.21112 2.42502C4.07985 2.55629 4.0061 2.73435 4.0061 2.92V3.62C4.0061 3.80565 4.07985 3.9837 4.21112 4.11497C4.3424 4.24625 4.52045 4.32001 4.7061 4.32001H8.9061C9.09175 4.32001 9.26979 4.24625 9.40106 4.11497C9.53234 3.9837 9.60611 3.80565 9.60611 3.62V2.92C9.60611 2.73435 9.53234 2.55629 9.40106 2.42502C9.26979 2.29374 9.09175 2.22 8.9061 2.22Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"home-1"===this.props.name&&n.createElement("svg",{width:"15",height:"16",viewBox:"0 0 15 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M7.54611 0.934998L1.20612 5.86499V13.605C1.20873 13.9781 1.35812 14.3353 1.62198 14.5991C1.88584 14.863 2.24297 15.0124 2.61612 15.015H5.61612V8.755H9.52612V15.015H12.5261C12.8985 15.0098 13.2541 14.8596 13.5174 14.5963C13.7807 14.333 13.931 13.9773 13.9361 13.605V5.86499L7.54611 0.934998Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"home"===this.props.name&&n.createElement("svg",{width:"13",height:"14",viewBox:"0 0 13 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M6.56547 0.764991L0.975466 5.115V11.945C0.974867 12.2743 1.10424 12.5905 1.33547 12.825C1.57112 13.0544 1.88658 13.1835 2.21546 13.185H4.83547V7.665H8.28546V13.185H10.9055C11.2348 13.1856 11.551 13.0562 11.7855 12.825C11.9031 12.7107 11.9965 12.5739 12.0601 12.4227C12.1237 12.2715 12.1561 12.109 12.1555 11.945V5.115L6.56547 0.764991Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"key"===this.props.name&&n.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M4.96613 14.385C6.75553 14.385 8.20613 12.9344 8.20613 11.145C8.20613 9.3556 6.75553 7.905 4.96613 7.905C3.17672 7.905 1.72614 9.3556 1.72614 11.145C1.72614 12.9344 3.17672 14.385 4.96613 14.385Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M14.5461 1.565L7.2561 8.845",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M13.3461 5.735L15.2061 3.875",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"lock-open"===this.props.name&&n.createElement("svg",{width:"12",height:"16",viewBox:"0 0 12 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M10.3155 7.4H1.73545C1.31019 7.4 0.965454 7.74475 0.965454 8.17001V14.23C0.965454 14.6553 1.31019 15 1.73545 15H10.3155C10.7407 15 11.0854 14.6553 11.0854 14.23V8.17001C11.0854 7.74475 10.7407 7.4 10.3155 7.4Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinejoin:"round"}),n.createElement("path",{d:"M2.57545 7.4V4.4C2.57413 3.94657 2.66246 3.49735 2.83537 3.07818C3.00828 2.65901 3.26237 2.27817 3.58299 1.95754C3.90362 1.63692 4.28446 1.38283 4.70363 1.20992C5.1228 1.03701 5.57202 0.948684 6.02545 0.950004C6.84173 0.948607 7.6319 1.23752 8.25476 1.76511C8.87762 2.29271 9.29256 3.02462 9.42545 3.83001",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"lock"===this.props.name&&n.createElement("svg",{width:"12",height:"16",viewBox:"0 0 12 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M10.2155 7.41H1.90546C1.49124 7.41 1.15546 7.74579 1.15546 8.16V14.03C1.15546 14.4442 1.49124 14.78 1.90546 14.78H10.2155C10.6297 14.78 10.9655 14.4442 10.9655 14.03V8.16C10.9655 7.74579 10.6297 7.41 10.2155 7.41Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinejoin:"round"}),n.createElement("path",{d:"M2.72546 7.39999V4.52C2.72546 3.63153 3.07841 2.77945 3.70666 2.1512C4.3349 1.52295 5.18699 1.17 6.07546 1.17V1.17C6.96394 1.17 7.81603 1.52295 8.44427 2.1512C9.07252 2.77945 9.42546 3.63153 9.42546 4.52V7.39999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"settings"===this.props.name&&n.createElement("svg",{width:"13",height:"16",viewBox:"0 0 13 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M0.786133 3.105H3.55614",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M5.98615 3.105H11.7262",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M0.786133 7.97501H8.09613",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M10.5361 7.97501H11.7261",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M0.786133 12.835H3.82614",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M6.2561 12.835H11.7261",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M3.55615 1.285V4.935",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M8.09613 6.145V9.795",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M3.82617 11.015V14.665",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"tag"===this.props.name&&n.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M13.62 8.39256L14.93 4.53256C14.9802 4.38718 14.989 4.23071 14.9554 4.08062C14.9219 3.93053 14.8473 3.79272 14.74 3.68255L12.38 1.32255C12.2698 1.21524 12.132 1.14064 11.9819 1.10709C11.8318 1.07354 11.6754 1.08236 11.53 1.13255L7.66999 2.44256C7.54938 2.48377 7.43989 2.5522 7.34999 2.64256L1.43999 8.62255C1.3638 8.6987 1.30335 8.78912 1.26211 8.88863C1.22087 8.98815 1.19965 9.09483 1.19965 9.20255C1.19965 9.31028 1.22087 9.41694 1.26211 9.51646C1.30335 9.61598 1.3638 9.70641 1.43999 9.78256L6.34999 14.6226C6.42614 14.6987 6.51656 14.7592 6.61608 14.8004C6.7156 14.8417 6.82227 14.8629 6.92999 14.8629C7.03772 14.8629 7.14439 14.8417 7.2439 14.8004C7.34342 14.7592 7.43384 14.6987 7.50999 14.6226L13.44 8.69256C13.5206 8.60648 13.582 8.50421 13.62 8.39256V8.39256Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeMiterlimit:"10",strokeLinecap:"round"}),n.createElement("path",{d:"M11.78 5.34255C12.3433 5.34255 12.8 4.88588 12.8 4.32255C12.8 3.75922 12.3433 3.30256 11.78 3.30256C11.2167 3.30256 10.76 3.75922 10.76 4.32255C10.76 4.88588 11.2167 5.34255 11.78 5.34255Z",fill:"var(--icon-color)",stroke:"none"})),"2-columns-narrow-right"===this.props.name&&n.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M13.4927 1.01001H2.75269C1.90769 1.01001 1.22266 1.69501 1.22266 2.54001V13.28C1.22266 14.125 1.90769 14.81 2.75269 14.81H13.4927C14.3377 14.81 15.0226 14.125 15.0226 13.28V2.54001C15.0226 1.69501 14.3377 1.01001 13.4927 1.01001Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M10.4227 1.01001V14.81",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"2+2-columns"===this.props.name&&n.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M13.0927 1.01001H2.35266C1.50767 1.01001 0.822693 1.69501 0.822693 2.54001V13.28C0.822693 14.125 1.50767 14.81 2.35266 14.81H13.0927C13.9376 14.81 14.6227 14.125 14.6227 13.28V2.54001C14.6227 1.69501 13.9376 1.01001 13.0927 1.01001Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M10.0226 1.01001V7.91",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M5.35266 7.91V14.81",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M14.6227 7.91H0.822693",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"3+1-columns"===this.props.name&&n.createElement("svg",{width:"16",height:"17",viewBox:"0 0 16 17",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M13.2927 1.66H2.55267C1.70768 1.66 1.02264 2.34501 1.02264 3.19V13.93C1.02264 14.775 1.70768 15.46 2.55267 15.46H13.2927C14.1377 15.46 14.8227 14.775 14.8227 13.93V3.19C14.8227 2.34501 14.1377 1.66 13.2927 1.66Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M5.62268 1.66V6.51999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M10.2227 1.66V6.51999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M14.8227 6.51999H1.02264",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"bug"===this.props.name&&n.createElement("svg",{width:"15",height:"16",viewBox:"0 0 15 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M7.73268 5.40999C8.15113 5.40867 8.56568 5.48993 8.95265 5.64916C9.33962 5.80838 9.6914 6.04242 9.98775 6.33785C10.2841 6.63327 10.5192 6.98427 10.6796 7.37074C10.8401 7.75721 10.9227 8.17154 10.9227 8.58998V9.98998C10.9227 10.836 10.5866 11.6474 9.98836 12.2457C9.39012 12.8439 8.57872 13.18 7.73268 13.18C7.31424 13.18 6.89991 13.0974 6.51344 12.937C6.12697 12.7765 5.77597 12.5414 5.48055 12.245C5.18512 11.9487 4.95111 11.5969 4.79189 11.21C4.63267 10.823 4.55137 10.4084 4.55269 9.98998V8.58998C4.55269 7.74659 4.88772 6.93775 5.48409 6.34139C6.08045 5.74502 6.88929 5.40999 7.73268 5.40999V5.40999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M5.74268 5.41V4.69C5.74268 4.2577 5.91441 3.8431 6.22009 3.53741C6.52578 3.23173 6.94038 3.06 7.37268 3.06H8.09265C8.52495 3.06 8.93955 3.23173 9.24524 3.53741C9.55092 3.8431 9.72266 4.2577 9.72266 4.69V5.41",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M6.06268 1.45999C6.99268 1.64999 7.61268 2.11999 7.62268 2.64999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M9.40265 1.45999C8.47265 1.64999 7.85265 2.11999 7.84265 2.64999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M10.8627 7.95999L13.5427 6.51001L12.5427 4.31",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M10.9227 9.29999H13.0226L14.1627 11.8",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M10.5427 11.51L12.0126 12.78L10.5427 14.91",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M4.52264 7.95999L1.84265 6.51001L2.84265 4.31",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M4.46265 9.29999H2.36267L1.22266 11.8",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M4.84265 11.51L3.36267 12.78L4.84265 14.91",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"cloud"===this.props.name&&n.createElement("svg",{width:"17",height:"13",viewBox:"0 0 17 13",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M12.2073 5.06497H11.3573C11.1192 4.10573 10.616 3.2328 9.90537 2.54587C9.19474 1.85894 8.30523 1.38569 7.33847 1.18018C6.3717 0.974661 5.36663 1.04515 4.43801 1.38361C3.5094 1.72206 2.69467 2.31484 2.08688 3.09424C1.47909 3.87364 1.10273 4.80825 1.00077 5.79135C0.898818 6.77445 1.07538 7.76642 1.51029 8.65396C1.94521 9.5415 2.62095 10.2889 3.46035 10.8107C4.29975 11.3325 5.26897 11.6077 6.25733 11.605H12.2073C13.0746 11.605 13.9063 11.2605 14.5196 10.6472C15.1328 10.034 15.4773 9.20222 15.4773 8.33496C15.4773 7.4677 15.1328 6.63598 14.5196 6.02274C13.9063 5.40949 13.0746 5.06497 12.2073 5.06497V5.06497Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"columns-caret-left"===this.props.name&&n.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M13.6927 1.01001H2.9527C2.1077 1.01001 1.42267 1.69501 1.42267 2.54001V13.28C1.42267 14.125 2.1077 14.81 2.9527 14.81H13.6927C14.5377 14.81 15.2227 14.125 15.2227 13.28V2.54001C15.2227 1.69501 14.5377 1.01001 13.6927 1.01001Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M6.02271 1.01001V14.81",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M11.9327 5.59L9.61267 7.91L11.9327 10.23",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"columns-caret-right"===this.props.name&&n.createElement("svg",{width:"17",height:"16",viewBox:"0 0 17 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M13.8927 1.01001H3.15265C2.30765 1.01001 1.62268 1.69501 1.62268 2.54001V13.28C1.62268 14.125 2.30765 14.81 3.15265 14.81H13.8927C14.7377 14.81 15.4227 14.125 15.4227 13.28V2.54001C15.4227 1.69501 14.7377 1.01001 13.8927 1.01001Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M6.22266 1.01001V14.81",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M9.81268 10.23L12.1327 7.91L9.81268 5.59",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"columns-narrow-left"===this.props.name&&n.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M13.6927 1.01001H2.95267C2.10767 1.01001 1.42267 1.69501 1.42267 2.54001V13.28C1.42267 14.125 2.10767 14.81 2.95267 14.81H13.6927C14.5377 14.81 15.2227 14.125 15.2227 13.28V2.54001C15.2227 1.69501 14.5377 1.01001 13.6927 1.01001Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M6.02264 1.01001V14.81",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"columns"===this.props.name&&n.createElement("svg",{width:"17",height:"17",viewBox:"0 0 17 17",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M13.8926 1.66H3.15265C2.30765 1.66 1.62265 2.34501 1.62265 3.19V13.93C1.62265 14.775 2.30765 15.46 3.15265 15.46H13.8926C14.7376 15.46 15.4227 14.775 15.4227 13.93V3.19C15.4227 2.34501 14.7376 1.66 13.8926 1.66Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M6.22266 1.66V15.46",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M10.8227 1.66V15.46",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"dashboard-2"===this.props.name&&n.createElement("svg",{width:"17",height:"13",viewBox:"0 0 17 13",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M14.1126 3.82999C15.0921 5.06821 15.6243 6.6012 15.6227 8.17999C15.6218 9.26541 15.3721 10.3362 14.8927 11.31",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M2.20267 11.28C1.72784 10.3157 1.48147 9.25491 1.48267 8.18001C1.48722 7.09544 1.74051 6.02639 2.22309 5.0551C2.70566 4.0838 3.40465 3.23616 4.26624 2.57741C5.12783 1.91865 6.12907 1.46634 7.19291 1.25529C8.25675 1.04424 9.35483 1.08005 10.4027 1.36",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M8.55267 8.17999L12.4326 2.34",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M15.6227 8.17999H14.0527",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M8.55267 1.12V2.69",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M3.56262 3.19L4.67264 4.29999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M1.49268 8.17999H3.06268",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"dice"===this.props.name&&n.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M7.14615 5.29L1.81615 6.97C1.50297 7.07105 1.24229 7.29153 1.09065 7.58358C0.939009 7.87563 0.908637 8.2157 1.00615 8.52999L2.68616 13.86C2.78515 14.175 3.00477 14.4381 3.29706 14.5917C3.58934 14.7453 3.93054 14.7771 4.24615 14.68L9.57616 13C9.73199 12.9511 9.87662 12.8719 10.0018 12.7669C10.1269 12.6619 10.23 12.5333 10.3053 12.3883C10.3806 12.2433 10.4265 12.0849 10.4403 11.9222C10.4542 11.7595 10.4358 11.5956 10.3862 11.44L8.70616 6.1C8.60511 5.78683 8.38463 5.52612 8.09257 5.37448C7.80052 5.22283 7.46044 5.19249 7.14615 5.29V5.29Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M11.6762 10.09C11.8345 10.1286 11.9988 10.1353 12.1597 10.1098C12.3207 10.0843 12.4749 10.0271 12.6135 9.94154C12.7521 9.85595 12.8724 9.74366 12.9673 9.61122C13.0621 9.47877 13.1297 9.32879 13.1662 9.17L14.4562 3.72001C14.5313 3.40046 14.4766 3.06417 14.3041 2.78486C14.1317 2.50556 13.8555 2.30603 13.5362 2.23002L8.09618 0.940016C7.77417 0.867702 7.43664 0.924619 7.15614 1.09852C6.87565 1.27243 6.67459 1.54943 6.59618 1.87001L6.13617 3.87001",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M3.43617 9.62C3.878 9.62 4.23618 9.26184 4.23618 8.82001C4.23618 8.37818 3.878 8.01999 3.43617 8.01999C2.99434 8.01999 2.63617 8.37818 2.63617 8.82001C2.63617 9.26184 2.99434 9.62 3.43617 9.62Z",fill:"var(--icon-color)",stroke:"none"}),n.createElement("path",{d:"M6.88617 8.51999C7.328 8.51999 7.68617 8.16183 7.68617 7.72C7.68617 7.27817 7.328 6.92001 6.88617 6.92001C6.44434 6.92001 6.08618 7.27817 6.08618 7.72C6.08618 8.16183 6.44434 8.51999 6.88617 8.51999Z",fill:"var(--icon-color)",stroke:"none"}),n.createElement("path",{d:"M5.69617 10.79C6.13799 10.79 6.49617 10.4318 6.49617 9.98999C6.49617 9.54816 6.13799 9.19 5.69617 9.19C5.25434 9.19 4.89618 9.54816 4.89618 9.98999C4.89618 10.4318 5.25434 10.79 5.69617 10.79Z",fill:"var(--icon-color)",stroke:"none"}),n.createElement("path",{d:"M4.52618 13.05C4.96801 13.05 5.32619 12.6918 5.32619 12.25C5.32619 11.8082 4.96801 11.45 4.52618 11.45C4.08436 11.45 3.7262 11.8082 3.7262 12.25C3.7262 12.6918 4.08436 13.05 4.52618 13.05Z",fill:"var(--icon-color)",stroke:"none"}),n.createElement("path",{d:"M7.96614 11.97C8.40797 11.97 8.76614 11.6118 8.76614 11.17C8.76614 10.7282 8.40797 10.37 7.96614 10.37C7.52431 10.37 7.16614 10.7282 7.16614 11.17C7.16614 11.6118 7.52431 11.97 7.96614 11.97Z",fill:"var(--icon-color)",stroke:"none"}),n.createElement("path",{d:"M11.2362 8.48999C11.678 8.48999 12.0362 8.13183 12.0362 7.69C12.0362 7.24817 11.678 6.89001 11.2362 6.89001C10.7943 6.89001 10.4362 7.24817 10.4362 7.69C10.4362 8.13183 10.7943 8.48999 11.2362 8.48999Z",fill:"var(--icon-color)",stroke:"none"}),n.createElement("path",{d:"M8.54616 4.14001C8.98799 4.14001 9.34616 3.78182 9.34616 3.34C9.34616 2.89817 8.98799 2.54001 8.54616 2.54001C8.10433 2.54001 7.74615 2.89817 7.74615 3.34C7.74615 3.78182 8.10433 4.14001 8.54616 4.14001Z",fill:"var(--icon-color)",stroke:"none"})),"face-ID"===this.props.name&&n.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M1.35001 5.07001V2.51001C1.34869 2.33845 1.38134 2.16831 1.44608 2.00943C1.51082 1.85055 1.60637 1.70607 1.72722 1.58429C1.84807 1.46251 1.99183 1.36585 2.15021 1.2999C2.30859 1.23394 2.47845 1.19998 2.65002 1.19998H4.95001",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M10.72 1.19998H13.29C13.4616 1.19998 13.6315 1.23394 13.7898 1.2999C13.9482 1.36585 14.092 1.46251 14.2128 1.58429C14.3337 1.70607 14.4292 1.85055 14.494 2.00943C14.5587 2.16831 14.5913 2.33845 14.59 2.51001V4.79999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M14.59 10.59V13.16C14.59 13.5057 14.4534 13.8374 14.2098 14.0828C13.9663 14.3282 13.6357 14.4674 13.29 14.47H10.99",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M5.22 14.45H2.67C2.3243 14.4473 1.99366 14.3082 1.75014 14.0628C1.50663 13.8174 1.36999 13.4857 1.37 13.14V10.84",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M4.94 5.53V7.13",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M11.01 5.53V7.13",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M7.97 5.39999V8.23999C7.97002 8.38679 7.9124 8.52774 7.80953 8.63248C7.70666 8.73721 7.56678 8.79737 7.42 8.79999H7.31",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M10.1 10.28C9.49291 10.8839 8.67138 11.223 7.81503 11.223C6.95867 11.223 6.13715 10.8839 5.53003 10.28",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"fingerprint"===this.props.name&&n.createElement("svg",{width:"16",height:"17",viewBox:"0 0 16 17",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M8.68002 16C7.83861 15.3719 7.15609 14.5553 6.68721 13.6158C6.21833 12.6763 5.97612 11.64 5.98003 10.59C6.01806 10.0205 6.27111 9.48669 6.68794 9.09676C7.10478 8.70683 7.65424 8.48989 8.22502 8.48989C8.79581 8.48989 9.34526 8.70683 9.7621 9.09676C10.1789 9.48669 10.432 10.0205 10.47 10.59C10.47 10.8841 10.528 11.1754 10.6405 11.4472C10.7531 11.719 10.9181 11.9659 11.1261 12.1739C11.3341 12.3819 11.581 12.5469 11.8528 12.6595C12.1246 12.772 12.4159 12.83 12.71 12.83C13.0042 12.83 13.2955 12.772 13.5672 12.6595C13.839 12.5469 14.0859 12.3819 14.2939 12.1739C14.5019 11.9659 14.6669 11.719 14.7795 11.4472C14.8921 11.1754 14.95 10.8841 14.95 10.59C14.9417 8.90033 14.2971 7.27584 13.1447 6.04012C11.9923 4.8044 10.4167 4.04814 8.73169 3.92202C7.04672 3.7959 5.37609 4.30918 4.05258 5.35958C2.72907 6.40997 1.84984 7.9204 1.59003 9.58998",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeMiterlimit:"10",strokeLinecap:"round"}),n.createElement("path",{d:"M12.6801 10.59C12.6801 9.39652 12.2059 8.25193 11.362 7.40802C10.5181 6.56411 9.37353 6.09 8.18005 6.09C6.98658 6.09 5.84198 6.56411 4.99807 7.40802C4.15416 8.25193 3.68005 9.39652 3.68005 10.59C3.67942 12.0766 4.04704 13.5402 4.75005 14.85",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeMiterlimit:"10",strokeLinecap:"round"}),n.createElement("path",{d:"M3.52002 2.98998C5.11912 2.00811 6.98513 1.55064 8.85704 1.68153C10.7289 1.81242 12.5131 2.52514 13.96 3.71999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeMiterlimit:"10",strokeLinecap:"round"}),n.createElement("path",{d:"M8.22003 10.59C8.2202 11.6349 8.58483 12.6471 9.2511 13.4521C9.91736 14.2571 10.8435 14.8045 11.87 15",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeMiterlimit:"10",strokeLinecap:"round"})),"folder-root"===this.props.name&&n.createElement("svg",{width:"15",height:"13",viewBox:"0 0 15 13",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M14 10.7744C14.0001 10.9354 13.9668 11.0948 13.9022 11.2436C13.8375 11.3923 13.7427 11.5275 13.6232 11.6413C13.3765 11.8699 13.0463 11.9985 12.7021 12H2.29791C1.95367 11.9985 1.62347 11.8699 1.37681 11.6413C1.25728 11.5275 1.16248 11.3923 1.09782 11.2436C1.03317 11.0948 0.999929 10.9354 1 10.7744V2.22555C0.999929 2.06459 1.03317 1.90517 1.09782 1.75643C1.16248 1.6077 1.25728 1.47257 1.37681 1.35871C1.62347 1.13012 1.95367 1.00152 2.29791 1H5.55314L6.85105 2.83333H12.7021C13.0463 2.83485 13.3765 2.96345 13.6232 3.19204C13.7427 3.30589 13.8375 3.44106 13.9022 3.58979C13.9668 3.73853 14.0001 3.89792 14 4.05888V10.7744Z",fill:"var(--icon-background-color)",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M7.49995 4.91578L4.25519 7.26721V10.9937C4.25519 11.1733 4.33018 11.3457 4.46366 11.4727C4.59714 11.5998 4.77817 11.6712 4.96694 11.6712H6.46372V8.68208H8.45245V11.6712H9.9597C10.0532 11.6715 10.1458 11.6541 10.232 11.6199C10.3183 11.5856 10.3965 11.5353 10.4621 11.4719C10.5938 11.344 10.6688 11.1727 10.6715 10.9937V7.26721L7.49995 4.91578Z",fill:"var(--icon-color)",stroke:"none"})),"folder-shared"===this.props.name&&n.createElement("svg",{width:"15",height:"13",viewBox:"0 0 15 13",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M14 10.7744C14.0001 10.9354 13.9668 11.0948 13.9022 11.2436C13.8375 11.3923 13.7427 11.5275 13.6232 11.6413C13.3765 11.8699 13.0463 11.9985 12.7021 12H2.2979C1.95366 11.9985 1.62347 11.8699 1.37681 11.6413C1.25728 11.5275 1.16248 11.3923 1.09782 11.2436C1.03317 11.0948 0.999929 10.9354 1 10.7744V2.22555C0.999929 2.06459 1.03317 1.90517 1.09782 1.75643C1.16248 1.6077 1.25728 1.47256 1.37681 1.35871C1.62347 1.13012 1.95366 1.00152 2.2979 1H5.55314L6.85104 2.83333H12.7021C13.0463 2.83485 13.3765 2.96345 13.6232 3.19204C13.7427 3.30589 13.8375 3.44106 13.9022 3.58979C13.9668 3.73853 14.0001 3.89791 14 4.05888V10.7744Z",fill:"var(--icon-background-color)",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M10.3889 12V10.7246C10.3922 10.3531 10.2418 9.99517 9.97022 9.72827C9.83273 9.59843 9.66922 9.49625 9.48941 9.42779C9.30959 9.35932 9.11715 9.32597 8.92353 9.32972H6.05557C5.8655 9.3284 5.67704 9.36305 5.50116 9.43168C5.32528 9.50031 5.1655 9.60154 5.03109 9.72948C4.89668 9.85743 4.79034 10.0095 4.71824 10.177C4.64615 10.3444 4.60973 10.5238 4.61112 10.7047V11.9801",fill:"var(--icon-color)",stroke:"none"}),n.createElement("path",{d:"M7.49998 7.97461C7.78567 7.97461 8.06493 7.89397 8.30247 7.74288C8.54001 7.5918 8.72515 7.37705 8.83448 7.1258C8.9438 6.87456 8.97241 6.59808 8.91667 6.33136C8.86094 6.06464 8.72337 5.81965 8.52136 5.62735C8.31935 5.43505 8.06198 5.30409 7.78178 5.25103C7.50159 5.19798 7.21116 5.22523 6.94722 5.3293C6.68329 5.43337 6.45769 5.60961 6.29897 5.83573C6.14025 6.06184 6.05554 6.32766 6.05554 6.59961C6.05554 6.96428 6.20772 7.31404 6.47861 7.5719C6.74949 7.82977 7.11689 7.97461 7.49998 7.97461Z",fill:"var(--icon-color)",stroke:"none"})),"heart-o"===this.props.name&&n.createElement("svg",{width:"17",height:"15",viewBox:"0 0 17 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M8.46701 14.12C8.39968 14.1229 8.33253 14.1109 8.27032 14.085C8.20811 14.0591 8.15238 14.0198 8.10702 13.97L2.98703 9.04L2.75701 8.82L2.30703 8.29C2.10475 8.03461 1.91773 7.76746 1.747 7.48998C1.56775 7.17196 1.42039 6.837 1.30703 6.48998C1.1817 6.1264 1.11749 5.74455 1.11703 5.35998C1.08303 4.84662 1.15416 4.33172 1.32611 3.84682C1.49806 3.36192 1.76721 2.91725 2.11703 2.54C2.50658 2.19036 2.9619 1.92184 3.45639 1.75014C3.95087 1.57845 4.4746 1.50701 4.997 1.54C5.33771 1.5472 5.67517 1.60793 5.997 1.71999C6.34988 1.83562 6.68607 1.99697 6.997 2.19997C7.26741 2.3717 7.52783 2.5587 7.777 2.76C7.99865 2.93314 8.20908 3.12018 8.40701 3.32C8.59918 3.11788 8.80644 2.93068 9.027 2.76C9.247 2.58 9.50703 2.39997 9.80703 2.19997C10.1184 1.99766 10.4545 1.83635 10.807 1.71999C11.1286 1.60695 11.4662 1.54619 11.807 1.54C12.3295 1.50645 12.8534 1.57762 13.3479 1.74935C13.8425 1.92107 14.2978 2.18989 14.687 2.54C15.0388 2.9159 15.3092 3.36039 15.4813 3.84563C15.6534 4.33088 15.7234 4.84641 15.687 5.35998C15.6358 6.06837 15.4442 6.75949 15.1231 7.39303C14.802 8.02656 14.358 8.58983 13.817 9.04998L8.70703 13.97C8.64352 14.0425 8.56002 14.0947 8.46701 14.12Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"heart"===this.props.name&&n.createElement("svg",{width:"16",height:"14",viewBox:"0 0 16 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M8.05462 13.12C7.98595 13.1217 7.91766 13.1093 7.854 13.0835C7.79034 13.0577 7.73269 13.0191 7.68462 12.97L2.57461 8.04L2.34463 7.82L1.89462 7.29C1.68905 7.03708 1.5019 6.7697 1.33462 6.48998C1.15536 6.17196 1.00798 5.837 0.894616 5.48998C0.769279 5.1264 0.705073 4.74455 0.704614 4.35998C0.670613 3.84662 0.74177 3.33172 0.91372 2.84682C1.08567 2.36192 1.35479 1.91725 1.70461 1.54C2.09386 1.18989 2.54913 0.921074 3.04369 0.74935C3.53826 0.577625 4.06216 0.506451 4.58462 0.539999C4.92533 0.547199 5.26278 0.607934 5.58462 0.719992C5.93749 0.835618 6.27369 0.996973 6.58462 1.19997C6.88462 1.39997 7.14462 1.58 7.36462 1.76C7.58627 1.93314 7.79669 2.12018 7.99462 2.32C8.18679 2.11788 8.39405 1.93068 8.61462 1.76C8.83462 1.58 9.09462 1.39997 9.39462 1.19997C9.70594 0.997665 10.042 0.836354 10.3946 0.719992C10.716 0.606272 11.0537 0.545489 11.3946 0.539999C11.9171 0.506451 12.441 0.577625 12.9355 0.74935C13.4301 0.921074 13.8854 1.18989 14.2746 1.54C14.6264 1.9159 14.8968 2.36039 15.0689 2.84563C15.241 3.33088 15.311 3.84641 15.2746 4.35998C15.2235 5.06837 15.0317 5.75949 14.7107 6.39303C14.3896 7.02656 13.9457 7.58983 13.4046 8.04998L8.29461 12.97C8.23111 13.0425 8.14763 13.0947 8.05462 13.12V13.12Z",fill:"var(--icon-color)",stroke:"none"})),"heartbeat"===this.props.name&&n.createElement("svg",{width:"16",height:"14",viewBox:"0 0 16 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M14.524 7.18165H9.754L8.55402 13.14L6.14401 1.69998L4.95401 7.03865H1.284",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"Pin"===this.props.name&&n.createElement("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M8.98903 8.67999L10.849 5.16L11.019 5.32999C11.2505 5.55539 11.5609 5.68152 11.884 5.68152C12.2072 5.68152 12.5175 5.55539 12.749 5.32999C12.863 5.21661 12.9535 5.08183 13.0152 4.93338C13.0769 4.78493 13.1087 4.62576 13.1087 4.465C13.1087 4.30423 13.0769 4.14506 13.0152 3.99661C12.9535 3.84817 12.863 3.71338 12.749 3.60001L10.419 1.26999C10.1896 1.04058 9.87847 0.911713 9.55403 0.911713C9.22959 0.911713 8.91844 1.04058 8.68903 1.26999C8.45961 1.4994 8.33073 1.81057 8.33073 2.13501C8.33073 2.45945 8.45961 2.77059 8.68903 3L8.86903 3.16998L5.33904 5.03C4.87276 4.77332 4.33557 4.67547 3.80873 4.75125C3.28189 4.82703 2.79407 5.07229 2.41904 5.44998L2.00903 5.85001L8.16904 12.01L8.56903 11.61C8.94755 11.2334 9.19324 10.7438 9.26901 10.2152C9.34478 9.68667 9.2465 9.14779 8.98903 8.67999V8.67999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M3.89906 10.13L1.29907 12.73",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"plug"===this.props.name&&n.createElement("svg",{width:"13",height:"15",viewBox:"0 0 13 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M4.01277 5.26999C3.52129 5.84389 3.26446 6.58213 3.29362 7.33716C3.32278 8.09219 3.63577 8.8084 4.17005 9.34268C4.70434 9.87697 5.42058 10.19 6.17561 10.2191C6.93064 10.2483 7.66884 9.99148 8.24275 9.5L10.3528 7.38998L6.13276 3.16L4.01277 5.26999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M4.01273 9.5L1.96271 11.5C1.7532 11.7098 1.61057 11.9769 1.5528 12.2677C1.49503 12.5585 1.52473 12.8599 1.63816 13.1339C1.75158 13.4078 1.94364 13.642 2.19007 13.8068C2.4365 13.9716 2.72623 14.0597 3.02271 14.06H12.0227",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M8.17273 2.82999L9.46271 1.54001",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M10.6927 5.35001L11.9828 4.06",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M5.58276 2.62L10.8528 7.89001",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"server"===this.props.name&&n.createElement("svg",{width:"15",height:"14",viewBox:"0 0 15 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M12.2891 8.79999H2.47908C1.93232 8.79999 1.48907 9.24325 1.48907 9.79001V11.77C1.48907 12.3168 1.93232 12.76 2.47908 12.76H12.2891C12.8358 12.76 13.2791 12.3168 13.2791 11.77V9.79001C13.2791 9.24325 12.8358 8.79999 12.2891 8.79999Z",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M1.48907 7.01001V5.82999C1.48907 5.56477 1.59443 5.31043 1.78197 5.12289C1.9695 4.93536 2.22386 4.82999 2.48907 4.82999H12.2991C12.5643 4.82999 12.8186 4.93536 13.0062 5.12289C13.1937 5.31043 13.2991 5.56477 13.2991 5.82999V7.01001",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M1.48907 3.04999V1.87C1.48907 1.60478 1.59443 1.35044 1.78197 1.1629C1.9695 0.975366 2.22386 0.869995 2.48907 0.869995H12.2991C12.5643 0.869995 12.8186 0.975366 13.0062 1.1629C13.1937 1.35044 13.2991 1.60478 13.2991 1.87V3.04999",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M3.46906 3.60999C3.88327 3.60999 4.21906 3.2742 4.21906 2.85999C4.21906 2.44577 3.88327 2.10999 3.46906 2.10999C3.05484 2.10999 2.71906 2.44577 2.71906 2.85999C2.71906 3.2742 3.05484 3.60999 3.46906 3.60999Z",fill:"var(--icon-color)",stroke:"none"}),n.createElement("path",{d:"M3.46906 7.57001C3.88327 7.57001 4.21906 7.23422 4.21906 6.82001C4.21906 6.40579 3.88327 6.07001 3.46906 6.07001C3.05484 6.07001 2.71906 6.40579 2.71906 6.82001C2.71906 7.23422 3.05484 7.57001 3.46906 7.57001Z",fill:"var(--icon-color)",stroke:"none"}),n.createElement("path",{d:"M3.46906 11.53C3.88327 11.53 4.21906 11.1942 4.21906 10.78C4.21906 10.3658 3.88327 10.03 3.46906 10.03C3.05484 10.03 2.71906 10.3658 2.71906 10.78C2.71906 11.1942 3.05484 11.53 3.46906 11.53Z",fill:"var(--icon-color)",stroke:"none"})),"share-2"===this.props.name&&n.createElement("svg",{width:"17",height:"14",viewBox:"0 0 17 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M8.11267 11.7L6.36267 13.21L6.32269 7.70999L1.16266 5.44L15.9727 1.45999L10.7827 12.82L8.21265 8.38",fill:"none",stroke:"var(--icon-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"failed"===this.props.name&&n.createElement("svg",{width:"127",height:"127",viewBox:"0 0 127 127",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("circle",{cx:"63.25",cy:"63.1909",r:"61",stroke:"var(--icon-failed-color)",strokeWidth:"4"}),n.createElement("g",{clipPath:"url(#clip0_174_687280)"},n.createElement("path",{d:"M63.249 32.4197L63.249 69.784",stroke:"var(--icon-failed-color)",strokeWidth:"6.66667",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M63.249 85.2234H63.1493",stroke:"var(--icon-failed-color)",strokeWidth:"6.66667",strokeLinecap:"round",strokeLinejoin:"round"})),n.createElement("defs",null,n.createElement("clipPath",{id:"clip0_174_687280"},n.createElement("rect",{width:"68.1081",height:"68.1081",fill:"var(--icon-exclamation-color)",transform:"translate(29.1959 29.137)"})))),"success"===this.props.name&&n.createElement("svg",{width:"127",height:"127",viewBox:"0 0 127 127",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("circle",{cx:"63.25",cy:"63.1909",r:"61",stroke:"var(--icon-success-color)",strokeWidth:"4"}),n.createElement("path",{d:"M85.9519 46.1641L54.7357 77.3803L40.5465 63.1911",stroke:"var(--icon-success-color)",strokeWidth:"6.69935",strokeLinecap:"round",strokeLinejoin:"round"})),"exclamation"===this.props.name&&n.createElement("svg",{width:"13",height:"13",viewBox:"0 0 13 13",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M6.70175 0.0187378C5.51507 0.0187378 4.35498 0.370631 3.36829 1.02992C2.38159 1.68921 1.61254 2.62628 1.15842 3.72264C0.704293 4.81899 0.585428 6.02539 0.816939 7.18927C1.04845 8.35316 1.62007 9.42228 2.45918 10.2614C3.29829 11.1005 4.36718 11.6719 5.53107 11.9035C6.69495 12.135 7.90159 12.0161 8.99794 11.562C10.0943 11.1079 11.0313 10.3389 11.6905 9.35217C12.3498 8.36548 12.7017 7.20539 12.7017 6.0187C12.7017 4.42741 12.0695 2.90129 10.9443 1.77607C9.81911 0.650856 8.29305 0.0187378 6.70175 0.0187378Z",fill:"var(--icon-exclamation-background-color)"}),n.createElement("path",{d:"M6.71118 3.0694L6.71118 6.6279",stroke:"var(--icon-exclamation-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"}),n.createElement("path",{d:"M6.71118 9H6.70169",stroke:"var(--icon-exclamation-color)",vectorEffect:"non-scaling-stroke",strokeWidth:"var(--icon-stroke-width)",strokeLinecap:"round",strokeLinejoin:"round"})),"spinner"===this.props.name&&n.createElement("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("circle",{cx:"8",cy:"8",r:"8",transform:"translate(1 1)",fill:"none",stroke:"var(--spinner-background)",strokeWidth:"var(--spinner-stroke-width)"}),n.createElement("ellipse",{id:"loading",rx:"8",ry:"8",transform:"translate(9 9)",fill:"none",stroke:"var(--spinner-color)",strokeWidth:"var(--spinner-stroke-width)",strokeLinecap:"round"})))}}re.defaultProps={big:!1,baseline:!1,dim:!1,onClick:()=>{}},re.propTypes={name:s().string,big:s().bool,dim:s().bool,baseline:s().bool,onClick:s().func};const le=re;class ce extends n.Component{constructor(e){super(e),this.state=this.getDefaultState(),this.bindCallbacks()}getDefaultState(){return{error:!1}}bindCallbacks(){this.handleError=this.handleError.bind(this)}propsHasUrl(){return this.props.user&&this.props.user.profile&&this.props.user.profile.avatar&&this.props.user.profile.avatar.url&&this.props.user.profile.avatar.url.medium}propsUrlHasProtocol(){return this.props.user.profile.avatar.url.medium.startsWith("https://")||this.props.user.profile.avatar.url.medium.startsWith("http://")}formatUrl(e){return`${this.props.baseUrl}/${e}`}getDefaultAvatarUrl(){return`${this.props.baseUrl}/img/avatar/user.png`}getAvatarSrc(){return!this.state.error&&this.propsHasUrl()?this.propsUrlHasProtocol()?this.props.user.profile.avatar.url.medium:this.formatUrl(this.props.user.profile.avatar.url.medium):this.getDefaultAvatarUrl()}handleError(){console.error(`Could not load avatar image url: ${this.getAvatarSrc()}`),this.setState({error:!0})}getAltText(){return this.props.user&&this.props.user.first_name&&this.props.user.last_name?`Avatar of user ${this.props.user.first_name} ${this.props.user.last_name}.`:"..."}render(){return n.createElement("div",{className:`${this.props.className} ${this.props.attentionRequired?"attention-required":""}`},!this.state.error&&n.createElement("img",{src:this.getAvatarSrc(),onError:this.handleError,alt:this.getAltText()}),this.state.error&&n.createElement("img",{src:this.getDefaultAvatarUrl(),alt:this.getAltText()}),this.props.attentionRequired&&n.createElement(le,{name:"exclamation"}))}}ce.defaultProps={className:"avatar user-avatar"},ce.propTypes={baseUrl:s().string,user:s().object,attentionRequired:s().bool,className:s().string};const me=ce;class de extends n.Component{constructor(e){super(e),this.state=this.getDefaultState(),this.bindCallbacks(),this.createRefs()}getDefaultState(){return{open:!1,loading:!0}}bindCallbacks(){this.handleDocumentClickEvent=this.handleDocumentClickEvent.bind(this),this.handleDocumentContextualMenuEvent=this.handleDocumentContextualMenuEvent.bind(this),this.handleDocumentDragStartEvent=this.handleDocumentDragStartEvent.bind(this),this.handleToggleMenuClick=this.handleToggleMenuClick.bind(this),this.handleProfileClick=this.handleProfileClick.bind(this),this.handleThemeClick=this.handleThemeClick.bind(this),this.handleMobileAppsClick=this.handleMobileAppsClick.bind(this)}componentDidMount(){document.addEventListener("click",this.handleDocumentClickEvent,{capture:!0}),document.addEventListener("contextmenu",this.handleDocumentContextualMenuEvent,{capture:!0}),document.addEventListener("dragstart",this.handleDocumentDragStartEvent,{capture:!0})}componentWillUnmount(){document.removeEventListener("click",this.handleDocumentClickEvent,{capture:!0}),document.removeEventListener("contextmenu",this.handleDocumentContextualMenuEvent,{capture:!0}),document.removeEventListener("dragstart",this.handleDocumentDragStartEvent,{capture:!0})}createRefs(){this.userBadgeMenuRef=n.createRef()}get canIUseThemeCapability(){return this.props.context.siteSettings&&this.props.context.siteSettings.canIUse("accountSettings")}get canIUseMobileCapability(){return this.props.context.siteSettings&&this.props.context.siteSettings.canIUse("mobile")}handleDocumentClickEvent(e){this.userBadgeMenuRef.current.contains(e.target)||this.closeUserBadgeMenu()}handleDocumentContextualMenuEvent(e){this.userBadgeMenuRef.current.contains(e.target)||this.closeUserBadgeMenu()}handleDocumentDragStartEvent(){this.closeUserBadgeMenu()}closeUserBadgeMenu(){this.setState({open:!1})}getUserFullName(){return this.props.user&&this.props.user.profile?`${this.props.user.profile.first_name} ${this.props.user.profile.last_name}`:"..."}getUserUsername(){return this.props.user&&this.props.user.username?`${this.props.user.username}`:"..."}handleToggleMenuClick(e){e.preventDefault();const t=!this.state.open;this.setState({open:t})}handleProfileClick(){this.props.navigationContext.onGoToUserSettingsProfileRequested(),this.closeUserBadgeMenu()}handleThemeClick(){this.props.navigationContext.onGoToUserSettingsThemeRequested(),this.closeUserBadgeMenu()}handleMobileAppsClick(){this.props.navigationContext.onGoToUserSettingsMobileRequested(),this.closeUserBadgeMenu()}get attentionRequired(){return this.props.accountRecoveryContext.isAccountRecoveryChoiceRequired()}render(){return n.createElement("div",{className:"col3 profile-wrapper"},n.createElement("div",{className:"user profile dropdown",ref:this.userBadgeMenuRef},n.createElement("div",{className:"avatar-with-name button "+(this.state.open?"open":""),onClick:this.handleToggleMenuClick},n.createElement(me,{user:this.props.user,className:"avatar picture left-cell",baseUrl:this.props.baseUrl,attentionRequired:this.attentionRequired}),n.createElement("div",{className:"details center-cell"},n.createElement("span",{className:"name"},this.getUserFullName()),n.createElement("span",{className:"email"},this.getUserUsername())),n.createElement("div",{className:"more right-cell"},n.createElement("a",{role:"button"},n.createElement(le,{name:"caret-down"})))),this.state.open&&n.createElement("ul",{className:"dropdown-content right visible"},n.createElement("li",{key:"profile"},n.createElement("div",{className:"row"},n.createElement("a",{role:"button",tabIndex:"1",onClick:this.handleProfileClick},n.createElement("span",null,n.createElement(v.c,null,"Profile")),this.attentionRequired&&n.createElement(le,{name:"exclamation",baseline:!0})))),this.canIUseThemeCapability&&n.createElement("li",{key:"theme"},n.createElement("div",{className:"row"},n.createElement("a",{role:"button",tabIndex:"2",onClick:this.handleThemeClick},n.createElement("span",null,n.createElement(v.c,null,"Theme"))))),this.canIUseMobileCapability&&n.createElement("li",{key:"mobile"},n.createElement("div",{className:"row"},n.createElement("a",{role:"button",tabIndex:"3",onClick:this.handleMobileAppsClick},n.createElement("span",null,n.createElement(v.c,null,"Mobile Apps")),n.createElement("span",{className:"chips new"},"new")))))))}}de.propTypes={context:s().object,navigationContext:s().any,accountRecoveryContext:s().object,baseUrl:s().string,user:s().object};const he=R(J(se((0,k.Z)("common")(de))));class ue extends n.Component{constructor(e){super(e),this.bindCallbacks()}get isMfaEnabled(){const e=this.props.context.siteSettings;return e&&e.canIUse("multiFactorAuthentication")}get isUserDirectoryEnabled(){const e=this.props.context.siteSettings;return e&&e.canIUse("directorySync")}get canIUseEE(){const e=this.props.context.siteSettings;return e&&e.canIUse("ee")}get canIUseLocale(){return this.props.context.siteSettings&&this.props.context.siteSettings.canIUse("locale")}get canIUseAccountRecovery(){const e=this.props.context.siteSettings;return e&&e.canIUse("accountRecovery")}get canIUseSmtpSettings(){const e=this.props.context.siteSettings;return e&&e.canIUse("smtpSettings")}get canIUseSelfRegistrationSettings(){const e=this.props.context.siteSettings;return e&&e.canIUse("selfRegistration")}get canIUseSso(){const e=this.props.context.siteSettings;return e&&e.canIUse("sso")}bindCallbacks(){this.handleMfaClick=this.handleMfaClick.bind(this),this.handleUserDirectoryClick=this.handleUserDirectoryClick.bind(this),this.handleEmailNotificationsClick=this.handleEmailNotificationsClick.bind(this),this.handleSubscriptionClick=this.handleSubscriptionClick.bind(this),this.handleInternationalizationClick=this.handleInternationalizationClick.bind(this),this.handleAccountRecoveryClick=this.handleAccountRecoveryClick.bind(this),this.handleSmtpSettingsClick=this.handleSmtpSettingsClick.bind(this),this.handleSelfRegistrationClick=this.handleSelfRegistrationClick.bind(this),this.handleSsoClick=this.handleSsoClick.bind(this)}handleMfaClick(){this.props.navigationContext.onGoToAdministrationMfaRequested()}handleUserDirectoryClick(){this.props.navigationContext.onGoToAdministrationUsersDirectoryRequested()}handleEmailNotificationsClick(){this.props.navigationContext.onGoToAdministrationEmailNotificationsRequested()}handleSubscriptionClick(){this.props.navigationContext.onGoToAdministrationSubscriptionRequested()}handleInternationalizationClick(){this.props.navigationContext.onGoToAdministrationInternationalizationRequested()}handleAccountRecoveryClick(){this.props.navigationContext.onGoToAdministrationAccountRecoveryRequested()}handleSmtpSettingsClick(){this.props.navigationContext.onGoToAdministrationSmtpSettingsRequested()}handleSelfRegistrationClick(){this.props.navigationContext.onGoToAdministrationSelfRegistrationRequested()}handleSsoClick(){this.props.navigationContext.onGoToAdministrationSsoRequested()}isMfaSelected(){return q.MFA===this.props.administrationWorkspaceContext.selectedAdministration}isUserDirectorySelected(){return q.USER_DIRECTORY===this.props.administrationWorkspaceContext.selectedAdministration}isEmailNotificationsSelected(){return q.EMAIL_NOTIFICATION===this.props.administrationWorkspaceContext.selectedAdministration}isSubscriptionSelected(){return q.SUBSCRIPTION===this.props.administrationWorkspaceContext.selectedAdministration}isInternationalizationSelected(){return q.INTERNATIONALIZATION===this.props.administrationWorkspaceContext.selectedAdministration}isAccountRecoverySelected(){return q.ACCOUNT_RECOVERY===this.props.administrationWorkspaceContext.selectedAdministration}isSsoSelected(){return q.SSO===this.props.administrationWorkspaceContext.selectedAdministration}isSmtpSettingsSelected(){return q.SMTP_SETTINGS===this.props.administrationWorkspaceContext.selectedAdministration}isSelfRegistrationSettingsSelected(){return q.SELF_REGISTRATION===this.props.administrationWorkspaceContext.selectedAdministration}render(){return n.createElement("div",{className:"navigation-secondary navigation-administration"},n.createElement("ul",{id:"administration_menu",className:"clearfix menu ready"},this.isMfaEnabled&&n.createElement("li",{id:"mfa_menu"},n.createElement("div",{className:"row "+(this.isMfaSelected()?"selected":"")},n.createElement("div",{className:"main-cell-wrapper"},n.createElement("div",{className:"main-cell"},n.createElement("a",{onClick:this.handleMfaClick},n.createElement("span",null,n.createElement(v.c,null,"Multi Factor Authentication"))))))),this.isUserDirectoryEnabled&&n.createElement("li",{id:"user_directory_menu"},n.createElement("div",{className:"row "+(this.isUserDirectorySelected()?"selected":"")},n.createElement("div",{className:"main-cell-wrapper"},n.createElement("div",{className:"main-cell"},n.createElement("a",{onClick:this.handleUserDirectoryClick},n.createElement("span",null,n.createElement(v.c,null,"Users Directory"))))))),n.createElement("li",{id:"email_notification_menu"},n.createElement("div",{className:"row "+(this.isEmailNotificationsSelected()?"selected":"")},n.createElement("div",{className:"main-cell-wrapper"},n.createElement("div",{className:"main-cell"},n.createElement("a",{onClick:this.handleEmailNotificationsClick},n.createElement("span",null,n.createElement(v.c,null,"Email Notifications"))))))),this.canIUseLocale&&n.createElement("li",{id:"internationalization_menu"},n.createElement("div",{className:"row "+(this.isInternationalizationSelected()?"selected":"")},n.createElement("div",{className:"main-cell-wrapper"},n.createElement("div",{className:"main-cell"},n.createElement("a",{onClick:this.handleInternationalizationClick},n.createElement("span",null,n.createElement(v.c,null,"Internationalisation"))))))),this.canIUseEE&&n.createElement("li",{id:"subscription_menu"},n.createElement("div",{className:"row "+(this.isSubscriptionSelected()?"selected":"")},n.createElement("div",{className:"main-cell-wrapper"},n.createElement("div",{className:"main-cell"},n.createElement("a",{onClick:this.handleSubscriptionClick},n.createElement("span",null,n.createElement(v.c,null,"Subscription"))))))),this.canIUseAccountRecovery&&n.createElement("li",{id:"account_recovery_menu"},n.createElement("div",{className:"row "+(this.isAccountRecoverySelected()?"selected":"")},n.createElement("div",{className:"main-cell-wrapper"},n.createElement("div",{className:"main-cell"},n.createElement("a",{onClick:this.handleAccountRecoveryClick},n.createElement("span",null,n.createElement(v.c,null,"Account Recovery"))))))),this.canIUseSmtpSettings&&n.createElement("li",{id:"smtp_settings_menu"},n.createElement("div",{className:"row "+(this.isSmtpSettingsSelected()?"selected":"")},n.createElement("div",{className:"main-cell-wrapper"},n.createElement("div",{className:"main-cell"},n.createElement("a",{onClick:this.handleSmtpSettingsClick},n.createElement("span",null,n.createElement(v.c,null,"Email server"))))))),this.canIUseSelfRegistrationSettings&&n.createElement("li",{id:"self_registration_menu"},n.createElement("div",{className:"row "+(this.isSelfRegistrationSettingsSelected()?"selected":"")},n.createElement("div",{className:"main-cell-wrapper"},n.createElement("div",{className:"main-cell"},n.createElement("a",{onClick:this.handleSelfRegistrationClick},n.createElement("span",null,n.createElement(v.c,null,"Self Registration"))))))),this.canIUseSso&&n.createElement("li",{id:"sso_menu"},n.createElement("div",{className:"row "+(this.isSsoSelected()?"selected":"")},n.createElement("div",{className:"main-cell-wrapper"},n.createElement("div",{className:"main-cell"},n.createElement("a",{onClick:this.handleSsoClick},n.createElement("span",null,n.createElement(v.c,null,"Single Sign-On"))," ",n.createElement("span",{className:"beta chips"},n.createElement(v.c,null,"Beta")))))))))}}ue.propTypes={context:s().object,administrationWorkspaceContext:s().object,history:s().object,navigationContext:s().any};const pe=(0,N.EN)(R(J(F((0,k.Z)("common")(ue))))),ge="totp",be="yubikey",fe="duo",ye=class{constructor(e={}){this.totpProviderToggle="providers"in e&&e.providers.includes(ge),this.yubikeyToggle="providers"in e&&e.providers.includes(be),this.yubikeyClientIdentifier="yubikey"in e?e.yubikey.clientId:"",this.yubikeySecretKey="yubikey"in e?e.yubikey.secretKey:"",this.duoToggle="providers"in e&&e.providers.includes(fe),this.duoHostname="duo"in e?e.duo.hostName:"",this.duoIntegrationKey="duo"in e?e.duo.integrationKey:"",this.duoSalt="duo"in e?e.duo.salt:"",this.duoSecretKey="duo"in e?e.duo.secretKey:""}};class ve extends Error{constructor(e,t){super(e),this.name="PassboltApiFetchError",this.data=t||{}}}const ke=ve;class Ee extends Error{constructor(){super("An internal error occurred. The server response could not be parsed. Please contact your administrator."),this.name="PassboltBadResponseError"}}const we=Ee;class Ce extends Error{constructor(e){super(e=e||"The service is unavailable"),this.name="PassboltServiceUnavailableError"}}const Se=Ce;class xe{constructor(e){if(this.options=e,!this.options.getBaseUrl())throw new TypeError("ApiClient constructor error: baseUrl is required.");if(!this.options.getResourceName())throw new TypeError("ApiClient constructor error: resourceName is required.");try{let e=this.options.getBaseUrl().toString();e.endsWith("/")&&(e=e.slice(0,-1)),this.baseUrl=`${e}/${this.options.getResourceName()}`,this.baseUrl=new URL(this.baseUrl)}catch(e){throw new TypeError("ApiClient constructor error: b.")}this.apiVersion="api-version=v2"}getDefaultHeaders(){return{Accept:"application/json","content-type":"application/json"}}buildFetchOptions(){return{credentials:"include",headers:{...this.getDefaultHeaders(),...this.options.getHeaders()}}}async get(e,t){this.assertValidId(e);const a=this.buildUrl(`${this.baseUrl}/${e}`,t||{});return this.fetchAndHandleResponse("GET",a)}async delete(e,t,a,n){let o;this.assertValidId(e),void 0===n&&(n=!1),o=n?this.buildUrl(`${this.baseUrl}/${e}/dry-run`,a||{}):this.buildUrl(`${this.baseUrl}/${e}`,a||{});let i=null;return t&&(i=this.buildBody(t)),this.fetchAndHandleResponse("DELETE",o,i)}async findAll(e){const t=this.buildUrl(this.baseUrl.toString(),e||{});return await this.fetchAndHandleResponse("GET",t)}async create(e,t){const a=this.buildUrl(this.baseUrl.toString(),t||{}),n=this.buildBody(e);return this.fetchAndHandleResponse("POST",a,n)}async update(e,t,a,n){let o;this.assertValidId(e),void 0===n&&(n=!1),o=n?this.buildUrl(`${this.baseUrl}/${e}/dry-run`,a||{}):this.buildUrl(`${this.baseUrl}/${e}`,a||{});let i=null;return t&&(i=this.buildBody(t)),this.fetchAndHandleResponse("PUT",o,i)}assertValidId(e){if(!e)throw new TypeError("ApiClient.assertValidId error: id cannot be empty");if("string"!=typeof e)throw new TypeError("ApiClient.assertValidId error: id should be a string")}assertMethod(e){"string"!=typeof e&&new TypeError("ApiClient.assertValidMethod method should be a string."),["GET","POST","PUT","DELETE"].indexOf(e)<0&&new TypeError(`ApiClient.assertValidMethod error: method ${e} is not supported.`)}assertUrl(e){if(!e)throw new TypeError("ApliClient.assertUrl error: url is required.");if(!(e instanceof URL))throw new TypeError("ApliClient.assertUrl error: url should be a valid URL object.")}assertBody(e){"string"!=typeof e&&new TypeError("ApiClient.assertBody error: body should be a string.")}buildBody(e){return JSON.stringify(e)}buildUrl(e,t){if("string"!=typeof e)throw new TypeError("ApiClient.buildUrl error: url should be a string.");const a=new URL(`${e}.json?${this.apiVersion}`);t=t||{};for(const[e,n]of Object.entries(t)){if("string"!=typeof e)throw new TypeError("ApiClient.buildUrl error: urlOptions key should be a string.");if("string"==typeof n)a.searchParams.append(e,n);else{if(!Array.isArray(n))throw new TypeError("ApiClient.buildUrl error: urlOptions value should be a string or array.");n.forEach((t=>{a.searchParams.append(e,t)}))}}return a}async fetchAndHandleResponse(e,t,a,n){let o,i;this.assertUrl(t),this.assertMethod(e),a&&this.assertBody(a);const s={...this.buildFetchOptions(),...n};s.method=e,a&&(s.body=a);try{o=await fetch(t.toString(),s)}catch(e){throw new Se(e.message)}try{i=await o.json()}catch(e){throw new we}if(!o.ok){const e=i.header.message;throw new ke(e,{code:o.status,body:i.body})}return i}}function Ne(){return Ne=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},Ne.apply(this,arguments)}const Le=n.createContext({getCurrentSettings:()=>{},getSettings:()=>{},setSettings:()=>{},hasSettingsChanges:()=>{},findMfaSettings:()=>{},save:()=>{},setProcessing:()=>{},isProcessing:()=>{},getErrors:()=>{},setError:()=>{},isSubmitted:()=>{},setSubmitted:()=>{},setErrors:()=>{},clearContext:()=>{}});class Ie extends n.Component{constructor(e){super(e),this.state=this.defaultState;const t=e.context.getApiClientOptions();this.mfaService=new class{constructor(e){e.setResourceName("mfa/settings"),this.apiClient=new xe(e)}async findAllSettings(){return(await this.apiClient.findAll()).body}async save(e){return(await this.apiClient.create(e)).body}}(t)}get defaultState(){return{errors:this.initErrors(),currentSettings:null,settings:new ye,submitted:!1,processing:!0,getCurrentSettings:this.getCurrentSettings.bind(this),getSettings:this.getSettings.bind(this),setSettings:this.setSettings.bind(this),findMfaSettings:this.findMfaSettings.bind(this),hasSettingsChanges:this.hasSettingsChanges.bind(this),isProcessing:this.isProcessing.bind(this),isSubmitted:this.isSubmitted.bind(this),setSubmitted:this.setSubmitted.bind(this),setProcessing:this.setProcessing.bind(this),save:this.save.bind(this),getErrors:this.getErrors.bind(this),setError:this.setError.bind(this),setErrors:this.setErrors.bind(this),clearContext:this.clearContext.bind(this)}}initErrors(){return{yubikeyClientIdentifierError:null,yubikeySecretKeyError:null,duoHostnameError:null,duoIntegrationKeyError:null,duoSaltError:null,duoSecretKeyError:null}}async findMfaSettings(){this.setProcessing(!0);const e=await this.mfaService.findAllSettings(),t=new ye(e);this.setState({currentSettings:t}),this.setState({settings:Object.assign({},t)}),this.setProcessing(!1)}getCurrentSettings(){return this.state.currentSettings}getSettings(){return this.state.settings}async setSettings(e,t){const a=Object.assign({},this.state.settings,{[e]:t});await this.setState({settings:a})}isProcessing(){return this.state.processing}setProcessing(e){this.setState({processing:e})}hasSettingsChanges(){return JSON.stringify(this.state.currentSettings)!==JSON.stringify(this.state.settings)}isSubmitted(){return this.state.submitted}setSubmitted(e){this.setState({submitted:e})}clearContext(){const{currentSettings:e,settings:t,processing:a}=this.defaultState;this.setState({currentSettings:e,settings:t,processing:a})}async save(){this.setProcessing(!0);const e=new class{constructor(e={}){this.providers=[],this.setProviders(e),this.yubikey=this.providers.includes(be)?new class{constructor(e={}){this.clientId="yubikeyClientIdentifier"in e?e.yubikeyClientIdentifier:e.clientId,this.secretKey="yubikeySecretKey"in e?e.yubikeySecretKey:e.secretKey}}(e):{},this.duo=this.providers.includes(fe)?new class{constructor(e={}){this.hostName="duoHostname"in e?e.duoHostname:e.hostName,this.integrationKey="duoIntegrationKey"in e?e.duoIntegrationKey:e.integrationKey,this.salt="duoSalt"in e?e.duoSalt:e.salt,this.secretKey="duoSecretKey"in e?e.duoSecretKey:e.secretKey}}(e):{}}setProviders(e){e.totpProviderToggle&&this.providers.push(ge),e.yubikeyToggle&&this.providers.push(be),e.duoToggle&&this.providers.push(fe)}}(this.state.settings);await this.mfaService.save(e),await this.findMfaSettings()}getErrors(){return this.state.errors}setError(e,t){const a=Object.assign({},this.state.errors,{[e]:t});this.setState({errors:a})}setErrors(e,t=(()=>{})){const a=Object.assign({},this.state.errors,e);return this.setState({errors:a},t)}render(){return n.createElement(Le.Provider,{value:this.state},this.props.children)}}Ie.propTypes={context:s().any,children:s().any};const Re=R(Ie);function Ae(e){return class extends n.Component{render(){return n.createElement(Le.Consumer,null,(t=>n.createElement(e,Ne({adminMfaContext:t},this.props))))}}}var ze=a(648),De=a.n(ze);class Te{constructor(e,t){this.context=e,this.translation=t}static getInstance(e,t){return this.instance||(this.instance=new Te(e,t)),this.instance}static killInstance(){this.instance=null}validateInput(e,t,a){const n=e.trim();return n.length?De()(t).test(n)?null:this.translation(a.regex):this.translation(a.required)}validateYubikeyClientIdentifier(e){const t=this.validateInput(e,"^[0-9]{1,64}$",{required:"A client identifier is required.",regex:"The client identifier should be an integer."});return this.context.setError("yubikeyClientIdentifierError",t),t}validateYubikeySecretKey(e){const t=this.validateInput(e,"^[a-zA-Z0-9\\/=+]{10,128}$",{required:"A secret key is required.",regex:"This secret key is not valid."});return this.context.setError("yubikeySecretKeyError",t),t}validateDuoHostname(e){const t=this.validateInput(e,"^api-[a-fA-F0-9]{8,16}\\.duosecurity\\.com$",{required:"A hostname is required.",regex:"This is not a valid hostname."});return this.context.setError("duoHostnameError",t),t}validateDuoIntegrationKey(e){const t=this.validateInput(e,"^[a-zA-Z0-9]{16,32}$",{required:"An integration key is required.",regex:"This is not a valid integration key."});return this.context.setError("duoIntegrationKeyError",t),t}validateDuoSecretKey(e){const t=this.validateInput(e,"^[a-zA-Z0-9]{32,128}$",{required:"A secret key is required.",regex:"This is not a valid secret key."});return this.context.setError("duoSecretKeyError",t),t}validateDuoSalt(e){const t=this.validateInput(e,"^.{40,128}$",{required:"A salt is required.",regex:"The salt should be between 40 and 128 characters in length."});return this.context.setError("duoSaltError",t),t}validateYubikeyInputs(){let e=null,t=null;const a=this.context.getSettings();let n={};return a.yubikeyToggle&&(e=this.validateYubikeyClientIdentifier(a.yubikeyClientIdentifier),t=this.validateYubikeySecretKey(a.yubikeySecretKey),n={yubikeyClientIdentifierError:e,yubikeySecretKeyError:t}),n}validateDuoInputs(){let e=null,t=null,a=null,n=null,o={};const i=this.context.getSettings();return i.duoToggle&&(e=this.validateDuoHostname(i.duoHostname),t=this.validateDuoIntegrationKey(i.duoIntegrationKey),n=this.validateDuoSecretKey(i.duoSecretKey),a=this.validateDuoSalt(i.duoSalt),o={duoHostnameError:e,duoIntegrationKeyError:t,duoSaltError:a,duoSecretKeyError:n}),o}async validate(){const e=Object.assign(this.validateYubikeyInputs(),this.validateDuoInputs());return await this.context.setErrors(e),0===Object.values(e).filter((e=>e)).length}}const je=Te;class Ue extends n.Component{constructor(e){super(e),this.bindCallbacks(),this.mfaFormService=je.getInstance(this.props.adminMfaContext,this.props.t)}async handleSaveClick(){try{await this.mfaFormService.validate()&&(await this.props.adminMfaContext.save(),this.handleSaveSuccess())}catch(e){this.handleSaveError(e)}finally{this.props.adminMfaContext.setSubmitted(!0),this.props.adminMfaContext.setProcessing(!1)}}isSaveEnabled(){return!this.props.adminMfaContext.isProcessing()&&this.props.adminMfaContext.hasSettingsChanges()}bindCallbacks(){this.handleSaveClick=this.handleSaveClick.bind(this)}async handleSaveSuccess(){await this.props.actionFeedbackContext.displaySuccess(this.props.t("The multi factor authentication settings for the organization were updated."))}async handleSaveError(e){"UserAbortsOperationError"!==e.name&&(console.error(e),await this.handleError(e))}async handleError(e){await this.props.actionFeedbackContext.displayError(e.message)}render(){return n.createElement("div",{className:"col2_3 actions-wrapper"},n.createElement("div",{className:"actions"},n.createElement("div",null,n.createElement("li",null,n.createElement("a",{className:"button "+(this.isSaveEnabled()?"":"disabled"),onClick:this.handleSaveClick},n.createElement(le,{name:"save"}),n.createElement("span",null,n.createElement(v.c,null,"Save settings")))))))}}Ue.propTypes={adminMfaContext:s().object,actionFeedbackContext:s().object,t:s().func};const _e=Ae(d((0,k.Z)("common")(Ue)));class Pe extends n.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks()}get defaultState(){return{viewPassword:!1,hasPassphraseFocus:!1}}bindCallbacks(){this.handleInputChange=this.handleInputChange.bind(this),this.handlePasswordInputFocus=this.handlePasswordInputFocus.bind(this),this.handlePasswordInputBlur=this.handlePasswordInputBlur.bind(this),this.handleViewPasswordButtonClick=this.handleViewPasswordButtonClick.bind(this)}handleInputChange(e){this.props.onChange(e)}handlePasswordInputFocus(){this.setState({hasPassphraseFocus:!0})}handlePasswordInputBlur(){this.setState({hasPassphraseFocus:!1})}handleViewPasswordButtonClick(){this.props.disabled||this.setState({viewPassword:!this.state.viewPassword})}get securityTokenStyle(){const e={background:this.props.securityToken.textColor,color:this.props.securityToken.backgroundColor},t={background:this.props.securityToken.backgroundColor,color:this.props.securityToken.textColor};return this.state.hasPassphraseFocus?e:t}get passphraseInputStyle(){const e={background:this.props.securityToken.backgroundColor,color:this.props.securityToken.textColor,"--passphrase-placeholder-color":this.props.securityToken.textColor};return this.state.hasPassphraseFocus?e:void 0}get previewStyle(){const e={"--icon-color":this.props.securityToken.textColor,"--icon-background-color":this.props.securityToken.backgroundColor};return this.state.hasPassphraseFocus?e:void 0}render(){return n.createElement("div",{className:"input password "+(this.props.securityToken?"security":""),style:this.props.securityToken?this.passphraseInputStyle:void 0},n.createElement("input",{id:this.props.id,name:this.props.name,maxLength:"4096",placeholder:this.props.placeholder,type:this.state.viewPassword&&!this.props.disabled?"text":"password",onKeyUp:this.props.onKeyUp,value:this.props.value,onFocus:this.handlePasswordInputFocus,onBlur:this.handlePasswordInputBlur,onChange:this.handleInputChange,disabled:this.props.disabled,readOnly:this.props.readOnly,autoComplete:this.props.autoComplete,ref:this.props.inputRef}),this.props.preview&&n.createElement("div",{className:"password-view-wrapper"},n.createElement("a",{onClick:this.handleViewPasswordButtonClick,style:this.props.securityToken?this.previewStyle:void 0,className:"password-view infield button button-transparent "+(this.props.disabled?"disabled":"")},!this.state.viewPassword&&n.createElement(le,{name:"eye-open"}),this.state.viewPassword&&n.createElement(le,{name:"eye-close"}),n.createElement("span",{className:"visually-hidden"},n.createElement(v.c,null,"View")))),this.props.securityToken&&n.createElement("div",{className:"security-token-wrapper"},n.createElement("span",{className:"security-token",style:this.securityTokenStyle},this.props.securityToken.code)))}}Pe.defaultProps={id:"",name:"",autoComplete:"off"},Pe.propTypes={context:s().any,id:s().string,name:s().string,value:s().string.isRequired,placeholder:s().string,autoComplete:s().string,inputRef:s().object,disabled:s().bool,readOnly:s().bool,preview:s().bool,onChange:s().func.isRequired,onKeyUp:s().func,securityToken:s().shape({code:s().string,backgroundColor:s().string,textColor:s().string})};const Me=(0,k.Z)("common")(Pe);class Fe extends n.Component{constructor(e){super(e),this.mfaFormService=je.getInstance(this.props.adminMfaContext,this.props.t),this.bindCallbacks()}async componentDidMount(){this.props.administrationWorkspaceContext.setDisplayAdministrationWorkspaceAction(_e),this.props.adminMfaContext.findMfaSettings()}componentWillUnmount(){this.props.administrationWorkspaceContext.resetDisplayAdministrationWorkspaceAction(),this.props.adminMfaContext.clearContext(),je.killInstance(),this.mfaFormService=null}bindCallbacks(){this.handleInputChange=this.handleInputChange.bind(this)}handleInputChange(e){const t=e.target,a="checkbox"===t.type?t.checked:t.value,n=t.name;this.props.adminMfaContext.setSettings(n,a),this.validateInput(n,a)}validateInput(e,t){switch(e){case"yubikeyClientIdentifier":this.mfaFormService.validateYubikeyClientIdentifier(t);break;case"yubikeySecretKey":this.mfaFormService.validateYubikeySecretKey(t);break;case"duoHostname":this.mfaFormService.validateDuoHostname(t);break;case"duoIntegrationKey":this.mfaFormService.validateDuoIntegrationKey(t);break;case"duoSalt":this.mfaFormService.validateDuoSalt(t);break;case"duoSecretKey":this.mfaFormService.validateDuoSecretKey(t)}}hasAllInputDisabled(){return this.props.adminMfaContext.isProcessing()}render(){const e=this.props.adminMfaContext.isSubmitted(),t=this.props.adminMfaContext.getSettings(),a=this.props.adminMfaContext.getErrors();return n.createElement("div",{className:"row"},n.createElement("div",{className:"mfa-settings col7 main-column"},n.createElement("h3",null,"Multi Factor Authentication"),n.createElement("p",null,n.createElement(v.c,null,"In this section you can choose which multi factor authentication will be available.")),n.createElement("h4",{className:"no-border"},n.createElement("span",{className:"input toggle-switch form-element ready"},n.createElement("input",{id:"totp-provider-toggle-button",type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"totpProviderToggle",onChange:this.handleInputChange,checked:t.totpProviderToggle,disabled:this.hasAllInputDisabled()}),n.createElement("label",{htmlFor:"totp-provider-toggle-button"},n.createElement(v.c,null,"Time-based One Time Password")))),!t.totpProviderToggle&&n.createElement("p",{className:"description"},n.createElement(v.c,null,"The Time-based One Time Password provider is disabled for all users.")),t.totpProviderToggle&&n.createElement("p",{className:"description"},n.createElement(v.c,null,"The Time-based One Time Password provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication.")),n.createElement("h4",null,n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{id:"yubikey-provider-toggle-button",type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"yubikeyToggle",onChange:this.handleInputChange,checked:t.yubikeyToggle,disabled:this.hasAllInputDisabled()}),n.createElement("label",{htmlFor:"yubikey-provider-toggle-button"},"Yubikey"))),!t.yubikeyToggle&&n.createElement("p",{className:"description"},n.createElement(v.c,null,"The Yubikey provider is disabled for all users.")),t.yubikeyToggle&&n.createElement(n.Fragment,null,n.createElement("p",{className:"description"},n.createElement(v.c,null,"The Yubikey provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication.")),n.createElement("div",{className:`input text required ${a.yubikeyClientIdentifierError&&e?"error":""} ${this.hasAllInputDisabled()?"disabled":""}`},n.createElement("label",null,n.createElement(v.c,null,"Client identifier")),n.createElement("input",{id:"yubikeyClientIdentifier",type:"text",name:"yubikeyClientIdentifier",required:"required",className:"required fluid form-element ready",placeholder:"123456789",onChange:this.handleInputChange,value:t.yubikeyClientIdentifier,disabled:this.hasAllInputDisabled()}),a.yubikeyClientIdentifierError&&e&&n.createElement("div",{className:"yubikey_client_identifier error-message"},a.yubikeyClientIdentifierError)),n.createElement("div",{className:`input required input-secret ${a.yubikeySecretKeyError&&e?"error":""} ${this.hasAllInputDisabled()?"disabled":""}`},n.createElement("label",null,n.createElement(v.c,null,"Secret key")),n.createElement(Me,{id:"yubikeySecretKey",onChange:this.handleInputChange,autoComplete:"off",name:"yubikeySecretKey",placeholder:"**********",disabled:this.hasAllInputDisabled(),value:t.yubikeySecretKey,preview:!0}),a.yubikeySecretKeyError&&e&&n.createElement("div",{className:"yubikey_secret_key error-message"},a.yubikeySecretKeyError))),n.createElement("h4",null,n.createElement("span",{className:"input toggle-switch form-element ready"},n.createElement("input",{id:"duo-provider-toggle-button",type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"duoToggle",onChange:this.handleInputChange,checked:t.duoToggle,disabled:this.hasAllInputDisabled()}),n.createElement("label",{htmlFor:"duo-provider-toggle-button"},"Duo"))),!t.duoToggle&&n.createElement("p",{className:"description"},n.createElement(v.c,null,"The Duo provider is disabled for all users.")),t.duoToggle&&n.createElement(n.Fragment,null,n.createElement("p",{className:"description enabled"},n.createElement(v.c,null,"The Duo provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication.")),n.createElement("div",{className:`input text required ${a.duoHostnameError&&e?"error":""} ${this.hasAllInputDisabled()?"disabled":""}`},n.createElement("label",null,n.createElement(v.c,null,"Hostname")),n.createElement("input",{id:"duoHostname",type:"text",name:"duoHostname",required:"required",className:"required fluid form-element ready",placeholder:"api-24zlkn4.duosecurity.com",value:t.duoHostname,onChange:this.handleInputChange,disabled:this.hasAllInputDisabled()}),a.duoHostnameError&&e&&n.createElement("div",{className:"duo_hostname error-message"},a.duoHostnameError)),n.createElement("div",{className:`input text required ${a.duoIntegrationKeyError&&e?"error":""} ${this.hasAllInputDisabled()?"disabled":""}`},n.createElement("label",null,n.createElement(v.c,null,"Integration key")),n.createElement("input",{id:"duoIntegrationKey",type:"text",name:"duoIntegrationKey",required:"required",className:"required fluid form-element ready",placeholder:"HASJKDSQJO213123KQSLDF",value:t.duoIntegrationKey,onChange:this.handleInputChange,disabled:this.hasAllInputDisabled()}),a.duoIntegrationKeyError&&e&&n.createElement("div",{className:"duo_integration_key error-message"},a.duoIntegrationKeyError)),n.createElement("div",{className:`input text required ${a.duoSaltError&&e?"error":""} ${this.hasAllInputDisabled()?"disabled":""}`},n.createElement("label",null,n.createElement(v.c,null,"Salt")),n.createElement(Me,{id:"duoSalt",onChange:this.handleInputChange,autoComplete:"off",name:"duoSalt",placeholder:"**********",disabled:this.hasAllInputDisabled(),value:t.duoSalt,preview:!0}),a.duoSaltError&&e&&n.createElement("div",{className:"duo_salt error-message"},a.duoSaltError)),n.createElement("div",{className:`input text required ${a.duoSecretKeyError&&e?"error":""} ${this.hasAllInputDisabled()?"disabled":""}`},n.createElement("label",null,n.createElement(v.c,null,"Secret key")),n.createElement(Me,{id:"duoSecretKey",onChange:this.handleInputChange,autoComplete:"off",name:"duoSecretKey",placeholder:"**********",disabled:this.hasAllInputDisabled(),value:t.duoSecretKey,preview:!0}),a.duoSecretKeyError&&e&&n.createElement("div",{className:"duo_secret_key error-message"},a.duoSecretKeyError)))),n.createElement("div",{className:"col4 last"},n.createElement("div",{className:"sidebar-help"},n.createElement("h3",null,n.createElement(v.c,null,"Need help?")),n.createElement("p",null,n.createElement(v.c,null,"Check out our Multi Factor Authentication configuration guide.")),n.createElement("a",{className:"button",href:"https://help.passbolt.com/configure",target:"_blank",rel:"noopener noreferrer"},n.createElement(le,{name:"document"}),n.createElement("span",null,n.createElement(v.c,null,"Read the documentation"))))))}}Fe.propTypes={adminMfaContext:s().object,administrationWorkspaceContext:s().object,t:s().func};const qe=Ae(F((0,k.Z)("common")(Fe)));class Oe extends n.Component{render(){let e=0;return n.createElement("div",{className:"breadcrumbs"},n.createElement("ul",{className:"menu"},this.props.items&&this.props.items.map((t=>(e++,n.createElement("li",{className:"ellipsis",key:e},t))))))}}Oe.propTypes={items:s().array};const We=Oe;class Ke extends n.Component{render(){return n.createElement("a",{onClick:this.props.onClick},this.props.name)}}Ke.propTypes={name:s().string,onClick:s().func};const Ve=Ke;class He extends n.Component{get items(){return this.props.administrationWorkspaceContext.selectedAdministration===q.NONE?[]:[n.createElement(Ve,{key:"bread-1",name:this.translate("Administration"),onClick:this.props.navigationContext.onGoToAdministrationRequested}),n.createElement(Ve,{key:"bread-2",name:this.getLastBreadcrumbItemName(),onClick:this.onLastBreadcrumbClick.bind(this)}),n.createElement(Ve,{key:"bread-3",name:this.translate("Settings"),onClick:this.onLastBreadcrumbClick.bind(this)})]}getLastBreadcrumbItemName(){switch(this.props.administrationWorkspaceContext.selectedAdministration){case q.MFA:return this.translate("Multi Factor Authentication");case q.USER_DIRECTORY:return this.translate("Users Directory");case q.EMAIL_NOTIFICATION:return this.translate("Email Notification");case q.SUBSCRIPTION:return this.translate("Subscription");case q.INTERNATIONALIZATION:return this.translate("Internationalisation");case q.ACCOUNT_RECOVERY:return this.translate("Account Recovery");case q.SMTP_SETTINGS:return this.translate("Email server");case q.SELF_REGISTRATION:return this.translate("Self Registration");case q.SSO:return this.translate("Single Sign-On");default:return""}}async onLastBreadcrumbClick(){const e=this.props.location.pathname;this.props.history.push({pathname:e})}get translate(){return this.props.t}render(){return n.createElement(We,{items:this.items})}}He.propTypes={administrationWorkspaceContext:s().object,location:s().object,history:s().object,navigationContext:s().any,t:s().func};const Be=(0,N.EN)(J(F((0,k.Z)("common")(He)))),Ge=new class{allPropTypes=(...e)=>(...t)=>{const a=e.map((e=>e(...t))).filter(Boolean);if(0===a.length)return;const n=a.map((e=>e.message)).join("\n");return new Error(n)}};class $e extends n.Component{constructor(e){super(e),this.state=this.getDefaultState(e),this.bindCallback(),this.createRefs()}getDefaultState(e){return{selectedValue:e.value,search:"",open:!1,style:void 0}}get listItemsFiltered(){const e=this.props.items.filter((e=>e.value!==this.state.selectedValue));return this.props.search&&""!==this.state.search?this.getItemsMatch(e,this.state.search):e}get selectedItemLabel(){const e=this.props.items&&this.props.items.find((e=>e.value===this.state.selectedValue));return e&&e.label||n.createElement(n.Fragment,null," ")}static getDerivedStateFromProps(e,t){return void 0!==e.value&&e.value!==t.selectedValue?{selectedValue:e.value}:null}bindCallback(){this.handleDocumentClickEvent=this.handleDocumentClickEvent.bind(this),this.handleDocumentContextualMenuEvent=this.handleDocumentContextualMenuEvent.bind(this),this.handleDocumentDragStartEvent=this.handleDocumentDragStartEvent.bind(this),this.handleDocumentScrollEvent=this.handleDocumentScrollEvent.bind(this),this.handleSelectClick=this.handleSelectClick.bind(this),this.handleInputChange=this.handleInputChange.bind(this),this.handleItemClick=this.handleItemClick.bind(this),this.handleSelectKeyDown=this.handleSelectKeyDown.bind(this),this.handleItemKeyDown=this.handleItemKeyDown.bind(this),this.handleBlur=this.handleBlur.bind(this)}createRefs(){this.selectedItemRef=n.createRef(),this.selectItemsRef=n.createRef(),this.itemsRef=n.createRef()}componentDidMount(){document.addEventListener("click",this.handleDocumentClickEvent,{capture:!0}),document.addEventListener("contextmenu",this.handleDocumentContextualMenuEvent,{capture:!0}),document.addEventListener("dragstart",this.handleDocumentDragStartEvent,{capture:!0}),document.addEventListener("scroll",this.handleDocumentScrollEvent,{capture:!0})}componentWillUnmount(){document.removeEventListener("click",this.handleDocumentClickEvent,{capture:!0}),document.removeEventListener("contextmenu",this.handleDocumentContextualMenuEvent,{capture:!0}),document.removeEventListener("dragstart",this.handleDocumentDragStartEvent,{capture:!0}),document.removeEventListener("scroll",this.handleDocumentScrollEvent,{capture:!0})}handleDocumentClickEvent(e){this.selectedItemRef.current.contains(e.target)||this.selectItemsRef.current.contains(e.target)||this.closeSelect()}handleDocumentContextualMenuEvent(e){this.selectedItemRef.current.contains(e.target)||this.selectItemsRef.current.contains(e.target)||this.closeSelect()}handleDocumentDragStartEvent(){this.closeSelect()}handleDocumentScrollEvent(e){this.itemsRef.current.contains(e.target)||this.closeSelect()}handleSelectClick(){if(this.props.disabled)this.closeSelect();else{const e=!this.state.open;e?this.forceVisibilitySelect():this.resetStyleSelect(),this.setState({open:e})}}getFirstParentWithTransform(){let e=this.selectedItemRef.current.parentElement;for(;null!==e&&""===e.style.getPropertyValue("transform");)e=e.parentElement;return e}forceVisibilitySelect(){const e=this.selectedItemRef.current.getBoundingClientRect(),{width:t,height:a}=e;let{top:n,left:o}=e;const i=this.getFirstParentWithTransform();if(i){const e=i.getBoundingClientRect();n-=e.top,o-=e.left}const s={position:"fixed",zIndex:1,width:t,height:a,top:n,left:o};this.setState({style:s})}handleBlur(e){e.currentTarget.contains(e.relatedTarget)||this.closeSelect()}closeSelect(){this.resetStyleSelect(),this.setState({open:!1})}resetStyleSelect(){this.setState({style:void 0})}handleInputChange(e){const t=e.target,a=t.value,n=t.name;this.setState({[n]:a})}handleItemClick(e){if(this.setState({selectedValue:e.value,open:!1}),"function"==typeof this.props.onChange){const t={target:{value:e.value,name:this.props.name}};this.props.onChange(t)}this.closeSelect()}getItemsMatch(e,t){const a=t&&t.split(/\s+/)||[""];return e.filter((e=>a.every((t=>((e,t)=>(e=>new RegExp((e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))(e),"i"))(e).test(t))(t,e.label)))))}handleSelectKeyDown(e){switch(e.keyCode){case 13:return e.stopPropagation(),void this.handleSelectClick();case 40:return e.preventDefault(),e.stopPropagation(),void(this.state.open?this.focusItem(0):this.handleSelectClick());case 38:return e.preventDefault(),e.stopPropagation(),void(this.state.open?this.focusItem(this.listItemsFiltered.length-1):this.handleSelectClick());case 27:return e.stopPropagation(),void this.closeSelect();default:return}}focusItem(e){this.itemsRef.current.childNodes[e]?.focus()}handleItemKeyDown(e,t){switch(e.keyCode){case 13:return e.stopPropagation(),void this.handleItemClick(t);case 40:return e.stopPropagation(),e.preventDefault(),void(e.target.nextSibling?e.target.nextSibling.focus():this.focusItem(0));case 38:return e.stopPropagation(),e.preventDefault(),void(e.target.previousSibling?e.target.previousSibling.focus():this.focusItem(this.listItemsFiltered.length-1));default:return}}hasFilteredItems(){return this.listItemsFiltered.length>0}render(){return n.createElement("div",{className:`select-container ${this.props.className}`,style:{width:this.state.style?.width,height:this.state.style?.height}},n.createElement("div",{onKeyDown:this.handleSelectKeyDown,onBlur:this.handleBlur,id:this.props.id,className:`select ${this.props.direction} ${this.state.open?"open":""}`,style:this.state.style},n.createElement("div",{ref:this.selectedItemRef,className:"selected-value "+(this.props.disabled?"disabled":""),tabIndex:this.props.disabled?-1:0,onClick:this.handleSelectClick},n.createElement("span",{className:"value"},this.selectedItemLabel),n.createElement(le,{name:"caret-down"})),n.createElement("div",{ref:this.selectItemsRef,className:"select-items "+(this.state.open?"visible":"")},this.props.search&&n.createElement(n.Fragment,null,n.createElement("input",{className:"search-input",name:"search",value:this.state.search,onChange:this.handleInputChange,type:"text"}),n.createElement(le,{name:"search"})),n.createElement("ul",{ref:this.itemsRef,className:"items"},this.hasFilteredItems()&&this.listItemsFiltered.map((e=>n.createElement("li",{tabIndex:e.disabled?-1:0,key:e.value,className:"option",onKeyDown:t=>this.handleItemKeyDown(t,e),onClick:()=>this.handleItemClick(e)},e.label))),!this.hasFilteredItems()&&this.props.search&&n.createElement("li",{className:"option no-results"},n.createElement(v.c,null,"No results match")," ",n.createElement("span",null,this.state.search))))))}}$e.defaultProps={id:"",name:"select",className:"",direction:"bottom"},$e.propTypes={id:s().string,name:s().string,className:s().string,direction:s().oneOf(Object.values({top:"top",bottom:"bottom",left:"left",right:"right"})),search:s().bool,items:s().array.isRequired,value:Ge.allPropTypes(s().oneOfType([s().string,s().number,s().bool]).isRequired,((e,t,a)=>{const n=e[t],o=e.items;if(o.length>0&&o.every((e=>e.value!==n)))return new Error(`Invalid prop ${t} passed to ${a}. Expected the value ${n} in items.`)})),disabled:s().bool,onChange:s().func};const Ze=(0,k.Z)("common")($e);class Ye extends n.Component{constructor(e){super(e),this.bindCallbacks()}bindCallbacks(){this.handleCloseClick=this.handleCloseClick.bind(this)}handleCloseClick(){this.props.onClose()}getClassName(){let e="dialog-close button button-transparent";return this.props.disabled&&(e+=" disabled"),e}render(){return n.createElement("a",{className:this.getClassName(),onClick:this.handleCloseClick,role:"button"},n.createElement(le,{name:"close"}),n.createElement("span",{className:"visually-hidden"},n.createElement(v.c,null,"Close")))}}Ye.propTypes={onClose:s().func,disabled:s().bool};const Je=(0,k.Z)("common")(Ye);class Qe extends n.Component{render(){return n.createElement("div",{className:"tooltip"},this.props.children,n.createElement("span",{className:`tooltip-text ${this.props.direction}`},this.props.message))}}Qe.defaultProps={direction:"right"},Qe.propTypes={children:s().any,message:s().any.isRequired,direction:s().string};const Xe=Qe;class et extends n.Component{constructor(e){super(e),this.bindCallbacks()}bindCallbacks(){this.handleKeyDown=this.handleKeyDown.bind(this),this.handleClose=this.handleClose.bind(this)}handleKeyDown(e){27===e.keyCode&&this.handleClose()}handleClose(){this.props.disabled||this.props.onClose()}componentDidMount(){document.addEventListener("keydown",this.handleKeyDown,{capture:!0})}componentWillUnmount(){document.removeEventListener("keydown",this.handleKeyDown,{capture:!0})}render(){return n.createElement("div",{className:`${this.props.className} dialog-wrapper`},n.createElement("div",{className:"dialog"},n.createElement("div",{className:"dialog-header"},n.createElement("div",{className:"dialog-title-wrapper"},n.createElement("h2",null,n.createElement("span",{className:"dialog-header-title"},this.props.title),this.props.subtitle&&n.createElement("span",{className:"dialog-header-subtitle"},this.props.subtitle)),this.props.tooltip&&""!==this.props.tooltip&&n.createElement(Xe,{message:this.props.tooltip},n.createElement(le,{name:"info-circle"}))),n.createElement(Je,{onClose:this.handleClose,disabled:this.props.disabled})),n.createElement("div",{className:"dialog-content"},this.props.children)))}}et.propTypes={children:s().node,className:s().string,title:s().string,subtitle:s().string,tooltip:s().string,disabled:s().bool,onClose:s().func};const tt=et;class at extends n.Component{constructor(e){super(e),this.bindCallbacks()}bindCallbacks(){this.handleClick=this.handleClick.bind(this)}handleClick(){this.props.disabled||this.props.onClick()}getClassName(){let e="cancel";return this.props.disabled&&(e+=" disabled"),e}render(){return n.createElement("a",{className:this.getClassName(),role:"button",onClick:this.handleClick},n.createElement(v.c,null,"Cancel"))}}at.propTypes={disabled:s().bool,onClick:s().func};const nt=(0,k.Z)("common")(at);class ot extends n.Component{constructor(e){super(e),this.infiniteTimerUpdateIntervalId=null,this.state=this.defaultState}get defaultState(){return{infiniteTimer:0}}componentDidMount(){this.startInfiniteTimerUpdateProgress()}componentWillUnmount(){this.resetInterval()}resetInterval(){this.infiniteTimerUpdateIntervalId&&(clearInterval(this.infiniteTimerUpdateIntervalId),this.infiniteTimerUpdateIntervalId=null)}startInfiniteTimerUpdateProgress(){this.infiniteTimerUpdateIntervalId=setInterval((()=>{const e=this.state.infiniteTimer+2;this.setState({infiniteTimer:e})}),500)}calculateInfiniteProgress(){return 100-100/Math.pow(1.1,this.state.infiniteTimer)}handleClose(){this.props.onClose()}render(){const e=this.calculateInfiniteProgress(),t={width:`${e}%`};return n.createElement(tt,{className:"loading-dialog",title:this.props.title,onClose:this.handleClose,disabled:!0},n.createElement("div",{className:"form-content"},n.createElement("label",null,n.createElement(v.c,null,"Take a deep breath and enjoy being in the present moment...")),n.createElement("div",{className:"progress-bar-wrapper"},n.createElement("span",{className:"progress-bar"},n.createElement("span",{className:"progress "+(100===e?"completed":""),style:t})))),n.createElement("div",{className:"submit-wrapper clearfix"},n.createElement("a",{className:"button disabled processing"},"Submit",n.createElement(le,{name:"spinner"}))))}}ot.propTypes={onClose:s().func,title:s().string};const it=(0,k.Z)("common")(ot),st="directorysync",rt=class{constructor(e=[],t=""){this.openCredentials=!0,this.openDirectoryConfiguration=!1,this.openSynchronizationOptions=!1,this.userDirectoryToggle=0!==e.length,this.directoryType=0!==e.length?e.directory_type:"ad",this.connectionType=0!==e.length?e.connection_type:"plain",this.host=0!==e.length?e.server:"",this.hostError=null,this.port=0!==e.length?e.port.toString():"389",this.portError=null,this.username=0!==e.length?e.username:"",this.password=0!==e.length?e.password:"",this.domain=0!==e.length?e.domain_name:"",this.domainError=null,this.baseDn=0!==e.length?e.base_dn:"",this.groupPath=0!==e.length?e.group_path:"",this.userPath=0!==e.length?e.user_path:"",this.groupObjectClass=0!==e.length?e.group_object_class:"",this.userObjectClass=0!==e.length?e.user_object_class:"",this.useEmailPrefix=0!==e.length&&e.use_email_prefix_suffix,this.emailPrefix=0!==e.length?e.email_prefix:"",this.emailSuffix=0!==e.length?e.email_suffix:"",this.defaultAdmin=0!==e.length?e.default_user:t,this.defaultGroupAdmin=0!==e.length?e.default_group_admin_user:t,this.groupsParentGroup=0!==e.length?e.groups_parent_group:"",this.usersParentGroup=0!==e.length?e.users_parent_group:"",this.enabledUsersOnly=0!==e.length&&e.enabled_users_only,this.createUsers=0===e.length||e.sync_users_create,this.deleteUsers=0===e.length||e.sync_users_delete,this.createGroups=0===e.length||e.sync_groups_create,this.deleteGroups=0===e.length||e.sync_groups_delete,this.updateGroups=0===e.length||e.sync_groups_update}},lt=class{constructor(e){this.enabled=e.userDirectoryToggle,this.directory_type=e.directoryType,this.connection_type=e.connectionType,this.server=e.host,this.port=parseInt(e.port),this.username=e.username,this.password=e.password,this.domain_name=e.domain,this.base_dn=e.baseDn,this.group_path=e.groupPath,this.user_path=e.userPath,this.group_object_class="openldap"===this.directory_type?e.groupObjectClass:"",this.user_object_class="openldap"===this.directory_type?e.userObjectClass:"",this.use_email_prefix_suffix="openldap"===this.directory_type&&e.useEmailPrefix,this.email_prefix="openldap"===this.directory_type&&this.useEmailPrefix?e.emailPrefix:"",this.email_suffix="openldap"===this.directory_type&&this.useEmailPrefix?e.emailSuffix:"",this.default_user=e.defaultAdmin,this.default_group_admin_user=e.defaultGroupAdmin,this.groups_parent_group=e.groupsParentGroup,this.users_parent_group=e.usersParentGroup,this.enabled_users_only=e.enabledUsersOnly,this.sync_users_create=e.createUsers,this.sync_users_delete=e.deleteUsers,this.sync_groups_create=e.createGroups,this.sync_groups_delete=e.deleteGroups,this.sync_groups_update=e.updateGroups}};function ct(){return ct=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},ct.apply(this,arguments)}const mt=n.createContext({getCurrentSettings:()=>{},getSettings:()=>{},setSettings:()=>{},getUsers:()=>{},hasSettingsChanges:()=>{},findUserDirectorySettings:()=>{},save:()=>{},delete:()=>{},test:()=>{},setProcessing:()=>{},isProcessing:()=>{},getErrors:()=>{},setError:()=>{},simulateUsers:()=>{},requestSynchronization:()=>{},mustOpenSynchronizePopUp:()=>{},synchronizeUsers:()=>{},isSubmitted:()=>{},setSubmitted:()=>{},setErrors:()=>{},clearContext:()=>{}});class dt extends n.Component{constructor(e){super(e),this.state=this.defaultState,this.userDirectoryService=new class{constructor(e){this.apiClientOptions=e,e.setResourceName(`${st}`)}async findAll(){this.apiClientOptions.setResourceName(`${st}/settings`);const e=new xe(this.apiClientOptions);return(await e.findAll()).body}async update(e){this.apiClientOptions.setResourceName(`${st}`);const t=new xe(this.apiClientOptions);return(await t.update("settings",e)).body}async delete(){return this.apiClientOptions.setResourceName(`${st}`),new xe(this.apiClientOptions).delete("settings")}async test(e){return this.apiClientOptions.setResourceName(`${st}/settings/test`),new xe(this.apiClientOptions).create(e)}async simulate(){this.apiClientOptions.setResourceName(`${st}`);const e=new xe(this.apiClientOptions);return(await e.get("synchronize/dry-run")).body}async synchronize(){this.apiClientOptions.setResourceName(`${st}/synchronize`);const e=new xe(this.apiClientOptions);return(await e.create({})).body}async findUsers(){return this.apiClientOptions.setResourceName(`${st}/users`),new xe(this.apiClientOptions).findAll()}}(e.context.getApiClientOptions()),this.userService=new class{constructor(e){this.apiClientOptions=e,e.setResourceName("users")}async findAll(){return new xe(this.apiClientOptions).findAll()}}(e.context.getApiClientOptions())}get defaultState(){return{users:[],errors:this.initErrors(),mustSynchronize:!1,currentSettings:null,settings:new rt,submitted:!1,processing:!0,getCurrentSettings:this.getCurrentSettings.bind(this),getSettings:this.getSettings.bind(this),setSettings:this.setSettings.bind(this),findUserDirectorySettings:this.findUserDirectorySettings.bind(this),hasSettingsChanges:this.hasSettingsChanges.bind(this),isProcessing:this.isProcessing.bind(this),isSubmitted:this.isSubmitted.bind(this),setSubmitted:this.setSubmitted.bind(this),setProcessing:this.setProcessing.bind(this),simulateUsers:this.simulateUsers.bind(this),synchronizeUsers:this.synchronizeUsers.bind(this),save:this.save.bind(this),delete:this.delete.bind(this),test:this.test.bind(this),getErrors:this.getErrors.bind(this),setError:this.setError.bind(this),setErrors:this.setErrors.bind(this),getUsers:this.getUsers.bind(this),requestSynchronization:this.requestSynchronization.bind(this),mustOpenSynchronizePopUp:this.mustOpenSynchronizePopUp.bind(this),clearContext:this.clearContext.bind(this)}}initErrors(){return{hostError:null,portError:null,domainError:null}}async findUserDirectorySettings(){this.setProcessing(!0);const e=await this.userDirectoryService.findAll(),t=await this.userService.findAll(),a=t.body.find((e=>this.props.context.loggedInUser.id===e.id)),n=new rt(e,a.id);this.setState({users:this.sortUsers(t.body)}),this.setState({currentSettings:n}),this.setState({settings:Object.assign({},n)}),this.setProcessing(!1)}sortUsers(e){const t=e=>`${e.profile.first_name} ${e.profile.last_name}`;return e.sort(((e,a)=>t(e).localeCompare(t(a))))}getCurrentSettings(){return this.state.currentSettings}getSettings(){return this.state.settings}requestSynchronization(e){this.setState({mustSynchronize:e})}mustOpenSynchronizePopUp(){return this.state.mustSynchronize}async setSettings(e,t){const a=Object.assign({},this.state.settings,{[e]:t});await this.setState({settings:a})}isProcessing(){return this.state.processing}setProcessing(e){this.setState({processing:e})}hasSettingsChanges(){return JSON.stringify(this.state.currentSettings)!==JSON.stringify(this.state.settings)}isSubmitted(){return this.state.submitted}setSubmitted(e){this.setState({submitted:e})}clearContext(){const{currentSettings:e,settings:t,processing:a}=this.defaultState;this.setState({currentSettings:e,settings:t,processing:a})}async save(){this.setProcessing(!0);const e=new lt(this.state.settings);await this.userDirectoryService.update(e),await this.findUserDirectorySettings()}async delete(){this.setProcessing(!0),await this.userDirectoryService.delete(),await this.findUserDirectorySettings()}async test(){this.setProcessing(!0);const e=new lt(this.state.settings),t=await this.userDirectoryService.test(e);return this.setProcessing(!1),t}async simulateUsers(){return this.userDirectoryService.simulate()}async synchronizeUsers(){return this.userDirectoryService.synchronize()}getErrors(){return this.state.errors}setError(e,t){const a=Object.assign({},this.state.errors,{[e]:t});this.setState({errors:a})}getUsers(){return this.state.users}setErrors(e,t=(()=>{})){const a=Object.assign({},this.state.errors,e);return this.setState({errors:a},t)}render(){return n.createElement(mt.Provider,{value:this.state},this.props.children)}}dt.propTypes={context:s().any,children:s().any};const ht=R(dt);function ut(e){return class extends n.Component{render(){return n.createElement(mt.Consumer,null,(t=>n.createElement(e,ct({adminUserDirectoryContext:t},this.props))))}}}class pt extends n.Component{constructor(e){super(e),this.state=this.defaultState,this.bindEventHandlers()}get defaultState(){return{loading:!0,openFullReport:!1,userDirectorySimulateSynchronizeResult:null}}bindEventHandlers(){this.handleFullReportClicked=this.handleFullReportClicked.bind(this),this.handleClose=this.handleClose.bind(this),this.handleSynchronize=this.handleSynchronize.bind(this)}async componentDidMount(){try{const e=await this.props.adminUserDirectoryContext.simulateUsers();this.setState({loading:!1,userDirectorySimulateSynchronizeResult:e})}catch(e){await this.handleError(e)}}async handleError(e){console.error(e),await this.props.actionFeedbackContext.displayError(e.message),this.handleClose()}handleFullReportClicked(){this.setState({openFullReport:!this.state.openFullReport})}handleClose(){this.props.onClose()}handleSynchronize(){this.props.adminUserDirectoryContext.requestSynchronization(!0),this.handleClose()}isLoading(){return this.state.loading}get users(){return this.state.userDirectorySimulateSynchronizeResult.users}get groups(){return this.state.userDirectorySimulateSynchronizeResult.groups}get usersSuccess(){return this.users.filter((e=>"success"===e.status))}get groupsSuccess(){return this.groups.filter((e=>"success"===e.status))}get usersError(){return this.users.filter((e=>"error"===e.status))}get groupsError(){return this.groups.filter((e=>"error"===e.status))}get usersIgnored(){return this.users.filter((e=>"ignore"===e.status))}get groupsIgnored(){return this.groups.filter((e=>"ignore"===e.status))}hasSuccessResource(){return this.usersSuccess.length>0||this.groupsSuccess.length>0}hasSuccessUserResource(){return this.usersSuccess.length>0}hasSuccessGroupResource(){return this.groupsSuccess.length>0}hasErrorOrIgnoreResource(){return this.usersError.length>0||this.groupsError.length>0||this.usersIgnored.length>0||this.groupsIgnored.length>0}getFullReport(){let e="";return e=e.concat(this.getUsersFullReport()),e=e.concat(this.getGroupsFullReport()),e}getUsersFullReport(){let e="";if(this.usersSuccess.length>0||this.usersError.length>0||this.usersIgnored.length>0){const t=`-----------------------------------------------\n${this.props.t("Users")}\n-----------------------------------------------\n`;e=e.concat(t);const a=t=>e=e.concat(`- ${t.message}\n`);this.usersSuccess.length>0&&(e=e.concat(`\n${this.props.t("Success:")}\n`),this.usersSuccess.map(a)),this.usersError.length>0&&(e=e.concat(`\n${this.props.t("Errors:")}\n`),this.usersError.map(a)),this.usersIgnored.length>0&&(e=e.concat(`\n${this.props.t("Ignored:")}\n`),this.usersIgnored.map(a))}return e.concat("\n")}getGroupsFullReport(){let e="";if(this.groupsSuccess.length>0||this.groupsError.length>0||this.groupsIgnored.length>0){const t=`-----------------------------------------------\n${this.props.t("Groups")}\n-----------------------------------------------\n`;e=e.concat(t);const a=t=>e=e.concat(`- ${t.message}\n`);this.groupsSuccess.length>0&&(e=e.concat(`\n${this.props.t("Success:")}\n`),this.groupsSuccess.map(a)),this.groupsError.length>0&&(e=e.concat(`\n${this.props.t("Errors:")}\n`),this.groupsError.map(a)),this.groupsIgnored.length>0&&(e=e.concat(`\n${this.props.t("Ignored:")}\n`),this.groupsIgnored.map(a))}return e}get translate(){return this.props.t}render(){return n.createElement("div",null,this.isLoading()&&n.createElement(it,{onClose:this.handleClose,title:this.props.t("Synchronize simulation")}),!this.isLoading()&&n.createElement(tt,{className:"ldap-simulate-synchronize-dialog",title:this.props.t("Synchronize simulation report"),onClose:this.handleClose,disabled:this.isLoading()},n.createElement("div",{className:"form-content",onSubmit:this.handleFormSubmit},n.createElement("p",null,n.createElement("strong",null,n.createElement(v.c,null,"The operation was successful."))),n.createElement("p",null),this.hasSuccessResource()&&n.createElement("p",{id:"resources-synchronize"},this.hasSuccessUserResource()&&n.createElement(n.Fragment,null,this.props.t("{{count}} user will be synchronized.",{count:this.usersSuccess.length})),this.hasSuccessUserResource()&&this.hasSuccessGroupResource()&&n.createElement("br",null),this.hasSuccessGroupResource()&&n.createElement(n.Fragment,null,this.props.t("{{count}} group will be synchronized.",{count:this.groupsSuccess.length}))),!this.hasSuccessResource()&&n.createElement("p",{id:"no-resources"}," ",n.createElement(v.c,null,"No resources will be synchronized.")," "),this.hasErrorOrIgnoreResource()&&n.createElement("p",{className:"error inline-error"},n.createElement(v.c,null,"Some resources will not be synchronized and will require your attention, see the full report.")),n.createElement("div",{className:"accordion operation-details "+(this.state.openFullReport?"":"closed")},n.createElement("div",{className:"accordion-header",onClick:this.handleFullReportClicked},n.createElement("a",{role:"link"},n.createElement(v.c,null,"Full report"),this.state.openFullReport&&n.createElement(le,{name:"caret-down"}),!this.state.openFullReport&&n.createElement(le,{name:"caret-right"}))),n.createElement("div",{className:"accordion-content"},n.createElement("div",{className:"input text"},n.createElement("textarea",{className:"full_report",readOnly:!0,value:this.getFullReport()})))),n.createElement("p",null)),n.createElement("div",{className:"submit-wrapper clearfix"},n.createElement(nt,{disabled:this.isLoading(),onClick:this.handleClose}),n.createElement("a",{className:"button primary "+(this.isLoading()?"disabled":""),role:"button",onClick:this.handleSynchronize},n.createElement(v.c,null,"Synchronize")))))}}pt.propTypes={onClose:s().func,dialogContext:s().object,actionFeedbackContext:s().any,adminUserDirectoryContext:s().object,t:s().func};const gt=d(ut((0,k.Z)("common")(pt)));class bt extends n.Component{constructor(e){super(e),this.state=this.defaultState,this.bindEventHandlers()}get defaultState(){return{loading:!0,openFullReport:!1,userDirectorySynchronizeResult:null}}bindEventHandlers(){this.handleFullReportClicked=this.handleFullReportClicked.bind(this),this.handleClose=this.handleClose.bind(this),this.handleSynchronize=this.handleSynchronize.bind(this)}async componentDidMount(){try{const e=await this.props.adminUserDirectoryContext.synchronizeUsers();this.setState({loading:!1,userDirectorySynchronizeResult:e})}catch(e){await this.handleError(e)}}async handleError(e){console.error(e),await this.props.actionFeedbackContext.displayError(e.message),this.handleClose()}handleFullReportClicked(){this.setState({openFullReport:!this.state.openFullReport})}handleClose(){this.props.onClose()}handleSynchronize(){this.handleClose()}isLoading(){return this.state.loading}get users(){return this.state.userDirectorySynchronizeResult.users}get groups(){return this.state.userDirectorySynchronizeResult.groups}get usersSuccess(){return this.users.filter((e=>"success"===e.status))}get groupsSuccess(){return this.groups.filter((e=>"success"===e.status))}get usersError(){return this.users.filter((e=>"error"===e.status))}get groupsError(){return this.groups.filter((e=>"error"===e.status))}get usersIgnored(){return this.users.filter((e=>"ignore"===e.status))}get groupsIgnored(){return this.groups.filter((e=>"ignore"===e.status))}hasSuccessResource(){return this.usersSuccess.length>0||this.groupsSuccess.length>0}hasSuccessUserResource(){return this.usersSuccess.length>0}hasSuccessGroupResource(){return this.groupsSuccess.length>0}hasErrorOrIgnoreResource(){return this.usersError.length>0||this.groupsError.length>0||this.usersIgnored.length>0||this.groupsIgnored.length>0}getFullReport(){let e="";return e=e.concat(this.getUsersFullReport()),e=e.concat(this.getGroupsFullReport()),e}getUsersFullReport(){let e="";if(this.usersSuccess.length>0||this.usersError.length>0||this.usersIgnored.length>0){const t=`-----------------------------------------------\n${this.translate("Users")}\n-----------------------------------------------\n`;e=e.concat(t);const a=t=>e=e.concat(`- ${t.message}\n`);this.usersSuccess.length>0&&(e=e.concat(`\n${this.translate("Success:")}\n`),this.usersSuccess.map(a)),this.usersError.length>0&&(e=e.concat(`\n${this.translate("Errors:")}\n`),this.usersError.map(a)),this.usersIgnored.length>0&&(e=e.concat(`\n${this.translate("Ignored:")}\n`),this.usersIgnored.map(a))}return e.concat("\n")}getGroupsFullReport(){let e="";if(this.groupsSuccess.length>0||this.groupsError.length>0||this.groupsIgnored.length>0){const t=`-----------------------------------------------\n${this.translate("Groups")}\n-----------------------------------------------\n`;e=e.concat(t);const a=t=>e=e.concat(`- ${t.message}\n`);this.groupsSuccess.length>0&&(e=e.concat(`\n${this.translate("Success:")}\n`),this.groupsSuccess.map(a)),this.groupsError.length>0&&(e=e.concat(`\n${this.translate("Errors:")}\n`),this.groupsError.map(a)),this.groupsIgnored.length>0&&(e=e.concat(`\n${this.translate("Ignored:")}\n`),this.groupsIgnored.map(a))}return e}get translate(){return this.props.t}render(){return n.createElement("div",null,this.isLoading()&&n.createElement(it,{onClose:this.handleClose,title:this.translate("Synchronize")}),!this.isLoading()&&n.createElement(tt,{className:"ldap-simulate-synchronize-dialog",title:this.translate("Synchronize report"),onClose:this.handleClose,disabled:this.isLoading()},n.createElement("div",{className:"form-content",onSubmit:this.handleFormSubmit},n.createElement("p",null,n.createElement("strong",null,n.createElement(v.c,null,"The operation was successful."))),n.createElement("p",null),this.hasSuccessResource()&&n.createElement("p",{id:"resources-synchronize"},this.hasSuccessUserResource()&&n.createElement(n.Fragment,null,this.translate("{{count}} user has been synchronized.",{count:this.usersSuccess.length})),this.hasSuccessUserResource()&&this.hasSuccessGroupResource()&&n.createElement("br",null),this.hasSuccessGroupResource()&&n.createElement(n.Fragment,null,this.translate("{{count}} group has been synchronized.",{count:this.groupsSuccess.length}))),!this.hasSuccessResource()&&n.createElement("p",{id:"no-resources"}," ",n.createElement(v.c,null,"No resources have been synchronized.")," "),this.hasErrorOrIgnoreResource()&&n.createElement("p",{className:"error inline-error"},n.createElement(v.c,null,"Some resources will not be synchronized and will require your attention, see the full report.")),n.createElement("div",{className:"accordion operation-details "+(this.state.openFullReport?"":"closed")},n.createElement("div",{className:"accordion-header",onClick:this.handleFullReportClicked},n.createElement("a",{role:"link"},n.createElement(v.c,null,"Full report"),this.state.openFullReport&&n.createElement(le,{name:"caret-down"}),!this.state.openFullReport&&n.createElement(le,{name:"caret-right"}))),n.createElement("div",{className:"accordion-content"},n.createElement("div",{className:"input text"},n.createElement("textarea",{className:"full_report",readOnly:!0,value:this.getFullReport()})))),n.createElement("p",null)),n.createElement("div",{className:"submit-wrapper clearfix"},n.createElement("a",{className:"button primary "+(this.isLoading()?"disabled":""),role:"button",onClick:this.handleClose},n.createElement(v.c,null,"Ok")))))}}bt.propTypes={onClose:s().func,actionFeedbackContext:s().any,adminUserDirectoryContext:s().object,t:s().func};const ft=d(ut((0,k.Z)("common")(bt)));class yt{constructor(e,t){this.context=e,this.translate=t}static getInstance(e,t){return this.instance||(this.instance=new yt(e,t)),this.instance}static killInstance(){this.instance=null}async validate(){const e={...this.validateHostInput(),...this.validatePortInput(),...this.validateDomainInput()};return await this.context.setErrors(e),0===Object.values(e).filter((e=>e)).length}validateHostInput(){let e=null;return this.context.getSettings().host.trim().length||(e=this.translate("A host is required.")),this.context.setError("hostError",e),{hostError:e}}validatePortInput(){let e=null;const t=this.context.getSettings().port.trim();return t.length?De()("^[0-9]+").test(t)||(e=this.translate("Only numeric characters allowed.")):e=this.translate("A port is required."),this.context.setError("portError",e),{portError:e}}validateDomainInput(){let e=null;return this.context.getSettings().domain.trim().length||(e=this.translate("A domain name is required.")),this.context.setError("domainError",e),{domainError:e}}}const vt=yt;class kt extends n.Component{hasChildren(){return this.props.node.group.groups.length>0}displayUserName(e){return`${e.profile.first_name} ${e.profile.last_name}`}get node(){return this.props.node}render(){return n.createElement("ul",{key:this.node.id},"group"===this.node.type&&n.createElement("li",{className:"group"},this.node.group.name,n.createElement("ul",null,Object.values(this.node.group.users).map((e=>n.createElement("li",{className:"user",key:e.id},e.errors&&n.createElement("span",{className:"error"},e.directory_name),!e.errors&&n.createElement("span",null,this.displayUserName(e.user)," ",n.createElement("em",null,"(",e.user.username,")"))))),Object.values(this.node.group.groups).map((e=>n.createElement(kt,{key:`tree-${e.id}`,node:e}))))),"user"===this.node.type&&n.createElement("li",{className:"user"},this.node.errors&&n.createElement("span",{className:"error"},this.node.directory_name),!this.node.errors&&n.createElement("span",null,this.displayUserName(this.node.user)," ",n.createElement("em",null,"(",this.node.user.username,")"))))}}kt.propTypes={node:s().object};const Et=kt;class wt extends n.Component{constructor(e){super(e),this.state=this.defaultState,this.bindEventHandlers()}get defaultState(){return{loading:!0,openListGroupsUsers:!1,openStructureGroupsUsers:!1,openErrors:!1}}bindEventHandlers(){this.handleListGroupsUsersClicked=this.handleListGroupsUsersClicked.bind(this),this.handleStructureGroupsUsersClicked=this.handleStructureGroupsUsersClicked.bind(this),this.handleErrorsClicked=this.handleErrorsClicked.bind(this),this.handleClose=this.handleClose.bind(this)}componentDidMount(){this.setState({loading:!1})}handleListGroupsUsersClicked(){this.setState({openListGroupsUsers:!this.state.openListGroupsUsers})}handleStructureGroupsUsersClicked(){this.setState({openStructureGroupsUsers:!this.state.openStructureGroupsUsers})}handleErrorsClicked(){this.setState({openErrors:!this.state.openErrors})}handleClose(){this.props.onClose(),this.props.context.setContext({displayTestUserDirectoryDialogProps:null})}hasAllInputDisabled(){return this.state.loading}displayUserName(e){return`${e.profile.first_name} ${e.profile.last_name}`}get users(){return this.props.context.displayTestUserDirectoryDialogProps.userDirectoryTestResult.users}get groups(){return this.props.context.displayTestUserDirectoryDialogProps.userDirectoryTestResult.groups}get tree(){return this.props.context.displayTestUserDirectoryDialogProps.userDirectoryTestResult.tree}get errors(){return this.props.context.displayTestUserDirectoryDialogProps.userDirectoryTestResult.errors}get translate(){return this.props.t}render(){return n.createElement(tt,{className:"ldap-test-settings-dialog",title:this.translate("Test settings report"),onClose:this.handleClose,disabled:this.hasAllInputDisabled()},n.createElement("div",{className:"form-content"},n.createElement("p",null,n.createElement("strong",null,n.createElement(v.c,null,"A connection could be established. Well done!"))),n.createElement("p",null),n.createElement("div",{className:"ldap-test-settings-report"},n.createElement("p",null,this.users.length>0&&n.createElement(n.Fragment,null,this.translate("{{count}} user has been found.",{count:this.users.length})),this.users.length>0&&this.groups.length>0&&n.createElement("br",null),this.groups.length>0&&n.createElement(n.Fragment,null,this.translate("{{count}} group has been found.",{count:this.groups.length}))),n.createElement("div",{className:"accordion directory-list "+(this.state.openListGroupsUsers?"":"closed")},n.createElement("div",{className:"accordion-header",onClick:this.handleListGroupsUsersClicked},n.createElement("a",{role:"link"},n.createElement(v.c,null,"See list"),this.state.openListGroupsUsers&&n.createElement(le,{name:"caret-down",baseline:!0}),!this.state.openListGroupsUsers&&n.createElement(le,{name:"caret-right",baseline:!0}))),n.createElement("div",{className:"accordion-content"},n.createElement("table",null,n.createElement("tbody",null,n.createElement("tr",null,n.createElement("td",null,n.createElement(v.c,null,"Groups")),n.createElement("td",null,n.createElement(v.c,null,"Users"))),n.createElement("tr",null,n.createElement("td",null,this.groups.map((e=>e.errors&&n.createElement("div",{key:e.id},n.createElement("span",{className:"error"},e.directory_name))||n.createElement("div",{key:e.id},e.group.name)))),n.createElement("td",null,this.users.map((e=>e.errors&&n.createElement("div",{key:e.id},n.createElement("span",{className:"error"},e.directory_name))||n.createElement("div",{key:e.id},this.displayUserName(e.user)," ",n.createElement("em",null,"(",e.user.username,")")))))))))),n.createElement("div",{className:"accordion accordion-directory-structure "+(this.state.openStructureGroupsUsers?"":"closed")},n.createElement("div",{className:"accordion-header",onClick:this.handleStructureGroupsUsersClicked},n.createElement("a",{role:"link"},n.createElement(v.c,null,"See structure"),this.state.openStructureGroupsUsers&&n.createElement(le,{name:"caret-down",baseline:!0}),!this.state.openStructureGroupsUsers&&n.createElement(le,{name:"caret-right",baseline:!0}))),n.createElement("div",{className:"accordion-content"},n.createElement("div",{className:"directory-structure"},n.createElement("ul",null,n.createElement("li",{className:"group"},"Root",Object.values(this.tree).map((e=>n.createElement(Et,{key:`tree-${e.id}`,node:e})))))))),this.errors.length>0&&n.createElement("div",null,n.createElement("p",{className:"directory-errors error"},this.translate("{{count}} entry had errors and will be ignored during synchronization.",{count:this.errors.length})),n.createElement("div",{className:"accordion accordion-directory-errors "+(this.state.openErrors?"":"closed")},n.createElement("div",{className:"accordion-header",onClick:this.handleErrorsClicked},n.createElement("a",{role:"link"},n.createElement(v.c,null,"See error details"),this.state.openErrors&&n.createElement(le,{name:"caret-down",baseline:!0}),!this.state.openErrors&&n.createElement(le,{name:"caret-right",baseline:!0}))),n.createElement("div",{className:"accordion-content"},n.createElement("div",{className:"directory-errors"},n.createElement("textarea",{value:JSON.stringify(this.errors,null," "),readOnly:!0}))))))),n.createElement("div",{className:"submit-wrapper clearfix"},n.createElement("a",{className:"button primary "+(this.hasAllInputDisabled()?"disabled":""),role:"button",onClick:this.handleClose},n.createElement(v.c,null,"OK"))))}}wt.propTypes={context:s().any,onClose:s().func,t:s().func};const Ct=R((0,k.Z)("common")(wt));class St extends n.Component{constructor(e){super(e),this.bindCallbacks(),this.state=this.defaultState,this.userDirectoryFormService=vt.getInstance(this.props.adminUserDirectoryContext,this.props.t)}componentDidUpdate(){this.props.adminUserDirectoryContext.mustOpenSynchronizePopUp()&&(this.props.adminUserDirectoryContext.requestSynchronization(!1),this.handleSynchronizeClick())}async handleSaveClick(){this.props.adminUserDirectoryContext.getSettings().userDirectoryToggle?await this.props.adminUserDirectoryContext.save():await this.props.adminUserDirectoryContext.delete(),this.handleSaveSuccess()}async handleFormSubmit(e){try{if(await this.userDirectoryFormService.validate())switch(e){case"save":await this.handleSaveClick();break;case"test":await this.handleTestClick()}}catch(e){this.handleSubmitError(e)}finally{this.props.adminUserDirectoryContext.setSubmitted(!0),this.props.adminUserDirectoryContext.setProcessing(!1)}}async handleTestClick(){const e={userDirectoryTestResult:(await this.props.adminUserDirectoryContext.test()).body};this.props.context.setContext({displayTestUserDirectoryDialogProps:e}),this.props.dialogContext.open(Ct)}isSaveEnabled(){return!this.props.adminUserDirectoryContext.isProcessing()&&this.props.adminUserDirectoryContext.hasSettingsChanges()}isTestEnabled(){return!this.props.adminUserDirectoryContext.isProcessing()&&this.props.adminUserDirectoryContext.getSettings().userDirectoryToggle}isSynchronizeEnabled(){return!this.props.adminUserDirectoryContext.isProcessing()&&this.props.adminUserDirectoryContext.getSettings().userDirectoryToggle&&this.props.adminUserDirectoryContext.getCurrentSettings().userDirectoryToggle}bindCallbacks(){this.handleSaveClick=this.handleSaveClick.bind(this),this.handleTestClick=this.handleTestClick.bind(this),this.handleSimulateSynchronizeClick=this.handleSimulateSynchronizeClick.bind(this),this.handleSynchronizeClick=this.handleSynchronizeClick.bind(this)}handleSimulateSynchronizeClick(){this.props.dialogContext.open(gt)}handleSynchronizeClick(){this.props.dialogContext.open(ft)}async handleSaveSuccess(){await this.props.actionFeedbackContext.displaySuccess(this.props.t("The user directory settings for the organization were updated."))}async handleSubmitError(e){"UserAbortsOperationError"!==e.name&&(console.error(e),await this.handleError(e))}async handleError(e){await this.props.actionFeedbackContext.displayError(e.message)}render(){return n.createElement("div",{className:"col2_3 actions-wrapper"},n.createElement("div",{className:"actions"},n.createElement("div",null,n.createElement("li",null,n.createElement("a",{className:"button "+(this.isSaveEnabled()?"":"disabled"),onClick:()=>this.handleFormSubmit("save")},n.createElement(le,{name:"save"}),n.createElement("span",null,n.createElement(v.c,null,"Save settings")))),n.createElement("li",null,n.createElement("a",{className:"button "+(this.isTestEnabled()?"":"disabled"),onClick:()=>this.handleFormSubmit("test")},n.createElement(le,{name:"plug"}),n.createElement("span",null,n.createElement(v.c,null,"Test settings")))),n.createElement("li",null,n.createElement("a",{className:"button "+(this.isSynchronizeEnabled()?"":"disabled"),onClick:this.handleSimulateSynchronizeClick},n.createElement(le,{name:"magic-wand"}),n.createElement("span",null,n.createElement(v.c,null,"Simulate synchronize")))),n.createElement("li",null,n.createElement("a",{className:"button "+(this.isSynchronizeEnabled()?"":"disabled"),onClick:this.handleSynchronizeClick},n.createElement(le,{name:"refresh"}),n.createElement("span",null,n.createElement(v.c,null,"Synchronize")))))))}}St.propTypes={context:s().object,dialogContext:s().object,adminUserDirectoryContext:s().object,actionFeedbackContext:s().object,t:s().func};const xt=R(d(g(ut((0,k.Z)("common")(St)))));class Nt extends n.Component{constructor(e){super(e),this.state=this.defaultState,this.userDirectoryFormService=vt.getInstance(this.props.adminUserDirectoryContext,this.props.t),this.bindCallbacks()}get defaultState(){return{hasFieldFocus:!1}}async componentDidMount(){this.props.administrationWorkspaceContext.setDisplayAdministrationWorkspaceAction(xt),this.props.adminUserDirectoryContext.findUserDirectorySettings()}componentWillUnmount(){this.props.administrationWorkspaceContext.resetDisplayAdministrationWorkspaceAction(),this.props.adminUserDirectoryContext.clearContext(),vt.killInstance(),this.userDirectoryFormService=null}bindCallbacks(){this.handleCredentialTitleClicked=this.handleCredentialTitleClicked.bind(this),this.handleDirectoryConfigurationTitleClicked=this.handleDirectoryConfigurationTitleClicked.bind(this),this.handleSynchronizationOptionsTitleClicked=this.handleSynchronizationOptionsTitleClicked.bind(this),this.handleFieldFocus=this.handleFieldFocus.bind(this),this.handleFieldBlur=this.handleFieldBlur.bind(this),this.handleInputChange=this.handleInputChange.bind(this)}handleCredentialTitleClicked(){const e=this.props.adminUserDirectoryContext.getSettings();this.props.adminUserDirectoryContext.setSettings("openCredentials",!e.openCredentials)}handleDirectoryConfigurationTitleClicked(){const e=this.props.adminUserDirectoryContext.getSettings();this.props.adminUserDirectoryContext.setSettings("openDirectoryConfiguration",!e.openDirectoryConfiguration)}handleSynchronizationOptionsTitleClicked(){const e=this.props.adminUserDirectoryContext.getSettings();this.props.adminUserDirectoryContext.setSettings("openSynchronizationOptions",!e.openSynchronizationOptions)}handleInputChange(e){const t=e.target,a="checkbox"===t.type?t.checked:t.value,n=t.name;this.props.adminUserDirectoryContext.setSettings(n,a),this.validateInput(n,a)}validateInput(e,t){switch(e){case"host":this.userDirectoryFormService.validateHostInput(t);break;case"domain":this.userDirectoryFormService.validateDomainInput(t);break;case"port":this.userDirectoryFormService.validatePortInput(t)}}handleFieldFocus(){this.setState({hasFieldFocus:!0})}handleFieldBlur(){this.setState({hasFieldFocus:!1})}hasAllInputDisabled(){const e=this.props.adminUserDirectoryContext.getSettings();return e.processing||e.loading}isUserDirectoryChecked(){return this.props.adminUserDirectoryContext.getSettings().userDirectoryToggle}isActiveDirectoryChecked(){return"ad"===this.props.adminUserDirectoryContext.getSettings().directoryType}isOpenLdapChecked(){return"openldap"===this.props.adminUserDirectoryContext.getSettings().directoryType}isUseEmailPrefixChecked(){return this.props.adminUserDirectoryContext.getSettings().useEmailPrefix}getUsersAllowedToBeDefaultAdmin(){const e=this.props.adminUserDirectoryContext.getUsers();if(null!==e){const t=e.filter((e=>!0===e.active&&"admin"===e.role.name));return t&&t.map((e=>({value:e.id,label:this.displayUser(e)})))}return[]}getUsersAllowedToBeDefaultGroupAdmin(){const e=this.props.adminUserDirectoryContext.getUsers();if(null!==e){const t=e.filter((e=>!0===e.active));return t&&t.map((e=>({value:e.id,label:this.displayUser(e)})))}return[]}displayUser(e){return`${e.profile.first_name} ${e.profile.last_name} (${e.username})`}get connectionType(){return[{value:"plain",label:"ldap://"},{value:"ssl",label:"ldaps:// (ssl)"},{value:"tls",label:"ldaps:// (tls)"}]}render(){const e=this.props.adminUserDirectoryContext.getSettings(),t=this.props.adminUserDirectoryContext.getErrors(),a=this.props.adminUserDirectoryContext.isSubmitted();return n.createElement("div",{className:"row"},n.createElement("div",{className:"ldap-settings col7 main-column"},n.createElement("h3",null,n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"userDirectoryToggle",onChange:this.handleInputChange,checked:e.userDirectoryToggle,disabled:this.hasAllInputDisabled(),id:"userDirectoryToggle"}),n.createElement("label",{htmlFor:"userDirectoryToggle"},n.createElement(v.c,null,"Users Directory")))),!this.isUserDirectoryChecked()&&n.createElement("p",{className:"description"},n.createElement(v.c,null,"No Users Directory is configured. Enable it to synchronise your users and groups with passbolt.")),this.isUserDirectoryChecked()&&n.createElement(n.Fragment,null,n.createElement("p",{className:"description"},n.createElement(v.c,null,"A Users Directory is configured. The users and groups of passbolt will synchronize with it.")),n.createElement("div",{className:"accordion section-general "+(e.openCredentials?"":"closed")},n.createElement("h4",{className:"accordion-header"},n.createElement("a",{onClick:this.handleCredentialTitleClicked},e.openCredentials&&n.createElement(le,{name:"caret-down"}),!e.openCredentials&&n.createElement(le,{name:"caret-right"}),n.createElement(v.c,null,"Credentials"))),n.createElement("div",{className:"accordion-content"},n.createElement("div",{className:"radiolist required"},n.createElement("label",null,n.createElement(v.c,null,"Directory type")),n.createElement("div",{className:"input radio ad openldap form-element "},n.createElement("div",{className:"input radio"},n.createElement("input",{type:"radio",value:"ad",onChange:this.handleInputChange,name:"directoryType",checked:this.isActiveDirectoryChecked(),id:"directoryTypeAd",disabled:this.hasAllInputDisabled()}),n.createElement("label",{htmlFor:"directoryTypeAd"},n.createElement(v.c,null,"Active Directory"))),n.createElement("div",{className:"input radio"},n.createElement("input",{type:"radio",value:"openldap",onChange:this.handleInputChange,name:"directoryType",checked:this.isOpenLdapChecked(),id:"directoryTypeOpenLdap",disabled:this.hasAllInputDisabled()}),n.createElement("label",{htmlFor:"directoryTypeOpenLdap"},n.createElement(v.c,null,"Open Ldap"))))),n.createElement("div",{className:"input text required ad openldap "+(this.hasAllInputDisabled()?"disabled":"")},n.createElement("label",null,n.createElement(v.c,null,"Server url")),n.createElement("div",{className:"input text singleline connection_info ad openldap "+(this.state.hasFieldFocus?"no-focus":"")},n.createElement("input",{id:"server-input",type:"text",className:"required host ad openldap form-element",name:"host",value:e.host,onChange:this.handleInputChange,placeholder:this.props.t("host"),disabled:this.hasAllInputDisabled()}),n.createElement("div",{className:"protocol",onBlur:this.handleFieldBlur,onFocus:this.handleFieldFocus},n.createElement(Ze,{className:"inline",name:"connectionType",items:this.connectionType,value:e.connectionType,onChange:this.handleInputChange,disabled:this.hasAllInputDisabled()})),n.createElement("div",{className:"port ad openldap"},n.createElement("input",{id:"port-input",type:"number",className:"required in-field form-element",name:"port",value:e.port,onChange:this.handleInputChange,onBlur:this.handleFieldBlur,onFocus:this.handleFieldFocus,disabled:this.hasAllInputDisabled()}))),t.hostError&&a&&n.createElement("div",{id:"server-input-feedback",className:"error-message"},t.hostError),t.portError&&a&&n.createElement("div",{id:"port-input-feedback",className:"error-message"},t.portError)),n.createElement("div",{className:"singleline clearfix"},n.createElement("div",{className:"input text first-field ad openldap "+(this.hasAllInputDisabled()?"disabled":"")},n.createElement("label",null,n.createElement(v.c,null,"Username")),n.createElement("input",{id:"username-input",type:"text",className:"fluid form-element",name:"username",value:e.username,onChange:this.handleInputChange,placeholder:this.props.t("Username"),disabled:this.hasAllInputDisabled()})),n.createElement("div",{className:"input text last-field ad openldap "+(this.hasAllInputDisabled()?"disabled":"")},n.createElement("label",null,n.createElement(v.c,null,"Password")),n.createElement("input",{id:"password-input",className:"fluid form-element",name:"password",value:e.password,onChange:this.handleInputChange,placeholder:this.props.t("Password"),type:"password",disabled:this.hasAllInputDisabled()}))),n.createElement("div",{className:"input text required ad openldap "+(this.hasAllInputDisabled()?"disabled":"")},n.createElement("label",null,n.createElement(v.c,null,"Domain")),n.createElement("input",{id:"domain-name-input",type:"text",name:"domain",value:e.domain,onChange:this.handleInputChange,className:"required fluid form-element",placeholder:"domain.ext",disabled:this.hasAllInputDisabled()}),t.domainError&&a&&n.createElement("div",{id:"domain-name-input-feedback",className:"error-message"},t.domainError)),n.createElement("div",{className:"input text ad openldap "+(this.hasAllInputDisabled()?"disabled":"")},n.createElement("label",null,n.createElement(v.c,null,"Base DN")),n.createElement("input",{id:"base-dn-input",type:"text",name:"baseDn",value:e.baseDn,onChange:this.handleInputChange,className:"fluid form-element",placeholder:"OU=OrgUsers,DC=mydomain,DC=local",disabled:this.hasAllInputDisabled()}),n.createElement("div",{className:"help-message"},n.createElement(v.c,null,"The base DN (default naming context) for the domain.")," ",n.createElement(v.c,null,"If this is empty then it will be queried from the RootDSE."))))),n.createElement("div",{className:"accordion section-directory-configuration "+(e.openDirectoryConfiguration?"":"closed")},n.createElement("h4",{className:"accordion-header"},n.createElement("a",{onClick:this.handleDirectoryConfigurationTitleClicked},e.openDirectoryConfiguration&&n.createElement(le,{name:"caret-down"}),!e.openDirectoryConfiguration&&n.createElement(le,{name:"caret-right"}),n.createElement(v.c,null,"Directory configuration"))),n.createElement("div",{className:"accordion-content"},n.createElement("div",{className:"input text ad openldap "+(this.hasAllInputDisabled()?"disabled":"")},n.createElement("label",null,n.createElement(v.c,null,"Group path")),n.createElement("input",{id:"group-path-input",type:"text",name:"groupPath",value:e.groupPath,onChange:this.handleInputChange,className:"required fluid form-element",placeholder:this.props.t("Group path"),disabled:this.hasAllInputDisabled()}),n.createElement("div",{className:"help-message"},n.createElement(v.c,null,"Group path is used in addition to the base DN while searching groups.")," ",n.createElement(v.c,null,"Leave empty if users and groups are in the same DN."))),n.createElement("div",{className:"input text ad openldap "+(this.hasAllInputDisabled()?"disabled":"")},n.createElement("label",null,n.createElement(v.c,null,"User path")),n.createElement("input",{id:"user-path-input",type:"text",name:"userPath",value:e.userPath,onChange:this.handleInputChange,className:"required fluid form-element",placeholder:this.props.t("User path"),disabled:this.hasAllInputDisabled()}),n.createElement("div",{className:"help-message"},n.createElement(v.c,null,"User path is used in addition to base DN while searching users."))),this.isOpenLdapChecked()&&n.createElement("div",null,n.createElement("div",{className:"input text ad openldap "+(this.hasAllInputDisabled()?"disabled":"")},n.createElement("label",null,n.createElement(v.c,null,"Group object class")),n.createElement("input",{id:"group-object-class-input",type:"text",name:"groupObjectClass",value:e.groupObjectClass,onChange:this.handleInputChange,className:"required fluid",placeholder:"GroupObjectClass",disabled:this.hasAllInputDisabled()}),n.createElement("div",{className:"help-message"},n.createElement(v.c,null,"For Openldap only. Defines which group object to use.")," (",n.createElement(v.c,null,"Default"),": posixGroup)")),n.createElement("div",{className:"input text ad openldap "+(this.hasAllInputDisabled()?"disabled":"")},n.createElement("label",null,n.createElement(v.c,null,"User object class")),n.createElement("input",{id:"user-object-class-input",type:"text",name:"userObjectClass",value:e.userObjectClass,onChange:this.handleInputChange,className:"required fluid form-element",placeholder:"UserObjectClass",disabled:this.hasAllInputDisabled()}),n.createElement("div",{className:"help-message"},n.createElement(v.c,null,"For Openldap only. Defines which user object to use.")," (",n.createElement(v.c,null,"Default"),": inetOrgPerson)")),n.createElement("div",{className:"input text openldap "+(this.hasAllInputDisabled()?"disabled":"")},n.createElement("label",null,n.createElement(v.c,null,"Use email prefix / suffix?")),n.createElement("div",{className:"input toggle-switch openldap form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"useEmailPrefix",value:e.useEmailPrefix,onChange:this.handleInputChange,id:"use-email-prefix-suffix-toggle-button",disabled:this.hasAllInputDisabled()}),n.createElement("label",{className:"text",htmlFor:"use-email-prefix-suffix-toggle-button"},n.createElement(v.c,null,"Build email based on a prefix and suffix?"))),n.createElement("div",{className:"help-message"},n.createElement(v.c,null,"Use this option when user entries do not include an email address by default"))),this.isUseEmailPrefixChecked()&&n.createElement("div",{className:"singleline clearfix",id:"use-email-prefix-suffix-options"},n.createElement("div",{className:"input text first-field openldap "+(this.hasAllInputDisabled()?"disabled":"")},n.createElement("label",null,n.createElement(v.c,null,"Email prefix")),n.createElement("input",{id:"email-prefix-input",type:"text",name:"emailPrefix",checked:e.emailPrefix,onChange:this.handleInputChange,className:"required fluid form-element",placeholder:this.props.t("Username"),disabled:this.hasAllInputDisabled()}),n.createElement("div",{className:"help-message"},n.createElement(v.c,null,"The attribute you would like to use for the first part of the email (usually username)."))),n.createElement("div",{className:"input text last-field openldap "+(this.hasAllInputDisabled()?"disabled":"")},n.createElement("label",null,n.createElement(v.c,null,"Email suffix")),n.createElement("input",{id:"email-suffix-input",type:"text",name:"emailSuffix",value:e.emailSuffix,onChange:this.handleInputChange,className:"required form-element",placeholder:this.props.t("@your-domain.com"),disabled:this.hasAllInputDisabled()}),n.createElement("div",{className:"help-message"},n.createElement(v.c,null,"The domain name part of the email (@your-domain-name)."))))))),n.createElement("div",{className:"accordion section-sync-options "+(e.openSynchronizationOptions?"":"closed")},n.createElement("h4",{className:"accordion-header"},n.createElement("a",{onClick:this.handleSynchronizationOptionsTitleClicked},e.openSynchronizationOptions&&n.createElement(le,{name:"caret-down"}),!e.openSynchronizationOptions&&n.createElement(le,{name:"caret-right"}),n.createElement(v.c,null,"Synchronization options"))),n.createElement("div",{className:"accordion-content"},n.createElement("div",{className:"select-wrapper input required ad openldap "+(this.hasAllInputDisabled()?"disabled":"")},n.createElement("label",null,n.createElement(v.c,null,"Default admin")),n.createElement(Ze,{items:this.getUsersAllowedToBeDefaultAdmin(),id:"default-user-select",name:"defaultAdmin",value:e.defaultAdmin,onChange:this.handleInputChange,disabled:this.hasAllInputDisabled(),search:!0}),n.createElement("div",{className:"help-message"},n.createElement(v.c,null,"The default admin user is the user that will perform the operations for the the directory."))),n.createElement("div",{className:"select-wrapper input required ad openldap "+(this.hasAllInputDisabled()?"disabled":"")},n.createElement("label",null,n.createElement(v.c,null,"Default group admin")),n.createElement(Ze,{items:this.getUsersAllowedToBeDefaultGroupAdmin(),id:"default-group-admin-user-select",name:"defaultGroupAdmin",value:e.defaultGroupAdmin,onChange:this.handleInputChange,disabled:this.hasAllInputDisabled(),search:!0}),n.createElement("div",{className:"help-message"},n.createElement(v.c,null,"The default group manager is the user that will be the group manager of newly created groups."))),n.createElement("div",{className:"input text ad openldap "+(this.hasAllInputDisabled()?"disabled":"")},n.createElement("label",null,n.createElement(v.c,null,"Groups parent group")),n.createElement("input",{id:"groups-parent-group-input",type:"text",name:"groupsParentGroup",value:e.groupsParentGroup,onChange:this.handleInputChange,className:"fluid form-element",placeholder:this.props.t("Group name"),disabled:this.hasAllInputDisabled()}),n.createElement("div",{className:"help-message"},n.createElement(v.c,null,"Synchronize only the groups which are members of this group."))),n.createElement("div",{className:"input text ad openldap "+(this.hasAllInputDisabled()?"disabled":"")},n.createElement("label",null,n.createElement(v.c,null,"Users parent group")),n.createElement("input",{id:"users-parent-group-input",type:"text",name:"usersParentGroup",value:e.usersParentGroup,onChange:this.handleInputChange,className:"fluid form-element",placeholder:this.props.t("Group name"),disabled:this.hasAllInputDisabled()}),n.createElement("div",{className:"help-message"},n.createElement(v.c,null,"Synchronize only the users which are members of this group."))),this.isActiveDirectoryChecked()&&n.createElement("div",{className:"input text clearfix ad "+(this.hasAllInputDisabled()?"disabled":"")},n.createElement("label",null,n.createElement(v.c,null,"Enabled users only")),n.createElement("div",{className:"input toggle-switch ad form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"enabledUsersOnly",checked:e.enabledUsersOnly,onChange:this.handleInputChange,id:"enabled-users-only-toggle-button",disabled:this.hasAllInputDisabled()}),n.createElement("label",{className:"text",htmlFor:"enabled-users-only-toggle-button"},n.createElement(v.c,null,"Only synchronize enabled users (AD)")))),n.createElement("div",{className:"input text clearfix ad openldap"},n.createElement("label",null,n.createElement(v.c,null,"Sync operations")),n.createElement("div",{className:"col6"},n.createElement("div",{className:"input toggle-switch ad openldap form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"createUsers",checked:e.createUsers,onChange:this.handleInputChange,id:"sync-users-create-toggle-button",disabled:this.hasAllInputDisabled()}),n.createElement("label",{className:"text",htmlFor:"sync-users-create-toggle-button"},n.createElement(v.c,null,"Create users"))),n.createElement("div",{className:"input toggle-switch ad openldap form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"deleteUsers",checked:e.deleteUsers,onChange:this.handleInputChange,id:"sync-users-delete-toggle-button",disabled:this.hasAllInputDisabled()}),n.createElement("label",{className:"text",htmlFor:"sync-users-delete-toggle-button"},n.createElement(v.c,null,"Delete users")))),n.createElement("div",{className:"col6 last"},n.createElement("div",{className:"input toggle-switch ad openldap form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"createGroups",checked:e.createGroups,onChange:this.handleInputChange,id:"sync-groups-create-toggle-button",disabled:this.hasAllInputDisabled()}),n.createElement("label",{className:"text",htmlFor:"sync-groups-create-toggle-button"},n.createElement(v.c,null,"Create groups"))),n.createElement("div",{className:"input toggle-switch ad openldap form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"deleteGroups",checked:e.deleteGroups,onChange:this.handleInputChange,id:"sync-groups-delete-toggle-button",disabled:this.hasAllInputDisabled()}),n.createElement("label",{className:"text",htmlFor:"sync-groups-delete-toggle-button"},n.createElement(v.c,null,"Delete groups"))),n.createElement("div",{className:"input toggle-switch ad openldap form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"updateGroups",checked:e.updateGroups,onChange:this.handleInputChange,id:"sync-groups-update-toggle-button",disabled:this.hasAllInputDisabled()}),n.createElement("label",{className:"text",htmlFor:"sync-groups-update-toggle-button"},n.createElement(v.c,null,"Update groups"))))))))),n.createElement("div",{className:"col4 last"},n.createElement("div",{className:"sidebar-help"},n.createElement("h3",null,n.createElement(v.c,null,"Need help?")),n.createElement("p",null,n.createElement(v.c,null,"Check out our ldap configuration guide.")),n.createElement("a",{className:"button",href:"https://help.passbolt.com/configure/ldap",target:"_blank",rel:"noopener noreferrer"},n.createElement(le,{name:"document"}),n.createElement("span",null,n.createElement(v.c,null,"Read the documentation"))))))}}Nt.propTypes={adminUserDirectoryContext:s().object,administrationWorkspaceContext:s().object,t:s().func};const Lt=ut(F((0,k.Z)("common")(Nt))),It=class{constructor(e={}){this.hasDatabaseSetting="sources_database"in e&&e.sources_database,this.hasFileConfigSetting="sources_file"in e&&e.sources_file,this.passwordCreate=!("send_password_create"in e)||e.send_password_create,this.passwordShare=!("send_password_share"in e)||e.send_password_share,this.passwordUpdate=!("send_password_update"in e)||e.send_password_update,this.passwordDelete=!("send_password_delete"in e)||e.send_password_delete,this.folderCreate=!("send_folder_create"in e)||e.send_folder_create,this.folderUpdate=!("send_folder_update"in e)||e.send_folder_update,this.folderDelete=!("send_folder_delete"in e)||e.send_folder_delete,this.folderShare=!("send_folder_share"in e)||e.send_folder_share,this.commentAdd=!("send_comment_add"in e)||e.send_comment_add,this.groupDelete=!("send_group_delete"in e)||e.send_group_delete,this.groupUserAdd=!("send_group_user_add"in e)||e.send_group_user_add,this.groupUserDelete=!("send_group_user_delete"in e)||e.send_group_user_delete,this.groupUserUpdate=!("send_group_user_update"in e)||e.send_group_user_update,this.groupManagerUpdate=!("send_group_manager_update"in e)||e.send_group_manager_update,this.userCreate=!("send_user_create"in e)||e.send_user_create,this.userRecover=!("send_user_recover"in e)||e.send_user_recover,this.userRecoverComplete=!("send_user_recoverComplete"in e)||e.send_user_recoverComplete,this.userRecoverAbortAdmin=!("send_admin_user_recover_abort"in e)||e.send_admin_user_recover_abort,this.userRecoverCompleteAdmin=!("send_admin_user_recover_complete"in e)||e.send_admin_user_recover_complete,this.userSetupCompleteAdmin=!("send_admin_user_setup_completed"in e)||e.send_admin_user_setup_completed,this.showDescription=!("show_description"in e)||e.show_description,this.showSecret=!("show_secret"in e)||e.show_secret,this.showUri=!("show_uri"in e)||e.show_uri,this.showUsername=!("show_username"in e)||e.show_username,this.showComment=!("show_comment"in e)||e.show_comment,this.accountRecoveryRequestUser=!("send_accountRecovery_request_user"in e)||e.send_accountRecovery_request_user,this.accountRecoveryRequestAdmin=!("send_accountRecovery_request_admin"in e)||e.send_accountRecovery_request_admin,this.accountRecoveryRequestGuessing=!("send_accountRecovery_request_guessing"in e)||e.send_accountRecovery_request_guessing,this.accountRecoveryRequestUserApproved=!("send_accountRecovery_response_user_approved"in e)||e.send_accountRecovery_response_user_approved,this.accountRecoveryRequestUserRejected=!("send_accountRecovery_response_user_rejected"in e)||e.send_accountRecovery_response_user_rejected,this.accountRecoveryRequestCreatedAmin=!("send_accountRecovery_response_created_admin"in e)||e.send_accountRecovery_response_created_admin,this.accountRecoveryRequestCreatedAllAdmins=!("send_accountRecovery_response_created_allAdmins"in e)||e.send_accountRecovery_response_created_allAdmins,this.accountRecoveryRequestPolicyUpdate=!("send_accountRecovery_policy_update"in e)||e.send_accountRecovery_policy_update}};function Rt(){return Rt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},Rt.apply(this,arguments)}const At=n.createContext({getCurrentSettings:()=>{},getSettings:()=>{},setSettings:()=>{},hasSettingsChanges:()=>{},findEmailNotificationSettings:()=>{},save:()=>{},setProcessing:()=>{},isProcessing:()=>{},clearContext:()=>{}});class zt extends n.Component{constructor(e){super(e),this.state=this.defaultState;const t=e.context.getApiClientOptions();this.emailNotificationService=new class{constructor(e){e.setResourceName("settings/emails/notifications"),this.apiClient=new xe(e)}async find(){return(await this.apiClient.findAll()).body}async save(e){return(await this.apiClient.create(e)).body}}(t)}get defaultState(){return{currentSettings:null,settings:new It,processing:!0,getCurrentSettings:this.getCurrentSettings.bind(this),getSettings:this.getSettings.bind(this),setSettings:this.setSettings.bind(this),findEmailNotificationSettings:this.findEmailNotificationSettings.bind(this),hasSettingsChanges:this.hasSettingsChanges.bind(this),isProcessing:this.isProcessing.bind(this),setProcessing:this.setProcessing.bind(this),save:this.save.bind(this),clearContext:this.clearContext.bind(this)}}async findEmailNotificationSettings(){this.setProcessing(!0);const e=await this.emailNotificationService.find(),t=new It(e);this.setState({currentSettings:t}),this.setState({settings:Object.assign({},t)}),this.setProcessing(!1)}getCurrentSettings(){return this.state.currentSettings}getSettings(){return this.state.settings}async setSettings(e,t){const a=Object.assign({},this.state.settings,{[e]:t});await this.setState({settings:a})}isProcessing(){return this.state.processing}setProcessing(e){this.setState({processing:e})}hasSettingsChanges(){return JSON.stringify(this.state.currentSettings)!==JSON.stringify(this.state.settings)}clearContext(){const{currentSettings:e,settings:t,processing:a}=this.defaultState;this.setState({currentSettings:e,settings:t,processing:a})}async save(){this.setProcessing(!0);const e=new class{constructor(e={}){this.sources_database="hasDatabaseSetting"in e&&e.hasDatabaseSetting,this.sources_file="hasFileConfigSetting"in e&&e.hasFileConfigSetting,this.send_password_create=!("passwordCreate"in e)||e.passwordCreate,this.send_password_share=!("passwordShare"in e)||e.passwordShare,this.send_password_update=!("passwordUpdate"in e)||e.passwordUpdate,this.send_password_delete=!("passwordDelete"in e)||e.passwordDelete,this.send_folder_create=!("folderCreate"in e)||e.folderCreate,this.send_folder_update=!("folderUpdate"in e)||e.folderUpdate,this.send_folder_delete=!("folderDelete"in e)||e.folderDelete,this.send_folder_share=!("folderShare"in e)||e.folderShare,this.send_comment_add=!("commentAdd"in e)||e.commentAdd,this.send_group_delete=!("groupDelete"in e)||e.groupDelete,this.send_group_user_add=!("groupUserAdd"in e)||e.groupUserAdd,this.send_group_user_delete=!("groupUserDelete"in e)||e.groupUserDelete,this.send_group_user_update=!("groupUserUpdate"in e)||e.groupUserUpdate,this.send_group_manager_update=!("groupManagerUpdate"in e)||e.groupManagerUpdate,this.send_user_create=!("userCreate"in e)||e.userCreate,this.send_user_recover=!("userRecover"in e)||e.userRecover,this.send_user_recoverComplete=!("userRecoverComplete"in e)||e.userRecoverComplete,this.send_admin_user_setup_completed=!("userSetupCompleteAdmin"in e)||e.userSetupCompleteAdmin,this.send_admin_user_recover_abort=!("userRecoverAbortAdmin"in e)||e.userRecoverAbortAdmin,this.send_admin_user_recover_complete=!("userRecoverCompleteAdmin"in e)||e.userRecoverCompleteAdmin,this.send_accountRecovery_request_user=!("accountRecoveryRequestUser"in e)||e.accountRecoveryRequestUser,this.send_accountRecovery_request_admin=!("accountRecoveryRequestAdmin"in e)||e.accountRecoveryRequestAdmin,this.send_accountRecovery_request_guessing=!("accountRecoveryRequestGuessing"in e)||e.accountRecoveryRequestGuessing,this.send_accountRecovery_response_user_approved=!("accountRecoveryRequestUserApproved"in e)||e.accountRecoveryRequestUserApproved,this.send_accountRecovery_response_user_rejected=!("accountRecoveryRequestUserRejected"in e)||e.accountRecoveryRequestUserRejected,this.send_accountRecovery_response_created_admin=!("accountRecoveryRequestCreatedAmin"in e)||e.accountRecoveryRequestCreatedAmin,this.send_accountRecovery_response_created_allAdmins=!("accountRecoveryRequestCreatedAllAdmins"in e)||e.accountRecoveryRequestCreatedAllAdmins,this.send_accountRecovery_policy_update=!("accountRecoveryRequestPolicyUpdate"in e)||e.accountRecoveryRequestPolicyUpdate,this.show_description=!("showDescription"in e)||e.showDescription,this.show_secret=!("showSecret"in e)||e.showSecret,this.show_uri=!("showUri"in e)||e.showUri,this.show_username=!("showUsername"in e)||e.showUsername,this.show_comment=!("showComment"in e)||e.showComment}}(this.state.settings);await this.emailNotificationService.save(e),await this.findEmailNotificationSettings()}render(){return n.createElement(At.Provider,{value:this.state},this.props.children)}}zt.propTypes={context:s().any,children:s().any};const Dt=R(zt);function Tt(e){return class extends n.Component{render(){return n.createElement(At.Consumer,null,(t=>n.createElement(e,Rt({adminEmailNotificationContext:t},this.props))))}}}class jt extends n.Component{constructor(e){super(e),this.bindCallbacks()}async handleSaveClick(){try{await this.props.adminEmailNotificationContext.save(),this.handleSaveSuccess()}catch(e){this.handleSaveError(e)}finally{this.props.adminEmailNotificationContext.setProcessing(!1)}}isSaveEnabled(){return!this.props.adminEmailNotificationContext.isProcessing()&&this.props.adminEmailNotificationContext.hasSettingsChanges()}bindCallbacks(){this.handleSaveClick=this.handleSaveClick.bind(this)}async handleSaveSuccess(){await this.props.actionFeedbackContext.displaySuccess(this.props.t("The email notification settings were updated."))}async handleSaveError(e){"UserAbortsOperationError"!==e.name&&(console.error(e),await this.handleError(e))}async handleError(e){await this.props.actionFeedbackContext.displayError(e.message)}render(){return n.createElement("div",{className:"col2_3 actions-wrapper"},n.createElement("div",{className:"actions"},n.createElement("div",null,n.createElement("li",null,n.createElement("a",{className:"button "+(this.isSaveEnabled()?"":"disabled"),onClick:this.handleSaveClick},n.createElement(le,{name:"save"}),n.createElement("span",null,n.createElement(v.c,null,"Save settings")))))))}}jt.propTypes={adminEmailNotificationContext:s().object,actionFeedbackContext:s().object,t:s().func};const Ut=Tt(d((0,k.Z)("common")(jt)));class _t extends n.Component{constructor(e){super(e),this.bindCallbacks()}async componentDidMount(){this.props.administrationWorkspaceContext.setDisplayAdministrationWorkspaceAction(Ut),this.props.adminEmailNotificationContext.findEmailNotificationSettings()}componentWillUnmount(){this.props.administrationWorkspaceContext.resetDisplayAdministrationWorkspaceAction(),this.props.adminEmailNotificationContext.clearContext()}bindCallbacks(){this.handleInputChange=this.handleInputChange.bind(this)}handleInputChange(e){const t=e.target.checked,a=e.target.name;this.props.adminEmailNotificationContext.setSettings(a,t)}hasAllInputDisabled(){return this.props.adminEmailNotificationContext.isProcessing()}hasDatabaseSetting(){return this.props.adminEmailNotificationContext.getSettings().hasDatabaseSetting}hasFileConfigSetting(){return this.props.adminEmailNotificationContext.getSettings().hasFileConfigSetting}canUseFolders(){return this.props.context.siteSettings.canIUse("folders")}canUseAccountRecovery(){return this.props.context.siteSettings.canIUse("accountRecovery")}render(){const e=this.props.adminEmailNotificationContext.getSettings();return n.createElement("div",{className:"row"},n.createElement("div",{className:"email-notification-settings col8 main-column"},e&&this.hasDatabaseSetting()&&this.hasFileConfigSetting()&&n.createElement("div",{className:"warning message",id:"email-notification-setting-overridden-banner"},n.createElement("p",null,n.createElement(v.c,null,"Settings have been found in your database as well as in your passbolt.php (or environment variables).")," ",n.createElement(v.c,null,"The settings displayed in the form below are the one stored in your database and have precedence over others."))),e&&!this.hasDatabaseSetting()&&this.hasFileConfigSetting()&&n.createElement("div",{className:"warning message",id:"email-notification-fileconfig-exists-banner"},n.createElement("p",null,n.createElement(v.c,null,"You seem to have Email Notification Settings defined in your passbolt.php (or via environment variables).")," ",n.createElement(v.c,null,"Submitting the form will overwrite those settings with the ones you choose in the form below."))),n.createElement("h3",null,n.createElement(v.c,null,"Email delivery")),n.createElement("p",null,n.createElement(v.c,null,"In this section you can choose which email notifications will be sent.")),n.createElement("div",{className:"section"},n.createElement("div",{className:"password-section"},n.createElement("label",null,n.createElement(v.c,null,"Passwords")),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"passwordCreate",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.passwordCreate,id:"send-password-create-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"send-password-create-toggle-button"},n.createElement(v.c,null,"When a password is created, notify its creator."))),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"passwordUpdate",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.passwordUpdate,id:"send-password-update-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"send-password-update-toggle-button"},n.createElement(v.c,null,"When a password is updated, notify the users who have access to it."))),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"passwordDelete",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.passwordDelete,id:"send-password-delete-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"send-password-delete-toggle-button"},n.createElement(v.c,null,"When a password is deleted, notify the users who had access to it."))),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"passwordShare",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.passwordShare,id:"send-password-share-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"send-password-share-toggle-button"},n.createElement(v.c,null,"When a password is shared, notify the users who gain access to it.")))),this.canUseFolders()&&n.createElement("div",{className:"folder-section"},n.createElement("label",null,n.createElement(v.c,null,"Folders")),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"folderCreate",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.folderCreate,id:"send-folder-create-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"send-folder-create-toggle-button"},n.createElement(v.c,null,"When a folder is created, notify its creator."))),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"folderUpdate",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.folderUpdate,id:"send-folder-update-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"send-folder-update-toggle-button"},n.createElement(v.c,null,"When a folder is updated, notify the users who have access to it."))),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"folderDelete",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.folderDelete,id:"send-folder-delete-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"send-folder-delete-toggle-button"},n.createElement(v.c,null,"When a folder is deleted, notify the users who had access to it."))),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"folderShare",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.folderShare,id:"send-folder-share-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"send-folder-share-toggle-button"},n.createElement(v.c,null,"When a folder is shared, notify the users who gain access to it."))))),n.createElement("div",{className:"section"},n.createElement("div",{className:"comment-section"},n.createElement("label",null,n.createElement(v.c,null,"Comments")),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"commentAdd",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.commentAdd,id:"send-comment-add-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"send-comment-add-toggle-button"},n.createElement(v.c,null,"When a comment is posted on a password, notify the users who have access to this password."))))),n.createElement("div",{className:"section"},n.createElement("div",{className:"group-section"},n.createElement("label",null,n.createElement(v.c,null,"Group membership")),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"groupDelete",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.groupDelete,id:"send-group-delete-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"send-group-delete-toggle-button"},n.createElement(v.c,null,"When a group is deleted, notify the users who were members of it."))),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"groupUserAdd",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.groupUserAdd,id:"send-group-user-add-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"send-group-user-add-toggle-button"},n.createElement(v.c,null,"When users are added to a group, notify them."))),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"groupUserDelete",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.groupUserDelete,id:"send-group-user-delete-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"send-group-user-delete-toggle-button"},n.createElement(v.c,null,"When users are removed from a group, notify them."))),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"groupUserUpdate",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.groupUserUpdate,id:"send-group-user-update-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"send-group-user-update-toggle-button"},n.createElement(v.c,null,"When user roles change in a group, notify the corresponding users.")))),n.createElement("div",{className:"group-admin-section"},n.createElement("label",null,n.createElement(v.c,null,"Group manager")),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"groupManagerUpdate",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.groupManagerUpdate,id:"send-group-manager-update-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"send-group-manager-update-toggle-button"},n.createElement(v.c,null,"When members of a group change, notify the group manager(s)."))))),n.createElement("h3",null,n.createElement(v.c,null,"Registration & Recovery")),n.createElement("div",{className:"section"},n.createElement("div",{className:"admin-section"},n.createElement("label",null,n.createElement(v.c,null,"Admin")),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"userSetupCompleteAdmin",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.userSetupCompleteAdmin,id:"user-setup-complete-admin-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"user-setup-complete-admin-toggle-button"},n.createElement(v.c,null,"When a user completed a setup, notify all the administrators."))),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"userRecoverCompleteAdmin",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.userRecoverCompleteAdmin,id:"user-recover-complete-admin-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"user-recover-complete-admin-toggle-button"},n.createElement(v.c,null,"When a user completed a recover, notify all the administrators."))),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"userRecoverAbortAdmin",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.userRecoverAbortAdmin,id:"user-recover-abort-admin-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"user-recover-abort-admin-toggle-button"},n.createElement(v.c,null,"When a user aborted a recover, notify all the administrators.")))),n.createElement("div",{className:"user-section"},n.createElement("label",null,n.createElement(v.c,null,"User")),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"userCreate",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.userCreate,id:"send-user-create-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"send-user-create-toggle-button"},n.createElement(v.c,null,"When new users are invited to passbolt, notify them."))),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"userRecover",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.userRecover,id:"send-user-recover-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"send-user-recover-toggle-button"},n.createElement(v.c,null,"When users try to recover their account, notify them."))),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"userRecoverComplete",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.userRecoverComplete,id:"user-recover-complete-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"user-recover-complete-toggle-button"},n.createElement(v.c,null,"When users completed the recover of their account, notify them."))))),this.canUseAccountRecovery()&&n.createElement(n.Fragment,null,n.createElement("h3",null,n.createElement(v.c,null,"Account recovery")),n.createElement("div",{className:"section"},n.createElement("div",{className:"admin-section"},n.createElement("label",null,n.createElement(v.c,null,"Admin")),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"accountRecoveryRequestAdmin",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.accountRecoveryRequestAdmin,id:"account-recovery-request-admin-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"account-recovery-request-admin-toggle-button"},n.createElement(v.c,null,"When an account recovery is requested, notify all the administrators."))),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"accountRecoveryRequestPolicyUpdate",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.accountRecoveryRequestPolicyUpdate,id:"account-recovery-policy-update-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"account-recovery-policy-update-toggle-button"},n.createElement(v.c,null,"When an account recovery policy is updated, notify all the administrators."))),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"accountRecoveryRequestCreatedAmin",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.accountRecoveryRequestCreatedAmin,id:"account-recovery-response-created-admin-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"account-recovery-response-created-admin-toggle-button"},n.createElement(v.c,null,"When an administrator answered to an account recovery request, notify the administrator at the origin of the action."))),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"accountRecoveryRequestCreatedAllAdmins",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.accountRecoveryRequestCreatedAllAdmins,id:"account-recovery-response-created-all-admin-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"account-recovery-response-created-all-admin-toggle-button"},n.createElement(v.c,null,"When an administrator answered to an account recovery request, notify all the administrators.")))),n.createElement("div",{className:"user-section"},n.createElement("label",null,n.createElement(v.c,null,"User")),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"accountRecoveryRequestUser",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.accountRecoveryRequestUser,id:"account-recovery-request-user-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"account-recovery-request-user-toggle-button"},n.createElement(v.c,null,"When an account recovery is requested, notify the user."))),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"accountRecoveryRequestUserApproved",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.accountRecoveryRequestUserApproved,id:"account-recovery-response-user-approved-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"account-recovery-response-user-approved-toggle-button"},n.createElement(v.c,null,"When an account recovery is approved, notify the user."))),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"accountRecoveryRequestUserRejected",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.accountRecoveryRequestUserRejected,id:"account-recovery-response-user-rejected-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"account-recovery-response-user-rejected-toggle-button"},n.createElement(v.c,null,"When an account recovery is rejected, notify the user.")))))),n.createElement("h3",null,n.createElement(v.c,null,"Email content visibility")),n.createElement("p",null,n.createElement(v.c,null,"In this section you can adjust the composition of the emails, e.g. which information will be included in the notification.")),n.createElement("div",{className:"section"},n.createElement("div",{className:"password-section"},n.createElement("label",null,n.createElement(v.c,null,"Passwords")),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"showUsername",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.showUsername,id:"show-username-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"show-username-toggle-button"},n.createElement(v.c,null,"Username"))),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"showUri",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.showUri,id:"show-uri-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"show-uri-toggle-button"},n.createElement(v.c,null,"URI"))),n.createElement("span",{className:"input toggle-switch form-element ready"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"showSecret",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.showSecret,id:"show-secret-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"show-secret-toggle-button"},n.createElement(v.c,null,"Encrypted secret"))),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"showDescription",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.showDescription,id:"show-description-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"show-description-toggle-button"},n.createElement(v.c,null,"Description")))),n.createElement("div",{className:"comment-section"},n.createElement("label",null,n.createElement(v.c,null,"Comments")),n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"showComment",disabled:this.hasAllInputDisabled(),onChange:this.handleInputChange,checked:e.showComment,id:"show-comment-toggle-button"}),n.createElement("label",{className:"text",htmlFor:"show-comment-toggle-button"},n.createElement(v.c,null,"Comment content")))))),n.createElement("div",{className:"col4 last"},n.createElement("div",{className:"sidebar-help"},n.createElement("h3",null,n.createElement(v.c,null,"Need some help?")),n.createElement("p",null,n.createElement(v.c,null,"For more information about email notification, checkout the dedicated page on the help website.")),n.createElement("a",{className:"button",href:"https://help.passbolt.com/configure/notification/email",target:"_blank",rel:"noopener noreferrer"},n.createElement(le,{name:"document"}),n.createElement("span",null,n.createElement(v.c,null,"Read the documentation"))))))}}_t.propTypes={context:s().any,administrationWorkspaceContext:s().object,adminEmailNotificationContext:s().object};const Pt=R(Tt(F((0,k.Z)("common")(_t))));class Mt extends n.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks(),this.createReferences()}bindCallbacks(){this.handleChangeEvent=this.handleChangeEvent.bind(this),this.handleSubmitButtonFocus=this.handleSubmitButtonFocus.bind(this),this.handleSubmitButtonBlur=this.handleSubmitButtonBlur.bind(this),this.handleOnSubmitEvent=this.handleOnSubmitEvent.bind(this)}get defaultState(){return{hasSubmitButtonFocus:!1}}createReferences(){this.searchInputRef=n.createRef()}handleChangeEvent(e){const t=e.target.value;this.props.onSearch&&this.props.onSearch(t)}handleSubmitButtonFocus(){this.setState({hasSubmitButtonFocus:!0})}handleSubmitButtonBlur(){this.setState({hasSubmitButtonFocus:!1})}handleOnSubmitEvent(e){if(e.preventDefault(),this.props.onSearch){const e=this.searchInputRef.current.value;this.props.onSearch(e)}}render(){return n.createElement("div",{className:"col2 search-wrapper"},n.createElement("form",{className:"search",onSubmit:this.handleOnSubmitEvent},n.createElement("div",{className:`input search required ${this.state.hasSubmitButtonFocus?"no-focus":""} ${this.props.disabled?"disabled":""}`},n.createElement("label",null,n.createElement(v.c,null,"Search")),n.createElement("input",{ref:this.searchInputRef,className:"required",type:"search",disabled:this.props.disabled?"disabled":"",onChange:this.handleChangeEvent,placeholder:this.props.placeholder||this.props.t("Search"),value:this.props.value}),n.createElement("div",{className:"search-button-wrapper"},n.createElement("button",{className:"button button-transparent",value:this.props.t("Search"),onBlur:this.handleSubmitButtonBlur,onFocus:this.handleSubmitButtonFocus,type:"submit",disabled:this.props.disabled?"disabled":""},n.createElement(le,{name:"search"}),n.createElement("span",{className:"visuallyhidden"},n.createElement(v.c,null,"Search")))))))}}Mt.propTypes={disabled:s().bool,onSearch:s().func,placeholder:s().string,value:s().string,t:s().func},Mt.defaultProps={disabled:!1};const Ft=(0,k.Z)("common")(Mt);var qt=a(7009);class Ot extends n.Component{render(){return n.createElement("div",{className:"illustration icon-feedback"},n.createElement("div",{className:this.props.name}))}}Ot.defaultProps={},Ot.propTypes={name:s().string};const Wt=Ot;class Kt extends n.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks()}get defaultState(){return{showErrorDetails:!1}}bindCallbacks(){this.handleKeyDown=this.handleKeyDown.bind(this),this.handleErrorDetailsToggle=this.handleErrorDetailsToggle.bind(this)}componentDidMount(){document.addEventListener("keydown",this.handleKeyDown,{capture:!0})}componentWillUnmount(){document.removeEventListener("keydown",this.handleKeyDown,{capture:!0})}getTitle(){return this.props.title?this.props.title:this.props.t("There was an unexpected error...")}getMessage(){return this.props.error.message}handleKeyDown(e){27!==e.keyCode&&13!==e.keyCode||(e.stopPropagation(),this.props.onClose())}handleErrorDetailsToggle(){this.setState({showErrorDetails:!this.state.showErrorDetails})}get hasErrorDetails(){return Boolean(this.props.error.data?.body)||Boolean(this.props.error.details)}formatErrors(){const e=this.props.error?.details||this.props.error?.data;return JSON.stringify(e,null,4)}render(){return n.createElement(tt,{className:"dialog-wrapper error-dialog",onClose:this.props.onClose,title:this.getTitle()},n.createElement("div",{className:"form-content"},n.createElement("p",null,this.getMessage()),this.hasErrorDetails&&n.createElement("div",{className:"accordion error-details"},n.createElement("div",{className:"accordion-header"},n.createElement("a",{onClick:this.handleErrorDetailsToggle},n.createElement(v.c,null,"Error details"),n.createElement(le,{baseline:!0,name:this.state.showErrorDetails?"caret-up":"caret-down"}))),this.state.showErrorDetails&&n.createElement("div",{className:"accordion-content"},n.createElement("div",{className:"input text"},n.createElement("label",{htmlFor:"js_field_debug",className:"visuallyhidden"},n.createElement(v.c,null,"Error details")),n.createElement("textarea",{id:"js_field_debug",defaultValue:this.formatErrors(),readOnly:!0}))))),n.createElement("div",{className:"submit-wrapper clearfix"},n.createElement("button",{type:"button",className:"button primary warning",onClick:this.props.onClose},"Ok")))}}Kt.propTypes={title:s().string,error:s().object.isRequired,onClose:s().func,t:s().func};const Vt=(0,k.Z)("common")(Kt);class Ht extends n.Component{constructor(e){super(e),this.bindCallbacks()}bindCallbacks(){this.getClassName=this.getClassName.bind(this)}getClassName(){let e="button primary";return this.props.warning&&(e+=" warning"),this.props.disabled&&(e+=" disabled"),this.props.processing&&(e+=" processing"),this.props.big&&(e+=" big"),this.props.medium&&(e+=" medium"),this.props.fullWidth&&(e+=" full-width"),e}render(){return n.createElement("button",{type:"submit",className:this.getClassName(),disabled:this.props.disabled},this.props.value||n.createElement(v.c,null,"Save"),this.props.processing&&n.createElement(le,{name:"spinner"}))}}Ht.defaultProps={warning:!1},Ht.propTypes={processing:s().bool,disabled:s().bool,value:s().string,warning:s().bool,big:s().bool,medium:s().bool,fullWidth:s().bool};const Bt=(0,k.Z)("common")(Ht),Gt=class{constructor(e){this.customerId=e?.customer_id||"",this.subscriptionId=e?"subscription_id"in e?e.subscription_id:"N/A":"",this.users=e?.users||null,this.email=e?"email"in e?e.email:"N/A":"",this.expiry=e?.expiry||null,this.created=e?.created||null,this.data=e?.data||null}};function $t(){return $t=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},$t.apply(this,arguments)}const Zt=n.createContext({getSubscription:()=>{},findSubscriptionKey:()=>{},isProcessing:()=>{},setProcessing:()=>{},getActiveUsers:()=>{},clearContext:()=>{}});class Yt extends n.Component{constructor(e){super(e),this.state=this.defaultState}get defaultState(){return{subscription:new Gt,processing:!0,getSubscription:this.getSubscription.bind(this),findSubscriptionKey:this.findSubscriptionKey.bind(this),isProcessing:this.isProcessing.bind(this),setProcessing:this.setProcessing.bind(this),getActiveUsers:this.getActiveUsers.bind(this),clearContext:this.clearContext.bind(this)}}async findSubscriptionKey(){this.setProcessing(!0);let e=new Gt;try{const t=await this.props.context.onGetSubscriptionKeyRequested();e=new Gt(t)}catch(t){"PassboltSubscriptionError"===t.name&&(e=new Gt(t.subscription))}finally{this.setState({subscription:e}),this.setProcessing(!1)}}async getActiveUsers(){return(await this.props.context.port.request("passbolt.users.get-all")).filter((e=>e.active)).length}getSubscription(){return this.state.subscription}isProcessing(){return this.state.processing}setProcessing(e){this.setState({processing:e})}clearContext(){const{subscription:e,processing:t}=this.defaultState;this.setState({subscription:e,processing:t})}render(){return n.createElement(Zt.Provider,{value:this.state},this.props.children)}}function Jt(e){return class extends n.Component{render(){return n.createElement(Zt.Consumer,null,(t=>n.createElement(e,$t({adminSubcriptionContext:t},this.props))))}}}Yt.propTypes={context:s().any,children:s().any},R(Yt);class Qt extends n.Component{constructor(e){super(e),this.state=this.getDefaultState(),this.initEventHandlers(),this.createInputRef()}getDefaultState(){return{selectedFile:null,key:"",keyError:"",processing:!1,hasBeenValidated:!1}}initEventHandlers(){this.handleCloseClick=this.handleCloseClick.bind(this),this.handleFormSubmit=this.handleFormSubmit.bind(this),this.handleInputChange=this.handleInputChange.bind(this),this.handleKeyInputKeyUp=this.handleKeyInputKeyUp.bind(this),this.handleSelectSubscriptionKeyFile=this.handleSelectSubscriptionKeyFile.bind(this),this.handleSelectFile=this.handleSelectFile.bind(this)}createInputRef(){this.keyInputRef=n.createRef(),this.fileUploaderRef=n.createRef()}componentDidMount(){this.setState({key:this.props.context.editSubscriptionKey.key||""})}async handleFormSubmit(e){e.preventDefault(),this.state.processing||await this.save()}handleInputChange(e){const t=e.target,a=t.value,n=t.name;this.setState({[n]:a})}handleKeyInputKeyUp(){if(this.state.hasAlreadyBeenValidated){const e=this.validateNameInput();this.setState(e)}}handleCloseClick(){this.props.context.setContext({editSubscriptionKey:null}),this.props.onClose()}handleSelectFile(){this.fileUploaderRef.current.click()}get selectedFilename(){return this.state.selectedFile?this.state.selectedFile.name:""}async handleSelectSubscriptionKeyFile(e){const[t]=e.target.files,a=await this.readSubscriptionKeyFile(t);this.setState({key:a,selectedFile:t}),this.state.hasBeenValidated&&await this.validate()}readSubscriptionKeyFile(e){const t=new FileReader;return new Promise(((a,n)=>{t.onloadend=()=>{try{a(t.result)}catch(e){n(e)}},t.readAsText(e)}))}async save(){if(this.state.processing)return;if(await this.setState({hasBeenValidated:!0}),await this.toggleProcessing(),!await this.validate())return this.handleValidateError(),void await this.toggleProcessing();const e={data:this.state.key};try{await this.props.administrationWorkspaceContext.onUpdateSubscriptionKeyRequested(e),await this.handleSaveSuccess(),await this.props.adminSubcriptionContext.findSubscriptionKey()}catch(e){await this.toggleProcessing(),this.handleSaveError(e),this.focusFieldError()}}handleValidateError(){this.focusFieldError()}async handleSaveSuccess(){await this.props.actionFeedbackContext.displaySuccess(this.translate("The subscription key has been updated successfully.")),this.props.administrationWorkspaceContext.onMustRefreshSubscriptionKey(),this.props.context.setContext({editSubscriptionKey:null,refreshSubscriptionAnnouncement:!0}),this.props.onClose()}async handleSaveError(e){if("PassboltSubscriptionError"===e.name)this.setState({keyError:e.message});else if("EntityValidationError"===e.name)this.setState({keyError:this.translate("The subscription key is invalid.")});else if("PassboltApiFetchError"===e.name&&e.data&&400===e.data.code)this.setState({keyError:e.message});else{console.error(e);const t={error:e};this.props.dialogContext.open(Vt,t)}}focusFieldError(){this.state.keyError&&this.keyInputRef.current.focus()}validateKeyInput(){const e=this.state.key.trim();let t="";return e.length||(t=this.translate("A subscription key is required.")),new Promise((e=>{this.setState({keyError:t},e)}))}async validate(){return this.setState({keyError:""}),await this.validateKeyInput(),""===this.state.keyError}async toggleProcessing(){await this.setState({processing:!this.state.processing})}hasAllInputDisabled(){return this.state.processing}get translate(){return this.props.t}render(){return n.createElement(tt,{title:this.translate("Edit subscription key"),onClose:this.handleCloseClick,disabled:this.state.processing,className:"edit-subscription-dialog"},n.createElement("form",{onSubmit:this.handleFormSubmit,noValidate:!0},n.createElement("div",{className:"form-content"},n.createElement("div",{className:`input textarea required ${this.state.keyError?"error":""} ${this.hasAllInputDisabled()?"disabled":""}`},n.createElement("label",{htmlFor:"edit-tag-form-name"},n.createElement(v.c,null,"Subscription key")),n.createElement("textarea",{id:"edit-subscription-form-key",name:"key",value:this.state.key,onKeyUp:this.handleKeyInputKeyUp,onChange:this.handleInputChange,disabled:this.hasAllInputDisabled(),ref:this.keyInputRef,className:"required full_report",required:"required",autoComplete:"off",autoFocus:!0})),n.createElement("div",{className:"input file "+(this.hasAllInputDisabled()?"disabled":"")},n.createElement("input",{type:"file",ref:this.fileUploaderRef,disabled:this.hasAllInputDisabled(),onChange:this.handleSelectSubscriptionKeyFile}),n.createElement("div",{className:"input-file-inline"},n.createElement("input",{type:"text",disabled:!0,placeholder:this.translate("No key file selected"),value:this.selectedFilename}),n.createElement("button",{type:"button",className:"button primary",onClick:this.handleSelectFile,disabled:this.hasAllInputDisabled()},n.createElement("span",null,n.createElement(v.c,null,"Choose a file")))),this.state.keyError&&n.createElement("div",{className:"key error-message"},this.state.keyError))),n.createElement("div",{className:"submit-wrapper clearfix"},n.createElement(nt,{disabled:this.hasAllInputDisabled(),onClick:this.handleCloseClick}),n.createElement(Bt,{disabled:this.hasAllInputDisabled(),processing:this.state.processing,value:this.translate("Save")}))))}}Qt.propTypes={context:s().any,onClose:s().func,actionFeedbackContext:s().any,adminSubcriptionContext:s().object,dialogContext:s().any,administrationWorkspaceContext:s().any,t:s().func};const Xt=R(Jt(F(d(g((0,k.Z)("common")(Qt))))));class ea{constructor(e){this.context=e.context,this.dialogContext=e.dialogContext,this.subscriptionContext=e.adminSubcriptionContext}static getInstance(e){return this.instance||(this.instance=new ea(e)),this.instance}static killInstance(){this.instance=null}async editSubscription(){const e={key:this.subscriptionContext.getSubscription().data};this.context.setContext({editSubscriptionKey:e}),this.dialogContext.open(Xt)}}const ta=ea;class aa extends n.Component{constructor(e){super(e),this.bindCallbacks(),this.subscriptionActionService=ta.getInstance(this.props)}bindCallbacks(){this.handleEditSubscriptionClick=this.handleEditSubscriptionClick.bind(this)}handleEditSubscriptionClick(){this.subscriptionActionService.editSubscription()}render(){return n.createElement("div",{className:"col2_3 actions-wrapper"},n.createElement("div",{className:"actions"},n.createElement("div",null,n.createElement("li",null,n.createElement("a",{className:"button",onClick:this.handleEditSubscriptionClick},n.createElement(le,{name:"edit"}),n.createElement("span",null,n.createElement(v.c,null,"Update key")))))))}}aa.propTypes={context:s().object,dialogContext:s().object,adminSubscriptionContext:s().object,actionFeedbackContext:s().object,t:s().func};const na=d(g(Jt((0,k.Z)("common")(aa))));class oa extends n.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks(),this.subscriptionActionService=ta.getInstance(this.props)}get defaultState(){return{activeUsers:null}}async componentDidMount(){this.props.administrationWorkspaceContext.setDisplayAdministrationWorkspaceAction(na),this.findActiveUsers(),await this.findSubscriptionKey()}componentWillUnmount(){this.props.administrationWorkspaceContext.resetDisplayAdministrationWorkspaceAction(),this.props.adminSubcriptionContext.clearContext(),ta.killInstance(),this.mfaFormService=null}bindCallbacks(){this.handleRenewKey=this.handleRenewKey.bind(this),this.handleUpdateKey=this.handleUpdateKey.bind(this)}async findActiveUsers(){const e=await this.props.adminSubcriptionContext.getActiveUsers();this.setState({activeUsers:e})}async findSubscriptionKey(){this.props.adminSubcriptionContext.findSubscriptionKey()}handleRenewKey(){const e=this.props.adminSubcriptionContext.getSubscription();this.hasLimitUsersExceeded()?this.props.navigationContext.onGoToNewTab(`https://www.passbolt.com/subscription/ee/update/qty?subscription_id=${e.subscriptionId}&customer_id=${e.customerId}`):(this.hasSubscriptionKeyExpired()||this.hasSubscriptionKeyGoingToExpire())&&this.props.navigationContext.onGoToNewTab(`https://www.passbolt.com/subscription/ee/update/renew?subscription_id=${e.subscriptionId}&customer_id=${e.customerId}`)}handleUpdateKey(){this.subscriptionActionService.editSubscription()}hasSubscriptionKeyExpired(){return qt.ou.fromISO(this.props.adminSubcriptionContext.getSubscription().expiry)<qt.ou.now()}hasSubscriptionKeyGoingToExpire(){return qt.ou.fromISO(this.props.adminSubcriptionContext.getSubscription().expiry)<qt.ou.now().plus({days:30})&&!this.hasSubscriptionKeyExpired()}hasSubscriptionKey(){return Boolean(this.props.adminSubcriptionContext.getSubscription().data)}hasLimitUsersExceeded(){return this.props.adminSubcriptionContext.getSubscription().users<this.state.activeUsers}hasSubscriptionToRenew(){return this.hasInvalidSubscription()||this.hasSubscriptionKeyGoingToExpire()}hasValidSubscription(){return this.hasSubscriptionKey()&&!this.hasLimitUsersExceeded()&&!this.hasSubscriptionKeyExpired()}hasInvalidSubscription(){return!this.hasSubscriptionKey()||this.hasLimitUsersExceeded()||this.hasSubscriptionKeyExpired()}formatDate(e){try{return qt.ou.fromISO(e).setLocale(this.props.context.locale).toLocaleString(qt.ou.DATE_SHORT)}catch(e){return""}}formatDateTimeAgo(e){const t=qt.ou.fromISO(e),a=t.diffNow().toMillis();return a>-1e3&&a<0?this.translate("Just now"):t.toRelative({locale:this.props.context.locale})}get translate(){return this.props.t}render(){const e=this.props.adminSubcriptionContext.getSubscription(),t=this.props.adminSubcriptionContext.isProcessing();return n.createElement("div",{className:"row"},!t&&n.createElement("div",{className:"subscription-key col8 main-column"},n.createElement("h3",null,n.createElement(v.c,null,"Subscription key details")),n.createElement("div",{className:"feedback-card"},this.hasValidSubscription()&&!this.hasSubscriptionKeyGoingToExpire()&&n.createElement(Wt,{name:"success"}),this.hasInvalidSubscription()&&n.createElement(Wt,{name:"error"}),this.hasValidSubscription()&&this.hasSubscriptionKeyGoingToExpire()&&n.createElement(Wt,{name:"warning"}),n.createElement("div",{className:"subscription-information"},!this.hasSubscriptionKey()&&n.createElement(n.Fragment,null,n.createElement("h4",{className:"no-border"},n.createElement(v.c,null,"Your subscription key is either missing or not valid.")),n.createElement("p",null,n.createElement(v.c,null,"Sorry your subscription is either missing or not readable."),n.createElement("br",null),n.createElement(v.c,null,"Update the subscription key and try again.")," ",n.createElement(v.c,null,"If this does not work get in touch with support."))),this.hasValidSubscription()&&this.hasSubscriptionKeyGoingToExpire()&&n.createElement("h4",{className:"no-border"},n.createElement(v.c,null,"Your subscription key is going to expire.")),this.hasSubscriptionKey()&&this.hasInvalidSubscription()&&n.createElement("h4",{className:"no-border"},n.createElement(v.c,null,"Your subscription key is not valid.")),this.hasValidSubscription()&&!this.hasSubscriptionKeyGoingToExpire()&&n.createElement("h4",{className:"no-border"},n.createElement(v.c,null,"Your subscription key is valid and up to date!")),this.hasSubscriptionKey()&&n.createElement("ul",null,n.createElement("li",{className:"customer-id"},n.createElement("span",{className:"label"},n.createElement(v.c,null,"Customer id:")),n.createElement("span",{className:"value"},e.customerId)),n.createElement("li",{className:"subscription-id"},n.createElement("span",{className:"label"},n.createElement(v.c,null,"Subscription id:")),n.createElement("span",{className:"value"},e.subscriptionId)),n.createElement("li",{className:"email"},n.createElement("span",{className:"label"},n.createElement(v.c,null,"Email:")),n.createElement("span",{className:"value"},e.email)),n.createElement("li",{className:"users"},n.createElement("span",{className:"label "+(this.hasLimitUsersExceeded()?"error":"")},n.createElement(v.c,null,"Users limit:")),n.createElement("span",{className:"value "+(this.hasLimitUsersExceeded()?"error":"")},e.users," (",n.createElement(v.c,null,"currently:")," ",this.state.activeUsers,")")),n.createElement("li",{className:"created"},n.createElement("span",{className:"label"},n.createElement(v.c,null,"Valid from:")),n.createElement("span",{className:"value"},this.formatDate(e.created))),n.createElement("li",{className:"expiry"},n.createElement("span",{className:`label ${this.hasSubscriptionKeyExpired()?"error":""} ${this.hasSubscriptionKeyGoingToExpire()?"warning":""}`},n.createElement(v.c,null,"Expires on:")),n.createElement("span",{className:`value ${this.hasSubscriptionKeyExpired()?"error":""} ${this.hasSubscriptionKeyGoingToExpire()?"warning":""}`},this.formatDate(e.expiry)," (",`${this.hasSubscriptionKeyExpired()?this.translate("expired "):""}${this.formatDateTimeAgo(e.expiry)}`,")"))),this.hasSubscriptionToRenew()&&n.createElement("div",{className:"actions-wrapper"},this.hasSubscriptionKey()&&n.createElement("button",{className:"button primary",type:"button",onClick:this.handleRenewKey},n.createElement(v.c,null,"Renew key")),!this.hasSubscriptionKey()&&n.createElement("button",{className:"button primary",type:"button",onClick:this.handleUpdateKey},n.createElement(v.c,null,"Update key")),n.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:"https://www.passbolt.com/contact"},n.createElement(v.c,null,"or, contact us")))))),!t&&n.createElement("div",{className:"col4 last"},n.createElement("div",{className:"sidebar-help"},n.createElement("h3",null,n.createElement(v.c,null,"Need help?")),n.createElement("p",null,n.createElement(v.c,null,"For any change or question related to your passbolt subscription, kindly contact our sales team.")),n.createElement("a",{className:"button",target:"_blank",rel:"noopener noreferrer",href:"https://www.passbolt.com/contact"},n.createElement(le,{name:"envelope"}),n.createElement("span",null,n.createElement(v.c,null,"Contact Sales"))))))}}oa.propTypes={context:s().any,navigationContext:s().any,administrationWorkspaceContext:s().object,adminSubcriptionContext:s().object,dialogContext:s().any,t:s().func};const ia=R(J(Jt(F(g((0,k.Z)("common")(oa))))));function sa(){return sa=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},sa.apply(this,arguments)}const ra=n.createContext({getCurrentLocale:()=>{},getLocale:()=>{},supportedLocales:()=>{},setLocale:()=>{},hasLocaleChanges:()=>{},findLocale:()=>{},save:()=>{},setProcessing:()=>{},isProcessing:()=>{},clearContext:()=>{}});class la extends n.Component{constructor(e){super(e),this.state=this.defaultState;const t=e.context.getApiClientOptions();this.internalisationService=new class{constructor(e){e.setResourceName("locale/settings"),this.apiClient=new xe(e)}async save(e){return(await this.apiClient.create(e)).body}}(t)}get defaultState(){return{currentLocale:null,locale:"en-UK",processing:!0,getCurrentLocale:this.getCurrentLocale.bind(this),getLocale:this.getLocale.bind(this),setLocale:this.setLocale.bind(this),findLocale:this.findLocale.bind(this),hasLocaleChanges:this.hasLocaleChanges.bind(this),isProcessing:this.isProcessing.bind(this),setProcessing:this.setProcessing.bind(this),save:this.save.bind(this),clearContext:this.clearContext.bind(this)}}findLocale(){this.setProcessing(!0);const e=this.props.context.siteSettings.locale;this.setState({currentLocale:e}),this.setState({locale:e}),this.setProcessing(!1)}getCurrentLocale(){return this.state.currentLocale}getLocale(){return this.state.locale}async setLocale(e){await this.setState({locale:e})}isProcessing(){return this.state.processing}setProcessing(e){this.setState({processing:e})}hasLocaleChanges(){return this.state.locale!==this.state.currentLocale}clearContext(){const{currentLocale:e,locale:t,processing:a}=this.defaultState;this.setState({currentLocale:e,locale:t,processing:a})}async save(){this.setProcessing(!0),await this.internalisationService.save({value:this.state.locale}),this.props.context.onRefreshLocaleRequested(this.state.locale),this.findLocale()}render(){return n.createElement(ra.Provider,{value:this.state},this.props.children)}}la.propTypes={context:s().any,children:s().any};const ca=R(la);function ma(e){return class extends n.Component{render(){return n.createElement(ra.Consumer,null,(t=>n.createElement(e,sa({adminInternationalizationContext:t},this.props))))}}}class da extends n.Component{constructor(e){super(e),this.bindCallbacks()}async handleSaveClick(){try{await this.props.adminInternationalizationContext.save(),this.handleSaveSuccess()}catch(e){this.handleSaveError(e)}finally{this.props.adminInternationalizationContext.setProcessing(!1)}}isSaveEnabled(){return!this.props.adminInternationalizationContext.isProcessing()&&this.props.adminInternationalizationContext.hasLocaleChanges()}bindCallbacks(){this.handleSaveClick=this.handleSaveClick.bind(this)}async handleSaveSuccess(){await this.props.actionFeedbackContext.displaySuccess(this.props.t("The internationalization settings were updated."))}async handleSaveError(e){"UserAbortsOperationError"!==e.name&&(console.error(e),await this.handleError(e))}async handleError(e){await this.props.actionFeedbackContext.displayError(e.message)}render(){return n.createElement("div",{className:"col2_3 actions-wrapper"},n.createElement("div",{className:"actions"},n.createElement("div",null,n.createElement("li",null,n.createElement("a",{className:"button "+(this.isSaveEnabled()?"":"disabled"),onClick:this.handleSaveClick},n.createElement(le,{name:"save"}),n.createElement("span",null,n.createElement(v.c,null,"Save settings")))))))}}da.propTypes={context:s().object,adminInternationalizationContext:s().object,actionFeedbackContext:s().object,t:s().func};const ha=ma(d((0,k.Z)("common")(da)));class ua extends n.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks()}async componentDidMount(){this.props.administrationWorkspaceContext.setDisplayAdministrationWorkspaceAction(ha),this.props.adminInternationalizationContext.findLocale()}componentWillUnmount(){this.props.administrationWorkspaceContext.resetDisplayAdministrationWorkspaceAction(),this.props.adminInternationalizationContext.clearContext()}bindCallbacks(){this.handleInputChange=this.handleInputChange.bind(this)}handleInputChange(e){this.props.adminInternationalizationContext.setLocale(e.target.value)}get supportedLocales(){return this.props.context.siteSettings.supportedLocales?this.props.context.siteSettings.supportedLocales.map((e=>({value:e.locale,label:e.label}))):[]}render(){const e=this.props.adminInternationalizationContext.getLocale();return n.createElement("div",{className:"row"},n.createElement("div",{className:"internationalisation-settings col7 main-column"},n.createElement("h3",null,n.createElement(v.c,null,"Internationalisation")),n.createElement("form",{className:"form"},n.createElement("div",{className:"select-wrapper input"},n.createElement("label",{htmlFor:"app-locale-input"},n.createElement(v.c,null,"Language")),n.createElement(Ze,{className:"medium",id:"locale-input",name:"locale",items:this.supportedLocales,value:e,onChange:this.handleInputChange}),n.createElement("p",null,n.createElement(v.c,null,"The default language of the organisation."))))),n.createElement("div",{className:"col4 last"},n.createElement("div",{className:"sidebar-help"},n.createElement("h3",null,n.createElement(v.c,null,"Want to contribute?")),n.createElement("p",null,n.createElement(v.c,null,"Your language is missing or you discovered an error in the translation, help us to improve passbolt.")),n.createElement("a",{className:"button",href:"https://help.passbolt.com/contribute/translation",target:"_blank",rel:"noopener noreferrer"},n.createElement(le,{name:"heart-o"}),n.createElement("span",null,n.createElement(v.c,null,"Contribute"))))))}}ua.propTypes={context:s().object,administrationWorkspaceContext:s().object,adminInternationalizationContext:s().object,t:s().func};const pa=R(ma(F((0,k.Z)("common")(ua))));function ga(){return ga=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},ga.apply(this,arguments)}const ba=n.createContext({currentPolicy:null,policyChanges:{},findAccountRecoveryPolicy:()=>{},getKeyInfo:()=>{},changePolicy:()=>{},changePublicKey:()=>{},hasPolicyChanges:()=>{},resetChanges:()=>{},downloadPrivateKey:()=>{},save:()=>{}});class fa extends n.Component{constructor(e){super(e),this.state=this.defaultState}get defaultState(){return{currentPolicy:null,policyChanges:{},findAccountRecoveryPolicy:this.findAccountRecoveryPolicy.bind(this),getKeyInfo:this.getKeyInfo.bind(this),changePolicy:this.changePolicy.bind(this),changePublicKey:this.changePublicKey.bind(this),hasPolicyChanges:this.hasPolicyChanges.bind(this),resetChanges:this.resetChanges.bind(this),downloadPrivateKey:this.downloadPrivateKey.bind(this),save:this.save.bind(this)}}async findAccountRecoveryPolicy(){if(!this.props.context.siteSettings.canIUse("accountRecovery"))return;const e=await this.props.context.port.request("passbolt.account-recovery.get-organization-policy");this.setState({currentPolicy:e})}async changePolicy(e){const t=this.state.policyChanges;e===this.state.currentPolicy?.policy?delete t.policy:t.policy=e,"disabled"===e&&delete t.publicKey,await this.setState({policyChanges:t})}async changePublicKey(e){const t={...this.state.policyChanges,publicKey:e};await this.setState({policyChanges:t})}hasPolicyChanges(){return Boolean(this.state.policyChanges?.publicKey)||Boolean(this.state.policyChanges?.policy)}async getKeyInfo(e){return e?this.props.context.port.request("passbolt.keyring.get-key-info",e):null}async resetChanges(){await this.setState({policyChanges:{}})}async downloadPrivateKey(e){await this.props.context.port.request("passbolt.account-recovery.download-organization-generated-key",e)}async save(e){const t=this.buildPolicySaveDto(),a=await this.props.context.port.request("passbolt.account-recovery.save-organization-policy",t,e);this.setState({currentPolicy:a,policyChanges:{}}),this.props.accountRecoveryContext.reloadAccountRecoveryPolicy()}buildPolicySaveDto(){const e={};return this.state.policyChanges.policy&&(e.policy=this.state.policyChanges.policy),this.state.policyChanges.publicKey&&(e.account_recovery_organization_public_key={armored_key:this.state.policyChanges.publicKey}),e}render(){return n.createElement(ba.Provider,{value:this.state},this.props.children)}}function ya(e){return class extends n.Component{render(){return n.createElement(ba.Consumer,null,(t=>n.createElement(e,ga({adminAccountRecoveryContext:t},this.props))))}}}function va(){return va=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},va.apply(this,arguments)}fa.propTypes={context:s().any,children:s().any,accountRecoveryContext:s().object},R(se(fa));const ka=n.createContext({workflows:[],start:()=>{},stop:()=>{}});class Ea extends n.Component{constructor(e){super(e),this.state=this.defaultState}get defaultState(){return{workflows:[],start:(e,t)=>{const a=(0,r.Z)();return this.setState({workflows:[...this.state.workflows,{key:a,Workflow:e,workflowProps:t}]}),a},stop:async e=>await this.setState({workflows:this.state.workflows.filter((t=>e!==t.key))})}}render(){return n.createElement(ka.Provider,{value:this.state},this.props.children)}}Ea.displayName="WorkflowContextProvider",Ea.propTypes={children:s().any};class wa extends n.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks(),this.createInputRef()}get defaultState(){return{processing:!1,key:"",keyError:"",password:"",passwordError:"",passwordWarning:"",hasAlreadyBeenValidated:!1,selectedFile:null}}bindCallbacks(){this.handleFormSubmit=this.handleFormSubmit.bind(this),this.handleCloseClick=this.handleCloseClick.bind(this),this.handleInputChange=this.handleInputChange.bind(this),this.handleKeyInputKeyUp=this.handleKeyInputKeyUp.bind(this),this.handlePasswordInputKeyUp=this.handlePasswordInputKeyUp.bind(this),this.handleSelectFile=this.handleSelectFile.bind(this),this.handleSelectOrganizationKeyFile=this.handleSelectOrganizationKeyFile.bind(this)}createInputRef(){this.keyInputRef=n.createRef(),this.fileUploaderRef=n.createRef(),this.passwordInputRef=n.createRef()}handleKeyInputKeyUp(){if(this.state.hasAlreadyBeenValidated){const e=this.validateKeyInput();this.setState(e)}}async handleSelectOrganizationKeyFile(e){const[t]=e.target.files,a=await this.readOrganizationKeyFile(t);await this.fillOrganizationKey(a),this.setState({selectedFile:t}),this.state.hasAlreadyBeenValidated&&await this.validate()}readOrganizationKeyFile(e){const t=new FileReader;return new Promise(((a,n)=>{t.onloadend=()=>{try{a(t.result)}catch(e){n(e)}},t.readAsText(e)}))}async fillOrganizationKey(e){await this.setState({key:e})}validateKeyInput(){const e=this.state.key.trim();let t="";return e.length||(t=this.translate("An organization key is required.")),new Promise((e=>{this.setState({keyError:t},e)}))}focusFirstFieldError(){this.state.keyError?this.keyInputRef.current.focus():this.state.passwordError&&this.passwordInputRef.current.focus()}handlePasswordInputKeyUp(){if(this.state.hasAlreadyBeenValidated){const e=this.validatePasswordInput();this.setState(e)}else{const e=this.state.password.length>=4096,t=this.translate("this is the maximum size for this field, make sure your data was not truncated"),a=e?t:"";this.setState({passwordWarning:a})}}validatePasswordInput(){const e=this.state.password;let t="";return e.length||(t=this.translate("A password is required.")),new Promise((e=>{this.setState({passwordError:t},e)}))}handleInputChange(e){const t=e.target,a=t.value,n=t.name;this.setState({[n]:a})}handleSelectFile(){this.fileUploaderRef.current.click()}async handleFormSubmit(e){e.preventDefault(),this.state.processing||await this.save()}async save(){if(this.setState({hasAlreadyBeenValidated:!0}),await this.toggleProcessing(),!await this.validate())return this.handleValidateError(),void await this.toggleProcessing();const e={armored_key:this.state.key,passphrase:this.state.password};try{await this.props.context.port.request("passbolt.account-recovery.validate-organization-private-key",e),await this.props.onSubmit(e),await this.toggleProcessing(),this.props.onClose()}catch(e){await this.handleSubmitError(e),await this.toggleProcessing()}}async handleSubmitError(e){"UserAbortsOperationError"!==e.name&&("WrongOrganizationRecoveryKeyError"===e.name?this.setState({expectedFingerprintError:e.expectedFingerprint}):"InvalidMasterPasswordError"===e.name?this.setState({passwordError:this.translate("This is not a valid passphrase.")}):"BadSignatureMessageGpgKeyError"===e.name||"GpgKeyError"===e.name?this.setState({keyError:e.message}):(console.error("Uncaught uncontrolled error"),this.onUnexpectedError(e)))}onUnexpectedError(e){const t={error:e};this.props.dialogContext.open(Vt,t)}handleValidateError(){this.focusFirstFieldError()}async validate(){return this.setState({keyError:"",passwordError:"",expectedFingerprintError:""}),await Promise.all([this.validateKeyInput(),this.validatePasswordInput()]),""===this.state.keyError&&""===this.state.passwordError}async toggleProcessing(){await this.setState({processing:!this.state.processing})}hasAllInputDisabled(){return this.state.processing}handleCloseClick(){this.props.onClose()}formatFingerprint(e){if(!e)return n.createElement(n.Fragment,null);const t=e.toUpperCase().replace(/.{4}/g,"$& ");return n.createElement(n.Fragment,null,t.substr(0,24),n.createElement("br",null),t.substr(25))}get selectedFilename(){return this.state.selectedFile?this.state.selectedFile.name:""}get translate(){return this.props.t}render(){return n.createElement(tt,{title:this.translate("Organization Recovery Key"),onClose:this.handleCloseClick,disabled:this.state.processing,className:"provide-organization-recover-key-dialog"},n.createElement("form",{onSubmit:this.handleFormSubmit,noValidate:!0},n.createElement("div",{className:"form-content provide-organization-key"},n.createElement("div",{className:"input textarea required "+(this.state.keyError||this.state.expectedFingerprintError?"error":"")},n.createElement("label",{htmlFor:"organization-recover-form-key"},n.createElement(v.c,null,"Enter the private key used by your organization for account recovery")),n.createElement("textarea",{id:"organization-recover-form-key",name:"key",value:this.state.key,onKeyUp:this.handleKeyInputKeyUp,onChange:this.handleInputChange,disabled:this.hasAllInputDisabled(),ref:this.keyInputRef,className:"required",placeholder:this.translate("Paste the OpenPGP Private key here"),required:"required",autoComplete:"off",autoFocus:!0})),n.createElement("div",{className:"input file"},n.createElement("input",{type:"file",id:"dialog-import-private-key",ref:this.fileUploaderRef,disabled:this.hasAllInputDisabled(),onChange:this.handleSelectOrganizationKeyFile}),n.createElement("label",{htmlFor:"dialog-import-private-key"},n.createElement(v.c,null,"Select a file to import")),n.createElement("div",{className:"input-file-inline"},n.createElement("input",{type:"text",disabled:!0,placeholder:this.translate("No file selected"),defaultValue:this.selectedFilename}),n.createElement("button",{className:"button primary",type:"button",disabled:this.hasAllInputDisabled(),onClick:this.handleSelectFile},n.createElement("span",null,n.createElement(v.c,null,"Choose a file")))),this.state.keyError&&n.createElement("div",{className:"key error-message"},this.state.keyError),this.state.expectedFingerprintError&&n.createElement("div",{className:"key error-message"},n.createElement(v.c,null,"Error, this is not the current organization recovery key."),n.createElement("br",null),n.createElement(v.c,null,"Expected fingerprint:"),n.createElement("br",null),n.createElement("br",null),n.createElement("span",{className:"fingerprint"},this.formatFingerprint(this.state.expectedFingerprintError)))),n.createElement("div",{className:"input-password-wrapper input required "+(this.state.passwordError?"error":"")},n.createElement("label",{htmlFor:"generate-organization-key-form-password"},n.createElement(v.c,null,"Organization key passphrase"),this.state.passwordWarning&&n.createElement(le,{name:"exclamation"})),n.createElement(Me,{id:"generate-organization-key-form-password",name:"password",placeholder:this.translate("Passphrase"),autoComplete:"new-password",onKeyUp:this.handlePasswordInputKeyUp,value:this.state.password,securityToken:this.props.context.userSettings.getSecurityToken(),preview:!0,onChange:this.handleInputChange,disabled:this.hasAllInputDisabled(),inputRef:this.passwordInputRef}),this.state.passwordError&&n.createElement("div",{className:"password error-message"},this.state.passwordError),this.state.passwordWarning&&n.createElement("div",{className:"password warning-message"},n.createElement("strong",null,n.createElement(v.c,null,"Warning:"))," ",this.state.passwordWarning))),n.createElement("div",{className:"submit-wrapper clearfix"},n.createElement(nt,{disabled:this.hasAllInputDisabled(),onClick:this.handleCloseClick}),n.createElement(Bt,{disabled:this.hasAllInputDisabled(),processing:this.state.processing,value:this.translate("Submit")}))))}}wa.propTypes={context:s().any.isRequired,onClose:s().func,onSubmit:s().func,actionFeedbackContext:s().any,dialogContext:s().object,t:s().func};const Ca=R(g((0,k.Z)("common")(wa)));class Sa extends n.Component{constructor(e){super(e),this.state=this.getDefaultState(),this.bindCallbacks()}getDefaultState(){return{processing:!1}}bindCallbacks(){this.handleSubmit=this.handleSubmit.bind(this),this.handleClose=this.handleClose.bind(this)}handleClose(){this.props.onClose()}async toggleProcessing(){await this.setState({processing:!this.state.processing})}get isProcessing(){return this.state.processing}async handleSubmit(e){e.preventDefault(),await this.toggleProcessing();try{await this.props.onSubmit(),this.props.onClose()}catch(e){if(await this.toggleProcessing(),"UserAbortsOperationError"!==e.name)throw console.error("Uncaught uncontrolled error"),e}}formatFingerprint(e){const t=(e=e||"").toUpperCase().replace(/.{4}/g,"$& ");return n.createElement(n.Fragment,null,t.substr(0,24),n.createElement("br",null),t.substr(25))}formatUserIds(e){return(e=e||[]).map(((e,t)=>n.createElement(n.Fragment,{key:t},e.name,"<",e.email,">",n.createElement("br",null))))}formatDateTimeAgo(e){if(null===e)return"n/a";if("Infinity"===e)return this.translate("Never");const t=qt.ou.fromISO(e),a=t.diffNow().toMillis();return a>-1e3&&a<0?this.translate("Just now"):t.toRelative({locale:this.props.context.locale})}formatDate(e){return qt.ou.fromJSDate(new Date(e)).setLocale(this.props.context.locale).toLocaleString(qt.ou.DATETIME_FULL)}get translate(){return this.props.t}render(){return n.createElement(tt,{title:this.translate("Save Settings Summary"),onClose:this.handleClose,disabled:this.state.processing,className:"save-recovery-account-settings-dialog"},n.createElement("form",{onSubmit:this.handleSubmit},n.createElement("div",{className:"form-content"},this.props.policy&&n.createElement(n.Fragment,null,n.createElement("label",null,n.createElement(v.c,null,"New Account Recovery Policy")),n.createElement("div",{className:"radiolist-alt"},n.createElement("div",{className:"input radio"},n.createElement("label",{htmlFor:"accountPolicy"},n.createElement("span",{className:"name"},{mandatory:n.createElement(v.c,null,"Mandatory"),"opt-out":n.createElement(v.c,null,"Optional, Opt-out"),"opt-in":n.createElement(v.c,null,"Optional, Opt-in"),disabled:n.createElement(v.c,null,"Disable")}[this.props.policy]),n.createElement("span",{className:"info"},{mandatory:n.createElement(n.Fragment,null,n.createElement(v.c,null,"Every user is required to provide a copy of their private key and passphrase during setup."),n.createElement("br",null),n.createElement(v.c,null,"Warning: You should inform your users not to store personal passwords.")),"opt-out":n.createElement(v.c,null,"Every user will be prompted to provide a copy of their private key and passphrase by default during the setup, but they can opt out."),"opt-in":n.createElement(v.c,null,"Every user can decide to provide a copy of their private key and passphrase by default during the setup, but they can opt in."),disabled:n.createElement(n.Fragment,null,n.createElement(v.c,null,"Backup of the private key and passphrase will not be stored. This is the safest option."),n.createElement("br",null),n.createElement(v.c,null,"Warning: If users lose their private key and passphrase they will not be able to recover their account."))}[this.props.policy]))))),this.props.keyInfo&&n.createElement(n.Fragment,null,n.createElement("label",null,n.createElement(v.c,null,"New Organization Recovery Key")),n.createElement("div",{className:"recovery-key-details"},n.createElement("table",{className:"table-info recovery-key"},n.createElement("tbody",null,n.createElement("tr",{className:"user-ids"},n.createElement("td",{className:"label"},n.createElement(v.c,null,"Uid")),n.createElement("td",{className:"value"},this.formatUserIds(this.props.keyInfo.user_ids))),n.createElement("tr",{className:"fingerprint"},n.createElement("td",{className:"label"},n.createElement(v.c,null,"Fingerprint")),n.createElement("td",{className:"value"},this.formatFingerprint(this.props.keyInfo.fingerprint))),n.createElement("tr",{className:"algorithm"},n.createElement("td",{className:"label"},n.createElement(v.c,null,"Algorithm")),n.createElement("td",{className:"value"},this.props.keyInfo.algorithm)),n.createElement("tr",{className:"key-length"},n.createElement("td",{className:"label"},n.createElement(v.c,null,"Key length")),n.createElement("td",{className:"value"},this.props.keyInfo.length)),n.createElement("tr",{className:"created"},n.createElement("td",{className:"label"},n.createElement(v.c,null,"Created")),n.createElement("td",{className:"value"},this.formatDate(this.props.keyInfo.created))),n.createElement("tr",{className:"expires"},n.createElement("td",{className:"label"},n.createElement(v.c,null,"Expires")),n.createElement("td",{className:"value"},this.formatDateTimeAgo(this.props.keyInfo.expires)))))))),n.createElement("div",{className:"warning message"},n.createElement(v.c,null,"Please review carefully this configuration as it will not be trivial to change this later.")),n.createElement("div",{className:"submit-wrapper clearfix"},n.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:"https://help.passbolt.com/configure/account-recovery",className:"button button-left "+(this.isProcessing?"disabled":"")},n.createElement(v.c,null,"Learn more")),n.createElement(nt,{onClick:this.handleClose,disabled:this.isProcessing}),n.createElement(Bt,{value:this.translate("Save"),disabled:this.isProcessing,processing:this.isProcessing,warning:!0}))))}}Sa.propTypes={context:s().any,onClose:s().func,onSubmit:s().func,policy:s().string,keyInfo:s().object,t:s().func};const xa=R((0,k.Z)("common")(Sa));class Na extends n.Component{constructor(e){super(e),this.bindCallbacks()}componentDidMount(){this.displayConfirmSummaryDialog()}bindCallbacks(){this.handleCloseDialog=this.handleCloseDialog.bind(this),this.handleConfirmSave=this.handleConfirmSave.bind(this),this.handleSave=this.handleSave.bind(this),this.handleError=this.handleError.bind(this)}async displayConfirmSummaryDialog(){this.props.dialogContext.open(xa,{policy:this.props.adminAccountRecoveryContext.policyChanges?.policy,keyInfo:await this.getNewOrganizationKeyInfo(),onClose:this.handleCloseDialog,onSubmit:this.handleConfirmSave})}getNewOrganizationKeyInfo(){const e=this.props.adminAccountRecoveryContext.policyChanges?.publicKey;return e?this.props.adminAccountRecoveryContext.getKeyInfo(e):null}displayProvideAccountRecoveryOrganizationKeyDialog(){this.props.dialogContext.open(Ca,{onClose:this.handleCloseDialog,onSubmit:this.handleSave})}handleCloseDialog(){this.props.onStop()}async handleConfirmSave(){Boolean(this.props.adminAccountRecoveryContext.currentPolicy?.account_recovery_organization_public_key)?this.displayProvideAccountRecoveryOrganizationKeyDialog():await this.handleSave()}async handleSave(e=null){try{await this.props.adminAccountRecoveryContext.save(e),await this.props.actionFeedbackContext.displaySuccess(this.translate("The organization recovery policy has been updated successfully")),this.props.onStop()}catch(e){this.handleError(e)}}handleError(e){if(["UserAbortsOperationError","WrongOrganizationRecoveryKeyError","InvalidMasterPasswordError","BadSignatureMessageGpgKeyError","GpgKeyError"].includes(e.name))throw e;"PassboltApiFetchError"===e.name&&e?.data?.body?.account_recovery_organization_public_key?.fingerprint?.isNotAccountRecoveryOrganizationPublicKeyFingerprintRule?this.props.dialogContext.open(Vt,{error:new Error(this.translate("The new organization recovery key should not be a formerly used organization recovery key."))}):this.props.dialogContext.open(Vt,{error:e}),this.props.onStop()}get translate(){return this.props.t}render(){return n.createElement(n.Fragment,null)}}Na.propTypes={dialogContext:s().any,adminAccountRecoveryContext:s().any,actionFeedbackContext:s().object,context:s().object,onStop:s().func.isRequired,t:s().func};const La=R(g(d(ya((0,k.Z)("common")(Na)))));class Ia extends n.Component{constructor(e){super(e),this.bindCallbacks()}bindCallbacks(){this.handleSaveClick=this.handleSaveClick.bind(this),this.handleEditSubscriptionClick=this.handleEditSubscriptionClick.bind(this)}handleSaveClick(){this.props.workflowContext.start(La,{})}handleEditSubscriptionClick(){this.props.adminAccountRecoveryContext.resetChanges()}isSaveEnabled(){if(!this.props.adminAccountRecoveryContext.hasPolicyChanges())return!1;const e=this.props.adminAccountRecoveryContext.policyChanges,t=this.props.adminAccountRecoveryContext.currentPolicy;if(e?.policy===oe.POLICY_DISABLED)return!0;const a=e.publicKey||t.account_recovery_organization_public_key?.armored_key;return!(!Boolean(e.policy)||!Boolean(a))||t.policy!==oe.POLICY_DISABLED&&Boolean(e.publicKey)}isResetEnabled(){return this.props.adminAccountRecoveryContext.hasPolicyChanges()}render(){return n.createElement("div",{className:"col2_3 actions-wrapper"},n.createElement("div",{className:"actions"},n.createElement("div",null,n.createElement("li",null,n.createElement("a",{className:"button "+(this.isSaveEnabled()?"":"disabled"),onClick:this.handleSaveClick},n.createElement(le,{name:"save"}),n.createElement("span",null,n.createElement(v.c,null,"Save settings"))))),n.createElement("div",null,n.createElement("li",null,n.createElement("a",{className:"button "+(this.isResetEnabled()?"":"disabled"),onClick:this.handleEditSubscriptionClick},n.createElement(le,{name:"edit"}),n.createElement("span",null,n.createElement(v.c,null,"Reset settings")))))))}}Ia.propTypes={adminAccountRecoveryContext:s().object,workflowContext:s().any};const Ra=function(e){return class extends n.Component{render(){return n.createElement(ka.Consumer,null,(t=>n.createElement(e,va({workflowContext:t},this.props))))}}}(ya((0,k.Z)("common")(Ia)));class Aa extends n.Component{constructor(e){super(e),this.bindCallback()}bindCallback(){this.handleClick=this.handleClick.bind(this)}handleClick(){this.props.onClick(this.props.name)}render(){return n.createElement("li",{className:"tab "+(this.props.isActive?"active":"")},n.createElement("a",{className:"tab-link",onClick:this.handleClick},this.props.name))}}Aa.propTypes={name:s().string,type:s().string,isActive:s().bool,onClick:s().func,children:s().any};const za=Aa;class Da extends n.Component{constructor(e){super(e),this.state=this.getDefaultState(e),this.bindCallback()}getDefaultState(e){return{activeTabName:e.activeTabName}}bindCallback(){this.handleTabClick=this.handleTabClick.bind(this)}handleTabClick(e){this.setState({activeTabName:e.name}),"function"==typeof e.onClick&&e.onClick()}render(){return n.createElement("div",{className:"tabs"},n.createElement("ul",{className:"tabs-nav tabs-nav--bordered"},this.props.children.map((({key:e,props:t})=>n.createElement(za,{key:e,name:t.name,onClick:()=>this.handleTabClick(t),isActive:t.name===this.state.activeTabName})))),n.createElement("div",{className:"tabs-active-content"},this.props.children.find((e=>e.props.name===this.state.activeTabName)).props.children))}}Da.propTypes={activeTabName:s().string,children:s().any};const Ta=Da;class ja extends n.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks(),this.createInputRef()}get defaultState(){return{processing:!1,key:"",keyError:"",hasAlreadyBeenValidated:!1,selectedFile:null}}bindCallbacks(){this.handleSelectFile=this.handleSelectFile.bind(this),this.handleFormSubmit=this.handleFormSubmit.bind(this),this.handleInputChange=this.handleInputChange.bind(this),this.handleSelectOrganizationKeyFile=this.handleSelectOrganizationKeyFile.bind(this)}createInputRef(){this.keyInputRef=n.createRef(),this.fileUploaderRef=n.createRef()}async handleSelectOrganizationKeyFile(e){const[t]=e.target.files,a=await this.readOrganizationKeyFile(t);this.setState({key:a,selectedFile:t})}readOrganizationKeyFile(e){const t=new FileReader;return new Promise(((a,n)=>{t.onloadend=()=>{try{a(t.result)}catch(e){n(e)}},t.readAsText(e)}))}async validateKeyInput(){const e=this.state.key.trim();return""===e?Promise.reject(new Error(this.translate("The key can't be empty."))):await this.props.context.port.request("passbolt.account-recovery.validate-organization-key",e)}async validate(){return this.setState({keyError:""}),await this.validateKeyInput().then((()=>!0)).catch((e=>(this.setState({keyError:e.message}),!1)))}handleInputChange(e){const t=e.target;this.setState({[t.name]:t.value})}handleSelectFile(){this.fileUploaderRef.current.click()}async handleFormSubmit(e){e.preventDefault(),this.state.processing||await this.save()}async save(){if(await this.setState({hasAlreadyBeenValidated:!0}),await this.toggleProcessing(),!await this.validate())return this.handleValidateError(),void await this.toggleProcessing();await this.props.onUpdateOrganizationKey(this.state.key.trim())}handleValidateError(){this.focusFieldError()}focusFieldError(){this.state.keyError&&this.keyInputRef.current.focus()}async toggleProcessing(){await this.setState({processing:!this.state.processing})}hasAllInputDisabled(){return this.state.processing}get translate(){return this.props.t}get selectedFilename(){return this.state.selectedFile?this.state.selectedFile.name:""}render(){return n.createElement("form",{onSubmit:this.handleFormSubmit,noValidate:!0},n.createElement("div",{className:"form-content import-organization-key"},n.createElement("div",{className:"input textarea required "+(this.state.keyError?"error":"")},n.createElement("label",{htmlFor:"organization-recover-form-key"},n.createElement(v.c,null,"Import an OpenPGP Public key")),n.createElement("textarea",{id:"organization-recover-form-key",name:"key",value:this.state.key,onKeyUp:this.handleKeyInputKeyUp,onChange:this.handleInputChange,disabled:this.hasAllInputDisabled(),ref:this.keyInputRef,className:"required",placeholder:this.translate("Add Open PGP Public key"),required:"required",autoComplete:"off",autoFocus:!0})),n.createElement("div",{className:"input file"},n.createElement("input",{type:"file",id:"dialog-import-private-key",ref:this.fileUploaderRef,disabled:this.hasAllInputDisabled(),onChange:this.handleSelectOrganizationKeyFile}),n.createElement("label",{htmlFor:"dialog-import-private-key"},n.createElement(v.c,null,"Select a file to import")),n.createElement("div",{className:"input-file-inline"},n.createElement("input",{type:"text",disabled:!0,placeholder:this.translate("No file selected"),defaultValue:this.selectedFilename}),n.createElement("button",{className:"button primary",type:"button",disabled:this.hasAllInputDisabled(),onClick:this.handleSelectFile},n.createElement("span",null,n.createElement(v.c,null,"Choose a file")))),this.state.keyError&&n.createElement("div",{className:"key error-message"},this.state.keyError))),!this.state.hasAlreadyBeenValidated&&n.createElement("div",{className:"message notice"},n.createElement(le,{baseline:!0,name:"info-circle"}),n.createElement("strong",null,n.createElement(v.c,null,"Pro tip"),":")," ",n.createElement(v.c,null,"Learn how to ",n.createElement("a",{href:"https://help.passbolt.com/configure/account-recovery",target:"_blank",rel:"noopener noreferrer"},"generate a key separately."))),n.createElement("div",{className:"submit-wrapper clearfix"},n.createElement(nt,{disabled:this.hasAllInputDisabled(),onClick:this.props.onClose}),n.createElement(Bt,{disabled:this.hasAllInputDisabled(),processing:this.state.processing,value:this.translate("Apply")})))}}ja.propTypes={context:s().object,onUpdateOrganizationKey:s().func,onClose:s().func,t:s().func};const Ua=R((0,k.Z)("common")(ja));var _a=a(9496),Pa=a.n(_a);const Ma={"en-UK":["abdominal","acclimate","accompany","activator","acuteness","aerospace","affecting","affection","affidavit","affiliate","afflicted","afterglow","afterlife","aftermath","aftermost","afternoon","aggregate","agonizing","agreeable","agreeably","agreement","alabaster","albatross","algorithm","alienable","alongside","amazingly","ambiguity","ambiguous","ambitious","ambulance","amendable","amendment","amplifier","amusement","anaerobic","anatomist","angelfish","angriness","anguished","animating","animation","animosity","announcer","answering","antarctic","anthology","antiquely","antiquity","antitoxic","antitrust","antiviral","antivirus","appealing","appeasing","appendage","appetizer","appliance","applicant","appointee","appraisal","appraiser","apprehend","arbitrary","arbitrate","armadillo","arrogance","ascension","ascertain","asparagus","astrology","astronaut","astronomy","atrocious","attendant","attention","attentive","attractor","attribute","audacious","augmented","authentic","autograph","automaker","automated","automatic","autopilot","available","avalanche","backboard","backboned","backfield","backlands","backlight","backpedal","backshift","backspace","backstage","backtrack","backwater","bacterium","bagginess","balancing","bannister","barometer","barracuda","barricade","bartender","basically","battalion","battering","blanching","blandness","blaspheme","blasphemy","blatantly","blunderer","bodacious","boogeyman","boogieman","boondocks","borrowing","botanical","boundless","bountiful","breeching","brilliant","briskness","broadband","broadcast","broadness","broadside","broadways","bronchial","brownnose","brutishly","buccaneer","bucktooth","buckwheat","bulginess","bulldozer","bullfight","bunkhouse","cabdriver","calculate","calibrate","camcorder","canopener","capillary","capricorn","captivate","captivity","cardboard","cardstock","carefully","caregiver","caretaker","carnation","carnivore","carpenter","carpentry","carrousel","cartridge","cartwheel","catatonic","catchable","cathedral","cattishly","caucasian","causation","cauterize","celestial","certainly","certainty","certified","challenge","chamomile","chaperone","character","charbroil","chemicals","cherisher","chihuahua","childcare","childhood","childless","childlike","chokehold","circulate","clamshell","clergyman","clubhouse","clustered","coagulant","coastland","coastline","cofounder","cognition","cognitive","coherence","collected","collector","collision","commodity","commodore","commotion","commuting","compacted","compacter","compactly","compactor","companion","component","composite","composure","comprised","computing","concerned","concierge","condiment","condition","conducive","conductor","confidant","confident","confiding","configure","confining","confusing","confusion","congenial","congested","conjoined","connected","connector","consensus","consoling","consonant","constable","constrain","constrict","construct","consuming","container","contented","contently","contusion","copartner","cornbread","cornfield","cornflake","cornstalk","corporate","corroding","corrosive","cosmetics","cosponsor","countable","countdown","countless","crabgrass","craftsman","craftwork","cranberry","craziness","creamlike","creatable","crestless","crispness","crudeness","cruelness","crummiest","crunching","crushable","cubbyhole","culminate","cultivate","cupbearer","curliness","curvature","custodian","customary","customize","cytoplasm","cytoplast","dandelion","daredevil","darkening","darwinism","dastardly","deafening","dealmaker","debatable","decathlon","deceiving","deception","deceptive","decidable","decimeter","decompose","decorated","decorator","dedicator","defection","defective","defendant","defensive","deflation","deflected","deflector","degrading","dehydrate","delegator","delicious","delighted","delirious","deliverer","demanding","demeaning","democracy","demystify","denatured","deodorant","deodorize","departure","depletion","depravity","deprecate","desecrate","deserving","designate","designing","deskbound","destitute","detection","detective","detention","detergent","detonator","deviation","devotedly","devouring","dexterity","dexterous","diagnoses","diagnosis","diaphragm","dictation","difficult","diffusion","diffusive","diligence","dinginess","direction","directive","directory","dirtiness","disbelief","discharge","discourse","disengage","disfigure","disinfect","disliking","dislocate","dismantle","disparate","disparity","dispersal","dispersed","disperser","displease","disregard","dividable","divisible","divisibly","dizziness","dollhouse","doorframe","dormitory","dragonfly","dragonish","drainable","drainpipe","dramatize","dreadlock","dreamboat","dreamland","dreamless","dreamlike","drinkable","drop-down","dubiously","duplicate","duplicity","dwindling","earthlike","earthling","earthworm","eastbound","eastcoast","eccentric","ecologist","economist","ecosphere","ecosystem","education","effective","efficient","eggbeater","egomaniac","egotistic","elaborate","eldercare","electable","elevating","elevation","eliminate","elongated","eloquence","elsewhere","embattled","embellish","embroider","emergency","emphasize","empirical","emptiness","enactment","enchanted","enchilada","enclosure","encounter","encourage","endearing","endocrine","endorphin","endowment","endurable","endurance","energetic","engraving","enigmatic","enjoyable","enjoyably","enjoyment","enlarging","enlighten","entangled","entertain","entourage","enunciate","epidermal","epidermis","epileptic","equipment","equivocal","eradicate","ergonomic","escalator","escapable","esophagus","espionage","essential","establish","estimator","estranged","ethically","euphemism","evaluator","evaporate","everglade","evergreen","everybody","evolution","excavator","exceeding","exception","excitable","excluding","exclusion","exclusive","excretion","excretory","excursion","excusable","excusably","exemplary","exemplify","exemption","exerciser","exfoliate","exonerate","expansion","expansive","expectant","expedited","expediter","expensive","expletive","exploring","exposable","expulsion","exquisite","extending","extenuate","extortion","extradite","extrovert","extruding","exuberant","facecloth","faceplate","facsimile","factsheet","fanciness","fantasize","fantastic","favorable","favorably","ferocious","festivity","fidgeting","financial","finishing","flagstick","flagstone","flammable","flashback","flashbulb","flashcard","flattered","flatterer","flavorful","flavoring","footboard","footprint","fragility","fragrance","fraternal","freemason","freestyle","freezable","frequency","frightful","frigidity","frivolous","frostbite","frostlike","frugality","frustrate","gainfully","gallantly","gallstone","galvanize","gathering","gentleman","geography","geologist","geometric","geriatric","germicide","germinate","germproof","gestation","gibberish","giddiness","gigahertz","gladiator","glamorous","glandular","glorified","glorifier","glutinous","goldsmith","goofiness","graceless","gradation","gradually","grappling","gratified","gratitude","graveness","graveyard","gravitate","greedless","greyhound","grievance","grimacing","griminess","grumbling","guacamole","guileless","gumminess","habitable","hamburger","hamstring","handbrake","handclasp","handcraft","handiness","handiwork","handlebar","handprint","handsfree","handshake","handstand","handwoven","handwrite","hankering","haphazard","happening","happiness","hardcover","hardening","hardiness","hardwired","harmonica","harmonics","harmonize","hastiness","hatchback","hatchling","headboard","headcount","headdress","headfirst","headphone","headpiece","headscarf","headstand","headstone","heaviness","heftiness","hemstitch","herbicide","hesitancy","humiliate","humongous","humorless","hunchback","hundredth","hurricane","huskiness","hydration","hydroxide","hyperlink","hypertext","hypnotism","hypnotist","hypnotize","hypocrisy","hypocrite","ibuprofen","idealness","identical","illicitly","imaginary","imitation","immersion","immorally","immovable","immovably","impatient","impending","imperfect","implement","implicate","implosion","implosive","important","impotence","impotency","imprecise","impromptu","improving","improvise","imprudent","impulsive","irregular","irritable","irritably","isolating","isolation","italicize","itinerary","jackknife","jailbreak","jailhouse","jaywalker","jeeringly","jockstrap","jolliness","joylessly","jubilance","judgingly","judiciary","juiciness","justifier","kilometer","kinswoman","laborious","landowner","landscape","landslide","lankiness","legislate","legwarmer","lethargic","levitator","liability","librarian","limelight","litigator","livestock","lubricant","lubricate","luckiness","lucrative","ludicrous","luminance","lumpiness","lunchroom","lunchtime","luridness","lustfully","lustiness","luxurious","lyrically","machinist","magnesium","magnetism","magnetize","magnifier","magnitude","majorette","makeshift","malformed","mammogram","mandatory","manhandle","manicotti","manifesto","manliness","marauding","margarine","margarita","marmalade","marshland","marsupial","marvelous","masculine","matchbook","matchless","maternity","matriarch","matrimony","mayflower","modulator","moistness","molecular","monastery","moneybags","moneyless","moneywise","monologue","monstrous","moodiness","moonlight","moonscape","moonshine","moonstone","morbidity","mortality","mortician","mortified","mothproof","motivator","motocross","mountable","mousiness","moustache","multitask","multitude","mummified","municipal","murkiness","murmuring","mushiness","muskiness","mustiness","mutilated","mutilator","mystified","nanometer","nastiness","navigator","nebulizer","neglector","negligent","negotiate","neurology","ninetieth","numerator","nuttiness","obedience","oblivious","obnoxious","obscurity","observant","observing","obsession","obsessive","obstinate","obtrusive","occultist","occupancy","onslaught","operating","operation","operative","oppressed","oppressor","opulently","outnumber","outplayed","outskirts","outsource","outspoken","overblown","overboard","overbuilt","overcrowd","overdraft","overdrawn","overdress","overdrive","overeager","overeater","overexert","overgrown","overjoyed","overlabor","overlying","overnight","overplant","overpower","overprice","overreach","overreact","overshoot","oversight","oversized","oversleep","overspend","overstate","overstock","overstuff","oversweet","overthrow","overvalue","overwrite","oxidation","oxidizing","pacemaker","palatable","palpitate","panhandle","panoramic","pantomime","pantyhose","paparazzi","parachute","paragraph","paralegal","paralyses","paralysis","paramedic","parameter","paramount","parasitic","parchment","partition","partridge","passenger","passivism","patchwork","paternity","patriarch","patronage","patronize","pavestone","pediatric","pedometer","penholder","penniless","pentagram","percolate","perennial","perfected","perfectly","periscope","perkiness","perpetual","perplexed","persecute","persevere","persuaded","persuader","pessimism","pessimist","pesticide","petroleum","petticoat","pettiness","phonebook","phoniness","phosphate","plausible","plausibly","playgroup","playhouse","playmaker","plaything","plentiful","plexiglas","plutonium","pointless","polyester","polygraph","porcupine","portfolio","postnasal","powdering","prankster","preaching","precision","predefine","preflight","preformed","pregnancy","preheated","prelaunch","preoccupy","preschool","prescribe","preseason","president","presuming","pretended","pretender","prevalent","prewashed","primarily","privatize","proactive","probation","probiotic","procedure","procreate","profanity","professed","professor","profusely","prognosis","projector","prolonged","promenade","prominent","promotion","pronounce","proofread","propeller","proponent","protector","prototype","protozoan","providing","provoking","provolone","proximity","prudishly","publisher","pulmonary","pulverize","punctuate","punctured","pureblood","purgatory","purposely","pursuable","pushchair","pushiness","pyromania","qualified","qualifier","quartered","quarterly","quickness","quicksand","quickstep","quintuple","quizzical","quotation","radiantly","radiation","rancidity","ravishing","reacquire","reanalyze","reappoint","reapprove","rearrange","rebalance","recapture","recharger","recipient","reclining","reclusive","recognize","recollect","reconcile","reconfirm","reconvene","rectangle","rectified","recycling","reexamine","referable","reference","refinance","reflected","reflector","reformist","refueling","refurbish","refurnish","refutable","registrar","regretful","regulator","rehydrate","reimburse","reiterate","rejoicing","relapsing","relatable","relenting","relieving","reluctant","remindful","remission","remodeler","removable","rendering","rendition","renewable","renewably","renovator","repackage","repacking","repayment","repossess","repressed","reprimand","reprocess","reproduce","reprogram","reptilian","repugnant","repulsion","repulsive","repurpose","reputable","reputably","requisite","reshuffle","residence","residency","resilient","resistant","resisting","resurface","resurrect","retaining","retaliate","retention","retrieval","retriever","reverence","reversing","reversion","revisable","revivable","revocable","revolving","riverbank","riverboat","riverside","rockiness","rockslide","roundness","roundworm","runaround","sacrament","sacrifice","saddlebag","safeguard","safehouse","salvaging","salvation","sanctuary","sandblast","sandpaper","sandstone","sandstorm","sanitizer","sappiness","sarcastic","sasquatch","satirical","satisfied","sauciness","saxophone","scapegoat","scarecrow","scariness","scavenger","schematic","schilling","scientist","scorebook","scorecard","scoreless","scoundrel","scrambled","scrambler","scrimmage","scrounger","sculpture","secluding","seclusion","sectional","selection","selective","semicolon","semifinal","semisweet","sensation","sensitive","sensitize","sensually","september","sequester","serotonin","sevenfold","seventeen","shadiness","shakiness","sharpener","sharpness","shiftless","shininess","shivering","shortcake","shorthand","shortlist","shortness","shortwave","showpiece","showplace","shredding","shrubbery","shuffling","silliness","similarly","simmering","sincerity","situation","sixtyfold","skedaddle","skintight","skyrocket","slackness","slapstick","sliceable","slideshow","slighting","slingshot","slouching","smartness","smilingly","smokeless","smokiness","smuggling","snowboard","snowbound","snowdrift","snowfield","snowflake","snowiness","snowstorm","spearfish","spearhead","spearmint","spectacle","spectator","speculate","spellbind","spendable","spherical","spiritism","spiritual","splashing","spokesman","spotlight","sprinkled","sprinkler","squatting","squealing","squeamish","squeezing","squishier","stability","stabilize","stainable","stainless","stalemate","staleness","starboard","stargazer","starlight","startling","statistic","statutory","steadfast","steadying","steerable","steersman","stegosaur","sterility","sterilize","sternness","stiffness","stillness","stimulant","stimulate","stipulate","stonewall","stoneware","stonework","stoplight","stoppable","stopwatch","storeroom","storewide","straggler","straining","strangely","strategic","strenuous","strongbox","strongman","structure","stumbling","stylishly","subarctic","subatomic","subdivide","subheader","submarine","submersed","submitter","subscribe","subscript","subsector","subsiding","subsidize","substance","subsystem","subwoofer","succulent","suffering","suffocate","sulphuric","superbowl","superglue","superhero","supernova","supervise","supremacy","surcharge","surfacing","surfboard","surrender","surrogate","surviving","sustained","sustainer","swaddling","swampland","swiftness","swimmable","symphonic","synthesis","synthetic","tableware","tackiness","taekwondo","tarantula","tastiness","theatrics","thesaurus","thickness","thirstily","thirsting","threefold","throbbing","throwaway","throwback","thwarting","tightness","tightrope","tinderbox","tiptoeing","tradition","trailside","transform","translate","transpire","transport","transpose","trapezoid","treachery","treadmill","trembling","tribesman","tributary","trickster","trifocals","trimester","troubling","trustable","trustless","turbulent","twentieth","twiddling","twistable","ultimatum","umbilical","unabashed","unadorned","unadvised","unaligned","unaltered","unarmored","unashamed","unaudited","unbalance","unblended","unblessed","unbounded","unbraided","unbuckled","uncertain","unchanged","uncharted","unclaimed","unclamped","unclothed","uncolored","uncorrupt","uncounted","uncrushed","uncurious","undamaged","undaunted","undecided","undefined","undercoat","undercook","underdone","underfeed","underfoot","undergrad","underhand","underline","underling","undermine","undermost","underpaid","underpass","underrate","undertake","undertone","undertook","underwear","underwent","underwire","undesired","undiluted","undivided","undrafted","undrilled","uneatable","unelected","unengaged","unethical","unexpired","unexposed","unfailing","unfeeling","unfitting","unfixable","unfocused","unfounded","unfrosted","ungreased","unguarded","unhappily","unhealthy","unhearing","unhelpful","unhitched","uniformed","uniformly","unimpeded","uninjured","uninstall","uninsured","uninvited","unisexual","universal","unknotted","unknowing","unlearned","unleveled","unlighted","unlikable","unlimited","unlivable","unlocking","unlovable","unluckily","unmanaged","unmasking","unmatched","unmindful","unmixable","unmovable","unnamable","unnatural","unnerving","unnoticed","unopposed","unpainted","unpiloted","unplanned","unplanted","unpleased","unpledged","unpopular","unraveled","unreached","unreeling","unrefined","unrelated","unretired","unrevised","unrivaled","unroasted","unruffled","unscathed","unscented","unsecured","unselfish","unsettled","unshackle","unsheathe","unshipped","unsightly","unskilled","unspoiled","unstaffed","unstamped","unsterile","unstirred","unstopped","unstuffed","unstylish","untainted","untangled","untoasted","untouched","untracked","untrained","untreated","untrimmed","unvarying","unveiling","unvisited","unwarlike","unwatched","unwelcome","unwilling","unwitting","unwomanly","unworldly","unworried","unwrapped","unwritten","upcountry","uplifting","urologist","uselessly","vagrantly","vagueness","valuables","vaporizer","vehicular","veneering","ventricle","verbalize","vertebrae","viability","viewpoint","vindicate","violation","viscosity","vivacious","vividness","wackiness","washbasin","washboard","washcloth","washhouse","washstand","whimsical","wieldable","wikipedia","willfully","willpower","wolverine","womanhood","womankind","womanless","womanlike","worrisome","worsening","worshiper","wrongdoer","wrongness","yesterday","zestfully","zigzagged","zookeeper","zoologist","abnormal","abrasion","abrasive","abruptly","absentee","absently","absinthe","absolute","abstract","accuracy","accurate","accustom","achiness","acquaint","activate","activism","activist","activity","aeration","aerobics","affected","affluent","aflutter","agnostic","agreeing","alienate","alkaline","alkalize","almighty","alphabet","although","altitude","aluminum","amaretto","ambiance","ambition","amicably","ammonium","amniotic","amperage","amusable","anaconda","aneurism","animator","annotate","annoying","annually","anointer","anteater","antelope","antennae","antibody","antidote","antihero","antiques","antirust","anyplace","anything","anywhere","appendix","appetite","applause","approach","approval","aptitude","aqueduct","ardently","arguable","arguably","armchair","arrogant","aspirate","astonish","atlantic","atonable","attendee","attitude","atypical","audacity","audience","audition","autistic","avenging","aversion","aviation","babbling","backache","backdrop","backfire","backhand","backlash","backless","backpack","backrest","backroom","backside","backslid","backspin","backstab","backtalk","backward","backwash","backyard","bacteria","baffling","baguette","bakeshop","balsamic","banister","bankable","bankbook","banknote","bankroll","barbecue","bargraph","baritone","barrette","barstool","barterer","battered","blatancy","blighted","blinking","blissful","blizzard","bloating","bloomers","blooming","blustery","boastful","boasting","bondless","bonehead","boneless","bonelike","bootlace","borrower","botanist","bottling","bouncing","bounding","breeches","breeding","brethren","broiling","bronzing","browbeat","browsing","bruising","brunette","brussels","bubbling","buckshot","buckskin","buddhism","buddhist","bullfrog","bullhorn","bullring","bullseye","bullwhip","bunkmate","busybody","cadillac","calamari","calamity","calculus","camisole","campfire","campsite","canister","cannabis","capacity","cardigan","cardinal","careless","carmaker","carnival","cartload","cassette","casually","casualty","catacomb","catalyst","catalyze","catapult","cataract","catching","catering","catfight","cathouse","cautious","cavalier","celibacy","celibate","ceramics","ceremony","cesarean","cesspool","chaffing","champion","chaplain","charcoal","charging","charting","chastise","chastity","chatroom","chatting","cheating","chewable","childish","chirping","chitchat","chivalry","chloride","chlorine","choosing","chowtime","cilantro","cinnamon","circling","circular","citation","clambake","clanking","clapping","clarinet","clavicle","clerical","climatic","clinking","closable","clothing","clubbing","clumsily","coasting","coauthor","coeditor","cogwheel","coherent","cohesive","coleslaw","coliseum","collapse","colonial","colonist","colonize","colossal","commence","commerce","composed","composer","compound","compress","computer","conceded","conclude","concrete","condense","confetti","confider","confined","conflict","confound","confront","confused","congrats","congress","conjuror","constant","consumer","contempt","contents","contrite","cornball","cornhusk","cornmeal","coronary","corporal","corridor","cosigner","counting","covenant","coveting","coziness","crabbing","crablike","crabmeat","cradling","craftily","crawfish","crawlers","crawling","crayfish","creasing","creation","creative","creature","credible","credibly","crescent","cresting","crewless","crewmate","cringing","crisping","criteria","crumpled","cruncher","crusader","crushing","cucumber","cufflink","culinary","culpable","cultural","customer","cylinder","daffodil","daintily","dallying","dandruff","dangling","daringly","darkened","darkness","darkroom","datebook","daughter","daunting","daybreak","daydream","daylight","dazzling","deafness","debating","debtless","deceased","deceiver","december","decipher","declared","decrease","dedicate","deepness","defacing","defender","deferral","deferred","defiance","defiling","definite","deflator","deforest","degraded","degrease","dejected","delegate","deletion","delicacy","delicate","delirium","delivery","delusion","demeanor","democrat","demotion","deniable","departed","deplored","depraved","deputize","deranged","designed","designer","deskwork","desolate","destruct","detached","detector","detonate","detoxify","deviancy","deviator","devotion","devourer","devoutly","diabetes","diabetic","diabolic","diameter","dictator","diffused","diffuser","dilation","diligent","diminish","directed","directly","direness","disabled","disagree","disallow","disarray","disaster","disburse","disclose","discolor","discount","discover","disgrace","dislodge","disloyal","dismount","disorder","dispatch","dispense","displace","disposal","disprove","dissuade","distance","distaste","distinct","distract","distress","district","distrust","dividend","dividers","dividing","divinely","divinity","division","divisive","divorcee","doctrine","document","domelike","domestic","dominion","dominoes","donation","doorbell","doorknob","doornail","doorpost","doorstep","doorstop","doubling","dragging","dragster","drainage","dramatic","dreadful","dreamily","drearily","drilling","drinking","dripping","drivable","driveway","dropkick","drowsily","duckbill","duckling","ducktail","dullness","dumpling","dumpster","duration","dwelling","dynamite","dyslexia","dyslexic","earphone","earpiece","earplugs","easiness","eastward","economic","edginess","educated","educator","eggplant","eggshell","election","elective","elephant","elevator","eligible","eligibly","elliptic","eloquent","embezzle","embolism","emission","emoticon","empathic","emphases","emphasis","emphatic","employed","employee","employer","emporium","encircle","encroach","endanger","endeared","endpoint","enduring","energize","enforced","enforcer","engaging","engraved","engraver","enjoying","enlarged","enlisted","enquirer","entering","enticing","entrench","entryway","envelope","enviable","enviably","envision","epidemic","epidural","epilepsy","epilogue","epiphany","equation","erasable","escalate","escapade","escapist","escargot","espresso","esteemed","estimate","estrogen","eternity","evacuate","evaluate","everyday","everyone","evidence","excavate","exchange","exciting","existing","exorcism","exorcist","expenses","expiring","explicit","exponent","exporter","exposure","extended","exterior","external","fabulous","facebook","facedown","faceless","facelift","facility","familiar","famished","fastball","fastness","favoring","favorite","felt-tip","feminine","feminism","feminist","feminize","fernlike","ferocity","festival","fiddling","fidelity","fiftieth","figurine","filtrate","finalist","finalize","fineness","finished","finisher","fiscally","flagpole","flagship","flanking","flannels","flashily","flashing","flatfoot","flatness","flattery","flatware","flatworm","flavored","flaxseed","flogging","flounder","flypaper","follicle","fondling","fondness","football","footbath","footgear","foothill","foothold","footless","footnote","footpath","footrest","footsore","footwear","footwork","founding","fountain","fraction","fracture","fragment","fragrant","freckled","freckles","freebase","freefall","freehand","freeload","freeness","freeware","freewill","freezing","frenzied","frequent","friction","frighten","frigidly","frostily","frosting","fructose","frugally","galleria","gambling","gangrene","gatherer","gauntlet","generous","genetics","geologic","geometry","geranium","germless","gigabyte","gigantic","giggling","giveaway","glancing","glaucoma","gleaming","gloating","gloomily","glorious","glowworm","goatskin","goldfish","goldmine","goofball","gorgeous","graceful","gracious","gradient","graduate","graffiti","grafting","granddad","grandkid","grandson","granular","gratuity","greasily","greedily","greeting","grieving","grievous","grinning","groggily","grooving","grudging","grueling","grumpily","guidable","guidance","gullible","gurgling","gyration","habitant","habitual","handball","handbook","handcart","handclap","handcuff","handgrip","handheld","handling","handmade","handpick","handrail","handwash","handwork","handyman","hangnail","hangover","happiest","hardcopy","hardcore","harddisk","hardened","hardener","hardhead","hardness","hardship","hardware","hardwood","harmless","hatchery","hatching","hazelnut","haziness","headache","headband","headgear","headlamp","headless","headlock","headrest","headroom","headsman","headwear","helpless","helpline","henchman","heritage","hesitant","hesitate","hexagram","huddling","humbling","humility","humorist","humorous","humpback","hungrily","huntress","huntsman","hydrated","hydrogen","hypnoses","hypnosis","hypnotic","idealism","idealist","idealize","identify","identity","ideology","ignition","illusion","illusive","imagines","imbecile","immature","imminent","immobile","immodest","immortal","immunity","immunize","impaired","impeding","imperial","implicit","impolite","importer","imposing","impotent","imprison","improper","impurity","irrigate","irritant","irritate","islamist","isolated","jailbird","jalapeno","jaundice","jingling","jokester","jokingly","joyfully","joystick","jubilant","judicial","juggling","junction","juncture","junkyard","justness","juvenile","kangaroo","keenness","kerchief","kerosene","kilobyte","kilogram","kilowatt","kindling","kindness","kissable","knapsack","knickers","laboring","labrador","ladylike","landfall","landfill","landlady","landless","landline","landlord","landmark","landmass","landmine","landside","language","latitude","latticed","lavender","laxative","laziness","lecturer","leggings","lethargy","leverage","levitate","licorice","ligament","likeness","likewise","limpness","linguini","linguist","linoleum","litigate","luckless","lukewarm","luminous","lunchbox","luncheon","lushness","lustrous","lyricism","lyricist","macarena","macaroni","magazine","magician","magnetic","magnolia","mahogany","majestic","majority","makeover","managing","mandarin","mandolin","manicure","manpower","marathon","marbling","marigold","maritime","massager","matchbox","matching","material","maternal","maturely","maturing","maturity","maverick","maximize","mobility","mobilize","modified","moisture","molasses","molecule","molehill","monetary","monetize","mongoose","monkhood","monogamy","monogram","monopoly","monorail","monotone","monotype","monoxide","monsieur","monument","moonbeam","moonlike","moonrise","moonwalk","morality","morbidly","morphine","morphing","mortally","mortuary","mothball","motivate","mountain","mounting","mournful","mulberry","multiple","multiply","mumbling","munchkin","muscular","mushroom","mutation","national","nativity","naturist","nautical","navigate","nearness","neatness","negation","negative","negligee","neurosis","neurotic","nickname","nicotine","nineteen","nintendo","numbness","numerate","numerous","nuptials","nutrient","nutshell","obedient","obituary","obligate","oblivion","observer","obsessed","obsolete","obstacle","obstruct","occupant","occupier","ointment","olympics","omission","omnivore","oncoming","onlooker","onscreen","operable","operator","opponent","opposing","opposite","outboard","outbound","outbreak","outburst","outclass","outdated","outdoors","outfield","outflank","outgoing","outhouse","outlying","outmatch","outreach","outright","outscore","outshine","outshoot","outsider","outsmart","outtakes","outthink","outweigh","overarch","overbill","overbite","overbook","overcast","overcoat","overcome","overcook","overfeed","overfill","overflow","overfull","overhand","overhang","overhaul","overhead","overhear","overheat","overhung","overkill","overlaid","overload","overlook","overlord","overpass","overplay","overrate","override","overripe","overrule","overshot","oversold","overstay","overstep","overtake","overtime","overtone","overture","overturn","overview","oxymoron","pacifier","pacifism","pacifist","paddling","palpable","pampered","pamperer","pamphlet","pancreas","pandemic","panorama","parabola","parakeet","paralyze","parasail","parasite","parmesan","passable","passably","passcode","passerby","passover","passport","password","pastrami","paternal","patience","pavement","pavilion","paycheck","payphone","peculiar","peddling","pedicure","pedigree","pegboard","penalize","penknife","pentagon","perceive","perjurer","peroxide","petition","phrasing","placidly","platform","platinum","platonic","platypus","playable","playback","playlist","playmate","playroom","playtime","pleading","plethora","plunging","pointing","politely","popsicle","populace","populate","porridge","portable","porthole","portside","possible","possibly","postcard","pouncing","powdered","praising","prancing","prankish","preacher","preamble","precinct","predator","pregnant","premiere","premises","prenatal","preorder","pretense","previous","prideful","princess","pristine","probable","probably","proclaim","procurer","prodigal","profound","progress","prologue","promoter","prompter","promptly","proofing","properly","property","proposal","protegee","protract","protrude","provable","provided","provider","province","prowling","punctual","punisher","purchase","purebred","pureness","purifier","purplish","pursuant","purveyor","pushcart","pushover","puzzling","quadrant","quaintly","quarters","quotable","radiance","radiated","radiator","railroad","rambling","reabsorb","reaction","reactive","reaffirm","reappear","rearview","reassign","reassure","reattach","reburial","rebuttal","reckless","recliner","recovery","recreate","recycled","recycler","reemerge","refinery","refining","refinish","reforest","reformat","reformed","reformer","refreeze","refusing","register","registry","regulate","rekindle","relation","relative","reliable","reliably","reliance","relocate","remedial","remember","reminder","removing","renderer","renegade","renounce","renovate","rentable","reoccupy","repaying","repeated","repeater","rephrase","reporter","reproach","resample","research","reselect","reseller","resemble","resident","residual","resigned","resolute","resolved","resonant","resonate","resource","resubmit","resupply","retainer","retiring","retorted","reusable","reverend","reversal","revision","reviving","revolver","richness","riddance","ripeness","ripening","rippling","riverbed","riveting","robotics","rockband","rockfish","rocklike","rockstar","roulette","rounding","roundish","rumbling","sabotage","saddling","safeness","salaried","salutary","sampling","sanction","sanctity","sandbank","sandfish","sandworm","sanitary","satiable","saturate","saturday","scalding","scallion","scalping","scanning","scarcity","scarring","schedule","scheming","schnapps","scolding","scorpion","scouring","scouting","scowling","scrabble","scraggly","scribble","scribing","scrubbed","scrubber","scrutiny","sculptor","secluded","securely","security","sedation","sedative","sediment","seducing","selected","selector","semantic","semester","semisoft","senorita","sensuous","sequence","serrated","sessions","settling","severity","shakable","shamrock","shelving","shifting","shoplift","shopping","shoptalk","shortage","shortcut","showcase","showdown","showgirl","showroom","shrapnel","shredder","shrewdly","shrouded","shucking","siberian","silenced","silencer","simplify","singular","sinister","situated","sixtieth","sizzling","skeletal","skeleton","skillful","skimming","skimpily","skincare","skinhead","skinless","skinning","skipping","skirmish","skydiver","skylight","slacking","slapping","slashing","slighted","slightly","slimness","slinging","slobbery","sloppily","smashing","smelting","smuggler","smugness","sneezing","snipping","snowbird","snowdrop","snowfall","snowless","snowplow","snowshoe","snowsuit","snugness","spearman","specimen","speckled","spectrum","spelling","spending","spinning","spinster","spirited","splashed","splatter","splendid","splendor","splicing","splinter","splotchy","spoilage","spoiling","spookily","sporting","spotless","spotting","spyglass","squabble","squander","squatted","squatter","squealer","squeegee","squiggle","squiggly","stagnant","stagnate","staining","stalling","stallion","stapling","stardust","starfish","starless","starring","starship","starting","starving","steadier","steadily","steering","sterling","stifling","stimulus","stingily","stinging","stingray","stinking","stoppage","stopping","storable","stowaway","straddle","strained","strainer","stranger","strangle","strategy","strength","stricken","striking","striving","stroller","strongly","struggle","stubborn","stuffing","stunning","sturdily","stylized","subduing","subfloor","subgroup","sublease","sublevel","submerge","subpanel","subprime","subsonic","subtitle","subtotal","subtract","sufferer","suffrage","suitable","suitably","suitcase","sulphate","superior","superjet","superman","supermom","supplier","sureness","surgical","surprise","surround","survival","survivor","suspense","swapping","swimming","swimsuit","swimwear","swinging","sycamore","sympathy","symphony","syndrome","synopses","synopsis","tableful","tackling","tactical","tactless","talisman","tameness","tapeless","tapering","tapestry","tartness","tattered","tattling","theology","theorize","thespian","thieving","thievish","thinness","thinning","thirteen","thousand","threaten","thriving","throttle","throwing","thumping","thursday","tidiness","tightwad","tingling","tinkling","tinsmith","traction","trailing","tranquil","transfer","trapdoor","trapping","traverse","travesty","treading","trespass","triangle","tribunal","trickery","trickily","tricking","tricolor","tricycle","trillion","trimming","trimness","tripping","trolling","trombone","tropical","trousers","trustful","trusting","tubeless","tumbling","turbofan","turbojet","tweezers","twilight","twisting","ultimate","umbrella","unafraid","unbeaten","unbiased","unbitten","unbolted","unbridle","unbroken","unbundle","unburned","unbutton","uncapped","uncaring","uncoated","uncoiled","uncombed","uncommon","uncooked","uncouple","uncurled","underage","underarm","undercut","underdog","underfed","underpay","undertow","underuse","undocked","undusted","unearned","uneasily","unedited","unending","unenvied","unfasten","unfilled","unfitted","unflawed","unframed","unfreeze","unfrozen","unfunded","unglazed","ungloved","ungraded","unguided","unharmed","unheated","unhidden","unicycle","uniquely","unissued","universe","unjustly","unlawful","unleaded","unlinked","unlisted","unloaded","unloader","unlocked","unlovely","unloving","unmanned","unmapped","unmarked","unmasked","unmolded","unmoving","unneeded","unopened","unpadded","unpaired","unpeeled","unpicked","unpinned","unplowed","unproven","unranked","unrented","unrigged","unrushed","unsaddle","unsalted","unsavory","unsealed","unseated","unseeing","unseemly","unselect","unshaken","unshaved","unshaven","unsigned","unsliced","unsmooth","unsocial","unsoiled","unsolved","unsorted","unspoken","unstable","unsteady","unstitch","unsubtle","unsubtly","unsuited","untagged","untapped","unthawed","unthread","untimely","untitled","unturned","unusable","unvalued","unvaried","unveiled","unvented","unviable","unwanted","unwashed","unwieldy","unworthy","upcoming","upheaval","uplifted","uprising","upstairs","upstream","upstroke","upturned","urethane","vacation","vagabond","vagrancy","vanquish","variable","variably","vascular","vaseline","vastness","velocity","vendetta","vengeful","venomous","verbally","vertical","vexingly","vicinity","viewable","viewless","vigorous","vineyard","violator","virtuous","viselike","visiting","vitality","vitalize","vitamins","vocalist","vocalize","vocation","volatile","washable","washbowl","washroom","waviness","whacking","whenever","whisking","whomever","whooping","wildcard","wildfire","wildfowl","wildland","wildlife","wildness","winnings","wireless","wisplike","wobbling","wreckage","wrecking","wrongful","yearbook","yearling","yearning","zeppelin","abdomen","abiding","ability","abreast","abridge","absence","absolve","abstain","acclaim","account","acetone","acquire","acrobat","acronym","actress","acutely","aerosol","affront","ageless","agility","agonize","aground","alfalfa","algebra","almanac","alright","amenity","amiable","ammonia","amnesty","amplify","amusing","anagram","anatomy","anchovy","ancient","android","angelic","angling","angrily","angular","animate","annuity","another","antacid","anthill","antonym","anybody","anymore","anytime","apostle","appease","applaud","applied","approve","apricot","armband","armhole","armless","armoire","armored","armrest","arousal","arrange","arrival","ashamed","aspirin","astound","astride","atrophy","attempt","auction","audible","audibly","average","aviator","awkward","backing","backlit","backlog","badland","badness","baggage","bagging","bagpipe","balance","balcony","banking","banshee","barbell","barcode","barista","barmaid","barrack","barrier","battery","batting","bazooka","blabber","bladder","blaming","blazing","blemish","blinked","blinker","bloated","blooper","blubber","blurred","boaster","bobbing","bobsled","bobtail","bolster","bonanza","bonding","bonfire","booting","bootleg","borough","boxlike","breeder","brewery","brewing","bridged","brigade","brisket","briskly","bristle","brittle","broaden","broadly","broiler","brought","budding","buffalo","buffing","buffoon","bulldog","bullion","bullish","bullpen","bunkbed","busload","cabbage","caboose","cadmium","cahoots","calcium","caliber","caloric","calorie","calzone","camping","candied","canning","canteen","capable","capably","capital","capitol","capsize","capsule","caption","captive","capture","caramel","caravan","cardiac","carless","carload","carnage","carpool","carport","carried","cartoon","carving","carwash","cascade","catalog","catcall","catcher","caterer","catfish","catlike","cattail","catwalk","causing","caution","cavalry","certify","chalice","chamber","channel","chapped","chapter","charger","chariot","charity","charred","charter","chasing","chatter","cheddar","chemist","chevron","chewing","choking","chooser","chowder","citable","citadel","citizen","clapped","clapper","clarify","clarity","clatter","cleaver","clicker","climate","clobber","cloning","closure","clothes","clubbed","clutter","coastal","coaster","cobbler","coconut","coexist","collage","collide","comfort","commend","comment","commode","commute","company","compare","compile","compost","comrade","concave","conceal","concept","concert","concise","condone","conduit","confess","confirm","conform","conical","conjure","consent","console","consult","contact","contend","contest","context","contort","contour","control","convene","convent","copilot","copious","corncob","coroner","correct","corrode","corsage","cottage","country","courier","coveted","coyness","crafter","cranial","cranium","craving","crazily","creamed","creamer","crested","crevice","crewman","cricket","crimson","crinkle","crinkly","crisped","crisply","critter","crouton","crowbar","crucial","crudely","cruelly","cruelty","crumpet","crunchy","crushed","crusher","cryptic","crystal","cubical","cubicle","culprit","culture","cupcake","cupping","curable","curator","curling","cursive","curtain","custard","custody","customs","cycling","cyclist","dancing","darkish","darling","dawdler","daycare","daylong","dayroom","daytime","dazzler","dealing","debrief","decency","decibel","decimal","decline","default","defense","defiant","deflate","defraud","defrost","delouse","density","dentist","denture","deplete","depress","deprive","derived","deserve","desktop","despair","despise","despite","destiny","detract","devalue","deviant","deviate","devious","devotee","diagram","dictate","dimness","dingbat","diocese","dioxide","diploma","dipping","disband","discard","discern","discuss","disdain","disjoin","dislike","dismiss","disobey","display","dispose","dispute","disrupt","distant","distill","distort","divided","dolphin","donated","donator","doorman","doormat","doorway","drained","drainer","drapery","drastic","dreaded","dribble","driller","driving","drizzle","drizzly","dropbox","droplet","dropout","dropper","duchess","ducking","dumping","durable","durably","dutiful","dwelled","dweller","dwindle","dynamic","dynasty","earache","eardrum","earflap","earlobe","earmark","earmuff","earring","earshot","earthen","earthly","easeful","easiest","eatable","eclipse","ecology","economy","edition","effects","egotism","elastic","elderly","elevate","elitism","ellipse","elusive","embargo","embassy","emblaze","emerald","emotion","empathy","emperor","empower","emptier","enclose","encrust","encrypt","endless","endnote","endorse","engaged","engorge","engross","enhance","enjoyer","enslave","ensnare","entitle","entrust","entwine","envious","episode","equator","equinox","erasure","erratic","esquire","essence","etching","eternal","ethanol","evacuee","evasion","evasive","evident","exalted","example","exclaim","exclude","exhaust","expanse","explain","explode","exploit","explore","express","extinct","extrude","faceted","faction","factoid","factual","faculty","failing","falsify","fanatic","fancied","fanfare","fanning","fantasy","fascism","fasting","favored","federal","fencing","ferment","festive","fiction","fidgety","fifteen","figment","filling","finally","finance","finicky","finless","finlike","flaccid","flagman","flakily","flanked","flaring","flatbed","flatten","flattop","fleshed","florist","flyable","flyaway","flyover","footage","footing","footman","footpad","footsie","founder","fragile","framing","frantic","fraying","freebee","freebie","freedom","freeing","freeway","freight","fretful","fretted","frisbee","fritter","frosted","gaining","gallery","gallows","gangway","garbage","garland","garment","garnish","gauging","generic","gentile","geology","gestate","gesture","getaway","getting","giddily","gimmick","gizzard","glacial","glacier","glamour","glaring","glazing","gleeful","gliding","glimmer","glimpse","glisten","glitter","gloater","glorify","glowing","glucose","glutton","goggles","goliath","gondola","gosling","grading","grafted","grandly","grandma","grandpa","granite","granola","grapple","gratify","grating","gravity","grazing","greeter","grimace","gristle","grouped","growing","gruffly","grumble","grumbly","guiding","gumball","gumdrop","gumming","gutless","guzzler","habitat","hacking","hacksaw","haggler","halogen","hammock","hamster","handbag","handful","handgun","handled","handler","handoff","handsaw","handset","hangout","happier","happily","hardhat","harmful","harmony","harness","harpist","harvest","hastily","hatchet","hatless","heading","headset","headway","heavily","heaving","hedging","helpful","helping","hemlock","heroics","heroism","herring","herself","hexagon","humming","hunting","hurling","hurried","husband","hydrant","iciness","ideally","imaging","imitate","immerse","impeach","implant","implode","impound","imprint","improve","impulse","islamic","isotope","issuing","italics","jackpot","janitor","january","jarring","jasmine","jawless","jawline","jaybird","jellied","jitters","jittery","jogging","joining","joyride","jugular","jujitsu","jukebox","juniper","junkman","justice","justify","karaoke","kindred","kinetic","kinfolk","kinship","kinsman","kissing","kitchen","kleenex","krypton","labored","laborer","ladybug","lagging","landing","lantern","lapping","latrine","launder","laundry","legible","legibly","legroom","legwork","leotard","letdown","lettuce","liberty","library","licking","lifting","liftoff","limeade","limping","linseed","liquefy","liqueur","livable","lividly","luckily","lullaby","lumping","lumpish","lustily","machine","magenta","magical","magnify","majesty","mammary","manager","manatee","mandate","manhole","manhood","manhunt","mankind","manlike","manmade","mannish","marbled","marbles","marital","married","marxism","mashing","massive","mastiff","matador","matcher","maximum","moaning","mobster","modular","moisten","mollusk","mongrel","monitor","monsoon","monthly","moocher","moonlit","morally","mortify","mounted","mourner","movable","mullets","mummify","mundane","mushily","mustang","mustard","mutable","myspace","mystify","napping","nastily","natural","nearest","nemeses","nemesis","nervous","neutron","nuclear","nucleus","nullify","numbing","numeral","numeric","nursery","nursing","nurture","nutcase","nutlike","obliged","obscure","obvious","octagon","october","octopus","ominous","onboard","ongoing","onshore","onstage","opacity","operate","opossum","osmosis","outback","outcast","outcome","outgrow","outlast","outline","outlook","outmost","outpost","outpour","outrage","outrank","outsell","outward","overact","overall","overbid","overdue","overfed","overlap","overlay","overpay","overrun","overtly","overuse","oxidant","oxidize","pacific","padding","padlock","pajamas","pampers","pancake","panning","panther","paprika","papyrus","paradox","parched","parking","parkway","parsley","parsnip","partake","parting","partner","passage","passing","passion","passive","pastime","pasture","patient","patriot","payable","payback","payment","payroll","pelican","penalty","pendant","pending","pennant","pension","percent","perfume","perjury","petunia","phantom","phoenix","phonics","placard","placate","planner","plaster","plastic","plating","platter","playful","playing","playoff","playpen","playset","pliable","plunder","plywood","pointed","pointer","polygon","polymer","popcorn","popular","portion","postage","postbox","posting","posture","postwar","pouring","powdery","pranker","praying","preachy","precise","precook","predict","preface","pregame","prelude","premium","prepaid","preplan","preshow","presoak","presume","preteen","pretext","pretzel","prevail","prevent","preview","primary","primate","privacy","private","probing","problem","process","prodigy","produce","product","profane","profile","progeny","program","propose","prorate","proving","provoke","prowess","prowler","pruning","psychic","pulsate","pungent","purging","puritan","pursuit","pushing","pushpin","putdown","pyramid","quaking","qualify","quality","quantum","quarrel","quartet","quicken","quickly","quintet","ragweed","railcar","railing","railway","ranging","ranking","ransack","ranting","rasping","ravioli","reactor","reapply","reawake","rebirth","rebound","rebuild","rebuilt","recital","reclaim","recluse","recolor","recount","rectify","reenact","reenter","reentry","referee","refined","refocus","refract","refrain","refresh","refried","refusal","regalia","regally","regress","regroup","regular","reissue","rejoice","relapse","related","relearn","release","reliant","relieve","relight","remarry","rematch","remnant","remorse","removal","removed","remover","renewal","renewed","reoccur","reorder","repaint","replace","replica","reprint","reprise","reptile","request","require","reroute","rescuer","reshape","reshoot","residue","respect","rethink","retinal","retired","retiree","retouch","retrace","retract","retrain","retread","retreat","retrial","retying","reunion","reunite","reveler","revenge","revenue","revered","reverse","revisit","revival","reviver","rewrite","ribcage","rickety","ricotta","rifling","rigging","rimless","rinsing","ripcord","ripping","riptide","risotto","ritalin","riveter","roaming","robbing","rocking","rotting","rotunda","roundup","routine","routing","rubbing","rubdown","rummage","rundown","running","rupture","sabbath","saddled","sadness","saffron","sagging","salvage","sandbag","sandbar","sandbox","sanding","sandlot","sandpit","sapling","sarcasm","sardine","satchel","satisfy","savanna","savings","scabbed","scalded","scaling","scallop","scandal","scanner","scarily","scholar","science","scooter","scoring","scoured","scratch","scrawny","scrooge","scruffy","scrunch","scuttle","secrecy","secular","segment","seismic","seizing","seltzer","seminar","senator","serpent","service","serving","setback","setting","seventh","seventy","shadily","shading","shakily","shaking","shallot","shallow","shampoo","shaping","sharper","sharpie","sharply","shelter","shifter","shimmer","shindig","shingle","shining","shopper","shorten","shorter","shortly","showbiz","showing","showman","showoff","shrivel","shudder","shuffle","siamese","sibling","sighing","silicon","sincere","singing","sinless","sinuous","sitting","sixfold","sixteen","sixties","sizable","sizably","skating","skeptic","skilled","skillet","skimmed","skimmer","skipper","skittle","skyline","skyward","slacked","slacker","slander","slashed","slather","slicing","sliding","sloping","slouchy","smartly","smasher","smashup","smitten","smoking","smolder","smother","snagged","snaking","snippet","snooper","snoring","snorkel","snowcap","snowman","snuggle","species","specked","speller","spender","spinach","spindle","spinner","spinout","spirits","splashy","splurge","spoiled","spoiler","sponsor","spotted","spotter","spousal","sputter","squeeze","squishy","stadium","staging","stained","stamina","stammer","stardom","staring","starlet","starlit","starter","startle","startup","starved","stature","statute","staunch","stellar","stencil","sterile","sternum","stiffen","stiffly","stimuli","stinger","stipend","stoning","stopped","stopper","storage","stowing","stratus","stretch","strudel","stubbed","stubble","stubbly","student","studied","stuffed","stumble","stunned","stunner","styling","stylist","subdued","subject","sublime","subplot","subside","subsidy","subsoil","subtext","subtype","subzero","suction","suffice","suggest","sulfate","sulfide","sulfite","support","supreme","surface","surgery","surging","surname","surpass","surplus","surreal","survive","suspect","suspend","swagger","swifter","swiftly","swimmer","swinger","swizzle","swooned","symptom","synapse","synergy","t-shirt","tabasco","tabloid","tacking","tactful","tactics","tactile","tadpole","tainted","tannery","tanning","tantrum","tapered","tapioca","tapping","tarnish","tasting","theater","thermal","thermos","thicken","thicket","thimble","thinner","thirsty","thrower","thyself","tidings","tighten","tightly","tigress","timothy","tinfoil","tinwork","tipping","tracing","tractor","trading","traffic","tragedy","traitor","trapeze","trapped","trapper","treason","trekker","tremble","tribune","tribute","triceps","trickle","trident","trilogy","trimmer","trinity","triumph","trivial","trodden","tropics","trouble","truffle","trustee","tubular","tucking","tuesday","tuition","turbine","turmoil","twiddle","twisted","twister","twitter","unaired","unawake","unaware","unbaked","unblock","unboxed","uncanny","unchain","uncheck","uncivil","unclasp","uncloak","uncouth","uncover","uncross","uncrown","uncured","undated","undergo","undoing","undress","undying","unearth","uneaten","unequal","unfazed","unfiled","unfixed","ungodly","unhappy","unheard","unhinge","unicorn","unified","unifier","unkempt","unknown","unlaced","unlatch","unleash","unlined","unloved","unlucky","unmixed","unmoral","unmoved","unnamed","unnerve","unpaved","unquote","unrated","unrobed","unsaved","unscrew","unstuck","unsworn","untaken","untamed","untaxed","untimed","untried","untruth","untwist","untying","unusual","unvocal","unweave","unwired","unwound","unwoven","upchuck","upfront","upgrade","upright","upriver","upscale","upstage","upstart","upstate","upswing","uptight","uranium","urgency","urology","useable","utensil","utility","utilize","vacancy","vaguely","valiant","vanilla","vantage","variety","various","varmint","varnish","varsity","varying","vending","venture","verbose","verdict","version","vertigo","veteran","victory","viewing","village","villain","vintage","violate","virtual","viscous","visible","visibly","visitor","vitally","vividly","vocally","voicing","voltage","volumes","voucher","walmart","wannabe","wanting","washday","washing","washout","washtub","wasting","whoever","whoopee","wielder","wildcat","willing","wincing","winking","wistful","womanly","worried","worrier","wrangle","wrecker","wriggle","wriggly","wrinkle","wrinkly","writing","written","wronged","wrongly","wrought","yanking","yapping","yelling","yiddish","zealous","zipfile","zipping","zoology","abacus","ablaze","abroad","absurd","accent","aching","acting","action","active","affair","affirm","afford","aflame","afloat","afraid","agency","agenda","aghast","agreed","aliens","almost","alumni","always","ambush","amends","amount","amulet","amused","amuser","anchor","anemia","anemic","angled","angler","angles","animal","anthem","antics","antler","anyhow","anyone","anyway","apache","appear","armful","arming","armory","around","arrest","arrive","ascend","ascent","asleep","aspect","aspire","astute","atrium","attach","attain","attest","attire","august","author","autism","avatar","avenge","avenue","awaken","awhile","awning","babble","babied","baboon","backed","backer","backup","badass","baffle","bagful","bagged","baggie","bakery","baking","bamboo","banana","banish","banked","banker","banner","banter","barbed","barber","barley","barman","barrel","basics","basket","batboy","battle","bauble","blazer","bleach","blinks","blouse","bluish","blurry","bobbed","bobble","bobcat","bogged","boggle","bonded","bonnet","bonsai","booted","bootie","boring","botany","bottle","bottom","bounce","bouncy","bovine","boxcar","boxing","breach","breath","breeze","breezy","bright","broken","broker","bronco","bronze","browse","brunch","bubble","bubbly","bucked","bucket","buckle","budget","buffed","buffer","bulgur","bundle","bungee","bunion","busboy","busily","cabana","cabbie","cackle","cactus","caddie","camera","camper","campus","canary","cancel","candle","canine","canned","cannon","cannot","canola","canopy","canyon","capped","carbon","carded","caress","caring","carrot","cartel","carton","casing","casino","casket","catchy","catnap","catnip","catsup","cattle","caucus","causal","caviar","cavity","celery","celtic","cement","census","chance","change","chaste","chatty","cheese","cheesy","cherub","chewer","chirpy","choice","choosy","chosen","chrome","chubby","chummy","cinema","circle","circus","citric","citrus","clammy","clamor","clause","clench","clever","client","clinic","clique","clover","clumsy","clunky","clutch","cobalt","cobweb","coerce","coffee","collar","collie","colony","coming","common","compel","comply","concur","copied","copier","coping","copper","cornea","corned","corner","corral","corset","cortex","cosmic","cosmos","cotton","county","cozily","cradle","crafty","crayon","crazed","crease","create","credit","creole","cringe","crispy","crouch","crummy","crying","cuddle","cuddly","cupped","curdle","curfew","curing","curled","curler","cursor","curtly","curtsy","cussed","cyclic","cymbal","dagger","dainty","dander","danger","dangle","dating","daybed","deacon","dealer","debate","debtor","debunk","decade","deceit","decent","decode","decree","deduce","deduct","deepen","deeply","deface","defame","defeat","defile","define","deftly","defuse","degree","delete","deluge","deluxe","demise","demote","denial","denote","dental","depict","deploy","deport","depose","deputy","derail","detail","detest","device","diaper","dicing","dilute","dimmed","dimmer","dimple","dinghy","dining","dinner","dipped","dipper","disarm","dismay","disown","diving","doable","docile","dollar","dollop","domain","doodle","dorsal","dosage","dotted","douche","dreamt","dreamy","dreary","drench","drippy","driven","driver","drudge","dubbed","duffel","dugout","duller","duplex","duress","during","earful","earthy","earwig","easily","easing","easter","eatery","eating","eclair","edging","editor","effort","egging","eggnog","either","elated","eldest","eleven","elixir","embark","emblem","embody","emboss","enable","enamel","encode","encore","ending","energy","engine","engulf","enrage","enrich","enroll","ensure","entail","entire","entity","entomb","entrap","entree","enzyme","equate","equity","erased","eraser","errand","errant","eskimo","estate","ethics","evolve","excess","excuse","exhale","exhume","exodus","expand","expend","expert","expire","expose","extent","extras","fabric","facial","facing","factor","fading","falcon","family","famine","faster","faucet","fedora","feeble","feisty","feline","fender","ferret","ferris","fervor","fester","fiddle","figure","filing","filled","filler","filter","finale","finite","flashy","flatly","fleshy","flight","flinch","floral","flying","follow","fondly","fondue","footer","fossil","foster","frayed","freely","french","frenzy","friday","fridge","friend","fringe","frolic","frosty","frozen","frying","galley","gallon","galore","gaming","gander","gangly","garage","garden","gargle","garlic","garnet","garter","gating","gazing","geiger","gender","gently","gerbil","giblet","giggle","giggly","gigolo","gilled","girdle","giving","gladly","glance","glider","glitch","glitzy","gloomy","gluten","gnarly","google","gopher","gorged","gossip","gothic","gotten","graded","grader","granny","gravel","graves","greedy","grinch","groggy","groove","groovy","ground","grower","grudge","grunge","gurgle","gutter","hacked","hacker","halved","halves","hamlet","hamper","handed","hangup","hankie","harbor","hardly","hassle","hatbox","hatred","hazard","hazily","hazing","headed","header","helium","helmet","helper","herald","herbal","hermit","hubcap","huddle","humble","humbly","hummus","humped","humvee","hunger","hungry","hunter","hurdle","hurled","hurler","hurray","husked","hybrid","hyphen","idiocy","ignore","iguana","impale","impart","impish","impose","impure","iodine","iodize","iphone","itunes","jackal","jacket","jailer","jargon","jersey","jester","jigsaw","jingle","jockey","jogger","jovial","joyous","juggle","jumble","junior","junkie","jurist","justly","karate","keenly","kennel","kettle","kimono","kindle","kindly","kisser","kitten","kosher","ladder","ladies","lagged","lagoon","landed","lapdog","lapped","laptop","lather","latter","launch","laurel","lavish","lazily","legacy","legend","legged","legume","length","lesser","letter","levers","liable","lifter","likely","liking","lining","linked","liquid","litmus","litter","little","lively","living","lizard","lugged","lumber","lunacy","lushly","luster","luxury","lyrics","maggot","maimed","making","mammal","manger","mangle","manila","manned","mantis","mantra","manual","margin","marina","marine","marlin","maroon","marrow","marshy","mascot","mashed","masses","mating","matrix","matron","matted","matter","mayday","moaner","mobile","mocker","mockup","modify","module","monday","mooing","mooned","morale","mosaic","motion","motive","moving","mowing","mulled","mumble","muppet","museum","musket","muster","mutate","mutiny","mutual","muzzle","myself","naming","napkin","napped","narrow","native","nature","nearby","nearly","neatly","nebula","nectar","negate","nephew","neuron","neuter","nibble","nimble","nimbly","nuclei","nugget","number","numbly","nutmeg","nuzzle","object","oblong","obtain","obtuse","occupy","ocelot","octane","online","onward","oppose","outage","outbid","outfit","outing","outlet","output","outwit","oxford","oxygen","oyster","pacify","padded","paddle","paging","palace","paltry","panama","pantry","papaya","parade","parcel","pardon","parish","parlor","parole","parrot","parted","partly","pasted","pastel","pastor","patchy","patrol","pauper","paving","pawing","payday","paying","pebble","pebbly","pectin","pellet","pelvis","pencil","penpal","perish","pester","petite","petted","phobia","phoney","phrase","plasma","plated","player","pledge","plenty","plural","pointy","poison","poking","police","policy","polish","poncho","poplar","popper","porous","portal","portly","posing","possum","postal","posted","poster","pounce","powwow","prance","prayer","precut","prefix","prelaw","prepay","preppy","preset","pretty","prewar","primal","primer","prison","prissy","pronto","proofs","proton","proved","proven","prozac","public","pucker","pueblo","pumice","pummel","puppet","purely","purify","purist","purity","purple","pusher","pushup","puzzle","python","quarry","quench","quiver","racing","racism","racoon","radial","radish","raffle","ragged","raging","raider","raisin","raking","ramble","ramrod","random","ranged","ranger","ranked","rarity","rascal","ravage","ravine","raving","reason","rebate","reboot","reborn","rebuff","recall","recant","recast","recede","recent","recess","recite","recoil","recopy","record","recoup","rectal","refill","reflex","reflux","refold","refund","refuse","refute","regain","reggae","regime","region","reheat","rehire","rejoin","relish","relive","reload","relock","remake","remark","remedy","remold","remote","rename","rental","rented","renter","reopen","repair","repave","repeal","repent","replay","repose","repost","resale","reseal","resend","resent","resize","resort","result","resume","retail","retake","retold","retool","return","retype","reveal","reverb","revert","revise","revoke","revolt","reward","rewash","rewind","rewire","reword","rework","rewrap","ribbon","riches","richly","ridden","riding","rimmed","ripple","rising","roamer","robust","rocker","rocket","roping","roster","rotten","roving","rubbed","rubber","rubble","ruckus","rudder","ruined","rumble","runner","runway","sacred","sadden","safari","safely","salami","salary","saline","saloon","salute","sample","sandal","sanded","savage","savior","scabby","scarce","scared","scenic","scheme","scorch","scored","scorer","scotch","scouts","screen","scribe","script","scroll","scurvy","second","secret","sector","sedate","seduce","seldom","senate","senior","septic","septum","sequel","series","sermon","sesame","settle","shabby","shaded","shadow","shanty","sheath","shelve","sherry","shield","shifty","shimmy","shorts","shorty","shower","shrank","shriek","shrill","shrimp","shrine","shrink","shrubs","shrunk","siding","sierra","siesta","silent","silica","silver","simile","simple","simply","singer","single","sinner","sister","sitcom","sitter","sizing","sizzle","skater","sketch","skewed","skewer","skiing","skinny","slacks","sleeve","sliced","slicer","slider","slinky","sliver","slogan","sloped","sloppy","sludge","smoked","smooth","smudge","smudgy","smugly","snazzy","sneeze","snitch","snooze","snugly","specks","speech","sphere","sphinx","spider","spiffy","spinal","spiral","spleen","splice","spoils","spoken","sponge","spongy","spooky","sports","sporty","spotty","spouse","sprain","sprang","sprawl","spring","sprint","sprite","sprout","spruce","sprung","squall","squash","squeak","squint","squire","squirt","stable","staple","starch","starry","static","statue","status","stench","stereo","stifle","stingy","stinky","stitch","stooge","streak","stream","street","stress","strewn","strict","stride","strife","strike","strive","strobe","strode","struck","strung","stucco","studio","stuffy","stupor","sturdy","stylus","sublet","subpar","subtly","suburb","subway","sudden","sudoku","suffix","suitor","sulfur","sullen","sultry","supper","supply","surely","surfer","survey","swerve","switch","swivel","swoosh","system","tables","tablet","tackle","taking","talcum","tamale","tamper","tanned","target","tarmac","tartar","tartly","tassel","tattle","tattoo","tavern","thesis","thinly","thirty","thrash","thread","thrift","thrill","thrive","throat","throng","tidbit","tiling","timing","tingle","tingly","tinker","tinsel","tipoff","tipped","tipper","tiptop","tiring","tissue","trance","travel","treble","tremor","trench","triage","tricky","trifle","tripod","trophy","trough","trowel","trunks","tumble","turban","turkey","turret","turtle","twelve","twenty","twisty","twitch","tycoon","umpire","unable","unbend","unbent","unclad","unclip","unclog","uncork","undead","undone","unease","uneasy","uneven","unfair","unfold","unglue","unholy","unhook","unison","unkind","unless","unmade","unpack","unpaid","unplug","unread","unreal","unrest","unripe","unroll","unruly","unsafe","unsaid","unseen","unsent","unsnap","unsold","unsure","untidy","untold","untrue","unused","unwary","unwell","unwind","unworn","upbeat","update","upheld","uphill","uphold","upload","uproar","uproot","upside","uptake","uptown","upward","upwind","urchin","urgent","urging","usable","utmost","utopia","vacant","vacate","valium","valley","vanish","vanity","varied","vastly","veggie","velcro","velvet","vendor","verify","versus","vessel","viable","viewer","violet","violin","vision","volley","voting","voyage","waffle","waggle","waking","walnut","walrus","wanted","wasabi","washed","washer","waving","whacky","whinny","whoops","widely","widget","wilder","wildly","willed","willow","winner","winter","wiring","wisdom","wizard","wobble","wobbly","wooing","wreath","wrench","yearly","yippee","yogurt","yonder","zodiac","zombie","zoning","abide","acorn","affix","afoot","agent","agile","aging","agony","ahead","alarm","album","alias","alibi","alike","alive","aloft","aloha","alone","aloof","amaze","amber","amigo","amino","amiss","among","ample","amply","amuck","anger","anime","ankle","annex","antsy","anvil","aorta","apple","apply","april","apron","aptly","arena","argue","arise","armed","aroma","arose","array","arson","ashen","ashes","aside","askew","atlas","attic","audio","avert","avoid","await","award","aware","awoke","bacon","badge","badly","bagel","baggy","baked","balmy","banjo","barge","basil","basin","basis","batch","baton","blade","blame","blank","blast","bleak","bleep","blend","bless","blimp","bling","blitz","bluff","blunt","blurb","blurt","blush","bogus","boned","boney","bonus","booth","boots","boozy","borax","botch","boxer","briar","bribe","brick","bride","bring","brink","brook","broom","brunt","brush","brute","buddy","buggy","bulge","bully","bunch","bunny","cable","cache","cacti","caddy","cadet","cameo","canal","candy","canon","carat","cargo","carol","carry","carve","catty","cause","cedar","chafe","chain","chair","chant","chaos","chaps","charm","chase","cheek","cheer","chemo","chess","chest","chevy","chewy","chief","chili","chill","chimp","chive","chomp","chuck","chump","chunk","churn","chute","cider","cinch","civic","civil","claim","clamp","clang","clash","clasp","class","clean","clear","cleat","cleft","clerk","cling","cloak","clock","clone","cloud","clump","coach","cocoa","comfy","comic","comma","conch","coral","corny","couch","cough","could","cover","cramp","crane","crank","crate","crave","crazy","creed","creme","crepe","crept","cried","crier","crimp","croak","crock","crook","croon","cross","crowd","crown","crumb","crust","cupid","curly","curry","curse","curve","curvy","cushy","cycle","daily","dairy","daisy","dance","dandy","dares","dealt","debit","debug","decaf","decal","decay","decoy","defog","deity","delay","delta","denim","dense","depth","derby","deuce","diary","dimly","diner","dingo","dingy","ditch","ditto","ditzy","dizzy","dodge","dodgy","doily","doing","dolly","donor","donut","doozy","dowry","drank","dress","dried","drier","drift","drone","drool","droop","drove","drown","ducky","duvet","dwarf","dweeb","eagle","early","easel","eaten","ebony","ebook","ecard","eject","elbow","elite","elope","elude","elves","email","ember","emcee","emote","empty","ended","envoy","equal","error","erupt","essay","ether","evade","evict","evoke","exact","exert","exile","expel","fable","false","fancy","feast","femur","fence","ferry","fetal","fetch","fever","fiber","fifth","fifty","filth","finch","finer","flail","flaky","flame","flask","flick","flier","fling","flint","flirt","float","flock","floss","flyer","folic","foyer","frail","frame","frays","fresh","fried","frill","frisk","front","froth","frown","fruit","gaffe","gains","gamma","gauze","gecko","genre","gents","getup","giant","giddy","gills","given","giver","gizmo","glade","glare","glass","glory","gloss","glove","going","gonad","gooey","goofy","grain","grant","grape","graph","grasp","grass","gravy","green","grief","grill","grime","grimy","groin","groom","grope","grout","grove","growl","grunt","guide","guise","gully","gummy","gusto","gusty","haiku","hanky","happy","hardy","harsh","haste","hasty","haunt","haven","heave","hedge","hefty","hence","henna","herbs","hertz","human","humid","hurry","icing","idiom","igloo","image","imply","irate","issue","ivory","jaunt","jawed","jelly","jiffy","jimmy","jolly","judge","juice","juicy","jumbo","juror","kabob","karma","kebab","kitty","knelt","knoll","koala","kooky","kudos","ladle","lance","lanky","lapel","large","lasso","latch","legal","lemon","level","lilac","lilly","limes","limit","lingo","lived","liver","lucid","lunar","lurch","lusty","lying","macaw","magma","maker","mango","mangy","manly","manor","march","mardi","marry","mauve","maybe","mocha","molar","moody","morse","mossy","motor","motto","mouse","mousy","mouth","movie","mower","mulch","mumbo","mummy","mumps","mural","murky","mushy","music","musky","musty","nacho","nanny","nappy","nervy","never","niece","nifty","ninja","ninth","nutty","nylon","oasis","ocean","olive","omega","onion","onset","opium","other","otter","ought","ounce","outer","ovary","ozone","paced","pagan","pager","panda","panic","pants","paper","parka","party","pasta","pasty","patio","paver","payee","payer","pecan","penny","perch","perky","pesky","petal","petri","petty","phony","photo","plank","plant","plaza","pleat","pluck","poach","poise","poker","polar","polio","polka","poppy","poser","pouch","pound","power","press","pried","primp","print","prior","prism","prize","probe","prone","prong","props","proud","proxy","prude","prune","pulse","punch","pupil","puppy","purge","purse","pushy","quack","quail","quake","qualm","query","quiet","quill","quilt","quirk","quote","rabid","radar","radio","rally","ranch","rants","raven","reach","rebel","rehab","relax","relay","relic","remix","reply","rerun","reset","retry","reuse","rhyme","rigid","rigor","rinse","ritzy","rival","roast","robin","rocky","rogue","roman","rover","royal","rumor","runny","rural","sadly","saggy","saint","salad","salon","salsa","sandy","santa","sappy","sassy","satin","saucy","sauna","saved","savor","scale","scant","scarf","scary","scion","scoff","scone","scoop","scope","scorn","scrap","scuba","scuff","sedan","sepia","serve","setup","shack","shady","shaft","shaky","shale","shame","shank","shape","share","shawl","sheep","sheet","shelf","shell","shine","shiny","shirt","shock","shone","shore","shout","shove","shown","showy","shrug","shush","silly","siren","sixth","skied","skier","skies","skirt","skype","slain","slang","slate","sleek","sleep","sleet","slept","slick","slimy","slurp","slush","small","smell","smile","smirk","smite","smith","smock","smoky","snack","snare","snarl","sneak","sneer","snide","sniff","snore","snort","snout","snowy","snuff","speak","speed","spent","spied","spill","spilt","spiny","spoof","spool","spoon","spore","spout","spray","spree","sprig","squad","squid","stack","staff","stage","stamp","stand","stank","stark","stash","state","stays","steam","steed","steep","stick","stilt","stock","stoic","stoke","stole","stomp","stony","stood","stool","stoop","storm","stout","stove","straw","stray","strep","strum","strut","stuck","study","stump","stung","stunt","suave","sugar","suing","sushi","swarm","swear","sweat","sweep","swell","swept","swipe","swirl","swoop","swore","sworn","swung","syrup","tabby","tacky","talon","tamer","tarot","taste","tasty","taunt","thank","theft","theme","these","thigh","thing","think","thong","thorn","those","thumb","tiara","tibia","tidal","tiger","timid","trace","track","trade","train","traps","trash","treat","trend","trial","tried","trout","truce","truck","trump","truth","tubby","tulip","tummy","tutor","tweak","tweed","tweet","twerp","twice","twine","twins","twirl","tying","udder","ultra","uncle","uncut","unify","union","unlit","untie","until","unwed","unzip","upper","urban","usage","usher","usual","utter","valid","value","vegan","venue","venus","verse","vibes","video","viper","viral","virus","visor","vista","vixen","voice","voter","vowed","vowel","wafer","waged","wager","wages","wagon","waltz","watch","water","wharf","wheat","whiff","whiny","whole","widen","widow","width","wince","wired","wispy","woozy","worry","worst","wound","woven","wrath","wrist","xerox","yahoo","yeast","yield","yo-yo","yodel","yummy","zebra","zesty","zippy","able","acid","acre","acts","afar","aged","ahoy","aide","aids","ajar","aloe","alto","amid","anew","aqua","area","army","ashy","atom","atop","avid","awry","axis","barn","bash","bath","bats","blah","blip","blob","blog","blot","boat","body","boil","bolt","bony","book","boss","both","boxy","brim","bulb","bulk","bunt","bush","bust","buzz","cage","cake","calm","cane","cape","case","cash","chef","chip","chop","chug","city","clad","claw","clay","clip","coat","coil","coke","cola","cold","colt","coma","come","cone","cope","copy","cork","cost","cozy","crib","crop","crux","cube","cure","cusp","darn","dart","dash","data","dawn","dean","deck","deed","deem","defy","deny","dial","dice","dill","dime","dish","disk","dock","dole","dork","dose","dove","down","doze","drab","draw","drew","drum","duct","dude","duke","duly","dupe","dusk","dust","duty","each","eats","ebay","echo","edge","edgy","emit","envy","epic","even","evil","exes","exit","fade","fall","fame","fang","feed","feel","film","five","flap","fled","flip","flop","foam","foil","folk","font","food","fool","from","gala","game","gave","gawk","gear","geek","gift","glue","gnat","goal","goes","golf","gone","gong","good","goon","gore","gory","gout","gown","grab","gray","grew","grid","grip","grit","grub","gulf","gulp","guru","gush","guts","half","halt","hash","hate","hazy","heap","heat","huff","hula","hulk","hull","hunk","hurt","hush","icky","icon","idly","ipad","ipod","iron","item","java","jaws","jazz","jeep","jinx","john","jolt","judo","july","jump","june","jury","keep","kelp","kept","kick","kiln","kilt","king","kite","kiwi","knee","kung","lair","lake","lard","lark","lash","last","late","lazy","left","lego","lend","lens","lent","life","lily","limb","line","lint","lion","lisp","list","lung","lure","lurk","mace","malt","mama","many","math","mold","most","move","much","muck","mule","mute","mutt","myth","nail","name","nape","navy","neon","nerd","nest","next","oboe","ogle","oink","okay","omen","omit","only","onto","onyx","oops","ooze","oozy","opal","open","ouch","oval","oven","palm","pang","path","pelt","perm","peso","plod","plop","plot","plow","ploy","plug","plus","poem","poet","pogo","polo","pond","pony","pope","pork","posh","pout","pull","pulp","puma","punk","purr","putt","quit","race","rack","raft","rage","rake","ramp","rare","rash","ream","rely","reps","rice","ride","rift","rind","rink","riot","rise","risk","robe","romp","rope","rosy","ruby","rule","runt","ruse","rush","rust","saga","sage","said","sake","salt","same","sank","sash","scam","self","send","shed","ship","shun","shut","sift","silk","silo","silt","size","skid","slab","slam","slaw","sled","slip","slit","slot","slug","slum","smog","snap","snub","spew","spry","spud","spur","stem","step","stew","stir","such","suds","sulk","swab","swan","sway","taco","take","tall","tank","taps","task","that","thaw","thee","thud","thus","tidy","tile","till","tilt","tint","tiny","tray","tree","trio","turf","tusk","tutu","twig","tyke","unit","upon","used","user","veal","very","vest","veto","vice","visa","void","wake","walk","wand","wasp","wavy","wham","wick","wife","wifi","wilt","wimp","wind","wing","wipe","wiry","wise","wish","wolf","womb","woof","wool","word","work","xbox","yard","yarn","yeah","yelp","yoga","yoyo","zero","zips","zone","zoom","aim","art","bok","cod","cut","dab","dad","dig","dry","duh","duo","eel","elf","elk","elm","emu","fax","fit","foe","fog","fox","gab","gag","gap","gas","gem","guy","had","hug","hut","ice","icy","ion","irk","ivy","jab","jam","jet","job","jot","keg","lid","lip","map","mom","mop","mud","mug","nag","net","oaf","oak","oat","oil","old","opt","owl","pep","pod","pox","pry","pug","rug","rut","say","shy","sip","sly","tag","try","tug","tux","wad","why","wok","wow","yam","yen","yin","zap","zen","zit"]};var Fa=a(323),qa=a.n(Fa);const Oa=[{id:"not_available",label:"n/a",strength:0},{id:"very-weak",label:"Very weak",strength:1},{id:"weak",label:"Weak",strength:60},{id:"fair",label:"Fair",strength:80},{id:"strong",label:"Strong",strength:112},{id:"very-strong",label:"Very strong",strength:128}],Wa=[{name:"upper",label:"A-Z",characters:["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"],active:!0},{name:"lower",label:"a-z",characters:["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"],active:!0},{name:"digit",label:"0-9",characters:["0","1","2","3","4","5","6","7","8","9"],active:!0},{name:"special_char1",label:"# $ % & @ ^ ~",characters:["#","$","%","&","@","^","~"],active:!0},{name:"parenthesis",label:"{ [ ( | ) ] ] }",characters:["{","(","[","|","]",")","}"],active:!0},{name:"special_char2",label:". , : ;",characters:[".",",",":",";"],active:!0},{name:"special_char3",label:"' \" `",characters:["'",'"',"`"],active:!0},{name:"special_char4",label:"/ \\ _ -",characters:["/","\\","_","-"],active:!0},{name:"special_char5",label:"< * + ! ? =",characters:["<","*","+","!","?","="],active:!0},{name:"emoji",label:"😘",characters:["😀","😁","😂","😃","😄","😅","😆","😇","😈","😉","😊","😋","😌","😍","😎","😏","😐","😑","😒","😓","😔","😕","😖","😗","😘","😙","😚","😛","😜","😝","😞","😟","😠","😡","😢","😣","😤","😥","😦","😧","😨","😩","😪","😫","😬","😭","😮","😯","😰","😱","😲","😳","😴","😵","😶","😷","😸","😹","😺","😻","😼","😽","😾","😿","🙀","🙁","🙂","🙃","🙄","🙅","🙆","🙇","🙈","🙉","🙊","🙋","🙌","🙍","🙎","🙏"]}],Ka=(e="")=>{const t=(new(qa())).splitGraphemes(e);let a=0;for(const e of Wa)t.some((t=>e.characters.includes(t)))&&(a+=e.characters.length);return Ba(t.length,a)},Va=(e=0,t="")=>{const a=Ma["en-UK"];return Ba(e,128*t.length+a.length+3)},Ha=(e=0)=>Oa.reduce(((t,a)=>t?a.strength>t.strength&&e>=a.strength?a:t:a));function Ba(e,t){return e&&t?e*(Math.log(t)/Math.log(2)):0}const Ga=function(e){if(!e)return{isPassphrase:!1};const t=Ma["en-UK"].reduce(((e,t)=>{const a=e.remainingSecret.replace(new RegExp(t,"g"),""),n=(e.remainingSecret.length-a.length)/t.length;return{numberReplacement:e.numberReplacement+n,remainingSecret:a}}),{numberReplacement:0,remainingSecret:e.toLowerCase()}),a=t.numberReplacement-1,n=t.remainingSecret.length/a,o=t.remainingSecret.length%a!=0,i=0==t.remainingSecret.length;if(o)return{isPassphrase:!1};if(i)return{numberWords:t.numberReplacement,separator:"",isPassphrase:!0};const s=t.remainingSecret.substring(0,n),r=String(s).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1"),l=0===t.remainingSecret.replace(new RegExp(r,"g"),"").length;return{numberWords:t.numberReplacement,separator:s,isPassphrase:l&&!e.startsWith(s)&&!e.endsWith(s)}};class $a extends n.Component{colorGradient(e,t,a,n){let o,i,s=e/100*2;return s>=1?(s-=1,o=this.hexToRgb(a),i=this.hexToRgb(n)):(o=this.hexToRgb(t),i=this.hexToRgb(a)),`rgb(${Math.floor(o.red+(i.red-o.red)*s)},${Math.floor(o.green+(i.green-o.green)*s)},${Math.floor(o.blue+(i.blue-o.blue)*s)})`}hexToRgb(e){const t=new RegExp("^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$","i").exec(e.trim());return t?{red:parseInt(t[1],16),green:parseInt(t[2],16),blue:parseInt(t[3],16)}:null}get complexityBarStyle(){const e=100-99/(1+Math.pow(this.props.entropy/90,10));return{background:`linear-gradient(to right, ${this.colorGradient(e,"#A40000","#FFA724","#0EAA00")} ${e}%, var(--complexity-bar-background-default) ${e}%`}}get entropy(){return(this.props.entropy||0).toFixed(1)}hasEntropy(){return null!==this.props.entropy&&void 0!==this.props.entropy}hasError(){return this.props.error}render(){const e=Ha(this.props.entropy);return n.createElement("div",{className:"password-complexity"},n.createElement("span",{className:"complexity-text"},(this.hasEntropy()||this.hasError())&&n.createElement(n.Fragment,null,e.label," (",n.createElement(v.c,null,"entropy:")," ",this.entropy," bits)"),!this.hasEntropy()&&!this.hasError()&&n.createElement(v.c,null,"Quality")),n.createElement("span",{className:"progress"},n.createElement("span",{className:"progress-bar "+(this.hasError()?"error":""),style:this.hasEntropy()?this.complexityBarStyle:void 0})))}}$a.defaultProps={entropy:null},$a.propTypes={entropy:s().number,error:s().bool};const Za=(0,k.Z)("common")($a);class Ya extends Error{constructor(e){super(e=e||"The external service is unavailable"),this.name="ExternalServiceUnavailableError"}}const Ja=Ya;class Qa extends Error{constructor(e){super(e=e||"An error occurred when requesting the external service."),this.name="ExternalServiceError"}}const Xa=Qa;class en extends n.Component{constructor(e){super(e),this.state=this.defaultState,this.isPwndProcessingPromise=null,this.evaluatePassphraseIsInDictionaryDebounce=Pa()(this.evaluatePassphraseIsInDictionary,300),this.bindCallbacks(),this.createInputRef()}get defaultState(){return{name:"",nameError:"",email:"",emailError:"",algorithm:"RSA",keySize:4096,passphrase:"",passphraseErrorState:0,passphraseWarning:"",passphraseEntropy:null,hasAlreadyBeenValidated:!1,isPwned:!1,isPwnedServiceAvailable:!0}}componentDidMount(){this.pownedService=new class{constructor(e){this.port=e}async evaluateSecret(e){let t=!0,a=!0;if(e.length>=8)try{t=await this.checkIfPasswordPowned(e)}catch(e){t=!1,a=!1}return{inDictionary:t,isPwnedServiceAvailable:a}}async checkIfPasswordPowned(e){return await this.port.request("passbolt.secrets.powned-password",e)>0}}(this.props.context.port)}bindCallbacks(){this.handleFormSubmit=this.handleFormSubmit.bind(this),this.handleInputChange=this.handleInputChange.bind(this),this.handleNameInputKeyUp=this.handleNameInputKeyUp.bind(this),this.handleEmailInputKeyUp=this.handleEmailInputKeyUp.bind(this),this.handlePassphraseChange=this.handlePassphraseChange.bind(this)}createInputRef(){this.nameInputRef=n.createRef(),this.emailInputRef=n.createRef(),this.passphraseInputRef=n.createRef()}handleNameInputKeyUp(){this.state.hasAlreadyBeenValidated&&this.validateNameInput()}validateNameInput(){let e=null;return this.state.name.trim().length||(e=this.translate("A name is required.")),this.setState({nameError:e}),null===e}handleEmailInputKeyUp(){this.state.hasAlreadyBeenValidated&&this.validateEmailInput()}validateEmailInput(){let e=null;const t=this.state.email.trim();return t.length?this.isEmail(t)||(e=this.translate("Please enter a valid email address.")):e=this.translate("An email is required."),this.setState({email:t,emailError:e}),null===e}isEmail(e){return De()("^[\\p{L}0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\p{L}0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[_\\p{L}0-9][-_\\p{L}0-9]*\\.)*(?:[\\p{L}0-9][-\\p{L}0-9]{0,62})\\.(?:(?:[a-z]{2}\\.)?[a-z]{2,})$").test(e)}async handlePassphraseChange(e){const t=e.target.value,a=t?.length?(e=>{const{numberWords:t,separator:a,isPassphrase:n}=Ga(e);return n?Va(t,a):Ka(e)})(t):null,n=4===this.state.passphraseErrorState?0:this.state.passphraseErrorState;if(this.setState({passphrase:t,passphraseEntropy:a,passphraseErrorState:n}),a>=80&&(this.isPwndProcessingPromise=this.evaluatePassphraseIsInDictionaryDebounce()),this.state.hasAlreadyBeenValidated)await this.validatePassphraseInput(t,a);else{const e=t.length>=4096,a=this.translate("this is the maximum size for this field, make sure your data was not truncated"),n=e?a:"";this.setState({passphraseWarning:n})}}async validatePassphraseInput(e,t){let a=0;return e?.length?t<80&&(a=2):a=1,this.setState({passphraseErrorState:a}),0===a}async evaluatePassphraseIsInDictionary(){if(!this.state.isPwnedServiceAvailable)return!1;let e;try{const t=await this.pownedService.evaluateSecret(this.state.passphrase);e=t.inDictionary,this.setState({isPwnedServiceAvailable:t.isPwnedServiceAvailable})}catch(e){if(e instanceof Ja||e instanceof Xa)return this.setState({isPwnedServiceAvailable:!1}),!1;throw e}let t=this.state.passphraseErrorState,a=this.state.passphraseEntropy;return e&&(t=4,a=0),this.setState({isPwned:e,passphraseEntropy:a,passphraseErrorState:t}),e}handleInputChange(e){const t=e.target;this.setState({[t.name]:t.value})}handleValidateError(){this.focusFirstFieldError()}focusFirstFieldError(){this.state.nameError?this.nameInputRef.current.focus():this.state.emailError?this.emailInputRef.current.focus():0!==this.state.passphraseErrorState&&this.passphraseInputRef.current.focus()}async handleFormSubmit(e){e.preventDefault(),this.state.processing||(await this.isPwndProcessingPromise,this.state.isPwned||await this.save())}async save(){if(this.setState({hasAlreadyBeenValidated:!0}),this.toggleProcessing(),!await this.validate())return this.handleValidateError(),void this.toggleProcessing();const e=await this.generateKey();this.props.onUpdateOrganizationKey(e.public_key.armored_key,e.private_key.armored_key)}async validate(){const e=this.validateNameInput(),t=this.validateEmailInput(),a=await this.validatePassphraseInput(this.state.passphrase,this.state.passphraseEntropy);return e&&t&&a}async generateKey(){const e={name:this.state.name,email:this.state.email,algorithm:this.state.algorithm,keySize:this.state.keySize,passphrase:this.state.passphrase};return await this.props.context.port.request("passbolt.account-recovery.generate-organization-key",e)}toggleProcessing(){this.setState({processing:!this.state.processing})}hasAllInputDisabled(){return this.state.processing}get translate(){return this.props.t}render(){return n.createElement("form",{onSubmit:this.handleFormSubmit,noValidate:!0},n.createElement("div",{className:"form-content generate-organization-key"},n.createElement("div",{className:"input text required "+(this.state.nameError?"error":"")},n.createElement("label",{htmlFor:"generate-organization-key-form-name"},n.createElement(v.c,null,"Name")),n.createElement("input",{id:"generate-organization-key-form-name",name:"name",type:"text",value:this.state.name,onKeyUp:this.handleNameInputKeyUp,onChange:this.handleInputChange,disabled:this.hasAllInputDisabled(),ref:this.nameInputRef,className:"required fluid",maxLength:"64",required:"required",autoComplete:"off",autoFocus:!0,placeholder:this.translate("Name")}),this.state.nameError&&n.createElement("div",{className:"name error-message"},this.state.nameError)),n.createElement("div",{className:"input text required "+(this.state.emailError?"error":"")},n.createElement("label",{htmlFor:"generate-organization-key-form-email"},n.createElement(v.c,null,"Email")),n.createElement("input",{id:"generate-organization-key-form-email",name:"email",ref:this.emailInputRef,className:"required fluid",maxLength:"64",type:"email",autoComplete:"off",value:this.state.email,onChange:this.handleInputChange,placeholder:this.translate("Email Address"),onKeyUp:this.handleEmailInputKeyUp,disabled:this.hasAllInputDisabled(),required:"required"}),this.state.emailError&&n.createElement("div",{className:"email error-message"},this.state.emailError)),n.createElement("div",{className:"input select-wrapper"},n.createElement("label",{htmlFor:"generate-organization-key-form-algorithm"},n.createElement(v.c,null,"Algorithm"),n.createElement(Xe,{message:this.translate("Algorithm and key size cannot be changed at the moment. These are secure default")},n.createElement(le,{name:"info-circle"}))),n.createElement("input",{id:"generate-organization-key-form-algorithm",name:"algorithm",value:this.state.algorithm,className:"fluid",type:"text",autoComplete:"off",disabled:!0})),n.createElement("div",{className:"input select-wrapper"},n.createElement("label",{htmlFor:"generate-organization-key-form-keySize"},n.createElement(v.c,null,"Key Size"),n.createElement(Xe,{message:this.translate("Algorithm and key size cannot be changed at the moment. These are secure default")},n.createElement(le,{name:"info-circle"}))),n.createElement("input",{id:"generate-organization-key-form-key-size",name:"keySize",value:this.state.keySize,className:"fluid",type:"text",autoComplete:"off",disabled:!0})),n.createElement("div",{className:"input-password-wrapper input required "+(0!==this.state.passphraseErrorState?"error":"")},n.createElement("label",{htmlFor:"generate-organization-key-form-password"},n.createElement(v.c,null,"Organization key passphrase"),this.state.passphraseWarning&&n.createElement(le,{name:"exclamation"})),n.createElement(Me,{id:"generate-organization-key-form-password",name:"password",placeholder:this.translate("Passphrase"),autoComplete:"new-password",preview:!0,securityToken:this.props.context.userSettings.getSecurityToken(),value:this.state.passphrase,onChange:this.handlePassphraseChange,disabled:this.hasAllInputDisabled(),inputRef:this.passphraseInputRef}),n.createElement(Za,{entropy:this.state.passphraseEntropy}),0!==this.state.passphraseErrorState&&n.createElement("div",{className:"password error-message"},{1:n.createElement(v.c,null,"A passphrase is required."),2:n.createElement(v.c,null,"A strong passphrase is required. The minimum complexity must be 'fair'"),4:n.createElement(v.c,null,"The passphrase should not be part of an exposed data breach.")}[this.state.passphraseErrorState]),this.state.passphraseWarning&&n.createElement("div",{className:"password warning-message"},n.createElement("strong",null,n.createElement(v.c,null,"Warning:"))," ",this.state.passphraseWarning),!this.state.isPwnedServiceAvailable&&n.createElement("div",{className:"password warning-message"},n.createElement("strong",null,n.createElement(v.c,null,"Warning:"))," ",n.createElement(v.c,null,"The pwnedpasswords service is unavailable, your passphrase might be part of an exposed data breach")))),!this.state.hasAlreadyBeenValidated&&n.createElement("div",{className:"warning message",id:"generate-organization-key-setting-overridden-banner"},n.createElement("p",null,n.createElement(v.c,null,"Warning, we encourage you to generate your OpenPGP Organization Recovery Key separately. Make sure you keep a backup in a safe place."))),n.createElement("div",{className:"submit-wrapper clearfix"},n.createElement(nt,{disabled:this.hasAllInputDisabled(),onClick:this.props.onClose}),n.createElement(Bt,{disabled:this.hasAllInputDisabled(),processing:this.state.processing,value:this.translate("Generate & Apply")})))}}en.propTypes={context:s().any,onUpdateOrganizationKey:s().func,onClose:s().func,t:s().func};const tn=R(g((0,k.Z)("common")(en)));function an(){return an=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},an.apply(this,arguments)}class nn extends n.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks()}get defaultState(){return{processing:!1}}bindCallbacks(){this.handleCloseClick=this.handleCloseClick.bind(this),this.handleApplyChanges=this.handleApplyChanges.bind(this)}handleCloseClick(){this.props.onClose()}handleApplyChanges(e,t){this.handleCloseClick(),this.props.handleUpdateOrganizationKey(e,t)}render(){return n.createElement(tt,{title:this.props.t("Organization Recovery Key"),onClose:this.handleCloseClick,disabled:this.state.processing,className:"organization-recover-key-dialog"},n.createElement(Ta,{activeTabName:"Import"},n.createElement(za,{key:"Import",name:"Import",type:"Import"},n.createElement(Ua,an({},this.props,{onClose:this.handleCloseClick,onUpdateOrganizationKey:this.handleApplyChanges}))),n.createElement(za,{key:"Generate",name:"Generate",type:"Generate"},n.createElement(tn,an({},this.props,{onClose:this.handleCloseClick,onUpdateOrganizationKey:this.handleApplyChanges})))))}}nn.propTypes={handleUpdateOrganizationKey:s().func,onClose:s().func,t:s().func};const on=(0,k.Z)("common")(nn);class sn extends n.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks()}get defaultState(){return{processing:!1}}bindCallbacks(){this.handleCloseClick=this.handleCloseClick.bind(this)}handleCloseClick(){this.props.onClose()}render(){return n.createElement(tt,{title:this.props.t("Confirm Organization Recovery Key download"),onClose:this.handleCloseClick,disabled:!1,className:"organization-recover-key-download-dialog"},n.createElement("div",{className:"dialog-body"},n.createElement("p",null,n.createElement(v.c,null,"A download of the organization private key has automatically started."),n.createElement("br",null),n.createElement(v.c,null,"Make sure your print it or store it in a safe place. You may need it later!"))),n.createElement("div",{className:"dialog-footer clearfix"},n.createElement("button",{className:"button button-left cancel medium",type:"button",onClick:this.props.handleDownloadAgain},n.createElement(v.c,null,"Download again")),n.createElement("button",{className:"button primary",role:"button",type:"button",onClick:this.handleCloseClick,disabled:this.isProcessing},n.createElement("span",null,n.createElement(v.c,null,"Ok")))))}}sn.propTypes={onClose:s().func,handleDownloadAgain:s().func,privateKey:s().string,t:s().func};const rn=(0,k.Z)("common")(sn);class ln extends n.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks()}get defaultState(){return{keyInfoDto:null,loading:!0,processing:!1}}async componentDidMount(){this.props.administrationWorkspaceContext.setDisplayAdministrationWorkspaceAction(Ra),this.findAccountRecoveryPolicy()}componentWillUnmount(){this.props.administrationWorkspaceContext.resetDisplayAdministrationWorkspaceAction(),this.props.adminAccountRecoveryContext.resetChanges()}async componentDidUpdate(){const e=this.props?.adminAccountRecoveryContext?.policyChanges?.publicKey||this.props?.adminAccountRecoveryContext?.currentPolicy?.account_recovery_organization_public_key?.armored_key,t=await(this.props?.adminAccountRecoveryContext?.getKeyInfo(e));Boolean(e)&&this.state.keyInfoDto?.fingerprint!==t?.fingerprint?this.setState({keyInfoDto:t}):!e&&this.state.keyInfoDto&&this.setState({keyInfoDto:null})}bindCallbacks(){this.handlePolicyInputChange=this.handlePolicyInputChange.bind(this),this.HandleUpdatePublicKeyClick=this.HandleUpdatePublicKeyClick.bind(this),this.handleUpdateOrganizationKey=this.handleUpdateOrganizationKey.bind(this),this.downloadPrivateKey=this.downloadPrivateKey.bind(this)}get policy(){return this.props.adminAccountRecoveryContext.policyChanges.policy||this.props.adminAccountRecoveryContext.currentPolicy?.policy}get organizationKey(){return this.props.adminAccountRecoveryContext.policyChanges.publicKey||this.props.adminAccountRecoveryContext.currentPolicy?.account_recovery_organization_public_key.armored_key}get organizationKeyInfo(){return this.state.keyInfoDto}async findAccountRecoveryPolicy(){await this.props.adminAccountRecoveryContext.findAccountRecoveryPolicy(),this.setState({loading:!1})}async handlePolicyInputChange(e){const t=e.target.value;"disabled"===t&&this.resetKeyInfo(),await this.props.adminAccountRecoveryContext.changePolicy(t)}HandleUpdatePublicKeyClick(){this.props.dialogContext.open(on,{handleUpdateOrganizationKey:this.handleUpdateOrganizationKey})}async handleUpdateOrganizationKey(e,t){this.resetKeyInfo(),await this.props.adminAccountRecoveryContext.changePublicKey(e),t&&await this.downloadPrivateKey(t)}async downloadPrivateKey(e){await this.props.adminAccountRecoveryContext.downloadPrivateKey(e),this.props.dialogContext.open(rn,{privateKey:e,handleDownloadAgain:async()=>{await this.props.adminAccountRecoveryContext.downloadPrivateKey(e)}})}hasAllInputDisabled(){return this.state.processing||this.state.loading}hasOrganisationRecoveryKey(){const e=this.state.keyInfoDto;return Boolean(e)}isPolicyEnabled(){return Boolean("disabled"!==this.policy)}resetKeyInfo(){this.setState({keyInfoDto:null})}async toggleProcessing(){this.setState({processing:!this.state.processing})}formatDateTimeAgo(e){if(null===e)return"n/a";if("Infinity"===e)return this.translate("Never");const t=qt.ou.fromISO(e),a=t.diffNow().toMillis();return a>-1e3&&a<0?this.translate("Just now"):t.toRelative({locale:this.props.context.locale})}formatFingerprint(e){if(!e)return null;const t=e.toUpperCase().replace(/.{4}/g,"$& ");return n.createElement(n.Fragment,null,t.substr(0,24),n.createElement("br",null),t.substr(25))}formatUserIds(e){return e?e.map(((e,t)=>n.createElement(n.Fragment,{key:t},e.name," <",e.email,">",n.createElement("br",null)))):null}get translate(){return this.props.t}render(){return n.createElement("div",{className:"row"},n.createElement("div",{className:"recover-account-settings col8 main-column"},n.createElement("h3",null,n.createElement(v.c,null,"Account Recovery")),this.props.adminAccountRecoveryContext.hasPolicyChanges()&&n.createElement("div",{className:"warning message",id:"email-notification-setting-overridden-banner"},n.createElement("p",null,n.createElement(v.c,null,"Don't forget to save your settings to apply your modification."))),!this.hasOrganisationRecoveryKey()&&this.isPolicyEnabled()&&n.createElement("div",{className:"warning message",id:"email-notification-setting-overridden-banner"},n.createElement("p",null,n.createElement(v.c,null,"Warning, Don't forget to add an organization recovery key."))),n.createElement("form",{className:"form"},n.createElement("h4",{className:"no-border"},n.createElement(v.c,null,"Account Recovery Policy")),n.createElement("p",null,n.createElement(v.c,null,"In this section you can choose the default behavior of account recovery for all users.")),n.createElement("div",{className:"radiolist-alt"},n.createElement("div",{className:"input radio "+("mandatory"===this.policy?"checked":"")},n.createElement("input",{type:"radio",value:"mandatory",onChange:this.handlePolicyInputChange,name:"accountRecoveryPolicy",checked:"mandatory"===this.policy,id:"accountRecoveryPolicyMandatory",disabled:this.hasAllInputDisabled()}),n.createElement("label",{htmlFor:"accountRecoveryPolicyMandatory"},n.createElement("span",{className:"name"},n.createElement(v.c,null,"Mandatory")),n.createElement("span",{className:"info"},n.createElement(v.c,null,"Every user is required to provide a copy of their private key and passphrase during setup."),n.createElement("br",null),n.createElement(v.c,null,"You should inform your users not to store personal passwords.")))),n.createElement("div",{className:"input radio "+("opt-out"===this.policy?"checked":"")},n.createElement("input",{type:"radio",value:"opt-out",onChange:this.handlePolicyInputChange,name:"accountRecoveryPolicy",checked:"opt-out"===this.policy,id:"accountRecoveryPolicyOptOut",disabled:this.hasAllInputDisabled()}),n.createElement("label",{htmlFor:"accountRecoveryPolicyOptOut"},n.createElement("span",{className:"name"},n.createElement(v.c,null,"Optional, Opt-out")),n.createElement("span",{className:"info"},n.createElement(v.c,null,"Every user will be prompted to provide a copy of their private key and passphrase by default during the setup, but they can opt out.")))),n.createElement("div",{className:"input radio "+("opt-in"===this.policy?"checked":"")},n.createElement("input",{type:"radio",value:"opt-in",onChange:this.handlePolicyInputChange,name:"accountRecoveryPolicy",checked:"opt-in"===this.policy,id:"accountRecoveryPolicyOptIn",disabled:this.hasAllInputDisabled()}),n.createElement("label",{htmlFor:"accountRecoveryPolicyOptIn"},n.createElement("span",{className:"name"},n.createElement(v.c,null,"Optional, Opt-in")),n.createElement("span",{className:"info"},n.createElement(v.c,null,"Every user can decide to provide a copy of their private key and passphrase by default during the setup, but they can opt in.")))),n.createElement("div",{className:"input radio "+("disabled"===this.policy?"checked":"")},n.createElement("input",{type:"radio",value:"disabled",onChange:this.handlePolicyInputChange,name:"accountRecoveryPolicy",checked:"disabled"===this.policy,id:"accountRecoveryPolicyDisable",disabled:this.hasAllInputDisabled()}),n.createElement("label",{htmlFor:"accountRecoveryPolicyDisable"},n.createElement("span",{className:"name"},n.createElement(v.c,null,"Disable (Default)")),n.createElement("span",{className:"info"},n.createElement(v.c,null,"Backup of the private key and passphrase will not be stored. This is the safest option."),n.createElement(v.c,null,"If users lose their private key and passphrase they will not be able to recover their account."))))),n.createElement("h4",null,n.createElement("span",{className:"input toggle-switch form-element "},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"organisationRecoveryKeyToggle",disabled:this.hasAllInputDisabled(),checked:this.isPolicyEnabled(),id:"recovery-key-toggle-button"}),n.createElement("label",{htmlFor:"recovery-key-toggle-button"},n.createElement(v.c,null,"Organization Recovery Key")))),this.isPolicyEnabled()&&n.createElement(n.Fragment,null,n.createElement("p",null,n.createElement(v.c,null,"Your organization recovery key will be used to decrypt and recover the private key and passphrase of the users that are participating in the account recovery program.")," ",n.createElement(v.c,null,"The organization private recovery key should not be stored in passbolt.")," ",n.createElement(v.c,null,"You should keep it offline in a safe place.")),n.createElement("div",{className:"recovery-key-details"},n.createElement("table",{className:"table-info recovery-key"},n.createElement("tbody",null,n.createElement("tr",{className:"user-ids"},n.createElement("td",{className:"label"},n.createElement(v.c,null,"User ids")),this.organizationKeyInfo?.user_ids&&n.createElement("td",{className:"value"},this.formatUserIds(this.organizationKeyInfo.user_ids)),!this.organizationKeyInfo?.user_ids&&n.createElement("td",{className:"empty-value"},n.createElement(v.c,null,"not available")),n.createElement("td",{className:"table-button"},n.createElement("button",{className:"button primary medium",type:"button",disabled:this.hasAllInputDisabled(),onClick:this.HandleUpdatePublicKeyClick},this.hasOrganisationRecoveryKey()&&n.createElement(v.c,null,"Rotate Key"),!this.hasOrganisationRecoveryKey()&&n.createElement(v.c,null,"Add an Organization Recovery Key")))),n.createElement("tr",{className:"fingerprint"},n.createElement("td",{className:"label"},n.createElement(v.c,null,"Fingerprint")),this.organizationKeyInfo?.fingerprint&&n.createElement("td",{className:"value"},this.formatFingerprint(this.organizationKeyInfo.fingerprint)),!this.organizationKeyInfo?.fingerprint&&n.createElement("td",{className:"empty-value"},n.createElement(v.c,null,"not available"))),n.createElement("tr",{className:"algorithm"},n.createElement("td",{className:"label"},n.createElement(v.c,null,"Algorithm")),this.organizationKeyInfo?.algorithm&&n.createElement("td",{className:"value"},this.organizationKeyInfo.algorithm),!this.organizationKeyInfo?.algorithm&&n.createElement("td",{className:"empty-value"},n.createElement(v.c,null,"not available"))),n.createElement("tr",{className:"key-length"},n.createElement("td",{className:"label"},n.createElement(v.c,null,"Key length")),this.organizationKeyInfo?.length&&n.createElement("td",{className:"value"},this.organizationKeyInfo.length),!this.organizationKeyInfo?.length&&n.createElement("td",{className:"empty-value"},n.createElement(v.c,null,"not available"))),n.createElement("tr",{className:"created"},n.createElement("td",{className:"label"},n.createElement(v.c,null,"Created")),this.organizationKeyInfo?.created&&n.createElement("td",{className:"value"},this.formatDateTimeAgo(this.organizationKeyInfo.created)),!this.organizationKeyInfo?.created&&n.createElement("td",{className:"empty-value"},n.createElement(v.c,null,"not available"))),n.createElement("tr",{className:"expires"},n.createElement("td",{className:"label"},n.createElement(v.c,null,"Expires")),this.organizationKeyInfo?.expires&&n.createElement("td",{className:"value"},this.formatDateTimeAgo(this.organizationKeyInfo.expires)),!this.organizationKeyInfo?.expires&&n.createElement("td",{className:"empty-value"},n.createElement(v.c,null,"not available"))))))))),n.createElement("div",{className:"col4 last"},n.createElement("div",{className:"sidebar-help"},n.createElement("h3",null,n.createElement(v.c,null,"Need some help?")),n.createElement("p",null,n.createElement(v.c,null,"For more information about account recovery, checkout the dedicated page on the help website.")),n.createElement("a",{className:"button",href:"https://help.passbolt.com/configure/account-recovery",target:"_blank",rel:"noopener noreferrer"},n.createElement(le,{name:"life-ring"}),n.createElement("span",null,n.createElement(v.c,null,"Read the documentation"))))))}}ln.propTypes={context:s().object,dialogContext:s().any,administrationWorkspaceContext:s().object,adminAccountRecoveryContext:s().object,t:s().func};const cn=R(g(F(ya((0,k.Z)("common")(ln))))),mn={25:{port:25,tls:!1},2525:{port:2525,tls:!1},587:{port:587,tls:!0},588:{port:588,tls:!0}};function dn(e,t){const a=[];for(let n=0;n<e.length;n++){const o=e[n];for(let e=0;e<t.length;e++){const n=mn[t[e].toString()];a.push({host:o,...n})}}return a}function hn(e,t,a){return e.availableConfigurations.find((e=>(!a||e.host===a)&&e.port===t))}const un={id:"aws-ses",name:"AWS SES",icon:"aws-ses.svg",help_page:"https://docs.aws.amazon.com/ses/latest/dg/send-email-smtp.html",availableConfigurations:dn(function(){const e=[];return["us-east-2","us-east-1","us-west-1","us-west-2","ap-south-1","ap-northeast-3","ap-northeast-2","ap-northeast-1","ap-southeast-1","ap-southeast-2","ca-central-1","eu-central-1","eu-west-1","eu-west-2","eu-west-3","sa-east-1","us-gov-west-1"].forEach((t=>{e.push(`email-smtp.${t}.amazonaws.com`)})),e}(),[25,2525,587])};un.defaultConfiguration=hn(un,587,"email-smtp.eu-central-1.amazonaws.com");const pn={id:"elastic-email",name:"ElasticEmail",icon:"elastic-email.svg",help_page:"https://help.elasticemail.com/en/articles/4803409-smtp-settings",availableConfigurations:dn(["smtp.elasticemail.com","smtp25.elasticemail.com"],[25,2525,587])};pn.defaultConfiguration=hn(pn,587,"smtp.elasticemail.com");const gn={id:"gmail",name:"Gmail",icon:"gmail.svg",help_page:"https://support.google.com/a/answer/2956491",availableConfigurations:dn(["smtp-relay.gmail.com"],[25,587])};gn.defaultConfiguration=hn(gn,587);const bn={id:"mailgun",name:"MailGun",icon:"mailgun.svg",help_page:"https://documentation.mailgun.com/en/latest/quickstart-sending.html",availableConfigurations:dn(["smtp.mailgun.com"],[587])};bn.defaultConfiguration=bn.availableConfigurations[0];const fn={id:"mailjet",name:"Mailjet",icon:"mailjet.svg",help_page:"https://dev.mailjet.com/smtp-relay/configuration/",availableConfigurations:dn(["in-v3.mailjet.com"],[25,2525,587,588])};fn.defaultConfiguration=hn(fn,587);const yn={id:"mandrill",name:"Mandrill",icon:"mandrill.svg",help_page:"https://mailchimp.com/developer/transactional/docs/smtp-integration/",availableConfigurations:dn(["smtp.mandrillapp.com"],[25,2525,587])};yn.defaultConfiguration=hn(yn,587);const vn={id:"sendgrid",name:"Sendgrid",icon:"sendgrid.svg",help_page:"https://docs.sendgrid.com/for-developers/sending-email/integrating-with-the-smtp-api",availableConfigurations:dn(["smtp.sendgrid.com"],[25,2525,587])};vn.defaultConfiguration=hn(vn,587);const kn={id:"sendinblue",name:"Sendinblue",icon:"sendinblue.svg",help_page:"https://help.sendinblue.com/hc/en-us/articles/209462765",availableConfigurations:dn(["smtp-relay.sendinblue.com"],[25,587])};kn.defaultConfiguration=hn(kn,587);const En={id:"zoho",name:"Zoho",icon:"zoho.svg",help_page:"https://www.zoho.com/mail/help/zoho-smtp.html",availableConfigurations:dn(["smtp.zoho.eu","smtppro.zoho.eu"],[587])};En.defaultConfiguration=hn(En,587,"smtp.zoho.eu");const wn=[un,pn,gn,bn,fn,yn,vn,kn,En,{id:"other",name:"Other",icon:null,availableConfigurations:[],defaultConfiguration:{host:"",port:"",tls:!0}}];function Cn(){return Cn=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},Cn.apply(this,arguments)}const Sn=n.createContext({getCurrentSmtpSettings:()=>{},findSmtpSettings:()=>{},changeProvider:()=>{},setData:()=>{},isSettingsModified:()=>{},isSettingsValid:()=>{},getErrors:()=>{},validateData:()=>{},getFieldToFocus:()=>{},saveSmtpSettings:()=>{},isProcessing:()=>{},hasProviderChanged:()=>{},sendTestMailTo:()=>{},isDataReady:()=>{},clearContext:()=>{}});class xn extends n.Component{constructor(e){super(e),this.state=this.defaultState;const t=e.context.getApiClientOptions();this.smtpSettingsModel=new class{constructor(e){this.smtpSettingsService=new class{constructor(e){e.setResourceName("smtp/settings"),this.apiClient=new xe(e)}async find(){const e=(await this.apiClient.findAll())?.body;return e.tls=Boolean(e?.tls),e}async save(e){const t=(await this.apiClient.create(e)).body;return t.tls=Boolean(t.tls),t}}(e)}findSmtpSettings(){return this.smtpSettingsService.find()}saveSmtpSettings(e){return this.smtpSettingsService.save(e)}}(t),this.smtpTestSettingsModel=new class{constructor(e){this.smtpTestSettingsService=new class{constructor(e){e.setResourceName("smtp/email"),this.apiClient=new xe(e)}async sendTestEmail(e){return(await this.apiClient.create(e)).body}}(e)}sendTestEmail(e,t){const{sender_name:a,sender_email:n,host:o,port:i,username:s,password:r,tls:l}=e,c={sender_name:a,sender_email:n,host:o,port:i,username:s,password:r,tls:l,email_test_to:t};return this.smtpTestSettingsService.sendTestEmail(c)}}(t),this.fieldToFocus=null,this.providerHasChanged=!1}get defaultState(){return{settingsModified:!1,currentSmtpSettings:{provider:null,username:"",password:"",host:"",tls:!0,port:"",sender_email:"",sender_name:"Passbolt"},errors:{},isLoaded:!1,processing:!1,hasSumittedForm:!1,getCurrentSmtpSettings:this.getCurrentSmtpSettings.bind(this),findSmtpSettings:this.findSmtpSettings.bind(this),changeProvider:this.changeProvider.bind(this),setData:this.setData.bind(this),isSettingsModified:this.isSettingsModified.bind(this),getErrors:this.getErrors.bind(this),validateData:this.validateData.bind(this),getFieldToFocus:this.getFieldToFocus.bind(this),saveSmtpSettings:this.saveSmtpSettings.bind(this),isProcessing:this.isProcessing.bind(this),hasProviderChanged:this.hasProviderChanged.bind(this),sendTestMailTo:this.sendTestMailTo.bind(this),isDataReady:this.isDataReady.bind(this),clearContext:this.clearContext.bind(this)}}async findSmtpSettings(){if(this.props.context.siteSettings.canIUse("smtpSettings"))try{const e=await this.smtpSettingsModel.findSmtpSettings();e.sender_email||(e.sender_email=this.props.context.loggedInUser.username),e.host&&e.port&&(e.provider=this.detectProvider(e)),this.setState({currentSmtpSettings:e,isLoaded:!0})}catch(e){this.setState({isLoaded:!0,currentSmtpSettings:{...this.state.currentSmtpSettings,sender_email:this.props.context.loggedInUser.username}}),this.handleError(e)}}clearContext(){const{settingsModified:e,currentSmtpSettings:t,errors:a,isLoaded:n,processing:o,hasSumittedForm:i}=this.defaultState;this.setState({settingsModified:e,currentSmtpSettings:t,errors:a,isLoaded:n,processing:o,hasSumittedForm:i})}async saveSmtpSettings(){this._doProcess((async()=>{try{const e={...this.state.currentSmtpSettings};delete e.provider,await this.smtpSettingsModel.saveSmtpSettings(e),this.props.actionFeedbackContext.displaySuccess(this.props.t("The SMTP settings have been saved successfully"));const t=Object.assign({},this.state.currentSmtpSettings,{source:"db"});this.setState({currentSmtpSettings:t})}catch(e){this.handleError(e)}}))}async sendTestMailTo(e){return await this.smtpTestSettingsModel.sendTestEmail(this.getCurrentSmtpSettings(),e)}_doProcess(e){this.setState({processing:!0},(async()=>{await e(),this.setState({processing:!1})}))}hasProviderChanged(){const e=this.providerHasChanged;return this.providerHasChanged=!1,e}changeProvider(e){e.id!==this.state.currentSmtpSettings.provider?.id&&(this.providerHasChanged=!0,this.setState({settingsModified:!0,currentSmtpSettings:{...this.state.currentSmtpSettings,...e.defaultConfiguration,provider:e}}))}setData(e){const t=Object.assign({},this.state.currentSmtpSettings,e),a={currentSmtpSettings:{...t,provider:this.detectProvider(t)},settingsModified:!0};this.setState(a),this.state.hasSumittedForm&&this.validateData(t)}detectProvider(e){for(let t=0;t<wn.length;t++){const a=wn[t];if(a.availableConfigurations.find((t=>t.host===e.host&&t.port===parseInt(e.port,10)&&t.tls===e.tls)))return a}return wn.find((e=>"other"===e.id))}isDataReady(){return this.state.isLoaded}isProcessing(){return this.state.processing}isSettingsModified(){return this.state.settingsModified}getErrors(){return this.state.errors}validateData(e){e=e||this.state.currentSmtpSettings;const t={};let a=!0;return a=this.validate_host(e.host,t)&&a,a=this.validate_sender_email(e.sender_email,t)&&a,a=this.validate_sender_name(e.sender_name,t)&&a,a=this.validate_username(e.username,t)&&a,a=this.validate_password(e.password,t)&&a,a=this.validate_port(e.port,t)&&a,a=this.validate_tls(e.tls,t)&&a,a||(this.fieldToFocus=this.getFirstFieldInError(t,["username","password","host","tls","port","sender_name","sender_email"])),this.setState({errors:t,hasSumittedForm:!0}),a}validate_host(e,t){return"string"!=typeof e?(t.host=this.props.t("SMTP Host must be a valid string"),!1):0!==e.length||(t.host=this.props.t("SMTP Host is required"),!1)}validate_sender_email(e,t){return"string"!=typeof e?(t.sender_email=this.props.t("Sender email must be a valid email"),!1):0===e.length?(t.sender_email=this.props.t("Sender email is required"),!1):!!this.isEmail(e)||(t.sender_email=this.props.t("Sender email must be a valid email"),!1)}validate_sender_name(e,t){return"string"!=typeof e?(t.sender_name=this.props.t("Sender name must be a valid string"),!1):0!==e.length||(t.sender_name=this.props.t("Sender name is required"),!1)}validate_username(e,t){return null===e||"string"==typeof e||(t.username=this.props.t("Username must be a valid string"),!1)}validate_password(e,t){return null===e||"string"==typeof e||(t.password=this.props.t("Password must be a valid string"),!1)}validate_tls(e,t){return"boolean"==typeof e||(t.tls=this.props.t("TLS must be set to 'Yes' or 'No'"),!1)}validate_port(e,t){const a=parseInt(e,10);return isNaN(a)?(t.port=this.props.t("Port must be a valid number"),!1):!(a<1||a>65535)||(t.port=this.props.t("Port must be a number between 1 and 65535"),!1)}getFirstFieldInError(e,t){for(let a=0;a<t.length;a++){const n=t[a];if(void 0!==e[n])return n}return null}isEmail(e){return De()("^[\\p{L}0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\p{L}0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[_\\p{L}0-9][-_\\p{L}0-9]*\\.)*(?:[\\p{L}0-9][-\\p{L}0-9]{0,62})\\.(?:(?:[a-z]{2}\\.)?[a-z]{2,})$").test(e)}getCurrentSmtpSettings(){return this.state.currentSmtpSettings}getFieldToFocus(){const e=this.fieldToFocus;return this.fieldToFocus=null,e}handleError(e){console.error(e),this.props.dialogContext.open(Vt,{error:e})}render(){return n.createElement(Sn.Provider,{value:this.state},this.props.children)}}xn.propTypes={context:s().any,dialogContext:s().object,actionFeedbackContext:s().object,children:s().any,t:s().func};const Nn=R(g(d((0,k.Z)("common")(xn))));function Ln(e){return class extends n.Component{render(){return n.createElement(Sn.Consumer,null,(t=>n.createElement(e,Cn({adminSmtpSettingsContext:t},this.props))))}}}const In="form",Rn="error",An="success";class zn extends n.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks()}get defaultState(){return{uiState:In,recipient:this.props.context.loggedInUser.username,processing:!1,displayLogs:!0}}bindCallbacks(){this.handleRetryClick=this.handleRetryClick.bind(this),this.handleError=this.handleError.bind(this),this.handleFormSubmit=this.handleFormSubmit.bind(this),this.handleInputChange=this.handleInputChange.bind(this),this.handleDisplayLogsClick=this.handleDisplayLogsClick.bind(this)}async handleFormSubmit(e){if(e.preventDefault(),this.validateForm()){try{this.setState({processing:!0});const e=await this.props.adminSmtpSettingsContext.sendTestMailTo(this.state.recipient);this.setState({uiState:An,debugDetails:this.formatDebug(e.debug),displayLogs:!1})}catch(e){this.handleError(e)}this.setState({processing:!1})}}async handleInputChange(e){this.setState({recipient:e.target.value})}validateForm(){const e=De()("^[\\p{L}0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\p{L}0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[_\\p{L}0-9][-_\\p{L}0-9]*\\.)*(?:[\\p{L}0-9][-\\p{L}0-9]{0,62})\\.(?:(?:[a-z]{2}\\.)?[a-z]{2,})$").test(this.state.recipient);return this.setState({recipientError:e?"":this.translate("Recipient must be a valid email")}),e}formatDebug(e){return JSON.stringify(e,null,4)}handleError(e){const t=e.data?.body?.debug,a=t?.length>0?t:e?.message;this.setState({uiState:Rn,debugDetails:this.formatDebug(a),displayLogs:!0})}handleDisplayLogsClick(){this.setState({displayLogs:!this.state.displayLogs})}handleRetryClick(){this.setState({uiState:In})}hasAllInputDisabled(){return this.state.processing}get title(){return{form:this.translate("Send test email"),error:this.translate("Something went wrong!"),success:this.translate("Email sent")}[this.state.uiState]||""}get translate(){return this.props.t}render(){return n.createElement(tt,{className:"send-test-email-dialog",title:this.title,onClose:this.props.handleClose,disabled:this.hasAllInputDisabled()},this.state.uiState===In&&n.createElement("form",{onSubmit:this.handleFormSubmit,noValidate:!0},n.createElement("div",{className:"form-content"},n.createElement("div",{className:`input text required ${this.state.recipientError?"error":""} ${this.hasAllInputDisabled()?"disabled":""}`},n.createElement("label",null,n.createElement(v.c,null,"Recipient")),n.createElement("input",{id:"recipient",type:"text",name:"recipient",required:"required",className:"required fluid form-element ready",placeholder:"name@email.com",onChange:this.handleInputChange,value:this.state.recipient,disabled:this.hasAllInputDisabled()}),this.state.recipientError&&n.createElement("div",{className:"recipient error-message"},this.state.recipientError))),n.createElement("div",{className:"message notice"},n.createElement("strong",null,n.createElement(v.c,null,"Pro tip"),":")," ",n.createElement(v.c,null,"after clicking on send, a test email will be sent to the recipient email in order to check that your configuration is correct.")),n.createElement("div",{className:"submit-wrapper clearfix"},n.createElement(nt,{disabled:this.hasAllInputDisabled(),onClick:this.props.handleClose}),n.createElement(Bt,{disabled:this.hasAllInputDisabled(),processing:this.state.processing,value:this.translate("Send")}))),this.state.uiState===Rn&&n.createElement(n.Fragment,null,n.createElement("div",{className:"dialog-body"},n.createElement("p",null,n.createElement(v.c,null,"The test email could not be sent. Kindly check the logs below for more information."),n.createElement("br",null),n.createElement("a",{className:"faq-link",href:"https://help.passbolt.com/faq/hosting/why-email-not-sent",rel:"noopener noreferrer",target:"_blank"},n.createElement(v.c,null,"FAQ: Why are my emails not sent?"))),n.createElement("div",{className:"accordion-header"},n.createElement("a",{onClick:this.handleDisplayLogsClick},n.createElement(le,{name:this.state.displayLogs?"caret-down":"caret-right"})," ",n.createElement(v.c,null,"Logs"))),this.state.displayLogs&&n.createElement("div",{className:"accordion-content"},n.createElement("textarea",{className:"full_report",readOnly:!0,value:this.state.debugDetails}))),n.createElement("div",{className:"dialog-footer clearfix"},n.createElement("a",{className:"cancel",role:"button",disabled:this.hasAllInputDisabled(),onClick:this.handleRetryClick},n.createElement(v.c,null,"Retry")),n.createElement("button",{className:"button primary",role:"button",type:"button",onClick:this.props.handleClose,disabled:this.isProcessing},n.createElement("span",null,n.createElement(v.c,null,"Close"))))),this.state.uiState===An&&n.createElement(n.Fragment,null,n.createElement("div",{className:"dialog-body"},n.createElement("p",null,n.createElement(v.c,null,"The test email has been sent. Check your email box, you should receive it in a minute.")),n.createElement("div",{className:"accordion-header"},n.createElement("a",{onClick:this.handleDisplayLogsClick},n.createElement(le,{name:this.state.displayLogs?"caret-down":"caret-right"})," ",n.createElement(v.c,null,"Logs"))),this.state.displayLogs&&n.createElement("div",{className:"accordion-content"},n.createElement("textarea",{className:"full_report",readOnly:!0,value:this.state.debugDetails}))),n.createElement("div",{className:"message notice"},n.createElement("strong",null,n.createElement(v.c,null,"Pro tip"),":")," ",n.createElement(v.c,null,"Check your spam folder if you do not hear from us after a while.")),n.createElement("div",{className:"dialog-footer clearfix"},n.createElement("a",{className:"cancel",role:"button",disabled:this.hasAllInputDisabled(),onClick:this.handleRetryClick},n.createElement(v.c,null,"Retry")),n.createElement("button",{className:"button primary",role:"button",type:"button",onClick:this.props.handleClose,disabled:this.isProcessing},n.createElement("span",null,n.createElement(v.c,null,"Close"))))))}}zn.propTypes={context:s().object,adminSmtpSettingsContext:s().object,handleClose:s().func,t:s().func};const Dn=R(Ln((0,k.Z)("common")(zn)));class Tn extends n.Component{constructor(e){super(e),this.bindCallbacks(),this.dialogId=null}bindCallbacks(){this.handleSaveClick=this.handleSaveClick.bind(this),this.handleTestClick=this.handleTestClick.bind(this),this.handleCloseDialog=this.handleCloseDialog.bind(this)}async handleSaveClick(){this.smtpSettings.isProcessing()||this.smtpSettings.validateData()&&await this.smtpSettings.saveSmtpSettings()}async handleTestClick(){this.smtpSettings.isProcessing()||this.smtpSettings.validateData()&&(null!==this.dialogId&&this.handleCloseDialog(),this.dialogId=await this.props.dialogContext.open(Dn,{handleClose:this.handleCloseDialog}))}handleCloseDialog(){this.props.dialogContext.close(this.dialogId),this.dialogId=null}isSaveEnabled(){return this.smtpSettings.isSettingsModified()&&!this.smtpSettings.isProcessing()}isTestEnabled(){return this.smtpSettings.isSettingsModified()&&!this.smtpSettings.isProcessing()}get smtpSettings(){return this.props.adminSmtpSettingsContext}render(){return n.createElement("div",{className:"col2_3 actions-wrapper"},n.createElement("div",{className:"actions"},n.createElement("div",null,n.createElement("li",null,n.createElement("a",{className:"button "+(this.isSaveEnabled()?"":"disabled"),onClick:this.handleSaveClick},n.createElement(le,{name:"save"}),n.createElement("span",null,n.createElement(v.c,null,"Save settings"))))),n.createElement("div",null,n.createElement("li",null,n.createElement("a",{className:"button "+(this.isTestEnabled()?"":"disabled"),onClick:this.handleTestClick},n.createElement(le,{name:"plug"}),n.createElement("span",null,n.createElement(v.c,null,"Send test email")))))))}}Tn.propTypes={adminSmtpSettingsContext:s().object,workflowContext:s().any,dialogContext:s().object};const jn=Ln(g((0,k.Z)("common")(Tn))),Un="None",_n="Username only",Pn="Username & password";class Mn extends n.Component{static get AUTHENTICATION_METHOD_NONE(){return Un}static get AUTHENTICATION_METHOD_USERNAME(){return _n}static get AUTHENTICATION_METHOD_USERNAME_PASSWORD(){return Pn}constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks(),this.createRefs()}get defaultState(){return{showAdvancedSettings:!1,source:"db"}}createRefs(){this.usernameFieldRef=n.createRef(),this.passwordFieldRef=n.createRef(),this.hostFieldRef=n.createRef(),this.portFieldRef=n.createRef(),this.senderEmailFieldRef=n.createRef(),this.senderNameFieldRef=n.createRef()}async componentDidMount(){this.props.administrationWorkspaceContext.setDisplayAdministrationWorkspaceAction(jn),await this.props.adminSmtpSettingsContext.findSmtpSettings();const e=this.props.adminSmtpSettingsContext.getCurrentSmtpSettings();this.setState({showAdvancedSettings:"other"===e.provider?.id})}componentWillUnmount(){this.props.administrationWorkspaceContext.resetDisplayAdministrationWorkspaceAction(),this.props.adminSmtpSettingsContext.clearContext()}componentDidUpdate(){const e=this.props.adminSmtpSettingsContext,t=e.getFieldToFocus();t&&this[`${t}FieldRef`]?.current?.focus(),e.hasProviderChanged()&&this.setState({showAdvancedSettings:"other"===e.getCurrentSmtpSettings().provider?.id})}bindCallbacks(){this.handleAdvancedSettingsToggle=this.handleAdvancedSettingsToggle.bind(this),this.handleInputChange=this.handleInputChange.bind(this),this.handleProviderChange=this.handleProviderChange.bind(this),this.handleAuthenticationMethodChange=this.handleAuthenticationMethodChange.bind(this)}handleProviderChange(e){const t=e.target.value,a=wn.find((e=>e.id===t));this.props.adminSmtpSettingsContext.changeProvider(a)}handleAuthenticationMethodChange(e){let t=null,a=null;e.target.value===_n?t="":e.target.value===Pn&&(t="",a=""),this.props.adminSmtpSettingsContext.setData({username:t,password:a})}handleInputChange(e){const t=e.target;this.props.adminSmtpSettingsContext.setData({[t.name]:t.value})}handleAdvancedSettingsToggle(){this.setState({showAdvancedSettings:!this.state.showAdvancedSettings})}isProcessing(){return this.props.adminSmtpSettingsContext.isProcessing()}get providerList(){return wn.map((e=>({value:e.id,label:e.name})))}get authenticationMethodList(){return[{value:Un,label:this.translate("None")},{value:_n,label:this.translate("Username only")},{value:Pn,label:this.translate("Username & password")}]}get tlsSelectList(){return[{value:!0,label:this.translate("Yes")},{value:!1,label:this.translate("No")}]}get authenticationMethod(){const e=this.props.adminSmtpSettingsContext.getCurrentSmtpSettings();return null===e?.username?Un:null===e?.password?_n:Pn}shouldDisplayUsername(){return this.authenticationMethod===_n||this.authenticationMethod===Pn}shouldDisplayPassword(){return this.authenticationMethod===Pn}shouldShowSourceWarningMessage(){const e=this.props.adminSmtpSettingsContext;return"db"!==e.getCurrentSmtpSettings().source&&e.isSettingsModified()}isReady(){return this.props.adminSmtpSettingsContext.isDataReady()}get translate(){return this.props.t}render(){const e=this.props.adminSmtpSettingsContext.getCurrentSmtpSettings(),t=this.props.adminSmtpSettingsContext.getErrors();return n.createElement("div",{className:"grid grid-responsive-12"},n.createElement("div",{className:"row"},n.createElement("div",{className:"third-party-provider-settings smtp-settings col8 main-column"},n.createElement("h3",null,n.createElement(v.c,null,"Email server")),this.isReady()&&!e?.provider&&n.createElement(n.Fragment,null,n.createElement("h4",{className:"no-border"},n.createElement(v.c,null,"Select a provider")),n.createElement("div",{className:"provider-list"},wn.map((e=>n.createElement("div",{key:e.id,className:"provider button",id:e.id,onClick:()=>this.props.adminSmtpSettingsContext.changeProvider(e)},n.createElement("div",{className:"provider-logo"},"other"===e.id&&n.createElement(le,{name:"envelope"}),"other"!==e.id&&n.createElement("img",{src:`${this.props.context.trustedDomain}/img/third_party/${e.icon}`})),n.createElement("p",{className:"provider-name"},e.name)))))),this.isReady()&&e?.provider&&n.createElement(n.Fragment,null,this.shouldShowSourceWarningMessage()&&n.createElement("div",{className:"warning message"},n.createElement(v.c,null,n.createElement("b",null,"Warning:")," These are the settings provided by a configuration file. If you save it, will ignore the settings on file and use the ones from the database.")),n.createElement("form",{className:"form"},n.createElement("h4",{className:"no-border"},n.createElement(v.c,null,"SMTP server configuration")),n.createElement("div",{className:"select-wrapper input required "+(this.isProcessing()?"disabled":"")},n.createElement("label",{htmlFor:"smtp-settings-form-provider"},n.createElement(v.c,null,"Email provider")),n.createElement(Ze,{id:"smtp-settings-form-provider",name:"provider",items:this.providerList,value:e.provider.id,onChange:this.handleProviderChange,disabled:this.isProcessing()})),n.createElement("div",{className:"select-wrapper input required "+(this.isProcessing()?"disabled":"")},n.createElement("label",{htmlFor:"smtp-settings-form-authentication-method"},n.createElement(v.c,null,"Authentication method")),n.createElement(Ze,{id:"smtp-settings-form-authentication-method",name:"authentication-method",items:this.authenticationMethodList,value:this.authenticationMethod,onChange:this.handleAuthenticationMethodChange,disabled:this.isProcessing()})),this.shouldDisplayUsername()&&n.createElement("div",{className:`input text ${t.username?"error":""} ${this.isProcessing()?"disabled":""}`},n.createElement("label",{htmlFor:"smtp-settings-form-username"},n.createElement(v.c,null,"Username")),n.createElement("input",{id:"smtp-settings-form-username",ref:this.usernameFieldRef,name:"username",className:"fluid",maxLength:"256",type:"text",autoComplete:"off",value:e.username,onChange:this.handleInputChange,placeholder:this.translate("Username"),disabled:this.isProcessing()}),t.username&&n.createElement("div",{className:"error-message"},t.username)),this.shouldDisplayPassword()&&n.createElement("div",{className:`input-password-wrapper input ${t.password?"error":""} ${this.isProcessing()?"disabled":""}`},n.createElement("label",{htmlFor:"smtp-settings-form-password"},n.createElement(v.c,null,"Password")),n.createElement(Me,{id:"smtp-settings-form-password",name:"password",autoComplete:"new-password",placeholder:this.translate("Password"),preview:!0,value:e.password,onChange:this.handleInputChange,disabled:this.isProcessing(),inputRef:this.passwordFieldRef}),t.password&&n.createElement("div",{className:"password error-message"},t.password)),n.createElement("div",{className:"accordion-header"},n.createElement("a",{onClick:this.handleAdvancedSettingsToggle},n.createElement(le,{name:this.state.showAdvancedSettings?"caret-down":"caret-right"}),n.createElement(v.c,null,"Advanced settings"))),this.state.showAdvancedSettings&&n.createElement("div",{className:"advanced-settings"},n.createElement("div",{className:`input text required ${t.host?"error":""} ${this.isProcessing()?"disabled":""}`},n.createElement("label",{htmlFor:"smtp-settings-form-host"},n.createElement(v.c,null,"SMTP host")),n.createElement("input",{id:"smtp-settings-form-host",ref:this.hostFieldRef,name:"host",className:"fluid",maxLength:"256",type:"text",autoComplete:"off",value:e.host,onChange:this.handleInputChange,placeholder:this.translate("SMTP server address"),disabled:this.isProcessing()}),t.host&&n.createElement("div",{className:"error-message"},t.host)),n.createElement("div",{className:`input text required ${t.tls?"error":""} ${this.isProcessing()?"disabled":""}`},n.createElement("label",{htmlFor:"smtp-settings-form-tls"},n.createElement(v.c,null,"Use TLS")),n.createElement(Ze,{id:"smtp-settings-form-tls",name:"tls",items:this.tlsSelectList,value:e.tls,onChange:this.handleInputChange,disabled:this.isProcessing()})),n.createElement("div",{className:`input text required ${t.port?"error":""} ${this.isProcessing()?"disabled":""}`},n.createElement("label",{htmlFor:"smtp-settings-form-port"},n.createElement(v.c,null,"Port")),n.createElement("input",{id:"smtp-settings-form-port",ref:this.portFieldRef,name:"port",className:"fluid",maxLength:"256",type:"text",autoComplete:"off",value:e.port,onChange:this.handleInputChange,placeholder:this.translate("Port number"),disabled:this.isProcessing()}),t.port&&n.createElement("div",{className:"error-message"},t.port))),n.createElement("h4",null,n.createElement(v.c,null,"Sender configuration")),n.createElement("div",{className:`input text required ${t.sender_name?"error":""} ${this.isProcessing()?"disabled":""}`},n.createElement("label",{htmlFor:"smtp-settings-form-sender-name"},n.createElement(v.c,null,"Sender name")),n.createElement("input",{id:"smtp-settings-form-sender-name",ref:this.senderNameFieldRef,name:"sender_name",className:"fluid",maxLength:"256",type:"text",autoComplete:"off",value:e.sender_name,onChange:this.handleInputChange,placeholder:this.translate("Sender name"),disabled:this.isProcessing()}),t.sender_name&&n.createElement("div",{className:"error-message"},t.sender_name),n.createElement("p",null,n.createElement(v.c,null,"This is the name users will see in their mailbox when passbolt sends a notification."))),n.createElement("div",{className:`input text required ${t.sender_email?"error":""} ${this.isProcessing()?"disabled":""}`},n.createElement("label",{htmlFor:"smtp-settings-form-sender-name"},n.createElement(v.c,null,"Sender email")),n.createElement("input",{id:"smtp-settings-form-sender-email",ref:this.senderEmailFieldRef,name:"sender_email",className:"fluid",maxLength:"256",type:"text",autoComplete:"off",value:e.sender_email,onChange:this.handleInputChange,placeholder:this.translate("Sender email"),disabled:this.isProcessing()}),t.sender_email&&n.createElement("div",{className:"error-message"},t.sender_email),n.createElement("p",null,n.createElement(v.c,null,"This is the email address users will see in their mail box when passbolt sends a notification.",n.createElement("br",null),"It's a good practice to provide a working email address that users can reply to.")))))),n.createElement("div",{className:"col4 last"},n.createElement("div",{className:"sidebar-help"},n.createElement("h3",null,n.createElement(v.c,null,"Why do I need an SMTP server?")),n.createElement("p",null,n.createElement(v.c,null,"Passbolt needs an smtp server in order to send invitation emails after an account creation and to send email notifications.")),n.createElement("a",{className:"button",href:"https://help.passbolt.com/configure/email/setup",target:"_blank",rel:"noopener noreferrer"},n.createElement(le,{name:"document"}),n.createElement("span",null,n.createElement(v.c,null,"Read the documentation")))),e?.provider&&"other"!==e?.provider.id&&n.createElement("div",{className:"sidebar-help"},n.createElement("h3",null,n.createElement(v.c,null,"How do I configure a ",e.provider.name," SMTP server?")),n.createElement("a",{className:"button",href:e.provider.help_page,target:"_blank",rel:"noopener noreferrer"},n.createElement(le,{name:"link"}),n.createElement("span",null,n.createElement(v.c,null,"See the ",e.provider.name," documentation")))))))}}Mn.propTypes={context:s().object,dialogContext:s().any,administrationWorkspaceContext:s().object,adminSmtpSettingsContext:s().object,t:s().func};const Fn=R(Ln(g(F((0,k.Z)("common")(Mn))))),qn=["0-mail.com","007addict.com","020.co.uk","027168.com","0815.ru","0815.su","0clickemail.com","0sg.net","0wnd.net","0wnd.org","1033edge.com","10mail.org","10minutemail.co.za","10minutemail.com","11mail.com","123-m.com","123.com","123box.net","123india.com","123mail.cl","123mail.org","123qwe.co.uk","126.com","126.net","138mail.com","139.com","150mail.com","150ml.com","15meg4free.com","163.com","16mail.com","188.com","189.cn","1auto.com","1ce.us","1chuan.com","1colony.com","1coolplace.com","1email.eu","1freeemail.com","1fsdfdsfsdf.tk","1funplace.com","1internetdrive.com","1mail.ml","1mail.net","1me.net","1mum.com","1musicrow.com","1netdrive.com","1nsyncfan.com","1pad.de","1under.com","1webave.com","1webhighway.com","1zhuan.com","2-mail.com","20email.eu","20mail.in","20mail.it","20minutemail.com","212.com","21cn.com","247emails.com","24horas.com","2911.net","2980.com","2bmail.co.uk","2coolforyou.net","2d2i.com","2die4.com","2fdgdfgdfgdf.tk","2hotforyou.net","2mydns.com","2net.us","2prong.com","2trom.com","3000.it","30minutemail.com","30minutesmail.com","3126.com","321media.com","33mail.com","360.ru","37.com","3ammagazine.com","3dmail.com","3email.com","3g.ua","3mail.ga","3trtretgfrfe.tk","3xl.net","444.net","4email.com","4email.net","4gfdsgfdgfd.tk","4mg.com","4newyork.com","4warding.com","4warding.net","4warding.org","4x4fan.com","4x4man.com","50mail.com","5fm.za.com","5ghgfhfghfgh.tk","5iron.com","5star.com","60minutemail.com","6hjgjhgkilkj.tk","6ip.us","6mail.cf","6paq.com","702mail.co.za","74.ru","7mail.ga","7mail.ml","7tags.com","88.am","8848.net","888.nu","8mail.ga","8mail.ml","97rock.com","99experts.com","9ox.net","a-bc.net","a-player.org","a2z4u.net","a45.in","aaamail.zzn.com","aahlife.com","aamail.net","aapt.net.au","aaronkwok.net","abbeyroadlondon.co.uk","abcflash.net","abdulnour.com","aberystwyth.com","abolition-now.com","about.com","absolutevitality.com","abusemail.de","abv.bg","abwesend.de","abyssmail.com","ac20mail.in","academycougars.com","acceso.or.cr","access4less.net","accessgcc.com","accountant.com","acdcfan.com","acdczone.com","ace-of-base.com","acmecity.com","acmemail.net","acninc.net","acrobatmail.com","activatormail.com","activist.com","adam.com.au","add3000.pp.ua","addcom.de","address.com","adelphia.net","adexec.com","adfarrow.com","adinet.com.uy","adios.net","admin.in.th","administrativos.com","adoption.com","ados.fr","adrenalinefreak.com","adres.nl","advalvas.be","advantimo.com","aeiou.pt","aemail4u.com","aeneasmail.com","afreeinternet.com","africa-11.com","africamail.com","africamel.net","africanpartnersonline.com","afrobacon.com","ag.us.to","agedmail.com","agelessemail.com","agoodmail.com","ahaa.dk","ahk.jp","aichi.com","aim.com","aircraftmail.com","airforce.net","airforceemail.com","airpost.net","aiutamici.com","ajacied.com","ajaxapp.net","ak47.hu","aknet.kg","akphantom.com","albawaba.com","alecsmail.com","alex4all.com","alexandria.cc","algeria.com","algeriamail.com","alhilal.net","alibaba.com","alice.it","aliceadsl.fr","aliceinchainsmail.com","alivance.com","alive.cz","aliyun.com","allergist.com","allmail.net","alloymail.com","allracing.com","allsaintsfan.com","alltel.net","alpenjodel.de","alphafrau.de","alskens.dk","altavista.com","altavista.net","altavista.se","alternativagratis.com","alumni.com","alumnidirector.com","alvilag.hu","ama-trade.de","amail.com","amazonses.com","amele.com","america.hm","ameritech.net","amilegit.com","amiri.net","amiriindustries.com","amnetsal.com","amorki.pl","amrer.net","amuro.net","amuromail.com","ananzi.co.za","ancestry.com","andreabocellimail.com","andylau.net","anfmail.com","angelfan.com","angelfire.com","angelic.com","animail.net","animal.net","animalhouse.com","animalwoman.net","anjungcafe.com","anniefans.com","annsmail.com","ano-mail.net","anonmails.de","anonymbox.com","anonymous.to","anote.com","another.com","anotherdomaincyka.tk","anotherwin95.com","anti-ignorance.net","anti-social.com","antichef.com","antichef.net","antiqueemail.com","antireg.ru","antisocial.com","antispam.de","antispam24.de","antispammail.de","antongijsen.com","antwerpen.com","anymoment.com","anytimenow.com","aol.co.uk","aol.com","aol.de","aol.fr","aol.it","aol.jp","aon.at","apexmail.com","apmail.com","apollo.lv","aport.ru","aport2000.ru","apple.sib.ru","appraiser.net","approvers.net","aquaticmail.net","arabia.com","arabtop.net","arcademaster.com","archaeologist.com","archerymail.com","arcor.de","arcotronics.bg","arcticmail.com","argentina.com","arhaelogist.com","aristotle.org","army.net","armyspy.com","arnet.com.ar","art-en-ligne.pro","artistemail.com","artlover.com","artlover.com.au","artman-conception.com","as-if.com","asdasd.nl","asean-mail","asean-mail.com","asheville.com","asia-links.com","asia-mail.com","asia.com","asiafind.com","asianavenue.com","asiancityweb.com","asiansonly.net","asianwired.net","asiapoint.net","askaclub.ru","ass.pp.ua","assala.com","assamesemail.com","astroboymail.com","astrolover.com","astrosfan.com","astrosfan.net","asurfer.com","atheist.com","athenachu.net","atina.cl","atl.lv","atlas.cz","atlaswebmail.com","atlink.com","atmc.net","ato.check.com","atozasia.com","atrus.ru","att.net","attglobal.net","attymail.com","au.ru","auctioneer.net","aufeminin.com","aus-city.com","ausi.com","aussiemail.com.au","austin.rr.com","australia.edu","australiamail.com","austrosearch.net","autoescuelanerja.com","autograf.pl","automail.ru","automotiveauthority.com","autorambler.ru","aver.com","avh.hu","avia-tonic.fr","avtoritet.ru","awayonvacation.com","awholelotofamechi.com","awsom.net","axoskate.com","ayna.com","azazazatashkent.tk","azimiweb.com","azmeil.tk","bachelorboy.com","bachelorgal.com","backfliper.com","backpackers.com","backstreet-boys.com","backstreetboysclub.com","backtothefuturefans.com","backwards.com","badtzmail.com","bagherpour.com","bahrainmail.com","bakpaka.com","bakpaka.net","baldmama.de","baldpapa.de","ballerstatus.net","ballyfinance.com","balochistan.org","baluch.com","bangkok.com","bangkok2000.com","bannertown.net","baptistmail.com","baptized.com","barcelona.com","bareed.ws","barid.com","barlick.net","bartender.net","baseball-email.com","baseballmail.com","basketballmail.com","batuta.net","baudoinconsulting.com","baxomale.ht.cx","bboy.com","bboy.zzn.com","bcvibes.com","beddly.com","beeebank.com","beefmilk.com","beenhad.com","beep.ru","beer.com","beerandremotes.com","beethoven.com","beirut.com","belice.com","belizehome.com","belizemail.net","belizeweb.com","bell.net","bellair.net","bellsouth.net","berkscounty.com","berlin.com","berlin.de","berlinexpo.de","bestmail.us","betriebsdirektor.de","bettergolf.net","bharatmail.com","big1.us","big5mail.com","bigassweb.com","bigblue.net.au","bigboab.com","bigfoot.com","bigfoot.de","bigger.com","biggerbadder.com","bigmailbox.com","bigmir.net","bigpond.au","bigpond.com","bigpond.com.au","bigpond.net","bigpond.net.au","bigramp.com","bigstring.com","bikemechanics.com","bikeracer.com","bikeracers.net","bikerider.com","billsfan.com","billsfan.net","bimamail.com","bimla.net","bin-wieder-da.de","binkmail.com","bio-muesli.info","bio-muesli.net","biologyfan.com","birdfanatic.com","birdlover.com","birdowner.net","bisons.com","bitmail.com","bitpage.net","bizhosting.com","bk.ru","bkkmail.com","bla-bla.com","blackburnfans.com","blackburnmail.com","blackplanet.com","blader.com","bladesmail.net","blazemail.com","bleib-bei-mir.de","blink182.net","blockfilter.com","blogmyway.org","blondandeasy.com","bluebottle.com","bluehyppo.com","bluemail.ch","bluemail.dk","bluesfan.com","bluewin.ch","blueyonder.co.uk","blumail.org","blushmail.com","blutig.me","bmlsports.net","boardermail.com","boarderzone.com","boatracers.com","bobmail.info","bodhi.lawlita.com","bofthew.com","bol.com.br","bolando.com","bollywoodz.com","bolt.com","boltonfans.com","bombdiggity.com","bonbon.net","boom.com","bootmail.com","bootybay.de","bornagain.com","bornnaked.com","bossofthemoss.com","bostonoffice.com","boun.cr","bounce.net","bounces.amazon.com","bouncr.com","box.az","box.ua","boxbg.com","boxemail.com","boxformail.in","boxfrog.com","boximail.com","boyzoneclub.com","bradfordfans.com","brasilia.net","bratan.ru","brazilmail.com","brazilmail.com.br","breadtimes.press","breakthru.com","breathe.com","brefmail.com","brennendesreich.de","bresnan.net","brestonline.com","brew-master.com","brew-meister.com","brfree.com.br","briefemail.com","bright.net","britneyclub.com","brittonsign.com","broadcast.net","broadwaybuff.com","broadwaylove.com","brokeandhappy.com","brokenvalve.com","brujula.net","brunetka.ru","brusseler.com","bsdmail.com","bsnow.net","bspamfree.org","bt.com","btcc.org","btcmail.pw","btconnect.co.uk","btconnect.com","btinternet.com","btopenworld.co.uk","buerotiger.de","buffymail.com","bugmenot.com","bulgaria.com","bullsfan.com","bullsgame.com","bumerang.ro","bumpymail.com","bumrap.com","bund.us","bunita.net","bunko.com","burnthespam.info","burntmail.com","burstmail.info","buryfans.com","bushemail.com","business-man.com","businessman.net","businessweekmail.com","bust.com","busta-rhymes.com","busymail.com","busymail.com.com","busymail.comhomeart.com","butch-femme.net","butovo.net","buyersusa.com","buymoreplays.com","buzy.com","bvimailbox.com","byke.com","byom.de","byteme.com","c2.hu","c2i.net","c3.hu","c4.com","c51vsgq.com","cabacabana.com","cable.comcast.com","cableone.net","caere.it","cairomail.com","calcuttaads.com","calendar-server.bounces.google.com","calidifontain.be","californiamail.com","callnetuk.com","callsign.net","caltanet.it","camidge.com","canada-11.com","canada.com","canadianmail.com","canoemail.com","cantv.net","canwetalk.com","caramail.com","card.zp.ua","care2.com","careceo.com","careerbuildermail.com","carioca.net","cartelera.org","cartestraina.ro","casablancaresort.com","casema.nl","cash4u.com","cashette.com","casino.com","casualdx.com","cataloniamail.com","cataz.com","catcha.com","catchamail.com","catemail.com","catholic.org","catlover.com","catsrule.garfield.com","ccnmail.com","cd2.com","cek.pm","celineclub.com","celtic.com","center-mail.de","centermail.at","centermail.com","centermail.de","centermail.info","centermail.net","centoper.it","centralpets.com","centrum.cz","centrum.sk","centurylink.net","centurytel.net","certifiedmail.com","cfl.rr.com","cgac.es","cghost.s-a-d.de","chacuo.net","chaiyo.com","chaiyomail.com","chalkmail.net","chammy.info","chance2mail.com","chandrasekar.net","channelonetv.com","charityemail.com","charmedmail.com","charter.com","charter.net","chat.ru","chatlane.ru","chattown.com","chauhanweb.com","cheatmail.de","chechnya.conf.work","check.com","check.com12","check1check.com","cheeb.com","cheerful.com","chef.net","chefmail.com","chek.com","chello.nl","chemist.com","chequemail.com","cheshiremail.com","cheyenneweb.com","chez.com","chickmail.com","chil-e.com","childrens.md","childsavetrust.org","china.com","china.net.vg","chinalook.com","chinamail.com","chinesecool.com","chirk.com","chocaholic.com.au","chocofan.com","chogmail.com","choicemail1.com","chong-mail.com","chong-mail.net","christianmail.net","chronicspender.com","churchusa.com","cia-agent.com","cia.hu","ciaoweb.it","cicciociccio.com","cincinow.net","cirquefans.com","citeweb.net","citiz.net","citlink.net","city-of-bath.org","city-of-birmingham.com","city-of-brighton.org","city-of-cambridge.com","city-of-coventry.com","city-of-edinburgh.com","city-of-lichfield.com","city-of-lincoln.com","city-of-liverpool.com","city-of-manchester.com","city-of-nottingham.com","city-of-oxford.com","city-of-swansea.com","city-of-westminster.com","city-of-westminster.net","city-of-york.net","city2city.com","citynetusa.com","cityofcardiff.net","cityoflondon.org","ciudad.com.ar","ckaazaza.tk","claramail.com","classicalfan.com","classicmail.co.za","clear.net.nz","clearwire.net","clerk.com","clickforadate.com","cliffhanger.com","clixser.com","close2you.ne","close2you.net","clrmail.com","club-internet.fr","club4x4.net","clubalfa.com","clubbers.net","clubducati.com","clubhonda.net","clubmember.org","clubnetnoir.com","clubvdo.net","cluemail.com","cmail.net","cmail.org","cmail.ru","cmpmail.com","cmpnetmail.com","cnegal.com","cnnsimail.com","cntv.cn","codec.ro","codec.ro.ro","codec.roemail.ro","coder.hu","coid.biz","coldemail.info","coldmail.com","collectiblesuperstore.com","collector.org","collegebeat.com","collegeclub.com","collegemail.com","colleges.com","columbus.rr.com","columbusrr.com","columnist.com","comast.com","comast.net","comcast.com","comcast.net","comic.com","communityconnect.com","complxmind.com","comporium.net","comprendemail.com","compuserve.com","computer-expert.net","computer-freak.com","computer4u.com","computerconfused.com","computermail.net","computernaked.com","conexcol.com","cong.ru","conk.com","connect4free.net","connectbox.com","conok.com","consultant.com","consumerriot.com","contractor.net","contrasto.cu.cc","cookiemonster.com","cool.br","cool.fr.nf","coole-files.de","coolgoose.ca","coolgoose.com","coolkiwi.com","coollist.com","coolmail.com","coolmail.net","coolrio.com","coolsend.com","coolsite.net","cooooool.com","cooperation.net","cooperationtogo.net","copacabana.com","copper.net","copticmail.com","cornells.com","cornerpub.com","corporatedirtbag.com","correo.terra.com.gt","corrsfan.com","cortinet.com","cosmo.com","cotas.net","counsellor.com","countrylover.com","courriel.fr.nf","courrieltemporaire.com","cox.com","cox.net","coxinet.net","cpaonline.net","cracker.hu","craftemail.com","crapmail.org","crazedanddazed.com","crazy.ru","crazymailing.com","crazysexycool.com","crewstart.com","cristianemail.com","critterpost.com","croeso.com","crosshairs.com","crosswinds.net","crunkmail.com","crwmail.com","cry4helponline.com","cryingmail.com","cs.com","csinibaba.hu","cubiclink.com","cuemail.com","cumbriamail.com","curio-city.com","curryworld.de","curtsmail.com","cust.in","cute-girl.com","cuteandcuddly.com","cutekittens.com","cutey.com","cuvox.de","cww.de","cyber-africa.net","cyber-innovation.club","cyber-matrix.com","cyber-phone.eu","cyber-wizard.com","cyber4all.com","cyberbabies.com","cybercafemaui.com","cybercity-online.net","cyberdude.com","cyberforeplay.net","cybergal.com","cybergrrl.com","cyberinbox.com","cyberleports.com","cybermail.net","cybernet.it","cyberservices.com","cyberspace-asia.com","cybertrains.org","cyclefanz.com","cymail.net","cynetcity.com","d3p.dk","dabsol.net","dacoolest.com","dadacasa.com","daha.com","dailypioneer.com","dallas.theboys.com","dallasmail.com","dandikmail.com","dangerous-minds.com","dansegulvet.com","dasdasdascyka.tk","data54.com","date.by","daum.net","davegracey.com","dawnsonmail.com","dawsonmail.com","dayrep.com","dazedandconfused.com","dbzmail.com","dcemail.com","dcsi.net","ddns.org","deadaddress.com","deadlymob.org","deadspam.com","deafemail.net","deagot.com","deal-maker.com","dearriba.com","death-star.com","deepseafisherman.net","deforestationsucks.com","degoo.com","dejanews.com","delikkt.de","deliveryman.com","deneg.net","depechemode.com","deseretmail.com","desertmail.com","desertonline.com","desertsaintsmail.com","desilota.com","deskmail.com","deskpilot.com","despam.it","despammed.com","destin.com","detik.com","deutschland-net.com","devnullmail.com","devotedcouples.com","dezigner.ru","dfgh.net","dfwatson.com","dglnet.com.br","dgoh.org","di-ve.com","diamondemail.com","didamail.com","die-besten-bilder.de","die-genossen.de","die-optimisten.de","die-optimisten.net","die.life","diehardmail.com","diemailbox.de","digibel.be","digital-filestore.de","digitalforeplay.net","digitalsanctuary.com","digosnet.com","dingbone.com","diplomats.com","directbox.com","director-general.com","diri.com","dirtracer.com","dirtracers.com","discard.email","discard.ga","discard.gq","discardmail.com","discardmail.de","disciples.com","discofan.com","discovery.com","discoverymail.com","discoverymail.net","disign-concept.eu","disign-revelation.com","disinfo.net","dispomail.eu","disposable.com","disposableaddress.com","disposableemailaddresses.com","disposableinbox.com","dispose.it","dispostable.com","divismail.ru","divorcedandhappy.com","dm.w3internet.co.uk","dmailman.com","dmitrovka.net","dmitry.ru","dnainternet.net","dnsmadeeasy.com","doar.net","doclist.bounces.google.com","docmail.cz","docs.google.com","doctor.com","dodgeit.com","dodgit.com","dodgit.org","dodo.com.au","dodsi.com","dog.com","dogit.com","doglover.com","dogmail.co.uk","dogsnob.net","doityourself.com","domforfb1.tk","domforfb2.tk","domforfb3.tk","domforfb4.tk","domforfb5.tk","domforfb6.tk","domforfb7.tk","domforfb8.tk","domozmail.com","doneasy.com","donegal.net","donemail.ru","donjuan.com","dontgotmail.com","dontmesswithtexas.com","dontreg.com","dontsendmespam.de","doramail.com","dostmail.com","dotcom.fr","dotmsg.com","dotnow.com","dott.it","download-privat.de","dplanet.ch","dr.com","dragoncon.net","dragracer.com","drdrb.net","drivehq.com","dropmail.me","dropzone.com","drotposta.hu","dubaimail.com","dublin.com","dublin.ie","dump-email.info","dumpandjunk.com","dumpmail.com","dumpmail.de","dumpyemail.com","dunlopdriver.com","dunloprider.com","duno.com","duskmail.com","dustdevil.com","dutchmail.com","dvd-fan.net","dwp.net","dygo.com","dynamitemail.com","dyndns.org","e-apollo.lv","e-hkma.com","e-mail.com","e-mail.com.tr","e-mail.dk","e-mail.org","e-mail.ru","e-mail.ua","e-mailanywhere.com","e-mails.ru","e-tapaal.com","e-webtec.com","e4ward.com","earthalliance.com","earthcam.net","earthdome.com","earthling.net","earthlink.net","earthonline.net","eastcoast.co.za","eastlink.ca","eastmail.com","eastrolog.com","easy.com","easy.to","easypeasy.com","easypost.com","easytrashmail.com","eatmydirt.com","ebprofits.net","ec.rr.com","ecardmail.com","ecbsolutions.net","echina.com","ecolo-online.fr","ecompare.com","edmail.com","ednatx.com","edtnmail.com","educacao.te.pt","educastmail.com","eelmail.com","ehmail.com","einmalmail.de","einrot.com","einrot.de","eintagsmail.de","eircom.net","ekidz.com.au","elisanet.fi","elitemail.org","elsitio.com","eltimon.com","elvis.com","elvisfan.com","email-fake.gq","email-london.co.uk","email-value.com","email.biz","email.cbes.net","email.com","email.cz","email.ee","email.it","email.nu","email.org","email.ro","email.ru","email.si","email.su","email.ua","email.women.com","email2me.com","email2me.net","email4u.info","email60.com","emailacc.com","emailaccount.com","emailaddresses.com","emailage.ga","emailage.gq","emailasso.net","emailchoice.com","emailcorner.net","emailem.com","emailengine.net","emailengine.org","emailer.hubspot.com","emailforyou.net","emailgaul.com","emailgo.de","emailgroups.net","emailias.com","emailinfive.com","emailit.com","emaillime.com","emailmiser.com","emailoregon.com","emailpinoy.com","emailplanet.com","emailplus.org","emailproxsy.com","emails.ga","emails.incisivemedia.com","emails.ru","emailsensei.com","emailservice.com","emailsydney.com","emailtemporanea.com","emailtemporanea.net","emailtemporar.ro","emailtemporario.com.br","emailthe.net","emailtmp.com","emailto.de","emailuser.net","emailwarden.com","emailx.at.hm","emailx.net","emailxfer.com","emailz.ga","emailz.gq","emale.ru","ematic.com","embarqmail.com","emeil.in","emeil.ir","emil.com","eml.cc","eml.pp.ua","empereur.com","emptymail.com","emumail.com","emz.net","end-war.com","enel.net","enelpunto.net","engineer.com","england.com","england.edu","englandmail.com","epage.ru","epatra.com","ephemail.net","epiqmail.com","epix.net","epomail.com","epost.de","eposta.hu","eprompter.com","eqqu.com","eramail.co.za","eresmas.com","eriga.lv","ero-tube.org","eshche.net","esmailweb.net","estranet.it","ethos.st","etoast.com","etrademail.com","etranquil.com","etranquil.net","eudoramail.com","europamel.net","europe.com","europemail.com","euroseek.com","eurosport.com","evafan.com","evertonfans.com","every1.net","everyday.com.kh","everymail.net","everyone.net","everytg.ml","evopo.com","examnotes.net","excite.co.jp","excite.co.uk","excite.com","excite.it","execs.com","execs2k.com","executivemail.co.za","exemail.com.au","exg6.exghost.com","explodemail.com","express.net.ua","expressasia.com","extenda.net","extended.com","extremail.ru","eyepaste.com","eyou.com","ezagenda.com","ezcybersearch.com","ezmail.egine.com","ezmail.ru","ezrs.com","f-m.fm","f1fans.net","facebook-email.ga","facebook.com","facebookmail.com","facebookmail.gq","fadrasha.net","fadrasha.org","fahr-zur-hoelle.org","fake-email.pp.ua","fake-mail.cf","fake-mail.ga","fake-mail.ml","fakeinbox.com","fakeinformation.com","fakemailz.com","falseaddress.com","fan.com","fan.theboys.com","fannclub.com","fansonlymail.com","fansworldwide.de","fantasticmail.com","fantasymail.de","farang.net","farifluset.mailexpire.com","faroweb.com","fast-email.com","fast-mail.fr","fast-mail.org","fastacura.com","fastchevy.com","fastchrysler.com","fastem.com","fastemail.us","fastemailer.com","fastemailextractor.net","fastermail.com","fastest.cc","fastimap.com","fastkawasaki.com","fastmail.ca","fastmail.cn","fastmail.co.uk","fastmail.com","fastmail.com.au","fastmail.es","fastmail.fm","fastmail.gr","fastmail.im","fastmail.in","fastmail.jp","fastmail.mx","fastmail.net","fastmail.nl","fastmail.se","fastmail.to","fastmail.tw","fastmail.us","fastmailbox.net","fastmazda.com","fastmessaging.com","fastmitsubishi.com","fastnissan.com","fastservice.com","fastsubaru.com","fastsuzuki.com","fasttoyota.com","fastyamaha.com","fatcock.net","fatflap.com","fathersrightsne.org","fatyachts.com","fax.ru","fbi-agent.com","fbi.hu","fdfdsfds.com","fea.st","federalcontractors.com","feinripptraeger.de","felicity.com","felicitymail.com","female.ru","femenino.com","fepg.net","fetchmail.co.uk","fetchmail.com","fettabernett.de","feyenoorder.com","ffanet.com","fiberia.com","fibertel.com.ar","ficken.de","fificorp.com","fificorp.net","fightallspam.com","filipinolinks.com","filzmail.com","financefan.net","financemail.net","financier.com","findfo.com","findhere.com","findmail.com","findmemail.com","finebody.com","fineemail.com","finfin.com","finklfan.com","fire-brigade.com","fireman.net","fishburne.org","fishfuse.com","fivemail.de","fixmail.tk","fizmail.com","flashbox.5july.org","flashemail.com","flashmail.com","flashmail.net","fleckens.hu","flipcode.com","floridaemail.net","flytecrew.com","fmail.co.uk","fmailbox.com","fmgirl.com","fmguy.com","fnbmail.co.za","fnmail.com","folkfan.com","foodmail.com","footard.com","football.theboys.com","footballmail.com","foothills.net","for-president.com","force9.co.uk","forfree.at","forgetmail.com","fornow.eu","forpresident.com","fortuncity.com","fortunecity.com","forum.dk","fossefans.com","foxmail.com","fr33mail.info","francefans.com","francemel.fr","frapmail.com","free-email.ga","free-online.net","free-org.com","free.com.pe","free.fr","freeaccess.nl","freeaccount.com","freeandsingle.com","freebox.com","freedom.usa.com","freedomlover.com","freefanmail.com","freegates.be","freeghana.com","freelance-france.eu","freeler.nl","freemail.bozz.com","freemail.c3.hu","freemail.com.au","freemail.com.pk","freemail.de","freemail.et","freemail.gr","freemail.hu","freemail.it","freemail.lt","freemail.ms","freemail.nl","freemail.org.mk","freemail.ru","freemails.ga","freemeil.gq","freenet.de","freenet.kg","freeola.com","freeola.net","freeproblem.com","freesbee.fr","freeserve.co.uk","freeservers.com","freestamp.com","freestart.hu","freesurf.fr","freesurf.nl","freeuk.com","freeuk.net","freeukisp.co.uk","freeweb.org","freewebemail.com","freeyellow.com","freezone.co.uk","fresnomail.com","freudenkinder.de","freundin.ru","friction.net","friendlydevices.com","friendlymail.co.uk","friends-cafe.com","friendsfan.com","from-africa.com","from-america.com","from-argentina.com","from-asia.com","from-australia.com","from-belgium.com","from-brazil.com","from-canada.com","from-china.net","from-england.com","from-europe.com","from-france.net","from-germany.net","from-holland.com","from-israel.com","from-italy.net","from-japan.net","from-korea.com","from-mexico.com","from-outerspace.com","from-russia.com","from-spain.net","fromalabama.com","fromalaska.com","fromarizona.com","fromarkansas.com","fromcalifornia.com","fromcolorado.com","fromconnecticut.com","fromdelaware.com","fromflorida.net","fromgeorgia.com","fromhawaii.net","fromidaho.com","fromillinois.com","fromindiana.com","frominter.net","fromiowa.com","fromjupiter.com","fromkansas.com","fromkentucky.com","fromlouisiana.com","frommaine.net","frommaryland.com","frommassachusetts.com","frommiami.com","frommichigan.com","fromminnesota.com","frommississippi.com","frommissouri.com","frommontana.com","fromnebraska.com","fromnevada.com","fromnewhampshire.com","fromnewjersey.com","fromnewmexico.com","fromnewyork.net","fromnorthcarolina.com","fromnorthdakota.com","fromohio.com","fromoklahoma.com","fromoregon.net","frompennsylvania.com","fromrhodeisland.com","fromru.com","fromru.ru","fromsouthcarolina.com","fromsouthdakota.com","fromtennessee.com","fromtexas.com","fromthestates.com","fromutah.com","fromvermont.com","fromvirginia.com","fromwashington.com","fromwashingtondc.com","fromwestvirginia.com","fromwisconsin.com","fromwyoming.com","front.ru","frontier.com","frontiernet.net","frostbyte.uk.net","fsmail.net","ftc-i.net","ftml.net","fuckingduh.com","fudgerub.com","fullmail.com","funiran.com","funkfan.com","funky4.com","fuorissimo.com","furnitureprovider.com","fuse.net","fusemail.com","fut.es","fux0ringduh.com","fwnb.com","fxsmails.com","fyii.de","galamb.net","galaxy5.com","galaxyhit.com","gamebox.com","gamebox.net","gamegeek.com","games.com","gamespotmail.com","gamil.com","gamil.com.au","gamno.config.work","garbage.com","gardener.com","garliclife.com","gatwickemail.com","gawab.com","gay.com","gaybrighton.co.uk","gaza.net","gazeta.pl","gazibooks.com","gci.net","gdi.net","gee-wiz.com","geecities.com","geek.com","geek.hu","geeklife.com","gehensiemirnichtaufdensack.de","gelitik.in","gencmail.com","general-hospital.com","gentlemansclub.de","genxemail.com","geocities.com","geography.net","geologist.com","geopia.com","germanymail.com","get.pp.ua","get1mail.com","get2mail.fr","getairmail.cf","getairmail.com","getairmail.ga","getairmail.gq","getmails.eu","getonemail.com","getonemail.net","gfxartist.ru","gh2000.com","ghanamail.com","ghostmail.com","ghosttexter.de","giantmail.de","giantsfan.com","giga4u.de","gigileung.org","girl4god.com","girlsundertheinfluence.com","gishpuppy.com","givepeaceachance.com","glay.org","glendale.net","globalfree.it","globalpagan.com","globalsite.com.br","globetrotter.net","globo.com","globomail.com","gmail.co.za","gmail.com","gmail.com.au","gmail.com.br","gmail.ru","gmial.com","gmx.at","gmx.ch","gmx.co.uk","gmx.com","gmx.de","gmx.fr","gmx.li","gmx.net","gmx.us","gnwmail.com","go.com","go.ro","go.ru","go2.com.py","go2net.com","go4.it","gobrainstorm.net","gocollege.com","gocubs.com","godmail.dk","goemailgo.com","gofree.co.uk","gol.com","goldenmail.ru","goldmail.ru","goldtoolbox.com","golfemail.com","golfilla.info","golfmail.be","gonavy.net","gonuts4free.com","goodnewsmail.com","goodstick.com","google.com","googlegroups.com","googlemail.com","goosemoose.com","goplay.com","gorillaswithdirtyarmpits.com","gorontalo.net","gospelfan.com","gothere.uk.com","gotmail.com","gotmail.net","gotmail.org","gotomy.com","gotti.otherinbox.com","govolsfan.com","gportal.hu","grabmail.com","graduate.org","graffiti.net","gramszu.net","grandmamail.com","grandmasmail.com","graphic-designer.com","grapplers.com","gratisweb.com","great-host.in","greenmail.net","greensloth.com","groupmail.com","grr.la","grungecafe.com","gsrv.co.uk","gtemail.net","gtmc.net","gua.net","guerillamail.biz","guerillamail.com","guerrillamail.biz","guerrillamail.com","guerrillamail.de","guerrillamail.info","guerrillamail.net","guerrillamail.org","guerrillamailblock.com","guessmail.com","guju.net","gurlmail.com","gustr.com","guy.com","guy2.com","guyanafriends.com","gwhsgeckos.com","gyorsposta.com","gyorsposta.hu","h-mail.us","hab-verschlafen.de","hablas.com","habmalnefrage.de","hacccc.com","hackermail.com","hackermail.net","hailmail.net","hairdresser.com","hairdresser.net","haltospam.com","hamptonroads.com","handbag.com","handleit.com","hang-ten.com","hangglidemail.com","hanmail.net","happemail.com","happycounsel.com","happypuppy.com","harakirimail.com","haramamba.ru","hardcorefreak.com","hardyoungbabes.com","hartbot.de","hat-geld.de","hatespam.org","hawaii.rr.com","hawaiiantel.net","headbone.com","healthemail.net","heartthrob.com","heavynoize.net","heerschap.com","heesun.net","hehe.com","hello.hu","hello.net.au","hello.to","hellokitty.com","helter-skelter.com","hempseed.com","herediano.com","heremail.com","herono1.com","herp.in","herr-der-mails.de","hetnet.nl","hewgen.ru","hey.to","hhdevel.com","hideakifan.com","hidemail.de","hidzz.com","highmilton.com","highquality.com","highveldmail.co.za","hilarious.com","hinduhome.com","hingis.org","hiphopfan.com","hispavista.com","hitmail.com","hitmanrecords.com","hitthe.net","hkg.net","hkstarphoto.com","hmamail.com","hochsitze.com","hockeymail.com","hollywoodkids.com","home-email.com","home.de","home.nl","home.no.net","home.ro","home.se","homeart.com","homelocator.com","homemail.com","homenetmail.com","homeonthethrone.com","homestead.com","homeworkcentral.com","honduras.com","hongkong.com","hookup.net","hoopsmail.com","hopemail.biz","horrormail.com","host-it.com.sg","hot-mail.gq","hot-shop.com","hot-shot.com","hot.ee","hotbot.com","hotbox.ru","hotbrev.com","hotcoolmail.com","hotepmail.com","hotfire.net","hotletter.com","hotlinemail.com","hotmail.be","hotmail.ca","hotmail.ch","hotmail.co","hotmail.co.il","hotmail.co.jp","hotmail.co.nz","hotmail.co.uk","hotmail.co.za","hotmail.com","hotmail.com.ar","hotmail.com.au","hotmail.com.br","hotmail.com.mx","hotmail.com.tr","hotmail.de","hotmail.es","hotmail.fi","hotmail.fr","hotmail.it","hotmail.kg","hotmail.kz","hotmail.my","hotmail.nl","hotmail.ro","hotmail.roor","hotmail.ru","hotpop.com","hotpop3.com","hotvoice.com","housefan.com","housefancom","housemail.com","hsuchi.net","html.tou.com","hu2.ru","hughes.net","hulapla.de","humanoid.net","humanux.com","humn.ws.gy","humour.com","hunsa.com","hurting.com","hush.com","hushmail.com","hypernautica.com","i-connect.com","i-france.com","i-love-cats.com","i-mail.com.au","i-mailbox.net","i-p.com","i.am","i.am.to","i.amhey.to","i.ua","i12.com","i2828.com","i2pmail.org","iam4msu.com","iamawoman.com","iamfinallyonline.com","iamwaiting.com","iamwasted.com","iamyours.com","icestorm.com","ich-bin-verrueckt-nach-dir.de","ich-will-net.de","icloud.com","icmsconsultants.com","icq.com","icqmail.com","icrazy.com","icu.md","id-base.com","id.ru","ididitmyway.com","idigjesus.com","idirect.com","ieatspam.eu","ieatspam.info","ieh-mail.de","iespana.es","ifoward.com","ig.com.br","ignazio.it","ignmail.com","ihateclowns.com","ihateyoualot.info","iheartspam.org","iinet.net.au","ijustdontcare.com","ikbenspamvrij.nl","ilkposta.com","ilovechocolate.com","ilovegiraffes.net","ilovejesus.com","ilovelionking.com","ilovepokemonmail.com","ilovethemovies.com","ilovetocollect.net","ilse.nl","imaginemail.com","imail.org","imail.ru","imailbox.com","imails.info","imap-mail.com","imap.cc","imapmail.org","imel.org","imgof.com","imgv.de","immo-gerance.info","imneverwrong.com","imposter.co.uk","imstations.com","imstressed.com","imtoosexy.com","in-box.net","in2jesus.com","iname.com","inbax.tk","inbound.plus","inbox.com","inbox.lv","inbox.net","inbox.ru","inbox.si","inboxalias.com","inboxclean.com","inboxclean.org","incamail.com","includingarabia.com","incredimail.com","indeedemail.com","index.ua","indexa.fr","india.com","indiatimes.com","indo-mail.com","indocities.com","indomail.com","indosat.net.id","indus.ru","indyracers.com","inerted.com","inet.com","inet.net.au","info-media.de","info-radio.ml","info.com","info66.com","infoapex.com","infocom.zp.ua","infohq.com","infomail.es","infomart.or.jp","informaticos.com","infospacemail.com","infovia.com.ar","inicia.es","inmail.sk","inmail24.com","inmano.com","inmynetwork.tk","innocent.com","inonesearch.com","inorbit.com","inoutbox.com","insidebaltimore.net","insight.rr.com","inspectorjavert.com","instant-mail.de","instantemailaddress.com","instantmail.fr","instruction.com","instructor.net","insurer.com","interburp.com","interfree.it","interia.pl","interlap.com.ar","intermail.co.il","internet-club.com","internet-e-mail.com","internet-mail.org","internet-police.com","internetbiz.com","internetdrive.com","internetegypt.com","internetemails.net","internetmailing.net","internode.on.net","invalid.com","investormail.com","inwind.it","iobox.com","iobox.fi","iol.it","iol.pt","iowaemail.com","ip3.com","ip4.pp.ua","ip6.li","ip6.pp.ua","ipdeer.com","ipex.ru","ipoo.org","iportalexpress.com","iprimus.com.au","iqemail.com","irangate.net","iraqmail.com","ireland.com","irelandmail.com","irish2me.com","irj.hu","iroid.com","iscooler.com","isellcars.com","iservejesus.com","islamonline.net","islandemail.net","isleuthmail.com","ismart.net","isonfire.com","isp9.net","israelmail.com","ist-allein.info","ist-einmalig.de","ist-ganz-allein.de","ist-willig.de","italymail.com","itelefonica.com.br","itloox.com","itmom.com","ivebeenframed.com","ivillage.com","iwan-fals.com","iwi.net","iwmail.com","iwon.com","izadpanah.com","jabble.com","jahoopa.com","jakuza.hu","japan.com","jaydemail.com","jazzandjava.com","jazzfan.com","jazzgame.com","je-recycle.info","jeanvaljean.com","jerusalemmail.com","jesusanswers.com","jet-renovation.fr","jetable.com","jetable.de","jetable.fr.nf","jetable.net","jetable.org","jetable.pp.ua","jetemail.net","jewishmail.com","jfkislanders.com","jingjo.net","jippii.fi","jmail.co.za","jnxjn.com","job4u.com","jobbikszimpatizans.hu","joelonsoftware.com","joinme.com","jojomail.com","jokes.com","jordanmail.com","journalist.com","jourrapide.com","jovem.te.pt","joymail.com","jpopmail.com","jsrsolutions.com","jubiimail.dk","jump.com","jumpy.it","juniormail.com","junk1e.com","junkmail.com","junkmail.gq","juno.com","justemail.net","justicemail.com","justmail.de","justmailz.com","justmarriedmail.com","jwspamspy","k.ro","kaazoo.com","kabissa.org","kaduku.net","kaffeeschluerfer.com","kaffeeschluerfer.de","kaixo.com","kalpoint.com","kansascity.com","kapoorweb.com","karachian.com","karachioye.com","karbasi.com","kasmail.com","kaspop.com","katamail.com","kayafmmail.co.za","kbjrmail.com","kcks.com","kebi.com","keftamail.com","keg-party.com","keinpardon.de","keko.com.ar","kellychen.com","keptprivate.com","keromail.com","kewpee.com","keyemail.com","kgb.hu","khosropour.com","kichimail.com","kickassmail.com","killamail.com","killergreenmail.com","killermail.com","killmail.com","killmail.net","kimo.com","kimsdisk.com","kinglibrary.net","kinki-kids.com","kismail.ru","kissfans.com","kitemail.com","kittymail.com","kitznet.at","kiwibox.com","kiwitown.com","klassmaster.com","klassmaster.net","klzlk.com","km.ru","kmail.com.au","knol-power.nl","koko.com","kolumbus.fi","kommespaeter.de","konkovo.net","konsul.ru","konx.com","korea.com","koreamail.com","kosino.net","koszmail.pl","kozmail.com","kpnmail.nl","kreditor.ru","krim.ws","krongthip.com","krovatka.net","krunis.com","ksanmail.com","ksee24mail.com","kube93mail.com","kukamail.com","kulturbetrieb.info","kumarweb.com","kurzepost.de","kuwait-mail.com","kuzminki.net","kyokodate.com","kyokofukada.net","l33r.eu","la.com","labetteraverouge.at","lackmail.ru","ladyfire.com","ladymail.cz","lagerlouts.com","lags.us","lahoreoye.com","lakmail.com","lamer.hu","land.ru","langoo.com","lankamail.com","laoeq.com","laposte.net","lass-es-geschehen.de","last-chance.pro","lastmail.co","latemodels.com","latinmail.com","latino.com","lavabit.com","lavache.com","law.com","lawlita.com","lawyer.com","lazyinbox.com","learn2compute.net","lebanonatlas.com","leeching.net","leehom.net","lefortovo.net","legalactions.com","legalrc.loan","legislator.com","legistrator.com","lenta.ru","leonlai.net","letsgomets.net","letterbox.com","letterboxes.org","letthemeatspam.com","levele.com","levele.hu","lex.bg","lexis-nexis-mail.com","lhsdv.com","lianozovo.net","libero.it","liberomail.com","lick101.com","liebt-dich.info","lifebyfood.com","link2mail.net","linkmaster.com","linktrader.com","linuxfreemail.com","linuxmail.org","lionsfan.com.au","liontrucks.com","liquidinformation.net","lissamail.com","list.ru","listomail.com","litedrop.com","literaturelover.com","littleapple.com","littleblueroom.com","live.at","live.be","live.ca","live.cl","live.cn","live.co.uk","live.co.za","live.com","live.com.ar","live.com.au","live.com.mx","live.com.my","live.com.pt","live.com.sg","live.de","live.dk","live.fr","live.hk","live.ie","live.in","live.it","live.jp","live.nl","live.no","live.ru","live.se","liveradio.tk","liverpoolfans.com","ljiljan.com","llandudno.com","llangollen.com","lmxmail.sk","lobbyist.com","localbar.com","localgenius.com","locos.com","login-email.ga","loh.pp.ua","lol.ovpn.to","lolfreak.net","lolito.tk","lolnetwork.net","london.com","loobie.com","looksmart.co.uk","looksmart.com","looksmart.com.au","lookugly.com","lopezclub.com","lortemail.dk","louiskoo.com","lov.ru","love.com","love.cz","loveable.com","lovecat.com","lovefall.ml","lovefootball.com","loveforlostcats.com","lovelygirl.net","lovemail.com","lover-boy.com","lovergirl.com","lovesea.gq","lovethebroncos.com","lovethecowboys.com","lovetocook.net","lovetohike.com","loveyouforever.de","lovingjesus.com","lowandslow.com","lr7.us","lr78.com","lroid.com","lubovnik.ru","lukop.dk","luso.pt","luukku.com","luv2.us","luvrhino.com","lvie.com.sg","lvwebmail.com","lycos.co.uk","lycos.com","lycos.es","lycos.it","lycos.ne.jp","lycos.ru","lycosemail.com","lycosmail.com","m-a-i-l.com","m-hmail.com","m21.cc","m4.org","m4ilweb.info","mac.com","macbox.com","macbox.ru","macfreak.com","machinecandy.com","macmail.com","mad.scientist.com","madcrazy.com","madcreations.com","madonnafan.com","madrid.com","maennerversteherin.com","maennerversteherin.de","maffia.hu","magicmail.co.za","mahmoodweb.com","mail-awu.de","mail-box.cz","mail-center.com","mail-central.com","mail-easy.fr","mail-filter.com","mail-me.com","mail-page.com","mail-temporaire.fr","mail-tester.com","mail.austria.com","mail.az","mail.be","mail.bg","mail.bulgaria.com","mail.by","mail.byte.it","mail.co.za","mail.com","mail.com.tr","mail.ee","mail.entrepeneurmag.com","mail.freetown.com","mail.gr","mail.hitthebeach.com","mail.htl22.at","mail.kmsp.com","mail.md","mail.mezimages.net","mail.misterpinball.de","mail.nu","mail.org.uk","mail.pf","mail.pharmacy.com","mail.pt","mail.r-o-o-t.com","mail.ru","mail.salu.net","mail.sisna.com","mail.spaceports.com","mail.svenz.eu","mail.theboys.com","mail.usa.com","mail.vasarhely.hu","mail.vu","mail.wtf","mail.zp.ua","mail114.net","mail15.com","mail1a.de","mail1st.com","mail2007.com","mail21.cc","mail2aaron.com","mail2abby.com","mail2abc.com","mail2actor.com","mail2admiral.com","mail2adorable.com","mail2adoration.com","mail2adore.com","mail2adventure.com","mail2aeolus.com","mail2aether.com","mail2affection.com","mail2afghanistan.com","mail2africa.com","mail2agent.com","mail2aha.com","mail2ahoy.com","mail2aim.com","mail2air.com","mail2airbag.com","mail2airforce.com","mail2airport.com","mail2alabama.com","mail2alan.com","mail2alaska.com","mail2albania.com","mail2alcoholic.com","mail2alec.com","mail2alexa.com","mail2algeria.com","mail2alicia.com","mail2alien.com","mail2allan.com","mail2allen.com","mail2allison.com","mail2alpha.com","mail2alyssa.com","mail2amanda.com","mail2amazing.com","mail2amber.com","mail2america.com","mail2american.com","mail2andorra.com","mail2andrea.com","mail2andy.com","mail2anesthesiologist.com","mail2angela.com","mail2angola.com","mail2ann.com","mail2anna.com","mail2anne.com","mail2anthony.com","mail2anything.com","mail2aphrodite.com","mail2apollo.com","mail2april.com","mail2aquarius.com","mail2arabia.com","mail2arabic.com","mail2architect.com","mail2ares.com","mail2argentina.com","mail2aries.com","mail2arizona.com","mail2arkansas.com","mail2armenia.com","mail2army.com","mail2arnold.com","mail2art.com","mail2artemus.com","mail2arthur.com","mail2artist.com","mail2ashley.com","mail2ask.com","mail2astronomer.com","mail2athena.com","mail2athlete.com","mail2atlas.com","mail2atom.com","mail2attitude.com","mail2auction.com","mail2aunt.com","mail2australia.com","mail2austria.com","mail2azerbaijan.com","mail2baby.com","mail2bahamas.com","mail2bahrain.com","mail2ballerina.com","mail2ballplayer.com","mail2band.com","mail2bangladesh.com","mail2bank.com","mail2banker.com","mail2bankrupt.com","mail2baptist.com","mail2bar.com","mail2barbados.com","mail2barbara.com","mail2barter.com","mail2basketball.com","mail2batter.com","mail2beach.com","mail2beast.com","mail2beatles.com","mail2beauty.com","mail2becky.com","mail2beijing.com","mail2belgium.com","mail2belize.com","mail2ben.com","mail2bernard.com","mail2beth.com","mail2betty.com","mail2beverly.com","mail2beyond.com","mail2biker.com","mail2bill.com","mail2billionaire.com","mail2billy.com","mail2bio.com","mail2biologist.com","mail2black.com","mail2blackbelt.com","mail2blake.com","mail2blind.com","mail2blonde.com","mail2blues.com","mail2bob.com","mail2bobby.com","mail2bolivia.com","mail2bombay.com","mail2bonn.com","mail2bookmark.com","mail2boreas.com","mail2bosnia.com","mail2boston.com","mail2botswana.com","mail2bradley.com","mail2brazil.com","mail2breakfast.com","mail2brian.com","mail2bride.com","mail2brittany.com","mail2broker.com","mail2brook.com","mail2bruce.com","mail2brunei.com","mail2brunette.com","mail2brussels.com","mail2bryan.com","mail2bug.com","mail2bulgaria.com","mail2business.com","mail2buy.com","mail2ca.com","mail2california.com","mail2calvin.com","mail2cambodia.com","mail2cameroon.com","mail2canada.com","mail2cancer.com","mail2capeverde.com","mail2capricorn.com","mail2cardinal.com","mail2cardiologist.com","mail2care.com","mail2caroline.com","mail2carolyn.com","mail2casey.com","mail2cat.com","mail2caterer.com","mail2cathy.com","mail2catlover.com","mail2catwalk.com","mail2cell.com","mail2chad.com","mail2champaign.com","mail2charles.com","mail2chef.com","mail2chemist.com","mail2cherry.com","mail2chicago.com","mail2chile.com","mail2china.com","mail2chinese.com","mail2chocolate.com","mail2christian.com","mail2christie.com","mail2christmas.com","mail2christy.com","mail2chuck.com","mail2cindy.com","mail2clark.com","mail2classifieds.com","mail2claude.com","mail2cliff.com","mail2clinic.com","mail2clint.com","mail2close.com","mail2club.com","mail2coach.com","mail2coastguard.com","mail2colin.com","mail2college.com","mail2colombia.com","mail2color.com","mail2colorado.com","mail2columbia.com","mail2comedian.com","mail2composer.com","mail2computer.com","mail2computers.com","mail2concert.com","mail2congo.com","mail2connect.com","mail2connecticut.com","mail2consultant.com","mail2convict.com","mail2cook.com","mail2cool.com","mail2cory.com","mail2costarica.com","mail2country.com","mail2courtney.com","mail2cowboy.com","mail2cowgirl.com","mail2craig.com","mail2crave.com","mail2crazy.com","mail2create.com","mail2croatia.com","mail2cry.com","mail2crystal.com","mail2cuba.com","mail2culture.com","mail2curt.com","mail2customs.com","mail2cute.com","mail2cutey.com","mail2cynthia.com","mail2cyprus.com","mail2czechrepublic.com","mail2dad.com","mail2dale.com","mail2dallas.com","mail2dan.com","mail2dana.com","mail2dance.com","mail2dancer.com","mail2danielle.com","mail2danny.com","mail2darlene.com","mail2darling.com","mail2darren.com","mail2daughter.com","mail2dave.com","mail2dawn.com","mail2dc.com","mail2dealer.com","mail2deanna.com","mail2dearest.com","mail2debbie.com","mail2debby.com","mail2deer.com","mail2delaware.com","mail2delicious.com","mail2demeter.com","mail2democrat.com","mail2denise.com","mail2denmark.com","mail2dennis.com","mail2dentist.com","mail2derek.com","mail2desert.com","mail2devoted.com","mail2devotion.com","mail2diamond.com","mail2diana.com","mail2diane.com","mail2diehard.com","mail2dilemma.com","mail2dillon.com","mail2dinner.com","mail2dinosaur.com","mail2dionysos.com","mail2diplomat.com","mail2director.com","mail2dirk.com","mail2disco.com","mail2dive.com","mail2diver.com","mail2divorced.com","mail2djibouti.com","mail2doctor.com","mail2doglover.com","mail2dominic.com","mail2dominica.com","mail2dominicanrepublic.com","mail2don.com","mail2donald.com","mail2donna.com","mail2doris.com","mail2dorothy.com","mail2doug.com","mail2dough.com","mail2douglas.com","mail2dow.com","mail2downtown.com","mail2dream.com","mail2dreamer.com","mail2dude.com","mail2dustin.com","mail2dyke.com","mail2dylan.com","mail2earl.com","mail2earth.com","mail2eastend.com","mail2eat.com","mail2economist.com","mail2ecuador.com","mail2eddie.com","mail2edgar.com","mail2edwin.com","mail2egypt.com","mail2electron.com","mail2eli.com","mail2elizabeth.com","mail2ellen.com","mail2elliot.com","mail2elsalvador.com","mail2elvis.com","mail2emergency.com","mail2emily.com","mail2engineer.com","mail2english.com","mail2environmentalist.com","mail2eos.com","mail2eric.com","mail2erica.com","mail2erin.com","mail2erinyes.com","mail2eris.com","mail2eritrea.com","mail2ernie.com","mail2eros.com","mail2estonia.com","mail2ethan.com","mail2ethiopia.com","mail2eu.com","mail2europe.com","mail2eurus.com","mail2eva.com","mail2evan.com","mail2evelyn.com","mail2everything.com","mail2exciting.com","mail2expert.com","mail2fairy.com","mail2faith.com","mail2fanatic.com","mail2fancy.com","mail2fantasy.com","mail2farm.com","mail2farmer.com","mail2fashion.com","mail2fat.com","mail2feeling.com","mail2female.com","mail2fever.com","mail2fighter.com","mail2fiji.com","mail2filmfestival.com","mail2films.com","mail2finance.com","mail2finland.com","mail2fireman.com","mail2firm.com","mail2fisherman.com","mail2flexible.com","mail2florence.com","mail2florida.com","mail2floyd.com","mail2fly.com","mail2fond.com","mail2fondness.com","mail2football.com","mail2footballfan.com","mail2found.com","mail2france.com","mail2frank.com","mail2frankfurt.com","mail2franklin.com","mail2fred.com","mail2freddie.com","mail2free.com","mail2freedom.com","mail2french.com","mail2freudian.com","mail2friendship.com","mail2from.com","mail2fun.com","mail2gabon.com","mail2gabriel.com","mail2gail.com","mail2galaxy.com","mail2gambia.com","mail2games.com","mail2gary.com","mail2gavin.com","mail2gemini.com","mail2gene.com","mail2genes.com","mail2geneva.com","mail2george.com","mail2georgia.com","mail2gerald.com","mail2german.com","mail2germany.com","mail2ghana.com","mail2gilbert.com","mail2gina.com","mail2girl.com","mail2glen.com","mail2gloria.com","mail2goddess.com","mail2gold.com","mail2golfclub.com","mail2golfer.com","mail2gordon.com","mail2government.com","mail2grab.com","mail2grace.com","mail2graham.com","mail2grandma.com","mail2grandpa.com","mail2grant.com","mail2greece.com","mail2green.com","mail2greg.com","mail2grenada.com","mail2gsm.com","mail2guard.com","mail2guatemala.com","mail2guy.com","mail2hades.com","mail2haiti.com","mail2hal.com","mail2handhelds.com","mail2hank.com","mail2hannah.com","mail2harold.com","mail2harry.com","mail2hawaii.com","mail2headhunter.com","mail2heal.com","mail2heather.com","mail2heaven.com","mail2hebe.com","mail2hecate.com","mail2heidi.com","mail2helen.com","mail2hell.com","mail2help.com","mail2helpdesk.com","mail2henry.com","mail2hephaestus.com","mail2hera.com","mail2hercules.com","mail2herman.com","mail2hermes.com","mail2hespera.com","mail2hestia.com","mail2highschool.com","mail2hindu.com","mail2hip.com","mail2hiphop.com","mail2holland.com","mail2holly.com","mail2hollywood.com","mail2homer.com","mail2honduras.com","mail2honey.com","mail2hongkong.com","mail2hope.com","mail2horse.com","mail2hot.com","mail2hotel.com","mail2houston.com","mail2howard.com","mail2hugh.com","mail2human.com","mail2hungary.com","mail2hungry.com","mail2hygeia.com","mail2hyperspace.com","mail2hypnos.com","mail2ian.com","mail2ice-cream.com","mail2iceland.com","mail2idaho.com","mail2idontknow.com","mail2illinois.com","mail2imam.com","mail2in.com","mail2india.com","mail2indian.com","mail2indiana.com","mail2indonesia.com","mail2infinity.com","mail2intense.com","mail2iowa.com","mail2iran.com","mail2iraq.com","mail2ireland.com","mail2irene.com","mail2iris.com","mail2irresistible.com","mail2irving.com","mail2irwin.com","mail2isaac.com","mail2israel.com","mail2italian.com","mail2italy.com","mail2jackie.com","mail2jacob.com","mail2jail.com","mail2jaime.com","mail2jake.com","mail2jamaica.com","mail2james.com","mail2jamie.com","mail2jan.com","mail2jane.com","mail2janet.com","mail2janice.com","mail2japan.com","mail2japanese.com","mail2jasmine.com","mail2jason.com","mail2java.com","mail2jay.com","mail2jazz.com","mail2jed.com","mail2jeffrey.com","mail2jennifer.com","mail2jenny.com","mail2jeremy.com","mail2jerry.com","mail2jessica.com","mail2jessie.com","mail2jesus.com","mail2jew.com","mail2jeweler.com","mail2jim.com","mail2jimmy.com","mail2joan.com","mail2joann.com","mail2joanna.com","mail2jody.com","mail2joe.com","mail2joel.com","mail2joey.com","mail2john.com","mail2join.com","mail2jon.com","mail2jonathan.com","mail2jones.com","mail2jordan.com","mail2joseph.com","mail2josh.com","mail2joy.com","mail2juan.com","mail2judge.com","mail2judy.com","mail2juggler.com","mail2julian.com","mail2julie.com","mail2jumbo.com","mail2junk.com","mail2justin.com","mail2justme.com","mail2k.ru","mail2kansas.com","mail2karate.com","mail2karen.com","mail2karl.com","mail2karma.com","mail2kathleen.com","mail2kathy.com","mail2katie.com","mail2kay.com","mail2kazakhstan.com","mail2keen.com","mail2keith.com","mail2kelly.com","mail2kelsey.com","mail2ken.com","mail2kendall.com","mail2kennedy.com","mail2kenneth.com","mail2kenny.com","mail2kentucky.com","mail2kenya.com","mail2kerry.com","mail2kevin.com","mail2kim.com","mail2kimberly.com","mail2king.com","mail2kirk.com","mail2kiss.com","mail2kosher.com","mail2kristin.com","mail2kurt.com","mail2kuwait.com","mail2kyle.com","mail2kyrgyzstan.com","mail2la.com","mail2lacrosse.com","mail2lance.com","mail2lao.com","mail2larry.com","mail2latvia.com","mail2laugh.com","mail2laura.com","mail2lauren.com","mail2laurie.com","mail2lawrence.com","mail2lawyer.com","mail2lebanon.com","mail2lee.com","mail2leo.com","mail2leon.com","mail2leonard.com","mail2leone.com","mail2leslie.com","mail2letter.com","mail2liberia.com","mail2libertarian.com","mail2libra.com","mail2libya.com","mail2liechtenstein.com","mail2life.com","mail2linda.com","mail2linux.com","mail2lionel.com","mail2lipstick.com","mail2liquid.com","mail2lisa.com","mail2lithuania.com","mail2litigator.com","mail2liz.com","mail2lloyd.com","mail2lois.com","mail2lola.com","mail2london.com","mail2looking.com","mail2lori.com","mail2lost.com","mail2lou.com","mail2louis.com","mail2louisiana.com","mail2lovable.com","mail2love.com","mail2lucky.com","mail2lucy.com","mail2lunch.com","mail2lust.com","mail2luxembourg.com","mail2luxury.com","mail2lyle.com","mail2lynn.com","mail2madagascar.com","mail2madison.com","mail2madrid.com","mail2maggie.com","mail2mail4.com","mail2maine.com","mail2malawi.com","mail2malaysia.com","mail2maldives.com","mail2mali.com","mail2malta.com","mail2mambo.com","mail2man.com","mail2mandy.com","mail2manhunter.com","mail2mankind.com","mail2many.com","mail2marc.com","mail2marcia.com","mail2margaret.com","mail2margie.com","mail2marhaba.com","mail2maria.com","mail2marilyn.com","mail2marines.com","mail2mark.com","mail2marriage.com","mail2married.com","mail2marries.com","mail2mars.com","mail2marsha.com","mail2marshallislands.com","mail2martha.com","mail2martin.com","mail2marty.com","mail2marvin.com","mail2mary.com","mail2maryland.com","mail2mason.com","mail2massachusetts.com","mail2matt.com","mail2matthew.com","mail2maurice.com","mail2mauritania.com","mail2mauritius.com","mail2max.com","mail2maxwell.com","mail2maybe.com","mail2mba.com","mail2me4u.com","mail2mechanic.com","mail2medieval.com","mail2megan.com","mail2mel.com","mail2melanie.com","mail2melissa.com","mail2melody.com","mail2member.com","mail2memphis.com","mail2methodist.com","mail2mexican.com","mail2mexico.com","mail2mgz.com","mail2miami.com","mail2michael.com","mail2michelle.com","mail2michigan.com","mail2mike.com","mail2milan.com","mail2milano.com","mail2mildred.com","mail2milkyway.com","mail2millennium.com","mail2millionaire.com","mail2milton.com","mail2mime.com","mail2mindreader.com","mail2mini.com","mail2minister.com","mail2minneapolis.com","mail2minnesota.com","mail2miracle.com","mail2missionary.com","mail2mississippi.com","mail2missouri.com","mail2mitch.com","mail2model.com","mail2moldova.commail2molly.com","mail2mom.com","mail2monaco.com","mail2money.com","mail2mongolia.com","mail2monica.com","mail2montana.com","mail2monty.com","mail2moon.com","mail2morocco.com","mail2morpheus.com","mail2mors.com","mail2moscow.com","mail2moslem.com","mail2mouseketeer.com","mail2movies.com","mail2mozambique.com","mail2mp3.com","mail2mrright.com","mail2msright.com","mail2museum.com","mail2music.com","mail2musician.com","mail2muslim.com","mail2my.com","mail2myboat.com","mail2mycar.com","mail2mycell.com","mail2mygsm.com","mail2mylaptop.com","mail2mymac.com","mail2mypager.com","mail2mypalm.com","mail2mypc.com","mail2myphone.com","mail2myplane.com","mail2namibia.com","mail2nancy.com","mail2nasdaq.com","mail2nathan.com","mail2nauru.com","mail2navy.com","mail2neal.com","mail2nebraska.com","mail2ned.com","mail2neil.com","mail2nelson.com","mail2nemesis.com","mail2nepal.com","mail2netherlands.com","mail2network.com","mail2nevada.com","mail2newhampshire.com","mail2newjersey.com","mail2newmexico.com","mail2newyork.com","mail2newzealand.com","mail2nicaragua.com","mail2nick.com","mail2nicole.com","mail2niger.com","mail2nigeria.com","mail2nike.com","mail2no.com","mail2noah.com","mail2noel.com","mail2noelle.com","mail2normal.com","mail2norman.com","mail2northamerica.com","mail2northcarolina.com","mail2northdakota.com","mail2northpole.com","mail2norway.com","mail2notus.com","mail2noway.com","mail2nowhere.com","mail2nuclear.com","mail2nun.com","mail2ny.com","mail2oasis.com","mail2oceanographer.com","mail2ohio.com","mail2ok.com","mail2oklahoma.com","mail2oliver.com","mail2oman.com","mail2one.com","mail2onfire.com","mail2online.com","mail2oops.com","mail2open.com","mail2ophthalmologist.com","mail2optometrist.com","mail2oregon.com","mail2oscars.com","mail2oslo.com","mail2painter.com","mail2pakistan.com","mail2palau.com","mail2pan.com","mail2panama.com","mail2paraguay.com","mail2paralegal.com","mail2paris.com","mail2park.com","mail2parker.com","mail2party.com","mail2passion.com","mail2pat.com","mail2patricia.com","mail2patrick.com","mail2patty.com","mail2paul.com","mail2paula.com","mail2pay.com","mail2peace.com","mail2pediatrician.com","mail2peggy.com","mail2pennsylvania.com","mail2perry.com","mail2persephone.com","mail2persian.com","mail2peru.com","mail2pete.com","mail2peter.com","mail2pharmacist.com","mail2phil.com","mail2philippines.com","mail2phoenix.com","mail2phonecall.com","mail2phyllis.com","mail2pickup.com","mail2pilot.com","mail2pisces.com","mail2planet.com","mail2platinum.com","mail2plato.com","mail2pluto.com","mail2pm.com","mail2podiatrist.com","mail2poet.com","mail2poland.com","mail2policeman.com","mail2policewoman.com","mail2politician.com","mail2pop.com","mail2pope.com","mail2popular.com","mail2portugal.com","mail2poseidon.com","mail2potatohead.com","mail2power.com","mail2presbyterian.com","mail2president.com","mail2priest.com","mail2prince.com","mail2princess.com","mail2producer.com","mail2professor.com","mail2protect.com","mail2psychiatrist.com","mail2psycho.com","mail2psychologist.com","mail2qatar.com","mail2queen.com","mail2rabbi.com","mail2race.com","mail2racer.com","mail2rachel.com","mail2rage.com","mail2rainmaker.com","mail2ralph.com","mail2randy.com","mail2rap.com","mail2rare.com","mail2rave.com","mail2ray.com","mail2raymond.com","mail2realtor.com","mail2rebecca.com","mail2recruiter.com","mail2recycle.com","mail2redhead.com","mail2reed.com","mail2reggie.com","mail2register.com","mail2rent.com","mail2republican.com","mail2resort.com","mail2rex.com","mail2rhodeisland.com","mail2rich.com","mail2richard.com","mail2ricky.com","mail2ride.com","mail2riley.com","mail2rita.com","mail2rob.com","mail2robert.com","mail2roberta.com","mail2robin.com","mail2rock.com","mail2rocker.com","mail2rod.com","mail2rodney.com","mail2romania.com","mail2rome.com","mail2ron.com","mail2ronald.com","mail2ronnie.com","mail2rose.com","mail2rosie.com","mail2roy.com","mail2rss.org","mail2rudy.com","mail2rugby.com","mail2runner.com","mail2russell.com","mail2russia.com","mail2russian.com","mail2rusty.com","mail2ruth.com","mail2rwanda.com","mail2ryan.com","mail2sa.com","mail2sabrina.com","mail2safe.com","mail2sagittarius.com","mail2sail.com","mail2sailor.com","mail2sal.com","mail2salaam.com","mail2sam.com","mail2samantha.com","mail2samoa.com","mail2samurai.com","mail2sandra.com","mail2sandy.com","mail2sanfrancisco.com","mail2sanmarino.com","mail2santa.com","mail2sara.com","mail2sarah.com","mail2sat.com","mail2saturn.com","mail2saudi.com","mail2saudiarabia.com","mail2save.com","mail2savings.com","mail2school.com","mail2scientist.com","mail2scorpio.com","mail2scott.com","mail2sean.com","mail2search.com","mail2seattle.com","mail2secretagent.com","mail2senate.com","mail2senegal.com","mail2sensual.com","mail2seth.com","mail2sevenseas.com","mail2sexy.com","mail2seychelles.com","mail2shane.com","mail2sharon.com","mail2shawn.com","mail2ship.com","mail2shirley.com","mail2shoot.com","mail2shuttle.com","mail2sierraleone.com","mail2simon.com","mail2singapore.com","mail2single.com","mail2site.com","mail2skater.com","mail2skier.com","mail2sky.com","mail2sleek.com","mail2slim.com","mail2slovakia.com","mail2slovenia.com","mail2smile.com","mail2smith.com","mail2smooth.com","mail2soccer.com","mail2soccerfan.com","mail2socialist.com","mail2soldier.com","mail2somalia.com","mail2son.com","mail2song.com","mail2sos.com","mail2sound.com","mail2southafrica.com","mail2southamerica.com","mail2southcarolina.com","mail2southdakota.com","mail2southkorea.com","mail2southpole.com","mail2spain.com","mail2spanish.com","mail2spare.com","mail2spectrum.com","mail2splash.com","mail2sponsor.com","mail2sports.com","mail2srilanka.com","mail2stacy.com","mail2stan.com","mail2stanley.com","mail2star.com","mail2state.com","mail2stephanie.com","mail2steve.com","mail2steven.com","mail2stewart.com","mail2stlouis.com","mail2stock.com","mail2stockholm.com","mail2stockmarket.com","mail2storage.com","mail2store.com","mail2strong.com","mail2student.com","mail2studio.com","mail2studio54.com","mail2stuntman.com","mail2subscribe.com","mail2sudan.com","mail2superstar.com","mail2surfer.com","mail2suriname.com","mail2susan.com","mail2suzie.com","mail2swaziland.com","mail2sweden.com","mail2sweetheart.com","mail2swim.com","mail2swimmer.com","mail2swiss.com","mail2switzerland.com","mail2sydney.com","mail2sylvia.com","mail2syria.com","mail2taboo.com","mail2taiwan.com","mail2tajikistan.com","mail2tammy.com","mail2tango.com","mail2tanya.com","mail2tanzania.com","mail2tara.com","mail2taurus.com","mail2taxi.com","mail2taxidermist.com","mail2taylor.com","mail2taz.com","mail2teacher.com","mail2technician.com","mail2ted.com","mail2telephone.com","mail2teletubbie.com","mail2tenderness.com","mail2tennessee.com","mail2tennis.com","mail2tennisfan.com","mail2terri.com","mail2terry.com","mail2test.com","mail2texas.com","mail2thailand.com","mail2therapy.com","mail2think.com","mail2tickets.com","mail2tiffany.com","mail2tim.com","mail2time.com","mail2timothy.com","mail2tina.com","mail2titanic.com","mail2toby.com","mail2todd.com","mail2togo.com","mail2tom.com","mail2tommy.com","mail2tonga.com","mail2tony.com","mail2touch.com","mail2tourist.com","mail2tracey.com","mail2tracy.com","mail2tramp.com","mail2travel.com","mail2traveler.com","mail2travis.com","mail2trekkie.com","mail2trex.com","mail2triallawyer.com","mail2trick.com","mail2trillionaire.com","mail2troy.com","mail2truck.com","mail2trump.com","mail2try.com","mail2tunisia.com","mail2turbo.com","mail2turkey.com","mail2turkmenistan.com","mail2tv.com","mail2tycoon.com","mail2tyler.com","mail2u4me.com","mail2uae.com","mail2uganda.com","mail2uk.com","mail2ukraine.com","mail2uncle.com","mail2unsubscribe.com","mail2uptown.com","mail2uruguay.com","mail2usa.com","mail2utah.com","mail2uzbekistan.com","mail2v.com","mail2vacation.com","mail2valentines.com","mail2valerie.com","mail2valley.com","mail2vamoose.com","mail2vanessa.com","mail2vanuatu.com","mail2venezuela.com","mail2venous.com","mail2venus.com","mail2vermont.com","mail2vickie.com","mail2victor.com","mail2victoria.com","mail2vienna.com","mail2vietnam.com","mail2vince.com","mail2virginia.com","mail2virgo.com","mail2visionary.com","mail2vodka.com","mail2volleyball.com","mail2waiter.com","mail2wallstreet.com","mail2wally.com","mail2walter.com","mail2warren.com","mail2washington.com","mail2wave.com","mail2way.com","mail2waycool.com","mail2wayne.com","mail2webmaster.com","mail2webtop.com","mail2webtv.com","mail2weird.com","mail2wendell.com","mail2wendy.com","mail2westend.com","mail2westvirginia.com","mail2whether.com","mail2whip.com","mail2white.com","mail2whitehouse.com","mail2whitney.com","mail2why.com","mail2wilbur.com","mail2wild.com","mail2willard.com","mail2willie.com","mail2wine.com","mail2winner.com","mail2wired.com","mail2wisconsin.com","mail2woman.com","mail2wonder.com","mail2world.com","mail2worship.com","mail2wow.com","mail2www.com","mail2wyoming.com","mail2xfiles.com","mail2xox.com","mail2yachtclub.com","mail2yahalla.com","mail2yemen.com","mail2yes.com","mail2yugoslavia.com","mail2zack.com","mail2zambia.com","mail2zenith.com","mail2zephir.com","mail2zeus.com","mail2zipper.com","mail2zoo.com","mail2zoologist.com","mail2zurich.com","mail3000.com","mail333.com","mail4trash.com","mail4u.info","mail8.com","mailandftp.com","mailandnews.com","mailas.com","mailasia.com","mailbidon.com","mailbiz.biz","mailblocks.com","mailbolt.com","mailbomb.net","mailboom.com","mailbox.as","mailbox.co.za","mailbox.gr","mailbox.hu","mailbox72.biz","mailbox80.biz","mailbr.com.br","mailbucket.org","mailc.net","mailcan.com","mailcat.biz","mailcatch.com","mailcc.com","mailchoose.co","mailcity.com","mailclub.fr","mailclub.net","mailde.de","mailde.info","maildrop.cc","maildrop.gq","maildx.com","mailed.ro","maileimer.de","mailexcite.com","mailexpire.com","mailfa.tk","mailfly.com","mailforce.net","mailforspam.com","mailfree.gq","mailfreeonline.com","mailfreeway.com","mailfs.com","mailftp.com","mailgate.gr","mailgate.ru","mailgenie.net","mailguard.me","mailhaven.com","mailhood.com","mailimate.com","mailin8r.com","mailinatar.com","mailinater.com","mailinator.com","mailinator.net","mailinator.org","mailinator.us","mailinator2.com","mailinblack.com","mailincubator.com","mailingaddress.org","mailingweb.com","mailisent.com","mailismagic.com","mailite.com","mailmate.com","mailme.dk","mailme.gq","mailme.ir","mailme.lv","mailme24.com","mailmetrash.com","mailmight.com","mailmij.nl","mailmoat.com","mailms.com","mailnator.com","mailnesia.com","mailnew.com","mailnull.com","mailops.com","mailorg.org","mailoye.com","mailpanda.com","mailpick.biz","mailpokemon.com","mailpost.zzn.com","mailpride.com","mailproxsy.com","mailpuppy.com","mailquack.com","mailrock.biz","mailroom.com","mailru.com","mailsac.com","mailscrap.com","mailseal.de","mailsent.net","mailserver.ru","mailservice.ms","mailshell.com","mailshuttle.com","mailsiphon.com","mailslapping.com","mailsnare.net","mailstart.com","mailstartplus.com","mailsurf.com","mailtag.com","mailtemp.info","mailto.de","mailtome.de","mailtothis.com","mailtrash.net","mailtv.net","mailtv.tv","mailueberfall.de","mailup.net","mailwire.com","mailworks.org","mailzi.ru","mailzilla.com","mailzilla.org","makemetheking.com","maktoob.com","malayalamtelevision.net","malayalapathram.com","male.ru","maltesemail.com","mamber.net","manager.de","manager.in.th","mancity.net","manlymail.net","mantrafreenet.com","mantramail.com","mantraonline.com","manutdfans.com","manybrain.com","marchmail.com","marfino.net","margarita.ru","mariah-carey.ml.org","mariahc.com","marijuana.com","marijuana.nl","marketing.lu","marketingfanatic.com","marketweighton.com","married-not.com","marriedandlovingit.com","marry.ru","marsattack.com","martindalemail.com","martinguerre.net","mash4077.com","masrawy.com","matmail.com","mauimail.com","mauritius.com","maximumedge.com","maxleft.com","maxmail.co.uk","mayaple.ru","mbox.com.au","mbx.cc","mchsi.com","mcrmail.com","me-mail.hu","me.com","meanpeoplesuck.com","meatismurder.net","medical.net.au","medmail.com","medscape.com","meetingmall.com","mega.zik.dj","megago.com","megamail.pt","megapoint.com","mehrani.com","mehtaweb.com","meine-dateien.info","meine-diashow.de","meine-fotos.info","meine-urlaubsfotos.de","meinspamschutz.de","mekhong.com","melodymail.com","meloo.com","meltmail.com","members.student.com","menja.net","merda.flu.cc","merda.igg.biz","merda.nut.cc","merda.usa.cc","merseymail.com","mesra.net","message.hu","message.myspace.com","messagebeamer.de","messages.to","messagez.com","metacrawler.com","metalfan.com","metaping.com","metta.lk","mexicomail.com","mezimages.net","mfsa.ru","miatadriver.com","mierdamail.com","miesto.sk","mighty.co.za","migmail.net","migmail.pl","migumail.com","miho-nakayama.com","mikrotamanet.com","millionaireintraining.com","millionairemail.com","milmail.com","milmail.com15","mindless.com","mindspring.com","minermail.com","mini-mail.com","minister.com","ministry-of-silly-walks.de","mintemail.com","misery.net","misterpinball.de","mit.tc","mittalweb.com","mixmail.com","mjfrogmail.com","ml1.net","mlanime.com","mlb.bounce.ed10.net","mm.st","mmail.com","mns.ru","mo3gov.net","moakt.com","mobico.ru","mobilbatam.com","mobileninja.co.uk","mochamail.com","modemnet.net","modernenglish.com","modomail.com","mohammed.com","mohmal.com","moldova.cc","moldova.com","moldovacc.com","mom-mail.com","momslife.com","moncourrier.fr.nf","monemail.com","monemail.fr.nf","money.net","mongol.net","monmail.fr.nf","monsieurcinema.com","montevideo.com.uy","monumentmail.com","moomia.com","moonman.com","moose-mail.com","mor19.uu.gl","mortaza.com","mosaicfx.com","moscowmail.com","mosk.ru","most-wanted.com","mostlysunny.com","motorcyclefan.net","motormania.com","movemail.com","movieemail.net","movieluver.com","mox.pp.ua","mozartmail.com","mozhno.net","mp3haze.com","mp4.it","mr-potatohead.com","mrpost.com","mrspender.com","mscold.com","msgbox.com","msn.cn","msn.com","msn.nl","msx.ru","mt2009.com","mt2014.com","mt2015.com","mt2016.com","mttestdriver.com","muehlacker.tk","multiplechoices","mundomail.net","munich.com","music.com","music.com19","music.maigate.ru","musician.com","musician.org","musicscene.org","muskelshirt.de","muslim.com","muslimemail.com","muslimsonline.com","mutantweb.com","mvrht.com","my.com","my10minutemail.com","mybox.it","mycabin.com","mycampus.com","mycard.net.ua","mycity.com","mycleaninbox.net","mycool.com","mydomain.com","mydotcomaddress.com","myfairpoint.net","myfamily.com","myfastmail.com","myfunnymail.com","mygo.com","myiris.com","myjazzmail.com","mymac.ru","mymacmail.com","mymail-in.net","mymail.ro","mynamedot.com","mynet.com","mynetaddress.com","mynetstore.de","myotw.net","myownemail.com","myownfriends.com","mypacks.net","mypad.com","mypartyclip.de","mypersonalemail.com","myphantomemail.com","myplace.com","myrambler.ru","myrealbox.com","myremarq.com","mysamp.de","myself.com","myspaceinc.net","myspamless.com","mystupidjob.com","mytemp.email","mytempemail.com","mytempmail.com","mythirdage.com","mytrashmail.com","myway.com","myworldmail.com","n2.com","n2baseball.com","n2business.com","n2mail.com","n2soccer.com","n2software.com","nabc.biz","nabuma.com","nafe.com","nagarealm.com","nagpal.net","nakedgreens.com","name.com","nameplanet.com","nanaseaikawa.com","nandomail.com","naplesnews.net","naseej.com","nate.com","nativestar.net","nativeweb.net","naui.net","naver.com","navigator.lv","navy.org","naz.com","nc.rr.com","nc.ru","nchoicemail.com","neeva.net","nekto.com","nekto.net","nekto.ru","nemra1.com","nenter.com","neo.rr.com","neomailbox.com","nepwk.com","nervhq.org","nervmich.net","nervtmich.net","net-c.be","net-c.ca","net-c.cat","net-c.com","net-c.es","net-c.fr","net-c.it","net-c.lu","net-c.nl","net-c.pl","net-pager.net","net-shopping.com","net.tf","net4b.pt","net4you.at","netaddres.ru","netaddress.ru","netbounce.com","netbroadcaster.com","netby.dk","netc.eu","netc.fr","netc.it","netc.lu","netc.pl","netcenter-vn.net","netcity.ru","netcmail.com","netcourrier.com","netexecutive.com","netexpressway.com","netfirms.com","netgenie.com","netian.com","netizen.com.ar","netkushi.com","netlane.com","netlimit.com","netmail.kg","netmails.com","netmails.net","netman.ru","netmanor.com","netmongol.com","netnet.com.sg","netnoir.net","netpiper.com","netposta.net","netradiomail.com","netralink.com","netscape.net","netscapeonline.co.uk","netspace.net.au","netspeedway.com","netsquare.com","netster.com","nettaxi.com","nettemail.com","netterchef.de","netti.fi","netvigator.com","netzero.com","netzero.net","netzidiot.de","netzoola.com","neue-dateien.de","neuf.fr","neuro.md","neustreet.com","neverbox.com","newap.ru","newarbat.net","newmail.com","newmail.net","newmail.ru","newsboysmail.com","newyork.com","newyorkcity.com","nextmail.ru","nexxmail.com","nfmail.com","ngs.ru","nhmail.com","nice-4u.com","nicebush.com","nicegal.com","nicholastse.net","nicolastse.com","niepodam.pl","nightimeuk.com","nightmail.com","nightmail.ru","nikopage.com","nikulino.net","nimail.com","nincsmail.hu","ninfan.com","nirvanafan.com","nm.ru","nmail.cf","nnh.com","nnov.ru","no-spam.ws","no4ma.ru","noavar.com","noblepioneer.com","nogmailspam.info","nomail.pw","nomail.xl.cx","nomail2me.com","nomorespamemails.com","nonpartisan.com","nonspam.eu","nonspammer.de","nonstopcinema.com","norika-fujiwara.com","norikomail.com","northgates.net","nospam.ze.tc","nospam4.us","nospamfor.us","nospammail.net","nospamthanks.info","notmailinator.com","notsharingmy.info","notyouagain.com","novogireevo.net","novokosino.net","nowhere.org","nowmymail.com","ntelos.net","ntlhelp.net","ntlworld.com","ntscan.com","null.net","nullbox.info","numep.ru","nur-fuer-spam.de","nurfuerspam.de","nus.edu.sg","nuvse.com","nwldx.com","nxt.ru","ny.com","nybce.com","nybella.com","nyc.com","nycmail.com","nz11.com","nzoomail.com","o-tay.com","o2.co.uk","o2.pl","oaklandas-fan.com","oath.com","objectmail.com","obobbo.com","oceanfree.net","ochakovo.net","odaymail.com","oddpost.com","odmail.com","odnorazovoe.ru","office-dateien.de","office-email.com","officedomain.com","offroadwarrior.com","oi.com.br","oicexchange.com","oikrach.com","ok.kz","ok.net","ok.ru","okbank.com","okhuman.com","okmad.com","okmagic.com","okname.net","okuk.com","oldbuthealthy.com","oldies1041.com","oldies104mail.com","ole.com","olemail.com","oligarh.ru","olympist.net","olypmall.ru","omaninfo.com","omen.ru","ondikoi.com","onebox.com","onenet.com.ar","oneoffemail.com","oneoffmail.com","onet.com.pl","onet.eu","onet.pl","onewaymail.com","oninet.pt","onlatedotcom.info","online.de","online.ie","online.ms","online.nl","online.ru","onlinecasinogamblings.com","onlinewiz.com","onmicrosoft.com","onmilwaukee.com","onobox.com","onvillage.com","oopi.org","op.pl","opayq.com","opendiary.com","openmailbox.org","operafan.com","operamail.com","opoczta.pl","optician.com","optonline.net","optusnet.com.au","orange.fr","orange.net","orbitel.bg","ordinaryamerican.net","orgmail.net","orthodontist.net","osite.com.br","oso.com","otakumail.com","otherinbox.com","our-computer.com","our-office.com","our.st","ourbrisbane.com","ourklips.com","ournet.md","outel.com","outgun.com","outlawspam.com","outlook.at","outlook.be","outlook.cl","outlook.co.id","outlook.co.il","outlook.co.nz","outlook.co.th","outlook.com","outlook.com.au","outlook.com.br","outlook.com.gr","outlook.com.pe","outlook.com.tr","outlook.com.vn","outlook.cz","outlook.de","outlook.dk","outlook.es","outlook.fr","outlook.hu","outlook.ie","outlook.in","outlook.it","outlook.jp","outlook.kr","outlook.lv","outlook.my","outlook.nl","outlook.ph","outlook.pt","outlook.sa","outlook.sg","outlook.sk","outloook.com","over-the-rainbow.com","ovi.com","ovpn.to","owlpic.com","ownmail.net","ozbytes.net.au","ozemail.com.au","ozz.ru","pacbell.net","pacific-ocean.com","pacific-re.com","pacificwest.com","packersfan.com","pagina.de","pagons.org","paidforsurf.com","pakistanmail.com","pakistanoye.com","palestinemail.com","pancakemail.com","pandawa.com","pandora.be","paradiseemail.com","paris.com","parkjiyoon.com","parrot.com","parsmail.com","partlycloudy.com","partybombe.de","partyheld.de","partynight.at","parvazi.com","passwordmail.com","pathfindermail.com","patmail.com","patra.net","pconnections.net","pcpostal.com","pcsrock.com","pcusers.otherinbox.com","peachworld.com","pechkin.ru","pediatrician.com","pekklemail.com","pemail.net","penpen.com","peoplepc.com","peopleweb.com","pepbot.com","perfectmail.com","perovo.net","perso.be","personal.ro","personales.com","petlover.com","petml.com","petr.ru","pettypool.com","pezeshkpour.com","pfui.ru","phayze.com","phone.net","photo-impact.eu","photographer.net","phpbb.uu.gl","phreaker.net","phus8kajuspa.cu.cc","physicist.net","pianomail.com","pickupman.com","picusnet.com","piercedallover.com","pigeonportal.com","pigmail.net","pigpig.net","pilotemail.com","pimagop.com","pinoymail.com","piracha.net","pisem.net","pjjkp.com","planet-mail.com","planet.nl","planetaccess.com","planetall.com","planetarymotion.net","planetdirect.com","planetearthinter.net","planetmail.com","planetmail.net","planetout.com","plasa.com","playersodds.com","playful.com","playstation.sony.com","plexolan.de","pluno.com","plus.com","plus.google.com","plusmail.com.br","pmail.net","pobox.com","pobox.hu","pobox.ru","pobox.sk","pochta.by","pochta.ru","pochta.ws","pochtamt.ru","poczta.fm","poczta.onet.pl","poetic.com","pokemail.net","pokemonpost.com","pokepost.com","polandmail.com","polbox.com","policeoffice.com","politician.com","politikerclub.de","polizisten-duzer.de","polyfaust.com","poofy.org","poohfan.com","pookmail.com","pool-sharks.com","poond.com","pop3.ru","popaccount.com","popmail.com","popsmail.com","popstar.com","populus.net","portableoffice.com","portugalmail.com","portugalmail.pt","portugalnet.com","positive-thinking.com","post.com","post.cz","post.sk","posta.net","posta.ro","posta.rosativa.ro.org","postaccesslite.com","postafiok.hu","postafree.com","postaweb.com","poste.it","postfach.cc","postinbox.com","postino.ch","postino.it","postmark.net","postmaster.co.uk","postmaster.twitter.com","postpro.net","pousa.com","powerdivas.com","powerfan.com","pp.inet.fi","praize.com","pray247.com","predprinimatel.ru","premium-mail.fr","premiumproducts.com","premiumservice.com","prepodavatel.ru","presidency.com","presnya.net","press.co.jp","prettierthanher.com","priest.com","primposta.com","primposta.hu","printesamargareta.ro","privacy.net","privatdemail.net","privy-mail.com","privymail.de","pro.hu","probemail.com","prodigy.net","prodigy.net.mx","professor.ru","progetplus.it","programist.ru","programmer.net","programozo.hu","proinbox.com","project2k.com","prokuratura.ru","prolaunch.com","promessage.com","prontomail.com","prontomail.compopulus.net","protestant.com","protonmail.com","proxymail.eu","prtnx.com","prydirect.info","psv-supporter.com","ptd.net","public-files.de","public.usa.com","publicist.com","pulp-fiction.com","punkass.com","puppy.com.my","purinmail.com","purpleturtle.com","put2.net","putthisinyourspamdatabase.com","pwrby.com","q.com","qatar.io","qatarmail.com","qdice.com","qip.ru","qmail.com","qprfans.com","qq.com","qrio.com","quackquack.com","quake.ru","quakemail.com","qualityservice.com","quantentunnel.de","qudsmail.com","quepasa.com","quickhosts.com","quickinbox.com","quickmail.nl","quickmail.ru","quicknet.nl","quickwebmail.com","quiklinks.com","quikmail.com","qv7.info","qwest.net","qwestoffice.net","r-o-o-t.com","r7.com","raakim.com","racedriver.com","racefanz.com","racingfan.com.au","racingmail.com","radicalz.com","radiku.ye.vc","radiologist.net","ragingbull.com","ralib.com","rambler.ru","ranmamail.com","rastogi.net","ratt-n-roll.com","rattle-snake.com","raubtierbaendiger.de","ravearena.com","ravefan.com","ravemail.co.za","ravemail.com","razormail.com","rccgmail.org","rcn.com","rcpt.at","realemail.net","realestatemail.net","reality-concept.club","reallyfast.biz","reallyfast.info","reallymymail.com","realradiomail.com","realtyagent.com","realtyalerts.ca","reborn.com","recode.me","reconmail.com","recursor.net","recycledmail.com","recycler.com","recyclermail.com","rediff.com","rediffmail.com","rediffmailpro.com","rednecks.com","redseven.de","redsfans.com","redwhitearmy.com","regbypass.com","reggaefan.com","reggafan.com","regiononline.com","registerednurses.com","regspaces.tk","reincarnate.com","relia.com","reliable-mail.com","religious.com","remail.ga","renren.com","repairman.com","reply.hu","reply.ticketmaster.com","represantive.com","representative.com","rescueteam.com","resgedvgfed.tk","resource.calendar.google.com","resumemail.com","retailfan.com","rexian.com","rezai.com","rhyta.com","richmondhill.com","rickymail.com","rin.ru","ring.by","riopreto.com.br","rklips.com","rmqkr.net","rn.com","ro.ru","roadrunner.com","roanokemail.com","rock.com","rocketmail.com","rocketship.com","rockfan.com","rodrun.com","rogers.com","rojname.com","rol.ro","rome.com","romymichele.com","roosh.com","rootprompt.org","rotfl.com","roughnet.com","royal.net","rpharmacist.com","rr.com","rrohio.com","rsub.com","rt.nl","rtrtr.com","ru.ru","rubyridge.com","runbox.com","rushpost.com","ruttolibero.com","rvshop.com","rxdoc.biz","s-mail.com","s0ny.net","sabreshockey.com","sacbeemail.com","saeuferleber.de","safarimail.com","safe-mail.net","safersignup.de","safetymail.info","safetypost.de","safrica.com","sagra.lu","sagra.lu.lu","sagra.lumarketing.lu","sags-per-mail.de","sailormoon.com","saint-mike.org","saintly.com","saintmail.net","sale-sale-sale.com","salehi.net","salesperson.net","samerica.com","samilan.net","samiznaetekogo.net","sammimail.com","sanchezsharks.com","sandelf.de","sanfranmail.com","sanook.com","sanriotown.com","santanmail.com","sapo.pt","sativa.ro.org","saturnfans.com","saturnperformance.com","saudia.com","savecougars.com","savelife.ml","saveowls.com","sayhi.net","saynotospams.com","sbcglbal.net","sbcglobal.com","sbcglobal.net","scandalmail.com","scanova.in","scanova.io","scarlet.nl","scfn.net","schafmail.de","schizo.com","schmusemail.de","schoolemail.com","schoolmail.com","schoolsucks.com","schreib-doch-mal-wieder.de","schrott-email.de","schweiz.org","sci.fi","science.com.au","scientist.com","scifianime.com","scotland.com","scotlandmail.com","scottishmail.co.uk","scottishtories.com","scottsboro.org","scrapbookscrapbook.com","scubadiving.com","seanet.com","search.ua","search417.com","searchwales.com","sebil.com","seckinmail.com","secret-police.com","secretarias.com","secretary.net","secretemail.de","secretservices.net","secure-mail.biz","secure-mail.cc","seductive.com","seekstoyboy.com","seguros.com.br","sekomaonline.com","selfdestructingmail.com","sellingspree.com","send.hu","sendmail.ru","sendme.cz","sendspamhere.com","senseless-entertainment.com","sent.as","sent.at","sent.com","sentrismail.com","serga.com.ar","servemymail.com","servermaps.net","services391.com","sesmail.com","sexmagnet.com","seznam.cz","sfr.fr","shahweb.net","shaniastuff.com","shared-files.de","sharedmailbox.org","sharewaredevelopers.com","sharklasers.com","sharmaweb.com","shaw.ca","she.com","shellov.net","shieldedmail.com","shieldemail.com","shiftmail.com","shinedyoureyes.com","shitaway.cf","shitaway.cu.cc","shitaway.ga","shitaway.gq","shitaway.ml","shitaway.tk","shitaway.usa.cc","shitmail.de","shitmail.me","shitmail.org","shitware.nl","shmeriously.com","shockinmytown.cu.cc","shootmail.com","shortmail.com","shortmail.net","shotgun.hu","showfans.com","showslow.de","shqiptar.eu","shuf.com","sialkotcity.com","sialkotian.com","sialkotoye.com","sibmail.com","sify.com","sigaret.net","silkroad.net","simbamail.fm","sina.cn","sina.com","sinamail.com","singapore.com","singles4jesus.com","singmail.com","singnet.com.sg","singpost.com","sinnlos-mail.de","sirindia.com","siteposter.net","skafan.com","skeefmail.com","skim.com","skizo.hu","skrx.tk","skunkbox.com","sky.com","skynet.be","slamdunkfan.com","slapsfromlastnight.com","slaskpost.se","slave-auctions.net","slickriffs.co.uk","slingshot.com","slippery.email","slipry.net","slo.net","slotter.com","sm.westchestergov.com","smap.4nmv.ru","smapxsmap.net","smashmail.de","smellfear.com","smellrear.com","smileyface.comsmithemail.net","sminkymail.com","smoothmail.com","sms.at","smtp.ru","snail-mail.net","snail-mail.ney","snakebite.com","snakemail.com","sndt.net","sneakemail.com","sneakmail.de","snet.net","sniper.hu","snkmail.com","snoopymail.com","snowboarding.com","snowdonia.net","so-simple.org","socamail.com","socceraccess.com","socceramerica.net","soccermail.com","soccermomz.com","social-mailer.tk","socialworker.net","sociologist.com","sofimail.com","sofort-mail.de","sofortmail.de","softhome.net","sogetthis.com","sogou.com","sohu.com","sokolniki.net","sol.dk","solar-impact.pro","solcon.nl","soldier.hu","solution4u.com","solvemail.info","songwriter.net","sonnenkinder.org","soodomail.com","soodonims.com","soon.com","soulfoodcookbook.com","soundofmusicfans.com","southparkmail.com","sovsem.net","sp.nl","space-bank.com","space-man.com","space-ship.com","space-travel.com","space.com","spaceart.com","spacebank.com","spacemart.com","spacetowns.com","spacewar.com","spainmail.com","spam.2012-2016.ru","spam4.me","spamail.de","spamarrest.com","spamavert.com","spambob.com","spambob.net","spambob.org","spambog.com","spambog.de","spambog.net","spambog.ru","spambooger.com","spambox.info","spambox.us","spamcannon.com","spamcannon.net","spamcero.com","spamcon.org","spamcorptastic.com","spamcowboy.com","spamcowboy.net","spamcowboy.org","spamday.com","spamdecoy.net","spameater.com","spameater.org","spamex.com","spamfree.eu","spamfree24.com","spamfree24.de","spamfree24.info","spamfree24.net","spamfree24.org","spamgoes.in","spamgourmet.com","spamgourmet.net","spamgourmet.org","spamherelots.com","spamhereplease.com","spamhole.com","spamify.com","spaminator.de","spamkill.info","spaml.com","spaml.de","spammotel.com","spamobox.com","spamoff.de","spamslicer.com","spamspot.com","spamstack.net","spamthis.co.uk","spamtroll.net","spankthedonkey.com","spartapiet.com","spazmail.com","speed.1s.fr","speedemail.net","speedpost.net","speedrules.com","speedrulz.com","speedy.com.ar","speedymail.org","sperke.net","spils.com","spinfinder.com","spiritseekers.com","spl.at","spoko.pl","spoofmail.de","sportemail.com","sportmail.ru","sportsmail.com","sporttruckdriver.com","spray.no","spray.se","spybox.de","spymac.com","sraka.xyz","srilankan.net","ssl-mail.com","st-davids.net","stade.fr","stalag13.com","standalone.net","starbuzz.com","stargateradio.com","starmail.com","starmail.org","starmedia.com","starplace.com","starspath.com","start.com.au","starting-point.com","startkeys.com","startrekmail.com","starwars-fans.com","stealthmail.com","stillchronic.com","stinkefinger.net","stipte.nl","stockracer.com","stockstorm.com","stoned.com","stones.com","stop-my-spam.pp.ua","stopdropandroll.com","storksite.com","streber24.de","streetwisemail.com","stribmail.com","strompost.com","strongguy.com","student.su","studentcenter.org","stuffmail.de","subnetwork.com","subram.com","sudanmail.net","sudolife.me","sudolife.net","sudomail.biz","sudomail.com","sudomail.net","sudoverse.com","sudoverse.net","sudoweb.net","sudoworld.com","sudoworld.net","sueddeutsche.de","suhabi.com","suisse.org","sukhumvit.net","sul.com.br","sunmail1.com","sunpoint.net","sunrise-sunset.com","sunsgame.com","sunumail.sn","suomi24.fi","super-auswahl.de","superdada.com","supereva.it","supergreatmail.com","supermail.ru","supermailer.jp","superman.ru","superposta.com","superrito.com","superstachel.de","surat.com","suremail.info","surf3.net","surfree.com","surfsupnet.net","surfy.net","surgical.net","surimail.com","survivormail.com","susi.ml","sviblovo.net","svk.jp","swbell.net","sweb.cz","swedenmail.com","sweetville.net","sweetxxx.de","swift-mail.com","swiftdesk.com","swingeasyhithard.com","swingfan.com","swipermail.zzn.com","swirve.com","swissinfo.org","swissmail.com","swissmail.net","switchboardmail.com","switzerland.org","sx172.com","sympatico.ca","syom.com","syriamail.com","t-online.de","t.psh.me","t2mail.com","tafmail.com","takoe.com","takoe.net","takuyakimura.com","talk21.com","talkcity.com","talkinator.com","talktalk.co.uk","tamb.ru","tamil.com","tampabay.rr.com","tangmonkey.com","tankpolice.com","taotaotano.com","tatanova.com","tattooedallover.com","tattoofanatic.com","tbwt.com","tcc.on.ca","tds.net","teacher.com","teachermail.net","teachers.org","teamdiscovery.com","teamtulsa.net","tech-center.com","tech4peace.org","techemail.com","techie.com","technisamail.co.za","technologist.com","technologyandstocks.com","techpointer.com","techscout.com","techseek.com","techsniper.com","techspot.com","teenagedirtbag.com","teewars.org","tele2.nl","telebot.com","telebot.net","telefonica.net","teleline.es","telenet.be","telepac.pt","telerymd.com","teleserve.dynip.com","teletu.it","teleworm.com","teleworm.us","telfort.nl","telfortglasvezel.nl","telinco.net","telkom.net","telpage.net","telstra.com","telstra.com.au","temp-mail.com","temp-mail.de","temp-mail.org","temp-mail.ru","temp.headstrong.de","tempail.com","tempe-mail.com","tempemail.biz","tempemail.co.za","tempemail.com","tempemail.net","tempinbox.co.uk","tempinbox.com","tempmail.eu","tempmail.it","tempmail.us","tempmail2.com","tempmaildemo.com","tempmailer.com","tempmailer.de","tempomail.fr","temporarioemail.com.br","temporaryemail.net","temporaryemail.us","temporaryforwarding.com","temporaryinbox.com","temporarymailaddress.com","tempthe.net","tempymail.com","temtulsa.net","tenchiclub.com","tenderkiss.com","tennismail.com","terminverpennt.de","terra.cl","terra.com","terra.com.ar","terra.com.br","terra.com.pe","terra.es","test.com","test.de","tfanus.com.er","tfbnw.net","tfz.net","tgasa.ru","tgma.ru","tgngu.ru","tgu.ru","thai.com","thaimail.com","thaimail.net","thanksnospam.info","thankyou2010.com","thc.st","the-african.com","the-airforce.com","the-aliens.com","the-american.com","the-animal.com","the-army.com","the-astronaut.com","the-beauty.com","the-big-apple.com","the-biker.com","the-boss.com","the-brazilian.com","the-canadian.com","the-canuck.com","the-captain.com","the-chinese.com","the-country.com","the-cowboy.com","the-davis-home.com","the-dutchman.com","the-eagles.com","the-englishman.com","the-fastest.net","the-fool.com","the-frenchman.com","the-galaxy.net","the-genius.com","the-gentleman.com","the-german.com","the-gremlin.com","the-hooligan.com","the-italian.com","the-japanese.com","the-lair.com","the-madman.com","the-mailinglist.com","the-marine.com","the-master.com","the-mexican.com","the-ministry.com","the-monkey.com","the-newsletter.net","the-pentagon.com","the-police.com","the-prayer.com","the-professional.com","the-quickest.com","the-russian.com","the-seasiders.com","the-snake.com","the-spaceman.com","the-stock-market.com","the-student.net","the-whitehouse.net","the-wild-west.com","the18th.com","thecoolguy.com","thecriminals.com","thedoghousemail.com","thedorm.com","theend.hu","theglobe.com","thegolfcourse.com","thegooner.com","theheadoffice.com","theinternetemail.com","thelanddownunder.com","thelimestones.com","themail.com","themillionare.net","theoffice.net","theplate.com","thepokerface.com","thepostmaster.net","theraces.com","theracetrack.com","therapist.net","thereisnogod.com","thesimpsonsfans.com","thestreetfighter.com","theteebox.com","thewatercooler.com","thewebpros.co.uk","thewizzard.com","thewizzkid.com","thexyz.ca","thexyz.cn","thexyz.com","thexyz.es","thexyz.fr","thexyz.in","thexyz.mobi","thexyz.net","thexyz.org","thezhangs.net","thirdage.com","thisgirl.com","thisisnotmyrealemail.com","thismail.net","thoic.com","thraml.com","thrott.com","throwam.com","throwawayemailaddress.com","thundermail.com","tibetemail.com","tidni.com","tilien.com","timein.net","timormail.com","tin.it","tipsandadvice.com","tiran.ru","tiscali.at","tiscali.be","tiscali.co.uk","tiscali.it","tiscali.lu","tiscali.se","tittbit.in","tizi.com","tkcity.com","tlcfan.com","tmail.ws","tmailinator.com","tmicha.net","toast.com","toke.com","tokyo.com","tom.com","toolsource.com","toomail.biz","toothfairy.com","topchat.com","topgamers.co.uk","topletter.com","topmail-files.de","topmail.com.ar","topranklist.de","topsurf.com","topteam.bg","toquedequeda.com","torba.com","torchmail.com","torontomail.com","tortenboxer.de","totalmail.com","totalmail.de","totalmusic.net","totalsurf.com","toughguy.net","townisp.com","tpg.com.au","tradermail.info","trainspottingfan.com","trash-amil.com","trash-mail.at","trash-mail.com","trash-mail.de","trash-mail.ga","trash-mail.ml","trash2009.com","trash2010.com","trash2011.com","trashdevil.com","trashdevil.de","trashemail.de","trashmail.at","trashmail.com","trashmail.de","trashmail.me","trashmail.net","trashmail.org","trashmailer.com","trashymail.com","trashymail.net","travel.li","trayna.com","trbvm.com","trbvn.com","trevas.net","trialbytrivia.com","trialmail.de","trickmail.net","trillianpro.com","trimix.cn","tritium.net","trjam.net","trmailbox.com","tropicalstorm.com","truckeremail.net","truckers.com","truckerz.com","truckracer.com","truckracers.com","trust-me.com","truth247.com","truthmail.com","tsamail.co.za","ttml.co.in","tulipsmail.net","tunisiamail.com","turboprinz.de","turboprinzessin.de","turkey.com","turual.com","tushino.net","tut.by","tvcablenet.be","tverskie.net","tverskoe.net","tvnet.lv","tvstar.com","twc.com","twcny.com","twentylove.com","twinmail.de","twinstarsmail.com","tx.rr.com","tycoonmail.com","tyldd.com","typemail.com","tyt.by","u14269.ml","u2club.com","ua.fm","uae.ac","uaemail.com","ubbi.com","ubbi.com.br","uboot.com","uggsrock.com","uk2.net","uk2k.com","uk2net.com","uk7.net","uk8.net","ukbuilder.com","ukcool.com","ukdreamcast.com","ukmail.org","ukmax.com","ukr.net","ukrpost.net","ukrtop.com","uku.co.uk","ultapulta.com","ultimatelimos.com","ultrapostman.com","umail.net","ummah.org","umpire.com","unbounded.com","underwriters.com","unforgettable.com","uni.de","uni.de.de","uni.demailto.de","unican.es","unihome.com","universal.pt","uno.ee","uno.it","unofree.it","unomail.com","unterderbruecke.de","uogtritons.com","uol.com.ar","uol.com.br","uol.com.co","uol.com.mx","uol.com.ve","uole.com","uole.com.ve","uolmail.com","uomail.com","upc.nl","upcmail.nl","upf.org","upliftnow.com","uplipht.com","uraniomail.com","ureach.com","urgentmail.biz","uroid.com","us.af","usa.com","usa.net","usaaccess.net","usanetmail.com","used-product.fr","userbeam.com","usermail.com","username.e4ward.com","userzap.com","usma.net","usmc.net","uswestmail.net","uymail.com","uyuyuy.com","uzhe.net","v-sexi.com","v8email.com","vaasfc4.tk","vahoo.com","valemail.net","valudeal.net","vampirehunter.com","varbizmail.com","vcmail.com","velnet.co.uk","velnet.com","velocall.com","veloxmail.com.br","venompen.com","verizon.net","verizonmail.com","verlass-mich-nicht.de","versatel.nl","verticalheaven.com","veryfast.biz","veryrealemail.com","veryspeedy.net","vfemail.net","vickaentb.tk","videotron.ca","viditag.com","viewcastmedia.com","viewcastmedia.net","vinbazar.com","violinmakers.co.uk","vip.126.com","vip.21cn.com","vip.citiz.net","vip.gr","vip.onet.pl","vip.qq.com","vip.sina.com","vipmail.ru","viralplays.com","virgilio.it","virgin.net","virginbroadband.com.au","virginmedia.com","virtual-mail.com","virtualactive.com","virtualguam.com","virtualmail.com","visitmail.com","visitweb.com","visto.com","visualcities.com","vivavelocity.com","vivianhsu.net","viwanet.ru","vjmail.com","vjtimail.com","vkcode.ru","vlcity.ru","vlmail.com","vnet.citiz.net","vnn.vn","vnukovo.net","vodafone.nl","vodafonethuis.nl","voila.fr","volcanomail.com","vollbio.de","volloeko.de","vomoto.com","voo.be","vorsicht-bissig.de","vorsicht-scharf.de","vote-democrats.com","vote-hillary.com","vote-republicans.com","vote4gop.org","votenet.com","vovan.ru","vp.pl","vpn.st","vr9.com","vsimcard.com","vubby.com","vyhino.net","w3.to","wahoye.com","walala.org","wales2000.net","walkmail.net","walkmail.ru","walla.co.il","wam.co.za","wanaboo.com","wanadoo.co.uk","wanadoo.es","wanadoo.fr","wapda.com","war-im-urlaub.de","warmmail.com","warpmail.net","warrior.hu","wasteland.rfc822.org","watchmail.com","waumail.com","wazabi.club","wbdet.com","wearab.net","web-contact.info","web-emailbox.eu","web-ideal.fr","web-mail.com.ar","web-mail.pp.ua","web-police.com","web.de","webaddressbook.com","webadicta.org","webave.com","webbworks.com","webcammail.com","webcity.ca","webcontact-france.eu","webdream.com","webemail.me","webemaillist.com","webinbox.com","webindia123.com","webjump.com","webm4il.info","webmail.bellsouth.net","webmail.blue","webmail.co.yu","webmail.co.za","webmail.fish","webmail.hu","webmail.lawyer","webmail.ru","webmail.wiki","webmails.com","webmailv.com","webname.com","webprogramming.com","webskulker.com","webstation.com","websurfer.co.za","webtopmail.com","webtribe.net","webuser.in","wee.my","weedmail.com","weekmail.com","weekonline.com","wefjo.grn.cc","weg-werf-email.de","wegas.ru","wegwerf-emails.de","wegwerfadresse.de","wegwerfemail.com","wegwerfemail.de","wegwerfmail.de","wegwerfmail.info","wegwerfmail.net","wegwerfmail.org","wegwerpmailadres.nl","wehshee.com","weibsvolk.de","weibsvolk.org","weinenvorglueck.de","welsh-lady.com","wesleymail.com","westnet.com","westnet.com.au","wetrainbayarea.com","wfgdfhj.tk","wh4f.org","whale-mail.com","whartontx.com","whatiaas.com","whatpaas.com","wheelweb.com","whipmail.com","whoever.com","wholefitness.com","whoopymail.com","whtjddn.33mail.com","whyspam.me","wickedmail.com","wickmail.net","wideopenwest.com","wildmail.com","wilemail.com","will-hier-weg.de","willhackforfood.biz","willselfdestruct.com","windowslive.com","windrivers.net","windstream.com","windstream.net","winemaven.info","wingnutz.com","winmail.com.au","winning.com","winrz.com","wir-haben-nachwuchs.de","wir-sind-cool.org","wirsindcool.de","witty.com","wiz.cc","wkbwmail.com","wmail.cf","wo.com.cn","woh.rr.com","wolf-web.com","wolke7.net","wollan.info","wombles.com","women-at-work.org","women-only.net","wonder-net.com","wongfaye.com","wooow.it","work4teens.com","worker.com","workmail.co.za","workmail.com","worldbreak.com","worldemail.com","worldmailer.com","worldnet.att.net","wormseo.cn","wosaddict.com","wouldilie.com","wovz.cu.cc","wow.com","wowgirl.com","wowmail.com","wowway.com","wp.pl","wptamail.com","wrestlingpages.com","wrexham.net","writeme.com","writemeback.com","writeremail.com","wronghead.com","wrongmail.com","wtvhmail.com","wwdg.com","www.com","www.e4ward.com","www.mailinator.com","www2000.net","wwwnew.eu","wx88.net","wxs.net","wyrm.supernews.com","x-mail.net","x-networks.net","x.ip6.li","x5g.com","xagloo.com","xaker.ru","xd.ae","xemaps.com","xents.com","xing886.uu.gl","xmail.com","xmaily.com","xmastime.com","xmenfans.com","xms.nl","xmsg.com","xoom.com","xoommail.com","xoxox.cc","xoxy.net","xpectmore.com","xpressmail.zzn.com","xs4all.nl","xsecurity.org","xsmail.com","xtra.co.nz","xtram.com","xuno.com","xww.ro","xy9ce.tk","xyz.am","xyzfree.net","xzapmail.com","y7mail.com","ya.ru","yada-yada.com","yaho.com","yahoo.ae","yahoo.at","yahoo.be","yahoo.ca","yahoo.ch","yahoo.cn","yahoo.co","yahoo.co.id","yahoo.co.il","yahoo.co.in","yahoo.co.jp","yahoo.co.kr","yahoo.co.nz","yahoo.co.th","yahoo.co.uk","yahoo.co.za","yahoo.com","yahoo.com.ar","yahoo.com.au","yahoo.com.br","yahoo.com.cn","yahoo.com.co","yahoo.com.hk","yahoo.com.is","yahoo.com.mx","yahoo.com.my","yahoo.com.ph","yahoo.com.ru","yahoo.com.sg","yahoo.com.tr","yahoo.com.tw","yahoo.com.vn","yahoo.cz","yahoo.de","yahoo.dk","yahoo.es","yahoo.fi","yahoo.fr","yahoo.gr","yahoo.hu","yahoo.ie","yahoo.in","yahoo.it","yahoo.jp","yahoo.net","yahoo.nl","yahoo.no","yahoo.pl","yahoo.pt","yahoo.ro","yahoo.ru","yahoo.se","yahoofs.com","yahoomail.com","yalla.com","yalla.com.lb","yalook.com","yam.com","yandex.com","yandex.mail","yandex.pl","yandex.ru","yandex.ua","yapost.com","yapped.net","yawmail.com","yclub.com","yeah.net","yebox.com","yeehaa.com","yehaa.com","yehey.com","yemenmail.com","yep.it","yepmail.net","yert.ye.vc","yesbox.net","yesey.net","yeswebmaster.com","ygm.com","yifan.net","ymail.com","ynnmail.com","yogamaven.com","yogotemail.com","yomail.info","yopmail.com","yopmail.fr","yopmail.net","yopmail.org","yopmail.pp.ua","yopolis.com","yopweb.com","youareadork.com","youmailr.com","youpy.com","your-house.com","your-mail.com","yourdomain.com","yourinbox.com","yourlifesucks.cu.cc","yourlover.net","yournightmare.com","yours.com","yourssincerely.com","yourteacher.net","yourwap.com","youthfire.com","youthpost.com","youvegotmail.net","yuuhuu.net","yuurok.com","yyhmail.com","z1p.biz","z6.com","z9mail.com","za.com","zahadum.com","zaktouni.fr","zcities.com","zdnetmail.com","zdorovja.net","zeeks.com","zeepost.nl","zehnminuten.de","zehnminutenmail.de","zensearch.com","zensearch.net","zerocrime.org","zetmail.com","zhaowei.net","zhouemail.510520.org","ziggo.nl","zing.vn","zionweb.org","zip.net","zipido.com","ziplip.com","zipmail.com","zipmail.com.br","zipmax.com","zippymail.info","zmail.pt","zmail.ru","zoemail.com","zoemail.net","zoemail.org","zoho.com","zomg.info","zonai.com","zoneview.net","zonnet.nl","zooglemail.com","zoominternet.net","zubee.com","zuvio.com","zuzzurello.com","zvmail.com","zwallet.com","zweb.in","zxcv.com","zxcvbnm.com","zybermail.com","zydecofan.com","zzn.com","zzom.co.uk","zzz.com"],On="(?:[_\\p{L}0-9][-_\\p{L}0-9]*\\.)*(?:[\\p{L}0-9][-\\p{L}0-9]{0,62})\\.(?:(?:[a-z]{2}\\.)?[a-z]{2,})",Wn=class{static extractDomainFromEmail(e){const t=De()(`(?<=@)${On}`);return De().match(e,t)||""}static isProfessional(e){return!qn.includes(e)}static checkDomainValidity(e){if(!De()(`^${On}$`).test(e))throw new Error("Cannot parse domain. The domain does not match the pattern.");try{if(!new URL(`https://${e}`).host)throw new Error("Cannot parse domain. The domain does not match the pattern.")}catch(e){throw new Error("Cannot parse domain. The domain is not valid.")}}},Kn=class{static clone(e){return new Map(JSON.parse(JSON.stringify(Array.from(e))))}static iterators(e){return[...e.keys()]}static listValues(e){return[...e.values()]}},Vn=class{constructor(e={}){this.allowedDomains=this.mapAllowedDomains(e.data?.allowed_domains||[])}mapAllowedDomains(e){return new Map(e.map((e=>[(0,r.Z)(),e])))}getSettings(){return this.allowedDomains}setSettings(e){this.allowedDomains=this.mapAllowedDomains(e)}};class Hn extends n.Component{constructor(e){super(e),this.bindCallbacks()}bindCallbacks(){this.handleSubmit=this.handleSubmit.bind(this),this.handleClose=this.handleClose.bind(this)}handleClose(){this.props.onClose()}async handleSubmit(e){e.preventDefault(),await this.props.onSubmit(),this.props.onClose()}get allowedDomains(){return this.props.adminSelfRegistrationContext.getAllowedDomains()}render(){const e=this.props.adminSelfRegistrationContext.isProcessing();return n.createElement(tt,{title:this.props.t("Save self registration settings"),onClose:this.handleClose,disabled:e,className:"save-self-registration-settings-dialog"},n.createElement("form",{onSubmit:this.handleSubmit},n.createElement("div",{className:"form-content"},n.createElement(n.Fragment,null,n.createElement("label",null,n.createElement(v.c,null,"Allowed domains")),n.createElement("div",{className:"radiolist-alt"},n.createElement("div",{className:"input radio"},n.createElement("ul",{id:"domains-list"},this.allowedDomains&&Kn.iterators(this.allowedDomains).map((e=>n.createElement("li",{key:e},this.allowedDomains.get(e))))))))),n.createElement("div",{className:"warning message"},n.createElement(v.c,null,"Please review carefully this configuration.")),n.createElement("div",{className:"submit-wrapper clearfix"},n.createElement(nt,{onClick:this.handleClose,disabled:e}),n.createElement(Bt,{value:this.props.t("Save"),disabled:e,processing:e,warning:!0}))))}}Hn.propTypes={context:s().any,onSubmit:s().func,adminSelfRegistrationContext:s().object,onClose:s().func,t:s().func};const Bn=R(Xn((0,k.Z)("common")(Hn)));class Gn extends n.Component{constructor(e){super(e),this.bindCallbacks()}bindCallbacks(){this.handleSubmit=this.handleSubmit.bind(this),this.handleClose=this.handleClose.bind(this)}handleClose(){this.props.onClose()}async handleSubmit(e){e.preventDefault(),await this.props.onSubmit(),this.props.onClose()}render(){const e=this.props.adminSelfRegistrationContext.isProcessing();return n.createElement(tt,{title:this.props.t("Disable self registration"),onClose:this.handleClose,disabled:e,className:"delete-self-registration-settings-dialog"},n.createElement("form",{onSubmit:this.handleSubmit},n.createElement("div",{className:"form-content"},n.createElement("p",null,n.createElement(v.c,null,"Are you sure to disable the self registration for the organization ?")),n.createElement("p",null,n.createElement(v.c,null,"Users will not be able to self register anymore.")," ",n.createElement(v.c,null,"Only administrators would be able to invite users to register. "))),n.createElement("div",{className:"submit-wrapper clearfix"},n.createElement(nt,{onClick:this.handleClose,disabled:e}),n.createElement(Bt,{value:this.props.t("Save"),disabled:e,processing:e,warning:!0}))))}}Gn.propTypes={adminSelfRegistrationContext:s().object,onClose:s().func,onSubmit:s().func,t:s().func};const $n=Xn((0,k.Z)("common")(Gn));function Zn(){return Zn=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},Zn.apply(this,arguments)}const Yn=n.createContext({getCurrentSettings:()=>{},getAllowedDomains:()=>{},setAllowedDomains:()=>{},hasSettingsChanges:()=>{},setDomains:()=>{},findSettings:()=>{},setProcessing:()=>{},isProcessing:()=>{},clearContext:()=>{},isSubmitted:()=>{},setSubmitted:()=>{},setErrors:()=>{},getErrors:()=>{},setError:()=>{},save:()=>{},delete:()=>{},shouldFocus:()=>{},setFocus:()=>{},isSaved:()=>{},setSaved:()=>{},validateForm:()=>{}});class Jn extends n.Component{constructor(e){super(e),this.state=this.defaultState;const t=e.context.getApiClientOptions();this.selfRegistrationService=new class{constructor(e){e.setResourceName("self-registration/settings"),this.apiClient=new xe(e)}async find(){const e=(await this.apiClient.findAll())?.body;return e}async save(e){await this.apiClient.create(e)}async delete(e){await this.apiClient.delete(e)}}(t),this.selfRegistrationFormService=new class{constructor(e){this.translate=e}fields=new Map;async validate(e){return this.fields=e,this.validateInputs()}validateInputs(){const e=new Map;return this.fields.forEach(((t,a)=>{this.validateInput(a,t,e)})),e}async validateInput(e,t,a){if(t.length)try{Wn.checkDomainValidity(t)}catch{a.set(e,this.translate("This should be a valid domain"))}else a.set(e,this.translate("A domain is required."));this.checkDuplicateValue(a)}checkDuplicateValue(e){this.fields.forEach(((t,a)=>{Kn.listValues(this.fields).filter((e=>e===t&&""!==e)).length>1&&e.set(a,this.translate("This domain already exist"))}))}}(this.props.t)}get defaultState(){return{errors:new Map,submitted:!1,currentSettings:null,focus:!1,saved:!1,domains:new Vn,processing:!0,getCurrentSettings:this.getCurrentSettings.bind(this),getAllowedDomains:this.getAllowedDomains.bind(this),setAllowedDomains:this.setAllowedDomains.bind(this),setDomains:this.setDomains.bind(this),findSettings:this.findSettings.bind(this),hasSettingsChanges:this.hasSettingsChanges.bind(this),isProcessing:this.isProcessing.bind(this),setProcessing:this.setProcessing.bind(this),clearContext:this.clearContext.bind(this),isSubmitted:this.isSubmitted.bind(this),setSubmitted:this.setSubmitted.bind(this),getErrors:this.getErrors.bind(this),setError:this.setError.bind(this),setErrors:this.setErrors.bind(this),save:this.save.bind(this),shouldFocus:this.shouldFocus.bind(this),setFocus:this.setFocus.bind(this),isSaved:this.isSaved.bind(this),setSaved:this.setSaved.bind(this),deleteSettings:this.deleteSettings.bind(this),validateForm:this.validateForm.bind(this)}}async findSettings(e=(()=>{})){this.setProcessing(!0);const t=await this.selfRegistrationService.find();this.setState({currentSettings:t});const a=new Vn(t);this.setDomains(a,e),this.setProcessing(!1)}getCurrentSettings(){return this.state.currentSettings}getAllowedDomains(){return this.state.domains.allowedDomains}setAllowedDomains(e,t,a=(()=>{})){this.setState((a=>{const n=Kn.clone(a.domains.allowedDomains);return n.set(e,t),{domains:{allowedDomains:n}}}),a)}setDomains(e,t=(()=>{})){this.setState({domains:e},t)}isProcessing(){return this.state.processing}setProcessing(e){this.setState({processing:e})}isSubmitted(){return this.state.submitted}setSubmitted(e){this.setState({submitted:e}),this.setFocus(e)}getErrors(){return this.state.errors}shouldFocus(){return this.state.focus}setFocus(e){this.setState({focus:e})}setError(e,t){this.setState((a=>{const n=Kn.clone(a.errors);return n.set(e,t),{errors:n}}))}setErrors(e){this.setState({errors:e})}hasSettingsChanges(){const e=this.state.currentSettings?.data?.allowed_domains||[],t=Kn.listValues(this.state.domains.allowedDomains);return JSON.stringify(e)!==JSON.stringify(t)}clearContext(){const{currentSettings:e,domains:t,processing:a}=this.defaultState;this.setState({currentSettings:e,domains:t,processing:a})}async save(){this.setSubmitted(!0),await this.validateForm()&&(this.hasSettingsChanges()&&0===this.getAllowedDomains().size?this.displayConfirmDeletionDialog():this.displayConfirmSummaryDialog())}async validateForm(){const e=await this.selfRegistrationFormService.validate(this.state.getAllowedDomains());return this.state.setErrors(e),0===e.size}async handleSubmitError(e){"UserAbortsOperationError"!==e.name&&(console.error(e),await this.handleError(e))}async saveSettings(){try{this.setProcessing(!0);const e=new class{constructor(e,t={}){this.id=t.id,this.provider=t.provider||"email_domains",this.data=this.mapData(e?.allowedDomains)}mapData(e=new Map){return{allowed_domains:Array.from(e.values())}}}(this.state.domains,this.state.currentSettings);await this.selfRegistrationService.save(e),await this.findSettings((()=>this.setSaved(!0))),await this.props.actionFeedbackContext.displaySuccess(this.props.t("The self registration settings for the organization were updated."))}catch(e){this.handleSubmitError(e)}finally{this.setProcessing(!1),this.setSubmitted(!1)}}async handleError(e){this.handleCloseDialog();const t={error:e};this.props.dialogContext.open(Vt,t)}handleCloseDialog(){this.props.dialogContext.close()}displayConfirmSummaryDialog(){this.props.dialogContext.open(Bn,{domains:this.getAllowedDomains(),onSubmit:()=>this.saveSettings(),onClose:()=>this.handleCloseDialog()})}displayConfirmDeletionDialog(){this.props.dialogContext.open($n,{onSubmit:()=>this.deleteSettings(),onClose:()=>this.handleCloseDialog()})}async deleteSettings(){try{this.setProcessing(!0),await this.selfRegistrationService.delete(this.state.currentSettings.id),await this.findSettings(),await this.props.actionFeedbackContext.displaySuccess(this.props.t("The self registration settings for the organization were updated."))}catch(e){this.handleSubmitError(e)}finally{this.setProcessing(!1),this.setSubmitted(!1)}}isSaved(){return this.state.saved}setSaved(e){return this.setState({saved:e})}render(){return n.createElement(Yn.Provider,{value:this.state},this.props.children)}}Jn.propTypes={context:s().any,children:s().any,t:s().any,dialogContext:s().any,actionFeedbackContext:s().object};const Qn=R(g(d((0,k.Z)("common")(Jn))));function Xn(e){return class extends n.Component{render(){return n.createElement(Yn.Consumer,null,(t=>n.createElement(e,Zn({adminSelfRegistrationContext:t},this.props))))}}}class eo extends n.Component{constructor(e){super(e),this.bindCallbacks()}bindCallbacks(){this.handleSave=this.handleSave.bind(this)}get allowedDomains(){return this.props.adminSelfRegistrationContext.getAllowedDomains()}isSaveEnabled(){let e=!1;return this.props.adminSelfRegistrationContext.getCurrentSettings()?.provider||(e=!this.props.adminSelfRegistrationContext.hasSettingsChanges()),!this.props.adminSelfRegistrationContext.isProcessing()&&!e}async handleSave(){this.isSaveEnabled()&&this.props.adminSelfRegistrationContext.save()}render(){return n.createElement("div",{className:"col2_3 actions-wrapper"},n.createElement("div",{className:"actions"},n.createElement("div",null,n.createElement("li",null,n.createElement("a",{className:`button ${this.isSaveEnabled()||"disabled"}`,id:"save-settings",onClick:this.handleSave},n.createElement(le,{name:"save"}),n.createElement("span",null,n.createElement(v.c,null,"Save settings")))))))}}eo.propTypes={adminSelfRegistrationContext:s().object,t:s().func};const to=(0,k.Z)("common")(Xn(eo)),ao=new Map;function no(e){if("string"!=typeof e)return console.warn("useDynamicRefs: Cannot set ref without key");const t=n.createRef();return ao.set(e,t),t}function oo(e){return e?ao.get(e):console.warn("useDynamicRefs: Cannot get ref without key")}class io extends n.Component{constructor(e){super(e),this.state=this.defaultState,this.dynamicRefs={getRef:oo,setRef:no},this.bindCallbacks()}async componentDidMount(){this.props.administrationWorkspaceContext.setDisplayAdministrationWorkspaceAction(to),await this.findSettings()}componentDidUpdate(){this.shouldFocusOnError(),this.shouldCheckWarnings()}componentWillUnmount(){this.props.administrationWorkspaceContext.resetDisplayAdministrationWorkspaceAction(),this.props.adminSelfRegistrationContext.clearContext()}get defaultState(){return{isEnabled:!1,warnings:new Map}}bindCallbacks(){this.handleToggleClicked=this.handleToggleClicked.bind(this),this.handleAddRowClick=this.handleAddRowClick.bind(this),this.handleInputChange=this.handleInputChange.bind(this),this.handleFieldBlur=this.handleFieldBlur.bind(this),this.handleDeleteRow=this.handleDeleteRow.bind(this)}get currentUser(){return this.props.context.loggedInUser}get allowedDomains(){return this.props.adminSelfRegistrationContext.getAllowedDomains()}async findSettings(){await this.props.adminSelfRegistrationContext.findSettings(),this.setState({isEnabled:this.allowedDomains.size>0}),await this.checkForWarnings(),await this.validateForm()}async checkForWarnings(e=(()=>{})){this.setState({warnings:new Map},(async()=>{this.allowedDomains.forEach(((e,t)=>this.checkDomainIsProfessional(t,e))),e()}))}async setupSettings(){if(this.props.adminSelfRegistrationContext.setDomains(new Vn(this.props.adminSelfRegistrationContext.getCurrentSettings())),await this.checkForWarnings(),0===this.allowedDomains.size){const e=Wn.extractDomainFromEmail(this.currentUser?.username);Wn.checkDomainValidity(e),this.populateUserDomain(e)}}shouldFocusOnError(){const e=this.props.adminSelfRegistrationContext.shouldFocus(),[t]=this.props.adminSelfRegistrationContext.getErrors().keys();t&&e&&(this.dynamicRefs.getRef(t).current.focus(),this.props.adminSelfRegistrationContext.setFocus(!1))}async shouldCheckWarnings(){this.props.adminSelfRegistrationContext.isSaved()&&(this.props.adminSelfRegistrationContext.setSaved(!1),await this.checkForWarnings())}populateUserDomain(e){const t=Wn.isProfessional(e)?e:"";this.addRow(t)}addRow(e=""){const t=(0,r.Z)();this.props.adminSelfRegistrationContext.setAllowedDomains(t,e,(()=>{this.dynamicRefs.getRef(t)?.current.focus()}))}handleDeleteRow(e){if(this.canDelete()){const t=this.allowedDomains;t.delete(e),this.props.adminSelfRegistrationContext.setDomains({allowedDomains:t}),this.validateForm(),this.checkForWarnings()}}hasWarnings(){return this.state.warnings.size>0}hasAllInputDisabled(){return this.props.adminSelfRegistrationContext.isProcessing()}handleToggleClicked(){this.setState({isEnabled:!this.state.isEnabled},(()=>{this.state.isEnabled?this.setupSettings():(this.props.adminSelfRegistrationContext.setDomains({allowedDomains:new Map}),this.props.adminSelfRegistrationContext.setErrors(new Map))}))}handleAddRowClick(){this.addRow()}handleFieldBlur(e){const t=e.target.value,a=e.target.name;this.checkDomainIsProfessional(a,t)}checkDomainIsProfessional(e,t){this.setState((a=>{const n=Kn.clone(a.warnings);return Wn.isProfessional(t)?n.delete(e):n.set(e,"This is not a safe professional domain"),{warnings:n}}))}handleInputChange(e){const t=e.target.value,a=e.target.name;this.props.adminSelfRegistrationContext.setAllowedDomains(a,t,(()=>this.validateForm()))}async validateForm(){await this.props.adminSelfRegistrationContext.validateForm()}canDelete(){return this.allowedDomains.size>1}render(){const e=this.props.adminSelfRegistrationContext.isSubmitted(),t=this.props.adminSelfRegistrationContext.getErrors();return n.createElement("div",{className:"row"},n.createElement("div",{className:"self-registration col7 main-column"},n.createElement("h3",null,n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"settings-toggle",onChange:this.handleToggleClicked,checked:this.state.isEnabled,disabled:this.hasAllInputDisabled(),id:"settings-toggle"}),n.createElement("label",{htmlFor:"settings-toggle"},n.createElement(v.c,null,"Self Registration")))),this.props.adminSelfRegistrationContext.hasSettingsChanges()&&n.createElement("div",{className:"warning message",id:"self-registration-setting-overridden-banner"},n.createElement("p",null,n.createElement(v.c,null,"Don't forget to save your settings to apply your modification."))),!this.state.isEnabled&&n.createElement("p",{className:"description",id:"disabled-description"},n.createElement(v.c,null,"User self registration is disabled.")," ",n.createElement(v.c,null,"Only administrators can invite users to register.")),this.state.isEnabled&&n.createElement(n.Fragment,null,n.createElement("div",{id:"self-registration-subtitle",className:`input ${this.hasWarnings()&&"warning"} ${e&&t.size>0&&"error"}`},n.createElement("label",{id:"enabled-label"},n.createElement(v.c,null,"Email domain safe list"))),n.createElement("p",{className:"description",id:"enabled-description"},n.createElement(v.c,null,"All the users with an email address ending with the domain in the safe list are allowed to register on passbolt.")),Kn.iterators(this.allowedDomains).map((a=>n.createElement("div",{key:a,className:"input"},n.createElement("div",{className:"domain-row"},n.createElement("input",{type:"text",className:"full-width",onChange:this.handleInputChange,id:`input-${a}`,name:a,value:this.allowedDomains.get(a),onBlur:this.handleFieldBlur,disabled:!this.hasAllInputDisabled,ref:this.dynamicRefs.setRef(a),placeholder:this.props.t("domain")}),n.createElement("a",{className:`button button-icon ${this.canDelete()||"disabled"}`,id:`delete-${a}`,onClick:()=>this.handleDeleteRow(a)},n.createElement(le,{name:"trash"}))),this.hasWarnings()&&this.state.warnings.get(a)&&n.createElement("div",{id:"domain-name-input-feedback",className:"warning-message"},n.createElement(v.c,null,this.state.warnings.get(a))),t.get(a)&&e&&n.createElement("div",{className:"error-message"},n.createElement(v.c,null,t.get(a)))))),n.createElement("div",{className:"domain-add"},n.createElement("a",{className:"button",onClick:this.handleAddRowClick},n.createElement(le,{name:"add"}),n.createElement("span",null,n.createElement(v.c,null,"Add")))))),n.createElement("div",{className:"col4 last"},n.createElement("div",{className:"sidebar-help"},n.createElement("h3",null,n.createElement(v.c,null,"What is user self registration?")),n.createElement("p",null,n.createElement(v.c,null,"User self registration enables users with an email from a whitelisted domain to create their passbolt account without prior admin invitation.")),n.createElement("a",{className:"button",href:"https://help.passbolt.com/configure/self-registration",target:"_blank",rel:"noopener noreferrer"},n.createElement(le,{name:"document"}),n.createElement("span",null,n.createElement(v.c,null,"Read the documentation"))))))}}io.propTypes={dialogContext:s().any,context:s().any,adminSelfRegistrationContext:s().object,administrationWorkspaceContext:s().object,t:s().func};const so=R(g(Xn(F((0,k.Z)("common")(io))))),ro=[{id:"azure",name:"Microsoft",icon:n.createElement("svg",{width:"65",height:"64",viewBox:"0 0 65 64",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M31.3512 3.04762H3.92261V30.4762H31.3512V3.04762Z",fill:"#F25022"}),n.createElement("path",{d:"M31.3512 33.5238H3.92261V60.9524H31.3512V33.5238Z",fill:"#00A4EF"}),n.createElement("path",{d:"M61.8274 3.04762H34.3988V30.4762H61.8274V3.04762Z",fill:"#7FBA00"}),n.createElement("path",{d:"M61.8274 33.5238H34.3988V60.9524H61.8274V33.5238Z",fill:"#FFB900"})),defaultConfig:{url:"https://login.microsoftonline.com",redirect_url:"/sso/azure/redirect"}},{id:"google",name:"Google",disabled:!0,icon:n.createElement("svg",{width:"65",height:"64",viewBox:"0 0 65 64",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n.createElement("path",{d:"M63.9451 32.72C63.9451 30.6133 63.7584 28.6133 63.4384 26.6667H33.3051V38.6933H50.5584C49.7851 42.64 47.5184 45.9733 44.1584 48.24V56.24H54.4517C60.4784 50.6667 63.9451 42.4533 63.9451 32.72Z",fill:"#4285F4"}),n.createElement("path",{d:"M33.305 64C41.945 64 49.1717 61.12 54.4517 56.24L44.1583 48.24C41.2783 50.16 37.625 51.3333 33.305 51.3333C24.9583 51.3333 17.8917 45.7067 15.3583 38.1067H4.745V46.3467C9.99833 56.8 20.7983 64 33.305 64Z",fill:"#34A853"}),n.createElement("path",{d:"M15.3584 38.1067C14.6917 36.1867 14.3451 34.1333 14.3451 32C14.3451 29.8667 14.7184 27.8133 15.3584 25.8933V17.6533H4.74505C2.55838 21.9733 1.30505 26.8267 1.30505 32C1.30505 37.1733 2.55838 42.0267 4.74505 46.3467L15.3584 38.1067Z",fill:"#FBBC05"}),n.createElement("path",{d:"M33.305 12.6667C38.025 12.6667 42.2383 14.2933 45.5717 17.4667L54.6917 8.34667C49.1717 3.17334 41.945 0 33.305 0C20.7983 0 9.99833 7.20001 4.745 17.6533L15.3583 25.8933C17.8917 18.2933 24.9583 12.6667 33.305 12.6667Z",fill:"#EA4335"}))}],lo="form",co="success";class mo extends n.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks()}get defaultState(){return{uiState:lo,hasSuccessfullySignedInWithSso:!1,processing:!1,ssoToken:null}}bindCallbacks(){this.handleSignInTestClick=this.handleSignInTestClick.bind(this),this.handleActivateSsoSettings=this.handleActivateSsoSettings.bind(this),this.handleCloseDialog=this.handleCloseDialog.bind(this)}async handleSignInTestClick(e){e.preventDefault();try{this.setState({processing:!0});const e=await this.props.context.port.request(`passbolt.sso.test.${this.props.provider.id}`,this.props.configurationId);this.setState({uiState:co,hasSuccessfullySignedInWithSso:!0,ssoToken:e})}catch(e){"UserClosedSsoPopUpError"!==e?.name&&this.props.adminSsoContext.handleError(e)}this.setState({processing:!1})}async handleActivateSsoSettings(e){e.preventDefault();try{this.setState({processing:!0}),await this.props.context.port.request("passbolt.sso.activate-settings",this.props.configurationId,this.state.ssoToken),await this.props.context.port.request("passbolt.sso.generate-sso-kit",this.props.provider.id),this.props.onSuccessfulSettingsActivation(),this.handleCloseDialog(),await this.props.actionFeedbackContext.displaySuccess(this.props.t("SSO settings have been registered successfully"))}catch(e){this.props.adminSsoContext.handleError(e)}this.setState({processing:!1})}handleCloseDialog(){this.props.onClose(),this.props.handleClose()}hasAllInputDisabled(){return this.state.processing}canSaveSettings(){return!this.hasAllInputDisabled()&&this.state.hasSuccessfullySignedInWithSso}get title(){return{form:this.translate("Test Single Sign-On configuration"),success:this.translate("Save Single Sign-On configuration")}[this.state.uiState]||""}get translate(){return this.props.t}render(){return n.createElement(tt,{className:"test-sso-settings-dialog sso-login-form",title:this.title,onClose:this.handleCloseDialog,disabled:this.hasAllInputDisabled()},n.createElement("form",{onSubmit:this.handleActivateSsoSettings},n.createElement("div",{className:"form-content"},this.state.uiState===lo&&n.createElement(n.Fragment,null,n.createElement("p",null,n.createElement(v.c,null,"Before saving the settings, we need to test if the configuration is working.")),n.createElement("a",{className:`button sso-login-button ${this.hasAllInputDisabled()?"disabled":""} ${this.props.provider.id}`,onClick:this.handleSignInTestClick,disabled:this.hasAllInputDisabled()},n.createElement("span",{className:"provider-logo"},this.props.provider.icon),this.translate("Sign in with {{providerName}}",{providerName:this.props.provider.name}))),this.state.uiState===co&&n.createElement("p",null,this.translate("You susccessfully signed in with your {{providerName}} account. You can safely save your configuration.",{providerName:this.props.provider.name}))),n.createElement("div",{className:"submit-wrapper clearfix"},n.createElement(nt,{disabled:this.hasAllInputDisabled(),onClick:this.handleCloseDialog}),n.createElement(Bt,{disabled:!this.canSaveSettings(),processing:this.state.processing,value:this.translate("Save settings")}))))}}mo.propTypes={context:s().object,adminSsoContext:s().object,onClose:s().func,t:s().func,provider:s().object,configurationId:s().string,actionFeedbackContext:s().any,handleClose:s().func,onSuccessfulSettingsActivation:s().func};const ho=R(vo(d((0,k.Z)("common")(mo))));class uo extends n.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks()}get defaultState(){return{processing:!1}}bindCallbacks(){this.handleConfirmDelete=this.handleConfirmDelete.bind(this)}async handleConfirmDelete(e){e.preventDefault(),this.setState({processing:!0}),await this.props.adminSsoContext.deleteSettings(),this.props.onClose(),this.setState({processing:!1})}hasAllInputDisabled(){return this.state.processing}render(){const e=this.hasAllInputDisabled();return n.createElement(tt,{className:"delete-sso-settings-dialog",title:this.props.t("Disable Single Sign-On settings?"),onClose:this.props.onClose,disabled:e},n.createElement("form",{onSubmit:this.handleConfirmDelete,noValidate:!0},n.createElement("div",{className:"form-content"},n.createElement("p",null,n.createElement(v.c,null,"Are you sure you want to disable the current Single Sign-On settings?")),n.createElement("p",null,n.createElement(v.c,null,"This action cannot be undone. All the data associated with SSO will be permanently deleted."))),n.createElement("div",{className:"submit-wrapper clearfix"},n.createElement(nt,{disabled:e,onClick:this.props.onClose}),n.createElement(Bt,{warning:!0,disabled:e,processing:this.state.processing,value:this.props.t("Disable")}))))}}uo.propTypes={adminSsoContext:s().object,onClose:s().func,t:s().func};const po=vo((0,k.Z)("common")(uo));function go(){return go=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},go.apply(this,arguments)}const bo=/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[0-5][a-fA-F0-9]{3}-[089aAbB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$/,fo=n.createContext({ssoConfig:null,isProcessing:()=>{},loadSsoConfiguration:()=>{},getSsoConfiguration:()=>{},isSsoConfigActivated:()=>{},isDataReady:()=>{},save:()=>{},disableSso:()=>{},getProvidersList:()=>{},hasFormChanged:()=>{},validateData:()=>{},saveAndTestConfiguration:()=>{},openTestDialog:()=>{},handleError:()=>{},getErrors:()=>{},deleteSettings:()=>{},showDeleteConfirmationDialog:()=>{}});class yo extends n.Component{constructor(e){super(e),this.providerList=[],this.state=this.defaultState,this.bindCallbacks()}get defaultState(){return{ssoConfig:this.defaultSsoSettings,errors:{},isLoaded:!1,hasSettingsChanged:!1,processing:!1,getErrors:this.getErrors.bind(this),hasFormChanged:this.hasFormChanged.bind(this),isProcessing:this.isProcessing.bind(this),isDataReady:this.isDataReady.bind(this),loadSsoConfiguration:this.loadSsoConfiguration.bind(this),getSsoConfiguration:this.getSsoConfiguration.bind(this),isSsoConfigActivated:this.isSsoConfigActivated.bind(this),changeProvider:this.changeProvider.bind(this),disableSso:this.disableSso.bind(this),setValue:this.setValue.bind(this),getProvidersList:this.getProvidersList.bind(this),validateData:this.validateData.bind(this),saveAndTestConfiguration:this.saveAndTestConfiguration.bind(this),handleError:this.handleError.bind(this),deleteSettings:this.deleteSettings.bind(this),canDeleteSettings:this.canDeleteSettings.bind(this),showDeleteConfirmationDialog:this.showDeleteConfirmationDialog.bind(this)}}get defaultSsoSettings(){return{provider:null,data:{url:"",redirect_url:"",client_id:"",tenant_id:"",client_secret:"",client_secret_expiry:""}}}bindCallbacks(){this.handleTestConfigCloseDialog=this.handleTestConfigCloseDialog.bind(this),this.handleSettingsActivation=this.handleSettingsActivation.bind(this)}async loadSsoConfiguration(){let e=null,t=!1;try{if(e=await this.props.context.port.request("passbolt.sso.get-current"),this.setProviderList(e.providers),e?.provider){t=!0;const a=ro.find((t=>t.id===e.provider));e.data.redirect_url=a.defaultConfig.redirect_url}}catch(e){this.setDefaultProvidersList(),this.props.dialogContext.open(Vt,{error:e})}this.setState({ssoConfig:e,isLoaded:!0,isSsoConfigExisting:t})}setProviderList(e){if(!e)throw new Error(this.props.t("No SSO provider available"));e.forEach((e=>{const t=ro.find((t=>t.id===e));t&&!t.disabled&&this.providerList.push(t)}))}setDefaultProvidersList(){ro.forEach((e=>{e.disabled||this.providerList.push(e)}))}getSsoConfiguration(){return this.state.ssoConfig}getSsoConfigurationDto(){const e=this.getSsoConfiguration(),t=e.data;return{provider:e.provider,data:{url:t.url,client_id:t.client_id,tenant_id:t.tenant_id,client_secret:t.client_secret,client_secret_expiry:t.client_secret_expiry}}}getProvidersList(){return this.providerList}isSsoConfigActivated(){return Boolean(this.state.ssoConfig?.provider)}hasFormChanged(){return this.state.hasSettingsChanged}setValue(e,t){const a=this.getSsoConfiguration();a.data[e]=t,this.setState({ssoConfig:a,hasSettingsChanged:!0})}disableSso(){const e=Object.assign({},this.state.ssoConfig,{provider:null,data:{}});this.setState({ssoConfig:e})}isDataReady(){return this.state.isLoaded}isProcessing(){return this.state.processing}changeProvider(e){if(e.disabled)return;const t=this.providerList.find((t=>t.id===e.id));this.setState({ssoConfig:{provider:t.id,data:Object.assign({},this.state.ssoConfig.data,t?.defaultConfig)}})}getErrors(){return this.state.errors}getFirstFieldInError(e,t){for(let a=0;a<t.length;a++){const n=t[a];if(void 0!==e[n])return n}return null}validateData(){const e=this.state.getSsoConfiguration(),t={};if(!this.validate_provider(e.provider,t))return this.fieldToFocus="provider",this.setState({errors:t,hasSumittedForm:!0}),!1;const a=this[`validateDataFromProvider_${e.provider}`](e.data,t);return a||(this.fieldToFocus=this.getFirstFieldInError(t,["url","client_id","tenant_id","client_secret"])),this.setState({errors:t,hasSumittedForm:!0}),a}validate_provider(e,t){return!!this.providerList.find((t=>t.id===e))||(t.provider=this.props.t("The Single Sign-On provider must be a supported provider."),!1)}validateDataFromProvider_azure(e,t){const{url:a,client_id:n,tenant_id:o,client_secret:i,client_secret_expiry:s}=e;let r=!0;return a&&a?.length?this.isValidUrl(a)||(t.url=this.props.t("The Login URL must be a valid URL"),r=!1):(t.url=this.props.t("The Login URL is required"),r=!1),n&&n?.length?this.isValidUuid(n)||(t.client_id=this.props.t("The Application (client) ID must be a valid UUID"),r=!1):(t.client_id=this.props.t("The Application (client) ID is required"),r=!1),o&&o?.length?this.isValidUuid(o)||(t.tenant_id=this.props.t("The Directory (tenant) ID must be a valid UUID"),r=!1):(t.tenant_id=this.props.t("The Directory (tenant) ID is required"),r=!1),i&&i?.length||(t.client_secret=this.props.t("The Secret is required"),r=!1),s||(t.client_secret_expiry=this.props.t("The Secret expiry is required"),r=!1),r}isValidUrl(e){try{const t=new URL(e);return"http:"===t.protocol||"https:"===t.protocol}catch(e){return!1}}isValidUuid(e){return bo.test(e)}async saveAndTestConfiguration(){this.setState({processing:!0});try{const e=this.getSsoConfigurationDto(),t=await this.props.context.port.request("passbolt.sso.save-draft",e);await this.runTestConfig(t);const a=ro.find((e=>e.id===t.provider)),n=Object.assign({},this.state.ssoConfig,t);n.data.redirect_url=a.defaultConfig.redirect_url,this.setState({ssoConfig:n})}catch(e){this.handleError(e),this.setState({processing:!1})}}canDeleteSettings(){const e=this.getSsoConfiguration();return this.state.isSsoConfigExisting&&null===e.provider}showDeleteConfirmationDialog(){this.props.dialogContext.open(po)}async deleteSettings(){this.setState({processing:!0});try{const e=this.getSsoConfiguration();await this.props.context.port.request("passbolt.sso.delete-settings",e.id),this.props.actionFeedbackContext.displaySuccess(this.props.t("The SSO settings has been deleted successfully")),this.setState({ssoConfig:this.defaultSsoSettings,isSsoConfigExisting:!1,processing:!1})}catch(e){this.handleError(e),this.setState({processing:!1})}}async runTestConfig(e){const t=ro.find((t=>t.id===e.provider));this.props.dialogContext.open(ho,{provider:t,configurationId:e.id,handleClose:this.handleTestConfigCloseDialog,onSuccessfulSettingsActivation:this.handleSettingsActivation})}handleTestConfigCloseDialog(){this.setState({processing:!1})}handleSettingsActivation(){this.setState({hasSettingsChanged:!1})}handleError(e){console.error(e),this.props.dialogContext.open(Vt,{error:e})}render(){return n.createElement(fo.Provider,{value:this.state},this.props.children)}}function vo(e){return class extends n.Component{render(){return n.createElement(fo.Consumer,null,(t=>n.createElement(e,go({adminSsoContext:t},this.props))))}}}yo.propTypes={context:s().any,children:s().any,accountRecoveryContext:s().object,dialogContext:s().object,actionFeedbackContext:s().object,t:s().func},R(d(g((0,k.Z)("common")(yo))));class ko extends n.Component{constructor(e){super(e),this.bindCallbacks()}bindCallbacks(){this.handleSaveClick=this.handleSaveClick.bind(this)}async handleSaveClick(){const e=this.props.adminSsoContext;e.canDeleteSettings()?e.showDeleteConfirmationDialog():e.validateData()&&await e.saveAndTestConfiguration()}isSaveEnabled(){return this.props.adminSsoContext.hasFormChanged()||this.props.adminSsoContext.canDeleteSettings()}render(){return n.createElement("div",{className:"col2_3 actions-wrapper"},n.createElement("div",{className:"actions"},n.createElement("div",null,n.createElement("li",null,n.createElement("a",{className:"button "+(this.isSaveEnabled()?"":"disabled"),onClick:this.handleSaveClick},n.createElement(le,{name:"save"}),n.createElement("span",null,n.createElement(v.c,null,"Save settings")))))))}}ko.propTypes={adminSsoContext:s().object};const Eo=vo((0,k.Z)("common")(ko));class wo extends n.Component{constructor(e){super(e),this.state=this.defaultState,this.bindCallbacks(),this.createRefs()}get defaultState(){return{loading:!0}}async componentDidMount(){this.props.administrationWorkspaceContext.setDisplayAdministrationWorkspaceAction(Eo),await this.props.adminSsoContext.loadSsoConfiguration(),this.setState({loading:!1})}bindCallbacks(){this.handleInputChange=this.handleInputChange.bind(this),this.handleProviderInputChange=this.handleProviderInputChange.bind(this),this.handleSsoSettingToggle=this.handleSsoSettingToggle.bind(this),this.handleCopyRedirectUrl=this.handleCopyRedirectUrl.bind(this),this.handleFormSubmit=this.handleFormSubmit.bind(this)}createRefs(){this.datePickerRef=n.createRef()}handleInputChange(e){const t=e.target,a="checkbox"===t.type?t.checked:t.value,n=t.name;this.props.adminSsoContext.setValue(n,a)}handleProviderInputChange(e){this.props.adminSsoContext.changeProvider({id:e.target.value})}handleSsoSettingToggle(){this.props.adminSsoContext.disableSso()}async handleCopyRedirectUrl(){await navigator.clipboard.writeText(this.fullRedirectUrl),await this.props.actionFeedbackContext.displaySuccess(this.translate("The redirection URL has been copied to the clipboard."))}async handleFormSubmit(e){e.preventDefault();const t=this.props.adminSsoContext;t.hasFormChanged()&&t.validateData()&&await t.saveAndTestConfiguration()}hasAllInputDisabled(){return this.props.adminSsoContext.isProcessing()||this.state.loading}get supportedSsoProviders(){return this.props.adminSsoContext.getProvidersList().map((e=>({value:e.id,label:e.name})))}get fullRedirectUrl(){const e=this.props.adminSsoContext.getSsoConfiguration();return`${this.props.context.userSettings.getTrustedDomain()}${e?.data?.redirect_url}`}isReady(){return this.props.adminSsoContext.isDataReady()}get translate(){return this.props.t}render(){const e=this.props.adminSsoContext,t=e.getSsoConfiguration(),a=e.isSsoConfigActivated(),o=e.getErrors();return n.createElement("div",{className:"row"},n.createElement("div",{className:"third-party-provider-settings sso-settings col8 main-column"},n.createElement("h3",null,n.createElement("span",{className:"input toggle-switch form-element"},n.createElement("input",{type:"checkbox",className:"toggle-switch-checkbox checkbox",name:"ssoToggle",onChange:this.handleSsoSettingToggle,checked:a,disabled:this.hasAllInputDisabled(),id:"ssoToggle"}),n.createElement("label",{htmlFor:"ssoToggle"},n.createElement(v.c,null,"Single Sign-On")))),this.props.adminSsoContext.hasFormChanged()&&n.createElement("div",{className:"warning message",id:"sso-setting-overridden-banner"},n.createElement("p",null,n.createElement(v.c,null,"Warning, Don't forget to save your settings to apply your modification."))),this.isReady()&&!a&&n.createElement(n.Fragment,null,n.createElement("h4",{className:"no-border"},n.createElement(v.c,null,"Select a provider")),n.createElement("div",{className:"provider-list"},ro.map((e=>n.createElement("div",{key:e.id,className:"provider button "+(e.disabled?"disabled":""),id:e.id,onClick:()=>this.props.adminSsoContext.changeProvider(e)},n.createElement("div",{className:"provider-logo"},e.icon),n.createElement("p",{className:"provider-name"},e.name,n.createElement("br",null),e.disabled&&n.createElement(v.c,null,"(not yet available)"))))))),this.isReady()&&a&&n.createElement("form",{className:"form",onSubmit:this.handleFormSubmit},n.createElement("div",{className:"select-wrapper input"},n.createElement("label",{htmlFor:"sso-provider-input"},n.createElement(v.c,null,"Single Sign-On provider")),n.createElement(Ze,{id:"sso-provider-input",name:"provider",items:this.supportedSsoProviders,value:t?.provider,onChange:this.handleProviderInputChange})),"azure"===t?.provider&&n.createElement(n.Fragment,null,n.createElement("hr",null),n.createElement("div",{className:"input text required "+(this.hasAllInputDisabled()?"disabled":"")},n.createElement("label",null,n.createElement(v.c,null,"Login URL")),n.createElement("input",{id:"sso-azure-url-input",type:"text",className:"fluid form-element",name:"url",value:t?.data?.url,onChange:this.handleInputChange,placeholder:this.translate("Login URL"),disabled:this.hasAllInputDisabled()}),o.url&&n.createElement("div",{className:"error-message"},o.url),n.createElement("p",null,n.createElement(v.c,null,"The Azure AD authentication endpoint. See ",n.createElement("a",{href:"https://learn.microsoft.com/en-us/azure/active-directory/develop/authentication-national-cloud#azure-ad-authentication-endpoints",rel:"noopener noreferrer",target:"_blank"},"alternatives"),"."))),n.createElement("div",{className:"input text input-wrapper "+(this.hasAllInputDisabled()?"disabled":"")},n.createElement("label",null,n.createElement(v.c,null,"Redirect URL")),n.createElement("div",{className:"button-inline"},n.createElement("input",{id:"sso-redirect-url-input",type:"text",className:"fluid form-element disabled",name:"redirect_url",value:this.fullRedirectUrl,placeholder:this.translate("Redirect URL"),readOnly:!0,disabled:!0}),n.createElement("a",{onClick:this.handleCopyRedirectUrl,className:"copy-to-clipboard button button-icon"},n.createElement(le,{name:"copy-to-clipboard"}))),n.createElement("p",null,n.createElement(v.c,null,"The URL to provide to Azure when registering the application."))),n.createElement("hr",null),n.createElement("div",{className:"input text required "+(this.hasAllInputDisabled()?"disabled":"")},n.createElement("label",null,n.createElement(v.c,null,"Application (client) ID")),n.createElement("input",{id:"sso-azure-client-id-input",type:"text",className:"fluid form-element",name:"client_id",value:t?.data?.client_id,onChange:this.handleInputChange,placeholder:this.translate("Application (client) ID"),disabled:this.hasAllInputDisabled()}),o.client_id&&n.createElement("div",{className:"error-message"},o.client_id),n.createElement("p",null,n.createElement(v.c,null,"The public identifier for the app in Azure in UUID format.")," ",n.createElement(v.c,null,n.createElement("a",{href:"https://learn.microsoft.com/en-gb/azure/active-directory/develop/quickstart-register-app",rel:"noopener noreferrer",target:"_blank"},"Where to find it?")))),n.createElement("div",{className:"input text required "+(this.hasAllInputDisabled()?"disabled":"")},n.createElement("label",null,n.createElement(v.c,null,"Directory (tenant) ID")),n.createElement("input",{id:"sso-azure-tenant-id-input",type:"text",className:"fluid form-element",name:"tenant_id",value:t?.data?.tenant_id,onChange:this.handleInputChange,placeholder:this.translate("Directory ID"),disabled:this.hasAllInputDisabled()}),o.tenant_id&&n.createElement("div",{className:"error-message"},o.tenant_id),n.createElement("p",null,n.createElement(v.c,null,"The Azure Active Directory tenant ID, in UUID format.")," ",n.createElement(v.c,null,n.createElement("a",{href:"https://learn.microsoft.com/en-gb/azure/active-directory/develop/quickstart-create-new-tenant#create-a-new-azure-ad-tenant",rel:"noopener noreferrer",target:"_blank"},"Where to find it?")))),n.createElement("div",{className:"input text required "+(this.hasAllInputDisabled()?"disabled":"")},n.createElement("label",null,n.createElement(v.c,null,"Secret")),n.createElement(Me,{id:"sso-azure-secret-input",className:"fluid form-element",onChange:this.handleInputChange,autoComplete:"off",name:"client_secret",placeholder:this.translate("Secret"),disabled:this.hasAllInputDisabled(),value:t?.data?.client_secret,preview:!0}),o.client_secret&&n.createElement("div",{className:"error-message"},o.client_secret),n.createElement("p",null,n.createElement(v.c,null,"Allows Azure and Passbolt API to securely share information.")," ",n.createElement(v.c,null,n.createElement("a",{href:"https://learn.microsoft.com/en-gb/azure/active-directory/develop/quickstart-register-app#add-a-client-secret",rel:"noopener noreferrer",target:"_blank"},"Where to find it?")))),n.createElement("div",{className:"input text date-wrapper required "+(this.hasAllInputDisabled()?"disabled":"")},n.createElement("label",null,n.createElement(v.c,null,"Secret expiry")),n.createElement("div",{className:"button-inline"},n.createElement("input",{id:"sso-azure-secret-expiry-input",type:"date",className:"fluid form-element "+(t.data.client_secret_expiry?"":"empty"),name:"client_secret_expiry",value:t?.data?.client_secret_expiry,onChange:this.handleInputChange,disabled:this.hasAllInputDisabled()}),n.createElement(le,{name:"calendar"})),o.client_secret_expiry&&n.createElement("div",{className:"error-message"},o.client_secret_expiry)),n.createElement("div",{className:"warning message"},n.createElement(v.c,null,n.createElement("b",null,"Warning"),": This secret will expire after some time (typically a few months). Make sure you save the expiry date and rotate it on time."))))),n.createElement("div",{className:"col4 last"},n.createElement("div",{className:"sidebar-help"},n.createElement("h3",null,n.createElement(v.c,null,"Need some help?")),n.createElement("p",null,n.createElement(v.c,null,"For more information about SSO, checkout the dedicated page on the help website.")),n.createElement("a",{className:"button",href:"https://help.passbolt.com/configure/sso",target:"_blank",rel:"noopener noreferrer"},n.createElement(le,{name:"document"}),n.createElement("span",null,n.createElement(v.c,null,"Read the documentation")))),"azure"===t?.provider&&n.createElement("div",{className:"sidebar-help"},n.createElement("h3",null,n.createElement(v.c,null,"How do I configure a AzureAD SSO?")),n.createElement("a",{className:"button",href:"https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/add-application-portal-setup-sso",target:"_blank",rel:"noopener noreferrer"},n.createElement(le,{name:"external-link"}),n.createElement("span",null,n.createElement(v.c,null,"Read the documentation"))))))}}wo.propTypes={administrationWorkspaceContext:s().object,adminSsoContext:s().object,actionFeedbackContext:s().any,context:s().any,t:s().func};const Co=R(d(F(vo((0,k.Z)("common")(wo)))));class So extends n.Component{isMfaSelected(){return q.MFA===this.props.administrationWorkspaceContext.selectedAdministration}isUserDirectorySelected(){return q.USER_DIRECTORY===this.props.administrationWorkspaceContext.selectedAdministration}isEmailNotificationsSelected(){return q.EMAIL_NOTIFICATION===this.props.administrationWorkspaceContext.selectedAdministration}isSubscriptionSelected(){return q.SUBSCRIPTION===this.props.administrationWorkspaceContext.selectedAdministration}isInternationalizationSelected(){return q.INTERNATIONALIZATION===this.props.administrationWorkspaceContext.selectedAdministration}isAccountRecoverySelected(){return q.ACCOUNT_RECOVERY===this.props.administrationWorkspaceContext.selectedAdministration}isSmtpSettingsSelected(){return q.SMTP_SETTINGS===this.props.administrationWorkspaceContext.selectedAdministration}isSelfRegistrationSelected(){return q.SELF_REGISTRATION===this.props.administrationWorkspaceContext.selectedAdministration}isSsoSelected(){return q.SSO===this.props.administrationWorkspaceContext.selectedAdministration}render(){const e=this.props.administrationWorkspaceContext.administrationWorkspaceAction;return n.createElement("div",{id:"container",className:"page administration"},n.createElement("div",{id:"app",tabIndex:"1000"},n.createElement("div",{className:"header first"},n.createElement(X,null)),n.createElement("div",{className:"header second"},n.createElement(te,null),n.createElement(Ft,{disabled:!0}),n.createElement(he,{baseUrl:this.props.context.trustedDomain||this.props.context.userSettings.getTrustedDomain(),user:this.props.context.loggedInUser})),n.createElement("div",{className:"header third"},n.createElement("div",{className:"col1 main-action-wrapper"}),n.createElement(e,null)),n.createElement("div",{className:"panel main"},n.createElement("div",null,n.createElement("div",{className:"panel left"},n.createElement(pe,null)),n.createElement("div",{className:"panel middle"},n.createElement(Be,null),n.createElement("div",{className:"grid grid-responsive-12"},this.isMfaSelected()&&n.createElement(qe,null),this.isUserDirectorySelected()&&n.createElement(Lt,null),this.isEmailNotificationsSelected()&&n.createElement(Pt,null),this.isSubscriptionSelected()&&n.createElement(ia,null),this.isInternationalizationSelected()&&n.createElement(pa,null),this.isAccountRecoverySelected()&&n.createElement(cn,null),this.isSmtpSettingsSelected()&&n.createElement(Fn,null),this.isSelfRegistrationSelected()&&n.createElement(so,null),this.isSsoSelected()&&n.createElement(Co,null)))))))}}So.propTypes={context:s().any,administrationWorkspaceContext:s().object};const xo=R(F(So));class No extends n.Component{get privacyUrl(){return this.props.context.siteSettings.privacyLink}get creditsUrl(){return"https://www.passbolt.com/credits"}get unsafeUrl(){return"https://help.passbolt.com/faq/hosting/why-unsafe"}get termsUrl(){return this.props.context.siteSettings.termsLink}get versions(){const e=[],t=this.props.context.siteSettings.version;return t&&e.push(t),this.props.context.extensionVersion&&e.push(this.props.context.extensionVersion),e.join(" / ")}get isUnsafeMode(){const e=this.props.context.siteSettings.debug,t=this.props.context.siteSettings.url.startsWith("http://");return e||t}render(){return n.createElement("footer",null,n.createElement("div",{className:"footer"},n.createElement("ul",{className:"footer-links"},this.isUnsafeMode&&n.createElement("li",{className:"error-message"},n.createElement("a",{href:this.unsafeUrl,target:"_blank",rel:"noopener noreferrer"},n.createElement(v.c,null,"Unsafe mode"))),this.termsUrl&&n.createElement("li",null,n.createElement("a",{href:this.termsUrl,target:"_blank",rel:"noopener noreferrer"},n.createElement(v.c,null,"Terms"))),this.privacyUrl&&n.createElement("li",null,n.createElement("a",{href:this.privacyUrl,target:"_blank",rel:"noopener noreferrer"},n.createElement(v.c,null,"Privacy"))),n.createElement("li",null,n.createElement("a",{href:this.creditsUrl,target:"_blank",rel:"noopener noreferrer"},n.createElement(v.c,null,"Credits"))),n.createElement("li",null,this.versions&&n.createElement(Xe,{message:this.versions,direction:"left"},n.createElement("a",{href:this.creditsUrl,target:"_blank",rel:"noopener noreferrer"},n.createElement(le,{name:"heart-o"}))),!this.versions&&n.createElement("a",{href:this.creditsUrl,target:"_blank",rel:"noopener noreferrer"},n.createElement(le,{name:"heart-o"}))))))}}No.propTypes={context:s().any};const Lo=R((0,k.Z)("common")(No));class Io extends n.Component{get isMfaEnabled(){return this.props.context.siteSettings.canIUse("multiFactorAuthentication")}get canIUseThemeCapability(){return this.props.context.siteSettings&&this.props.context.siteSettings.canIUse("accountSettings")}get canIUseMobileCapability(){return this.props.context.siteSettings&&this.props.context.siteSettings.canIUse("mobile")}get canIUseAccountRecoveryCapability(){return this.props.context.siteSettings&&this.props.context.siteSettings.canIUse("accountRecovery")}render(){const e=e=>this.props.location.pathname.endsWith(e);return n.createElement("div",{className:"navigation-secondary navigation-shortcuts"},n.createElement("ul",null,n.createElement("li",null,n.createElement("div",{className:"row "+(e("profile")?"selected":"")},n.createElement("div",{className:"main-cell-wrapper"},n.createElement("div",{className:"main-cell"},n.createElement("a",{onClick:this.props.navigationContext.onGoToUserSettingsProfileRequested},n.createElement("span",null,n.createElement(v.c,null,"Profile"))))))),n.createElement("li",null,n.createElement("div",{className:"row "+(e("keys")?"selected":"")},n.createElement("div",{className:"main-cell-wrapper"},n.createElement("div",{className:"main-cell"},n.createElement("a",{onClick:this.props.navigationContext.onGoToUserSettingsKeysRequested},n.createElement("span",null,n.createElement(v.c,null,"Keys inspector"))))))),n.createElement("li",null,n.createElement("div",{className:"row "+(e("passphrase")?"selected":"")},n.createElement("div",{className:"main-cell-wrapper"},n.createElement("div",{className:"main-cell"},n.createElement("a",{onClick:this.props.navigationContext.onGoToUserSettingsPassphraseRequested},n.createElement("span",null,n.createElement(v.c,null,"Passphrase"))))))),n.createElement("li",null,n.createElement("div",{className:"row "+(e("security-token")?"selected":"")},n.createElement("div",{className:"main-cell-wrapper"},n.createElement("div",{className:"main-cell"},n.createElement("a",{onClick:this.props.navigationContext.onGoToUserSettingsSecurityTokenRequested},n.createElement("span",null,n.createElement(v.c,null,"Security token"))))))),this.canIUseThemeCapability&&n.createElement("li",null,n.createElement("div",{className:"row "+(e("theme")?"selected":"")},n.createElement("div",{className:"main-cell-wrapper"},n.createElement("div",{className:"main-cell"},n.createElement("a",{onClick:this.props.navigationContext.onGoToUserSettingsThemeRequested},n.createElement("span",null,n.createElement(v.c,null,"Theme"))))))),this.isMfaEnabled&&n.createElement("li",null,n.createElement("div",{className:"row "+(e("mfa")?"selected":"")},n.createElement("div",{className:"main-cell-wrapper"},n.createElement("div",{className:"main-cell"},n.createElement("a",{onClick:this.props.navigationContext.onGoToUserSettingsMfaRequested},n.createElement("span",null,n.createElement(v.c,null,"Multi Factor Authentication"))))))),this.canIUseAccountRecoveryCapability&&n.createElement("li",null,n.createElement("div",{className:"row "+(e("account-recovery")?"selected":"")},n.createElement("div",{className:"main-cell-wrapper"},n.createElement("div",{className:"main-cell"},n.createElement("a",{onClick:this.props.navigationContext.onGoToUserSettingsAccountRecoveryRequested},n.createElement("span",null,n.createElement(v.c,null,"Account Recovery")),this.props.hasPendingAccountRecoveryChoice&&n.createElement(le,{name:"exclamation",baseline:!0})))))),this.canIUseMobileCapability&&n.createElement("li",null,n.createElement("div",{className:"row "+(e("mobile")?"selected":"")},n.createElement("div",{className:"main-cell-wrapper"},n.createElement("div",{className:"main-cell"},n.createElement("a",{onClick:this.props.navigationContext.onGoToUserSettingsMobileRequested},n.createElement("span",null,n.createElement(v.c,null,"Mobile setup")))))))))}}Io.propTypes={context:s().any,navigationContext:s().any,history:s().object,location:s().object,hasPendingAccountRecoveryChoice:s().bool};const Ro=R((0,N.EN)(J((0,k.Z)("common")(Io))));class Ao extends n.Component{get items(){return[n.createElement(Ve,{key:"bread-1",name:this.translate("All users"),onClick:this.props.navigationContext.onGoToUsersRequested}),n.createElement(Ve,{key:"bread-2",name:this.loggedInUserName,onClick:this.props.navigationContext.onGoToUserSettingsProfileRequested}),n.createElement(Ve,{key:"bread-3",name:this.getLastBreadcrumbItemName,onClick:this.onLastBreadcrumbClick.bind(this)})]}get loggedInUserName(){const e=this.props.context.loggedInUser;return e?`${e.profile.first_name} ${e.profile.last_name}`:""}get getLastBreadcrumbItemName(){const e={profile:this.translate("Profile"),passphrase:this.translate("Passphrase"),"security-token":this.translate("Security token"),theme:this.translate("Theme"),mfa:this.translate("Multi Factor Authentication"),keys:this.translate("Keys inspector"),mobile:this.translate("Mobile transfer"),"account-recovery":this.translate("Account Recovery"),"smtp-settings":this.translate("Email server")};return e[Object.keys(e).find((e=>this.props.location.pathname.endsWith(e)))]}async onLastBreadcrumbClick(){const e=this.props.location.pathname;this.props.history.push({pathname:e})}get translate(){return this.props.t}render(){return n.createElement(We,{items:this.items})}}Ao.propTypes={context:s().any,location:s().object,history:s().object,navigationContext:s().any,t:s().func};const zo=R((0,N.EN)(J((0,k.Z)("common")(Ao))));class Do extends n.Component{render(){return n.createElement("iframe",{id:"setup-mfa",src:`${this.props.context.trustedDomain}/mfa/setup/select`,width:"100%",height:"100%"})}}Do.propTypes={context:s().any};const To=R(Do);class jo extends n.Component{render(){return n.createElement("div",null,n.createElement("div",{className:"header second"},n.createElement(te,null),n.createElement(Ft,{disabled:!0}),n.createElement(he,{baseUrl:this.props.context.trustedDomain,user:this.props.context.loggedInUser})),n.createElement("div",{className:"header third"}),n.createElement("div",{className:"panel main"},n.createElement("div",{className:"panel left"},n.createElement(Ro,null)),n.createElement("div",{className:"panel middle"},n.createElement(zo,null),n.createElement(N.AW,{path:"/app/settings/mfa",component:To}))))}}jo.propTypes={context:s().any};const Uo=(0,N.EN)(R(jo));class _o extends n.Component{constructor(e){super(e),this.initEventHandlers(),this.createReferences()}initEventHandlers(){this.handleCloseClick=this.handleCloseClick.bind(this)}createReferences(){this.loginLinkRef=n.createRef()}handleCloseClick(){this.goToLogin()}goToLogin(){this.loginLinkRef.current.click()}get loginUrl(){let e=this.props.context.userSettings&&this.props.context.userSettings.getTrustedDomain();return e=e||this.props.context.trustedDomain,`${e}/auth/login`}render(){return n.createElement(tt,{title:this.props.t("Session Expired"),onClose:this.handleCloseClick,className:"session-expired-dialog"},n.createElement("div",{className:"form-content"},n.createElement("p",null,n.createElement(v.c,null,"Your session has expired, you need to sign in."))),n.createElement("div",{className:"submit-wrapper clearfix"},n.createElement("a",{ref:this.loginLinkRef,href:this.loginUrl,className:"primary button",target:"_parent",role:"button",rel:"noopener noreferrer"},n.createElement(v.c,null,"Sign in"))))}}_o.propTypes={context:s().any,t:s().func};const Po=R((0,N.EN)((0,k.Z)("common")(_o)));class Mo extends n.Component{constructor(e){super(e),this.bindCallbacks(),this.scheduledCheckIsAuthenticatedTimeout=null}bindCallbacks(){this.handleSessionExpiredEvent=this.handleSessionExpiredEvent.bind(this)}componentDidMount(){this.scheduleCheckIsAuthenticated()}componentWillUnmount(){clearTimeout(this.scheduledCheckIsAuthenticatedTimeout)}scheduleCheckIsAuthenticated(){this.scheduledCheckIsAuthenticatedTimeout=setTimeout((async()=>{await this.checkIsAuthenticated()?this.scheduleCheckIsAuthenticated():this.handleSessionExpiredEvent()}),6e4)}async checkIsAuthenticated(){return await this.props.context.onCheckIsAuthenticatedRequested()}handleSessionExpiredEvent(){this.props.dialogContext.open(Po)}render(){return n.createElement(n.Fragment,null)}}Mo.propTypes={context:s().any,dialogContext:s().any};const Fo=R(g(Mo));function qo(){return qo=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},qo.apply(this,arguments)}const Oo=n.createContext({announcements:[],show:()=>{},close:()=>{}});class Wo extends n.Component{constructor(e){super(e),this.state=this.defaultState}get defaultState(){return{announcements:[],show:(e,t)=>{const a=(0,r.Z)();return this.setState({announcements:[...this.state.announcements,{key:a,Announcement:e,AnnouncementProps:t}]}),a},close:async e=>await this.setState({announcements:this.state.announcements.filter((t=>e!==t.key))})}}render(){return n.createElement(Oo.Provider,{value:this.state},this.props.children)}}function Ko(e){return class extends n.Component{render(){return n.createElement(Oo.Consumer,null,(t=>n.createElement(e,qo({announcementContext:t},this.props))))}}}Wo.displayName="AnnouncementContextProvider",Wo.propTypes={children:s().any};class Vo extends n.Component{constructor(e){super(e),this.bindCallbacks()}bindCallbacks(){this.handleClose=this.handleClose.bind(this)}handleClose(){this.props.onClose()}render(){return n.createElement("div",{className:`${this.props.className} announcement`},n.createElement("div",{className:"announcement-content"},this.props.canClose&&n.createElement("a",{className:"announcement-close dialog-close button button-transparent",onClick:this.handleClose,role:"button"},n.createElement(le,{name:"close"}),n.createElement("span",{className:"visually-hidden"},n.createElement(v.c,null,"Close"))),this.props.children))}}Vo.propTypes={children:s().node,className:s().string,canClose:s().bool,onClose:s().func};const Ho=(0,k.Z)("common")(Vo);class Bo extends n.Component{formatDateTimeAgo(e){const t=qt.ou.fromISO(e),a=t.diffNow().toMillis();return a>-1e3&&a<0?this.props.t("Just now"):t.toRelative({locale:this.props.context.locale})}render(){return n.createElement(Ho,{className:"subscription",onClose:this.props.onClose,canClose:!0},n.createElement("p",null,n.createElement(v.c,null,"Warning:")," ",n.createElement(v.c,null,"your subscription key will expire")," ",this.formatDateTimeAgo(this.props.expiry),".",n.createElement("a",{onClick:this.props.navigationContext.onGoToAdministrationSubscriptionRequested},n.createElement(v.c,null,"Manage Subscription"))))}}Bo.propTypes={context:s().any,expiry:s().string,navigationContext:s().any,onClose:s().func,t:s().func};const Go=R(J(Ko((0,k.Z)("common")(Bo))));class $o extends n.Component{render(){return n.createElement(Ho,{className:"subscription",onClose:this.props.onClose,canClose:!1},n.createElement("p",null,n.createElement(v.c,null,"Warning:")," ",n.createElement(v.c,null,"your subscription key has expired. The stability of the application is at risk."),n.createElement("a",{onClick:this.props.navigationContext.onGoToAdministrationSubscriptionRequested},n.createElement(v.c,null,"Manage Subscription"))))}}$o.propTypes={navigationContext:s().any,onClose:s().func,i18n:s().any};const Zo=J(Ko((0,k.Z)("common")($o)));class Yo extends n.Component{render(){return n.createElement(Ho,{className:"subscription",onClose:this.props.onClose,canClose:!1},n.createElement("p",null,n.createElement(v.c,null,"Warning:")," ",n.createElement(v.c,null,"your subscription key is not valid. The stability of the application is at risk."),n.createElement("a",{onClick:this.props.navigationContext.onGoToAdministrationSubscriptionRequested},n.createElement(v.c,null,"Manage Subscription"))))}}Yo.propTypes={navigationContext:s().any,onClose:s().func,i18n:s().any};const Jo=J(Ko((0,k.Z)("common")(Yo)));class Qo extends n.Component{constructor(e){super(e),this.bindCallbacks()}bindCallbacks(){this.handleAnnouncementSubscriptionEvent=this.handleAnnouncementSubscriptionEvent.bind(this)}componentDidMount(){this.handleAnnouncementSubscriptionEvent()}componentDidUpdate(e){this.handleRefreshSubscriptionAnnouncement(e.context.refreshSubscriptionAnnouncement)}async handleRefreshSubscriptionAnnouncement(e){this.props.context.refreshSubscriptionAnnouncement!==e&&this.props.context.refreshSubscriptionAnnouncement&&(await this.handleAnnouncementSubscriptionEvent(),this.props.context.setContext({refreshSubscriptionAnnouncement:null}))}async handleAnnouncementSubscriptionEvent(){this.hideSubscriptionAnnouncement();try{const e=await this.props.context.onGetSubscriptionKeyRequested();this.isSubscriptionGoingToExpire(e.expiry)&&this.props.announcementContext.show(Go,{expiry:e.expiry})}catch(e){"PassboltSubscriptionError"===e.name?this.props.announcementContext.show(Zo):this.props.announcementContext.show(Jo)}}hideSubscriptionAnnouncement(){const e=[Go,Zo,Jo];this.props.announcementContext.announcements.forEach((t=>{e.some((e=>e===t.Announcement))&&this.props.announcementContext.close(t.key)}))}isSubscriptionGoingToExpire(e){return qt.ou.fromISO(e)<qt.ou.now().plus({days:30})}render(){return n.createElement(n.Fragment,null)}}Qo.propTypes={context:s().any,announcementContext:s().any};const Xo=R(Ko(Qo));function ei(){return ei=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},ei.apply(this,arguments)}class ti extends n.Component{constructor(e){super(e),this.bindCallback()}bindCallback(){this.close=this.close.bind(this)}async close(e){this.props.announcementContext.close(e)}render(){return n.createElement(n.Fragment,null,this.props.announcementContext.announcements.map((({key:e,Announcement:t,AnnouncementProps:a})=>n.createElement(t,ei({key:e,onClose:()=>this.close(e)},a)))),this.props.children)}}ti.propTypes={announcementContext:s().any,children:s().any};const ai=Ko(ti),ni=(e,t)=>t.split(".").reduce(((e,t)=>void 0===e?e:e[t]),e),oi=(e,t)=>{if(void 0===e||"string"!=typeof e||!e.length)return!1;if((t=t||{}).whitelistedProtocols&&!Array.isArray(t.whitelistedProtocols))throw new TypeError("The whitelistedProtocols should be an array of string.");if(t.defaultProtocol&&"string"!=typeof t.defaultProtocol)throw new TypeError("The defaultProtocol should be a string.");const a=t.whitelistedProtocols||[ii.HTTP,ii.HTTPS],n=[ii.JAVASCRIPT],o=t.defaultProtocol||"";!/^((?!:\/\/).)*:\/\//.test(e)&&o&&(e=`${o}//${e}`);try{const t=new URL(e);return!n.includes(t.protocol)&&!!a.includes(t.protocol)&&t.href}catch(e){return!1}},ii={FTP:"http:",FTPS:"https:",HTTP:"http:",HTTPS:"https:",JAVASCRIPT:"javascript:",SSH:"ssh:"};class si{constructor(e){this.settings=e}canIUse(e){let t=!1;const a=`passbolt.plugins.${e}`,n=ni(this.settings,a)||null;if(n&&"object"==typeof n){const e=ni(n,"enabled");void 0!==e&&!0!==e||(t=!0)}return t}getPluginSettings(e){const t=`passbolt.plugins.${e}`;return ni(this.settings,t)}getRememberMeOptions(){return(this.getPluginSettings("rememberMe")||{}).options||{}}get hasRememberMeUntilILogoutOption(){return void 0!==(this.getRememberMeOptions()||{})[-1]}getServerTimezone(){return ni(this.settings,"passbolt.app.server_timezone")}get termsLink(){const e=ni(this.settings,"passbolt.legal.terms.url");return!!e&&oi(e)}get privacyLink(){const e=ni(this.settings,"passbolt.legal.privacy_policy.url");return!!e&&oi(e)}get registrationPublic(){return!0===ni(this.settings,"passbolt.registration.public")}get debug(){return!0===ni(this.settings,"app.debug")}get url(){return ni(this.settings,"app.url")||""}get version(){return ni(this.settings,"app.version.number")}get locale(){return ni(this.settings,"app.locale")||si.DEFAULT_LOCALE.locale}async setLocale(e){this.settings.app.locale=e}get supportedLocales(){return ni(this.settings,"passbolt.plugins.locale.options")||si.DEFAULT_SUPPORTED_LOCALES}get generatorConfiguration(){return ni(this.settings,"passbolt.plugins.generator.configuration")}static get DEFAULT_SUPPORTED_LOCALES(){return[si.DEFAULT_LOCALE]}static get DEFAULT_LOCALE(){return{locale:"en-UK",label:"English"}}}class ri{constructor(e){this.setToken(e)}setToken(e){this.validate(e),this.token=e}validate(e){if(!e)throw new TypeError("CSRF token cannot be empty.");if("string"!=typeof e)throw new TypeError("CSRF token should be a string.")}toFetchHeaders(){return{"X-CSRF-Token":this.token}}static getToken(){const e=document.cookie;if(!e)return;const t=e.split("; ");if(!t)return;const a=t.find((e=>e.startsWith("csrfToken")));if(!a)return;const n=a.split("=");return n&&2===n.length?n[1]:void 0}}class li{setBaseUrl(e){if(!e)throw new TypeError("ApiClientOption baseUrl is required.");if("string"==typeof e)try{this.baseUrl=new URL(e)}catch(e){throw new TypeError("ApiClientOption baseUrl is invalid.")}else{if(!(e instanceof URL))throw new TypeError("ApiClientOptions baseurl should be a string or URL");this.baseUrl=e}return this}setCsrfToken(e){if(!e)throw new TypeError("ApiClientOption csrfToken is required.");if("string"==typeof e)this.csrfToken=new ri(e);else{if(!(e instanceof ri))throw new TypeError("ApiClientOption csrfToken should be a string or a valid CsrfToken.");this.csrfToken=e}return this}setResourceName(e){if(!e)throw new TypeError("ApiClientOptions.setResourceName resourceName is required.");if("string"!=typeof e)throw new TypeError("ApiClientOptions.setResourceName resourceName should be a valid string.");return this.resourceName=e,this}getBaseUrl(){return this.baseUrl}getResourceName(){return this.resourceName}getHeaders(){if(this.csrfToken)return this.csrfToken.toFetchHeaders()}}class ci extends Error{constructor(e,t={}){super(e),this.name="PassboltSubscriptionError",this.subscription=t}}const mi=ci;class di extends n.Component{constructor(e){super(e),this.state=this.defaultState}async componentDidMount(){await this.getLoggedInUser(),await this.getSiteSettings(),this.initLocale(),this.removeSplashScreen()}get defaultState(){return{name:"api",loggedInUser:null,siteSettings:null,trustedDomain:this.baseUrl,basename:new URL(this.baseUrl).pathname,getApiClientOptions:this.getApiClientOptions.bind(this),locale:null,displayTestUserDirectoryDialogProps:{userDirectoryTestResult:null},setContext:e=>{this.setState(e)},onLogoutRequested:()=>this.onLogoutRequested(),onCheckIsAuthenticatedRequested:()=>this.onCheckIsAuthenticatedRequested(),onGetSubscriptionKeyRequested:()=>this.onGetSubscriptionKeyRequested(),onRefreshLocaleRequested:this.onRefreshLocaleRequested.bind(this)}}get isReady(){return null!==this.state.siteSettings&&null!==this.state.locale}get baseUrl(){const e=document.getElementsByTagName("base")&&document.getElementsByTagName("base")[0];return e?e.attributes.href.value.replace(/\/*$/g,""):(console.error("Unable to retrieve the page base tag"),"")}getApiClientOptions(){return(new li).setBaseUrl(this.state.trustedDomain).setCsrfToken(ri.getToken())}async getLoggedInUser(){const e=this.getApiClientOptions().setResourceName("users"),t=new xe(e),a=(await t.get("me")).body;this.setState({loggedInUser:a})}async getSiteSettings(){const e=this.getApiClientOptions().setResourceName("settings"),t=new xe(e),a=await t.findAll();await this.setState({siteSettings:new si(a.body)})}async initLocale(){const e=await this.getUserLocale();if(e)return this.setState({locale:e.locale});const t=this.state.siteSettings.locale;return this.setState({locale:t})}async getUserLocale(){const e=(await this.getUserSettings()).find((e=>"locale"===e.property));if(e)return this.state.siteSettings.supportedLocales.find((t=>t.locale===e.value))}async getUserSettings(){const e=this.getApiClientOptions().setResourceName("account/settings"),t=new xe(e);return(await t.findAll()).body}removeSplashScreen(){document.getElementsByTagName("html")[0].classList.remove("launching")}onLogoutRequested(){document.location.href=`${this.state.trustedDomain}/auth/logout`}async onCheckIsAuthenticatedRequested(){try{const e=this.getApiClientOptions().setResourceName("auth"),t=new xe(e);return await t.get("is-authenticated"),!0}catch(e){if(e instanceof ke&&401===e.data.code)return!1;throw e}}async onGetSubscriptionKeyRequested(){try{const e=this.getApiClientOptions().setResourceName("ee/subscription"),t=new xe(e);return(await t.get("key")).body}catch(e){if(e instanceof ke&&e.data&&402===e.data.code){const t=e.data.body;throw new mi(e.message,t)}throw e}}onRefreshLocaleRequested(e){this.state.siteSettings.setLocale(e),this.initLocale()}render(){const e=this.isReady;return n.createElement(A.Provider,{value:this.state},e&&this.props.children)}}di.propTypes={children:s().any};const hi=di;var ui=a(2092),pi=a(7031),gi=a(5538);class bi extends n.Component{constructor(e){super(e),this.state=this.defaultState}get defaultState(){return{ready:!1}}async componentDidMount(){await ui.ZP.use(pi.Db).use(gi.Z).init({lng:this.locale,load:"currentOnly",interpolation:{escapeValue:!1},react:{useSuspense:!1},backend:{loadPath:this.props.loadingPath||"/locales/{{lng}}/{{ns}}.json"},supportedLngs:this.supportedLocales,fallbackLng:!1,ns:["common"],defaultNS:"common",keySeparator:!1,nsSeparator:!1,debug:!1}),this.setState({ready:!0})}get supportedLocales(){return this.props.context.siteSettings.supportedLocales?this.props.context.siteSettings.supportedLocales.map((e=>e.locale)):[this.locale]}get locale(){return this.props.context.locale}async componentDidUpdate(e){await this.handleLocaleChange(e.context.locale)}async handleLocaleChange(e){this.locale!==e&&await ui.ZP.changeLanguage(this.locale)}get isReady(){return this.state.ready}render(){return n.createElement(n.Fragment,null,this.isReady&&this.props.children)}}bi.propTypes={context:s().any,loadingPath:s().any,children:s().any};const fi=R(bi);class yi{constructor(){this.baseUrl=this.getBaseUrl()}async getOrganizationAccountRecoverySettings(){const e=this.getApiClientOptions().setResourceName("account-recovery/organization-policies"),t=new xe(e);return(await t.findAll()).body}getBaseUrl(){const e=document.getElementsByTagName("base")&&document.getElementsByTagName("base")[0];return e?e.attributes.href.value.replace(/\/*$/g,""):(console.error("Unable to retrieve the page base tag"),"")}getApiClientOptions(){return(new li).setBaseUrl(this.baseUrl).setCsrfToken(this.getCsrfToken())}getCsrfToken(){const e=document.cookie;if(!e)return;const t=e.split("; ");if(!t)return;const a=t.find((e=>e.startsWith("csrfToken")));if(!a)return;const n=a.split("=");return n&&2===n.length?n[1]:void 0}}class vi extends n.Component{render(){const e=new yi;return n.createElement(hi,null,n.createElement(A.Consumer,null,(t=>n.createElement(fi,{loadingPath:`${t.trustedDomain}/locales/{{lng}}/{{ns}}.json`},n.createElement(ie,{accountRecoveryUserService:e},n.createElement(m,null,n.createElement(p,null,n.createElement(Wo,null,n.createElement(y,null,n.createElement(S,null),n.createElement(Fo,null),t.loggedInUser&&"admin"===t.loggedInUser.role.name&&t.siteSettings.canIUse("ee")&&n.createElement(Xo,null),n.createElement(x.VK,{basename:t.basename},n.createElement(Y,null,n.createElement(N.rs,null,n.createElement(N.AW,{exact:!0,path:["/app/administration/subscription","/app/administration/account-recovery"]}),n.createElement(N.AW,{path:"/app/administration"},n.createElement(P,null,n.createElement(Nn,null,n.createElement(B,null),n.createElement(ai,null),n.createElement(ht,null,n.createElement(Qn,null,n.createElement(K,null),n.createElement(Re,null,n.createElement(Dt,null,n.createElement(ca,null,n.createElement(xo,null))))))))),n.createElement(N.AW,{path:["/app/settings/mfa"]},n.createElement(K,null),n.createElement(B,null),n.createElement(ai,null),n.createElement("div",{id:"container",className:"page settings"},n.createElement("div",{id:"app",className:"app",tabIndex:"1000"},n.createElement("div",{className:"header first"},n.createElement(X,null)),n.createElement(Uo,null))))))),n.createElement(Lo,null))))))))))}}const ki=vi,Ei=document.createElement("div");document.body.appendChild(Ei),o.render(n.createElement(ki,null),Ei)}},o={};function i(e){var t=o[e];if(void 0!==t)return t.exports;var a=o[e]={exports:{}};return n[e].call(a.exports,a,a.exports,i),a.exports}i.m=n,e=[],i.O=(t,a,n,o)=>{if(!a){var s=1/0;for(m=0;m<e.length;m++){for(var[a,n,o]=e[m],r=!0,l=0;l<a.length;l++)(!1&o||s>=o)&&Object.keys(i.O).every((e=>i.O[e](a[l])))?a.splice(l--,1):(r=!1,o<s&&(s=o));if(r){e.splice(m--,1);var c=n();void 0!==c&&(t=c)}}return t}o=o||0;for(var m=e.length;m>0&&e[m-1][2]>o;m--)e[m]=e[m-1];e[m]=[a,n,o]},i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,i.t=function(e,n){if(1&n&&(e=this(e)),8&n)return e;if("object"==typeof e&&e){if(4&n&&e.__esModule)return e;if(16&n&&"function"==typeof e.then)return e}var o=Object.create(null);i.r(o);var s={};t=t||[null,a({}),a([]),a(a)];for(var r=2&n&&e;"object"==typeof r&&!~t.indexOf(r);r=a(r))Object.getOwnPropertyNames(r).forEach((t=>s[t]=()=>e[t]));return s.default=()=>e,i.d(o,s),o},i.d=(e,t)=>{for(var a in t)i.o(t,a)&&!i.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.j=978,(()=>{var e={978:0};i.O.j=t=>0===e[t];var t=(t,a)=>{var n,o,[s,r,l]=a,c=0;if(s.some((t=>0!==e[t]))){for(n in r)i.o(r,n)&&(i.m[n]=r[n]);if(l)var m=l(i)}for(t&&t(a);c<s.length;c++)o=s[c],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return i.O(m)},a=self.webpackChunkpassbolt_styleguide=self.webpackChunkpassbolt_styleguide||[];a.forEach(t.bind(null,0)),a.push=t.bind(null,a.push.bind(a))})();var s=i.O(void 0,[596],(()=>i(2482)));s=i.O(s)})();
|