@tap-payments/auth-jsconnect 2.6.19-test → 2.6.23-test

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.
Files changed (64) hide show
  1. package/build/@types/app.d.ts +2 -1
  2. package/build/@types/app.js +1 -0
  3. package/build/api/auth.d.ts +1 -0
  4. package/build/api/auth.js +5 -1
  5. package/build/api/index.d.ts +2 -0
  6. package/build/api/lead.d.ts +1 -0
  7. package/build/api/lead.js +50 -1
  8. package/build/app/rootReducer.d.ts +1 -0
  9. package/build/app/rootReducer.js +3 -1
  10. package/build/app/store.d.ts +2 -0
  11. package/build/components/AnimationFlow/AnimationFlow.d.ts +2 -1
  12. package/build/components/AnimationFlow/AnimationFlow.js +3 -3
  13. package/build/components/AnimationFlow/Dialog.d.ts +2 -1
  14. package/build/components/AnimationFlow/Dialog.js +2 -2
  15. package/build/constants/api.d.ts +2 -0
  16. package/build/constants/api.js +4 -0
  17. package/build/constants/app.d.ts +5 -0
  18. package/build/constants/app.js +24 -0
  19. package/build/constants/dummy.js +0 -19
  20. package/build/features/app/board/boardStore.d.ts +30 -0
  21. package/build/features/app/board/boardStore.js +223 -0
  22. package/build/features/app/connect/connectStore.d.ts +3 -1
  23. package/build/features/app/connect/connectStore.js +6 -2
  24. package/build/features/app/connectExpress/connectExpressStore.d.ts +4 -2
  25. package/build/features/app/connectExpress/connectExpressStore.js +93 -8
  26. package/build/features/board/Board.d.ts +9 -0
  27. package/build/features/board/Board.js +73 -0
  28. package/build/features/board/index.d.ts +1 -0
  29. package/build/features/board/index.js +1 -0
  30. package/build/features/board/screens/ResetPasswordSuccess/ResetPasswordSuccess.d.ts +5 -0
  31. package/build/features/board/screens/ResetPasswordSuccess/ResetPasswordSuccess.js +21 -0
  32. package/build/features/board/screens/ResetPasswordSuccess/index.d.ts +3 -0
  33. package/build/features/board/screens/ResetPasswordSuccess/index.js +2 -0
  34. package/build/features/board/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.d.ts +3 -0
  35. package/build/features/board/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +27 -0
  36. package/build/features/board/screens/SuccessWithFlowButtons/index.d.ts +2 -0
  37. package/build/features/board/screens/SuccessWithFlowButtons/index.js +2 -0
  38. package/build/features/board/screens/Verify/OTPInput.d.ts +7 -0
  39. package/build/features/board/screens/Verify/OTPInput.js +51 -0
  40. package/build/features/board/screens/Verify/Verify.d.ts +5 -0
  41. package/build/features/board/screens/Verify/Verify.js +74 -0
  42. package/build/features/board/screens/Verify/index.d.ts +2 -0
  43. package/build/features/board/screens/Verify/index.js +2 -0
  44. package/build/features/board/screens/Verify/validation.d.ts +8 -0
  45. package/build/features/board/screens/Verify/validation.js +4 -0
  46. package/build/features/connect/Connect.js +1 -1
  47. package/build/features/connect/screens/BusinessCountry/BusinessCountry.js +4 -1
  48. package/build/features/connect/screens/CivilID/CivilID.js +5 -2
  49. package/build/features/connect/screens/Mobile/Mobile.js +5 -2
  50. package/build/features/connect/screens/NID/NID.js +5 -2
  51. package/build/features/connectExpress/ConnectExpress.js +8 -7
  52. package/build/features/connectExpress/screens/BusinessCountry/BusinessCountry.js +4 -1
  53. package/build/features/connectExpress/screens/CivilID/CivilID.js +9 -3
  54. package/build/features/connectExpress/screens/CivilID/IDNumber.js +7 -2
  55. package/build/features/connectExpress/screens/Mobile/Mobile.js +6 -3
  56. package/build/features/connectExpress/screens/Mobile/TAC.js +1 -1
  57. package/build/features/connectExpress/screens/NID/NID.js +5 -2
  58. package/build/features/featuresScreens.d.ts +1 -0
  59. package/build/features/featuresScreens.js +17 -0
  60. package/build/features/shared/BusinessCountry/BusinessCountry.js +11 -10
  61. package/build/hooks/useAppDispatch.d.ts +1 -0
  62. package/build/index.d.ts +3 -2
  63. package/build/index.js +4 -2
  64. package/package.json +1 -1
@@ -98,6 +98,7 @@ export interface ConnectData {
98
98
  brandData: BrandFormValues & ResponseData;
99
99
  brandSegmentData: BrandSegmentFormValues & ResponseData;
100
100
  flowName: FlowsTypes;
101
+ isStartFromBusinessCountry?: boolean;
101
102
  }
102
103
  export interface ConnectState extends SharedState<ConnectData> {
103
104
  customLoading?: boolean;
@@ -105,6 +106,7 @@ export interface ConnectState extends SharedState<ConnectData> {
105
106
  export declare const connectSlice: import("@reduxjs/toolkit").Slice<ConnectState, {
106
107
  clearError: (state: ConnectState) => void;
107
108
  storeLeadId: (state: ConnectState, action: ActionState<string>) => void;
109
+ storeIsStartFromBusinessCountry: (state: ConnectState, action: ActionState<boolean>) => void;
108
110
  stopLoader: (state: ConnectState) => void;
109
111
  resetMobileScreen: (state: ConnectState, action: ActionState<CountryCode>) => void;
110
112
  resetNIDScreen: (state: ConnectState) => void;
@@ -115,7 +117,7 @@ export declare const connectSlice: import("@reduxjs/toolkit").Slice<ConnectState
115
117
  setDefaultCountryCode: (state: ConnectState, action: ActionState<CountryCode>) => void;
116
118
  resetStore: (state: ConnectState) => void;
117
119
  }, "connect/store">;
118
- export declare const clearError: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, storeLeadId: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, string>, stopLoader: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetMobileScreen: import("@reduxjs/toolkit").ActionCreatorWithPayload<CountryCode, string>, resetOTPScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetIndividualScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetMerchantScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetNIDScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetCivilScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetStore: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setDefaultCountryCode: import("@reduxjs/toolkit").ActionCreatorWithPayload<CountryCode, string>;
120
+ export declare const clearError: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, storeLeadId: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, string>, stopLoader: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetMobileScreen: import("@reduxjs/toolkit").ActionCreatorWithPayload<CountryCode, string>, resetOTPScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetIndividualScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetMerchantScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetNIDScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetCivilScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetStore: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setDefaultCountryCode: import("@reduxjs/toolkit").ActionCreatorWithPayload<CountryCode, string>, storeIsStartFromBusinessCountry: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, string>;
119
121
  declare const _default: import("redux").Reducer<ConnectState, import("redux").AnyAction>;
120
122
  export default _default;
121
123
  export declare const connectSelector: (state: RootState) => ConnectState;
@@ -726,6 +726,7 @@ var initialState = {
726
726
  customLoading: false,
727
727
  data: {
728
728
  leadId: '',
729
+ isStartFromBusinessCountry: false,
729
730
  flowName: FlowsTypes.CONNECT,
730
731
  mobileData: {
731
732
  countryCode: defaultCountry,
@@ -780,6 +781,9 @@ export var connectSlice = createSlice({
780
781
  storeLeadId: function (state, action) {
781
782
  state.data.leadId = action.payload;
782
783
  },
784
+ storeIsStartFromBusinessCountry: function (state, action) {
785
+ state.data.isStartFromBusinessCountry = action.payload;
786
+ },
783
787
  stopLoader: function (state) {
784
788
  state.loading = false;
785
789
  },
@@ -806,7 +810,7 @@ export var connectSlice = createSlice({
806
810
  },
807
811
  resetStore: function (state) {
808
812
  var countryCode = state.data.mobileData.countryCode;
809
- state.data = __assign(__assign({}, initialState.data), { mobileData: __assign(__assign({}, initialState.data.mobileData), { countryCode: countryCode }), individualData: __assign(__assign({}, initialState.data.individualData), { countryCode: countryCode }) });
813
+ state.data = __assign(__assign({}, initialState.data), { isStartFromBusinessCountry: state.data.isStartFromBusinessCountry, mobileData: __assign(__assign({}, initialState.data.mobileData), { countryCode: countryCode }), individualData: __assign(__assign({}, initialState.data.individualData), { countryCode: countryCode }) });
810
814
  }
811
815
  },
812
816
  extraReducers: function (builder) {
@@ -1161,6 +1165,6 @@ export var connectSlice = createSlice({
1161
1165
  });
1162
1166
  }
1163
1167
  });
1164
- export var clearError = (_a = connectSlice.actions, _a.clearError), storeLeadId = _a.storeLeadId, stopLoader = _a.stopLoader, resetMobileScreen = _a.resetMobileScreen, resetOTPScreen = _a.resetOTPScreen, resetIndividualScreen = _a.resetIndividualScreen, resetMerchantScreen = _a.resetMerchantScreen, resetNIDScreen = _a.resetNIDScreen, resetCivilScreen = _a.resetCivilScreen, resetStore = _a.resetStore, setDefaultCountryCode = _a.setDefaultCountryCode;
1168
+ export var clearError = (_a = connectSlice.actions, _a.clearError), storeLeadId = _a.storeLeadId, stopLoader = _a.stopLoader, resetMobileScreen = _a.resetMobileScreen, resetOTPScreen = _a.resetOTPScreen, resetIndividualScreen = _a.resetIndividualScreen, resetMerchantScreen = _a.resetMerchantScreen, resetNIDScreen = _a.resetNIDScreen, resetCivilScreen = _a.resetCivilScreen, resetStore = _a.resetStore, setDefaultCountryCode = _a.setDefaultCountryCode, storeIsStartFromBusinessCountry = _a.storeIsStartFromBusinessCountry;
1165
1169
  export default connectSlice.reducer;
1166
1170
  export var connectSelector = function (state) { return state.connect; };
@@ -48,7 +48,7 @@ export declare const createCivilIdAuthAsync: import("@reduxjs/toolkit").AsyncThu
48
48
  }, CivilFormValues, {}>;
49
49
  export declare const verifyMobileOtpAsync: import("@reduxjs/toolkit").AsyncThunk<any, OTPFormValues, {}>;
50
50
  export declare const verifyNIDOtpAsync: import("@reduxjs/toolkit").AsyncThunk<any, OTPFormValues, {}>;
51
- export declare const verifyPACIAsync: import("@reduxjs/toolkit").AsyncThunk<void, verifyPACIAsyncParams, {}>;
51
+ export declare const verifyPACIAsync: import("@reduxjs/toolkit").AsyncThunk<any, verifyPACIAsyncParams, {}>;
52
52
  export declare const createCivilIDAuthIdentityAsync: import("@reduxjs/toolkit").AsyncThunk<{
53
53
  response: any;
54
54
  formData: CivilFormValues;
@@ -120,6 +120,7 @@ export interface ConnectExpressData {
120
120
  individualData: IndividualFormValues;
121
121
  businessData: BusinessDataFormValues;
122
122
  authenticationData: AuthenticationListFormValues;
123
+ isStartFromBusinessCountry?: boolean;
123
124
  }
124
125
  export interface ConnectExpressState extends SharedState<ConnectExpressData & ResponseData> {
125
126
  customLoading?: boolean;
@@ -129,6 +130,7 @@ export interface ConnectExpressState extends SharedState<ConnectExpressData & Re
129
130
  export declare const connectSlice: import("@reduxjs/toolkit").Slice<ConnectExpressState, {
130
131
  setLeadId(state: ConnectExpressState, action: ActionState<string>): void;
131
132
  setShowBoard(state: ConnectExpressState, action: ActionState<boolean>): void;
133
+ storeIsStartFromBusinessCountry: (state: ConnectExpressState, action: ActionState<boolean>) => void;
132
134
  setIsLeadIdPassed: (state: ConnectExpressState, action: ActionState<boolean>) => void;
133
135
  clearError: (state: ConnectExpressState) => void;
134
136
  setError(state: ConnectExpressState, action: ActionState<string>): void;
@@ -141,7 +143,7 @@ export declare const connectSlice: import("@reduxjs/toolkit").Slice<ConnectExpre
141
143
  resetStore: (state: ConnectExpressState) => void;
142
144
  resetIndividualScreen: (state: ConnectExpressState) => void;
143
145
  }, "connectExpress/store">;
144
- export declare const clearError: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, stopLoader: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setIsLeadIdPassed: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, string>, resetMobileScreen: import("@reduxjs/toolkit").ActionCreatorWithPayload<CountryCode, string>, resetOTPValue: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetNIDScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetCivilScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetStore: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setError: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, string>, setLeadId: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, string>, setShowBoard: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, string>, resetIndividualScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setDefaultCountryCode: import("@reduxjs/toolkit").ActionCreatorWithPayload<CountryCode, string>;
146
+ export declare const clearError: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, stopLoader: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setIsLeadIdPassed: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, string>, resetMobileScreen: import("@reduxjs/toolkit").ActionCreatorWithPayload<CountryCode, string>, resetOTPValue: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetNIDScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetCivilScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetStore: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setError: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, string>, setLeadId: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, string>, setShowBoard: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, string>, resetIndividualScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setDefaultCountryCode: import("@reduxjs/toolkit").ActionCreatorWithPayload<CountryCode, string>, storeIsStartFromBusinessCountry: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, string>;
145
147
  declare const _default: import("redux").Reducer<ConnectExpressState, import("redux").AnyAction>;
146
148
  export default _default;
147
149
  export declare const connectExpressSelector: (state: RootState) => ConnectExpressState;
@@ -392,7 +392,7 @@ export var createCivilIdAuthAsync = createAsyncThunk('connectExpress/createCivil
392
392
  step_name: CONNECT_EXPRESS_STEP_NAMES.CREATE_AUTH_CIVIL_ID,
393
393
  encryption_contract: ['user_credentail.identification_id']
394
394
  };
395
- return [4, API.authService.createAuth(requestBody)];
395
+ return [4, API.authService.createExpressAuth(requestBody)];
396
396
  case 1:
397
397
  data = _d.sent();
398
398
  thunkApi.dispatch(handleNextScreenStep());
@@ -537,12 +537,80 @@ export var verifyNIDOtpAsync = createAsyncThunk('connectExpress/verifyNIDOtpAsyn
537
537
  }
538
538
  });
539
539
  }); });
540
- export var verifyPACIAsync = createAsyncThunk('connectExpress/verifyPACIAsync', function (_a, thunkApi) {
541
- var onSuccess = _a.onSuccess;
542
- return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_b) {
543
- return [2];
544
- }); });
545
- });
540
+ export var verifyPACIAsync = createAsyncThunk('connectExpress/verifyPACIAsync', function (params, thunkApi) { return __awaiter(void 0, void 0, void 0, function () {
541
+ var _a, settings, connectExpress, authData, _b, scope, redirectUrl, authConfigData, isScopeAuthentication, bi, isDataHasOperator, expiry, interval, maxCalls, count, data, isSuccess, authId, urlQueryStart, _c, brandList, entityList, stepName, needToCollectMoreInfo, creatingAccount;
542
+ var _d;
543
+ return __generator(this, function (_e) {
544
+ switch (_e.label) {
545
+ case 0:
546
+ _a = thunkApi.getState(), settings = _a.settings, connectExpress = _a.connectExpress;
547
+ authData = (connectExpress.data.responseData || {}).authData;
548
+ _b = settings.data.appConfig, scope = _b.scope, redirectUrl = _b.redirectUrl, authConfigData = _b.data;
549
+ isScopeAuthentication = scope === SCOPE_AUTH;
550
+ bi = settings.data.deviceInfo.browser.browser_id;
551
+ isDataHasOperator = authConfigData === null || authConfigData === void 0 ? void 0 : authConfigData.includes('operator');
552
+ expiry = (authData === null || authData === void 0 ? void 0 : authData.expiry) || 120;
553
+ interval = 3;
554
+ maxCalls = Math.floor(expiry / interval);
555
+ count = 1;
556
+ _e.label = 1;
557
+ case 1:
558
+ if (!(count <= maxCalls)) return [3, 9];
559
+ if (thunkApi.signal.aborted) {
560
+ return [3, 9];
561
+ }
562
+ return [4, API.authService.getVerifyExpressAuth(authData === null || authData === void 0 ? void 0 : authData.auth_token)];
563
+ case 2:
564
+ data = _e.sent();
565
+ isSuccess = ((_d = data.status) === null || _d === void 0 ? void 0 : _d.toLowerCase()) === 'success';
566
+ if (!isSuccess) return [3, 6];
567
+ authId = data.auth.id;
568
+ thunkApi.dispatch(storeAuthId(authId));
569
+ if (isScopeAuthentication && !data.new_user && !isDataHasOperator && authId) {
570
+ if (settings.data.appConfig.mode === 'popup') {
571
+ settings.data.appConfig.onFlowCompleted({ auth_id: authId, bi: bi });
572
+ thunkApi.dispatch(handleOpen(false));
573
+ return [2, data];
574
+ }
575
+ if (redirectUrl) {
576
+ urlQueryStart = redirectUrl.includes('?') ? '&' : '?';
577
+ window.open("".concat(redirectUrl).concat(urlQueryStart, "authentication_id=").concat(authId, "&bi=").concat(bi), '_self');
578
+ return [2, data];
579
+ }
580
+ }
581
+ if (!(isScopeAuthentication && !data.new_user && isDataHasOperator)) return [3, 4];
582
+ return [4, thunkApi.dispatch(retrieveAuthenticationListAsync({ individualId: data.individual_id })).unwrap()];
583
+ case 3:
584
+ _c = _e.sent(), brandList = _c.brandList, entityList = _c.entityList;
585
+ if (brandList.length && entityList.length) {
586
+ sleep(100).then(function () { return thunkApi.dispatch(handleNextScreenStep('CONNECT_EXPRESS_AUTHENTICATION_LIST_STEP')); });
587
+ return [2, data];
588
+ }
589
+ _e.label = 4;
590
+ case 4: return [4, thunkApi.dispatch(getLeadByIdAsync(data.lead.id)).unwrap()];
591
+ case 5:
592
+ _e.sent();
593
+ stepName = data.step_name;
594
+ needToCollectMoreInfo = stepName === 'collect_info';
595
+ creatingAccount = stepName === 'create_account';
596
+ if (creatingAccount) {
597
+ sleep(100).then(function () { return thunkApi.dispatch(handleCurrentActiveScreen('CONNECT_EXPRESS_WAITING_FOR_CREATING_ACCOUNT_STEP')); });
598
+ }
599
+ if (needToCollectMoreInfo) {
600
+ sleep(100).then(function () { return thunkApi.dispatch(handleCurrentActiveScreen('CONNECT_EXPRESS_COLLECT_INDIVIDUAL_INFO_STEP')); });
601
+ }
602
+ return [2, data];
603
+ case 6: return [4, sleep(interval * 1000)];
604
+ case 7:
605
+ _e.sent();
606
+ _e.label = 8;
607
+ case 8:
608
+ count++;
609
+ return [3, 1];
610
+ case 9: throw new Error('paci_verification_failed');
611
+ }
612
+ });
613
+ }); });
546
614
  export var createCivilIDAuthIdentityAsync = createAsyncThunk('connectExpress/createCivilIDAuthIdentityAsync', function (params, thunkApi) { return __awaiter(void 0, void 0, void 0, function () {
547
615
  var _a, settings, connectExpress, civilId, countryCode, requestBody, data;
548
616
  var _b, _c, _d;
@@ -951,6 +1019,7 @@ var initialState = {
951
1019
  data: {
952
1020
  showBoard: true,
953
1021
  isLeadIdPassed: false,
1022
+ isStartFromBusinessCountry: false,
954
1023
  flowName: FlowsTypes.CONNECT_EXPRESS,
955
1024
  mobileData: {
956
1025
  countryCode: defaultCountry,
@@ -998,6 +1067,9 @@ export var connectSlice = createSlice({
998
1067
  setShowBoard: function (state, action) {
999
1068
  state.data.showBoard = action.payload;
1000
1069
  },
1070
+ storeIsStartFromBusinessCountry: function (state, action) {
1071
+ state.data.isStartFromBusinessCountry = action.payload;
1072
+ },
1001
1073
  setIsLeadIdPassed: function (state, action) {
1002
1074
  state.data.isLeadIdPassed = action.payload;
1003
1075
  },
@@ -1228,6 +1300,19 @@ export var connectSlice = createSlice({
1228
1300
  .addCase(verifyNIDOtpAsync.rejected, function (state, action) {
1229
1301
  state.loading = false;
1230
1302
  state.error = action.error.message;
1303
+ })
1304
+ .addCase(verifyPACIAsync.pending, function (state) {
1305
+ state.loading = true;
1306
+ state.error = null;
1307
+ })
1308
+ .addCase(verifyPACIAsync.fulfilled, function (state, action) {
1309
+ var _a;
1310
+ state.loading = false;
1311
+ state.data.responseData = __assign(__assign({}, state.data.responseData), { authData: __assign(__assign({}, (_a = state.data.responseData) === null || _a === void 0 ? void 0 : _a.authData), action.payload) });
1312
+ })
1313
+ .addCase(verifyPACIAsync.rejected, function (state, action) {
1314
+ state.loading = false;
1315
+ state.error = action.error.message;
1231
1316
  })
1232
1317
  .addCase(verifyNIDOtpLeadIdentityAsync.pending, function (state) {
1233
1318
  state.loading = true;
@@ -1469,6 +1554,6 @@ export var connectSlice = createSlice({
1469
1554
  });
1470
1555
  }
1471
1556
  });
1472
- export var clearError = (_a = connectSlice.actions, _a.clearError), stopLoader = _a.stopLoader, setIsLeadIdPassed = _a.setIsLeadIdPassed, resetMobileScreen = _a.resetMobileScreen, resetOTPValue = _a.resetOTPValue, resetNIDScreen = _a.resetNIDScreen, resetCivilScreen = _a.resetCivilScreen, resetStore = _a.resetStore, setError = _a.setError, setLeadId = _a.setLeadId, setShowBoard = _a.setShowBoard, resetIndividualScreen = _a.resetIndividualScreen, setDefaultCountryCode = _a.setDefaultCountryCode;
1557
+ export var clearError = (_a = connectSlice.actions, _a.clearError), stopLoader = _a.stopLoader, setIsLeadIdPassed = _a.setIsLeadIdPassed, resetMobileScreen = _a.resetMobileScreen, resetOTPValue = _a.resetOTPValue, resetNIDScreen = _a.resetNIDScreen, resetCivilScreen = _a.resetCivilScreen, resetStore = _a.resetStore, setError = _a.setError, setLeadId = _a.setLeadId, setShowBoard = _a.setShowBoard, resetIndividualScreen = _a.resetIndividualScreen, setDefaultCountryCode = _a.setDefaultCountryCode, storeIsStartFromBusinessCountry = _a.storeIsStartFromBusinessCountry;
1473
1558
  export default connectSlice.reducer;
1474
1559
  export var connectExpressSelector = function (state) { return state.connectExpress; };
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { LibConfig } from '../../@types';
3
+ export interface BoardLibProps extends LibConfig {
4
+ leadId: string;
5
+ }
6
+ export declare function BoardElement(props: BoardLibProps): JSX.Element;
7
+ export declare function renderBoardLib(config: BoardLibProps, elementId: string): {
8
+ unmount: () => void;
9
+ };
@@ -0,0 +1,73 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ import { jsx as _jsx } from "react/jsx-runtime";
24
+ import React, { memo } from 'react';
25
+ import { createRoot } from 'react-dom/client';
26
+ import { useAppTheme, useAppSelector, useErrorListener, useAppConfig, useStepStartedListener, useAppDispatch } from '../../hooks';
27
+ import { settingsSelector } from '../../app/settings';
28
+ import AnimationFlow from '../../components/AnimationFlow';
29
+ import { store } from '../../app/store';
30
+ import { ReduxProvider, ThemeProvider } from '../../components/Providers';
31
+ import Collapse from '../../components/Collapse';
32
+ import { findOrCreateElementAndInject, sendPageView } from '../../utils';
33
+ import { FeatureContainer } from '../shared/Containers';
34
+ import { BOARD_SCREENS_NAVIGATION } from '../../constants';
35
+ import { boardFeatureScreens } from '../featuresScreens';
36
+ import { createVerifyTokenBy, boardSelector } from '../../features/app/board/boardStore';
37
+ import Background from '../shared/Background';
38
+ var Board = memo(function (_a) {
39
+ var leadId = _a.leadId, props = __rest(_a, ["leadId"]);
40
+ var theme = useAppTheme().theme;
41
+ var _b = useAppSelector(settingsSelector), data = _b.data, error = _b.error, settingLoading = _b.loading;
42
+ var _c = useAppSelector(boardSelector), customLoading = _c.customLoading, loading = _c.loading, bankError = _c.error;
43
+ useAppConfig(__assign({ navigation: BOARD_SCREENS_NAVIGATION }, props));
44
+ useErrorListener(bankError || error);
45
+ useStepStartedListener();
46
+ var activeScreen = data.activeScreen, isTapOrigin = data.isTapOrigin, open = data.open, merchant = data.merchant, isMaturityExpress = data.isMaturityExpress;
47
+ var dispatch = useAppDispatch();
48
+ React.useEffect(function () {
49
+ sendPageView({
50
+ title: 'Board'
51
+ });
52
+ }, []);
53
+ React.useEffect(function () {
54
+ if (data.isValidOperator && props.open && !settingLoading)
55
+ dispatch(createVerifyTokenBy(leadId));
56
+ }, [data.isValidOperator, settingLoading]);
57
+ var initialLoading = settingLoading || customLoading;
58
+ return (_jsx(ThemeProvider, __assign({ theme: theme }, { children: _jsx(Background, __assign({ open: open, isTapOrigin: isTapOrigin, loading: initialLoading }, { children: _jsx(AnimationFlow, __assign({ pointerEvents: loading ? 'none' : 'auto', isTapOrigin: isTapOrigin, loading: initialLoading, error: error, open: open, breakpoint: 'sm', screenId: activeScreen.name, merchantInfo: merchant, isMaturityExpress: isMaturityExpress }, { children: _jsx(FeatureContainer, __assign({ isMaturityExpress: isMaturityExpress }, { children: boardFeatureScreens.map(function (_a, index) {
59
+ var Element = _a.element, name = _a.name;
60
+ var isActive = activeScreen.name === name;
61
+ return (_jsx(Collapse, __assign({ in: isActive, timeout: { enter: 1000, exit: 800 } }, { children: _jsx(Element, {}) }), index));
62
+ }) })) })) })) })));
63
+ });
64
+ export function BoardElement(props) {
65
+ return (_jsx(ReduxProvider, __assign({ store: store }, { children: _jsx(Board, __assign({}, props)) })));
66
+ }
67
+ export function renderBoardLib(config, elementId) {
68
+ var element = findOrCreateElementAndInject(elementId);
69
+ var root = createRoot(element);
70
+ root.render(_jsx(BoardElement, __assign({}, config)));
71
+ var unmount = function () { return root.unmount(); };
72
+ return { unmount: unmount };
73
+ }
@@ -0,0 +1 @@
1
+ export * from './Board';
@@ -0,0 +1 @@
1
+ export * from './Board';
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ export interface ResetPasswordSuccessProps {
3
+ }
4
+ declare const _default: React.MemoExoticComponent<({}: ResetPasswordSuccessProps) => JSX.Element>;
5
+ export default _default;
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from 'react';
3
+ import { Trans, useTranslation } from 'react-i18next';
4
+ import { handlePrevScreenStep } from '../../../../app/settings';
5
+ import SuccessScreen from '../../../shared/SuccessScreen';
6
+ import { boardSelector } from '../../../app/board/boardStore';
7
+ import { maskEmail } from '../../../../utils';
8
+ import { useAppDispatch, useAppSelector } from '../../../../hooks';
9
+ var ResetPasswordSuccess = function (_a) {
10
+ var _b, _c;
11
+ var t = useTranslation().t;
12
+ var dispatch = useAppDispatch();
13
+ var data = useAppSelector(boardSelector).data;
14
+ var email = (((_c = (_b = data.verify.responseBody) === null || _b === void 0 ? void 0 : _b.business) === null || _c === void 0 ? void 0 : _c.primary_contact) || {}).email;
15
+ var maskedEmail = maskEmail(email);
16
+ var onBack = function () {
17
+ dispatch(handlePrevScreenStep());
18
+ };
19
+ return (_jsx(SuccessScreen, { title: t("reset_password_success_title"), description: _jsx(Trans, { i18nKey: 'reset_password_success_description_dev', values: { email: maskedEmail } }), showEmailProviders: true, enableBack: true, onBack: function () { return onBack(); } }));
20
+ };
21
+ export default React.memo(ResetPasswordSuccess);
@@ -0,0 +1,3 @@
1
+ import ResetPasswordSuccess, { ResetPasswordSuccessProps } from './ResetPasswordSuccess';
2
+ export type { ResetPasswordSuccessProps };
3
+ export default ResetPasswordSuccess;
@@ -0,0 +1,2 @@
1
+ import ResetPasswordSuccess from './ResetPasswordSuccess';
2
+ export default ResetPasswordSuccess;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const _default: React.MemoExoticComponent<() => JSX.Element>;
3
+ export default _default;
@@ -0,0 +1,27 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import { memo } from 'react';
14
+ import { settingsSelector } from '../../../../app/settings';
15
+ import { useAppSelector, useAppDispatch } from '../../../../hooks';
16
+ import { SCOPE_AUTH } from '../../../../constants';
17
+ import { boardSelector } from '../../../app/board/boardStore';
18
+ import SuccessFlowButtons from '../../../shared/SuccessFlowButtons';
19
+ var SuccessWithFlowButtons = function () {
20
+ var dispatch = useAppDispatch();
21
+ var _a = useAppSelector(boardSelector), data = _a.data, loading = _a.loading;
22
+ var settingsData = useAppSelector(settingsSelector).data;
23
+ var isScopeAuthentication = settingsData.appConfig.scope === SCOPE_AUTH;
24
+ var _b = data.verify.responseBody || {}, flows = _b.flows, entity = _b.entity, brand = _b.brand, bank = _b.bank_account, merchant = _b.merchant, user = _b.user, business = _b.business, board_id = _b.board_id, board_info_id = _b.board_info_id, name = _b.name, individuals = _b.individuals;
25
+ return (_jsx(SuccessFlowButtons, { flowName: data.flowName, loading: loading, bank: bank, brand: brand, entity: entity, merchant: merchant, user: __assign({ names: { en: name } }, user), business: business, boardId: board_id, boardInfoId: board_info_id, individuals: individuals, flows: flows || [] }));
26
+ };
27
+ export default memo(SuccessWithFlowButtons);
@@ -0,0 +1,2 @@
1
+ import SuccessWithFlowButtons from './SuccessWithFlowButtons';
2
+ export default SuccessWithFlowButtons;
@@ -0,0 +1,2 @@
1
+ import SuccessWithFlowButtons from './SuccessWithFlowButtons';
2
+ export default SuccessWithFlowButtons;
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ export interface OTPProps {
3
+ loading: boolean;
4
+ setLoading: (flag: boolean) => void;
5
+ }
6
+ declare const _default: React.MemoExoticComponent<({ loading }: OTPProps) => JSX.Element>;
7
+ export default _default;
@@ -0,0 +1,51 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import * as React from 'react';
14
+ import Box from '@mui/material/Box/Box';
15
+ import { styled } from '@mui/material/styles';
16
+ import OTPField from '../../../shared/OTP';
17
+ import { useController, useFormContext } from 'react-hook-form';
18
+ import { useTranslation } from 'react-i18next';
19
+ import { DEFAULT_TIMER_VALUE } from '../../../../constants';
20
+ import { useAppDispatch, useAppSelector } from '../../../../hooks';
21
+ import { isTokenExpired } from '../../../../utils';
22
+ import { resendOTP, boardSelector, clearError } from '../../../app/board/boardStore';
23
+ var BoxStyled = styled(Box)(function (_a) {
24
+ var theme = _a.theme;
25
+ return ({
26
+ display: 'flex',
27
+ flexDirection: 'column',
28
+ fontFamily: theme.typography.fontFamily
29
+ });
30
+ });
31
+ var OTPInput = function (_a) {
32
+ var loading = _a.loading;
33
+ var _b = useFormContext(), control = _b.control, setValue = _b.setValue;
34
+ var t = useTranslation().t;
35
+ var otpControl = useController({ name: 'otp', control: control });
36
+ var dispatch = useAppDispatch();
37
+ var error = useAppSelector(boardSelector).error;
38
+ var handleOnOTPChange = function (otp) {
39
+ if (error)
40
+ dispatch(clearError());
41
+ otpControl.field.onChange(otp);
42
+ };
43
+ var handleOnResendOTP = function () {
44
+ if (otpControl.field.value)
45
+ setValue('otp', '', { shouldValidate: true });
46
+ dispatch(resendOTP());
47
+ };
48
+ var otpValue = otpControl.field.value;
49
+ return (_jsx(BoxStyled, __assign({ dir: 'ltr' }, { children: _jsx(OTPField, { loading: loading, timeEndLabel: t('ide_otp_resend_label'), timerInSeconds: DEFAULT_TIMER_VALUE, onResetClick: handleOnResendOTP, value: otpValue, hasError: isTokenExpired(error), onChange: function (number) { return handleOnOTPChange(number.toString()); } }) })));
50
+ };
51
+ export default React.memo(OTPInput);
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ export interface OTPProps {
3
+ }
4
+ declare const _default: React.MemoExoticComponent<({}: OTPProps) => JSX.Element>;
5
+ export default _default;
@@ -0,0 +1,74 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import * as React from 'react';
14
+ import { useAppDispatch } from '../../../../hooks';
15
+ import { useTranslation } from 'react-i18next';
16
+ import { useForm, FormProvider } from 'react-hook-form';
17
+ import { yupResolver } from '@hookform/resolvers/yup';
18
+ import Box from '@mui/material/Box/Box';
19
+ import { styled } from '@mui/material/styles';
20
+ import { useLanguage, useAppSelector } from '../../../../hooks';
21
+ import { deepCopy, maskPhone } from '../../../../utils';
22
+ import Form from '../../../../components/Form';
23
+ import Text from '../../../../components/Text';
24
+ import { ScreenContainer } from '../../../shared/Containers';
25
+ import { boardSelector, clearError, resetOTPScreen, verifyBoardLeadOTP } from '../../../app/board/boardStore';
26
+ import Button from '../../../shared/Button';
27
+ import { OTPValidation } from './validation';
28
+ import OTPInput from './OTPInput';
29
+ var OTPTitleContainerStyled = styled(Box)(function (_a) {
30
+ var theme = _a.theme;
31
+ return ({
32
+ background: theme.palette.common.white,
33
+ border: '1px solid',
34
+ borderColor: theme.palette.divider,
35
+ direction: theme.direction,
36
+ borderRadius: theme.spacing(0, 0, 1.25, 1.25),
37
+ marginBottom: theme.spacing(5.75)
38
+ });
39
+ });
40
+ var OTPTitleStyled = styled(Text)(function (_a) {
41
+ var theme = _a.theme;
42
+ return (__assign(__assign({}, theme.typography.body1), { color: theme.palette.text.primary, fontWeight: theme.typography.fontWeightLight, marginBlock: theme.spacing(1.75), marginInlineStart: theme.spacing(2.5), lineHeight: 1.75 }));
43
+ });
44
+ var FormStyled = styled(Form)(function () { return ({
45
+ display: 'flex',
46
+ flexDirection: 'column'
47
+ }); });
48
+ var VerifyNumber = function (_a) {
49
+ var _b;
50
+ var dispatch = useAppDispatch();
51
+ var _c = useAppSelector(boardSelector), data = _c.data, loading = _c.loading, error = _c.error;
52
+ var methods = useForm({
53
+ resolver: yupResolver(OTPValidation),
54
+ defaultValues: data.otpData,
55
+ mode: 'onChange'
56
+ });
57
+ var t = useTranslation().t;
58
+ var isAr = useLanguage().isAr;
59
+ var _d = React.useState(false), resendLoading = _d[0], setResendLoading = _d[1];
60
+ var phone = (_b = data.verify.responseBody) === null || _b === void 0 ? void 0 : _b.verification_by.sent_to;
61
+ React.useEffect(function () {
62
+ if (error && methods.formState.isValid && phone)
63
+ dispatch(clearError());
64
+ return function () {
65
+ dispatch(resetOTPScreen());
66
+ };
67
+ }, [methods.formState.isValid]);
68
+ var onSubmit = function (formData) {
69
+ dispatch(verifyBoardLeadOTP(deepCopy(formData)));
70
+ };
71
+ var disabled = !methods.formState.isValid || !!error || !phone || resendLoading;
72
+ return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(OTPTitleContainerStyled, { children: _jsxs(OTPTitleStyled, { children: [loading ? t('ide_otp_waiting_title') : t('ide_opt_sent_title'), !loading && phone && _jsx("span", __assign({ dir: 'ltr' }, { children: "".concat(maskPhone(phone || '')) }))] }) }), _jsx(OTPInput, { loading: resendLoading, setLoading: setResendLoading }), _jsx(Button, __assign({ disableBack: true, disabled: disabled, isAr: isAr, loading: loading, error: t(error || '') }, { children: t('next') }))] })) })) }));
73
+ };
74
+ export default React.memo(VerifyNumber);
@@ -0,0 +1,2 @@
1
+ import OTP from './Verify';
2
+ export default OTP;
@@ -0,0 +1,2 @@
1
+ import OTP from './Verify';
2
+ export default OTP;
@@ -0,0 +1,8 @@
1
+ import * as yup from 'yup';
2
+ export declare const OTPValidation: yup.ObjectSchema<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
3
+ otp: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
4
+ }>, import("yup/lib/object").AnyObject, import("yup/lib/object").TypeOfShape<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
5
+ otp: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
6
+ }>>, import("yup/lib/object").AssertsShape<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
7
+ otp: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
8
+ }>>>;
@@ -0,0 +1,4 @@
1
+ import * as yup from 'yup';
2
+ export var OTPValidation = yup.object().shape({
3
+ otp: yup.string().min(6, 'otp_min_length').required('otp_required')
4
+ });
@@ -130,7 +130,7 @@ var Connect = memo(function (props) {
130
130
  var handleDialogClose = function () {
131
131
  dispatch(handleOpen(false));
132
132
  };
133
- return (_jsx(ThemeProvider, __assign({ theme: theme }, { children: _jsx(Background, __assign({ open: open, isTapOrigin: isTapOrigin, loading: settingLoading || customLoading }, { children: _jsx(AnimationFlow, __assign({ pointerEvents: loading ? 'none' : 'auto', onConfirm: handleDialogClose, isTapOrigin: isTapOrigin, loading: settingLoading || customLoading, error: error, open: open, screenId: activeScreen.name, merchantInfo: merchant, isMaturityExpress: false }, { children: _jsx(FeatureContainer, __assign({ isMaturityExpress: false }, { children: connectFeatureScreens.map(function (_a, index) {
133
+ return (_jsx(ThemeProvider, __assign({ theme: theme }, { children: _jsx(Background, __assign({ open: open, isTapOrigin: isTapOrigin, loading: settingLoading || customLoading }, { children: _jsx(AnimationFlow, __assign({ pointerEvents: loading ? 'none' : 'auto', onConfirm: handleDialogClose, isTapOrigin: isTapOrigin, loading: settingLoading || customLoading, error: error, open: open, screenId: activeScreen.name, merchantInfo: merchant, isMaturityExpress: false, showTextLogo: activeScreen.name !== 'CONNECT_BUSINESS_COUNTRY_STEP' }, { children: _jsx(FeatureContainer, __assign({ isMaturityExpress: false }, { children: connectFeatureScreens.map(function (_a, index) {
134
134
  var Element = _a.element, name = _a.name;
135
135
  var isActive = activeScreen.name === name;
136
136
  return (_jsx(Collapse, __assign({ in: isActive, timeout: { enter: 1000, exit: 800 } }, { children: _jsx(Element, {}) }), index));
@@ -41,11 +41,14 @@ import { ScreenContainer } from '../../../shared/Containers';
41
41
  import BusinessCountry from '../../../shared/BusinessCountry';
42
42
  import { findCountryByIso2, isKW, isOtherThanKWOrSA } from '../../../../utils';
43
43
  import { handleNextScreenStep, handleSetCountryByIso2, settingsSelector } from '../../../../app/settings';
44
- import { connectSelector, setDefaultCountryCode, updateBusinessCountry } from '../../../app/connect/connectStore';
44
+ import { connectSelector, setDefaultCountryCode, updateBusinessCountry, storeIsStartFromBusinessCountry } from '../../../app/connect/connectStore';
45
45
  var BusinessCountryScreen = function (_a) {
46
46
  var dispatch = useAppDispatch();
47
47
  var settingsData = useAppSelector(settingsSelector).data;
48
48
  var _b = useAppSelector(connectSelector), data = _b.data, loading = _b.loading;
49
+ React.useEffect(function () {
50
+ dispatch(storeIsStartFromBusinessCountry(true));
51
+ }, []);
49
52
  var defaultValue = React.useMemo(function () {
50
53
  var _a, _b;
51
54
  return ((_a = settingsData.businessCountry) === null || _a === void 0 ? void 0 : _a.iso2) || ((_b = settingsData.ipCountry) === null || _b === void 0 ? void 0 : _b.iso2);