\\x0a\\x20\\x20\\x20\\x20\\x20\\x20\\x20'+mm(0x1fba)+mm(0x43ce)+mm(0x19b0)+mm(0x3a55)+mm(0x1ca4)+mm(0x1cf1)+mm(0x1e36)+'a-hidden=\\x22tr'+mm(0x33b1)+mm(0x3923)+mm(0x6001)+mm(0x5a88)+mm(0x2f94)+mm(0x2cb7)+mm(0x1ea0)+mm(0x61b0)+mm(0x447f)+'>\\x0a\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20\\x20'+mm(0x38bb)+mm(0x4f22)+mm(0x5c75)+mm(0x2f07)+'d=\\x22DOM_FT_re'+mm(0x4a41)+mm(0x5069)+mm(0x5b4f)+mm(0x125b)+mm(0x47da)+mm(0x5112)+mm(0x189c)+mm(0xcf0)+mm(0x61b0)+mm(0x46c5)+mm(0x4135)+mm(0x58ec)+mm(0x2621)+mm(0x225)+mm(0x4f22)+'/div>\\x0a\\x20\\x20\\x20\\x20\\x20\\x20'+mm(0x38bb)+mm(0x447f)+mm(0x5de7)+mm(0x1fa3)+mm(0x3171)+mm(0x36fc)+'class=\\x22CLASS'+mm(0x350b)+'role=\\x22button'+'\\x22\\x20di')+(mm(0xd99)+mm(0x4c7a)+'/div>\\x0a\\x20\\x20\\x20\\x20'+mm(0x5114)+mm(0x5083)+'Screen\\x20Backg'+mm(0x2408)+mm(0x61e7)+mm(0x23fb)+mm(0x49d6)+mm(0x28fb)+mm(0x5f1d)+'aria-hidden='+mm(0x3d3c)+'dex=\\x22-1\\x22>\\x0a\\x20\\x20'+'\\x20\\x20\\x20\\x20\\x0a
\\x0a\\x0a You define your own API contracts with yourself and may choose to do something different here based on the error.\n _this.cancelDueToNetworkError(\"Unexpected API response, cancelling out.\", faceScanResultCallback);\n }\n }\n catch (_a) {\n // CASE: Parsing the response into JSON failed --> You define your own API contracts with yourself and may choose to do something different here based on the error. Solid server-side code should ensure you don't get to this case.\n _this.cancelDueToNetworkError(\"Exception while handling API response, cancelling out.\", faceScanResultCallback);\n }\n }\n };\n _this.latestNetworkRequest.onerror = function () {\n // CASE: Network Request itself is erroring --> You define your own API contracts with yourself and may choose to do something different here based on the error.\n _this.cancelDueToNetworkError(\"XHR error, cancelling.\", faceScanResultCallback);\n };\n //\n // Part 7: Demonstrates updating the Progress Bar based on the progress event.\n //\n _this.latestNetworkRequest.upload.onprogress = function (event) {\n var progress = event.loaded / event.total;\n faceScanResultCallback.uploadProgress(progress);\n };\n //\n // Part 8: Actually send the request.\n //\n var jsonStringToUpload = JSON.stringify(parameters);\n _this.latestNetworkRequest.send(jsonStringToUpload);\n //\n // Part 9: For better UX, update the User if the upload is taking a while. You are free to customize and enhance this behavior to your liking.\n //\n window.setTimeout(function () {\n if (_this.latestNetworkRequest.readyState === XMLHttpRequest.DONE) {\n return;\n }\n faceScanResultCallback.uploadMessageOverride(\"Still Uploading...\");\n }, 6000);\n };\n //\n // Part 10: Handling the Result of a IDScan\n //\n this.processIDScanResultWhileFaceTecSDKWaits = function (idScanResult, idScanResultCallback) {\n _this.latestIDScanResult = idScanResult;\n //\n // Part 11: Handles early exit scenarios where there is no IDScan to handle -- i.e. User Cancellation, Timeouts, etc.\n //\n if (idScanResult.status !== FaceTecSDK_1.FaceTecSDK.FaceTecIDScanStatus.Success) {\n console.log(\"ID Scan was not completed successfully, cancelling.\");\n _this.latestNetworkRequest.abort();\n _this.latestNetworkRequest = new XMLHttpRequest();\n idScanResultCallback.cancel();\n return;\n }\n // IMPORTANT: FaceTecSDK.FaceTecIDScanStatus.Success DOES NOT mean the IDScan was Successful.\n // It simply means the User completed the Session and a 3D IDScan was created. You still need to perform the ID-Check on your Servers.\n // minMatchLevel allows Developers to specify a Match Level that they would like to target in order for success to be true in the response.\n // minMatchLevel cannot be set to 0.\n // minMatchLevel setting does not affect underlying Algorithm behavior.\n var MinMatchLevel = 3;\n //\n // Part 12: Get essential data off the FaceTecIDScanResult\n //\n var parameters = {\n idScan: idScanResult.idScan,\n // sessionId: idScanResult.sessionId,\n externalDatabaseRefID: _this.sampleAppControllerReference.getLatestEnrollmentIdentifier(),\n minMatchLevel: MinMatchLevel,\n };\n //\n // Sending up front and back images are non-essential, but are useful for auditing purposes, and are required in order for the FaceTec Server Dashboard to render properly.\n //\n if (idScanResult.frontImages && idScanResult.frontImages[0]) {\n parameters.idScanFrontImage = idScanResult.frontImages[0];\n }\n if (idScanResult.backImages && idScanResult.backImages[0]) {\n parameters.idScanBackImage = idScanResult.backImages[0];\n }\n //\n // Part 13: Make the Networking Call to Your Servers. Below is just example code, you are free to customize based on how your own API works.\n //\n //TODO - Add .content\n _this.latestNetworkRequest = new XMLHttpRequest();\n _this.latestNetworkRequest.open(\"POST\", Config_1.Config.BaseURL + \"/match-3d-2d-idscan\");\n _this.latestNetworkRequest.setRequestHeader(\"Content-Type\", \"application/json\");\n _this.latestNetworkRequest.setRequestHeader(\"X-Device-Key\", Config_1.Config.DeviceKeyIdentifier);\n _this.latestNetworkRequest.setRequestHeader(\"X-User-Agent\", FaceTecSDK_1.FaceTecSDK.createFaceTecAPIUserAgentString(idScanResult.sessionId));\n _this.latestNetworkRequest.onreadystatechange = function () {\n //\n // Part 14: In our Sample, we evaluate a boolean response and treat true as was successfully processed and should proceed to next step,\n // and handle all other responses by cancelling out.\n // You may have different paradigms in your own API and are free to customize based on these.\n //\n if (_this.latestNetworkRequest.readyState === XMLHttpRequest.DONE) {\n try {\n var responseJSON = JSON.parse(_this.latestNetworkRequest.responseText).content;\n var scanResultBlob = responseJSON.scanResultBlob;\n // In v9.2.0+, we key off a new property called wasProcessed to determine if we successfully processed the Session result on the Server.\n // Device SDK UI flow is now driven by the proceedToNextStep function, which should receive the scanResultBlob from the Server SDK response.\n if (responseJSON.wasProcessed === true) {\n // In v9.2.0+, configure the messages that will be displayed to the User in each of the possible cases.\n // Based on the internal processing and decision logic about how the flow gets advanced, the FaceTec SDK will use the appropriate, configured message.\n // Please note that this programmatic API overrides these same Strings that can also be set via our standard, non-programmatic Text Customization & Localization APIs.\n FaceTecSDK_1.FaceTecSDK.FaceTecCustomization.setIDScanResultScreenMessageOverrides(\"ID Scan Complete\", // Successful scan of ID front-side (ID Types with no back-side).\n \"Front of ID
Scanned\", // Successful scan of ID front-side (ID Types that do have a back-side).\n \"ID Scan Complete\", // Successful scan of the ID back-side.\n \"Passport Scan Complete\", // Successful scan of a Passport\n \"Photo ID Scan
Complete\", // Successful upload of final IDScan containing User-Confirmed ID Text.\n \"Face Didn't Match
Highly Enough\", // Case where a Retry is needed because the Face on the Photo ID did not Match the User's Face highly enough.\n \"ID Document
Not Fully Visible\", // Case where a Retry is needed because a Full ID was not detected with high enough confidence.\n \"ID Text Not Legible\", // Case where a Retry is needed because the OCR did not produce good enough results and the User should Retry with a better capture.\n \"ID Type Mismatch
Please Try Again\");\n // In v9.2.0+, simply pass in scanResultBlob to the proceedToNextStep function to advance the User flow.\n // scanResultBlob is a proprietary, encrypted blob that controls the logic for what happens next for the User.\n // Cases:\n // 1. User must re-scan the same side of the ID that they just tried.\n // 2. User succeeded in scanning the Front Side of the ID, there is no Back Side, and the User is now sent to the User OCR Confirmation UI.\n // 3. User succeeded in scanning the Front Side of the ID, there is a Back Side, and the User is sent to the Auto-Capture UI for the Back Side of their ID.\n // 4. User succeeded in scanning the Back Side of the ID, and the User is now sent to the User OCR Confirmation UI.\n // 5. The entire process is complete. This occurs after sending up the final IDScan that contains the User OCR Data.\n idScanResultCallback.proceedToNextStep(scanResultBlob);\n }\n else {\n // CASE: UNEXPECTED response from API. Our Sample Code keys off a wasProcessed boolean on the root of the JSON object --> You define your own API contracts with yourself and may choose to do something different here based on the error.\n _this.cancelDueToNetworkError(\"Unexpected API response, cancelling out.\", idScanResultCallback);\n }\n }\n catch (_a) {\n // CASE: Parsing the response into JSON failed --> You define your own API contracts with yourself and may choose to do something different here based on the error. Solid server-side code should ensure you don't get to this case.\n _this.cancelDueToNetworkError(\"Exception while handling API response, cancelling out.\", idScanResultCallback);\n }\n }\n };\n _this.latestNetworkRequest.onerror = function () {\n // CASE: Network Request itself is erroring --> You define your own API contracts with yourself and may choose to do something different here based on the error.\n _this.cancelDueToNetworkError(\"XHR error, cancelling.\", idScanResultCallback);\n };\n //\n // Part 15: Demonstrates updating the Progress Bar based on the progress event.\n //\n _this.latestNetworkRequest.upload.onprogress = function (event) {\n var progress = event.loaded / event.total;\n idScanResultCallback.uploadProgress(progress);\n };\n //\n // Part 16: Actually send the request.\n //\n var jsonStringToUpload = JSON.stringify(parameters);\n _this.latestNetworkRequest.send(jsonStringToUpload);\n };\n //\n // Part 18: This function gets called after the FaceTec SDK is completely done. There are no parameters because you have already been passed all data in the processSessionWhileFaceTecSDKWaits function and have already handled all of your own results.\n //\n this.onFaceTecSDKCompletelyDone = function () {\n //\n // DEVELOPER NOTE: onFaceTecSDKCompletelyDone() is called after the Session has completed or you signal the FaceTec SDK with cancel().\n // Calling a custom function on the Sample App Controller is done for demonstration purposes to show you that here is where you get control back from the FaceTec SDK.\n //\n // If the Photo ID Scan was processed get the success result from isCompletelyDone\n if (_this.latestIDScanResult != null) {\n _this.success = _this.latestIDScanResult.isCompletelyDone;\n }\n // Log success message\n if (_this.success) {\n DeveloperStatusMessages_1.DeveloperStatusMessages.logMessage(\"Id Scan Complete\");\n }\n // If enrollment was not successful, clear the enrollment identifier\n else {\n _this.sampleAppControllerReference.clearLatestEnrollmentIdentifier();\n }\n _this.sampleAppControllerReference.onComplete(_this.latestSessionResult, _this.latestIDScanResult, _this.latestNetworkRequest.status);\n };\n // Helper function to ensure the session is only cancelled once\n this.cancelDueToNetworkError = function (networkErrorMessage, faceTecScanResultCallback) {\n if (_this.cancelledDueToNetworkError === false) {\n console.log(networkErrorMessage);\n _this.cancelledDueToNetworkError = true;\n faceTecScanResultCallback.cancel();\n }\n };\n //\n // DEVELOPER NOTE: This public convenience method is for demonstration purposes only so the Sample App can get information about what is happening in the processor.\n // In your code, you may not even want or need to do this.\n //\n this.isSuccess = function () {\n return _this.success;\n };\n //\n // DEVELOPER NOTE: These properties are for demonstration purposes only so the Sample App can get information about what is happening in the processor.\n // In the code in your own App, you can pass around signals, flags, intermediates, and results however you would like.\n //\n this.success = false;\n this.sampleAppControllerReference = sampleAppControllerReference;\n this.latestSessionResult = null;\n this.latestIDScanResult = null;\n this.cancelledDueToNetworkError = false;\n // In v9.2.2+, configure the messages that will be displayed to the User in each of the possible cases.\n // Based on the internal processing and decision logic about how the flow gets advanced, the FaceTec SDK will use the appropriate, configured message.\n FaceTecSDK_1.FaceTecSDK.FaceTecCustomization.setIDScanUploadMessageOverrides(\"Uploading
Encrypted
ID Scan\", // Upload of ID front-side has started.\n \"Still Uploading...
Slow Connection\", // Upload of ID front-side is still uploading to Server after an extended period of time.\n \"Upload Complete\", // Upload of ID front-side to the Server is complete.\n \"Processing
ID Scan\", // Upload of ID front-side is complete and we are waiting for the Server to finish processing and respond.\n \"Uploading
Encrypted
Back of ID\", // Upload of ID back-side has started.\n \"Still Uploading...
Slow Connection\", // Upload of ID back-side is still uploading to Server after an extended period of time.\n \"Upload Complete\", // Upload of ID back-side to Server is complete.\n \"Processing
Back of ID\", // Upload of ID back-side is complete and we are waiting for the Server to finish processing and respond.\n \"Uploading
Your Confirmed Info\", // Upload of User Confirmed Info has started.\n \"Still Uploading...
Slow Connection\", // Upload of User Confirmed Info is still uploading to Server after an extended period of time.\n \"Upload Complete\", // Upload of User Confirmed Info to the Server is complete.\n \"Processing\");\n //\n // Part 1: Starting the FaceTec Session\n //\n // Required parameters:\n // - FaceTecIDScanProcessor: A class that implements FaceTecIDScanProcessor, which handles the IDScan when the User completes an ID Scan. In this example, \"this\" implements the class.\n // - sessionToken: A valid Session Token you just created by calling your API to get a Session Token from the Server SDK.\n //\n new FaceTecSDK_1.FaceTecSDK.FaceTecSession(this, sessionToken);\n }\n return PhotoIDMatchProcessor;\n}());\nexports.PhotoIDMatchProcessor = PhotoIDMatchProcessor;\n","\"use strict\";\n//\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getCategories = void 0;\nvar objectToQueryString_1 = require(\"../../../helpers/objectToQueryString\");\nvar api_1 = require(\"../../api\");\nfunction getCategories(query) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var url;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n url = (_a = process.env.LETS_TRADE_PRODUCT_URL) !== null && _a !== void 0 ? _a : \"\";\n return [4 /*yield*/, new api_1.API().apiGet({\n baseUrl: url,\n endpoint: \"product/categories\".concat((0, objectToQueryString_1.objectToQueryString)(query)), //\n // content: request,\n })];\n case 1: return [2 /*return*/, _b.sent()];\n }\n });\n });\n}\nexports.getCategories = getCategories;\n","\"use strict\";\n//\n// Welcome to the annotated FaceTec Device SDK core code for performing secure Enrollment.\n//\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EnrollmentProcessor = void 0;\nvar Config_1 = require(\"../../../app/Config\");\nvar FaceTecSDK_1 = require(\"./../../../core-sdk/FaceTecSDK.js/FaceTecSDK\");\nvar DeveloperStatusMessages_1 = require(\"../utilities/DeveloperStatusMessages\");\nvar update_user_facetec_1 = require(\"../../../app/api/calls/user/update_user_facetec\");\n//\n// This is an example self-contained class to perform Enrollment with the FaceTec SDK.\n// You may choose to further componentize parts of this in your own Apps based on your specific requirements.\n//\nvar EnrollmentProcessor = /** @class */ (function () {\n function EnrollmentProcessor(sessionToken, sampleAppControllerReference) {\n var _this = this;\n this.latestNetworkRequest = new XMLHttpRequest();\n //\n // Part 2: Handling the Result of a FaceScan\n //\n this.processSessionResultWhileFaceTecSDKWaits = function (sessionResult, faceScanResultCallback) {\n _this.latestSessionResult = sessionResult;\n //\n // Part 3: Handles early exit scenarios where there is no FaceScan to handle -- i.e. User Cancellation, Timeouts, etc.\n //\n if (sessionResult.status !== FaceTecSDK_1.FaceTecSDK.FaceTecSessionStatus.SessionCompletedSuccessfully) {\n console.log(\"Session was not completed successfully, cancelling. Session Status: \" + FaceTecSDK_1.FaceTecSDK.FaceTecSessionStatus[sessionResult.status]);\n _this.latestNetworkRequest.abort();\n faceScanResultCallback.cancel();\n return;\n }\n // IMPORTANT: FaceTecSDK.FaceTecSessionStatus.SessionCompletedSuccessfully DOES NOT mean the Enrollment was Successful.\n // It simply means the User completed the Session and a 3D FaceScan was created. You still need to perform the Enrollment on your Servers.\n //\n // Part 4: Get essential data off the FaceTecSessionResult\n //\n //Call getLatestEnrollmentIdentifier and save it in the DB\n //\n var externalDatabaseRefID = _this.sampleAppControllerReference.getLatestEnrollmentIdentifier();\n var parameters = {\n faceScan: sessionResult.faceScan,\n auditTrailImage: sessionResult.auditTrail[0],\n lowQualityAuditTrailImage: sessionResult.lowQualityAuditTrail[0],\n //sessionId: sessionResult.sessionId,\n externalDatabaseRefID: externalDatabaseRefID,\n };\n //\n // Part 5: Make the Networking Call to Your Servers. Below is just example code, you are free to customize based on how your own API works.\n //\n //TODO - Add .content\n _this.latestNetworkRequest = new XMLHttpRequest();\n _this.latestNetworkRequest.open(\"POST\", Config_1.Config.BaseURL + \"/enrollment-3d\");\n _this.latestNetworkRequest.setRequestHeader(\"Content-Type\", \"application/json\");\n _this.latestNetworkRequest.setRequestHeader(\"X-Device-Key\", Config_1.Config.DeviceKeyIdentifier);\n _this.latestNetworkRequest.setRequestHeader(\"X-User-Agent\", FaceTecSDK_1.FaceTecSDK.createFaceTecAPIUserAgentString(sessionResult.sessionId));\n _this.latestNetworkRequest.onreadystatechange = function () {\n //\n // Part 6: In our Sample, we evaluate a boolean response and treat true as was successfully processed and should proceed to next step,\n // and handle all other responses by cancelling out.\n // You may have different paradigms in your own API and are free to customize based on these.\n //\n if (_this.latestNetworkRequest.readyState === XMLHttpRequest.DONE) {\n try {\n var responseJSON = JSON.parse(_this.latestNetworkRequest.responseText).content;\n var scanResultBlob = responseJSON.scanResultBlob;\n // In v9.2.0+, we key off a new property called wasProcessed to determine if we successfully processed the Session result on the Server.\n // Device SDK UI flow is now driven by the proceedToNextStep function, which should receive the scanResultBlob from the Server SDK response.\n if (responseJSON.wasProcessed) {\n (0, update_user_facetec_1.update_user_facetec)({\n responseJSON: responseJSON,\n facetecDBRef: externalDatabaseRefID,\n });\n // Demonstrates dynamically setting the Success Screen Message.\n FaceTecSDK_1.FaceTecSDK.FaceTecCustomization.setOverrideResultScreenSuccessMessage(\"Liveness\\nConfirmed\");\n // In v9.2.0+, simply pass in scanResultBlob to the proceedToNextStep function to advance the User flow.\n // scanResultBlob is a proprietary, encrypted blob that controls the logic for what happens next for the User.\n faceScanResultCallback.proceedToNextStep(scanResultBlob);\n }\n else {\n // CASE: UNEXPECTED response from API. Our Sample Code keys off a wasProcessed boolean on the root of the JSON object --> You define your own API contracts with yourself and may choose to do something different here based on the error.\n _this.cancelDueToNetworkError(\"Unexpected API response, cancelling out.\", faceScanResultCallback);\n }\n }\n catch (_e) {\n // CASE: Parsing the response into JSON failed --> You define your own API contracts with yourself and may choose to do something different here based on the error. Solid server-side code should ensure you don't get to this case.\n _this.cancelDueToNetworkError(\"Exception while handling API response, cancelling out.\", faceScanResultCallback);\n }\n }\n };\n _this.latestNetworkRequest.onerror = function () {\n // CASE: Network Request itself is erroring --> You define your own API contracts with yourself and may choose to do something different here based on the error.\n _this.cancelDueToNetworkError(\"XHR error, cancelling.\", faceScanResultCallback);\n };\n //\n // Part 7: Demonstrates updating the Progress Bar based on the progress event.\n //\n _this.latestNetworkRequest.upload.onprogress = function (event) {\n var progress = event.loaded / event.total;\n faceScanResultCallback.uploadProgress(progress);\n };\n //\n // Part 8: Actually send the request.\n //\n var jsonStringToUpload = JSON.stringify(parameters);\n _this.latestNetworkRequest.send(jsonStringToUpload);\n //\n // Part 9: For better UX, update the User if the upload is taking a while. You are free to customize and enhance this behavior to your liking.\n //\n window.setTimeout(function () {\n if (_this.latestNetworkRequest.readyState === XMLHttpRequest.DONE) {\n return;\n }\n faceScanResultCallback.uploadMessageOverride(\"Still Uploading...\");\n }, 6000);\n };\n //\n // Part 10: This function gets called after the FaceTec SDK is completely done. There are no parameters because you have already been passed all data in the processSessionWhileFaceTecSDKWaits function and have already handled all of your own results.\n //\n this.onFaceTecSDKCompletelyDone = function () {\n //\n // DEVELOPER NOTE: onFaceTecSDKCompletelyDone() is called after you signal the FaceTec SDK with success() or cancel().\n // Calling a custom function on the Sample App Controller is done for demonstration purposes to show you that here is where you get control back from the FaceTec SDK.\n //\n _this.success = _this.latestSessionResult.isCompletelyDone;\n // Log success message\n if (_this.success) {\n DeveloperStatusMessages_1.DeveloperStatusMessages.logMessage(\"Liveness Confirmed\");\n }\n // If enrollment was not successful, clear the enrollment identifier\n else {\n _this.sampleAppControllerReference.clearLatestEnrollmentIdentifier();\n }\n _this.sampleAppControllerReference.onComplete(_this.latestSessionResult, null, _this.latestNetworkRequest.status);\n };\n // Helper function to ensure the session is only cancelled once\n this.cancelDueToNetworkError = function (networkErrorMessage, faceScanResultCallback) {\n if (_this.cancelledDueToNetworkError === false) {\n console.log(networkErrorMessage);\n _this.cancelledDueToNetworkError = true;\n faceScanResultCallback.cancel();\n }\n };\n //\n // DEVELOPER NOTE: This public convenience method is for demonstration purposes only so the Sample App can get information about what is happening in the processor.\n // In your code, you may not even want or need to do this.\n //\n this.isSuccess = function () {\n return _this.success;\n };\n //\n // DEVELOPER NOTE: These properties are for demonstration purposes only so the Sample App can get information about what is happening in the processor.\n // In the code in your own App, you can pass around signals, flags, intermediates, and results however you would like.\n //\n this.success = false;\n this.sampleAppControllerReference = sampleAppControllerReference;\n this.latestSessionResult = null;\n this.cancelledDueToNetworkError = false;\n //\n // Part 1: Starting the FaceTec Session\n //\n // Required parameters:\n // - FaceTecFaceScanProcessor: A class that implements FaceTecFaceScanProcessor, which handles the FaceScan when the User completes a Session. In this example, \"this\" implements the class.\n // - sessionToken: A valid Session Token you just created by calling your API to get a Session Token from the Server SDK.\n //\n new FaceTecSDK_1.FaceTecSDK.FaceTecSession(this, sessionToken);\n }\n return EnrollmentProcessor;\n}());\nexports.EnrollmentProcessor = EnrollmentProcessor;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LoanApplicationComplete = void 0;\nvar doshx_controls_web_1 = require(\"doshx_controls_web\");\nvar react_1 = __importStar(require(\"react\"));\nvar react_redux_1 = require(\"react-redux\");\nvar react_router_dom_1 = require(\"react-router-dom\");\nvar colors_config_1 = __importDefault(require(\"../../../../../colors.config\"));\nvar react_fontawesome_1 = require(\"@fortawesome/react-fontawesome\");\nvar pro_solid_svg_icons_1 = require(\"@fortawesome/pro-solid-svg-icons\");\nvar get_app_1 = require(\"../../home/components/get_app\");\nvar checkout_1 = require(\"../../../../api/calls/basket/checkout\");\nvar application_1 = require(\"../../../../api/calls/loan/application\");\nvar LoanApplicationComplete = function () {\n var dispatch = (0, react_redux_1.useDispatch)();\n var navigate = (0, react_router_dom_1.useNavigate)();\n var basket = (0, react_redux_1.useSelector)(function (state) { return state.basketState; }).basket;\n var params = (0, react_router_dom_1.useParams)();\n var loan_id = params.loan_id;\n var _a = (0, react_1.useState)(true), isLoading = _a[0], setIsLoading = _a[1];\n (0, react_1.useEffect)(function () {\n if (basket) {\n saveLoanDetails();\n }\n else {\n navigate(\"/loan/details\" + \"/\" + loan_id);\n }\n }, [basket]);\n var saveLoanDetails = function () { return __awaiter(void 0, void 0, void 0, function () {\n var checkoutBasket;\n var _a, _b, _c, _d, _e, _f;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n setIsLoading(true);\n console.log(\"Basket\", basket);\n return [4 /*yield*/, (0, checkout_1.checkout_basket)({\n _id: basket === null || basket === void 0 ? void 0 : basket._id,\n loan_amount: basket === null || basket === void 0 ? void 0 : basket.total,\n })];\n case 1:\n checkoutBasket = _g.sent();\n console.log(\"Basket\", basket);\n if (!checkoutBasket.success) return [3 /*break*/, 3];\n return [4 /*yield*/, (0, application_1.update_loan_application)({\n order_id: (_c = (_b = (_a = checkoutBasket === null || checkoutBasket === void 0 ? void 0 : checkoutBasket.content) === null || _a === void 0 ? void 0 : _a.order) === null || _b === void 0 ? void 0 : _b._id) !== null && _c !== void 0 ? _c : \"\",\n order_number: (_f = (_e = (_d = checkoutBasket === null || checkoutBasket === void 0 ? void 0 : checkoutBasket.content) === null || _d === void 0 ? void 0 : _d.order) === null || _e === void 0 ? void 0 : _e.code) !== null && _f !== void 0 ? _f : \"\",\n status: \"AWAIT\",\n uid: loan_id,\n }).then(function (response) {\n if (response.success) {\n window.scrollTo({\n top: 0,\n behavior: \"smooth\",\n });\n setIsLoading(false);\n // dispatch(get_basket_thunk({ basket_id: basket?._id }));\n }\n })];\n case 2:\n _g.sent();\n _g.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n }); };\n return (react_1.default.createElement(\"div\", { className: \"relative\" }, isLoading ? (react_1.default.createElement(doshx_controls_web_1.ShimmerBoxControl, null)) : (react_1.default.createElement(\"div\", { className: \"relative\" },\n react_1.default.createElement(\"div\", { className: \"\" },\n react_1.default.createElement(doshx_controls_web_1.ScreenContainerControl, { className: \"\" },\n react_1.default.createElement(\"div\", { className: \"flex flex-col items-center py-20 gap-4\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"Completed\", textColor: \"text-white\", size: \"3xlarge\", center: true }),\n react_1.default.createElement(\"div\", { className: \"flex flex-col\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"You have successfully applied for a loan. A response will be sent to you shortly.\", textColor: \"text-white\", size: \"medium\", center: true }))),\n react_1.default.createElement(\"div\", { className: \" flex justify-center\" },\n react_1.default.createElement(doshx_controls_web_1.BoxControl, { className: \"w-[400px] md:w-[400px] lg:w-[600px] shadow-sm shadow-[#9f9f9f] border-none\", backgroundColor: \"bg-white\" },\n react_1.default.createElement(\"div\", { className: \"flex flex-row justify-center text-primary\" },\n react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: pro_solid_svg_icons_1.faCheckCircle, size: \"10x\" })),\n react_1.default.createElement(\"div\", { className: \"pt-8 flex flex-row justify-center\" },\n react_1.default.createElement(doshx_controls_web_1.ButtonControl, { label: \"Home\", backgroundColor: \"bg-secondary\", onClick: function () {\n navigate(\"/\");\n } })))))),\n react_1.default.createElement(\"div\", { className: \"absolute top-0 w-full -z-10\" },\n react_1.default.createElement(\"div\", { className: \"h-72 bg-primary\" }),\n react_1.default.createElement(\"div\", { className: \"-mt-[1px]\" },\n react_1.default.createElement(\"svg\", { viewBox: \"0 0 20 1.5\", xmlns: \"http://www.w3.org/2000/svg\" },\n react_1.default.createElement(\"path\", { d: \"M 0 0 L 20 0 Q 10 3 0 0\", fill: colors_config_1.default.primary })))),\n react_1.default.createElement(get_app_1.GetAppComponent, null),\n \" \"))));\n};\nexports.LoanApplicationComplete = LoanApplicationComplete;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CheckoutPage = void 0;\nvar doshx_controls_web_1 = require(\"doshx_controls_web\");\nvar sampleAppController_1 = require(\"./../../../facetec/src/sampleAppController\");\nvar react_1 = __importStar(require(\"react\"));\nvar react_redux_1 = require(\"react-redux\");\nvar react_router_dom_1 = require(\"react-router-dom\");\nvar update_basket_1 = require(\"../../api/calls/basket/update_basket\");\nvar all_branches_1 = require(\"../../api/calls/client/all_branches\");\nvar nearest_branches_1 = require(\"../../api/calls/client/nearest_branches\");\nvar address_list_1 = require(\"../../api/calls/user/address_list\");\nvar add_user_address_1 = require(\"../../api/calls/user/add_user_address\");\nvar basket_1 = require(\"../../reducers/slices/basket/basket\");\nvar main_1 = require(\"../../reducers/slices/main\");\nvar universal_cookie_1 = __importDefault(require(\"universal-cookie\"));\nvar get_basket_thunk_1 = require(\"../../reducers/slices/basket/thunks/get_basket_thunk\");\nvar set_checkout_local_storage_thunk_1 = require(\"../../reducers/slices/basket/thunks/set_checkout_local_storage_thunk\");\nvar pro_solid_svg_icons_1 = require(\"@fortawesome/pro-solid-svg-icons\");\nvar pro_light_svg_icons_1 = require(\"@fortawesome/pro-light-svg-icons\");\nvar constants_1 = require(\"./constants\");\nvar application_1 = require(\"../../api/calls/loan/application\");\nvar create_order_1 = require(\"../../api/calls/payment-engine/ngenius/create_order\");\nvar device_sale_agreement_1 = require(\"../../api/calls/sale_agreement/device_sale_agreement\");\nvar symbols_1 = require(\"../../constants/symbols\");\nvar react_fontawesome_1 = require(\"@fortawesome/react-fontawesome\");\nvar functions_1 = require(\"../../constants/functions\");\nvar steps_1 = require(\"./loans/steps/constants/steps\");\nvar route_names_1 = require(\"../../constants/route_names\");\nvar control_colors_1 = require(\"../../constants/control_colors\");\nvar airtime_purchases_1 = require(\"../../api/calls/airtime_purchases/airtime_purchases\");\nvar clear_action_auth_1 = require(\"../../api/calls/user/authentication/clear_action_auth\");\nvar pep_pip_verification_1 = require(\"./pep_pip_verification\");\nvar CheckoutPage = function () {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n var navigate = (0, react_router_dom_1.useNavigate)();\n var dispatch = (0, react_redux_1.useDispatch)();\n var cookie = new universal_cookie_1.default();\n // const ngeniuRedirectURL = process.env.NGENIUS_REDIRECT_URL;\n var ngeniuRedirectURL = window.location.origin;\n var basket = (0, react_redux_1.useSelector)(function (state) { return state.basketState; }).basket;\n var user = (0, react_redux_1.useSelector)(function (state) { return state.userState; }).user;\n var _k = (0, react_1.useState)(null), selectedBranch = _k[0], setSelectedBranch = _k[1];\n var _l = (0, react_1.useState)(false), saveAddress = _l[0], setSaveAddress = _l[1];\n var _m = (0, react_1.useState)(null), selectedAddress = _m[0], setSelectedAddress = _m[1];\n var _o = (0, react_1.useState)(\"\"), newAddressLabel = _o[0], setNewAddressLabel = _o[1];\n var _p = (0, react_1.useState)(\"\"), newAddressErrorText = _p[0], setNewAddressErrorText = _p[1];\n var _q = (0, react_1.useState)(0), currentStep = _q[0], setCurrentStep = _q[1];\n var _r = (0, react_1.useState)(\"collection\"), deliveryOrCollection = _r[0], setDeliveryOrCollection = _r[1];\n var _s = (0, react_1.useState)([]), addressList = _s[0], setAddressList = _s[1];\n var _t = (0, react_1.useState)(false), isAddingAddress = _t[0], setIsAddingAddress = _t[1];\n var _u = (0, react_1.useState)(\"\"), specialInstructions = _u[0], setSpecialInstructions = _u[1];\n var _v = (0, react_1.useState)(false), isGettingBranches = _v[0], setIsGettingBranches = _v[1];\n var _w = (0, react_1.useState)(false), airtimeOnly = _w[0], setAirtimeOnly = _w[1];\n var _x = (0, react_1.useState)(\"\"), branchSearchText = _x[0], setBranchSearchText = _x[1];\n var _y = (0, react_1.useState)(false), isLoading = _y[0], setIsLoading = _y[1];\n var _z = (0, react_1.useState)(false), rechargingAnotherParty = _z[0], setRechargingAnotherParty = _z[1];\n var _0 = (0, react_1.useState)(constants_1.CARD), paymentMethod = _0[0], setPaymentMethod = _0[1];\n var _1 = (0, react_1.useState)(null), nearestBranches = _1[0], setNearestBranches = _1[1];\n var _2 = (0, react_1.useState)(null), allBranches = _2[0], setAllBranches = _2[1];\n var _3 = (0, react_1.useState)(\"\"), term = _3[0], setTerm = _3[1];\n var _4 = (0, react_1.useState)({\n phone_number: \"081\",\n country_code: \"+264\",\n country_abbreviation: \"NA\",\n }), rechargePhoneNumber = _4[0], setRechargePhoneNumber = _4[1];\n var _5 = (0, react_1.useState)(null), formData = _5[0], setFormData = _5[1];\n var _6 = (0, react_1.useState)(false), ngeniusLoading = _6[0], setNgeniusLoading = _6[1];\n var intervalId;\n (0, react_1.useEffect)(function () {\n var _a;\n if (!basket) {\n navigate(\"/shop\");\n }\n else {\n dispatch((0, basket_1.setDeliveryMethod)(null));\n (0, address_list_1.address_list)({\n user_id: (_a = user === null || user === void 0 ? void 0 : user.integration_id) !== null && _a !== void 0 ? _a : \"\",\n }).then(function (response) {\n if (response.success) {\n setAddressList(response.content.addresses);\n }\n else {\n dispatch((0, main_1.setMessageModal)({\n title: \"Something went wrong!\",\n messages: [response.message],\n }));\n }\n });\n // pay_with_payfast({\n // integration_id: user?.uid ?? \"\",\n // return_url: \"https://ackermans-pharmacy-web-dev-pdstjj77fq-ew.a.run.app/#/return_url\",\n // cancel_url: \"https://ackermans-pharmacy-web-dev-pdstjj77fq-ew.a.run.app/#/cancel_url\",\n // name_first: user.name,\n // name_last: user.surname,\n // phone_number: user.cell_number,\n // amount: \"13.00\",\n // item_name: \"Test Product\",\n // }).then((response: any) => {\n // if (response.success) {\n // setFormData(response.content);\n // } else {\n // dispatch(setMessageModal({ title: \"Could not generate PayFast form!\", messages: [response.message] }));\n // }\n // });\n }\n }, []);\n (0, react_1.useEffect)(function () {\n if (basket) {\n checkAirtime();\n }\n }, [basket]);\n var checkAirtime = function () { return __awaiter(void 0, void 0, void 0, function () {\n var _res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, (0, functions_1.isAirtimeOnly)(basket === null || basket === void 0 ? void 0 : basket.product_list)];\n case 1:\n _res = _a.sent();\n setAirtimeOnly(_res);\n return [2 /*return*/];\n }\n });\n }); };\n var getUserLocation = function () {\n setIsGettingBranches(true);\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(function (position) {\n setSelectedAddress({\n full_address: \"User Location\",\n longitude: position.coords.longitude.toString(),\n latitude: position.coords.latitude.toString(),\n });\n });\n setIsGettingBranches(false);\n }\n else {\n setIsGettingBranches(false);\n }\n };\n (0, react_1.useEffect)(function () {\n getUserLocation();\n }, [paymentMethod]);\n (0, react_1.useEffect)(function () {\n var _a, _b;\n if (selectedBranch) {\n (0, update_basket_1.update_basket)({\n _id: (_a = basket === null || basket === void 0 ? void 0 : basket._id) !== null && _a !== void 0 ? _a : \"\",\n basket: {\n branch_id: (_b = selectedBranch === null || selectedBranch === void 0 ? void 0 : selectedBranch.branch) === null || _b === void 0 ? void 0 : _b._id,\n },\n }).then(function (response) {\n if (response.success) {\n dispatch((0, get_basket_thunk_1.get_basket_thunk)({ basket_id: basket === null || basket === void 0 ? void 0 : basket._id }));\n }\n });\n }\n }, [selectedBranch]);\n (0, react_1.useEffect)(function () {\n if (selectedAddress) {\n setIsGettingBranches(true);\n (0, nearest_branches_1.nearest_branches)({\n order_type: deliveryOrCollection,\n size: \"10\",\n center_coordinates: {\n longitude: selectedAddress === null || selectedAddress === void 0 ? void 0 : selectedAddress.longitude,\n latitude: selectedAddress === null || selectedAddress === void 0 ? void 0 : selectedAddress.latitude,\n },\n }).then(function (response) {\n var _a;\n setIsGettingBranches(false);\n if (response.success) {\n setNearestBranches((_a = response.content) !== null && _a !== void 0 ? _a : null);\n }\n else {\n dispatch((0, main_1.setMessageModal)({\n title: \"Could not get nearest branches!\",\n messages: [response.message],\n }));\n }\n });\n }\n }, [selectedAddress]);\n (0, react_1.useEffect)(function () {\n setIsGettingBranches(true);\n (0, all_branches_1.all_branches)().then(function (response) {\n var _a;\n setIsGettingBranches(false);\n if (response.success) {\n setAllBranches((_a = response.content) === null || _a === void 0 ? void 0 : _a.branch_list);\n }\n else {\n dispatch((0, main_1.setMessageModal)({\n title: \"Could not get all branches!\",\n messages: [response.message],\n }));\n }\n });\n }, []);\n (0, react_1.useEffect)(function () {\n //Check Delivery Method\n if (deliveryOrCollection && paymentMethod == constants_1.CARD) {\n if (deliveryOrCollection == \"delivery\") {\n setDefaultBranch();\n }\n else {\n //Force user to select branch\n setSelectedBranch(null);\n }\n }\n }, [deliveryOrCollection]);\n (0, react_1.useEffect)(function () {\n //Check Payment Method\n if (paymentMethod == constants_1.LOAN) {\n setDeliveryOrCollection(\"collection\");\n if (airtimeOnly) {\n setDefaultBranch();\n }\n }\n if (paymentMethod == constants_1.CARD) {\n if (airtimeOnly) {\n setDefaultBranch();\n }\n }\n }, [paymentMethod]);\n var setDefaultBranch = function () {\n allBranches.forEach(function (branch) {\n if ((branch === null || branch === void 0 ? void 0 : branch.branch_number.toLowerCase()) == \"skyvirst\" || (branch === null || branch === void 0 ? void 0 : branch.display_name.toLowerCase()) == \"sky virtual store\") {\n setSelectedBranch({ branch: branch });\n return;\n }\n });\n };\n var onNext = function () {\n var nextStep = currentStep + 1;\n if (nextStep < customSteps.length) {\n setCurrentStep(nextStep);\n }\n };\n var onPrevious = function () {\n var nextStep = currentStep - 1;\n if (currentStep > 0) {\n setCurrentStep(nextStep);\n }\n };\n var validatePaymentMethod = function () {\n var messages = [];\n if (!paymentMethod) {\n messages.push(\"Please select a payment method.\");\n }\n if (messages.length > 0) {\n dispatch((0, main_1.setMessageModal)({ title: \"Payment method needed\", messages: messages }));\n return false;\n }\n else {\n return true;\n }\n };\n var validateDeliveryMethod = function () {\n var messages = [];\n if (!deliveryOrCollection) {\n messages.push(\"Please select a delivery method.\");\n }\n // else {\n // if (deliveryOrCollection == \"collection\") {\n // if (!selectedBranch || !selectedBranch.branch) {\n // messages.push(\"Unfortunately, we were unable to retrieve branches, please contact support.\");\n // }\n // }\n // }\n if (messages.length > 0) {\n dispatch((0, main_1.setMessageModal)({ title: \"Delivery method needed\", messages: messages }));\n return false;\n }\n else {\n return true;\n }\n };\n var validateRechargePhoneNumber = function () {\n var messages = [];\n if (rechargingAnotherParty) {\n if (!(rechargePhoneNumber === null || rechargePhoneNumber === void 0 ? void 0 : rechargePhoneNumber.phone_number)) {\n messages.push(\"Please enter phone number.\");\n }\n else {\n if (!doshx_controls_web_1.Utilities.isValidPhoneNumber(rechargePhoneNumber.phone_number, rechargePhoneNumber === null || rechargePhoneNumber === void 0 ? void 0 : rechargePhoneNumber.country_abbreviation)) {\n messages.push(\"Invalid number entered.\");\n }\n //validate the number here\n var number = rechargePhoneNumber === null || rechargePhoneNumber === void 0 ? void 0 : rechargePhoneNumber.phone_number.replace(/\\D/g, \"\");\n var correcNumberLocation = number.substring(0, 3) === \"081\";\n // Check if the resulting string has exactly 10 characters and if starts with 081\n if (number.length !== 10 && !correcNumberLocation) {\n messages.push(\"The number must be 10 digits long, and should start with 081.\");\n }\n }\n }\n if (messages.length > 0) {\n dispatch((0, main_1.setMessageModal)({ title: \"Invalid Number Entered.\", messages: messages }));\n return false;\n }\n else {\n return true;\n }\n };\n var validateAddress = function () {\n var messages = [];\n var errorCount = 0;\n if (!selectedAddress) {\n messages.push(\"Please select an address, or add a new address in order to continue.\");\n }\n // if (!selectedBranch) {\n // messages.push(\"Unfortunately, we do not deliver to this address. Please select a different address, or choose to collect.\");\n // }\n if (saveAddress && !newAddressLabel) {\n errorCount++;\n setNewAddressErrorText(\"Please enter a label for your new address.\");\n }\n if (messages.length > 0 || errorCount > 0) {\n if (messages.length > 0) {\n dispatch((0, main_1.setMessageModal)({ title: \"Address selection needed!\", messages: messages }));\n }\n return false;\n }\n else {\n return true;\n }\n };\n // create a function with an object as a promise return type\n var generateStoreListing = function (nearestBranches) {\n return new Promise(function (resolve, reject) {\n // create a promise\n var storeListing = nearestBranches.map(function (branch, index) {\n // create a store listing\n return { label: branch.branch.display_name, value: branch.branch.display_name }; // return the store listing\n });\n resolve(storeListing); // resolve the promise\n });\n };\n var saveLoanDetails = function () { return __awaiter(void 0, void 0, void 0, function () {\n var loanProducts, _i, _a, product, loanApplication, devicesAmount_1, hasDevices_1, orderProducts, saleAgreement;\n var _b, _c, _d, _e, _f;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n setIsLoading(true);\n loanProducts = [];\n for (_i = 0, _a = basket.product_list; _i < _a.length; _i++) {\n product = _a[_i];\n loanProducts.push({\n name: product === null || product === void 0 ? void 0 : product.title,\n price: product === null || product === void 0 ? void 0 : product.price,\n quantity: product === null || product === void 0 ? void 0 : product.quantity,\n category_id: (_b = product === null || product === void 0 ? void 0 : product.category) === null || _b === void 0 ? void 0 : _b._id,\n id: product === null || product === void 0 ? void 0 : product._id,\n });\n }\n return [4 /*yield*/, (0, application_1.create_loan_application)({\n products: loanProducts,\n basket_id: basket === null || basket === void 0 ? void 0 : basket._id,\n amount: basket === null || basket === void 0 ? void 0 : basket.total,\n term: airtimeOnly ? \"1 Month\" : \"12 Months\",\n status: \"DRAFT\",\n is_product: true,\n date_started: new Date(),\n })];\n case 1:\n loanApplication = _g.sent();\n if (!loanApplication.success) return [3 /*break*/, 7];\n devicesAmount_1 = 0;\n hasDevices_1 = false;\n return [4 /*yield*/, basket.product_list];\n case 2:\n orderProducts = _g.sent();\n // Check if there is a device on the order\n orderProducts.forEach(function (product) {\n var _a;\n var categoryId = (_a = product === null || product === void 0 ? void 0 : product.category) === null || _a === void 0 ? void 0 : _a._id;\n // Check if the product is a device\n switch (categoryId) {\n case process.env.CELLPHONE_CATEGORY_ID:\n case process.env.SOLAR_CATEGORY_ID:\n case process.env.HOME_APPLIANCE_CATEGORY_ID:\n hasDevices_1 = true;\n devicesAmount_1 = devicesAmount_1 + parseFloat(product === null || product === void 0 ? void 0 : product.price) * (product === null || product === void 0 ? void 0 : product.quantity);\n }\n });\n if (!hasDevices_1) return [3 /*break*/, 6];\n return [4 /*yield*/, (0, device_sale_agreement_1.create_device_sales_agreements)({\n amount: \"\".concat(devicesAmount_1),\n loan: (_c = loanApplication === null || loanApplication === void 0 ? void 0 : loanApplication.content) === null || _c === void 0 ? void 0 : _c.uid,\n order_number: \"\",\n type: \"LOAN\",\n })];\n case 3:\n saleAgreement = _g.sent();\n if (!saleAgreement.success) return [3 /*break*/, 5];\n return [4 /*yield*/, (0, application_1.update_loan_application)({\n uid: (_d = loanApplication === null || loanApplication === void 0 ? void 0 : loanApplication.content) === null || _d === void 0 ? void 0 : _d.uid,\n salesAgreement: (_e = saleAgreement === null || saleAgreement === void 0 ? void 0 : saleAgreement.content) === null || _e === void 0 ? void 0 : _e.uid,\n }).then(function (response) {\n var _a;\n if (response.success) {\n window.scrollTo({\n top: 0,\n behavior: \"smooth\",\n });\n navigate(\"\".concat(route_names_1.ROUTE_LOAN_APPLICATION, \"/\").concat(steps_1.APP_STEP_START, \"/\").concat((_a = loanApplication === null || loanApplication === void 0 ? void 0 : loanApplication.content) === null || _a === void 0 ? void 0 : _a.uid));\n setIsLoading(false);\n }\n })];\n case 4:\n _g.sent();\n _g.label = 5;\n case 5: return [3 /*break*/, 7];\n case 6:\n window.scrollTo({\n top: 0,\n behavior: \"smooth\",\n });\n navigate(\"\".concat(route_names_1.ROUTE_LOAN_APPLICATION, \"/\").concat(steps_1.APP_STEP_START, \"/\").concat((_f = loanApplication === null || loanApplication === void 0 ? void 0 : loanApplication.content) === null || _f === void 0 ? void 0 : _f.uid));\n setIsLoading(false);\n _g.label = 7;\n case 7: return [2 /*return*/];\n }\n });\n }); };\n var validateBranch = function () {\n var messages = [];\n var errorCount = 0;\n if (!selectedBranch) {\n // messages.push(\"Unfortunately, we do not deliver to this address. Please select a different address, or choose to collect.\");\n messages.push(\"Please select a branch.\");\n }\n if (messages.length > 0 || errorCount > 0) {\n if (messages.length > 0) {\n dispatch((0, main_1.setMessageModal)({ title: \"Branch selection needed!\", messages: messages }));\n }\n return false;\n }\n else {\n return true;\n }\n };\n var customSteps = [\n {\n label: \"Select how you would like to pay\",\n component: (react_1.default.createElement(\"div\", { className: \"flex flex-col gap-4\" },\n react_1.default.createElement(\"div\", { className: \"flex gap-4\" }, constants_1.paymentTypes.map(function (paymentType, index) {\n return (react_1.default.createElement(doshx_controls_web_1.BoxControl, { key: index, addPadding: true, shadowColor: \"shadow-secondary\", borderColor: paymentMethod == paymentType ? \"border-primary\" : \"border-transparent\" },\n react_1.default.createElement(\"div\", { className: \"flex items-center justify-center gap-4\" },\n react_1.default.createElement(doshx_controls_web_1.IconButtonControl, { icon: index == 0 ? pro_solid_svg_icons_1.faCreditCard : pro_solid_svg_icons_1.faHandHoldingDollar, iconColor: \"text-secondary\", borderColor: \"border-transparent\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: index == 0 ? \"Pay with card\" : \"Apply for loan\", size: \"small\", textColor: \"text-black\" }),\n react_1.default.createElement(doshx_controls_web_1.IconButtonControl, { icon: paymentMethod == paymentType ? pro_solid_svg_icons_1.faCircle : pro_light_svg_icons_1.faCircle, iconColor: paymentMethod == paymentType ? \"text-primary\" : \"text-secondary\", borderColor: \"border-transparent\", onClick: function () {\n setPaymentMethod(paymentType);\n } }))));\n })),\n react_1.default.createElement(\"div\", { className: \"flex flex-row\" }, paymentMethod == constants_1.LOAN && airtimeOnly ? (react_1.default.createElement(doshx_controls_web_1.ButtonControl, { label: \"Proceed\", backgroundColor: \"bg-primary\", size: \"small\", loading: isLoading, onClick: function () { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, saveLoanDetails()];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); } })) : (react_1.default.createElement(doshx_controls_web_1.ButtonControl, { label: \"Next\", backgroundColor: \"bg-primary\", size: \"small\", loading: isGettingBranches, onClick: function () { return __awaiter(void 0, void 0, void 0, function () {\n var clearData, checkCookie_1, handleVerificationSuccess;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n setIsGettingBranches(true);\n if (!validatePaymentMethod()) return [3 /*break*/, 3];\n setIsGettingBranches(false);\n if (!(paymentMethod == constants_1.LOAN)) return [3 /*break*/, 1];\n onNext();\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, (0, clear_action_auth_1.clear_action_auth)()];\n case 2:\n clearData = _a.sent();\n if (!clearData.success) {\n return [2 /*return*/];\n }\n checkCookie_1 = function () {\n var userStateCookie = cookie.get(\"user_state\");\n if (userStateCookie === null || userStateCookie === void 0 ? void 0 : userStateCookie.facetec.action_authenticated) {\n clearInterval(intervalId);\n onNext();\n }\n else {\n }\n };\n handleVerificationSuccess = function () {\n // Use an interval to check for changes in the cookie\n intervalId = setInterval(checkCookie_1, 5000); // Check every 5 second\n sampleAppController_1.SampleApp.onAuthenticateUserPressed();\n };\n dispatch((0, main_1.setContentModal)({\n title: \"PEP/PIP Verification\",\n content: react_1.default.createElement(pep_pip_verification_1.PepPipVerification, { onProceed: handleVerificationSuccess }),\n }));\n _a.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n }); } }))))),\n },\n {\n label: \"Choose Delivery or Collection\",\n hidden: paymentMethod == constants_1.LOAN || airtimeOnly,\n component: (react_1.default.createElement(\"div\", { className: \"flex flex-col gap-4\" },\n react_1.default.createElement(doshx_controls_web_1.RadioButtonsControl, { title: \"Delivery Method\", colors: control_colors_1.radio_colors, selectedValue: deliveryOrCollection, options: [\n { label: \"Delivery\", value: \"delivery\" },\n { label: \"Collection\", value: \"collection\" },\n ], onChange: function (value) {\n setDeliveryOrCollection(value);\n } }),\n react_1.default.createElement(\"div\", { className: \"flex flex-row items-center gap-4\" },\n react_1.default.createElement(doshx_controls_web_1.ButtonControl, { label: \"Next\", backgroundColor: \"bg-primary\", size: \"small\", loading: isGettingBranches, onClick: function () {\n if (validateDeliveryMethod()) {\n dispatch((0, basket_1.setDeliveryMethod)(deliveryOrCollection));\n onNext();\n }\n // setIsAddingAddress(false);\n } }),\n react_1.default.createElement(doshx_controls_web_1.LinkButtonControl, { label: \"Back\", size: \"small\", onClick: function () {\n onPrevious();\n } })))),\n },\n {\n label: \"Choose Phone Number\",\n hidden: paymentMethod == constants_1.LOAN || !airtimeOnly,\n component: (react_1.default.createElement(\"div\", { className: \"flex flex-col gap-4\" },\n react_1.default.createElement(doshx_controls_web_1.CheckboxControl, { label: \"Is the airtime for you?\", value: !rechargingAnotherParty, onChange: function () {\n setRechargingAnotherParty(!rechargingAnotherParty);\n } }),\n rechargingAnotherParty ? (react_1.default.createElement(\"div\", null,\n react_1.default.createElement(doshx_controls_web_1.PhoneInputControl, { label: \"Phone Number\", value: rechargePhoneNumber === null || rechargePhoneNumber === void 0 ? void 0 : rechargePhoneNumber.phone_number, size: \"small\", errorText: \"\", defaultCountryCode: (_a = rechargePhoneNumber === null || rechargePhoneNumber === void 0 ? void 0 : rechargePhoneNumber.country_abbreviation) !== null && _a !== void 0 ? _a : \"NA\", showExtension: false, showFlag: false, onChange: function (v) {\n return setRechargePhoneNumber(__assign(__assign({}, rechargePhoneNumber), { phone_number: v }));\n }, onExtensionChange: function (ext, code) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n setRechargePhoneNumber(__assign(__assign({}, rechargePhoneNumber), { phone_number: rechargePhoneNumber === null || rechargePhoneNumber === void 0 ? void 0 : rechargePhoneNumber.phone_number }));\n return [2 /*return*/];\n });\n }); }, international: true }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { size: \"small\", label: \"By proceeding you agree that it is your duty to ensure the correctness of the target mobile number as expressed above, and you will have no claim for refund in case of incorrect number.\" }))) : (react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: (_b = user === null || user === void 0 ? void 0 : user.cell_number) === null || _b === void 0 ? void 0 : _b.phone_number, bold: true, textColor: \"text-gray\", size: \"medium\" })),\n react_1.default.createElement(\"div\", { className: \"flex flex-row items-center gap-4\" },\n react_1.default.createElement(doshx_controls_web_1.ButtonControl, { label: \"Next\", backgroundColor: \"bg-primary\", size: \"small\", loading: isGettingBranches, onClick: function () {\n var _a;\n if (validateRechargePhoneNumber()) {\n if (rechargingAnotherParty) {\n dispatch((0, set_checkout_local_storage_thunk_1.set_checkout_local_storage_thunk)({ recharge_phone_number: rechargePhoneNumber === null || rechargePhoneNumber === void 0 ? void 0 : rechargePhoneNumber.phone_number }));\n }\n else {\n dispatch((0, set_checkout_local_storage_thunk_1.set_checkout_local_storage_thunk)({ recharge_phone_number: (_a = user === null || user === void 0 ? void 0 : user.cell_number) === null || _a === void 0 ? void 0 : _a.phone_number }));\n }\n onNext();\n }\n // setIsAddingAddress(false);\n } }),\n react_1.default.createElement(doshx_controls_web_1.LinkButtonControl, { label: \"Back\", size: \"small\", onClick: function () {\n onPrevious();\n } })))),\n },\n {\n label: \"Select Address\",\n hidden: airtimeOnly || paymentMethod == constants_1.LOAN || deliveryOrCollection == \"collection\",\n component: (react_1.default.createElement(\"div\", { className: \"flex flex-col gap-4\" },\n isAddingAddress ? (react_1.default.createElement(\"div\", { className: \"flex flex-col gap-4\" },\n react_1.default.createElement(doshx_controls_web_1.AddressSearchControl, { value: selectedAddress, required: true, label: \"Search Address\", size: \"medium\", onSelectionChange: function (addressObject) {\n if (addressObject) {\n setSelectedAddress({\n full_address: addressObject.fullAddress,\n longitude: addressObject.coordinates.lng.toString(),\n latitude: addressObject.coordinates.lat.toString(),\n });\n }\n } }),\n selectedAddress && (react_1.default.createElement(\"div\", { className: \"flex flex-col border rounded-lg border-primary\" },\n react_1.default.createElement(\"div\", { className: \"flex flex-row items-center gap-4 p-2 pl-4\" },\n react_1.default.createElement(\"div\", { className: \"flex-1\" }, selectedAddress === null || selectedAddress === void 0 ? void 0 : selectedAddress.full_address),\n react_1.default.createElement(doshx_controls_web_1.CheckboxControl, { label: \"Save this address?\", value: saveAddress, onChange: function (v) {\n setSaveAddress(v);\n } })),\n saveAddress && (react_1.default.createElement(\"div\", { className: \"px-2 pb-2\" },\n react_1.default.createElement(\"div\", { className: \"w-1/2\" },\n react_1.default.createElement(doshx_controls_web_1.TextInputControl, { label: \"Name this address\", size: \"small\", errorText: newAddressErrorText, value: newAddressLabel, onChange: function (v) {\n setNewAddressLabel(v);\n } })))))))) : (react_1.default.createElement(\"div\", null,\n react_1.default.createElement(\"div\", null, addressList && addressList.length > 0 ? (react_1.default.createElement(\"div\", { className: \"flex flex-col gap-4\" }, addressList.map(function (address, index) {\n return (react_1.default.createElement(\"div\", { key: index, className: \"p-4 border border-gray-400 rounded-md cursor-pointer\", onClick: function () {\n setSelectedAddress({\n full_address: address === null || address === void 0 ? void 0 : address.full_address,\n longitude: address.longitude,\n latitude: address.latitude,\n });\n // onNext();\n } },\n react_1.default.createElement(\"div\", { className: \"flex flex-row items-center\" },\n react_1.default.createElement(\"div\", { className: \"flex flex-col flex-1\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: address.label, className: \"cursor-pointer\" //\n , textColor: \"text-black\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: address.full_address, className: \"cursor-pointer\" //\n , textColor: \"text-black\", size: \"xsmall\" })),\n address.full_address == (selectedAddress === null || selectedAddress === void 0 ? void 0 : selectedAddress.full_address) && (react_1.default.createElement(\"div\", { className: \"flex flex-row items-center px-2 py-1 rounded-lg bg-primary\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"SELECTED\", className: \"cursor-pointer\" //\n , textColor: \"text-white\", size: \"xsmall\" }))))));\n }))) : (react_1.default.createElement(\"div\", null,\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"You don't have any saved addresses. Please add an address.\" })))))),\n react_1.default.createElement(\"div\", { className: \"flex flex-row items-center gap-4\" },\n react_1.default.createElement(doshx_controls_web_1.ButtonControl, { label: \"Next\", backgroundColor: \"bg-primary\", size: \"small\", loading: isGettingBranches, onClick: function () {\n var _a, _b, _c, _d, _e, _f, _g;\n if (validateAddress()) {\n if (saveAddress) {\n (0, add_user_address_1.add_user_address)({\n label: newAddressLabel,\n full_address: (_a = selectedAddress === null || selectedAddress === void 0 ? void 0 : selectedAddress.full_address) !== null && _a !== void 0 ? _a : \"\",\n latitude: (_b = selectedAddress === null || selectedAddress === void 0 ? void 0 : selectedAddress.latitude) !== null && _b !== void 0 ? _b : \"\",\n longitude: (_c = selectedAddress === null || selectedAddress === void 0 ? void 0 : selectedAddress.longitude) !== null && _c !== void 0 ? _c : \"\",\n is_residential: true,\n complex_building_details: \"\",\n }).then(function (response) {\n if (response.success) {\n setAddressList(__spreadArray([], addressList, true));\n }\n else {\n dispatch((0, main_1.setMessageModal)({\n title: \"Could not save user address.\",\n messages: [response.message],\n }));\n }\n });\n }\n (0, update_basket_1.update_basket)({\n _id: (_d = basket === null || basket === void 0 ? void 0 : basket._id) !== null && _d !== void 0 ? _d : \"\",\n basket: {\n type: deliveryOrCollection,\n provider: basket.provider,\n branch_id: (_e = selectedBranch === null || selectedBranch === void 0 ? void 0 : selectedBranch.branch) === null || _e === void 0 ? void 0 : _e._id,\n address: {\n full_address: selectedAddress === null || selectedAddress === void 0 ? void 0 : selectedAddress.full_address,\n latitude: (_f = selectedAddress.latitude) === null || _f === void 0 ? void 0 : _f.toString(),\n longitude: (_g = selectedAddress.longitude) === null || _g === void 0 ? void 0 : _g.toString(),\n },\n },\n }).then(function (response) {\n if (response.success) {\n dispatch((0, get_basket_thunk_1.get_basket_thunk)({ basket_id: basket === null || basket === void 0 ? void 0 : basket._id }));\n }\n });\n onNext();\n }\n } }),\n isAddingAddress ? (react_1.default.createElement(doshx_controls_web_1.LinkButtonControl, { label: \"Show address list\", size: \"small\", onClick: function () {\n setSelectedAddress(null);\n setIsAddingAddress(false);\n } })) : (react_1.default.createElement(doshx_controls_web_1.LinkButtonControl, { label: \"Add address\", size: \"small\", onClick: function () {\n setSelectedAddress(null);\n setIsAddingAddress(true);\n } })),\n react_1.default.createElement(doshx_controls_web_1.LinkButtonControl, { label: \"Back\", size: \"small\", onClick: function () {\n onPrevious();\n } })))),\n },\n {\n label: \"Choose Branch\",\n hidden: airtimeOnly || deliveryOrCollection == \"delivery\",\n component: (react_1.default.createElement(\"div\", { className: \"flex flex-col gap-4\" },\n react_1.default.createElement(\"div\", { className: \"flex flex-col gap-4\" },\n react_1.default.createElement(\"div\", { className: \"\" },\n react_1.default.createElement(doshx_controls_web_1.ButtonControl, { label: \"Find a store near me\", startIcon: pro_solid_svg_icons_1.faLocationCrosshairs, iconColor: \"text-primary\", textColor: \"text-primary\", size: \"small\", backgroundColor: \"bg-transparent\", onClick: function () {\n getUserLocation();\n } })),\n selectedAddress && (react_1.default.createElement(\"div\", { className: \"flex flex-col\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"Branches close to:\", size: \"small\", textColor: \"text-black\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: selectedAddress === null || selectedAddress === void 0 ? void 0 : selectedAddress.full_address, size: \"medium\", textColor: \"text-black\", bold: true }))),\n isGettingBranches || (nearestBranches === null || nearestBranches === void 0 ? void 0 : nearestBranches.length) == 0 ? (react_1.default.createElement(doshx_controls_web_1.ShimmerBoxControl, null)) : (react_1.default.createElement(doshx_controls_web_1.BoxControl, { borderColor: \"border-borders\", addPadding: false },\n react_1.default.createElement(\"div\", { className: \"flex flex-col gap-4 p-4 overflow-y-auto max-h-96\" }, nearestBranches && nearestBranches.length > 0 ? (nearestBranches\n .filter(function (x) {\n return branchSearchText.toLowerCase()\n ? x.branch.display_name.toLowerCase().includes(branchSearchText) ||\n x.branch.address.full_address.toLowerCase().includes(branchSearchText)\n : true;\n })\n .map(function (branch, index) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n return (react_1.default.createElement(\"div\", { key: index, onClick: function () {\n var _a;\n if (!((_a = branch === null || branch === void 0 ? void 0 : branch.branch) === null || _a === void 0 ? void 0 : _a.offline)) {\n setSelectedBranch(branch);\n }\n else {\n dispatch((0, main_1.setMessageModal)({\n title: \"Store offline!\",\n messages: [\"The selected store is currectly offline, please choose a different store to proceed.\"],\n }));\n }\n }, className: \"flex flex-row items-center p-4 border rounded-md cursor-pointer border-borders\" },\n react_1.default.createElement(\"div\", { className: \"flex-1\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: (_b = (_a = branch.branch) === null || _a === void 0 ? void 0 : _a.display_name) !== null && _b !== void 0 ? _b : \"\", textColor: \"text-black\", bold: true, size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: (_e = (_d = (_c = branch.branch) === null || _c === void 0 ? void 0 : _c.address) === null || _d === void 0 ? void 0 : _d.full_address) !== null && _e !== void 0 ? _e : \"\", textColor: \"text-black\", size: \"xsmall\" }),\n react_1.default.createElement(\"div\", { className: \"flex flex-row content-center justify-center w-full gap-4 p-4\" },\n react_1.default.createElement(\"div\", { className: \"text-2xl \".concat(branch == selectedBranch ? \"text-primary\" : \"text-success\", \" flex flex-col justify-center content-center\") },\n react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: pro_solid_svg_icons_1.faHandsHoldingDollar }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"Click & Collect\", textColor: \"text-black\", size: \"xsmall\" })),\n ((_g = (_f = branch === null || branch === void 0 ? void 0 : branch.branch) === null || _f === void 0 ? void 0 : _f.delivery) === null || _g === void 0 ? void 0 : _g.delivery) && (react_1.default.createElement(\"div\", { className: \"text-2xl \".concat(branch == selectedBranch ? \"text-primary\" : \"text-success\", \" flex flex-col justify-center content-center\") },\n react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: pro_solid_svg_icons_1.faTruckContainer }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"Delivery\", textColor: \"text-black\", size: \"xsmall\" }))))),\n ((_h = branch === null || branch === void 0 ? void 0 : branch.branch) === null || _h === void 0 ? void 0 : _h.offline) == true && (react_1.default.createElement(\"div\", { className: \"flex flex-row items-center px-2 py-1 rounded-lg bg-secondary\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"OFFLINE\", className: \"cursor-pointer\" //\n , textColor: \"text-white\", size: \"xsmall\" }))),\n branch == selectedBranch && (react_1.default.createElement(\"div\", { className: \"flex flex-row items-center px-2 py-1 rounded-lg bg-primary\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"SELECTED\", className: \"cursor-pointer\" //\n , textColor: \"text-white\", size: \"xsmall\" })))));\n })) : (react_1.default.createElement(\"div\", null, deliveryOrCollection ? (react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"Unfortunately, we do not deliver to this address. Please select a different address, or choose to collect. \\n If no options are displaying please check if you have allowed location access.\", textColor: \"text-error\" })) : (react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"Please choose your delivery method to continue.\", textColor: \"text-error\" })))))))),\n react_1.default.createElement(\"div\", { className: \"flex flex-row items-center gap-4\" },\n paymentMethod == constants_1.LOAN ? (react_1.default.createElement(doshx_controls_web_1.ButtonControl, { label: \"Proceed\", backgroundColor: \"bg-primary\", size: \"small\", loading: isLoading, onClick: function () { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!validateBranch()) return [3 /*break*/, 2];\n return [4 /*yield*/, saveLoanDetails()];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [2 /*return*/];\n }\n });\n }); } })) : (react_1.default.createElement(doshx_controls_web_1.ButtonControl, { label: \"Next\", backgroundColor: \"bg-primary\", size: \"small\", \n // loading={isLoadingButton}\n onClick: function () {\n if (validateBranch()) {\n onNext();\n }\n } })),\n react_1.default.createElement(doshx_controls_web_1.LinkButtonControl, { label: \"Back\", size: \"small\", onClick: function () {\n onPrevious();\n } })))),\n },\n {\n hidden: deliveryOrCollection == \"collection\" || airtimeOnly,\n label: \"Special Instructions\",\n component: (react_1.default.createElement(\"div\", { className: \"flex flex-col gap-4\" },\n react_1.default.createElement(\"div\", { className: \"flex flex-col\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"Optionally provide any special instructions.\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"For example: \\\"Hoot at gate.\\\"\", size: \"xsmall\" })),\n react_1.default.createElement(doshx_controls_web_1.TextInputControl, { label: \"Special Instructions\", lines: 4, size: \"small\", borderColor: \"border-gray-400\", value: specialInstructions, onChange: function (v) {\n setSpecialInstructions(v);\n } }),\n react_1.default.createElement(\"div\", { className: \"flex flex-row items-center gap-4\" },\n react_1.default.createElement(doshx_controls_web_1.ButtonControl, { label: \"Next\", backgroundColor: \"bg-primary\", size: \"small\", onClick: function () {\n var _a, _b, _c, _d;\n (0, update_basket_1.update_basket)({\n _id: (_a = basket === null || basket === void 0 ? void 0 : basket._id) !== null && _a !== void 0 ? _a : \"\",\n basket: {\n type: deliveryOrCollection,\n provider: basket.provider,\n branch_id: (_b = selectedBranch === null || selectedBranch === void 0 ? void 0 : selectedBranch.branch) === null || _b === void 0 ? void 0 : _b._id,\n address: {\n full_address: selectedAddress.full_address,\n latitude: (_c = selectedAddress.latitude) === null || _c === void 0 ? void 0 : _c.toString(),\n longitude: (_d = selectedAddress.longitude) === null || _d === void 0 ? void 0 : _d.toString(),\n },\n },\n }).then(function (response) {\n if (response.success) {\n dispatch((0, get_basket_thunk_1.get_basket_thunk)({ basket_id: basket === null || basket === void 0 ? void 0 : basket._id }));\n }\n });\n onNext();\n } }),\n react_1.default.createElement(doshx_controls_web_1.LinkButtonControl, { label: \"Back\", size: \"small\", onClick: function () {\n onPrevious();\n } })))),\n },\n {\n label: \"Payment Method\",\n hidden: paymentMethod == constants_1.LOAN,\n component: (react_1.default.createElement(\"div\", { className: \"flex flex-row items-center gap-4\" },\n react_1.default.createElement(\"div\", { className: \"flex flex-row items-center gap-4\" }, ngeniusLoading ? (react_1.default.createElement(doshx_controls_web_1.CircularLoaderControl, { size: \"large\" })) : (react_1.default.createElement(\"div\", { onClick: function () { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n setNgeniusLoading(true);\n (0, create_order_1.create_order)({\n amount: basket === null || basket === void 0 ? void 0 : basket.total,\n redirect_url: \"\".concat(ngeniuRedirectURL, \"/#/outcome/success\"),\n reference: {\n key: \"basket\",\n value: basket === null || basket === void 0 ? void 0 : basket._id,\n },\n }).then(function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var myAirtimeProducts_1, redirectUrl;\n var _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n setNgeniusLoading(false);\n if (!response.success) return [3 /*break*/, 3];\n myAirtimeProducts_1 = [];\n (_a = basket === null || basket === void 0 ? void 0 : basket.product_list) === null || _a === void 0 ? void 0 : _a.forEach(function (product) {\n var _a, _b, _c, _d, _e;\n if (((_b = (_a = product === null || product === void 0 ? void 0 : product.category) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === \"airtime top-up\") {\n myAirtimeProducts_1.push({\n amount: product === null || product === void 0 ? void 0 : product.price,\n order_number: (_d = (_c = basket === null || basket === void 0 ? void 0 : basket.order) === null || _c === void 0 ? void 0 : _c.code) !== null && _d !== void 0 ? _d : \"\",\n basket_id: basket === null || basket === void 0 ? void 0 : basket._id,\n number: rechargingAnotherParty ? rechargePhoneNumber === null || rechargePhoneNumber === void 0 ? void 0 : rechargePhoneNumber.phone_number : (_e = user === null || user === void 0 ? void 0 : user.cell_number) === null || _e === void 0 ? void 0 : _e.phone_number,\n product: product === null || product === void 0 ? void 0 : product.title,\n quantity: product === null || product === void 0 ? void 0 : product.quantity,\n status: \"PENDING\",\n });\n }\n });\n if (!(myAirtimeProducts_1.length > 0)) return [3 /*break*/, 2];\n //Save Data\n return [4 /*yield*/, (0, airtime_purchases_1.save_airtime_purchases)({\n airtime: myAirtimeProducts_1,\n }).then(function (response) {\n if (response.success) {\n }\n else {\n dispatch((0, main_1.setMessageModal)({ title: \"Something went wrong!\", messages: [response.message] }));\n }\n })];\n case 1:\n //Save Data\n _c.sent();\n _c.label = 2;\n case 2:\n if (rechargingAnotherParty) {\n dispatch((0, set_checkout_local_storage_thunk_1.set_checkout_local_storage_thunk)({ recharge_phone_number: rechargePhoneNumber === null || rechargePhoneNumber === void 0 ? void 0 : rechargePhoneNumber.phone_number }));\n }\n else {\n dispatch((0, set_checkout_local_storage_thunk_1.set_checkout_local_storage_thunk)({ recharge_phone_number: (_b = user === null || user === void 0 ? void 0 : user.cell_number) === null || _b === void 0 ? void 0 : _b.phone_number }));\n }\n redirectUrl = response.content.order._links.payment.href;\n // Redirect to NGenius\n window.location.replace(redirectUrl);\n return [3 /*break*/, 4];\n case 3:\n dispatch((0, main_1.setMessageModal)({\n title: \"Something went wrong while creating the NGenius order!\",\n messages: [response.message],\n }));\n _c.label = 4;\n case 4: return [2 /*return*/];\n }\n });\n }); });\n return [2 /*return*/];\n });\n }); }, className: \"p-2 rounded-md bg-secondary \" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"Pay Now\", textColor: \"text-white\", size: \"large\" })))),\n react_1.default.createElement(doshx_controls_web_1.LinkButtonControl, { label: \"Back\", size: \"small\", onClick: function () {\n onPrevious();\n } }))),\n },\n // {\n // label: \"Loan Application\",\n // hidden: paymentMethod != LOAN || airtimeOnly,\n // component: (\n //
\n //
\n // \n // \n //
\n //
\n // {\n // await saveLoanDetails();\n // }}\n // />\n // {\n // onPrevious();\n // }}\n // />\n //
\n //
\n // ),\n // },\n ];\n return (react_1.default.createElement(\"div\", { className: \"flex flex-col gap-8\" },\n react_1.default.createElement(doshx_controls_web_1.ScreenContainerControl, { className: \"flex flex-col gap-4 lg:flex-row lg:items-start\" },\n react_1.default.createElement(\"div\", { className: \"flex-grow\" },\n react_1.default.createElement(doshx_controls_web_1.StepperControl, { stepPillBackgroundColor: \"bg-primary\", lineColor: \"border-primary\", currentStep: currentStep, steps: customSteps })),\n react_1.default.createElement(\"div\", { id: \"status\", className: \"hidden\" }),\n react_1.default.createElement(doshx_controls_web_1.BoxControl, { className: \"flex flex-col flex-none\" },\n react_1.default.createElement(\"div\", null,\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"Order Summary\", textColor: \"text-black\", size: \"large\" }),\n selectedBranch &&\n (selectedBranch === null || selectedBranch === void 0 ? void 0 : selectedBranch.branch) &&\n !airtimeOnly && ( //TODO we need to check if the branch is selected and that it is not NULL when ew press \"Next\"\n react_1.default.createElement(\"div\", null,\n react_1.default.createElement(doshx_controls_web_1.DividerControl, null),\n react_1.default.createElement(\"div\", { className: \"flex flex-row items-center gap-4 \" },\n react_1.default.createElement(\"div\", { className: \"flex-1\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: (_c = selectedBranch.branch.display_name) !== null && _c !== void 0 ? _c : \"\", size: \"small\", textColor: \"text-black\" })),\n react_1.default.createElement(\"div\", { className: \"flex flex-row items-center px-2 py-1 rounded-lg bg-primary\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: deliveryOrCollection.toUpperCase(), size: \"xsmall\", textColor: \"text-white\" }))))),\n react_1.default.createElement(doshx_controls_web_1.DividerControl, null),\n react_1.default.createElement(\"div\", null, basket &&\n basket.product_list.map(function (product, index) {\n var _a, _b, _c;\n return (react_1.default.createElement(\"div\", { key: index, className: \"flex flex-row items-center justify-between\" },\n react_1.default.createElement(\"div\", { className: \"pr-4 pb-[2px] flex flex-row gap-2 justify-center items-center text-secondary\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: product.title, textColor: \"text-black\" }),\n \" \",\n product.on_promotion ? react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: pro_light_svg_icons_1.faTag }) : \"\"),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: doshx_controls_web_1.Utilities.formatMoney({\n symbol: symbols_1.currencySymbol,\n value: product.on_promotion ? (_a = product.promotion_price) === null || _a === void 0 ? void 0 : _a.toString() : (_c = (_b = product.price) === null || _b === void 0 ? void 0 : _b.toString()) !== null && _c !== void 0 ? _c : \"0\",\n }), textColor: \"text-black\" })));\n }))),\n react_1.default.createElement(doshx_controls_web_1.DividerControl, null),\n react_1.default.createElement(\"div\", null,\n react_1.default.createElement(\"div\", { className: \"flex flex-row justify-between\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"Subtotal\", textColor: \"text-black\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: doshx_controls_web_1.Utilities.formatMoney({ symbol: symbols_1.currencySymbol, value: (_d = basket === null || basket === void 0 ? void 0 : basket.total.toString()) !== null && _d !== void 0 ? _d : \"0\", decimalPlaces: 2 }), textColor: \"text-black\" })),\n deliveryOrCollection == \"delivery\" && (react_1.default.createElement(\"div\", { className: \"flex flex-row justify-between\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"Delivery\", textColor: \"text-black\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: doshx_controls_web_1.Utilities.formatMoney({\n symbol: symbols_1.currencySymbol,\n value: (_h = (_g = (_f = (_e = selectedBranch === null || selectedBranch === void 0 ? void 0 : selectedBranch.branch) === null || _e === void 0 ? void 0 : _e.delivery) === null || _f === void 0 ? void 0 : _f.delivery_fee) === null || _g === void 0 ? void 0 : _g.toString()) !== null && _h !== void 0 ? _h : \"0\",\n decimalPlaces: 2,\n }), textColor: \"text-black\" })))),\n react_1.default.createElement(doshx_controls_web_1.DividerControl, null),\n react_1.default.createElement(\"div\", { className: \"flex flex-row justify-between gap-4\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"Order Total\", textColor: \"text-black\", size: \"large\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: doshx_controls_web_1.Utilities.formatMoney({ symbol: symbols_1.currencySymbol, value: parseFloat((_j = basket === null || basket === void 0 ? void 0 : basket.total.toString()) !== null && _j !== void 0 ? _j : \"0\").toString(), decimalPlaces: 2 }), textColor: \"text-black\", size: \"large\" })))),\n react_1.default.createElement(doshx_controls_web_1.ScreenContainerControl, { className: \"\" })));\n};\nexports.CheckoutPage = CheckoutPage;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.send_generic_email = void 0;\nvar api_1 = require(\"../../api\");\nfunction send_generic_email(request) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, new api_1.API().apiPost({\n baseUrl: (_a = process.env.LETS_TRADE_NOTIFICATION_URL) !== null && _a !== void 0 ? _a : \"\",\n endpoint: \"v1/send/generic/email\",\n content: request,\n authorization: process.env.LETS_TRADE_CLIENT_TOKEN,\n })];\n case 1: \n // console.log(\"send_generic_email -> request\", request);\n return [2 /*return*/, _b.sent()];\n }\n });\n });\n}\nexports.send_generic_email = send_generic_email;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ServicesComponent = void 0;\nvar doshx_controls_web_1 = require(\"doshx_controls_web\");\nvar react_1 = __importStar(require(\"react\"));\nvar react_router_dom_1 = require(\"react-router-dom\");\nvar Airtime_png_1 = __importDefault(require(\"../../../../assets/WebAssets/Icons/Airtime.png\"));\nvar Money_png_1 = __importDefault(require(\"../../../../assets/WebAssets/Icons/Money.png\"));\nvar Weather_png_1 = __importDefault(require(\"../../../../assets/WebAssets/Icons/Weather.png\"));\nvar Phone_png_1 = __importDefault(require(\"../../../../assets/WebAssets/Icons/Phone.png\"));\nvar Solar_png_1 = __importDefault(require(\"../../../../assets/WebAssets/Icons/Solar.png\"));\nvar News_png_1 = __importDefault(require(\"../../../../assets/WebAssets/Icons/News.png\"));\nvar HomeAppliances_png_1 = __importDefault(require(\"../../../../assets/WebAssets/Icons/HomeAppliances.png\"));\nvar News_png_2 = __importDefault(require(\"../../../../assets/WebAssets/Icons/News.png\"));\nvar product_category_record_1 = __importDefault(require(\"../product_category_record\"));\nvar categories_1 = require(\"../../../../api/calls/product/categories\");\nvar ServicesComponent = function () {\n var navigate = (0, react_router_dom_1.useNavigate)();\n var _a = (0, react_1.useState)([]), shopCategories = _a[0], setShopCategories = _a[1];\n var imageMap = {\n Airtime: Airtime_png_1.default,\n Cellphone: Phone_png_1.default,\n Solar: Solar_png_1.default,\n Electricity: Weather_png_1.default,\n HomeAppliances: HomeAppliances_png_1.default,\n DefaultImage: Weather_png_1.default,\n };\n (0, react_1.useEffect)(function () {\n (0, categories_1.getCategories)({\n page: \"1\",\n }).then(function (response) {\n var categoryList = response.content.product_category_list;\n var newCategoryList = [];\n for (var _i = 0, _a = categoryList !== null && categoryList !== void 0 ? categoryList : []; _i < _a.length; _i++) {\n var category = _a[_i];\n var newLabel = ((category === null || category === void 0 ? void 0 : category.name) || \"\").trim();\n if (product_category_record_1.default[category === null || category === void 0 ? void 0 : category._id] && category.description != \"advert\") {\n newCategoryList.push({\n image: category.image_url,\n icon: product_category_record_1.default[category === null || category === void 0 ? void 0 : category._id],\n label: newLabel,\n url: \"/shop/category/0/\".concat(category._id, \"/\").concat(encodeURI(newLabel)),\n });\n }\n }\n setShopCategories(newCategoryList);\n });\n }, []);\n if (!shopCategories || shopCategories.length === 0)\n return null;\n return (react_1.default.createElement(\"div\", { className: \"flex flex-col gap-8 bg-secondary rounded-xl p-10 justify-evenly\" },\n react_1.default.createElement(\"div\", { className: \"flex flex-wrap md:flex-row justify-between gap-4\" },\n shopCategories.map(function (category, index) {\n return (react_1.default.createElement(\"div\", { key: index, className: \"flex flex-col justify-center items-center bg-white rounded-lg gap-4 h-40 w-40 cursor-pointer\", onClick: function () {\n window.scrollTo({\n top: 0,\n behavior: \"smooth\",\n });\n navigate(category.url);\n } },\n react_1.default.createElement(\"img\", { className: \"h-20\", src: imageMap[category.icon] || News_png_2.default }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: category.label, textColor: \"text-black\", size: \"medium\", bold: true, className: \"flex items-center text-center\" })));\n }),\n react_1.default.createElement(\"div\", { className: \"flex flex-col justify-center items-center bg-white rounded-lg gap-4 h-40 w-40 cursor-pointer\", onClick: function () {\n navigate(\"/loans\");\n window.scrollTo({\n top: 0,\n behavior: \"smooth\",\n });\n return;\n } },\n react_1.default.createElement(\"img\", { className: \"h-20\", src: Money_png_1.default }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"Loans\", textColor: \"text-black\", size: \"medium\", bold: true, className: \"flex items-center\" })),\n react_1.default.createElement(\"div\", { className: \"flex flex-col justify-center items-center bg-white rounded-lg gap-4 h-40 w-40 cursor-pointer\", onClick: function () {\n navigate(\"/publications\");\n window.scrollTo({\n top: 0,\n behavior: \"smooth\",\n });\n return;\n } },\n react_1.default.createElement(\"img\", { className: \"h-20\", src: News_png_1.default }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"News\", textColor: \"text-black\", size: \"medium\", bold: true, className: \"flex items-center\" })),\n react_1.default.createElement(\"div\", { className: \"flex flex-col justify-center items-center bg-white rounded-lg gap-4 h-40 w-40 cursor-pointer\", onClick: function () {\n navigate(\"/weather\");\n window.scrollTo({\n top: 0,\n behavior: \"smooth\",\n });\n return;\n } },\n react_1.default.createElement(\"img\", { className: \"h-20\", src: Weather_png_1.default }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"Weather\", textColor: \"text-black\", size: \"medium\", bold: true, className: \"flex items-center\" })))));\n};\nexports.ServicesComponent = ServicesComponent;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.save_airtime_purchases = void 0;\nvar firestore_1 = require(\"firebase/firestore\");\nvar firebase_1 = require(\"../../../firebase\");\nvar store_1 = require(\"../../../store\");\nfunction save_airtime_purchases(request) {\n var _a, _b, _c;\n return __awaiter(this, void 0, void 0, function () {\n var state, userState, userDocRef, airtimePurchasesCollectionRef, newLoanDocRef, newLoanDocSnapshot, loanData, error_1;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _d.trys.push([0, 5, , 6]);\n state = store_1.redux_store.getState();\n userState = state.userState;\n return [4 /*yield*/, (0, firestore_1.doc)(firebase_1.firestore, \"users\", \"\".concat(userState.user.uid))];\n case 1:\n userDocRef = _d.sent();\n return [4 /*yield*/, (0, firestore_1.collection)(firebase_1.firestore, \"airtimePurchases\")];\n case 2:\n airtimePurchasesCollectionRef = _d.sent();\n return [4 /*yield*/, (0, firestore_1.addDoc)(airtimePurchasesCollectionRef, {\n airtime: request.airtime,\n idNumber: (_a = userState.user.id_number) !== null && _a !== void 0 ? _a : \"\",\n surname: (_b = userState.user.surname) !== null && _b !== void 0 ? _b : \"\",\n name: (_c = userState.user.name) !== null && _c !== void 0 ? _c : \"\",\n date: new Date(),\n user: userDocRef,\n })];\n case 3:\n newLoanDocRef = _d.sent();\n return [4 /*yield*/, (0, firestore_1.getDoc)(newLoanDocRef)];\n case 4:\n newLoanDocSnapshot = _d.sent();\n if (newLoanDocSnapshot.exists()) {\n loanData = newLoanDocSnapshot.data();\n return [2 /*return*/, { success: true, message: \"Airtime Purchases Saved\", content: __assign({ uid: newLoanDocSnapshot === null || newLoanDocSnapshot === void 0 ? void 0 : newLoanDocSnapshot.id }, loanData) }];\n }\n else {\n return [2 /*return*/, { success: false, message: \"Failed to save airtime purchases\", content: null }];\n }\n return [3 /*break*/, 6];\n case 5:\n error_1 = _d.sent();\n return [2 /*return*/, { success: false, message: \"An error occurred\", content: null }];\n case 6: return [2 /*return*/];\n }\n });\n });\n}\nexports.save_airtime_purchases = save_airtime_purchases;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatPhoneNumber = exports.formatNumberForSms = exports.isAirtimeOnly = exports.removeUndefinedProperties = exports.convert_number = void 0;\nfunction convert_number(phone_number) {\n return __awaiter(this, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n if (typeof phone_number === \"string\" || !phone_number) {\n response = {\n phone_number: phone_number !== null && phone_number !== void 0 ? phone_number : \"\",\n country_code: \"+264\",\n country_abbreviation: \"NA\",\n };\n }\n else {\n response = phone_number;\n }\n return [2 /*return*/, response];\n });\n });\n}\nexports.convert_number = convert_number;\nfunction removeUndefinedProperties(obj) {\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (obj[key] && typeof obj[key] === \"object\") {\n // Recursively convert falsy values to null for nested objects\n removeUndefinedProperties(obj[key]);\n }\n else {\n // Convert falsy values to null\n obj[key] = obj[key] || null;\n }\n }\n }\n return obj;\n}\nexports.removeUndefinedProperties = removeUndefinedProperties;\nfunction isAirtimeOnly(product_list) {\n return __awaiter(this, void 0, void 0, function () {\n var artimeOnly;\n return __generator(this, function (_a) {\n artimeOnly = true;\n product_list === null || product_list === void 0 ? void 0 : product_list.forEach(function (product) {\n var _a, _b;\n if (((_b = (_a = product === null || product === void 0 ? void 0 : product.category) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.toLowerCase()) != \"airtime top-up\") {\n artimeOnly = false;\n return;\n }\n });\n return [2 /*return*/, artimeOnly];\n });\n });\n}\nexports.isAirtimeOnly = isAirtimeOnly;\nfunction formatNumberForSms(cell_number) {\n var _a;\n var formated = ((_a = cell_number === null || cell_number === void 0 ? void 0 : cell_number.country_code) === null || _a === void 0 ? void 0 : _a.substring(1)) + (cell_number === null || cell_number === void 0 ? void 0 : cell_number.phone_number.substring((cell_number === null || cell_number === void 0 ? void 0 : cell_number.phone_number.length) - 9));\n return formated;\n}\nexports.formatNumberForSms = formatNumberForSms;\nfunction formatPhoneNumber(phoneNumber) {\n if (phoneNumber.startsWith(\"+\")) {\n var lastNineDigits = phoneNumber.slice(-9);\n return \"0\" + lastNineDigits;\n }\n else {\n return phoneNumber;\n }\n}\nexports.formatPhoneNumber = formatPhoneNumber;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkout_basket = void 0;\nvar api_1 = require(\"../../api\");\nfunction checkout_basket(request) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, new api_1.API().apiPost({\n baseUrl: (_a = process.env.LETS_TRADE_BASKET_URL) !== null && _a !== void 0 ? _a : \"\",\n endpoint: \"v2/checkout\",\n content: request,\n })];\n case 1: \n // console.log(\"checkout_basket -> request\", request);\n return [2 /*return*/, _b.sent()];\n }\n });\n });\n}\nexports.checkout_basket = checkout_basket;\n","export var Config = (function () {\n var didSucceed = false;\n // -------------------------------------\n // REQUIRED\n // Available at https://dev.facetec.com/account\n // NOTE: This field is auto-populated by the FaceTec SDK Configuration Wizard.\n // var DeviceKeyIdentifier = \"dmLIwUzMFYrFNIUIoGWI4QduXsjzihQB\";\n var DeviceKeyIdentifier = \"\";\n\n // -------------------------------------\n // REQUIRED\n // The URL to call to process FaceTec SDK Sessions.\n // In Production, you likely will handle network requests elsewhere and without the use of this variable.\n // See https://dev.facetec.com/security-best-practices?link=facetec-server-rest-endpoint-security for more information.\n // NOTE: This field is auto-populated by the FaceTec SDK Configuration Wizard.\n\n //TODO - Move to .env\n //var BaseURL = \"https://api.facetec.com/api/v3.1/biometrics\";\n var BaseURL = process.env.FACETEC_API_URL;\n\n // -------------------------------------\n // REQUIRED\n // The FaceScan Encryption Key you define for your application.\n // Please see https://dev.facetec.com/facemap-encryption-keys for more information.\n // NOTE: This field is auto-populated by the FaceTec SDK Configuration Wizard.\n var PublicFaceScanEncryptionKey =\n \"-----BEGIN PUBLIC KEY-----\\n\" +\n \"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5PxZ3DLj+zP6T6HFgzzk\\n\" +\n \"M77LdzP3fojBoLasw7EfzvLMnJNUlyRb5m8e5QyyJxI+wRjsALHvFgLzGwxM8ehz\\n\" +\n \"DqqBZed+f4w33GgQXFZOS4AOvyPbALgCYoLehigLAbbCNTkeY5RDcmmSI/sbp+s6\\n\" +\n \"mAiAKKvCdIqe17bltZ/rfEoL3gPKEfLXeN549LTj3XBp0hvG4loQ6eC1E1tRzSkf\\n\" +\n \"GJD4GIVvR+j12gXAaftj3ahfYxioBH7F7HQxzmWkwDyn3bqU54eaiB7f0ftsPpWM\\n\" +\n \"ceUaqkL2DZUvgN0efEJjnWy5y1/Gkq5GGWCROI9XG/SwXJ30BbVUehTbVcD70+ZF\\n\" +\n \"8QIDAQAB\\n\" +\n \"-----END PUBLIC KEY-----\";\n // -------------------------------------\n // REQUIRED IF: You have had a Production Key generated for you.\n // Production Keys are generated for your account once all steps for Going Production have been completed.\n // More information on Going Production can be found at https://dev.facetec.com/going-production-overview.\n //\n // NOTE: DO NOT hard code this into your actual App. This variable is coded into the App for demonstration purposes only.\n // Your App MUST serve down the key data via your own API. This allows you to change/update keys without making a client-side change.\n // Please see https://dev.facetec.com/licensing?link=integrating-production-licenses for more information.\n\n //Get Keys https://sky-lifestyle-api-prod-x4hoqprqrq-ew.a.run.app/v1/facetec/production_keys\n\n // var ProductionKeyText =\n // '{ \"domains\": \"102.37.17.20\", \"expiryDate\": \"2024-10-10\", \"key\": \"00304402200e9a2b25ff003871c2e52133652b61eca0f721b493e67e27037627a5bd6047bc02202dcc16413f1ac686d6450646275f789274ccc9ba6a9a10867c903676b10b14fb\"}';\n\n // var ProductionKeyText = `{ \"domains\": \"102.37.17.20\", \"expiryDate\": \"2024-10-10\", \"key\": \"00304402200e9a2b25ff003871c2e52133652b61eca0f721b493e67e27037627a5bd6047bc02202dcc16413f1ac686d6450646275f789274ccc9ba6a9a10867c903676b10b14fb\"}`;\n var ProductionKeyText = \"\";\n // -------------------------------------\n // Convenience method to initialize the FaceTec SDK.\n // NOTE: This function is auto-populated by the FaceTec SDK Configuration Wizard based on your UI Customizations you picked in the Configuration Wizard GUI.\n\n function initializeFromAutogeneratedConfig(FaceTecSDK, callback, ProductionKey, KeyIdentifier) {\n console.log(\"SDK Initialization Started...\", ProductionKey, \" and \", KeyIdentifier);\n\n if (ProductionKey && KeyIdentifier) {\n FaceTecSDK.initializeInProductionMode(ProductionKey, KeyIdentifier, this.PublicFaceScanEncryptionKey, function (initializedSuccessfully) {\n callback(initializedSuccessfully);\n });\n } else {\n console.log(\"SDK Initialization Pending...\", ProductionKey, \" and \", KeyIdentifier, \"keys unset.\");\n }\n }\n\n // This app can modify the customization to demonstrate different look/feel preferences\n // NOTE: This function is auto-populated by the FaceTec SDK Configuration Wizard based on your UI Customizations you picked in the Configuration Wizard GUI.\n function retrieveConfigurationWizardCustomization(FaceTecSDK) {\n var sdkImageDirectory = \"../../core-sdk/FaceTec_images/\";\n\n // For Color Customization\n var outerBackgroundColor = \"#ffffff\";\n var frameColor = \"#ffffff\";\n var borderColor = \"#5d53a2\";\n var ovalColor = \"#5d53a2\";\n var dualSpinnerColor = \"#f26925\";\n var textColor = \"#f36926\";\n var buttonAndFeedbackBarColor = \"#f36926\";\n var buttonAndFeedbackBarTextColor = \"#ffffff\";\n var buttonColorHighlight = \"#f46a26\";\n var buttonColorDisabled = \"#B9CCDE\";\n\n // For Frame Corner Radius Customization\n let frameCornerRadius = \"20px\";\n\n // For Cancel Button Customization\n var cancelButtonImage = sdkImageDirectory + \"FaceTec_cancel.png\";\n var cancelButtonLocation = FaceTecSDK.FaceTecCancelButtonLocation.TopLeft;\n\n // For image Customization\n //var yourAppLogoImage = sdkImageDirectory + \"FaceTec_your_app_logo.png\";\n var yourAppLogoImage = \"https://www.skylifestyle.app/images/4367346ac28805080b5c5f2abc470e01.png\";\n var securityWatermarkImage = FaceTecSDK.FaceTecSecurityWatermarkImage.Zoom;\n\n // Set a default customization\n var defaultCustomization = new FaceTecSDK.FaceTecCustomization();\n\n // Set Frame Customization\n defaultCustomization.frameCustomization.borderCornerRadius = frameCornerRadius;\n defaultCustomization.frameCustomization.backgroundColor = frameColor;\n defaultCustomization.frameCustomization.borderColor = borderColor;\n\n // Set Overlay Customization\n defaultCustomization.overlayCustomization.brandingImage = yourAppLogoImage;\n defaultCustomization.overlayCustomization.backgroundColor = outerBackgroundColor;\n\n // Set Guidance Customization\n defaultCustomization.guidanceCustomization.backgroundColors = frameColor;\n defaultCustomization.guidanceCustomization.foregroundColor = textColor;\n defaultCustomization.guidanceCustomization.buttonBackgroundNormalColor = buttonAndFeedbackBarColor;\n defaultCustomization.guidanceCustomization.buttonBackgroundDisabledColor = buttonColorDisabled;\n defaultCustomization.guidanceCustomization.buttonBackgroundHighlightColor = buttonColorHighlight;\n defaultCustomization.guidanceCustomization.buttonTextNormalColor = buttonAndFeedbackBarTextColor;\n defaultCustomization.guidanceCustomization.buttonTextDisabledColor = buttonAndFeedbackBarTextColor;\n defaultCustomization.guidanceCustomization.buttonTextHighlightColor = buttonAndFeedbackBarTextColor;\n defaultCustomization.guidanceCustomization.retryScreenImageBorderColor = borderColor;\n defaultCustomization.guidanceCustomization.retryScreenOvalStrokeColor = borderColor;\n\n // Set Oval Customization\n defaultCustomization.ovalCustomization.strokeColor = ovalColor;\n defaultCustomization.ovalCustomization.progressColor1 = dualSpinnerColor;\n defaultCustomization.ovalCustomization.progressColor2 = dualSpinnerColor;\n\n // Set Feedback Customization\n defaultCustomization.feedbackCustomization.backgroundColor = buttonAndFeedbackBarColor;\n defaultCustomization.feedbackCustomization.textColor = buttonAndFeedbackBarTextColor;\n\n // Set Cancel Customization\n defaultCustomization.cancelButtonCustomization.customImage = cancelButtonImage;\n defaultCustomization.cancelButtonCustomization.location = cancelButtonLocation;\n\n // Set Security Watermark Customization\n defaultCustomization.securityWatermarkCustomization.setSecurityWatermarkImage(securityWatermarkImage);\n\n // Set Result Screen Customization\n defaultCustomization.resultScreenCustomization.backgroundColors = frameColor;\n defaultCustomization.resultScreenCustomization.foregroundColor = textColor;\n defaultCustomization.resultScreenCustomization.activityIndicatorColor = buttonAndFeedbackBarColor;\n defaultCustomization.resultScreenCustomization.resultAnimationBackgroundColor = buttonAndFeedbackBarColor;\n defaultCustomization.resultScreenCustomization.resultAnimationForegroundColor = buttonAndFeedbackBarTextColor;\n defaultCustomization.resultScreenCustomization.uploadProgressFillColor = buttonAndFeedbackBarColor;\n\n // Set ID Scan Customization\n defaultCustomization.idScanCustomization.selectionScreenBackgroundColors = frameColor;\n defaultCustomization.idScanCustomization.selectionScreenForegroundColor = textColor;\n defaultCustomization.idScanCustomization.reviewScreenBackgroundColors = frameColor;\n defaultCustomization.idScanCustomization.reviewScreenForegroundColor = buttonAndFeedbackBarTextColor;\n defaultCustomization.idScanCustomization.reviewScreenTextBackgroundColor = buttonAndFeedbackBarColor;\n defaultCustomization.idScanCustomization.captureScreenForegroundColor = buttonAndFeedbackBarTextColor;\n defaultCustomization.idScanCustomization.captureScreenTextBackgroundColor = buttonAndFeedbackBarColor;\n defaultCustomization.idScanCustomization.buttonBackgroundNormalColor = buttonAndFeedbackBarColor;\n defaultCustomization.idScanCustomization.buttonBackgroundDisabledColor = buttonColorDisabled;\n defaultCustomization.idScanCustomization.buttonBackgroundHighlightColor = buttonColorHighlight;\n defaultCustomization.idScanCustomization.buttonTextNormalColor = buttonAndFeedbackBarTextColor;\n defaultCustomization.idScanCustomization.buttonTextDisabledColor = buttonAndFeedbackBarTextColor;\n defaultCustomization.idScanCustomization.buttonTextHighlightColor = buttonAndFeedbackBarTextColor;\n defaultCustomization.idScanCustomization.captureScreenBackgroundColor = frameColor;\n defaultCustomization.idScanCustomization.captureFrameStrokeColor = borderColor;\n\n // Set Initial Loading Customization\n defaultCustomization.initialLoadingAnimationCustomization.backgroundColor = buttonAndFeedbackBarTextColor;\n defaultCustomization.initialLoadingAnimationCustomization.foregroundColor = buttonAndFeedbackBarColor;\n\n console.log(\"SDK Configuration Completed...\", \"defaultCustomization obtained!\");\n\n return defaultCustomization;\n }\n\n function retrieveLowLightConfigurationWizardCustomization(FaceTecSDK) {\n var defaultCustomization = retrieveConfigurationWizardCustomization(FaceTecSDK);\n this.currentLowLightCustomization = defaultCustomization;\n return defaultCustomization;\n }\n\n function retrieveDynamicDimmingConfigurationWizardCustomization(FaceTecSDK) {\n var defaultCustomization = retrieveConfigurationWizardCustomization(FaceTecSDK);\n this.currentDynamicDimmingCustomization = defaultCustomization;\n return defaultCustomization;\n }\n\n var currentCustomization;\n var currentLowLightCustomization;\n var currentDynamicDimmingCustomization;\n\n // -------------------------------------\n // Boolean to indicate the FaceTec SDK Configuration Wizard was used to generate this file.\n // In this Sample App, if this variable is true, a \"Config Wizard Theme\" will be added to this App's \"Toggle Colors & Themes\" menu,\n // and choosing this option will set the FaceTec SDK UI/UX Customizations to the Customizations that you selected in the\n // Configuration Wizard.\n var wasSDKConfiguredWithConfigWizard = true;\n\n return {\n wasSDKConfiguredWithConfigWizard,\n DeviceKeyIdentifier,\n BaseURL,\n PublicFaceScanEncryptionKey,\n ProductionKeyText,\n didSucceed,\n initializeFromAutogeneratedConfig,\n currentCustomization,\n currentLowLightCustomization,\n currentDynamicDimmingCustomization,\n retrieveConfigurationWizardCustomization,\n retrieveLowLightConfigurationWizardCustomization,\n retrieveDynamicDimmingConfigurationWizardCustomization,\n };\n})();\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AuthorizationElectronicPayments = void 0;\nvar react_1 = __importStar(require(\"react\"));\nvar doshx_controls_web_1 = require(\"doshx_controls_web\");\nvar page_path_1 = require(\"../../components/page_path\");\nvar pro_solid_svg_icons_1 = require(\"@fortawesome/pro-solid-svg-icons\");\nvar application_1 = require(\"../../../../api/calls/loan/application\");\nvar react_router_dom_1 = require(\"react-router-dom\");\nvar main_1 = require(\"../../../../reducers/slices/main\");\nvar react_redux_1 = require(\"react-redux\");\nvar get_user_details_1 = require(\"../../../../api/calls/user/get_user_details\");\nvar react_signature_canvas_1 = __importDefault(require(\"react-signature-canvas\"));\nvar firebase_file_upload_1 = require(\"../../../../api/calls/docs/firebase_file_upload\");\nvar steps_1 = require(\"./constants/steps\");\nvar route_names_1 = require(\"../../../../constants/route_names\");\nvar AuthorizationElectronicPayments = function () {\n var _a, _b, _c, _d, _e;\n var dispatch = (0, react_redux_1.useDispatch)();\n var navigate = (0, react_router_dom_1.useNavigate)();\n var params = (0, react_router_dom_1.useParams)();\n var loan_id = params.loan_id;\n var user = (0, react_redux_1.useSelector)(function (state) { return state.userState; }).user;\n var signatureRef = (0, react_1.useRef)(null);\n var _f = (0, react_1.useState)(\"\"), signature = _f[0], setSignature = _f[1];\n var _g = (0, react_1.useState)(\"\"), signatureURL = _g[0], setSignatureURL = _g[1];\n var _h = (0, react_1.useState)(false), isSaving = _h[0], setIsSaving = _h[1];\n var _j = (0, react_1.useState)(\"\"), signatureError = _j[0], setSignatureError = _j[1];\n var _k = (0, react_1.useState)({}), activeUser = _k[0], setActiveUser = _k[1];\n (0, react_1.useEffect)(function () {\n if (user.uid) {\n (0, get_user_details_1.get_user_details)().then(function (response) {\n if (response.success) {\n setActiveUser(response.content);\n }\n else {\n dispatch((0, main_1.setMessageModal)({ title: \"Something went wrong!\", messages: [response.message] }));\n }\n });\n }\n }, [user]);\n (0, react_1.useEffect)(function () {\n if (signatureURL) {\n saveLoanDetails();\n }\n }, [signatureURL]);\n var saveLoanDetails = function () { return __awaiter(void 0, void 0, void 0, function () {\n var newSigURL, base64String, base64Content, byteCharacters, byteNumbers, i, byteArray, filename, file;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!validateDetails()) return [3 /*break*/, 3];\n setIsSaving(true);\n newSigURL = \"\";\n base64String = signatureURL;\n base64Content = base64String.split(\",\")[1];\n byteCharacters = atob(base64Content);\n byteNumbers = new Array(byteCharacters.length);\n for (i = 0; i < byteCharacters.length; i++) {\n byteNumbers[i] = byteCharacters.charCodeAt(i);\n }\n byteArray = new Uint8Array(byteNumbers);\n filename = \"signature_\".concat(Math.random().toString(36).substring(2, 10).toUpperCase(), \".png\");\n file = new File([byteArray], filename, { type: \"image/png\" });\n return [4 /*yield*/, (0, firebase_file_upload_1.uploadFileToFirebase)(file)];\n case 1:\n newSigURL = _a.sent();\n return [4 /*yield*/, (0, application_1.update_loan_application)({\n uid: loan_id,\n authoriseBank_complete: true,\n bank_debit_signature: {\n date: new Date(),\n signature: newSigURL,\n },\n }).then(function (response) {\n if (response.success) {\n setIsSaving(false);\n window.scrollTo({\n top: 0,\n behavior: \"smooth\",\n });\n navigate(\"\".concat(route_names_1.ROUTE_LOAN_APPLICATION, \"/\").concat(steps_1.APP_STEP_COMPLETE, \"/\").concat(loan_id));\n //navigate next\n }\n else {\n dispatch((0, main_1.setMessageModal)({ title: \"Something went wrong!\", messages: [response.message] }));\n }\n })];\n case 2:\n _a.sent();\n _a.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n }); };\n var previousStep = function () {\n window.scrollTo({\n top: 0,\n behavior: \"smooth\",\n });\n navigate(\"\".concat(route_names_1.ROUTE_LOAN_APPLICATION, \"/\").concat(steps_1.APP_STEP_AUTHORIZATION_SALARY_DEDUCTION, \"/\").concat(loan_id));\n };\n var validateDetails = function () {\n var messageCount = 0;\n if (!signatureURL) {\n messageCount++;\n setSignatureError(\"No signature found.\");\n }\n return messageCount ? false : true;\n };\n return (react_1.default.createElement(\"div\", { className: \"flex flex-col gap-8\" },\n react_1.default.createElement(doshx_controls_web_1.ScreenContainerControl, { className: \"flex flex-col gap-8\" },\n react_1.default.createElement(page_path_1.PagePath, { path: [\n {\n page: \"/\",\n title: \"Home\",\n },\n {\n page: \"/loans\",\n title: \"Loan Application\",\n },\n {\n page: \"\",\n title: \"Authorization for Electronic Payments\",\n active: true,\n },\n ] }),\n react_1.default.createElement(\"div\", { className: \"flex flex-col gap-4\" },\n react_1.default.createElement(\"div\", { className: \"\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"Authorization for Electronic Payments-Generic Merchant\", textColor: \"text-black\", bold: true })),\n react_1.default.createElement(\"div\", { className: \"\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"Account Holder Name\", textColor: \"text-black\", size: \"medium\", bold: true }),\n react_1.default.createElement(doshx_controls_web_1.TextInputControl, { disabled: true, value: activeUser === null || activeUser === void 0 ? void 0 : activeUser.name, size: \"small\", errorText: \"\", borderColor: \"border-gray\" })),\n react_1.default.createElement(\"div\", { className: \"\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"Account Holder Surname\", textColor: \"text-black\", bold: true }),\n react_1.default.createElement(doshx_controls_web_1.TextInputControl, { disabled: true, value: activeUser === null || activeUser === void 0 ? void 0 : activeUser.surname, size: \"small\", errorText: \"\", borderColor: \"border-gray\" })),\n react_1.default.createElement(\"div\", { className: \"\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"Account Holder Phone Number\", textColor: \"text-black\", size: \"medium\", bold: true }),\n react_1.default.createElement(doshx_controls_web_1.TextInputControl, { disabled: true, value: \"(\".concat((_a = activeUser === null || activeUser === void 0 ? void 0 : activeUser.cell_number) === null || _a === void 0 ? void 0 : _a.country_code, \") \").concat((_b = activeUser === null || activeUser === void 0 ? void 0 : activeUser.cell_number) === null || _b === void 0 ? void 0 : _b.phone_number, \" \"), size: \"small\", errorText: \"\", borderColor: \"border-gray\" })),\n react_1.default.createElement(\"div\", { className: \"\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"Account Holder Email\", textColor: \"text-black\", size: \"medium\", bold: true }),\n react_1.default.createElement(doshx_controls_web_1.TextInputControl, { disabled: true, value: activeUser === null || activeUser === void 0 ? void 0 : activeUser.email, size: \"small\", errorText: \"\", borderColor: \"border-gray\" })),\n react_1.default.createElement(\"div\", { className: \"\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"Bank Name\", textColor: \"text-black\", bold: true }),\n react_1.default.createElement(doshx_controls_web_1.TextInputControl, { disabled: true, value: (_c = activeUser === null || activeUser === void 0 ? void 0 : activeUser.salary_bank) === null || _c === void 0 ? void 0 : _c.bank, size: \"small\", errorText: \"\", borderColor: \"border-gray\" })),\n react_1.default.createElement(\"div\", { className: \"\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"Account Type\", textColor: \"text-black\", bold: true }),\n react_1.default.createElement(doshx_controls_web_1.TextInputControl, { disabled: true, value: (_d = activeUser === null || activeUser === void 0 ? void 0 : activeUser.salary_bank) === null || _d === void 0 ? void 0 : _d.account_type, size: \"small\", errorText: \"\", borderColor: \"border-gray\" })),\n react_1.default.createElement(\"div\", { className: \"\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"Account Number\", textColor: \"text-black\", bold: true }),\n react_1.default.createElement(doshx_controls_web_1.TextInputControl, { disabled: true, value: (_e = activeUser === null || activeUser === void 0 ? void 0 : activeUser.salary_bank) === null || _e === void 0 ? void 0 : _e.account_number, size: \"small\", errorText: \"\", borderColor: \"border-gray\" })),\n react_1.default.createElement(\"div\", { className: \"flex flex-col gap-2\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"1. Hereby admit, confirm and declare that:\", textColor: \"text-black\", bold: true }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"1.1. I am of the intent to apply for and obtain credit or services from one or more of the Credit Providers supporting Sky LifeStyle App with credit provision to their customers, as listed on the App, and this will serve as mandate and authorization to debit for any and all such Credit or Service Providers(hereinafter referred to as THE MERCHANT), and that this authorization will be instrumental in the management of payments of such credit or services, and all associated fees on such credit or services, by THE MERCHANT;\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"1.2. This authorization is instrumental in obtaining such credit or services;\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"1.3. I therefore must enable THE MERCHANT with the ability to manage such payments to the best of his ability, to ensure the best chance of success on such payments, by having:\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"1.3.1. Full and continuous access to my bank accounts through so-called bank aggregation services where available, to establish the timing, frequency and amounts of Recurring Expenses and Income Payments;\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"1.3.2. The right to adjust the timing of such payments to synchronize the submissions with the expected receipt dates and times of my Income Payments;\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"1.3.3. The right to make use of any payment method, or combination of payment methods available, with the best chance of success;\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"1.4. I wish to make the payments towards above-mentioned credit or services by way of electronic deductions or payment transactions against my bank accounts;\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"1.5. Each of these scheduled payments in respect of the credit and services mentioned above, must be regarded as herewith individually and separately mandated for purposes of application of any rules in terms of re-submission of such payments;\", textColor: \"text-black\", size: \"small\" })),\n react_1.default.createElement(doshx_controls_web_1.DividerControl, { orientation: \"horizontal\" }),\n react_1.default.createElement(\"div\", { className: \"flex flex-col gap-2\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"2. Therefore, I hereby request, instruct, authorize and mandate:\", textColor: \"text-black\", bold: true }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"2.1. THE MERCHANT to act with full power of attorney on my behalf in terms of all actions needed to affect such electronic payments by utilizing, but not limited to, the following services:\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"2.1.1. Electronic Balance Enquiries through EFT, ACH, e-Money or Card transactions;\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"2.1.2. 3rd party Bank Account Aggregation Services;\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"2.1.3. Debit Pull or Credit Push transactions, utilizing any one or a combination of:\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"2.1.3.1. Normal Debit Orders (D/O);\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"2.1.3.2. Realtime Debit Orders (RTDO);\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"2.1.3.3. Enhanced Debit Orders (EnDO);\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"2.1.3.4. Card-not-Present Transactions;\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"2.1.3.5. E-Money Transactions;\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"2.1.3.6. Any other electronic transaction type regionally available wherever my account is held; \", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"2.2 That all such withdrawals from and transactions against my bank accounts initiated by THE MERCHANT shall be treated by all parties concerned, including my bank, as if they were initiated, authorized and signed by me personally.\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"2.3 The above power of attorney to be used in order to effect payment from my bank accounts (bank accounts as stipulated above, or any other bank account which I may utilize in future) of the amounts necessary for the regular payments due in respect of the credit or services, and fees mentioned in clause 1 above, on the days coinciding with my salary or any other regular income payment dates, until all monies due are paid in full;\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"2.4. This Mandate, Power Of Attorney And Instruction to be valid within the following limits:\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"2.4.1. AMOUNT: Variable, up to the amount outstanding in terms of any agreement between myself and THE MERCHANT\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"2.4.2. NATURE OF THE PAYMENTS: Recurring\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"2.4.3. FREQUENCY: To be determined and changed by The MERCHANT, to best synchronize with my Income Receipt days, but at least once per income payment cycle\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"2.4.4. SUBMISSION DATE & TIME: To be determined and changed backward and forward by The MERCHANT, to best synchronize with my Income Receipt days, in order to ensure the best chance of success\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"2.4.5. TRACKING DAYS; Up to the maximum allowed by the utilized Payment Method, which may be up to 14 days with EnDO\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"2.4.6. DURATION: This Mandate, Power Of Attorney And Instruction will stay valid for as long as any amounts forthcoming from any Loan Agreements in terms of the relationship between myself and THE MERCHANT stays outstanding, or up to date of cancellation of the mandate by me, whichever may be the latest.\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"2.5. THE MERCHANT to make use of third parties as my agents to process my payments, with all rights held by the merchant also applicable to such 3rd Parties\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"2.6. THE MERCHANT to collect from my account at such dates and times as THE MERCHANT may deem fit, as the dates and times THE MERCHANT may regard as the practical submission and repayment dates with the best chance of success.\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"2.7. That any bank and payment system charges and penalty charges arising from the successful or unsuccessful repayment of an installment shall be for my cost, and that THE MERCHANT or any 3rd Party as referred to in 2.5 above will have the right to add the cost of the deduction transaction to the installment amount to be deducted.\", textColor: \"text-black\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"2.8. THE MERCHANT to cede all the rights contained herein to any party of THE MERCHANT's choice.\", textColor: \"text-black\", size: \"small\" })),\n react_1.default.createElement(doshx_controls_web_1.DividerControl, { orientation: \"horizontal\" }),\n react_1.default.createElement(\"div\", { className: \"flex flex-col items-center gap-2\" },\n react_1.default.createElement(\"div\", { className: \"flex flex-col border gap-2 border-gray-400 rounded-md \", style: { width: 300 } },\n react_1.default.createElement(react_signature_canvas_1.default, { ref: function (data) {\n setSignature(data);\n }, canvasProps: { height: 150, width: 300, className: \"sigCanvas\" } })),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: signatureError, textColor: \"text-red-500\" }),\n react_1.default.createElement(\"div\", { className: \"flex justify-center gap-2\" },\n react_1.default.createElement(doshx_controls_web_1.ButtonControl, { label: \"Clear\", backgroundColor: \"bg-primary\", size: \"xsmall\", loading: isSaving, onClick: function () {\n signature.clear();\n setSignatureURL(\"\");\n } })),\n react_1.default.createElement(\"div\", null,\n react_1.default.createElement(\"img\", { width: 100, src: signatureURL }))),\n react_1.default.createElement(\"div\", { className: \"flex justify-center gap-4 \" },\n react_1.default.createElement(doshx_controls_web_1.ButtonControl, { label: \"Back\", loading: isSaving, backgroundColor: \"bg-primary\", size: \"small\", startIcon: pro_solid_svg_icons_1.faArrowLeft, onClick: function () {\n previousStep();\n } }),\n react_1.default.createElement(doshx_controls_web_1.ButtonControl, { label: \"Save & Proceed\", backgroundColor: \"bg-secondary\", size: \"small\", loading: isSaving, endIcon: pro_solid_svg_icons_1.faArrowRight, onClick: function () {\n setSignatureURL(signature.getTrimmedCanvas().toDataURL(\"image/png\"));\n } }))))));\n};\nexports.AuthorizationElectronicPayments = AuthorizationElectronicPayments;\n","export default \"data:audio/mpeg;base64,SUQzAwAAAAAQHVRDT04AAAALAAAB//4oADEAMgApAFRZRVIAAAALAAAB//4yADAAMgAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+rNADgimgA/8AEuAAAAITYAJcAAAAQAAAS4AAAAgAAAlwAAABP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+rNADgimgA/8AEuAAAAITYAJcAAAAQAAAS4AAAAgAAAlwAAABP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+rNADgimgA/8AEuAAAAITYAJcAAAAQAAAS4AAAAgAAAlwAAABP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+rNADgimgA/8AEuAAAAITYAJcAAAAQAAAS4AAAAgAAAlwAAABP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+rNADgimgA/8AEuAAAAITYAJcAAAAQAAAS4AAAAgAAAlwAAABP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+rFAMH+mgA/8AEuAAAAIS4AJcAAAAQAAAS4AAAAgAAAlwAAABP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6s0AmMqcAD/wAS4AAAAhOgAlwAAABAAABLgAAACAAACXAAAAE///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6s0AOCKaAD/wAS4AAAAhNgAlwAAABAAABLgAAACAAACXAAAAE///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6s0AOCKaAD/wAS4AAAAhNgAlwAAABAAABLgAAACAAACXAAAAE/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////w5GSi1LKAGUocOAkEidLQmxorid/109Q4/zggQgeTdNzwsDhYhkM4sLFAQD4eFwcGvW61134Ybp60f/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+HIyUWpZQAylDhwEgkTpaE2NFcTv+unqHH+cECEDybpueFgcLEMhnFhYoP/6s0BNi6aACRUQRuMLMbA5ogjcYWY2DwytKexhi2nhlaU9jDFtIB8PC4ODXrda678MN09aBd3d3d4jW2QgAHKeahLruwyh1IYa++rvvo5Egdtv3/T7YOwJ3KdDsEQh1DFS9XJeMBHEBFeqrBCJbEofV8vWmFeYXOksf2uWoSszuvKhYijRSUjEvAcCQWH7jqe7SzHNyXKvORHiERQQExH4215upEqv8/D+3+r/2Lu7u7vEa2yEAA5TzUJdd2GUOpDDX31d99HIkDtt+/6fbB2BO5TodgiEOoYqXq5LxgI4gIr1VYIRLYlD6vl60wrzC50lj+1y1CVmd15ULEUaKSkYl4DgSCw/cdT3aWY5uS5V5yI8QiKCAmI/G2vN1IlV/n4f2/1f+w5HG5I3G0AAX+QrEkprJiJVwUpS79hEpYCD3lc+Wt/x/ViKdwI0ct+6zqKHQJDxdgTmviNNh5F49Wm6kUtULs232a9AlyVTolwHGdlzY7QQXuZhMZmIMjVd/Xrf1/qshfSKw1TvzMXYcr5TlvV7L+3u63j+9Xwyazynt77ckhDTQn////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8ORxuSNxtAAF/kKxJKayYiVcFKUu/YRKWAg95XPlrf8f1YincCNHLfus6ih0CQ8XYE5r4jTYeRePVpupFLVC7Nt9mvQJclU6JcBxnZc2O0EF7mYTGZiP/6s0D9LqaAB7gxRusYwtCBhijdYxhaDUi9HYe9i0GpF6Ow97FoMjVd/Xrf1/qshfSKw1TvzMXYcr5TlvV7L+3u63j+9Xwyazynt77ckhDTQnMkckkn/6ABUCrJIIwTJRCzWTMZCVUW5lodp0mg/UyEqo0mUsYxTpjhaibk/Kzxo0OrKzI2evaaKIEp4HRsIze9GyzGk9bWD7Hrr1lrVmGcbWw3Yu1EncRZjzFChMk08o4NKDVlBbq0NgWgyRySSf/oAFQKskgjBMlELNZMxkJVRbmWh2nSaD9TISqjSZSxjFOmOFqJuT8rPGjQ6srMjZ69poogSngdGwjN70bLMaT1tYPseuvWWtWYZxtbDdi7USdxFmPMUKEyTTyjg0oNWUFurQ2BaBLJJJJJG2iAUwhyPQho0ZzwtVSwNAekDFiTTFnmQJKJ6FQFVOVHJZ5Z4s85YGMJHJHDB4SXuFQiyUb0pFaLOMJdQh6v6bbUhNgV3G/vF3/t3/r////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6s0AK5KaAC0AbyGsGQkJS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SltSfcsiKu0CtNxihaqo70S8RfigTXnQFIUmZ4YiQAAFqiudLgW41NL6VTzP217XBhimN3TmMYxjU9Rgspehjh0YDGGg1D00mtXBqDUcHQAwfCw8oWObUVQOkOkczrDQzTDSaww74a2hVpRVcoWrKFr2lRYOg+ta4ZVqGGivLM3cNYrdT/NfwUdarFbFJTUKs3QV73Qv4FfwmZ4YiQAAFqiudLgW41NL6VTzP217XBhimN3TmMYxjU9Rgspehjh0YDGG//qzQFT+VIAD9lfT8eVDYn7K+n48qGxQ6TU5p6Utoh0mpzT0pbSDUPTSa1cGoNRwdADB8LDyhY5tRVA6Q6RzOsNDNMNJrDDvhraFWlFVyhasoWvaVFg6D61rhlWoYaK8szdw1it1P81/BR1qsVsUlNQqzdBXvdC/gV/AlP5JLJJIkAvjNJMb5i+tFc2sM2oL1lJEkTbFY6SyGwSDS4VPImryMUJKhOBoqxFCKYNAKJVg+CQmaQopwIhUKQ8a8bLIwROmBNHJLLkpECSxMiRLwVaioKp4VJULUfsYbFaG5KUrpFm5UkS2kLUYx9x/lK41Lal6lsY+loucFaVQ6vlkt/BoJT+SSySSJAL4zSTG+YvrRXNrDNqC9ZSRJE2xWOkshsEg0uFTyJq8jFCSoTgaKsRQimDQCiVYPgkJmkKKcCIVCkPGvGyyMETpgTRySy5KRAksTIkS8FWoqCqeFSVC1H7GGxWhuSlK6RZuVJEtpC1GMfcf5SuNS2pepbGPpaLnBWlUOr5ZLfwaClkkkn/QAckvIk1AItWepHbw5NWxCsLhoKBGbzps2bnsPDdjkPWquZq7fJD0ngqj5LmAsXRw2aubhpFc24mGOWCBtSUgFftS99coyGZkfCnF9Uu92v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////qzQJbsdQAH4DBM4wNC3lUGCZxgaFvJjJEz7CRpaTGSJn2EjS3///////////////////////8KWSSSf9AByS8iTUAi1Z6kdvDk1bEKwuGgoEZvOmzZuew8N2OQ9aq5mrt8kPSeCqPkuYCxdHDZq5uGkVzbiYY5YIG1JSAV+1L31yjIZmR8KcX1S73aB6upiZiP99mgC1+x4TLysDKwYoGhQENwAOUtXsIzRMSvQTlBfZxjZP8wimiqNl/e0syPtdFbQeuINIlgiYTy4pfZeKT/YN/c/83v+wD1dTEzEf77NAFr9jwmXlYGVgxQNCgIbgAcpavYRmiYlegnKC+zjGyf5hFNFUbL+9pZkfa6K2g9cQaRLBEwnlxS+y8Un+wb+5/5vf9jF3hnZ2ZrbJCABJdCi0jq9FCx9yN5AgHyZZqYLppFgKV57crrFAWVUc629Wa6Gyxfv71MjBgoAQnWBTpcUFFlx4V6WDVavU+x2r////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////qzQBJSpoALkiNK+wYaWElEaV9gw0sJFMMjp6xrQSKYZHT1jWj/////////////////////////////////////////////////xd4Z2dma2yQgASXQotI6vRQsfcjeQIB8mWamC6aRYClee3K6xQFlVHOtvVmuhssX7+9TIwYKAEJ1gU6XFBRZceFelg1Wr1PsdqFu1skkkkiAAEirzQOehvl+HKY442RjYLzYs1lj8n3U9ybP3Qm5i00CrqWULdlF5dWhqbFmDZalR63RcX0wqJIxBMQ6qBeZ1tSLdrZJJJJEAAJFXmgc9DfL8OUxxxsjGwXmxZrLH5Pup7k2fuhNzFpoFXUsoW7KLy6tDU2LMGy1Kj1ui4vphUSRiCYh1UC8zranLrskjf//oZCMoVmJjKFZqdKc6apAjxObZIHHoJmqeEOYWXPdkv4ZaopAGSgbBPsymAhRHhjkBM0YfLXAZ+1NrmOdPTv5eqWY3TxuOSAMAuPBgbH4L7026zUB0+bIC7SZ8UMymUJF9XNoExJcmE3wuaCJG+wufAIJAoebUYTbsLiSc5wvZ7TE1IKEi7a8kCbfnVxRo0c5qEjAnWfrPhEPicTn9f7y8uf0F12SRv//0MhGUKzExlCs1OlOdNUgR4nNskDj0EzVPCHMLLnuyX8MtUUgDJQNgn2ZTAQojwxyAmaMPlrgM/am1zHOnp38vVLMbp43HJAGAXHgwNj8F96bdZqA6fNkBdpM+KGZTKEi+rm0CYkuTCb4XNBEjfYXPgEEgUPNqMJt2FxJOc4Xs9piakFCRdteSBNvzq4o0aOc1CRgTrP1nwiHxOJz+v95//qzQLI4poAFQUhM43lK4KgpCZxvKVwViVNHrGGNorEqaPWMMbR5c/oCLKact21tjQKQygmGoYx97hnRcpl8ighsM22RrUuRvhafaRjohh1QLBzkEqna/ZllI2q64EZBeWOvRYkLoZlekPQLFIOcaUy61KIDkcYLNkiZgoHjZIMSSd4XE7+rKLfejvSiam4v1v6ITv0VF6BeZhMB5chHJiXUrBmy5Qd16ptz7q9o7eCzxlZ99T+LHevjVU277VE7n2q/E113ItpeuZanwAu9caOdemf+kIsppy3bW2NApDKCYahjH3uGdFymXyKCGwzbZGtS5G+Fp9pGOiGHVAsHOQSqdr9mWUjarrgRkF5Y69FiQuhmV6Q9AsUg5xpTLrUogORxgs2SJmCgeNkgxJJ3hcTv6sot96O9KJqbi/W/ohO/RUXoF5mEwHlyEcmJdSsGbLlB3Xqm3Pur2jt4LPGVn31P4sd6+NVTbvtUTufar8TXXci2l65lqfAC71xo516Z/6cJyNyS3bbWyDXVJpCOH0uRdRPkkuU3IeR5LSmLaUpzlYbxbx0oadMVfYUS3HVCR70yWBwblvM3bbIcnVl5G1PEjYbpMphVUtTlDaB1VlLxfJjr7HWhyFUdG5sNZKxY8Vyhsm023MMT3Rw2ZJFGZVkkwoQzyxhUoQsEDDDBiDmQaUWD7BK071739QYe2gJyNyS3bbWyDXVJpCOH0uRdRPkkuU3IeR5LSmLaUpzlYbxbx0oadMVfYUS3HVCR70yWBwblvM3bbIcnVl5G1PEjYbpMphVUtTlDaB1VlLxfJjr7HWhyFUdG5sNZKxY8Vyhsm023//qzQKtxeIAEYk1Tae9DaIxJqm096G0UbU1FTWHtoo2pqKmsPbQwxPdHDZkkUZlWSTChDPLGFShCwQMMMGIOZBpRYPsErTvXvf1Bh7aAHRibcYSRXu6IEUGpbrGKgFBMEBAsWOG3RaQRqDNMsqwLULvmYxwcFwppNWrULjxpU8ju4xWXWI5UpLFTG3fywwp9179TCpE4bchNYZF9zgqovhxlGDnJWhajru3z/umIeP//////////n3xS18a9NYzDzEiXeSz2/+r7onJmPC8+eIZZqTkN1OrJJDxU86dYKe+bx6ZreaGKn21qSTEb+RUHlAOjE24wkivd0QIoNS3WMVAKCYICBYscNui0gjUGaZZVgWoXfMxjg4LhTSatWoXHjSp5HdxisusRypSWKmNu/lhhT7r36mFSJw25CawyL7nBVRfDjKMHOStC1HXdvn/dMQ8f//////////Pvilr416axmHmJEu8lnt/9X3ROTMeF588QyzUnIbqdWSSHip506wU983j0zW80MVPtrUkmI38ioPKqpBLJSktsEkC4YiOgEd0uYAPktJfYvZDdlImcuJha9H5vW7Ah0vh9ZcechgaoqF+34t5z+GNvDDC3nnOW85ZSUkbp43QQiC53s9gPWc9jgH2hyyz6zrXzv3pv/////////5/xW7yvk1mWf4m8h0P251GtjWNzV1GdsKsTLKzLyAXmBtwyIlPaLmin7FJEtq148TiK5dIJZKUltgkgXDER0AjulzAB8lpL7F7IbspEzlxMLXo/N63YEOl8PrLjzkMDVFQv2/FvOfwxt4YYW885y3nLKSkjdPG6CEQXO9ns//qzQBXlbwAEoVDVazh7aJQqGq1nD20SBUNZrL1tqkCoazWXrbUHrOexwD7Q5ZZ9Z1r53703/////////8/4rd5XyazLP8TeQ6H7c6jWxrG5q6jO2FWJllZl5ALzA24ZESntFzRT9ikiW1a8eJxFcvEBUopy20S0OyvIvoJPUK/n9WAObRJEzeztWb5kDWTVUpKlg6RNjjDrOAMMtwg8MmwOMMNhFLUy4RkLbhDiuWWeJDVc14jEThjeDOWHgaZeQxBgfIcdkgnSS2xU7UmTX//////5/ZTommXW7i4cavUc6ahWqc/JMnEZkpJrEDag+CCFyw7iMXnEZqafCNMqW7iAqUU5baJaHZXkX0EnqFfz+rAHNokiZvZ2rN8yBrJqqUlSwdImxxh1nAGGW4QeGTYHGGGwilqZcIyFtwhxXLLPEhqua8RiJwxvBnLDwNMvIYgwPkOOyQTpJbYqdqTJr//////8/sp0TTLrdxcONXqOdNQrVOfkmTiMyUk1iBtQfBBC5YdxGLziM1NPhGmVLdHEEklJu20W0SVZAqY72KQFCOIAsGBhAannUWny41LrRLkyMod5ebdulgbtS4HAXVLAcSdcJ8tLn+q2e1AeeLufJHNsrIpJWWAVyQO9GhBGwIJqIYBxKJYbHp5OtQO1H1/////5WPsOhyHaFNuJuXqRBxqlRD+/dM1MW0moUcJAfiknjtWPrqIL29bblwviCSSk3baLaJKsgVMd7FIChHEAWDAwgNTzqLT5cal1olyZGUO8vNu3SwN2pcDgLqlgOJOuE+Wlz/VbPagPPF3Pkjm2VkUkrLAK5IHejQgjYEE1EMA4//qzQM7+cQAEaU1WazhbaI0pqs1nC20RTS9ZrL1toiml6zWXrbSUSw2PTydagdqPr/////ysfYdDkO0KbcTcvUiDjVKiH9+6ZqYtpNQo4SA/FJPHasfXUQXt623LhfAAEklJuQSTS5fKadWPLv8gQVa8QIocp611UbwxtofVSC2tAkY6WwcLa1EOjgbAQJ0gPtjMMeUZcrUioo37qmIkp9ykgFhZgwJSZUbNEEbAXHaVD5RPX5dJ62V//////51V3NtiWy6GOntUgUk6vu+fr2VPuqPccYkpLjBAGyY8zOmRANc3//ihEI4AAkkpNyCSaXL5TTqx5d/kCCrXiBFDlPWuqjeGNtD6qQW1oEjHS2DhbWoh0cDYCBOkB9sZhjyjLlakVFG/dUxElPuUkAsLMGBKTKjZogjYC47SofKJ6/LpPWyv//////Oqu5tsS2XQx09qkCknV93z9eyp91R7jjElJcYIA2THmZ0yIBrm//8UIhGAAAEBERKcgktijQmKSehT6yIZERJQeWsVm16XjOQeFBlJC/jhLYMAQ5ayeW1cPBrG0gz3C8TR6O6Kd+3oXHTMzeWxYHcnaB6BMTH16gbnjQnuIEd5qebFPQhhMY2//////pprTTvFzHy34JR8dxm1FzI5/uZ+99aT1ESx+wts2Jxshym5+xBwPQ2c/30r6rRBAAACAiIlOQSWxRoTFJPQp9ZEMiIkoPLWKza9LxnIPCgykhfxwlsGAIctZPLauHg1jaQZ7heJo9HdFO/b0LjpmZvLYsDuTtA9AmJj69QNzxoT3ECO81PNinoQwmMbf/////001pp3i5j5b8Eo+O4z//qzQGSmgAAEh1HWew9baJDqOs9h620SvVNZrL0NoleqazWXobRqLmRz/cz9760nqIlj9hbZsTjZDlNz9iDgehs5/vpX1WiCgAEEkgpyNyyljBCE8l1EiqVSh4GHwJKJB1mF224p50Vq47GA7QlDQQEk785UPjnbOYRD1gzQWiGHErHrU8hKNjUL9XJlnGEpABAAIoDgRGCYo8IhcXEYlacVRDhwOCCiGJv08ael9fH1cdtX/uL0gKCyxQX0tf+35/0MQY562Jxqh0NCglD9sbUOXkkLmQp6e793WBiFAAIJJBTkbllLGCEJ5LqJFUqlDwMPgSUSDrMLttxTzorVx2MB2hKGggJJ35yofHO2cwiHrBmgtEMOJWPWp5CUbGoX6uTLOMJSACAARQHAiMExR4RC4uIxK04qiHDgcEFEMTfp409L6+Pq47av/cXpAUFligvpa/9vz/oYgxz1sTjVDoaFBKH7Y2ocvJIXMhT0937usDEPgQEhIzIm5JHJXvYIsOohk0KDmZHyOyxu6C0memXaVp5wlE4HsdejeKMubEeVYiPV6wda+hbK+KshZ6tGOh7O1Jd+2N7WYC+2OpncsclLC86O7BMTFxbOJWWXuXO8GxPYWTSkzMzOfOZ3TMxb2TM5M9RKwtaNEg4n8da9aeu/0EPV+B27faw1G8++qXMQxp1cuTRy3u3yKUeNd/tKOWCECAkJGZE3JI5K97BFh1EMmhQczI+R2WN3QWkz0y7StPOEonA9jr0bxRlzYjyrER6vWDrX0LZXxVkLPVox0PZ2pLv2xvazAX2x1M7ljkpYXnR3YJiYuLZxKyy9y53g2J7C//qxQPjnf4AE9VTXey9jaJ6qmu9l7G0S8UNbrL2Nol4oa3WXsbTJpSZmZnPnM7pmYt7JmcmeolYWtGiQcT+OtetPXf6CHq/A7dvtYajeffVLmIY06uXJo5b3b5FKPGu/2lHLBCkEhJJOSNtuPgwsRwsl9LWDpWZATNbCPrywDCN3VWpTxsvuD49h1QZYUKBiFAVeR6ViCWEj8i3LDesOUFXNyuW4LasJRaN3y9RyrVkJcmQTla9fZpkaWV11S87p3TSb/MzM2+bW/umZmc9ozU2NuaFvuq+7Ocvvu2pm/OXlqddZMWjotNddkueurADAZCzA800/Z+7EQTamkEhJJOSNtuPgwsRwsl9LWDpWZATNbCPrywDCN3VWpTxsvuD49h1QZYUKBiFAVeR6ViCWEj8i3LDesOUFXNyuW4LasJRaN3y9RyrVkJcmQTla9fZpkaWV11S87p3TSb/MzM2+bW/umZmc9ozU2NuaFvuq+7Ocvvu2pm/OXlqddZMWjotNddkueurADAZCzA800/Z+7EQTanvRG/23G3GlyQAaE6NddiVJBkHZN2e+YcmK09e4xolZpFy3C5HkxW7GxN9G+0JtiQaV22nyu3BhncNyT6mq4NchRn2qEe7XT/UN1dkjL9rJJlV7e/s8w+fRz1ZfAsh63mPTVKXxTGa19N3liSM3u4QaoZCTzbAQh/GXnT3DKu1lVKGSFfOfLfWvnMTeKxd3xqEzRod31svQfC6W+n6jwNtrDWiN/tuNuNLkgA0J0a67EqSDIOybs98w5MVp69xjRKzSLluFyPJit2Nib6N9oTbEg0rttPlduDDO4bkn1NX/+rNAnLdvAAUJU9TVZeAIoSp6mqy8ARjJmVWY94ADGTMqsx7wAHBrkKM+1Qj3a6f6hurskZftZJMqvb39nmHz6OerL4FkPW8x6apS+KYzWvpu8sSRm93CDVDISebYCEP4y86e4ZV2sqpQyQr5z5b6185ibxWLu+NQmaNDu+tl6D4XS30/UeBttYaCM20/1SUIVlqq6/LgKI0hahjoIR1iJufaHEPFJO4eEcYUI3i/qg1zwRNko+XVE+vOTJEivKRXkktfOunP/E01aQ3NW7rDPCJjNGSLPPFjqJS42pm1GF9gODiuorM4g3waqmMVCEnURcLYk6TEgVotFq6ljQcaiKmlnR0f2iPnysjnIwsSMevXNyY4V96+KX7OrLxnKaK/ipWyjY7P47NSWTXzbDzWd597WzHxC7RfEe/ZIc8/xmOhkRg33KHLHo8gf////MagjNtP9UlCFZaquvy4CiNIWoY6CEdYibn2hxDxSTuHhHGFCN4v6oNc8ETZKPl1RPrzkyRIrykV5JLXzrpz/xNNWkNzVu6wzwiYzRkizzxY6iUuNqZtRhfYDg4rqKzOIN8GqpjFQhJ1EXC2JOkxIFaLRaupY0HGoippZ0dH9oj58rI5yMLEjHr1zcmOFfevil+zqy8Zymiv4qVso2Oz+OzUlk182w81nefe1sx8Qu0XxHv2SHPP8ZjoZEYN9yhyx6PIH////zGoN6RXRiABAVYfVNFiLcZbUvKOLCcqwNwM0iLj4fFxzb/+P7nhY9zf/PxzN/z0w5Z2OUWkhUrkeC1g7R2hoQBcoSzYEcQEj+iXj2QhLi2m8VZ9j0x/Ja5xtuPvLpb/+rNAjRIuAAQXVlf3PWACgurK/uesAFMRhWHGie2KYjCsONE9sdKb1LUOoMNCYwrPW9uxzb3z3z1fGnF8u+41zRRAufgj8T9cjrO/9G9IroxAAgKsPqmixFuMtqXlHFhOVYG4GaRFx8Pi45t//H9zwse5v/n45m/56Ycs7HKLSQqVyPBawdo7Q0IAuUJZsCOICR/RLx7IQlxbTeKs+x6Y/ktc423H3l0tpTepah1BhoTGFZ63t2Obe+e+er404vl33GuaKIFz8EfifrkdZ3/pAB4dlUAZWqwUko+40lZ0lTBTlaBlMZS6OrlzJ7Po7O7acvFfn/23q/xfcKD/Z9HswTOKuwuzQMgRNQztkaKVeIaHngrG0vKuW4E1Z26tEpDfPUMwn1ckXNGqONIx1q2rs/zjVSy4paJDa38CWePeBF3Gc4sPW/WkBrjQIEGWad1bvJPeSHebwM53NnXkxeNa/3D2FJVIzn9QAeHZVAGVqsFJKPuNJWdJUwU5WgZTGUujq5cyez6Ozu2nLxX5/9t6v8X3Cg/2fR7MEzirsLs0DIETUM7ZGilXiGh54KxtLyrluBNWdurRKQ3z1DMJ9XJFzRqjjSMdatq7P841UsuKWiQ2t/Alnj3gRdxnOLD1v1pAa40CBBlmndW7yT3kh3m8DOdzZ15MXjWv9w9hSVSM5/R7DKh3QTqUVh/wDyK79MQ07RzfRouHIGQx00flXatOrzUT3RpmemZmZ7etem/l3Z2a2Oe7I0vTlHuXb01iqfF08XwS0ZpTWzR+qPSM8Iw5QkwjPxx7xiCqSqGWL1NFSQ7PlsSqkB4i3Ou31lqZblVMEev/+rNAQgU5AAR9X9fx4mNgj6v6/jxMbBFpe1XHiQ2CLS9quPEhsAuq5C97NtteKdp+uWyYUJ1c1guPDSQuKkiKkbfvW9hlQ7oJ1KKw/4B5Fd+mIado5vo0XDkDIY6aPyrtWnV5qJ7o0zPTMzM9vWvTfy7s7NbHPdkaXpyj3Lt6axVPi6eL4JaM0prZo/VHpGeEYcoSYRn4494xBVJVDLF6mipIdny2JVSA8RbnXb6y1MtyqmCPWF1XIXvZttrxTtP1y2TChOrmsFx4aSFxUkRUjb960C4iFMREbQBIq/5iIYoTzU08Fkh1gHiGldjUWvfT05jbO3fml7nmp+P2b4ueFolVJWoXOWvhphVVYFham4JNhxUsdTCcGpodHZTg1D0YAsfBQsUdDWIRwciKQH0Ys4ymFmEEwk1g5FRNLOAFQ4AxpJVquK456u2sVEgEUEwfWZZEaTLULbXp/1Wf/qQLiIUxERtAEir/mIhihPNTTwWSHWAeIaV2NRa99PTmNs7d+aXuean4/Zvi54WiVUlahc5a+GmFVVgWFqbgk2HFSx1MJwamh0dlODUPRgCx8FCxR0NYhHByIpAfRizjKYWYQTCTWDkVE0s4AVDgDGklWq4rjnq7axUSARQTB9ZlkRpMtQtten/VZ/+qQKd3hDI6uQAfhS/mPEOZpVt3sV9PIoCSYyl5v5UbzPYrdMv/tvef//63///92xtlkvlNs5s/y8/tv71/22ZRNUSWCquYySOf05HWrslyRI1RJ83nEseeaEtsuRUkWiKDhIKgk/r+mrWqt/8/1RJINjQVOxEvU9Z1dkSoFO7whkdXIAPwpfzHiHP/+rNAsDVEgAPTYtHx4jNoemxaPjxGbQoU7zWHjKt5Qp3msPGVbzSrbvYr6eRQEkxlLzfyo3mexW6Zf/be8///1v///7tjbLJfKbZzZ/l5/bf3r/tsyiaoksFVcxkkc/pyOtXZLkiRqiT5vOJY880JbZcipItEUHCQVBJ/X9NWtVb/5/qiSQbGgqdiJep6zq7IlEtlkkn/SAA+VkmBcgaygeLq9j4W7sHLKtVaTxYxx1FBlKzsRVlWrvWjns5TNa4k6Ud52HmMwoLXM7oS46ZWdZmApX9xIrSsQUODeCydYw17Ilsskk/6QAHyskwLkDWUDxdXsfC3dg5ZVqrSeLGOOooMpWdiKsq1d60c9nKZrXEnSjvOw8xmFBa5ndCXHTKzrMwFK/uJFaViChwbwWTrGGvZG1tssn/QAPLpi4gjA2sjvYVqpZN+DZHMw9Po4z/CMnxy1fPyIynXzlE0NE5Zhhani0gEC0ydMLGJUGnblyH/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+rNAbQCgAAsDHUljBhpIPeOpLGDDSQocuy/npGthQ5dl/PSNbP//////////////////////////////////////////42ttlk/6AB5dMXEEYG1kd7CtVLJvwbI5mHp9HGf4Rk+OWr5+RGU6+comhonLMMLU8WkAgWmTphYxKg07cuQCIiIeHd9trUQAsqinMbt+5KQ21wlLY/AQXN5JhB5r5ezS2J1uXw0FsM0ghH3gZ3UOQITZoZABvQxEWSNX3U3JGB4JhiFRMFUGXEH1k0Iu/fQEREQ8O77bWogBZVFOY3b9yUhtrhKWx+AgubyTCDzXy9mlsTrcvhoLYZpBCPvAzuocgQmzQyADehiIskavupuSMDwTDEKiYKoMuIPrJoRd++gSSSSSf8qCP9Qwa847swpg2SYt6XOMwWAwoxwZDqlcYogXxMWLT6Wojwkqa0qxL8Co0sgIRAx/F5sXSoXpTtIexh72v/HJa1uenI3JFjye9Dc9GKGjfyRRihl8omWtxfUQfyrbqWXbfvK5LH3a/foXLkcMUdTGv3DDee88//ef58r0/fzzz7hyvT6pKkohyX29YYYYc7Xp8qSxz68Nu5LKkojFjDDDuFj//ff//wwwwwwlcbl8bjcvt1v0RAXeo4UGDAxE4kkkkk/5UEf6hg15x3ZhTBskxb0ucZgsBhRjgyHVK4xRAviYsWn0tRHhJU1pViX4FRpZAQiBj+LzYulQvSnaQ9jD3tf+OS1rc9ORuSLHk96G56MUNG/kijFDL5RMtbi+og/lW3Usu2/eVyWPu1+/QuXI4Yo6mNfuGG8955/+8/z5Xp+/nnn3Dlf/+rNAG1emgAYjVM/lawAIxGqZ/K1gAR0RmU1Z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RSejEjoB3EAmA2XFNQnJ7xUjbH0ETUKQOrB2W9EnPbVjY0rtNiSExguuu+HKpLpvXLb2qwv/+rNAinGCAATIO1P7GGLcfwdqf2MMW47AyUesZYtx2Bko9Yyxbm9cZZ29dtPf/7PVyZrWuOqo2THrAbdu/+21jQEaGiJKBYccEnnMCeqKDMWbgozRXQQQGSsB3EvkPm2gR3ZbGaWWz81Dzd33fOllEml1IkL6wrHjq4trR/O2x4IVSCXghbVx0PH/sx504aNKxPQWS+80sOdtDjf5kz/z9Z6k0jweUJQuxx4OuVToFQG3bv/ttY0BGhoiSgWHHBJ5zAnqigzFm4KM0V0EEBkrAdxL5D5toEd2Wxmlls/NQ83d93zpZRJpdSJC+sKx46uLa0fztseCFUgl4IW1cdDx/7MedOGjSsT0FkvvNLDnbQ43+ZM/8/WepNI8HlCULsceDrlU6BUAM0Vmh322tbA0XWjA95KqNAaLoh2VhHuQNC4qapfpOwpiQ4AYCFt2jX7s42JVRyShuVe1KCwtANBZWC8K203bJs6SybrZm3xyUZPLEYqnjvGVPj0k1RwjHAtB0E1ZzItseUdXrSxlX///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////4AZorNDvtta2BoutGB7yVUaA0XRDsrCPcgb/+rNACxSmgAmbKlL7GUrcZ2VKX2MpW4skb03sZMkxZI3pvYyZJoXFTVL9J2FMSHADAQtu0a/dnGxKqOSUNyr2pQWFoBoLKwXhW2m7ZNnSWTdbM2+OSjJ5YjFU8d4yp8ekmqOEY4FoOgmrOZFtjyjq9aWMqAURXd4d9trWwKVAskCnMgET2GjLzQpizGwACEGsNigjYDSkvS7UM2onZy5lVdI4Dh3Z701DfL1GzUxmIgcEw4LygSMlVCcoaUGg8XFhsXQ8ww2vY3NPZd8oAoiu7w77bWtgUqBZIFOZAInsNGXmhTFmNgAEINYbFBGwGlJel2oZtROzlzKq6RwHDuz3pqG+XqNmpjMRA4JhwXlAkZKqE5Q0oNB4uLDYuh5hhtexuaey75QBS7/bW2yJAQ2BFq0qFh5XJQoLRIS06hrBDQnC7EiAERaFyhKWLbd8WrNfcjPITEWWEQiI/zcLULiWO4izUwQRCDAuJmLWPPmC4ROPvl6adTz+y1JkD//////////////////////////////////////////////////////////////////////////////////////////////////////////////+Apd/trbZEgIbAi1aVCw8rkoUFokJadQ1ghoThdiRACItC5QlLFtu+LVmvuRnkJiLLCIREf5uFqFxLHcRZqYIIhBgXEzFrHnzBcInH3y9NOp5/ZakyBwA1WJiIf//axBbaVKlaEtbb9rrdiUoJDPJDWMjlQDcLjSGAMhChYMDEUsVsQAP6sOqd14Yd+/KKGH9YclbuSVib/rng9chdQtYXLLTo/v/+rNAtRymgAVHI9DrDxpcVeR6HWHjS5ThPT3tYY2qnCenvawxta+E3F+OmnQpOxLR0u/Rf6yLyopBMXmdqr4yQYRfAYMksQy3jCyxwiJavJ4zBACA6ONr75R/FnX9iKj+ndjBzMpdff6LKnZ/SkzMz0zMzM7/zdt/AAADw/ggANViYiH//2sQW2lSpWhLW2/a63YlKCQzyQ1jI5UA3C40hgDIQoWDAxFLFbEAD+rDqndeGHfvyihh/WHJW7klYm/654PXIXULWFyy06P7r4TcX46adCk7EtHS79F/rIvKikExeZ2qvjJBhF8BgySxDLeMLLHCIlq8njMEAIDo42vvlH8Wdf2IqP6d2MHMyl19/osqdn9KTMzPTMzMzv/N238AAAPD+CMQR0E1Vo9v2tiCwUYoFJcNDDlcEixqU4aUjJ6hQGtsfZM6UTa8vxXpOCSKM5xWJou48gKgZQZhbQfZcjsHQCzQoTdOpzq8B+YQ9jfLillMilflghqFcl5P86EsxsRoKNqZDziqRdHaQwkyUmO+RegItobDGcVSvtiegLcrctH6yrXmbVK5MatYYtoEb0jesFXUeRIENYNJv088ZqQh8rGY0EJMiIoGRwj408fsje/c48fFcbexGhyfRoj++rQoE8a1YfAFOO/n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w3iTWcpjEv4JGHlJBgsEbGGF6zQ49ypHo6oIoNBGuDqi7//K7JVXNW2aJub0+6F7DNT//qUQZABbkskskjzUCeFPCVmrEP8WkdyGFigk5VCiYlzp2qZUklnsU3hMlKClOQhTTCu+km3ChxW5RHcBmAiHxodB8SjO4NTQeBsAkEUoa0XFtK3S2kpAdA6Isouj91tytNX/5Jsqxzg1EUoWjmpk1U6dRxwdD7aZ8smAjwltOlryz//+DQaZABbkskskjzUCeFPCVmrEP8WkdyGFigk5VCiYlzp2qZUklnsU3hMlKClOQhTTCu+km3ChxW5RHcBmAiHxodB8SjO4NTQeBsAkEUoa0XFtK3S2kpAdA6Isouj91tytNX/5Jsqxzg1EUoWjmpk1U//6s0BkmniABBpD1GnvQuiDSHqNPehdEqkRO6xh67pVIid1jD13p1HHB0PtpnyyYCPCW06WvLP//4NBoAJ3W3WyNkgJyK+BLR2I9GOCgU6S2CFitayWRM6FDr8BQgRVCeigytjqm1puSQzX2FMOXqiY66rFYyyqjSbi4matZYLQtELtBR5LxMV0xqlXnSxN7W9SapiKZaYcQmt7K676MnVypEOa2JbmVxuv2Rz7k2rpaQ1hcPm0+NW/zr/5xWL859/m2LfwcX1q0+oWdWzHV03sAJ3W3WyNkgJyK+BLR2I9GOCgU6S2CFitayWRMOFDr8BQgRVCeigytTym1ppSQzX2FMOXqiY66rFYyyqjSbi4matZXTQtELtBR5LxMV0xqlXnSxN7W9SapiKZaYcPmt7K676MnVypEOa2JbmVxuv2Rz7k2rpaQ1hcPm0+NW/zr/5xWL859/neMfwcX1q09YWdWzHV03sApSy2f9ADLzEkxHMNgU9hyb6ahcKWINsdQlUsWpLWECSRkTvPsyouEaTS36bkplNnLC5hjHVrGo0SS9vJpbLQs4AzD+3MuoyK9muVXn+iiSSO1dlA6RPC/T1f/////////////////////////////////////////////////////gFKWWz/oAZeYkmI5hsCnsOTfTULhSxBtjqEqli1Ja5AkcZE70PMOLhGk0V+mxlMps5YXMMY6tY1FiVe3k12WhZwBnH9uZdRkV7N5SXxvRxKp2rc4HSJ4X1p6gE3LddbK2SApiDhcyYsMTQzlQgyAWNIKhGP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7LeyucZ//t/eynorX97nGK5jOLzx4SHoYruYx6R+XmOIcjD0CcQ7hdg0EItuVH5cfj/ax444UmbqzlIBX9KSJEkFUAeBUDpJqMAE6No6EUWRlGMlEJht+otRP0yqYaW0lH0CFCxWdNu896DrsqpM+QuUQ7K4hjL5Q9SgECt37FJLlKMh4eQj0hJWJhiIkcqnX9lvZXOM//2/vZT0Vr+9zjFcxnF548JD0MV3MY9I/LzHEORh6BOIdwuwaCEW3Kj8uPx/tY8ccKTN1Zyk//qzQGgJkQAEh1ZSUfhTbJDqyko/Cm2T6VdHp+Ftsn0q6PT8LbaAHbrJbbIkiWMBoKACeDCASgupy3PSUB1KNOC3F+oBd2PSt4gaB+2mqLGUwkKPNeoYq7zrRWAneuXbNq3Gaa7JqV4lTQqWzUux1SrO4pjpe1rqa2mvh3vqbuGOeSSSdiOZl8X/f9f1Ladtmv/5+Wxc07eO01h9QevY622iampKHcTh3AhAnI08DwCQJw7jZclDuP88dOqBoGgVOg1HB2ggB26yW2yJIljAaCgAngwgEoLqctz0lAdSjTgtxfqAXdj0reIGgftpqixlMJCjzXqGKu860VgJ3rl2zatxmmuyaleJU0Kls1LsdUqzuKY6Xta6mtpr4d76m7hjnkkknYjmZfF/3/X9S2nbZr/+flsXNO3jtNYfUHr2OttompqSh3E4dwIQJyNPA8AkCcO42XJQ7j/PHTqgaBoFToNRwdoGATtttv/QA9YlBPZK4SUgKBUl1qCqaqqstH1JGeFAZlgf7AgnuQAqLZ4vaAsq7KZU8P9SaNyyp6Xjcxr95FRWtyzM8b22u1Yzs7wnZkAHzSl+pCk5b+P/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wE7b//qxQNNIhwAIWi1NYwwy3FZFqaxhhluKqMU1rBkLcVUYprWDIW5tv/QA9YlBPZK4SUgKBUl1qCqaqqstH1JGeFAZlgf7AgnuQAqLZ4vaAsq7KZU8P9SaNyyp6Xjcxr95FRWtyzM8b22u1Yzs7wnZkAHzSl+pCk5b+PCktkskjaQAC2ULEnHOIlp+AEC3pibabDsMW/OJLANP0mWfzMWmTEjQGLASEAgBAGhhkxSFd1fFNEz88pvM3DRETK3xTr0kLXKMSQylFGtFzUTDldpUKS2SySNpAALZQsScc4iWn4AQLemJtpsOwxb84ksA0/SZZ/MxaZMSNAYsBIQCAEAaGGTFIV3V8U0TPzym8zcNERMrfFOvSQtcoxJDKUUa0XNRMOV2lQeZh3d3ffa1EBP1IAu8wJTZ5SgzizL7ZXA0H2U5leLk2cJbrJ880jRoKWChKNAxsu6/b+nfd23nNZrQ9W9eZ+N6++Yf/1B584euzBThz+wz////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+rNAcJinAAp/MUv7BjLYT+Ypf2DGWwrg7SvnmGtpXB2lfPMNbf/+DzMO7u777WogJ+pAF3mBKbPKUGcWZfbK4Gg+ynMrxcmzhLdZPnmkaNBSwUJRoGNl3X7f077u285rNaHq3rzPxvX3zD/+oPPnD12YKcOf2GQWHZ2dla22REAA1GoAhHkQZHDngZirbIMdyQ0qdav/uY5b7svsh4YNYgoGdf3ZYI75m4dy2QKKTBKLPxAKslMK8r0whaIa0gv0mc+nmWIcZZ2fu7k/uHQWHZ2dla22REAA1GoAhHkQZHDngZirbIMdyQ0qdav/uY5b7svsh4YNYgoGdf3ZYI75m4dy2QKKTBKLPxAKslMK8r0whaIa0gv0mc+nmWIcZZ2fu7k/uHYJtFOOSWxtoi57FvEzLmh4cYBuWNds+LE2ytAOkWpuWkLMJ0LsciHLLhpjpEIqFwDA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5dd52KnH5f3ZcITTSa7lB9pU9TOZy7HeAqGlpRKoZxCUrGP+tEMVbyzK3pxMnQhR5rovayvsseG+hBqKiogD+5sbL3YctjHQancbiZtlSczpgViEHzKJ92ry61z1pNe7L55cqtXrS51aez97ss3Wleuy5aemrorctYKqppJ8M78uu87FTj8v7tgONJtuNyyIkBfnQeJASxQwYQeD7LufRmDAmhLIiy939jrWm5ODAs1EFtBYbSWdLNQ1TSY87cZfV+lwo4gogizRU6hPEnrprSbIdaSJuaBNi22hPlcxT8W1UwOeyFK+ZW4jsLL47hmF27LXAUUd7Brl69e6td9daVipY6eGFzIhm41BV3/7W1hxpNtxuWREgL86DxICWKGDCDwfZdz6MwYE0JZEWXu/sda03JwYFmogtoLDaSzpZqGqaTHnbjL6v0uFHEFEEWaKnUJ4k9dNaTZDrSRNzQJsW20J8rmKfi2qmBz2QpX/+rNAOOpyAAQ1Ms1p+HrYhqZZrT8PWxF0sSWsZwtKLpYktYzhafMrcR2Fl8dwzC7dlrgKKO9g1y9evdWu+utKxUsdPDC5kQzcagq7/9rayEEntZLbY0AkghujokaJqRfXYlkgFeZDBR403jPBYEJELCu8HOig65hRmJJmvqRCmAeDzl3TVMX2LotfUFYqMAtoFQmSJqSHcgdciu4fcFpk9K3jiCwZUeyyD3Jd2aj2r+buxKB3TwgiJZQDL49ljq5XyjWW8uXt1rRgjoJO+p3+4VVbnyeSu57rfbZCCT2sltsaASQQ3R0SNE1IvrsSyQCvMhgo8abxngsCEiFhXeDnRQdcwozEkzX1IhTAPB5y7pqmL7F0WvqCsVGAW0CoTJE1JDuQOuRXcPuC0yelbxxBYMqPZZB7ku7NR7V/N3YlA7p4QREsoBl8eyx1cr5RrLeXL261owR0EnfU7/cKqtz5PJXc91vttxEk5NttbIkAaahCGqFzyIFRNBEEYGsKJNV8X/P5mviMCXSzlLEillFpVhVN1pBco+EIin4ODXavdkqx1LZCzmWOArIIBCFid8MPTTSfUD0cOwK3JL57YnVopTXtWq9rCNR2Q47mqarrm977rWfed1lv+dx1vX02LnHFX1ppexVG9zDP////////////////////////////////////////////////////////////+IknJttrZEgDTUIQ1QueRAqJoIgjA1hRJqvi/5/M18RgS6WcpYkUsotKsKputILlHwhEU/Bwa7V7slWOpbIWcyxwFZBAIQsTvhh6aaT6gejh2BW5JfPbE6tFKa//+rNA3hKGAAWFMUjrGMLQgqYpHWMYWg2ItR+sZetBsRaj9Yy9aGrVe1hGo7IcdzVNV1ze991rPvO6y3/O463r6bFzjir600vYqje5hkNqu2SSNtkAF9UwS4LcBAFESBR4zkLgkKCE5nA4NBIs5WZ73ggey+kEw5H4q2R7XtjNLJozQwLKKLrlWqkmqmVyi9dxdbkfXT0eav/zjeZdVpvNN4lpTerarutPa0LhNxoLDnhw7ZqEj7tp0XDartkkjbZABfVMEuC3AQBREgUeM5C4JCghOZwODQSLOVme94IHsvpBMOR+Ktke17YzSyaM0MCyii65VqpJqplcovXcXW5H109Hmr/843mXVabzTeJaU3q2q7rT2tC4TcaCw54cO2ahI+7adF4T7fW2yySNACIMAIJS/qAtejhRYmTKREE3LZymdWo56WUs5leyrS63lYtWu1Se/qtDjVTNvu+Ji5f+PndetsVnPg7c2YLHYsMFfFPVrfreJ+G//+ceNd+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+rNAPr2mgAp0JElrGDJSV4SJLWMGSkpsvR2MGMtBTZejsYMZaP/xPt9bbLJI0AIgwAglL+oC16OFFiZMpEQTctnKZ1ajnpZSzmV7KtLreVi1a7VJ7+q0ONVM2+74mLl/4+d162xWc+DtzZgsdiwwV8U9Wt+t4n4b//5x4137LrkabfVaA00umiMKlBQkgJzN2HiZczZAQK8SHF7QRZvO50ITe1hvncgzOz9tfvZAIiL++v790+z7fP8zrUVjAAg0J1ZgbBoLKFRUztc9iU9jbVVF1yNNvqtAaaXTRGFSgoSQE5m7DxMuZsgIFeJDi9oIs3nc6EJvaw3zuQZnZ+2v3sgERF/fX9+6fZ9vn+Z1qKxgAQaE6swNg0FlCoqZ2uexKextqqoSWRtt3VIAKpGik5iyR2tLWRSLlLGlwpHRA2ocRoyVqpSTZURsEFGCl/BLATkT+XyYdkpdhEbBsak8rcJqxd4WCxIN/EKZNSXYy/30Pe/95f/f////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+rNAowWmgAtgIcdjKRpCUYQ47GUjSEjsYx2MGGkBHwxjsYMNIP////////////////////////////////////////8SWRtt3VIAKpGik5iyR2tLWRSLlLGlwpHRA2ocRoyVqpSTZURsEFGCl/BLATkT+XyYdkpdhEbBsak8rcJqxd4WCxIN/EKZNSXYy/30Pe/95f/S7I201VUgK/ElSNmwEO/j7TcfjZQGi+kTDXZoVqj0jQ6RcFNGNunkJM4TKMQGwIEIMg8KAxZIMmlpB0uaYhmatESlhjajsE5dkbaaqqQFfiSpGzYCHfx9puPxsoWi+kTDXZoVqj0jZ0i4KaMbdMiEmcJiBiA2DAQgyDwoDFkgxBqkHS5piGZpDREpYY6OwTgSSSRx//yAc55xYT92qOM5VaULMk8mQH18i4EEIyKrlmNtrM7XeEi5Lmy3523QOQ+UJLiqAIwFNpyHVx8sxrFtvZLIkv//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+rNAhiOmgAvEIshjBhpQRUJJDGDGNkjsjx2HmGlBHpHjsPMNKP/////////////////////////////////////////////////////////xJJZHH//IBznnFhP3ao4zkaRCwBh5MgPr5CcCCGZFV83Vc4lu4fIA6NTVusTmA1b+R+/LqkMTPx5/H3Vne13L7u3z/Od0NyNpNVdIABS3MyMq3sChVynHJpJCd/0p9FmqbqlmMpah2TZe1VI7poKVC0QwgUQbD09CygqUScPtDAqCb0Kqm2LUKbOhT8aG5GymqukAApbmZGVb2BQq5Th00khO/6U+izVN8xmMpbDsmy9olSOkmhqhYhDCBUNhVPQsoVKJOH2hgVBN6GVTbFqFEWdCn64ONxtN11IAD2G+/YnAXRogMXQhxPq4A40r4xypZMZdY1O1K2bcocYOJdFhF52OolTu2Sut88i7c3I+4cFhYGHjmG63jxQMut6XB1a1////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+rNAaTSmgAs9Lkdh5hrQTGXI7DzDWkmMkR2MGGlBMZIjsYMNKP//////////////////////////////////+HG42m66kAB7DffsTgLo0QGLoRFPq4A40r4xypZMZdY1O1K2bcocYOJdFYi87HUSp3bKut88i7c3I+kHBqgh7Vl/69ugT37//7cN7j0KNttJ/VIANEyafvPqr7C5RxEJo4jsy/mGjf3SRkDYyDghAGhxkIKyBR+8ZadjNaWCIkzChxyxrh4jGkhcHHBI8UW4mskmaD32Pa2xAUbbaT+qQAaJk0/efVX2FyjiITRxHZl/MNG/ukjIGxkHBCANDjIQVkCj94y07Ga0sERJmFDjljXDxGNJC4OOCR4otxNZJM0Hvse1tiEbW22ySSSNAAwVOpcqRocix5MY5y82JRLFGV0/yqllx+/7oMjvID1LrUns9ylyr5jyKImWtXPJeiZOCRBwCPSaWBXCQfbkl/uLf///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+rNASB+mgAvBLElrBhrQSSWJLWDDWgi8vR2HmGtBF5ejsPMNaP////////////////////////////////////////////////////////+NrbbZJJJGgAYKnUuVI0ORY8mMc5ebEolijK6f5VSy4/f90GR3kB6l1qT2e5S5V8x5FETLWrnkvRMnBIg4BHpNLArhIPtyS/3Fg42201XUgAui0JuqDnTjFhtgRrrToFTou+82Tp7lt/fbiEfDKMaKwEopXJqZN5/ZaeyrT3KRyPfZzg2KsNKTIL1L8V7GCgcbbaarqQAXRaE3VBzpxiw2wI11p0Cp0XfebJ09y2/vtxCPhlGNFYCUUrk1Mm8/stPZVp7lI5Hvs5wbFWGlJkF6l+K9jBQxtttpVXIAA8DwHUctEg/vEkhQEA8EaUFjx1/aLjNzvEd2B6bkSR84hOWb5kaA6REAA8BqsAVGgZQ1lrCI4YIewwqDKWscyxbf/Xt3/q+P////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+rNAAXSmgAsxKUdh5hrSTqUo7DzDWkmAxx2HmKtBMBjjsPMVaP////////////////////////////////+Y2220qrkAAeB4DqOWiQf3iSQoCAeCNKCx46/tFxm53iO7A9NyJI+cQnLN8yNAdIiAAeA1WAKjQMoay1hEcMEPYYVBlLWOZYtv/r27/1fESNNNp1VoAFtGBlGQaBc8sFuuJeUUqLSZIuXfiXNs/1/7RXSYp2KvkShCvaTIZNmJed1VZQcWFjjB51IMIdyCTNqQGweQ0IOU43QcqEjTTadVaABbRgZRkGgXPLBbriXlFKi0mSLl34lzbP9f+0V0mKdir5EoQr2kyGTZiXndVWUHFhY4wedSDCHcgkzakBsHkNCDlON0HKg++qqqkAAyDQLllna/FncdQCMaQGjlU083XJGPzJbKRJRZGUU56x7tbvpmhnlo82ikEXhM0aQhexJTvgubOTyKuj//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+rNAm/2mgAt2McdJ4xrQQUY46TxjWgnUwx2HmQtBORhjsPMZaP////////////////////////////////////////////z76qqqQADINAuWWdr8Wdx1AIxpAaOVTTzdckY/MlspElFkZRTnrHu1u+maGeWjzaKQReEzRpCF7ElO+C5s5PIq6A4202l1WgAwQaKkMY6oCpxBwr7pN6C0EOtVxX2tpk627YcncvKvV1PD3MQ8NGk3cU8Ppf9pEI6lg4OYlGVnJPDwFywnWLjAsUVU1e1VvHBxtptLqtABgg0UQYx1NipxBwr7pN6HoIdNVxX2tpk627pUfXt5vNx+167e2pvD7rZbX43/7DNFyeCK02KmrNTCAXLCdYuMCxRVrV7VW9USyRyNxtuIgAJbkPBpVp0v74WrZBgsxRk4oq0qK2CICFFAWfX93t6zs3/aPT/dbCv7+/1/e7tMcggikluvp21ostNa3vcm+HnbrJ8jgNX///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9UQUcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMDIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/w==\"","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MainScreen = void 0;\nvar react_1 = __importStar(require(\"react\"));\nvar react_redux_1 = require(\"react-redux\");\nvar react_router_dom_1 = require(\"react-router-dom\");\nvar doshx_controls_web_1 = require(\"doshx_controls_web\");\nvar logo_png_1 = __importDefault(require(\"../assets/logo.png\"));\n// import { faFlame } from \"@fortawesome/pro-solid-svg-icons\";\nvar home_1 = require(\"./pages/home/home\");\nvar about_us_1 = require(\"./pages/about_us\");\nvar contact_us_1 = require(\"./pages/contact_us\");\nvar shop_1 = require(\"./pages/shop/shop\");\nvar basket_1 = require(\"./pages/basket/basket\");\nvar log_in_1 = require(\"./pages/auth/log_in\");\nvar sign_up_1 = require(\"./pages/auth/sign_up\");\nvar profile_1 = require(\"./pages/profile/profile\");\nvar react_redux_2 = require(\"react-redux\");\nvar main_1 = require(\"../reducers/slices/main\");\nvar product_1 = require(\"./pages/shop/product\");\nvar checkout_1 = require(\"./pages/checkout\");\nvar outcome_1 = require(\"./pages/outcome\");\nvar user_1 = require(\"../reducers/slices/user\");\nvar forgot_password_1 = require(\"./pages/forgot_password\");\nvar search_products_1 = require(\"../api/calls/product/search_products\");\nvar selection_1 = require(\"../reducers/slices/selection\");\nvar getRootPath_1 = require(\"../helpers/getRootPath\");\nvar universal_cookie_1 = __importDefault(require(\"universal-cookie\"));\nvar orders_1 = require(\"./pages/orders/orders\");\nvar details_1 = require(\"./pages/orders/details\");\nvar terms_and_conditions_1 = require(\"./pages/terms_and_conditions\");\nvar privacy_policy_1 = require(\"./pages/privacy_policy\");\nvar get_basket_thunk_1 = require(\"../reducers/slices/basket/thunks/get_basket_thunk\");\nvar pro_solid_svg_icons_1 = require(\"@fortawesome/pro-solid-svg-icons\");\nvar hot_deals_1 = require(\"./pages/hot_deals\");\nvar free_brands_svg_icons_1 = require(\"@fortawesome/free-brands-svg-icons\");\nvar categories_1 = require(\"../api/calls/product/categories\");\nvar application_1 = require(\"./pages/loans/application\");\nvar advanced_personal_details_1 = require(\"./pages/advanced_personal_details/advanced_personal_details\");\nvar employment_details_1 = require(\"./pages/employment_details/employment_details\");\nvar loans_1 = require(\"./pages/loans/loans\");\nvar details_2 = require(\"./pages/loans/details\");\nvar publications_1 = require(\"./pages/news/publications\");\nvar articles_1 = require(\"./pages/news/articles\");\nvar article_1 = require(\"./pages/news/article\");\nvar weather_1 = require(\"./pages/weather\");\nvar wishlist_1 = require(\"./pages/wishlist\");\nvar return_policy_1 = require(\"./pages/return_policy\");\nvar affiliated_entities_1 = require(\"./pages/affiliated_entities\");\nvar find_stores_1 = require(\"./pages/store/find-stores\");\nvar view_store_1 = require(\"./pages/store/view_store\");\nvar sign_in_required_1 = require(\"./pages/components/sign_in_required\");\nvar live_chat_1 = require(\"./pages/live_chat\");\nvar faqs_1 = require(\"./pages/faqs\");\nvar route_names_1 = require(\"../constants/route_names\");\nvar auth_1 = require(\"./pages/auth/auth\");\nvar reset_password_1 = require(\"./pages/auth/reset_password\");\nvar facetec_1 = require(\"./pages/auth/facetec\");\nvar get__production_keys_1 = require(\"../api/calls/sky_api/get_ production_keys\");\nvar Config_1 = require(\"../Config\");\nvar FaceTecSDK_1 = require(\"../../core-sdk/FaceTecSDK.js/FaceTecSDK\");\nvar SampleAppUtilities_1 = require(\"../../facetec/src/utilities/SampleAppUtilities\");\nvar ThemeHelpers_1 = require(\"../../facetec/src/utilities/ThemeHelpers\");\nvar AdditionalScreens_1 = require(\"../../facetec/src/utilities/AdditionalScreens\");\nvar DeveloperStatusMessages_1 = require(\"../../facetec/src/utilities/DeveloperStatusMessages\");\nvar account_blocked_1 = require(\"./pages/auth/account_blocked\");\nvar check_fraud_list_1 = require(\"../api/calls/user/authentication/check_fraud_list\");\nvar check_duplicates_1 = require(\"../api/calls/user/authentication/check_duplicates\");\nvar verifyEmail_1 = require(\"./pages/auth/verifyEmail\");\nvar product_category_record_1 = __importDefault(require(\"./pages/home/product_category_record\"));\nvar MainScreen = function () {\n var _a, _b, _c, _d, _e;\n var cookie = new universal_cookie_1.default();\n var navigate = (0, react_router_dom_1.useNavigate)();\n var dispatch = (0, react_redux_1.useDispatch)();\n var location = (0, react_router_dom_1.useLocation)();\n var rootPath = (0, getRootPath_1.getRootPath)(location);\n // const [drawerPageName, setDrawerPageName] = useState<\"login\" | \"signup\" | \"forgot\" | \"profile\">(\"login\");\n var _f = (0, react_1.useState)(\"\"), searchTerm = _f[0], setSearchTerm = _f[1];\n var _g = (0, react_1.useState)([]), searchPredictions = _g[0], setSearchPredictions = _g[1];\n var _h = (0, react_1.useState)(\"\"), subscribingEmail = _h[0], setSubscribingEmail = _h[1];\n var _j = (0, react_1.useState)(\"\"), subscribingEmailError = _j[0], setSubscribingEmailError = _j[1];\n var _k = (0, react_1.useState)(false), isBusySubscribing = _k[0], setIsBusySubscribing = _k[1];\n var _l = (0, react_1.useState)(false), userLoaded = _l[0], setUserLoaded = _l[1];\n var main = (0, react_redux_2.useSelector)(function (state) { return state.mainState; }).main;\n var user = (0, react_redux_2.useSelector)(function (state) { return state.userState; }).user;\n var basket = (0, react_redux_2.useSelector)(function (state) { return state.basketState; }).basket;\n var _m = (0, react_1.useState)(false), sdkInitialized = _m[0], setSdkInitialized = _m[1];\n var _o = (0, react_1.useState)(0), initializationCount = _o[0], setInitializationCount = _o[1];\n var _p = (0, react_1.useState)([]), shopCategories = _p[0], setShopCategories = _p[1];\n (0, react_1.useEffect)(function () {\n (0, get__production_keys_1.get_production_keys)({\n is_web: true,\n }).then(function (response) {\n if (response.success) {\n var key = response.content.keys;\n var domains = key.domains;\n var expiryDate = key.expiryDate;\n var keyText = key.key;\n Config_1.Config.ProductionKeyText = \"{ \\\"domains\\\": \\\"\".concat(domains, \"\\\", \\\"expiryDate\\\": \\\"\").concat(expiryDate, \"\\\", \\\"key\\\": \\\"\").concat(keyText, \"\\\"}\");\n Config_1.Config.DeviceKeyIdentifier = response.content.key_identifier;\n if (Config_1.Config.ProductionKeyText && Config_1.Config.DeviceKeyIdentifier) {\n console.log(\"Config keys set...\", Config_1.Config.ProductionKeyText, \"and\", Config_1.Config.DeviceKeyIdentifier);\n Config_1.Config.initializeFromAutogeneratedConfig(FaceTecSDK_1.FaceTecSDK, function (initializedSuccessfully) {\n if (initializedSuccessfully)\n setInitializationCount(initializationCount + 1);\n setSdkInitialized(initializedSuccessfully);\n }, Config_1.Config.ProductionKeyText, Config_1.Config.DeviceKeyIdentifier);\n }\n }\n });\n }, [user.uid]);\n (0, react_1.useEffect)(function () {\n if (sdkInitialized) {\n Config_1.Config.didSucceed = sdkInitialized;\n onFaceTecSDKInitializationSuccess();\n }\n else if (initializationCount === 0 && !sdkInitialized) {\n Config_1.Config.didSucceed = sdkInitialized;\n onFaceTecSDKInitializationFailure();\n }\n }, [sdkInitialized]);\n (0, react_1.useEffect)(function () {\n if (user.uid) {\n setUserLoaded(true);\n if (!user.facetecDBRef || !user.facetec.authenticated) {\n navigate(\"/biometric/authentication\");\n }\n }\n }, [user]);\n (0, react_1.useEffect)(function () {\n var timeoutId;\n if (user.uid) {\n var resetTimer_1 = function () {\n // Clear the existing timeout\n if (timeoutId)\n clearTimeout(timeoutId);\n // Set a new timeout for 5 minutes (300,000 ms)\n timeoutId = setTimeout(function () {\n // Log the user out after 5 minutes of inactivity\n dispatch((0, user_1.sign_out_thunk)());\n dispatch((0, main_1.setDrawerPage)(\"login\"));\n dispatch((0, main_1.setDrawerOpen)(true));\n dispatch((0, main_1.setMessageModal)({ title: \"Session Expired!\", messages: [\"Your session has expired due to inactivity. Please log in again to continue.\"] }));\n }, 300000); // 300000 ms = 5 minutes\n };\n // List of events that should reset the timer\n var events_1 = [\"mousemove\", \"keydown\", \"mousedown\", \"touchstart\"];\n // Attach the resetTimer function to all events\n events_1.forEach(function (event) { return window.addEventListener(event, resetTimer_1); });\n console.log(timeoutId);\n // Initial reset to start the timer when the component mounts\n resetTimer_1();\n // Cleanup event listeners on component unmount\n return function () {\n events_1.forEach(function (event) { return window.removeEventListener(event, resetTimer_1); });\n if (timeoutId)\n clearTimeout(timeoutId);\n };\n }\n }, [user]);\n (0, react_1.useEffect)(function () {\n var _a, _b;\n //Get user in the cookie and set it in the store\n if (userLoaded && user) {\n if (!((_a = user === null || user === void 0 ? void 0 : user.location) === null || _a === void 0 ? void 0 : _a.lat) && !((_b = user === null || user === void 0 ? void 0 : user.location) === null || _b === void 0 ? void 0 : _b.lon) && navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(function (position) {\n var newUserObj = __assign(__assign({}, user), { location: {\n lat: position.coords.latitude,\n lon: position.coords.longitude,\n } });\n dispatch((0, user_1.setUser)(newUserObj));\n }, function (error) {\n console.error(error);\n });\n }\n else {\n }\n }\n }, [userLoaded]);\n (0, react_1.useEffect)(function () {\n //Get user in the cookie and set it in the store\n var userStateCookie = cookie.get(\"user_state\");\n if (userStateCookie) {\n dispatch((0, user_1.setUser)(userStateCookie));\n }\n }, []);\n (0, react_1.useEffect)(function () {\n (0, categories_1.getCategories)({\n page: \"1\",\n }).then(function (response) {\n var categoryList = response.content.product_category_list;\n var newCategoryList = [];\n var _loop_1 = function (category) {\n if (product_category_record_1.default[category === null || category === void 0 ? void 0 : category._id] && category.description != \"advert\") {\n newCategoryList.push({\n label: category.name,\n onClick: function () {\n scrollToTop();\n navigate(\"./shop/category/0/\".concat(category._id, \"/\").concat(encodeURI(category.name)));\n },\n });\n }\n };\n for (var _i = 0, _a = categoryList !== null && categoryList !== void 0 ? categoryList : []; _i < _a.length; _i++) {\n var category = _a[_i];\n _loop_1(category);\n }\n setShopCategories(newCategoryList);\n });\n }, []);\n (0, react_1.useEffect)(function () {\n if (user === null || user === void 0 ? void 0 : user.uid) {\n dispatch((0, get_basket_thunk_1.get_basket_thunk)({ basket_id: \"\" }));\n }\n }, [user === null || user === void 0 ? void 0 : user.uid]);\n (0, react_1.useEffect)(function () {\n var delayFn = setTimeout(function () {\n if (searchTerm) {\n (0, search_products_1.searchProducts)({\n search_string: searchTerm,\n }).then(function (response) {\n setSearchPredictions(response.content);\n });\n }\n }, 777);\n return function () { return clearTimeout(delayFn); };\n }, [searchTerm]);\n var openAccountPage = function () {\n if (user === null || user === void 0 ? void 0 : user.uid) {\n dispatch((0, main_1.setDrawerPage)(\"profile\"));\n // navigate(`${rootPath}/profile`);\n }\n else {\n dispatch((0, main_1.setDrawerPage)(\"login\"));\n // navigate(`${location.pathname}/login`);\n }\n dispatch((0, main_1.setDrawerOpen)(true));\n };\n var scrollToTop = function () {\n window.scrollTo({\n top: 0,\n behavior: \"smooth\",\n });\n };\n //Check if user if on blocked list or account duplicate\n var checkAccountStanding = function () { return __awaiter(void 0, void 0, void 0, function () {\n var fraudList, duplicateAccount;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(user.uid && user.facetecDBRef)) return [3 /*break*/, 4];\n return [4 /*yield*/, (0, check_fraud_list_1.check_fraud_list)({ externalDatabaseRefID: user.facetecDBRef, groupName: \"FraudUserSearchList\", minMatchLevel: 7 })];\n case 1:\n fraudList = _a.sent();\n if (!fraudList.content.isOnFraudList) return [3 /*break*/, 2];\n navigate(\"/biometric/authentication/blocked\");\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, (0, check_duplicates_1.check_duplicates)({ externalDatabaseRefID: user.facetecDBRef })];\n case 3:\n duplicateAccount = _a.sent();\n if (duplicateAccount.content.mainAccountEmail) {\n dispatch((0, user_1.sign_out_thunk)());\n dispatch((0, main_1.setMessageModal)({\n title: \"Account Duplicate!\",\n messages: [\n \"This is a duplicate account.\",\n \"Please login with your password to an account with the email address (\".concat(duplicateAccount.content.mainAccountEmail, \") to access your main account.\"),\n \"If this is not possible, please contact support.\",\n ],\n }));\n }\n _a.label = 4;\n case 4: return [2 /*return*/];\n }\n });\n }); };\n (0, react_1.useEffect)(function () {\n if (user.uid && user.facetecDBRef) {\n checkAccountStanding();\n }\n }, [user.uid, user.facetecDBRef]);\n return (react_1.default.createElement(\"div\", { className: \"\" },\n react_1.default.createElement(doshx_controls_web_1.TopHeaderControl, { logo: { image: logo_png_1.default, size: \"small\", onClick: function () { return navigate(\"/\"); } }, search: {\n iconColor: \"text-primary\",\n displayKey: \"label\",\n options: searchPredictions.map(function (prediction) { return ({\n label: prediction.title,\n value: prediction._id,\n }); }),\n searchChanged: function (value) {\n setSearchTerm(value);\n },\n searchSelectionChanged: function (value) {\n dispatch((0, selection_1.setSelectedProduct)({\n _id: value.value,\n }));\n scrollToTop();\n navigate(\"/product/\".concat(value.value));\n },\n }, account: {\n displayText: (user === null || user === void 0 ? void 0 : user.uid) ? \"\".concat(user.name, \" \").concat(user.surname) : undefined,\n iconColor: \"text-white\",\n backgroundColor: \"bg-primary\",\n onClick: function () {\n // const strippedPath = getStrippedPath(location);\n openAccountPage();\n },\n }, basket: {\n tooltip: {\n label: \"My Cart\",\n placement: \"left-start\",\n colors: {\n showShadow: true,\n backgroundColor: \"bg-primary\",\n textColor: \"text-white\",\n borderColor: \"border-primary\",\n },\n },\n count: (_b = (_a = basket === null || basket === void 0 ? void 0 : basket.product_list) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0,\n backgroundColor: \"bg-primary\",\n borderColor: \"border-primary\",\n size: \"large\",\n countTextColor: \"text-white\",\n countBackgroundColor: \"bg-secondary\",\n iconColor: \"text-white\",\n onClick: function () {\n scrollToTop();\n navigate(\"/basket\");\n },\n }, topBar: {\n colors: {\n textColor: \"text-white\",\n backgroundColor: \"bg-secondary\",\n actions: {\n iconColor: \"text-white\",\n textColor: \"text-white\",\n backgroundColor: \"bg-primary\",\n underlineColor: \"decoration-primary\",\n },\n },\n contactNumber: (_c = process.env.CONTACT_SUPPORT_PHONE_NUMBER) !== null && _c !== void 0 ? _c : \"\",\n contactEmail: process.env.CONTACT_SUPPORT_EMAIL_ADDRESS,\n actions: [\n {\n icon: pro_solid_svg_icons_1.faLocationDot,\n label: \"Store Locations\",\n onClick: function () {\n scrollToTop();\n navigate(\"/find-store\");\n },\n },\n {\n icon: pro_solid_svg_icons_1.faHeart,\n label: \"Wishlist\",\n onClick: function () {\n scrollToTop();\n navigate(\"/wishlist\");\n },\n },\n ],\n }, menu: {\n menuItems: [\n {\n label: \"Home\",\n onClick: function () {\n scrollToTop();\n navigate(\"/home\");\n },\n },\n {\n label: \"About Us\",\n onClick: function () {\n scrollToTop();\n navigate(\"/about-us\");\n },\n },\n {\n label: \"Loans\",\n onClick: function () {\n scrollToTop();\n navigate(\"/loans\");\n },\n },\n {\n label: \"Shop\",\n subItems: shopCategories,\n },\n {\n label: \"Affiliated Entities\",\n onClick: function () {\n scrollToTop();\n navigate(\"/affiliated-entities\");\n },\n },\n {\n label: \"FAQs\",\n onClick: function () {\n scrollToTop();\n navigate(\"/faqs\");\n },\n },\n {\n label: \"Contact Us\",\n onClick: function () {\n scrollToTop();\n navigate(\"/contact-us\");\n },\n },\n ],\n } }),\n react_1.default.createElement(doshx_controls_web_1.DrawerControl, { open: main.isDrawerOpen, close: {\n backgroundColor: \"bg-primary\",\n }, toggleOpen: function (v) {\n dispatch((0, main_1.setDrawerOpen)(v));\n } }, (function () {\n switch (main.drawerPageName) {\n case \"login\":\n return react_1.default.createElement(log_in_1.SignInPage, null);\n case \"signup\":\n return react_1.default.createElement(sign_up_1.SignUpPage, null);\n case \"profile\":\n return react_1.default.createElement(profile_1.ProfilePage, null);\n case \"forgot\":\n return react_1.default.createElement(forgot_password_1.ForgotPasswordPage, null);\n }\n })()),\n react_1.default.createElement(\"div\", { className: \"pt-5 pb-10\" },\n react_1.default.createElement(react_router_dom_1.Routes, null,\n react_1.default.createElement(react_router_dom_1.Route, { index: true, element: react_1.default.createElement(react_router_dom_1.Navigate, { to: \"/home\" }) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/home/*\", element: react_1.default.createElement(home_1.HomePage, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/about-us/*\", element: react_1.default.createElement(about_us_1.AboutUsPage, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/contact-us/*\", element: react_1.default.createElement(contact_us_1.ContactUsPage, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/shop/*\", element: react_1.default.createElement(shop_1.ShopPage, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/product/:productId\", element: react_1.default.createElement(product_1.ProductPage, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/basket/*\", element: react_1.default.createElement(basket_1.BasketPage, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/hot-deals/*\", element: react_1.default.createElement(hot_deals_1.HotDealsPage, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/terms-and-conditions/*\", element: react_1.default.createElement(terms_and_conditions_1.TermsAndConditionsPage, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/privacy-policy/*\", element: react_1.default.createElement(privacy_policy_1.PrivacyPolicyPage, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/return-policy/*\", element: react_1.default.createElement(return_policy_1.ReturnPolicyPage, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/affiliated-entities\", element: react_1.default.createElement(affiliated_entities_1.AffiliatedEntitiesPage, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/find-store\", element: react_1.default.createElement(find_stores_1.FindStoresPage, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/view-store/:storeID\", element: react_1.default.createElement(view_store_1.ViewStorePage, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/publications\", element: react_1.default.createElement(publications_1.PublicationsPage, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/articles/:publication_id\", element: react_1.default.createElement(articles_1.ArticlesPage, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/article/:publication_id/:id\", element: react_1.default.createElement(article_1.ArticlePage, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/weather\", element: react_1.default.createElement(weather_1.WeatherPage, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/faqs\", element: react_1.default.createElement(faqs_1.FAQsPage, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/outcome/:actionType\", element: react_1.default.createElement(outcome_1.OutcomePage, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/firebase/auth/:actionData\", element: react_1.default.createElement(auth_1.FirebaseAuthRedirectPage, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/auth/password/reset/:resetCode\", element: react_1.default.createElement(reset_password_1.ResetPasswordPage, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/auth/verify/email/:resetCode\", element: react_1.default.createElement(verifyEmail_1.VerifyEmailPage, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { element: user.uid && !((_d = user === null || user === void 0 ? void 0 : user.facetec) === null || _d === void 0 ? void 0 : _d.authenticated) ? react_1.default.createElement(facetec_1.FaceTecApp, null) : \"\" },\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/checkout/*\", element: (0, user_1.isAuthenticated)() ? react_1.default.createElement(checkout_1.CheckoutPage, null) : react_1.default.createElement(sign_in_required_1.SignInRequiredComponent, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/orders\", element: (0, user_1.isAuthenticated)() ? react_1.default.createElement(orders_1.OrdersPage, null) : react_1.default.createElement(sign_in_required_1.SignInRequiredComponent, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/chat\", element: (0, user_1.isAuthenticated)() ? react_1.default.createElement(live_chat_1.LiveChatPage, null) : react_1.default.createElement(sign_in_required_1.SignInRequiredComponent, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/order/details/:orderId\", element: (0, user_1.isAuthenticated)() ? react_1.default.createElement(details_1.OrderDetailsPage, null) : react_1.default.createElement(sign_in_required_1.SignInRequiredComponent, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"\".concat(route_names_1.ROUTE_LOAN_APPLICATION, \"/:step/:loan_id\"), element: (0, user_1.isAuthenticated)() ? react_1.default.createElement(application_1.LoanApplicationPage, null) : react_1.default.createElement(sign_in_required_1.SignInRequiredComponent, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/loan/details/:loan_id\", element: (0, user_1.isAuthenticated)() ? react_1.default.createElement(details_2.LoanDetailsPage, null) : react_1.default.createElement(sign_in_required_1.SignInRequiredComponent, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/loans\", element: (0, user_1.isAuthenticated)() ? react_1.default.createElement(loans_1.LoansPage, null) : react_1.default.createElement(sign_in_required_1.SignInRequiredComponent, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/wishlist\", element: (0, user_1.isAuthenticated)() ? react_1.default.createElement(wishlist_1.WishListPage, null) : react_1.default.createElement(sign_in_required_1.SignInRequiredComponent, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/advanced-personal-details/*\", element: (0, user_1.isAuthenticated)() ? react_1.default.createElement(advanced_personal_details_1.AdvancedPersonalDetailsPage, null) : react_1.default.createElement(sign_in_required_1.SignInRequiredComponent, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/employment-details/*\", element: (0, user_1.isAuthenticated)() ? react_1.default.createElement(employment_details_1.EmploymentDetailsPage, null) : react_1.default.createElement(sign_in_required_1.SignInRequiredComponent, null) })),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/biometric/authentication\", element: (0, user_1.isAuthenticated)() ? react_1.default.createElement(facetec_1.FaceTecApp, null) : react_1.default.createElement(sign_in_required_1.SignInRequiredComponent, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/biometric/authentication/blocked\", element: react_1.default.createElement(account_blocked_1.FaceTecAppBlocked, null) }))),\n react_1.default.createElement(\"div\", { className: \"h-16 w-full bg-primary \" }),\n react_1.default.createElement(doshx_controls_web_1.FooterControl, { backgroundColor: \"bg-white\", \n // newsletter={{\n // title: \"Sign up for our newsletter\",\n // description: \"Join our newsletter community and never miss a beat.\",\n // backgroundColor: \"bg-primary\",\n // textColor: \"text-white\",\n // onEmailChange: (v) => setSubscribingEmail(v),\n // emailAddress: subscribingEmail,\n // input: {\n // errorText: subscribingEmailError,\n // },\n // button: {\n // backgroundColor: \"bg-primary\",\n // loading: isBusySubscribing,\n // onClick: () => {\n // setSubscribingEmailError(\"\");\n // if (!subscribingEmail) {\n // setSubscribingEmailError(\"Please enter a valid email address.\");\n // } else {\n // setIsBusySubscribing(true);\n // newsletter_subscribe({\n // email: subscribingEmail,\n // }).then((response: any) => {\n // setIsBusySubscribing(false);\n // if (response.success) {\n // setSubscribingEmail(\"\");\n // dispatch(setMessageModal({ title: \"Subscribed!\", messages: [\"You have successfully subscribed to our newsletter!\"] }));\n // } else {\n // dispatch(setMessageModal({ title: \"Something went wrong!\", messages: [response.message] }));\n // }\n // });\n // }\n // },\n // },\n // }}\n logo: {\n image: logo_png_1.default,\n size: \"medium\",\n }, description: \"\", socialMedia: [\n // {\n // icon: faYoutube,\n // backgroundColor: \"bg-gray-200\",\n // onClick() {\n // window.open(\"\", \"_blank\");\n // },\n // },\n // {\n // icon: faLinkedinIn,\n // backgroundColor: \"bg-gray-200\",\n // onClick() {\n // window.open(\"\", \"_blank\");\n // },\n // },\n {\n icon: free_brands_svg_icons_1.faFacebook,\n backgroundColor: \"bg-gray-200\",\n onClick: function () {\n window.open(\"https://facebook.com/TheSkyLifeStyleNamibia\", \"_blank\");\n },\n },\n // {\n // icon: faTwitter,\n // backgroundColor: \"bg-gray-200\",\n // onClick() {\n // window.open(\"\", \"_blank\");\n // },\n // },\n // {\n // icon: faInstagram,\n // backgroundColor: \"bg-gray-200\",\n // onClick() {\n // window.open(\"\", \"_blank\");\n // },\n // },\n ], shortcut: {\n links: [\n {\n label: \"About Us\",\n onClick: function () {\n scrollToTop();\n navigate(\"/about-us\");\n },\n },\n {\n label: \"Affiliated Entities\",\n onClick: function () {\n scrollToTop();\n navigate(\"/affiliated-entities\");\n },\n },\n {\n label: \"Contact Us\",\n onClick: function () {\n scrollToTop();\n navigate(\"/contact-us\");\n },\n },\n {\n label: \"Terms and Conditions\",\n onClick: function () {\n var link = document.createElement(\"a\");\n link.href = \"/docs/SKY_APP_TERMS_AND_CONDITIONS.pdf\";\n link.target = \"_blank\"; // Open in a new tab\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link); // Remove the element after opening\n },\n },\n {\n label: \"Privacy Policy\",\n onClick: function () {\n navigate(\"/privacy-policy\");\n // const link = document.createElement(\"a\");\n // link.href = `/docs/SKY_APP_PRIVACY_POLICY.pdf`;\n // link.target = \"_blank\"; // Open in a new tab\n // document.body.appendChild(link);\n // link.click();\n // document.body.removeChild(link); // Remove the element after opening\n },\n },\n {\n label: \"Return Policy\",\n onClick: function () {\n var link = document.createElement(\"a\");\n link.href = \"/docs/SKY_APP_RETURN_POLICY.pdf\";\n link.target = \"_blank\"; // Open in a new tab\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link); // Remove the element after opening\n },\n },\n {\n label: \"Cookie Policy\",\n onClick: function () {\n var link = document.createElement(\"a\");\n link.href = \"/docs/SKY_APP_COOKIE_POLICY.pdf\";\n link.target = \"_blank\"; // Open in a new tab\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link); // Remove the element after opening\n },\n },\n {\n label: \"Authorization for Electronic Payments\",\n onClick: function () {\n var link = document.createElement(\"a\");\n link.href = \"/docs/AUTHORIZATION_FOR_ELECTRONIC_PAYMENTS.pdf\";\n link.target = \"_blank\"; // Open in a new tab\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link); // Remove the element after opening\n },\n },\n ],\n }, customer: {\n title: \"Customer Links\",\n links: (user === null || user === void 0 ? void 0 : user.uid)\n ? [\n { label: \"My Account\", onClick: function () { return openAccountPage(); } },\n {\n label: \"Order History\",\n onClick: function () {\n scrollToTop();\n navigate(\"/orders\");\n },\n },\n {\n label: \"Loans\",\n onClick: function () {\n scrollToTop();\n navigate(\"/loans\");\n },\n },\n {\n label: \"Wishlist\",\n onClick: function () {\n scrollToTop();\n navigate(\"/wishlist\");\n },\n },\n // {\n // label: \"Live Chat\",\n // onClick: () => {\n // scrollToTop();\n // navigate(\"/chat\");\n // },\n // },\n //\n ]\n : [\n {\n label: \"Login\",\n onClick: function () {\n dispatch((0, main_1.setDrawerPage)(\"login\"));\n dispatch((0, main_1.setDrawerOpen)(true));\n },\n },\n {\n label: \"Sign Up\",\n onClick: function () {\n dispatch((0, main_1.setDrawerPage)(\"signup\"));\n dispatch((0, main_1.setDrawerOpen)(true));\n },\n },\n ],\n }, contact: {\n title: \"Contact\",\n description: \"Need assistance or have a question? Contact us and we'll be happy to help!\",\n phone: {\n number: (_e = process.env.CONTACT_SUPPORT_PHONE_NUMBER) !== null && _e !== void 0 ? _e : \"\",\n icon: pro_solid_svg_icons_1.faPhoneSquare,\n title: \"Have any questions?\",\n onClick: function () { },\n },\n email: {\n address: \"\".concat(process.env.CONTACT_SUPPORT_EMAIL_ADDRESS),\n icon: pro_solid_svg_icons_1.faEnvelopeSquare,\n title: \"Want to send us a message?\",\n onClick: function () {\n window.open(\"mailto:\".concat(process.env.CONTACT_SUPPORT_EMAIL_ADDRESS, \"?subject=Website Enquiry\"), \"_blank\");\n },\n },\n }, copyright: { company: \"Let'sTrade\", textColor: \"text-black\", backgroundColor: \"bg-gray-200\" } }),\n main.messageModal && (react_1.default.createElement(doshx_controls_web_1.ModalControl, { title: main.messageModal.title, open: true, onClose: function () {\n // setIsOpen(false);\n dispatch((0, main_1.setMessageModal)(null));\n } },\n react_1.default.createElement(\"div\", { className: \"p-4\" }, main.messageModal.messages.map(function (message, index) {\n return react_1.default.createElement(\"div\", { key: \"modal-message-\".concat(index) }, message);\n })))),\n main.contentModal && (react_1.default.createElement(doshx_controls_web_1.ModalControl, { title: main.contentModal.title, open: true, onClose: function () {\n // setIsOpen(false);\n dispatch((0, main_1.setContentModal)(null));\n } },\n react_1.default.createElement(\"div\", { className: \"p-4\" }, main.contentModal.content)))));\n};\nexports.MainScreen = MainScreen;\nfunction onFaceTecSDKInitializationSuccess() {\n console.log(\"Loading SDK Resources...\");\n SampleAppUtilities_1.SampleAppUtilities.enableControlButtons();\n console.log(\"Loading SDK Resources...\", \"Control Buttons Enabled\");\n // Set your FaceTec Device SDK Customizations.\n ThemeHelpers_1.ThemeHelpers.setAppTheme(ThemeHelpers_1.ThemeHelpers.getCurrentTheme());\n console.log(\"Loading SDK Resources...\", \"Theme Set\");\n // Set the sound files that are to be used for Vocal Guidance.\n SampleAppUtilities_1.SampleAppUtilities.setVocalGuidanceSoundFiles();\n console.log(\"Loading SDK Resources...\", \"Vocal Guidance Set\");\n // Set the strings to be used for group names, field names, and placeholder texts for the FaceTec ID Scan User OCR Confirmation Screen.\n SampleAppUtilities_1.SampleAppUtilities.setOCRLocalization();\n console.log(\"Loading SDK Resources...\", \"OCR Set\");\n if (document.getElementById(\"controls\") !== null) {\n AdditionalScreens_1.AdditionalScreens.setServerUpgradeStyling(document.getElementById(\"controls\"), exitAdditionalScreen);\n console.log(\"Loading SDK Resources...\", \"Server Upgrade Set\");\n }\n DeveloperStatusMessages_1.DeveloperStatusMessages.logInitializeResult();\n console.log(\"Loading SDK Resources...\", \"Finished!\");\n}\nfunction onFaceTecSDKInitializationFailure() {\n DeveloperStatusMessages_1.DeveloperStatusMessages.logInitializeResult();\n console.log(\"Loading SDK Resources...\", \"Failed!\");\n}\nfunction exitAdditionalScreen() {\n AdditionalScreens_1.AdditionalScreens.exitAdditionalScreen(SampleAppUtilities_1.SampleAppUtilities.showMainUI);\n}\n","\"use strict\";\n//\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.remove_products = void 0;\nvar api_1 = require(\"../../api\");\nfunction remove_products(request) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, new api_1.API().apiPut({\n baseUrl: (_a = process.env.LETS_TRADE_BASKET_URL) !== null && _a !== void 0 ? _a : \"\",\n endpoint: \"v2/remove/products\",\n content: request,\n })];\n case 1: \n // console.log(\"remove_multiple_products -> request\", request);\n return [2 /*return*/, _b.sent()];\n }\n });\n });\n}\nexports.remove_products = remove_products;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FirebaseAuthRedirectPage = void 0;\nvar doshx_controls_web_1 = require(\"doshx_controls_web\");\nvar react_1 = __importStar(require(\"react\"));\nvar react_router_dom_1 = require(\"react-router-dom\");\nvar FirebaseAuthRedirectPage = function () {\n var navigate = (0, react_router_dom_1.useNavigate)();\n var params = (0, react_router_dom_1.useParams)();\n var location = (0, react_router_dom_1.useLocation)();\n (0, react_1.useEffect)(function () {\n if (location) {\n var searchParams = new URLSearchParams(location.search);\n var mode = searchParams.get(\"mode\");\n var oobCode = searchParams.get(\"oobCode\");\n switch (mode) {\n case \"resetPassword\":\n navigate(\"/auth/password/reset/\".concat(oobCode));\n break;\n case \"verifyEmail\":\n navigate(\"/auth/verify/email/\".concat(oobCode));\n break;\n case \"verifyAndChangeEmail\":\n navigate(\"/auth/verify/email/\".concat(oobCode));\n break;\n }\n }\n }, [location]);\n return (react_1.default.createElement(doshx_controls_web_1.ScreenContainerControl, null,\n react_1.default.createElement(doshx_controls_web_1.ShimmerBoxControl, null)));\n};\nexports.FirebaseAuthRedirectPage = FirebaseAuthRedirectPage;\n","export default __webpack_public_path__ + \"images/768223f759dcd0397fc3015b36385fb8.jpg\";","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VerifyEmailPage = void 0;\nvar doshx_controls_web_1 = require(\"doshx_controls_web\");\nvar react_1 = __importStar(require(\"react\"));\nvar react_router_dom_1 = require(\"react-router-dom\");\nvar apply_action_code_1 = require(\"../../../api/calls/user/authentication/apply_action_code\");\nvar VerifyEmailPage = function () {\n var params = (0, react_router_dom_1.useParams)();\n var _a = (0, react_1.useState)(true), isLoading = _a[0], setIsLoading = _a[1];\n var resetCode = params.resetCode;\n var _b = (0, react_1.useState)({\n title: \"\",\n message: \"\",\n }), responses = _b[0], setResponses = _b[1];\n (0, react_1.useEffect)(function () {\n if (resetCode) {\n (0, apply_action_code_1.apply_action_code)({\n code: resetCode,\n }).then(function (response) {\n if (response.success) {\n setResponses({\n title: \"Email Verified!\",\n message: \"Your email has been successfully verified! You now have full access to your account and all its features\",\n });\n setIsLoading(false);\n }\n else {\n setIsLoading(false);\n setResponses({\n title: \"Email Verification Failed!\",\n message: response.message,\n });\n }\n });\n }\n }, [resetCode]);\n return (react_1.default.createElement(\"div\", { className: \"\" },\n react_1.default.createElement(\"div\", { className: \"relative\" },\n react_1.default.createElement(\"div\", { className: \"flex flex-row justify-center\" },\n react_1.default.createElement(doshx_controls_web_1.ScreenContainerControl, null, isLoading ? (react_1.default.createElement(doshx_controls_web_1.ShimmerBoxControl, null)) : (react_1.default.createElement(\"div\", null,\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: responses.title, textColor: \"text-black\", size: \"2xlarge\", bold: true }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: responses.message, textColor: \"text-secondary\", size: \"medium\", bold: true }))))))));\n};\nexports.VerifyEmailPage = VerifyEmailPage;\n","export default \"data:audio/mpeg;base64,SUQzAwAAAAAFEFRDT04AAAALAAAB//4oADEAMgApAFRZRVIAAAALAAAB//4yADAAMgAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//qzQAKWpoALTzFIaeMy0EymKQ08ZloJNMUdLBhrQTMYo2TxlWn//////////////////////////////////////iWSONuNtxEABLciGNKtOlzvhatkKCzFGVYq0qK2CICFVkz6+Pu3rP23e0en+62Ffvu/1/u7tMcggiklvfStpxZadbz3XDyd1k+RfAan//vqqQAMde8DunhOQVRyyip8aGnIDPk9pQhJRCnmVediHrv/xiby6x/K2p7fRHE2pTIEnj16RkTMOgsHwo86XUKNC6NAqy/UtB31VUzIABmTc8yf0mPZpZHGWrDMMIyXlGQUQA1UKNqaJis7dHY21TO6oUWldzailGuvYKJj1OrOxTCQ8lQ8olJR+QLl1PvqmTq3+x2KP6tqqoADyjxdn1GaO3Wpi1GDAqeI//bwM6sbRd3abkRqwdmGoU+GmCMMfIcBuxJ1jdIDMIUoZ5D0PLUwYMoePvHmM865AndCRYKq//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////qzQCDNpoALkDBGyega0EnmCOk8w1pJGK0dh5hrQSGVo7DzDWj/////////////////////////////////////////////////f++6qpABqo8dz6jNHhQoGsSgUNWPb/3dCszXw/d2O+RqwM2KhT4acNj5DgN20KsbyAzQpQzyHoeWpgwmZdv3tqduc73fm7yWRXhbjaTaquQBMC8qYy4rghqvunXGDfQbHNm8cbUnxv9zPS3qIvDe8tWXjxYquTHhxLpDREZGRDY4OJguCjVBsDGu0iSW598mgr9ZbjaTaquQBMC8qYy4rghqvunXGDfQbHNm8cbUnxv9zPS3qIvDe8tXvHixVcmPDiXSGiIyMiGxwcTBcFGw2BjXaRJLGvvk0FfrEkjjbdf6AExKE2pFa1O2htVOo5IKmrezbdKIpebGN++Zzv5FsKoK1IMGdHdiIjImxDdp1WN6sQQzxi8iGMOu+9vi2v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////qxQIVbpoAMijBH4eYa0ENGCPw8w1oHbCsZB6TEiOsFYyD0mJH//////////////////////////////////////////////////////////////////////////////////////////8SSONt9/oATEoTakVrY7aG1U6jkgqat7Nt6iKXmxkfvmc7+RbCqCtTGDOjuxERkTYhu06rG9WIjVGLyIYw6772+La6zq6V/AEmriHC+o3kiNZkLgmYiAzy+6T7yZ8yIJDRc5o3fSQX7xnI8wmorcmFRufJgzNlMLZc7XMv27WR1dK/gCTVwzhfQF9AjWZEYJmDQGeb3SfeTPmRBNYu5o3fSQX7xnM5gOqnpNNG58mDP5Viybnaa5+/1lynG00lVUgADQXbbI/YULXLxsDV+EETLRv7tCJDXLczuc9Pb4l3mGs01UPPARZEadOOLMIhMQHyxUjMOAMJUahL0f///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+rNAh2qnAAuVIsdh4xpQQkRY7DzDSgmMnSGnmGlJMhOkNPMNKf////////////////////////////////////////////////lONtJKqpAAGgu22SPBQtteNgp7g7Co+NFfe/psIjE0tzNc56e3xPeYazLqh48CLIjTrnFoZCYgPlirJhw2EqNRX9AtkjjjbcbRAAmEGCuEAOdQNMi89FnX8PPWg7REpG38XVvoVbPNg8bgS6NiqKYQbwek5JTdip0OrWXX5/h0qOA9B0wpax59v/+554AfBbJHHG242iABMIMFcIAc6gaZF56LOv4eetB2iJSNv4urfQq2ebB43Al0bFUUwg3g9JySm7FTodWsuvz/DpUcB6DphS1jzzP/+554AfAvqlpVQAGMWE/zFNJeLBGizMEZwoRCCnl55AgMSFJ8MFAQAdzKIRFlBj+Q8UTtwk5FtK1SVIxrIshvv8M6eyTIzdX/vOzJZmbpb7Cm2DM+ub//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+rNA4rSmgAr2RUZJ4xriUEioyTxjXEngvRuHjMtBPBejcPGZaP///////////////////////L6paVUABjFhP8xTSXiwRoszBGcKEQgp5eeQIDEhSfDBQEAHcyiERZQY/kPFE7cJORbStUlSMayLIb7/DOnskyM3V/7zsyWZm6W+wptgzPrmDkbSRNVQACiEjEaD6CGGgjiEKSLFgIhlgD4m4/nkZDmo1dLn/Nr6zbH+8j5u6Xrubt/4fkTtREzT5DnjCq2il2DhITgL6pIKwvGJiIc/FQ5G0kTVUAAohIxGg+ghhoI4hCkixYCIZYA+JuP55GQ5qNXS5/za+s2x/vI+bul67m7f+H5E7URM0+Q54wqtopdg4SE4C+qSCsLxiYiHPxUSySSRyNtogARCeK5ND7K5gip70hgQNRgY7aSSXkCNp+cpq59u9EIjh1pvCU4QUrT7L9J8Giw7n2mPTIjd9jNIp2Gw/a1GRIZU///6WmXJ/q7/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+rNANHCmgArpNEhp5hrSUSaJDTzDWknonR2HpGlJPROjsPSNKf////////////////////+JZJJI5G20QAIhPFcmh9lcwRU96QwIGowMdtJJLyBG0/OU1c+3eiERw603hKcIKVp9l+k+DRYdz7THpkRu+xmkU7DYftajIkMqf//9LTLk/1dCskbbdVSAEuB+AUo4AmTppOzlhAkSRAptrtU2IzUZoUoTUdKQJo9FigTf9ZChupFUt63Ie7k8nArn5gLM3RzNHNc26hxgi9/77quf33+dwKyRtt1VIAS4H4BSjgCZOmk7OWECRJECm2u1TYjNRmhShNR0pAmj0WKBN/1kKG6kVS3rch7uTycCufmAszdHM0c1zbqHGCL3/vuq5/ff53ISWSSN/foAKM3iKxdm7NJvDQqOJOAQGg+NhQ4IwBlybtyn8y9pkyNFQngyv5nYfM0RBDMUKn0zGYqFwUWDwAGigSA6hGfOSySyECqnuu0fL///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+rNA5+6mgArvJMfjCRpQT+SY/GEjSgn0oSWsJGlBPpQktYSNKP/////////////////////+JLJJG/v0AFGbxFYuzdmk3hoVHEnAIDQfGwocEYAy5N25T+Ze0yZGioTwZX8zsPmaIghmKFT6ZjMVC4KLB4ADRQJAdQjPnJZJZCBVT3XaPlxtbbrZLJI0AUFVAHLZE78clNDSZoDRwekYDIEkQqkk0UfO7qNNc2g48xTBhJmNOQ4t463cktIodBGxOdCqDouDrQcPPDLQgmbD2kOoG+htY2tt1slkkaAKCqgDlsid+OSmhpM0Bo4PSMBkCSIVSSaKPnd1GmubQceYpgwkzGnIcW8dbuSWkUOgjYnOhVB0XB1oOHnhloQTNh7SHUDfQ2sXaW2WySSNAAORNUQYYSJsQttkxeKDtnCO442dqY54PVyYSG8y8Y9tvTOOqyKaZFrqdT0eEeGT9OU3plYQJCX7XvyPDsxWwVGf////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+rNArEKmgAsbMMlp6BrQSGYZLT0DWgoQxymsDGthQhjlNYGNbP/////////////////////////////i7S2y2SSRoAByJqiDDCRNiFtsmLxQds4R3HGztTHPB6uTCQ3mXjHtt6Zx1WRTTItdTqejwjwyfpym9MrCBIS/a9+R4dmK2Cowb/7a7SSOEACUFuQhwZ5wZTFaZ+JyhEiK4sKW8KuLUOAs/Uxa8i5A4crEf6b55IMVYKbmdWrFplgZoCEDEKUXUa4QUrz4SQo6dCgr2HVU5KTG/+2u0kjhAAlBbkIcGecGUxWmficoRIiuLClvCri1DgLP1MWvIuQOHKxH+m+eSDFWCm5nVqxaZYGaAhAxClF1GuEFK8+EkKOnQoK9h1VOSk8HmYiIiI+2uaAGRwlKGB1qTTIIdnaaTz51oiKz1NttcF2zDBAcJHF/iFs+jubfpZy+7SbeYhTGNjniKeae5m0OipGCEc8hS66uxg04xvvq/TMxMTPh7t9U+W30S//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+DzMREREfbbNADI4SlDA61Jr/+rNA8AmmgAnfMUx7CULaXQYJj2EoW0s4wy3sJMthaRglvYSZbGQQ7O00nnyrREVnqbba4LtmGCA4SOL/ELZ9Hc2/Szl92k28xCmMbHPEGONo+5LtBaEJGCEc8hS66uyBpwF99X6ZmJiZ8e7fVPlt9EoPEPDu7vrbaiAEGolGFPQXBK84JwlMNS1UyiSSD80ShZGKFVtiimGQzkcez9l/k5mNnxk/PK1q3Jpt0o2JYUSONne2EXSXISgZ91EgxuvFGJqW6Sa4NZtua0A8Q7u7u+ttqIAQaiUYU9BcErzgnUZlVlCZRJJB+aJQsjFCq2xRTDIlYjCTP2X+TmY2eCk6zCtatydbdKNiWFEjpneyBHpLkJQM+6igxoGUp77CVY2VdLv0uzEf/7bbW2yIgBBWgv80mXvFL5FKrtW8shy2JPIdzD7bdKwrcpJo769VTazbt3i2/e0O2UdmLqc9VTNMZdOMjLp/0YPlyvksrI87noXM8tv/P/Z/df//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+rNAwVOmgArjLkrrBjLaUwXJXWDGW0nQwSWsGMtBOxgktYMZaP///////////////////+P//ttrbZEQAgrQX+aTF3in5FTVZml0hhbEpke5h7ttlSVWUkVHvXrd9s17d/W/e0O3qsxeznqjiipjHpxkZdP+jB4XK6JRrI0dT1DCfLb/z/8/o1lttssklaAImv6yFRW/QYfLaecoS7wp0tFkri2R/8LkqvBs99bKztG7Z77XfN899x7he75y/ud8mYLy3MapCoZQoMaXTFRaLlHdym7bFDWW22yySVoAia/rIVFb9Bh8tp5yhLvCnS0WSuLZH/wuSq8Gv31srO0btnvtd83z32XuF7vnL+53yUYLi3MapCoZQoMaXTFRaLlHdym7bFIb7fTaySOEAANOk+q353NkV+/WU4diu/Rw8/cHHbue1fWmqbzi0kPzWFZ+lTe6xgeWcK+rpQJhAIDctxLAoMvehmlDx1tGzq//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////G+302skjhAADTpPqt+dzZFfv1lOHYrv/+rNApeWmgAmwMUpp5hrYR4YpTTzDWwz4wymnsMtpnxhlNPYZbfRw8/cHHbue1fWmqbzi0kPzWFZ+lTe6xgeWcK+rpQJhAIDctxLAoMvehmlDx1tGzqG//++2skhAAK9zVptga4BmA3hIyjHgpkgDASC4sc0SCYXhYweIRo4nfYhNxALGg0H4sHSByZ7747D2lNmxgLL3n7H3DCGwTkimYWkCI4TJC5hR/P6BfAGTHq8v6zZUGtPif0j83/r5Bv//vtrJIQACvc1abYGuAZgN4SMox4KZIAwEguLHNEgmF4WMHiEaOJ32ITcQCxoNB+LB0gcme++Ow9pTZsYCy95+x9wwhsE5IpmF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TBxDgDQHIGoHQ2mIqV525QwxMByGIO80K5NtjUtlTS1GINUHQloCwh6uGQPtFaGBpLZkVSXSbaFUVMkYrmWAwhiSKCAZMSPhQMqbs0UtmK6Qjxx3kayKDMkjtawwIWCiMHB0ROQy2SqYXJHLro24JQhFaW+O//qzQOVyiQAEmEdP6fhK6JMI6f0/CV0SfQFBp+Hrsk+gKDT8PXY1CnzRZNZaF54NSfHQEwixIcOWGgUk5HbJY2iQElfhGU4A8lgI8V4SZYqTlnkTb0uSglOnUknulFKtFEFdMGKZK8XG0JZgoVEVhlG3J3YrO1qZ9oaldQvyGjqThzPA1MUbwalG7jPrT0nbnj943XiUfaisLVH2yv3FhpRPMz5mwzbrInldGgq1cMmsbhWjPtxn1rXexbapvOrZr7YhBRaw59Y1zK4Za5YKScjtksbRICSvwjKcAeSwEeK8JMsVJyzyJt6XJQSnTqST3SilWiiCumDFMleLjaEswUKiKwyjbk7sVna1M+0NSuoX5DR1Jw5ngamKN4NSjdxn1p6Ttzx+8brxKPtRWFqj7ZX7iw0onmZ8zYZt1kTyujQVauGTWNwrRn24z61rvYttU3nVs19sQgotYc+sa5lcMtctASNWaJmfvrEQC3ZQN+i0hcqDiQdIHASIQXCxTmXJETQhiDRmSAkYtcACyAJr44IgyjYlm3JIYEgspZeobMPm4ts9LxsPLuLTw44/dZAKSwtMSNm0OEa0uGSMSkp7Eercez1V47c2x15rn49H21nsmzTRZKHjb2AJw288o3QRin///////////////////////////////////////////////////////////////////////////4CRqzRMz99YiAW7KBv0WkLlQcSDpA4CRCC4WKcy5IiaEMQaMyQEjFrgAWQBNfHBEGUbEs25JDAkFlLL1DZh83FtnpeNh5dxaeHHH7rIBSWFpiRs2hwjWlwy//qzQMRRiIAFwTHLexli2H8mOW9jLFsNnMcr7GDLabOY5X2MGW1GJSU9iPVuPZ6q8dubY681z8ej7az2TZposlDxt7AE4beeUboIxQENWh3h41tkJAU5SDRSEBBwNgt1SF3iFy90jCwYAkIVEgC2yFixFMAoFlMpa7TwMv9XsgL8pkwdMZxmvPJ5g6O6osz4IMMnDUXqS3l3cbVLc1BoovMiLufb1jNG9+5j/q28vueX94h2FCmr6x4CGrQ7w8a2yEgKcpBopCAg4GwW6pC7xC5e6RhYMASEKiQBbZCxYimAUCymUtdp4GX+r2QF+UyYOmM4zXnk8wdHdUWZ8EGGThqL1Jby7uNqluag0UXmRF3Pt6xmje/cx/1beX3PL+8Q7ChTV9Y8El11ssbbiICwhM8FEZAKMImJMK0DHDExCBmiPIgGrlLCB5SoA27LnUzpY1NvbHYhCo9TZzNLzsHytz70LuRoTMXTK2QkyJiv5djOpCoKVkgsceJnDXLOn5P6oFyEbgqr/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8SXXWyx//qzQJRypoAKQjtIaxga0F/HaQ1jA1oKTL8hjDBrSUmX5DGGDWm24iAsITPBRGQCjCJiTCtAxwxMQgZojyIBq5SwgeUqANuy51M6WNTb2x2IQqPU2czS87B8rc+9C7kaEzF0ytkJMiYr+XYzqQqClZILHHiZw1yzp+T+qBchG4KqDttsrn/8gFBMHhgaCAgwKQBSMeBU0CMqAU+Shj+qBSei3er//G7Se7M8m5kpWsXVfKERkZNPTKGVudBICJcivXXyot3d4P65qXKtE7D73/1uv6HbbZXP/5AKCYPDA0EBBgUgCkY8CpoEZUAp8lDH9UCk9Fu9X/+N2k92Z5NzJStYuq+UIjIyaemUMrc6CQES5FeuvlRbu7wf1zUuVaJ2H3v/rdf3F2ltkkkkjQAA8UbkaJ2IFOi9S+xNB9qJhi6h2KShThnmRCDZznDO44WyCLB2NDDkBlgVMKvZjwizzbq/og37BvvvX/f/7Lfbf/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////qzQA+ApoALlxNJaekZwkhiaS09IzhJGIUdh5ipASMQo7DzFSD//////////////////////////////////////////////////i7S2ySSSRoAAeKNyNE7ECnRepfYmg+1EwxdQ7FJQpwzzIhBs5zhnccLZBFg7GhhyAywKmFXsx4RZ5t1f0Qb9g333r/v/9lvtsSNttpVVIAFRyBLE0Q1lYnbjJp4oDWQvUYlZUP0ZmK1lGFFWdjpRECaMmTdjqRmVhgvOSQsCYAUkQFhIfe+oRAPiiBSTszcW5QSNttpVVIAFRyBLE0Q1lYnbjJp4oDWQvUYlZUP0ZmK1lGFFWdjpRECaMmTdjqRmVhgvOSQsCYAUkQFhIfe+oRAPiiBSTszcW5TFtsrkkckkQAlKRBgonB7q2IcgevcuwxqR+buqjMagl6GHou1TnlJyoTL3K5gYYUXOp7uH9skEEUe8GIicnn3duLh2OpBfDgBcPxAAEBYaXMjl3DsG48ggXF0Qc9zy+WLjyErSJe53//d7/RJLaH///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////4ttlckjkkiAEpSIMFE4PdWxDkD17l2GNSPzd1UZjUEvQw9F2qc8pOVCZe5XMDDCi51Pdw/tkggij3g//qzQMcWpoAIl1BI6wNDYm5qCR1gaGxMvT8jp5jNiZen5HTzGbHEROTz7u3Fw7HUgvhwAuH4gACAsNLmRy7h2DceQQLi6IOe55fLFx5CVpEvc7//u9/okltDxbbJI5HJI0ACGUgL9Rop2n54D/V/q+exbJpv9x9vTJc/Ti377//dondtd2Sh/EPn5x05GMX29bERJvKOpLyzEM/lWOCowDUm5rPXuUZ7y7JV+9Z9c1HtmNu685///3n/+iRUX+T9i22SRyOSRoAEMpAX6jRTtPzwH+r/V89i2TTf7j7emS5+nFv33/+7RO7a7slD+IfPzjpyMYvt62IiTeUdSXlmIZ/KscFRgGpNzWevcoz3l2Sr96z65qPbMbd15z///vP/9Eiov8n7LjbSTVVSAIiMESavOnbp79SkAwXHapjrBKBAaFM7vU997n0yhCGkJirZp61bI8/XjDCxANhkXcsYYAIxSiihVd9f2VUf//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////qzQHP9poAL6yhHYwMaUERlCOxgY0oIsLEfjAxrQRYWI/GBjWj////////////////////////////////////////////////////////////////lxtpJqqpAERGCJNXnTt09+pSAYLjtUx1glAgNCmd3qe+9z6ZQhDSExVs09atkefrxhhYgGwyLuWMMAEYpRRQqu+v7KqBLJG23/eoEaX4Rmm1AmCxKXR+3Nw+gyLFIWY44UiMUMcrmZF6SlpXcXtw6fsvJkmT4KLzJpIdWQTQqmsVI52Uq19FFy2pEskbbf96gRpfhGabUCYLEpdH7c3D6DIsUhZjjhSIxQxyuZkXpKWldxe3Dp+y8mSZPgovMmkh1ZBNCqaxUjnZSrX0UXLakBoZ4dmZrdbYwBUL5vRHQy6xIpt5ZY+4UIAD0k5ao11Yo9m6I5QIr2029b+Zu8rZEQhBkaGrtxHJ+8OKxNqb9I1F5MHDQOETgjNre1BWA7XDH2v6LJH////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////qzQIVtpoALKilKew8a0FVFKU9h41oJKKkdjCxrQSUVI7GFjWj////////////////////////////////BoZ4dmZrdbYwBUL5vRHQy6xIpt5ZY+4UIAD0k5ao11Yo9m6I5QIr2029b+Zu8rZEQhBkaGrtxHJ+8OKxNqb9I1F5MHDQOETgjNre1BWA7XDH2v6LJEORuNp1VICsJMeC6WAY45TrT9ullQBRNTbZ956l+Ik02uORy2Y/yNYc4M+ZtIVsiF8dSXjKppSOQYsFQ+4sLKsEipJDnLuHdzKw5G42nVUgKwkx4LpYBjjlOtP26WVAFE1Ntn3nqX4iTTa45HLZj/I1hzgz5m0hWyIXx1JeMqmlI5BiwVD7iwsqwSKkkOcu4d3Mrf/7qrpAKgpdDz52qmErjmrVUYFFGSkJBXxpS51V1HYM8PS9hKKlQz1EKMGNFqC/yI5/lHhIcpMlE9zJj5PRbvUquv9u0/ZW/P1////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////qzQD1+poALny9HSwUa0kll6Olgo1pI/KUdh5hrQR+Uo7DzDWj///////////////////////////////////////////////////7//dVdIBUFLoefO1Uwlcc1aqjAooyUhIK+NKXOquo7Bnh6XsJRUqGeohRgxotQX+RHP8o8JDlJkonuZMfJ6Ld6lV1/t2n7K35+jJGmmnVUgAfwiA01DCMJCG6DNvjSknKyEmQx29+Yr+Py/xRUkxEyhKn7cW6MoI4RXJdOQajyxMHQsREjYjMtSRWFlMTsR1a0GSNNNOqpAA/hEBpqGEYSEN0GbfGlJOVkJMhjt78xX8fl/iipJiJlCVP24t0ZQRwiuS6cg1HliYOhYiJGxGZakisLKYnYjq1oP//qqpABYa1XHjWeNmZAdLFObai5mSCnsd7ujx1phvgFtGZ/6oGq06mEgHrAuyIXSnba8Nz0c/7/22v37tX/+d3Z8v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////qzQOBRpoAL9RPHSyYZwkQieOlkwzhIlI0dh5hpSRWRo7DzDSn/////////////////////////////////////////////////////////////////+f//1VSACw1quPGs92ZkB0sU5tqLmcIKcGzvd0eOtMF8AtozP/VA1WnUwkA9YF2RC6U7ZTw3PRz/v/ZZv37tX/+M7s+UxttppVVIAL1Sh/GiusRYWo5I8fat33Vp1zmZu7Ts+0iSyZnG+mTlMiPddJRm2OZJitmnHBVFonB317arMVu64r3r/7+GNttNKqpABeqURY0V1iLC1HJHj7nd9pWnXpmruzdk7SJOTM4309yBZEe60pRusMZJitmnDAqiWrg61e2umK1+aK96/+1wDkbbbf/cAAcjXfLhVop+rqSzUGEmDQe0hmcGjiw6V1iuhdHwML7oDhQwr3W00bSEXz7kd5vI6WNMWRIQh8KlUiJZx4WPHPz/o///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////VEFHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjAyMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8=\"","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CategoryProductsPage = void 0;\nvar doshx_controls_web_1 = require(\"doshx_controls_web\");\nvar pro_light_svg_icons_1 = require(\"@fortawesome/pro-light-svg-icons\");\nvar pro_solid_svg_icons_1 = require(\"@fortawesome/pro-solid-svg-icons\");\nvar react_1 = __importStar(require(\"react\"));\nvar react_redux_1 = require(\"react-redux\");\nvar react_router_dom_1 = require(\"react-router-dom\");\nvar products_1 = require(\"../../../api/calls/product/products\");\nvar main_1 = require(\"../../../reducers/slices/main\");\nvar selection_1 = require(\"../../../reducers/slices/selection\");\nvar add_product_thunk_1 = require(\"../../../reducers/slices/basket/thunks/add_product_thunk\");\nvar symbols_1 = require(\"../../../constants/symbols\");\nvar favourite_product_1 = require(\"../../../api/calls/product/favourite_product\");\nvar get_favourite_products_1 = require(\"../../../api/calls/product/get_favourite_products\");\nvar CategoryProductsPage = function () {\n var params = (0, react_router_dom_1.useParams)();\n var level = params.level, categoryId = params.categoryId, categoryName = params.categoryName;\n var dispatch = (0, react_redux_1.useDispatch)();\n var navigate = (0, react_router_dom_1.useNavigate)();\n var user = (0, react_redux_1.useSelector)(function (state) { return state.userState; }).user;\n var _a = (0, react_1.useState)([]), products = _a[0], setProducts = _a[1];\n var _b = (0, react_1.useState)(true), isLoadingProducts = _b[0], setIsloadingProducts = _b[1];\n var _c = (0, react_1.useState)([]), favouriteProducts = _c[0], setFavouriteProducts = _c[1];\n var _d = (0, react_1.useState)(1), currentPage = _d[0], setCurrentPage = _d[1];\n var _e = (0, react_1.useState)(0), totalRecords = _e[0], setTotalRecords = _e[1];\n var _f = (0, react_1.useState)(10), recordsPerPage = _f[0], setRecordsPerPage = _f[1];\n (0, react_1.useEffect)(function () {\n init();\n }, [user]);\n var init = function () { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(user === null || user === void 0 ? void 0 : user.uid)) return [3 /*break*/, 1];\n (0, get_favourite_products_1.get_favourite_products)().then(function (response) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!response.success) return [3 /*break*/, 2];\n return [4 /*yield*/, setFavouriteProducts(response.content)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [2 /*return*/];\n }\n });\n }); });\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, setFavouriteProducts([])];\n case 2:\n _a.sent();\n _a.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n }); };\n var fetchProducts = function () { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, (0, products_1.getProducts)({\n category_id: categoryId,\n page: currentPage.toString(),\n size: recordsPerPage.toString(),\n }).then(function (response) {\n if (response.success) {\n var list = response.content.product_list;\n setTotalRecords(parseInt(response.content.count));\n setProducts(list.map(function (product) {\n return {\n _id: product._id,\n title: product.title,\n image: product === null || product === void 0 ? void 0 : product.image_url,\n loaderColor: \"text-primary\",\n shadowColor: \"shadow-shadows\",\n borderColor: \"border-none\",\n amount: product === null || product === void 0 ? void 0 : product.price,\n amountColor: \"text-secondary\",\n discountLabel: (product === null || product === void 0 ? void 0 : product.on_promotion) ? \"ON PROMOTION\" : \"\",\n discountAmount: (product === null || product === void 0 ? void 0 : product.on_promotion) ? product === null || product === void 0 ? void 0 : product.promotion_price : null,\n pid: product === null || product === void 0 ? void 0 : product.pid,\n status: product === null || product === void 0 ? void 0 : product.status,\n sku: product === null || product === void 0 ? void 0 : product.sku,\n sub_title: product === null || product === void 0 ? void 0 : product.sub_title,\n description: product === null || product === void 0 ? void 0 : product.description,\n instruction: product === null || product === void 0 ? void 0 : product.instruction,\n estimated_delivery_time: product === null || product === void 0 ? void 0 : product.estimated_delivery_time,\n promotion_price: product === null || product === void 0 ? void 0 : product.promotion_price.toString(),\n on_promotion: product === null || product === void 0 ? void 0 : product.on_promotion,\n outOfStock: (product === null || product === void 0 ? void 0 : product.status) != \"AVAILABLE\" ? true : false,\n colors: {\n discount: {\n textColor: \"text-white\",\n amountColor: \"text-red-500\",\n backgroundColor: \"bg-red-500\",\n },\n extraText: {\n textColor: \"text-success\",\n },\n outOfStock: {\n textColor: \"text-white\",\n backgroundColor: \"bg-gray-400\",\n },\n },\n favorite: {\n icon: (favouriteProducts === null || favouriteProducts === void 0 ? void 0 : favouriteProducts.find(function (x) { return x.pid === product.pid; })) ? pro_solid_svg_icons_1.faHeart : pro_light_svg_icons_1.faHeart !== null && pro_light_svg_icons_1.faHeart !== void 0 ? pro_light_svg_icons_1.faHeart : pro_light_svg_icons_1.faHeart,\n iconColor: \"text-red-500\",\n onClick: function () {\n if (user.uid) {\n (0, favourite_product_1.favorite_product)({\n product_id: product._id,\n }).then(function (response) {\n if (response.success) {\n init();\n dispatch((0, main_1.setMessageModal)({\n title: \"Success\",\n messages: [\"\".concat(response === null || response === void 0 ? void 0 : response.message)],\n }));\n }\n else {\n dispatch((0, main_1.setMessageModal)({\n title: \"Failed\",\n messages: [\"\".concat(response === null || response === void 0 ? void 0 : response.message)],\n }));\n }\n });\n }\n else {\n dispatch((0, main_1.setDrawerPage)(\"login\"));\n dispatch((0, main_1.setDrawerOpen)(true));\n }\n },\n },\n };\n }));\n setIsloadingProducts(false);\n }\n else {\n dispatch((0, main_1.setMessageModal)({\n title: \"Something went wrong!\",\n messages: [response.message],\n }));\n }\n })];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); };\n (0, react_1.useEffect)(function () {\n fetchProducts();\n }, [currentPage, categoryId]);\n (0, react_1.useEffect)(function () {\n if (favouriteProducts && favouriteProducts.length > 0) {\n fetchProducts();\n }\n }, [favouriteProducts]);\n return (react_1.default.createElement(\"div\", null,\n react_1.default.createElement(doshx_controls_web_1.ProductsBigControl, { currencySymbol: symbols_1.currencySymbol, category: {\n name: decodeURI(categoryName !== null && categoryName !== void 0 ? categoryName : \"Unset\"),\n color: \"text-black\",\n }, \n // textColor=\"text-black\"\n // amountColor=\"\"\n // ratingColor=\"\"\n products: products, onClick: function (product) {\n dispatch((0, selection_1.setSelectedProduct)(product));\n navigate(\"/product/\".concat(product._id));\n }, pagination: {\n currentPage: currentPage,\n totalRecords: totalRecords,\n recordsPerPage: recordsPerPage,\n onClick: function (pageNumber) {\n setCurrentPage(pageNumber);\n },\n }, canIncrement: true, button: {\n label: \"Add to Cart\",\n borderColor: \"border-secondary\",\n backgroundColor: \"bg-secondary\",\n textColor: \"text-white\",\n onClick: function (product) {\n dispatch((0, add_product_thunk_1.add_product_thunk)(__assign(__assign({}, product), { quantity: 1 })));\n },\n } })));\n};\nexports.CategoryProductsPage = CategoryProductsPage;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WeatherPage = void 0;\nvar react_1 = __importStar(require(\"react\"));\nvar doshx_controls_web_1 = require(\"doshx_controls_web\");\nvar colors_config_1 = __importDefault(require(\"../../../colors.config\"));\nvar react_fontawesome_1 = require(\"@fortawesome/react-fontawesome\");\nvar pro_solid_svg_icons_1 = require(\"@fortawesome/pro-solid-svg-icons\");\nvar weather_1 = require(\"../../api/calls/weather/weather\");\nvar react_redux_1 = require(\"react-redux\");\nvar WeatherPage = function () {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n var _o = (0, react_1.useState)(null), weather = _o[0], setWeather = _o[1];\n var _p = (0, react_1.useState)(true), isLoading = _p[0], setIsLoading = _p[1];\n var user = (0, react_redux_1.useSelector)(function (state) { return state.userState; }).user;\n (0, react_1.useEffect)(function () {\n (0, weather_1.getWeather)({\n location: user.location,\n }).then(function (response) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, setWeather(response)];\n case 1:\n _a.sent();\n setIsLoading(false);\n return [2 /*return*/];\n }\n });\n }); });\n }, [user]);\n return (react_1.default.createElement(\"div\", { className: \"flex flex-col gap-8\" }, isLoading || !weather ? (react_1.default.createElement(doshx_controls_web_1.ShimmerBoxControl, null)) : (react_1.default.createElement(\"div\", { className: \"w-full -z-10 \" },\n react_1.default.createElement(\"div\", { className: \"bg-primary\" },\n react_1.default.createElement(doshx_controls_web_1.ScreenContainerControl, null,\n react_1.default.createElement(\"div\", { className: \"flex flex-col items-center\" },\n react_1.default.createElement(\"div\", { className: \"w-full flex flex-col \" },\n react_1.default.createElement(\"div\", { className: \"py-4 flex flex-col items-center gap-2\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"\".concat((_a = weather === null || weather === void 0 ? void 0 : weather.location) === null || _a === void 0 ? void 0 : _a.name, \", \").concat((_b = weather === null || weather === void 0 ? void 0 : weather.location) === null || _b === void 0 ? void 0 : _b.country), size: \"medium\", textColor: \"text-white\", center: true }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"\".concat((_c = weather === null || weather === void 0 ? void 0 : weather.current) === null || _c === void 0 ? void 0 : _c.temp_c, \" \\u00B0C\"), size: \"3xlarge\", textColor: \"text-white\", center: true }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"\".concat((_e = (_d = weather === null || weather === void 0 ? void 0 : weather.current) === null || _d === void 0 ? void 0 : _d.condition) === null || _e === void 0 ? void 0 : _e.text), size: \"medium\", textColor: \"text-white\", center: true }),\n react_1.default.createElement(\"div\", { className: \"flex flex-row gap-10\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"\".concat((_f = weather === null || weather === void 0 ? void 0 : weather.forecast) === null || _f === void 0 ? void 0 : _f.forecastday[0].day.mintemp_c, \" \\u00B0C / \").concat((_g = weather === null || weather === void 0 ? void 0 : weather.forecast) === null || _g === void 0 ? void 0 : _g.forecastday[0].day.maxtemp_c, \" \\u00B0C\"), size: \"medium\", textColor: \"text-white\", center: true }))))))),\n react_1.default.createElement(\"div\", { className: \"-mt-[1px]\" },\n react_1.default.createElement(\"svg\", { viewBox: \"0 0 20 1.5\", xmlns: \"http://www.w3.org/2000/svg\" },\n react_1.default.createElement(\"path\", { d: \"M 0 0 L 20 0 Q 10 2 0 0\", fill: colors_config_1.default.primary }))),\n react_1.default.createElement(\"div\", { className: \"flex flex-col gap-4 p-8\" },\n react_1.default.createElement(doshx_controls_web_1.BoxControl, { className: \"bg-primary\", variant: \"filled\", addPadding: false },\n react_1.default.createElement(\"div\", { className: \"flex flex-row items-center gap-4 p-2\" },\n react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: pro_solid_svg_icons_1.faCalendar, size: \"1x\", color: \"white\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"FORECAST\", textColor: \"text-white\" })), (_h = weather === null || weather === void 0 ? void 0 : weather.forecast) === null || _h === void 0 ? void 0 :\n _h.forecastday.map(function (day, index) {\n return (react_1.default.createElement(\"div\", { key: index },\n react_1.default.createElement(doshx_controls_web_1.DividerControl, { orientation: \"horizontal\", addPadding: false }),\n react_1.default.createElement(\"div\", { className: \"flex flex-row justify-between p-2\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"\".concat(doshx_controls_web_1.Utilities.formatDateTime(day.date, \"dddd\")), size: \"small\", textColor: \"text-white\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: day.day.condition.text, textColor: \"text-white\", size: \"small\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \" \".concat(day.day.mintemp_c, \" \\u00B0C / \").concat(day.day.maxtemp_c, \" \\u00B0C\"), textColor: \"text-white\", size: \"small\" }))));\n })),\n react_1.default.createElement(doshx_controls_web_1.BoxControl, { className: \"bg-white\", variant: \"filled\", addPadding: false },\n react_1.default.createElement(\"div\", { className: \"grid gap-4 grid-cols-1 lg:grid-cols-4\" },\n react_1.default.createElement(\"div\", { className: \"flex flex-col justify-center rounded-md bg-indigo-400 py-2\" },\n react_1.default.createElement(\"div\", { className: \"flex flex-row justify-center items-center gap-2\" },\n react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: pro_solid_svg_icons_1.faSun, size: \"1x\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"UV INDEX\", textColor: \"text-white\" })),\n react_1.default.createElement(\"div\", { className: \"\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"\".concat((_j = weather === null || weather === void 0 ? void 0 : weather.current) === null || _j === void 0 ? void 0 : _j.uv), size: \"4xlarge\", textColor: \"text-white\", bold: true, center: true }))),\n react_1.default.createElement(\"div\", { className: \"flex flex-col justify-center rounded-md bg-indigo-400 py-2\" },\n react_1.default.createElement(\"div\", { className: \"flex flex-row justify-center items-center gap-2\" },\n react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: pro_solid_svg_icons_1.faSunset, size: \"1x\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"SUNSET\", textColor: \"text-white\" })),\n react_1.default.createElement(\"div\", { className: \"\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"\".concat((_k = weather === null || weather === void 0 ? void 0 : weather.forecast) === null || _k === void 0 ? void 0 : _k.forecastday[0].astro.sunrise), size: \"4xlarge\", textColor: \"text-white\", bold: true, center: true }))),\n react_1.default.createElement(\"div\", { className: \"flex flex-col justify-center rounded-md bg-indigo-400 py-2\" },\n react_1.default.createElement(\"div\", { className: \"flex flex-row justify-center items-center gap-2\" },\n react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: pro_solid_svg_icons_1.faThermometerHalf, size: \"1x\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"FEELS LIKE\", textColor: \"text-white\" })),\n react_1.default.createElement(\"div\", { className: \"\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"\".concat((_l = weather === null || weather === void 0 ? void 0 : weather.current) === null || _l === void 0 ? void 0 : _l.feelslike_c, \" \\u00B0C\"), size: \"4xlarge\", textColor: \"text-white\", bold: true, center: true }))),\n react_1.default.createElement(\"div\", { className: \"flex flex-col justify-center rounded-md bg-indigo-400 py-2\" },\n react_1.default.createElement(\"div\", { className: \"flex flex-row justify-center items-center gap-2\" },\n react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: pro_solid_svg_icons_1.faEye, size: \"1x\" }),\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"VISIBILITY\", textColor: \"text-white\" })),\n react_1.default.createElement(\"div\", { className: \"\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"\".concat((_m = weather === null || weather === void 0 ? void 0 : weather.current) === null || _m === void 0 ? void 0 : _m.vis_km, \" km\"), size: \"4xlarge\", textColor: \"text-white\", bold: true, center: true }))))))))));\n};\nexports.WeatherPage = WeatherPage;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmploymentDetailsPage = void 0;\nvar react_1 = __importStar(require(\"react\"));\nvar employment_1 = require(\"./employment\");\nvar salary_banking_1 = require(\"./salary_banking\");\nvar pay_point_details_1 = require(\"./pay_point_details\");\nvar react_router_dom_1 = require(\"react-router-dom\");\nvar complete_1 = require(\"./complete\");\nvar EmploymentDetailsPage = function () {\n (0, react_1.useEffect)(function () {\n //\n }, []);\n return (react_1.default.createElement(\"div\", { className: \"flex flex-col gap-8\" },\n react_1.default.createElement(react_router_dom_1.Routes, null,\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/\", element: react_1.default.createElement(employment_1.EmploymentDataPage, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/employment-data\", element: react_1.default.createElement(employment_1.EmploymentDataPage, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/paypoint-data\", element: react_1.default.createElement(pay_point_details_1.PayPointDetailsPage, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/banking-data\", element: react_1.default.createElement(salary_banking_1.SalaryBankingDetailsPage, null) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/complete\", element: react_1.default.createElement(complete_1.CompletePage, null) }))));\n};\nexports.EmploymentDetailsPage = EmploymentDetailsPage;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LoanApplicationStart = void 0;\nvar react_1 = __importStar(require(\"react\"));\nvar doshx_controls_web_1 = require(\"doshx_controls_web\");\nvar page_path_1 = require(\"../../components/page_path\");\nvar pro_solid_svg_icons_1 = require(\"@fortawesome/pro-solid-svg-icons\");\nvar get_providers_1 = require(\"../../../../api/calls/loan/get_providers\");\nvar get_branches_1 = require(\"../../../../api/calls/loan/get_branches\");\nvar application_1 = require(\"../../../../api/calls/loan/application\");\nvar react_router_dom_1 = require(\"react-router-dom\");\nvar main_1 = require(\"../../../../reducers/slices/main\");\nvar react_redux_1 = require(\"react-redux\");\nvar get_loan_1 = require(\"../../../../api/calls/loan/get_loan\");\nvar get_basket_1 = require(\"../../../../api/calls/basket/get_basket\");\nvar functions_1 = require(\"../../../../constants/functions\");\nvar disclaimer_1 = require(\"./components/disclaimer\");\nvar steps_1 = require(\"./constants/steps\");\nvar route_names_1 = require(\"../../../../constants/route_names\");\nvar LoanApplicationStart = function () {\n var navigate = (0, react_router_dom_1.useNavigate)();\n var dispatch = (0, react_redux_1.useDispatch)();\n var params = (0, react_router_dom_1.useParams)();\n var loan_id = params.loan_id;\n var _a = (0, react_1.useState)(false), isSaving = _a[0], setIsSaving = _a[1];\n var _b = (0, react_1.useState)(\"\"), loanAmount = _b[0], setLoanAmount = _b[1];\n var _c = (0, react_1.useState)(\"\"), loanTerm = _c[0], setLoanTerm = _c[1];\n var _d = (0, react_1.useState)(\"\"), loanProvider = _d[0], setLoanProvider = _d[1];\n var _e = (0, react_1.useState)(\"\"), loanBranch = _e[0], setLoanBranch = _e[1];\n var _f = (0, react_1.useState)([]), branches = _f[0], setBranches = _f[1];\n var _g = (0, react_1.useState)([]), providers = _g[0], setProviders = _g[1];\n var _h = (0, react_1.useState)(\"\"), loanAmountError = _h[0], setLoanAmountError = _h[1];\n var _j = (0, react_1.useState)(\"\"), loanTermError = _j[0], setLoanTermError = _j[1];\n var _k = (0, react_1.useState)(\"\"), loanBranchError = _k[0], setLoanBranchError = _k[1];\n var _l = (0, react_1.useState)(\"\"), loanProviderError = _l[0], setLoanProviderError = _l[1];\n var _m = (0, react_1.useState)([]), loanTerms = _m[0], setLoanTerms = _m[1];\n // const [isModalOpen, setModalIsOpen] = useState
(false);\n var _o = (0, react_1.useState)(null), activeLoan = _o[0], setActiveLoan = _o[1];\n var _p = (0, react_1.useState)(false), airtimeOnly = _p[0], setAirtimeOnly = _p[1];\n var _q = (0, react_1.useState)({}), activeUser = _q[0], setActiveUser = _q[1];\n var _r = (0, react_1.useState)(\"\"), providerName = _r[0], setProviderName = _r[1];\n //Set uneditable defaults for product loan\n (0, react_1.useEffect)(function () {\n updateDetails();\n }, [activeLoan, branches, providers, loanBranch]);\n var updateDetails = function () { return __awaiter(void 0, void 0, void 0, function () {\n var _i, providers_1, provider, _a, branches_1, branch, virtualProvider, virtualBranch;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!(activeLoan && (activeLoan === null || activeLoan === void 0 ? void 0 : activeLoan.is_product))) return [3 /*break*/, 2];\n if (!airtimeOnly) {\n if (providers.length > 0) {\n for (_i = 0, providers_1 = providers; _i < providers_1.length; _i++) {\n provider = providers_1[_i];\n if (provider.label.toLowerCase() == \"zero2hero\")\n setLoanProvider(provider.value);\n }\n }\n if (branches.length > 0) {\n for (_a = 0, branches_1 = branches; _a < branches_1.length; _a++) {\n branch = branches_1[_a];\n if (branch.label.toLowerCase() == \"sky lifestyle\")\n setLoanBranch(branch.value);\n }\n }\n }\n else {\n if (providers.length > 0) {\n virtualProvider = providers.find(function (p) { return p.label.toLowerCase() === \"sky virtual store\"; });\n if (virtualProvider) {\n setLoanProvider(virtualProvider.value);\n }\n }\n if (branches.length > 0) {\n virtualBranch = branches.find(function (b) { return b.label.toLowerCase() === \"sky virtual store\"; });\n if (virtualBranch) {\n setLoanBranch(virtualBranch.value);\n dispatch((0, main_1.setContentModal)({\n title: \"Disclaimer\",\n content: (react_1.default.createElement(disclaimer_1.Disclaimer, { onProceed: function () {\n saveLoanDetails();\n } })),\n }));\n }\n }\n }\n if (!((activeLoan === null || activeLoan === void 0 ? void 0 : activeLoan.basket_id) && loanBranch)) return [3 /*break*/, 2];\n return [4 /*yield*/, (0, get_basket_1.get_basket)({ _id: activeLoan === null || activeLoan === void 0 ? void 0 : activeLoan.basket_id }).then(function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var _res;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!response.success) return [3 /*break*/, 2];\n return [4 /*yield*/, (0, functions_1.isAirtimeOnly)((_a = response === null || response === void 0 ? void 0 : response.content) === null || _a === void 0 ? void 0 : _a.product_list)];\n case 1:\n _res = _b.sent();\n if (!_res) {\n dispatch((0, main_1.setContentModal)({\n title: \"Disclaimer\",\n content: (react_1.default.createElement(disclaimer_1.Disclaimer, { onProceed: function () {\n saveLoanDetails();\n } })),\n }));\n }\n setAirtimeOnly(_res);\n return [3 /*break*/, 3];\n case 2:\n dispatch((0, main_1.setMessageModal)({ title: \"Something went wrong!\", messages: [response.message] }));\n _b.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n }); })];\n case 1:\n _b.sent();\n _b.label = 2;\n case 2: return [2 /*return*/];\n }\n });\n }); };\n (0, react_1.useEffect)(function () {\n if (loanProvider) {\n //Get Branches\n (0, get_branches_1.getProviderBranches)({ provider_id: loanProvider }).then(function (response) {\n var _a;\n if (response.success) {\n var tempData_1 = [];\n (_a = response === null || response === void 0 ? void 0 : response.content) === null || _a === void 0 ? void 0 : _a.forEach(function (doc) {\n var branchData = doc.data();\n tempData_1.push({ label: branchData.name, value: doc.id });\n });\n setBranches(tempData_1);\n }\n else {\n }\n });\n }\n }, [loanProvider]);\n //Get Provider\n (0, react_1.useEffect)(function () {\n (0, get_providers_1.getProviders)().then(function (response) {\n var _a;\n if (response.success) {\n var tempData_2 = [];\n (_a = response === null || response === void 0 ? void 0 : response.content) === null || _a === void 0 ? void 0 : _a.forEach(function (doc) {\n var providerData = doc.data();\n tempData_2.push({ label: providerData.name, value: doc.id });\n });\n setProviders(tempData_2);\n }\n });\n }, []);\n var checkAirStatus = function () {\n if (activeLoan && (activeLoan === null || activeLoan === void 0 ? void 0 : activeLoan.is_product)) {\n if (airtimeOnly) {\n setLoanProvider(\"\");\n setLoanBranch(\"\");\n setLoanTerm(\"\");\n //RemoveZero2Hero from selection\n var newObjects = providers.filter(function (obj) { return obj.label !== \"Zero2Hero\"; });\n setProviders(newObjects);\n setLoanTerms([{ label: \"1 Month\", value: \"1 Month\" }]);\n setLoanTerm(\"1 Month\");\n }\n else {\n setLoanTerms([{ label: \"12 Months\", value: \"12 Months\" }]);\n setLoanTerm(\"12 Months\");\n }\n }\n else {\n var newObjects = providers.filter(function (obj) { return obj.label !== \"Zero2Hero\"; });\n setProviders(newObjects);\n setLoanTerms([\n { label: \"1 Month\", value: \"1 Month\" },\n { label: \"3 Months\", value: \"3 Months\" },\n { label: \"5 Months\", value: \"5 Months\" },\n ]);\n }\n };\n (0, react_1.useEffect)(function () {\n checkAirStatus();\n }, [activeLoan, airtimeOnly]);\n //Regulate Maximun and Minumun amount\n (0, react_1.useEffect)(function () {\n var amount = parseFloat(loanAmount);\n if (amount >= 100000) {\n setLoanAmount(\"100000\");\n setLoanAmountError(\"Maximum loan amount is N$100 000\");\n }\n else if (amount <= 1) {\n setLoanAmount(\"1\");\n setLoanAmountError(\"Minimum loan amount is N$1\");\n }\n else {\n setLoanAmountError(\"\");\n }\n }, [loanAmount]);\n (0, react_1.useEffect)(function () {\n if (loan_id) {\n //Get Loan\n (0, get_loan_1.getLoan)({ loan_id: loan_id }).then(function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var loanData;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!response.success) return [3 /*break*/, 4];\n return [4 /*yield*/, response.content.data()];\n case 1:\n loanData = _a.sent();\n setActiveLoan(loanData);\n setLoanAmount(loanData === null || loanData === void 0 ? void 0 : loanData.amount);\n setLoanTerm(loanData === null || loanData === void 0 ? void 0 : loanData.term);\n if (!(loanData === null || loanData === void 0 ? void 0 : loanData.provider)) return [3 /*break*/, 3];\n return [4 /*yield*/, (0, get_branches_1.getProviderBranches)({ provider_id: loanData === null || loanData === void 0 ? void 0 : loanData.provider }).then(function (response) {\n var _a;\n if (response.success) {\n var providerData = response.content.data();\n setProviderName((_a = providerData === null || providerData === void 0 ? void 0 : providerData.name) !== null && _a !== void 0 ? _a : \"Not Set\");\n }\n })];\n case 2:\n _a.sent();\n _a.label = 3;\n case 3: return [3 /*break*/, 5];\n case 4:\n dispatch((0, main_1.setMessageModal)({ title: \"Something went wrong!\", messages: [response.message] }));\n _a.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n }); });\n }\n }, [loan_id]);\n //Create Loan\n var saveLoanDetails = function () { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!validateDetails()) return [3 /*break*/, 4];\n setIsSaving(true);\n if (!activeLoan) return [3 /*break*/, 2];\n return [4 /*yield*/, (0, application_1.update_loan_application)({\n uid: loan_id,\n agree_terms: true,\n provider: loanProvider,\n branch: loanBranch,\n }).then(function (response) {\n if (response.success) {\n setIsSaving(false);\n window.scrollTo({\n top: 0,\n behavior: \"smooth\",\n });\n navigate(\"\".concat(route_names_1.ROUTE_LOAN_APPLICATION, \"/\").concat(steps_1.APP_STEP_KYC, \"/\").concat(loan_id));\n }\n else {\n dispatch((0, main_1.setMessageModal)({ title: \"Something went wrong!\", messages: [response.message] }));\n }\n })];\n case 1:\n _a.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, (0, application_1.create_loan_application)({\n provider: loanProvider,\n branch: loanBranch,\n amount: loanAmount,\n term: loanTerm,\n status: \"DRAFT\",\n is_product: false,\n agree_terms: true,\n date_started: new Date(),\n }).then(function (response) {\n var _a;\n if (response.success) {\n setIsSaving(false);\n window.scrollTo({\n top: 0,\n behavior: \"smooth\",\n });\n navigate(\"\".concat(route_names_1.ROUTE_LOAN_APPLICATION, \"/\").concat(steps_1.APP_STEP_KYC, \"/\").concat((_a = response === null || response === void 0 ? void 0 : response.content) === null || _a === void 0 ? void 0 : _a.uid));\n }\n else {\n }\n })];\n case 3:\n _a.sent();\n _a.label = 4;\n case 4: return [2 /*return*/];\n }\n });\n }); };\n var validateDetails = function () {\n var messageCount = 0;\n if (!loanAmount) {\n messageCount++;\n setLoanAmountError(\"Loan amount is required.\");\n }\n if (!loanTerm) {\n messageCount++;\n setLoanTermError(\"Loan term is required.\");\n }\n if (!loanProvider) {\n messageCount++;\n setLoanProviderError(\"Please select provider.\");\n }\n if (!loanBranch) {\n messageCount++;\n setLoanBranchError(\"Please select branch.\");\n }\n return messageCount ? false : true;\n };\n return (react_1.default.createElement(\"div\", { className: \"flex flex-col gap-8\" },\n react_1.default.createElement(\"div\", { id: \"status\", className: \"hidden\" }),\n react_1.default.createElement(doshx_controls_web_1.ScreenContainerControl, { className: \"flex flex-col gap-8\" },\n react_1.default.createElement(page_path_1.PagePath, { path: [\n {\n page: \"/\",\n title: \"Home\",\n },\n {\n page: \"\",\n title: \"\".concat((activeLoan === null || activeLoan === void 0 ? void 0 : activeLoan.is_product) ? \"Product\" : \"\", \" Loan Application\"),\n active: true,\n },\n ] }),\n react_1.default.createElement(\"div\", { className: \"flex flex-col gap-4\" },\n react_1.default.createElement(\"div\", { className: \"\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"\".concat((activeLoan === null || activeLoan === void 0 ? void 0 : activeLoan.is_product) ? \"Product\" : \"\", \" Loan Application\"), textColor: \"text-black\", bold: true })),\n !airtimeOnly && (react_1.default.createElement(\"div\", { className: \"flex flex-col gap-4\" },\n react_1.default.createElement(doshx_controls_web_1.TextInputControl, { label: \"How much do you want to borrow?\", value: loanAmount, size: \"small\", disabled: (activeLoan === null || activeLoan === void 0 ? void 0 : activeLoan.is_product) ? true : false, errorText: loanAmountError, startIcon: pro_solid_svg_icons_1.faMoneyBill, iconColor: \"text-gray-400\", onChange: function (v) {\n setLoanAmount(v);\n } }),\n react_1.default.createElement(doshx_controls_web_1.DropdownControl, { options: loanTerms, errorTextColor: \"text-red-500\", label: \"How long do you want the loan for?\", size: \"small\", disabled: (activeLoan === null || activeLoan === void 0 ? void 0 : activeLoan.is_product) ? true : false, value: loanTerm, errorText: loanTermError, onChange: function (v) {\n setLoanTerm(v);\n } }),\n react_1.default.createElement(doshx_controls_web_1.DropdownControl, { options: providers, errorTextColor: \"text-red-500\", label: \"Choose loan provider\", size: \"small\", disabled: (activeLoan === null || activeLoan === void 0 ? void 0 : activeLoan.is_product) && !airtimeOnly ? true : false, value: loanProvider, errorText: loanProviderError, onChange: function (v) {\n setLoanProvider(v);\n } }))),\n react_1.default.createElement(doshx_controls_web_1.DropdownControl, { options: branches, errorTextColor: \"text-red-500\", label: \"Choose outlet/service point\", size: \"small\", disabled: (activeLoan === null || activeLoan === void 0 ? void 0 : activeLoan.is_product) && !airtimeOnly ? true : false, value: loanBranch, errorText: loanBranchError, onChange: function (v) {\n setLoanBranch(v);\n } }),\n react_1.default.createElement(\"div\", { className: \"\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { size: \"small\", textColor: \"text-black\", label: \"Please note: If loan provider is not selected, by default the loan application will be sent to Focus Finance call centre.\" })),\n react_1.default.createElement(\"div\", { className: \"flex justify-center\" },\n react_1.default.createElement(doshx_controls_web_1.ButtonControl, { label: \"Proceed\", backgroundColor: \"bg-secondary\", size: \"small\", loading: isSaving, endIcon: pro_solid_svg_icons_1.faArrowRight, onClick: function () { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n // console.log(\"clicked\");\n if (validateDetails()) {\n dispatch((0, main_1.setContentModal)({\n title: \"Disclaimer\",\n content: (react_1.default.createElement(disclaimer_1.Disclaimer, { onProceed: function () {\n saveLoanDetails();\n } })),\n }));\n }\n return [2 /*return*/];\n });\n }); } }))))));\n};\nexports.LoanApplicationStart = LoanApplicationStart;\n","export default __webpack_public_path__ + \"images/a12eae64a6db38d6cb30a86f9da45d56.png\";","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sendOTP = void 0;\nvar axios_1 = __importDefault(require(\"axios\"));\nvar store_1 = require(\"../../../store\");\nfunction sendOTP(data) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var state, user, url, body;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, store_1.redux_store.getState()];\n case 1:\n state = _b.sent();\n return [4 /*yield*/, state.userState];\n case 2:\n user = (_b.sent()).user;\n url = (_a = process.env.SMS_API) !== null && _a !== void 0 ? _a : \"\";\n body = {\n sendOptions: {\n campaignName: \"OTP\",\n senderId: \"SkyApp01\",\n costCentre: \"SKYLIFE\",\n testMode: false,\n },\n messages: [\n {\n content: \"Hey \".concat(user.name, \". Use the following OTP to verify your number: \").concat(data.otp),\n destination: data.phone,\n customerId: \"12345\",\n },\n ],\n };\n return [4 /*yield*/, (0, axios_1.default)({\n method: \"POST\",\n url: \"\".concat(url, \"/v1/BulkMessages\"),\n headers: {\n authorization: \"Basic \".concat(process.env.SMS_API_KEY),\n },\n data: body,\n })\n .then(function (response) {\n return response.data;\n })\n .catch(function (error) { })];\n case 3: return [2 /*return*/, _b.sent()];\n }\n });\n });\n}\nexports.sendOTP = sendOTP;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmploymentDataPage = void 0;\nvar react_1 = __importStar(require(\"react\"));\nvar doshx_controls_web_1 = require(\"doshx_controls_web\");\nvar page_path_1 = require(\"../../components/page_path\");\nvar pro_solid_svg_icons_1 = require(\"@fortawesome/pro-solid-svg-icons\");\nvar update_advanced_user_details_1 = require(\"../../../../api/calls/user/update_advanced_user_details\");\nvar main_1 = require(\"../../../../reducers/slices/main\");\nvar react_redux_1 = require(\"react-redux\");\nvar react_router_dom_1 = require(\"react-router-dom\");\nvar get_user_details_1 = require(\"../../../../api/calls/user/get_user_details\");\nvar application_1 = require(\"../../../../api/calls/loan/application\");\nvar functions_1 = require(\"../../../../constants/functions\");\nvar steps_1 = require(\"./constants/steps\");\nvar route_names_1 = require(\"../../../../constants/route_names\");\nvar moment = require(\"moment\");\nvar EmploymentDataPage = function () {\n var _a;\n var dispatch = (0, react_redux_1.useDispatch)();\n var navigate = (0, react_router_dom_1.useNavigate)();\n var params = (0, react_router_dom_1.useParams)();\n var loan_id = params.loan_id;\n var _b = (0, react_1.useState)(\"\"), employeeNumber = _b[0], setEmployeeNumber = _b[1];\n var _c = (0, react_1.useState)(\"\"), employer = _c[0], setEmployer = _c[1];\n var _d = (0, react_1.useState)(\"\"), workAddress = _d[0], setWorkAddress = _d[1];\n var _e = (0, react_1.useState)(\"\"), supervisor = _e[0], setSupervisor = _e[1];\n var _f = (0, react_1.useState)(\"\"), departmentNumber = _f[0], setDepartmentNumber = _f[1];\n var _g = (0, react_1.useState)({\n phone_number: \"\",\n country_code: \"+264\",\n country_abbreviation: \"NA\",\n }), workNumber = _g[0], setWorkNumber = _g[1];\n var _h = (0, react_1.useState)(), startDate = _h[0], setStartDate = _h[1];\n var _j = (0, react_1.useState)(\"\"), employerMessage = _j[0], setEmployerMessage = _j[1];\n var _k = (0, react_1.useState)(\"\"), workAddressMessage = _k[0], setWorkAddressMessage = _k[1];\n var _l = (0, react_1.useState)(\"\"), supervisorMessage = _l[0], setSupervisorMessage = _l[1];\n var _m = (0, react_1.useState)(\"\"), departmentNumberMessage = _m[0], setDepartmentNumberMessage = _m[1];\n var _o = (0, react_1.useState)(\"\"), workNumberMessage = _o[0], setWorkNumberMessage = _o[1];\n var _p = (0, react_1.useState)(\"\"), employeeNumberMessage = _p[0], setEmployeeNumberMessage = _p[1];\n var _q = (0, react_1.useState)(\"\"), startDateMessage = _q[0], setStartDateMessage = _q[1];\n //\n var _r = (0, react_1.useState)(false), isSaving = _r[0], setIsSaving = _r[1];\n var _s = (0, react_1.useState)(true), isLoadingData = _s[0], setIsLoadingData = _s[1];\n var user = (0, react_redux_1.useSelector)(function (state) { return state.userState; }).user;\n (0, react_1.useEffect)(function () {\n if (user.uid) {\n (0, get_user_details_1.get_user_details)().then(function (response) { return __awaiter(void 0, void 0, void 0, function () {\n var _a, start_date;\n var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;\n return __generator(this, function (_s) {\n switch (_s.label) {\n case 0:\n if (!response.success) return [3 /*break*/, 2];\n setEmployeeNumber((_c = (_b = response === null || response === void 0 ? void 0 : response.content) === null || _b === void 0 ? void 0 : _b.employment_details) === null || _c === void 0 ? void 0 : _c.employee_number);\n setEmployer((_e = (_d = response === null || response === void 0 ? void 0 : response.content) === null || _d === void 0 ? void 0 : _d.employment_details) === null || _e === void 0 ? void 0 : _e.employer);\n setWorkAddress((_g = (_f = response === null || response === void 0 ? void 0 : response.content) === null || _f === void 0 ? void 0 : _f.employment_details) === null || _g === void 0 ? void 0 : _g.address);\n setSupervisor((_j = (_h = response === null || response === void 0 ? void 0 : response.content) === null || _h === void 0 ? void 0 : _h.employment_details) === null || _j === void 0 ? void 0 : _j.supervisor);\n setDepartmentNumber((_l = (_k = response === null || response === void 0 ? void 0 : response.content) === null || _k === void 0 ? void 0 : _k.employment_details) === null || _l === void 0 ? void 0 : _l.department);\n _a = setWorkNumber;\n return [4 /*yield*/, (0, functions_1.convert_number)((_o = (_m = response === null || response === void 0 ? void 0 : response.content) === null || _m === void 0 ? void 0 : _m.employment_details) === null || _o === void 0 ? void 0 : _o.work_number)];\n case 1:\n _a.apply(void 0, [_s.sent()]);\n start_date = moment.unix((_r = (_q = (_p = response === null || response === void 0 ? void 0 : response.content) === null || _p === void 0 ? void 0 : _p.employment_details) === null || _q === void 0 ? void 0 : _q.appointment_date) === null || _r === void 0 ? void 0 : _r.seconds);\n setStartDate(start_date);\n setIsLoadingData(false);\n return [3 /*break*/, 3];\n case 2:\n dispatch((0, main_1.setMessageModal)({ title: \"Something went wrong!\", messages: [response.message] }));\n setIsLoadingData(false);\n _s.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n }); });\n }\n //\n }, [user]);\n var saveEmploymentDetails = function () { return __awaiter(void 0, void 0, void 0, function () {\n var newDate, employment_details, employmentDetails;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!validateDetails()) return [3 /*break*/, 3];\n setIsSaving(true);\n newDate = startDate;\n employment_details = {\n date_updated: new Date(),\n address: workAddress,\n appointment_date: new Date(newDate),\n department: departmentNumber,\n employee_number: employeeNumber,\n employer: employer,\n supervisor: supervisor,\n work_number: workNumber,\n };\n return [4 /*yield*/, (0, update_advanced_user_details_1.update_advanced_user_details)({\n employment_details: employment_details,\n })];\n case 1:\n employmentDetails = _a.sent();\n if (!(employmentDetails === null || employmentDetails === void 0 ? void 0 : employmentDetails.success)) return [3 /*break*/, 3];\n //Update Loan Details\n return [4 /*yield*/, (0, application_1.update_loan_application)({\n uid: loan_id,\n employment_details: employment_details,\n employment_complete: true,\n }).then(function (response) {\n if (response.success) {\n setIsSaving(false);\n window.scrollTo({\n top: 0,\n behavior: \"smooth\",\n });\n navigate(\"\".concat(route_names_1.ROUTE_LOAN_APPLICATION, \"/\").concat(steps_1.APP_STEP_PAYPOINT_DETAILS, \"/\").concat(loan_id));\n //navigate next\n }\n else {\n dispatch((0, main_1.setMessageModal)({ title: \"Something went wrong!\", messages: [response.message] }));\n }\n })];\n case 2:\n //Update Loan Details\n _a.sent();\n _a.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n }); };\n var previousStep = function () {\n window.scrollTo({\n top: 0,\n behavior: \"smooth\",\n });\n navigate(\"\".concat(route_names_1.ROUTE_LOAN_APPLICATION, \"/\").concat(steps_1.APP_STEP_FAMILY_DETAILS, \"/\").concat(loan_id));\n };\n var validateDetails = function () {\n var messageCount = 0;\n if (!employer) {\n messageCount++;\n setEmployerMessage(\"Employer is required.\");\n }\n if (!startDate) {\n messageCount++;\n setStartDateMessage(\"Start date is required.\");\n }\n if (!departmentNumber) {\n messageCount++;\n setDepartmentNumberMessage(\"Department number is required.\");\n }\n if (!employeeNumber) {\n messageCount++;\n setEmployeeNumberMessage(\"Employee number is required.\");\n }\n if (!workNumber.phone_number) {\n messageCount++;\n setWorkNumberMessage(\"Work Number is required.\");\n }\n if (!workAddress) {\n messageCount++;\n setWorkAddressMessage(\"Work address is required.\");\n }\n if (!supervisor) {\n messageCount++;\n setSupervisorMessage(\"Supervisor is required.\");\n }\n return messageCount ? false : true;\n };\n return (react_1.default.createElement(\"div\", { className: \"flex flex-col gap-8\" },\n react_1.default.createElement(doshx_controls_web_1.ScreenContainerControl, { className: \"flex flex-col gap-8\" },\n react_1.default.createElement(page_path_1.PagePath, { path: [\n {\n page: \"/\",\n title: \"Home\",\n },\n {\n page: \"#\",\n title: \"Loan Application\",\n },\n {\n title: \"Employment Details\",\n active: true,\n },\n ] }),\n isLoadingData ? (react_1.default.createElement(doshx_controls_web_1.ShimmerBoxControl, null)) : (react_1.default.createElement(\"div\", { className: \"flex flex-col gap-4\" },\n react_1.default.createElement(\"div\", { className: \"\" },\n react_1.default.createElement(doshx_controls_web_1.LabelControl, { label: \"Employment Details\", textColor: \"text-black\", bold: true })),\n react_1.default.createElement(\"div\", { className: \"flex flex-col gap-4\" },\n react_1.default.createElement(doshx_controls_web_1.TextInputControl, { label: \"Employer\", value: employer, size: \"small\", errorText: employerMessage, onChange: function (v) { return setEmployer(v); } }),\n react_1.default.createElement(doshx_controls_web_1.TextInputControl, { label: \"Your Physical Workplace Address\", value: workAddress, size: \"small\", errorText: workAddressMessage, onChange: function (v) { return setWorkAddress(v); } }),\n react_1.default.createElement(doshx_controls_web_1.TextInputControl, { label: \"Name of Supervisor\", value: supervisor, size: \"small\", errorText: supervisorMessage, onChange: function (v) { return setSupervisor(v); } }),\n react_1.default.createElement(doshx_controls_web_1.PhoneInputControl, { label: \"Work Number\", value: workNumber === null || workNumber === void 0 ? void 0 : workNumber.phone_number, size: \"small\", errorText: workNumberMessage, defaultCountryCode: (_a = workNumber.country_abbreviation) !== null && _a !== void 0 ? _a : \"NA\", showExtension: true, showFlag: true, onChange: function (v) {\n return setWorkNumber(__assign(__assign({}, workNumber), { phone_number: v }));\n }, onExtensionChange: function (ext, code) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n setWorkNumber({\n phone_number: workNumber === null || workNumber === void 0 ? void 0 : workNumber.phone_number,\n country_code: ext,\n country_abbreviation: code,\n });\n return [2 /*return*/];\n });\n }); }, international: true }),\n react_1.default.createElement(doshx_controls_web_1.TextInputControl, { label: \"Department Number\", value: departmentNumber, size: \"small\", errorText: departmentNumberMessage, onChange: function (v) { return setDepartmentNumber(v); } })),\n react_1.default.createElement(doshx_controls_web_1.TextInputControl, { label: \"Employee Number\", value: employeeNumber, size: \"small\", errorText: employeeNumberMessage, onChange: function (v) { return setEmployeeNumber(v); } }),\n react_1.default.createElement(doshx_controls_web_1.DatePickerControl, { label: \"Start Date\", value: startDate, inputFormat: \"DD/MM/YYYY\", size: \"small\", errorText: startDateMessage, onChange: function (v) {\n setStartDate(v);\n } }),\n react_1.default.createElement(\"div\", { className: \"flex justify-center gap-4 \" },\n react_1.default.createElement(doshx_controls_web_1.ButtonControl, { label: \"Back\", loading: isSaving, backgroundColor: \"bg-primary\", size: \"small\", startIcon: pro_solid_svg_icons_1.faArrowLeft, onClick: function () {\n previousStep();\n } }),\n react_1.default.createElement(doshx_controls_web_1.ButtonControl, { label: \"Save & Proceed\", backgroundColor: \"bg-secondary\", size: \"small\", loading: isSaving, endIcon: pro_solid_svg_icons_1.faArrowRight, onClick: function () {\n saveEmploymentDetails();\n } })))))));\n};\nexports.EmploymentDataPage = EmploymentDataPage;\n","\"use strict\";\n//\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.update_quantity = void 0;\nvar api_1 = require(\"../../api\");\nfunction update_quantity(request) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, new api_1.API().apiPut({\n baseUrl: (_a = process.env.LETS_TRADE_BASKET_URL) !== null && _a !== void 0 ? _a : \"\",\n endpoint: \"v2/update/product\",\n content: request,\n authorization: process.env.LETS_TRADE_CLIENT_TOKEN,\n })];\n case 1: return [2 /*return*/, _b.sent()];\n }\n });\n });\n}\nexports.update_quantity = update_quantity;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0,\n\t641: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunktypescript\"] = self[\"webpackChunktypescript\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\n__webpack_require__.O(undefined, [536,56,313,899,401,783,997,343,23,824,733,627,906,641,202,695,591,22,860,195,140,411,543,319,366,42,587,248,365,984], () => (__webpack_require__(67519)))\nvar __webpack_exports__ = __webpack_require__.O(undefined, [536,56,313,899,401,783,997,343,23,824,733,627,906,641,202,695,591,22,860,195,140,411,543,319,366,42,587,248,365,984], () => (__webpack_require__(87819)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","__createBinding","this","Object","create","o","m","k","k2","undefined","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","get","defineProperty","__setModuleDefault","v","value","__importStar","mod","result","prototype","hasOwnProperty","call","exports","LoanApplicationPage","react_1","doshx_controls_web_1","react_router_dom_1","start_1","financial_details_1","personal_details_1","next_of_kin_details_1","employment_1","pay_point_details_1","salary_banking_1","documents_1","authorization_salary_deduction_1","authorization_electronic_payments_1","complete_1","agreement_of_sale_1","kyc_1","steps_1","step","useParams","useEffect","default","createElement","className","ScreenContainerControl","APP_STEP_START","LoanApplicationStart","APP_STEP_KYC","SumSubPage","APP_STEP_PERSONAL_DETAILS","PersonalDetailsPage","APP_STEP_FAMILY_DETAILS","NextOfKinDetailsPage","APP_STEP_EMPLOYMENT_DETAILS","EmploymentDataPage","APP_STEP_PAYPOINT_DETAILS","PayPointDetailsPage","APP_STEP_BANKING_DETAILS","SalaryBankingDetailsPage","APP_STEP_FINANCIAL_DETAILS","FinancialDetails","APP_STEP_DOCUMENTS","DocumentsPage","APP_STEP_AGREEMENT_OF_SALE","AgreementOfSale","APP_STEP_AUTHORIZATION_SALARY_DEDUCTION","AuthorizationSalaryDeduction","APP_STEP_AUTHORIZATION_ELECTRONIC_PAYMENTS","AuthorizationElectronicPayments","APP_STEP_COMPLETE","LoanApplicationComplete","__assign","assign","t","s","i","n","arguments","length","p","apply","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","next","e","rejected","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","op","TypeError","pop","push","page_path_1","pro_solid_svg_icons_1","react_redux_1","update_advanced_user_details_1","main_1","get_user_details_1","application_1","functions_1","address_list_1","react_fontawesome_1","pro_light_svg_icons_1","route_names_1","_a","_b","_c","_d","_e","dispatch","useDispatch","navigate","useNavigate","loan_id","_f","useState","name","setName","_g","surname","setSurname","_h","idNumber","setIdNumber","_j","postalAddress","setPostalAddress","_k","homeAddress","setHomeAddress","_l","gender","setGender","_m","married","setMarried","_o","marriageType","setMarriageType","_p","spouseNameMessage","setSpouseNameMessage","_q","spouseSurnameMessage","setSpouseSurnameMessage","_r","spouseCellNumberMessage","setSpouseCellNumberMessage","_s","setSpouseHomeNumberMessage","_t","spouseWorkNumberMessage","setSpouseWorkNumberMessage","_u","spouseName","setSpouseName","_v","spouseSurname","setSpouseSurname","_w","phone_number","country_code","country_abbreviation","spouseCellNumber","setSpouseCellNumber","_x","spouseHomeNumber","setSpouseHomeNumber","_y","spouseWorkNumber","setSpouseWorkNumber","_z","nameMessage","setNameMessage","_0","surnameMessage","setSurnameMessage","_1","idMessage","setIdMessage","_2","postalAddressMessage","setPostalAddressMessage","_3","homeAddressMessage","setHomeAddressMessage","_4","genderMessage","setGenderMessage","_5","marriageTypeMessage","setMarriageTypeMessage","_6","isSaving","setIsSaving","user","useSelector","state","userState","_7","addressList","setAddressList","uid","address_list","user_id","integration_id","response","success","content","addresses","setMessageModal","title","messages","message","get_user_details","is_married","home_address","full_address","postal_address","id_number","spouse","convert_number","home_number","work_number","marriage_type","PagePath","path","page","active","LabelControl","textColor","bold","TextInputControl","disabled","SumSubApproved","size","errorText","onChange","map","address","index","key","concat","onClick","FontAwesomeIcon","icon","faCheckCircle","AddressSearchControl","letsTradeAPIUrl","required","placeholder","onSelectionChange","fullAddress","DropdownControl","options","errorTextColor","CheckboxControl","PhoneInputControl","defaultCountryCode","showExtension","showFlag","onExtensionChange","ext","code","international","ButtonControl","loading","backgroundColor","startIcon","faArrowLeft","window","scrollTo","top","behavior","ROUTE_LOAN_APPLICATION","endIcon","faArrowRight","personalUpdated","messageCount","Utilities","isValidPhoneNumber","validateDetails","update_advanced_user_details","date_updated","Date","cell_number","update_loan_application","personal_complete","CELLPHONE_CAT","SOLAR_CAT","HOME_APPLIANCES_CAT","categoryMap","friendName","setFriendName","friendSurname","setFriendSurname","friendCellNumber","setFriendCellNumber","friendHomeNumber","setFriendHomeNumber","friendWorkNumber","setFriendWorkNumber","friendNameMessage","setFriendNameMessage","friendSurnameMessage","setFriendSurnameMessage","friendCellNumberMessage","setFriendCellNumberMessage","friendHomeNumberMessage","setFriendHomeNumberMessage","friendWorkNumberMessage","setFriendWorkNumberMessage","nextKinHomeNumberMessage","setNextKinHomeNumberMessage","nextKinWorkNumberMessage","setNextKinWorkNumberMessage","nextKinNameMessage","setNextKinNameMessage","nextKinSurnameMessage","setNextKinSurnameMessage","nextKinCellNumberMessage","setNextKinCellNumberMessage","nextKinRelationshipMessage","setNextKinRelationshipMessage","nextKinName","setNextKinName","nextKinSurname","setNextKinSurname","nextKinCellNumber","setNextKinCellNumber","nextKinHomeNumber","setNextKinHomeNumber","nextKinWorkNumber","setNextKinWorkNumber","nextKinRelationship","setNextKinRelationship","isLoadingData","setIsLoadingData","friend","family_member","relationship","ShimmerBoxControl","saveNextKinDetails","CompletePage","faHouse","faBasketShopping","__importDefault","AffiliatedEntitiesPage","colors_config_1","affiliated_entities_1","affiliatedEntities","SetAffiliatedEntities","isLoading","setIsLoading","getAffiliatedEntities","tempData_1","forEach","doc","entityData","data","center","viewBox","xmlns","d","fill","primary","entity","src","image","registeredName","EmptyBasket","ThemeHelpers","Config_1","FaceTecSDK_1","SampleAppUtilities_1","SoundFileUtilities_1","DeveloperStatusMessages_1","currentTheme","themeResourceDirectory","setAppTheme","theme","Config","currentCustomization","getCustomizationForTheme","currentLowLightCustomization","retryScreenSlideshowImages","retrieveLowLightConfigurationWizardCustomization","FaceTecSDK","primaryColor","primaryColorLight","primaryColorDark","secondaryColor","additionalReviewSVG","document","createElementNS","setAttribute","innerHTML","overlayCustomization","brandingImage","guidanceCustomization","foregroundColor","buttonTextNormalColor","buttonBackgroundNormalColor","buttonTextHighlightColor","buttonBackgroundHighlightColor","buttonTextDisabledColor","buttonBackgroundDisabledColor","buttonBorderColor","readyScreenOvalFillColor","readyScreenTextBackgroundColor","retryScreenImageBorderColor","retryScreenOvalStrokeColor","idScanCustomization","selectionScreenDocumentImage","selectionScreenBrandingImage","captureScreenForegroundColor","reviewScreenForegroundColor","selectionScreenForegroundColor","captureScreenTextBackgroundColor","captureScreenTextBackgroundBorderColor","reviewScreenTextBackgroundColor","reviewScreenTextBackgroundBorderColor","captureFrameStrokeColor","additionalReviewScreenForegroundColor","additionalReviewScreenImage","additionalReviewScreenAnimation","ocrConfirmationCustomization","mainHeaderDividerLineColor","mainHeaderTextColor","sectionHeaderTextColor","fieldLabelTextColor","fieldValueTextColor","inputFieldTextColor","inputFieldPlaceholderTextColor","inputFieldBackgroundColor","inputFieldBorderColor","customScrollIndicatorAnimation","scrollIndicatorBackgroundNormalColor","scrollIndicatorBackgroundHighlightColor","scrollIndicatorForegroundNormalColor","scrollIndicatorForegroundHighlightColor","scrollIndicatorBorderColor","resultScreenCustomization","activityIndicatorColor","customActivityIndicatorImage","customActivityIndicatorAnimation","resultAnimationBackgroundColor","resultAnimationForegroundColor","resultAnimationSuccessBackgroundImage","resultAnimationUnsuccessBackgroundImage","customResultAnimationSuccess","customResultAnimationUnsuccess","uploadProgressTrackColor","uploadProgressFillColor","feedbackCustomization","frameCustomization","borderColor","ovalCustomization","strokeColor","progressColor1","progressColor2","cancelButtonCustomization","customImage","readyScreenHeaderTextColor","readyScreenSubtextTextColor","retryScreenHeaderTextColor","retryScreenSubtextTextColor","backgroundColorLight","console","log","getLowLightCustomizationForTheme","currentDynamicDimmingCustomization","retrieveDynamicDimmingConfigurationWizardCustomization","activityIndicatorSVG","classList","add","successResultAnimationSVG","unsuccessResultAnimationSVG","cameraPermissionsScreenImage","cameraFeedIssueScreenImage","showUploadProgressBar","animationRelativeScale","shadow","getDynamicDimmingCustomizationForTheme","setCustomization","setLowLightCustomization","setDynamicDimmingCustomization","FaceTecCustomization","SoundFileUtilities","setVocalGuidanceSoundFiles","retrieveConfigurationWizardCustomization","getElementById","style","color","font","uploadActivityIndicatorSVG","initialLoadingAnimationCustomization","customAnimation","messageTextColor","messageFont","showBrandingImage","backgroundColors","headerFont","subtextFont","buttonFont","buttonBorderWidth","buttonCornerRadius","readyScreenTextBackgroundCornerRadius","retryScreenImageBorderWidth","retryScreenImageCornerRadius","retryScreenSlideshowInterval","enableRetryScreenSlideshowShuffle","showSelectionScreenDocumentImage","showSelectionScreenBrandingImage","selectionScreenBackgroundColors","reviewScreenBackgroundColors","captureScreenTextBackgroundBorderWidth","captureScreenTextBackgroundCornerRadius","reviewScreenTextBackgroundBorderWidth","reviewScreenTextBackgroundBorderCornerRadius","captureScreenBackgroundColor","captureFrameStrokeWidth","captureFrameCornerRadius","additionalReviewScreenBackgroundColors","mainHeaderDividerLineWidth","mainHeaderFont","sectionHeaderFont","fieldLabelFont","fieldValueFont","inputFieldFont","inputFieldPlaceholderFont","inputFieldBorderWidth","inputFieldCornerRadius","showInputFieldBottomBorderOnly","scrollIndicatorBorderWidth","scrollIndicatorCornerRadius","scrollIndicatorFont","scrollIndicatorShadow","enableScrollIndicator","enableScrollIndicatorTextAnimation","enableFixedConfirmButton","showScrollIndicatorImage","customActivityIndicatorRotationInterval","textFont","cornerRadius","borderWidth","borderCornerRadius","location","FaceTecCancelButtonLocation","Custom","setCustomLocation","hideForCameraPermissions","readyScreenHeaderFont","readyScreenSubtextFont","retryScreenHeaderFont","retryScreenSubtextFont","securityWatermarkCustomization","setSecurityWatermarkImage","FaceTecSecurityWatermarkImage","FaceTec","TopLeft","scrollIndicatorSVG","TopRight","getCurrentTheme","wasSDKConfiguredWithConfigWizard","showNewTheme","themes","currentThemeIndex","indexOf","transitionViewImage","transitionViewTextColor","transitionViewClass","deviceType","SampleAppUtilities","isLikelyMobileDevice","updateThemeTransitionView","DeveloperStatusMessages","logAndDisplayMessage","get_basket_thunk","toolkit_1","get_basket_1","basket_1","createAsyncThunk","arg","getState","get_basket","basket_id","_id","setBasket","AdvancedPersonalDetailsPage","Routes","Route","element","send_reset_password_link","auth_1","firebase_1","messages_1","request","error_1","errorMessage","sendPasswordResetEmail","auth","email","is_loading","USER_NOT_FOUND","PublicationsPage","get_publications_1","publications","setPublications","getPublications","publication","id","sortOrder","pub","BoxControl","setSelectedProduct","setSelectedCategory","slice","createSlice","initialState","selection","selectedCategory","selectedProduct","reducers","action","payload","actions","reducer","LivenessCheckProcessor","sessionToken","sampleAppControllerReference","_this","latestNetworkRequest","XMLHttpRequest","processSessionResultWhileFaceTecSDKWaits","sessionResult","faceScanResultCallback","latestSessionResult","status","FaceTecSessionStatus","SessionCompletedSuccessfully","abort","cancel","parameters","faceScan","auditTrailImage","auditTrail","lowQualityAuditTrailImage","lowQualityAuditTrail","sessionId","open","BaseURL","setRequestHeader","DeviceKeyIdentifier","createFaceTecAPIUserAgentString","onreadystatechange","readyState","DONE","responseJSON","JSON","parse","responseText","scanResultBlob","wasProcessed","setOverrideResultScreenSuccessMessage","proceedToNextStep","cancelDueToNetworkError","onerror","upload","onprogress","event","progress","loaded","total","uploadProgress","jsonStringToUpload","stringify","send","setTimeout","uploadMessageOverride","onFaceTecSDKCompletelyDone","isCompletelyDone","logMessage","onComplete","networkErrorMessage","cancelledDueToNetworkError","isSuccess","FaceTecSession","sampleAppController_1","universal_cookie_1","isCheckingStatus","setisCheckingStatus","kycStatus","intervalId_1","setInterval","faceMatchUserInfo","sumsub_complete","clearInterval","SampleApp","onPhotoIDMatchPressed","FaceTecAppBlocked","user_1","sign_out_thunk","ViewStorePage","nearest_branches_1","get_branch_1","logo_png_1","storeID","nearByLocations","setNearByLocations","storeDetails","setStoreDetails","get_branch","getNearbyLocations","latitude","longitude","nearest_branches","center_coordinates","display_name","working_hours","find","x","day","toLocaleString","weekday","from","to","faDiamondTurnRight","faLocationDot","LinkButtonControl","contact_number","faPhone","iconColor","faEnvelope","AccordionControl","colors","titleTextColor","titleBackgroundColor","contentTextColor","contentBackgroundColor","divideColor","addHeaderPadding","addContentPadding","arrowSide","items","expanded","header","faClock","hours","hours_index","MapControl","controlSize","zoom","lat","Number","lng","markers","position","DividerControl","addPadding","orientation","branch","LogoControl","image_url","distance","client_terms","api_1","API","apiGet","baseUrl","endpoint","authorization","SignUpPage","send_otp_1","emailMessage","setEmailMessage","phoneMessage","setPhoneMessage","passwordMessage","setPasswordMessage","confirmPasswordMessage","setConfirmPasswordMessage","setBirthdayMessage","agreesMessage","setAgreesMessage","otpMessage","setOTPMessage","generatedOTP","setGeneratedOTP","enteredOTP","setEnteredOTP","otpCountdown","setOTPCountdown","timer","setTimer","maxCOTPCountdown","parseInt","onControlChanged","setUser","clearTimeout","type","labelColor","toString","faSend","otp","generateOTP","sendOTP","phone","formatNumberForSms","eventId","timeLeft_1","sign_up_thunk","password","confirm_password","agrees_terms_and_conditions","validate","otp_1","timeLeft_2","setDrawerPage","HomeBannerComponent","bannerimgbg_png_1","home_1","timeOfDay","setTimeOfDay","homeContent","setHomeContent","currentTime","getHours","getHomeContent","providerData","sub_header","getChats","firestore_1","store_1","chatsCollectionRef","userDocRef","redux_store","collection","firestore","getDocs","query","where","PhotoIDScanProcessor","processIDScanResultWhileFaceTecSDKWaits","idScanResult","idScanResultCallback","latestIDScanResult","FaceTecIDScanStatus","Success","idScan","frontImages","idScanFrontImage","backImages","idScanBackImage","setIDScanResultScreenMessageOverrides","faceTecIdScanResultCallback","setIDScanUploadMessageOverrides","delete_address","apiPut","auth_token","props","Fragment","updateUserByVerifiedEmail","objectToQueryString_1","objectToQueryString","AdditionalInfoWidget","faInfoCircle","setDrawerOpen","ArticlePage","get_article_1","setPublication","params","publication_id","article","setArticle","getArticle","formatDateTime","pubDate","seconds","dangerouslySetInnerHTML","__html","description","faExternalLink","link","setIsAddingToBasket","setCheckedOutBasket","setDeliveryMethod","get_basket_thunk_1","isAddingToBasket","payment_identifier","basket","product_list","delivery_method","checkout_cookie","extraReducers","builder","addCase","pending","FAQsPage","section_swapper_1","SectionSwapperComponent","imageSide","smallTitle","bigTitle","userDocSnapshot","userProfile","getDoc","exists","sign_in","userCredential","phoneNumber","userObj","signInWithEmailAndPassword","updateDoc","last_login","startsWith","substring","facetecDBRef","birthday","get_communication","applicantId","numberVerified","INCORRECT_PASSWORD","axios_1","bearerToken","method","url","headers","getHeader","catch","error","extractErrorMessage","apiPost","contentType","ProfileDetailsWidget","update_user_details_1","password_1","isEditing","setIsEditing","setEmail","setPhoneNumber","phoneNumberMessage","setPhoneNumberMessage","otpVerified","setOTPVerified","phoneNumberHasChanged","setPhoneNumberHasChnaged","_updateCell","oldNum","fromEntries","entries","sort","newNum","IconButtonControl","faSave","faPen","update_user_details","update_details_thunk","faClose","ProfilePasswordWidget","faPencil","faPhonePlus","getProduct","ReturnPolicyPage","policy_1","setPrivacyData","client_policy","policy","href","target","appendChild","click","removeChild","width","height","WishListPage","selection_1","get_favourite_products_1","favourite_product_1","add_product_thunk_1","image_default_png_1","pro_duotone_svg_icons_1","productsList","setProductsList","productsMapped","setProductsMapped","init","get_favourite_products","mappedProducts","_loop_1","product","titleColor","amount","price","amountColor","shadowColor","discountLabel","on_promotion","discountAmount","promotion_price","pid","sku","sub_title","instruction","estimated_delivery_time","extraText","outOfStock","discount","favorite","faHeart","favorite_product","product_id","_i","ProductsBigControl","imageFit","canIncrement","button","add_product_thunk","products","faCartCircleExclamation","get_product_list","get_loan_1","react_signature_canvas_1","firebase_file_upload_1","get_provider_1","forceNumber","setForceNumber","useRef","signature","setSignature","signatureURL","setSignatureURL","forceNumberError","signatureError","setSignatureError","setActiveLoan","activeUser","setActiveUser","providerName","setProviderName","getLoan","loanData","getProvider","provider_id","provider","saveLoanDetails","newSigURL","base64Content","byteCharacters","byteNumbers","byteArray","filename","file","split","atob","Array","charCodeAt","Uint8Array","Math","random","toUpperCase","File","uploadFileToFirebase","authoriseSalary_complete","force_number","salary_deduction_signature","date","employment_details","employer","ref","canvasProps","clear","getTrimmedCanvas","toDataURL","ServicesMainComponent","categories_1","product_category_record_1","shopCategories","setShopCategories","getCategories","categoryList","product_category_list","newCategoryList","category","encodeURI","trim","AboutUsPage","image1_jpg_1","image2_jpg_1","image3_jpg_1","Sky_Smartphone_download_png_1","Services","AppStoreButtonsControl","appStore","playStore","appGallery","service","redux_1","combineReducers","mainState","basketState","selectionState","ShopPage","products_1","recently_viewed_1","getRootPath_1","category_products_1","symbols_1","useLocation","rootPath","getRootPath","categories","setCategories","recentlyViewed","setRecentlyViewed","random1Category","setRandom1Category","random2Category","setRandom2Category","random1Products","setRandom1Products","random1TotalRecords","setRandom1TotalRecords","random1RecordsPerPage","random1CurrentPage","setRandom1CurrentPage","random2Products","setRandom2Products","random2TotalRecords","setRandom2TotalRecords","random2RecordsPerPage","random2CurrentPage","setRandom2CurrentPage","image_list","rating","average","count","getRecentlyViewedProducts","rc1","floor","rc2","getRandom1Products","getRandom2Products","categporyId","getProducts","category_id","list","SideNavigationControl","sub_categories","sub_category","onItemClick","item","level","CommitmentsControl","commitments","faCreditCard","ProductsSmallControl","currencySymbol","pagination","currentPage","totalRecords","recordsPerPage","pageNumber","quantity","CategoryProductsPage","ProductCarouselSmallControl","HomePage","home_banner_1","services_1","services_main_1","promotion_1","get_app_1","setAllProducts","setContentSliders","setTotalRecords","filtered_list","filter","sortedCategoryList","filteredCategory","ServicesComponent","OnPromotionComponent","GetAppComponent","ArticlesPage","get_articles_1","articles","setArticles","getArticles","a","b","alt","get_production_keys","apply_action_code","update_user_by_verified_email_1","info","operation","previousEmail","checkActionCode","applyActionCode","EXPIRED_ACTION_CODE","INVALID_ACTION_CODE","add_to_basket","LivenessCheckProcessor_1","EnrollmentProcessor_1","AuthenticateProcessor_1","PhotoIDMatchProcessor_1","PhotoIDScanProcessor_1","ThemeHelpers_1","AdditionalScreens_1","latestProcessor","latestEnrollmentIdentifier","initializeResultObjects","isNetworkResponseServerIsOffline","networkResponseStatus","onload","formatUIForDevice","setResourceDirectory","setImagesDirectory","didSucceed","ProductionKeyText","fadeInMainUIContainer","sessionTokenErrorHasBeenHandled","onSessionTokenError","xhrStatus","showAdditionalScreensServerIsDown","handleErrorGettingServerSessionToken","getSessionToken","sessionTokenCallback","XHR","hideLoadingSessionToken","showLoadingSessionToken","AdditionalScreens","showServerUpGradeView","onLivenessCheckPressed","fadeOutMainUIAndPrepareForSession","onEnrollUserPressed","generateUUId","EnrollmentProcessor","onAuthenticateUserPressed","cookie","userData","facetec","authenticated","action_authenticated","set","sameSite","AuthenticateProcessor","PhotoIDMatchProcessor","onPhotoIDScanPressed","onDesignShowcasePressed","latestNetworkResponseStatus","displayMessage","logScanOncompleteResult","showMainUI","getLatestEnrollmentIdentifier","clearLatestEnrollmentIdentifier","onVocalGuidanceSettingsButtonPressed","setVocalGuidanceMode","onViewAuditTrailPressed","showAuditTrailImages","updateData","removeUndefinedProperties","paypoint_details","salary_bank","financial_detail","family_complete","friend_complete","getLoanComments","loanRef","commentsCollectionRef","commentsQuerySnapshot","comments_1","SignInRequiredComponent","faUserLock","ContactUsPage","send_generic_email_1","canvasRef","setMessage","nameError","setNameError","emailError","setEmailError","messageError","setMessageError","isButtonLoading","setIsButtonLoading","canvas","current","context","getContext","fillStyle","shadowBlur","fillRect","variant","lines","test","send_generic_email","subject","template_id","publicationDocRef","publicationDocSnapshot","articleDocRef","articleDocSnapshot","articleData","getAgreement","agreementDocSnapshot_","agreementDocSnapshot","agreement_ref","__rest","getOwnPropertySymbols","propertyIsEnumerable","sign_up","requestWithoutPassword","letsTradeUser","createUserWithEmailAndPassword","setDoc","created_time","token","affiliatesCollectionRef","update_device_sales_agreements","create_device_sales_agreements","deviceSalesAgreementsRef","newLoanDocRef","newAgrementDocSnapshot","agreementData","loan","addDoc","order_number","loanDocRef","update_user_facetec","userStateCookie","newObj","App","MainScreen","setContentModal","main","isDrawerOpen","drawerPageName","messageModal","contentModal","create_loan_application","providerRef","branchRef","loansCollectionRef","newLoanDocSnapshot","parseFloat","date_started","docs_complete","employment_complete","financial_complete","is_product","paypoint_complete","agree_terms","authoriseBank_complete","bankDetails_complete","term","order_id","sources","initiated","docSnapshot","currentSources","loanDocSnapshot","salary_bank_details","latest_payslip","bank_statements","copy_of_id","bank_debit_signature","completed","salesAgreement","webpackContext","req","webpackContextResolve","__webpack_require__","Error","keys","module","cancel_basket","PrivacyPolicyPage","privacyData","paymentTypes","LOAN","CARD","bankStatements","setBankStatements","payslip","setPayslip","bankStatementsError","setBankStatementsError","payslipError","setPayslipError","FileInputControl","MultiFileInputControl","files","previewFiles","fileBorderColor","buttonColor","placeholderColor","latestPayslip_","bankStatements_","bankStatements_1","statement","all_branches","client_id","decodedToken","parseJwt","__spreadArray","pack","ar","l","PopulatedBasket","cancel_basket_1","remove_products_1","update_quantity_1","selectedProducts","setSelectedProducts","favouriteProducts","setFavouriteProducts","includes","remove_products","product_id_list","idx","splice","formatMoney","symbol","IncrementControl","max","update_quantity","faTrash","decimalPlaces","OrderDetailsPage","get_order_1","orderId","details","setDetails","deliveryFee","setDeliveryFee","get_order","deliveryFeeIdx","findIndex","deliveryFeeProduct","order_date","delivery_address","scheduled_time","CircularLoaderControl","biometric_auth_1","externalDatabaseRefID","biometric_auth","payPointPhoneNumber","setPayPointPhoneNumber","payPointPostalAddress","setPoayPointPostalAdddress","postalCode","setPostalCode","payPointPhysicalAddress","payMaster","setPaymaster","payPointPhoneNumberMessage","setPayPointPhoneNumberMessage","payPointPostalAddressMessage","postalCodeMessage","payPointPhysicalAddressMessage","setPayPointPhysicalAddressMessage","payMasterMessage","setPaymasterMessage","postal_code","physical_address","paymaster_number","savePayPointDetails","buttonText","onButtonClick","imageComponent","cont","clear_action_auth","order_list","ProfileAddressWidget","add_user_address_1","delete_address_1","selectedAddress","setSelectedAddress","newAddressName","setNewAddressName","addressLabelErrorText","setAddressLabelErrorText","deletingIndex","setDeletingIndex","isDeleting","setIsDeleting","getAddresses","faAdd","errorCount","add_user_address","is_residential","complex_building_details","coordinates","getStrippedPath","pathname","qwe","join","FindStoresPage","isGettingBranches","setIsGettingBranches","allBranches","setAllBranches","plotData","setPlotData","getUserLocation","navigator","geolocation","getCurrentPosition","coords","mapPoints","faLocationCrosshairs","progressColor","lineColor","faLocationArrow","reset_password","confirmPasswordReset","spouseHomeNumberMessage","SampleAppUIFunctions","elementString","currentElements","querySelectorAll","saveDisplayForElement","el","display","getComputedStyle","setDisplayForElement","getAttribute","fadeOut","duration","callback","opacity","transition","requestAnimationFrame","fadeIn","computedStyle","visibility","show","hide","scrollTop","css","styleProperTies","OrdersPage","order_list_1","sign_in_required_1","orderList","setOrderList","sortedOrders","createdAt","getTime","order","get_checked_out_basket_thunk","basketLocalStorage","localStorage","getItem","accountNumberMessage","accountTypeMessage","bankMessage","accountNumber","setAccountNumber","accountType","setAccountType","bank","setBank","account_number","account_type","saveSalaryBanking","control_colors_1","preferred_payday","payment_frequency","electricity","housing","transport","education","groceries_and_other","financialDetails","setFinancialDetails","fixedMonthlyDeductions","setFixedMonthlyDeductions","otherObligations","setOtherObligations","acccountPayments","setAcccountPayments","other_obligations","account_payments","fixed_monthly_deductions","num","suffixes","lastDigit","terms","suffix","daysList","RadioButtonsControl","radio_colors","selectedValue","cols","currentData","updatedData","faPlus","updatedAccountPayments","financialDetails_","TermsAndConditionsPage","terms_1","setTermsData","secondary","borders","create_order","setAccountNumberMessage","setAccountTypeMessage","setBankMessage","branchCode","setBranchCode","bankingData","obj","prependQuestion","encodeURIComponent","L","I","z","J","X","B","G","C","F","D","N","S","String","decodeURIComponent","H","V","cM","m0","cA","T","m1","Q","m2","m3","m4","m5","m6","m8","m7","m9","mJ","mL","btoa","unescape","mI","mm","mz","mB","j","ms","LE","r","Li","mX","mT","Lc","LY","Lw","LA","Lh","mn","Lf","Lp","mV","mt","mK","mR","mi","mc","q","c","h","u","WebAssembly","Jn","J0","J1","J2","J3","J4","J5","J6","J7","J8","mP","Int8Array","Int16Array","Int32Array","Uint16Array","Uint32Array","Float32Array","Float64Array","J9","Js","JJ","JL","JI","Jm","JX","JB","JT","mu","JH","mO","JV","JG","mv","JQ","mW","my","fetch","mZ","mb","JD","z0","JN","z1","JS","Jk","JC","JF","Lo","Jg","z2","LC","Ll","Jt","z3","Je","Jx","Jl","Jo","Jj","JU","z4","JK","JR","z6","z5","z7","Jr","Jq","JE","Ji","z8","Jc","z9","zJ","JY","zL","Jw","JA","zI","Jh","Jf","zX","Jp","zB","Ju","JO","LS","LQ","Jv","zD","JW","JZ","zN","Jy","zS","L0","TextDecoder","L1","zk","L2","L3","zC","L4","zF","L5","L6","zg","L7","zt","L8","ze","L9","LJ","zx","LL","LI","Lm","Ls","Lt","LX","LB","LT","Ln","LH","LV","zq","LG","za","Lx","zE","Lk","Le","zi","zc","LM","LP","zY","Ld","Lu","zG","zQ","Jd","zH","zV","JP","zh","zw","LO","Lv","LW","zA","zp","Ly","zf","zd","zT","zn","I0","Function","I1","JM","LZ","zM","zP","zu","zv","zW","zZ","ArrayBuffer","Uint8ClampedArray","LD","zy","zb","s1","s2","s4","I4","s5","s6","s7","s9","sJ","LF","Lg","sL","sI","sm","sz","ss","sX","sB","sT","sn","I2","I3","sH","I5","I6","Lj","LK","sV","sG","sQ","I7","I8","sD","I9","IJ","IL","II","sN","Im","Iz","Is","IX","IB","IT","sS","In","IH","sk","zK","zl","zo","zj","zU","RegExp","zr","zR","Lz","sC","sF","st","sg","se","sx","so","LN","sj","sU","sR","sr","sq","sE","si","sc","sY","sw","sA","sh","LU","sf","Lr","md","sd","sP","Lq","sp","LR","sO","sv","sW","sZ","sb","X1","X2","X3","X4","X5","X6","X7","X8","XJ","XL","Xm","XI","Xz","Xs","XX","XB","XT","Xn","XH","XV","XG","XQ","XD","XS","XN","XF","Xg","Xt","Xe","Xx","Xl","Xo","Xj","XU","XK","XR","Xr","Xq","Xa","XE","Xi","Xc","XY","Xw","XA","Xh","Xf","Xp","XM","XP","Xd","XZ","Xy","Xb","B0","B1","B2","B3","B4","B5","B6","B7","B8","B9","BJ","BL","BI","KeyboardEvent","Bm","Bz","Bs","BX","BB","BT","Bn","BH","BV","BG","BQ","BD","BN","BS","Bk","BC","BF","Bg","Bt","Be","Bx","Bl","Bo","Bj","BU","BK","BR","E","Br","Bq","U","Ba","BE","Y","w","A","Bi","M","K","R","Bc","BY","Bw","BA","Bh","Bf","Bp","BM","BP","Bd","Bu","BO","Bv","By","BW","BZ","Bb","T1","T2","Tg","T3","T4","T5","T6","T7","T8","T9","TJ","TL","TI","Tm","Tz","Ts","TX","TB","TT","Tn","TH","TV","TG","TQ","TD","TN","TS","Tk","TC","TF","Map","Tt","Te","Tx","Tl","To","Tj","TU","TK","TR","Tr","Tq","Ta","TE","Ti","Tc","TY","Tw","TW","TA","performance","Tf","Tp","TM","TP","Event","Td","TO","Tv","TZ","Ty","n3","nJ","nI","nm","nz","nG","nQ","nN","nk","nC","nF","ng","La","Lb","IV","IG","IQ","ID","IN","IS","Ik","IC","IF","Ig","It","Ie","Ix","Il","Io","Ij","IU","IK","IR","Ir","Iq","Ia","IE","Ii","Ic","IY","Iw","IA","Ih","If","Ip","IM","IP","Id","Iu","IO","Iv","IW","IZ","Iy","Ib","nt","ne","nx","faceTecBrowserCompatTool","no","nj","nU","nK","nR","nr","nq","na","nE","ni","nc","nY","nw","nA","nh","nf","nP","np","nM","nd","nu","nO","nv","nZ","nW","ny","nb","Worker","Document","H0","H1","H2","H3","H4","H5","H6","H7","H8","H9","ImageData","HJ","HI","Hs","HX","HT","Hn","HH","HV","HG","HQ","HD","HS","Hk","HC","HF","Hg","Ht","He","Hx","Hl","Ho","Hj","HU","HK","HR","screen","Hr","Hq","Ha","HE","Hi","Hc","HY","Hw","isNaN","HA","Hf","Hp","HM","HP","Hd","Hu","HO","Hv","HW","Hy","HZ","Hb","V0","V1","V2","V3","V4","V5","V6","V7","V8","V9","VJ","VL","VI","Vm","Vz","Vs","VB","VX","VT","VQ","Vn","VH","VV","VG","VD","VN","VS","Vk","VC","VF","Vg","Vt","Ve","Vx","Vl","Vo","Vj","VU","VK","VR","Vr","Vq","Va","VE","Vi","Vc","VY","Vw","VA","Vh","Vf","Vp","VM","GN","VP","Vd","Vu","VO","Vv","VW","VZ","Vy","Vb","G0","G1","G2","G3","G4","G5","G6","G7","G8","G9","GJ","GL","GI","Gm","Gz","Gs","GX","GB","GT","Gn","GH","GV","GG","GQ","GD","GS","Gk","GC","GF","Gg","Gt","Ge","Gl","Go","GU","Gj","GK","Gr","GR","Gq","Ga","GE","Gi","Gc","GY","Gw","GA","Gh","Gf","Gp","GM","GP","Gd","Gu","GO","Gv","GW","GZ","Gy","Gb","Q0","Q1","Q2","Q3","Q4","Q5","Q6","Q7","Q8","Q9","QL","QJ","QI","Qm","QB","Qz","Qs","QX","QT","O","W","Z","Qn","QH","QV","QG","QQ","QN","QD","QS","Qk","QC","QF","Qg","Qt","Qe","Qx","Ql","Qj","Qo","QU","Qr","QK","QR","Qq","Qa","QE","Qi","QY","Qc","Jz","Qw","QA","Qh","Qf","Qp","QM","QP","Qu","Qd","QO","Qy","Qv","QW","QZ","Qb","D0","D1","D2","D3","D4","D6","DL","Dm","D5","D7","D8","D9","DJ","DI","Dz","Ds","DX","DB","DD","DT","Dn","DV","DH","DG","DQ","DN","DS","Dk","DC","DF","Dg","Dt","De","Dx","Dl","Do","Dj","DU","DK","DR","Dr","Dq","DE","Da","Di","Dc","DY","Dw","DA","Dh","Df","Dp","DM","DP","DW","Dd","Du","DO","Dv","DZ","Dy","Db","N0","N1","N2","NI","N3","N4","N5","N6","N7","N8","N9","NJ","NL","Nm","Nz","Ns","NX","NB","NT","Nn","NH","NV","NG","NQ","ND","NN","NS","Nk","NC","NF","Ng","Nt","Ne","Nx","Nl","No","Nj","NU","NK","NR","Nr","Nq","Na","NE","Ni","Nc","NY","Nw","NA","Sr","Nh","Image","Nf","Np","NM","NP","Nd","Nu","NO","Nv","NW","NZ","Ny","Nb","S0","S1","S2","S3","S4","S5","S6","S7","S8","S9","SJ","SL","SI","Sm","Sz","Ss","SX","SB","ST","Sn","SH","SV","SG","SQ","SD","SN","SS","Sk","SC","SF","Sg","St","Se","Sx","Sl","So","Sj","SU","SK","SR","Sq","Sa","SE","Si","Sc","SY","Sw","SA","Sh","Sf","Sp","SM","SP","Sd","Su","SO","Sv","SW","SZ","Sy","Sb","k0","k1","k3","k4","k5","k6","k7","k8","k9","kJ","kL","kI","km","kz","ks","kX","kB","kT","kn","kH","kV","kG","kQ","kD","kN","kS","kk","kC","kF","kg","kt","ke","kx","kl","ko","kj","kU","kK","kr","kR","kq","ka","kE","ki","kc","kY","kM","kw","kA","kh","kf","kp","kd","ku","C2","kO","kv","kW","kZ","ky","kb","C0","C1","C3","C4","C5","C6","C7","C8","C9","CJ","CL","CI","Cz","Cm","Cs","CX","CB","CZ","CT","Cn","CH","CV","CG","CQ","CD","CN","CS","Ck","CC","CF","Cg","Ct","Ce","Cx","Cl","Co","Cj","CU","CK","CR","Cr","Cq","Ca","CE","Ci","Cc","CY","Cw","CA","Ch","Cf","Cp","CM","CP","Cd","Cu","CO","Cv","CW","Cy","Cb","F0","F1","F2","F3","F4","F5","F6","F7","F9","FJ","FL","FI","Fm","Fz","Fs","FX","FB","FT","Fn","FH","FV","FG","FQ","FD","FN","FS","Fk","Fl","FC","FF","Fg","Ft","Fe","Fx","Fo","Fj","FU","FK","FR","Fr","Fh","Fq","Fa","FE","Fi","Fc","FY","Fw","FA","Ff","Fp","FM","gU","FP","Fd","Fu","FO","Fv","FW","FZ","Fy","Fb","g0","g1","g2","g3","g4","g5","g6","g7","g8","g9","gJ","gL","gI","gm","gz","gs","gX","gB","gT","gn","gH","gV","gG","gQ","gD","gN","gS","gk","gC","gF","gg","gt","ge","gx","gl","go","gj","gK","gR","gr","gq","ga","gE","gi","gc","Ja","Jb","gY","gw","gA","gh","gf","gp","gM","gP","gd","gu","gO","gv","gW","gZ","gy","gb","t0","t1","t2","t3","t4","t5","t6","t7","t8","t9","tJ","tL","tI","tm","tz","ts","tX","tB","tT","tn","tH","tV","tG","tQ","tD","tN","tS","tk","tC","tF","tg","tt","te","tx","tl","tj","tU","tK","tR","tr","tq","ta","tE","ti","tc","tY","tw","tA","th","tf","tp","tM","tP","td","tu","tO","tv","tW","tZ","ty","tb","e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","eJ","eL","eI","em","ez","es","eX","eB","eT","en","eH","eV","eG","eQ","eD","eN","eS","ek","eC","eF","eg","et","ee","ex","eo","ej","eU","eK","eR","er","eq","ea","eE","ei","ec","eY","ew","eA","eh","ef","ep","eM","eP","ed","eu","eO","ev","eW","eZ","ey","eb","x0","x1","x2","x3","x4","x5","x6","x8","x9","xm","xL","xI","xz","xs","xX","xB","xT","xQ","xn","xH","xV","xG","xD","xN","xS","xk","xC","xF","xg","xt","xe","xx","xl","xo","xj","xU","xK","xR","xE","xr","xq","xa","xi","xc","xY","xw","xA","xh","xf","xp","xM","xP","xd","xu","xO","xv","xW","xZ","xy","xb","l0","l1","l2","l3","l4","l5","l6","l7","l9","l8","lJ","lL","lI","lm","lz","ls","lX","lB","lT","ln","lH","lV","lG","lQ","lD","lN","lS","ll","lk","lC","lt","le","lx","lo","lj","alert","lU","lc","lK","lR","lr","lq","la","lE","li","lY","lw","lA","lh","lf","lp","lM","lP","ld","lu","lO","lv","lW","lZ","ly","lb","o0","o1","o2","o3","o4","o5","o6","o7","o8","oX","o9","oJ","oL","oI","om","oz","os","oB","oT","oF","on","oH","oV","oG","oQ","oN","oS","ok","oC","URL","Blob","ot","oe","ox","oj","ol","oo","oU","oK","oR","or","oi","oq","oa","oE","oc","oY","oO","ow","oA","oh","of","oM","oP","od","ou","ov","oW","oZ","oy","FileReader","ob","j0","j1","j2","j3","crypto","j4","j5","j6","j7","j8","j9","jJ","jL","jm","jz","js","jX","jB","jT","jn","jH","jV","jG","jR","jQ","jD","jN","jS","jk","jC","jF","jg","jt","je","jx","jl","jo","jj","jU","jK","jr","jq","ja","jE","ji","jc","jY","jw","jA","jh","jf","jp","jM","jP","jd","ju","jO","jv","jW","jZ","jy","jb","U0","U1","U2","U3","U5","U4","U6","U7","U8","U9","UJ","Uz","UL","UI","Um","Us","UX","UB","UT","Un","UH","UV","UG","UQ","UD","UN","US","Uk","UC","UF","Ug","Ut","Ue","Ux","Uo","Ul","Uj","UU","UK","Uq","K5","Ua","UE","Ui","Uc","UY","Uw","UA","Uh","Up","UM","UP","Ud","Uu","UO","Uv","UW","UZ","Uy","K0","Ub","K2","K3","K4","K6","K7","K8","K9","KJ","KL","KI","Km","Kz","Ks","KX","DOMException","KB","KT","Kn","KH","KV","KG","KD","KN","Kk","KC","KF","Kg","Kt","Ke","Kx","Kl","Ko","Kj","KU","KK","Kr","Kq","Ka","KE","Kf","Ki","Kc","KY","Kw","KA","Kh","Kp","KM","KP","Kd","R3","Ku","KO","Kv","KW","KZ","Ky","Kb","R0","R1","R2","R4","R5","R6","R7","R8","R9","RJ","RL","RI","Rm","Rz","Rs","RX","RB","RT","Rn","RH","RV","RG","RQ","RD","RN","RC","RF","Rg","Rt","Re","Rx","Rl","Ro","Rj","RU","RK","RR","Rr","Rq","Ra","RE","Ri","Rc","RY","Rw","RA","Rh","Rf","RM","RP","Rd","Ru","Rv","RW","Rb","Ry","r0","r1","r2","r4","r3","r5","r6","rs","r7","r8","r9","rJ","Boolean","rL","rI","rm","rz","rX","rB","rT","rn","rH","rV","rG","rQ","rD","rN","rS","rC","rk","rF","rg","rt","re","rx","rl","ro","rU","rj","rK","rR","rr","rq","ra","rE","ri","rc","rY","rw","rA","rh","rf","rp","rM","rP","rd","ru","rO","rv","rW","rZ","ry","rb","q0","q1","q2","q3","q4","q5","q6","q7","q8","q9","qJ","qL","qI","qm","qz","qs","qX","qB","qT","qn","qH","qV","qG","qQ","qD","qN","qS","qk","qC","qF","qg","qt","qe","qx","ql","qo","qj","qU","qK","qR","qr","qq","qa","qE","qi","qc","qY","qw","qA","qh","qf","qp","qM","qP","qd","qu","qO","qv","qW","qZ","qy","qb","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aJ","aL","aI","am","az","as","aX","aB","aT","an","aH","aV","aG","aQ","aD","aN","aS","ak","aC","aF","ag","at","ae","ax","al","ao","aj","aU","aK","aR","aq","aa","aE","ai","ac","aY","aw","aA","ah","af","ap","aM","aP","ad","au","aO","av","aW","aZ","ay","ab","E0","E1","E2","E3","E4","E5","E6","E7","E8","E9","EJ","EL","EI","Em","Ez","Es","EX","EB","ET","En","EH","EV","EG","EQ","ED","EN","ES","Ek","EC","EF","Eg","Et","Ee","Ex","El","Eo","Ej","EU","EK","ER","Er","Eq","Ea","EE","Ei","Ec","Ew","EA","Ef","Eh","Ep","EM","EP","Ed","Eu","EO","Ev","EW","EZ","Ey","Eb","i0","i1","i2","i3","i4","MediaStream","MediaRecorder","i5","i6","i7","i8","i9","iJ","iL","iI","im","iz","is","iB","iT","iH","iV","Audio","iG","iQ","iD","iN","iS","iC","iF","ig","it","ie","ix","il","io","ij","iK","iR","ir","iq","ia","iE","ii","ic","iw","iY","iA","ih","ip","iM","iP","iu","iO","iv","iW","iZ","iy","ib","c3","c0","c1","c2","c4","c5","cI","c6","c7","RTCPeerConnection","c8","c9","cJ","cL","cm","cz","cs","cX","cB","cV","cT","cn","cH","cG","cQ","cD","cN","cS","ck","cC","cF","cg","ct","ce","cx","cl","co","cj","cU","cK","cR","cr","cq","ca","cE","ci","cc","cY","cw","ch","cf","HotDealsPage","onPromotionProducts","setOnPromotionProducts","onPromotionTotalRecords","setOnPromotionTotalRecords","onPromotionCurrentPage","setOnPromotionCurrentPage","onPromotionRecordsPerPage","generateDiscountLabel","onPromotion","onPromotionPrice","discountLabelPercentage","toFixed","faFlame","loaderColor","getProviders","providersCollectionRef","SampleAppUIFunctions_1","ocrLocalizationJSON","VocalGuidanceMode","vocalGuidanceOnPlayer","vocalGuidanceOffPlayer","volume","onended","enableVocalGuidanceButtons","vocalGuidanceMode","MINIMAL","fadeInMainUIControls","enableControlButtons","disableControlButtons","removeAttribute","keyboardAccessibilityStylingOn","onKeyDown","buttons","getElementsByClassName","outline","enableKeyboardAccessibilityStyling","displayElementsAfterStyling","disableVocalGuidanceButtons","isMobileDeviceUA","userAgent","soundFileUtilities","paused","playPromise","OFF","play","_event","vocalGuidanceCustomization","mode","FULL","setOCRLocalization","configureOCRLocalization","self","replace","getRandomValues","addEventListener","windowWidth","innerWidth","fontSize","margin","bottom","parentNode","insertBefore","firstChild","transform","querySelector","left","marginTop","marginBottom","footerFontSize","remove","computedFooterFontSize","copyRightStringLength","clientWidth","auditTrailImages","unshift","img","auditTrailOverlay","onclick","contains","append","addDismissibleImagePopUp","OutcomePage","ngenius_transaction_status_1","get_checked_out_basket_thunk_1","reference","useSearchParams","actionType","paymentResponse","setPaymentResponse","intervalId","numTries_1","ngenius_transaction_status","publicationsCollectionRef","querySnapshot","ServerUpgradeLogo","elementToCopyStylesFrom","setServerUpgradeStyling","functionToCallOnExitFromAdditionalScreen","computedStyles","serverUpgradeElement","border","borderRadius","showAdditionalScreen","exitAdditionalScreen","fadeInMainUIFunction","moment","employeeNumber","setEmployeeNumber","setEmployer","workAddress","setWorkAddress","supervisor","setSupervisor","departmentNumber","setDepartmentNumber","workNumber","setWorkNumber","startDate","setStartDate","employerMessage","workAddressMessage","supervisorMessage","departmentNumberMessage","workNumberMessage","setWorkNumberMessage","employeeNumberMessage","startDateMessage","start_date","employee_number","department","appointment_date","unix","DatePickerControl","inputFormat","newDate","reducers_1","configureStore","devTools","enable","middleware","getDefaultMiddleware","serializableCheck","getUserLoans","LOG_PREFIX","logInitializeResult","getFriendlyDescriptionForFaceTecSDKStatus","getStatus","getFriendlyDescriptionForFaceTecIDScanStatus","LockedOut","getFriendlyDescriptionForFaceTecSessionStatus","get_agreement_1","device_sale_agreement_1","clear_action_auth_1","activeAgreement","setActiveAgrement","agreement_response","saveAgreementDetails","update_basket","getWeather","days","lon","aqi","alerts","storage","app_1","storage_1","analytics_1","app","initializeApp","apiKey","authDomain","projectId","storageBucket","messagingSenderId","appId","measurementId","getAnalytics","getAuth","getFirestore","getStorage","LoansPage","get_loans_1","userLoans","setUserLoans","renderLoans","statuses","loan_number","faQuestionCircle","faPenCircle","faTimesCircle","faArchive","faExclamationCircle","collapsePreviousItems","some","client_1","createRoot","render","Provider","store","HashRouter","ForgotPasswordPage","send_reset_password_link_1","setErrorText","successText","setSuccessText","radio","create_basket","storageRef","snapshot","downloadURL","uploadBytes","getDownloadURL","isAuthenticated","sign_in_thunk","sign_in_1","sign_up_1","newUserObj","reset_password_otp","remember_me","searchProducts","set_checkout_local_storage_thunk","recharge_phone_number","setItem","faShield","LoanDetailsPage","get_loan_comments_1","activeLoan","comments","setComments","setProvider","getComments","comment","check_fraud_list","Disclaimer","pep_pip_verification_1","onProceed","terms1","setTerms1","terms2","setTerms2","terms3","setTerms3","checkCookie_1","handleVerificationSuccess","PepPipVerification","getProviderBranches","branchesCollectionRef","ProductPage","get_product_1","productId","onWishlist","setOnWishlist","retrievedProduct","setRetrievedProduct","setQuantity","GalleryControl","images","TabControl","tabs","indicatorColor","products_list_1","pro_solid_svg_icons_2","setProducts","productsItems","setProductItems","ProductCarouselBigControl","loop","faCartArrowUp","SignInPage","ResetPasswordPage","reset_password_1","resetCode","setPassword","rePassword","setRePassword","passwordError","setPasswordError","rePasswordError","setRePasswordError","paypointData","FaceTecApp","cookieValue","setCookieValue","check_duplicates","create_basket_1","add_to_basket_1","basketID_1","update_pep_pip_status","pepPipDocRef","updatedUserDocSnapshot","pep_confimation","pep_reason","is_pep","pep_pip","foreign_pep","domestic_pep","clause_pep","pep_completed","FACESCAN_SUCCESSFUL_SOUND_FILE","PLEASE_FRAME_YOUR_FACE_SOUND_FILE","PLEASE_MOVE_CLOSER_SOUND_FILE","PLEASE_PRESS_BUTTON_SOUND_FILE","PLEASE_RETRY_SOUND_FILE","UPLOADING_SOUND_FILE","pleaseFrameYourFaceInTheOvalSoundFile","pleaseMoveCloserSoundFile","pleaseRetrySoundFile","uploadingSoundFile","facescanSuccessfulSoundFile","pleasePressTheButtonToStartSoundFile","update_pep_pip_status_1","hasSelectedPep","setHasSelectedPep","explanation","explanationError","fields","setFields","fieldChanged","prevFields","BasketPage","empty_1","populated_1","LiveChatPage","get_chats_1","setUserChats","chatData","faSearch","ProfilePage","address_1","details_1","additional_info_1","faUserCircle","faChartBar","faSignOut","minMatchLevel","faceTecScanResultCallback","update_user_facetec_1","checkout_1","checkoutBasket","checkout_basket","loan_amount","CheckoutPage","update_basket_1","all_branches_1","set_checkout_local_storage_thunk_1","constants_1","create_order_1","airtime_purchases_1","ngeniuRedirectURL","origin","selectedBranch","setSelectedBranch","saveAddress","setSaveAddress","newAddressLabel","setNewAddressLabel","newAddressErrorText","setNewAddressErrorText","currentStep","setCurrentStep","deliveryOrCollection","setDeliveryOrCollection","isAddingAddress","setIsAddingAddress","specialInstructions","setSpecialInstructions","airtimeOnly","setAirtimeOnly","branchSearchText","rechargingAnotherParty","setRechargingAnotherParty","paymentMethod","setPaymentMethod","nearestBranches","setNearestBranches","rechargePhoneNumber","setRechargePhoneNumber","ngeniusLoading","setNgeniusLoading","checkAirtime","_res","isAirtimeOnly","branch_id","order_type","branch_list","setDefaultBranch","branch_number","toLowerCase","onNext","nextStep","customSteps","onPrevious","loanProducts","loanApplication","devicesAmount_1","hasDevices_1","saleAgreement","validateBranch","component","paymentType","faHandHoldingDollar","faCircle","hidden","number","correcNumberLocation","validateRechargePhoneNumber","addressObject","offline","faHandsHoldingDollar","delivery","faTruckContainer","redirect_url","myAirtimeProducts_1","redirectUrl","save_airtime_purchases","airtime","_links","payment","StepperControl","stepPillBackgroundColor","steps","faTag","delivery_fee","Airtime_png_1","Money_png_1","Weather_png_1","Phone_png_1","Solar_png_1","News_png_1","HomeAppliances_png_1","News_png_2","imageMap","Airtime","Cellphone","Solar","Electricity","HomeAppliances","DefaultImage","newLabel","airtimePurchasesCollectionRef","formatPhoneNumber","artimeOnly","frameColor","dualSpinnerColor","buttonAndFeedbackBarColor","buttonAndFeedbackBarTextColor","buttonColorHighlight","buttonColorDisabled","cancelButtonLocation","securityWatermarkImage","Zoom","defaultCustomization","sdkImageDirectory","PublicFaceScanEncryptionKey","initializeFromAutogeneratedConfig","ProductionKey","KeyIdentifier","initializeInProductionMode","initializedSuccessfully","about_us_1","contact_us_1","shop_1","log_in_1","profile_1","react_redux_2","product_1","outcome_1","forgot_password_1","search_products_1","orders_1","terms_and_conditions_1","privacy_policy_1","hot_deals_1","free_brands_svg_icons_1","advanced_personal_details_1","employment_details_1","loans_1","details_2","publications_1","articles_1","article_1","weather_1","wishlist_1","return_policy_1","find_stores_1","view_store_1","live_chat_1","faqs_1","facetec_1","get__production_keys_1","account_blocked_1","check_fraud_list_1","check_duplicates_1","verifyEmail_1","searchTerm","setSearchTerm","searchPredictions","setSearchPredictions","userLoaded","setUserLoaded","sdkInitialized","setSdkInitialized","initializationCount","setInitializationCount","is_web","domains","expiryDate","keyText","key_identifier","timeoutId","resetTimer_1","events_1","removeEventListener","scrollToTop","delayFn","search_string","openAccountPage","duplicateAccount","groupName","isOnFraudList","mainAccountEmail","TopHeaderControl","logo","search","displayKey","prediction","searchChanged","searchSelectionChanged","account","displayText","tooltip","placement","showShadow","countTextColor","countBackgroundColor","topBar","underlineColor","contactNumber","contactEmail","menu","menuItems","subItems","DrawerControl","close","toggleOpen","Navigate","WeatherPage","FirebaseAuthRedirectPage","VerifyEmailPage","EmploymentDetailsPage","FooterControl","socialMedia","faFacebook","shortcut","links","customer","contact","faPhoneSquare","faEnvelopeSquare","copyright","company","ModalControl","onClose","searchParams","URLSearchParams","oobCode","apply_action_code_1","responses","setResponses","categoryId","categoryName","setIsloadingProducts","setCurrentPage","fetchProducts","decodeURI","weather","setWeather","country","temp_c","condition","text","forecast","forecastday","mintemp_c","maxtemp_c","faCalendar","faSun","uv","faSunset","astro","sunrise","faThermometerHalf","feelslike_c","faEye","vis_km","get_providers_1","get_branches_1","disclaimer_1","loanAmount","setLoanAmount","loanTerm","setLoanTerm","loanProvider","setLoanProvider","loanBranch","setLoanBranch","branches","setBranches","providers","setProviders","loanAmountError","setLoanAmountError","loanTermError","setLoanTermError","loanBranchError","setLoanBranchError","loanProviderError","setLoanProviderError","loanTerms","setLoanTerms","updateDetails","providers_1","branches_1","virtualProvider","virtualBranch","branchData","tempData_2","newObjects","checkAirStatus","faMoneyBill","sendOptions","campaignName","senderId","costCentre","testMode","destination","customerId","setEmployerMessage","setWorkAddressMessage","setSupervisorMessage","setDepartmentNumberMessage","setEmployeeNumberMessage","setStartDateMessage","employmentDetails","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","chunkIds","fn","priority","notFulfilled","Infinity","every","getter","getPrototypeOf","ns","def","getOwnPropertyNames","definition","globalThis","prop","toStringTag","nmd","paths","children","scriptUrl","importScripts","currentScript","tagName","scripts","getElementsByTagName","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","bind","__webpack_exports__"],"sourceRoot":""}