{"version":3,"mappings":"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","names":["relList","link","processPreload","mutations","mutation","node","getFetchOpts","script","fetchOpts","isValidURL","s","res","isBase64","isDataURL","createStore","state","layout","upsertData","key","value","route","token","obj","rest","features","feat","action","stack","status","loading","progress","document","disable","loader","url","indexData","index","path","newNavStack","data","result","commit","to","from","feature","base64","initateChatBot","l","a","n","e","t","urltoFile","filename","mimeType","buf","getFileTypeFromExtension","fileName","getBase64FileType","validImageDataURL","dataURL","regex","checkToken","JWT","jwt_decode","currentDate","error","getBase64URL","screenId","cb","type","imageUrl","store","myHeaders","init","reader","base64data","imageData","finalImage","getBase64FromURL","id","fileToBase64","file","convertUrlToBase64JPEG","imgUrl","img","binary","uri","getImage","imageName","convertBlobToBase64","blob","blobToBase64","resolve","reject","base64ToBlob","byteCharacters","byteArray","i","compressImage","quality","Compressor","err","decodeBase64","string","truncate","text","length","suffix","enableDisableButton","state1","state2","disable_btn","isObjectEmpty","setNominee","nominees","mobileNumber","totalPercent","item","sessionData","ActionHandler","getConcatedValueFromStore","items","str","customClosePopup","val","SEGMENT_SELECTION_LABELS","getActiveSegments","activeSegments","acc","segment","activateSegmentsAnalytic","formatName","fullName","prefixes","suffixes","specialWords","degrees","names","firstName","lastCharFirstName","otherNames","name","checkPlatform","isAndroid","isIOS","getBrowserName","browserName","getHost","calculateRollOutPercentage","aapNumber","distributionPercentage","handleOpenChatBot","handleCloseChatBot","API_RETRY_CONFIG","HTTP_METHOD_GET","HTTP_METHOD_POST","HTTP_METHOD_PUT","HTTP_METHOD_DELETE","REDIRECT_FROM_TWA","IN_SAME_SESSION","APP_HOME_SCREEN_DEEPLINK","isNetworkError","isTimeout","isRetryRequired","response","config","getHttpErrorForAnalytics","_a","headers","ipNum","ClickStreamAnalyticsOne","__publicField","eventsToSend","localCs","requestParams","_b","UserJourneyType","_Journey","_c","_d","_e","_f","_g","csEvent","forcePush","clikS","delay","events","axios","data1","pair","ip6","parseIp6","ip6str","ar","sar","slen","j","ip6parsed","dt","year","month","date","hours","minutes","secs","milliseconds","dt1","c","r","v","results","ele","sessionID","session_name","Cookies","deviceName","appID","expDate","event","RAW","meta","params","parsedBody","keyParam","formDataKey","field","dflt","fieldValue","screens","routeKey","routeKeyPopUp","_j","clickStreamOne","getCeUID","requestID","getCookieValue","newRequestId","uuidv4","setCookie","getRequestID","getGUID","generateToken","captcha","getToken","TK","defaultOptions","axios_instance_clickstream","ClickStreamAnalytics","clickStreamMeta","cookieName","clickStream","getPayload","payload","currentSearch","urlQuery","urlParams","referralCode","sessionReferralCode","useStartApp","getLayout","csEvents","startTime","networkType","START_API_CONFIG","redirectVal","redirectFromTWA","journeyDeciderReturn","journeyDeciderinStart","http","navStack","calExperianPanAPI","documents","_h","_i","flows","staticConfigs","nvS","applicationStatus","_k","_l","activeSegmentsLabel","showErrorMessage","_m","_n","referralFromSessionStorage","resp","endpoint","respData","assignReferralCode","host","splittedHost","deleteCookieWithDomain","reconstructedUrl","getReferralCodeColonSeperate","requestActionOnChange","referrarCode","utm_medium","profileData","refParam","refParams","param","referralVal","getIPAddress","getDeviceId","deviceId","_LocalNavigator","router","currentUrl","failure","redirectUrl","goBackAlert","topRoute","routes","previousRoute","getPopup","currentRoute","previousPage","backAction","LocalNavigator","statusCode","days","minutesEnable","secure","expires","domain","deleteCookie","nameEQ","ca","appVersion","packageJson","injectToken","redirectFromTwa","injectSource","msg","toast","useToast","showInfoMessage","timeout","HttpClient","c_headers","appJson","method","formData","header","Analytics","event_params","ev","label","CleaverTap","CT_ACCOUNT_ID","CT_REGION","clevertap","eventName","eventPayload","k","loadingEnum","dayjs","customParseFormat","validAccountNumber","banknumber","phoneNumber","number","numberonly","characterSpace","char","validIfsc","ifsc","validEmail","email","alphaNum","pincode","validPAN","pan","validAadhaar","addressValidators","nameValidators","dateValidators","futureDateValidators","todayDate","dateOne","is18yearsOld","dob","dateofBirth","calculateAge","is99yearsOld","today","birthDate","age","m","dateGap","ageVal","isMonthValid","isDayValid","dayy","isYearValid","yearr","d","isYearRequired","birthday","ageDifMs","ageDate","DEFAULT_STATE","useRuleParser","condition","firstRule","validationRule","secondRule","firstRuleResult","checkConditons","secondRuleResult","conditions","getDataFromCond","typeConditionValue","cond","expectedValue","defaultValue","derivedRHSValue","findAllByKey","fieldArray","derivedLHSValue","toBoolean","evaluateCondition","screenWidth","lhs","rhs","strValue","keyArray","useMessageonSnackBar","messageData","conditionValue","messageJson","usePopupManager","initPopups","popups","iterateOverPopups","getActivePopups","isPopupShown","openPopup","idToWatch","newId","parseId","closePopup","getPopupScreen","getPopupParams","popupOnClose","showPopup","useUrlCreator","rawUrl","variableRegex","variable","ACTION_TYPES","API_ACTION_TYPES","clearUploadKeys","_ActionHandler","routerRef","toastMessage","widgetId","formRef","singleAction","parsedHeader","resetFormDataOnFailure","push","valid","banksList","code","bankObj","bank","bankCode","activeButton","pop","forcePop","popToRoute","ref","validationStatus","baseUrl","configVal","CONFIGDATA","finalUrl","body","infoMessageNeeded","apiEndpoint","apiValidationParameters","userAgent","reqbody","sessionToken","mobile","dataVal","existingVal","f","redirectionUrl","ct_msg","parsedData","rawUrlSearch","intent_redirect","hashIntentRedirectUrl","partyCode","guestToken","_o","_p","clientId","_q","_s","jointAccresp","_t","tokenApiRes","jsonPayload","bytes","len","compressed","zlibSync","strToU8","b64Data","rettype","charData","x","binData","decompressSync","byte","objUsertypeResp","arrAccounts","accountList","account","clientCode","passwordset","pinset","rekycNeeded","arrUserName","initials","isActive","nonTradeAccessToken","accountTypeToCheck","accountStatusDemat","accountStatusLoans","rekycParams","hash","CryptoJS","encryptedHexString","storeValue","apiSuccessEv","rule","progressEvent","percentCompleted","bodyParam","total","sum","uniqueKey","arrayData","isPopup","popupId","dlEvent","whatsappUrl","uuidValue","randomValue","initiateDigioDetails","useLifecycleHooks","_onMounted","onLoad","_onUnmounted","onUnLoad","_onErrorCaptured","onError","sfc","props","target","_sfc_main","useStore","computed","closeSnackBar","_component_v_snackbar","_cache","$setup","_withCtx","_createVNode","_component_v_btn","reactive","_openBlock","_normalizeStyle","_createCommentVNode","ImageWidget","_component_v_alert","_createElementBlock","_component_ImageWidget","useFormValue","useCreateValidationRule","validations","rules","formButtonId","validation","element","checkPattern","relations","relation","inCaseCanNotBeMinor","checkMatch","isReq","lessthanTotal","error_code","error_codes","errorMessage","checkLessthan","checkUniqueInArrayObj","searchedData","editNominee","__default__","chk_start_value","onClickAction","requestAction","watch","dependentKey","dependentKeyRule","onMounted","disableTextField","valueToUpdate","updateTextfieldId","isCheckboxUpdateRequired","currentCheckBoxValue","onUnmounted","watchCheckBox","updateRequired","textFieldStoreKeys","concatedValue","handleAnalyticsCallOnChange","makeNewAnalyticObject","_hoisted_2","idx","_createElementVNode","_hoisted_4","_Fragment","isDisabled","_toDisplayString","_component_v_icon","_hoisted_1","_createBlock","_component_v_img","rowDatas","detailKey","tableData","isObject","headerData","_hoisted_3","_ctx","$event","time","timeReactive","getGroup","option","groupData","slotTime","_withScopeId","_component_v_col","_withDirectives","ruleString","storedResponse","dataField","joiner","titleFormat","row","title","current","onSearch","emit","onEnter","onInput","_withKeys","_normalizeClass","cardConfig","editData","editFields","editIndexKey","editAction","deleteData","deleteFields","tableArrayData","elementData","storeData","storeDeleteKeyData","sharePecentStore","isSessionStore","uniqueID","deleteAction","_hoisted_7","_renderList","icon","elementValue","elementKey","handleAction","onAction","_createTextVNode","onBeforeMount","getBase64","resendTime","count","showResend","disableResend","disableResendBtn","showResendTimer","submitApi","widgetIdForAction","widgetName","setTimer","timer","currentValue","useBodyParser","bodyParametersValue","jsonObj","bodyData","cookieVal","parsed","api","parsedBodyData","isButtonDisabled","disabledRule","formClass","hasFullWidth","submitForm","onSubmit","parseValue","cropperImage","image","crop","VueCropper","_component_vue_cropper","useButtonDisabledHooks","handleButtonDisabledState","layoutData","validationField","vl","formDataValueChecker","minColWidth","isRadioSmall","minWebColWidth","isCleared","clearFiled","prevValue","labelDependentOnStoreKey","storeVal","storeKey","labelFromConstantObj","constantObj","dynamicButtonLabel","checkRuleAndStateValue","btnText","buttonSubText","currVal","labelKeyChange","isUploadStarted","isCropOn","croppedValue","croppedImageSrc","showHint","progressValue","errorText","fileInput","isSuccess","isURL","isUrlReactive","imageId","showPreview","uploadButtonId","hideReuploadBtn","setFileName","source","fileSizeDef","extensions","onChange","showUpload","addOnText","validExtension","fileExtension","dlEvents","pseudoFileName","uploadProgress","isLoadingState","pressed","fileSizeByte","previewImageFunc","croppedImageSrcValue","base64CompressedImage","reuploadClick","errorReuploadClick","skipFileManager","reuploadClickFresh","reuploadAgainClick","reuploadCsEvents","reuploadDlEvents","cropOn","src","cropChange","doneCrop","isCropped","rotateLeft","imgg","angle","rotateRight","rotateBase64Image90deg","base64Image","isClockwise","offScreenCanvas","offScreenCanvasCtx","setUploadedFileData","getFileName","onUpdated","fileNameFromUrl","AlertWidget","ImageCropper","_hoisted_21","_hoisted_22","_component_v_progress_circular","_Transition","_component_ImageCropper","_hoisted_25","login","googleTokenLogin","requestActionButton","onTapLoadWhen","_","signaturePad","isEnabled","clearSignature","onBegin","onEnd","_component_VueSignaturePad","ctx","timeoutHandle","signtype","inScreenPopups","dispatchSubmitState","imageURL","signaturesource","sinatureAutoFeature","sinatureAutoFeatureKey","signatureText","setFormData","screenPopups","createDigitalSign","toggleSignType","reSignApplication","submit","signature","loadFont","font","writeText","info","style","canvasEle","fontSize","fontFamily","textAlign","textBaseline","color","y","textSize","capitalizeWords","_component_v_row","_component_SignaturePadWidget","DatePicker","input","select","datepicker_overlay","day","newDate","weekdays","w","wd","getDay","daysInMonth","day2","arrow","months","mainContent","selector","Boolean","rules1","textFieldRef","newVal","isblurr","isFocus","validateSilently","onKeyUp","isNumber","isBlurred","isFocused","evt","charCode","_hoisted_6","_component_v_text_field","_hoisted_5","_hoisted_8","MOBILE_WIDTH_THRESHOLD","useMobileTabletDetector","isMobile","checkMobile","onBeforeUnmount","faceImage","docImage","docImageBase64","faceImageBase64","c_script","hVUrl","hasCameraAccess","hasGeolocationAccess","latitude","longitude","percentRollout","isDataUrlC","loadingHyperverge","updateHasCamsAndGeoAccess","permissionStatus","isForCamera","checkForCameraPermission","cameraPermission","checkCameraAndLocationPermission","locationPermission","position","getPosition","platform","onClick","submitSelfie","runLiveness","hyperVergeStartSession","options","loadScript","removeScript","scriptExists","startSession","tokenArray","setSelfieUrlFn","currentHash","tokenExpire","HyperKycErrorHandler","browser","handler","HyperKycResult","tryAgain","hyperKycConfig","selectedDocumentState","selectedDocumentFileState","setFileUrl","listCompleted","list","list2","selectType","fileType","downloadFile","fileTypeFromName","fileUrl","_withModifiers","margin","padding","flex","size","backgroundColor","textColor","$options","useRouter","activeStep","computed_step","stepperOperation","nextRoute","stepArray","b","useRoute","step","dynamicText","heading","formDataStateKey","isCloseBtnIsClicked","isDeadLineNotExceed","GivenDate","CurrentDate","isDeadLineExceedicon","titleValue","contentValue","content","linkValue","isAadharPanLinkedValue","isAadharPanLinked","closeClick","openLink","_component_v_spacer","visibleAppendIcon","typeAllowedOnly","fieldType","ctrl","shouldDisable","isErrorCodeIncluded","e_code","updateValue","isUpperCaseValue","onChangeAction","isOnChangeAction","checkForLength","maxLength","toggleMarker","appendInnerIcon","toggledAppendIcon","textInput","disableKey","watchEffect","visibleAppendIconWhen","clearFiledBeforeCreateEnable","jointAccountDefaultValue","resendRIghtAlign","pastePrevent","preventPaste","copyPrevent","preventCopy","ResendWidget","_component_ResendWidget","checkValidation","requiredIf","isFieldRequired","v$","useValidate","_component_v_card","BOTTOM_SHEET_CONFIG","VERIFY_WITH_UPI","VERIFY_WITH_BANK","STATUS_API_CALL_INTERVAL_DURATION","TRANSACTION_START_API","TRANSACTION_STATUS_ENDPOINT","SKIP_TO_BANK_MANUALLY_ENDPOINT","CONFIRM_RPD_ENDPOINT","M_WEB","D_WEB","TRANSACTION_START_ACTION","emoticon","suggestion","selectedSuggestions","selectedIdx","otherReasonsText","submitBtnLoader","showRating","appRedirectTimer","windowWidth","showFallbackText","inSameSession","redirectBackToApp","SUGGESTION_CARD_CS_EVENT","SUBMIT_BTN_CLICK_EVENT","submitBtnDisable","rating","suggestionConfig","FEEDBACK_SCORE_API","newSuggestion","FEEDBACK_API","resonsMetaData","submitEvent","apiResp","_hoisted_10","INITIALNAME","selectedItems","_createSlots","onClose","$props","_component_v_card_title","impressionRPDAnalytics","metaData","rpdImpression","chooseMethodRPD","rpdChooseMethod","chooseUPIApp","rpdUpiApp","proceedBtnAnalytics","rpdProceedBtnData","verifyingUpiPayment","rpdVerifying","upiErrorAnalytics","rpdError","enterDetailsAnalytics","bankAccountVerifiedAnalytics","bankAccountVerified","bankConfirmationAnalytics","bankConfirm","continueAPIAnalytics","continuApiData","continueClickAnalytics","continuData","editBankDetailsAnaltyics","editBank","gpayImg","paytmImg","phonepeImg","angelOneLogo","bhimLogo","safeAndFastImg","upiAppsImg","RPD_TIMER","statusAPIIntervalID","statusAPICallTimeoutID","seconds","transactionStatus","bottomSheetOpen","continueButtonDisable","isStatusCallNeeded","transactionID","transactionValidity","qrBase64","qrImage","continueBtnLoader","selectedUpiApp","mobilePlatform","showUPIApps","showStatusWeb","chooseMehtodAnalytics","resetStates","apiCallNeeded","routeToBankManually","callAnalytics","navigateAction","onContinueClick","selectedOption","getQR","updatedVal","getAndroidIntent","deeplinkURL","selectedApp","splittedURL","upperCaseAppName","packageName","checkSuccessStatus","apiData","storeValues","getTransactionStatus","callOnce","apiCallCount","generateDeepLink","isTransactionSuccess","deeplinkURLIOS","commonDeepLinkURL","deepLinkURLAndroid","ITRADE_PRIME_PLAN","ASSISTED_HYBRID_PLAN","recommendedImage","details","benefits","plans","comparePlans","conpareBottomSheet","showComparePopup","checkCircleFilled","failesCrossFilled","compareIcon","setDefaultPlan","openViewDetailsPopup","apiUrl","plan","openCompareBrokeragePopup","AnalyticEventOnClick","onButtonClick","resetCompareStates","chooseBrokeragePlan","brokeragePlan","APPLE_STORE_LINK","PLAY_STORE_LINK","feedBackSubmitted","playStoreImg","appleStoreImg","redirectToStore","redirectToPlayStore","bankName","bankAccountNumber","bankAccountName","goBack","callConfirmRPD","confirmRPDAction","skipApiCall","pdfURLToTest","scale","showLoader","pdfViewerRef","mitcPageNum","loadPdf","pdf","page","canvas","div","renderPage","pageNumber","thePdf","viewport","scrollToPage","scrollToEle","FUND_SETTLEMENT_OPTIONS","closeFrequencyPopup","optionSelected","bankN","selectedBank","startDate","applicationStartDate","referalCode","goToLastPage","resumeThisApplication","_component_v_sheet","_component_v_divider","respFromAPI","rowsName","visibleWhen","formButtonParams","openDeliveryChargePopup","planFetchLoader","isButtonDisable","deliveryChargeBsImpressionAnalytics","TextElementWValueWidget","TextElementWidget","FormButton","kraEsignID","iconProps","addNominee","isJointEsignCompleted","isKRAEsignCompleted","isOneESignDone","_component_form_button","holderData","holderArr","currItem","holder","_component_text_element_w_value_widget","planName","clientType","openBrokeragePopup","ButtonWidgetVue","StepperWidgetVue","ImageWidgetVue","HeadingWidgetVue","TextElementWidgetVue","DynamicTextElementWidgetVue","UploadFileWidgetVue","AlertWidgetVue","RadioButtonVue","SelectDropdownVue","InfoWidgetVue","AutoCompleteWidgetVue","CheckboxWidgetVue","TextFieldWidgetVue","ListWidgetVue","SignaturePadWidgetParentVue","CardWidgetVue","CardCollectionWidgetVue","RatingWidgetVue","CarouselsWidgetVue","NetworkImageWidgetVue","HyperVergeWidgetVue","DocumentListVue","GroupSelectDropdownWidgetVue","FormButtonVue","NewDatePickerVue","ResendWidgetVue","ImageCropperVue","GuidelineDetailsWidgetVue","TextElementWValueWidgetVue","OAuthWidgetVue","AadharLinkAlertVue","AvatarWidget","ComboBoxWidgetVue","SignatureTypeVue","PaymentWidgetVue","BrokeragePlanWidgetVue","ConfirmBankDetailsVue","BrowserSettingsVue","PdfPreviewVue","FeedbackSubmittedVue","FundSettlementFrequencyVue","CarouselsInfoWidgetVue","TopBankListWidgetVue","BankSearchAutoCompleteVue","LeadBlockCardVue","HorizontalLineWidgetVue","BrokeragePlanVue","JointEsignVue","JointAccountHolderVue","CkycConfirmationVue","DeliveryChargeVue","OldAndNewPlanVue","DeliveryChargeJointAccountVue","OldAndNewPlanJointAccountVue","shouldDisableStateKey","debHandleAction","isflexColumn","haveAnyClass","cssClass","widget","_resolveDynamicComponent","screenData","onErrorCaptured","_component_DynamicLayout","useCams","onFinishCams","apiValidationAnalytics","useCreateRoutes","steps","allSteps","paths","sortSteps","_.uniq","getObjectArray","splitAndTrimSteps","stepNumber","indexToReturn","isPersonalFirst","screenKey","currentScreen","stepNum","mobileStepNum","screenFlow","ScreenView","useDigilocker","onFinishDigilocker","hmac","error_description","useDigio","createEvent","message","onFinishDigio","useEsign","onFinishEsign","esp","useGetInitialRoute","initialRoute","persistedNavStack","useNomineeEsign","onFinishNomineeEsign","addNomineeRoute","nomineeData","sessionMobileNumber","stateMobileNumber","popupclass","popupIdToWatch","defineAsyncComponent","__vitePreload","PopupWidgetVue","stepList","allStepList","isChatBotInitiated","layoutConfig","stepsArray","abUserCookie","abUserCookieData","chatBotDisplayRoutes","next","modalOpened","guideline","imageParams","oneCrImageParams","imageStyle","stepperStyle","drawer","isLoaded","digiLockerLoader","camsLoader","esignLoader","popupPersistent","activePopup","currentPhoneNumber","oldPhoneNumber","checkRoute","guide","el","checkBrokerageRoute","checkTermsAndCond","isStepperVisible","isFullPageView","isRegisterEmailPage","getGuidelineId","_component_v_app","_component_v_bottom_sheet","_component_Image","_component_Stepper","_component_router_view","loadFonts","cstmLtTheme","vuetify","createVuetify","NotFound","createRouter","createMemoryHistory","createApp","App","Toast","VueSignaturePad","vue3GoogleLogin","binding"],"sources":["../../vite/modulepreload-polyfill","../../src/utils/url.js","../../src/store/store.js","../../src/services/chatbot.js","../../src/utils/utils.js","../../src/constants/index.js","../../src/utils/httpUtils.js","../../src/composables/clickStreamAnalyticsBackUp.js","../../src/composables/clickStreamAnalytics.js","../../src/composables/useStartApp.js","../../src/composables/useNavigation.js","../../src/services/HttpClient.js","../../src/composables/analytics.js","../../src/composables/Clevertap.js","../../src/constants/enums.js","../../src/validation/validation.js","../../src/composables/useRuleParser.js","../../src/composables/useMessages.js","../../src/composables/usePopupManager.js","../../src/composables/useUrlCreator.js","../../src/handlers/action.js","../../src/composables/useLifecycleHooks.js","../../plugin-vue:export-helper","../../src/widgets/SnackBarWidget.vue","../../src/widgets/ImageWidget.vue","../../src/widgets/InfoWidget.vue","../../src/composables/useFormValue.js","../../src/composables/useCreateValidationRule.js","../../src/widgets/CheckboxWidget.vue","../../src/widgets/CarouselsWidget.vue","../../src/widgets/GuidelineDetailsWidget.vue","../../src/widgets/GroupSelectWidget.vue","../../src/widgets/AutoCompleteWidget.vue","../../src/widgets/CardCollectionWidget.vue","../../src/widgets/TextElementWValueWidget.vue","../../src/widgets/NetworkImageWidget.vue","../../src/widgets/ResendWidget.vue","../../src/composables/useBodyValue.js","../../src/widgets/FormButton.vue","../../src/widgets/ImageCropper.vue","../../src/composables/useButtonDisabledHooks.js","../../src/widgets/RadioButtonWidget.vue","../../src/widgets/ButtonWidget.vue","../../src/widgets/AlertWidget.vue","../../src/widgets/UploadFileWidget.vue","../../src/widgets/OAuthWidget.vue","../../src/widgets/SignaturePadWidget.vue","../../src/widgets/SignatureWidgetParent.vue","../../src/plugins/m-datepicker.js","../../src/widgets/NewDatePicker.vue","../../src/composables/useMobileDetector.js","../../src/widgets/HyperVergeWidget.vue","../../src/widgets/DocumentList.vue","../../src/components/StyleContainer.vue","../../src/widgets/StepperWidget.vue","../../src/widgets/HeadingWidget.vue","../../src/widgets/TextElementWidget.vue","../../src/widgets/DynamicTextElementWidget.vue","../../src/widgets/AadharLinkAlert.vue","../../src/widgets/TextFieldWidget.vue","../../src/widgets/ListWidget.vue","../../src/widgets/SelectDropdownWidget.vue","../../src/widgets/CardWidget.vue","../../src/constants/bandRPDConstants.js","../../src/widgets/RatingWidget.vue","../../src/widgets/AvatarWidget.vue","../../src/widgets/ComboBoxWidget.vue","../../src/widgets/SignatureType.vue","../../src/widgets/SlottedPopup.vue","../../src/utils/bankRPDUtil.js","../../src/widgets/PaymentWidget.vue","../../src/widgets/BrokeragePlanWidget.vue","../../src/widgets/FeedbackSubmitted.vue","../../src/widgets/ConfirmBankDetails.vue","../../src/widgets/BrowserSettings.vue","../../src/widgets/PdfPreview.vue","../../src/widgets/FundSettlementFrequency.vue","../../src/widgets/CarouselsInfoWidget.vue","../../src/widgets/TopBankListWidget.vue","../../src/widgets/BankSearchAutoComplete.vue","../../src/widgets/LeadBlockCard.vue","../../src/widgets/HorizontalLineWidget.vue","../../src/widgets/OldAndNewPlanJointAccount.vue","../../src/widgets/DeliveryChargeJointAccount.vue","../../src/widgets/JointEsign.vue","../../src/widgets/JointAccountHolder.vue","../../src/widgets/BrokeragePlan.vue","../../src/widgets/CkycConfirmationWidget.vue","../../src/widgets/OldAndNewPlan.vue","../../src/widgets/DeliveryCharge.vue","../../src/components/DynamicLayout.vue","../../src/components/ScreenView.vue","../../src/composables/useCams.js","../../src/composables/useCreateRoutes.js","../../src/composables/useDigilocker.js","../../src/composables/useDigio.js","../../src/composables/useEsign.js","../../src/composables/useGetInitialRoute.js","../../src/composables/useNomineeEsign.js","../../src/widgets/PopupWidget.vue","../../src/App.vue","../../src/plugins/webfontloader.js","../../src/plugins/vuetify.js","../../src/main.js"],"sourcesContent":["__VITE_IS_MODERN__&&(function polyfill() {\n const relList = document.createElement('link').relList;\n if (relList && relList.supports && relList.supports('modulepreload')) {\n return;\n }\n for (const link of document.querySelectorAll('link[rel=\"modulepreload\"]')) {\n processPreload(link);\n }\n new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.type !== 'childList') {\n continue;\n }\n for (const node of mutation.addedNodes) {\n if (node.tagName === 'LINK' && node.rel === 'modulepreload')\n processPreload(node);\n }\n }\n }).observe(document, { childList: true, subtree: true });\n function getFetchOpts(script) {\n const fetchOpts = {};\n if (script.integrity)\n fetchOpts.integrity = script.integrity;\n if (script.referrerpolicy)\n fetchOpts.referrerPolicy = script.referrerpolicy;\n if (script.crossorigin === 'use-credentials')\n fetchOpts.credentials = 'include';\n else if (script.crossorigin === 'anonymous')\n fetchOpts.credentials = 'omit';\n else\n fetchOpts.credentials = 'same-origin';\n return fetchOpts;\n }\n function processPreload(link) {\n if (link.ep)\n // ep marker = processed\n return;\n link.ep = true;\n // prepopulate the load record\n const fetchOpts = getFetchOpts(link);\n fetch(link.href, fetchOpts);\n }\n}());","/* eslint-disable */\nexport function isValidURL(s = \"\") {\n if (typeof s != \"string\") return false;\n var res = s.match(\n /(http(s)?:\\/\\/.)?(www\\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_+.~#?&//=]*)/g,\n );\n return res !== null;\n}\n\nexport function isBase64(s = \"\") {\n if (typeof s != \"string\") return false;\n var res = s.match(\n /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,\n );\n return res !== null;\n}\n\nexport function isDataURL(s) {\n if (typeof s != \"string\") return false;\n return !!s.match(isDataURL.regex);\n}\nisDataURL.regex =\n /^\\s*data:([a-z]+\\/[a-z]+(;[a-z\\-]+\\=[a-z\\-]+)?)?(;base64)?,[a-z0-9\\!\\$\\&\\'\\,\\(\\)\\*\\+\\,\\;\\=\\-\\.\\_\\~\\:\\@\\/\\?\\%\\s]*\\s*$/i;\n","import { createStore } from \"vuex\";\nexport default createStore({\n state() {\n return {\n layout: {},\n formData: {\n documents: [],\n totalSharePercent: 0,\n INITIATE_CHATBOT: false,\n },\n formState: {},\n popups: {},\n activeRoute: null,\n previousRoute: null,\n hyperVergeToken: \"\",\n features: {},\n action: {},\n navStack: [],\n persistedNavStack: [],\n snack_bar: {\n text: \"\",\n snackbar: false,\n timeout: 0,\n color: \"\",\n multiLine: false,\n },\n loadingIndicators: {},\n progressIndicators: {},\n apiResponses: {},\n pageLoader: false,\n buttonDisable: false,\n isDigilockerLoaded: true,\n isCamsLoaded: true,\n isEsignLoaded: true,\n isPageSubmitButton: \"\",\n isModalSubmitButton: \"\",\n ignoreBrowserPromt: false,\n croppedImage: null,\n textFieldDisables: {},\n loginAuthenticationAttemptMessage: {},\n staticConfigs: {},\n };\n },\n mutations: {\n SET_LAYOUT_DATA(state, layout) {\n if (layout && Object.getPrototypeOf(layout) === Object.prototype) {\n state.layout = layout;\n } else {\n throw new Error(\n \"layout contract voilated, extected an object with key & value properties\"\n );\n }\n },\n SET_FORM_DATA(state, upsertData) {\n if (Object.getPrototypeOf(upsertData) === Object.prototype) {\n const { key, value } = upsertData;\n state.formData[key] = value;\n } else {\n throw new Error(\n \"FormData upsert contract voilated, extected an object with key & value properties\"\n );\n }\n },\n SET_FORM_DATA_MULTIPLE(state, upsertData) {\n if (Array.isArray(upsertData)) {\n upsertData.forEach(({ key, value }) => {\n state.formData[key] = value;\n });\n } else {\n throw new Error(\n \"FormData upsert contract voilated, extected an object with key & value properties\"\n );\n }\n },\n CLEAR_FORM_DATA(state, key) {\n if (state.formData[key]) {\n delete state.formData[key];\n }\n },\n CLEAR_API_RESPONSES(state, key) {\n if (state.apiResponses[key]) {\n delete state.apiResponses[key];\n }\n },\n SET_API_DATA(state, upsertData) {\n if (upsertData) {\n const { key, value } = upsertData;\n state.apiResponses[key] = value;\n }\n },\n INITIATE_CHATBOT(state) {\n state.formData[\"INITIATE_CHATBOT\"] = true;\n },\n UNLOAD_CHATBOT(state) {\n state.formData[\"INITIATE_CHATBOT\"] = false;\n },\n SET_POPUP(state, upsertData) {\n if (Object.getPrototypeOf(upsertData) === Object.prototype) {\n const { key, value } = upsertData;\n if (key && typeof key == \"string\") {\n state.popups[key] = value;\n }\n } else {\n throw new Error(\n \"FormData upsert contract voilated, extected an object with key & value properties\"\n );\n }\n },\n SET_FORM_STATE(state, upsertData) {\n if (Object.getPrototypeOf(upsertData) === Object.prototype) {\n const { key, value } = upsertData;\n state.formState[key] = value;\n } else {\n throw new Error(\n \"FormData upsert contract voilated, extected an object with key & value properties\"\n );\n }\n },\n SET_ACTIVE_ROUTE(state, route) {\n if (typeof route == \"string\") {\n state.activeRoute = route;\n } else {\n throw new Error(\"route must be a string\");\n }\n },\n SET_PREVIOUS_ROUTE(state, route) {\n if (typeof route == \"string\") {\n state.previousRoute = route;\n } else {\n throw new Error(\"route must be a string\");\n }\n },\n SET_HYPERVERGE_TOKEN(state, token) {\n if (typeof token == \"string\") {\n state.hyperVergeToken = token;\n } else {\n throw new Error(\"token must be a string\");\n }\n },\n SET_SNACK_BAR(state, obj) {\n if (Object.getPrototypeOf(obj) == Object.prototype) {\n const { text, snackbar, timeout, color, ...rest } = obj;\n state.snack_bar = { text, snackbar, timeout, color, ...rest };\n } else {\n throw new Error(\"Snackbar Object is not valid\");\n }\n },\n SET_SNACK_BAR_CLOSE(state) {\n state.snack_bar = {\n text: \"\",\n snackbar: false,\n timeout: 0,\n color: \"\",\n multiLine: false,\n };\n },\n SET_FEATURES(state, features) {\n if (features && Object.getPrototypeOf(features) === Object.prototype) {\n const feat = state.features || {};\n state.features = { ...feat, ...features };\n } else {\n throw new Error(\n \"features contract voilated, extected an object with key & value properties\"\n );\n }\n },\n\n SET_STATIC_CONFIG(state, value) {\n if (value && Object.getPrototypeOf(value) === Object.prototype) {\n state.staticConfigs = value;\n } else {\n throw new Error(\n \"static config contract voilated, extected an object with key & value properties\"\n );\n }\n },\n SET_ACTION(state, action) {\n if (action && Object.getPrototypeOf(action) === Object.prototype) {\n state.action = action;\n } else {\n throw new Error(\n \"action contract voilated, extected an object with key & value properties\"\n );\n }\n },\n SET_PERSIST_NAV_STACK(state, stack) {\n if (stack && Object.getPrototypeOf(stack) === Array.prototype) {\n state.persistedNavStack = stack;\n } else {\n throw new Error(\n \"stack contract voilated, extected an object with key & value properties\"\n );\n }\n },\n SET_APPLICATION_STATUS(state, status) {\n if (status) {\n state.applicationStatus = status;\n } else {\n throw new Error(\"Invalid Status\");\n }\n },\n SET_LOADING(state, loading) {\n if (typeof loading == \"object\") {\n state.loadingIndicators = { ...state.loadingIndicators, ...loading };\n } else {\n throw new Error(\"Loading must be a object\");\n }\n },\n SET_CLEAR_LOADING(state) {\n state.loadingIndicators = {};\n },\n SET_CLEAR_EDITINDEX(state, value) {\n state[value] = \"\";\n },\n SET_LOADING_PROGRESS(state, progress) {\n if (typeof progress == \"object\") {\n state.progressIndicators = { ...state.progressIndicators, ...progress };\n } else {\n throw new Error(\"Progress must be a object\");\n }\n },\n SET_CLEAR_PROGRESS(state) {\n state.progressIndicators = {};\n },\n SET_DOCUMENT_LIST(state, document) {\n if (document && Object.getPrototypeOf(document) === Array.prototype) {\n state.formData.documents = [...document];\n } else {\n throw new Error(\n \"document contract voilated, extected an array properties\"\n );\n }\n },\n CLEAR_DOCUMENT_FORMDATA(state) {\n state.formData[\"documentList\"] = [];\n },\n SET_PAGELOADER(state, loading) {\n if (loading && typeof loading == \"boolean\") {\n state.pageLoader = loading;\n } else {\n throw new Error(\n \"loading contract voilated, extected an boolean properties\"\n );\n }\n },\n SET_BUTTON_DISABLE(state, disable) {\n if (disable && typeof disable == \"boolean\") {\n state.buttonDisable = disable;\n } else {\n throw new Error(\n \"button disable contract voilated, extected an boolean properties\"\n );\n }\n },\n SET_DIGILOCERLOADER(state, loader) {\n if (typeof loader == \"boolean\") {\n state.isDigilockerLoaded = loader;\n } else {\n throw new Error(\n \"digilocer loader contract voilated, extected an boolean properties\"\n );\n }\n },\n SET_CAMSLOADER(state, loader) {\n if (typeof loader == \"boolean\") {\n state.isCamsLoaded = loader;\n } else {\n throw new Error(\n \"Cams loader contract voilated, extected an boolean properties\"\n );\n }\n },\n SET_ESIGNLOADER(state, loader) {\n if (typeof loader == \"boolean\") {\n state.isEsignLoaded = loader;\n } else {\n throw new Error(\n \"esign loader contract voilated, extected an boolean properties\"\n );\n }\n },\n SET_SELFI_URL(state, url) {\n if (typeof url == \"string\") {\n state.formData.selfieImageUrl = url;\n } else {\n throw new Error(\n \"selfie url contract voilated, extected an string properties\"\n );\n }\n },\n SET_CROPPED_IMAGE(state, url) {\n if (typeof url == \"string\") {\n state.croppedImage = url;\n } else {\n throw new Error(\n \"croppedImage url contract voilated, extected an string properties\"\n );\n }\n },\n SET_INDEXKEY_VALUE(state, indexData) {\n if (Object.getPrototypeOf(indexData) === Object.prototype) {\n const { key, value } = indexData;\n state[key] = value;\n } else {\n throw new Error(\"Invalid Key\");\n }\n },\n PUSH_NAV(state, route) {\n if (route && Object.getPrototypeOf(route) === String.prototype) {\n state.navStack.push(route);\n } else {\n throw new Error(\n \"route contract voilated, extected an object with key & value properties\"\n );\n }\n },\n SET_TEXT_FIELD_DISABLE(state, value) {\n if (typeof value == \"object\") {\n state.textFieldDisables = { ...state.textFieldDisables, ...value };\n } else {\n throw new Error(\"Invalid value\");\n }\n },\n POP_NAV(state) {\n if (state.navStack.length > 1) {\n state.navStack.pop();\n } else {\n // console.warn(\"nav stack is already empty\");\n }\n },\n POP_NAV_ROUTE(state, route = \"\") {\n if (route) {\n let index = state.navStack.findIndex((path) => path == route);\n if (state.navStack.length > 1 && index > -1) {\n let newNavStack = state.navStack.slice(0, index + 1);\n state.navStack = [...newNavStack];\n } else {\n // console.warn(\"nav stack is already empty\");\n }\n } else {\n throw new Error(\n \"route contract voilated, extected an string properties\"\n );\n }\n },\n MANAGE_ACTIVE_SUBMIT_BUTTON(state, data) {\n state[data.state] = data.value;\n },\n SET_BUTTON_TO_DISABLE(state, value) {\n let result = null;\n Object.keys(state.popups).forEach((key) => {\n if (state.popups[key] == true) result = key;\n });\n if (result) {\n state[state.isModalSubmitButton] = value;\n } else {\n state[state.isPageSubmitButton] = value;\n }\n },\n IGNORE_BROWSER_PROMPT(state, value) {\n state.ignoreBrowserPromt = value;\n },\n DELETE_FORM_FIELD(state, key) {\n if (state.formData[key]) {\n if (key && Object.getPrototypeOf(key) === String.prototype) {\n delete state.formData[key];\n } else {\n throw new Error(\n \"delete contract voilated, extected an object with key & value properties\"\n );\n }\n }\n },\n CLEAR_CORP_IMAGE(state) {\n state.croppedImage = null;\n },\n CLEAR_DERIVATIVE_SELECTION(state) {\n state.formData.derivativeProofFile = null;\n state.formData.derivativesType = null;\n },\n\n SET_NOMINIEES_PERCENT(state, value) {\n state.formData.totalSharePercent = value;\n },\n SET_AUTHENTICATION_MESSAGE(state, value) {\n if (typeof value == \"object\") {\n state.loginAuthenticationAttemptMessage = {\n ...state.loginAuthenticationAttemptMessage,\n ...value,\n };\n } else {\n throw new Error(\"Invalid value\");\n }\n },\n\n SET_POPUP_ID_TO_WATCH(state, value) {\n state[\"popupIdToWatch\"] = value;\n },\n SET_SIGNATURE_IMG(state, value) {\n state.formData.signatureImageUrl = value;\n },\n SET_GUIDELINE_DET_KEY(state, value) {\n state.guidelineDetKey = value;\n },\n },\n actions: {\n setLayout({ commit }, layout) {\n commit(\"SET_LAYOUT_DATA\", layout);\n },\n setFormData({ commit }, upsertData) {\n commit(\"SET_FORM_DATA\", upsertData);\n },\n setFormDataMultiple({ commit }, upsertData) {\n commit(\"SET_FORM_DATA_MULTIPLE\", upsertData);\n },\n setAPIData({ commit }, upsertData) {\n commit(\"SET_API_DATA\", upsertData);\n },\n setFormState({ commit }, upsertData) {\n commit(\"SET_FORM_STATE\", upsertData);\n },\n setPopup({ commit }, upsertData) {\n commit(\"SET_POPUP\", upsertData);\n },\n openPopup({ commit }, key) {\n if (!key) return;\n commit(\"SET_POPUP\", {\n key,\n value: true,\n });\n },\n closePopup({ commit }, key) {\n commit(\"SET_POPUP\", {\n key,\n value: false,\n });\n },\n setRoute({ commit }, { to, from }) {\n commit(\"SET_ACTIVE_ROUTE\", to.path);\n commit(\"SET_PREVIOUS_ROUTE\", from.path);\n },\n setHyperToken({ commit }, token) {\n commit(\"SET_HYPERVERGE_TOKEN\", token);\n },\n setSnackBar({ commit }, obj) {\n commit(\"SET_SNACK_BAR\", obj);\n },\n closeSnackBar({ commit }) {\n commit(\"SET_SNACK_BAR\");\n },\n setFeatures({ commit }, feature) {\n commit(\"SET_FEATURES\", feature);\n },\n setStaticConfig({ commit }, value) {\n commit(\"SET_STATIC_CONFIG\", value);\n },\n setAction({ commit }, action) {\n commit(\"SET_ACTION\", action);\n },\n setPersistNavStack({ commit }, stack) {\n commit(\"SET_PERSIST_NAV_STACK\", stack);\n },\n setApplicationStatus({ commit }, status) {\n commit(\"SET_APPLICATION_STATUS\", status);\n },\n setLoading({ commit }, loading) {\n commit(\"SET_LOADING\", loading);\n },\n clearFormData({ commit }, key) {\n commit(\"CLEAR_FORM_DATA\", key);\n },\n initiateChatBot({ commit }, key) {\n commit(\"INITIATE_CHATBOT\", key);\n },\n unloadChatBot({ commit }, key) {\n commit(\"UNLOAD_CHATBOT\", key);\n },\n clearAPIResponses({ commit }, key) {\n commit(\"CLEAR_API_RESPONSES\", key);\n },\n setClearLoading({ commit }) {\n commit(\"SET_CLEAR_LOADING\");\n },\n setClearEditIndex({ commit }, value) {\n commit(\"SET_CLEAR_EDITINDEX\", value);\n },\n setProgress({ commit }, progress) {\n commit(\"SET_LOADING_PROGRESS\", progress);\n },\n setClearProgress({ commit }) {\n commit(\"SET_CLEAR_PROGRESS\");\n },\n setDocumentList({ commit }, document) {\n commit(\"SET_DOCUMENT_LIST\", document);\n },\n clearDocumentListFormdata({ commit }) {\n commit(\"CLEAR_DOCUMENT_FORMDATA\");\n },\n setPageLoading({ commit }, loading) {\n commit(\"SET_PAGELOADER\", loading);\n },\n setDigiLocader({ commit }, loading) {\n commit(\"SET_DIGILOCERLOADER\", loading);\n },\n setCamsLocader({ commit }, loading) {\n commit(\"SET_CAMSLOADER\", loading);\n },\n setEsignLoader({ commit }, loading) {\n commit(\"SET_ESIGNLOADER\", loading);\n },\n setButtonDisable({ commit }, disable) {\n commit(\"SET_BUTTON_DISABLE\", disable);\n },\n setSelfieURL({ commit }, url) {\n commit(\"SET_SELFI_URL\", url);\n },\n pushNav({ commit }, route) {\n commit(\"PUSH_NAV\", route);\n },\n popNav({ commit }) {\n commit(\"POP_NAV\");\n },\n popRouteToNav({ commit }, route) {\n commit(\"POP_NAV_ROUTE\", route);\n },\n manageActiveSubmitButton({ commit }, data) {\n commit(\"MANAGE_ACTIVE_SUBMIT_BUTTON\", data);\n },\n setButtonToDisable({ commit }, data) {\n commit(\"SET_BUTTON_TO_DISABLE\", data);\n },\n setTextFieldDisable({ commit }, value) {\n commit(\"SET_TEXT_FIELD_DISABLE\", value);\n },\n ignoreBrowserPrompt({ commit }, data) {\n commit(\"IGNORE_BROWSER_PROMPT\", data);\n },\n deleteFormField({ commit }, key) {\n commit(\"DELETE_FORM_FIELD\", key);\n },\n setCroppedImage({ commit }, base64) {\n commit(\"SET_CROPPED_IMAGE\", base64);\n },\n setIndexValue({ commit }, indexData) {\n commit(\"SET_INDEXKEY_VALUE\", indexData);\n },\n clearCroppedImage({ commit }) {\n commit(\"CLEAR_CORP_IMAGE\");\n },\n clearDerivativeFile({ commit }) {\n commit(\"CLEAR_DERIVATIVE_SELECTION\");\n },\n setTotalPercentOfNominees({ commit }, value) {\n commit(\"SET_NOMINIEES_PERCENT\", value);\n },\n setAuthenticationMessage({ commit }, value) {\n commit(\"SET_AUTHENTICATION_MESSAGE\", value);\n },\n setPopupIdToWatch({ commit }, value) {\n commit(\"SET_POPUP_ID_TO_WATCH\", value);\n },\n setSignature({ commit }, value) {\n commit(\"SET_SIGNATURE_IMG\", value);\n },\n setGuidelineDetKey({ commit }, value) {\n commit(\"SET_GUIDELINE_DET_KEY\", value);\n },\n },\n});\n","export const initateChatBot = () => {\n (async () => {\n const p = (l, s, a, i) => {\n const n = () => {\n if (!s.getElementById(a)) {\n const e = s.getElementsByTagName(i)[0],\n t = s.createElement(i);\n (t.type = \"text/javascript\"),\n (t.async = !1),\n (t.src = \"https://app.alltius.ai/alltiusSDK.js\"),\n (t.id = a),\n e && e.parentNode\n ? e.parentNode.insertBefore(t, e)\n : s.body.appendChild(t);\n }\n };\n if (!l.AlltiusSDK) {\n const e = (...t) => {\n e.q.push(t);\n };\n (e.q = []),\n (l.AlltiusSDK = e),\n s.readyState === \"complete\" ? n() : l.addEventListener(\"load\", n);\n }\n };\n await p(window, document, \"alltius-sdk\", \"script\");\n })();\n\n window.AlltiusSDK(\"configure\", {\n metatadata: {\n widgetId: \"655c6f8b904987797b01b01c\",\n },\n });\n};\n","import ActionHandler from \"@/handlers/action\";\nimport Compressor from \"compressorjs\";\nimport { isBase64 } from \"./url\";\nimport jwt_decode from \"jwt-decode\";\nimport store from \"@/store/store\";\nimport { initateChatBot } from \"@/services/chatbot\";\n\nexport function urltoFile(url, filename) {\n let mimeType = (url.match(/^data:([^;]+);/) || \"\")[1];\n return fetch(url)\n .then(function (res) {\n return res.arrayBuffer();\n })\n .then(function (buf) {\n return new File([buf], filename, { type: mimeType });\n })\n .catch((e) => {\n console.error(e);\n });\n}\n\nfunction getFileTypeFromExtension(fileName) {\n const re = /(?:\\.([^.]+))?$/;\n return re.exec(fileName)[1];\n}\n\nexport function getBase64FileType(fileName) {\n const fileType = getFileTypeFromExtension(fileName);\n switch (fileType) {\n case \"pdf\":\n return \"data:application/pdf;base64\";\n case \"png\":\n return \"data:image/png;base64\";\n case \"jpg\":\n case \"jpeg\":\n return \"data:image/jpeg;base64\";\n\n default:\n return null;\n }\n}\n\nexport const validImageDataURL = (dataURL) => {\n const regex = /data:(image\\/(?=png|jpg|jpeg);*)/i;\n return typeof dataURL === \"string\" && dataURL.match(regex)\n ? dataURL.match(regex).length\n : false;\n};\n\nexport function getBase64(file) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result);\n reader.onerror = (error) => reject(error);\n });\n}\n\n/* no longer used */\n// export function isPWA() {\n// return window && window.matchMedia(\"(display-mode: standalone)\").matches;\n// }\n\nexport function checkToken(token) {\n try {\n const JWT = jwt_decode(token);\n const currentDate = Math.round(new Date().getTime() / 1000);\n if (JWT && JWT.exp > currentDate) {\n return JWT;\n }\n return null;\n } catch (error) {\n return null;\n }\n}\n\nexport async function getBase64URL(\n screenId,\n cb,\n type = \"data:image/png;base64\" //getBase64 data:application/pdf;base64\n) {\n let imageUrl = store.state.formData[screenId];\n var myHeaders = new Headers();\n myHeaders.append(\"pragma\", \"no-cache\");\n myHeaders.append(\"cache-control\", \"no-cache\");\n myHeaders.append(\"Origin\", window.location.origin);\n myHeaders.append(\"Access-Control-Allow-Origin\", window.location.origin);\n myHeaders.append(\"Access-Control-Allow-Methods\", \"GET\");\n var init = {\n method: \"GET\",\n headers: myHeaders,\n };\n return fetch(imageUrl, init)\n .then((data) => {\n return data.blob();\n })\n .then((data) => {\n var reader = new FileReader();\n reader.readAsDataURL(data);\n reader.onload = async function () {\n var base64data = reader.result;\n var imageData = [...base64data.split(\",\")];\n imageData[0] = type;\n let finalImage = imageData.join(\", \");\n store.dispatch(\"setFormData\", {\n key: screenId,\n value: finalImage,\n });\n cb(finalImage);\n };\n })\n .catch((e) => {\n console.error(e);\n });\n}\n\nexport async function getBase64FromURL(\n id,\n type = \"data:application/pdf;base64\", //getBase64 \"data:application/pdf;base64\"\n cb\n) {\n const url = store.state.formData[id];\n var myHeaders = new Headers();\n myHeaders.append(\"pragma\", \"no-cache\");\n myHeaders.append(\"cache-control\", \"no-cache\");\n myHeaders.append(\"Origin\", window.location.origin);\n myHeaders.append(\"Access-Control-Allow-Origin\", window.location.origin);\n myHeaders.append(\"Access-Control-Allow-Methods\", \"GET\");\n var init = {\n method: \"GET\",\n headers: myHeaders,\n };\n return fetch(url, init)\n .then((data) => {\n return data.blob();\n })\n .then((data) => {\n var reader = new FileReader();\n reader.readAsDataURL(data);\n reader.onload = async function () {\n var base64data = reader.result;\n var imageData = [...base64data.split(\",\")];\n imageData[0] = type;\n let finalImage = imageData.join(\", \");\n cb(finalImage);\n };\n })\n .catch((e) => {\n console.error(e);\n });\n}\n\n// Need to refactor the code\nexport function fileToBase64(file, cb) {\n var reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = function () {\n cb(reader.result);\n };\n}\n\nexport function convertUrlToBase64JPEG(\n imgUrl,\n id,\n type = \"data:image/jpeg;base64\"\n) {\n var myHeaders = new Headers();\n myHeaders.append(\"pragma\", \"no-cache\");\n myHeaders.append(\"cache-control\", \"no-cache\");\n myHeaders.append(\"Origin\", window.location.origin);\n myHeaders.append(\"Access-Control-Allow-Origin\", window.location.origin);\n myHeaders.append(\"Access-Control-Allow-Methods\", \"GET\");\n var init = {\n method: \"GET\",\n headers: myHeaders,\n };\n fetch(imgUrl, init)\n .then((data) => {\n return data.blob();\n })\n .then((data) => {\n var reader = new FileReader();\n const img = new Image();\n reader.onload = async function () {\n const value = reader.result;\n var binary = [...value.split(\",\")];\n binary[0] = type;\n let uri = binary.join(\", \");\n img.src = uri;\n await img.decode();\n store.dispatch(\"setFormData\", {\n key: id,\n value: img.src,\n });\n };\n reader.readAsDataURL(data);\n })\n .catch((e) => {\n console.error(e);\n });\n}\n\nexport const getImage = (imageName) =>\n `https://cdn.angelone.in/kyc/images/${imageName}`;\n\nexport const convertBlobToBase64 = async (blob) => {\n // blob data\n return await blobToBase64(blob);\n};\n\nconst blobToBase64 = (blob) =>\n new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(blob);\n reader.onload = () => resolve(reader.result);\n reader.onerror = (error) => reject(error);\n });\n\nexport const base64ToBlob = (base64) => {\n const byteCharacters = atob(base64);\n const byteArray = new Uint8Array(byteCharacters.length);\n\n for (let i = 0; i < byteCharacters.length; i++) {\n byteArray[i] = byteCharacters.charCodeAt(i);\n }\n\n return new Blob([byteArray]);\n};\n\nexport const compressImage = (file, quality = 0.8) => {\n return new Promise((resolve, reject) => {\n new Compressor(file, {\n quality: quality,\n success(result) {\n resolve(result);\n },\n error(err) {\n reject(err);\n },\n });\n });\n};\n\nexport const decodeBase64 = (string) => {\n if (isBase64(string)) {\n return window.atob(decodeURIComponent(string));\n }\n return string;\n};\n\nexport const truncate = (text, length, suffix) => {\n if (text.length > length) {\n return text.substring(0, length) + suffix;\n } else {\n return text;\n }\n};\n\nexport function enableDisableButton(state1, state2) {\n if (state1 && state2) {\n const disable_btn = !!(state1 && state2);\n store.dispatch(\"setButtonToDisable\", disable_btn ? false : true);\n }\n}\n\nexport function isObjectEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n\nexport function setNominee(nominees = [], mobileNumber) {\n let totalPercent = 0;\n sessionStorage.setItem(\"nominees\", nominees);\n nominees.forEach((item) => {\n totalPercent += item.sharePercent;\n });\n sessionStorage.setItem(\"totalSharePercent\", totalPercent);\n let sessionData = {\n totalSharePercent: totalPercent,\n nominees: nominees,\n };\n if (mobileNumber) {\n // sessionStorage.setItem(\"mobile\", mobileNumber);\n sessionData.mobile = mobileNumber;\n }\n ActionHandler.setSessionDataFromOBJ(sessionData);\n\n store.dispatch(\"setTotalPercentOfNominees\", totalPercent);\n}\n\nexport function onlyNumbers(value) {\n if (value) {\n return value.replace(/[^0-9]/g, \"\");\n }\n}\n\nexport const getConcatedValueFromStore = (items) => {\n let str = \"\";\n items.forEach((key) => {\n str += store.state.formData[key] || \"\";\n });\n return str;\n};\n\nexport const customClosePopup = {\n segmentActivationPopup: (val) => {\n store.dispatch(\"setFormData\", {\n key: \"segmentSelection\",\n value: [...val],\n });\n },\n};\n\nconst SEGMENT_SELECTION_LABELS = {\n isEquity: \"Equity & Mutual Funds\",\n isFnO: \"Futures & Option\",\n isCurrency: \"Currency\",\n isCommodity: \"Commodity\",\n};\n\nexport const getActiveSegments = (data) => {\n let activeSegments = [];\n activeSegments = Object.keys(data).reduce((acc, segment) => {\n if (data[segment]) {\n acc = [...acc, SEGMENT_SELECTION_LABELS[segment]];\n }\n return acc;\n }, []);\n return activeSegments;\n};\n\nexport const activateSegmentsAnalytic = {\n \"Futures & Option\": {\n event_name: \"segmentactivationF&O\",\n event_id: \"73.0.0.25.7\",\n },\n Currency: {\n event_name: \"segmentactivationCURR\",\n event_id: \"73.0.0.25.8\",\n },\n Commodity: {\n event_name: \"segmentactivationCOMM\",\n event_id: \"73.0.0.25.9\",\n },\n};\n\nexport function formatName(fullName) {\n if (!fullName) return null;\n const prefixes = [\n \"Mr.\",\n \"Mrs.\",\n \"Dr.\",\n \"Ms.\",\n \"Fr.\",\n \"Sir\",\n \"Prof.\",\n \"Mr\",\n \"Mrs\",\n \"Dr\",\n \"Ms\",\n \"Fr\",\n \"Prof\",\n ];\n const suffixes = [\"Sr\", \"Jr\", \"I\", \"II\", \"III\"];\n const specialWords = [\"C/O\", \"D/O\", \"S/O\", \"S.O\"];\n const degrees = [\"B.Tech\", \"MBA\", \"BSc\", \"IAS\", \"IPS\"];\n const names = fullName.trim().split(\" \");\n let firstName =\n !prefixes.includes(names[0]) &&\n !suffixes.includes(names[0]) &&\n !specialWords.includes(names[0]) &&\n !degrees.includes(names[0])\n ? names[0]\n : names[1];\n\n const lastCharFirstName = firstName.charAt(firstName.length - 1);\n if (lastCharFirstName === \".\" || lastCharFirstName === \",\") {\n firstName = firstName.substr(0, firstName.length - 1);\n }\n\n let otherNames = \"\";\n for (let i = 0; i < names.length; i++) {\n const name = names[i];\n if (\n !prefixes.includes(name) &&\n !suffixes.includes(name) &&\n !specialWords.includes(name) &&\n !degrees.includes(name) &&\n firstName != name\n ) {\n otherNames += \" \" + name.charAt(0);\n if (firstName.length > 15 || otherNames.trim().length > 3) break;\n }\n }\n if (firstName.length > 15) {\n firstName = firstName.substr(0, 15);\n }\n\n return firstName + otherNames;\n}\n\nexport const checkPlatform = () => {\n const isAndroid = /(android)/i.test(navigator.userAgent.toLowerCase());\n const isIOS = /(ipod|iphone|ipad)/i.test(navigator.userAgent.toLowerCase());\n\n return isAndroid ? \"android\" : isIOS ? \"IOS\" : null;\n};\nexport function getBrowserName() {\n // eslint-disable-next-line no-unused-vars\n var browserName = \"\";\n\n // The order matters here, and this may report false positives for unlisted browsers.\n\n if (navigator.userAgent.indexOf(\"Firefox\") > -1) {\n browserName = \"Mozilla Firefox\";\n // \"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0\"\n } else if (navigator.userAgent.indexOf(\"SamsungBrowser\") > -1) {\n browserName = \"Samsung Internet\";\n // \"Mozilla/5.0 (Linux; Android 9; SAMSUNG SM-G955F Build/PPR1.180610.011) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/9.4 Chrome/67.0.3396.87 Mobile Safari/537.36\n } else if (\n navigator.userAgent.indexOf(\"Opera\") > -1 ||\n navigator.userAgent.indexOf(\"OPR\") > -1\n ) {\n browserName = \"Opera\";\n // \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 OPR/57.0.3098.106\"\n } else if (navigator.userAgent.indexOf(\"Trident\") > -1) {\n browserName = \"Microsoft Internet Explorer\";\n // \"Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; Zoom 3.6.0; wbx 1.0.0; rv:11.0) like Gecko\"\n } else if (navigator.userAgent.indexOf(\"Edge\") > -1) {\n browserName = \"Microsoft Edge (Legacy)\";\n // \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299\"\n } else if (navigator.userAgent.indexOf(\"Edg\") > -1) {\n browserName = \"Microsoft Edge (Chromium)\";\n // Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.64\n } else if (navigator.userAgent.indexOf(\"Chrome\") > -1) {\n browserName = \"Google Chrome or Chromium\";\n // \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/66.0.3359.181 Chrome/66.0.3359.181 Safari/537.36\"\n } else if (navigator.userAgent.indexOf(\"Safari\") > -1) {\n browserName = \"Apple Safari\";\n // \"Mozilla/5.0 (iPhone; CPU iPhone OS 11_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.0 Mobile/15E148 Safari/604.1 980x1306\"\n } else {\n browserName = \"unknown\";\n }\n\n return browserName;\n}\n\nexport const getHost = () => {\n return window.location.host;\n};\n\nexport const randomString = (length) => {\n let result = \"\";\n const characters =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n const charactersLength = characters.length;\n let counter = 0;\n while (counter < length) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n counter += 1;\n }\n return result;\n};\n\nexport const calculateRollOutPercentage = (\n aapNumber,\n distributionPercentage\n) => {\n if (aapNumber) {\n const userIdNum = Number(aapNumber.slice(-2));\n return userIdNum < Number(distributionPercentage);\n }\n};\n\nexport const handleOpenChatBot = () => {\n initateChatBot();\n window.AlltiusSDK(\"render\", { type: \"speedDial\", forceRerender: true });\n};\n\nexport const handleCloseChatBot = () => {\n window.AlltiusSDK(\"removeSpeedDial\");\n};\n","export const API_RETRY_CONFIG = {\n RETRY_COUNT: 2,\n RETRY_ERROR_CODES: [500, 502, 503, 504],\n RETRY_DELAY: 2000,\n};\n\nexport const HTTP_METHOD_GET = \"GET\";\nexport const HTTP_METHOD_POST = \"POST\";\nexport const HTTP_METHOD_PUT = \"PUT\";\nexport const HTTP_METHOD_DELETE = \"DELETE\";\nexport const TIMEOUT = 10000;\n\nexport const REDIRECT_FROM_TWA = \"redirectFromTWA\";\nexport const IN_SAME_SESSION = \"inSameSession\";\n\nexport const APP_HOME_SCREEN_DEEPLINK =\n \"https://angel-one.onelink.me/JAAb/homescreen\";\n","import { API_RETRY_CONFIG } from \"../constants\";\n\nconst isNetworkError = (error) =>\n error.response && error.message.toLowerCase().indexOf(\"network error\") !== -1;\n\nconst isTimeout = (error) =>\n !error.response && error.message.toLowerCase().indexOf(\"timeout\") !== -1;\n\nexport const isRetryRequired = (error) => {\n const { config = {}, response = {} } = error;\n const { status } = response;\n\n if (config.retry) {\n // Set the variable for keeping track of the retry count\n config.__retryCount = config.__retryCount || 0;\n\n // Check if we've maxed out the total number of retries\n if (\n config.__retryCount >= (config.retryCount || API_RETRY_CONFIG.RETRY_COUNT)\n ) {\n return false;\n }\n\n const errorCodes =\n config.retryErrorCodes || API_RETRY_CONFIG.RETRY_ERROR_CODES;\n // if error code matches error codes provided in the config\n if (errorCodes.includes(status)) {\n return true;\n }\n // check for timeout or network error\n if (isTimeout(error) || isNetworkError(error)) {\n return true;\n }\n }\n return false;\n};\n\nexport const getHttpErrorForAnalytics = (error) => {\n if (error.data) {\n // The request was made and the server responded with a status code\n // that falls out of the range of 2xx\n return `server response: ${JSON.stringify(error.data)}, status: ${\n error.status\n }`;\n } else if (error.request) {\n // The request was made but no response was received\n return `no response received, reponseURL: ${error.request.responseURL}, status: ${error.status}`;\n }\n return error?.data?.message;\n};\n","import Cookies from \"js-cookie\";\nimport axios from \"axios\";\nimport { getBrowserName } from \"@/utils/utils\";\nimport store from \"@/store/store\";\n// import { http } from \"../services/HttpClient\";\n\nlet headers = {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n \"Accept-Language\": \"en-US\",\n};\n\nvar ipNum;\nvar isLongitude;\nvar isLatitude;\nclass ClickStreamAnalyticsOne {\n constructor() {\n this.getIpParameters().then((data) => {\n ipNum = data;\n });\n // if (navigator.geolocation) {\n // navigator.geolocation.getCurrentPosition(function (position) {\n // isLongitude = position.coords.latitude.toString();\n // isLatitude = position.coords.longitude.toString();\n // });\n // }\n }\n\n sendClickStreamEvent(eventsToSend) {\n // this.globalEventList = [];\n if (eventsToSend.length > 0) {\n const clickStreamURL = import.meta.env.VITE_CLICKSTREAM_URL;\n fetch(clickStreamURL, {\n body: JSON.stringify(this.getRequestParams(eventsToSend)),\n method: \"POST\",\n headers,\n keepalive: true,\n })\n .then(() => {\n // this.globalEventList = [];\n })\n .catch(() => {\n // console.warn(\"error while sending clickstream data\");\n })\n .finally(() => {\n let localCs = JSON.parse(\n localStorage.getItem(\"CLICKSTREAM_1\") || \"[]\"\n );\n if (localCs.length === eventsToSend.length) {\n localStorage.setItem(\"CLICKSTREAM_1\", []);\n } else {\n localCs = localCs.slice(eventsToSend.length);\n localStorage.setItem(\"CLICKSTREAM_1\", [JSON.stringify(localCs)]);\n }\n });\n }\n }\n\n getRequestParams(eventsToSend) {\n let requestParams = {\n app_id: \"\",\n api_dt: \"\", // null\n api_hr: \"\", // null\n api_min: \"\", // null\n api_timestamp: \"\", // null\n api_timestamp_unix: \"\", // null\n device_token: \"\", // null\n pipe_topic: \"\",\n session_id: \"\",\n release_code: \"analytics1.0\",\n build_release: import.meta.env.VITE_BUILD_RELEASE,\n app_version_id: import.meta.env.VITE_VERSION,\n platform: this.getDeviceName(),\n os_version: navigator.appVersion,\n device_manufacturer: navigator.platform,\n device_model: getBrowserName(),\n user_id: \"\",\n client_id: \"\", // null\n client_latitude: \"\",\n client_longitude: \"\",\n client_ip: \"\",\n pipeline_uuid: \"\",\n eventList: eventsToSend,\n sparkSessionCookie: \"KYC-2.0\",\n cookieName: \"KYC-2.0\",\n };\n requestParams.pipe_topic = import.meta.env.VITE_PIPE_TOPIC;\n requestParams.session_id = this.getSessionID(requestParams);\n requestParams.eventList = eventsToSend;\n requestParams.app_id = this.getAppID(requestParams);\n requestParams.client_ip = ipNum ? ipNum : \"Permission Denied\";\n requestParams.user_id = this.getUserId();\n requestParams.client_latitude = isLatitude\n ? isLatitude\n : \"Permission Denied\";\n requestParams.client_longitude = isLongitude\n ? isLongitude\n : \"Permission Denied\";\n // return JSON.stringify(requestParams);\n return requestParams;\n }\n\n getUserId() {\n // eslint-disable-next-line\n const userIdBody = `{application_id: ${\n store?.state?.formData?.appNumber\n }, auc: , clevertap_id: , gtm_id: , analytics_kyc_id: , kyc_platform: spark_web, journey_id: ${this.journey_Id()}}`;\n return userIdBody;\n }\n journey_Id() {\n let UserJourneyType = {\n KRA: \"Select_KRA\",\n OCR: \"Select_OCR\",\n DIGILOCKER: \"Select_Digilocker\",\n MANUAL: \"Select_Manual\",\n };\n let _Journey = \"\";\n const oldJourneyBool =\n (store?.state?.formData[\"isKRA\"] == true &&\n store?.state?.formData[\"isCKYC\"] == true) ||\n (store?.state?.formData[\"isKRACompliant\"] == true &&\n store?.state?.formData[\"isCvlKRA\"] == true);\n if (oldJourneyBool && store?.state?.formData[\"isKRAJourney\"]) {\n _Journey = UserJourneyType.KRA;\n } else if (store?.state?.formData[\"poaType\"] == \"digilocker\") {\n _Journey = UserJourneyType.DIGILOCKER;\n } else if (store?.state?.formData[\"isPOAOCR\"] == true) {\n _Journey = UserJourneyType.OCR;\n } else {\n _Journey = UserJourneyType.MANUAL;\n }\n return _Journey;\n }\n eventInterval;\n addEventList(csEvent, forcePush) {\n let clikS = [\n ...JSON.parse(localStorage.getItem(\"CLICKSTREAM_1\") || \"[]\"),\n {\n screen_name: csEvent?.event_screen ? csEvent?.event_screen : \"\",\n content_source: location.href,\n event_type: csEvent?.event_type ? csEvent?.event_type : \"\",\n event_sub_type: csEvent?.event_sub_type ? csEvent?.event_sub_type : \"\",\n event_location: \"\",\n event_name: csEvent?.event_name ? csEvent?.event_name : \"\",\n event_property: window.VITE_SERVER_IP ? window.VITE_SERVER_IP : \"\",\n event_id: csEvent?.event_id ? csEvent?.event_id : \"\",\n event_metadata: csEvent?.event_metadata\n ? this.metadataBuilder(csEvent)\n : \"NA\",\n referred_from: \"\", // null\n client_timestamp: this.getFormattedDateTime(new Date()),\n client_timestamp_unix: Math.round(new Date().getTime() / 1000),\n client_timestamp_utc: this.getFormattedUTCDateTime(new Date()),\n client_timestamp_utc_unix:\n new Date().getTime() +\n (new Date().getTimezoneOffset() * 60 * 1000) / 1000,\n server_timestamp: \"\", // null\n server_timestamp_unix: \"\", // null\n server_timestamp_utc: \"\", // null\n server_timestamp_utc_unix: \"\", // null\n utm_source: this.getUrlParameter(\"utm_source\"),\n utm_medium: this.getUrlParameter(\"utm_medium\"),\n utm_campaign: this.getUrlParameter(\"utm_campaign\"),\n utm_content: this.getUrlParameter(\"utm_content\"),\n utm_metadata: this.getUrlParameter(\"utm_metadata\"),\n source_url: \"\", // null\n source_metadata: \"\", // null\n },\n ];\n\n localStorage.setItem(\"CLICKSTREAM_1\", [JSON.stringify(clikS)]);\n let delay = 30;\n this.eventInterval = setInterval(() => {\n this.triggerClickStreamEvents();\n }, delay * 1000);\n if (\n JSON.parse(localStorage.getItem(\"CLICKSTREAM_1\") || \"[]\").length == 10 ||\n forcePush\n ) {\n this.triggerClickStreamEvents();\n clearInterval(this.eventInterval);\n }\n }\n\n triggerClickStreamEvents() {\n const events = JSON.parse(localStorage.getItem(\"CLICKSTREAM_1\") || \"[]\");\n this.sendClickStreamEvent(events);\n }\n\n async getIpParameters() {\n try {\n let { data } = await axios.get(\n \"https://www.cloudflare.com/cdn-cgi/trace\"\n );\n let data1 = data\n .trim()\n .split(\"\\n\")\n .reduce(function (obj, pair) {\n pair = pair.split(\"=\");\n return (obj[pair[0]] = pair[1]), obj;\n }, {});\n const ipParam = this.IP6to4(data1.ip);\n return ipParam;\n } catch (e) {\n // eslint-disable-next-line no-console\n console.log(e);\n }\n }\n IP6to4(ip6) {\n function parseIp6(ip6str) {\n const str = ip6str.toString();\n const ar = new Array();\n for (var i = 0; i < 8; i++) ar[i] = 0;\n if (str == \"::\") return ar;\n const sar = str.split(\":\");\n let slen = sar.length;\n if (slen > 8) slen = 8;\n let j = 0;\n i = 0;\n for (i = 0; i < slen; i++) {\n if (i && sar[i] == \"\") {\n j = 9 - slen + i;\n continue;\n }\n ar[j] = parseInt(`0x0${sar[i]}`);\n j++;\n }\n return ar;\n }\n var ip6parsed = parseIp6(ip6);\n const ip4 = `${ip6parsed[6] >> 8}.${ip6parsed[6] & 0xff}.${\n ip6parsed[7] >> 8\n }.${ip6parsed[7] & 0xff}`;\n return ip4;\n }\n getFormattedDateTime(dt) {\n var year = dt.getFullYear().toString().padStart(4, \"0\");\n var month = (dt.getMonth() + 1).toString().padStart(2, \"0\");\n var date = dt.getDate().toString().padStart(2, \"0\");\n var hours = dt.getHours().toString().padStart(2, \"0\");\n var minutes = dt.getMinutes().toString().padStart(2, \"0\");\n var secs = dt.getSeconds().toString().padStart(2, \"0\");\n var milliseconds = dt.getMilliseconds().toString().padStart(3, \"0\");\n\n // YYYY-MM-DD HH:MM:SS.sss\n return (\n year +\n \"-\" +\n month +\n \"-\" +\n date +\n \" \" +\n hours +\n \":\" +\n minutes +\n \":\" +\n secs +\n \":\" +\n milliseconds\n );\n }\n getFormattedUTCDateTime(item) {\n var dt1 = new Date(item);\n var year = dt1.getUTCFullYear().toString().padStart(4, \"0\");\n var month = (dt1.getUTCMonth() + 1).toString().padStart(2, \"0\");\n var date = dt1.getUTCDate().toString().padStart(2, \"0\");\n var hours = dt1.getUTCHours().toString().padStart(2, \"0\");\n var minutes = dt1.getUTCMinutes().toString().padStart(2, \"0\");\n var secs = dt1.getUTCSeconds().toString().padStart(2, \"0\");\n var milliseconds = dt1.getUTCMilliseconds().toString().padStart(3, \"0\");\n\n // YYYY-MM-DD HH:MM:SS.sss\n return (\n year +\n \"-\" +\n month +\n \"-\" +\n date +\n \" \" +\n hours +\n \":\" +\n minutes +\n \":\" +\n secs +\n \":\" +\n milliseconds\n );\n }\n getGUID() {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n var r = (Math.random() * 16) | 0,\n v = c == \"x\" ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n }\n getUrlParameter(name, url) {\n if (!url) url = window.location.href;\n\n if (!url.toString().includes(\"utm_source\")) url = document.referrer;\n\n name = name.replace(/[\\]]/g, \"\\\\$&\");\n var regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\n results = regex.exec(url);\n if (!results) return \"\";\n\n if (!results[2]) return \"\";\n\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\n }\n getSessionID(ele) {\n var sessionID = \"\";\n let session_name;\n ele.sparkSessionCookie\n ? (session_name = ele.sparkSessionCookie)\n : (session_name = \"kyc_session\");\n if (Cookies.get(session_name)) {\n sessionID = Cookies.get(session_name);\n } else {\n sessionID = this.getGUID().replace(/-/g, \"\");\n Cookies.set(session_name, sessionID, {\n secure: import.meta.env.VITE_ISCUG == \"true\" ? true : \"\",\n sameSite: \"strict\",\n });\n }\n return sessionID;\n }\n getDeviceName() {\n var deviceName = \"\";\n if (window.matchMedia(\"(max-width: 767px)\").matches) {\n // The viewport is less than 768 pixels wide\n deviceName = \"Flutter_Mweb\";\n } else if (window.matchMedia(\"(max-width: 959px)\").matches) {\n // The viewport is less than 959 pixels wide\n deviceName = \"Flutter_Tweb\";\n } else {\n // The viewport is at least 960 pixels wide\n deviceName = \"Flutter_Web\";\n }\n return deviceName;\n }\n\n getAppID(ele) {\n var appID = \"\";\n if (Cookies.get(ele.cookieName)) {\n appID = Cookies.get(ele.cookieName);\n } else {\n appID = \"kyc-\" + this.getGUID().replace(/-/g, \"\");\n let expDate = new Date();\n expDate.setFullYear(expDate.getFullYear() + 15);\n\n Cookies.set(ele.cookieName, appID, {\n secure: import.meta.env.VITE_ISCUG == \"true\" ? true : \"\",\n sameSite: \"strict\",\n });\n }\n return appID;\n }\n\n metadataBuilder(event) {\n let data = JSON.stringify(event?.event_metadata);\n let RAW = JSON.parse(data);\n if (typeof RAW == \"object\" && RAW?.params) {\n delete RAW?.params;\n }\n if (event?.event_metadata?.params) {\n let meta = JSON.parse(this.dataBuilder(event?.event_metadata?.params));\n return JSON.stringify({ ...RAW, ...meta });\n } else if (event?.event_metadata?.backPopup) {\n let meta = {\n ScreenName: this.getScreenName(),\n Backtype: this.getDeviceName() + \" \" + \"Back\",\n };\n return JSON.stringify({ ...RAW, ...meta });\n } else if (event?.event_metadata?.arrParams) {\n let meta = this.objDataBuilder(event?.event_metadata?.arrParams);\n return JSON.stringify({ ...RAW, ...meta });\n } else {\n return event?.event_metadata;\n }\n }\n\n objDataBuilder(params) {\n const parsedBody = {};\n for (const key in params) {\n const value = params[key];\n let [keyParam, formDataKey] = value.split(\":\");\n parsedBody[key] = store.state.formData[formDataKey].includes(keyParam);\n }\n return parsedBody;\n }\n\n dataBuilder(params) {\n const parsedBody = {};\n for (const key in params) {\n const value = params[key];\n\n if (value.includes(\"|\")) {\n const [field, dflt] = value.split(\"|\");\n const fieldValue =\n typeof store.state.formData[field] != \"undefined\"\n ? store.state.formData[field]\n : dflt ?? \"\";\n if (fieldValue?.toString()) {\n parsedBody[key] = fieldValue;\n }\n } else {\n const fieldValue =\n typeof store.state.formData[value] != \"undefined\"\n ? store.state.formData[value]\n : \"\";\n if (fieldValue?.toString()) {\n parsedBody[key] = fieldValue;\n }\n }\n }\n return JSON.stringify(parsedBody);\n }\n getScreenName() {\n const state = store?.state;\n const screens = state?.layout?.screens;\n const routeKey = state?.activeRoute;\n const routeKeyPopUp = routeKey.split(\"/\")[1] ?? routeKey;\n return screens[routeKeyPopUp].events?.onLoad?.cs?.bodyParameters\n ?.event_screen\n ? screens[routeKeyPopUp].events?.onLoad?.cs?.bodyParameters?.event_screen\n : screens[routeKeyPopUp];\n }\n}\n\nconst clickStreamOne = new ClickStreamAnalyticsOne();\n\nexport { ClickStreamAnalyticsOne, clickStreamOne };\n","import { getCookieValue, getGUID, setCookie } from \"@/services/HttpClient\";\n\nimport ActionHandler from \"@/handlers/action\";\nimport Cookies from \"js-cookie\";\nimport axios from \"axios\";\nimport { clickStreamOne } from \"./clickStreamAnalyticsBackUp\";\nimport { getBrowserName } from \"@/utils/utils\";\nimport store from \"@/store/store\";\nimport { v4 as uuidv4 } from \"uuid\";\n\n// import { http } from \"../services/HttpClient\";\n\nvar ipNum;\nvar isLongitude;\nvar isLatitude;\n////\n\nfunction getCeUID() {\n let requestID = getCookieValue(\"ce_uid\") || \"\";\n\n if (!requestID) {\n let newRequestId = uuidv4();\n setCookie(\"ce_uid\", newRequestId, 7, false);\n requestID = newRequestId;\n }\n return requestID;\n}\n\nfunction getRequestID() {\n let requestID = getCookieValue(\"requestId\") || \"\";\n\n if (!requestID) {\n let newRequestId = getGUID();\n setCookie(\"requestId\", newRequestId, 7, false);\n requestID = newRequestId;\n }\n return requestID;\n}\n\nasync function generateToken(captcha) {\n return axios.get(\n import.meta.env.VITE_LOGIN_API_BASE_URL + \"/login/v3/session-token\",\n {\n headers: {\n \"Content-Type\": \"application/json\",\n ApplicationName: \"KYC-WEB\",\n \"x-captcha\": captcha,\n \"x-source\": \"Spark-WEB\",\n \"x-sourceid\": 3,\n \"x-usertype\": 1,\n \"x-operatingsystem\": ActionHandler.checkOS(),\n \"x-clientlocalip\": localStorage.getItem(\"myip\"),\n \"x-clientpublicip\": localStorage.getItem(\"myip\"),\n \"x-macaddress\": getCookieValue(\"macAddress\") || \"00:00:5e:00:53:af\",\n \"x-deviceid\":\n getCookieValue(\"platform\") || ActionHandler.fnGenerateUniqueID(),\n },\n }\n );\n}\n\nasync function getToken() {\n let token = getCookieValue(import.meta.env.VITE_APP_GUEST_COOKIE);\n if (!token) {\n let TK = \"\";\n try {\n const captcha = await ActionHandler.getCapchaCode();\n const { data } = await generateToken(captcha);\n if (data.status == \"success\") {\n TK = data?.data?.session_token;\n }\n } catch (error) {\n TK = \"\";\n }\n return TK;\n }\n return token;\n}\n\nconst defaultOptions = {\n // baseURL: base.url,\n baseURL: import.meta.env.VITE_CLICKSTREAM_URL_NEW,\n method: \"get\",\n headers: {\n \"Content-Type\": \"application/json\",\n ce_uid: getCeUID(),\n ApplicationName: \"Spark-Web\",\n \"X-Origin\": window.location.origin,\n \"X-requestId\": getRequestID(),\n \"x-app-version\": import.meta.env.VITE_VERSION,\n \"x-build-number\": import.meta.env.PACKAGE_VERSION,\n },\n};\n\n// const appVersion = packageJson.version;\n\n// let headers = {\n// Accept: \"application/json\",\n// \"Content-Type\": \"application/json\",\n// \"Accept-Language\": \"en-US\",\n// \"X-appVersion\": `${appVersion}|${appVersion}`,\n// };\n\nconst axios_instance_clickstream = axios.create(defaultOptions);\naxios_instance_clickstream.interceptors.request.use(\n async function (config) {\n const token = await getToken();\n if (token) {\n config.headers[\"Authorization\"] = \"Bearer \" + token;\n }\n\n return config;\n },\n (error) => {\n return Promise.reject(error);\n }\n);\naxios_instance_clickstream.interceptors.response.use(\n (response) => {\n return Promise.resolve(response);\n },\n (error) => {\n if (error.message === \"Network Error\" && !error.response) {\n console.log(error.message);\n }\n if (error) {\n return Promise.reject(error);\n }\n }\n);\n\nclass ClickStreamAnalytics {\n constructor() {\n this.getIpParameters().then((data) => {\n ipNum = data;\n });\n // if (navigator.geolocation) {\n // navigator.geolocation.getCurrentPosition(function (position) {\n // isLongitude = position.coords.latitude.toString();\n // isLatitude = position.coords.longitude.toString();\n // });\n // }\n }\n\n sendClickStreamEvent(eventsToSend) {\n axios_instance_clickstream\n .post(\"/v1/events/data\", this.getRequestParamsData(eventsToSend), {\n headers: {\n \"X-event-count\": eventsToSend.length,\n },\n })\n .then(() => {\n // this.globalEventList = [];\n })\n .catch(() => {\n console.warn(\"error while sending clickstream data\");\n })\n .finally(() => {\n let localCs = JSON.parse(localStorage.getItem(\"CLICKSTREAM\") || \"[]\");\n if (localCs.length === eventsToSend.length) {\n localStorage.setItem(\"CLICKSTREAM\", []);\n } else {\n localCs = localCs.slice(eventsToSend.length);\n localStorage.setItem(\"CLICKSTREAM\", [JSON.stringify(localCs)]);\n }\n });\n }\n\n sendClickStreamMetadata() {\n // axios_instance_clickstream.post()\n let clickStreamMeta = {\n ce_uid: getCeUID(),\n request_timestamp: ClickStreamAnalytics.getFormattedUTCDateTime(\n new Date()\n ), // TimeStamp Format -> YYYY-MM-DD HH:MM:SS.sss\n source_url: window.origin,\n os_version: navigator.appVersion,\n device_manufacturer: navigator.platform,\n device_model: getBrowserName(),\n device_token: \"\",\n release_version: \"analytics2.0\",\n build_release: import.meta.env.VITE_BUILD_RELEASE,\n app_version: import.meta.env.PACKAGE_VERSION,\n os_platform: this.getDeviceName(),\n session_id: \"\",\n extra_fields: \"{}\",\n app_id: \"\",\n app_name: \"KYC-WEB\",\n };\n clickStreamMeta.session_id = this.getSessionID(clickStreamMeta);\n clickStreamMeta.app_id = this.getAppID(clickStreamMeta);\n axios_instance_clickstream\n .post(\"/v1/events/metadata\", clickStreamMeta, {\n timeout: 5000,\n })\n .then((res) => {\n // console.log(\"res =>\", res);\n });\n }\n\n getRequestParamsData(eventsToSend) {\n let requestParams = {\n ce_uid: getCeUID(),\n request_timestamp: ClickStreamAnalytics.getFormattedUTCDateTime(\n new Date()\n ),\n source_url: window.origin,\n session_id: \"\",\n user_id: \"\",\n client_ip: \"\",\n client_latitude: \"\",\n client_longitude: \"\",\n source_metadata: \"\",\n events: \"\",\n };\n\n requestParams.extra_fields = {\n utm_source: this.getUrlParameter(\"utm_source\"),\n utm_medium: this.getUrlParameter(\"utm_medium\"),\n utm_campaign: this.getUrlParameter(\"utm_campaign\"),\n utm_content: this.getUrlParameter(\"utm_content\"),\n utm_metadata: this.getUrlParameter(\"utm_metadata\"),\n };\n requestParams.session_id = this.getSessionID(requestParams); // +\n requestParams.events = eventsToSend; // +\n requestParams.app_id = this.getAppID(requestParams); // +\n requestParams.client_ip = ipNum ? ipNum : \"Permission Denied\"; // +\n requestParams.user_id = this.getUserId(); //+\n requestParams.client_latitude = isLatitude // +\n ? isLatitude\n : \"Permission Denied\";\n requestParams.client_longitude = isLongitude //+\n ? isLongitude\n : \"Permission Denied\";\n // return JSON.stringify(requestParams);\n return requestParams;\n }\n getUserId() {\n // eslint-disable-next-line\n const userIdBody = `{application_id: ${\n store?.state?.formData?.appNumber\n }, auc: , clevertap_id: , gtm_id: , analytics_kyc_id: , kyc_platform: spark_web, journey_id: ${this.journey_Id()},journey:onboarding}`;\n return userIdBody;\n }\n journey_Id() {\n let UserJourneyType = {\n KRA: \"Select_KRA\",\n OCR: \"Select_OCR\",\n DIGILOCKER: \"Select_Digilocker\",\n MANUAL: \"Select_Manual\",\n };\n let _Journey = \"\";\n const oldJourneyBool =\n (store?.state?.formData[\"isKRA\"] == true &&\n store?.state?.formData[\"isCKYC\"] == true) ||\n (store?.state?.formData[\"isKRACompliant\"] == true &&\n store?.state?.formData[\"isCvlKRA\"] == true);\n if (oldJourneyBool && store?.state?.formData[\"isKRAJourney\"]) {\n _Journey = UserJourneyType.KRA;\n } else if (store?.state?.formData[\"poaType\"] == \"digilocker\") {\n _Journey = UserJourneyType.DIGILOCKER;\n } else if (store?.state?.formData[\"isPOAOCR\"] == true) {\n _Journey = UserJourneyType.OCR;\n } else {\n _Journey = UserJourneyType.MANUAL;\n }\n return _Journey;\n }\n\n addEventsTolocalStorage(csEvent, forcePush) {\n let clikS = [\n ...JSON.parse(localStorage.getItem(\"CLICKSTREAM\") || \"[]\"),\n {\n event_timestamp: ClickStreamAnalytics.getFormattedDateTime(new Date()),\n event_id: csEvent?.event_id ? csEvent?.event_id : \"\",\n screen_id: csEvent?.screen_id ? csEvent?.screen_id : \"\", // what is screen id, need for this ?\n screen_name: csEvent?.event_screen ? csEvent?.event_screen : \"\",\n element_id: csEvent?.element_id ? csEvent?.element_id : \"\", // what is element id, need for this ?\n event_sub_type: csEvent?.event_sub_type ? csEvent?.event_sub_type : \"\",\n element_name: csEvent?.element_name ? csEvent?.element_name : \"\", // what is element_name , need for this ?\n action_name: csEvent?.action_name ? csEvent?.action_name : \"\", // what is action_name , need for this ?\n // \"(ButtonClick / ButtonMouseover / LinkClick) what user did action on element. means if he click on button then ButtonClick action if any mouseover like tooptip action then button mouseover\",\n referred_from: \"\",\n event_type: csEvent?.event_type ? csEvent?.event_type : \"\",\n event_name: csEvent?.event_name ? csEvent?.event_name : \"\",\n event_source: location.href,\n event_property: csEvent?.event_property ? csEvent?.event_property : [], // what is event_property ?\n event_metadata: csEvent?.event_metadata\n ? this.metadataBuilder(csEvent)\n : \"NA\",\n event_location: \"\",\n server_timestamp: \"\",\n },\n ];\n\n localStorage.setItem(\"CLICKSTREAM\", [JSON.stringify(clikS)]);\n let delay = 30;\n this.eventInterval = setInterval(() => {\n this.triggerClickStreamEvents();\n }, delay * 1000);\n if (\n JSON.parse(localStorage.getItem(\"CLICKSTREAM\") || \"[]\").length == 10 ||\n forcePush\n ) {\n this.triggerClickStreamEvents();\n clearInterval(this.eventInterval);\n }\n }\n\n // globalEventList = JSON.parse(localStorage.getItem(\"CLICKSTREAM\") || \"[]\");\n eventInterval;\n addEventList(csEvent, forcePush) {\n clickStreamOne.addEventList(csEvent, forcePush);\n\n if (import.meta.env.VITE_CLICKSTREAM_NEW_ENABLE == \"true\") {\n this.addEventsTolocalStorage(csEvent, forcePush);\n }\n }\n\n triggerClickStreamEvents() {\n const events = JSON.parse(localStorage.getItem(\"CLICKSTREAM\") || \"[]\");\n if (\n events.length &&\n import.meta.env.VITE_CLICKSTREAM_NEW_ENABLE == \"true\"\n ) {\n this.sendClickStreamEvent(events);\n }\n }\n\n async getIpParameters() {\n try {\n let { data } = await axios.get(\n \"https://www.cloudflare.com/cdn-cgi/trace\"\n );\n let data1 = data\n .trim()\n .split(\"\\n\")\n .reduce(function (obj, pair) {\n pair = pair.split(\"=\");\n return (obj[pair[0]] = pair[1]), obj;\n }, {});\n const ipParam = this.IP6to4(data1.ip);\n return ipParam;\n } catch (e) {\n // eslint-disable-next-line no-console\n console.log(e);\n }\n }\n IP6to4(ip6) {\n function parseIp6(ip6str) {\n const str = ip6str.toString();\n const ar = new Array();\n for (var i = 0; i < 8; i++) ar[i] = 0;\n if (str == \"::\") return ar;\n const sar = str.split(\":\");\n let slen = sar.length;\n if (slen > 8) slen = 8;\n let j = 0;\n i = 0;\n for (i = 0; i < slen; i++) {\n if (i && sar[i] == \"\") {\n j = 9 - slen + i;\n continue;\n }\n ar[j] = parseInt(`0x0${sar[i]}`);\n j++;\n }\n return ar;\n }\n var ip6parsed = parseIp6(ip6);\n const ip4 = `${ip6parsed[6] >> 8}.${ip6parsed[6] & 0xff}.${\n ip6parsed[7] >> 8\n }.${ip6parsed[7] & 0xff}`;\n return ip4;\n }\n static getFormattedDateTime(dt) {\n var year = dt.getFullYear().toString().padStart(4, \"0\");\n var month = (dt.getMonth() + 1).toString().padStart(2, \"0\");\n var date = dt.getDate().toString().padStart(2, \"0\");\n var hours = dt.getHours().toString().padStart(2, \"0\");\n var minutes = dt.getMinutes().toString().padStart(2, \"0\");\n var secs = dt.getSeconds().toString().padStart(2, \"0\");\n var milliseconds = dt.getMilliseconds().toString().padStart(3, \"0\");\n\n // YYYY-MM-DD HH:MM:SS.sss\n return (\n year +\n \"-\" +\n month +\n \"-\" +\n date +\n \" \" +\n hours +\n \":\" +\n minutes +\n \":\" +\n secs +\n \":\" +\n milliseconds\n );\n }\n static getFormattedUTCDateTime(item) {\n var dt1 = new Date(item);\n var year = dt1.getUTCFullYear().toString().padStart(4, \"0\");\n var month = (dt1.getUTCMonth() + 1).toString().padStart(2, \"0\");\n var date = dt1.getUTCDate().toString().padStart(2, \"0\");\n var hours = dt1.getUTCHours().toString().padStart(2, \"0\");\n var minutes = dt1.getUTCMinutes().toString().padStart(2, \"0\");\n var secs = dt1.getUTCSeconds().toString().padStart(2, \"0\");\n var milliseconds = dt1.getUTCMilliseconds().toString().padStart(3, \"0\");\n\n // YYYY-MM-DD HH:MM:SS.sss\n return (\n year +\n \"-\" +\n month +\n \"-\" +\n date +\n \" \" +\n hours +\n \":\" +\n minutes +\n \":\" +\n secs +\n \":\" +\n milliseconds\n );\n }\n getGUID() {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n var r = (Math.random() * 16) | 0,\n v = c == \"x\" ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n }\n getUrlParameter(name, url) {\n if (!url) url = window.location.href;\n if (!url.toString().includes(\"utm_source\")) url = document.referrer;\n name = name.replace(/[\\]]/g, \"\\\\$&\");\n var regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\n results = regex.exec(url);\n if (!results) return \"\";\n\n if (!results[2]) return \"\";\n\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\n }\n getSessionID(ele) {\n var sessionID = \"\";\n let session_name;\n ele.sparkSessionCookie\n ? (session_name = ele.sparkSessionCookie)\n : (session_name = \"kyc_session\");\n if (Cookies.get(session_name)) {\n sessionID = Cookies.get(session_name);\n } else {\n sessionID = this.getGUID().replace(/-/g, \"\");\n Cookies.set(session_name, sessionID, {\n secure: import.meta.env.VITE_ISCUG == \"true\" ? true : \"\",\n sameSite: \"strict\",\n });\n }\n return sessionID;\n }\n getDeviceName() {\n var deviceName = \"\";\n if (window.matchMedia(\"(max-width: 767px)\").matches) {\n // The viewport is less than 768 pixels wide\n deviceName = \"Flutter_Mweb\";\n } else if (window.matchMedia(\"(max-width: 959px)\").matches) {\n // The viewport is less than 959 pixels wide\n deviceName = \"Flutter_Tweb\";\n } else {\n // The viewport is at least 960 pixels wide\n deviceName = \"Flutter_Web\";\n }\n return deviceName;\n }\n getAppID(ele) {\n var appID = \"\";\n let cookieName;\n ele.cookieName\n ? (cookieName = ele.cookieName)\n : (cookieName = \"kyc_app_id\");\n if (Cookies.get(cookieName)) {\n appID = Cookies.get(cookieName);\n } else {\n appID = \"kyc-\" + this.getGUID().replace(/-/g, \"\");\n let expDate = new Date();\n expDate.setFullYear(expDate.getFullYear() + 15);\n\n Cookies.set(cookieName, appID, {\n secure: import.meta.env.VITE_ISCUG == \"true\" ? true : \"\",\n sameSite: \"strict\",\n });\n }\n return appID;\n }\n\n metadataBuilder(event) {\n let data = JSON.stringify(event?.event_metadata);\n let RAW = JSON.parse(data);\n if (typeof RAW == \"object\" && RAW?.params) {\n delete RAW?.params;\n }\n if (event?.event_metadata?.params) {\n let meta = JSON.parse(this.dataBuilder(event?.event_metadata?.params));\n return JSON.stringify({ ...RAW, ...meta });\n } else if (event?.event_metadata?.backPopup) {\n let meta = {\n ScreenName: this.getScreenName(),\n Backtype: this.getDeviceName() + \" \" + \"Back\",\n };\n return JSON.stringify({ ...RAW, ...meta });\n } else if (event?.event_metadata?.arrParams) {\n let meta = this.objDataBuilder(event?.event_metadata?.arrParams);\n return JSON.stringify({ ...RAW, ...meta });\n } else {\n return event?.event_metadata;\n }\n }\n\n objDataBuilder(params) {\n const parsedBody = {};\n for (const key in params) {\n const value = params[key];\n let [keyParam, formDataKey] = value.split(\":\");\n parsedBody[key] = store.state.formData[formDataKey].includes(keyParam);\n }\n return parsedBody;\n }\n\n dataBuilder(params) {\n const parsedBody = {};\n for (const key in params) {\n const value = params[key];\n\n if (value.includes(\"|\")) {\n const [field, dflt] = value.split(\"|\");\n const fieldValue =\n typeof store.state.formData[field] != \"undefined\"\n ? store.state.formData[field]\n : dflt ?? \"\";\n if (fieldValue?.toString()) {\n parsedBody[key] = fieldValue;\n }\n } else {\n const fieldValue =\n typeof store.state.formData[value] != \"undefined\"\n ? store.state.formData[value]\n : \"\";\n if (fieldValue?.toString()) {\n parsedBody[key] = fieldValue;\n }\n }\n }\n return JSON.stringify(parsedBody);\n }\n getScreenName() {\n const state = store?.state;\n const screens = state?.layout?.screens;\n const routeKey = state?.activeRoute;\n const routeKeyPopUp = routeKey.split(\"/\")[1] ?? routeKey;\n return screens[routeKeyPopUp].events?.onLoad?.cs?.bodyParameters\n ?.event_screen\n ? screens[routeKeyPopUp].events?.onLoad?.cs?.bodyParameters?.event_screen\n : screens[routeKeyPopUp];\n }\n}\n\nconst clickStream = new ClickStreamAnalytics();\n\nexport { ClickStreamAnalytics, clickStream };\n","import { decodeBase64, getActiveSegments, setNominee } from \"@/utils/utils\";\nimport {\n deleteCookieWithDomain,\n getCookieValue,\n http,\n showErrorMessage,\n} from \"@/services/HttpClient\";\n\nimport ActionHandler from \"@/handlers/action\";\nimport appJson from \"../../layout.json\";\nimport { clickStream } from \"@/composables/clickStreamAnalytics\";\nimport { getHttpErrorForAnalytics } from \"@/utils/httpUtils\";\nimport store from \"@/store/store\";\nimport { setCookie } from \"@/services/HttpClient\";\nimport { REDIRECT_FROM_TWA } from \"@/constants\";\n\nconst getPayload = (payload) => {\n const currentSearch = window.location.toString().split(\"?\");\n\n const urlQuery = currentSearch;\n\n const urlParams = new URLSearchParams(`${currentSearch[1]}`);\n\n let referralCode =\n urlParams.get(\"referrer\") ||\n urlParams.get(\"refferalPromoCode\") ||\n urlParams.get(\"sbTag\") ||\n urlParams.get(\"SbTag\");\n // if (!referralCode && sessionStorage.getItem(\"referralCode\")) {\n // referralCode = sessionStorage\n // .getItem(\"referralCode\")\n // .toString()\n // .replace(/\"/g, \"\");\n // }\n if (urlParams.has(\"name\")) {\n store.dispatch(\"setFormData\", {\n key: \"fullName\",\n value: decodeBase64(urlParams.get(\"name\")),\n });\n }\n if (urlParams.has(\"journey-type\")) {\n sessionStorage.setItem(\n \"journey-type\",\n urlParams.get(\"journey-type\").split(\"#\")[0]\n );\n }\n if (referralCode) {\n store.dispatch(\"setTextFieldDisable\", {\n referralCode: true,\n });\n }\n\n if (!sessionStorage.getItem(\"referralCode\") && urlQuery[1]) {\n payload.referralString = urlQuery[1];\n } else if (sessionStorage.getItem(\"referralCode\")) {\n let sessionReferralCode;\n if (sessionStorage.getItem(\"referralCode\").includes('\"')) {\n sessionReferralCode = sessionStorage\n .getItem(\"referralCode\")\n .toString()\n .replace(/\"/g, \"\");\n } else {\n sessionReferralCode = sessionStorage.getItem(\"referralCode\");\n }\n\n payload.referralString = \"referrer=\" + sessionReferralCode;\n }\n // payload.referralString = sessionStorage.getItem(\"referralCode\")\n // ? \"referrer=\" + sessionStorage.getItem(\"referralCode\")\n // : urlQuery[1];\n for (const [key, value] of urlParams.entries()) {\n if (key !== \"undefined\") {\n payload[key] = value;\n }\n }\n //send full raw url\n\n payload.rawUrl = window.location.toString();\n return payload;\n};\n\nexport default function useStartApp() {\n async function getLayout() {\n const csEvents = {\n event_screen: \"s-welcomescreen\",\n event_type: \"api\",\n event_sub_type: \"apirequest-response\",\n event_name: \"StartAPIresponse\",\n event_id: \"73.0.0.2.12\",\n event_metaData: \"\",\n };\n // const clickStream = new ClickStreamAnalytics();\n const startTime = Date.now();\n const networkType = navigator?.connection?.effectiveType || \"\";\n let START_API_CONFIG = {\n retry: true,\n retryErrorCodes: [500, 502, 503, 408, 400],\n retryCount: 2,\n };\n if (\n sessionStorage.getItem(\"journey-type\") === \"jointAccount\" &&\n sessionStorage.getItem(\"firstHolderAppNumber\")\n ) {\n START_API_CONFIG = {\n ...START_API_CONFIG,\n headers: {\n \"X-firstHolderAppNumber\": sessionStorage.getItem(\n \"firstHolderAppNumber\"\n ),\n },\n };\n }\n\n const currentUrl = window.location;\n const urlQuery = currentUrl.toString().split(\"?\");\n const urlParams = new URLSearchParams(urlQuery[urlQuery.length - 1]);\n const otpVal = urlParams.get(\"otp\");\n\n // let journeyDeciderReturn = true;\n\n // let otpFromSpark = \"\";\n // if (otpVal?.includes(\"#\")) {\n // otpFromSpark = otpVal?.split(\"#\")?.[0];\n // } else {\n // otpFromSpark = otpVal;\n // }\n\n let redirectVal = urlParams.get(REDIRECT_FROM_TWA);\n\n let redirectFromTWA;\n\n if (sessionStorage.getItem(REDIRECT_FROM_TWA) === \"true\") {\n redirectFromTWA = true;\n } else if (redirectVal?.includes(\"#\")) {\n redirectFromTWA = !!redirectVal.split(\"#\")?.[0];\n } else {\n redirectFromTWA = !!redirectVal;\n }\n\n sessionStorage.setItem(REDIRECT_FROM_TWA, redirectFromTWA);\n let journeyDeciderReturn = false;\n if (sessionStorage.getItem(\"journey-type\") !== \"jointAccount\") {\n journeyDeciderReturn = await journeyDeciderinStart(\n getCookieValue(import.meta.env.VITE_APP_GUEST_COOKIE)\n );\n } else {\n journeyDeciderReturn = true;\n }\n if (journeyDeciderReturn) {\n try {\n const payload = { isSimCardDetected: false };\n const { data } = await http.post(\n import.meta.env.VITE_START_API,\n {\n data: { ...getPayload(payload) },\n },\n START_API_CONFIG\n );\n const {\n applicationStatus,\n flows,\n events,\n action,\n data: { documents },\n staticConfigs,\n } = data;\n\n const { features, flows: navStack } = events;\n const nominees = events?.data?.nominees || [];\n\n if (!events?.data?.pan && sessionStorage.getItem(\"tandCCheckbox\")) {\n calExperianPanAPI(events?.data);\n }\n\n ActionHandler.handleAPIData(events?.data);\n if (documents) {\n store.dispatch(\"setDocumentList\", documents);\n }\n\n // if (!sessionStorage.getItem(\"referralCode\")) {\n // if (\n // store?.state?.formData?.referralCode == undefined ||\n // store?.state?.formData?.referralCode == null ||\n // store?.state?.formData?.referralCode == \"\"\n // ) {\n if (\n events?.data?.clientType == \"B2B\" &&\n !events?.data?.referralCode &&\n events?.data?.sbTag\n ) {\n store.dispatch(\"setFormData\", {\n key: \"referralCode\",\n value: events?.data?.sbTag,\n });\n store.dispatch(\"setTextFieldDisable\", {\n referralCode: true,\n });\n } else if (events?.data?.referralCode) {\n store.dispatch(\"setFormData\", {\n key: \"referralCode\",\n value: events?.data?.referralCode,\n });\n store.dispatch(\"setTextFieldDisable\", {\n referralCode: true,\n });\n } else {\n store.dispatch(\"setFormData\", {\n key: \"referralCode\",\n value: null,\n });\n store.dispatch(\"setTextFieldDisable\", {\n referralCode: false,\n });\n }\n sessionStorage.removeItem(\"referralCode\");\n // }\n if (import.meta.env.VITE_APP_BUILD_RELEASE == \"dev\") {\n store.dispatch(\"setLayout\", appJson);\n } else {\n store.dispatch(\"setLayout\", flows);\n }\n\n if (features) {\n store.dispatch(\"setFeatures\", features);\n }\n if (staticConfigs) {\n store.dispatch(\"setStaticConfig\", staticConfigs);\n }\n if (action) {\n store.dispatch(\"setAction\", action);\n }\n if (navStack) {\n let nvS = [...navStack];\n store.dispatch(\"setPersistNavStack\", nvS);\n }\n if (applicationStatus) {\n store.dispatch(\"setApplicationStatus\", applicationStatus);\n }\n //This is for before Esign\n if (nominees.length && !store?.state?.features[\"nominee\"]) {\n setNominee(nominees);\n }\n if (data?.events?.data) {\n const { isFnO, isCurrency, isCommodity, isEquity } = data.events.data;\n const segmentFromAPI = {\n isEquity,\n isFnO,\n isCurrency,\n isCommodity,\n };\n const activeSegmentsLabel = getActiveSegments(segmentFromAPI);\n activeSegmentsLabel?.length &&\n store.dispatch(\"setFormData\", {\n key: \"segmentSelection\",\n value: activeSegmentsLabel,\n });\n }\n\n clickStream.addEventList(\n {\n ...csEvents,\n event_metadata: `status: ${true}, message: API success, reponse-time: ${\n (Date.now() - startTime) / 1000\n }s, network-type: ${networkType}, response: ${JSON.stringify({\n action,\n events,\n })}`,\n },\n true\n );\n } catch (error) {\n showErrorMessage(error?.data?.message);\n clickStream.addEventList(\n {\n ...csEvents,\n event_metadata: `status: ${false}, message: API failure ${\n error?.data?.message\n }, reponse-time: ${\n (Date.now() - startTime) / 1000\n }s, network-type: ${networkType}, error: ${getHttpErrorForAnalytics(\n error\n )}`,\n },\n true\n );\n }\n }\n }\n\n const journeyDeciderinStart = async (token) => {\n try {\n let referralFromSessionStorage = sessionStorage.getItem(\"referralCode\");\n\n if (\n referralFromSessionStorage &&\n referralFromSessionStorage.includes('\"')\n ) {\n referralFromSessionStorage = referralFromSessionStorage\n .toString()\n .replace(/\"/g, \"\");\n }\n\n let headers = ActionHandler.getJourneyDeciderHeader(\n referralFromSessionStorage\n );\n\n const resp = await http.get(\"/kyc/journey-decider\", { headers });\n console.log(\"journey deciderr response \", resp);\n const currentSearch = window.location.toString().split(\"?\");\n\n if (resp?.data?.journeyType == \"OLD\") {\n return true;\n } else if (resp?.data?.journeyType == \"NEW\") {\n setCookie(import.meta.env.VITE_NEW_GUEST_TOKEN_KEY, token, 7, false);\n store.dispatch(\"ignoreBrowserPrompt\", true);\n if (currentSearch[1]) {\n window.location.replace(\n `${import.meta.env.VITE_KYC_NEW_JOURNEY}?${currentSearch[1]}`,\n \"_self\"\n );\n } else if (referralFromSessionStorage) {\n window.location.replace(\n `${\n import.meta.env.VITE_KYC_NEW_JOURNEY\n }?referrer=${referralFromSessionStorage}`,\n \"_self\"\n );\n } else {\n window.location.replace(\n import.meta.env.VITE_KYC_NEW_JOURNEY,\n \"_self\"\n );\n }\n return false;\n }\n } catch (e) {\n console.log(\"logging in journeydecider use satrt Error \", e);\n\n return false;\n }\n };\n\n const calExperianPanAPI = async (data) => {\n const endpoint = \"/v1/experian/initiate_pan\";\n const payload = {\n full_name: data?.fullName,\n mobile_no: data?.mobile,\n app_number: data?.appNumber,\n };\n const { respData } = await http.post(endpoint, payload);\n console.log(\"respData calExperianPanAPI \", respData);\n if (respData?.status == \"success\") {\n store.dispatch(\"setFormData\", {\n key: \"pan\",\n value: events?.data?.pan,\n });\n store.dispatch(\"setFormData\", {\n key: \"dob\",\n value: events?.data?.dob,\n });\n }\n };\n\n async function assignReferralCode() {\n const currentSearch = window.location.toString().split(\"?\");\n const host = window.location.host;\n const splittedHost = host.replace(\"www\", \"\");\n\n const isRedirectFromFlutter =\n window.location.href.includes(\"redirectFromTWA\");\n\n if (!isRedirectFromFlutter) {\n deleteCookieWithDomain(\n import.meta.env.VITE_APP_GUEST_COOKIE,\n splittedHost\n );\n deleteCookieWithDomain(\n import.meta.env.VITE_NEW_GUEST_TOKEN_KEY,\n splittedHost\n );\n\n deleteCookieWithDomain(import.meta.env.VITE_APP_GUEST_COOKIE, host);\n deleteCookieWithDomain(import.meta.env.VITE_NEW_GUEST_TOKEN_KEY, host);\n\n deleteCookieWithDomain(import.meta.env.VITE_APP_GUEST_COOKIE);\n deleteCookieWithDomain(import.meta.env.VITE_NEW_GUEST_TOKEN_KEY);\n }\n\n if (currentSearch.length > 2) {\n let reconstructedUrl;\n\n for (let i = 0; i < currentSearch.length; i++) {\n switch (i) {\n case 0:\n reconstructedUrl = currentSearch[i];\n break;\n case 1:\n reconstructedUrl = `${reconstructedUrl}?${currentSearch[i].replace(\n \"#/login/\",\n \"\"\n )}`;\n break;\n default:\n reconstructedUrl = `${reconstructedUrl}&${currentSearch[i]}`;\n }\n }\n window.location.replace(reconstructedUrl, \"\");\n }\n\n store.state.formData[\"rawUrl\"] = window.location.toString();\n store.state.formData[\"referral\"] = currentSearch[1];\n\n const urlParams = new URLSearchParams(`${currentSearch[1]}`);\n let referralCode =\n urlParams.get(\"referrer\") ||\n urlParams.get(\"refferalPromoCode\") ||\n urlParams.get(\"sbTag\") ||\n urlParams.get(\"SbTag\");\n if (!referralCode && urlParams.has(\"deep_link_value\")) {\n referralCode = await getReferralCodeColonSeperate(\n urlParams.get(\"deep_link_value\")\n );\n }\n\n if (!referralCode && urlParams.has(\"referralCodeValue\")) {\n referralCode = await getReferralCodeColonSeperate(\n urlParams.get(\"deep_link_value\")\n );\n }\n //commenetd code\n // if (isBase64(referralCode)) {\n // referralCode = decodeBase64(referralCode);\n // }\n\n if (urlParams.has(\"mobile\")) {\n store.dispatch(\"setFormData\", {\n key: \"mobileNumber\",\n value: decodeBase64(urlParams.get(\"mobile\")),\n });\n referralCode = decodeBase64(referralCode);\n const requestActionOnChange = [\n {\n type: \"callAPILogin\",\n api: \"/login/v3/generateOTPPostCaptcha\",\n requestOn: \"onChangeVal\",\n bodyParameters: {\n mobile: \"mobileNumber\",\n isOtpResend: false,\n },\n },\n ];\n ActionHandler.handleAction(requestActionOnChange, \"mobileNumber\", {});\n }\n\n if (urlParams.has(\"name\")) {\n store.dispatch(\"setFormData\", {\n key: \"fullName\",\n value: decodeBase64(urlParams.get(\"name\")),\n });\n }\n\n if (referralCode) {\n store.dispatch(\"setTextFieldDisable\", {\n referralCode: true,\n });\n let referrarCode = referralCode.split(\"::\")[0];\n store.dispatch(\"setFormData\", {\n key: \"referralCode\",\n value: referrarCode,\n });\n }\n if (urlParams.has(\"utm_medium\")) {\n const utm_medium = urlParams.get(\"utm_medium\").includes(\"#\")\n ? urlParams.get(\"utm_medium\").split(\"#\")[0]\n : urlParams.get(\"utm_medium\");\n if (urlParams.has(\"utm_medium\") && utm_medium == \"niyo\") {\n const profileData = fnDecompressData(\n getCookieValue(\"ABGuestProfileCookie\")\n );\n console.log(\"profileData \", profileData);\n\n store.dispatch(\"setFormData\", {\n key: \"mobileNumber\",\n value: profileData.mobile_no,\n });\n\n const requestActionOnChange = {\n type: \"callAPILogin\",\n api: \"/login/v3/generateOTPPostCaptcha\",\n requestOn: \"onChangeVal\",\n requestIdKey: \"mobileNumber\",\n bodyParameters: {\n mobile: \"mobileNumber\",\n isOtpResend: false,\n },\n };\n ActionHandler.fetchAPILogin(\n requestActionOnChange,\n requestActionOnChange.bodyParameters,\n {},\n \"mobileNumber\"\n );\n }\n }\n }\n\n function getReferralCodeColonSeperate(refParam) {\n let refParams = refParam.split(\"::\");\n let referralCode;\n\n refParams.forEach((param) => {\n let referralVal = param.split(\"=\");\n if (\n referralVal[0] == \"referrer\" ||\n referralVal[0] == \"refferalPromoCode\" ||\n referralVal[0].toUpperCase() == \"SBTAG\"\n ) {\n referralCode = referralVal[1];\n }\n });\n return referralCode;\n }\n\n function getIPAddress() {\n fetch(\"https://icanhazip.com/\")\n .then((response) => {\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n return response.text();\n })\n .then((data) => {\n localStorage.setItem(\"myip\", data);\n })\n .catch((error) => {\n console.error(\"Error:\", error);\n });\n }\n\n return { getLayout, assignReferralCode, getIPAddress };\n}\n\nexport function isDocumentUploaded(document) {\n return document;\n}\n\nexport function getDeviceId() {\n let deviceId = localStorage.getItem(\"ABUUID\");\n\n if (!deviceId || deviceId === undefined || deviceId === null) {\n deviceId = ActionHandler.fnGenerateUniqueID();\n localStorage.setItem(\"ABUUID\", deviceId);\n }\n return deviceId;\n}\n","import ActionHandler from \"@/handlers/action\";\nimport store from \"@/store/store\";\n\nexport default class LocalNavigator {\n static _router = null;\n static useRouter(router) {\n LocalNavigator._router = router;\n }\n\n static pushState(route) {\n store.dispatch(\"pushNav\", route);\n }\n\n static pushStateless(route) {\n return LocalNavigator._router.replace(route);\n }\n\n static push(route) {\n if (!route) return;\n route = route.includes(\"/\") ? route : \"/\" + route;\n if (!LocalNavigator._router) {\n // console.warn(\"router is undefined..\");\n } else {\n let currentUrl = window.location;\n const currentSearch = window.location.toString().split(\"?\");\n if (currentUrl.toString().includes(\"/#/login\") && route == \"/login\") {\n if (\n currentSearch[1] == null ||\n currentSearch[1] == undefined ||\n currentSearch[1] == \"\"\n ) {\n LocalNavigator._router.push(route).then((failure) => {\n history.replaceState({}, \"\", `#${route}`);\n if (!failure) {\n store.dispatch(\"pushNav\", route);\n } else {\n // console.warn(\"FAILED TO ADD ROUTE \");\n }\n });\n } else {\n let redirectUrl = currentUrl.toString().replace(\"/#/login\", \"\");\n redirectUrl = redirectUrl.concat(\"#/login\");\n window.location.replace(redirectUrl, \"\");\n }\n } else {\n LocalNavigator._router.push(route).then((failure) => {\n history.replaceState({}, \"\", `#${route}`);\n if (!failure) {\n store.dispatch(\"pushNav\", route);\n } else {\n // console.warn(\"FAILED TO ADD ROUTE \");\n }\n });\n }\n }\n }\n\n static showBackAlert() {\n let goBackAlert;\n const state = store?.state;\n const navStack = state.navStack ? [...state.navStack] : [];\n const screens = state?.layout?.screens;\n if (navStack.length >= 1) {\n const topRoute = navStack[navStack.length - 1].replace(\"/\", \"\");\n goBackAlert = screens[topRoute]?.goBackAlert === true ? true : false;\n }\n return goBackAlert;\n }\n\n static forcePop() {\n store?.dispatch(\"popNav\");\n const navStack = store?.state?.navStack;\n if (navStack?.length >= 1) {\n const topRoute = navStack[navStack.length - 1];\n LocalNavigator._router.replace(topRoute);\n history.replaceState({}, \"\", `#${topRoute}`);\n }\n }\n static popToRoute(route) {\n store?.dispatch(\"popRouteToNav\", route);\n const navStack = store?.state?.navStack;\n if (navStack?.length >= 1) {\n const topRoute = navStack[navStack.length - 1];\n LocalNavigator._router.replace(topRoute);\n history.replaceState({}, \"\", `#${topRoute}`);\n }\n }\n\n static pop() {\n const routes = [\n \"aadhaar\",\n \"/aadhaar\",\n \"/selfie\",\n \"selfie\",\n \"panUpload\",\n \"/panUpload\",\n ];\n const previousRoute = [\"bank\", \"/bank\"];\n const state = store?.state;\n const navStack = state?.navStack;\n const screens = state?.layout?.screens;\n function getPopup(currentRoute, previousPage) {\n if (\n routes.includes(currentRoute) &&\n previousRoute.includes(previousPage)\n ) {\n return \"bankEditCofirmation\";\n }\n return \"backConfirmation\";\n }\n return new Promise((resolve) => {\n if (!LocalNavigator._router) {\n // console.warn(\"router is undefined..\");\n resolve(false);\n } else {\n if (LocalNavigator.showBackAlert()) {\n const routeKey = navStack[navStack.length - 1];\n\n const previousPage = navStack[navStack.length - 2];\n\n const routeKeyPopUp = routeKey.split(\"/\")[1] ?? routeKey;\n const popUpKey = screens[routeKeyPopUp]?.goBackAlertKey\n ? screens[routeKeyPopUp]?.goBackAlertKey\n : getPopup(routeKey, previousPage);\n\n const backAction = {\n type: \"openPopup\",\n value: popUpKey,\n };\n Promise.all([ActionHandler.handleAction(backAction, routeKey)]).then(\n () => {\n resolve(true);\n }\n );\n } else {\n LocalNavigator.forcePop();\n resolve(true);\n }\n }\n });\n }\n}\n","import {\n API_RETRY_CONFIG,\n HTTP_METHOD_DELETE,\n HTTP_METHOD_GET,\n HTTP_METHOD_POST,\n HTTP_METHOD_PUT,\n REDIRECT_FROM_TWA,\n} from \"../constants\";\n\nimport axios from \"axios\";\nimport { createMockInstance } from \"../../mocks\";\nimport { isRetryRequired } from \"../utils/httpUtils\";\nimport packageJson from \"../../package.json\";\nimport store from \"@/store/store\";\nimport { useToast } from \"vue-toastification\";\nimport useStartApp from \"../composables/useStartApp\";\nimport LocalNavigator from \"@/composables/useNavigation\";\nimport appJson from \"../../layoutLogin.json\";\n\n// import CryptoJS from \"crypto-js\";\n\nconst statusCode = {\n Unauthorized: 401,\n Forbidden: 403,\n TooManyRequests: 429,\n InternalServerError: 500,\n BadRequest: 400,\n};\n\nfunction setCookie(name, value, days, minutesEnable = false) {\n let secure = \"\";\n var expires = \"\";\n let domain = \"\";\n if (days) {\n const date = new Date();\n if (minutesEnable) {\n date.setTime(date.getTime() + days * 60 * 1000);\n } else {\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n }\n expires = \"; expires=\" + date.toUTCString();\n }\n //commented if condition for rewrite testing\n // if (import.meta.env.VITE_APP_BUILD_RELEASE == \"prod\") {\n secure = \"SameSite=strict; Secure\";\n domain = \"domain=.angelone.in;\";\n // }\n // document.cookie = name + \"=\" + (value || \"\") + expires + \"; path=/\";\n document.cookie =\n name + \"=\" + value + \"; \" + expires + \";\" + domain + \"path=/;\" + secure;\n}\n\nfunction deleteCookie(name) {\n document.cookie = name + \"=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;\";\n}\n\nfunction deleteCookieWithDomain(name, domain) {\n document.cookie =\n name +\n \"=; Path=/;\" +\n (domain ? \"Domain=\" + domain + \";\" : \"\") +\n \"Expires=Thu, 01 Jan 1970 00:00:01 GMT\";\n}\n\nfunction getCookieValue(name) {\n var nameEQ = name + \"=\";\n var ca = document.cookie.split(\";\");\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == \" \") c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);\n }\n return null;\n}\n\n// function getCookie(name) {\n// // encripted value\n// const value = getCookieValue(name);\n// if (value) {\n// var bytes = CryptoJS.AES.decrypt(value, \"@nge|$p@rk2021\");\n// return JSON.parse(bytes.toString(CryptoJS.enc.Utf8));\n// }\n// }\n\nfunction clearAllCookie() {\n // var cookies = document.cookie.split(\"; \");\n // for (var c = 0; c < cookies.length; c++) {\n // var d = window.location.hostname.split(\".\");\n // while (d.length > 0) {\n // var cookieBase =\n // encodeURIComponent(cookies[c].split(\";\")[0].split(\"=\")[0]) +\n // \"=; expires=Thu, 01-Jan-1970 00:00:01 GMT; domain=\" +\n // d.join(\".\") +\n // \" ;path=\";\n // var p = location.pathname.split(\"/\");\n // document.cookie = cookieBase + \"/\";\n // while (p.length > 0) {\n // document.cookie = cookieBase + p.join(\"/\");\n // p.pop();\n // }\n // d.shift();\n // }\n}\nconst appVersion = packageJson.version;\n\nlet headers = {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n \"Accept-Language\": \"en-US\",\n \"X-appVersion\": `${appVersion}|${appVersion}`,\n};\n\nconst injectToken = (config) => {\n try {\n const token = getCookieValue(import.meta.env.VITE_APP_GUEST_COOKIE);\n const redirectFromTwa =\n sessionStorage.getItem(REDIRECT_FROM_TWA) === \"true\";\n // const token = getCookie(import.meta.env.VITE_APP_GUEST_COOKIE)?.GuestToken;\n if (\n token != null &&\n !(\n config.url.includes(\"/generateOTPPostCaptcha\") ||\n config.url.includes(\"/verifyLoginOTP\") ||\n config.url.includes(\"https://icanhazip.com\")\n ) &&\n (!config.baseURL.includes(\"angelone.in\") || redirectFromTwa)\n ) {\n config[\"headers\"][\"Authorization\"] = `Bearer ${token}`;\n }\n // config[\"headers\"][\"Access-Control-Allow-Origin\"] = \"*\";\n\n return config;\n } catch (error) {\n showErrorMessage(\"Invalid Token\", \"token\");\n throw new Error(error);\n }\n};\n\n// const injectSource = (config) => {\n// try {\n// config[\"headers\"][\"X-source\"] = getCookieValue(\"source\") || \"spark-web\";\n// return config;\n// } catch (error) {\n// // showErrorMessage(\"Invalid Source\", \"source\");\n// // throw new Error(error);\n// config[\"headers\"][\"X-source\"] = \"spark-web\";\n// }\n// };\n\nconst injectSource = async (config) => {\n try {\n if (\n config.url.includes(\"/generateOTPPostCaptcha\") ||\n config.url.includes(\"/verifyLoginOTP\") ||\n config.url.includes(\"/request_ip\")\n ) {\n config[\"baseURL\"] = import.meta.env.VITE_LOGIN_API_BASE_URL;\n // config[\"headers\"][\"x-captcha\"] = await getCapchaCode();\n } else if (config.url.includes(\"cams/available-banks\")) {\n config[\"baseURL\"] = import.meta.env.VITE_USER_JOURNEY_API;\n config[\"headers\"][\"X-source\"] = getCookieValue(\"source\") || \"spark-web\";\n if (config.baseURL.includes(\"angelone.in\")) {\n config[\"headers\"][\"X-tokenType\"] = \"non_trade_access_token\";\n }\n } else {\n config[\"baseURL\"] = import.meta.env.VITE_API_BASE_URL;\n // const curentLocation = window.location;\n if (store?.state?.features[\"nomineeBeforeEsign\"] == true) {\n config[\"headers\"][\"X-source\"] = getCookieValue(\"source\") || \"spark-web\";\n } else {\n config[\"headers\"][\"X-source\"] = getCookieValue(\"source\") || \"spark-web\";\n }\n\n if (config.baseURL.includes(\"angelone.in\")) {\n config[\"headers\"][\"X-tokenType\"] = \"non_trade_access_token\";\n }\n }\n\n return config;\n } catch (error) {\n // showErrorMessage(\"Invalid Source\", \"source\");\n // throw new Error(error);\n config[\"headers\"][\"X-source\"] = \"spark-web\";\n }\n};\n\nconst showErrorMessage = (msg, id = \"toastIdError\") => {\n let toast = useToast();\n if (window.screen.width < 768) {\n if (msg) {\n store.commit(\"SET_SNACK_BAR\", {\n text: msg,\n snackbar: true,\n timeout: 2000,\n multiLine: true,\n });\n } else {\n store.commit(\"SET_SNACK_BAR\", {\n text: \"Something went wrong\",\n snackbar: true,\n timeout: 2000,\n });\n }\n } else {\n if (msg) {\n toast.error(msg, { id: id, timeout: 5000 });\n } else {\n toast.error(\"Something went wrong\", { id: id });\n }\n }\n};\n\nconst showInfoMessage = (msg, id = \"toastIdInfo\", timeout) => {\n let toast = useToast();\n if (window.screen.width < 768) {\n if (msg) {\n store.commit(\"SET_SNACK_BAR\", {\n text: msg,\n snackbar: true,\n timeout: timeout,\n multiLine: true,\n });\n }\n } else {\n if (msg) {\n toast.info(msg, { id: id });\n }\n }\n};\n\nclass HttpClient {\n constructor(c_headers = {}) {\n headers = {\n ...headers,\n ...c_headers,\n \"X-journeyType\": sessionStorage.getItem(\"journey-type\"),\n };\n this.instance = null;\n this.b_url = \"\";\n }\n\n static getBaseUrl() {\n return this.b_url;\n }\n\n get http() {\n return this.instance != null ? this.instance : this.init();\n }\n\n init() {\n // \"https://services-kyc2-dev.angelbroking.com\",\n const http = axios.create({\n baseURL: import.meta.env.VITE_API_BASE_URL,\n headers,\n });\n if (import.meta.env.VITE_ENABLE_MOCK_RESPONSE === \"true\") {\n createMockInstance(http);\n }\n //eslint-disable-next-line\n http.interceptors.request.use(injectToken, (error) => {\n Promise.reject(error);\n });\n\n //eslint-disable-next-line\n http.interceptors.request.use(injectSource, (error) => {\n Promise.reject(error);\n });\n\n http.interceptors.response.use(\n (response) => response,\n async (error) => {\n const { config, response } = error;\n\n if (isRetryRequired(error)) {\n config.__retryCount += 1;\n\n const axiosRetry = new Promise((resolve) => {\n setTimeout(() => {\n resolve(axios(config));\n }, (config.retryDelay || API_RETRY_CONFIG.RETRY_DELAY) * config.__retryCount);\n });\n return axiosRetry.then(() => this.exec(config));\n }\n\n if (error.code === \"ERR_NETWORK\") {\n return showErrorMessage(\"No Internet Connection\");\n }\n\n if (\n response.status === 401 &&\n sessionStorage.getItem(\"journey-type\") === \"jointAccount\"\n ) {\n store.dispatch(\"setLayout\", appJson);\n setTimeout(() => {\n LocalNavigator.push(\"/jointAccountLogin\");\n }, 100);\n\n return this.handleError(response, config);\n }\n\n if (response.status === 401) {\n store.dispatch(\"setLayout\", appJson);\n setTimeout(() => {\n LocalNavigator.push(\"/login\");\n }, 100);\n let { assignReferralCode } = useStartApp();\n console.log(\"dummy commit\");\n\n assignReferralCode();\n }\n\n return this.handleError(response, config);\n }\n );\n\n this.instance = http;\n return http;\n }\n\n checkExipre(res) {\n const msg = res?.data?.details?.message;\n if (res?.status == 401 && msg == \"Token is expired\") {\n clearAllCookie();\n }\n }\n\n request(config) {\n return this.http.request(config);\n }\n\n exec(config) {\n const { method, url, data, ...rest } = config;\n switch (method.toUpperCase()) {\n case HTTP_METHOD_GET:\n return this.get(url, { ...rest, ...data });\n case HTTP_METHOD_POST:\n return this.post(url, data, rest);\n case HTTP_METHOD_PUT:\n return this.put(url, data, rest);\n case HTTP_METHOD_DELETE:\n return this.delete(url, { ...rest, ...data });\n default:\n return null;\n }\n }\n\n get(url, config) {\n config = { ...config, withCredentials: true };\n return this.http.get(url, config);\n }\n\n post(url, data, config) {\n config = { ...config, withCredentials: true };\n return this.http.post(url, data, config);\n }\n\n put(url, data, config) {\n config = { ...config, withCredentials: true };\n return this.http.put(url, data, config);\n }\n\n delete(url, config) {\n config = { ...config, withCredentials: true };\n return this.http.delete(url, config);\n }\n upload(url, data = {}, config) {\n config = { ...config, withCredentials: true };\n let formData = new FormData();\n for (let [key, value] of Object.entries(data)) {\n formData.append(key, value);\n }\n let header = {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n ...config,\n };\n return this.post(url, formData, header);\n }\n\n handleError(error, config) {\n if (error) {\n const { status } = error;\n if (config?.[\"showErrorToast\"] === false) {\n return Promise.reject(error);\n }\n switch (status) {\n case statusCode.InternalServerError: {\n // InternalServerError\n showErrorMessage(error?.data?.message);\n break;\n }\n case statusCode.Forbidden: {\n // Forbidden\n showErrorMessage(error?.data?.message);\n break;\n }\n case statusCode.Unauthorized: {\n // Unauthorized\n if (!config.url.includes(\"/journey-decider\")) {\n showErrorMessage(error?.data?.message);\n }\n this.checkExipre(error);\n break;\n }\n case statusCode.TooManyRequests: {\n // TooManyRequests\n break;\n }\n case statusCode.BadRequest:\n {\n if (\n error?.data?.error_code == \"F-101\" ||\n error?.data?.error_code == \"UA-101\"\n ) {\n store.dispatch(\"setAuthenticationMessage\", {\n message: error?.data?.message,\n error_code: error?.data?.error_code,\n });\n } else {\n showErrorMessage(error?.data?.message);\n store.dispatch(\"setAuthenticationMessage\", {\n message: \"\",\n error_code: \"\",\n });\n }\n }\n break;\n default:\n break;\n }\n return Promise.reject(error);\n }\n }\n}\n\nconst http = new HttpClient({\n \"X-requestId\": getCookieValue(\"requestId\") || getGUID(),\n // \"X-cleverTapId\": getCookieValue(\"cleverTapId\") || \"1234\",\n // \"X-appsFlyerId\": getCookieValue(\"appsFlyerId\") || \"1234\",\n // \"X-source\": getCookieValue(\"source\") || \"spark-web\",\n // \"X-appVersion\": getCookieValue(\"appVersion\") || \"123\",\n \"X-platform\": getCookieValue(\"platform\") || \"Web\",\n // \"X-device\": getCookieValue(\"device\") || \"123\",\n // \"X-deviceId\": getCookieValue(\"deviceId\") || \"123\",\n // \"X-deviceOS\": getCookieValue(\"deviceOS\") || \"123\",\n // \"X-macAddress\": getCookieValue(\"macAddress\") || \"00:00:5e:00:53:af\",\n // \"X-ipAddress\": getCookieValue(\"ipAddress\") || \"1.1.1.1\",\n // \"X-location\": getCookieValue(\"location\") || \"Bangalore\",\n});\n\nfunction getGUID() {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (c) {\n var r = (Math.random() * 16) | 0,\n v = c == \"x\" ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\nexport {\n http,\n HttpClient,\n // getCookie,\n setCookie,\n getCookieValue,\n showErrorMessage,\n showInfoMessage,\n deleteCookie,\n clearAllCookie,\n getGUID,\n deleteCookieWithDomain,\n};\n\n//example for uupload get progress value\n// For Get\n// const config = {\n// onUploadProgress: function(progressEvent) {\n// var percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total)\n// console.log(percentCompleted)\n// }\n// }\n\n//example for uupload get progress value end\n\n// function convertOctateToKnownfileFormat(dataURI = \"\", dataTYPE = \"\") {\n// var binary = atob(dataURI.split(\",\")[1]),\n// array = [];\n// for (var i = 0; i < binary.length; i++) array.push(binary.charCodeAt(i));\n// return new Blob([new Uint8Array(array)], { type: dataTYPE });\n// }\n","import store from \"@/store/store\";\n\nclass Analytics {\n static analyticsEventLog(event_params) {\n window.dataLayer?.push({\n event: event_params?.event_name,\n eventCategory: event_params?.event_category,\n eventAction: event_params?.event_action,\n eventLabel: event_params?.event_label\n ? event_params?.event_label !== \"NA\"\n ? this.getEventLabel(event_params?.event_label)\n : \"NA\"\n : window.location.href,\n AUC: `${store?.state?.formData?.appNumber}`,\n });\n }\n static getEventLabel(ev) {\n let label;\n switch (ev) {\n case \"yes\":\n label = \"yes\";\n break;\n case \"no\":\n case \"do_it_later\":\n label = \"no\";\n break;\n case \"android\":\n label = \"Android\";\n break;\n case \"ios\":\n label = \"iOS\";\n break;\n default:\n var val = `${store?.state?.formData[ev]}`;\n label = val != \"undefined\" ? val : \"NA\";\n }\n return label;\n }\n}\n\nexport default Analytics;\n","import ActionHandler from \"@/handlers/action\";\nimport clevertap from \"clevertap-web-sdk\";\nimport { getCookieValue } from \"@/services/HttpClient\";\nimport store from \"@/store/store\";\nclass CleaverTap {\n constructor() {\n const CT_ACCOUNT_ID = import.meta.env.VITE_CLEVERTAP_ID;\n const CT_REGION = \"in1\";\n // const CT_DOMAIN = \"kyc.angelone.in\";\n clevertap.init(CT_ACCOUNT_ID, CT_REGION);\n sessionStorage[\"WZRK_D\"] = \"\";\n if (import.meta.env.VITE_BUILD_RELEASE != \"PROD\") {\n clevertap.setLogLevel(3);\n } else {\n sessionStorage.removeItem(\"WZRK_D\");\n }\n // if (navigator.geolocation) {\n // navigator.geolocation.getCurrentPosition(function (position) {\n // clevertap.getLocation(\n // position.coords.latitude,\n // position.coords.longitude\n // );\n // });\n // } else {\n // console.error(\"Sorry, your browser does not support HTML5 geolocation.\");\n // }\n }\n\n /**\n * @param {string} eventName string\n * @param {object} eventPayload object\n */\n static addEvents(eventName = \"\", eventPayload = {}) {\n const payload = CleaverTap.dataBuilder(eventPayload);\n clevertap.event.push(eventName, { ...payload });\n }\n\n /**\n * @param {object} payload object\n */\n static cleaverTapUserlogin(payload = {}) {\n const value = CleaverTap.dataBuilder(payload);\n clevertap.onUserLogin.push({\n Site: {\n // optional fields. controls whether the user will be sent email, push etc.\n \"MSG-email\": true, // Disable email notifications\n \"MSG-push\": true, // Enable push notifications\n \"MSG-sms\": true, // Enable sms notifications\n \"MSG-whatsapp\": true, // Enable WhatsApp notifications\n ...value,\n },\n });\n }\n\n /**\n * @param {object} payload object\n */\n static clevertapUpdateProfile(payload) {\n const value = CleaverTap.dataBuilder(payload);\n clevertap.profile.push({\n Site: { ...value },\n });\n }\n\n /**\n * @param {object} payload object\n */\n static userprofile(payload) {\n switch (payload?.type) {\n case \"createUser\":\n CleaverTap.cleaverTapUserlogin(payload?.data);\n break;\n case \"updateUser\":\n CleaverTap.clevertapUpdateProfile(payload?.data);\n break;\n default:\n break;\n }\n }\n\n static logout() {\n return clevertap.logout();\n }\n\n static dataBuilder(params) {\n const parsedBody = {};\n for (const key in params) {\n const value = params[key];\n if (value && value.toString().includes(\":\")) {\n let [type, keyParam] = value.split(\":\");\n if (type == \"STATE\" && store.state.formData[keyParam]) {\n let k;\n switch (key) {\n case \"Gender\":\n k = store.state.formData[keyParam].charAt(0).toUpperCase();\n parsedBody[key] = k;\n break;\n case \"Phone\":\n k =\n import.meta.env.VITE_COUNTRY_CODE +\n store.state.formData[keyParam];\n parsedBody[key] = k;\n break;\n case \"Identity\":\n k =\n import.meta.env.VITE_COUNTRY_CODE +\n store.state.formData[keyParam];\n parsedBody[key] = k;\n break;\n // case \"panEndsWith\":\n // k = store.state.formData[keyParam];\n // parsedBody[key] = k;\n // break;\n\n default:\n parsedBody[key] = store.state.formData[keyParam];\n break;\n }\n }\n } else {\n parsedBody[key] = value;\n }\n }\n\n // function showLast4Digits(input) {\n // // Convert input to string to handle both numbers and strings\n // let inputString = String(input);\n\n // // Check if the input has at least 4 characters\n // if (inputString.length >= 4) {\n // // Use slice to get the last 4 characters\n // let last4Digits = inputString.slice(-4);\n\n // // Display the result\n // console.log(last4Digits);\n // } else {\n // console.log(\"Input should have at least 4 characters\");\n // }\n // }\n // parsedBody.AUC = sto\n parsedBody[\"DeviceId\"] =\n getCookieValue(\"platform\") || ActionHandler.fnGenerateUniqueID();\n parsedBody[\"appName\"] = \"Kyc-web\";\n parsedBody[\"App_ID\"] = \"Kyc-web\";\n parsedBody[\"platform\"] = \"web\";\n return parsedBody;\n }\n}\n\nexport default CleaverTap;\n","const loadingEnum = {\n progress: \"progress\",\n error: \"error\",\n success: \"success\",\n};\n\nexport { loadingEnum };\n","import dayjs from \"dayjs\";\n// import { http } from \"../services/HttpClient\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat\";\n\ndayjs.extend(customParseFormat);\nexport function isValidDate(date) {\n const dateValid = dayjs(date);\n return dateValid.isValid();\n}\n\n// export const emailRegex = \"^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$\";\n\nexport function validAccountNumber(banknumber) {\n if (banknumber) {\n // eslint-disable-next-line no-useless-escape\n var regex = /^\\d{9,18}$/;\n return regex.test(banknumber);\n }\n return false;\n}\nexport function phoneNumber(number) {\n if (number) {\n // eslint-disable-next-line no-useless-escape\n var regex = /^[6-9]\\d{9}$/gi;\n return regex.test(number);\n }\n return false;\n}\nexport function numberonly(number) {\n if (number) {\n // eslint-disable-next-line no-useless-escape\n var regex = /^[0-9]*$/;\n return regex.test(number);\n }\n return false;\n}\nexport function characterSpace(char) {\n if (char) {\n if (/^\\s/.test(char)) return false;\n // eslint-disable-next-line no-useless-escape\n var regex = /^[a-zA-Z\\s]*$/g;\n return regex.test(char);\n }\n return false;\n}\n/* no longer used */\n\n// export async function checkUniqeAccountNumber(banknumber, path) {\n// if (!banknumber) return true;\n// const response = await http.get(path, {\n// params: {\n// banknumber: banknumber,\n// },\n// });\n// return Boolean(await response);\n// }\n\nexport function validIfsc(ifsc) {\n if (ifsc && typeof ifsc === \"string\") {\n ifsc = ifsc.toUpperCase();\n // eslint-disable-next-line no-useless-escape\n var regex = /[a-zA-Z]{4}0[a-zA-Z0-9]{6}$/;\n return regex.test(ifsc);\n }\n return false;\n}\nexport function validEmail(email) {\n if (email) {\n const regex = new RegExp(\n \"^.+@[a-zA-Z]+\\\\.{1}[a-zA-Z]+(\\\\.{0,1}[a-zA-Z]+)+$\"\n );\n return regex.test(email);\n }\n return false;\n}\nexport function alphaNum(value) {\n // eslint-disable-next-line no-useless-escape\n var regex = /^[A-Za-z0-9]+$/;\n return regex.test(value) || false;\n}\nexport function pincode(value) {\n if (value) {\n // eslint-disable-next-line no-useless-escape\n var regex = /^(\\d{4}|\\d{6})$/;\n return regex.test(value);\n }\n return false;\n}\n/* no longer used */\n\n// export async function uniqeEmailAddress(email, path) {\n// if (!email) return true;\n// const response = await http.get(path, {\n// params: {\n// email: email,\n// },\n// });\n// return Boolean(await response);\n// }\n\nexport function validPAN(pan) {\n if (pan) {\n pan = pan.toUpperCase();\n // eslint-disable-next-line no-useless-escape\n var regex = /^[a-zA-Z]{3}[P]{1}[A-Za-z]{1}([0-9]){4}([a-zA-Z]){1}?$/;\n return regex.test(pan);\n }\n return false;\n}\nexport function validAadhaar(value) {\n if (value) {\n value = value.toUpperCase();\n // eslint-disable-next-line no-useless-escape\n var regex = /^[2-9]{1}[0-9]{3}[0-9]{4}[0-9]{4}$/;\n return regex.test(value);\n }\n return false;\n}\nexport function addressValidators(value) {\n if (value) {\n // eslint-disable-next-line no-useless-escape\n var regex = /^[-@,.\\/#&+\\w\\s]*$/;\n return regex.test(value);\n }\n return false;\n}\nexport function nameValidators(value) {\n if (value) {\n // eslint-disable-next-line no-useless-escape\n var regex = /^[a-z ,.'-]+$/i;\n return regex.test(value);\n }\n return false;\n}\n/* no longer used */\n\n// export async function checkUniqePan(banknumber, path) {\n// if (!banknumber) return true;\n// const response = await http.get(path, {\n// params: {\n// banknumber: banknumber,\n// },\n// });\n// return Boolean(await response);\n// }\n\nexport function dateValidators(value) {\n if (value) {\n // eslint-disable-next-line no-useless-escape\n var regex = /(((0|1)[0-9]|2[0-9]|3[0-1])\\/(0[1-9]|1[0-2])\\/((19|20)\\d\\d))$/;\n return regex.test(value);\n }\n return false;\n}\nexport function futureDateValidators(value) {\n if (value) {\n let todayDate = dayjs(); //Today Date\n let dateOne = dayjs(value, \"DD/MM/YYYY\");\n if (todayDate > dateOne) {\n return true;\n } else {\n return false;\n }\n }\n}\n\nexport function is18yearsOld(dob) {\n let dateofBirth = dayjs(dob, \"DD/MM/YYYY\").format(\"YYYY/MM/DD\");\n let ageVal = calculateAge(dateofBirth);\n return ageVal >= 18;\n}\nexport function is99yearsOld(dob) {\n let dateofBirth = dayjs(dob, \"DD/MM/YYYY\").format(\"YYYY/MM/DD\");\n let today = new Date();\n let birthDate = new Date(dateofBirth);\n let age = today.getFullYear() - birthDate.getFullYear();\n let m = today.getMonth() - birthDate.getMonth();\n let dateGap = today.getDate() - birthDate.getDate();\n if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {\n age--;\n }\n let ageVal;\n if (age >= 99 && m > 0) {\n ageVal = false;\n } else if (age < 99) {\n ageVal = true;\n } else if (age == 99 && m < 0) {\n ageVal = true;\n } else if (age <= 99 && m == 0 && dateGap <= 0) {\n ageVal = true;\n }\n return ageVal;\n}\nexport function isMonthValid(dob) {\n const month = dob.split(\"/\");\n if (month[1] > 0 && month[1] <= 12) {\n return true;\n }\n return false;\n}\nexport function isDayValid(dob) {\n const dayy = dob.split(\"/\");\n if (dayy[0] > 0 && dayy[0] <= 31) {\n return true;\n }\n return false;\n}\nexport function isYearValid(dob) {\n const yearr = dob.split(\"/\");\n const d = dayjs().format(\"YYYY\");\n if (parseInt(yearr[2]) <= parseInt(d)) {\n return true;\n }\n return false;\n}\nexport function isYearRequired(dob) {\n const yearr = dob.split(\"/\");\n if (yearr[2] && yearr[2].length == 4) {\n return true;\n }\n return false;\n}\n\nexport function calculateAge(birthday) {\n const ageDifMs = Date.now() - new Date(birthday).getTime();\n const ageDate = new Date(ageDifMs);\n return Math.abs(ageDate.getUTCFullYear() - 1970);\n}\n","import { calculateAge } from \"@/validation/validation\";\nimport dayjs from \"dayjs\";\n/* prettier-ignore */\nimport store from \"@/store/store\";\nimport { getCookieValue } from \"@/services/HttpClient\";\nconst DEFAULT_STATE = true;\n\nexport default function useRuleParser(condition) {\n let result = false;\n /*\n validate if conditions is a valid condition\n if condition is invalid we want widget to be visible\n */\n if (!condition) return DEFAULT_STATE;\n if (condition.constructor !== String) {\n //TODO show a warning here\n return DEFAULT_STATE;\n }\n if (condition.includes(\"|<>|\")) {\n const [firstRule, validationRule, secondRule] = condition.split(\"|<>|\");\n const firstRuleResult = checkConditons(firstRule);\n const secondRuleResult = checkConditons(secondRule);\n\n if (validationRule === \"&&\") {\n result = firstRuleResult && secondRuleResult;\n } else if (validationRule === \"||\") {\n result = firstRuleResult || secondRuleResult;\n }\n } else {\n result = checkConditons(condition);\n }\n\n return result;\n}\n\nconst checkConditons = (condition) => {\n if (condition.includes(\"&&\")) {\n const conditions = condition.split(\"&&\");\n for (let i = 0; i < conditions.length; i++) {\n let conditionResult = getDataFromCond(conditions[i]);\n if (!conditionResult) {\n return false;\n }\n }\n return true;\n } else if (condition.includes(\"OR\")) {\n const conditions = condition.split(\"OR\");\n for (let i = 0; i < conditions.length; i++) {\n let conditionResult = getDataFromCond(conditions[i]);\n if (conditionResult) {\n return true;\n }\n }\n return false;\n } else {\n return getDataFromCond(condition);\n }\n};\n\nexport function getDataFromCond(condition) {\n let result = false;\n const [field, typeConditionValue] = condition.split(\":\");\n const [type, cond, expectedValue, defaultValue] =\n typeConditionValue.split(\"|\");\n\n if (!field || !type || expectedValue == undefined) {\n //TODO show a warning here\n return DEFAULT_STATE;\n }\n const formData = store?.state;\n if (!formData) return DEFAULT_STATE;\n const isVariableValue = expectedValue.split(\"\")[0] === \"$\";\n\n let derivedRHSValue = isVariableValue\n ? findAllByKey(formData, expectedValue)\n : expectedValue;\n\n const fieldArray = field.split(\".\");\n const derivedLHSValue = [\"getCookieVal\", \"sessionStorage\"].includes(type)\n ? field\n : findAllByKey(formData, fieldArray);\n\n if (derivedLHSValue == null && defaultValue) {\n result = toBoolean(defaultValue);\n return result;\n }\n\n result = evaluateCondition(type, cond, derivedRHSValue, derivedLHSValue);\n return result;\n}\n\nexport function evaluateCondition(\n type,\n cond,\n derivedRHSValue,\n derivedLHSValue\n) {\n let result = false;\n /*\n We have valid fields here, lets evaluate condition\n */\n const screenWidth =\n window?.innerWidth ||\n document?.documentElement?.clientWidth ||\n document?.body?.clientWidth;\n\n switch (type) {\n case \"string\":\n switch (cond) {\n case \"=\":\n derivedRHSValue =\n derivedRHSValue === \"undefined\" ? undefined : derivedRHSValue;\n derivedRHSValue = derivedRHSValue === \"null\" ? null : derivedRHSValue;\n result = derivedLHSValue == derivedRHSValue;\n break;\n case \"!=\":\n derivedRHSValue =\n derivedRHSValue === \"undefined\" ? undefined : derivedRHSValue;\n derivedRHSValue = derivedRHSValue === \"null\" ? null : derivedRHSValue;\n result = derivedLHSValue !== derivedRHSValue;\n break;\n }\n break;\n case \"boolean\":\n switch (cond) {\n case \"=\":\n result = derivedLHSValue == toBoolean(derivedRHSValue);\n break;\n }\n break;\n case \"number\":\n // eslint-disable-next-line no-case-declarations\n let lhs = parseInt(derivedLHSValue) || 0;\n // eslint-disable-next-line no-case-declarations\n let rhs = parseInt(derivedRHSValue) || 0;\n switch (cond) {\n case \"=\":\n result = lhs == rhs;\n break;\n case \"<\":\n result = lhs < rhs;\n break;\n case \">\":\n result = lhs > rhs;\n break;\n case \"<=\":\n result = lhs <= rhs;\n break;\n case \">=\":\n result = lhs >= rhs;\n break;\n }\n break;\n case \"age\":\n switch (cond) {\n case \"=\":\n result =\n calculateAge(\n dayjs(derivedLHSValue, \"DD/MM/YYYY\").format(\"YYYY/MM/DD\")\n ) == parseInt(derivedRHSValue);\n break;\n case \"<\":\n result =\n calculateAge(\n dayjs(derivedLHSValue, \"DD/MM/YYYY\").format(\"YYYY/MM/DD\")\n ) < parseInt(derivedRHSValue);\n break;\n case \">\":\n result =\n calculateAge(\n dayjs(derivedLHSValue, \"DD/MM/YYYY\").format(\"YYYY/MM/DD\")\n ) > parseInt(derivedRHSValue);\n break;\n case \"<=\":\n result =\n calculateAge(\n dayjs(derivedLHSValue, \"DD/MM/YYYY\").format(\"YYYY/MM/DD\")\n ) <= parseInt(derivedRHSValue);\n break;\n case \">=\":\n result =\n calculateAge(\n dayjs(derivedLHSValue, \"DD/MM/YYYY\").format(\"YYYY/MM/DD\")\n ) >= parseInt(derivedRHSValue);\n break;\n }\n break;\n case \"array\":\n result = derivedRHSValue.includes(derivedLHSValue);\n break;\n case \"object\":\n result = DEFAULT_STATE;\n break;\n case \"notnull\":\n result = !!derivedLHSValue;\n break;\n case \"null\":\n result = derivedLHSValue == \"\" || derivedLHSValue == null;\n break;\n case \"isMobile\":\n result = screenWidth < 500;\n break;\n case \"checkInStoreArr\":\n result = derivedLHSValue?.includes(derivedRHSValue);\n break;\n case \"arrayLength\":\n switch (cond) {\n case \"=\":\n result = derivedLHSValue?.length === parseInt(derivedRHSValue);\n break;\n case \"!=\":\n result = derivedLHSValue?.length !== parseInt(derivedRHSValue);\n break;\n case \">\":\n result = derivedLHSValue?.length > parseInt(derivedRHSValue);\n break;\n case \"<\":\n result = derivedLHSValue?.length < parseInt(derivedRHSValue);\n break;\n }\n break;\n case \"getCookieVal\":\n switch (cond) {\n case \"=\":\n result = getCookieValue(derivedLHSValue) === derivedRHSValue;\n break;\n case \"!=\":\n result = getCookieValue(derivedLHSValue) !== derivedRHSValue;\n break;\n }\n break;\n\n case \"sessionStorage\":\n console.log(\n \"Session storage\",\n sessionStorage.getItem(derivedLHSValue) === derivedRHSValue\n );\n switch (cond) {\n case \"=\":\n derivedRHSValue =\n derivedRHSValue === \"undefined\" ? undefined : derivedRHSValue;\n derivedRHSValue = derivedRHSValue === \"null\" ? null : derivedRHSValue;\n result = sessionStorage.getItem(derivedLHSValue) === derivedRHSValue;\n break;\n case \"!=\":\n derivedRHSValue =\n derivedRHSValue === \"undefined\" ? undefined : derivedRHSValue;\n derivedRHSValue = derivedRHSValue === \"null\" ? null : derivedRHSValue;\n result = sessionStorage.getItem(derivedLHSValue) !== derivedRHSValue;\n break;\n }\n break;\n case \"rollout\":\n switch (cond) {\n case \"=\":\n result =\n calculateRollOutPercentage(\n derivedLHSValue,\n store.state.staticConfigs[derivedRHSValue]\n ) === true;\n break;\n case \"!=\":\n result =\n calculateRollOutPercentage(\n derivedLHSValue,\n store.state.staticConfigs[derivedRHSValue]\n ) === false;\n break;\n }\n\n break;\n\n default:\n // unmatchd type return DEFAULT State\n result = DEFAULT_STATE;\n }\n return result;\n}\n\nexport function toBoolean(value) {\n var strValue = String(value).toLowerCase();\n strValue =\n !isNaN(strValue) &&\n strValue !== \"0\" &&\n strValue !== \"\" &&\n strValue !== \"null\" &&\n strValue !== \"undefined\"\n ? \"1\"\n : strValue;\n return strValue === \"true\" || strValue === \"1\" ? true : false;\n}\n\nexport function findAllByKey(obj, keyArray) {\n if (keyArray.constructor == Array) {\n for (let i = 0; i < keyArray.length; i++) {\n let value = obj?.[keyArray?.[i]];\n\n if (Array.isArray(value)) {\n return value;\n } else if (typeof value == \"object\") {\n keyArray.splice(i, 1);\n return findAllByKey(value, keyArray);\n } else if (\n typeof value == \"string\" ||\n typeof value == \"boolean\" ||\n typeof value == \"number\"\n ) {\n return value;\n }\n }\n } else {\n return obj[keyArray];\n }\n}\n","import { showInfoMessage, showErrorMessage } from \"@/services/HttpClient\";\nimport store from \"@/store/store\";\nconst DEFAULT_STATE = true;\nimport useRuleParser from \"./useRuleParser\";\n\nexport function useMessageonSnackBar(condition, messageData) {\n if (!condition) return DEFAULT_STATE;\n if (condition.constructor !== String) {\n //TODO show a warning here\n return DEFAULT_STATE;\n }\n if (condition.includes(\"&&\")) {\n const conditionValue = useRuleParser(condition);\n let messageJson = messageData.find((item) => {\n return item.conditionVal == conditionValue;\n });\n conditionValue && showInfoMessage(messageJson.message, \"infoMessage\", 3000);\n } else {\n const formData = store?.state;\n if (!formData) return DEFAULT_STATE;\n const fieldArray = condition.split(\".\");\n const derivedLHSValue = findAllByKey(formData, fieldArray);\n\n let messageJson = messageData.find((item) => {\n return item.conditionVal == derivedLHSValue;\n });\n\n switch (messageJson.type) {\n case \"error\":\n showErrorMessage(messageJson.message, \"errorMessage\");\n break;\n default:\n showInfoMessage(messageJson.message, \"infoMessage\", 3000);\n }\n }\n}\n\nexport function findAllByKey(obj, keyArray) {\n if (keyArray.constructor == Array) {\n for (let i = 0; i < keyArray.length; i++) {\n let value = obj[keyArray[i]];\n if (typeof value == \"object\") {\n keyArray.splice(i, 1);\n return findAllByKey(value, keyArray);\n // break;\n } else if (typeof value == \"string\" || typeof value == \"boolean\") {\n return value;\n }\n }\n } else {\n return obj[keyArray];\n }\n}\n","import store from \"@/store/store\";\n\nexport default function usePopupManager() {\n function initPopups() {\n const {\n state: {\n layout: { popups },\n },\n } = store;\n if (popups && Object.getPrototypeOf(popups) === Object.prototype) {\n Object.keys(popups).forEach((key) => {\n store.dispatch(\"setPopup\", {\n key,\n value: false,\n });\n });\n }\n }\n\n const iterateOverPopups = () => {\n const result = Object.keys(store.state.popups).find((key) => {\n return store.state.popups[key] == true;\n });\n return result;\n };\n\n function getActivePopups() {\n let result = iterateOverPopups();\n return result;\n }\n\n function isPopupShown() {\n let result = iterateOverPopups();\n if (!result) return false;\n return true;\n }\n\n function openPopup(id, idToWatch = null) {\n const newId = parseId(id);\n idToWatch && store.dispatch(\"setPopupIdToWatch\", idToWatch);\n if (newId) {\n return store.dispatch(\"openPopup\", newId);\n } else {\n console.error(\"invalid popup id\");\n }\n }\n\n function closePopup(id) {\n const newId = parseId(id);\n if (store.state[\"popupIdToWatch\"]) {\n store.dispatch(\"setPopupIdToWatch\", null);\n }\n if (newId) {\n store.dispatch(\"closePopup\", newId);\n store.dispatch(\"clearDocumentListFormdata\");\n } else {\n console.error(\"invalid popup id\");\n }\n }\n\n function parseId(id) {\n if (id && id.includes(\"$\")) {\n const str = id.replace(\"$\", \"\");\n const newId = store.state.formData[str];\n return newId;\n } else {\n return id;\n }\n }\n function getPopupScreen() {\n const result = iterateOverPopups();\n if (!result) return;\n\n const screen = store.state.layout.popups[result];\n return screen;\n }\n\n function getPopupParams() {\n return {\n hasHeader: true,\n hasMaxWidth: true,\n };\n }\n\n function popupOnClose(id) {\n closePopup(id);\n }\n\n function showPopup() {\n return isPopupShown();\n }\n\n return {\n initPopups,\n openPopup,\n closePopup,\n getPopupScreen,\n getPopupParams,\n popupOnClose,\n showPopup,\n getActivePopups,\n };\n}\n","import store from \"@/store/store\";\n\nexport default function useUrlCreator(rawUrl) {\n let url = rawUrl;\n try {\n const {\n state: { formData },\n } = store;\n var variableRegex = new RegExp(/\\$([a-zA-Z_]+)/, \"g\");\n var res = url.matchAll(variableRegex);\n for (const variable of res) {\n url = url.replace(variable[0], formData[variable[1]]);\n }\n } catch (err) {\n console.error(\"url creation error, skipping default url\");\n }\n return url;\n}\n","import {\n calculateRollOutPercentage,\n handleCloseChatBot,\n handleOpenChatBot,\n isObjectEmpty,\n} from \"@/utils/utils\";\nimport {\n deleteCookie,\n getCookieValue,\n http,\n setCookie,\n showErrorMessage,\n showInfoMessage,\n} from \"@/services/HttpClient\";\nimport { decompressSync, strToU8, zlibSync } from \"fflate\";\n\nimport Analytics from \"@/composables/analytics\";\nimport CONFIGDATA from \"../../src/config/configData.json\";\nimport CleaverTap from \"@/composables/Clevertap\";\nimport CryptoJS from \"crypto-js\";\nimport LocalNavigator from \"@/composables/useNavigation\";\nimport { clickStream } from \"@/composables/clickStreamAnalytics\";\nimport { getHttpErrorForAnalytics } from \"@/utils/httpUtils\";\nimport { loadingEnum } from \"@/constants/enums\";\nimport store from \"@/store/store\";\nimport { useMessageonSnackBar } from \"@/composables/useMessages\";\nimport usePopupManager from \"@/composables/usePopupManager\";\nimport useRuleParser from \"@/composables/useRuleParser\";\nimport useUrlCreator from \"@/composables/useUrlCreator\";\nimport { useToast } from \"vue-toastification\";\nimport axios from \"axios\";\nimport { getDeviceId } from \"@/composables/useStartApp\";\n\nexport const ACTION_TYPES = {\n navigateWithAPI: \"navigateWithAPI\",\n navigateToRoute: \"navigateToRoute\",\n openWebView: \"openWebView\",\n openDeepLink: \"openDeepLink\",\n openBotomSheet: \"openBotomSheet\",\n openCallback: \"openCallback\",\n callAPI: \"callAPI\",\n callAPIOnLoad: \"callAPIOnLoad\",\n captureImage: \"captureImage\",\n openPopup: \"openPopup\",\n closePopup: \"closePopup\",\n // uploadSignature: \"uploadSignature\",\n goBack: \"goBack\",\n forceGoBack: \"forceGoBack\",\n popToRoute: \"popToRoute\",\n closeWindow: \"closeWindow\",\n showMessage: \"showMessage\",\n callAnalyitcs: \"callAnalyitcs\",\n ignorePrompt: \"ignorePrompt\",\n redirectToUrl: \"redirectToUrl\",\n redirectToExternaPageNwTab: \"redirectToExternaPageNwTab\",\n redirect: \"redirect\",\n addDataToForm: \"addDataToForm\",\n addArrayElement: \"addArrayElement\",\n clearFormData: \"clearFormData\",\n initiateChatBot: \"initiateChatBot\",\n unloadChatBot: \"unloadChatBot\",\n clearAPIResponses: \"clearAPIResponses\",\n setFormData: \"setFormData\",\n clearEditIndex: \"clearEditIndex\",\n CROP: \"CROP\",\n setSession: \"setSession\",\n clearSession: \"clearSession\",\n callAPILogin: \"callAPILogin\",\n callAPIOTPVerification: \"callAPIOTPVerification\",\n clevertapUserProfile: \"clevertapUserProfile\",\n cleverTapEvents: \"cleverTapEvents\",\n sendDataInWhatsApp: \"sendDataInWhatsApp\",\n openPopupWithTimer: \"openPopupWithTimer\",\n openChatBot: \"openChatBot\",\n closeChatBot: \"closeChatBot\",\n copyStateValue: \"copyStateValue\",\n setCookieValue: \"setCookieValue\",\n setStateFromCookieValue: \"setStateFromCookieValue\",\n setBankCode: \"setBankCode\",\n showToast: \"showToast\",\n};\n\nexport const API_ACTION_TYPES = {\n navigate: \"navigate\",\n openBottomSheet: \"openBottomSheet\",\n openWebView: \"openWebView\",\n openPopup: \"openPopup\",\n};\n\nexport function clearUploadKeys() {\n store.dispatch(\"setClearLoading\");\n store.dispatch(\"setClearProgress\");\n}\n\nclass ActionHandler {\n static router;\n static isAndroid = /(android)/i.test(navigator.userAgent);\n static isiOS = /(ipod|iphone|ipad)/i.test(navigator.userAgent);\n\n static sourceId = 3;\n static usertype = 1;\n\n static useRouter(routerRef) {\n this.router = routerRef;\n }\n static showToast(toastMessage) {\n let toast = useToast();\n toast.error(toastMessage, 3000);\n }\n\n // static clickStream = new ClickStreamAnalytics();\n static handleAction(action, widgetId, formRef, screenId) {\n if (action == null) return;\n if (action.constructor === Array) {\n // It is multiple action\n action.forEach((singleAction) => {\n if (\n singleAction?.callAPIWhen &&\n useRuleParser(singleAction?.callAPIWhen)\n ) {\n ActionHandler.handleSingleAction(\n singleAction,\n widgetId,\n formRef,\n screenId\n );\n } else if (!singleAction?.callAPIWhen) {\n ActionHandler.handleSingleAction(\n singleAction,\n widgetId,\n formRef,\n screenId\n );\n }\n });\n } else if (action.constructor === Object) {\n // It is single action\n return ActionHandler.handleSingleAction(\n action,\n widgetId,\n formRef,\n screenId\n );\n } else {\n // console.warn(\"invalid action type supplied\");\n }\n }\n\n /* handling user actions*/\n static async handleSingleAction(action, widgetId, formRef, screenId) {\n const { push, pop, forcePop, popToRoute } = LocalNavigator;\n const { openPopup, closePopup, getActivePopups } = usePopupManager();\n const parsedBody = ActionHandler.dataBuilder(action.bodyParameters);\n const parsedHeader = ActionHandler.dataBuilder(action.headerParams);\n const resetFormDataOnFailure = action.resetFormDataOnFailure || false;\n // let clv = new CleaverTap();\n\n switch (action.type) {\n case ACTION_TYPES.navigateToRoute:\n push(action.value);\n break;\n case ACTION_TYPES.openPopup:\n clickStream.addEventList(action?.eventsParams);\n return openPopup(action.value, action?.idToWatch);\n case ACTION_TYPES.openPopupWithTimer:\n if (action?.condition && useRuleParser(action?.condition)) {\n clickStream.addEventList(action?.eventsParams);\n return setTimeout(\n openPopup(action.value, action?.idToWatch),\n action?.timerinmilisecond\n );\n } else {\n return;\n }\n\n case ACTION_TYPES.showMessage:\n useMessageonSnackBar(action.value, action.messageData);\n break;\n case ACTION_TYPES.closePopup:\n if (action?.validationRequired) {\n let { valid, _ } = await ActionHandler.validateForm(formRef, action);\n if (valid) {\n closePopup(action.value);\n }\n } else {\n closePopup(action.value);\n }\n break;\n case ACTION_TYPES.redirectToUrl:\n ActionHandler.redirectToUrl(action.value);\n break;\n case ACTION_TYPES.redirectToExternaPageNwTab:\n ActionHandler.redirectToExternaPageNwTab(parsedBody);\n break;\n\n case ACTION_TYPES.addArrayElement:\n ActionHandler.addArrayElement(action);\n break;\n case ACTION_TYPES.clearFormData:\n ActionHandler.clearFormData(action.bodyParameters);\n break;\n case ACTION_TYPES.setFormData:\n ActionHandler.setFormData(action.bodyParameters);\n break;\n case ACTION_TYPES.clearAPIResponses:\n ActionHandler.clearAPIResponses(action.bodyParameters);\n break;\n case ACTION_TYPES.clearEditIndex:\n ActionHandler.clearEditIndex(action);\n break;\n case ACTION_TYPES.navigateWithAPI:\n if (formRef == null) {\n return;\n } else {\n let { valid, error } = await ActionHandler.validateForm(\n formRef,\n action\n );\n if (action.addToBodyParams == \"bankCode\") {\n let banksList = store.state.formData.availableBanks || \"\";\n let code = store.state.formData.bankCode\n ? store.state.formData.bankCode.toLowerCase()\n : \"\";\n const bankObj = banksList.find((bank) => {\n let bankCode = bank.BankCode.toLowerCase();\n if (code && code === bankCode) {\n return bank;\n }\n });\n if (bankObj) {\n parsedBody[action.addToBodyParams] = bankObj.BankCode;\n }\n }\n\n const activeButton = getActivePopups()\n ? \"isModalSubmitButton\"\n : \"isPageSubmitButton\";\n if (valid) {\n store.dispatch(\"manageActiveSubmitButton\", {\n state: store.state[activeButton],\n value: false,\n });\n return ActionHandler.handleAPI(\n action,\n parsedBody,\n { headers: parsedHeader },\n widgetId,\n screenId,\n resetFormDataOnFailure\n );\n } else {\n store.dispatch(\"manageActiveSubmitButton\", {\n state: store.state[activeButton],\n value: true,\n });\n if (!error) {\n showErrorMessage(\"Please submit a valid form\", \"invalidForm\");\n } else {\n showErrorMessage(error, \"invalidForm\");\n }\n }\n }\n break;\n case ACTION_TYPES.callAPI:\n if (formRef == null) {\n return;\n } else {\n await ActionHandler.validateForm(formRef, action);\n //validation commented\n // if (valid) {\n // store.dispatch(\"manageActiveSubmitButton\", {\n // state: store.state[activeButton],\n // value: false,\n // });\n // } else {\n // store.dispatch(\"manageActiveSubmitButton\", {\n // state: store.state[activeButton],\n // value: true,\n // });\n // if (!error) {\n // showErrorMessage(\"Please submit a valid form\", \"invalidForm\");\n // } else {\n // showErrorMessage(error, \"invalidForm\");\n // }\n // }\n return ActionHandler.fetchAPI(\n action,\n parsedBody,\n {\n header: parsedHeader,\n ...action?.config,\n },\n widgetId\n );\n }\n\n // break;\n case ACTION_TYPES.callAPILogin:\n if (formRef == null) return;\n // if (await ActionHandler.validateForm(formRef, action)) {\n // store.dispatch(\"manageActiveSubmitButton\", {\n // state: store.state[activeButton],\n // value: false,\n // });\n // } else {\n // store.dispatch(\"manageActiveSubmitButton\", {\n // state: store.state[activeButton],\n // value: true,\n // });\n // }\n return ActionHandler.fetchAPILogin(\n action,\n action.bodyParameters,\n { header: parsedHeader },\n widgetId\n );\n case ACTION_TYPES.callAPIOTPVerification:\n if (formRef == null) {\n return;\n } else {\n let { valid, error } = await ActionHandler.validateForm(\n formRef,\n action\n );\n const activeButton = getActivePopups()\n ? \"isModalSubmitButton\"\n : \"isPageSubmitButton\";\n if (valid) {\n store.dispatch(\"manageActiveSubmitButton\", {\n state: store.state[activeButton],\n value: false,\n });\n if (action?.isJourneyType === \"JointAccount\") {\n return ActionHandler.fetchAPIOTPForJointAccount(\n action,\n action.bodyParameters,\n { header: parsedHeader },\n widgetId\n );\n }\n return ActionHandler.fetchAPIOTPVerification(\n action,\n action.bodyParameters,\n { header: parsedHeader },\n widgetId\n );\n } else {\n store.dispatch(\"manageActiveSubmitButton\", {\n state: store.state[activeButton],\n value: true,\n });\n if (!error) {\n showErrorMessage(\"Please submit a valid form\", \"invalidForm\");\n } else {\n showErrorMessage(error, \"invalidForm\");\n }\n }\n }\n break;\n case ACTION_TYPES.callAPIOnLoad:\n return ActionHandler.fetchAPI(\n action,\n parsedBody,\n { header: parsedHeader },\n action.widgetId\n );\n case ACTION_TYPES.goBack:\n pop();\n // if (action.clearKey) {\n // clearUploadKeys(action.clearKey);\n clearUploadKeys();\n // }\n break;\n case ACTION_TYPES.addDataToForm:\n if (formRef == null) {\n return;\n } else {\n let { valid, error } = await ActionHandler.validateForm(\n formRef,\n action\n );\n const activeButton = getActivePopups()\n ? \"isModalSubmitButton\"\n : \"isPageSubmitButton\";\n if (valid) {\n store.dispatch(\"manageActiveSubmitButton\", {\n state: store.state[activeButton],\n value: false,\n });\n ActionHandler.addDataToForm(\n parsedBody,\n action.arrayKey,\n action.uniqueKey,\n action\n );\n } else {\n store.dispatch(\"manageActiveSubmitButton\", {\n state: store.state[activeButton],\n value: true,\n });\n if (!error) {\n showErrorMessage(\"Please submit a valid form\", \"invalidForm\");\n } else {\n showErrorMessage(error, \"invalidForm\");\n }\n }\n }\n break;\n case ACTION_TYPES.forceGoBack:\n forcePop();\n break;\n case ACTION_TYPES.callAnalyitcs:\n if (action?.native) {\n Analytics.analyticsEventLog(action?.native?.bodyParameters);\n }\n if (action?.cs) {\n const forcePush = action?.cs?.forcePush || false;\n clickStream.addEventList(action?.cs?.bodyParameters, forcePush);\n }\n break;\n case ACTION_TYPES.popToRoute:\n popToRoute(action.value);\n break;\n case ACTION_TYPES.closeWindow:\n window.location.href = \"https://uattrade.angelbroking.com/\";\n break;\n case ACTION_TYPES.ignorePrompt:\n store.dispatch(\"ignoreBrowserPrompt\", action.value);\n break;\n case ACTION_TYPES.setSession:\n ActionHandler.setSessionData(action.value);\n break;\n case ACTION_TYPES.clearSession:\n ActionHandler.clearSessionData(action.value);\n break;\n case ACTION_TYPES.clevertapUserProfile:\n if (action?.ctProfile) {\n CleaverTap.userprofile(action?.ctProfile?.ctUser);\n }\n break;\n\n case ACTION_TYPES.cleverTapEvents:\n if (action?.ct) {\n CleaverTap.addEvents(\n action?.ct?.event_name,\n action?.ct?.bodyParameters\n );\n }\n break;\n\n case ACTION_TYPES.sendDataInWhatsApp:\n ActionHandler.sendDataInWhatsApp(action);\n break;\n\n case ACTION_TYPES.openChatBot:\n if (\n store.state.staticConfigs.enableAIChatbot &&\n calculateRollOutPercentage(\n store.state.formData.appNumber,\n store.state.staticConfigs.chatbot_distributionLoad\n )\n ) {\n store.dispatch(\"initiateChatBot\");\n handleOpenChatBot();\n }\n break;\n\n case ACTION_TYPES.closeChatBot:\n if (\n store.state.staticConfigs.enableAIChatbot &&\n calculateRollOutPercentage(\n store.state.formData.appNumber,\n store.state.staticConfigs.chatbot_distributionLoad\n ) &&\n store.state.formData.INITIATE_CHATBOT\n ) {\n store.dispatch(\"unloadChatBot\");\n handleCloseChatBot();\n }\n break;\n case ACTION_TYPES.copyStateValue:\n ActionHandler.copyStateValue(action);\n break;\n case ACTION_TYPES.setCookieValue:\n ActionHandler.setCookieValue(action);\n break;\n case ACTION_TYPES.setStateFromCookieValue:\n ActionHandler.setStateFromCookieValue(action);\n break;\n case ACTION_TYPES.setBankCode:\n ActionHandler.setBankCode(action);\n break;\n\n default:\n // console.warn(\"THIS ROUTE IS NOT HANDLED\");\n }\n }\n static async validateForm(ref, action) {\n if (action?.requestOn == \"onChangeVal\") {\n if (ref) {\n return {\n valid: true,\n error: null,\n };\n }\n } else {\n if (ref.id === \"frmFormButton\") return true;\n const validationStatus = await ref.validate();\n return {\n valid: validationStatus?.valid,\n error: validationStatus?.errors[0]?.errorMessages[0] || null,\n };\n }\n }\n\n static dataBuilder(params) {\n const parsedBody = {};\n for (const key in params) {\n const value = params[key];\n if (value.toString().includes(\":\")) {\n let [type, keyParam, formDataKey] = value.split(\":\");\n if (type === \"baseUrl\") {\n let baseUrl = import.meta.env.VITE_BASEURL;\n let configData = CONFIGDATA.CONFIGDATA;\n let configVal = configData[keyParam];\n let finalUrl = baseUrl + configVal;\n parsedBody[key] = finalUrl;\n } else if (type === \"env\") {\n parsedBody[key] = import.meta.env[keyParam];\n } else if (type == \"JSONVALUE\") {\n parsedBody[key] = ActionHandler.buildFROMJSON(value);\n } else if (type === \"getFromArr\") {\n parsedBody[key] =\n store.state.formData[formDataKey].includes(keyParam);\n } else if (type === \"string\") {\n parsedBody[key] = keyParam;\n }\n } else {\n parsedBody[key] = store.state.formData[value];\n }\n }\n return parsedBody;\n }\n\n static buildFROMJSON(data) {\n if (data && data?.includes(\"JSONVALUE\")) {\n const [field, typeConditionValue] = data.split(\":\");\n const [type, value] = typeConditionValue.split(\"|\");\n if (!field || !type || value == undefined) {\n return undefined;\n }\n if (type == \"string\") {\n return JSON.stringify(JSON.parse(value));\n }\n return JSON.parse(value);\n } else {\n return undefined;\n }\n }\n\n static dataBuilderFirLogin(params) {\n const parsedBody = {};\n for (const key in params) {\n const value = params[key];\n if (value.includes(\":\")) {\n let [type, keyParam] = value.split(\":\");\n if (type === \"baseUrl\") {\n let baseUrl = import.meta.env.VITE_BASEURL;\n let configData = CONFIGDATA.CONFIGDATA;\n let configVal = configData[keyParam];\n let finalUrl = baseUrl + configVal;\n parsedBody[key] = value[key].replace(value[key], finalUrl);\n }\n } else {\n const fieldValue = store.state.formData[value];\n if (fieldValue || typeof fieldValue == \"boolean\") {\n parsedBody[key] = fieldValue;\n }\n }\n }\n return parsedBody;\n }\n\n static async fetchAPI(\n action,\n body,\n config,\n widgetId,\n infoMessageNeeded = true\n ) {\n const apiEndpoint = useUrlCreator(action.api);\n if (widgetId) {\n store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.progress });\n }\n const startTime = Date.now();\n const networkType = navigator?.connection?.effectiveType || \"\";\n const apiValidationParameters = {\n event_name: action?.apiValidationEvent?.event_name,\n event_id: action?.apiValidationEvent?.event_id,\n event_type: \"api\",\n event_sub_type: \"apirequest-response\",\n };\n const forcePush = action?.forcePush || false;\n switch (action.method) {\n case \"POST\":\n if (action?.setFlagBeforeCall) {\n store.dispatch(\"setPanPrefilledLoader\", true);\n }\n return http\n .post(apiEndpoint, { data: body }, { ...config })\n .then((res) => {\n if (action?.setFlagOn) {\n if (res?.data?.data?.pan) {\n store.dispatch(\"setFormData\", {\n key: \"panPrefilled\",\n value: true,\n });\n } else {\n store.dispatch(\"setFormData\", {\n key: \"panPrefilled\",\n value: false,\n });\n }\n }\n apiValidationParameters[\n \"event_metadata\"\n ] = `{ url: ${apiEndpoint}, status: ${\n res?.status == 200 ? \"true\" : \"false\"\n }, message: ${\n res?.status == 200\n ? `API Success: ${JSON.stringify(res?.data)}`\n : `API Failure: ${JSON.stringify(res?.data)}`\n }, response-time: ${\n (Date.now() - startTime) / 1000\n }s, network-type: ${networkType}`;\n clickStream.addEventList(apiValidationParameters, forcePush);\n if (widgetId) {\n store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.success });\n }\n if (\n res?.data?.status &&\n res?.data?.status == \"success\" &&\n infoMessageNeeded === true\n ) {\n showInfoMessage(res?.data?.message, \"apiSuccessResp\", 2000);\n }\n\n store.dispatch(\"setAPIData\", {\n key: widgetId,\n value: res?.data,\n });\n ActionHandler.handleAPIData(res?.data?.data);\n if (action?.setFlagBeforeCall) {\n store.dispatch(\"setPanPrefilledLoader\", false);\n }\n })\n .catch((error) => {\n if (widgetId) {\n store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.error });\n }\n store.dispatch(\"setAPIData\", {\n key: widgetId,\n value: error,\n });\n apiValidationParameters[\n \"event_metadata\"\n ] = `{ url: ${apiEndpoint}, status: ${false}, message: ${getHttpErrorForAnalytics(\n error\n )}, response-time: ${\n (Date.now() - startTime) / 1000\n }s, network-type: ${networkType}}`;\n clickStream.addEventList(apiValidationParameters, forcePush);\n if (action?.setFlagBeforeCall) {\n store.dispatch(\"setPanPrefilledLoader\", false);\n }\n });\n\n case \"GET\":\n return http\n .get(apiEndpoint, { ...config })\n .then((res) => {\n apiValidationParameters[\n \"event_metadata\"\n ] = `{ url: ${apiEndpoint}, status: ${\n res?.status == 200 ? \"true\" : \"false\"\n }, message: ${\n res?.status == 200\n ? `API Success: ${JSON.stringify(res?.data)}`\n : `API Failure: ${JSON.stringify(res?.data)}`\n }, response-time: ${\n (Date.now() - startTime) / 1000\n }s, network-type: ${networkType}}`;\n clickStream.addEventList(apiValidationParameters, forcePush);\n store.dispatch(\"setAPIData\", {\n key: widgetId,\n value: res?.data,\n });\n ActionHandler.handleAPIData(res?.data?.data);\n if (widgetId) {\n store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.success });\n }\n })\n .catch((error) => {\n if (widgetId) {\n store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.error });\n }\n apiValidationParameters[\n \"event_metadata\"\n ] = `{ url: ${apiEndpoint}, status: ${false}, message: ${getHttpErrorForAnalytics(\n error\n )}, response-time: ${\n (Date.now() - startTime) / 1000\n }s, network-type: ${networkType}}`;\n clickStream.addEventList(apiValidationParameters, forcePush);\n });\n }\n }\n\n static checkOS() {\n const userAgent = navigator.userAgent.toLowerCase();\n switch (true) {\n case /windows/.test(userAgent):\n return \"windows\";\n case /mac/.test(userAgent):\n return \"Mac OS\";\n case /linux/.test(userAgent):\n return \"Linux\";\n case /(android)/i.test(userAgent):\n return \"Android\";\n case /(ipod|iphone|ipad)/i.test(userAgent):\n return \"IOS\";\n default:\n return \"\";\n }\n }\n\n // old logic\n // static async fetchAPILogin(action, body, config, widgetId) {\n // const apiEndpoint = useUrlCreator(action.api);\n // if (widgetId) {\n // store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.progress });\n // }\n // const reqbody = {\n // country_code: \"+91\",\n // mob_no: store.state.formData[body.mobile],\n // is_otp_resend: body.isOtpResend,\n // user_id: \"\",\n // };\n // let captcha = await ActionHandler.loginHeader(\n // store.state.formData[body.mobile]\n // );\n // let headers = {\n // \"Content-type\": \"application/json\",\n // // \"x-captcha\": captcha,\n // \"X-DeviceID\":\n // getCookieValue(\"platform\") || ActionHandler.fnGenerateUniqueID(),\n // \"x-clientlocalip\": localStorage.getItem(\"myip\"),\n // \"x-clientpublicip\": localStorage.getItem(\"myip\"),\n // \"x-sourceid\": 3,\n // \"x-usertype\": 1,\n // \"X-macaddress\": getCookieValue(\"macAddress\") || \"00:00:5e:00:53:af\",\n // ApplicationName: \"Kyc-web\",\n // \"X-Appid\": \"Kyc-web\",\n // \"X-OperatingSystem\": ActionHandler.checkOS(),\n // \"X-Location\": \"\",\n // \"X-Systeminfo\": \"\",\n // \"X-Productversion\": \"\",\n // };\n // headers = {\n // ...headers,\n // ...captcha,\n // };\n // const startTime = Date.now();\n // const networkType = navigator?.connection?.effectiveType || \"\";\n // const apiValidationParameters = {\n // event_name: action?.apiValidationEvent?.event_name,\n // event_id: action?.apiValidationEvent?.event_id,\n // event_type: \"api\",\n // event_sub_type: \"apirequest-response\",\n // };\n // return http\n // .post(apiEndpoint, reqbody, { headers })\n // .then((res) => {\n // if (widgetId) {\n // store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.success });\n // }\n // if (res?.data?.status && res?.data?.status == \"success\") {\n // showInfoMessage(res?.data?.message, \"apiSuccessResp\", 2000);\n // }\n // store.dispatch(\"setAPIData\", {\n // key: widgetId,\n // value: res?.data,\n // });\n // ActionHandler.handleAPIData(res?.data?.data);\n // apiValidationParameters[\n // \"event_metadata\"\n // ] = `{ url: ${apiEndpoint}, status: ${\n // res?.status == 200 ? \"true\" : \"false\"\n // }, message: ${\n // res?.status == 200\n // ? `API Success: ${JSON.stringify(res?.data)}`\n // : `API Failure: ${JSON.stringify(res?.data)}`\n // }, response-time: ${\n // (Date.now() - startTime) / 1000\n // }s, network-type: ${networkType}`;\n // clickStream.addEventList(apiValidationParameters);\n // })\n // .catch((error) => {\n // if (widgetId) {\n // store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.error });\n // }\n // apiValidationParameters[\n // \"event_metadata\"\n // ] = `{ url: ${apiEndpoint}, status: ${false}, message: ${getHttpErrorForAnalytics(\n // error\n // )}, response-time: ${\n // (Date.now() - startTime) / 1000\n // }s, network-type: ${networkType}}`;\n // clickStream.addEventList(apiValidationParameters);\n // });\n // }\n\n static async fetchAPILogin(action, body, config, widgetId) {\n // const apiEndpoint = useUrlCreator(action.api);\n const apiEndpoint = import.meta.env.VITE_LOGIN_API_BASE_URL + action.api;\n\n if (widgetId) {\n store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.progress });\n }\n const reqbody = {\n country_code: \"+91\",\n mob_no: store.state.formData[body.mobile],\n is_otp_resend: body.isOtpResend,\n user_id: \"\",\n };\n // let captcha = await ActionHandler.loginHeader(\n // store.state.formData[body.mobile]\n // );\n let sessionToken = await ActionHandler.getSessionTokenForLogin();\n let headers = {\n \"Content-type\": \"application/json\",\n // \"x-captcha\": captcha,\n \"X-DeviceID\": getDeviceId(),\n \"x-clientlocalip\": localStorage.getItem(\"myip\"),\n \"x-clientpublicip\": localStorage.getItem(\"myip\"),\n \"x-sourceid\": this.sourceId,\n \"x-usertype\": this.usertype,\n \"X-macaddress\": getCookieValue(\"macAddress\") || \"00:00:5e:00:53:af\",\n ApplicationName: \"Kyc-Web\",\n \"X-Appid\": \"Kyc-web\",\n \"X-OperatingSystem\": ActionHandler.checkOS(),\n \"X-Location\": \"\",\n \"X-Systeminfo\": \"\",\n \"X-Productversion\": \"\",\n \"X-UserAgent\": navigator.userAgent,\n };\n headers = {\n ...headers,\n ...sessionToken,\n };\n const startTime = Date.now();\n const networkType = navigator?.connection?.effectiveType || \"\";\n const apiValidationParameters = {\n event_name: action?.apiValidationEvent?.event_name,\n event_id: action?.apiValidationEvent?.event_id,\n event_type: \"api\",\n event_sub_type: \"apirequest-response\",\n };\n\n const loginResponse = await fetch(apiEndpoint, {\n method: \"POST\",\n headers: headers,\n body: JSON.stringify(reqbody),\n credentials: \"include\",\n });\n // .then((res) => {\n const res = await loginResponse.json();\n\n // alert(\"res \" + JSON.stringify(res));\n if (widgetId) {\n store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.success });\n }\n if (res?.status && res?.status == \"success\") {\n showInfoMessage(res?.message, \"apiSuccessResp\", 2000);\n }\n store.dispatch(\"setAPIData\", {\n key: widgetId,\n value: res,\n });\n ActionHandler.handleAPIData(res?.data);\n apiValidationParameters[\n \"event_metadata\"\n ] = `{ url: ${apiEndpoint}, status: ${\n res?.status == 200 ? \"true\" : \"false\"\n }, message: ${\n res?.status == 200\n ? `API Success: ${JSON.stringify(res)}`\n : `API Failure: ${JSON.stringify(res)}`\n }, response-time: ${\n (Date.now() - startTime) / 1000\n }s, network-type: ${networkType}`;\n clickStream.addEventList(apiValidationParameters);\n }\n\n static async loginHeader(mobile) {\n let dataVal = [];\n if (getCookieValue(\"GuestAuthToken\")) {\n dataVal = JSON.parse(atob(getCookieValue(\"GuestAuthToken\")));\n }\n let existingVal = dataVal\n .filter((f) => f.MobileNo === mobile)\n .map((m) => ({ accessTokenData: m.GuestAuthToken }))[0];\n if (existingVal != undefined) {\n return { Authorization: \"Bearer \" + existingVal.accessTokenData };\n } else {\n return { \"x-captcha\": await ActionHandler.getCapchaCode() };\n }\n }\n static redirectionFromLogin(widgetId) {\n let redirectionUrl = \"\";\n if (store.state.formData.rawUrl) {\n if (store.state.formData.rawUrl.includes(\"/#/login/\")) {\n redirectionUrl = store.state.formData.rawUrl.replace(\"/#/login/\", \"/\");\n } else if (store.state.formData.rawUrl.includes(\"/#/jointAccountLogin\")) {\n redirectionUrl = store.state.formData.rawUrl.replace(\n \"/#/jointAccountLogin\",\n \"/\"\n );\n } else if (store.state.formData.rawUrl.includes(\"#/login/\")) {\n redirectionUrl = store.state.formData.rawUrl.replace(\"#/login\", \"\");\n } else if (store.state.formData.rawUrl.includes(\"#/jointAccountLogin\")) {\n redirectionUrl = store.state.formData.rawUrl.replace(\n \"#/jointAccountLogin\",\n \"\"\n );\n } else if (store.state.formData.rawUrl.includes(\"#/register/\")) {\n redirectionUrl = store.state.formData.rawUrl.replace(\"#/register\", \"\");\n }\n } else {\n redirectionUrl = import.meta.env.VITE_BASEURL + \"/\";\n }\n\n store.dispatch(\"ignoreBrowserPrompt\", true);\n setTimeout(async () => {\n window.location.replace(redirectionUrl, \"\");\n }, 1000);\n if (widgetId) {\n store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.success });\n }\n }\n\n static async fetchAPIOTPVerification(action, body, config, widgetId) {\n // const apiEndpoint = useUrlCreator(action.api);\n const apiEndpoint = import.meta.env.VITE_LOGIN_API_BASE_URL + action.api;\n\n sessionStorage.removeItem(\"journey-type\");\n sessionStorage.removeItem(\"firstHolderAppNumber\");\n\n if (widgetId) {\n store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.progress });\n }\n\n let sessionToken = await ActionHandler.getSessionTokenForLogin();\n\n const reqbody = {\n request_id:\n store?.state?.apiResponses?.[action.requestIdKey]?.data?.request_id,\n country_code: import.meta.env.VITE_COUNTRY_CODE,\n mob_no: store.state.formData[body.mobile],\n otp: store.state.formData[body.mobileOtp],\n source: import.meta.env.VITE_LOGIN_SOURCE,\n app_id: import.meta.env.VITE_APP_ID,\n require_token_flag: \"all\",\n user_id: \"\",\n };\n let headers = {\n \"Content-type\": \"application/json\",\n \"x-clientlocalip\": localStorage.getItem(\"myip\"),\n \"x-clientpublicip\": localStorage.getItem(\"myip\"),\n \"X-DeviceID\": getDeviceId(),\n \"x-sourceid\": this.sourceId,\n \"x-usertype\": this.usertype,\n \"X-macaddress\": getCookieValue(\"macAddress\") || \"00:00:5e:00:53:af\",\n ApplicationName: \"Kyc-Web\",\n \"X-Appid\": \"Kyc-web\",\n \"X-OperatingSystem\": ActionHandler.checkOS(),\n \"X-Location\": \"\",\n \"X-Systeminfo\": \"\",\n \"X-Productversion\": \"\",\n };\n const startTime = Date.now();\n const networkType = navigator?.connection?.effectiveType || \"\";\n const apiValidationParameters = {\n event_name: action?.apiValidationEvent?.event_name,\n event_id: action?.apiValidationEvent?.event_id,\n event_type: \"api\",\n event_sub_type: \"apirequest-response\",\n };\n let otpResp = await fetch(apiEndpoint, {\n method: \"POST\",\n headers: { ...headers, ...sessionToken },\n body: JSON.stringify(reqbody),\n credentials: \"include\",\n });\n const res = await otpResp.json();\n\n // .then((res) => {\n\n store.dispatch(\"setAPIData\", {\n key: widgetId,\n value: res?.data,\n });\n // push(\"register\");\n ActionHandler.handleAPIData(res?.data);\n apiValidationParameters[\n \"event_metadata\"\n ] = `{ url: ${apiEndpoint}, status: ${\n res?.status == 200 ? \"true\" : \"false\"\n }, message: ${\n res?.status == 200\n ? `API Success: ${JSON.stringify(res?.data)}`\n : `API Failure: ${JSON.stringify(res?.data)}`\n }, response-time: ${\n (Date.now() - startTime) / 1000\n }s, network-type: ${networkType}`;\n clickStream.addEventList(apiValidationParameters);\n if (action?.ctUser) {\n CleaverTap.userprofile(action?.ctUser);\n }\n if (action?.ct) {\n const ct_msg = {\n url: apiEndpoint,\n status: res?.status == 200 ? \"true\" : \"false\",\n // api: res?.data,\n networkType: networkType,\n };\n CleaverTap.addEvents(action?.ct?.event_name, {\n ...action?.ct?.bodyParameters,\n ...ct_msg,\n });\n }\n\n if (res?.status && res?.status == \"success\") {\n const parsedData = ActionHandler.fnCompressData(\n JSON.stringify(res?.data)\n );\n setCookie(import.meta.env.VITE_APP_USER_COOKIE, parsedData, 60, false);\n\n showInfoMessage(res?.message, \"apiSuccessResp\", 2000);\n\n const rawUrlSearch = store.state.formData.rawUrl;\n const urlParams = new URLSearchParams(`${rawUrlSearch}`);\n const intent_redirect = urlParams.get(\"intent_redirect\");\n console.log(\"intent url \", intent_redirect);\n console.log(\"OTP response \", res?.data);\n\n if (intent_redirect && ActionHandler.isGuest(res?.data)) {\n console.log(\"intent url \", intent_redirect);\n if (intent_redirect.includes(\"#\")) {\n let hashIntentRedirectUrl = intent_redirect.split(\"#\")[0];\n window.open(hashIntentRedirectUrl, \"_self\");\n } else {\n window.open(intent_redirect, \"_self\");\n }\n } else if (ActionHandler.isGuest(res?.data)) {\n const partyCode = Object.keys(res?.data?.PartyCodeDetails || {})[0];\n const guestToken =\n res?.data?.PartyCodeDetails?.[partyCode]?.non_trading_access_token;\n deleteCookie(import.meta.env.VITE_APP_GUEST_COOKIE);\n setCookie(import.meta.env.VITE_APP_GUEST_COOKIE, guestToken, 7, false);\n\n // ActionHandler.journeyDecider(guestToken, widgetId);\n ActionHandler.redirectionFromLogin(widgetId);\n } else if (Object.keys(res?.data?.PartyCodeDetails).length > 0) {\n let clientId = Object.keys(res?.data?.PartyCodeDetails)[0];\n // let expire = ActionHandler.parseJwt(\n // res?.data?.PartyCodeDetails[clientId]?.non_trading_access_token\n // );\n // setCookie(\n // \"ABNonTradeToken\",\n // res?.data?.PartyCodeDetails[clientId]?.non_trading_access_token,\n // expire.exp\n // );\n // setCookie(\n // \"ABNonTradeRefreshToken\",\n // res?.data?.PartyCodeDetails[clientId]?.non_trading_refresh_token,\n // expire.exp\n // );\n ActionHandler.checkUserType(res?.data?.PartyCodeDetails, res);\n if (widgetId) {\n store.dispatch(\"setLoading\", {\n [widgetId]: loadingEnum.success,\n });\n }\n }\n }\n }\n\n static async fetchAPIOTPForJointAccount(action, body, config, widgetId) {\n // const apiEndpoint = useUrlCreator(action.api);\n const apiEndpoint = import.meta.env.VITE_LOGIN_API_BASE_URL + action.api;\n sessionStorage.setItem(\"journey-type\", \"jointAccount\");\n let sessionToken = await ActionHandler.getSessionTokenForLogin();\n\n if (widgetId) {\n store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.progress });\n }\n const reqbody = {\n request_id:\n store?.state?.apiResponses?.[action.requestIdKey]?.data?.request_id,\n country_code: import.meta.env.VITE_COUNTRY_CODE,\n mob_no: store.state.formData[body.mobile],\n otp: store.state.formData[body.mobileOtp],\n source: import.meta.env.VITE_LOGIN_SOURCE,\n app_id: import.meta.env.VITE_APP_ID,\n require_token_flag: \"all\",\n user_id: \"\",\n };\n let headers = {\n \"Content-type\": \"application/json\",\n \"x-clientlocalip\": localStorage.getItem(\"myip\"),\n \"x-clientpublicip\": localStorage.getItem(\"myip\"),\n \"X-DeviceID\": getDeviceId(),\n \"x-sourceid\": this.sourceId,\n \"x-usertype\": this.usertype,\n \"X-macaddress\": getCookieValue(\"macAddress\") || \"00:00:5e:00:53:af\",\n ApplicationName: \"Kyc-Web\",\n \"X-Appid\": \"Kyc-web\",\n \"X-OperatingSystem\": ActionHandler.checkOS(),\n \"X-Location\": \"\",\n \"X-Systeminfo\": \"\",\n \"X-Productversion\": \"\",\n };\n const startTime = Date.now();\n const networkType = navigator?.connection?.effectiveType || \"\";\n const apiValidationParameters = {\n event_name: action?.apiValidationEvent?.event_name,\n event_id: action?.apiValidationEvent?.event_id,\n event_type: \"api\",\n event_sub_type: \"apirequest-response\",\n };\n // return http\n // .post(apiEndpoint, reqbody, { headers: { ...headers, ...sessionToken } })\n const jointOtpResp = await fetch(apiEndpoint, {\n method: \"POST\",\n headers: { ...headers, ...sessionToken },\n body: JSON.stringify(reqbody),\n credentials: \"include\",\n });\n const res = await jointOtpResp.json();\n\n // .then(async (res) => {\n store.dispatch(\"setAPIData\", {\n key: widgetId,\n value: res?.data,\n });\n // push(\"register\");\n ActionHandler.handleAPIData(res?.data);\n apiValidationParameters[\n \"event_metadata\"\n ] = `{ url: ${apiEndpoint}, status: ${\n res?.status == 200 ? \"true\" : \"false\"\n }, message: ${\n res?.status == 200\n ? `API Success: ${JSON.stringify(res?.data)}`\n : `API Failure: ${JSON.stringify(res?.data)}`\n }, response-time: ${\n (Date.now() - startTime) / 1000\n }s, network-type: ${networkType}`;\n clickStream.addEventList(apiValidationParameters);\n if (action?.ctUser) {\n CleaverTap.userprofile(action?.ctUser);\n }\n if (action?.ct) {\n const ct_msg = {\n url: apiEndpoint,\n status: res?.status == 200 ? \"true\" : \"false\",\n // api: res?.data,\n networkType: networkType,\n };\n CleaverTap.addEvents(action?.ct?.event_name, {\n ...action?.ct?.bodyParameters,\n ...ct_msg,\n });\n }\n store.state.formData.firstHolderAppNumber &&\n sessionStorage.setItem(\n \"firstHolderAppNumber\",\n store.state.formData.firstHolderAppNumber\n );\n\n if (res?.status && res?.status == \"success\") {\n const parsedData = ActionHandler.fnCompressData(\n JSON.stringify(res?.data)\n );\n setCookie(import.meta.env.VITE_APP_USER_COOKIE, parsedData, 60, true);\n\n showInfoMessage(res?.message, \"apiSuccessResp\", 2000);\n store.dispatch(\"setFormData\", {\n key: \"addjointholderAction\",\n value: false,\n });\n const rawUrlSearch = store.state.formData.rawUrl;\n const urlParams = new URLSearchParams(`${rawUrlSearch}`);\n const intent_redirect = urlParams.get(\"intent_redirect\");\n\n if (intent_redirect && ActionHandler.isGuest(res?.data)) {\n console.log(\"intent url \", intent_redirect);\n if (intent_redirect.includes(\"#\")) {\n let hashIntentRedirectUrl = intent_redirect.split(\"#\")[0];\n window.open(hashIntentRedirectUrl, \"_self\");\n } else {\n window.open(intent_redirect, \"_self\");\n }\n } else if (ActionHandler.isGuest(res?.data)) {\n const partyCode = Object.keys(res?.data?.PartyCodeDetails || {})[0];\n const guestToken =\n res?.data?.PartyCodeDetails?.[partyCode]?.non_trading_access_token;\n deleteCookie(import.meta.env.VITE_APP_GUEST_COOKIE);\n setCookie(import.meta.env.VITE_APP_GUEST_COOKIE, guestToken, 7, false);\n\n ActionHandler.redirectionFromLogin(widgetId);\n } else if (Object.keys(res?.data?.PartyCodeDetails).length > 0) {\n let clientId = Object.keys(res?.data?.PartyCodeDetails)[0];\n let expire = ActionHandler.parseJwt(\n res?.data?.PartyCodeDetails[clientId]?.non_trading_access_token\n );\n setCookie(\n import.meta.env.VITE_APP_GUEST_COOKIE,\n res?.data?.PartyCodeDetails[clientId]?.non_trading_access_token,\n 7,\n false\n );\n if (!action?.addedHolder) {\n const jointAccresp = await http.get(\"/v1/kyc/jointAccount\");\n\n if (\n jointAccresp.data.type === \"second\" ||\n jointAccresp.data.type === \"third\"\n )\n return ActionHandler.redirectionFromLogin(widgetId);\n else {\n sessionStorage.removeItem(\"firstHolderAppNumber\");\n }\n }\n if (action?.addedHolder) {\n // setTokenExp(expire?.exp);\n ActionHandler.redirectionFromLogin(widgetId);\n } else {\n // let clientId = Object.keys(res?.data?.PartyCodeDetails)[0];\n // let expire = ActionHandler.parseJwt(\n // res?.data?.PartyCodeDetails[clientId]?.non_trading_access_token\n // );\n // // setTokenExp(expire?.exp);\n // setCookie(\n // \"ABNonTradeToken\",\n // res?.data?.PartyCodeDetails[clientId]?.non_trading_access_token,\n // expire.exp\n // );\n // setCookie(\n // \"ABNonTradeRefreshToken\",\n // res?.data?.PartyCodeDetails[clientId]?.non_trading_refresh_token,\n // expire.exp\n // );\n ActionHandler.checkUserType(res?.data?.PartyCodeDetails);\n if (widgetId) {\n store.dispatch(\"setLoading\", {\n [widgetId]: loadingEnum.success,\n });\n }\n }\n }\n }\n }\n\n static async journeyDecider(token, widgetId) {\n try {\n let headers = ActionHandler.getJourneyDeciderHeader();\n let resp = await http.get(\"/kyc/journey-decider\", { headers });\n console.log(\"journey deciderr response \", resp);\n const currentSearch = store.state.formData?.rawUrl?.split(\"?\");\n const urlQuery = currentSearch;\n\n urlQuery &&\n !urlQuery[1] &&\n sessionStorage.setItem(\n \"referralCode\",\n store?.state?.formData?.referralCode\n );\n\n if (resp?.data?.journeyType == \"OLD\") {\n ActionHandler.redirectionFromLogin();\n } else if (resp?.data?.journeyType == \"NEW\") {\n setCookie(import.meta.env.VITE_NEW_GUEST_TOKEN_KEY, token, 7, false);\n store.dispatch(\"ignoreBrowserPrompt\", true);\n if (urlQuery[1]) {\n window.location.replace(\n `${import.meta.env.VITE_KYC_NEW_JOURNEY}?${urlQuery[1]}`,\n \"_self\"\n );\n } else {\n window.location.replace(\n import.meta.env.VITE_KYC_NEW_JOURNEY,\n \"_self\"\n );\n }\n }\n } catch (error) {\n console.log(\"error in journey decider \", error);\n }\n }\n\n static getJourneyDeciderHeader(referralCode) {\n const obj = {\n \"Content-type\": \"application/json\",\n \"x-clientlocalip\": localStorage.getItem(\"myip\"),\n \"x-clientpublicip\": localStorage.getItem(\"myip\"),\n \"X-DeviceID\": getDeviceId(),\n \"x-sourceid\": 3,\n \"x-usertype\": 1,\n \"X-macaddress\": getCookieValue(\"macAddress\") || \"00:00:5e:00:53:af\",\n ApplicationName: \"Spark-web\",\n \"X-Appid\": \"Kyc-web\",\n \"X-OperatingSystem\": ActionHandler.checkOS(),\n \"X-Location\": \"\",\n \"X-Systeminfo\": \"\",\n \"X-Productversion\": \"\",\n referralstring: window.location.search.substring(1),\n };\n\n if (!obj.referralstring && referralCode)\n obj.referralstring = `referrer=${referralCode}`;\n\n return obj;\n }\n\n static async getSessionTokenForLogin() {\n if (ActionHandler.sessionToken) {\n return {\n Authorization: `Bearer ${ActionHandler.sessionToken}`,\n };\n }\n\n const captcha = await ActionHandler.getCapchaCode();\n const tokenApiRes = await ActionHandler.generateSessionToken(captcha);\n\n if (\n tokenApiRes?.data?.status === \"success\" &&\n tokenApiRes?.data?.data?.session_token\n ) {\n ActionHandler.sessionToken = tokenApiRes.data.data.session_token;\n\n return {\n Authorization: `Bearer ${ActionHandler.sessionToken}`,\n };\n }\n\n return {};\n }\n\n static async generateSessionToken(captcha) {\n return axios.get(\n import.meta.env.VITE_LOGIN_API_BASE_URL + \"/login/v3/session-token\",\n {\n headers: {\n \"Content-Type\": \"application/json\",\n ApplicationName: \"KYC-WEB\",\n \"x-captcha\": captcha,\n \"x-source\": \"Spark-WEB\",\n \"x-sourceid\": this.sourceId,\n \"x-usertype\": this.usertype,\n \"x-operatingsystem\": ActionHandler.checkOS(),\n \"x-clientlocalip\": localStorage.getItem(\"myip\"),\n \"x-clientpublicip\": localStorage.getItem(\"myip\"),\n \"x-macaddress\": getCookieValue(\"macAddress\") || \"00:00:5e:00:53:af\",\n \"x-deviceid\": getDeviceId(),\n },\n }\n );\n }\n\n static parseJwt(token) {\n const base64Url = token.split(\".\")[1];\n const base64 = base64Url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const jsonPayload = decodeURIComponent(\n window\n .atob(base64)\n .split(\"\")\n .map((c) => `%${`00${c.charCodeAt(0).toString(16)}`.slice(-2)}`)\n .join(\"\")\n );\n\n return JSON.parse(jsonPayload);\n }\n\n // static isGuest(data) {\n // if (data?.data?.guest_token) {\n // return true;\n // } else {\n // return false;\n // }\n // }\n\n // static isGuest(data) {\n // const partyCode = Object.keys(data?.PartyCodeDetails || {})[0];\n // const userType = data?.PartyCodeDetails?.[partyCode]?.user_type;\n // const products = data?.PartyCodeDetails?.[partyCode]?.products;\n\n // return userType === \"guest\" && Object.keys(products || {}).length === 0;\n // }\n\n static isGuest(data) {\n const partyCode = Object.keys(data?.PartyCodeDetails || {})[0];\n const userType = data?.PartyCodeDetails?.[partyCode]?.user_type;\n\n return userType === \"guest\";\n }\n\n static _arrayBufferToBase64(bytes) {\n var binary = \"\";\n var len = bytes.byteLength;\n for (var i = 0; i < len; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return window.btoa(binary);\n }\n\n static fnCompressData(str) {\n if (!str) return;\n const compressed = zlibSync(strToU8(str));\n const cs = ActionHandler._arrayBufferToBase64(compressed);\n return cs;\n }\n\n static fnDecompressData(b64Data, rettype) {\n if (!b64Data) return {};\n // Decode base64 (convert ascii to binary)\n const strData = atob(b64Data);\n\n // Convert binary string to character-number array\n const charData = strData.split(\"\").map(function (x) {\n return x.charCodeAt(0);\n });\n\n // Turn number array into byte-array\n const binData = new Uint8Array(charData);\n\n // fflate magic\n try {\n const data = decompressSync(binData);\n const response = data.reduce(function (data, byte) {\n return data + String.fromCharCode(byte);\n }, \"\");\n\n if (rettype) return response;\n else return JSON.parse(response);\n } catch (error) {\n // console.log('error', error);\n return {};\n }\n }\n\n // static async checkUserType(data, respData) {\n // // setCookie(\"ABUserCookie\", JSON.stringify(respData), 500);\n // const parsedData = ActionHandler.fnCompressData(JSON.stringify(respData));\n // await setCookie(import.meta.env.VITE_APP_USER_COOKIE, parsedData);\n // let objUsertypeResp = data;\n // let arrAccounts = [];\n // let accountList = [];\n // for (var account in objUsertypeResp) {\n // arrAccounts.push(account);\n // }\n // if (arrAccounts.length > 0) {\n // for (let i = 0; i < arrAccounts.length; i++) {\n // let clientCode = arrAccounts[i];\n // let account = objUsertypeResp[clientCode];\n // let passwordset = account.password;\n // let pinset = account.mpin;\n // let rekycNeeded = account.rekycNeeded;\n // let arrUserName = account.first_name;\n // let initials = arrUserName[0].charAt(0);\n // if (arrUserName.length > 0) {\n // initials = initials + arrUserName[arrUserName.length - 1].charAt(0);\n // }\n // const obj = {\n // profilePic: \"\",\n // initials: initials,\n // name: account.first_name,\n // clientCode: clientCode,\n // passwordset: passwordset,\n // pinset: pinset,\n // isActive: account.active,\n // tokens: account,\n // rekycNeeded,\n // };\n // accountList.push(obj);\n // }\n\n // if (accountList.length == 1) {\n // const { rekycNeeded, isActive } = accountList[0];\n // if (rekycNeeded && !isActive) {\n // ActionHandler.fnRedirectToReKycUrl();\n // } else if (!rekycNeeded && !isActive) {\n // showErrorMessage(\"In Active Account\", \"inactiveUser\");\n // } else {\n // if (!accountList[0].passwordset) {\n // store.dispatch(\"ignoreBrowserPrompt\", true);\n // window.location.replace(\n // import.meta.env.VITE_LOGIN_REDIRECT_ACTIVE_USER + \"?step=pass\",\n // \"\"\n // );\n // } else if (!accountList[0].pinset) {\n // store.dispatch(\"ignoreBrowserPrompt\", true);\n // window.location.replace(\n // import.meta.env.VITE_LOGIN_REDIRECT_ACTIVE_USER + \"?step=pin\",\n // \"\"\n // );\n // } else {\n // store.dispatch(\"ignoreBrowserPrompt\", true);\n // window.location.replace(\n // import.meta.env.VITE_LOGIN_REDIRECT_ACTIVE_USER,\n // \"\"\n // );\n // }\n // }\n // } else {\n // store.dispatch(\"ignoreBrowserPrompt\", true);\n // window.location.replace(\n // import.meta.env.VITE_LOGIN_REDIRECT_ACTIVE_USER,\n // \"\"\n // );\n // }\n // } else {\n // store.dispatch(\"ignoreBrowserPrompt\", true);\n // window.location.replace(\n // import.meta.env.VITE_LOGIN_REDIRECT_ACTIVE_USER + \"?step=pass\",\n // \"\"\n // );\n // }\n // }\n\n static async checkUserType(data, respData) {\n // setCookie(\"ABUserCookie\", JSON.stringify(respData), 500);\n\n let objUsertypeResp = data;\n let arrAccounts = [];\n let accountList = [];\n for (var account in objUsertypeResp) {\n arrAccounts.push(account);\n }\n if (arrAccounts.length > 0) {\n for (let i = 0; i < arrAccounts.length; i++) {\n let clientCode = arrAccounts[i];\n let account = objUsertypeResp[clientCode];\n let passwordset = account.password;\n let pinset = account.mpin;\n let rekycNeeded = ActionHandler.checkAccountStatus(\"dormant\", account);\n let arrUserName = account.first_name;\n let initials = arrUserName?.[0]?.charAt(0);\n if (arrUserName.length > 0) {\n initials = initials + arrUserName[arrUserName.length - 1].charAt(0);\n }\n const obj = {\n profilePic: \"\",\n initials: initials,\n name: account.first_name,\n clientCode: clientCode,\n passwordset: passwordset,\n pinset: pinset,\n isActive: ActionHandler.checkAccountStatus(\"active\", account),\n tokens: account,\n rekycNeeded,\n nonTradeAccessToken: account.non_trading_access_token,\n };\n accountList.push(obj);\n }\n\n if (accountList.length == 1) {\n const { rekycNeeded, isActive, nonTradeAccessToken } = accountList[0];\n if (rekycNeeded && !isActive) {\n ActionHandler.fnRedirectToReKycUrl(nonTradeAccessToken);\n } else if (!rekycNeeded && !isActive) {\n // showErrorMessage(\"In Active Account\", \"inactiveUser\");\n window.location.replace(\n import.meta.env.VITE_LOGIN_REDIRECT_ACTIVE_USER\n );\n } else {\n if (!accountList[0].passwordset) {\n store.dispatch(\"ignoreBrowserPrompt\", true);\n window.location.replace(\n import.meta.env.VITE_LOGIN_REDIRECT_ACTIVE_USER + \"?step=pass\",\n \"\"\n );\n } else if (!accountList[0].pinset) {\n store.dispatch(\"ignoreBrowserPrompt\", true);\n window.location.replace(\n import.meta.env.VITE_LOGIN_REDIRECT_ACTIVE_USER + \"?step=pin\",\n \"\"\n );\n } else {\n store.dispatch(\"ignoreBrowserPrompt\", true);\n window.location.replace(\n import.meta.env.VITE_LOGIN_REDIRECT_ACTIVE_USER,\n \"\"\n );\n }\n }\n } else {\n store.dispatch(\"ignoreBrowserPrompt\", true);\n window.location.replace(\n import.meta.env.VITE_LOGIN_REDIRECT_ACTIVE_USER,\n \"\"\n );\n }\n } else {\n store.dispatch(\"ignoreBrowserPrompt\", true);\n window.location.replace(\n import.meta.env.VITE_LOGIN_REDIRECT_ACTIVE_USER + \"?step=pass\",\n \"\"\n );\n }\n }\n\n static checkAccountStatus(accountTypeToCheck, data) {\n const accountStatusDemat = data?.products?.demat?.status;\n const accountStatusLoans = data?.products?.nbu_lending?.status;\n switch (accountTypeToCheck) {\n case \"dormant\":\n return [accountStatusDemat, accountStatusLoans].includes(\"dormant\");\n case \"active\":\n return [accountStatusDemat, accountStatusLoans].includes(\"active\");\n default:\n return false;\n }\n }\n\n static async proceedForRekyc(clientCode) {\n let rekycParams = {\n clientCode,\n refNo: new Date()\n .toISOString()\n .replace(/[^0-9]/g, \"\")\n .slice(0, -3),\n };\n const hash = CryptoJS.SHA256(rekycParams).toString(); // creating hash\n rekycParams[\"hash\"] = hash;\n const encryptedHexString = await ActionHandler.fnGetEncryptedHexString(\n rekycParams\n );\n ActionHandler.fnRedirectToReKycUrl(encryptedHexString);\n }\n\n static fnGetEncryptedHexString(rekycParams) {\n // encrypting obj\n const encryptedString = CryptoJS.AES.encrypt(\n CryptoJS.enc.Utf8.parse(JSON.stringify(rekycParams)),\n CryptoJS.enc.Utf8.parse(import.meta.env.VITE_APP_REKYC_ENCRYPTION_KEY),\n {\n iv: CryptoJS.enc.Utf8.parse(\n import.meta.env.VITE_APP_REKYC_ENCRYPTION_IV\n ), // parse the IV\n padding: CryptoJS.pad.Pkcs7,\n mode: CryptoJS.mode.CBC,\n }\n );\n return encryptedString.toString(CryptoJS.format.Hex);\n }\n\n static fnRedirectToReKycUrl(nonTradeAccessToken) {\n store.dispatch(\"ignoreBrowserPrompt\", true);\n window.location.replace(\n `${import.meta.env.VITE_APP_REKYC_URL}?data=${\n nonTradeAccessToken + \"&source=spark-web\"\n }`,\n \"\"\n );\n }\n\n static async handleAPI(\n action,\n body,\n config,\n widgetId,\n screenId,\n resetFormDataOnFailure\n ) {\n const { closePopup } = usePopupManager();\n const apiEndpoint = useUrlCreator(action.api);\n const startTime = Date.now();\n const networkType = navigator?.connection?.effectiveType || \"\";\n const apiValidationParameters = {\n event_name: action?.apiValidationEvent?.event_name,\n event_id: action?.apiValidationEvent?.event_id,\n event_type: \"api\",\n event_sub_type: \"apirequest-response\",\n };\n\n const forcePush = action?.forcePush || false;\n switch (action.method) {\n case \"GET\":\n if (widgetId) {\n store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.progress });\n }\n http\n .get(apiEndpoint, { ...config })\n .then((res) => {\n apiValidationParameters[\n \"event_metadata\"\n ] = `{ url: ${apiEndpoint}, status: ${\n res?.status == 200 ? \"true\" : \"false\"\n }, message: ${\n res?.status == 200\n ? `API Success: ${JSON.stringify(res?.data)}`\n : `API Failure: ${JSON.stringify(res?.data)}`\n }, response-time: ${\n (Date.now() - startTime) / 1000\n }s, network-type: ${networkType}}`;\n clickStream.addEventList(apiValidationParameters, forcePush);\n\n if (action?.ct) {\n const ct_msg = {\n url: apiEndpoint,\n status: res?.status == 200 ? \"true\" : \"false\",\n // api: res?.data,\n networkType: networkType,\n };\n CleaverTap.addEvents(action?.ct?.event_name, {\n ...action?.ct?.bodyParameters,\n ...ct_msg,\n });\n }\n\n if (action?.ctUser) {\n CleaverTap.userprofile(action?.ctUser);\n }\n if (widgetId) {\n store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.success });\n }\n if (screenId && store.state.popups[screenId]) {\n closePopup(screenId);\n }\n ActionHandler.handleAPIData(res?.data?.data);\n ActionHandler.handleAPIAction(res?.data?.action);\n })\n .catch((e) => {\n apiValidationParameters[\n \"event_metadata\"\n ] = `{ url: ${apiEndpoint}, status: ${false}, message: ${getHttpErrorForAnalytics(\n e\n )}, response-time: ${\n (Date.now() - startTime) / 1000\n }s, network-type: ${networkType}}`;\n clickStream.addEventList(apiValidationParameters, forcePush);\n if (action?.ct) {\n const ct_msg = {\n url: apiEndpoint,\n status: e?.response?.status,\n // api: res?.data,\n networkType: networkType,\n };\n CleaverTap.addEvents(action?.ct?.event_name, {\n ...action?.ct?.bodyParameters,\n ...ct_msg,\n });\n }\n console.error(e);\n if (screenId && store.state.popups[screenId]) {\n closePopup(screenId);\n }\n if (widgetId) {\n store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.error });\n }\n });\n break;\n case \"POST\":\n if (widgetId) {\n store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.progress });\n }\n return http\n .post(apiEndpoint, { data: body }, { ...config })\n .then(async (res) => {\n if (widgetId) {\n store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.success });\n }\n let storeValue;\n if (action?.storeKey) {\n storeValue = store.state.formData[action.storeKey];\n }\n apiValidationParameters[\"event_metadata\"] =\n await `{ url: ${apiEndpoint}, status: ${\n res?.status == 200 ? \"true\" : \"false\"\n }, message: ${\n res?.status == 200\n ? `API sucess: ${JSON.stringify(res?.data)}`\n : `API failure: ${JSON.stringify(res?.data)}`\n }, response-time: ${\n (Date.now() - startTime) / 1000\n }s, network-type: ${networkType}, ${\n action?.metaDataKeyName && storeValue\n ? action.metaDataKeyName + \" : \" + storeValue\n : \"\"\n }}`;\n await clickStream.addEventList(apiValidationParameters, forcePush);\n if (action?.ct) {\n const ct_msg = {\n url: apiEndpoint,\n status: res?.status,\n // api: res?.data,\n networkType: networkType,\n };\n CleaverTap.addEvents(action?.ct?.event_name, {\n ...action?.ct?.bodyParameters,\n ...ct_msg,\n });\n }\n if (action?.ctUser) {\n CleaverTap.userprofile(action?.ctUser);\n }\n store.dispatch(\"setAPIData\", {\n key: widgetId,\n value: res?.data,\n });\n ActionHandler.handleAPIData(res?.data?.data);\n if (res?.data?.action) {\n store.dispatch(\"setAction\", res?.data?.action);\n }\n if (action.showMessageOnApiResp) {\n // Added timeout to avoid conlicts in navigation animation and snackBar animation\n setTimeout(() => {\n useMessageonSnackBar(action.value, action.messageData);\n }, 10);\n }\n ActionHandler.handleAPIAction(res?.data?.action);\n let apiSuccessEv = {\n event_name: action?.apiSuccessEvent?.event_name,\n event_category: action?.apiSuccessEvent?.event_category,\n event_action: action?.apiSuccessEvent?.event_action,\n event_metadata: `{ url: ${apiEndpoint}, status: ${\n res?.status == 200 ? \"true\" : \"false\"\n }, message: ${\n res?.status == 200 ? \"API Success\" : res?.data?.message\n }, response-time: ${\n (Date.now() - startTime) / 1000\n }s, network-type: ${networkType}}`,\n };\n if (\n (res?.status == 200 || res?.status == \"success\") &&\n action.apiSuccess\n ) {\n Analytics.analyticsEventLog(apiSuccessEv);\n }\n\n if (action.isPopup && action.popupId) {\n if (typeof action.isPopup == \"boolean\") {\n ActionHandler.closePopupFn(action.isPopup, action.popupId);\n } else {\n let rule = useRuleParser(action.isPopup) || false;\n ActionHandler.closePopupFn(rule, action.popupId);\n }\n } else {\n if (screenId && store.state.popups[screenId]) {\n closePopup(screenId);\n }\n }\n if (action?.resetFields && !isObjectEmpty(action?.resetFields)) {\n ActionHandler.clearFormData(action.resetFields);\n }\n })\n .catch(async (error) => {\n apiValidationParameters[\"event_metadata\"] =\n await `{ url: ${apiEndpoint}, status: ${false}, message: ${getHttpErrorForAnalytics(\n error\n )}, response-time: ${\n (Date.now() - startTime) / 1000\n }s, network-type: ${networkType}}`;\n await clickStream.addEventList(apiValidationParameters, forcePush);\n if (\n (!action.isPopup || !action.popupId) &&\n screenId &&\n store.state.popups[screenId]\n ) {\n closePopup(screenId);\n }\n if (resetFormDataOnFailure) {\n ActionHandler.clearFormData(action.bodyParameters);\n }\n if (widgetId) {\n store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.error });\n }\n if (action?.ct) {\n const ct_msg = {\n url: apiEndpoint,\n status: error?.response?.status,\n // api: res?.data,\n networkType: networkType,\n };\n CleaverTap.addEvents(action?.ct?.event_name, {\n ...action?.ct?.bodyParameters,\n ...ct_msg,\n });\n }\n });\n case \"PUT\":\n if (widgetId) {\n store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.progress });\n }\n http\n .put(apiEndpoint, { ...body }, { ...config })\n .then((res) => {\n if (screenId && store.state.popups[screenId]) {\n closePopup(screenId);\n }\n if (widgetId) {\n store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.success });\n }\n ActionHandler.handleAPIData(res?.data?.data);\n ActionHandler.handleAPIAction(res?.data?.action);\n if (action?.ctUser) {\n CleaverTap.userprofile(action?.ctUser);\n }\n })\n .catch(() => {\n if (screenId && store.state.popups[screenId]) {\n closePopup(screenId);\n }\n if (widgetId) {\n store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.error });\n }\n });\n break;\n case \"DELETE\":\n if (widgetId) {\n store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.progress });\n }\n http\n .delete(apiEndpoint, { ...config })\n .then((res) => {\n ActionHandler.handleAPIData(res?.data?.data);\n ActionHandler.handleAPIAction(res?.data?.action);\n if (widgetId) {\n store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.success });\n }\n if (screenId && store.state.popups[screenId]) {\n closePopup(screenId);\n }\n })\n .catch(() => {\n if (widgetId) {\n store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.error });\n }\n if (screenId && store.state.popups[screenId]) {\n closePopup(screenId);\n }\n });\n break;\n case \"UPLOAD\":\n if (widgetId) {\n store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.progress });\n }\n http\n .upload(\n apiEndpoint,\n { ...body },\n {\n onUploadProgress(progressEvent) {\n const percentCompleted = Math.round(\n (progressEvent.loaded * 100) / progressEvent.total\n );\n if (widgetId) {\n store.dispatch(\"setProgress\", {\n [widgetId]: percentCompleted,\n });\n }\n },\n ...config,\n }\n )\n .then(async (res) => {\n apiValidationParameters[\n \"event_metadata\"\n ] = `{ url: ${apiEndpoint}, status: ${\n res?.status == 200 ? \"true\" : \"false\"\n }, message: ${\n res?.status == 200\n ? `API Success: ${JSON.stringify(res?.data)}`\n : `API failure: ${JSON.stringify(res?.data)}`\n }, response-time: ${\n (Date.now() - startTime) / 1000\n }s, network-type: ${networkType}}`;\n clickStream.addEventList(apiValidationParameters, forcePush);\n\n if (action?.ct) {\n const ct_msg = {\n url: apiEndpoint,\n status: res?.status,\n // api: JSON.stringify(res?.data),\n networkType: networkType,\n };\n CleaverTap.addEvents(action?.ct?.event_name, {\n ...action?.ct?.bodyParameters,\n ...ct_msg,\n });\n }\n if (action?.ctUser) {\n CleaverTap.userprofile(action?.ctUser);\n }\n if (screenId && store.state.popups[screenId]) {\n await closePopup(screenId);\n }\n if (widgetId) {\n store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.success });\n }\n ActionHandler.handleAPIData(res?.data?.data);\n ActionHandler.handleAPIAction(res?.data?.action);\n if (res?.status == 200 || res?.status == \"success\") {\n let apiSuccessEv;\n apiSuccessEv = {\n event_name: action.apiSuccessEvent?.event_name,\n event_category: action.apiSuccessEvent?.event_category,\n event_action: action.apiSuccessEvent?.event_action,\n event_metadata: `{ url: ${apiEndpoint}, status: ${\n res?.status == 200 ? \"true\" : \"false\"\n }, message: ${\n res?.status == 200 ? \"API Success\" : res?.data?.message\n }, response-time: ${\n (Date.now() - startTime) / 1000\n }s, network-type: ${networkType}}`,\n };\n Analytics.analyticsEventLog(apiSuccessEv);\n }\n })\n .catch((error) => {\n apiValidationParameters[\n \"event_metadata\"\n ] = `{ url: ${apiEndpoint}, status: ${false}, message: ${getHttpErrorForAnalytics(\n error\n )}, response-time: ${\n (Date.now() - startTime) / 1000\n }s, network-type: ${networkType}}`;\n clickStream.addEventList(apiValidationParameters, forcePush);\n if (action?.ct) {\n const ct_msg = {\n url: apiEndpoint,\n status: error?.response?.status,\n // api: JSON.stringify(res?.data),\n networkType: networkType,\n };\n CleaverTap.addEvents(action?.ct?.event_name, {\n ...action?.ct?.bodyParameters,\n ...ct_msg,\n });\n }\n if (screenId && store.state.popups[screenId]) {\n closePopup(screenId);\n }\n if (widgetId) {\n store.dispatch(\"setLoading\", { [widgetId]: loadingEnum.error });\n }\n if (resetFormDataOnFailure) {\n ActionHandler.clearFormData(action.bodyParameters);\n }\n });\n\n break;\n default:\n break;\n }\n }\n\n /* handling api data*/\n static async handleAPIData(data) {\n if (!data) return;\n for (const key in data) {\n if (!key) return;\n store.dispatch(\"setFormData\", {\n key: key,\n value: data[key],\n });\n }\n }\n\n static async redirectToExternaPageNwTab(bodyParam) {\n window.open(bodyParam.url, \"_blank\");\n }\n\n static redirectToUrl(url) {\n store.dispatch(\"ignoreBrowserPrompt\", true);\n window.location.replace(url, \"\");\n // window.location.href = url;\n }\n\n static setStateFromCookieValue(action) {\n const c = getCookieValue(action?.params?.cookieeId);\n if (c) {\n store.dispatch(\"setFormData\", {\n key: action?.params?.stateId,\n value: c,\n });\n }\n }\n static setBankCode(action) {\n if (\n !store.state.formData[action?.params?.code] &&\n store.state.formData[\"ifsc\"]\n ) {\n const ifsc = store.state.formData[\"ifsc\"];\n const code = ifsc.substring(0, 4);\n store.dispatch(\"setFormData\", {\n key: action?.params?.code,\n value: code.toLowerCase(),\n });\n }\n }\n\n static setCookieValue(action) {\n let s = store.state.formData[action?.params?.stateId];\n if (s) {\n setCookie(action?.params?.cookieeId, s, 30, true);\n }\n }\n static copyStateValue(action) {\n let s = store.state.formData[action?.params?.stateId];\n if (s) {\n store.dispatch(\"setFormData\", {\n key: action?.params?.newId,\n value: s,\n });\n }\n }\n\n /* handling api actions*/\n static async handleAPIAction(action) {\n const { openPopup } = usePopupManager();\n const { push } = LocalNavigator;\n if (!action) return;\n switch (action?.type) {\n case API_ACTION_TYPES.openPopup:\n case API_ACTION_TYPES.openBottomSheet:\n if (action?.value?.name == \"initiateDigio\") {\n ActionHandler.initiateDigio();\n } else {\n openPopup(action?.value?.name);\n }\n break;\n case API_ACTION_TYPES.navigate:\n push(action?.value?.name);\n break;\n case API_ACTION_TYPES.openWebView:\n break;\n case ACTION_TYPES.redirect:\n ActionHandler.redirectToUrl(action?.value?.name);\n break;\n case ACTION_TYPES.showToast:\n if (\n !store.state.formData.isDoBMatch ||\n !store.state.formData.isNameMatch\n ) {\n ActionHandler.showToast(action.value.name);\n }\n\n break;\n default:\n // console.warn(\"THIS ROUTE IS NOT HANDLED\");\n }\n }\n static logApiEvent(csEvent) {\n this.apiValidationAnalytics = {\n event_name: csEvent?.event_name,\n event_id: csEvent?.event_id,\n };\n let result = this.apiValidationAnalytics;\n return result;\n }\n\n static addArrayElement(action) {\n let arrayData = store?.state?.formData[action.arrayKey]\n ? store?.state?.formData[action.arrayKey]\n : [];\n const total = arrayData.reduce(function (sum, data) {\n return sum + Number(data[action.sharePercentKey]);\n }, 0);\n store.dispatch(\"setFormData\", {\n key: action.storeKey,\n value: total,\n });\n sessionStorage.setItem(action.storeKey, total);\n }\n\n static addDataToForm(parsedData, key, uniqueKey, action) {\n const { closePopup } = usePopupManager();\n const { push } = LocalNavigator;\n let arrayData;\n switch (action?.dataType) {\n case \"array\":\n arrayData = store?.state?.formData[key]\n ? store?.state?.formData[key]\n : [];\n if (!store?.state[action?.editIndexKey].toString()) {\n if (arrayData.length < action.maxArrayLength) {\n arrayData.push(parsedData);\n } else {\n showErrorMessage(\"Maximum limit reached\", \"maxArrayLimit\");\n }\n } else {\n arrayData[store?.state[action.editIndexKey]] = parsedData;\n }\n store.dispatch(\"setFormData\", {\n key: key,\n value: arrayData,\n });\n sessionStorage.setItem(key, JSON.stringify(arrayData));\n ActionHandler.clearFormData(action.bodyParameters);\n ActionHandler.addArrayElement(action);\n push(action.routeTo);\n closePopup(action.screenId);\n break;\n default:\n store.dispatch(\"setFormData\", {\n key: key,\n value: parsedData,\n });\n }\n }\n\n static clearFormData(data) {\n for (const key in data) {\n const value = data[key];\n store.dispatch(\"clearFormData\", value);\n }\n }\n static setFormData(data) {\n for (const key in data) {\n const value = data[key];\n store.dispatch(\"setFormData\", { key, value });\n }\n }\n static clearAPIResponses(data) {\n for (const key in data) {\n const value = data[key];\n store.dispatch(\"clearAPIResponses\", value);\n }\n }\n\n static closePopupFn(isPopup, popupId) {\n const { closePopup } = usePopupManager();\n if (isPopup && popupId) {\n closePopup(popupId);\n }\n }\n\n static getCapchaCode() {\n return new Promise((resolve) => {\n window.grecaptcha.enterprise.ready(function () {\n window.grecaptcha.enterprise\n .execute(import.meta.env.VITE_APP_CAPTCHA_SITE_KEY, {\n action: \"submit\",\n })\n .then(function (token) {\n resolve(token);\n })\n .catch(function (err) {\n console.error(\"Error getting captcha\", err);\n resolve(\"\");\n });\n });\n });\n }\n\n static clearEditIndex(data) {\n store.dispatch(\"setClearEditIndex\", data.value);\n }\n\n static logApiSuccessEvent(dlEvent) {\n this.apiSuccessParams = {\n event_name: dlEvent?.event_name,\n event_category: dlEvent?.event_category,\n event_action: dlEvent?.event_action,\n };\n let result = this.apiSuccessParams;\n return result;\n }\n\n static setSessionData(value) {\n for (const key in value) {\n const v = value[key];\n const k = store.state.formData[v] || \"\";\n sessionStorage.setItem(key, JSON.stringify(k));\n }\n }\n\n static sendDataInWhatsApp(action) {\n // let text = \"Check out this link: [insert your link here]\";\n let encodedText = encodeURIComponent(action.value);\n let whatsappUrl = \"https://api.whatsapp.com/send?text=\" + encodedText;\n window.open(whatsappUrl);\n }\n\n static setSessionDataFromOBJ(value) {\n for (const key in value) {\n const v = value[key];\n sessionStorage.setItem(key, JSON.stringify(v));\n }\n }\n\n static clearSessionData(value) {\n for (const key in value) {\n const k = value[key];\n sessionStorage.removeItem(k);\n }\n }\n\n static fnGenerateUniqueID() {\n var uuidValue = \"\",\n k,\n randomValue;\n for (k = 0; k < 32; k++) {\n randomValue = (Math.random() * 16) | 0;\n\n if (k == 8 || k == 12 || k == 16 || k == 20) {\n uuidValue += \"-\";\n }\n uuidValue += (\n k == 12 ? 4 : k == 16 ? (randomValue & 3) | 8 : randomValue\n ).toString(16);\n }\n\n return uuidValue;\n }\n\n static async initiateDigio() {\n try {\n const initiateDigioDetails = [\n {\n type: \"navigateWithAPI\",\n method: \"POST\",\n api: \"/v1/kyc/pan/digio/initiate\",\n requestOn: \"onChangeVal\",\n bodyParameters: {\n pan: \"pan\",\n },\n },\n {\n type: \"ignorePrompt\",\n value: true,\n },\n ];\n\n await ActionHandler.handleAction(initiateDigioDetails, \"\", {});\n } catch (e) {\n console.log(e);\n }\n }\n}\n\nexport default ActionHandler;\n","import ActionHandler from \"@/handlers/action\";\nimport CleaverTap from \"./Clevertap\";\n\nexport default function useLifecycleHooks() {\n function _onMounted() {\n if (!this.events) return;\n const { screenId, onLoad } = this.events;\n if (onLoad) {\n ActionHandler.handleAction(onLoad, screenId);\n }\n }\n\n function _onUnmounted() {\n if (!this.events) return;\n const { screenId, onUnLoad } = this.events;\n\n if (onUnLoad) {\n ActionHandler.handleAction(onUnLoad, screenId);\n CleaverTap.logout();\n }\n }\n\n function _onErrorCaptured() {\n if (!this.events) return;\n const { screenId, onError } = this.events;\n if (onError) {\n ActionHandler.handleAction(onError, screenId);\n }\n }\n\n return {\n _onMounted,\n _onUnmounted,\n _onErrorCaptured,\n };\n}\n","\nexport default (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n}\n","\n\n\n\n\n","\n\n","\n\n\n\n\n","import store from \"@/store/store\";\nimport { computed } from \"vue\";\n\nexport default function useFormValue(widgetId) {\n const value = computed({\n get() {\n return store.state.formData[widgetId];\n },\n set(value) {\n store.dispatch(\"setFormData\", {\n key: widgetId,\n value,\n });\n },\n });\n return { value };\n}\n","/* eslint-disable no-case-declarations */\nimport {\n characterSpace,\n phoneNumber,\n validAccountNumber,\n validIfsc,\n validPAN,\n validEmail,\n alphaNum,\n pincode,\n numberonly,\n validAadhaar,\n addressValidators,\n dateValidators,\n is18yearsOld,\n is99yearsOld,\n isMonthValid,\n isDayValid,\n isYearRequired,\n isYearValid,\n nameValidators,\n futureDateValidators,\n} from \"@/validation/validation\";\n\nimport store from \"@/store/store\";\nimport useRuleParser from \"./useRuleParser\";\n\nexport default function useCreateValidationRule(validations) {\n const rules = [];\n const formButtonId =\n validations &&\n validations.find((validation) => validation.type === \"formButtonId\");\n if (validations) {\n validations.forEach((element) => {\n rules.push((v) => {\n switch (element.type) {\n case \"required\":\n if (!v) {\n formButtonId && store.dispatch(\"setButtonToDisable\", !v);\n return element.message;\n }\n break;\n case \"requiredif\":\n // eslint-disable-next-line no-case-declarations\n const requiredIf = useRuleParser(element?.requiredif);\n if (requiredIf && !v) {\n formButtonId && store.dispatch(\"setButtonToDisable\", !v);\n return element.message;\n }\n break;\n case \"maxLength\":\n if (v && v.length > element.value) {\n formButtonId &&\n store.dispatch(\n \"setButtonToDisable\",\n v && v.length > element.value\n );\n return element.message;\n }\n break;\n case \"minLength\":\n if (v && v.length < element.value) {\n formButtonId &&\n store.dispatch(\n \"setButtonToDisable\",\n v && v.length < element.value\n );\n return element.message;\n }\n break;\n case \"pattern\":\n if (v && !checkPattern(v, element)) {\n formButtonId &&\n store.dispatch(\n \"setButtonToDisable\",\n v && !checkPattern(v, element)\n );\n return element.message;\n }\n break;\n case \"isMinor\":\n // eslint-disable-next-line no-case-declarations\n const relations = element?.relations || [];\n const relation = store.state.formData[element.checkRelationKey];\n const inCaseCanNotBeMinor = [...relations].includes(relation);\n if (v && !checkPattern(v, element) && inCaseCanNotBeMinor) {\n formButtonId &&\n store.dispatch(\n \"setButtonToDisable\",\n v && !checkPattern(v, element)\n );\n return element.message;\n }\n break;\n case \"match\":\n if (v && !checkMatch(v, element)) {\n formButtonId &&\n store.dispatch(\n \"setButtonToDisable\",\n v && !checkMatch(v, element)\n );\n return element.message;\n }\n break;\n case \"mismatch\":\n const isReq = element?.requiredif\n ? useRuleParser(element?.requiredif)\n : true;\n if (v && isReq && checkMatch(v, element)) {\n formButtonId &&\n store.dispatch(\n \"setButtonToDisable\",\n v && checkMatch(v, element)\n );\n return element.message;\n }\n break;\n case \"lessthanTotal\":\n if (v && !lessthanTotal(v, element)) {\n formButtonId &&\n store.dispatch(\n \"setButtonToDisable\",\n v && !lessthanTotal(v, element)\n );\n return element.message;\n }\n break;\n case \"authenticationError\":\n const error_code =\n store.state.loginAuthenticationAttemptMessage[element.error_code];\n const error_codes = [...element.error_codes].includes(error_code);\n const errorMessage =\n store.state.loginAuthenticationAttemptMessage[element.message];\n if (v && error_codes) {\n formButtonId &&\n store.dispatch(\"setButtonToDisable\", v && error_codes);\n return errorMessage;\n }\n break;\n case \"checkLessthan\":\n if (v && !checkLessthan(v, element)) {\n formButtonId &&\n store.dispatch(\n \"setButtonToDisable\",\n v && !checkLessthan(v, element)\n );\n return element.message;\n }\n break;\n case \"checkUniqueInArrayObj\":\n if (v && !checkUniqueInArrayObj(v, element)) {\n formButtonId &&\n store.dispatch(\n \"setButtonToDisable\",\n v && !checkUniqueInArrayObj(v, element)\n );\n return element.message;\n }\n break;\n default:\n return true;\n }\n });\n });\n }\n\n function lessthanTotal(v, element) {\n let arrayData = store?.state?.formData[element?.arrayKey]\n ? store?.state?.formData[element?.arrayKey]\n : [];\n let total = arrayData.reduce(function (sum, data, index) {\n if (index?.toString() == store?.state[element?.editIndex]?.toString()) {\n return sum;\n } else {\n return sum + parseInt(data[element.sharePercentKey]);\n }\n }, 0);\n total = total + parseInt(v);\n return total <= element.totalVal;\n }\n\n function checkUniqueInArrayObj(v, element) {\n let arrayData = store?.state?.formData[element?.arrayKey]\n ? store?.state?.formData[element?.arrayKey]\n : [];\n let searchedData = arrayData.filter((data) => {\n return data[element.searchKey].toString() == v.toString();\n });\n\n let editNominee = {};\n if (store?.state[element?.editIndex]?.toString()) {\n editNominee =\n store?.state?.formData[element?.arrayKey][\n store?.state[element?.editIndex]\n ];\n }\n\n if (\n store?.state[element?.editIndex]?.toString() &&\n v == editNominee[element.searchKey]\n ) {\n return searchedData.length == 1 ? true : false;\n } else {\n return searchedData.length == 0 ? true : false;\n }\n }\n\n function checkMatch(v, element) {\n return v === store?.state?.formData[`${element?.value}`];\n }\n\n function checkLessthan(v, element) {\n return parseInt(v) <= parseInt(element?.value);\n }\n\n function checkPattern(v, element) {\n switch (element.value) {\n case \"character_only\":\n return characterSpace(v);\n case \"ifsc\":\n return validIfsc(v);\n case \"pan\":\n return validPAN(v);\n case \"nomineePan\":\n return validPAN(v);\n case \"phone_number\":\n return phoneNumber(v);\n case \"bank_ac_number\":\n return validAccountNumber(v);\n case \"email\":\n return validEmail(v);\n case \"alphaNum\":\n return alphaNum(v);\n case \"pincode\":\n return pincode(v);\n case \"numberonly\":\n return numberonly(v);\n case \"aadhaar\":\n return validAadhaar(v);\n case \"address\":\n return addressValidators(v);\n case \"date\":\n return dateValidators(v);\n case \"futureDate\":\n return futureDateValidators(v);\n case \"is99year\":\n return is99yearsOld(v);\n case \"is18year\":\n return is18yearsOld(v);\n case \"isMonthValid\":\n return isMonthValid(v);\n case \"isDayValid\":\n return isDayValid(v);\n case \"isYearRequired\":\n return isYearRequired(v);\n case \"isYearValid\":\n return isYearValid(v);\n case \"name\":\n return nameValidators(v);\n default:\n return true;\n }\n }\n\n return { rules };\n}\n","\n \n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n","import { getCookieValue } from \"@/services/HttpClient\";\nimport CONFIGDATA from \"../../src/config/configData.json\";\n\nexport default function useBodyParser(bodyParametersValue) {\n let jsonObj = {};\n if (bodyParametersValue) {\n let bodyData = JSON.parse(JSON.stringify(bodyParametersValue));\n Object.keys(bodyData).forEach((key) => {\n let [type, keyParam] = bodyData[key].split(\":\");\n if (type === \"cookie\") {\n let cookieVal = getCookieValue(import.meta.env[keyParam]);\n bodyData[key] = bodyData[key].replace(bodyData[key], cookieVal);\n } else if (type === \"config\") {\n let configData = CONFIGDATA.CONFIGDATA;\n let configVal = configData[keyParam];\n bodyData[key] = bodyData[key].replace(bodyData[key], configVal);\n } else if (type === \"baseUrl\") {\n let baseUrl = import.meta.env.VITE_BASEURL;\n let configData = CONFIGDATA.CONFIGDATA;\n let configVal = configData[keyParam];\n let finalUrl = baseUrl + configVal;\n bodyData[key] = bodyData[key].replace(bodyData[key], finalUrl);\n } else {\n bodyData[key].replace(type);\n }\n jsonObj[key] = bodyData[key];\n });\n return jsonObj;\n } else if (!bodyParametersValue) {\n console.error(\"Body Parsing error, skipping default Body\");\n return \"Body Parsing error, skipping default Body\";\n }\n}\n","\n\n\n\n","\n\n\n\n\n","import store from \"@/store/store\";\nimport usePopupManager from \"./usePopupManager\";\nimport useRuleParser from \"./useRuleParser\";\n\nexport default function useButtonDisabledHooks() {\n const { getActivePopups } = usePopupManager();\n function handleButtonDisabledState(layoutData) {\n let validationField = [];\n for (let i = 0; i <= layoutData?.length; i++) {\n for (let j = 0; j < layoutData[i]?.length; j++) {\n if (layoutData[i][j].validations) {\n layoutData[i][j].validations.findIndex((vl) => {\n if (vl.type === \"required\") {\n return validationField.push(layoutData[i][j].id);\n } else if (vl.type === \"requiredif\") {\n const isPushNeeded = useRuleParser(vl.requiredif);\n return isPushNeeded && validationField.push(layoutData[i][j].id);\n }\n });\n }\n if (layoutData[i][j].isTypeSubmit === true) {\n if (getActivePopups()) {\n store.dispatch(\"manageActiveSubmitButton\", {\n state: \"isModalSubmitButton\",\n value: layoutData[i][j].id,\n });\n } else {\n store.dispatch(\"manageActiveSubmitButton\", {\n state: \"isPageSubmitButton\",\n value: layoutData[i][j].id,\n });\n }\n }\n }\n }\n const formDataValueChecker = validationField.every(\n (v) => store.state.formData[v]\n );\n store.dispatch(\"setButtonToDisable\", !formDataValueChecker);\n }\n\n return {\n handleButtonDisabledState,\n };\n}\n","\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n","\n\n\n\n\n","\n\n\n","import store from \"@/store/store\";\n\nexport class DatePicker {\n constructor(input, widgetId) {\n select(\".m-datepicker-overlay\").style.display = \"flex\";\n const d = new Date();\n this.input = input;\n this.widgetId = widgetId;\n this.currentYear = d.getFullYear();\n this.currentMonth = d.getMonth();\n this.currentWeekDay = d.getDay();\n this.currentDate = d.getDate();\n this.monthX = this.currentMonth;\n this.yearX = this.currentYear;\n this.dayX = {\n date: null,\n month: null,\n year: null,\n };\n this.__renderDatePicker();\n }\n __renderDatePicker() {\n select(\".m-datepicker-body\").innerHTML = \"\";\n select(\".m-datepicker-body\").innerHTML += `\n
\n
\n \n \n
\n
\n

\n

\n
\n
\n
\n
\n
\n
\n `;\n this.__renderWeeks();\n this.__renderDays(this.currentMonth);\n this.__handleMonthArrows();\n this.__handleDateOptionStatus();\n this.__handleMainDateStatus(this.dayX.date, this.monthX);\n this.__handleDatePicker();\n this.__handleDateOptionInput();\n }\n __handleDatePicker() {\n const datepicker_overlay = select(\".m-datepicker-overlay\");\n datepicker_overlay.onclick = (e) => {\n if (\n e.target.classList.contains(\"m-datepicker-overlay\") ||\n e.target.classList.contains(\"m-datepicker-cancel\")\n ) {\n datepicker_overlay.style.display = \"none\";\n } else if (e.target.classList.contains(\"m-datepicker-ok\")) {\n const day =\n this.dayX.date.length > 0 && this.dayX.date.length < 2\n ? \"0\" + this.dayX.date\n : this.dayX.date;\n let m = parseInt(this.monthX) + 1;\n const month = m < 10 ? \"0\" + m : m;\n const newDate = `${day}/${month}/${this.yearX}`;\n store.dispatch(\"setFormData\", {\n key: this.widgetId,\n value: newDate,\n });\n this.input.value = newDate;\n\n datepicker_overlay.style.display = `none`;\n }\n };\n select(\".m-datepicker-ok\").onclick = () => {};\n }\n __renderWeeks() {\n weekdays.forEach((w, i) => {\n select(\".m-datepicker-weeks\").innerHTML += `\n

${w.substring(0, 1)}

\n `;\n });\n }\n __renderDays() {\n const days = select(\".m-datepicker-days\");\n days.innerHTML = \"\";\n for (\n let i = 0;\n i < weekdays.findIndex((wd) => wd === getDay(this.yearX, this.monthX, 1));\n i++\n ) {\n days.innerHTML += `

`;\n }\n for (let i = 0; i < daysInMonth(this.monthX, this.yearX); i++) {\n days.innerHTML += `

${i + 1}

`;\n }\n this.__handleDays();\n }\n __handleDays() {\n const days = select(`.m-datepicker-days p[data-month]`, true);\n days.forEach((day) => {\n if (\n parseInt(day.textContent) === this.currentDate &&\n parseInt(day.dataset.month) === this.currentMonth\n )\n day.classList.add(\"currentDay\");\n else if (\n day.textContent === this.dayX.date &&\n day.dataset.month === this.dayX.month\n )\n day.classList.add(\"selectedDay\");\n });\n days.forEach((day) => {\n day.onclick = () => {\n days.forEach((day2) => day2.classList.remove(\"selectedDay\"));\n day.classList.add(\"selectedDay\");\n this.dayX.date = day.textContent;\n this.dayX.month = day.dataset.month;\n this.__handleMainDateStatus(this.dayX.date, this.monthX);\n };\n });\n }\n __handleMonthArrows() {\n select(\".m-datepicker-month-arrows p\", true).forEach((arrow) => {\n arrow.onclick = () => {\n if (arrow.classList.contains(\"prev\")) {\n this.monthX === 0 ? (this.monthX = 11) : --this.monthX;\n this.__renderDays(this.monthX);\n this.__handleDateOptionStatus();\n } else {\n this.monthX === 11 ? (this.monthX = 0) : ++this.monthX;\n this.__renderDays(this.monthX);\n this.__handleDateOptionStatus();\n }\n };\n });\n }\n __handleDateOptionStatus() {\n select(\".m-datepicker-month-status\").innerHTML = months[this.monthX];\n select(\".m-datepicker-year-status\").innerHTML = this.yearX;\n }\n __renderYears() {\n const mainContent = select(\".m-datepicker-mainContent\");\n mainContent.innerHTML = \"\";\n mainContent.innerHTML += `
`;\n for (let i = this.currentYear; i >= this.currentYear - 99; i--) {\n select(\".m-datepicker-years\").innerHTML += `

${i}

`;\n }\n }\n __handleYears() {\n select(\".m-datepicker-years p\", true).forEach((y) => {\n parseInt(y.textContent) === parseInt(this.yearX)\n ? y.classList.add(\"selectedYear\")\n : y.classList.remove(\"selectedYear\");\n y.onclick = () => {\n this.yearX = y.textContent;\n this.__renderDatePicker();\n };\n });\n select(\".m-datepicker-month-arrows\").style.display = \"none\";\n }\n __handleDateOptionInput() {\n select(\"#select-date\").onchange = (e) => {\n if (e.target.checked) {\n this.__renderYears();\n this.__handleYears();\n } else {\n this.__renderDatePicker();\n }\n };\n }\n __handleMainDateStatus(d, m) {\n select(\".m-datepicker-status\").innerHTML = \"\";\n select(\".m-datepicker-status\").innerHTML += `\n ${getDay(\n this.yearX,\n this.monthX,\n this.dayX.date ? this.dayX.date : 1\n ).substring(0, 3)},\n ${months[m]} ${d ? d : this.currentDate}\n `;\n }\n}\n\nexport const select = (selector, Boolean = false) =>\n Boolean\n ? document.querySelectorAll(selector)\n : document.querySelector(selector);\nconst weekdays = [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Sunday\",\n];\nconst months = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\nfunction daysInMonth(month, year) {\n let m = parseInt(month) + 1;\n let y = parseInt(year);\n\n return new Date(y, m, 0).getDate();\n}\nfunction getDay(year, month, day) {\n const d = new Date(year, month, day);\n return weekdays[d.getDay()];\n}\n\n// function onKeyUp(e) {\n// let input = document.querySelectorAll(\".\" + e.target.className)[0];\n// input.addEventListener(\"keypress\", function (e) {\n// if (e.keyCode < 47 || e.keyCode > 57) {\n// e.preventDefault();\n// }\n// var len = input.value.length;\n// if (len !== 1 || len !== 3) {\n// if (e.keyCode == 47) {\n// e.preventDefault();\n// }\n// }\n// value.value = input.value;\n\n// if (len === 2) {\n// input.value += \"/\";\n// }\n// if (len === 5) {\n// input.value += \"/\";\n// }\n// });\n// }\n","\n\n\n\n\n","import { ref, onMounted, onBeforeUnmount } from \"vue\";\n\nconst MOBILE_WIDTH_THRESHOLD = 500;\n\nconst useMobileTabletDetector = () => {\n const isMobile = ref();\n\n const checkMobile = () => {\n const screenWidth =\n window?.innerWidth ||\n document?.documentElement?.clientWidth ||\n document?.body?.clientWidth;\n\n isMobile.value = screenWidth < MOBILE_WIDTH_THRESHOLD;\n };\n\n onMounted(() => {\n checkMobile();\n window.addEventListener(\"resize\", checkMobile);\n });\n onBeforeUnmount(() => {\n window.removeEventListener(\"resize\", checkMobile);\n });\n\n return isMobile;\n};\n\nexport default useMobileTabletDetector;\n","\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","import { getImage } from \"@/utils/utils\";\n\nexport const BOTTOM_SHEET_CONFIG = {\n pending: {\n imgSrc: getImage(\"verify.svg\"),\n label: \"Verifying\",\n message: \"Transaction Successful\",\n subLabel: \"Waiting for UPI Payment Transaction\",\n },\n error: {\n imgSrc: getImage(\"failed.svg\"),\n label: \"Error\",\n message: \"Transaction Failed\",\n subLabel:\n \"If your money has been debited from your bank account, it will be deposited into your account 48hrs.\",\n },\n success: {\n imgSrc: getImage(\"success.svg\"),\n label: \"Bank account verified and linked\",\n subLabel:\n \"Rs.1 was debited from your account for completing this verification. It will be refunded within 48 hours.\",\n },\n};\n\nexport const PACKAGE_NAMES = {\n phonepe: \"com.phonepe.app\",\n paytm: \"net.one97.paytm\",\n gpay: \"com.google.android.apps.nbu.paisa.user\",\n};\n\nexport const VERIFY_WITH_UPI = \"VERIFY_WITH_UPI\";\nexport const VERIFY_WITH_BANK = \"VERIFY_WITH_BANK\";\nexport const RESET_STATE_TIMEOUT = 1500;\nexport const STATUS_API_CALL_INTERVAL_DURATION = 1000;\n\nexport const TRANSACTION_START_API = \"/v1/kyc/rpd\";\nexport const TRANSACTION_STATUS_ENDPOINT = \"v1/kyc/rpd?transaction_id=\";\nexport const SKIP_TO_BANK_MANUALLY_ENDPOINT = \"v1/kyc/skip/bank/rpd\";\nexport const CONFIRM_RPD_ENDPOINT = \"v1/kyc/bank/rpd\";\nexport const M_WEB = \"mweb\";\nexport const D_WEB = \"dweb\";\n\nexport const MOBILE_WIDTH_THRESHOLD = 500;\n\nexport const TRANSACTION_START_ACTION = {\n api: TRANSACTION_START_API,\n method: \"POST\",\n};\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","import { clickStream } from \"@/composables/clickStreamAnalytics\";\n// const clickStream = new ClickStreamAnalytics();\n\nexport const impressionRPDAnalytics = (metaData) => {\n let rpdImpression = {\n event_screen: \"s-bankaccountverification\",\n event_name: \"s-bankaccountverification\",\n event_id: \"73.0.0.66.0\",\n event_type: \"impression\",\n event_sub_type: \"screen\",\n event_metadata: {\n method: metaData.method,\n upi: metaData.appName || \"\",\n platform: metaData.platform,\n },\n };\n\n clickStream.addEventList(rpdImpression);\n};\n\nexport const chooseMethodRPD = (metaData) => {\n let rpdChooseMethod = {\n event_screen: \"s-bankaccountverification\",\n event_name: \"choosemethod\",\n event_id: \"73.0.0.66.1\",\n event_type: \"click\",\n event_sub_type: \"button\",\n event_metadata: { method: metaData.method, platform: metaData.platform },\n };\n clickStream.addEventList(rpdChooseMethod);\n};\n\nexport const chooseUPIApp = (metaData) => {\n let rpdUpiApp = {\n event_screen: \"s-bankaccountverification\",\n event_name: \"pickupiapp\",\n event_id: \"73.0.0.66.2\",\n event_type: \"click\",\n event_sub_type: \"button\",\n event_metadata: { upi: metaData.appName, platform: metaData.platform },\n };\n clickStream.addEventList(rpdUpiApp);\n};\n\nexport const proceedBtnAnalytics = (metaData) => {\n let rpdProceedBtnData = {\n event_screen: \"s-bankaccountverification\",\n event_name: \"proceed\",\n event_id: \"73.0.0.66.3\",\n event_type: \"click\",\n event_sub_type: \"button\",\n event_metadata: {\n method: metaData.method,\n upi: metaData.appName || \"\",\n platform: metaData.platform,\n },\n };\n clickStream.addEventList(rpdProceedBtnData);\n};\n\nexport const verifyingUpiPayment = (metaData) => {\n let rpdVerifying = {\n event_screen: \"bs-upiconfirmation\",\n event_name: \"verifyingupipayment\",\n event_id: \"73.0.0.66.4\",\n event_type: \"impression\",\n event_sub_type: \"screen\",\n event_metadata: { upi: metaData.appName, platform: metaData.platform },\n };\n clickStream.addEventList(rpdVerifying);\n};\n\nexport const upiErrorAnalytics = (metaData) => {\n let rpdError = {\n event_screen: \"bs-upierror\",\n event_name: \"upierror\",\n event_id: \"73.0.0.66.5\",\n event_type: \"impression\",\n event_sub_type: \"screen\",\n event_metadata: {\n message: metaData.message,\n upi: metaData.appName || \"\",\n platform: metaData.platform,\n },\n };\n clickStream.addEventList(rpdError);\n};\n\nexport const enterDetailsAnalytics = (metaData) => {\n let rpdUpiApp = {\n event_screen: \"bs-upierror\",\n event_name: \"enterdetailsmanually\",\n event_id: \"73.0.0.66.6\",\n event_type: \"click\",\n event_sub_type: \"button\",\n event_metadata: {\n message: metaData.message,\n upi: metaData.appName || \"\",\n platform: metaData.platform,\n },\n };\n clickStream.addEventList(rpdUpiApp);\n};\n\nexport const bankAccountVerifiedAnalytics = (metaData) => {\n let bankAccountVerified = {\n event_name: \"bankaccountverified\",\n event_id: \"73.0.0.66.7\",\n event_type: \"api\",\n event_sub_type: \"apirequest-response\",\n event_metadata: {\n status: metaData.status,\n upi: metaData.appName || \"\",\n platform: metaData.platform,\n },\n };\n clickStream.addEventList(bankAccountVerified);\n};\n\nexport const bankConfirmationAnalytics = (metaData) => {\n let bankConfirm = {\n event_screen: \"s-bankconfirmation\",\n event_name: \"bankconfirmation\",\n event_id: \"73.0.0.66.8\",\n event_type: \"impression\",\n event_sub_type: \"screen\",\n event_metadata: {\n bank_name: metaData.bankName,\n ifsc: metaData.ifsc,\n upi: metaData.appName || \"\",\n platform: metaData.platform,\n },\n };\n clickStream.addEventList(bankConfirm);\n};\nexport const continueAPIAnalytics = (metaData) => {\n let continuApiData = {\n event_name: \"bankconfirmation_continue\",\n event_id: \"73.0.0.66.9\",\n event_type: \"api\",\n event_sub_type: \"apirequest-response\",\n event_metadata: {\n status: metaData.status,\n upi: metaData.appName || \"\",\n platform: metaData.platform,\n },\n };\n clickStream.addEventList(continuApiData);\n};\n\nexport const continueClickAnalytics = (metaData) => {\n let continuData = {\n event_screen: \"s-bankconfirmation\",\n event_name: \"continue\",\n event_id: \"73.0.0.66.10\",\n event_type: \"click\",\n event_sub_type: \"button\",\n event_metadata: {\n upi: metaData.appName || \"\",\n platform: metaData.platform,\n },\n };\n clickStream.addEventList(continuData);\n};\n\nexport const editBankDetailsAnaltyics = (metaData) => {\n let editBank = {\n event_screen: \"s-bankconfirmation\",\n event_name: \"editbankdetails\",\n event_id: \"73.0.0.66.11\",\n event_type: \"click\",\n event_sub_type: \"button\",\n event_metadata: {\n upi: metaData.appName || \"\",\n platform: metaData.platform,\n },\n };\n clickStream.addEventList(editBank);\n};\n","\n\n\n\n","\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","import { http, showErrorMessage } from \"@/services/HttpClient\";\n\nimport ActionHandler from \"@/handlers/action\";\nimport { clickStream } from \"@/composables/clickStreamAnalytics\";\nimport store from \"@/store/store\";\n\n// let clickStream = new ClickStreamAnalytics();\n\nexport default function useCams() {\n async function onFinishCams(to) {\n const currentUrl = window.location;\n const urlQuery = currentUrl.toString().split(\"?\");\n if (currentUrl.toString().includes(\"cams\")) {\n const urlParams = new URLSearchParams(urlQuery[urlQuery.length - 1]);\n let status = urlParams.get(\"redirection\");\n let url = to.fullPath;\n let apiValidationAnalytics = {\n event_name: \"Cams-getxmlapi\",\n event_id: \"73.0.0.43.7\",\n event_type: \"api\",\n event_sub_type: \"apirequest-response\",\n // eslint-disable-next-line\n event_metadata: `{ url: ${url}, status: ${status} }`,\n };\n if (status === \"true\" || status === \"True\") {\n store.dispatch(\"setCamsLocader\", false);\n http\n .post(\"/v1/kyc/cams/status\", {})\n .then(async (res) => {\n ActionHandler.handleAPIData(res?.data?.data);\n ActionHandler.handleAPIAction(res?.data?.action);\n store.dispatch(\"setCamsLocader\", true);\n if (res?.data?.data?.status == \"failure\") {\n showErrorMessage(res?.data?.data?.message, \"camsError\");\n }\n await clickStream.addEventList(apiValidationAnalytics);\n })\n .catch((error) => {\n showErrorMessage(error.message, \"camsError\");\n store.dispatch(\"setCamsLocader\", true);\n })\n .finally(() => {\n store.dispatch(\"setCamsLocader\", true);\n });\n } else if (status === \"false\" || status === \"False\") {\n // await clickStream.addEventList(apiValidationAnalytics);\n store.dispatch(\"setCamsLocader\", true);\n }\n }\n }\n\n return {\n onFinishCams,\n };\n}\n","import ScreenView from \"@/components/ScreenView.vue\";\nimport store from \"@/store/store\";\nimport * as _ from \"underscore\";\n\nexport default function useCreateRoutes() {\n const {\n state: {\n layout: { screens },\n persistedNavStack,\n },\n } = store;\n const routes = [];\n let steps = [];\n let allSteps = [];\n let paths = {};\n const navStack = [];\n function sortSteps() {\n return _.uniq(steps, (x) => x && x.title);\n }\n function getObjectArray(key) {\n return paths[key] || [];\n }\n function splitAndTrimSteps(stepNumber, indexToReturn) {\n if (stepNumber?.includes(\"|\")) {\n return Number(stepNumber?.split(\"|\")[indexToReturn]);\n }\n return Number(stepNumber);\n }\n\n const isPersonalFirst = store.state.formData[\"prePersonal\"];\n for (const screenKey in screens) {\n const currentScreen = screens[screenKey];\n const path = `/${screenKey}`;\n let stepNum = currentScreen.step;\n let mobileStepNum = currentScreen.mobileStep;\n let screenFlow = currentScreen.flow;\n if (stepNum && screenFlow) {\n if (isPersonalFirst) {\n if (screenFlow.includes(\"|\")) {\n screenFlow = screenFlow.split(\"|\")[1].trim();\n }\n stepNum = splitAndTrimSteps(stepNum, 1);\n mobileStepNum = splitAndTrimSteps(mobileStepNum, 1);\n } else {\n if (screenFlow.includes(\"|\")) {\n screenFlow = screenFlow.split(\"|\")[0].trim();\n }\n stepNum = splitAndTrimSteps(stepNum, 0);\n mobileStepNum = splitAndTrimSteps(mobileStepNum, 0);\n }\n steps.push({\n title: screenFlow ?? \"\",\n path,\n step: stepNum,\n mobileStep: mobileStepNum,\n });\n paths[screenFlow] = [...getObjectArray(screenFlow), path];\n steps.map((item) => {\n if (item?.title == screenFlow) {\n item.path = [...getObjectArray(item?.title)];\n }\n });\n allSteps = steps;\n steps = sortSteps();\n }\n\n routes.push({\n path,\n component: ScreenView,\n props: {\n screen: currentScreen,\n id: screenKey,\n },\n });\n }\n\n persistedNavStack.forEach((stack) => {\n navStack.push({\n path: `/${stack}`,\n });\n });\n\n return { routes, steps, navStack, allSteps };\n}\n","/* eslint-disable no-unused-vars */\nimport { http, showErrorMessage } from \"@/services/HttpClient\";\nimport ActionHandler from \"@/handlers/action\";\nimport store from \"@/store/store\";\n\nexport default function useDigilocker() {\n async function onFinishDigilocker(route, to) {\n const currentUrl = window.location;\n const urlQuery = currentUrl.toString().split(\"?\");\n if (currentUrl.toString().includes(\"aadhaar\")) {\n const urlParams = new URLSearchParams(urlQuery[urlQuery.length - 1]);\n let hmac = urlParams.get(\"hmac\");\n let state = urlParams.get(\"state\");\n let code = urlParams.get(\"code\");\n let error_description = urlParams.get(\"error_description\");\n if (state && !error_description) {\n store.dispatch(\"setDigiLocader\", false);\n // http\n // .post(\"/v1/kyc/aadhaar/digilocker\", {\n // data: { hmac: hmac, code: code, state: state },\n // })\n // .then((res) => {\n // ActionHandler.handleAPIData(res?.data?.data);\n // ActionHandler.handleAPIAction(res?.data?.action);\n // store.dispatch(\"setDigiLocader\", true);\n // })\n // .catch((e) => {\n // store.dispatch(\"setDigiLocader\", true);\n // })\n // .finally(() => {\n // store.dispatch(\"setDigiLocader\", true);\n // });\n try {\n const { res } = await http.post(\"/v1/kyc/aadhaar/digilocker\", {\n data: { hmac: hmac, code: code, state: state },\n });\n ActionHandler.handleAPIData(res?.data?.data);\n ActionHandler.handleAPIAction(res?.data?.action);\n store.dispatch(\"setDigiLocader\", true);\n } catch (e) {\n console.log(\"digilocker error \", e);\n store.dispatch(\"setDigiLocader\", true);\n } finally {\n store.dispatch(\"setDigiLocader\", true);\n }\n }\n }\n }\n\n return {\n onFinishDigilocker,\n };\n}\n","import { clickStream } from \"@/composables/clickStreamAnalytics\";\n// let clickStream = new ClickStreamAnalytics();\n\nexport default function useDigio() {\n function createEvent(url, status, message) {\n return {\n event_name: \"digiosuccess\",\n event_id: \"73.0.0.9.12\",\n event_type: \"api\",\n event_sub_type: \"apirequest-response\",\n // eslint-disable-next-line\n event_metadata: `{ url: ${url}, status: ${status}, message: ${message} }`,\n };\n }\n async function onFinishDigio(to) {\n const currentUrl = window.location;\n const urlQuery = currentUrl.toString().split(\"?\");\n const urlParams = new URLSearchParams(urlQuery[urlQuery.length - 1]);\n let status =\n urlParams.get(\"a1SuccessCallBack\") || urlParams.get(\"a1FailureCallBack\");\n if (currentUrl.toString().includes(\"bank\") && status) {\n let message = urlParams.get(\"message\")\n ? urlParams.get(\"message\").split(\"#\")[0]\n : \"\";\n let url = to.fullPath;\n let apiValidationAnalytics = createEvent(url, status, message);\n await clickStream.addEventList(apiValidationAnalytics);\n }\n }\n\n return {\n onFinishDigio,\n };\n}\n","import { http, showErrorMessage } from \"@/services/HttpClient\";\n\nimport ActionHandler from \"@/handlers/action\";\nimport CleaverTap from \"./Clevertap\";\nimport { clickStream } from \"@/composables/clickStreamAnalytics\";\nimport store from \"@/store/store\";\n\n// let clickStream = new ClickStreamAnalytics();\n\nexport default function useEsign() {\n async function onFinishEsign(to) {\n const currentUrl = window.location;\n const urlQuery = currentUrl.toString().split(\"?\");\n if (\n currentUrl.toString().includes(\"personal\") ||\n currentUrl.toString().includes(\"eSignConfirmation\")\n ) {\n const urlParams = new URLSearchParams(urlQuery[urlQuery.length - 1]);\n let status =\n urlParams.get(\"status\") || urlParams.get(\"a1SuccessCallBack\");\n let message = urlParams.get(\"message\")\n ? urlParams.get(\"message\").split(\"#\")[0]\n : \"\";\n let esp = urlParams.get(\"esp\") || null;\n let type = urlParams.get(\"type\") || null;\n let url = to.fullPath;\n let apiValidationAnalytics = {\n event_name: \"Esign-getxmlapi\",\n event_id: \"73.0.0.42.4\",\n event_type: \"api\",\n event_sub_type: \"apirequest-response\",\n // eslint-disable-next-line\n\t\t\tevent_metadata: `{ url: ${url}, status: ${status}, message: ${message} }`,\n };\n\n if ([\"TRUE\", \"SUCCESS\"].includes(status?.toUpperCase())) {\n store.dispatch(\"setEsignLoader\", false);\n if (!esp || type !== \"SETU\") {\n await clickStream.addEventList(apiValidationAnalytics);\n } else {\n if (esp == \"nsdl\" && type === \"SETU\") {\n apiValidationAnalytics.event_name = \"Esign-getxmlapi_setu_nsdl\";\n apiValidationAnalytics.event_id = \"73.0.0.42.6\";\n await clickStream.addEventList(apiValidationAnalytics);\n } else if (esp == \"emudhra\" && type === \"SETU\") {\n apiValidationAnalytics.event_name = \"Esign-getxmlapi_setu_emudhra\";\n apiValidationAnalytics.event_id = \"73.0.0.42.7\";\n await clickStream.addEventList(apiValidationAnalytics);\n }\n }\n CleaverTap.addEvents(\"KYC_Esign_Status\", {\n event_screen: \"KYC Esign API\",\n event_category: \"KYC\",\n event_action: \"kyc_esign_api\",\n url,\n status,\n message,\n });\n http\n .post(\"/v1/kyc/esign/confirmation\", {})\n .then(async (res) => {\n ActionHandler.handleAPIData(res?.data?.data);\n ActionHandler.handleAPIAction(res?.data?.action);\n sessionStorage.removeItem(\"nominees\");\n sessionStorage.removeItem(\"mobile\");\n })\n .catch((error) => {\n showErrorMessage(error.message, \"esignError\");\n })\n .finally(() => {\n store.dispatch(\"setEsignLoader\", true);\n });\n } else if ([\"FALSE\", \"FAIL\", \"FAILURE\"].includes(status?.toUpperCase())) {\n store.dispatch(\"setEsignLoader\", false);\n if (!esp) {\n await clickStream.addEventList(apiValidationAnalytics);\n } else {\n if (esp == \"nsdl\") {\n apiValidationAnalytics.event_name = \"Esign-getxmlapi_setu_nsdl\";\n apiValidationAnalytics.event_id = \"73.0.0.42.6\";\n await clickStream.addEventList(apiValidationAnalytics);\n } else if (esp == \"emudhra\") {\n apiValidationAnalytics.event_name = \"Esign-getxmlapi_setu_emudhra\";\n apiValidationAnalytics.event_id = \"73.0.0.42.7\";\n await clickStream.addEventList(apiValidationAnalytics);\n }\n }\n CleaverTap.addEvents(\"KYC_Esign_Status\", {\n event_screen: \"KYC Esign API\",\n event_category: \"KYC\",\n event_action: \"kyc_esign_api\",\n url,\n status,\n message,\n });\n console.warn(\"Error message from Esign \", message);\n if (message != \"User cancelled\") {\n showErrorMessage(message, \"esignError\");\n }\n store.dispatch(\"setEsignLoader\", true);\n }\n }\n }\n\n return {\n onFinishEsign,\n };\n}\n","import { API_ACTION_TYPES } from \"@/handlers/action\";\nimport store from \"@/store/store\";\nimport { getCookieValue } from \"@/services/HttpClient\";\n\nexport default function useGetInitialRoute() {\n const {\n state: { action, persistedNavStack },\n } = store;\n let currentUrl = window.location;\n let initialRoute = \"\";\n if (currentUrl.toString().includes(\"#/jointAccountLogin\")) {\n initialRoute = \"jointAccountLogin\";\n // const changedUrl = currentUrl.toString().replace(\"#/\", \"\");\n // window.open(changedUrl);\n } else if (currentUrl.toString().includes(\"#/login\")) {\n initialRoute = \"login\";\n // const changedUrl = currentUrl.toString().replace(\"#/\", \"\");\n // window.open(changedUrl);\n } else if (currentUrl.toString().includes(\"termsAndConditionPg\")) {\n initialRoute = \"termsAndConditionPg\";\n } else if (\n currentUrl.toString().includes(\"creditBureauTermsAndConditionPg\")\n ) {\n initialRoute = \"creditBureauTermsAndConditionPg\";\n } else if (sessionStorage.getItem(\"journey-type\") === \"jointAccount\") {\n const token = getCookieValue(import.meta.env.VITE_APP_GUEST_COOKIE);\n // if (!token) {\n // initialRoute = \"jointAccountLogin\";\n // } else {\n initialRoute =\n action.type === API_ACTION_TYPES.navigate\n ? action?.value?.name\n : persistedNavStack[persistedNavStack.length - 1];\n // }\n } else {\n const token = getCookieValue(import.meta.env.VITE_APP_GUEST_COOKIE);\n // if (!token) {\n // initialRoute = \"login\";\n // } else {\n initialRoute =\n action.type === API_ACTION_TYPES.navigate\n ? action?.value?.name\n : persistedNavStack[persistedNavStack.length - 1];\n // }\n }\n return { initialRoute };\n}\n","import { http, showErrorMessage } from \"@/services/HttpClient\";\n\nimport ActionHandler from \"@/handlers/action\";\nimport LocalNavigator from \"./useNavigation\";\nimport { clickStream } from \"@/composables/clickStreamAnalytics\";\nimport store from \"@/store/store\";\n\n// let clickStream = new ClickStreamAnalytics();\n\nexport default function useNomineeEsign() {\n async function onFinishNomineeEsign(to) {\n const currentUrl = window.location;\n const urlQuery = currentUrl ? currentUrl.toString().split(\"?\") : \"\";\n if (currentUrl.toString().includes(\"nominees\")) {\n const urlParams = new URLSearchParams(urlQuery[urlQuery.length - 1]);\n let status = urlParams.get(\"status\");\n let message = urlParams.get(\"message\")\n ? urlParams.get(\"message\").split(\"#\")[0]\n : \"\";\n\n let url = to.fullPath;\n let apiValidationAnalytics = {\n event_name: \"Esign-getxmlapi\",\n event_id: \"73.0.0.42.4\",\n event_type: \"api\",\n event_sub_type: \"apirequest-response\",\n // eslint-disable-next-line\n event_metadata: `{ url: ${url}, status: ${status}, message: ${message} }`,\n };\n if (status === \"true\" || status === \"True\") {\n await clickStream.addEventList(apiValidationAnalytics);\n store.dispatch(\"setEsignLoader\", false);\n http\n .post(\"/v1/kyc/esign/confirmation\", {})\n .then(async (res) => {\n ActionHandler.handleAPIData(res?.data?.data);\n ActionHandler.handleAPIAction(res?.data?.action);\n store.dispatch(\"setEsignLoader\", true);\n })\n .then((res) => {\n sessionStorage.removeItem(\"nominees\");\n sessionStorage.removeItem(\"mobile\");\n })\n .catch((error) => {\n showErrorMessage(error.message, \"esignError\");\n });\n } else if (status === \"false\" || status === \"False\") {\n await clickStream.addEventList(apiValidationAnalytics);\n // console.warn(\"Error message from Nominee Esign \", message);\n if (message != \"User cancelled\") {\n showErrorMessage(message, \"esignError\");\n }\n store.dispatch(\"setEsignLoader\", true);\n }\n }\n }\n\n async function addNomineeRoute() {\n const nomineeData = sessionStorage.getItem(\"nominees\");\n const sessionMobileNumber = sessionStorage.getItem(\"mobile\")\n ? sessionStorage.getItem(\"mobile\").toString().replace(/\"/g, \"\")\n : \"\";\n\n const stateMobileNumber = store.state?.formData?.mobile;\n if (\n nomineeData &&\n sessionMobileNumber == stateMobileNumber\n // && store?.state?.features[\"nomineeBeforeEsign\"] == false\n ) {\n LocalNavigator.push(\"/nominees\"); //added line for nominee post esign\n store.dispatch(\"setFormData\", {\n key: \"nominees\",\n value: JSON.parse(nomineeData),\n });\n store.dispatch(\"setFormData\", {\n key: \"totalSharePercent\",\n value: parseInt(sessionStorage.getItem(\"totalSharePercent\")),\n });\n } else {\n // ActionHandler.clearSessionData({\n // mobile: \"mobile\",\n // totalSharePercent: \"totalSharePercent\",\n // nominees: \"nominees\",\n // });\n }\n }\n\n return {\n onFinishNomineeEsign,\n addNomineeRoute,\n };\n}\n","\n\n\n\n\n","\n\n\n\n\n","/**\n * plugins/webfontloader.js\n *\n * webfontloader documentation: https://github.com/typekit/webfontloader\n */\n\nexport async function loadFonts() {\n const webFontLoader = await import(\n /* webpackChunkName: \"webfontloader\" */ \"webfontloader\"\n );\n\n webFontLoader.load({\n google: {\n families: [\"Roboto:100,300,400,500,700,900&display=swap\"],\n },\n });\n}\n","// Styles\nimport \"@mdi/font/css/materialdesignicons.css\";\nimport \"vuetify/styles\";\nimport * as components from \"vuetify/components\";\nimport * as directives from \"vuetify/directives\";\n\n// Vuetify\nimport { createVuetify } from \"vuetify\";\n\nconst cstmLtTheme = {\n dark: false,\n colors: {\n background: \"#FFFFFF\",\n primary: \"#3f5bd9\",\n secondary: \"#5d5e63\",\n error: \"#F65E5A\",\n info: \"#2196F3\",\n success: \"#1EC7B6\",\n warning: \"#f9ba4d\",\n },\n};\nexport default createVuetify(\n {\n theme: {\n defaultTheme: \"cstmLtTheme\",\n themes: {\n cstmLtTheme,\n },\n },\n components,\n directives,\n }\n // https://vuetifyjs.com/en/introduction/why-vuetify/#feature-guides\n);\n","import \"cropperjs/dist/cropper.css\";\n// getHyperVergeAuthentication\n// Import the CSS or use your own!\nimport \"vue-toastification/dist/index.css\";\n\nimport { createApp, defineAsyncComponent } from \"vue\";\nimport { createMemoryHistory, createRouter } from \"vue-router\";\n\n// import \"v-calendar/dist/style.css\";\n// import VCalendar from \"v-calendar\";\nimport ActionHandler from \"./handlers/action\";\nimport Analytics from \"./composables/analytics\";\nimport App from \"./App.vue\";\nimport CleaverTap from \"./composables/Clevertap\";\nimport LocalNavigator from \"./composables/useNavigation\";\nimport ScreenView from \"@/components/ScreenView.vue\";\n// import { initializeApp } from \"firebase/app\";\n// import { getAnalytics } from \"firebase/analytics\";\nimport Toast from \"vue-toastification\";\nimport { VueSignaturePad } from \"vue-signature-pad\";\nimport { clickStream } from \"./composables/clickStreamAnalytics\";\nimport { loadFonts } from \"./plugins/webfontloader\";\nimport store from \"./store/store\";\nimport vue3GoogleLogin from \"vue3-google-login\";\nimport vuetify from \"./plugins/vuetify\";\n\nconst NotFound = defineAsyncComponent(() =>\n import(\"./components/NotFound.vue\")\n);\n\n// const firebaseConfig = {\n// apiKey: \"AIzaSyCOTF5CCWThvMsSzrrh7arY3WOglmvI7Bk\",\n// authDomain: \"kyc-web-f04f7.firebaseapp.com\",\n// projectId: \"kyc-web-f04f7\",\n// storageBucket: \"kyc-web-f04f7.appspot.com\",\n// messagingSenderId: \"258028774338\",\n// appId: \"1:258028774338:web:da2b74aa8cb00cb0f22c5b\",\n// measurementId: \"G-4M7QMBVRHX\",\n// };\n\n// Initialize Firebase\n// const appFirebase = initializeApp(firebaseConfig);\n\n// // Initialize Analytics and get a reference to the service\n// const analytics = getAnalytics(appFirebase);\n\nloadFonts();\nnew CleaverTap();\n\nconst router = createRouter({\n history: createMemoryHistory(),\n routes: [\n {\n path: \"/:pathMatch(.*)*\",\n name: \"NotFound\",\n component: NotFound,\n },\n {\n path: \"/\",\n redirect: \"/login\",\n },\n ],\n});\n\nconst options = {\n timeout: 2000,\n transition: \"Vue-Toastification__bounce\",\n maxToasts: 5,\n newestOnTop: true,\n hideProgressBar: true,\n position: \"top-right\",\n icon: true,\n};\n/*============ BROSER BACK FUNCTIONALITY START ================*/\nwindow.addEventListener(\n \"popstate\",\n async function () {\n const navStack = store?.state?.navStack;\n const topRoute = navStack[navStack.length - 1];\n history.pushState({}, \"\", `#${topRoute}`);\n setTimeout(async () => {\n await LocalNavigator.pop();\n }, 50);\n },\n false\n);\n\nwindow.onbeforeunload = function () {\n const currentHash = window.location.hash.replace(\"#\", \"\");\n const networkType = navigator?.connection?.effectiveType || \"\";\n const csEvents = {\n event_screen: \"\",\n event_type: \"click\",\n event_sub_type: \"button\",\n event_name: \"BrowserTabClose\",\n event_id: \"73.0.0.2.14\",\n event_metadata: `Screen-name: ${currentHash}, network-type: ${networkType}`,\n };\n if (store.state.ignoreBrowserPromt) {\n return null;\n }\n // const clickStream = new ClickStreamAnalytics();\n clickStream.addEventList(csEvents, true);\n const events = {\n event_action: `browser_close_${currentHash}`,\n event_category: \"browser_close\",\n event_label: \"browser_close_clicked\",\n };\n Analytics.analyticsEventLog(events);\n return \"Your work will be lost.\";\n};\n\nLocalNavigator.useRouter(router);\nActionHandler.useRouter(router);\n\n// store.subscribeAction((action, state) => {\n// console.log(`Action: ${action.type}`, {\n// payload: action.payload,\n// state,\n// });\n// });\n\ncreateApp(App)\n .use(router)\n .use(Toast, options)\n .use(vuetify)\n .use(VueSignaturePad)\n .use(store)\n .use(vue3GoogleLogin, {\n clientId: import.meta.env.VITE_GOOGLE_AUTH_CLIENTID,\n })\n // .use(VCalendar, {})\n // .provide(\"analytics\", analytics)\n .component(\"ScreenView\", ScreenView)\n .directive(\"visible\", function (el, binding) {\n el.style.visibility = binding.value ? \"visible\" : \"hidden\";\n })\n .mount(\"#app\");\n\n// \"goBackAlertKey\": \"bankEditCofirmation\",\n"],"file":"assets/index.b7488ea7.js"}