synapse-react-client 3.1.25 → 3.1.27
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/dist/components/styled/LeftRightPanel.d.ts +10 -0
- package/dist/components/styled/LeftRightPanel.js +45 -0
- package/dist/components/styled/LeftRightPanel.js.map +1 -0
- package/dist/containers/CardContainerLogic.js +4 -3
- package/dist/containers/CardContainerLogic.js.map +1 -1
- package/dist/containers/TextField.d.ts +10 -0
- package/dist/containers/TextField.js +28 -0
- package/dist/containers/TextField.js.map +1 -0
- package/dist/containers/access_requirement_list/AccessRequirementList.js +15 -12
- package/dist/containers/access_requirement_list/AccessRequirementList.js.map +1 -1
- package/dist/containers/access_requirement_list/managedACTAccess/CancelRequestDataAccess.d.ts +1 -1
- package/dist/containers/access_requirement_list/managedACTAccess/CancelRequestDataAccess.js +21 -16
- package/dist/containers/access_requirement_list/managedACTAccess/CancelRequestDataAccess.js.map +1 -1
- package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccess.js +1 -1
- package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccess.js.map +1 -1
- package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccessStep1.js +14 -9
- package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccessStep1.js.map +1 -1
- package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccessStep2.js +22 -18
- package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccessStep2.js.map +1 -1
- package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccessSuccess.js +11 -7
- package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccessSuccess.js.map +1 -1
- package/dist/containers/auth/AuthenticationMethodSelection.d.ts +17 -0
- package/dist/containers/auth/AuthenticationMethodSelection.js +49 -0
- package/dist/containers/auth/AuthenticationMethodSelection.js.map +1 -0
- package/dist/containers/auth/LoginFlowBackButton.d.ts +10 -0
- package/dist/containers/auth/LoginFlowBackButton.js +38 -0
- package/dist/containers/auth/LoginFlowBackButton.js.map +1 -0
- package/dist/containers/auth/LoginForm.d.ts +18 -0
- package/dist/containers/auth/LoginForm.js +32 -0
- package/dist/containers/auth/LoginForm.js.map +1 -0
- package/dist/containers/auth/LoginPage.d.ts +1 -2
- package/dist/containers/auth/LoginPage.js +82 -23
- package/dist/containers/auth/LoginPage.js.map +1 -1
- package/dist/containers/auth/RecoveryCodeForm.d.ts +8 -0
- package/dist/containers/auth/RecoveryCodeForm.js +30 -0
- package/dist/containers/auth/RecoveryCodeForm.js.map +1 -0
- package/dist/containers/auth/StandaloneLoginForm.d.ts +12 -0
- package/dist/containers/auth/StandaloneLoginForm.js +24 -0
- package/dist/containers/auth/StandaloneLoginForm.js.map +1 -0
- package/dist/containers/auth/TOTPForm.d.ts +2 -0
- package/dist/containers/auth/TOTPForm.js +4 -4
- package/dist/containers/auth/TOTPForm.js.map +1 -1
- package/dist/containers/auth/UsernamePasswordForm.d.ts +9 -0
- package/dist/containers/auth/UsernamePasswordForm.js +29 -0
- package/dist/containers/auth/UsernamePasswordForm.js.map +1 -0
- package/dist/containers/home_page/featured-data/QueryPerFacetPlotsCard.js +2 -1
- package/dist/containers/home_page/featured-data/QueryPerFacetPlotsCard.js.map +1 -1
- package/dist/containers/table/StandaloneQueryWrapper.js +2 -1
- package/dist/containers/table/StandaloneQueryWrapper.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/style/base/_core.scss +0 -13
- package/dist/style/components/_access-requirement-list.scss +0 -7
- package/dist/umd/synapse-react-client.development.css +0 -17
- package/dist/umd/synapse-react-client.development.css.map +2 -2
- package/dist/umd/synapse-react-client.development.js +5953 -6222
- package/dist/umd/synapse-react-client.development.js.map +4 -4
- package/dist/umd/synapse-react-client.production.min.css +1 -1
- package/dist/umd/synapse-react-client.production.min.js +80 -80
- package/dist/umd.index.d.ts +2 -2
- package/dist/umd.index.js +2 -2
- package/dist/umd.index.js.map +1 -1
- package/dist/utils/SynapseClient.d.ts +9 -0
- package/dist/utils/SynapseClient.js +19 -5
- package/dist/utils/SynapseClient.js.map +1 -1
- package/dist/utils/hooks/useDetectSSOCode.js +3 -3
- package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
- package/dist/utils/hooks/useLogin.d.ts +5 -5
- package/dist/utils/hooks/useLogin.js +69 -76
- package/dist/utils/hooks/useLogin.js.map +1 -1
- package/dist/utils/synapseTypes/LoginResponse.d.ts +0 -1
- package/dist/utils/synapseTypes/TotpSecret.d.ts +20 -0
- package/dist/utils/synapseTypes/TotpSecret.js +3 -0
- package/dist/utils/synapseTypes/TotpSecret.js.map +1 -0
- package/dist/utils/theme/palette/Palettes.d.ts +3 -1
- package/dist/utils/theme/palette/Palettes.js +16 -15
- package/dist/utils/theme/palette/Palettes.js.map +1 -1
- package/package.json +3 -1
- package/dist/assets/ButtonWithIcon.d.ts +0 -12
- package/dist/assets/ButtonWithIcon.js +0 -17
- package/dist/assets/ButtonWithIcon.js.map +0 -1
- package/dist/containers/auth/Login.d.ts +0 -27
- package/dist/containers/auth/Login.js +0 -96
- package/dist/containers/auth/Login.js.map +0 -1
|
@@ -4,6 +4,7 @@ var tslib_1 = require("tslib");
|
|
|
4
4
|
var react_1 = require("react");
|
|
5
5
|
var index_1 = require("../index");
|
|
6
6
|
var SynapseConstants_1 = require("../SynapseConstants");
|
|
7
|
+
var react_query_1 = require("react-query");
|
|
7
8
|
/**
|
|
8
9
|
* Stateful hook that manages logging into Synapse
|
|
9
10
|
*/
|
|
@@ -53,6 +54,10 @@ function useLogin(sessionCallback, twoFaErrorResponse) {
|
|
|
53
54
|
}
|
|
54
55
|
}
|
|
55
56
|
}, [twoFaErrorResponse]);
|
|
57
|
+
/* When the step changes, clear the old error message. */
|
|
58
|
+
(0, react_1.useEffect)(function () {
|
|
59
|
+
setErrorMessage(undefined);
|
|
60
|
+
}, [step]);
|
|
56
61
|
function finishLogin(loginResponse) {
|
|
57
62
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
58
63
|
return tslib_1.__generator(this, function (_a) {
|
|
@@ -70,96 +75,84 @@ function useLogin(sessionCallback, twoFaErrorResponse) {
|
|
|
70
75
|
});
|
|
71
76
|
});
|
|
72
77
|
}
|
|
73
|
-
var
|
|
74
|
-
var
|
|
75
|
-
return
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
_a.trys.push([1, 6, , 7]);
|
|
82
|
-
authenticationReceipt = localStorage.getItem(SynapseConstants_1.AUTHENTICATION_RECEIPT_LOCALSTORAGE_KEY);
|
|
83
|
-
return [4 /*yield*/, index_1.SynapseClient.login(username, password, authenticationReceipt)];
|
|
84
|
-
case 2:
|
|
85
|
-
data = _a.sent();
|
|
86
|
-
if (!('errorCode' in data)) return [3 /*break*/, 3];
|
|
87
|
-
setStep('VERIFICATION_CODE');
|
|
88
|
-
setTwoFaToken(data.twoFaToken);
|
|
89
|
-
setUserId(data.userId);
|
|
90
|
-
return [3 /*break*/, 5];
|
|
91
|
-
case 3: return [4 /*yield*/, finishLogin(data)];
|
|
92
|
-
case 4:
|
|
93
|
-
_a.sent();
|
|
94
|
-
_a.label = 5;
|
|
95
|
-
case 5: return [3 /*break*/, 7];
|
|
96
|
-
case 6:
|
|
97
|
-
err_1 = _a.sent();
|
|
98
|
-
setErrorMessage(err_1.reason);
|
|
99
|
-
return [3 /*break*/, 7];
|
|
100
|
-
case 7: return [2 /*return*/];
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
}); };
|
|
104
|
-
var submitOneTimePassword = function (code, otpType) {
|
|
105
|
-
if (otpType === void 0) { otpType = step === 'RECOVERY_CODE' ? 'RECOVERY_CODE' : 'TOTP'; }
|
|
106
|
-
return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
107
|
-
var request, loginResponse, e_1;
|
|
78
|
+
var _e = (0, react_query_1.useMutation)(function (_a) {
|
|
79
|
+
var username = _a.username, password = _a.password, authenticationReceipt = _a.authenticationReceipt;
|
|
80
|
+
return index_1.SynapseClient.login(username, password, authenticationReceipt);
|
|
81
|
+
}, {
|
|
82
|
+
onError: function (error) {
|
|
83
|
+
setErrorMessage(error.reason);
|
|
84
|
+
},
|
|
85
|
+
onSuccess: function (loginResponse) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
108
86
|
return tslib_1.__generator(this, function (_a) {
|
|
109
87
|
switch (_a.label) {
|
|
110
88
|
case 0:
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
request = {
|
|
118
|
-
userId: userId,
|
|
119
|
-
twoFaToken: twoFaToken,
|
|
120
|
-
otpCode: code,
|
|
121
|
-
otpType: otpType,
|
|
122
|
-
};
|
|
123
|
-
_a.label = 1;
|
|
124
|
-
case 1:
|
|
125
|
-
_a.trys.push([1, 4, , 5]);
|
|
126
|
-
return [4 /*yield*/, index_1.SynapseClient.loginWith2fa(request)];
|
|
89
|
+
if (!('errorCode' in loginResponse)) return [3 /*break*/, 1];
|
|
90
|
+
setStep('VERIFICATION_CODE');
|
|
91
|
+
setTwoFaToken(loginResponse.twoFaToken);
|
|
92
|
+
setUserId(loginResponse.userId);
|
|
93
|
+
return [3 /*break*/, 3];
|
|
94
|
+
case 1: return [4 /*yield*/, finishLogin(loginResponse)];
|
|
127
95
|
case 2:
|
|
128
|
-
loginResponse = _a.sent();
|
|
129
|
-
return [4 /*yield*/, finishLogin(loginResponse)];
|
|
130
|
-
case 3:
|
|
131
96
|
_a.sent();
|
|
132
|
-
|
|
133
|
-
case
|
|
134
|
-
e_1 = _a.sent();
|
|
135
|
-
setErrorMessage(e_1.reason);
|
|
136
|
-
if (
|
|
137
|
-
// The twoFaToken wasn't transmitted correctly
|
|
138
|
-
e_1.reason.includes('The provided twoFaToken is invalid') ||
|
|
139
|
-
// The user waited too long to enter the code.
|
|
140
|
-
e_1.reason.includes('Token has expired')) {
|
|
141
|
-
console.warn(e_1);
|
|
142
|
-
// Instruct the user refresh to start over.
|
|
143
|
-
setErrorMessage('Something went wrong. Refresh the page and try again.');
|
|
144
|
-
// If the 2FA token is in the search parameters, remove it so the user doesn't just get the same error again.
|
|
145
|
-
if (window.location.href.includes('twoFaToken')) {
|
|
146
|
-
window.history.replaceState({}, document.title,
|
|
147
|
-
// using regex because SWC hashbang doesn't work with URLSearchParams
|
|
148
|
-
window.location.href.replaceAll(/(twoFaToken|userId)=[^&]*&?/g, ''));
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
return [3 /*break*/, 5];
|
|
152
|
-
case 5: return [2 /*return*/];
|
|
97
|
+
_a.label = 3;
|
|
98
|
+
case 3: return [2 /*return*/];
|
|
153
99
|
}
|
|
154
100
|
});
|
|
101
|
+
}); },
|
|
102
|
+
}), mutateLoginWithUsernameAndPassword = _e.mutate, isLoadingLoginWithUsernameAndPassword = _e.isLoading;
|
|
103
|
+
var _f = (0, react_query_1.useMutation)(index_1.SynapseClient.loginWith2fa, {
|
|
104
|
+
onError: function (e) {
|
|
105
|
+
setErrorMessage(e.reason);
|
|
106
|
+
if (
|
|
107
|
+
// The twoFaToken wasn't transmitted correctly
|
|
108
|
+
e.reason.includes('The provided twoFaToken is invalid') ||
|
|
109
|
+
// The user waited too long to enter the code.
|
|
110
|
+
e.reason.includes('Token has expired')) {
|
|
111
|
+
console.warn(e);
|
|
112
|
+
// Instruct the user refresh to start over.
|
|
113
|
+
setErrorMessage('Something went wrong. Refresh the page and try again.');
|
|
114
|
+
// If the 2FA token is in the search parameters, remove it so the user doesn't just get the same error again.
|
|
115
|
+
if (window.location.href.includes('twoFaToken')) {
|
|
116
|
+
window.history.replaceState({}, document.title,
|
|
117
|
+
// using regex because SWC hashbang doesn't work with URLSearchParams
|
|
118
|
+
window.location.href.replaceAll(/(twoFaToken|userId)=[^&]*&?/g, ''));
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
onSuccess: finishLogin,
|
|
123
|
+
}), mutateLoginWith2FACode = _f.mutate, isLoadingLoginWith2FACode = _f.isLoading;
|
|
124
|
+
var submitUsernameAndPassword = function (username, password) {
|
|
125
|
+
setErrorMessage(undefined);
|
|
126
|
+
var authenticationReceipt = localStorage.getItem(SynapseConstants_1.AUTHENTICATION_RECEIPT_LOCALSTORAGE_KEY);
|
|
127
|
+
mutateLoginWithUsernameAndPassword({
|
|
128
|
+
username: username,
|
|
129
|
+
password: password,
|
|
130
|
+
authenticationReceipt: authenticationReceipt,
|
|
155
131
|
});
|
|
156
132
|
};
|
|
133
|
+
var submitOneTimePassword = function (code, otpType) {
|
|
134
|
+
if (otpType === void 0) { otpType = step === 'RECOVERY_CODE' ? 'RECOVERY_CODE' : 'TOTP'; }
|
|
135
|
+
setErrorMessage(undefined);
|
|
136
|
+
if (twoFaToken == null || userId == null) {
|
|
137
|
+
// This could happen if the 2FA component exists on its own route, and the user directly navigates to it without first logging in with credentials/OAuth
|
|
138
|
+
setErrorMessage('You did not first log in with your password or a third-party identity provider.');
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
var request = {
|
|
142
|
+
userId: userId,
|
|
143
|
+
twoFaToken: twoFaToken,
|
|
144
|
+
otpCode: code,
|
|
145
|
+
otpType: otpType,
|
|
146
|
+
};
|
|
147
|
+
mutateLoginWith2FACode(request);
|
|
148
|
+
};
|
|
157
149
|
return {
|
|
158
150
|
step: step,
|
|
159
|
-
|
|
151
|
+
onStepChange: setStep,
|
|
160
152
|
submitUsernameAndPassword: submitUsernameAndPassword,
|
|
161
153
|
submitOneTimePassword: submitOneTimePassword,
|
|
162
154
|
errorMessage: errorMessage,
|
|
155
|
+
isLoading: isLoadingLoginWithUsernameAndPassword || isLoadingLoginWith2FACode,
|
|
163
156
|
};
|
|
164
157
|
}
|
|
165
158
|
exports.default = useLogin;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLogin.js","sourceRoot":"","sources":["../../../src/lib/utils/hooks/useLogin.ts"],"names":[],"mappings":";;;AAAA,+BAAqE;AACrE,kCAAwC;AAOxC,wDAA6E;
|
|
1
|
+
{"version":3,"file":"useLogin.js","sourceRoot":"","sources":["../../../src/lib/utils/hooks/useLogin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* https://rest-docs.synapse.org/rest/org/sagebionetworks/repo/model/auth/TotpSecret.html
|
|
3
|
+
*/
|
|
4
|
+
export type TotpSecret = {
|
|
5
|
+
secretId: string;
|
|
6
|
+
secret: string;
|
|
7
|
+
alg: string;
|
|
8
|
+
digits: number;
|
|
9
|
+
period: number;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* https://rest-docs.synapse.org/rest/org/sagebionetworks/repo/model/auth/TotpSecretActivationRequest.html
|
|
13
|
+
*/
|
|
14
|
+
export type TotpSecretActivationRequest = {
|
|
15
|
+
secretId: string;
|
|
16
|
+
totp: string;
|
|
17
|
+
};
|
|
18
|
+
export type TwoFactorAuthStatus = {
|
|
19
|
+
status: 'ENABLED' | 'DISABLED';
|
|
20
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TotpSecret.js","sourceRoot":"","sources":["../../../src/lib/utils/synapseTypes/TotpSecret.ts"],"names":[],"mappings":""}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { PaletteOptions } from '@mui/material';
|
|
1
|
+
import { PaletteColorOptions, PaletteOptions } from '@mui/material';
|
|
2
|
+
import tinycolor from 'tinycolor2';
|
|
3
|
+
export declare const generatePalette: (mainColor: tinycolor.ColorInput, specificColors?: PaletteColorOptions) => PaletteColorOptions;
|
|
2
4
|
/**
|
|
3
5
|
* Default colors here match the default colors in _variables.scss. We now have a single point of control
|
|
4
6
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.sageBionetworksPalette = exports.cancerComplexityPortalPalette = exports.crcResearcherPortalPalette = exports.digitalHealthPortalPalette = exports.stopAdPortalPalette = exports.psychEncodePortalPalette = exports.bsmnPortalPalette = exports.nfPortalPalette = exports.adKnowledgePortalPalette = exports.arkPortalPalette = exports.mtbPalette = exports.palette = void 0;
|
|
3
|
+
exports.sageBionetworksPalette = exports.cancerComplexityPortalPalette = exports.crcResearcherPortalPalette = exports.digitalHealthPortalPalette = exports.stopAdPortalPalette = exports.psychEncodePortalPalette = exports.bsmnPortalPalette = exports.nfPortalPalette = exports.adKnowledgePortalPalette = exports.arkPortalPalette = exports.mtbPalette = exports.palette = exports.generatePalette = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var tinycolor2_1 = tslib_1.__importDefault(require("tinycolor2"));
|
|
6
6
|
var generatePalette = function (mainColor, specificColors) {
|
|
@@ -8,11 +8,12 @@ var generatePalette = function (mainColor, specificColors) {
|
|
|
8
8
|
(0, tinycolor2_1.default)(mainColor).desaturate(1).lighten(5).toString(), main: (0, tinycolor2_1.default)(mainColor).toString(), dark: (specificColors && specificColors[600]) ||
|
|
9
9
|
(0, tinycolor2_1.default)(mainColor).saturate(5).darken(4).toString() }, specificColors);
|
|
10
10
|
};
|
|
11
|
+
exports.generatePalette = generatePalette;
|
|
11
12
|
/**
|
|
12
13
|
* Default colors here match the default colors in _variables.scss. We now have a single point of control
|
|
13
14
|
*/
|
|
14
15
|
exports.palette = {
|
|
15
|
-
primary: generatePalette('#395979', {
|
|
16
|
+
primary: (0, exports.generatePalette)('#395979', {
|
|
16
17
|
100: '#d7dee4',
|
|
17
18
|
200: '#b0bdc9',
|
|
18
19
|
300: '#889baf',
|
|
@@ -23,7 +24,7 @@ exports.palette = {
|
|
|
23
24
|
800: '#172430',
|
|
24
25
|
900: '#0b1218',
|
|
25
26
|
}),
|
|
26
|
-
secondary: generatePalette('#469285', {
|
|
27
|
+
secondary: (0, exports.generatePalette)('#469285', {
|
|
27
28
|
100: '#dae9e7',
|
|
28
29
|
200: '#b5d3ce',
|
|
29
30
|
300: '#90beb6',
|
|
@@ -34,7 +35,7 @@ exports.palette = {
|
|
|
34
35
|
800: '#1c3a35',
|
|
35
36
|
900: '#0e1d1b',
|
|
36
37
|
}),
|
|
37
|
-
tertiary: generatePalette('#EDC766', {
|
|
38
|
+
tertiary: (0, exports.generatePalette)('#EDC766', {
|
|
38
39
|
100: '#fbf4e0',
|
|
39
40
|
200: '#f8e9c2',
|
|
40
41
|
300: '#f4dda3',
|
|
@@ -66,16 +67,16 @@ exports.palette = {
|
|
|
66
67
|
secondary: '#4a5056', // gray-800
|
|
67
68
|
},
|
|
68
69
|
};
|
|
69
|
-
exports.mtbPalette = tslib_1.__assign(tslib_1.__assign({}, exports.palette), { primary: generatePalette('#4F527D'), secondary: generatePalette('#C22E49') });
|
|
70
|
-
exports.arkPortalPalette = tslib_1.__assign(tslib_1.__assign({}, exports.palette), { primary: generatePalette('#e79776'), secondary: generatePalette('#e79776') });
|
|
71
|
-
exports.adKnowledgePortalPalette = tslib_1.__assign(tslib_1.__assign({}, exports.palette), { primary: generatePalette('#4d5491'), secondary: generatePalette('#2f8e94') });
|
|
72
|
-
exports.nfPortalPalette = tslib_1.__assign(tslib_1.__assign({}, exports.palette), { primary: generatePalette('#125e81'), secondary: generatePalette('#404b63') });
|
|
73
|
-
exports.bsmnPortalPalette = tslib_1.__assign(tslib_1.__assign({}, exports.palette), { primary: generatePalette('#00255c'), secondary: generatePalette('#2699a7') });
|
|
74
|
-
exports.psychEncodePortalPalette = tslib_1.__assign(tslib_1.__assign({}, exports.palette), { primary: generatePalette('#00565e'), secondary: generatePalette('#f7a700') });
|
|
75
|
-
exports.stopAdPortalPalette = tslib_1.__assign(tslib_1.__assign({}, exports.palette), { primary: generatePalette('#4d5491'), secondary: generatePalette('#4d5491') });
|
|
76
|
-
exports.digitalHealthPortalPalette = tslib_1.__assign(tslib_1.__assign({}, exports.palette), { primary: generatePalette('#3e7293'), secondary: generatePalette('#164767') });
|
|
77
|
-
exports.crcResearcherPortalPalette = tslib_1.__assign(tslib_1.__assign({}, exports.palette), { primary: generatePalette('#0085ff'), secondary: generatePalette('#0085ff') });
|
|
78
|
-
exports.cancerComplexityPortalPalette = tslib_1.__assign(tslib_1.__assign({}, exports.palette), { primary: generatePalette('#38568e'), secondary: generatePalette('#47337d') });
|
|
79
|
-
exports.sageBionetworksPalette = tslib_1.__assign(tslib_1.__assign({}, exports.palette), { primary: generatePalette('#24AB9F'), secondary: generatePalette('#F5B33C') });
|
|
70
|
+
exports.mtbPalette = tslib_1.__assign(tslib_1.__assign({}, exports.palette), { primary: (0, exports.generatePalette)('#4F527D'), secondary: (0, exports.generatePalette)('#C22E49') });
|
|
71
|
+
exports.arkPortalPalette = tslib_1.__assign(tslib_1.__assign({}, exports.palette), { primary: (0, exports.generatePalette)('#e79776'), secondary: (0, exports.generatePalette)('#e79776') });
|
|
72
|
+
exports.adKnowledgePortalPalette = tslib_1.__assign(tslib_1.__assign({}, exports.palette), { primary: (0, exports.generatePalette)('#4d5491'), secondary: (0, exports.generatePalette)('#2f8e94') });
|
|
73
|
+
exports.nfPortalPalette = tslib_1.__assign(tslib_1.__assign({}, exports.palette), { primary: (0, exports.generatePalette)('#125e81'), secondary: (0, exports.generatePalette)('#404b63') });
|
|
74
|
+
exports.bsmnPortalPalette = tslib_1.__assign(tslib_1.__assign({}, exports.palette), { primary: (0, exports.generatePalette)('#00255c'), secondary: (0, exports.generatePalette)('#2699a7') });
|
|
75
|
+
exports.psychEncodePortalPalette = tslib_1.__assign(tslib_1.__assign({}, exports.palette), { primary: (0, exports.generatePalette)('#00565e'), secondary: (0, exports.generatePalette)('#f7a700') });
|
|
76
|
+
exports.stopAdPortalPalette = tslib_1.__assign(tslib_1.__assign({}, exports.palette), { primary: (0, exports.generatePalette)('#4d5491'), secondary: (0, exports.generatePalette)('#4d5491') });
|
|
77
|
+
exports.digitalHealthPortalPalette = tslib_1.__assign(tslib_1.__assign({}, exports.palette), { primary: (0, exports.generatePalette)('#3e7293'), secondary: (0, exports.generatePalette)('#164767') });
|
|
78
|
+
exports.crcResearcherPortalPalette = tslib_1.__assign(tslib_1.__assign({}, exports.palette), { primary: (0, exports.generatePalette)('#0085ff'), secondary: (0, exports.generatePalette)('#0085ff') });
|
|
79
|
+
exports.cancerComplexityPortalPalette = tslib_1.__assign(tslib_1.__assign({}, exports.palette), { primary: (0, exports.generatePalette)('#38568e'), secondary: (0, exports.generatePalette)('#47337d') });
|
|
80
|
+
exports.sageBionetworksPalette = tslib_1.__assign(tslib_1.__assign({}, exports.palette), { primary: (0, exports.generatePalette)('#24AB9F'), secondary: (0, exports.generatePalette)('#F5B33C') });
|
|
80
81
|
exports.default = exports.palette;
|
|
81
82
|
//# sourceMappingURL=Palettes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Palettes.js","sourceRoot":"","sources":["../../../../src/lib/utils/theme/palette/Palettes.ts"],"names":[],"mappings":";;;;AACA,kEAAkC;
|
|
1
|
+
{"version":3,"file":"Palettes.js","sourceRoot":"","sources":["../../../../src/lib/utils/theme/palette/Palettes.ts"],"names":[],"mappings":";;;;AACA,kEAAkC;AAE3B,IAAM,eAAe,GAAG,UAC7B,SAA+B,EAC/B,cAAoC;IAEpC,0BACE,GAAG,EAAE,IAAA,oBAAS,EAAC,SAAS,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,EAC/D,GAAG,EAAE,IAAA,oBAAS,EAAC,SAAS,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,EAC/D,GAAG,EAAE,IAAA,oBAAS,EAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,EAC9D,GAAG,EAAE,IAAA,oBAAS,EAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAC7D,GAAG,EAAE,IAAA,oBAAS,EAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EACpC,GAAG,EAAE,IAAA,oBAAS,EAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAC1D,GAAG,EAAE,IAAA,oBAAS,EAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAC3D,GAAG,EAAE,IAAA,oBAAS,EAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,EAC5D,GAAG,EAAE,IAAA,oBAAS,EAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,EAC5D,KAAK,EACH,CAAC,cAAc,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC;YACvC,IAAA,oBAAS,EAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAC1D,IAAI,EAAE,IAAA,oBAAS,EAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EACrC,IAAI,EACF,CAAC,cAAc,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC;YACvC,IAAA,oBAAS,EAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,IACpD,cAAc,EAClB;AACH,CAAC,CAAA;AAvBY,QAAA,eAAe,mBAuB3B;AAED;;GAEG;AACU,QAAA,OAAO,GAAmB;IACrC,OAAO,EAAE,IAAA,uBAAe,EAAC,SAAS,EAAE;QAClC,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;KACf,CAAC;IACF,SAAS,EAAE,IAAA,uBAAe,EAAC,SAAS,EAAE;QACpC,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;KACf,CAAC;IACF,QAAQ,EAAE,IAAA,uBAAe,EAAC,SAAS,EAAE;QACnC,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;KACf,CAAC;IACF,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;KACf;IACD,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC5B,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IACzB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC1B,IAAI,EAAE;QACJ,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,SAAS,EAAE,WAAW;KAClC;CACF,CAAA;AAEY,QAAA,UAAU,yCAClB,eAAO,KACV,OAAO,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,EACnC,SAAS,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,IACtC;AAEY,QAAA,gBAAgB,yCACxB,eAAO,KACV,OAAO,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,EACnC,SAAS,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,IACtC;AAEY,QAAA,wBAAwB,yCAChC,eAAO,KACV,OAAO,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,EACnC,SAAS,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,IACtC;AAEY,QAAA,eAAe,yCACvB,eAAO,KACV,OAAO,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,EACnC,SAAS,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,IACtC;AAEY,QAAA,iBAAiB,yCACzB,eAAO,KACV,OAAO,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,EACnC,SAAS,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,IACtC;AAEY,QAAA,wBAAwB,yCAChC,eAAO,KACV,OAAO,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,EACnC,SAAS,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,IACtC;AAEY,QAAA,mBAAmB,yCAC3B,eAAO,KACV,OAAO,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,EACnC,SAAS,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,IACtC;AAEY,QAAA,0BAA0B,yCAClC,eAAO,KACV,OAAO,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,EACnC,SAAS,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,IACtC;AAEY,QAAA,0BAA0B,yCAClC,eAAO,KACV,OAAO,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,EACnC,SAAS,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,IACtC;AAEY,QAAA,6BAA6B,yCACrC,eAAO,KACV,OAAO,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,EACnC,SAAS,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,IACtC;AAEY,QAAA,sBAAsB,yCAC9B,eAAO,KACV,OAAO,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,EACnC,SAAS,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,IACtC;AAED,kBAAe,eAAO,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "synapse-react-client",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.27",
|
|
4
4
|
"private": false,
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -61,6 +61,7 @@
|
|
|
61
61
|
"mui-one-time-password-input": "^1.0.4",
|
|
62
62
|
"plotly.js-basic-dist": "^2.11.1",
|
|
63
63
|
"pluralize": "^8.0.0",
|
|
64
|
+
"qrcode": "^1.5.1",
|
|
64
65
|
"raf": "^3.4.1",
|
|
65
66
|
"react-app-polyfill": "^3.0.0",
|
|
66
67
|
"react-bootstrap": "^1.5.2",
|
|
@@ -145,6 +146,7 @@
|
|
|
145
146
|
"@types/plotly.js": "^1.54.20",
|
|
146
147
|
"@types/plotly.js-basic-dist": "^1.54.0",
|
|
147
148
|
"@types/pluralize": "^0.0.29",
|
|
149
|
+
"@types/qrcode": "^1.5.0",
|
|
148
150
|
"@types/react": "^18.0.27",
|
|
149
151
|
"@types/react-addons-css-transition-group": "^15.0.5",
|
|
150
152
|
"@types/react-dom": "^18.0.6",
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { ButtonProps } from 'react-bootstrap';
|
|
3
|
-
type ButtonWithIconProps = {
|
|
4
|
-
children: React.ReactNode;
|
|
5
|
-
icon: React.ReactNode;
|
|
6
|
-
};
|
|
7
|
-
/**
|
|
8
|
-
* A button with center-aligned content (typically text) that displays a left-aligned icon.
|
|
9
|
-
* @param param0
|
|
10
|
-
*/
|
|
11
|
-
declare const ButtonWithIcon: React.FunctionComponent<ButtonWithIconProps & ButtonProps>;
|
|
12
|
-
export default ButtonWithIcon;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var tslib_1 = require("tslib");
|
|
4
|
-
var React = tslib_1.__importStar(require("react"));
|
|
5
|
-
var react_bootstrap_1 = require("react-bootstrap");
|
|
6
|
-
/**
|
|
7
|
-
* A button with center-aligned content (typically text) that displays a left-aligned icon.
|
|
8
|
-
* @param param0
|
|
9
|
-
*/
|
|
10
|
-
var ButtonWithIcon = function (_a) {
|
|
11
|
-
var children = _a.children, icon = _a.icon, rest = tslib_1.__rest(_a, ["children", "icon"]);
|
|
12
|
-
return (React.createElement(react_bootstrap_1.Button, tslib_1.__assign({ className: "ButtonWithIcon" }, rest), React.createElement(React.Fragment, null,
|
|
13
|
-
React.createElement("div", { className: "ButtonWithIcon__Icon" }, icon),
|
|
14
|
-
children)));
|
|
15
|
-
};
|
|
16
|
-
exports.default = ButtonWithIcon;
|
|
17
|
-
//# sourceMappingURL=ButtonWithIcon.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonWithIcon.js","sourceRoot":"","sources":["../../src/lib/assets/ButtonWithIcon.tsx"],"names":[],"mappings":";;;AAAA,mDAA8B;AAC9B,mDAAqD;AAOrD;;;GAGG;AACH,IAAM,cAAc,GAEhB,UAAC,EAA0D;IAAxD,IAAA,QAAQ,cAAA,EAAE,IAAI,UAAA,EAAK,IAAI,sBAAzB,oBAA2B,CAAF;IAC5B,OAAO,CACL,oBAAC,wBAAM,qBAAC,SAAS,EAAC,gBAAgB,IAAK,IAAI,GAEvC;QACE,6BAAK,SAAS,EAAC,sBAAsB,IAAE,IAAI,CAAO;QACjD,QAAQ,CACR,CAEE,CACV,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,cAAc,CAAA"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { TwoFactorAuthErrorResponse } from '../../utils/synapseTypes/ErrorResponse';
|
|
3
|
-
export declare const PROVIDERS: {
|
|
4
|
-
GOOGLE: string;
|
|
5
|
-
ORCID: string;
|
|
6
|
-
};
|
|
7
|
-
type Props = {
|
|
8
|
-
ssoRedirectUrl?: string;
|
|
9
|
-
sessionCallback: () => void;
|
|
10
|
-
registerAccountUrl?: string;
|
|
11
|
-
resetPasswordUrl?: string;
|
|
12
|
-
onBeginOAuthSignIn?: () => void;
|
|
13
|
-
handleIsOnUsernameOrPasswordScreen?: React.Dispatch<React.SetStateAction<boolean>>;
|
|
14
|
-
showUsernameOrPassword?: boolean | undefined;
|
|
15
|
-
renderBackButton?: boolean;
|
|
16
|
-
twoFactorAuthenticationRequired?: TwoFactorAuthErrorResponse;
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* Demo of user session, show login screen and handling user login submission.
|
|
20
|
-
*
|
|
21
|
-
* To support Google SSO in your portal, you must add your domain to the Authorized Redirect URIs
|
|
22
|
-
* for Synapse authentication.
|
|
23
|
-
* This can be done by visiting https://sagebionetworks.jira.com/servicedesk/customer/portal/9 to set up a collaboration.
|
|
24
|
-
* Synapse engineers must add your redirect URL in the Google API console found at https://console.cloud.google.com/ for this functionality to work.
|
|
25
|
-
*/
|
|
26
|
-
declare function Login(props: Props): JSX.Element;
|
|
27
|
-
export default Login;
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PROVIDERS = void 0;
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
|
-
var React = tslib_1.__importStar(require("react"));
|
|
6
|
-
var react_bootstrap_1 = require("react-bootstrap");
|
|
7
|
-
var ButtonWithIcon_1 = tslib_1.__importDefault(require("../../assets/ButtonWithIcon"));
|
|
8
|
-
var utils_1 = require("../../utils");
|
|
9
|
-
var getEndpoint_1 = require("../../utils/functions/getEndpoint");
|
|
10
|
-
var GoogleIcon24_1 = require("../../assets/GoogleIcon24");
|
|
11
|
-
var material_1 = require("@mui/material");
|
|
12
|
-
var IconSvg_1 = tslib_1.__importDefault(require("../IconSvg"));
|
|
13
|
-
var FullWidthAlert_1 = tslib_1.__importDefault(require("../FullWidthAlert"));
|
|
14
|
-
var react_1 = require("react");
|
|
15
|
-
var useLogin_1 = tslib_1.__importDefault(require("../../utils/hooks/useLogin"));
|
|
16
|
-
var TOTPForm_1 = tslib_1.__importDefault(require("./TOTPForm"));
|
|
17
|
-
exports.PROVIDERS = {
|
|
18
|
-
GOOGLE: 'GOOGLE_OAUTH_2_0',
|
|
19
|
-
ORCID: 'ORCID',
|
|
20
|
-
};
|
|
21
|
-
/**
|
|
22
|
-
* Demo of user session, show login screen and handling user login submission.
|
|
23
|
-
*
|
|
24
|
-
* To support Google SSO in your portal, you must add your domain to the Authorized Redirect URIs
|
|
25
|
-
* for Synapse authentication.
|
|
26
|
-
* This can be done by visiting https://sagebionetworks.jira.com/servicedesk/customer/portal/9 to set up a collaboration.
|
|
27
|
-
* Synapse engineers must add your redirect URL in the Google API console found at https://console.cloud.google.com/ for this functionality to work.
|
|
28
|
-
*/
|
|
29
|
-
function Login(props) {
|
|
30
|
-
var _a = (0, react_1.useState)(''), username = _a[0], setUsername = _a[1];
|
|
31
|
-
var _b = (0, react_1.useState)(''), password = _b[0], setPassword = _b[1];
|
|
32
|
-
var ssoRedirectUrl = props.ssoRedirectUrl, sessionCallback = props.sessionCallback, _c = props.registerAccountUrl, registerAccountUrl = _c === void 0 ? "".concat((0, getEndpoint_1.getEndpoint)(getEndpoint_1.BackendDestinationEnum.PORTAL_ENDPOINT), "#!RegisterAccount:0") : _c, _d = props.resetPasswordUrl, resetPasswordUrl = _d === void 0 ? "".concat((0, getEndpoint_1.getEndpoint)(getEndpoint_1.BackendDestinationEnum.PORTAL_ENDPOINT), "#!PasswordReset:0") : _d;
|
|
33
|
-
var _e = (0, useLogin_1.default)(sessionCallback, props.twoFactorAuthenticationRequired), step = _e.step, setStep = _e.setStep, submitUsernameAndPassword = _e.submitUsernameAndPassword, submitOneTimePassword = _e.submitOneTimePassword, errorMessage = _e.errorMessage;
|
|
34
|
-
var renderBackButton = props.renderBackButton &&
|
|
35
|
-
(step === 'USERNAME_PASSWORD' || step === 'VERIFICATION_CODE');
|
|
36
|
-
/**
|
|
37
|
-
* Handle user login on click
|
|
38
|
-
*/
|
|
39
|
-
function handleLogin(clickEvent) {
|
|
40
|
-
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
41
|
-
return tslib_1.__generator(this, function (_a) {
|
|
42
|
-
switch (_a.label) {
|
|
43
|
-
case 0:
|
|
44
|
-
clickEvent.preventDefault(); // avoid page refresh
|
|
45
|
-
return [4 /*yield*/, submitUsernameAndPassword(username, password)];
|
|
46
|
-
case 1:
|
|
47
|
-
_a.sent();
|
|
48
|
-
return [2 /*return*/];
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
function onGoogleSignIn(event) {
|
|
54
|
-
if (props.onBeginOAuthSignIn) {
|
|
55
|
-
props.onBeginOAuthSignIn();
|
|
56
|
-
}
|
|
57
|
-
event.preventDefault();
|
|
58
|
-
var redirectUrl = ssoRedirectUrl
|
|
59
|
-
? "".concat(ssoRedirectUrl).concat(exports.PROVIDERS.GOOGLE)
|
|
60
|
-
: "".concat(utils_1.SynapseClient.getRootURL(), "?provider=").concat(exports.PROVIDERS.GOOGLE);
|
|
61
|
-
utils_1.SynapseClient.oAuthUrlRequest(exports.PROVIDERS.GOOGLE, redirectUrl)
|
|
62
|
-
.then(function (data) {
|
|
63
|
-
// Send the user to the authorization URL
|
|
64
|
-
window.location = data.authorizationUrl;
|
|
65
|
-
})
|
|
66
|
-
.catch(function (err) {
|
|
67
|
-
console.log('Error on oAuth url ', err);
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
return (React.createElement("div", { id: "loginPage", className: "container LoginComponent SRC-syn-border-spacing bootstrap-4-backport" },
|
|
71
|
-
renderBackButton && (React.createElement(material_1.IconButton, { type: "button", onClick: function () { return setStep('CHOOSE_AUTH_METHOD'); } },
|
|
72
|
-
React.createElement(IconSvg_1.default, { icon: "arrowBack" }))),
|
|
73
|
-
React.createElement("div", { className: step === 'CHOOSE_AUTH_METHOD' ? '' : 'hide-component' },
|
|
74
|
-
React.createElement("form", null,
|
|
75
|
-
React.createElement(ButtonWithIcon_1.default, { variant: "white", onClick: onGoogleSignIn, className: "SRC-signin-button", icon: React.createElement(GoogleIcon24_1.GoogleIcon24, null) }, "Sign in with Google")),
|
|
76
|
-
React.createElement(ButtonWithIcon_1.default, { variant: "white", className: "SRC-signin-button", icon: React.createElement(IconSvg_1.default, { icon: "email" }), onClick: function () { return setStep('USERNAME_PASSWORD'); } }, "Sign in with your email")),
|
|
77
|
-
React.createElement(react_bootstrap_1.Form, { className: step === 'USERNAME_PASSWORD' ? '' : 'hide-component', onSubmit: function (e) {
|
|
78
|
-
handleLogin(e);
|
|
79
|
-
} },
|
|
80
|
-
React.createElement("label", { htmlFor: 'username' }, "Username or Email Address"),
|
|
81
|
-
React.createElement(react_bootstrap_1.Form.Control, { required: true, autoComplete: "username", placeholder: "Username or Email Address", className: "LoginComponent__Input", id: "username", name: "username", type: "text", value: username, onChange: function (e) { return setUsername(e.target.value); } }),
|
|
82
|
-
React.createElement("label", { htmlFor: 'current-password' }, "Password"),
|
|
83
|
-
React.createElement(react_bootstrap_1.Form.Control, { required: true, autoComplete: "current-password", placeholder: "Password", className: "LoginComponent__Input", id: "current-password", name: "password", type: "password", value: password, onChange: function (e) { return setPassword(e.target.value); } }),
|
|
84
|
-
React.createElement(material_1.Link, { href: resetPasswordUrl }, "Forgot password?"),
|
|
85
|
-
React.createElement(material_1.Button, { onClick: function (e) {
|
|
86
|
-
handleLogin(e);
|
|
87
|
-
}, type: "submit", color: "primary", variant: "contained", className: "SRC-login-button SRC-marginBottomTen" }, "Sign in")),
|
|
88
|
-
step === 'VERIFICATION_CODE' && (React.createElement(TOTPForm_1.default, { onSubmit: function (totp) {
|
|
89
|
-
submitOneTimePassword(totp);
|
|
90
|
-
} })),
|
|
91
|
-
(step === 'CHOOSE_AUTH_METHOD' || step === 'USERNAME_PASSWORD') && (React.createElement("div", { className: 'SRC-center-text' },
|
|
92
|
-
React.createElement(material_1.Link, { href: registerAccountUrl }, "Don't have an account? Create one now"))),
|
|
93
|
-
errorMessage && (React.createElement(FullWidthAlert_1.default, { variant: 'warning', isGlobal: false, description: errorMessage }))));
|
|
94
|
-
}
|
|
95
|
-
exports.default = Login;
|
|
96
|
-
//# sourceMappingURL=Login.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Login.js","sourceRoot":"","sources":["../../../src/lib/containers/auth/Login.tsx"],"names":[],"mappings":"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"}
|