@digitaldefiance/express-suite-react-components 5.0.2 → 5.0.4
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/package.json +5 -4
- package/src/auth/AdminRoute.d.ts +8 -0
- package/src/auth/AdminRoute.d.ts.map +1 -0
- package/src/auth/AdminRoute.js +28 -0
- package/src/auth/Private.d.ts +6 -0
- package/src/auth/Private.d.ts.map +1 -0
- package/src/auth/Private.js +14 -0
- package/src/auth/PrivateRoute.d.ts +8 -0
- package/src/auth/PrivateRoute.d.ts.map +1 -0
- package/src/auth/PrivateRoute.js +23 -0
- package/src/auth/UnAuth.d.ts +6 -0
- package/src/auth/UnAuth.d.ts.map +1 -0
- package/src/auth/UnAuth.js +14 -0
- package/src/auth/UnAuthRoute.d.ts +8 -0
- package/src/auth/UnAuthRoute.d.ts.map +1 -0
- package/src/auth/UnAuthRoute.js +22 -0
- package/src/auth/{index.ts → index.d.ts} +3 -2
- package/src/auth/index.d.ts.map +1 -0
- package/src/auth/index.js +12 -0
- package/src/components/ApiAccess.d.ts +16 -0
- package/src/components/ApiAccess.d.ts.map +1 -0
- package/src/components/ApiAccess.js +77 -0
- package/src/components/BackupCodeLoginForm.d.ts +43 -0
- package/src/components/BackupCodeLoginForm.d.ts.map +1 -0
- package/src/components/BackupCodeLoginForm.js +139 -0
- package/src/components/BackupCodesForm.d.ts +26 -0
- package/src/components/BackupCodesForm.d.ts.map +1 -0
- package/src/components/BackupCodesForm.js +120 -0
- package/src/components/CategoryMenu.d.ts +17 -0
- package/src/components/CategoryMenu.d.ts.map +1 -0
- package/src/components/CategoryMenu.js +65 -0
- package/src/components/ChangePasswordForm.d.ts +26 -0
- package/src/components/ChangePasswordForm.d.ts.map +1 -0
- package/src/components/ChangePasswordForm.js +78 -0
- package/src/components/ConfirmationDialog.d.ts +13 -0
- package/src/components/ConfirmationDialog.d.ts.map +1 -0
- package/src/components/ConfirmationDialog.js +10 -0
- package/src/components/CurrencyCodeSelector.d.ts +9 -0
- package/src/components/CurrencyCodeSelector.d.ts.map +1 -0
- package/src/components/CurrencyCodeSelector.js +31 -0
- package/src/components/CurrencyInput.d.ts +13 -0
- package/src/components/CurrencyInput.d.ts.map +1 -0
- package/src/components/CurrencyInput.js +22 -0
- package/src/components/DashboardPage.d.ts +8 -0
- package/src/components/DashboardPage.d.ts.map +1 -0
- package/src/components/DashboardPage.js +10 -0
- package/src/components/DropdownMenu.d.ts +13 -0
- package/src/components/DropdownMenu.d.ts.map +1 -0
- package/src/components/DropdownMenu.js +63 -0
- package/src/components/ExpirationSecondsSelector.d.ts +13 -0
- package/src/components/ExpirationSecondsSelector.d.ts.map +1 -0
- package/src/components/ExpirationSecondsSelector.js +32 -0
- package/src/components/FakeEmailAdminPanel.d.ts +23 -0
- package/src/components/FakeEmailAdminPanel.d.ts.map +1 -0
- package/src/components/FakeEmailAdminPanel.js +147 -0
- package/src/components/Flag.d.ts +20 -0
- package/src/components/Flag.d.ts.map +1 -0
- package/src/components/Flag.js +43 -0
- package/src/components/ForgotPasswordForm.d.ts +18 -0
- package/src/components/ForgotPasswordForm.d.ts.map +1 -0
- package/src/components/ForgotPasswordForm.js +61 -0
- package/src/components/LoginForm.d.ts +44 -0
- package/src/components/LoginForm.d.ts.map +1 -0
- package/src/components/LoginForm.js +123 -0
- package/src/components/LogoutPage.d.ts +8 -0
- package/src/components/LogoutPage.d.ts.map +1 -0
- package/src/components/LogoutPage.js +16 -0
- package/src/components/RegisterForm.d.ts +100 -0
- package/src/components/RegisterForm.d.ts.map +1 -0
- package/src/components/RegisterForm.js +306 -0
- package/src/components/ResetPasswordForm.d.ts +23 -0
- package/src/components/ResetPasswordForm.d.ts.map +1 -0
- package/src/components/ResetPasswordForm.js +78 -0
- package/src/components/SideMenu.d.ts +8 -0
- package/src/components/SideMenu.d.ts.map +1 -0
- package/src/components/SideMenu.js +25 -0
- package/src/components/SideMenuListItem.d.ts +13 -0
- package/src/components/SideMenuListItem.d.ts.map +1 -0
- package/src/components/SideMenuListItem.js +44 -0
- package/src/components/T.d.ts +7 -0
- package/src/components/T.d.ts.map +1 -0
- package/src/components/T.js +13 -0
- package/src/components/TDiv.d.ts +9 -0
- package/src/components/TDiv.d.ts.map +1 -0
- package/src/components/TDiv.js +14 -0
- package/src/components/TImgAlt.d.ts +10 -0
- package/src/components/TImgAlt.d.ts.map +1 -0
- package/src/components/TImgAlt.js +14 -0
- package/src/components/TopMenu.d.ts +50 -0
- package/src/components/TopMenu.d.ts.map +1 -0
- package/src/components/TopMenu.js +79 -0
- package/src/components/TotpSetupForm.d.ts +24 -0
- package/src/components/TotpSetupForm.d.ts.map +1 -0
- package/src/components/TotpSetupForm.js +82 -0
- package/src/components/TotpVerificationForm.d.ts +23 -0
- package/src/components/TotpVerificationForm.d.ts.map +1 -0
- package/src/components/TotpVerificationForm.js +66 -0
- package/src/components/TranslatedTitle.d.ts +8 -0
- package/src/components/TranslatedTitle.d.ts.map +1 -0
- package/src/components/TranslatedTitle.js +15 -0
- package/src/components/UserLanguageSelector.d.ts +4 -0
- package/src/components/UserLanguageSelector.d.ts.map +1 -0
- package/src/components/UserLanguageSelector.js +31 -0
- package/src/components/UserMenu.d.ts +4 -0
- package/src/components/UserMenu.d.ts.map +1 -0
- package/src/components/UserMenu.js +12 -0
- package/src/components/UserSettingsForm.d.ts +113 -0
- package/src/components/UserSettingsForm.d.ts.map +1 -0
- package/src/components/UserSettingsForm.js +269 -0
- package/src/components/VerifyEmailPage.d.ts +24 -0
- package/src/components/VerifyEmailPage.d.ts.map +1 -0
- package/src/components/VerifyEmailPage.js +81 -0
- package/src/components/{index.ts → index.d.ts} +1 -1
- package/src/components/index.d.ts.map +1 -0
- package/src/components/index.js +35 -0
- package/src/contexts/AuthProvider.d.ts +19 -0
- package/src/contexts/AuthProvider.d.ts.map +1 -0
- package/src/contexts/AuthProvider.js +514 -0
- package/src/contexts/I18nProvider.d.ts +27 -0
- package/src/contexts/I18nProvider.d.ts.map +1 -0
- package/src/contexts/I18nProvider.js +60 -0
- package/src/contexts/MenuContext.d.ts +28 -0
- package/src/contexts/MenuContext.d.ts.map +1 -0
- package/src/contexts/MenuContext.js +307 -0
- package/src/contexts/SuiteConfigProvider.d.ts +44 -0
- package/src/contexts/SuiteConfigProvider.d.ts.map +1 -0
- package/src/contexts/SuiteConfigProvider.js +43 -0
- package/src/contexts/ThemeProvider.d.ts +15 -0
- package/src/contexts/ThemeProvider.d.ts.map +1 -0
- package/src/contexts/ThemeProvider.js +36 -0
- package/src/contexts/auth-context.d.ts +172 -0
- package/src/contexts/auth-context.d.ts.map +1 -0
- package/src/contexts/auth-context.js +13 -0
- package/src/contexts/{index.ts → index.d.ts} +1 -0
- package/src/contexts/index.d.ts.map +1 -0
- package/src/contexts/index.js +8 -0
- package/src/hooks/{index.ts → index.d.ts} +1 -0
- package/src/hooks/index.d.ts.map +1 -0
- package/src/hooks/index.js +9 -0
- package/src/hooks/useAuthenticatedApi.d.ts +34 -0
- package/src/hooks/useAuthenticatedApi.d.ts.map +1 -0
- package/src/hooks/useAuthenticatedApi.js +46 -0
- package/src/hooks/useBackupCodes.d.ts +15 -0
- package/src/hooks/useBackupCodes.d.ts.map +1 -0
- package/src/hooks/useBackupCodes.js +74 -0
- package/src/hooks/useEmailVerification.d.ts +10 -0
- package/src/hooks/useEmailVerification.d.ts.map +1 -0
- package/src/hooks/useEmailVerification.js +40 -0
- package/src/hooks/useExpiringValue.d.ts +14 -0
- package/src/hooks/useExpiringValue.d.ts.map +1 -0
- package/src/hooks/useExpiringValue.js +53 -0
- package/src/hooks/useLocalStorage.d.ts +2 -0
- package/src/hooks/useLocalStorage.d.ts.map +1 -0
- package/src/hooks/useLocalStorage.js +15 -0
- package/src/hooks/useUserSettings.d.ts +48 -0
- package/src/hooks/useUserSettings.d.ts.map +1 -0
- package/src/hooks/useUserSettings.js +171 -0
- package/src/{index.ts → index.d.ts} +1 -1
- package/src/index.d.ts.map +1 -0
- package/src/index.js +12 -0
- package/src/interfaces/IAppConfig.d.ts +8 -0
- package/src/interfaces/IAppConfig.d.ts.map +1 -0
- package/src/interfaces/IAppConfig.js +2 -0
- package/src/interfaces/ICategoryConfig.d.ts +41 -0
- package/src/interfaces/ICategoryConfig.d.ts.map +1 -0
- package/src/interfaces/ICategoryConfig.js +2 -0
- package/src/interfaces/IMenuConfig.d.ts +28 -0
- package/src/interfaces/IMenuConfig.d.ts.map +1 -0
- package/src/interfaces/IMenuConfig.js +2 -0
- package/src/interfaces/IMenuOption.d.ts +82 -0
- package/src/interfaces/IMenuOption.d.ts.map +1 -0
- package/src/interfaces/IMenuOption.js +2 -0
- package/src/interfaces/{index.ts → index.d.ts} +1 -0
- package/src/interfaces/index.d.ts.map +1 -0
- package/src/interfaces/index.js +7 -0
- package/src/services/__mocks__/authService.d.ts +21 -0
- package/src/services/__mocks__/authService.d.ts.map +1 -0
- package/src/services/__mocks__/authService.js +15 -0
- package/src/services/api.d.ts +3 -0
- package/src/services/api.d.ts.map +1 -0
- package/src/services/api.js +14 -0
- package/src/services/authService.d.ts +126 -0
- package/src/services/authService.d.ts.map +1 -0
- package/src/services/authService.js +471 -0
- package/src/services/authenticatedApi.d.ts +3 -0
- package/src/services/authenticatedApi.d.ts.map +1 -0
- package/src/services/authenticatedApi.js +18 -0
- package/src/services/index.d.ts +4 -0
- package/src/services/index.d.ts.map +1 -0
- package/src/services/index.js +6 -0
- package/src/types/MenuType.d.ts +11 -0
- package/src/types/MenuType.d.ts.map +1 -0
- package/src/types/MenuType.js +12 -0
- package/src/types/expirationSeconds.d.ts +3 -0
- package/src/types/expirationSeconds.d.ts.map +1 -0
- package/src/types/expirationSeconds.js +17 -0
- package/src/types/index.d.ts +2 -0
- package/src/types/index.d.ts.map +1 -0
- package/src/types/index.js +4 -0
- package/src/types/translation.d.ts +10 -0
- package/src/types/translation.d.ts.map +1 -0
- package/src/types/translation.js +9 -0
- package/src/wrappers/BackupCodeLoginWrapper.d.ts +8 -0
- package/src/wrappers/BackupCodeLoginWrapper.d.ts.map +1 -0
- package/src/wrappers/BackupCodeLoginWrapper.js +20 -0
- package/src/wrappers/BackupCodesWrapper.d.ts +7 -0
- package/src/wrappers/BackupCodesWrapper.d.ts.map +1 -0
- package/src/wrappers/BackupCodesWrapper.js +17 -0
- package/src/wrappers/ChangePasswordFormWrapper.d.ts +8 -0
- package/src/wrappers/ChangePasswordFormWrapper.d.ts.map +1 -0
- package/src/wrappers/ChangePasswordFormWrapper.js +21 -0
- package/src/wrappers/ForgotPasswordFormWrapper.d.ts +8 -0
- package/src/wrappers/ForgotPasswordFormWrapper.d.ts.map +1 -0
- package/src/wrappers/ForgotPasswordFormWrapper.js +29 -0
- package/src/wrappers/LoginFormWrapper.d.ts +21 -0
- package/src/wrappers/LoginFormWrapper.d.ts.map +1 -0
- package/src/wrappers/LoginFormWrapper.js +72 -0
- package/src/wrappers/LogoutPageWrapper.d.ts +9 -0
- package/src/wrappers/LogoutPageWrapper.d.ts.map +1 -0
- package/src/wrappers/LogoutPageWrapper.js +21 -0
- package/src/wrappers/RegisterFormWrapper.d.ts +20 -0
- package/src/wrappers/RegisterFormWrapper.d.ts.map +1 -0
- package/src/wrappers/RegisterFormWrapper.js +51 -0
- package/src/wrappers/ResetPasswordFormWrapper.d.ts +9 -0
- package/src/wrappers/ResetPasswordFormWrapper.d.ts.map +1 -0
- package/src/wrappers/ResetPasswordFormWrapper.js +34 -0
- package/src/wrappers/UserSettingsFormWrapper.d.ts +29 -0
- package/src/wrappers/UserSettingsFormWrapper.d.ts.map +1 -0
- package/src/wrappers/UserSettingsFormWrapper.js +95 -0
- package/src/wrappers/VerifyEmailPageWrapper.d.ts +8 -0
- package/src/wrappers/VerifyEmailPageWrapper.d.ts.map +1 -0
- package/src/wrappers/VerifyEmailPageWrapper.js +21 -0
- package/src/wrappers/{index.tsx → index.d.ts} +1 -10
- package/src/wrappers/index.d.ts.map +1 -0
- package/src/wrappers/index.js +24 -0
- package/LICENSE +0 -21
- package/src/auth/AdminRoute.tsx +0 -54
- package/src/auth/Private.tsx +0 -17
- package/src/auth/PrivateRoute.tsx +0 -28
- package/src/auth/UnAuth.tsx +0 -16
- package/src/auth/UnAuthRoute.tsx +0 -30
- package/src/components/ApiAccess.tsx +0 -175
- package/src/components/BackupCodeLoginForm.tsx +0 -489
- package/src/components/BackupCodesForm.tsx +0 -287
- package/src/components/CategoryMenu.tsx +0 -155
- package/src/components/ChangePasswordForm.tsx +0 -273
- package/src/components/ConfirmationDialog.tsx +0 -48
- package/src/components/CurrencyCodeSelector.tsx +0 -60
- package/src/components/CurrencyInput.tsx +0 -80
- package/src/components/DashboardPage.tsx +0 -24
- package/src/components/DropdownMenu.tsx +0 -105
- package/src/components/ExpirationSecondsSelector.tsx +0 -60
- package/src/components/FakeEmailAdminPanel.tsx +0 -374
- package/src/components/Flag.tsx +0 -52
- package/src/components/ForgotPasswordForm.tsx +0 -174
- package/src/components/LoginForm.tsx +0 -468
- package/src/components/LogoutPage.tsx +0 -21
- package/src/components/RegisterForm.tsx +0 -1169
- package/src/components/ResetPasswordForm.tsx +0 -247
- package/src/components/SideMenu.tsx +0 -46
- package/src/components/SideMenuListItem.tsx +0 -75
- package/src/components/T.tsx +0 -24
- package/src/components/TDiv.tsx +0 -26
- package/src/components/TImgAlt.tsx +0 -28
- package/src/components/TopMenu.tsx +0 -252
- package/src/components/TotpSetupForm.tsx +0 -188
- package/src/components/TotpVerificationForm.tsx +0 -148
- package/src/components/TranslatedTitle.tsx +0 -31
- package/src/components/UserLanguageSelector.tsx +0 -45
- package/src/components/UserMenu.tsx +0 -15
- package/src/components/UserSettingsForm.tsx +0 -904
- package/src/components/VerifyEmailPage.tsx +0 -222
- package/src/components/__tests__/RegisterForm.totp.spec.tsx +0 -377
- package/src/components/__tests__/TotpSetupForm.spec.tsx +0 -258
- package/src/components/__tests__/TotpVerificationForm.spec.tsx +0 -259
- package/src/components/__tests__/UserSettingsForm.totp.spec.tsx +0 -396
- package/src/contexts/AuthProvider.spec.tsx +0 -1284
- package/src/contexts/AuthProvider.tsx +0 -977
- package/src/contexts/I18nProvider.tsx +0 -164
- package/src/contexts/MenuContext.tsx +0 -426
- package/src/contexts/SuiteConfigProvider.tsx +0 -93
- package/src/contexts/ThemeProvider.tsx +0 -67
- package/src/hooks/useAuthenticatedApi.tsx +0 -67
- package/src/hooks/useBackupCodes.ts +0 -105
- package/src/hooks/useEmailVerification.ts +0 -54
- package/src/hooks/useExpiringValue.ts +0 -78
- package/src/hooks/useLocalStorage.ts +0 -18
- package/src/hooks/useUserSettings.ts +0 -271
- package/src/interfaces/IAppConfig.ts +0 -7
- package/src/interfaces/ICategoryConfig.ts +0 -41
- package/src/interfaces/IMenuConfig.ts +0 -28
- package/src/interfaces/IMenuOption.ts +0 -79
- package/src/services/__mocks__/authService.ts +0 -14
- package/src/services/__tests__/authService.totp.property.spec.ts +0 -360
- package/src/services/__tests__/authService.totp.spec.ts +0 -439
- package/src/services/api.ts +0 -13
- package/src/services/authService.ts +0 -692
- package/src/services/authenticatedApi.ts +0 -17
- package/src/services/index.ts +0 -3
- package/src/types/MenuType.ts +0 -15
- package/src/types/expirationSeconds.ts +0 -18
- package/src/types/index.ts +0 -1
- package/src/types/translation.ts +0 -20
- package/src/wrappers/BackupCodeLoginWrapper.tsx +0 -34
- package/src/wrappers/BackupCodesWrapper.tsx +0 -28
- package/src/wrappers/ChangePasswordFormWrapper.tsx +0 -34
- package/src/wrappers/ForgotPasswordFormWrapper.tsx +0 -45
- package/src/wrappers/LoginFormWrapper.tsx +0 -108
- package/src/wrappers/LogoutPageWrapper.tsx +0 -30
- package/src/wrappers/RegisterFormWrapper.tsx +0 -109
- package/src/wrappers/ResetPasswordFormWrapper.tsx +0 -57
- package/src/wrappers/UserSettingsFormWrapper.tsx +0 -140
- package/src/wrappers/VerifyEmailPageWrapper.tsx +0 -27
- package/src/wrappers/__tests__/LoginFormWrapper.totp.spec.tsx +0 -339
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ReactElement, ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Configuration for a TopMenu category (mega-menu container).
|
|
4
|
+
*
|
|
5
|
+
* Categories let you group multiple icon dropdowns under a single AppBar
|
|
6
|
+
* button. Menus opt into a category by setting `IMenuConfig.category` (or
|
|
7
|
+
* `AdditionalDropdownMenu.category`) to this category's `id`. The TopMenu
|
|
8
|
+
* renders one icon button per category that has at least one matching menu;
|
|
9
|
+
* clicking it opens a popover containing the matching menus as icon tiles.
|
|
10
|
+
*
|
|
11
|
+
* Backwards compatibility: if `TopMenu` is not given a `categories` array,
|
|
12
|
+
* or if a menu does not declare a `category`, it renders inline in the AppBar
|
|
13
|
+
* exactly as before.
|
|
14
|
+
*/
|
|
15
|
+
export interface ICategoryConfig {
|
|
16
|
+
/** Unique identifier referenced by `IMenuConfig.category`. */
|
|
17
|
+
id: string;
|
|
18
|
+
/** Icon shown on the AppBar trigger button. */
|
|
19
|
+
icon: ReactElement;
|
|
20
|
+
/**
|
|
21
|
+
* Optional accessible label / tooltip / panel header. Plain string for
|
|
22
|
+
* tooltip; render-prop or node for the panel header if `showHeader` is true.
|
|
23
|
+
*/
|
|
24
|
+
label?: string;
|
|
25
|
+
/** Optional header content shown above the tile grid when `showHeader` is true. */
|
|
26
|
+
header?: ReactNode;
|
|
27
|
+
/** Show the `header` (or `label`) above the tile grid. Defaults to false. */
|
|
28
|
+
showHeader?: boolean;
|
|
29
|
+
/** Show the menu label under each tile inside the popover. Defaults to true. */
|
|
30
|
+
showLabels?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Sort order for placement in the AppBar. Higher numbers render first
|
|
33
|
+
* (same convention as `IMenuConfig.priority`). Defaults to 0.
|
|
34
|
+
*/
|
|
35
|
+
priority?: number;
|
|
36
|
+
/** Number of tile columns in the popover grid. Defaults to 3. */
|
|
37
|
+
columns?: number;
|
|
38
|
+
/** Hide the category trigger when it has no matching menus. Defaults to true. */
|
|
39
|
+
hideWhenEmpty?: boolean;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=ICategoryConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ICategoryConfig.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/interfaces/ICategoryConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEhD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,EAAE,EAAE,MAAM,CAAC;IACX,+CAA+C;IAC/C,IAAI,EAAE,YAAY,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gFAAgF;IAChF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
|
+
import { IMenuOption } from './IMenuOption';
|
|
3
|
+
import { createMenuType } from '../types';
|
|
4
|
+
export interface IMenuConfig {
|
|
5
|
+
menuType: ReturnType<typeof createMenuType>;
|
|
6
|
+
menuIcon: ReactElement;
|
|
7
|
+
priority?: number;
|
|
8
|
+
options: IMenuOption[];
|
|
9
|
+
isUserMenu?: boolean;
|
|
10
|
+
/** Optional callback invoked when the icon button is clicked. */
|
|
11
|
+
action?: () => void;
|
|
12
|
+
/** When true, the menu icon is hidden if there are no sub-options. Defaults to false. */
|
|
13
|
+
hideWhenEmpty?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Optional category identifier. When the TopMenu is configured with matching
|
|
16
|
+
* `categories`, this menu is rendered as a tile inside that category's
|
|
17
|
+
* mega-menu popover instead of inline in the AppBar. When omitted (or no
|
|
18
|
+
* matching category exists), the menu renders inline as a normal dropdown.
|
|
19
|
+
*/
|
|
20
|
+
category?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Optional human-readable label. When the menu is rendered as a tile inside
|
|
23
|
+
* a category popover with `showLabels` enabled, this is shown under the icon.
|
|
24
|
+
* Also used as the IconButton tooltip. Falls back to `menuType` when omitted.
|
|
25
|
+
*/
|
|
26
|
+
label?: string;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=IMenuConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IMenuConfig.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/interfaces/IMenuConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;IAC5C,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,yFAAyF;IACzF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { To } from 'react-router';
|
|
3
|
+
import { MenuType } from '../types/MenuType';
|
|
4
|
+
import { SxProps } from '@mui/system';
|
|
5
|
+
import { Theme } from '@mui/material';
|
|
6
|
+
export interface IMenuOption {
|
|
7
|
+
/**
|
|
8
|
+
* Unique identifier for the menu option
|
|
9
|
+
*/
|
|
10
|
+
id: string;
|
|
11
|
+
/**
|
|
12
|
+
* Text to display for the menu option
|
|
13
|
+
*/
|
|
14
|
+
label: string | ReactNode | Array<ReactNode>;
|
|
15
|
+
/**
|
|
16
|
+
* Where the menu option should be displayed
|
|
17
|
+
*/
|
|
18
|
+
includeOnMenus: MenuType[];
|
|
19
|
+
/**
|
|
20
|
+
* Display order for the menu option. Lower numbers are displayed first.
|
|
21
|
+
*/
|
|
22
|
+
index: number;
|
|
23
|
+
/**
|
|
24
|
+
* Whether the menu option is a divider
|
|
25
|
+
*/
|
|
26
|
+
divider?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Icon to display for the menu option
|
|
29
|
+
*/
|
|
30
|
+
icon?: ReactNode;
|
|
31
|
+
/**
|
|
32
|
+
* Link to navigate to when the menu option is clicked
|
|
33
|
+
* Mutually exclusive with `action`
|
|
34
|
+
* Can be a string, a react-router To object, or an object with pathname and optional state
|
|
35
|
+
*/
|
|
36
|
+
link?: To | {
|
|
37
|
+
pathname: string;
|
|
38
|
+
state?: unknown;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Function to execute when the menu option is clicked
|
|
42
|
+
* Mutually exclusive with `link`
|
|
43
|
+
* @returns void
|
|
44
|
+
*/
|
|
45
|
+
action?: () => void;
|
|
46
|
+
/**
|
|
47
|
+
* Whether the menu option requires authentication
|
|
48
|
+
* true = requires authentication
|
|
49
|
+
* false = requires unauthenticated
|
|
50
|
+
* undefined = always show
|
|
51
|
+
*/
|
|
52
|
+
requiresAuth: boolean | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* Whether the menu option requires the user to be a global admin
|
|
55
|
+
* true = only show to global admins
|
|
56
|
+
* undefined/false = no admin requirement
|
|
57
|
+
*/
|
|
58
|
+
requiresAdmin?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Custom filter function to determine if the menu option should be displayed
|
|
61
|
+
* @param option - The menu option to filter
|
|
62
|
+
* @returns boolean
|
|
63
|
+
*/
|
|
64
|
+
filter?: (option: IMenuOption) => boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Additional CSS properties
|
|
67
|
+
*/
|
|
68
|
+
additionalSx?: SxProps<Theme>;
|
|
69
|
+
/**
|
|
70
|
+
* Additional CSS properties for the side menu variant
|
|
71
|
+
*/
|
|
72
|
+
sideSx?: SxProps<Theme>;
|
|
73
|
+
/**
|
|
74
|
+
* Additional CSS properties for the side menu variant Icon sub item
|
|
75
|
+
*/
|
|
76
|
+
sideIconSx?: SxProps<Theme>;
|
|
77
|
+
/**
|
|
78
|
+
* Additional CSS properties for the side menu variant Text sub item
|
|
79
|
+
*/
|
|
80
|
+
sideTextSx?: SxProps<Theme>;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=IMenuOption.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IMenuOption.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/interfaces/IMenuOption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7C;;OAEG;IACH,cAAc,EAAE,QAAQ,EAAE,CAAC;IAC3B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;OAIG;IACH,IAAI,CAAC,EAAE,EAAE,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAClD;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;;;;OAKG;IACH,YAAY,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC;IAC1C;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACxB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5B;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CAC7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./IAppConfig"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./IMenuOption"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./IMenuConfig"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./ICategoryConfig"), exports);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare const mockAuthService: {
|
|
2
|
+
verifyToken: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
|
|
3
|
+
directLogin: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
|
|
4
|
+
emailChallengeLogin: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
|
|
5
|
+
refreshToken: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
|
|
6
|
+
register: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
|
|
7
|
+
requestEmailLogin: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
|
|
8
|
+
backupCodeLogin: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
|
|
9
|
+
changePassword: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
|
|
10
|
+
};
|
|
11
|
+
export declare const createAuthService: import("jest-mock").Mock<() => {
|
|
12
|
+
verifyToken: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
|
|
13
|
+
directLogin: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
|
|
14
|
+
emailChallengeLogin: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
|
|
15
|
+
refreshToken: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
|
|
16
|
+
register: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
|
|
17
|
+
requestEmailLogin: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
|
|
18
|
+
backupCodeLogin: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
|
|
19
|
+
changePassword: import("jest-mock").Mock<import("jest-mock").UnknownFunction>;
|
|
20
|
+
}>;
|
|
21
|
+
//# sourceMappingURL=authService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authService.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-express-suite-react-components/src/services/__mocks__/authService.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;;;;;;;;CAS3B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;EAAiC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createAuthService = exports.mockAuthService = void 0;
|
|
4
|
+
const globals_1 = require("@jest/globals");
|
|
5
|
+
exports.mockAuthService = {
|
|
6
|
+
verifyToken: globals_1.jest.fn(),
|
|
7
|
+
directLogin: globals_1.jest.fn(),
|
|
8
|
+
emailChallengeLogin: globals_1.jest.fn(),
|
|
9
|
+
refreshToken: globals_1.jest.fn(),
|
|
10
|
+
register: globals_1.jest.fn(),
|
|
11
|
+
requestEmailLogin: globals_1.jest.fn(),
|
|
12
|
+
backupCodeLogin: globals_1.jest.fn(),
|
|
13
|
+
changePassword: globals_1.jest.fn(),
|
|
14
|
+
};
|
|
15
|
+
exports.createAuthService = globals_1.jest.fn(() => exports.mockAuthService);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/services/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,uBAU9C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createApiClient = createApiClient;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
6
|
+
function createApiClient(baseURL) {
|
|
7
|
+
const api = axios_1.default.create({ baseURL });
|
|
8
|
+
api.interceptors.request.use((config) => {
|
|
9
|
+
const languageCode = localStorage.getItem('languageCode') ?? 'en-US';
|
|
10
|
+
config.headers['Accept-Language'] = languageCode;
|
|
11
|
+
return config;
|
|
12
|
+
});
|
|
13
|
+
return api;
|
|
14
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { EmailString, IECIESConfig, SecureString } from '@digitaldefiance/ecies-lib';
|
|
2
|
+
import { IConstants, IRequestUserDTO } from '@digitaldefiance/suite-core-lib';
|
|
3
|
+
import { Wallet } from '@ethereumjs/wallet';
|
|
4
|
+
interface ApiErrorResponse {
|
|
5
|
+
message?: string;
|
|
6
|
+
error?: string | {
|
|
7
|
+
message?: string;
|
|
8
|
+
statusCode?: number;
|
|
9
|
+
stack?: string;
|
|
10
|
+
};
|
|
11
|
+
errorType?: string;
|
|
12
|
+
field?: string;
|
|
13
|
+
errors?: Array<{
|
|
14
|
+
path: string;
|
|
15
|
+
msg: string;
|
|
16
|
+
}>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Extract a human-readable error string from an API error response.
|
|
20
|
+
* The backend may send `error` as either a plain string or an object
|
|
21
|
+
* with `{ message, statusCode, stack }`.
|
|
22
|
+
*/
|
|
23
|
+
export declare function extractErrorMessage(errorData: ApiErrorResponse): string | undefined;
|
|
24
|
+
export declare class AuthService {
|
|
25
|
+
private constants;
|
|
26
|
+
private baseUrl;
|
|
27
|
+
private readonly siteDomain;
|
|
28
|
+
private eciesService;
|
|
29
|
+
private cryptoCore;
|
|
30
|
+
private apiClient;
|
|
31
|
+
private authenticatedApiClient;
|
|
32
|
+
constructor(constants: IConstants, baseUrl: string, eciesConfig: IECIESConfig, siteDomain: string);
|
|
33
|
+
getSiteDomain(): string;
|
|
34
|
+
register(username: string, email: string, timezone: string, password?: string, mnemonic?: string, displayName?: string, directChallenge?: boolean): Promise<{
|
|
35
|
+
success: boolean;
|
|
36
|
+
message: string;
|
|
37
|
+
mnemonic: string;
|
|
38
|
+
} | {
|
|
39
|
+
error: string;
|
|
40
|
+
errorType?: string;
|
|
41
|
+
field?: string;
|
|
42
|
+
errors?: Array<Record<string, string>>;
|
|
43
|
+
}>;
|
|
44
|
+
directLogin(mnemonic: SecureString, username?: string, email?: EmailString): Promise<{
|
|
45
|
+
token: string;
|
|
46
|
+
user: IRequestUserDTO;
|
|
47
|
+
wallet: Wallet;
|
|
48
|
+
message: string;
|
|
49
|
+
} | {
|
|
50
|
+
pendingTotpToken: string;
|
|
51
|
+
} | {
|
|
52
|
+
error: string;
|
|
53
|
+
errorType?: string;
|
|
54
|
+
}>;
|
|
55
|
+
requestEmailLogin(username?: string, email?: EmailString): Promise<string | {
|
|
56
|
+
error: string;
|
|
57
|
+
errorType?: string;
|
|
58
|
+
}>;
|
|
59
|
+
emailChallengeLogin(mnemonic: SecureString, token: string, username?: string, email?: EmailString): Promise<{
|
|
60
|
+
token: string;
|
|
61
|
+
user: IRequestUserDTO;
|
|
62
|
+
wallet: Wallet;
|
|
63
|
+
message: string;
|
|
64
|
+
} | {
|
|
65
|
+
pendingTotpToken: string;
|
|
66
|
+
} | {
|
|
67
|
+
error: string;
|
|
68
|
+
errorType?: string;
|
|
69
|
+
}>;
|
|
70
|
+
verifyToken(token: string): Promise<IRequestUserDTO | {
|
|
71
|
+
error: string;
|
|
72
|
+
errorType?: string;
|
|
73
|
+
}>;
|
|
74
|
+
refreshToken(): Promise<{
|
|
75
|
+
token: string;
|
|
76
|
+
user: IRequestUserDTO;
|
|
77
|
+
}>;
|
|
78
|
+
changePassword(currentPassword: string, newPassword: string): Promise<{
|
|
79
|
+
success: boolean;
|
|
80
|
+
} | {
|
|
81
|
+
error: string;
|
|
82
|
+
errorType?: string;
|
|
83
|
+
}>;
|
|
84
|
+
backupCodeLogin(identifier: string, code: string, isEmail: boolean, recoverMnemonic: boolean, newPassword?: string): Promise<{
|
|
85
|
+
token: string;
|
|
86
|
+
codeCount: number;
|
|
87
|
+
user?: IRequestUserDTO;
|
|
88
|
+
mnemonic?: string;
|
|
89
|
+
message?: string;
|
|
90
|
+
} | {
|
|
91
|
+
error: string;
|
|
92
|
+
status?: number;
|
|
93
|
+
errorType?: string;
|
|
94
|
+
}>;
|
|
95
|
+
setupTotp(): Promise<{
|
|
96
|
+
provisioningUri: string;
|
|
97
|
+
secret: string;
|
|
98
|
+
} | {
|
|
99
|
+
error: string;
|
|
100
|
+
}>;
|
|
101
|
+
confirmTotp(code: string): Promise<{
|
|
102
|
+
success: boolean;
|
|
103
|
+
} | {
|
|
104
|
+
error: string;
|
|
105
|
+
}>;
|
|
106
|
+
disableTotp(code: string): Promise<{
|
|
107
|
+
success: boolean;
|
|
108
|
+
} | {
|
|
109
|
+
error: string;
|
|
110
|
+
}>;
|
|
111
|
+
resetTotp(code: string): Promise<{
|
|
112
|
+
provisioningUri: string;
|
|
113
|
+
secret: string;
|
|
114
|
+
} | {
|
|
115
|
+
error: string;
|
|
116
|
+
}>;
|
|
117
|
+
verifyTotpLogin(pendingTotpToken: string, code: string): Promise<{
|
|
118
|
+
token: string;
|
|
119
|
+
user: IRequestUserDTO;
|
|
120
|
+
} | {
|
|
121
|
+
error: string;
|
|
122
|
+
}>;
|
|
123
|
+
}
|
|
124
|
+
export declare const createAuthService: (constants: IConstants, baseUrl: string, eciesConfig: IECIESConfig, siteDomain: string) => AuthService;
|
|
125
|
+
export {};
|
|
126
|
+
//# sourceMappingURL=authService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authService.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/services/authService.ts"],"names":[],"mappings":"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"}
|