@mxenabled/connect-widget 0.19.4 → 0.20.0
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/index.es.js +406 -163
- package/dist/index.es.js.map +1 -1
- package/dist/lastBuild.txt +1 -1
- package/package.json +1 -1
package/dist/index.es.js
CHANGED
|
@@ -5236,7 +5236,8 @@ const ActionTypes$2 = {
|
|
|
5236
5236
|
MFA_CONNECT_SUBMIT_ERROR: "connect/mfa_connect_submit_error",
|
|
5237
5237
|
MFA_CONNECT_SUBMIT_SUCCESS: "connect/mfa_connect_submit_success",
|
|
5238
5238
|
LOGIN_ERROR_START_OVER: "connect/login_error_start_over",
|
|
5239
|
-
CONNECT_GO_BACK: "connect/go_back"
|
|
5239
|
+
CONNECT_GO_BACK: "connect/go_back",
|
|
5240
|
+
REJECT_ADDITIONAL_PRODUCT: "connect/reject_additional_product"
|
|
5240
5241
|
};
|
|
5241
5242
|
const loadConnect$1 = (config = {}) => ({ type: ActionTypes$2.LOAD_CONNECT, payload: config });
|
|
5242
5243
|
const loadConnectSuccess$1 = (dependencies = {}) => ({
|
|
@@ -5328,6 +5329,7 @@ const TAX_MODE = "tax";
|
|
|
5328
5329
|
const STEPS = {
|
|
5329
5330
|
ACTIONABLE_ERROR: "actionableError",
|
|
5330
5331
|
ADD_MANUAL_ACCOUNT: "addManualAccount",
|
|
5332
|
+
ADDITIONAL_PRODUCT: "additionalProduct",
|
|
5331
5333
|
CONNECTED: "connected",
|
|
5332
5334
|
CONNECTING: "connecting",
|
|
5333
5335
|
CONSENT: "consent",
|
|
@@ -8973,6 +8975,177 @@ const hasNoSingleAccountSelectOptions = (member) => {
|
|
|
8973
8975
|
return false;
|
|
8974
8976
|
};
|
|
8975
8977
|
|
|
8978
|
+
const COMBO_JOB_DATA_TYPES = {
|
|
8979
|
+
ACCOUNT_NUMBER: "account_verification",
|
|
8980
|
+
// verification mode
|
|
8981
|
+
ACCOUNT_OWNER: "identity_verification",
|
|
8982
|
+
// include_identity
|
|
8983
|
+
TRANSACTIONS: "transactions",
|
|
8984
|
+
REWARDS: "rewards"};
|
|
8985
|
+
|
|
8986
|
+
const initialState$5 = {
|
|
8987
|
+
_initialValues: "",
|
|
8988
|
+
is_mobile_webview: false,
|
|
8989
|
+
target_origin_referrer: null,
|
|
8990
|
+
ui_message_protocol: "post_message",
|
|
8991
|
+
ui_message_version: 1,
|
|
8992
|
+
ui_message_webview_url_scheme: "mx",
|
|
8993
|
+
color_scheme: "light",
|
|
8994
|
+
mode: AGG_MODE,
|
|
8995
|
+
current_institution_code: null,
|
|
8996
|
+
current_institution_guid: null,
|
|
8997
|
+
current_member_guid: null,
|
|
8998
|
+
current_microdeposit_guid: null,
|
|
8999
|
+
enable_app2app: true,
|
|
9000
|
+
disable_background_agg: null,
|
|
9001
|
+
disable_institution_search: false,
|
|
9002
|
+
include_identity: null,
|
|
9003
|
+
include_transactions: null,
|
|
9004
|
+
iso_country_code: null,
|
|
9005
|
+
oauth_referral_source: REFERRAL_SOURCES.BROWSER,
|
|
9006
|
+
update_credentials: false,
|
|
9007
|
+
wait_for_full_aggregation: false,
|
|
9008
|
+
data_request: null,
|
|
9009
|
+
use_cases: null,
|
|
9010
|
+
additional_product_option: null
|
|
9011
|
+
};
|
|
9012
|
+
const configSlice = createSlice({
|
|
9013
|
+
name: "config",
|
|
9014
|
+
initialState: initialState$5,
|
|
9015
|
+
reducers: {
|
|
9016
|
+
addVerificationData: (state) => {
|
|
9017
|
+
if (state.mode === AGG_MODE) {
|
|
9018
|
+
state.include_transactions = true;
|
|
9019
|
+
}
|
|
9020
|
+
state.mode = VERIFY_MODE;
|
|
9021
|
+
if (Array.isArray(state.use_cases)) {
|
|
9022
|
+
state.use_cases.push("MONEY_MOVEMENT");
|
|
9023
|
+
} else {
|
|
9024
|
+
state.use_cases = ["MONEY_MOVEMENT"];
|
|
9025
|
+
}
|
|
9026
|
+
},
|
|
9027
|
+
addAggregationData: (state) => {
|
|
9028
|
+
state.include_transactions = true;
|
|
9029
|
+
if (Array.isArray(state.use_cases)) {
|
|
9030
|
+
state.use_cases.push("PFM");
|
|
9031
|
+
} else {
|
|
9032
|
+
state.use_cases = ["PFM"];
|
|
9033
|
+
}
|
|
9034
|
+
},
|
|
9035
|
+
additionalProductReset: _additionalProductReset
|
|
9036
|
+
},
|
|
9037
|
+
extraReducers(builder) {
|
|
9038
|
+
builder.addCase(
|
|
9039
|
+
ActionTypes$2.LOAD_CONNECT,
|
|
9040
|
+
(state, action) => {
|
|
9041
|
+
const productDetermineMode = getProductDeterminedMode(action.payload);
|
|
9042
|
+
const ui_message_version = typeof action.payload.ui_message_version === "string" ? parseInt(action.payload.ui_message_version, 10) : action.payload.ui_message_version || state.ui_message_version;
|
|
9043
|
+
const loadedState = {
|
|
9044
|
+
...state,
|
|
9045
|
+
...action.payload,
|
|
9046
|
+
ui_message_version,
|
|
9047
|
+
mode: productDetermineMode !== null ? productDetermineMode : action.payload.mode || state.mode
|
|
9048
|
+
};
|
|
9049
|
+
const { _initialValues, ...stateWithoutInitialValues } = loadedState;
|
|
9050
|
+
return {
|
|
9051
|
+
...stateWithoutInitialValues,
|
|
9052
|
+
// _initialValues is a reference to the values that were used to load the widget initially.
|
|
9053
|
+
// It is meant to be set, and then READ ONLY after that.
|
|
9054
|
+
// Example:
|
|
9055
|
+
// When a user dynamically changes the mode, use_cases, or data for a connection we need to
|
|
9056
|
+
// reset the mode, use_cases, and data to the initial state for the next connection attempt.
|
|
9057
|
+
// JSON is used here to deeply copy the object, use a selector to get the values.
|
|
9058
|
+
_initialValues: JSON.stringify(stateWithoutInitialValues)
|
|
9059
|
+
};
|
|
9060
|
+
}
|
|
9061
|
+
);
|
|
9062
|
+
builder.addCase(
|
|
9063
|
+
ActionTypes$2.CONNECT_GO_BACK,
|
|
9064
|
+
(state, action) => {
|
|
9065
|
+
const resetSteps = [STEPS.SEARCH, STEPS.VERIFY_EXISTING_MEMBER, STEPS.ADDITIONAL_PRODUCT];
|
|
9066
|
+
if (resetSteps.includes(action.payload?.previousStep)) {
|
|
9067
|
+
return _additionalProductReset(state);
|
|
9068
|
+
}
|
|
9069
|
+
return state;
|
|
9070
|
+
}
|
|
9071
|
+
);
|
|
9072
|
+
builder.addCase(ActionTypes$2.RESET_WIDGET_CONNECTED, (state) => {
|
|
9073
|
+
return _additionalProductReset(state);
|
|
9074
|
+
});
|
|
9075
|
+
builder.addCase(ActionTypes$2.ACTIONABLE_ERROR_CONNECT_DIFFERENT_INSTITUTION, (state) => {
|
|
9076
|
+
return _additionalProductReset(state);
|
|
9077
|
+
});
|
|
9078
|
+
builder.addCase(ActionTypes$2.LOGIN_ERROR_START_OVER, (state) => {
|
|
9079
|
+
return _additionalProductReset(state);
|
|
9080
|
+
});
|
|
9081
|
+
builder.addCase(ActionTypes$2.DELETE_MEMBER_SUCCESS_RESET, (state) => {
|
|
9082
|
+
return _additionalProductReset(state);
|
|
9083
|
+
});
|
|
9084
|
+
builder.addCase(ActionTypes$2.RESET_WIDGET_MFA_STEP, (state) => {
|
|
9085
|
+
return _additionalProductReset(state);
|
|
9086
|
+
});
|
|
9087
|
+
}
|
|
9088
|
+
});
|
|
9089
|
+
const selectInitialConfig = createSelector(
|
|
9090
|
+
(state) => state.config._initialValues,
|
|
9091
|
+
(initialValues) => convertInitialValuesToObject(initialValues)
|
|
9092
|
+
);
|
|
9093
|
+
const selectConfig = (state) => state.config;
|
|
9094
|
+
const selectIsMobileWebView = (state) => state.config.is_mobile_webview;
|
|
9095
|
+
const selectUIMessageVersion = (state) => state.config.ui_message_version;
|
|
9096
|
+
const selectConnectConfig = createSelector(selectConfig, (config) => ({
|
|
9097
|
+
mode: config.mode,
|
|
9098
|
+
current_institution_code: config.current_institution_code,
|
|
9099
|
+
current_institution_guid: config.current_institution_guid,
|
|
9100
|
+
current_member_guid: config.current_member_guid,
|
|
9101
|
+
current_microdeposit_guid: config.current_microdeposit_guid,
|
|
9102
|
+
enable_app2app: config.enable_app2app,
|
|
9103
|
+
disable_background_agg: config.disable_background_agg,
|
|
9104
|
+
disable_institution_search: config.disable_institution_search,
|
|
9105
|
+
include_identity: config.include_identity,
|
|
9106
|
+
include_transactions: config.include_transactions,
|
|
9107
|
+
iso_country_code: config.iso_country_code,
|
|
9108
|
+
oauth_referral_source: config.oauth_referral_source,
|
|
9109
|
+
update_credentials: config.update_credentials,
|
|
9110
|
+
wait_for_full_aggregation: config.wait_for_full_aggregation,
|
|
9111
|
+
data_request: config.data_request,
|
|
9112
|
+
use_cases: config.use_cases,
|
|
9113
|
+
additional_product_option: config.additional_product_option
|
|
9114
|
+
}));
|
|
9115
|
+
const selectColorScheme = (state) => state.config.color_scheme;
|
|
9116
|
+
const getProductDeterminedMode = (config) => {
|
|
9117
|
+
const products = config?.data_request?.products;
|
|
9118
|
+
if (Array.isArray(products)) {
|
|
9119
|
+
if (products.includes(COMBO_JOB_DATA_TYPES.ACCOUNT_NUMBER)) {
|
|
9120
|
+
return VERIFY_MODE;
|
|
9121
|
+
} else if (products.includes(COMBO_JOB_DATA_TYPES.REWARDS)) {
|
|
9122
|
+
return REWARD_MODE;
|
|
9123
|
+
} else {
|
|
9124
|
+
return AGG_MODE;
|
|
9125
|
+
}
|
|
9126
|
+
} else {
|
|
9127
|
+
return null;
|
|
9128
|
+
}
|
|
9129
|
+
};
|
|
9130
|
+
const convertInitialValuesToObject = (initialValues) => {
|
|
9131
|
+
try {
|
|
9132
|
+
return JSON.parse(initialValues);
|
|
9133
|
+
} catch (error) {
|
|
9134
|
+
return {};
|
|
9135
|
+
}
|
|
9136
|
+
};
|
|
9137
|
+
function _additionalProductReset(state) {
|
|
9138
|
+
const initialValuesObject = convertInitialValuesToObject(state._initialValues);
|
|
9139
|
+
return {
|
|
9140
|
+
...state,
|
|
9141
|
+
include_transactions: initialValuesObject?.include_transactions ?? initialState$5.include_transactions,
|
|
9142
|
+
mode: initialValuesObject?.mode ?? initialState$5.mode,
|
|
9143
|
+
use_cases: initialValuesObject?.use_cases ?? initialState$5.use_cases
|
|
9144
|
+
};
|
|
9145
|
+
}
|
|
9146
|
+
const { addVerificationData, addAggregationData, additionalProductReset } = configSlice.actions;
|
|
9147
|
+
const configSlice$1 = configSlice.reducer;
|
|
9148
|
+
|
|
8976
9149
|
const defaultState$1 = {
|
|
8977
9150
|
error: null,
|
|
8978
9151
|
// The most recent job request error, if any
|
|
@@ -9165,13 +9338,33 @@ const acceptDisclosure = (state, { payload }) => {
|
|
|
9165
9338
|
return { ...state, location: pushLocation(state.location, nextStep) };
|
|
9166
9339
|
};
|
|
9167
9340
|
const selectInstitutionSuccess = (state, action) => {
|
|
9341
|
+
let nextStep = STEPS.ENTER_CREDENTIALS;
|
|
9342
|
+
const canOfferVerification = action.payload.institution?.account_verification_is_enabled && action.payload.additionalProductOption === COMBO_JOB_DATA_TYPES.ACCOUNT_NUMBER;
|
|
9343
|
+
const canOfferAggregation = action.payload.additionalProductOption === COMBO_JOB_DATA_TYPES.TRANSACTIONS;
|
|
9344
|
+
if (canOfferVerification || canOfferAggregation) {
|
|
9345
|
+
nextStep = STEPS.ADDITIONAL_PRODUCT;
|
|
9346
|
+
} else if (action.payload.consentIsEnabled) {
|
|
9347
|
+
nextStep = STEPS.CONSENT;
|
|
9348
|
+
}
|
|
9349
|
+
if (state.location.length > 0 && state.location[state.location.length - 1].step === nextStep) {
|
|
9350
|
+
return {
|
|
9351
|
+
...state,
|
|
9352
|
+
selectedInstitution: action.payload.institution
|
|
9353
|
+
};
|
|
9354
|
+
}
|
|
9355
|
+
return {
|
|
9356
|
+
...state,
|
|
9357
|
+
location: pushLocation(state.location, nextStep),
|
|
9358
|
+
selectedInstitution: action.payload.institution
|
|
9359
|
+
};
|
|
9360
|
+
};
|
|
9361
|
+
const continueAfterAdditionalProduct = (state, action) => {
|
|
9168
9362
|
return {
|
|
9169
9363
|
...state,
|
|
9170
9364
|
location: pushLocation(
|
|
9171
9365
|
state.location,
|
|
9172
|
-
action.payload.
|
|
9173
|
-
)
|
|
9174
|
-
selectedInstitution: action.payload.institution
|
|
9366
|
+
action.payload.consentIsEnabled ? STEPS.CONSENT : STEPS.ENTER_CREDENTIALS
|
|
9367
|
+
)
|
|
9175
9368
|
};
|
|
9176
9369
|
};
|
|
9177
9370
|
const startOauth = (state, action) => ({
|
|
@@ -9281,9 +9474,24 @@ const addManualAccount = (state, { payload }) => {
|
|
|
9281
9474
|
return state;
|
|
9282
9475
|
};
|
|
9283
9476
|
const connectGoBack = (state) => {
|
|
9477
|
+
const stepsWhichResetValues = [STEPS.SEARCH, STEPS.VERIFY_EXISTING_MEMBER];
|
|
9478
|
+
const newLocationValues = popLocation(state);
|
|
9479
|
+
if (stepsWhichResetValues.includes(newLocationValues[newLocationValues.length - 1]?.step)) {
|
|
9480
|
+
return {
|
|
9481
|
+
...state,
|
|
9482
|
+
location: newLocationValues,
|
|
9483
|
+
currentMemberGuid: defaultState$1.currentMemberGuid,
|
|
9484
|
+
error: defaultState$1.error,
|
|
9485
|
+
updateCredentials: defaultState$1.updateCredentials,
|
|
9486
|
+
oauthURL: defaultState$1.oauthURL,
|
|
9487
|
+
oauthErrorReason: defaultState$1.oauthErrorReason,
|
|
9488
|
+
jobSchedule: UNINITIALIZED$2,
|
|
9489
|
+
selectedInstitution: defaultState$1.selectedInstitution
|
|
9490
|
+
};
|
|
9491
|
+
}
|
|
9284
9492
|
return {
|
|
9285
9493
|
...state,
|
|
9286
|
-
location:
|
|
9494
|
+
location: newLocationValues
|
|
9287
9495
|
};
|
|
9288
9496
|
};
|
|
9289
9497
|
const actionableErrorConnectDifferentInstitution = (state, action) => {
|
|
@@ -9429,148 +9637,15 @@ const connect = createReducer(defaultState$1, {
|
|
|
9429
9637
|
[ActionTypes$2.MFA_CONNECT_SUBMIT_ERROR]: mfaConnectSubmitError,
|
|
9430
9638
|
[ActionTypes$2.ADD_MANUAL_ACCOUNT_SUCCESS]: addManualAccount,
|
|
9431
9639
|
[ActionTypes$2.LOGIN_ERROR_START_OVER]: loginErrorStartOver,
|
|
9432
|
-
[ActionTypes$2.CONNECT_GO_BACK]: connectGoBack
|
|
9640
|
+
[ActionTypes$2.CONNECT_GO_BACK]: connectGoBack,
|
|
9641
|
+
// Addtional product offer / step up reducers
|
|
9642
|
+
// These are here to manage changing the location/step of the widget
|
|
9643
|
+
[ActionTypes$2.REJECT_ADDITIONAL_PRODUCT]: continueAfterAdditionalProduct,
|
|
9644
|
+
// Listening to the step up actions from the configSlice
|
|
9645
|
+
[addVerificationData().type]: continueAfterAdditionalProduct,
|
|
9646
|
+
[addAggregationData().type]: continueAfterAdditionalProduct
|
|
9433
9647
|
});
|
|
9434
9648
|
|
|
9435
|
-
const COMBO_JOB_DATA_TYPES = {
|
|
9436
|
-
ACCOUNT_NUMBER: "account_verification",
|
|
9437
|
-
// verification mode
|
|
9438
|
-
ACCOUNT_OWNER: "identity_verification",
|
|
9439
|
-
// include_identity
|
|
9440
|
-
TRANSACTIONS: "transactions",
|
|
9441
|
-
REWARDS: "rewards"};
|
|
9442
|
-
|
|
9443
|
-
const initialState$5 = {
|
|
9444
|
-
_initialValues: "",
|
|
9445
|
-
is_mobile_webview: false,
|
|
9446
|
-
target_origin_referrer: null,
|
|
9447
|
-
ui_message_protocol: "post_message",
|
|
9448
|
-
ui_message_version: 1,
|
|
9449
|
-
ui_message_webview_url_scheme: "mx",
|
|
9450
|
-
color_scheme: "light",
|
|
9451
|
-
mode: AGG_MODE,
|
|
9452
|
-
current_institution_code: null,
|
|
9453
|
-
current_institution_guid: null,
|
|
9454
|
-
current_member_guid: null,
|
|
9455
|
-
current_microdeposit_guid: null,
|
|
9456
|
-
enable_app2app: true,
|
|
9457
|
-
disable_background_agg: null,
|
|
9458
|
-
disable_institution_search: false,
|
|
9459
|
-
include_identity: null,
|
|
9460
|
-
include_transactions: null,
|
|
9461
|
-
iso_country_code: null,
|
|
9462
|
-
oauth_referral_source: REFERRAL_SOURCES.BROWSER,
|
|
9463
|
-
update_credentials: false,
|
|
9464
|
-
wait_for_full_aggregation: false,
|
|
9465
|
-
data_request: null,
|
|
9466
|
-
use_cases: null
|
|
9467
|
-
};
|
|
9468
|
-
const configSlice = createSlice({
|
|
9469
|
-
name: "config",
|
|
9470
|
-
initialState: initialState$5,
|
|
9471
|
-
reducers: {
|
|
9472
|
-
stepUpToVerification: (state) => {
|
|
9473
|
-
if (state.mode === AGG_MODE) {
|
|
9474
|
-
state.include_transactions = true;
|
|
9475
|
-
}
|
|
9476
|
-
state.mode = VERIFY_MODE;
|
|
9477
|
-
if (Array.isArray(state.use_cases)) {
|
|
9478
|
-
state.use_cases.push("MONEY_MOVEMENT");
|
|
9479
|
-
} else {
|
|
9480
|
-
state.use_cases = ["MONEY_MOVEMENT"];
|
|
9481
|
-
}
|
|
9482
|
-
},
|
|
9483
|
-
stepUpToAggregation: (state) => {
|
|
9484
|
-
state.include_transactions = true;
|
|
9485
|
-
if (Array.isArray(state.use_cases)) {
|
|
9486
|
-
state.use_cases.push("PFM");
|
|
9487
|
-
} else {
|
|
9488
|
-
state.use_cases = ["PFM"];
|
|
9489
|
-
}
|
|
9490
|
-
},
|
|
9491
|
-
stepUpReset: (state) => {
|
|
9492
|
-
const initialValuesObject = convertInitialValuesToObject(state._initialValues);
|
|
9493
|
-
return {
|
|
9494
|
-
...state,
|
|
9495
|
-
include_transactions: initialValuesObject?.include_transactions ?? initialState$5.include_transactions,
|
|
9496
|
-
mode: initialValuesObject?.mode ?? initialState$5.mode,
|
|
9497
|
-
use_cases: initialValuesObject?.use_cases ?? initialState$5.use_cases
|
|
9498
|
-
};
|
|
9499
|
-
}
|
|
9500
|
-
},
|
|
9501
|
-
extraReducers(builder) {
|
|
9502
|
-
builder.addCase(
|
|
9503
|
-
ActionTypes$2.LOAD_CONNECT,
|
|
9504
|
-
(state, action) => {
|
|
9505
|
-
const productDetermineMode = getProductDeterminedMode(action.payload);
|
|
9506
|
-
const ui_message_version = typeof action.payload.ui_message_version === "string" ? parseInt(action.payload.ui_message_version, 10) : action.payload.ui_message_version || state.ui_message_version;
|
|
9507
|
-
const loadedState = {
|
|
9508
|
-
...state,
|
|
9509
|
-
...action.payload,
|
|
9510
|
-
ui_message_version,
|
|
9511
|
-
mode: productDetermineMode !== null ? productDetermineMode : action.payload.mode || state.mode
|
|
9512
|
-
};
|
|
9513
|
-
const { _initialValues, ...stateWithoutInitialValues } = loadedState;
|
|
9514
|
-
return {
|
|
9515
|
-
...stateWithoutInitialValues,
|
|
9516
|
-
// _initialValues is a reference to the values that were used to load the widget initially.
|
|
9517
|
-
// It is meant to be set, and then READ ONLY after that.
|
|
9518
|
-
// Example:
|
|
9519
|
-
// When a user dynamically changes the mode, use_cases, or data for a connection we need to
|
|
9520
|
-
// reset the mode, use_cases, and data to the initial state for the next connection attempt.
|
|
9521
|
-
// JSON is used here to deeply copy the object, use a selector to get the values.
|
|
9522
|
-
_initialValues: JSON.stringify(stateWithoutInitialValues)
|
|
9523
|
-
};
|
|
9524
|
-
}
|
|
9525
|
-
);
|
|
9526
|
-
}
|
|
9527
|
-
});
|
|
9528
|
-
const selectConfig = (state) => state.config;
|
|
9529
|
-
const selectIsMobileWebView = (state) => state.config.is_mobile_webview;
|
|
9530
|
-
const selectUIMessageVersion = (state) => state.config.ui_message_version;
|
|
9531
|
-
const selectConnectConfig = createSelector(selectConfig, (config) => ({
|
|
9532
|
-
mode: config.mode,
|
|
9533
|
-
current_institution_code: config.current_institution_code,
|
|
9534
|
-
current_institution_guid: config.current_institution_guid,
|
|
9535
|
-
current_member_guid: config.current_member_guid,
|
|
9536
|
-
current_microdeposit_guid: config.current_microdeposit_guid,
|
|
9537
|
-
enable_app2app: config.enable_app2app,
|
|
9538
|
-
disable_background_agg: config.disable_background_agg,
|
|
9539
|
-
disable_institution_search: config.disable_institution_search,
|
|
9540
|
-
include_identity: config.include_identity,
|
|
9541
|
-
include_transactions: config.include_transactions,
|
|
9542
|
-
iso_country_code: config.iso_country_code,
|
|
9543
|
-
oauth_referral_source: config.oauth_referral_source,
|
|
9544
|
-
update_credentials: config.update_credentials,
|
|
9545
|
-
wait_for_full_aggregation: config.wait_for_full_aggregation,
|
|
9546
|
-
data_request: config.data_request,
|
|
9547
|
-
use_cases: config.use_cases
|
|
9548
|
-
}));
|
|
9549
|
-
const selectColorScheme = (state) => state.config.color_scheme;
|
|
9550
|
-
const getProductDeterminedMode = (config) => {
|
|
9551
|
-
const products = config?.data_request?.products;
|
|
9552
|
-
if (Array.isArray(products)) {
|
|
9553
|
-
if (products.includes(COMBO_JOB_DATA_TYPES.ACCOUNT_NUMBER)) {
|
|
9554
|
-
return VERIFY_MODE;
|
|
9555
|
-
} else if (products.includes(COMBO_JOB_DATA_TYPES.REWARDS)) {
|
|
9556
|
-
return REWARD_MODE;
|
|
9557
|
-
} else {
|
|
9558
|
-
return AGG_MODE;
|
|
9559
|
-
}
|
|
9560
|
-
} else {
|
|
9561
|
-
return null;
|
|
9562
|
-
}
|
|
9563
|
-
};
|
|
9564
|
-
const convertInitialValuesToObject = (initialValues) => {
|
|
9565
|
-
try {
|
|
9566
|
-
return JSON.parse(initialValues);
|
|
9567
|
-
} catch (error) {
|
|
9568
|
-
return {};
|
|
9569
|
-
}
|
|
9570
|
-
};
|
|
9571
|
-
const { stepUpToVerification, stepUpToAggregation, stepUpReset } = configSlice.actions;
|
|
9572
|
-
const configSlice$1 = configSlice.reducer;
|
|
9573
|
-
|
|
9574
9649
|
const initialState$4 = {
|
|
9575
9650
|
loading: true,
|
|
9576
9651
|
client: {},
|
|
@@ -71757,6 +71832,7 @@ const LoginError = React__default.forwardRef(
|
|
|
71757
71832
|
const postMessageFunctions = useContext(PostMessageContext);
|
|
71758
71833
|
const dispatch = useDispatch();
|
|
71759
71834
|
const connectConfig = useSelector(selectConnectConfig);
|
|
71835
|
+
const initialConfig = useSelector(selectInitialConfig);
|
|
71760
71836
|
const pageViewInfo = PageviewInfo.CONNECT_LOGIN_ERROR;
|
|
71761
71837
|
useAnalyticsPath(...pageViewInfo);
|
|
71762
71838
|
const [isLeaving, setIsLeaving] = useState(false);
|
|
@@ -71785,7 +71861,10 @@ const LoginError = React__default.forwardRef(
|
|
|
71785
71861
|
}
|
|
71786
71862
|
});
|
|
71787
71863
|
}, [member]);
|
|
71788
|
-
const loginErrorStartOver = () => dispatch({
|
|
71864
|
+
const loginErrorStartOver = () => dispatch({
|
|
71865
|
+
type: ActionTypes$2.LOGIN_ERROR_START_OVER,
|
|
71866
|
+
payload: { mode: initialConfig.mode }
|
|
71867
|
+
});
|
|
71789
71868
|
const handleOkPrimaryActionClick = () => {
|
|
71790
71869
|
postMessageFunctions.onPostMessage("connect/memberError/primaryAction", {
|
|
71791
71870
|
member: {
|
|
@@ -72000,6 +72079,7 @@ const ActionableError = () => {
|
|
|
72000
72079
|
const postMessageFunctions = useContext(PostMessageContext);
|
|
72001
72080
|
const institution = useSelector((state) => state.connect.selectedInstitution);
|
|
72002
72081
|
const currentMember = useSelector(getCurrentMember);
|
|
72082
|
+
const initialConfig = useSelector(selectInitialConfig);
|
|
72003
72083
|
const jobDetailCode = currentMember.most_recent_job_detail_code;
|
|
72004
72084
|
const tokens = useTokens();
|
|
72005
72085
|
const styles = getStyles$A(tokens);
|
|
@@ -72021,7 +72101,10 @@ const ActionableError = () => {
|
|
|
72021
72101
|
label: __("Connect a different institution"),
|
|
72022
72102
|
action: () => {
|
|
72023
72103
|
postMessageFunctions.onPostMessage("connect/backToSearch");
|
|
72024
|
-
dispatch({
|
|
72104
|
+
dispatch({
|
|
72105
|
+
type: ActionTypes$2.ACTIONABLE_ERROR_CONNECT_DIFFERENT_INSTITUTION,
|
|
72106
|
+
payload: initialConfig.mode
|
|
72107
|
+
});
|
|
72025
72108
|
}
|
|
72026
72109
|
}
|
|
72027
72110
|
}
|
|
@@ -73696,7 +73779,7 @@ const RoutingNumber = (props) => {
|
|
|
73696
73779
|
}
|
|
73697
73780
|
) }) }),
|
|
73698
73781
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("form", { onSubmit: (e) => e.preventDefault(), children: [
|
|
73699
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(SlideDown, { delay: getNextDelay(), children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
|
|
73782
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(SlideDown, { delay: getNextDelay(), children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
73700
73783
|
ProtectedTextField,
|
|
73701
73784
|
{
|
|
73702
73785
|
autoComplete: "off",
|
|
@@ -73713,9 +73796,15 @@ const RoutingNumber = (props) => {
|
|
|
73713
73796
|
label: __("Routing number"),
|
|
73714
73797
|
name: "routingNumber",
|
|
73715
73798
|
onChange: handleTextInputChange,
|
|
73799
|
+
required: true,
|
|
73716
73800
|
value: values.routingNumber
|
|
73717
73801
|
}
|
|
73718
73802
|
) }) }),
|
|
73803
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { marginTop: 16, marginBottom: 32 }, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { style: { color: "#666", fontSize: 13 }, children: [
|
|
73804
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { style: { color: "#E32727", fontSize: 13 }, children: "*" }),
|
|
73805
|
+
" ",
|
|
73806
|
+
__("Required")
|
|
73807
|
+
] }) }),
|
|
73719
73808
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SlideDown, { delay: getNextDelay(), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
73720
73809
|
Button$2,
|
|
73721
73810
|
{
|
|
@@ -73751,9 +73840,6 @@ const getStyles$r = (tokens) => ({
|
|
|
73751
73840
|
title: {
|
|
73752
73841
|
marginBottom: tokens.Spacing.Large
|
|
73753
73842
|
},
|
|
73754
|
-
inputStyle: {
|
|
73755
|
-
marginBottom: tokens.Spacing.XLarge
|
|
73756
|
-
},
|
|
73757
73843
|
button: {
|
|
73758
73844
|
marginBottom: "12px"
|
|
73759
73845
|
}
|
|
@@ -76671,11 +76757,96 @@ const Actions = {
|
|
|
76671
76757
|
HANDLE_SUCCESS: "manualAccount/handleSuccess"
|
|
76672
76758
|
};
|
|
76673
76759
|
|
|
76760
|
+
const ADDITIONAL_PRODUCT_OPTIONS = [
|
|
76761
|
+
COMBO_JOB_DATA_TYPES.TRANSACTIONS,
|
|
76762
|
+
COMBO_JOB_DATA_TYPES.ACCOUNT_NUMBER
|
|
76763
|
+
];
|
|
76764
|
+
const AdditionalProductStep = React__default.forwardRef(
|
|
76765
|
+
({
|
|
76766
|
+
additionalProductName,
|
|
76767
|
+
onNoClick = () => {
|
|
76768
|
+
throw new Error("onNoClick not implemented");
|
|
76769
|
+
},
|
|
76770
|
+
onYesClick = () => {
|
|
76771
|
+
throw new Error("onYesClick not implemented");
|
|
76772
|
+
}
|
|
76773
|
+
}, navigationRef) => {
|
|
76774
|
+
const selectedInstitution = useSelector(getSelectedInstitution);
|
|
76775
|
+
useImperativeHandle(navigationRef, () => {
|
|
76776
|
+
return {
|
|
76777
|
+
showBackButton() {
|
|
76778
|
+
return true;
|
|
76779
|
+
}
|
|
76780
|
+
};
|
|
76781
|
+
}, []);
|
|
76782
|
+
const getNextDelay = getDelay();
|
|
76783
|
+
const addAggregationText = {
|
|
76784
|
+
title: __("Add financial management?"),
|
|
76785
|
+
body: __(
|
|
76786
|
+
"You are connecting this account for payments and transfers. Would you also like to connect it for financial management to track income and spending?"
|
|
76787
|
+
),
|
|
76788
|
+
acceptButtonText: __("Yes, add financial management"),
|
|
76789
|
+
rejectButtonText: __("No, just transfers and payments")
|
|
76790
|
+
};
|
|
76791
|
+
const addVerificationText = {
|
|
76792
|
+
title: __("Add transfers and payments?"),
|
|
76793
|
+
body: __(
|
|
76794
|
+
"You are connecting this account for financial management. Would you also like to connect it for transfers and payments to quickly move money to and from this institution?"
|
|
76795
|
+
),
|
|
76796
|
+
acceptButtonText: __("Yes, add transfers and payments"),
|
|
76797
|
+
rejectButtonText: __("No, just financial management")
|
|
76798
|
+
};
|
|
76799
|
+
const componentText = additionalProductName === COMBO_JOB_DATA_TYPES.TRANSACTIONS ? addAggregationText : addVerificationText;
|
|
76800
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(SlideDown, { delay: getNextDelay(), children: [
|
|
76801
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(InstitutionBlock, { institution: selectedInstitution, style: { marginBottom: 24 } }),
|
|
76802
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
76803
|
+
x,
|
|
76804
|
+
{
|
|
76805
|
+
component: "h2",
|
|
76806
|
+
"data-test": "additional-product__title-text",
|
|
76807
|
+
style: { marginBottom: 12 },
|
|
76808
|
+
truncate: false,
|
|
76809
|
+
variant: "H2",
|
|
76810
|
+
children: componentText.title
|
|
76811
|
+
}
|
|
76812
|
+
),
|
|
76813
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(x, { component: "p", style: { marginBottom: 32 }, truncate: false, variant: "Paragraph", children: componentText.body }),
|
|
76814
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
76815
|
+
Button$2,
|
|
76816
|
+
{
|
|
76817
|
+
"data-test": "additional-product__accept-button",
|
|
76818
|
+
fullWidth: true,
|
|
76819
|
+
onClick: () => {
|
|
76820
|
+
onYesClick();
|
|
76821
|
+
},
|
|
76822
|
+
style: { marginBottom: 8 },
|
|
76823
|
+
variant: "contained",
|
|
76824
|
+
children: componentText.acceptButtonText
|
|
76825
|
+
}
|
|
76826
|
+
),
|
|
76827
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
76828
|
+
Button$2,
|
|
76829
|
+
{
|
|
76830
|
+
"data-test": "additional-product__reject-button",
|
|
76831
|
+
fullWidth: true,
|
|
76832
|
+
onClick: () => {
|
|
76833
|
+
onNoClick();
|
|
76834
|
+
},
|
|
76835
|
+
variant: "text",
|
|
76836
|
+
children: componentText.rejectButtonText
|
|
76837
|
+
}
|
|
76838
|
+
)
|
|
76839
|
+
] });
|
|
76840
|
+
}
|
|
76841
|
+
);
|
|
76842
|
+
AdditionalProductStep.displayName = "AdditionalProductStep";
|
|
76843
|
+
|
|
76674
76844
|
const useSelectInstitution = () => {
|
|
76675
76845
|
const { api } = useApi();
|
|
76676
76846
|
const [institutionGuid, setInstitutionGuid] = useState("");
|
|
76677
76847
|
const dispatch = useDispatch();
|
|
76678
76848
|
const consentIsEnabled = useSelector((state) => isConsentEnabled(state));
|
|
76849
|
+
const connectConfig = useSelector(selectConnectConfig);
|
|
76679
76850
|
const handleSelectInstitution = useCallback(
|
|
76680
76851
|
(institutionGuid2) => {
|
|
76681
76852
|
setInstitutionGuid(institutionGuid2);
|
|
@@ -76689,7 +76860,11 @@ const useSelectInstitution = () => {
|
|
|
76689
76860
|
map((institution) => {
|
|
76690
76861
|
return dispatch({
|
|
76691
76862
|
type: ActionTypes$2.SELECT_INSTITUTION_SUCCESS,
|
|
76692
|
-
payload: {
|
|
76863
|
+
payload: {
|
|
76864
|
+
institution,
|
|
76865
|
+
consentIsEnabled: consentIsEnabled || false,
|
|
76866
|
+
additionalProductOption: connectConfig?.additional_product_option || null
|
|
76867
|
+
}
|
|
76693
76868
|
});
|
|
76694
76869
|
}),
|
|
76695
76870
|
catchError((err) => {
|
|
@@ -77099,6 +77274,7 @@ DynamicDisclosure.displayName = "DynamicDisclosure";
|
|
|
77099
77274
|
const RenderConnectStep = (props) => {
|
|
77100
77275
|
const postMessageFunctions = useContext(PostMessageContext);
|
|
77101
77276
|
const connectConfig = useSelector(selectConnectConfig);
|
|
77277
|
+
const initialConfig = useSelector(selectInitialConfig);
|
|
77102
77278
|
const uiMessageVersion = useSelector(selectUIMessageVersion);
|
|
77103
77279
|
const isMobileWebview = useSelector(selectIsMobileWebView);
|
|
77104
77280
|
const client = useSelector((state) => state.profiles.client);
|
|
@@ -77116,6 +77292,7 @@ const RenderConnectStep = (props) => {
|
|
|
77116
77292
|
const selectedInstitution = useSelector(getSelectedInstitution);
|
|
77117
77293
|
const updateCredentials = useSelector((state) => state.connect.updateCredentials);
|
|
77118
77294
|
const verifyMemberError = useSelector((state) => state.connect.error);
|
|
77295
|
+
const consentIsEnabled = useSelector((state) => isConsentEnabled(state));
|
|
77119
77296
|
const { handleSelectInstitution } = useSelectInstitution();
|
|
77120
77297
|
const dispatch = useDispatch();
|
|
77121
77298
|
const tokens = useTokens();
|
|
@@ -77178,6 +77355,37 @@ const RenderConnectStep = (props) => {
|
|
|
77178
77355
|
ref: props.navigationRef
|
|
77179
77356
|
}
|
|
77180
77357
|
) });
|
|
77358
|
+
} else if (step === STEPS.ADDITIONAL_PRODUCT) {
|
|
77359
|
+
if (!ADDITIONAL_PRODUCT_OPTIONS.includes(connectConfig?.additional_product_option)) {
|
|
77360
|
+
throw new Error("invalid product offer");
|
|
77361
|
+
}
|
|
77362
|
+
const onNoClick = () => {
|
|
77363
|
+
dispatch({
|
|
77364
|
+
type: ActionTypes$2.REJECT_ADDITIONAL_PRODUCT,
|
|
77365
|
+
payload: {
|
|
77366
|
+
consentIsEnabled
|
|
77367
|
+
}
|
|
77368
|
+
});
|
|
77369
|
+
};
|
|
77370
|
+
let onYesClick = null;
|
|
77371
|
+
if (connectConfig?.additional_product_option === COMBO_JOB_DATA_TYPES.ACCOUNT_NUMBER) {
|
|
77372
|
+
onYesClick = () => {
|
|
77373
|
+
dispatch(addVerificationData({ consentIsEnabled }));
|
|
77374
|
+
};
|
|
77375
|
+
} else if (connectConfig?.additional_product_option === COMBO_JOB_DATA_TYPES.TRANSACTIONS) {
|
|
77376
|
+
onYesClick = () => {
|
|
77377
|
+
dispatch(addAggregationData({ consentIsEnabled }));
|
|
77378
|
+
};
|
|
77379
|
+
}
|
|
77380
|
+
connectStepView = /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
77381
|
+
AdditionalProductStep,
|
|
77382
|
+
{
|
|
77383
|
+
additionalProductName: connectConfig.additional_product_option,
|
|
77384
|
+
onNoClick,
|
|
77385
|
+
onYesClick,
|
|
77386
|
+
ref: props.navigationRef
|
|
77387
|
+
}
|
|
77388
|
+
);
|
|
77181
77389
|
} else if (step === STEPS.ADD_MANUAL_ACCOUNT) {
|
|
77182
77390
|
connectStepView = /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
77183
77391
|
ManualAccountConnect,
|
|
@@ -77185,7 +77393,7 @@ const RenderConnectStep = (props) => {
|
|
|
77185
77393
|
availableAccountTypes: props.availableAccountTypes,
|
|
77186
77394
|
onClose: () => dispatch({
|
|
77187
77395
|
type: ActionTypes$2.GO_BACK_MANUAL_ACCOUNT,
|
|
77188
|
-
payload:
|
|
77396
|
+
payload: initialConfig
|
|
77189
77397
|
}),
|
|
77190
77398
|
onManualAccountAdded: props.onManualAccountAdded,
|
|
77191
77399
|
ref: props.navigationRef
|
|
@@ -77329,7 +77537,7 @@ const RenderConnectStep = (props) => {
|
|
|
77329
77537
|
postMessageFunctions.onPostMessage(POST_MESSAGES.BACK_TO_SEARCH);
|
|
77330
77538
|
dispatch({
|
|
77331
77539
|
type: ActionTypes$2.DELETE_MEMBER_SUCCESS_RESET,
|
|
77332
|
-
payload:
|
|
77540
|
+
payload: initialConfig
|
|
77333
77541
|
});
|
|
77334
77542
|
}
|
|
77335
77543
|
}
|
|
@@ -79370,6 +79578,7 @@ const Connect$2 = ({
|
|
|
79370
79578
|
...props
|
|
79371
79579
|
}) => {
|
|
79372
79580
|
const connectConfig = useSelector(selectConnectConfig);
|
|
79581
|
+
const initialConfig = useSelector(selectInitialConfig);
|
|
79373
79582
|
const loadError = useSelector((state2) => state2.connect.loadError);
|
|
79374
79583
|
const hasAtriumAPI = useSelector((state2) => state2.profiles.client.has_atrium_api);
|
|
79375
79584
|
const isLoading = useSelector((state2) => state2.connect.isComponentLoading);
|
|
@@ -79377,6 +79586,10 @@ const Connect$2 = ({
|
|
|
79377
79586
|
const step = useSelector(
|
|
79378
79587
|
(state2) => state2.connect.location[state2.connect.location.length - 1]?.step ?? STEPS.SEARCH
|
|
79379
79588
|
);
|
|
79589
|
+
const previousStep = useSelector((state2) => {
|
|
79590
|
+
if (state2.connect.location.length < 2) return null;
|
|
79591
|
+
return state2.connect.location[state2.connect.location.length - 2]?.step ?? null;
|
|
79592
|
+
});
|
|
79380
79593
|
const uiMessageVersion = useSelector(selectUIMessageVersion);
|
|
79381
79594
|
const prevProps = usePrevious({ isLoading, step, clientConfig: props.clientConfig });
|
|
79382
79595
|
const { loadConnect } = useLoadConnect();
|
|
@@ -79390,6 +79603,16 @@ const Connect$2 = ({
|
|
|
79390
79603
|
// This holds a reference to the current step component.
|
|
79391
79604
|
});
|
|
79392
79605
|
const consentIsEnabled = useSelector((state2) => isConsentEnabled(state2));
|
|
79606
|
+
const handleGoBackWithSideEffects = () => {
|
|
79607
|
+
const BACK_ACTION_WITH_PREV_STEP = {
|
|
79608
|
+
type: ActionTypes$2.CONNECT_GO_BACK,
|
|
79609
|
+
payload: { previousStep }
|
|
79610
|
+
};
|
|
79611
|
+
if (step === STEPS.SEARCH || step === STEPS.VERIFY_EXISTING_MEMBER) {
|
|
79612
|
+
postMessageFunctions.onPostMessage(POST_MESSAGES.BACK_TO_SEARCH, {});
|
|
79613
|
+
}
|
|
79614
|
+
return BACK_ACTION_WITH_PREV_STEP;
|
|
79615
|
+
};
|
|
79393
79616
|
const dispatch = useDispatch();
|
|
79394
79617
|
useEffect(() => {
|
|
79395
79618
|
const [name, path] = PageviewInfo.CONNECT;
|
|
@@ -79466,7 +79689,7 @@ const Connect$2 = ({
|
|
|
79466
79689
|
} else {
|
|
79467
79690
|
dispatch({
|
|
79468
79691
|
type: ActionTypes$2.GO_BACK_POST_MESSAGE,
|
|
79469
|
-
payload:
|
|
79692
|
+
payload: initialConfig
|
|
79470
79693
|
});
|
|
79471
79694
|
postMessageFunctions.onPostMessage("navigation", { did_go_back: true });
|
|
79472
79695
|
}
|
|
@@ -79480,31 +79703,33 @@ const Connect$2 = ({
|
|
|
79480
79703
|
if (state.returnToMicrodeposits) {
|
|
79481
79704
|
dispatch(stepToMicrodeposits$1());
|
|
79482
79705
|
setState({ ...state, returnToMicrodeposits: false });
|
|
79706
|
+
} else if (connectConfig.additional_product_option) {
|
|
79707
|
+
dispatch(handleGoBackWithSideEffects());
|
|
79483
79708
|
} else {
|
|
79484
79709
|
postMessageFunctions.onPostMessage(POST_MESSAGES.BACK_TO_SEARCH, {});
|
|
79485
|
-
dispatch({ type: ActionTypes$2.GO_BACK_CONSENT, payload:
|
|
79710
|
+
dispatch({ type: ActionTypes$2.GO_BACK_CONSENT, payload: initialConfig });
|
|
79486
79711
|
}
|
|
79487
79712
|
};
|
|
79488
79713
|
const _handleCredentialsGoBack = () => {
|
|
79489
79714
|
if (state.returnToMicrodeposits) {
|
|
79490
79715
|
dispatch(stepToMicrodeposits$1());
|
|
79491
79716
|
setState({ ...state, returnToMicrodeposits: false });
|
|
79492
|
-
} else if (consentIsEnabled) {
|
|
79493
|
-
dispatch(
|
|
79717
|
+
} else if (consentIsEnabled || connectConfig.additional_product_option) {
|
|
79718
|
+
dispatch(handleGoBackWithSideEffects());
|
|
79494
79719
|
} else {
|
|
79495
79720
|
postMessageFunctions.onPostMessage(POST_MESSAGES.BACK_TO_SEARCH, {});
|
|
79496
|
-
dispatch({ type: ActionTypes$2.GO_BACK_CREDENTIALS, payload:
|
|
79721
|
+
dispatch({ type: ActionTypes$2.GO_BACK_CREDENTIALS, payload: initialConfig });
|
|
79497
79722
|
}
|
|
79498
79723
|
};
|
|
79499
79724
|
const _handleOAuthGoBack = () => {
|
|
79500
79725
|
if (state.returnToMicrodeposits) {
|
|
79501
79726
|
dispatch(stepToMicrodeposits$1());
|
|
79502
79727
|
setState({ ...state, returnToMicrodeposits: false });
|
|
79503
|
-
} else if (consentIsEnabled) {
|
|
79504
|
-
dispatch(
|
|
79728
|
+
} else if (consentIsEnabled || connectConfig.additional_product_option) {
|
|
79729
|
+
dispatch(handleGoBackWithSideEffects());
|
|
79505
79730
|
} else {
|
|
79506
79731
|
postMessageFunctions.onPostMessage(POST_MESSAGES.BACK_TO_SEARCH, {});
|
|
79507
|
-
dispatch({ type: ActionTypes$2.GO_BACK_OAUTH, payload:
|
|
79732
|
+
dispatch({ type: ActionTypes$2.GO_BACK_OAUTH, payload: initialConfig });
|
|
79508
79733
|
}
|
|
79509
79734
|
};
|
|
79510
79735
|
const _handleStepDOMChange = useCallback((ref) => {
|
|
@@ -79560,7 +79785,7 @@ const Connect$2 = ({
|
|
|
79560
79785
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
79561
79786
|
ConnectNavigationHeader,
|
|
79562
79787
|
{
|
|
79563
|
-
connectGoBack: () => dispatch(
|
|
79788
|
+
connectGoBack: () => dispatch(handleGoBackWithSideEffects()),
|
|
79564
79789
|
stepComponentRef: state.stepComponentRef
|
|
79565
79790
|
}
|
|
79566
79791
|
),
|
|
@@ -80069,6 +80294,15 @@ const frCa = {
|
|
|
80069
80294
|
"No eligible accounts": "Aucun compte admissible",
|
|
80070
80295
|
"Only checking or savings accounts can be used for transfers. If you have one at %1, make sure to select it when connecting. Otherwise, try connecting a different institution.": "Seuls les comptes chèques ou d’épargne peuvent être utilisés pour les transferts. Si vous en avez un à %1, assurez-vous de le sélectionner lors de la connexion. Sinon, essayez de connecter une autre institution.",
|
|
80071
80296
|
Required: Required$1,
|
|
80297
|
+
"Add financial management?": "Ajouter la gestion financière ?",
|
|
80298
|
+
"You are connecting this account for payments and transfers. Would you also like to connect it for financial management to track income and spending?": "Vous connectez ce compte pour les paiements et les virements. Souhaitez-vous également le connecter pour la gestion financière afin de suivre vos revenus et vos dépenses ?",
|
|
80299
|
+
"Yes, add financial management": "Oui, ajoutez la gestion financière",
|
|
80300
|
+
"No, just transfers and payment": "Non, juste des virements et des paiements",
|
|
80301
|
+
"Add transfers and payments?": "Ajouter des transferts et des paiements ?",
|
|
80302
|
+
"You are connecting this account for financial management. Would you also like to connect it for transfers and payments to quickly move money to and from this institution?": "Vous connectez ce compte pour la gestion financière. Souhaitez-vous également le connecter pour effectuer des virements et des paiements afin de transférer rapidement des fonds vers et depuis cette institution ?",
|
|
80303
|
+
"Yes, add transfers and payments": "Oui, ajouter des transferts et des paiements",
|
|
80304
|
+
"No, just financial management": "Non, juste la gestion financière",
|
|
80305
|
+
"Select an account to connect": "Sélectionnez un compte pour vous connecter",
|
|
80072
80306
|
"connect/disclosure/policy/text\u0004By clicking Continue, you agree to the ": "En cliquant sur Continuer, vous acceptez la ",
|
|
80073
80307
|
"connect/disclosure/policy/link\u0004MX Privacy Policy.": "Politique de confidentialité de MX.",
|
|
80074
80308
|
"connect/disclosure/policy/link\u0004MX Privacy Policy": "Politique de confidentialité de MX.",
|
|
@@ -80556,6 +80790,15 @@ const es = {
|
|
|
80556
80790
|
"No eligible accounts": "No hay cuentas elegibles",
|
|
80557
80791
|
"Only checking or savings accounts can be used for transfers. If you have one at %1, make sure to select it when connecting. Otherwise, try connecting a different institution.": "Solo se pueden usar cuentas de control o ahorro para transferencias. Si tiene uno en %1, asegúrese de seleccionarlo al conectarlo. De lo contrario, intente conectar una institución diferente.",
|
|
80558
80792
|
Required: Required,
|
|
80793
|
+
"Add financial management?": "¿Añadir gestión financiera?",
|
|
80794
|
+
"You are connecting this account for payments and transfers. Would you also like to connect it for financial management to track income and spending?": "Estás conectando esta cuenta para pagos y transferencias. ¿Te gustaría conectarla también para la gestión financiera y el seguimiento de ingresos y gastos?",
|
|
80795
|
+
"Yes, add financial management": "Sí, añadir gestión financiera",
|
|
80796
|
+
"No, just transfers and payments": "No, solo transferencias y pagos",
|
|
80797
|
+
"Add transfers and payments?": "¿Añadir transferencias y pagos?",
|
|
80798
|
+
"You are connecting this account for financial management. Would you also like to connect it for transfers and payments to quickly move money to and from this institution?": "Estás conectando esta cuenta para la gestión financiera. ¿Te gustaría conectarla también para transferencias y pagos para transferir dinero rápidamente desde y hacia esta institución?",
|
|
80799
|
+
"Yes, add transfers and payments": "Sí, añadir transferencias y pagos",
|
|
80800
|
+
"No, just financial management": "No, sólo gestión financiera",
|
|
80801
|
+
"Select an account to connect": "Seleccione una cuenta para conectarse",
|
|
80559
80802
|
"connect/disclosure/button\u0004Continue": "Continuar",
|
|
80560
80803
|
"connect/disclosure/policy/text\u0004By clicking Continue, you agree to the ": "Al hacer clic en Continuar, tu aceptas la ",
|
|
80561
80804
|
"connect/disclosure/policy/link\u0004MX Privacy Policy.": "Política de privacidad de Money Experience.",
|