{"version":3,"sources":["assets/scss/components/footer/feedbackForm/feedbackForm.module.scss","assets/scss/components/leadPages/leadForm/leadForm.module.scss","components/utils/debounce.tsx","components/service/storageHelper.ts","components/service/indentifyDevice.ts","config/domain.ts","components/utils/eventEmitter.ts","components/service/clevertapService.ts","components/service/login/loginService.ts","config/login/loginURLConfig.ts","components/service/login/loginApiService.ts","components/service/sessionTimeout.ts","components/service/apiService.ts","components/toc/orderBook/obConstants.ts","components/service/orderBook/obApiService.ts","components/service/arrayFilter.ts","components/generic/tag.tsx","components/generic/overflowButton.tsx","components/utils/sortingUtils.ts","components/generic/sort.tsx","components/toc/orderBook/generic/obCheckbox.tsx","components/generic/edButton.tsx","components/toc/orderBook/generic/obAssetDetailPopup.tsx","components/toc/generic/tocNoData/tocNoData.tsx","components/service/dateTimeService.ts","components/service/orderBook/selectAll.ts","components/service/numberFormat.ts","components/service/orderBook/obGrpByHelper.ts","components/toc/orderBook/obContainer/obUtilHeader.tsx","components/generic/search.tsx","components/generic/toggle.tsx","components/toc/orderBook/generic/obFilter.tsx","components/service/rangeGen.ts","components/toc/orderBook/obContainer/obDatePickerInt.tsx","components/toc/orderBook/instruments/details/obAssetsDetlSym.tsx","components/generic/tab.tsx","components/toc/orderBook/obDetails/obOrderLog.tsx","components/generic/radioButton.tsx","assets/images/loading-refresh.gif","components/generic/loader.tsx","components/toc/orderBook/obConvertPositions/obProductTypeSelect.tsx","components/toc/orderBook/generic/obToastMessPopup.tsx","components/toc/orderBook/generic/obTooltips.tsx","components/toc/orderBook/obConvertPositions/obTradeTabContent.tsx","components/toc/orderBook/obJsXConstants.tsx","components/toc/orderBook/obConvertPositions/obEquityConvertDesk.tsx","components/service/generic/numValueChk.ts","components/toc/orderBook/obDetails/dsk/obEqDtlContent.tsx","components/toc/orderBook/obDetails/dsk/obEqDtlsOpen.tsx","components/service/generic/searchHighlight.ts","components/toc/orderBook/instruments/secondaryMarket/obEquity.tsx","components/toc/orderBook/instruments/details/obAssetsDetlSymMob.tsx","components/generic/slideUpPopup.tsx","components/toc/orderBook/obConvertPositions/obEquityConvertMob.tsx","components/toc/orderBook/obDetails/mob/obEqDtlsOpenMob.tsx","components/toc/orderBook/instruments/secondaryMarket/obEquityMob.tsx","components/generic/noDataContainer.tsx","components/login/loginConstants.ts","components/generic/SecNavigation/SecNavigationDesktop.tsx","components/generic/navigationDropdown.tsx","components/generic/navigationTag.tsx","components/service/orderBook/obScrollService.ts","components/toc/orderBook/obContainer/obContainerDesk.tsx","components/toc/orderBook/obContainer/obContainerTab.tsx","components/toc/orderBook/obContainer/obContainerMob.tsx","components/toc/orderBook/obContainer/obDeviceComp.tsx","components/toc/orderBook/obContainer/obEquity/obEquityContainer.tsx","components/toc/orderBook/instruments/details/obAssetsDetl.tsx","components/toc/orderBook/obDetails/dsk/obIpoDtlsContent.tsx","components/toc/orderBook/obDetails/dsk/obIpoDtlsDsk.tsx","components/toc/orderBook/instruments/primaryMarket/newOffers/obIpo.tsx","components/service/orderBook/obToggler.ts","components/toc/orderBook/instruments/primaryMarket/newOffers/obNcd.tsx","components/toc/orderBook/instruments/primaryMarket/newOffers/obOfs.tsx","components/toc/orderBook/instruments/primaryMarket/newOffers/obNfo.tsx","components/toc/orderBook/instruments/details/obAssetsDetlMob.tsx","components/toc/orderBook/obDetails/mob/obIpoDtlsMob.tsx","components/toc/orderBook/instruments/primaryMarket/newOffers/obIpoMob.tsx","components/helper/addRemoveClsOfTgt.ts","components/toc/orderBook/instruments/primaryMarket/newOffers/obNcdMob.tsx","components/toc/orderBook/instruments/primaryMarket/newOffers/obNfoMob.tsx","components/toc/orderBook/obContainer/obNewOffers/obNewOffersCont.tsx","components/toc/orderBook/obConvertPositions/obCommConvertDesk.tsx","components/toc/orderBook/obDetails/dsk/obCommDtlContent.tsx","components/toc/orderBook/obDetails/dsk/obCommodityDtls.tsx","components/toc/orderBook/instruments/secondaryMarket/obCommodities.tsx","components/toc/orderBook/obConvertPositions/obCommConvertMob.tsx","components/toc/orderBook/obDetails/mob/obCommDtlMob.tsx","components/toc/orderBook/instruments/secondaryMarket/obCommoditiesMob.tsx","components/toc/orderBook/obContainer/obCommodity/obCommContainer.tsx","components/toc/orderBook/obContainer/obEquity/obDerContainer.tsx","components/toc/orderBook/obContainer/obEquity/obCurContainer.tsx","components/toc/orderBook/obDetails/obTransactionHistory.tsx","components/toc/orderBook/obDetails/dsk/obMfSipDtlContent.tsx","components/toc/orderBook/obDetails/dsk/obMfSipDtlDsk.tsx","components/toc/orderBook/obDetails/dsk/obMfDtlContent.tsx","components/toc/orderBook/obDetails/dsk/obMfDtlDsk.tsx","components/toc/orderBook/instruments/secondaryMarket/obMutualFund.tsx","components/toc/orderBook/obDetails/mob/obMfDtlMob.tsx","components/toc/orderBook/obDetails/mob/obMfSipDtlMob.tsx","components/toc/orderBook/instruments/secondaryMarket/obMutualFundMob.tsx","components/toc/orderBook/obContainer/obMf/obMfContainer.tsx","components/types/genericTypes.ts","routing/postLogin.tsx","routing/obLayoutRouting.tsx","components/generic/toastMessage.tsx","components/toc/orderPlacement/generic/opBuySellTag.tsx","components/utils/validation.ts","components/utils/regex.ts","components/toc/orderPlacement/opConstants.ts","components/generic/inputField.tsx","components/toc/orderPlacement/generic/opInputNumField.tsx","components/toc/orderPlacement/generic/opCalender.tsx","components/toc/orderPlacement/generic/opMandateDropdown.tsx","components/toc/orderPlacement/generic/opDropdown.tsx","components/toc/orderPlacement/generic/opExplainButton.tsx","components/toc/holdings/holdConstants.tsx","components/toc/orderPlacement/opGenerateMandate/opGenerateMandate.tsx","components/toc/orderPlacement/opInsufficientFunds/opInsufficientFunds.tsx","components/toc/orderPlacement/opOrderStatus/opOrderStatus.tsx","components/toc/orderPlacement/opConfirmation/opConfirmation.tsx","components/toc/orderPlacement/generic/opTotalPeriod.tsx","components/toc/orderPlacement/sample/opSampleComponents.tsx","components/toc/orderPlacement/sample/opSampleValidations.tsx","components/toc/orderPlacement/opLayout/opLayout.tsx","components/toc/orderPlacement/opQuotes/partials/opQuotesHeadingDsk.tsx","components/toc/orderPlacement/opQuotes/partials/opQuotesTwoColData.tsx","components/toc/orderPlacement/opQuotes/partials/opMarketDepthTable.tsx","components/toc/orderPlacement/opQuotes/partials/opQuotesHoldings.tsx","components/toc/orderPlacement/opQuotes/opQuotesEquity/opQuotesEquityDsk.tsx","components/toc/orderPlacement/opQuotes/opQuotesEquity/opQuotesEquityTab.tsx","components/toc/orderPlacement/opQuotes/partials/opQuotesHeadingMob.tsx","components/toc/orderPlacement/opQuotes/opQuotesEquity/opQuotesEquityMob.tsx","components/service/orderPlacement/opApiService.ts","components/toc/orderPlacement/opContainer/opEquityContainer.tsx","components/toc/orderPlacement/opContainer/opFutureContainer.tsx","components/toc/orderPlacement/opContainer/opOptionContainer.tsx","components/toc/orderPlacement/opQuotes/partials/opQuotesHeadingMfDsk.tsx","components/toc/orderPlacement/opQuotes/partials/opMarketDepthList.tsx","components/toc/orderPlacement/opQuotes/opQuotesMf/opQuotesMfDsk.tsx","components/toc/orderPlacement/opQuotes/opQuotesMf/opQuotesMfTab.tsx","components/toc/orderPlacement/opQuotes/opQuotesMf/opQuotesMfMob.tsx","components/toc/orderPlacement/opContainer/opMfContainer.tsx","components/toc/orderPlacement/opQuotes/opQuotesNfo/opQuotesNfoDsk.tsx","components/toc/orderPlacement/opQuotes/opQuotesNfo/opQuotesNfoMob.tsx","components/toc/orderPlacement/opQuotes/opQuotesNfo/opQuotesNfoTab.tsx","components/toc/orderPlacement/opContainer/opNfoContainer.tsx","components/toc/limits/generic/limitsHeader.tsx","components/toc/limits/generic/limitsLeftCol.tsx","components/toc/limits/generic/limitsRightCol.tsx","components/toc/limits/limitsLayout/limitsLayoutDsk.tsx","components/toc/limits/limitsLayout/limitsLayoutTab.tsx","components/toc/limits/limitsLayout/limitsLayoutMob.tsx","components/toc/limits/limitsContainer/limitsContainer.tsx","components/service/limits/limitsApiService.ts","routing/opRouting.tsx","components/toc/holdings/generic/holdTotalBlock.tsx","components/toc/generic/tocNote/tocNoteDsk.tsx","components/toc/holdings/holdLayout/holdLayoutDsk.tsx","components/service/holdings/holdApiService.ts","components/toc/generic/tocNote/tocNoteTab.tsx","components/toc/holdings/holdLayout/holdLayoutTab.tsx","components/toc/holdings/generic/holdNavigationDropdown.tsx","components/toc/generic/tocNote/topNoteMob.tsx","components/toc/holdings/holdLayout/holdLayoutMob.tsx","components/service/holdings/holdGrpByHelper.ts","components/toc/holdings/generic/holdFilter.tsx","components/toc/holdings/generic/holdUtilHeader.tsx","components/toc/holdings/holdTables/holdEqUsableTable/holdEqUsableRowDsk.tsx","components/toc/holdings/holdTables/holdEqUsableTable/holdEqUsablePopup.tsx","components/toc/holdings/holdTables/holdEqUsableTable/holdEqUsableRowMob.tsx","config/edelWebSockets/socketConfig.ts","components/service/edelWebSockets/wsInit.ts","components/service/edelWebSockets/wsCallbacks.ts","components/utils/hashObj.ts","components/toc/holdings/holdTables/holdEqUsableTable/holdEqUsableTable.tsx","components/toc/holdings/holdTables/holdEqUnusableTable/holdEqUnusableRowDsk.tsx","components/toc/holdings/holdTables/holdEqUnusableTable/holdEqUnusablePopup.tsx","components/toc/holdings/holdTables/holdEqUnusableTable/holdEqUnusableRowMob.tsx","components/toc/holdings/holdTables/holdEqUnusableTable/holdEqUnusableTable.tsx","components/toc/holdings/holdTables/holdEqSmallcaseTable/holdEqSmallcaseRowDsk.tsx","components/toc/holdings/holdTables/holdEqSmallcaseTable/holdEqSmallcaseRowMob.tsx","components/toc/holdings/holdTables/holdEqSmallcaseTable/holdEqSmallcaseTable.tsx","components/toc/holdings/holdContainer/holdEquityContainer.tsx","components/toc/holdings/holdTables/holdMfUsableTable/holdMfUsableRowDsk.tsx","components/toc/holdings/holdTables/holdMfUsableTable/holdMfUsablePopup.tsx","components/toc/holdings/holdTables/holdMfUsableTable/holdMfUsableRowMob.tsx","components/toc/holdings/holdTables/holdMfUsableTable/holdMfUsableTable.tsx","components/toc/holdings/holdTables/holdMfUnusableTable/holdMfUnusableRowDsk.tsx","components/toc/holdings/holdTables/holdMfUnusableTable/holdMfUnusablePopup.tsx","components/toc/holdings/holdTables/holdMfUnusableTable/holdMfUnusableRowMob.tsx","components/toc/holdings/holdTables/holdMfUnusableTable/holdMfUnusableTable.tsx","components/toc/holdings/holdContainer/holdMfContainer.tsx","routing/holdingsRouting.tsx","components/toc/position/generic/positionTopSecContent.tsx","components/toc/position/generic/positionNoData.tsx","components/toc/position/generic/posUtilHdr.tsx","components/toc/position/positionTable/positionTblRowDesk.tsx","components/toc/position/positionDetail/positionDetailMob.tsx","components/toc/position/positionTable/positionTblRowMob.tsx","components/service/position/positionGroupByHelper.ts","components/toc/position/positionConstants.ts","components/toc/position/generic/positionFilter.tsx","components/toc/position/positionTable/positionTblContent.tsx","components/toc/position/positionLayout/positionLayout.tsx","components/toc/marginFiles/marginConstants.ts","components/toc/marginFiles/generic/marginSort.tsx","components/service/position/positionApiService.ts","components/toc/position/positionContainer/positionContainer.tsx","routing/positionRouting.tsx","components/service/marginFiles/marginApiService.ts","components/toc/marginFiles/generic/marginSearch.tsx","components/toc/marginFiles/marginTable/marginCollateral/marginCollateralTableDsk.tsx","components/service/marginFiles/marginScrollService.ts","components/toc/marginFiles/marginTable/marginCollateral/marginCollateralTableMob.tsx","components/toc/marginFiles/marginTable/marginCoverOrder/marginCoverOrderTableDsk.tsx","components/toc/marginFiles/marginTable/marginCoverOrder/marginCoverOrderTableMob.tsx","components/toc/marginFiles/marginTable/marginCurrency/marginCurrencyTableDsk.tsx","components/toc/marginFiles/marginTable/marginCurrency/marginCurrencyTableMob.tsx","components/toc/marginFiles/generic/marginFilter.tsx","components/toc/marginFiles/marginTable/marginFno/marginFnoTableDsk.tsx","components/toc/marginFiles/marginTable/marginFno/marginFnoTableMob.tsx","components/toc/marginFiles/marginTable/marginIntraEq/marginIntraEqTableDsk.tsx","components/toc/marginFiles/marginTable/marginIntraEq/marginIntraEqTableMob.tsx","components/toc/marginFiles/generic/marginNavigationTag.tsx","components/toc/marginFiles/marginTable/marginIntraFno/marginIntraFnoTableDsk.tsx","components/toc/marginFiles/marginTable/marginIntraFno/marginIntraFnoTableMob.tsx","components/toc/marginFiles/marginTable/marginMcx/marginMcxTableDsk.tsx","components/toc/marginFiles/marginTable/marginMcx/marginMcxTableMob.tsx","components/toc/marginFiles/marginTable/marginMtf/marginMtfTableDsk.tsx","components/toc/marginFiles/marginTable/marginMtf/marginMtfTableMob.tsx","components/toc/marginFiles/marginTable/marginTable.tsx","components/toc/marginFiles/marginContainer/marginContainer.tsx","routing/marginFilesRouting.tsx","components/toc/fundTransfer/ftConstants.ts","components/toc/fundTransfer/ftFaqLink.tsx","components/toc/fundTransfer/ftContainer/ftContainerDesk.tsx","config/toc/ftURLConfig.ts","components/service/fundTransfer/fundTransferApiService.ts","components/toc/fundTransfer/ftPayInCont/ftPayInCashHeader.tsx","components/toc/fundTransfer/generic/ftFormValidation.ts","components/service/generic/typeHandler.ts","components/toc/fundTransfer/generic/ftInpField.tsx","components/service/urlHelper.ts","components/generic/tocDropdown.tsx","components/toc/fundTransfer/ftConfirmBtn.tsx","components/toc/fundTransfer/ftPayOutCont/ftPayOut/ftPayOutFormCont.tsx","components/toc/fundTransfer/generic/ftCircleOIcon.tsx","components/toc/fundTransfer/ftPayOutCont/ftPayOutPending.tsx","components/toc/fundTransfer/ftPayOutCont/ftPayOut/ftPayOut.tsx","components/toc/fundTransfer/ftPayOutCont/ftPayOutCont.tsx","components/toc/fundTransfer/ftContainer/ftContainerTab.tsx","components/toc/fundTransfer/ftContainer/ftContainerMob.tsx","assets/icons/svgIcons/logo.tsx","components/toc/fundTransfer/ftModal/ftModal.tsx","components/toc/fundTransfer/ftModal/ftModalPayInStat.tsx","components/generic/cancel_T_Record.tsx","components/toc/fundTransfer/ftModal/ftModalPayOutStat.tsx","components/toc/fundTransfer/ftHistoryFundsContainer/ftHistory/ftHistoryTblPayInMob.tsx","components/toc/fundTransfer/ftHistoryFundsContainer/ftHistory/ftHistoryTblPayInDesk.tsx","components/toc/fundTransfer/ftHistoryFundsContainer/ftHistory/ftHistoryTblPayOutMob.tsx","components/toc/fundTransfer/ftHistoryFundsContainer/ftHistory/ftHistoryTblPayOutDesk.tsx","components/toc/fundTransfer/ftHistoryFundsContainer/ftHistory/ftHistoryWrap.tsx","components/toc/fundTransfer/ftHistoryFundsContainer/ftHistoryCont.tsx","components/toc/fundTransfer/ftMaintenance/ftUnderMaintenance.tsx","components/toc/fundTransfer/ftPayInCont/ftPayInForm/ftEdelBnkDtl.tsx","components/toc/fundTransfer/ftPayInCont/ftPayInForm/ftEquityForm.tsx","components/toc/fundTransfer/ftPayInCont/ftPayInFormWrapper.tsx","components/toc/fundTransfer/ftPayInCont/ftPayInCont.tsx","routing/ftRouting.tsx","components/login/generic/loginPopup.tsx","assets/images/logo_white.jpg","components/login/loginScreen/loginHelp.tsx","components/login/generic/loginErrMsg.tsx","components/login/forms/forgotLoginIdForm.tsx","components/login/generic/loginStatus.tsx","components/login/loginScreen/loginStatusScreen.tsx","components/login/loginScreen/forgotLoginIdScreen.tsx","components/generic/autocomplete.tsx","components/login/forms/leadForm.tsx","components/login/loginScreen/leadFormScreen.tsx","components/login/forms/mergeIdForm.tsx","components/login/loginScreen/mergeIdScreen.tsx","components/login/generic/newPasswordField.tsx","components/login/forms/changePasswordForm.tsx","components/login/loginScreen/changePasswordScreen.tsx","assets/icons/svgIcons/aadharSvg.tsx","components/login/generic/yobInputField.tsx","components/generic/checkbox.tsx","components/login/loginScreen/linkAadharScreen.tsx","components/login/loginScreen/rmRatingScreen.tsx","components/login/loginScreen/openAccountScreen.tsx","components/login/generic/loginFormBtmTxt.tsx","components/login/forms/loginIdForm.tsx","components/login/loginScreen/loginIdScreen.tsx","components/login/generic/loginSecureImg.tsx","components/login/forms/passwordForm.tsx","components/login/loginScreen/passwordScreen.tsx","components/login/loginScreen/yobScreen.tsx","components/login/loginScreen/consentScreen.tsx","components/login/loginScreen/resetCredsScreen.tsx","assets/icons/svgIcons/bellSvg.tsx","components/login/generic/loginCleverTap.tsx","components/login/loginScreen/loginClevertapScreen.tsx","components/login/generic/rmRatingSuccPopup.tsx","components/login/loginScreen/loginLoaderScreen.tsx","components/login/loginScreen/tncConsentScreen.tsx","components/service/serviceRequest/srApiService.ts","components/generic/edModal.tsx","components/service/postLogin/clientProfileAPIService.ts","components/clientarea/serviceRequest/incomeDeclaration/incomeDeclarationConsent.tsx","components/clientarea/generic/consentPopup.tsx","components/clientarea/serviceRequest/accReactivate/accReactCnst.tsx","components/login/loginCtrl.tsx","components/login/forms/forgotForm.tsx","components/login/loginScreen/forgotScreen.tsx","routing/login/loginRouting.tsx","components/utils/browserName.ts","components/utils/deviceName.ts","components/footer/footer/feedbackForm.tsx","components/service/gtmService.ts","components/footer/footer/footerCont.tsx","assets/icons/svgIcons/pdfSvg.tsx","components/footer/structuredProduct/structuredProdScrn.tsx","assets/icons/svgIcons/subscriptionIcons.tsx","config/login/leadURLConfig.ts","components/service/postLogin/leadAPIService.ts","assets/images/infinity-plan-hero.png","components/subscription/infinityPlan/pageFooterDock.tsx","components/subscription/infinityPlan/IPDeskComp/PlansPricingDesk.tsx","components/subscription/infinityPlan/IPMobComp/PlanOverviewMob.tsx","components/subscription/infinityPlan/IPMobComp/PlansPricingMob.tsx","components/subscription/infinityPlan/IPMobComp/PlanAllDetailsMob.tsx","components/subscription/infinityPlan/IPServiceList.tsx","components/subscription/infinityPlan/guestFormBuilder.ts","components/subscription/infinityPlan/guestLeadForm.tsx","components/subscription/infinityPlan.tsx","assets/images/leadPages/genericInsuranceCover.png","assets/images/leadPages/genericInsurance2.png","assets/images/leadPages/Bajaj1.jpg","assets/images/leadPages/Bajaj2.jpg","assets/images/leadPages/Bajaj3.jpg","assets/images/leadPages/Bajaj4.jpg","assets/images/leadPages/Bajaj5.jpg","assets/icons/svgIcons/genericInsuranceIcons.tsx","assets/images/leadPages/logo1.png","assets/images/leadPages/logo3.png","components/leadPages/genericInsurance/genericInsuranceConst.ts","assets/images/leadPages/logo2.png","assets/images/leadPages/logo4.png","components/leadPages/leadForm/leadForm.tsx","assets/icons/svgIcons/thankYouSvg.tsx","components/leadPages/leadForm/leadModal.tsx","components/leadPages/genericInsurance/genericInsuranceScreen.tsx","routing/footer/footerRouting.tsx","components/home/home.tsx","components/utils/dropdown.tsx","components/header/client/clientNavList.tsx","components/header/menuItems/menuList.tsx","components/header/guestNav/guestNavList.tsx","components/header/client/clientNav.tsx","components/header/mobMenu/mobMenuNav.tsx","components/header/stream/partials/indexStreamJSX.tsx","components/header/stream/indxStream.tsx","components/header/globalSearch/comparisonSearch.tsx","components/header/globalSearch/sectorSearch.tsx","components/header/globalSearch/globalSearch.tsx","assets/images/logo_blue.jpg","components/header/edHeader.tsx","components/clientarea/serviceRequest/srScreens/navbar.tsx","components/service/esign/esignService.ts","components/clientarea/serviceRequest/srScreens/table.tsx","components/generic/pagination.tsx","assets/images/received-request.svg","components/clientarea/generic/finalPopupScreeen.tsx","components/service/gba/gbaApiService.tsx","components/clientarea/serviceRequest/srScreens/srContainer.tsx","components/clientarea/clientAreaCtrl.tsx","components/clientarea/generic/fileUploadSection.tsx","components/service/generic/otherApi.ts","components/clientarea/generic/qCCheck.ts","components/generic/OtpTimer.tsx","assets/images/pdf_icon.png","components/clientarea/serviceRequest/KRADocumentUpload/KRADocumentUpload.tsx","components/clientarea/serviceRequest/videoVerification/VideoPlayerIpv.tsx","components/generic/Backdrop.tsx","assets/images/ipv_demo.jpg","components/clientarea/serviceRequest/videoVerification/ErrMsg.tsx","components/clientarea/serviceRequest/constant.js","components/utils/useGeoLocation.js","components/generic/InfoModal.tsx","components/clientarea/serviceRequest/videoVerification/VideoVerification.tsx","components/clientarea/serviceRequest/CKYC/ckycUpdate.tsx","components/clientarea/generic/statusScreen.tsx","components/clientarea/serviceRequest/emailMobileModification/familySection.tsx","components/clientarea/generic/otpSection.tsx","components/clientarea/serviceRequest/emailMobileModification/emailMobileModification.tsx","components/clientarea/serviceRequest/fatcaUpdate/taxResident.tsx","components/clientarea/generic/failedValidationScreen.tsx","components/clientarea/serviceRequest/fatcaUpdate/fatcaUpdate.tsx","components/clientarea/serviceRequest/segmentActivation/constant.js","components/clientarea/serviceRequest/segmentActivation/fileUpload.tsx","components/clientarea/serviceRequest/segmentActivation/segmentActivation.tsx","components/clientarea/serviceRequest/accClosure/accountType.tsx","components/clientarea/serviceRequest/accClosure/dpTradingOption.tsx","assets/images/Sample-signature-image.png","components/clientarea/serviceRequest/accClosure/accClosure.tsx","assets/images/digi-locker.webp","components/clientarea/serviceRequest/addressModification/addressModificationForm.tsx","components/clientarea/serviceRequest/addressModification/addressModification.tsx","components/clientarea/serviceRequest/bankDetails/upload.tsx","components/clientarea/serviceRequest/bankDetails/BankIfscpop.tsx","components/clientarea/serviceRequest/bankDetails/bankModification.tsx","components/clientarea/serviceRequest/verficationStage/verficationStage.tsx","components/clientarea/serviceRequest/incomeDeclaration/incomeDeclaration.tsx","components/clientarea/serviceRequest/accReactivate/profileForm.tsx","components/clientarea/serviceRequest/accPayment/accPayment.tsx","components/clientarea/serviceRequest/accReactivate/accReactivateCont.tsx","components/generic/staticPopup.tsx","components/clientarea/serviceRequest/srLayout.tsx","components/clientarea/serviceRequest/accPayment/paymentResponse.tsx","components/clientarea/serviceRequest/nomination/addNominee/constant.js","components/clientarea/serviceRequest/nomination/addNominee/identificationSection.tsx","components/clientarea/serviceRequest/nomination/addNominee/address.tsx","components/clientarea/serviceRequest/nomination/addNominee/form.tsx","components/clientarea/serviceRequest/nomination/common/accountTypeSection.tsx","components/clientarea/serviceRequest/nomination/addNominee/showDetails.tsx","components/clientarea/serviceRequest/nomination/common/dpTrading.tsx","components/clientarea/serviceRequest/nomination/addNewNominee.tsx","components/clientarea/serviceRequest/nomination/optOut.tsx","components/clientarea/serviceRequest/nomination/replicate/identificationForm.tsx","components/clientarea/serviceRequest/nomination/replicate/replicate.tsx","components/clientarea/serviceRequest/nomination/nomination.tsx","components/clientarea/serviceRequest/ddpi/ddpi.tsx","components/clientarea/serviceRequest/smtf/constant.js","components/clientarea/serviceRequest/smtf/smtf.tsx","components/clientarea/serviceRequest/segmentDeactivation/constant.js","components/clientarea/serviceRequest/segmentDeactivation/segmentDeactivation.tsx","routing/clientRouting/clientRouting.tsx","assets/images/adhar-access.webp","components/clientarea/serviceRequest/addressModification/showDocuments.tsx","routing/REdRouter.tsx","App.tsx","serviceWorker.ts","index.tsx"],"names":["module","exports","debounceTimer","debounce","func","delay","context","this","args","arguments","clearTimeout","global","setTimeout","apply","storage","DeviceContext","isMobile","document","body","offsetWidth","isTablet","isDesktop","subDomainUrl","process","split","config","length","root","web_mw","web_reports","moui","moui_penny_drop","streamUrl","jmw","jmw_eq","jmw_eq_eq","jmw_comm","jmw_mf","jmw_sr","jmw_nse","jmw_content","jmw_login","tradeService","edelService","appId","client_Id","reDirectUrl","whatsapp_consent","appIdKey","rootUrl","configURL","market","status","usd","banknifty","getNomineeDetails","createServiceReqNomin","downloadPrefilledNominatinForm","feedback","merceApiUrl","appidkey","appid","profile","personalDetails","personalDetailsCOM","ClientProfilePicture","ServicingDetails","ServicingDetailsCOM","clientDetails","POADownloadDetails","POAFlagDetails","CreateServiceRequest","checkValidation","getDPID","ExistingIncomeRange","NewIncomeRange","DepositoryDetail","ServiceClientValidation","ServiceSchemeValidation","GetMessageDetails","GetMessageDetailsCOM","GetServiceRequest","GetServiceRequestCOM","bankDetails","BrokerageSlabDetails","GetCKYCValidation","adharVerify","FatcaValidation","CountryDetail","DematAcctValidation","FamilyRelationshipList","FamilyDeclarationList","GetPreFilledFormPDF","GetEsignUrl","GetEsignUrlV2","GetEsignStatus","DownloadEsignDocument","DownloadEsignDocumentV2","GetEquityReactivationClientValidation","CreateChildServiceRequestDetails","GetAllNewExistingSRDetails","getMergeDocument","getSelectedDocument","createSRDocumentUpload","fetchDigiLockerUrl","fetchDigiLockerDetails","getMemorandumDetails","createChildSR","updatAccReactStatus","getDefaultBankValidationDetails","GetEquityDormantClientCategoryValidation","GetIPVOTP","sr","getDpDetails","accClosureValidate","otpSend","otpValidate","accClosureSR","esignUrlJMW","esignStatusJMW","esignDownloadJMW","getServiceDet","getDdpiDetails","getDdpiValidation","createDdpiSR","ddpiPreFilledFormPDF","getSMTFValidation","createSMTFSR","createSegmentDeactivation","validateSegDeactivation","getSegmentsDetails","validateSegActivation","createSegmentActivation","account","GenerateOtp","VerifyOtp","fund","getBankDetails","paymentGateway","GSearch","GetSearchRedirectResult","GSearchSuggestions","smallcaseUrl","orderBook","eq","eqHistory","eqSip","eqOrderLog","eqCancelNrmOrd","eqCancelAmoOrd","eqCancelSIPOrd","eqConvertPos","eqtradeBook","commodity","commCancelNrmOrd","commCancelAmoOrd","commOrderLog","commtradeBook","commodityHist","commConvertPos","mf","mfSip","mfCancelNrmOrd","mfCancelHoldOrd","ipo","ofs","ncd","nfo","ipoCancelOrd","position","eq2","orderPlacement","quote","holding","schemeDetailsMf","schemeMf","holdingMf","quoteNfo","quoteExtraNfo","limits","equity","comm","equityUsable","equityUnusable","equitySmallcase","marginFiles","broking","oyo","rmDetails","general","enumMaster","areaDetails","fullAddressDetails","distinctBanklist","bankListForIfsc","bankCities","bankBranch","beneficiaryNamePichain","saveBankDetails","BankDetails","generateAccessToken","getDocListFromDigilocker","getExtractCheque","getExtractaadhaarDetails","getExtractVoterIDDetails","getExtractPassportDetails","getExtractDLDetails","maskAadhaarLDetails","urlConfig","session","window","sessionStorage","local","localStorage","cookie","appInfo","JWT","bStrg","key","setbStrg","val","parsedToken","jwt_token","ee","EventEmitter","ClevertapService","getIdentity","cleverTapObject","accName","uniqueId","accTyp","decode","LoginService","getAccData","accCode","prefAccTyp","eqAccID","coAccID","eqAccName","coAccName","getClevertapItem","value","getItem","JSON","parse","undefined","Date","setClevertapItem","obj","clevertapData","setItem","stringify","removeClevertapItem","forEach","k","saveClevertapData","cleverTapId","clevertap","getCleverTapID","login","cleverTapDetails","prfId","lastLoginDetails","showClevertapNotification","notifications","push","titleText","bodyText","okButtonText","rejectButtonText","okButtonColor","askAgainTimeInSeconds","serviceWorkerPath","data","event","EventName","onUserLogin","accData","temp","userID","accs","uid","mtf","sts","adhrEQ","stat","brkCode","eqBrk","adhrCOM","coBrk","eqRmRt","wtspCnsnt","preLoginData","pwd","_jwtToken","authorization","removeItem","removeAccData","lgnSrc","emit","token","pToken","_pToken","jwtToken","fromUrl","reUrl","invtypeobj","popupName","params","vendorDetails","hideCross","isLoggedIn","getPreLoginData","setPreLoginData","saveDataInLocalStorage","cleverTapRegistration","clevertapService","lastcleverTapDetails","pushOnUserLogin","Site","Name","Identity","AccountType","profileID","getUserID","setAccData","logout","changeScreen","screenState","setUrlObj","item","ottype","sTab","isbasket","createPlaceOrderUrl","str","aTyp","exc","snse","sbse","checkATyp","symbol","slice","isin","scode","accounts","URLConfig","consent","merge","raterm","commAccOpen","jwttokenfornesttrader","cAccount","clevertapRegister","adhoc","openAccount","AGetSecurityImage","callback","usrId","apiService","url","loginURLConfig","method","authType","source","sourcetoken","A2faQuestions","ff","ip","AVerifyAnswers","yob","ansLst","idx","ans","appData","vendor","AGetConsents","consents","console","log","ASaveMulConsents","AResetLoginId","nwUid","cnNwUid","AResetPassword","ASaveTncConsent","save","AMergeRequest","AMergeRemindLater","AMergeActivateAccount","AMergeEnableAccount","ARmRateSubmit","userId","ACommAccOpenPre","ACommAccOpenPost","AGetJwtTokenForNestRrader","AImpersonateUser","ARegisterDevice","ACheckTokenValidity","AGetLoginResponse","handleSessionTimeout","newResp","res","queryString","response","infoID","location","href","indexOf","getToken","scrlStCls","req","abortController","a","Abort_Controller","AbortController","headers","platform","auth_token","Source","SourceToken","signal","fetch","resp","json","then","catch","error","errMsg","apiAService","Authorization","mwAuth","pappid","applicationid","toString","username","AObEqReq","accType","AEqGetOrderLogs","nOID","AEqGetTradeBk","AEqCancelNrmTrd","cancelBody","AEqCancelAmoTrd","AEqCancelSIPOrd","sSNo","request","requestType","msgID","appID","formFactor","AEqConvertPos","convertBody","AObEqHistReq","fromDate","toDate","ACommGetOrderLogs","oID","ACommGetTradeBk","ACommCancelNrmTrd","ACommCancelAmoTrd","ACommConvertPos","AMfCancelNrmTrd","AMfCancelHoldTrd","AIpoCancelTrd","ordID","filterArrData","operator","i","secNavOptions","display","eqNav","today","mfNav","dervNav","currNav","commNav","ChipColorKeyComb","rejected","open","pending","failed","cancelled","completed","complete","accepted","ordered","amo","approved","success","inprocess","running","active","ChipStatusComb","ChipStatusMfComb","ChipStatusMfSipComb","inactive","openStatusArr","ovrOptions","newOfferOptions","history","sip","ObScrollStyle","setMinMax","useState","computedStyles","setcomputedStyles","ele","querySelector","offset","scrollHeight","innerHeight","maxHeight","overflowY","PMErrorMessages","getMFCancelObj","cancelObj","currentOrdSts","ordStatus","txnTyp","toLowerCase","txnType","clientCode","qty","parseFloat","units","amt","amount","reInvFlg","reinvestmentFlag","reqstdBy","folioNo","ordTyp","txnId","parseInt","txnID","schemeName","rmrk","remarks","mnRdmFlg","ordSrc","strtDy","startDay","getDay","strtDt","startDate","endDt","endDate","sipFrq","sipfrequency","gfot","tnr","tenure","mdtId","mandateID","sipregno","sipregNo","siporderno","siporderNo","closeAccountFlag","kycflag","dpc","euinflag","euinnumber","physicalFlag","option","Tag","props","className","cn","shape","color","style","height","width","tagStyles","OverflowButton","isDropdownOpen","setIsDropdownOpen","isOptionSelected","setIsOptionSelected","onHover","dropdownOptions","onClick","onMouseOver","map","showBuySellColor","id","onSelect","compareValues","order","b","hasOwnProperty","varA","isNaN","toUpperCase","varB","comparison","eSortState","sort","initialData","sortState","sortKey","onSort","ASC","DESC","group","groupTemp","Sort","state","onSortClick","setState","sortList","colName","React","ObCheckbox","disabled","type","onChange","checked","name","children","EdLinkButton","btnOrActionClass","btnTyp","to","LinkHref","slim","EdALinkButton","target","rel","EdButton","ObAssetDetailPopup","TocNoData","showClrBtn","callBackMeth","dateTimeFormat","date","splitSlash","newdate","dateFormat","splitDate","GetCurrentDatetime","GetNoOfDaysOrMonths","from","OneDay","diffDaysOrMonths","frmDate","months","getFullYear","getMonth","getTime","Math","round","JsonData","addDays","days","TempDate","setDate","getDate","subDays","obtradeRowSelection","groupIndex","index","tableData","isAllSelected","allSelected","count","condCount","rwCount","row","isSelected","selectFlag","handleRwWithKeyVal","toINR","decimalPos","Number","toLocaleString","maximumFractionDigits","minimumFractionDigits","EUtilHeaderState","HObGroupBy","array","reduce","result","currentValue","HOb2DGroupBy","statKey","matchValArr","arr","d","Search","searchEle","useRef","ref","autoFocus","classname","e","currentList","newList","searchList","keysArray","searchKey","g","filter","find","lc","includes","onSearch","placeholder","autoComplete","current","getElementById","Toggle","isOn","ObFilter","filterDropDownOption","setIsAllSelected","deviceState","filterInputParams","aType","isChecked","isHistory","checkboxesState","setcheckboxesState","prevCheckboxesStateRef","prevCheckBoxState","showOpenOrderOnTop","isToggleOn","setIsToggleOn","onChecked","tempCheckboxesState","filteredData","groupData","onFilter","tempCheckboxState","currentCheckbox","filterData","checkboxState","checkbox","checkBoxFilter","statusObj","stsval","replace","ogt","reset","s","useEffect","showOpenOrderTgl","tglClick","ObUtilHeader","NORMAL","utilHeaderState","setUtilHeaderState","leftSideText","onSelectClick","onDataFilter","onFilterClick","filterReqData","SEARCH","onSearchClick","sText","range","size","startAt","Array","keys","DatePickerInt","todayDate","years","monthsFull","onFromChange","newDate","plus15Days","plusDays","me","valueOf","sendDates","updateWithTodayDate","toMax","toDateCt","fromMax","handleNav","mnthYr","showMnthYrDtPicker","weekX","monthPicker","changeMonth","month","selectedClass","yearPicker","changeYear","yr","CustomCalenHeader","decreaseMonth","increaseMonth","prevMonthButtonDisabled","nextMonthButtonDisabled","decreaseYear","increaseYear","prevYearButtonDisabled","nextYearButtonDisabled","moment","format","bind","renderCustomHeader","onCalendarClose","selected","selectsStart","selectsEnd","maxDate","calendarClassName","monthsShown","showPreviousMonths","customInput","showPopperArrow","ObAssetsDetlSym","trsTyp","title","subTitle","Tab","secNavigationRef","tabSelected","offsetLeft","blueBarStyle","left","selectedValue","defaultValue","createRef","onload","makeTabUnderline","RefEle","getElementsByClassName","tabList","tab","Component","ObOrderLog","logs","time","RadioButton","moduleName","list","SLoader","Loader","src","loaderImage","PageLoader","ObProductTypeSelect","defaultBtnTxt","selectedRadio","setSelectedRadio","processingBtn","numOfQty","preventDefault","onClose","isProcessing","onConvertPosition","ObToastMessPopup","disableBtn","setDisableBtn","onBackClick","subtitle","buttonValue","onToastBtnClick","Tooltip","tooltipToggle","currentState","tooltipShow","tooltipTxt","tooltipList","ObTradeTabContent","showCheckbox","ntPrc","trdID","ordType","rcvTim","backButtonValue","require","ObEquityConvertDesk","selectedPrdCode","tradeData","setTradeData","isAllDataSelected","setIsAllDataSelected","conErrorPopupMsg","setConErrorPopupMsg","setIsProcessing","totalSelectedQty","ordConvertedSuccList","ordConvertedFailList","OrdsListToConvert","obEqtradeRowSelection","every","failObj","rw","message","convertCallback","nstOID","flID","prdCode","prdCodeCh","numValChk","ObEqDtlContent","showTradePopup","showTradeTab","eqOrderLogs","ord","rcvEpTim","getOrderLogs","flQty","pdQty","ntQty","qtyTF","avgPrc","trgPrc","prc","prcTF","dur","vlDt","dsQty","trgId","exONo","isTodayOrder","onCancelClick","onButtonClick","ObEqDtlsOpen","selectedTab","tabLst","assetDetail","ordEntTyp","trdSym","cpName","dpName","symName","tabLstSelect","eqGetTradeBkRes","trade","rjRsn","SearchHighLight","rawText","searchText","stkName","substring","heading","prodType","avgPrice","orderPrice","headingSip","sortKeySIP","ObEquity","ovrOpts","dp","edit","cancel","isSip","isSelectEnable","setIsSelectEnable","exeCountRef","OpenOrdsTopRef","setFilteredData","setTableData","eqHistoryData","temp0","sortedColumnState","setSortedColumnState","selectedCount","setselectedCount","popupDataIndex","setPopupDataIndex","showCancelPopup","setShowCancelPopup","selectRows","retRes","colNameKey","Object","SearchText","optSelection","gI","ind","checkPartialOrder","ordData","addFlAndNtQty","bulkCancel","flQtySum","ntQtySum","ordCancelledSuccList","ordCancelledFailList","ordsListToCancel","cancelCallback","reRenderCall","cancelOrder","eqRow","nativeEvent","path","m","onRowClick","dangerouslySetInnerHTML","__html","getDates","tgl","hidePageNav","pOffset","sortedColName","Fragment","freeze","toContext","spSD","spLED","tSym","pCode","sFrqy","spNDD","spQty","spAmt","total","selectedRows","ObAssetsDetlSymMob","SlideUpPopup","closePopup","ObEquityConvertMob","showConvertPosition","setShowConvertPosition","ObEqDtlsOpenMob","ObEquityMob","CurRow","derRow","ELoginScreenState","ELoginPopupState","NoDataContainer","txtHeading","txtSubHeading","btnDet","txt","clickHandler","linkDet","SecNavigationDesktop","activeClassName","NavigationDropdown","setSelectedValue","NavigationTag","tagList","tag","ObScrollService","readyToFix","TargetContainer","pContId","targetEle","getRefOffset","getFreezeRef","getRefBoundClient","getBoundingClientRect","fixedEleBottom","bottom","freezeRef","topSpacing","top","fixClass","classList","remove","ObContainerDesk","isFixed","setIsFixed","useParams","secNav","pageNav","inst","isPriNavHidden","onScroll","scrollTop","priNavOptions","handleInstNav","instComp","ObContainerTab","ObContainerMob","SDevWiseStateComp","instrument","hidepgNav","handleDevice","ObEqContainer","setHidePageNav","setInstrument","obLoader","activeSecNav","match","isLoading","setNHandle","handleSecNav","eqOrderBookRes","eqOrderBookHistRes","hstOrdBk","sipOrderBook","spreq","handlePageNav","selectVal","fromDt","toggle","nodataNode","ObAssetsDetl","ObIpoDtlsContent","bids","bid","atCutOff","maxPrc","price","quantity","upiAmtBlocked","applicationNumber","referenceNumber","applStatus","ObIpoDtlsDsk","submitDt","ipoNm","progress","text","reason","company","sortColumn","ObIpo","element","mwStatus","trim","isModify","isCancel","ipoData","results","biddingEndDate","setHours","ipoRw","el","accumulator","acc","cv","Gindex","noDataNode","obTglDetail","refContQuerySel","currentIndex","refEle","currentTarget","refCont","querySelectorAll","nextElementSibling","previousElementSibling","ObNcd","ncdData","todaysNcds","tmStm","ncdDetails","sym","issTyp","apNo","noID","bNo","msg","ncdRw","GIindex","ObOfs","ObNfo","nfoData","todaysNfos","txnDate","nfoDetails","exchangeRefNo","orderedBy","nfoRw","ObAssetsDetlMob","ObIpoDtlsMob","OnIpoMob","tagName","AddRemClass","addRemFlag","targetSelector","PLCls","num","convertedVal","ObNcdMob","ncdExpRw","ObNfoMob","ObNewOffersCont","instNav","PmActiveInstNav","useReducer","instWiseData","getIPOOrderbook","ordLst","getOFSOrderbook","getNCDOB","ipoOrdBk","getNFOOrders","OFSReq","AObOFS","AObNCD","AObNFO","nav","ObCommConvertDesk","obCommtradeRowSelection","ObCommDtlContent","commOrderLogs","ObCommodityDtls","commGetTradeBkRes","ObCommodities","CommHistoryData","commRow","ObCommConvertMob","ObCommDtlMob","ObCommoditiesMob","ObCommContainer","CommOrderBookRes","CommOrderBookHistRes","AObCommHist","ObDerContainer","ObCurContainer","ObTransactionHistory","modifiedData","year","trsData","ObMfSipDtlContent","trsHist","mfSipTrsHistRes","childOrderDetails","sipRegNo","SIPRegNo","frequency","instalementsPaid","totalInstalments","mandateSts","dueDate","ObMfSipDtlDsk","ObMfDtlContent","FP","AP","R","XSIP","SIPFrequency","ISIN","ObMfDtlDsk","scheme","ObMutualFund","dpSip","isModified","mfHistoryData","MfTxnType","mfRow","txnTime","SIPStartDate","SIPEndDate","instalmentsPending","nextDueDate","ObMfDtlMob","ObMfSipDtlMob","ObMutualFundMob","ObMfContainer","mfOrderBookRes","mfOrderBookHistRes","mfSipOrderBook","sipOrdLst","AObMfSip","AObMfHist","EResetSubmitState","consentKeyMap","eqstwt","bseMfstwt","costwt","wtsap","EBuyOrSell","urls","home","cipPassThroughBase","report","PostLogin","pathname","ObRouting","component","render","ToastMessage","OpBuySellTag","tagSelected","BUY","SELL","isValidRegex","regex","test","required","grtrThanEqTo","min","lessThanEqTo","max","multipleValidation","multiple","integerExp","alphabetExp","floatNumExp","decimalPlaces","exp","RegExp","alphaNumExp","emailRegex","betweenNChars","atleast1SplChar","exceptSplChar","atleast1Alpha1Num","pan","PersonPan","phoneNo","upiExp","detectIntWithSpace","specialCharExpressionForAddr","EArrowKeys","alphaNumExpWithSpace","alphaNumExpWithSpaceForAddr","integerExpWithSpace","InputField","setValue","focusClass","setFocusClass","disablePaste","setDisablePaste","isRequired","isLessThanMin","Error","isGrtrThanMax","isValidPattern","pattern","errorText","prefix","resolvedValue","join","integer","isValidInteger","float","isValidFloat","alphanum","isValidAlphaNum","maxLength","isValidMaxLength","newValue","onFocus","onMouseOut","blur","onBlur","errorObj","getValue","onPaste","suffix","helpText","helpTextColor","EPickerType","OpInputNumField","isMultiple","customFloor","roundTo","floor","onKeyDown","keyCode","UpArrow","DownArrow","OpMandateDropdown","dropdownListRef","selectedOption","dropdownEl","onOptionSelect","dropdownList","bankName","transactionLimit","mandateId","isApproved","OpDropdown","OpExplainButton","showTooltip","setShowTooltip","tooltipData","description","EHoldScreenState","OpCalender","pickerType","setPickerType","onDateSelect","customHeader","headerProps","selectedYear","currentYear","endYear","Month","Year","yrMapArr","yrMap","placeholderText","showMonthYearPicker","shouldCloseOnSelect","calendarContainer","containerProps","CustomInput","OpGenerateMandate","companyName","onEdit","contentArr","content","label","OpInsufficientFunds","radioButtonList","orderValue","radio","onProceed","OpOrderStatus","ordNo","ordStsUrl","posUrl","placeOrdUrl","OpConfirmation","buyOrSell","exchange","isSubtitlebig","field","note","onCancel","onConfirm","OpTotalPeriod","htmlFor","helpTextGrey","helpTextBlue","OpSampleComponents","sampleList","dummyText","opGenerateMandateProps","onRadioSelect","onInputChange","onInputBlur","OpSampleValidations","inputErrors","setInputErrors","showError","validationText","OpLayout","quoteComp","OpQuotesHeadingDsk","dpNm","expiry","ltp","chLTP","chLTPPer","dateRange","ltt","OpQuotesTwoColData","OpMarketDepthTable","futOpt","useRouteMatch","lastSectionData","bidivfut","mns","hiCt","loCt","ltSz","spot","volume","high","low","ask","no","tBidQty","tAskQty","opInt","opIntChgP","OpQuotesHoldings","hldgOrPos","OpQuotesEquityDsk","quotesHeadingProps","quoteData","qt","chg","chgP","dpExpDt","dpInsTyp","opTyp","stkPrc","quotesDetilsProps","o","vol","h","l","mkd","buyQty","sellQty","holdingData","hdQtyCnc","hdQtyMtf","OpQuotesEquityTab","showHoldings","setShowHoldings","showMarketDepth","setShowMarketDepth","OpQuotesHeadingMob","OpQuotesEquityMob","AGetQuotesNormal","AGetSchemeMf","AGetQuotesExtraNfo","OpEquityContainer","getQuotesRes","getHoldingRes","OpFutureContainer","OpOptionContainer","OpQuotesHeadingMfDsk","SchemeName","navdateformat","changeDateFormat","changeinnav","changeinnavper","OpMarketDepthList","OpQuotesMfDsk","quoteDataExtra","AUM","Rating","Benchmark","Category","InceptionDate","RiskCategory","Year3","OpQuotesMfTab","OpQuotesMfMob","OpMfContainer","getquoteDataRes","PurchaseDetails","AscSch","LstTyp","LstPlan","c","Isin","SchCd","getSchemeRes","SCd","getHoldingMfRes","mfHdgUsable","hldg","AGetAllHoldingMf","OpQuotesNfoDsk","OpenDate","CloseDate","MinPurAmt","EntryLoad","LockinPeriod","OpQuotesNfoMob","OpQuotesNfoTab","OpNfoContainer","getQuoteExtraNfoRes","nfoStaticData","getSchemeDetailsRes","schemeISIN","Token","LimitsHeader","routeParams","cshAvl","showAddWithdrawBtn","asset","LimitsLeftCol","payIn","clearCB","notionalCash","adHocMargin","collateralValue","LimitsRightCol","payOut","marginUtilised","realisedMtm","unrealisedMtm","spanExposure","others","blocked","mfss","LimitsLayoutDsk","showLoader","limitsData","header","availableLimits","utilizedLimits","leftCol","rightCol","tryAgain","LimitsLayoutTab","LimitsLayoutMob","LimitsContainer","currentRouteParam","getEquityLimitsRes","tAL","cE","pOA","mUzd","mUtsd","tTP","tTPV","cV","pIA","cCB","nC","ad","rMTM","unrMTM","sAE","oth","mfA","getCommodityLimitsRes","lmt","lmAvl","mrUzd","poAmt","lrB","piAmt","colVal","AGetCommLimits","callApi","layoutProps","OpRouting","holdSecNavOptions","holdNote","HoldTotalBlock","usable","unusable","TocNoteDsk","HoldLayoutDsk","DATA","totalBlockData","NO_DATA","LOADING","TocNoteTab","showPopup","setShowPopup","HoldLayoutTab","HoldNavigationDropdown","TocNoteMob","HoldLayoutMob","HHoldMTFGroupBy","grouped","HHoldDematGroupBy","EHoldUtilHeaderState","HoldFilter","defaultToggleState","HoldUtilHeader","hold","onToggleClick","overflowBtnDropdownOptions","HoldEqUsableRowDsk","rowData","cncRmsHdg","t1HQty","usdQty","totQty","hdgVl","mtfRmsHdg","HoldEqUsablePopup","HoldEqUsableRowMob","isPopupOpen","setIsPopupOpen","socketConfig","protocol","socketURL","port","WS","WebSocket","edelSocketQuoteReq","quoteType","req_type","streaming_type","response_format","request_type","echo","initWS","sendToSrc","msgReadyToSend","waitingForConn","setInterval","readyState","clearInterval","send","onopen","_e","onmessage","onerror","onclose","genHshObj","refData","hash","HoldEqUsableTable","toggleState","filteredHash","tableHash","parsePropData","componentWillUnmount","vendID","vendToken","symbols","checkMTFHoldings","isMtfHoldingsPresent","sortAfterFilter","groupedData","handleToggleClick","handleSearch","socketMessages","z3","a9","filteredIndex","tableIndex","filteredDataTemp","tableDataTemp","updateRowOnStream","HoldEqUnusableRowDsk","pledgQty","lockedInQty","LTP","holdingValue","HoldEqUnusablePopup","HoldEqUnusableRowMob","HoldEqUnusableTable","HoldEqSmallcaseRowDsk","stockName","shares","averagePrice","HoldEqSmallcaseRowMob","HoldEqSmallcaseTable","nsestreamingSym","HoldEquityContainer","getEquityUsableHoldingsRes","usableHoldings","getEquityUnusableHoldingsRes","unusableHoldings","getEquitySmallcaseHoldingsRes","smallcaseHoldings","AGetEquityUnusableHoldings","AGetEquitySmallcaseHoldings","elssReportIndividualHoldings","eqHv","rmsHdg","child","isArray","showNoData","HoldMfUsableRowDsk","scName","ct","mode","hdgQty","HoldMfUsablePopup","HoldMfUsableRowMob","HoldMfUsableTable","isDematPhyCombPresent","demat","physical","checkDematPhyCombination","setToggleState","HoldMfUnusableRowDsk","category","HoldMfUnusablePopup","HoldMfUnusableRowMob","HoldMfUnusableTable","HoldMfContainer","getMfHoldingsRes","holdings","usableHld","nonUsableHld","nonUsable","HoldingsRouting","PositionTopSecContent","totalMtm","totalrealizedMtm","totalunrealizedMtm","PosUtilHeaderState","PositionNoData","PositionTblRowDesk","toggleTab","isAccordianOpen","avgByPrc","avgSlPrc","urlzPL","mtm","sqOff","rlzPL","byQty","byAmt","slQty","slAmt","PositionDetailMob","PositionTblRowMob","HPos2DGroupBy","PositionExcComb","NSE","BSE","NFO","CDS","MCX","NCDEX","PositionFilter","PosUtilHdr","PositionTblContent","streamDtRef","tData","hashObj","rawHshObj","setIsAccordianOpen","pos","calcUnMTM","unMTM","ntByQty","ntSlQty","toFixed","resData","getIndex","getSrcDtHsh","selDp","gInd","copyGroupedData","parseData","updateUnMTM","getSumOfUnMTM","npos","opn","cls","hideTopSection","EMarginScreenState","ESortState","PositionLayout","setHideTopSection","tdyMtm","urlMtm","ttPos","setTTPos","PositionContainer","eqGetpositionRes","setPosData","commdityGetpositionRes","_prevState","newState","AEqPosition","posData","PositionRouting","AGetMarginFiles","fileType","marginSecNavOptions","marginQueryParams","intraday","fnointraday","collateral","coverorder","fno","currency","mcx","ncdex","marginIntraEqHeading","marginIntraFnoHeading","marginCollateralHeading","marginCoverOrderHeading","marginFnoHeading","marginCurrencyHeading","marginMcxHeading","marginMtfHeading","marginEqFnoNavigationList","marginBuySellNavigationList","marginSort","MarginSort","MarginSearch","MarginCollateralTableDsk","sortProps","numOfRows","EdelCode","Companyname","Haircut","marginScrollService","scrollBody","fixedBody","scrollHead","scrollLeft","MarginCollateralTableMob","scrollBodyRef","fixedBodyRef","scrollHeadRef","MarginCoverOrderTableDsk","Scrip","Segment","EnterStopLoss","MinimumStopLossMargin","MarginRequirement","FinalMargin","Times","MarginCoverOrderTableMob","MarginCurrencyTableDsk","LotSize","SPANMarginAmt","SPANMarginper","ExpMarginamt","ExpMarginper","TotalMarginamt","TotalMarginper","MarginCurrencyTableMob","MarginFilter","optionSelected","expiryKey","self","MarginFnoTableDsk","Mlot","SpanMarginPerLot","ExpMarginPerLot","TotalMarginPerLot","RoundOff","MarginFnoTableMob","MarginIntraEqTableDsk","NSESymbol","IntradayMargin","MarginIntraEqTableMob","MarginNavigationTag","MarginIntraFnoTableDsk","ScripName","Marketlot","TotalMarginLongPos","MISMargin","MISMarginperLot","MarginIntraFnoTableMob","MarginMcxTableDsk","openRowIndex","setOpenRowIndex","toggleAccordian","SPANMargin","ExpMargin","SpreadBenefit","AdditionalMargin","TotalMargin","SpecialMargin","DeliveryMargin","TenderMargin","AddtPreExpMargin","MarginMcxTableMob","MarginMtfTableDsk","BSECode","MarginMtfTableMob","MarginTable","setNumOfRows","filterFiles","tagFiles","setSearchText","filterDate","setFilterDate","navigationList","subParam","filterKey","onDataSearch","MarginContainer","getMarginFilesRes","intradaydata","FNOIntradayData","collateraldata","CoverOrderData","fnoMargindata","Symbol","ExpDate","currenydata","InstrType","mcxbuydata","mcxsellData","ncdxbuydata","ncdxselldata","mtfdata","MarginFilesRouting","hndlDevice","FTSecNavOptions","ftUrls","ftHelpDetails","FTChipColorKeyComb","processed","FTScrollStyle","marginLeft","FTRegex","FtFaqLink","FtContainerDesk","eqLimit","eqBankDetails","commodityLimit","commodityBankDetails","eqMaxPayout","payin","paymentgatewayurl","upistatus","commPayInURL","verifyPayIn","payout","bankdetails","bankdetailsComm","addpayoutEq","addpayoutComm","modifyPayoutEq","modifyPayoutEComm","cancelPayoutEq","cancelPayoutEComm","transferstatusEqPayIn","transferstatusEqPayOut","transferstatusComm","pageURL","payinStatus","pTokenCheck","paramChk","AEqMaxPayout","ftURLConfig","ACommFundLimit","AFTVerifyPayin","FtPayInCashHeader","eqCash","coCash","ftFormValidate","errorStateFlag","eTar","fieldValidState","returnObj","ErrorState","validations","dataset","validation","valKeys","invalidKey","regEx","getProperty","propertyName","FtInpField","inputEle","proxyEle","inputState","setInputState","info","setInfo","RegExPat","stateOfField","inpValidate","validateOnChange","clsNm","proxy_inp","ph","add","validationEvent","handleChange","data-error","data-validation","showProxyField","focus","setAttribute","useQuery","URLSearchParams","useLocation","search","TocDropdown","consentType","get","dropDownOption","setDropDownOption","setSearch","options","opt","concat","isSearchable","trimStart","startsWith","showPrimary","primary","showClose","FtConfirmBtn","errTxt","disbaled","FtPayoutFormCont","useHistory","banksList","bnkAcs","bankAccountNo","bnkName","bnkAccNo","bank","userInput","setUserInput","isFormSubmitted","setIsFormSubmitted","textAreaFocusClass","setTextAreaFocusClass","errCd","actCd","submitErr","setSubmitErr","ftAmtErrMsgs","ftWithdrawFundRes","seg","brcName","bankBranchName","ifsc","trnsAmt","rmk","vr","maxlength","payOutBody","AFtWidthrawFundComm","FtCircledIcon","circleStyle","borderRadius","alignItems","icon","FtPayOutPending","linkToHist","backgroundColor","pendingMsg","FtPayOut","EFtPayOutFormFields","queryAsset","defaultAssetSel","co","selAssetBnkAccs","setAssetBnkAccs","selAssetDetails","setAssetDetails","setAsset","pndPayout","FtContainerTab","FtContainerMob","dateComp","FtPayOutCont","setInst","maxpayout","setMaxpayout","coUserLim","setCoUserLim","eqDetails","setEqDetails","coDetails","setCoDetails","initObj","payoutMntFlg","bodFlg","brk","commFundLimitRes","hndlPayoutState","details","dispatch","payoutState","AFTCommPayoutBankDetails","maxPytAmt","EdelLogo","xmlns","data-name","viewBox","viewbox","fill","transform","fillRule","FtModalFooter","ftStatsIcon","FtFundsModal","logoDimensions","showLogo","closeLink","goBack","showFooter","FtPayinStat","ftresponse","createddate","paymode","FtTransferDetails","FtSuccessActionsList","upi","accountno","bankname","bankrefno","customrefno","FtModalPayIn","_props","query","pushState","CANCEL_T_RECORD","btnProps","FtRedirectList","FtEditWithdrawAmt","transaction","editAmtErrMsgs","lim","editAmt","setEditAmt","dispatchMsg","ModifySuccessCallBack","editAmtInp","getElementsByName","minHeight","onSubmit","modifyPayout","eTarElements","elements","validationstatus","nodeName","instNo","noValidate","_key","FTCancelPayout","cancelClicked","setCancelClicked","cancelPayout","FtModalPayOut","payoutReqReceviedState","payoutTransState","linktoHist","FtHistoryTblPayInMob","verifyRes","tm","dt","payMd","ldgrNm","verify","FtHistoryTblPayInDesk","FtHistoryTblPayOutMob","limit","FtHistoryTblPayOutDesk","refNo","FtHistoryWrap","forwardRef","frmDt","toFrmDt","setToFrmDt","eqUserLim","setEqUserLim","payinHist","setPayinHist","payoutHist","setPayoutHist","loader","setLoader","funds","useImperativeHandle","getFundHistory","maxpayoutCallback","transferHisRes","trnSt","transferHisBody","rTyp","sDt","eDt","ATransferHisEqPayin","ATransferHisEqPayOut","FtHistoryCont","childRef","DateComp","FtUnderMaintenance","payinMaintenance","FtEdelBnkDtl","bnkAccTyp","usrAccNo","FtEquityForm","UPImaxAmount","isPrimary","paymodes","isAndroidMobile","navigator","userAgent","primaryBank","bnk","ledger","ldgrs","selectlastPayMode","selectedUPIObj","intentDetails","tr","amountErrMsgs","upiErrMsgs","pgCallbackInt","isFormValid","lstPayMode","fndTrsAvl","upiAvl","upiintent","upiqr","upiId","pgAPIRes","setpgAPIRes","inpValidations","setInpValidations","onFormFieldChange","resetErr","errStateFlag","payinForm","tempErrObj","validatePayInFrom","onModeChange","PingForIntentTransStat","statusURL","HandleState","FtAddfundInRes","splitUrl","click","pgrefno","timeOutURL","ru","serverTime","bodMarginMessage","upis","matchUpi","upiList","bankaccountnumber","PrimaryUPiId","findIndex","isprimary","UpiErrState","tempInpValidation","bankid","upiErrorMode","updateFormSubmit","ldgrId","edelBnkDtl","bnkCode","paymtMd","isPrimUpi","payinBody","bodMsg","FtPayInFormWrapper","EFtEquityFormFields","maintenanceNode","totalLim","FtPayInCont","commPayinURL","setCommPayinURL","setEqBankDetails","eqFundBankDetilsRes","bnkDetails","latest","payinMntFlg","hdnlPayin","getCommPayinURL","AFTCommFetchPayInURL","FtRouting","exact","LoginPopup","overlayClass","leftHeaderContent","centerHeaderContent","hideVersion","LoginHelp","logo","alt","LoginErrMsg","ForgotLoginIdForm","email","mobile","values","setValues","errors","setErrors","errorMsg","setErrorMsg","submitted","setSubmitted","forgotLoginIdRes","onSuccess","typ","some","LoginStatus","btnValue","linkTxt","link","onLinkClick","LoginStatusScreen","popupState","RESET_SUCC","LOGINID_SENT","MERGE_REQUESTED","EMAIL_SENT","INACTIVE_ACC","OPEN_ACC_SUCC","REQUESTED","NOT_ENABLED","ONE_ACCOUNT","LOGIN_FAILED","ForgotLoginIdScreen","popupMessage","Autocomplete","show","setShowDropdown","handleInputChange","showDropdown","dropdownData","inputClassName","noDataMsg","LeadForm","nm","eml","phNo","city","cities","setCities","srchStr","getCitiesRes","srchstr","getCities","onRemoveError","ctyLst","disableForm","LeadFormScreen","MergeIdForm","mrgAccDts","mrgUid","setMrgUid","phNos","mrgPhNo","setMrgPhNo","emIds","mrgEml","setMrgEml","uids","emId","remindLater","requestMerge","mrgAccTyp","MergeIdScreen","NewPasswordField","flag","showPassword","setShowPassword","showConditions","setShowConditions","showCross","setShowCross","setVal","validationArr","isValid","setIsValid","findError","isValidCopy","validateRegex","valid","ChangePasswordForm","old","confirm","editLoginId","setEditLoginId","loginId","olPwd","nePwd","coPwd","loginIdHelpText","verLoginIdBtn","verPasswordBtn","loginIdState","submitState","rstusr","escapeRegexStr","ver_login_id","ChangePasswordScreen","handleSubmit","ver_password","changePasswordRes","redirect","AadharSvg","EKeyCodes","Checkbox","LinkAadharScreen","aadharNo","readTnC","RmRatingScreen","rt","starHover","advisorName","selectedTags","showTextarea","starRatingMsg","wentWrongTags","complimentTags","toggleSelectedTags","tagIndex","getBodyForApi","fbTxt","compLst","prsNt","fbLst","handleNotInterested","handleRemindLater","_","onMouseEnter","onMouseLeave","OpenAccountScreen","LEAD_FORM","background","LoginFormBtmTxt","ACC_OPENING","LoginIdForm","userName","setUserName","LoginIdScreen","LoginSecureImg","imgSrc","onCheckboxChange","PasswordForm","securityImgObj","selectedAcc","setSelectedAcc","password","setPassword","secureImgChecked","setSecureImgChecked","onSelectAcc","onEditLoginId","imgObj","img","PasswordScreen","YobInputField","handleKeyUp","BACKSPACE","LEFT_ARROW","form","prototype","call","goToPrevious","RIGHT_ARROW","goToNext","v","valueCopy","onKeyUp","YobScreen","setYob","ConsentScreen","componentDidMount","scroll","isSlideUpPopupOpen","scrollTo","offsetTop","behavior","onCheckboxToggle","submitBtn","disable","mandatory","cnsntNm","contextTypes","scrollToDoc","PropTypes","string","ResetCredsScreen","BellSvg","cx","cy","r","opacity","stroke","strokeWidth","LoginCleverTap","onNoThanks","onRegister","onDontShow","LoginClevertapScreen","RmRatingSuccPopup","LoginLoaderScreen","TncConsentScreen","ValidateOtp","payload","GetFamilyRelationshipList","SendOtp","CreateServiceRequestDetails","GetDepositoryDetails","GetExistingIncomeRange","GetNewIncomeRange","SendWhatsappConsent","GetPersonDetails","fatcavalidation","getServicingDetails","getDematAcctValidation","param","refId","getRmDetails","getMergeDocumentBase64","getPaymentBankDetails","createAccReq","updateAccReactStatus","queryParams","getEquityDormantClientCategoryValidation","GetNomineeDetails","getClientDet","GetDpDetails","getEsignStatusJMW","DdpiValidation","smtfValidation","createSegmentDeactivationSR","validateSegmentDeactivation","EqPositions","CommPositions","EqOrderbook","CommOrderbook","MfSipOrderbook","MfOrderbook","GetBrokerageSlabDetails","GetSegActivationValidation","createSegmentActivationSR","EdModal","modalClsNm","tabIndex","showCloseOutOfBox","role","closeClsNm","close","asyncGetPersonalDetails","asyncGetMessageDetails","asyncGetServiceRequest","edDate","stDate","subtract","stDt","edDt","tempQString","IncomeDeclarationConsent","styles","setError","consentList","dormantList","lenght","dpID","serviceList","subType","srReq","RequestType","RequestStatus","accReact","Message","textAlign","paddingTop","paddingBottom","btn","btn_olink","consentTypes","enableCross","showBtn","hintText","instructText","ConsentPopupScreen","existingSr","consentDet","AccountReactivationConsent","main","setMain","block","setBlock","modal","setModal","LoginCtrl","cnsList","skipCnsts","createBrowserHistory","forceRefresh","afterHandleQueryString","openLogin","handleQueryString","queryObject","vsource","checkTokenValidityRes","authToken","impersonateUserRes","TokenId","userid","UserId","nesttraderRequest","accID","sAccountId","extoken","AccTyp","getJwtTokenForNestRraderRes","getLoginResponseRes","removeQueryStringFromUrl","replaceState","meta","redirectToVendor","changePopupState","reload","changeScreenState","MERGE","othAccDts","isAct","isOnline","LOGIN_ID","optState","getSecurityImage","setFocus","PASSWORD","YOB","CLEVERTAP","showUserIdScreen","removeError","getSecurityImageRes","imgLst","faQuestions","faQuestionsRes","verifyAnswers","verifyAnswersRes","mndtryCnsts","cnsnt","rstpwd","vendorCnst","cnsntLst","cnst","mdtry","showMandatoryConsents","showOptionalConsents","LoginType","Platform","InitiationScreen","InitiationElement","pushEvent","shift","getConsentsRes","RESET_CREDS","VENDOR_CNST","goToIncomeDeclarationConsent","INVALID_PAN_CNST","goToEmailMobConsent","goToNominationConsent","INVALID_NAME_CNST","goToAccReactConsent","showClevertapConsent","RM_RATING","CONSENTS","saveConsents","saveConsentsRes","resetIdPw","resetLoginId","resetSubmitState","resetLoginIdRes","resetPasswordRes","requestMergeRes","userData","mrgSts","remindLaterMerge","remindLaterMergeRes","inactiveAccOnMailSend","inactiveAccOnMailSendRes","rmRatingSubmit","rmRatingSubmitRes","RM_RATING_SUCC","submitLeadForm","submitLeadFormRes","logoutAndThenLogin","commAccOpenPostRes","checkInvtypeobj","INCOME_DECL_CNST","INVALID_ADDRESS_CNST","Account_React_CNST","emailCnsnt","mobCnsnt","INVALID_EMAIL_CNST","INVALID_MOBILE_CNST","INVALID_EMAIL_MOBILE_CNST","INVALID_NOMIN_CNST","bwsNm","devNm","clvTpId","plt","registerDeviceRes","clevertapNoThanks","clevertapDontShow","dontShowAgain","handleTncConsent","saveTncConsentRes","on","pair","decodeURIComponent","ARetrieveQueryData","disableButton","getScreen","getPopup","ForgotForm","apiRes","getButtonValue","AForgotPassword","AUnblockAccount","AForgotYob","ForgotScreen","routeParam","LoginRouting","browserName","verOffset","version","isoldbrowser","nAgt","appName","fullVersion","appVersion","getversionnumber","majorVersion","rv","ix","deviceName","FeedbackForm","phone","catFeed","comments","setShowError","openOptions","setOpenOptions","files","setFiles","fileError","setFileError","imgPrv","setImgPrv","isSubmitted","setIsSubmitted","fieldChange","validity","onSelectFile","uploadFile","viewFile","removeFile","dropHandler","dataTransfer","items","kind","getAsFile","file","reader","FileReader","readAsDataURL","ImgCont","ImgNm","Type","overlay","popup","close_cont","tick","head","isLgdIn","Brw","Cmmt","Dev","Em","emailAddressField","Imgs","Mob","mobileNumberField","Mod","Nm","nameField","Opt","Pg","Ptf","Rtg","Url","left_col","right_col","tempValidity","setCustomValidity","minValue","dropdown","aria-haspopup","aria-expanded","down_arrow","menu","aria-labelledby","cat","setCategory","minLength","valueMissing","tooShort","file_block","image_cont","imgbtn_grp","excel_icon","icons","first","aria-hidden","second","aria-label","new_file","onDrop","onDragOver","onDragEnter","accept","cross","file_msg","empty_file","file_upload","prw","prw_parent","btns","ed_btn","err","gtmService","user_id","searchtext","labelUrlR","origin","labelUrlA","dataLayer","FooterCont","setStyles","viewDisclaimer","setViewDisclaimer","marketStatus","setMarketStatus","openFeedback","setOpenFeedback","contactpop","setContactPop","default","gtmFooterOptions","ftr_cont","blue_bar","text_left","text_center","maindiv","bluebarblock","mobFaqs","faq","action","mobContact","mobQuery","contact_popup","contact_card","contact_cntr","contactclose","contactus","availTimings","mobileNo","m_link","col","row1","row2","alink","bluebar_query","querycol1","gtmdir-cat","gtmdir-event","gtmdir-config","gtmdir-key","querycol2","maindiv1","col1","col3","boldheading","col4","download","ng-href","Partnergap","col5","sl_i","linkedin","twitter","insta","col2","feedbacklink","ftrfeedback_btn","footerbottom","footerbottomcntr","policyrow","policy","ui-sref","gtmdir-text","gtmdir-url","copyright","DisclaimerCntr","disclaimer","ticker","marquee_head","marquee_msg","wiw","btm_row","tickerMarket","mkt_sts","mkt","market_sts","closed","web_version","PdfSvg","rx","fontFamily","fontSize","fontWeight","y","StructuredProdScrn","reports","setReports","getFilesSuccess","struct_prod","h1","h3","para","FilePathName","pdf_svg","agency","comp_name","RatingAgencyName","ID","contact","comp","addr","user_data","website","fax","contactCard","h2","cPerson","SRegNum","Cin","contactDebCard","SubscriptionIcons","returnSvg","x1","x2","y1","gradientUnits","stopColor","saveLeadInfoV1","getLeadMasterDetails","saveLeadInfo_v1","reqBody","leadURLConfig","pageId","PageFooterDock","loggedIn","mfInf","infinityPlanFlag","IPContext","dockToBtm","saveLead","setShowModal","PlansPricingDesk","plans","charges_show_hide","setCharges_show_hide","Assumptions_show_hide","setAssumptions_show_hide","plan","short_name","direct_MF","brokerage","cash_delivery","intraday_eq_fut","option_per_lot","cds_future","cds_option_per_lot","Waive_off_on_DP_AMC_chrgs","DPC_charges","FNO_DPC","structured_products_AIF_setup_fees","total_benefits","delivery_volume_rs","min_cur_mf_inv","monthly_sip_amount","avg_debit_margin_trading","avg_fno_margin","min_brokerage","PlanOverviewMob","showPlanModalFunc","PlansPricingMob","setShowAllPlan","setSelectedPlan","PlanAllDetailsMob","selectedPlan","GuestFormBuilder","FieldName","Validation","Required","empty","FieldType","Key","AllowRegex","Placeholder","MaxLength","GuestLeadForm","MobileNumber","Email","FormFields","setFormFields","IsFormSubmitted","IsFormValid","setIsFormValid","useContext","showModalFunc","handleFormSubmit","fields","FormValid","Phone","ProductId","product_code","CategoryId","category_code","SubCategoryId","subcategory_code","SourceId","source_code","SubSourceId","subsource_code","OfferId","EntityType","subscribe_dialog","saveLeadCallback","GuestFormDialog","showLeadFailureModal","InfinityPlan","showModal","showTQModal","setShowTQModal","showLFModal","setShowLFModal","setDockToBtm","showAllPlan","subscribe","pDetails","EMAIL","NAME","MOBILENO","productId","categoryId","subCategoryId","sourceId","subSourceId","elliance","isShowAllPlanActive","handleHeader","pageEle","scrollY","offsetHeight","documentElement","addEventListener","subsribeState","removeEventListener","hero_image","Provider","infinityPlanData","GenericInsuranceIcons","types","insuranceDef","benefits","cards","partners","logo3","resetFormSubscription","LeadFormRadio","checkmark","setSubmitState","setInitialValues","prefill","gtmAction","City","submitRes","submitStateChange","lead_form","inp_grp","invalid","field_group","country_cd","submit","ThankYouSvg","LeadModal","retry","modal_cont","small","modal_succ","form_cont","sub_title","circle","exclamation","GenericInsuranceScreen","showTopBanner","setShowTopBanner","_setShowModal","modalPos","setModalPos","formSubmitState","setFormSubmitState","divRef","handleScroll","changeSubmitState","bodyClassList","getElementsByTagName","requestACall","banner","floating","cont","gray","cover","cont_width","blue_head","right","coverImage","interested","callback_fix","white","desc","def","types_head","r_h3","r_p","loop","autoplay","firstImage","first_image","sec_image","image2a","image2b","image2c","image2d","image2e","benefit","kim","card","ptnrs","partner","last","image_container","partner_image","blue","lead_cont","spacing_30","FooterRouting","Home","Dropdown","listOpen","selectedItem","ddState","setddState","wrapperRef","handleClickOutside","contains","useOutsideAlerter","class","onClickTgl","headerTitle","arrow","listCont","tocList","subText","subList","TocList","tocListCont","sItem","selectItem","reportsList","ReportsList","reportsListCont","ClientDetails","PersonalDetails","userDeatils","ClientProfile","clientPicture","servicingDetails","lAccType","setaccType","ClientProfileCont","ProfileImageByte","ddCont","equityAdvisorNameField","EQUITY_ADVISOR_NAME","equityAdvisorEmailField","EQUITY_ADVISOR_EMAIL","equityAdvisorContactNumberField","EQUITY_ADVISOR_CONTACT_NO","MenuList","menuList","subMenuList","sessListEmbed","toc","UserMobMenu","menuAccord","expEle","navExpBlk","itemCur","hideDesk","hideLogin","slItem","device","LoginToNav","loginDDList","loginDDCont","listHeader","SupportCenter","supportCenterDDList","mobText","hideMob","contactNo","sCDDCont","mobList","UserNav","userDetails","MobCurtainMenu","IndexComp","ltpchg","ltpchgper","IdxStream","NSEObj","setNSEObj","BSEObj","setBSEObj","USDObj","setUSDObj","BANKObj","setBANKObj","marketStatSuccess","parsedData","NSEchg","NSEchgp","BSEchg","BSEchgp","marketStatSuccessOverview","OKIndices","Change","ChangePer","marketStatSuccessIndices","KI","nifty","Chng","PChng","ComaprisonSearch","oneBoxContent","stkDet","mCap","bv","pe","dy","eveb","pbv","roc","de","roe","cagr","SectorSearch","sec","GlobalSearch","timeout","setActive","setResults","setQuery","stringContent","compData","setCompData","setMessage","smartTipText","setSmartTipText","userQueryInput","searchControllerRef","redirectSearchControllerRef","GlobalSearchAbort","controller","RedirectSearchAbort","smartTipApiCall","bindData","nd","activeSearch","getRedirectDataSuccess","getSearchSuggestions","abort","searchval","inpQuery","searchRoute","postData","searchString","getRedirectData","SearchString","Cookie","sgListItem","listItem","pr","pn","sgListEle","sg","handleDocumentClick","searchBtnClicked","EdHeader","__props","setIsLoggedIn","toggleMenuAct","setToggleMenuAct","userProfile","setUserProfile","setClientProfilePicture","setServicingDetails","GetPersonalDetails","GetClientPicture","ImageName","pop","GetServicingDetails","AProfileGetPersonalDetails","AServicingDetails","NavList","NavBar","set","navSelected","prefilledFormTypes","proceedToEsign","serReqId","downloadPrefilledForm","getPreFilledFormPDF","prefillFormpdfRes","base64toPDF","getEsignUrl","handleError","base64Data","ApplicationId","String","Base64Document","ReturnURL","btoa","esignRes","Code","esignUrl","Data","HolderDetails","SignUrl","respData","fileName","decodedPdfContent","atob","byteArray","Uint8Array","charCodeAt","blob","Blob","buffer","_pdfurl","URL","createObjectURL","createElement","appendChild","evt","MouseEvent","view","bubbles","cancelable","dispatchEvent","revokeObjectURL","preFilledFormName","parentServiceId","downloadEsignDocumentV2","downEsignDocRes","getEsignUrlJMWV2","returnUrl","x","esignRedirectUrl","downloadEsignDocJMW","Status","badge","Table","pageData","setPageData","setShow","reactList","setReactList","sourceData","RequestId","reactList1","esignService","openErrorPopup","createdDate","creator_remarks","approver_remarks","dormant_type","ExcepetedDateOfCompletion","is_digilocker_flow","rmName","step","Pagination","totalRecords","filteredRecords","pageLimit","pageNeighbours","totalPages","fetchPageNumbers","ceil","currentPage","totalNumbers","startPage","endPage","pages","hasLeftSpill","hasRightSpill","spillOffset","extraPages","gotoPage","page","onPageChange","paginationData","prevProps","FinalPopupScreen","setBase64Data","pageYOffset","popupData","nomPdf","handleClick","btnText","popUp2","iconName","contentBold","redirectionLink","redirectionText","SrType","currentTime","headerText","request_image","GenerateLead","SRContainer","selectedAccType","selectedStatus","setSelectedStatus","setServiceList","setSearchList","setFilterData","setOpen","accTypeList","setAccTypeList","lead","setLead","changeAcc","setChangeAcc","setRMName","tradingDealerNameField","getRMName","accList","All","serviceReq","Approved","Processed","leadGenerate","ProductNames","ProductPage","xmlText","XMLParser","parseFromString","closeModal","newdata","statusList","emailMob","address","accReactPay","nomination","outstandingMsg","accClosure","ddpi","ClientAreaCtrl","initialCall","isStatusUpdated","mod","resTotalNet","intervalId","childServiceReq","ckyc","reqObj","parent_id","ckycSRId","ckycStatus","Total_NET_Outstanding","outstanding","redirectToPopup","EsignRefId","serReq","acntLst","reverse","triggerClvrTap","redirectToDash","urlSearchParams","fromEntries","entries","showStatusPopup","refID","messages","popupType","FileUploadSection","docUploaded","setDocUploaded","docUploadError","setDocUploadError","fileTypeUploadError","setFileTypeUploadError","fileTypeError","setFileTypeError","fileNameError","setFileNameError","fileSize","setFileSize","docFile","setDocFile","fileData","setFileData","setCropData","cropper","setCropper","dropValChanged","resetForm","extensions","secondFileName","crop","removeUplFile","cropperRef","onCrop","imageElement","getCropData","getCroppedCanvas","toDataURL","disableCross","zoom","rotate","preview","initialAspectRatio","guides","viewMode","restore","checkCrossOrigin","minCropBoxHeight","minCropBoxWidth","responsive","autoCropArea","checkOrientation","onInitialized","instance","clear","getCountryList","Enum","getDistinctBanklist","getBankListForIfsc","getbankCities","getbankBranch","checkPennyDrop","getFullAddress","getArea","pincode","extractCheque","getExtractaadhaar","getExtractVoterID","getExtractPassport","getExtractDL","maskedAadhaar","getDigiLockerDetails","getIPVOTP","getDocumentCategory","proof","documentCategory","getOCRResp","requestPayload","ocrResp","getAutoQc","qcDetails","AutoQc","qcResp","extraction_output","account_no","accNo","ifsc_code","bank_name","micr_code","micr","getMaskedAdhar","maskObj","isMasked","skipMask","accountCode","base64document","documentcategory","documentid","base64_image","base64Resp","timer","getQCChecked","checkedObj","qcFlag","addressProof","name_on_card","fullName","KRADocumentUploadForm","webSign","panCard","photo","kraDetails","setKraDetails","handleSubmitForDocument","fileDetails","fileObj","getFileType","hidePhoto","ViewKRADocuments","pdf_icon","OtpTimer","startTimer","animation","animationDelay","VideoPlayerIpv","setIsLoading","showStartBtn","setShowStartBtn","showVidPerm","setShowVidPerm","showRecordTimer","setShowRecordTimer","showUploadBtn","setShowUploadBtn","stream","setStream","webBlob","setWebBlob","frames","setFrames","mediaRecorder","setMediaRecorder","videoRefElement","previewRefElement","imageRefElement","imgSrcSafari","setImgSrcSafari","setVideoWidth","setVideoHeight","showPreview","hidden","turnOnCamera","mediaDevices","getUserMedia","audio","video","facingMode","srcObject","MediaRecorder","ex","record","interval","canvas","videoWidth","videoHeight","getContext","drawImage","toBlob","new_File","File","lastModified","now","fileReader","base64","captureScreenShot","start","framesArr","stop","getVideoTracks","ondataavailable","onstop","ev","autoPlay","playsInline","controls","controlsList","isGeoError","alert","ipvUploaded","Backdrop","isShow","isCloseIcon","ErrMsg","AddrModificationSteps","BankModificationSteps","SegmentActivationSteps","SegmentDeactivationSteps","geoLocationConfig","useGeoLocation","loaded","coordinates","lat","lng","setLocation","coords","latitude","longitude","onError","code","geolocation","getCurrentPosition","enableHighAccuracy","maximumAge","InfoModal","VideoVerification","watchPositionId","errCode","setErrCode","showSample","setShowSample","otp","setOtp","geoLoc","setIsGeoError","isGeoErrorTimeFlag","setIsGeoErrorTimeFlag","setLat","long","setLong","setBrowserPermission","locationPermission","setLocationPermission","cameraPermission","setCameraPermission","showBrowserPermissionModal","setsShowBrowserPermissionModal","generatedOtp","getLocation","errorPosition","successPosition","clearWatch","watchPosition","getIpvOtp","errorLocation","handleSuccess","turnOfCamera","constraints","justifyContent","ipvDemo","uploadObj","setIpvcode","setVideoContent","addressProofOptions","addressChildProofOptions","segincomeProof","bankDropdownMenu","srIdList","ckycId","addressId","addressQc","CKYCUpdate","addressConsent","srID","setPersonalDetails","profileFile","setProfileFile","permantAddressFile","setPermantAddressFile","permantAddressFile2","setPermantAddressFile2","frontBack","setFrontBack","frontBackForCA","setFrontBackForCA","permantAddressProof","setPermantAddressProof","correspondenceAddressFile","setCorrespondenceFile","correspondenceAddressFile2","setcorrespondenceAddressFile2","correspondenceAddressProof","setCorrespondenceAddressProof","existingCKYCUpdateSR","setExistingCKYCUpdateSR","dropValChangedForPA","setDropValChangedPA","dropValChangedForCA","setDropValChangedCA","dropValChangedForIncome","setDropValChangedForIncome","enabledButton","setEnabledButton","selectedSegincomeProof","setSelectedSegincomeProof","setFullName","selectedincomeProof","setSelectedincomeProof","incomeFile","setIncomeFile","childSr","setnewDataPermanentAddress","setNewCorrespondeAddressData","setAccountCode","showIncome","sameAsPermanent","showHide","setShowHide","digDoc","setDigDoc","setPhotoDigiLoc","showIpvScreen","setShowIpvScreen","accReactFlow","setAccReactFlow","dormantMoreThanYear","setDormantMoreThanYear","videoContent","ipvcode","showWarningPopup","setShowWarningPopup","rejectFlow","srId","new_data","newCorrespondenceAdr","newPermanentAdr","apiError","FlowSet","getPersonDetail","getExistingDocuments","checkCKYCValidation","submitRequest","childSrList","showHideStatus","Promise","all","srList","getNewSrData","next","newDataRes","old_data","accountcode","documents","documentTypeName","fullAcName","doc","corAddress","correspondenceAddress","parAddress","permanentAddress","toCamelCase","charAt","substr","accountCodeField","pANNumberField","addressField","currentAddressField","isKraDetails","enableSubmit","btnEnableDisableProceed","isAllowed","getMergeDocumentForPA","fileAttachements","uploadImageObj","applicationId","image1","image2","imagename1","imagename2","mergerResp","getMergeDocumentForCA","ckycValidateResp","ckycValidate","ckycResp","handleSubmitForProfile","returnAddressProofAccountReactivation","isPermanent","addressProofForPermanent","addressProofForCA","maskedObj","respObj","mergedPA","mergedCA","serviceRequestId","AutoQC","SRType","attachment","fileAttaches","openExistSrPopup","ipv_code","geo_location","submitData","actualbase64Data","StatusScreen","FamilySection","initialObj","mobile_relationship","email_relationship","mobile_account_name","email_account_name","email_accountCode","mobile_account_code","emailMobileForm","mobileMatches","familyDeclReqForMob","setFamilyDeclReqForMob","emailAndMobileMatches","familyDeclReqForEmailMob","setFamilyDeclReqForEmailMob","emailMatches","familyDeclReqForEmail","setFamilyDeclReqForEmail","onFamilySubmit","updateFamilyDeclReq","dataup","familyRelDropdownOptions","OtpSection","showVerify","setShowVerify","fiveSecondOver","setfiveSecondOver","otpCount","setOtpCount","invalidOtpCount","setInvalidOtpCount","invalidOtpCnt","setinvalidOtpCnt","maxLimitExceeded","setMaxLimitExceeded","srType","otpSendV2","sendOtp","verifyOtp","otpVerified","otpCode","assign","mobno","emailId","modifyProfile","acTyp","reqTyp","srAcTyp","srAcType","dpId","userType","segmentType","otpVerifyV2","unId","containerClass","otpHeader","inputClass","verifyDisabled","EmailMobileModification","mandatoryField","actualMobileNo","actualEmailId","showFamilySection","familyDeclFlag","familyDeclReq","setEmailMobileForm","existingEmailMobileSR","setExistingEmailMobileSR","disableMobile","setDisableMobile","disableEmail","setDisableEmail","emailOtpVerified","setEmailOtpVerified","mobOtpVerified","setMobOtpVerified","showEmailOtp","setShowEmailOtp","showMobileOtp","setShowMobileOtp","setErrorMessage","setAccCode","getPersonalDetails","EmailId","Mobile","childSrB","checkExistingEmailMobSR","isValidForm","mobNo","validateForm","getFamilyRelationshipList","getBtnText","openSRErrorPopup","getFamilyRelRes","Searchvalue","familyRelListRes","emailMobMatches","mobMatches","objUser","objAvailability","Available","ValueItem","familyDet","Accountcode","AccountName","mobRelListRes","emailRelListRes","hasSameAccName","inputType","validate","hasError","checkMandat","mandatoryAnswer","enable","setBtnTxt","setBtnText","modifySubmit","createSRRes","Id","createSR","openDuplicateDetailsSrPopup","openSRSuccessPopup","paramObj","submitForm","getDepositoryDet","new_mobile_number","new_email_id","old_mobile_number","old_email_id","family_declaration_flag","recipients","recipient","consentRes","setData","dPIdField","dPAccountNumberField","getSubmitData","emailMobileFormObj","radioValues1","TaxResident","listCountry","setListCountry","selectCountry","setSelectedCountry","getCountryDetails","scrollOnClick","section","scrollIntoView","taxForm","idTypeOther","SetTaxForm","countryOfList","enumlist","displayItem","countryL","onSet","idType","splice","country","elem","idNo","idNoError","nodisplayError","FailedValidationScreen","userRmName","setUserRmName","getDetailsRm","localStorageDetails","rmObj","rmNm","radioValues","FatcaUpdate","setTaxForm","checkStatus","setCheckStatus","SelectedRadio","listing","setListing","hide","fatcaValidation","serviceClientValidation","onchanges","list_indentity","identification","identification_number","is_indian_citizen","fatcaReq","Submit","listIndentity","segmentActivationMsg","SRexists","validationMsg","TradingSatusRemark","CASHSegmentRemark","CKYCRemark","IncomeOrNetworthRemark","DormantRemark","Name_Match","KRARemark","segmentNamesSMS","NSEFO","BSEFO","NSECDS","BSECDS","SLBM","COMMCX","COMNCDEX","segmentIncomeProof","FileUpload","setDropValChanged","segDetails","disableEdit","segDocFile","SegmentActivation","activeSegments","selectSeg","MSEICDS","isNewSegSelected","segmentActivation","setSegmentActivation","setEmail","setMobile","slabDetails","setSlabDetails","clientCategory","setClientCategory","comTypes","setComTypes","accSegDetails","setAccSegDetails","disableSubmit","setDisableSubmit","setOtpVerified","showCommSection","setShowCommSection","otpSection","setOtpSection","fileUpload","setFileUpload","uploadDet","setUploadDet","showSteps","setShowSteps","validationErr","setValidationErr","BaseMetals","clientTyp","Bullion","Energy","AgriCommodities","comSegments","setComSegments","checkbox1","checkbox2","checkbox3","tcnAcceptval","setTcnAcceptval","getSegmentValidationDetails","proceedNext","dpHolding","getSegNames","SubmitSR","selectedSegments","seg_slab","slabDet","j","segement","segementName","slabName","comSegs","segmentcommodities","allComTypes","comTyp","allComTyps","demat_holding","client_type","ClientType","income_proof","segment_name","file_name","base64_data","setParLoader","getCommodities","commodities","mess","segNames","selectedSegNames","newSegnames","tempArr","checkSegmentEnabled","getBrokerageSlabDetails","segments","segmentsList","validateDetSegRes","kraStatus","KRAStatus","nameMatch","dormant","Dormant","eblpoa","EBLPOA","eqSeg","EQSeg","clientTypes","mcxLst","ncdexLst","segmentList","lst","segName","validationStatus","validationRemarks","validationRemark","validation_key","margin","acStatus","future","showDragUploadSec","accTypes","AccounTypeRadio","setAccType","setAccountType","onlyTrading","reasons","DpTradingOptions","dpOptions","selectedDp","setSelectedDp","setReason","jointHolderErrorMsg","transferTypes","checks","mobileOtp","emailOtp","reasonText","successMsg","HoldingValue","OpenPosition_EQ_FO_CDS","ValueOfStockLying_Coll_Hold_AccEBL","TradingLedgeBbalance","MFSSOpenOrder","MF_SIP","EQTradingStatus","CCTradingStatus","DematAccountStatus","ArbitrationStatus","PMS_Custodian_Acc","FundingAccount_NBFC","AccountClosure","setFileDetails","existingAccClosureSR","setExistingAccClosureSR","setReasonText","selecteddpDetails","setSelecteddpDetails","validationStr","setValidationStr","cmr","sign","setDpOptions","dpDetails","setDpDetails","setJointHolderErrorMsg","transferType","setTransferType","contentType","setContentType","showOtp","setShowOtp","invalidTime","setInvalidTime","DPType","setDPType","boId","setBoId","checkExistingAccClosureSR","Linked_Demat_Accounts","selectedDpElement","BOID","DPHolderType","payOutDefault","dpData","selectedDpVal","selDpDet","selAccType","PANNo","trdUpd","dpUpd","ToEmailList","MobileList","H1_EmailId","H1_Mobile","valData","ValidationRemarks","validation_message","rightDiv","rightSideDiv","setDpDetailsOptions","dematDet","docType","formData","formValidation","addr1","DP_Correspondence_Address","Addr1","addr2","Addr2","addr3","Addr3","addr4","Addr4","State","pin","Pincode","CState","PinCode","mobToken","emailToken","attachments","validationReport","closeRsn","closureType","assignedTeamCode","assignedTeamName","callTypId","subTypId","coLoginId","COLoginId","eqLoginId","EQLoginId","clntTyp","Client_Type","targetBoId","submitReq","srDropDown","_validationErr","AccountCode","rows","cols","sampleSignature","cType","modalData","addressType","TotLines","addressFormErrorObj","addressLine1","addressLine2","addressLine3","addressLine4","area","AddressModificationForm","errorString","areaOptions","setAreaOptions","pincodeEnabled","setPincodeEnabled","dropDownlownValue","setDropDownValueChanged","showPincodeErrorModel","setShowPincodeErrorModel","frontDocument","setFrontDocument","backDocument","setBackDocument","addressObj","addessType","setAddressObj","areas","getAreaDetails","isEmptyObject","isSecondFileDetails","fileName2","fileData2","hasFormErr","handleChangeAddressErrors","secondAddress","areaResp","getFullAddressDetails","payloadObj","pinCode","fullAddress","disabledButton","hasErr","handleChangeAddress","stateStr","textHeadName","AddressFormat","isDigiLocker","photoDetails","pdfXMLResp","AddressModification","parentDetails","invAddress","consentName","soad","digie","prefilledBase64","setPrefilledBase64","setQCStatus","existingAddressSR","setExistingAddressSR","existingPermanentAddress","setExistingPermanentAddress","existingCorrspondenceAddress","setExistingCorrspodenceAddress","setPermanentAddress","corrspondenceAddress","setCorrspondenceAddress","setSameAsPermanent","dgLockerLinkUrl","digiLockerUrl","viewAddress","setViewAddress","showEditAddressOptions","setshowEditAddressOptions","showPrerequisites","setshowPrerequisites","showFinalAddress","setShowFinalAddress","showRevalidateAddress","setShowRevalidateAddress","showWithoutDigilocker","setshowWithoutDigilocker","setDisabledButton","enableEsign","setEnableEsign","enableDigilocker","setEnableDigilocker","setSerReqId","areaCOOptions","setCOAreaOptions","setCheckAutoQcFlag","userConsent","setUserConsent","sourceAddress","setSourceAddress","ViewAddressSame","setViewAddressSame","dpType","setDpType","showPrerequisiteLink","setShowPrerequisiteLink","addrType","setAddrType","getChildSr","getDemat","addressFormatObj","getAddressDetails","aadharName","autoQC","getExistingOldAddress","checkExistingAddressSR","personalDet","DpTyp","clearLocalStorage","getAddressObj","resultSameAsPermant","corresAreaResp","addressDetails","DP_Type","FullAcName","PermanentAddress","CorrespondenceAddress","getFormattedString","replaceAll","address_line_1","AddressLine1","address_line_2","AddressLine2","address_line_3","AddressLine3","address_line_4","AddressLine4","Country","mergeDocuments","getFinalAddressLines","finalAddressObj","finalAddressLineforPermanent1","finalAddressLineforPermanent2","finalAddressLineforPermanent3","finalAddressLineforPermanent4","getAttachment","finalAddressLineforCA1","finalAddressLineforCA2","finalAddressLineforCA3","finalAddressLineforCA4","autoQc","finalAddress","autoQC2","finalLineAddressObj","parentId","requestObj","ParentId","Corpaddress_line_1","Corpaddress_line_2","Coraddress_line_3","Coraddress_line_4","Corscity","Corsstate","Corspincode","OldPeraddress_line_1","OldPeraddress_line_2","OldPeraddress_line_3","OldPeraddress_line_4","OldCorpaddress_line_1","OldCorpaddress_line_2","OldCorpaddress_line_3","OldCorpaddress_line_4","OldPerpincode","OldPercity","OldPerstate","OldCorscity","OldCorsstate","OldCorspincode","childSR","unshift","getAddressString","addressStr","getDigiLockerUrl","reDirectTime","authKey","Link","imgSrc2","digiLocker_img","BankUpload","fileDet","pointerEvents","newBankDet","setConsent","BankIfscpop","ifscPop","setIfscPop","finalPopIfsc","setFinalPopIfsc","listOfIfsc","setlistOfIfsc","branch","ifscBankForm","setifscBankForm","bankCity","setBankDetails","selectedBankList","setSelectedBankList","getBankList","bankList","banknames","onchange","bankcities","bankcity","list_of_city","bankbranches","list_of_branch","ifsccode","searchIfsc","selectedIfsc","onsearch","updateBankDetails","Bank","reAcc","primaryAcc","bankForm","setBankForm","tempBank","setTempBank","addBank","setAddBank","accNoError","reAccError","ifscError","duplicBankErr","documentUpload","setDocumentUpload","existingBankDet","setExistingBankDet","setFileDet","existingBankSR","setExistingBankSR","setAutoQC","checkAutoQcFlag","micrArr","setmicrArr","micrList","setMicrList","pennyResponse","setPennyResponse","primaryBankModified","setPrimaryBankModified","defaultbankMsg","setDefaultBankMsg","editExisting","setEditExisting","editBankNo","setEditBankNo","disablePrimaryCheckbox","setDisablePrimaryCheckbox","getEditBankDet","hasFundingBank","oldDefBankVal","DefaultBank","FundingBank","checkExistingBankSR","onSetExistingBank","checkIfHasMatchAndDef","hasMatch","BankAccountNumber","IFSC_Code","MICR_Code","ReEnterBankAccountNumber","bank_modified","default_account_flag","existingBankDetModified","dataModified","isPrimBnkNotModif","parentLoader","defaultBankValidation","noDefaultBank","editDatRes","bankAccountChangeDetails","new_bank_details","account_number","re_enter_account_number","ifsc_Code","BankName","BankCity","bank_city","BankBranch","bank_branch","BankAccType","current_account_savings_account","ReceivedProof","received_proof","newBankRes","patchExistingBankForm","getBankIdentifyChanges","getExistingBankDetails","bankDet","inputChangeIfsc","ifscDetails","ecoIBeatsBank","setIfsc","statuscode","ValidationStatus","statusmessage","isPennyDropSuccess","source_system","pennyDrop","checkObj","score","account_status","prefilled","submitSR","PennyResponse","fileDetail","banks","RecievedProof","NewBankDetails","penny_drop","bank_IdentifyChanges","serviceReqList","createChildSr","submitDetails","penny","VerficationStage","esignButton","setEsignButton","setChildSrList","parentSr","setParentSr","StatusList","esign","EsignUrl","prefilledEsign","pdf","IncomeDeclaration","existingIncomeSR","setExistingIncomeSR","existingIncomeDetail","setExistingIncome","newIncomeDetails","setNewIncomeDetails","newIncome","setNewIncome","newIncomeRange","setNewIncomeRange","netWorthError","setNetworthErr","netWorthErrorColor","setNetWorthErrorColor","netWorth","setNetworthValue","newtWorthBoolean","setNewworthBoolean","newtWorthBoolean1","setNewworthBoolean1","setDpId","incomeDeclarationApiError","DisplayItem","income_range","net_worth_value","gross_annual_income_range_code","setNetworth","checkExistingIncomeSR","getExistingIncomeDeclaration","getNewIncomeRange","gross_annual_income_date","annual_income_range","networth_date","networth","setIncomeRange","ProfileForm","parentSrDetails","fatcaB","setFatcaB","emailB","setEmailB","incomeB","setIncomeB","fatca","income","emailMobRef","incomeDRef","fatcaURef","parentCall","incomeDeclare","fataca","fatcareqObj","emailMobreqObj","inDeclreqObj","fatcareq","emailMobObj","funcData","payMethod","AccountPayment","upiDetails","upiHdlInfo","bankUpiDetails","setBankUpiDetails","payOption","setPayOption","app","isMmrdm","payModeDetails","setPaymentModeDetails","upiError","setStatus","memorandumId","memorandumDetails","setMemorandumDetails","hover","setHover","showBankListed","paymentStatus","bankstatus","accReactParentDetails","ckycDet","accountApiError","getpaymentDetails","createSRPayment","npa_outstanding","NetNPA_Outstanding","memorandum_outstanding","NetMemorandum_Outstanding","total_outstanding","reqMemorandum","personaldetails","queryPramas","resPayment","bankDetailsList","api","autoSelectBank","selectedBankPayMode","bankObj","payObj","submitPayment","upiObj","data-tooltip","primaryUpi","checkHandleInfo","selectHandle","handlename","finalHandle","handleLimit","handlelimit","reqRm","contactRm","flow","Stage","AccReactivateCont","nextStage","nextFlow","currentFlow","stage","currentStage","accReactSrList","addressSR","setCurrentStage","getchildSrId","f","getCKYCId","CurrentForm","payStatus","payStatus1","userIdDet","consentFlow","setFlow","profileList","addressIndex","bankIndex","StaticPopup","ShowPopup","isBlocked","optionsForSingleHolder","optionsForNonInd","optIndMissDp","optIndJointHold","optIndOutsideDp","optNRI","msgForBlockSRByCategory","NRI","totalStage","deviceType","SRLayout","incomeDropdown","compDet","showFinalPopup","setShowFinalPopup","poaFlagLoader","setPOAFlagLoader","setPopupData","srDropdown","setSrDropdown","showModel","setEnableSubmit","setShowFooter","rightSideSec","setRightSideSec","accountCategory","setAccountCategory","setParentLoader","SROptions","setSROptions","stepsPopup","setStepsPopup","initalValueSet","setCkycOption","setOptForNonImpersUser","clientCategoryRes","AccountCategory","check_val","overflow","blockSR","getStepsHeader","getStepsContent","selVal","redirectToAngularSites","acntCategory","PaymentResponse","TYPE","fieldName","Titles","applicantRelationships","NOOFNOMINEE","identificationOptions","ValidationFields","identityProofOptions","NOMINEE","firstName","middleName","lastName","minor","guardian","birthdate","nomPer","nomRel","aadhar","bankAcc","idTyp","areaErrorString","NOMINEEERROR","guarName","sameName","AREAOPTIONSTATUS","ageCalculator","birth","ageInDays","getNestedValue","nominee","u","IdentifDet","selectedProof","setSelectedProof","identity","identificationText","photoDocs","signDocs","proofOfIdentityDocs","backProofOfIdentityDocs","identificationDetails","setIdentificationDetails","addhar","getMaskBase64Data","needMaskObj","maskBase64ForFront","fileArray","docCat","getAutoQcDetail","image1Resp","image2Resp","fileSplitArray","setNomineeErr","nomineeErr","heandelIdentificationValidation","checkOnlyErr","identit","userPan","dpid","updateIdentity","getIdentText","setViewSampleImage","Address","setArea","handelPincode","addressErr","NomineeGuardianForm","setType","guard","setNominee","setIdentity","showOptional","setShowOptional","viewSampleImage","t","dob","deleteGuard","age","sameas","nom","totalNominee","updateNominee","validationFields","err1","reduceRight","totalPercent","prevPer","curPer","z","clientName","guardName","sameNomName","nomName","GName","nomineeNames","duplicateIndexes","hasDuplicate","firstIndex","showMonthDropdown","showYearDropdown","dropdownMode","minDate","isGuardianAvailable","setSameGuardian","sameGuardian","AccounTypeSection","ShowDetails","selectedGuardian","setSelectedGuardian","guardianOptions","setGuardianOptions","guardianName","setGuardianName","GuardianData","guardianOpt","updateGuardianData","guardiansData","allNominee","setTotalNominee","DpTrading","AddNewNominee","setIsGuardianAvailable","setGuardianData","updateShowDetails","setUpdateShowDetails","setUserPan","nomineeRef","guardianRef","nomineeDet","DematDetails","Demat_Account_Number","Demat_HolderType","TradingDetails","DematTagging","guardpresent","expetedGurdian","nomineeVal","guardVal","accValidation","DefaultDemat","nomTyp","minorClient","Nominee_Details","Minor","nominees","subStatus","firstHolderSignature","n","per","trunc","OptOut","updateObj","trdOpt","dpOpt","dematAccNo","IdentificationForNominee","setHasErr","Replication","nominOptions","setNominOptions","selectedNominee","setSelectedNominee","dpToReplicate","setDpToReplicate","oldNominees","setoldNominees","editNomin","nominDetOptions","tradDet","TradingTagging","setNominees","downloadAttachment","fileExtension","TradingNomimeeForm","isMinor","dpDet","totNominees","nominRel","NomineeRelationShip","FirstName","MiddleName","LastName","Title","Phone1","BirthDate","NomineePercentage","Guardian_Details","guardDet","SrNo","guardRel","replicate","optOut","Nomination","nominType","setNominType","existingNominationSR","setExistingNominationSR","setNomineeDetails","tradingUpd","dematUpd","nomineeForm","setNomineeForm","setReqObj","checkExistingNominSR","isNomineePresent","showErrorPopup","Ddpi","preFilledForm","ddpiId","setDdpiId","ddpiDetails","setDdpiDetails","ddpiDetailsErrStatus","setDdpiDetailsErrStatus","ddpiDetailsErrMessage","setDdpiDetailsErrMessage","singleDdpiId","setsingleDdpiId","singleDdpiStatus","setSingleDdpiStatus","validationErrStatus","setValidationErrStatus","ddpiIdOptions","ddpiFlags","fetchDdpID","setAddressText","repeat","jsonResponse","DDPIDetails","ddpidData","openDDPIErrorPopup","ddpid","validationRes","validatedJson","finalErrMsg","selectedDdpiInfo","edit_id","ddpiFlag","smtfOptions","smtfMsg","mailId","Smtf","enableSMTF","setEnableSMTF","enableBtnSubmit","setEnableBtnSubmit","impersonateUser","setImporsonateUser","selectedSMTFOption","setSelectedSMTFOption","invalidTimeMsg","setInvalidTimeMsg","enableOtpSection","setEnableOtpSection","existingOption","setExistingOption","PAN","EmailID","IsSMTF","ExistingOption","TradingStatus","smtfValidationRes","setSMTFValidationRes","tradingDealerEmailField","smtfOptionsList","valResponse","openSMTFErrorPopup","reqSubStatus","stmfPref","editId","segmentDeactivationMsg","openOrder","openSIP","openPosition","allowedSegmentsEQ","allowedSegmentsCOM","allowedSegmentsComEq","BSEMFSS","eqDerivatives","curDerivatives","SegmentDeactivation","selectSegment","activeSegDetails","setActiveSegDetails","BSEMFSS_SIP","NSEFO_OP","BSEFO_OP","NSECDS_OP","BSECDS_OP","COM_OP","NSEFO_OO","BSEFO_OO","NSECDS_OO","BSECDS_OO","BSEMFSS_OO","COM_OO","segmentValidation","setSegmentValidation","getSegmentDetails","checkSegmentValidation","validateComOO","CommObResult","CommOrderbookRes","validateComOP","CommPositionsRes","valiadteMfOO","MfObResult","MfOrderbookRes","valiadteMfOP","MfSipObResult","MfSipOrderbookRes","validateCurDerOO","EqObResult","scriptTyp","EqOrderbookRes","asTyp","validateCurDerOP","EqPositnResult","EqPositionsRes","pstns","validateEqDerOO","validateEqDerOP","validateActiveSegments","activeSegmentNames","segment","validateSegmentRes","allowedSegments","ActiveSegment","segname","selectedSegmnetsReq","segmentdeactivationdetails","paddingLeft","checkSegEnabled","ClientRouting","ShowDocuments","setAuthToken","setAuthKey","setToken","setPanNo","setShowModel","digieFlow","selectedDocumentResp","coresAddress","coresPincode","permanentCity","tempAddr","pdfDetails","ftpAadharFileName","adharAccess_img","redirectToPage","REdRouter","showToast","setShowToast","currentpage","setCurrentpage","basename","App","Boolean","hostname","ReactDOM","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.3a93f0e2.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"overlay\":\"feedbackForm_overlay__3Zvlr\",\"popup\":\"feedbackForm_popup__oq39d\",\"close_cont\":\"feedbackForm_close_cont__1bx8Z\",\"close\":\"feedbackForm_close__18HkP\",\"heading\":\"feedbackForm_heading__3P1q5\",\"body\":\"feedbackForm_body__2xJc2\",\"row\":\"feedbackForm_row__1vhoi\",\"left_col\":\"feedbackForm_left_col__6snFT\",\"right_col\":\"feedbackForm_right_col__3aWxH\",\"errMsg\":\"feedbackForm_errMsg__3dCi4\",\"dropdown\":\"feedbackForm_dropdown__2qP0D\",\"btn\":\"feedbackForm_btn__3CaDm\",\"down_arrow\":\"feedbackForm_down_arrow__1Fo3w\",\"menu\":\"feedbackForm_menu__iPGNO\",\"open\":\"feedbackForm_open__1zdpd\",\"comments\":\"feedbackForm_comments__1Iiw8\",\"empty_file\":\"feedbackForm_empty_file__3xOgY\",\"text\":\"feedbackForm_text__2l9Nj\",\"file_upload\":\"feedbackForm_file_upload__29q4T\",\"file_block\":\"feedbackForm_file_block__33d-x\",\"image_cont\":\"feedbackForm_image_cont__1xTix\",\"icons\":\"feedbackForm_icons__28gHB\",\"new_file\":\"feedbackForm_new_file__3P3yk\",\"imgbtn_grp\":\"feedbackForm_imgbtn_grp__1-SBv\",\"excel_icon\":\"feedbackForm_excel_icon__138S8\",\"cross\":\"feedbackForm_cross__3lrm3\",\"first\":\"feedbackForm_first__1qVJ2\",\"second\":\"feedbackForm_second__1lEPB\",\"file_msg\":\"feedbackForm_file_msg__2Nknx\",\"prw\":\"feedbackForm_prw__1O3l4\",\"prw_parent\":\"feedbackForm_prw_parent__3oBA9\",\"ed_btn\":\"feedbackForm_ed_btn__1R4r3\",\"disabled\":\"feedbackForm_disabled__2hFIB\",\"btns\":\"feedbackForm_btns__3RAok\",\"confirm\":\"feedbackForm_confirm__3R3WB\",\"tick\":\"feedbackForm_tick__TY0oq\",\"head\":\"feedbackForm_head__uwW3H\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"lead_form\":\"leadForm_lead_form__QjVHr\",\"white\":\"leadForm_white__2ZUmA\",\"field\":\"leadForm_field__32xbW\",\"label\":\"leadForm_label__2BDps\",\"country_cd\":\"leadForm_country_cd__2g-nS\",\"radio\":\"leadForm_radio__3TpnB\",\"checkmark\":\"leadForm_checkmark__35K5B\",\"display\":\"leadForm_display__17qFN\",\"grey\":\"leadForm_grey__VZIpQ\",\"inp_grp\":\"leadForm_inp_grp__UkWud\",\"field_group\":\"leadForm_field_group__QH4dl\",\"invalid\":\"leadForm_invalid__v95ha\",\"errMsg\":\"leadForm_errMsg__K6E2M\",\"submit\":\"leadForm_submit__2RbtA\"};","let debounceTimer: NodeJS.Timer;\nexport default function debounce(func: Function, delay: number) {\n\treturn function (this: any) {\n\t\tlet context = this;\n\t\tlet args = arguments;\n\n\t\tdebounceTimer && clearTimeout(debounceTimer);\n\n\t\tdebounceTimer = global.setTimeout(() => {\n\t\t\tfunc.apply(context, args);\n\t\t}, delay);\n\n\t\treturn debounceTimer;\n\t};\n}\n","import JWT from \"jwt-decode\";\nimport { jwtToken } from \"../types/genericTypes\";\nimport urlConfig from \"../../config/domain\";\ninterface sType {\n\t[sType: string]: any; //indexer\n}\nlet storage: sType;\n//stores all types of browser storage data onto these local variable\nstorage = {\n\tsession: window.sessionStorage,\n\tlocal: window.localStorage,\n\tcookie: document.cookie,\n\tappInfo: JWT(urlConfig.appidkey)\n};\n//helps in fetching key based values which are stored in storage local\nconst bStrg = (key: string) => {\n\treturn storage[key];\n};\n//help is creating new storage other than built in browser storage\nexport const setbStrg = (key: string, val: any) => {\n\tstorage[key] = val;\n};\n//provides the parsed JWT token info on access\nexport const parsedToken = (): jwtToken | null => {\n\tlet parToken: jwtToken | null = bStrg(\"local\").jwt_token ? JWT(bStrg(\"local\").jwt_token) : null;\n\treturn parToken;\n};\nparsedToken();\n\nexport default bStrg;\n","import { Idevice } from \"../types/device\";\n\nconst DeviceContext = (): Idevice => {\n\tlet device: Idevice = {};\n\tconst updateDevice = () => {\n\t\tdevice = {\n\t\t\tisMobile: document.body.offsetWidth <= 767 ? true : false,\n\t\t\tisTablet: document.body.offsetWidth > 767 && document.body.offsetWidth <= 1024 ? true : false,\n\t\t\tisDesktop: document.body.offsetWidth > 1024 ? true : false\n\t\t};\n\t};\n\tupdateDevice();\n\n\treturn device;\n};\n\nexport default DeviceContext;\n","import { IDomain } from \"../components/types/genericTypes\";\nconst subDomainUrl: Array = process.env.PUBLIC_URL.split(\"/\");\n\nconst dev: IDomain = {\n root: \"http://localhost:3001/\",\n web_mw: \"https://nwmwuat.nuvamawealth.com/EWMTrade/api/\",\n web_reports: \"https://nwmwuat.nuvamawealth.com/EWReports/api/\",\n moui: \"https://nmwuat1.nuvamawealth.com/edelms-accounts-uat/\",\n moui_penny_drop: \"https://nmwuat1.nuvamawealth.com/edelmw-login-uat/login/service/request/\",\n streamUrl: \"wss://ewstream.edelweiss.in/\",\n jmw: \"https://nmwuat1.nuvamawealth.com/\",\n jmw_eq: \"edelmw-eq-uat/\",\n jmw_eq_eq: \"edelmw-eq-uat/eq/\",\n jmw_comm: \"edelmw-comm-uat/comm/\",\n jmw_mf: \"edelmw-mf-uat/mf/\",\n jmw_sr: \"edelmw-sr-uat/servicerequest/\",\n jmw_nse: \"edelmw-nse-uat/nse/\",\n jmw_content: \"edelmw-content-uat/content/\",\n jmw_login: \"edelmw-login-uat/login/\",\n tradeService: \"trade/\",\n edelService: \"edel/\",\n client_Id: \"E517209A\",\n reDirectUrl: \"https://vamauat.nuvamawealth.com/app/showDocuments\",\n whatsapp_consent:\n \"https://nmwuat1.nuvamawealth.com/communication-uat/whatsapp/consent\",\n appId: \"9e5481c0130b8bba8190e52bdc5038ba\",\n appIdKey:\n \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHAiOjEsImZmIjoiVyIsImJkIjoid2ViLXBjIiwibmJmIjoxNTkwOTg1Njg1LCJzcmMiOiJlbXRtdyIsImF2IjoiMS4wLjAuNCIsImFwcGlkIjoiNjYzMDUxY2ZiYWM3ZDY5OWExYzU5Yjk2MDQ4YjUwZTciLCJpc3MiOiJlbXQiLCJleHAiOjE2MjI1MjE5ODUsImlhdCI6MTU5MDk4NTk4NX0.6jabTWX6dFXyX4RNAcD1kggLZIyv33Xeauxe00Z4-38\",\n rootUrl: \"http://localhost:5147/\",\n};\n\nconst uat: IDomain = {\n root: \"https://vamauat.nuvamawealth.com/gamma/\",\n web_mw: \"https://nwmwuat.nuvamawealth.com/EWMTrade/api/\",\n web_reports: \"https://nwmwuat.nuvamawealth.com/EWReports/api/\",\n moui: \"https://nmwuat1.nuvamawealth.com/edelms-accounts-uat/\",\n moui_penny_drop: \"https://nmwuat1.nuvamawealth.com/edelmw-login-uat/login/service/request/\",\n streamUrl: \"wss://ewstream.edelweiss.in/\",\n jmw: \"https://nmwuat1.nuvamawealth.com/\",\n jmw_eq: \"edelmw-eq-uat/\",\n jmw_eq_eq: \"edelmw-eq-uat/eq/\",\n jmw_comm: \"edelmw-comm-uat/comm/\",\n jmw_mf: \"edelmw-mf-uat/mf/\",\n jmw_sr: \"edelmw-sr-uat/servicerequest/\",\n jmw_nse: \"edelmw-nse-uat/nse/\",\n jmw_content: \"edelmw-content-uat/content/\",\n jmw_login: \"edelmw-login-uat/login/\",\n tradeService: \"trade/\",\n edelService: \"edel/\",\n appId: \"9e5481c0130b8bba8190e52bdc5038ba\",\n client_Id: \"E517209A\",\n reDirectUrl: \"https://vamauat.nuvamawealth.com/gamma/app/showDocuments\",\n whatsapp_consent:\n \"https://nmwuat1.nuvamawealth.com/communication-uat/whatsapp/consent\",\n appIdKey:\n \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHAiOjEsImZmIjoiVyIsImJkIjoid2ViLXBjIiwibmJmIjoxNTkwOTg1Njg1LCJzcmMiOiJlbXRtdyIsImF2IjoiMS4wLjAuNCIsImFwcGlkIjoiNjYzMDUxY2ZiYWM3ZDY5OWExYzU5Yjk2MDQ4YjUwZTciLCJpc3MiOiJlbXQiLCJleHAiOjE2MjI1MjE5ODUsImlhdCI6MTU5MDk4NTk4NX0.6jabTWX6dFXyX4RNAcD1kggLZIyv33Xeauxe00Z4-38\",\n rootUrl:\n \"https://vamauat.nuvamawealth.com/\" +\n (subDomainUrl.length > 2 ? subDomainUrl[1] + \"/\" : \"\"),\n};\n\nconst cug: IDomain = {\n root: \"https://vamacug.nuvamawealth.com/\",\n web_mw: \"https://nwmwcug.nuvamawealth.com/api/\",\n web_reports: \"https://nwmwcug.nuvamawealth.com/ewreportscug/api/\",\n moui: \"https://nmwcug.nuvamawealth.com/edelmw-ao-cug/\",\n moui_penny_drop: \"https://nmwcug.nuvamawealth.com/edelmw-login-cug/login/service/request/\",\n streamUrl: \"wss://nwst.nuvamawealth.com/\",\n jmw: \"https://nmwcug.nuvamawealth.com/\",\n jmw_eq: \"edelmw-eq-cug/\",\n jmw_eq_eq: \"edelmw-eq-cug/eq/\",\n jmw_comm: \"edelmw-comm-cug/comm/\",\n jmw_mf: \"edelmw-mf-cug/mf/\",\n jmw_sr: \"edelmw-sr-cug/servicerequest/\",\n jmw_nse: \"edelmw-nse-cug/nse/\",\n jmw_content: \"edelmw-content-cug/content/\",\n jmw_login: \"edelmw-login-cug/login/\",\n tradeService: \"trade-services/\",\n edelService: \"edel-services/\",\n appId: \"4fe68b7536784e3407c3ecf19be7c4ad\",\n client_Id: \"FD8066A1\",\n reDirectUrl: \"https://vamacug.nuvamawealth.com/app/showDocuments\",\n whatsapp_consent: \"https://nmwcug.nuvamawealth.com/communication/whatsapp/consent\",\n appIdKey:\n \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHAiOjEsImZmIjoiVyIsImJkIjoid2ViLXBjIiwibmJmIjoxNTc5MjQxODMyLCJzcmMiOiJlbXRtdyIsImF2IjoiMS4wLjAuNCIsImFwcGlkIjoiNGZlNjhiNzUzNjc4NGUzNDA3YzNlY2YxOWJlN2M0YWQiLCJpc3MiOiJlbXQiLCJleHAiOjE2MTA3NzgxMzIsImlhdCI6MTU3OTI0MjEzMn0.IR-PKf1Jjr69bsERFmMeuZrZ2RafBDiTGgKA6Ygofdo\",\n rootUrl: \"https://vamacug.nuvamawealth.com/\",\n};\n\nconst prod: IDomain = {\n root: \"https://www.nuvamawealth.com/\",\n web_mw: \"https://nwmw.nuvamawealth.com/api/\",\n web_reports: \"https://nwmw.nuvamawealth.com/ewreports/api/\",\n moui: \"https://nw.nuvamawealth.com/edelmw-ao/\",\n moui_penny_drop: \"https://nw.nuvamawealth.com/edelmw-login/login/service/request/\",\n streamUrl: \"wss://nwst.nuvamawealth.com/\",\n jmw: \"https://nw.nuvamawealth.com/\",\n jmw_eq: \"edelmw-eq/\",\n jmw_eq_eq: \"edelmw-eq/eq/\",\n jmw_comm: \"edelmw-comm/comm/\",\n jmw_mf: \"edelmw-mf/mf/\",\n jmw_sr: \"edelmw-sr/servicerequest/\",\n jmw_nse: \"edelmw-nse/nse/\",\n jmw_content: \"edelmw-content/content/\",\n jmw_login: \"edelmw-login/login/\",\n tradeService: \"trade-services/\",\n edelService: \"edel-services/\",\n appId: \"4fe68b7536784e3407c3ecf19be7c4ad\",\n client_Id: \"FD8066A1\",\n reDirectUrl: \"https://www.nuvamawealth.com/app/showDocuments\",\n whatsapp_consent: \"https://nw.nuvamawealth.com/communication/whatsapp/consent\",\n appIdKey:\n \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHAiOjEsImZmIjoiVyIsImJkIjoid2ViLXBjIiwibmJmIjoxNTc5MjQxODMyLCJzcmMiOiJlbXRtdyIsImF2IjoiMS4wLjAuNCIsImFwcGlkIjoiNGZlNjhiNzUzNjc4NGUzNDA3YzNlY2YxOWJlN2M0YWQiLCJpc3MiOiJlbXQiLCJleHAiOjE2MTA3NzgxMzIsImlhdCI6MTU3OTI0MjEzMn0.IR-PKf1Jjr69bsERFmMeuZrZ2RafBDiTGgKA6Ygofdo\",\n rootUrl:\n \"https://www.nuvamawealth.com/\" +\n (subDomainUrl.length > 2 ? subDomainUrl[1] + \"/\" : \"\"),\n};\n\nexport const config: IDomain =\n process.env.REACT_APP_ENV === \"production\" ? prod : process.env.REACT_APP_ENV === \"uat\" ? uat : dev;\nconst configURL = {\n market: {\n status: config.web_mw + \"Market/Process/GetMarketStatus/\",\n root: config.web_mw + \"Market/Process/\",\n market: config.web_mw + \"Market/\",\n },\nusd:{\n status: config.web_mw + \"Market/MarketsModule/overview\",\n},\nbanknifty:{\n status: config.web_mw + \"Market/MarketsModule/MarketsIndices\",\n},\n // whatsapp_consent: config.jmw + \"frontend/communication-uat/whatsapp/consent\",\n getNomineeDetails: config.jmw + config.jmw_login + \"sr/getnomineedetails\",\n createServiceReqNomin: config.jmw + config.jmw_login + \"sr/nominate\",\n downloadPrefilledNominatinForm: config.jmw + config.jmw_login + \"sr/nominate/prefilled-pdf/\",\n feedback: config.web_mw + \"feedback/\",\n merceApiUrl: config.web_mw + \"gba/\",\n streamUrl: config.streamUrl,\n root: config.root,\n appidkey: config.appIdKey,\n appid: config.appId,\n web_mw: config.web_mw,\n web_reports: config.web_reports,\n profile: {\n personalDetails: config.web_mw + \"Profile/GetPersonalDetails\",\n personalDetailsCOM: config.web_mw + \"Profile/GetComPersonalDetails\",\n ClientProfilePicture: config.web_mw + \"Profile/GetClientProfilePicture\",\n ServicingDetails: config.web_mw + \"Profile/GetServicingDetails\",\n ServicingDetailsCOM: config.web_mw + \"Profile/GetComServicingDetails\",\n clientDetails: config.web_mw + \"Profile/ClientDetails/\",\n POADownloadDetails: config.web_mw + \"Profile/GetPOAAdditionFile\",\n POAFlagDetails: config.web_mw + \"Profile/GetValidateDetailsSegment\",\n CreateServiceRequest: config.web_mw + \"Profile/CreateServiceRequestDetails\",\n checkValidation: config.web_mw + \"Profile/ServiceClientValidation\",\n getDPID: config.web_mw + \"Profile/GetDPIDsAccount\",\n ExistingIncomeRange: config.web_mw + \"Profile/GetExistingIncomeRange\",\n NewIncomeRange: config.web_mw + \"Profile/GetNewIncomeRange\",\n DepositoryDetail: config.web_mw + \"Profile/GetDepositoryDetails\",\n ServiceClientValidation: config.web_mw + \"Profile/ServiceClientValidation\",\n ServiceSchemeValidation: config.web_mw + \"Profile/ServiceSchemeValidation\",\n GetMessageDetails: config.web_mw + \"Profile/GetMyMessageDetails\",\n GetMessageDetailsCOM: config.web_mw + \"Profile/GetComMessageDetails\",\n GetServiceRequest: config.web_mw + \"Profile/GetServiceDetails/\",\n GetServiceRequestCOM: config.web_mw + \"Profile/GetComServiceDetails\",\n bankDetails: config.web_mw + \"Profile/GetBankDetails\",\n BrokerageSlabDetails: config.web_mw + \"Profile/GetBrokerageSlab\",\n GetCKYCValidation: config.web_mw + \"Profile/GetCKYCValidation\",\n adharVerify: config.web_mw + \"Profile/checkPanAddharLink\",\n FatcaValidation: config.web_mw + \"Profile/GetFatcaValidation\",\n CountryDetail: config.web_mw + \"Profile/GetCountryDetails\",\n DematAcctValidation: config.web_mw + \"profile/ServiceDematAcctValidation/\",\n FamilyRelationshipList: config.web_mw + \"Profile/GetFamilyRelationshipListDetails\",\n FamilyDeclarationList: config.web_mw + \"Profile/GetFamilyDeclarationList\",\n GetPreFilledFormPDF: config.web_mw + \"Profile/GetPreFilledFormPDF\",\n GetEsignUrl: config.web_mw + \"Profile/GetEsignUrl\",\n GetEsignUrlV2: config.web_mw + \"Profile/EsignPiChainUrl\",\n GetEsignStatus: config.web_mw + \"Profile/EsignPiChainStatus\",\n DownloadEsignDocument: config.web_mw + \"Profile/DownloadEsignDocument\",\n DownloadEsignDocumentV2: config.web_mw + \"Profile/EsignPiChainDownload\",\n GetEquityReactivationClientValidation: config.web_mw + \"Profile/GetEquityReactivationClientValidation\",\n CreateChildServiceRequestDetails: config.web_mw + \"Profile/CreateChildServiceRequestDetails\",\n GetAllNewExistingSRDetails: config.web_mw + \"Profile/GetAllNewExistingSRDetails\",\n getMergeDocument: config.web_mw + \"Profile/MargeMultipleImagestoPDF\",\n getSelectedDocument: config.web_reports + \"common/1.2/GetSelectedDocumentXML\",\n createSRDocumentUpload: config.web_mw + \"Profile/createSRDocumentUpload\",\n fetchDigiLockerUrl: config.web_mw + \"Profile/GetDigilockerUrl\",\n fetchDigiLockerDetails: config.web_mw + \"Profile/GetDigilockerDetails\",\n getMemorandumDetails: config.web_mw + \"Profile/GetMemorandumDetails\",\n createChildSR: config.web_mw + \"Profile/CreateChildServiceRequestDetails\",\n updatAccReactStatus: config.web_mw + \"Profile/UpdateAccountReactivationStatus\",\n getDefaultBankValidationDetails: config.web_mw + \"Profile/GetDefaultBankValidationDetails/\",\n GetEquityDormantClientCategoryValidation: config.web_mw + \"Profile/GetEquityDormantClientCategoryValidation\",\n GetIPVOTP : config.web_mw + \"Profile/GetIPVOTP\",\n },\n sr: {\n getDpDetails: config.jmw + config.jmw_login + \"sr/dpdetails\",\n accClosureValidate: config.jmw + config.jmw_login + \"sr/account/validate\",\n otpSend: config.jmw + config.jmw_sr + \"sr/send/otp\",\n otpValidate: config.jmw + config.jmw_sr + \"sr/validate/otp\",\n accClosureSR: config.jmw + config.jmw_login + \"sr/account/close\",\n esignUrlJMW: config.jmw + config.jmw_login + \"sr/esign/url\",\n esignStatusJMW: config.jmw + config.jmw_login + \"sr/esign/status\",\n esignDownloadJMW: config.jmw + config.jmw_login + \"sr/esign/download\",\n getServiceDet: config.jmw + config.jmw_login + \"sr/getservicedetails\",\n getDdpiDetails: config.jmw + config.jmw_login + \"sr/ddpi/details\",\n getDdpiValidation: config.jmw + config.jmw_login + \"sr/ddpi/validate/\",\n createDdpiSR: config.jmw + config.jmw_login + \"sr/ddpi/\",\n ddpiPreFilledFormPDF: config.jmw + config.jmw_login + \"sr/ddpi/prefilled/form\",\n getSMTFValidation: config.jmw + config.jmw_login + \"sr/smtf/validate\",\n createSMTFSR: config.jmw + config.jmw_login + \"sr/smtf\",\n createSegmentDeactivation: config.jmw + config.jmw_sr + \"sr/create-segment-deactivation-sr\",\n validateSegDeactivation: config.jmw + config.jmw_sr + \"sr/validate-segment-deactivation\",\n getSegmentsDetails: config.jmw + config.jmw_sr + \"sr/get-account-segments\",\n BrokerageSlabDetails: config.jmw + config.jmw_sr + \"sr/brokerage-slab\",\n validateSegActivation: config.jmw + config.jmw_sr + \"sr/validate-segment\",\n createSegmentActivation: config.jmw + config.jmw_sr + \"sr/segment-activation\" \n },\n account: {\n GenerateOtp: config.web_mw + \"Account/GenerateOTP\",\n VerifyOtp: config.web_mw + \"Account/ValidateOTP\",\n adharVerify: config.web_mw + \"Profile/checkPanAddharLink\",\n },\n fund: {\n getBankDetails: config.jmw + config.jmw_eq_eq + \"fund/bankdetails/v2\",\n paymentGateway: config.jmw + config.jmw_eq_eq + \"fund/paymentgatewayurl/v1/\",\n },\n GSearch: {\n GetSearchRedirectResult: config.web_reports + \"search/gsa/GetSearchRedirectResult\", //POST\n GSearchSuggestions: config.web_reports + \"search/gsa/suggestions\", //POST\n },\n rootUrl: config.rootUrl,\n smallcaseUrl: \"https://edelweiss.smallcase.com/\",\n orderBook: {\n eq: config.jmw + config.jmw_eq_eq + \"order/book/\",\n eqHistory: config.jmw + config.jmw_eq_eq + \"order/history/\",\n eqSip: config.jmw + config.tradeService + \"EQSIP/EQSIPBook/1.0.0\",\n eqOrderLog: config.jmw + config.jmw_eq_eq + \"order/details/\",\n eqCancelNrmOrd: config.jmw + config.jmw_eq_eq + \"trade/canceltrade/v1/\",\n eqCancelAmoOrd: config.jmw + config.jmw_eq_eq + \"trade/amo/canceltrade/v1/\",\n eqCancelSIPOrd: config.jmw + config.tradeService + \"EQSIP/CancelSIP/1.0.0\",\n eqConvertPos: config.jmw + config.jmw_eq_eq + \"trade/convertposition/v1/\",\n eqtradeBook: config.jmw + config.jmw_eq_eq + \"tradebook/v1\",\n commodity: config.jmw + config.jmw_comm + \"orderbook/\",\n commCancelNrmOrd: config.jmw + config.jmw_comm + \"trade/canceltrade/v1/\",\n commCancelAmoOrd: config.jmw + config.jmw_comm + \"trade/amo/canceltrade/v1/\",\n commOrderLog: config.jmw + config.jmw_comm + \"orderdetails/\",\n commtradeBook: config.jmw + config.jmw_comm + \"tradebook/\",\n commodityHist: config.jmw + config.jmw_comm + \"orderhistory/\",\n commConvertPos: config.jmw + config.jmw_eq_eq + \"trade/convertposition/v1/\",\n mf: config.jmw + config.jmw_mf + \"order/\",\n mfSip: config.jmw + config.jmw_mf + \"order/sip/\",\n mfCancelNrmOrd: config.jmw + config.jmw_mf + \"trade/\",\n mfCancelHoldOrd: config.jmw + config.jmw_mf + \"trade/hold/\",\n ipo: config.jmw + config.jmw_nse + \"ipo/orderstatus\",\n ofs: config.jmw + config.tradeService + \"OFS/OFSOrderBook/1.0.0\",\n ncd: config.jmw + config.tradeService + \"IPO/IPOOrderBook/1.0.0\",\n nfo: config.jmw + config.jmw_mf + \"order/nfo/\",\n ipoCancelOrd: config.jmw + config.jmw_mf + \"ipo/cancel\",\n },\n position: {\n eq: config.jmw + config.jmw_eq_eq + \"positions/net/\",\n eq2: config.jmw + config.jmw_eq_eq + \"positions/net/interop/\",\n commodity: config.jmw + config.jmw_comm + \"positions/ \",\n },\n orderPlacement: {\n quote: config.jmw + config.jmw_content + \"quote/scrip/\",\n holding: config.jmw + config.jmw_eq_eq + \"holdings/relevance/\",\n schemeDetailsMf: config.web_mw + \"dion/SchemeDetails\",\n schemeMf: config.web_mw + \"MutualFund/Scheme/\",\n holdingMf: config.jmw + config.jmw_mf + \"holding/\",\n quoteNfo: config.web_mw + \"dion/GetSchemeDetailsForPurchase/\",\n quoteExtraNfo: config.web_mw + \"ipo/getNFOspecificDetails/\",\n },\n limits: {\n equity: config.jmw + config.tradeService + \"Limits/RMSSubLimits/1.0.0\",\n comm: config.jmw + config.jmw_comm + \"limits/\",\n },\n holding: {\n equityUsable: config.jmw + config.jmw_eq_eq + \"holdings/v1/rmsholdings/\",\n equityUnusable: config.jmw + config.jmw_eq_eq + \"holdings/elssholdings/\",\n equitySmallcase: config.web_mw + \"SmallCase/GetUserInvestment\",\n mf: config.jmw + config.jmw_mf + \"holding/\",\n },\n marginFiles: {\n marginFiles: config.web_mw + \"margintradingfiles/getdata\",\n },\n broking: config.web_mw + \"Broking/\",\n oyo: config.web_mw + \"Oyo/\",\n rmDetails: config.web_mw + \"RMRating/getRMCommonData\",\n general: {\n enumMaster: config.moui + \"eco/get-enum-list\",\n areaDetails: config.moui + \"eco/get-area\",\n fullAddressDetails: config.moui + \"eco/get-fulladdress\",\n distinctBanklist: config.moui + \"eco/get-distinct-bank-list\",\n bankListForIfsc: config.moui + \"eco/get-bank-list-for-ifsc\",\n bankCities: config.moui + \"eco/get-bank-cities\",\n bankBranch: config.moui + \"eco/get-bank-branch\",\n beneficiaryNamePichain: config.moui_penny_drop + \"get-beneficiary-name-pichain\",\n saveBankDetails: config.moui + \"eco/save-bank-details\",\n BankDetails: config.moui + \"eco/get-bank-details\",\n generateAccessToken: config.moui + \"eco/generateAccessToken\",\n getDocListFromDigilocker: config.moui + \"eco/getDocListFromDigilocker\",\n getSelectedDocument: config.moui + \"eco/getSelectedDocument\",\n getExtractCheque: config.moui + \"eco/extractcheque\",\n getExtractaadhaarDetails: config.moui + \"eco/extractaadhaar\",\n getExtractVoterIDDetails: config.moui + \"eco/extractvoterid\",\n getExtractPassportDetails: config.moui + \"eco/extractpassport\",\n getExtractDLDetails: config.moui + \"eco/extractdl\",\n maskAadhaarLDetails: config.moui + \"eco/maskaadhaar\",\n },\n};\n\nconst urlConfig = {\n // Add common config values here\n ...configURL,\n};\n\nexport default urlConfig;","import { EventEmitter } from \"events\";\n\nconst ee = new EventEmitter();\n\nexport default ee;\n","import indexer, { RequireOnlyOne, RequireAtLeastOne } from \"../types/genericTypes\";\nimport LoginService, { getAccData } from \"./login/loginService\";\n\ndeclare let clevertap: ClevertapType;\n\nexport interface ClevertapType {\n\tevent: Array;\n\tprofile: Array;\n\taccount: Array;\n\tonUserLogin: Array;\n\tnotifications: Array;\n\tprivacy: Array>;\n\tgetCleverTapID: () => string;\n}\n\nexport interface ClevertapEvent {\n\t[x: string]: any;\n\tEventName: string;\n}\n\nexport interface ClevertapAccount {\n\tid: string;\n}\n\nexport interface ClevertapUserProfile {\n\tSite: {\n\t\tName?: string;\n\t\tIdentity?: string | number;\n\t\tEmail?: string;\n\t\tPhone?: string;\n\t\tGender?: \"M\" | \"F\";\n\t\tDOB?: Date;\n\t\tAccountType?: string;\n\t\tprofileID?: string;\n\t\t\"MSG-email\"?: boolean;\n\t\t\"MSG-push\"?: boolean;\n\t\t\"MSG-sms\"?: boolean;\n\t\t\"MSG-whatsapp\"?: boolean;\n\t};\n}\n\nexport interface CleverTapNotification {\n\ttitleText: string;\n\tbodyText: string;\n\tokButtonText: string;\n\trejectButtonText: string;\n\tokButtonColor: string;\n\taskAgainTimeInSeconds: number;\n\tserviceWorkerPath: string;\n}\n\nexport interface ClevertapProfile {\n\toptout: boolean;\n\tuseIP: boolean;\n}\n\nexport class ClevertapService {\n\tpushEvent(data: ClevertapEvent) {\n\t\tclevertap.event.push(data.EventName, data);\n\t}\n\n\t// Input: Identity or Email is required. All others are optional\n\tpushOnUserLogin(data: { Site: RequireAtLeastOne }) {\n\t\tclevertap.onUserLogin.push(data);\n\t}\n\n\tpushNotifications(data: CleverTapNotification) {\n\t\tclevertap.notifications.push(data);\n\t}\n\n\tgetCleverTapID() {\n\t\treturn clevertap.getCleverTapID();\n\t}\n\n\tgetIdentity = () => {\n\t\tconst cleverTapObject = { accName: \"\", uniqueId: \"\", accTyp: \"\" };\n\t\tconst decode = LoginService.getAccData();\n\n\t\tlet accCode = \"\";\n\t\tif (decode.accTyp === \"COMEQ\") {\n\t\t\taccCode = decode.prefAccTyp === \"EQ\" ? decode.eqAccID : decode.coAccID;\n\t\t\tcleverTapObject.accName = decode.prefAccTyp === \"EQ\" ? decode.eqAccName : decode.coAccName;\n\t\t\tcleverTapObject.accTyp = decode.prefAccTyp;\n\t\t} else {\n\t\t\taccCode = decode.accTyp === \"EQ\" ? decode.eqAccID : decode.coAccID;\n\t\t\tcleverTapObject.accName = decode.accTyp === \"EQ\" ? decode.eqAccName : decode.coAccName;\n\t\t\tcleverTapObject.accTyp = decode.accTyp;\n\t\t}\n\t\tcleverTapObject.uniqueId = accCode + \"-\" + cleverTapObject.accTyp;\n\t\treturn cleverTapObject;\n\t};\n\n\tgetClevertapItem = (key: string) => {\n\t\tconst value = localStorage.getItem(\"clevertap\") ? JSON.parse(localStorage.getItem(\"clevertap\")!)[key] : undefined;\n\n\t\t// check if value is present and it is not expired\n\t\tif (value && new Date(value.split(\";\")[1]) > new Date()) {\n\t\t\treturn value.split(\";\")[0];\n\t\t}\n\t\treturn undefined;\n\t};\n\n\tsetClevertapItem = (obj: indexer) => {\n\t\tlet clevertapData = localStorage.getItem(\"clevertap\");\n\t\tclevertapData = clevertapData ? { ...JSON.parse(clevertapData), ...obj } : obj;\n\t\tlocalStorage.setItem(\"clevertap\", JSON.stringify(clevertapData));\n\t};\n\n\t// key - can be string if only one element needs to be deleted otherwise it is array\n\tremoveClevertapItem = (key: string | Array) => {\n\t\tconst clevertapData = localStorage.getItem(\"clevertap\") ? JSON.parse(localStorage.getItem(\"clevertap\")!) : {};\n\t\tif (typeof key === \"string\") {\n\t\t\tdelete clevertapData[key];\n\t\t} else {\n\t\t\tkey.forEach((k) => {\n\t\t\t\tdelete clevertapData[k];\n\t\t\t});\n\t\t}\n\t\tlocalStorage.setItem(\"clevertap\", JSON.stringify(clevertapData));\n\t};\n\n\tsaveClevertapData = () => {\n\t\tconst cleverTapObject = this.getIdentity();\n\t\tconst cleverTapId = clevertap.getCleverTapID();\n\t\tconst login = getAccData();\n\t\tthis.setClevertapItem({\n\t\t\t\tcleverTapDetails: login.prfId + \",\" + cleverTapId + \";expires=Tue, 19 Jan 2025 12:00:00 GMT\",\n\t\t\t\tlastLoginDetails: login.prfId + \",\" + cleverTapId + \",\" + cleverTapObject.accName + \",\" + cleverTapObject.uniqueId + \",\" + cleverTapObject.accTyp + \",\" + login.accTyp + \";expires=Tue, 19 Jan 2025 12:00:00 GMT\"\n\t\t});\n}\n\n\tshowClevertapNotification = () => {\n\t\tsetTimeout(() => {\n\t\t\tclevertap.notifications.push({\n\t\t\t\ttitleText: \"Would you like to receive Push Notifications?\",\n\t\t\t\tbodyText: \"We promise to only send you relevant content and give you updates on your transactions\",\n\t\t\t\tokButtonText: \"Sign me up!\",\n\t\t\t\trejectButtonText: \"No thanks\",\n\t\t\t\tokButtonColor: \"#f28046\",\n\t\t\t\taskAgainTimeInSeconds: 604800,\n\t\t\t\tserviceWorkerPath: process.env.PUBLIC_URL + \"/serviceworker.js\"\n\t\t\t});\n\t\t}, 10000);\n\t};\n}\n","import { ELoginScreenState } from \"../../login/loginConstants\";\nimport ee from \"../../utils/eventEmitter\";\nimport { ILoginObjType, IVendorLogin } from \"../../types/components/login/loginTypes\";\nimport indexer, { jwtToken as IjwtToken, TAccData, TAccDataRes } from \"../../types/genericTypes\";\nimport JWT from \"jwt-decode\";\nimport { ClevertapService } from \"../clevertapService\";\n\nexport default class LoginService {\n\tprivate static preLoginData: ILoginObjType = { userID: \"\", accTyp: \"\", pwd: \"\" };\n\tprivate static accData?: TAccData; // data object after login\n\tprivate static _jwtToken: string;\n\tprivate static _pToken: IjwtToken | null = null;\n\tstatic authorization: string;\n\tstatic fromUrl?: string; // url from where login was initiated\n\tstatic reUrl?: string; // url to redirect after login\n\tstatic invtypeobj?: Array | indexer; // object to be used in toc after login\n\tstatic popupName?: string; // screen state to be shown\n\tstatic params?: string; // if any query string needs to be added in reUrl, pass in the form of JSON.stringify\n\tstatic vendorDetails?: IVendorLogin; // object when logged in through vendor\n\tstatic hideCross = false; // set to true if cross needs to be hidden\n\tstatic lgnSrc: string = \"\";\n\n\tstatic isLoggedIn = () => {\n\t\t// check LoginService also because localstorage.setItem is async function\n\t\t// jwt_token might not be set in local storage\n\t\tlet state: boolean = localStorage.getItem(\"jwt_token\") || LoginService.jwtToken ? true : false;\n\n\t\treturn state;\n\t};\n\n\tstatic getPreLoginData = (key: keyof ILoginObjType) => {\n\t\treturn LoginService.preLoginData[key];\n\t};\n\n\tstatic setPreLoginData = (obj: { [key in keyof ILoginObjType]?: any }) => {\n\t\tLoginService.preLoginData = { ...LoginService.preLoginData, ...obj };\n\t};\n\n\tstatic getUserID() {\n\t\treturn localStorage.getItem(\"user_id\");\n\t}\n\n\tstatic getAccData(key?: keyof TAccData) {\n\t\tif (LoginService.accData) {\n\t\t\tif (key) {\n\t\t\t\treturn LoginService.accData[key];\n\t\t\t} else {\n\t\t\t\treturn LoginService.accData;\n\t\t\t}\n\t\t} else if (localStorage.getItem(\"acc_data\")) {\n\t\t\tif (key) {\n\t\t\t\treturn JSON.parse(localStorage.getItem(\"acc_data\")!)[key];\n\t\t\t} else {\n\t\t\t\treturn JSON.parse(localStorage.getItem(\"acc_data\")!);\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic setAccData(data: TAccDataRes) {\n\t\tconst temp: TAccData = {\n\t\t\t...data,\n\t\t\tuserID: data.accs.uid,\n\t\t\tmtf: data.mtf ? data.mtf.sts : \"\",\n\t\t\tadhrEQ: { stat: data.adhrEQ, brkCode: data.accs.eqBrk },\n\t\t\tadhrCOM: { stat: data.adhrCOM, brkCode: data.accs.coBrk },\n\t\t\tcoAccID: data.accs.coAccID,\n\t\t\teqAccID: data.accs.eqAccID,\n\t\t\teqRmRt: data.accs.eqRmRt,\n\t\t\teqAccName: data.accs.eqAccName,\n\t\t\tcoAccName: data.accs.coAccName,\n\t\t\tprfId: data.accs.prfId,\n\t\t\twtspCnsnt: data.accs.wtspCnsnt\n\t\t};\n\t\tLoginService.accData = temp;\n\t}\n\n\tstatic removeAccData() {\n\t\tLoginService.accData = undefined;\n\t}\n\n\tstatic set jwtToken(token: string) {\n\t\tLoginService._jwtToken = token;\n\t\tLoginService.pToken = token ? JWT(token) : null;\n\t}\n\n\tstatic get jwtToken() {\n\t\treturn localStorage.getItem(\"jwt_token\") || this._jwtToken;\n\t}\n\n\tstatic set pToken(token: IjwtToken | null) {\n\t\tLoginService._pToken = token;\n\t}\n\n\tstatic get pToken() {\n\t\tif (!LoginService._pToken) {\n\t\t\t// if _ptoken is not present in login service then fetch from local storage and parse it\n\t\t\tLoginService._pToken = LoginService.jwtToken ? JWT(LoginService.jwtToken) : null;\n\t\t}\n\n\t\treturn LoginService._pToken;\n\t}\n\n\tstatic logout() {\n\t\t// Reset all variables in this Service\n\t\tLoginService.preLoginData = { userID: \"\", accTyp: \"\", pwd: \"\" };\n\t\tLoginService._jwtToken = \"\";\n\t\tLoginService.authorization = \"\";\n\n\t\t// remove keys from local storage\n\t\tlocalStorage.removeItem(\"acc_data\");\n\t\tlocalStorage.removeItem(\"jwt_token\");\n\t\tlocalStorage.removeItem(\"user_id\");\n\t\tlocalStorage.removeItem(\"appidkey\");\n\t\tlocalStorage.removeItem(\"nesttrader\");\n\t\tlocalStorage.removeItem(\"lgnSrc\");\n\n\t\tLoginService.removeAccData();\n\t\tif (LoginService.lgnSrc === \"iphone\") {\n\t\t\t// TODO\n\t\t\t// window.webkit.messageHandlers.onSessionExpired.postMessage({ \"status\": \"ok\" });\n\t\t} else if (LoginService.lgnSrc === \"X\") {\n\t\t\t// TODO\n\t\t}\n\t\tee.emit(\"logout\");\n\t}\n\n\tstatic saveDataInLocalStorage = () => {\n\t\tlocalStorage.setItem(\"acc_data\", JSON.stringify(getAccData()));\n\t\tLoginService.jwtToken && localStorage.setItem(\"jwt_token\", LoginService.jwtToken);\n\t\tlocalStorage.setItem(\"user_id\", getAccData(\"userID\"));\n\t\tee.emit(\"loginsuccess\", {});\n\t};\n\n\tstatic cleverTapRegistration = () => {\n\t\tvar clevertapService = new ClevertapService();\n\t\tvar cleverTapObject = clevertapService.getIdentity();\n\t\tvar lastcleverTapDetails = clevertapService.getClevertapItem(\"cleverTapDetails\");\n\t\tvar cleverTapDetails = LoginService.getAccData(\"prfId\") + \",\" + clevertapService.getCleverTapID();\n\n\t\tif (!lastcleverTapDetails || cleverTapDetails !== lastcleverTapDetails) {\n\t\t\t//If registered for the first time\n\t\t\tclevertapService.pushOnUserLogin({\n\t\t\t\tSite: {\n\t\t\t\t\tName: cleverTapObject.accName, // String\n\t\t\t\t\tIdentity: cleverTapObject.uniqueId, // It shoulb be accountcode+\"-\"+accounttype\n\t\t\t\t\tAccountType: LoginService.getAccData(\"accTyp\"), // It shoulb be account type\n\t\t\t\t\tprofileID: LoginService.getAccData(\"prfId\") //This should be profileID from the login response\n\t\t\t\t}\n\t\t\t});\n\t\t\tclevertapService.showClevertapNotification();\n\t\t}\n\t};\n}\n\n// Add functions here so that they can be easily accessed from any file\nexport const {\n\tisLoggedIn,\n\tgetPreLoginData,\n\tsetPreLoginData,\n\tgetUserID,\n\tgetAccData,\n\tsetAccData,\n\tremoveAccData,\n\tjwtToken,\n\tlogout,\n\tsaveDataInLocalStorage,\n\tcleverTapRegistration\n} = LoginService;\n\n/* ******************\n * UTILITY FUNCTIONS *\n ****************** */\n\n/**\n * Parses query string and returns it in the form of object\n * @param queryString String to be parsed. Should contain '?'\n */\nexport function parseQuery(queryString: string) {\n\tvar query = queryString.substring(1);\n\tvar vars = query.split(\"&\");\n\n\treturn vars.reduce((acc: indexer, element: string) => {\n\t\tvar pair: Array = element.split(\"=\");\n\t\tacc[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n\t\treturn acc;\n\t}, {});\n}\n\n/**\n * This function converts an object into query string and returns a string without \"?\"\n * @param obj object to be converted to query string\n */\nexport function stringifyQuery(obj: any) {\n\tlet str = [];\n\tfor (let p in obj)\n\t\tif (p && obj.hasOwnProperty(p) && obj[p] !== undefined) {\n\t\t\tstr.push(encodeURIComponent(p) + \"=\" + encodeURIComponent(obj[p]));\n\t\t}\n\treturn str.join(\"&\");\n}\n\nexport function changeScreen(screenState: ELoginScreenState) {\n\tee.emit(\"changeLoginScreen\", screenState);\n}\n\nexport function setUrlObj(item: IVendorLogin) {\n\tswitch (item.ottype) {\n\t\tcase \"placeorder\":\n\t\t\tLoginService.reUrl = \"/placeorder\";\n\t\t\tbreak;\n\n\t\tcase \"order-status\":\n\t\t\tLoginService.reUrl = \"/orderbook/eq/equity/today\";\n\t\t\tLoginService.reUrl += item.sTab || \"\";\n\t\t\tbreak;\n\n\t\tcase \"my-positions\":\n\t\t\tLoginService.reUrl = \"/position\";\n\t\t\tbreak;\n\n\t\tcase \"see-margin\":\n\t\t\tLoginService.reUrl = \"/limits/equity\";\n\t\t\tbreak;\n\n\t\tcase \"fund-transfer\":\n\t\t\tLoginService.reUrl = \"/fund-transfer/add-funds\";\n\t\t\t// tocUrlObj.status = item.status;\n\t\t\tbreak;\n\n\t\tcase \"see-holdings\":\n\t\t\tLoginService.reUrl = \"/holding/equity/usable\";\n\t\t\tbreak;\n\n\t\tcase \"margin-files\":\n\t\t\tLoginService.reUrl = \"/marginfiles/intraday/equity\";\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tLoginService.reUrl = \"/placeorder\";\n\t}\n\n\tif (LoginService.reUrl === \"/placeorder\") {\n\t\tif (item.data) {\n\t\t\tLoginService.invtypeobj = item.data;\n\n\t\t\tif (item.isbasket) {\n\t\t\t\t// TODO\n\t\t\t} else {\n\t\t\t\tcreatePlaceOrderUrl(item.data[0]);\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport function createPlaceOrderUrl(data: any) {\n\tconst aTyp = checkATyp(data);\n\n\tLoginService.reUrl += \"/\" + aTyp + \"/\";\n\n\tif (aTyp === \"comm\" || aTyp === \"curr\" || aTyp === \"fno\") {\n\t\tLoginService.reUrl += futOpt(data.symbol) + \"/\";\n\t}\n\n\tif (aTyp === \"mf\") {\n\t\tLoginService.reUrl += data.isin + \"-\" + data.scode;\n\t} else if (data.snse) {\n\t\tLoginService.reUrl += data.snse;\n\t} else if (data.sbse) {\n\t\tLoginService.reUrl += data.sbse;\n\t}\n}\n\n// check aType\nexport function checkATyp(item: indexer) {\n\tlet temp;\n\tlet exc = null;\n\n\tif (item.snse) {\n\t\ttemp = item.snse.split(\"_\");\n\t} else if (item.sbse) {\n\t\ttemp = item.sbse.split(\"_\");\n\t}\n\n\tif (temp) {\n\t\texc = temp[temp.length - 1];\n\t}\n\n\tif (exc === \"CDS\") {\n\t\treturn \"curr\";\n\t} else if (exc === \"MCX\" || exc === \"NCDEX\") {\n\t\treturn \"comm\";\n\t}\n\n\tif (item.aTyp) {\n\t\treturn item.aTyp as string;\n\t} else {\n\t\treturn \"\";\n\t}\n}\n\nfunction futOpt(str: string) {\n\tif (str.slice(-2) === \"CE\" || str.slice(-2) === \"PE\") {\n\t\treturn \"/option\";\n\t} else {\n\t\treturn \"/future\";\n\t}\n}\n","import * as URLConfig from \"../domain\";\n\nconst config = URLConfig.config;\n\nexport default {\n\taccounts: config.jmw + config.jmw_login + \"accounts/\",\n\tconsent: config.jmw + config.jmw_login + \"consent/\",\n\tmerge: config.jmw + config.jmw_login + \"merge/\",\n\traterm: config.jmw + config.jmw_login + \"raterm/\",\n\tcommAccOpen: config.jmw + config.jmw_login + \"commodity/openaccount/\",\n\tjwttokenfornesttrader: config.web_mw + \"Account/jwttokenfornesttrader\",\n\tcAccount: config.web_mw + \"CAccount/\",\n\tclevertapRegister: config.web_mw + \"CleverTap/RegisterDevice\",\n\tadhoc: config.jmw + config.jmw_content + \"adhoc/\",\n\topenAccount: config.rootUrl + \"open-trading-account-online\"\n};\n","import { apiAService, apiService } from \"../apiService\";\nimport urlConfig from \"../../../config/domain\";\nimport {\n IChangePassword,\n IMergeRequest,\n} from \"../../types/components/login/loginTypes\";\nimport { ILeadFormFields } from \"../../login/forms/leadForm\";\nimport loginURLConfig from \"../../../config/login/loginURLConfig\";\n\nexport const AGetSecurityImage = (\n callback: CallableFunction,\n usrId: string\n) => {\n apiService(\n {\n url: loginURLConfig.accounts + usrId + \"/image?ff=W\",\n method: \"GET\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n source: sessionStorage.getItem(\"source\") || undefined,\n sourcetoken: sessionStorage.getItem(\"sourceToken\") || undefined,\n },\n callback\n );\n};\n\nexport const GetAsyncSecurityImage = async (usrId: string) => {\n return await apiAService({\n url: loginURLConfig.accounts + usrId + \"/image?ff=W\",\n method: \"GET\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n source: sessionStorage.getItem(\"source\") || undefined,\n sourcetoken: sessionStorage.getItem(\"sourceToken\") || undefined,\n });\n};\n\nexport const A2faQuestions = (\n callback: CallableFunction,\n usrId: string,\n accTyp: string,\n pwd: string\n) => {\n apiService(\n {\n url: loginURLConfig.accounts + usrId + \"/2faquestions\",\n method: \"POST\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n source: sessionStorage.getItem(\"source\") || undefined,\n sourcetoken: sessionStorage.getItem(\"sourceToken\") || undefined,\n body: { pwd, accTyp, ff: \"W\", ip: \"\" },\n },\n callback\n );\n};\n\nexport const AVerifyAnswers = (\n callback: CallableFunction,\n usrId: string,\n accTyp: string,\n yob: string\n) => {\n apiService(\n {\n url: loginURLConfig.accounts + usrId + \"/verifyanswers/v2\",\n method: \"POST\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n source: sessionStorage.getItem(\"source\") || undefined,\n sourcetoken: sessionStorage.getItem(\"sourceToken\") || undefined,\n body: {\n ansLst: [{ idx: \"1\", ans: yob }],\n accTyp,\n appData: { vendor: sessionStorage.getItem(\"source\") || undefined },\n },\n },\n callback\n );\n};\n\nexport const AGetConsents = (\n callback: CallableFunction,\n usrId: string,\n consents: Array\n) => {\n console.log({\n url: loginURLConfig.consent + \"content/\" + usrId,\n method: \"POST\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n body: { consents },\n });\n\n apiService(\n {\n url: loginURLConfig.consent + \"content/\" + usrId,\n method: \"POST\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n body: { consents },\n },\n callback\n );\n};\n\nexport const ASaveMulConsents = (\n callback: CallableFunction,\n usrId: string,\n consents: Array\n) => {\n apiService(\n {\n url: loginURLConfig.consent + \"save/multiple/\" + usrId,\n method: \"POST\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n body: { ip: \"\", consents },\n },\n callback\n );\n};\n\nexport const AResetLoginId = (\n callback: CallableFunction,\n usrId: string,\n nwUid: string\n) => {\n apiService(\n {\n url: loginURLConfig.accounts + usrId + \"/changeuserid\",\n method: \"POST\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n body: { nwUid, cnNwUid: nwUid },\n },\n callback\n );\n};\n\nexport const AResetPassword = (\n callback: CallableFunction,\n usrId: string,\n body: IChangePassword\n) => {\n apiService(\n {\n url: loginURLConfig.accounts + usrId + \"/changepassword/v2\",\n method: \"POST\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n body,\n },\n callback\n );\n};\n\nexport const ASaveTncConsent = (\n callback: CallableFunction,\n usrId: string,\n save: boolean\n) => {\n apiService(\n {\n url:\n loginURLConfig.consent +\n \"vendor/\" +\n usrId +\n \"?save=\" +\n (save ? \"true\" : \"false\"),\n method: \"PUT\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n body: {},\n },\n callback\n );\n};\n\nexport const AForgotLoginId = (callback: CallableFunction, body: any) => {\n apiService(\n {\n url: loginURLConfig.accounts + \"forgotuserid\",\n method: \"PUT\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n body,\n },\n callback\n );\n};\n\nexport const AForgotPassword = (\n callback: CallableFunction,\n { loginId, ...body }: any\n) => {\n apiService(\n {\n url: loginURLConfig.accounts + loginId + \"/resetpassword\",\n method: \"POST\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n body,\n },\n callback\n );\n};\n\nexport const AUnblockAccount = (\n callback: CallableFunction,\n { loginId, ...body }: any\n) => {\n apiService(\n {\n url: loginURLConfig.accounts + loginId + \"/unblockuser\",\n method: \"PUT\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n body,\n },\n callback\n );\n};\n\nexport const AForgotYob = (\n callback: CallableFunction,\n { loginId, ...body }: any\n) => {\n apiService(\n {\n url: loginURLConfig.accounts + loginId + \"/yob\",\n method: \"POST\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n body,\n },\n callback\n );\n};\n\nexport const AMergeRequest = (\n callback: CallableFunction,\n body: IMergeRequest\n) => {\n apiService(\n {\n url: loginURLConfig.merge + \"request\",\n method: \"POST\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n body,\n },\n callback\n );\n};\n\nexport const AMergeRemindLater = (callback: CallableFunction) => {\n apiService(\n {\n url: loginURLConfig.merge + \"remindmelater\",\n method: \"POST\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n body: {},\n },\n callback\n );\n};\n\nexport const AMergeActivateAccount = (\n callback: CallableFunction,\n uid: string,\n accTyp: string\n) => {\n apiService(\n {\n url: loginURLConfig.merge + \"activateaccount\",\n method: \"POST\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n body: { uid, accTyp },\n },\n callback\n );\n};\n\nexport const AMergeEnableAccount = (\n callback: CallableFunction,\n uid: string,\n accTyp: string\n) => {\n apiService(\n {\n url: loginURLConfig.merge + \"onlineenable\",\n method: \"POST\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n body: { uid, accTyp },\n },\n callback\n );\n};\n\nexport const ARmRateSubmit = (\n callback: CallableFunction,\n userId: string,\n body: any\n) => {\n apiService(\n {\n url: loginURLConfig.raterm + \"submit/\" + userId,\n method: \"POST\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n body,\n },\n callback\n );\n};\n\nexport const AGetCities = (callback: CallableFunction, srchstr: string) => {\n apiService(\n {\n url: loginURLConfig.commAccOpen + \"location?srchstr=\" + srchstr,\n method: \"GET\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n },\n callback\n );\n};\n\nexport const ACommAccOpenPre = (\n callback: CallableFunction,\n body: ILeadFormFields\n) => {\n apiService(\n {\n url: loginURLConfig.commAccOpen + \"prelogin\",\n method: \"POST\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n body,\n },\n callback\n );\n};\n\nexport const ACommAccOpenPost = (\n callback: CallableFunction,\n userId: string\n) => {\n apiService(\n {\n url: loginURLConfig.commAccOpen + \"postlogin/\" + userId,\n method: \"POST\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n body: {},\n },\n callback\n );\n};\n\nexport const AGetJwtTokenForNestRrader = (\n callback: CallableFunction,\n body: any\n) => {\n apiService(\n {\n url: loginURLConfig.jwttokenfornesttrader,\n method: \"POST\",\n body,\n },\n callback\n );\n};\n\nexport const AImpersonateUser = (callback: CallableFunction) => {\n apiService(\n {\n url: loginURLConfig.cAccount + \"ImpersonateUser\",\n method: \"POST\",\n authType: \"bearer\",\n },\n callback\n );\n};\n\nexport const ImpersonateUser = () => {\n apiAService(\n {\n url: loginURLConfig.cAccount + \"ImpersonateUser\",\n method: \"POST\",\n authType: \"bearer\",\n },\n );\n};\nexport const ARegisterDevice = (callback: CallableFunction, body: any) => {\n apiService(\n {\n url: loginURLConfig.clevertapRegister,\n method: \"POST\",\n authType: \"bearer\",\n body,\n },\n callback\n );\n};\n\nexport const ACheckTokenValidity = (callback: CallableFunction) => {\n apiService(\n {\n url: loginURLConfig.cAccount + \"CheckTokenValidity\",\n method: \"GET\",\n authType: \"bearer\",\n },\n callback\n );\n};\n\nexport const AGetLoginResponse = (callback: CallableFunction) => {\n apiService(\n {\n url: loginURLConfig.cAccount + \"GetLoginResponse\",\n method: \"GET\",\n authType: \"bearer\",\n },\n callback\n );\n};\n\nexport const ARetrieveQueryData = (\n callback: CallableFunction,\n token: string\n) => {\n apiService(\n {\n url: loginURLConfig.adhoc + \"retrieve/data\",\n method: \"POST\",\n appidkey: urlConfig.appidkey,\n body: { token },\n },\n callback\n );\n};\n\nexport const ASaveQueryData = (callback: CallableFunction, value: any) => {\n apiService(\n {\n url: loginURLConfig.adhoc + \"save/data\",\n method: \"POST\",\n appidkey: urlConfig.appidkey,\n body: { value: JSON.stringify(value) },\n },\n callback\n );\n};\n","import LoginService, { isLoggedIn, logout } from \"./login/loginService\";\nimport urlConfig from \"../../config/domain\";\nimport { ASaveQueryData } from \"./login/loginApiService\";\n\nexport function handleSessionTimeout(newResp: Response, res: any) {\n\tif (\n\t\tnewResp.status === 403 ||\n\t\t(newResp.status === 401 && isLoggedIn()) ||\n\t\t(newResp.status === 200 && res.response && res.response.infoID === \"EPS0008\")\n\t) {\n\t\tlogout();\n\n\t\tif (sessionStorage.getItem(\"source\")) {\n\t\t\tsessionStorage.removeItem(\"source\");\n\t\t\tsessionStorage.removeItem(\"sourceToken\");\n\t\t}\n\n\t\tlet queryString;\n\t\tif (window.location.href.indexOf(urlConfig.root + \"login\") > -1) {\n\t\t\tqueryString = {\n\t\t\t\treUrl: LoginService.reUrl,\n\t\t\t\tinvtypeobj: LoginService.invtypeobj,\n\t\t\t\tpopupName: LoginService.popupName,\n\t\t\t\tparams: LoginService.params\n\t\t\t};\n\t\t} else {\n\t\t\tqueryString = { reUrl: window.location.href };\n\t\t}\n\t\tASaveQueryData(getToken, JSON.stringify(queryString));\n\t}\n}\n\nfunction getToken(res: any) {\n\tif (res.data) {\n\t\twindow.location.href = process.env.PUBLIC_URL + \"/login?token=\" + res.data.token;\n\t}\n}\n","import bStrg, { parsedToken } from \"./storageHelper\";\nimport LoginService from \"./login/loginService\";\nimport { handleSessionTimeout } from \"./sessionTimeout\";\nimport { request } from \"http\";\n\ninterface callReq {\n url: string;\n method: string;\n body?: {};\n authType?: \"bearer\" | \"authtoken\" | \"mwAuth\" | \"pappid\";\n appidkey?: string;\n source?: string;\n sourcetoken?: string;\n abortControllerRef?: any;\n}\nexport const apiService = async (\n req: callReq,\n callback: CallableFunction,\n abortController?: CallableFunction\n) => {\n const Abort_Controller = new AbortController();\n let pToken: any = parsedToken();\n var params: any = {\n method: req.method,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n };\n if (req.authType) {\n switch (req.authType) {\n case \"bearer\":\n params.headers.authorization = LoginService.jwtToken\n ? `Bearer ${LoginService.jwtToken}`\n : `Bearer ${bStrg(\"local\").jwt_token}`;\n params.headers.platform = window.localStorage.getItem(\"isImpersonated\")\n ? \"rm\"\n : window.localStorage.getItem(\"lgnSrc\") === \"android-phone\"\n ? \"android\"\n : window.localStorage.getItem(\"lgnSrc\") === \"iphone\"\n ? \"ios\"\n : window.localStorage.getItem(\"lgnSrc\") === \"X\"\n ? \"tx3\"\n : \"WEB\";\n break;\n case \"authtoken\":\n params.headers.authorization =\n LoginService.authorization || (pToken ? pToken.auth_token : \"\");\n params.headers.Source = \"EDEL\";\n break;\n case \"pappid\":\n params.headers[\"pappid\"] = \"EX730265\";\n break;\n\n default:\n break;\n }\n }\n if (req.appidkey) {\n params.headers[\"appidkey\"] = req.appidkey;\n }\n\n if (req.source) {\n params.headers.Source = req.source;\n params.headers.SourceToken = req.sourcetoken;\n }\n\n if (\n req.method === \"POST\" ||\n req.method === \"PUT\" ||\n req.method === \"DELETE\"\n ) {\n params[\"body\"] = JSON.stringify(req.body);\n }\n //Cancelling Fetch Requests\n if (abortController) {\n abortController(Abort_Controller);\n params.signal = Abort_Controller.signal;\n }\n try {\n const resp = await fetch(req.url, params);\n const newResp = await resp;\n\n newResp\n .json()\n .then((res) => {\n handleSessionTimeout(newResp, res);\n callback(res, newResp);\n })\n .catch((res) => {\n handleSessionTimeout(newResp, res);\n callback(undefined, newResp);\n });\n } catch (err) {\n // all errors will be captured here for anything in the try block\n callback &&\n callback({\n error: \"500\",\n errMsg: err,\n });\n }\n};\n\nexport const apiAService = async (req: callReq) => {\n const Abort_Controller = new AbortController();\n let pToken: any = parsedToken();\n var params: any = {\n method: req.method,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n };\n if (req.authType) {\n switch (req.authType) {\n case \"bearer\":\n params.headers.Authorization = LoginService.jwtToken\n ? `Bearer ${LoginService.jwtToken}`\n : `Bearer ${bStrg(\"local\").jwt_token}`;\n params.headers.platform = window.localStorage.getItem(\"isImpersonated\")\n ? \"rm\"\n : window.localStorage.getItem(\"lgnSrc\") === \"android-phone\"\n ? \"android\"\n : window.localStorage.getItem(\"lgnSrc\") === \"iphone\"\n ? \"ios\"\n : window.localStorage.getItem(\"lgnSrc\") === \"X\"\n ? \"tx3\"\n : \"WEB\";\n break;\n case \"authtoken\":\n params.headers.authorization =\n LoginService.authorization || (pToken ? pToken.auth_token : \"\");\n params.headers.Source = \"EDEL\";\n break;\n case \"mwAuth\":\n params.headers.mwAuth =\n \"Bearer eyJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1NzEyMjQ4ODEsImV4cCI6MTU4MDMyMjYwMH0.Q-IE3XqL5s8DS7QuN0TWscyzrThMi29Tbfb65wDvamg\";\n break;\n case \"pappid\":\n params.headers.pappid = JSON.parse(\n JSON.stringify(req.body)\n ).applicationid.toString();\n break;\n default:\n break;\n }\n }\n if (req.appidkey) {\n params.headers[\"appidkey\"] = req.appidkey;\n }\n if (req.source) {\n params.headers.Source = req.source;\n params.headers.SourceToken = req.sourcetoken;\n }\n\n if (\n req.method === \"POST\" ||\n req.method === \"PUT\" ||\n req.method === \"DELETE\"\n ) {\n params[\"body\"] = JSON.stringify(req.body);\n }\n //Cancelling Fetch Requests\n // if (abortController) {\n // \tabortController(Abort_Controller);\n // \tparams.signal = Abort_Controller.signal;\n // }\n try {\n const resp = await fetch(req.url, params);\n const newResp = await resp;\n return newResp\n .json()\n .then((res) => {\n handleSessionTimeout(newResp, res);\n return res;\n })\n .catch((error) => {\n handleSessionTimeout(newResp, error);\n return error;\n });\n } catch (err) {\n // all errors will be captured here for anything in the try block\n return {\n error: \"500\",\n errMsg: err,\n };\n }\n};\n","import { parsedToken } from \"../../service/storageHelper\";\nimport indexer, { jwtToken, IListObj } from \"../../types/genericTypes\";\nimport { IMFCancel, IMF, IMFSip, IMFHold } from \"../../types/components/orderBook/obTypes\";\nimport { CSSProperties, useState } from \"react\";\nimport DeviceContext from \"../../service/indentifyDevice\";\n\nexport const secNavOptions = () => {\n\tlet pToken: jwtToken | null = parsedToken();\n\n\tif (pToken && pToken.accType === \"EQ\") {\n\t\treturn [\n\t\t\t{ value: \"equity\", display: \"Equity\", href: eqNav.today },\n\t\t\t{ value: \"mf\", display: \"Mutual Funds\", href: mfNav.today },\n\t\t\t{ value: \"derivative\", display: \"Derivatives\", href: dervNav.today },\n\t\t\t{ value: \"currency\", display: \"Currency\", href: currNav.today },\n\t\t\t{ value: \"pm\", display: \"New Offers\", href: \"/orderbook/newoffers/pm/ipo/today\" }\n\t\t];\n\t} else if (pToken && pToken.accType === \"CO\") {\n\t\treturn [{ value: \"commodities\", display: \"Commodities\", href: commNav.today }];\n\t} else if (pToken && pToken.accType === \"COMEQ\") {\n\t\treturn [\n\t\t\t{ value: \"equity\", display: \"Equity\", href: eqNav.today },\n\t\t\t{ value: \"commodities\", display: \"Commodities\", href: commNav.today },\n\t\t\t{ value: \"mf\", display: \"Mutual Funds\", href: mfNav.today },\n\t\t\t{ value: \"derivative\", display: \"Derivatives\", href: dervNav.today },\n\t\t\t{ value: \"currency\", display: \"Currency\", href: currNav.today },\n\t\t\t{ value: \"pm\", display: \"New Offers\", href: \"/orderbook/newoffers/pm/ipo/today\" }\n\t\t];\n\t} else {\n\t\treturn [\n\t\t\t{\n\t\t\t\tvalue: \"\",\n\t\t\t\tdisplay: \"\",\n\t\t\t\thref: \"\"\n\t\t\t}\n\t\t];\n\t}\n};\nexport const ChipColorKeyComb: indexer = {\n\trejected: \"red\",\n\topen: \"blue\",\n\tpending: \"blue\",\n\tfailed: \"red\",\n\tcancelled: \"red\",\n\t\"on hold\": \"yellow\",\n\tcompleted: \"green\",\n\tcomplete: \"green\",\n\taccepted: \"blue\",\n\tordered: \"green\",\n\t\"cancelled after market order\": \"red\",\n\t\"after market order req received\": \"blue\",\n\t\"after market order\": \"blue\",\n\tamo: \"blue\",\n\t\"trigger pending\": \"blue\",\n\t\"in process\": \"blue\",\n\t\"validation rejected\": \"red\",\n\t\"open pending\": \"blue\",\n\t\"offline waiting\": \"blue\",\n\t\"modify after market order req received\": \"blue\",\n\t\"registered by member\": \"blue\",\n\tapproved: \"green\",\n\tsuccess: \"green\",\n\t\"after market order (AMO)\": \"blue\",\n\tinprocess: \"blue\",\n\trunning: \"blue\",\n\tactive: \"blue\",\n\t\"put order req received\": \"blue\"\n};\n// status for all instrument except MF\nexport const ChipStatusComb: indexer = {\n\topen: \"open\",\n\t\"put order req received\": \"in process\",\n\t\"modify after market order req received\": \"open\",\n\t\"after market order req received\": \"amo\",\n\t\"after market order\": \"amo\",\n\n\tpending: \"tr. pending\",\n\t\"trigger pending\": \"tr. pending\",\n\t\"open pending\": \"tr. pending\",\n\t\"offline waiting\": \"tr. pending\",\n\t\"on hold\": \"on hold\",\n\tcompleted: \"completed\",\n\tcomplete: \"completed\",\n\taccepted: \"accepted\",\n\tordered: \"completed\",\n\trejected: \"rejected\",\n\t\"validation rejected\": \"rejected\",\n\tfailed: \"cancelled\",\n\tcancelled: \"cancelled\",\n\t\"cancelled after market order\": \"cancelled\",\n\t\"registered by member\": \"registered by member\",\n\tapproved: \"approved\",\n\tsuccess: \"success\",\n\t\"in process\": \"in process\",\n\tinprocess: \"in process\",\n\trunning: \"active\"\n};\n\n// status for MF\nexport const ChipStatusMfComb: indexer = {\n\tcomplete: \"completed\",\n\tordered: \"completed\",\n\taccepted: \"completed\",\n\trejected: \"rejected\",\n\tfailed: \"cancelled\",\n\tcancelled: \"cancelled\",\n\t\"cancelled after market order\": \"cancelled\",\n\t\"in process\": \"in process\",\n\tinprocess: \"in process\",\n\n\t//Need to check whata extactly status need to show\n\n\t// \"after market order req received\": \"after market order (AMO)\",\n\t// \"after market order\": \"after market order (AMO)\"\n\t\"after market order req received\": \"AMO\",\n\t\"after market order\": \"AMO\"\n};\n\n// status for MF SIP\nexport const ChipStatusMfSipComb: indexer = {\n\tactive: \"running\",\n\tinactive: \"not running\"\n};\n\n//open orders possible states across all asset classes will be included here\nexport const openStatusArr: Array = [\n\t\"open\",\n\t\"after market order\",\n\t\"after market order req received\",\n\t\"trigger pending\",\n\t\"in process\",\n\t\"open pending\",\n\t\"pending\",\n\t\"modify after market order req received\",\n\t\"put order req received\"\n];\n\nexport const ovrOptions: Array = [\n\t{ value: \"Modify\", display: \"Modify\" }, //0\n\t{ value: \"cancel\", display: \"Cancel\" }, //1\n\t{ value: \"Convert\", display: \"Convert\" }, //2\n\t{ value: \"Retry\", display: \"Retry\" }, //3\n\t{ value: \"details\", display: \"Details\" } //4\n];\n//instrument navigation in P2\nexport const newOfferOptions: Array = [\n\t{\n\t\tvalue: \"ipo\",\n\t\tdisplay: \"IPO\",\n\t\thref: \"/orderbook/newoffers/pm/ipo/today\"\n\t},\n\t{\n\t\tvalue: \"ncd\",\n\t\tdisplay: \"NCD\",\n\t\thref: \"/orderbook/newoffers/pm/ncd/today\"\n\t},\n\n\t// {\n\t// \tvalue: \"ofs\",\n\t// \tdisplay: \"OFS\",\n\t// \thref: \"/orderbook/newoffers/pm/ofs/today\"\n\t// },\n\t{\n\t\tvalue: \"nfo\",\n\t\tdisplay: \"NFO\",\n\t\thref: \"/orderbook/newoffers/pm/nfo/today\"\n\t}\n];\n\n//equity navigation url - one point ref changing static path'/orderbook/eq/' requries change in routing file as well\nexport const eqNav = {\n\ttoday: \"/orderbook/eq/equity/today\",\n\thistory: \"/orderbook/eq/equity/history\",\n\tsip: \"/orderbook/eq/equity/sip\"\n};\n//mf navigation url - one point ref changing static path'/orderbook/mf/' requries change in routing file as well\n\nexport const mfNav = {\n\ttoday: \"/orderbook/mf/mf/today\",\n\thistory: \"/orderbook/mf/mf/history\",\n\tsip: \"/orderbook/mf/mf/sip\"\n};\n//commodity navigation url - one point ref changing static path'/orderbook/comm/' requries change in routing file as well\n\nexport const commNav = {\n\ttoday: \"/orderbook/comm/commodities/today\",\n\thistory: \"/orderbook/comm/commodities/history\"\n};\n//derivative navigation url - one point ref changing static path'/orderbook/derivative/' requries change in routing file as well\n\nexport const dervNav = {\n\ttoday: \"/orderbook/derivative/derivative/today\",\n\thistory: \"/orderbook/derivative/derivative/history\"\n};\n//currency navigation url - one point ref changing static path'/orderbook/currency/' requries change in routing file as well\n\nexport const currNav = {\n\ttoday: \"/orderbook/currency/currency/today\",\n\thistory: \"/orderbook/currency/currency/history\"\n};\nexport enum scrlStCls {\n\tfreeze = \"freeze\", //rows to be freezed\n\ttoContext = \"flwCont\", //context ref where rows to be freezed until this context is visible and near to table fixed header(pOffset)\n\tpOffset = \"refOffset\", //ref class added to table fixed header\n\tpContId = \"scrlContainer\", //container where synthetic event attached\n\tfixClass = \"fix\" //class to add to (freeze)\n}\n//custom hook to compute max height based on the api response data\nexport const ObScrollStyle = (setMinMax: boolean): CSSProperties => {\n\tconst [computedStyles, setcomputedStyles] = useState({});\n\tconst ele = document.querySelector(\"body\") as HTMLElement;\n\t//on rough guess this offset has been set - should be changed to accurate values\n\tconst offset: string = DeviceContext().isMobile ? \"120px\" : \"220px\";\n\tif (setMinMax) {\n\t\tsetTimeout(() => {\n\t\t\tif (ele.scrollHeight > window.innerHeight) {\n\t\t\t\tsetcomputedStyles({\n\t\t\t\t\tmaxHeight: \"calc(\" + window.innerHeight + \"px - \" + offset + \")\",\n\t\t\t\t\toverflowY: \"auto\"\n\t\t\t\t});\n\t\t\t}\n\t\t}, 350);\n\t}\n\n\treturn computedStyles;\n};\n\nexport const PMErrorMessages: indexer = {\n\tipo: \"There are no IPO orders placed by you today\",\n\tofs: \"You haven`t placed any OFS orders today\",\n\tnfo: \"You haven`t placed any NFO orders today\",\n\tncd: \"There are no NCD orders placed by you today\"\n};\nexport default secNavOptions;\n\nexport const getMFCancelObj = (data: IMF | IMFSip | IMFHold): IMFCancel => {\n\tlet cancelObj: IMFCancel = {\n\t\tcurrentOrdSts: \"ordStatus\" in data ? data.ordStatus : \"\",\n\t\ttoken: \"token\" in data ? data.token : \"\",\n\t\tisin: data.isin,\n\t\ttxnTyp: data.status.toLowerCase() !== \"amo\" ? data.txnType : \"AMO\",\n\t\tclientCode: parsedToken()?.username || \"\",\n\t\tqty: parseFloat(data.units),\n\t\tamt: parseFloat(data.amount),\n\t\treInvFlg: \"reinvestmentFlag\" in data ? data.reinvestmentFlag : \"\",\n\t\treqstdBy: \"\",\n\t\tfolioNo: data.folioNo,\n\t\tordTyp: \"cancel\",\n\t\ttxnId: parseInt(data.txnID),\n\t\tschemeName: data.schemeName,\n\t\trmrk: \"remarks\" in data ? data.remarks : \"\",\n\t\tmnRdmFlg: data.txnType === \"R\" ? \"Y\" : \"\",\n\t\tordSrc: \"TOCMF\",\n\t\tstrtDy: \"startDay\" in data ? new Date(data.startDay).getDay() : new Date().getDay(),\n\t\tstrtDt: data.startDate,\n\t\tendDt: data.endDate,\n\t\tsipFrq: \"sipfrequency\" in data ? data.sipfrequency : \"\",\n\t\tgfot: \"\",\n\t\ttnr: \"tenure\" in data ? data.tenure : \"\",\n\t\tmdtId: data.mandateID,\n\t\tsipregno: \"sipregNo\" in data ? data.sipregNo : \"\",\n\t\tsiporderno: \"siporderNo\" in data ? data.siporderNo : \"\",\n\t\tcloseAccountFlag: \"string\",\n\t\tkycflag: \"1\",\n\t\tdpc: data.dpc,\n\t\teuinflag: \"N\",\n\t\teuinnumber: \"\",\n\t\tphysicalFlag: \"physicalFlag\" in data ? data.physicalFlag : \"\"\n\t};\n\tif (data.status.toLowerCase() === \"on hold\") {\n\t\tcancelObj = {\n\t\t\t...cancelObj,\n\t\t\tcurrentOrdSts: \"ACCEPTED\",\n\t\t\treInvFlg: \"option\" in data ? (data.option === \"Div.Reinvestment\" ? \"Y\" : data.option === \"Div.Payout\" ? \"N\" : \"Z\") : \"Z\"\n\t\t};\n\t}\n\treturn cancelObj;\n};\n","import bStrg, { parsedToken } from \"../storageHelper\";\nimport { apiService } from \"../apiService\";\nimport urlConfig from \"../../../config/domain\";\nimport { IConvertPos, ICancelNrmTrd, IOFSReq, IMFCancel } from \"../../types/components/orderBook/obTypes\";\nimport { appIdKey, jwtToken } from \"../../types/genericTypes\";\n\nconst pToken: jwtToken | null = parsedToken(),\n\tuserID = pToken ? pToken.username : null,\n\tappInfo: appIdKey = bStrg(\"appInfo\");\n\n//Show order book for a client in equity\nexport const AObEqReq = (callback: CallableFunction) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.orderBook.eq + userID + \"/v1\",\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n//get order logs specific to order\n\nexport const AEqGetOrderLogs = (callback: CallableFunction, nOID: string) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.orderBook.eqOrderLog + userID + \"?nOID=\" + nOID,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n//get trade logs specific to user or orderid\nexport const AEqGetTradeBk = (callback: CallableFunction, nOID?: string) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.orderBook.eqtradeBook + \"/\" + userID + (nOID ? \"?nOID=\" + nOID : \"\"),\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n//get order details\nexport const AEqGetOrderDet = (callback: CallableFunction, nOID: string) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\t// order/details/1111?nOID=111\n\n\t\t\t\turl: urlConfig.orderBook.eqOrderLog + userID + \"?nOID=\" + nOID,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n//cancel normal trade\nexport const AEqCancelNrmTrd = (callback: CallableFunction, cancelBody: ICancelNrmTrd) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\t// order/details/1111?nOID=111\n\t\t\t\turl: urlConfig.orderBook.eqCancelNrmOrd + userID,\n\t\t\t\tmethod: \"PUT\",\n\t\t\t\tauthType: \"authtoken\",\n\t\t\t\tbody: cancelBody\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n//cancel amo eq trade\nexport const AEqCancelAmoTrd = (callback: CallableFunction, cancelBody: ICancelNrmTrd) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\t// order/details/1111?nOID=111\n\n\t\t\t\turl: urlConfig.orderBook.eqCancelAmoOrd + userID,\n\t\t\t\tmethod: \"PUT\",\n\t\t\t\tauthType: \"authtoken\",\n\t\t\t\tbody: cancelBody\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n//cancel sip eq trade\nexport const AEqCancelSIPOrd = (callback: CallableFunction, sSNo: string) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\t// order/details/1111?nOID=111\n\n\t\t\t\turl: urlConfig.orderBook.eqCancelSIPOrd,\n\t\t\t\tmethod: \"PUT\",\n\t\t\t\tauthType: \"authtoken\",\n\t\t\t\tbody: {\n\t\t\t\t\trequest: {\n\t\t\t\t\t\trequestType: \"U\",\n\t\t\t\t\t\tmsgID: \"\",\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tsSNo: sSNo\n\t\t\t\t\t\t},\n\t\t\t\t\t\tappID: appInfo.appid,\n\t\t\t\t\t\tsession: \"\",\n\t\t\t\t\t\tformFactor: appInfo.ff\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n//convert position api for equity\nexport const AEqConvertPos = (callback: CallableFunction, convertBody: IConvertPos) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\t// order/details/1111?nOID=111\n\n\t\t\t\turl: urlConfig.orderBook.eqConvertPos + userID,\n\t\t\t\tmethod: \"PUT\",\n\t\t\t\tauthType: \"authtoken\",\n\t\t\t\tbody: convertBody\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n// Shows order history for a client in equity\nexport const AObEqHistReq = (callback: CallableFunction, fromDate: string, toDate: string) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.orderBook.eqHistory + userID + \"?sDt=\" + fromDate + \"&eDt=\" + toDate,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n// Shows SIP orders for a client in equity\nexport const AObEqSIP = (callback: CallableFunction) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.orderBook.eqSip,\n\t\t\t\tmethod: \"POST\",\n\t\t\t\tauthType: \"authtoken\",\n\t\t\t\tbody: {\n\t\t\t\t\trequest: {\n\t\t\t\t\t\trequestType: \"U\",\n\t\t\t\t\t\tmsgID: \"\",\n\t\t\t\t\t\tdata: {},\n\t\t\t\t\t\tappID: appInfo.appid,\n\t\t\t\t\t\tsession: \"\",\n\t\t\t\t\t\tformFactor: appInfo.ff\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n//commodity orderbook\nexport const AObCommReq = (callback: CallableFunction) => {\n\tif (pToken && pToken.accType !== \"EQ\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.orderBook.commodity + userID + \"?rTyp=COMFNO\",\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n//get order logs specific to order\nexport const ACommGetOrderLogs = (callback: CallableFunction, oID: string) => {\n\tif (pToken && pToken.accType === \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.orderBook.commOrderLog + userID + \"?oID=\" + oID,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n//get trade logs specific to user or orderid\nexport const ACommGetTradeBk = (callback: CallableFunction, nOID?: string) => {\n\tif (pToken && pToken.accType === \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.orderBook.commtradeBook + userID + (nOID ? \"?nOID=\" + nOID : \"\"),\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n// Shows order history for a client in commodity\nexport const AObCommHist = (callback: CallableFunction, fromDate: string, toDate: string) => {\n\tif (pToken && pToken.accType !== \"EQ\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.orderBook.commodityHist + userID + \"?sDt=\" + fromDate + \"&eDt=\" + toDate,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n// commodity cancel normal trade\nexport const ACommCancelNrmTrd = (callback: CallableFunction, cancelBody: ICancelNrmTrd) => {\n\tif (pToken && pToken.accType !== \"EQ\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\t// order/details/1111?nOID=111\n\t\t\t\turl: urlConfig.orderBook.commCancelNrmOrd + userID,\n\t\t\t\tmethod: \"PUT\",\n\t\t\t\tauthType: \"authtoken\",\n\t\t\t\tbody: cancelBody\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n//commodity cancel amo eq trade\nexport const ACommCancelAmoTrd = (callback: CallableFunction, cancelBody: ICancelNrmTrd) => {\n\tif (pToken && pToken.accType !== \"EQ\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\t// order/details/1111?nOID=111\n\n\t\t\t\turl: urlConfig.orderBook.commCancelAmoOrd + userID,\n\t\t\t\tmethod: \"PUT\",\n\t\t\t\tauthType: \"authtoken\",\n\t\t\t\tbody: cancelBody\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n// convert position api for commodity\nexport const ACommConvertPos = (callback: CallableFunction, convertBody: IConvertPos) => {\n\tif (pToken && pToken.accType !== \"EQ\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\t// order/details/1111?nOID=111\n\t\t\t\turl: urlConfig.orderBook.commConvertPos + userID,\n\t\t\t\tmethod: \"PUT\",\n\t\t\t\tauthType: \"authtoken\",\n\t\t\t\tbody: convertBody\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n//mutual fund orderbook\nexport const AObMfReq = (callback: CallableFunction) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.orderBook.mf + userID,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\nexport const AObMfHist = (callback: CallableFunction, fromDate: string, toDate: string) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.orderBook.mf + userID + \"?frDt=\" + fromDate + \"&toDt=\" + toDate,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n///order/sip/{userId}\n\nexport const AObMfSip = (callback: CallableFunction) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.orderBook.mfSip + userID,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\nexport const AObMfSipTrsHist = (callback: CallableFunction, sipRegNo: string) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.orderBook.mfSip + userID + \"/child?sipNo=\" + sipRegNo,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n//cancel normal trade\nexport const AMfCancelNrmTrd = (callback: CallableFunction, cancelBody: IMFCancel) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.orderBook.mfCancelNrmOrd + userID,\n\t\t\t\tmethod: \"PUT\",\n\t\t\t\tauthType: \"authtoken\",\n\t\t\t\tbody: cancelBody\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n//cancelmf holding trade\nexport const AMfCancelHoldTrd = (callback: CallableFunction, cancelBody: IMFCancel) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.orderBook.mfCancelHoldOrd + userID,\n\t\t\t\tmethod: \"PUT\",\n\t\t\t\tauthType: \"authtoken\",\n\t\t\t\tbody: cancelBody\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n//cancel IPO trade\nexport const AIpoCancelTrd = (callback: CallableFunction, ordID: string) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.orderBook.ipoCancelOrd + userID,\n\t\t\t\tmethod: \"PUT\",\n\t\t\t\tauthType: \"authtoken\",\n\t\t\t\tbody: {\n\t\t\t\t\tordID: ordID\n\t\t\t\t}\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\nexport const AObIPO = (callback: CallableFunction) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.orderBook.ipo + \"?clientId=\" + userID,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\",\n\t\t\t\tappidkey: urlConfig.appidkey\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n//ofs orderbook\n\nexport const AObOFS = (callback: CallableFunction, OFSReq: IOFSReq) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.orderBook.ofs,\n\t\t\t\tmethod: \"POST\",\n\t\t\t\tauthType: \"authtoken\",\n\t\t\t\tbody: {\n\t\t\t\t\trequest: {\n\t\t\t\t\t\trequestType: \"U\",\n\t\t\t\t\t\tmsgID: \"\",\n\t\t\t\t\t\tdata: OFSReq,\n\t\t\t\t\t\tappID: appInfo.appid,\n\t\t\t\t\t\tsession: \"\",\n\t\t\t\t\t\tformFactor: appInfo.ff\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\nexport const AObNCD = (callback: CallableFunction) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.orderBook.ncd,\n\t\t\t\tmethod: \"POST\",\n\t\t\t\tauthType: \"authtoken\",\n\t\t\t\tbody: {\n\t\t\t\t\trequest: {\n\t\t\t\t\t\trequestType: \"U\",\n\t\t\t\t\t\tmsgID: \"\",\n\t\t\t\t\t\tdata: {},\n\t\t\t\t\t\tappID: appInfo.appid,\n\t\t\t\t\t\tsession: \"\",\n\t\t\t\t\t\tformFactor: appInfo.ff\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\nexport const AObNFO = (callback: CallableFunction, fromDate: string, toDate: string) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.orderBook.nfo + userID + \"?frDt=\" + fromDate + \"&toDt=\" + toDate,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\",\n\t\t\t\tappidkey: urlConfig.appidkey\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\nexport default AObEqReq;\n","export const filterArrData = (res: Array, key: string, value: any, operator: string) => {\n\tlet temp: Array<{}> = [];\n\tswitch (operator) {\n\t\tcase \"=\":\n\t\t\tfor (let i = 0; i < res.length; i++) {\n\t\t\t\tif (res[i][key] && res[i][key] === value) {\n\t\t\t\t\ttemp.push(res[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn temp;\n\t\tcase \"!\":\n\t\t\tfor (let i = 0; i < res.length; i++) {\n\t\t\t\tif ((res[i][key] && res[i][key] !== value) || !res[i][key]) {\n\t\t\t\t\ttemp.push(res[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn temp;\n\t\tdefault:\n\t\t\tconsole.log(\"do nothing\");\n\t\t\tbreak;\n\t}\n\treturn temp;\n};\n\nexport default filterArrData;\n","import React, { CSSProperties } from \"react\";\nimport \"../../assets/scss/components/generic/tag.scss\";\n\n// tag component\nexport interface TagProps {\n\t// tags interface\n\tvalue: string; //tag value\n\tshape?: \"chip\" | \"circle\" | \"mini_circle\"; //tag shape\n\tcolor: \"red\" | \"green\" | \"blue\" | \"yellow\"; //tag color\n\twidth?: string; //tag width\n\theight?: string; //tag height\n\ttagStyles?: CSSProperties; //tag external Styles if required\n\tcn?: string;\n}\n\nconst Tag: React.FC = (props: TagProps) => {\n\treturn (\n\t\t// class name depend on shape and color\n\t\t// style should be applied only for circle tag\n\t\t\n\t\t\t{props.value}\n\t\t\n\t);\n};\n\nexport default Tag;\n","import React, { useState } from \"react\";\nimport { IListObj } from \"../types/genericTypes\";\nimport \"../../assets/scss/components/generic/overflowButton.scss\";\n\nexport interface IOverflowButtonProps {\n\tdefaultValue?: number | string; // default selected value\n\tdropdownOptions: Array; // list of all options in dropdown\n\tonSelect: (id: string | number, data?: any) => void; // the function to be called onSelect\n\tshowBuySellColor?: boolean; // shows colours if options are buy and sell; buy = green, sell = red\n\tonHover?: boolean;\n\tdata?: any;\n}\n\nconst OverflowButton: React.FC = (props: IOverflowButtonProps) => {\n\t/**\n\t * state and function for isDropdownOpen\n\t * selectedValue type is boolean\n\t * setSelectedValue(boolean)\n\t */\n\tconst [isDropdownOpen, setIsDropdownOpen] = useState(false);\n\t//if dropdown shown on hover\n\t//have to be closed after option selection\n\t//this state used to handle this scenario\n\tconst [isOptionSelected, setIsOptionSelected] = useState(false);\n\n\t/**\n\t * called when user selects an option\n\t * @param id id of the selected option\n\t * @returns onSelect prop passed from parent\n\t */\n\tfunction optionSelected(id: string | number) {\n\t\tsetIsDropdownOpen(false);\n\t\tsetIsOptionSelected(true);\n\t\treturn props.onSelect(id, props.data);\n\t}\n\treturn (\n\t\t\n\t\t\t{props.dropdownOptions.length > 0 && (\n\t\t\t\t setIsDropdownOpen(true)}\n\t\t\t\t\tonMouseOver={() => isOptionSelected && setIsOptionSelected(false)}\n\t\t\t\t>\n\t\t\t\t\t{/* show three dots */}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\t{/* when dropdown is open show overlay and content -> only on click */}\n\t\t\t{isDropdownOpen &&
setIsDropdownOpen(false)} />}\n\t\t\t
\n\t\t\t\t{/* Overlay covers the whole screen. When overlay is clicked, close the dropdown. */}\n\n\t\t\t\t{/* Dropdown list */}\n\t\t\t\t
    \n\t\t\t\t\t{props.dropdownOptions.map((option) => {\n\t\t\t\t\t\tlet color = \"black\";\n\t\t\t\t\t\tif (props.showBuySellColor) {\n\t\t\t\t\t\t\tif (option.display.toLowerCase() === \"buy\") {\n\t\t\t\t\t\t\t\tcolor = \"green\";\n\t\t\t\t\t\t\t} else if (option.display.toLowerCase() === \"sell\") {\n\t\t\t\t\t\t\t\tcolor = \"red\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t
  • optionSelected(option.value)}>\n\t\t\t\t\t\t\t\t{option.display}\n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t
\n\t\t\t
\n\t\t\t{/* )} */}\n\t\t
\n\t);\n};\n\nexport default OverflowButton;\n","export function compareValues(key: string, order: string = \"asc\") {\n\treturn function innerSort(a: any, b: any) {\n\t\tif (!a.hasOwnProperty(key) || !b.hasOwnProperty(key)) {\n\t\t\t// property doesn't exist on either object\n\t\t\treturn 0;\n\t\t}\n\n\t\tconst varA = isNaN(parseFloat(a[key])) ? a[key].toUpperCase() : parseFloat(a[key]);\n\t\tconst varB = isNaN(parseFloat(a[key])) ? b[key].toUpperCase() : parseFloat(b[key]);\n\n\t\tlet comparison = 0;\n\t\tif (varA > varB) {\n\t\t\tcomparison = 1;\n\t\t} else if (varA < varB) {\n\t\t\tcomparison = -1;\n\t\t}\n\t\treturn order === \"desc\" ? comparison * -1 : comparison;\n\t};\n}\n","import * as React from \"react\";\nimport { compareValues } from \"../utils/sortingUtils\";\nimport \"../../assets/scss/components/generic/sort.scss\";\n\nexport interface SortProps {\n\tsortList: Array>; //array of type any\n\tsortKey: string; // key to sort\n\tcolName: string;\n\tsortedColName: string | null;\n\tonSort: (data: Array>, sortState: eSortState, sortKey: string) => void;\n}\n\nexport interface SortState {\n\tsortState: eSortState;\n}\n\nexport enum eSortState {\n\t// NORMAL,\n\tASC,\n\tDESC\n}\n\nexport function sort(\n\tinitialData: Array>,\n\tsortState: eSortState,\n\tsortKey: string,\n\tonSort: (data: Array>, sortState: eSortState, sortKey: string) => void\n) {\n\tif (sortState === eSortState.ASC || sortState === eSortState.DESC) {\n\t\t// sort in ascending or descending\n\t\tlet sortData = initialData.map(group => {\n\t\t\tconst groupTemp = [...group];\n\t\t\tif (sortState === eSortState.DESC) {\n\t\t\t\treturn groupTemp.sort(compareValues(sortKey, \"desc\"));\n\t\t\t} else {\n\t\t\t\treturn groupTemp.sort(compareValues(sortKey));\n\t\t\t}\n\t\t});\n\t\tonSort(sortData, sortState, sortKey);\n\t}\n}\n\nclass Sort extends React.Component {\n\tstate = {\n\t\tsortState: eSortState.ASC\n\t};\n\n\tonSortClick = () => {\n\t\t// set the state to next state\n\t\t// and then call sort function\n\t\tthis.setState({ sortState: (this.state.sortState + 1) % 2 }, () =>\n\t\t\tsort(this.props.sortList, this.state.sortState, this.props.sortKey, this.props.onSort)\n\t\t);\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t);\n\t}\n}\nexport default Sort;\n","import React from \"react\";\nimport \"../../../../assets/scss/components/toc/orderBook/generic/obCheckbox.scss\";\n\nexport interface IObCheckboxProps {\n\tchecked: boolean; // true if checkbox is checked, else false\n\tchildren?: string | React.ReactElement; // the text/element for label\n\tname: string; // name for input checkbox\n\tdisabled?: boolean; // if disabled then pass true\n\tonChange: (event: React.ChangeEvent) => void; // function to be called on change\n}\n\nconst ObCheckbox: React.FC = (props: IObCheckboxProps) => {\n\treturn (\n\t\t\n\t);\n};\n\nexport default ObCheckbox;\n","import React from \"react\";\nimport \"../../assets/scss/components/generic/edButton.scss\";\nimport { Link } from \"react-router-dom\";\n\nexport interface IBtnProps {\n\tvalue: string | React.ReactElement;\n\t// value - display text of the button, react components can also be passed if required\n\ttype?: \"button\" | \"submit\" | \"reset\"; // the three types of button\n\tbtnTyp: \"primary\" | \"secondary\" | \"link\" | \"blue-link\"; // color of the button\n\tslim?: boolean; // pass this prop if button is slim\n\tdisabled?: boolean; // if disabled then pass true\n\tclassName?: string; // optional className if additional CSS needs to be provided\n}\nexport interface IEdButtonProps extends IBtnProps {\n\tonClick?: (event: React.MouseEvent) => void; // the function to be called onClick\n}\n\ninterface IEdLinkButtonProps extends IBtnProps {\n\tLinkHref: string;\n\ttarget?: \"_blank\" | \"_self\";\n}\n\nconst EdButton: React.FC = (props: IEdButtonProps) => {\n\t// Checks if button or action\n\tconst btnOrActionClass = props.btnTyp === \"primary\" || props.btnTyp === \"secondary\" ? \"button\" : \"action\";\n\n\treturn (\n\t\t\n\t\t\t{props.value}\n\t\t\n\t);\n};\n\nexport const EdLinkButton: React.FC = (props: IEdLinkButtonProps) => {\n\t// Checks if button or action\n\tconst btnOrActionClass = props.btnTyp === \"primary\" || props.btnTyp === \"secondary\" ? \"button\" : \"action\";\n\n\treturn (\n\t\t\n\t\t\t{props.value}\n\t\t\n\t);\n};\n\nexport const EdALinkButton: React.FC = (props: IEdLinkButtonProps) => {\n\t// Checks if button or action\n\tconst btnOrActionClass = props.btnTyp === \"primary\" || props.btnTyp === \"secondary\" ? \"button\" : \"action\";\n\n\treturn (\n\t\t\n\t\t\t{props.value}\n\t\t\n\t);\n};\n\nexport default EdButton;\n","import * as React from \"react\";\nimport \"../../../../assets/scss/components/toc/orderBook/generic/obAssetDetailPopup.scss\";\nimport \"../../../../assets/scss/components/toc/orderBook/obDetails/obDetails.scss\";\n\nexport interface IObAssetDetailPopupProps {}\n\nconst ObAssetDetailPopup: React.FC = (props) => {\n\treturn
{props.children}
;\n};\n\nexport default ObAssetDetailPopup;\n","import * as React from \"react\";\nimport EdButton from \"../../../generic/edButton\";\nimport \"../../../../assets/scss/components/toc/orderBook/generic/obNoDataFound.scss\";\nexport interface ITocNoDataProps {\n\tdata: Array>; // data to be filtered\n\tcallBackMeth: (filteredData: Array) => void; // function to be called on clicking of checkbox\n\terrMsg?: React.ReactNode;\n\tshowClrBtn?: boolean;\n}\n\nconst TocNoData: React.FC = (props) => {\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t

{props.errMsg ? props.errMsg : \"No results found\"}

\n\t\t\t{(props.showClrBtn === undefined || props.showClrBtn === true) && (\n\t\t\t\t props.callBackMeth(props.data)} />\n\t\t\t)}\n\t\t
\n\t);\n};\n\nexport default TocNoData;\n","import { apiService } from \"./apiService\";\nimport urlConfig from \"../../config/domain\";\nimport bStrg, { setbStrg } from \"./storageHelper\";\n\n//convert slash contained datestring to valid date with hypen separated\nexport const dateTimeFormat = (date: string, split = \"/\") => {\n\tif (date) {\n\t\tlet temp = split !== \" \" ? date.split(\" \") : [date],\n\t\t\tsplitSlash = temp[0].indexOf(split) >= 0 ? temp[0].split(split) : date;\n\t\ttemp[0] = splitSlash[2] + \"-\" + splitSlash[1] + \"-\" + splitSlash[0];\n\t\tlet newdate = temp[0];\n\t\ttemp[1] ? (newdate = temp[0] + \" \" + temp[1]) : (newdate = temp[0]);\n\t\treturn new Date(newdate);\n\t} else {\n\t\treturn new Date();\n\t}\n};\n\n// converts DD/MM/YYYY to new Date(MM/DD/YYYY)\nexport const dateFormat = (date: string) => {\n\tconst splitDate = date.split(\"/\");\n\treturn new Date(+splitDate[2], +splitDate[1] - 1, +splitDate[0]);\n};\n\n//api to fetch the server current Date time\nexport function GetCurrentDatetime(callback: CallableFunction) {\n\tapiService(\n\t\t{\n\t\t\turl: urlConfig.market.root + \"GetCurrentDatetime\",\n\t\t\tmethod: \"GET\"\n\t\t},\n\t\tcallback\n\t);\n}\n//callback method which receives today's date and time\nfunction TodayDateTime(res: any) {\n\tif (!res.error) {\n\t\tsetbStrg(\"todayDate\", JSON.parse(res).JsonData);\n\t}\n}\n//if server's today's date and time call an api and update the same,\n//this storage is avialble until page reloads\nif (!bStrg(\"todayDate\")) {\n\tGetCurrentDatetime(TodayDateTime);\n}\n\nexport function GetNoOfDaysOrMonths(from: string, to: string, type: string): number {\n\tconst OneDay: number = 1000 * 60 * 60 * 24;\n\tlet diffDaysOrMonths: number = 0;\n\tconst frmDate: Date = new Date(from);\n\tconst toDate: Date = new Date(to);\n\tswitch (type) {\n\t\tcase \"monthly\":\n\t\t\tlet months: number = (frmDate.getFullYear() - toDate.getFullYear()) * 12;\n\t\t\tmonths -= toDate.getMonth();\n\t\t\tmonths = frmDate.getMonth() - toDate.getMonth();\n\t\t\tmonths = months <= 0 ? 0 : months;\n\t\t\tdiffDaysOrMonths = months;\n\t\t\tbreak;\n\t\tcase \"daily\":\n\t\t\tdiffDaysOrMonths = (frmDate.getTime() - toDate.getTime()) / OneDay;\n\t\t\tbreak;\n\t\tcase \"weekly\":\n\t\t\tdiffDaysOrMonths = (frmDate.getTime() - toDate.getTime()) / (7 * OneDay);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tdiffDaysOrMonths = 0;\n\t\t\tbreak;\n\t}\n\n\treturn Math.round(diffDaysOrMonths);\n}\n//add number of days to the date sent in paramter\nexport const addDays = (date: Date, days: number): Date => {\n\tlet TempDate = date;\n\tTempDate.setDate(TempDate.getDate() + days);\n\n\treturn TempDate;\n};\n//minus number of days to the date sent in paramter\n\nexport const subDays = (date: Date, days: number): Date => {\n\tlet TempDate = date;\n\tTempDate.setDate(TempDate.getDate() - days);\n\n\treturn TempDate;\n};\nexport default dateTimeFormat;\n","export default function obtradeRowSelection(\n\tgroupIndex: number,\n\tindex: number,\n\ttableData: Array,\n\tisAllSelected: boolean,\n\tkey?: string,\n\tvalue?: any\n) {\n\tfunction handleRwWithKeyVal(row: any, selectFlag: boolean) {\n\t\t\n\t\tif (key) {\n\t\t\t// invert the status\n\t\t\tif (row[key] === value) {\n\t\t\t\trow.isSelected = !selectFlag;\n\t\t\t}\n\t\t} else {\n\t\t\trow.isSelected = !selectFlag;\n\t\t}\n\t\treturn row;\n\t}\n\t// copy the data\n\tlet data = [...tableData],\n\t\tallSelected: boolean = isAllSelected,\n\t\tcount: number = 0,\n\t\tcondCount: number = 0,\n\t\trwCount: number = 0;\n\n\t// if checkbox of any row is selected\n\tif (groupIndex >= 0 && index >= 0) {\n\t\tconst group = [...data[groupIndex]];\n\t\t// get the row\n\t\tconst row = { ...group[index] };\n\t\trow.isSelected = !tableData[groupIndex][index].isSelected;\n\n\t\t// put the updated row back in data\n\t\tgroup[index] = row;\n\t\tdata[groupIndex] = group;\n\t}\n\t// if all clicked on all selected checkbox\n\telse if (groupIndex === -1 && index === -1) {\n\t\t// loop over the data\n\t\t// If isAllDataSelected is true, then set every row to false\n\t\t// else if isAllDataSelected is false, then set every row to true\n\t\tdata = data.map(group => group.map((row: any) => handleRwWithKeyVal(row, isAllSelected)));\n\n\t\t// count = !isAllSelected ? data[0].length : 0;\n\n\t\tallSelected = !isAllSelected;\n\t}\n\n\tdata.forEach(group =>\n\t\tgroup.forEach((row: any) => {\n\t\t\trwCount += 1; //each row in data table\n\t\t\tif (row.isSelected === true) {\n\t\t\t\tcount += 1; //selected row count\n\t\t\t}\n\t\t\tif (key && row[key] === value) {\n\t\t\t\tcondCount += 1; //conditional verified row count\n\t\t\t}\n\t\t})\n\t);\n\t//if conditinal count matches with selected count then set all selected to true\n\tcount === condCount ? (allSelected = true) : (allSelected = false);\n\tif (!key) {\n\t\t// in the absence of condition check with total row counts\n\t\trwCount === count ? (allSelected = true) : (allSelected = false);\n\t}\n\treturn {\n\t\tdata: data,\n\t\tcount: count,\n\t\tallSelected: count > 0 ? allSelected : allSelected\n\t};\n}\n","/**\n * This function returns comma separated number (in indian format)\n * @param value number to be converted\n * @param decimalPos (optional) number of decimals required\n */\nexport function toINR(value: any, decimalPos?: number) {\n\t// if value is not a number || undefined || null then return null\n\t// otherwise return the comma separated number\n\t// isNaN(Number(value)) handles the `undefined` case\n\treturn value === null || isNaN(Number(value))\n\t\t? \"--\"\n\t\t: (Number(value) || 0).toLocaleString(\"en-IN\", {\n\t\t\t\tmaximumFractionDigits: decimalPos,\n\t\t\t\tminimumFractionDigits: decimalPos\n\t\t });\n}\n\n//converts exp number\nexport function fullWide(x: string | number) {\n\t// let x: any = Number(y);\n\treturn Number(x).toLocaleString(\"fullwide\", { useGrouping: false });\n}\n","import { openStatusArr } from \"../../toc/orderBook/obConstants\";\n\n// helper function to grop objects of an array based on a key\nexport const HObGroupBy = (array: Array, key: string, split?: string) => {\n\t// Return the end result\n\treturn array.reduce((result, currentValue, index) => {\n\t\tif (split && currentValue[key]) {\n\t\t\t// If an array already present for key, push it to the array. Else create an array and push the object\n\t\t\t(result[currentValue[key].split(split)[0]] = result[currentValue[key].split(split)[0]] || []).push(currentValue);\n\t\t} else {\n\t\t\t(result[currentValue[key]] = result[currentValue[key]] || []).push(currentValue);\n\t\t\t// (result[index] = result[index] || []).push(currentValue);\n\t\t}\n\n\t\t// Return the current iteration `result` value, this will be taken as next iteration `result` value and accumulate\n\t\treturn result;\n\t}, {}); // empty object is the initial value for result object\n};\n\nexport const HObGroupByRange = (array: Array, key1: string, key2: string, split?: string) => {\n\t// Return the end result\n\treturn array.reduce((result, currentValue, index) => {\n\t\tif (split && currentValue[key1] && currentValue[key2]) {\n\t\t\t// If an array already present for key1, push it to the array. Else create an array and push the object\n\t\t\t(result[currentValue[key1].split(split)[0] + \"-\" + currentValue[key2].split(split)[0]] =\n\t\t\t\tresult[currentValue[key1].split(split)[0] + \"-\" + currentValue[key2].split(split)[0]] || []).push(currentValue);\n\t\t} else {\n\t\t\t(result[currentValue[key1] + \"-\" + currentValue[key2]] = result[currentValue[key1] + \"-\" + currentValue[key2]] || []).push(currentValue);\n\t\t\t// (result[index] = result[index] || []).push(currentValue);\n\t\t}\n\n\t\t// Return the current iteration `result` value, this will be taken as next iteration `result` value and accumulate\n\t\treturn result;\n\t}, {}); // empty object is the initial value for result object\n};\n// helper function to group objects of an array based on status key with possible values defined in constants array\nexport const HOb2DGroupBy = (array: Array, statKey: string, matchValArr = openStatusArr) => {\n\t//return 2d array with conditinal grouping\n\treturn array.reduce(\n\t\t(arr: any, d: any) => {\n\t\t\tif (matchValArr.indexOf(d[statKey].toLowerCase()) >= 0) {\n\t\t\t\tarr[0] = [...arr[0], d];\n\t\t\t} else {\n\t\t\t\tarr[1] = [...arr[1], d];\n\t\t\t}\n\t\t\treturn arr;\n\t\t},\n\t\t[[], []]\n\t);\n};\n","import React, { useState } from \"react\";\nimport EdButton from \"../../../generic/edButton\";\nimport Search from \"../../../generic/search\";\nimport \"../../../../assets/scss/components/toc/orderBook/obContainer/obUtilHeader.scss\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport ObFilter from \"../generic/obFilter\";\nimport indexer from \"../../../types/genericTypes\";\n\nexport interface IObUtilHeaderProps {\n\tleftSideText: React.ReactElement; // data to show on the left part of util bar\n\tdata: Array>; // data to be searched or filtered\n\tsearchKey: string; // key on which search needs to be performed\n\tonDataFilter: (filteredData: any[], sText?: string, type?: string) => void; // returns filtered array after searching\n\tonSelectClick?: (event: React.MouseEvent) => void; // event after clicking on select button\n\tonFilterClick: (toggle: boolean) => void; // event after clicking on filter button\n\tonSearchClick: (hidePriNav: boolean) => void; // event after clicking on search button\n\tfilterReqData?: indexer;\n}\n\nexport enum EUtilHeaderState {\n\tNORMAL,\n\tSELECT,\n\tFILTER,\n\tSEARCH\n}\n\nconst ObUtilHeader: React.FC = (props) => {\n\tconst [utilHeaderState, setUtilHeaderState] = useState(EUtilHeaderState.NORMAL);\n\tfunction onSearchClick(e: React.MouseEvent) {\n\t\tsetUtilHeaderState(EUtilHeaderState.SEARCH);\n\n\t\tprops.onSearchClick(true);\n\t}\n\n\tfunction onCancelClick() {\n\t\tsetUtilHeaderState(EUtilHeaderState.NORMAL);\n\t\tprops.onSearchClick(false);\n\t\tprops.onDataFilter(props.data, \"\", \"search\");\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{utilHeaderState === EUtilHeaderState.NORMAL && (\n\t\t\t\t
\n\t\t\t\t\t
{props.leftSideText}
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t{props.onSelectClick && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tSelect\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbtnTyp=\"blue-link\"\n\t\t\t\t\t\t\t\t\tonClick={props.onSelectClick}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{props.data[0].length > 0 && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\t\t// remove all the empty arrays\n\t\t\t\t\t\t\t\t\t\tprops.onDataFilter(filteredData.filter((data) => data.length));\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\ttglClick={props.onFilterClick}\n\t\t\t\t\t\t\t\t\tfilterInputParams={props.filterReqData || { status: \"sts\" }}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{props.data[0].length > 0 && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{!DeviceContext().isMobile && Search}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbtnTyp=\"blue-link\"\n\t\t\t\t\t\t\t\t\tonClick={onSearchClick}\n\t\t\t\t\t\t\t\t\tclassName=\"search_btn\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\t\t\t{utilHeaderState === EUtilHeaderState.SEARCH && (\n\t\t\t\t
\n\t\t\t\t\t{/* Search takes 1D array and returns 1D array\n\t\t\t\t\tSo we need to convert it accordingly */}\n\t\t\t\t\t props.onDataFilter(data, sText, type)}\n\t\t\t\t\t\tclassname=\"active\"\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default ObUtilHeader;\n","import React from \"react\";\nimport \"../../assets/scss/components/generic/search.scss\";\nimport DeviceContext from \"../service/indentifyDevice\";\n\nexport interface SearchProps {\n searchList: Array;\n searchKey: string;\n onSearch: (filteredData: Array, sText?: string, type?: string) => void;\n classname?: string;\n placeholder?: string;\n}\n\nconst Search: React.FC = (props) => {\n const searchEle = React.useRef(null);\n\n function handleChange(e: React.ChangeEvent) {\n // Variable to hold the original version of the list\n let currentList = [];\n // Variable to hold the filtered list before putting into state\n let newList = [];\n\n // If the search bar isn't empty\n if (e.target.value !== \"\") {\n // Assign the original list to currentList\n currentList = props.searchList;\n const keysArray = props.searchKey.split(\";\");\n\n // Use .filter() to determine which items should be displayed\n // based on the search terms\n newList = currentList.map((g: Array) => {\n const result = g.filter((item) => {\n // change current item to lowercase\n // If there are multiple keys in array, then find the key that has data\n // if no key has data, then take the last key\n const key: string =\n keysArray.find((k) => item[k]) || keysArray[keysArray.length - 1];\n // !item[key] && console.log(key);\n const lc = item[key] ? item[key].toLowerCase() : \"\";\n // change search term to lowercase\n const filter = e.target.value.toLowerCase();\n // check to see if the current list item includes the search term\n // If it does, it will be added to newList. Using lowercase eliminates\n // issues with capitalization in search terms and search content\n return lc.includes(filter);\n });\n return result;\n });\n } else {\n // If the search bar is empty, set newList to original task list\n newList = props.searchList;\n }\n // Set the filtered state based on what our rules added to newList\n props.onSearch(newList, e.target.value, \"search\");\n }\n\n function reset() {\n let ele = document.getElementById(\"tableDataSearchEle\") as HTMLInputElement;\n ele.value = \"\";\n props.onSearch(props.searchList, \"\", \"search\");\n }\n\n return (\n
\n \n \n {!DeviceContext().isDesktop &&\n searchEle.current?.value !== \"\" &&\n searchEle.current?.value !== undefined && (\n \n )}\n
\n );\n};\n\nexport default Search;\n","import React from \"react\";\nimport \"../../assets/scss/components/generic/toggle.scss\";\n\nexport interface IToggleProps {\n\tisOn: boolean; // true if toggle is on, else false\n\tchildren: string | React.ReactElement; // text/element for label\n\tname: string; // name for input checkbox\n\tonChange: (event: React.ChangeEvent) => void; // function to be called on change\n}\n\nconst Toggle: React.FC = (props: IToggleProps) => {\n\treturn (\n\t\t\n\t);\n};\n\nexport default Toggle;\n","import React, { useState, useEffect } from \"react\";\nimport Toggle from \"../../../generic/toggle\";\nimport ObCheckbox from \"./obCheckbox\";\nimport EdButton from \"../../../generic/edButton\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport indexer from \"../../../types/genericTypes\";\nimport { Idevice } from \"../../../types/device\";\nimport { HOb2DGroupBy } from \"../../../service/orderBook/obGrpByHelper\";\nimport {\n ChipStatusComb,\n ChipStatusMfSipComb,\n openStatusArr,\n ChipStatusMfComb,\n} from \"./../obConstants\";\nimport \"../../../../assets/scss/components/generic/filter.scss\";\n\nexport interface ObFilterProps {\n data: Array>; // data to be filtered\n onFilter: (filteredData: Array) => void; // function to be called on clicking of checkbox\n filterInputParams: indexer;\n tglClick?: (toggle: boolean) => void;\n}\n\ninterface ICheckboxState {\n value: string;\n isChecked: boolean;\n}\n\nconst ObFilter: React.FC = (props) => {\n //setting state initially as false\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n const [isAllSelected, setIsAllSelected] = useState(true);\n\n const deviceState: Idevice = DeviceContext();\n let filterDropDownOption: Array;\n\n switch (props.filterInputParams.aType) {\n case \"mf\":\n filterDropDownOption = [\n { value: \"In Process\", isChecked: true },\n { value: \"Completed\", isChecked: true },\n { value: \"Rejected\", isChecked: true },\n { value: \"Cancelled\", isChecked: true },\n { value: \"AMO\", isChecked: true },\n ];\n break;\n case \"mfSip\":\n filterDropDownOption = [\n { value: \"Active\", isChecked: true },\n { value: \"Inactive\", isChecked: true },\n ];\n break;\n case \"pm\":\n filterDropDownOption = [\n { value: \"Open\", isChecked: true },\n { value: \"Completed\", isChecked: true },\n { value: \"Rejected\", isChecked: true },\n { value: \"Cancelled\", isChecked: true },\n ];\n break;\n default:\n if (props.filterInputParams.isHistory) {\n filterDropDownOption = [\n { value: \"Completed\", isChecked: true },\n { value: \"Rejected\", isChecked: true },\n { value: \"Cancelled\", isChecked: true },\n ];\n } else {\n filterDropDownOption = [\n { value: \"Open\", isChecked: true },\n { value: \"Completed\", isChecked: true },\n { value: \"Rejected\", isChecked: true },\n { value: \"Cancelled\", isChecked: true },\n { value: \"AMO\", isChecked: true },\n ];\n }\n break;\n }\n // setting checkboxes values\n const [checkboxesState, setcheckboxesState] = useState(filterDropDownOption);\n\n //used to previous State value\n const prevCheckboxesStateRef: any = React.useRef();\n\n const prevCheckBoxState: Array = prevCheckboxesStateRef.current;\n\n const [isToggleOn, setIsToggleOn] = useState(\n props.filterInputParams.showOpenOrderOnTop || false\n );\n\n //event to be performed on onChecked\n function onChecked(index: number) {\n const tempCheckboxesState = [...checkboxesState];\n\n const filteredData = groupData(props.data[0], isToggleOn);\n\n // if all orders checkbox is clicked\n if (index === -1) {\n !deviceState.isMobile &&\n props.onFilter(isAllSelected ? [[]] : filteredData);\n setIsAllSelected(!isAllSelected);\n setcheckboxesState(\n tempCheckboxesState.map((tempCheckboxState) => ({\n ...tempCheckboxState,\n isChecked: !isAllSelected,\n }))\n );\n return;\n }\n\n // if any other checkbox is clicked\n const currentCheckbox = { ...tempCheckboxesState[index] };\n\n currentCheckbox.isChecked = !checkboxesState[index].isChecked;\n tempCheckboxesState[index] = currentCheckbox;\n //set all selected flag if all the checkboxes are enabled\n setIsAllSelected(\n tempCheckboxesState.filter(\n (tempCheckboxState) => tempCheckboxState.isChecked\n ).length === tempCheckboxesState.length\n );\n if (\n !tempCheckboxesState.find(\n (tempCheckboxState) => tempCheckboxState.isChecked\n )\n ) {\n // if all checkboxes are not selected\n !deviceState.isMobile &&\n props.onFilter(!isAllSelected ? [[]] : filteredData);\n } else {\n // if any checkbox is selected\n !deviceState.isMobile &&\n props.onFilter(filterData(filteredData, tempCheckboxesState));\n }\n setcheckboxesState(tempCheckboxesState);\n }\n\n //event to be performed on onSwitchOnOff\n function onSwitchOnOff() {\n let filteredData;\n if (isToggleOn) {\n // now toggle is off\n filteredData = filterData(props.data, checkboxesState);\n } else {\n // now toggle is on\n // group the data\n filteredData = groupData(props.data[0], true);\n filteredData = !isAllSelected\n ? filterData(filteredData, checkboxesState)\n : filteredData;\n }\n\n props.onFilter(filteredData);\n props.tglClick && props.tglClick(!isToggleOn);\n\n setIsToggleOn(!isToggleOn);\n }\n\n /**\n * This function groups open/pending and other data separately\n * @param data array of data to be grouped\n */\n\n function groupData(data: Array, isToggleOn: boolean): Array> {\n if (isToggleOn) {\n // if toggle is switched on, then group the data\n return HOb2DGroupBy(\n data,\n props.filterInputParams.status,\n props.filterInputParams.aType === \"mf\"\n ? [\"accepted\"]\n : props.filterInputParams.aType === \"mfSip\"\n ? [\"running\"]\n : openStatusArr\n );\n } else {\n // if toggle is switched off then return the initial data in 2D form\n return [data];\n }\n }\n\n function filterData(\n data: Array>,\n checkboxesState: Array\n ): Array> {\n return data.map((group) => {\n const a = group.filter((d) => {\n if (!checkboxesState.find((checkboxState) => checkboxState.isChecked)) {\n // if all checkboxes are unchecked\n return false;\n }\n // else\n if (!isAllSelected) {\n return !!checkboxesState.find((checkbox) => {\n let checkBoxFilter: Boolean,\n statusObj: indexer = ChipStatusComb;\n switch (props.filterInputParams.aType) {\n case \"mf\":\n statusObj = ChipStatusMfComb;\n break;\n case \"mfSip\":\n statusObj = ChipStatusMfSipComb;\n break;\n default:\n //console.log(\"do nothing\");\n break;\n }\n\n let stsval: string = statusObj[checkbox.value.toLowerCase()] || \"\"; //used to filter mf SIP's\n //mf's SIP with status running are of active SIP rest all are inactvie\n checkBoxFilter =\n stsval.indexOf(\"running\") < 0 &&\n props.filterInputParams.aType !== \"mfSip\"\n ? d[props.filterInputParams.status] &&\n statusObj[d[props.filterInputParams.status].toLowerCase()] &&\n checkbox.value.toLowerCase() ===\n statusObj[d[props.filterInputParams.status].toLowerCase()]\n : stsval.indexOf(\"not\") < 0\n ? stsval === d[props.filterInputParams.status].toLowerCase()\n : stsval.replace(\"not \", \"\") !==\n d[props.filterInputParams.status].toLowerCase();\n return (\n checkbox.isChecked &&\n (checkBoxFilter ||\n (d.ogt &&\n checkbox.value.toLowerCase() === d.ogt.toLowerCase()) ||\n (d.ordStatus &&\n d.ordStatus.toLowerCase() === checkbox.value.toLowerCase()))\n );\n });\n } else {\n return isAllSelected;\n }\n });\n return a;\n });\n }\n function applyFilter() {\n const filteredData = groupData(props.data[0], isToggleOn);\n props.onFilter(filterData(filteredData, checkboxesState));\n setIsDropdownOpen(false);\n }\n function reset() {\n //ob mobile filters will be applied on clicking apply filter, else it will be restored to prev State\n if (deviceState.isMobile) {\n setcheckboxesState(prevCheckBoxState);\n prevCheckBoxState.filter((s) => s.isChecked).length ===\n checkboxesState.length\n ? setIsAllSelected(true)\n : setIsAllSelected(false);\n }\n setIsDropdownOpen(false);\n }\n\n useEffect(() => {\n prevCheckboxesStateRef.current = checkboxesState;\n }, [props.data]);\n\n useEffect(() => {\n setIsToggleOn(props.filterInputParams.showOpenOrderOnTop);\n }, [props.filterInputParams.showOpenOrderOnTop]);\n\n return (\n \n {/* dropdown toggle on click of button */}\n \n \n {!deviceState.isMobile && Filter}\n \n }\n btnTyp=\"blue-link\"\n onClick={() => setIsDropdownOpen(true)}\n />\n\n {/* if isDropdownOpen is true the the dropdown will show */}\n {isDropdownOpen && (\n <>\n
reset()} />\n
    \n {/* toggle the radio button */}\n {(!props.filterInputParams ||\n props.filterInputParams.showOpenOrderTgl !== false ||\n props.filterInputParams.showOpenOrderTgl === true) && (\n <>\n
  • \n \n {props.filterInputParams.aType === \"mf\"\n ? \"Accepted orders on top\"\n : props.filterInputParams.aType === \"mfSip\"\n ? \"Active orders on top\"\n : \"Open orders on top\"}\n \n
  • \n
    \n \n )}\n
    \n
  • \n onChecked(-1)}\n >\n All Orders\n \n
  • \n {/* checkboxes check /uncheck */}\n {checkboxesState.map((checkbox, index) => (\n
  • \n onChecked(index)}\n disabled={isAllSelected}\n >\n {checkbox.value}\n \n
  • \n ))}\n
    \n {deviceState.isMobile && (\n
    \n reset()}\n />\n \n
    \n )}\n
\n \n )}\n
\n );\n};\nexport default ObFilter;\n","export const range = (size: number, startAt = 0): Array => {\n\treturn [...(Array(size).keys() as any)].map((i) => i + startAt);\n};\n\nexport const rangeStEnd = (startAt = 0, endAt = 0, inc = 1): Array => {\n\treturn [...(Array(endAt - startAt).keys() as any)].map((i) => startAt + i + inc);\n};\n","import * as React from \"react\";\nimport DatePicker from \"react-datepicker\";\n\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport { GetCurrentDatetime, subDays, addDays } from \"../../../service/dateTimeService\";\nimport \"../../../../assets/scss/components/generic/datePicker.scss\";\nimport moment from \"moment\";\nimport { range } from \"../../../service/rangeGen\";\nimport bStrg, { setbStrg } from \"../../../service/storageHelper\";\nimport DeviceContext from \"./../../../service/indentifyDevice\";\nexport interface IDatePickerIntProps {\n\tsendDates: (frmDt: Date, toDate: Date) => void;\n\ttoDateCt?: number; //number identifies to minus or plus to todate\n\tplusDays: number;\n}\nexport interface IDatePickerIntState {\n\tfromDate: Date;\n\ttoDate: Date;\n\ttoday: Date;\n\ttoMax: Date;\n\tfromMax: Date;\n\tshowMnthYrDtPicker: 1 | 2 | 0; //month picker|year picker|datepicker\n\tyears: Array;\n}\n\nexport default class DatePickerInt extends React.Component {\n\tconstructor(props: IDatePickerIntProps) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tfromDate: subDays(new Date(), this.props.plusDays),\n\t\t\ttoDate: subDays(new Date(), !props.toDateCt && props.toDateCt !== 0 ? 1 : props.toDateCt),\n\t\t\tfromMax: new Date(),\n\t\t\ttoMax: new Date(),\n\t\t\ttoday: new Date(),\n\t\t\tshowMnthYrDtPicker: 0,\n\t\t\tyears: range(12, new Date().getFullYear() - 11)\n\t\t};\n\t\tthis.onFromChange = this.onFromChange.bind(this);\n\t\tthis.updateWithTodayDate = this.updateWithTodayDate.bind(this);\n\t\tthis.handleNav = this.handleNav.bind(this);\n\t}\n\tisMobile = DeviceContext().isMobile;\n\ttodayDate: string = bStrg(\"todayDate\") || new Date();\n\tyears: Array = [];\n\tmonths = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n\tmonthsFull = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\n\tonFromChange = (date: any) => {\n\t\tlet newDate = new Date(date),\n\t\t\tplus15Days = addDays(newDate, this.props.plusDays),\n\t\t\tme = this;\n\n\t\t//check if selected date plus 15 days(ST + 15) is greater than today date\n\t\t//else set to date with today's date(T - 1)\n\n\t\tif (plus15Days.valueOf() < this.state.today.valueOf()) {\n\t\t\tthis.setState({\n\t\t\t\ttoDate: plus15Days\n\t\t\t});\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\ttoDate: subDays(this.state.today, 0)\n\t\t\t});\n\t\t}\n\n\t\tthis.setState({\n\t\t\tfromDate: date\n\t\t});\n\n\t\tsetTimeout(function () {\n\t\t\tme.props.sendDates(me.state.fromDate, me.state.toDate);\n\t\t}, 300);\n\t};\n\n\tupdateWithTodayDate = (date: string) => {\n\t\tthis.setState({\n\t\t\ttoMax: subDays(new Date(date), !this.props.toDateCt && this.props.toDateCt !== 0 ? 1 : this.props.toDateCt),\n\t\t\ttoday: new Date(date),\n\t\t\tfromMax: new Date(date),\n\t\t\tfromDate: subDays(new Date(date), this.props.plusDays),\n\t\t\ttoDate: subDays(new Date(date), !this.props.toDateCt && this.props.toDateCt !== 0 ? 1 : this.props.toDateCt),\n\t\t\tyears: range(12, new Date(date).getFullYear() - 11)\n\t\t});\n\t\tthis.props.sendDates(this.state.fromDate, this.state.toDate);\n\t};\n\tcomponentDidMount() {\n\t\tif (!this.todayDate) {\n\t\t\tGetCurrentDatetime((res: any) => {\n\t\t\t\tif (!res.error) {\n\t\t\t\t\tthis.todayDate = JSON.parse(res).JsonData;\n\t\t\t\t\tsetbStrg(\"todayDate\", this.todayDate);\n\t\t\t\t\tthis.updateWithTodayDate(this.todayDate);\n\t\t\t\t} else {\n\t\t\t\t\t//if api fails\n\t\t\t\t\tthis.updateWithTodayDate(this.todayDate);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tthis.updateWithTodayDate(this.todayDate);\n\t\t}\n\t}\n\n\thandleNav = (mnthYr?: string) => {\n\t\tswitch (mnthYr) {\n\t\t\tcase \"month\":\n\t\t\t\tthis.setState({\n\t\t\t\t\tshowMnthYrDtPicker: 1\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase \"year\":\n\t\t\t\tthis.setState({\n\t\t\t\t\tshowMnthYrDtPicker: 2\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthis.setState({\n\t\t\t\t\tshowMnthYrDtPicker: 0\n\t\t\t\t});\n\t\t}\n\t};\n\t//return week header in case of month range\n\tweekX = () => {\n\t\treturn (\n\t\t\t
\n\t\t\t\t
Su
\n\t\t\t\t
Mo
\n\t\t\t\t
Tu
\n\t\t\t\t
We
\n\t\t\t\t
Th
\n\t\t\t\t
Fr
\n\t\t\t\t
Sa
\n\t\t\t
\n\t\t);\n\t};\n\t//month picker\n\tmonthPicker = (date: Date, changeMonth: (month: number) => void) => {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\n\t\t\t\t
    \n\t\t\t\t\t{this.months.map((month: string, i: number) => {\n\t\t\t\t\t\tlet selectedClass = \"\";\n\t\t\t\t\t\tif (i === this.state.fromDate.getMonth() || i === this.state.toDate.getMonth()) {\n\t\t\t\t\t\t\tselectedClass = \" selected\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t this.state.today.getMonth()\n\t\t\t\t\t\t\t\t\t\t\t? \"disabled\"\n\t\t\t\t\t\t\t\t\t\t\t: \"\" + selectedClass\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\tthis.handleNav();\n\t\t\t\t\t\t\t\t\t\tchangeMonth(i);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{month}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t
\n\t\t\t\n\t\t);\n\t};\n\t//year picker\n\tyearPicker = (changeYear: (year: number) => void) => {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{\" \"}\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tyears: range(12, this.state.years[0] - 12)\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t this.handleNav(\"year\")}>\n\t\t\t\t\t\t{this.state.years[0] + \"-\" + this.state.years[this.state.years.length - 1]}\n\t\t\t\t\t\n\t\t\t\t\t{/* disable next if exceeding year */}\n\t\t\t\t\t\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tyears: range(12, this.state.years[this.state.years.length - 1] + 1)\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdisabled={this.state.today.getFullYear() === this.state.years[this.state.years.length - 1]}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
    \n\t\t\t\t\t{this.state.years.map((yr: number, i: number) => {\n\t\t\t\t\t\tlet selectedClass = \"\";\n\t\t\t\t\t\tif (yr === this.state.fromDate.getFullYear() || yr === this.state.toDate.getFullYear()) {\n\t\t\t\t\t\t\tselectedClass = \" selected\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tthis.handleNav();\n\t\t\t\t\t\t\t\t\t\tchangeYear(yr);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{yr}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t
\n\t\t\t\n\t\t);\n\t};\n\t//custom calender header\n\tCustomCalenHeader = (\n\t\tdate: Date,\n\t\tchangeYear: (year: number) => void,\n\t\tchangeMonth: (month: number) => void,\n\t\tdecreaseMonth: () => void,\n\t\tincreaseMonth: () => void,\n\t\tprevMonthButtonDisabled: boolean,\n\t\tnextMonthButtonDisabled: boolean,\n\t\tdecreaseYear: () => void,\n\t\tincreaseYear: () => void,\n\t\tprevYearButtonDisabled: boolean,\n\t\tnextYearButtonDisabled: boolean\n\t): React.ReactNode => {\n\t\treturn (\n\t\t\t
\n\t\t\t\t{this.state.showMnthYrDtPicker === 0 && (\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{this.isMobile && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{/* //show date range if to and from falls in two different months */}\n\t\t\t\t\t\t\t{/* Don;t show date range in mobile */}\n\t\t\t\t\t\t\t{!this.isMobile && new Date(this.state.fromDate).getMonth() !== new Date(this.state.toDate).getMonth() && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{new Date(this.state.fromDate).getMonth() !== new Date(this.state.toDate).getMonth() && (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{this.weekX()}\n\t\t\t\t\t\t\t\t{!this.isMobile && this.weekX()}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t\t{/* show month picker */}\n\n\t\t\t\t{this.state.showMnthYrDtPicker === 1 && this.monthPicker(date, changeMonth)}\n\t\t\t\t{/* show year picker */}\n\t\t\t\t{this.state.showMnthYrDtPicker === 2 && this.yearPicker(changeYear)}\n\t\t\t
\n\t\t);\n\t};\n\tpublic render() {\n\t\treturn (\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\tthis.CustomCalenHeader(\n\t\t\t\t\t\t\tdate,\n\t\t\t\t\t\t\tchangeYear,\n\t\t\t\t\t\t\tchangeMonth,\n\t\t\t\t\t\t\tdecreaseMonth,\n\t\t\t\t\t\t\tincreaseMonth,\n\t\t\t\t\t\t\tprevMonthButtonDisabled,\n\t\t\t\t\t\t\tnextMonthButtonDisabled,\n\t\t\t\t\t\t\tdecreaseYear,\n\t\t\t\t\t\t\tincreaseYear,\n\t\t\t\t\t\t\tprevYearButtonDisabled,\n\t\t\t\t\t\t\tnextYearButtonDisabled\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\tonCalendarClose={() => this.handleNav()}\n\t\t\t\t\tdateFormat=\"dd MMM yy\"\n\t\t\t\t\tselected={this.state.fromDate}\n\t\t\t\t\tonChange={(date) => {\n\t\t\t\t\t\tthis.onFromChange(date);\n\t\t\t\t\t}}\n\t\t\t\t\tselectsStart\n\t\t\t\t\tselectsEnd\n\t\t\t\t\tstartDate={this.state.fromDate}\n\t\t\t\t\tendDate={this.state.toDate}\n\t\t\t\t\tmaxDate={this.state.toMax}\n\t\t\t\t\tcalendarClassName={\n\t\t\t\t\t\t(this.state.showMnthYrDtPicker !== 0\n\t\t\t\t\t\t\t? \"hideDp\"\n\t\t\t\t\t\t\t: new Date(this.state.fromDate).getMonth() !== new Date(this.state.toDate).getMonth()\n\t\t\t\t\t\t\t? \"rangeCalen\"\n\t\t\t\t\t\t\t: \"\") + \" ib vMid\"\n\t\t\t\t\t}\n\t\t\t\t\tmonthsShown={\n\t\t\t\t\t\tthis.isMobile\n\t\t\t\t\t\t\t? 1\n\t\t\t\t\t\t\t: new Date(this.state.fromDate).getMonth() !== new Date(this.state.toDate).getMonth() &&\n\t\t\t\t\t\t\t this.state.showMnthYrDtPicker === 0\n\t\t\t\t\t\t\t? 2\n\t\t\t\t\t\t\t: 1\n\t\t\t\t\t}\n\t\t\t\t\tshowPreviousMonths={\n\t\t\t\t\t\tnew Date(this.state.toDate).getMonth() < new Date(this.state.fromDate).getMonth() && this.state.showMnthYrDtPicker === 0\n\t\t\t\t\t}\n\t\t\t\t\tcustomInput={\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\tshowPopperArrow={false}\n\t\t\t\t/>\n\t\t\t
\n\t\t);\n\t}\n}\n","import React from \"react\";\nimport Tag from \"../../../../generic/tag\";\nimport \"../../../../../assets/scss/components/toc/orderBook/instruments/instrumentsDsk.scss\";\nimport \"../../../../../assets/scss/components/toc/orderBook/instruments/instrumentsTab.scss\";\nimport { ChipColorKeyComb } from \"../../obConstants\";\n\nexport interface ObAssetsDetlSymProps {\n\tdate?: string;\n\ttrsTyp: string;\n\ttitle?: string;\n\tsubTitle?: string;\n\tsts: string;\n}\n\nconst ObAssetsDetlSym: React.FC = (props) => {\n\treturn (\n\t\t
\n\t\t\t

{props.date}

\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t

{props.title}

\n\t\t\t\t\t

{props.subTitle}

\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{props.sts && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\tStatus\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default ObAssetsDetlSym;\n","import React, { CSSProperties, createRef } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { IListObj } from \"../types/genericTypes\";\nimport \"../../assets/scss/components/generic/tab.scss\";\n\nexport interface ITabProps {\n\tdefaultValue?: number | string; // default selected value\n\ttabList: Array; // list of all options in list\n\tposition: \"left\" | \"center\"; // position where the tabs should be present\n\tonSelect?: (id: string | number) => void; // the function to be called onSelect\n}\n\nexport interface ITabState {\n\tselectedValue?: number | string; // current selected value\n\tblueBarStyle: CSSProperties; // style for blueBar\n}\n\nclass Tab extends React.Component {\n\tsecNavigationRef: React.RefObject;\n\n\tconstructor(props: ITabProps) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tselectedValue: this.props.defaultValue,\n\t\t\tblueBarStyle: {} as CSSProperties\n\t\t};\n\t\tthis.secNavigationRef = createRef();\n\n\t\twindow.onload = () => {\n\t\t\tthis.makeTabUnderline();\n\t\t};\n\t}\n\n\tmakeTabUnderline() {\n\t\tconst RefEle = this.secNavigationRef.current?.getElementsByClassName(`${this.props.defaultValue}`)[0] as HTMLLIElement;\n\t\tif (RefEle) {\n\t\t\tconst { offsetWidth, offsetLeft } = RefEle as HTMLLIElement;\n\t\t\tthis.setState({ blueBarStyle: { width: offsetWidth, left: offsetLeft } });\n\t\t}\n\t}\n\n\ttabSelected = (e: React.MouseEvent, id: number | string) => {\n\t\tconst { offsetWidth, offsetLeft } = e.target as HTMLLIElement;\n\t\tthis.setState({ blueBarStyle: { width: offsetWidth, left: offsetLeft } });\n\t\tthis.setState({ selectedValue: id });\n\t\tif (this.props.onSelect) {\n\t\t\tthis.props.onSelect(id);\n\t\t}\n\t};\n\n\tcomponentDidMount() {\n\t\tthis.makeTabUnderline();\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t{this.props.tabList.map((tab, index) => (\n\t\t\t\t\t this.tabSelected(e, tab.value)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{tab.href && {tab.display}}\n\t\t\t\t\t\t{!tab.href && tab.display}\n\t\t\t\t\t\n\t\t\t\t))}\n\t\t\t\t\n\t\t\t
\n\t\t);\n\t}\n}\n\nexport default Tab;\n","import * as React from \"react\";\n\nexport interface IOrderLog {\n\ttime: string;\n\tsts: string;\n}\n\nexport interface IObOrderLogProps {\n\tlogs?: Array;\n}\n\nconst ObOrderLog: React.FC = (props) => {\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t

Order Log

\n\t\t\t\t
    \n\t\t\t\t\t{props.logs?.map((log, index) => (\n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t{/*

    {moment((dateTimeFormat(log.rcvEpTim))).format(\"D MMM 'YY | HH:mm:ss\") }

    */}\n\t\t\t\t\t\t\t

    {log.time}

    \n\t\t\t\t\t\t\t
    {log.sts}
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
  • \n\t\t\t\t\t))}\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default ObOrderLog;\n","import React from \"react\";\nimport \"../../assets/scss/components/generic/radioButton.scss\";\nimport { IListObj } from \"../types/genericTypes\";\n\nexport interface RadioButtonProps {\n list: IListObj; //list of all options in radio btn\n name: string;\n selected?: number | string; // selected value\n onChange: (event: React.ChangeEvent) => void; // function to be called on change\n moduleName?: \"orderBook\" | \"orderPlacement\" | \"fundTransfer\"; // takes orderBook as default\n disabled?: boolean;\n}\n\nconst RadioButton: React.FC = (props) => {\n const moduleName = props.moduleName ? props.moduleName : \"orderBook\";\n return (\n \n );\n};\n\nexport default RadioButton;\n","export default __webpack_public_path__ + \"static/media/loading-refresh.8976c180.gif\";","import React, { ReactNode } from \"react\";\nimport \"../../assets/scss/components/generic/loader.scss\";\nimport loaderImage from \"../../assets/images/loading-refresh.gif\";\nexport interface ILoaderProps {\n color?: string;\n size: number;\n}\n\nexport const SLoader = (size: number, color: string): ReactNode => {\n return (\n
\n \n
\n );\n};\n\nconst Loader: React.FC = (props: ILoaderProps) => {\n let color = props.color || \"white\";\n return (\n
\n \n
\n );\n};\nexport const PageLoader: React.FC = (props: ILoaderProps) => {\n let color = props.color || \"white\";\n return (\n
\n \n
\n );\n};\n\nexport default Loader;\n","import React, { useState } from \"react\";\nimport RadioButton from \"../../../generic/radioButton\";\nimport EdButton from \"../../../generic/edButton\";\nimport Loader from \"../../../generic/loader\";\nimport \"../../../../assets/scss/components/toc/orderBook/obConvertPositions/obProductTypeSelectDesk.scss\";\nimport \"../../../../assets/scss/components/toc/orderBook/obConvertPositions/obProductTypeSelectMob.scss\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport { IListObj } from \"../../../types/genericTypes\";\n\nexport interface IObProductTypeSelectProps {\n\tlist: Array; // list of all options\n\tnumOfQty: number; // number of quantities selected\n\tonConvertPosition: (selectedRadio: string) => void;\n\tisProcessing: boolean;\n\tonClose?: () => void;\n}\n\nconst ObProductTypeSelect: React.FC = (props: IObProductTypeSelectProps) => {\n\tconst defaultBtnTxt = DeviceContext().isMobile ? \"Convert\" : \"Convert Positions\";\n\tconst [selectedRadio, setSelectedRadio] = useState();\n\t// const [btnText, setBtnText] = useState(defaultBtnTxt as string | React.ReactElement);\n\tconst processingBtn = (\n\t\t\n\t\t\tProcessing\n\t\t\t\n\t\t\n\t);\n\n\tfunction onConvertPosition(event: React.MouseEvent) {\n\t\tevent.preventDefault();\n\t\t// setBtnText(\n\t\t// \t\n\t\t// \t\tProcessing\n\t\t// \t\t\n\t\t// \t\n\t\t// );\n\t\tprops.onConvertPosition(selectedRadio!);\n\t}\n\n\tfunction onClose(event: React.MouseEvent) {\n\t\tevent.preventDefault();\n\t\tprops.onClose && props.onClose();\n\t}\n\n\treturn (\n\t\t
\n\t\t\t

Select Product Type

\n\t\t\t
    \n\t\t\t\t{props.list.map((item: any) => (\n\t\t\t\t\t
  • setSelectedRadio(item.value)}>\n\t\t\t\t\t\t setSelectedRadio(item.value)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
  • \n\t\t\t\t))}\n\t\t\t
\n\t\t\t
\n\t\t\t\t

Total

\n\t\t\t\t

\n\t\t\t\t\t{props.numOfQty} Qty\n\t\t\t\t\t{selectedRadio && \" to \" + props.list.find((e) => e.value === selectedRadio)?.display}\n\t\t\t\t

\n\t\t\t
\n\t\t\t{DeviceContext().isMobile && (\n\t\t\t\t\n\t\t\t)}\n\t\t\t\n\t\t\n\t);\n};\n\nexport default ObProductTypeSelect;\n","import * as React from \"react\";\nimport EdButton from \"../../../generic/edButton\";\nimport \"../../../../assets/scss/components/toc/orderBook/generic/obToastMessPopup.scss\";\nexport interface IObToastMessPopupProps {\n\tonBackClick: (event: React.MouseEvent) => void; // the function to be called onClick\n\tonToastBtnClick: (event: React.MouseEvent) => void;\n\ttitle: string;\n\tsubtitle: string;\n\tbuttonValue: string;\n\tbtnTyp: \"link\" | \"secondary\" | \"primary\" | \"blue-link\";\n}\n\nconst ObToastMessPopup: React.FC = (props) => {\n\tconst [disableBtn, setDisableBtn] = React.useState(false);\n\n\tfunction onToastBtnClick(e: React.MouseEvent) {\n\t\tsetDisableBtn(true);\n\t\tprops.onToastBtnClick(e);\n\t}\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t{/* According to popup need to add class conversion_error conversion_suss cancel */}\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t

{props.title}

\n\t\t\t\t\t

{props.subtitle}

\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default ObToastMessPopup;\n","import * as React from \"react\";\n\nexport interface TooltipProps {\n\ttooltipTxt?: string; // for tooltip text\n tooltipList?: any;\n}\nexport interface TooltipState {\n\ttooltipShow: boolean;\n}\n\nclass Tooltip extends React.Component {\n\tconstructor(props: TooltipProps) {\n\t\t//passing TooltipProps in props\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\ttooltipShow: false // setting initially tooltipShow as false\n\t\t};\n\t}\n\n tooltipToggle = () =>\n //setting toggle state\n this.setState(currentState => ({ tooltipShow: !this.state.tooltipShow }));\n\n render() {\n return (\n
\n \n {/* if tooltipShow is true then show the tooltip content */}\n {this.state.tooltipShow && (\n <>\n
\n {this.props.tooltipTxt &&

{this.props.tooltipTxt}

}\n
\n
\n {this.props.tooltipList &&(\n
    \n {this.props.tooltipList.map(\n (val: any) => {\n return (\n
  • \n \n {val}\n
  • \n );\n }\n )}\n
\n )}\n
\n \n )}\n
\n );\n }\n}\n\nexport default Tooltip;\n","import * as React from \"react\";\nimport ObCheckbox from \"../generic/obCheckbox\";\nimport \"../../../../assets/scss/components/toc/orderBook/obConvertPositions/obConvertPositionDesk.scss\";\nimport \"../../../../assets/scss/components/toc/orderBook/obConvertPositions/obConvertPositionTab.scss\";\nimport Tooltip from \"../generic/obTooltips\";\nimport moment from \"moment\";\nimport { dateTimeFormat } from './../../../service/dateTimeService';\n\nexport interface IObTradeTabContentProps {\n\tisSelected?: boolean;\n\tonSelect?: (event: React.ChangeEvent) => void;\n\tshowCheckbox: boolean;\n\ttooltipTxt?: string;\n\tdata: any;\n}\n\nconst ObTradeTabContent: React.FC = props => {\n\treturn (\n\t\t
  • \n\t\t\t
    \n\t\t\t\t{props.showCheckbox && (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t\t
    {props.data.qty}qty
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t₹{props.data.ntPrc}\n\t\t\t\t\t{props.tooltipTxt && }\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{!props.showCheckbox && (\n\t\t\t\t\t
    \n\t\t\t\t\t\tTrade ID: {props.data.trdID}\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t\t\t{/* ordType for equity and ordTyp for commodity*/}\n\t\t\t\t\t
    {props.data.ordType?props.data.ordType :props.data.ordTyp}
    \n\t\t\t\t\t
    {moment(dateTimeFormat(props.data.rcvTim)).format(\"HH:mm:ss\")}
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
  • \n\t);\n};\n\nexport default ObTradeTabContent;\n","import React from \"react\";\n\nexport const backButtonValue = (\n\t<>\n\t\t\n\t\tBack\n\t\n);\n","import * as React from \"react\";\nimport ObProductTypeSelect from \"./obProductTypeSelect\";\nimport EdButton from \"../../../generic/edButton\";\nimport ObCheckbox from \"../generic/obCheckbox\";\nimport { AEqConvertPos } from \"../../../service/orderBook/obApiService\";\nimport ObAssetDetailPopup from \"../generic/obAssetDetailPopup\";\nimport ObToastMessPopup from \"../generic/obToastMessPopup\";\nimport ee from \"../../../utils/eventEmitter\";\nimport ObTradeTabContent from \"./obTradeTabContent\";\nimport { backButtonValue } from \"../obJsXConstants\";\nimport DeviceContext from \"./../../../service/indentifyDevice\";\nimport \"../../../../assets/scss/components/generic/layout/layoutDesk.scss\";\nimport { IListObj } from \"../../../types/genericTypes\";\n\nif (DeviceContext().isDesktop) {\n\trequire(\"../../../../assets/scss/components/toc/orderBook/obConvertPositions/obConvertPositionDesk.scss\");\n} else {\n\trequire(\"../../../../assets/scss/components/toc/orderBook/obConvertPositions/obConvertPositionTab.scss\");\n}\n\nexport interface IObEquityConvertDeskProps {\n\tdata: Array;\n\tonBackClick: (event?: React.MouseEvent) => void; // the function to be called onClick\n}\n\nconst ObEquityConvertDesk: React.FC = (props) => {\n\tconst [tradeData, setTradeData] = React.useState(\n\t\tprops.data.map((data, index) => {\n\t\t\treturn { ...data, id: index, isSelected: false };\n\t\t})\n\t);\n\n\tconst [isAllDataSelected, setIsAllDataSelected] = React.useState(false);\n\n\t// show convertion error popup\n\tconst [conErrorPopupMsg, setConErrorPopupMsg] = React.useState();\n\n\tconst [isProcessing, setIsProcessing] = React.useState(false);\n\n\t// total qty of selected rows\n\tconst totalSelectedQty = tradeData.reduce((a, b) => {\n\t\tif (b.isSelected) {\n\t\t\treturn a + +b.qty;\n\t\t} else {\n\t\t\treturn a;\n\t\t}\n\t}, 0);\n\n\tconst navigationDropdownOptions: Array = [\n\t\t{ value: \"NRML\", display: \"NRML\" },\n\t\t{ value: \"MIS\", display: \"MIS\" },\n\t\t{ value: \"MTF\", display: \"MTF\" },\n\t\t{ value: \"BO\", display: \"BO\" },\n\t\t{ value: \"CO\", display: \"CO\" }\n\t];\n\n\tlet selectedPrdCode: string;\n\n\tlet ordConvertedSuccList: Array = [],\n\t\tordConvertedFailList: Array<{ error: any; index: number }> = [],\n\t\tOrdsListToConvert: Array = [];\n\t// runs after all convert api response\n\tfunction convertCallback(res: any, index: number) {\n\t\tif (res.data) {\n\t\t\t// if success\n\t\t\tordConvertedSuccList.push(res.data);\n\t\t} else {\n\t\t\t// if error\n\t\t\tordConvertedFailList.push({ error: res.error, index });\n\t\t}\n\t\t// when we get all the responses\n\t\tif (ordConvertedSuccList.length + ordConvertedFailList.length === OrdsListToConvert.length) {\n\t\t\tsetIsProcessing(false);\n\n\t\t\tif (ordConvertedSuccList.length === OrdsListToConvert.length) {\n\t\t\t\t// when all the converted successfully\n\t\t\t\tee.emit(\"showToast\", { message: `Success - ${totalSelectedQty} qty converted to ${selectedPrdCode}`, color: \"success\" }); //show toast message\n\t\t\t\tprops.onBackClick();\n\t\t\t} else if (ordConvertedFailList.length === OrdsListToConvert.length) {\n\t\t\t\t// when all request failed\n\t\t\t\tee.emit(\"showToast\", {\n\t\t\t\t\tmessage: (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tCould not convert selected positions{\" \"}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t),\n\t\t\t\t\tcolor: \"error\"\n\t\t\t\t}); //show toast message\n\t\t\t} else {\n\t\t\t\t// partial conversion\n\t\t\t\tee.emit(\"showToast\", {\n\t\t\t\t\tmessage: `Could not convert ${ordConvertedFailList.length} / ${OrdsListToConvert.length} selected positions`,\n\t\t\t\t\tcolor: \"error\"\n\t\t\t\t}); //show toast message\n\t\t\t\tprops.onBackClick();\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction onConvertPosition(selectedRadio: string) {\n\t\tsetIsProcessing(true);\n\t\tselectedPrdCode = selectedRadio;\n\n\t\t// call api for all selected rows\n\t\ttradeData.forEach((rw: any, index: number) => {\n\t\t\tif (rw.isSelected) {\n\t\t\t\tOrdsListToConvert.push(rw.ordID);\n\t\t\t\tAEqConvertPos((res: any) => convertCallback(res, index), {\n\t\t\t\t\tnstOID: rw.ordID,\n\t\t\t\t\tflID: rw.flID,\n\t\t\t\t\tprdCode: rw.prdCode,\n\t\t\t\t\tprdCodeCh: selectedRadio,\n\t\t\t\t\texc: rw.exc,\n\t\t\t\t\tordTyp: rw.ordType\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tfunction obEqtradeRowSelection(index: number) {\n\t\t// if checkbox of any row is selected\n\t\tif (index >= 0) {\n\t\t\t// copy the data\n\t\t\tconst data = [...tradeData];\n\t\t\t// get the row\n\t\t\tconst row = { ...data[index] };\n\t\t\t// invert the status\n\t\t\trow.isSelected = !tradeData[index].isSelected;\n\n\t\t\t// put the updated row back in data\n\t\t\tdata[index] = row;\n\t\t\t// set the state\n\t\t\tsetTradeData(data);\n\n\t\t\t// set the value of all selected checkbox\n\t\t\tdata.every((row) => row.isSelected === true) ? setIsAllDataSelected(true) : setIsAllDataSelected(false);\n\t\t}\n\t\t// if all clicked on all selected checkbox\n\t\telse if (index === -1) {\n\t\t\t// copy the data\n\t\t\tlet data = [...tradeData];\n\t\t\t// loop over the data\n\t\t\t// If isAllDataSelected is true, then set every row to false\n\t\t\t// else if isAllDataSelected is false, then set every row to true\n\t\t\tdata = data.map((row) => ({ ...row, isSelected: !isAllDataSelected }));\n\n\t\t\tsetTradeData(data);\n\n\t\t\t// invert the state of isAllDataSelected\n\t\t\tsetIsAllDataSelected(!isAllDataSelected);\n\t\t}\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t

    Select Trade

    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t obEqtradeRowSelection(-1)}>\n\t\t\t\t\t\t\t\t\t\t\tSelect All\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t3selected\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t{tradeData.map((data, index) => (\n\t\t\t\t\t\t\t\t\t\t obEqtradeRowSelection(index)}\n\t\t\t\t\t\t\t\t\t\t\tshowCheckbox={true}\n\t\t\t\t\t\t\t\t\t\t\ttooltipTxt={ordConvertedFailList.find((failObj) => failObj.index === index)?.error.errMsg}\n\t\t\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\t\t\tdata={data}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t{conErrorPopupMsg && (\n\t\t\t\t\n\t\t\t\t\t setConErrorPopupMsg(undefined)}\n\t\t\t\t\t\tonToastBtnClick={() => setConErrorPopupMsg(undefined)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default ObEquityConvertDesk;\n","//check for --, 0, null, undefined values\n//@val seen in defined array of possible values return false, to bind otherwise data\nexport const numValChk = (val: string | number) => {\n\tconst checkFor: Array = [\"--\", 0, null, undefined, \"0.00\", 0.0, \"0.0\"];\n\treturn checkFor.indexOf(val) >= 0 ? false : true;\n};\n","import * as React from \"react\";\nimport EdButton from \"../../../../generic/edButton\";\nimport DeviceContext from \"../../../../service/indentifyDevice\";\nimport ObOrderLog, { IOrderLog } from \"../obOrderLog\";\nimport { ChipColorKeyComb } from \"../../obConstants\";\nimport { AEqGetOrderLogs } from \"../../../../service/orderBook/obApiService\";\nimport { dateTimeFormat } from \"../../../../service/dateTimeService\";\nimport moment from \"moment\";\nimport ObAssetDetailPopup from \"../../generic/obAssetDetailPopup\";\nimport ObEquityConvertDesk from \"../../obConvertPositions/obEquityConvertDesk\";\nimport { numValChk } from \"../../../../service/generic/numValueChk\";\n\nexport interface ObEqDtlContentProps {\n\tdata: any;\n\tisTodayOrder: boolean;\n\tshowTradeTab: boolean;\n\ttradeData: any;\n\tonCancelClick: (e: React.MouseEvent) => void;\n}\n\nexport interface ObEqDtlContentState {\n\tlogs: Array;\n\tshowTradePopup: boolean;\n}\n\nclass ObEqDtlContent extends React.Component {\n\tstate: ObEqDtlContentState = { logs: [], showTradePopup: this.props.showTradeTab };\n\n\tisMobile = DeviceContext().isMobile;\n\n\tonButtonClick(e: React.MouseEvent) {\n\t\tconsole.log(e);\n\t}\n\n\teqOrderLogs = (res: any) => {\n\t\tif (res.data) {\n\t\t\tthis.setState({\n\t\t\t\tlogs: res.data.ord.map((ord: any) => ({\n\t\t\t\t\ttime: moment(dateTimeFormat(ord.rcvEpTim)).format(\"D MMM 'YY | HH:mm:ss\"),\n\t\t\t\t\tsts: ord.sts\n\t\t\t\t}))\n\t\t\t});\n\t\t}\n\t};\n\n\tgetOrderLogs = () => {\n\t\tAEqGetOrderLogs(this.eqOrderLogs, this.props.data.ordID);\n\t};\n\n\tcomponentDidMount() {\n\t\tthis.getOrderLogs();\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{(this.props.data.dur === \"GTC\" || this.props.data.dur === \"GTD\") && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{(this.props.data.dur === \"GTC\" || this.props.data.dur === \"GTD\") && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t{(this.props.data.dur === \"GTC\" || this.props.data.dur === \"GTD\") && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\tSince this is a GTC/GTD order, in case the order doesn’t get executed for the day, it shall get cancelled post market\n\t\t\t\t\t\t\t\thours and will be placed again the next trading day until date of validity\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t{this.props.isTodayOrder && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{/* buttons to perform different actions on click */}\n\t\t\t\t\t\t{ChipColorKeyComb[this.props.data.sts] !== \"red\" && (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{ChipColorKeyComb[this.props.data.sts] === \"blue\" && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t{/* button to cancel */}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{/* button to modify */}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{this.props.showTradeTab && !this.isMobile && (\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{/* button to convert positions */}\n\t\t\t\t\t\t\t\t\t\t this.setState({ showTradePopup: true })}\n\t\t\t\t\t\t\t\t\t\t\tslim\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{/* Retyy button will so on rejection*/}\n\t\t\t\t\t\t{ChipColorKeyComb[this.props.data.sts] === \"red\" && (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{/* order log progress bar steps */}\n\t\t\t\t\t\t{this.state.logs.length > 0 && this.props.isTodayOrder && }\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t{this.state.showTradePopup && (\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ showTradePopup: false })} />\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
    \n\t\t);\n\t}\n}\n\nexport default ObEqDtlContent;\n","import * as React from \"react\";\nimport ObAssetsDetlSym from \"../../instruments/details/obAssetsDetlSym\";\nimport EdButton from \"../../../../generic/edButton\";\nimport Tab from \"../../../../generic/tab\";\nimport ObEqDtlContent from \"./obEqDtlContent\";\nimport { ObAssetsDetlSymProps } from \"../../instruments/details/obAssetsDetlSym\";\nimport { dateTimeFormat } from \"../../../../service/dateTimeService\";\nimport moment from \"moment\";\nimport { ChipStatusComb } from \"../../obConstants\";\nimport { AEqGetTradeBk } from \"../../../../service/orderBook/obApiService\";\nimport ObAssetDetailPopup from \"../../generic/obAssetDetailPopup\";\nimport ObEquityConvertDesk from \"../../obConvertPositions/obEquityConvertDesk\";\nimport ObTradeTabContent from \"../../obConvertPositions/obTradeTabContent\";\nimport { backButtonValue } from \"./../../obJsXConstants\";\nimport \"../../../../../assets/scss/components/toc/orderBook/obModifyState/obModify.scss\";\nimport \"../../../../../assets/scss/components/toc/orderBook/obDetails/obOrderLog.scss\";\nimport \"../../../../../assets/scss/components/toc/orderBook/obDetails/obAssetDetails.scss\";\nimport \"../../../../../assets/scss/components/toc/orderBook/obDetails/obAssetDetailstab.scss\";\nimport { IListObj } from \"../../../../types/genericTypes\";\n\nexport interface ObEqDtlsOpenProps {\n\tdata: any;\n\tonBackClick: (event: React.MouseEvent) => void; // the function to be called onClick\n\tisTodayOrder: boolean;\n\tonCancelClick: (e: React.MouseEvent) => void;\n}\n\nexport interface ObEqDtlsOpenState {\n\tselectedTab: string | number;\n\ttradeData: Array;\n\tshowTradePopup: boolean;\n\ttabLst: Array;\n}\n\nclass ObEqDtlsOpen extends React.Component {\n\ttabList: Array = [\n\t\t{ value: \"info\", display: \"Info\" },\n\t\t{ value: \"trade\", display: \"Trades\" }\n\t];\n\tstate = { selectedTab: \"info\", tradeData: [], showTradePopup: false, tabLst: [this.tabList[0]] };\n\n\tassetDetail: ObAssetsDetlSymProps = {\n\t\tdate: this.props.data.rcvEpTim\n\t\t\t? moment(dateTimeFormat(this.props.data.rcvEpTim)).format(\"D MMM YYYY, HH:mm:ss\")\n\t\t\t: moment(dateTimeFormat(this.props.data.ordEntTyp)).format(\"D MMM YYYY, HH:mm:ss\"),\n\t\ttrsTyp: this.props.data.trsTyp,\n\t\ttitle: this.props.data.trdSym,\n\t\tsubTitle: this.props.data.cpName ? this.props.data.cpName : this.props.data.dpName ? this.props.data.dpName : this.props.data.symName,\n\t\tsts: this.props.data.sts && ChipStatusComb[this.props.data.sts.toLowerCase()]\n\t};\n\n\ttabLstSelect = (id: string | number) => {\n\t\tthis.setState({ selectedTab: id });\n\t};\n\n\teqGetTradeBkRes = (res: any) => {\n\t\tif (res.data) {\n\t\t\tif (res.data.trade.length > 0) {\n\t\t\t\tthis.setState({\n\t\t\t\t\ttradeData: res.data.trade,\n\t\t\t\t\ttabLst: this.tabList\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n\n\tcomponentDidMount() {\n\t\tAEqGetTradeBk(this.eqGetTradeBkRes, this.props.data.ordID);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/* left menu back button */}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{/* header section */}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{/* when status is rejected will show below content */}\n\t\t\t\t\t\t\t\t\t\t\t{this.props.data.rjRsn && (\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t

    Reason

    \n\t\t\t\t\t\t\t\t\t\t\t\t\t

    {this.props.data.rjRsn}

    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{/* detailed content */}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t\t{/* if tab is info then show info content */}\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t 0}\n\t\t\t\t\t\t\t\t\t\t\t\t\ttradeData={this.state.tradeData}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonCancelClick={this.props.onCancelClick}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{/* if the tab is trade then show trade content below */}\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{this.state.tradeData.map((data, index) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.setState({ showTradePopup: true });\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tslim\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t{this.state.showTradePopup && (\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ showTradePopup: false })} />\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t);\n\t}\n}\n\nexport default ObEqDtlsOpen;\n","export const SearchHighLight = (rawText: string, searchText: string): string => {\n\tconst stkName: string = rawText.toLowerCase();\n\n\tlet rawTextTemp: string =\n\t\tstkName.indexOf(searchText) >= 0\n\t\t\t? rawText.substring(0, stkName.indexOf(searchText)) +\n\t\t\t \"\" +\n\t\t\t rawText.substring(stkName.indexOf(searchText), stkName.indexOf(searchText) + searchText.length) +\n\t\t\t \"\" +\n\t\t\t rawText.substring(stkName.indexOf(searchText) + searchText.length, rawText.length)\n\t\t\t: rawText;\n\n\treturn rawTextTemp;\n};\n","import React from \"react\";\nimport moment from \"moment\";\n\nimport { IEquity, IEqSip } from \"../../../../types/components/orderBook/obTypes\";\nimport indexer, { IListObj } from \"../../../../types/genericTypes\";\n\nimport Tag from \"../../../../generic/tag\";\nimport OverflowButton from \"../../../../generic/overflowButton\";\nimport Sort, { sort, eSortState } from \"../../../../generic/sort\";\nimport ObCheckbox from \"../../generic/obCheckbox\";\nimport EdButton from \"../../../../generic/edButton\";\nimport ObAssetDetailPopup from \"../../generic/obAssetDetailPopup\";\n\nimport TocNoData from \"../../../generic/tocNoData/tocNoData\";\nimport { dateTimeFormat, GetNoOfDaysOrMonths } from \"../../../../service/dateTimeService\"; //convert slash contained datestring to valid date with hypen separated\nimport obtradeRowSelection from \"../../../../service/orderBook/selectAll\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport { HObGroupBy, HOb2DGroupBy } from \"../../../../service/orderBook/obGrpByHelper\";\nimport { AEqCancelNrmTrd, AEqCancelSIPOrd, AEqCancelAmoTrd } from \"../../../../service/orderBook/obApiService\";\n\nimport { ChipColorKeyComb, ovrOptions, scrlStCls, ObScrollStyle, ChipStatusComb } from \"../../obConstants\";\n\nimport ObUtilHeader from \"../../obContainer/obUtilHeader\";\nimport DatePickerInt from \"../../obContainer/obDatePickerInt\";\n\nimport ObEqDtlsOpen from \"../../obDetails/dsk/obEqDtlsOpen\";\nimport ObToastMessPopup from \"../../generic/obToastMessPopup\";\n\n//styles\nimport \"../../../../../assets/scss/components/toc/orderBook/instruments/instrumentsDsk.scss\";\nimport \"../../../../../assets/scss/components/toc/orderBook/instruments/instrumentsTab.scss\";\nimport { SearchHighLight } from \"../../../../service/generic/searchHighlight\";\nimport ee from \"../../../../utils/eventEmitter\";\n\nexport interface IObEquityProps {\n\t// Array of Equity Data\n\tdata: Array;\n\t//true if table is history type else false\n\tisHistory?: boolean;\n\thidePageNav?: (hide: boolean) => void;\n\tgetDates: (frmDt: Date, toDate: Date) => void;\n\tisSip: boolean;\n\taType: string;\n\treRenderCall?: (value: string) => void;\n}\n\n// heading for equity Asset table\nconst heading: indexer = {\n\tsymbol: \"Symbol\",\n\tprodType: \"Prod. Type\",\n\tordType: \"Ord. Type.\",\n\tqty: \"Qty\",\n\tavgPrice: \"Avg. Price\",\n\torderPrice: \"Order Price\"\n};\nconst headingSip = {\n\tperiod: \"Period\",\n\tsymbol: \"Symbol\",\n\tprodType: \"Prod. Type\",\n\tfrequency: \"Frequency\",\n\tnext: \"Next\",\n\tqty: \"Qty.\",\n\tavgPrice: \"Avg. Price\"\n};\nconst sortKey: indexer = {\n\tsymbol: \"trdSym\"\n};\nconst sortKeySIP: indexer = {\n\tsymbol: \"tSym\"\n};\n\nconst ObEquity: React.FC = (props) => {\n\t//row options start\n\tconst ovrOpts: Array = ovrOptions;\n\n\tif (props.data.length && !props.isHistory) {\n\t\tfor (let i = 0; i < props.data.length; i++) {\n\t\t\tvar temp: Array = [];\n\t\t\tlet dp: IEquity = props.data[i];\n\n\t\t\tif (dp.edit === \"true\") {\n\t\t\t\ttemp.push(ovrOpts[0]);\n\t\t\t}\n\t\t\tif (dp.cancel === \"true\" || props.isSip) {\n\t\t\t\ttemp.push(ovrOpts[1]);\n\t\t\t}\n\t\t\tif (dp.sts === \"rejected\") {\n\t\t\t\ttemp.push(ovrOpts[3]);\n\t\t\t}\n\t\t\tif (dp.sts === \"open\" || (dp.sts === \"pending\" && dp.ogt === \"AMO\")) {\n\t\t\t\ttemp.push(ovrOpts[2]);\n\t\t\t}\n\t\t\tif (dp.sts === \"complete\" || dp.sts === \"completed\" || dp.sts === \"cancelled\" || dp.sts === \"cancelled after market order\") {\n\t\t\t\ttemp.push(ovrOpts[4]); //details\n\t\t\t}\n\t\t\tdp[\"ovrOpts\"] = temp;\n\t\t}\n\t}\n\n\t//row options end\n\n\t//selection handle start\n\tconst [isSelectEnable, setIsSelectEnable] = React.useState(false);\n\n\tconst [isAllDataSelected, setIsAllDataSelected] = React.useState(false);\n\t//selection handle end\n\n\t//executed orders count\n\tconst exeCountRef = React.useRef();\n\t//Show Open Ords on Top or not ref state\n\tconst OpenOrdsTopRef = React.useRef();\n\n\t// wherever initial data needs to be sent, send initialData\n\t// initial data is array of array for supporting grouping\n\tconst initialData = [\n\t\tprops.data.map((data: any, index: number) => ({\n\t\t\t...data,\n\t\t\tisSelected: false\n\t\t}))\n\t];\n\n\t// filteredData contains filtered, searched data\n\tconst [filteredData, setFilteredData] = React.useState>>(initialData);\n\t// let filteredData: Array> = initialData;\n\n\t// tableData is shown in the table\n\t// tableData contains sorted, filtered, searched data\n\tconst [tableData, setTableData] = React.useState>>([]);\n\tlet eqHistoryData: Array<{ [x: string]: Array }> = [{}];\n\n\tReact.useEffect(() => {\n\t\tsetTableData([props.data]);\n\t\t//ref to initial toggle state of show open orders on top\n\t\tOpenOrdsTopRef.current = true;\n\t\t// check that props.data is not undefined/null, group it(open and others) and update tabledata\n\t\t// ee.emit(\"showToast\", { message: `Cancelled ${0} Orders`, color: \"cancell\" });\n\n\t\tif (props.data.length) {\n\t\t\tif (!props.isHistory && !props.isSip && OpenOrdsTopRef.current) {\n\t\t\t\tlet temp0 = HOb2DGroupBy(props.data, \"sts\");\n\t\t\t\texeCountRef.current = temp0[1].length;\n\t\t\t\tsetTableData(temp0);\n\t\t\t}\n\t\t}\n\n\t\treturn () => {\n\t\t\tsetTableData([[{}]]);\n\t\t};\n\t}, [props.data, props.isHistory, props.isSip]);\n\n\t//kept outside because state data updating in async mode\n\tif (props.isHistory && props.data.length) {\n\t\teqHistoryData = tableData.map((group) => HObGroupBy(group, \"ordEntTyp\", \" \"));\n\t}\n\tconst [sortedColumnState, setSortedColumnState] = React.useState({ colName: null as string | null, sortState: eSortState.ASC });\n\n\t//selected count\n\tconst [selectedCount, setselectedCount] = React.useState(0);\n\n\t//is popup data\n\tconst [popupDataIndex, setPopupDataIndex] = React.useState<[number | string, number, string?]>();\n\n\t// show cancel popup\n\tconst [showCancelPopup, setShowCancelPopup] = React.useState<{ bulkCancel: boolean; data?: any }>();\n\n\tfunction onSort(data: Array>, sortState: eSortState) {\n\t\tsetSortedColumnState({ colName: heading.symbol, sortState: sortState });\n\t\tsetTableData(data);\n\t\tOpenOrdsTopRef.current = false;\n\t}\n\n\tconst selectRows = (groupIndex: number, index: number) => {\n\t\tconst retRes = obtradeRowSelection(groupIndex, index, tableData, isAllDataSelected, \"cancel\", \"true\");\n\n\t\t// set the state\n\t\tsetTableData(retRes.data);\n\t\tsetselectedCount(retRes.count);\n\n\t\tsetIsAllDataSelected(retRes.allSelected);\n\t};\n\t//called on filter and search\n\tfunction onDataFilter(data: Array, sText?: string, type?: string) {\n\t\tsetFilteredData(data);\n\t\t// filteredData = data;\n\n\t\t// sort only if colName is present, otherwise there is no need to sort\n\t\tif (sortedColumnState.colName) {\n\t\t\tconst colNameKey = Object.keys(heading).find((key) => heading[key] === sortedColumnState.colName)!;\n\t\t\tsort(data, sortedColumnState.sortState, sortKey[colNameKey], onSort);\n\t\t}\n\t\t//highlightes the search text\n\t\tif (sText) {\n\t\t\tconst SearchText: string = sText.toLowerCase();\n\t\t\tconst searchKeys: string = \"cpName;dpName;symName;trdSym;tSym\";\n\n\t\t\tdata[0].forEach((ord: indexer) => {\n\t\t\t\tsearchKeys.split(\";\").forEach((k: string) => {\n\t\t\t\t\tif (ord[k]) {\n\t\t\t\t\t\tord[k] = SearchHighLight(ord[k], SearchText);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\tif (type === \"search\" && OpenOrdsTopRef.current && !props.isHistory && !props.isSip) {\n\t\t\tsetTableData(HOb2DGroupBy(data[0], \"sts\"));\n\t\t} else {\n\t\t\tsetTableData(data);\n\t\t}\n\t}\n\t//overflow option selection\n\tfunction optSelection(\n\t\tid: string | number,\n\t\tdata: {\n\t\t\tgI: number;\n\t\t\tind: number;\n\t\t\tordData: indexer;\n\t\t}\n\t) {\n\t\tid = typeof id === \"string\" ? id.toLowerCase() : id;\n\t\tswitch (id) {\n\t\t\tcase \"details\":\n\t\t\tcase \"convert\":\n\t\t\t\t//onRowClick was replace with setPopupDataIndex, overflow menu included in path block logic written in onrowclick\n\t\t\t\tsetPopupDataIndex([data.gI, data.ind]);\n\t\t\t\tbreak;\n\t\t\tcase \"cancel\":\n\t\t\t\tcheckPartialOrder(false, data.ordData as IEquity);\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tconsole.log(\"404\");\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t// this function excute on clicking any row\n\t// date is passed only in the case of history\n\tfunction onRowClick(data: any, groupIndex: number | string, index: number, e?: any) {\n\t\t//each row contains two different native events, one of overflow and other is of checkbox\n\t\tif (\n\t\t\te &&\n\t\t\t!e.nativeEvent.path.find((m: HTMLElement) => m.className && (m.className.indexOf(\"check\") >= 0 || m.className.indexOf(\"menu\") >= 0))\n\t\t) {\n\t\t\tsetPopupDataIndex([groupIndex, index]);\n\t\t}\n\t}\n\n\tfunction addFlAndNtQty(bulkCancel: boolean, data?: IEquity) {\n\t\tlet flQtySum = 0;\n\t\tlet ntQtySum = 0;\n\n\t\tif (bulkCancel) {\n\t\t\ttableData.forEach((g: any) =>\n\t\t\t\tg.forEach((rw: IEquity) => {\n\t\t\t\t\tif (rw.isSelected) {\n\t\t\t\t\t\tflQtySum += +rw.flQty;\n\t\t\t\t\t\tntQtySum += +(rw.ntQty ? rw.ntQty : rw.qtyTF || 0);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t);\n\t\t} else if (data) {\n\t\t\tflQtySum += +data.flQty;\n\t\t\tntQtySum += +(data.ntQty ? data.ntQty : data.qtyTF || 0);\n\t\t}\n\n\t\treturn { flQtySum, ntQtySum };\n\t}\n\n\tfunction selectedRows(bulkCancel: boolean, data?: IEquity) {\n\t\tif (bulkCancel) {\n\t\t\tlet total = 0;\n\t\t\ttableData.forEach((g: any) =>\n\t\t\t\tg.forEach((rw: IEquity) => {\n\t\t\t\t\tif (rw.isSelected) {\n\t\t\t\t\t\ttotal++;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn total;\n\t\t} else if (data) {\n\t\t\treturn 1;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tlet ordCancelledSuccList: Array = [],\n\t\tordCancelledFailList: Array = [],\n\t\tordsListToCancel: Array = [];\n\n\t// runs after all cancel api response\n\tfunction cancelCallback(res: any) {\n\t\tif (res.data) {\n\t\t\t// if success\n\t\t\tordCancelledSuccList.push(res.data);\n\t\t} else {\n\t\t\t// if error\n\t\t\tordCancelledFailList.push(res.error);\n\t\t}\n\n\t\t// when we get all the responses\n\t\tif (ordCancelledSuccList.length + ordCancelledFailList.length === ordsListToCancel.length) {\n\t\t\tsetShowCancelPopup(undefined); // close confirmation popup\n\t\t\t//show toast message\n\t\t\tee.emit(\"showToast\", { message: `Cancelled ${ordsListToCancel.length} Orders`, color: \"cancell\" });\n\t\t\tprops.reRenderCall && props.reRenderCall(\"today\");\n\t\t}\n\t}\n\n\tfunction checkPartialOrder(bulkCancel: boolean, data?: IEquity) {\n\t\t// {data.flQty}/{data.ntQty ? data.ntQty : data.qtyTF}\n\t\tconst { flQtySum, ntQtySum } = addFlAndNtQty(bulkCancel, data);\n\n\t\tif (flQtySum === ntQtySum) {\n\t\t\t// not partially completed\n\t\t\tcancelOrder(bulkCancel, data);\n\t\t} else {\n\t\t\t// partially completed\n\t\t\tsetShowCancelPopup({ bulkCancel, data });\n\t\t}\n\t}\n\n\tfunction cancelOrder(bulkCancel: boolean, data?: any) {\n\t\tif (bulkCancel) {\n\t\t\ttableData.forEach((g: any) =>\n\t\t\t\tg.forEach((rw: IEquity) => {\n\t\t\t\t\tif (rw.isSelected) {\n\t\t\t\t\t\tordsListToCancel.push(rw.ordID);\n\t\t\t\t\t\tif (props.isSip) {\n\t\t\t\t\t\t\t// if sip trade then run this api\n\t\t\t\t\t\t\tAEqCancelSIPOrd(cancelCallback, rw.ordID);\n\t\t\t\t\t\t} else if (rw.ogt === \"AMO\") {\n\t\t\t\t\t\t\t// if amo trade then run this api\n\t\t\t\t\t\t\tAEqCancelAmoTrd(cancelCallback, { nstOID: rw.ordID, exc: rw.exc, ordTyp: rw.ordTyp, prdCode: rw.prdCode });\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// if normal trade then run this api\n\t\t\t\t\t\t\tAEqCancelNrmTrd(cancelCallback, { nstOID: rw.ordID, exc: rw.exc, ordTyp: rw.ordTyp, prdCode: rw.prdCode });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t);\n\t\t} else if (data) {\n\t\t\t// cancel single order\n\t\t\tordsListToCancel.push(data?.ordID);\n\t\t\tif (props.isSip) {\n\t\t\t\t// if sip trade then run this api\n\t\t\t\tAEqCancelSIPOrd(cancelCallback, data.ordID);\n\t\t\t} else if (data.ogt === \"AMO\") {\n\t\t\t\t// if amo trade then run this api\n\t\t\t\tAEqCancelAmoTrd(cancelCallback, { nstOID: data.ordID, exc: data.exc, ordTyp: data.ordTyp, prdCode: data.prdCode });\n\t\t\t} else {\n\t\t\t\t// if normal trade then run this api\n\t\t\t\tAEqCancelNrmTrd(cancelCallback, { nstOID: data.ordID, exc: data.exc, ordTyp: data.ordTyp, prdCode: data.prdCode });\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction eqRow(data: IEquity, groupIndex: number | string, index: number) {\n\t\treturn (\n\t\t\t onRowClick(data, groupIndex, index, e)}\n\t\t\t>\n\t\t\t\t{isSelectEnable && (\n\t\t\t\t\t
    \n\t\t\t\t\t\t{data.ovrOpts && data.cancel === \"true\" && (\n\t\t\t\t\t\t\t selectRows(groupIndex as number, index)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{data.rcvTim && data.rcvTim}\n\t\t\t\t\t\t{data.ordEntTyp && moment(dateTimeFormat(data.ordEntTyp)).format(\"HH:mm:ss\")}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{data.trsTyp && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{props.aType === \"equity\" && (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t{props.aType !== \"equity\" && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{data.prdCode}\n\t\t\t\t
    \n\t\t\t\t{props.aType === \"equity\" && (\n\t\t\t\t\t
    \n\t\t\t\t\t\t{data.ordTyp}\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t\t\t{data.flQty}/{data.ntQty ? data.ntQty : data.qtyTF}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{toINR(data.avgPrc, 2)}\n\t\t\t\t
    \n\t\t\t\t{props.aType === \"currency\" &&
    {toINR(data.prc, 2)}
    }\n\n\t\t\t\t{!props.isHistory && (\n\t\t\t\t\t
    \n\t\t\t\t\t\t{data.ogt && data.ogt !== \"--\" ? data.ogt : \"\"}\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{data.sts && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t{!isSelectEnable && !props.isHistory && (\n\t\t\t\t\t
    \n\t\t\t\t\t\t optSelection(id, data)}\n\t\t\t\t\t\t\tonHover={true}\n\t\t\t\t\t\t\tdata={{\n\t\t\t\t\t\t\t\tordData: data,\n\t\t\t\t\t\t\t\tgI: groupIndex,\n\t\t\t\t\t\t\t\tind: index\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t\n\t\t);\n\t}\n\n\tfunction nonSIP() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\t{/* ob Equity Header Row */}\n\t\t\t\t\t{(!props.isHistory || (props.isHistory && initialData[0].length > 0)) && (\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t{isSelectEnable && (\n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t selectRows(-1, -1)} />\n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t{!props.isHistory && (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t{props.isHistory && heading.symbol}\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
      {heading.prodType}
      \n\t\t\t\t\t\t\t\t{props.aType === \"equity\" &&
      {heading.ordType}
      }\n\t\t\t\t\t\t\t\t
      {heading.qty}
      \n\t\t\t\t\t\t\t\t{props.aType === \"currency\" &&
      {heading.orderPrice}
      }\n\n\t\t\t\t\t\t\t\t
      {heading.avgPrice}
      \n\n\t\t\t\t\t\t\t\t{!props.isHistory &&
      }\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{!isSelectEnable && !props.isHistory &&
      }\n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\t\t\t\t\t
    0 ? \"ObScrollCont\" : \"\"} style={ObScrollStyle(props.data.length > 0 ? true : false)}>\n\t\t\t\t\t\t{props.isHistory ? (\n\t\t\t\t\t\t\teqHistoryData.map((group, groupIndex) =>\n\t\t\t\t\t\t\t\tObject.keys(group).map((date, index) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t
    • {moment(dateTimeFormat(date)).format(\"DD MMMM YYYY\")}
    • \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t{group[date].map((row: any, index: number) => eqRow(row, date, index))}\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t!!tableData.length &&\n\t\t\t\t\t\t\t\t\t\ttableData.map((group: any, groupIndex: number) =>\n\t\t\t\t\t\t\t\t\t\t\t// Object.keys(group).map((grp: any, index) =>\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{group.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{group.map((row: any, index: number) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{eqRow(row, groupIndex, index)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t// )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n\n\tfunction sipOrders() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t{/* ob SIP Header Row */}\n\n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t\t\t
      {headingSip.period}
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      {headingSip.prodType}
      \n\t\t\t\t\t\t
      {headingSip.frequency}
      \n\t\t\t\t\t\t
      {headingSip.next}
      \n\t\t\t\t\t\t
      {headingSip.qty}
      \n\t\t\t\t\t\t
      {headingSip.avgPrice}
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\n\t\t\t\t{/* ob SIP content Row */}\n\n\t\t\t\t{\n\t\t\t\t\t!!tableData.length &&\n\t\t\t\t\t\ttableData.map((group: any, groupIndex: number) =>\n\t\t\t\t\t\t\t// Object.keys(group).map((grp: any, index) =>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t 0 ? \"ObScrollCont\" : \"\"}\n\t\t\t\t\t\t\t\t\t\tstyle={ObScrollStyle(props.data.length > 0 ? true : false)}\n\t\t\t\t\t\t\t\t\t\tkey={groupIndex}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{group.map((item: IEqSip, index: number) => (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{moment(dateTimeFormat(item.spSD)).format(\"DD MMM ‘YY\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{moment(dateTimeFormat(item.spLED)).format(\"DD MMM ‘YY\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.pCode}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.sFrqy} ({GetNoOfDaysOrMonths(item.spNDD, item.spSD, item.sFrqy.toLowerCase())}/\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{GetNoOfDaysOrMonths(item.spLED, item.spSD, item.sFrqy.toLowerCase())})\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{moment(dateTimeFormat(item.spNDD)).format(\"DD MMM YY\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.spQty}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.spAmt ? \"₹\" + toINR(item.spAmt, 0) : \"--\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t--\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.ovrOpts && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t)\n\t\t\t\t\t// )\n\t\t\t\t}\n\t\t\t
    \n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{!isSelectEnable && (\n\t\t\t\t\n\t\t\t\t\t\t\t\t{props.isSip ? \"Active SIPs\" : \"Executed Orders\"}: \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{!props.isSip ? exeCountRef.current + \" /\" : \"\"} {initialData[0].length}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : props.isHistory ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\tdata={initialData}\n\t\t\t\t\tsearchKey=\"cpName;dpName;symName;trdSym;tSym\"\n\t\t\t\t\tonDataFilter={onDataFilter}\n\t\t\t\t\tonSelectClick={\n\t\t\t\t\t\t!props.isHistory && !props.isSip && tableData.find((g: any) => g.find((row: IEquity) => row.cancel === \"true\"))\n\t\t\t\t\t\t\t? () => {\n\t\t\t\t\t\t\t\t\tsetIsSelectEnable(true);\n\t\t\t\t\t\t\t\t\t// props.hidePageNav && props.hidePageNav(true);\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\tonFilterClick={(tgl) => {\n\t\t\t\t\t\tOpenOrdsTopRef.current = tgl;\n\t\t\t\t\t}}\n\t\t\t\t\tfilterReqData={{\n\t\t\t\t\t\tstatus: \"sts\",\n\t\t\t\t\t\taType: props.aType,\n\t\t\t\t\t\tshowOpenOrderOnTop: OpenOrdsTopRef.current,\n\t\t\t\t\t\tshowOpenOrderTgl: props.isHistory || props.isSip ? false : true,\n\t\t\t\t\t\tisHistory: props.isHistory ? true : false\n\t\t\t\t\t}}\n\t\t\t\t\tonSearchClick={(e) => {\n\t\t\t\t\t\t// setTableData(initialData);\n\t\t\t\t\t\t// if exists, then call it\n\t\t\t\t\t\tprops.hidePageNav && props.hidePageNav(e);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{/* //after clicking on select to show cancel orders and selectRows count */}\n\t\t\t{isSelectEnable && (\n\t\t\t\t<>\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    {selectedCount} selected

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t checkPartialOrder(true)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{!props.isSip && nonSIP()}\n\t\t\t{props.isSip && sipOrders()}\n\t\t\t{!tableData.length && }\n\n\t\t\t{/* tableData[groupIndex][index] */}\n\t\t\t{popupDataIndex && (\n\t\t\t\t\n\t\t\t\t\t setPopupDataIndex(undefined)}\n\t\t\t\t\t\tisTodayOrder={!props.isHistory && !props.isSip}\n\t\t\t\t\t\tonCancelClick={() => checkPartialOrder(false, tableData[popupDataIndex[0] as number][popupDataIndex[1]] as IEquity)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t)}\n\t\t\t{showCancelPopup && (\n\t\t\t\t\n\t\t\t\t\t setShowCancelPopup(undefined)}\n\t\t\t\t\t\tonToastBtnClick={() => cancelOrder(showCancelPopup.bulkCancel, showCancelPopup.data)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default ObEquity;\n","import React from \"react\";\nimport Tag from \"../../../../generic/tag\";\nimport \"../../../../../assets/scss/components/toc/orderBook/instruments/instrumentsMob.scss\";\nimport { ChipColorKeyComb } from \"../../obConstants\";\nexport interface IObAssetsDetlSymMobProps {\n\tdate?: string;\n\ttrsTyp: string;\n\ttitle?: string;\n\tsubTitle?: string;\n\tsts: string;\n}\n\nconst ObAssetsDetlSymMob: React.FC = props => {\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t

    {props.title}

    \n\t\t\t\t

    {props.subTitle}

    \n\t\t\t\t
    \n\t\t\t\t\t
    {props.date}
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default ObAssetsDetlSymMob;\n","import * as React from \"react\";\nimport \"../../assets/scss/components/generic/slideUpPopup.scss\";\n\nexport interface ISlideUpPopupProps {\n\tclosePopup: () => void;\n}\n\nconst SlideUpPopup: React.FC = props => {\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t
    {props.children}
    \n\t\t\n\t);\n};\n\nexport default SlideUpPopup;\n","import * as React from \"react\";\nimport EdButton from \"../../../generic/edButton\";\nimport ObCheckbox from \"../generic/obCheckbox\";\nimport { AEqConvertPos } from \"../../../service/orderBook/obApiService\";\nimport ObProductTypeSelect from \"./obProductTypeSelect\";\nimport ObAssetDetailPopup from \"../generic/obAssetDetailPopup\";\nimport ObToastMessPopup from \"../generic/obToastMessPopup\";\nimport SlideUpPopup from \"../../../generic/slideUpPopup\";\nimport ee from \"../../../utils/eventEmitter\";\nimport ObTradeTabContent from \"./obTradeTabContent\";\nimport { backButtonValue } from \"../obJsXConstants\";\nimport \"../../../../assets/scss/components/generic/layout/layoutMob.scss\";\nimport \"../../../../assets/scss/components/toc/orderBook/obConvertPositions/obConvertPositionMob.scss\";\nimport { IListObj } from \"../../../types/genericTypes\";\n\nexport interface IObEquityConvertMobProps {\n\tdata: Array;\n\tonBackClick: (event: React.MouseEvent) => void; // the function to be called onClick\n}\n\nconst ObEquityConvertMob: React.FC = (props) => {\n\tconst [tradeData, setTradeData] = React.useState(\n\t\tprops.data.map((data, index) => {\n\t\t\treturn { ...data, id: index, isSelected: false };\n\t\t})\n\t);\n\n\tconst [isAllDataSelected, setIsAllDataSelected] = React.useState(false);\n\n\tconst [showConvertPosition, setShowConvertPosition] = React.useState(false);\n\n\t// show convertion error popup\n\tconst [conErrorPopupMsg, setConErrorPopupMsg] = React.useState();\n\n\tconst [isProcessing, setIsProcessing] = React.useState(false);\n\n\t// total qty of selected rows\n\tconst totalSelectedQty = tradeData.reduce((a, b) => {\n\t\tif (b.isSelected) {\n\t\t\treturn a + +b.qty;\n\t\t} else {\n\t\t\treturn a;\n\t\t}\n\t}, 0);\n\n\tconst navigationDropdownOptions: Array = [\n\t\t{ value: \"NRML\", display: \"NRML\" },\n\t\t{ value: \"MIS\", display: \"MIS\" },\n\t\t{ value: \"MTF\", display: \"MTF\" },\n\t\t{ value: \"BO\", display: \"BO\" },\n\t\t{ value: \"CO\", display: \"CO\" }\n\t];\n\n\tlet selectedPrdCode: string;\n\n\tlet ordConvertedSuccList: Array = [],\n\t\tordConvertedFailList: Array<{ error: any; index: number }> = [],\n\t\tOrdsListToConvert: Array = [];\n\t// runs after all convert api response\n\tfunction convertCallback(res: any, index: number) {\n\t\tif (res.data) {\n\t\t\t// if success\n\t\t\tordConvertedSuccList.push(res.data);\n\t\t} else {\n\t\t\t// if error\n\t\t\tordConvertedFailList.push({ error: res.error, index });\n\t\t}\n\n\t\t// when we get all the responses\n\t\tif (ordConvertedSuccList.length + ordConvertedFailList.length === OrdsListToConvert.length) {\n\t\t\tsetIsProcessing(false);\n\n\t\t\tif (ordConvertedSuccList.length === OrdsListToConvert.length) {\n\t\t\t\t// when all the converted successfully\n\t\t\t\tee.emit(\"showToast\", { message: `Success - ${totalSelectedQty} qty (SYMBOL) converted to ${selectedPrdCode}`, color: \"success\" }); //show toast message\n\t\t\t} else if (ordConvertedFailList.length === OrdsListToConvert.length) {\n\t\t\t\t// when all request failed\n\t\t\t\tee.emit(\"showToast\", {\n\t\t\t\t\tmessage: (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tCould not convert selected positions{\" \"}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t),\n\t\t\t\t\tcolor: \"error\"\n\t\t\t\t}); //show toast message\n\t\t\t} else {\n\t\t\t\t// partial conversion\n\t\t\t\tee.emit(\"showToast\", {\n\t\t\t\t\tmessage: `Could not convert ${ordConvertedFailList.length} / ${OrdsListToConvert.length} selected positions`,\n\t\t\t\t\tcolor: \"error\"\n\t\t\t\t}); //show toast message\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction onConvertPosition(selectedRadio: string) {\n\t\tsetIsProcessing(true);\n\t\tselectedPrdCode = selectedRadio;\n\n\t\t// call api for all selected rows\n\t\ttradeData.forEach((rw: any, index: number) => {\n\t\t\tif (rw.isSelected) {\n\t\t\t\tOrdsListToConvert.push(rw.ordID);\n\t\t\t\tAEqConvertPos((res: any) => convertCallback(res, index), {\n\t\t\t\t\tnstOID: rw.ordID,\n\t\t\t\t\tflID: rw.flID,\n\t\t\t\t\tprdCode: rw.prdCode,\n\t\t\t\t\tprdCodeCh: selectedRadio,\n\t\t\t\t\texc: rw.exc,\n\t\t\t\t\tordTyp: rw.ordTyp\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tfunction obEqtradeRowSelection(index: number) {\n\t\t// if checkbox of any row is selected\n\t\tif (index >= 0) {\n\t\t\t// copy the data\n\t\t\tconst data = [...tradeData];\n\t\t\t// get the row\n\t\t\tconst row = { ...data[index] };\n\t\t\t// invert the status\n\t\t\trow.isSelected = !tradeData[index].isSelected;\n\t\t\t// put the updated row back in data\n\t\t\tdata[index] = row;\n\t\t\t// set the state\n\t\t\tsetTradeData(data);\n\n\t\t\t// set the value of all selected checkbox\n\t\t\tdata.every((row) => row.isSelected === true) ? setIsAllDataSelected(true) : setIsAllDataSelected(false);\n\t\t}\n\t\t// if all clicked on all selected checkbox\n\t\telse if (index === -1) {\n\t\t\t// copy the data\n\t\t\tlet data = [...tradeData];\n\t\t\t// loop over the data\n\t\t\t// If isAllDataSelected is true, then set every row to false\n\t\t\t// else if isAllDataSelected is false, then set every row to true\n\t\t\tdata = data.map((row) => ({ ...row, isSelected: !isAllDataSelected }));\n\n\t\t\tsetTradeData(data);\n\n\t\t\t// invert the state of isAllDataSelected\n\t\t\tsetIsAllDataSelected(!isAllDataSelected);\n\t\t}\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t{/* {showToast && } */}\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t obEqtradeRowSelection(-1)}>\n\t\t\t\t\t\t\t\t\t\tSelect All\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{tradeData.map((data, index) => (\n\t\t\t\t\t\t\t\t\t obEqtradeRowSelection(index)}\n\t\t\t\t\t\t\t\t\t\tshowCheckbox={true}\n\t\t\t\t\t\t\t\t\t\ttooltipTxt={ordConvertedFailList.find((failObj) => failObj.index === index)?.error.errMsg}\n\t\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\t\tdata={data}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t setShowConvertPosition(true)} />\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t{showConvertPosition && (\n\t\t\t\t setShowConvertPosition(false)}>\n\t\t\t\t\t setShowConvertPosition(false)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{conErrorPopupMsg && (\n\t\t\t\t\n\t\t\t\t\t setConErrorPopupMsg(undefined)}\n\t\t\t\t\t\tonToastBtnClick={() => setConErrorPopupMsg(undefined)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default ObEquityConvertMob;\n","import * as React from \"react\";\nimport EdButton from \"../../../../generic/edButton\";\nimport ObEqDtlContent from \"../dsk/obEqDtlContent\";\nimport Tab from \"../../../../generic/tab\";\nimport ObAssetsDetlSymMob from \"../../instruments/details/obAssetsDetlSymMob\";\nimport { ObAssetsDetlSymProps } from \"./../../instruments/details/obAssetsDetlSym\";\nimport moment from \"moment\";\nimport { dateTimeFormat } from \"./../../../../service/dateTimeService\";\nimport { ChipStatusComb } from \"./../../obConstants\";\nimport { AEqGetTradeBk } from \"../../../../service/orderBook/obApiService\";\nimport DeviceContext from \"../../../../service/indentifyDevice\";\nimport ObAssetDetailPopup from \"../../generic/obAssetDetailPopup\";\nimport ObEquityConvertMob from \"../../obConvertPositions/obEquityConvertMob\";\nimport ObTradeTabContent from \"../../obConvertPositions/obTradeTabContent\";\nimport { backButtonValue } from \"./../../obJsXConstants\";\nimport { IListObj } from \"../../../../types/genericTypes\";\nimport \"../../../../../assets/scss/components/toc/orderBook/obDetails/obAssetDetailsMob.scss\";\n\nexport interface ObEqDtlsOpenMobProps {\n\tdata: any;\n\tonBackClick: (event: React.MouseEvent) => void; // the function to be called onClick\n\tisTodayOrder: boolean;\n\tonCancelClick: (e: React.MouseEvent) => void;\n}\n\nexport interface ObEqDtlsOpenMobState {\n\tselectedTab: string | number;\n\ttradeData: Array;\n\tshowTradePopup: boolean;\n\ttabLst: Array;\n}\n\nclass ObEqDtlsOpenMob extends React.Component {\n\tstate = { selectedTab: \"info\", tradeData: [], showTradePopup: false, tabLst: [{ value: \"info\", display: \"Info\" }] };\n\n\tassetDetail: ObAssetsDetlSymProps = {\n\t\tdate: this.props.data.rcvEpTim\n\t\t\t? moment(dateTimeFormat(this.props.data.rcvEpTim)).format(\"D MMM YYYY, HH:mm:ss\")\n\t\t\t: moment(dateTimeFormat(this.props.data.ordEntTyp)).format(\"D MMM YYYY, HH:mm:ss\"),\n\t\ttrsTyp: this.props.data.trsTyp,\n\t\ttitle: this.props.data.trdSym,\n\t\tsubTitle: this.props.data.cpName ? this.props.data.cpName : this.props.data.dpName ? this.props.data.dpName : this.props.data.symName,\n\t\tsts: this.props.data.sts ? ChipStatusComb[this.props.data.sts.toLowerCase()] : \"\"\n\t};\n\n\ttabLstSelect = (id: string | number) => {\n\t\tthis.setState({ selectedTab: id });\n\t};\n\n\teqGetTradeBkRes = (res: any) => {\n\t\tif (res.data) {\n\t\t\tthis.setState({\n\t\t\t\ttradeData: res.data.trade,\n\t\t\t\ttabLst: [\n\t\t\t\t\t{ value: \"info\", display: \"Info\" },\n\t\t\t\t\t{ value: \"trade\", display: \"Trades\" }\n\t\t\t\t]\n\t\t\t});\n\t\t}\n\t};\n\n\tcomponentDidMount() {\n\t\tAEqGetTradeBk(this.eqGetTradeBkRes, this.props.data.ordID);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/* back button */}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{/* convert trade button for mobile */}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{this.state.tradeData.length > 0 && DeviceContext().isMobile && (\n\t\t\t\t\t\t\t\t\t\t// button to convert positions\n\t\t\t\t\t\t\t\t\t\t this.setState({ showTradePopup: true })} slim />\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/* when status is rejected will show below content */}\n\t\t\t\t\t\t\t\t{this.props.data.rjRsn && (\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t

    Reason

    \n\t\t\t\t\t\t\t\t\t\t

    {this.props.data.rjRsn}

    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{/* detailed content */}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t 0}\n\t\t\t\t\t\t\t\t\t\ttradeData={this.state.tradeData}\n\t\t\t\t\t\t\t\t\t\tonCancelClick={this.props.onCancelClick}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/* if the tab is trade then show trade content below */}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t{this.state.tradeData.map((data, index) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{!DeviceContext().isMobile && (\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.setState({ showTradePopup: true });\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tslim\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t{this.state.showTradePopup && (\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ showTradePopup: false })} />\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
    \n\t\t);\n\t}\n}\n\nexport default ObEqDtlsOpenMob;\n","import React, { useState, useEffect } from \"react\";\nimport Tag from \"../../../../generic/tag\";\nimport ObCheckbox from \"../../generic/obCheckbox\";\nimport { IEqSip, IEquity } from \"../../../../types/components/orderBook/obTypes\";\nimport \"../../../../../assets/scss/components/toc/orderBook/instruments/instrumentsMob.scss\";\nimport ObUtilHeader from \"../../obContainer/obUtilHeader\";\nimport moment from \"moment\";\nimport dateTimeFormat, { GetNoOfDaysOrMonths } from \"../../../../service/dateTimeService\";\nimport TocNoData from \"../../../generic/tocNoData/tocNoData\";\nimport { ChipColorKeyComb, scrlStCls, ObScrollStyle } from \"../../obConstants\";\nimport obtradeRowSelection from \"../../../../service/orderBook/selectAll\";\nimport { HObGroupBy, HOb2DGroupBy } from \"../../../../service/orderBook/obGrpByHelper\";\nimport DatePickerInt from \"../../obContainer/obDatePickerInt\";\nimport ObEqDtlsOpenMob from \"../../obDetails/mob/obEqDtlsOpenMob\";\nimport ObAssetDetailPopup from \"../../generic/obAssetDetailPopup\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport EdButton from \"../../../../generic/edButton\";\nimport { backButtonValue } from \"../../obJsXConstants\";\nimport \"../../../../../assets/scss/components/toc/orderBook/obEquity/obEquityMob.scss\";\nimport { ChipStatusComb } from \"./../../obConstants\";\nimport { AEqCancelNrmTrd, AEqCancelSIPOrd, AEqCancelAmoTrd } from \"./../../../../service/orderBook/obApiService\";\n\nimport ObToastMessPopup from \"../../generic/obToastMessPopup\";\nimport indexer from \"../../../../types/genericTypes\";\nimport { SearchHighLight } from \"../../../../service/generic/searchHighlight\";\nimport ee from \"../../../../utils/eventEmitter\";\nimport { numValChk } from \"../../../../service/generic/numValueChk\";\n\nexport interface IObEquityMobProps {\n\t// Array of Equity Data\n\tdata: Array;\n\t//true if table is history type else false\n\tisHistory?: boolean;\n\thidePageNav?: (hide: boolean) => void;\n\tgetDates: (frmDt: Date, toDate: Date) => void;\n\tisSip: boolean;\n\taType: string;\n\treRenderCall?: (value: string) => void;\n}\nconst ObEquityMob: React.FC = (props) => {\n\tconst [isSelectEnable, setIsSelectEnable] = useState(false);\n\n\tconst [isAllDataSelected, setIsAllDataSelected] = useState(false);\n\n\t// wherever initial data needs to be sent, send initialData\n\t// initial data is array of array for supporting grouping\n\tconst initialData = [props.data.map((data, index) => ({ ...data, id: index, isSelected: false }))];\n\n\t// filteredData contains filtered, searched data\n\t// let filteredData: Array = initialData;\n\n\t// tableData is shown in the table\n\t// tableData contains sorted, filtered, searched data\n\tlet [tableData, setTableData] = useState(initialData);\n\tlet eqHistoryData: Array<{ [x: string]: Array }> = [{}];\n\n\t// this function excute on clicking any row\n\t// date is passed only in the case of history\n\tfunction onRowClick(data: any, groupIndex: number, index: number, e?: any) {\n\t\t//each row contains two different native events, one of overflow and other is of checkbox\n\t\tif (\n\t\t\te &&\n\t\t\t!e.nativeEvent.path.find((m: HTMLElement) => m.className && (m.className.indexOf(\"check\") >= 0 || m.className.indexOf(\"menu\") >= 0))\n\t\t) {\n\t\t\tsetPopupDataIndex([groupIndex, index, props.isHistory ? data.ordEntTyp.split(\" \")[0] : undefined]);\n\t\t}\n\t}\n\t//executed orders count\n\tconst exeCountRef = React.useRef();\n\t//Show Open Ords on Top or not ref state\n\tconst OpenOrdsTopRef = React.useRef();\n\tuseEffect(() => {\n\t\tsetTableData([props.data]);\n\t\t//ref to initial toggle state of show open orders on top\n\t\tOpenOrdsTopRef.current = true;\n\t\t// check that props.data is not undefined/null, group it(open and others) and update tabledata\n\n\t\tif (props.data) {\n\t\t\tif (!props.isHistory && !props.isSip && OpenOrdsTopRef.current) {\n\t\t\t\tlet temp0 = HOb2DGroupBy(props.data, \"sts\");\n\t\t\t\texeCountRef.current = temp0[1].length;\n\n\t\t\t\tsetTableData(temp0);\n\t\t\t}\n\t\t}\n\n\t\treturn () => {\n\t\t\tsetTableData([[{}]]);\n\t\t};\n\t}, [props.data, props.isHistory, props.isSip]);\n\t//kept outside because state data updating in async mode\n\tif (props.isHistory && props.data.length) {\n\t\teqHistoryData = tableData.map((group) => HObGroupBy(group, \"ordEntTyp\", \" \"));\n\t}\n\n\t//selected count\n\tconst [selectedCount, setselectedCount] = useState(0);\n\t//is popup data\n\tconst [popupDataIndex, setPopupDataIndex] = React.useState<[number, number, string?]>();\n\n\t// show cancel popup\n\tconst [showCancelPopup, setShowCancelPopup] = React.useState<{ bulkCancel: boolean; data?: any }>();\n\n\tconst selectRows = (groupIndex: number, index: number) => {\n\t\tconst retRes = obtradeRowSelection(groupIndex, index, tableData, isAllDataSelected, \"cancel\", \"true\");\n\n\t\t// set the state\n\t\tsetTableData(retRes.data);\n\t\tsetselectedCount(retRes.count);\n\n\t\tsetIsAllDataSelected(retRes.allSelected);\n\t};\n\n\tfunction onDataFilter(data: Array, sText?: string, type?: string) {\n\t\t// filteredData = data;\n\t\t//highlightes the search text\n\t\tif (sText) {\n\t\t\tconst SearchText: string = sText.toLowerCase();\n\t\t\tconst searchKeys: string = \"cpName;dpName;symName;trdSym;tSym\";\n\n\t\t\tdata[0].forEach((ord: indexer) => {\n\t\t\t\tsearchKeys.split(\";\").forEach((k: string) => {\n\t\t\t\t\tif (ord[k]) {\n\t\t\t\t\t\tord[k] = SearchHighLight(ord[k], SearchText);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\tif (type === \"search\" && OpenOrdsTopRef.current && !props.isHistory && !props.isSip) {\n\t\t\tsetTableData(HOb2DGroupBy(data[0], \"sts\"));\n\t\t} else {\n\t\t\tsetTableData(data);\n\t\t}\n\t}\n\n\tfunction addFlAndNtQty(bulkCancel: boolean, data?: IEquity) {\n\t\tlet flQtySum = 0;\n\t\tlet ntQtySum = 0;\n\n\t\tif (bulkCancel) {\n\t\t\ttableData.forEach((g: any) =>\n\t\t\t\tg.forEach((rw: IEquity) => {\n\t\t\t\t\tif (rw.isSelected) {\n\t\t\t\t\t\tflQtySum += +rw.flQty;\n\t\t\t\t\t\tntQtySum += +(rw.ntQty ? rw.ntQty : rw.qtyTF || 0);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t);\n\t\t} else if (data) {\n\t\t\tflQtySum += +data.flQty;\n\t\t\tntQtySum += +(data.ntQty ? data.ntQty : data.qtyTF || 0);\n\t\t}\n\n\t\treturn { flQtySum, ntQtySum };\n\t}\n\n\tfunction selectedRows(bulkCancel: boolean, data?: IEquity) {\n\t\tif (bulkCancel) {\n\t\t\tlet total = 0;\n\t\t\ttableData.forEach((g: any) =>\n\t\t\t\tg.forEach((rw: IEquity) => {\n\t\t\t\t\tif (rw.isSelected) {\n\t\t\t\t\t\ttotal++;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn total;\n\t\t} else if (data) {\n\t\t\treturn 1;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tlet ordCancelledSuccList: Array = [],\n\t\tordCancelledFailList: Array = [],\n\t\tordsListToCancel: Array = [];\n\n\t// runs after all cancel api response\n\tfunction cancelCallback(res: any) {\n\t\tif (res.data) {\n\t\t\t// if success\n\t\t\tordCancelledSuccList.push(res.data);\n\t\t} else {\n\t\t\t// if error\n\t\t\tordCancelledFailList.push(res.error);\n\t\t}\n\n\t\t// when we get all the responses\n\t\tif (ordCancelledSuccList.length + ordCancelledFailList.length === ordsListToCancel.length) {\n\t\t\tsetShowCancelPopup(undefined); // close confirmation popup\n\t\t\t//show toast message\n\t\t\tee.emit(\"showToast\", { message: `Cancelled ${ordsListToCancel.length} Orders`, color: \"cancell\" });\n\n\t\t\tprops.reRenderCall && props.reRenderCall(\"today\");\n\t\t}\n\t}\n\n\tfunction checkPartialOrder(bulkCancel: boolean, data?: IEquity) {\n\t\t// {data.flQty}/{data.ntQty ? data.ntQty : data.qtyTF}\n\t\tconst { flQtySum, ntQtySum } = addFlAndNtQty(bulkCancel, data);\n\n\t\tif (flQtySum === ntQtySum) {\n\t\t\t// not partially completed\n\t\t\tcancelOrder(bulkCancel, data?.ordID);\n\t\t} else {\n\t\t\t// partially completed\n\t\t\tsetShowCancelPopup({ bulkCancel, data });\n\t\t}\n\t}\n\n\tfunction cancelOrder(bulkCancel: boolean, data?: any) {\n\t\tif (bulkCancel) {\n\t\t\ttableData.forEach((g: any) =>\n\t\t\t\tg.forEach((rw: IEquity) => {\n\t\t\t\t\tif (rw.isSelected) {\n\t\t\t\t\t\tordsListToCancel.push(rw.ordID);\n\t\t\t\t\t\tif (props.isSip) {\n\t\t\t\t\t\t\t// if sip trade then run this api\n\t\t\t\t\t\t\tAEqCancelSIPOrd(cancelCallback, rw.ordID);\n\t\t\t\t\t\t} else if (rw.ogt === \"AMO\") {\n\t\t\t\t\t\t\t// if amo trade then run this api\n\t\t\t\t\t\t\tAEqCancelAmoTrd(cancelCallback, { nstOID: rw.ordID, exc: rw.exc, ordTyp: rw.ordTyp, prdCode: rw.prdCode });\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// if normal trade then run this api\n\t\t\t\t\t\t\tAEqCancelNrmTrd(cancelCallback, { nstOID: rw.ordID, exc: rw.exc, ordTyp: rw.ordTyp, prdCode: rw.prdCode });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t);\n\t\t} else if (data) {\n\t\t\t// cancel single order\n\t\t\tordsListToCancel.push(data?.ordID);\n\t\t\tif (props.isSip) {\n\t\t\t\t// if sip trade then run this api\n\t\t\t\tAEqCancelSIPOrd(cancelCallback, data.ordID);\n\t\t\t} else if (data.ogt === \"AMO\") {\n\t\t\t\t// if amo trade then run this api\n\t\t\t\tAEqCancelAmoTrd(cancelCallback, { nstOID: data.ordID, exc: data.exc, ordTyp: data.ordTyp, prdCode: data.prdCode });\n\t\t\t} else {\n\t\t\t\t// if normal trade then run this api\n\t\t\t\tAEqCancelNrmTrd(cancelCallback, { nstOID: data.ordID, exc: data.exc, ordTyp: data.ordTyp, prdCode: data.prdCode });\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction eqRow(data: IEquity, groupIndex: number, index: number) {\n\t\treturn (\n\t\t\t
    onRowClick(data, groupIndex, index, e)} key={index}>\n\t\t\t\t
    \n\t\t\t\t\t{isSelectEnable ? (\n\t\t\t\t\t\t selectRows(groupIndex, index)} />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{isSelectEnable && }\n\t\t\t\t\t\t{data.rcvTim && data.rcvTim}\n\t\t\t\t\t\t{data.ordEntTyp && moment(dateTimeFormat(data.ordEntTyp)).format(\"HH:mm:ss\")}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{data.sts && (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{data.prdCode}\n\t\t\t\t\t\t\t{data.ordTyp}\n\t\t\t\t\t\t\t{data.flQty}/{data.ntQty ? data.ntQty : data.qtyTF}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t₹{numValChk(data.avgPrc) ? toINR(data.avgPrc, 2) : data.prc ? toINR(data.prc, 2) : toINR(data.prcTF, 2)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n\n\tfunction CurRow(data: IEquity, groupIndex: number, index: number) {\n\t\treturn (\n\t\t\t
    onRowClick(data, groupIndex, index, e)} key={index}>\n\t\t\t\t
    \n\t\t\t\t\t{isSelectEnable ? (\n\t\t\t\t\t\t selectRows(groupIndex, index)} />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{isSelectEnable && }\n\t\t\t\t\t\t{data.rcvTim && data.rcvTim}\n\t\t\t\t\t\t{data.ordEntTyp && moment(dateTimeFormat(data.ordEntTyp)).format(\"HH:mm:ss\")}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{data.prdCode}\n\t\t\t\t\t\t\t{toINR(data.ntQty ? data.ntQty : data.qtyTF, 0)} Qty @ ₹{toINR(data.prc, 2)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    ₹{toINR(data.avgPrc, 2)}
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n\n\tfunction derRow(data: IEquity, groupIndex: number, index: number) {\n\t\treturn (\n\t\t\t
    onRowClick(data, groupIndex, index, e)} key={index}>\n\t\t\t\t
    \n\t\t\t\t\t{isSelectEnable ? (\n\t\t\t\t\t\t selectRows(groupIndex, index)} />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{isSelectEnable && }\n\n\t\t\t\t\t\t{data.rcvTim && data.rcvTim}\n\t\t\t\t\t\t{data.ordEntTyp && moment(dateTimeFormat(data.ordEntTyp)).format(\"HH:mm:ss\")}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{data.prdCode}\n\t\t\t\t\t\t\t{data.flQty}/{data.ntQty ? data.ntQty : data.qtyTF}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    ₹{data.avgPrc}
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n\n\tfunction nonSip() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t{props.isHistory\n\t\t\t\t\t? eqHistoryData.map((group: any, groupIndex: number) =>\n\t\t\t\t\t\t\tObject.keys(group).map((date: any, index: number) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t
    • {moment(dateTimeFormat(date)).format(\"DD MMMM YYYY\")}
    • \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t{group[date].map((row: any, index: number) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{props.aType === \"equity\" && eqRow(row, groupIndex, index)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{props.aType === \"currency\" && CurRow(row, groupIndex, index)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{props.aType === \"derivative\" && derRow(row, groupIndex, index)}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})\n\t\t\t\t\t )\n\t\t\t\t\t: !!tableData.length &&\n\t\t\t\t\t tableData.map((group: any, groupIndex: number) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{group.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{group.map((row: any, index: number) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{props.aType === \"equity\" && eqRow(row, groupIndex, index)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{props.aType === \"currency\" && CurRow(row, groupIndex, index)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{props.aType === \"derivative\" && derRow(row, groupIndex, index)}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t);\n\t\t\t\t\t })}\n\t\t\t\t{!tableData.length && }\n\t\t\t
    \n\t\t);\n\t}\n\n\t//sip orders\n\tfunction sipOrders() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{!!tableData.length &&\n\t\t\t\t\ttableData.map((group: any, groupIndex: number) =>\n\t\t\t\t\t\t// Object.keys(group).map((grp: any, index) =>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{group.map((item: IEqSip, index: number) => (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\tNext:\n\t\t\t\t\t\t\t\t\t\t\t\t\t{moment(dateTimeFormat(item.spNDD)).format(\"DD MMM ’YY\")}\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    {item.tSym}
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    {/* */}
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.sFrqy} ({GetNoOfDaysOrMonths(item.spNDD, item.spSD, item.sFrqy.toLowerCase())}/\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{GetNoOfDaysOrMonths(item.spLED, item.spSD, item.sFrqy.toLowerCase())})\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{toINR(item.spQty, 0)} Qty\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    {item.spAmt ? \"₹\" + toINR(item.spAmt, 0) : \"--\"}
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t// )\n\t\t\t\t\t\t}\n\t\t\t\t\t)}\n\t\t\t\t{!tableData.length && }\n\t\t\t\n\t\t);\n\t}\n\treturn (\n\t\t
    \n\t\t\t{!isSelectEnable && (\n\t\t\t\t\n\t\t\t\t\t\t\t\t{props.isSip ? \"Active SIPs\" : \"Executed Orders\"}: \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{!props.isSip ? exeCountRef.current + \" /\" : \"\"} {initialData[0].length}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t) : props.isHistory ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\tdata={initialData}\n\t\t\t\t\tsearchKey=\"cpName;dpName;trdSym;tSym\"\n\t\t\t\t\tonDataFilter={onDataFilter}\n\t\t\t\t\tonSelectClick={\n\t\t\t\t\t\t!props.isHistory && tableData.find((g: any) => g.find((row: IEquity) => row.cancel === \"true\"))\n\t\t\t\t\t\t\t? () => {\n\t\t\t\t\t\t\t\t\tsetIsSelectEnable(true);\n\t\t\t\t\t\t\t\t\tprops.hidePageNav && props.hidePageNav(true);\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\tfilterReqData={{\n\t\t\t\t\t\tstatus: \"sts\",\n\t\t\t\t\t\taType: props.aType,\n\t\t\t\t\t\tshowOpenOrderOnTop: OpenOrdsTopRef.current,\n\t\t\t\t\t\tshowOpenOrderTgl: props.isHistory || props.isSip ? false : true,\n\t\t\t\t\t\tisHistory: props.isHistory ? true : false\n\t\t\t\t\t}}\n\t\t\t\t\tonFilterClick={(tgl) => {\n\t\t\t\t\t\tOpenOrdsTopRef.current = tgl;\n\t\t\t\t\t}}\n\t\t\t\t\tonSearchClick={(e) => {\n\t\t\t\t\t\tsetTableData(initialData);\n\t\t\t\t\t\t// if exists, then call it\n\t\t\t\t\t\tprops.hidePageNav && props.hidePageNav(e);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{isSelectEnable && (\n\t\t\t\t<>\n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetIsSelectEnable(false);\n\t\t\t\t\t\t\t\tprops.hidePageNav && props.hidePageNav(false);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tclassName=\"icon_button\"\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t checkPartialOrder(true)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t)}\n\t\t\t{isSelectEnable && (\n\t\t\t\t
    \n\t\t\t\t\t selectRows(-1, -1)}>\n\t\t\t\t\t\tSelect All\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t)}\n\t\t\t
    0 ? \"ObScrollCont\" : \"\"} style={ObScrollStyle(props.data.length > 0 ? true : false)}>\n\t\t\t\t{!props.isSip && nonSip()}\n\t\t\t\t{props.isSip && sipOrders()}\n\t\t\t
    \n\t\t\t{/* tableData[groupIndex][index] */}\n\t\t\t{popupDataIndex && (\n\t\t\t\t\n\t\t\t\t\t setPopupDataIndex(undefined)}\n\t\t\t\t\t\tisTodayOrder={true}\n\t\t\t\t\t\tonCancelClick={() => checkPartialOrder(false, tableData[popupDataIndex[0]][popupDataIndex[1]] as IEquity)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t)}\n\t\t\t{showCancelPopup && (\n\t\t\t\t\n\t\t\t\t\t setShowCancelPopup(undefined)}\n\t\t\t\t\t\tonToastBtnClick={() => cancelOrder(showCancelPopup.bulkCancel, showCancelPopup.data)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default ObEquityMob;\n","import React from \"react\";\nimport EdButton, { EdLinkButton, EdALinkButton } from \"./edButton\";\nimport DeviceContext from \"../service/indentifyDevice\";\n\nif (DeviceContext().isMobile) {\n\trequire(\"../../assets/scss/components/generic/noDataCont/noDataContainerMob.scss\");\n} else {\n\trequire(\"../../assets/scss/components/generic/noDataCont/noDataContainer.scss\");\n}\n\nexport interface INoDataContainerProps {\n\ttxtHeading: string;\n\ttxtSubHeading?: string;\n\tlinkDet?: { txt: string; type: \"btn\"; clickHandler: (value: any) => void } | { txt: string; href: string; type: \"aLink\" };\n\tbtnDet?: { txt: string; type: \"btn\"; clickHandler: (value: any) => void } | { txt: string; href: string; type: \"bLink\" | \"aLink\" };\n}\n\nconst NoDataContainer: React.FC = (props: INoDataContainerProps) => {\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t

    {props.txtHeading}

    \n\t\t\t

    {props.txtSubHeading}

    \n\t\t\t{/* hide button if no text is passed*/}\n\t\t\t{props.btnDet && (\n\t\t\t\t
    \n\t\t\t\t\t{props.btnDet.type === \"btn\" && (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t{props.btnDet.type === \"bLink\" && (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t{props.btnDet.type === \"aLink\" && (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t)}\n\t\t\t{props.linkDet && (\n\t\t\t\t
    \n\t\t\t\t\t{props.linkDet.type === \"btn\" && (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t{props.linkDet.type === \"aLink\" && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{props.linkDet.txt}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default NoDataContainer;\n","import indexer from \"../types/genericTypes\";\nimport { config } from \"../../config/domain\";\n\nexport const logoDimensions = {\n desktop: {\n width: \"125\",\n height: \"30\",\n viewbox: \"0 0 125 30\",\n },\n mobile: {\n width: \"111\",\n height: \"20\",\n viewbox: \"5 5 115 17\",\n },\n};\n\nexport enum ELoginScreenState {\n LOADING = 1,\n LOGIN_ID,\n PASSWORD,\n YOB,\n CONSENTS,\n RESET_CREDS,\n CLEVERTAP,\n MERGE,\n RM_RATING,\n ACC_OPENING,\n LEAD_FORM,\n VENDOR_CNST,\n}\n\nexport enum ELoginPopupState {\n RESET_SUCC = 1,\n LOGINID_SENT,\n INACTIVE_ACC,\n EMAIL_SENT,\n RM_RATING_SUCC,\n OPEN_ACC_SUCC,\n MERGE_REQUESTED,\n REQUESTED,\n NOT_ENABLED,\n ONE_ACCOUNT,\n LOGIN_FAILED,\n INCOME_DECL_CNST,\n INVALID_PAN_CNST,\n INVALID_NAME_CNST,\n INVALID_EMAIL_MOBILE_CNST,\n INVALID_EMAIL_CNST,\n INVALID_MOBILE_CNST,\n Account_React_CNST,\n INVALID_ADDRESS_CNST,\n INVALID_NOMIN_CNST,\n\n}\n\nexport const consentKeyMap: indexer = {\n eqstwt: \"Eq. STWT\",\n bseMfstwt: \"MF STWT\",\n costwt: \"Co. STWT\",\n mtf: \"MTF\",\n wtsap: \"Whatsapp\",\n};\n\n// used to show the progress in submit button of change password form\nexport enum EResetSubmitState {\n ver_login_id = \"ver_login_id\",\n ver_password = \"ver_password\",\n}\n\nexport const urls = {\n home: \"/clientarea/service-request\",\n cipPassThroughBase: \"\",\n report: config.rootUrl + \"reports\",\n login: \"/login\",\n};\n","import React from \"react\";\nimport { NavLink } from \"react-router-dom\";\nimport { IListObj } from \"../../types/genericTypes\";\nimport \"../../../assets/scss/components/generic/SecNavigation/SecNavigationDesktop.scss\";\n\nexport interface ISecNavigationDesktopProps {\n\tdefaultValue?: number | string; // default selected value\n\tlist: Array; // list of all options in dropdown\n\tonSelect?: (id: string | number) => void; // the function to be called onSelect\n}\n\n// This component will adjust according to the space of its parent\nconst SecNavigationDesktop: React.FC = (props: ISecNavigationDesktopProps) => {\n\treturn (\n\t\t
      \n\t\t\t{props.list.map((item) => (\n\t\t\t\t itemSelected(item.value)}\n\t\t\t\t>\n\t\t\t\t\t{item.href && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{item.display}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t{!item.href && item.display}\n\t\t\t\t\n\t\t\t))}\n\t\t
    \n\t);\n};\n\nexport default SecNavigationDesktop;\n","import React, { useState } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { IListObj } from \"../types/genericTypes\";\nimport \"../../assets/scss/components/generic/navigationDropdown.scss\";\nimport \"../../assets/scss/components/generic/SecNavigation/secNavigationMobile.scss\";\n\nexport interface INavigationDropdownProps {\n\tdefaultValue?: number | string; // default selected value\n\tdropdownOptions: Array; // list of all options in dropdown\n\tonSelect: (id: string | number) => void; // the function to be called onSelect\n\ttype: \"page_nav\" | \"sec_nav\"; // 'page_nav' if it is top nav. 'sec_nav' if it is secondary nav\n}\n\nconst NavigationDropdown: React.FC = (props: INavigationDropdownProps) => {\n\t/**\n\t * state and function for selectedValue\n\t * selectedValue type is number | string\n\t * setSelectedValue(number | string)\n\t */\n\tconst [selectedValue, setSelectedValue] = useState(props.defaultValue);\n\n\t/**\n\t * state and function for isDropdownOpen\n\t * selectedValue type is boolean\n\t * setSelectedValue(boolean)\n\t */\n\tconst [isDropdownOpen, setIsDropdownOpen] = useState(false);\n\n\t/**\n\t * called when user selects an option\n\t * @param id id of the selected option\n\t * @returns onSelect prop passed from parent\n\t */\n\tfunction optionSelected(id: string | number) {\n\t\tsetSelectedValue(id);\n\t\tsetIsDropdownOpen(false);\n\t\treturn props.onSelect(id);\n\t}\n\n\tReact.useEffect(() => {\n\t\tsetSelectedValue(props.defaultValue);\n\t}, [props]);\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t{/* when dropdown is open show overlay and content */}\n\t\t\t{isDropdownOpen && (\n\t\t\t\t<>\n\t\t\t\t\t{/* Overlay covers the whole screen. When overlay is clicked, close the dropdown. */}\n\t\t\t\t\t
    setIsDropdownOpen(false)} />\n\n\t\t\t\t\t{/* Dropdown list */}\n\t\t\t\t\t
      \n\t\t\t\t\t\t{props.dropdownOptions.map((option) => (\n\t\t\t\t\t\t\t optionSelected(option.value)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{/* show tick only if this option is selected */}\n\t\t\t\t\t\t\t\t{!option.href && option.display}\n\t\t\t\t\t\t\t\t{option.href && (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{option.value === selectedValue && }\n\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t{option.display}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default NavigationDropdown;\n","import React, { useState } from \"react\";\nimport \"../../assets/scss/components/generic/navigationTag.scss\";\nimport { Link } from \"react-router-dom\";\nimport { IListObj } from \"../types/genericTypes\";\n\nexport interface INavigationTagProps {\n\tdefaultValue?: number | string; // default selected value\n\ttagList: Array; // list of all tags\n\tonSelect: (id: string | number) => void; // the function to be called onSelect\n}\n\nconst NavigationTag: React.FC = (props: INavigationTagProps) => {\n\t/**\n\t * state and function for selectedValue\n\t * selectedValue type is number | string\n\t * setSelectedValue(number | string)\n\t */\n\tconst [selectedValue, setSelectedValue] = useState(props.defaultValue);\n\n\tReact.useEffect(() => {\n\t\tsetSelectedValue(props.defaultValue);\n\t}, [props.defaultValue]);\n\t/**\n\t * called when user selects a tag\n\t * @param value id of the selected tag\n\t * @returns onSelect prop passed from parent\n\t */\n\tfunction tagSelected(value: string | number) {\n\t\tsetSelectedValue(value);\n\t\treturn props.onSelect(value);\n\t}\n\n\treturn (\n\t\t
      \n\t\t\t{props.tagList.map((tag) => (\n\t\t\t\t
    • tagSelected(tag.value)}>\n\t\t\t\t\t{tag.href && {tag.display}}\n\t\t\t\t\t{!tag.href && tag.display}\n\t\t\t\t
    • \n\t\t\t))}\n\t\t
    \n\t);\n};\n\nexport default NavigationTag;\n","import { scrlStCls } from \"../../toc/orderBook/obConstants\";\n\nexport const ObScrollService = (readyToFix: boolean) => {\n\tlet TargetContainer = document.getElementById(scrlStCls.pContId), //conatiner where synthetic event attached\n\t\ttargetEle: any = TargetContainer?.getElementsByClassName(scrlStCls.toContext) || [], //upto what context block to be freezed\n\t\tgetRefOffset: any = TargetContainer?.getElementsByClassName(scrlStCls.pOffset) || [], //fixed header\n\t\tgetFreezeRef: any = TargetContainer?.getElementsByClassName(scrlStCls.freeze) || [], //block to be freezed\n\t\tgetRefBoundClient = getRefOffset.length ? getRefOffset[0].getBoundingClientRect() : null, //fixed header bounding dimensions used for ref\n\t\tfixedEleBottom = TargetContainer?.querySelector(\".fixed .util_cont\")?.getBoundingClientRect().bottom;\n\n\tif (targetEle.length && readyToFix) {\n\t\t//loop all context blocks, when its top and bottom positions near to table fixed header freeze the required block\n\t\tfor (let i = 0; i < targetEle.length; i++) {\n\t\t\tconst ele = targetEle[i].getBoundingClientRect(),\n\t\t\t\tfreezeRef = getFreezeRef[i].getBoundingClientRect();\n\n\t\t\t//fixed header row top and height and row to be freezed height\n\t\t\tlet topSpacing = i - 1 + (fixedEleBottom || 0) + (getRefBoundClient?.height || 0) + freezeRef.height;\n\n\t\t\tif (ele.bottom > topSpacing && ele.top < topSpacing && getFreezeRef[i].className.indexOf(scrlStCls.fixClass) < 0) {\n\t\t\t\tgetFreezeRef[i].className += \" \" + scrlStCls.fixClass;\n\t\t\t} else if (ele.top > topSpacing || ele.bottom < 0) {\n\t\t\t\t//if positions go to negative range remove the class\n\t\t\t\tgetFreezeRef[i].classList.remove(scrlStCls.fixClass);\n\t\t\t}\n\t\t}\n\t}\n};\n","import React, { ReactNode, useState } from \"react\";\nimport SecNavigationDesktop from \"../../../generic/SecNavigation/SecNavigationDesktop\";\nimport NavigationDropdown from \"../../../generic/navigationDropdown\";\nimport { secNavOptions, newOfferOptions, scrlStCls } from \"../obConstants\";\nimport NavigationTag from \"../../../generic/navigationTag\";\nimport { ObScrollService } from \"../../../service/orderBook/obScrollService\";\nimport { useParams } from \"react-router-dom\";\nimport { IListObj } from \"../../../types/genericTypes\";\nimport \"../../../../assets/scss/components/generic/layout/layoutDesk.scss\";\nimport \"../../../../assets/scss/components/toc/orderBook/obContainer/obContainerDesk.scss\";\n\nexport interface IObContainerDeskProps {\n\tpriNavOptions?: Array;\n\n\tinstComp?: ReactNode;\n\tisPriNavHidden?: boolean;\n\t// primary market related props\n\thandleInstNav?: (value: any) => void;\n}\n\nconst ObContainerDesk: React.FC = (props: IObContainerDeskProps) => {\n\tconst [isFixed, setIsFixed] = useState(false);\n\tconst { secNav, pageNav, inst } = useParams<{ secNav: string; pageNav: string; inst: string }>(); //section navigation,page navigation, primary market instrument\n\n\tfunction onContainerScroll(e: React.UIEvent) {\n\t\t// console.dir((e.target as HTMLElement).scrollTop);\n\t\t// if scrolltop is greater than 78 then fix the header\n\t\t(e.target as HTMLElement).scrollTop > (inst ? 88 : 50) ? !isFixed && setIsFixed(true) : isFixed && setIsFixed(false);\n\n\t\tsetTimeout(() => {\n\t\t\tObScrollService(isFixed);\n\t\t});\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{/* left block */}\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t{/* right block which contains page navigation and other controls */}\n\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{props.priNavOptions && (\n\t\t\t\t\t\t\t\t {}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{/* new offers navigation */}\n\t\t\t\t\t\t\t{inst && (\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t {}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t
    {props.instComp}
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default ObContainerDesk;\n","import React, { ReactNode, useState } from \"react\";\nimport Tab from \"../../../generic/tab\";\nimport NavigationDropdown from \"../../../generic/navigationDropdown\";\nimport secNavOptions, { scrlStCls, newOfferOptions } from \"../obConstants\";\nimport { ObScrollService } from \"../../../service/orderBook/obScrollService\";\nimport NavigationTag from \"../../../generic/navigationTag\";\nimport { useParams } from \"react-router-dom\";\nimport \"../../../../assets/scss/components/generic/layout/layoutTab.scss\";\nimport \"../../../../assets/scss/components/toc/orderBook/obContainer/obContainerTab.scss\";\nimport { IListObj } from \"../../../types/genericTypes\";\n\nexport interface IObContainerTabProps {\n\tpriNavOptions?: Array;\n\n\tinstComp?: ReactNode;\n\tisPriNavHidden?: boolean;\n\t// primary market related props\n\thandleInstNav?: (value: any) => void;\n}\n\nconst ObContainerTab: React.FC = (props: IObContainerTabProps) => {\n\tconst [isFixed, setIsFixed] = useState(false);\n\n\tconst { secNav, pageNav, inst } = useParams<{ secNav: string; pageNav: string; inst: string }>(); //section navigation,page navigation, primary market instrument\n\n\tfunction onContainerScroll(e: React.UIEvent) {\n\t\t// console.dir((e.target as HTMLElement).scrollTop);\n\t\t// if scrolltop is greater than 78 then fix the header\n\t\t(e.target as HTMLElement).scrollTop > (inst ? 88 : 48) ? !isFixed && setIsFixed(true) : isFixed && setIsFixed(false);\n\t\tsetTimeout(() => {\n\t\t\tObScrollService(isFixed);\n\t\t});\n\t}\n\treturn (\n\t\t\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{props.priNavOptions && (\n\t\t\t\t\t\t\t\t {}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{/* new offers navigation */}\n\t\t\t\t\t\t{inst && (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t {}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t\t
    {props.instComp}
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\n\t);\n};\n\nexport default ObContainerTab;\n","import React, { ReactNode, useState } from \"react\";\nimport NavigationDropdown from \"../../../generic/navigationDropdown\";\nimport \"../../../../assets/scss/components/toc/orderBook/obContainer/obContainerMob.scss\";\nimport { secNavOptions, scrlStCls, newOfferOptions } from \"../obConstants\";\nimport { ObScrollService } from \"./../../../service/orderBook/obScrollService\";\nimport NavigationTag from \"../../../generic/navigationTag\";\nimport { useParams } from \"react-router-dom\";\nimport { IListObj } from \"../../../types/genericTypes\";\n\nexport interface IObContainerMobProps {\n\tpriNavOptions: Array;\n\n\tinstComp?: ReactNode;\n\tisPriNavHidden?: boolean;\n\t// primary market related props\n\thandleInstNav?: (value: any) => void;\n}\n\nconst ObContainerMob: React.FC = (props: IObContainerMobProps) => {\n\tconst [isFixed, setIsFixed] = useState(false);\n\tconst { secNav, inst } = useParams<{ secNav: string; inst: string }>(); //section navigation,page navigation, primary market instrument\n\n\t// (e.target as HTMLElement).scrollTop > (props.instNav ? 60 : 40) ? !isFixed && setIsFixed(true) : isFixed && setIsFixed(false);\n\tfunction onContainerScroll(e: React.UIEvent) {\n\t\t// console.dir((e.target as HTMLElement).scrollTop);\n\t\t// if scrolltop is greater than 78 then fix the header\n\n\t\t(e.target as HTMLElement).scrollTop > (inst ? 60 : 40) ? !isFixed && setIsFixed(true) : isFixed && setIsFixed(false);\n\n\t\tsetTimeout(() => {\n\t\t\tObScrollService(isFixed);\n\t\t});\n\t}\n\n\treturn (\n\t\t\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t {}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{inst && (\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t {}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    {props.instComp}
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\n\t);\n};\n\nexport default ObContainerMob;\n","import { Idevice } from \"../../../types/device\";\nimport ObContainerDesk from \"./obContainerDesk\";\nimport React, { ReactNode } from \"react\";\nimport ObContainerTab from \"./obContainerTab\";\nimport ObContainerMob from \"./obContainerMob\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport { IListObj } from \"../../../types/genericTypes\";\n\nexport const SDevWiseStateComp = (\n\tpriNavOptions: Array,\n\n\tinstrument: ReactNode,\n\thidepgNav: boolean,\n\thandleDevice: Idevice = DeviceContext(),\n\thandleInstNav?: (data: string) => void\n) => {\n\treturn (\n\t\t
    \n\t\t\t{handleDevice.isDesktop && (\n\t\t\t\t\n\t\t\t)}\n\t\t\t{handleDevice.isTablet && (\n\t\t\t\t\n\t\t\t)}\n\t\t\t{handleDevice.isMobile && (\n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n};\n","import React, { ReactNode } from \"react\";\nimport { IListObj } from \"../../../../types/genericTypes\";\nimport DeviceContext from \"../../../../service/indentifyDevice\";\nimport { AObEqReq, AObEqHistReq, AObEqSIP } from \"../../../../service/orderBook/obApiService\";\n// import eqData from \"../../sample/eqData.json\";\nimport { filterArrData } from \"../../../../service/arrayFilter\";\nimport { eqNav } from \"../../obConstants\";\nimport ObEquity from \"../../instruments/secondaryMarket/obEquity\";\nimport { Idevice } from \"../../../../types/device\";\nimport ObEquityMob from \"../../instruments/secondaryMarket/obEquityMob\";\nimport moment from \"moment\";\nimport NoDataContainer from \"../../../../generic/noDataContainer\";\nimport { SDevWiseStateComp } from \"../obDeviceComp\";\nimport Loader, { SLoader } from \"../../../../generic/loader\";\n\nexport interface IObEqContainerProps {\n\tmatch?: any;\n}\n\nconst ObEqContainer: React.FC = (props) => {\n\tconst [hidepgNav, setHidePageNav] = React.useState(false);\n\tconst [instrument, setInstrument] = React.useState(<>);\n\tlet filteredData: Array<{}> = [];\n\tconst obLoader = (\n\t\t
    \n\t\t\t\n\t\t
    \n\t);\n\n\t// priNavOptions do not change (no need of state)\n\tconst priNavOptions: Array = [\n\t\t{ value: \"today\", display: \"Today's orders\", href: eqNav.today },\n\t\t{ value: \"history\", display: \"History\", href: eqNav.history },\n\t\t{ value: \"sip\", display: \"SIP Orders\", href: eqNav.sip }\n\t];\n\n\t//url params controlled vars\n\tlet activeSecNav: string = props.match.params.secNav.toLowerCase();\n\tlet history: boolean = props.match.params.pageNav === priNavOptions[1].value ? true : false;\n\tlet sip: boolean = props.match.params.pageNav === priNavOptions[2].value ? true : false;\n\tlet isLoading: boolean = false;\n\n\tconst setNHandle = (data: any) => {\n\t\tfilteredData = data;\n\t\thandleSecNav();\n\t};\n\n\tconst eqOrderBookRes = (res: any) => {\n\t\tif (!history && !sip) {\n\t\t\tres.data ? setNHandle(res.data.ord) : setNHandle([]);\n\t\t}\n\t};\n\n\tconst eqOrderBookHistRes = (res: any) => {\n\t\tif (history) {\n\t\t\tisLoading = false;\n\n\t\t\tres.data ? setNHandle(res.data.hstOrdBk) : setNHandle([]);\n\t\t}\n\t};\n\n\tconst sipOrderBook = (res: any) => {\n\t\tif (sip) {\n\t\t\t(res.response ? res.response.data.spreq : res.response) ? setNHandle(res.response.data.spreq) : setNHandle([]);\n\t\t}\n\t};\n\n\t//handle page navigation today's, history data\n\tconst handlePageNav = (selectVal: string) => {\n\t\tisLoading = true;\n\t\thandleSecNav();\n\t\tswitch (selectVal) {\n\t\t\tcase \"history\":\n\t\t\t\thistory = true;\n\t\t\t\tsip = false;\n\t\t\t\tisLoading = true;\n\t\t\t\tsetNHandle([]);\n\t\t\t\tbreak;\n\t\t\tcase \"today\":\n\t\t\t\thistory = false;\n\t\t\t\tsip = false;\n\t\t\t\tsetInstrument(obLoader);\n\t\t\t\tAObEqReq(eqOrderBookRes);\n\t\t\t\tbreak;\n\t\t\tcase \"sip\":\n\t\t\t\thistory = false;\n\t\t\t\tsip = true;\n\t\t\t\tsetInstrument(obLoader);\n\t\t\t\tAObEqSIP(sipOrderBook);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tconsole.log(\"not found\");\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tReact.useEffect(() => {\n\t\thandlePageNav(props.match.params.pageNav);\n\t}, [props.match.params.pageNav]);\n\n\tconst getDates = (fromDt: Date, toDate: Date) => {\n\t\tif (history) {\n\t\t\tAObEqHistReq(eqOrderBookHistRes, moment(fromDt).format(\"MM/DD/YYYY\"), moment(toDate).format(\"MM/DD/YYYY\"));\n\t\t}\n\t};\n\n\tconst handleDevice: Idevice = DeviceContext();\n\t//toggler to show and hide the page navigation in the events of any operation\n\tconst hidePageNav = (toggle: boolean) => {\n\t\tsetHidePageNav(toggle);\n\t};\n\n\t//handles section navigation based on page navigation\n\tconst handleSecNav = () => {\n\t\tif (filteredData.length > 0) {\n\t\t\tif (!history && !sip) {\n\t\t\t\tfilteredData = filterArrData(filteredData, \"asTyp\", \"EQUITY\", \"=\");\n\t\t\t} else if (history) {\n\t\t\t\t//filter out cds and derviative orders\n\t\t\t\tfilteredData = filterArrData(filteredData, \"exc\", \"NFO\", \"!\");\n\t\t\t\tfilteredData = filterArrData(filteredData, \"exc\", \"CDS\", \"!\");\n\t\t\t}\n\t\t}\n\t\tlet inst: ReactNode = <>,\n\t\t\tnodataNode: ReactNode = <>;\n\n\t\t//show no data container\n\t\tif (filteredData.length === 0) {\n\t\t\tnodataNode = (\n\t\t\t\t {},\n\t\t\t\t\t\ttype: history ? \"bLink\" : \"btn\"\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t\tif (history || filteredData.length !== 0) {\n\t\t\tinst =\n\t\t\t\thandleDevice.isDesktop || handleDevice.isTablet ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t}\n\t\tsetInstrument(\n\t\t\t<>\n\t\t\t\t{inst}\n\t\t\t\t{((history && !isLoading) || !history) && nodataNode}\n\t\t\t\t{history && isLoading && SLoader(20, \"blue\")}\n\t\t\t\n\t\t);\n\t};\n\treturn <>{SDevWiseStateComp(priNavOptions, instrument, hidepgNav)};\n};\n\nexport default ObEqContainer;\n","import React from \"react\";\nimport Tag from \"../../../../generic/tag\";\nimport \"../../../../../assets/scss/components/toc/orderBook/instruments/instrumentsDsk.scss\";\nimport \"../../../../../assets/scss/components/toc/orderBook/instruments/instrumentsTab.scss\";\nimport { ChipColorKeyComb } from \"../../obConstants\";\n\nexport interface ObAssetsDetlProps {\n\tdate: string;\n\ttrsTyp: string;\n\ttitle: string;\n\tsts: string;\n}\n\nconst ObAssetsDetl: React.FC = (props) => {\n\treturn (\n\t\t
    \n\t\t\t

    {props.date}

    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t

    {props.title}

    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\tStatus\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default ObAssetsDetl;\n","import * as React from \"react\";\nimport EdButton from \"../../../../generic/edButton\";\nimport ObOrderLog from \"../obOrderLog\";\n\nexport interface IObIpoDtlsContentProps {\n\tdata: any;\n\tonCancelClick: (e: React.MouseEvent) => void;\n}\n\nconst ObIpoDtlsContent: React.FC = (props) => {\n\tfunction onButtonClick(e: React.MouseEvent) {\n\t\tconsole.log(e);\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    No.of Bids
    \n\t\t\t\t\t\t
    {props.data.bids.length}
    \n\t\t\t\t\t
    \n\t\t\t\t\t{props.data.bids.map((bid: any, index: number) => (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    Price for Bid {index + 1}
    \n\t\t\t\t\t\t\t
    {bid.atCutOff ? \"₹\" + props.data.bids.maxPrc : \"₹\" + bid.price || \"--\"}
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    No. of Shares
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{props.data.bids.reduce((a: number, b: any) => {\n\t\t\t\t\t\t\t\treturn a + b.quantity;\n\t\t\t\t\t\t\t}, 0)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Blocked Amount
    \n\t\t\t\t\t\t
    {props.data.upiAmtBlocked ? \"₹\" + props.data.upiAmtBlocked : \"--\"}
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Application No.
    \n\t\t\t\t\t\t
    {!props.data.applicationNumber ? \"NA\" : props.data.applicationNumber || \"--\"}
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Internal Ref No.
    \n\t\t\t\t\t\t
    {props.data.referenceNumber || \"--\"}
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\n\t\t\t{/* buttons to perform different actions on click */}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{/* button to cancel */}\n\t\t\t\t\t\n\t\t\t\t\t{/* button to modify */}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t{/* order log progress bar steps */}\n\t\t\t ({ time: ord.date, sts: ord.status }))} />\n\t\t
    \n\t);\n};\n\nexport default ObIpoDtlsContent;\n","import * as React from \"react\";\nimport ObAssetsDetl from \"../../instruments/details/obAssetsDetl\";\nimport EdButton from \"../../../../generic/edButton\";\nimport Tab from \"../../../../generic/tab\";\nimport { IListObj } from \"../../../../types/genericTypes\";\nimport moment from \"moment\";\nimport { ObAssetsDetlProps } from \"../../instruments/details/obAssetsDetl\";\nimport ObIpoDtlsContent from \"./obIpoDtlsContent\";\nimport { ChipStatusComb } from \"../../obConstants\";\nimport \"../../../../../assets/scss/components/toc/orderBook/obModifyState/obModify.scss\";\nimport \"../../../../../assets/scss/components/toc/orderBook/obDetails/obAssetDetails.scss\";\nimport \"../../../../../assets/scss/components/toc/orderBook/obDetails/obAssetDetailstab.scss\";\n\nexport interface IObIpoDtlsDskProps {\n\tdata: any;\n\tonBackClick: (event: React.MouseEvent) => void; // the function to be called onClick\n\tonCancelClick: (e: React.MouseEvent) => void;\n}\n\nconst ObIpoDtlsDsk: React.FC = (props) => {\n\tconst backButtonValue = (\n\t\t<>\n\t\t\t\n\t\t\tBack\n\t\t\n\t);\n\tconst tabLst: Array = [{ value: \"info\", display: \"Info\" }];\n\tconst assetDetail: ObAssetsDetlProps = {\n\t\tdate: props.data.submitDt ? moment(new Date(props.data.submitDt)).format(\"D MMM YYYY, HH:mm:ss\") : \"\",\n\t\ttrsTyp: \"BUY\",\n\t\ttitle: props.data.ipoNm,\n\t\tsts: ChipStatusComb[props.data.sts.toLowerCase()]\n\t};\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{/* left menu back button */}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{/* header section */}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{/* when status is rejected will show below content */}\n\t\t\t\t\t\t\t\t\t{props.data.applStatus[0].progress === \"Failed\" && (\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t

    Reason

    \n\t\t\t\t\t\t\t\t\t\t\t

    {props.data.applStatus[0].text || props.data.applStatus[0].reason}

    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/* detailed content */}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t {}} position=\"left\" />\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default ObIpoDtlsDsk;\n","import React, { ReactNode } from \"react\";\nimport Tag from \"../../../../../generic/tag\";\nimport OverflowButton from \"../../../../../generic/overflowButton\";\nimport { IIpo } from \"../../../../../types/components/orderBook/obTypes\";\nimport {\n ChipColorKeyComb,\n ovrOptions,\n scrlStCls,\n ObScrollStyle,\n} from \"../../../obConstants\";\nimport { toINR } from \"../../../../../service/numberFormat\";\nimport { HObGroupBy } from \"../../../../../service/orderBook/obGrpByHelper\";\nimport indexer, { IListObj } from \"../../../../../types/genericTypes\";\nimport ObAssetDetailPopup from \"../../../generic/obAssetDetailPopup\";\nimport ObIpoDtlsDsk from \"../../../obDetails/dsk/obIpoDtlsDsk\";\nimport Sort, { eSortState, sort } from \"../../../../../generic/sort\";\nimport { ChipStatusComb } from \"./../../../obConstants\";\nimport bStrg from \"../../../../../service/storageHelper\";\nimport { dateTimeFormat } from \"../../../../../service/dateTimeService\";\nimport ObUtilHeader from \"../../../obContainer/obUtilHeader\";\nimport { SearchHighLight } from \"../../../../../service/generic/searchHighlight\";\nimport TocNoData from \"../../../../generic/tocNoData/tocNoData\";\nimport ee from \"../../../../../utils/eventEmitter\";\nimport { AIpoCancelTrd } from \"../../../../../service/orderBook/obApiService\";\nimport \"../../../../../../assets/scss/components/toc/orderBook/instruments/instrumentsDsk.scss\";\nimport \"../../../../../../assets/scss/components/toc/orderBook/instruments/instrumentsTab.scss\";\n\nexport interface ObIpoProps {\n data: Array;\n isHistory: boolean;\n noDataNode: ReactNode;\n reRenderCall?: (value: string) => void;\n hidePageNav?: (hide: boolean) => void;\n}\n\n// heading for IPO Asset table\nconst heading: indexer = {\n company: \"Company Name\",\n qty: \"Qty.\",\n price: \"Price\",\n amount: \"Total Blocked Amt.\",\n};\n\nconst sortColumn: indexer = {\n company: \"ipoNm\",\n};\n\nconst ObIpo: React.FC = (props) => {\n const ovrOpts: Array = ovrOptions;\n\n for (let i = 0; i < props.data.length; i++) {\n let element: IIpo = props.data[i];\n var temp: Array = [];\n element[\"sts\"] =\n element.mwStatus.split(\"-\").length !== 1\n ? element.mwStatus.split(\"-\")[1].trim()\n : element.mwStatus.split(\" \")[1].trim();\n element[\"sts\"] = element[\"sts\"].toLowerCase();\n if (element.isModify) {\n temp.push(ovrOpts[0]);\n }\n if (element.isCancel) {\n temp.push(ovrOpts[1]);\n }\n temp.push(ovrOpts[4]); //details\n\n element.ovrOpts = temp;\n }\n // wherever initial data needs to be sent, send initialData\n // initial data is array of array for supporting grouping\n const initialData = [JSON.parse(JSON.stringify(props.data))],\n todayDate = bStrg(\"todayDate\") || new Date();\n let [tableData, setTableData] = React.useState(initialData);\n\n let ipoData: Array<{ [x: string]: Array }> | null = null;\n\n React.useEffect(() => {\n setTableData([props.data]);\n }, [props.data, props.isHistory]);\n\n if (props.data) {\n //group data based on biddingEndDate\n let results = tableData.map((group) =>\n group.reduce(\n (arr: any, d: IIpo) => {\n if (\n dateTimeFormat(d.biddingEndDate, \"-\").setHours(0, 0, 0) >=\n new Date(todayDate).setHours(0, 0, 0) &&\n d.biddingEndDate\n ) {\n arr[0] = [...arr[0], d];\n } else {\n arr[1] = [...arr[1], d];\n }\n return arr;\n },\n [[], []]\n )\n );\n\n ipoData =\n tableData.length > 0 && results[0][!props.isHistory ? 0 : 1].length > 0\n ? [HObGroupBy(results[0][!props.isHistory ? 0 : 1], \"submitDt\", \",\")]\n : null;\n }\n\n // filteredData contains filtered, searched data\n const [filteredData, setFilteredData] =\n React.useState>>(initialData);\n //is popup data\n const [popupDataIndex, setPopupDataIndex] =\n React.useState<[string, number]>();\n\n const [sortedColumnState, setSortedColumnState] = React.useState({\n colName: null as string | null,\n sortState: eSortState.ASC,\n });\n\n function onSort(data: Array>, sortState: eSortState) {\n setSortedColumnState({ colName: heading.symbol, sortState: sortState });\n setTableData(data);\n }\n\n //after applying filters following method will invoked to show the updated results\n function onDataFilter(data: Array, sText: string = \"\", type?: string) {\n setFilteredData(data);\n\n // sort only if colName is present, otherwise there is no need to sort\n if (sortedColumnState.colName) {\n const colNameKey = Object.keys(heading).find(\n (key) => heading[key] === sortedColumnState.colName\n )!;\n sort(data, sortedColumnState.sortState, sortColumn[colNameKey], onSort);\n }\n //highlightes the search text\n if (sText) {\n const SearchText: string = sText.toLowerCase();\n data[0].forEach((ord: IIpo) => {\n ord.ipoNm = SearchHighLight(ord.ipoNm, SearchText);\n });\n }\n setTableData(data);\n }\n\n // this function excute on clicking any row\n function onRowClick(data: any, groupIndex: string, index: number, e?: any) {\n if (\n e &&\n !e.nativeEvent.path.find(\n (m: HTMLElement) =>\n m.className &&\n (m.className.indexOf(\"check\") >= 0 ||\n m.className.indexOf(\"menu\") >= 0)\n )\n ) {\n setPopupDataIndex([groupIndex, index]);\n }\n }\n function optSelection(\n id: string | number,\n data: {\n gI: string;\n ind: number;\n ordData: indexer;\n }\n ) {\n switch (id) {\n case \"details\":\n setPopupDataIndex([data.gI, data.ind]);\n break;\n case \"cancel\":\n cancelOrder(data.ordData);\n break;\n default:\n //console.log(\"404\");\n break;\n }\n }\n let ordCancelledSuccList: Array = [],\n ordCancelledFailList: Array = [],\n ordsListToCancel: Array = [];\n\n // runs after all cancel api response\n function cancelCallback(res: any) {\n if (res.data) {\n // if success\n ordCancelledSuccList.push(res.data);\n } else {\n // if error\n ordCancelledFailList.push(res.error);\n }\n\n // when we get all the responses\n if (\n ordCancelledSuccList.length + ordCancelledFailList.length ===\n ordsListToCancel.length\n ) {\n ee.emit(\"showToast\", {\n message: `Cancelled ${ordsListToCancel.length} Orders`,\n color: \"cancell\",\n });\n\n props.reRenderCall && props.reRenderCall(\"today\");\n }\n }\n\n // TO DISCUSS: Whick paramenters to send in the body of AIpoCancelTrd\n function cancelOrder(data: any) {\n ordsListToCancel.push(data.ordID);\n AIpoCancelTrd(cancelCallback, data.ordID);\n }\n\n function ipoRw(data: IIpo, groupIndex: string, index: number) {\n return (\n onRowClick(data, groupIndex, index, e)}\n >\n
    \n \n {data.submitDt\n .split(\",\")[1]\n .replace(/am|pm/gi, \":00\")\n .replace(/\\s/gi, \"\")}\n \n
    \n
    \n \n \n \n
    \n
    \n \n
    \n
    \n \n {data.bids.length} (\n {data.bids.length !== 0 &&\n data.bids\n .map((el) => el.quantity)\n .reduce((accumulator, currentValue) => {\n return accumulator + currentValue;\n })}\n {data.bids.length === 0 && data.bids.length} Qty)\n \n
    \n
    \n \n {data.bids.length !== 0 && \"₹\"}\n {data.bids.length !== 0 &&\n toINR(\n data.bids\n .map((el) => el.amount)\n .reduce((accumulator, currentValue) => {\n return accumulator + currentValue;\n }),\n 0\n )}\n {data.bids.length === 0 && \"--\"}\n \n
    \n
    \n ₹{toINR(data.upiAmtBlocked, 2)}\n
    \n
    \n \n \n \n
    \n
    \n {data.ovrOpts && (\n \n )}\n
    \n \n );\n }\n return (\n <>\n \n Executed Orders: \n \n {ipoData.map((g) =>\n Object.keys(g)\n .map(\n (date) =>\n g[date].filter(\n (rw: IIpo) =>\n rw.applicationNumber || rw.referenceNumber\n ).length\n )\n .reduce((acc, cv) => {\n return acc + cv;\n })\n )}\n /\n {ipoData &&\n Object.keys(ipoData[0])\n .map((key: string) =>\n ipoData ? ipoData[0][key].length : 0\n )\n .reduce((acc, cv) => {\n return acc + cv;\n })}\n \n
    \n ) : (\n <>\n )\n }\n data={\n (ipoData && Object.keys(ipoData).length) || !tableData[0]\n ? initialData\n : [[]]\n }\n searchKey=\"ipoNm\"\n onDataFilter={onDataFilter}\n onSelectClick={undefined}\n onFilterClick={() => {}}\n filterReqData={{\n status: \"sts\",\n aType: \"pm\",\n showOpenOrderOnTop: false,\n showOpenOrderTgl: false,\n isHistory: props.isHistory ? true : false,\n }}\n onSearchClick={(e) => {\n // if exists, then call it\n // props.hidePageNav && props.hidePageNav(e);\n }}\n />\n\n
    \n {/* ob IPO Header Row */}\n {(ipoData !== null || !tableData[0]) && (\n
      \n
    • \n
      \n
      \n
      \n {!props.isHistory && (\n \n )}\n {props.isHistory && heading.company}\n
      \n
      {heading.qty}
      \n
      {heading.price}
      \n
      {heading.amount}
      \n
      \n
      \n
    • \n
    \n )}\n 0 ? \"ObScrollCont\" : \"\"}\n style={ObScrollStyle(props.data.length > 0 ? true : false)}\n >\n {/* ob IPO offer content Row */}\n {ipoData !== null &&\n ipoData.map((group, groupIndex) =>\n Object.keys(group).map((date, Gindex) => {\n return (\n \n {/* if history componenet need to show*/}\n\n \n
  • {date.split(\",\")[0]}
  • \n \n \n {group[date].map((row: any, index: number) =>\n ipoRw(row, date, index)\n )}\n \n
    \n );\n })\n )}\n
    \n \n\n {tableData[0] &&\n ipoData === null &&\n props.data.length === tableData[0].length &&\n props.noDataNode}\n {!tableData[0] && (\n \n )}\n\n {popupDataIndex && ipoData && (\n \n setPopupDataIndex(undefined)}\n onCancelClick={() =>\n cancelOrder(\n ipoData !== null &&\n ipoData[0][popupDataIndex[0]][popupDataIndex[1]]\n )\n }\n />\n \n )}\n \n );\n};\n\nexport default ObIpo;\n","export const obTglDetail = (ref: React.MouseEvent, refContQuerySel: string, currentIndex: number, context: number) => {\n\tconst refEle = ref.currentTarget as any,\n\t\trefCont = document.querySelector(refContQuerySel); //parent container\n\trefCont?.querySelectorAll(\".expand\").forEach((e: Element, i: number) => {\n\t\ti !== currentIndex && e.classList.remove(\"expand\");\n\t});\n\trefCont?.querySelectorAll(\".hide\").forEach((e: Element, i: number) => i !== currentIndex && e.classList.remove(\"hide\"));\n\tif (refEle) {\n\t\t//context(0)refer to the row\n\t\tif (context === 0) {\n\t\t\tif (refEle.nextElementSibling.className.indexOf(\"expand\") < 0) {\n\t\t\t\trefEle.nextElementSibling.className += \" expand\";\n\t\t\t\trefEle.className += \" hide\";\n\t\t\t} else {\n\t\t\t\trefEle.nextElementSibling.classList.remove(\"expand\");\n\t\t\t\trefEle.classList.remove(\"hide\");\n\t\t\t}\n\t\t}\n\t\t//context(1)refer to the expanded row\n\t\tif (context === 1) {\n\t\t\trefEle.classList.remove(\"expand\");\n\t\t\trefEle.previousElementSibling.classList.remove(\"hide\");\n\t\t}\n\t}\n};\n","import React, { useState, ReactNode } from \"react\";\nimport Tag from \"../../../../../generic/tag\";\nimport { INcd } from \"../../../../../types/components/orderBook/obTypes\";\nimport { ChipColorKeyComb, ObScrollStyle } from \"../../../obConstants\";\nimport { HObGroupBy } from \"../../../../../service/orderBook/obGrpByHelper\";\nimport { toINR } from \"../../../../../service/numberFormat\";\nimport { ChipStatusComb } from \"./../../../obConstants\";\nimport bStrg from \"../../../../../service/storageHelper\";\nimport { obTglDetail } from \"../../../../../service/orderBook/obToggler\";\nimport { IListObj } from \"../../../../../types/genericTypes\";\nimport \"../../../../../../assets/scss/components/toc/orderBook/instruments/instrumentsDsk.scss\";\nimport \"../../../../../../assets/scss/components/toc/orderBook/instruments/instrumentsTab.scss\";\n\nexport interface ObNcdProps {\n\tdata: Array;\n\tisHistory: boolean;\n\tnoDataNode: ReactNode;\n}\n\n// heading for NCD Asset table\n\nconst heading = {\n\tsymbol: \"Symbol\",\n\tqty: \"Qty.\",\n\tprice: \"Price\",\n\tamount: \"Total Value\"\n};\nconst ObNcd: React.FC = (props) => {\n\tfor (let i = 0; i < props.data.length; i++) {\n\t\tconst element: INcd = props.data[i];\n\t\tvar temp: Array = [];\n\n\t\telement.ovrOpts = temp;\n\t}\n\t// wherever initial data needs to be sent, send initialData\n\t// initial data is array of array for supporting grouping\n\tconst initialData = [props.data],\n\t\ttodayDate = bStrg(\"todayDate\") || new Date();\n\tlet [tableData, setTableData] = useState(initialData);\n\tlet ncdData: Array<{ [x: string]: Array }> | null = null,\n\t\ttodaysNcds: Array> | null = null;\n\n\tReact.useEffect(() => {\n\t\tsetTableData([props.data]);\n\t}, [props.data]);\n\n\tif (props.data) {\n\t\t//group data based on biddingEndDate\n\t\tlet results = tableData.map((group: Array) =>\n\t\t\tgroup.reduce(\n\t\t\t\t(arr: any, d: INcd) => {\n\t\t\t\t\tif (new Date(d.tmStm).setHours(0, 0, 0).valueOf() === new Date(todayDate).setHours(0, 0, 0).valueOf()) {\n\t\t\t\t\t\tarr[0] = [...arr[0], d];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tarr[1] = [...arr[1], d];\n\t\t\t\t\t}\n\t\t\t\t\treturn arr;\n\t\t\t\t},\n\t\t\t\t[[], []]\n\t\t\t)\n\t\t);\n\t\tif (!props.isHistory) {\n\t\t\ttodaysNcds = results[0][0].length > 0 ? [results[0][0]] : null;\n\t\t} else {\n\t\t\tncdData = results[0][1].length > 0 ? [HObGroupBy(results[0][1], \"tmStm\", \" \")] : null;\n\t\t}\n\t}\n\n\tfunction ncdDetails(data: INcd, groupIndex: number, index: number) {\n\t\treturn (\n\t\t\t
    obTglDetail(e, \".ncd_pm_tbl\", groupIndex, 1)}>\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{data.tmStm.split(\" \")[1].toLowerCase().trim()}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    {data.sym}

    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{data.qty}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{data.prc ? \"₹\" + toINR(data.prc, 2) : \"--\"}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t₹{toINR(data.amt, 2)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\tIssue Type\n\t\t\t\t\t\t\t\t{data.issTyp}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\tApplication No.\n\t\t\t\t\t\t\t\t{data.apNo}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\tOrder No.\n\t\t\t\t\t\t\t\t{data.noID}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\tBid\n\t\t\t\t\t\t\t\t{data.bNo}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\tReason\n\t\t\t\t\t\t\t\t= 0 ? \"rejected\" : \"\")}>\n\t\t\t\t\t\t\t\t\t{data.msg ? data.msg : \"--\"}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{/* */}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n\tfunction ncdRw(data: INcd, groupIndex: number, index: number) {\n\t\treturn (\n\t\t\t\n\t\t\t\t
  • obTglDetail(e, \".ncd_pm_tbl\", groupIndex, 0)}>\n\t\t\t\t\t
    \n\t\t\t\t\t\t{data.tmStm.split(\" \")[1].toLowerCase().trim()}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t

    {data.sym}

    \n\t\t\t\t\t\t

    {data.tSym}

    \n\t\t\t\t\t
    \n\n\t\t\t\t\t
    \n\t\t\t\t\t\t{data.qty}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{data.prc ? \"₹\" + toINR(data.prc, 2) : \"--\"}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t₹{toINR(data.amt, 2)}\n\t\t\t\t\t
    \n\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
  • \n\t\t\t\t{ncdDetails(data, groupIndex, index)}\n\t\t\t
    \n\t\t);\n\t}\n\treturn (\n\t\t<>\n\t\t\t{((ncdData !== null && props.isHistory) || (todaysNcds !== null && !props.isHistory)) && (\n\t\t\t\t
    \n\t\t\t\t\t{/* ob NCD Header Row */}\n\n\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      {heading.symbol}
      \n\t\t\t\t\t\t\t
      {heading.qty}
      \n\t\t\t\t\t\t\t
      {heading.price}
      \n\t\t\t\t\t\t\t
      {heading.amount}
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t
    \n\n\t\t\t\t\t{/* ob NCD content Row */}\n\t\t\t\t\t
    0 ? \"ObScrollCont\" : \"\"} style={ObScrollStyle(props.data.length > 0 ? true : false)}>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tprops.isHistory\n\t\t\t\t\t\t\t\t? ncdData !== null &&\n\t\t\t\t\t\t\t\t ncdData.map((group, groupIndex) =>\n\t\t\t\t\t\t\t\t\t\tObject.keys(group).map((date, GIindex) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/* if history componenet need to show*/}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    • {date.split(\",\")[0]}
    • \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{group[date].map((row: any, index: number) => ncdRw(row, GIindex, index))}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: todaysNcds !== null &&\n\t\t\t\t\t\t\t\t todaysNcds.map((group: any, groupIndex: number) =>\n\t\t\t\t\t\t\t\t\t\t// Object.keys(group).map((grp: any, index) =>\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{group.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{group.map((row: any, index: number) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ncdRw(row, groupIndex, index)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t// )\n\t\t\t\t\t\t}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t)}\n\t\t\t{((ncdData === null && props.isHistory) || (todaysNcds === null && !props.isHistory)) && props.noDataNode}\n\t\t\n\t);\n};\n\nexport default ObNcd;\n","import React from \"react\";\nimport Tag from \"../../../../../generic/tag\";\nimport OverflowButton from \"../../../../../generic/overflowButton\";\nimport \"../../../../../../assets/scss/components/toc/orderBook/instruments/instrumentsDsk.scss\";\nimport \"../../../../../../assets/scss/components/toc/orderBook/instruments/instrumentsTab.scss\";\nimport { IListObj } from \"../../../../../types/genericTypes\";\n\nexport interface ObOfsProps {\n data: Array;\n}\n\n// heading for OFS Asset table\nconst heading = {\n symbol: \"Symbol\",\n qty: \"Qty.\",\n price: \"Price\",\n amount: \"Total Value\",\n};\n\nconst ObOfs: React.FC = () => {\n function onNavigationDropdownSelect(id: string | number) {\n //console.log(id);\n }\n\n const navigationDropdownOptions: Array = [\n { value: \"Modify\", display: \"Modify\" },\n { value: \"cancel\", display: \"Cancel\" },\n { value: \"Convert\", display: \"Convert\" },\n ];\n\n return (\n
    \n {/* ob OFS Header Row */}\n
      \n
    • \n
      \n
      \n
      {heading.symbol}
      \n
      {heading.qty}
      \n
      {heading.price}
      \n
      {heading.amount}
      \n
      \n
      \n
    • \n
    \n\n {/* if history componenet need to show*/}\n\n
      \n
    • 14 October 2019
    • \n
    \n\n {/* ob OFS offer content Row */}\n\n
      \n
    • \n
      \n 11:34:12\n
      \n
      \n \n \n \n
      \n
      \n RPOWER-RS\n
      \n
      \n 50,000\n
      \n
      \n ₹10,99,271.60\n
      \n
      \n ₹10,09,99,271.60\n
      \n
      \n \n \n \n
      \n
      \n \n
      \n
    • \n
    \n
    \n );\n};\n\nexport default ObOfs;\n","import React, { ReactNode, useState } from \"react\";\nimport Tag from \"../../../../../generic/tag\";\nimport OverflowButton from \"../../../../../generic/overflowButton\";\nimport { INfo } from \"../../../../../types/components/orderBook/obTypes\";\nimport bStrg from \"../../../../../service/storageHelper\";\nimport { HObGroupBy } from \"../../../../../service/orderBook/obGrpByHelper\";\nimport {\n ChipStatusComb,\n ChipColorKeyComb,\n ovrOptions,\n} from \"../../../obConstants\";\nimport indexer, { IListObj } from \"../../../../../types/genericTypes\";\nimport moment from \"moment\";\nimport { obTglDetail } from \"../../../../../service/orderBook/obToggler\";\nimport \"../../../../../../assets/scss/components/toc/orderBook/instruments/instrumentsDsk.scss\";\nimport \"../../../../../../assets/scss/components/toc/orderBook/instruments/instrumentsTab.scss\";\n\nexport interface ObNfoProps {\n data: Array;\n isHistory: boolean;\n noDataNode: ReactNode;\n}\n\n// heading for NFO Asset table\n\nconst heading = {\n scheme: \"Scheme Name\",\n amount: \"Amount\",\n};\n\nconst ObNfo: React.FC = (props) => {\n //row options start\n const ovrOpts: Array = ovrOptions;\n for (let i = 0; i < props.data.length; i++) {\n const element: INfo = props.data[i];\n var temp: Array = [];\n temp.push(ovrOpts[4]); //details\n element.ovrOpts = temp;\n }\n // wherever initial data needs to be sent, send initialData\n // initial data is array of array for supporting grouping\n const initialData = [props.data],\n todayDate = bStrg(\"todayDate\") || new Date();\n let [tableData, setTableData] = useState(initialData);\n let nfoData: Array<{ [x: string]: Array }> | null = null,\n todaysNfos: Array> | null = null;\n\n React.useEffect(() => {\n setTableData([props.data]);\n }, [props.data]);\n\n if (props.data) {\n //group data based on biddingEndDate\n let results = tableData.map((group: Array) =>\n group.reduce(\n (arr: any, d: INfo) => {\n if (\n new Date(d.txnDate).setHours(0, 0, 0).valueOf() ===\n new Date(todayDate).setHours(0, 0, 0).valueOf()\n ) {\n arr[0] = [...arr[0], d];\n } else {\n arr[1] = [...arr[1], d];\n }\n return arr;\n },\n [[], []]\n )\n );\n if (!props.isHistory) {\n todaysNfos = results[0][0].length > 0 ? [results[0][0]] : null;\n } else {\n nfoData =\n results[0][1].length > 0\n ? [HObGroupBy(results[0][1], \"txnDate\", \"T\")]\n : null;\n }\n }\n\n function optSelection(\n id: string | number,\n data: {\n gI: number;\n i: number;\n ordData: indexer;\n }\n ) {\n switch (id) {\n case \"cancel\":\n // checkPartialOrder(false, data.ordData as IEquity);\n break;\n default:\n //console.log(\"404\");\n break;\n }\n }\n\n function nfoDetails(item: INfo, groupIndex: number, index: number) {\n return (\n obTglDetail(e, \".nfo_table\", groupIndex, 1)}\n >\n
    \n
    \n
    \n \n {item.txnDate.split(\"T\")[1].split(\".\")[0]}\n \n
    \n \n
    \n
    \n
    \n

    {item.schemeName}

    \n
    \n
    \n ₹{item.amount}\n \n
    \n
    \n
    \n
      \n
    • \n
      \n Action\n {item.txnType}\n
      \n
      \n Exchange Order No.\n \n {item.exchangeRefNo === \"0\" ? \"-\" : item.exchangeRefNo}\n \n
      \n
      \n Ordered By\n {item.orderedBy}\n
      \n
    • \n
    \n {(item.status === \"ACCEPTED\" ||\n item.status === \"AMO\" ||\n item.status === \"ON HOLD\") && (\n \n )}\n
    \n
    \n \n );\n }\n function nfoRw(item: INfo, groupIndex: number, index: number) {\n return (\n \n obTglDetail(e, \".nfo_table\", groupIndex, 0)}\n >\n
    \n {item.txnDate.split(\"T\")[1].split(\".\")[0]}\n
    \n
    \n \n \n \n
    \n
    \n {item.schemeName}\n
    \n
    \n ₹{item.amount}\n
    \n
    \n \n \n \n
    \n
    \n optSelection(id, item)}\n onHover={true}\n data={{\n ordData: item,\n gI: groupIndex,\n ind: index,\n }}\n />\n
    \n \n {nfoDetails(item, groupIndex, index)}\n
    \n );\n }\n return (\n <>\n {((nfoData !== null && props.isHistory) ||\n (todaysNfos !== null && !props.isHistory)) && (\n
    \n {/* ob NFO Header Row */}\n\n
      \n
    • \n
      \n
      \n
      {heading.scheme}
      \n
      {heading.amount}
      \n
      \n
      \n
    • \n
    \n {/* ob NCD content Row */}\n\n {\n props.isHistory\n ? nfoData !== null &&\n nfoData.map((group, groupIndex) =>\n Object.keys(group).map((date, GIindex) => {\n return (\n \n {/* if history componenet need to show*/}\n\n \n
  • {moment(date).format(\"d MMMM YYYY\")}
  • \n \n
      \n {group[date].map((row: any, index: number) =>\n nfoRw(row, GIindex, index)\n )}\n
    \n
    \n );\n })\n )\n : todaysNfos !== null &&\n todaysNfos.map((group: any, groupIndex: number) =>\n // Object.keys(group).map((grp: any, index) =>\n {\n return (\n \n {group.length > 0 && (\n
      \n {group.map((row: any, index: number) => (\n \n {nfoRw(row, groupIndex, index)}\n \n ))}\n
    \n )}\n
    \n );\n }\n )\n // )\n }\n
    \n )}\n {((nfoData === null && props.isHistory) ||\n (todaysNfos === null && !props.isHistory)) &&\n props.noDataNode}\n \n );\n};\n\nexport default ObNfo;\n","import React from \"react\";\nimport Tag from \"../../../../generic/tag\";\nimport \"../../../../../assets/scss/components/toc/orderBook/instruments/instrumentsMob.scss\";\nimport { ChipColorKeyComb } from \"../../obConstants\";\nexport interface IObAssetsDetlMobProps {\n\tdate?: string;\n\ttrsTyp: string;\n\ttitle?: string;\n\tsts: string;\n}\n\nconst ObAssetsDetlMob: React.FC = (props) => {\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t

    \n\t\t\t\t{props.title}\n\t\t\t\t

    \n\t\t\t\t
    \n\t\t\t\t\t
    {props.date}
    \n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default ObAssetsDetlMob;\n","import * as React from \"react\";\nimport EdButton from \"../../../../generic/edButton\";\nimport ObAssetsDetlMob from \"../../instruments/details/obAssetsDetlMob\";\nimport Tab from \"../../../../generic/tab\";\nimport ObIpoDtlsContent from \"../dsk/obIpoDtlsContent\";\nimport { ObAssetsDetlProps } from \"./../../instruments/details/obAssetsDetl\";\nimport moment from \"moment\";\nimport { ChipStatusComb } from \"./../../obConstants\";\nimport { IListObj } from \"../../../../types/genericTypes\";\n\nexport interface ObIpoDtlsMobProps {\n\tdata: any;\n\tonBackClick: (event: React.MouseEvent) => void; // the function to be called onClick\n\tonCancelClick: (e: React.MouseEvent) => void;\n}\n\nconst ObIpoDtlsMob: React.FC = (props) => {\n\t//for back button\n\tconst backButtonValue = (\n\t\t<>\n\t\t\t\n\t\t\tBack\n\t\t\n\t);\n\tconst tabLst: Array = [{ value: \"info\", display: \"Info\" }];\n\n\tconst assetDetail: ObAssetsDetlProps = {\n\t\tdate: props.data.submitDt ? moment(new Date(props.data.submitDt)).format(\"D MMM YYYY, HH:mm:ss\") : \"\",\n\t\ttrsTyp: \"BUY\",\n\t\ttitle: props.data.ipoNm,\n\t\tsts: ChipStatusComb[props.data.sts.toLowerCase()]\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{/* back button */}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/* when status is rejected will show below content */}\n\t\t\t\t\t\t\t{props.data.applStatus[0].progress === \"Failed\" && (\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t

    Reason

    \n\t\t\t\t\t\t\t\t\t

    {props.data.applStatus[0].text || props.data.applStatus[0].reason}

    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{/* detailed content */}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t {}} position=\"left\" />\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default ObIpoDtlsMob;\n","import React, { ReactNode } from \"react\";\nimport Tag from \"../../../../../generic/tag\";\nimport \"../../../../../../assets/scss/components/toc/orderBook/instruments/instrumentsMob.scss\";\nimport { ChipColorKeyComb, scrlStCls, ObScrollStyle } from \"../../../obConstants\";\nimport { IIpo } from \"../../../../../types/components/orderBook/obTypes\";\nimport { HObGroupBy } from \"../../../../../service/orderBook/obGrpByHelper\";\nimport ObAssetDetailPopup from \"../../../generic/obAssetDetailPopup\";\nimport ObIpoDtlsMob from \"../../../obDetails/mob/obIpoDtlsMob\";\nimport { ChipStatusComb } from \"./../../../obConstants\";\nimport dateTimeFormat from \"../../../../../service/dateTimeService\";\nimport bStrg from \"../../../../../service/storageHelper\";\nimport { AIpoCancelTrd } from \"../../../../../service/orderBook/obApiService\";\nimport ee from \"../../../../../utils/eventEmitter\";\nimport ObUtilHeader from \"../../../obContainer/obUtilHeader\";\nimport { SearchHighLight } from \"../../../../../service/generic/searchHighlight\";\n\nexport interface IOnIpoMobProps {\n\tdata: Array;\n\tisHistory: boolean;\n\tnoDataNode: ReactNode;\n\treRenderCall?: (value: string) => void;\n\thidePageNav?: (hide: boolean) => void;\n}\n\nconst OnIpoMob: React.FC = (props) => {\n\tfor (let i = 0; i < props.data.length; i++) {\n\t\tlet element: IIpo = props.data[i];\n\t\telement[\"sts\"] = element.mwStatus.split(\"-\").length !== 1 ? element.mwStatus.split(\"-\")[1].trim() : element.mwStatus.split(\" \")[1].trim();\n\t\telement[\"sts\"] = element[\"sts\"].toLowerCase();\n\t}\n\t// initial data is array of array for supporting grouping\n\n\tconst initialData = [JSON.parse(JSON.stringify(props.data))],\n\t\ttodayDate = bStrg(\"todayDate\") || new Date();\n\tlet [tableData, setTableData] = React.useState(initialData);\n\n\tlet ipoData: Array<{ [x: string]: Array }> | null = null;\n\n\tReact.useEffect(() => {\n\t\tsetTableData([props.data]);\n\t}, [props.data, props.isHistory]);\n\n\tif (props.data) {\n\t\t//group data based on biddingEndDate\n\t\tlet results = tableData.map((group) =>\n\t\t\tgroup.reduce(\n\t\t\t\t(arr: any, d: IIpo) => {\n\t\t\t\t\tif (dateTimeFormat(d.biddingEndDate, \"-\").setHours(0, 0, 0) >= new Date(todayDate).setHours(0, 0, 0) && d.biddingEndDate) {\n\t\t\t\t\t\tarr[0] = [...arr[0], d];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tarr[1] = [...arr[1], d];\n\t\t\t\t\t}\n\t\t\t\t\treturn arr;\n\t\t\t\t},\n\t\t\t\t[[], []]\n\t\t\t)\n\t\t);\n\n\t\tipoData =\n\t\t\ttableData.length > 0 && results[0][!props.isHistory ? 0 : 1].length > 0\n\t\t\t\t? [HObGroupBy(results[0][!props.isHistory ? 0 : 1], \"submitDt\", \",\")]\n\t\t\t\t: null;\n\t}\n\t//after applying filters following method will invoked to show the updated results\n\tfunction onDataFilter(data: Array, sText: string = \"\", type?: string) {\n\t\t//highlightes the search text\n\t\tif (sText) {\n\t\t\tconst SearchText: string = sText.toLowerCase();\n\t\t\tdata[0].forEach((ord: IIpo) => {\n\t\t\t\tord.ipoNm = SearchHighLight(ord.ipoNm, SearchText);\n\t\t\t});\n\t\t}\n\t\tsetTableData(data);\n\t}\n\t//is popup data\n\tconst [popupDataIndex, setPopupDataIndex] = React.useState<[string, number]>();\n\n\t// this function excute on clicking any row\n\tfunction onRowClick(data: any, groupIndex: string, index: number, e?: any) {\n\t\tif (e.target.tagName !== \"LI\") {\n\t\t\t// getOrderLogs(data.ordID);\n\t\t\tsetPopupDataIndex([groupIndex, index]);\n\t\t}\n\t}\n\n\tlet ordCancelledSuccList: Array = [],\n\t\tordCancelledFailList: Array = [],\n\t\tordsListToCancel: Array = [];\n\n\t// runs after all cancel api response\n\tfunction cancelCallback(res: any) {\n\t\tif (res.data) {\n\t\t\t// if success\n\t\t\tordCancelledSuccList.push(res.data);\n\t\t} else {\n\t\t\t// if error\n\t\t\tordCancelledFailList.push(res.error);\n\t\t}\n\n\t\t// when we get all the responses\n\t\tif (ordCancelledSuccList.length + ordCancelledFailList.length === ordsListToCancel.length) {\n\t\t\t//show toast message\n\t\t\tee.emit(\"showToast\", { message: `Cancelled ${ordsListToCancel.length} Orders`, color: \"cancell\" });\n\t\t\tprops.reRenderCall && props.reRenderCall(\"today\");\n\t\t}\n\t}\n\n\tfunction cancelOrder(data: any) {\n\t\tordsListToCancel.push(data.ordID);\n\t\tAIpoCancelTrd(cancelCallback, data.ordID);\n\t}\n\n\tfunction ipoRw(data: IIpo, groupIndex: string, index: number) {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    onRowClick(data, groupIndex, index, e)}>\n\t\t\t\t\t
    {data.submitDt.split(\",\")[1].replace(/am|pm/gi, \":00\").replace(/\\s/gi, \"\")}
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{data.bids.length} bids (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{data.bids.length !== 0 &&\n\t\t\t\t\t\t\t\t\tdata.bids\n\t\t\t\t\t\t\t\t\t\t.map((el) => el.quantity)\n\t\t\t\t\t\t\t\t\t\t.reduce((accumulator, currentValue) => {\n\t\t\t\t\t\t\t\t\t\t\treturn accumulator + currentValue;\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t{data.bids.length === 0 && data.bids.length}{\" \"}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tQty)\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\t\t\tExecuted Orders: \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{ipoData.map((g) =>\n\t\t\t\t\t\t\t\t\tObject.keys(g)\n\t\t\t\t\t\t\t\t\t\t.map((date) => g[date].filter((rw: IIpo) => rw.applicationNumber !== \"\").length)\n\t\t\t\t\t\t\t\t\t\t.reduce((acc, cv) => {\n\t\t\t\t\t\t\t\t\t\t\treturn acc + cv;\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t/\n\t\t\t\t\t\t\t\t{ipoData &&\n\t\t\t\t\t\t\t\t\tObject.keys(ipoData[0])\n\t\t\t\t\t\t\t\t\t\t.map((key: string) => (ipoData ? ipoData[0][key].length : 0))\n\t\t\t\t\t\t\t\t\t\t.reduce((acc, cv) => {\n\t\t\t\t\t\t\t\t\t\t\treturn acc + cv;\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tdata={(ipoData && Object.keys(ipoData).length) || !tableData[0] ? initialData : [[]]}\n\t\t\t\tsearchKey=\"ipoNm\"\n\t\t\t\tonDataFilter={onDataFilter}\n\t\t\t\tonSelectClick={undefined}\n\t\t\t\tonFilterClick={() => {}}\n\t\t\t\tfilterReqData={{\n\t\t\t\t\tstatus: \"sts\",\n\t\t\t\t\taType: \"ipo\",\n\t\t\t\t\tshowOpenOrderOnTop: false,\n\t\t\t\t\tshowOpenOrderTgl: false,\n\t\t\t\t\tisHistory: props.isHistory ? true : false\n\t\t\t\t}}\n\t\t\t\tonSearchClick={(e) => {\n\t\t\t\t\t// if exists, then call it\n\t\t\t\t\t// props.hidePageNav && props.hidePageNav(e);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t
    0 ? \"ObScrollCont\" : \"\"} style={ObScrollStyle(props.data.length > 0 ? true : false)}>\n\t\t\t\t{ipoData &&\n\t\t\t\t\tipoData.map((group, groupIndex) =>\n\t\t\t\t\t\tObject.keys(group).map((date, index) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{/* if history componenet need to show*/}\n\n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t
    • {date.split(\",\")[0]}
    • \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{group[date].map((row: any, index: number) => ipoRw(row, date, index))}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})\n\t\t\t\t\t)}\n\t\t\t
    \n\t\t\t{popupDataIndex && ipoData && (\n\t\t\t\t\n\t\t\t\t\t setPopupDataIndex(undefined)}\n\t\t\t\t\t\tonCancelClick={() => cancelOrder(ipoData !== null && ipoData[0][popupDataIndex[0]][popupDataIndex[1]])}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t)}\n\t\t\t{ipoData === null && props.noDataNode}\n\t\t\n\t);\n};\n\nexport default OnIpoMob;\n","export const AddRemClass = (addRemFlag: boolean, targetSelector: string, classname: string) => {\n\t//add remove the class based on @param addRemFlag\n\tconst targetEle = document.querySelector(targetSelector) as HTMLElement;\n\taddRemFlag && targetEle ? (targetEle.className += \" \" + classname) : targetEle && targetEle.classList.remove(classname);\n};\n\n//based on input value send the class name\n// > 0 -> pos\n// < 0 -> neg\nexport const PLCls = (num: string | number): string => {\n\t//convert to number if the num is in string format\n\tconst convertedVal: number = typeof num === \"string\" ? parseFloat(num) : num;\n\treturn convertedVal > 0 ? \" pos\" : convertedVal < 0 ? \" neg\" : \"\";\n};\n","import React, { ReactNode } from \"react\";\nimport Tag from \"../../../../../generic/tag\";\nimport \"../../../../../../assets/scss/components/toc/orderBook/instruments/instrumentsMob.scss\";\nimport { INcd } from \"../../../../../types/components/orderBook/obTypes\";\nimport { HObGroupBy } from \"../../../../../service/orderBook/obGrpByHelper\";\nimport { ChipColorKeyComb, ChipStatusComb } from \"../../../obConstants\";\nimport { toINR } from \"../../../../../service/numberFormat\";\nimport bStrg from \"../../../../../service/storageHelper\";\nimport { AddRemClass } from \"../../../../../helper/addRemoveClsOfTgt\";\n\nexport interface IObNcdMobProps {\n\tdata: Array;\n\tisHistory: boolean;\n\tnoDataNode: ReactNode;\n}\n\nconst ObNcdMob: React.FC = (props) => {\n\t// wherever initial data needs to be sent, send initialData\n\t// initial data is array of array for supporting grouping\n\tconst initialData = [props.data],\n\t\ttodayDate = bStrg(\"todayDate\") || new Date();\n\tlet [tableData, setTableData] = React.useState(initialData);\n\tlet ncdData: Array<{ [x: string]: Array }> | null = null,\n\t\ttodaysNcds: Array> | null = null;\n\n\tReact.useEffect(() => {\n\t\tsetTableData([props.data]);\n\t}, [props.data]);\n\n\tif (props.data) {\n\t\t//group data based on biddingEndDate\n\t\tlet results = tableData.map((group: Array) =>\n\t\t\tgroup.reduce(\n\t\t\t\t(arr: any, d: INcd) => {\n\t\t\t\t\tif (new Date(d.tmStm).setHours(0, 0, 0).valueOf() === new Date(todayDate).setHours(0, 0, 0).valueOf()) {\n\t\t\t\t\t\tarr[0] = [...arr[0], d];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tarr[1] = [...arr[1], d];\n\t\t\t\t\t}\n\t\t\t\t\treturn arr;\n\t\t\t\t},\n\t\t\t\t[[], []]\n\t\t\t)\n\t\t);\n\t\tif (!props.isHistory) {\n\t\t\ttodaysNcds = results[0][0].length > 0 ? [results[0][0]] : null;\n\t\t} else {\n\t\t\tncdData = results[0][1].length > 0 ? [HObGroupBy(results[0][1], \"tmStm\", \" \")] : null;\n\t\t}\n\t}\n\n\tfunction ncdExpRw(data: INcd, groupIndex: number, index: number) {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    AddRemClass(false, \".ncd_dockDown\" + groupIndex + \"\" + index, \"expand\")} />\n\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t AddRemClass(false, \".ncd_dockDown\" + groupIndex + \"\" + index, \"expand\")}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    {data.sym}
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\tIssue Type\n\t\t\t\t\t\t\t\t\t{data.issTyp}\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\tApplication No.\n\t\t\t\t\t\t\t\t\t{data.apNo}\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\tOrder No.\n\t\t\t\t\t\t\t\t\t{data.noID}\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\tBid\n\t\t\t\t\t\t\t\t\t{data.bNo}\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\tRemarks\n\t\t\t\t\t\t\t\t\t= 0 ? \"rejected\" : \"\")}>\n\t\t\t\t\t\t\t\t\t\t{data.msg ? data.msg : \"--\"}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{/* */}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n\n\tfunction ncdRw(data: INcd, groupIndex: number, index: number) {\n\t\treturn (\n\t\t\t\n\t\t\t\t AddRemClass(true, \".ncd_dockDown\" + groupIndex + \"\" + index, \"expand\")}\n\t\t\t\t>\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    {data.tmStm.split(\" \")[1].toLowerCase().trim()}
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    {data.sym}
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{data.issTyp}\n\t\t\t\t\t\t\t\t{data.qty} Qty.\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    ₹{toINR(data.amt, 2)}
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t{ncdExpRw(data, groupIndex, index)}\n\t\t\t\n\t\t);\n\t}\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t\t{\n\t\t\t\t\tprops.isHistory\n\t\t\t\t\t\t? ncdData !== null &&\n\t\t\t\t\t\t ncdData.map((group, groupIndex) =>\n\t\t\t\t\t\t\t\tObject.keys(group).map((date, GIindex) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{/* if history componenet need to show*/}\n\n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t
    • {date.split(\",\")[0]}
    • \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t{group[date].map((row: any, index: number) => ncdRw(row, GIindex, index))}\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: todaysNcds !== null &&\n\t\t\t\t\t\t todaysNcds.map((group: any, groupIndex: number) =>\n\t\t\t\t\t\t\t\t// Object.keys(group).map((grp: any, index) =>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{group.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t{group.map((row: any, index: number) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ncdRw(row, groupIndex, index)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t )\n\t\t\t\t\t// )\n\t\t\t\t}\n\t\t\t
    \n\n\t\t\t{((ncdData === null && props.isHistory) || (todaysNcds === null && !props.isHistory)) && props.noDataNode}\n\t\t\n\t);\n};\n\nexport default ObNcdMob;\n","import React, { ReactNode } from \"react\";\nimport Tag from \"../../../../../generic/tag\";\nimport \"../../../../../../assets/scss/components/toc/orderBook/instruments/instrumentsMob.scss\";\nimport { INfo } from \"../../../../../types/components/orderBook/obTypes\";\nimport bStrg from \"../../../../../service/storageHelper\";\nimport { HObGroupBy } from \"../../../../../service/orderBook/obGrpByHelper\";\nimport { ChipStatusComb, ChipColorKeyComb } from \"../../../obConstants\";\n\nexport interface IObNfoMobProps {\n\tdata: Array;\n\tisHistory: boolean;\n\tnoDataNode: ReactNode;\n}\n\nconst ObNfoMob: React.FC = (props) => {\n\t// wherever initial data needs to be sent, send initialData\n\t// initial data is array of array for supporting grouping\n\tconst initialData = [props.data],\n\t\ttodayDate = bStrg(\"todayDate\") || new Date();\n\tlet tableData = initialData;\n\tlet ncdData: Array<{ [x: string]: Array }> | null = null,\n\t\ttodaysNcds: Array> | null = null;\n\n\tReact.useEffect(() => {}, [props.data, props.isHistory]);\n\n\tif (props.data) {\n\t\t//group data based on biddingEndDate\n\t\tlet results = tableData.map((group: Array) =>\n\t\t\tgroup.reduce(\n\t\t\t\t(arr: any, d: INfo) => {\n\t\t\t\t\tif (new Date(d.txnDate).setHours(0, 0, 0).valueOf() === new Date(todayDate).setHours(0, 0, 0).valueOf()) {\n\t\t\t\t\t\tarr[0] = [...arr[0], d];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tarr[1] = [...arr[1], d];\n\t\t\t\t\t}\n\t\t\t\t\treturn arr;\n\t\t\t\t},\n\t\t\t\t[[], []]\n\t\t\t)\n\t\t);\n\t\tif (!props.isHistory) {\n\t\t\ttodaysNcds = results[0][0].length > 0 ? [results[0][0]] : null;\n\t\t} else {\n\t\t\tncdData = results[0][1].length > 0 ? [HObGroupBy(results[0][1], \"txnDate\", \"T\")] : null;\n\t\t}\n\t}\n\n\tfunction ncdRw(item: INfo, groupIndex: number, index: number) {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    {item.txnDate.split(\" \")[1].toLowerCase().trim()}
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    {item.schemeName}
    \n\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    ₹{item.amount}
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t{\n\t\t\t\t\tprops.isHistory\n\t\t\t\t\t\t? ncdData !== null &&\n\t\t\t\t\t\t ncdData.map((group, groupIndex) =>\n\t\t\t\t\t\t\t\tObject.keys(group).map((date, GIindex) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{/* if history componenet need to show*/}\n\n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t
    • {date.split(\"T\")[0]}
    • \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t{group[date].map((row: any, index: number) => ncdRw(row, GIindex, index))}\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: todaysNcds !== null &&\n\t\t\t\t\t\t todaysNcds.map((group: any, groupIndex: number) =>\n\t\t\t\t\t\t\t\t// Object.keys(group).map((grp: any, index) =>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{group.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t{group.map((row: any, index: number) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ncdRw(row, groupIndex, index)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t )\n\t\t\t\t\t// )\n\t\t\t\t}\n\t\t\t
    \n\n\t\t\t{((ncdData === null && props.isHistory) || (todaysNcds === null && !props.isHistory)) && props.noDataNode}\n\t\t\n\t);\n};\n\nexport default ObNfoMob;\n","import React, { ReactNode } from \"react\";\nimport { IListObj } from \"../../../../types/genericTypes\";\nimport DeviceContext from \"../../../../service/indentifyDevice\";\nimport { Idevice } from \"../../../../types/device\";\nimport NoDataContainer from \"../../../../generic/noDataContainer\";\nimport { SDevWiseStateComp } from \"../obDeviceComp\";\nimport { AObIPO, AObOFS, AObNCD, AObNFO } from \"../../../../service/orderBook/obApiService\";\nimport ObIpo from \"../../instruments/primaryMarket/newOffers/obIpo\";\nimport ObNcd from \"../../instruments/primaryMarket/newOffers/obNcd\";\nimport ObOfs from \"../../instruments/primaryMarket/newOffers/obOfs\";\nimport ObNfo from \"../../instruments/primaryMarket/newOffers/obNfo\";\nimport OnIpoMob from \"../../instruments/primaryMarket/newOffers/obIpoMob\";\nimport ObNcdMob from \"../../instruments/primaryMarket/newOffers/obNcdMob\";\nimport { PMErrorMessages } from \"../../obConstants\";\nimport { SLoader } from \"../../../../generic/loader\";\nimport { IOFSReq } from \"../../../../types/components/orderBook/obTypes\";\nimport moment from \"moment\";\nimport bStrg from \"../../../../service/storageHelper\";\nimport { subDays } from \"../../../../service/dateTimeService\";\nimport { config } from \"../../../../../config/domain\";\nimport ObNfoMob from \"../../instruments/primaryMarket/newOffers/obNfoMob\";\n\nexport interface IObNewOffersContProps {\n\tmatch?: any;\n}\n\nconst ObNewOffersCont: React.FC = (props) => {\n\tconst [hidepgNav, setHidePageNav] = React.useState(false); //hide page navigation when enabled\n\tconst [instrument, setInstrument] = React.useState(<>);\n\n\t// priNavOptions do not change (no need of state)\n\tconst priNavOptions: Array = [\n\t\t{ value: \"today\", display: \"Today's orders\", href: \"today\" },\n\t\t{ value: \"history\", display: \"History\", href: \"history\" }\n\t];\n\n\t//url params controlled vars\n\tlet history: boolean = props.match.params.pageNav === priNavOptions[1].value ? true : false;\n\tlet instNav: string = props.match.params.inst.toLowerCase();\n\t//PmActiveInstNav hold the selected primary nav tab\n\tconst PmActiveInstNav = React.useRef(props.match.params.inst.toLowerCase());\n\n\tlet todayDate: string = bStrg(\"todayDate\") || new Date();\n\n\tfunction reducer(instWiseData: any) {\n\t\treturn instWiseData;\n\t}\n\tfunction intialState() {\n\t\treturn {\n\t\t\tipo: [],\n\t\t\tofs: [],\n\t\t\tncd: [],\n\t\t\tnfo: []\n\t\t};\n\t}\n\t//reducer to preserve the data after mutliple renders\n\tconst [instWiseData] = React.useReducer(reducer, intialState());\n\n\t//toggler to show and hide the page navigation in the events of any operation\n\tconst hidePageNav = (toggle: boolean) => {\n\t\tsetHidePageNav(toggle);\n\t};\n\tconst setNHandle = (data: any) => {\n\t\tinstWiseData[instNav] = data;\n\t\thandleSecNav(instNav);\n\t};\n\n\tconst getIPOOrderbook = (res: any) => {\n\t\tif (PmActiveInstNav.current === \"ipo\") {\n\t\t\tres.data ? setNHandle(res.data.ordLst) : setNHandle([]);\n\t\t}\n\t};\n\tconst getOFSOrderbook = (res: any) => {\n\t\tif (PmActiveInstNav.current === \"ofs\") {\n\t\t\tconsole.log(res);\n\t\t}\n\t};\n\tconst getNCDOB = (res: any) => {\n\t\tif (PmActiveInstNav.current === \"ncd\") {\n\t\t\t(res.response ? res.response.data.ipoOrdBk : res.response) ? setNHandle(res.response.data.ipoOrdBk) : setNHandle([]);\n\t\t}\n\t};\n\tconst getNFOOrders = (res: any) => {\n\t\tif (PmActiveInstNav.current === \"nfo\") {\n\t\t\tres.data ? setNHandle(res.data.ordLst) : setNHandle([]);\n\t\t}\n\t};\n\n\tconst handleInstNav = (selectVal: string) => {\n\t\tinstNav = selectVal.toLowerCase();\n\t\tsetInstrument(SLoader(20, \"blue\"));\n\n\t\tswitch (selectVal) {\n\t\t\tcase \"ipo\":\n\t\t\t\tAObIPO(getIPOOrderbook);\n\t\t\t\tbreak;\n\t\t\tcase \"ofs\":\n\t\t\t\tAObOFS(getOFSOrderbook, {\n\t\t\t\t\texc: \"NSE\",\n\t\t\t\t\tfromDate: moment(new Date(todayDate)).format(\"DD/MM/YYYY\"),\n\t\t\t\t\ttoDate: moment(new Date(todayDate)).format(\"DD/MM/YYYY\")\n\t\t\t\t} as IOFSReq);\n\t\t\t\tbreak;\n\t\t\tcase \"ncd\":\n\t\t\t\t// getNCDOB(ncddata);\n\t\t\t\tAObNCD(getNCDOB);\n\t\t\t\tbreak;\n\t\t\tcase \"nfo\":\n\t\t\t\tAObNFO(getNFOOrders, moment(subDays(new Date(todayDate), 15)).format(\"DD/MM/YYYY\"), moment(new Date(todayDate)).format(\"DD/MM/YYYY\"));\n\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tconsole.log(\"not found\");\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tconst handleDevice: Idevice = DeviceContext();\n\n\t//handles section navigation based on page navigation\n\tconst handleSecNav = (nav: string) => {\n\t\tlet inst: ReactNode = <>,\n\t\t\tnodataNode: ReactNode = (\n\t\t\t\t {},\n\t\t\t\t\t\t\t\t\ttype: \"btn\"\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\tlinkDet={\n\t\t\t\t\t\thistory\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\ttxt: \"Go to Primary Markets page\",\n\t\t\t\t\t\t\t\t\thref: config.rootUrl + \"new-issues\",\n\t\t\t\t\t\t\t\t\ttype: \"aLink\"\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t);\n\n\t\tswitch (nav) {\n\t\t\tcase \"ipo\":\n\t\t\t\tinst =\n\t\t\t\t\thandleDevice.isDesktop || handleDevice.isTablet ? (\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase \"ofs\":\n\t\t\t\tinst = handleDevice.isDesktop || handleDevice.isTablet ? :
    ;\n\n\t\t\t\tbreak;\n\t\t\tcase \"ncd\":\n\t\t\t\tinst =\n\t\t\t\t\thandleDevice.isDesktop || handleDevice.isTablet ? (\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\n\t\t\t\tbreak;\n\t\t\tcase \"nfo\":\n\t\t\t\tinst =\n\t\t\t\t\thandleDevice.isDesktop || handleDevice.isTablet ? (\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tconsole.log(\"not found\");\n\t\t\t\tbreak;\n\t\t}\n\t\tsetInstrument(<>{inst});\n\t};\n\n\t//only on instrument change makes associated API call\n\tReact.useEffect(() => {\n\t\thandleInstNav(instNav);\n\t}, [props.match.params.secNav]);\n\n\tReact.useEffect(() => {\n\t\thandleSecNav(instNav);\n\t}, [props.match.params.pageNav]);\n\n\treturn (\n\t\t<>\n\t\t\t{SDevWiseStateComp(\n\t\t\t\tpriNavOptions,\n\n\t\t\t\tinstrument,\n\t\t\t\thidepgNav,\n\t\t\t\thandleDevice,\n\t\t\t\thandleInstNav\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default ObNewOffersCont;\n","import * as React from \"react\";\nimport ObProductTypeSelect from \"./obProductTypeSelect\";\nimport EdButton from \"../../../generic/edButton\";\nimport ObCheckbox from \"../generic/obCheckbox\";\nimport ObAssetDetailPopup from \"../generic/obAssetDetailPopup\";\nimport ObToastMessPopup from \"../generic/obToastMessPopup\";\nimport ee from \"../../../utils/eventEmitter\";\nimport ObTradeTabContent from \"./obTradeTabContent\";\nimport { backButtonValue } from \"../obJsXConstants\";\nimport { ACommConvertPos } from \"./../../../service/orderBook/obApiService\";\nimport \"../../../../assets/scss/components/generic/layout/layoutDesk.scss\";\nimport \"../../../../assets/scss/components/toc/orderBook/obConvertPositions/obConvertPositionDesk.scss\";\nimport \"../../../../assets/scss/components/toc/orderBook/obConvertPositions/obConvertPositionTab.scss\";\nimport { IListObj } from \"../../../types/genericTypes\";\n\nexport interface IObCommConvertDeskProps {\n\tdata: Array;\n\tonBackClick: (event: React.MouseEvent) => void; // the function to be called onClick\n}\n\nconst ObCommConvertDesk: React.FC = (props) => {\n\tconst [tradeData, setTradeData] = React.useState(\n\t\tprops.data.map((data, index) => {\n\t\t\treturn { ...data, id: index, isSelected: false };\n\t\t})\n\t);\n\n\tconst [isAllDataSelected, setIsAllDataSelected] = React.useState(false);\n\n\t// show convertion error popup\n\tconst [conErrorPopupMsg, setConErrorPopupMsg] = React.useState();\n\n\tconst [isProcessing, setIsProcessing] = React.useState(false);\n\n\t// total qty of selected rows\n\tconst totalSelectedQty = tradeData.reduce((a, b) => {\n\t\tif (b.isSelected) {\n\t\t\treturn a + +b.qty;\n\t\t} else {\n\t\t\treturn a;\n\t\t}\n\t}, 0);\n\n\tconst navigationDropdownOptions: Array = [\n\t\t{ value: \"NRML\", display: \"NRML\" },\n\t\t{ value: \"MIS\", display: \"MIS\" }\n\t];\n\n\tlet selectedPrdCode: string;\n\n\tlet ordConvertedSuccList: Array = [],\n\t\tordConvertedFailList: Array<{ error: any; index: number }> = [],\n\t\tOrdsListToConvert: Array = [];\n\t// runs after all convert api response\n\tfunction convertCallback(res: any, index: number) {\n\t\tif (res.data) {\n\t\t\t// if success\n\t\t\tordConvertedSuccList.push(res.data);\n\t\t} else {\n\t\t\t// if error\n\t\t\tordConvertedFailList.push({ error: res.error, index });\n\t\t}\n\n\t\t// when we get all the responses\n\t\tif (ordConvertedSuccList.length + ordConvertedFailList.length === OrdsListToConvert.length) {\n\t\t\tsetIsProcessing(false);\n\n\t\t\tif (ordConvertedSuccList.length === OrdsListToConvert.length) {\n\t\t\t\t// when all the converted successfully\n\t\t\t\tee.emit(\"showToast\", { message: `Success - ${totalSelectedQty} qty (SYMBOL) converted to ${selectedPrdCode}`, color: \"success\" }); //show toast message\n\t\t\t} else if (ordConvertedFailList.length === OrdsListToConvert.length) {\n\t\t\t\t// when all request failed\n\t\t\t\tee.emit(\"showToast\", {\n\t\t\t\t\tmessage: (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tCould not convert selected positions{\" \"}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t),\n\t\t\t\t\tcolor: \"error\"\n\t\t\t\t}); //show toast message\n\t\t\t} else {\n\t\t\t\t// partial conversion\n\t\t\t\tee.emit(\"showToast\", {\n\t\t\t\t\tmessage: `Could not convert ${ordConvertedFailList.length} / ${OrdsListToConvert.length} selected positions`,\n\t\t\t\t\tcolor: \"error\"\n\t\t\t\t}); //show toast message\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction onConvertPosition(selectedRadio: string) {\n\t\tsetIsProcessing(true);\n\t\tselectedPrdCode = selectedRadio;\n\n\t\t// call api for all selected rows\n\t\ttradeData.forEach((rw: any, index: number) => {\n\t\t\tif (rw.isSelected) {\n\t\t\t\tOrdsListToConvert.push(rw.ordID);\n\t\t\t\tACommConvertPos((res: any) => convertCallback(res, index), {\n\t\t\t\t\tnstOID: rw.ordID,\n\t\t\t\t\tflID: rw.flID,\n\t\t\t\t\tprdCode: rw.prdCode,\n\t\t\t\t\tprdCodeCh: selectedRadio,\n\t\t\t\t\texc: rw.exc,\n\t\t\t\t\tordTyp: rw.ordTyp\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tfunction obCommtradeRowSelection(index: number) {\n\t\t// if checkbox of any row is selected\n\t\tif (index >= 0) {\n\t\t\t// copy the data\n\t\t\tconst data = [...tradeData];\n\t\t\t// get the row\n\t\t\tconst row = { ...data[index] };\n\t\t\t// invert the status\n\t\t\trow.isSelected = !tradeData[index].isSelected;\n\n\t\t\t// put the updated row back in data\n\t\t\tdata[index] = row;\n\t\t\t// set the state\n\t\t\tsetTradeData(data);\n\n\t\t\t// set the value of all selected checkbox\n\t\t\tdata.every((row) => row.isSelected === true) ? setIsAllDataSelected(true) : setIsAllDataSelected(false);\n\t\t}\n\t\t// if all clicked on all selected checkbox\n\t\telse if (index === -1) {\n\t\t\t// copy the data\n\t\t\tlet data = [...tradeData];\n\t\t\t// loop over the data\n\t\t\t// If isAllDataSelected is true, then set every row to false\n\t\t\t// else if isAllDataSelected is false, then set every row to true\n\t\t\tdata = data.map((row) => ({ ...row, isSelected: !isAllDataSelected }));\n\n\t\t\tsetTradeData(data);\n\n\t\t\t// invert the state of isAllDataSelected\n\t\t\tsetIsAllDataSelected(!isAllDataSelected);\n\t\t}\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t

    Select Trade

    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t obCommtradeRowSelection(-1)}>\n\t\t\t\t\t\t\t\t\t\t\tSelect All\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t3selected\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t{tradeData.map((data, index) => (\n\t\t\t\t\t\t\t\t\t\t obCommtradeRowSelection(index)}\n\t\t\t\t\t\t\t\t\t\t\tshowCheckbox={true}\n\t\t\t\t\t\t\t\t\t\t\ttooltipTxt={ordConvertedFailList.find((failObj) => failObj.index === index)?.error.errMsg}\n\t\t\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\t\t\tdata={data}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t{conErrorPopupMsg && (\n\t\t\t\t\n\t\t\t\t\t setConErrorPopupMsg(undefined)}\n\t\t\t\t\t\tonToastBtnClick={() => setConErrorPopupMsg(undefined)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default ObCommConvertDesk;\n","import * as React from \"react\";\nimport EdButton from \"../../../../generic/edButton\";\nimport DeviceContext from \"../../../../service/indentifyDevice\";\nimport ObOrderLog, { IOrderLog } from \"../obOrderLog\";\nimport { ChipColorKeyComb } from \"../../obConstants\";\nimport { ACommGetOrderLogs } from \"../../../../service/orderBook/obApiService\";\nimport { dateTimeFormat } from \"../../../../service/dateTimeService\";\nimport moment from \"moment\";\nimport ObAssetDetailPopup from \"../../generic/obAssetDetailPopup\";\nimport ObCommConvertDesk from \"../../obConvertPositions/obCommConvertDesk\";\n\nexport interface IObCommDtlContentProps {\n\tdata: any;\n\tisTodayOrder: boolean;\n\tshowTradeTab: boolean;\n\ttradeData: any;\n\tonCancelClick: (e: React.MouseEvent) => void;\n}\n\nexport interface IObCommDtlContentState {\n\tlogs: Array;\n\tshowTradePopup: boolean;\n}\n\nclass ObCommDtlContent extends React.Component {\n\tstate: IObCommDtlContentState = { logs: [], showTradePopup: false };\n\n\tonButtonClick(e: React.MouseEvent) {\n\t\tconsole.log(e);\n\t}\n\n\tcommOrderLogs = (res: any) => {\n\t\tif (res.data) {\n\t\t\tthis.setState({\n\t\t\t\tlogs: res.data.ord.map((ord: any) => ({\n\t\t\t\t\ttime: moment(dateTimeFormat(ord.rcvEpTim)).format(\"D MMM 'YY | HH:mm:ss\"),\n\t\t\t\t\tsts: ord.sts\n\t\t\t\t}))\n\t\t\t});\n\t\t}\n\t};\n\n\tgetOrderLogs = () => {\n\t\tACommGetOrderLogs(this.commOrderLogs, this.props.data.ordID);\n\t};\n\n\tcomponentDidMount() {\n\t\tthis.getOrderLogs();\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t{/* commodity middle content */}\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{this.props.isTodayOrder && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t{!this.props.isTodayOrder && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{(this.props.data.dur === \"GTC\" || this.props.data.dur === \"GTD\") && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{this.props.isTodayOrder && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t{this.props.isTodayOrder && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{(this.props.data.dur === \"GTC\" || this.props.data.dur === \"GTD\") && (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t\t{this.props.isTodayOrder && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{/* buttons to perform different actions on click */}\n\t\t\t\t\t\t{ChipColorKeyComb[this.props.data.sts] !== \"red\" && (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{ChipColorKeyComb[this.props.data.sts] === \"blue\" && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t{/* button to cancel */}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{/* button to modify */}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{this.props.showTradeTab && (DeviceContext().isDesktop || DeviceContext().isTablet) && (\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{/* button to convert positions */}\n\t\t\t\t\t\t\t\t\t\t this.setState({ showTradePopup: true })}\n\t\t\t\t\t\t\t\t\t\t\tslim\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{/* Retyy button will so on rejection*/}\n\t\t\t\t\t\t{ChipColorKeyComb[this.props.data.sts] === \"red\" && (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{/* order log progress bar steps */}\n\t\t\t\t\t\t{this.state.logs && this.props.isTodayOrder && }\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t{this.state.showTradePopup && (\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ showTradePopup: false })} />\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
    \n\t\t);\n\t}\n}\n\nexport default ObCommDtlContent;\n","import * as React from \"react\";\nimport ObAssetsDetlSym from \"../../instruments/details/obAssetsDetlSym\";\nimport EdButton from \"../../../../generic/edButton\";\nimport Tab from \"../../../../generic/tab\";\nimport ObCommDtlContent from \"./obCommDtlContent\";\nimport { ObAssetsDetlSymProps } from \"../../instruments/details/obAssetsDetlSym\";\nimport { dateTimeFormat } from \"../../../../service/dateTimeService\";\nimport moment from \"moment\";\nimport { ChipStatusComb } from \"../../obConstants\";\nimport { ACommGetTradeBk } from \"../../../../service/orderBook/obApiService\";\nimport ObAssetDetailPopup from \"../../generic/obAssetDetailPopup\";\nimport ObTradeTabContent from \"../../obConvertPositions/obTradeTabContent\";\nimport { backButtonValue } from \"./../../obJsXConstants\";\nimport \"../../../../../assets/scss/components/toc/orderBook/obModifyState/obModify.scss\";\nimport \"../../../../../assets/scss/components/toc/orderBook/obDetails/obOrderLog.scss\";\nimport \"../../../../../assets/scss/components/toc/orderBook/obDetails/obAssetDetails.scss\";\nimport \"../../../../../assets/scss/components/toc/orderBook/obDetails/obAssetDetailstab.scss\";\nimport ObCommConvertDesk from \"../../obConvertPositions/obCommConvertDesk\";\nimport { IListObj } from \"../../../../types/genericTypes\";\n\nexport interface IObCommodityDtlsProps {\n\tdata: any;\n\tonBackClick: (event: React.MouseEvent) => void; // the function to be called onClick\n\tisTodayOrder: boolean;\n\tonCancelClick: (e: React.MouseEvent) => void;\n}\n\nexport interface IObCommodityDtlsState {\n\tselectedTab: string | number;\n\ttradeData: Array;\n\tshowTradePopup: boolean;\n\ttabLst: Array;\n}\n\nclass ObCommodityDtls extends React.Component {\n\tstate = { selectedTab: \"info\", tradeData: [], showTradePopup: false, tabLst: [{ value: \"info\", display: \"Info\" }] };\n\n\tassetDetail: ObAssetsDetlSymProps = {\n\t\tdate: this.props.data.rcvEpTim\n\t\t\t? moment(dateTimeFormat(this.props.data.rcvEpTim)).format(\"D MMM YYYY, HH:mm:ss\")\n\t\t\t: moment(dateTimeFormat(this.props.data.ordEntTyp)).format(\"D MMM YYYY, HH:mm:ss\"),\n\t\ttrsTyp: this.props.data.trsTyp,\n\t\ttitle: this.props.data.trdSym,\n\t\tsubTitle: this.props.data.cpName ? this.props.data.cpName : this.props.data.dpName ? this.props.data.dpName : this.props.data.symName,\n\t\tsts: ChipStatusComb[this.props.data.sts.toLowerCase()]\n\t};\n\n\ttabLstSelect = (id: string | number) => {\n\t\tthis.setState({ selectedTab: id });\n\t};\n\n\tcommGetTradeBkRes = (res: any) => {\n\t\tif (res.data) {\n\t\t\tthis.setState({\n\t\t\t\ttradeData: res.data.trade,\n\t\t\t\ttabLst: [\n\t\t\t\t\t{ value: \"info\", display: \"Info\" },\n\t\t\t\t\t{ value: \"trade\", display: \"Trades\" }\n\t\t\t\t]\n\t\t\t});\n\t\t}\n\t};\n\n\tcomponentDidMount() {\n\t\tACommGetTradeBk(this.commGetTradeBkRes, this.props.data.ordID); //fetchs trade log\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/* left menu back button */}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{/* header section */}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{/* when status is rejected will show below content */}\n\t\t\t\t\t\t\t\t\t\t\t{this.props.data.rjRsn && (\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t

    Reason

    \n\t\t\t\t\t\t\t\t\t\t\t\t\t

    {this.props.data.rjRsn}

    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{/* detailed content */}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{/* if tab is info then show info content */}\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t 0}\n\t\t\t\t\t\t\t\t\t\t\t\t\ttradeData={this.state.tradeData}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonCancelClick={this.props.onCancelClick}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{/* if the tab is trade then show trade content below */}\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{this.state.tradeData.map((data, index) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.setState({ showTradePopup: true });\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tslim\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t{this.state.showTradePopup && (\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ showTradePopup: false })} />\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t);\n\t}\n}\n\nexport default ObCommodityDtls;\n","import React, { useState, useEffect } from \"react\";\nimport Tag from \"../../../../generic/tag\";\nimport OverflowButton from \"../../../../generic/overflowButton\";\nimport \"../../../../../assets/scss/components/toc/orderBook/instruments/instrumentsDsk.scss\";\nimport \"../../../../../assets/scss/components/toc/orderBook/instruments/instrumentsTab.scss\";\nimport {\n HObGroupBy,\n HOb2DGroupBy,\n} from \"../../../../service/orderBook/obGrpByHelper\";\nimport Sort, { eSortState, sort } from \"../../../../generic/sort\";\nimport obtradeRowSelection from \"../../../../service/orderBook/selectAll\";\nimport indexer, { IListObj } from \"../../../../types/genericTypes\";\nimport { ICommodity } from \"../../../../types/components/orderBook/obTypes\";\nimport moment from \"moment\";\nimport dateTimeFormat from \"../../../../service/dateTimeService\";\nimport TocNoData from \"../../../generic/tocNoData/tocNoData\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport {\n ChipColorKeyComb,\n ovrOptions,\n scrlStCls,\n ObScrollStyle,\n} from \"../../obConstants\";\nimport ObUtilHeader from \"../../obContainer/obUtilHeader\";\nimport DatePickerInt from \"../../obContainer/obDatePickerInt\";\nimport ObCheckbox from \"../../generic/obCheckbox\";\nimport ObAssetDetailPopup from \"../../generic/obAssetDetailPopup\";\nimport ObCommodityDtls from \"../../obDetails/dsk/obCommodityDtls\";\nimport { ChipStatusComb } from \"./../../obConstants\";\nimport {\n ACommCancelNrmTrd,\n ACommCancelAmoTrd,\n} from \"./../../../../service/orderBook/obApiService\";\nimport ObToastMessPopup from \"../../generic/obToastMessPopup\";\nimport ee from \"../../../../utils/eventEmitter\";\nimport { SearchHighLight } from \"../../../../service/generic/searchHighlight\";\nimport EdButton from \"../../../../generic/edButton\";\n\nexport interface ObCommoditiesProps {\n // Array of Equity Data\n data: Array;\n //true if table is history type else false\n isHistory?: boolean;\n hidePageNav?: (hide: boolean) => void;\n getDates: (frmDt: Date, toDate: Date) => void;\n reRenderCall?: (value: string) => void;\n}\n\n// heading for Commodities Asset table\n\nconst heading: indexer = {\n symbol: \"Symbol\",\n prodType: \"Prod. Type\",\n qty: \"Qty.\",\n orderPrice: \"Order Price\",\n avgPrice: \"Avg. Price\",\n};\n\nconst sortKey: indexer = {\n symbol: \"trdSym\",\n};\n\nconst ObCommodities: React.FC = (props) => {\n const ovrOpts: Array = ovrOptions;\n\n if (props.data.length) {\n for (let i = 0; i < props.data.length; i++) {\n var temp: Array = [];\n let dp: ICommodity = props.data[i];\n\n if (dp.edit === \"true\") {\n temp.push(ovrOpts[0]);\n }\n if (dp.cancel === \"true\") {\n temp.push(ovrOpts[1]);\n }\n if (dp.sts === \"rejected\") {\n temp.push(ovrOpts[3]);\n }\n if (dp.sts === \"open\" || (dp.sts === \"pending\" && dp.ogt === \"AMO\")) {\n temp.push(ovrOpts[2]);\n }\n dp[\"ovrOpts\"] = temp;\n }\n }\n //selection handle start\n const [isSelectEnable, setIsSelectEnable] = useState(false);\n\n const [isAllDataSelected, setIsAllDataSelected] = React.useState(false);\n //selection handle end\n\n // wherever initial data needs to be sent, send initialData\n // initial data is array of array for supporting grouping\n const initialData = [\n props.data.map((data: any, index: number) => ({\n ...data,\n id: index,\n isSelected: false,\n })),\n ];\n\n // filteredData contains filtered, searched data\n let filteredData: Array> = initialData;\n //executed orders count\n const exeCountRef = React.useRef();\n //Show Open Ords on Top or not ref state\n const OpenOrdsTopRef = React.useRef();\n // tableData is shown in the table\n // tableData contains sorted, filtered, searched data\n let [tableData, setTableData] = useState>>(initialData);\n let CommHistoryData: Array<{ [x: string]: Array }> = [{}];\n\n useEffect(() => {\n setTableData([props.data]);\n //ref to initial toggle state of show open orders on top\n OpenOrdsTopRef.current = true;\n // check that props.data is not undefined/null, group it(open and others) and update tabledata\n if (props.data.length) {\n if (!props.isHistory && OpenOrdsTopRef.current) {\n let temp0 = HOb2DGroupBy(props.data, \"sts\");\n exeCountRef.current = temp0[1].length;\n setTableData(temp0);\n }\n }\n }, [props.data, props.isHistory]);\n\n if (props.isHistory) {\n CommHistoryData = tableData.map((group) =>\n HObGroupBy(group, \"ordEntTyp\", \" \")\n );\n }\n const [sortedColumnState, setSortedColumnState] = useState({\n colName: null as string | null,\n sortState: eSortState.ASC,\n });\n\n //selected count\n const [selectedCount, setselectedCount] = useState(0);\n\n // state for mf popup handling\n const [popupDataIndex, setPopupDataIndex] =\n useState<[number, number, string?]>();\n\n // show cancel popup\n const [showCancelPopup, setShowCancelPopup] =\n React.useState<{ bulkCancel: boolean; data?: any }>();\n\n function onSort(data: Array>, sortState: eSortState) {\n setSortedColumnState({ colName: heading.symbol, sortState: sortState });\n setTableData(data);\n OpenOrdsTopRef.current = false;\n }\n\n const selectRows = (groupIndex: number, index: number) => {\n const retRes = obtradeRowSelection(\n groupIndex,\n index,\n tableData,\n isAllDataSelected,\n \"cancel\",\n \"true\"\n );\n\n // set the state\n setTableData(retRes.data);\n setselectedCount(retRes.count);\n\n setIsAllDataSelected(retRes.allSelected);\n };\n\n function onDataFilter(data: Array, sText?: string, type?: string) {\n filteredData = data;\n\n // sort only if colName is present, otherwise there is no need to sort\n if (sortedColumnState.colName) {\n const colNameKey = Object.keys(heading).find(\n (key) => heading[key] === sortedColumnState.colName\n )!;\n sort(data, sortedColumnState.sortState, sortKey[colNameKey], onSort);\n }\n //highlightes the search text\n if (sText) {\n const SearchText: string = sText.toLowerCase();\n const searchKeys: string = \"symName;trdSym\";\n\n data[0].forEach((ord: indexer) => {\n searchKeys.split(\";\").forEach((k: string) => {\n if (ord[k]) {\n ord[k] = SearchHighLight(ord[k], SearchText);\n }\n });\n });\n }\n if (type === \"search\" && OpenOrdsTopRef.current && !props.isHistory) {\n setTableData(HOb2DGroupBy(data[0], \"sts\"));\n } else {\n setTableData(data);\n }\n }\n\n // this function excute on clicking any row\n function onRowClick(\n data: ICommodity,\n groupIndex: number,\n index: number,\n e?: any\n ) {\n if (\n e &&\n !e.nativeEvent.path.find(\n (m: HTMLElement) =>\n m.className &&\n (m.className.indexOf(\"check\") >= 0 ||\n m.className.indexOf(\"menu\") >= 0)\n )\n ) {\n setPopupDataIndex([\n groupIndex,\n index,\n props.isHistory && data.ordEntTyp\n ? data.ordEntTyp.split(\" \")[0]\n : undefined,\n ]);\n }\n }\n function optSelection(id: string | number, data: any) {\n switch (id) {\n case \"details\":\n case \"convert\":\n setPopupDataIndex([\n data.gI,\n data.ind,\n props.isHistory && data.ord.ordEntTyp\n ? data.ord.ordEntTyp.split(\" \")[0]\n : undefined,\n ]);\n break;\n case \"cancel\":\n checkPartialOrder(false, data.ord as ICommodity);\n break;\n default:\n //console.log(\"404\");\n break;\n }\n }\n function addFlAndNtQty(bulkCancel: boolean, data?: ICommodity) {\n let flQtySum = 0;\n let ntQtySum = 0;\n\n if (bulkCancel) {\n tableData.forEach((g: any) =>\n g.forEach((rw: ICommodity) => {\n if (rw.isSelected) {\n flQtySum += +rw.flQty;\n ntQtySum += +(rw.ntQty ? rw.ntQty : rw.qtyTF || 0);\n }\n })\n );\n } else if (data) {\n flQtySum += +data.flQty;\n ntQtySum += +(data.ntQty ? data.ntQty : data.qtyTF || 0);\n }\n\n return { flQtySum, ntQtySum };\n }\n\n function selectedRows(bulkCancel: boolean, data?: ICommodity) {\n if (bulkCancel) {\n let total = 0;\n tableData.forEach((g: any) =>\n g.forEach((rw: ICommodity) => {\n if (rw.isSelected) {\n total++;\n }\n })\n );\n return total;\n } else if (data) {\n return 1;\n }\n return 0;\n }\n\n let ordCancelledSuccList: Array = [],\n ordCancelledFailList: Array = [],\n ordsListToCancel: Array = [];\n\n // runs after all cancel api response\n function cancelCallback(res: any) {\n if (res.data) {\n // if success\n ordCancelledSuccList.push(res.data);\n } else {\n // if error\n ordCancelledFailList.push(res.error);\n }\n\n // when we get all the responses\n if (\n ordCancelledSuccList.length + ordCancelledFailList.length ===\n ordsListToCancel.length\n ) {\n setShowCancelPopup(undefined); // close confirmation popup\n //show toast message\n ee.emit(\"showToast\", {\n message: `Cancelled ${ordsListToCancel.length} Orders`,\n color: \"cancell\",\n });\n\n props.reRenderCall && props.reRenderCall(\"today\");\n }\n }\n\n function checkPartialOrder(bulkCancel: boolean, data?: ICommodity) {\n // {data.flQty}/{data.ntQty ? data.ntQty : data.qtyTF}\n const { flQtySum, ntQtySum } = addFlAndNtQty(bulkCancel, data);\n\n if (flQtySum === ntQtySum) {\n // not partially completed\n cancelOrder(bulkCancel, data?.ordID);\n } else {\n // partially completed\n setShowCancelPopup({ bulkCancel, data });\n }\n }\n\n function cancelOrder(bulkCancel: boolean, data?: any) {\n if (bulkCancel) {\n tableData.forEach((g: any) =>\n g.forEach((rw: ICommodity) => {\n if (rw.isSelected) {\n ordsListToCancel.push(rw.ordID);\n if (rw.ogt === \"AMO\") {\n // if amo trade then run this api\n ACommCancelAmoTrd(cancelCallback, {\n nstOID: rw.ordID,\n exc: rw.exc,\n ordTyp: rw.ordTyp,\n prdCode: rw.prdCode,\n });\n } else {\n // if normal trade then run this api\n ACommCancelNrmTrd(cancelCallback, {\n nstOID: rw.ordID,\n exc: rw.exc,\n ordTyp: rw.ordTyp,\n prdCode: rw.prdCode,\n });\n }\n }\n })\n );\n } else if (data) {\n // cancel single order\n ordsListToCancel.push(data?.ordID);\n if (data.ogt === \"AMO\") {\n // if amo trade then run this api\n ACommCancelAmoTrd(cancelCallback, {\n nstOID: data.ordID,\n exc: data.exc,\n ordTyp: data.ordTyp,\n prdCode: data.prdCode,\n });\n } else {\n // if normal trade then run this api\n ACommCancelNrmTrd(cancelCallback, {\n nstOID: data.ordID,\n exc: data.exc,\n ordTyp: data.ordTyp,\n prdCode: data.prdCode,\n });\n }\n }\n }\n\n function commRow(\n data: ICommodity,\n groupIndex: number,\n index: number,\n date?: string\n ) {\n return (\n onRowClick(data, groupIndex, index, e)}\n >\n {isSelectEnable && (\n
    \n {data.ovrOpts && data.cancel === \"true\" && (\n selectRows(groupIndex, index)}\n />\n )}\n
    \n )}\n
    \n \n {isSelectEnable && (\n \n )}\n\n {data.rcvTim}\n {data.ordEntTyp &&\n moment(dateTimeFormat(data.ordEntTyp)).format(\"HH:mm:ss\")}\n \n
    \n
    \n \n \n \n
    \n
    \n \n

    \n
    \n
    \n {data.prdCode}\n
    \n
    \n {data.flQty}\n {data.ntQty ||\n (data.qtyTF && (\n /{data.ntQty ? data.ntQty : data.qtyTF}\n ))}\n
    \n {/* don't show order price in case of history data */}\n {!props.isHistory && (\n
    \n {data.prc ? \"₹\" + toINR(data.prc, 2) : \"--\"}\n
    \n )}\n
    \n \n {data.avgPrc && data.avgPrc !== \"--\"\n ? \"₹\" + toINR(data.avgPrc, 2)\n : \"--\"}\n \n
    \n {!props.isHistory && (\n
    \n {data.ogt && data.ogt !== \"--\" ? data.ogt : \"\"}\n
    \n )}\n
    \n \n \n \n
    \n {!isSelectEnable && !props.isHistory && (\n
    \n {data.ovrOpts && (\n optSelection(id, data)}\n onHover={true}\n data={{\n ord: data,\n gI: groupIndex,\n ind: index,\n }}\n />\n )}\n
    \n )}\n \n );\n }\n return (\n <>\n {/* UH start*/}\n {!isSelectEnable && (\n \n Executed Orders: \n \n {exeCountRef.current} / {initialData[0].length}\n \n \n ) : props.isHistory ? (\n \n ) : (\n <>\n )\n }\n data={initialData}\n searchKey=\"cpName;dpName;trdSym\"\n onDataFilter={onDataFilter}\n onSelectClick={\n !props.isHistory &&\n tableData.find((g: any) =>\n g.find((row: ICommodity) => row.cancel === \"true\")\n )\n ? () => {\n setIsSelectEnable(!isSelectEnable);\n }\n : undefined\n }\n onFilterClick={(tgl) => {\n OpenOrdsTopRef.current = tgl;\n }}\n filterReqData={{\n status: \"sts\",\n aType: \"comm\",\n showOpenOrderOnTop: OpenOrdsTopRef.current,\n showOpenOrderTgl: props.isHistory ? false : true,\n isHistory: props.isHistory ? true : false,\n }}\n onSearchClick={(e) => {\n // setTableData(initialData);\n // if exists, then call it\n props.hidePageNav && props.hidePageNav(e);\n }}\n />\n )}\n {/* UH end*/}\n\n {isSelectEnable && (\n <>\n
    \n
    \n

    {selectedCount} selected

    \n
    \n
    \n checkPartialOrder(true)}\n />\n setIsSelectEnable(false)}\n className=\"mg-l15 clsBtn edBtn\"\n >\n Close\n \n
    \n
    \n \n )}\n \n {/* ob Commodities Header Row */}\n {(!props.isHistory ||\n (props.isHistory && initialData[0].length > 0)) && (\n
      \n
    • \n {isSelectEnable && (\n
      \n selectRows(-1, -1)}\n />\n
      \n )}\n
      \n
      \n
      \n {!props.isHistory && (\n \n )}\n {props.isHistory && heading.symbol}\n
      \n
      {heading.prodType}
      \n
      {heading.qty}
      \n {/* don't show order price in case of history data */}\n\n {!props.isHistory && (\n
      {heading.orderPrice}
      \n )}\n
      {heading.avgPrice}
      \n {!props.isHistory &&
      }\n
      \n {!isSelectEnable && !props.isHistory && (\n
      \n )}\n
    • \n
    \n )}\n 0 ? \"ObScrollCont\" : \"\"}\n style={ObScrollStyle(props.data.length > 0 ? true : false)}\n >\n {/* ob Commodities content Row */}\n {props.isHistory ? (\n CommHistoryData.map((group, groupIndex) =>\n Object.keys(group).map((date, index) => {\n return (\n \n \n
  • \n {moment(dateTimeFormat(date)).format(\"DD MMMM YYYY\")}\n
  • \n \n
      \n {group[date].map((row: any, index: number) =>\n commRow(row, groupIndex, index, date)\n )}\n
    \n
    \n );\n })\n )\n ) : (\n <>\n {\n !!tableData.length &&\n tableData.map((group: any, groupIndex: number) =>\n // Object.keys(group).map((grp: any, index) =>\n {\n return (\n \n {group.length > 0 && (\n \n {/* {tableData.map((group, groupIndex) => */}\n {group.map((row: any, index: number) => (\n \n {commRow(row, groupIndex, index)}\n \n ))}\n {/* )} */}\n \n )}\n \n );\n }\n )\n // )\n }\n {!tableData.length && (\n \n )}\n \n )}\n \n {popupDataIndex && (\n \n setPopupDataIndex(undefined)}\n isTodayOrder={!props.isHistory}\n onCancelClick={() =>\n checkPartialOrder(\n false,\n tableData[popupDataIndex[0]][popupDataIndex[1]] as ICommodity\n )\n }\n />\n \n )}\n {showCancelPopup && (\n \n setShowCancelPopup(undefined)}\n onToastBtnClick={() =>\n cancelOrder(showCancelPopup.bulkCancel, showCancelPopup.data)\n }\n />\n \n )}\n \n \n );\n};\n\nexport default ObCommodities;\n","import * as React from \"react\";\nimport EdButton from \"../../../generic/edButton\";\nimport ObCheckbox from \"../generic/obCheckbox\";\nimport ObProductTypeSelect from \"./obProductTypeSelect\";\nimport ObAssetDetailPopup from \"../generic/obAssetDetailPopup\";\nimport ObToastMessPopup from \"../generic/obToastMessPopup\";\nimport SlideUpPopup from \"../../../generic/slideUpPopup\";\nimport ee from \"../../../utils/eventEmitter\";\nimport ObTradeTabContent from \"./obTradeTabContent\";\nimport { backButtonValue } from \"../obJsXConstants\";\nimport { ACommConvertPos } from \"./../../../service/orderBook/obApiService\";\nimport \"../../../../assets/scss/components/generic/layout/layoutMob.scss\";\nimport \"../../../../assets/scss/components/toc/orderBook/obConvertPositions/obConvertPositionDesk.scss\";\nimport \"../../../../assets/scss/components/toc/orderBook/obConvertPositions/obConvertPositionMob.scss\";\nimport { IListObj } from \"../../../types/genericTypes\";\n\nexport interface IObCommConvertMobProps {\n\tdata: Array;\n\tonBackClick: (event: React.MouseEvent) => void; // the function to be called onClick\n}\n\nconst ObCommConvertMob: React.FC = (props) => {\n\tconst [tradeData, setTradeData] = React.useState(\n\t\tprops.data.map((data, index) => {\n\t\t\treturn { ...data, id: index, isSelected: false };\n\t\t})\n\t);\n\n\tconst [isAllDataSelected, setIsAllDataSelected] = React.useState(false);\n\n\tconst [showConvertPosition, setShowConvertPosition] = React.useState(false);\n\n\t// show convertion error popup\n\tconst [conErrorPopupMsg, setConErrorPopupMsg] = React.useState();\n\n\tconst [isProcessing, setIsProcessing] = React.useState(false);\n\n\t// total qty of selected rows\n\tconst totalSelectedQty = tradeData.reduce((a, b) => {\n\t\tif (b.isSelected) {\n\t\t\treturn a + +b.qty;\n\t\t} else {\n\t\t\treturn a;\n\t\t}\n\t}, 0);\n\n\tconst navigationDropdownOptions: Array = [\n\t\t{ value: \"NRML\", display: \"NRML\" },\n\t\t{ value: \"MIS\", display: \"MIS\" },\n\t\t{ value: \"MTF\", display: \"MTF\" },\n\t\t{ value: \"BO\", display: \"BO\" },\n\t\t{ value: \"CO\", display: \"CO\" }\n\t];\n\n\tlet selectedPrdCode: string;\n\n\tlet ordConvertedSuccList: Array = [],\n\t\tordConvertedFailList: Array<{ error: any; index: number }> = [],\n\t\tOrdsListToConvert: Array = [];\n\t// runs after all convert api response\n\tfunction convertCallback(res: any, index: number) {\n\t\tif (res.data) {\n\t\t\t// if success\n\t\t\tordConvertedSuccList.push(res.data);\n\t\t} else {\n\t\t\t// if error\n\t\t\tordConvertedFailList.push({ error: res.error, index });\n\t\t}\n\n\t\t// when we get all the responses\n\t\tif (ordConvertedSuccList.length + ordConvertedFailList.length === OrdsListToConvert.length) {\n\t\t\tsetIsProcessing(false);\n\n\t\t\tif (ordConvertedSuccList.length === OrdsListToConvert.length) {\n\t\t\t\t// when all the converted successfully\n\t\t\t\tee.emit(\"showToast\", { message: `Success - ${totalSelectedQty} qty (SYMBOL) converted to ${selectedPrdCode}`, color: \"success\" }); //show toast message\n\t\t\t} else if (ordConvertedFailList.length === OrdsListToConvert.length) {\n\t\t\t\t// when all request failed\n\t\t\t\tee.emit(\"showToast\", {\n\t\t\t\t\tmessage: (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tCould not convert selected positions{\" \"}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t),\n\t\t\t\t\tcolor: \"error\"\n\t\t\t\t}); //show toast message\n\t\t\t} else {\n\t\t\t\t// partial conversion\n\t\t\t\tee.emit(\"showToast\", {\n\t\t\t\t\tmessage: `Could not convert ${ordConvertedFailList.length} / ${OrdsListToConvert.length} selected positions`,\n\t\t\t\t\tcolor: \"error\"\n\t\t\t\t}); //show toast message\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction onConvertPosition(selectedRadio: string) {\n\t\tsetIsProcessing(true);\n\t\tselectedPrdCode = selectedRadio;\n\n\t\t// call api for all selected rows\n\t\ttradeData.forEach((rw: any, index: number) => {\n\t\t\tif (rw.isSelected) {\n\t\t\t\tOrdsListToConvert.push(rw.ordID);\n\t\t\t\tACommConvertPos((res: any) => convertCallback(res, index), {\n\t\t\t\t\tnstOID: rw.ordID,\n\t\t\t\t\tflID: rw.flID,\n\t\t\t\t\tprdCode: rw.prdCode,\n\t\t\t\t\tprdCodeCh: selectedRadio,\n\t\t\t\t\texc: rw.exc,\n\t\t\t\t\tordTyp: rw.ordTyp\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tfunction obCommtradeRowSelection(index: number) {\n\t\t// if checkbox of any row is selected\n\t\tif (index >= 0) {\n\t\t\t// copy the data\n\t\t\tconst data = [...tradeData];\n\t\t\t// get the row\n\t\t\tconst row = { ...data[index] };\n\t\t\t// invert the status\n\t\t\trow.isSelected = !tradeData[index].isSelected;\n\t\t\t// put the updated row back in data\n\t\t\tdata[index] = row;\n\t\t\t// set the state\n\t\t\tsetTradeData(data);\n\n\t\t\t// set the value of all selected checkbox\n\t\t\tdata.every((row) => row.isSelected === true) ? setIsAllDataSelected(true) : setIsAllDataSelected(false);\n\t\t}\n\t\t// if all clicked on all selected checkbox\n\t\telse if (index === -1) {\n\t\t\t// copy the data\n\t\t\tlet data = [...tradeData];\n\t\t\t// loop over the data\n\t\t\t// If isAllDataSelected is true, then set every row to false\n\t\t\t// else if isAllDataSelected is false, then set every row to true\n\t\t\tdata = data.map((row) => ({ ...row, isSelected: !isAllDataSelected }));\n\n\t\t\tsetTradeData(data);\n\n\t\t\t// invert the state of isAllDataSelected\n\t\t\tsetIsAllDataSelected(!isAllDataSelected);\n\t\t}\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t{/* {showToast && } */}\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t obCommtradeRowSelection(-1)}>\n\t\t\t\t\t\t\t\t\t\tSelect All\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{tradeData.map((data, index) => (\n\t\t\t\t\t\t\t\t\t obCommtradeRowSelection(index)}\n\t\t\t\t\t\t\t\t\t\tshowCheckbox={true}\n\t\t\t\t\t\t\t\t\t\ttooltipTxt={ordConvertedFailList.find((failObj) => failObj.index === index)?.error.errMsg}\n\t\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\t\tdata={data}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t setShowConvertPosition(true)} />\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t{showConvertPosition && (\n\t\t\t\t setShowConvertPosition(false)}>\n\t\t\t\t\t setShowConvertPosition(false)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{conErrorPopupMsg && (\n\t\t\t\t\n\t\t\t\t\t setConErrorPopupMsg(undefined)}\n\t\t\t\t\t\tonToastBtnClick={() => setConErrorPopupMsg(undefined)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default ObCommConvertMob;\n","import * as React from \"react\";\nimport EdButton from \"../../../../generic/edButton\";\nimport ObCommDtlContent from \"../dsk/obCommDtlContent\";\nimport Tab from \"../../../../generic/tab\";\nimport ObAssetsDetlSymMob from \"../../instruments/details/obAssetsDetlSymMob\";\nimport { ObAssetsDetlSymProps } from \"./../../instruments/details/obAssetsDetlSym\";\nimport moment from \"moment\";\nimport { dateTimeFormat } from \"./../../../../service/dateTimeService\";\nimport { ChipStatusComb } from \"./../../obConstants\";\nimport { ACommGetTradeBk } from \"./../../../../service/orderBook/obApiService\";\nimport DeviceContext from \"../../../../service/indentifyDevice\";\nimport ObAssetDetailPopup from \"../../generic/obAssetDetailPopup\";\nimport ObTradeTabContent from \"../../obConvertPositions/obTradeTabContent\";\nimport { backButtonValue } from \"./../../obJsXConstants\";\nimport \"../../../../../assets/scss/components/toc/orderBook/obDetails/obAssetDetailsMob.scss\";\nimport ObCommConvertMob from \"../../obConvertPositions/obCommConvertMob\";\nimport { IListObj } from \"../../../../types/genericTypes\";\n\nexport interface IObCommDtlMobProps {\n\tdata: any;\n\tonBackClick: (event: React.MouseEvent) => void; // the function to be called onClick\n\tisTodayOrder: boolean;\n\tonCancelClick: (e: React.MouseEvent) => void;\n}\n\nexport interface IObCommDtlMobState {\n\tselectedTab: string | number;\n\ttradeData: Array;\n\tshowTradePopup: boolean;\n\ttabLst: Array;\n}\n\nclass ObCommDtlMob extends React.Component {\n\tstate = { selectedTab: \"info\", tradeData: [], showTradePopup: false, tabLst: [{ value: \"info\", display: \"Info\" }] };\n\n\tassetDetail: ObAssetsDetlSymProps = {\n\t\tdate: this.props.data.rcvEpTim\n\t\t\t? moment(dateTimeFormat(this.props.data.rcvEpTim)).format(\"D MMM YYYY, HH:mm:ss\")\n\t\t\t: moment(dateTimeFormat(this.props.data.ordEntTyp)).format(\"D MMM YYYY, HH:mm:ss\"),\n\t\ttrsTyp: this.props.data.trsTyp,\n\t\ttitle: this.props.data.trdSym,\n\t\tsubTitle: this.props.data.cpName ? this.props.data.cpName : this.props.data.dpName ? this.props.data.dpName : this.props.data.symName,\n\t\tsts: ChipStatusComb[this.props.data.sts.toLowerCase()]\n\t};\n\n\ttabLstSelect = (id: string | number) => {\n\t\tthis.setState({ selectedTab: id });\n\t};\n\n\tcommGetTradeBkRes = (res: any) => {\n\t\tif (res.data) {\n\t\t\tthis.setState({\n\t\t\t\ttradeData: res.data.trade,\n\t\t\t\ttabLst: [\n\t\t\t\t\t{ value: \"info\", display: \"Info\" },\n\t\t\t\t\t{ value: \"trade\", display: \"Trades\" }\n\t\t\t\t]\n\t\t\t});\n\t\t}\n\t};\n\n\tcomponentDidMount() {\n\t\tACommGetTradeBk(this.commGetTradeBkRes, this.props.data.ordID); //fetchs trade log\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/* back button */}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{/* convert trade button for mobile */}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{this.state.tradeData.length > 0 && DeviceContext().isMobile && (\n\t\t\t\t\t\t\t\t\t\t// button to convert positions\n\t\t\t\t\t\t\t\t\t\t this.setState({ showTradePopup: true })} slim />\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/* when status is rejected will show below content */}\n\t\t\t\t\t\t\t\t{this.props.data.rjRsn && (\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t

    Reason

    \n\t\t\t\t\t\t\t\t\t\t

    {this.props.data.rjRsn}

    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{/* detailed content */}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t 0}\n\t\t\t\t\t\t\t\t\t\ttradeData={this.state.tradeData}\n\t\t\t\t\t\t\t\t\t\tonCancelClick={this.props.onCancelClick}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/* if the tab is trade then show trade content below */}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t{this.state.tradeData.map((data, index) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{!DeviceContext().isMobile && (\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.setState({ showTradePopup: true });\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tslim\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t{this.state.showTradePopup && (\n\t\t\t\t\t\n\t\t\t\t\t\t this.setState({ showTradePopup: false })} />\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
    \n\t\t);\n\t}\n}\n\nexport default ObCommDtlMob;\n","import React from \"react\";\nimport Tag from \"../../../../generic/tag\";\nimport \"../../../../../assets/scss/components/toc/orderBook/instruments/instrumentsMob.scss\";\nimport { ICommodity } from \"../../../../types/components/orderBook/obTypes\";\nimport { HOb2DGroupBy, HObGroupBy } from \"../../../../service/orderBook/obGrpByHelper\";\nimport obtradeRowSelection from \"../../../../service/orderBook/selectAll\";\nimport ObUtilHeader from \"../../obContainer/obUtilHeader\";\nimport DatePickerInt from \"../../obContainer/obDatePickerInt\";\nimport EdButton from \"../../../../generic/edButton\";\nimport { backButtonValue } from \"../../obJsXConstants\";\nimport ObCheckbox from \"../../generic/obCheckbox\";\nimport moment from \"moment\";\nimport dateTimeFormat from \"../../../../service/dateTimeService\";\nimport TocNoData from \"../../../generic/tocNoData/tocNoData\";\nimport { ChipColorKeyComb, scrlStCls } from \"../../obConstants\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport ObCommDtlMob from \"../../obDetails/mob/obCommDtlMob\";\nimport ObAssetDetailPopup from \"../../generic/obAssetDetailPopup\";\nimport { ChipStatusComb } from \"./../../obConstants\";\nimport ObToastMessPopup from \"../../generic/obToastMessPopup\";\nimport { ACommCancelAmoTrd, ACommCancelNrmTrd } from \"../../../../service/orderBook/obApiService\";\nimport ee from \"../../../../utils/eventEmitter\";\nimport indexer from \"../../../../types/genericTypes\";\nimport { SearchHighLight } from \"../../../../service/generic/searchHighlight\";\n\nexport interface IObCommoditiesMobProps {\n\t// Array of Equity Data\n\tdata: Array;\n\t//true if table is history type else false\n\tisHistory?: boolean;\n\thidePageNav?: (hide: boolean) => void;\n\tgetDates: (frmDt: Date, toDate: Date) => void;\n\treRenderCall?: (value: string) => void;\n}\n\nconst ObCommoditiesMob: React.FC = props => {\n\tconst [isSelectEnable, setIsSelectEnable] = React.useState(false);\n\n\tconst [isAllDataSelected, setIsAllDataSelected] = React.useState(false);\n\n\t// wherever initial data needs to be sent, send initialData\n\t// initial data is array of array for supporting grouping\n\tconst initialData = [props.data.map((data, index) => ({ ...data, id: index, isSelected: false }))];\n\n\t// tableData is shown in the table\n\t// tableData contains sorted, filtered, searched data\n\tlet [tableData, setTableData] = React.useState(initialData);\n\tlet CommHistoryData: Array<{ [x: string]: Array }> = [{}];\n\t//selected count\n\tconst [selectedCount, setselectedCount] = React.useState(0);\n\t// show cancel popup\n\tconst [showCancelPopup, setShowCancelPopup] = React.useState<{ bulkCancel: boolean; data?: any }>();\n\n\t//is popup data\n\tconst [popupDataIndex, setPopupDataIndex] = React.useState<[number, number, string?]>();\n\t//executed orders count\n\tconst exeCountRef = React.useRef();\n\t//Show Open Ords on Top or not ref state\n\tconst OpenOrdsTopRef = React.useRef();\n\n\t// this function excute on clicking any row\n\tfunction onRowClick(data: ICommodity, groupIndex: number, index: number, e?: any) {\n\t\tif (e && !e.nativeEvent.path.find((m: HTMLElement) => m.className && (m.className.indexOf(\"check\") >= 0 || m.className.indexOf(\"menu\") >= 0))) {\n\t\t\tsetPopupDataIndex([groupIndex, index, props.isHistory && data.ordEntTyp ? data.ordEntTyp.split(\" \")[0] : undefined]);\n\t\t}\n\t}\n\n\tReact.useEffect(() => {\n\t\tsetTableData([props.data]);\n\t\t//ref to initial toggle state of show open orders on top\n\t\tOpenOrdsTopRef.current = true;\n\t\t// check that props.data is not undefined/null, group it(open and others) and update tabledata\n\n\t\tif (props.data) {\n\t\t\tif (!props.isHistory) {\n\t\t\t\tlet temp0 = HOb2DGroupBy(props.data, \"sts\");\n\t\t\t\texeCountRef.current = temp0[1].length;\n\t\t\t\tsetTableData(temp0);\n\t\t\t}\n\t\t}\n\t\treturn () => {\n\t\t\tsetTableData([[{}]]);\n\t\t};\n\t}, [props.data, props.isHistory]);\n\t//kept outside because state data updating in async mode\n\tif (props.isHistory) {\n\t\tCommHistoryData = tableData.map(group => HObGroupBy(group, \"ordEntTyp\", \" \"));\n\t}\n\tconst selectRows = (groupIndex: number, index: number) => {\n\t\tconst retRes = obtradeRowSelection(groupIndex, index, tableData, isAllDataSelected, \"cancel\", \"true\");\n\n\t\t// set the state\n\t\tsetTableData(retRes.data);\n\t\tsetselectedCount(retRes.count);\n\n\t\tsetIsAllDataSelected(retRes.allSelected);\n\t};\n\n\tfunction onDataFilter(data: Array, sText?: string, type?: string) {\n\t\t//highlightes the search text\n\t\tif (sText) {\n\t\t\tconst SearchText: string = sText.toLowerCase();\n\t\t\tconst searchKeys: string = \"symName;trdSym\";\n\n\t\t\tdata[0].forEach((ord: indexer) => {\n\t\t\t\tsearchKeys.split(\";\").forEach((k: string) => {\n\t\t\t\t\tif (ord[k]) {\n\t\t\t\t\t\tord[k] = SearchHighLight(ord[k], SearchText);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\tif (type === \"search\" && OpenOrdsTopRef.current && !props.isHistory) {\n\t\t\tsetTableData(HOb2DGroupBy(data[0], \"sts\"));\n\t\t} else {\n\t\t\tsetTableData(data);\n\t\t}\n\t}\n\n\tfunction addFlAndNtQty(bulkCancel: boolean, data?: ICommodity) {\n\t\tlet flQtySum = 0;\n\t\tlet ntQtySum = 0;\n\n\t\tif (bulkCancel) {\n\t\t\ttableData.forEach((g: any) =>\n\t\t\t\tg.forEach((rw: ICommodity) => {\n\t\t\t\t\tif (rw.isSelected) {\n\t\t\t\t\t\tflQtySum += +rw.flQty;\n\t\t\t\t\t\tntQtySum += +(rw.ntQty ? rw.ntQty : rw.qtyTF || 0);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t);\n\t\t} else if (data) {\n\t\t\tflQtySum += +data.flQty;\n\t\t\tntQtySum += +(data.ntQty ? data.ntQty : data.qtyTF || 0);\n\t\t}\n\n\t\treturn { flQtySum, ntQtySum };\n\t}\n\n\tfunction selectedRows(bulkCancel: boolean, data?: ICommodity) {\n\t\tif (bulkCancel) {\n\t\t\tlet total = 0;\n\t\t\ttableData.forEach((g: any) =>\n\t\t\t\tg.forEach((rw: ICommodity) => {\n\t\t\t\t\tif (rw.isSelected) {\n\t\t\t\t\t\ttotal++;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn total;\n\t\t} else if (data) {\n\t\t\treturn 1;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tlet ordCancelledSuccList: Array = [],\n\t\tordCancelledFailList: Array = [],\n\t\tordsListToCancel: Array = [];\n\n\t// runs after all cancel api response\n\tfunction cancelCallback(res: any) {\n\t\tif (res.data) {\n\t\t\t// if success\n\t\t\tordCancelledSuccList.push(res.data);\n\t\t} else {\n\t\t\t// if error\n\t\t\tordCancelledFailList.push(res.error);\n\t\t}\n\n\t\t// when we get all the responses\n\t\tif (ordCancelledSuccList.length + ordCancelledFailList.length === ordsListToCancel.length) {\n\t\t\tsetShowCancelPopup(undefined); // close confirmation popup\n\t\t\t//show toast message\n\t\t\tee.emit(\"showToast\", { message: `Cancelled ${ordsListToCancel.length} Orders`, color: \"cancell\" });\n\n\t\t\tprops.reRenderCall && props.reRenderCall(\"today\");\n\t\t}\n\t}\n\n\tfunction checkPartialOrder(bulkCancel: boolean, data?: ICommodity) {\n\t\t// {data.flQty}/{data.ntQty ? data.ntQty : data.qtyTF}\n\t\tconst { flQtySum, ntQtySum } = addFlAndNtQty(bulkCancel, data);\n\n\t\tif (flQtySum === ntQtySum) {\n\t\t\t// not partially completed\n\t\t\tcancelOrder(bulkCancel, data?.ordID);\n\t\t} else {\n\t\t\t// partially completed\n\t\t\tsetShowCancelPopup({ bulkCancel, data });\n\t\t}\n\t}\n\n\tfunction cancelOrder(bulkCancel: boolean, data?: any) {\n\t\tif (bulkCancel) {\n\t\t\ttableData.forEach((g: any) =>\n\t\t\t\tg.forEach((rw: ICommodity) => {\n\t\t\t\t\tif (rw.isSelected) {\n\t\t\t\t\t\tordsListToCancel.push(rw.ordID);\n\t\t\t\t\t\tif (rw.ogt === \"AMO\") {\n\t\t\t\t\t\t\t// if amo trade then run this api\n\t\t\t\t\t\t\tACommCancelAmoTrd(cancelCallback, { nstOID: rw.ordID, exc: rw.exc, ordTyp: rw.ordTyp, prdCode: rw.prdCode });\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// if normal trade then run this api\n\t\t\t\t\t\t\tACommCancelNrmTrd(cancelCallback, { nstOID: rw.ordID, exc: rw.exc, ordTyp: rw.ordTyp, prdCode: rw.prdCode });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t);\n\t\t} else if (data) {\n\t\t\t// cancel single order\n\t\t\tordsListToCancel.push(data?.ordID);\n\t\t\tif (data.ogt === \"AMO\") {\n\t\t\t\t// if amo trade then run this api\n\t\t\t\tACommCancelAmoTrd(cancelCallback, { nstOID: data.ordID, exc: data.exc, ordTyp: data.ordTyp, prdCode: data.prdCode });\n\t\t\t} else {\n\t\t\t\t// if normal trade then run this api\n\t\t\t\tACommCancelNrmTrd(cancelCallback, { nstOID: data.ordID, exc: data.exc, ordTyp: data.ordTyp, prdCode: data.prdCode });\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction commRow(data: ICommodity, groupIndex: number, index: number) {\n\t\treturn (\n\t\t\t
    onRowClick(data, groupIndex, index, e)}>\n\t\t\t\t{isSelectEnable ? (\n\t\t\t\t\t
    \n\t\t\t\t\t\t selectRows(groupIndex, index)} />\n\t\t\t\t\t
    \n\t\t\t\t) : (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{data.rcvTim}\n\t\t\t\t\t\t{data.ordEntTyp && moment(dateTimeFormat(data.ordEntTyp)).format(\"HH:mm:ss\")}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{/* \n\t\t\t\t\t

    */}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{data.prdCode}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{data.flQty}\n\t\t\t\t\t\t\t\t{data.ntQty || (data.qtyTF && /{data.ntQty ? data.ntQty : data.qtyTF})}\n\t\t\t\t\t\t\t{\" \"}\n\t\t\t\t\t\t\tQty @{/* {data.prc ? \"₹\" + toINR(data.prc, 2) : \"--\"} */}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{data.avgPrc && data.avgPrc !== \"--\" && parseFloat(data.avgPrc) > 0 ? \"₹\" + toINR(data.avgPrc, 2) : \"₹\" + toINR(data.prc, 2)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n\treturn (\n\t\t
    \n\t\t\t{!isSelectEnable && (\n\t\t\t\t\n\t\t\t\t\t\t\t\tExecuted Orders: \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{exeCountRef.current} / {initialData[0].length}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t) : props.isHistory ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\tdata={initialData}\n\t\t\t\t\tsearchKey=\"cpName;dpName;trdSym\"\n\t\t\t\t\tonDataFilter={onDataFilter}\n\t\t\t\t\tonSelectClick={\n\t\t\t\t\t\t!props.isHistory && tableData.find((g: any) => g.find((row: ICommodity) => row.cancel === \"true\"))\n\t\t\t\t\t\t\t? () => {\n\t\t\t\t\t\t\t\t\tsetIsSelectEnable(true);\n\t\t\t\t\t\t\t\t\tprops.hidePageNav && props.hidePageNav(true);\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\tonFilterClick={tgl => {\n\t\t\t\t\t\tOpenOrdsTopRef.current = tgl;\n\t\t\t\t\t}}\n\t\t\t\t\tfilterReqData={{\n\t\t\t\t\t\tstatus: \"sts\",\n\t\t\t\t\t\taType: \"comm\",\n\t\t\t\t\t\tshowOpenOrderOnTop: OpenOrdsTopRef.current,\n\t\t\t\t\t\tshowOpenOrderTgl: props.isHistory ? false : true,\n\t\t\t\t\t\tisHistory: props.isHistory ? true : false\n\t\t\t\t\t}}\n\t\t\t\t\tonSearchClick={e => {\n\t\t\t\t\t\tsetTableData(initialData);\n\t\t\t\t\t\t// if exists, then call it\n\t\t\t\t\t\tprops.hidePageNav && props.hidePageNav(e);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{isSelectEnable && (\n\t\t\t\t<>\n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetIsSelectEnable(false);\n\t\t\t\t\t\t\t\tprops.hidePageNav && props.hidePageNav(false);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tclassName=\"icon_button\"\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t setIsSelectEnable(false)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t)}\n\t\t\t{isSelectEnable && (\n\t\t\t\t
    \n\t\t\t\t\t selectRows(-1, -1)}>\n\t\t\t\t\t\tSelect All\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t)}\n\n\t\t\t
    \n\t\t\t\t{props.isHistory\n\t\t\t\t\t? CommHistoryData.map((group: any, groupIndex: number) =>\n\t\t\t\t\t\t\tObject.keys(group).map((date: any, index: number) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t
    • {moment(dateTimeFormat(date)).format(\"DD MMMM YYYY\")}
    • \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t{group[date].map((row: any, index: number) => (\n\t\t\t\t\t\t\t\t\t\t\t\t{commRow(row, groupIndex, index)}\n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})\n\t\t\t\t\t )\n\t\t\t\t\t: !!tableData.length &&\n\t\t\t\t\t tableData.map((group: any, groupIndex: number) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{group.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{group.map((row: any, index: number) => (\n\t\t\t\t\t\t\t\t\t\t\t\t{commRow(row, groupIndex, index)}\n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t);\n\t\t\t\t\t })}\n\t\t\t\t{!tableData.length && }\n\t\t\t\t{popupDataIndex && (\n\t\t\t\t\t\n\t\t\t\t\t\t setPopupDataIndex(undefined)}\n\t\t\t\t\t\t\tisTodayOrder={!props.isHistory}\n\t\t\t\t\t\t\tonCancelClick={() => checkPartialOrder(false, tableData[popupDataIndex[0]][popupDataIndex[1]] as ICommodity)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t{showCancelPopup && (\n\t\t\t\t\t\n\t\t\t\t\t\t setShowCancelPopup(undefined)}\n\t\t\t\t\t\t\tonToastBtnClick={() => cancelOrder(showCancelPopup.bulkCancel, showCancelPopup.data)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
    \n\t\t\n\t);\n};\n\nexport default ObCommoditiesMob;\n","import React, { ReactNode } from \"react\";\nimport DeviceContext from \"../../../../service/indentifyDevice\";\nimport { AObCommReq, AObCommHist } from \"../../../../service/orderBook/obApiService\";\nimport { commNav } from \"../../obConstants\";\nimport { Idevice } from \"../../../../types/device\";\nimport moment from \"moment\";\nimport NoDataContainer from \"../../../../generic/noDataContainer\";\nimport { SDevWiseStateComp } from \"../obDeviceComp\";\n\nimport ObCommodities from \"../../instruments/secondaryMarket/obCommodities\";\nimport ObCommoditiesMob from \"../../instruments/secondaryMarket/obCommoditiesMob\";\nimport Loader from \"../../../../generic/loader\";\nimport { IListObj } from \"../../../../types/genericTypes\";\nexport interface IObCommContainerProps {\n\tmatch?: any;\n}\n\nconst ObCommContainer: React.FC = (props) => {\n\tconst [hidepgNav, setHidePageNav] = React.useState(false);\n\tconst [instrument, setInstrument] = React.useState(<>);\n\tlet filteredData: Array<{}> = [];\n\tconst obLoader = (\n\t\t
    \n\t\t\t\n\t\t
    \n\t);\n\n\t// priNavOptions do not change (no need of state)\n\tconst priNavOptions: Array = [\n\t\t{ value: \"today\", display: \"Today's orders\", href: commNav.today },\n\t\t{ value: \"history\", display: \"History\", href: commNav.history }\n\t];\n\n\t//url params controlled vars\n\tlet activeSecNav: string = props.match.params.secNav.toLowerCase();\n\tlet history: boolean = props.match.params.pageNav === priNavOptions[1].value ? true : false;\n\n\tconst setNHandle = (data: any) => {\n\t\tfilteredData = data;\n\t\thandleSecNav(activeSecNav);\n\t};\n\n\tconst CommOrderBookRes = (res: any) => {\n\t\tres.data ? setNHandle(res.data.ord) : setNHandle([]);\n\t};\n\n\tconst CommOrderBookHistRes = (res: any) => {\n\t\tif (history) {\n\t\t\tres.data ? setNHandle(res.data.hstOrdBk) : setNHandle([]);\n\t\t}\n\t};\n\n\t//handle page navigation today's, history data\n\tconst handlePageNav = (selectVal: string) => {\n\t\tswitch (selectVal) {\n\t\t\tcase \"history\":\n\t\t\t\thistory = true;\n\t\t\t\tsetNHandle([]);\n\t\t\t\tbreak;\n\t\t\tcase \"today\":\n\t\t\t\thistory = false;\n\t\t\t\tsetInstrument(obLoader);\n\t\t\t\tAObCommReq(CommOrderBookRes);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tconsole.log(\"not found\");\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tReact.useEffect(() => {\n\t\thandlePageNav(props.match.params.pageNav);\n\t}, [props.match.params.pageNav]);\n\n\tconst getDates = (fromDt: Date, toDate: Date) => {\n\t\tif (history) {\n\t\t\tAObCommHist(CommOrderBookHistRes, moment(fromDt).format(\"MM/DD/YYYY\"), moment(toDate).format(\"MM/DD/YYYY\"));\n\t\t}\n\t};\n\n\tconst handleDevice: Idevice = DeviceContext();\n\t//toggler to show and hide the page navigation in the events of any operation\n\tconst hidePageNav = (toggle: boolean) => {\n\t\tsetHidePageNav(toggle);\n\t};\n\t//handles section navigation based on page navigation\n\tconst handleSecNav = (nav: string) => {\n\t\tlet inst: ReactNode = <>,\n\t\t\tnodataNode: ReactNode = <>;\n\t\t//show no data container\n\t\tif (filteredData.length === 0) {\n\t\t\tnodataNode = (\n\t\t\t\t {},\n\t\t\t\t\t\ttype: history ? \"bLink\" : \"btn\"\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t\tif (history || filteredData.length !== 0) {\n\t\t\tinst =\n\t\t\t\thandleDevice.isDesktop || handleDevice.isTablet ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t}\n\t\tsetInstrument(\n\t\t\t<>\n\t\t\t\t{inst}\n\t\t\t\t{nodataNode}\n\t\t\t\n\t\t);\n\t};\n\treturn <>{SDevWiseStateComp(priNavOptions, instrument, hidepgNav)};\n};\n\nexport default ObCommContainer;\n","import React, { ReactNode } from \"react\";\nimport { IListObj } from \"../../../../types/genericTypes\";\nimport DeviceContext from \"../../../../service/indentifyDevice\";\nimport { AObEqReq, AObEqHistReq } from \"../../../../service/orderBook/obApiService\";\nimport { filterArrData } from \"../../../../service/arrayFilter\";\nimport { dervNav } from \"../../obConstants\";\nimport ObEquity from \"../../instruments/secondaryMarket/obEquity\";\nimport { Idevice } from \"../../../../types/device\";\nimport ObEquityMob from \"../../instruments/secondaryMarket/obEquityMob\";\nimport moment from \"moment\";\nimport NoDataContainer from \"../../../../generic/noDataContainer\";\nimport { SDevWiseStateComp } from \"../obDeviceComp\";\nimport Loader from \"../../../../generic/loader\";\n\nexport interface IObDerContainerProps {\n\tmatch?: any;\n}\n\nconst ObDerContainer: React.FC = (props) => {\n\tconst [hidepgNav, setHidePageNav] = React.useState(false);\n\tconst [instrument, setInstrument] = React.useState(<>);\n\tlet filteredData: Array<{}> = [];\n\tconst obLoader = (\n\t\t
    \n\t\t\t\n\t\t
    \n\t);\n\n\t// priNavOptions do not change (no need of state)\n\tconst priNavOptions: Array = [\n\t\t{ value: \"today\", display: \"Today's orders\", href: dervNav.today },\n\t\t{ value: \"history\", display: \"History\", href: dervNav.history }\n\t];\n\n\t//url params controlled vars\n\tlet activeSecNav: string = props.match.params.secNav.toLowerCase();\n\tlet history: boolean = props.match.params.pageNav === priNavOptions[1].value ? true : false;\n\n\tconst setNHandle = (data: any) => {\n\t\tfilteredData = data;\n\t\thandleSecNav(activeSecNav);\n\t};\n\n\tconst eqOrderBookRes = (res: any) => {\n\t\tres.data ? setNHandle(res.data.ord) : setNHandle([]);\n\t};\n\n\tconst eqOrderBookHistRes = (res: any) => {\n\t\tif (history) {\n\t\t\tres.data ? setNHandle(res.data.hstOrdBk) : setNHandle([]);\n\t\t}\n\t};\n\n\t//handle page navigation today's, history data\n\tconst handlePageNav = (selectVal: string) => {\n\t\tswitch (selectVal) {\n\t\t\tcase \"history\":\n\t\t\t\thistory = true;\n\t\t\t\tsetNHandle([]);\n\t\t\t\tbreak;\n\t\t\tcase \"today\":\n\t\t\t\thistory = false;\n\t\t\t\tsetInstrument(obLoader);\n\t\t\t\tAObEqReq(eqOrderBookRes);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tconsole.log(\"not found\");\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tReact.useEffect(() => {\n\t\thandlePageNav(props.match.params.pageNav);\n\t}, [props.match.params.pageNav]);\n\tconst getDates = (fromDt: Date, toDate: Date) => {\n\t\tAObEqHistReq(eqOrderBookHistRes, moment(fromDt).format(\"MM/DD/YYYY\"), moment(toDate).format(\"MM/DD/YYYY\"));\n\t};\n\n\tconst handleDevice: Idevice = DeviceContext();\n\t//toggler to show and hide the page navigation in the events of any operation\n\tconst hidePageNav = (toggle: boolean) => {\n\t\tsetHidePageNav(toggle);\n\t};\n\t//handles section navigation based on page navigation\n\tconst handleSecNav = (nav: string) => {\n\t\tfilteredData = filterArrData(filteredData, \"asTyp\", \"EQUITY\", \"!\");\n\t\tif (!history) {\n\t\t\tfilteredData = filterArrData(filteredData, \"exc\", \"CDS\", \"!\");\n\t\t} else {\n\t\t\tfilteredData = filterArrData(filteredData, \"exc\", \"NFO\", \"=\");\n\t\t}\n\t\tlet inst: ReactNode = <>,\n\t\t\tnodataNode: ReactNode = <>;\n\t\t//show no data container\n\t\tif (filteredData.length === 0) {\n\t\t\tnodataNode = (\n\t\t\t\t {},\n\t\t\t\t\t\ttype: history ? \"bLink\" : \"btn\"\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t\tif (history || filteredData.length !== 0) {\n\t\t\tinst =\n\t\t\t\thandleDevice.isDesktop || handleDevice.isTablet ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t}\n\t\tsetInstrument(\n\t\t\t<>\n\t\t\t\t{inst}\n\t\t\t\t{nodataNode}\n\t\t\t\n\t\t);\n\t};\n\treturn <>{SDevWiseStateComp(priNavOptions, instrument, hidepgNav)};\n};\n\nexport default ObDerContainer;\n","import React, { ReactNode } from \"react\";\nimport DeviceContext from \"../../../../service/indentifyDevice\";\nimport { AObEqReq, AObEqHistReq } from \"../../../../service/orderBook/obApiService\";\nimport { filterArrData } from \"../../../../service/arrayFilter\";\nimport { currNav } from \"../../obConstants\";\nimport ObEquity from \"../../instruments/secondaryMarket/obEquity\";\nimport { Idevice } from \"../../../../types/device\";\nimport ObEquityMob from \"../../instruments/secondaryMarket/obEquityMob\";\nimport moment from \"moment\";\nimport NoDataContainer from \"../../../../generic/noDataContainer\";\nimport { SDevWiseStateComp } from \"../obDeviceComp\";\nimport Loader from \"../../../../generic/loader\";\nimport { IListObj } from \"../../../../types/genericTypes\";\n\nexport interface IObCurContainerProps {\n\tmatch?: any;\n}\n\nconst ObCurContainer: React.FC = (props) => {\n\tconst [hidepgNav, setHidePageNav] = React.useState(false);\n\tconst [instrument, setInstrument] = React.useState(<>);\n\tlet filteredData: Array<{}> = [];\n\tconst obLoader = (\n\t\t
    \n\t\t\t\n\t\t
    \n\t);\n\n\t// priNavOptions do not change (no need of state)\n\tconst priNavOptions: Array = [\n\t\t{ value: \"today\", display: \"Today's orders\", href: currNav.today },\n\t\t{ value: \"history\", display: \"History\", href: currNav.history }\n\t];\n\n\t//url params controlled vars\n\tlet activeSecNav: string = props.match.params.secNav.toLowerCase();\n\tlet history: boolean = props.match.params.pageNav === priNavOptions[1].value ? true : false;\n\n\tconst setNHandle = (data: any) => {\n\t\tfilteredData = data;\n\t\thandleSecNav(activeSecNav);\n\t};\n\n\tconst eqOrderBookRes = (res: any) => {\n\t\tres.data ? setNHandle(res.data.ord) : setNHandle([]);\n\t};\n\n\tconst eqOrderBookHistRes = (res: any) => {\n\t\tif (history) {\n\t\t\tres.data ? setNHandle(res.data.hstOrdBk) : setNHandle([]);\n\t\t}\n\t};\n\n\t//handle page navigation today's, history data\n\tconst handlePageNav = (selectVal: string) => {\n\t\tswitch (selectVal) {\n\t\t\tcase \"history\":\n\t\t\t\thistory = true;\n\t\t\t\tsetNHandle([]);\n\t\t\t\tbreak;\n\t\t\tcase \"today\":\n\t\t\t\thistory = false;\n\t\t\t\tsetInstrument(obLoader);\n\t\t\t\tAObEqReq(eqOrderBookRes);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tconsole.log(\"not found\");\n\t\t\t\tbreak;\n\t\t}\n\t};\n\tReact.useEffect(() => {\n\t\thandlePageNav(props.match.params.pageNav);\n\t}, [props.match.params.pageNav]);\n\n\tconst getDates = (fromDt: Date, toDate: Date) => {\n\t\tAObEqHistReq(eqOrderBookHistRes, moment(fromDt).format(\"MM/DD/YYYY\"), moment(toDate).format(\"MM/DD/YYYY\"));\n\t};\n\n\tconst handleDevice: Idevice = DeviceContext();\n\t//toggler to show and hide the page navigation in the events of any operation\n\tconst hidePageNav = (toggle: boolean) => {\n\t\tsetHidePageNav(toggle);\n\t};\n\t//handles section navigation based on page navigation\n\tconst handleSecNav = (nav: string) => {\n\t\tfilteredData = filterArrData(filteredData, \"exc\", \"CDS\", \"=\");\n\n\t\tlet inst: ReactNode = <>,\n\t\t\tnodataNode: ReactNode = <>;\n\t\t//show no data container\n\t\tif (filteredData.length === 0) {\n\t\t\tnodataNode = (\n\t\t\t\t {},\n\t\t\t\t\t\ttype: history ? \"bLink\" : \"btn\"\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t\tif (history || filteredData.length !== 0) {\n\t\t\tinst =\n\t\t\t\thandleDevice.isDesktop || handleDevice.isTablet ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t}\n\t\tsetInstrument(\n\t\t\t<>\n\t\t\t\t{inst}\n\t\t\t\t{nodataNode}\n\t\t\t\n\t\t);\n\t};\n\treturn <>{SDevWiseStateComp(priNavOptions, instrument, hidepgNav)};\n};\n\nexport default ObCurContainer;\n","import * as React from \"react\";\nimport moment from \"moment\";\nimport { ChipColorKeyComb } from \"../obConstants\";\nimport { dateFormat } from \"../../../service/dateTimeService\";\n\nexport interface ITrsHist {\n\tdate: string;\n\tstatus: string;\n}\n\nexport interface IObTransactionHistoryProps {\n\tdata: Array;\n}\n\nconst ObTransactionHistory: React.FC = props => {\n\tlet modifiedData = props.data.reduce((a, b) => {\n\t\tconst year = dateFormat(b.date).getFullYear();\n\t\tif (a[year]) {\n\t\t\ta[year].push(b);\n\t\t} else {\n\t\t\ta[year] = [b];\n\t\t}\n\t\treturn a;\n\t}, {} as { [x: string]: Array });\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t

    Transaction History

    \n\t\t\t\t{Object.keys(modifiedData).map(year => (\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t{year}-{modifiedData[year].length}/12 installments\n\t\t\t\t\t\t

    \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t{modifiedData[year].map(trsData => (\n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t{/* as per condition need to add class red green and gray */}\n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t{moment(new Date(dateFormat(trsData.date))).format(\"D MMM YYYY\")}\n\t\t\t\t\t\t\t\t\t\t{trsData.status !== \"Success\" && (\n\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\tRejected\n\t\t\t\t\t\t\t\t\t\t\t\t
      Mandate approval Failed
      \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t))}\n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default ObTransactionHistory;\n","import * as React from \"react\";\nimport EdButton from \"../../../../generic/edButton\";\nimport ObTransactionHistory from \"../obTransactionHistory\";\nimport { dateTimeFormat } from \"../../../../service/dateTimeService\";\nimport moment from \"moment\";\nimport { ChipColorKeyComb, ChipStatusComb } from \"../../obConstants\";\nimport Tag from \"../../../../generic/tag\";\nimport { AObMfSipTrsHist } from \"../../../../service/orderBook/obApiService\";\n\nexport interface IObMfSipDtlContentProps {\n\tdata: any;\n\tonCancelClick: (e: React.MouseEvent) => void;\n}\n\nexport interface IObMfSipDtlContentState {\n\ttrsHist: Array;\n}\n\nclass ObMfSipDtlContent extends React.Component {\n\tstate = { trsHist: [] };\n\n\tonButtonClick = (e: React.MouseEvent) => {\n\t\tconsole.log(e);\n\t};\n\n\tmfSipTrsHistRes = (res: any) => {\n\t\tif (res.data) {\n\t\t\tthis.setState({ trsHist: res.data.childOrderDetails.map((d: any) => ({ date: d.date, status: d.status })) });\n\t\t}\n\t};\n\n\tcomponentDidMount() {\n\t\tAObMfSipTrsHist(this.mfSipTrsHistRes, this.props.data.SIPRegNo);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    Amount
    \n\t\t\t\t\t\t\t
    {this.props.data.amount || \"--\"}
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    Frequency
    \n\t\t\t\t\t\t\t
    {this.props.data.frequency || \"--\"}
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    Installments Paid
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{this.props.data.instalementsPaid || \"--\"}/{this.props.data.totalInstalments}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    Installments Failed
    \n\t\t\t\t\t\t\t
    ---
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    Mandate id
    \n\t\t\t\t\t\t\t
    {this.props.data.mandateID || \"--\"}
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    Mandate Status
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{this.props.data.mandateSts ? (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\"--\"\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    Next Due Date
    \n\t\t\t\t\t\t\t
    {moment(dateTimeFormat(this.props.data.dueDate)).format(\"D MMM YYYY\")}
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t{/* buttons to perform different actions on click */}\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{/* button to cancel */}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t{this.state.trsHist.length >= 1 && }\n\t\t\t
    \n\t\t);\n\t}\n}\n\nexport default ObMfSipDtlContent;\n","import * as React from \"react\";\nimport EdButton from \"../../../../generic/edButton\";\nimport \"../../../../../assets/scss/components/toc/orderBook/obModifyState/obModify.scss\";\nimport \"../../../../../assets/scss/components/toc/orderBook/obDetails/obAssetDetails.scss\";\nimport \"../../../../../assets/scss/components/toc/orderBook/obDetails/obAssetDetailstab.scss\";\nimport ObAssetsDetl, { ObAssetsDetlProps } from \"../../instruments/details/obAssetsDetl\";\nimport moment from \"moment\";\nimport ObMfSiphisDtlContent from \"./obMfSipDtlContent\";\nimport { ChipStatusComb } from \"../../obConstants\";\n\nexport interface IObMfSipDtlDskProps {\n\tdata: any;\n\tonBackClick: (event: React.MouseEvent) => void; // the function to be called onClick\n\tonCancelClick: (e: React.MouseEvent) => void;\n}\n\nconst ObMfSipDtlDsk: React.FC = (props) => {\n\tconst backButtonValue = (\n\t\t<>\n\t\t\t\n\t\t\tBack\n\t\t\n\t);\n\n\tconst assetDetail: ObAssetsDetlProps = {\n\t\tdate: props.data.txnDate ? moment(new Date(props.data.txnDate)).format(\"D MMM YYYY, HH:mm:ss\") : \"\",\n\t\ttrsTyp: \"BUY\",\n\t\ttitle: props.data.schemeName,\n\t\tsts: ChipStatusComb[props.data.status.toLowerCase()]\n\t};\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{/* left menu back button */}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/* header section */}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{/* detailed content */}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default ObMfSipDtlDsk;\n","import * as React from \"react\";\nimport EdButton from \"../../../../generic/edButton\";\nimport indexer from \"../../../../types/genericTypes\";\nimport Tag from \"../../../../generic/tag\";\nimport { ChipColorKeyComb, ChipStatusComb } from \"../../obConstants\";\nimport moment from \"moment\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport { IMF, IMFSip } from \"../../../../types/components/orderBook/obTypes\";\nimport { GetNoOfDaysOrMonths } from \"../../../../service/dateTimeService\";\n\nexport interface IObMfDtlContentProps {\n\tdata: T extends keyof IMFSip ? T : IMFSip extends keyof T ? T : any;\n\tonCancelClick: (e: React.MouseEvent) => void;\n}\n\nconst ObMfDtlContent: React.FC> = (props) => {\n\tconst MfTxnType: indexer = {\n\t\tFP: \"Fresh Purchase\",\n\t\tAP: \"Add. Purchase\",\n\t\tR: \"Reedem\",\n\t\tXSIP: \"XSIP\"\n\t};\n\tconst OrdType: indexer = {\n\t\tFP: \"Lumpsum\",\n\t\tAP: \"Lumpsum\",\n\t\tR: \"Lumpsum\",\n\t\tXSIP: \"SIP\"\n\t};\n\n\tfunction onButtonClick(e: React.MouseEvent) {\n\t\tconsole.log(e);\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Amount/Units
    \n\t\t\t\t\t\t
    {props.data.amount !== \"0\" ? \"₹\" + toINR(props.data.amount, 2) : props.data.units}
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Action
    \n\t\t\t\t\t\t
    {MfTxnType[props.data.txnType] || \"--\"}
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Order Type
    \n\t\t\t\t\t\t
    {OrdType[props.data.txnType] || \"--\"}
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Investment Type
    \n\t\t\t\t\t\t
    {props.data.physicalFlag === \"D\" ? \"Demat\" : \"Physical\"}
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t{/* if transection type XSIP need to show this block */}\n\t\t\t{props.data.txnType === \"XSIP\" && (\n\t\t\t\t<>\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    Frequency
    \n\t\t\t\t\t\t\t\t
    {props.data.SIPFrequency || \"--\"}
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    Installments Paid
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{GetNoOfDaysOrMonths(props.data.txnDate, props.data.startDate, props.data.SIPFrequency.toLowerCase() as string)}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    Tenure
    \n\t\t\t\t\t\t\t\t
    {props.data.tenure || \"--\"}
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    Start Date
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{props.data.startDate ? moment(new Date(props.data.startDate)).format(\"D MMM YYYY\") : \"--\"}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    End Date
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{props.data.endDate ? moment(new Date(props.data.endDate)).format(\"D MMM YYYY\") : \"--\"}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    Mandate id
    \n\t\t\t\t\t\t\t\t
    {props.data.mandateID || \"--\"}
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    Mandate Type
    \n\t\t\t\t\t\t\t\t
    --
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    Mandate Status
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{props.data.mandateSts ? (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\"--\"\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    SIP Registration No.
    \n\t\t\t\t\t\t\t\t
    --
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t)}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Scheme Category
    \n\t\t\t\t\t\t
    --
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Scheme Type
    \n\t\t\t\t\t\t
    --
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Exchange
    \n\t\t\t\t\t\t
    --
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Return Type
    \n\t\t\t\t\t\t
    --
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Order Placed by
    \n\t\t\t\t\t\t
    {props.data.orderedBy || \"--\"}
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t{/* if transection type not XSIP need to show this block */}\n\t\t\t{props.data.txnType !== \"XSIP\" && (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    Exchange Order No.
    \n\t\t\t\t\t\t\t
    --
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    ISIN No.
    \n\t\t\t\t\t\t\t
    {props.data.ISIN || \"--\"}
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t)}\n\t\t\t{/* if transection type XSIP need to show this block */}\n\t\t\t{props.data.txnType === \"XSIP\" && (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    Order No.
    \n\t\t\t\t\t\t\t
    --
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    ISIN No.
    \n\t\t\t\t\t\t\t
    {props.data.ISIN || \"--\"}
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    Exchange Order No.
    \n\t\t\t\t\t\t\t
    --
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t)}\n\t\t\t{/* buttons to perform different actions on click */}\n\t\t\t{!props.data.history && (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{/* button to cancel */}\n\t\t\t\t\t\t{props.data.isCancel && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{/* button to modify */}\n\n\t\t\t\t\t\t{props.data.isModify && }\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default ObMfDtlContent;\n","import * as React from \"react\";\nimport ObAssetsDetl from \"../../instruments/details/obAssetsDetl\";\nimport EdButton from \"../../../../generic/edButton\";\nimport ObMfDtlContent from \"./obMfDtlContent\";\nimport \"../../../../../assets/scss/components/toc/orderBook/obModifyState/obModify.scss\";\nimport \"../../../../../assets/scss/components/toc/orderBook/obDetails/obAssetDetails.scss\";\nimport \"../../../../../assets/scss/components/toc/orderBook/obDetails/obAssetDetailstab.scss\";\nimport moment from \"moment\";\nimport { ObAssetsDetlProps } from \"../../instruments/details/obAssetsDetl\";\nimport { ChipStatusComb } from \"../../obConstants\";\n\nexport interface IObMfDtlDskProps {\n\tdata: any;\n\tonBackClick: (event: React.MouseEvent) => void; // the function to be called onClick\n\tonCancelClick: (e: React.MouseEvent) => void;\n}\n\nconst ObMfDtlDsk: React.FC = (props) => {\n\tconst backButtonValue = (\n\t\t<>\n\t\t\t\n\t\t\tBack\n\t\t\n\t);\n\n\tconst assetDetail: ObAssetsDetlProps = {\n\t\tdate: props.data.txnDate ? moment(new Date(props.data.txnDate)).format(\"D MMM YYYY, HH:mm:ss\") : \"\",\n\t\ttrsTyp: props.data.txnType !== \"R\" ? \"BUY\" : \"SELL\",\n\t\ttitle: props.data.schemeName,\n\t\tsts: ChipStatusComb[props.data.status.toLowerCase()]\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{/* left menu back button */}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{/* header section */}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{/* when status is rejected will show below content */}\n\t\t\t\t\t\t\t\t\t{props.data.remarks && props.data.status.toLowerCase() === \"rejected\" && (\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t

    Reason

    \n\t\t\t\t\t\t\t\t\t\t\t

    {props.data.remarks}

    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{/* detailed content */}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default ObMfDtlDsk;\n","import React, { useState, useEffect } from \"react\";\nimport Tag from \"../../../../generic/tag\";\nimport OverflowButton from \"../../../../generic/overflowButton\";\nimport \"../../../../../assets/scss/components/toc/orderBook/instruments/instrumentsDsk.scss\";\nimport \"../../../../../assets/scss/components/toc/orderBook/instruments/instrumentsTab.scss\";\nimport { ovrOptions, ChipColorKeyComb, scrlStCls, ChipStatusComb, getMFCancelObj, ObScrollStyle } from \"../../obConstants\";\nimport { IMF, IMFSip, IMFHold } from \"../../../../types/components/orderBook/obTypes\";\nimport ObUtilHeader from \"../../obContainer/obUtilHeader\";\nimport Sort, { sort, eSortState } from \"../../../../generic/sort\";\nimport moment from \"moment\";\nimport dateTimeFormat from \"../../../../service/dateTimeService\";\nimport indexer, { IListObj } from \"../../../../types/genericTypes\";\nimport TocNoData from \"../../../generic/tocNoData/tocNoData\";\nimport DatePickerInt from \"../../obContainer/obDatePickerInt\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport { HObGroupBy, HOb2DGroupBy } from \"../../../../service/orderBook/obGrpByHelper\";\nimport ObAssetDetailPopup from \"../../generic/obAssetDetailPopup\";\nimport ObMfSipDtlDsk from \"../../obDetails/dsk/obMfSipDtlDsk\";\nimport ObMfDtlDsk from \"../../obDetails/dsk/obMfDtlDsk\";\nimport { AMfCancelNrmTrd, AMfCancelHoldTrd } from \"./../../../../service/orderBook/obApiService\";\nimport { SearchHighLight } from \"../../../../service/generic/searchHighlight\";\nimport ee from \"../../../../utils/eventEmitter\";\n\nexport interface ObMutualFundProps {\n\tdata: Array;\n\t//true if table is history type else false\n\tisHistory?: boolean;\n\tgetDates: (frmDt: Date, toDate: Date) => void;\n\tisSip: boolean;\n\thidePageNav?: (hide: boolean) => void;\n\treRenderCall?: (value: string) => void;\n}\n\n// heading for Mutul Fund Asset table\n\nconst heading: indexer = {\n\tscheme: \"Scheme Name\",\n\tamount: \"Amount/Units\"\n};\n\nconst sortKey: indexer = {\n\tscheme: \"schemeName\",\n\tamount: \"amount\"\n};\n\n// SIP Headings\nconst headingSip = {\n\tperiod: \"Period\",\n\tsymbol: \"Symbol\",\n\tfrequency: \"Frequency\",\n\tnext: \"Next\",\n\tamount: \"Amount\"\n};\n\nconst ObMutualFund: React.FC = (props) => {\n\t//holds executed order count ref\n\tconst exeCountRef = React.useRef();\n\t//Show Open Ords on Top or not ref state\n\tconst OpenOrdsTopRef = React.useRef();\n\tconst ovrOpts: Array = ovrOptions;\n\tif (props.data.length && !props.isHistory) {\n\t\tfor (let i = 0; i < props.data.length; i++) {\n\t\t\tvar temp: Array = [];\n\t\t\tlet dp: IMF = props.data[i];\n\t\t\tlet dpSip: IMFSip = props.data[i];\n\t\t\t//current day order options\n\t\t\tif (!props.isSip) {\n\t\t\t\tif (dp.isModify as boolean) {\n\t\t\t\t\ttemp.push(ovrOpts[0]);\n\t\t\t\t}\n\t\t\t\tif (dp.isCancel) {\n\t\t\t\t\ttemp.push(ovrOpts[1]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t//sip options\n\t\t\tif (props.isSip) {\n\t\t\t\tif (dpSip.isCancel) {\n\t\t\t\t\ttemp.push(ovrOpts[0]);\n\t\t\t\t}\n\t\t\t\tif (dpSip.isModified) {\n\t\t\t\t\ttemp.push(ovrOpts[1]);\n\t\t\t\t}\n\t\t\t}\n\t\t\ttemp.push(ovrOpts[4]);\n\t\t\tdp[\"ovrOpts\"] = temp;\n\t\t}\n\t}\n\t// tableData data is shown in the table\n\t// tableData contains, sorted, filtered, searched data\n\t// wherever initial data needs to be sent, send initialData\n\tconst initialData = [props.data.map((data: any, index: number) => ({ ...data, id: index, history: props.isHistory }))];\n\n\t// filteredData contains filtered, searched data\n\tconst [filteredData, setFilteredData] = React.useState>>(initialData);\n\n\t// let filteredData: Array = initialData;\n\n\t// tableData is shown in the table\n\t// tableData contains sorted, filtered, searched data\n\tlet [tableData, setTableData] = useState(initialData);\n\n\tlet mfHistoryData: Array<{ [x: string]: Array }> = [{}];\n\tuseEffect(() => {\n\t\tsetTableData([props.data.map((data: any, index: number) => ({ ...data, id: index, history: props.isHistory }))]);\n\t\t//ref to initial toggle state of show open orders on top\n\t\tOpenOrdsTopRef.current = true;\n\t\t// check that props.data is not undefined/null, group it(open and others) and update tabledata\n\n\t\tif (props.data) {\n\t\t\tif (!props.isHistory && OpenOrdsTopRef.current) {\n\t\t\t\tlet temp0: Array = [];\n\t\t\t\tif (!props.isSip) {\n\t\t\t\t\ttemp0 = HOb2DGroupBy(props.data, \"status\", [\"accepted\"]);\n\t\t\t\t\texeCountRef.current = temp0[1].length;\n\t\t\t\t}\n\t\t\t\tif (props.isSip) {\n\t\t\t\t\ttemp0 = HOb2DGroupBy(props.data, \"status\", [\"running\"]);\n\t\t\t\t}\n\t\t\t\tsetTableData(temp0);\n\t\t\t}\n\t\t}\n\n\t\treturn () => {\n\t\t\tsetTableData([[{}]]);\n\t\t};\n\t}, [props.data, props.isHistory, props.isSip]);\n\t//kept outside because state data updating in async mode\n\tif (props.isHistory) {\n\t\tmfHistoryData = tableData.map((group: any) => HObGroupBy(group, \"txnDate\", \"T\"));\n\t}\n\n\tconst [sortedColumnState, setSortedColumnState] = useState({ colName: null as string | null, sortState: eSortState.ASC });\n\n\t// state for mf popup handling\n\tconst [popupDataIndex, setPopupDataIndex] = React.useState<[number | string, number, string?]>();\n\n\tfunction onSort(data: Array>, sortState: eSortState, sortKey: string) {\n\t\tsetSortedColumnState({ colName: heading[sortKey], sortState: sortState });\n\t\tsetTableData(data);\n\t}\n\n\tconst MfTxnType: indexer = {\n\t\tFP: \"Fresh Purchase\",\n\t\tAP: \"Add. Purchase\",\n\t\tR: \"Reedem\",\n\t\tXSIP: \"XSIP\"\n\t};\n\n\t//after applying filters following method will invoked to show the updated results\n\tfunction onDataFilter(data: Array, sText: string = \"\", type?: string) {\n\t\tsetFilteredData(data);\n\n\t\t// sort only if colName is present, otherwise there is no need to sort\n\t\tif (sortedColumnState.colName) {\n\t\t\tconst colNameKey = Object.keys(heading).find((key) => heading[key] === sortedColumnState.colName)!;\n\t\t\tsort(data, sortedColumnState.sortState, sortKey[colNameKey], onSort);\n\t\t}\n\t\t//highlightes the search text\n\t\tif (sText) {\n\t\t\tconst SearchText: string = sText.toLowerCase();\n\t\t\tdata[0].map((ord: IMF) => {\n\t\t\t\tord.schemeName = SearchHighLight(ord.schemeName, SearchText);\n\t\t\t\treturn true;\n\t\t\t});\n\t\t}\n\n\t\tif (type === \"search\" && OpenOrdsTopRef.current && !props.isHistory) {\n\t\t\tsetTableData(HOb2DGroupBy(data[0], \"status\"));\n\t\t} else {\n\t\t\tsetTableData(data);\n\t\t}\n\t}\n\t// this function excute on clicking any row\n\tfunction onRowClick(data: IMF | IMFSip, groupIndex: number | string, index: number, e?: any) {\n\t\tif (\n\t\t\te &&\n\t\t\t!e.nativeEvent.path.find((m: HTMLElement) => m.className && (m.className.indexOf(\"check\") >= 0 || m.className.indexOf(\"menu\") >= 0))\n\t\t) {\n\t\t\tsetPopupDataIndex([groupIndex, index]);\n\t\t}\n\t}\n\t//overflow option selection\n\n\tfunction optSelection(id: string | number, data: any) {\n\t\tid = typeof id === \"string\" ? id.toLowerCase() : id;\n\t\tswitch (id) {\n\t\t\tcase \"details\":\n\t\t\t\tsetPopupDataIndex([data.gI, data.ind]);\n\t\t\t\tbreak;\n\t\t\tcase \"cancel\":\n\t\t\t\tcancelOrder(data.data);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tconsole.log(\"404\");\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tlet ordCancelledSuccList: Array = [],\n\t\tordCancelledFailList: Array = [],\n\t\tordsListToCancel: Array = [];\n\n\t// runs after all cancel api response\n\tfunction cancelCallback(res: any) {\n\t\tif (res.data) {\n\t\t\t// if success\n\t\t\tordCancelledSuccList.push(res.data);\n\t\t} else {\n\t\t\t// if error\n\t\t\tordCancelledFailList.push(res.error);\n\t\t}\n\n\t\t// when we get all the responses\n\t\tif (ordCancelledSuccList.length + ordCancelledFailList.length === ordsListToCancel.length) {\n\t\t\t//show toast message\n\t\t\tee.emit(\"showToast\", { message: `Cancelled ${ordsListToCancel.length} Orders`, color: \"cancell\" });\n\t\t\tprops.reRenderCall && props.reRenderCall(\"today\");\n\t\t}\n\t}\n\n\t// TO DISCUSS: Whick paramenters to send in the body of AMfCancelNrmTrd in both sip and normal\n\tfunction cancelOrder(data: IMF | IMFSip | IMFHold) {\n\t\tordsListToCancel.push(data.txnID);\n\t\tif (data.status.toLowerCase() === \"on hold\") {\n\t\t\tAMfCancelHoldTrd(cancelCallback, getMFCancelObj(data));\n\t\t} else {\n\t\t\tAMfCancelNrmTrd(cancelCallback, getMFCancelObj(data));\n\t\t}\n\t}\n\n\tfunction mfRow(item: IMF, groupIndex: number, index: number) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t
  • onRowClick(item, groupIndex, index, e)}>\n\t\t\t\t\t
    \n\t\t\t\t\t\t{item.txnTime}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{MfTxnType[item.txnType]}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{item.amount !== \"0\" ? \"₹\" + toINR(item.amount, 2) : item.units}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t{!props.isHistory && (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t optSelection(id, data)}\n\t\t\t\t\t\t\t\tonHover={true}\n\t\t\t\t\t\t\t\tdata={{\n\t\t\t\t\t\t\t\t\tdata: item,\n\t\t\t\t\t\t\t\t\tgI: groupIndex,\n\t\t\t\t\t\t\t\t\tind: index\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\t\t\t\t
  • \n\t\t\t\n\t\t);\n\t}\n\tfunction nonSip() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t
    \n\t\t\t\t\t{/* ob Equity Header Row */}\n\t\t\t\t\t{((props.isHistory && initialData[0].length > 0) || !props.isHistory) && (\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t{!props.isHistory && (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t{props.isHistory && heading.scheme}\n\t\t\t\t\t\t\t\t
      \n\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
      {heading.amount}
      \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{!props.isHistory &&
      }\n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\t\t\t\t\t
    0 ? \"ObScrollCont\" : \"\"} style={ObScrollStyle(props.data.length > 0 ? true : false)}>\n\t\t\t\t\t\t{props.isHistory || props.isSip ? (\n\t\t\t\t\t\t\tmfHistoryData.map((group: any, groupIndex: number) =>\n\t\t\t\t\t\t\t\tObject.keys(group).map((date: any, index) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t
    • {moment(date).format(\"DD MMMM YYYY\")}
    • \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t{group[date].map((row: any, index: number) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t{mfRow(row, date, index)}\n\t\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t!!tableData.length &&\n\t\t\t\t\t\t\t\t\t\ttableData.map((group: any, groupIndex: number) =>\n\t\t\t\t\t\t\t\t\t\t\t// Object.keys(group).map((grp: any, index) =>\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{group.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* {tableData.map((group, groupIndex) => */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{group.map((row: any, index: number) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{mfRow(row, groupIndex, index)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* )} */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t// )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t);\n\t}\n\n\tfunction sipOrders() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t{/* ob MF SIP Header Row */}\n\n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t\t\t
      {headingSip.period}
      \n\t\t\t\t\t\t
      {headingSip.symbol}
      \n\t\t\t\t\t\t
      {headingSip.frequency}
      \n\t\t\t\t\t\t
      {headingSip.next}
      \n\t\t\t\t\t\t
      {headingSip.amount}
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\n\t\t\t\t{\n\t\t\t\t\t!!tableData.length &&\n\t\t\t\t\t\ttableData.map((group: any, groupIndex: number) =>\n\t\t\t\t\t\t\t// Object.keys(group).map((grp: any, index) =>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t 0 ? \"ObScrollCont\" : \"\"}\n\t\t\t\t\t\t\t\t\t\tstyle={ObScrollStyle(props.data.length > 0 ? true : false)}\n\t\t\t\t\t\t\t\t\t\tkey={groupIndex}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{group.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t{/* {tableData.map((group, groupIndex) => */}\n\t\t\t\t\t\t\t\t\t\t\t\t{group.map((item: IMFSip, index: number) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t onRowClick(item, groupIndex, index, e)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{moment(dateTimeFormat(item.SIPStartDate)).format(\"DD MMM ‘YY\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{moment(dateTimeFormat(item.SIPEndDate)).format(\"DD MMM ‘YY\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.frequency.toLowerCase()} (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.status.toLowerCase() === \"running\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? parseInt(item.totalInstalments) - parseInt(item.instalmentsPending)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 0}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/{item.totalInstalments})\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* 21 Dec 19 */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.nextDueDate ? item.nextDueDate : \"--\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t₹{toINR(item.amount, 3)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t optSelection(id, data)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonHover={true}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tordData: item,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgI: groupIndex,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tind: index\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t)\n\t\t\t\t\t// )\n\t\t\t\t}\n\t\t\t\n\t\t);\n\t}\n\treturn (\n\t\t<>\n\t\t\t{/* UH start */}\n\t\t\t\n\t\t\t\t\t\t\t{props.isSip ? \"Active SIPs\" : \"Executed Orders\"}: \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{!props.isSip\n\t\t\t\t\t\t\t\t\t? exeCountRef.current + \" /\" + initialData[0].length\n\t\t\t\t\t\t\t\t\t: tableData[0]\n\t\t\t\t\t\t\t\t\t? tableData[0].filter((row: IMFSip) => row.status.toLowerCase() === \"running\").length\n\t\t\t\t\t\t\t\t\t: 0}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tdata={initialData}\n\t\t\t\tsearchKey=\"schemeName\"\n\t\t\t\tonDataFilter={onDataFilter}\n\t\t\t\tonFilterClick={(tgl) => {\n\t\t\t\t\tOpenOrdsTopRef.current = tgl;\n\t\t\t\t}}\n\t\t\t\tfilterReqData={{\n\t\t\t\t\tstatus: \"status\",\n\t\t\t\t\taType: props.isSip ? \"mfSip\" : \"mf\",\n\t\t\t\t\tshowOpenOrderOnTop: OpenOrdsTopRef.current,\n\t\t\t\t\tshowOpenOrderTgl: props.isHistory ? false : true,\n\t\t\t\t\tisHistory: props.isHistory ? true : false\n\t\t\t\t}}\n\t\t\t\tonSearchClick={(e) => {\n\t\t\t\t\t// if exists, then call it\n\t\t\t\t\t// props.hidePageNav && props.hidePageNav(e);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{/* UH end */}\n\n\t\t\t{!props.isSip && nonSip()}\n\t\t\t{props.isSip && sipOrders()}\n\t\t\t{(tableData.filter((g: Array) => g.length > 0).length <= 0 || mfHistoryData.length <= 0) && initialData[0].length > 0 && (\n\t\t\t\t\n\t\t\t)}\n\t\t\t{/* tableData[groupIndex][index] */}\n\t\t\t{popupDataIndex && (\n\t\t\t\t\n\t\t\t\t\t{props.isSip ? (\n\t\t\t\t\t\t setPopupDataIndex(undefined)}\n\t\t\t\t\t\t\tonCancelClick={() => cancelOrder(tableData[popupDataIndex[0] as number][popupDataIndex[1]])}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t setPopupDataIndex(undefined)}\n\t\t\t\t\t\t\tonCancelClick={() => cancelOrder(tableData[popupDataIndex[0] as number][popupDataIndex[1]])}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default ObMutualFund;\n","import * as React from \"react\";\nimport EdButton from \"../../../../generic/edButton\";\nimport ObMfDtlContent from \"../dsk/obMfDtlContent\";\nimport ObAssetsDetlMob from \"../../instruments/details/obAssetsDetlMob\";\nimport \"../../../../../assets/scss/components/toc/orderBook/obDetails/obAssetDetailsMob.scss\";\nimport moment from \"moment\";\nimport { ObAssetsDetlProps } from \"../../instruments/details/obAssetsDetl\";\nimport { ChipStatusComb } from \"../../obConstants\";\n\nexport interface IObMfDtlMobProps {\n\tdata: any;\n\tonBackClick: (event: React.MouseEvent) => void; // the function to be called onClick\n\tonCancelClick: (e: React.MouseEvent) => void;\n}\n\nconst ObMfDtlMob: React.FC = (props) => {\n\tconst backButtonValue = (\n\t\t<>\n\t\t\t\n\t\t\tBack\n\t\t\n\t);\n\n\tconst assetDetail: ObAssetsDetlProps = {\n\t\tdate: props.data.txnDate ? moment(new Date(props.data.txnDate)).format(\"D MMM YYYY, HH:mm:ss\") : \"\",\n\t\ttrsTyp: \"BUY\",\n\t\ttitle: props.data.schemeName,\n\t\tsts: ChipStatusComb[props.data.status.toLowerCase()]\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t{/* when status is rejected will show below content */}\n\t\t\t\t\t\t{props.data.remarks && props.data.status.toLowerCase() === \"rejected\" && (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t

    Reason

    \n\t\t\t\t\t\t\t\t

    {props.data.remarks}

    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default ObMfDtlMob;\n","import * as React from \"react\";\nimport EdButton from \"../../../../generic/edButton\";\nimport ObAssetsDetlMob from \"../../instruments/details/obAssetsDetlMob\";\nimport \"../../../../../assets/scss/components/toc/orderBook/obDetails/obAssetDetailsMob.scss\";\nimport { ObAssetsDetlProps } from \"./../../instruments/details/obAssetsDetl\";\nimport moment from \"moment\";\nimport ObMfSiphisDtlContent from \"../dsk/obMfSipDtlContent\";\nimport { ChipStatusComb } from \"../../obConstants\";\n\nexport interface IObMfSipDtlMobProps {\n\tdata: any;\n\tonBackClick: (event: React.MouseEvent) => void; // the function to be called onClick\n\tonCancelClick: (e: React.MouseEvent) => void;\n}\n\nconst ObMfSipDtlMob: React.FC = (props) => {\n\tconst backButtonValue = (\n\t\t<>\n\t\t\t\n\t\t\tBack\n\t\t\n\t);\n\n\tconst assetDetail: ObAssetsDetlProps = {\n\t\tdate: props.data.txnDate ? moment(new Date(props.data.txnDate)).format(\"D MMM YYYY, HH:mm:ss\") : \"\",\n\t\ttrsTyp: \"BUY\",\n\t\ttitle: props.data.schemeName,\n\t\tsts: ChipStatusComb[props.data.status.toLowerCase()]\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{/* detailed content */}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default ObMfSipDtlMob;\n","import React, { useState, useEffect } from \"react\";\nimport Tag from \"../../../../generic/tag\";\nimport \"../../../../../assets/scss/components/toc/orderBook/instruments/instrumentsMob.scss\";\nimport { ChipColorKeyComb, ChipStatusComb, scrlStCls, getMFCancelObj } from \"../../obConstants\";\nimport { IMF, IMFSip, IMFHold } from \"../../../../types/components/orderBook/obTypes\";\nimport { HOb2DGroupBy, HObGroupBy } from \"../../../../service/orderBook/obGrpByHelper\";\nimport indexer from \"../../../../types/genericTypes\";\nimport ObUtilHeader from \"../../obContainer/obUtilHeader\";\nimport DatePickerInt from \"../../obContainer/obDatePickerInt\";\nimport moment from \"moment\";\nimport dateTimeFormat from \"../../../../service/dateTimeService\";\nimport TocNoData from \"../../../generic/tocNoData/tocNoData\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport ObAssetDetailPopup from \"../../generic/obAssetDetailPopup\";\nimport ObMfDtlMob from \"../../obDetails/mob/obMfDtlMob\";\nimport ObMfSipDtlMob from \"../../obDetails/mob/obMfSipDtlMob\";\nimport { AMfCancelHoldTrd, AMfCancelNrmTrd } from \"../../../../service/orderBook/obApiService\";\nimport ee from \"../../../../utils/eventEmitter\";\nimport { SearchHighLight } from \"../../../../service/generic/searchHighlight\";\n\nexport interface IObMutualFundMobProps {\n\tdata: Array;\n\t//true if table is history type else false\n\tisHistory?: boolean;\n\tgetDates: (frmDt: Date, toDate: Date) => void;\n\tisSip: boolean;\n\thidePageNav?: (hide: boolean) => void;\n\treRenderCall?: (value: string) => void;\n}\n\nconst ObMutualFundMob: React.FC = (props) => {\n\t// tableData data is shown in the table\n\t// tableData contains, sorted, filtered, searched data\n\t// wherever initial data needs to be sent, send initialData\n\tconst initialData = [props.data.map((data: any, index: number) => ({ ...data, id: index }))];\n\n\t// tableData is shown in the table\n\t// tableData contains sorted, filtered, searched data\n\tlet [tableData, setTableData] = useState(initialData);\n\t//holds executed order count ref\n\tconst exeCountRef = React.useRef();\n\t//Show Open Ords on Top or not ref state\n\tconst OpenOrdsTopRef = React.useRef();\n\tlet mfHistoryData: Array<{ [x: string]: Array }> = [{}];\n\tuseEffect(() => {\n\t\tsetTableData([props.data]);\n\t\t//ref to initial toggle state of show open orders on top\n\t\tOpenOrdsTopRef.current = true;\n\t\t// check that props.data is not undefined/null, group it(open and others) and update tabledata\n\n\t\tif (props.data) {\n\t\t\tif (!props.isHistory && !props.isSip && OpenOrdsTopRef.current) {\n\t\t\t\tlet temp0 = HOb2DGroupBy(props.data, \"status\", [\"accepted\"]);\n\n\t\t\t\texeCountRef.current = temp0[1].length;\n\t\t\t\tsetTableData(temp0);\n\t\t\t}\n\t\t}\n\n\t\treturn () => {\n\t\t\tsetTableData([[{}]]);\n\t\t};\n\t}, [props.data, props.isHistory, props.isSip]);\n\t//kept outside because state data updating in async mode\n\n\tif (props.isHistory) {\n\t\tmfHistoryData = tableData.map((group: any) => HObGroupBy(group, \"txnDate\", \"T\"));\n\t}\n\n\t// state for mf popup handling\n\tconst [popupDataIndex, setPopupDataIndex] = React.useState<[number, number, string?]>();\n\n\t// this function excute on clicking any row\n\tfunction onRowClick(data: IMF | IMFSip, groupIndex: number, index: number) {\n\t\tsetPopupDataIndex([groupIndex, index, props.isHistory ? (data as IMF).txnDate.split(\"T\")[0] : undefined]);\n\t}\n\n\tconst MfTxnType: indexer = {\n\t\tFP: \"Fresh Purchase\",\n\t\tAP: \"Add. Purchase\",\n\t\tR: \"Reedem\",\n\t\tXSIP: \"XSIP\"\n\t};\n\n\tfunction onDataFilter(data: Array, sText: string = \"\", type?: string) {\n\t\t//highlightes the search text\n\t\tif (sText) {\n\t\t\tconst SearchText: string = sText.toLowerCase();\n\t\t\tdata[0].map((ord: IMF) => {\n\t\t\t\tord.schemeName = SearchHighLight(ord.schemeName, SearchText);\n\t\t\t\treturn true;\n\t\t\t});\n\t\t}\n\n\t\tif (type === \"search\" && OpenOrdsTopRef.current && !props.isHistory) {\n\t\t\tsetTableData(HOb2DGroupBy(data[0], \"status\"));\n\t\t} else {\n\t\t\tsetTableData(data);\n\t\t}\n\t}\n\n\tlet ordCancelledSuccList: Array = [],\n\t\tordCancelledFailList: Array = [],\n\t\tordsListToCancel: Array = [];\n\n\t// runs after all cancel api response\n\tfunction cancelCallback(res: any) {\n\t\tif (res.data) {\n\t\t\t// if success\n\t\t\tordCancelledSuccList.push(res.data);\n\t\t} else {\n\t\t\t// if error\n\t\t\tordCancelledFailList.push(res.error);\n\t\t}\n\n\t\t// when we get all the responses\n\t\tif (ordCancelledSuccList.length + ordCancelledFailList.length === ordsListToCancel.length) {\n\t\t\t//show toast message\n\t\t\tee.emit(\"showToast\", { message: `Cancelled ${ordsListToCancel.length} Orders`, color: \"cancell\" });\n\t\t\tprops.reRenderCall && props.reRenderCall(\"today\");\n\t\t}\n\t}\n\n\tfunction cancelOrder(data: IMF | IMFSip | IMFHold) {\n\t\tordsListToCancel.push(data.txnID);\n\n\t\tif (data.status.toLowerCase() === \"on hold\") {\n\t\t\tAMfCancelHoldTrd(cancelCallback, getMFCancelObj(data));\n\t\t} else {\n\t\t\tAMfCancelNrmTrd(cancelCallback, getMFCancelObj(data));\n\t\t}\n\t}\n\n\tfunction mfRow(item: IMF, groupIndex: number, index: number) {\n\t\treturn (\n\t\t\t
    onRowClick(item, groupIndex, index)}>\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    {item.txnTime}
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    {MfTxnType[item.txnType]}
    \n\t\t\t\t\t\t
    {item.amount !== \"0\" ? \"₹\" + toINR(item.amount, 2) : item.units}
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n\tfunction nonSip() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t
    \n\t\t\t\t\t{props.isHistory || props.isSip ? (\n\t\t\t\t\t\tmfHistoryData.map((group: any, groupIndex: number) =>\n\t\t\t\t\t\t\tObject.keys(group).map((date: any, index) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t
    • {moment(dateTimeFormat(date)).format(\"DD MMMM YYYY\")}
    • \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t{group[date].map((row: any, index: number) => (\n\t\t\t\t\t\t\t\t\t\t\t\t{mfRow(row, groupIndex, index)}\n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t)\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t!!tableData.length &&\n\t\t\t\t\t\t\t\t\ttableData.map((group: any, groupIndex: number) =>\n\t\t\t\t\t\t\t\t\t\t// Object.keys(group).map((grp: any, index) =>\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{group.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* {tableData.map((group, groupIndex) => */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{group.map((row: any, index: number) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{mfRow(row, groupIndex, index)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* )} */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t// )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{!tableData.length && }\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t\n\t\t);\n\t}\n\n\tfunction sipOrders() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{!!tableData.length &&\n\t\t\t\t\ttableData.map((group: any, groupIndex: number) =>\n\t\t\t\t\t\t// Object.keys(group).map((grp: any, index) =>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{group.map((item: IMFSip, index: number) => (\n\t\t\t\t\t\t\t\t\t\t
    onRowClick(item, groupIndex, index)}>\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\tNext:\n\t\t\t\t\t\t\t\t\t\t\t\t\t{moment(dateTimeFormat(item.nextDueDate)).format(\"DD MMM ’YY\")}\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.frequency.toLowerCase()} (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.status.toLowerCase() === \"running\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? parseInt(item.totalInstalments) - parseInt(item.instalmentsPending)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 0}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/{item.totalInstalments})\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.units ? item.units : \"--\"} Qty\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    {item.amount ? \"₹\" + toINR(item.amount, 0) : \"--\"}
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t// )\n\t\t\t\t\t\t}\n\t\t\t\t\t)}\n\t\t\t\t{!tableData.length && }\n\t\t\t\n\t\t);\n\t}\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t\t\t\t{props.isSip ? \"Active SIPs\" : \"Executed Orders\"}: \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{!props.isSip\n\t\t\t\t\t\t\t\t\t? exeCountRef.current + \" /\" + initialData[0].length\n\t\t\t\t\t\t\t\t\t: tableData[0].filter((row: IMFSip) => row.status.toLowerCase() === \"running\").length}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t) : props.isHistory ? (\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tdata={initialData}\n\t\t\t\tsearchKey=\"cpName;dpName;trdSym\"\n\t\t\t\tonDataFilter={onDataFilter}\n\t\t\t\tonSelectClick={undefined}\n\t\t\t\tonFilterClick={(tgl) => {\n\t\t\t\t\tOpenOrdsTopRef.current = tgl;\n\t\t\t\t}}\n\t\t\t\tfilterReqData={{\n\t\t\t\t\tstatus: \"status\",\n\t\t\t\t\taType: props.isSip ? \"mfSip\" : \"mf\",\n\t\t\t\t\tshowOpenOrderOnTop: OpenOrdsTopRef.current,\n\t\t\t\t\tshowOpenOrderTgl: props.isHistory ? false : true,\n\t\t\t\t\tisHistory: props.isHistory ? true : false\n\t\t\t\t}}\n\t\t\t\tonSearchClick={(e) => {\n\t\t\t\t\tsetTableData(initialData);\n\t\t\t\t\t// if exists, then call it\n\t\t\t\t\tprops.hidePageNav && props.hidePageNav(e);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{!props.isSip && nonSip()}\n\t\t\t{props.isSip && sipOrders()}\n\t\t\t{/* tableData[groupIndex][index] */}\n\t\t\t{popupDataIndex && (\n\t\t\t\t\n\t\t\t\t\t{props.isSip ? (\n\t\t\t\t\t\t setPopupDataIndex(undefined)}\n\t\t\t\t\t\t\tonCancelClick={() => cancelOrder(tableData[popupDataIndex[0]][popupDataIndex[1]])}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t setPopupDataIndex(undefined)}\n\t\t\t\t\t\t\tonCancelClick={() => cancelOrder(tableData[popupDataIndex[0]][popupDataIndex[1]])}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default ObMutualFundMob;\n","import React, { ReactNode } from \"react\";\nimport DeviceContext from \"../../../../service/indentifyDevice\";\nimport { AObMfReq, AObMfHist, AObMfSip } from \"../../../../service/orderBook/obApiService\";\n\nimport { mfNav } from \"../../obConstants\";\nimport { Idevice } from \"../../../../types/device\";\nimport moment from \"moment\";\nimport NoDataContainer from \"../../../../generic/noDataContainer\";\nimport { SDevWiseStateComp } from \"../obDeviceComp\";\n\nimport ObMutualFund from \"../../instruments/secondaryMarket/obMutualFund\";\nimport ObMutualFundMob from \"../../instruments/secondaryMarket/obMutualFundMob\";\nimport Loader, { SLoader } from \"../../../../generic/loader\";\nimport { IListObj } from \"../../../../types/genericTypes\";\n\nexport interface IObMfContainerProps {\n\tmatch?: any;\n}\n\nconst ObMfContainer: React.FC = (props) => {\n\tconst [hidepgNav, setHidePageNav] = React.useState(false);\n\tconst [instrument, setInstrument] = React.useState(<>);\n\tlet filteredData: Array<{}> = [];\n\tconst obLoader = (\n\t\t
    \n\t\t\t\n\t\t
    \n\t);\n\n\t// priNavOptions do not change (no need of state)\n\tconst priNavOptions: Array = [\n\t\t{ value: \"today\", display: \"Today's orders\", href: mfNav.today },\n\t\t{ value: \"history\", display: \"History\", href: mfNav.history },\n\t\t{ value: \"sip\", display: \"SIP Orders\", href: mfNav.sip }\n\t];\n\n\t//url params controlled vars\n\tlet activeSecNav: string = props.match.params.secNav.toLowerCase();\n\tlet history: boolean = props.match.params.pageNav === priNavOptions[1].value ? true : false;\n\tlet sip: boolean = props.match.params.pageNav === priNavOptions[2].value ? true : false;\n\tlet isLoading: boolean = false;\n\n\tconst setNHandle = (data: any) => {\n\t\tfilteredData = data;\n\t\thandleSecNav(activeSecNav);\n\t};\n\n\tconst mfOrderBookRes = (res: any) => {\n\t\tres.data ? setNHandle(res.data.ordLst) : setNHandle([]);\n\t};\n\n\tconst mfOrderBookHistRes = (res: any) => {\n\t\tif (history) {\n\t\t\tisLoading = false;\n\n\t\t\tres.data ? setNHandle(res.data.ordLst) : setNHandle([]);\n\t\t}\n\t};\n\n\tconst mfSipOrderBook = (res: any) => {\n\t\tif (sip) {\n\t\t\tres.data ? setNHandle(res.data.sipOrdLst) : setNHandle([]);\n\t\t}\n\t};\n\n\t//handle page navigation today's, history data\n\tconst handlePageNav = (selectVal: string) => {\n\t\tswitch (selectVal) {\n\t\t\tcase \"history\":\n\t\t\t\thistory = true;\n\t\t\t\tsip = false;\n\t\t\t\tisLoading = true;\n\n\t\t\t\tsetNHandle([]);\n\t\t\t\tbreak;\n\t\t\tcase \"today\":\n\t\t\t\thistory = false;\n\t\t\t\tsip = false;\n\t\t\t\tsetInstrument(obLoader);\n\t\t\t\tAObMfReq(mfOrderBookRes);\n\t\t\t\tbreak;\n\t\t\tcase \"sip\":\n\t\t\t\thistory = false;\n\t\t\t\tsip = true;\n\t\t\t\tsetInstrument(obLoader);\n\t\t\t\tAObMfSip(mfSipOrderBook);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tconsole.log(\"not found\");\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tconst getDates = (fromDt: Date, toDate: Date) => {\n\t\tif (history) {\n\t\t\tAObMfHist(mfOrderBookHistRes, moment(fromDt).format(\"DD/MM/YYYY\"), moment(toDate).format(\"DD/MM/YYYY\"));\n\t\t}\n\t};\n\n\tconst handleDevice: Idevice = DeviceContext();\n\t//toggler to show and hide the page navigation in the events of any operation\n\tconst hidePageNav = (toggle: boolean) => {\n\t\tsetHidePageNav(toggle);\n\t};\n\n\t//handles section navigation based on page navigation\n\tconst handleSecNav = (nav: string) => {\n\t\tlet inst: ReactNode = <>,\n\t\t\tnodataNode: ReactNode = <>;\n\n\t\t//show no data container\n\t\tif (filteredData.length === 0) {\n\t\t\tnodataNode = (\n\t\t\t\t {},\n\t\t\t\t\t\ttype: history ? \"bLink\" : \"btn\"\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t\tif (history || filteredData.length !== 0) {\n\t\t\tinst =\n\t\t\t\thandleDevice.isDesktop || handleDevice.isTablet ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t}\n\t\tsetInstrument(\n\t\t\t<>\n\t\t\t\t{inst}\n\t\t\t\t{((history && !isLoading) || !history) && nodataNode}\n\t\t\t\t{history && isLoading && SLoader(20, \"blue\")}\n\t\t\t\n\t\t);\n\t};\n\tReact.useEffect(() => {\n\t\thandlePageNav(props.match.params.pageNav);\n\t}, [props.match.params.pageNav]);\n\treturn <>{SDevWiseStateComp(priNavOptions, instrument, hidepgNav)};\n};\n\nexport default ObMfContainer;\n","export default interface indexer {\n\t[indexer: string]: any; //indexer\n}\n\nexport interface jwtToken {\n\tnbf: number;\n\tiat: number;\n\texp: number;\n\tuser: {\n\t\tUserName: string;\n\t\tAi: string;\n\t\tCAi: any;\n\t\tName: string;\n\t\tempCategory: string;\n\t\tUserType: number;\n\t\tRoles: null;\n\t};\n\tauth_token: string;\n\tv_auth_token: string;\n\tusername: string;\n\tisImpersonated: boolean;\n\taccType: string;\n\tdealerid: string;\n\tempcodetxt: string;\n\tlgnSrc?: string;\n}\n\nexport interface appIdKey {\n\tapp: number;\n\tappid: string;\n\tav: string;\n\tbd: string;\n\texp: number;\n\tff: string;\n\tiat: number;\n\tiss: string;\n\tnbf: number;\n\tsrc: string;\n}\n\n// can contain only two strings: \"BUY\" or \"SELL\"\nexport enum EBuyOrSell {\n\tBUY = \"BUY\",\n\tSELL = \"SELL\"\n}\n\nexport interface IListObj {\n\thref?: string | undefined;\n\tvalue: number | string;\n\tdisplay: string;\n\tprimary?: boolean;\n}\n\n// sabita/FamilyObj\nexport interface FamilyObj {\n\thref?: string | undefined;\n\tvalue: number | string;\n\tdisplay: string;\n\tprimary?: boolean;\n}\n//\nexport interface IDomain {\n\troot: string;\n\tweb_mw: string;\n\tweb_reports: string;\n\tmoui: string;\n\tmoui_penny_drop: string;\n\tstreamUrl: string;\n\tjmw: string;\n\tjmw_eq: string;\n\tjmw_eq_eq: string;\n\tjmw_comm: string;\n\tjmw_mf: string;\n\tjmw_sr: string;\n\tjmw_nse: string;\n\tjmw_content: string;\n\tjmw_login: string;\n\ttradeService: string;\n\tedelService: string;\n\tappId: string;\n\tappIdKey: string;\n\trootUrl: string;\n\tclient_Id: string;\n\treDirectUrl: string;\n\twhatsapp_consent: string;\n}\n\nexport type TAccDataRes = {\n\taccTyp: string;\n\taccs: IAccDataAccs;\n\tadhrEQ?: IAccDataAdhrEqCom;\n\tadhrCOM?: IAccDataAdhrEqCom;\n\tcnsntLst: Array;\n\toptCnsts?: Array;\n\tdfPrds: { [x: string]: TBySl };\n\tdfPrdsMTF: { [x: string]: TBySl };\n\texcs: Array;\n\tgtdGtcValDays: string;\n\tmrgAccDts: { emIds?: Array; phNos: Array; uids: Array };\n\tmrgSts: string;\n\tmtf: { popFl: string; sts: string };\n\tordTypes: Array<{ key: string; value: string }>;\n\tothAccDts: { accTyp: string; isAct: boolean; isOnline: boolean; uid: string };\n\tprds: { exc: string; prd: Array<{ prdDpNm: string; prdVal: string; validity: Array }> };\n\tsts: string;\n\ttype: string;\n\tval: Array<{ exc: string; validity: Array }>;\n};\n\nexport type TAccData = ObjectConcat<\n\tTAccDataRes,\n\t{\n\t\tuserID: IAccDataAccs[\"uid\"];\n\t\tmtf: TAccDataRes[\"mtf\"][\"sts\"];\n\t\tadhrEQ: { stat: TAccDataRes[\"adhrEQ\"]; brkCode: IAccDataAccs[\"eqBrk\"] };\n\t\tadhrCOM: { stat: TAccDataRes[\"adhrCOM\"]; brkCode: IAccDataAccs[\"coBrk\"] };\n\t\tcoAccID: IAccDataAccs[\"coAccID\"];\n\t\teqAccID: IAccDataAccs[\"eqAccID\"];\n\t\teqRmRt: IAccDataAccs[\"eqRmRt\"];\n\t\teqAccName: IAccDataAccs[\"eqAccName\"];\n\t\tcoAccName: IAccDataAccs[\"coAccName\"];\n\t\tprfId: IAccDataAccs[\"prfId\"];\n\t\twtspCnsnt: IAccDataAccs[\"wtspCnsnt\"];\n\t}\n>;\n\nexport interface IAccDataAccs {\n\tbseMfstwt: boolean;\n\teqAccID?: string;\n\tcoAccID?: string;\n\teqAccName?: string;\n\tcoAccName?: string;\n\teqAlgoClnt: string;\n\teqBrk?: string;\n\teqBrkCode?: string;\n\tcoBrk?: string;\n\tcoBrkCode?: string;\n\teqDob: string;\n\teqEmpCat: string;\n\teqRmRt: string;\n\teqstwt: boolean;\n\tllt: string;\n\tprfId: string;\n\trstpwd: boolean;\n\trstusr: boolean;\n\tucmCd: string;\n\tuid: string;\n\twtspCnsnt: string;\n\tmfInf: boolean;\n}\n\nexport interface IAccDataAdhrEqCom {\n\tpopFl: string;\n\trlEDt: string;\n\trlFl: string;\n\tsts: string;\n}\n\nexport interface IAccDataCnsntLst {\n\taccType: string;\n\tmdtry: boolean;\n\tname: string;\n}\n\nexport type TBySl = { by: string; sl: string };\n\nexport interface IAccDataValidity {\n\tdpNm: string;\n\tvaVal: string;\n}\n\n/**\n * RequireAtLeastOne\n */\nexport type RequireAtLeastOne = Pick> &\n\t{\n\t\t[K in Keys]-?: Required> & Partial>>;\n\t}[Keys];\n\n/**\n * RequireOnlyOne\n */\nexport type RequireOnlyOne = Pick> &\n\t{\n\t\t[K in Keys]-?: Required> & Partial, undefined>>;\n\t}[Keys];\n\n/**\n * This works if two objects are concatenated. Pass the type of first object in T and type of second object in S\n */\nexport type ObjectConcat = B & Pick>;\n","import * as React from \"react\";\nimport { RouteProps, Redirect, Route } from \"react-router-dom\";\nimport LoginService, {\n isLoggedIn,\n} from \"../components/service/login/loginService\";\nimport { urls } from \"../components/login/loginConstants\";\n\nexport interface IPostLoginProps extends RouteProps {}\n\nconst PostLogin: React.FC = (props) => {\n if (isLoggedIn()) {\n return ;\n } else {\n LoginService.reUrl = props.location?.pathname;\n LoginService.fromUrl = props.location?.pathname; // todo this needs to be changed later\n return ;\n }\n};\n\nexport default PostLogin;\n","import * as React from \"react\";\nimport { Switch } from \"react-router-dom\";\nimport ObEqContainer from \"../components/toc/orderBook/obContainer/obEquity/obEquityContainer\";\n\nimport ObEquityConvertDesk from \"../components/toc/orderBook/obConvertPositions/obEquityConvertDesk\";\n\nimport ObNewOffersCont from \"../components/toc/orderBook/obContainer/obNewOffers/obNewOffersCont\";\nimport ObCommContainer from \"../components/toc/orderBook/obContainer/obCommodity/obCommContainer\";\nimport ObDerContainer from \"../components/toc/orderBook/obContainer/obEquity/obDerContainer\";\nimport ObCurContainer from \"../components/toc/orderBook/obContainer/obEquity/obCurContainer\";\nimport ObMfContainer from \"../components/toc/orderBook/obContainer/obMf/obMfContainer\";\nimport PostLogin from \"./postLogin\";\n\nconst ObRouting = () => {\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t } />\n\t\t\t\t } />\n\t\t\t\t } />\n\t\t\t\t } />\n\t\t\t\t } />\n\t\t\t\t } />\n\t\t\t\n\t\t\n\t);\n};\nexport default ObRouting;\n","import * as React from \"react\";\nimport \"../../assets/scss/components/generic/toastMessage.scss\";\n\nexport interface IToastMessageProps {\n\tmessage: React.ReactNode;\n\tcolor: \"success\" | \"error\" | \"cancell\";\n}\n\nconst ToastMessage: React.FC = props => {\n\treturn (\n\t\t// Accorning to toast message need to give classname \"success\",\"error\",\"cancell\"\n\t\t
    \n\t\t\t

    {props.message}

    \n\t\t
    \n\t);\n};\n\nexport default ToastMessage;\n","import React, { useState } from \"react\";\nimport \"../../../../assets/scss/components/toc/orderPlacement/generic/opBuySellTag.scss\";\nimport { EBuyOrSell } from \"../../../types/genericTypes\";\n\nexport interface IOpBuySellTagProps {\n\tdefaultValue?: EBuyOrSell; // default selected value\n\tonSelect: (id: EBuyOrSell) => void; // the function to be called onSelect\n}\n\nconst OpBuySellTag: React.FC = (props: IOpBuySellTagProps) => {\n\t/**\n\t * state and function for selectedValue\n\t * selectedValue type is number | string\n\t * setSelectedValue(number | string)\n\t */\n\tconst [selectedValue, setSelectedValue] = useState(props.defaultValue);\n\n\t/**\n\t * called when user selects a tag\n\t * @param value id of the selected tag\n\t * @returns onSelect prop passed from parent\n\t */\n\tfunction tagSelected(value: EBuyOrSell) {\n\t\tsetSelectedValue(value);\n\t\treturn props.onSelect(value);\n\t}\n\n\treturn (\n\t\t
      \n\t\t\t
    • tagSelected(EBuyOrSell.BUY)}>\n\t\t\t\tBUY\n\t\t\t
    • \n\t\t\t
    • tagSelected(EBuyOrSell.SELL)}>\n\t\t\t\tSELL\n\t\t\t
    • \n\t\t
    \n\t);\n};\n\nexport default OpBuySellTag;\n","// ALL FUNCTIONS RETURN\n// VALID - NULL\n// INVALID - ERROR STRING\n\n/**\nimport { integerExp } from './regex';\n * @param value The numerical value that needs to be checked for integer\n * @returns return null if VALID; error message if INVALID\n */\nexport function isValidRegex(value: string, regex: RegExp): string | null {\n\treturn regex.test(value) ? null : \"value is not integer\";\n}\n\n/**\n * @param value The value that is required\n * @returns return null if value is present; error message if value is blank\n */\nexport function required(value: any): string | null {\n\treturn value === undefined || value === null || value === \"\" ? \"value is required\" : null;\n}\n\n/**\n * @param value The value that is to be validated\n * @param min Value should be less than this number\n * @returns return null if value is not present or if value is >= min; error message if value < min\n */\nexport function grtrThanEqTo(value: number, min: number): string | null {\n\treturn value === undefined || value === null || value >= min ? null : \"value should be greater\";\n}\n\n/**\n * @param value The value that is to be validated\n * @param max Value should be greater than this number\n * @returns return null if value is not present or if value is <= max; error message if value > max\n */\nexport function lessThanEqTo(value: number, max: number): string | null {\n\treturn value === undefined || value === null || value <= max ? null : \"value should be smaller\";\n}\n\n/**\n * @param value The value to be validated\n * @param multiple Value should be multiple of this value\n * @returns return null if value is not present or if value is multiple of `multiple`; error message otherwise\n */\nexport function multipleValidation(value: number, multiple: number): string | null {\n\treturn value === undefined || value === null || value % multiple === 0 ? null : \"value is not a multiple of \" + multiple;\n}\n","/**\n * This function adds a \\ character before all the characters that need to be escaped\n * @param str string which needs to be changed\n */\nfunction escapeRegexStr(str: string) {\n return str.replace(/([<>*()?\\[\\]+])/g, \"\\\\$1\");\n}\n\n/**\n * This regex checks for integers.\n *\n * - Tests true for literals like - `\"\", \"2\", \"32434325435\"`\n * - Tests false for literals like - `\"a\", \"12as\", \"as23\", \"123.13\"`\n */\nexport const integerExp = /^\\d*$/;\n\n/**\n * This regex checks for alphabets and spaces.\n *\n * - Tests true for literals like - `\"\", \"a\", \"vfsgreftgr\", \"dsf csd\"`\n * - Tests false for literals like - `\"1\", \"12as\", \"as23\", \"s$ajkd\"`\n */\nexport const alphabetExp = /^[a-zA-Z ]*$/;\n\n/**\n * This regex checks for floating point numbers.\n *\n * If decimalPlaces is 2, then\n * - Tests true for literals like: `\"\", \"1\", \"45243464\", \"3131.\", \"12312.2\", \"123432.34\"`\n * - Tests false for literals like: `\"a\", \"12ad\", \"as21\"`\n *\n * @param decimalPlaces (optional) number of decimal places\n * @returns RegExp for checking floating point numbers\n */\nexport function floatNumExp(decimalPlaces: number = 2) {\n // if decimalPlaces === 2,\n // exp = ^\\d*(?:\\.\\d{0,2})?$\n let exp = `^\\\\d*(?:\\\\.\\\\d{0,${decimalPlaces}})?$`;\n return new RegExp(exp);\n}\n\n/**\n * This regex checks for alphanumeric characters.\n *\n * - Tests true for literals like - `\"\", \"asd\", \"ASD\", \"123\"`\n * - Tests false for literals like - `\"_\", \"-\", \"$\", \".\", \" \", [any other non-alphanumeric character]`\n */\nexport const alphaNumExp = /^[a-zA-Z0-9]*$/;\n\n/**\n * This regex checks for emails.\n *\n * - Tests true for literals like - `\"\", \"asd\", \"ASD\", \"123\"`\n * - Tests false for literals like - `\"_\", \"-\", \"$\", \".\", \" \", [any other non-alphanumeric character]`\n */\nexport const emailRegex =\n /^[-_a-zA-Z0-9]+(\\.[_a-zA-Z0-9]+)*@[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]+)*(\\.[a-zA-Z]{2,4})$/;\n\n/**\n * This regex checks if given string's length is between min and max characters.\n *\n * @param min min number of characters\n * @param max (optional) max number of characters. If not present then considered as infinity\n * @returns RegExp for checking if given string's length is between min and max characters\n */\nexport function betweenNChars(min: number, max?: number) {\n return new RegExp(\"^.{\" + min + \",\" + (max || \"\") + \"}\");\n}\n\n/**\n * This regex checks if string has atleast 1 character.\n *\n * - Tests true for literals like - `\"A\", \"ASD\", \"1A23\"`\n * - Tests false for literals like - `\"abc\", \" \", \"$\", \"123\"`\n */\nexport const atleast1UpperChar = /[A-Z]/;\n\n/**\n * This regex checks if string has atleast 1 digit.\n *\n * - Tests true for literals like - `\"1\", \"123\", \"1A23\"`\n * - Tests false for literals like - `\"abc\", \" \", \"$dfs\", \"ABC\"`\n */\nexport const atleast1Digit = /\\d/;\n\n/**\n * This regex tests true if string is made from any character other than the mentioned characters.\n * If any mentioned character appears even once, then regex tests false\n *\n * - Tests true for literals like - `\"\", \"$\", \"34\", \"saf&dfds\", \" \"`\n * - Tests false for literals like - `\"₹\", \"as₹fa\", \"DFS\", \"123\"`\n */\nexport const atleast1SplChar = /[^0-9a-zA-Z]/;\n\n/**\n * This regex tests true if string is made from any character other than the mentioned characters.\n * If any mentioned character appears even once, then regex tests false\n *\n * - Tests true for literals like - `\"\", \"$\", \"34\", \"saf&dfds\", \" \"`\n * - Tests false for literals like - `\"₹\", \"as₹fa\", \"DFS\", \"123\"`\n */\nexport const exceptSplChar = /^[^()<>?%+:;{}[\\]\\\\|~`^\\-‘\",./₹]*$/;\n\n/**\n * This regex checks for atleast 1 alphabet and 1 digit characters.\n *\n * - Tests true for literals like - `\"a1\", \"1a\", \"sdfh23ejsd\", \"sdfh2-3ej$sd\"`\n * - Tests false for literals like - `\"\", \"-\", \"a\", \"1\", \"dfsdsd\", \"213213\"`\n */\nexport const atleast1Alpha1Num = /(?=.*?[0-9])(?=.*?[A-Za-z]).+/;\n\n/**\n * This regex checks if the string to be checked is not equal to str\n *\n * @param str the string that will be compared\n * @param flag regex flag\n * @returns RegExp for checking if the string to be checked is not equal to str\n */\nexport function notEqualTo(str: string, flag?: string) {\n return new RegExp(\"^(?!\" + str + \"$).*$\", flag);\n}\n\n/**\n * This regex checks if the string to be checked is equal to str\n *\n * @param str the string that will be compared\n * @param flag regex flag\n * @returns RegExp for checking if the string to be checked is equal to str\n */\nexport function equalTo(str: string, flag?: string) {\n return new RegExp(\"^(?=\" + escapeRegexStr(str) + \"$).*$\", flag);\n}\n\n/**\n * This regex checks if the string is a valid pan\n */\nexport const pan = /^[a-zA-Z]{5}[\\d]{4}[a-zA-Z]{1}$/;\nexport const PersonPan = /[a-zA-Z]{3}[Pp]{1}[a-zA-Z]{1}[0-9]{4}[a-zA-Z]{1}$/;\n\n/**\n * This regex checks if the string is a valid phone/mobile number\n */\nexport const phoneNo = /^[6789]\\d{9}$/;\n\n/**\n * This regex checks if the string is a valid upi\n */\nexport const upiExp = /^[-.a-zA-Z0-9_]+@{1}[A-Za-z0-9]+$/;\n\nexport const incomeNetworth = /^[0-9]{0,10}[.]?[0-9]{0,2}$/;\n\nexport const detectIntWithSpace = /^(?=.*\\d)[\\d .]+$/;\n\nexport function specialCharExpression(min: number, max?: number) {\n return new RegExp(\n `(^[a-zA-Z0-9]*[^~\\`#$%^&*?\"',(){}<>\\\\[\\\\]:;|=+\\\\\\\\/]{${min},${\n max || \"\"\n }})+$`\n );\n}\n\nexport function specialCharExpressionForAddr(min: number, max?: number) {\n return new RegExp(\n `(^[a-zA-Z0-9]*[^~\\`#$%^&*?\"',(){}<>\\\\[\\\\]:;|=+_\\\\\\\\]{${min},${\n max || \"\"\n }})+$`\n );\n}\n\n/**\n * This regex checks if the string is contains only alpha numeric expression with space allowed other than any special characters not allowed.\n *\n */\nexport const alphaNumExpWithSpace = /^[a-zA-Z0-9 ]*$/;\n\nexport const alphaNumExpWithSpaceForAddr = /^[a-zA-Z0-9-]*$/;\n\nexport const integerExpWithSpace = /^[\\d ]*$/;\n","export enum EArrowKeys {\n\tLeftArrow = 37,\n\tUpArrow = 38,\n\tRightArrow = 39,\n\tDownArrow = 40\n}\n","import * as React from \"react\";\nimport \"../../assets/scss/components/generic/inputField.scss\";\nimport indexer from \"../types/genericTypes\";\nimport {\n required,\n isValidRegex,\n grtrThanEqTo,\n lessThanEqTo,\n} from \"../utils/validation\";\nimport { integerExp, alphaNumExp } from \"../utils/regex\";\n\nexport interface IInputFieldProps {\n defaultValue?: string; // The defaultValue in input field (pass only if required)\n placeholder?: string; // placeholder\n prefix?: React.ReactChild; // text/element to show before the input field\n suffix?: React.ReactChild; // text/element to show after the input field\n helpText?: string; // help text\n helpTextColor?: \"grey\" | \"blue\" | \"warm-grey-eight\" | \"red\"; // the color of help text, takes gray as default\n errorText?: string | null; // error text\n required?: boolean; // true if is required\n integer?: boolean; // true if only integer can be entered\n alphanum?: boolean; // true if only alphanumeric can be entered\n float?: RegExp; // number of digits after decimal\n min?: number; // minimum number\n max?: number; // maximum number\n className?: string; // extra classname if needed for module specific style\n type?: string; // type of input\n maxLength?: number; // if there is a max length for the input\n pattern?: RegExp; // validate any regExp\n id?: string;\n getValue?: boolean; // To get value on onBlur function\n autoComplete?: \"on\" | \"off\"; // used for switching on/off autocomplete\n onChange: (value: string) => string | void; // function to be called on change. Return string if value needs to be changed from outside\n onBlur: (error: indexer) => void; // function to be called on blur, all errors will be available in error object\n onMouseOut?: (value: string) => string | void; // function to be called onMouseOut.\n\n disabled?: boolean;\n disablePaste?: boolean;\n}\n\nconst InputField: React.FC = (props) => {\n // sets the default value of input if present\n // value: value of the input (type = string)\n // setValue: function to set value\n const [value, setValue] = React.useState(props.defaultValue || \"\");\n\n // if default value is updated from outside, change it inside also\n React.useEffect(() => {\n if (props.defaultValue !== undefined && value !== props.defaultValue) {\n setValue(props.defaultValue);\n }\n }, [props.defaultValue]);\n\n // when focussed, this helps to colour the border of input_field_cont\n const [focusClass, setFocusClass] = React.useState(\"\");\n const [disablePaste, setDisablePaste] = React.useState(false);\n\n /**\n * @param value The string that needs to be checked for integer\n * @returns If integer need not be checked, then return true.\n * - If integer needs to be checked, then\n * - If value is valid integer, then return true; otherwise, return false\n */\n function isValidInteger(value: string): boolean {\n return (\n !props.integer || (props.integer && !isValidRegex(value, integerExp))\n );\n }\n\n /**\n * @param value The string that needs to be checked for float\n * @returns If float need not be checked, then return true.\n * - If float needs to be checked, then\n * - if value is valid float, then return true; otherwise, return false\n */\n function isValidFloat(value: string): boolean {\n return !props.float || (props.float && !isValidRegex(value, props.float));\n }\n\n /**\n * @param value The string that needs to be checked for alphanumeric characters\n * @returns If alphanum need not be checked, then return true.\n * - If alphanum needs to be checked, then\n * - if value is valid alphanum, then return true; otherwise, return false\n */\n function isValidAlphaNum(value: string): boolean {\n return (\n !props.alphanum || (props.alphanum && !isValidRegex(value, alphaNumExp))\n );\n }\n\n /**\n * @param value The string that needs to be checked for maxlength\n * @returns If maxlength need not be checked, then return true.\n * - If maxlength needs to be checked, then\n * - if value has less characters than maxlength, then return true; otherwise, return false\n */\n function isValidMaxLength(value: string): boolean {\n return props.maxLength === undefined || value.length <= props.maxLength;\n }\n\n /**\n * @param value The value that is required\n * @returns If required need not be checked, then return true.\n * - If required needs to be checked, return true if value is not present; false if value is present\n */\n function isRequired(value: any): boolean {\n return !props.required || (props.required && !!required(value));\n }\n\n /**\n * @param value The value that is to be validated\n * @returns If min need not be checked, then return true.\n * - If min needs to be checked,\n * - throw error if value is string\n * - return true if value < min; false if value >= min\n */\n function isLessThanMin(value: string): boolean {\n if (props.min === undefined) {\n return true;\n }\n if (isNaN(+value)) {\n throw Error(\"Can't validate non-numerical value for min\");\n }\n return !!grtrThanEqTo(+value, props.min);\n }\n\n /**\n * @param value The value that is to be validated\n * @returns If max need not be checked, then return true.\n * - If max needs to be checked,\n * - throw error if value is string\n * - return true if value > max; false if value <= min\n */\n function isGrtrThanMax(value: string): boolean {\n if (props.max === undefined) {\n return true;\n }\n if (isNaN(+value)) {\n throw Error(\"Can't validate non-numerical value for max\");\n }\n return !!lessThanEqTo(+value, props.max);\n }\n\n /**\n * @param value The string that needs to be checked for the pattern\n * @returns If pattern need not be checked, then return true.\n * - If pattern needs to be checked, then\n * - if value is valid pattern, then return true; otherwise, return false\n */\n function isValidPattern(value: string): boolean {\n return (\n !props.pattern || (props.pattern && !isValidRegex(value, props.pattern))\n );\n }\n\n /**\n * This function runs on blur.\n * This removes the focus class on input_field_cont and removes commas.\n * This function calls the onBlur callback function with all the errors.\n */\n function handleBlur() {\n setFocusClass(\"\");\n\n let errorObj: indexer = {};\n\n if (props.required) {\n errorObj = { ...errorObj, required: isRequired(value) }; // set isRequired error\n }\n if (props.min) {\n errorObj = { ...errorObj, min: isLessThanMin(value) }; // set error for min\n }\n if (props.max) {\n errorObj = { ...errorObj, max: isGrtrThanMax(value) }; // set error for max\n }\n if (props.pattern) {\n errorObj = { ...errorObj, pattern: isValidPattern(value) }; // set error for pattern\n }\n if (props.getValue) {\n errorObj = { ...errorObj, value: value }; // set error for pattern\n }\n props.onBlur(errorObj);\n }\n\n /**\n * Checks for all the validations and then changes value accordingly\n * @param e The input event\n */\n function handleChange(e: React.FocusEvent) {\n if (disablePaste) setValue(\"\");\n else {\n let resolvedValue: string;\n if (props.type == \"password\") {\n e.target.value = e.target.value.split(\" \").join(\"\");\n }\n if (\n (e.target.value || e.target.value === \"\" || e.target.value === \"0\") &&\n isValidInteger(e.target.value) &&\n isValidFloat(e.target.value) &&\n isValidAlphaNum(e.target.value) &&\n isValidMaxLength(e.target.value)\n ) {\n // if value needs to be changed then process the new value\n resolvedValue = e.target.value;\n } else {\n // otherwise process the previous state\n resolvedValue = value;\n }\n\n const newValue = props.onChange(resolvedValue || \"\"); // call onchange callback\n\n if (newValue !== undefined) {\n setValue(newValue); // set the new value\n } else {\n setValue(resolvedValue || \"\"); // set the new value\n }\n }\n setDisablePaste(false);\n }\n\n const handleMouseOut = (e: any) => {\n if (props.onMouseOut) {\n e.currentTarget.blur();\n props.onMouseOut(e.target.value);\n }\n };\n return (\n
    \n \n {props.prefix &&
    {props.prefix}
    }\n setFocusClass(\" focus\")}\n onMouseOut={handleMouseOut}\n onBlur={handleBlur}\n type={props.type}\n id={props.id}\n disabled={props.disabled}\n autoComplete={props.autoComplete}\n onPaste={() => {\n if (props.disablePaste) setDisablePaste(true);\n }}\n />\n {props.suffix &&
    {props.suffix}
    }\n
    \n {props.errorText &&

    {props.errorText}

    }\n {props.helpText && (\n \n {props.helpText}\n

    \n )}\n \n );\n};\n\nexport default InputField;\n","/**\n * This input component is used when entered value is numerical\n * and it is to be comma separated on blur\n */\n\nimport * as React from \"react\";\nimport \"../../../../assets/scss/components/generic/inputField.scss\";\nimport indexer from \"./../../../types/genericTypes\";\nimport { required, isValidRegex, grtrThanEqTo, lessThanEqTo, multipleValidation } from \"./../../../utils/validation\";\nimport { integerExp } from \"./../../../utils/regex\";\nimport { EArrowKeys } from \"../opConstants\";\n\nexport interface IOpInputNumFieldProps {\n\tdefaultValue?: number; // The defaultValue in input field (pass only if required)\n\tplaceholder?: string; // placeholder\n\tprefix?: React.ReactChild; // text/element to show before the input field\n\tsuffix?: React.ReactChild; // text/element to show after the input field\n\thelpText?: string; // help text\n\thelpTextColor?: \"grey\" | \"blue\"; // the color of help text, takes gray as default\n\terrorText?: string | null; // error text\n\trequired?: boolean; // true if is required\n\tinteger?: boolean; // true if only integer can be entered\n\tfloat?: RegExp; // number of digits after decimal\n\tmin?: number; // minimum number\n\tmax?: number; // maximum number\n\tmultiple?: number; // multiple value\n\tonChange: (value: string) => void; // function to be called on change\n\tonBlur: (error: indexer) => void; // function to be called on blur, all errors will be available in error object\n}\n\nconst OpInputNumField: React.FC = props => {\n\t// sets the default value of input if present\n\t// value: value of the input (type = string)\n\t// setValue: function to set value\n\tconst [value, setValue] = React.useState(props.defaultValue?.toString() || \"\");\n\n\t// when focussed, this helps to colour the border of input_field_cont\n\tconst [focusClass, setFocusClass] = React.useState(\"\");\n\n\t// if multiple is present, then take it otherwise keep it 1\n\tconst multiple = props.multiple || 1;\n\n\t/**\n\t * @param value The string that needs to be checked for integer\n\t * @returns If integer need not be checked, then return true.\n\t * - If integer needs to be checked, then\n\t * - If value is valid integer, then return true; otherwise, return false\n\t */\n\tfunction isValidInteger(value: string): boolean {\n\t\treturn !props.integer || (props.integer && !isValidRegex(value, integerExp));\n\t}\n\n\t/**\n\t * @param value The string that needs to be checked for float\n\t * @returns If float need not be checked, then return true.\n\t * - If float needs to be checked, then\n\t * - if value is valid float, then return true; otherwise, return false\n\t */\n\tfunction isValidFloat(value: string): boolean {\n\t\treturn !props.float || (props.float && !isValidRegex(value, props.float));\n\t}\n\n\t/**\n\t * @param value The value that is required\n\t * @returns If required need not be checked, then return true.\n\t * - If required needs to be checked, return true if value is not present; false if value is present\n\t */\n\tfunction isRequired(value: any): boolean {\n\t\treturn !props.required || (props.required && !!required(value));\n\t}\n\n\t/**\n\t * @param value The value that is to be validated\n\t * @returns If min need not be checked, then return true.\n\t * - If min needs to be checked, return true if value < min; false if value >= min\n\t */\n\tfunction isLessThanMin(value: string): boolean {\n\t\treturn props.min === undefined || !!grtrThanEqTo(+value, props.min);\n\t}\n\n\t/**\n\t * @param value The value that is to be validated\n\t * @returns If max need not be checked, then return true.\n\t * - If max needs to be checked,\n\t * - throw error if value is string\n\t * - return true if value > max; false if value <= min\n\t */\n\tfunction isGrtrThanMax(value: string): boolean {\n\t\treturn props.max === undefined || !!lessThanEqTo(+value, props.max);\n\t}\n\n\t/**\n\t * @param value The value that is to be validated\n\t * @returns true if value is multiple of `multiple`; false otherwise\n\t */\n\tfunction isMultiple(value: string): boolean {\n\t\treturn !!multipleValidation(+value, multiple);\n\t}\n\n\t/**\n\t * This function runs on focus.\n\t * This adds the focus class on input_field_cont and adds commas.\n\t */\n\tfunction handleFocus() {\n\t\tsetFocusClass(\" focus\");\n\t\tsetValue(value.replace(/,/g, \"\")); // remove commas\n\t}\n\n\t/**\n\t * This function runs on blur.\n\t * This removes the focus class on input_field_cont and removes commas.\n\t * This function calls the onBlur callback function with all the errors.\n\t */\n\tfunction handleBlur() {\n\t\tsetFocusClass(\"\");\n\t\tvalue && setValue((+value).toLocaleString(\"en-IN\")); // add commas\n\n\t\tlet errorObj: indexer = {};\n\n\t\tif (props.required) {\n\t\t\terrorObj = { ...errorObj, required: isRequired(value) }; // set isRequired error\n\t\t}\n\t\tif (props.min) {\n\t\t\terrorObj = { ...errorObj, min: isLessThanMin(value) }; // set error for min\n\t\t}\n\t\tif (props.max) {\n\t\t\terrorObj = { ...errorObj, max: isGrtrThanMax(value) }; // set error for max\n\t\t}\n\t\tif (props.multiple) {\n\t\t\terrorObj = { ...errorObj, multiple: isMultiple(value) }; // set error for multiple\n\t\t}\n\t\tprops.onBlur(errorObj);\n\t}\n\n\t/**\n\t * Checks for all the validations and then changes value accordingly\n\t * @param e The input event\n\t */\n\tfunction handleChange(e: React.ChangeEvent) {\n\t\tlet resolvedValue: string;\n\n\t\tif (\n\t\t\t(+e.target.value || e.target.value === \"\" || e.target.value === \"0\") &&\n\t\t\tisValidInteger(e.target.value) &&\n\t\t\tisValidFloat(e.target.value)\n\t\t) {\n\t\t\t// if value needs to be changed then process the new value\n\t\t\tresolvedValue = e.target.value;\n\t\t} else {\n\t\t\t// otherwise process the previous state\n\t\t\tresolvedValue = value;\n\t\t}\n\n\t\tsetValue(resolvedValue || \"\"); // set the new value\n\t\tprops.onChange(resolvedValue || \"\"); // call onchange callback\n\t}\n\n\t/**\n\t * If `value` is not a multiple of `roundTo`, then return the largest possible value that is multiple of `roundTo`\n\t * @param value value to be rounded\n\t * @param roundTo round to this number\n\t * @returns rounded number\n\t */\n\tfunction customFloor(value: number, roundTo: number) {\n\t\treturn Math.floor(value / roundTo) * roundTo;\n\t}\n\n\t/**\n\t * On up and down key, change the value by multiple\n\t * @param e keypress event\n\t */\n\tfunction onArrowKeyPress(e: React.KeyboardEvent) {\n\t\t// find the new value\n\t\tlet resolvedValue: number = +value;\n\t\tif (e.keyCode === EArrowKeys.UpArrow) {\n\t\t\tresolvedValue = customFloor(+value, multiple) + multiple;\n\t\t} else if (e.keyCode === EArrowKeys.DownArrow) {\n\t\t\tresolvedValue = customFloor(+value, multiple) - multiple;\n\t\t}\n\n\t\t// check for min/max validations\n\t\tif (\n\t\t\t(props.min !== undefined && isLessThanMin(resolvedValue.toString())) ||\n\t\t\t(props.max !== undefined && isGrtrThanMax(resolvedValue.toString()))\n\t\t) {\n\t\t\tprops.onChange(value);\n\t\t\treturn;\n\t\t}\n\n\t\t// if valid, then set the new value\n\t\tsetValue(resolvedValue.toString() || \"\"); // set the new value\n\t\tprops.onChange(resolvedValue.toString() || \"\"); // call onchange callback\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t{props.prefix &&
    {props.prefix}
    }\n\t\t\t\t\n\t\t\t\t{props.suffix &&
    {props.suffix}
    }\n\t\t\t
    \n\t\t\t{props.errorText &&

    {props.errorText}

    }\n\t\t\t{props.helpText &&

    {props.helpText}

    }\n\t\t
    \n\t);\n};\n\nexport default OpInputNumField;\n","import * as React from \"react\";\nimport DatePicker from \"react-datepicker\";\nimport moment from \"moment\";\nimport \"../../../../assets/scss/components/generic/inputField.scss\";\nimport \"../../.././../assets/scss/components/toc/orderPlacement/generic/opCalender.scss\";\n\nexport interface IOpCalenderProps {\n\tonDateSelect: (date: Date | null) => void;\n}\n\ninterface ICustomHeaderProps {\n\tdate: Date;\n\tchangeYear: (year: number) => void;\n\tchangeMonth: (month: number) => void;\n\tdecreaseMonth: () => void;\n\tincreaseMonth: () => void;\n\tprevMonthButtonDisabled: boolean;\n\tnextMonthButtonDisabled: boolean;\n\tdecreaseYear: () => void;\n\tincreaseYear: () => void;\n\tprevYearButtonDisabled: boolean;\n\tnextYearButtonDisabled: boolean;\n}\n\ninterface ICalenderContainerProps {\n\tclassName: string;\n\tchildren: React.ReactNode[];\n}\n\nenum EPickerType {\n\tDate,\n\tMonth,\n\tYear\n}\n\nconst OpCalender: React.FC = props => {\n\t// sets the default value of date to null\n\t// date: value of the date (type = Date || null)\n\t// setDate: function to set date\n\tconst [date, setDate] = React.useState(null);\n\n\t// pickerType is used to determine which state of calender is open\n\t// pickerType: date | month | year\n\t// setPickerType: function to set pickerType\n\tconst [pickerType, setPickerType] = React.useState(EPickerType.Date);\n \n\t/**\n\t * - Changes the picker type on date/month/year selection.\n\t * - Calls the onDateSelect callback function\n\t * @param date selected date\n\t */\n\tfunction onDateSelect(date: Date | null) {\n\t\t// if picker type is month then go to date\n\t\t// if picker type is year then go to month\n\t\tif (pickerType !== EPickerType.Date) {\n\t\t\tsetPickerType(pickerType - 1);\n\t\t}\n\n\t\tsetDate(date);\n\t\tprops.onDateSelect(date);\n\t}\n\n\t/**\n\t * - Creates custom header for date/month state\n\t * - Acts as the complete calender in year state\n\t * @param headerProps props passed by the component\n\t */\n\tconst customHeader = (headerProps: ICustomHeaderProps) => {\n\t\t// These variables are used only in year state\n\t\tconst selectedYear = (headerProps.date || new Date()).getFullYear();\n\t\tconst currentYear = new Date().getFullYear();\n\t\tconst yearMapHelper = [\n\t\t\t[11, 10, 9],\n\t\t\t[8, 7, 6],\n\t\t\t[5, 4, 3],\n\t\t\t[2, 1, 0]\n\t\t];\n\n\t\t// calculate last year to show in year state\n\t\t// if current year is 2020\n\t\t// then on selecting 2019, last year should still show 2019 in year state\n\t\t// if this calculation is not used, then last year would become 2019\n\t\tconst endYear = currentYear - 12 * Math.floor((currentYear - selectedYear) / 12);\n\n\t\t/**\n\t\t * Changes the year state for datepicker component.\n\t\t * @param yr selected year\n\t\t */\n\t\tfunction onYearClick(yr: number) {\n\t\t\tonDateSelect(new Date(yr, 0, 1));\n\t\t\theaderProps.changeYear(yr);\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t
    \n\t\t\t\t\t{headerProps.prevMonthButtonDisabled || pickerType === EPickerType.Month ? (\n\t\t\t\t\t\t// Don't show left arrow\n\t\t\t\t\t\t
    \n\t\t\t\t\t) : (\n\t\t\t\t\t\t// Show customised left arrow\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (pickerType === EPickerType.Date) {\n\t\t\t\t\t\t\t\t\treturn headerProps.decreaseMonth();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// decrease year by 12 because we are showing 12 years in year state\n\t\t\t\t\t\t\t\t\tfor (let i = 0; i < 12; i++) headerProps.decreaseYear();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t
    \n\t\t\t\t\t\t{/* Show clickable month only in date state */}\n\t\t\t\t\t\t{pickerType === EPickerType.Date && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{/* Show clickable year in both date and month state */}\n\t\t\t\t\t\t{pickerType !== EPickerType.Year && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{/* Show year range (not-clickable) in year state */}\n\t\t\t\t\t\t{pickerType === EPickerType.Year && (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{endYear - 11}-{endYear}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\n\t\t\t\t\t{headerProps.nextMonthButtonDisabled || pickerType === EPickerType.Month ? (\n\t\t\t\t\t\t// Don't show right arrow\n\t\t\t\t\t\t
    \n\t\t\t\t\t) : (\n\t\t\t\t\t\t// Show customised right arrow\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (pickerType === EPickerType.Date) {\n\t\t\t\t\t\t\t\t\treturn headerProps.increaseMonth();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tfor (let i = 0; i < 12; i++) headerProps.increaseYear();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t
    \n\n\t\t\t\t{/* Make the year calender if pickerType is year */}\n\t\t\t\t{pickerType === EPickerType.Year && (\n\t\t\t\t\t
    \n\t\t\t\t\t\t{yearMapHelper.map(yrMapArr => (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{yrMapArr.map(yrMap => (\n\t\t\t\t\t\t\t\t\t onYearClick(endYear - yrMap)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{endYear - yrMap}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t))}\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t\n\t\t);\n\t};\n\n\t/**\n\t * Since everything is created in custom header in year state\n\t * this function extracts the header part of the date picker and keeps the rest empty in year state\n\t * @param containerProps props passed by the component\n\t */\n\tconst calendarContainer = (containerProps: ICalenderContainerProps) => {\n\t\treturn pickerType === EPickerType.Year ? (\n\t\t\t
    \n\t\t\t\t{/* Custom Header */}\n\t\t\t\t
    \n\t\t\t\t\t{containerProps.children[2] &&\n\t\t\t\t\t\t(containerProps.children[2] as any)[0].props &&\n\t\t\t\t\t\t(containerProps.children[2] as any)[0].props.children[0] &&\n\t\t\t\t\t\t(containerProps.children[2] as any)[0].props.children[0].props.children[0]}\n\t\t\t\t
    \n\t\t\t\t{/* Body is empty */}\n\t\t\t
    \n\t\t) : (\n\t\t\t
    {containerProps.children}
    \n\t\t);\n\t};\n\n\t// This is the main calender component that is rendering calender\n\treturn (\n\t\t
    \n\t\t\t onDateSelect(date)}\n\t\t\t\tplaceholderText=\"Select Start Date\"\n\t\t\t\tshowPopperArrow={false}\n\t\t\t\tcustomInput={}\n\t\t\t\tshowMonthYearPicker={pickerType === EPickerType.Month} // show month picker only if picker type is month\n\t\t\t\tshouldCloseOnSelect={pickerType === EPickerType.Date} // should only close if date picker is open\n\t\t\t\trenderCustomHeader={headerProps => customHeader(headerProps)}\n\t\t\t\tcalendarContainer={(containerProps: ICalenderContainerProps) => calendarContainer(containerProps)}\n\t\t\t\tonCalendarClose={() => setPickerType(EPickerType.Date)} // if year/month state was open before closing the reset to date state\n\t\t\t/>\n\t\t
    \n\t);\n};\n\nexport default OpCalender;\n\n/**\n * This component is for showing custom input box for opCalender\n */\nexport interface ICustomInputProps {\n\tvalue?: any;\n\tdisabled?: boolean;\n\tplaceholder?: string;\n\tonClick?: (event: React.MouseEvent) => void;\n\tonChange?: (event: React.MouseEvent) => void;\n\tonBlur?: (event: React.FocusEvent) => void;\n\tonFocus?: (event: React.FocusEvent) => void;\n}\n\nclass CustomInput extends React.Component {\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t{/* If a date is selected, then show date otherwise show the placeholder text */}\n\t\t\t\t\t{this.props.value ? (\n\t\t\t\t\t\t{moment(this.props.value).format(\"DD MMM YYYY\")}\n\t\t\t\t\t) : (\n\t\t\t\t\t\t{this.props.placeholder}\n\t\t\t\t\t)}\n\n\t\t\t\t\t{/* Calender icon */}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\t}\n}\n","import * as React from \"react\";\nimport \"../../../../assets/scss/components/toc/orderPlacement/generic/opMandateDropdown.scss\";\nimport { Link } from \"react-router-dom\";\n\nexport interface IOpMandateDropdownProps {\n\tonOptionSelect: (data: IMandateDropdownData) => void;\n\tdropdownList: Array;\n}\n\nexport interface IMandateDropdownData {\n\tbankName: string;\n\tacc: string;\n\ttransactionLimit: string;\n\tmandateId: number; // mandate id is unique\n\tisApproved: boolean;\n}\n\nexport interface IOpMandateDropdownState {\n\tisDropdownOpen: boolean;\n\tselectedOption: IMandateDropdownData | null;\n}\n\nclass OpMandateDropdown extends React.Component {\n\tdropdownListRef = React.createRef();\n\n\tstate: IOpMandateDropdownState = {\n\t\tisDropdownOpen: false,\n\t\tselectedOption: null,\n\t};\n\n\tdropdownEl: any;\n\n\tcomponentDidMount() {\n\t\t// select the 0th option by default\n\t\tthis.setState({ selectedOption: this.props.dropdownList[0] });\n\t}\n\n\tonOptionSelect = (d: IMandateDropdownData) => {\n\t\tthis.setState({ isDropdownOpen: false, selectedOption: d });\n\t\treturn this.props.onOptionSelect(d);\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t
    \n\t\t\t\t\t\n\n\t\t\t\t\t{/* Overlay covers the whole screen. When overlay is clicked, close the dropdown. */}\n\t\t\t\t\t{this.state.isDropdownOpen &&
    this.setState({ isDropdownOpen: false })} />}\n\n\t\t\t\t\t
      \n\t\t\t\t\t\t{/* Dropdown list */}\n\t\t\t\t\t\t{this.props.dropdownList.map(d => (\n\t\t\t\t\t\t\t
    • this.onOptionSelect(d)}>\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t{this.state.selectedOption && }\n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t{d.bankName}\n\t\t\t\t\t\t\t\t\t\t\t{d.transactionLimit}\n\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\tMandate ID: {d.mandateId}\n\t\t\t\t\t\t\t\t\t\t\t{d.isApproved ? \"Approved\" : \"Non-Approved\"}\n\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t))}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tAdd New Mandate\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\n\t\t);\n\t}\n}\n\nexport default OpMandateDropdown;\n","import React, { useState } from \"react\";\nimport \"../../../../assets/scss/components/toc/orderPlacement/generic/opDropdown.scss\";\nimport { IListObj } from \"../../../types/genericTypes\";\n\nexport interface IOpDropdownProps {\n\tdefaultValue?: number | string; // default selected value\n\tdropdownOptions: Array; // list of all options in dropdown\n\tonOptionSelect: (id: string | number) => void; // the function to be called onSelect\n}\n\nconst OpDropdown: React.FC = (props: IOpDropdownProps) => {\n\t/**\n\t * state and function for selectedValue\n\t * selectedValue type is number | string\n\t * setSelectedValue(number | string)\n\t */\n\tconst [selectedValue, setSelectedValue] = useState(props.defaultValue);\n\n\t/**\n\t * state and function for isDropdownOpen\n\t * selectedValue type is boolean\n\t * setSelectedValue(boolean)\n\t */\n\tconst [isDropdownOpen, setIsDropdownOpen] = useState(false);\n\n\t/**\n\t * called when user selects an option\n\t * @param id id of the selected option\n\t * @returns onSelect prop passed from parent\n\t */\n\tfunction optionSelected(id: string | number) {\n\t\tsetSelectedValue(id);\n\t\tsetIsDropdownOpen(false);\n\t\treturn props.onOptionSelect(id);\n\t}\n\n\t// Find the selected object\n\tconst selectedOption = props.dropdownOptions.find(option => selectedValue === option.value);\n\n\treturn (\n\t\t
    \n\t\t\t\n\n\t\t\t{/* when dropdown is open show overlay and content */}\n\t\t\t{/* Overlay covers the whole screen. When overlay is clicked, close the dropdown. */}\n\t\t\t{isDropdownOpen &&
    setIsDropdownOpen(false)} />}\n\n\t\t\t{/* Dropdown list */}\n\t\t\t
      \n\t\t\t\t{/* Dropdown list */}\n\t\t\t\t{props.dropdownOptions.map((option, index) => (\n\t\t\t\t\t
    • optionSelected(option.value)}>\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t{/* show tick only if this option is selected */}\n\t\t\t\t\t\t\t{selectedValue && }\n\t\t\t\t\t\t\t{option.display}\n\t\t\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t))}\n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default OpDropdown;\n","/**\n * Explain button + tooltip\n */\n\nimport * as React from \"react\";\nimport \"../../../../assets/scss/components/toc/orderPlacement/generic/opExplainButton.scss\";\n\nexport interface IOpTooltip {\n\theading: string;\n\tdescription: string;\n}\n\nexport interface IOpExplainButtonProps {\n\ttooltipData: Array; // array of heading, description\n}\n\nconst OpExplainButton: React.FC = props => {\n\tconst [showTooltip, setShowTooltip] = React.useState(false);\n\n\treturn (\n\t\t\n\t\t\t\n\n\t\t\t{/* when tooltip is open show overlay and content */}\n\t\t\t{/* Overlay covers the whole screen. When overlay is clicked, close the tooltip. */}\n\t\t\t{showTooltip &&
    setShowTooltip(false)} />}\n\n\t\t\t{/* Tooltip */}\n\t\t\t
    \n\t\t\t\t{props.tooltipData.map(data => (\n\t\t\t\t\t\n\t\t\t\t\t\t

    {data.heading}

    \n\t\t\t\t\t\t

    {data.description}

    \n\t\t\t\t\t
    \n\t\t\t\t))}\n\t\t\t
    \n\t\t\n\t);\n};\n\nexport default OpExplainButton;\n","import React from \"react\";\nimport { IListObj } from \"../../types/genericTypes\";\n\nexport const holdSecNavOptions: Array = [\n\t{ value: \"equity\", display: \"Equity\", href: \"/holding/equity/usable\" },\n\t{ value: \"mf\", display: \"Mutual Funds\", href: \"/holding/mf/usable\" }\n];\n\nexport enum EHoldScreenState {\n\tLOADING,\n\tNO_DATA,\n\tDATA\n}\n\nexport const holdNote = (\n\t

    \n\t\tMutual Fund holdings lying in collateral and hold will not be shown here, this happens if you take up a new Position in FNO using Mutual\n\t\tFunds as collateral.\n\t\t
    \n\t\t
    \n\t\tRedemption orders placed n physical mode may get rejected in case prior redemption orders are not yet settled.\n\t

    \n);\n","import * as React from \"react\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport \"../../../../assets/scss/components/toc/orderPlacement/opGenerateMandate/opGenerateMandateDsk.scss\";\nimport \"../../../../assets/scss/components/toc/orderPlacement/opGenerateMandate/opGenerateMandateTab.scss\";\nimport \"../../../../assets/scss/components/toc/orderPlacement/opGenerateMandate/opGenerateMandateMob.scss\";\n\nexport interface IOpGenerateMandateProps {\n\tcompanyName: string;\n\tcontentArr: Array; // the array of field value data to show in the middle\n\tonEdit: (event: React.MouseEvent) => void;\n}\n\nexport interface IOpGenerateMandateContent {\n\tlabel: string;\n\tvalue: string;\n}\n\nconst OpGenerateMandate: React.FC = props => {\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    Your Order
    \n\t\t\t\t\t

    {props.companyName}

    \n\t\t\t\t
    \n\t\t\t\t{!DeviceContext().isDesktop && (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{props.contentArr.map(content => (\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    {content.label}
    \n\t\t\t\t\t\t
    {content.value}
    \n\t\t\t\t\t
    \n\t\t\t\t))}\n\t\t\t
    \n\t\t\t{DeviceContext().isDesktop && (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default OpGenerateMandate;\n","import * as React from \"react\";\nimport RadioButton from \"../../../generic/radioButton\";\nimport EdButton from \"../../../generic/edButton\";\nimport \"../../../../assets/scss/components/toc/orderPlacement/opInsufficientFunds/opInsufficientFunds.scss\";\nimport { IListObj } from \"../../../types/genericTypes\";\n\nexport interface IOpInsufficientFundsProps {\n\tcurrentValue: string; // Current value\n\torderValue: string; // SIP / Order value\n\tisSip?: boolean; // if true, then 'SIP Value' else 'Order value'\n\tradioButtonList: Array; // list to create radio buttons\n\tonProceed: (selectedValue: string | number) => void; //\n}\n\nconst OpInsufficientFunds: React.FC = props => {\n\tconst [selectedRadio, setSelectedRadio] = React.useState(props.radioButtonList[0].value);\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t

    You have insufficient funds to place this order.

    \n\t\t\t

    Please select next step

    \n\t\t\t

    Current Balance: {props.currentValue}

    \n\t\t\t

    \n\t\t\t\t{props.isSip ? \"SIP\" : \"Order\"} Value: {props.orderValue}\n\t\t\t

    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{props.radioButtonList.map(radio => (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t setSelectedRadio(radio.value)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
    \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t props.onProceed(selectedRadio)} btnTyp=\"primary\" className=\"proceed_btn\" />\n\t\t
    \n\t);\n};\n\nexport default OpInsufficientFunds;\n","import * as React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport \"../../../../assets/scss/components/toc/orderPlacement/opOrderStatus/opOrderStatus.scss\";\n\nexport interface IOpOrderStatusProps {\n\tisSip?: boolean; // if true, then 'SIP Order Placed' else 'Order Placed Successfully'\n\tordNo: string; // order number\n\tordStsUrl: string;\n\tposUrl: string;\n\tplaceOrdUrl: string;\n}\n\nconst OpOrderStatus: React.FC = props => {\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t{props.isSip ?

    SIP Order Placed

    :

    Order Placed Successfully

    }\n\t\t\t

    Order no: {props.ordNo}

    \n\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\tOrder Status\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tPositions\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tPlace Order\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default OpOrderStatus;\n","import * as React from \"react\";\nimport { EBuyOrSell } from \"../../../types/genericTypes\";\nimport EdButton from \"../../../generic/edButton\";\nimport \"../../../../assets/scss/components/toc/orderPlacement/opConfirmation/opConfirmation.scss\";\n\nexport interface IOpConfirmationProps {\n\tbuyOrSell: EBuyOrSell;\n\ttitle: string;\n\tsubtitle: string;\n\tisSubtitlebig?: boolean;\n\texchange?: \"NSE\" | \"BSE\"; // optional, will not show if not present\n\tcontentArr: Array; // the array of field value data to show in the middle\n\tnote?: React.ReactNode;\n\tonCancel: (event: React.MouseEvent) => void;\n\tonConfirm: (event: React.MouseEvent) => void;\n}\n\nexport interface IConfirmationContent {\n\tfield: string;\n\tvalue: string;\n}\n\nconst OpConfirmation: React.FC = props => {\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{props.buyOrSell}\n\t\t\t\t
    \n\n\t\t\t\t

    \n\t\t\t\t\t{props.title} {props.exchange && {props.exchange}}\n\t\t\t\t

    \n\n\t\t\t\t

    {props.subtitle}

    \n\n\t\t\t\t
    \n\t\t\t\t\t{props.contentArr.map(a => (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{a.field}\n\t\t\t\t\t\t\t{a.value}\n\t\t\t\t\t\t
    \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t\t{props.note &&
    {props.note}
    }\n\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default OpConfirmation;\n","import * as React from \"react\";\nimport \"../../.././../assets/scss/components/toc/orderPlacement/generic/opTotalPeriod.scss\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport indexer from \"./../../../types/genericTypes\";\nimport { required, isValidRegex, grtrThanEqTo, lessThanEqTo, multipleValidation } from \"./../../../utils/validation\";\nimport { integerExp } from \"./../../../utils/regex\";\nimport { EArrowKeys } from \"../opConstants\";\n\nexport interface IOpTotalPeriodProps {\n\tdefaultValue?: number;\n\tlabel: string;\n\tid: string;\n\thelpTextGrey?: string;\n\thelpTextBlue?: string;\n\terrorText?: string | null; // error text\n\trequired?: boolean; // true if is required\n\tinteger?: boolean; // true if only integer can be entered\n\tfloat?: RegExp; // number of digits after decimal\n\tmin?: number; // minimum number, if '-' is to be disabled on less than minimum count\n\tmax?: number; // maximum number, if '+' is to be disabled on more than maximum count\n\tmultiple?: number; // multiple value\n\tonChange: (value: number) => void; // function to be called on change\n\tonBlur: (error: indexer) => void; // function to be called on blur, all errors will be available in error object\n}\n\nconst OpTotalPeriod: React.FC = props => {\n\t// sets the default value of input if present\n\t// value: value of the input (type = string; because input box returns string)\n\t// setValue: function to set value\n\tconst [value, setValue] = React.useState(props.defaultValue?.toString() || \"\");\n\n\t// when focussed, this helps to colour the border of input_field_cont\n\tconst [focusClass, setFocusClass] = React.useState(\"\");\n\n\tconst isMobile = DeviceContext().isMobile;\n\n\t// if multiple is present, then take it otherwise keep it 1\n\tconst multiple = props.multiple || 1;\n\n\t/**\n\t * @param value The string that needs to be checked for integer\n\t * @returns If integer need not be checked, then return true.\n\t * - If integer needs to be checked, then\n\t * - If value is valid integer, then return true; otherwise, return false\n\t */\n\tfunction isValidInteger(value: string): boolean {\n\t\treturn !props.integer || (props.integer && !isValidRegex(value, integerExp));\n\t}\n\n\t/**\n\t * @param value The string that needs to be checked for float\n\t * @returns If float need not be checked, then return true.\n\t * - If float needs to be checked, then\n\t * - if value is valid float, then return true; otherwise, return false\n\t */\n\tfunction isValidFloat(value: string): boolean {\n\t\treturn !props.float || (props.float && !isValidRegex(value, props.float));\n\t}\n\n\t/**\n\t * @param value The value that is required\n\t * @returns If required need not be checked, then return true.\n\t * - If required needs to be checked, return true if value is not present; false if value is present\n\t */\n\tfunction isRequired(value: any): boolean {\n\t\treturn !props.required || (props.required && !!required(value));\n\t}\n\n\t/**\n\t * @param value The value that is to be validated\n\t * @returns If min need not be checked, then return true.\n\t * - If min needs to be checked, return true if value < min; false if value >= min\n\t */\n\tfunction isLessThanMin(value: string): boolean {\n\t\treturn props.min === undefined || !!grtrThanEqTo(+value, props.min);\n\t}\n\n\t/**\n\t * @param value The value that is to be validated\n\t * @returns If max need not be checked, then return true.\n\t * - If max needs to be checked,\n\t * - throw error if value is string\n\t * - return true if value > max; false if value <= min\n\t */\n\tfunction isGrtrThanMax(value: string): boolean {\n\t\treturn props.max === undefined || !!lessThanEqTo(+value, props.max);\n\t}\n\n\t/**\n\t * @param value The value that is to be validated\n\t * @returns true if value is multiple of `multiple`; false otherwise\n\t */\n\tfunction isMultiple(value: string): boolean {\n\t\treturn !!multipleValidation(+value, multiple);\n\t}\n\n\t/**\n\t * This function runs on blur.\n\t * This removes the focus class on input_field_cont and removes commas.\n\t * This function calls the onBlur callback function with all the errors.\n\t */\n\tfunction handleBlur() {\n\t\tsetFocusClass(\"\");\n\t\tvalue && setValue((+value).toLocaleString(\"en-IN\")); // add commas\n\n\t\tlet errorObj: indexer = {};\n\n\t\tif (props.required) {\n\t\t\terrorObj = { ...errorObj, required: isRequired(value) }; // set isRequired error\n\t\t}\n\t\tif (props.min) {\n\t\t\terrorObj = { ...errorObj, min: isLessThanMin(value) }; // set error for min\n\t\t}\n\t\tif (props.max) {\n\t\t\terrorObj = { ...errorObj, max: isGrtrThanMax(value) }; // set error for max\n\t\t}\n\t\tif (props.multiple) {\n\t\t\terrorObj = { ...errorObj, multiple: isMultiple(value) }; // set error for multiple\n\t\t}\n\t\tprops.onBlur(errorObj);\n\t}\n\n\t/**\n\t * Checks for all the validations and then changes value accordingly\n\t * @param e The input event\n\t */\n\tfunction handleChange(e: React.ChangeEvent) {\n\t\tlet resolvedValue: string;\n\t\tif (\n\t\t\t(+e.target.value || e.target.value === \"\" || e.target.value === \"0\") &&\n\t\t\tisValidInteger(e.target.value) &&\n\t\t\tisValidFloat(e.target.value)\n\t\t) {\n\t\t\t// if value needs to be changed then process the new value\n\t\t\tresolvedValue = e.target.value;\n\t\t} else {\n\t\t\t// otherwise process the previous state\n\t\t\tresolvedValue = value;\n\t\t}\n\n\t\tsetValue(resolvedValue || \"\"); // set the new value\n\t\tprops.onChange(+resolvedValue); // call onchange callback\n\t}\n\n\t/**\n\t * If `value` is not a multiple of `roundTo`, then return the largest possible value that is multiple of `roundTo`\n\t * @param value value to be rounded\n\t * @param roundTo round to this number\n\t * @returns rounded number\n\t */\n\tfunction customFloor(value: number, roundTo: number) {\n\t\treturn Math.floor(value / roundTo) * roundTo;\n\t}\n\n\t/**\n\t * On up and down key, change the value by multiple\n\t * @param e keypress event\n\t */\n\tfunction onArrowKeyPress(e: React.KeyboardEvent) {\n\t\t// find the new value\n\t\tlet resolvedValue: number = +value;\n\t\tif (e.keyCode === EArrowKeys.UpArrow) {\n\t\t\tresolvedValue = customFloor(+value, multiple) + multiple;\n\t\t} else if (e.keyCode === EArrowKeys.DownArrow) {\n\t\t\tresolvedValue = customFloor(+value, multiple) - multiple;\n\t\t}\n\n\t\t// check for min/max validations\n\t\tif (\n\t\t\t(props.min !== undefined && isLessThanMin(resolvedValue.toString())) ||\n\t\t\t(props.max !== undefined && isGrtrThanMax(resolvedValue.toString()))\n\t\t) {\n\t\t\tprops.onChange(+value);\n\t\t\treturn;\n\t\t}\n\n\t\t// if valid, then set the new value\n\t\tsetValue(resolvedValue.toString() || \"\"); // set the new value\n\t\tprops.onChange(resolvedValue); // call onchange callback\n\t}\n\n\tfunction increaseCount() {\n\t\tconst newValue = customFloor(+value, multiple) + multiple;\n\n\t\tsetValue(newValue.toString());\n\t\tprops.onChange(newValue);\n\t}\n\n\tfunction decreaseCount() {\n\t\tconst newValue = customFloor(+value, multiple) - multiple;\n\n\t\tsetValue(newValue.toString());\n\t\tprops.onChange(newValue);\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t= +value) || props.errorText ? \" disabled\" : focusClass)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={decreaseCount}\n\t\t\t\t\t\t>\n\t\t\t\t\t
    \n\t\t\t\t\t setFocusClass(\" focus\")}\n\t\t\t\t\t\tonBlur={handleBlur}\n\t\t\t\t\t\tonKeyDown={onArrowKeyPress}\n\t\t\t\t\t/>\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t{!isMobile &&

    {props.helpTextGrey}

    }\n\t\t\t{props.errorText ? (\n\t\t\t\t

    {props.errorText}

    \n\t\t\t) : (\n\t\t\t\t

    {props.helpTextBlue}

    \n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default OpTotalPeriod;\n","import React, { useState } from \"react\";\nimport OpBuySellTag from \"../generic/opBuySellTag\";\nimport { EBuyOrSell, IListObj } from \"../../../types/genericTypes\";\nimport RadioButton from \"../../../generic/radioButton\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport InputField from \"../../../generic/inputField\";\nimport OpInputNumField from \"../generic/opInputNumField\";\nimport OpMandateDropdown from \"./../generic/opMandateDropdown\";\nimport OpDropdown from \"../generic/opDropdown\";\nimport NavigationTag from \"../../../generic/navigationTag\";\nimport OpExplainButton, { IOpTooltip } from \"./../generic/opExplainButton\";\nimport OpCalender from \"../generic/opCalender\";\nimport OpGenerateMandate, { IOpGenerateMandateProps } from \"../opGenerateMandate/opGenerateMandate\";\nimport OpInsufficientFunds from \"../opInsufficientFunds/opInsufficientFunds\";\nimport OpOrderStatus from \"../opOrderStatus/opOrderStatus\";\nimport OpConfirmation, { IConfirmationContent } from \"../opConfirmation/opConfirmation\";\nimport \"../../../../assets/scss/components/toc/orderPlacement/sample/opSampleComponents.scss\";\nimport OpTotalPeriod from \"../generic/opTotalPeriod\";\nimport indexer from \"./../../../types/genericTypes\";\n\nexport interface IOpSampleComponentsProps {}\n\nconst OpSampleComponents: React.FC = () => {\n\tconst sampleList: Array = [\n\t\t{ value: \"lorem ipsum\", display: \"Lorem ipsum\" },\n\t\t{ value: \"dolor\", display: \"Dolor\" }\n\t];\n\n\tconst [selectedRadio, setSelectedRadio] = useState(undefined as string | number | undefined);\n\n\tconst tagList: Array = [\n\t\t{ value: \"regular\", display: \"Regular\" },\n\t\t{ value: \"direct\", display: \"Direct\" }\n\t];\n\n\tconst tooltipData: Array = [\n\t\t{\n\t\t\theading: \"Regular\",\n\t\t\tdescription: \"Lorem Ipsum Dolor Sit Lorem Ipsum Dolor Sit Lorem Ipsum Dolor Sit Lorem Ipsum Dolor Sit Lorem Ipsum Dolor.\"\n\t\t},\n\t\t{\n\t\t\theading: \"Direct\",\n\t\t\tdescription: \"Lorem Ipsum Dolor Sit Lorem Ipsum Dolor Sit Lorem Ipsum Dolor Sit Lorem Ipsum Dolor Sit Lorem Ipsum Dolor.\"\n\t\t}\n\t];\n\n\tconst dummyText = `Lorem ipsum dolor sit, amet consectetur adipisicing elit. Dignissimos\n\t\tmodi impedit enim, maxime labore, vel sequi corrupti saepe facilis totam tempora! Non quas\n\t\tdolorum debitis corrupti quae eligendi suscipit ipsum!`;\n\n\tconst opGenerateMandateProps: IOpGenerateMandateProps = {\n\t\tcompanyName: \"HDFC Balanced Advantage Fund Lorem Ipsum Dolor\",\n\t\tcontentArr: [\n\t\t\t{ label: \"SIP Amount\", value: \"₹ 20,000\" },\n\t\t\t{ label: \"Start Date\", value: \"05 Jan 2010\" },\n\t\t\t{ label: \"Frequency\", value: \"Monthly\" }\n\t\t],\n\t\tonEdit: onButtonClick\n\t};\n\n\tconst contentForConfirmationScreen: Array = [\n\t\t{ field: \"Action\", value: \"SIP\" },\n\t\t{ field: \"Investment Type\", value: \"Quantity\" },\n\t\t{ field: \"Number of Shares\", value: \"1\" },\n\t\t{ field: \"Order Type\", value: \"Market\" },\n\t\t{ field: \"Product Type\", value: \"NRML\" }\n\t];\n\n\tconst contentForConfirmationScreen1: Array = [\n\t\t{ field: \"Appx. Units\", value: \"0.5678\" },\n\t\t{ field: \"Total Order Value\", value: \"₹100\" },\n\t\t{ field: \"SIP Type\", value: \"Perpectual\" },\n\t\t{ field: \"Frequency\", value: \"Monthly\" },\n\t\t{ field: \"Duration\", value: \"Until Cancelled\" }\n\t];\n\n\tconst contentForConfirmationScreen2: Array = [\n\t\t{ field: \"Action\", value: \"Buy\" },\n\t\t{ field: \"Number of lots\", value: \"1\" },\n\t\t{ field: \"Total Order Value\", value: \"₹ 9,37,500.00\" },\n\t\t{ field: \"Order Type\", value: \"Market\" },\n\t\t{ field: \"Product Type\", value: \"FNO Plus- NRML\" }\n\t];\n\n\tfunction onBuySellTagSelect(tagName: EBuyOrSell) {\n\t\tconsole.log(tagName);\n\t}\n\n\tfunction onRadioSelect(val: string | number) {\n\t\tconsole.log(val);\n\t}\n\n\tfunction onInputChange(val: string) {\n\t\tconsole.log(val);\n\t}\n\n\tfunction onInputBlur(val: indexer) {\n\t\tconsole.log(val);\n\t}\n\n\tfunction onTotalPeriodChange(val: number) {\n\t\tconsole.log(val);\n\t}\n\n\tfunction onButtonClick(e: React.MouseEvent) {\n\t\tconsole.log(e);\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t

    Asset Classes

    \n\t\t\t

    Buy/Sell Tags:

    \n\t\t\t\n\n\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\n\t\t\t

    Radio Buttons:

    \n\t\t\t
      \n\t\t\t\t{sampleList.map(item => (\n\t\t\t\t\t
    • onRadioSelect(item.value)}>\n\t\t\t\t\t\t setSelectedRadio(item.value)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
    • \n\t\t\t\t))}\n\t\t\t
    \n\n\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\n\t\t\t

    Fund transfer:

    \n\t\t\t{!DeviceContext().isMobile && (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\tFund Type\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t)}\n\n\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\n\t\t\t{/* These input boxes have max-width=280px in desktop, if small size is needed, then wrap in a div of small size */}\n\t\t\t

    Input field (grey help text):

    \n\t\t\t\n\t\t\t
    \n\t\t\t

    Input field (blue help text):

    \n\t\t\t\n\t\t\t
    \n\t\t\t

    Input field (error text):

    \n\t\t\t\n\t\t\t
    \n\t\t\t

    Input field (error and help text):

    \n\t\t\t\n\t\t\t
    \n\t\t\t

    Input num field - comma separated on blur - (grey help text):

    \n\t\t\t\n\n\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\n\t\t\t

    Mandate Dropdown + Mandate button

    \n\t\t\t\n\n\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\n\t\t\t

    Order placement dropdown

    \n\t\t\t\n\n\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\n\t\t\t

    Calender (css not done yet)

    \n\t\t\t\n\n\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\n\t\t\t

    Generate mandate

    \n\t\t\t\n\n\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\n\t\t\t

    Insufficient funds error:

    \n\t\t\t\n\n\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\n\t\t\t

    Order Status screen:

    \n\t\t\t\n\n\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\n\t\t\t

    Order confirmation screens:

    \n\t\t\t\n\n\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\n\t\t\t\n\n\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\n\t\t\t\n\t\t\t\t\t\t

    Note

    \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
    • Orders will be placed on nearest available business day on or after the SIP date
    • \n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\tAll E-SIP orders will be placed under “Delivery Plus - NRML” product type. On E-SIP due date, in case you do not have\n\t\t\t\t\t\t\t\tsufficient cash in your account equivalent to the order requirement, system will consider total limits available for order\n\t\t\t\t\t\t\t\tplacement including stocks collateral. The debit (if any) post the E-SIP order placement will have to be cleared within 5\n\t\t\t\t\t\t\t\tdays post the settlement day to avoid liquidation\n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t}\n\t\t\t\tonCancel={onButtonClick}\n\t\t\t\tonConfirm={onButtonClick}\n\t\t\t/>\n\n\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\n\t\t\t

    Total Period input:

    \n\t\t\t\n\n\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default OpSampleComponents;\n","import * as React from \"react\";\nimport OpInputNumField from \"../generic/opInputNumField\";\nimport indexer from \"./../../../types/genericTypes\";\nimport \"../../../../assets/scss/components/toc/orderPlacement/sample/opSampleComponents.scss\";\nimport { floatNumExp } from \"../../../utils/regex\";\nimport InputField from \"../../../generic/inputField\";\nimport OpTotalPeriod from \"../generic/opTotalPeriod\";\n\nexport interface IOpSampleValidationsProps {}\n\nconst OpSampleValidations: React.FC = () => {\n\tconst [inputErrors, setInputErrors] = React.useState({});\n\n\tfunction onInputChange(val: string) {\n\t\tconsole.log(val);\n\t}\n\n\tfunction onInputBlur(key: string, error?: indexer) {\n\t\tconsole.log(error);\n\t\tsetInputErrors({ ...inputErrors, [key]: error });\n\t}\n\n\tfunction showError(index: string, validationText?: indexer) {\n\t\t// if error is not there, then return\n\t\tif (!inputErrors[index]) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// otherwise return error message\n\t\tif (inputErrors[index].required) {\n\t\t\treturn \"Input is required\";\n\t\t}\n\t\tif (inputErrors[index].min) {\n\t\t\treturn \"Input should be greater than equal to \" + validationText!.min;\n\t\t}\n\t\tif (inputErrors[index].max) {\n\t\t\treturn \"Input should be less than equal to \" + validationText!.max;\n\t\t}\n\t\tif (inputErrors[index].multiple) {\n\t\t\treturn \"Input should be multiple of \" + validationText!.multiple;\n\t\t}\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t

    Required + numeric:

    \n\t\t\t onInputChange(val)}\n\t\t\t\tonBlur={error => onInputBlur(\"first\", error)}\n\t\t\t\tplaceholder=\"Enter Amount\"\n\t\t\t\tprefix=\"prefix\"\n\t\t\t\terrorText={showError(\"first\")}\n\t\t\t\trequired\n\t\t\t/>\n\n\t\t\t
    \n\t\t\t
    \n\n\t\t\t

    Integer:

    \n\t\t\t onInputChange(val)}\n\t\t\t\tonBlur={error => onInputBlur(\"second\", error)}\n\t\t\t\tplaceholder=\"Enter Amount\"\n\t\t\t\tsuffix=\"suffix\"\n\t\t\t\tinteger\n\t\t\t/>\n\n\t\t\t
    \n\t\t\t
    \n\n\t\t\t

    Float (two decimals):

    \n\t\t\t onInputChange(val)}\n\t\t\t\tonBlur={error => onInputBlur(\"third\", error)}\n\t\t\t\tplaceholder=\"Enter Amount\"\n\t\t\t\tprefix=\"prefix\"\n\t\t\t\tsuffix=\"suffix\"\n\t\t\t\tfloat={floatNumExp()}\n\t\t\t/>\n\n\t\t\t
    \n\t\t\t
    \n\n\t\t\t

    Alpha numeric

    \n\t\t\t onInputChange(val)}\n\t\t\t\tonBlur={error => onInputBlur(\"fourth\", error)}\n\t\t\t\tplaceholder=\"Enter Amount\"\n\t\t\t\talphanum\n\t\t\t/>\n\n\t\t\t
    \n\t\t\t
    \n\n\t\t\t

    Minimum

    \n\t\t\t onInputChange(val)}\n\t\t\t\tonBlur={error => onInputBlur(\"fifth\", error)}\n\t\t\t\tplaceholder=\"Enter Amount\"\n\t\t\t\tmin={2}\n\t\t\t\tsuffix=\"Min: 2\"\n\t\t\t\terrorText={showError(\"fifth\", { min: \"2\" })}\n\t\t\t/>\n\n\t\t\t
    \n\t\t\t
    \n\n\t\t\t

    Maximum

    \n\t\t\t onInputChange(val)}\n\t\t\t\tonBlur={error => onInputBlur(\"sixth\", error)}\n\t\t\t\tplaceholder=\"Enter Amount\"\n\t\t\t\tmax={20}\n\t\t\t\tsuffix=\"Max: 20\"\n\t\t\t\terrorText={showError(\"sixth\", { max: \"20\" })}\n\t\t\t/>\n\n\t\t\t
    \n\t\t\t
    \n\n\t\t\t

    Multiple

    \n\t\t\t onInputChange(val)}\n\t\t\t\tonBlur={error => onInputBlur(\"seventh\", error)}\n\t\t\t\tplaceholder=\"Enter Amount\"\n\t\t\t\tmultiple={4}\n\t\t\t\thelpText=\"Enter multiple of 4 only\"\n\t\t\t\terrorText={showError(\"seventh\", { multiple: \"4\" })}\n\t\t\t/>\n\n\t\t\t
    \n\t\t\t
    \n\n\t\t\t

    Multiple with max validation

    \n\t\t\t onInputChange(val)}\n\t\t\t\tonBlur={error => onInputBlur(\"eighth\", error)}\n\t\t\t\tplaceholder=\"Enter Amount\"\n\t\t\t\tmultiple={5}\n\t\t\t\tmax={40}\n\t\t\t\tsuffix=\"Max: 40\"\n\t\t\t\thelpText=\"Enter multiple of 5 only\"\n\t\t\t\terrorText={showError(\"eighth\", { max: \"40\", multiple: \"4\" })}\n\t\t\t/>\n\n\t\t\t
    \n\t\t\t
    \n\n\t\t\t

    Multiple with max validation (Total Period)

    \n\t\t\t onInputChange(val.toString())}\n\t\t\t\tonBlur={error => onInputBlur(\"ninth\", error)}\n\t\t\t\tmultiple={5}\n\t\t\t\tmax={40}\n\t\t\t\thelpTextGrey=\"Enter multiple of 5 only\"\n\t\t\t\thelpTextBlue=\"Max : 40\"\n\t\t\t\terrorText={showError(\"ninth\", { max: \"40\", multiple: \"4\" })}\n\t\t\t/>\n\n\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default OpSampleValidations;\n","import * as React from \"react\";\nimport \"../../../../assets/scss/components/toc/orderPlacement/opLayout/opLayoutDsk.scss\";\nimport \"../../../../assets/scss/components/toc/orderPlacement/opLayout/opLayoutTab.scss\";\nimport \"../../../../assets/scss/components/toc/orderPlacement/opLayout/opLayoutMob.scss\";\n\nexport interface OpLayoutProps {\n\tquoteComp: React.ReactNode;\n}\n\nconst OpLayout: React.FC = (props) => {\n\treturn
    \n\t\t
    {props.quoteComp}
    \n\t\t
    \n\t
    ;\n};\n\nexport default OpLayout;\n","// To be used for the heading part of\n// everything except MF\n\nimport * as React from \"react\";\nimport moment from \"moment\";\nimport { toINR } from \"../../../../service/numberFormat\";\n\nexport interface IOpQuotesHeadingDskProps {\n\tdpNm: string;\n\tltp?: string;\n\tchLTP?: string;\n\tchLTPPer?: string;\n\texc?: string;\n\tltt?: string;\n\texpiry?: string;\n\tdateRange?: string;\n}\n\nconst OpQuotesHeadingDsk: React.FC = props => {\n\treturn (\n\t\t
    \n\t\t\t

    {props.dpNm || \"--\"}

    \n\t\t\t{props.expiry &&
    {props.expiry}
    }\n\t\t\t{props.ltp && (\n\t\t\t\t
    \n\t\t\t\t\t{toINR(props.ltp)}\n\t\t\t\t\t 0 ? \"green\" : +props.chLTP! < 0 ? \"red\" : \"\")}>{props.chLTP}\n\t\t\t\t\t{props.chLTPPer && (\n\t\t\t\t\t\t 0 ? \"green\" : +props.chLTPPer! < 0 ? \"red\" : \"\")}>({props.chLTPPer}%)\n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t)}\n\t\t\t{props.dateRange &&
    {props.dateRange}
    }\n\t\t\t{props.exc && (\n\t\t\t\t
    \n\t\t\t\t\tOn {props.exc} - {props.ltt ? moment(props.ltt).format(\"DD MMM YYYY, hh:mm:ss A\") : \"--\"}\n\t\t\t\t
    \n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default OpQuotesHeadingDsk;\n","import * as React from \"react\";\nimport { IOpLabelValue } from \"../../../../types/components/orderPlacement/opTypes\";\n\nexport interface IOpQuotesTwoColDataProps {\n\tdata: Array;\n}\n\nconst OpQuotesTwoColData: React.FC = props => {\n\treturn (\n\t\t
    \n\t\t\t{props.data.map(d => (\n\t\t\t\t
    \n\t\t\t\t\t
    {d.label}
    \n\t\t\t\t\t
    {d.value}
    \n\t\t\t\t
    \n\t\t\t))}\n\t\t
    \n\t);\n};\n\nexport default OpQuotesTwoColData;\n","import * as React from \"react\";\nimport OpQuotesTwoColData from \"./opQuotesTwoColData\";\nimport DeviceContext from \"../../../../service/indentifyDevice\";\nimport { IOpLabelValue } from \"../../../../types/components/orderPlacement/opTypes\";\nimport { useRouteMatch } from \"react-router-dom\";\nimport { toINR } from \"../../../../service/numberFormat\";\n\nexport interface IOpMarketDepthTableProps {\n\topen?: string;\n\tvolume?: string;\n\thigh?: string;\n\tlow?: string;\n\ttBidQty?: string;\n\ttAskQty?: string;\n\task?: Array;\n\tbid?: Array;\n\tspot?: string;\n\topInt?: string;\n\topIntChgP?: string;\n\thiCt?: string;\n\tloCt?: string;\n\tltSz?: string;\n\tbidivfut?: string;\n\tmns?: string;\n}\n\nconst OpMarketDepthTable: React.FC = props => {\n\tconst futOpt = useRouteMatch().url.split(\"/\")[3];\n\n\tconst lastSectionData: Array = [];\n\n\t// push all the available values in last section data\n\tprops.bidivfut && lastSectionData.push({ label: \"Implied Volatility\", value: `₹${props.bidivfut}` });\n\tprops.mns && lastSectionData.push({ label: \"Moneyness\", value: props.mns });\n\tprops.hiCt && lastSectionData.push({ label: \"High Circuit Limit\", value: `₹${props.hiCt}` });\n\tprops.loCt && lastSectionData.push({ label: \"Low Circuit Limit\", value: `₹${props.loCt}` });\n\tprops.ltSz && lastSectionData.push({ label: \"Lot Size\", value: props.ltSz });\n\n\treturn (\n\t\t
    \n\t\t\t{props.spot && (\n\t\t\t\t
    \n\t\t\t\t\t
    {futOpt === \"future\" ? \"Spot\" : \"Future\"} Price
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{toINR(props.spot)} 2441.12 (12.23%)\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t)}\n\n\t\t\t{props.spot &&
    }\n\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\n\t\t\t
    \n\n\t\t\t{props.ask && (\n\t\t\t\t
    \n\t\t\t\t\t
      \n\t\t\t\t\t\t
    • Ord#
    • \n\t\t\t\t\t\t
    • Bid Price (Qty)
    • \n\t\t\t\t\t\t
    • Ask Price (Qty)
    • \n\t\t\t\t\t\t
    • Ord#
    • \n\t\t\t\t\t
    \n\t\t\t\t\t{props.ask.map((a, index) => (\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
    • {props.bid![index].no}
    • \n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t{toINR(props.bid![index].price)} ({props.bid![index].qty})\n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t{toINR(a.price)} ({a.qty})\n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
    • {a.no}
    • \n\t\t\t\t\t\t
    \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t)}\n\n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\t
    T. Bid Qty
    \n\t\t\t\t
    {toINR(props.tBidQty)}
    \n\t\t\t\t
    T. Ask Qty
    \n\t\t\t\t
    {toINR(props.tAskQty)}
    \n\t\t\t
    \n\n\t\t\t{props.opInt &&
    }\n\n\t\t\t{props.opInt && (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t)}\n\n\t\t\t{lastSectionData.length > 0 &&
    }\n\n\t\t\t{lastSectionData.length > 0 && (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default OpMarketDepthTable;\n","import * as React from \"react\";\nimport { IOpLabelValue } from \"../../../../types/components/orderPlacement/opTypes\";\nimport DeviceContext from \"../../../../service/indentifyDevice\";\n\nexport interface IOpQuotesHoldingsProps {\n\tdata: Array;\n\thldgOrPos: \"holding\" | \"position\";\n}\n\nconst OpQuotesHoldings: React.FC = props => {\n\treturn (\n\t\t
    \n\t\t\t{DeviceContext().isDesktop &&
    YOUR {props.hldgOrPos.toUpperCase()}
    }\n\t\t\t{props.data.map(d => (\n\t\t\t\t
    \n\t\t\t\t\t{d.label}\n\t\t\t\t\t{d.value}\n\t\t\t\t
    \n\t\t\t))}\n\t\t
    \n\t);\n};\n\nexport default OpQuotesHoldings;\n","import * as React from \"react\";\nimport OpQuotesHeadingDsk, { IOpQuotesHeadingDskProps } from \"../partials/opQuotesHeadingDsk\";\nimport OpMarketDepthTable from \"../partials/opMarketDepthTable\";\nimport OpQuotesHoldings from \"../partials/opQuotesHoldings\";\nimport \"../../../../../assets/scss/components/toc/orderPlacement/opQuotes/opQuotesDsk.scss\";\nimport { IOpMarketDepthTableProps } from \"./../partials/opMarketDepthTable\";\nimport { useRouteMatch } from \"react-router-dom\";\nimport { toINR } from \"../../../../service/numberFormat\";\n\nexport interface IOpQuotesEquityDskProps {\n\tquoteData: any;\n\tholdingData?: any;\n}\n\nconst OpQuotesEquityDsk: React.FC = props => {\n\tconst futOpt = useRouteMatch().url.split(\"/\")[3];\n\n\tconst quotesHeadingProps: IOpQuotesHeadingDskProps = {\n\t\tdpNm: props.quoteData.qt?.dpNm,\n\t\tltp: props.quoteData.qt?.ltp,\n\t\tchLTP: props.quoteData.qt?.chg,\n\t\tchLTPPer: props.quoteData.qt?.chgP,\n\t\texc: props.quoteData.qt?.exc,\n\t\tltt: props.quoteData.qt?.ltt,\n\t\texpiry:\n\t\t\tfutOpt === \"future\"\n\t\t\t\t? `${props.quoteData.qt?.dpExpDt} ${props.quoteData.qt?.dpInsTyp || \"\"}`\n\t\t\t\t: futOpt === \"option\"\n\t\t\t\t? `${props.quoteData.qt?.dpExpDt} ${props.quoteData.qt?.opTyp} ${props.quoteData.qt?.stkPrc}`\n\t\t\t\t: undefined\n\t};\n\n\tconst quotesDetilsProps: IOpMarketDepthTableProps = {\n\t\topen: props.quoteData.qt?.o,\n\t\tvolume: props.quoteData.qt?.vol,\n\t\thigh: props.quoteData.qt?.h,\n\t\tlow: props.quoteData.qt?.l,\n\t\ttBidQty: props.quoteData.mkd?.buyQty,\n\t\ttAskQty: props.quoteData.mkd?.sellQty,\n\t\task: props.quoteData.mkd?.ask,\n\t\tbid: props.quoteData.mkd?.bid,\n\t\tspot: futOpt === \"future\" || futOpt === \"option\" ? props.quoteData.qt?.spot : undefined,\n\t\topInt: futOpt === \"future\" || futOpt === \"option\" ? props.quoteData.qt?.opInt : undefined,\n\t\topIntChgP: futOpt === \"future\" || futOpt === \"option\" ? props.quoteData.qt?.opIntChgP : undefined,\n\t\thiCt: futOpt === \"future\" || futOpt === \"option\" ? props.quoteData.qt?.hiCt : undefined,\n\t\tloCt: futOpt === \"future\" || futOpt === \"option\" ? props.quoteData.qt?.loCt : undefined,\n\t\tltSz: futOpt === \"future\" || futOpt === \"option\" ? props.quoteData.qt?.ltSz : undefined,\n\t\tbidivfut: futOpt === \"option\" ? props.quoteData.qt?.bidivfut : undefined,\n\t\tmns: futOpt === \"option\" ? props.quoteData.qt?.mns : undefined\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t\n\n\t\t\t\n\n\t\t\t{props.holdingData && (\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{props.quoteData && }\n\t\t
    \n\t);\n};\n\nexport default OpQuotesEquityDsk;\n","import * as React from \"react\";\nimport OpQuotesHeadingDsk, { IOpQuotesHeadingDskProps } from \"../partials/opQuotesHeadingDsk\";\nimport OpMarketDepthTable, { IOpMarketDepthTableProps } from \"../partials/opMarketDepthTable\";\nimport OpQuotesHoldings from \"../partials/opQuotesHoldings\";\nimport \"../../../../../assets/scss/components/toc/orderPlacement/opQuotes/opQuotesTab.scss\";\nimport { useRouteMatch } from \"react-router-dom\";\nimport { toINR } from \"../../../../service/numberFormat\";\n\nexport interface IOpQuotesEquityTabProps {\n\tquoteData: any;\n\tholdingData?: any;\n}\n\nconst OpQuotesEquityTab: React.FC = props => {\n\tconst [showHoldings, setShowHoldings] = React.useState(false);\n\tconst [showMarketDepth, setShowMarketDepth] = React.useState(false);\n\tconst futOpt = useRouteMatch().url.split(\"/\")[3];\n\n\tconst quotesHeadingProps: IOpQuotesHeadingDskProps = {\n\t\tdpNm: props.quoteData.qt?.dpNm,\n\t\tltp: props.quoteData.qt?.ltp,\n\t\tchLTP: props.quoteData.qt?.chg,\n\t\tchLTPPer: props.quoteData.qt?.chgP,\n\t\texc: props.quoteData.qt?.exc,\n\t\tltt: props.quoteData.qt?.ltt,\n\t\texpiry:\n\t\t\tfutOpt === \"future\"\n\t\t\t\t? `${props.quoteData.qt?.dpExpDt} ${props.quoteData.qt?.dpInsTyp || \"\"}`\n\t\t\t\t: futOpt === \"option\"\n\t\t\t\t? `${props.quoteData.qt?.dpExpDt} ${props.quoteData.qt?.opTyp} ${props.quoteData.qt?.stkPrc}`\n\t\t\t\t: undefined\n\t};\n\n\tconst quotesDetilsProps: IOpMarketDepthTableProps = {\n\t\topen: props.quoteData.qt?.o,\n\t\tvolume: props.quoteData.qt?.vol,\n\t\thigh: props.quoteData.qt?.h,\n\t\tlow: props.quoteData.qt?.l,\n\t\ttBidQty: props.quoteData.mkd?.buyQty,\n\t\ttAskQty: props.quoteData.mkd?.sellQty,\n\t\task: props.quoteData.mkd?.ask,\n\t\tbid: props.quoteData.mkd?.bid,\n\t\tspot: futOpt === \"future\" || futOpt === \"option\" ? props.quoteData.qt?.spot : undefined,\n\t\topInt: futOpt === \"future\" || futOpt === \"option\" ? props.quoteData.qt?.opInt : undefined,\n\t\topIntChgP: futOpt === \"future\" || futOpt === \"option\" ? props.quoteData.qt?.opIntChgP : undefined,\n\t\thiCt: futOpt === \"future\" || futOpt === \"option\" ? props.quoteData.qt?.hiCt : undefined,\n\t\tloCt: futOpt === \"future\" || futOpt === \"option\" ? props.quoteData.qt?.loCt : undefined,\n\t\tltSz: futOpt === \"future\" || futOpt === \"option\" ? props.quoteData.qt?.ltSz : undefined,\n\t\tbidivfut: futOpt === \"option\" ? props.quoteData.qt?.bidivfut : undefined,\n\t\tmns: futOpt === \"option\" ? props.quoteData.qt?.mns : undefined\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\n\t\t\t\t\n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\tBid:\n\t\t\t\t\t\n\t\t\t\t\t\t{toINR(props.quoteData.mkd?.bid[0].price)} ({props.quoteData.mkd?.bid[0].qty || \"--\"})\n\t\t\t\t\t\n\t\t\t\t\tAsk:\n\t\t\t\t\t\n\t\t\t\t\t\t{toINR(props.quoteData.mkd?.ask[0].price)} ({props.quoteData.mkd?.ask[0].qty || \"--\"})\n\t\t\t\t\t\n\t\t\t\t
    \n\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{props.holdingData && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{showHoldings && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t
    setShowHoldings(false)} />\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\n\t\t\t\t\t\t{showMarketDepth && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t
    setShowMarketDepth(false)} />\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default OpQuotesEquityTab;\n","// To be used for the heading part\n\nimport * as React from \"react\";\nimport moment from \"moment\";\nimport { toINR } from \"../../../../service/numberFormat\";\n\nexport interface IOpQuotesHeadingMobProps {\n\tdpNm: string;\n\tltp?: string;\n\tchLTP?: string;\n\tchLTPPer?: string;\n\texc?: string;\n\tltt?: string;\n\texpiry?: string;\n\tdateRange?: string;\n}\n\nconst OpQuotesHeadingMob: React.FC = props => {\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t

    \n\t\t\t\t\t{props.dpNm || \"--\"}\n\t\t\t\t\t{props.exc && {props.exc}}\n\t\t\t\t

    \n\t\t\t\t{props.expiry &&
    {props.expiry}
    }\n\t\t\t\t{props.ltt && (\n\t\t\t\t\t
    \n\t\t\t\t\t\t 0 ? \"green\" : +props.chLTP! < 0 ? \"red\" : \"\")}>\n\t\t\t\t\t\t{moment(props.ltt).format(\"hh:mm:ss A\")}\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{props.ltp &&
    {toINR(props.ltp)}
    }\n\t\t\t\t{props.chLTP && (\n\t\t\t\t\t
    0 ? \"green\" : +props.chLTP! < 0 ? \"red\" : \"\")}>\n\t\t\t\t\t\t{props.chLTP} ({props.chLTPPer}%)\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t\t{props.dateRange &&
    {props.dateRange}
    }\n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default OpQuotesHeadingMob;\n","import * as React from \"react\";\nimport OpQuotesHeadingMob from \"../partials/opQuotesHeadingMob\";\nimport OpMarketDepthTable, { IOpMarketDepthTableProps } from \"../partials/opMarketDepthTable\";\nimport OpQuotesHoldings from \"../partials/opQuotesHoldings\";\nimport \"../../../../../assets/scss/components/toc/orderPlacement/opQuotes/opQuotesMob.scss\";\nimport { useRouteMatch } from \"react-router-dom\";\nimport { IOpQuotesHeadingDskProps } from \"../partials/opQuotesHeadingDsk\";\nimport { toINR } from \"../../../../service/numberFormat\";\n\nexport interface IOpQuotesEquityMobProps {\n\tquoteData: any;\n\tholdingData?: any;\n}\n\nconst OpQuotesEquityMob: React.FC = props => {\n\tconst [showHoldings, setShowHoldings] = React.useState(false);\n\tconst [showMarketDepth, setShowMarketDepth] = React.useState(false);\n\tconst futOpt = useRouteMatch().url.split(\"/\")[3];\n\n\tconst quotesHeadingProps: IOpQuotesHeadingDskProps = {\n\t\tdpNm: props.quoteData.qt?.dpNm,\n\t\tltp: props.quoteData.qt?.ltp,\n\t\tchLTP: props.quoteData.qt?.chg,\n\t\tchLTPPer: props.quoteData.qt?.chgP,\n\t\texc: props.quoteData.qt?.exc,\n\t\tltt: props.quoteData.qt?.ltt,\n\t\texpiry:\n\t\t\tfutOpt === \"future\"\n\t\t\t\t? `${props.quoteData.qt?.dpExpDt} ${props.quoteData.qt?.dpInsTyp || \"\"}`\n\t\t\t\t: futOpt === \"option\"\n\t\t\t\t? `${props.quoteData.qt?.dpExpDt} ${props.quoteData.qt?.opTyp} ${props.quoteData.qt?.stkPrc}`\n\t\t\t\t: undefined\n\t};\n\n\tconst quotesDetilsProps: IOpMarketDepthTableProps = {\n\t\topen: props.quoteData.qt?.o,\n\t\tvolume: props.quoteData.qt?.vol,\n\t\thigh: props.quoteData.qt?.h,\n\t\tlow: props.quoteData.qt?.l,\n\t\ttBidQty: props.quoteData.mkd?.buyQty,\n\t\ttAskQty: props.quoteData.mkd?.sellQty,\n\t\task: props.quoteData.mkd?.ask,\n\t\tbid: props.quoteData.mkd?.bid,\n\t\tspot: futOpt === \"future\" || futOpt === \"option\" ? props.quoteData.qt?.spot : undefined,\n\t\topInt: futOpt === \"future\" || futOpt === \"option\" ? props.quoteData.qt?.opInt : undefined,\n\t\topIntChgP: futOpt === \"future\" || futOpt === \"option\" ? props.quoteData.qt?.opIntChgP : undefined,\n\t\thiCt: futOpt === \"future\" || futOpt === \"option\" ? props.quoteData.qt?.hiCt : undefined,\n\t\tloCt: futOpt === \"future\" || futOpt === \"option\" ? props.quoteData.qt?.loCt : undefined,\n\t\tltSz: futOpt === \"future\" || futOpt === \"option\" ? props.quoteData.qt?.ltSz : undefined,\n\t\tbidivfut: futOpt === \"option\" ? props.quoteData.qt?.bidivfut : undefined,\n\t\tmns: futOpt === \"option\" ? props.quoteData.qt?.mns : undefined\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t\n\n\t\t\t
    \n\t\t\t\t\n\n\t\t\t\t{props.holdingData && (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
    \n\n\t\t\t{showMarketDepth && (\n\t\t\t\t<>\n\t\t\t\t\t
    setShowMarketDepth(false)} />\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\tMarket Depth\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{showHoldings && (\n\t\t\t\t<>\n\t\t\t\t\t
    setShowHoldings(false)} />\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\tYour Holdings\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default OpQuotesEquityMob;\n","import { apiService } from \"../apiService\";\nimport { parsedToken } from \"../storageHelper\";\nimport urlConfig from \"../../../config/domain\";\n\nlet pToken: any = parsedToken(),\n\tuserID = pToken ? pToken.username : null;\n\n//Show quotes\nexport const AGetQuotesNormal = (callback: CallableFunction, symbol: string) => {\n\tapiService(\n\t\t{\n\t\t\turl: urlConfig.orderPlacement.quote + symbol,\n\t\t\tmethod: \"GET\",\n\t\t\tauthType: \"authtoken\",\n\t\t\tappidkey: urlConfig.appidkey\n\t\t},\n\t\tcallback\n\t);\n};\n\n//Show holding of a stock for a client\nexport const AGetHoldingNormal = (callback: CallableFunction, symbol: string) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.orderPlacement.holding + userID + \"?sym=\" + symbol,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\nexport const AGetSchemeDetailsMf = (callback: CallableFunction, isin: string, scode: string) => {\n\tapiService(\n\t\t{\n\t\t\turl: urlConfig.orderPlacement.schemeDetailsMf + \"?isin=\" + isin + \"&scode=\" + scode,\n\t\t\tmethod: \"GET\"\n\t\t},\n\t\tcallback\n\t);\n};\n\nexport const AGetSchemeMf = (callback: CallableFunction, scode: string) => {\n\tapiService(\n\t\t{\n\t\t\turl: urlConfig.orderPlacement.schemeMf + scode,\n\t\t\tmethod: \"GET\"\n\t\t},\n\t\tcallback\n\t);\n};\n\nexport const AGetHoldingMf = (callback: CallableFunction, isin: string) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.orderPlacement.holdingMf + userID + \"/\" + isin,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\nexport const AGetAllHoldingMf = (callback: CallableFunction) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.orderPlacement.holdingMf + userID,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n//Show quotes\nexport const AGetQuotesNfo = (callback: CallableFunction, isin: string) => {\n\tapiService(\n\t\t{\n\t\t\turl: urlConfig.orderPlacement.quoteNfo + isin + \"/PURCHASE\",\n\t\t\tmethod: \"GET\",\n\t\t\tauthType: \"authtoken\"\n\t\t},\n\t\tcallback\n\t);\n};\n\nexport const AGetQuotesExtraNfo = (callback: CallableFunction, scode: string) => {\n\tapiService(\n\t\t{\n\t\t\turl: urlConfig.orderPlacement.quoteExtraNfo + scode,\n\t\t\tmethod: \"GET\",\n\t\t\tauthType: \"authtoken\"\n\t\t},\n\t\tcallback\n\t);\n};\n","import * as React from \"react\";\nimport DeviceContext from \"./../../../service/indentifyDevice\";\nimport OpLayout from \"../opLayout/opLayout\";\nimport OpQuotesEquityDsk from \"../opQuotes/opQuotesEquity/opQuotesEquityDsk\";\nimport OpQuotesEquityTab from \"../opQuotes/opQuotesEquity/opQuotesEquityTab\";\nimport OpQuotesEquityMob from \"../opQuotes/opQuotesEquity/opQuotesEquityMob\";\nimport { AGetQuotesNormal, AGetHoldingNormal } from \"./../../../service/orderPlacement/opApiService\";\nimport { IOpRouteParams } from \"../../../types/components/orderPlacement/opTypes\";\nimport { RouteChildrenProps } from \"react-router-dom\";\n\nexport interface IOpEquityContainerProps {}\n\nexport interface IOpEquityContainerState {\n\tquoteData: any;\n\tholdingData?: any;\n}\n\nclass OpEquityContainer extends React.Component, IOpEquityContainerState> {\n\tstate: IOpEquityContainerState = { quoteData: {} };\n\tquoteComp: any;\n\n\tgetQuotesRes = (res: any) => {\n\t\tif (res.data) {\n\t\t\tthis.setState({ quoteData: res.data });\n\t\t}\n\t};\n\t\n\tgetHoldingRes = (res: any) => {\n\t\tif (res.data) {\n\t\t\tthis.setState({ holdingData: res.data });\n\t\t}\n\t};\n\n\tcomponentDidMount() {\n\t\tAGetQuotesNormal(this.getQuotesRes, this.props.match?.params.sym!);\n\t\tAGetHoldingNormal(this.getHoldingRes, this.props.match?.params.sym!);\n\t}\n\n\trender() {\n\t\tthis.quoteComp = DeviceContext().isDesktop ? (\n\t\t\t\n\t\t) : DeviceContext().isTablet ? (\n\t\t\t\n\t\t) : (\n\t\t\t\n\t\t);\n\t\treturn ;\n\t}\n}\n\nexport default OpEquityContainer;\n","import * as React from \"react\";\nimport DeviceContext from \"./../../../service/indentifyDevice\";\nimport OpLayout from \"../opLayout/opLayout\";\nimport OpQuotesEquityDsk from \"../opQuotes/opQuotesEquity/opQuotesEquityDsk\";\nimport OpQuotesEquityTab from \"../opQuotes/opQuotesEquity/opQuotesEquityTab\";\nimport OpQuotesEquityMob from \"../opQuotes/opQuotesEquity/opQuotesEquityMob\";\nimport { AGetQuotesNormal } from \"./../../../service/orderPlacement/opApiService\";\nimport { RouteChildrenProps } from \"react-router-dom\";\nimport { IOpRouteParams } from \"../../../types/components/orderPlacement/opTypes\";\n\nexport interface IOpFutureContainerProps {}\n\nexport interface IOpFutureContainerState {\n\tquoteData: any;\n}\n\nclass OpFutureContainer extends React.Component, IOpFutureContainerState> {\n\tstate = { quoteData: {} };\n\tquoteComp: any;\n\n\tgetQuotesRes = (res: any) => {\n\t\tif (res.data) {\n\t\t\tthis.setState({ quoteData: res.data });\n\t\t}\n\t};\n\n\tcomponentDidMount() {\n\t\tAGetQuotesNormal(this.getQuotesRes, this.props.match?.params.sym!);\n\t}\n\n\trender() {\n\t\tthis.quoteComp = DeviceContext().isDesktop ? (\n\t\t\t\n\t\t) : DeviceContext().isTablet ? (\n\t\t\t\n\t\t) : (\n\t\t\t\n\t\t);\n\t\treturn ;\n\t}\n}\n\nexport default OpFutureContainer;\n","import * as React from \"react\";\nimport DeviceContext from \"./../../../service/indentifyDevice\";\nimport OpLayout from \"../opLayout/opLayout\";\nimport OpQuotesEquityDsk from \"../opQuotes/opQuotesEquity/opQuotesEquityDsk\";\nimport OpQuotesEquityTab from \"../opQuotes/opQuotesEquity/opQuotesEquityTab\";\nimport OpQuotesEquityMob from \"../opQuotes/opQuotesEquity/opQuotesEquityMob\";\nimport { AGetQuotesNormal } from \"./../../../service/orderPlacement/opApiService\";\nimport { RouteChildrenProps } from \"react-router-dom\";\nimport { IOpRouteParams } from \"../../../types/components/orderPlacement/opTypes\";\n\nexport interface IOpOptionContainerProps {}\n\nexport interface IOpOptionContainerState {\n\tquoteData: any;\n}\n\nclass OpOptionContainer extends React.Component, IOpOptionContainerState> {\n\tstate = { quoteData: {} };\n\tquoteComp: any;\n\n\tgetQuotesRes = (res: any) => {\n\t\tif (res.data) {\n\t\t\tthis.setState({ quoteData: res.data });\n\t\t}\n\t};\n\n\tcomponentDidMount() {\n\t\tAGetQuotesNormal(this.getQuotesRes, this.props.match?.params.sym!);\n\t}\n\n\trender() {\n\t\tthis.quoteComp = DeviceContext().isDesktop ? (\n\t\t\t\n\t\t) : DeviceContext().isTablet ? (\n\t\t\t\n\t\t) : (\n\t\t\t\n\t\t);\n\t\treturn ;\n\t}\n}\n\nexport default OpOptionContainer;\n","// To be used for the heading part of\n// MF only\n\nimport * as React from \"react\";\nimport DeviceContext from \"./../../../../service/indentifyDevice\";\n\nexport interface IOpQuotesHeadingMfDskProps {\n\tSchemeName?: string;\n\tnav?: number;\n\tchangeinnav?: number;\n\tchangeinnavper?: number;\n\tnavdateformat?: string;\n}\n\nconst OpQuotesHeadingMfDsk: React.FC = props => {\n\t// input: date in the format => DDo MMMM YYYY\n\t// output: date in the format => DD MMM YYYY\n\tfunction changeDateFormat(date: string) {\n\t\tlet splitDate = date.split(\" \");\n\t\tsplitDate[0] = splitDate[0].slice(0, 2); // get the number part only (starts with 0 if less than 10)\n\t\tsplitDate[1] = splitDate[1].slice(0, 3); // get the first three chars of month\n\t\treturn splitDate.join(\" \");\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t

    {props.SchemeName || \"--\"}

    \n\t\t\t
    \n\t\t\t\t
    NAV - ({props.navdateformat && changeDateFormat(props.navdateformat)})
    \n\t\t\t\t{!DeviceContext().isTablet && (\n\t\t\t\t\t
    \n\t\t\t\t\t\t{props.nav !== undefined ? props.nav : \"--\"}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{props.changeinnav !== undefined ? props.changeinnav : \"--\"}{\" \"}\n\t\t\t\t\t\t\t{props.changeinnavper !== undefined ? `(${props.changeinnavper}%)` : \"--\"}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default OpQuotesHeadingMfDsk;\n","import * as React from \"react\";\nimport { IOpLabelValue } from \"../../../../types/components/orderPlacement/opTypes\";\nimport { range } from \"./../../../../service/rangeGen\";\n\nexport interface IOpMarketDepthListProps {\n\tdata: Array;\n}\n\nconst OpMarketDepthList: React.FC = props => {\n\treturn (\n\t\t
    \n\t\t\t{props.data.map(d => (\n\t\t\t\t
    \n\t\t\t\t\t{d.label}\n\t\t\t\t\t{d.label === \"MorningStar Rating\" ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{range(5).map(index => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t{d.value}\n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t))}\n\t\t
    \n\t);\n};\n\nexport default OpMarketDepthList;\n","import * as React from \"react\";\nimport OpQuotesHeadingMfDsk, { IOpQuotesHeadingMfDskProps } from \"../partials/opQuotesHeadingMfDsk\";\nimport OpQuotesHoldings from \"../partials/opQuotesHoldings\";\nimport OpMarketDepthList from \"../partials/opMarketDepthList\";\nimport \"../../../../../assets/scss/components/toc/orderPlacement/opQuotes/opQuotesDsk.scss\";\nimport moment from \"moment\";\nimport { toINR } from \"../../../../service/numberFormat\";\n\nexport interface IOpQuotesMfDskProps {\n\tquoteData: any;\n\tquoteDataExtra: any;\n\tholdingData?: any;\n}\n\nconst OpQuotesMfDsk: React.FC = props => {\n\tconst quotesHeadingProps: IOpQuotesHeadingMfDskProps = {\n\t\tSchemeName: props.quoteData.SchemeName,\n\t\tnav: props.quoteData.nav,\n\t\tchangeinnav: props.quoteData.changeinnav,\n\t\tchangeinnavper: props.quoteData.changeinnavper,\n\t\tnavdateformat: props.quoteData.navdateformat\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t\n\n\t\t\t\n\n\t\t\t{props.holdingData && (\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default OpQuotesMfDsk;\n","import * as React from \"react\";\nimport OpQuotesHeadingMfDsk, { IOpQuotesHeadingMfDskProps } from \"../partials/opQuotesHeadingMfDsk\";\nimport OpQuotesHoldings from \"../partials/opQuotesHoldings\";\nimport OpMarketDepthList from \"../partials/opMarketDepthList\";\nimport \"../../../../../assets/scss/components/toc/orderPlacement/opQuotes/opQuotesTab.scss\";\nimport moment from \"moment\";\nimport { toINR } from \"../../../../service/numberFormat\";\n\nexport interface IOpQuotesMfTabProps {\n\tquoteData: any;\n\tquoteDataExtra: any;\n\tholdingData?: any;\n}\n\nconst OpQuotesMfTab: React.FC = props => {\n\tconst [showHoldings, setShowHoldings] = React.useState(false);\n\tconst [showMarketDepth, setShowMarketDepth] = React.useState(false);\n\n\tconst quotesHeadingProps: IOpQuotesHeadingMfDskProps = {\n\t\tSchemeName: props.quoteData.SchemeName,\n\t\tnav: props.quoteData.nav,\n\t\tchangeinnav: props.quoteData.changeinnav,\n\t\tchangeinnavper: props.quoteData.changeinnavper,\n\t\tnavdateformat: props.quoteData.navdateformat\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\n\t\t\t\t\n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{props.quoteData.nav !== undefined ? props.quoteData.nav : \"--\"}\n\t\t\t\t\t{props.quoteData.changeinnav !== undefined ? props.quoteData.changeinnav : \"--\"}\n\t\t\t\t\t\n\t\t\t\t\t\t{props.quoteData.changeinnavper !== undefined ? `(${props.quoteData.changeinnavper}%)` : \"--\"}\n\t\t\t\t\t\n\t\t\t\t
    \n\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{props.holdingData && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{showHoldings && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t
    setShowHoldings(false)} />\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\n\t\t\t\t\t\t{showMarketDepth && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t
    setShowMarketDepth(false)} />\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default OpQuotesMfTab;\n","import * as React from \"react\";\nimport OpQuotesHeadingMfDsk, { IOpQuotesHeadingMfDskProps } from \"../partials/opQuotesHeadingMfDsk\";\nimport OpQuotesHoldings from \"../partials/opQuotesHoldings\";\nimport OpMarketDepthList from \"../partials/opMarketDepthList\";\nimport \"../../../../../assets/scss/components/toc/orderPlacement/opQuotes/opQuotesMob.scss\";\nimport moment from \"moment\";\nimport { toINR } from \"../../../../service/numberFormat\";\n\nexport interface IOpQuotesMfMobProps {\n\tquoteData: any;\n\tquoteDataExtra: any;\n\tholdingData?: any;\n}\n\nconst OpQuotesMfMob: React.FC = props => {\n\tconst [showHoldings, setShowHoldings] = React.useState(false);\n\tconst [showMarketDepth, setShowMarketDepth] = React.useState(false);\n\n\tconst quotesHeadingProps: IOpQuotesHeadingMfDskProps = {\n\t\tSchemeName: props.quoteData.SchemeName,\n\t\tnav: props.quoteData.nav,\n\t\tchangeinnav: props.quoteData.changeinnav,\n\t\tchangeinnavper: props.quoteData.changeinnavper,\n\t\tnavdateformat: props.quoteData.navdateformat\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t\n\n\t\t\t
    \n\t\t\t\t\n\n\t\t\t\t{props.holdingData && (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
    \n\n\t\t\t{showMarketDepth && (\n\t\t\t\t<>\n\t\t\t\t\t
    setShowMarketDepth(false)} />\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\tMarket Depth\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{showHoldings && (\n\t\t\t\t<>\n\t\t\t\t\t
    setShowHoldings(false)} />\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\tYour Holdings\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default OpQuotesMfMob;\n","import * as React from \"react\";\nimport DeviceContext from \"./../../../service/indentifyDevice\";\nimport OpLayout from \"../opLayout/opLayout\";\nimport OpQuotesMfDsk from \"../opQuotes/opQuotesMf/opQuotesMfDsk\";\nimport OpQuotesMfTab from \"../opQuotes/opQuotesMf/opQuotesMfTab\";\nimport OpQuotesMfMob from \"../opQuotes/opQuotesMf/opQuotesMfMob\";\nimport { AGetSchemeDetailsMf, AGetSchemeMf, AGetAllHoldingMf } from \"./../../../service/orderPlacement/opApiService\";\nimport { IOpRouteParamsMf } from \"../../../types/components/orderPlacement/opTypes\";\nimport { RouteChildrenProps } from \"react-router-dom\";\n\nexport interface IOpMfContainerProps {}\n\nexport interface IOpMfContainerState {\n\tquoteData: any;\n\tquoteDataExtra: any;\n\tholdingData?: any;\n}\n\nclass OpMfContainer extends React.Component, IOpMfContainerState> {\n\tstate: IOpMfContainerState = { quoteData: {}, quoteDataExtra: {} };\n\tquoteComp: any;\n\t// isin = this.props.match?.params.isin;\n\t// trdSym = this.props.match?.params.scode;\n\tisin = \"INF209K01EN2\";\n\ttrdSym = \"BSL295G-GR\";\n\n\tgetquoteDataRes = (res: any) => {\n\t\tif (res.PurchaseDetails) {\n\t\t\tthis.setState({ quoteData: res.PurchaseDetails });\n\n\t\t\t// Find scheme code from data\n\t\t\tlet scheme: any;\n\t\t\tres.PurchaseDetails.AscSch.LstTyp.forEach((a: any) => {\n\t\t\t\tif (scheme) {\n\t\t\t\t\t// if scheme is found, then no need to execute find again\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst b = a.LstPlan.find((c: any) => c.Isin === this.isin && c.SchCd === this.trdSym);\n\t\t\t\tif (b) {\n\t\t\t\t\tscheme = b;\n\t\t\t\t}\n\t\t\t});\n\t\t\tAGetSchemeMf(this.getSchemeRes, scheme.SCd);\n\t\t}\n\t};\n\n\tgetSchemeRes = (res: any) => {\n\t\tthis.setState({ quoteDataExtra: res });\n\t};\n\n\tgetHoldingMfRes = (res: any) => {\n\t\tif (res.data) {\n\t\t\tthis.setState({\n\t\t\t\tholdingData: res.data.mfHdgUsable.find((hldg: any) => hldg.isin === this.isin && hldg.trdSym === this.trdSym)\n\t\t\t});\n\t\t}\n\t};\n\n\tcomponentDidMount() {\n\t\tAGetSchemeDetailsMf(this.getquoteDataRes, this.isin, this.trdSym);\n\t\tAGetAllHoldingMf(this.getHoldingMfRes);\n\t}\n\n\trender() {\n\t\tthis.quoteComp = DeviceContext().isDesktop ? (\n\t\t\t\n\t\t) : DeviceContext().isTablet ? (\n\t\t\t\n\t\t) : (\n\t\t\t\n\t\t);\n\t\treturn ;\n\t}\n}\n\nexport default OpMfContainer;\n","import * as React from \"react\";\nimport OpQuotesHeadingDsk, { IOpQuotesHeadingDskProps } from \"../partials/opQuotesHeadingDsk\";\nimport OpMarketDepthList from \"../partials/opMarketDepthList\";\nimport \"../../../../../assets/scss/components/toc/orderPlacement/opQuotes/opQuotesDsk.scss\";\nimport moment from \"moment\";\nimport { toINR } from \"../../../../service/numberFormat\";\n\nexport interface IOpQuotesNfoDskProps {\n\tquoteData: any;\n\tquoteDataExtra: any;\n}\n\nconst OpQuotesNfoDsk: React.FC = props => {\n\tconst quotesHeadingProps: IOpQuotesHeadingDskProps = {\n\t\tdpNm: props.quoteDataExtra.Name,\n\t\tdateRange: `${props.quoteDataExtra.OpenDate ? moment(props.quoteDataExtra.OpenDate).format(\"DD MMM\") : \"--\"} - ${\n\t\t\tprops.quoteDataExtra.CloseDate ? moment(props.quoteDataExtra.CloseDate).format(\"DD MMM\") : \"--\"\n\t\t}`\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t\n\n\t\t\t\n\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default OpQuotesNfoDsk;\n","import * as React from \"react\";\nimport OpQuotesHeadingMob from \"../partials/opQuotesHeadingMob\";\nimport OpMarketDepthList from \"../partials/opMarketDepthList\";\nimport \"../../../../../assets/scss/components/toc/orderPlacement/opQuotes/opQuotesMob.scss\";\nimport { IOpQuotesHeadingDskProps } from \"../partials/opQuotesHeadingDsk\";\nimport moment from \"moment\";\nimport { toINR } from \"../../../../service/numberFormat\";\n\nexport interface IOpQuotesNfoMobProps {\n\tquoteData: any;\n\tquoteDataExtra: any;\n}\n\nconst OpQuotesNfoMob: React.FC = props => {\n\tconst [showMarketDepth, setShowMarketDepth] = React.useState(false);\n\n\tconst quotesHeadingProps: IOpQuotesHeadingDskProps = {\n\t\tdpNm: props.quoteDataExtra.Name,\n\t\tdateRange: `${moment(props.quoteDataExtra.OpenDate).format(\"DD MMM\")} - ${moment(props.quoteDataExtra.CloseDate).format(\"DD MMM\")}`\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t\n\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\n\t\t\t{showMarketDepth && (\n\t\t\t\t<>\n\t\t\t\t\t
    setShowMarketDepth(false)} />\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\tMarket Depth\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default OpQuotesNfoMob;\n","import * as React from \"react\";\nimport OpQuotesHeadingDsk, { IOpQuotesHeadingDskProps } from \"../partials/opQuotesHeadingDsk\";\nimport OpMarketDepthList from \"../partials/opMarketDepthList\";\nimport \"../../../../../assets/scss/components/toc/orderPlacement/opQuotes/opQuotesTab.scss\";\nimport moment from \"moment\";\nimport { toINR } from \"../../../../service/numberFormat\";\n\nexport interface IOpQuotesNfoTabProps {\n\tquoteData: any;\n\tquoteDataExtra: any;\n}\n\nconst OpQuotesNfoTab: React.FC = props => {\n\tconst [showMarketDepth, setShowMarketDepth] = React.useState(false);\n\tconst quotesHeadingProps: IOpQuotesHeadingDskProps = {\n\t\tdpNm: props.quoteDataExtra.Name,\n\t\tdateRange: `${props.quoteDataExtra.OpenDate ? moment(props.quoteDataExtra.OpenDate).format(\"DD MMM\") : \"--\"} - ${\n\t\t\tprops.quoteDataExtra.CloseDate ? moment(props.quoteDataExtra.CloseDate).format(\"DD MMM\") : \"--\"\n\t\t}`\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\n\t\t\t\t
    \n\t\t\t\t\t\n\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\n\t\t\t\t\t\t{showMarketDepth && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t
    setShowMarketDepth(false)} />\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default OpQuotesNfoTab;\n","import * as React from \"react\";\nimport DeviceContext from \"./../../../service/indentifyDevice\";\nimport OpLayout from \"../opLayout/opLayout\";\nimport { AGetQuotesNfo, AGetQuotesExtraNfo } from \"./../../../service/orderPlacement/opApiService\";\nimport OpQuotesNfoDsk from \"../opQuotes/opQuotesNfo/opQuotesNfoDsk\";\nimport OpQuotesNfoMob from \"../opQuotes/opQuotesNfo/opQuotesNfoMob\";\nimport OpQuotesNfoTab from \"../opQuotes/opQuotesNfo/opQuotesNfoTab\";\n\nexport interface IOpNfoContainerProps {}\n\nexport interface IOpNfoContainerState {\n\tquoteData: any;\n\tquoteDataExtra: any;\n}\n\nclass OpNfoContainer extends React.Component {\n\tstate: IOpNfoContainerState = { quoteData: {}, quoteDataExtra: {} };\n\tquoteComp: any;\n\tisin = \"INF200KA1Q24\";\n\n\tgetQuoteExtraNfoRes = (res: any) => {\n\t\tthis.setState({quoteDataExtra: res.nfoStaticData})\n\t}\n\n\tgetSchemeDetailsRes = (res: any) => {\n\t\tthis.setState({ quoteData: res });\n\n\t\t// find scode\n\t\tconst scode = res.schemeISIN.find((a: any) => a.ISIN === this.isin).Token;\n\n\t\tAGetQuotesExtraNfo(this.getQuoteExtraNfoRes, scode);\n\t};\n\n\tcomponentDidMount() {\n\t\tAGetQuotesNfo(this.getSchemeDetailsRes, this.isin);\n\t}\n\n\trender() {\n\t\tthis.quoteComp = DeviceContext().isDesktop ? (\n\t\t\t\n\t\t) : DeviceContext().isTablet ? (\n\t\t\t\n\t\t) : (\n\t\t\t\n\t\t);\n\t\treturn ;\n\t}\n}\n\nexport default OpNfoContainer;\n","import * as React from \"react\";\nimport { toINR } from \"../../../service/numberFormat\";\nimport { Link, useRouteMatch } from \"react-router-dom\";\nimport { ILimitsRouteParams } from \"../../../types/components/limits/limitsTypes\";\n\nexport interface ILimitsHeaderProps {\n\tlabel: string;\n\tvalue?: string;\n\tcshAvl?: string;\n\tshowAddWithdrawBtn?: boolean;\n}\n\nconst LimitsHeader: React.FC = (props) => {\n\tconst routeParams = useRouteMatch();\n\n\treturn (\n\t\t
    \n\t\t\t
    {props.label}
    \n\t\t\t
    ₹{toINR(props.value)}
    \n\t\t\t{props.cshAvl && (\n\t\t\t\t
    \n\t\t\t\t\tCash Available: ₹{toINR(props.cshAvl, 2)}\n\t\t\t\t
    \n\t\t\t)}\n\t\t\t{props.showAddWithdrawBtn && (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tAdd Funds\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tWithdraw\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default LimitsHeader;\n","import * as React from \"react\";\nimport { toINR } from \"../../../service/numberFormat\";\n\nexport interface ILimitsLeftColProps {\n\tpayIn?: string;\n\tclearCB?: string;\n\tnotionalCash?: string;\n\tadHocMargin?: string;\n\tcollateralValue?: string;\n}\n\nconst LimitsLeftCol: React.FC = (props) => {\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\tAdded (Pay In)\n\t\t\t\t₹{toINR(props.payIn, 2)}\n\t\t\t
    \n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\tClear Cash Balance\n\t\t\t\t₹{toINR(props.clearCB, 2)}\n\t\t\t
    \n\t\t\t
    \n\n\t\t\t{props.notionalCash && (\n\t\t\t\t<>\n\t\t\t\t\t
    \n\t\t\t\t\t\tNotional Cash\n\t\t\t\t\t\t₹{toINR(props.notionalCash, 2)}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{props.adHocMargin && (\n\t\t\t\t<>\n\t\t\t\t\t
    \n\t\t\t\t\t\tAd hoc Margin\n\t\t\t\t\t\t₹{toINR(props.adHocMargin, 2)}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t)}\n\n\t\t\t
    \n\t\t\t\tCollateral Value\n\t\t\t\t₹{toINR(props.collateralValue, 2)}\n\t\t\t
    \n\n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default LimitsLeftCol;\n","import * as React from \"react\";\nimport { toINR } from \"../../../service/numberFormat\";\n\nexport interface ILimitsRightColProps {\n\tpayOut?: string;\n\tmarginUtilised?: string;\n\trealisedMtm?: string;\n\tunrealisedMtm?: string;\n\tspanExposure?: string;\n\tothers?: string;\n\tblocked?: string;\n\tmfss?: string;\n}\n\nconst LimitsRightCol: React.FC = props => {\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\tWithdrew (Pay Out)\n\t\t\t\t₹{toINR(props.payOut, 2)}\n\t\t\t
    \n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\tMargin Utilised\n\t\t\t\t₹{toINR(props.marginUtilised, 2)}\n\t\t\t
    \n\n\t\t\t{props.realisedMtm && (\n\t\t\t\t
    \n\t\t\t\t\tRealised MTM\n\t\t\t\t\t₹{toINR(props.realisedMtm, 2)}\n\t\t\t\t
    \n\t\t\t)}\n\n\t\t\t{props.unrealisedMtm && (\n\t\t\t\t
    \n\t\t\t\t\tUnrealised MTM\n\t\t\t\t\t₹{toINR(props.unrealisedMtm, 2)}\n\t\t\t\t
    \n\t\t\t)}\n\n\t\t\t{props.spanExposure && (\n\t\t\t\t
    \n\t\t\t\t\tSpan + Exposure\n\t\t\t\t\t₹{toINR(props.spanExposure, 2)}\n\t\t\t\t
    \n\t\t\t)}\n\n\t\t\t{props.others && (\n\t\t\t\t
    \n\t\t\t\t\tOthers\n\t\t\t\t\t₹{toINR(props.others, 2)}\n\t\t\t\t
    \n\t\t\t)}\n\n\t\t\t{props.blocked && (\n\t\t\t\t<>\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tBlocked for Third Party\n\t\t\t\t\t\t₹{toINR(props.blocked, 2)}\n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{props.mfss && (\n\t\t\t\t
    \n\t\t\t\t\tMFSS Amount\n\t\t\t\t\t₹{toINR(props.mfss, 2)}\n\t\t\t\t
    \n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default LimitsRightCol;\n","import * as React from \"react\";\nimport SecNavigationDesktop from \"../../../generic/SecNavigation/SecNavigationDesktop\";\nimport { useRouteMatch } from \"react-router-dom\";\nimport { ILimitsRouteParams, ILimitsData } from \"../../../types/components/limits/limitsTypes\";\nimport LimitsHeader from \"../generic/limitsHeader\";\nimport LimitsLeftCol from \"../generic/limitsLeftCol\";\nimport LimitsRightCol from \"../generic/limitsRightCol\";\nimport \"../../../../assets/scss/components/toc/limits/limitsDsk.scss\";\nimport Loader from \"../../../generic/loader\";\nimport { IListObj } from \"../../../types/genericTypes\";\nimport NoDataContainer from \"../../../generic/noDataContainer\";\n\nexport interface ILimitsLayoutDskProps {\n\tlimitsData: ILimitsData;\n\tsecNavOptions: Array;\n\tshowLoader: boolean;\n\ttryAgain: () => void;\n}\n\nconst LimitsLayoutDsk: React.FC = (props) => {\n\tconst routeParams = useRouteMatch();\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{/* If there is header in limitsdata, then we have got api response, otherwise it is still loading */}\n\t\t\t\t\t\t{props.showLoader ? (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t) : props.limitsData.header ? (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default LimitsLayoutDsk;\n","import * as React from \"react\";\nimport { useRouteMatch } from \"react-router-dom\";\nimport { ILimitsRouteParams } from \"../../../types/components/limits/limitsTypes\";\nimport LimitsHeader from \"../generic/limitsHeader\";\n\nimport \"../../../../assets/scss/components/toc/limits/limitsDsk.scss\";\nimport LimitsLeftCol from \"../generic/limitsLeftCol\";\nimport LimitsRightCol from \"../generic/limitsRightCol\";\nimport Tab from \"../../../generic/tab\";\nimport Loader from \"../../../generic/loader\";\nimport { IListObj } from \"../../../types/genericTypes\";\nimport NoDataContainer from \"../../../generic/noDataContainer\";\n\nexport interface ILimitsLayoutTabProps {\n\tlimitsData: any;\n\tsecNavOptions: Array;\n\tshowLoader: boolean;\n\ttryAgain: () => void;\n}\n\nconst LimitsLayoutTab: React.FC = (props) => {\n\tconst routeParams = useRouteMatch();\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{/* If there is header in limitsdata, then we have got api response, otherwise it is still loading */}\n\t\t\t\t\t\t{props.showLoader ? (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t) : props.limitsData.header ? (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default LimitsLayoutTab;\n","import * as React from \"react\";\nimport { useRouteMatch } from \"react-router-dom\";\nimport { ILimitsRouteParams } from \"../../../types/components/limits/limitsTypes\";\nimport LimitsHeader from \"../generic/limitsHeader\";\nimport LimitsLeftCol from \"../generic/limitsLeftCol\";\nimport LimitsRightCol from \"../generic/limitsRightCol\";\nimport Tab from \"../../../generic/tab\";\nimport Loader from \"../../../generic/loader\";\nimport { IListObj } from \"../../../types/genericTypes\";\nimport \"../../../../assets/scss/components/toc/limits/limitsDsk.scss\";\nimport \"../../../../assets/scss/components/toc/limits/limitsMob.scss\";\nimport NoDataContainer from \"../../../generic/noDataContainer\";\n\nexport interface ILimitsLayoutMobProps {\n\tlimitsData: any;\n\tsecNavOptions: Array;\n\tshowLoader: boolean;\n\ttryAgain: () => void;\n}\n\nconst LimitsLayoutMob: React.FC = (props) => {\n\tconst routeParams = useRouteMatch();\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t{/* If there is header in limitsdata, then we have got api response, otherwise it is still loading */}\n\t\t\t\t\t{props.showLoader ? (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t) : props.limitsData.header ? (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default LimitsLayoutMob;\n","import * as React from \"react\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport LimitsLayoutDsk from \"../limitsLayout/limitsLayoutDsk\";\nimport LimitsLayoutTab from \"../limitsLayout/limitsLayoutTab\";\nimport { AGetEquityLimits, AGetCommLimits } from \"../../../service/limits/limitsApiService\";\nimport { RouteChildrenProps, Redirect } from \"react-router-dom\";\nimport { ILimitsRouteParams, ILimitsData } from \"../../../types/components/limits/limitsTypes\";\nimport LimitsLayoutMob from \"../limitsLayout/limitsLayoutMob\";\nimport { jwtToken, IListObj } from \"../../../types/genericTypes\";\nimport LoginService from \"../../../service/login/loginService\";\n\nexport interface ILimitsContainerProps {}\n\nexport interface ILimitsContainerState {\n\tlimitsData: ILimitsData;\n\tshowLoader: boolean;\n}\n\nclass LimitsContainer extends React.Component, ILimitsContainerState> {\n\tstate = { limitsData: {}, showLoader: true };\n\tcurrentRouteParam?: ILimitsRouteParams[\"asset\"];\n\n\tgetEquityLimitsRes = (res: any) => {\n\t\tthis.setState({ showLoader: false });\n\n\t\t// check if there is any key in data\n\t\t// because data is empty even if not authenticated\n\t\tif (res.response.data && res.response.infoID === \"0\") {\n\t\t\tconst header: ILimitsData[\"header\"] = {\n\t\t\t\tavailableLimits: res.response.data.tAL,\n\t\t\t\tutilizedLimits: `${+res.response.data.cE.pOA + +res.response.data.mUzd.mUtsd + +res.response.data.tTP.tTPV}`,\n\t\t\t\tcshAvl: res.response.data.cV\n\t\t\t};\n\n\t\t\tconst leftCol: ILimitsData[\"leftCol\"] = {\n\t\t\t\tpayIn: res.response.data.cE.pIA,\n\t\t\t\tclearCB: res.response.data.cE.cCB,\n\t\t\t\tnotionalCash: res.response.data.cE.nC,\n\t\t\t\tadHocMargin: res.response.data.cE.ad,\n\t\t\t\tcollateralValue: res.response.data.cV\n\t\t\t};\n\n\t\t\tconst rightCol: ILimitsData[\"rightCol\"] = {\n\t\t\t\tpayOut: res.response.data.cE.pOA,\n\t\t\t\tmarginUtilised: res.response.data.mUzd.mUtsd,\n\t\t\t\trealisedMtm: res.response.data.mUzd.rMTM,\n\t\t\t\tunrealisedMtm: res.response.data.mUzd.unrMTM,\n\t\t\t\tspanExposure: res.response.data.mUzd.sAE,\n\t\t\t\tothers: res.response.data.mUzd.oth,\n\t\t\t\tblocked: res.response.data.tTP.tTPV,\n\t\t\t\tmfss: res.response.data.tTP.mfA\n\t\t\t};\n\n\t\t\tthis.setState({ limitsData: { header, leftCol, rightCol } });\n\t\t}\n\t};\n\n\tgetCommodityLimitsRes = (res: any) => {\n\t\tthis.setState({ showLoader: false });\n\n\t\tif (res.data) {\n\t\t\tconst header: ILimitsData[\"header\"] = {\n\t\t\t\tavailableLimits: res.data.lmt.lmAvl,\n\t\t\t\tutilizedLimits: `${+res.data.lmt.mrUzd + +res.data.lmt.poAmt}`,\n\t\t\t\tcshAvl: res.data.lmt.lrB\n\t\t\t};\n\n\t\t\tconst leftCol: ILimitsData[\"leftCol\"] = {\n\t\t\t\tpayIn: res.data.lmt.piAmt,\n\t\t\t\tclearCB: res.data.lmt.lrB,\n\t\t\t\tcollateralValue: res.data.lmt.colVal\n\t\t\t};\n\n\t\t\tconst rightCol: ILimitsData[\"rightCol\"] = {\n\t\t\t\tpayOut: res.data.lmt.poAmt,\n\t\t\t\tmarginUtilised: res.data.lmt.mrUzd\n\t\t\t};\n\n\t\t\tthis.setState({ limitsData: { header, leftCol, rightCol } });\n\t\t}\n\t};\n\n\tcallApi(asset?: ILimitsRouteParams[\"asset\"]) {\n\t\tthis.setState({ showLoader: true });\n\t\tif (asset === \"equity\") {\n\t\t\tAGetEquityLimits(this.getEquityLimitsRes);\n\t\t} else if (asset === \"comm\") {\n\t\t\tAGetCommLimits(this.getCommodityLimitsRes);\n\t\t}\n\t}\n\n\tcomponentDidMount() {\n\t\t// call the api initially\n\t\tthis.currentRouteParam = this.props.match?.params.asset;\n\t\tthis.callApi(this.currentRouteParam);\n\t}\n\n\tcomponentDidUpdate() {\n\t\t// call api only if route is changed\n\t\tif (this.props.match?.params.asset !== this.currentRouteParam) {\n\t\t\tthis.currentRouteParam = this.props.match?.params.asset;\n\t\t\tthis.callApi(this.currentRouteParam);\n\t\t}\n\t}\n\n\tsecNavOptions(): Array {\n\t\tlet pToken: jwtToken | null = LoginService.pToken;\n\n\t\tif (pToken && pToken.accType === \"EQ\") {\n\t\t\treturn [{ display: \"Equity\", value: \"equity\", href: \"equity\" }];\n\t\t}\n\n\t\tif (pToken && pToken.accType === \"CO\") {\n\t\t\treturn [{ display: \"Commodity\", value: \"comm\", href: \"comm\" }];\n\t\t}\n\n\t\tif (pToken && pToken.accType === \"COMEQ\") {\n\t\t\treturn [\n\t\t\t\t{ display: \"Equity\", value: \"equity\", href: \"equity\" },\n\t\t\t\t{ display: \"Commodity\", value: \"comm\", href: \"comm\" }\n\t\t\t];\n\t\t}\n\n\t\treturn [];\n\t}\n\n\tget layoutProps() {\n\t\treturn {\n\t\t\tlimitsData: this.state.limitsData,\n\t\t\tsecNavOptions: this.secNavOptions(),\n\t\t\tshowLoader: this.state.showLoader,\n\t\t\ttryAgain: () => this.callApi(this.currentRouteParam)\n\t\t};\n\t}\n\n\trender() {\n\t\tif (LoginService.pToken?.accType === \"EQ\" && this.currentRouteParam !== \"equity\") {\n\t\t\treturn \n\t\t}\n\t\tif (LoginService.pToken?.accType === \"CO\" && this.currentRouteParam !== \"comm\") {\n\t\t\treturn \n\t\t}\n\n\t\treturn DeviceContext().isDesktop ? (\n\t\t\t\n\t\t) : DeviceContext().isTablet ? (\n\t\t\t\n\t\t) : (\n\t\t\t\n\t\t);\n\t}\n}\n\nexport default LimitsContainer;\n","import { apiService } from \"../apiService\";\nimport urlConfig from \"../../../config/domain\";\nimport LoginService from \"../login/loginService\";\n\nexport const AGetEquityLimits = (callback: CallableFunction) => {\n\tif (LoginService.pToken && LoginService.pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.limits.equity,\n\t\t\t\tmethod: \"POST\",\n\t\t\t\tauthType: \"authtoken\",\n\t\t\t\tbody: {\n\t\t\t\t\trequest: {\n\t\t\t\t\t\trequestType: \"U\",\n\t\t\t\t\t\tmsgID: \"\",\n\t\t\t\t\t\tdata: {},\n\t\t\t\t\t\tappID: urlConfig.appid,\n\t\t\t\t\t\tsession: \"\",\n\t\t\t\t\t\tformFactor: \"W\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\nexport const AGetCommLimits = (callback: CallableFunction) => {\n\tif (LoginService.pToken && LoginService.pToken.accType !== \"EQ\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.limits.comm + LoginService.pToken.username,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n","import * as React from \"react\";\nimport { Switch, Route } from \"react-router-dom\";\nimport OpSampleComponents from \"../components/toc/orderPlacement/sample/opSampleComponents\";\nimport OpSampleValidations from \"../components/toc/orderPlacement/sample/opSampleValidations\";\nimport OpEquityContainer from \"../components/toc/orderPlacement/opContainer/opEquityContainer\";\nimport OpFutureContainer from \"../components/toc/orderPlacement/opContainer/opFutureContainer\";\nimport OpOptionContainer from \"../components/toc/orderPlacement/opContainer/opOptionContainer\";\nimport OpMfContainer from \"../components/toc/orderPlacement/opContainer/opMfContainer\";\nimport OpNfoContainer from '../components/toc/orderPlacement/opContainer/opNfoContainer';\nimport LimitsContainer from \"../components/toc/limits/limitsContainer/limitsContainer\";\nimport PostLogin from \"./postLogin\";\n\nconst OpRouting = () => {\n\treturn (\n\t\t\n\t\t\t{/* Order placement samples */}\n\t\t\t\n\t\t\t\n\t\t\t{/* Order placement */}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\nexport default OpRouting;\n","import * as React from \"react\";\nimport { toINR } from \"../../../service/numberFormat\";\n\nexport interface IHoldTotalBlockProps {\n\ttotal: string;\n\tusable?: string;\n\tunusable?: string;\n}\n\nconst HoldTotalBlock: React.FC = props => {\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    Total Holding Balance
    \n\t\t\t\t
    ₹{toINR(props.total, 2)}
    \n\t\t\t
    \n\t\t\t{props.usable && (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Usable
    \n\t\t\t\t\t\t
    ₹{toINR(props.usable, 2)}
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Unusable
    \n\t\t\t\t\t\t
    ₹{toINR(props.unusable, 2)}
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default HoldTotalBlock;\n","import * as React from \"react\";\nimport \"../../../../assets/scss/components/toc/generic/tocNote/tocNoteDsk.scss\";\n\nexport interface ITocNoteDskProps {}\n\nconst TocNoteDsk: React.FC = props => {\n\treturn
    {props.children}
    ;\n};\n\nexport default TocNoteDsk;\n","import * as React from \"react\";\nimport SecNavigationDesktop from \"../../../generic/SecNavigation/SecNavigationDesktop\";\nimport { holdSecNavOptions, EHoldScreenState, holdNote } from \"../holdConstants\";\nimport { IHoldRouteParams } from \"../../../types/components/holdings/holdTypes\";\nimport { useRouteMatch, Link } from \"react-router-dom\";\nimport HoldTotalBlock, { IHoldTotalBlockProps } from \"../generic/holdTotalBlock\";\nimport NoDataContainer from \"../../../generic/noDataContainer\";\nimport Loader from \"../../../generic/loader\";\nimport TocNoteDsk from \"../../../toc/generic/tocNote/tocNoteDsk\";\nimport \"../../../../assets/scss/components/generic/layout/layoutDesk.scss\";\nimport \"../../../../assets/scss/components/toc/holdings/holdingsDsk.scss\";\n\nexport interface IHoldLayoutDskProps {\n\ttotalBlockData: IHoldTotalBlockProps;\n\tscreenState: EHoldScreenState;\n}\n\nconst HoldLayoutDsk: React.FC = props => {\n\tconst routeParams = useRouteMatch();\n\tconst [isFixed, setIsFixed] = React.useState(false);\n\n\tfunction onContainerScroll(e: React.UIEvent) {\n\t\t// console.dir((e.target as HTMLElement).scrollTop);\n\t\t// if scrolltop is greater than 78 then fix the header\n\t\t(e.target as HTMLElement).scrollTop > 90 ? !isFixed && setIsFixed(true) : isFixed && setIsFixed(false);\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tDetailed Holdings \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t{holdNote}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t{props.screenState === EHoldScreenState.DATA && (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    {props.children}
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\t\t\t\t\t{props.screenState === EHoldScreenState.NO_DATA && (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\t\t\t\t\t{props.screenState === EHoldScreenState.LOADING && (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default HoldLayoutDsk;\n","import { apiService } from \"../apiService\";\nimport { parsedToken } from \"../storageHelper\";\nimport urlConfig from \"../../../config/domain\";\n\nlet pToken: any = parsedToken(),\n\tuserID = pToken ? pToken.username : null;\n\nexport const AGetEquityUsableHoldings = (callback: CallableFunction) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.holding.equityUsable + userID,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\nexport const AGetEquityUnusableHoldings = (callback: CallableFunction) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.holding.equityUnusable + userID,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\nexport const AGetEquitySmallcaseHoldings = (callback: CallableFunction) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.holding.equitySmallcase,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"bearer\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\nexport const AGetMfHoldings = (callback: CallableFunction) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.holding.mf + userID,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n","import * as React from \"react\";\nimport \"../../../../assets/scss/components/toc/generic/tocNote/tocNoteTab.scss\";\n\nexport interface ITocNoteTabProps {}\n\nconst TocNoteTab: React.FC = props => {\n\tconst [showPopup, setShowPopup] = React.useState(false);\n\n\treturn (\n\t\t
    \n\t\t\t\n\n\t\t\t{showPopup && (\n\t\t\t\t<>\n\t\t\t\t\t
    setShowPopup(false)} />\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    {props.children}
    \n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default TocNoteTab;\n","import * as React from \"react\";\nimport { holdSecNavOptions, EHoldScreenState, holdNote } from \"../holdConstants\";\nimport HoldTotalBlock, { IHoldTotalBlockProps } from \"../generic/holdTotalBlock\";\nimport { useRouteMatch, Link } from \"react-router-dom\";\nimport { IHoldRouteParams } from \"../../../types/components/holdings/holdTypes\";\nimport Tab from \"../../../generic/tab\";\nimport NoDataContainer from \"../../../generic/noDataContainer\";\nimport Loader from \"../../../generic/loader\";\nimport TocNoteTab from \"../../../toc/generic/tocNote/tocNoteTab\";\nimport \"../../../../assets/scss/components/generic/layout/layoutTab.scss\";\nimport \"../../../../assets/scss/components/toc/holdings/holdingsTab.scss\";\n\nexport interface IHoldLayoutTabProps {\n\ttotalBlockData: IHoldTotalBlockProps;\n\tscreenState: EHoldScreenState;\n}\n\nconst HoldLayoutTab: React.FC = props => {\n\tconst routeParams = useRouteMatch();\n\tconst [isFixed, setIsFixed] = React.useState(false);\n\n\tfunction onContainerScroll(e: React.UIEvent) {\n\t\t// console.dir((e.target as HTMLElement).scrollTop);\n\t\t// if scrolltop is greater than 78 then fix the header\n\t\t(e.target as HTMLElement).scrollTop > 40 ? !isFixed && setIsFixed(true) : isFixed && setIsFixed(false);\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{holdNote}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tDetailed Holdings \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t{props.screenState === EHoldScreenState.DATA && (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    {props.children}
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\t\t\t\t\t{props.screenState === EHoldScreenState.NO_DATA && (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\t\t\t\t\t{props.screenState === EHoldScreenState.LOADING && (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default HoldLayoutTab;\n","import React, { useState } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport \"../../../../assets/scss/components/generic/navigationDropdown.scss\";\nimport \"../../../../assets/scss/components/generic/SecNavigation/secNavigationMobile.scss\";\nimport { IListObj } from \"../../../types/genericTypes\";\n\nexport interface IHoldNavigationDropdownProps {\n\tdefaultValue?: number | string; // default selected value\n\tdropdownOptions: Array; // list of all options in dropdown\n}\n\nconst HoldNavigationDropdown: React.FC = (props: IHoldNavigationDropdownProps) => {\n\t/**\n\t * state and function for selectedValue\n\t * selectedValue type is number | string\n\t * setSelectedValue(number | string)\n\t */\n\tconst [selectedValue, setSelectedValue] = useState(props.defaultValue);\n\n\t/**\n\t * state and function for isDropdownOpen\n\t * selectedValue type is boolean\n\t * setSelectedValue(boolean)\n\t */\n\tconst [isDropdownOpen, setIsDropdownOpen] = useState(false);\n\n\t/**\n\t * called when user selects an option\n\t * @param id id of the selected option\n\t * @returns onSelect prop passed from parent\n\t */\n\tfunction optionSelected(id: string | number) {\n\t\tsetSelectedValue(id);\n\t\tsetIsDropdownOpen(false);\n\t}\n\n\tReact.useEffect(() => {\n\t\tsetSelectedValue(props.defaultValue);\n\t}, [props]);\n\t\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t{/* when dropdown is open show overlay and content */}\n\t\t\t{isDropdownOpen && (\n\t\t\t\t<>\n\t\t\t\t\t{/* Overlay covers the whole screen. When overlay is clicked, close the dropdown. */}\n\t\t\t\t\t
    setIsDropdownOpen(false)} />\n\n\t\t\t\t\t{/* Dropdown list */}\n\t\t\t\t\t
      \n\t\t\t\t\t\t{props.dropdownOptions.map(option => (\n\t\t\t\t\t\t\t optionSelected(option.value)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{/* show tick only if this option is selected */}\n\t\t\t\t\t\t\t\t{!option.href && option.display}\n\t\t\t\t\t\t\t\t{option.href && (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{option.value === selectedValue && }\n\n\t\t\t\t\t\t\t\t\t\t{option.display}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tDetailed Holdings \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    • \n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default HoldNavigationDropdown;\n","import * as React from \"react\";\nimport \"../../../../assets/scss/components/toc/generic/tocNote/tocNoteMob.scss\";\n\nexport interface ITocNoteMobProps {}\n\nconst TocNoteMob: React.FC = props => {\n\tconst [showPopup, setShowPopup] = React.useState(false);\n\n\treturn (\n\t\t
    \n\t\t\t\n\n\t\t\t{showPopup && (\n\t\t\t\t<>\n\t\t\t\t\t
    setShowPopup(false)} />\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\tNote\n\t\t\t\t\t\t\t setShowPopup(false)}>\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{props.children}\n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default TocNoteMob;\n","import * as React from \"react\";\nimport { holdSecNavOptions, EHoldScreenState, holdNote } from \"../holdConstants\";\nimport HoldTotalBlock, { IHoldTotalBlockProps } from \"../generic/holdTotalBlock\";\nimport { useRouteMatch } from \"react-router-dom\";\nimport { IHoldRouteParams } from \"../../../types/components/holdings/holdTypes\";\nimport HoldNavigationDropdown from \"../generic/holdNavigationDropdown\";\nimport NoDataContainer from \"../../../generic/noDataContainer\";\nimport Loader from \"../../../generic/loader\";\nimport TocNoteMob from \"../../../toc/generic/tocNote/topNoteMob\";\nimport \"../../../../assets/scss/components/generic/layout/layoutMob.scss\";\nimport \"../../../../assets/scss/components/toc/holdings/holdingsMob.scss\";\n\nexport interface IHoldLayoutMobProps {\n\ttotalBlockData: IHoldTotalBlockProps;\n\tscreenState: EHoldScreenState;\n}\n\nconst HoldLayoutMob: React.FC = props => {\n\tconst routeParams = useRouteMatch();\n\tconst [isFixed, setIsFixed] = React.useState(false);\n\n\tfunction onContainerScroll(e: React.UIEvent) {\n\t\t// console.dir((e.target as HTMLElement).scrollTop);\n\t\t// if scrolltop is greater than 78 then fix the header\n\t\t(e.target as HTMLElement).scrollTop > 40 ? !isFixed && setIsFixed(true) : isFixed && setIsFixed(false);\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t{holdNote}\n\t\t\t\t\t
    \n\t\t\t\t\t{props.screenState === EHoldScreenState.DATA && (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    {props.children}
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\t\t\t\t\t{props.screenState === EHoldScreenState.NO_DATA && (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\t\t\t\t\t{props.screenState === EHoldScreenState.LOADING && (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default HoldLayoutMob;\n","// helper function to group objects of an array based on status key with possible values defined in constants array\nexport function HHoldMTFGroupBy(array: Array, key: string = \"mtfRmsHdg\"): Array> {\n\t//return 2d array with conditinal grouping\n\tconst grouped: Array> = array.reduce(\n\t\t(arr: any, d: any) => {\n\t\t\tif (d[key]) {\n\t\t\t\tarr[0] = [...arr[0], d];\n\t\t\t} else {\n\t\t\t\tarr[1] = [...arr[1], d];\n\t\t\t}\n\t\t\treturn arr;\n\t\t},\n\t\t[[], []]\n\t);\n\n\t// if any group is empty then remove it from the array\n\treturn grouped.filter(group => group.length);\n}\n\nexport function HHoldDematGroupBy(array: Array, key: string = \"mode\"): Array> {\n\t//return 2d array with conditinal grouping\n\tconst grouped: Array> = array.reduce(\n\t\t(arr: any, d: any) => {\n\t\t\tif (d[key] === \"D\") {\n\t\t\t\tarr[0] = [...arr[0], d];\n\t\t\t} else {\n\t\t\t\tarr[1] = [...arr[1], d];\n\t\t\t}\n\t\t\treturn arr;\n\t\t},\n\t\t[[], []]\n\t);\n\n\t// if any group is empty then remove it from the array\n\treturn grouped.filter(group => group.length);\n}\n","import React, { useState } from \"react\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport { Idevice } from \"../../../types/device\";\nimport EdButton from \"../../../generic/edButton\";\nimport Toggle from \"../../../generic/toggle\";\nimport { useRouteMatch } from \"react-router-dom\";\nimport { IHoldRouteParams } from \"../../../types/components/holdings/holdTypes\";\nimport { HHoldMTFGroupBy, HHoldDematGroupBy } from \"../../../service/holdings/holdGrpByHelper\";\nimport \"../../../../assets/scss/components/generic/filter.scss\";\n\nexport interface HoldFilterProps {\n\tdata: Array>; // data to be filtered\n\tdefaultToggleState: boolean;\n\ttglClick: (groupedData: Array>, toggleState: boolean) => void;\n}\n\nconst HoldFilter: React.FC = props => {\n\tconst routeParams = useRouteMatch();\n\n\t// setting state initially as false\n\tconst [isDropdownOpen, setIsDropdownOpen] = useState(false);\n\n\tconst deviceState: Idevice = DeviceContext();\n\n\tconst [isToggleOn, setIsToggleOn] = useState(props.defaultToggleState);\n\n\t// event to be performed on onSwitchOnOff\n\tfunction onSwitchOnOff() {\n\t\t// in `isToggleOn, we have the previous state of the toggle button\n\t\t// that is why ! operator is used\n\t\tprops.tglClick(groupData(props.data[0], !isToggleOn), !isToggleOn);\n\n\t\tsetIsToggleOn(!isToggleOn);\n\t}\n\n\t/**\n\t * This function groups open/pending and other data separately\n\t * @param data array of data to be grouped\n\t */\n\tfunction groupData(data: Array, isToggleOn: boolean): Array> {\n\t\tif (isToggleOn) {\n\t\t\t// if toggle is switched on, then group the data\n\t\t\tif (routeParams.url.split(\"/\")[2] === \"equity\") {\n\t\t\t\treturn HHoldMTFGroupBy(data);\n\t\t\t} else {\n\t\t\t\treturn HHoldDematGroupBy(data);\n\t\t\t}\n\t\t} else {\n\t\t\t// if toggle is switched off then return the initial data in 2D form\n\t\t\treturn [data];\n\t\t}\n\t}\n\n\tfunction applyFilter() {\n\t\tsetIsDropdownOpen(false);\n\t}\n\n\tfunction reset() {\n\t\tsetIsDropdownOpen(false);\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t{/* dropdown toggle on click of button */}\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{!deviceState.isMobile && Filter}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tbtnTyp=\"blue-link\"\n\t\t\t\tonClick={() => setIsDropdownOpen(true)}\n\t\t\t/>\n\n\t\t\t{/* if isDropdownOpen is true the the dropdown will show */}\n\t\t\t{isDropdownOpen && (\n\t\t\t\t<>\n\t\t\t\t\t
    reset()} />\n\t\t\t\t\t
      \n\t\t\t\t\t\t{/* toggle the radio button */}\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{routeParams.url.indexOf(\"equity\") !== -1 ? \"MTF Holdings on top\" : \"Demat Holdings on top\"}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t{deviceState.isMobile && (\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t reset()} />\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n};\nexport default HoldFilter;\n","import React, { useState } from \"react\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport EdButton from \"../../../generic/edButton\";\nimport Search from \"../../../generic/search\";\nimport HoldFilter from \"./holdFilter\";\nimport NavigationTag from \"../../../generic/navigationTag\";\nimport { useRouteMatch } from \"react-router-dom\";\nimport { IHoldRouteParams } from \"../../../types/components/holdings/holdTypes\";\nimport NavigationDropdown from \"../../../generic/navigationDropdown\";\nimport \"../../../../assets/scss/components/toc/orderBook/obContainer/obUtilHeader.scss\";\n\nexport interface IHoldUtilHeaderProps {\n\tdata: Array>; // data to be searched or filtered\n\tsearchKey: string; // key on which search needs to be performed\n\tonDataFilter: (filteredData: any[], sText?: string, type?: string) => void; // returns filtered array after searching\n\tonToggleClick?: (groupedData: Array>, toggleState: boolean) => void; // event after clicking on filter button\n\tonSearchClick: (hidePriNav: boolean) => void; // event after clicking on search button\n\tdefaultToggleState?: boolean;\n}\n\nexport enum EHoldUtilHeaderState {\n\tNORMAL,\n\tFILTER,\n\tSEARCH\n}\n\nconst HoldUtilHeader: React.FC = props => {\n\tconst [utilHeaderState, setUtilHeaderState] = useState(EHoldUtilHeaderState.NORMAL);\n\tconst routeParams = useRouteMatch();\n\n\tfunction onSearchClick(e: React.MouseEvent) {\n\t\tsetUtilHeaderState(EHoldUtilHeaderState.SEARCH);\n\n\t\tprops.onSearchClick(true);\n\t}\n\n\tfunction onCancelClick() {\n\t\tsetUtilHeaderState(EHoldUtilHeaderState.NORMAL);\n\t\tprops.onSearchClick(false);\n\t\tprops.onDataFilter(props.data, \"\", \"search\");\n\t}\n\n\tfunction tagList() {\n\t\treturn routeParams.url.indexOf(\"equity\") !== -1\n\t\t\t? [\n\t\t\t\t\t{ value: \"usable\", display: \"Usable\", href: \"usable\" },\n\t\t\t\t\t{ value: \"unusable\", display: \"Unusable\", href: \"unusable\" },\n\t\t\t\t\t{ value: \"smallcase\", display: \"Smallcase\", href: \"smallcase\" }\n\t\t\t ]\n\t\t\t: routeParams.url.indexOf(\"mf\") !== -1\n\t\t\t? [\n\t\t\t\t\t{ value: \"usable\", display: \"Usable\", href: \"usable\" },\n\t\t\t\t\t{ value: \"unusable\", display: \"Unusable\", href: \"unusable\" }\n\t\t\t ]\n\t\t\t: [];\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{utilHeaderState === EHoldUtilHeaderState.NORMAL && (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{!DeviceContext().isMobile ? (\n\t\t\t\t\t\t\t {}} />\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t {}}\n\t\t\t\t\t\t\t\ttype=\"sec_nav\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\n\t\t\t\t\t
    \n\t\t\t\t\t\t{props.data[0].length > 0 && props.onToggleClick && props.defaultToggleState !== undefined && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{props.data[0].length > 0 && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{!DeviceContext().isMobile && Search}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbtnTyp=\"blue-link\"\n\t\t\t\t\t\t\t\t\tonClick={onSearchClick}\n\t\t\t\t\t\t\t\t\tclassName=\"search_btn\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t)}\n\t\t\t{utilHeaderState === EHoldUtilHeaderState.SEARCH && (\n\t\t\t\t
    \n\t\t\t\t\t{/* Search takes 1D array and returns 1D array\n\t\t\t\t\tSo we need to convert it accordingly */}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default HoldUtilHeader;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport OverflowButton from \"../../../../generic/overflowButton\";\nimport { IListObj } from \"../../../../types/genericTypes\";\n\nexport interface IHoldEqUsableRowDskProps {\n rowData: any;\n}\n\nconst overflowBtnDropdownOptions: Array = [\n { value: \"buy\", display: \"Buy\" },\n { value: \"sell\", display: \"Sell\" },\n];\n\nconst HoldEqUsableRowDsk: React.FC = (props) => {\n return (\n
  • \n
    \n
    \n \n
    \n
    \n {props.rowData.cncRmsHdg ? toINR(props.rowData.cncRmsHdg.qty) : \"—\"}\n
    \n
    \n {props.rowData.cncRmsHdg\n ? toINR(props.rowData.cncRmsHdg.t1HQty)\n : \"—\"}\n
    \n
    \n {props.rowData.cncRmsHdg\n ? toINR(props.rowData.cncRmsHdg.usdQty)\n : \"—\"}\n
    \n
    \n {props.rowData.cncRmsHdg\n ? toINR(props.rowData.cncRmsHdg.totQty)\n : \"—\"}\n
    \n
    {toINR(props.rowData.ltp, 2)}
    \n
    \n {props.rowData.cncRmsHdg\n ? toINR(props.rowData.cncRmsHdg.hdgVl, 2)\n : \"—\"}\n
    \n
    \n {\n //\tconsole.log(id, data);\n }}\n showBuySellColor\n />\n
    \n
    \n
    \n
    MTF holding values:
    \n
    \n {props.rowData.mtfRmsHdg ? toINR(props.rowData.mtfRmsHdg.qty) : \"—\"}\n
    \n
    \n {props.rowData.mtfRmsHdg\n ? toINR(props.rowData.mtfRmsHdg.t1HQty)\n : \"—\"}\n
    \n
    \n {props.rowData.mtfRmsHdg\n ? toINR(props.rowData.mtfRmsHdg.usdQty)\n : \"—\"}\n
    \n
    \n {props.rowData.mtfRmsHdg\n ? toINR(props.rowData.mtfRmsHdg.totQty)\n : \"—\"}\n
    \n
    \n
    \n {props.rowData.mtfRmsHdg\n ? toINR(props.rowData.mtfRmsHdg.hdgVl, 2)\n : \"—\"}\n
    \n
    \n
  • \n );\n};\n\nexport default HoldEqUsableRowDsk;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\n\nexport interface IHoldEqUsablePopupProps {\n\tdata: any;\n\tonClose: () => void;\n}\n\nconst HoldEqUsablePopup: React.FC = props => {\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t

    {props.data.trdSym}

    \n\t\t\t\t

    {props.data.cpName ? props.data.cpName : props.data.dpName}

    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tHolding Value\n\t\t\t\t\t\t₹{toINR(props.data.hdgVl)}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tLTP\n\t\t\t\t\t\t₹{toINR(props.data.ltp)}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tTotal Normal Quantity\n\t\t\t\t\t\t{props.data.cncRmsHdg ? toINR(props.data.cncRmsHdg.totQty) : \"—\"}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tTotal MTF Quantity\n\t\t\t\t\t\t{props.data.mtfRmsHdg ? toINR(props.data.mtfRmsHdg.totQty) : \"—\"}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tNormal Quantity\n\t\t\t\t\t\t{props.data.cncRmsHdg ? toINR(props.data.cncRmsHdg.qty) : \"—\"}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tNormal MTF Quantity\n\t\t\t\t\t\t{props.data.mtfRmsHdg ? toINR(props.data.mtfRmsHdg.qty) : \"—\"}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tT1 Quantity\n\t\t\t\t\t\t{props.data.cncRmsHdg ? toINR(props.data.cncRmsHdg.t1HQty) : \"—\"}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tT1 MTF Quantity\n\t\t\t\t\t\t{props.data.mtfRmsHdg ? toINR(props.data.mtfRmsHdg.t1HQty) : \"—\"}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tUsed Quantity\n\t\t\t\t\t\t{props.data.cncRmsHdg ? toINR(props.data.cncRmsHdg.usdQty) : \"—\"}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tUsed MTF Quantity\n\t\t\t\t\t\t{props.data.mtfRmsHdg ? toINR(props.data.mtfRmsHdg.usdQty) : \"—\"}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tNormal Holding Value\n\t\t\t\t\t\t{props.data.cncRmsHdg ? toINR(props.data.cncRmsHdg.hdgVl) : \"—\"}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tMTF Holding Value\n\t\t\t\t\t\t{props.data.mtfRmsHdg ? toINR(props.data.mtfRmsHdg.hdgVl) : \"—\"}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default HoldEqUsablePopup;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport SlideUpPopup from \"../../../../generic/slideUpPopup\";\nimport HoldEqUsablePopup from \"./holdEqUsablePopup\";\n\nexport interface IHoldEqUsableRowMobProps {\n\trowData: any;\n}\n\nconst HoldEqUsableRowMob: React.FC = props => {\n\tconst [isPopupOpen, setIsPopupOpen] = React.useState(false);\n\n\treturn (\n\t\t<>\n\t\t\t
  • setIsPopupOpen(true)}>\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    LTP: ₹{toINR(props.rowData.ltp, 2)}
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    Total Qty: {props.rowData.cncRmsHdg ? toINR(props.rowData.cncRmsHdg.totQty) : \"—\"}
    \n\t\t\t\t\t
    {props.rowData.mtfRmsHdg && \"MTF Qty: \" + toINR(props.rowData.mtfRmsHdg.totQty)}
    \n\t\t\t\t
    \n\t\t\t
  • \n\n\t\t\t{isPopupOpen && (\n\t\t\t\t setIsPopupOpen(false)}>\n\t\t\t\t\t setIsPopupOpen(false)} />\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default HoldEqUsableRowMob;\n","//to be changed after availing exact live URL and after changes\nconst socketUATURL: string = window.location.protocol === \"https:\" ? \"wss://mstreamuat.edelweiss.in\" : \"wss://mstreamuat.edelweiss.in\";\nconst socketLIVEURL: string = window.location.protocol === \"https:\" ? \"wss://mstreamuat.edelweiss.in\" : \"wss://mstreamuat.edelweiss.in\";\n\n// Assign object to a variable before exporting as module default import/no-anonymous-default-export\nconst socketConfig = {\n\tsocketURL: process.env.REACT_APP_ENV === \"production\" ? socketLIVEURL : socketUATURL,\n\tport: 12007\n};\n\nexport default socketConfig;\n","import socketConfig from \"../../../config/edelWebSockets/socketConfig\";\nimport urlConfig from \"../../../config/domain\";\n\nexport const WS = new WebSocket(socketConfig.socketURL + \":\" + socketConfig.port);\n\n//request format for quotes\n/* empty string - \"\", for non mandatory field values\n * quoteType - streaming_type i.e, quote,quote2, quote3 - refer conf doc for more info\n * data - object contains user related information and array of streaming symbols\n * for which quote data is requested for\n * if vend id is 'EDEL' vendToken is not mandatory\n * userID and accType are not mandatory,\n * returns the request - created based on the parameters\n */\nexport const edelSocketQuoteReq = (\n\tquoteType: string,\n\tdata: { vendID: string; vendToken: string; userID: string; accType: string; symbols: Array<{ symbol: string }> },\n\treq_type: \"subscribe\" | \"unsubscribe\" = \"subscribe\"\n) => {\n\treturn {\n\t\trequest: {\n\t\t\tstreaming_type: quoteType,\n\t\t\tdata: {\n\t\t\t\t...data\n\t\t\t},\n\t\t\tformFactor: \"W\",\n\t\t\tresponse_format: \"json\",\n\t\t\trequest_type: req_type\n\t\t},\n\t\techo: {}\n\t};\n};\n\nexport const edelSocketQuote1Req = (\n\tquoteType: string,\n\tdata: { symbols: Array<{ symbol: string }> },\n\treq_type: \"subscribe\" | \"unsubscribe\" = \"subscribe\"\n) => {\n\treturn {\n\t\trequest: {\n\t\t\tstreaming_type: quoteType,\n\t\t\tdata: {\n\t\t\t\t...data\n\t\t\t},\n\t\t\tformFactor: \"W\",\n\t\t\tresponse_format: \"json\",\n\t\t\trequest_type: req_type,\n\t\t\tappID: urlConfig.appid\n\t\t},\n\t\techo: {}\n\t};\n};\n","import { WS } from \"./wsInit\";\n\n// import socketConfig from \"../../../config/edelWebSockets/socketConfig\";\n\n//initalize the event listeners of the web socket\nexport function initWS(req: T, sendToSrc: CallableFunction) {\n\tlet msgReadyToSend: boolean = false;\n\n\tconst waitingForConn = setInterval(() => {\n\t\tif (!msgReadyToSend && WS.readyState === 1) {\n\t\t\tWS.send(JSON.stringify(req) + \"\\n\");\n\t\t\tmsgReadyToSend = true;\n\t\t} else {\n\t\t\tclearInterval(waitingForConn);\n\t\t}\n\t}, 100);\n\n\t//heart beat pinged every two minutes to keep the socket connection alive, not related to request\n\tsetInterval(() => {\n\t\tif (WS.readyState === 1) WS.send(JSON.stringify({}) + \"\\n\");\n\t}, 120000);\n\n\tWS.onopen = (_e) => {\n\t\ttry {\n\t\t\t// WS.readyState\n\t\t\tif (WS.readyState === 1 && !msgReadyToSend) {\n\t\t\t\tWS.send(JSON.stringify(req) + \"\\n\");\n\t\t\t\tmsgReadyToSend = true;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t};\n\n\tWS.onmessage = (e: any) => {\n\t\tsendToSrc(e.data, \"message\");\n\t};\n\n\tWS.onerror = (e) => {\n\t\tsendToSrc(e, \"error\");\n\t};\n\n\tWS.onclose = (e) => {\n\t\tsendToSrc(e, \"close\");\n\t};\n}\n\n//to close webscoket connection from client end\nexport function closeEdelSocketConn() {\n\tWS.close();\n}\n","/*generates hash object using two dimensional Array and key of sepcified type\nrefData - Array of data with Type which is used to generate hash Object\nkey is of which its value to be returned as hash key\nreturns object of (value of param key: group index , row index) => key value: [index,index] - hash Object\n*/\nexport function genHshObj(refData: Array>, key: keyof T) {\n\tconst hash: { [x: string]: [number, number] } = {};\n\trefData.forEach((group: Array, gI: number) =>\n\t\tgroup.forEach((row: T, i: number) => {\n\t\t\tconst sym: any = row[key];\n\t\t\thash[sym] = [gI, i];\n\t\t})\n\t);\n\treturn hash;\n}\n","import * as React from \"react\";\nimport HoldUtilHeader from \"../../generic/holdUtilHeader\";\nimport HoldEqUsableRowDsk from \"./holdEqUsableRowDsk\";\nimport HoldEqUsableRowMob from \"./holdEqUsableRowMob\";\nimport DeviceContext from \"../../../../service/indentifyDevice\";\nimport { HHoldMTFGroupBy } from \"../../../../service/holdings/holdGrpByHelper\";\nimport Sort, { eSortState, sort } from \"../../../../generic/sort\";\nimport { SearchHighLight } from \"../../../../service/generic/searchHighlight\";\nimport NoDataContainer from \"../../../../generic/noDataContainer\";\nimport { initWS } from \"../../../../service/edelWebSockets/wsCallbacks\";\nimport { ISocketSubscribeReq } from \"../../../../types/components/edelSockets/edelSocketTypes\";\nimport { edelSocketQuoteReq } from \"../../../../service/edelWebSockets/wsInit\";\nimport { getAccData } from \"../../../../service/login/loginService\";\nimport { genHshObj } from \"../../../../utils/hashObj\";\n\nif (DeviceContext().isDesktop) {\n require(\"../../../../../assets/scss/components/toc/holdings/holdTables/holdTableDsk.scss\");\n} else if (DeviceContext().isTablet) {\n require(\"../../../../../assets/scss/components/toc/holdings/holdTables/holdTableTab.scss\");\n} else {\n require(\"../../../../../assets/scss/components/toc/holdings/holdTables/holdTableMob.scss\");\n}\n\nexport interface IHoldEqUsableTableProps {\n data: Array;\n}\n\nexport interface IHoldEqUsableTableState {\n toggleState: boolean;\n initialData: Array;\n filteredData: Array>;\n tableData: Array>;\n sortedColumnState: { colName: string | null; sortState: eSortState };\n}\n\nconst heading = {\n trdSym: \"Symbol\",\n qty: \"Normal Qty\",\n t1HQty: \"T1 Qty\",\n usdQty: \"Used Qty\",\n totQty: \"Total Normal Qty\",\n ltp: \"LTP/Close\",\n hdgVl: \"Normal Holding Value\",\n};\n\nclass HoldEqUsableTable extends React.Component<\n IHoldEqUsableTableProps,\n IHoldEqUsableTableState\n> {\n state: IHoldEqUsableTableState = {\n toggleState: false,\n initialData: this.props.data,\n filteredData: [this.props.data],\n tableData: [this.props.data],\n sortedColumnState: { colName: null, sortState: eSortState.ASC },\n };\n\n filteredHash: { [x: string]: [number, number] } = {}; // hash object for filteredData\n tableHash: { [x: string]: [number, number] } = {}; // hash object for tableData\n\n parsePropData = () => {\n // adds hdgVl on the first level, just for sorting; DON\"T USE IT FOR DATA BINDING\n return this.state.initialData.map((row) => ({\n ...row,\n hdgVl: row.cncRmsHdg ? row.cncRmsHdg.hdgVl : row.mtfRmsHdg.hdgVl,\n }));\n };\n\n componentDidMount() {\n initWS(\n edelSocketQuoteReq(\"quote3\", {\n vendID: \"EDEL\",\n vendToken: \"\",\n userID: getAccData(\"userID\"),\n accType: getAccData(\"accTyp\"),\n symbols: this.props.data.map((data) => ({ symbol: data.sym })),\n }),\n this.socketMessages\n );\n\n // parse data first to move hdgVl to first level\n const data = this.parsePropData();\n\n if (this.state.toggleState) {\n // when data comes initially, group it\n const groupedData = HHoldMTFGroupBy(data);\n this.setState({\n filteredData: groupedData,\n tableData: groupedData,\n initialData: data,\n });\n\n this.filteredHash = genHshObj(groupedData, \"sym\");\n this.tableHash = this.filteredHash;\n } else {\n this.setState({\n filteredData: [data],\n tableData: [data],\n initialData: data,\n });\n\n this.filteredHash = genHshObj([data], \"sym\");\n this.tableHash = this.filteredHash;\n }\n }\n\n componentWillUnmount = () => {\n initWS(\n edelSocketQuoteReq(\n \"quote3\",\n {\n vendID: \"EDEL\",\n vendToken: \"\",\n userID: getAccData(\"userID\"),\n accType: getAccData(\"accTyp\"),\n symbols: this.props.data.map((data) => ({ symbol: data.sym })),\n },\n \"unsubscribe\"\n ),\n () => {}\n );\n };\n\n checkMTFHoldings = () => {\n // chack if there is any MTF holding in data\n return !!this.props.data.find((data) => data.mtfRmsHdg);\n };\n\n isMtfHoldingsPresent = this.checkMTFHoldings();\n\n onSort = (\n data: Array>,\n sortState: eSortState,\n colName: string\n ) => {\n this.setState({\n sortedColumnState: { colName, sortState },\n tableData: data,\n });\n this.tableHash = genHshObj(data, \"sym\");\n };\n\n sortAfterFilter = (groupedData: Array>) => {\n // if some column was sorted earlier, then sort that again\n if (this.state.sortedColumnState.colName) {\n // copy grouped data, because it will change after sorting\n // filtered data will also change with groupedData\n const copyGroupedData = groupedData.map((group) =>\n group.map((data) => data)\n );\n\n sort(\n copyGroupedData,\n this.state.sortedColumnState.sortState,\n this.state.sortedColumnState.colName,\n this.onSort\n );\n }\n };\n\n handleToggleClick = (\n groupedData: Array>,\n toggleState: boolean\n ) => {\n this.setState({\n toggleState: toggleState,\n filteredData: groupedData,\n tableData: groupedData,\n });\n this.filteredHash = genHshObj(groupedData, \"sym\");\n this.tableHash = this.filteredHash;\n\n this.sortAfterFilter(groupedData);\n };\n\n handleSearch = (filteredData: Array>, sText?: string) => {\n if (sText) {\n const SearchText: string = sText.toLowerCase();\n const searchKey: string = \"trdSym\";\n\n // highlight the rows\n filteredData[0] = filteredData[0].map(({ ...row }: any) => ({\n ...row,\n [searchKey]: SearchHighLight(row[searchKey], SearchText),\n }));\n }\n\n // group data to pass into handle toggle click\n let groupedData: Array> = [];\n if (this.state.toggleState) {\n groupedData = HHoldMTFGroupBy(filteredData[0]);\n } else {\n groupedData = filteredData;\n }\n\n this.handleToggleClick(groupedData, this.state.toggleState);\n };\n\n socketMessages = (res: any) => {\n if (typeof res === \"string\") {\n // success\n const { response } = JSON.parse(res);\n const sym = response.data.z3;\n const ltp = response.data.a9;\n\n const filteredIndex = this.filteredHash[sym];\n const tableIndex = this.tableHash[sym];\n\n if (tableIndex)\n console.log(ltp, this.state.tableData[tableIndex[0]][tableIndex[1]]);\n\n if (\n filteredIndex &&\n tableIndex &&\n this.state.tableData[tableIndex[0]][tableIndex[1]].ltp !== ltp\n ) {\n // console.log(this.state.tableData[tableIndex[0]][tableIndex[1]], ltp);s\n const filteredDataTemp = this.state.filteredData;\n const tableDataTemp = this.state.tableData;\n\n let row = {\n ...this.state.filteredData[filteredIndex[0]][filteredIndex[1]],\n };\n this.updateRowOnStream(row, ltp);\n filteredDataTemp[filteredIndex[0]][filteredIndex[1]] = row;\n\n row = { ...this.state.tableData[tableIndex[0]][tableIndex[1]] };\n this.updateRowOnStream(row, ltp);\n tableDataTemp[tableIndex[0]][tableIndex[1]] = row;\n\n this.setState({\n filteredData: filteredDataTemp,\n tableData: tableDataTemp,\n });\n }\n } else {\n //console.log(res.type);\n }\n };\n\n updateRowOnStream(row: any, ltp: string) {\n row.ltp = ltp;\n if (row.cncRmsHdg.hdgVl) row.cncRmsHdg.hdgVl = +ltp * row.cncRmsHdg.totQty;\n if (row.cncRmsHdg.hdgVl) row.cncRmsHdg.hdgVl = +ltp * row.cncRmsHdg.totQty;\n }\n\n render() {\n return (\n <>\n {}}\n defaultToggleState={\n this.isMtfHoldingsPresent ? this.state.toggleState : undefined\n }\n />\n\n
    \n {!DeviceContext().isMobile && (\n
      \n
    • \n
      \n \n
      \n
      {heading.qty}
      \n
      {heading.t1HQty}
      \n
      {heading.usdQty}
      \n
      {heading.totQty}
      \n
      {heading.ltp}
      \n
      \n \n
      \n
    • \n
    \n )}\n\n {/* Flatten the array and check if there is anything to be shown */}\n {this.state.tableData.join().split(\",\")[0] ? (\n
    \n {this.state.tableData.map((group, groupIndex) => (\n
      \n {group.map((row, index) => (\n \n {!DeviceContext().isMobile ? (\n \n ) : (\n \n )}\n \n ))}\n
    \n ))}\n
    \n ) : (\n \n )}\n
    \n \n );\n }\n}\n\nexport default HoldEqUsableTable;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\n\nexport interface IHoldEqUnusableRowDskProps {\n\trowData: any;\n}\n\nconst HoldEqUnusableRowDsk: React.FC = props => {\n\treturn (\n\t\t
  • \n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t
    {props.rowData.pledgQty}
    \n\t\t\t
    {toINR(props.rowData.lockedInQty)}
    \n\t\t\t
    {toINR(props.rowData.LTP)}
    \n\t\t\t
    {toINR(props.rowData.holdingValue)}
    \n\t\t
  • \n\t);\n};\n\nexport default HoldEqUnusableRowDsk;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\n\nexport interface IHoldEqUnusablePopupProps {\n\tdata: any;\n\tonClose: () => void;\n}\n\nconst HoldEqUnusablePopup: React.FC = props => {\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t

    {props.data.companyName}

    \n\t\t\t\t{/*

    {props.data.cpName ? props.data.cpName : props.data.dpName}

    */}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tHolding Value\n\t\t\t\t\t\t₹{toINR(props.data.holdingValue)}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tLTP\n\t\t\t\t\t\t₹{toINR(props.data.LTP)}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tLocked-in Quantity\n\t\t\t\t\t\t{toINR(props.data.lockedInQty)}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tPledged Quantity\n\t\t\t\t\t\t{toINR(props.data.holdingValue)}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default HoldEqUnusablePopup;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport SlideUpPopup from \"../../../../generic/slideUpPopup\";\nimport HoldEqUnusablePopup from \"./holdEqUnusablePopup\";\n\nexport interface IHoldEqUnusableRowMobProps {\n\trowData: any;\n}\n\nconst HoldEqUnusableRowMob: React.FC = props => {\n\tconst [isPopupOpen, setIsPopupOpen] = React.useState(false);\n\n\treturn (\n\t\t<>\n\t\t\t
  • setIsPopupOpen(true)}>\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    LTP: ₹{toINR(props.rowData.LTP)}
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    Pledged Qty: {props.rowData.pledgQty}
    \n\t\t\t\t\t
    Locked-in Qty: {toINR(props.rowData.lockedInQty)}
    \n\t\t\t\t
    \n\t\t\t
  • \n\n\t\t\t{isPopupOpen && (\n\t\t\t\t setIsPopupOpen(false)}>\n\t\t\t\t\t setIsPopupOpen(false)} />\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default HoldEqUnusableRowMob;\n","import * as React from \"react\";\nimport HoldUtilHeader from \"../../generic/holdUtilHeader\";\nimport HoldEqUnusableRowDsk from \"./holdEqUnusableRowDsk\";\nimport HoldEqUnusableRowMob from \"./holdEqUnusableRowMob\";\nimport DeviceContext from \"../../../../service/indentifyDevice\";\nimport Sort, { eSortState, sort } from \"../../../../generic/sort\";\nimport { SearchHighLight } from \"../../../../service/generic/searchHighlight\";\nimport NoDataContainer from \"../../../../generic/noDataContainer\";\n\nif (DeviceContext().isDesktop) {\n\trequire(\"../../../../../assets/scss/components/toc/holdings/holdTables/holdTableDsk.scss\");\n} else if (DeviceContext().isTablet) {\n\trequire(\"../../../../../assets/scss/components/toc/holdings/holdTables/holdTableTab.scss\");\n} else {\n\trequire(\"../../../../../assets/scss/components/toc/holdings/holdTables/holdTableMob.scss\");\n}\n\nexport interface IHoldEqUnusableTableProps {\n\tdata: Array;\n}\n\nconst heading = {\n\tcompanyName: \"Symbol\",\n\tpledgQty: \"Pledged Qty\",\n\tlockedInQty: \"Locked-in Qty\",\n\tLTP: \"LTP/Close\",\n\tholdingValue: \"Holding Value\"\n};\n\nconst HoldEqUnusableTable: React.FC = props => {\n\t// Make tableData 2D to maintain consistency with other tables\n\tconst [filteredData, setFilteredData] = React.useState([props.data]);\n\tconst [tableData, setTableData] = React.useState([props.data]);\n\t// to maintain the state of sorted column\n\tconst [sortedColumnState, setSortedColumnState] = React.useState({ colName: null as string | null, sortState: eSortState.ASC });\n\n\tfunction parsePropData() {\n\t\t// deepcopy for searching, otherwise the changes happen through reference in SearchHighLight\n\t\treturn props.data.map(row => ({ ...row }));\n\t}\n\n\tReact.useEffect(() => {\n\t\tsetTableData([parsePropData()]);\n\t}, [props.data]);\n\n\tfunction onSort(data: Array>, sortState: eSortState, colName: string) {\n\t\tsetSortedColumnState({ colName, sortState });\n\t\tsetTableData(data);\n\t}\n\n\tfunction sortAfterFilter(groupedData: Array>) {\n\t\t// if some column was sorted earlier, then sort that again\n\t\tif (sortedColumnState.colName) {\n\t\t\t// copy grouped data, because it will change after sorting\n\t\t\t// filtered data will also change with groupedData\n\t\t\tconst copyGroupedData = groupedData.map(group => group.map(data => data));\n\n\t\t\tsort(copyGroupedData, sortedColumnState.sortState, sortedColumnState.colName, onSort);\n\t\t}\n\t}\n\n\tfunction handleSearch(filteredData: Array>, sText?: string | undefined) {\n\t\t// set filtered data in the beginning because this will be used while sorting\n\t\t// we don't want the tag while sorting\n\t\tsetFilteredData(filteredData);\n\n\t\tif (sText) {\n\t\t\tconst SearchText: string = sText.toLowerCase();\n\t\t\tconst searchKey: string = \"companyName\";\n\n\t\t\t// highlight the rows\n\t\t\tfilteredData[0].forEach((row: any) => (row[searchKey] = SearchHighLight(row[searchKey], SearchText)));\n\t\t}\n\n\t\tsetTableData(filteredData);\n\n\t\tsortAfterFilter(filteredData);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t {}} />\n\n\t\t\t
    \n\t\t\t\t{!DeviceContext().isMobile && (\n\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      {heading.pledgQty}
      \n\t\t\t\t\t\t\t
      {heading.lockedInQty}
      \n\t\t\t\t\t\t\t
      {heading.LTP}
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t
    \n\t\t\t\t)}\n\n\t\t\t\t{/* If data is not there in array, then show no data container */}\n\t\t\t\t{tableData[0].length ? (\n\t\t\t\t\t
    \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t{tableData[0].map((row, index) => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{!DeviceContext().isMobile ? : }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
    \n\t\t\n\t);\n};\n\nexport default HoldEqUnusableTable;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\n\nexport interface IHoldEqSmallcaseRowDskProps {\n\trowData: any;\n}\n\nconst HoldEqSmallcaseRowDsk: React.FC = props => {\n\treturn (\n\t\t
  • \n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t
    {toINR(props.rowData.shares)}
    \n\t\t\t
    {toINR(props.rowData.ltp)}
    \n\t\t\t
    {toINR(props.rowData.averagePrice)}
    \n\t\t
  • \n\t);\n};\n\nexport default HoldEqSmallcaseRowDsk;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\n\nexport interface IHoldEqSmallcaseRowMobProps {\n\trowData: any;\n}\n\nconst HoldEqSmallcaseRowMob: React.FC = props => {\n\treturn (\n\t\t
  • \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    LTP: {toINR(props.rowData.shares)}
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    Total Qty: {toINR(props.rowData.ltp)}
    \n\t\t\t\t
    Holding Value: {toINR(props.rowData.averagePrice)}
    \n\t\t\t
    \n\t\t
  • \n\t);\n};\n\nexport default HoldEqSmallcaseRowMob;\n","import * as React from \"react\";\nimport HoldUtilHeader from \"../../generic/holdUtilHeader\";\nimport HoldEqSmallcaseRowDsk from \"./holdEqSmallcaseRowDsk\";\nimport HoldEqSmallcaseRowMob from \"./holdEqSmallcaseRowMob\";\nimport DeviceContext from \"../../../../service/indentifyDevice\";\nimport Sort, { eSortState, sort } from \"../../../../generic/sort\";\nimport { SearchHighLight } from \"../../../../service/generic/searchHighlight\";\nimport NoDataContainer from \"../../../../generic/noDataContainer\";\nimport { initWS } from \"../../../../service/edelWebSockets/wsCallbacks\";\nimport { ISocketSubscribeReq } from \"../../../../types/components/edelSockets/edelSocketTypes\";\nimport { edelSocketQuoteReq } from \"../../../../service/edelWebSockets/wsInit\";\nimport { getAccData } from \"../../../../service/login/loginService\";\nimport { genHshObj } from \"../../../../utils/hashObj\";\n\nif (DeviceContext().isDesktop) {\n require(\"../../../../../assets/scss/components/toc/holdings/holdTables/holdTableDsk.scss\");\n} else if (DeviceContext().isTablet) {\n require(\"../../../../../assets/scss/components/toc/holdings/holdTables/holdTableTab.scss\");\n} else {\n require(\"../../../../../assets/scss/components/toc/holdings/holdTables/holdTableMob.scss\");\n}\n\nexport interface IHoldEqSmallcaseTableProps {\n data: Array;\n}\n\nexport interface IHoldEqSmallcaseTableState {\n initialData: Array;\n filteredData: Array>;\n tableData: Array>;\n sortedColumnState: { colName: string | null; sortState: eSortState };\n}\n\nconst heading = {\n stockName: \"Name\",\n shares: \"Qty\",\n ltp: \"LTP/Close\",\n averagePrice: \"Holding Value\",\n};\n\nclass HoldEqSmallcaseTable extends React.Component<\n IHoldEqSmallcaseTableProps,\n IHoldEqSmallcaseTableState\n> {\n state: IHoldEqSmallcaseTableState = {\n initialData: this.props.data,\n filteredData: [this.props.data],\n tableData: [this.props.data],\n sortedColumnState: { colName: null, sortState: eSortState.ASC },\n };\n\n filteredHash: { [x: string]: [number, number] } = {}; // hash object for filteredData\n tableHash: { [x: string]: [number, number] } = {}; // hash object for tableData\n\n parsePropData = () => {\n // deepcopy for searching, otherwise the changes happen through reference in SearchHighLight\n return this.state.initialData.map((row) => ({ ...row }));\n };\n\n componentDidMount() {\n initWS(\n edelSocketQuoteReq(\"quote3\", {\n vendID: \"EDEL\",\n vendToken: \"\",\n userID: getAccData(\"userID\"),\n accType: getAccData(\"accTyp\"),\n symbols: this.props.data.map((data) => ({\n symbol: data.nsestreamingSym,\n })),\n }),\n this.socketMessages\n );\n\n // parse data first to move hdgVl to first level\n const data = this.parsePropData();\n\n this.setState({\n filteredData: [data],\n tableData: [data],\n initialData: data,\n });\n\n this.filteredHash = genHshObj([data], \"nsestreamingSym\");\n this.tableHash = this.filteredHash;\n }\n\n componentWillUnmount = () => {\n initWS(\n edelSocketQuoteReq(\n \"quote3\",\n {\n vendID: \"EDEL\",\n vendToken: \"\",\n userID: getAccData(\"userID\"),\n accType: getAccData(\"accTyp\"),\n symbols: this.props.data.map((data) => ({ symbol: data.sym })),\n },\n \"unsubscribe\"\n ),\n () => {}\n );\n };\n\n onSort = (\n data: Array>,\n sortState: eSortState,\n colName: string\n ) => {\n this.setState({\n sortedColumnState: { colName, sortState },\n tableData: data,\n });\n this.tableHash = genHshObj(data, \"nsestreamingSym\");\n };\n\n sortAfterFilter = (groupedData: Array>) => {\n // if some column was sorted earlier, then sort that again\n if (this.state.sortedColumnState.colName) {\n // copy grouped data, because it will change after sorting\n // filtered data will also change with groupedData\n const copyGroupedData = groupedData.map((group) =>\n group.map((data) => data)\n );\n\n sort(\n copyGroupedData,\n this.state.sortedColumnState.sortState,\n this.state.sortedColumnState.colName,\n this.onSort\n );\n }\n };\n\n handleSearch = (filteredData: Array>, sText?: string) => {\n // set filtered data in the beginning because this will be used while sorting\n // we don't want the tag while sorting\n this.setState({ filteredData });\n\n if (sText) {\n const SearchText: string = sText.toLowerCase();\n const searchKey: string = \"stockName\";\n\n // highlight the rows\n filteredData[0] = filteredData[0].map(({ ...row }: any) => ({\n ...row,\n [searchKey]: SearchHighLight(row[searchKey], SearchText),\n }));\n }\n\n this.setState({ tableData: filteredData });\n this.filteredHash = genHshObj(filteredData, \"nsestreamingSym\");\n this.tableHash = this.filteredHash;\n\n this.sortAfterFilter(filteredData);\n };\n\n socketMessages = (res: any) => {\n if (typeof res === \"string\") {\n // success\n const { response } = JSON.parse(res);\n const sym = response.data.z3;\n const ltp = response.data.a9;\n\n const filteredIndex = this.filteredHash[sym];\n const tableIndex = this.tableHash[sym];\n\n if (tableIndex)\n console.log(\n ltp,\n sym,\n this.tableHash,\n this.state.tableData[tableIndex[0]][tableIndex[1]]\n );\n\n if (\n filteredIndex &&\n tableIndex &&\n this.state.tableData[tableIndex[0]][tableIndex[1]] &&\n this.state.tableData[tableIndex[0]][tableIndex[1]].ltp !== ltp\n ) {\n // console.log(this.state.tableData[tableIndex[0]][tableIndex[1]], ltp);\n const filteredDataTemp = this.state.filteredData;\n const tableDataTemp = this.state.tableData;\n\n let row = {\n ...this.state.filteredData[filteredIndex[0]][filteredIndex[1]],\n };\n this.updateRowOnStream(row, ltp);\n filteredDataTemp[filteredIndex[0]][filteredIndex[1]] = row;\n\n row = { ...this.state.tableData[tableIndex[0]][tableIndex[1]] };\n this.updateRowOnStream(row, ltp);\n tableDataTemp[tableIndex[0]][tableIndex[1]] = row;\n\n this.setState({\n filteredData: filteredDataTemp,\n tableData: tableDataTemp,\n });\n }\n } else {\n //console.log(res.type);\n }\n };\n\n updateRowOnStream(row: any, ltp: string) {\n row.ltp = ltp;\n row.averagePrice = +ltp * row.shares;\n }\n\n render() {\n return (\n <>\n {}}\n />\n\n
    \n {!DeviceContext().isMobile && (\n
      \n
    • \n
      \n \n
      \n
      {heading.shares}
      \n
      {heading.ltp}
      \n
      \n \n
      \n
    • \n
    \n )}\n\n {/* If data is not there in array, then show no data container */}\n {this.state.tableData[0].length ? (\n
    \n
      \n {this.state.tableData[0].map((row, index) => (\n \n {!DeviceContext().isMobile ? (\n \n ) : (\n \n )}\n \n ))}\n
    \n
    \n ) : (\n \n )}\n
    \n \n );\n }\n}\n\nexport default HoldEqSmallcaseTable;\n","import * as React from \"react\";\nimport HoldLayoutDsk from \"../holdLayout/holdLayoutDsk\";\nimport { RouteChildrenProps } from \"react-router-dom\";\nimport { IHoldRouteParams } from \"../../../types/components/holdings/holdTypes\";\nimport {\n AGetEquityUsableHoldings,\n AGetEquityUnusableHoldings,\n AGetEquitySmallcaseHoldings,\n} from \"../../../service/holdings/holdApiService\";\nimport { IHoldTotalBlockProps } from \"../generic/holdTotalBlock\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport HoldLayoutTab from \"../holdLayout/holdLayoutTab\";\nimport HoldLayoutMob from \"../holdLayout/holdLayoutMob\";\nimport HoldEqUsableTable from \"../holdTables/holdEqUsableTable/holdEqUsableTable\";\nimport HoldEqUnusableTable from \"../holdTables/holdEqUnusableTable/holdEqUnusableTable\";\nimport HoldEqSmallcaseTable from \"../holdTables/holdEqSmallcaseTable/holdEqSmallcaseTable\";\nimport { EHoldScreenState } from \"../holdConstants\";\n\nexport interface IHoldEquityContainerProps {}\n\nexport interface IHoldEquityContainerState {\n usableHoldings?: any; // if unedfined, then api is not called yet\n unusableHoldings?: any; // if unedfined, then api is not called yet\n smallcaseHoldings?: any; // if unedfined, then api is not called yet\n currentRouteParam?: IHoldRouteParams[\"hold\"];\n}\n\nclass HoldEquityContainer extends React.Component<\n IHoldEquityContainerProps & RouteChildrenProps,\n IHoldEquityContainerState\n> {\n state: IHoldEquityContainerState = {\n currentRouteParam: this.props.match?.params.hold,\n };\n\n getEquityUsableHoldingsRes = (res: any) => {\n if (res.data) {\n this.setState({ usableHoldings: res.data });\n } else {\n this.setState({ usableHoldings: {} });\n }\n };\n\n getEquityUnusableHoldingsRes = (res: any) => {\n if (res.data) {\n this.setState({ unusableHoldings: res.data });\n } else {\n this.setState({ unusableHoldings: {} });\n }\n };\n\n getEquitySmallcaseHoldingsRes = (res: any) => {\n if (typeof res === \"string\") {\n this.setState({ smallcaseHoldings: [] });\n } else {\n this.setState({ smallcaseHoldings: res });\n }\n };\n\n callApi(hold?: IHoldRouteParams[\"hold\"]) {\n // call both usable and unusable holding api for both tabs\n // because we need to show both data on top\n if (hold === \"usable\" || hold === \"unusable\") {\n // if data is already present, then there is no need to call api again\n if (this.state.usableHoldings === undefined) {\n AGetEquityUsableHoldings(this.getEquityUsableHoldingsRes);\n }\n\n if (this.state.unusableHoldings === undefined) {\n AGetEquityUnusableHoldings(this.getEquityUnusableHoldingsRes);\n }\n } else if (hold === \"smallcase\") {\n if (this.state.smallcaseHoldings === undefined) {\n AGetEquitySmallcaseHoldings(this.getEquitySmallcaseHoldingsRes);\n }\n }\n }\n\n totalBlockData(): IHoldTotalBlockProps {\n if (\n this.state.currentRouteParam === \"usable\" ||\n this.state.currentRouteParam === \"unusable\"\n ) {\n let unusable =\n this.state.unusableHoldings &&\n this.state.unusableHoldings.elssReportIndividualHoldings\n ? this.state.unusableHoldings.elssReportIndividualHoldings\n .reduce((a: number, b: any) => a + +b.holdingValue, 0)\n .toString()\n : 0;\n return {\n usable: this.state.usableHoldings?.eqHv,\n unusable,\n total: (+this.state.usableHoldings?.eqHv + +unusable).toString(),\n };\n } else {\n //console.log(this.state.smallcaseHoldings);\n return {\n total: this.state.smallcaseHoldings\n ? this.state.smallcaseHoldings\n .reduce((a: number, b: any) => a + +b.averagePrice, 0)\n .toString()\n : 0,\n };\n }\n }\n\n showNoData(): EHoldScreenState {\n if (this.props.match?.params.hold === \"usable\") {\n if (this.state.usableHoldings === undefined) {\n return EHoldScreenState.LOADING;\n }\n if (\n this.state.usableHoldings.rmsHdg &&\n this.state.usableHoldings.rmsHdg.length\n ) {\n return EHoldScreenState.DATA;\n }\n return EHoldScreenState.NO_DATA;\n }\n\n if (this.props.match?.params.hold === \"unusable\") {\n if (this.state.unusableHoldings === undefined) {\n return EHoldScreenState.LOADING;\n }\n if (\n this.state.unusableHoldings.elssReportIndividualHoldings &&\n this.state.unusableHoldings.elssReportIndividualHoldings.length\n ) {\n return EHoldScreenState.DATA;\n }\n return EHoldScreenState.NO_DATA;\n }\n\n if (this.props.match?.params.hold === \"smallcase\") {\n if (this.state.smallcaseHoldings === undefined) {\n return EHoldScreenState.LOADING;\n }\n if (this.state.smallcaseHoldings.length) {\n return EHoldScreenState.DATA;\n }\n return EHoldScreenState.NO_DATA;\n }\n\n return EHoldScreenState.NO_DATA;\n }\n\n componentDidMount() {\n // call the api initially\n this.setState({ currentRouteParam: this.props.match?.params.hold });\n this.callApi(this.props.match?.params.hold);\n }\n\n componentDidUpdate() {\n // call api only if route is changed\n if (this.props.match?.params.hold !== this.state.currentRouteParam) {\n this.setState({ currentRouteParam: this.props.match?.params.hold });\n this.callApi(this.props.match?.params.hold);\n }\n }\n\n render() {\n const child =\n this.props.match?.params.hold === \"usable\" ? (\n \n ) : this.props.match?.params.hold === \"unusable\" ? (\n \n ) : (\n \n );\n\n return DeviceContext().isDesktop ? (\n \n {child}\n \n ) : DeviceContext().isTablet ? (\n \n {child}\n \n ) : (\n \n {child}\n \n );\n }\n}\n\nexport default HoldEquityContainer;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport OverflowButton from \"../../../../generic/overflowButton\";\nimport { IListObj } from \"../../../../types/genericTypes\";\n\nexport interface IHoldMfUsableRowDskProps {\n rowData: any;\n}\n\nconst overflowBtnDropdownOptions: Array = [\n { value: \"buy\", display: \"Buy\" },\n { value: \"sell\", display: \"Sell\" },\n];\n\nconst HoldMfUsableRowDsk: React.FC = (props) => {\n return (\n
  • \n
    \n \n
    \n
    {props.rowData.ct}
    \n
    {props.rowData.mode}
    \n
    \n {toINR(props.rowData.hdgQty)}\n
    \n {toINR(props.rowData.usdQty)}\n
    \n
    {toINR(props.rowData.nav)}
    \n
    {toINR(props.rowData.amount)}
    \n
    \n {\n //console.log(id, data);\n }}\n showBuySellColor\n />\n
    \n
  • \n );\n};\n\nexport default HoldMfUsableRowDsk;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\n\nexport interface IHoldMfUsablePopupProps {\n\tdata: any;\n\tonClose: () => void;\n}\n\nconst HoldMfUsablePopup: React.FC = props => {\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t

    {props.data.scName}

    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tHolding Value\n\t\t\t\t\t\t₹{toINR(props.data.amount)}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tTotal Quantity\n\t\t\t\t\t\t{toINR(props.data.hdgQty)}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tUsed Quantity\n\t\t\t\t\t\t{toINR(props.data.usdQty)}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tNAV\n\t\t\t\t\t\t{toINR(props.data.nav)}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tMode\n\t\t\t\t\t\t{toINR(props.data.mode)}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tCategory\n\t\t\t\t\t\t{toINR(props.data.ct)}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default HoldMfUsablePopup;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport SlideUpPopup from \"../../../../generic/slideUpPopup\";\nimport HoldMfUsablePopup from \"./holdMfUsablePopup\";\n\nexport interface IHoldMfUsableRowMobProps {\n\trowData: any;\n}\n\nconst HoldMfUsableRowMob: React.FC = props => {\n\tconst [isPopupOpen, setIsPopupOpen] = React.useState(false);\n\n\treturn (\n\t\t<>\n\t\t\t
  • setIsPopupOpen(true)}>\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    ₹{toINR(props.rowData.amount, 2)}
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    Total Qty: {toINR(props.rowData.hdgQty)}
    \n\t\t\t\t\t
    Used Qty: {toINR(props.rowData.usdQty)}
    \n\t\t\t\t
    \n\t\t\t
  • \n\n\t\t\t{isPopupOpen && (\n\t\t\t\t setIsPopupOpen(false)}>\n\t\t\t\t\t setIsPopupOpen(false)} />\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default HoldMfUsableRowMob;\n","import * as React from \"react\";\nimport HoldUtilHeader from \"../../generic/holdUtilHeader\";\nimport HoldMfUsableRowDsk from \"./holdMfUsableRowDsk\";\nimport HoldMfUsableRowMob from \"./holdMfUsableRowMob\";\nimport DeviceContext from \"../../../../service/indentifyDevice\";\nimport { HHoldDematGroupBy } from \"../../../../service/holdings/holdGrpByHelper\";\nimport Sort, { eSortState, sort } from \"../../../../generic/sort\";\nimport { SearchHighLight } from \"../../../../service/generic/searchHighlight\";\nimport NoDataContainer from \"../../../../generic/noDataContainer\";\n\nif (DeviceContext().isDesktop) {\n\trequire(\"../../../../../assets/scss/components/toc/holdings/holdTables/holdTableDsk.scss\");\n} else if (DeviceContext().isTablet) {\n\trequire(\"../../../../../assets/scss/components/toc/holdings/holdTables/holdTableTab.scss\");\n} else {\n\trequire(\"../../../../../assets/scss/components/toc/holdings/holdTables/holdTableMob.scss\");\n}\n\nexport interface IHoldMfUsableTableProps {\n\tdata: Array;\n}\n\nconst heading = {\n\tscName: \"Scheme Name\",\n\tct: \"Category\",\n\tmode: \"Mode\",\n\thdgQty: \"Qty\",\n\tusdQty: \"Used Qty\",\n\tnav: \"NAV\",\n\tamount: \"Holding Value\"\n};\n\nconst HoldMfUsableTable: React.FC = props => {\n\tconst isDematPhyCombPresent = checkDematPhyCombination();\n\tconst [toggleState, setToggleState] = React.useState(false);\n\tconst [filteredData, setFilteredData] = React.useState([props.data]);\n\tconst [tableData, setTableData] = React.useState([props.data]);\n\t// to maintain the state of sorted column\n\tconst [sortedColumnState, setSortedColumnState] = React.useState({ colName: null as string | null, sortState: eSortState.ASC });\n\n\tfunction parsePropData() {\n\t\t// deepcopy for searching, otherwise the changes happen through reference in SearchHighLight\n\t\treturn props.data.map(row => ({ ...row }));\n\t}\n\n\tReact.useEffect(() => {\n\t\t// parse data first\n\t\tconst data = parsePropData();\n\n\t\tif (toggleState) {\n\t\t\t// when data comes initially, group it\n\t\t\tsetFilteredData(HHoldDematGroupBy(data));\n\t\t\tsetTableData(HHoldDematGroupBy(data));\n\t\t} else {\n\t\t\tsetFilteredData([data]);\n\t\t\tsetTableData([data]);\n\t\t}\n\t}, [props.data]);\n\n\tfunction checkDematPhyCombination() {\n\t\t// chack if there is any MTF holding in data\n\t\tlet demat = false;\n\t\tlet physical = false;\n\n\t\t// if both demat and physical become true inside the loop, then return true\n\t\treturn !!props.data.find(data => {\n\t\t\tif (data.mode === \"D\") {\n\t\t\t\tdemat = true;\n\t\t\t}\n\t\t\tif (data.mode === \"P\") {\n\t\t\t\tphysical = true;\n\t\t\t}\n\t\t\treturn demat && physical;\n\t\t});\n\t}\n\n\tfunction onSort(data: Array>, sortState: eSortState, colName: string) {\n\t\tsetSortedColumnState({ colName, sortState });\n\t\tsetTableData(data);\n\t}\n\n\tfunction sortAfterFilter(groupedData: Array>) {\n\t\t// if some column was sorted earlier, then sort that again\n\t\tif (sortedColumnState.colName) {\n\t\t\t// copy grouped data, because it will change after sorting\n\t\t\t// filtered data will also change with groupedData\n\t\t\tconst copyGroupedData = groupedData.map(group => group.map(data => data));\n\n\t\t\tsort(copyGroupedData, sortedColumnState.sortState, sortedColumnState.colName, onSort);\n\t\t}\n\t}\n\n\tfunction handleToggleClick(groupedData: Array>, toggleState: boolean) {\n\t\t// set filtered data\n\t\tsetToggleState(toggleState);\n\t\tsetFilteredData(groupedData);\n\t\tsetTableData(groupedData);\n\n\t\tsortAfterFilter(groupedData);\n\t}\n\n\tfunction handleSearch(filteredData: Array>, sText?: string | undefined) {\n\t\tif (sText) {\n\t\t\tconst SearchText: string = sText.toLowerCase();\n\t\t\tconst searchKey: string = \"scName\";\n\n\t\t\t// highlight the rows\n\t\t\tfilteredData[0].forEach((row: any) => (row[searchKey] = SearchHighLight(row[searchKey], SearchText)));\n\t\t}\n\n\t\t// group data to pass into handle toggle click\n\t\tlet groupedData: Array> = [];\n\t\tif (toggleState) {\n\t\t\tgroupedData = HHoldDematGroupBy(filteredData[0]);\n\t\t} else {\n\t\t\tgroupedData = filteredData;\n\t\t}\n\n\t\thandleToggleClick(groupedData, toggleState);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t {}}\n\t\t\t\tdefaultToggleState={isDematPhyCombPresent ? toggleState : undefined}\n\t\t\t/>\n\n\t\t\t
    \n\t\t\t\t{!DeviceContext().isMobile && (\n\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      {heading.ct}
      \n\t\t\t\t\t\t\t
      {heading.mode}
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{heading.hdgQty}\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{heading.usdQty}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      {heading.nav}
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t
    \n\t\t\t\t)}\n\n\t\t\t\t{/* Flatten the array and check if there is anything to be shown */}\n\t\t\t\t{tableData.join().split(\",\")[0] ? (\n\t\t\t\t\t
    \n\t\t\t\t\t\t{tableData.map((group, groupIndex) => (\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{group.map((row, index) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{!DeviceContext().isMobile ? : }\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t))}\n\t\t\t\t\t
    \n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
    \n\t\t\n\t);\n};\n\nexport default HoldMfUsableTable;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\n\nexport interface IHoldMfUnusableRowDskProps {\n\trowData: any;\n}\n\nconst HoldMfUnusableRowDsk: React.FC = props => {\n\treturn (\n\t\t
  • \n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t
    {props.rowData.category}
    \n\t\t\t
    {toINR(props.rowData.pledgQty)}
    \n\t\t\t
    {toINR(props.rowData.lockedInQty)}
    \n\t\t\t
    {toINR(props.rowData.LTP)}
    \n\t\t\t
    {toINR(props.rowData.holdingValue)}
    \n\t\t
  • \n\t);\n};\n\nexport default HoldMfUnusableRowDsk;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\n\nexport interface IHoldMfUnusablePopupProps {\n\tdata: any;\n\tonClose: () => void;\n}\n\nconst HoldMfUnusablePopup: React.FC = props => {\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t

    {props.data.companyName}

    \n\t\t\t\t{/*

    {props.data.cpName ? props.data.cpName : props.data.dpName}

    */}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tLTP\n\t\t\t\t\t\t₹{toINR(props.data.LTP)}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tLocked-in Quantity\n\t\t\t\t\t\t{toINR(props.data.lockedInQty)}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tPledged Quantity\n\t\t\t\t\t\t{toINR(props.data.holdingValue)}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default HoldMfUnusablePopup;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport SlideUpPopup from \"../../../../generic/slideUpPopup\";\nimport HoldMfUnusablePopup from \"./holdMfUnusablePopup\";\n\nexport interface IHoldMfUnusableRowMobProps {\n\trowData: any;\n}\n\nconst HoldMfUnusableRowMob: React.FC = props => {\n\tconst [isPopupOpen, setIsPopupOpen] = React.useState(false);\n\n\treturn (\n\t\t<>\n\t\t\t
  • setIsPopupOpen(true)}>\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    ₹{toINR(props.rowData.holdingValue)}
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    Pledged Qty: {toINR(props.rowData.pledgQty)}
    \n\t\t\t\t\t
    Locked-in Qty: {toINR(props.rowData.lockedInQty)}
    \n\t\t\t\t
    \n\t\t\t
  • \n\n\t\t\t{isPopupOpen && (\n\t\t\t\t setIsPopupOpen(false)}>\n\t\t\t\t\t setIsPopupOpen(false)} />\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default HoldMfUnusableRowMob;\n","import * as React from \"react\";\nimport HoldUtilHeader from \"../../generic/holdUtilHeader\";\nimport HoldMfUnusableRowDsk from \"./holdMfUnusableRowDsk\";\nimport HoldMfUnusableRowMob from \"./holdMfUnusableRowMob\";\nimport DeviceContext from \"../../../../service/indentifyDevice\";\nimport Sort, { eSortState, sort } from \"../../../../generic/sort\";\nimport { SearchHighLight } from \"../../../../service/generic/searchHighlight\";\nimport NoDataContainer from \"../../../../generic/noDataContainer\";\n\nif (DeviceContext().isDesktop) {\n\trequire(\"../../../../../assets/scss/components/toc/holdings/holdTables/holdTableDsk.scss\");\n} else if (DeviceContext().isTablet) {\n\trequire(\"../../../../../assets/scss/components/toc/holdings/holdTables/holdTableTab.scss\");\n} else {\n\trequire(\"../../../../../assets/scss/components/toc/holdings/holdTables/holdTableMob.scss\");\n}\n\nexport interface IHoldMfUnusableTableProps {\n\tdata: Array;\n}\n\nconst heading = {\n\tcompanyName: \"Scheme Name\",\n\tcategory: \"Category\",\n\tpledgQty: \"Pledged Qty\",\n\tlockedInQty: \"Locked-in Qty\",\n\tLTP: \"NAV\",\n\tholdingValue: \"Holding Value\"\n};\n\nconst HoldMfUnusableTable: React.FC = props => {\n\t// Make tableData 2D to maintain consistency with other tables\n\tconst [filteredData, setFilteredData] = React.useState([props.data]);\n\tconst [tableData, setTableData] = React.useState([props.data]);\n\t// to maintain the state of sorted column\n\tconst [sortedColumnState, setSortedColumnState] = React.useState({ colName: null as string | null, sortState: eSortState.ASC });\n\n\tfunction parsePropData() {\n\t\t// deepcopy for searching, otherwise the changes happen through reference in SearchHighLight\n\t\treturn props.data.map(row => ({ ...row }));\n\t}\n\n\tReact.useEffect(() => {\n\t\tsetTableData([parsePropData()]);\n\t}, [props.data]);\n\n\tfunction onSort(data: Array>, sortState: eSortState, colName: string) {\n\t\tsetSortedColumnState({ colName, sortState });\n\t\tsetTableData(data);\n\t}\n\n\tfunction sortAfterFilter(groupedData: Array>) {\n\t\t// if some column was sorted earlier, then sort that again\n\t\tif (sortedColumnState.colName) {\n\t\t\t// copy grouped data, because it will change after sorting\n\t\t\t// filtered data will also change with groupedData\n\t\t\tconst copyGroupedData = groupedData.map(group => group.map(data => data));\n\n\t\t\tsort(copyGroupedData, sortedColumnState.sortState, sortedColumnState.colName, onSort);\n\t\t}\n\t}\n\n\tfunction handleSearch(filteredData: Array>, sText?: string | undefined) {\n\t\t// set filtered data in the beginning because this will be used while sorting\n\t\t// we don't want the tag while sorting\n\t\tsetFilteredData(filteredData);\n\n\t\tif (sText) {\n\t\t\tconst SearchText: string = sText.toLowerCase();\n\t\t\tconst searchKey: string = \"companyName\";\n\n\t\t\t// highlight the rows\n\t\t\tfilteredData[0].forEach((row: any) => (row[searchKey] = SearchHighLight(row[searchKey], SearchText)));\n\t\t}\n\n\t\tsetTableData(filteredData);\n\n\t\tsortAfterFilter(filteredData);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t {}} />\n\n\t\t\t
    \n\t\t\t\t{!DeviceContext().isMobile && (\n\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      {heading.category}
      \n\t\t\t\t\t\t\t
      {heading.pledgQty}
      \n\t\t\t\t\t\t\t
      {heading.lockedInQty}
      \n\t\t\t\t\t\t\t
      {heading.LTP}
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t
    \n\t\t\t\t)}\n\n\t\t\t\t{/* If data is not there in array, then show no data container */}\n\t\t\t\t{tableData[0].length ? (\n\t\t\t\t\t
    \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t{tableData[0].map((row, index) => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{!DeviceContext().isMobile ? : }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
    \n\t\t\n\t);\n};\n\nexport default HoldMfUnusableTable;\n","import * as React from \"react\";\nimport HoldLayoutDsk from \"../holdLayout/holdLayoutDsk\";\nimport { RouteChildrenProps } from \"react-router-dom\";\nimport { IHoldRouteParams } from \"../../../types/components/holdings/holdTypes\";\nimport { AGetMfHoldings } from \"../../../service/holdings/holdApiService\";\nimport { IHoldTotalBlockProps } from \"../generic/holdTotalBlock\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport HoldLayoutTab from \"../holdLayout/holdLayoutTab\";\nimport HoldLayoutMob from \"../holdLayout/holdLayoutMob\";\nimport HoldMfUsableTable from \"../holdTables/holdMfUsableTable/holdMfUsableTable\";\nimport HoldMfUnusableTable from \"../holdTables/holdMfUnusableTable/holdMfUnusableTable\";\nimport { EHoldScreenState } from \"../holdConstants\";\n\nexport interface IHoldMfContainerProps {}\n\nexport interface IHoldMfContainerState {\n holdings?: any; // if unedfined, then api is not called yet\n currentRouteParam?: IHoldRouteParams[\"hold\"];\n}\n\nclass HoldMfContainer extends React.Component<\n IHoldMfContainerProps & RouteChildrenProps,\n IHoldMfContainerState\n> {\n state: IHoldMfContainerState = {\n currentRouteParam: this.props.match?.params.hold,\n };\n\n getMfHoldingsRes = (res: any) => {\n //console.log(res);\n if (res.data) {\n this.setState({ holdings: res.data });\n } else {\n this.setState({ holdings: [] });\n }\n };\n\n callApi(hold?: IHoldRouteParams[\"hold\"]) {\n if (hold === \"usable\" || hold === \"unusable\") {\n // if data is already present, then there is no need to call api again\n if (this.state.holdings === undefined) {\n AGetMfHoldings(this.getMfHoldingsRes);\n }\n }\n }\n\n totalBlockData(): IHoldTotalBlockProps {\n return {\n usable: this.state.holdings?.usableHld,\n unusable: this.state.holdings?.nonUsableHld,\n total: (\n +this.state.holdings?.usableHld + +this.state.holdings?.nonUsableHld\n ).toString(),\n };\n }\n\n showNoData(): EHoldScreenState {\n if (this.props.match?.params.hold === \"usable\") {\n if (this.state.holdings === undefined) {\n return EHoldScreenState.LOADING;\n }\n if (\n this.state.holdings.mfHdgUsable &&\n this.state.holdings.mfHdgUsable.length\n ) {\n return EHoldScreenState.DATA;\n }\n return EHoldScreenState.NO_DATA;\n }\n\n if (this.props.match?.params.hold === \"unusable\") {\n if (this.state.holdings === undefined) {\n return EHoldScreenState.LOADING;\n }\n if (\n this.state.holdings.nonUsable &&\n this.state.holdings.nonUsable.length\n ) {\n return EHoldScreenState.DATA;\n }\n return EHoldScreenState.NO_DATA;\n }\n\n return EHoldScreenState.NO_DATA;\n }\n\n componentDidMount() {\n // call the api initially\n this.setState({ currentRouteParam: this.props.match?.params.hold });\n this.callApi(this.props.match?.params.hold);\n }\n\n componentDidUpdate() {\n // call api only if route is changed\n if (this.props.match?.params.hold !== this.state.currentRouteParam) {\n this.setState({ currentRouteParam: this.props.match?.params.hold });\n this.callApi(this.props.match?.params.hold);\n }\n }\n\n render() {\n let child =\n this.props.match?.params.hold === \"usable\" ? (\n \n ) : (\n \n );\n\n return DeviceContext().isDesktop ? (\n \n {child}\n \n ) : DeviceContext().isTablet ? (\n \n {child}\n \n ) : (\n \n {child}\n \n );\n }\n}\n\nexport default HoldMfContainer;\n","import * as React from \"react\";\nimport { Switch } from \"react-router-dom\";\nimport HoldEquityContainer from \"../components/toc/holdings/holdContainer/holdEquityContainer\";\nimport HoldMfContainer from \"../components/toc/holdings/holdContainer/holdMfContainer\";\nimport PostLogin from \"./postLogin\";\n\nconst HoldingsRouting = () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\nexport default HoldingsRouting;\n","import * as React from \"react\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport { toINR } from \"../../../service/numberFormat\";\n\nif (DeviceContext().isDesktop) {\n\trequire(\"../../../../assets/scss/components/toc/position/positionTopSecContent/positionHeaderDsk.scss\");\n} else if (DeviceContext().isMobile) {\n\trequire(\"../../../../assets/scss/components/toc/position/positionTopSecContent/positionHeaderMob.scss\");\n} else {\n\trequire(\"../../../../assets/scss/components/toc/position/positionTopSecContent/positionHeaderTab.scss\");\n}\n\nexport interface IPositionTopSecContentProps {\n\ttotalMtm: string;\n\ttotalunrealizedMtm: string;\n\ttotalrealizedMtm: string;\n}\n\nconst PositionTopSecContent: React.FC = props => {\n\treturn (\n\t\t
    \n\t\t\t{/* header content to show MTM values */}\n\t\t\t
    \n\t\t\t\t

    Total MTM

    \n\t\t\t\t

    0 ? \"pos\" : +props.totalMtm < 0 ? \"neg\" : \"\")}>\n\t\t\t\t\t 0 ? \"edel-icon-caret-up\" : +props.totalMtm < 0 ? \"edel-icon-caret-down\" : \"\")}>\n\t\t\t\t\t\n\t\t\t\t\t{toINR(props.totalMtm, 2)}\n\t\t\t\t

    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t

    Realized MTM

    \n\t\t\t\t\t\t

    0 ? \"pos\" : +props.totalrealizedMtm < 0 ? \"neg\" : \"\")}>\n\t\t\t\t\t\t\t 0 ? \"edel-icon-caret-up\" : +props.totalrealizedMtm < 0 ? \"edel-icon-caret-down\" : \"\")}>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{toINR(props.totalrealizedMtm, 2)}\n\t\t\t\t\t\t

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t

    Unrealized MTM

    \n\t\t\t\t\t\t

    0 ? \"pos\" : +props.totalunrealizedMtm < 0 ? \"neg\" : \"\")}>\n\t\t\t\t\t\t\t 0 ? \"edel-icon-caret-up\" : +props.totalunrealizedMtm < 0 ? \"edel-icon-caret-down\" : \"\")}>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{toINR(props.totalunrealizedMtm, 2)}\n\t\t\t\t\t\t

    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default PositionTopSecContent;\n","import * as React from \"react\";\nimport DeviceContext from \"./../../../service/indentifyDevice\";\nimport EdButton from \"../../../generic/edButton\";\n\nif (DeviceContext().isDesktop) {\n\trequire(\"../../../../assets/scss/components/toc/position/positionNoData/positionNoData.scss\");\n} else {\n\trequire(\"../../../../assets/scss/components/toc/position/positionNoData/positionNoDataMob.scss\");\n}\nexport interface IPositionNoDataProps {\n\tdata: Array>; // data to be filtered\n\tcallBackMeth: (filteredData: Array) => void; // function to be called on clicking of checkbox\n\tshowClrBtn?: boolean;\n}\n\nconst PositionNoData: React.FC = (props) => {\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t

    No results found

    \n\t\t\t
    \n\t\t\t\t{(props.showClrBtn === undefined || props.showClrBtn === true) && (\n\t\t\t\t\t props.callBackMeth(props.data)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default PositionNoData;\n","import React, { useState } from \"react\";\nimport EdButton from \"../../../generic/edButton\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport Search from \"../../../generic/search\";\nimport PositionFilter from \"./positionFilter\";\n\nif (DeviceContext().isDesktop) {\n\trequire(\"../../../../../src/assets/scss/components/toc/position/positionUtilHeader/posUtilHeaderDsk.scss\");\n} else if (DeviceContext().isMobile) {\n\trequire(\"../../../../../src/assets/scss/components/toc/position/positionUtilHeader/posUtilHeaderMob.scss\");\n} else {\n\trequire(\"../../../../../src/assets/scss/components/toc/position/positionUtilHeader/posUtilHeaderTab.scss\");\n}\n\nexport interface PosUtilHdrProps {\n\tleftSideText: React.ReactElement; // data to show on the left part of util bar\n\tdata: Array>; // data to be searched or filtered\n\tsearchKey: string; // key on which search needs to be performed\n\tonDataFilter: (filteredData: any[], sText?: string, type?: string) => void; // returns filtered array after searching\n\tonSelectClick?: (event: React.MouseEvent) => void; // event after clicking on select button\n\tonFilterClick: (event: React.MouseEvent) => void; // event after clicking on filter button\n\tonSearchClick: (hidePriNav: boolean) => void; // event after clicking on search button\n\tonToggleClick: (isToggleOn: boolean) => void;\n}\nexport enum PosUtilHeaderState {\n\tNORMAL,\n\tFILTER,\n\tSEARCH\n}\nconst PosUtilHdr: React.FC = (props) => {\n\tconst [utilHeaderState, setUtilHeaderState] = useState(PosUtilHeaderState.NORMAL);\n\n\tconst [isToggleOn, setIsToggleOn] = React.useState(true);\n\n\tfunction onSearchClick(e: React.MouseEvent) {\n\t\tsetUtilHeaderState(PosUtilHeaderState.SEARCH);\n\n\t\tprops.onSearchClick(true);\n\t}\n\n\tfunction onCancelClick() {\n\t\tsetUtilHeaderState(PosUtilHeaderState.NORMAL);\n\t\tprops.onSearchClick(false);\n\t\tprops.onDataFilter(props.data, \"\", \"search\");\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t{utilHeaderState === PosUtilHeaderState.NORMAL && (\n\t\t\t\t
    \n\t\t\t\t\t
    {props.leftSideText}
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{props.onSelectClick && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{/* select button */}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tSelect\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbtnTyp=\"blue-link\"\n\t\t\t\t\t\t\t\t\tonClick={props.onSelectClick}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/* filter button */}\n\t\t\t\t\t\t\t>) => {\n\t\t\t\t\t\t\t\t\t// remove all the empty arrays\n\t\t\t\t\t\t\t\t\tprops.onDataFilter(filteredData.filter((data) => data.length));\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tfilterInputParams={{\n\t\t\t\t\t\t\t\t\tisToggleOn,\n\t\t\t\t\t\t\t\t\tshowOpenOrderTgl: true\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\ttglClick={(value) => {\n\t\t\t\t\t\t\t\t\tsetIsToggleOn(value);\n\t\t\t\t\t\t\t\t\tprops.onToggleClick(value);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{!DeviceContext().isMobile && Search}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbtnTyp=\"blue-link\"\n\t\t\t\t\t\t\t\tonClick={onSearchClick}\n\t\t\t\t\t\t\t\tclassName=\"search_btn\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t)}\n\t\t\t{utilHeaderState === PosUtilHeaderState.SEARCH && (\n\t\t\t\t
    \n\t\t\t\t\t{/* Search takes 1D array and returns 1D array\n\t\t\t\t\t\t\t\tSo we need to convert it accordingly */}\n\t\t\t\t\t props.onDataFilter(data, sText, type)}\n\t\t\t\t\t\tclassname=\"active\"\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default PosUtilHdr;\n","import * as React from \"react\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport Tag from \"../../../generic/tag\";\nimport OverflowButton from \"../../../generic/overflowButton\";\nimport ObCheckbox from \"../../orderBook/generic/obCheckbox\";\nimport { toINR } from \"../../../service/numberFormat\";\nimport { IListObj } from \"../../../types/genericTypes\";\nimport { IPosition } from \"../../../types/components/positions/posTypes\";\n\nexport interface IPositionTblRowDeskProps {\n\tdata: IPosition;\n\tisAccordianOpen: boolean;\n\tisSelectEnable: boolean;\n\ttoggleTab: (e: React.MouseEvent) => void;\n\tonSelect: () => void;\n}\n\nconst dropdownOptions: Array = [\n\t{ value: \"sqoff\", display: \"Sq. Off\" },\n\t{ value: \"add\", display: \"Add\" }\n];\n\nconst PositionTblRowDesk: React.FC = (props) => {\n\tconst handleDevice = DeviceContext();\n\n\treturn (\n\t\t
  • \n\t\t\t
    \n\t\t\t\t{/* according to condition need to show checkbox. */}\n\t\t\t\t{props.isSelectEnable && (\n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tprops.onSelect();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t\t\t

    \n\t\t\t\t\t

    {props.data.trdSym}

    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t

    {toINR(props.data.ltp, 2)}

    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t

    {props.data.prdCode}

    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t

    {props.data.ntQty}

    \n\t\t\t\t\t

    \n\t\t\t\t\t\t@ \n\t\t\t\t\t\t{toINR(props.data.trsTyp === \"B\" ? props.data.avgByPrc : props.data.avgSlPrc, 2)}\n\t\t\t\t\t

    \n\t\t\t\t
    \n\t\t\t\t
    0 ? \"kelly_green\" : +props.data.urlzPL < 0 ? \"tomato_red\" : \"\")}>\n\t\t\t\t\t

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t{toINR(props.data.urlzPL, 2)}\n\t\t\t\t\t

    \n\t\t\t\t
    \n\t\t\t\t{/* tomato_red kelly_green */}\n\t\t\t\t
    0 ? \"kelly_green\" : +props.data.mtm < 0 ? \"tomato_red\" : \"\")}>\n\t\t\t\t\t

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t{toINR(props.data.mtm, 2)}\n\t\t\t\t\t

    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t{handleDevice.isDesktop && !props.isSelectEnable && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t
    {props.data.sqOff !== \"false\" && Sq.off}
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\tAdd\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t{handleDevice.isTablet && !props.isSelectEnable && (\n\t\t\t\t\t
    \n\t\t\t\t\t\t console.log(id, data)} />\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tRealised MTM\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{toINR(props.data.rlzPL, 2)}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t{/*
    \n\t\t\t\t\t\tExposure\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t₹99,271.60\n\t\t\t\t\t\t\n\t\t\t\t\t
    */}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tBuy Qty:\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{props.data.byQty}
    \n\t\t\t\t\t\t\t@ \n\t\t\t\t\t\t\t{toINR(props.data.byAmt, 2)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tSell Qty:\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{props.data.slQty}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t@ \n\t\t\t\t\t\t\t{toINR(props.data.slAmt, 2)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t{handleDevice.isTablet && (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t
    \n\t\t
  • \n\t);\n};\n\nexport default PositionTblRowDesk;\n","import * as React from \"react\";\nimport \"../../../../assets/scss/components/toc/position/positionDetail/positionDetailMob.scss\";\nimport EdButton from \"../../../generic/edButton\";\nimport { PLCls } from \"../../../helper/addRemoveClsOfTgt\";\nimport { IPosition } from \"../../../types/components/positions/posTypes\";\nimport { toINR } from \"../../../service/numberFormat\";\n\nexport interface IPositionDetailMobProps {\n\tonClose: () => void;\n\tdata: IPosition;\n}\n\nconst PositionDetailMob: React.FC = (props) => {\n\tfunction onButtonClick(e: React.MouseEvent) {\n\t\tconsole.log(e);\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t

    {props.data.cpName ? props.data.cpName : props.data.dpName}

    \n\t\t\t\t\t

    {props.data.trdSym}

    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t{/* */}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t{props.data.sqOff !== \"false\" && (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default PositionDetailMob;\n","import * as React from \"react\";\nimport SlideUpPopup from \"../../../generic/slideUpPopup\";\nimport PositionDetailMob from \"../positionDetail/positionDetailMob\";\nimport ObCheckbox from \"../../orderBook/generic/obCheckbox\";\n\nexport interface IPositionTblRowMobProps {\n\tdata: any;\n\tisAccordianOpen: boolean;\n\tisSelectEnable: boolean;\n\ttoggleTab: (e: any) => void;\n\tonSelect: () => void;\n}\n\nconst PositionTblRowMob: React.FC = props => {\n\treturn (\n\t\t
  • \n\t\t\t
    \n\t\t\t\t{props.isSelectEnable && (\n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tprops.onSelect();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t\t\t

    \n\t\t\t\t\t

    \n\t\t\t\t\t\t{props.data.ntQty} Qty\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t@ \n\t\t\t\t\t\t\t{props.data.trsTyp === \"B\" ? props.data.avgByPrc : props.data.avgSlPrc}\n\t\t\t\t\t\t\n\t\t\t\t\t\t{props.data.prdCode}\n\t\t\t\t\t

    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{/* according to value need to change clas \"pos\" or \"neg\" */}\n\t\t\t\t

    0 ? \"pos\" : props.data.mtm < 0 ? \"neg\" : \"\")}>\n\t\t\t\t\t\n\t\t\t\t\t{props.data.mtm}\n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t\tLTP {props.data.ltp}\n\t\t\t\t

    \n\t\t\t
    \n\t\t\t{props.isAccordianOpen && (\n\t\t\t\t props.toggleTab(\"close\")}>\n\t\t\t\t\t props.toggleTab(\"close\")} data={props.data} />\n\t\t\t\t\n\t\t\t)}\n\t\t
  • \n\t);\n};\n\nexport default PositionTblRowMob;\n","export const HPos2DGroupBy = (array: Array, statKey: string = \"ntQty\") => {\n\t//return 2d array with conditinal grouping\n\treturn array.reduce(\n\t\t(acc: Array>, d: any) => {\n\t\t\tif (d.ntQty !== \"0\") {\n\t\t\t\t// open order\n\t\t\t\tacc[0] = [...acc[0], d];\n\t\t\t} else {\n\t\t\t\t// closed order\n\t\t\t\tacc[1] = [...acc[1], d];\n\t\t\t}\n\t\t\treturn acc;\n\t\t},\n\t\t[[], []]\n\t);\n};","import indexer from \"../../types/genericTypes\";\n\nexport const PositionExcComb: indexer = {\n\tNSE: \"equity\",\n\tBSE: \"equity\",\n\tNFO: \"derivatives\",\n\tCDS: \"derivatives\",\n\tMCX: \"commodity\",\n\tNCDEX: \"commodity\"\n};\n","import React, { useState } from \"react\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport { Idevice } from \"../../../types/device\";\nimport ObCheckbox from \"../../orderBook/generic/obCheckbox\";\nimport Toggle from \"../../../generic/toggle\";\nimport EdButton from \"../../../generic/edButton\";\nimport { HPos2DGroupBy } from \"../../../service/position/positionGroupByHelper\";\nimport { parsedToken } from \"../../../service/storageHelper\";\nimport { PositionExcComb } from \"./../positionConstants\";\nimport \"../../../../assets/scss/components/generic/filter.scss\";\n\nexport interface PositionFilterProps {\n\tdata: Array>; // data to be filtered\n\tonFilter: (filteredData: Array>) => void; // function to be called on clicking of checkbox\n\tfilterInputParams: IFilterInputParams;\n\ttglClick: (toggle: boolean) => void;\n}\n\ninterface ICheckboxState {\n\tvalue: string;\n\tisChecked: boolean;\n}\n\nexport interface IFilterInputParams {\n\tisToggleOn: boolean;\n\tshowOpenOrderTgl: boolean;\n}\n\nconst PositionFilter: React.FC = (props) => {\n\t//setting state initially as false\n\tconst [isDropdownOpen, setIsDropdownOpen] = useState(false);\n\tconst [isAllSelected, setIsAllSelected] = useState(true);\n\n\tconst deviceState: Idevice = DeviceContext();\n\tconst pToken: any = parsedToken();\n\tlet filterDropDownOption: Array = [];\n\tif (pToken) {\n\t\tswitch (pToken.accType) {\n\t\t\tcase \"EQ\":\n\t\t\t\tfilterDropDownOption = [\n\t\t\t\t\t{ value: \"Equity\", isChecked: true },\n\t\t\t\t\t{ value: \"Derivatives\", isChecked: true }\n\t\t\t\t];\n\t\t\t\tbreak;\n\t\t\tcase \"COMEQ\":\n\t\t\t\tfilterDropDownOption = [\n\t\t\t\t\t{ value: \"Equity\", isChecked: true },\n\t\t\t\t\t{ value: \"Derivatives\", isChecked: true },\n\t\t\t\t\t{ value: \"Commodity\", isChecked: true }\n\t\t\t\t];\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t// setting checkboxes values\n\tconst [checkboxesState, setcheckboxesState] = useState(filterDropDownOption);\n\n\t//event to be performed on onChecked\n\tfunction onChecked(index: number) {\n\t\tconst tempCheckboxesState = [...checkboxesState];\n\n\t\tconst filteredData = groupData(props.data[0], props.filterInputParams.isToggleOn);\n\n\t\t// if all orders checkbox is clicked\n\t\tif (index === -1) {\n\t\t\t!deviceState.isMobile && props.onFilter(isAllSelected ? [[]] : filteredData);\n\t\t\tsetIsAllSelected(!isAllSelected);\n\t\t\tsetcheckboxesState(tempCheckboxesState.map((tempCheckboxState) => ({ ...tempCheckboxState, isChecked: !isAllSelected })));\n\t\t\treturn;\n\t\t}\n\n\t\t// if any other checkbox is clicked\n\t\tconst currentCheckbox = { ...tempCheckboxesState[index] };\n\n\t\tcurrentCheckbox.isChecked = !checkboxesState[index].isChecked;\n\t\ttempCheckboxesState[index] = currentCheckbox;\n\t\t//set all selected flag if all the checkboxes are enabled\n\t\tsetIsAllSelected(tempCheckboxesState.filter((tempCheckboxState) => tempCheckboxState.isChecked).length === tempCheckboxesState.length);\n\t\tif (!tempCheckboxesState.find((tempCheckboxState) => tempCheckboxState.isChecked)) {\n\t\t\t// if all checkboxes are not selected\n\t\t\t!deviceState.isMobile && props.onFilter(!isAllSelected ? [[]] : filteredData);\n\t\t} else {\n\t\t\t// if any checkbox is selected\n\t\t\t!deviceState.isMobile && props.onFilter(filterData(filteredData, tempCheckboxesState));\n\t\t}\n\t\tsetcheckboxesState(tempCheckboxesState);\n\t}\n\n\t//event to be performed on onSwitchOnOff\n\tfunction onSwitchOnOff() {\n\t\tlet filteredData;\n\t\tif (props.filterInputParams.isToggleOn) {\n\t\t\t// now toggle is off\n\t\t\tfilteredData = filterData(props.data, checkboxesState);\n\t\t} else {\n\t\t\t// now toggle is on\n\t\t\t// group the data\n\t\t\tfilteredData = groupData(props.data[0], true);\n\t\t\tfilteredData = !isAllSelected ? filterData(filteredData, checkboxesState) : filteredData;\n\t\t}\n\n\t\tprops.onFilter(filteredData);\n\t\tprops.tglClick && props.tglClick(!props.filterInputParams.isToggleOn);\n\t}\n\n\t/**\n\t * This function groups open/pending and other data separately\n\t * @param data array of data to be grouped\n\t */\n\tfunction groupData(data: Array, isToggleOn: boolean): Array> {\n\t\tif (isToggleOn) {\n\t\t\t// if toggle is switched on, then group the data\n\t\t\treturn HPos2DGroupBy(data);\n\t\t\t// return [data];\n\t\t} else {\n\t\t\t// if toggle is switched off then return the initial data in 2D form\n\t\t\treturn [data];\n\t\t}\n\t}\n\n\tfunction filterData(data: Array>, checkboxesState: Array): Array> {\n\t\treturn data.map((group) => {\n\t\t\treturn group.filter((d) => {\n\t\t\t\tif (checkboxesState.length && !checkboxesState.find((checkboxState) => checkboxState.isChecked)) {\n\t\t\t\t\t// if no checkbox is checked\n\t\t\t\t\treturn false;\n\t\t\t\t} else if (!isAllSelected) {\n\t\t\t\t\treturn !!checkboxesState.find((checkbox) => {\n\t\t\t\t\t\tif (!checkbox.isChecked) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// do calculations only if checkbox is checked\n\t\t\t\t\t\treturn PositionExcComb[d.exc] === checkbox.value.toLowerCase();\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturn isAllSelected;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tfunction applyFilter() {\n\t\tconst filteredData = groupData(props.data[0], props.filterInputParams.isToggleOn);\n\t\tprops.onFilter(filterData(filteredData, checkboxesState));\n\t\tsetIsDropdownOpen(false);\n\t}\n\n\tfunction reset() {\n\t\t//ob mobile filters will be applied on clicking apply filter, else it will be restored to prev State\n\t\tif (deviceState.isMobile) {\n\t\t\tsetcheckboxesState(filterDropDownOption);\n\t\t\tsetIsAllSelected(true);\n\t\t}\n\t\tsetIsDropdownOpen(false);\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t{/* dropdown toggle on click of button */}\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{!deviceState.isMobile && Filter}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tbtnTyp=\"blue-link\"\n\t\t\t\tonClick={() => setIsDropdownOpen(true)}\n\t\t\t/>\n\n\t\t\t{/* if isDropdownOpen is true the the dropdown will show */}\n\t\t\t{isDropdownOpen && (\n\t\t\t\t<>\n\t\t\t\t\t
    reset()} />\n\t\t\t\t\t
      \n\t\t\t\t\t\t{/* toggle the radio button */}\n\t\t\t\t\t\t{props.filterInputParams.showOpenOrderTgl && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tOpen orders on top\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{checkboxesState.length ? (\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t onChecked(-1)}>\n\t\t\t\t\t\t\t\t\t\tAll Orders\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t{/* checkboxes check /uncheck */}\n\t\t\t\t\t\t\t\t{checkboxesState.map((checkbox, index) => (\n\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t onChecked(index)}\n\t\t\t\t\t\t\t\t\t\t\tdisabled={isAllSelected}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{checkbox.value}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{deviceState.isMobile && (\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t reset()} />\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n};\nexport default PositionFilter;\n","import * as React from \"react\";\nimport { Idevice } from \"../../../types/device\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport obtradeRowSelection from \"../../../service/orderBook/selectAll\";\nimport PositionNoData from \"../generic/positionNoData\";\nimport Sort, { eSortState, sort } from \"../../../generic/sort\";\nimport PositionTblRowDesk from \"./positionTblRowDesk\";\nimport PositionTblRowMob from \"./positionTblRowMob\";\nimport PosUtilHdr from \"../generic/posUtilHdr\";\nimport EdButton from \"../../../generic/edButton\";\nimport ObCheckbox from \"../../orderBook/generic/obCheckbox\";\nimport { backButtonValue } from \"../../orderBook/obJsXConstants\";\nimport { SearchHighLight } from \"../../../service/generic/searchHighlight\";\nimport { HPos2DGroupBy } from \"./../../../service/position/positionGroupByHelper\";\nimport { initWS } from \"../../../service/edelWebSockets/wsCallbacks\";\nimport { ISocketSubscribeReq, IQuote3Res } from \"../../../types/components/edelSockets/edelSocketTypes\";\nimport { edelSocketQuoteReq } from \"../../../service/edelWebSockets/wsInit\";\nimport { IPosition } from \"../../../types/components/positions/posTypes\";\n// import _ from \"lodash\";\nimport { genHshObj } from \"../../../utils/hashObj\";\n\nif (DeviceContext().isDesktop) {\n\trequire(\"../../../../assets/scss/components/toc/position/positionTable/positionTableDsk.scss\");\n} else if (DeviceContext().isMobile) {\n\trequire(\"../../../../assets/scss/components/toc/position/positionTable/positionTableMob.scss\");\n} else {\n\trequire(\"../../../../assets/scss/components/toc/position/positionTable/positionTableTab.scss\");\n}\n\nexport interface IPositionTblContentProps {\n\tdata: any;\n\thideTopSection: (isHidden: boolean) => void;\n\tupdateUnMTM: (retVal: string) => void;\n}\n\nconst PositionTblContent: React.FC = (props) => {\n\tconst handleDevice: Idevice = DeviceContext();\n\n\t//hash object to update stream data;\n\t//this will be updated every time table data changes\n\tconst streamDtRef = React.useRef<{\n\t\ttData: Array>;\n\t\thashObj: { [x: string]: [number, number] };\n\t\trawHshObj: { [x: string]: [number, number] };\n\t}>({ tData: [], hashObj: {}, rawHshObj: {} });\n\n\t// isAccordianOpen = if row is open then it stores rowIndex otherwise -1\n\tconst [isAccordianOpen, setIsAccordianOpen] = React.useState<[number, number]>();\n\tconst [isAllDataSelected, setIsAllDataSelected] = React.useState(false);\n\t//selected count\n\tconst [selectedCount, setselectedCount] = React.useState(0);\n\tconst [filteredData, setFilteredData] = React.useState>>([]);\n\tconst [tableData, setTableData] = React.useState>>([]);\n\tconst [toggleState, setToggleState] = React.useState(true);\n\n\t//selection handle start\n\tconst [isSelectEnable, setIsSelectEnable] = React.useState(false);\n\n\t// used to open/close tab\n\tfunction toggleTab(groupIndex: number, index: number, e: any) {\n\t\tif (\n\t\t\te &&\n\t\t\te.nativeEvent &&\n\t\t\t!e.nativeEvent.path.find((m: HTMLElement) => m.className && (m.className.indexOf(\"check\") >= 0 || m.className.indexOf(\"menu\") >= 0))\n\t\t) {\n\t\t\tif (isAccordianOpen && isAccordianOpen[0] === groupIndex && isAccordianOpen[1] === index) {\n\t\t\t\tsetIsAccordianOpen(undefined);\n\t\t\t} else {\n\t\t\t\tsetIsAccordianOpen([groupIndex, index]);\n\t\t\t}\n\t\t} else if (e === \"close\") {\n\t\t\tsetIsAccordianOpen(undefined);\n\t\t}\n\t}\n\n\tconst selectRows = (groupIndex: number, index: number) => {\n\t\tconst retRes = obtradeRowSelection(groupIndex, index, tableData, isAllDataSelected);\n\n\t\t// set the state\n\t\tsetTableData(retRes.data);\n\t\tsetselectedCount(retRes.count);\n\n\t\tsetIsAllDataSelected(retRes.allSelected);\n\t};\n\n\t// to maintain the state of sorted column\n\tconst [sortedColumnState, setSortedColumnState] = React.useState({ colName: null as string | null, sortState: eSortState.ASC });\n\n\tfunction parsePropData() {\n\t\t// adds hdgVl on the first level, just for sorting; DON\"T USE IT FOR DATA BINDING\n\t\treturn props.data\n\t\t\t? props.data.pos.map((row: any) => ({ ...row, name: row.cpName ? row.cpName : row.dpName ? row.dpName : row.trdSym, isSelected: false }))\n\t\t\t: [];\n\t}\n\n\tfunction getSumOfUnMTM() {\n\t\tlet unMTM: number = 0;\n\t\ttableData.forEach((g: Array) =>\n\t\t\tg.forEach((row: IPosition) => {\n\t\t\t\tunMTM += +row.urlzPL;\n\t\t\t})\n\t\t);\n\n\t\tprops.updateUnMTM(unMTM.toFixed(2));\n\t}\n\n\t//calculate unrelaized MTM\n\tfunction calcUnMTM(dp: IPosition, ltp: string) {\n\t\tif (dp.ltp !== ltp) {\n\t\t\tdp.ltp = ltp;\n\t\t\tlet unMTM = +dp.urlzPL;\n\t\t\t//BUY trade\n\t\t\tif (dp.trsTyp === \"B\") {\n\t\t\t\tunMTM = (+ltp - +dp.avgByPrc) * +dp.ntByQty;\n\t\t\t}\n\t\t\t//SELL Trade\n\t\t\tif (dp.trsTyp === \"S\") {\n\t\t\t\tunMTM = (+ltp - +dp.avgSlPrc) * +dp.ntSlQty;\n\t\t\t}\n\n\t\t\tdp.urlzPL = unMTM.toFixed(2);\n\t\t\tdp.mtm = (+dp.rlzPL + +unMTM).toString();\n\t\t}\n\t\treturn dp;\n\t}\n\n\t//streamer callback method\n\tconst socketMessages = (message: any, type: string) => {\n\t\tif (type === \"message\") {\n\t\t\tconst msgJson = JSON.parse(message) as IQuote3Res,\n\t\t\t\tresData = msgJson.response.data;\n\t\t\tlet tData: Array> = streamDtRef.current.tData;\n\t\t\tconst getIndex: [number, number] = streamDtRef.current.hashObj[resData.z3],\n\t\t\t\tgetSrcDtHsh: [number, number] = streamDtRef.current.rawHshObj[resData.z3];\n\t\t\tif (props.data.pos.length) {\n\t\t\t\t//has to use findIndex to update raw data beacuse this raw data used to search and filter the table data\n\t\t\t\t// const getPropDataIndex: number = _.findIndex(props.data.pos, { sym: msgJson.response.data.z3 });\n\t\t\t\tif (getSrcDtHsh[1] >= 0) {\n\t\t\t\t\tconst selDp: IPosition = props.data.pos[getSrcDtHsh[1]] || {};\n\t\t\t\t\t//if compare new and existing value, update if there is a change in value\n\t\t\t\t\tif (selDp.ltp !== resData.a9) props.data.pos[getSrcDtHsh[1]] = calcUnMTM(selDp, resData.a9);\n\t\t\t\t}\n\t\t\t\tif (getIndex) {\n\t\t\t\t\tconst gInd = getIndex[0], //group index\n\t\t\t\t\t\tind = getIndex[1]; //row index in a group\n\t\t\t\t\t//if row is indentified update the table data with new value if there is a change in value\n\t\t\t\t\tif (gInd >= 0 && ind >= 0 && tData[gInd][ind].ltp !== resData.a9) {\n\t\t\t\t\t\t// tData[gInd][ind].ltp = resData.a9;\n\t\t\t\t\t\ttData[gInd][ind] = calcUnMTM(tData[gInd][ind], resData.a9);\n\n\t\t\t\t\t\tsetFilteredData([...tData]);\n\t\t\t\t\t\tsetTableData([...tData]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tconst symbols: Array<{ symbol: string }> = [];\n\n\tReact.useEffect(() => {\n\t\t//groups data based on open and closed postion\n\t\tconst parseData = parsePropData();\n\t\tlet data = toggleState ? HPos2DGroupBy(parseData) : [parseData];\n\t\tsetFilteredData(data);\n\t\tsetTableData(data);\n\n\t\t//streaming changes\n\t\t//stream only if there exist open postions\n\t\tif (props.data.pos.find((row: any) => row.sqOff === \"true\")) {\n\t\t\tprops.data.pos.forEach((row: IPosition) => {\n\t\t\t\tsymbols.push({ symbol: row.sym });\n\t\t\t});\n\t\t\tstreamDtRef.current.rawHshObj = genHshObj([props.data.pos], \"sym\"); //hashtable from raw data\n\t\t\tinitWS(\n\t\t\t\tedelSocketQuoteReq(\"quote3\", {\n\t\t\t\t\tvendID: \"EDEL\",\n\t\t\t\t\tvendToken: \"\",\n\t\t\t\t\tuserID: \"\",\n\t\t\t\t\taccType: \"\",\n\t\t\t\t\tsymbols\n\t\t\t\t}),\n\t\t\t\tsocketMessages\n\t\t\t);\n\t\t}\n\t\treturn () => {\n\t\t\t//unsubscribe from the streamer to stop receving messages for the requested symbols\n\t\t\tif (props.data.pos.find((row: any) => row.sqOff === \"true\")) {\n\t\t\t\tinitWS(\n\t\t\t\t\tedelSocketQuoteReq(\n\t\t\t\t\t\t\"quote3\",\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvendID: \"EDEL\",\n\t\t\t\t\t\t\tvendToken: \"\",\n\t\t\t\t\t\t\tuserID: \"\",\n\t\t\t\t\t\t\taccType: \"\",\n\t\t\t\t\t\t\tsymbols\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"unsubscribe\"\n\t\t\t\t\t),\n\t\t\t\t\tsocketMessages\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\t}, [props.data]);\n\n\tReact.useEffect(() => {\n\t\tstreamDtRef.current.hashObj = genHshObj(tableData, \"sym\");\n\t\tstreamDtRef.current.tData = tableData;\n\t\tgetSumOfUnMTM();\n\t}, [tableData]);\n\n\tfunction onSort(data: Array>, sortState: eSortState, colName: string) {\n\t\tsetSortedColumnState({ colName, sortState });\n\t\tsetTableData(data);\n\t}\n\n\tfunction sortAfterFilter(groupedData: Array>) {\n\t\tif (sortedColumnState.colName) {\n\t\t\tconst copyGroupedData = groupedData.map((group) => group.map((d) => d));\n\t\t\tsort(copyGroupedData, sortedColumnState.sortState, sortedColumnState.colName, onSort);\n\t\t\tgroupedData = copyGroupedData;\n\t\t}\n\t}\n\n\tfunction onDataFilter(data: Array>, sText: string = \"\", type?: string) {\n\t\tsetFilteredData(data);\n\n\t\t//highlightes the search text\n\t\tif (sText) {\n\t\t\tconst SearchText: string = sText.toLowerCase();\n\t\t\tdata[0].forEach((row: any) => {\n\t\t\t\trow.name = SearchHighLight(row.name, SearchText);\n\t\t\t});\n\t\t}\n\n\t\tif (type === \"search\" && toggleState) {\n\t\t\tdata = HPos2DGroupBy(data[0]);\n\t\t}\n\n\t\t// remove all empty sub arrays\n\t\tdata = data.filter((d) => d.length);\n\t\tsetTableData(data);\n\t\tsortAfterFilter(data);\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t{!isSelectEnable && (\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t{/* only for desktop and tablet */}\n\t\t\t\t\t\t\t\t{/* postions status - open / closed */}\n\t\t\t\t\t\t\t\t{(handleDevice.isDesktop || handleDevice.isTablet) && (\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tTotal Positions:\n\t\t\t\t\t\t\t\t\t\t\t{/* {props.data ? props.data.pos.length : 0} */}\n\t\t\t\t\t\t\t\t\t\t\t{props.data ? props.data.npos : \"--\"}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tOpen:\n\t\t\t\t\t\t\t\t\t\t\t{/* {props.data ? props.data.pos.filter((row: any) => row.ntQty !== \"0\").length : 0} */}\n\t\t\t\t\t\t\t\t\t\t\t{props.data ? props.data.opn : \"--\"}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tClosed:\n\t\t\t\t\t\t\t\t\t\t\t{/* {props.data ? props.data.pos.filter((row: any) => row.ntQty === \"0\").length : 0} */}\n\t\t\t\t\t\t\t\t\t\t\t{props.data ? props.data.cls : \"--\"}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{/* only for mobile */}\n\t\t\t\t\t\t\t\t{handleDevice.isMobile && (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tTotal Positions:\n\t\t\t\t\t\t\t\t\t\t{props.data ? props.data.pos.length : 0}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdata={[parsePropData()]}\n\t\t\t\t\t\tsearchKey=\"name\"\n\t\t\t\t\t\tonDataFilter={onDataFilter}\n\t\t\t\t\t\tonFilterClick={() => {}}\n\t\t\t\t\t\tonSearchClick={props.hideTopSection}\n\t\t\t\t\t\tonSelectClick={\n\t\t\t\t\t\t\ttableData.find((g: any) => g.find((row: any) => row.sqOff === \"true\"))\n\t\t\t\t\t\t\t\t? () => {\n\t\t\t\t\t\t\t\t\t\tsetIsSelectEnable(true);\n\t\t\t\t\t\t\t\t\t\tprops.hideTopSection(true);\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonToggleClick={setToggleState}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t{isSelectEnable &&\n\t\t\t\t\t(!handleDevice.isMobile ? (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t

    {selectedCount} selected

    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tsetIsSelectEnable(true);\n\t\t\t\t\t\t\t\t\t\tprops.hideTopSection(true);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tsetIsSelectEnable(false);\n\t\t\t\t\t\t\t\t\t\tprops.hideTopSection(false);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tclassName=\"mg-l15 clsBtn edBtn\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tClose\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t) : (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetIsSelectEnable(false);\n\t\t\t\t\t\t\t\t\tprops.hideTopSection(false);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tclassName=\"icon_button\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
    \n\t\t\t\t\t))}\n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\t{/* ob position Header Row */}\n\t\t\t\t{!handleDevice.isMobile && (\n\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t{isSelectEnable && (\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t selectRows(-1, -1)} />\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      Prod. Type
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t{!isSelectEnable && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
    • \n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t\t{/* ob position Header Row */}\n\t\t\t\t{handleDevice.isMobile && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{isSelectEnable && (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t selectRows(-1, -1)}>\n\t\t\t\t\t\t\t\t\tSelect All\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t\t\t{tableData.length ? (\n\t\t\t\t\t\ttableData.map((group, groupIndex) => (\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{group.map((row, index) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{!handleDevice.isMobile ? (\n\t\t\t\t\t\t\t\t\t\t\t toggleTab(groupIndex, index, e)}\n\t\t\t\t\t\t\t\t\t\t\t\tonSelect={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tselectRows(groupIndex, index);\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t toggleTab(groupIndex, index, e)}\n\t\t\t\t\t\t\t\t\t\t\t\tonSelect={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tselectRows(groupIndex, index);\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t))\n\t\t\t\t\t) : (\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default PositionTblContent;\n","import * as React from \"react\";\nimport PositionTopSecContent from \"../generic/positionTopSecContent\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport PositionTblContent from \"../positionTable/positionTblContent\";\n\nif (DeviceContext().isDesktop) {\n\trequire(\"../../../../assets/scss/components/toc/position/positionLayout/positionLayoutDsk.scss\");\n} else if (DeviceContext().isMobile) {\n\trequire(\"../../../../assets/scss/components/toc/position/positionLayout/positionLayoutMob.scss\");\n} else {\n\trequire(\"../../../../assets/scss/components/toc/position/positionLayout/positionLayoutTab.scss\");\n}\n\nexport interface IPositionLayoutProps {\n\tdata: any;\n}\n\nconst PositionLayout: React.FC = (props) => {\n\tconst [isFixed, setIsFixed] = React.useState(false);\n\tconst [hideTopSection, setHideTopSection] = React.useState(false);\n\n\t//top section content\n\tconst [ttPos, setTTPos] = React.useState<{ totalMtm: string; totalrealizedMtm: string; totalunrealizedMtm: string }>({\n\t\ttotalrealizedMtm: props.data ? props.data.tdyMtm : \"0\",\n\t\ttotalMtm: props.data ? (+props.data.tdyMtm + +props.data.urlMtm).toString() : \"0\",\n\t\ttotalunrealizedMtm: props.data ? props.data.urlMtm : \"0\"\n\t});\n\tfunction onContainerScroll(e: React.UIEvent) {\n\t\t(e.target as HTMLElement).scrollTop > 90 ? !isFixed && setIsFixed(true) : isFixed && setIsFixed(false);\n\t}\n\tfunction updateUnMTM(unMTM: string) {\n\t\tsetTTPos({ ...ttPos, totalunrealizedMtm: unMTM, totalMtm: (+props.data.tdyMtm + +unMTM).toString() });\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default PositionLayout;\n","import { IListObj } from \"../../types/genericTypes\";\n\nexport const marginSecNavOptions: Array = [\n\t{ value: \"intraday\", display: \"Intraday\", href: \"/marginfiles/intraday/equity\" },\n\t{ value: \"collateral\", display: \"Collateral\", href: \"/marginfiles/collateral\" },\n\t{ value: \"coverorder\", display: \"Cover Order\", href: \"/marginfiles/coverorder\" },\n\t{ value: \"fno\", display: \"F&O Margin\", href: \"/marginfiles/fno\" },\n\t{ value: \"currency\", display: \"Currency Margin\", href: \"/marginfiles/currency\" },\n\t{ value: \"mcx\", display: \"MCX Margin\", href: \"/marginfiles/mcx/buy\" },\n\t{ value: \"ncdex\", display: \"NCDEX Margin\", href: \"/marginfiles/ncdex/buy\" },\n\t{ value: \"mtf\", display: \"MTF Stock List\", href: \"/marginfiles/mtf\" }\n];\n\nexport const marginQueryParams = {\n\tintraday: \"intraday\",\n\tfnointraday: \"fno-intraday\",\n\tcollateral: \"collateral\",\n\tcoverorder: \"cover-order\",\n\tfno: \"fno\",\n\tcurrency: \"currency\",\n\tmcx: \"mcx\",\n\tncdex: \"ncdex\",\n\tmtf: \"mtf\"\n};\n\nexport const marginIntraEqHeading = {\n\tedelCode: \"Edel Code\",\n\tnseSymbol: \"NSE Symbol\",\n\tisin: \"ISIN\",\n\tintradayMargin: \"Intraday Margin %\"\n};\n\nexport const marginIntraFnoHeading = {\n\tscripName: \"Scrip Name\",\n\tmarketlot: \"Lot Size\",\n\ttotalMarginLongPos: \"Total Margin % Long Pos\",\n\ttotalMarginPerLot: \"Total Margin/Lot\",\n\tmisMargin: \"MIS Margin %\",\n\tmisMarginperLot: \"MIS Margin/Lot\"\n};\n\nexport const marginCollateralHeading = {\n\tedelCode: \"Edel Code\",\n\tcompanyname: \"Company Name\",\n\thaircut: \"Haircut %\"\n};\n\nexport const marginCoverOrderHeading = {\n\tsegment: \"Segment\",\n\tscrip: \"Scrip Name\",\n\tenterStopLoss: \"Stop Loss %\",\n\tminimumStopLossMargin: \"Min Stop Loss Margin %\",\n\tmarginRequirement: \"Margin Requirement %\",\n\tfinalMargin: \"Final Margin %\",\n\ttimes: \"X Times\"\n};\n\nexport const marginFnoHeading = {\n\ttrdSym: \"Trading Symbol\",\n\tmlot: \"Lot Size\",\n\tspanMarginPerLot: \"Span Margin/ Lot\",\n\texpMarginPerLot: \"Exp Margin/ Lot\",\n\ttotalMarginPerLot: \"Total Margin/ Lot\",\n\troundOff: \"Round Off\"\n};\n\nexport const marginCurrencyHeading = {\n\ttrdSym: \"Trading Symbol\",\n\tlotSize: \"Lot Size\",\n\tspanMarginAmt: \"Span Margin Amount\",\n\texpMarginamt: \"Exp Margin Amount\",\n\ttotalMarginamt: \"Total Margin Amount\",\n};\n\nexport const marginMcxHeading = {\n\ttrdSym: \"Trading Symbol\",\n\tlotSize: \"Lot Size\",\n\tspanMargin: \"Span Margin\",\n\texpMargin: \"Exp Margin(LTP)\",\n\tspreadBenefit: \"Spread Benefit\",\n\tadditionalMargin: \"Add. Margin\",\n\ttotalMargin: \"Total Margin\"\n};\n\nexport const marginMtfHeading = {\n\tname: \"Company Name\",\n\tnseSymbol: \"NSE Symbol\",\n\tbseCode: \"BSE Code\",\n\tisin: \"ISIN\",\n\tHaircut: \"Current Haircut %\"\n};\n\nexport const marginEqFnoNavigationList: Array = [\n\t{ display: \"Equity\", value: \"equity\", href: \"equity\" },\n\t{ display: \"FNO\", value: \"fno\", href: \"fno\" }\n];\n\nexport const marginBuySellNavigationList: Array = [\n\t{ display: \"Buy\", value: \"buy\", href: \"buy\" },\n\t{ display: \"Sell\", value: \"sell\", href: \"sell\" }\n];\n\nexport enum EMarginScreenState {\n\tLOADING,\n\tDATA\n}\n","import * as React from \"react\";\nimport { compareValues } from \"../../../utils/sortingUtils\";\nimport \"../../../../assets/scss/components/generic/sort.scss\";\n\nexport interface MarginSortProps {\n\tsortList: Array; //array of type any\n\tsortKey: string; // key to sort\n\tcolName: string;\n\tsortedColName: string | null;\n\tonSort: (data: Array, sortState: ESortState, sortKey: string) => void;\n}\n\nexport interface MarginSortState {\n\tsortState: ESortState;\n}\n\nexport enum ESortState {\n\t// NORMAL,\n\tASC,\n\tDESC\n}\n\nexport function marginSort(\n\tinitialData: Array,\n\tsortState: ESortState,\n\tsortKey: string,\n\tonSort: (data: Array, sortState: ESortState, sortKey: string) => void\n) {\n\tif (sortState === ESortState.ASC || sortState === ESortState.DESC) {\n\t\t// sort in ascending or descending\n\t\tif (sortState === ESortState.DESC) {\n\t\t\tonSort(initialData.sort(compareValues(sortKey, \"desc\")), sortState, sortKey);\n\t\t} else {\n\t\t\tonSort(initialData.sort(compareValues(sortKey)), sortState, sortKey);\n\t\t}\n\t}\n}\n\nclass MarginSort extends React.Component {\n\tstate = {\n\t\tsortState: ESortState.ASC\n\t};\n\n\tonSortClick = () => {\n\t\t// set the state to next state\n\t\t// and then call sort function\n\t\tthis.setState({ sortState: (this.state.sortState + 1) % 2 }, () =>\n\t\t\tmarginSort(this.props.sortList, this.state.sortState, this.props.sortKey, this.props.onSort)\n\t\t);\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t);\n\t}\n}\nexport default MarginSort;\n","import { parsedToken } from \"../storageHelper\";\nimport { apiService } from \"../apiService\";\nimport urlConfig from \"../../../config/domain\";\n\nlet pToken: any = parsedToken(),\n\tuserID = pToken ? pToken.username : null;\n\n//Show position for a client in equity\nexport const AEqPosition = (callback: CallableFunction) => {\n\tif (pToken && pToken.accType !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.position.eq + userID,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n//Show position for a client in equity\nexport const ACommPosition = (callback: CallableFunction) => {\n\tif (pToken && pToken.accType !== \"EQ\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.position.commodity + userID,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};","import * as React from \"react\";\nimport PositionLayout from \"../positionLayout/positionLayout\";\nimport { AEqPosition, ACommPosition } from \"../../../service/position/positionApiService\";\nimport \"../../../../assets/scss/components/toc/position/generic/obPositions.scss\";\nimport Loader from \"../../../generic/loader\";\nimport TocNoData from \"../../generic/tocNoData/tocNoData\";\n\nexport interface IPositionContainerProps {}\n\nconst PositionContainer: React.FC = () => {\n\tconst eqGetpositionRes = (res: any) => {\n\t\tif (res.data) {\n\t\t\tsetPosData({ data: res.data });\n\t\t} else if (res.error) {\n\t\t\tconsole.log(res.error);\n\n\t\t\tsetPosData({ data: res.error });\n\t\t}\n\t};\n\tconst commdityGetpositionRes = (res: any) => {\n\t\tif (res.data) {\n\t\t\tsetPosData({ data: res.data });\n\t\t} else if (res.error) {\n\t\t\tsetPosData({ data: res.error });\n\t\t}\n\t};\n\tfunction reducer(_prevState: any, newState: any) {\n\t\treturn newState;\n\t}\n\tfunction init() {\n\t\tACommPosition(commdityGetpositionRes);\n\t\tAEqPosition(eqGetpositionRes);\n\t\treturn null;\n\t}\n\tconst [posData, setPosData] = React.useReducer(reducer, null, init);\n\n\treturn (\n\t\t
    \n\t\t\t{posData !== null ? (\n\t\t\t\tposData.data.errMsg ? (\n\t\t\t\t\t {}} errMsg={<>{posData.data.errMsg}} showClrBtn={false} />\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t)\n\t\t\t) : (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t)}\n\t\t
    \n\t);\n};\nexport default PositionContainer;\n","import * as React from \"react\";\nimport { Switch } from \"react-router-dom\";\nimport PositionContainer from \"../components/toc/position/positionContainer/positionContainer\";\nimport PostLogin from \"./postLogin\";\n\nconst PositionRouting = () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n};\nexport default PositionRouting;\n","import { apiService } from \"../apiService\";\nimport urlConfig from \"../../../config/domain\";\n\nexport const AGetMarginFiles = (callback: CallableFunction, fileType: string) => {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.marginFiles.marginFiles + \"?filetype=\" + fileType,\n\t\t\t\tmethod: \"GET\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n};\n","import React from \"react\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport \"../../../../assets/scss/components/toc/marginFiles/generic/marginSearch.scss\";\n\nexport interface MarginSearchProps {\n\tvalue?: string; // change this if text in search box needs to be cahnged\n\tsearchList: Array; // the whole array that needs to be searched\n\tsearchKey: string; // the key on which we need to search\n\tclassname?: string; // optional class \n\n\t// callback function that will be called on search.\n\t// filteredArray is the filtered array and sText is the text that is written in search box\n\tonSearch: (filteredData: Array, sText: string) => void;\n}\n\nconst MarginSearch: React.FC = props => {\n\tconst searchEle = React.useRef(null);\n\n\tfunction handleChange(e: React.ChangeEvent) {\n\t\t// Variable to hold the filtered list before putting into state\n\t\tlet newList = [];\n\n\t\t// If the search bar isn't empty\n\t\tif (e.target.value !== \"\") {\n\t\t\t// Use .filter() to determine which items should be displayed\n\t\t\t// based on the search terms\n\t\t\tnewList = props.searchList.filter((item: any) => {\n\t\t\t\t// change current item to lowercase\n\t\t\t\tconst lc = item[props.searchKey].toLowerCase();\n\n\t\t\t\t// change search term to lowercase\n\t\t\t\tconst filter = e.target.value.toLowerCase();\n\n\t\t\t\t// check to see if the current list item includes the search term\n\t\t\t\t// If it does, it will be added to newList. Using lowercase eliminates\n\t\t\t\t// issues with capitalization in search terms and search content\n\t\t\t\treturn lc.includes(filter);\n\t\t\t});\n\t\t} else {\n\t\t\t// If the search bar is empty, set newList to original task list\n\t\t\tnewList = props.searchList;\n\t\t}\n\t\t\n\t\t// Set the filtered state based on what our rules added to newList\n\t\tprops.onSearch(newList, e.target.value);\n\t}\n\n\tfunction reset() {\n\t\tlet ele = document.getElementById(\"ObTableDataSearchEle\") as HTMLInputElement;\n\t\tele.value = \"\";\n\t\tprops.onSearch(props.searchList, \"\");\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t{!DeviceContext().isDesktop && searchEle.current?.value !== \"\" && searchEle.current?.value !== undefined && (\n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default MarginSearch;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport { marginCollateralHeading } from \"../../marginConstants\";\nimport { ISortProps } from \"../../../../types/components/margin/marginTypes\";\nimport MarginSort from \"../../generic/marginSort\";\nimport NoDataContainer from \"../../../../generic/noDataContainer\";\n\nexport interface IMarginCollateralTableDskProps {\n\ttableData: Array;\n\tfilteredData: Array;\n\tnumOfRows: number;\n\tsortProps: ISortProps;\n\tsetTableData: (tableData: Array) => void;\n}\n\nconst MarginCollateralTableDsk: React.FC = props => {\n\treturn (\n\t\t
    \n\t\t\t
      \n\t\t\t\t
    • \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t
    • \n\t\t\t
    \n\n\t\t\t{props.tableData.length ? (\n\t\t\t\t
      \n\t\t\t\t\t{props.tableData.slice(0, props.numOfRows).map((row, index) => (\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      {row.Companyname}
      \n\t\t\t\t\t\t\t
      {toINR(row.Haircut)}
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t) : (\n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default MarginCollateralTableDsk;\n","export const marginScrollService = (\n\t{ current: scrollBody }: React.RefObject,\n\t{ current: fixedBody }: React.RefObject,\n\t{ current: scrollHead }: React.RefObject\n) => {\n\tif (fixedBody) {\n\t\tfixedBody.scrollTop = scrollBody?.scrollTop || 0;\n\t}\n\n\tif (scrollHead) {\n\t\tscrollHead.scrollLeft = scrollBody?.scrollLeft || 0;\n\t}\n};\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport { marginCollateralHeading } from \"../../marginConstants\";\nimport { ISortProps } from \"../../../../types/components/margin/marginTypes\";\nimport MarginSort from \"../../generic/marginSort\";\nimport { marginScrollService } from \"../../../../service/marginFiles/marginScrollService\";\n\nexport interface IMarginCollateralTableMobProps {\n\ttableData: Array;\n\tfilteredData: Array;\n\tnumOfRows: number;\n\tsortProps: ISortProps;\n\tsetTableData: (tableData: Array) => void;\n}\n\nconst MarginCollateralTableMob: React.FC = props => {\n\tconst scrollBodyRef = React.useRef(null);\n\tconst fixedBodyRef = React.useRef(null);\n\tconst scrollHeadRef = React.useRef(null);\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t{props.tableData.slice(0, props.numOfRows).map((row, index) => (\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t\t
      marginScrollService(scrollBodyRef, fixedBodyRef, scrollHeadRef)}>\n\t\t\t\t\t{props.tableData.slice(0, props.numOfRows).map((row, index) => (\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{row.Companyname}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.Haircut)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default MarginCollateralTableMob;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport { marginCoverOrderHeading } from \"../../marginConstants\";\nimport { ISortProps } from \"../../../../types/components/margin/marginTypes\";\nimport MarginSort from \"../../generic/marginSort\";\nimport NoDataContainer from \"../../../../generic/noDataContainer\";\n\nexport interface IMarginCoverOrderTableDskProps {\n\ttableData: Array;\n\tfilteredData: Array;\n\tnumOfRows: number;\n\tsortProps: ISortProps;\n\tsetTableData: (tableData: Array) => void;\n}\n\nconst MarginCoverOrderTableDsk: React.FC = props => {\n\treturn (\n\t\t
    \n\t\t\t
      \n\t\t\t\t
    • \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t
    • \n\t\t\t
    \n\n\t\t\t{props.tableData.length ? (\n\t\t\t\t
      \n\t\t\t\t\t{props.tableData.slice(0, props.numOfRows).map((row, index) => (\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      {row.Segment}
      \n\t\t\t\t\t\t\t
      {toINR(row.EnterStopLoss)}
      \n\t\t\t\t\t\t\t
      {toINR(row.MinimumStopLossMargin)}
      \n\t\t\t\t\t\t\t
      {toINR(row.MarginRequirement)}
      \n\t\t\t\t\t\t\t
      {toINR(row.FinalMargin)}
      \n\t\t\t\t\t\t\t
      {toINR(row.Times)}
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t) : (\n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default MarginCoverOrderTableDsk;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport { marginCoverOrderHeading } from \"../../marginConstants\";\nimport { ISortProps } from \"../../../../types/components/margin/marginTypes\";\nimport MarginSort from \"../../generic/marginSort\";\nimport { marginScrollService } from \"../../../../service/marginFiles/marginScrollService\";\n\nexport interface IMarginCoverOrderTableMobProps {\n\ttableData: Array;\n\tfilteredData: Array;\n\tnumOfRows: number;\n\tsortProps: ISortProps;\n\tsetTableData: (tableData: Array) => void;\n}\n\nconst MarginCoverOrderTableMob: React.FC = props => {\n\tconst scrollBodyRef = React.useRef(null);\n\tconst fixedBodyRef = React.useRef(null);\n\tconst scrollHeadRef = React.useRef(null);\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t{props.tableData.slice(0, props.numOfRows).map((row, index) => (\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t\t
      marginScrollService(scrollBodyRef, fixedBodyRef, scrollHeadRef)}>\n\t\t\t\t\t{props.tableData.slice(0, props.numOfRows).map((row, index) => (\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{row.Segment}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.EnterStopLoss)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.MinimumStopLossMargin)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.MarginRequirement)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.FinalMargin)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.Times)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default MarginCoverOrderTableMob;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport { marginCurrencyHeading } from \"../../marginConstants\";\nimport { ISortProps } from \"../../../../types/components/margin/marginTypes\";\nimport MarginSort from \"../../generic/marginSort\";\nimport NoDataContainer from \"../../../../generic/noDataContainer\";\n\nexport interface IMarginCurrencyTableDskProps {\n\ttableData: Array;\n\tfilteredData: Array;\n\tnumOfRows: number;\n\tsortProps: ISortProps;\n\tsetTableData: (tableData: Array) => void;\n}\n\nconst MarginCurrencyTableDsk: React.FC = props => {\n\treturn (\n\t\t
    \n\t\t\t
      \n\t\t\t\t
    • \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t
    • \n\t\t\t
    \n\n\t\t\t{props.tableData.length ? (\n\t\t\t\t
      \n\t\t\t\t\t{props.tableData.slice(0, props.numOfRows).map((row, index) => (\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      {row.LotSize}
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.SPANMarginAmt)}\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.SPANMarginper)}%\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.ExpMarginamt)}\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.ExpMarginper)}%\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.TotalMarginamt)}\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.TotalMarginper)}%\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t) : (\n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default MarginCurrencyTableDsk;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport { marginCurrencyHeading } from \"../../marginConstants\";\nimport { ISortProps } from \"../../../../types/components/margin/marginTypes\";\nimport MarginSort from \"../../generic/marginSort\";\nimport { marginScrollService } from \"../../../../service/marginFiles/marginScrollService\";\n\nexport interface IMarginCurrencyTableMobProps {\n\ttableData: Array;\n\tfilteredData: Array;\n\tnumOfRows: number;\n\tsortProps: ISortProps;\n\tsetTableData: (tableData: Array) => void;\n}\n\nconst MarginCurrencyTableMob: React.FC = (props) => {\n\tconst scrollBodyRef = React.useRef(null);\n\tconst fixedBodyRef = React.useRef(null);\n\tconst scrollHeadRef = React.useRef(null);\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t{props.tableData.slice(0, props.numOfRows).map((row, index) => (\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t\t
      marginScrollService(scrollBodyRef, fixedBodyRef, scrollHeadRef)}>\n\t\t\t\t\t{props.tableData.slice(0, props.numOfRows).map((row, index) => (\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{row.LotSize}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.SPANMarginAmt)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.ExpMarginamt)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.TotalMarginamt)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.SPANMarginper)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.ExpMarginper)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.TotalMarginper)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default MarginCurrencyTableMob;\n","import * as React from \"react\";\nimport EdButton from \"../../../generic/edButton\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport \"../../../../assets/scss/components/toc/marginFiles/generic/marginFilter.scss\";\nimport moment from \"moment\";\n\nexport interface IMarginFilterProps {\n\tdata: Array;\n\texpiryKey: string;\n\tonFilter: (filteredData: Array, sDate: string) => void; // function to be called on clicking of checkbox, sDate = selected Date (value)\n}\n\nconst MarginFilter: React.FC = (props) => {\n\t//setting state initially as false\n\tconst [isDropdownOpen, setIsDropdownOpen] = React.useState(false);\n\n\t/**\n\t * state and function for selectedValue\n\t * selectedValue type is number | string\n\t * setSelectedValue(number | string)\n\t */\n\tconst [selectedValue, setSelectedValue] = React.useState(\"all\");\n\n\t/**\n\t * called when user selects an option\n\t * @param id id of the selected option\n\t * @returns onSelect prop passed from parent\n\t */\n\tfunction optionSelected(id: string) {\n\t\tsetSelectedValue(id);\n\n\t\tif (!DeviceContext().isMobile) {\n\t\t\tsetIsDropdownOpen(false);\n\n\t\t\tif (id === \"all\") {\n\t\t\t\t// return the original data\n\t\t\t\treturn props.onFilter(props.data, id);\n\t\t\t} else {\n\t\t\t\t// filter the data\n\t\t\t\treturn props.onFilter(\n\t\t\t\t\tprops.data.filter((d) => d[props.expiryKey] === id),\n\t\t\t\t\tid\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * only called in mobile screen to reset the filter to all expiries\n\t */\n\tfunction reset() {\n\t\tsetSelectedValue(\"all\");\n\t\tsetIsDropdownOpen(false);\n\t}\n\n\t/**\n\t * only called in mobile to close the filter popup\n\t */\n\tfunction applyFilter() {\n\t\tsetIsDropdownOpen(false);\n\n\t\tif (selectedValue === \"all\") {\n\t\t\t// return the original data\n\t\t\treturn props.onFilter(props.data, selectedValue);\n\t\t} else {\n\t\t\t// filter the data\n\t\t\treturn props.onFilter(props.data.filter((d) => d[props.expiryKey] === selectedValue), selectedValue);\n\t\t}\n\t}\n\n\tfunction dropdownOptions() {\n\t\t// find the unique expiries\n\t\tconst unique = props.data.map((item) => item[props.expiryKey!]).filter((value, index, self) => self.indexOf(value) === index);\n\n\t\t// set value = expirykey and display = date\n\t\treturn unique.map((d) => ({ display: moment(d).format(\"D MMM YYYY\"), value: d }));\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{!DeviceContext().isMobile && Expiry}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tbtnTyp=\"blue-link\"\n\t\t\t\tonClick={() => setIsDropdownOpen(true)}\n\t\t\t/>\n\n\t\t\t{/* when dropdown is open show overlay and content */}\n\t\t\t{isDropdownOpen && (\n\t\t\t\t
    \n\t\t\t\t\t{/* Overlay covers the whole screen. When overlay is clicked, close the dropdown. */}\n\t\t\t\t\t
    setIsDropdownOpen(false)} />\n\n\t\t\t\t\t{/* Dropdown list */}\n\t\t\t\t\t
    \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
    • optionSelected(\"all\")}>\n\t\t\t\t\t\t\t\t{/* show tick only if this option is selected */}\n\t\t\t\t\t\t\t\t{\"all\" === selectedValue && }\n\t\t\t\t\t\t\t\tAll Expiry\n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t{dropdownOptions().map((option) => (\n\t\t\t\t\t\t\t\t optionSelected(option.value as string)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{/* show tick only if this option is selected */}\n\t\t\t\t\t\t\t\t\t{option.value === selectedValue && }\n\t\t\t\t\t\t\t\t\t{option.display}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{DeviceContext().isMobile && (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t reset()} />\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default MarginFilter;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport { marginFnoHeading } from \"../../marginConstants\";\nimport { ISortProps } from \"../../../../types/components/margin/marginTypes\";\nimport MarginSort from \"../../generic/marginSort\";\nimport NoDataContainer from \"../../../../generic/noDataContainer\";\n\nexport interface IMarginFnoTableDskProps {\n\ttableData: Array;\n\tfilteredData: Array;\n\tnumOfRows: number;\n\tsortProps: ISortProps;\n\tsetTableData: (tableData: Array) => void;\n}\n\nconst MarginFnoTableDsk: React.FC = props => {\n\treturn (\n\t\t
    \n\t\t\t
      \n\t\t\t\t
    • \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t
    • \n\t\t\t
    \n\n\t\t\t{props.tableData.length ? (\n\t\t\t\t
      \n\t\t\t\t\t{props.tableData.slice(0, props.numOfRows).map((row, index) => (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
      {toINR(row.Mlot)}
      \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t{toINR(row.SpanMarginPerLot)}\n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t{toINR(row.SPANMarginper)}%\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t{toINR(row.ExpMarginPerLot)}\n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t{toINR(row.ExpMarginper)}%\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t{toINR(row.TotalMarginPerLot, 2)}\n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t{toINR(row.TotalMarginper)}%\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
      {toINR(row.RoundOff)}
      \n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t
      \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t) : (\n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default MarginFnoTableDsk;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport { marginFnoHeading } from \"../../marginConstants\";\nimport { ISortProps } from \"../../../../types/components/margin/marginTypes\";\nimport MarginSort from \"../../generic/marginSort\";\nimport { marginScrollService } from \"../../../../service/marginFiles/marginScrollService\";\n\nexport interface IMarginFnoTableMobProps {\n\ttableData: Array;\n\tfilteredData: Array;\n\tnumOfRows: number;\n\tsortProps: ISortProps;\n\tsetTableData: (tableData: Array) => void;\n}\n\nconst MarginFnoTableMob: React.FC = props => {\n\tconst scrollBodyRef = React.useRef(null);\n\tconst fixedBodyRef = React.useRef(null);\n\tconst scrollHeadRef = React.useRef(null);\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t{props.tableData.slice(0, props.numOfRows).map((row, index) => (\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t\t
      marginScrollService(scrollBodyRef, fixedBodyRef, scrollHeadRef)}>\n\t\t\t\t\t{props.tableData.slice(0, props.numOfRows).map((row, index) => (\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.Mlot)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{toINR(row.SpanMarginPerLot)}\n\t\t\t\t\t\t\t\t\t({toINR(row.SPANMarginper)}%)\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{toINR(row.ExpMarginPerLot)}\n\t\t\t\t\t\t\t\t\t({toINR(row.ExpMarginper)}%)\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{toINR(row.TotalMarginPerLot, 2)}\n\t\t\t\t\t\t\t\t\t({toINR(row.TotalMarginper)}%)\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.RoundOff)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default MarginFnoTableMob;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport { marginIntraEqHeading } from \"../../marginConstants\";\nimport { ISortProps } from \"../../../../types/components/margin/marginTypes\";\nimport MarginSort from \"../../generic/marginSort\";\nimport NoDataContainer from \"../../../../generic/noDataContainer\";\n\nexport interface IMarginIntraEqTableDskProps {\n\ttableData: Array;\n\tfilteredData: Array;\n\tnumOfRows: number;\n\tsortProps: ISortProps;\n\tsetTableData: (tableData: Array) => void;\n}\n\nconst MarginIntraEqTableDsk: React.FC = props => {\n\treturn (\n\t\t
    \n\t\t\t
      \n\t\t\t\t
    • \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t
    • \n\t\t\t
    \n\n\t\t\t{props.tableData.length ? (\n\t\t\t\t
      \n\t\t\t\t\t{props.tableData.slice(0, props.numOfRows).map((row, index) => (\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      {row.NSESymbol}
      \n\t\t\t\t\t\t\t
      {row.ISIN}
      \n\t\t\t\t\t\t\t
      {toINR(row.IntradayMargin)}
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t) : (\n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default MarginIntraEqTableDsk;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport { marginIntraEqHeading } from \"../../marginConstants\";\nimport { ISortProps } from \"../../../../types/components/margin/marginTypes\";\nimport MarginSort from \"../../generic/marginSort\";\nimport { marginScrollService } from \"../../../../service/marginFiles/marginScrollService\";\n\nexport interface IMarginIntraEqTableMobProps {\n\ttableData: Array;\n\tfilteredData: Array;\n\tnumOfRows: number;\n\tsortProps: ISortProps;\n\tsetTableData: (tableData: Array) => void;\n}\n\nconst MarginIntraEqTableMob: React.FC = props => {\n\tconst scrollBodyRef = React.useRef(null);\n\tconst fixedBodyRef = React.useRef(null);\n\tconst scrollHeadRef = React.useRef(null);\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t{props.tableData.slice(0, props.numOfRows).map((row, index) => (\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t\t
      marginScrollService(scrollBodyRef, fixedBodyRef, scrollHeadRef)}>\n\t\t\t\t\t{props.tableData.slice(0, props.numOfRows).map((row, index) => (\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{row.NSESymbol}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{row.ISIN}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.IntradayMargin)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default MarginIntraEqTableMob;\n","import React from \"react\";\nimport \"../../../../assets/scss/components/generic/navigationTag.scss\";\nimport { Link } from \"react-router-dom\";\nimport { IListObj } from \"../../../types/genericTypes\";\n\nexport interface IMarginNavigationTagProps {\n\tdefaultValue?: number | string; // default selected value\n\ttagList: Array; // list of all tags\n}\n\nconst MarginNavigationTag: React.FC = (props: IMarginNavigationTagProps) => {\n\treturn (\n\t\t
      \n\t\t\t{props.tagList.map(tag => (\n\t\t\t\t
    • \n\t\t\t\t\t{tag.href && {tag.display}}\n\t\t\t\t\t{!tag.href && tag.display}\n\t\t\t\t
    • \n\t\t\t))}\n\t\t
    \n\t);\n};\n\nexport default MarginNavigationTag;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport { marginIntraFnoHeading } from \"../../marginConstants\";\nimport { ISortProps } from \"../../../../types/components/margin/marginTypes\";\nimport MarginSort from \"../../generic/marginSort\";\nimport NoDataContainer from \"../../../../generic/noDataContainer\";\n\nexport interface IMarginIntraFnoTableDskProps {\n\ttableData: Array;\n\tfilteredData: Array;\n\tnumOfRows: number;\n\tsortProps: ISortProps;\n\tsetTableData: (tableData: Array) => void;\n}\n\nconst MarginIntraFnoTableDsk: React.FC = props => {\n\treturn (\n\t\t
    \n\t\t\t
      \n\t\t\t\t
    • \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t
    • \n\t\t\t
    \n\n\t\t\t{props.tableData.length ? (\n\t\t\t\t
      \n\t\t\t\t\t{props.tableData.slice(0, props.numOfRows).map((row, index) => (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
      {row.Marketlot}
      \n\t\t\t\t\t\t\t\t
      {row.TotalMarginLongPos}
      \n\t\t\t\t\t\t\t\t
      {toINR(row.TotalMarginPerLot)}
      \n\t\t\t\t\t\t\t\t
      {toINR(row.MISMargin)}
      \n\t\t\t\t\t\t\t\t
      {toINR(row.MISMarginperLot)}
      \n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t
      \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t) : (\n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default MarginIntraFnoTableDsk;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport { marginIntraFnoHeading } from \"../../marginConstants\";\nimport { ISortProps } from \"../../../../types/components/margin/marginTypes\";\nimport MarginSort from \"../../generic/marginSort\";\nimport { marginScrollService } from \"../../../../service/marginFiles/marginScrollService\";\n\nexport interface IMarginIntraFnoTableMobProps {\n\ttableData: Array;\n\tfilteredData: Array;\n\tnumOfRows: number;\n\tsortProps: ISortProps;\n\tsetTableData: (tableData: Array) => void;\n}\n\nconst MarginIntraFnoTableMob: React.FC = props => {\n\tconst scrollBodyRef = React.useRef(null);\n\tconst fixedBodyRef = React.useRef(null);\n\tconst scrollHeadRef = React.useRef(null);\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t{props.tableData.slice(0, props.numOfRows).map((row, index) => (\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t\t
      marginScrollService(scrollBodyRef, fixedBodyRef, scrollHeadRef)}>\n\t\t\t\t\t{props.tableData.slice(0, props.numOfRows).map((row, index) => (\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{row.Marketlot}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{row.TotalMarginLongPos}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.TotalMarginPerLot)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.MISMargin)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.MISMarginperLot)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default MarginIntraFnoTableMob;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport { marginMcxHeading } from \"../../marginConstants\";\nimport { ISortProps } from \"../../../../types/components/margin/marginTypes\";\nimport MarginSort from \"../../generic/marginSort\";\nimport NoDataContainer from \"../../../../generic/noDataContainer\";\n\nexport interface IMarginMcxTableDskProps {\n\ttableData: Array;\n\tfilteredData: Array;\n\tnumOfRows: number;\n\tsortProps: ISortProps;\n\tsetTableData: (tableData: Array) => void;\n}\n\nconst MarginMcxTableDsk: React.FC = props => {\n\tconst [openRowIndex, setOpenRowIndex] = React.useState(-1); // -1 if no row is open, otherwise row-index\n\n\tfunction toggleAccordian(index: number) {\n\t\tif (openRowIndex === index) {\n\t\t\t// if clicked on open tab, then close it\n\t\t\tsetOpenRowIndex(-1);\n\t\t} else {\n\t\t\t// otherwise open the tab\n\t\t\tsetOpenRowIndex(index);\n\t\t}\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t
      \n\t\t\t\t
    • \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t
    • \n\t\t\t
    \n\n\t\t\t{props.tableData.length ? (\n\t\t\t\t
      \n\t\t\t\t\t{props.tableData.slice(0, props.numOfRows).map((row, index) => (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    • toggleAccordian(index)}>\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
      {toINR(row.LotSize)}
      \n\t\t\t\t\t\t\t\t
      {toINR(row.SPANMargin)}
      \n\t\t\t\t\t\t\t\t
      {toINR(row.ExpMargin)}
      \n\t\t\t\t\t\t\t\t
      {toINR(row.SpreadBenefit)}
      \n\t\t\t\t\t\t\t\t
      {toINR(row.AdditionalMargin)}
      \n\t\t\t\t\t\t\t\t
      {toINR(row.TotalMargin)}
      \n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
    • toggleAccordian(index)}>\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\tSpecial Margin\n\t\t\t\t\t\t\t\t\t\t\t\t{toINR(row.SpecialMargin, 2)}\n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\tDelivery Margin\n\t\t\t\t\t\t\t\t\t\t\t\t{toINR(row.DeliveryMargin, 2)}\n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\tTender Margin\n\t\t\t\t\t\t\t\t\t\t\t\t{toINR(row.TenderMargin, 2)}\n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\tAdditional PreExpiry\n\t\t\t\t\t\t\t\t\t\t\t\t{toINR(row.AddtPreExpMargin, 2)}\n\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t
      \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t) : (\n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default MarginMcxTableDsk;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport { marginMcxHeading } from \"../../marginConstants\";\nimport { ISortProps } from \"../../../../types/components/margin/marginTypes\";\nimport MarginSort from \"../../generic/marginSort\";\nimport { marginScrollService } from \"../../../../service/marginFiles/marginScrollService\";\n\nexport interface IMarginMcxTableMobProps {\n\ttableData: Array;\n\tfilteredData: Array;\n\tnumOfRows: number;\n\tsortProps: ISortProps;\n\tsetTableData: (tableData: Array) => void;\n}\n\nconst MarginMcxTableMob: React.FC = props => {\n\tconst scrollBodyRef = React.useRef(null);\n\tconst fixedBodyRef = React.useRef(null);\n\tconst scrollHeadRef = React.useRef(null);\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t{props.tableData.slice(0, props.numOfRows).map((row, index) => (\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t\t
      marginScrollService(scrollBodyRef, fixedBodyRef, scrollHeadRef)}>\n\t\t\t\t\t{props.tableData.slice(0, props.numOfRows).map((row, index) => (\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.LotSize)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.SPANMargin)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.ExpMargin)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.SpreadBenefit)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.AdditionalMargin)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.TotalMargin)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.SpecialMargin)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.TenderMargin)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.DeliveryMargin)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.AddtPreExpMargin)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default MarginMcxTableMob;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport { marginMtfHeading } from \"../../marginConstants\";\nimport { ISortProps } from \"../../../../types/components/margin/marginTypes\";\nimport MarginSort from \"../../generic/marginSort\";\nimport NoDataContainer from \"../../../../generic/noDataContainer\";\n\nexport interface IMarginMtfTableDskProps {\n\ttableData: Array;\n\tfilteredData: Array;\n\tnumOfRows: number;\n\tsortProps: ISortProps;\n\tsetTableData: (tableData: Array) => void;\n}\n\nconst MarginMtfTableDsk: React.FC = props => {\n\treturn (\n\t\t
    \n\t\t\t
      \n\t\t\t\t
    • \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t
      \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t
    • \n\t\t\t
    \n\n\t\t\t{props.tableData.length ? (\n\t\t\t\t
      \n\t\t\t\t\t{props.tableData.slice(0, props.numOfRows).map((row, index) => (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
      {row.NSESymbol}
      \n\t\t\t\t\t\t\t\t
      {row.BSECode}
      \n\t\t\t\t\t\t\t\t
      {row.ISIN}
      \n\t\t\t\t\t\t\t\t
      {toINR(row.Haircut)}
      \n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t
      \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t) : (\n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default MarginMtfTableDsk;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport { marginMtfHeading } from \"../../marginConstants\";\nimport { ISortProps } from \"../../../../types/components/margin/marginTypes\";\nimport MarginSort from \"../../generic/marginSort\";\nimport { marginScrollService } from \"../../../../service/marginFiles/marginScrollService\";\n\nexport interface IMarginMtfTableMobProps {\n\ttableData: Array;\n\tfilteredData: Array;\n\tnumOfRows: number;\n\tsortProps: ISortProps;\n\tsetTableData: (tableData: Array) => void;\n}\n\nconst MarginMtfTableMob: React.FC = props => {\n\tconst scrollBodyRef = React.useRef(null);\n\tconst fixedBodyRef = React.useRef(null);\n\tconst scrollHeadRef = React.useRef(null);\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t{props.tableData.slice(0, props.numOfRows).map((row, index) => (\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t\t
      marginScrollService(scrollBodyRef, fixedBodyRef, scrollHeadRef)}>\n\t\t\t\t\t{props.tableData.slice(0, props.numOfRows).map((row, index) => (\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{row.NSESymbol}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{row.BSECode}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{row.ISIN}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{toINR(row.Haircut)}\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default MarginMtfTableMob;\n","import * as React from \"react\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport { SearchHighLight } from \"../../../service/generic/searchHighlight\";\nimport { ESortState, marginSort } from \"../generic/marginSort\";\nimport { marginSecNavOptions, marginEqFnoNavigationList, marginBuySellNavigationList, EMarginScreenState } from \"../marginConstants\";\nimport { useRouteMatch } from \"react-router-dom\";\nimport { IMarginRouteParams } from \"../../../types/components/margin/marginTypes\";\nimport Tab from \"../../../generic/tab\";\nimport NavigationDropdown from \"../../../generic/navigationDropdown\";\nimport MarginSearch from \"../generic/marginSearch\";\nimport MarginCollateralTableDsk from \"./marginCollateral/marginCollateralTableDsk\";\nimport MarginCollateralTableMob from \"./marginCollateral/marginCollateralTableMob\";\nimport MarginCoverOrderTableDsk from \"./marginCoverOrder/marginCoverOrderTableDsk\";\nimport MarginCoverOrderTableMob from \"./marginCoverOrder/marginCoverOrderTableMob\";\nimport MarginCurrencyTableDsk from \"./marginCurrency/marginCurrencyTableDsk\";\nimport MarginCurrencyTableMob from \"./marginCurrency/marginCurrencyTableMob\";\nimport MarginFilter from \"../generic/marginFilter\";\nimport MarginFnoTableDsk from \"./marginFno/marginFnoTableDsk\";\nimport MarginFnoTableMob from \"./marginFno/marginFnoTableMob\";\nimport MarginIntraEqTableDsk from \"./marginIntraEq/marginIntraEqTableDsk\";\nimport MarginIntraEqTableMob from \"./marginIntraEq/marginIntraEqTableMob\";\nimport MarginNavigationTag from \"../generic/marginNavigationTag\";\nimport MarginIntraFnoTableDsk from \"./marginIntraFno/marginIntraFnoTableDsk\";\nimport MarginIntraFnoTableMob from \"./marginIntraFno/marginIntraFnoTableMob\";\nimport MarginMcxTableDsk from \"./marginMcx/marginMcxTableDsk\";\nimport MarginMcxTableMob from \"./marginMcx/marginMcxTableMob\";\nimport MarginMtfTableDsk from \"./marginMtf/marginMtfTableDsk\";\nimport MarginMtfTableMob from \"./marginMtf/marginMtfTableMob\";\nimport Loader from \"../../../generic/loader\";\nimport SecNavigationDesktop from \"../../../generic/SecNavigation/SecNavigationDesktop\";\nimport { IListObj } from \"../../../types/genericTypes\";\n\nif (DeviceContext().isDesktop) {\n\trequire(\"../../../../assets/scss/components/toc/marginFiles/marginTables/marginTableDsk.scss\");\n} else if (DeviceContext().isTablet) {\n\trequire(\"../../../../assets/scss/components/toc/marginFiles/marginTables/marginTableTab.scss\");\n} else {\n\trequire(\"../../../../assets/scss/components/toc/marginFiles/marginTables/marginTableMob.scss\");\n}\n\nexport interface IMarginTableProps {\n\tdata: Array;\n\tscreenState: EMarginScreenState;\n}\n\nconst MarginTable: React.FC = (props) => {\n\tconst [filteredData, setFilteredData] = React.useState(props.data);\n\tconst [tableData, setTableData] = React.useState(props.data);\n\tconst [numOfRows, setNumOfRows] = React.useState(10);\n\tconst [sortedColumnState, setSortedColumnState] = React.useState({ colName: null as string | null, sortState: ESortState.ASC });\n\tconst routeParams = useRouteMatch();\n\tconst filterFiles: Array = [\"fno\", \"currency\", \"mcx\", \"ncdex\"];\n\tconst tagFiles: Array = [\"intraday\", \"mcx\", \"ncdex\"];\n\tconst [searchText, setSearchText] = React.useState(\"\");\n\tconst [filterDate, setFilterDate] = React.useState(\"all\");\n\n\tlet navigationList: Array = [];\n\tif (routeParams.params.fileType === \"intraday\") {\n\t\tnavigationList = marginEqFnoNavigationList;\n\t} else {\n\t\tnavigationList = marginBuySellNavigationList;\n\t}\n\n\tlet searchKey = \"\";\n\tswitch (routeParams.params.fileType) {\n\t\tcase \"intraday\":\n\t\t\tif (routeParams.params.subParam === \"equity\") {\n\t\t\t\tsearchKey = \"EdelCode\";\n\t\t\t} else if (routeParams.params.subParam === \"fno\") {\n\t\t\t\tsearchKey = \"ScripName\";\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"collateral\":\n\t\t\tsearchKey = \"EdelCode\";\n\t\t\tbreak;\n\t\tcase \"coverorder\":\n\t\t\tsearchKey = \"Scrip\";\n\t\t\tbreak;\n\t\tcase \"fno\":\n\t\tcase \"currency\":\n\t\tcase \"mcx\":\n\t\tcase \"ncdex\":\n\t\t\tsearchKey = \"trdSym\";\n\t\t\tbreak;\n\t\tcase \"mtf\":\n\t\t\tsearchKey = \"Name\";\n\t}\n\n\tconst filterKey = \"ExpDate\";\n\n\tfunction parsePropData() {\n\t\t// copy data because we need to pass fresh data in utilHeader\n\t\treturn props.data.map((row) => ({ ...row }));\n\t}\n\n\tReact.useEffect(() => {\n\t\t// parse data first to move hdgVl to first level\n\t\tconst data = parsePropData();\n\n\t\tsetFilteredData(data);\n\t\tsetTableData(data);\n\t\tsetNumOfRows(10); // because this component is shared by all components. When data is changed, we need to reset load more.\n\t\tsetSearchText(\"\");\n\t\tsetFilterDate(\"all\");\n\t}, [props.data]);\n\n\tfunction onSort(data: Array, sortState: ESortState, colName: string) {\n\t\tsetSortedColumnState({ colName, sortState });\n\t\tsetTableData(data);\n\t}\n\n\tfunction sortAfterFilter(groupedData: Array) {\n\t\t// if some column was sorted earlier, then sort that again\n\t\tif (sortedColumnState.colName) {\n\t\t\t// copy grouped data, because it will change after sorting\n\t\t\t// filtered data will also change with groupedData\n\t\t\tconst copyGroupedData = [...groupedData];\n\n\t\t\tmarginSort(copyGroupedData, sortedColumnState.sortState, sortedColumnState.colName, onSort);\n\t\t}\n\t}\n\n\tfunction onDataSearch(filteredData: Array, sText: string) {\n\t\tsetSearchText(sText);\n\n\t\tconst searchText: string = sText.toLowerCase();\n\n\t\tif (filterDate !== \"all\") {\n\t\t\t// filter the data depending on what is selected if any date is selected\n\t\t\t// if there is no filter on the screen then this will not work because filterDate will always be \"all\"\n\t\t\tfilteredData = filteredData.filter((d) => d[filterKey] === filterDate);\n\t\t}\n\n\t\t// set filtered data before highlighting it because filtered data is used in sorting\n\t\tsetFilteredData(filteredData);\n\n\t\t// highlight the rows\n\t\tfilteredData.forEach((row: any) => (row[searchKey] = SearchHighLight(row[searchKey], searchText)));\n\n\t\tsetTableData(filteredData);\n\t\tsortAfterFilter(filteredData);\n\t}\n\n\tfunction onDataFilter(filteredData: Array, sText: string) {\n\t\tsetFilterDate(sText);\n\n\t\tif (searchText) {\n\t\t\t// change search term to lowercase\n\t\t\tconst filter = searchText.toLowerCase();\n\n\t\t\t// filter the data depending on search text if there is any search text in the search box\n\t\t\tfilteredData = filteredData.filter((d) => d[searchKey].toLowerCase().includes(filter));\n\n\t\t\t// set filtered data before highlighting it because filtered data is used in sorting\n\t\t\tsetFilteredData(filteredData);\n\n\t\t\t// highlight the rows\n\t\t\tfilteredData.forEach((row: any) => (row[searchKey] = SearchHighLight(row[searchKey], searchText)));\n\t\t} else {\n\t\t\tsetFilteredData(filteredData);\n\t\t}\n\n\t\tsetTableData(filteredData);\n\t\tsortAfterFilter(filteredData);\n\t}\n\n\tfunction content() {\n\t\tswitch (routeParams.params.fileType) {\n\t\t\tcase \"intraday\":\n\t\t\t\tif (routeParams.params.subParam === \"equity\") {\n\t\t\t\t\treturn !DeviceContext().isMobile ? (\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (routeParams.params.subParam === \"fno\") {\n\t\t\t\t\treturn !DeviceContext().isMobile ? (\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"collateral\":\n\t\t\t\treturn !DeviceContext().isMobile ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\tcase \"coverorder\":\n\t\t\t\treturn !DeviceContext().isMobile ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\tcase \"fno\":\n\t\t\t\treturn !DeviceContext().isMobile ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\tcase \"currency\":\n\t\t\t\treturn !DeviceContext().isMobile ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\tcase \"mcx\":\n\t\t\tcase \"ncdex\":\n\t\t\t\treturn !DeviceContext().isMobile ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\tcase \"mtf\":\n\t\t\t\treturn !DeviceContext().isMobile ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t}\n\t}\n\n\treturn DeviceContext().isDesktop ? (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\n\t\t\t\t\t{props.screenState === EMarginScreenState.LOADING ? (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t) : (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{tagFiles.includes(routeParams.params.fileType) && (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{filterFiles.includes(routeParams.params.fileType) && (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t\t{content()}\n\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{tableData.length > numOfRows && (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t) : DeviceContext().isTablet ? (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\n\t\t\t\t\t{props.screenState === EMarginScreenState.LOADING ? (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t) : (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{tagFiles.includes(routeParams.params.fileType) && (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{filterFiles.includes(routeParams.params.fileType) && (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t\t\t{content()}\n\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{tableData.length > numOfRows && (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t) : (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {}}\n\t\t\t\t\t\t\ttype=\"sec_nav\"\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t{props.screenState === EMarginScreenState.DATA && (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{filterFiles.includes(routeParams.params.fileType) && (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{tagFiles.includes(routeParams.params.fileType) && (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t\t{props.screenState === EMarginScreenState.LOADING ? (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t) : (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t\t{content()}\n\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{tableData.length > numOfRows && (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default MarginTable;\n","import * as React from \"react\";\nimport { RouteChildrenProps } from \"react-router-dom\";\nimport { IMarginRouteParams } from \"../../../types/components/margin/marginTypes\";\nimport { AGetMarginFiles } from \"../../../service/marginFiles/marginApiService\";\nimport { marginQueryParams, EMarginScreenState } from \"../marginConstants\";\nimport MarginTable from \"../marginTable/marginTable\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport moment from \"moment\";\n\nif (DeviceContext().isDesktop) {\n\trequire(\"../../../../assets/scss/components/generic/layout/layoutDesk.scss\");\n\trequire(\"../../../../assets/scss/components/toc/marginFiles/marginDsk.scss\");\n} else if (DeviceContext().isTablet) {\n\trequire(\"../../../../assets/scss/components/generic/layout/layoutTab.scss\");\n\trequire(\"../../../../assets/scss/components/toc/marginFiles/marginTab.scss\");\n} else {\n\trequire(\"../../../../assets/scss/components/generic/layout/layoutMob.scss\");\n\trequire(\"../../../../assets/scss/components/toc/marginFiles/marginMob.scss\");\n}\n\nexport interface IMarginContainerProps {}\n\nexport interface IMarginContainerState {\n\tdata?: any; // if unedfined, then api is not called yet\n\tcurrentRouteParam?: IMarginRouteParams;\n}\n\nclass MarginContainer extends React.Component, IMarginContainerState> {\n\tstate: IMarginContainerState = { currentRouteParam: this.props.match?.params };\n\n\tgetMarginFilesRes = (res: any) => {\n\t\tswitch (this.props.match?.params.fileType) {\n\t\t\tcase \"intraday\":\n\t\t\t\tif (this.props.match.params.subParam === \"equity\") {\n\t\t\t\t\tthis.setState({ data: res.intradaydata });\n\t\t\t\t} else if (this.props.match.params.subParam === \"fno\") {\n\t\t\t\t\tthis.setState({ data: res.FNOIntradayData });\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"collateral\":\n\t\t\t\tthis.setState({ data: res.collateraldata });\n\t\t\t\tbreak;\n\t\t\tcase \"coverorder\":\n\t\t\t\tthis.setState({ data: res.CoverOrderData });\n\t\t\t\tbreak;\n\t\t\tcase \"fno\":\n\t\t\t\tthis.setState({\n\t\t\t\t\tdata: res.fnoMargindata.map((row: any) => ({\n\t\t\t\t\t\t...row,\n\t\t\t\t\t\ttrdSym: row.Symbol + moment(new Date(row.ExpDate)).format(\"YYMMM\").toUpperCase() + \"FUT\"\n\t\t\t\t\t}))\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase \"currency\":\n\t\t\t\tthis.setState({\n\t\t\t\t\tdata: res.currenydata.map((row: any) => ({\n\t\t\t\t\t\t...row,\n\t\t\t\t\t\ttrdSym: row.InstrType + \" \" + row.Symbol + moment(new Date(row.ExpDate)).format(\"DD-MMM-YY\")\n\t\t\t\t\t}))\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase \"mcx\":\n\t\t\t\tif (this.props.match.params.subParam === \"buy\") {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tdata: res.mcxbuydata.map((row: any) => ({\n\t\t\t\t\t\t\t...row,\n\t\t\t\t\t\t\ttrdSym: row.Symbol + moment(new Date(row.ExpDate)).format(\"YYMMM\").toUpperCase() + \"FUT\"\n\t\t\t\t\t\t}))\n\t\t\t\t\t});\n\t\t\t\t} else if (this.props.match.params.subParam === \"sell\") {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tdata: res.mcxsellData.map((row: any) => ({\n\t\t\t\t\t\t\t...row,\n\t\t\t\t\t\t\ttrdSym: row.Symbol + moment(new Date(row.ExpDate)).format(\"YYMMM\").toUpperCase() + \"FUT\"\n\t\t\t\t\t\t}))\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"ncdex\":\n\t\t\t\tif (this.props.match.params.subParam === \"buy\") {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tdata: res.ncdxbuydata.map((row: any) => ({\n\t\t\t\t\t\t\t...row,\n\t\t\t\t\t\t\ttrdSym: row.Symbol + moment(new Date(row.ExpDate)).format(\"YYMMM\").toUpperCase() + \"FUT\"\n\t\t\t\t\t\t}))\n\t\t\t\t\t});\n\t\t\t\t} else if (this.props.match.params.subParam === \"sell\") {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tdata: res.ncdxselldata.map((row: any) => ({\n\t\t\t\t\t\t\t...row,\n\t\t\t\t\t\t\ttrdSym: row.Symbol + moment(new Date(row.ExpDate)).format(\"YYMMM\").toUpperCase() + \"FUT\"\n\t\t\t\t\t\t}))\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"mtf\":\n\t\t\t\tthis.setState({ data: res.mtfdata });\n\t\t}\n\t};\n\n\tcallApi() {\n\t\tconst { fileType, subParam } = this.props.match?.params!;\n\n\t\tif (fileType) {\n\t\t\tif (fileType === \"intraday\") {\n\t\t\t\tif (subParam === \"equity\") {\n\t\t\t\t\tAGetMarginFiles(this.getMarginFilesRes, marginQueryParams.intraday);\n\t\t\t\t} else if (subParam === \"fno\") {\n\t\t\t\t\tAGetMarginFiles(this.getMarginFilesRes, marginQueryParams.fnointraday);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tAGetMarginFiles(this.getMarginFilesRes, marginQueryParams[fileType]);\n\t\t\t}\n\t\t}\n\t}\n\n\tcomponentDidMount() {\n\t\t// call the api initially\n\t\tthis.setState({ currentRouteParam: this.props.match?.params });\n\t\tthis.callApi();\n\t}\n\n\tcomponentDidUpdate() {\n\t\t// call api only if route is changed\n\t\tif (this.props.match?.params !== this.state.currentRouteParam) {\n\t\t\tthis.setState({ currentRouteParam: this.props.match?.params, data: undefined });\n\t\t\tthis.callApi();\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t);\n\t}\n}\n\nexport default MarginContainer;\n","import * as React from \"react\";\nimport { Switch, Route } from \"react-router-dom\";\nimport MarginContainer from '../components/toc/marginFiles/marginContainer/marginContainer';\n\nconst MarginFilesRouting = () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n};\nexport default MarginFilesRouting;\n","import indexer, { IListObj, jwtToken } from \"./../../types/genericTypes\";\nimport { parsedToken } from \"../../service/storageHelper\";\nimport DeviceContext from \"../../service/indentifyDevice\";\nimport { CSSProperties, useState } from \"react\";\nconst hndlDevice = DeviceContext();\nexport default function FTSecNavOptions(): Array {\n\tlet pToken: jwtToken | null = parsedToken();\n\tlet ftUrls: Array = [\n\t\t{ value: \"add-funds\", display: \"Add funds\", href: \"/fund-transfer/add-funds\" },\n\t\t{ value: \"withdraw-funds\", display: \"Withdraw\", href: \"/fund-transfer/withdraw-funds\" }\n\t];\n\tif (pToken) {\n\t\tif (pToken.accType !== \"CO\") {\n\t\t\tftUrls.push({\n\t\t\t\tvalue: \"historyeq\",\n\t\t\t\tdisplay: pToken.accType !== \"COMEQ\" ? \"History\" : hndlDevice.isDesktop ? \"Equity - History\" : \"Eq - History\",\n\t\t\t\thref: \"/fund-transfer/history/eq/added\"\n\t\t\t});\n\t\t}\n\t\tif (pToken.accType !== \"EQ\") {\n\t\t\tftUrls.push({\n\t\t\t\tvalue: \"historyco\",\n\t\t\t\tdisplay: pToken.accType !== \"COMEQ\" ? \"History\" : hndlDevice.isDesktop ? \"Commodity - History\" : \"Com - History\",\n\t\t\t\thref: \"/fund-transfer/history/co/added\"\n\t\t\t});\n\t\t}\n\t}\n\treturn ftUrls;\n}\n\nexport const ftHelpDetails = {\n\temail: \"helpdesk@nuvama.com\",\n\ttel: \"1800 102 3335\",\n\ttimings: \"8am - 5.30pm\",\n\tpayoutMsg:\n\t\t\"Payout requests placed till 3:30 PM on trading days will be processed on same day. Payout requests placed after 3:30 PM will be processed on next trading day. In case of Bank holidays the requests will be processed on next bank working day excluding Saturdays.\"\n};\n\nexport const FTChipColorKeyComb: indexer = {\n\t\"request sent\": \"blue\",\n\tfailed: \"red\",\n\t\"in process\": \"blue\",\n\tinprocess: \"blue\",\n\tprocessed: \"green\",\n\tcancelled: \"red\",\n\t\"payout pending\": \"blue\",\n\tpending: \"blue\",\n\t\"upi int failed\": \"red\"\n};\n\n//custom hook to compute max height based on the api response data\nexport const FTScrollStyle = (setMinMax: boolean): CSSProperties => {\n\tconst [computedStyles, setcomputedStyles] = useState({});\n\tconst ele = document.querySelector(\"body\") as HTMLElement;\n\t//on rough guess this offset has been set - should be changed to accurate values\n\tconst offset: string = DeviceContext().isMobile ? \"120px\" : \"260px\";\n\tif (setMinMax) {\n\t\tsetTimeout(() => {\n\t\t\tif (ele.scrollHeight > window.innerHeight) {\n\t\t\t\tsetcomputedStyles({\n\t\t\t\t\theight: \"calc(\" + window.innerHeight + \"px - \" + offset + \")\",\n\t\t\t\t\toverflowY: \"auto\",\n\t\t\t\t\tmarginLeft: !DeviceContext().isMobile ? \"-10px\" : \"0\"\n\t\t\t\t});\n\t\t\t}\n\t\t}, 350);\n\t}\n\n\treturn computedStyles;\n};\nexport const FTRegex: indexer = {\n\tamt: \"^[0-9]{0,10}[.]?[0-9]{0,2}$\",\n\tmobAmt: \"[0-9]*\",\n\tupi: \"^[a-zA-Z0-9.@_-]*$\"\n};\n","import * as React from \"react\";\nimport \"../../../assets/scss/components/toc/fundTransfer/ftFaqLink.scss\";\n\nexport interface IFtFaqLinkProps {}\n\nconst FtFaqLink: React.FC = () => {\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t

    Need Help?

    \n\t\t\t

    Check FAQs for fund transfer

    \n\t\t
    \n\t);\n};\n\nexport default FtFaqLink;\n","import React, { ReactNode } from \"react\";\nimport SecNavigationDesktop from \"../../../generic/SecNavigation/SecNavigationDesktop\";\nimport { useRouteMatch, useParams } from \"react-router-dom\";\nimport FTSecNavOptions from \"../ftConstants\";\nimport { EdALinkButton } from \"../../../generic/edButton\";\nimport FtFaqLink from \"../ftFaqLink\";\nimport \"../../../../assets/scss/components/generic/layout/layoutDesk.scss\";\n\nexport interface IFtContainerDeskProps {\n\tinstComp?: ReactNode;\n}\n\nconst FtContainerDesk: React.FC = (props) => {\n\tconst routeParams = useRouteMatch();\n\tconst { asset } = useParams<{ asset: string }>(); //section navigation,page navigation, primary market instrument\n\n\tconst defaultValue: string = routeParams.url.split(\"/\")[2] + (asset ? asset : \"\");\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{/* left block */}\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbtnTyp=\"link\"\n\t\t\t\t\t\t\t\tLinkHref=\"https://www.edelweiss.in/faqs/what-is-upi-transfer-24-369\"\n\t\t\t\t\t\t\t\tclassName=\"ft_faq\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\n\t\t\t\t\t{/* right block which contains page navigation and other controls */}\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    {props.instComp}
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default FtContainerDesk;\n","import * as URLConfig from \"../domain\";\n\nconst config = URLConfig.config;\n\nexport default {\n\teqLimit: config.jmw + config.jmw_eq_eq + \"limits/rmssublimits/\",\n\teqBankDetails: config.jmw + config.jmw_eq_eq + \"fund/bankdetails/\",\n\tcommodityLimit: config.jmw + config.jmw_comm + \"limits/\",\n\tcommodityBankDetails: config.jmw + config.jmw_comm + \"fund/bankdetails/\",\n\teqMaxPayout: config.jmw + config.jmw_eq_eq + \"fund/max/payout\",\n\tpayin: {\n\t\tpaymentgatewayurl: config.jmw + config.jmw_eq_eq + \"fund/paymentgatewayurl/\",\n\t\tupistatus: config.jmw + config.jmw_eq_eq + \"fund/upistatus/\",\n\t\tcommPayInURL: config.jmw + config.jmw_comm + \"fund/payinurl/\",\n\t\tverifyPayIn: config.jmw + config.jmw_comm + \"fund/verify/transferstatus/\"\n\t},\n\tpayout: {\n\t\tbankdetails: config.jmw + config.jmw_eq_eq + \"fund/bankdetails/v1/\",\n\t\tbankdetailsComm: config.jmw + config.jmw_comm + \"fund/bankdetails/\",\n\t\taddpayoutEq: config.jmw + config.jmw_eq_eq + \"fund/addpayout/\",\n\t\taddpayoutComm: config.jmw + config.jmw_comm + \"fund/addpayout/\",\n\t\tmodifyPayoutEq: config.jmw + config.jmw_eq_eq + \"fund/modifypayout/\",\n\t\tmodifyPayoutEComm: config.jmw + config.jmw_comm + \"fund/modifypayout/\",\n\t\tcancelPayoutEq: config.jmw + config.jmw_eq_eq + \"fund/cancelpayout/\",\n\t\tcancelPayoutEComm: config.jmw + config.jmw_comm + \"fund/cancelpayout/\"\n\t},\n\thistory: {\n\t\ttransferstatusEqPayIn: config.jmw + config.jmw_eq_eq + \"fund/transferstatus/\",\n\t\ttransferstatusEqPayOut: config.jmw + config.jmw_eq_eq + \"fund/transferstatus/v1/\",\n\t\ttransferstatusComm: config.jmw + config.jmw_comm + \"fund/transferstatus/\"\n\t},\n\tpageURL: {\n\t\tpayinStatus: \"/fund-transfer/add-funds/status?status\"\n\t}\n};\n","import { apiService, apiAService } from \"../apiService\";\nimport ftURLConfig from \"../../../config/toc/ftURLConfig\";\nimport { jwtToken } from \"../../types/genericTypes\";\nimport { IPayIn, IPayOut, ITransferStatus } from \"./../../toc/fundTransfer/ftInterfaces\";\nimport { IModifyPayout } from \"../../types/components/fundTransfer/ftTypes\";\nimport LoginService from \"../login/loginService\";\n\nlet pToken: jwtToken | null = LoginService.pToken,\n\tuserID = pToken ? pToken.username : null;\n\n//after redirect reinstate pToken with parsed jwt token\nconst pTokenCheck = (paramChk?: keyof jwtToken) => {\n\tif (!pToken) {\n\t\tpToken = LoginService.pToken;\n\t\tuserID = pToken ? pToken.username : null;\n\t}\n\treturn paramChk && pToken ? pToken[paramChk] : pToken;\n};\n// Add fund Equity-Limits - rms sublimits\nexport const AEqFundLimit = (callback: CallableFunction) => {\n\tif (pTokenCheck(\"accType\") !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: ftURLConfig.eqLimit + userID,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\nexport const AaeqFundLimit = async ()=>{\n\tif (pTokenCheck(\"accType\") !== \"CO\") {\n\t\treturn await apiAService({\n\t\t\t\turl: ftURLConfig.eqLimit ,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t});\n\t}\n}\n\n//Get Max Payout Amount\nexport const AEqMaxPayout = (callback: CallableFunction) => {\n\tif (pTokenCheck(\"accType\") !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: ftURLConfig.eqMaxPayout + \"/\" + userID,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n// Add fund Equity-BankDetils\nexport const AEqFundBankDetils = (callback: CallableFunction) => {\n\tif (pTokenCheck(\"accType\") !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: ftURLConfig.eqBankDetails + userID,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n// Add fund commoditity-Limits\nexport const ACommFundLimit = (callback: CallableFunction) => {\n\tif (pTokenCheck(\"accType\") !== \"EQ\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: ftURLConfig.commodityLimit + userID,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n// Add fund commoditity-BankDetils\nexport const ACommFundBankDetils = (callback: CallableFunction) => {\n\tif (pTokenCheck(\"accType\") !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: ftURLConfig.commodityBankDetails + userID,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n//Payout with\n//{userId}?rTyp=PAYOUT\nexport const APayoutBankDetails = (callback: CallableFunction) => {\n\tif (pTokenCheck(\"accType\") !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: ftURLConfig.payout.bankdetails + userID + \"?rTyp=PAYOUT\",\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n//commodity acc\n//Payout with\n//{userId}?rTyp=PAYOUT\nexport const AFTCommPayoutBankDetails = (callback: CallableFunction) => {\n\tif (pTokenCheck(\"accType\") !== \"EQ\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: ftURLConfig.payout.bankdetailsComm + userID + \"?rTyp=PAYOUT\",\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n//Payin submit button api\nexport const AFtAddfundIn = (callback: CallableFunction, payinBody: IPayIn) => {\n\tif (pTokenCheck(\"accType\") !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\t// order/details/1111?nOID=111\n\t\t\t\turl: ftURLConfig.payin.paymentgatewayurl + userID,\n\t\t\t\tmethod: \"POST\",\n\t\t\t\tauthType: \"authtoken\",\n\t\t\t\tbody: payinBody\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n//Payout submit button api\nexport const AFtWidthrawFundEq = (callback: CallableFunction, payOutBody: IPayOut) => {\n\tif (pTokenCheck(\"accType\") !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: ftURLConfig.payout.addpayoutEq + userID,\n\t\t\t\tmethod: \"POST\",\n\t\t\t\tauthType: \"authtoken\",\n\t\t\t\tbody: payOutBody\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\nexport const AFtWidthrawFundComm = (callback: CallableFunction, payOutBody: IPayOut) => {\n\tif (pTokenCheck(\"accType\") !== \"EQ\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: ftURLConfig.payout.addpayoutComm + userID,\n\t\t\t\tmethod: \"POST\",\n\t\t\t\tauthType: \"authtoken\",\n\t\t\t\tbody: payOutBody\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n// Fund Transfer History - Equity\nexport const ATransferHisEqPayin = (callback: CallableFunction, transferHisBody: ITransferStatus) => {\n\tif (pTokenCheck(\"accType\") !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl:\n\t\t\t\t\tftURLConfig.history.transferstatusEqPayIn +\n\t\t\t\t\tuserID +\n\t\t\t\t\t\"?rTyp=PAYIN\" +\n\t\t\t\t\t\"&sDt=\" +\n\t\t\t\t\ttransferHisBody.sDt +\n\t\t\t\t\t\"&eDt=\" +\n\t\t\t\t\ttransferHisBody.eDt,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n// Fund Transfer History - Equity Payout\nexport const ATransferHisEqPayOut = (callback: CallableFunction, transferHisBody: ITransferStatus) => {\n\tif (pTokenCheck(\"accType\") !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl:\n\t\t\t\t\tftURLConfig.history.transferstatusEqPayOut +\n\t\t\t\t\tuserID +\n\t\t\t\t\t\"?rTyp=PAYOUT\" +\n\t\t\t\t\t\"&sDt=\" +\n\t\t\t\t\ttransferHisBody.sDt +\n\t\t\t\t\t\"&eDt=\" +\n\t\t\t\t\ttransferHisBody.eDt,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n// Fund Transfer History - Commodity\nexport const ATransferHisComm = (callback: CallableFunction, transferHisBody: ITransferStatus) => {\n\tif (pTokenCheck(\"accType\") !== \"EQ\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl:\n\t\t\t\t\tftURLConfig.history.transferstatusComm +\n\t\t\t\t\tuserID +\n\t\t\t\t\t\"?rTyp=\" +\n\t\t\t\t\ttransferHisBody.rTyp +\n\t\t\t\t\t\"&sDt=\" +\n\t\t\t\t\ttransferHisBody.sDt +\n\t\t\t\t\t\"&eDt=\" +\n\t\t\t\t\ttransferHisBody.eDt,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n//verify pay in transaction\nexport const AFTVerifyPayin = (\n\tcallback: CallableFunction,\n\tverifyPayIn: {\n\t\tinstNo: string;\n\t}\n) => {\n\tif (pTokenCheck()) {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: ftURLConfig.payin.verifyPayIn + userID,\n\t\t\t\tmethod: \"PUT\",\n\t\t\t\tauthType: \"authtoken\",\n\t\t\t\tbody: verifyPayIn\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n//modify payout\n\nexport const AFTModifyPayout = (callback: CallableFunction, modifyPayout: IModifyPayout, accType: string) => {\n\tif (pTokenCheck()) {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: accType === \"CO\" ? ftURLConfig.payout.modifyPayoutEComm + userID : ftURLConfig.payout.modifyPayoutEq + userID,\n\t\t\t\tmethod: \"PUT\",\n\t\t\t\tauthType: \"authtoken\",\n\t\t\t\tbody: modifyPayout\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n//cancel payout\nexport const AFTCancelPayout = (\n\tcallback: CallableFunction,\n\tcancelPayout: {\n\t\tinstNo: string;\n\t},\n\taccType: string\n) => {\n\tif (pTokenCheck()) {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: accType === \"CO\" ? ftURLConfig.payout.cancelPayoutEComm + userID : ftURLConfig.payout.cancelPayoutEq + userID,\n\t\t\t\tmethod: \"DELETE\",\n\t\t\t\tauthType: \"authtoken\",\n\t\t\t\tbody: cancelPayout\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n\n//intent status\nexport const AFTPayInUPIIntentStatus = (callback: CallableFunction, pgrefno: string) => {\n\tif (pTokenCheck(\"accType\") !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: ftURLConfig.payin.upistatus + userID + \"?pgrefno=\" + pgrefno,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n// To get PayInUrl for a particular client\n\nexport const AFTCommFetchPayInURL = (callback: CallableFunction) => {\n\tif (pTokenCheck(\"accType\") !== \"EQ\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: ftURLConfig.payin.commPayInURL + userID,\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tauthType: \"authtoken\"\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\n// \n","import * as React from \"react\";\nimport { toINR } from \"../../../service/numberFormat\";\nimport { jwtToken } from \"../../../types/genericTypes\";\nimport { parsedToken } from \"../../../service/storageHelper\";\nimport { IcommLimits } from \"../../../types/components/fundTransfer/ftTypes\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport { Idevice } from \"../../../types/device\";\nconst handleDevice: Idevice = DeviceContext();\n\nexport interface IFtPayInCashHeaderProps {\n\teqCash: string;\n\tcoCash: IcommLimits;\n}\n\nexport function FtPayInCashHeader(props: IFtPayInCashHeaderProps) {\n\tconst pToken: jwtToken | null = parsedToken();\n\treturn (\n\t\t
    \n\t\t\t{pToken && pToken.accType === \"COMEQ\" && (\n\t\t\t\t<>\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    Equity {!handleDevice.isMobile && \"Cash\"}

    \n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{toINR(props.eqCash, 2)}\n\t\t\t\t\t\t

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t

    Commodity {!handleDevice.isMobile && \"Cash\"}

    \n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{toINR(props.coCash.lmAvl, 2)}\n\t\t\t\t\t\t

    \n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t)}\n\t\t\t{pToken && pToken.accType !== \"COMEQ\" && (\n\t\t\t\t
    \n\t\t\t\t\t

    Cash Available

    \n\t\t\t\t\t

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t{toINR(pToken.accType === \"EQ\" ? props.eqCash : props.coCash.lmAvl, 2)}\n\t\t\t\t\t

    \n\t\t\t\t
    \n\t\t\t)}\n\t\t
    \n\t);\n}\n","import indexer from \"../../../types/genericTypes\";\nimport { IftinpErrorMsgs, IErrorHandler, IftinpValidations } from \"../../../types/components/fundTransfer/ftTypes\";\n\nexport function ftFormValidate(e: any, errorStateFlag: boolean = true) {\n\tconst eTar: any = e.target || e;\n\tlet fieldValidState: boolean = true;\n\tlet returnObj: IErrorHandler = { ErrorState: false, key: \"\", name: \"\" };\n\tif (eTar !== undefined) {\n\t\tconst validations: indexer = JSON.parse(eTar.dataset.validation as string);\n\t\tlet valKeys: Array = Object.keys(validations),\n\t\t\tinvalidKey: string = \"\";\n\t\tfor (let i = 0; i < valKeys.length; i++) {\n\t\t\tlet key: keyof IftinpValidations;\n\t\t\tkey = valKeys[i] as keyof IftinpValidations;\n\n\t\t\t//used if instead of switch to set error state on pripority basis\n\n\t\t\t//validations which are dependent on value\n\t\t\tif (eTar.value) {\n\t\t\t\tif (key === \"max\" && parseFloat(eTar.value) > parseFloat(validations[key])) {\n\t\t\t\t\tfieldValidState = false;\n\t\t\t\t\tinvalidKey = key;\n\t\t\t\t}\n\n\t\t\t\tif (key === \"min\" && parseFloat(eTar.value) < parseFloat(validations[key])) {\n\t\t\t\t\tfieldValidState = false;\n\t\t\t\t\tinvalidKey = key;\n\t\t\t\t}\n\n\t\t\t\tif (key === \"regEx\") {\n\t\t\t\t\tvar regEx = new RegExp(validations[key]);\n\t\t\t\t\tif (!regEx.test(eTar.value)) {\n\t\t\t\t\t\tfieldValidState = false;\n\t\t\t\t\t\tinvalidKey = key;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (key === \"required\" && validations[key] && !eTar.value && parseFloat(eTar.value) !== 0) {\n\t\t\t\tfieldValidState = false;\n\t\t\t\tinvalidKey = key;\n\t\t\t}\n\t\t}\n\t\t//paragraph element where error and info messages are displayed\n\t\tconst errMsg = document.querySelector(\".formInpCont .info\") as HTMLParagraphElement;\n\t\t//errorStateFlag flag used to reset all the error states to false\n\t\tif (fieldValidState) {\n\t\t\teTar.dataset[\"error\"] = \"false\";\n\t\t\terrMsg.dataset[\"error\"] = \"false\";\n\t\t} else if (errorStateFlag) {\n\t\t\teTar.dataset[\"error\"] = \"true\";\n\t\t\terrMsg.dataset[\"error\"] = \"true\";\n\t\t}\n\t\treturnObj = { ErrorState: !fieldValidState, key: invalidKey as keyof IftinpErrorMsgs, name: eTar.name };\n\t}\n\treturn returnObj;\n}\n","export function getProperty(o: T, propertyName: K): T[K] {\n\treturn o[propertyName]; // o[propertyName] is of type T[K]\n}\n","import * as React from \"react\";\nimport { toINR } from \"../../../service/numberFormat\";\nimport \"../../../../assets/scss/components/toc/fundTransfer/ftPayout/ftInpField.scss\";\nimport { IftinpValidations, IftinpErrorMsgs, IErrorHandler } from \"../../../types/components/fundTransfer/ftTypes\";\nimport { ftFormValidate } from \"../generic/ftFormValidation\";\nimport { getProperty } from \"../../../service/generic/typeHandler\";\nimport { Idevice } from \"../../../types/device\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nexport interface IFtInpFieldProps {\n\tvalue?: string | number;\n\ttype: string; //number, text\n\tmin?: number;\n\tmax?: number;\n\tstep?: number;\n\tonChange?: (key: string, val: any) => void;\n\tonBlur?: (inpVal: any) => void;\n\tshowProxyField: boolean; //proxy for placeholde and the value to show in INR format\n\tvr: \"normal\" | \"error\" | \"warn\"; //validationReturn\n\tclsNm?: string;\n\tph?: string; //placeholder\n\tautoFocus: boolean; //auto focus\n\tname?: string; //form name\n\tpattern?: string; //pattern allowed to input\n\tvalidation?: IftinpValidations;\n\tregEx?: string;\n\terror?: IftinpErrorMsgs; //error messages as per the validation\n\tinfo?: string; //a message to show after input field\n\tproxy_inp: \"input\" | \"proxy\";\n\tvalidateOnChange: boolean;\n\tprefix?: React.ReactChild; // text/element to show before the input field\n\tlabel: string;\n\tvalidationEvent?: \"change\" | \"blur\" | \"focus\";\n\tmaxlength?: number;\n}\n\nexport function FtInpField(props: IFtInpFieldProps) {\n\tconst inputEle = React.useRef(null);\n\tconst proxyEle = React.useRef(null);\n\tconst [inputState, setInputState] = React.useState(props.value);\n\tconst [info, setInfo] = React.useState(props.info || \"\");\n\tconst RegExPat: RegExp | string = new RegExp(props.regEx || \"\");\n\t//type of device tablet/mobile/desktop\n\tconst handleDevice: Idevice = DeviceContext();\n\tlet stateOfField: IErrorHandler = {\n\t\tErrorState: false,\n\t\tkey: \"\"\n\t};\n\tfunction handleChange(e: React.ChangeEvent) {\n\t\tsetInputState(e.target.value);\n\t\tprops.onChange && props.onChange(e.target.name, e.target.value);\n\t}\n\tfunction inpValidate(e: React.ChangeEvent) {\n\t\tif (props.validateOnChange) {\n\t\t\tstateOfField = ftFormValidate(e);\n\t\t\tif (stateOfField.key) {\n\t\t\t\tif (!(props.error && getProperty(props.error, stateOfField.key))) {\n\t\t\t\t\te.target.dataset.error = \"false\";\n\t\t\t\t}\n\t\t\t\tsetInfo((props.error && getProperty(props.error, stateOfField.key)) || \"\");\n\t\t\t} else {\n\t\t\t\tsetInfo(props.info || \"\");\n\t\t\t}\n\t\t}\n\t}\n\tReact.useEffect(() => {\n\t\tsetInfo(props.info || \"\");\n\t}, [props.info]);\n\n\tReact.useEffect(() => {\n\t\tsetInputState(props.value);\n\t}, [props.value]);\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t{props.label && }\n\n\t\t\t\t
    \n\t\t\t\t\t{props.prefix &&
    {props.prefix}
    }\n\t\t\t\t\t {\n\t\t\t\t\t\t\tif (props.proxy_inp === \"proxy\") {\n\t\t\t\t\t\t\t\tinputEle.current?.classList.add(\"hide\");\n\t\t\t\t\t\t\t\tproxyEle.current?.classList.remove(\"hide\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tprops.validationEvent === \"blur\" && inpValidate(e);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\tif (!(props.pattern && RegExPat.test(e.target.value))) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\thandleChange(e);\n\t\t\t\t\t\t\t\t(!props.validationEvent || props.validationEvent === \"change\") && inpValidate(e);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tname={props.name}\n\t\t\t\t\t\trequired={true}\n\t\t\t\t\t\tpattern={props.pattern}\n\t\t\t\t\t\tdata-error={false}\n\t\t\t\t\t\tdata-validation={JSON.stringify(props.validation)}\n\t\t\t\t\t\tvalue={inputState}\n\t\t\t\t\t/>\n\t\t\t\t\t{props.showProxyField && (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tinputEle.current?.classList.remove(\"hide\");\n\t\t\t\t\t\t\t\tinputEle.current?.focus();\n\t\t\t\t\t\t\t\tproxyEle.current?.classList.add(\"hide\");\n\t\t\t\t\t\t\t\tinputEle.current?.setAttribute(\"placeholder\", \"\");\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{!inputState ? props.ph : toINR(inputState)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t

    \n\t\t\t\t{info}\n\t\t\t

    \n\t\t
    \n\t);\n}\n","import { useLocation } from \"react-router-dom\";\n\nexport function useQuery() {\n\treturn new URLSearchParams(useLocation().search);\n}\n","import React, { useEffect, useState } from \"react\";\nimport { IListObj } from \"../types/genericTypes\";\nimport \"../../assets/scss/components/generic/tocDropdown.scss\";\nimport { useQuery } from \"../service/urlHelper\";\n\nexport interface ITocDropdownProps {\n selectedValue?: number | string; // default selected value\n dropdownOptions: Array; // list of all options in dropdown\n onSelect: (id: string | number) => void; // the function to be called onSelect\n showPrimary?: boolean; // true if need to show star, otherwise false\n showClose?: boolean; // true if need to show close button, otherwise false\n disabled?: boolean; //disable the dropdown\n isSearchable: boolean; // for searchable dropdown list\n}\n\nconst TocDropdown: React.FC = (props: ITocDropdownProps) => {\n /**\n * state and function for isDropdownOpen\n * selectedValue type is boolean\n * setSelectedValue(boolean)\n */\n const consentType = useQuery().get(\"consentType\");\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n const [dropDownOption, setDropDownOption] = useState>();\n const [search, setSearch] = useState();\n\n /**\n * called when user selects an option\n * @param id id of the selected option\n * @returns onSelect prop passed from parent\n */\n function optionSelected(id: string | number) {\n setIsDropdownOpen(false);\n return props.onSelect(id);\n }\n\n function handleChange(e: any) {\n let val = e.target.value.trim();\n setSearch(val.trimStart());\n const list = props.dropdownOptions.filter((opt) => {\n if (opt.display.toLowerCase().startsWith(val.trimStart().toLowerCase()))\n return opt;\n });\n if (!list.length)\n list.push({\n value: \"\",\n display: \"No results\",\n });\n setIsDropdownOpen(true);\n setDropDownOption(list);\n }\n // Find the selected object\n const selectedOption = props.dropdownOptions.find(\n (option) => props.selectedValue === option.value\n );\n useEffect(() => {\n const selectedOption = props.dropdownOptions.find(\n (option) => props.selectedValue === option.value\n );\n setSearch(selectedOption?.display);\n const options = props.dropdownOptions.filter(\n (opt) => props.selectedValue !== opt.value && opt.value\n );\n\n setDropDownOption(options);\n if (\n \n props.dropdownOptions.length === 0 ||\n (options?.length === 0 && !props.selectedValue)\n ) {\n setDropDownOption(\n options.concat({\n value: \"\",\n display: \"No results\",\n })\n );\n }\n }, [props.selectedValue, props.dropdownOptions]);\n\n return (\n
    \n {props.isSearchable ? (\n <>\n \n setIsDropdownOpen(true)}\n />\n \n ) : (\n {\n e.preventDefault();\n !(e as any).target.className.includes(\"edel-icon-close\") &&\n setIsDropdownOpen(true);\n }}\n disabled={props.disabled}\n type={\"button\"}\n >\n {/* show the value of selectedValue */}\n \n {selectedOption?.display === \"NRML-SMTF Funds Movement Preference\"\n ? \"NRML-SMTF Funds Movement...\"\n : selectedOption?.display}\n {/* Show star only if primary is to be shown and first option is selected */}\n {props.showPrimary && selectedOption?.primary && (\n \n )}\n \n {props.showClose && props.selectedValue ? (\n optionSelected(\"\")} />\n ) : (\n !consentType?.includes(\"nominee\") && (\n \n )\n )}\n \n )}\n\n {/* when dropdown is open show overlay and content */}\n {isDropdownOpen && (\n <>\n {/* Overlay covers the whole screen. When overlay is clicked, close the dropdown. */}\n setIsDropdownOpen(false)}\n />\n\n {/* Dropdown list */}\n {!(props.dropdownOptions.length === 1 && props.selectedValue) &&
      \n {dropDownOption &&\n dropDownOption.length > 0 &&\n dropDownOption.map((option, index) => (\n {\n if (option.value) optionSelected(option.value);\n }}\n >\n
      \n
      \n {/* show tick only if this option is selected */}\n \n {option.value === props.selectedValue && (\n \n )}\n \n \n
      \n {option.primary && props.showPrimary && (\n
      \n \n
      \n )}\n
      \n \n ))}\n
    }\n \n \n )}\n
    \n );\n};\n\nexport default TocDropdown;\n","import React from \"react\";\nimport EdButton from \"../../generic/edButton\";\nimport \"../../../assets/scss/components/toc/fundTransfer/generic/ftConfirmBtn.scss\";\nexport interface IFtConfirmBtnProps {\n\terrTxt?: string; // Error text if passed then button is in disabled state\n\tonClick: (event: React.MouseEvent) => void;\n\tdisbaled: boolean;\n}\n\nconst FtConfirmBtn: React.FC = (props: IFtConfirmBtnProps) => {\n\treturn (\n\t\t
    \n\t\t\t{props.errTxt ? (\n\t\t\t\t
    \n\t\t\t\t\t

    {props.errTxt}

    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t) : (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default FtConfirmBtn;\n","import {\n IcommLimits,\n IftPayoutBankDetails,\n} from \"../../../../types/components/fundTransfer/ftTypes\";\nimport React from \"react\";\nimport { FtInpField } from \"../../generic/ftInpField\";\nimport TocDropdown from \"../../../../generic/tocDropdown\";\nimport FtConfirmBtn from \"../../ftConfirmBtn\";\nimport {\n AFtWidthrawFundEq,\n AFtWidthrawFundComm,\n} from \"../../../../service/fundTransfer/fundTransferApiService\";\nimport { parsedToken } from \"../../../../service/storageHelper\";\nimport { useHistory } from \"react-router-dom\";\nimport indexer, { IListObj } from \"../../../../types/genericTypes\";\nimport { IPayOut } from \"../../ftInterfaces\";\nimport { ftHelpDetails, FTRegex } from \"../../ftConstants\";\nimport { Idevice } from \"../../../../types/device\";\nimport DeviceContext from \"../../../../service/indentifyDevice\";\n\nexport interface FtPayoutFormContProps {\n bnkAcs: Array;\n asset: string;\n eqCash: string;\n coCash: IcommLimits;\n}\n\nconst FtPayoutFormCont: React.FC = (props) => {\n const pToken = parsedToken();\n let history = useHistory();\n\n //type of device tablet/mobile/desktop\n const handleDevice: Idevice = DeviceContext();\n // list of banks linked to the trading account\n const banksList: Array = props.bnkAcs.map(\n (d: IftPayoutBankDetails, index: number) => ({\n value: index,\n display:\n props.asset === \"EQ\"\n ? d.bankName + \" - \" + d.bankAccountNo\n : d.bnkName + \" - \" + d.bnkAccNo,\n })\n );\n\n const [userInput, setUserInput] = React.useState<{\n amount: string;\n bank: IftPayoutBankDetails | null;\n remarks: string;\n }>({\n amount: \"\",\n bank: props.bnkAcs.length > 0 ? props.bnkAcs[0] : null,\n remarks: \"\",\n });\n\n const [isFormSubmitted, setIsFormSubmitted] = React.useState(false);\n\n const [textAreaFocusClass, setTextAreaFocusClass] = React.useState(\"\");\n\n const [submitErr, setSubmitErr] = React.useState<{\n errMsg: string;\n errCd: string;\n actCd: string;\n }>({ errMsg: \"\", errCd: \"\", actCd: \"\" });\n\n //error messages associated with input field amt\n let ftAmtErrMsgs: indexer = {\n min: \"Please enter valid amount\",\n max: \"Amount entered exceeds your available balance.\",\n required: \"\",\n };\n\n //message dispatcher to show error messages\n const [message] = React.useState>([ftAmtErrMsgs[\"required\"]]);\n\n function onAmountChange(key: string, value: any) {\n setUserInput({ ...userInput, [key]: value });\n }\n\n /**\n * Checks for all the validations and then changes value accordingly\n * @param e The input event\n */\n function onRemarkChange(e: React.ChangeEvent) {\n if (e.target.value.length <= 140) {\n setUserInput({ ...userInput, remarks: e.target.value });\n }\n }\n\n function ftWithdrawFundRes(res: any) {\n setSubmitErr({ errCd: \"\", errMsg: \"\", actCd: \"\" });\n\n if (res.data ? res.data.sts === \"true\" : res.data) {\n if (userInput.bank) {\n const url =\n \"/fund-transfer/withdraw-funds/status?status=\" +\n JSON.stringify({\n seg: \"\",\n bnkName:\n props.asset === \"EQ\"\n ? userInput.bank.bankName\n : userInput.bank.bnkName,\n bnkAccNo:\n props.asset === \"EQ\"\n ? userInput.bank.bankAccountNo\n : userInput.bank.bnkAccNo,\n brcName:\n props.asset === \"EQ\"\n ? userInput.bank.bankBranchName\n : userInput.bank.brcName,\n ifsc: userInput.bank.ifsc,\n trnsAmt: userInput.amount.toString(),\n rmk: userInput.remarks.toString(),\n accType: props.asset,\n });\n\n history.push(url);\n }\n } else if (res.error) {\n setSubmitErr(res.error);\n setIsFormSubmitted(false);\n }\n }\n\n function submitForm(e: React.MouseEvent) {\n e.preventDefault();\n setIsFormSubmitted(true);\n setSubmitErr({ errCd: \"\", errMsg: \"\", actCd: \"\" });\n\n if (userInput.bank) {\n const data: IPayOut = {\n seg: \"\",\n bnkName:\n props.asset === \"EQ\"\n ? userInput.bank.bankName\n : userInput.bank.bnkName,\n bnkAccNo:\n props.asset === \"EQ\"\n ? userInput.bank.bankAccountNo\n : userInput.bank.bnkAccNo,\n brcName:\n props.asset === \"EQ\"\n ? userInput.bank.bankBranchName\n : userInput.bank.brcName,\n ifsc: userInput.bank.ifsc,\n trnsAmt: userInput.amount.toString(),\n rmk: userInput.remarks.toString(),\n };\n\n if (\n pToken &&\n (pToken.accType === \"EQ\" ||\n (pToken.accType === \"COMEQ\" && props.asset === \"EQ\"))\n ) {\n AFtWidthrawFundEq(ftWithdrawFundRes, data);\n } else if (\n pToken &&\n (pToken.accType === \"CO\" ||\n (pToken.accType === \"COMEQ\" && props.asset === \"CO\"))\n ) {\n AFtWidthrawFundComm(ftWithdrawFundRes, data);\n }\n }\n }\n React.useEffect(() => {\n setUserInput({ ...userInput, bank: props.bnkAcs[0] });\n }, [props.bnkAcs]);\n return (\n
    \n
    \n \n
    \n
    \n \n \n setUserInput({\n ...userInput,\n bank: props.bnkAcs[value as number],\n })\n }\n isSearchable={false}\n />\n
    \n\n
    \n \n
    \n setTextAreaFocusClass(\" focus\")}\n onBlur={() => setTextAreaFocusClass(\"\")}\n />\n
    \n {(userInput.remarks as string).length} / 140\n
    \n
    \n
    \n {submitErr.errMsg && (\n
    \n

    \n {submitErr.errMsg}\n

    \n
    \n )}\n
    \n +props.eqCash && props.asset === \"EQ\") ||\n (+userInput.amount > +props.coCash.lmAvl && props.asset === \"CO\")\n }\n />\n
    \n
    \n

    \n In case the bank account mentioned is incorrect; you are requested to\n contact customer service. Write to{\" \"}\n {ftHelpDetails.email}\n

    \n
    \n
    \n );\n};\n\nexport default FtPayoutFormCont;\n","import * as React from \"react\";\n\nexport interface IFtCircledIconProps {\n\ticon?: React.ReactNode;\n\tstyle: React.CSSProperties;\n}\n\nexport function FtCircledIcon(props: IFtCircledIconProps) {\n\tconst circleStyle: React.CSSProperties = {\n\t\tborderRadius: \"50%\",\n\t\tdisplay: \"inline-grid\",\n\t\talignItems: \"center\",\n\t\t...props.style\n\t};\n\treturn (\n\t\t\n\t);\n}\n","import * as React from \"react\";\nimport { IftPayoutDeatils } from \"../../../types/components/fundTransfer/ftTypes\";\nimport { FtCircledIcon } from \"../generic/ftCircleOIcon\";\nimport { EdLinkButton } from \"../../../generic/edButton\";\n\ninterface IFtPayOutPendingProps {\n\tdata: IftPayoutDeatils;\n\tasset: string;\n}\n\nconst FtPayOutPending: React.FunctionComponent = (props) => {\n\tconst linkToHist = \"./history/\" + props.asset.toLowerCase() + \"/withdrawn\";\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t

    {props.data.pendingMsg}

    \n\t\t\t

    \n\t\t\t\t\n\t\t\t

    \n\t\t
    \n\t);\n};\n\nexport default FtPayOutPending;\n","import * as React from \"react\";\nimport { parsedToken } from \"../../../../service/storageHelper\";\nimport DeviceContext from \"../../../../service/indentifyDevice\";\nimport { IListObj } from \"../../../../types/genericTypes\";\nimport { IcommLimits, IftPayoutDeatils } from \"../../../../types/components/fundTransfer/ftTypes\";\nimport { FtPayInCashHeader } from \"../../ftPayInCont/ftPayInCashHeader\";\nimport FtPayoutFormCont from \"./ftPayOutFormCont\";\nimport RadioButton from \"../../../../generic/radioButton\";\nimport FtPayOutPending from \"../ftPayOutPending\";\nimport { Idevice } from \"../../../../types/device\";\nimport { useQuery } from \"../../../../service/urlHelper\";\n\nconst handleDevice: Idevice = DeviceContext();\n\nif (handleDevice.isDesktop) {\n\trequire(\"../../../../../assets/scss/components/toc/fundTransfer/ftAddFund/ftAddFundDesk.scss\");\n} else if (handleDevice.isMobile) {\n\trequire(\"../../../../../assets/scss/components/toc/fundTransfer/ftAddFund/ftAddFundMob.scss\");\n} else {\n\trequire(\"../../../../../assets/scss/components/toc/fundTransfer/ftAddFund/ftAddFundTab.scss\");\n}\n\nexport interface IFtPayOutProps {\n\teq: IftPayoutDeatils;\n\tco: IftPayoutDeatils;\n\teqCash: string;\n\tcoCash: IcommLimits;\n}\n\nfunction FtPayOut(props: IFtPayOutProps) {\n\tconst pToken = parsedToken();\n\tconst queryAsset = useQuery().get(\"asset\");\n\n\tlet defaultAssetSel: string = pToken ? (pToken.accType === \"COMEQ\" ? \"EQ\" : pToken.accType) : \"EQ\";\n\n\tif (pToken?.accType === \"COMEQ\") {\n\t\tif (queryAsset && (queryAsset.toUpperCase() === \"EQ\" || queryAsset.toUpperCase() === \"CO\")) {\n\t\t\tdefaultAssetSel = queryAsset.toUpperCase();\n\t\t}\n\t}\n\n\tconst [selAssetBnkAccs, setAssetBnkAccs] = React.useState>(defaultAssetSel === \"EQ\" ? props.eq.bnkAcs : props.co.bnkAcs);\n\tconst [selAssetDetails, setAssetDetails] = React.useState(defaultAssetSel === \"EQ\" ? props.eq : props.co);\n\n\tconst [asset, setAsset] = React.useState(defaultAssetSel);\n\n\tconst assetList: Array = [\n\t\t{ value: \"EQ\", display: \"Equity\" },\n\t\t{ value: \"CO\", display: \"Commodity\" }\n\t];\n\tReact.useEffect(() => {\n\t\tswitch (asset) {\n\t\t\tcase \"EQ\":\n\t\t\t\tsetAssetBnkAccs(props.eq.bnkAcs);\n\t\t\t\tsetAssetDetails(props.eq);\n\t\t\t\tbreak;\n\t\t\tcase \"CO\":\n\t\t\t\tsetAssetBnkAccs(props.co.bnkAcs);\n\t\t\t\tsetAssetDetails(props.co);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}, [asset, props.eqCash, props.coCash]);\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t{pToken && pToken.accType === \"COMEQ\" && (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t{assetList.map((item) => (\n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t setAsset(item.value as string)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t)}\n\n\t\t\t\t{selAssetDetails.pndPayout && asset ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t
    \n\t);\n}\n\nexport default FtPayOut;\n","import * as React from \"react\";\nimport FtContainerDesk from \"../ftContainer/ftContainerDesk\";\nimport { APayoutBankDetails, AEqMaxPayout, ACommFundLimit, AFTCommPayoutBankDetails } from \"../../../service/fundTransfer/fundTransferApiService\";\nimport \"../../../../assets/scss/components/toc/fundTransfer/ftPayout/ftPayout.scss\";\nimport { IftPayout, IftPayoutDeatils, IcommLimits } from \"../../../types/components/fundTransfer/ftTypes\";\nimport FtPayOut from \"./ftPayOut/ftPayOut\";\nimport FtContainerTab from \"../ftContainer/ftContainerTab\";\nimport FtContainerMob from \"../ftContainer/ftContainerMob\";\nimport { Idevice } from \"./../../../types/device\";\nimport DeviceContext from \"./../../../service/indentifyDevice\";\nimport { SLoader } from \"../../../generic/loader\";\nimport { parsedToken } from \"../../../service/storageHelper\";\nimport { jwtToken } from \"../../../types/genericTypes\";\n\ninterface IFtPayOutContProps {}\n\nexport enum EFtPayOutFormFields {\n\tAMOUNT = \"amount\",\n\tBANK = \"bank\",\n\tREMARKS = \"remarks\"\n}\n\nconst FtPayOutCont: React.FunctionComponent = (props) => {\n\tconst deviceState: Idevice = DeviceContext();\n\tconst [inst, setInst] = React.useState(SLoader(20, \"blue\"));\n\tconst pToken: jwtToken | null = parsedToken();\n\tconst [maxpayout, setMaxpayout] = React.useState(\"\");\n\tconst [coUserLim, setCoUserLim] = React.useState({\n\t\tcolVal: \"\",\n\t\tlmAvl: \"\",\n\t\tlrB: \"\",\n\t\tmrUzd: \"\",\n\t\tpiAmt: \"\",\n\t\tpoAmt: \"\"\n\t});\n\n\tconst [eqDetails, setEqDetails] = React.useState();\n\tconst [coDetails, setCoDetails] = React.useState();\n\n\tconst initObj = {\n\t\tpndPayout: false,\n\t\tpayoutMntFlg: false,\n\t\tbodFlg: false,\n\t\tpendingMsg: \"\",\n\t\tbnkAcs: [],\n\t\tbrk: \"\",\n\t\ttype: \"\"\n\t};\n\n\tconst commFundLimitRes = (res: any) => {\n\t\tif (res.data) {\n\t\t\t// setState({ commCash: res.data.lmt.lmAvl });\n\t\t\tsetCoUserLim(res.data.lmt);\n\t\t}\n\t};\n\n\tfunction hndlPayoutState() {\n\t\tif (eqDetails && coDetails) {\n\t\t\tsetInst();\n\t\t}\n\t}\n\tfunction init() {\n\t\tAPayoutBankDetails(EqPayoutcallback);\n\t\t//comm account bank details\n\t\tAFTCommPayoutBankDetails(COPayoutcallback);\n\t\tAEqMaxPayout(maxpayoutCallback);\n\t\tACommFundLimit(commFundLimitRes);\n\n\t\tif (pToken && pToken.accType === \"CO\") {\n\t\t\tsetEqDetails(initObj);\n\t\t}\n\t\tif (pToken && pToken.accType === \"EQ\") {\n\t\t\tsetCoDetails(initObj);\n\t\t}\n\t\tfunction maxpayoutCallback(res: any) {\n\t\t\tif (res.data) {\n\t\t\t\tif (res.data) {\n\t\t\t\t\t// setState({ eqCash: res.data.cshAvl });\n\t\t\t\t\tsetMaxpayout(res.data.maxPytAmt);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfunction COPayoutcallback(res: any) {\n\t\t\tif (res.data) {\n\t\t\t\tconst resp: IftPayoutDeatils = res.data as IftPayoutDeatils;\n\t\t\t\tsetCoDetails(resp);\n\t\t\t\tdispatch(resp);\n\t\t\t\tif (payoutState && payoutState.details) {\n\t\t\t\t\thndlPayoutState();\n\t\t\t\t}\n\t\t\t}\n\t\t\t//only for comm account\n\t\t\telse if (res.error) {\n\t\t\t\tconst details = {\n\t\t\t\t\tpndPayout: true,\n\t\t\t\t\tpayoutMntFlg: false,\n\t\t\t\t\tbodFlg: true,\n\t\t\t\t\tpendingMsg: res.error.errMsg,\n\n\t\t\t\t\tbnkAcs: [],\n\t\t\t\t\tbrk: \"\",\n\t\t\t\t\ttype: \"\"\n\t\t\t\t};\n\t\t\t\tsetCoDetails(details);\n\t\t\t\tdispatch(details);\n\t\t\t}\n\t\t}\n\t\tfunction EqPayoutcallback(res: any) {\n\t\t\tif (res.data) {\n\t\t\t\tconst resp: IftPayout = res.data as IftPayout;\n\t\t\t\tconst details: IftPayoutDeatils = JSON.parse(resp.details) as IftPayoutDeatils;\n\t\t\t\tsetEqDetails(details);\n\t\t\t\tdispatch(resp);\n\t\t\t\tif (payoutState && payoutState.details) {\n\t\t\t\t\thndlPayoutState();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tfunction reducer(_prevState: any, newState: any) {\n\t\treturn newState;\n\t}\n\n\tconst [payoutState, dispatch] = React.useReducer(reducer, null, init);\n\n\tReact.useEffect(() => {\n\t\thndlPayoutState();\n\t}, [maxpayout, coUserLim, payoutState]);\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t{deviceState.isDesktop ? (\n\t\t\t\t\t\n\t\t\t\t) : deviceState.isTablet ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default FtPayOutCont;\n","import React, { ReactNode } from \"react\";\nimport FTSecNavOptions from \"../ftConstants\";\nimport Tab from \"../../../generic/tab\";\nimport { useRouteMatch, useParams } from \"react-router-dom\";\nimport \"../../../../assets/scss/components/generic/layout/layoutTab.scss\";\nimport \"../../../../assets/scss/components/toc/fundTransfer/ftContainer/ftContainerTab.scss\";\n\nexport interface IFtContainerTabProps {\n\tinstComp?: ReactNode;\n}\n\nconst FtContainerTab: React.FC = (props) => {\n\tconst routeParams = useRouteMatch();\n\n\tconst { asset } = useParams<{ asset: string }>(); //section navigation,page navigation, primary market instrument\n\n\tconst defaultValue: string = routeParams.url.split(\"/\")[2] + (asset ? asset : \"\");\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    {props.instComp}
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default FtContainerTab;\n","import React, { ReactNode } from \"react\";\nimport FTSecNavOptions from \"../ftConstants\";\nimport { useRouteMatch, useParams } from \"react-router-dom\";\nimport NavigationDropdown from \"../../../generic/navigationDropdown\";\n\nexport interface IFtContainerMobProps {\n\tinstComp?: ReactNode;\n\tdateComp?: ReactNode;\n}\n\nconst FtContainerMob: React.FC = (props) => {\n\tconst routeParams = useRouteMatch();\n\tconst { asset } = useParams<{ asset: string }>(); //section navigation,page navigation, primary market instrument\n\n\tconst defaultValue: string = routeParams.url.split(\"/\")[2] + (asset ? asset : \"\");\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t {}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{props.dateComp}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    {props.instComp}
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default FtContainerMob;\n","import * as React from \"react\";\n\ninterface IEdelLogoProps {\n\tfill: string;\n\twidth: string;\n\theight: string;\n\tviewbox: string;\n}\n\nexport function EdelLogo(props: IEdelLogoProps): JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t// \n\t\t// \t\n\t\t// \t\n\t\t// \t\n\t\t// \n\t);\n}\nexport default EdelLogo;\n","import * as React from \"react\";\nimport { useHistory, Link } from \"react-router-dom\";\nimport EdelLogo from \"../../../../assets/icons/svgIcons/logo\";\n\n//styles\nimport DeviceContext from \"../../../service/indentifyDevice\";\n\nimport EdButton, { EdLinkButton } from \"../../../generic/edButton\";\nimport { ftHelpDetails } from \"../ftConstants\";\nimport indexer from \"../../../types/genericTypes\";\nimport \"../../../../assets/scss/components/toc/fundTransfer/ftModal/ftModal.scss\";\nimport { Idevice } from \"../../../types/device\";\n\nconst handleDevice: Idevice = DeviceContext();\n\nif (!handleDevice.isMobile) {\n\trequire(\"../../../../assets/scss/components/toc/fundTransfer/ftModal/ftModalDesk.scss\");\n} else if (handleDevice.isMobile) {\n\trequire(\"../../../../assets/scss/components/toc/fundTransfer/ftModal/ftModalMob.scss\");\n}\n\nexport interface IFtFundsModalProps {\n\tstatus: React.ReactNode;\n\tshowFooter: boolean;\n\tshowLogo: boolean;\n\tcloseLink?: string;\n}\nexport interface IFtModalFooterProps {}\nexport function FtModalFooter(props: IFtModalFooterProps) {\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t

    Note:

    \n\t\t\t\t

    You will be redirected to payment status, once payment response is received from the service provider.

    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t

    Call us

    \n\t\t\t\t\n\t\t\t\t\t{ftHelpDetails.tel}\n\t\t\t\t\n\t\t\t\t

    ({ftHelpDetails.timings})

    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t

    Email

    \n\t\t\t\t\n\t\t\t\t\t{ftHelpDetails.email}\n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t);\n}\n\n// list of redirections after success full transaction\nexport function FtSuccessActionsList() {\n\treturn (\n\t\t
      \n\t\t\t
    • \n\t\t\t\t\n\t\t\t\t\tPlace Order\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    • \n\t\t\t
    • \n\t\t\t\t\n\t\t\t\t\tLimits\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    • \n\t\t\t
    • \n\t\t\t\t\n\t\t\t\t\tTransfer More Funds\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    • \n\t\t
    \n\t);\n}\n\nexport const ftStatsIcon: indexer = {\n\t\"200\": \"edel-icon-tick\",\n\t\"0\": \"edel-icon-exclamation\",\n\t\"500\": \"edel-icon-exclamation\",\n\t\"800\": \"edel-icon-timeout\",\n\t\"100\": \"edel-icon-timeout\"\n};\nexport default function FtFundsModal(props: IFtFundsModalProps) {\n\tconst history = useHistory();\n\n\tconst logoDimensions = {\n\t\tdesktop: {\n\t\t\twidth: \"125\",\n\t\t\theight: \"30\",\n\t\t\tviewbox: \"0 0 125 30\"\n\t\t},\n\t\tmobile: {\n\t\t\twidth: \"111\",\n\t\t\theight: \"20\",\n\t\t\tviewbox: \"5 5 115 17\"\n\t\t}\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t{/* where conatiner width is set here */}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{props.showLogo && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{handleDevice.isMobile ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t{!props.closeLink ? (\n\t\t\t\t\t\t history.goBack()}\n\t\t\t\t\t\t\tbtnTyp=\"link\"\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{!handleDevice.isMobile && \"Close\"}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{!handleDevice.isMobile && \"Close\"}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t
    \n\n\t\t\t\t{/* //inner container */}\n\n\t\t\t\t
    \n\t\t\t\t\t{props.status}\n\t\t\t\t\t{props.showFooter && }\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n}\n","import * as React from \"react\";\nimport { useParams, Link, useHistory } from \"react-router-dom\";\nimport { IftStatusResponse } from \"../../../types/components/fundTransfer/ftTypes\";\nimport { toINR } from \"../../../service/numberFormat\";\nimport moment from \"moment\";\nimport { AddRemClass } from \"../../../helper/addRemoveClsOfTgt\";\nimport FtFundsModal, { ftStatsIcon } from \"./ftModal\";\nimport { FtCircledIcon } from \"../generic/ftCircleOIcon\";\nimport { useQuery } from \"../../../service/urlHelper\";\nimport EdButton, { EdLinkButton } from \"../../../generic/edButton\";\nimport { jwtToken } from \"../../../types/genericTypes\";\nimport { parsedToken } from \"../../../service/storageHelper\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport { Idevice } from \"../../../types/device\";\n\nconst handleDevice: Idevice = DeviceContext();\n\nexport interface IFtModalPayInProps {}\n\nfunction FtPayinStat(ftresponse: IftStatusResponse) {\n\treturn (\n\t\t<>\n\t\t\t{ftresponse && (\n\t\t\t\t\n\t\t\t\t\t
    } />\n\t\t\t\t\t{ftresponse.status === 200 ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t

    Transfer Successful

    \n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t₹{toINR(ftresponse.amount, 2)} added to account on {moment(ftresponse.createddate).format(\"DD MMM YYYY, hh:mm a\")}\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\n\t\t\t\t\t) : ftresponse.status === 100 ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t

    Awaiting Response

    \n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\tThe QR code has timed out. Please complete the transaction if you have already scanned the QR code\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\n\t\t\t\t\t) : ftresponse.status === 0 && ftresponse.paymode === \"UPI Intent\" ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t

    Request Timed Out

    \n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t{/* The UPI Intent has timed out. Please complete the transaction if you have already scanned the QR code */}\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t

    Transfer Failed

    \n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\tFailure to add ₹{toINR(ftresponse.amount, 2)} on {moment(ftresponse.createddate).format(\"DD MMM YYYY, hh:mm a\")}\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t{FtTransferDetails(ftresponse)}\n\t\t\t\t\t

    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tAddRemClass(true, \"#ftRespDetails\", \"show\");\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t

    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{ftresponse.status === 200 && FtSuccessActionsList()}\n\t\t\t\t\t\t{(ftresponse.status === 0 ||\n\t\t\t\t\t\t\tftresponse.status === 100 ||\n\t\t\t\t\t\t\t(ftresponse.status === \"500\" && ftresponse.paymode === \"UPI Intent\")) &&\n\t\t\t\t\t\t\tFtTimeOutActionsList()}\n\t\t\t\t\t
    \n\t\t\t\t\t{ftresponse.status === 500 && (\n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t

    \n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t)}\n\t\t\n\t);\n}\nexport function FtTransferDetails(ftresponse: IftStatusResponse) {\n\treturn (\n\t\t
    \n\t\t\t
      \n\t\t\t\t
    • \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    • \n\t\t\t\t{(ftresponse.paymode === \"UPI\" || ftresponse.paymode === \"UPI Intent\") && (\n\t\t\t\t\t
    • \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    • \n\t\t\t\t)}\n\t\t\t\t
    • \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    • \n\t\t\t\t
    • \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    • \n\t\t\t\t
    • \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    • \n\t\t\t\t{ftresponse.status !== 200 && ftresponse.remarks && (\n\t\t\t\t\t
    • \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    • \n\t\t\t\t)}\n\t\t\t
    \n\t\t
    \n\t);\n}\n\n// list of redirections after success full transaction\nexport function FtSuccessActionsList() {\n\tconst pToken: jwtToken | null = parsedToken();\n\treturn (\n\t\t
      \n\t\t\t
    • \n\t\t\t\t\n\t\t\t\t\tPlace Order\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    • \n\t\t\t
    • \n\t\t\t\t\n\t\t\t\t\tLimits\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    • \n\t\t\t
    • \n\t\t\t\t\n\t\t\t\t\tTransfer More Funds\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    • \n\t\t
    \n\t);\n}\nexport function FtTimeOutActionsList() {\n\treturn (\n\t\t
      \n\t\t\t
    • \n\t\t\t\t\n\t\t\t\t\tTransfer More Funds\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    • \n\t\t\t
    • \n\t\t\t\t\n\t\t\t\t\tHistory\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    • \n\t\t
    \n\t);\n}\nexport default function FtModalPayIn(_props: IFtModalPayInProps) {\n\tconst { state } = useParams<{ state: string }>();\n\n\tconst query = useQuery();\n\tconst history = useHistory();\n\t//contains transaction callback status\n\n\tlet ftresponse: IftStatusResponse = JSON.parse(\"\" + (state && ((query.get(state) as unknown) as IftStatusResponse)) + \"\");\n\t//resets the query parameters\n\twindow.history.pushState({}, \"\", window.location.href.split(\"?\")[0]);\n\t!ftresponse && history.push(\"/fund-transfer/add-funds\");\n\treturn (\n\t\t
    \n\t\t\t{ftresponse && }{\" \"}\n\t\t
    \n\t);\n}\n","import * as React from \"react\";\nimport EdButton, { IEdButtonProps } from \"./edButton\";\nimport \"../../assets/scss/components/generic/cancel_T_Record.scss\";\n\nexport interface ICANCEL_T_RECORDProps {\n\ttitle: string;\n\tsubtitle?: string;\n\tbtnProps: IEdButtonProps;\n}\n\nexport function CANCEL_T_RECORD(props: ICANCEL_T_RECORDProps) {\n\treturn (\n\t\t
    \n\t\t\t

    {props.title}

    \n\t\t\t{props.subtitle &&

    {props.subtitle}

    }\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t);\n}\n","import * as React from \"react\";\nimport { useParams, Link, useHistory } from \"react-router-dom\";\n\n//styles\n\nimport EdButton from \"../../../generic/edButton\";\nimport { IftPayoutStatusResponse, IftTransHistObj, IErrorHandler } from \"../../../types/components/fundTransfer/ftTypes\";\nimport { toINR } from \"../../../service/numberFormat\";\nimport { AddRemClass } from \"../../../helper/addRemoveClsOfTgt\";\nimport FtFundsModal, { ftStatsIcon } from \"./ftModal\";\nimport { FtCircledIcon } from \"../generic/ftCircleOIcon\";\nimport { useQuery } from \"../../../service/urlHelper\";\nimport { ftFormValidate } from \"../generic/ftFormValidation\";\nimport indexer, { jwtToken } from \"../../../types/genericTypes\";\nimport { AFTModifyPayout, AFTCancelPayout } from \"../../../service/fundTransfer/fundTransferApiService\";\nimport { CANCEL_T_RECORD } from \"../../../generic/cancel_T_Record\";\nimport { FtInpField } from \"../generic/ftInpField\";\nimport { parsedToken } from \"../../../service/storageHelper\";\nimport { Idevice } from \"../../../types/device\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport { FTRegex } from \"../ftConstants\";\n\nexport interface IFtModalPayOutProps {}\n\n/**** add payout acknowledgment container start ******/\nfunction FtPayOutStat(ftresponse: IftPayoutStatusResponse) {\n\treturn (\n\t\t<>\n\t\t\t{ftresponse && (\n\t\t\t\t
    \n\t\t\t\t\t{/* icon */}\n\t\t\t\t\t} />\n\t\t\t\t\t{/* message */}\n\t\t\t\t\t<>\n\t\t\t\t\t\t

    Request Received

    \n\t\t\t\t\t\t

    We shall notify you once the request has been processed.

    \n\t\t\t\t\t\n\t\t\t\t\t{FtTransferDetails(ftresponse)}\n\t\t\t\t\t

    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tAddRemClass(true, \"#ftRespDetails\", \"show\");\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t

    \n\t\t\t\t\t
    {FtRedirectList(ftresponse)}
    \n\t\t\t\t
    \n\t\t\t)}\n\t\t\n\t);\n}\n//deatils of the transaction like bank name, amount etc.,\nexport function FtTransferDetails(ftresponse: IftPayoutStatusResponse) {\n\treturn (\n\t\t
    \n\t\t\t
      \n\t\t\t\t
    • \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    • \n\n\t\t\t\t
    • \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    • \n\t\t\t\t
    • \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    • \n\t\t\t
    \n\t\t
    \n\t);\n}\n// list of redirections after success full transaction\nexport function FtRedirectList(ftresponse: IftPayoutStatusResponse) {\n\tconst pToken: jwtToken | null = parsedToken();\n\n\treturn (\n\t\t
      \n\t\t\t
    • \n\t\t\t\t\n\t\t\t\t\tTransfer More Funds\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    • \n\t\t\t
    • \n\t\t\t\t\n\t\t\t\t\tShow history\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    • \n\t\t
    \n\t);\n}\n/**** add payout acknowledgment container end ******/\n\n/**** edit layout ****/\nfunction FtEditWithdrawAmt(transaction: IftTransHistObj) {\n\tlet history = useHistory();\n\n\t//type of device tablet/mobile/desktop\n\tconst handleDevice: Idevice = DeviceContext();\n\t//error messages associated with input field amt\n\tconst editAmtErrMsgs: indexer = {\n\t\tmin: \"Please enter valid amount\",\n\t\tmax: `Amount can’t be more than ${toINR(transaction.lim, 2)}`,\n\t\trequired: \"Please enter the amount to proceed\"\n\t};\n\t//form fields constructed object\n\t// let EditForm: indexer = {\n\t// \teditamt: transaction.trnsAmt\n\t// };\n\n\tconst [editAmt, setEditAmt] = React.useState(\"\");\n\t//message dispatcher to show error messages\n\tconst [message, dispatchMsg] = React.useState>([editAmtErrMsgs[\"max\"]]);\n\n\t//hold the form field input values\n\tfunction getFormValuesByField(_key: string, value: any) {\n\t\tsetEditAmt(value);\n\t}\n\t//api call to inital modify transaction of the payout\n\t//error response will be handled in the page itself,\n\t//on success response will redirect to request received page\n\tfunction ModifySuccessCallBack(res: any) {\n\t\tconst editAmtInp: HTMLElement = document.getElementsByName(\"editamt\")[0];\n\t\tif (res.data) {\n\t\t\teditAmtInp.dataset[\"error\"] = \"false\";\n\n\t\t\tconst url = \"/fund-transfer/withdraw-funds/status?status=\" + JSON.stringify({ ...transaction, trnsAmt: editAmt });\n\n\t\t\thistory.push(url);\n\t\t} else if (res.error) {\n\t\t\tdispatchMsg([res.error.errMsg]);\n\t\t\teditAmtInp.dataset[\"error\"] = \"true\";\n\t\t}\n\t}\n\treturn (\n\t\t
    \n\t\t\t{/* additional div used to keep the contents vertically middle aligned */}\n\t\t\t
    \n\t\t\t\t

    Edit Withdrawal Amount

    \n\t\t\t\t {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tlet eTar = e.target as any,\n\t\t\t\t\t\t\teTarElements: Array = eTar.elements;\n\t\t\t\t\t\tlet validationstatus: IErrorHandler = { ErrorState: false, key: \"\" };\n\t\t\t\t\t\tfor (let i = 0; i < eTarElements.length; i++) {\n\t\t\t\t\t\t\tconst element: HTMLElement = eTarElements[i] as HTMLElement;\n\t\t\t\t\t\t\tif (element.nodeName === \"INPUT\") {\n\t\t\t\t\t\t\t\tvalidationstatus = ftFormValidate(element);\n\t\t\t\t\t\t\t\tdispatchMsg([editAmtErrMsgs[validationstatus.key]]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!validationstatus.ErrorState) {\n\t\t\t\t\t\t\tdispatchMsg([editAmtErrMsgs[\"max\"]]);\n\t\t\t\t\t\t\tAFTModifyPayout(\n\t\t\t\t\t\t\t\tModifySuccessCallBack,\n\t\t\t\t\t\t\t\t{ rmk: transaction.rmk, instNo: transaction.instNo, amt: editAmt },\n\t\t\t\t\t\t\t\ttransaction.accType\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t\tnoValidate\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t);\n}\n\nexport function FTCancelPayout(transaction: IftTransHistObj) {\n\tlet history = useHistory();\n\n\tconst [message, dispatchMsg] = React.useState(\"\");\n\tconst [cancelClicked, setCancelClicked] = React.useState(false);\n\tfunction confirmCancel() {\n\t\tsetCancelClicked(true);\n\n\t\tAFTCancelPayout(cancelCallback, { instNo: transaction.instNo }, transaction.accType);\n\t}\n\n\tfunction cancelCallback(res: any) {\n\t\tsetCancelClicked(false);\n\n\t\tconst pToken: jwtToken | null = parsedToken();\n\t\tif (res.data) {\n\t\t\thistory.push(\n\t\t\t\t\"/fund-transfer/history/\" + (pToken && pToken.accType === \"COMEQ\" ? \"eq\" : pToken && pToken.accType.toLowerCase()) + \"/withdrawn\"\n\t\t\t);\n\t\t\tdispatchMsg(\"\");\n\t\t} else {\n\t\t\tdispatchMsg(res.error.errMsg);\n\t\t}\n\t}\n\treturn (\n\t\t
    \n\t\t\t{/* additional div used to keep the contents vertically middle aligned */}\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t

    {message}

    \n\t\t\t
    \n\t\t
    \n\t);\n}\nexport default function FtModalPayOut(_props: IFtModalPayOutProps) {\n\tconst { state } = useParams<{ state: string }>();\n\n\tconst query = useQuery();\n\tlet history = useHistory();\n\tconst pToken: jwtToken | null = parsedToken();\n\n\tconst payoutReqReceviedState: IftPayoutStatusResponse = JSON.parse(\n\t\t\t\"\" + (state && ((query.get(state) as unknown) as IftPayoutStatusResponse)) + \"\"\n\t\t),\n\t\tpayoutTransState = JSON.parse(\"\" + (state && ((query.get(state) as unknown) as IftTransHistObj)) + \"\");\n\tlet linktoHist = \"/fund-transfer/history/\" + (pToken?.accType === \"COMEQ\" ? \"eq\" : pToken?.accType.toLowerCase()) + \"/withdrawn\";\n\tif (state === \"edit\" && payoutTransState) {\n\t\tlinktoHist = \"/fund-transfer/history/\" + payoutTransState.accType.toLowerCase() + \"/withdrawn\";\n\t}\n\n\twindow.history.pushState({}, \"\", window.location.href.split(\"?\")[0]);\n\t!payoutTransState && history.push(linktoHist);\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t{payoutTransState && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{state && state === \"status\" ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : state && state === \"edit\" && payoutTransState.edit === \"true\" ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tstate &&\n\t\t\t\t\t\t\tstate === \"cancel\" &&\n\t\t\t\t\t\t\tpayoutTransState.cancel === \"true\" && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
    \n\t\t
    \n\t);\n}\n","import * as React from \"react\";\nimport Tag from \"../../../../generic/tag\";\nimport { FTChipColorKeyComb, FTScrollStyle } from \"../../ftConstants\";\nimport SlideUpPopup from \"../../../../generic/slideUpPopup\";\nimport EdButton from \"../../../../generic/edButton\";\nimport { AFTVerifyPayin } from \"../../../../service/fundTransfer/fundTransferApiService\";\nimport moment from \"moment\";\nimport dateTimeFormat from \"../../../../service/dateTimeService\";\nimport { toINR } from \"../../../../service/numberFormat\";\n\nexport interface IFtHistoryTblPayInMobProps {\n\tdata: Array;\n}\n\nconst FtHistoryTblPayInMob: React.FC = (props) => {\n\t// isAccordianOpen = if row is open then it stores rowIndex otherwise -1\n\tconst [isPopupOpen, setIsPopupOpen] = React.useState();\n\tfunction verifyRes(res: any) {\n\t\t// console.log(res);\n\t}\n\n\tconst PayInVerify = (instNo: string) => {\n\t\tAFTVerifyPayin(verifyRes, { instNo });\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t 0 ? \"ftScrollCont\" : \"\")}\n\t\t\t\tstyle={FTScrollStyle(props.data.length > 0 ? true : false)}\n\t\t\t>\n\t\t\t\t{props.data.map((row, index) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
  • setIsPopupOpen(index)}>\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    ₹{toINR(row.trnsAmt)}
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    {row.bnkName}
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t{isPopupOpen === index && (\n\t\t\t\t\t\t\t\t setIsPopupOpen(undefined)}>\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    ₹{toINR(row.trnsAmt)}
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    {row.bnkName}
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{row.upi && (\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{row.sts.toLowerCase() === \"failed\" && (\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{row.verify === \"true\" && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t PayInVerify(row.instNo)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t\n\t\t
    \n\t);\n};\n\nexport default FtHistoryTblPayInMob;\n","import * as React from \"react\";\nimport Tag from \"../../../../generic/tag\";\nimport { FTChipColorKeyComb, FTScrollStyle } from \"../../ftConstants\";\nimport EdButton from \"../../../../generic/edButton\";\nimport { AFTVerifyPayin } from \"../../../../service/fundTransfer/fundTransferApiService\";\nimport moment from \"moment\";\nimport dateTimeFormat from \"../../../../service/dateTimeService\";\nimport { toINR } from \"../../../../service/numberFormat\";\n\nexport interface IFtHistoryTblPayInDeskProps {\n data: Array;\n}\n\nconst FtHistoryTblPayInDesk: React.FC = (\n props\n) => {\n // isAccordianOpen = if row is open then it stores rowIndex otherwise -1\n const [isAccordianOpen, setIsAccordianOpen] = React.useState();\n\n // used to open/close tab\n function toggleTab(index: number) {\n if (isAccordianOpen === index) {\n setIsAccordianOpen(undefined);\n } else {\n setIsAccordianOpen(index);\n }\n }\n function verifyRes(res: any) {\n //console.log(res);\n }\n\n const PayInVerify = (instNo: string) => {\n AFTVerifyPayin(verifyRes, { instNo });\n };\n\n return (\n
    \n 0 ? \"ftScrollCont\" : \"\")\n }\n style={FTScrollStyle(props.data.length > 0 ? true : false)}\n >\n {props.data.map((row, index) => {\n return (\n toggleTab(index)}\n className={\n \"ft_his_row\" + (isAccordianOpen === index ? \" active\" : \"\")\n }\n key={index}\n >\n
    \n
    \n \n \n
    \n
    {row.bnkName}
    \n
    ₹{toINR(row.trnsAmt)}
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n {row.payMd === \"UPI\" && (\n
    \n \n \n
    \n )}\n {row.ldgrNm && (\n
    \n \n \n
    \n )}\n
    \n \n \n
    \n {row.sts.toLowerCase() === \"failed\" && (\n <>\n
    \n \n \n {row.rmk}\n \n {row.verify === \"true\" && (\n PayInVerify(row.instNo)}\n />\n )}\n
    \n \n )}\n
    \n \n );\n })}\n \n
    \n );\n};\n\nexport default FtHistoryTblPayInDesk;\n","import * as React from \"react\";\nimport Tag from \"../../../../generic/tag\";\nimport { FTChipColorKeyComb, FTScrollStyle } from \"../../ftConstants\";\nimport SlideUpPopup from \"../../../../generic/slideUpPopup\";\nimport { EdLinkButton } from \"../../../../generic/edButton\";\nimport { IcommLimits } from \"../../../../types/components/fundTransfer/ftTypes\";\nimport { dateTimeFormat } from \"../../../../service/dateTimeService\";\nimport moment from \"moment\";\nimport { toINR } from \"../../../../service/numberFormat\";\n\nexport interface IFtHistoryTblPayOutMobProps {\n\tdata: Array;\n\tlim: string | IcommLimits;\n\tasset: string; //acctype either EQ or CO\n}\n\nconst FtHistoryTblPayOutMob: React.FC = (props) => {\n\t// isAccordianOpen = if row is open then it stores rowIndex otherwise -1\n\tconst [isPopupOpen, setIsPopupOpen] = React.useState();\n\n\treturn (\n\t\t
    \n\t\t\t 0 ? \"ftScrollCont\" : \"\")}\n\t\t\t\tstyle={FTScrollStyle(props.data.length > 0 ? true : false)}\n\t\t\t>\n\t\t\t\t{props.data.map((row, index) => {\n\t\t\t\t\tconst date = moment(dateTimeFormat(row.dt, \" \")).format(\"DD MMM 'YYYY\");\n\t\t\t\t\tconst limit = typeof props.lim === \"string\" ? props.lim : parseFloat(props.lim.lmAvl) + parseFloat(props.lim.poAmt);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{row.sts.toLowerCase() === \"payout pending\" ? (\n\t\t\t\t\t\t\t\t
  • setIsPopupOpen(index)}>\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\tRequest Received\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    {row.bnkName}
    \n\t\t\t\t\t\t\t\t\t\t
    ₹{toINR(row.trnsAmt)}
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t
  • setIsPopupOpen(index)}>\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    ₹{toINR(row.trnsAmt)}
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    {row.bnkName}
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{isPopupOpen === index && (\n\t\t\t\t\t\t\t\t setIsPopupOpen(undefined)}>\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t₹{toINR(row.trnsAmt)}\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t{row.sts.toLowerCase() === \"payout pending\" ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tRequest Received\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    {row.bnkName}
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{row.payMd && (\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t{row.upi && (\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t{row.ldgrNm && (\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{row.sts.toLowerCase() === \"payout pending\" && (\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t\n\t\t
    \n\t);\n};\n\nexport default FtHistoryTblPayOutMob;\n","import * as React from \"react\";\nimport Tag from \"../../../../generic/tag\";\nimport { FTChipColorKeyComb, FTScrollStyle } from \"../../ftConstants\";\nimport { EdLinkButton } from \"../../../../generic/edButton\";\nimport { IcommLimits, IftTransHistObj } from \"../../../../types/components/fundTransfer/ftTypes\";\nimport moment from \"moment\";\nimport dateTimeFormat from \"../../../../service/dateTimeService\";\nimport { toINR } from \"../../../../service/numberFormat\";\n\nexport interface IFtHistoryTblPayOutDeskProps {\n\tdata: Array;\n\tlim: string | IcommLimits;\n\tasset: string; //acctype either EQ or CO\n}\n\nconst FtHistoryTblPayOutDesk: React.FC = (props) => {\n\t// isAccordianOpen = if row is open then it stores rowIndex otherwise -1\n\tconst [isAccordianOpen, setIsAccordianOpen] = React.useState();\n\n\t// used to open/close tab\n\tfunction toggleTab(index: number) {\n\t\tif (isAccordianOpen === index) {\n\t\t\tsetIsAccordianOpen(undefined);\n\t\t} else {\n\t\t\tsetIsAccordianOpen(index);\n\t\t}\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t 0 ? \"ftScrollCont\" : \"\")}\n\t\t\t\tstyle={FTScrollStyle(props.data.length > 0 ? true : false)}\n\t\t\t>\n\t\t\t\t{props.data.map((row: IftTransHistObj, index) => {\n\t\t\t\t\tconst limit =\n\t\t\t\t\t\ttypeof props.lim === \"string\"\n\t\t\t\t\t\t\t? parseFloat(props.lim) + parseFloat(row.trnsAmt)\n\t\t\t\t\t\t\t: parseFloat(props.lim.lmAvl) + parseFloat(props.lim.poAmt);\n\t\t\t\t\treturn row.sts.toLowerCase() === \"payout pending\" ? (\n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\tRequest Received\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    {row.bnkName}
    \n\t\t\t\t\t\t\t\t\t\t
    ₹{toINR(row.trnsAmt)}
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{row.ldgrNm && (\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t) : (\n\t\t\t\t\t\t
  • toggleTab(index)} className={\"ft_his_row\" + (isAccordianOpen === index ? \" active\" : \"\")} key={index}>\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    {row.bnkName}
    \n\t\t\t\t\t\t\t\t
    ₹{toINR(row.trnsAmt)}
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{row.payMd && (\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{row.upi && (\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{row.ldgrNm && (\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{row.refNo && (\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{/*
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    */}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t\n\t\t
    \n\t);\n};\n\nexport default FtHistoryTblPayOutDesk;\n","import * as React from \"react\";\nimport { toINR } from \"../../../../service/numberFormat\";\nimport DeviceContext from \"../../../../service/indentifyDevice\";\nimport NavigationTag from \"../../../../generic/navigationTag\";\nimport DatePickerInt from \"../../../orderBook/obContainer/obDatePickerInt\";\nimport { ATransferHisComm, ATransferHisEqPayOut, AEqMaxPayout, ACommFundLimit } from \"../../../../service/fundTransfer/fundTransferApiService\";\nimport moment from \"moment\";\nimport { subDays, addDays } from \"../../../../service/dateTimeService\";\nimport { parsedToken } from \"../../../../service/storageHelper\";\nimport { ATransferHisEqPayin } from \"../../../../service/fundTransfer/fundTransferApiService\";\nimport { Idevice } from \"../../../../types/device\";\nimport FtHistoryTblPayInMob from \"./ftHistoryTblPayInMob\";\nimport FtHistoryTblPayInDesk from \"./ftHistoryTblPayInDesk\";\nimport FtHistoryTblPayOutMob from \"./ftHistoryTblPayOutMob\";\nimport FtHistoryTblPayOutDesk from \"./ftHistoryTblPayOutDesk\";\nimport Loader from \"../../../../generic/loader\";\nimport { jwtToken } from \"../../../../types/genericTypes\";\nimport { IcommLimits } from \"../../../../types/components/fundTransfer/ftTypes\";\nimport TocNoData from \"../../../generic/tocNoData/tocNoData\";\nimport { forwardRef, useImperativeHandle, Ref } from \"react\";\n\nconst handleDevice: Idevice = DeviceContext();\n\nif (handleDevice.isDesktop) {\n\trequire(\"../../../../../assets/scss/components/toc/fundTransfer/ftHistory/ftHistoryDesk.scss\");\n} else if (handleDevice.isMobile) {\n\trequire(\"../../../../../assets/scss/components/toc/fundTransfer/ftHistory/ftHistoryMob.scss\");\n} else {\n\trequire(\"../../../../../assets/scss/components/toc/fundTransfer/ftHistory/ftHistoryTab.scss\");\n}\n\nexport interface IFtHistoryWrapProps {\n\tmatch: any;\n\tref?: any;\n}\n\nconst FtHistoryWrap = forwardRef((props: IFtHistoryWrapProps, ref: Ref<{ getDates: (frmDt: Date, toDate: Date) => void }>) => {\n\tconst [isFixed, setIsFixed] = React.useState(false);\n\n\tconst [toFrmDt, setToFrmDt] = React.useState<{ toDate: Date; frmDt: Date }>({\n\t\ttoDate: addDays(new Date(), 0),\n\t\tfrmDt: subDays(new Date(), 30)\n\t});\n\n\tconst [eqUserLim, setEqUserLim] = React.useState(\"\");\n\n\tconst [coUserLim, setCoUserLim] = React.useState({\n\t\tcolVal: \"\",\n\t\tlmAvl: \"\",\n\t\tlrB: \"\",\n\t\tmrUzd: \"\",\n\t\tpiAmt: \"\",\n\t\tpoAmt: \"\"\n\t});\n\n\tconst [payinHist, setPayinHist] = React.useState>([]); //payin\n\tconst [payoutHist, setPayoutHist] = React.useState>([]); //payout\n\tconst [loader, setLoader] = React.useState(false); //payout\n\tconst pToken: jwtToken | null = parsedToken();\n\n\tconst accType = pToken && pToken.accType !== \"COMEQ\" ? pToken?.accType : props.match.params.asset.toUpperCase();\n\n\tconst mode = props.match.params.funds;\n\n\tconst tagList = [\n\t\t{ value: \"added\", display: \"Added Funds\", href: \"added\" },\n\t\t{ value: \"withdrawn\", display: \"Withdrawn Funds\", href: \"withdrawn\" }\n\t];\n\n\tuseImperativeHandle(ref, () => ({\n\t\tgetDates(frmDt: Date, toDate: Date) {\n\t\t\tsetToFrmDt({ frmDt, toDate });\n\t\t\tgetFundHistory(frmDt, toDate);\n\t\t}\n\t}));\n\n\tconst getDates = (frmDt: Date, toDate: Date) => {\n\t\tsetToFrmDt({ frmDt, toDate });\n\t\tgetFundHistory(frmDt, toDate);\n\t};\n\tconst commFundLimitRes = (res: any) => {\n\t\tif (res.data) {\n\t\t\tsetCoUserLim(res.data.lmt);\n\t\t}\n\t};\n\n\tfunction maxpayoutCallback(res: any) {\n\t\tif (res.data) {\n\t\t\tif (res.data) {\n\t\t\t\tsetEqUserLim(res.data.maxPytAmt);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst transferHisRes = (res: any) => {\n\t\tsetLoader(false);\n\n\t\tif (res.data) {\n\t\t\tmode === \"added\" ? setPayinHist(res.data.trnSt) : setPayoutHist(res.data.trnSt);\n\t\t} else {\n\t\t\tsetPayinHist([]);\n\t\t\tsetPayoutHist([]);\n\t\t}\n\t};\n\n\tconst getFundHistory = (frmDt: Date, toDate: Date) => {\n\t\tsetPayinHist([]);\n\t\tsetPayoutHist([]);\n\t\tsetLoader(true);\n\t\t// const accType = pToken && pToken.accType !== \"COMEQ\" ? pToken?.accType : props.match.params.asset.toUpperCase();\n\t\tif (pToken) {\n\t\t\tswitch (accType) {\n\t\t\t\tcase \"CO\":\n\t\t\t\t\t// api call for commodity if\n\t\t\t\t\t// either account type is CO or\n\t\t\t\t\t// account type if COMEQ and Commodity is selected\n\t\t\t\t\tATransferHisComm(transferHisRes, {\n\t\t\t\t\t\trTyp: mode === \"added\" ? \"PAYIN\" : \"PAYOUT\",\n\t\t\t\t\t\tsDt: moment(new Date(frmDt)).format(\"MM/DD/YYYY\"),\n\t\t\t\t\t\teDt: moment(new Date(toDate)).format(\"MM/DD/YYYY\")\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"EQ\":\n\t\t\t\t\t// api call for equity if\n\t\t\t\t\t// either account type is EQ or\n\t\t\t\t\t// account type if COMEQ and Equity is selected\n\t\t\t\t\tif (mode === \"added\") {\n\t\t\t\t\t\tATransferHisEqPayin(transferHisRes, {\n\t\t\t\t\t\t\tsDt: moment(new Date(frmDt)).format(\"MM/DD/YYYY\"),\n\t\t\t\t\t\t\teDt: moment(new Date(toDate)).format(\"MM/DD/YYYY\")\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tATransferHisEqPayOut(transferHisRes, {\n\t\t\t\t\t\t\tsDt: moment(new Date(frmDt)).format(\"MM/DD/YYYY\"),\n\t\t\t\t\t\t\teDt: moment(new Date(toDate)).format(\"MM/DD/YYYY\")\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t};\n\tReact.useEffect(() => {\n\t\tAEqMaxPayout(maxpayoutCallback);\n\t\tACommFundLimit(commFundLimitRes);\n\t}, [props.match.params.asset]);\n\n\tReact.useEffect(() => {\n\t\tgetFundHistory(toFrmDt.frmDt, toFrmDt.toDate);\n\t}, [props.match.params.funds]);\n\n\tconst onContainerScroll = (e: React.UIEvent) => {\n\t\t// console.dir((e.target as HTMLElement).scrollTop);\n\t\t// if scrolltop is greater than 78 then fix the header\n\t\t(e.target as HTMLElement).scrollTop > 60 ? !isFixed && setIsFixed(true) : isFixed && setIsFixed(false);\n\t};\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t{props.match.params.asset && (\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    Cash Available

    \n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{toINR(props.match.params.asset === \"eq\" ? eqUserLim : coUserLim.lmAvl, 2)}\n\t\t\t\t\t\t

    \n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\t {}} />\n\n\t\t\t\t{!handleDevice.isMobile && }\n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\t{(payinHist || payoutHist) && !loader ? (\n\t\t\t\t\t(payinHist.length && mode === \"added\") || (mode !== \"added\" && payoutHist.length) ? (\n\t\t\t\t\t\tmode === \"added\" ? (\n\t\t\t\t\t\t\t!handleDevice.isMobile ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tpToken &&\n\t\t\t\t\t\t\t(!handleDevice.isMobile ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t)\n\t\t\t\t\t) : (\n\t\t\t\t\t\t {}} showClrBtn={false} />\n\t\t\t\t\t)\n\t\t\t\t) : (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t
    \n\t\t
    \n\t);\n});\n\nexport default FtHistoryWrap;\n","import * as React from \"react\";\nimport { Idevice } from \"./../../../types/device\";\nimport DeviceContext from \"./../../../service/indentifyDevice\";\nimport FtContainerDesk from \"../ftContainer/ftContainerDesk\";\nimport FtContainerTab from \"../ftContainer/ftContainerTab\";\nimport FtContainerMob from \"../ftContainer/ftContainerMob\";\nimport FtHistoryWrap from \"./ftHistory/ftHistoryWrap\";\nimport { RouteChildrenProps } from \"react-router-dom\";\nimport DatePickerInt from \"../../orderBook/obContainer/obDatePickerInt\";\n\nexport interface IFtHistoryContProps {}\n\nconst FtHistoryCont: React.FC = (props) => {\n\tconst deviceState: Idevice = DeviceContext();\n\tconst getDates = (frmDt: Date, toDate: Date) => {\n\t\tchildRef.current?.getDates(frmDt, toDate);\n\t};\n\tconst childRef = React.useRef<{ getDates: (frmDt: Date, toDate: Date) => void }>(null);\n\tconst inst = ;\n\n\tconst DateComp = ;\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t{deviceState.isDesktop ? (\n\t\t\t\t\t\n\t\t\t\t) : deviceState.isTablet ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default FtHistoryCont;\n","import * as React from \"react\";\nimport DeviceContext from \"./../../../service/indentifyDevice\";\nexport interface IFtUnderMaintenanceProps {\n\tpayinMaintenance: string;\n}\n\nif (DeviceContext().isDesktop) {\n\trequire(\"../../../../assets/scss/components/toc/fundTransfer/ftMaintenance/ftUnderMaintenanceDsk.scss\");\n} else if (DeviceContext().isMobile) {\n\trequire(\"../../../../assets/scss/components/toc/fundTransfer/ftMaintenance/ftUnderMaintenanceMob.scss\");\n} else {\n\trequire(\"../../../../assets/scss/components/toc/fundTransfer/ftMaintenance/ftUnderMaintenanceTab.scss\");\n}\n\nconst FtUnderMaintenance: React.FC = (props) => {\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t

    We are currently processing requests

    \n\t\t\t

    Check again after {props.payinMaintenance}

    \n\t\t
    \n\t);\n};\n\nexport default FtUnderMaintenance;\n","import * as React from \"react\";\nimport DeviceContext from \"../../../../service/indentifyDevice\";\n\nif (DeviceContext().isDesktop) {\n\trequire(\"../../../../../assets/scss/components/toc/fundTransfer/ftAddFund/ftEdelBnkDtlDesk.scss\");\n} else if (DeviceContext().isMobile) {\n\trequire(\"../../../../../assets/scss/components/toc/fundTransfer/ftAddFund/ftEdelBnkDtlMob.scss\");\n} else {\n\trequire(\"../../../../../assets/scss/components/toc/fundTransfer/ftAddFund/ftEdelBnkDtlTab.scss\");\n}\n\nexport interface IFtEdelBnkDtlProps {\n\tdpName: string;\n\tbnkName: string;\n\tbrcName: string;\n\tbnkAccTyp: string;\n\tifsc: string;\n\tusrAccNo: string;\n}\n\nconst FtEdelBnkDtl: React.FC = (props) => {\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    We don’t have instant fund transfer facility available for selected bank currently
    \n\t\t\t\t

    You can transfer fund to your Nuvama account directly through NEFT/RTGS/ IMPS

    \n\t\t\t\t

    \n\t\t\t\t\tBeneficiary Name\n\t\t\t\t\t{props.dpName}\n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t\tBeneficiary Bank\n\t\t\t\t\t{props.bnkName}\n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t\tBank Branch\n\t\t\t\t\t{props.brcName}\n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t\tAccount Type\n\t\t\t\t\t{props.bnkAccTyp}\n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t\tIFSC\n\t\t\t\t\t{props.ifsc}\n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t\tBeneficiary A/C No.\n\t\t\t\t\t{props.usrAccNo}\n\t\t\t\t

    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default FtEdelBnkDtl;\n","import * as React from \"react\";\nimport RadioButton from \"../../../../generic/radioButton\";\nimport TocDropdown from \"../../../../generic/tocDropdown\";\nimport FtConfirmBtn from \"../../ftConfirmBtn\";\nimport DeviceContext from \"../../../../service/indentifyDevice\";\nimport { Idevice } from \"../../../../types/device\";\nimport FtEdelBnkDtl from \"./ftEdelBnkDtl\";\nimport {\n AFtAddfundIn,\n AFTPayInUPIIntentStatus,\n} from \"../../../../service/fundTransfer/fundTransferApiService\";\nimport { IPayIn } from \"../../ftInterfaces\";\nimport {\n IftPayInBankListDetails,\n IPayInLedger,\n IftPayInBankDetails,\n IPayinUPIDet,\n IErrorHandler,\n} from \"../../../../types/components/fundTransfer/ftTypes\";\nimport { useHistory } from \"react-router-dom\";\nimport { EdLinkButton } from \"../../../../generic/edButton\";\nimport indexer, { IListObj } from \"../../../../types/genericTypes\";\nimport { FtInpField } from \"../../generic/ftInpField\";\nimport { ftFormValidate } from \"./../../generic/ftFormValidation\";\nimport { ftHelpDetails, FTRegex } from \"../../ftConstants\";\n\nexport interface IFtEquityFormProps {\n data: IftPayInBankListDetails;\n totalLim: string;\n}\n\nconst FtEquityForm: React.FC = (props) => {\n const history = useHistory();\n\n const UPImaxAmount = 1000000;\n // list of banks linked to the trading account\n const banksList: Array = props.data.bnkAcs.map(\n (d: IftPayInBankDetails, index: number) => ({\n value: index,\n display: d.bnkName + \" - \" + d.bnkAccNo,\n primary: d.isPrimary,\n })\n );\n\n const paymodes: Array = [\"IB\", \"UPI\", \"INTENT\", \"QR\", \"EC\"];\n //list of upi id's linked with the banks\n // const upiList: Array = props.data.upis.map((d: IPayinUPIDet, index: number) => ({ value: index, display: d.upi }));\n\n //type of device tablet/mobile/desktop\n const handleDevice: Idevice = DeviceContext();\n\n //find android device\n const isAndroidMobile: boolean =\n handleDevice.isMobile && navigator.userAgent.match(/Android/i)\n ? true\n : false;\n const primaryBank = props.data.bnkAcs.find((bnk) => {\n return bnk.isPrimary === true;\n });\n\n //form field values\n const [userInput, setUserInput] = React.useState<{\n amount: string | number;\n ledger: string;\n bank: IftPayInBankDetails | null;\n mode: string;\n upi: string;\n selectedUPIObj: IPayinUPIDet | null;\n intentDetails: {\n url: string;\n tr: string;\n };\n }>({\n amount: \"\",\n ledger: props.data.ldgrs!.length > 0 ? props.data.ldgrs![0].ldgrNm : \"\",\n bank: props.data.bnkAcs.length > 0 ? primaryBank || null : null, //select always a primary bank -> first one\n mode: selectlastPayMode(props.data.bnkAcs[0]),\n upi: \"\",\n selectedUPIObj: null,\n intentDetails: {\n url: \"\",\n tr: \"\",\n },\n });\n\n const amountErrMsgs: indexer = {\n min: \"Minimum transfer amount is Rs.1\",\n max:\n userInput.mode === \"IB\"\n ? undefined\n : \"You can only use Net Banking for amount exceeding Rupees 1 Lakh\",\n };\n\n const upiErrMsgs: indexer = {\n regEx: \"UPI ID should be in the format name@bankname.\",\n };\n\n //callback interval for fetching upi intent transaction status\n let pgCallbackInt: any = \"\";\n\n const [isFormSubmitted, setIsFormSubmitted] = React.useState(true);\n\n const isFormValid = React.useRef();\n\n //select the last paymode by default\n function selectlastPayMode(bank: IftPayInBankDetails) {\n let paymode: string = \"\";\n\n if (bank.lstPayMode) {\n if (bank.lstPayMode === 0 && bank.fndTrsAvl) {\n //net banking\n paymode = paymodes[0];\n } else if (\n ((bank.upiAvl || bank.upiintent) && bank.lstPayMode === 1) ||\n (bank.lstPayMode === 2 && handleDevice.isMobile)\n ) {\n //if last paymode(2) is UPI QR and On transaction is happening on mobile choose UPI intent:UPI paymode\n //intent:upi\n isAndroidMobile && bank.upiintent\n ? (paymode = paymodes[2])\n : bank.upiAvl\n ? (paymode = paymodes[1])\n : (paymode = \"\");\n } else if (bank.upiqr && bank.lstPayMode === 2) {\n //upi qr\n paymode = paymodes[3];\n }\n }\n if (!paymode) {\n if (bank.fndTrsAvl) {\n //net banking\n paymode = paymodes[0];\n } else if (bank.upiAvl || bank.upiintent) {\n //intent:upi\n isAndroidMobile && bank.upiintent\n ? (paymode = paymodes[2])\n : bank.upiAvl\n ? (paymode = paymodes[1])\n : (paymode = \"\");\n } else if (bank.upiqr && handleDevice.isDesktop) {\n //upi qr\n paymode = paymodes[3];\n } else {\n paymode = paymodes[4]; //ecollect\n }\n }\n\n return paymode;\n }\n\n function onRadioSelect(val: string | number) {\n // console.log(val);\n }\n\n //error state handlers\n const [pgAPIRes, setpgAPIRes] = React.useState<{\n errCd: string;\n errMsg: string;\n upiId: string;\n }>({ errCd: \"\", errMsg: \"\", upiId: \"\" });\n let validationstatus: IErrorHandler = {\n ErrorState: true,\n key: \"required\",\n name: \"\",\n };\n const [inpValidations, setInpValidations] = React.useState<{\n [x: string]: IErrorHandler;\n }>({\n amount: { ...validationstatus, name: \"amount\" },\n upi: { ...validationstatus, name: \"upi\" },\n });\n //form submission error handlers\n\n const [submitErr, setSubmitErr] = React.useState<{\n errMsg: string;\n errCd: string;\n actCd: string;\n }>({ errMsg: \"\", errCd: \"\", actCd: \"\" });\n\n function validatePayInFrom(resetErr: boolean, errStateFlag: boolean = false) {\n const payinForm = document.querySelector(\"#payInForm\") as HTMLFormElement;\n let tempErrObj: { [x: string]: IErrorHandler } = inpValidations;\n\n for (let i = 0; i < payinForm.elements.length; i++) {\n const element: HTMLInputElement = payinForm.elements[\n i\n ] as HTMLInputElement;\n if (element.nodeName === \"INPUT\" && element.dataset.validation) {\n if (!resetErr) {\n validationstatus = ftFormValidate(element, errStateFlag);\n if (validationstatus.name) {\n tempErrObj = {\n ...tempErrObj,\n [validationstatus.name]: validationstatus,\n };\n }\n }\n }\n }\n\n setInpValidations(tempErrObj);\n }\n function onFormFieldChange(key: string, value: any) {\n setUserInput({ ...userInput, [key]: value });\n validatePayInFrom(false);\n }\n //payment mode change\n function onModeChange(mode: string) {\n setUserInput({ ...userInput, mode });\n //reset submit form error\n setSubmitErr({ errCd: \"\", errMsg: \"\", actCd: \"\" });\n }\n\n function HandleState(resp: any) {\n const statusURL =\n \"/fund-transfer/add-funds/status?status=\" + JSON.stringify(resp);\n history.push(statusURL);\n }\n function PingForIntentTransStat(res: any) {\n if (res.data) {\n HandleState(res.data);\n clearInterval(pgCallbackInt);\n }\n }\n\n function FtAddfundInRes(res: any) {\n if (res.data) {\n if (userInput.mode === \"INTENT\") {\n let splitUrl: Array = res.data.url.split(\"&\"),\n tr: string = \"\";\n\n for (var i = 0; i < splitUrl.length; i++) {\n if (splitUrl[i].indexOf(\"tr\") >= 0) {\n tr = splitUrl[i].split(\"=\")[1];\n }\n }\n setUserInput({\n ...userInput,\n intentDetails: { url: res.data.url, tr: tr },\n });\n setTimeout(() => {\n document.getElementById(\"triggerIntentClick\")?.click();\n }, 350);\n pgCallbackInt = setInterval(() => {\n AFTPayInUPIIntentStatus(PingForIntentTransStat, tr);\n }, 15000);\n // console.log(pgCallbackInt);\n if (pgCallbackInt) {\n setTimeout(function () {\n clearInterval(pgCallbackInt);\n const timeOutURL =\n \"/fund-transfer/add-funds/status?status=\" +\n JSON.stringify({\n bankrefno: \"\",\n customrefno: \"\",\n accountno: userInput.bank?.bnkAccNo,\n amount: userInput.amount,\n status: 0,\n bankname: userInput.bank?.bnkName,\n ru: userInput.amount,\n upi: \"\",\n paymode: \"INTENT\",\n remarks: \"Request Timed Out\",\n createddate: \"\",\n serverTime: new Date(),\n bodMarginMessage: \"\",\n });\n history.push(timeOutURL);\n }, 300000);\n }\n } else {\n // history.push(res.data.url);\n window.location.href = res.data.url;\n }\n } else if (res.error) {\n setpgAPIRes({ ...res.error, upiId: userInput.upi });\n if (res.error.errCd === \"ETRD00018\") {\n setInpValidations({\n ...inpValidations,\n upi: { ...validationstatus, name: \"upi\", key: res.error.errMsg },\n });\n } else {\n setSubmitErr(res.error);\n }\n }\n }\n\n function submitForm(e: React.MouseEvent) {\n e.preventDefault();\n setIsFormSubmitted(true);\n //reset submit form error\n setSubmitErr({ errCd: \"\", errMsg: \"\", actCd: \"\" });\n if (userInput.bank) {\n const data: IPayIn = {\n brcName: userInput.bank.brcName,\n bnkCode: userInput.bank.bnkCode,\n amt: +userInput.amount,\n bnkAccNo: userInput.bank.bnkAccNo,\n bnkName: userInput.bank.bnkName,\n paymtMd: userInput.mode as string,\n upi: userInput.mode === \"UPI\" ? (userInput.upi as string) : \"\",\n isPrimUpi: false,\n ldgrNm: userInput.ledger as string,\n };\n AFtAddfundIn(FtAddfundInRes, data);\n }\n }\n function updateFormSubmit(upiErrorMode: IErrorHandler) {\n var paymode = userInput.mode\n ? userInput.mode.toLowerCase()\n : userInput.mode;\n if (\n paymode &&\n ((paymode === \"upi\" && inpValidations.upi.ErrorState === true) ||\n inpValidations.amount.ErrorState === true)\n ) {\n isFormValid.current = false;\n } else {\n isFormValid.current = true;\n }\n\n if (isFormValid.current && isFormValid.current === true) {\n setIsFormSubmitted(false);\n } else {\n setIsFormSubmitted(true);\n }\n }\n\n React.useEffect(() => {\n //default selection of upi ID\n //map matched UPI id's of each object to array of banks obj key upiList\n\n if (props.data.upis) {\n props.data.bnkAcs.map((val: IftPayInBankDetails, i: number) => {\n const matchUpi = props.data.upis.find((upiList) => {\n return upiList.bankaccountnumber === val.bnkAccNo;\n });\n\n // if (!props.data.bnkAcs[i].upiList) props.data.bnkAcs[i].upiList = [];\n\n if (matchUpi) {\n props.data.bnkAcs[i].upiList.push(matchUpi);\n }\n return true;\n });\n }\n // eslint-disable-next-line\n }, [props.data.bnkAcs]);\n\n React.useEffect(() => {\n //selecting upi id from the upiList if avaialble for the selected bank\n //which are likely happens when there is change in bank and pay mode\n let PrimaryUPiId: number | null = null;\n if (userInput.mode === \"UPI\" && userInput.bank?.upiList.length) {\n PrimaryUPiId =\n userInput.bank.upiList.findIndex((val: IPayinUPIDet) => {\n return val.isprimary;\n }) || 0;\n }\n setUserInput({\n ...userInput,\n upi:\n PrimaryUPiId !== null && userInput.bank\n ? userInput.bank.upiList[PrimaryUPiId].upi\n : \"\",\n });\n //upi Id validation\n\n const UpiErrState: IErrorHandler =\n PrimaryUPiId != null\n ? { ErrorState: false, key: \"\", name: \"upi\" }\n : { ErrorState: true, key: \"required\", name: \"upi\" };\n //temp inpValidations state - set value\n let tempInpValidation: { [x: string]: IErrorHandler } = {\n ...inpValidations,\n upi: UpiErrState,\n };\n\n //amount field validation\n if (userInput.amount) {\n const amtValidation = ftFormValidate(\n document.getElementsByName(\"amount\")[0] as HTMLInputElement,\n true\n );\n tempInpValidation = {\n upi: UpiErrState,\n amount: amtValidation,\n };\n }\n //set state\n setInpValidations(tempInpValidation);\n\n ((userInput.bank && userInput.bank.bankid === -1) ||\n userInput.mode === \"EC\") &&\n setUserInput({ ...userInput, amount: \"\" });\n\n // eslint-disable-next-line\n }, [userInput.bank, userInput.mode]);\n\n React.useEffect(() => {\n updateFormSubmit(inpValidations.upi);\n // eslint-disable-next-line\n }, [inpValidations]);\n\n return (\n <>\n
    \n \n
    \n \n
    \n {/* user ledgers */}\n {props.data.ldgrs && props.data.ldgrs.length > 0 && (\n
    \n \n
      \n {props.data.ldgrs.map((item: IPayInLedger) => (\n onRadioSelect(item.ldgrId)}\n >\n \n val.ldgrNm === userInput.ledger\n )\n ].ldgrId\n }\n onChange={() =>\n setUserInput({ ...userInput, ledger: item.ldgrNm })\n }\n moduleName=\"fundTransfer\"\n />\n \n ))}\n
    \n
    \n )}\n {/* user bank list */}\n {props.data.bnkAcs.length > 0 && (\n
    \n \n {\n setUserInput({\n ...userInput,\n bank: props.data.bnkAcs[value as number],\n mode: selectlastPayMode(props.data.bnkAcs[value as number]),\n });\n }}\n showPrimary\n isSearchable={false}\n />\n
    \n )}\n {/* paymodes start */}\n {props.data.bnkAcs && props.data.bnkAcs.length > 0 && (\n <>\n {userInput.bank &&\n userInput.bank.bankid !== -1 &&\n (userInput.bank.fndTrsAvl ||\n userInput.bank.upiAvl ||\n userInput.bank.upiintent ||\n userInput.bank.upiqr) && (\n <>\n
    \n \n
      \n {/* internet banking */}\n {userInput.bank && userInput.bank.fndTrsAvl ? (\n
    • \n onModeChange(\"IB\")}\n moduleName=\"fundTransfer\"\n />\n
    • \n ) : (\n userInput.bank &&\n userInput.bank.upiAvl && (\n
    • \n onModeChange(\"EC\")}\n moduleName=\"fundTransfer\"\n />\n
    • \n )\n )}\n {/* show upi mode if avaialble and in android device if upi intent is not available */}\n {!(\n isAndroidMobile &&\n userInput.bank &&\n userInput.bank.upiintent\n ) &&\n userInput.bank &&\n userInput.bank.upiAvl && (\n
    • \n onModeChange(\"UPI\")}\n moduleName=\"fundTransfer\"\n />\n
    • \n )}\n {/* intent mode only for android */}\n {isAndroidMobile &&\n userInput.bank &&\n userInput.bank.upiintent && (\n
    • \n onModeChange(\"INTENT\")}\n moduleName=\"fundTransfer\"\n />\n
    • \n )}\n {/* QR mode only in desktop web */}\n\n {!handleDevice.isMobile &&\n userInput.bank &&\n userInput.bank.upiqr && (\n
    • \n onModeChange(\"QR\")}\n moduleName=\"fundTransfer\"\n />\n
    • \n )}\n
    \n
    \n\n {userInput.mode === \"UPI\" && (\n \n {userInput.bank && userInput.bank.upiList.length ? (\n <>\n \n\n ({\n value: index,\n display: d.upi,\n primary: d.isprimary,\n })\n )}\n onSelect={(value) => {\n if (userInput.bank) {\n setUserInput({\n ...userInput,\n upi: userInput.bank.upiList[value as number]\n .upi,\n selectedUPIObj:\n userInput.bank.upiList[value as number],\n });\n }\n }}\n showPrimary\n showClose\n isSearchable={false}\n />\n \n ) : (\n <>\n \n {inpValidations.upi.key &&\n userInput.upi === pgAPIRes.upiId &&\n pgAPIRes &&\n pgAPIRes.errCd === \"ETRD00018\" && (\n
    \n

    \n {pgAPIRes.errMsg}\n

    \n
    \n )}\n \n )}\n
    \n )}\n {submitErr.errMsg && (\n
    \n

    \n {submitErr.errMsg}\n

    \n
    \n )}\n \n )}\n {/* show edelweiss beneficiary details if net banking is not supported */}\n {props.data.bnkAcs &&\n ((userInput.bank &&\n !userInput.bank.fndTrsAvl &&\n userInput.mode === \"EC\") ||\n (userInput.bank && userInput.bank.bankid === -1)) ? (\n \n ) : (\n <>\n
    \n \n \n Hidden\n \n
    \n
    \n

    \n In case the bank account mentioned is incorrect; you are\n requested to contact customer service. Write to{\" \"}\n \n {ftHelpDetails.email}\n \n

    \n
    \n \n )}\n \n )}\n
    \n {userInput.intentDetails.url && handleDevice.isMobile && (\n \n
    \n
    \n \n \n \n
    \n

    \n Awaiting approval of transfer request in the selected payment’s\n app\n

    \n \n
    \n
    \n )}\n \n \n );\n};\n\nexport default FtEquityForm;\n","import * as React from \"react\";\nimport FtEquityForm from \"./ftPayInForm/ftEquityForm\";\nimport { parsedToken } from \"../../../service/storageHelper\";\nimport { ACommFundLimit, AEqMaxPayout } from \"../../../service/fundTransfer/fundTransferApiService\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport { IftPayInBankListDetails, IcommLimits } from \"../../../types/components/fundTransfer/ftTypes\";\nimport { jwtToken, IListObj } from \"../../../types/genericTypes\";\nimport { FtPayInCashHeader } from \"./ftPayInCashHeader\";\nimport RadioButton from \"../../../generic/radioButton\";\nimport \"../../../../assets/scss/components/toc/fundTransfer/ftAddFund/ftAddFund.scss\";\nimport { Idevice } from \"../../../types/device\";\nimport { useQuery } from \"../../../service/urlHelper\";\n\nconst hndlDevice: Idevice = DeviceContext();\nif (hndlDevice.isDesktop) {\n\trequire(\"../../../../assets/scss/components/toc/fundTransfer/ftAddFund/ftAddFundDesk.scss\");\n} else if (hndlDevice.isMobile) {\n\trequire(\"../../../../assets/scss/components/toc/fundTransfer/ftAddFund/ftAddFundMob.scss\");\n} else {\n\trequire(\"../../../../assets/scss/components/toc/fundTransfer/ftAddFund/ftAddFundTab.scss\");\n}\n\nexport interface IFtPayInFormWrapperProps {\n\tdata?: IftPayInBankListDetails;\n\tcommPayInURL?: string;\n\tmaintenanceNode?: React.ReactNode;\n}\n\nexport function FtPayInFormWrapper(props: IFtPayInFormWrapperProps) {\n\tconst pToken: jwtToken | null = parsedToken();\n\tconst queryAsset = useQuery().get(\"asset\");\n\tlet defaultAssetSel: string = pToken ? (pToken.accType === \"COMEQ\" ? \"EQ\" : pToken.accType) : \"EQ\";\n\n\tif (pToken?.accType === \"COMEQ\") {\n\t\tif (queryAsset && (queryAsset.toUpperCase() === \"EQ\" || queryAsset.toUpperCase() === \"CO\")) {\n\t\t\tdefaultAssetSel = queryAsset.toUpperCase();\n\t\t}\n\t}\n\n\t//Cash available in EQ or CO or Both\n\t// for equity max payout api will be used\n\t//for comm account limits APi data will be used\n\n\tconst [eqUserLim, setEqUserLim] = React.useState(\"\");\n\tconst [coUserLim, setCoUserLim] = React.useState({\n\t\tcolVal: \"\",\n\t\tlmAvl: \"\",\n\t\tlrB: \"\",\n\t\tmrUzd: \"\",\n\t\tpiAmt: \"\",\n\t\tpoAmt: \"\"\n\t});\n\n\tconst assetList: Array = [\n\t\t{ value: \"EQ\", display: \"Equity\" },\n\t\t{ value: \"CO\", display: \"Commodity\" }\n\t];\n\n\tconst eqMaxPayout = (res: any) => {\n\t\tif (res.data) {\n\t\t\t// setState({ eqCash: res.data.cshAvl });\n\t\t\tsetEqUserLim(res.data.maxPytAmt);\n\t\t}\n\t};\n\tconst commFundLimitRes = (res: any) => {\n\t\tif (res.data) {\n\t\t\t// setState({ commCash: res.data.lmt.lmAvl });\n\t\t\tsetCoUserLim(res.data.lmt);\n\t\t}\n\t};\n\n\tconst getFundLimit = () => {\n\t\t//both the API's will be called for COMMEQ Account\n\t\tif (pToken && pToken.accType !== \"EQ\") {\n\t\t\tACommFundLimit(commFundLimitRes);\n\t\t}\n\t\tif (pToken && pToken.accType !== \"CO\") {\n\t\t\tAEqMaxPayout(eqMaxPayout);\n\t\t}\n\t};\n\tfunction init() {\n\t\tgetFundLimit();\n\t\treturn defaultAssetSel;\n\t}\n\n\tfunction reducer(_prevState: any, newState: any) {\n\t\treturn newState;\n\t}\n\t//selected asset either EQ or CO\n\n\tconst [asset, setAsset] = React.useReducer(reducer, defaultAssetSel, init);\n\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t\t\n\n\t\t\t\t{/*
    */}\n\t\t\t\t{pToken && pToken.accType === \"COMEQ\" && (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t{assetList.map((item) => (\n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t setAsset(item.value as string)}\n\t\t\t\t\t\t\t\t\t\tmoduleName=\"fundTransfer\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t)}\n\n\t\t\t\t{pToken && props.data && (pToken.accType === \"EQ\" || asset === \"EQ\") && (\n\t\t\t\t\t// Show equity form if\n\t\t\t\t\t// either account type is EQ or\n\t\t\t\t\t// account type if COMEQ and Equity is selected\n\t\t\t\t\t<>{props.maintenanceNode ? props.maintenanceNode : }\n\t\t\t\t)}\n\t\t\t\t{pToken && props.commPayInURL && (pToken.accType === \"CO\" || asset === \"CO\") && (\n\t\t\t\t\t// Show commodity form if\n\t\t\t\t\t// either account type is CO or\n\t\t\t\t\t// account type if COMEQ and Commodity is selected\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t\t{/* */}\n\t\t\t
    \n\t\t\n\t);\n}\n\nexport default FtPayInFormWrapper;\n","import * as React from \"react\";\nimport FtUnderMaintenance from \"../ftMaintenance/ftUnderMaintenance\";\nimport { Idevice } from \"../../../types/device\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\nimport FtContainerDesk from \"../ftContainer/ftContainerDesk\";\nimport FtContainerTab from \"../ftContainer/ftContainerTab\";\nimport FtContainerMob from \"../ftContainer/ftContainerMob\";\nimport FtPayInFormWrapper from \"./ftPayInFormWrapper\";\nimport { AEqFundBankDetils, AFTCommFetchPayInURL } from \"../../../service/fundTransfer/fundTransferApiService\";\nimport { IftPayInBankListDetails, IftPayInBankDetails } from \"../../../types/components/fundTransfer/ftTypes\";\nimport { useQuery } from \"../../../service/urlHelper\";\nimport { useHistory } from \"react-router-dom\";\nimport ftURLConfig from \"../../../../config/toc/ftURLConfig\";\nimport { SLoader } from \"../../../generic/loader\";\nimport LoginService from \"../../../service/login/loginService\";\nimport NoDataContainer from \"../../../generic/noDataContainer\";\n\nexport enum EFtEquityFormFields {\n\tAMOUNT = \"amount\",\n\tLEDGER = \"ledger\",\n\tBANK = \"bank\",\n\tMODE = \"mode\",\n\tUPI = \"upi\"\n}\n\ninterface IFtPayInContProps {}\n\nconst FtPayInCont: React.FunctionComponent = (props) => {\n\t// const LoginService.pToken: jwtToken | null = parsedToken();\n\tconst deviceState: Idevice = DeviceContext();\n\tconst query = useQuery(),\n\t\thistory = useHistory();\n\n\tconst [commPayinURL, setCommPayinURL] = React.useState();\n\tconst [eqBankDetails, setEqBankDetails] = React.useState();\n\n\tconst eqFundBankDetilsRes = (res: any) => {\n\t\tif (res.data) {\n\t\t\tlet bnkDetails: IftPayInBankListDetails = res.data;\n\n\t\t\tif (bnkDetails.bnkAcs.length > 0) {\n\t\t\t\tbnkDetails.bnkAcs[0].isPrimary = true; //if latest flag is not available for any of the bank set first bank as primary bank\n\t\t\t}\n\t\t\tbnkDetails.bnkAcs.map((val: IftPayInBankDetails, index: number) => {\n\t\t\t\tif (val.latest && index > 0) {\n\t\t\t\t\tbnkDetails.bnkAcs[0].isPrimary = false;\n\t\t\t\t\tbnkDetails.bnkAcs[index].isPrimary = true;\n\t\t\t\t}\n\t\t\t\tbnkDetails.bnkAcs[index].upiList = [];\n\n\t\t\t\treturn true;\n\t\t\t});\n\n\t\t\tsetEqBankDetails(bnkDetails);\n\t\t\tif (LoginService.pToken && LoginService.pToken.accType !== \"COMEQ\") {\n\t\t\t\t// bnkDetails.payinMntFlg = true;\n\t\t\t\tsetInst(\n\t\t\t\t\tbnkDetails.payinMntFlg ? (\n\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\thdnlPayin();\n\t\t\t}\n\t\t} else {\n\t\t\tif (LoginService.pToken && LoginService.pToken.accType !== \"COMEQ\") {\n\t\t\t\tsetInst();\n\t\t\t}\n\t\t}\n\t};\n\tconst getCommPayinURL = (res: any) => {\n\t\tif (res.data) {\n\t\t\tsetCommPayinURL(res.data.url);\n\t\t\tif (LoginService.pToken && LoginService.pToken.accType !== \"COMEQ\") {\n\t\t\t\tsetInst();\n\t\t\t} else {\n\t\t\t\thdnlPayin();\n\t\t\t}\n\t\t}\n\t};\n\tfunction hdnlPayin() {\n\t\tif (commPayinURL && eqBankDetails && LoginService.pToken && LoginService.pToken.accType === \"COMEQ\") {\n\t\t\t// eqBankDetails.payinMntFlg = true;\n\t\t\tif (eqBankDetails.payinMntFlg) {\n\t\t\t\t// setInst();\n\t\t\t\tsetInst(\n\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tsetInst();\n\t\t\t}\n\t\t}\n\t}\n\tfunction init() {\n\t\tif (query.get(\"status\")) {\n\t\t\twindow.history.pushState({}, \"\", window.location.href.split(\"?\")[0]);\n\t\t\tconst url: string = ftURLConfig.pageURL.payinStatus + query.get(\"status\");\n\t\t\thistory.push(url);\n\t\t} else {\n\t\t\tAEqFundBankDetils(eqFundBankDetilsRes);\n\t\t\tAFTCommFetchPayInURL(getCommPayinURL);\n\t\t}\n\t\treturn SLoader(20, \"blue\");\n\t}\n\n\tfunction reducer(_prevState: React.ReactNode, newState: React.ReactNode) {\n\t\treturn newState;\n\t}\n\t//selected asset either EQ or CO\n\n\tconst [inst, setInst] = React.useReducer(reducer, <>, init);\n\n\tReact.useEffect(() => {\n\t\thdnlPayin();\n\t\t// eslint-disable-next-line\n\t}, [commPayinURL, eqBankDetails]);\n\n\treturn (\n\t\t
    \n\t\t\t{deviceState.isDesktop ? (\n\t\t\t\t\n\t\t\t) : deviceState.isTablet ? (\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default FtPayInCont;\n","import * as React from \"react\";\nimport { Switch } from \"react-router-dom\";\nimport FtPayOutCont from \"../components/toc/fundTransfer/ftPayOutCont/ftPayOutCont\";\nimport FtModalPayIn from \"../components/toc/fundTransfer/ftModal/ftModalPayInStat\";\nimport FtModalPayOut from \"../components/toc/fundTransfer/ftModal/ftModalPayOutStat\";\nimport FtHistoryCont from \"../components/toc/fundTransfer/ftHistoryFundsContainer/ftHistoryCont\";\nimport FtPayInCont from \"../components/toc/fundTransfer/ftPayInCont/ftPayInCont\";\nimport PostLogin from \"./postLogin\";\n\nconst FtRouting = () => {\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t } />\n\t\t\t\t } />\n\t\t\t\t } />\n\t\t\t\t } />\n\t\t\t\t } />\n\t\t\t\n\t\t\n\t);\n};\nexport default FtRouting;\n","import * as React from \"react\";\nimport \"../../../assets/scss/components/login/generic/loginPopup.scss\";\n\nexport interface ILoginPopupProps {\n\tclassName?: string; // extra classname if required\n\tleftHeaderContent?: React.ReactChild; // text/element to show on the left side in the header\n\tcenterHeaderContent?: React.ReactChild; // text/element to show in center in the header\n\toverlayClass?: React.CSSProperties; // style object for popup\n\thideVersion?: boolean; // if this is true, then don't show version number\n\tonClose?: () => void; // if this function is present, then only show cross icon\n}\n\nconst LoginPopup: React.FC = props => {\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t{/* Header */}\n\t\t\t\t
    \n\t\t\t\t\t
    {props.leftHeaderContent}
    \n\t\t\t\t\t
    {props.centerHeaderContent}
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{props.onClose && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\n\t\t\t\t{/* Main content */}\n\t\t\t\t{props.children}\n\n\t\t\t\t{/* Version number */}\n\t\t\t\t{!props.hideVersion &&
    Nuvamawealth.com(TOC) Ver. 1.0.0.5
    }\n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default LoginPopup;\n","export default __webpack_public_path__ + \"static/media/logo_white.fb5f44f1.jpg\";","import * as React from \"react\";\nimport LoginPopup from \"../generic/loginPopup\";\nimport { Link, RouteChildrenProps } from \"react-router-dom\";\nimport \"../../../assets/scss/components/login/loginScreen/loginHelp.scss\";\nimport DeviceContext from \"../../service/indentifyDevice\";\nimport { urls } from \"../loginConstants\";\nimport LoginService from \"./../../service/login/loginService\";\nimport logo from \"../../../assets/images/logo_white.jpg\";\n\nexport interface ILoginHelpProps {}\n\nconst LoginHelp: React.FC = (props) => {\n\tfunction onClose() {\n\t\tredirect(urls.login);\n\t}\n\n\tfunction redirect(url: string) {\n\t\tif (url.indexOf(\"http://\") === 0 || url.indexOf(\"https://\") === 0) {\n\t\t\t// If url is absolute\n\t\t\twindow.location.href = url;\n\t\t} else {\n\t\t\t// if url is relative\n\t\t\tprops.history.push(url);\n\t\t}\n\t}\n\n\treturn (\n\t\t\n\t\t\t\t\t\n\t\t\t\t\tBack\n\t\t\t\t\n\t\t\t}\n\t\t\tcenterHeaderContent={DeviceContext().isDesktop ? \"nuvama\" : undefined}\n\t\t\tonClose={LoginService.hideCross ? undefined : onClose}\n\t\t\tclassName=\"login_help_ppup\"\n\t\t>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tForgot login ID\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tForgot password\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tUnblock account\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tGet your YOB\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\n\t);\n};\n\nexport default LoginHelp;\n","import * as React from \"react\";\nimport \"../../../assets/scss/components/login/generic/loginErrMsg.scss\";\n\nexport interface ILoginErrMsgProps {\n\tclassName?: string; // extra classname(s) if necessary\n}\n\nconst LoginErrMsg: React.FC = props => {\n\treturn

    {props.children}

    ;\n};\n\nexport default LoginErrMsg;\n","import * as React from \"react\";\nimport InputField from \"../../generic/inputField\";\nimport { emailRegex, pan, phoneNo, alphaNumExp, integerExp } from \"../../utils/regex\";\nimport EdButton from \"../../generic/edButton\";\nimport RadioButton from \"../../generic/radioButton\";\nimport \"../../../assets/scss/components/login/forms/forgotLoginIdForm.scss\";\nimport \"../../../assets/scss/components/login/generic/loginInput.scss\";\nimport { IListObj } from \"../../types/genericTypes\";\nimport LoginErrMsg from \"../generic/loginErrMsg\";\nimport { AForgotLoginId } from \"../../service/login/loginApiService\";\n\nexport interface IForgotLoginIdFormProps {\n\tonSuccess: (msg: string) => void; // function to be called on the success of called apis\n}\n\n// form fields\nexport interface IForgotLoginIdFields {\n\tpan: string;\n\temail: string;\n\tmobile: string;\n\taccTyp?: string;\n}\n\nconst ForgotLoginIdForm: React.FC = (props) => {\n\t// used to store the entered values in form\n\tconst [values, setValues] = React.useState({ pan: \"\", email: \"\", mobile: \"\" });\n\n\t// used to store the field wise errors\n\tconst [errors, setErrors] = React.useState<{ [key in keyof IForgotLoginIdFields]?: string }>({\n\t\tpan: undefined,\n\t\temail: undefined,\n\t\tmobile: undefined\n\t});\n\n\t// used to store the error message that comes from api\n\tconst [errorMsg, setErrorMsg] = React.useState(\"\");\n\n\t// used to store if the form is submitted or not\n\tconst [submitted, setSubmitted] = React.useState(false);\n\n\tconst accTyp: Array = [\n\t\t{ value: \"EQ\", display: \"Equity\" },\n\t\t{ value: \"CO\", display: \"Commodity\" }\n\t];\n\n\tfunction handleSubmit(e: React.MouseEvent) {\n\t\te.preventDefault();\n\t\tsetSubmitted(true);\n\t\tAForgotLoginId(forgotLoginIdRes, { ...values, mode: \"BOTH\" });\n\t}\n\n\tfunction forgotLoginIdRes(res: any) {\n\t\tif (res.data) {\n\t\t\t// if success, then call the onSuccess function in prop\n\t\t\tprops.onSuccess(res.data.msg);\n\t\t} else if (res.error) {\n\t\t\t// else enable form again\n\t\t\tsetSubmitted(false);\n\n\t\t\tif (res.error.errCd === \"ELGH0001\") {\n\t\t\t\t// show account type radio\n\t\t\t\tsetValues({ ...values, accTyp: \"EQ\" });\n\t\t\t} else {\n\t\t\t\t// hide account type radio and error msg block\n\t\t\t\tconst { pan, email, mobile } = values;\n\t\t\t\tsetValues({ pan, email, mobile });\n\t\t\t\tsetErrorMsg(res.error.errMsg);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction onChange(key: keyof IForgotLoginIdFields, value: string) {\n\t\t// onchange of any field remove both type of errors\n\t\tif ((key === \"pan\" && !alphaNumExp.test(value)) || (key === \"mobile\" && !integerExp.test(value))) {\n\t\t\tvalue = values[key];\n\t\t}\n\n\t\tsetValues({ ...values, [key]: value });\n\t\tsetErrors({ ...errors, [key]: \"\" });\n\t\tsetErrorMsg(\"\");\n\n\t\treturn value;\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t onChange(\"pan\", pan)}\n\t\t\t\tonBlur={(error) => setErrors({ ...errors, pan: error.pattern ? \"\" : \"Please enter a valid PAN\" })}\n\t\t\t\tclassName=\"login_inp mg-b40\"\n\t\t\t\tplaceholder=\"Eg: JUKL5678987\"\n\t\t\t\thelpTextColor=\"blue\"\n\t\t\t\trequired\n\t\t\t\tpattern={pan}\n\t\t\t\terrorText={errors.pan}\n\t\t\t\tmaxLength={10}\n\t\t\t/>\n\n\t\t\t\n\t\t\t onChange(\"email\", email)}\n\t\t\t\tonBlur={(error) => setErrors({ ...errors, email: error.pattern ? \"\" : \"Please enter a valid email address\" })}\n\t\t\t\tclassName=\"login_inp mg-b40\"\n\t\t\t\tplaceholder=\"Eg: sarveshpali@gmail.com\"\n\t\t\t\terrorText={errors.email}\n\t\t\t/>\n\n\t\t\t\n\t\t\t
    \n\t\t\t\t+91\n\t\t\t\t onChange(\"mobile\", mobile)}\n\t\t\t\t\tonBlur={(error) => setErrors({ ...errors, mobile: error.pattern ? \"\" : \"Please enter a valid phone number\" })}\n\t\t\t\t\tclassName=\"login_inp mg-b40\"\n\t\t\t\t\tplaceholder=\"Eg: 9809807765\"\n\t\t\t\t\tpattern={phoneNo}\n\t\t\t\t\terrorText={errors.mobile}\n\t\t\t\t\tmaxLength={10}\n\t\t\t\t/>\n\t\t\t
    \n\n\t\t\t{/* This select account type block will only show if \"ELGH0001\" error comes in response to api */}\n\t\t\t{values.accTyp && (\n\t\t\t\t
    \n\t\t\t\t\t

    Select Account type to retrieve Login ID:

    \n\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t{accTyp.map((typ) => (\n\t\t\t\t\t\t\t\t onChange(\"accTyp\", typ.value as string)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t
    • \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t)}\n\n\t\t\t{/* Show error if any */}\n\t\t\t{errorMsg && {errorMsg}}\n\n\t\t\t error) || Object.values(values).some((value) => !value) || submitted}\n\t\t\t\tonClick={handleSubmit}\n\t\t\t/>\n\t\t\n\t);\n};\n\nexport default ForgotLoginIdForm;\n","// Common file all the status\n\nimport * as React from \"react\";\nimport EdButton from \"./../../generic/edButton\";\nimport { Link } from \"react-router-dom\";\nimport \"../../../assets/scss/components/login/generic/loginStatus.scss\";\n\nexport interface LoginStatusProps {\n\ttitle?: string;\n\tsubTitle?: string;\n\tmessage?: React.ReactChild;\n\ticon: string; // icon in the circle\n\tcolor: \"blue\" | \"red\" | \"green\"; // color of circle\n\tbtnValue?: any; // value in the blue button. If present, then only blue button will show\n\tonButtonClick?: (event: React.MouseEvent) => void; // function to be called on blue button click\n\tlinkTxt?: string; // show link/link-button only if this is present\n\tlink?: string; // if this is present then show link otherwise show link-button\n\tonLinkClick?: (event: React.MouseEvent) => void; // function to be called on link button click\n\tclassName?: string; // extra class\n}\n\nconst LoginStatus: React.FC = (props) => {\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t{/* Circle */}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\n\t\t\t\t{props.title &&

    {props.title}

    }\n\t\t\t\t{props.subTitle &&

    {props.subTitle}

    }\n\t\t\t\t{props.message &&

    {props.message}

    }\n\n\t\t\t\t{/* Show blue button if btnValue is present */}\n\t\t\t\t{props.btnValue && (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t)}\n\n\t\t\t\t{/* Show link button only if linkText is present */}\n\t\t\t\t{/* If link is present then make it link otherwise make it make button */}\n\t\t\t\t{props.linkTxt &&\n\t\t\t\t\t(props.link ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{props.linkTxt}\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t))}\n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default LoginStatus;\n","import * as React from \"react\";\nimport LoginPopup from \"../generic/loginPopup\";\nimport DeviceContext from \"../../service/indentifyDevice\";\nimport { ELoginPopupState, urls } from \"../loginConstants\";\nimport LoginStatus from \"../generic/loginStatus\";\nimport { useHistory } from \"react-router-dom\";\nimport { getAccData } from \"../../service/login/loginService\";\nimport logo from \"../../../assets/images/logo_white.jpg\";\n\nexport interface ILoginStatusScreenProps {\n\tpopupState: ELoginPopupState;\n\tmessage?: string;\n\tonLinkClick?: () => void;\n\tonButtonClick?: () => void;\n\tonClose?: () => void;\n}\n\nconst LoginStatusScreen: React.FC = (props) => {\n\tlet status = <>;\n\tconst history = useHistory();\n\n\tswitch (props.popupState) {\n\t\tcase ELoginPopupState.RESET_SUCC:\n\t\t\tstatus = (\n\t\t\t\t\n\t\t\t);\n\t\t\tbreak;\n\n\t\tcase ELoginPopupState.LOGINID_SENT:\n\t\t\tstatus = (\n\t\t\t\t\n\t\t\t);\n\t\t\tbreak;\n\n\t\tcase ELoginPopupState.MERGE_REQUESTED:\n\t\t\tstatus = (\n\t\t\t\t\n\t\t\t\t\t\t\tUntil the process is complete, please use your current login IDs for respective accounts. After merger, you will be able to\n\t\t\t\t\t\t\tlogin to both your Equity and Commodity accounts using the login ID: {props.message}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t);\n\t\t\tbreak;\n\n\t\tcase ELoginPopupState.EMAIL_SENT:\n\t\t\tstatus = (\n\t\t\t\t\n\t\t\t);\n\t\t\tbreak;\n\n\t\tcase ELoginPopupState.INACTIVE_ACC:\n\t\t\tstatus = (\n\t\t\t\t\n\t\t\t);\n\t\t\tbreak;\n\n\t\tcase ELoginPopupState.OPEN_ACC_SUCC:\n\t\t\tstatus = (\n\t\t\t\t\n\t\t\t);\n\t\t\tbreak;\n\n\t\tcase ELoginPopupState.REQUESTED:\n\t\tcase ELoginPopupState.NOT_ENABLED:\n\t\t\tconst accTyp = getAccData(\"accTyp\");\n\t\t\tstatus = (\n\t\t\t\t\n\t\t\t);\n\t\t\tbreak;\n\n\t\tcase ELoginPopupState.ONE_ACCOUNT:\n\t\t\tstatus = (\n\t\t\t\t\n\t\t\t);\n\t\t\tbreak;\n\n\t\tcase ELoginPopupState.LOGIN_FAILED:\n\t\t\tstatus = (\n\t\t\t\t history.push(urls.home)}\n\t\t\t\t/>\n\t\t\t);\n\t\t\tbreak;\n\t}\n\n\treturn (\n\t\t : undefined}\n\t\t\tcenterHeaderContent={DeviceContext().isDesktop ? \"nuvama\" : undefined}\n\t\t\tonClose={props.onClose}\n\t\t\tclassName=\"login_sts\"\n\t\t>\n\t\t\t{status}\n\t\t\n\t);\n};\n\nexport default LoginStatusScreen;\n","import * as React from \"react\";\nimport LoginPopup from \"../generic/loginPopup\";\nimport ForgotLoginIdForm from \"../forms/forgotLoginIdForm\";\nimport DeviceContext from \"../../service/indentifyDevice\";\nimport { ELoginPopupState, urls } from \"../loginConstants\";\nimport \"../../../assets/scss/components/login/loginScreen/loginScreen.scss\";\nimport { Link, RouteChildrenProps } from \"react-router-dom\";\nimport LoginStatusScreen from \"./loginStatusScreen\";\nimport LoginService from \"../../service/login/loginService\";\nimport logo from \"../../../assets/images/logo_white.jpg\";\n\nexport interface IForgotLoginIdScreenProps {}\n\nexport interface IForgotLoginIdScreenState {\n\tpopupMessage: string;\n}\n\nclass ForgotLoginIdScreen extends React.Component {\n\tstate = { popupMessage: \"\" };\n\n\tonClose = () => {\n\t\tthis.props.history.push(\"/login/help\");\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tBack\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\tcenterHeaderContent={\n\t\t\t\t\t\tDeviceContext().isDesktop ? \"nuvama\" :

    Forgot Login ID

    \n\t\t\t\t\t}\n\t\t\t\t\t// don't show close button in vendor login\n\t\t\t\t\tonClose={LoginService.hideCross ? undefined : this.onClose}\n\t\t\t\t\tclassName=\"login_scrn frgt_id_form\"\n\t\t\t\t>\n\t\t\t\t\t{DeviceContext().isDesktop && (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    Forgot Login ID

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\n\t\t\t\t\t this.setState({ popupMessage })} />\n\t\t\t\t\n\t\t\t\t{this.state.popupMessage && (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t);\n\t}\n}\n\nexport default ForgotLoginIdScreen;\n","import * as React from \"react\";\nimport { IListObj } from \"../types/genericTypes\";\nimport \"../../assets/scss/components/generic/autocomplete.scss\";\n\nexport interface IAutocompleteProps {\n\tname: string; // name of the input field\n\tclassName?: string; // extra classname for container if required\n\tdata: Array | null; // dropdown array\n\tnoDataMsg: string; // msg to show when data does not exist in dropdown array\n\tinputClassName?: string; // extra classname for input field\n\terrorText?: string; // red error text\n\tprefix?: React.ReactChild; // text/element to show before the input field\n\tsuffix?: React.ReactChild; // text/element to show after the input field\n\tplaceholder?: string; // placeholder\n\thelpText?: string; // help text\n\thelpTextColor?: \"grey\" | \"blue\"; // the color of help text, takes gray as default\n\tonOptionSelect: (data: IListObj) => void; // function to implement on input select\n\tonChange: (value: string) => void; // function to be called on change\n\tonBlur?: (value: string) => void; // function to be called on blur\n}\n\nconst Autocomplete: React.FC = (props) => {\n\tconst [show, setShowDropdown] = React.useState(false);\n\n\t// sets the default value of input if present\n\t// value: value of the input (type = string)\n\t// setValue: function to set value\n\tconst [value, setValue] = React.useState(\"\");\n\n\t// when focussed, this helps to colour the border of input_field_cont\n\tconst [focusClass, setFocusClass] = React.useState(\"\");\n\n\tfunction showDropdown(value: string) {\n\t\tvalue ? setShowDropdown(true) : setShowDropdown(false);\n\t}\n\n\tfunction handleBlur() {\n\t\thideDropDown();\n\t\tprops.onBlur && props.onBlur(value);\n\t}\n\n\tfunction hideDropDown() {\n\t\tsetTimeout(() => setShowDropdown(false), 300);\n\t}\n\n\tfunction handleInputChange(value: string) {\n\t\tshowDropdown(value);\n\t\tsetValue(value);\n\t\treturn props.onChange(value);\n\t}\n\n\tfunction onOptionSelect(d: IListObj) {\n\t\tsetShowDropdown(false);\n\t\tsetValue(d.display);\n\t\treturn props.onOptionSelect(d);\n\t}\n\n\tconst dropdownList = props.data\n\t\t? props.data.map((d) => {\n\t\t\t\tconst dropdownData = d.display.replace(new RegExp(value, \"i\"), \"$&\");\n\n\t\t\t\treturn (\n\t\t\t\t\t
  • onOptionSelect(d)}>\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
  • \n\t\t\t\t);\n\t\t })\n\t\t: null;\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{props.prefix &&
    {props.prefix}
    }\n\t\t\t\t\t handleInputChange(e.target.value)}\n\t\t\t\t\t\tplaceholder={props.placeholder}\n\t\t\t\t\t\tclassName=\"input_field\"\n\t\t\t\t\t\tonFocus={() => setFocusClass(\" focus\")}\n\t\t\t\t\t\tonBlur={handleBlur}\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t\t{props.suffix &&
    {props.suffix}
    }\n\t\t\t\t
    \n\t\t\t\t{props.errorText &&

    {props.errorText}

    }\n\t\t\t\t{props.helpText &&

    {props.helpText}

    }\n\t\t\t
    \n\t\t\t
      \n\t\t\t\t{dropdownList !== null && (dropdownList.length ? dropdownList :
    • {props.noDataMsg}
    • )}\n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default Autocomplete;\n","import * as React from \"react\";\nimport EdButton from \"../../generic/edButton\";\nimport InputField from \"../../generic/inputField\";\nimport \"../../../assets/scss/components/login/forms/leadForm.scss\";\nimport \"../../../assets/scss/components/login/generic/loginInput.scss\";\nimport { emailRegex, betweenNChars, phoneNo, alphabetExp, integerExp } from \"../../utils/regex\";\nimport Autocomplete from \"../../generic/autocomplete\";\nimport debounce from \"../../utils/debounce\";\nimport { AGetCities } from \"../../service/login/loginApiService\";\nimport LoginErrMsg from \"../generic/loginErrMsg\";\n\nexport interface ILeadFormProps {\n\terrorMsg?: string; // used to show error message if any\n\tdisableForm: boolean; // used to disable form from parent\n\tonSubmit: (values: ILeadFormFields) => void; // function to be called on submit\n\tonRemoveError: () => void; // removes the errorMsg\n}\n\nexport interface ILeadFormFields {\n\tnm: string;\n\teml: string;\n\tphNo: string;\n\tcity: string;\n\tstate: string;\n}\n\nconst LeadForm: React.FC = props => {\n\t// used to store the entered values in form\n\tconst [values, setValues] = React.useState({ nm: \"\", eml: \"\", phNo: \"\", city: \"\", state: \"\" });\n\n\t// used to store the field wise errors\n\tconst [errors, setErrors] = React.useState<{ [key in keyof ILeadFormFields]?: string }>({\n\t\tnm: undefined,\n\t\teml: undefined,\n\t\tphNo: undefined,\n\t\tcity: undefined\n\t});\n\n\t// cities list\n\tconst [cities, setCities] = React.useState | null>(null);\n\n\tfunction handleSubmit(e: React.FormEvent) {\n\t\te.preventDefault();\n\t\tprops.onSubmit(values);\n\t}\n\n\tfunction onChange(key: keyof ILeadFormFields, value: string) {\n\t\t// onchange of any field remove both type of errors\n\t\tif (key === \"city\") {\n\t\t\t// separate city and state (state is blank string if not present in the value)\n\t\t\tconst [city, state = \"\"] = value.split(\";\");\n\t\t\tsetValues({ ...values, city, state });\n\n\t\t\t// if city length is greater than 2, then call the api with debounce of 300ms\n\t\t\tif (city.length > 2) {\n\t\t\t\tdebounce(() => getCities(value), 300)();\n\t\t\t}\n\t\t} else {\n\t\t\tif ((key === \"nm\" && !alphabetExp.test(value)) || (key === \"phNo\" && !integerExp.test(value))) {\n\t\t\t\tvalue = values[key];\n\t\t\t}\n\t\t\tsetValues({ ...values, [key]: value });\n\t\t}\n\t\tsetErrors({ ...errors, [key]: \"\" });\n\t\tprops.onRemoveError();\n\n\t\treturn value;\n\t}\n\n\tfunction getCities(srchStr: string) {\n\t\tAGetCities(getCitiesRes, srchStr);\n\t}\n\n\tfunction getCitiesRes(res: any) {\n\t\tif (res.data && res.data.ctyLst) {\n\t\t\tsetCities(res.data.ctyLst);\n\t\t}\n\t}\n\n\tfunction handleACBlur(value: string) {\n\t\tif (value.split(\";\").length !== 2) {\n\t\t\tsetErrors({ ...errors, city: \"Please select a city from dropdown\" });\n\t\t}\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t onChange(\"nm\", value)}\n\t\t\t\tonBlur={error => setErrors({ ...errors, nm: error.pattern ? \"\" : \"Name should be atleast 3 characters\" })}\n\t\t\t\tclassName=\"login_inp mg-b40\"\n\t\t\t\tplaceholder=\"Eg:Rajesh Patel\"\n\t\t\t\terrorText={errors.nm}\n\t\t\t/>\n\n\t\t\t\n\t\t\t onChange(\"eml\", value)}\n\t\t\t\tonBlur={error => setErrors({ ...errors, eml: error.pattern ? \"\" : \"Invalid Email\" })}\n\t\t\t\tclassName=\"login_inp mg-b40\"\n\t\t\t\tplaceholder=\"Eg:rajeshpatel@gmail.com\"\n\t\t\t\terrorText={errors.eml}\n\t\t\t/>\n\n\t\t\t\n\t\t\t
    \n\t\t\t\t+91\n\t\t\t\t onChange(\"phNo\", value)}\n\t\t\t\t\tonBlur={error => setErrors({ ...errors, phNo: error.pattern ? \"\" : \"Invalid Phone Number\" })}\n\t\t\t\t\tclassName=\"login_inp mg-b30\"\n\t\t\t\t\tplaceholder=\"Eg: 9809807765\"\n\t\t\t\t\terrorText={errors.phNo}\n\t\t\t\t/>\n\t\t\t
    \n\n\t\t\t\n\t\t\t{/* We have to store state also along with city because state is required in api request.\n\t\t\t\t\tIndex of cities is not stored in value because it may change when user clicks on a city (api is called again)\n\t\t\t\t\tThat is why both city and state are stored in value\n\t\t\t\t\tThis also helps to check if the value in input is typed by the user or selected from the dropdown */}\n\t\t\t ({ value: city.city + \";\" + city.state, display: city.city })) : null}\n\t\t\t\tonOptionSelect={value => onChange(\"city\", value.value as string)}\n\t\t\t\tnoDataMsg=\"City with similar name not found\"\n\t\t\t\tonChange={value => onChange(\"city\", value)}\n\t\t\t\tinputClassName=\"login_inp mg-b40\"\n\t\t\t\tplaceholder=\"Eg:Mumbai\"\n\t\t\t\tonBlur={handleACBlur}\n\t\t\t\tname=\"city\"\n\t\t\t\tclassName=\"city\"\n\t\t\t/>\n\n\t\t\t{/* Show error if any */}\n\t\t\t{props.errorMsg && {props.errorMsg}}\n\n\t\t\t error) || Object.values(values).some(value => !value) || props.disableForm}\n\t\t\t/>\n\t\t\n\t);\n};\n\nexport default LeadForm;\n","import * as React from \"react\";\nimport LoginPopup from \"../generic/loginPopup\";\nimport DeviceContext from \"../../service/indentifyDevice\";\nimport LeadForm, { ILeadFormProps } from \"../forms/leadForm\";\nimport \"../../../assets/scss/components/login/loginScreen/loginScreen.scss\";\nimport logo from \"../../../assets/images/logo_white.jpg\";\n\nexport interface ILeadFormScreenProps extends ILeadFormProps {\n\tonClose?: () => void;\n}\n\nconst LeadFormScreen: React.FC = ({ onClose, ...props }) => {\n\treturn (\n\t\t : undefined}\n\t\t\tcenterHeaderContent={DeviceContext().isDesktop ? \"nuvama\" : undefined}\n\t\t\tonClose={onClose}\n\t\t\tclassName=\"login_scrn\"\n\t\t>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t

    Provide us with your details and we will get back in touch with you

    \n\t\t\t\t
    \n\n\t\t\t\t\n\t\t\t
    \n\t\t\n\t);\n};\n\nexport default LeadFormScreen;\n","import * as React from \"react\";\nimport EdButton from \"../../generic/edButton\";\nimport RadioButton from \"../../generic/radioButton\";\nimport \"../../../assets/scss/components/login/forms/mergeIdForm.scss\";\nimport \"../../../assets/scss/components/login/generic/loginInput.scss\";\nimport { getPreLoginData, getAccData } from \"../../service/login/loginService\";\nimport { IMergeRequest } from \"../../types/components/login/loginTypes\";\n\nexport interface IMergeIdFormProps {\n\tdisableForm: boolean; // used to disable/enable form from parent\n\trequestMerge: (body: IMergeRequest) => void; // function to be called when request merge button is clicked\n\tremindLater: () => void; // function to be called when remind later button is clicked\n}\n\nconst MergeIdForm: React.FC = (props) => {\n\t// get the merge acc details stored in DataService\n\t// this has the arrays of uids, phNos and emIds\n\tconst mrgAccDts = getAccData(\"mrgAccDts\");\n\n\t// used to store the values of all the fields\n\tconst [mrgUid, setMrgUid] = React.useState(getPreLoginData(\"userID\"));\n\tconst [mrgPhNo, setMrgPhNo] = React.useState(mrgAccDts.phNos[0]);\n\tconst [mrgEml, setMrgEml] = React.useState(mrgAccDts.emIds[0]);\n\n\tfunction handleSubmit(e: React.MouseEvent) {\n\t\te.preventDefault();\n\n\t\t// send the data to the parent\n\t\tprops.requestMerge({\n\t\t\tmrgPhNo: mrgPhNo as string,\n\t\t\tmrgEml: mrgEml as string,\n\t\t\tmrgUid: mrgUid as string,\n\t\t\tmrgAccTyp: mrgAccDts.uids.find((uid: any) => uid.uid === mrgUid).accTyp\n\t\t});\n\t}\n\n\tfunction handleRemindLater(e: React.MouseEvent) {\n\t\te.preventDefault();\n\t\tprops.remindLater();\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t{/* Show only if there are 2 uids present */}\n\t\t\t{mrgAccDts.uids.length > 1 && (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t{mrgAccDts.uids.map((uid: any) => (\n\t\t\t\t\t\t\t\t setMrgUid(uid.uid)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t
    • \n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{/* Show only if there are 2 phNos present */}\n\t\t\t{mrgAccDts.phNos.length > 1 && (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t{mrgAccDts.phNos.map((phNo: string) => (\n\t\t\t\t\t\t\t\t setMrgPhNo(phNo)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t
    • \n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{/* Show only if there are 2 emIds present */}\n\t\t\t{mrgAccDts.emIds.length > 1 && (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t
      \n\t\t\t\t\t\t{mrgAccDts.emIds.map((emId: string) => (\n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t setMrgEml(emId)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t))}\n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t)}\n\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default MergeIdForm;\n","import * as React from \"react\";\nimport LoginPopup from \"../generic/loginPopup\";\nimport MergeIdForm, { IMergeIdFormProps } from \"../forms/mergeIdForm\";\nimport DeviceContext from \"../../service/indentifyDevice\";\nimport \"../../../assets/scss/components/login/loginScreen/loginScreen.scss\";\nimport { getPreLoginData } from \"../../service/login/loginService\";\nimport logo from \"../../../assets/images/logo_white.jpg\";\n\nexport interface IMergeIdScreenProps extends IMergeIdFormProps {\n\tonClose?: () => void;\n}\n\nconst MergeIdScreen: React.FC = ({ onClose, ...props }) => {\n\treturn (\n\t\t : undefined}\n\t\t\tcenterHeaderContent={DeviceContext().isMobile ? undefined : \"nuvama\"}\n\t\t\tonClose={onClose}\n\t\t\tclassName=\"change_pw_scrn\"\n\t\t>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\n\t\t\t\t\t

    \n\t\t\t\t\t\tHi {getPreLoginData(\"userID\")}! You have both equity and commodity accounts. You can choose to use a single id to login to both\n\t\t\t\t\t\taccounts\n\t\t\t\t\t

    \n\n\t\t\t\t\t

    Once confirmed, the details below cannot be changed

    \n\t\t\t\t
    \n\n\t\t\t\t\n\t\t\t
    \n\t\t\n\t);\n};\n\nexport default MergeIdScreen;\n","import * as React from \"react\";\nimport InputField from \"../../generic/inputField\";\nimport \"../../../assets/scss/components/login/generic/newPasswordField.scss\";\nimport { betweenNChars, exceptSplChar, atleast1SplChar, notEqualTo, atleast1Alpha1Num } from \"../../utils/regex\";\nimport { getPreLoginData } from \"../../service/login/loginService\";\n\nexport interface INewPasswordFieldProps {\n\tonChange: (value: string, error: string) => void;\n\tonBlur: (error: string) => void;\n}\n\nconst NewPasswordField: React.FC = props => {\n\t// show password or not\n\tconst [showPassword, setShowPassword] = React.useState(false);\n\n\t// show ticks section\n\tconst [showConditions, setShowConditions] = React.useState(false);\n\n\t// if true, then show cross instead of grey ticks\n\tconst [showCross, setShowCross] = React.useState(false);\n\n\t// value in input field\n\tconst [val, setVal] = React.useState(\"\");\n\n\t// all the validations\n\tconst validationArr = [\n\t\t{ name: \"Should be between 6 to 12 characters\", regex: betweenNChars(6, 12) },\n\t\t{ name: \"Should be alphanumeric\", regex: atleast1Alpha1Num },\n\t\t{ name: \"Should have atleast one acceptable special character\", regex: [exceptSplChar, atleast1SplChar] },\n\t\t{ name: \"Cannot be same as login ID\", regex: notEqualTo(getPreLoginData(\"userID\"), \"i\") }\n\t];\n\n\t// stores the validity of validationArr\n\tconst [isValid, setIsValid] = React.useState(new Array(validationArr.length).fill(false));\n\n\tfunction handleOnChange(value: string) {\n\t\t// if changed for the first time then show the ticks section and keep showing afterwards\n\t\tif (!showConditions) {\n\t\t\tsetShowConditions(true);\n\t\t}\n\n\t\tsetVal(value);\n\n\t\tprops.onChange(value, findError(value));\n\t}\n\n\tfunction findError(value: string) {\n\t\t// validate all the regex and get the new boolean array containing validity\n\t\tconst isValidCopy = validateRegex(value);\n\t\tsetIsValid(isValidCopy);\n\n\t\t// find the first error and return that\n\t\tlet error = \"\";\n\t\tisValidCopy.find((valid, index) => {\n\t\t\tif (!valid) {\n\t\t\t\terror = validationArr[index].name;\n\t\t\t}\n\t\t\treturn !valid;\n\t\t});\n\t\treturn error;\n\t}\n\n\tfunction validateRegex(value: string) {\n\t\t// loop over validationArr and validate\n\t\treturn validationArr.map(validation => {\n\t\t\t// if validation.regex is an array, then loop over all the elements\n\t\t\tif (Array.isArray(validation.regex)) {\n\t\t\t\t// if any regex tests false, then we have to return false\n\t\t\t\t// if any regex tests false, find will return that regex; otherwise it returns undefined\n\t\t\t\treturn validation.regex.find(regex => !regex.test(value)) === undefined;\n\t\t\t}\n\n\t\t\t// if validation.regex is regex\n\t\t\treturn validation.regex.test(value);\n\t\t});\n\t}\n\n\tfunction handleBlur() {\n\t\tsetShowCross(true);\n\t\tprops.onBlur(findError(val));\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t setShowPassword(!showPassword)} />}\n\t\t\t\trequired\n\t\t\t/>\n\n\t\t\t{showConditions && (\n\t\t\t\t
      \n\t\t\t\t\t{validationArr.map((validation, index) => (\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    • \n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default NewPasswordField;\n","import * as React from \"react\";\nimport EdButton from \"../../generic/edButton\";\nimport InputField from \"../../generic/inputField\";\nimport NewPasswordField from \"../generic/newPasswordField\";\nimport \"../../../assets/scss/components/login/forms/changePasswordForm.scss\";\nimport \"../../../assets/scss/components/login/generic/loginInput.scss\";\nimport Loader from \"../../generic/loader\";\nimport { equalTo } from \"../../utils/regex\";\nimport { getPreLoginData, getAccData } from \"../../service/login/loginService\";\nimport { EResetSubmitState } from \"../loginConstants\";\nimport LoginErrMsg from \"../generic/loginErrMsg\";\nimport { IChangePassword } from \"../../types/components/login/loginTypes\";\n\nexport interface IChangePasswordFormProps {\n\tsubmitState?: EResetSubmitState; // there are three submit states. Normal if undefined.\n\terrorMsg?: string; // used to show error message if any\n\tloginIdState?: string; // used to show error; initially it should be undefined. if \"success\" then show green tick, otherwise show as error\n\t// onSubmit: function to be called on submit, if resetLoginId is true, then only call the api to reset login id\n\tonSubmit: (values: IChPwFields, resetLoginId?: boolean) => void;\n\tonRemoveError: () => void; // removes the errorMsg\n}\n\nexport interface IChPwFields extends IChangePassword {\n\tloginId: string;\n}\n\nconst ChangePasswordForm: React.FC = (props) => {\n\t// used to show/hide the old and confirm passwords. Show/hide of new password is handled internally\n\tconst [showPassword, setShowPassword] = React.useState({ old: false, confirm: false });\n\n\t// if this is true then only user can edit loginId\n\t// if this is true the change userid api will run otherwise not\n\tconst [editLoginId, setEditLoginId] = React.useState(false);\n\n\t// used to store the entered values in form\n\tconst [values, setValues] = React.useState({ loginId: getPreLoginData(\"userID\"), olPwd: \"\", nePwd: \"\", coPwd: \"\" });\n\n\t// used to store the field wise errors\n\tconst [errors, setErrors] = React.useState<{ [key in keyof IChPwFields]?: string }>({\n\t\tloginId: \"\",\n\t\tolPwd: undefined,\n\t\tnePwd: undefined,\n\t\tcoPwd: undefined\n\t});\n\n\tfunction handleSubmit(e: React.FormEvent) {\n\t\te.preventDefault();\n\n\t\t// submit only if new and old passwords are same\n\t\tif (compareOldNewPw()) {\n\t\t\tprops.onSubmit(values, props.loginIdState !== \"success\" && editLoginId);\n\t\t}\n\t}\n\n\tfunction compareOldNewPw() {\n\t\tif (values.nePwd !== values.coPwd) {\n\t\t\tsetErrors({ ...errors, coPwd: \"Confirm Password should be same as new Password\" });\n\t\t\treturn false;\n\t\t} else {\n\t\t\tsetErrors({ ...errors, coPwd: \"\" });\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tconst loginIdHelpText = \"You can change your Login ID. Once changed, it cannot be changed again\";\n\n\t// submit button text on different states\n\tconst verLoginIdBtn = (\n\t\t<>\n\t\t\tVerifying Login ID \n\t\t\n\t);\n\tconst verPasswordBtn = (\n\t\t<>\n\t\t\tVerifying Password \n\t\t\n\t);\n\n\t// if userid is wrong then set it as an error\n\tReact.useEffect(() => {\n\t\tif (props.loginIdState && props.loginIdState !== \"success\") {\n\t\t\tsetErrors({ ...errors, loginId: props.loginIdState });\n\t\t}\n\t}, [props.loginIdState, props.submitState]);\n\n\tReact.useEffect(() => {\n\t\tprops.onRemoveError();\n\t}, [values])\n\n\tfunction getLoginField() {\n\t\tif (props.loginIdState === \"success\") {\n\t\t\treturn (\n\t\t\t\t
    \n\t\t\t\t\t{values.loginId}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tif (editLoginId) {\n\t\t\t// If editLoginId is true then show input field\n\t\t\treturn (\n\t\t\t\t {\n\t\t\t\t\t\tsetValues({ ...values, loginId });\n\t\t\t\t\t\tsetErrors({ ...errors, loginId: \"\" });\n\t\t\t\t\t}}\n\t\t\t\t\tdefaultValue={values.loginId}\n\t\t\t\t\tonBlur={(error) => setErrors({ ...errors, loginId: error.required ? \"Field is required\" : \"\" })}\n\t\t\t\t\tclassName=\"login_inp mg-b40\"\n\t\t\t\t\tplaceholder=\"Eg:5678987\"\n\t\t\t\t\tmaxLength={24}\n\t\t\t\t\trequired\n\t\t\t\t\thelpText={errors.loginId ? undefined : loginIdHelpText}\n\t\t\t\t\thelpTextColor=\"blue\"\n\t\t\t\t\terrorText={errors.loginId}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\t// otherwise show div styled as input field (user can't edit)\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{values.loginId}\n\t\t\t\t\t
    \n\t\t\t\t\t\t setEditLoginId(true)} />\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t

    {loginIdHelpText}

    \n\t\t\t
    \n\t\t);\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t{/* If rstusr is true, then show as input field */}\n\t\t\t{getAccData(\"accs\").rstusr && }\n\t\t\t{getAccData(\"accs\").rstusr && getLoginField()}\n\n\t\t\t\n\t\t\t {\n\t\t\t\t\tsetValues({ ...values, olPwd });\n\t\t\t\t\tsetErrors({ ...errors, olPwd: \"\" });\n\t\t\t\t}}\n\t\t\t\tonBlur={(error) => setErrors({ ...errors, olPwd: error.required ? \"Field is required\" : \"\" })}\n\t\t\t\tclassName=\"login_inp mg-b40\"\n\t\t\t\tplaceholder=\"Eg:5678987\"\n\t\t\t\trequired\n\t\t\t\tsuffix={\n\t\t\t\t\t setShowPassword({ ...showPassword, old: !showPassword.old })}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\terrorText={errors.olPwd}\n\t\t\t/>\n\n\t\t\t\n\t\t\t {\n\t\t\t\t\tsetValues({ ...values, nePwd });\n\t\t\t\t\tsetErrors({ ...errors, nePwd: isValid });\n\t\t\t\t}}\n\t\t\t\tonBlur={(error) => setErrors({ ...errors, nePwd: error })}\n\t\t\t/>\n\n\t\t\t\n\t\t\t {\n\t\t\t\t\tsetValues({ ...values, coPwd });\n\t\t\t\t\tsetErrors({ ...errors, coPwd: \"\" });\n\t\t\t\t}}\n\t\t\t\tonBlur={(error) => setErrors({ ...errors, coPwd: error.pattern ? \"\" : \"Entered password is not matching. Please confirm again\" })}\n\t\t\t\tpattern={equalTo(values.nePwd)}\n\t\t\t\tclassName=\"login_inp mg-b40\"\n\t\t\t\tplaceholder=\"Eg:5678987\"\n\t\t\t\tsuffix={\n\t\t\t\t\t setShowPassword({ ...showPassword, confirm: !showPassword.confirm })}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\terrorText={errors.coPwd}\n\t\t\t/>\n\n\t\t\t{/* Show error if any */}\n\t\t\t{props.errorMsg && {props.errorMsg}}\n\n\t\t\t error !== \"\") || !!props.submitState || values.nePwd !== values.coPwd}\n\t\t\t/>\n\t\t\n\t);\n};\n\nexport default ChangePasswordForm;\n","import * as React from \"react\";\nimport LoginPopup from \"../generic/loginPopup\";\nimport ChangePasswordForm, { IChPwFields } from \"../forms/changePasswordForm\";\nimport DeviceContext from \"../../service/indentifyDevice\";\nimport { ELoginPopupState, urls, EResetSubmitState } from \"../loginConstants\";\nimport \"../../../assets/scss/components/login/loginScreen/loginScreen.scss\";\nimport \"../../../assets/scss/components/login/loginScreen/changePasswordScreen.scss\";\nimport \"../../../assets/scss/components/login/generic/loginFormBtmTxt.scss\";\nimport { Link, RouteChildrenProps } from \"react-router-dom\";\nimport { AResetPassword } from \"../../service/login/loginApiService\";\nimport LoginService, { getAccData } from \"../../service/login/loginService\";\nimport LoginStatusScreen from \"./loginStatusScreen\";\nimport logo from \"../../../assets/images/logo_white.jpg\";\n\nexport interface IChangePasswordScreenProps {}\n\nexport interface IChangePasswordScreenState {\n\terrorMsg?: string;\n\tpopupMessage?: string;\n\tsubmitState?: EResetSubmitState;\n}\n\nclass ChangePasswordScreen extends React.Component {\n\tstate: IChangePasswordScreenState = {};\n\n\thandleSubmit = ({ loginId, ...body }: IChPwFields) => {\n\t\tthis.setState({ submitState: EResetSubmitState.ver_password });\n\t\tAResetPassword(this.changePasswordRes, getAccData(\"userID\"), body);\n\t};\n\n\tchangePasswordRes = (res: any) => {\n\t\tif (res.data && res.data.msg) {\n\t\t\tthis.setState({ popupMessage: res.data.msg });\n\t\t} else {\n\t\t\tthis.setState({ errorMsg: res.error.errMsg });\n\t\t}\n\t};\n\n\tonClose = () => {\n\t\tif (LoginService.reUrl) {\n\t\t\tthis.redirect(LoginService.reUrl + (LoginService.params ? \"&\" + LoginService.params : \"\"));\n\t\t} else if (LoginService.fromUrl) {\n\t\t\tthis.redirect(LoginService.fromUrl);\n\t\t} else {\n\t\t\tthis.redirect(urls.home);\n\t\t}\n\t};\n\n\tredirect(url: string) {\n\t\tif (url.indexOf(\"http://\") === 0 || url.indexOf(\"https://\") === 0) {\n\t\t\t// If url is absolute\n\t\t\twindow.location.href = url;\n\t\t} else {\n\t\t\t// if url is relative\n\t\t\tthis.props.history.push(url);\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t :

    Change Password

    \n\t\t\t\t\t}\n\t\t\t\t\tonClose={this.onClose}\n\t\t\t\t\tclassName=\"login_scrn change_pw_scrn\"\n\t\t\t\t>\n\t\t\t\t\t{DeviceContext().isDesktop && (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    Change Password

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\n\t\t\t\t\t
    \n\t\t\t\t\t\t this.setState({ errorMsg: undefined })}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tLogin Help?\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\n\n\t\t\t\t{this.state.popupMessage && (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t);\n\t}\n}\n\nexport default ChangePasswordScreen;\n","import * as React from \"react\";\n\ninterface IAadharSvgProps {\n\twidth: string;\n\theight: string;\n\tviewbox: string;\n}\n\nexport function AadharSvg(props: IAadharSvgProps): JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\nexport default AadharSvg;\n","import * as React from \"react\";\nimport \"../../../assets/scss/components/login/generic/yobInputField.scss\";\nimport { integerExp } from \"../../utils/regex\";\n\nexport interface IYobInputFieldProps {\n\tplaceholder?: string;\n\tonChange: (value: string) => void;\n}\n\nenum EKeyCodes {\n\tBACKSPACE = 8,\n\tLEFT_ARROW = 37,\n\tRIGHT_ARROW = 39\n}\n\nconst YobInputField: React.FC = props => {\n\t// stores the value of each input in array\n\tconst [value, setValue] = React.useState([\"\", \"\", \"\", \"\"]);\n\n\t// when focussed, this helps to colour the border of input_field_cont\n\tconst [focusClass, setFocusClass] = React.useState(\"\");\n\n\tfunction handleChange(v: string, i: number) {\n\t\tif (integerExp.test(v)) {\n\t\t\tconst valueCopy = [...value];\n\t\t\tvalueCopy[i] = v;\n\n\t\t\tsetValue(valueCopy);\n\t\t\tprops.onChange(valueCopy.join(\"\"));\n\t\t}\n\t}\n\n\t// go to the previous input\n\tfunction goToPrevious(event: React.KeyboardEvent) {\n\t\tconst form = (event.target as HTMLInputElement).form;\n\t\tconst index = Array.prototype.indexOf.call(form, event.target);\n\t\tconst prevInp = form?.elements[index > 0 ? index - 1 : index] as HTMLInputElement;\n\t\tprevInp.focus();\n\t}\n\n\t// go to next input\n\tfunction goToNext(event: React.KeyboardEvent) {\n\t\tconst form = (event.target as HTMLInputElement).form;\n\t\tconst index = Array.prototype.indexOf.call(form, event.target);\n\t\tconst nextInp = form?.elements[index < value.length - 1 ? index + 1 : index] as HTMLInputElement;\n\t\tnextInp.focus();\n\t}\n\n\tfunction handleKeyUp(e: React.KeyboardEvent) {\n\t\tif (e.keyCode === EKeyCodes.BACKSPACE || e.keyCode === EKeyCodes.LEFT_ARROW) {\n\t\t\t// if backspace or left arrow is pressed\n\t\t\tgoToPrevious(e);\n\t\t} else if ((e.keyCode >= 48 && e.keyCode <= 57) || e.keyCode === EKeyCodes.RIGHT_ARROW) {\n\t\t\t// if number key or right arrow is pressed\n\t\t\tgoToNext(e);\n\t\t}\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t{value.map((_, i) => (\n\t\t\t\t handleChange(e.target.value, i)}\n\t\t\t\t\tonFocus={() => setFocusClass(\" focus\")}\n\t\t\t\t\tonBlur={() => setFocusClass(\"\")}\n\t\t\t\t\tclassName={\"yob_inp mg-b10\" + focusClass}\n\t\t\t\t\ttype=\"tel\"\n\t\t\t\t\tmin={0}\n\t\t\t\t\tmax={9}\n\t\t\t\t\tmaxLength={1}\n\t\t\t\t\tonKeyUp={e => handleKeyUp(e)}\n\t\t\t\t\tid={\"yob-\" + i}\n\t\t\t\t/>\n\t\t\t))}\n\t\t
    \n\t);\n};\n\nexport default YobInputField;\n","import React from \"react\";\nimport \"../../assets/scss/components/generic/checkbox.scss\";\n\nexport interface ICheckboxProps {\n\tchecked: boolean; // true if checkbox is checked, else false\n\tname: string; // name for input checkbox\n\tdisabled?: boolean; // if disabled then pass true\n\tonChange: (event: React.ChangeEvent) => void; // function to be called on change\n}\n\nconst Checkbox: React.FC = props => {\n\treturn (\n\t\t\n\t);\n};\n\nexport default Checkbox;\n","import * as React from \"react\";\nimport LoginPopup from \"../generic/loginPopup\";\nimport DeviceContext from \"../../service/indentifyDevice\";\nimport AadharSvg from \"../../../assets/icons/svgIcons/aadharSvg\";\nimport \"../../../assets/scss/components/login/loginScreen/loginScreen.scss\";\nimport \"../../../assets/scss/components/login/loginScreen/link_aadhar.scss\";\nimport InputField from \"../../generic/inputField\";\nimport Checkbox from \"../../generic/checkbox\";\nimport EdButton from \"../../generic/edButton\";\nimport logo from \"../../../assets/images/logo_white.jpg\";\n\nexport interface ILinkAadharScreenProps {}\n\nexport interface ILinkAadharScreenState {\n aadharNo: string;\n readTnC: boolean;\n}\n\nclass LinkAadharScreen extends React.Component<\n ILinkAadharScreenProps,\n ILinkAadharScreenState\n> {\n state: ILinkAadharScreenState = { aadharNo: \"\", readTnC: false };\n\n handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n //console.log(\"submit\");\n };\n\n render() {\n return (\n \n ) : undefined\n }\n centerHeaderContent={\n DeviceContext().isMobile ? undefined : (\n \"nuvama\"\n )\n }\n onClose={() => {}}\n className=\"change_pw_scrn\"\n >\n
    \n
    \n

    Link Your Aadhar Card

    \n\n \n\n

    \n To ensure seamless trading it is mandatory to update your Aadhar\n details with us by March 31st 2030.\n
    \n Update details Now!\n

    \n
    \n\n
    \n \n \n this.setState({\n aadharNo: value\n .replace(/\\W/gi, \"\")\n .replace(/(.{4})/g, \"$1 \")\n .trim(),\n })\n }\n onBlur={() => {}}\n className=\"login_inp mg-b20\"\n placeholder=\"Eg:8023 2355 4173\"\n />\n\n this.setState({ readTnC: e.target.checked })}\n >\n \n I have read all the Terms and conditions\n \n \n\n
    \n \n \n
    \n \n
    \n \n );\n }\n}\n\nexport default LinkAadharScreen;\n","import * as React from \"react\";\nimport LoginPopup from \"../generic/loginPopup\";\nimport DeviceContext from \"../../service/indentifyDevice\";\nimport \"../../../assets/scss/components/login/loginScreen/loginScreen.scss\";\nimport \"../../../assets/scss/components/login/loginScreen/rmRatingScreen.scss\";\nimport EdButton from \"../../generic/edButton\";\nimport { getPreLoginData } from \"../../service/login/loginService\";\nimport logo from \"../../../assets/images/logo_white.jpg\";\n\nexport interface IRmRatingScreenProps {\n\tonSubmit: (body: any) => void;\n\tonClose?: () => void;\n}\n\nexport interface IRmRatingScreenState {\n\trt: number;\n\tstarHover: number;\n\tadvisorName: string;\n\tselectedTags: Array;\n\tshowTextarea: boolean;\n\tfeedback: string;\n}\n\nclass RmRatingScreen extends React.Component {\n\tstate: IRmRatingScreenState = { rt: 0, starHover: 0, advisorName: \"Virendra Pawar\", selectedTags: [], showTextarea: false, feedback: \"\" };\n\n\tstarRatingMsg = [\n\t\t\"How happy are you with your advisor?\",\n\t\t\"Very Unhappy\",\n\t\t\"Unhappy\",\n\t\t\"Average\",\n\t\t\"Glad you liked it!\",\n\t\t\"Glad to have made you smile!\"\n\t];\n\n\twentWrongTags = [\"Quality of Advice\", \"Professionalism\", \"Timely Update & Communication\", \"Execution of Requests\", \"Other Reasons\"];\n\tcomplimentTags = [\n\t\t{ icon: \"edel-icon-star-plus\", msg: \"6 Star
    Service\" },\n\t\t{ icon: \"edel-icon-phone\", msg: \"Extremely
    Professional\" },\n\t\t{ icon: \"edel-icon-people-talk\", msg: \"Expert
    Advise\" },\n\t\t{ icon: \"edel-icon-fast-time\", msg: \"Timely
    Execution\" },\n\t\t{ icon: \"edel-icon-communication\", msg: \"Excellent
    Communication\" }\n\t];\n\n\ttoggleSelectedTags = (index: number) => {\n\t\tlet selectedTags: Array = [];\n\n\t\tif (this.state.selectedTags.indexOf(index) > -1) {\n\t\t\t// this tag is already selected\n\t\t\tselectedTags = this.state.selectedTags.filter((tag) => tag !== index);\n\t\t} else {\n\t\t\t// select this tag\n\t\t\tselectedTags = [...this.state.selectedTags, index];\n\t\t}\n\n\t\t// if star rating is less than 5, then show textarea only if \"Other Reasons\" is selected\n\t\t// otherwise if star rating is 5, the show textarea only is it was previously showing\n\t\tthis.setState({\n\t\t\tselectedTags,\n\t\t\tshowTextarea:\n\t\t\t\tthis.state.rt < 5 ? !!selectedTags.find((tagIndex) => tagIndex === this.wentWrongTags.length - 1) : this.state.showTextarea\n\t\t});\n\t};\n\n\tgetBodyForApi = (sts: \"S\" | \"C\" | \"L\") => {\n\t\treturn {\n\t\t\trt: this.state.rt,\n\t\t\tfbTxt: this.state.rt < 5 && this.state.rt > 0 ? this.state.feedback : null,\n\t\t\tcompLst:\n\t\t\t\tthis.state.rt === 5\n\t\t\t\t\t? this.state.selectedTags.map((tag) => this.complimentTags[tag].msg.replace(//g, \" \")).join(\";\")\n\t\t\t\t\t: null,\n\t\t\tprsNt: this.state.rt === 5 ? this.state.feedback : null,\n\t\t\tfbLst: this.state.rt < 5 && this.state.rt > 0 ? this.state.selectedTags.map((tag) => this.wentWrongTags[tag]).join(\";\") : null,\n\t\t\taccTyp: getPreLoginData(\"accTyp\"),\n\t\t\tsrc: \"EWIN\",\n\t\t\tsts\n\t\t};\n\t};\n\n\thandleSubmit = () => {\n\t\tthis.props.onSubmit(this.getBodyForApi(\"S\"));\n\t};\n\n\thandleNotInterested = () => {\n\t\tthis.props.onSubmit(this.getBodyForApi(\"C\"));\n\t};\n\n\thandleRemindLater = () => {\n\t\tthis.props.onSubmit(this.getBodyForApi(\"L\"));\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t : undefined}\n\t\t\t\tcenterHeaderContent={DeviceContext().isMobile ? undefined : \"nuvama\"}\n\t\t\t\tonClose={this.props.onClose}\n\t\t\t\tclassName=\"change_pw_scrn\"\n\t\t\t>\n\t\t\t\t
    \n\t\t\t\t\t

    Rate your Advisor

    \n\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    {this.state.advisorName}

    \n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tKnow Your Advisor \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\n\t\t\t\t\t

    {this.starRatingMsg[this.state.rt]}

    \n\n\t\t\t\t\t
    \n\t\t\t\t\t\t{this.starRatingMsg.map((_, i) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{i < 1 ? undefined : (\n\t\t\t\t\t\t\t\t\t= i || this.state.rt >= i ? \"filled\" : \"unfilled\")}\n\t\t\t\t\t\t\t\t\t\tonClick={() => this.setState({ rt: i, selectedTags: [], showTextarea: false })}\n\t\t\t\t\t\t\t\t\t\tonMouseEnter={() => this.setState({ starHover: i })}\n\t\t\t\t\t\t\t\t\t\tonMouseLeave={() => this.setState({ starHover: 0 })}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\t\t\t\t\t
    \n\n\t\t\t\t\t{this.state.rt > 0 && (\n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t{this.state.rt < 5 ? \"Tell us what went wrong?\" : `Give ${this.state.advisorName} a compliment`}\n\t\t\t\t\t\t

    \n\t\t\t\t\t)}\n\n\t\t\t\t\t{this.state.rt > 0 &&\n\t\t\t\t\t\t(this.state.rt < 5 ? (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{this.wentWrongTags.map((tag, i) => (\n\t\t\t\t\t\t\t\t\t -1 ? \" active\" : \"\")}\n\t\t\t\t\t\t\t\t\t\tonClick={() => this.toggleSelectedTags(i)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{tag}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{this.complimentTags.map((tag, i) => (\n\t\t\t\t\t\t\t\t\t\t -1 ? \" active\" : \"\")}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => this.toggleSelectedTags(i)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{this.state.selectedTags.indexOf(i) > -1 && }\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t\t{!this.state.showTextarea && (\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t this.setState({ showTextarea: true })}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\n\t\t\t\t\t{this.state.showTextarea && (\n\t\t\t\t\t\t this.setState({ feedback: e.target.value })}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{this.state.rt > 0 && }\n\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t);\n\t}\n}\n\nexport default RmRatingScreen;\n","import * as React from \"react\";\nimport DeviceContext from \"../../service/indentifyDevice\";\nimport LoginPopup from \"../generic/loginPopup\";\nimport { ELoginScreenState } from \"../loginConstants\";\nimport \"../../../assets/scss/components/login/loginScreen/openAccountScreen.scss\";\nimport EdButton from \"./../../generic/edButton\";\nimport { changeScreen } from \"../../service/login/loginService\";\nimport loginURLConfig from \"../../../config/login/loginURLConfig\";\nimport logo from \"../../../assets/images/logo_white.jpg\";\n\nexport interface IOpenAccountScreenProps {\n\tonClose?: () => void;\n}\n\nconst OpenAccountScreen: React.FC = (props) => {\n\tconst content = (\n\t\t
    \n\t\t\t

    Account type

    \n\t\t\t

    Equity

    \n\t\t\t

    Trade in Equities, Currencies, Derivatives, Mutual Funds, NCDs and ETFs available on NSE and BSE

    \n\t\t\t\n\t\t\t\tProceed\n\t\t\t\n\t\t\t

    \n\t\t\t\tInterested in opening a commodities account?{\" \"}\n\t\t\t\t changeScreen(ELoginScreenState.LEAD_FORM)} />\n\t\t\t

    \n\t\t
    \n\t);\n\n\treturn DeviceContext().isDesktop ? (\n\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\"nuvama\"\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t{content}\n\t\t\t\t\t
    Nuvamawealth.com(TOC) Ver. 1.0.0.5
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t) : (\n\t\t} onClose={props.onClose} className=\"login_scrn\">\n\t\t\t{content}\n\t\t\n\t);\n};\n\nexport default OpenAccountScreen;\n","// bottom text to be shown on some screens\n// contains login help and account creation link\n\n// This file is the common bottom text for some screens\n\nimport * as React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport \"../../../assets/scss/components/login/generic/loginFormBtmTxt.scss\";\nimport EdButton from \"./../../generic/edButton\";\nimport { changeScreen } from \"../../service/login/loginService\";\nimport { ELoginScreenState } from \"../loginConstants\";\n\nexport interface ILoginFormBtmTxtProps {}\n\nconst LoginFormBtmTxt: React.FC = () => {\n\treturn (\n\t\t
    \n\t\t\t

    \n\t\t\t\t\n\t\t\t\t\tLogin Help?\n\t\t\t\t\n\t\t\t

    \n\t\t\t

    \n\t\t\t\tNew User? changeScreen(ELoginScreenState.ACC_OPENING)} />\n\t\t\t

    \n\t\t
    \n\t);\n};\n\nexport default LoginFormBtmTxt;\n","import * as React from \"react\";\nimport InputField from \"../../generic/inputField\";\nimport EdButton from \"../../generic/edButton\";\nimport LoginFormBtmTxt from \"../generic/loginFormBtmTxt\";\nimport \"../../../assets/scss/components/login/forms/loginIdForm.scss\";\nimport \"../../../assets/scss/components/login/generic/loginInput.scss\";\nimport LoginErrMsg from \"../generic/loginErrMsg\";\nimport { alphaNumExp } from \"../../utils/regex\";\n\nexport interface ILoginIdFormProps {\n\tdisableForm: boolean; // used to disable/enable form from parent\n\tuserName?: string; // default username for the field\n\terrorMsg?: string; // error message that came from api\n\tonSubmit: (userName: string) => void; // function to be called on submit\n\tonRemoveError: () => void; // removes the errorMsg\n}\n\nconst LoginIdForm: React.FC = props => {\n\t// stores the userName entered by the user\n\tconst [userName, setUserName] = React.useState(props.userName || \"\");\n\n\tfunction handleSubmit(e: React.FormEvent) {\n\t\te.preventDefault();\n\t\tprops.onSubmit(userName);\n\t}\n\n\tfunction onSetUserName(value: string) {\n\t\t// if errorMsg is present, then remove it\n\t\tif (props.errorMsg) {\n\t\t\tprops.onRemoveError();\n\t\t}\n\n\t\tif (alphaNumExp.test(value)) {\n\t\t\tsetUserName(value);\n\t\t\treturn value;\n\t\t} else {\n\t\t\tsetUserName(userName);\n\t\t\treturn userName;\n\t\t}\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t {}}\n\t\t\t\t\tclassName=\"login_inp mg-b40\"\n\t\t\t\t\tplaceholder=\"Eg:5678987\"\n\t\t\t\t\tmaxLength={24}\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t/>\n\n\t\t\t\t{/* Show error if any */}\n\t\t\t\t{props.errorMsg && {props.errorMsg}}\n\n\t\t\t\t{/* Disable button if username is blank or form is disabled from outside */}\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t
    \n\t);\n};\n\nexport default LoginIdForm;\n","import * as React from \"react\";\nimport LoginPopup from \"../generic/loginPopup\";\nimport DeviceContext from \"../../service/indentifyDevice\";\nimport LoginIdForm, { ILoginIdFormProps } from \"../forms/loginIdForm\";\nimport logo from \"../../../assets/images/logo_white.jpg\"\n\nexport interface ILoginIdScreenProps extends ILoginIdFormProps {\n\tonClose?: () => void;\n}\n\nconst LoginIdScreen: React.FC = (props) => {\n\treturn (\n\t\t : undefined}\n\t\t\tcenterHeaderContent={DeviceContext().isDesktop ? \"nuvama\" : undefined}\n\t\t\tonClose={props.onClose}\n\t\t\tclassName=\"login_scrn\"\n\t\t>\n\t\t\t\n\t\t\n\t);\n};\n\nexport default LoginIdScreen;\n","import * as React from \"react\";\nimport Checkbox from \"../../generic/checkbox\";\nimport \"../../../assets/scss/components/login/generic/loginSecureImg.scss\";\n\nexport interface ILoginSecureImgProps {\n\timgSrc: string;\n\tchecked: boolean;\n\tonCheckboxChange: (checked: boolean) => void;\n\tclassName?: string;\n}\n\nconst LoginSecureImg: React.FC = props => {\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t\"\"\n\t\t\t\t\n\t\t\t\n\t\t\t props.onCheckboxChange(e.target.checked)} />\n\t\t
    \n\t);\n};\n\nexport default LoginSecureImg;\n","import * as React from \"react\";\nimport EdButton from \"../../generic/edButton\";\nimport LoginFormBtmTxt from \"../generic/loginFormBtmTxt\";\nimport RadioButton from \"../../generic/radioButton\";\nimport InputField from \"../../generic/inputField\";\nimport LoginSecureImg from \"../generic/loginSecureImg\";\nimport LoginErrMsg from \"../generic/loginErrMsg\";\nimport \"../../../assets/scss/components/login/forms/passwordForm.scss\";\nimport \"../../../assets/scss/components/login/generic/loginInput.scss\";\n\nexport interface IPasswordFormProps {\n\tloginId: string; // login id that was entered by the user in loginIdForm\n\tsecurityImgObj?: Array; // security image object that comes from api\n\tdisableForm: boolean; // used to disable/enable form from parent\n\terrorMsg?: string; // error message that came from api\n\tonEditLoginId: () => void; // when user clicks on edit icon\n\tonSubmit: (pwd: string, accTyp: string) => void; // function to be called on submit\n\tonRemoveError: () => void; // removes the errorMsg\n}\n\n// Form fields\nexport interface IPasswordFormState {\n\tselectedAcc?: \"EQ\" | \"CO\";\n\tshowPassword: boolean;\n\tsecureImgChecked: boolean;\n}\n\nconst PasswordForm: React.FC = props => {\n\tconst [selectedAcc, setSelectedAcc] = React.useState<\"EQ\" | \"CO\" | undefined>(\n\t\tprops.securityImgObj ? props.securityImgObj[0].typ : undefined\n\t);\n\tconst [showPassword, setShowPassword] = React.useState(false);\n\tconst [password, setPassword] = React.useState(\"\");\n\tconst [secureImgChecked, setSecureImgChecked] = React.useState(true);\n\n\tfunction handleSubmit(e: React.FormEvent) {\n\t\te.preventDefault();\n\t\tprops.onSubmit(password, selectedAcc as string);\n\t}\n\n\tfunction onSelectAcc(accType: \"EQ\" | \"CO\" | undefined) {\n\t\tsetSelectedAcc(accType);\n\t\tsetShowPassword(false);\n\t\tsetPassword(\"\");\n\t}\n\n\t// if any field in the below mentioned array is edited && if errorMsg exists, then remove the errorMsg\n\tReact.useEffect(\n\t\t(...a) => {\n\t\t\tif (props.errorMsg) {\n\t\t\t\tprops.onRemoveError();\n\t\t\t}\n\t\t},\n\t\t[password, selectedAcc]\n\t);\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t

    \n\t\t\t\t\t{props.loginId} \n\t\t\t\t

    \n\n\t\t\t\t{/* If there are two security images then the same account name is in both type of accounts */}\n\t\t\t\t{props.securityImgObj && props.securityImgObj.length > 1 && (\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    Your current login ID is same in equity & commodity

    \n\t\t\t\t\t\t

    Select the account to login

    \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t onSelectAcc(\"EQ\")}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t onSelectAcc(\"CO\")}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t)}\n\n\t\t\t\t\n\t\t\t\t {}}\n\t\t\t\t\tclassName=\"login_inp mg-b40\"\n\t\t\t\t\tplaceholder=\"Eg:5678987\"\n\t\t\t\t\tsuffix={ setShowPassword(!showPassword)} />}\n\t\t\t\t/>\n\n\t\t\t\t imgObj.typ === selectedAcc).img : \"\")\n\t\t\t\t\t}\n\t\t\t\t\tchecked={secureImgChecked}\n\t\t\t\t\tonCheckboxChange={setSecureImgChecked}\n\t\t\t\t/>\n\n\t\t\t\t{/* Show error if any */}\n\t\t\t\t{props.errorMsg && {props.errorMsg}}\n\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t
    \n\t);\n};\n\nexport default PasswordForm;\n","import * as React from \"react\";\nimport LoginPopup from \"../generic/loginPopup\";\nimport PasswordForm from \"../forms/passwordForm\";\nimport DeviceContext from \"../../service/indentifyDevice\";\nimport \"../../../assets/scss/components/login/loginScreen/loginScreen.scss\";\nimport { IPasswordFormProps } from \"./../forms/passwordForm\";\nimport logo from \"../../../assets/images/logo_white.jpg\";\nexport interface IPasswordScreenProps extends IPasswordFormProps {\n\tonClose?: () => void;\n}\n\nconst PasswordScreen: React.FC = (props) => {\n\treturn (\n\t\t : undefined}\n\t\t\tcenterHeaderContent={DeviceContext().isDesktop ? \"nuvama\" : undefined}\n\t\t\tonClose={props.onClose}\n\t\t\tclassName=\"login_scrn\"\n\t\t>\n\t\t\t\n\t\t\n\t);\n};\n\nexport default PasswordScreen;\n","import * as React from \"react\";\nimport LoginPopup from \"../generic/loginPopup\";\nimport DeviceContext from \"../../service/indentifyDevice\";\nimport LoginFormBtmTxt from \"../generic/loginFormBtmTxt\";\nimport EdButton from \"../../generic/edButton\";\nimport YobInputField from \"../generic/yobInputField\";\nimport \"../../../assets/scss/components/login/loginScreen/loginScreen.scss\";\nimport \"../../../assets/scss/components/login/loginScreen/yobScreen.scss\";\nimport LoginErrMsg from \"../generic/loginErrMsg\";\nimport logo from \"../../../assets/images/logo_white.jpg\";\n\nexport interface IYobScreenProps {\n\tdisableForm: boolean;\n\terrorMsg?: string;\n\tonSubmit: (yob: string) => void;\n\tonClose?: () => void;\n}\n\nconst YobScreen: React.FC = (props) => {\n\tconst [yob, setYob] = React.useState(\"\");\n\n\tfunction handleSubmit(e: React.FormEvent) {\n\t\te.preventDefault();\n\t\tprops.onSubmit(yob);\n\t}\n\n\treturn (\n\t\t : undefined}\n\t\t\tcenterHeaderContent={DeviceContext().isDesktop ? \"nuvama\" : undefined}\n\t\t\tonClose={props.onClose}\n\t\t\tclassName=\"login_scrn\"\n\t\t>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t

    * For HUF/corporate, enter your year of incorporation/ registration.

    \n\n\t\t\t\t\t{props.errorMsg && {props.errorMsg}}\n\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t
    \n\t\t\n\t);\n};\n\nexport default YobScreen;\n","import * as React from \"react\";\nimport LoginPopup from \"../generic/loginPopup\";\nimport DeviceContext from \"../../service/indentifyDevice\";\nimport \"../../../assets/scss/components/login/loginScreen/loginScreen.scss\";\nimport \"../../../assets/scss/components/login/loginScreen/consent.scss\";\nimport Checkbox from \"../../generic/checkbox\";\nimport EdButton from \"../../generic/edButton\";\nimport SlideUpPopup from \"../../generic/slideUpPopup\";\nimport { IConsentRes } from \"../../types/components/login/loginTypes\";\nimport { consentKeyMap } from \"../loginConstants\";\nimport PropTypes from \"prop-types\";\nimport logo from \"../../../assets/images/logo_white.jpg\";\nexport interface ConsentScreenProps {\n\tconsents: Array;\n\tmandatory: boolean;\n\tdisable: boolean;\n\tonSubmit: (consents: Array) => void;\n\tonClose?: () => void;\n}\n\nexport interface ConsentScreenState {\n\tconsents: Array;\n\tisSlideUpPopupOpen?: boolean;\n}\n\nclass ConsentScreen extends React.Component {\n\tstate: ConsentScreenState = { consents: [] };\n\tstatic contextTypes = { scrollToDoc: PropTypes.string };\n\tstatic propTypes = { y: PropTypes.number };\n\n\tcomponentDidMount = () => {\n\t\tthis.setState({ consents: this.props.consents.map((consent) => ({ ...consent, checked: true })) });\n\t};\n\n\tscroll = (id: string) => {\n\t\tif (DeviceContext().isMobile) {\n\t\t\tthis.setState({ isSlideUpPopupOpen: false });\n\t\t}\n\n\t\t(document.getElementsByClassName(\"cnsnts\")[0] as HTMLDivElement).scrollTo({\n\t\t\ttop: (document.getElementById(id)?.offsetTop || 0) - (document.getElementsByClassName(\"cnsnts\")[0] as HTMLDivElement).offsetTop,\n\t\t\tleft: 0,\n\t\t\tbehavior: \"smooth\"\n\t\t});\n\t};\n\n\tonCheckboxToggle = (index: number) => {\n\t\tif (index >= 0) {\n\t\t\tconst consents = [...this.state.consents];\n\t\t\tconst consent = { ...consents[index] };\n\n\t\t\tconsent.checked = !this.state.consents[index].checked;\n\t\t\tconsents[index] = consent;\n\n\t\t\tthis.setState({ consents });\n\t\t} else {\n\t\t\tconst isAllSelected = this.state.consents.every((consent) => consent.checked);\n\t\t\t// if all are not selected then select all, otherwise unselect all\n\t\t\tthis.setState({ consents: this.state.consents.map((consent) => ({ ...consent, checked: !isAllSelected })) });\n\t\t}\n\t};\n\n\trender() {\n\t\tconst submitBtn = (\n\t\t\t !consent.checked))}\n\t\t\t\tonClick={() =>\n\t\t\t\t\tthis.props.onSubmit(this.state.consents.map((consent) => ({ cnsntNm: consent.key, sts: consent.checked ? \"Y\" : \"RL\" })))\n\t\t\t\t}\n\t\t\t/>\n\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t : undefined}\n\t\t\t\t\tcenterHeaderContent={DeviceContext().isMobile ? undefined : \"nuvama\"}\n\t\t\t\t\tonClose={this.props.onClose}\n\t\t\t\t\tclassName=\"change_pw_scrn\"\n\t\t\t\t>\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    Terms and Conditions

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{this.state.consents.map((consent) => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t\t{consentKeyMap[consent.key]}\n\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t

    \n\t\t\t\t\t\t{!DeviceContext().isMobile && (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{this.state.consents.map((consent, index) => (\n\t\t\t\t\t\t\t\t\t this.onCheckboxToggle(index)}>\n\t\t\t\t\t\t\t\t\t\tI understand and accept{\" \"}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{DeviceContext().isMobile ? (\n\t\t\t\t\t\t\t\t this.setState({ isSlideUpPopupOpen: true })} />\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\tsubmitBtn\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t{DeviceContext().isMobile && this.state.isSlideUpPopupOpen && (\n\t\t\t\t\t this.setState({ isSlideUpPopupOpen: false })}>\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    Accept Terms and Conditions

    \n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t{this.state.consents.map((consent, index) => (\n\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t this.onCheckboxToggle(index)}>\n\t\t\t\t\t\t\t\t\t\t\tI understand and accept{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t))}\n\n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t consent.checked)}\n\t\t\t\t\t\t\t\t\t\tname=\"consent\"\n\t\t\t\t\t\t\t\t\t\tonChange={() => this.onCheckboxToggle(-1)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\tAccept All\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t{/* Button should be disabled if consent is mandatory and any consent is not selected */}\n\t\t\t\t\t\t\t{submitBtn}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t\n\t\t);\n\t}\n}\n\nexport default ConsentScreen;\n","import * as React from \"react\";\nimport LoginPopup from \"../generic/loginPopup\";\nimport ChangePasswordForm, { IChangePasswordFormProps } from \"../forms/changePasswordForm\";\nimport \"../../../assets/scss/components/login/loginScreen/loginScreen.scss\";\nimport { getPreLoginData } from \"../../service/login/loginService\";\nimport logo from \"../../../assets/images/logo_white.jpg\";\n\nexport interface IResetCredsScreenProps extends IChangePasswordFormProps {\n\tonClose?: () => void;\n}\n\nconst ResetCredsScreen: React.FC = ({ onClose, ...props }) => {\n\treturn (\n\t\t} onClose={onClose} className=\"change_pw_scrn\">\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{getPreLoginData(\"userID\")[0].toUpperCase()}\n\n\t\t\t\t\t

    \n\t\t\t\t\t\tWELCOME {getPreLoginData(\"userID\").split(\" \")[0].toUpperCase()}!\n\t\t\t\t\t

    \n\t\t\t\t\t

    Please take a few minutes to update your login credentials for secure experience

    \n\t\t\t\t
    \n\n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default ResetCredsScreen;\n","import * as React from \"react\";\n\ninterface IBellSvgProps {\n\twidth: string;\n\theight: string;\n\tviewbox: string;\n}\n\nexport function BellSvg(props: IBellSvgProps): JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n}\nexport default BellSvg;\n","import * as React from \"react\";\nimport EdButton from \"../../generic/edButton\";\nimport { BellSvg } from \"../../../assets/icons/svgIcons/bellSvg\";\nimport \"../../../assets/scss/components/login/generic/loginCleverTap.scss\";\n\nexport interface ILoginCleverTapProps {\n\t// functions to be called on click of respective buttons\n\tonRegister: () => void;\n\tonNoThanks: () => void;\n\tonDontShow: () => void;\n}\n\nconst LoginCleverTap: React.FC = props => {\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t

    Register your device with this account

    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\n\t\t\t\t

    Personalised Notification

    \n\t\t\t\t

    Receive only relevant notifications even when not logged in

    \n\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default LoginCleverTap;\n","import * as React from \"react\";\nimport LoginPopup from \"../generic/loginPopup\";\nimport DeviceContext from \"../../service/indentifyDevice\";\nimport LoginCleverTap, { ILoginCleverTapProps } from \"../generic/loginCleverTap\";\nimport logo from \"../../../assets/images/logo_white.jpg\";\n\nexport interface ILoginClevertapScreenProps extends ILoginCleverTapProps {\n\tonClose?: () => void;\n}\n\nconst LoginClevertapScreen: React.FC = (props) => {\n\treturn (\n\t\t : undefined}\n\t\t\tcenterHeaderContent={DeviceContext().isDesktop ? \"nuvama\" : undefined}\n\t\t\tonClose={props.onClose}\n\t\t\tclassName=\"change_pw_scrn\"\n\t\t>\n\t\t\t\n\t\t\n\t);\n};\n\nexport default LoginClevertapScreen;\n","import * as React from \"react\";\nimport LoginPopup from \"./loginPopup\";\nimport \"../../../assets/scss/components/login/generic/rmRatingSuccPopup.scss\";\n\nexport interface IRmRatingSuccPopupProps {\n\tonClose: () => void;\n}\n\nconst RmRatingSuccPopup: React.FC = props => {\n\treturn (\n\t\t\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\n\t\t\t\t

    We have noted your preference

    \n\t\t\t\t

    \n\t\t\t\t\tIf you wish to rate in the future,\n\t\t\t\t\t
    \n\t\t\t\t\tyou can do so anytime.\n\t\t\t\t

    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default RmRatingSuccPopup;\n","import * as React from \"react\";\nimport LoginPopup from \"../generic/loginPopup\";\nimport DeviceContext from \"../../service/indentifyDevice\";\nimport Loader from \"../../generic/loader\";\nimport \"../../../assets/scss/components/login/loginScreen/loginLoaderScreen.scss\";\nimport logo from \"../../../assets/images/logo_white.jpg\";\n\nexport interface ILoginLoaderScreenProps {}\n\nconst LoginLoaderScreen: React.FC = (props) => {\n\treturn (\n\t\t : undefined}\n\t\t\tcenterHeaderContent={DeviceContext().isDesktop ? \"nuvama\" : undefined}\n\t\t\tclassName=\"change_pw_scrn\"\n\t\t>\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\n\t);\n};\n\nexport default LoginLoaderScreen;\n","import * as React from \"react\";\nimport LoginPopup from \"../generic/loginPopup\";\nimport \"../../../assets/scss/components/login/loginScreen/tncConsentScreen.scss\";\nimport EdButton from \"../../generic/edButton\";\nimport logo from \"../../../assets/images/logo_white.jpg\";\n\nexport interface ITncConsentScreenProps {\n\tdisableButton: boolean;\n\tonButtonClick: (save: boolean) => void;\n\tonClose: () => void;\n}\n\nconst TncConsentScreen: React.FC = (props) => {\n\treturn (\n\t\t} onClose={props.onClose} className=\"change_pw_scrn\">\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t

    trendline

    \n\n\t\t\t\t\t

    \n\t\t\t\t\t\tBefore proceeding please note that Nuvama will share the following details with the application mentioned above. Please\n\t\t\t\t\t\treview the same carefully before continuing.\n\t\t\t\t\t

    \n\n\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\tOrder details (including Order Book, Trade Book, Positions, Holdings)\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\tFund Transfer details (including any Fund additions or withdrawals and status)\n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\tLimits and Margin availability details\n\t\t\t\t\t\t
    • \n\t\t\t\t\t
    \n\n\t\t\t\t\t
    \n\t\t\t\t\t\t props.onButtonClick(false)} />\n\t\t\t\t\t\t props.onButtonClick(true)} />\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nexport default TncConsentScreen;\n","import { apiAService } from \"../apiService\";\nimport urlConfig from \"../../../config/domain\";\nimport { jwtToken } from \"../../types/genericTypes\";\nimport LoginService from \"../login/loginService\";\nimport { config } from \"../../../config/domain\";\n\nlet pToken: jwtToken | null = LoginService.pToken,\n userID = pToken ? pToken.username : null;\n\n//after redirect reinstate pToken with parsed jwt token\nconst pTokenCheck = (paramChk?: keyof jwtToken) => {\n if (!pToken) {\n pToken = LoginService.pToken;\n userID = pToken ? pToken.username : null;\n }\n return paramChk && pToken ? pToken[paramChk] : pToken;\n};\nexport const ValidateOtp = async (payload: any) => {\n return await apiAService({\n url: urlConfig.account.VerifyOtp,\n method: \"POST\",\n authType: \"bearer\",\n body: payload,\n });\n};\nexport const GetFamilyRelationshipList = async (payload: any) => {\n return await apiAService({\n url: urlConfig.profile.FamilyRelationshipList,\n method: \"POST\",\n authType: \"bearer\",\n body: payload,\n });\n};\nexport const GetFamilyRelatDropList = async () => {\n return await apiAService({\n url: urlConfig.profile.FamilyDeclarationList,\n method: \"GET\",\n authType: \"bearer\",\n });\n};\nexport const SendOtp = async (payload: any) => {\n return await apiAService({\n url: urlConfig.account.GenerateOtp,\n method: \"POST\",\n authType: \"bearer\",\n body: payload,\n });\n};\nexport const getDPID = async () => {\n return await apiAService({\n url: urlConfig.profile.getDPID,\n method: \"GET\",\n authType: \"bearer\",\n });\n};\nexport const checkValidation = async (payload: any) => {\n return await apiAService({\n url: urlConfig.profile.checkValidation,\n method: \"POST\",\n authType: \"bearer\",\n body: payload,\n });\n};\nexport const CreateServiceRequestDetails = async (payload: any) => {\n return await apiAService({\n url: urlConfig.profile.CreateServiceRequest,\n method: \"POST\",\n authType: \"bearer\",\n body: payload,\n });\n};\n\nexport const GetDepositoryDetails = async () => {\n return await apiAService({\n url: urlConfig.profile.DepositoryDetail,\n method: \"GET\",\n authType: \"bearer\",\n });\n};\nexport const GetExistingIncomeRange = async () => {\n return await apiAService({\n url: urlConfig.profile.ExistingIncomeRange,\n method: \"GET\",\n authType: \"bearer\",\n });\n};\nexport const GetNewIncomeRange = async () => {\n return await apiAService({\n url: urlConfig.profile.NewIncomeRange,\n method: \"GET\",\n authType: \"bearer\",\n });\n};\nexport const CreateServiceRequest = async (payload: any) => {\n return await apiAService({\n url: urlConfig.profile.CreateServiceRequest,\n method: \"POST\",\n authType: \"bearer\",\n body: payload,\n });\n};\nexport const ServiceClientValidation = async (payload: any) => {\n return await apiAService({\n url: urlConfig.profile.ServiceClientValidation,\n method: \"POST\",\n authType: \"bearer\",\n body: payload,\n });\n};\nexport const SendWhatsappConsent = async (payload: any) => {\n return await apiAService({\n url: config.whatsapp_consent,\n method: \"POST\",\n authType: \"mwAuth\",\n body: payload,\n });\n};\nexport const ServiceSchemeValidation = async (payload: any) => {\n return await apiAService({\n url: urlConfig.profile.ServiceSchemeValidation,\n method: \"POST\",\n authType: \"bearer\",\n body: payload,\n });\n};\nexport const GetPersonDetails = async () => {\n return await apiAService({\n url: urlConfig.profile.personalDetails,\n method: \"GET\",\n authType: \"bearer\",\n });\n};\nexport const GetbankDetails = async () => {\n return await apiAService({\n url: urlConfig.profile.bankDetails,\n method: \"GET\",\n authType: \"bearer\",\n });\n};\nexport const GetPOAFlagDetails = async () => {\n return await apiAService({\n url: urlConfig.profile.POAFlagDetails,\n method: \"GET\",\n authType: \"bearer\",\n });\n};\n\nexport const GetValidateDetailsSegment = async () => {\n return await apiAService({\n url: urlConfig.profile.POAFlagDetails,\n method: \"GET\",\n authType: \"bearer\",\n });\n};\nexport const GetCKYCValidation = async () => {\n return await apiAService({\n url: urlConfig.profile.GetCKYCValidation,\n method: \"GET\",\n authType: \"bearer\",\n });\n};\n\nexport const GetAdharVerify = async () => {\n return await apiAService({\n url: urlConfig.profile.adharVerify,\n method: \"GET\",\n authType: \"bearer\",\n });\n};\nexport const fatcavalidation = async () => {\n return await apiAService({\n url: urlConfig.profile.FatcaValidation,\n method: \"GET\",\n authType: \"bearer\",\n });\n};\nexport const getServicingDetails = async () => {\n return await apiAService({\n url: urlConfig.profile.ServicingDetails,\n method: \"GET\",\n authType: \"bearer\",\n });\n};\nexport const getPOADownload = async () => {\n return await apiAService({\n url: urlConfig.profile.POADownloadDetails,\n method: \"GET\",\n authType: \"bearer\",\n });\n};\nexport const getDematAcctValidation = async (param: any) => {\n return await apiAService({\n url: urlConfig.profile.DematAcctValidation + param,\n method: \"GET\",\n authType: \"bearer\",\n });\n};\n\nexport const GetPreFilledFormPDF = async (payload: any) => {\n return await apiAService({\n url: urlConfig.profile.GetPreFilledFormPDF,\n method: \"POST\",\n authType: \"bearer\",\n body: payload,\n });\n};\n\nexport const GetEsignUrl = async (payload: any) => {\n return await apiAService({\n url: urlConfig.profile.GetEsignUrlV2,\n method: \"POST\",\n authType: \"bearer\",\n body: payload,\n });\n};\nexport const GetEsignStatus = async (refId: any) => {\n return await apiAService({\n url: urlConfig.profile.GetEsignStatus + \"/\" + refId,\n method: \"GET\",\n authType: \"bearer\",\n });\n};\nexport const DownloadEsignDocument = async (appId: any) => {\n return await apiAService({\n url: urlConfig.profile.DownloadEsignDocumentV2 + \"/\" + appId,\n method: \"GET\",\n authType: \"bearer\",\n // body: payload,\n });\n};\nexport const GetEquityReactivationClientValidation = async () => {\n return await apiAService({\n url: urlConfig.profile.GetEquityReactivationClientValidation,\n method: \"GET\",\n authType: \"bearer\",\n });\n};\n\nexport const CreateChildServiceRequestDetails = async (payload: any) => {\n return await apiAService({\n url: urlConfig.profile.CreateChildServiceRequestDetails,\n method: \"POST\",\n authType: \"bearer\",\n body: payload,\n });\n};\n\nexport const GetAllNewExistingSRDetails = async (id: Number) => {\n return await apiAService({\n url: urlConfig.profile.GetAllNewExistingSRDetails + `/${id}`,\n method: \"GET\",\n authType: \"bearer\",\n });\n};\nexport const getRmDetails = async (payload: any) => {\n return await apiAService({\n url: urlConfig.rmDetails + payload,\n method: \"GET\",\n authType: \"bearer\",\n });\n};\nexport const getMergeDocumentBase64 = async (payload: any) => {\n return await apiAService({\n url: urlConfig.profile.getMergeDocument,\n method: \"POST\",\n authType: \"bearer\",\n body: payload,\n });\n};\nexport const getSelectedDocumentDetails = async (payload: any) => {\n return await apiAService({\n url: urlConfig.profile.getSelectedDocument,\n method: \"POST\",\n authType: \"bearer\",\n body: payload,\n });\n};\nexport const getPaymentBankDetails = async (payload: any) => {\n return await apiAService({\n url: urlConfig.fund.getBankDetails + payload,\n method: \"GET\",\n authType: \"authtoken\",\n });\n};\nexport const paymentGateway = async (payload: any) => {\n let accCode = payload.accCode;\n delete payload.accCode;\n return await apiAService({\n url: urlConfig.fund.paymentGateway + accCode,\n method: \"POST\",\n authType: \"authtoken\",\n body: payload,\n });\n};\nexport const createSRDocumentUpload = async (payload: any) => {\n return await apiAService({\n url: urlConfig.profile.createSRDocumentUpload,\n method: \"POST\",\n authType: \"bearer\",\n body: payload,\n });\n};\nexport const fetchDigiLockerUrl = async (payload: any) => {\n return await apiAService({\n url: urlConfig.profile.fetchDigiLockerUrl,\n method: \"POST\",\n authType: \"bearer\",\n body: payload,\n });\n};\nexport const getMemorandumDetails = async () => {\n return await apiAService({\n url: urlConfig.profile.getMemorandumDetails,\n method: \"GET\",\n authType: \"bearer\",\n });\n};\nexport const createAccReq = async (payload: any) => {\n return await apiAService({\n url: urlConfig.profile.createChildSR,\n method: \"POST\",\n authType: \"bearer\",\n body: payload,\n });\n};\nexport const updateAccReactStatus = async (payload: any) => {\n return await apiAService({\n url: urlConfig.profile.updatAccReactStatus,\n method: \"POST\",\n authType: \"bearer\",\n body: payload,\n });\n};\n\nexport const getDefaultBankValidationDetails = async (queryParams: any) => {\n return await apiAService({\n url: urlConfig.profile.getDefaultBankValidationDetails + queryParams,\n method: \"GET\",\n authType: \"bearer\",\n });\n};\n\nexport const getEquityDormantClientCategoryValidation = async () => {\n return await apiAService({\n url: urlConfig.profile.GetEquityDormantClientCategoryValidation,\n method: \"GET\",\n authType: \"bearer\",\n });\n};\n\nexport const GetNomineeDetails = async () => {\n return await apiAService({\n url: urlConfig.getNomineeDetails + `?accTyp=${pTokenCheck(\"accType\")}`,\n method: \"GET\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n source: sessionStorage.getItem(\"source\") || undefined,\n });\n};\nexport const createServiceReqNomin = async (payload: any) => {\n return await apiAService({\n url: urlConfig.createServiceReqNomin,\n method: \"POST\",\n authType: \"authtoken\",\n body: payload,\n appidkey: urlConfig.appidkey,\n source: sessionStorage.getItem(\"source\") || undefined,\n });\n};\n\nexport const downloadPrefilledNominatinForm = async (srId: string) => {\n return await apiAService({\n url: urlConfig.downloadPrefilledNominatinForm + srId,\n method: \"GET\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n });\n};\nexport const getClientDet = async (param: \"All\" | \"P\" | \"D\" | \"B\",\naccType: \"EQ\" | \"CO\") => {\n return await apiAService({\n url: urlConfig.profile.clientDetails + accType + \"/\" + param,\n method: \"GET\",\n authType: \"bearer\"\n });\n};\nexport const GetDpDetails = async () => {\n return await apiAService({\n url: urlConfig.sr.getDpDetails + `?accTyp=${pTokenCheck(\"accType\")}`,\n method: \"GET\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n source: sessionStorage.getItem(\"source\") || undefined,\n });\n};\n\nexport const accClosureValidate = async (payload: any) => {\n return await apiAService({\n url: urlConfig.sr.accClosureValidate,\n method: \"POST\",\n authType: \"authtoken\",\n body: payload,\n appidkey: urlConfig.appidkey,\n source: sessionStorage.getItem(\"source\") || undefined,\n });\n};\n\nexport const otpSend = async (payload: any) => {\n return await apiAService({\n url: urlConfig.sr.otpSend,\n method: \"POST\",\n authType: \"authtoken\",\n body: payload,\n appidkey: urlConfig.appidkey,\n source: sessionStorage.getItem(\"source\") || undefined,\n });\n};\n\nexport const otpValidate = async (payload: any) => {\n return await apiAService({\n url: urlConfig.sr.otpValidate,\n method: \"POST\",\n authType: \"authtoken\",\n body: payload,\n appidkey: urlConfig.appidkey,\n source: sessionStorage.getItem(\"source\") || undefined,\n });\n};\n\nexport const accClosureSR = async (payload: any) => {\n return await apiAService({\n url: urlConfig.sr.accClosureSR,\n method: \"POST\",\n authType: \"authtoken\",\n body: payload,\n appidkey: urlConfig.appidkey,\n source: sessionStorage.getItem(\"source\") || undefined,\n });\n};\n\nexport const esignUrlJMW = async (payload: any) => {\n return await apiAService({\n url: urlConfig.sr.esignUrlJMW,\n method: \"POST\",\n authType: \"authtoken\",\n body: payload,\n appidkey: urlConfig.appidkey,\n source: sessionStorage.getItem(\"source\") || undefined,\n });\n};\nexport const getEsignStatusJMW = async (refId: any) => {\n return await apiAService({\n url: urlConfig.sr.esignStatusJMW + \"?id=\" + refId,\n method: \"GET\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n source: sessionStorage.getItem(\"source\") || undefined,\n });\n};\nexport const esignDownloadJMW = async (id: string) => {\n return await apiAService({\n url: urlConfig.sr.esignDownloadJMW + `?id=` + id,\n method: \"GET\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n source: sessionStorage.getItem(\"source\") || undefined,\n });\n};\n\nexport const checkExistingSr = async (payload: any) => {\n return await apiAService({\n url: urlConfig.sr.getServiceDet,\n method: \"POST\",\n authType: \"authtoken\",\n body: payload,\n appidkey: urlConfig.appidkey,\n source: sessionStorage.getItem(\"source\") || undefined,\n });\n};\n\nexport const getDdpiDetails = async () => {\n return await apiAService({\n url: urlConfig.sr.getDdpiDetails + `?accTyp=${pTokenCheck(\"accType\")}`,\n method: \"GET\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n source: sessionStorage.getItem(\"source\") || undefined,\n });\n};\n\nexport const DdpiValidation = async (payload: any) => {\n return await apiAService({\n url: urlConfig.sr.getDdpiValidation,\n method: \"POST\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n body: payload,\n });\n};\n\nexport const createDdpiSR = async (payload: any) => {\n return await apiAService({\n url: urlConfig.sr.createDdpiSR,\n method: \"POST\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n body: payload,\n });\n};\n\nexport const getDDPIPreFilledFormPDF = async () => {\n return await apiAService({\n url:\n urlConfig.sr.ddpiPreFilledFormPDF + `?accTyp=${pTokenCheck(\"accType\")}`,\n method: \"GET\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n source: sessionStorage.getItem(\"source\") || undefined,\n });\n};\n\nexport const smtfValidation = async () => {\n return await apiAService({\n url: urlConfig.sr.getSMTFValidation + `?accTyp=${pTokenCheck(\"accType\")}`,\n method: \"GET\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n source: sessionStorage.getItem(\"source\") || undefined,\n });\n};\n\nexport const createSMTFSR = async (payload: any) => {\n return await apiAService({\n url: urlConfig.sr.createSMTFSR,\n method: \"POST\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n body: payload,\n });\n};\n\nexport const createSegmentDeactivationSR = async (payload: any) => {\n return await apiAService({\n url: urlConfig.sr.createSegmentDeactivation,\n method: \"POST\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey,\n body: payload,\n });\n};\n\nexport const validateSegmentDeactivation = async () => {\n return await apiAService({\n url: urlConfig.sr.validateSegDeactivation + `?accTyp=${pTokenCheck(\"accType\")}`,\n method: \"GET\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey\n });\n};\n\nexport const EqPositions = async () => {\n return await apiAService({\n url: urlConfig.position.eq2 + userID,\n method: \"GET\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey\n });\n};\n\nexport const CommPositions = async () => {\n return await apiAService({\n url: urlConfig.position.commodity + userID,\n method: \"GET\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey\n });\n};\n\nexport const EqOrderbook = async () => {\n return await apiAService({\n url: urlConfig.orderBook.eq + userID + \"/v1\",\n method: \"GET\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey\n });\n};\n\nexport const CommOrderbook = async () => {\n return await apiAService({\n url: urlConfig.orderBook.commodity + userID + \"?rTyp=COMFNO\",\n method: \"GET\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey\n });\n};\n\nexport const MfSipOrderbook = async () => {\n return await apiAService({\n url: urlConfig.orderBook.mfSip + userID,\n method: \"GET\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey\n });\n};\n\nexport const MfOrderbook = async () => {\n return await apiAService({\n url: urlConfig.orderBook.mf + userID,\n method: \"GET\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey\n });\n};\n\nexport const GetBrokerageSlabDetails = async (payload: any) => {\n return await apiAService({\n url: urlConfig.sr.BrokerageSlabDetails,\n method: \"POST\",\n authType: \"authtoken\",\n body: payload,\n appidkey: urlConfig.appidkey\n });\n};\nexport const GetSegmentsDetails = async () => {\n return await apiAService({\n url: urlConfig.sr.getSegmentsDetails + `?accTyp=${pTokenCheck(\"accType\")}`,\n method: \"GET\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey\n });\n};\nexport const GetSegActivationValidation = async () => {\n return await apiAService({\n url: urlConfig.sr.validateSegActivation + `?accTyp=${pTokenCheck(\"accType\")}`,\n method: \"GET\",\n authType: \"authtoken\",\n appidkey: urlConfig.appidkey\n });\n};\nexport const createSegmentActivationSR = async (payload: any) => {\n return await apiAService({\n url: urlConfig.sr.createSegmentActivation,\n method: \"POST\",\n authType: \"authtoken\",\n body: payload,\n appidkey: urlConfig.appidkey\n });\n};","import React from \"react\";\nimport \"../../assets/scss/components/generic/edModal.scss\";\n\ninterface Props {\n show: boolean;\n close: () => void;\n children: React.ReactElement;\n showCloseOutOfBox?: string;\n modalClsNm?: string;\n closeClsNm?: string; //class names for close link\n}\n\nconst EdModal = (props: Props) => {\n React.useEffect(() => {\n if (props.show) {\n document.body.classList.add(\"modal-open\");\n } else {\n document.body.classList.remove(\"modal-open\");\n }\n }, [props.show]);\n return (\n <>\n {props.show && (\n
    \n )}\n \n {props.showCloseOutOfBox && (\n \n \n \n )}\n <>{props.children}\n
    \n \n );\n};\n\nexport default EdModal;\n","import { apiAService, apiService } from \"../apiService\";\nimport urlConfig from \"../../../config/domain\";\nimport { jwtToken } from \"../../types/genericTypes\";\nimport LoginService from \"../login/loginService\";\nimport moment from \"moment\";\n\nlet pToken: jwtToken | null = LoginService.pToken,\n userID = pToken ? pToken.username : null;\n\n//after redirect reinstate pToken with parsed jwt token\nconst pTokenCheck = (paramChk?: keyof jwtToken) => {\n if (!pToken) {\n pToken = LoginService.pToken;\n userID = pToken ? pToken.username : null;\n }\n return paramChk && pToken ? pToken[paramChk] : pToken;\n};\nexport const AProfileGetClientDetails = (\n callback: CallableFunction,\n param: \"All\" | \"P\" | \"D\" | \"B\",\n accType: \"EQ\" | \"CO\"\n) => {\n if (pTokenCheck(\"accType\")) {\n apiService(\n {\n url: urlConfig.profile.clientDetails + accType + \"/\" + pToken?.accType,\n method: \"GET\",\n authType: \"bearer\",\n },\n callback\n );\n }\n};\n\nexport const asyncGetClientDetails = async (\n param: \"All\" | \"P\" | \"D\" | \"B\",\n accType: \"EQ\" | \"CO\"\n) => {\n if (pTokenCheck(\"accType\")) {\n return await apiAService({\n url: urlConfig.profile.clientDetails + accType + \"/\" + pToken?.accType,\n method: \"GET\",\n authType: \"bearer\",\n });\n }\n};\n\nexport const AProfileGetPersonalDetails = (callback: CallableFunction) => {\n if (pTokenCheck(\"accType\")) {\n apiService(\n {\n url:\n pToken?.accType !== \"CO\"\n ? urlConfig.profile.personalDetails\n : urlConfig.profile.personalDetailsCOM,\n method: \"GET\",\n authType: \"bearer\",\n },\n callback\n );\n }\n};\n\nexport const asyncGetPersonalDetails = async () => {\n if (pTokenCheck(\"accType\")) {\n return await apiAService({\n url:\n pToken?.accType !== \"CO\"\n ? urlConfig.profile.personalDetails\n : urlConfig.profile.personalDetailsCOM,\n method: \"GET\",\n authType: \"bearer\",\n });\n }\n};\nexport const AClientProfilePicture = (callback: CallableFunction) => {\n if (pTokenCheck(\"accType\")) {\n //ClientProfilePicture api call\n apiService(\n {\n url: urlConfig.profile.ClientProfilePicture,\n method: \"GET\",\n authType: \"bearer\",\n },\n callback\n );\n }\n};\n\nexport const asyncGetProfilePicture = async () => {\n if (pTokenCheck(\"accType\")) {\n return await apiAService({\n url: urlConfig.profile.ClientProfilePicture,\n method: \"GET\",\n authType: \"bearer\",\n });\n }\n};\nexport const AServicingDetails = (callback: CallableFunction) => {\n if (pTokenCheck(\"accType\")) {\n //ServicingDetails api call\n apiService(\n {\n url:\n pToken?.accType !== \"CO\"\n ? urlConfig.profile.ServicingDetails\n : urlConfig.profile.ServicingDetailsCOM,\n method: \"GET\",\n authType: \"bearer\",\n },\n callback\n );\n }\n};\n\nexport const asyncServicingDetails = async () => {\n if (pTokenCheck(\"accType\")) {\n return await apiAService({\n url:\n pToken?.accType !== \"CO\"\n ? urlConfig.profile.ServicingDetails\n : urlConfig.profile.ServicingDetailsCOM,\n method: \"GET\",\n authType: \"bearer\",\n });\n }\n};\n\nexport const asyncGetMessageDetails = async () => {\n if (pTokenCheck(\"accType\")) {\n return await apiAService({\n url:\n pToken?.accType !== \"CO\"\n ? urlConfig.profile.GetMessageDetails\n : urlConfig.profile.GetMessageDetailsCOM,\n method: \"GET\",\n authType: \"bearer\",\n });\n }\n};\n\nexport const asyncGetServiceRequest = async (id?: number) => {\n if (pTokenCheck(\"accType\")) {\n var edDate = new Date();\n var stDate = new Date(moment().subtract(7, 'days').format());\n var stDt = moment(new Date(stDate)).format('YYYY-MM-DD');\n var edDt = moment(new Date(edDate)).format('YYYY-MM-DD'); \n var tempQString = stDt + \"/\" + edDt + \"/\"; \n return await apiAService({\n url: urlConfig.profile.GetServiceRequest + tempQString + `${id ? id : 0}` ,\n method: \"GET\",\n authType: \"bearer\",\n });\n }\n};\n","import React from \"react\";\nimport EdButton from \"../../../generic/edButton\";\nimport EdModal from \"../../../generic/edModal\";\nimport \"../../../../assets/scss/components/clientarea/serviceRequest/serviceRequest.scss\";\nimport { apiService } from \"../../../service/apiService\";\nimport urlConfig, { config } from \"../../../../config/domain\";\nimport { asyncGetServiceRequest } from \"../../../service/postLogin/clientProfileAPIService\";\nimport {\n CreateServiceRequestDetails,\n ServiceClientValidation,\n} from \"../../../service/serviceRequest/srApiService\";\nimport { getAccData } from \"../../../service/login/loginService\";\nimport Loader from \"../../../generic/loader\";\ninterface IHome {}\n\nexport const IncomeDeclarationConsent = (props: IHome) => {\n const [styles, setStyles] = React.useState({} as any);\n const [loader, setLoader] = React.useState(false);\n const [error, setError] = React.useState(false);\n\n function redirect(url: string) {\n if (url.indexOf(\"http://\") === 0 || url.indexOf(\"https://\") === 0) {\n // If url is absolute\n window.location.href = url;\n }\n }\n const onSubmit = async () => {\n setLoader(true);\n const consentList = getAccData(\"cnsntLst\");\n const dormantList = [\"eqIncmDclr\", \"invAddress\", \"emailMob\"];\n const checkList = consentList.map((list: any) => {\n if (dormantList.includes(list.name)) {\n return list;\n }\n });\n if (checkList.lenght > 1) {\n try {\n const payload = {\n requestType: \"Account Reactivation\",\n dpID: \"None\",\n };\n const serviceList = await asyncGetServiceRequest();\n let response = await ServiceClientValidation({\n subType: \"Equity Dormant Reactivation\",\n });\n const sr = serviceList.filter(\n (srReq: any) =>\n srReq.RequestType === \"Equity Dormant Reactivation\" &&\n [\n \"Draft Saved\",\n \"Submitted\",\n \"AssignedtoHO\",\n \"InProcess\",\n \"PendingforEsign\",\n \"EsignVerified\",\n \"EsignSubmitted\",\n \"AssignedforEsignQC\",\n \"EsignVerified\",\n \"PushToTarget\",\n \"MemorandumPaymentPending\",\n ].includes(srReq.RequestStatus)\n )[0];\n if (response === \"BOAcoountNumber not found\") {\n const accReact = await CreateServiceRequestDetails(payload);\n if (accReact && accReact.Message)\n localStorage.setItem(\n \"accReactParentDetails\",\n JSON.stringify(accReact)\n );\n else {\n setLoader(false);\n setError(true);\n return;\n }\n } else {\n localStorage.setItem(\"accReactParentDetails\", JSON.stringify(sr));\n }\n setLoader(false);\n redirect(\n config.root + \"/clientarea/service-request/account-reactivation\"\n );\n } catch (err) {\n setLoader(false);\n setError(true);\n }\n } else {\n setLoader(false);\n redirect(\n config.root +\n \"/clientarea/service-request/income-declaration?incomeConsent=incomeSRDropDown\"\n );\n }\n };\n\n React.useEffect(() => {\n //window.location.replace(URLConfig.config.rootUrl);\n\n return () => {};\n }, []);\n function ModalBody(): React.ReactElement {\n return (\n
    \n
    \n {loader ? (\n \n \n
    \n ) : (\n
    \n {!error && (\n
    \n
    \n
    \n \n
    \n
    \n
    \n

    Income Declaration Needed

    \n

    \n As per the exchange / Depository guidelines it is\n mandatory to update Income details once a year for your\n account. Ensure these details are not older than 12 months\n as on date of updation{\" \"}\n

    \n
    \n
    \n onSubmit()}\n >\n Proceed\n \n
    \n
    \n )}\n {error && (\n
    \n
    \n
    \n \n
    \n
    \n
    \n

    Technical Issue

    \n
    \n
    \n

    \n Facing Some Technical Issue.Please Try Again Later.\n

    \n
    \n
    \n )}\n
    \n )}\n
    \n
    \n );\n }\n return {}} children={ModalBody()} />;\n};\n","import * as React from \"react\";\nimport { config } from \"../../../config/domain\";\nimport EdModal from \"../../generic/edModal\";\nimport Loader from \"../../generic/loader\";\nimport { asyncGetServiceRequest } from \"../../service/postLogin/clientProfileAPIService\";\nimport {\n CreateServiceRequestDetails,\n ServiceClientValidation,\n} from \"../../service/serviceRequest/srApiService\";\ninterface ConsentPopupProps {\n type: string;\n onClose?: () => void;\n}\nconst consentTypes = [\n {\n name: \"email\",\n description:\n \"Please update email in order to avoid deactivation of account\",\n enableCross: false,\n showBtn: true,\n title: \"Update your contact details!\",\n },\n {\n name: \"mobile\",\n description:\n \"Please update mobile number in order to avoid deactivation of account\",\n enableCross: false,\n showBtn: true,\n title: \"Update your contact details!\",\n },\n {\n name: \"emailMob\",\n description:\n \"Please update email & mobile number in order to avoid deactivation of account\",\n enableCross: false,\n showBtn: true,\n title: \"Update your contact details!\",\n },\n {\n name: \"pan\",\n description:\n \"It seems PAN is not valid. Please process new account in offline. Please contact your RM/ Customer service for the same.\",\n enableCross: true,\n showBtn: false,\n title: \"PAN invalid\",\n },\n {\n name: \"name\",\n description:\n \"Account is deactivated due to incorrect name. Please contact your RM/ Customer Service and update name in our records.\",\n enableCross: true,\n showBtn: false,\n title: \"Name mismatch in records!\",\n },\n {\n name: \"nominee\",\n description:\n \"As per SEBI guidelines, it is mandatory to update nominee details in your account.\",\n enableCross: true,\n hintText:\n \"You need to either nominate (Opt-in) OR Opt-out of nomination. If the nomination details are not updated by 31'st March 2023, your account will be deactivated as per regulations.\",\n showBtn: true,\n title: \"Nomination Required\",\n instructText:\"Click on the Proceed button to nominate online.\"\n \n },\n];\n\nexport const ConsentPopupScreen = (props: ConsentPopupProps) => {\n const [loader, setLoader] = React.useState(false);\n const [error, setError] = React.useState(false);\n const [existingSr, setExistingSr] = React.useState(false);\n\n function redirect(url: string) {\n if (url.indexOf(\"http://\") === 0 || url.indexOf(\"https://\") === 0) {\n // If url is absolute\n window.location.href = url;\n }\n }\n React.useEffect(() => {\n return () => {};\n }, []);\n let consentDet = consentTypes.filter((ele) => {\n return ele.name === props.type;\n })[0];\n\n const onSubmit = async () => {\n try {\n if (consentDet.name === \"nominee\")\n redirect(\n config.root +\n \"/clientarea/service-request/nomination?consentType=\" +\n consentDet.name\n );\n else {\n setLoader(true);\n const payload = {\n requestType: \"Account Reactivation\",\n dpID: \"None\",\n };\n const serviceList = await asyncGetServiceRequest();\n const sr = serviceList.filter(\n (srReq: any) =>\n srReq.RequestType === \"Equity Dormant Reactivation\" &&\n [\n \"Draft Saved\",\n \"Submitted\",\n \"AssignedtoHO\",\n \"InProcess\",\n \"PendingforEsign\",\n \"EsignVerified\",\n \"EsignSubmitted\",\n \"AssignedforEsignQC\",\n \"EsignVerified\",\n \"PushToTarget\",\n \"MemorandumPaymentPending\",\n ].includes(srReq.RequestStatus)\n )[0];\n let response = await ServiceClientValidation({\n subType: \"Equity Dormant Reactivation\",\n });\n if (response === \"BOAcoountNumber not found\") {\n const accReact = await CreateServiceRequestDetails(payload);\n\n if (\n typeof accReact === \"string\" &&\n accReact.includes(\"Previous Request already open for this account-\")\n ) {\n setLoader(false);\n redirect(\n config.root +\n \"/clientarea/service-request/account-reactivation?consentType=\" +\n consentDet.name\n );\n } else {\n if (accReact && accReact.Message)\n localStorage.setItem(\n \"accReactParentDetails\",\n JSON.stringify(accReact)\n );\n else {\n setLoader(false);\n setError(true);\n return;\n }\n }\n } else {\n localStorage.setItem(\"accReactParentDetails\", JSON.stringify(sr));\n }\n setLoader(false);\n redirect(\n config.root +\n \"/clientarea/service-request/account-reactivation?consentType=\" +\n consentDet.name\n );\n }\n } catch (err) {\n setLoader(false);\n setError(true);\n }\n };\n function ModalBody(): React.ReactElement {\n return (\n
    \n
    \n {loader ? (\n \n \n
    \n ) : (\n
    \n {!error && (\n
    \n {consentDet.enableCross && (\n
    \n \n \n \n
    \n )}\n\n
    \n
    \n {consentDet.name === \"nominee\" ? (\n \n ) : (\n \n )}\n
    \n
    \n
    \n

    {consentDet.title}

    \n
    \n
    \n

    \n {consentDet.description}\n

    \n
    \n {consentDet.hintText && (\n <>\n
    \n
    \n

    \n {consentDet.hintText}\n

    \n
    \n \n )}\n {consentDet.instructText && (\n <>\n
    \n
    \n

    \n {consentDet.instructText}\n

    \n
    \n \n )}\n\n {consentDet.showBtn && (\n
    \n
    \n {\n if (\n consentDet.name.includes(\"email\") ||\n consentDet.name.includes(\"mobile\") ||\n consentDet.name.includes(\"nominee\")\n )\n onSubmit();\n }}\n >\n Proceed\n \n
    \n
    \n )}\n
    \n )}\n {error && (\n
    \n
    \n \n \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n

    \n {!existingSr\n ? \"Technical Issue\"\n : \"Error while creating SR\"}\n

    \n
    \n
    \n

    \n {!existingSr\n ? \"Facing Some Technical Issue.Please Try Again Later.\"\n : \"You already have active service request.\"}\n

    \n
    \n
    \n )}\n
    \n )}\n
    \n
    \n );\n }\n return {}} children={ModalBody()} />;\n};\n","import React, { useState } from \"react\";\nimport EdModal from \"../../../generic/edModal\";\nimport { useHistory } from \"react-router-dom\";\nimport EdButton from \"../../../generic/edButton\";\nimport { asyncGetServiceRequest } from \"../../../service/postLogin/clientProfileAPIService\";\nimport {\n CreateServiceRequestDetails,\n ServiceClientValidation,\n} from \"../../../service/serviceRequest/srApiService\";\nimport Loader from \"../../../generic/loader\";\nimport { config } from \"../../../../config/domain\";\n\nexport const AccountReactivationConsent = (props: any) => {\n const [main, setMain] = useState(true);\n const [block, setBlock] = useState(false);\n const [adhar, setAdhar] = useState(false);\n const [modal, setModal] = useState(true);\n const [error, setError] = useState(false);\n const [loader, setLoader] = useState(false);\n\n const history = useHistory();\n const onSubmit = async () => {\n try {\n setLoader(true);\n const payload = {\n requestType: \"Account Reactivation\",\n dpID: \"None\",\n };\n const serviceList = await asyncGetServiceRequest();\n let response = await ServiceClientValidation({\n subType: \"Equity Dormant Reactivation\",\n });\n const sr = serviceList.filter(\n (srReq: any) =>\n srReq.RequestType === \"Equity Dormant Reactivation\" &&\n [\n \"Draft Saved\",\n \"Submitted\",\n \"AssignedtoHO\",\n \"InProcess\",\n \"PendingforEsign\",\n \"EsignVerified\",\n \"EsignSubmitted\",\n \"AssignedforEsignQC\",\n \"EsignVerified\",\n \"PushToTarget\",\n \"MemorandumPaymentPending\",\n ].includes(srReq.RequestStatus)\n )[0];\n if (response === \"BOAcoountNumber not found\") {\n const accReact = await CreateServiceRequestDetails(payload);\n if (\n typeof accReact === \"string\" &&\n accReact.includes(\n \"Previous Request already open for this account-\"\n )\n\n ) {\n setLoader(false);\n setError(true);\n return;\n }\n \n if (accReact && accReact.Message)\n localStorage.setItem(\n \"accReactParentDetails\",\n JSON.stringify(accReact)\n );\n else {\n setLoader(false);\n setError(true);\n return;\n }\n } else {\n if (sr)\n localStorage.setItem(\"accReactParentDetails\", JSON.stringify(sr));\n }\n setLoader(false);\n setModal(false);\n const consent = props ? (props.type ? props.type : null) : null;\n history.push(\n `/clientarea/service-request/account-reactivation${\n consent ? `?consent=${consent}` : \"\"\n }`\n );\n } catch (err) {\n // console.log(err);\n setLoader(false);\n setError(true);\n }\n };\n\n function ModalBody(): React.ReactElement {\n return (\n
    \n
    \n {loader ? (\n \n \n
    \n ) : (\n
    \n {main && (\n
    \n
    \n
    \n \n
    \n
    \n
    \n

    \n {\" \"}\n Reactivate Your Account\n

    \n
    \n
    \n

    \n As per SEBI norms your account has been deactivated due to\n inactivity. Please follow a few simple steps to reactivate\n your account.\n

    \n
    \n
    \n
    \n onSubmit()}\n value=\"Proceed\"\n btnTyp=\"primary\"\n // disabled={btn}\n />\n
    \n
    \n {\n setMain(false);\n setBlock(true);\n }}\n >\n Remind me later\n \n
    \n
    \n
    \n )}\n {block && (\n
    \n
    \n \n \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n

    Account blocked

    \n
    \n
    \n

    \n In order to do trades in your account, please complete\n your reactivation process. You will be notified again in\n your next login.\n

    \n
    \n
    \n )}\n {error && (\n
    \n
    \n
    \n \n
    \n
    \n
    \n

    Technical Issue

    \n
    \n
    \n

    \n Facing Some Technical Issue.Please Try Again Later.\n

    \n
    \n
    \n )}\n
    \n )}\n
    \n
    \n );\n }\n\n function AdharModalBody(): React.ReactElement {\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n

    Link PAN & Aadhar

    \n
    \n
    \n

    \n As per SEBI norms your PAN and Aadhaar need to be linked. In\n order to do this you will be sent to the Income Tax website.\n

    \n
    \n

    Steps to follow

    \n
      \n
    • Login or Register on it using your PAN as user ID
    • \n
    • \n A pop up window will appear asking you to link PAN with\n Aadhaar. If not, then go to “Profile Settings” in Menu\n and click “Link Aadhaar”\n
    • \n
    • \n Check and verify details. Mismatches will need to be\n corrected independently.\n
    • \n
    • \n Once details match, enter Aadhaar number, click on “Link\n now” button.\n
    • \n
    • \n Come back to www.nuvamawealth.com after 1 day and login\n again to continue\n
    • \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n }\n\n return {}} children={ModalBody()} />;\n};\n","import * as React from \"react\";\nimport {\n ELoginScreenState,\n EResetSubmitState,\n ELoginPopupState,\n urls,\n} from \"./loginConstants\";\nimport LoginIdScreen from \"./loginScreen/loginIdScreen\";\nimport ee from \"../utils/eventEmitter\";\nimport {\n AGetSecurityImage,\n AVerifyAnswers,\n A2faQuestions,\n ASaveMulConsents,\n AGetConsents,\n AResetLoginId,\n AResetPassword,\n AMergeRequest,\n AMergeRemindLater,\n AMergeActivateAccount,\n AMergeEnableAccount,\n ARmRateSubmit,\n ACommAccOpenPre,\n ACommAccOpenPost,\n ARegisterDevice,\n ACheckTokenValidity,\n AImpersonateUser,\n AGetJwtTokenForNestRrader,\n AGetLoginResponse,\n ASaveTncConsent,\n ARetrieveQueryData,\n} from \"../service/login/loginApiService\";\nimport PasswordScreen from \"./loginScreen/passwordScreen\";\nimport YobScreen from \"./loginScreen/yobScreen\";\nimport LoginService, {\n getPreLoginData,\n setPreLoginData,\n getUserID,\n setAccData,\n getAccData,\n parseQuery,\n logout,\n saveDataInLocalStorage,\n isLoggedIn,\n setUrlObj,\n cleverTapRegistration,\n createPlaceOrderUrl,\n} from \"../service/login/loginService\";\nimport urlConfig from \"../../config/domain\";\nimport {\n IConsents,\n IConsentRes,\n IChangePassword,\n IMergeRequest,\n IVendorLogin,\n} from \"../types/components/login/loginTypes\";\nimport ConsentScreen from \"./loginScreen/consentScreen\";\nimport ResetCredsScreen from \"./loginScreen/resetCredsScreen\";\nimport { IChPwFields } from \"./forms/changePasswordForm\";\nimport LoginStatusScreen from \"./loginScreen/loginStatusScreen\";\nimport LoginClevertapScreen from \"./loginScreen/loginClevertapScreen\";\nimport MergeIdScreen from \"./loginScreen/mergeIdScreen\";\nimport RmRatingScreen from \"./loginScreen/rmRatingScreen\";\nimport RmRatingSuccPopup from \"./generic/rmRatingSuccPopup\";\nimport OpenAccountScreen from \"./loginScreen/openAccountScreen\";\nimport LeadFormScreen from \"./loginScreen/leadFormScreen\";\nimport { ILeadFormFields } from \"./forms/leadForm\";\nimport { ClevertapService } from \"./../service/clevertapService\";\nimport DeviceContext from \"../service/indentifyDevice\";\nimport { RouteChildrenProps } from \"react-router-dom\";\nimport LoginLoaderScreen from \"./loginScreen/loginLoaderScreen\";\nimport indexer, { IAccDataCnsntLst } from \"../types/genericTypes\";\nimport TncConsentScreen from \"./loginScreen/tncConsentScreen\";\nimport loginURLConfig from \"../../config/login/loginURLConfig\";\nimport { setbStrg } from \"../service/storageHelper\";\nimport { ServiceClientValidation } from \"../service/serviceRequest/srApiService\";\nimport { IncomeDeclarationConsent } from \"../clientarea/serviceRequest/incomeDeclaration/incomeDeclarationConsent\";\nimport { ConsentPopupScreen } from \"../clientarea/generic/consentPopup\";\nimport { createBrowserHistory } from \"history\";\n\nimport { AccountReactivationConsent } from \"../clientarea/serviceRequest/accReactivate/accReactCnst\";\nexport interface ILoginCtrlProps {}\n\nexport interface ILoginCtrlState {\n screenState: ELoginScreenState;\n popupState?: ELoginPopupState; // if undefined then popup is closed otherwise open in corresponding state\n disableForm: boolean;\n imgObj?: Array;\n errorMsg?: string;\n popupMessage?: string;\n consents?: Array;\n resetSubmitState?: EResetSubmitState;\n loginIdState?: string; // to be used in change password form\n}\n\nclass LoginCtrl extends React.Component<\n ILoginCtrlProps & RouteChildrenProps,\n ILoginCtrlState\n> {\n // login starts with LOGIN_ID screen\n state: ILoginCtrlState = {\n screenState: ELoginScreenState.LOADING,\n disableForm: false,\n };\n cnsList: { mandatory: boolean; list: Array } = {\n mandatory: false,\n list: [],\n };\n skipCnsts = false;\n clevertapService = new ClevertapService();\n history = createBrowserHistory({ forceRefresh: true });\n\n componentDidMount() {\n window.location.href = urlConfig.root;\n ee.on(\"changeLoginScreen\", this.changeScreenState);\n //setting current page to login\n setbStrg(\"currentPage\", \"login\");\n // If there is a query string in url, then read the values and store in Login Service\n if (window.location.search) {\n const { token } = parseQuery(window.location.search);\n\n // After reading, remove the query string from url\n this.removeQueryStringFromUrl();\n\n if (token) {\n ARetrieveQueryData(this.handleQueryString, token);\n return;\n }\n }\n\n this.afterHandleQueryString();\n }\n //tempOremove start\n //temporary fix - will be removed later\n componentWillUnmount() {\n setbStrg(\"currentPage\", \"\");\n }\n //tempOremove end\n\n afterHandleQueryString = () => {\n // if user is logged in then redirect\n // if popupName is present then show popup\n // otherwise continue with normal login flow\n if (isLoggedIn() && !LoginService.popupName) {\n this.onClose();\n return;\n }\n\n this.openLogin();\n };\n\n handleQueryString = (res: any) => {\n if (res.data) {\n const queryObject = JSON.parse(res.data.value);\n\n if (queryObject.vsource) {\n // Vendor login\n sessionStorage.setItem(\"source\", queryObject.vsource);\n sessionStorage.setItem(\"sourceToken\", queryObject.sourcetoken);\n LoginService.vendorDetails = queryObject as IVendorLogin;\n LoginService.hideCross = true;\n\n setUrlObj(queryObject as IVendorLogin);\n this.skipCnsts = true;\n } else if (queryObject.source) {\n // smallcase / tradepoint login\n\n // set all the params so that we can redirect either logged in or not logged in\n if (queryObject.source === \"smallcase\") {\n LoginService.reUrl = urlConfig.smallcaseUrl;\n LoginService.params = queryObject.params;\n } else {\n LoginService.reUrl = urls.login;\n }\n\n // Check if user is already logged in\n if (isLoggedIn()) {\n ACheckTokenValidity(this.checkTokenValidityRes);\n\n return;\n }\n\n LoginService.hideCross = true;\n this.skipCnsts = true;\n } else if (queryObject.authToken) {\n // CIP login\n\n // Set jwt token so that it can be used in api\n LoginService.jwtToken = queryObject.authToken;\n AImpersonateUser(this.impersonateUserRes);\n\n return;\n } else if (queryObject.TokenId) {\n // Admin login\n logout();\n const userid = queryObject.UserId;\n const nesttraderRequest = {\n accID: queryObject.sAccountId,\n userID: userid,\n extoken: queryObject.TokenId,\n accTyp: queryObject.AccTyp,\n };\n AGetJwtTokenForNestRrader(\n this.getJwtTokenForNestRraderRes,\n nesttraderRequest\n );\n\n return;\n } else if (queryObject.auth_token) {\n // TX3 / EMT login\n logout();\n\n urlConfig.appidkey = queryObject.appidkey;\n queryObject.appidkey &&\n localStorage.setItem(\"appidkey\", queryObject.appidkey);\n\n LoginService.jwtToken = queryObject.auth_token; // This will also set ptoken\n LoginService.reUrl = queryObject.reUrl || LoginService.reUrl;\n\n AGetLoginResponse(this.getLoginResponseRes);\n\n if (\n LoginService.pToken &&\n (LoginService.pToken.lgnSrc === \"X\" ||\n LoginService.pToken.lgnSrc === \"iphone\" ||\n LoginService.pToken.lgnSrc === \"android-phone\")\n ) {\n if (\n LoginService.pToken.lgnSrc === \"iphone\" ||\n LoginService.pToken.lgnSrc === \"android-phone\"\n ) {\n localStorage.setItem(\"ext_ptf\", JSON.stringify(true));\n }\n LoginService.lgnSrc = LoginService.pToken.lgnSrc;\n localStorage.setItem(\"lgnSrc\", LoginService.pToken.lgnSrc);\n }\n\n return;\n } else {\n // nromal login\n // if parameter present then set otherwise keep it as it is because it may have been already set\n LoginService.reUrl = queryObject.reUrl || LoginService.reUrl;\n if (LoginService.reUrl === \"placeorder\") {\n this.skipCnsts = true;\n }\n\n LoginService.invtypeobj = queryObject.invtypeobj\n ? JSON.parse(queryObject.invtypeobj)\n : LoginService.invtypeobj;\n LoginService.popupName =\n queryObject.popupName || LoginService.popupName;\n LoginService.params = queryObject.params\n ? queryObject.params\n : LoginService.params;\n\n if (LoginService.invtypeobj) {\n createPlaceOrderUrl(\n LoginService.invtypeobj.length\n ? (LoginService.invtypeobj as Array)[0]\n : LoginService.invtypeobj\n );\n }\n }\n }\n\n this.afterHandleQueryString();\n };\n\n removeQueryStringFromUrl = () => {\n window.history.replaceState(\n {},\n document.title,\n window.location.href.split(\"?\")[0]\n );\n };\n\n checkTokenValidityRes = (res: any, meta: any) => {\n if (meta.status === 200) {\n this.redirectToVendor();\n } else {\n this.changePopupState(ELoginPopupState.LOGIN_FAILED, {\n popupMessage: res,\n });\n }\n };\n\n redirectToVendor = () => {\n this.redirect(\n LoginService.reUrl +\n \"?auth_token=\" +\n LoginService.jwtToken +\n (LoginService.params ? \"&\" + LoginService.params : \"\")\n );\n };\n\n impersonateUserRes = (res: any) => {\n if (!res || res.errMsg) {\n this.changePopupState(ELoginPopupState.LOGIN_FAILED, {\n popupMessage: res ? res.errMsg.message : undefined,\n });\n return;\n }\n\n // Set the data\n setAccData(res);\n LoginService.jwtToken = res.jwt_token;\n setPreLoginData({ userID: res.accs.uid });\n\n // if urls.cipPassThroughBase is present then redirect there otherwise redirect to home page\n this.props.history.push(urls.cipPassThroughBase || urls.home);\n // this.history.push(urls.cipPassThroughBase || urls.home);\n window.location.reload();\n };\n\n getJwtTokenForNestRraderRes(res: any) {\n if (res) {\n window.localStorage.setItem(\"jwt_token\", res);\n window.localStorage.setItem(\"nesttrader\", \"true\");\n window.location.href = urls.report;\n } else {\n this.changePopupState(ELoginPopupState.LOGIN_FAILED, {\n popupMessage: res ? res.errMsg.message : undefined,\n });\n }\n }\n\n // CIP Login Response\n getLoginResponseRes = (res: any) => {\n if (res) {\n LoginService.setAccData(res);\n saveDataInLocalStorage();\n\n if (localStorage.getItem(\"appidkey\"))\n urlConfig.appidkey = localStorage.getItem(\"appidkey\")!;\n\n this.onClose();\n }\n };\n\n openLogin = () => {\n if (LoginService.popupName) {\n this.skipCnsts = true;\n switch (LoginService.popupName) {\n case \"REQUESTED\":\n // Show that user has already requested and it takes 24 hrs to merge\n this.changePopupState(ELoginPopupState.REQUESTED);\n break;\n\n case \"NOT_REQUESTED\":\n // Show the account merger screen\n this.changeScreenState(ELoginScreenState.MERGE);\n break;\n\n case \"ONE_ACCOUNT\":\n // show popup saying \"Would you like to open one now?\"\n // in case of equity, it takes to equity account opening pitch page\n // in case of commodity, saveleadinfo api is called\n this.changePopupState(ELoginPopupState.ONE_ACCOUNT);\n break;\n\n case \"NOT_ENABLED\":\n // if !isAct or !isOnline, then open send email popup\n // otherwise ask to login to the other account\n const othAccDts = getAccData(\"othAccDts\");\n if (othAccDts.isAct && othAccDts.isOnline) {\n // show merge popup\n this.changePopupState(ELoginPopupState.NOT_ENABLED);\n } else {\n // show inactive account popup (send email popup)\n this.changePopupState(ELoginPopupState.INACTIVE_ACC);\n }\n }\n } else {\n this.changeScreenState(ELoginScreenState.LOGIN_ID);\n }\n };\n\n // optState is optional state that needs to be set along with screenState\n changeScreenState = (\n screenState: ELoginScreenState,\n optState?: { [key in keyof ILoginCtrlState]?: any }\n ) => {\n // if anything needs to be done specifically for a screen then only write the case\n switch (screenState) {\n case ELoginScreenState.LOGIN_ID:\n const userID = getUserID();\n setPreLoginData({ userID });\n\n if (userID) {\n this.getSecurityImage(userID);\n } else {\n this.setFocus(\"userID\");\n }\n break;\n\n case ELoginScreenState.PASSWORD:\n this.setFocus(\"password\");\n break;\n\n case ELoginScreenState.YOB:\n this.setFocus(\"yob-0\");\n break;\n\n case ELoginScreenState.CLEVERTAP:\n // if none of below mentioned conditions is satisfied, then only code goes out of switch and shows the clevertap popup\n\n // if don't show again is present and it is equal to current logged in id, then directly go to onClose\n if (this.clevertapService.getClevertapItem(\"dontShowAgain\")) {\n var prfId = this.clevertapService.getClevertapItem(\"dontShowAgain\");\n if (prfId === getAccData(\"prfId\")) {\n this.onClose();\n return;\n }\n }\n\n // if clevertap details are present in local storage, then check for other conditions; otheriwse show clevertap consent\n if (this.clevertapService.getClevertapItem(\"cleverTapDetails\")) {\n var lastcleverTapDetails = this.clevertapService.getClevertapItem(\n \"lastLoginDetails\"\n )\n ? this.clevertapService\n .getClevertapItem(\"lastLoginDetails\")\n .split(\",\")[0]\n : \"\";\n\n // If prf id matches the current account\n if (getAccData(\"prfId\") === lastcleverTapDetails) {\n const cleverTapId = this.clevertapService.getCleverTapID();\n this.clevertapService.setClevertapItem({\n cleverTapDetails:\n getAccData(\"prfId\") +\n \",\" +\n cleverTapId +\n \";expires=Tue, 19 Jan 2025 12:00:00 GMT\",\n });\n this.onClose();\n return;\n }\n }\n }\n\n // setstate is common for all screens\n this.setState({\n screenState,\n disableForm: false,\n errorMsg: undefined,\n ...optState,\n });\n };\n\n changePopupState = (popupState?: ELoginPopupState, optState?: any) => {\n this.setState({ popupState, ...optState });\n };\n\n //Set Focus\n setFocus = (id: string) => {\n setTimeout(function () {\n (document as Document).getElementById(id)?.focus();\n }, 150);\n };\n\n // this function is called after clicking on edit userid button on password screen\n showUserIdScreen = () => {\n this.setState({\n screenState: ELoginScreenState.LOGIN_ID,\n disableForm: false,\n errorMsg: undefined,\n });\n };\n\n // this function is called to remove error msg\n removeError = () => {\n this.setState({ errorMsg: undefined, disableForm: false });\n };\n\n // Called when user clicks on preceed on userid screen\n // used to get security image list\n getSecurityImage = (userID: string) => {\n this.setState({ disableForm: true });\n setPreLoginData({ userID: userID.toUpperCase() });\n AGetSecurityImage(this.getSecurityImageRes, userID.toUpperCase());\n };\n\n // response of security image list\n getSecurityImageRes = (res: any) => {\n if (res.data && res.data.imgLst) {\n this.changeScreenState(ELoginScreenState.PASSWORD, {\n imgObj: res.data.imgLst,\n });\n localStorage.setItem(\n \"AccList\",\n JSON.stringify(res.data.imgLst.map((list: any) => list.typ))\n );\n } else {\n this.setState({ errorMsg: res.error.errMsg, disableForm: false });\n }\n };\n\n // called first when user clicks on proceed on password screen\n // used to validate the combination of userid and password\n faQuestions = (pwd: string, accTyp: string) => {\n this.setState({ disableForm: true });\n setPreLoginData({ accTyp, pwd });\n A2faQuestions(this.faQuestionsRes, getPreLoginData(\"userID\"), accTyp, pwd);\n };\n\n // response of 2faquestions\n faQuestionsRes = (res: any) => {\n if (res.data) {\n this.changeScreenState(ELoginScreenState.YOB);\n } else {\n this.setState({ errorMsg: res.error.errMsg, disableForm: false });\n }\n };\n\n // used to verify yob\n verifyAnswers = (yob: string) => {\n this.setState({ disableForm: true });\n // pass vendor details if vendor is availables\n AVerifyAnswers(\n this.verifyAnswersRes,\n getPreLoginData(\"userID\"),\n getPreLoginData(\"accTyp\"),\n yob\n );\n };\n\n // response of verify yob\n verifyAnswersRes = (res: any, meta: Response) => {\n if (res) {\n if (res.data && res.data.sts !== \"INVALID_ANSWERS\") {\n // set all data in dataservice\n setAccData(res.data);\n cleverTapRegistration();\n\n if (meta.headers.get(\"appidkey\")) {\n urlConfig.appidkey = meta.headers.get(\"appidkey\") as string;\n }\n LoginService.authorization = meta.headers.get(\n \"authorization\"\n ) as string;\n LoginService.jwtToken = (meta.headers.get(\"ewjwt\") as string).split(\n \" \"\n )[1];\n\n // console.log(res.data);\n if (res.data.mndtryCnsts && res.data.mndtryCnsts.length) {\n this.cnsList.mandatory = true;\n this.cnsList.list.push({\n name: \"textBased\",\n cnsnt: res.data.mndtryCnsts,\n });\n }\n if (res.data.accs.rstusr || res.data.accs.rstpwd) {\n this.cnsList.mandatory = true;\n this.cnsList.list.push({ name: \"rstpwd\" });\n }\n const vendorCnst = res.data.cnsntLst.filter(\n (cnst: IAccDataCnsntLst) => cnst.mdtry\n );\n //localStorage.setItem(\"cnsntLst\", JSON.stringify(vendorCnst));\n // const vendorCnst = [\n // {\n // accType: \"EQ\",\n // mdtry: true,\n // // name: \"accReact\",\n // name: \"invAddress\",\n // },\n // {\n // accType: \"EQ\",\n // mdtry: true,\n // name: \"eqIncmDclr\",\n // },\n // ];\n //.find((cnst: IAccDataCnsntLst) => cnst.mdtry);\n // console.log(vendorCnst);\n\n if (vendorCnst && vendorCnst.length > 0) {\n this.cnsList.mandatory = true;\n vendorCnst.map((consent: any) => {\n if (\n (res.data.accs.rstusr || res.data.accs.rstpwd) &&\n consent.name === \"rstpwd\"\n ) {\n return;\n }\n this.cnsList.list.push({ name: consent.name });\n });\n }\n // if (res.data.cnsntLst) {\n // this.cnsList.list.push(res.data.cnsntLst);\n // this.cnsList.mandatory = true;\n // }\n if (this.cnsList.mandatory) {\n this.showMandatoryConsents();\n } else {\n // First store data in local storage, then show optional consents\n saveDataInLocalStorage();\n this.showOptionalConsents();\n }\n } else {\n this.setState({\n errorMsg: (res.data && res.data.sts) || res.error.errMsg,\n });\n setTimeout(() => {\n this.changeScreenState(ELoginScreenState.LOGIN_ID);\n }, 3000);\n }\n\n var data = {\n LoginType: \"Traditional\",\n EventName: \"Login Successful\",\n Platform: DeviceContext().isMobile\n ? \"Website_Mobile\"\n : \"Website_Desktop\",\n InitiationScreen: \"Login\",\n InitiationElement: \"Continue\",\n };\n\n this.clevertapService.pushEvent(data);\n }\n };\n\n /* ORDER:\n 1. mandatory consents (all together) (come back for 2nd point after this)\n 2. Reset Userid password\n 3. Vendor consent\n 4. Optional Text Based (all together)\n 5. Optional Action based (only first one)\n 6. Clevertap (always show at the end)\n */\n showMandatoryConsents = () => {\n const consent = this.cnsList.list.shift(); // will return undefined if no consents are left\n //console.log(consent);\n\n if (consent?.name === \"textBased\") {\n AGetConsents(\n this.getConsentsRes,\n getPreLoginData(\"userID\"),\n consent.cnsnt.map((list: IAccDataCnsntLst) => list.name)\n );\n } else if (consent?.name === \"rstpwd\") {\n saveDataInLocalStorage();\n this.changeScreenState(ELoginScreenState.RESET_CREDS);\n } else if (consent?.name === \"vnd\") {\n this.changeScreenState(ELoginScreenState.VENDOR_CNST);\n } else if (consent?.name === \"eqIncmDclr\") {\n saveDataInLocalStorage();\n this.goToIncomeDeclarationConsent();\n } else if (consent?.name === \"invPan\") {\n saveDataInLocalStorage();\n this.changePopupState(ELoginPopupState.INVALID_PAN_CNST);\n } else if (consent?.name === \"emailMob\") {\n saveDataInLocalStorage();\n this.goToEmailMobConsent();\n }\n else if (consent?.name === \"nominee\") {\n saveDataInLocalStorage();\n this.goToNominationConsent();\n }\n else if (consent?.name === \"invName\") {\n saveDataInLocalStorage();\n this.changePopupState(ELoginPopupState.INVALID_NAME_CNST);\n } else if (consent?.name === \"accReact\") {\n saveDataInLocalStorage();\n this.goToAccReactConsent();\n } else if (consent?.name === \"invAddress\") {\n saveDataInLocalStorage();\n this.goToAccReactConsent(\"Address\");\n } else {\n // If mandatory consents are not left, then save data in local storage and then show CLEVERTAP\n saveDataInLocalStorage();\n this.showClevertapConsent();\n }\n\n // If popup was open then close that\n // if (!this.state.popupState) {\n // this.setState({ popupMessage: undefined, popupState: undefined });\n // }\n };\n\n showOptionalConsents = () => {\n if (!this.skipCnsts) {\n if (getAccData(\"optCnsts\")) {\n AGetConsents(\n this.getConsentsRes,\n getPreLoginData(\"userID\"),\n getAccData(\"optCnsts\").map((list: IAccDataCnsntLst) => list.name)\n );\n } else if (getAccData(\"cnsntLst\").length) {\n switch (getAccData(\"cnsntLst\")[0].name) {\n case \"mrgPopUp\":\n const othAccDts = getAccData(\"othAccDts\");\n if (othAccDts.isAct && othAccDts.isOnline) {\n // show merge popup\n this.changeScreenState(ELoginScreenState.MERGE);\n } else {\n // show inactive account popup\n this.changePopupState(ELoginPopupState.INACTIVE_ACC);\n }\n break;\n\n case \"eqRmRt\":\n this.changeScreenState(ELoginScreenState.RM_RATING);\n }\n } else {\n this.showClevertapConsent();\n }\n } else {\n this.onClose();\n }\n };\n\n showClevertapConsent = () => {\n if (!this.skipCnsts) {\n this.changeScreenState(ELoginScreenState.CLEVERTAP);\n } else {\n this.onClose();\n }\n };\n\n getConsentsRes = (res: any) => {\n if (res.data && res.data.consents) {\n this.changeScreenState(ELoginScreenState.CONSENTS, {\n consents: res.data.consents,\n });\n } else {\n // TODO\n }\n };\n\n // called on accept text based consent\n saveConsents = (consents: Array) => {\n this.setState({ disableForm: true });\n ASaveMulConsents(this.saveConsentsRes, getPreLoginData(\"userID\"), consents);\n };\n\n // response of accept text based consents\n saveConsentsRes = (res: any) => {\n if (res.data && res.data.sts) {\n if (this.cnsList.mandatory) {\n this.showMandatoryConsents();\n } else {\n this.showClevertapConsent();\n }\n } else {\n this.setState({ disableForm: false });\n }\n };\n\n resetIdPw = (\n { loginId, ...values }: IChPwFields,\n resetLoginId?: boolean | undefined\n ) => {\n // no need to disable here because this screen is disabled via resetSubmitState\n this.setState({\n resetSubmitState: resetLoginId\n ? EResetSubmitState.ver_login_id\n : EResetSubmitState.ver_password,\n loginIdState: undefined,\n });\n\n if (resetLoginId) {\n AResetLoginId(\n (res: any, meta: Response) => this.resetLoginIdRes(res, meta, values),\n getPreLoginData(\"userID\"),\n loginId\n );\n } else {\n AResetPassword(this.resetPasswordRes, getPreLoginData(\"userID\"), values);\n }\n };\n\n resetLoginIdRes(res: any, meta: Response, values: IChangePassword) {\n if (res.data && res.data.msg) {\n this.setState({\n loginIdState: \"success\",\n resetSubmitState: EResetSubmitState.ver_password,\n });\n\n if (meta.headers.get(\"appidkey\")) {\n urlConfig.appidkey = meta.headers.get(\"appidkey\") as string;\n }\n LoginService.authorization = meta.headers.get(\"authorization\") as string;\n LoginService.jwtToken = (meta.headers.get(\"ewjwt\") as string).split(\n \" \"\n )[1];\n\n AResetPassword(this.resetPasswordRes, getPreLoginData(\"userID\"), values);\n } else {\n this.setState({\n loginIdState: res.error.errMsg,\n resetSubmitState: undefined,\n });\n }\n }\n\n resetPasswordRes = (res: any) => {\n if (res.data && res.data.msg) {\n this.changePopupState(ELoginPopupState.RESET_SUCC, {\n popupMessage: res.data.msg,\n });\n } else {\n this.setState({\n errorMsg: res.error.errMsg,\n resetSubmitState: undefined,\n });\n }\n };\n\n requestMerge = (body: IMergeRequest) => {\n AMergeRequest((res: any) => this.requestMergeRes(res, body.mrgUid), body);\n this.setState({ disableForm: true });\n };\n\n requestMergeRes = (res: any, mrgUid: string) => {\n //console.log(res);\n if (res.data && res.data.sts === \"REQUESTED\") {\n // update mrgSts\n const userData = getAccData();\n userData.mrgSts = res.data.sts;\n setAccData(userData);\n localStorage.setItem(\"acc_data\", userData);\n\n this.changePopupState(ELoginPopupState.MERGE_REQUESTED, {\n popupMessage: mrgUid,\n });\n } else {\n // set mrgSts = \"NOT_REQUESTED\"\n const userData = getAccData();\n userData.mrgSts = \"NOT_REQUESTED\";\n setAccData(userData);\n // TODO: Show error screen\n }\n };\n\n remindLaterMerge = () => {\n AMergeRemindLater(this.remindLaterMergeRes);\n };\n\n remindLaterMergeRes = (res: any) => {\n // console.log(res);\n };\n\n inactiveAccOnMailSend = () => {\n if (!getAccData(\"othAccDts\").isAct) {\n AMergeActivateAccount(\n this.inactiveAccOnMailSendRes,\n getPreLoginData(\"userID\"),\n getPreLoginData(\"accTyp\")\n );\n } else {\n AMergeEnableAccount(\n this.inactiveAccOnMailSendRes,\n getPreLoginData(\"userID\"),\n getPreLoginData(\"accTyp\")\n );\n }\n };\n\n inactiveAccOnMailSendRes = (res: any) => {\n // console.log(res);\n if (res.data) {\n this.changePopupState(ELoginPopupState.EMAIL_SENT);\n }\n };\n\n rmRatingSubmit = (body: any) => {\n ARmRateSubmit(this.rmRatingSubmitRes, getPreLoginData(\"userID\"), body);\n };\n\n rmRatingSubmitRes = (res: any) => {\n if (res.data && res.data.msg === \"success\") {\n this.changePopupState(ELoginPopupState.RM_RATING_SUCC);\n }\n };\n\n submitLeadForm = (values: ILeadFormFields) => {\n this.setState({ disableForm: true });\n ACommAccOpenPre(this.submitLeadFormRes, values);\n };\n\n submitLeadFormRes = (res: any) => {\n if (res.data) {\n this.changePopupState(ELoginPopupState.OPEN_ACC_SUCC, {\n popupMessage: res.data.msg,\n });\n } else {\n this.setState({ errorMsg: res.error.errMsg, disableForm: false });\n }\n };\n\n logoutAndThenLogin = () => {\n logout();\n this.changeScreenState(ELoginScreenState.LOGIN_ID, {\n popupState: undefined,\n });\n };\n\n openAccount = () => {\n if (getAccData(\"accTyp\") === \"EQ\") {\n // if account is equity then open lead form\n ACommAccOpenPost(this.commAccOpenPostRes, getAccData(\"userID\"));\n } else {\n // if account is commodity then open equity account opening pitch page\n this.redirect(loginURLConfig.openAccount);\n }\n };\n\n commAccOpenPostRes = (res: any) => {\n // console.log(res);\n };\n\n checkInvtypeobj = true;\n onClose = () => {\n if (isLoggedIn()) {\n //console.log(\"in logged\");\n\n // If account type is not COMEQ and invtypeobj exists, then check the acctyp of object\n // if acctype of object matches the logged in acctyp\n // then continue\n // otherwise open the merge popup depending on status\n if (\n getAccData(\"accTyp\") !== \"COMEQ\" &&\n LoginService.invtypeobj &&\n this.checkInvtypeobj\n ) {\n // make it false so that we don't come to this condition again\n // console.log(\"1st if\");\n\n this.checkInvtypeobj = false;\n\n const invtypeobj = LoginService.invtypeobj.length\n ? (LoginService.invtypeobj as Array)[0]\n : LoginService.invtypeobj;\n if (invtypeobj.snse || invtypeobj.sbse) {\n if (invtypeobj.sbse && invtypeobj.sbse !== \"\") {\n invtypeobj.accTyp = \"EQ\";\n } else {\n if (\n invtypeobj.snse.indexOf(\"MCX\") > -1 ||\n invtypeobj.snse.indexOf(\"NCDEX\")\n ) {\n invtypeobj.accTyp = \"CO\";\n } else {\n invtypeobj.accTyp = \"EQ\";\n }\n }\n\n if (invtypeobj.accTyp !== getAccData(\"accTyp\")) {\n LoginService.popupName = getAccData(\"mrgSts\");\n this.openLogin();\n return;\n }\n }\n }\n if (LoginService.reUrl) {\n // console.log(\"2nd if\");\n if (\n LoginService.reUrl.indexOf(\"smallcase\") > -1 ||\n LoginService.reUrl.indexOf(urlConfig.root + urls.login) > -1\n ) {\n this.redirectToVendor();\n } else {\n this.redirect(\n LoginService.reUrl +\n (LoginService.params ? \"&\" + LoginService.params : \"\")\n );\n }\n } else if (\n this.cnsList &&\n this.cnsList.list &&\n this.cnsList.list.length > 0\n ) {\n this.showMandatoryConsents();\n } else {\n this.redirect(urlConfig.root + urls.home);\n }\n } else {\n this.redirect(\n LoginService.fromUrl ? LoginService.fromUrl : urlConfig.root + urls.home\n );\n }\n };\n\n redirect(url: string) {\n if (url.indexOf(\"http://\") === 0 || url.indexOf(\"https://\") === 0) {\n // If url is absolute\n window.location.href = url;\n } else {\n // if url is relative\n // this.props.history.push(url);\n // window.location.reload();\n this.history.push(url);\n }\n }\n goToIncomeDeclarationConsent = async () => {\n let response = await ServiceClientValidation({\n subType: \"Income Declaration\",\n });\n if (response) {\n if (response == \"BOAcoountNumber not found\") {\n //request not exists\n this.changePopupState(ELoginPopupState.INCOME_DECL_CNST);\n } else {\n this.redirect(urls.home);\n //request already exists-show error\n }\n }\n };\n goToAccReactConsent = async (type?: string) => {\n if (type) {\n if (type === \"Address\")\n this.changePopupState(ELoginPopupState.INVALID_ADDRESS_CNST);\n } else this.changePopupState(ELoginPopupState.Account_React_CNST);\n };\n goToEmailMobConsent = async () => {\n let response = await ServiceClientValidation({\n subType: \"Email and Phone Update\",\n });\n if (response) {\n if (response == \"BOAcoountNumber not found\") {\n //request not exists\n if (getAccData(\"accs\").emailCnsnt && !getAccData(\"accs\").mobCnsnt)\n this.changePopupState(ELoginPopupState.INVALID_EMAIL_CNST);\n else if (!getAccData(\"accs\").emailCnsnt && getAccData(\"accs\").mobCnsnt)\n this.changePopupState(ELoginPopupState.INVALID_MOBILE_CNST);\n else this.changePopupState(ELoginPopupState.INVALID_EMAIL_MOBILE_CNST);\n } else {\n this.redirect(urls.home);\n //request already exists-show error\n }\n }\n };\n goToNominationConsent = async () => {\n this.changePopupState(ELoginPopupState.INVALID_NOMIN_CNST);\n };\n closePopup = () => {\n this.changePopupState(undefined, {\n popupMessage: undefined,\n screenState: ELoginScreenState.LOGIN_ID,\n });\n };\n\n clevertapRegister = () => {\n const cleverTapId = this.clevertapService.getCleverTapID();\n //Need to make Middleware API call\n const data = {\n bwsNm: \"Chrome\",\n devNm: \"Chrome 84.0.4147.89\",\n clvTpId: cleverTapId || \"\",\n appid: 1718301357,\n plt: DeviceContext().isMobile ? \"MB:IN\" : \"EWIN\",\n };\n ARegisterDevice(this.registerDeviceRes, data);\n };\n\n clevertapNoThanks = () => {\n const cleverTapId = this.clevertapService.getCleverTapID();\n this.clevertapService.setClevertapItem({\n cleverTapDetails: `${getAccData(\n \"prfId\"\n )},${cleverTapId};expires=Tue, 19 Jan 2025 12:00:00 GMT`,\n });\n this.onClose();\n };\n\n clevertapDontShow = () => {\n this.clevertapService.setClevertapItem({\n dontShowAgain: `${getAccData(\"prfId\")};Tue, 19 Jan 2025 12:00:00 GMT`,\n });\n this.onClose();\n };\n\n registerDeviceRes = (res: any) => {\n this.clevertapService.saveClevertapData();\n this.onClose();\n };\n\n handleTncConsent = (save: boolean) => {\n this.skipCnsts = true;\n ASaveTncConsent(\n (res: any) => this.saveTncConsentRes(res, save),\n getAccData(\"userID\"),\n save\n );\n };\n\n saveTncConsentRes = (res: any, save: boolean) => {\n // if save is true, then accept was clicked, otherwise decline was clicked\n if (res.data && res.data.sts) {\n if (save) {\n this.showMandatoryConsents(); // This will save all the data in local storage\n } else {\n this.onClose();\n }\n } else {\n // TODO: How to show error here?\n }\n };\n\n getScreen() {\n switch (this.state.screenState) {\n case ELoginScreenState.LOADING:\n return ;\n\n case ELoginScreenState.LOGIN_ID:\n return (\n \n );\n\n case ELoginScreenState.PASSWORD:\n return (\n \n );\n\n case ELoginScreenState.YOB:\n return (\n \n );\n\n case ELoginScreenState.CONSENTS:\n return (\n \n );\n\n case ELoginScreenState.RESET_CREDS:\n return (\n \n );\n\n case ELoginScreenState.VENDOR_CNST:\n return (\n \n );\n\n case ELoginScreenState.CLEVERTAP:\n return (\n \n );\n\n case ELoginScreenState.MERGE:\n return (\n \n );\n\n case ELoginScreenState.RM_RATING:\n return (\n \n );\n\n case ELoginScreenState.ACC_OPENING:\n return (\n this.changeScreenState(ELoginScreenState.LOGIN_ID)\n }\n />\n );\n\n case ELoginScreenState.LEAD_FORM:\n return (\n this.changeScreenState(ELoginScreenState.LOGIN_ID)\n }\n />\n );\n\n default:\n return <>;\n }\n }\n\n getPopup() {\n switch (this.state.popupState) {\n case ELoginPopupState.RESET_SUCC:\n return (\n \n );\n\n case ELoginPopupState.LOGINID_SENT:\n case ELoginPopupState.MERGE_REQUESTED:\n return (\n \n this.changePopupState(undefined, {\n popupMessage: undefined,\n screenState: ELoginScreenState.CLEVERTAP,\n })\n }\n onClose={this.closePopup}\n />\n );\n\n case ELoginPopupState.INACTIVE_ACC:\n return (\n \n );\n\n case ELoginPopupState.RM_RATING_SUCC:\n return (\n \n this.changeScreenState(ELoginScreenState.CLEVERTAP, {\n popupState: undefined,\n })\n }\n />\n );\n\n case ELoginPopupState.OPEN_ACC_SUCC:\n return (\n \n );\n\n case ELoginPopupState.REQUESTED:\n case ELoginPopupState.NOT_ENABLED:\n return (\n \n );\n\n case ELoginPopupState.ONE_ACCOUNT:\n return (\n \n );\n\n case ELoginPopupState.EMAIL_SENT:\n return (\n \n );\n\n case ELoginPopupState.LOGIN_FAILED:\n return (\n \n this.changeScreenState(ELoginScreenState.LOGIN_ID, {\n popupMessage: undefined,\n popupState: undefined,\n })\n }\n />\n );\n case ELoginPopupState.INCOME_DECL_CNST:\n return ;\n case ELoginPopupState.INVALID_EMAIL_CNST:\n return (\n this.onClose()} />\n );\n case ELoginPopupState.INVALID_NOMIN_CNST:\n return ;\n case ELoginPopupState.INVALID_MOBILE_CNST:\n return (\n this.onClose()} />\n );\n case ELoginPopupState.INVALID_EMAIL_MOBILE_CNST:\n return (\n this.onClose()} />\n );\n case ELoginPopupState.INVALID_PAN_CNST:\n return this.onClose()} />;\n case ELoginPopupState.INVALID_NAME_CNST:\n return (\n this.onClose()} />\n );\n case ELoginPopupState.Account_React_CNST:\n return ;\n case ELoginPopupState.INVALID_ADDRESS_CNST:\n return ;\n default:\n return undefined;\n }\n }\n\n render() {\n return (\n <>\n {this.getScreen()} {this.getPopup()}\n \n );\n }\n}\n\nexport default LoginCtrl;\n","// This form is used in all login help options other than \"forgot login Id\"\n\nimport * as React from \"react\";\nimport InputField from \"../../generic/inputField\";\nimport { emailRegex, pan, alphaNumExp } from \"../../utils/regex\";\nimport EdButton from \"../../generic/edButton\";\nimport RadioButton from \"../../generic/radioButton\";\nimport \"../../../assets/scss/components/login/forms/forgotLoginIdForm.scss\";\nimport \"../../../assets/scss/components/login/generic/loginInput.scss\";\nimport { IListObj } from \"../../types/genericTypes\";\nimport LoginErrMsg from \"../generic/loginErrMsg\";\nimport { useRouteMatch } from \"react-router-dom\";\nimport { AForgotPassword, AUnblockAccount, AForgotYob } from \"../../service/login/loginApiService\";\n\nexport interface IForgotFormProps {\n\tonSuccess: (msg: string) => void; // function to be called on the success of called apis\n}\n\n// form fields\nexport interface IForgotFields {\n\tpan: string;\n\temail: string;\n\tloginId: string;\n\taccTyp?: string;\n}\n\nconst ForgotForm: React.FC = props => {\n\t// used to store the entered values in form\n\tconst [values, setValues] = React.useState({ pan: \"\", email: \"\", loginId: \"\" });\n\n\t// used to store the field wise errors\n\tconst [errors, setErrors] = React.useState<{ [key in keyof IForgotFields]?: string }>({\n\t\tpan: undefined,\n\t\temail: undefined,\n\t\tloginId: undefined\n\t});\n\n\t// used to store the error message that comes from api\n\tconst [errorMsg, setErrorMsg] = React.useState(\"\");\n\n\t// used to store if the form is submitted or not\n\tconst [submitted, setSubmitted] = React.useState(false);\n\n\t// to check the route\n\tconst routeParams = useRouteMatch();\n\n\tconst accTyp: Array = [\n\t\t{ value: \"EQ\", display: \"Equity\" },\n\t\t{ value: \"CO\", display: \"Commodity\" }\n\t];\n\n\tfunction handleSubmit(e: React.MouseEvent) {\n\t\te.preventDefault();\n\t\tsetSubmitted(true);\n\n\t\t// call different api based on path\n\t\tswitch (routeParams.path.split(\"/\")[2]) {\n\t\t\tcase \"forgot-password\":\n\t\t\t\tAForgotPassword(apiRes, values);\n\t\t\t\tbreak;\n\t\t\tcase \"unblock-account\":\n\t\t\t\tAUnblockAccount(apiRes, values);\n\t\t\t\tbreak;\n\t\t\tcase \"forgot-yob\":\n\t\t\t\tAForgotYob(apiRes, values);\n\t\t}\n\t}\n\n\tfunction getButtonValue() {\n\t\t// call different api based on path\n\t\tswitch (routeParams.path.split(\"/\")[2]) {\n\t\t\tcase \"forgot-password\":\n\t\t\t\treturn \"Send new password to my email\";\n\t\t\tcase \"unblock-account\":\n\t\t\t\treturn \"Unblock Account\";\n\t\t\tcase \"forgot-yob\":\n\t\t\t\treturn \"Send YOB to my email\";\n\t\t\tdefault:\n\t\t\t\treturn \"\";\n\t\t}\n\t}\n\n\tfunction apiRes(res: any) {\n\t\tif (res.data) {\n\t\t\t// if success, then call the onSuccess function in prop\n\t\t\tprops.onSuccess(res.data.msg);\n\t\t} else if (res.error) {\n\t\t\t// else enable form again\n\t\t\tsetSubmitted(false);\n\n\t\t\tif (res.error.errCd === \"ELGH0001\") {\n\t\t\t\t// show account type radio\n\t\t\t\tsetValues({ ...values, accTyp: \"EQ\" });\n\t\t\t} else {\n\t\t\t\t// hide account type radio and error msg block\n\t\t\t\tconst { pan, email, loginId } = values;\n\t\t\t\tsetValues({ pan, email, loginId });\n\t\t\t\tsetErrorMsg(res.error.errMsg);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction onChange(key: keyof IForgotFields, value: string) {\n\t\tif ((key === \"loginId\" || key === \"pan\") && !alphaNumExp.test(value)) {\n\t\t\tvalue = values[key];\n\t\t}\n\n\t\t// onchange of any field remove both type of errors\n\t\tsetValues({ ...values, [key]: value });\n\t\tsetErrors({ ...errors, [key]: \"\" });\n\t\tsetErrorMsg(\"\");\n\n\t\t// return value to be cahnged inside the input field\n\t\treturn value;\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t onChange(\"loginId\", loginId)}\n\t\t\t\tonBlur={error => {\n\t\t\t\t\tsetErrors({ ...errors, loginId: error.required ? \"Field is required\" : \"\" });\n\t\t\t\t}}\n\t\t\t\tmaxLength={24}\n\t\t\t\tclassName=\"login_inp mg-b40\"\n\t\t\t\tplaceholder=\"Eg:5678987\"\n\t\t\t\trequired\n\t\t\t\terrorText={errors.loginId}\n\t\t\t/>\n\n\t\t\t\n\t\t\t onChange(\"email\", email)}\n\t\t\t\tonBlur={error => setErrors({ ...errors, email: error.pattern ? \"\" : \"Please enter a valid email address\" })}\n\t\t\t\tclassName=\"login_inp mg-b40\"\n\t\t\t\tplaceholder=\"Eg: sarveshpali@gmail.com\"\n\t\t\t\terrorText={errors.email}\n\t\t\t/>\n\n\t\t\t\n\t\t\t onChange(\"pan\", pan)}\n\t\t\t\tonBlur={error => setErrors({ ...errors, pan: error.pattern ? \"\" : \"Please enter a valid PAN\" })}\n\t\t\t\tclassName=\"login_inp mg-b40\"\n\t\t\t\tplaceholder=\"Eg: JUKL5678987\"\n\t\t\t\thelpTextColor=\"blue\"\n\t\t\t\trequired\n\t\t\t\tpattern={pan}\n\t\t\t\terrorText={errors.pan}\n\t\t\t\tmaxLength={10}\n\t\t\t/>\n\n\t\t\t{/* This select account type block will only show if \"ELGH0001\" error comes in response to api */}\n\t\t\t{values.accTyp && (\n\t\t\t\t
    \n\t\t\t\t\t

    Select Account type to retrieve Login ID:

    \n\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t{accTyp.map(typ => (\n\t\t\t\t\t\t\t\t onChange(\"accTyp\", typ.value as string)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t
    • \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t)}\n\n\t\t\t{/* Show error if any */}\n\t\t\t{errorMsg && {errorMsg}}\n\n\t\t\t error) || Object.values(values).some(value => !value) || submitted}\n\t\t\t\tonClick={handleSubmit}\n\t\t\t/>\n\t\t\n\t);\n};\n\nexport default ForgotForm;\n","import * as React from \"react\";\nimport LoginPopup from \"../generic/loginPopup\";\nimport DeviceContext from \"../../service/indentifyDevice\";\nimport { ELoginPopupState, urls } from \"../loginConstants\";\nimport \"../../../assets/scss/components/login/loginScreen/loginScreen.scss\";\nimport { Link, RouteChildrenProps } from \"react-router-dom\";\nimport LoginStatusScreen from \"./loginStatusScreen\";\nimport ForgotForm from \"../forms/forgotForm\";\nimport LoginService from \"../../service/login/loginService\";\nimport logo from \"../../../assets/images/logo_white.jpg\";\n\nexport interface IForgotScreenProps {}\n\nexport interface IForgotScreenState {\n\tpopupMessage: string;\n}\n\nclass ForgotScreen extends React.Component {\n\tstate = { popupMessage: \"\" };\n\n\tget routeParam() {\n\t\treturn this.props.match!.path.split(\"/\")[2];\n\t}\n\n\tget title() {\n\t\tswitch (this.routeParam) {\n\t\t\tcase \"forgot-password\":\n\t\t\t\treturn \"Forgot Password\";\n\t\t\tcase \"unblock-account\":\n\t\t\t\treturn \"Unblock Account\";\n\t\t\tcase \"forgot-yob\":\n\t\t\t\treturn \"Get Your YOB\";\n\t\t\tdefault:\n\t\t\t\treturn \"\";\n\t\t}\n\t}\n\n\tonClose = () => {\n\t\tthis.props.history.push(\"/login/help\");\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tBack\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\tcenterHeaderContent={\n\t\t\t\t\t\tDeviceContext().isDesktop ? \"nuvama\" :

    Forgot Login ID

    \n\t\t\t\t\t}\n\t\t\t\t\t// don't show close button in vendor login\n\t\t\t\t\tonClose={LoginService.hideCross ? undefined : this.onClose}\n\t\t\t\t\tclassName=\"login_scrn frgt_id_form\"\n\t\t\t\t>\n\t\t\t\t\t{DeviceContext().isDesktop && (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    {this.title}

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\n\t\t\t\t\t this.setState({ popupMessage })} />\n\t\t\t\t\n\t\t\t\t{this.state.popupMessage && (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t);\n\t}\n}\n\nexport default ForgotScreen;\n","import * as React from \"react\";\nimport { Switch, Route } from \"react-router-dom\";\nimport LoginHelp from \"../../components/login/loginScreen/loginHelp\";\nimport ForgotLoginIdScreen from \"../../components/login/loginScreen/forgotLoginIdScreen\";\nimport LeadFormScreen from \"../../components/login/loginScreen/leadFormScreen\";\nimport MergeIdScreen from \"../../components/login/loginScreen/mergeIdScreen\";\nimport ChangePasswordScreen from \"../../components/login/loginScreen/changePasswordScreen\";\nimport LinkAadharScreen from \"../../components/login/loginScreen/linkAadharScreen\";\nimport RmRatingScreen from \"../../components/login/loginScreen/rmRatingScreen\";\nimport OpenAccountScreen from \"../../components/login/loginScreen/openAccountScreen\";\nimport LoginCtrl from \"../../components/login/loginCtrl\";\nimport ForgotScreen from \"../../components/login/loginScreen/forgotScreen\";\nimport TncConsentScreen from \"../../components/login/loginScreen/tncConsentScreen\";\nimport PostLogin from \"../postLogin\";\nimport ResetCredsScreen from \"../../components/login/loginScreen/resetCredsScreen\";\nimport LoginStatusScreen from \"../../components/login/loginScreen/loginStatusScreen\";\n\nconst LoginRouting = () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\nexport default LoginRouting;\n","export default function browserName() {\n\tlet nAgt = navigator.userAgent;\n\tlet browserName = navigator.appName;\n\tlet fullVersion = \"\" + parseFloat(navigator.appVersion);\n\tlet majorVersion = parseInt(navigator.appVersion, 10);\n\tlet verOffset;\n\tlet version;\n\tlet isoldbrowser;\n\n\t// In Chrome, the true version is after \"Chrome\"\n\tif ((verOffset = nAgt.indexOf(\"Chrome\")) !== -1) {\n\t\tbrowserName = \"Chrome\";\n\t\tfullVersion = nAgt.substring(verOffset + 7);\n\t\tversion = getversionnumber(fullVersion);\n\t\tmajorVersion = version.majorVersion;\n\t\tif (version.majorVersion <= 30) isoldbrowser = true;\n\t} else if (nAgt.indexOf(\"Trident/\") !== -1 && nAgt.indexOf(\"rv:\") !== -1) {\n\t\tbrowserName = \"Microsoft Internet Explorer\";\n\t\tlet rv = nAgt.indexOf(\"rv:\");\n\t\tfullVersion = nAgt.substring(rv + 3);\n\t\tversion = getversionnumber(fullVersion);\n\t\tmajorVersion = version.majorVersion;\n\t\tif (version.majorVersion < 10) isoldbrowser = true;\n\t}\n\t// In MSIE, the true version is after \"MSIE\" in userAgent\n\telse if ((verOffset = nAgt.indexOf(\"MSIE\")) !== -1) {\n\t\tbrowserName = \"Microsoft Internet Explorer\";\n\t\tfullVersion = nAgt.substring(verOffset + 5);\n\t\tversion = getversionnumber(fullVersion);\n\t\tmajorVersion = version.majorVersion;\n\t\tif (version.majorVersion < 3) isoldbrowser = true;\n\t}\n\n\t// In Safari, the true version is after \"Safari\" or after \"Version\"\n\telse if ((verOffset = nAgt.indexOf(\"Safari\")) !== -1) {\n\t\tbrowserName = \"Safari\";\n\t\tfullVersion = nAgt.substring(verOffset + 7);\n\t\tif ((verOffset = nAgt.indexOf(\"Version\")) !== -1) fullVersion = nAgt.substring(verOffset + 8);\n\t\tversion = getversionnumber(fullVersion);\n\t\tmajorVersion = version.majorVersion;\n\t\tif (version.majorVersion < 5) isoldbrowser = true;\n\t}\n\t// In Firefox, the true version is after \"Firefox\"\n\telse if ((verOffset = nAgt.indexOf(\"Firefox\")) !== -1) {\n\t\tbrowserName = \"Firefox\";\n\t\tfullVersion = nAgt.substring(verOffset + 8);\n\t\tversion = getversionnumber(fullVersion);\n\t\tmajorVersion = version.majorVersion;\n\t\tif (version.majorVersion <= 30) isoldbrowser = true;\n\t}\n\t// In Opera, the true version is after \"Opera\" or after \"Version\"\n\telse if ((verOffset = nAgt.indexOf(\"Opera\")) !== -1) {\n\t\tbrowserName = \"Opera\";\n\t\tfullVersion = nAgt.substring(verOffset + 6);\n\t\tif ((verOffset = nAgt.indexOf(\"Version\")) !== -1) fullVersion = nAgt.substring(verOffset + 8);\n\t\tversion = getversionnumber(fullVersion);\n\t\tmajorVersion = version.majorVersion;\n\t\tif (version.majorVersion <= 30) isoldbrowser = true;\n\t}\n\n\treturn { browserName, version, isoldbrowser };\n}\n\nfunction getversionnumber(fullVersion: string) {\n\tlet ix;\n\tif ((ix = fullVersion.indexOf(\";\")) !== -1) fullVersion = fullVersion.substring(0, ix);\n\tif ((ix = fullVersion.indexOf(\" \")) !== -1) fullVersion = fullVersion.substring(0, ix);\n\n\tlet majorVersion = parseInt(\"\" + fullVersion, 10);\n\tif (isNaN(majorVersion)) {\n\t\tfullVersion = \"\" + parseFloat(navigator.appVersion);\n\t\tmajorVersion = parseInt(navigator.appVersion, 10);\n\t}\n\treturn {\n\t\tfullVersion: fullVersion,\n\t\tmajorVersion: majorVersion\n\t};\n}\n","export default function deviceName() {\n\tvar device = '';\n\tif (/Android/i.test(navigator.userAgent)) {\n\t\t\tdevice = 'Android';\n\t} else if (/iPhone/i.test(navigator.userAgent)) {\n\t\t\tdevice = 'iPhone';\n\t} else if (/iPad/i.test(navigator.userAgent)) {\n\t\t\tdevice = 'iPad';\n\t} else if (/BlackBerry/i.test(navigator.userAgent)) {\n\t\t\tdevice = 'BlackBerry';\n\t} else if (/IEMobile/i.test(navigator.userAgent)) {\n\t\t\tdevice = 'IEMobile';\n\t} else if (/Opera Mini/i.test(navigator.userAgent)) {\n\t\t\tdevice = 'Opera Mini';\n\t} else {\n\t\t\tdevice = 'Desktop';\n\t}\n\treturn device;\n}","import * as React from \"react\";\nimport styles from \"../../../assets/scss/components/footer/feedbackForm/feedbackForm.module.scss\";\nimport { apiService } from \"../../service/apiService\";\nimport { isLoggedIn } from \"../../service/login/loginService\";\nimport { integerExp, phoneNo } from \"../../utils/regex\";\nimport DeviceContext from \"./../../service/indentifyDevice\";\nimport browserName from \"./../../utils/browserName\";\nimport deviceName from \"./../../utils/deviceName\";\nimport urlConfig from \"../../../config/domain\";\nimport bStrg from \"./../../service/storageHelper\";\n\nexport interface IFeedbackFormProps {\n onClose: () => void;\n}\n\ntype TFieldNames = \"name\" | \"email\" | \"phone\" | \"catFeed\" | \"comments\";\n\ntype TFieldValues = {\n [x in TFieldNames]: string;\n};\n\ntype TFieldValidity = {\n [x in TFieldNames]: Partial & {\n [x: string]: boolean | undefined;\n };\n};\n\ntype TShowError = {\n [x in TFieldNames]: boolean;\n};\n\ntype TImageFile = {\n ImgCont: string;\n ImgNm: string;\n Type: string;\n};\n\nconst FeedbackForm: React.FC = (props) => {\n const [values, setValues] = React.useState({\n name: \"\",\n email: \"\",\n phone: \"\",\n catFeed: \"Suggestions\",\n comments: \"\",\n });\n const [error, setError] = React.useState({\n name: {},\n email: {},\n phone: { valid: true },\n catFeed: { valid: true },\n comments: {},\n });\n const [showError, setShowError] = React.useState({\n name: false,\n email: false,\n phone: false,\n catFeed: false,\n comments: false,\n });\n const [openOptions, setOpenOptions] = React.useState(false);\n const [files, setFiles] = React.useState>([]);\n const [fileError, setFileError] = React.useState(false);\n const [imgPrv, setImgPrv] = React.useState(\"\");\n const [isSubmitted, setIsSubmitted] = React.useState(false);\n const categories = [\n \"Design and Interface\",\n \"Account Opening\",\n \"Guided Portfolios Related\",\n \"Customer Service\",\n \"Suggestions\",\n \"Pricing Related\",\n ];\n\n // if the user is logged in then we don't need to check name, email, phone fields for validity\n // so they should be valid by default\n React.useEffect(() => {\n if (isLoggedIn()) {\n setError({\n name: { valid: true },\n email: { valid: true },\n phone: { valid: true },\n catFeed: { valid: true },\n comments: {},\n });\n }\n }, []);\n\n function submitFeedback(e: React.FormEvent) {\n e.preventDefault();\n const isLgdIn = isLoggedIn();\n\n const body = {\n Brw: browserName().browserName,\n Cmmt: values.comments || \"\",\n Dev: deviceName(),\n Em:\n (isLgdIn ? bStrg(\"PersonalDetails\").emailAddressField : values.email) ||\n \"\",\n Imgs: files || [],\n Mob:\n (isLgdIn ? bStrg(\"PersonalDetails\").mobileNumberField : values.phone) ||\n \"\",\n Mod: \"GEN\",\n Nm: (isLgdIn ? bStrg(\"PersonalDetails\").nameField : values.name) || \"\",\n Opt: values.catFeed,\n Pg: \"HomePage\",\n Ptf: \"EWIN\",\n Rtg: 0,\n Url: window.location.href,\n };\n\n apiService(\n { url: urlConfig.feedback + \"submit\", method: \"POST\", body },\n () => setIsSubmitted(true)\n );\n }\n\n function fieldChange(\n e: React.ChangeEvent\n ) {\n let { name, value, validity } = e.target;\n\n // stop showing error if it is being shown\n if (showError[name as TFieldNames]) {\n setShowError({ ...showError, [name]: false });\n }\n\n setValues({ ...values, [name]: value });\n setError({ ...error, [name]: validity });\n }\n\n function phoneChange(e: React.ChangeEvent) {\n let { name, value, validity } = e.target;\n const tempValidity: any = validity;\n\n // stop showing error if it is being shown\n if (showError[name as TFieldNames]) {\n setShowError({ ...showError, [name]: false });\n }\n\n if (!integerExp.test(value)) {\n // only allow integers in mobile\n value = values.phone;\n }\n\n setValues({ ...values, [name]: value });\n\n if (value && !phoneNo.test(value)) {\n e.target.setCustomValidity(\"phoneNo\");\n tempValidity.phoneNo = true;\n } else if (value && +value < 1000000000) {\n e.target.setCustomValidity(\"minValue\");\n tempValidity.minValue = true;\n } else {\n e.target.setCustomValidity(\"\");\n }\n\n setError({ ...error, [name]: tempValidity });\n }\n\n function setCategory(cat: string) {\n setValues({ ...values, catFeed: cat });\n }\n\n function onSelectFile(e: React.ChangeEvent) {\n uploadFile(e.target.files![0]);\n }\n\n function viewFile(img: string, e: React.MouseEvent) {\n if ((e.target as HTMLElement).id !== \"close_img\") setImgPrv(img);\n }\n\n function hidePreview() {\n setImgPrv(\"\");\n }\n\n function removeFile(index: number) {\n setFiles(files.filter((_, i) => i !== index));\n }\n\n function dropHandler(e: React.DragEvent) {\n e.preventDefault();\n\n if (e.dataTransfer.items) {\n for (let i = 0; i < e.dataTransfer.items.length; i++) {\n if (e.dataTransfer.items[i].kind === \"file\") {\n uploadFile(e.dataTransfer.items[i].getAsFile()!);\n }\n }\n }\n }\n\n function uploadFile(file: File) {\n if (file.size > 1048576 || file.type.split(\"/\")[0] !== \"image\") {\n // if file size is more than 1MB:\n if (!fileError) setFileError(true);\n return;\n }\n\n if (fileError) setFileError(false);\n\n let reader = new FileReader();\n reader.readAsDataURL(file);\n\n reader.onload = function () {\n setFiles([\n ...files,\n { ImgCont: reader.result as string, ImgNm: file.name, Type: file.type },\n ]);\n };\n\n reader.onerror = function () {\n //console.log(reader.error);\n };\n }\n\n return (\n <>\n
    \n
    \n {!isSubmitted ? (\n <>\n {/* Header */}\n
    \n
    \n \n
    \n

    \n Please provide your feedback below\n

    \n
    \n\n {/* Main content */}\n
    \n
    \n {!isLoggedIn() && (\n
    \n \n \n \n setShowError({ ...showError, name: true })\n }\n />\n {showError.name && !error.name.valid && (\n \n Please enter a valid name\n \n )}\n
    \n \n \n \n setShowError({ ...showError, email: true })\n }\n />\n {showError.email && !error.email.valid && (\n \n Please enter a valid email id\n \n )}\n
    \n \n )}\n
    \n {!isLoggedIn() && (\n \n \n \n setShowError({ ...showError, phone: true })\n }\n />\n {showError.phone && (\n \n {error.phone.phoneNo ? (\n Please enter a valid mobile number.\n ) : error.phone.minValue ? (\n Mobile Number length should be 10.\n ) : (\n <>\n )}\n \n )}\n
    \n )}\n \n \n
    \n {\n setOpenOptions(true);\n }}\n onBlur={() =>\n setTimeout(() => setOpenOptions(false), 200)\n }\n >\n {values.catFeed}\n \n \n \n {categories.map((cat) => (\n
  • setCategory(cat)} key={cat}>\n {cat}\n
  • \n ))}\n \n
    \n
    \n \n
    \n \n \n \n setShowError({ ...showError, comments: true })\n }\n />\n {showError.comments && (\n <>\n {error.comments.valueMissing ? (\n \n Please enter comments\n \n ) : error.comments.tooShort ? (\n \n Please enter atleast two characters\n \n ) : (\n <>\n )}\n \n )}\n
    \n \n
    \n {files.length === 0 && !DeviceContext().isMobile ? (\n e.preventDefault()}\n onDragEnter={(e) => e.preventDefault()}\n >\n \n ((e.target as HTMLInputElement).value = \"\")\n }\n />\n \n \n Drag & drop your screenshot here or click here to\n upload\n \n \n ) : (\n
    \n {files.map((file, index) => (\n
    \n \n DeviceContext().isMobile &&\n viewFile(file.ImgCont, e)\n }\n >\n {(file.Type === \"image/jpeg\" ||\n file.Type === \"image/jpg\" ||\n file.Type === \"image/png\") && (\n \n )}\n {file.Type !== \"image/jpeg\" &&\n file.Type !== \"image/jpg\" &&\n file.Type !== \"image/png\" && (\n \n )}\n {!DeviceContext().isMobile && (\n
    \n removeFile(index)}\n >\n \n \n viewFile(file.ImgCont, e)}\n >\n \n \n
    \n )}\n {DeviceContext().isMobile && (\n removeFile(index)}\n >\n \n ×\n \n \n )}\n
    \n {file.ImgNm}\n
    \n ))}\n {files.length < 3 && (\n \n e.preventDefault()}\n onDragEnter={(e) => e.preventDefault()}\n >\n \n ((e.target as HTMLInputElement).value = \"\")\n }\n />\n
    \n \n\n  \n
    \n )}\n {files.length < 1 && (\n \n Upload Screenshot\n \n )}\n
    \n )}\n {imgPrv && (\n
    \n
    \n \n\n \n ×\n \n
    \n
    \n )}\n {fileError && (\n \n File format should be PNG, JPG, JPEG & not more than 1\n MB.\n \n )}\n \n
    \n
    \n !error[err as TFieldNames].valid\n )\n ? styles.disabled\n : \"\")\n }\n disabled={\n !!Object.keys(error).find(\n (err) => !error[err as TFieldNames].valid\n )\n }\n >\n Submit\n \n \n Cancel\n \n
    \n
    \n \n
    \n \n ) : (\n
    \n
    \n \n
    \n\n \n

    Thank you for your feedback.

    \n

    \n We look forward to enhancing your experience with us.\n

    \n
    \n )}\n
    \n
    \n \n );\n};\n\nexport default FeedbackForm;\n","import { config } from \"../../config/domain\";\nimport { isLoggedIn, getUserID } from \"./login/loginService\";\n\ndeclare var dataLayer: any;\n\nexport interface ValueInterface {\n\tcategory: string;\n\taction: string;\n\tevent: string;\n\t// either label or labelUrl should be present\n\tlabel?: string;\n\tlabelUrlA?: string; // Angular site url - enter only the url after origin url (rest be added automatically). If labelUrlA present, then label will be replaced.\n\tlabelUrlR?: string; // React site url - enter only the url after origin url (rest be added automatically). If labelUrlR present, then label and labelUrlA will be replaced.\n}\n\n/**\n * Single function that handles GA events\n * @param value if any value is not defined, then pass blank string\n * @param user_id user id. If user is already logged in, then this will automatically pick up logged in user's userid\n * @param href href to pass if there is any\n * @param position position to pass if there is any\n * @param searchtext search text to pass if there is any\n */\nexport default function gtmService(value: ValueInterface, user_id?: string, href?: string, position?: string, searchtext?: string) {\n\tif (value.labelUrlR) {\n\t\tvalue.label = window.location.origin + process.env.PUBLIC_URL + \"/\" + value.labelUrlR;\n\t} else if (value.labelUrlA) {\n\t\tvalue.label = config.rootUrl + value.labelUrlA;\n\t}\n\tdelete value.labelUrlA;\n\tdelete value.labelUrlR\n\n\tif (!user_id && isLoggedIn()) {\n\t\tuser_id = getUserID()!;\n\t}\n\n\tlet data = { ...value, user_id, href, position, searchtext };\n\n\tdataLayer.push(data);\n}\n","import * as React from \"react\";\nimport DeviceContext from \"./../../service/indentifyDevice\";\nimport urlConfig from \"../../../config/domain\";\nimport { apiService } from \"./../../service/apiService\";\nimport FeedbackForm from \"./feedbackForm\";\nimport { Link } from \"react-router-dom\";\nimport { scrollToEle } from \"../../service/generic/scrollToEle\";\nimport gtmService from \"../../service/gtmService\";\n\nexport interface IFooterContProps { }\n\ninterface IMarketStatus {\n\texc: string;\n\tsts: string;\n}\n\nconst FooterCont: React.FC = () => {\n\tconst [styles, setStyles] = React.useState({} as any);\n\tconst [viewDisclaimer, setViewDisclaimer] = React.useState(false);\n\tconst [marketStatus, setMarketStatus] = React.useState>([]);\n\tconst [openFeedback, setOpenFeedback] = React.useState(false);\n\tconst [contactpop, setContactPop] = React.useState(false);\n\n\tReact.useEffect(() => {\n\t\tif (DeviceContext().isDesktop) {\n\t\t\timport(\"../../../assets/scss/components/footer/footer/footerContDsk.module.scss\").then((style) => {\n\t\t\t\tsetStyles(style.default);\n\t\t\t});\n\t\t} else if (DeviceContext().isTablet) {\n\t\t\timport(\"../../../assets/scss/components/footer/footer/footerContTab.module.scss\").then((style) => {\n\t\t\t\tsetStyles(style.default);\n\t\t\t});\n\t\t} else {\n\t\t\timport(\"../../../assets/scss/components/footer/footer/footerContMob.module.scss\").then((style) => {\n\t\t\t\tsetStyles(style.default);\n\t\t\t});\n\t\t}\n\t}, []);\n\n\tReact.useEffect(() => {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: urlConfig.market.market + \"MarketStatus\",\n\t\t\t\tmethod: \"GET\",\n\t\t\t\tappidkey: urlConfig.appidkey\n\t\t\t},\n\t\t\t(res: any) => {\n\t\t\t\tif (!res?.error) setMarketStatus(res);\n\t\t\t}\n\t\t);\n\t}, []);\n\n\tfunction onFeedbackClick() {\n\t\tsetOpenFeedback(true);\n\t\tgtmService({\n\t\t\t...gtmFooterOptions,\n\t\t\taction: \"Give us feedback\",\n\t\t\tlabel: \"mailto:Feedback_NVcom@nuvama.com?subject=Nuvama beta feedback\"\n\t\t});\n\t}\n\t\n\n\n\tconst gtmFooterOptions = { event: \"event Footer\", category: \"Footer\" };\n\n\treturn Object.keys(styles).length ? (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t{DeviceContext().isMobile && (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t gtmService({ event: \"event Subfooter\", category: \"Subfooter\", action: \"Faqs\", labelUrlA: \"faqs\" })}>View FAQS\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t setContactPop(!contactpop)}>Contact us\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\tRaise Query\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{(DeviceContext().isMobile && contactpop) && (\n\t\t\t\t\t\t\t\t\t
    setContactPop(!contactpop)}>\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t
    Contact Us
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    Mon to Fri (8:30am - 5:30pm)
    Sat (10am - 2pm)
    \n\t\t\t\t\t\t\t\t\t\t\t\t
    1800 - 102 - 3335
    \n\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    )}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{DeviceContext().isDesktop && (\t\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t \n\t\t\t\t\t
    \n
    \n
    Contact Us
    \n
    1800 - 102 - 3335
    \n \n
    \n
    \n
    Mon to Fri (8:30am - 5:30pm)
    \n
    Sat (10am - 2pm)
    \n
    \n
    \n
    \n
    Still have questions?
    \n
    Raise a query
    \n \n
    )}\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n \n \n \n
    \n
    FOLLOW US
    \n \n \n \n \n
    \n
    \n\t\t\t\t
    \n
    Give Us Feedback!
    \n

    We welcome your suggestions and ideas. With over a million members we constantly improve our services.

    \n\t\t\t\t\t\t \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t \t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t \t
    \n\t\t\t\t\t\t
    \n

    © All rights reserved 2020

    \n
    \n\t\t\t\t
    \n\n\t\t\t\t\t{DeviceContext().isMobile && (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{(!DeviceContext().isMobile || (DeviceContext().isMobile && viewDisclaimer)) && (\n\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t\tBroking services offered by Nuvama Wealth and Investment Limited (NWIL), known as Edelweiss Broking Limited, is a 100% subsidiary of Nuvama Wealth Management Limited . Registered office of NWIL is at 201 to 203, Zodiac Plaza, Xavier College Road, Off C G Road, Ahmedabad, Gujarat - 380009. Contact: (079) 40019900 / 66629900. Corporate Office address is Edelweiss House, Off CST Road, Kalina, Mumbai - 400098. It is a Member of National Stock Exchange of India Ltd (Member Code: 13116), BSE Ltd (Member Code :3261), Multi Commodity Exchange of India Limited (Member Code :56520), Metropolitan Stock Exchange (Member Code :86100) and National Commodity and Derivatives Exchange Limited (Member Code :01279) and having SEBI registration no. INZ000005231. Depository Participant SEBI Registration No.: IN-DP-656-2021 with NSDL having DP ID: IN302201 & IN303719 and with CDSL having DP ID: 12032300. Research services are offered by NWIL under SEBI Registration No. INH000000172. Name of the Compliance officer: Mr. Pranav Tanna, E-mail address: complianceofficer.nwil@nuvama.com. Investments in securities market are subject to market risks, read all the related documents carefully before investing. \n\t\t\t\t\t\t\t\t\t\t\t
    The contents herein shall not be considered as an invitation or persuasion to trade or invest. NWIL and affiliates accept no liabilities for any loss or damage of any kind arising out of any actions taken in reliance thereon. Please note Brokerage would not exceed the SEBI prescribed limit. NWIL also acts in the capacity of distributor for Products such as PMS, OFS, Mutual Funds, IPOs and/or NCD etc. All disputes with respect to the distribution activity, would not have access to Exchange investor redressal forum or Arbitration mechanism.\n\t\t\t\t\t\t\t\t\t\t\t
    NWIL also acts in the capacity of distributor of Edelweiss Mutual Fund and other AMCs under AMFI Registration Number – 70892 and in capacity of a Corporate Agent; registered with IRDA having Licence number: CA0131. Mutual Fund Investments are subject to market risks. Please read all scheme related documents carefully before investing. Investment in the securities involves risks. The user is required to undergo risk profiling before investing. Guided view is indicative in nature and is based on the information provided by the user voluntarily. Each user of this information should make such investigation as it deems necessary to arrive at an independent evaluation of an investment in the securities of companies referred here (including the merits and risks involved) and should consult his own advisors to determine the merits and risks of such investment. Past performance is not necessarily a guide to future performance.
    \n\t\t\t\t\t\t\t\t\t\t\t
    Trading Accounts would be open after all procedure relating to client registration, IPV and client due diligence is completed. Margin Trading facility is offered by NWIL in terms of the provisions of SEBI Circular CIR/MRD/DP/54/2017 dated June 13, 2017, and the terms and conditions mentioned in rights and obligations statement issued.\n\t\t\t\t\t\t\t\t\t\t\t
    For any grievance relating to Stock Broking/ DP operations, please call 040-41151621 or write to helpdesk; Email ID: helpdesk@nuvama.com (for trading related) and dpservicesnwil@nuvama.com (for demat related).\n\t\t\t\t\t\t\t\t\t\t\t

    Margin Pledge Awareness\n\t\t\t\t\t\t\t\t\t\t\t
    1. Stock Brokers can accept securities as margin from clients only by way of pledge in the depository system w.e.f. September 01, 2020.\n\t\t\t\t\t\t\t\t\t\t\t
    2. Update your email id and mobile number with your stock broker / depository participant and receive OTP directly from depository on your email id and/or mobile number to create pledge.\n \t\t\t\t\t
    3. Check your securities / MF / bonds in the consolidated account statement issued by NSDL/CDSL every month.\n\t\t\t\t\t\t\t\t

    \n\t\t\t\t \t)}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t \t)}\n\t\t\t\t\n\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Attention Investors
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tWorld Investor Week November 23-29, 2020 being celebrated under the aegis of IOSCO and SEBI.\n\t\t\t\t\t\t\t\t{\" \"}\n\t\t\t\t\t\t\t\tStock Brokers can accept securities as margin from clients only by way of pledge in the depository system w.e.f.\n\t\t\t\t\t\t\t\tSeptember 1, 2020, Update your mobile number & email Id with your stock broker/depository participant and receive OTP\n\t\t\t\t\t\t\t\tdirectly from depository on your email id and/or mobile number to create pledge, Pay 20% upfront margin of the\n\t\t\t\t\t\t\t\ttransaction value to trade in cash market segment, Investors may please refer to the Exchange's Frequently Asked\n\t\t\t\t\t\t\t\tQuestions (FAQs) issued vide circular reference NSE/INSP/45191, 20200731-7 (BSE) dated July 31, 2020 and\n\t\t\t\t\t\t\t\tNSE/INSP/45534, 20200831-45 (BSE) dated August 31, 2020 and other guidelines issued from time to time in this regard,\n\t\t\t\t\t\t\t\tCheck your Securities /MF/ Bonds in the consolidated account statement issued by NSDL/CDSL every month, We have\n\t\t\t\t\t\t\t\tdiscontinued the facility for sending physical documents till situation normalise with regard to transactions carried\n\t\t\t\t\t\t\t\tout through exchanges and depositories. You will be receiving the documents in electronic mode instead of physical.\n\t\t\t\t\t\t\t\tKindly update the current email id in this regard.  |  Broking services offered\n\t\t\t\t\t\t\t\tby - Nuvama Wealth and Investment Ltd. under SEBI Registration no. INZ000005231 (NSE, BSE & MSEI. Corporate office:\n\t\t\t\t\t\t\t\tEdelweiss House, OFF CST Road, Kalina, Mumbai - 400098, Tel. (022) 4009 4400 / 2286 4400.  |  KYC\n\t\t\t\t\t\t\t\tis one time exercise while dealing in securities markets - Once KYC is done through a SEBI registered\n\t\t\t\t\t\t\t\tintermediary (broker, DP, Mutual Fund, etc.), you need not undergo the same process again when you approach another\n\t\t\t\t\t\t\t\tintermediary.  |  Prevent unauthorised transactions in your trading account - Update\n\t\t\t\t\t\t\t\tyour mobile numbers/email IDs with your stock broker(s). Receive information of your transactions directly from\n\t\t\t\t\t\t\t\texchange on your mobile/email at the end of the day.  |  Prevent unauthorized transactions in your\n\t\t\t\t\t\t\t\tdemat account - Update your mobile number with your Depository Participant, to receive alerts on your\n\t\t\t\t\t\t\t\tregistered mobile number for all debit and other important transactions in your demat account directly from NSDL/CDSL\n\t\t\t\t\t\t\t\ton the same day. - Issued in the interest of the investors.  |  SEBI Notification for all\n\t\t\t\t\t\t\t\tinvestors including retail individual investors for all public issues opening on or after January 01,\n\t\t\t\t\t\t\t\t2016 - No need to issue cheques by investors while subscribing to IPO. Just write the bank account number\n\t\t\t\t\t\t\t\tand sign in the application form to authorise your bank to make payment in case of allotment. No worries for refund as\n\t\t\t\t\t\t\t\tthe money remains in investor's account.\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Market Status:
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{marketStatus.map((mkt) => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{mkt.exc}  -  \n\t\t\t\t\t\t\t\t\t{mkt.sts}{\" \"}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t
    \n\t\t\t\t \t
    \n\t\t\t\t \t
    \n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tSEBI SCORES\n\t\t\t\t\t\t\t{\" \"}\n\t\t\t\t\t\t\t| Nuvamawealth.com(TOC) - Ver. 1.0.2\n\t\t\t\t\t\t

    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t{openFeedback && setOpenFeedback(false)} />}\n\t\t
    \n\t) : (\n\t\t<>\n\t);\n};\n\nexport default FooterCont;\n","import * as React from \"react\";\n\ninterface IPdfSvgProps {\n\twidth: string;\n\theight: string;\n\tviewbox: string;\n}\n\nexport function PdfSvg(props: IPdfSvgProps): JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tPDF\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\nexport default PdfSvg;\n","import * as React from \"react\";\nimport PdfSvg from \"../../../assets/icons/svgIcons/pdfSvg\";\nimport { apiService } from \"../../service/apiService\";\nimport DeviceContext from \"./../../service/indentifyDevice\";\nimport { config } from \"../../../config/domain\";\nimport Loader from \"../../generic/loader\";\n\nexport interface IStructuredProdScrnProps {}\n\ninterface IContact {\n\tcomp: string; // bold text at top\n\taddr: string;\n\tname?: string;\n\twebsite?: string[];\n\tphone?: string[];\n\tfax?: string[];\n\temail?: string[];\n}\n\ninterface IContactInfoDeb {\n\tcomp: string; // bold text at top\n\taddr: string;\n\tname?: string;\n\twebsite?: string[];\n\tphone?: string[];\n\tfax?: string[];\n\temail?: string[];\n\tcPerson?: string;\n\tSRegNum?:string;\n\tCin?:string;\n}\ninterface IReport {\n\tID: number;\n\tFilePathName: string;\n\tRatingAgencyName: string;\n}\n\nconst StructuredProdScrn: React.FC = () => {\n\tconst [styles, setStyles] = React.useState({} as any);\n\tconst [reports, setReports] = React.useState>([]);\n\tconst investorContact: IContact = {\n\t\tcomp: \"Dipankar Basu – Company Secretary\",\n\t\taddr: \"Edelweiss House,
    Off CST Road, Kalina,
    Mumbai – 400098\",\n\t\tphone: [ \"+91 22 4009 4400\"],\n\t\tfax:[\"+ 91 22 4086 3610\"],\n\t\temail:[\"NWM.Secretarial@nuvama.com\"]\n\t};\n\tconst DebTrustee: IContactInfoDeb = {\n\t\tcomp: \"Catalyst Trusteeship Limited\",\n\t\taddr: \"Windsor, 6th Floor, Office No.604, C.S.T. Road,
    Kalina, Santacruz (East)
    Mumbai – 400098\",\n\t\tphone: [ \"+91 022 4922 0555\"],\n\t\tfax:[\"+91 022 4922 0505\"],\n\t\temail:[\"dt@cltrustee.com\"],\n\t\tcPerson : \"Mr. Umesh Salvi\",\n\t\tSRegNum : \"SEBI Registration No : IND000000034\",\n\t\tCin: \"CIN : U74999PN1997PLC110262\"\n\t};\n\n\tReact.useEffect(() => {\n\t\tif (DeviceContext().isMobile) {\n\t\t\timport(\"../../../assets/scss/components/footer/structuredProduct/structuredProdMob.module.scss\").then((style) => {\n\t\t\t\tsetStyles(style.default);\n\t\t\t});\n\t\t} else {\n\t\t\timport(\"../../../assets/scss/components/footer/structuredProduct/structuredProdDsk.module.scss\").then((style) => {\n\t\t\t\tsetStyles(style.default);\n\t\t\t});\n\t\t}\n\t}, []);\n\n\tconst contactDebCard = (contact: IContactInfoDeb) => (\n\t\t<>\n\t\t\t

    {contact.comp}

    \n\t\t\t

    \n\t\t\t{contact.name && (\n\t\t\t\t

    \n\t\t\t\t\t\n\t\t\t\t\t{contact.name}\n\t\t\t\t

    \n\t\t\t)}\n\t\t\t{contact.website?.map((website) => (\n\t\t\t\t

    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{website}\n\t\t\t\t\t\n\t\t\t\t

    \n\t\t\t))}\n\t\t\t{contact.phone?.map((phone) => (\n\t\t\t\t

    \n\t\t\t\t\t\n\t\t\t\t\t{phone}\n\t\t\t\t

    \n\t\t\t))}\n\t\t\t{contact.fax?.map((fax) => (\n\t\t\t\t

    \n\t\t\t\t\t\n\t\t\t\t\t{fax}\n\t\t\t\t

    \n\t\t\t))}\n\t\t\t{contact.email?.map((email) => (\n\t\t\t\t

    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{email}\n\t\t\t\t\t\n\t\t\t\t

    \n\t\t\t))}\n\t\t\t{contact.cPerson && (\n\t\t\t\t

    \n\t\t\t\t\t{\"Contact Person \"}\n\t\t\t\t\t\n\t\t\t\t\t{\": \" + contact.cPerson}\n\t\t\t\t

    \n\t\t\t)}\n\t\t\t{contact.SRegNum && (\n\t\t\t\t

    \n\t\t\t\t\t{contact.SRegNum}\n\t\t\t\t

    \n\t\t\t)}\n\t\t\t{contact.Cin && (\n\t\t\t\t

    \n\t\t\t\t\t{contact.Cin}\n\t\t\t\t

    \n\t\t\t)}\n\t\t\n\t);\n\n\tReact.useEffect(() => {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: config.web_mw + \"Broking/GetFileUpload\",\n\t\t\t\tmethod: \"GET\"\n\t\t\t},\n\t\t\tgetFilesSuccess\n\t\t);\n\t}, []);\n\n\tfunction getFilesSuccess(res: Array) {\n\t\tsetReports(res);\n\t}\n\n\tconst contactCard = (contact: IContact) => (\n\t\t<>\n\t\t\t

    {contact.comp}

    \n\t\t\t

    \n\t\t\t{contact.name && (\n\t\t\t\t

    \n\t\t\t\t\t\n\t\t\t\t\t{contact.name}\n\t\t\t\t

    \n\t\t\t)}\n\t\t\t{contact.website?.map((website) => (\n\t\t\t\t

    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{website}\n\t\t\t\t\t\n\t\t\t\t

    \n\t\t\t))}\n\t\t\t{contact.phone?.map((phone) => (\n\t\t\t\t

    \n\t\t\t\t\t\n\t\t\t\t\t{phone}\n\t\t\t\t

    \n\t\t\t))}\n\t\t\t{contact.fax?.map((fax) => (\n\t\t\t\t

    \n\t\t\t\t\t\n\t\t\t\t\t{fax}\n\t\t\t\t

    \n\t\t\t))}\n\t\t\t{contact.email?.map((email) => (\n\t\t\t\t

    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{email}\n\t\t\t\t\t\n\t\t\t\t

    \n\t\t\t))}\n\t\t\n\t);\n\n\treturn Object.keys(styles).length ? (\n\t\t
    \n\t\t\t

    Valuations of Structured Products

    \n\t\t\t

    Nuvama Wealth and Investment Limited

    \n\t\t\t

    \n\t\t\t\tNuvama Wealth and Investment Ltd. is a subsidiary company of Nuvama Wealth Management Limited. Edelweiss Financial Services Limited (EFSL) is the\n\t\t\t\tparent company of Nuvama Wealth Management Limited. Nuvama Wealth and Investment Limited Offers Broking, Advisory and DP services under SEBI\n\t\t\t\tRegistration No.: INZ000005231 (Member of NSE, BSE and MSE) and IN-DP-NSDL-314-2009 (DP with NSDL).\n\t\t\t

    \n\t\t\t

    \n\t\t\t\tThe Company is registered as a trading member with National Exchange of India Limited (‘NSEIL’), BSE Limited (‘BSE’) and Metropolitan\n\t\t\t\tStock Exchange of India Limited (MSEI), Multi-commodity Exchange of India Limited (MCX), National Commodity and Derivatives Exchange\n\t\t\t\tLimited (NCDEX) and provides broking services to the clients. The Company also registered as Depository Participant with National\n\t\t\t\tSecurities Depository Limited (NSDL), Central Depository Services (India) Limited (CDSL) and also registered as Repository Participant\n\t\t\t\twith National E-Repository Limited (NERL) and CDSL Commodity Repository Limited (CCRL). The Company is registered as Research Analyst\n\t\t\t\twith Securities and Exchange Board of India (SEBI) and Corporate agent (Composite) with Insurance Regulatory and Development Authority\n\t\t\t\tof India (IRDAI). The Company is registered as Point of Presence (PoP) under the National Pension System (NPS) with Pension Fund\n\t\t\t\tRegulatory and Development Authority and Real Estate Agent with Maharashtra Real Estate Regulatory Authority, Uttar Pradesh Real\n\t\t\t\tEstate Regulatory Authority, Haryana Real Estate Regulatory Authority Panchkula. The Company is also a distributor for various\n\t\t\t\tfinancial products such as and Mutual Funds, Bonds, NCD, PMS, Structured Products & Alternative Investment fund etc.\n\t\t\t

    \n\t\t\t
    \n\t\t\t\t{reports.map((report) => (\n\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t

    Rating Agency

    \n\t\t\t\t\t\t

    {report.RatingAgencyName}

    \n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tView Report\n\t\t\t\t\t\t

    \n\t\t\t\t\t\n\t\t\t\t))}\n\t\t\t
    \n\t\t\t

    Investor Contacts

    \n\t\t\t{contactCard(investorContact)}\n\t\t\t

    Debenture Trustees to the Issue

    \n\t\t\t{contactDebCard(DebTrustee)}\n\t\t
    \n\t) : (\n\t\t
    \n\t\t\t\n\t\t
    \n\t);\n};\n\nexport default StructuredProdScrn;\n","import React, { CSSProperties, ReactElement } from \"react\";\n\ninterface ISubscriptionIconsProps {\n\ticon: \"webinar\" | \"support\" | \"charges\" | \"commission\" | \"platforms\" | \"research\" | \"platinum_knot\" | \"gold_knot\" | \"black_knot\" | \"blue_knot\";\n\twidth: string;\n\theight: string;\n\tstyle?: CSSProperties;\n}\n\nexport default function SubscriptionIcons(props: ISubscriptionIconsProps): ReactElement {\n\tlet returnSvg: ReactElement = <>No Icon;\n\n\tswitch (props.icon) {\n\t\tcase \"webinar\":\n\t\t\treturnSvg = (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\t\tbreak;\n\t\tcase \"support\":\n\t\t\treturnSvg = (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\t\tbreak;\n\t\tcase \"charges\":\n\t\t\treturnSvg = (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\t\tbreak;\n\t\tcase \"commission\":\n\t\t\treturnSvg = (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\t\tbreak;\n\t\tcase \"platforms\":\n\t\t\treturnSvg = (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\t\tbreak;\n\t\tcase \"research\":\n\t\t\treturnSvg = (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\t\tbreak;\n\t\tcase \"platinum_knot\":\n\t\t\treturnSvg = (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\n\t\t\tbreak;\n\t\tcase \"gold_knot\":\n\t\t\treturnSvg = (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\t\tbreak;\n\t\tcase \"black_knot\":\n\t\t\treturnSvg = (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\t\tbreak;\n\t\tcase \"blue_knot\":\n\t\t\treturnSvg = (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\n\t\t\tbreak;\n\t\tdefault:\n\t\t\treturnSvg = <>No Icon;\n\t\t\tbreak;\n\t}\n\treturn returnSvg;\n}\n","import * as URLConfig from \"../domain\";\n\nconst config = URLConfig.config;\n\nexport default {\n\tsaveLeadInfoV1: config.web_mw + \"Oyo/saveleadinfo_V1\", //POST\n\tgetLeadMasterDetails: config.web_mw + \"Oyo/getLeadMasterDetails/\" //GET\n};\n","import { apiService } from \"../apiService\";\nimport leadURLConfig from \"../../../config/login/leadURLConfig\";\nimport { jwtToken } from \"../../types/genericTypes\";\nimport LoginService from \"../login/loginService\";\nimport { apiAService } from \"../apiService\";\n\nlet pToken: jwtToken | null = LoginService.pToken,\n\tuserID = pToken ? pToken.username : null;\n\n//after redirect reinstate pToken with parsed jwt token\nconst pTokenCheck = (paramChk?: keyof jwtToken) => {\n\tif (!pToken) {\n\t\tpToken = LoginService.pToken;\n\t\tuserID = pToken ? pToken.username : null;\n\t}\n\treturn paramChk && pToken ? pToken[paramChk] : pToken;\n};\n// Add fund Equity-Limits - rms sublimits\nexport const saveLeadInfo_v1 = (callback: CallableFunction, reqBody: {}) => {\n\tif (pTokenCheck(\"accType\") !== \"CO\") {\n\t\tapiService(\n\t\t\t{\n\t\t\t\turl: leadURLConfig.saveLeadInfoV1,\n\t\t\t\tmethod: \"POST\",\n\t\t\t\tauthType: \"bearer\",\n\n\t\t\t\tbody: reqBody\n\t\t\t},\n\t\t\tcallback\n\t\t);\n\t}\n};\nexport const getLeadMasterDetails = async (pageId: string) => {\n\treturn await apiAService({\n\t url: leadURLConfig.getLeadMasterDetails + pageId,\n\t method: \"GET\",\n\t authType: \"bearer\",\n\t});\n };\n","export default __webpack_public_path__ + \"static/media/infinity-plan-hero.a6bf5e1b.png\";","import * as React from \"react\";\nimport LoginService from \"../../service/login/loginService\";\nimport EdButton from \"../../generic/edButton\";\nimport {IPContext} from \"../infinityPlan\";\nimport gtmService from \"../../service/gtmService\";\n\nexport default function PageFooterDock() {\n const [loggedIn] = React.useState(LoginService.isLoggedIn());\n const [infinityPlanFlag] = React.useState(LoginService.getAccData(\"accs\")?.mfInf);\n const {dockToBtm, saveLead, setShowModal} = React.useContext(IPContext);\n return (\n\n
      \n {!infinityPlanFlag && saveLead && (\n
    • \n \n\n {\n gtmService({\n event: \"event Infinity_Subscription_Program\",\n category: \"Infinity Subscription\",\n action: \"Footer_button\",\n labelUrlR: \"I'm Interested\"\n });\n loggedIn ? saveLead() : setShowModal(true);\n }}\n slim\n />\n\n\n
    • \n )}\n
    \n )\n}\n","import * as React from \"react\";\nimport SubscriptionIcons from \"../../../../assets/icons/svgIcons/subscriptionIcons\";\nimport {toINR} from \"../../../service/numberFormat\";\n\nimport IPlan from \"../IPTypes\";\nimport {IPContext} from \"../../infinityPlan\";\nimport gtmService from \"../../../service/gtmService\";\n\nexport default function PlansPricingDesk() {\n const {plans} = React.useContext(IPContext);\n const [charges_show_hide, setCharges_show_hide] = React.useState(false);\n const [Assumptions_show_hide, setAssumptions_show_hide] = React.useState(false);\n\n return (\n <>\n
      \n
    • \n
      Benefits
      \n {plans.map((plan: IPlan, index: number) => (\n
      \n

      \n \n {plan.type && (\n \n )}\n

      \n {plan.short_name &&

      {plan.short_name}

      }\n \n \n \n

      \n \n {toINR(plan.value, 0)}\n

      \n
      \n ))}\n
    • \n
    • \n
      Validity
      \n {plans.map((plan: IPlan, index: number) => (\n
      \n {plan.validity}\n
      \n ))}\n
    • \n
    • \n
      Direct MF
      \n {plans.map((plan: IPlan, index: number) => (\n
      \n {plan.direct_MF}\n
      \n ))}\n
    • \n
    • \n
      \n Brokerage (Delivery)\n \n
      \n {plans.map((plan: IPlan, index: number) => (\n
      \n {plan.brokerage}\n
      \n ))}\n
    • \n\n
    • \n
        \n
      • \n
        Cash Delivery
        \n {plans.map((plan: IPlan, index: number) => (\n
        \n {plan.cash_delivery}\n
        \n ))}\n
      • \n
      • \n
        Intraday & Eq Future
        \n {plans.map((plan: IPlan, index: number) => (\n
        \n {plan.intraday_eq_fut}\n
        \n ))}\n
      • \n
      • \n
        Option (per Lot)
        \n {plans.map((plan: IPlan, index: number) => (\n
        \n {plan.option_per_lot}\n
        \n ))}\n
      • \n
      • \n
        CDS Future
        \n {plans.map((plan: IPlan, index: number) => (\n
        \n {plan.cds_future}\n
        \n ))}\n
      • \n
      • \n
        CDS Option Per Lot
        \n {plans.map((plan: IPlan, index: number) => (\n
        \n {plan.cds_option_per_lot}\n
        \n ))}\n
      • \n
      \n
    • \n
    • \n
      \n Waive off on DP
      AMC Charges\n
      \n {plans.map((plan: IPlan, index: number) => (\n
      \n {plan.Waive_off_on_DP_AMC_chrgs}\n
      \n ))}\n
    • \n
    • \n
      DPC Charges
      \n {plans.map((plan: IPlan, index: number) => (\n
      \n {plan.DPC_charges}\n
      \n ))}\n
    • \n
    • \n
      FNO DPC
      \n {plans.map((plan: IPlan, index: number) => (\n
      \n {plan.FNO_DPC}\n
      \n ))}\n
    • \n
    • \n
      Structured Products AIF setup fees
      \n {plans.map((plan: IPlan, index: number) => (\n
      \n {plan.structured_products_AIF_setup_fees}\n

      {plan.structured_products_AIF_setup_fees && plan.structured_products_AIF_setup_fees !== \"NIL\" ? \"discount\" : \"\"}

      \n
      \n ))}\n
    • \n\n
    • \n
      \n Total Benefits\n {!Assumptions_show_hide && (\n \n )}\n
      \n\n {plans.map((plan: IPlan, index: number) => (\n
      \n \n {toINR(plan.total_benefits)}\n
      \n ))}\n
    • \n
    • \n
        \n
      • \n
        Delivery Volume Rs
        \n\n {plans.map((plan: IPlan, index: number) => (\n
        \n \n {plan.delivery_volume_rs}\n
        \n ))}\n
      • \n\n
      • \n
        Minimum Current MF Investment Amount
        \n\n {plans.map((plan: IPlan, index: number) => (\n
        \n \n {toINR(plan.min_cur_mf_inv)}\n
        \n ))}\n
      • \n
      • \n
        Monthly SIP Amount
        \n\n {plans.map((plan: IPlan, index: number) => (\n
        \n \n {toINR(plan.monthly_sip_amount)}\n
        \n ))}\n
      • \n
      • \n
        Average Debit in Margin Trading
        \n\n {plans.map((plan: IPlan, index: number) => (\n
        \n {plan.avg_debit_margin_trading ? (\n <>\n \n {toINR(plan.avg_debit_margin_trading)}\n \n ) : (\n \"-\"\n )}\n
        \n ))}\n
      • \n
      • \n
        \n Average FNO Margin requirement (FNO positions against pledged stocks)\n {Assumptions_show_hide && (\n \n )}\n
        \n\n {plans.map((plan: IPlan, index: number) => (\n
        \n {plan.avg_fno_margin ? (\n <>\n \n {toINR(plan.avg_fno_margin)}\n \n ) : (\n \"-\"\n )}\n
        \n ))}\n
      • \n
      \n
    • \n
    • \n
      Min. Brokerage*
      \n\n {plans.map((plan: IPlan, index: number) => (\n
      \n {plan.min_brokerage}\n
      \n ))}\n
    • \n\n
    \n \n );\n}\n","import {toINR} from \"../../../service/numberFormat\";\nimport * as React from \"react\";\nimport IPlan from \"../IPTypes\";\n\nexport default function PlanOverviewMob(plan: IPlan, showPlanModalFunc?: (val: boolean) => any) {\n return (\n <>\n
    \n
    \n

    {plan.name}

    \n {plan.type && (\n

    \n -\n {plan.type}\n

    \n )}\n\n

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n {toINR(plan.value.split(\"/yr\")[0], 0)}\n\t\t\t\t\t\t\n

    \n {showPlanModalFunc && (\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 * as infinityPlanData from \"../../../../ds/infinityPlan.json\";\nimport PlanOverviewMob from \"./PlanOverviewMob\";\nimport * as React from \"react\";\nimport IPlan from \"../IPTypes\";\nimport {IPContext} from \"../../infinityPlan\";\n\nexport default function PlansPricingMob() {\n const {plans,setShowAllPlan,setSelectedPlan} = React.useContext(IPContext);\n return (\n
      \n {plans.map((plan: IPlan, index: number) => (\n
    • \n {PlanOverviewMob(plan)}\n
      \n {\n setShowAllPlan(true);\n setSelectedPlan(plan);\n }}\n >\n View All details\n \n
      \n
    • \n ))}\n\n
    \n );\n}\n","import * as React from \"react\";\nimport LoginService from \"../../../service/login/loginService\";\nimport PlanOverviewMob from \"./PlanOverviewMob\";\nimport {toINR} from \"../../../service/numberFormat\";\nimport EdButton from \"../../../generic/edButton\";\nimport {IPContext} from \"../../infinityPlan\";\nimport gtmService from \"../../../service/gtmService\";\n\nexport default function PlanAllDetailsMob() {\n const {selectedPlan,setShowAllPlan,saveLead,setShowModal} = React.useContext(IPContext);\n const [loggedIn] = React.useState(LoginService.isLoggedIn());\n const [infinityPlanFlag] = React.useState(LoginService.getAccData(\"accs\")?.mfInf);\n return (\n <>\n {selectedPlan && (\n <>\n
      \n
    • \n {PlanOverviewMob(selectedPlan, setShowAllPlan)}\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 {!infinityPlanFlag && (\n
    • \n
      \n
      \n \n\n
      \n \n {toINR(selectedPlan.total_benefits)}\n
      \n\n {/* */}\n
      \n\n {\n gtmService({\n event: \"event Infinity_Subscription_Program\",\n category: \"Infinity Subscription\",\n action: \"Footer_button\",\n labelUrlR: \"I'm Interested\"\n });\n loggedIn ?saveLead() : setShowModal(true);\n }}\n slim\n />\n
      \n
    • \n )}\n
    \n \n )}\n \n );\n}\n\n","import * as React from \"react\";\nimport SubscriptionIcons from \"../../../assets/icons/svgIcons/subscriptionIcons\";\nimport {Idevice} from \"../../types/device\";\nimport DeviceContext from \"../../service/indentifyDevice\";\n\nconst handleDevice: Idevice = DeviceContext();\nexport default function IPServiceList(): React.ReactElement {\n return (\n
      \n
    • \n \n \n \n

      RM support & tailor made plans

      \n
    • \n
    • \n \n \n \n

      Zero commission funds with Direct MF

      \n
    • \n\n
    • \n \n \n \n

      Free call & trade

      \n
    • \n\n
    • \n \n \n \n

      Extensive & in-depth Research

      \n
    • \n\n
    • \n \n \n \n\n

      Exclusive webinars with {handleDevice.isMobile ? \"\" : \"industry\"} experts

      \n
    • \n
    • \n \n \n \n

      Platforms with advanced tools

      \n
    • \n
    \n );\n}\n","export type IFormField = {\n FieldName: string;\n Validation: string;\n Required: boolean;\n Message: {\n empty: string;\n error: string\n };\n FieldType: string;\n Placeholder?:string;\n AllowRegex?: string; //regex to check on input or not\n Key:string;//key for state management - controlling the field\n MaxLength?: number;\n\n}\n\nexport const GuestFormBuilder: Array = [\n {\n FieldName: \"Name\",\n Validation: \"^[a-zA-Z]{2}[a-zA-Z\\\\s]*[a-zA-Z]{1}$\",\n Required: true,\n Message: {\n empty: \"This field is mandatory\",\n error: \"Invalid input\"\n },\n FieldType:\"string\",\n Key:\"Name\",\n AllowRegex: \"^[a-zA-Z ]*$\",\n Placeholder:\"Eg: Ramesh Khanna\",\n MaxLength:50\n },\n {\n FieldName: \"Email\",\n Validation: \"^[-_a-zA-Z0-9]+(\\\\.[_a-zA-Z0-9]+)*@[a-zA-Z0-9-]+(\\\\.[a-zA-Z0-9-]+)*(\\\\.[a-zA-Z]{2,4})$\",\n Required: true,\n Message: {\n empty: \"This field is mandatory\",\n error: \"Invalid input\"\n },\n FieldType:\"email\",\n Key:\"Email\",\n Placeholder:\"Eg: rameshk@gmail.com\",\n MaxLength:50\n\n },\n {\n FieldName: \"Mobile number\",\n Validation: \"^[6789]\\\\d{9}$\",\n Required: true,\n Message: {\n empty: \"This field is mandatory\",\n error: \"Invalid input\"\n },\n FieldType:\"text\",\n Key:\"MobileNumber\",\n AllowRegex: \"^[0-9]*$\",\n Placeholder:\"9988776655\",\n MaxLength: 10\n }\n];\n","// @ts-nocheck\nimport React, {ChangeEvent, FormEvent, useMemo} from \"react\";\nimport {GuestFormBuilder, IFormField} from \"./guestFormBuilder\";\nimport \"../../../assets/scss/components/subscription/guestLeadForm.scss\";\nimport EdButton from \"../../generic/edButton\";\nimport {IPContext} from \"../infinityPlan\";\nimport {getLeadMasterDetails, saveLeadInfo_v1} from \"../../service/postLogin/leadAPIService\";\nimport {useQuery} from \"../../service/urlHelper\";\n\ninterface IGuestFormFields {\n Name: string;\n MobileNumber: string;\n Email: string;\n}\n\nexport const GuestLeadForm: React.FC = () => {\n const [FormFields, setFormFields] = React.useState({Name: \"\", MobileNumber: \"\", Email: \"\"});\n const [IsFormSubmitted, setIsFormSubmitted] = React.useState(false);\n const [IsFormValid, setIsFormValid] = React.useState(true);\n\n const {setShowModal, showModalFunc} = React.useContext(IPContext);\n const query = useQuery();\n const handleChange = (event: ChangeEvent) => {\n const name: string = event.target.name;\n setFormFields({...FormFields, [name as keyof IGuestFormFields]: event.target.value});\n }\n const handleFormSubmit = async (e: FormEvent) => {\n e.preventDefault();\n\n const fields = Object.keys(e.currentTarget);\n let FormValid: boolean = true;\n // console.log(fields);\n setIsFormValid(true);\n if (fields.length) {\n for (let i = 0; i < GuestFormBuilder.length; i++) {\n if (!e.currentTarget[fields[i]].validity.valid) {\n // console.log(e.currentTarget[fields[i]].validity)\n setIsFormValid(false);\n FormValid = false;\n return false;\n }\n }\n }\n if (FormValid) {\n setIsFormSubmitted(true);\n let resp = await getLeadMasterDetails(\"10\");\n if(resp) {\n let req = \n {\n Email: FormFields.Email,\n Name: FormFields.Name,\n Phone: FormFields.MobileNumber,\n //City: \"\",\n ProductId: resp? resp[0].product_code : \"\",\n\t\t\t\tCategoryId: resp? resp[0].category_code : \"\",\n\t\t\t\tSubCategoryId: resp? resp[0].subcategory_code : \"\",\n\t\t\t\tSourceId: resp? resp[0].source_code : \"\",\n\t\t\t\tSubSourceId: resp? resp[0].subsource_code: \"\",\n //elliance: false\n OfferId : 0,\n EntityType : \"\" \n };\n window.history.pushState({}, \"\", window.location.href.split(\"?\")[0]);\n saveLeadInfo_v1((res: any) => {\n if(res) {\n if (res.indexOf(\"Lead created\") >= 0 || res.indexOf(\"Lead Created\") >= 0) {\n setShowModal(false);\n showModalFunc(true);\n setIsFormValid(true);\n setIsFormSubmitted(false);\n setFormFields({Name: \"\", MobileNumber: \"\", Email: \"\"});\n }\n else {\n setShowModal(false);\n showModalFunc(true);\n setIsFormValid(true);\n setIsFormSubmitted(false);\n setFormFields({Name: \"\", MobileNumber: \"\", Email: \"\"});\n }\n }\n }, req);\n }\n }\n }\n\n\n return
    \n {GuestFormBuilder.map((field: IFormField, i: number) => {\n return
    \n \n
    \n {field.Key === \"MobileNumber\" && +91}\n {\n if (e.target.value && field.AllowRegex && !(new RegExp(field.AllowRegex).test(e.target.value))) {\n return;\n } else {\n handleChange(e);\n }\n }}\n id={field.Key as keyof IGuestFormFields}\n name={field.Key as keyof IGuestFormFields}/>\n
    \n {!IsFormValid &&\n \n }\n
    \n })}\n {/*CTA - form buttons*/}\n
    \n
    \n \n
    \n
    \n setShowModal(false)}/>\n
    \n
    \n\n
    \n}\nexport default GuestLeadForm;\n","// @ts-nocheck\nimport * as React from \"react\";\nimport SubscriptionIcons from \"../../assets/icons/svgIcons/subscriptionIcons\";\nimport DeviceContext from \"../service/indentifyDevice\";\nimport { Idevice } from \"../types/device\";\nimport EdModal from \"../generic/edModal\";\nimport EdButton from \"../generic/edButton\";\nimport LoginService from \"../service/login/loginService\";\nimport bStrg from \"../service/storageHelper\";\nimport { ICOMPersonalDetails, IPersonalDetails } from \"../types/components/login/userDetails\";\nimport { saveLeadInfo_v1 } from \"../service/postLogin/leadAPIService\";\nimport { getLeadMasterDetails } from \"../service/postLogin/leadAPIService\";\nimport ee from \"../utils/eventEmitter\";\nimport { useQuery } from \"../service/urlHelper\";\nimport hero_image from \"../../assets/images/infinity-plan-hero.png\";\nimport PageFooterDock from \"./infinityPlan/pageFooterDock\";\nimport PlansPricingDesk from \"./infinityPlan/IPDeskComp/PlansPricingDesk\";\nimport PlansPricingMob from \"./infinityPlan/IPMobComp/PlansPricingMob\";\nimport IPlan from \"./infinityPlan/IPTypes\";\nimport PlanAllDetailsMob from \"./infinityPlan/IPMobComp/PlanAllDetailsMob\";\nimport IPServiceList from \"./infinityPlan/IPServiceList\";\nimport * as infinityPlanData from \"../../ds/infinityPlan.json\";\nimport GuestLeadForm from \"./infinityPlan/guestLeadForm\";\nimport EdelLogo from \"../../assets/icons/svgIcons/logo\";\nimport gtmService from \"../service/gtmService\";\n\nconst handleDevice: Idevice = DeviceContext();\n\nif (handleDevice.isDesktop) {\n\trequire(\"../../assets/scss/components/subscription/infinityPlan.scss\");\n} else if (handleDevice.isMobile) {\n\trequire(\"../../assets/scss/components/subscription/infinityPlanMob.scss\");\n}\n\nexport interface IInfinityPlanProps {}\n\n//services offered in infinity plan subscription\n\nfunction thank_you(): React.ReactElement {\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t

    Thank you!

    \n\t\t\t\t\t\t

    We’ll be in touch with you shortly

    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\n\t);\n}\nfunction lead_failure(): React.ReactElement {\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t

    Lead could not be created!

    \n\t\t\t\t\t\t

    Email/mobile already available against existing client

    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\n\t);\n}\n\nfunction subscribe_dialog(saveLeadCallback: () => void, showModalFunc: (val: boolean) => any): React.ReactElement {\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tgtmService({\n\t\t\t\t\t\t\t\tevent: \"event Quick_Order\",\n\t\t\t\t\t\t\t\tcategory: \"Direct MF\",\n\t\t\t\t\t\t\t\taction: \"Pop Up\",\n\t\t\t\t\t\t\t\tlabelUrlR: \"close\"\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tshowModalFunc(false);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t

    Subscribe to INFINITY to invest in Direct Mutual Funds

    \n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\tExclusive benefits on brokerage and other charges of upto 8 Lakh\n\t\t\t\t\t\t

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tgtmService({\n\t\t\t\t\t\t\t\t\t\tevent: \"event Quick_Order\",\n\t\t\t\t\t\t\t\t\t\tcategory: \"Direct MF\",\n\t\t\t\t\t\t\t\t\t\taction: \"Pop Up\",\n\t\t\t\t\t\t\t\t\t\tlabelUrlR: \"Know more\"\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tshowModalFunc(false);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tclassName=\"mg-t10 closeModal\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tKnow more\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tgtmService({\n\t\t\t\t\t\t\t\t\tevent: \"event Quick_Order\",\n\t\t\t\t\t\t\t\t\tcategory: \"Direct MF\",\n\t\t\t\t\t\t\t\t\taction: \"Pop Up\",\n\t\t\t\t\t\t\t\t\tlabelUrlR: \"I'm Interested\"\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tsaveLeadCallback();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\n\t);\n}\n\nfunction GuestFormDialog(): React.ReactElement {\n\tconst { setShowModal } = React.useContext(IPContext);\n\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{DeviceContext().isMobile && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tgtmService({\n\t\t\t\t\t\t\t\t\t\tevent: \"event Quick_Order\",\n\t\t\t\t\t\t\t\t\t\tcategory: \"Direct MF\",\n\t\t\t\t\t\t\t\t\t\taction: \"Pop Up\",\n\t\t\t\t\t\t\t\t\t\tlabelUrlR: \"close\"\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tsetShowModal(false);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    Please provide your details

    \n\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\n\t);\n}\n\ntype IInfinityPlanContext = {\n\tdockToBtm: boolean;\n\tplans: Array;\n\tselectedPlan: IPlan | null;\n\tsetShowAllPlan: (val: boolean) => any;\n\tsetSelectedPlan: (val: IPlan) => any;\n\tsaveLead: (details?: IPersonalDetails & ICOMPersonalDetails) => any;\n\tsetShowModal: (val: boolean) => any;\n\tshowModalFunc: (res: any) => any;\n\tshowLeadFailureModal: (res: any) => any;\n};\nexport const IPContext = React.createContext({\n\tdockToBtm: true,\n\tplans: [],\n\tselectedPlan: null,\n\tsetShowAllPlan(val) {},\n\tsetSelectedPlan(val) {},\n\tsaveLead() {},\n\tsetShowModal() {},\n\tshowModalFunc() {},\n\tshowLeadFailureModal() {}\n});\n\nexport function InfinityPlan() {\n\t//flag to show and hide the subscribe modal\n\tconst [showModal, setShowModal] = React.useState(false);\n\t//flag to show and hide the thank you modal\n\tconst [showTQModal, setShowTQModal] = React.useState(false);\n\t//flag to show and hide the lead failure modal\n\tconst [showLFModal, setShowLFModal] = React.useState(false);\n\t//used to fix the plan table header on scroll\n\tconst [isFixed, setIsFixed] = React.useState(false);\n\t//bottom docker control state\n\tconst [dockToBtm, setDockToBtm] = React.useState(true);\n\n\t//use to show all plans in mobile\n\tconst [showAllPlan, setShowAllPlan] = React.useState(false);\n\n\tconst [selectedPlan, setSelectedPlan] = React.useState(null);\n\n\tconst query = useQuery();\n\tconst subscribe = query.get(\"subscribe\");\n\tconst source = query.get(\"source\");\n\n\tasync function saveLead(details?: IPersonalDetails & ICOMPersonalDetails) {\n\t\t//contains user profile details such as name, email id, phone number etc.,\n\t\tlet resp = await getLeadMasterDetails(\"10\");\n\t\tlet pDetails: IPersonalDetails & ICOMPersonalDetails = bStrg(\"PersonalDetails\") || details;\n\t\tif (pDetails) {\n\t\t\tconst req = \n\t\t\t{\n\t\t\t\temail: pDetails.emailAddressField || pDetails.EMAIL,\n\t\t\t\tname: pDetails.nameField || pDetails.NAME,\n\t\t\t\tphone: pDetails.mobileNumberField || pDetails.MOBILENO,\n\t\t\t\tproductId: resp? resp[0].product_code : \"\",\n\t\t\t\tcategoryId: resp? resp[0].category_code : \"\",\n\t\t\t\tsubCategoryId: resp? resp[0].subcategory_code : \"\",\n\t\t\t\tsourceId: resp? resp[0].source_code : \"\",\n\t\t\t\tsubSourceId: resp? resp[0].subsource_code: \"\",\n\t\t\t\telliance: false\n\t\t\t};\n\t\t\twindow.history.pushState({}, \"\", window.location.href.split(\"?\")[0]);\n\n\t\t\treq && saveLeadInfo_v1(saveLeadCallback, req);\n\t\t}\n\t}\n\n\tfunction saveLeadCallback(res: any) {\n\t\tif (res.indexOf(\"Lead Created\") >= 0 || res.indexOf(\"Lead created\") >= 0) {\n\t\t\tsetShowModal(false); //hide subscribe window\n\t\t\tshowModalFunc(true); //show thank you window\n\t\t} else {\n\t\t\tsetShowModal(false); //hide subscribe window\n\t\t\tshowLeadFailureModal(true); //show lead failure modal\n\t\t}\n\t}\n\n\tconst showModalFunc = (val: boolean) => {\n\t\tsetShowTQModal(val);\n\t\tconst isShowAllPlanActive: boolean = showAllPlan;\n\n\t\tisShowAllPlanActive && setShowAllPlan(false);\n\t\tif (val) {\n\t\t\t//hide the popup\n\t\t\tsetTimeout(() => {\n\t\t\t\tsetShowTQModal(false);\n\t\t\t\tisShowAllPlanActive && setShowAllPlan(true);\n\t\t\t}, 5000);\n\t\t}\n\t};\n\tconst showLeadFailureModal = (val: boolean) => {\n\t\tsetShowLFModal(val);\n\t\tconst isShowAllPlanActive: boolean = showAllPlan;\n\n\t\tisShowAllPlanActive && setShowAllPlan(false);\n\t\tif (val) {\n\t\t\t//hide the popup\n\t\t\tsetTimeout(() => {\n\t\t\t\tsetShowLFModal(false);\n\t\t\t\tisShowAllPlanActive && setShowAllPlan(true);\n\t\t\t}, 5000);\n\t\t}\n\t};\n\n\t//on scroll rearrange the menu items in header\n\tconst handleHeader = () => {\n\t\t//hide/show the top layer of header if vertical scroll depth > 50px\n\t\tconst ele: HTMLElement | null = document.getElementById(\"infinityPlans\"),\n\t\t\tpageEle: HTMLElement | null = document.getElementById(\"infinityPlanPage\"),\n\t\t\tfooterEle: HTMLElement | null = document.getElementById(\"plans_n_pricing_ftr\");\n\n\t\t// stick to page on page scroll ends and reachs out footer\n\t\tfooterEle && pageEle && setDockToBtm(window.scrollY + window.innerHeight - 100 >= pageEle.offsetHeight ? false : true);\n\n\t\tele && setIsFixed((document.documentElement.scrollTop || document.body.scrollTop) > ele.offsetTop ? true : false);\n\t};\n\n\tReact.useEffect(() => {\n\t\t!handleDevice.isMobile && window.addEventListener(\"scroll\", handleHeader);\n\t\tee.on(\"fetchProfile\", (res) => {\n\t\t\t//console.log(res);\n\t\t\tsubsribeState();\n\t\t});\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"scroll\", handleHeader);\n\t\t};\n\t}, []);\n\tconst subsribeState = () => {\n\t\t//if not subscirbed and choosing to subscribe and if logged in\n\n\t\tconst isLoggedIn = LoginService.isLoggedIn();\n\t\t//flag indentifies whether user subscribed for the plan or not\n\t\tconst infinityPlanFlag = LoginService.getAccData(\"accs\")?.mfInf;\n\t\tif (!infinityPlanFlag && subscribe && isLoggedIn) {\n\t\t\tif (!source) {\n\t\t\t\t//when user clicked directly on I'm interested button in the footer of the page\n\t\t\t\tsaveLead();\n\t\t\t} else if (source === \"EMT\" || source === \"TX3\") {\n\t\t\t\t//when user redirected/loaded this page from any other platform, show the subscribe dialog\n\t\t\t\tsetShowModal(true);\n\t\t\t}\n\t\t} else {\n\t\t\twindow.history.pushState({}, \"\", window.location.href.split(\"?\")[0]);\n\t\t}\n\t};\n\tReact.useEffect(() => {\n\t\tsubsribeState();\n\t}, [subscribe]);\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t

    INFINITY SUBSCRIPTION FEES PROGRAM

    \n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\tInfinite Offering, endlessly rewarding experience\n\t\t\t\t\t\t

    \n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\tThis first of its kind plan from Nuvama offers a complete wealth ecosystem which enables traders and investors like you to\n\t\t\t\t\t\t\taccess an infinite array of services, benefits and privileges which deliver an awesome trading and investment experience. The\n\t\t\t\t\t\t\toffering is infinite. The experience is endlessly rewarding.\n\t\t\t\t\t\t

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t\t{/* services offered in infinity plan subscription */}\n\t\t\t\t
    {IPServiceList()}
    \n\n\t\t\t\t{/* Plans & pricing */}\n\t\t\t\t
    \n\t\t\t\t\t

    Subscription Program & Pricing

    \n\n\t\t\t\t\t{!handleDevice.isMobile && (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\t\t\t\t\t{handleDevice.isMobile && (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\t\t\t\t
    \n\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t* Minimum brokerage per order of Rs 25 (subject to maximum of 2.5% or maximum slab as per the regulatory guidelines will be\n\t\t\t\t\t\t\tlevied\n\t\t\t\t\t\t

    \n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t** For Direct MF, Savings as a difference between expense ratio between direct MF and regular MF scheme is assumed at 1.5%.\n\t\t\t\t\t\t\t
    MF growth assumed at 12% CAGR. Benefit over 15 years is annualized\n\t\t\t\t\t\t\t{handleDevice.isMobile &&
    }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tTerms and conditions apply\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t

    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\n\t\t\t\t
    \n\t\t\t\t\t{/*{PageFooterDock(saveLead, dockToBtm)}*/}\n\t\t\t\t\t\n\t\t\t\t
    \n\n\t\t\t\t}\n\t\t\t\t\tshow={showAllPlan}\n\t\t\t\t\tclose={() => {\n\t\t\t\t\t\tsetShowAllPlan(false);\n\t\t\t\t\t}}\n\t\t\t\t\tmodalClsNm=\"view_all_plan\"\n\t\t\t\t/>\n\t\t\t\t {\n\t\t\t\t\t\tsetShowTQModal(false);\n\t\t\t\t\t}}\n\t\t\t\t\tmodalClsNm=\"infinity_thank_you\"\n\t\t\t\t/>\n\t\t\t\t {\n\t\t\t\t\t\tsetShowTQModal(false);\n\t\t\t\t\t}}\n\t\t\t\t\tmodalClsNm=\"infinity_thank_you\"\n\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\t\tshow={showModal && !LoginService.isLoggedIn()}\n\t\t\t\t\tclose={() => {\n\t\t\t\t\t\tsetShowModal(false);\n\t\t\t\t\t}}\n\t\t\t\t\tmodalClsNm=\"infinity_guest_form\"\n\t\t\t\t/>\n\t\t\t\t {\n\t\t\t\t\t\tsetShowModal(false);\n\t\t\t\t\t}}\n\t\t\t\t\tmodalClsNm=\"infinity_subscribe\"\n\t\t\t\t/>\n\t\t\t\n\t\t
    \n\t);\n}\n","export default __webpack_public_path__ + \"static/media/genericInsuranceCover.0dfc53ca.png\";","export default __webpack_public_path__ + \"static/media/genericInsurance2.0a7fd2bb.png\";","export default __webpack_public_path__ + \"static/media/Bajaj1.3b16aeb7.jpg\";","export default __webpack_public_path__ + \"static/media/Bajaj2.e279a309.jpg\";","export default __webpack_public_path__ + \"static/media/Bajaj3.90262b0c.jpg\";","export default __webpack_public_path__ + \"static/media/Bajaj4.b263cc53.jpg\";","export default __webpack_public_path__ + \"static/media/Bajaj5.a8a9d3d2.jpg\";","import React, { ReactElement } from \"react\";\n\nexport interface IGenericInsuranceIconsProps {\n\ticon:\n\t\t| \"home\"\n\t\t| \"cyber\"\n\t\t| \"fire\"\n\t\t| \"crop\"\n\t\t| \"marine\"\n\t\t| \"commercial\"\n\t\t| \"fp\"\n\t\t| \"tax\"\n\t\t| \"goals\"\n\t\t| \"accumulate\"\n\t\t| \"loan\"\n\t\t| \"peace\"\n\t\t| \"coverage\"\n\t\t| \"claims\"\n\t\t| \"premiums\";\n\tstyle?: React.CSSProperties;\n}\n\nexport default function GenericInsuranceIcons(props: IGenericInsuranceIconsProps): ReactElement {\n\tswitch (props.icon) {\n\t\tcase \"home\":\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\tcase \"cyber\":\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\tcase \"fire\":\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\tcase \"crop\":\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\tcase \"marine\":\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\tcase \"commercial\":\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\tcase \"fp\":\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\tcase \"tax\":\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\tcase \"goals\":\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\tcase \"accumulate\":\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\tcase \"loan\":\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\tcase \"peace\":\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\tcase \"coverage\":\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\tcase \"claims\":\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\tcase \"premiums\":\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\tdefault:\n\t\t\treturn <>No Icon;\n\t}\n}\n","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/logo3.233af925.png\";","import { IGICard, IGIDef, IGIPartner } from \"./genericInsuranceInterface\";\nimport logo1 from \"../../../assets/images/leadPages/logo1.png\";\nimport logo2 from \"../../../assets/images/leadPages/logo2.png\";\nimport logo3 from \"../../../assets/images/leadPages/logo3.png\";\nimport logo4 from \"../../../assets/images/leadPages/logo4.png\";\n\nexport const types: IGICard[] = [\n\t{ icon: \"home\", title: \"Home\" },\n\t{ icon: \"cyber\", title: \"Cyber\" },\n\t{ icon: \"fire\", title: \"Fire\" },\n\t{ icon: \"crop\", title: \"Crop\" },\n\t{ icon: \"marine\", title: \"Marine\" },\n\t{ icon: \"commercial\", title: \"Commercial\" }\n];\n\nexport const insuranceDef: IGIDef[] = [\n\t{\n\t\ttitle: \"Life Insurance\",\n\t\tbody:\n\t\t\t\"A deal between the policyholder and the insurance company where a pre-defined amount is paid to the policyholder or his/her nominee after a specific period or upon death as the case may be. For this, the policyholder needs to pay premium to the insurance company.\"\n\t},\n\t{\n\t\ttitle: \"Health insurance\",\n\t\tbody:\n\t\t\t\"Financial backup in case of a health contingency. Apart from covering hospitalisation costs, it also covers cost of medicines and doctors’ consultation fees, among others. \"\n\t},\n\t{\n\t\ttitle: \"Motor insurance\",\n\t\tbody: \"Financial protection to the owner of the vehicle against losses and damages of one’s own vehicle or of any third-party.\"\n\t},\n\t{\n\t\ttitle: \"Travel insurance\",\n\t\tbody:\n\t\t\t\"Financially compensates you for any exigencies arising during your travel such as flight cancellation, loss of baggage, theft of important documents, etc.\"\n\t}\n];\n\nexport const benefits: IGICard[] = [\n\t{\n\t\ticon: \"fp\",\n\t\ttitle: \"Financial Protection\",\n\t\tbody:\n\t\t\t\"Gives you and your family financial protection in the event of untoward incidents. It compensates for the financial losses incurred due to death of the family’s chief breadwinner or damages suffered to your assets (vehicle, home, etc).\"\n\t},\n\t{\n\t\ticon: \"tax\",\n\t\ttitle: \"Tax Benefits\",\n\t\tbody:\n\t\t\t\"Insurance premiums paid towards insurance qualify for tax exemption under different sections of the Income Tax Act, 1961, under the old tax regime. While life insurance premiums are eligible for deduction under section 80C, health insurance premiums are tax exempt under section 80D.\"\n\t},\n\t{\n\t\ticon: \"goals\",\n\t\ttitle: \"Keeps Essential Goals on Track\",\n\t\tbody:\n\t\t\t\"Insurance helps keep essential goals on track and ensures they don’t go haywire in case of mishaps and untoward incidents. It also ensures your family maintains the same standard of living even in your absence.\"\n\t},\n\t{\n\t\ticon: \"accumulate\",\n\t\ttitle: \"Accumulate Wealth\",\n\t\tbody:\n\t\t\t\"Insurance policies such as endowment plans and unit-linked insurance plans help save and invest to accumulate a corpus for various critical life goals such as children’s higher education, their marriage and your retirement.\"\n\t},\n\t{\n\t\ticon: \"loan\",\n\t\ttitle: \"Avail Loan\",\n\t\tbody:\n\t\t\t\"Insurance plans that have a surrender value can be used as collateral for availing loans. You can pledge an endowment plan or money back policy to avail loan to make up for the shortfall in funds, if required.\"\n\t},\n\t{\n\t\ticon: \"peace\",\n\t\ttitle: \"Peace of Mind\",\n\t\tbody:\n\t\t\t\"Insurance gives you peace of mind, as you know you will be adequately compensated for any loss —life or property — at any stage of life.\"\n\t}\n];\n\nexport const cards: IGICard[] = [\n\t{\n\t\ticon: \"coverage\",\n\t\ttitle: \"Coverage Required\",\n\t\tbody:\n\t\t\t\"As a thumb rule, the coverage amount in life insurance must be 10 to 15 times of your annual income. Factor in your current expenses, loans and inflation, among others.\"\n\t},\n\t{\n\t\ticon: \"claims\",\n\t\ttitle: \"Claims Settlement Ratio\",\n\t\tbody:\n\t\t\t\"This ratio represents the number of claims settled by the insurer against claims received. Expressed in percentage, the higher the ratio, the better it is.\"\n\t},\n\t{\n\t\ticon: \"premiums\",\n\t\ttitle: \"Applicable Premiums\",\n\t\tbody:\n\t\t\t\"Know the premiums you need to pay towards your insurance policy. Policies with an investment component command a higher premium than those without it.\"\n\t}\n];\n\nexport const partners: IGIPartner[] = [\n\t{ img: logo1, title: \"Edelweiss General
    Insurance Company Ltd\", tag: \"General Insurance\" },\n\t{ img: logo2, title: \"Star Health & Allied
    Insurance Co Ltd\", tag: \"Health Insurance\" },\n\t{ img: logo3, title: \"Edelweiss Life
    Insurance Company Ltd\", tag: \"Life Insurance\" },\n\t{ img: logo4, title: \"HDFC Life Insurance
    Company Ltd\", tag: \"Life Insurance\" }\n];\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","import * as React from \"react\";\nimport styles from \"../../../assets/scss/components/leadPages/leadForm/leadForm.module.scss\";\nimport EdButton from \"../../generic/edButton\";\nimport { emailRegex, integerExp, phoneNo, alphabetExp } from \"../../utils/regex\";\nimport { IListObj } from \"../../types/genericTypes\";\nimport { apiService } from \"../../service/apiService\";\nimport urlConfig from \"../../../config/domain\";\nimport { isLoggedIn } from \"../../service/login/loginService\";\nimport bStrg from \"./../../service/storageHelper\";\nimport gtmService from \"../../service/gtmService\";\nimport { getLeadMasterDetails } from \"../../service/postLogin/leadAPIService\";\n\ntype TFieldNames = \"name\" | \"email\" | \"phone\" | \"city\" | \"type\";\n\ntype TFieldValues = {\n\t[x in TFieldNames]: string;\n};\n\ntype TFieldValidity = {\n\t[x in TFieldNames]: Partial & { [x: string]: boolean | undefined };\n};\n\ntype TShowError = {\n\t[x in TFieldNames]: boolean;\n};\n\nexport type TSubmitState = \"initiated\" | \"submitted\" | \"success\" | \"error\";\n\nexport interface LeadFormProps {\n\tcolor?: \"grey\" | \"white\"; // colour of fields\n\tclassName?: string; // className on form\n\tsubmitStateChange: (state: TSubmitState) => void;\n\tprefill?: boolean;\n\tgtmAction: \"Request_a_call_Banner\" | \"Request_a_call_Floating_Banner\" | \"Request_a_call_Bottom_Banner\";\n}\n\nlet resetFormSubscription: NodeJS.Timeout | undefined = undefined;\n\nconst LeadForm: React.FC = (props) => {\n\tlet color = props.color || \"grey\";\n\tconst radioList: IListObj[] = [\n\t\t{ display: \"Life\", value: \"life\" },\n\t\t{ display: \"Health\", value: \"health\" },\n\t\t{ display: \"Motor\", value: \"motor\" }\n\t];\n\n\tconst [values, setValues] = React.useState({ name: \"\", email: \"\", phone: \"\", city: \"\", type: \"life\" });\n\tconst [error, setError] = React.useState({\n\t\tname: {},\n\t\temail: {},\n\t\tphone: {},\n\t\tcity: {},\n\t\ttype: { valid: true }\n\t});\n\tconst [showError, setShowError] = React.useState({\n\t\tname: false,\n\t\temail: false,\n\t\tphone: false,\n\t\tcity: false,\n\t\ttype: false\n\t});\n\tconst [submitState, setSubmitState] = React.useState(\"initiated\");\n\n\tReact.useEffect(() => {\n\t\tif (submitState !== \"initiated\") props.submitStateChange(submitState);\n\t}, [submitState]);\n\n\t// if the user is logged in then fill details automatically\n\tReact.useEffect(() => {\n\t\tsetInitialValues();\n\n\t\treturn () => {\n\t\t\tresetFormSubscription && clearTimeout(resetFormSubscription);\n\t\t};\n\t}, []);\n\n\tfunction setInitialValues() {\n\t\tconst isLgdIn = isLoggedIn();\n\t\tif (isLgdIn && props.prefill && bStrg(\"PersonalDetails\")) {\n\t\t\tsetValues({\n\t\t\t\tname: bStrg(\"PersonalDetails\").nameField,\n\t\t\t\temail: bStrg(\"PersonalDetails\").emailAddressField,\n\t\t\t\tphone: bStrg(\"PersonalDetails\").mobileNumberField,\n\t\t\t\tcity: \"\",\n\t\t\t\ttype: \"life\"\n\t\t\t});\n\t\t\tsetError({ name: { valid: true }, email: { valid: true }, phone: { valid: true }, city: {}, type: { valid: true } });\n\t\t} else {\n\t\t\tsetValues({ name: \"\", email: \"\", phone: \"\", city: \"\", type: \"life\" });\n\t\t\tsetError({ name: {}, email: {}, phone: {}, city: {}, type: { valid: true } });\n\t\t}\n\t\tsetShowError({ name: false, email: false, phone: false, city: false, type: false });\n\t}\n\n\tfunction fieldChange(e: React.ChangeEvent) {\n\t\tlet { name, value, validity } = e.target;\n\n\t\t// stop showing error if it is being shown\n\t\tif (showError[name as TFieldNames]) {\n\t\t\tsetShowError({ ...showError, [name]: false });\n\t\t}\n\n\t\tif (name === \"email\" && !emailRegex.test(value)) {\n\t\t\te.target.setCustomValidity(\"pattern\");\n\t\t\t(validity as any).pattern = true;\n\t\t} else if ((name === \"name\" || name === \"city\") && !alphabetExp.test(value)) {\n\t\t\te.target.setCustomValidity(\"pattern\");\n\t\t\t(validity as any).pattern = true;\n\t\t} else {\n\t\t\te.target.setCustomValidity(\"\");\n\t\t\t(validity as any).pattern = false;\n\t\t}\n\n\t\tsetValues({ ...values, [name]: value });\n\t\tsetError({ ...error, [name]: validity });\n\t}\n\n\tfunction phoneChange(e: React.ChangeEvent) {\n\t\tlet { name, value, validity } = e.target;\n\n\t\t// stop showing error if it is being shown\n\t\tif (showError[name as TFieldNames]) {\n\t\t\tsetShowError({ ...showError, [name]: false });\n\t\t}\n\n\t\tif (!integerExp.test(value)) {\n\t\t\t// only allow integers in mobile\n\t\t\tvalue = values.phone;\n\t\t}\n\n\t\tsetValues({ ...values, [name]: value });\n\n\t\tif (value && !phoneNo.test(value)) {\n\t\t\te.target.setCustomValidity(\"phoneNo\");\n\t\t\t(validity as any).phoneNo = true;\n\t\t} else if (value && +value < 1000000000) {\n\t\t\te.target.setCustomValidity(\"minValue\");\n\t\t\t(validity as any).minValue = true;\n\t\t} else {\n\t\t\te.target.setCustomValidity(\"\");\n\t\t\t(validity as any).phoneNo = false;\n\t\t\t(validity as any).minValue = false;\n\t\t}\n\n\t\tsetError({ ...error, [name]: validity });\n\t}\n\n\tasync function submitLead(e: React.FormEvent) {\n\t\te.preventDefault();\n\t\tconst temp: any = {};\n\t\tsetSubmitState(\"submitted\");\n\t\t\n\t\tif (values.type === \"life\") {\n\t\t\tlet resp = await getLeadMasterDetails(\"15\");\n\t\t\tif (resp) {\n\t\t\t //temp.ProductNames = \"Life Insurance\";\n\t\t\t temp.ProductId = resp && resp.length > 0 ? resp[0].product_code : \"\";\n\t\t\t temp.CategoryId = resp && resp.length > 0 ? resp[0].category_code : \"\";\n\t\t\t temp.SubCategoryId = resp && resp.length > 0 ? resp[0].subcategory_code : \"\";\n\t\t\t temp.SourceId = resp && resp.length > 0 ? resp[0].source_code : \"\";\n\t\t\t temp.SubSourceId = resp && resp.length > 0 ? resp[0].subsource_code : \"\"\n\t\t\t gtmService({ event: \"event footer\", category: \"All Insurance | Form_Submit\", action: props.gtmAction, label: \"Life\" });\n\t\t\t const body = {\n\t\t\t\tName: values.name,\n\t\t\t\tEmail: values.email,\n\t\t\t\tPhone: values.phone,\n\t\t\t\tCity: values.city,\n\t\t\t\t...temp,\n\t\t\t\tOfferId : 0,\n EntityType : \"\" \n\t\t\t};\n\t\n\t\t\tapiService({ url: urlConfig.oyo + \"saveleadinfo_V1\", method: \"POST\", body }, submitRes);\n\t\n\t\t\t// reset form after 3 sec\n\t\t\tresetFormSubscription = setTimeout(() => {\n\t\t\t\tif (resetFormSubscription) {\n\t\t\t\t\tsetSubmitState(\"initiated\");\n\t\t\t\t\tsetInitialValues();\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t\t}\n\t\t} else if (values.type === \"health\") {\n\t\t\tlet resp = await getLeadMasterDetails(\"16\");\n\t\t\tif (resp) {\n\t\t\t //temp.ProductNames = \"General Insurance\";\n\t\t\t temp.ProductId = resp && resp.length > 0 ? resp[0].product_code : \"\";\n\t\t\t temp.CategoryId = resp && resp.length > 0 ? resp[0].category_code : \"\";\n\t\t\t temp.SubCategoryId = resp && resp.length > 0 ? resp[0].subcategory_code : \"\";\n\t\t\t temp.SourceId = resp && resp.length > 0 ? resp[0].source_code : \"\";\n\t\t\t temp.SubSourceId = resp && resp.length > 0 ? resp[0].subsource_code : \"\"\n\t\t\t gtmService({ event: \"event footer\", category: \"All Insurance | Form_Submit\", action: props.gtmAction, label: \"Health\" });\n\n\t\t\t const body = {\n\t\t\t\tName: values.name,\n\t\t\t\tEmail: values.email,\n\t\t\t\tPhone: values.phone,\n\t\t\t\tCity: values.city,\n\t\t\t\t...temp,\n\t\t\t\tOfferId : 0,\n EntityType : \"\" \n\t\t\t};\n\t\n\t\t\tapiService({ url: urlConfig.oyo + \"saveleadinfo_V1\", method: \"POST\", body }, submitRes);\n\t\n\t\t\t// reset form after 3 sec\n\t\t\tresetFormSubscription = setTimeout(() => {\n\t\t\t\tif (resetFormSubscription) {\n\t\t\t\t\tsetSubmitState(\"initiated\");\n\t\t\t\t\tsetInitialValues();\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t\t}\n\t\t} else if (values.type === \"motor\") {\n\t\t\tlet resp = await getLeadMasterDetails(\"17\");\n\t\t\tif (resp) {\n\t\t\t //temp.ProductNames = \"General Insurance\";\n\t\t\t temp.ProductId = resp && resp.length > 0 ? resp[0].product_code : \"\";\n\t\t\t temp.CategoryId = resp && resp.length > 0 ? resp[0].category_code : \"\";\n\t\t\t temp.SubCategoryId = resp && resp.length > 0 ? resp[0].subcategory_code : \"\";\n\t\t\t temp.SourceId = resp && resp.length > 0 ? resp[0].source_code : \"\";\n\t\t\t temp.SubSourceId = resp && resp.length > 0 ? resp[0].subsource_code : \"\"\n\t\t\t gtmService({ event: \"event footer\", category: \"All Insurance | Form_Submit\", action: props.gtmAction, label: \"Motor\" });\n\t\t\t const body = {\n\t\t\t\tName: values.name,\n\t\t\t\tEmail: values.email,\n\t\t\t\tPhone: values.phone,\n\t\t\t\tCity: values.city,\n\t\t\t\t...temp,\n\t\t\t\tOfferId : 0,\n EntityType : \"\" \n\t\t\t};\n\t\n\t\t\tapiService({ url: urlConfig.oyo + \"saveleadinfo_V1\", method: \"POST\", body }, submitRes);\n\t\n\t\t\t// reset form after 3 sec\n\t\t\tresetFormSubscription = setTimeout(() => {\n\t\t\t\tif (resetFormSubscription) {\n\t\t\t\t\tsetSubmitState(\"initiated\");\n\t\t\t\t\tsetInitialValues();\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction submitRes(res: string) {\n\t\tif (res && !res.toLowerCase().includes(\"failure\")) {\n\t\t\tsetSubmitState(\"success\");\n\t\t} else {\n\t\t\tsetSubmitState(\"error\");\n\t\t}\n\t}\n\n\tfunction temp(obj: IListObj) {\n\t\tsetValues({ ...values, type: obj.value as string });\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t setShowError({ ...showError, name: true })}\n\t\t\t\t/>\n\t\t\t\t{showError.name && !error.name.valid && (\n\t\t\t\t\t\n\t\t\t\t\t\t{error.name.valueMissing || error.name.valueMissing === undefined ? \"This field is mandatory\" : \"Invalid input\"}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t setShowError({ ...showError, email: true })}\n\t\t\t\t/>\n\t\t\t\t{showError.email && !error.email.valid && (\n\t\t\t\t\t\n\t\t\t\t\t\t{error.email.valueMissing || error.email.valueMissing === undefined ? \"This field is mandatory\" : \"Invalid input\"}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t+91\n\t\t\t\t\t
    \n\t\t\t\t\t\t setShowError({ ...showError, phone: true })}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{showError.phone && !error.phone.valid && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{error.phone.valueMissing || error.phone.valueMissing === undefined ? \"This field is mandatory\" : \"Invalid input\"}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t setShowError({ ...showError, city: true })}\n\t\t\t\t/>\n\t\t\t\t{showError.city && !error.city.valid && (\n\t\t\t\t\t\n\t\t\t\t\t\t{error.city.valueMissing || error.city.valueMissing === undefined ? \"This field is mandatory\" : \"Invalid input\"}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
    \n\n\t\t\t\n\t\t\t
    \n\t\t\t\t{radioList.map((obj) => (\n\t\t\t\t\t temp(obj)}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t
    \n\n\t\t\t !error[err as TFieldNames].valid) || submitState !== \"initiated\"}\n\t\t\t/>\n\t\t\n\t);\n};\n\ninterface LeadFormRadioProps {\n\tvalue: string;\n\tdisplay: string;\n\tname: string;\n\tid: string;\n\tchecked: boolean;\n\tonChange: () => void;\n}\n\nconst LeadFormRadio: React.FC = ({ display, ...props }) => {\n\treturn (\n\t\t\n\t);\n};\n\nexport default LeadForm;\n","import * as React from \"react\";\n\ninterface IThankYouSvgProps {\n\twidth: string;\n\theight: string;\n}\n\nexport function ThankYouSvg(props: IThankYouSvgProps): JSX.Element {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\nexport default ThankYouSvg;\n","import * as React from \"react\";\nimport DeviceContext from \"../../service/indentifyDevice\";\nimport EdelLogo from \"./../../../assets/icons/svgIcons/logo\";\nimport { TSubmitState } from \"./leadForm\";\nimport { ThankYouSvg } from \"./../../../assets/icons/svgIcons/thankYouSvg\";\nimport EdButton from \"../../generic/edButton\";\n\nexport interface LeadModalProps {\n\tonClose: () => void;\n\tstate: TSubmitState | undefined;\n\tretry: () => void;\n}\n\nconst LeadModal: React.FC = ({ onClose, children, state = \"initiated\", retry }) => {\n\tconst [styles, setStyles] = React.useState({} as any);\n\n\tReact.useEffect(() => {\n\t\tif (DeviceContext().isDesktop) {\n\t\t\timport(\"../../../assets/scss/components/leadPages/leadForm/leadModalDsk.module.scss\").then((style) => {\n\t\t\t\tsetStyles(style.default);\n\t\t\t});\n\t\t} else {\n\t\t\timport(\"../../../assets/scss/components/leadPages/leadForm/leadModalMob.module.scss\").then((style) => {\n\t\t\t\tsetStyles(style.default);\n\t\t\t});\n\t\t}\n\t}, []);\n\n\treturn Object.keys(styles).length ? (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{state === \"initiated\" || state === \"submitted\" ? (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{!DeviceContext().isDesktop && }\n\t\t\t\t\t\t\t{!DeviceContext().isDesktop && }\n\t\t\t\t\t\t\t

    We shall get in touch with you & help you invest

    \n\t\t\t\t\t\t\t

    Quick, Fast and simple

    \n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t{DeviceContext().isDesktop && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t) : state === \"success\" ? (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

    Thank you!

    \n\t\t\t\t\t\t\t

    We’ll be in touch with you shortly

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t) : (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t

    There was an error trying to process your request. Please try again.

    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t) : (\n\t\t<>\n\t);\n};\n\nexport default LeadModal;\n","import * as React from \"react\";\nimport EdButton from \"../../generic/edButton\";\nimport DeviceContext from \"../../service/indentifyDevice\";\nimport coverImage from \"../../../assets/images/leadPages/genericInsuranceCover.png\";\nimport firstImage from \"../../../assets/images/leadPages/genericInsurance2.png\";\nimport image2a from \"../../../assets/images/leadPages/Bajaj1.jpg\";\nimport image2b from \"../../../assets/images/leadPages/Bajaj2.jpg\";\nimport image2c from \"../../../assets/images/leadPages/Bajaj3.jpg\";\nimport image2d from \"../../../assets/images/leadPages/Bajaj4.jpg\";\nimport image2e from \"../../../assets/images/leadPages/Bajaj5.jpg\";\n// import SecondImage from \"../../../assets/images/leadPages/HDFCinsurance.png\";\n// import image3a from \"../../../assets/images/leadPages/ETLI1.jpg\";\n// import image3b from \"../../../assets/images/leadPages/ETLI2.jpg\";\n// import image3c from \"../../../assets/images/leadPages/ETLI3.jpg\";\n// import image3d from \"../../../assets/images/leadPages/ETLI4.jpg\";\nimport GenericInsuranceIcons from \"./../../../assets/icons/svgIcons/genericInsuranceIcons\";\nimport { benefits, cards, insuranceDef, partners, types } from \"./genericInsuranceConst\";\nimport LeadForm, { TSubmitState } from \"../leadForm/leadForm\";\nimport LeadModal from \"../leadForm/leadModal\";\nimport gtmService from \"../../service/gtmService\";\nimport OwlCarousel from 'react-owl-carousel';\nimport 'owl.carousel/dist/assets/owl.carousel.css';\nimport 'owl.carousel/dist/assets/owl.theme.default.css';\n\nexport interface GenericInsuranceScreenProps {}\n\nconst GenericInsuranceScreen: React.FC = () => {\n\tconst [styles, setStyles] = React.useState({} as any);\n\tconst [showTopBanner, setShowTopBanner] = React.useState(false);\n\t// since while showing/removing modal, we have to remove/show scroll in body\n\t// that's why this _setShowModal is not to be used.\n\t// use the setShowModal function defined below\n\tconst [showModal, _setShowModal] = React.useState(false);\n\tconst [modalPos, setModalPos] = React.useState<\"Request_a_call_Banner\" | \"Request_a_call_Floating_Banner\">(\"Request_a_call_Banner\");\n\tconst [formSubmitState, setFormSubmitState] = React.useState();\n\tconst divRef = React.useRef(null);\n\n\tReact.useEffect(() => {\n\t\tif (DeviceContext().isDesktop) {\n\t\t\timport(\"../../../assets/scss/components/leadPages/genericInsurance/genericInsuranceDsk.module.scss\").then((style) => {\n\t\t\t\tsetStyles(style.default);\n\t\t\t});\n\t\t} else {\n\t\t\timport(\"../../../assets/scss/components/leadPages/genericInsurance/genericInsuranceMob.module.scss\").then((style) => {\n\t\t\t\tsetStyles(style.default);\n\t\t\t});\n\t\t}\n\t}, []);\n\n\tfunction handleScroll() {\n\t\tif (((divRef.current as unknown) as HTMLDivElement).getBoundingClientRect().bottom < 52) {\n\t\t\tif (!showTopBanner) setShowTopBanner(true);\n\t\t} else {\n\t\t\tsetShowTopBanner(false);\n\t\t}\n\t}\n\n\t// handle scroll event to show the top bar\n\tReact.useEffect(() => {\n\t\twindow.addEventListener(\"scroll\", handleScroll);\n\n\t\t// unsubscribe the scroll event before unmount\n\t\treturn function unsubscribe() {\n\t\t\twindow.removeEventListener(\"scroll\", handleScroll);\n\t\t};\n\t}, []);\n\n\tfunction changeSubmitState(state: TSubmitState) {\n\t\tsetFormSubmitState(state);\n\n\t\tif (state !== \"submitted\") {\n\t\t\tsetShowModal(true);\n\t\t}\n\n\t\tif (state === \"success\") {\n\t\t\tsetTimeout(() => {\n\t\t\t\tsetShowModal(false);\n\t\t\t\tsetFormSubmitState(undefined);\n\t\t\t}, 3000);\n\t\t}\n\t}\n\n\tfunction setShowModal(show: boolean) {\n\t\tconst bodyClassList = document.getElementsByTagName(\"body\")[0].classList;\n\t\tif (show) {\n\t\t\tbodyClassList.add(\"no_scroll\");\n\t\t} else {\n\t\t\tbodyClassList.remove(\"no_scroll\");\n\t\t}\n\t\t_setShowModal(show);\n\t}\n\n\tfunction requestACall(position: \"banner\" | \"floating\") {\n\t\tconst modalPosition: { [x: string]: \"Request_a_call_Banner\" | \"Request_a_call_Floating_Banner\" } = {\n\t\t\tbanner: \"Request_a_call_Banner\",\n\t\t\tfloating: \"Request_a_call_Floating_Banner\"\n\t\t};\n\t\tconst action = { banner: \"Request a call\", floating: \"Request_a_call_Top_banner\" };\n\n\t\tsetShowModal(true);\n\t\tsetModalPos(modalPosition[position]);\n\t\tgtmService({ event: \"event footer\", category: \"All Insurance\", action: action[position], label: \"click\" });\n\t}\n\n\treturn Object.keys(styles).length ? (\n\t\t
    \n\t\t\t{/* Cover */}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t

    Insurance

    \n\t\t\t\t\t\t

    Financial protection amid contingencies

    \n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\tGive your family financial security when you are no longer around or get a financial cushion against loss of any asset by\n\t\t\t\t\t\t\tbuying an Insurance\n\t\t\t\t\t\t

    \n\t\t\t\t\t\t requestACall(\"banner\")} />\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\"Insurance\"\n\t\t\t\t\t
    \n\n\t\t\t\t\t{/* Show this after Request a callback button is scrolled-up out of view */}\n\t\t\t\t\t{showTopBanner && (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\tWish to know about our Insurance products?\n\t\t\t\t\t\t\t requestACall(\"floating\")}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t\t{/* Insurance definition */}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\tInsurance is a contract between you and the insurance company whereby it provides you with financial protection amid\n\t\t\t\t\t\t\tcontingencies in return of an amount paid, known as premium.\n\t\t\t\t\t\t

    \n\t\t\t\t\t\t

    Types of Insurance include:

    \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t{types.map((type) => (\n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{insuranceDef.map((def) => (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t

    {def.title}

    \n\t\t\t\t\t\t\t\t

    {def.body}

    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t))}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\"Benefits\"\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t{/*
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\"Edelweiss_Tokyo_Life\"\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\"Edelweiss_Tokyo_Life\"\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\"Edelweiss_Tokyo_Life\"\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\"Edelweiss_Tokyo_Life\"\n\t\t\t
    */}\n\t\t\t
    \n\n\t\t\t{/* Benefits */}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t{DeviceContext().isDesktop\n\t\t\t\t\t\t\t\t? \"There are several benefits of buying insurance, some them being:\"\n\t\t\t\t\t\t\t\t: \"Benefits of buying insurance\"}\n\t\t\t\t\t\t

    \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t{benefits.map((benefit) => (\n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t

      {benefit.title}

      \n\t\t\t\t\t\t\t\t\t

      {benefit.body}

      \n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\n\t\t\t{/* keep in mind */}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t

    Things to keep in mind

    \n\t\t\t\t\t
      \n\t\t\t\t\t\t{cards.map((card) => (\n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t

      {card.title}

      \n\t\t\t\t\t\t\t\t

      {card.body}

      \n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t))}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\n\t\t\t{/* Partners */}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t

    Our Partners

    \n\t\t\t\t\t
      \n\t\t\t\t\t\t{partners.map((partner, i) => (\n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t{partner.title}\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t

      \n\t\t\t\t\t\t\t\t\t{partner.tag}\n\t\t\t\t\t\t\t\t

      \n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t))}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\n\t\t\t{/* Lead */}\n\t\t\t{DeviceContext().isDesktop && (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    Want to know more about Insurance?

    \n\t\t\t\t\t\t\t

    Lets us give you a call

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t)}\n\n\t\t\t{showModal && (\n\t\t\t\t setShowModal(false)} state={formSubmitState} retry={() => setFormSubmitState(\"initiated\")}>\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t)}\n\t\t
    \n\t) : (\n\t\t<>\n\t);\n};\n\nexport default GenericInsuranceScreen;\n","import * as React from \"react\";\nimport { Route, Switch } from \"react-router-dom\";\nimport StructuredProdScrn from \"../../components/footer/structuredProduct/structuredProdScrn\";\nimport { InfinityPlan } from \"../../components/subscription/infinityPlan\";\nimport GenericInsuranceScreen from \"../../components/leadPages/genericInsurance/genericInsuranceScreen\";\n\nexport interface IFooterRoutingProps {}\n\nconst FooterRouting: React.FC = () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default FooterRouting;\n","import React from \"react\"\nimport * as URLConfig from \"../../config/domain\";\n\ninterface IHome {}\n\nexport const Home = (props: IHome) => {\n\tReact.useEffect(() => {\n\t\t// window.location.replace(URLConfig.config.rootUrl);\n\t\treturn () => {};\n\t}, []);\n\treturn (<>)\n\t\n};\n","import * as React from \"react\";\nimport { useRef } from \"react\";\nimport \"../../assets/scss/common/dropdown.scss\";\ninterface IDropdownState {\n\tlistOpen: boolean;\n\tselectedItem?: any;\n}\nexport interface IDropdownProps {\n\theaderTitle: React.ReactNode;\n\tarrow: boolean;\n\tclass?: string;\n\tlistStyle?: string;\n\tselectItem: boolean;\n\tlistCont?: React.ReactNode;\n\tlistHeader?: string;\n\tonClickTgl?: boolean; //if false dont show dropdown on click event of dropdown toggle\n}\n\nexport function Dropdown(props: IDropdownProps) {\n\tconst [ddState, setddState] = React.useState({\n\t\tlistOpen: false,\n\t\tselectedItem: \"\"\n\t});\n\tconst wrapperRef = useRef(null);\n\n\tconst useOutsideAlerter = (ref: any) => {\n\t\tfunction handleClickOutside(event: Event) {\n\t\t\tif (ref.current && !ref.current.contains(event.target)) {\n\t\t\t\tsetddState({\n\t\t\t\t\tlistOpen: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tReact.useEffect(() => {\n\t\t\t// Bind the event listener\n\t\t\tdocument.addEventListener(\"mousedown\", handleClickOutside);\n\t\t\treturn () => {\n\t\t\t\t// Unbind the event listener on clean up\n\t\t\t\tdocument.removeEventListener(\"mousedown\", handleClickOutside);\n\t\t\t};\n\t\t});\n\t};\n\n\tuseOutsideAlerter(wrapperRef);\n\n\tconst toggleList = () => {\n\t\t//if onClickTgl prop is true or undefined(not sent as prop) show\n\t\t//dropdown on click event of dropdown toggle\n\t\tif (props.onClickTgl || props.onClickTgl === undefined) {\n\t\t\tsetddState({\n\t\t\t\tlistOpen: !ddState.listOpen\n\t\t\t});\n\t\t}\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t
    toggleList()}>\n\t\t\t\t<>{ddState.selectedItem ? ddState.selectedItem.text : props.headerTitle}\n\t\t\t\t{props.arrow && (ddState.listOpen ? : )}\n\t\t\t
    \n\n\t\t\t
    {props.listCont}
    \n\t\t
    \n\t);\n}\n\nexport default Dropdown;\n","import * as React from \"react\";\nimport Dropdown from \"../../utils/dropdown\";\nimport { config } from \"../../../config/domain\";\nimport {\n\tIPersonalDetails,\n\tIClientProfilePicture,\n\tICOMPersonalDetails,\n\tICOMServicingDetails,\n\tIServicingDetails\n} from \"../../types/components/login/userDetails\";\nimport LoginService from \"../../service/login/loginService\";\nimport { Link } from \"react-router-dom\";\ninterface KeyType {\n\t[key: string]: any;\n}\n\ninterface IUserListProps {}\ninterface IClientDetailsProps extends IUserListProps {\n\tuserDeatils?: KeyType;\n}\n\n// toc nav list and component start\nexport const tocList = [\n\t{\n\t\tlink: config.rootUrl + \"?ottype=place-order\",\n\t\ttext: \"place order\",\n\t\tsubText: \"Stocks, Mutual Funds, SIPs, Currency etc.\",\n\t\tid: \"tc1\"\n\t},\n\t{\n\t\tid: \"tc2\",\n\t\tsubList: [\n\t\t\t{\n\t\t\t\tlink: config.rootUrl + \"?ottype=order-status\",\n\t\t\t\ttext: \"Order Status\",\n\t\t\t\tsubText: \"\",\n\t\t\t\tid: \"tc21\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tlink: config.rootUrl + \"?ottype=my-positions\",\n\t\t\t\ttext: \"My Positions\",\n\t\t\t\tsubText: \"\",\n\t\t\t\tid: \"tc22\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tid: \"tc3\",\n\t\tsubList: [\n\t\t\t{\n\t\t\t\tlink: config.rootUrl + \"?ottype=see-margin\",\n\t\t\t\ttext: \"Funds Available\",\n\t\t\t\tsubText: \"\",\n\t\t\t\tid: \"tc31\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tlink: config.rootUrl + \"?ottype=fund-transfer\",\n\t\t\t\ttext: \"Transfer Funds\",\n\t\t\t\tsubText: \"\",\n\t\t\t\tid: \"tc32\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tid: \"tc4\",\n\t\tsubList: [\n\t\t\t{\n\t\t\t\tlink: config.rootUrl + \"?ottype=see-holdings\",\n\t\t\t\ttext: \"See Holdings\",\n\t\t\t\tsubText: \"\",\n\t\t\t\tid: \"tc41\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tlink: config.rootUrl + \"watchlist\",\n\t\t\t\ttext: \"My Watchlist\",\n\t\t\t\tsubText: \"\",\n\t\t\t\tid: \"tc42\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tlink: config.rootUrl + \"alerts\",\n\t\t\t\ttext: \"My Alerts\",\n\t\t\t\tsubText: \"\",\n\t\t\t\tid: \"tc43\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tlink: config.rootUrl + \"?ottype=see-margin\",\n\t\t\t\ttext: \"Margin Files\",\n\t\t\t\tsubText: \"\",\n\t\t\t\tid: \"tc44\"\n\t\t\t}\n\t\t]\n\t}\n];\nexport function TocList(props: IUserListProps) {\n\tconst tocListCont = {\n\t\theader: \"BUY / SELL\",\n\t\tlist: (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\n\t\t)\n\t};\n\treturn (\n\t\t\n\t);\n}\n// toc nav list and component end\n// rreports nav list and component start\n\nexport const reportsList = [\n\t{\n\t\tlink: config.rootUrl + \"reports\",\n\t\ttext: \"account overview\",\n\t\tsubText: \"View your portfolio overview\",\n\t\tid: \"rp1\"\n\t},\n\t{\n\t\tid: \"rp2\",\n\t\tsubList: [\n\t\t\t{\n\t\t\t\tlink: config.rootUrl + \"historicalperformance\",\n\t\t\t\ttext: \"Historical Performance\",\n\t\t\t\tsubText: \"\",\n\t\t\t\tid: \"rp21\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tlink: config.rootUrl + \"transaction-history/equity\",\n\t\t\t\ttext: \"Transaction History\",\n\t\t\t\tsubText: \"\",\n\t\t\t\tid: \"rp22\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tlink: config.rootUrl + \"gps/dashboard\",\n\t\t\t\ttext: \"Guided Portfolios Dashboard\",\n\t\t\t\tsubText: \"\",\n\t\t\t\tid: \"rp23\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tlink: config.rootUrl + \"reports?true\",\n\t\t\t\ttext: \"More Reports\",\n\t\t\t\tsubText: \"\",\n\t\t\t\tid: \"rp24\"\n\t\t\t}\n\t\t]\n\t}\n];\n\nexport function ReportsList(props: IUserListProps) {\n\tconst reportsListCont = {\n\t\theader: (\n\t\t\t<>\n\t\t\t\tMY REPORTS\n\t\t\t\n\t\t),\n\t\tlist: (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\n\t\t)\n\t};\n\treturn (\n\t\t\n\t);\n}\n// rreports nav list and component end\n\n// clientDetails nav list and component start\n\nexport function ClientDetails(props: IClientDetailsProps) {\n\ttype IAccType = \"EQ\" | \"CO\" | \"COMEQ\";\n\n\tlet PersonalDetails: IPersonalDetails & ICOMPersonalDetails = props.userDeatils ? props.userDeatils.personalDetails : {},\n\t\tClientProfile: IClientProfilePicture = props.userDeatils ? props.userDeatils.clientPicture : {},\n\t\tServicingDetails: IServicingDetails & ICOMServicingDetails = props.userDeatils ? props.userDeatils.servicingDetails : {};\n\tconst lAccType: IAccType = (LoginService.getAccData(\"accTyp\") as IAccType) || \"EQ\";\n\tconst [accType, setaccType] = React.useState(lAccType !== \"COMEQ\" ? lAccType : \"EQ\");\n\n\tconst ClientProfileCont = {\n\t\theader: (\n\t\t\t\n\t\t),\n\t\tddCont: (\n\t\t\t<>\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t
    • setaccType(\"EQ\")}>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t
    • setaccType(\"CO\")}>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t{/* EQUITY COMMODITIES */}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{ServicingDetails && (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{ServicingDetails && (ServicingDetails.equityAdvisorEmailField || ServicingDetails.EQUITY_ADVISOR_EMAIL)}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tSee Profile\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tLogout\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t)\n\t};\n\treturn (\n\t\t\n\t);\n}\n\n// clientDetails nav list and component end\n\nexport default TocList;\n","import * as React from \"react\";\nimport {config} from \"../../../config/domain\";\nimport {isLoggedIn} from \"../../../components/service/login/loginService\"\nimport \"../../../assets/scss/components/header/nav/navDesk.scss\";\nimport \"../../../assets/scss/components/header/nav/navMob.scss\";\nimport {tocList, reportsList} from \"../client/clientNavList\";\nimport {Idevice} from \"../../types/device\";\n\nexport interface IMenuListProps {\n loggedIn?: boolean;\n deviceState?: Idevice;\n}\n\nexport function MenuList(props: IMenuListProps) {\n const smallCaseUrl = isLoggedIn()\n ? config.rootUrl + \"/vlogin/smallcase?params=26utm_source%3Dedelweiss%26utm_medium%3Dwebsite%26utm_campaign%3Dhomepage%26utm_content%3Dguided-investing\"\n : \"https://smallcases.edelweiss.in?params=26utm_source%3Dedelweiss%26utm_medium%3Dwebsite%26utm_campaign%3Dhomepage%26utm_content%3Dguided-investing\";\n const menuList = [\n {\n text: \"Invest\",\n id: \"investBlock\",\n active: React.useRef(null),\n subMenuList: [\n {\n link: false,\n text: \"Investment\",\n id: \"investmentsubBlock\",\n subList: [\n {\n link: config.rootUrl + \"oyo/equity\",\n text: \"Stocks\", \n } ,\n {\n link: config.rootUrl + \"/oyo/mutualfund\",\n text: \"Mutual Funds\", \n },\n {\n link: config.rootUrl + \"market/futures-and-options-trends\",\n text: \"Derivatives\", \n } ,\n {\n link: config.rootUrl + \"market/stock-market-index/#commodities\",\n text: \"Commodities\", \n },\n {\n link: config.rootUrl + \"market/stock-market-index/#currency\",\n text: \"Currency\", \n } ,\n {\n link: config.rootUrl + \"/oyo/mutualfund\",\n text: \"small case\", \n \n },\n ]\n },\n {\n link: false,\n text: \"Primary Markets\",\n class: \"investmentsubBlock\",\n subList: [\n {\n link: config.rootUrl + \"new-issues/#ipo\",\n text: \"IPO\", \n } ,\n {\n link: config.rootUrl + \"new-issues/#ncd\",\n text: \"NCD\", \n },\n {\n link: config.rootUrl + \"new-issues/#ofs\",\n text: \"OFS\", \n } ,\n {\n link: config.rootUrl + \"new-issues/#nfo\",\n text: \"New Fund Offer\", \n },\n \n ]\n }, \n {\n link: false,\n text: \"Products\",\n class: \"investmentsubBlock\",\n subList: [\n {\n link: config.rootUrl + \"generic-insurance\",\n text: \"Insurance\", \n } ,\n \n \n ]\n },\n {\n link: false,\n text: \"Platforms\",\n class: \"investmentsubBlock\",\n \n \n subList: [\n { \n \n link: config.rootUrl + \"mobile-trader\",\n text: \"Nuvama Markets\"\n } ,\n {\n \n link: config.rootUrl + \"tx3\",\n text: \"TX3\", \n } ,\n {\n link: config.rootUrl + \"api-connect\",\n text: \"API Connect\", \n \n } ,\n \n \n ]\n }\n ]\n },\n {\n text: \"Resources\",\n id: \"resourceBlock\",\n active: React.useRef(null),\n subMenuList: [\n {\n text: \"Research\",\n id: \"mi21\",\n subList: [\n {\n link: config.rootUrl + \"research\",\n text: \"Reports\", \n } ,\n {\n link: config.rootUrl + \"oyo/equity/top-market-and-stock-recommendations/equity\",\n text: \"Recommendations\", \n } ,\n ]\n },\n {\n text: \"Gain Knowledge\",\n id: \"mi22\",\n subList: [\n {\n link: config.rootUrl + \"insight\",\n text: \"Insights\", \n } ,\n {\n link: config.rootUrl + \"Investology\",\n text: \"Investology\", \n } ,\n ]\n },\n ]\n },\n {\n text: \"Markets\",\n id: \"marketBlock\",\n active: React.useRef(null),\n subMenuList: [\n {\n link: config.rootUrl + \"market\",\n text: \"Market Today\",\n id: \"mi31\"\n\n },\n {\n link: config.rootUrl + \"market/deep-dive-into-stock-markets\",\n text: \"Markets Movements\",\n id: \"mi32\"\n },\n {\n link: config.rootUrl + \"market/stock-market-index\",\n text: \"Market Indices\",\n id: \"mi33\"\n },\n {\n link: config.rootUrl + \"market/deep-dive-into-stock-markets/share-market-map\",\n text: \"Market Map\",\n id: \"mi34\"\n },\n {\n link: config.rootUrl + \"market/futures-and-options-trends\",\n text: \"F&O Trends\",\n id: \"mi35\"\n },\n {\n link: config.rootUrl + \"market/nse-option-chain\",\n text: \"Option Chain\",\n id: \"mi36\"\n },\n {\n link: config.rootUrl + \"market/fii-dii-activity\",\n text: \"FII & DII Activity\",\n id: \"mi37\"\n },\n {\n link: config.rootUrl + \"market/corporate-actions-and-economic-events\",\n text: \"Economic & Company Events\",\n id: \"mi38\"\n }\n ]\n },\n {\n text: \"Pricing\",\n id: \"pricingBlock\",\n active: React.useRef(null),\n subMenuList: [\n {\n link: config.rootUrl + \"research\",\n text: \"Brokerage Rates\",\n id: \"mi41\"\n },\n {\n link: config.rootUrl + \"oyo/equity/top-market-and-stock-recommendations/equity?redirectParam=EQ%2CLong%20term\",\n text: \"Infinity Plan\",\n id: \"mi42\"\n }\n ]\n },\n {\n text: \"Support\",\n id: \"supportBlock\",\n cn: \"listTwo\",\n active: React.useRef(null),\n subMenuList: [\n {\n link: config.rootUrl + \"insight\",\n text: \"Check Account Opening Status\",\n id: \"mi51\"\n },\n {\n link: config.rootUrl + \"insight\",\n text: \"Visit FAQs\",\n id: \"mi51\"\n },\n {\n link: config.rootUrl + \"insight\",\n text: \"1800-102-3335 (8.30 AM - 5.30 PM)\",\n id: \"mi51\"\n },\n {\n link: config.rootUrl + \"insight\",\n text: \"helpdesk@nuvama.com\",\n id: \"mi51\"\n },\n {\n link: config.rootUrl + \"investology\",\n text: \"Locate Us\",\n id: \"mi52\"\n }\n ]\n },\n ];\n const sessListEmbed = {\n toc: [\n {\n text: \"Buy/Sell\",\n id: \"miL1\",\n active: React.useRef(null),\n subMenuList: tocList\n }\n ],\n reports: [\n {\n text: \"My Reports\",\n id: \"miL2\",\n active: React.useRef(null),\n subMenuList: reportsList\n }\n ]\n };\n const UserMobMenu = {\n toc: sessListEmbed.toc.map((item: any, index: number) => (\n
  • \n menuAccord(item)}\n className=\" mainMenuLabel\"\n dangerouslySetInnerHTML={{\n __html: item.text\n }}\n >\n {item.subMenuList && item.subMenuList.length !== 0 && (\n
    \n
      \n {item.subMenuList.map((sItem: any, index: number) =>\n sItem.link ? (\n
    • \n \n \n
    • \n ) : (\n sItem.subList.map((sItem: any, index: number) => (\n
    • \n \n
    • \n ))\n )\n )}\n
    \n
    \n )}\n
  • \n )),\n reports: sessListEmbed.reports.map((item: any, index: number) => (\n
  • \n menuAccord(item)}\n className= \" mainMenuLabel\"\n dangerouslySetInnerHTML={{\n __html: item.text\n }}\n >\n {item.subMenuList && item.subMenuList.length !== 0 && (\n
    \n
      \n {item.subMenuList.map((sItem: any, index: number) =>\n sItem.link ? (\n
    • \n \n
    • \n ) : (\n sItem.subList.map((sItem: any, index: number) => (\n
    • \n \n
    • \n ))\n )\n )}\n
    \n
    \n )}\n
  • \n ))\n };\n\n //expand and collapse the menu items on click of group head element\n function menuAccord(item: any) {\n let expEle = document.getElementById(\"navList\"),\n navExpBlk = expEle ? expEle?.getElementsByClassName(\"expand\") : [],\n itemCur = item.active.current;\n // console.log(navExpBlk);\n for (let i = 0; i < navExpBlk.length; i++) {\n const ele = navExpBlk[i];\n ele.id !== item.active.current.id && ele.classList.remove(\"expand\");\n }\n\n if (itemCur.className.indexOf(\"expand\") < 0) {\n itemCur.classList.add(\"expand\");\n } else {\n itemCur.classList.remove(\"expand\");\n }\n }\n\n //\n\n return (\n <>\n \n \n );\n}\n\nexport default MenuList;\n","import * as React from \"react\";\nimport { Dropdown } from \"../../utils/dropdown\";\nimport DeviceContext from \"../../service/indentifyDevice\";\nimport { Idevice } from \"../../types/device\";\nimport { config } from \"../../../config/domain\";\n\nexport interface IGuest {\n\tcontactNo?: string;\n}\nconst device: Idevice = DeviceContext();\n\nexport function SupportCenter(props: IGuest) {\n\t//support center dropdown list items with dynamic part\n\tconst supportCenterDDList = [\n\t\t{\n\t\t\tlink: config.rootUrl + \"user-guide/web\",\n\t\t\ticon: \"edel-icon-bulb\",\n\t\t\ttext: \"Get Started\",\n\t\t\tid: 5,\n\t\t\tmobText: \"\",\n\t\t\thideMob: true\n\t\t},\n\t\t{\n\t\t\tlink: config.rootUrl + \"faqs/\",\n\t\t\ticon: \"edel-icon-faqs\",\n\t\t\ttext: \"Visit FAQs\",\n\t\t\tmobText: \"FAQs\",\n\t\t\tid: 4\n\t\t},\n\t\t{\n\t\t\tlink: \"\",\n\t\t\ticon: \"edel-icon-call\",\n\t\t\ttext: props.contactNo,\n\t\t\tmobText: \"Call us\",\n\t\t\tsubText: \" (8:30 AM - 5:30 PM)\",\n\t\t\tid: 1\n\t\t},\n\t\t{\n\t\t\tlink: \"mailto:helpdesk@nuvama.com\",\n\t\t\ticon: \"edel-icon-email-us\",\n\t\t\ttext: \"helpdesk@nuvama.com\",\n\t\t\tmobText: \"Email us\",\n\t\t\tid: 2\n\t\t},\n\t\t{\n\t\t\tlink: config.rootUrl + \"location\",\n\t\t\ticon: \"edel-icon-locate-us\",\n\t\t\ttext: \"Locate Us\",\n\t\t\tid: 3,\n\t\t\tmobText: \"Locate us\"\n\t\t},\n\t\t{\n\t\t\tlink: config.rootUrl + \"forgot-password\",\n\t\t\ticon: \"edel-icon-login-help\",\n\t\t\tid: 6,\n\t\t\tmobText: \"Locate us\",\n\t\t\thideDesk: true\n\t\t}\n\t];\n\tconst sCDDCont = {\n\t\theaderTitle:
    Support Center
    ,\n\t\tlist: (\n\t\t\t<>\n\t\t\t\t
      \n\t\t\t\t\t{supportCenterDDList.map(\n\t\t\t\t\t\t(item: any) =>\n\t\t\t\t\t\t\t!item.hideDesk && (\n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t{item.link && (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{item.icon && }\n\t\t\t\t\t\t\t\t\t\t\t{item.text}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t{!item.link && (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t{item.subText && {item.subText}}\n\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t)\n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t\n\t\t),\n\t\tmobList: (\n\t\t\t<>\n\t\t\t\t{/* */}\n\t\t\t\n\t\t)\n\t};\n\tlet retCont = null;\n\tif (device.isDesktop) {\n\t\tretCont = ;\n\t} else {\n\t\tretCont = sCDDCont.mobList;\n\t}\n\treturn retCont;\n}\nexport function LoginToNav(props: IGuest) {\n\t//Logindropdown list items with dynamic part\n\n\tconst loginDDList = [\n\t\t{\n\t\t\tlink: config.rootUrl + \"?ottype=place-order\",\n\t\t\ticon: \"\",\n\t\t\ttext: \"Buy/Sell\",\n\t\t\tsubText: \"Quickly Buy Stocks, Mutual Funds, SIPs, Currency etc.\",\n\t\t\tid: 2\n\t\t},\n\t\t{\n\t\t\tlink: config.rootUrl + \"?ottype=fund-transfer\",\n\t\t\ticon: \"\",\n\t\t\ttext: \"Transfer Funds\",\n\t\t\tsubText: \"Transfer funds between your bank account and trading account with ease.\",\n\t\t\tid: 3\n\t\t},\n\t\t{\n\t\t\tlink: config.rootUrl + \"reports\",\n\t\t\ticon: \"\",\n\t\t\ttext: \"My reports\",\n\t\t\tsubText: \"View your portfolio overview and other reports here.\",\n\t\t\tid: 4\n\t\t}\n\t];\n\n\tconst loginDDCont = {\n\t\theader: (\n\t\t\t\n\t\t),\n\t\tlist: (\n\t\t\t<>\n\t\t\t\t
    LOGIN TO
    \n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\n\t\t)\n\t};\n\treturn (\n\t\t\n\t);\n}\nexport default SupportCenter;\n","import * as React from \"react\";\nimport { TocList, ReportsList, ClientDetails } from \"./clientNavList\";\nimport \"../../../assets/scss/components/header/client/clientNav.scss\";\nimport {\n\tIClientProfilePicture,\n\tICOMPersonalDetails,\n\tICOMServicingDetails,\n\tIPersonalDetails,\n\tIServicingDetails\n} from \"../../types/components/login/userDetails\";\n\nexport interface IUserNavProps {\n\tuserDetails?: {\n\t\tclientPicture: IClientProfilePicture | undefined;\n\t\tpersonalDetails: ICOMPersonalDetails | IPersonalDetails | undefined;\n\t\tservicingDetails: IServicingDetails | ICOMServicingDetails | undefined;\n\t};\n}\n\nexport function UserNav(props: IUserNavProps) {\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import * as React from \"react\";\nimport { MenuList } from \"../menuItems/menuList\";\nimport SupportCenter from \"../guestNav/guestNavList\";\nimport { Idevice } from \"../../types/device\";\nimport LoginService from \"../../service/login/loginService\";\nimport { Link } from \"react-router-dom\";\n\nexport interface IMobCurtainMenuProps {\n\trootUrl?: string;\n\tloggedIn?: boolean;\n\tdeviceState?: Idevice;\n}\n\nexport function MobCurtainMenu(props: IMobCurtainMenuProps) {\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\t{!props.loggedIn && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tOpen Account\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tLogin\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t)}\n\n\t\t\t\t{props.loggedIn && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tLogout\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
    \n\t\t\n\t);\n}\n","import * as React from \"react\";\nimport { Idevice } from \"../../../types/device\";\n\nexport interface IIndexCompProps {\n\tlabel?: string;\n\tltp?: any;\n\tltpchg?: any;\n\tltpchgper?: any;\n\tdevice: Idevice;\n\tclassList?: string;\n\tclassName?: string;\n\n}\n\nexport default function IndexComp(props: IIndexCompProps) {\n\t// props.device = DeviceContext();\n\treturn (\n\t\t<>\n\t\t\n\t\t\t \n\t\t\t{props.ltp} \n\t\t\t=0 ? \"green\":\"red\"}>\n\t\t\t\t\n\t\t\t\t{props.ltpchg}  \n\t\t\t\t\t\n\t\t\t\t\t\t({props.ltpchgper}\n\t\t\t\t\t\t%)\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\n\t);\n}\n","import React, { ReactElement } from \"react\";\nimport { IMarketStatus } from \"../../types/stream\";\nimport IndexComp from \"./partials/indexStreamJSX\";\nimport DeviceContext from \"../../service/indentifyDevice\";\nimport { Idevice } from \"../../types/device\";\nimport * as symbols from \"../../../ds/symbols.json\";\nimport urlConfig from \"../../../config/domain\";\nimport { apiService } from \"../../service/apiService\";\nimport { initWS } from \"../../service/edelWebSockets/wsCallbacks\";\nimport { edelSocketQuote1Req } from \"../../service/edelWebSockets/wsInit\";\nimport { IQuoteRes, ISocketSubscribeReq } from \"../../types/components/edelSockets/edelSocketTypes\";\n\n//props to show the streaming on top of the header\n//with label as NIFTY/SENSEX,\n//ltp, ltpchg ltpchgper, all made optional beacuse these parameters dependent on API response or socket message\nexport interface IIdxStreamProps {\n\tlabel?: string;\n\tltp?: any;\n\tltpchg?: any;\n\tltpchgper?: any;\n}\n//index stream component created with the state where res holds the intial API response,\n//this will be used until we get first socket message\n//apiRes - > api response(GetMarketStatus)\n//res - > socket message response\n//device provide the type of device\n\nconst handleDevice: Idevice = DeviceContext();\n\nexport function IdxStream(_props: IIdxStreamProps) {\n\tlet streamRes: { NSE: IQuoteRes | undefined; BSE: IQuoteRes | undefined } = { NSE: undefined, BSE: undefined };\n\n\tconst [NSEObj, setNSEObj] = React.useState(\n\t\t\n\t);\n\tconst [BSEObj, setBSEObj] = React.useState(\n\t\t\n\t);\n\tconst [USDObj, setUSDObj] = React.useState(\n\t\t\n\t);\n\tconst [BANKObj, setBANKObj] = React.useState(\n\t\t\n\t);\n\t//streamer callback method\n\tconst socketMessages = (message: any, type: string) => {\n\t\tif (type === \"message\") {\n\t\t\tconst msgJson = JSON.parse(message) as {\n\t\t\t\tresponse: {\n\t\t\t\t\tdata: IQuoteRes;\n\t\t\t\t};\n\t\t\t\tstreaming_type: string;\n\t\t\t};\n\n\t\t\t//streamer will send the single message for both symbols, depending the received symbol\n\t\t\t//status need to be updated\n\n\t\t\tlet parsedData = msgJson.response.data;\n\n\t\t\tif (parsedData.sym === symbols.NSESymbol || parsedData.sym === symbols.BSESymbol) {\n\t\t\t\t//after receiving first message reset the apiRes to undefined because from this we will be using sockets data\n\t\t\t\t//reset only if data recevied for NIFTY and SENSEX\n\n\t\t\t\tif (\n\t\t\t\t\tparsedData.sym === symbols.NSESymbol &&\n\t\t\t\t\t(parsedData.ltp !== streamRes.NSE?.ltp || parsedData.chg !== streamRes.NSE?.chg || parsedData.chgp !== streamRes.NSE?.chgp)\n\t\t\t\t) {\n\t\t\t\t\tstreamRes.NSE = parsedData;\n\t\t\t\t\tsetNSEObj(\n\t\t\t\t\t\t= 0 ? \"green\" : \"red\"}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\tparsedData.sym === symbols.BSESymbol &&\n\t\t\t\t\t(parsedData.ltp !== streamRes.BSE?.ltp || parsedData.chg !== streamRes.BSE?.chg || parsedData.chgp !== streamRes.BSE?.chgp)\n\t\t\t\t) {\n\t\t\t\t\tstreamRes.BSE = parsedData;\n\n\t\t\t\t\tsetBSEObj(\n\t\t\t\t\t\t= 0 ? \"green\" : \"red\"}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tconst marketStatSuccess = (res: any) => {\n\t\tif (res) {\n\t\t\tlet parsedData = JSON.parse(res).JsonData as IMarketStatus;\n\n\t\t\tsetNSEObj(\n\t\t\t\t= 0 ? \"green\" : \"red\"}\n\t\t\t\t/>\n\t\t\t);\n\t\t\tsetBSEObj(\n\t\t\t\t= 0 ? \"green\" : \"red\"}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t};\n\tconst marketStatSuccessOverview = (res: any) => {\n\t\tif (res) {\n\t\t\tlet parsedData = JSON.parse(res).JsonData ;\n\t\t\tif(parsedData.OKIndices && parsedData.OKIndices.length > 0){\n\t\t\t\tlet OKIndices = parsedData.OKIndices[0] ;\n\n\t\t\t\tsetUSDObj(\n\t\t\t\t\t= 0 ? \"green\" : \"red\"}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t}\n\t\t\t\n\t\t}\n\t};\n\tconst marketStatSuccessIndices = (res: any) => {\n\t\tif (res) {\n\t\t\tlet parsedData = JSON.parse(res).JsonData.KI ;\n\t\t\tif(parsedData.NSE && parsedData.NSE.length > 0){\n\t\t\t\tlet nifty = parsedData.NSE[1] ;\n\n\t\t\t\tsetBANKObj(\n\t\t\t\t\t= 0 ? \"green\" : \"red\"}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t}\n\t\t\t\n\t\t}\n\t};\n\n\tReact.useEffect(() => {\n\t\tapiService({ url: urlConfig.market.status + symbols.niftyCoCode + \",\" + symbols.sensexCoCode, method: \"GET\" }, marketStatSuccess);\n\t\tapiService({ url: urlConfig.usd.status, method: \"GET\" }, marketStatSuccessOverview);\n\t\tapiService({ url: urlConfig.banknifty.status, method: \"GET\" }, marketStatSuccessIndices);\n\n\t\t\n\n\t\t// initWS(\n\t\t// \tedelSocketQuote1Req(\"quote\", {\n\t\t// \t\tsymbols: [{ symbol: symbols.NSESymbol }, { symbol: symbols.BSESymbol }]\n\t\t// \t}),\n\t\t// \tsocketMessages\n\t\t// );\n\t\treturn () => {\n\t\t\t// initWS(\n\t\t\t// \tedelSocketQuote1Req(\n\t\t\t// \t\t\"quote\",\n\t\t\t// \t\t{\n\t\t\t// \t\t\tsymbols: [{ symbol: symbols.NSESymbol }, { symbol: symbols.BSESymbol }]\n\t\t\t// \t\t},\n\t\t\t// \t\t\"unsubscribe\"\n\t\t\t// \t),\n\t\t\t// \tsocketMessages\n\t\t\t// );\n\t\t};\n\t}, []);\n\treturn (\n\t\t
    \n\t\t\t
      \n\t\t\t\t
    • {NSEObj}
    • \n\t\t\t\t
    • {BSEObj}
    • \n\t\t\t\t{DeviceContext().isDesktop && (\n\t\t\t\t\t<>\n\t\t\t\t\t
    • {USDObj}
    • \n\t\t\t\t\t
    • {BANKObj}
    • \n\t\t\t\t)}\n\t\t\t
    \n\t\t
    \n\t);\n}\n","import moment from \"moment\";\nimport * as React from \"react\";\nimport { Idevice } from \"../../types/device\";\n\ninterface IComaprisonSearchProps {\n\toneBoxContent: {\n\t\ttype: string;\n\t\ttab: string;\n\t\taction: string;\n\t\tdata: {\n\t\t\tstkDet: Array<{}>;\n\t\t};\n\t};\n\tdeviceState: Idevice;\n}\n\nexport function ComaprisonSearch(props: IComaprisonSearchProps) {\n\treturn (\n\t\t<>\n\t\t\t{props.oneBoxContent.data.stkDet.map((comp: any, index: number) => (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{comp.nm}\n\t\t\t\t\t\t\n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t{comp.ltp} \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t= 0 ? \"ed-green edel-icon-caret-up\" : \"ed-red edel-icon-caret-down\")\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t  \n\t\t\t\t\t\t\t= 0 ? \"ed-green\" : \"ed-red\")}>\n\t\t\t\t\t\t\t\t{comp.chg + \" (\" + comp.chgP + \" % )\"}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t{moment(comp.ltt).format(\"MMM DD, hh:mm a\")}\n\t\t\t\t\t\t

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    Market Cap{comp.mCap}
    BV{comp.bv}
    P/E{comp.pe}
    Dividend Yield{comp.dy}
    EV/EBITDA{comp.eveb}
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    P/BV{comp.pbv}
    ROC{comp.roc}
    Debt to Equity Ratio{comp.de}
    ROE{comp.roe}
    3 Year CAGR Sales{parseFloat(comp.cagr).toFixed(2)}
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t))}\n\t\t\n\t);\n}\n\nexport default ComaprisonSearch;\n","import * as React from \"react\";\n\nexport interface ISectorSearchProps {\n\toneBoxContent: {\n\t\ttype: string;\n\t\ttab: string;\n\t\taction: string;\n\t\tdata: {\n\t\t\tsec: string;\n\t\t\tstkDet: [];\n\t\t};\n\t};\n}\n\nexport function SectorSearch(props: ISectorSearchProps) {\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t{props.oneBoxContent.data.sec}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tTop 5 Sector Constituents\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{props.oneBoxContent.data.stkDet.map(\n\t\t\t\t\t\t\t(comp: any, i: number) => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t
    Company NameLTPChange\n\t\t\t\t\t\t\t\tMarket Cap\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t(in Cr)\n\t\t\t\t\t\t\t
    PE(x)
    \n\t\t\t\t\t\t\t\t\t\t{comp.nm}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{comp.ltp}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{comp.chg +\n\t\t\t\t\t\t\t\t\t\t\t\t\" (\" +\n\t\t\t\t\t\t\t\t\t\t\t\tcomp.chgP +\n\t\t\t\t\t\t\t\t\t\t\t\t\" % )\"}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{comp.mCap}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{comp.pe}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t
    \n\t\t\n\t);\n}\n","import * as React from \"react\";\nimport \"../../../assets/scss/components/header/globalSearch.scss\";\nimport { apiService } from \"../../service/apiService\";\nimport { IGSearchRes } from \"../../types/components/search\";\nimport urlConfig, { config } from \"../../../config/domain\";\nimport moment from \"moment\";\nimport ComaprisonSearch from \"./comparisonSearch\";\nimport { SectorSearch } from \"./sectorSearch\";\nimport { Idevice } from \"../../types/device\";\nimport DeviceContext from \"../../service/indentifyDevice\";\nimport { useState } from \"react\";\n\ninterface IGSearchResultsProps {\n sw: string;\n av: string | null;\n sr: Array;\n}\nconst handleDevice: Idevice = DeviceContext();\n\ninterface IGlobalSearch {}\n\nexport const GlobalSearch = (_props: IGlobalSearch) => {\n const [active, setActive] = useState(false);\n // const [loading, setLoading] = useState(false);\n const [results, setResults] = useState();\n const [query, setQuery] = useState(\"\");\n\n const [compData, setCompData] = useState<{\n stringContent: string;\n oneBoxContent: any;\n }>({ stringContent: \"\", oneBoxContent: null });\n\n const [message, setMessage] = useState(\"\");\n const [smartTipText, setSmartTipText] = useState(\"\");\n const userQueryInput = React.useRef(null);\n\n //abort controller for API calls\n const searchControllerRef = React.useRef();\n const redirectSearchControllerRef = React.useRef();\n\n let timeout: NodeJS.Timer;\n const GlobalSearchAbort = (controller: AbortController) => {\n searchControllerRef.current = controller; //get api call signal ref\n };\n\n const RedirectSearchAbort = (controller: AbortController) => {\n searchControllerRef.current = controller; //get api call signal ref\n };\n\n const smartTipApiCall = (res: string) => {\n res && setSmartTipText(res);\n };\n const bindData = (res: IGSearchResultsProps) => {\n if (res) {\n if (res.sr) {\n for (let i = 0; i < res.sr.length; i++) {\n if (res.sr[i].nd) {\n let temp = res.sr[i].nd.split(\" \");\n temp[0] = temp[0].split(\"/\");\n temp[0] = temp[0][2] + \"-\" + temp[0][1] + \"-\" + temp[0][0];\n res.sr[i].nd = temp[0] + \" \" + temp[1];\n }\n }\n setResults(res);\n message && setMessage(\"\");\n }\n if (\n (res.sr ? !res.sr.length : false) &&\n query &&\n !compData.oneBoxContent\n ) {\n setMessage(\"SORRY WE COULD NOT FIND ANY RELEVANT RESULTS FOR YOU\");\n }\n }\n };\n //when user focus out of the search box reset search input to empty and disable active flag\n const activeSearch = (val: boolean) => {\n setActive(val);\n if (!val) {\n setQuery(\"\");\n let ele = document.getElementById(\"GSearchAnything\") as HTMLInputElement;\n if (ele) {\n ele.value = \"\";\n setResults(undefined);\n }\n }\n };\n const searchBtnClicked = (): void => {\n throw new Error(\"Method not implemented.\");\n };\n const getRedirectDataSuccess = (res: {\n stringContent: \"\";\n oneBoxContent: null;\n }) => {\n if (res) {\n if (res.oneBoxContent) {\n setMessage(\"\");\n }\n setCompData(res);\n }\n };\n const getRedirectData = (inpQuery: string, searchRoute?: string) => {\n if (redirectSearchControllerRef.current) {\n redirectSearchControllerRef.current.abort(); //abort prevoius API calls\n }\n var postData = {\n searchString: inpQuery,\n searchRoute: \"\",\n };\n apiService(\n {\n url: urlConfig.GSearch.GetSearchRedirectResult,\n method: \"POST\",\n body: postData,\n },\n getRedirectDataSuccess,\n RedirectSearchAbort\n );\n };\n const getSearchSuggestions = () => {\n try {\n if (searchControllerRef.current) {\n searchControllerRef.current.abort(); //abort prevoius API calls\n }\n let searchval: string = userQueryInput.current?.value\n ? userQueryInput.current?.value\n : \"\";\n setQuery(searchval);\n\n if (searchval.length > 2) {\n timeout && clearTimeout(timeout);\n timeout = setTimeout(() => {\n getRedirectData(searchval);\n }, 1000);\n\n var postData = {\n SearchString: searchval,\n Cookie: \"\",\n };\n apiService(\n {\n url: urlConfig.GSearch.GSearchSuggestions,\n method: \"POST\",\n body: postData,\n },\n bindData,\n GlobalSearchAbort\n );\n } else if (searchval.length === 0) {\n setResults(undefined);\n }\n } catch (err) {\n //console.log(err);\n }\n };\n\n const sgListItem = (listItem: IGSearchRes) => {\n return (\n \n {listItem.pr}\n \n 0\n ? \" posVal\"\n : parseFloat(listItem.cn) < 0\n ? \"negVal\"\n : \"\"\n }\n >\n {parseFloat(listItem.cn) > 0 && }\n {parseFloat(listItem.cn) < 0 && }\n {listItem.cn}({`${listItem.pn}%`})\n \n {listItem.nd && (\n <>\n \n \n \n  \n {moment(new Date(listItem.nd)).format(\"MMM DD, hh:mm a\")}\n \n \n \n )}\n \n \n );\n };\n\n const sgListEle = (listItem: IGSearchRes, index: number) => {\n return (\n
  • \n \n {listItem.sg}\n {listItem.pr &&

    {sgListItem(listItem)}

    }\n
    \n
  • \n );\n };\n\n const handleDocumentClick = (e: MouseEvent) => {\n const eTar = e.target as HTMLElement;\n eTar && eTar.id !== \"GSearchAnything\" && !active && activeSearch(false);\n };\n\n React.useEffect(() => {\n apiService(\n {\n url: urlConfig.web_mw + \"Market/smartTipText/\",\n method: \"GET\",\n },\n smartTipApiCall\n );\n window.addEventListener(\"click\", (e) => handleDocumentClick(e));\n\n return () => {};\n }, []);\n\n return (\n
    \n
    \n
    \n {/* contains search suggestion */}\n {active && (\n
    \n

    \n \n SMART TIP: {smartTipText}\n

    \n
    \n )}\n activeSearch(false)}\n >\n \n \n
    \n searchBtnClicked()}\n >\n \n \n activeSearch(true)}\n onChange={() => getSearchSuggestions()}\n />\n \n \n\n {/* //show the search suggestion fetched from suggestions api */}\n {((results && results?.sr.length !== 0) || message) && active && (\n
    \n {results && results?.sr.length !== 0 && (\n \n
      \n {results?.sr.map(\n (listItem: IGSearchRes, index: number) =>\n index < 5 && sgListEle(listItem, index)\n )}\n
    \n
      \n {results?.sr.map(\n (listItem: IGSearchRes, index: number) =>\n index >= 5 && sgListEle(listItem, index)\n )}\n
    \n
    \n )}\n {message &&

    {message}

    }\n
    \n )}\n\n {/* //if there are no search suggestions fetched from suggestions api then show direct results api response here*/}\n\n {results?.sr.length === 0 &&\n compData?.oneBoxContent &&\n (compData?.oneBoxContent.type === \"comparison\" ||\n compData?.oneBoxContent.type === \"datapoint\") &&\n active && (\n
    \n \n \n
    \n
    \n )}\n {results?.sr.length === 0 &&\n compData?.oneBoxContent &&\n compData?.oneBoxContent.type === \"sector\" &&\n active && (\n
    \n \n
    \n )}\n
    \n
    \n );\n};\n","export default __webpack_public_path__ + \"static/media/logo_blue.10e03ad6.jpg\";","import * as React from \"react\";\nimport \"../../assets/scss/components/header/header.scss\";\nimport { config } from \"../../config/domain\";\nimport GuestNav from \"./guestNav/guestNav\";\nimport { MenuList } from \"./menuItems/menuList\";\nimport ee from \"../utils/eventEmitter\";\nimport { LoginToNav } from \"./guestNav/guestNavList\";\nimport {\n\tIPersonalDetails,\n\tIClientProfilePicture,\n\tIServicingDetails,\n\tICOMPersonalDetails,\n\tICOMServicingDetails\n} from \"../types/components/login/userDetails\";\nimport { UserNav } from \"./client/clientNav\";\nimport { setbStrg } from \"../service/storageHelper\";\nimport { Idevice } from \"../types/device\";\nimport DeviceContext from \"../service/indentifyDevice\";\nimport { MobCurtainMenu } from \"./mobMenu/mobMenuNav\";\nimport LoginService from \"../service/login/loginService\";\nimport { IdxStream } from \"./stream/indxStream\";\n\nimport { AClientProfilePicture, AProfileGetPersonalDetails, AServicingDetails } from \"../service/postLogin/clientProfileAPIService\";\nimport { GlobalSearch } from \"./globalSearch/globalSearch\";\nimport logo from \"../../assets/images/logo_blue.jpg\";\n\nconst handleDevice: Idevice = DeviceContext();\nif (handleDevice.isDesktop) {\n\trequire(\"../../assets/scss/components/header/headerDesk.scss\");\n} else if (handleDevice.isMobile) {\n\trequire(\"../../assets/scss/components/header/headerMob.scss\");\n}\n\nexport interface IEdHeaderProps {}\n\nexport function EdHeader(__props: IEdHeaderProps) {\n\t// const [fixedHeader, setFixedHeader] = React.useState(false); //used to hide/show header streamer\n\tconst [isLoggedIn, setIsLoggedIn] = React.useState(LoginService.isLoggedIn()); //defines if user logged in or not\n\tconst [toggleMenuAct, setToggleMenuAct] = React.useState(false);\n\tconst [userProfile, setUserProfile] = React.useState();\n\tconst [ClientProfilePicture, setClientProfilePicture] = React.useState();\n\tconst [servicingDetails, setServicingDetails] = React.useState();\n\n\t//on scroll rearrange the menu items in header\n\t// const handleHeader = () => {\n\t// \t//hide/show the top layer of header if vertical scroll depth > 50px\n\n\t// \tsetFixedHeader(document.documentElement.scrollTop > 50 || document.body.scrollTop > 50 ? true : false);\n\t// };\n\t//callback methods start\n\tconst GetPersonalDetails = (res: IPersonalDetails | ICOMPersonalDetails) => {\n\t\tsetUserProfile(res);\n\t\tsetbStrg(\"PersonalDetails\", res);\n\t\tee.emit(\"fetchProfile\", res);\n\t};\n\n\tconst GetClientPicture = (res: IClientProfilePicture) => {\n\t\tif (res.ImageName && res.ProfileImageByte) {\n\t\t\tres.ProfileImageByte = \"data:image/\" + res.ImageName.split(\".\").pop() + \";base64,\" + res.ProfileImageByte;\n\t\t\tsetbStrg(\"ClientProfilePicture\", res);\n\t\t\tsetClientProfilePicture(res);\n\t\t}\n\t};\n\n\tconst GetServicingDetails = (res: IServicingDetails | ICOMServicingDetails) => {\n\t\tsetbStrg(\"servicingDetails\", res);\n\t\tsetServicingDetails(res);\n\t};\n\n\tReact.useEffect(() => {\n\t\t//listen for the login event\n\t\tee.on(\"loginsuccess\", () => {\n\t\t\tsetIsLoggedIn(true);\n\t\t});\n\t\tee.on(\"logout\", (res) => setIsLoggedIn(false));\n\t}, []);\n\n\tReact.useEffect(() => {\n\t\tif (isLoggedIn) {\n\t\t\t//personalDetails API call\n\t\t\t// AProfileGetClientDetails(GetClientDetails, \"All\", \"EQ\");\n\t\t\tAProfileGetPersonalDetails(GetPersonalDetails);\n\n\t\t\t//ClientProfilePicture api call\n\t\t\tAClientProfilePicture(GetClientPicture);\n\n\t\t\t//ServicingDetails api call\n\t\t\tAServicingDetails(GetServicingDetails);\n\t\t}\n\t}, [isLoggedIn]);\n\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{/* block only for desktop end */}\n\t\t\t\t\t\t{/* ************************************************************** */}\n\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/* block only for desktop start*/}\n\t\t\t\t\t\t\t{/* navigation bar which contains menu list */}\n\t\t\t\t\t\t\t{handleDevice.isDesktop && (\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{/* logo on header which will always navigate to home page */}\n\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\"nuvama\"/\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{/* //menu list start */}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{/* //menu list end */}\n\t\t\t\t\t\t\t\t\t{/* search start */}\n\t\t\t\t\t\t\t\t\t{/*
    */}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{/*
    */}\n\t\t\t\t\t\t\t\t\t{/* search end */}\n\t\t\t\t\t\t\t\t\t{!isLoggedIn && (\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t{isLoggedIn && (\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{/* client navigation bar start */}\n\t\t\t\t\t\t\t\t\t\t\t{/* contains toc, reports, and profile naviagtion */}\n\t\t\t\t\t\t\t\t\t\t\t{isLoggedIn && (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t{/* client navigation bar end*/}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{/* block only for desktop end*/}\n\n\t\t\t\t\t\t\t{/* block only for mobile start*/}\n\t\t\t\t\t\t\t{handleDevice.isMobile && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {/* */}\n\t\t\t\t\t\t\t\t\t\t\"nuvama\"/\n\t\t\t\t\t\t\t \t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{/* block only for mobile end*/}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\n\t);\n}\n","import * as React from \"react\";\n// import LoginPopup from \"../generic/loginPopup\";\nimport {\n Link,\n RouteChildrenProps,\n useHistory,\n useLocation,\n useParams,\n} from \"react-router-dom\";\nimport { urls } from \"../../../login/loginConstants\";\n// import \"../../../assets/scss/components/login/loginScreen/loginHelp.scss\";\nexport interface ILoginHelpProps {}\n\nconst NavList = [\n {\n value: \"myProfile\",\n display: \"My Profile\",\n href: \"profile\",\n },\n {\n value: \"message\",\n display: \"Message Center\",\n href: \"messages\",\n },\n {\n value: \"serviceReq\",\n display: \"Service Request\",\n href: \"service-request\",\n },\n {\n value: \"rateCharges\",\n display: \"Rate & Charges\",\n href: \"rates-charges\",\n },\n {\n value: \"exchangeMessLogs\",\n display: \"Exchange Message Logs\",\n href: \"exchange-logs\",\n },\n];\nconst NavBar: React.FC = (props) => {\n const [selectedValue, setSelectedValue] = React.useState(\"Service Request\");\n let location = useLocation().pathname;\n React.useEffect(() => {\n let set = NavList.filter((list) => {\n if (location.includes(list.href)) return list;\n })[0].value;\n navSelected(set);\n }, []);\n const navSelected = (value: string) => {\n setSelectedValue(value);\n };\n\n return (\n <>\n
    \n
    \n
    \n
    \n
      \n {NavList.map((nav) => (\n navSelected(nav.value)}\n >\n {nav.href && (\n \n {nav.display}\n {props[`${nav.value}`] > 0 && (\n {props[`${nav.value}`]}\n )}\n \n )}\n \n ))}\n
    \n
    \n
    \n
    \n
    \n \n );\n};\n\nexport default NavBar;\n","import { config } from \"../../../config/domain\";\nimport deviceName from \"../../utils/deviceName\";\nimport { getAccData } from \"../login/loginService\";\nimport {\n DownloadEsignDocument,\n downloadPrefilledNominatinForm,\n esignDownloadJMW,\n esignUrlJMW,\n GetEsignUrl,\n getMemorandumDetails,\n GetPreFilledFormPDF,\n updateAccReactStatus,\n} from \"../serviceRequest/srApiService\";\nimport { useQuery } from \"../urlHelper\";\n\nvar prefilledFormTypes = [\n {\n type: \"bank\",\n name: \"BankPreFilledPDF\",\n },\n {\n type: \"address\",\n name: \"AddressPreFilledPDF\",\n },\n {\n type: \"emailMob\",\n name: \"Email&MobilePDF\",\n },\n {\n type: \"accReact\",\n name: \"AccountReactivationPreFilledPDF\",\n },\n {\n type: \"nomination\",\n name: \"NomineePreFilledPDF\",\n },\n {\n type: \"accClosure\",\n name: \"Online Closure Request\",\n },\n {\n type: \"ddpi\",\n name: \"Online DDPI enablement\",\n },\n];\nconst device = deviceName();\n\nexport const proceedToEsign = async (\n serReqId: any,\n type: string,\n downloadPrefilledForm?: boolean\n) => {\n try {\n // console.log(device);\n let prefillFormpdfRes = await getPreFilledFormPDF(serReqId, type);\n\n if (prefillFormpdfRes) {\n if (downloadPrefilledForm) base64toPDF(prefillFormpdfRes);\n return await getEsignUrl(prefillFormpdfRes, serReqId, type);\n } else handleError();\n } catch (err) {\n handleError();\n }\n};\nexport const getEsignUrl = async (base64Data: any, appId: any, type: any) => {\n try {\n const esignRes = await GetEsignUrl({\n ApplicationId: String(appId),\n Base64Document: base64Data,\n ReturnURL: `${config.root\n }app/clientarea/service-request?mod=${type}&source=${window.location.href.includes(\"source=ajs\") ? \"nsdl_ajs\" : \"nsdl\"\n }&appID=${btoa(appId)}`,\n });\n if (esignRes.Code === 200) {\n let esignUrl = esignRes.Data && esignRes.Data.HolderDetails && esignRes.Data.HolderDetails.length > 0 && esignRes.Data.HolderDetails[0].SignUrl ? esignRes.Data.HolderDetails[0].SignUrl : \"\"\n if (esignUrl) {\n window.open(esignUrl, \"_self\");\n return true;\n }\n else handleError()\n } else handleError();\n } catch (err) {\n handleError();\n }\n};\n\nconst handleError = () => {\n return false;\n};\nexport const base64toPDF = (respData: any, fileName?: any) => {\n var decodedPdfContent = atob(respData);\n var byteArray = new Uint8Array(decodedPdfContent.length);\n for (var i = 0; i < decodedPdfContent.length; i++) {\n byteArray[i] = decodedPdfContent.charCodeAt(i);\n }\n var blob = new Blob([byteArray.buffer], { type: \"application/pdf\" });\n var _pdfurl = URL.createObjectURL(blob);\n if (device === \"iPhone\") {\n window.open(_pdfurl, \"_blank\");\n } else {\n var link = document.createElement(\"a\");\n document.body.appendChild(link);\n link.href = _pdfurl;\n link.download = fileName ? fileName + \".pdf\" : \"PrefilledForm.pdf\";\n var evt = new MouseEvent(\"click\", {\n view: window,\n bubbles: true,\n cancelable: false,\n });\n link.dispatchEvent(evt);\n window.URL.revokeObjectURL(_pdfurl);\n link.remove();\n }\n};\nexport const getPreFilledFormPDF = async (serReqId: any, type: string) => {\n try {\n const res = await GetPreFilledFormPDF({\n preFilledFormName: prefilledFormTypes.filter((ele: any) => {\n return ele.type === type;\n })[0].name,\n parentServiceId: serReqId,\n });\n\n if (res) {\n return res;\n } else handleError();\n } catch (err) {\n handleError();\n }\n};\n\n// Get pre-filled form for nomination \nexport const getPreFilledFormNomination = async (serReqId: string) => {\n try {\n const res = await downloadPrefilledNominatinForm(serReqId);\n\n if (res) {\n return res;\n } else handleError();\n } catch (err) {\n handleError();\n }\n};\nexport const downloadEsignDocument = async (appId: any, source: any) => {\n try {\n const downEsignDocRes = await DownloadEsignDocument({\n ApplicationId: appId,\n });\n if (downEsignDocRes && downEsignDocRes.Status === \"SUCCESS\") {\n return downEsignDocRes.Base64Document;\n } else\n window.location.href =\n source === \"nsdl_ajs\"\n ? config.rootUrl + \"clientarea/servicerequest\"\n : config.root + \"/clientarea/service-request\";\n } catch (err) {\n window.location.href =\n source === \"nsdl_ajs\"\n ? config.rootUrl + \"clientarea/servicerequest\"\n : config.root + \"/clientarea/service-request\";\n }\n};\nexport const downloadEsignDocumentV2 = async (appId: any, source: any) => {\n try {\n const downEsignDocRes = await DownloadEsignDocument(appId);\n // console.log('downEsignDocRes', downEsignDocRes);\n if (downEsignDocRes.Data.Base64Document)\n return downEsignDocRes.Data.Base64Document;\n else\n window.location.href =\n source === \"nsdl_ajs\"\n ? config.rootUrl + \"clientarea/servicerequest\"\n : config.root + \"/clientarea/service-request\";\n\n } catch (err) {\n window.location.href =\n source === \"nsdl_ajs\"\n ? config.rootUrl + \"clientarea/servicerequest\"\n : config.root + \"/clientarea/service-request\";\n }\n};\n\nexport const getEsignUrlJMW = async (\n base64Data: any,\n appId: any,\n type: any\n) => {\n try {\n const esignUrl = await esignUrlJMW({\n id: appId,\n data: base64Data,\n successUrl: `${\n config.root\n }app/clientarea/service-request?mod=${type}&source=${\n window.location.href.includes(\"source=ajs\") ? \"nsdl_ajs\" : \"nsdl\"\n }&appID=${btoa(appId)}`,\n failUrl: config.rootUrl + \"clientarea/servicerequest\",\n accTyp: getAccData(\"accTyp\"),\n sr: prefilledFormTypes.find((x) => x.type === type)?.name,\n });\n if (esignUrl && esignUrl.data) {\n window.open(esignUrl.data.url, \"_self\");\n return true;\n } else handleError();\n } catch (err) {\n handleError();\n }\n};\nexport const getEsignUrlJMWV2 = async (\n base64Data: any,\n appId: any,\n type: any\n) => {\n try {\n const esignUrl = await esignUrlJMW({\n id: appId,\n returnUrl: `${config.root\n }app/clientarea/service-request?mod=${type}&source=${window.location.href.includes(\"source=ajs\") ? \"nsdl_ajs\" : \"nsdl\"\n }&appID=${btoa(appId)}`,\n accTyp: (getAccData(\"accTyp\") && getAccData(\"accTyp\") === \"COMEQ\")\n ? \"EQ\"\n : getAccData(\"accTyp\"),\n sr: prefilledFormTypes.find((x) => x.type === type)?.name,\n });\n // console.log('esignUrl', esignUrl);\n if (esignUrl && esignUrl.data) {\n let esignRedirectUrl = JSON.parse(esignUrl.data.url).Data.HolderDetails[0].SignUrl\n if (esignRedirectUrl) {\n window.open(esignRedirectUrl, \"_self\");\n return true;\n }\n else handleError();\n\n } else handleError();\n } catch (err) {\n handleError();\n }\n};\n\nexport const downloadEsignDocJMW = async (appId: any, source: any) => {\n try {\n const downEsignDocRes = await esignDownloadJMW(appId);\n if (downEsignDocRes && downEsignDocRes.data) {\n return downEsignDocRes.data.data;\n } else\n window.location.href =\n source === \"nsdl_ajs\"\n ? config.rootUrl + \"clientarea/servicerequest\"\n : config.root + \"/clientarea/service-request\";\n } catch (err) {\n window.location.href =\n source === \"nsdl_ajs\"\n ? config.rootUrl + \"clientarea/servicerequest\"\n : config.root + \"/clientarea/service-request\";\n }\n};","import moment from \"moment\";\nimport * as React from \"react\";\nimport { config } from \"../../../../config/domain\";\nimport { useHistory } from \"react-router-dom\";\nimport Loader from \"../../../generic/loader\";\nimport * as esignService from \"../../../service/esign/esignService\";\nimport { asyncGetServiceRequest } from \"../../../service/postLogin/clientProfileAPIService\";\n// import \"../../../assets/scss/components/login/loginScreen/loginHelp.scss\";\nimport tooltipIcon from \"../../../../assets/images/notes-green-small.svg\";\nexport interface ILoginHelpProps {}\nconst types = (name: any) => {\n switch (name) {\n case \"Bank Modification\":\n return \"bank\";\n case \"Email and Phone Update\":\n return \"emailMob\";\n case \"Change of Address\":\n return \"address\";\n case \"Equity Dormant Reactivation\":\n return \"accReact\";\n default:\n return;\n }\n};\nconst Status = (data: any) => {\n if (data.RequestType === \"Email and Phone Update\") {\n switch (data.RequestStatus) {\n case \"None\":\n case \"\":\n case \"PendingForEsign\":\n return { badge: \"orange_bdg\", value: \"Esign Pending\" };\n case \"Approved\":\n return { badge: \"orange_bdg\", value: \"Submit\" };\n case \"Processed\":\n return { badge: \"green_bdg\", value: \"Closed\" };\n case \"Rejected-EsignNotSubmitted\":\n case \"Rejected\":\n return { badge: \"red_bdg\", value: \"Rejected\" };\n case \"EsignSubmitted\":\n return { badge: \"orange_bdg\", value: \"Submit\" };\n case \"AssignedForEsignQC\":\n case \"PendingForProcessing\":\n case \"PushToTarget\":\n case \"EsignVerified\":\n return { badge: \"orange_bdg\", value: \"In Process\" };\n case \"Submitted\":\n return { badge: \"orange_bdg\", value: \"Pending\" };\n default:\n }\n } else if (data.RequestType === \"Bank Modification\") {\n switch (data.RequestStatus) {\n case \"None\":\n case \"\":\n case \"PendingForEsign\":\n return { badge: \"orange_bdg\", value: \"Pending\" };\n case \"Processed\":\n return { badge: \"green_bdg\", value: \"Completed\" };\n case \"Rejected-EsignNotSubmitted\":\n case \"Rejected-Autoexpired\":\n case \"Rejected - Resubmit\":\n case \"Rejected\":\n return { badge: \"red_bdg\", value: \"Rejected\" };\n case \"EsignSubmitted\":\n case \"AssignedForEsignQC\":\n case \"PendingForProcessing\":\n case \"PushToTarget\":\n case \"AssignedToHO\":\n case \"EsignVerified\":\n case \"Resubmitted\":\n case \"Submitted\":\n case \"Approved\":\n return { badge: \"orange_bdg\", value: \"In Process\" };\n default:\n }\n } else if (data.RequestType === \"Change of Address\") {\n switch (data.RequestStatus) {\n case \"None\":\n case \"\":\n case \"PendingForEsign\":\n return { badge: \"orange_bdg\", value: \"Pending\" };\n case \"Processed\":\n return { badge: \"green_bdg\", value: \"Completed\" };\n case \"Rejected-EsignNotSubmitted\":\n case \"Rejected-Autoexpired\":\n case \"Rejected - Resubmit\":\n case \"Rejected\":\n return { badge: \"red_bdg\", value: \"Rejected\" };\n case \"EsignSubmitted\":\n case \"AssignedForEsignQC\":\n case \"PendingForProcessing\":\n case \"PushToTarget\":\n case \"AssignedToHO\":\n case \"EsignVerified\":\n case \"Resubmitted\":\n case \"Submitted\":\n case \"Approved\":\n return { badge: \"orange_bdg\", value: \"In Process\" };\n default:\n }\n } else if (data.RequestType === \"CKYC Update\") {\n switch (data.RequestStatus) {\n case \"None\":\n case \"\":\n case \"Approved\":\n return { badge: \"orange_bdg\", value: \"Submit\" };\n case \"Processed\":\n return { badge: \"green_bdg\", value: \"Completed\" };\n case \"Rejected-Autoexpired\":\n case \"Rejected - Resubmit\":\n case \"Rejected\":\n return { badge: \"red_bdg\", value: \"Rejected\" };\n case \"Approved\":\n case \"Resubmitted\":\n case \"AssignedToHO\":\n case \"InProcess\":\n case \"Submitted\":\n return { badge: \"orange_bdg\", value: \"In Process\" };\n default:\n }\n } else if (data.RequestType === \"FATCA Declaration\") {\n switch (data.RequestStatus) {\n case \"None\":\n case \"\":\n return { badge: \"orange_bdg\", value: \"Submit\" };\n case \"Processed\":\n return { badge: \"green_bdg\", value: \"Completed\" };\n case \"Approved\":\n case \"PushToTarget\":\n case \"PendingForProcessing\":\n return { badge: \"orange_bdg\", value: \"In Process\" };\n case \"Rejected\":\n return { badge: \"red_bdg\", value: \"Rejected\" };\n default:\n }\n } else if (data.RequestType === \"CKYC Update\") {\n switch (data.RequestStatus) {\n case \"None\":\n case \"\":\n case \"Approved\":\n return { badge: \"orange_bdg\", value: \"Submit\" };\n case \"Processed\":\n return { badge: \"green_bdg\", value: \"Completed\" };\n case \"Rejected-Autoexpired\":\n case \"Rejected - Resubmit\":\n case \"Rejected\":\n return { badge: \"red_bdg\", value: \"Rejected\" };\n case \"Approved\":\n case \"Resubmitted\":\n case \"AssignedToHO\":\n case \"InProcess\":\n case \"Submitted\":\n case \"PendingForProcessing\":\n return { badge: \"orange_bdg\", value: \"In Process\" };\n default:\n }\n } else {\n switch (data.RequestStatus) {\n case \"None\":\n case \"\":\n case \"PendingForEsign\":\n return { badge: \"orange_bdg\", value: \"Esign Pending\" };\n case \"Approved\":\n return { badge: \"orange_bdg\", value: \"Submit\" };\n case \"Processed\":\n return { badge: \"green_bdg\", value: \"Closed\" };\n case \"Rejected-EsignNotSubmitted\":\n case \"Rejected\":\n return { badge: \"red_bdg\", value: \"Rejected\" };\n case \"EsignSubmitted\":\n return { badge: \"orange_bdg\", value: \"Submit\" };\n case \"AssignedForEsignQC\":\n case \"PendingForProcessing\":\n case \"PushToTarget\":\n case \"EsignVerified\":\n return { badge: \"orange_bdg\", value: \"In Process\" };\n\n case \"MemorandumPaymentPending\":\n return { badge: \"orange_bdg\", value: \"Pending\" };\n case \"Submitted\":\n return { badge: \"orange_bdg\", value: \"Pending\" };\n default:\n }\n }\n};\n\nconst Table: React.FC = (props) => {\n const [pageData, setPageData] = React.useState([]);\n const [loader, setLoader] = React.useState(false);\n const [show, setShow] = React.useState(false);\n const [reactList, setReactList] = React.useState();\n const history = useHistory();\n\n React.useEffect(() => {\n setPageData(props.sourceData);\n if (props.sourceData && props.sourceData.length > 0) {\n props.sourceData.map(async (data: any) => {\n if (\n data.RequestType === \"Equity Dormant Reactivation\" &&\n (data.RequestStatus === \"Draft Saved\" ||\n data.RequestStatus === \"Approved\" ||\n data.RequestStatus === \"Submitted\" ||\n data.RequestStatus === \"MemorandumPaymentPending\")\n ) {\n const reactList1 = await asyncGetServiceRequest(data.RequestId);\n setReactList(reactList1);\n // reactList = [\n // {\n // createdDate: \"2021-08-11T13:15:00.866044\",\n // RequestId: \"7275\",\n // RequestType: \"FATCA Declaration\",\n // RequestStatus: \"Approved\",\n // ExcepetedDateOfCompletion: null,\n // },\n // {\n // createdDate: \"2021-08-11T13:15:06.118548\",\n // RequestId: \"7276\",\n // RequestType: \"Income Declaration\",\n // RequestStatus: \"Approved\",\n // ExcepetedDateOfCompletion: null,\n // },\n // {\n // createdDate: \"2021-08-11T13:15:12.003338\",\n // RequestId: \"7277\",\n // RequestType: \"Email and Phone Update\",\n // RequestStatus: \"Approved\",\n // ExcepetedDateOfCompletion: null,\n // },\n // {\n // createdDate: \"2021-08-11T13:16:49.67083\",\n // RequestId: \"7278\",\n // RequestType: \"Change of Address\",\n // RequestStatus: \"Approved\",\n // ExcepetedDateOfCompletion: null,\n // },\n // {\n // createdDate: \"2021-08-11T13:17:53.843015\",\n // RequestId: \"7279\",\n // RequestType: \"Bank Modification\",\n // RequestStatus: \"Approved\",\n // ExcepetedDateOfCompletion: null,\n // },\n // ];\n }\n });\n }\n }, [props.sourceData]);\n\n const proceedToEsign = async (appId: any, type: any) => {\n setLoader(true);\n\n let result: any = await esignService.proceedToEsign(\n appId,\n types(type) as any,\n true\n );\n if (!result) openErrorPopup();\n };\n const redirectionToAddress = (sr: any) => {\n if (sr) {\n if (sr.is_digilocker_flow) {\n localStorage.setItem(\"digieResubmit\", \"Yes\");\n }\n history.push(\"service-request/address-modification?srID=\" + sr.RequestId);\n }\n };\n\n const openErrorPopup = () => {\n setLoader(false);\n };\n console.log(reactList);\n\n return (\n <>\n {loader && (\n \n \n
    \n )}\n {!loader && (\n
    \n \n \n \n \n \n \n \n \n \n \n {pageData &&\n pageData.length > 0 &&\n pageData.map((data: any) => {\n return (\n <>\n \n \n \n \n \n \n {((data.RequestType !== \"Online Closure\" &&\n data.creator_remarks) ||\n (data.RequestType === \"Online Closure\" &&\n data.approver_remarks)) && (\n
    \n

    \n

    \n {/* */}\n \n
    \n \n \n Rejection reasons\n \n \n
    \n {data.creator_remarks}\n {data.approver_remarks}\n {/* {data.RequestType === \"Online Closure\"\n ? data.creator_remarks\n : \"\"}\n {data.RequestType !== \"Online Closure\"\n ? data.approver_remarks\n : \"\"} */}\n
    \n
    \n

    \n
    \n )}\n \n {\n if (data.RequestStatus === \"PendingForEsign\")\n proceedToEsign(data.RequestId, data.RequestType);\n }}\n >\n

    \n {\" \"}\n {data.RequestStatus === \"PendingForEsign\" ? (\n {\n if (\n data.RequestType ===\n \"Equity Dormant Reactivation\"\n )\n proceedToEsign(\n data.RequestId,\n data.RequestType\n );\n }}\n className={\n data.RequestStatus === \"PendingForEsign\" ||\n data.RequestType ===\n \"Equity Dormant Reactivation\"\n ? \"cursor link-text bold-text\"\n : \"\"\n }\n >\n Continue to E-sign\n \n ) : (data.RequestType === \"Change of Address\" ||\n data.RequestType === \"Bank Modification\" ||\n data.RequestType === \"CKYC Update\") &&\n data.RequestStatus === \"Rejected - Resubmit\" ? (\n {\n data.RequestType === \"CKYC Update\"\n ? history.push(\n \"service-request/ckyc-update?srID=\" +\n data.RequestId\n )\n : data.RequestType === \"Bank Modification\"\n ? history.push(\n \"service-request/bank-modification?srID=\" +\n data.RequestId\n )\n : redirectionToAddress(data);\n }}\n >\n {\"Continue To Resubmit Process\"}\n \n ) : data.RequestType ===\n \"Equity Dormant Reactivation\" &&\n (data.RequestStatus === \"Draft Saved\" ||\n data.RequestStatus === \"Approved\" ||\n data.RequestStatus === \"InProcess\" ||\n data.RequestStatus ===\n \"MemorandumPaymentPending\") &&\n (data.dormant_type.includes(\"1\") ||\n data.dormant_type.includes(\"6\")) ? (\n data.RequestStatus ===\n \"MemorandumPaymentPending\" ? (\n reactList &&\n (reactList.find(\n (list: any) =>\n list.RequestType === \"Memorandum Recovery\"\n ).RequestStatus ===\n \"MemorandumPaymentPending\" ||\n reactList.find(\n (list: any) =>\n list.RequestType === \"Memorandum Recovery\"\n ).RequestStatus === \"PaymentPending\") ? (\n {\n history.push(\n \"service-request/account-reactivation\"\n );\n }}\n >\n Continue Pending Payment\n \n ) : (\n moment(data.ExcepetedDateOfCompletion).format(\n \"DD MMM, YYYY , hh:mm:ss A\"\n )\n )\n ) : (\n {\n history.push(\n \"service-request/account-reactivation\"\n );\n }}\n >\n Continue Reactivation Process\n \n )\n ) : data.ExcepetedDateOfCompletion ? (\n moment(data.ExcepetedDateOfCompletion).format(\n \"DD MMM, YYYY , hh:mm:ss A\"\n )\n ) : (\n \"\"\n )}\n

    \n \n
    \n \n <>\n {data.RequestType === \"Equity Dormant Reactivation\" &&\n (data.RequestStatus === \"Draft Saved\" ||\n data.RequestStatus === \"Approved\" ||\n data.RequestStatus === \"Submitted\") &&\n reactList &&\n reactList.length > 0 &&\n reactList.map((list: any) => {\n return (\n \n \n \n \n \n {\n if (\n list.RequestStatus === \"PendingForEsign\"\n )\n proceedToEsign(\n list.RequestId,\n list.RequestType\n );\n }}\n >\n

    \n {\" \"}\n {list.RequestStatus ===\n \"PendingForEsign\" ? (\n \n Continue to E-sign\n \n ) : list.ExcepetedDateOfCompletion ? (\n moment(\n list.ExcepetedDateOfCompletion\n ).format(\"DD MMM, YYYY , hh:mm:ss A\")\n ) : (\n \"\"\n )}\n

    \n \n
    \n \n );\n })}\n \n \n );\n })}\n \n
    Request IDRequestExpected Date of Completion
    \n

    \n {moment(data.createdDate).format(\n \"DD MMM, YYYY , hh:mm:ss A\"\n )}\n

    \n
    \n

    {data.RequestId}

    \n {reactList &&\n reactList.length > 0 &&\n data.RequestType ===\n \"Equity Dormant Reactivation\" &&\n (data.RequestStatus === \"Draft Saved\" ||\n data.RequestStatus === \"Approved\" ||\n data.RequestStatus === \"Submitted\") && (\n {\n setShow(!show);\n }}\n >\n {show ? \"Close\" : \"View Details\"}\n \n )}\n
    \n

    \n {data.RequestType === \"Email and Phone Update\"\n ? \"Mobile & Email Modification\"\n : data.RequestType === \"Bank Modification\"\n ? \"Modify Bank Documents\"\n : data.RequestType ===\n \"Equity Dormant Reactivation\"\n ? \"Account Reactivation\"\n : data.RequestType}\n

    \n
    \n
    \n
    \n \n Contact your RM\n \n
    \n \n
    \n
    \n

    \n {moment(list.createdDate).format(\n \"DD MMM, YYYY , hh:mm:ss A\"\n )}\n

    \n
    \n

    {list.RequestId}

    \n {list.RequestType ===\n \"Equity Dormant Reactivation\" &&\n list.RequestStatus === \"Draft Saved\" && (\n \n View Details\n \n )}\n
    \n

    \n {list.RequestType ===\n \"Email and Phone Update\"\n ? \"Mobile & Email Modification\"\n : list.RequestType === \"Bank Modification\"\n ? \"Modify Bank Documents\"\n : list.RequestType ===\n \"Equity Dormant Reactivation\"\n ? \"Account Reactivation\"\n : list.RequestType}\n

    \n
    \n \n {Status(list)?.value}\n \n \n
    \n
    \n \n Contact your RM\n \n
    \n \n
    \n
    \n
    \n )}\n \n );\n};\n\nexport default Table;\n","import React from \"react\";\nimport \"../../assets/scss/components/generic/pagination.scss\";\n\nexport interface IPaginationReturn {\n currentPage: number;\n totalRecords: Array;\n filteredRecords: Array;\n}\n\nexport interface IPaginationProps {\n totalRecords: Array; // the array of records to be paginated\n pageLimit: number; // the number of records to be shown per page\n onPageChange: (paginationData: IPaginationReturn) => void;\n}\n\nexport interface IPaginationState {\n currentPage: number;\n //pages: Array;\n}\n\n/**\n * Helper method for creating a range of numbers\n * range(1, 5) => [1, 2, 3, 4, 5]\n */\nconst range = (from: number, to: number, step = 1) => {\n let i = from;\n const range = [];\n\n while (i <= to) {\n range.push(i);\n i += step;\n }\n\n return range;\n};\n\nclass Pagination extends React.Component {\n totalRecords: Array; // the array of records to be paginated\n filteredRecords: Array; // the array of records to be paginated\n pageLimit: number; // the number of records to be shown per page\n pageNeighbours = 2; // the number of additional page numbers to show on each side of the current page\n totalPages: number;\n\n constructor(props: IPaginationProps) {\n super(props);\n\n // calculate/setup the static values for the pagination\n this.pageLimit = props.pageLimit;\n this.totalRecords = props.totalRecords;\n\n // set filteredRecords initially as elements from 0th index to pageLimit index\n this.filteredRecords = props.totalRecords.slice(0, props.pageLimit);\n\n // total number of pages to be shown\n this.totalPages = Math.ceil(\n this.props.totalRecords.length / this.pageLimit\n );\n\n // default state = page number should be 1s\n this.state = {\n currentPage: 1,\n };\n }\n\n componentDidMount() {\n this.gotoPage(1);\n }\n\n componentDidUpdate(prevProps: any) {\n // Typical usage (don't forget to compare props):\n if (prevProps.totalRecords !== this.props.totalRecords) {\n this.totalRecords = this.props.totalRecords;\n this.totalPages = Math.floor(\n this.props.totalRecords.length / this.pageLimit\n );\n this.gotoPage(1);\n }\n }\n fetchPageNumbers = () => {\n const totalPages = Math.ceil(\n this.props.totalRecords.length / this.pageLimit\n );\n const currentPage = this.state.currentPage;\n const pageNeighbours = this.pageNeighbours;\n\n /**\n * totalNumbers: the total page numbers to show on the control\n * totalBlocks: totalNumbers + 2 to cover for the Prev(<) and Next(>) controls\n */\n const totalNumbers = this.pageNeighbours * 2 + 1;\n const totalBlocks = totalNumbers + 2;\n\n if (totalPages > totalBlocks) {\n const startPage = Math.max(1, currentPage - pageNeighbours);\n const endPage = Math.min(totalPages, currentPage + pageNeighbours);\n\n let pages: Array = range(startPage, endPage);\n\n /**\n * hasLeftSpill: has hidden pages to the left\n * hasRightSpill: has hidden pages to the right\n * spillOffset: number of pages left either to the left or to the right\n * used when starting two or last two pages are selected\n */\n const hasLeftSpill = startPage + 1 > pageNeighbours;\n const hasRightSpill = totalPages - endPage > 0;\n const spillOffset = totalNumbers - pages.length;\n\n switch (true) {\n // handle: \n case !hasLeftSpill && hasRightSpill: {\n const extraPages = range(endPage + 1, endPage + spillOffset);\n return [...pages, ...extraPages, \"NEXT\"];\n }\n\n // handle: \n case hasLeftSpill && hasRightSpill:\n default: {\n return [\"PREV\", ...pages, \"NEXT\"];\n }\n }\n }\n\n return range(1, totalPages);\n };\n\n gotoPage = (page: number) => {\n const { onPageChange } = this.props;\n\n const currentPage = page;\n\n // Create the object to pass in onPageChange\n const paginationData: IPaginationReturn = {\n currentPage,\n totalRecords: this.props.totalRecords,\n filteredRecords: this.totalRecords.slice(\n (currentPage - 1) * this.pageLimit,\n currentPage * this.pageLimit\n ),\n };\n\n // After setting the state, execute the onPageChange function and pass in onPageChange\n this.setState({ currentPage }, () => onPageChange(paginationData));\n };\n\n render() {\n if (this.totalRecords.length === 0 || this.totalPages === 1) return null;\n const { currentPage } = this.state;\n const pages = this.fetchPageNumbers();\n return (\n <>\n \n \n );\n }\n}\n\nexport default Pagination;\n","export default __webpack_public_path__ + \"static/media/received-request.e7295796.svg\";","import React, { useEffect, useState } from \"react\";\nimport request_image from \"../../../assets/images/received-request.svg\";\nimport \"../../../assets/scss/components/clientarea/serviceRequest/serviceRequest.scss\";\nimport { config } from \"../../../config/domain\";\nimport Loader from \"../../generic/loader\";\nimport { useQuery } from \"../../service/urlHelper\";\nimport * as esignService from \"../../service/esign/esignService\";\nimport { ClevertapService } from \"../../service/clevertapService\";\nimport DeviceContext from \"../../service/indentifyDevice\";\nimport moment from \"moment\";\nimport { Idevice } from \"../../types/device\";\n\nconst device: Idevice = DeviceContext();\n\nexport const FinalPopupScreen = (props: any) => {\n const [loader, setLoader] = useState(false);\n const [base64Data, setBase64Data] = useState(\"\");\n const source = useQuery().get(\"source\");\n const clevertapService = new ClevertapService();\n\n useEffect(() => {\n const position = window.pageYOffset;\n if (position > 0) {\n window.scroll({\n top: 0,\n left: 0,\n behavior: \"smooth\",\n });\n }\n return () => {};\n }, []);\n\n useEffect(() => {\n if (props.popupData.refId && !base64Data) {\n if (\n props.popupData.type !== \"accClosure\" &&\n props.popupData.type !== \"ddpi\"\n ) {\n if (!loader) {\n setLoader(true);\n if (props.popupData.type === \"nomination\") setLoader(true);\n esignService\n .downloadEsignDocumentV2(props.popupData.refId, source)\n .then((res: any) => {\n if (res) {\n setLoader(false);\n setBase64Data(res);\n } else {\n window.location.href = config.rootUrl + \"clientarea/servicerequest\"\n // source === \"nsdl_ajs\"\n // ? config.rootUrl + \"clientarea/servicerequest\"\n // : config.root + \"app/clientarea/service-request\";\n }\n })\n .catch((err) => {});\n }\n } else {\n if (!loader) {\n setLoader(true);\n if (props.popupData.type === \"nomination\") setLoader(true);\n esignService\n .downloadEsignDocJMW(props.popupData.refId, source)\n .then((res: any) => {\n if (res) {\n if (props.popupData.type === \"nomination\") setLoader(false);\n setLoader(false);\n setBase64Data(res);\n } else {\n window.location.href = config.rootUrl + \"clientarea/servicerequest\";\n // source === \"nsdl_ajs\"\n // ? config.rootUrl + \"clientarea/servicerequest\"\n // : config.root + \"app/clientarea/service-request\";\n }\n })\n .catch((err) => {\n window.location.href = config.rootUrl + \"clientarea/servicerequest\";\n // source === \"nsdl_ajs\"\n // ? config.rootUrl + \"clientarea/servicerequest\"\n // : config.root + \"app/clientarea/service-request\";\n });\n }\n }\n } \n else if (props.popupData.type == \"nomination\") {\n let nomPdf = localStorage.getItem(\"nomPdf\") || \" \"\n if (nomPdf !== \" \" && nomPdf !== undefined) {\n localStorage.removeItem(\"srId\"); \n localStorage.removeItem(\"signature\")\n setBase64Data(nomPdf);\n // esignService.getPreFilledFormNomination(srId)\n // .then((res: any) => {\n // if (res) {\n // if (props.popupData.type === \"nomination\") setLoader(false);\n // setLoader(false);\n // localStorage.removeItem(\"srId\"); \n // localStorage.removeItem(\"signature\")\n // setBase64Data(res.data.fileData);\n // }\n // })\n // .catch((err) => {\n // window.location.href = config.rootUrl + \"clientarea/servicerequest\";\n // // source === \"nsdl_ajs\"\n // // ? config.rootUrl + \"clientarea/servicerequest\"\n // // : config.root + \"app/clientarea/service-request\";\n // });\n }\n }\n else if (\n props.popupData.base64Data &&\n props.popupData.type == \"bankModification\"\n ) {\n setBase64Data(props.popupData.base64Data);\n }\n }, [props.popupData]);\n\n const handleClick = async () => {\n try {\n setLoader(true);\n if (base64Data) {\n if (props.popupData.btnText == \"Download form for your reference\") {\n esignService.base64toPDF(base64Data, \"PrefilledForm\");\n } \n else if (props.popupData.btnText == \"Download Pre-filled form\") {\n esignService.base64toPDF(base64Data, \"PrefilledNomForm\");\n localStorage.removeItem(\"nomPdf\"); \n }\n else esignService.base64toPDF(base64Data, \"EsignedForm\");\n }\n window.location.href = config.rootUrl + \"clientarea/servicerequest\";\n // source === \"nsdl_ajs\"\n // ? config.rootUrl + \"clientarea/servicerequest\"\n // : config.root + \"app/clientarea/service-request\";\n setLoader(false);\n } catch (error) {\n window.location.href = config.rootUrl + \"clientarea/servicerequest\";\n // source === \"nsdl_ajs\"\n // ? config.rootUrl + \"clientarea/servicerequest\"\n // : config.root + \"app/clientarea/service-request\";\n setLoader(false);\n }\n };\n\n const triggerClvrTap = () => {\n var data = {\n EventName: \"Successful_SR\",\n InitiationElement: \"SrFinal_Popup_Close\",\n InitiationScreen: window.location.pathname,\n LoginType: \"Traditional\",\n SrType: props.popupData.type?.replace(\" \", \"_\"),\n currentTime: moment().format(\"DD/MM/YYYY HH:mm:ss\"),\n Platform: window.localStorage.getItem(\"lgnSrc\")\n ? window.localStorage.getItem(\"lgnSrc\")\n : device.isMobile\n ? \"Website_Mobile\"\n : \"Website_Desktop\",\n };\n clevertapService.pushEvent(data);\n };\n\n return (\n <>\n {loader && (\n \n \n
    \n )}\n {!loader && props.popupData.popUp2 && (\n
    \n {props.popupData && props.popupData.type && (\n
    {props.popupData.type}
    \n )}\n {props.popupData && props.popupData.iconName && (\n
    \n \n \n \n \n \n
    \n )}\n {props.popupData && props.popupData.content && (\n
    \n
    \n {props.popupData.content}\n
    \n
    \n )}\n {props.popupData && props.popupData.contentBold && (\n
    \n
    \n {props.popupData.contentBold}\n
    \n
    \n )}\n {props.popupData &&\n props.popupData.redirectionLink &&\n props.popupData.redirectionText && (\n \n )}\n
    \n )}\n {!loader && !props.popupData.popUp2 && (\n
    \n {props.popupData && props.popupData.headerText && (\n
    \n
    \n \n
    \n
    \n

    {props.popupData.headerText}

    \n
    \n
    \n )}\n {props.popupData && props.popupData.content && (\n
    \n

    \n {props.popupData.content}\n

    \n
    \n )}\n
    \n {props.popupData && props.popupData.btnText && (\n
    \n {\n if (\n props.popupData.type &&\n props.popupData.type !== \"emailMob\" &&\n props.popupData.type !== \"bank\" &&\n props.popupData.type !== \"address\" &&\n props.popupData.type !== \"accReact\" &&\n props.popupData.type !== \"accReactPay\" &&\n props.popupData.type !== \"nomination\" &&\n props.popupData.type !== \"accClosure\" &&\n props.popupData.type !== \"ddpi\" &&\n props.popupData.type !== \"bankModification\"\n ) {\n props.onClick();\n } else {\n handleClick();\n }\n }}\n >\n \n {props.popupData.btnText}\n \n
    \n )}\n {props.popupData.type === \"accReact\" ? (\n
    \n

    \n {\" \"}\n In case you want to update bank details, please{\" \"}\n \n click here\n \n

    \n
    \n ) : (\n <>\n )}\n
    \n
    \n )}\n \n );\n};\n","import bStrg, { parsedToken } from \"../storageHelper\";\nimport { apiAService } from \"../apiService\";\nimport urlConfig from \"../../../config/domain\";\nimport { appIdKey, jwtToken } from \"../../types/genericTypes\";\n\nconst pToken: jwtToken | null = parsedToken(),\n userID = pToken ? pToken.username : null,\n appInfo: appIdKey = bStrg(\"appInfo\");\n\nexport const GenerateLead = async (payload: any) => {\n return await apiAService({\n url: `${urlConfig.merceApiUrl}saveleadinfo`,\n method: \"POST\",\n authType: \"bearer\",\n body: payload,\n });\n};\n","import * as React from \"react\";\nimport EdButton, { EdLinkButton } from \"../../../generic/edButton\";\nimport { EResetSubmitState } from \"../../../login/loginConstants\";\nimport Search from \"../../../generic/search\";\nimport Table from \"./table\";\nimport Pagination from \"../../../generic/pagination\";\nimport EdModal from \"../../../generic/edModal\";\nimport { FinalPopupScreen } from \"../../generic/finalPopupScreeen\";\nimport { GenerateLead } from \"../../../service/gba/gbaApiService\";\n// @ts-ignore\nimport * as XMLParser from \"react-xml-parser\";\nimport { logout } from \"../../../service/login/loginService\";\nimport { config } from \"../../../../config/domain\";\nimport { getServicingDetails } from \"../../../service/serviceRequest/srApiService\";\nimport { AccountReactivationConsent } from \"../accReactivate/accReactCnst\";\nexport interface IChangePasswordScreenProps {}\n\nexport interface IChangePasswordScreenState {\n errorMsg?: string;\n popupMessage?: string;\n submitState?: EResetSubmitState;\n}\n\nconst SRContainer: React.FC = (props) => {\n const [accType, selectedAccType] = React.useState(\"\");\n const [selectedStatus, setSelectedStatus] = React.useState(\"All\");\n const [serviceList, setServiceList] = React.useState();\n const [searchList, setSearchList] = React.useState({ data: [], name: \"\" });\n const [filterData, setFilterData] = React.useState([]);\n const [open, setOpen] = React.useState(false);\n const [accTypeList, setAccTypeList] = React.useState([]);\n const [lead, setLead] = React.useState();\n const [error, setError] = React.useState(false);\n const [changeAcc, setChangeAcc] = React.useState({});\n const [rmName, setRMName] = React.useState();\n async function getRMName() {\n let details = await getServicingDetails();\n if (details) {\n setRMName(details.tradingDealerNameField);\n }\n }\n\n React.useEffect(() => {\n getRMName();\n selectedAccType(props.accType);\n setAccTypeList(props.accList);\n setServiceList({\n All: props.serviceReq,\n Approved:\n props.serviceReq.length > 0\n ? props.serviceReq.filter(\n (req: any) => req.RequestStatus === \"Approved\"\n )\n : [],\n Processed:\n props.serviceReq.length > 0\n ? props.serviceReq.filter(\n (req: any) => req.RequestStatus === \"Processed\"\n )\n : [],\n });\n }, [props.accType]);\n React.useEffect(() => {}, [selectedStatus]);\n\n const leadGenerate = async () => {\n const { emailAddressField, nameField, mobileNumberField } = props.profile;\n const payload = {\n Email: emailAddressField,\n Name: nameField,\n Phone: mobileNumberField,\n ProductNames: changeAcc.display,\n ProductPage: \"EWINNONCLIENT\",\n };\n try {\n const xmlText = await GenerateLead(payload);\n const leadRes = new XMLParser().parseFromString(xmlText);\n leadRes.value === \"Success\" ? setLead(true) : setLead(false);\n } catch (err) {\n setError(true);\n }\n };\n\n function closeModal() {\n setError(false);\n setOpen(false);\n }\n const accList = [\n { value: \"EQ\", display: \"Equity\" },\n { value: \"CO\", display: \"COMMODITIES\" },\n ];\n const statusFilterList = [\n { value: \"All\", display: \"All\" },\n { value: \"Processed\", display: \"Closed\" },\n { value: \"Approved\", display: \"Pending\" },\n ];\n const ModalBody = () => {\n return (\n
    \n
    \n {lead === undefined &&\n !error &&\n !accTypeList.includes(changeAcc.value) && (\n <>\n
    \n

    \n You will need a {changeAcc.display} account to transact in{\" \"}\n {accType === \"EQ\" ? \"commodities\" : \"equities\"}.\n

    \n {\n setOpen(false);\n }}\n title=\"Close\"\n className=\"cancel\"\n >\n \n \n
    \n
    \n
    \n

    Would you like to open one now?

    \n
    \n
    \n leadGenerate()}\n />\n {\n setOpen(false);\n }}\n />\n
    \n
    \n \n )}\n {lead && (\n \n )}\n {lead === false && (\n \n )}\n\n {error && lead === undefined && (\n \n )}\n\n {accList.length > 1 && accTypeList.includes(changeAcc.value) && (\n <>\n {\" \"}\n
    \n

    \n Do you want to login to your {changeAcc.display} account ?\n

    \n {\n setOpen(false);\n }}\n title=\"Close\"\n className=\"cancel\"\n >\n \n \n
    \n
    \n
    \n {\n logout();\n window.location.href = `${config.rootUrl}?ottype=service-request`;\n }}\n />\n {\n setOpen(false);\n }}\n />\n
    \n
    \n \n )}\n
    \n
    \n );\n };\n return (\n <>\n
    \n
    \n
    \n

    Service Requests

    \n\n
    \n
      \n {accList.map((tag) => (\n {\n setChangeAcc(tag);\n setOpen(true);\n }}\n >\n \n {tag.display}\n \n \n ))}\n
    \n
    \n\n
    \n
    \n \n {searchList.name === \"\" && (\n
    \n {serviceList && (\n \n )}\n {serviceList && serviceList.All.length === 0 && (\n No service Request\n )}\n
    \n )}\n\n
    \n {serviceList && serviceList.All.length > 0 && (\n {\n setSearchList({\n data,\n name,\n });\n }}\n searchKey={\"RequestType\"}\n searchList={[serviceList[\"All\"]]}\n placeholder=\"Search\"\n />\n )}\n
    \n
    \n
    \n\n {serviceList && serviceList.All.length > 0 && (\n \n )}\n
    \n
    \n
    \n {serviceList && serviceList[selectedStatus].length > 0 && (\n {\n setFilterData(newdata.filteredRecords);\n }}\n />\n )}\n
    \n
    \n {/* */}\n {\n setOpen(false);\n }}\n children={ModalBody()}\n />\n \n );\n};\n\nexport default SRContainer;\n","import * as React from \"react\";\nimport NavBar from \"./serviceRequest/srScreens/navbar\";\nimport SRContainer from \"./serviceRequest/srScreens/srContainer\";\nimport moment from \"moment\";\nimport { getAccData } from \"../service/login/loginService\";\nimport {\n asyncGetPersonalDetails,\n asyncGetMessageDetails,\n asyncGetServiceRequest,\n} from \"../service/postLogin/clientProfileAPIService\";\nimport Loader from \"../generic/loader\";\nimport EdModal from \"../generic/edModal\";\nimport { FinalPopupScreen } from \"./generic/finalPopupScreeen\";\nimport { config } from \"../../config/domain\";\nimport {\n GetEsignStatus,\n getEsignStatusJMW,\n getMemorandumDetails,\n updateAccReactStatus,\n} from \"../service/serviceRequest/srApiService\";\nimport { setInterval } from \"timers\";\nimport { Idevice } from \"../types/device\";\nimport DeviceContext from \"../service/indentifyDevice\";\nimport { ClevertapService } from \"../service/clevertapService\";\n\nconst device: Idevice = DeviceContext();\nconst clevertapService = new ClevertapService();\nconst statusList: any = {\n emailMob:\n \"Your request will be updated within TWO working days. Status of your request will be communicated through Email\",\n bank: \"Your request will be updated within TWO working days. Status of your request will be communicated through Email\",\n address:\n \"Your request will be updated within TWO working days. Status of your request will be communicated through Email\",\n accReact:\n \"Your request will be updated within FIVE working days. Status of your request will be communicated through Email\",\n accReactPay:\n \"Your request will be updated within FIVE working days. Status of your request will be communicated through Email\",\n nomination:\n \"Your request will be updated within TWO working days. Status of your request will be communicated through Email\",\n outstandingMsg: \"We are verifying your Esign details.\",\n accClosure:\n \"Your request will be updated within 3 working days. Status of your request will be communicated through Email.\",\n ddpi: \"Your request has been received. We may take upto 2 days to update your accounts\",\n};\n\nclass ClientAreaCtrl extends React.Component {\n constructor(props: any) {\n super(props);\n this.state = {\n isLoggedIn: false,\n serviceReq: [],\n profile: {},\n messages: [],\n accData: {},\n accList: [],\n outstanding: false,\n showStatusPopup: false,\n refID: \"\",\n intervalId: \"5sec\",\n };\n }\n\n async componentDidMount() {\n const urlSearchParams = new URLSearchParams(this.props.location.search);\n const params = Object.fromEntries(urlSearchParams.entries());\n if (\n params.source &&\n params.hasOwnProperty(\"appID\") &&\n params.mod &&\n params.mod === \"accReact\"\n ) {\n var intervalId = setInterval(async () => {\n if (this.state.intervalId) this.initialCall(params);\n }, 2000);\n\n this.setState({ intervalId });\n } else this.initialCall(params);\n }\n\n initialCall = async (params: any) => {\n let isStatusUpdated = false;\n const serviceReq = await asyncGetServiceRequest();\n\n if (params.source && params.hasOwnProperty(\"appID\") && params.mod) {\n if (params.mod === \"accReact\") {\n let resTotalNet = await getMemorandumDetails();\n const sr = serviceReq.filter(\n (srReq: any) =>\n srReq.RequestType === \"Equity Dormant Reactivation\" &&\n (srReq.RequestStatus === \"EsignVerified\" ||\n srReq.RequestStatus === \"EsignSubmitted\" ||\n srReq.RequestStatus === \"QCPending\")\n )[0];\n if (sr && sr.RequestId) {\n isStatusUpdated = true;\n this.setState({ intervalId: \"\" });\n clearInterval(this.state.intervalId);\n }\n const childServiceReq = await asyncGetServiceRequest(sr.RequestId);\n const ckyc = childServiceReq.find(\n (req: any) => req.RequestType === \"CKYC Update\"\n );\n\n let reqObj: any = {\n dormant_type: sr.dormant_type,\n parent_id: sr.RequestId,\n };\n\n if (sr) {\n if (sr.dormant_type === \"1\") {\n reqObj = {\n ...reqObj,\n ckycSRId: ckyc?.RequestId ? ckyc.RequestId : 0,\n ckycStatus: ckyc?.RequestStatus ? ckyc.RequestStatus : \"None\",\n requestType: \"UpdateMemorandum\",\n };\n if (\n resTotalNet.result &&\n Number(resTotalNet.result[0].Total_NET_Outstanding) > 0\n ) {\n this.setState({ outstanding: true });\n }\n }\n if (\n sr.dormant_type === \"1\" &&\n resTotalNet.result &&\n Number(resTotalNet.result[0].Total_NET_Outstanding) > 0\n ) {\n if ([\"EsignVerified\"].includes(sr.RequestStatus)) {\n return this.props.history.push(\n \"service-request/account-reactivation\"\n );\n } else {\n const sr = serviceReq.filter(\n (srReq: any) =>\n srReq.RequestId ===\n String(atob(window.location.href.split(\"appID=\")[1]))\n )[0];\n await this.redirectToPopup(sr.EsignRefId);\n // this.setState({ showStatusPopup: true });\n }\n } else {\n if (\n [\"EsignVerified\"].includes(sr.RequestStatus) ||\n [\"QCPending\"].includes(sr.RequestStatus)\n ) {\n updateAccReactStatus(reqObj)\n .then(async (res) => {\n const serReq = serviceReq.filter(\n (srReq: any) =>\n srReq.RequestId ===\n String(atob(window.location.href.split(\"appID=\")[1]))\n )[0];\n await this.redirectToPopup(serReq.EsignRefId);\n // this.setState({ showStatusPopup: true });\n })\n .catch(async (err) => {\n const serReq = serviceReq.filter(\n (srReq: any) =>\n srReq.RequestId ===\n String(atob(window.location.href.split(\"appID=\")[1]))\n )[0];\n await this.redirectToPopup(serReq.EsignRefId);\n // this.setState({ showStatusPopup: true });\n });\n } else {\n const sr = serviceReq.filter(\n (srReq: any) =>\n srReq.RequestId ===\n String(atob(window.location.href.split(\"appID=\")[1]))\n )[0];\n await this.redirectToPopup(sr.EsignRefId);\n // this.setState({ showStatusPopup: true });\n }\n }\n } else {\n await this.props.history.push(\"service-request\");\n }\n } else if (params.mod === \"nomination\") {\n isStatusUpdated = true;\n let reqObj = { requestType: \"NominationSuccess\" };\n updateAccReactStatus(reqObj)\n .then(async (res) => {\n const sr = serviceReq.filter(\n (srReq: any) =>\n srReq.RequestId ===\n String(atob(window.location.href.split(\"appID=\")[1]))\n )[0];\n await this.redirectToPopup(sr.EsignRefId);\n // this.setState({ showStatusPopup: true });\n })\n .catch(async (err) => {\n const sr = serviceReq.filter(\n (srReq: any) =>\n srReq.RequestId ===\n String(atob(window.location.href.split(\"appID=\")[1]))\n )[0];\n await this.redirectToPopup(sr.EsignRefId);\n // this.setState({ showStatusPopup: true });\n });\n } else if (params.mod === \"accReactPay\") {\n const sr = serviceReq.filter(\n (srReq: any) =>\n srReq.RequestId ===\n String(atob(window.location.href.split(\"appID=\")[1]))\n )[0];\n isStatusUpdated = true;\n await this.redirectToPopup(sr.EsignRefId);\n } else {\n console.log(\n 'String(atob(window.location.href.split(\"appID=\")[1]))',\n String(atob(window.location.href.split(\"appID=\")[1]))\n );\n\n const sr = serviceReq.filter(\n (srReq: any) =>\n srReq.RequestId ===\n String(atob(window.location.href.split(\"appID=\")[1]))\n )[0];\n isStatusUpdated = true;\n // console.log(\"sr\", sr);\n await this.redirectToPopup(sr.EsignRefId);\n }\n } else isStatusUpdated = true;\n\n if (isStatusUpdated) {\n const message = await asyncGetMessageDetails();\n const profile = await asyncGetPersonalDetails();\n const accData = await getAccData();\n var accList = \"\";\n if (localStorage.getItem(\"AccList\")) {\n var acntLst = localStorage.getItem(\"AccList\") || \"\";\n accList = JSON.parse(acntLst);\n }\n this.setState({\n serviceReq: serviceReq.length > 0 ? serviceReq.reverse() : [],\n message,\n profile,\n accData,\n accList,\n });\n this.setState({ serviceReq, message, profile, accData, accList });\n }\n };\n\n triggerClvrTap = (type: string) => {\n var data = {\n EventName: \"Successful_SR\",\n InitiationElement: \"SrClientArea_Popup_Close\",\n InitiationScreen: window.location.pathname,\n LoginType: \"Traditional\",\n SrType: type?.replace(\" \", \"_\"),\n currentTime: moment().format(\"DD/MM/YYYY HH:mm:ss\"),\n Platform: window.localStorage.getItem(\"lgnSrc\")\n ? window.localStorage.getItem(\"lgnSrc\")\n : device.isMobile\n ? \"Website_Mobile\"\n : \"Website_Desktop\",\n };\n clevertapService.pushEvent(data);\n };\n redirectToDash = () => {\n window.location.href = window.location.href.includes(\"source=nsdl_ajs\")\n ? config.rootUrl + \"clientarea/servicerequest\"\n : config.root + \"/clientarea/service-request\";\n };\n\n redirectToPopup = async (refId: any) => {\n const urlSearchParams = new URLSearchParams(this.props.location.search);\n const params = Object.fromEntries(urlSearchParams.entries());\n\n if (params.mod === \"accClosure\") {\n if (refId) {\n // console.log(\"inside.............\");\n\n let res = await getEsignStatusJMW(refId);\n\n if (\n res.data &&\n JSON.parse(res.data.value).Data.status === \"COMPLETED\"\n ) {\n this.setState({ showStatusPopup: true });\n this.setState({ refID: refId });\n } else {\n this.redirectToDash();\n }\n } else {\n this.redirectToDash();\n }\n } else {\n if (refId) {\n let res = await GetEsignStatus(refId);\n if (res.Data.status === \"COMPLETED\") {\n this.setState({ showStatusPopup: true });\n this.setState({ refID: refId });\n } else {\n this.redirectToDash();\n }\n } else {\n this.redirectToDash();\n }\n }\n };\n\n render() {\n const {\n serviceReq,\n message,\n profile,\n accData,\n accList,\n showStatusPopup,\n }: any = this.state;\n\n const StatusPopup = () => {\n return (\n
    \n
    \n
    \n
    \n {\n this.triggerClvrTap(\n window.location.href.split(\"&\")[0].split(\"mod=\")[1]\n );\n }}\n title=\"Close\"\n className=\"cancel\"\n >\n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n );\n };\n return (\n <>\n
    \n \n
    \n
    \n {accData.accTyp ? (\n \n ) : (\n
    \n \n
    \n )}\n
    \n
    \n
    \n {}}\n children={StatusPopup()}\n />\n \n );\n }\n}\n\nexport default ClientAreaCtrl;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport Cropper from \"react-cropper\";\nimport \"cropperjs/dist/cropper.css\";\nimport EdModal from \"../../generic/edModal\";\n\nexport const FileUploadSection = (props: any) => {\n const [docUploaded, setDocUploaded] = useState(false);\n const [docUploadError, setDocUploadError] = useState(false);\n const [fileTypeUploadError, setFileTypeUploadError] = useState(false);\n const [fileError, setFileError] = useState(false);\n const [fileTypeError, setFileTypeError] = useState(false);\n const [fileNameError, setFileNameError] = useState(false);\n const [showModal, setShowModal] = useState(false);\n const [fileSize, setFileSize] = useState(1048576);\n const [docFile, setDocFile] = useState(\"\");\n const [fileData, setFileData] = useState(\"\");\n const [cropData, setCropData] = useState(\"#\");\n const [cropper, setCropper] = useState();\n\n useEffect(() => {\n if (props.dropValChanged) {\n resetForm();\n }\n }, [props.dropValChanged]);\n useEffect(() => {\n if (props.fileSize) {\n setFileSize(props.fileSize);\n }\n }, [props.fileSize]);\n useEffect(() => {\n if (props.fileName) {\n setDocUploaded(true);\n setDocFile(props.fileName);\n }\n }, []);\n\n const resetForm = () => {\n setDocUploaded(false);\n setDocFile(\"\");\n setFileError(false);\n setDocUploadError(false);\n setFileTypeError(false);\n setFileNameError(false);\n setFileTypeUploadError(false);\n };\n const onSelectFile = (e: React.ChangeEvent) => {\n uploadFile(e.target.files![0]);\n };\n const uploadFile = (file: File) => {\n resetForm();\n const regex = /^[a-zA-Z0-9-_ ]*$/;\n if (file && file.name.split(\".\").length === 2) {\n var extensions = file.name.split(\".\");\n if(!props.fileType.find((val: any) => extensions[1].toLowerCase() === val)){\n setFileTypeError(true);\n return;\n }\n if(!(regex.test(extensions[0]))){\n setFileNameError(true);\n return;\n }\n }\n\n if (\n file.size > fileSize ||\n !props.fileType.find((val: any) => file.type.split(\"/\")[1] === val)\n ) {\n setDocUploadError(true);\n // if file size is more than 1MB:\n if (!fileError) setFileError(true);\n return;\n }\n\n if (fileError) setFileError(false);\n if (props.secondFileName) {\n if (!props.secondFileName.split(\".\")[1].match(file.name.split(\".\")[1])) {\n setFileTypeUploadError(true);\n return;\n }\n }\n setDocFile(file.name);\n let reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n setDocUploaded(true);\n if (\n props.crop &&\n (file.type === \"image/jpeg\" || file.type === \"image/jpg\")\n ) {\n setFileData(reader.result as string);\n setShowModal(true);\n } else {\n props.onSubmit({\n base64Data: reader.result as string,\n docFile: file.name,\n });\n }\n };\n\n reader.onerror = () => {\n setDocUploadError(true);\n };\n };\n\n const removeUplFile = () => {\n if (docFile) {\n props.onSubmit({\n base64Data: \"\",\n docFile: \"\",\n });\n }\n resetForm();\n };\n\n const dropHandler = (e: React.DragEvent) => {\n e.preventDefault();\n\n if (e.dataTransfer.items) {\n for (let i = 0; i < e.dataTransfer.items.length; i++) {\n if (e.dataTransfer.items[i].kind === \"file\") {\n uploadFile(e.dataTransfer.items[i].getAsFile()!);\n }\n }\n }\n };\n const cropperRef = useRef(null);\n const onCrop = () => {\n const imageElement: any = cropperRef?.current;\n const cropper: any = imageElement?.cropper;\n // console.log(cropper.getCroppedCanvas().toDataURL());\n };\n\n const getCropData = () => {\n if (typeof cropper !== \"undefined\") {\n setCropData(cropper.getCroppedCanvas().toDataURL());\n\n props.onSubmit({\n base64Data: cropper.getCroppedCanvas().toDataURL(),\n docFile: docFile,\n });\n setShowModal(false);\n }\n };\n const cropperModal = () => {\n return (\n <>\n <>\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    Sign.jpeg

    \n
    \n
      \n
    • \n {\n const imageElement: any = cropperRef?.current;\n const cropper: any = imageElement?.cropper;\n cropper.zoom(0.1);\n }}\n >\n \n \n
    • \n
    • \n {\n const imageElement: any = cropperRef?.current;\n const cropper: any = imageElement?.cropper;\n cropper.zoom(-0.1);\n }}\n >\n \n \n
    • \n
    • \n {\n const imageElement: any = cropperRef?.current;\n const cropper: any = imageElement?.cropper;\n cropper.rotate(45);\n }}\n >\n \n \n
    • \n
    \n
    \n {\n removeUplFile();\n setShowModal(false);\n }}\n title=\"Close\"\n className=\"cancel sign-cross-button\"\n >\n \n \n
    \n
    \n
    \n {\n setCropper(instance);\n }}\n />\n
    \n
    \n \n Upload\n \n
    \n
    \n
    \n
    \n
    \n \n \n );\n };\n\n return (\n <>\n {!docUploaded && (\n e.preventDefault()}\n onDragEnter={(e) => e.preventDefault()}\n >\n ((e.target as HTMLInputElement).value = \"\")}\n />\n
    \n

    Drag and drop your document or

    \n

    \n Click Here \n to browse\n

    \n

    \n {\".\" + props.fileType.join(\", .\")} (Max Size {fileSize/1048576}MB)\n

    \n
    \n \n )}\n {docUploadError && (\n
    \n

    \n Document size exceeds maximum limit of {fileSize/1048576}MB. Please upload it again!\n

    \n
    \n )}\n {fileTypeUploadError && (\n
    \n

    \n The uploaded files types are not matching. Please upload same types\n of files!\n

    \n
    \n )}\n {fileTypeError && (\n
    \n

    \n Please upload only {\".\" + props.fileType.join(\", .\")} document!\n

    \n
    \n )}\n {fileNameError && (\n
    \n

    \n File names can contain alphanumeric characters and only the special characters hyphen (-) and underscore (_). Please update the file name and upload it again.\n

    \n
    \n )}\n {docFile && (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    {docFile}

    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n )}\n\n {}}\n children={cropperModal()}\n // modalClsNm={\"absoluteModal\"}\n />\n \n );\n};\n","import { apiAService } from \"../apiService\";\nimport urlConfig from \"../../../config/domain\";\nimport { jwtToken } from \"../../types/genericTypes\";\nimport LoginService from \"../login/loginService\";\n\nlet pToken: jwtToken | null = LoginService.pToken,\n userID = pToken ? pToken.username : null;\n\n//after redirect reinstate pToken with parsed jwt token\nconst pTokenCheck = (paramChk?: keyof jwtToken) => {\n if (!pToken) {\n pToken = LoginService.pToken;\n userID = pToken ? pToken.username : null;\n }\n return paramChk && pToken ? pToken[paramChk] : pToken;\n};\n\nexport const getCountryList = async (Enum: any) => {\n return await apiAService({\n url: urlConfig.general.enumMaster,\n method: \"POST\",\n body: {\n \"enumname\": Enum\n }\n })\n}\nexport const getDistinctBanklist = async () => {\n return await apiAService({\n url: urlConfig.general.distinctBanklist,\n method: \"POST\",\n // authType: \"bearer\",\n });\n}\nexport const getBankListForIfsc = async (payload: any) => {\n return await apiAService({\n url: urlConfig.general.bankListForIfsc,\n method: \"POST\",\n // authType: \"bearer\",\n body: payload,\n });\n}\n\nexport const getbankCities = async (payload: any) => {\n return await apiAService({\n url: urlConfig.general.bankCities,\n method: \"POST\",\n // authType: \"bearer\",\n body: payload,\n });\n}\n\nexport const getbankBranch = async (payload: any) => {\n return await apiAService({\n url: urlConfig.general.bankBranch,\n method: \"POST\",\n // authType: \"bearer\",\n body: payload,\n });\n}\n\nexport const checkPennyDrop = async (payload: any) => {\n return await apiAService({\n url: urlConfig.general.beneficiaryNamePichain,\n method: \"POST\",\n //authType: \"pappid\",\n authType: \"authtoken\",\n body: payload,\n appidkey: urlConfig.appidkey,\n source: sessionStorage.getItem(\"source\") || undefined,\n });\n}\n\nexport const saveBankDetails = async (payload: any) => {\n return await apiAService({\n url: urlConfig.general.saveBankDetails,\n method: \"POST\",\n // authType: \"bearer\",\n body: payload,\n });\n}\n\nexport const getBankDetails = async (payload: any) => {\n return await apiAService({\n url: urlConfig.general.BankDetails,\n method: \"POST\",\n authType: \"bearer\",\n body: payload,\n });\n}\n\nexport const getFullAddress = async (payload: any) => {\n return await apiAService({\n url: urlConfig.general.fullAddressDetails,\n method: \"POST\",\n body: payload\n })\n}\nexport const getArea = async (pincode: any) => {\n return await apiAService({\n url: urlConfig.general.areaDetails,\n method: \"POST\",\n body: {\n \"pinCode\": pincode\n }\n })\n}\nexport const generateAccessTokenDetails = async (payload: any) => {\n return await apiAService({\n url: urlConfig.general.generateAccessToken,\n method: \"POST\",\n body: payload,\n })\n}\nexport const getDocListFromDigilocker = async (payload: any) => {\n return await apiAService({\n url: urlConfig.general.getDocListFromDigilocker,\n method: \"POST\",\n body: payload,\n })\n}\nexport const getSelectedDocument = async (payload: any) => {\n return await apiAService({\n url: urlConfig.general.getSelectedDocument,\n method: \"POST\",\n body: payload,\n })\n}\nexport const AGenerateAccessToken = async (accessTokenObj: object) => {\n return await apiAService({\n url: urlConfig.general.generateAccessToken,\n body: accessTokenObj,\n method: \"POST\",\n });\n}\nexport const AGetDocListFromDigilocker = async (digilockerObj: object) => {\n return await apiAService({\n url: urlConfig.general.getDocListFromDigilocker,\n body: digilockerObj,\n method: \"POST\",\n });\n}\n// export const getSelectedDocument = async( digilockerObj: object) => {\n// return await apiAService({\n// url: urlConfig.general.getSelectedDocument,\n// body: digilockerObj,\n// method: \"POST\",\n// });\n// }\n\nexport const extractCheque = async (payload: object) => {\n return await apiAService({\n url: urlConfig.general.getExtractCheque,\n method: \"POST\",\n authType: \"pappid\",\n body: payload,\n });\n}\nexport const getExtractaadhaar = async (payload: object) => {\n return await apiAService({\n url: urlConfig.general.getExtractaadhaarDetails,\n method: \"POST\",\n authType: \"pappid\",\n body: payload,\n });\n}\nexport const getExtractVoterID = async (payload: object) => {\n return await apiAService({\n url: urlConfig.general.getExtractVoterIDDetails,\n method: \"POST\",\n authType: \"pappid\",\n body: payload,\n });\n}\n\nexport const getExtractPassport = async (payload: object) => {\n return await apiAService({\n url: urlConfig.general.getExtractPassportDetails,\n method: \"POST\",\n authType: \"pappid\",\n body: payload,\n });\n}\nexport const getExtractDL = async (payload: object) => {\n return await apiAService({\n url: urlConfig.general.getExtractDLDetails,\n method: \"POST\",\n authType: \"pappid\",\n body: payload,\n });\n}\nexport const maskedAadhaar = async (payload: object) => {\n return await apiAService({\n url: urlConfig.general.maskAadhaarLDetails,\n method: \"POST\",\n authType: \"pappid\",\n body: payload,\n });\n}\nexport const getDigiLockerDetails = async (reqObj: object) => {\n return await apiAService({\n url: urlConfig.profile.fetchDigiLockerDetails,\n method: \"POST\",\n authType: \"bearer\",\n body: reqObj,\n });\n}\nexport const getIPVOTP = async () => {\n return await apiAService({\n url: urlConfig.profile.GetIPVOTP,\n method: \"GET\",\n authType: \"bearer\"\n });\n}","import {\n extractCheque,\n getExtractaadhaar,\n getExtractDL,\n getExtractPassport,\n getExtractVoterID,\n maskedAadhaar,\n} from \"../../service/generic/otherApi\";\nexport const getDocumentCategory = (proof: any, documentCategory: any) => {\n if (proof === \"Aadhar\") {\n documentCategory.name = \"Aadhar\";\n documentCategory.id = 117;\n } else if (proof === \"VotersId\") {\n documentCategory.name = \"VotersId\";\n documentCategory.id = 116;\n } else if (proof === \"Passport\") {\n documentCategory.name = \"Passport\";\n documentCategory.id = 114;\n } else if (proof === \"DrivingLicense\") {\n documentCategory.name = \"DrivingLicense\";\n documentCategory.id = 118;\n }\n return documentCategory;\n};\nexport const getOCRResp = async (type?: any, requestPayload?: any) => {\n let ocrResp: any;\n if (type) {\n switch (type) {\n case \"Aadhar\":\n ocrResp = await getExtractaadhaar(requestPayload);\n break;\n case \"VotersId\":\n ocrResp = await getExtractVoterID(requestPayload);\n break;\n case \"Passport\":\n ocrResp = await getExtractPassport(requestPayload);\n break;\n case \"DrivingLicense\":\n ocrResp = await getExtractDL(requestPayload);\n break;\n case \"MaskAadhar\":\n ocrResp = await maskedAadhaar(requestPayload);\n break;\n default:\n ocrResp = \"\";\n break;\n }\n }\n return ocrResp;\n};\nexport const getAutoQc = async (requestPayload?: any, qcDetails?: any) => {\n let AutoQc: any = \"No\";\n let qcResp = await extractCheque(requestPayload);\n if (qcResp.status) {\n if (\n qcResp.data.status === \"completed\" &&\n qcResp.data.result &&\n qcResp.data.result.extraction_output\n ) {\n let result = qcResp.data.result.extraction_output;\n\n AutoQc =\n (result.account_no\n ? qcDetails?.accNo?.toString().toLowerCase().trim() ===\n result?.account_no?.toString().toLowerCase().trim()\n : false) &&\n (result.ifsc_code\n ? qcDetails?.ifsc?.toString().toLowerCase().trim() ===\n result?.ifsc_code?.toString().toLowerCase().trim()\n : false) &&\n (result.bank_name\n ? qcDetails?.bankName?.toString().toLowerCase().trim() ===\n result?.bank_name?.toString().toLowerCase().trim()\n : false) &&\n (result.micr_code\n ? qcDetails?.micr?.toString().toLowerCase().trim() ===\n result?.micr_code?.toString().toLowerCase().trim()\n : false)\n ? \"Yes\"\n : \"No\";\n }\n }\n return AutoQc;\n};\nexport async function getMaskedAdhar(maskObj: any, isMasked?: boolean, skipMask?: boolean) {\n if(skipMask) {\n return {\n fileName: maskObj.fileName,\n fileData: maskObj.fileData,\n }\n }else {\n let base64Resp: any;\n let documentCategory = { name: \"\", id: 0 };\n documentCategory = getDocumentCategory(maskObj.proof, documentCategory);\n let requestPayload = {\n applicationid: maskObj.accountCode,\n base64document: maskObj.fileData,\n documentcategory: documentCategory.name,\n documentid: documentCategory.id,\n source: \"DIY\",\n };\n try {\n let ocrResp: any;\n ocrResp = await getOCRResp(\"MaskAadhar\", requestPayload);\n if (\n ocrResp &&\n ocrResp.data &&\n ocrResp.data.result &&\n ocrResp.data.status === \"completed\" &&\n ocrResp.data.result.base64_image\n ) {\n if (isMasked) {\n base64Resp = { fileData: \"\", fileName: \"\" };\n base64Resp.fileData = ocrResp.data.result.base64_image;\n maskObj.fileName = maskObj.fileName.split(\".\")[0] + \".jpg\";\n base64Resp.fileName = maskObj.fileName;\n } else {\n base64Resp = ocrResp.data.result.base64_image;\n }\n } else {\n if (isMasked) {\n base64Resp = { fileData: \"\", fileName: \"\" };\n base64Resp.fileData = maskObj.fileData;\n base64Resp.fileName = maskObj.fileName;\n } else {\n base64Resp = maskObj.fileData;\n }\n }\n } catch (error) {\n if (isMasked) {\n base64Resp = { fileData: \"\", fileName: \"\" };\n base64Resp.fileData = maskObj.fileData;\n base64Resp.fileName = maskObj.fileName;\n } else {\n base64Resp = maskObj.fileData;\n }\n console.log(error);\n }\n return base64Resp;\n }\n\n}\nexport const getQCChecked = async function (checkedObj: any) {\n let qcFlag = false;\n if (checkedObj.addressProof !== \"NREGAJobCard\" && checkedObj.fileData) {\n let documentCategory = { name: \"\", id: 0 };\n documentCategory = getDocumentCategory(\n checkedObj.addressProof,\n documentCategory\n );\n let requestPayload = {\n applicationid: checkedObj.accountCode,\n base64document: checkedObj.fileData,\n documentcategory: documentCategory.name,\n documentid: documentCategory.id,\n source: \"DIY\",\n };\n try {\n let ocrResp: any;\n ocrResp = await getOCRResp(documentCategory.name, requestPayload);\n if (\n ocrResp &&\n ocrResp.data &&\n ocrResp.data.status === \"completed\" &&\n ocrResp.data.result.extraction_output\n ) {\n let result = ocrResp.data.result.extraction_output;\n if (\n result &&\n result.address &&\n result.name_on_card &&\n result.address.toLowerCase() === checkedObj.address.toLowerCase() &&\n result.name_on_card.toLowerCase() ===\n checkedObj.fullName.toLowerCase()\n ) {\n qcFlag = true;\n } else {\n qcFlag = false;\n }\n } else {\n qcFlag = false;\n }\n } catch (error) {\n qcFlag = false;\n }\n }\n return qcFlag ? qcFlag : false;\n};\n","import React, { Component } from 'react';\nimport '../../assets/scss/components/generic/OtpTimer.scss'\n\ninterface IOtpTimerProps {\n timer: number\n}\n\nlet timer: any;\nclass OtpTimer extends Component {\n\n state = {\n timer: this.props.timer\n }\n\n startTimer = () => {\n timer = setInterval(() => {\n let temp = this.state.timer - 1;\n if (temp === 0) {\n this.setState({ timer: this.props.timer })\n clearInterval(timer);\n } else {\n this.setState({ timer: temp })\n }\n }, 1000)\n }\n\n componentDidMount() {\n this.startTimer();\n }\n\n componentWillUnmount() {\n clearInterval(timer);\n }\n\n render() {\n\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n {this.state.timer}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n )\n }\n}\n\nexport default OtpTimer","export default \"data:image/png;base64,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\"","import * as React from \"react\";\nimport { FileUploadSection } from \"../../generic/fileUploadSection\";\nimport pdf_icon from \"../../../../assets/images/pdf_icon.png\";\nexport interface IKRADetails {\n kraDetails?: {};\n setKraDetails?: any;\n hidePhoto?: boolean;\n}\nexport const KRADocumentUploadForm = (props: IKRADetails) => {\n const [kraDetails, setKraDetails] = React.useState({\n webSign: {},\n panCard: {},\n photo: {},\n });\n const getFileType = (type?: any) => {\n let fileType: string = \"\";\n switch (type) {\n case \"webSign\":\n fileType = \"Wetsign\";\n break;\n case \"panCard\":\n fileType = \"PAN\";\n break;\n case \"photo\":\n fileType = \"ProfilePhoto\";\n break;\n default:\n break;\n }\n return fileType;\n };\n React.useEffect(() => {\n props.setKraDetails(kraDetails);\n }, [kraDetails]);\n const handleSubmitForDocument = (fileDetails: any, type?: any) => {\n let fileObj: any;\n if (fileDetails && fileDetails.docFile && fileDetails.base64Data) {\n let imgSrc = \"\";\n if (fileDetails.docFile.split(\".\")[1].toLowerCase() !== \"pdf\") {\n imgSrc = fileDetails.base64Data;\n }\n fileObj = {\n [\"fileName\"]: fileDetails.docFile,\n [\"fileData\"]: fileDetails.base64Data.split(\",\")[1],\n [\"imgSrc\"]: imgSrc,\n [\"documentTypeName\"]: getFileType(type),\n };\n }\n setKraDetails({\n ...kraDetails,\n [`${type}`]: fileObj ? fileObj : {},\n });\n };\n return (\n <>\n
    \n

    Signature (Max size 1Mb)

    \n {\n handleSubmitForDocument(data, \"webSign\");\n }}\n fileSize={1048576}//1MB size\n crop={true}\n />\n {!(\n kraDetails &&\n kraDetails[\"webSign\"] &&\n kraDetails[\"webSign\"].fileName &&\n kraDetails[\"webSign\"].fileData\n ) && (\n

    \n Please upload the photo of your signature on white paper with blue/black ink\n

    \n )}\n
    \n
    \n

    PAN card copy(Max size 1Mb)

    \n {\n handleSubmitForDocument(data, \"panCard\");\n }}\n fileSize={1048576}//1MB size\n />\n {!(\n kraDetails &&\n kraDetails[\"panCard\"] &&\n kraDetails[\"panCard\"].fileName &&\n kraDetails[\"panCard\"].fileData\n ) && (\n

    \n Please upload the colour image of document directly taken from the original document\n

    \n )}\n
    \n {!props?.hidePhoto && (\n
    \n

    Photo(Max size 1Mb)

    \n {\n handleSubmitForDocument(data, \"photo\");\n }}\n />\n {!(\n kraDetails &&\n kraDetails[\"photo\"] &&\n kraDetails[\"photo\"].fileName &&\n kraDetails[\"photo\"].fileData\n ) && (\n

    \n Please upload clear coloured photo\n

    \n )}\n
    \n )}\n \n );\n};\nexport const ViewKRADocuments = (props: any) => {\n return (\n <>\n \n \n \n {props.document.imgSrc ? (\n \n ) : (\n \n )}\n

    {props.document.fileName}

    \n
    \n \n \n );\n};","import React from 'react';\nimport '../../../../assets/scss/components/videoVerification/VideoPlayerIpv.scss'\nimport OtpTimer from '../../../generic/OtpTimer';\nimport Button from './Button';\n\n//import { isSafariBrowser } from '../../Services/globalService';\nimport browserName from '../../../utils/browserName';\nimport EdButton from '../../../generic/edButton';\n\nexport interface VideoPlayerIpvProps {\n ipvUploaded: (uploadObj: any) => any\n isGeoError?: boolean;\n}\n\nexport function captureScreenShot(video: HTMLVideoElement, callback: CallableFunction) {\n let canvas: HTMLCanvasElement = document.createElement('canvas') as HTMLCanvasElement;\n canvas.width = video.videoWidth;\n canvas.height = video.videoHeight;\n canvas.getContext('2d')!.drawImage(video, 0, 0, video.videoWidth, video.videoHeight);\n canvas.toBlob((blob) => {\n const new_File = new File([blob as BlobPart], 'safariVideoIPV.webm', { type: 'video/webm', lastModified: Date.now() });\n const fileReader = new FileReader();\n fileReader.onload = function (e) {\n const base64 = (e.target && e.target.result)?.toString();\n callback(base64?.split(',')[1], blob, video.videoWidth, video.videoHeight);\n }\n fileReader.readAsDataURL(new_File);\n });\n}\n\nconst VideoPlayerIpv: React.FC = (props) => {\n\n const [isLoading, setIsLoading] = React.useState(false);\n const [showStartBtn, setShowStartBtn] = React.useState(true);\n const [showVidPerm, setShowVidPerm] = React.useState(false);\n const [showRecordTimer, setShowRecordTimer] = React.useState(false);\n const [showUploadBtn, setShowUploadBtn] = React.useState(false);\n const [stream, setStream] = React.useState();\n const [webBlob, setWebBlob] = React.useState();\n const [frames, setFrames] = React.useState>([]);\n const [mediaRecorder, setMediaRecorder] = React.useState();\n const videoRefElement = React.useRef(null);\n const previewRefElement = React.useRef(null);\n const imageRefElement = React.useRef(null);\n const [imgSrcSafari, setImgSrcSafari] = React.useState();\n const [videoWidth, setVideoWidth] = React.useState();\n const [videoHeight, setVideoHeight] = React.useState();\n\n React.useEffect(() => {\n turnOnCamera();\n showPreview(false);\n return () => {\n }\n }, []);\n\n React.useEffect(() => {\n return () => {\n stream && stream.getVideoTracks()[0].stop();\n }\n }, [stream])\n\n function showPreview(showPreview: boolean) {\n videoRefElement.current!.hidden = showPreview;\n if (browserName().browserName === \"Safari\")\n imageRefElement.current!.hidden = !showPreview;\n else\n previewRefElement.current!.hidden = !showPreview;\n }\n\n function turnOnCamera() {\n setIsLoading(true);\n\n const constraints = {\n audio: false,\n video: {\n facingMode: 'user'\n }\n };\n\n function handleSuccess(stream: MediaStream) {\n videoRefElement.current!.srcObject = stream;\n try {\n setMediaRecorder(new MediaRecorder(stream));\n } catch (ex) { }\n setStream(stream)\n setShowVidPerm(false);\n setIsLoading(false);\n }\n\n function handleError(error: any) {\n setShowVidPerm(true);\n setIsLoading(false);\n }\n\n navigator.mediaDevices.getUserMedia(constraints)\n .then(handleSuccess)\n .catch(handleError);\n }\n\n function record() {\n setShowStartBtn(false);\n setShowRecordTimer(true);\n let interval: NodeJS.Timeout;\n const arr: Array = [];\n if (browserName().browserName === 'Safari') {\n interval = setInterval(() =>\n captureScreenShot(videoRefElement.current!, (base64: string, blob: Blob, videoWidth: number, videoHeight: number) => {\n setImgSrcSafari(window.URL.createObjectURL(blob));\n setVideoWidth(videoWidth);\n setVideoHeight(videoHeight);\n arr.push(base64);\n })\n , 500);\n } else {\n mediaRecorder && mediaRecorder.start();\n }\n setTimeout(() => {\n setShowRecordTimer(false);\n setShowUploadBtn(true);\n (browserName().browserName === 'Safari') && interval && clearInterval(interval);\n stop(arr);\n }, 5100);\n }\n\n if (mediaRecorder) {\n mediaRecorder.ondataavailable = function (event: any) {\n setFrames([event.data]);\n }\n\n mediaRecorder.onstop = (ev: any) => {\n const blob = new Blob(frames, { 'type': 'video/webm' });\n previewRefElement.current!.src = window.URL.createObjectURL(blob);\n setWebBlob(blob);\n showPreview(true);\n }\n }\n\n function stop(framesArr?: Array) {\n showPreview(true);\n if (browserName().browserName && framesArr) {\n setFrames(framesArr);\n } else {\n mediaRecorder && mediaRecorder.stop();\n }\n stream && stream.getVideoTracks()[0].stop();\n }\n\n const retryVideo = () => {\n setFrames([]);\n showPreview(false);\n setShowUploadBtn(false);\n setShowRecordTimer(false);\n setShowStartBtn(true);\n setImgSrcSafari('');\n turnOnCamera();\n }\n\n function uploadVideo() {\n const new_File = new File([webBlob as BlobPart], 'videoIPV.webm', { type: 'video/webm', lastModified: Date.now() });\n if (new_File.size > 50000000) {\n alert('video size exceeds maximum limit. Please upload it again');\n return false;\n }\n const fileReader = new FileReader();\n fileReader.onload = function (e) {\n const base64 = (e.target && e.target.result)?.toString();\n if (base64?.toString()) {\n props.ipvUploaded(base64!.split(',')[1]);\n //console.log(\"videofile\",base64!.split(',')[1])\n }\n }\n fileReader.readAsDataURL(new_File);\n }\n \n\n return (\n
    \n {\n showVidPerm &&\n
    \n \n
    \n }\n \n { \n browserName().browserName === 'Safari' ?\n ipvImage\n :\n \n }\n\n {/* Start Recording Button Start */}\n {\n showStartBtn && !props.isGeoError && (\n
    { } : () => record()}\n >\n \n \n
    \n )}\n {/* Start Recording Button End */}\n\n {/* Recording Timer Start */}\n {\n showRecordTimer &&\n
    \n \n
    \n }\n {/* Recording Timer End */}\n\n {/* Upload Btn Start */}\n {\n showUploadBtn &&\n
    \n \n
    \n {/* \n */}\n
    \n \n
    \n
    \n \n
    \n
    \n
    \n }\n {/* Upload Btn End */}\n
    \n );\n}\n\nexport default VideoPlayerIpv;","import React from 'react';\nimport '../../assets/scss/components/generic/Backdrop.scss'\n// import 'cropperjs/dist/cropper.css';\nexport interface BackdropProps {\n children: any;\n isShow: boolean;\n isCloseIcon: boolean\n onClose?: () => void;\n}\n\nconst Backdrop: React.FC = (props) => {\n\n return (\n \n {\n props.isShow &&\n
    \n
    \n {props.isCloseIcon && }\n {props.children}\n
    \n
    \n }\n
    \n );\n}\n\nexport const FullBackdrop: React.FC = (props) => {\n return (\n \n {\n props.isShow &&\n
    \n
    \n {props.isCloseIcon && }\n {props.children}\n
    \n
    \n }\n
    \n );\n}\nexport default Backdrop;","export default __webpack_public_path__ + \"static/media/ipv_demo.0060e923.jpg\";","import React from 'react'\nimport '../../../../assets/scss/components/videoVerification/ErrMsg.scss'\n\nconst ErrMsg = (props: any) => (\n
    \n
    \n \n
    \n
    \n)\n\nexport default ErrMsg","export const AddrModificationSteps = {\n heading: \"Steps for Address Modification\",\n content: [\n \"Permanent Address and Correspondence Address is available on screen to cross check and you can edit the same using ‘Edit Address’ link.\",\n \"Register on Digilocker such that Aadhaar details including address are fetched using Digilocker directly or you can proceed with Non Digilocker flow\",\n \"In Non Digilocker flow enter the Permanent and Correspondence address details and upload the address proof. You can also choose your Correspondence address same as Permanent address.\",\n \"Address proof can be Driving License, NREGA job card, Passport, Voter ID.\",\n \"Additionally, Pan card copy, wet sign and photograph is required to be uploaded\",\n \"Esign is mandatory for both Digilocker and Non Digilocker flow. Please keep your Aadhaar number ready with you and complete the Esign process.\",\n \"Cross check the details entered and select self-verification check box.\",\n \"If the documents uploaded are valid and Esign is successful, then request will be received and will be updated within two working days else it will be rejected.\",\n ],\n};\n\nexport const BankModificationSteps = {\n heading: \"Steps for Bank Addition/Modification\",\n content: [\n \"Select ‘Add Another Bank Account’\",\n \"Select Account Type i.e., Savings or Current\",\n \"Enter Account Number, IFSC Code.\",\n \"Penny drop will be attempted wherein system will credit Re. 1 to your account for verification of your bank account and prefilled form will be provided. In case Penny drop is not successful, you need to upload bank proofs such as Cancelled Cheque, Bank account statement of last three months.\",\n \"Cross check the details entered and select self-verification check box.\",\n \"Esign is mandatory if penny drop is not successful. Please keep your Aadhaar number ready with you and complete the Esign process.\",\n \"If the documents uploaded are valid and Esign is successful, then request will be received and will be updated within two working days else it will be rejected.\",\n \"Same as Bank addition steps as above, only instead of entering the details you need to edit the prefilled details like IFSC Code, Default Primary Account etc.\",\n ],\n};\n\nexport const SegmentActivationSteps = {\n heading: \"Steps/Prequisites for Segment Activation\",\n content: [\n \"Select the segment which you wish to activate.\",\n 'Keep scanned copy of income proof readily available to upload and it should not be password protected. You may upload any one of the below mentioned valid income proofs post self-attestation on all pages.
    a. Latest ITR copy.
    b. Latest demat holdings statement required. If, it is non-Nuvama DP then DP seal & signature is mandatory on the holding statement.
    c. Latest 6 months bank statement (not older than 3 months). Bank statement should contain client’s name, account number, period and bank’s logo. If logo is not available, then Bank’s stamp & signature is required.
    d. Latest salary slip required. Name on salary slip should match with client’s name and it should contain employer’s logo. If employer’s logo is not available, then employer’s stamp & HR signature is required.
    e. Latest net - worth certificate with CA stamp & signature required.
    ',\n \"Once the income proof is uploaded, OTP will be sent to your registered mobile number and email ID, and you need to enter the OTP to proceed with segment activation.\",\n \"In case of commodity segment activation, additional selection is required for commodity wise categorization in which you are trading/dealing in commodities market.\",\n \"On submitting the OTP/commodity wise categorization, as applicable, the segment will get activated in two working days.\",\n ],\n};\n\nexport const SegmentDeactivationSteps = {\n heading: \"Steps/Prequisites for Segment Deactivation\",\n content: [\n \"Select the check box against the segment which you wish to deactivate.\",\n \"To proceed with Segment deactivation, ensure below: Equity Derivatives/ Currency Derivatives/ Commodities - There should not be any open position/ Order in your account.Mutual Fund – There should not be any open orders and running SIP in your account.\",\n \"On submitting the request, segment will be deactivated in two working days.\",\n \"Please note, Segment will be deactivated for all active exchanges by default.\",\n ],\n};\n\nexport const geoLocationConfig = {\n timeout: 3000,\n enableHighAccuracy: false,\n maximumAge: 0,\n errorTimer: 20000,\n};\n","import { useEffect, useState } from \"react\";\nimport { geoLocationConfig } from \"../clientarea/serviceRequest/constant\";\n\nconst useGeoLocation = () => {\n const [location, setLocation] = useState({\n loaded: false,\n coordinates: { lat: \"\", lng: \"\" },\n error: false,\n });\n\n const onSuccess = (location) => {\n setLocation({\n loaded: true,\n coordinates: {\n lat: location.coords.latitude,\n lng: location.coords.longitude,\n },\n error: false,\n });\n };\n\n const onError = (error) => {\n setLocation({\n loaded: true,\n coordinates: { lat: \"\", lng: \"\" },\n error,\n error: true,\n });\n };\n\n useEffect(() => {\n if (!(\"geolocation\" in navigator)) {\n onError({\n code: 0,\n message: \"Geolocation not supported\",\n });\n }\n\n navigator.geolocation.getCurrentPosition(onSuccess, onError, {\n timeout: geoLocationConfig.timeout,\n enableHighAccuracy: geoLocationConfig.enableHighAccuracy,\n maximumAge: geoLocationConfig.maximumAge,\n });\n }, []);\n\n return location;\n};\n\nexport default useGeoLocation;\n","import React from 'react';\nimport '../../assets/scss/components/generic/InfoModal.scss'\n\nexport interface InfoModalProps {\n children: any;\n width: string;\n}\n\nconst InfoModal: React.FC = (props) => {\n return (\n
    \n {props.children}\n
    \n );\n}\n\nexport default InfoModal;","import React from 'react';\nimport '../../../../assets/scss/components/videoVerification/VideoVerification.scss';\nimport VideoPlayerIpv from './VideoPlayerIpv';\nimport Backdrop from '../../../generic/Backdrop';\nimport ipvDemo from '../../../../assets/images/ipv_demo.jpg';\n// import { AGetIpvOtp, AUploadIpv, AUploadIpvSafari } from '../Services/dashboard/ipvApiServices';\nimport { useHistory } from 'react-router-dom';\nimport ErrMsg from './ErrMsg';\nimport browserName from '../../../utils/browserName';\nimport {\n getIPVOTP\n } from \"../../../service/generic/otherApi\";\nimport useGeoLocation from '../../../utils/useGeoLocation';\nimport { geoLocationConfig } from '../constant';\nimport InfoModal from '../../../generic/InfoModal';\nimport DeviceContext from '../../../service/indentifyDevice';\nimport EdButton from '../../../generic/edButton';\n export interface iGeoLocation {\n loaded: boolean;\n coordinates: { lat: string; lng: string };\n error: boolean;\n }\n \n\nexport interface VideoVerificationProps {\n setVideoContent: (uploadObj: any) => any,\n setIpvcode: (otp: any) => any,\n}\n\nconst VideoVerification: React.FC = (props) => {\n // Fetch query params for clervertap\n //const quryParams = useQuery();\n\n const [errCode, setErrCode] = React.useState();\n const [isLoading, setIsLoading] = React.useState(false);\n const [showSample, setShowSample] = React.useState(false);\n const [otp, setOtp] = React.useState('');\n const geoLoc: iGeoLocation = useGeoLocation();\n const [isGeoError, setIsGeoError] = React.useState(false);\n const [isGeoErrorTimeFlag, setIsGeoErrorTimeFlag] = React.useState(false);\n const [lat, setLat] = React.useState(\"\");\n const [long, setLong] = React.useState(\"\");\n const [browserPermission, setBrowserPermission] = React.useState(true);\n const [locationPermission, setLocationPermission] = React.useState(true);\n const [cameraPermission, setCameraPermission] = React.useState(true);\n const [showBrowserPermissionModal, setsShowBrowserPermissionModal] = React.useState(false);\n \n const history = useHistory();\n let watchPositionId: number;\n\n React.useEffect(() => {\n // window.sessionStorage.setItem('stageInfoId', '7');\n setTimeout(() => {\n watchPositionId = navigator.geolocation.watchPosition(\n successPosition,\n errorPosition\n );\n setIsGeoErrorTimeFlag(true);\n }, geoLocationConfig.errorTimer);\n setIsLoading(true);\n getIpvOtp();\n // AGetIpvOtp(getIpvOtp, GlobalStore.applicationID);\n }, []);\n\n React.useEffect(() => {\n watchPositionId = navigator.geolocation.watchPosition(\n successPosition,\n errorPosition\n );\n if (locationPermission === true && cameraPermission === true) {\n setBrowserPermission(true);\n setsShowBrowserPermissionModal(false);\n setIsGeoError(false);\n } else {\n setBrowserPermission(false);\n setsShowBrowserPermissionModal(true);\n setIsGeoError(true);\n }\n // getLocation();\n }, [geoLoc, locationPermission, cameraPermission]);\n\n async function getIpvOtp() {\n let generatedOtp = await getIPVOTP();\n if (!generatedOtp || generatedOtp.error) {\n setErrCode(456)\n } else {\n if (generatedOtp && generatedOtp.otp) {\n setOtp(generatedOtp.otp);\n getLocation();\n }\n }\n setIsLoading(false);\n }\n function errorPosition(data: any) {\n setIsLoading(true);\n setLocationPermission(false);\n // setBrowserPermission(false);\n // setsShowBrowserPermissionModal(true);\n // if (!browserPermission) {\n // getLocation();\n // }\n }\n function successPosition(data: any) {\n setIsLoading(false);\n setLocationPermission(true);\n // setBrowserPermission(true);\n // setsShowBrowserPermissionModal(false);\n setLat(data.coords.latitude);\n setLong(data.coords.longitude);\n navigator.geolocation.clearWatch(watchPositionId);\n }\n const setLocation = (position: { coords: any }) => {\n console.log(\"Set Location\", position.coords);\n setLat(position.coords.latitude);\n setLong(position.coords.longitude);\n \n geoLoc.coordinates.lat = position.coords.latitude;\n geoLoc.coordinates.lng = position.coords.longitude;\n geoLoc.error = false;\n setIsGeoError(false);\n setIsGeoErrorTimeFlag(false);\n setIsLoading(false);\n console.log(\"In saveLocation\", geoLoc);\n };\n \n const errorLocation = (err: any) => {\n console.log(`ERROR(${err.code}): ${err.message}`);\n geoLoc.error = true;\n setIsLoading(true);\n setIsGeoError(true);\n // getLocation();\n };\n \n const getLocation = () => {\n if (geoLoc.loaded && geoLoc.error == false) {\n setLat(`${geoLoc.coordinates.lat}`);\n setLong(`${geoLoc.coordinates.lng}`);\n } else {\n if (navigator && navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(setLocation, errorLocation, {\n enableHighAccuracy: geoLocationConfig.enableHighAccuracy,\n maximumAge: geoLocationConfig.maximumAge,\n timeout: geoLocationConfig.timeout,\n });\n watchPositionId = navigator.geolocation.watchPosition(\n successPosition,\n errorPosition\n );\n }\n }\n };\n async function turnOnCamera() {\n getLocation();\n \n const constraints = {\n audio: false,\n video: {\n facingMode: \"user\",\n },\n };\n \n function handleSuccess(turnOfCamera: MediaStream) {\n console.log(\"HANDLE success\", turnOfCamera);\n // setBrowserPermission(true);\n // setsShowBrowserPermissionModal(false);\n setCameraPermission(true);\n setIsLoading(false);\n }\n \n function handleError(error: any) {\n console.log(\"HANDLE ERROR\", error);\n setIsLoading(true);\n // setBrowserPermission(false);\n // setsShowBrowserPermissionModal(true);\n setCameraPermission(false);\n console.log(\"handle error line end\");\n // if (!browserPermission) {\n // turnOnCamera();\n // }\n }\n \n navigator.mediaDevices\n .getUserMedia(constraints)\n .then((stream) => {\n console.log(stream, \"then\");\n handleSuccess(stream);\n })\n .catch((stream) => {\n console.log(stream, \"catch\");\n handleError(stream);\n });\n } \n\n function ipvUploaded(uploadObj: any) {\n setIsLoading(true);\n props.setIpvcode(otp)\n props.setVideoContent(uploadObj);\n localStorage.setItem(\"ipvcode\",otp);\n localStorage.setItem(\"imageData\",uploadObj)\n if (lat !== \"\" && long !== undefined && long !== \"\" && long !== undefined) {\n localStorage.setItem(\"longitude\", long);\n localStorage.setItem(\"latitude\", lat);\n }\n }\n\n return (\n <>\n
    \n
    \n
    \n {showBrowserPermissionModal && (\n \n \n
    \n \n
    \n
    \n turnOnCamera()}\n value=\"OK\"\n btnTyp=\"primary\"\n >\n OK\n \n
    \n
    \n
    \n )}\n
    \n
    \n
    \n setShowSample(false)}>\n
    \n ipvDemo\n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n \n
    \n {\n //otp &&\n
    \n \n
    \n }\n {isGeoError && !isGeoErrorTimeFlag ? (\n <>\n
    \n

    \n {\" \"}\n Please enable the camera and location to proceed further!\n

    \n
    \n \n ) : null}\n {isGeoError && isGeoErrorTimeFlag ? (\n <>\n
    \n

    \n {\" \"}\n Please enable the camera and location to proceed further!{\" \"}\n

    \n
    \n \n ) : null}\n {/* Error Msg Start*/}\n {\n errCode &&\n
    \n \n {(typeof errCode === 'number') ?\n <>\n \n \n \n :\n \n }\n \n
    \n }\n {/* Error Msg End*/}\n
    \n
    \n \n );\n}\n\nexport default VideoVerification;","import React, { forwardRef, useImperativeHandle, useState } from \"react\";\nimport EdButton from \"../../../generic/edButton\";\nimport \"../../../../assets/scss/components/clientarea/serviceRequest/serviceRequest.scss\";\nimport \"../../../../assets/scss/components/clientarea/serviceRequest/incomeDeclaration.scss\";\nimport {\n CreateServiceRequest,\n GetCKYCValidation,\n GetAllNewExistingSRDetails,\n GetDepositoryDetails,\n getDPID,\n getMergeDocumentBase64,\n GetPersonDetails,\n ServiceClientValidation,\n createSRDocumentUpload,\n} from \"../../../service/serviceRequest/srApiService\";\nimport InputField from \"../../../generic/inputField\";\n\nimport { IListObj } from \"../../../types/genericTypes\";\nimport TocDropdown from \"../../../generic/tocDropdown\";\nimport { useQuery } from \"../../../service/urlHelper\";\nimport { config } from \"../../../../config/domain\";\nimport Loader from \"../../../generic/loader\";\nimport { FileUploadSection } from \"../../generic/fileUploadSection\";\nimport {\n getAutoQc,\n getDocumentCategory,\n getMaskedAdhar,\n getOCRResp,\n} from \"../../generic/qCCheck\";\nimport { checkPennyDrop } from \"../../../service/generic/otherApi\";\nimport { asyncGetServiceRequest } from \"../../../service/postLogin/clientProfileAPIService\";\nimport { KRADocumentUploadForm } from \"../KRADocumentUpload/KRADocumentUpload\";\nimport VideoVerification from \"../videoVerification/VideoVerification\";\nimport InfoModal from \"../../../generic/InfoModal\";\nimport DeviceContext from \"../../../service/indentifyDevice\";\n//interface IHome { }\ntype TImageFile = {\n ImgCont: string;\n ImgNm: string;\n Type: string;\n fileIdName: string;\n};\nconst addressProofOptions: Array = [\n { value: \"Aadhar\", display: \"Aadhar card\" },\n { value: \"DrivingLicense\", display: \"Driving License\" },\n { value: \"NREGAJobCard\", display: \"NREGA job card\" },\n { value: \"Passport\", display: \"Passport\" },\n { value: \"VotersId\", display: \"Voters Id\" },\n];\nconst addressChildProofOptions: Array = [\n { value: \"DrivingLicense\", display: \"Driving License\" },\n { value: \"NREGAJobCard\", display: \"NREGA job card\" },\n { value: \"Passport\", display: \"Passport\" },\n { value: \"VotersId\", display: \"Voters Id\" },\n];\nconst segincomeProof = [\n {\n display: \"6 Months Bank Statement\",\n value: \"SixMonthsBankStatement\",\n desc: \"Latest self attested 6 months bank statement (not older than 3 months). Bank statement should contain client's name, account number, period and bank's logo. If logo is not available then Bank's stamp & signature is required.\",\n },\n {\n display: \"ITR Proof\",\n value: \"ITRProof\",\n desc: \"Latest self attested ITR copy.\",\n },\n {\n display: \"Demat Holdings\",\n value: \"DematHoldings\",\n desc: \"Latest self attested demat holdings statement required. If, it is non-EBL DP then DP seal & signature is mandatory on the holding statement.\",\n },\n {\n display: \"Salary Slip\",\n value: \"SalarySlip\",\n desc: \"Latest self attested salary slip required. Name on salary slip should match with client's name and it should contain employer's logo. If employer's logo is not available then employer's stamp & HR signature is required.\",\n },\n {\n display: \"Net-worth Certificate\",\n value: \"NetworthCertificate\",\n desc: \"Self attested latest net - worth certificate with CA stamp & signature required.\",\n },\n];\nvar bankDropdownMenu: Array = [\n {\n value: \"BankStatement\",\n display: \"Bank Statement\",\n },\n {\n value: \"CancelledCheque\",\n display: \"Cancelled Cheque\",\n },\n];\nvar srIdList = {\n ckycId: \"\",\n // bankId: \"\",\n addressId: \"\",\n // bankQc: \"\",\n addressQc: \"\",\n};\nexport const CKYCUpdate = forwardRef((props: any, ref: any) => {\n const source = useQuery().get(\"source\");\n const addressConsent = useQuery().get(\"consent\");\n const consentType = useQuery().get(\"consentType\");\n const sr = useQuery().get(\"srID\");\n const srID = sr;\n let accReact: any = localStorage.getItem(\"accReactParentDetails\");\n accReact = accReact ? JSON.parse(accReact) : {};\n //const [loader, setLoader] = React.useState(true);\n const [personalDetails, setPersonalDetails] = React.useState();\n const [profileFile, setProfileFile] = React.useState();\n const [permantAddressFile, setPermantAddressFile] = React.useState();\n const [permantAddressFile2, setPermantAddressFile2] = React.useState();\n const [frontBack, setFrontBack] = React.useState(false);\n const [frontBackForCA, setFrontBackForCA] = React.useState(false);\n const [permantAddressProof, setPermantAddressProof] = React.useState();\n const [correspondenceAddressFile, setCorrespondenceFile] =\n React.useState();\n const [correspondenceAddressFile2, setcorrespondenceAddressFile2] =\n React.useState();\n const [correspondenceAddressProof, setCorrespondenceAddressProof] =\n React.useState();\n const [existingCKYCUpdateSR, setExistingCKYCUpdateSR] = React.useState(\"\");\n const [dropValChangedForPA, setDropValChangedPA] = React.useState(false);\n const [dropValChangedForCA, setDropValChangedCA] = React.useState(false);\n const [dropValChangedForBank, setDropValChangedForBank] =\n React.useState(false);\n const [dropValChangedForIncome, setDropValChangedForIncome] =\n React.useState(false);\n const [enabledButton, setEnabledButton] = React.useState(false);\n const [selectedSegincomeProof, setSelectedSegincomeProof] =\n React.useState();\n const [bankFile, setBankFile] = React.useState();\n const [fullName, setFullName] = React.useState();\n const [selectedincomeProof, setSelectedincomeProof] = React.useState();\n const [incomeFile, setIncomeFile] = React.useState({\n fileName: \"\",\n fileData: \"\",\n });\n const [childSr, setChildSr] = React.useState(\n props.childSr ? props.childSr : false\n );\n const [kraDetails, setKraDetails] = React.useState({\n webSign: {},\n panCard: {},\n photo: {},\n });\n const [newDataPermanentAddress, setnewDataPermanentAddress] =\n React.useState();\n const [newDataCorrespondeAddress, setNewCorrespondeAddressData] =\n React.useState();\n const [accountCode, setAccountCode] = React.useState();\n const [newDataBank, setNewBankData] = React.useState();\n const [allBank, setAllBank] = React.useState();\n const [showHide, setShowHide] = React.useState({\n ckycStatus: true,\n //pennyDrop: true,\n is_digilocker_flow: true,\n showIncome: true,\n sameAsPermanent: false,\n });\n const [digDoc, setDigDoc] = useState();\n const [photoDigiLoc, setPhotoDigiLoc] = React.useState();\n const [showIpvScreen, setShowIpvScreen] = React.useState(false);\n const [accReactFlow, setAccReactFlow] = useState(false);\n const [dormantMoreThanYear, setDormantMoreThanYear] = useState(undefined);\n const [videoContent, setVideoContent] = React.useState();\n const [ipvcode, setIpvcode] = React.useState();\n const [showWarningPopup, setShowWarningPopup] = React.useState();\n const rejectFlow = window.location.href.includes(\"rejected\");\n \n // const [srIdList, setsrIdList] = React.useState({\n // ckycId: \"\",\n // bankId: \"\",\n // addressId: \"\",\n // });\n\n React.useEffect(() => {\n if (window.location.href.includes(\"account-reactivation\")) {\n setAccReactFlow(true);\n }\n setDormantMoreThanYear(localStorage.getItem(\"DormantMoreThanYear\"))\n setPermantAddressProof(\n childSr ? addressChildProofOptions[0].value : addressProofOptions[0].value\n );\n setCorrespondenceAddressProof(\n childSr ? addressChildProofOptions[0].value : addressProofOptions[0].value\n );\n // if (accReactDetails.ckycStatus) {\n // setProfileFile({ fileName: \"\", fileData: \"\" });\n // }\n // if (accReactDetails.pennyDrop) {\n // setBankFile({ fileName: \"\", fileData: \"\" });\n // }\n // if (accReactDetails.is_digilocker_flow) {\n // setPermantAddressFile({ fileName: \"\", fileData: \"\" });\n // setCorrespondenceFile({ fileName: \"\", fileData: \"\" });\n // }\n // setLoader(false);\n if (!childSr) {\n getPersonDetail();\n if (srID) {\n getExistingDocuments(srID);\n } else {\n checkCKYCValidation();\n }\n } else {\n props.setLoader(true);\n asyncGetServiceRequest(props.srId)\n .then((list) => {\n FlowSet(list);\n })\n .catch((err) => {\n apiError();\n });\n setSelectedSegincomeProof(bankDropdownMenu[0].value);\n setSelectedincomeProof(segincomeProof[0].value);\n props.showFooter(false);\n }\n }, []);\n // For IPV Flow\n React.useEffect(() => {\n if(videoContent && ipvcode) {\n submitRequest();\n }\n }, [videoContent]);\n\n async function getExistingDocuments(srId: any) {\n props.setLoader(true);\n try {\n let { result: resp } = await GetAllNewExistingSRDetails(srId);\n if (resp && resp.new_data) {\n // let documents = resp.documents;\n // const profile = documents.find(\n // (doc: any) => doc.documentTypeName === \"ProfilePhoto\"\n // );\n // if (profile)\n // setProfileFile({\n // fileName: profile.fileName,\n // fileData: profile.fileData,\n // });\n // else setProfileFile({ fileName: \"\", fileData: \"\" });\n // const address = documents.filter(\n // (doc: any) =>\n // doc.documentTypeName === \"Aadhar\" ||\n // doc.documentTypeName === \"VotersId\" ||\n // doc.documentTypeName === \"Passport\" ||\n // doc.documentTypeName === \"NREGAJobCard\" ||\n // doc.documentTypeName === \"DrivingLicense\"\n // );\n if (\n JSON.stringify(resp.new_data.newCorrespondenceAdr) ===\n JSON.stringify(resp.new_data.newPermanentAdr)\n ) {\n setShowHide({\n ...showHide,\n is_digilocker_flow: false,\n sameAsPermanent: true,\n });\n // if (address) {\n // setPermantAddressFile({\n // fileName: address[0].fileName,\n // fileData: address[0].fileData,\n // });\n // setPermantAddressProof(address[0].documentTypeName);\n // }\n setCorrespondenceFile({ fileName: \"\", fileData: \"\" });\n } else {\n setShowHide({\n ...showHide,\n is_digilocker_flow: false,\n sameAsPermanent: false,\n });\n // if (address) {\n // setPermantAddressFile({\n // fileName: address[0].fileName,\n // fileData: address[0].fileData,\n // });\n // setCorrespondenceAddressProof(address[1].documentTypeName);\n // setCorrespondenceFile({\n // fileName: address[1].fileName,\n // fileData: address[1].fileData,\n // });\n // setPermantAddressProof(address[0].documentTypeName);\n // }\n }\n props.setLoader(false);\n props.showFooter(true);\n } else {\n apiError();\n }\n } catch (error) {\n apiError();\n }\n }\n\n const FlowSet = async (childSrList: any) => {\n try {\n if (childSrList && childSrList.length > 0) {\n const showHideStatus: any = showHide;\n accReact.is_digilocker_flow = childSrList.find(\n (list: any) => list.RequestType === \"Change of Address\"\n )?.is_digilocker_flow\n ? true\n : false;\n await Promise.all(\n childSrList.map(async (srList: any) => {\n if (rejectFlow) {\n if (srList.RequestType === \"CKYC Update\") {\n if (srList.RequestStatus === \"Rejected - Resubmit\") {\n srIdList.ckycId = srList.RequestId;\n showHideStatus.is_digilocker_flow = false;\n showHideStatus.ckycStatus = false;\n showHideStatus.sameAsPermanent = await getNewSrData(\n // Number(srList.RequestId),\n Number(props.srId), // for getting address details\n \"CKYC\"\n );\n }\n } else if (srList.RequestType === \"Change of Address\") {\n if (srList.RequestStatus === \"Rejected - Resubmit\") {\n srIdList.addressId = srList.RequestId;\n showHideStatus.is_digilocker_flow = false;\n showHideStatus.sameAsPermanent = await getNewSrData(\n Number(srList.RequestId),\n \"Address\"\n );\n }\n if (showHideStatus.ckycStatus) {\n showHideStatus.is_digilocker_flow = true;\n setPermantAddressFile({ fileName: \"\", fileData: \"\" });\n setCorrespondenceFile({ fileName: \"\", fileData: \"\" });\n }\n\n if (\n srList.RequestStatus === \"Resubmitted\" &&\n accReact.is_digilocker_flow\n ) {\n srIdList.addressId = srList.RequestId;\n showHideStatus.is_digilocker_flow = true;\n setPermantAddressFile({ fileName: \"\", fileData: \"\" });\n setCorrespondenceFile({ fileName: \"\", fileData: \"\" });\n }\n }\n // else if (srList.RequestType === \"Bank Modification\") {\n // if (srList.RequestStatus === \"Rejected - Resubmit\") {\n // srIdList.bankId = srList.RequestId;\n // //showHideStatus.pennyDrop = false;\n // showHideStatus.pennyDrop = await getNewSrData(\n // Number(srList.RequestId),\n // \"Bank\"\n // );\n // } else {\n // //showHideStatus.pennyDrop = true;\n // // setBankFile({ fileName: \"\", fileData: \"\" });\n // }\n // }\n } else {\n if (\n srList.RequestType === \"CKYC Update\" &&\n accReact.is_digilocker_flow\n ) {\n srIdList.ckycId = srList.RequestId;\n showHideStatus.ckycStatus = false;\n showHideStatus.is_digilocker_flow = true;\n setPermantAddressFile({ fileName: \"\", fileData: \"\" });\n setCorrespondenceFile({ fileName: \"\", fileData: \"\" });\n } else if (\n srList.RequestType === \"CKYC Update\" &&\n !accReact.is_digilocker_flow\n ) {\n showHideStatus.ckycStatus = false;\n srIdList.ckycId = srList.RequestId;\n showHideStatus.is_digilocker_flow = false;\n }\n // else if (srList.RequestType === \"Bank Modification\") {\n // srIdList.bankId = srList.RequestId;\n // showHideStatus.pennyDrop = await getNewSrData(\n // Number(srList.RequestId),\n // \"Bank\"\n // );\n // }\n else if (srList.RequestType === \"Change of Address\") {\n srIdList.addressId = srList.RequestId;\n showHideStatus.is_digilocker_flow = srList.is_digilocker_flow;\n showHideStatus.sameAsPermanent = await getNewSrData(\n Number(srList.RequestId),\n \"Address\"\n );\n }\n }\n })\n );\n // if (!rejectFlow) {\n // if (showHideStatus.ckycStatus && accReact.is_digilocker_flow) {\n // showHideStatus.is_digilocker_flow = true;\n // setProfileFile({ fileName: \"\", fileData: \"\" });\n // setPermantAddressFile({ fileName: \"\", fileData: \"\" });\n // setCorrespondenceFile({ fileName: \"\", fileData: \"\" });\n // }\n // if (showHideStatus.ckycStatus && accReact.is_digilocker_flow) {\n // showHideStatus.is_digilocker_flow = false;\n // //setProfileFile({ fileName: \"\", fileData: \"\" });\n // setPermantAddressFile({ fileName: \"\", fileData: \"\" });\n // setCorrespondenceFile({ fileName: \"\", fileData: \"\" });\n // }\n // }\n // if (showHideStatus.pennyDrop) {\n // setBankFile({\n // fileName: \"\",\n // fileData: \"\",\n // });\n // }\n if (showHideStatus.ckycStatus) {\n setProfileFile({ fileName: \"\", fileData: \"\" });\n }\n if (showHideStatus.is_digilocker_flow) {\n setPermantAddressFile({ fileName: \"\", fileData: \"\" });\n setCorrespondenceFile({ fileName: \"\", fileData: \"\" });\n }\n if (\n showHideStatus.ckycStatus &&\n //showHideStatus.pennyDrop &&\n showHideStatus.is_digilocker_flow &&\n showHideStatus.showIncome\n ) {\n if (rejectFlow) {\n if (!srIdList.addressId) {\n props.next();\n }\n } else {\n if (!srIdList.addressId) {\n submitRequest();\n }\n }\n }\n console.log(showHideStatus);\n\n setShowHide({ ...showHideStatus });\n }\n\n props.setLoader(false);\n } catch (error) {\n console.log(error);\n\n props.setLoader(false);\n apiError();\n }\n };\n\n const getNewSrData = async (id: Number, type: string) => {\n try {\n const { result: newDataRes } = await GetAllNewExistingSRDetails(id);\n if (newDataRes && newDataRes.old_data) {\n setAccountCode(\n newDataRes.old_data.accountcode\n ? newDataRes.old_data.accountcode\n : undefined\n );\n }\n if (newDataRes && newDataRes.documents && newDataRes.documents.length > 0)\n newDataRes.documents.map((item: any) => {\n if (item.documentTypeName === \"Aadhar\") {\n setDigDoc({\n documentTypeName: item.documentTypeName,\n fileData: item.fileData,\n fileName: item.fileName,\n });\n } else if (item.documentTypeName === \"ProfilePhoto\") {\n setPhotoDigiLoc({\n documentTypeName: item.documentTypeName,\n fileData: item.fileData,\n fileName: item.fileName,\n });\n }\n });\n\n if (newDataRes && newDataRes.new_data) {\n // if (type === \"Bank\") {\n // if (\n // newDataRes.new_data.bankAccountChangeDetails &&\n // newDataRes.new_data.bankAccountChangeDetails.length > 0\n // ) {\n // setAllBank(newDataRes.new_data.bankAccountChangeDetails);\n // const newBank: any =\n // newDataRes.new_data.bankAccountChangeDetails.find(\n // (bank: any) => bank.new_bank_details === \"Yes\"\n // );\n // // const defaultBank =\n // // newDataRes.new_data.bankAccountChangeDetails.find(\n // // (bank: any) => bank.default_account_flag\n // // );\n // if (newBank) {\n // // const bank = newBank ? newBank : defaultBank;\n // setNewBankData(newBank);\n // if (newBank.penny_drop === \"Yes\") {\n // setBankFile({ fileName: \"\", fileData: \"\" });\n // return true;\n // }\n // // else {\n // // const bankFile = newDataRes?.documents?.find(\n // // (doc: any) =>\n // // doc.documentTypeName === \"CancelledCheque\" ||\n // // doc.documentTypeName === \"BankStatement\"\n // // );\n // // if (bankFile) {\n // // setBankFile({\n // // fileName: bankFile.fileName,\n // // fileData: bankFile.fileData,\n // // });\n // // setDropValChangedForBank(bankFile.documentTypeName);\n // // }\n // // }\n // } else {\n // if (newDataRes.new_data.bank_identify_changes === \"Interchange\") {\n // setNewBankData(\n // newDataRes.new_data.bankAccountChangeDetails.find(\n // (bank: any) => bank.default_account_flag\n // )\n // );\n // return false;\n // }\n // setBankFile({ fileName: \"\", fileData: \"\" });\n // return true;\n // }\n // }\n // } else\n if (type === \"Address\") {\n if (newDataRes.old_data && newDataRes.old_data.fullAcName)\n setFullName(newDataRes.old_data.fullAcName);\n if (newDataRes.new_data.newPermanentAdr) {\n setnewDataPermanentAddress(newDataRes.new_data.newPermanentAdr);\n }\n if (newDataRes.new_data.newCorrespondenceAdr) {\n setNewCorrespondeAddressData(\n newDataRes.new_data.newCorrespondenceAdr\n );\n // console.log(\n // newDataRes.new_data.newCorrespondenceAdr,\n // newDataRes.new_data.newPermanentAdr\n // );\n const address = newDataRes?.documents?.filter(\n (doc: any) =>\n doc.documentTypeName === \"Aadhar\" ||\n doc.documentTypeName === \"VotersId\" ||\n doc.documentTypeName === \"Passport\" ||\n doc.documentTypeName === \"NREGAJobCard\" ||\n doc.documentTypeName === \"DrivingLicense\"\n );\n if (\n JSON.stringify(newDataRes.new_data.newCorrespondenceAdr) ===\n JSON.stringify(newDataRes.new_data.newPermanentAdr)\n ) {\n setCorrespondenceFile({ fileName: \"\", fileData: \"\" });\n // if (address) {\n // setPermantAddressFile({\n // fileName: address[0].fileName,\n // fileData: address[0].fileData,\n // });\n // setPermantAddressProof(address[0].documentTypeName);\n // }\n if (showHide.ckycStatus) {\n setProfileFile({ fileName: \"\", fileData: \"\" });\n }\n\n return true;\n } else {\n // if (address) {\n // setPermantAddressFile({\n // fileName: address[0].fileName,\n // fileData: address[0].fileData,\n // });\n // setCorrespondenceAddressProof(\n // address[1] && address[1].documentTypeName\n // ? address[1].documentTypeName\n // : addressProofOptions[0].value\n // );\n // setCorrespondenceFile({\n // fileName:\n // address[1] && address[1].fileName\n // ? address[1].fileName\n // : \"\",\n // fileData:\n // address[1] && address[1].fileData\n // ? address[1].fileData\n // : \"\",\n // });\n // setPermantAddressProof(address[0].documentTypeName);\n // }\n if (showHide.ckycStatus) {\n setProfileFile({ fileName: \"\", fileData: \"\" });\n }\n }\n }\n } else if (type === \"CKYC\") {\n // const profile = newDataRes?.documents?.find(\n // (doc: any) => doc.documentTypeName === \"ProfilePhoto\"\n // );\n // if (profile)\n // setProfileFile({\n // fileName: profile.fileName,\n // fileData: profile.fileData,\n // });\n // else\n setProfileFile({ fileName: \"\", fileData: \"\" });\n\n // if user skip address it will get from old_data\n const corAddress = newDataRes.new_data.newCorrespondenceAdr\n ? newDataRes.new_data.newCorrespondenceAdr\n : newDataRes.old_data.correspondenceAddress[0];\n const parAddress = newDataRes.new_data.newPermanentAdr\n ? newDataRes.new_data.newPermanentAdr\n : newDataRes.old_data.permanentAddress[0];\n\n if (JSON.stringify(corAddress) === JSON.stringify(parAddress)) {\n setCorrespondenceFile({ fileName: \"\", fileData: \"\" });\n return true;\n }\n }\n }\n return false;\n } catch (err) {\n apiError();\n }\n };\n\n async function getAutoQCDetails() {\n // if (selectedSegincomeProof === \"CancelledCheque\" && !showHide.pennyDrop) {\n // let requestObj = {\n // applicationid: accountCode,\n // base64document: bankFile.fileData,\n // documentcategory: \"Cheque\",\n // documentid: 117,\n // source: \"DIY\",\n // };\n // // console.log(requestObj);\n\n // try {\n // let autoQc = await getAutoQc(requestObj, {\n // accNo: newDataBank.account_number,\n // ifsc: newDataBank.ifsc_Code,\n // bankName: newDataBank.bank_name,\n // micr: newDataBank.micr_code,\n // });\n // srIdList.bankQc = autoQc;\n // } catch (error) {\n // //console.log(error);\n // apiError();\n // }\n // } else {\n // srIdList.bankQc = \"No\";\n // }\n let autoQc1 = \"\",\n autoQC2 = \"\";\n //console.log(permantAddressFile);\n\n if (\n permantAddressProof !== \"NREGAJobCard\" &&\n permantAddressFile &&\n permantAddressFile.fileData\n ) {\n let documentCategory = { name: \"\", id: 0 };\n documentCategory = getDocumentCategory(\n permantAddressProof,\n documentCategory\n );\n let requestPayload = {\n applicationid: accountCode,\n base64document: permantAddressFile.fileData,\n documentcategory: documentCategory.name,\n documentid: documentCategory.id,\n source: \"DIY\",\n };\n try {\n let ocrResp: any;\n ocrResp = await getOCRResp(documentCategory.name, requestPayload);\n\n if (\n ocrResp.data.status === \"completed\" &&\n ocrResp.data.result.extraction_output\n ) {\n let result = ocrResp.data.result.extraction_output;\n let finalAddress =\n newDataPermanentAddress.address_line_1 +\n newDataPermanentAddress.address_line_2 +\n newDataPermanentAddress.state +\n newDataPermanentAddress.pincode;\n if (\n result.address.toLowerCase() === finalAddress.toLowerCase() &&\n fullName &&\n result.name_on_card.toLowerCase() === fullName.toLowerCase()\n ) {\n autoQc1 = \"Yes\";\n } else {\n autoQc1 = \"No\";\n }\n } else {\n autoQc1 = \"No\";\n }\n } catch (error) {\n autoQc1 = \"No\";\n }\n }\n if (\n correspondenceAddressProof !== \"NREGAJobCard\" &&\n correspondenceAddressFile &&\n correspondenceAddressFile.fileData\n ) {\n let documentCategory = { name: \"\", id: 0 };\n documentCategory = getDocumentCategory(\n correspondenceAddressProof,\n documentCategory\n );\n let requestPayload = {\n applicationid: accountCode,\n base64document: correspondenceAddressFile.fileData,\n documentcategory: documentCategory.name,\n documentid: documentCategory.id,\n source: \"DIY\",\n };\n try {\n let ocrResp: any;\n ocrResp = await getOCRResp(documentCategory.name, requestPayload);\n if (\n ocrResp.data.status === \"completed\" &&\n ocrResp.data.result.extraction_output\n ) {\n let result = ocrResp.data.result.extraction_output;\n let finalAddress =\n newDataCorrespondeAddress.address_line_1 +\n newDataCorrespondeAddress.address_line_2 +\n newDataCorrespondeAddress.state +\n newDataCorrespondeAddress.pincode;\n if (\n result.address.toLowerCase() === finalAddress.toLowerCase() &&\n fullName &&\n result.name_on_card.toLowerCase() === fullName.toLowerCase()\n ) {\n autoQC2 = \"Yes\";\n } else {\n autoQC2 = \"No\";\n }\n } else {\n autoQC2 = \"No\";\n }\n } catch (error) {\n autoQC2 = \"No\";\n }\n }\n if (autoQc1 === \"Yes\" && (autoQC2 === \"Yes\" || autoQC2 === \"\")) {\n srIdList.addressQc = \"Yes\";\n } else {\n srIdList.addressQc = \"No\";\n }\n }\n\n const toCamelCase = (string: any) => {\n return string.replace(/\\w\\S*/g, function (txt: any) {\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\n });\n };\n async function getPersonDetail() {\n props.setLoader(true);\n try {\n let resp = await GetPersonDetails();\n if (resp) {\n setPersonalDetails({\n accountCodeField: resp.accountCodeField ? resp.accountCodeField : \"\",\n pANNumberField: resp.pANNumberField ? resp.pANNumberField : \"\",\n addressField: resp.addressField\n ? toCamelCase(resp.addressField.toLowerCase())\n : \"\",\n currentAddressField: resp.currentAddressField\n ? toCamelCase(resp.currentAddressField.toLowerCase())\n : \"\",\n });\n if (\n resp.addressField &&\n resp.currentAddressField &&\n resp.addressField.match(resp.currentAddressField)\n ) {\n setShowHide({\n ...showHide,\n is_digilocker_flow: false,\n sameAsPermanent: true,\n });\n setCorrespondenceFile({ fileName: \"\", fileData: \"\" });\n } else {\n if (\n resp.addressField &&\n resp.currentAddressField &&\n resp.addressField.match(resp.currentAddressField)\n ) {\n setShowHide({\n ...showHide,\n is_digilocker_flow: false,\n sameAsPermanent: false,\n });\n }\n }\n // console.log(typeof resp.addressField);\n // console.log(typeof resp.currentAddressField);\n } else {\n props.setLoader(false);\n }\n } catch (error) {\n //console.log(error);\n apiError();\n }\n }\n React.useEffect(() => {\n if (\n permantAddressFile2 &&\n permantAddressFile2.fileName &&\n permantAddressFile2.fileData\n ) {\n if (\n !(\n profileFile &&\n permantAddressFile &&\n permantAddressFile2 &&\n permantAddressProof &&\n correspondenceAddressFile &&\n correspondenceAddressProof\n )\n ) {\n props.enableSubmit(false);\n } else {\n if (!childSr) props.enableSubmit(true);\n else {\n if (\n !(\n profileFile &&\n permantAddressFile &&\n permantAddressFile2 &&\n permantAddressProof &&\n correspondenceAddressFile &&\n correspondenceAddressProof &&\n isKraDetails() &&\n //bankFile &&\n incomeFile &&\n selectedSegincomeProof &&\n selectedincomeProof\n )\n ) {\n setEnabledButton(false);\n } else {\n setEnabledButton(true);\n }\n }\n }\n } else {\n setPermantAddressFile2(undefined);\n }\n }, [permantAddressFile2]);\n\n React.useEffect(() => {\n if (\n correspondenceAddressFile2 &&\n correspondenceAddressFile2.fileName &&\n correspondenceAddressFile2.fileData\n ) {\n if (\n !(\n profileFile &&\n permantAddressFile &&\n permantAddressProof &&\n correspondenceAddressFile &&\n correspondenceAddressFile2 &&\n correspondenceAddressProof\n )\n ) {\n props.enableSubmit(false);\n } else {\n if (!childSr) props.enableSubmit(true);\n else {\n if (\n !(\n profileFile &&\n permantAddressFile &&\n permantAddressProof &&\n correspondenceAddressFile &&\n correspondenceAddressFile2 &&\n correspondenceAddressProof &&\n isKraDetails() &&\n //bankFile &&\n incomeFile &&\n selectedSegincomeProof &&\n selectedincomeProof\n )\n ) {\n setEnabledButton(false);\n } else {\n setEnabledButton(true);\n }\n }\n }\n } else {\n setcorrespondenceAddressFile2(undefined);\n }\n }, [correspondenceAddressFile2]);\n\n React.useEffect(() => {\n if (frontBack) {\n if (\n !(\n profileFile &&\n permantAddressFile &&\n permantAddressFile2 &&\n permantAddressProof &&\n correspondenceAddressFile &&\n correspondenceAddressProof\n )\n ) {\n if (!childSr) props.enableSubmit(false);\n else {\n if (\n !(\n profileFile &&\n permantAddressFile &&\n permantAddressFile2 &&\n permantAddressProof &&\n correspondenceAddressFile &&\n correspondenceAddressProof &&\n isKraDetails() &&\n //bankFile &&\n incomeFile &&\n selectedSegincomeProof &&\n selectedincomeProof\n )\n ) {\n setEnabledButton(false);\n } else {\n setEnabledButton(true);\n }\n }\n } else {\n if (!childSr) props.enableSubmit(true);\n else {\n if (\n !(\n profileFile &&\n permantAddressFile &&\n permantAddressFile2 &&\n permantAddressProof &&\n correspondenceAddressFile &&\n correspondenceAddressProof &&\n isKraDetails() &&\n //bankFile &&\n incomeFile &&\n selectedSegincomeProof &&\n selectedincomeProof\n )\n ) {\n setEnabledButton(false);\n } else {\n setEnabledButton(true);\n }\n }\n }\n }\n if (frontBackForCA) {\n if (\n !(\n profileFile &&\n permantAddressFile &&\n permantAddressProof &&\n correspondenceAddressFile &&\n correspondenceAddressFile2 &&\n correspondenceAddressProof\n )\n ) {\n if (!childSr) props.enableSubmit(false);\n else {\n if (\n !(\n profileFile &&\n permantAddressFile &&\n permantAddressProof &&\n correspondenceAddressFile &&\n correspondenceAddressFile2 &&\n correspondenceAddressProof &&\n isKraDetails() &&\n //bankFile &&\n incomeFile &&\n selectedSegincomeProof &&\n selectedincomeProof\n )\n ) {\n setEnabledButton(false);\n } else {\n setEnabledButton(true);\n }\n }\n } else {\n if (!childSr) props.enableSubmit(true);\n else {\n if (\n !(\n profileFile &&\n permantAddressFile &&\n permantAddressProof &&\n correspondenceAddressFile &&\n correspondenceAddressFile2 &&\n correspondenceAddressProof &&\n isKraDetails() &&\n //bankFile &&\n incomeFile &&\n selectedSegincomeProof &&\n selectedincomeProof\n )\n ) {\n setEnabledButton(false);\n } else {\n setEnabledButton(true);\n }\n }\n }\n }\n if (frontBack && frontBackForCA) {\n if (\n !(\n profileFile &&\n permantAddressFile &&\n permantAddressFile2 &&\n permantAddressProof &&\n correspondenceAddressFile &&\n correspondenceAddressFile2 &&\n correspondenceAddressProof\n )\n ) {\n if (!childSr) props.enableSubmit(false);\n else {\n if (\n !(\n profileFile &&\n permantAddressFile &&\n permantAddressFile2 &&\n permantAddressProof &&\n correspondenceAddressFile &&\n correspondenceAddressFile2 &&\n correspondenceAddressProof &&\n isKraDetails() &&\n //bankFile &&\n incomeFile &&\n selectedSegincomeProof &&\n selectedincomeProof\n )\n ) {\n setEnabledButton(false);\n } else {\n setEnabledButton(true);\n }\n }\n } else {\n if (!childSr) props.enableSubmit(true);\n else {\n if (\n !(\n profileFile &&\n permantAddressFile &&\n permantAddressFile2 &&\n permantAddressProof &&\n correspondenceAddressFile &&\n correspondenceAddressFile2 &&\n correspondenceAddressProof &&\n isKraDetails() &&\n //bankFile &&\n incomeFile &&\n selectedSegincomeProof &&\n selectedincomeProof\n )\n ) {\n setEnabledButton(false);\n } else {\n setEnabledButton(true);\n }\n }\n }\n }\n }, [frontBack, frontBackForCA]);\n React.useEffect(() => {\n if (!frontBack) {\n if (frontBackForCA) {\n if (\n !(\n profileFile &&\n permantAddressFile &&\n permantAddressProof &&\n correspondenceAddressFile &&\n correspondenceAddressFile2 &&\n correspondenceAddressProof\n )\n ) {\n if (!childSr) props.enableSubmit(false);\n else {\n if (\n !(\n profileFile &&\n permantAddressFile &&\n permantAddressProof &&\n correspondenceAddressFile &&\n correspondenceAddressFile2 &&\n correspondenceAddressProof &&\n isKraDetails() &&\n //bankFile &&\n incomeFile &&\n selectedSegincomeProof &&\n selectedincomeProof\n )\n ) {\n setEnabledButton(false);\n } else {\n setEnabledButton(true);\n }\n }\n } else {\n if (!childSr) props.enableSubmit(true);\n else {\n if (\n !(\n profileFile &&\n permantAddressFile &&\n permantAddressProof &&\n correspondenceAddressFile &&\n correspondenceAddressFile2 &&\n correspondenceAddressProof &&\n isKraDetails() &&\n //bankFile &&\n incomeFile &&\n selectedSegincomeProof &&\n selectedincomeProof\n )\n ) {\n setEnabledButton(false);\n } else {\n setEnabledButton(true);\n }\n }\n }\n } else {\n if (!childSr) {\n if (\n !(\n profileFile &&\n permantAddressFile &&\n permantAddressProof &&\n correspondenceAddressFile &&\n correspondenceAddressProof\n )\n ) {\n props.enableSubmit(false);\n } else {\n props.enableSubmit(true);\n }\n } else {\n if (\n !(\n profileFile &&\n permantAddressFile &&\n permantAddressProof &&\n correspondenceAddressFile &&\n correspondenceAddressProof &&\n isKraDetails() &&\n //bankFile &&\n incomeFile &&\n selectedSegincomeProof &&\n selectedincomeProof\n )\n ) {\n setEnabledButton(false);\n } else {\n setEnabledButton(true);\n }\n }\n }\n }\n }, [frontBack]);\n React.useEffect(() => {\n if (!frontBackForCA) {\n if (frontBack) {\n if (\n !(\n profileFile &&\n permantAddressFile &&\n permantAddressFile2 &&\n permantAddressProof &&\n correspondenceAddressFile &&\n correspondenceAddressProof\n )\n ) {\n if (!childSr) props.enableSubmit(false);\n else {\n if (\n !(\n profileFile &&\n permantAddressFile &&\n permantAddressFile2 &&\n permantAddressProof &&\n correspondenceAddressFile &&\n correspondenceAddressProof &&\n isKraDetails() &&\n //bankFile &&\n incomeFile &&\n selectedSegincomeProof &&\n selectedincomeProof\n )\n ) {\n setEnabledButton(false);\n } else {\n setEnabledButton(true);\n }\n }\n } else {\n if (!childSr) props.enableSubmit(true);\n else {\n if (\n !(\n profileFile &&\n permantAddressFile &&\n permantAddressFile2 &&\n permantAddressProof &&\n correspondenceAddressFile &&\n correspondenceAddressProof &&\n isKraDetails() &&\n //bankFile &&\n incomeFile &&\n selectedSegincomeProof &&\n selectedincomeProof\n )\n ) {\n setEnabledButton(false);\n } else {\n setEnabledButton(true);\n }\n }\n }\n } else {\n if (!childSr) {\n if (\n !(\n profileFile &&\n permantAddressFile &&\n permantAddressProof &&\n correspondenceAddressFile &&\n correspondenceAddressProof\n )\n ) {\n props.enableSubmit(false);\n } else {\n props.enableSubmit(true);\n }\n } else {\n if (\n !(\n profileFile &&\n permantAddressFile &&\n permantAddressProof &&\n correspondenceAddressFile &&\n correspondenceAddressProof &&\n isKraDetails() &&\n //bankFile &&\n incomeFile &&\n selectedSegincomeProof &&\n selectedincomeProof\n )\n ) {\n setEnabledButton(false);\n } else {\n setEnabledButton(true);\n }\n }\n }\n }\n }, [frontBackForCA]);\n React.useEffect(() => {\n if (\n !(\n profileFile &&\n permantAddressFile &&\n permantAddressProof &&\n correspondenceAddressFile &&\n correspondenceAddressProof\n )\n ) {\n if (!childSr) {\n props.enableSubmit(false);\n } else {\n setEnabledButton(false);\n }\n } else {\n if (!childSr) {\n if (frontBack && !permantAddressFile2) {\n props.enableSubmit(false);\n }\n if (frontBackForCA && !correspondenceAddressFile2) {\n props.enableSubmit(false);\n } else {\n props.enableSubmit(true);\n }\n } else {\n if (\n !(\n isKraDetails() &&\n //bankFile &&\n incomeFile &&\n selectedSegincomeProof &&\n selectedincomeProof\n )\n ) {\n setEnabledButton(false);\n } else {\n setEnabledButton(true);\n }\n }\n }\n }, [\n profileFile,\n permantAddressFile,\n permantAddressProof,\n correspondenceAddressFile,\n correspondenceAddressProof,\n ]);\n React.useEffect(() => {\n if (\n !(\n profileFile &&\n permantAddressFile &&\n permantAddressProof &&\n correspondenceAddressFile &&\n correspondenceAddressProof &&\n //bankFile &&\n incomeFile &&\n selectedSegincomeProof &&\n selectedincomeProof &&\n isKraDetails()\n )\n ) {\n setEnabledButton(false);\n } else {\n setEnabledButton(true);\n }\n }, [\n //bankFile,\n incomeFile,\n kraDetails,\n selectedSegincomeProof,\n selectedincomeProof,\n ]);\n\n const btnEnableDisableProceed = (val: any) => {\n let isAllowed;\n if (!frontBack && !frontBackForCA) {\n isAllowed = val;\n } else {\n if (\n frontBack &&\n frontBackForCA &&\n permantAddressFile2 &&\n correspondenceAddressFile2\n ) {\n isAllowed = true;\n } else {\n if (frontBack && !frontBackForCA && permantAddressFile2) {\n isAllowed = true;\n } else {\n if (!frontBack && frontBackForCA && correspondenceAddressFile2) {\n isAllowed = true;\n } else {\n isAllowed = false;\n }\n }\n }\n }\n return isAllowed;\n };\n\n const isKraDetails = () => {\n let isAllowed;\n if (!srIdList.addressId) {\n return btnEnableDisableProceed(true);\n }\n if (\n JSON.stringify(kraDetails.webSign) !== \"{}\" &&\n JSON.stringify(kraDetails.panCard) !== \"{}\" &&\n childSr &&\n showHide.is_digilocker_flow\n ? true\n : JSON.stringify(kraDetails.photo) !== \"{}\"\n ) {\n if (\n JSON.stringify(kraDetails.panCard) === \"{}\" ||\n JSON.stringify(kraDetails.webSign) === \"{}\"\n ) {\n isAllowed = false;\n } else {\n isAllowed = true;\n }\n } else {\n isAllowed = false;\n }\n if (isAllowed) {\n isAllowed = btnEnableDisableProceed(isAllowed);\n }\n\n return isAllowed;\n };\n async function getMergeDocumentForPA(fileAttachements: any) {\n if (\n permantAddressFile &&\n permantAddressFile2 &&\n permantAddressFile.fileName &&\n permantAddressFile.fileData &&\n permantAddressFile2.fileName &&\n permantAddressFile2.fileData\n ) {\n // if (permantAddressFile.fileName.split(\".\")[1] === \"pdf\" && permantAddressFile2.fileName.split(\".\")[1] === \"pdf\") {\n // fileAttachements.push({\n // fileName: permantAddressFile.fileName,\n // fileData: permantAddressFile.fileData,\n // documentTypeName: permantAddressProof,\n // });\n // fileAttachements.push({\n // fileName: permantAddressFile2.fileName,\n // fileData: permantAddressFile2.fileData,\n // documentTypeName: permantAddressProof,\n // });\n // } else {\n let uploadImageObj = {\n applicationId: personalDetails?.accountCodeField\n ? personalDetails?.accountCodeField\n : accountCode,\n image1: permantAddressFile.fileData,\n image2: permantAddressFile2.fileData,\n imagename1: permantAddressFile.fileName,\n imagename2: permantAddressFile2.fileName,\n };\n try {\n let mergerResp = await getMergeDocumentBase64(uploadImageObj);\n if (mergerResp) {\n if (childSr) {\n return {\n fileName: \"merge_document_PA.pdf\",\n fileData: mergerResp,\n documentTypeName: permantAddressProof,\n };\n } else {\n if (fileAttachements) {\n fileAttachements.push({\n fileName: \"merge_document_PA.pdf\",\n fileData: mergerResp,\n documentTypeName: permantAddressProof,\n });\n }\n }\n }\n console.log(permantAddressFile.fileName);\n } catch (error) {\n //console.log(error);\n apiError();\n }\n //}\n } else {\n fileAttachements.push({\n fileName: permantAddressFile.fileName,\n fileData: permantAddressFile.fileData,\n documentTypeName: permantAddressProof,\n });\n }\n }\n async function getMergeDocumentForCA(fileAttachements: any) {\n if (\n correspondenceAddressFile &&\n correspondenceAddressFile2 &&\n correspondenceAddressFile.fileName &&\n correspondenceAddressFile.fileData &&\n correspondenceAddressFile2.fileName &&\n correspondenceAddressFile2.fileData\n ) {\n // if (correspondenceAddressFile.fileName.split(\".\")[1] === \"pdf\" && correspondenceAddressFile2.fileName.split(\".\")[1] === \"pdf\") {\n // fileAttachements.push({\n // fileName: correspondenceAddressFile.fileName,\n // fileData: correspondenceAddressFile.fileData,\n // documentTypeName: correspondenceAddressProof,\n // });\n // fileAttachements.push({\n // fileName: correspondenceAddressFile2.fileName,\n // fileData: correspondenceAddressFile2.fileData,\n // documentTypeName: correspondenceAddressProof,\n // });\n // } else {\n let uploadImageObj = {\n applicationId: personalDetails?.accountCodeField\n ? personalDetails?.accountCodeField\n : accountCode,\n image1: correspondenceAddressFile.fileData,\n image2: correspondenceAddressFile2.fileData,\n imagename1: correspondenceAddressFile.fileName,\n imagename2: correspondenceAddressFile2.fileName,\n };\n let mergerResp = await getMergeDocumentBase64(uploadImageObj);\n if (mergerResp) {\n if (childSr) {\n return {\n fileName: \"merge_document_CA.pdf\",\n fileData: mergerResp,\n documentTypeName: correspondenceAddressProof,\n };\n } else {\n if (fileAttachements) {\n fileAttachements.push({\n fileName: \"merge_document_CA.pdf\",\n fileData: mergerResp,\n documentTypeName: correspondenceAddressProof,\n });\n }\n }\n }\n //}\n } else {\n fileAttachements.push({\n fileName: correspondenceAddressFile.fileName,\n fileData: correspondenceAddressFile.fileData,\n documentTypeName: correspondenceAddressProof,\n });\n }\n }\n async function checkCKYCValidation() {\n try {\n let ckycValidateResp = false,\n ckycValidate = false;\n let ckycResp = await GetCKYCValidation();\n // let ckycValidation = await ServiceClientValidation({\n // subtype: \"CKYC Update\",\n // });\n if (ckycResp) {\n if (ckycResp.match(\"No\")) {\n ckycValidateResp = true;\n } else {\n ckycValidateResp = false;\n setExistingCKYCUpdateSR(ckycResp);\n }\n props.setLoader(false);\n }\n ckycValidate = true;\n // if (ckycValidation) {\n // if (ckycValidation.match(\"BOAcoountNumber not found\")) {\n // ckycValidate = true;\n // } else {\n // ckycValidate = false;\n // setExistingCKYCUpdateSR(ckycValidation);\n // }\n // props.setLoader(false);\n // }\n if (ckycValidateResp && ckycValidate) {\n setExistingCKYCUpdateSR(\"\");\n props.showFooter(true);\n } else {\n props.showFooter(false);\n }\n } catch (error) {\n props.setLoader(false);\n apiError();\n }\n }\n function apiError() {\n props.onSubmit(\"createRequestApiError\", {\n content:\n \"There was some problem in raising service request. Please try again later.\",\n headerText: \"New Service Request\",\n });\n }\n const handleSubmitForBank = (fileDetails: any) => {\n // setDropValChangedForBank(false);\n if (fileDetails && fileDetails.docFile && fileDetails.base64Data) {\n var actualbase64Data = fileDetails.base64Data.split(\",\");\n // setBankFile({\n // fileName: fileDetails.docFile,\n // fileData: actualbase64Data[1],\n // });\n } else {\n // setBankFile(\"\");\n }\n };\n const handleSubmitForIncome = (fileDetails: any) => {\n if (fileDetails && fileDetails.docFile && fileDetails.base64Data) {\n var actualbase64Data = fileDetails.base64Data.split(\",\");\n setIncomeFile({\n fileName: fileDetails.docFile,\n base64Data: actualbase64Data[1],\n });\n } else {\n setIncomeFile(\"\");\n }\n };\n const handleSubmitForProfile = (fileDetails: any) => {\n if (fileDetails && fileDetails.docFile && fileDetails.base64Data) {\n setProfileFile({\n fileName: fileDetails.docFile,\n fileData: fileDetails.base64Data.split(\",\")[1],\n });\n } else {\n setProfileFile(undefined);\n }\n };\n const handleSubmitForPermantAddressFile = (fileDetails: any) => {\n setDropValChangedPA(false);\n if (fileDetails && fileDetails.docFile && fileDetails.base64Data) {\n setPermantAddressFile({\n fileName: fileDetails.docFile,\n fileData: fileDetails.base64Data.split(\",\")[1],\n });\n } else {\n setPermantAddressFile(\"\");\n }\n };\n const handleSubmitForPermantAddressFile2 = (fileDetails: any) => {\n setDropValChangedPA(false);\n if (fileDetails && fileDetails.docFile && fileDetails.base64Data) {\n setPermantAddressFile2({\n fileName: fileDetails.docFile,\n fileData: fileDetails.base64Data.split(\",\")[1],\n });\n } else {\n setFrontBack(false);\n setPermantAddressFile2(\"\");\n }\n };\n\n const handleSubmitForCorrespondenceAddressFile = (fileDetails: any) => {\n setDropValChangedCA(false);\n if (fileDetails && fileDetails.docFile && fileDetails.base64Data) {\n setCorrespondenceFile({\n fileName: fileDetails.docFile,\n fileData: fileDetails.base64Data.split(\",\")[1],\n });\n } else {\n setCorrespondenceFile(\"\");\n }\n };\n\n const handleSubmitForCorrespondenceAddressFile2 = (fileDetails: any) => {\n setDropValChangedCA(false);\n if (fileDetails && fileDetails.docFile && fileDetails.base64Data) {\n setcorrespondenceAddressFile2({\n fileName: fileDetails.docFile,\n fileData: fileDetails.base64Data.split(\",\")[1],\n });\n } else {\n setFrontBackForCA(false);\n setcorrespondenceAddressFile2(\"\");\n }\n };\n function clearPermanentAddressFiles() {\n setPermantAddressFile(undefined);\n setPermantAddressFile2(undefined);\n }\n\n function returnAddressProofAccountReactivation(\n addressProof: any,\n isPermanent: boolean\n ) {\n if (!childSr) {\n return \"\";\n }\n if (addressProof && isPermanent) {\n return \"AddressProof_P\";\n } else {\n return \"AddressProof_C\";\n }\n }\n\n async function submitRequest() {\n props.setLoader(true);\n try {\n let fileAttachements: any = [];\n let addressProofForPermanent = \"\",\n addressProofForCA = \"\",\n mergedPA: any,\n mergedCA: any;\n addressProofForPermanent = permantAddressProof;\n addressProofForCA = correspondenceAddressProof;\n if (\n permantAddressFile &&\n permantAddressFile.fileName &&\n permantAddressFile.fileData &&\n addressProofForPermanent\n ) {\n if (addressProofForPermanent === \"Aadhar\") {\n let maskedObj = {\n proof: addressProofForPermanent,\n accountCode: personalDetails?.accountCodeField\n ? personalDetails?.accountCodeField\n : accountCode,\n fileData: permantAddressFile.fileData,\n fileName: permantAddressFile.fileName,\n };\n let respObj = await getMaskedAdhar(maskedObj, true);\n if (respObj.fileData && respObj.fileName) {\n permantAddressFile.fileData = respObj.fileData;\n permantAddressFile.fileName = respObj.fileName;\n } else {\n permantAddressFile.fileData = respObj;\n }\n if (\n permantAddressFile2 &&\n permantAddressFile2.fileName &&\n permantAddressFile2.fileData\n ) {\n maskedObj.fileName = permantAddressFile2.fileName;\n maskedObj.fileData = permantAddressFile2.fileData;\n let respObj = await getMaskedAdhar(maskedObj, true);\n if (respObj.fileData && respObj.fileName) {\n permantAddressFile2.fileData = respObj.fileData;\n permantAddressFile2.fileName = respObj.fileName;\n } else {\n permantAddressFile2.fileData = respObj;\n }\n }\n }\n mergedPA = await getMergeDocumentForPA(fileAttachements);\n }\n if (\n correspondenceAddressFile &&\n correspondenceAddressFile.fileName &&\n correspondenceAddressFile.fileData &&\n addressProofForCA\n ) {\n if (addressProofForCA === \"Aadhar\") {\n let maskedObj = {\n proof: addressProofForCA,\n accountCode: personalDetails?.accountCodeField\n ? personalDetails?.accountCodeField\n : accountCode,\n fileData: correspondenceAddressFile.fileData,\n fileName: correspondenceAddressFile.fileName,\n };\n let respObj = await getMaskedAdhar(maskedObj, true);\n if (respObj.fileData && respObj.fileName) {\n correspondenceAddressFile.fileData = respObj.fileData;\n correspondenceAddressFile.fileName = respObj.fileName;\n } else {\n correspondenceAddressFile.fileData = respObj;\n }\n if (\n correspondenceAddressFile2 &&\n correspondenceAddressFile2.fileName &&\n correspondenceAddressFile2.fileData\n ) {\n maskedObj.fileName = correspondenceAddressFile2.fileName;\n maskedObj.fileData = correspondenceAddressFile2.fileData;\n let respObj = await getMaskedAdhar(maskedObj, true);\n if (respObj.fileData && respObj.fileName) {\n correspondenceAddressFile2.fileData = respObj.fileData;\n correspondenceAddressFile2.fileName = respObj.fileName;\n } else {\n correspondenceAddressFile2.fileData = respObj;\n }\n }\n }\n mergedCA = await getMergeDocumentForCA(fileAttachements);\n }\n //if (childSr) await getAutoQCDetails();\n if (profileFile && profileFile.fileName && profileFile.fileData)\n fileAttachements.push({\n fileName: profileFile.fileName,\n fileData: profileFile.fileData,\n documentTypeName: \"ProfilePhoto\",\n });\n\n if (childSr) {\n // fileAttachements.push({\n // // fileName: bankFile?.fileName,\n // // fileData: bankFile?.fileData,\n // documentTypeName: selectedSegincomeProof,\n // });\n fileAttachements.push({\n fileName: incomeFile.fileName,\n fileData: incomeFile.fileData,\n documentTypeName: selectedincomeProof,\n });\n }\n\n if (!childSr) {\n let reqObj: any;\n if (srID) {\n reqObj = [\n {\n serviceRequestId: Number(srID),\n AutoQC: \"No\",\n SRType: \"CKYCChangeMode\",\n attachment: fileAttachements,\n },\n ];\n } else {\n reqObj = {\n requestType: \"CKYC Update\",\n dpID: \"none\",\n fileAttaches: fileAttachements,\n };\n }\n // console.log(reqObj);\n if (srID) {\n let resp = await createSRDocumentUpload(reqObj);\n if (resp && resp === \"All SR Details Updated successfully.\") {\n props.setLoader(false);\n props.onSubmit(\"ckycUpdate\", {\n content: \"Your request will be updated within FIVE working days. Status of your request will be communicated through Email\",\n headerText: \"We have received your request\",\n popupType: \"Success\"\n });\n }\n } else {\n let resp = await CreateServiceRequest(reqObj);\n if (\n typeof resp === \"string\" &&\n resp.includes(\"Previous Request already open for this account-\")\n ) {\n openExistSrPopup();\n return;\n } else {\n if (resp.Message) {\n props.setLoader(false);\n props.onSubmit(\"ckycUpdate\", {\n content: \"Your request will be updated within FIVE working days. Status of your request will be communicated through Email\",\n headerText: \"We have received your request\",\n popupType: \"Success\",\n });\n }\n }\n }\n } else {\n // let listBank;\n // if (newDataBank) {\n // // newDataBank.autoQc = srIdList.bankQc;\n // listBank = allBank.map((bank: any) => {\n // delete bank.received_proof;\n // delete bank.qc_flag;\n // delete bank.received_proof;\n\n // if (bank.new_bank_details) {\n // const NewBankDetails = bank.new_bank_details;\n // delete bank.new_bank_details;\n\n // return {\n // ...bank,\n // NewBankDetails,\n // };\n // } else {\n // return bank;\n // }\n // });\n // // console.log(allBank);\n // }\n\n let reqObj: any = [\n {\n serviceRequestId: Number(props.srId),\n attachment: null,\n SRType: \"ParentWithSR\",\n },\n ];\n if (rejectFlow) {\n reqObj[0].SRType = null;\n }\n\n if (!showHide.ckycStatus && showHide.is_digilocker_flow) {\n console.log(\"ckyc\", digDoc);\n let request = {\n serviceRequestId: Number(srIdList.ckycId),\n AutoQC: \"NA\",\n SRType: rejectFlow ? \"CKYCChangeModeDocument\" : \"CKYC\",\n attachment: [\n {\n fileName: profileFile.fileName,\n fileData: profileFile.fileData,\n documentTypeName: \"Photograph\",\n },\n ],\n };\n if (\n !rejectFlow &&\n digDoc &&\n digDoc.fileName &&\n digDoc.fileData &&\n digDoc.documentTypeName\n )\n request.attachment.push(\n ...(showHide.sameAsPermanent\n ? [\n {\n fileName: digDoc.fileName,\n fileData: digDoc.fileData,\n documentTypeName: digDoc.documentTypeName,\n },\n ]\n : [\n {\n fileName: digDoc.fileName,\n fileData: digDoc.fileData,\n documentTypeName: digDoc.documentTypeName,\n },\n {\n fileName: digDoc.fileName,\n fileData: digDoc.fileData,\n documentTypeName: digDoc.documentTypeName,\n },\n ])\n );\n\n reqObj.push(request);\n\n if (srIdList.addressId) {\n reqObj.push({\n serviceRequestId: Number(srIdList.addressId),\n AutoQC: srIdList.addressQc,\n SRType: rejectFlow ? \"AddressChangeModeDocument\" : \"Address\",\n attachment: [\n {\n fileName: kraDetails.webSign?.fileName,\n fileData: kraDetails.webSign?.fileData,\n documentTypeName: kraDetails.webSign?.documentTypeName,\n },\n {\n fileName: kraDetails.panCard?.fileName,\n fileData: kraDetails.panCard?.fileData,\n documentTypeName: kraDetails.panCard?.documentTypeName,\n },\n // {\n // fileName: photoDigiLoc.fileName,\n // fileData: photoDigiLoc.fileData,\n // documentTypeName: photoDigiLoc.documentTypeName,\n // }\n ],\n });\n }\n } else if (!showHide.ckycStatus && !showHide.is_digilocker_flow) {\n // console.log(\"ckyc\", \"!digie\");\n\n let obj = {\n serviceRequestId: Number(srIdList.ckycId),\n AutoQC: srIdList.addressQc,\n SRType: rejectFlow ? \"CKYCChangeModeDocument\" : \"CKYC\",\n attachment: [\n ...(showHide.sameAsPermanent\n ? [\n {\n fileName:\n mergedPA && mergedPA.fileName\n ? mergedPA.fileName\n : permantAddressFile.fileName,\n fileData:\n mergedPA && mergedPA.fileData\n ? mergedPA.fileData\n : permantAddressFile.fileData,\n documentTypeName: returnAddressProofAccountReactivation(\n addressProofForPermanent,\n true\n ),\n },\n ]\n : [\n {\n fileName:\n mergedPA && mergedPA.fileName\n ? mergedPA.fileName\n : permantAddressFile.fileName,\n fileData:\n mergedPA && mergedPA.fileData\n ? mergedPA.fileData\n : permantAddressFile.fileData,\n documentTypeName: returnAddressProofAccountReactivation(\n addressProofForPermanent,\n true\n ),\n },\n {\n fileName:\n mergedCA && mergedCA.fileName\n ? mergedCA.fileName\n : correspondenceAddressFile.fileName,\n fileData:\n mergedCA && mergedCA.fileData\n ? mergedCA.fileData\n : correspondenceAddressFile.fileData,\n documentTypeName: returnAddressProofAccountReactivation(\n addressProofForCA,\n false\n ),\n },\n ]),\n {\n fileName: profileFile.fileName,\n fileData: profileFile.fileData,\n documentTypeName: \"Photograph\",\n },\n ],\n };\n\n if (!srIdList.addressId) {\n if(kraDetails.webSign && kraDetails.webSign.fileName && kraDetails.webSign.fileData && kraDetails.webSign.documentTypeName){\n obj.attachment.push({\n fileName: kraDetails.webSign?.fileName,\n fileData: kraDetails.webSign?.fileData,\n documentTypeName: kraDetails.webSign?.documentTypeName,\n });\n }\n if(kraDetails.panCard && kraDetails.panCard.fileName && kraDetails.panCard.fileData && kraDetails.panCard.documentTypeName){\n obj.attachment.push({\n fileName: kraDetails.panCard?.fileName,\n fileData: kraDetails.panCard?.fileData,\n documentTypeName: kraDetails.panCard?.documentTypeName,\n });\n } \n if(kraDetails.photo && kraDetails.photo.fileName && kraDetails.photo.fileData && kraDetails.photo.documentTypeName){\n obj.attachment.push({\n fileName: kraDetails.photo?.fileName,\n fileData: kraDetails.photo?.fileData,\n documentTypeName: kraDetails.photo?.documentTypeName,\n }); \n } \n }\n\n reqObj.push(obj);\n if (srIdList.addressId)\n reqObj.push({\n serviceRequestId: Number(srIdList.addressId),\n AutoQC: srIdList.addressQc,\n SRType: rejectFlow ? \"AddressChangeModeDocument\" : \"Address\",\n ipv_code: localStorage.getItem(\"ipvcode\") ? localStorage.getItem(\"ipvcode\") : \"\", \n geo_location: `${localStorage.getItem(\"latitude\")}, ${localStorage.getItem(\"longitude\") }`,\n attachment: [\n ...(showHide.sameAsPermanent\n ? [\n {\n fileName:\n mergedPA && mergedPA.fileName\n ? mergedPA.fileName\n : permantAddressFile.fileName,\n fileData:\n mergedPA && mergedPA.fileData\n ? mergedPA.fileData\n : permantAddressFile.fileData,\n documentTypeName: returnAddressProofAccountReactivation(\n addressProofForPermanent,\n true\n ),\n },\n {\n fileName: kraDetails.webSign?.fileName,\n fileData: kraDetails.webSign?.fileData,\n documentTypeName: kraDetails.webSign?.documentTypeName,\n },\n {\n fileName: kraDetails.panCard?.fileName,\n fileData: kraDetails.panCard?.fileData,\n documentTypeName: kraDetails.panCard?.documentTypeName,\n },\n {\n fileName: kraDetails.photo?.fileName,\n fileData: kraDetails.photo?.fileData,\n documentTypeName: kraDetails.photo?.documentTypeName,\n },\n ]\n : [\n {\n fileName:\n mergedPA && mergedPA.fileName\n ? mergedPA.fileName\n : permantAddressFile.fileName,\n fileData:\n mergedPA && mergedPA.fileData\n ? mergedPA.fileData\n : permantAddressFile.fileData,\n documentTypeName: returnAddressProofAccountReactivation(\n addressProofForPermanent,\n true\n ),\n },\n {\n fileName:\n mergedCA && mergedCA.fileName\n ? mergedCA.fileName\n : correspondenceAddressFile.fileName,\n fileData:\n mergedCA && mergedCA.fileData\n ? mergedCA.fileData\n : correspondenceAddressFile.fileData,\n documentTypeName: returnAddressProofAccountReactivation(\n addressProofForCA,\n false\n ),\n },\n {\n fileName: kraDetails.webSign?.fileName,\n fileData: kraDetails.webSign?.fileData,\n documentTypeName: kraDetails.webSign?.documentTypeName,\n },\n {\n fileName: kraDetails.panCard?.fileName,\n fileData: kraDetails.panCard?.fileData,\n documentTypeName: kraDetails.panCard?.documentTypeName,\n },\n {\n fileName: kraDetails.photo?.fileName,\n fileData: kraDetails.photo?.fileData,\n documentTypeName: kraDetails.photo?.documentTypeName,\n },\n {\n fileName: \"videoIPV.webm\",\n fileData: localStorage.getItem(\"imageData\") ? localStorage.getItem(\"imageData\") : \"\",\n documentTypeName: \"IPV\",\n },\n ]),\n ],\n });\n } else if (showHide.ckycStatus && !showHide.is_digilocker_flow) {\n reqObj.push({\n serviceRequestId: Number(srIdList.addressId),\n AutoQC: srIdList.addressQc,\n SRType: rejectFlow ? \"AddressChangeModeDocument\" : \"Address\",\n ipv_code: localStorage.getItem(\"ipvcode\") ? localStorage.getItem(\"ipvcode\") : \"\",\n geo_location: `${localStorage.getItem(\"latitude\")}, ${localStorage.getItem(\"longitude\") }`,\n attachment: [\n ...(showHide.sameAsPermanent\n ? [\n {\n fileName:\n mergedPA && mergedPA.fileName\n ? mergedPA.fileName\n : permantAddressFile.fileName,\n fileData:\n mergedPA && mergedPA.fileData\n ? mergedPA.fileData\n : permantAddressFile.fileData,\n documentTypeName: returnAddressProofAccountReactivation(\n addressProofForPermanent,\n true\n ),\n },\n {\n fileName: kraDetails.webSign?.fileName,\n fileData: kraDetails.webSign?.fileData,\n documentTypeName: kraDetails.webSign?.documentTypeName,\n },\n {\n fileName: kraDetails.panCard?.fileName,\n fileData: kraDetails.panCard?.fileData,\n documentTypeName: kraDetails.panCard?.documentTypeName,\n },\n {\n fileName: kraDetails.photo?.fileName,\n fileData: kraDetails.photo?.fileData,\n documentTypeName: kraDetails.photo?.documentTypeName,\n },\n {\n fileName: \"videoIPV.webm\",\n fileData: localStorage.getItem(\"imageData\") ? localStorage.getItem(\"imageData\") : \"\",\n documentTypeName: \"IPV\",\n },\n ]\n : [\n {\n fileName:\n mergedPA && mergedPA.fileName\n ? mergedPA.fileName\n : permantAddressFile.fileName,\n fileData:\n mergedPA && mergedPA.fileData\n ? mergedPA.fileData\n : permantAddressFile.fileData,\n documentTypeName: returnAddressProofAccountReactivation(\n addressProofForPermanent,\n true\n ),\n },\n {\n fileName:\n mergedCA && mergedCA.fileName\n ? mergedCA.fileName\n : correspondenceAddressFile.fileName,\n fileData:\n mergedCA && mergedCA.fileData\n ? mergedCA.fileData\n : correspondenceAddressFile.fileData,\n documentTypeName: returnAddressProofAccountReactivation(\n addressProofForCA,\n false\n ),\n },\n {\n fileName: kraDetails.webSign?.fileName,\n fileData: kraDetails.webSign?.fileData,\n documentTypeName: kraDetails.webSign?.documentTypeName,\n },\n {\n fileName: kraDetails.panCard?.fileName,\n fileData: kraDetails.panCard?.fileData,\n documentTypeName: kraDetails.panCard?.documentTypeName,\n },\n {\n fileName: kraDetails.photo?.fileName,\n fileData: kraDetails.photo?.fileData,\n documentTypeName: kraDetails.photo?.documentTypeName,\n },\n {\n fileName: \"videoIPV.webm\",\n fileData: localStorage.getItem(\"imageData\") ? localStorage.getItem(\"imageData\") : \"\",\n documentTypeName: \"IPV\",\n },\n ]),\n ],\n });\n } else if (showHide.ckycStatus && showHide.is_digilocker_flow) {\n if (srIdList.addressId) {\n reqObj.push({\n serviceRequestId: Number(srIdList.addressId),\n AutoQC: srIdList.addressQc,\n SRType: rejectFlow ? \"AddressChangeModeDocument\" : \"Address\",\n attachment: [\n {\n fileName: kraDetails.webSign?.fileName,\n fileData: kraDetails.webSign?.fileData,\n documentTypeName: kraDetails.webSign?.documentTypeName,\n },\n {\n fileName: kraDetails.panCard?.fileName,\n fileData: kraDetails.panCard?.fileData,\n documentTypeName: kraDetails.panCard?.documentTypeName,\n },\n ],\n });\n }\n }\n\n let resp = await createSRDocumentUpload(reqObj);\n \n if (\n resp &&\n (resp === \"Document uploaded successfully.\" ||\n resp === \"All SR Details Updated successfully.\")\n ) {\n props.next();\n return;\n } else {\n props.setLoader(false);\n props.onSubmit(\"createRequestApiError\", {\n content:\n \"There was some problem in raising service request. Please try again later.\",\n headerText: \"New Service Request\",\n });\n }\n }\n } catch (error) {\n console.log(error);\n props.setLoader(false);\n props.onSubmit(\"createRequestApiError\", {\n content:\n \"There was some problem in raising service request. Please try again later.\",\n headerText: \"New Service Request\",\n });\n }\n }\n useImperativeHandle(ref, () => ({\n submitData() {\n submitRequest();\n },\n }));\n const openExistSrPopup = () => {\n props.setLoader(false);\n props.onSubmit(\"ckycUpdate\", {\n headerText: \"You have an active service request\",\n content:\n \"You already have an active service request. Once it is updated, you will be able to raise new request.\",\n });\n };\n return (\n
    \n {/* {loader && (\n \n \n
    \n )} */}\n { (showWarningPopup == \"show\") &&\n \n
    \n \n
    \n
    \n setShowWarningPopup(\"clicked\")}\n value=\"OK\"\n btnTyp=\"primary\"\n >\n OK\n \n
    \n
    }\n {!props.loader && !showIpvScreen && (\n
    \n {existingCKYCUpdateSR && (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    CKYC under Process

    \n

    \n {existingCKYCUpdateSR}\n

    \n
    \n
    \n )}\n {!existingCKYCUpdateSR && (\n
    \n {personalDetails && !childSr && (\n
    \n
    \n \n {}}\n defaultValue={personalDetails.accountCodeField}\n onBlur={(error) => {}}\n className=\"formInpCont mgT7\"\n placeholder=\"\"\n maxLength={10}\n required\n type=\"text\"\n disabled={true}\n helpTextColor=\"blue\"\n />\n
    \n
    \n \n {}}\n defaultValue={personalDetails.pANNumberField}\n onBlur={(error) => {}}\n className=\"formInpCont mgT7\"\n placeholder=\"\"\n maxLength={10}\n required\n type=\"text\"\n disabled={true}\n helpTextColor=\"blue\"\n />\n
    \n
    \n )}\n\n {childSr && showHide && !showHide.ckycStatus && (\n
    \n \n

    Scanned Copy Of Passport size photo

    \n \n {!(profileFile && profileFile.fileName) && (\n

    \n Kindly upload clear and coloured images of original\n documents of proof of Identity\n

    \n )}\n
    \n )}\n {!childSr && (\n
    \n \n

    Scanned Copy Of Passport size photo

    \n \n {!(profileFile && profileFile.fileName) && (\n

    \n Kindly upload clear and coloured images of original\n documents of proof of Identity\n

    \n )}\n
    \n )}\n\n {showHide && !showHide.is_digilocker_flow && (\n
    \n {!childSr &&\n personalDetails &&\n personalDetails.addressField && (\n
    \n
    \n Permanent{\" \"}\n {showHide.sameAsPermanent\n ? \"and Correspondence \"\n : \"\"}\n Address\n
    \n {!childSr && (\n
    \n

    \n Different Address?\n \n {\" \"}\n Click here\n {\" \"}\n to modify address.\n

    \n
    \n )}\n

    \n {personalDetails.addressField}\n

    \n
    \n )}\n \n \n

    Scanned Copy Of Address Proof

    \n
    \n {\n setPermantAddressProof(value);\n setDropValChangedPA(true);\n setFrontBack(frontBack);\n clearPermanentAddressFiles();\n }}\n isSearchable={false}\n />\n
    \n \n {frontBack && (\n \n )}\n
    \n
    \n

    \n If you want to update address as per aadhar, please\n process from digilocker\n

    \n {frontBack ? (\n
    \n {!(\n permantAddressFile &&\n permantAddressFile.fileName &&\n permantAddressFile2 &&\n permantAddressFile2.fileName\n ) && (\n <>\n

    \n Kindly upload clear and coloured images of\n original documents of proof of Address\n

    \n {permantAddressProof &&\n permantAddressProof === \"Aadhar\" && (\n

    \n If you are uploading your Aadhaar Card, please\n ensure that the Aadhaar No. is masked (only\n last 4 digits to be visible).\n

    \n )}\n \n )}\n
    \n ) : (\n
    \n {!(\n permantAddressFile && permantAddressFile.fileName\n ) && (\n <>\n

    \n Kindly upload clear and coloured images of\n original documents of proof of Address\n

    \n {permantAddressProof &&\n permantAddressProof === \"Aadhar\" && (\n

    \n If you are uploading your Aadhaar Card, please\n ensure that the Aadhaar No. is masked (only\n last 4 digits to be visible).\n

    \n )}\n \n )}\n
    \n )}\n
    \n
    \n {!frontBack && (\n \n \n {\n setFrontBack(true);\n }}\n >\n Add Front/Back Document\n \n \n )}\n {frontBack && (\n \n \n {\n setFrontBack(false);\n }}\n >\n Remove Front/Back Document\n \n \n )}\n
    \n {!childSr &&\n personalDetails &&\n personalDetails.currentAddressField &&\n !showHide.sameAsPermanent && (\n
    \n
    \n Correspondence Address\n
    \n

    \n {personalDetails.currentAddressField}\n

    \n
    \n )}\n {!showHide.sameAsPermanent && (\n <>\n
    \n \n

    Scanned Copy Of Address Proof

    \n
    \n {\n setCorrespondenceAddressProof(value);\n setDropValChangedCA(true);\n setFrontBackForCA(frontBackForCA);\n setCorrespondenceFile(undefined);\n setcorrespondenceAddressFile2(undefined);\n }}\n isSearchable={false}\n />\n
    \n \n {frontBackForCA && (\n \n )}\n
    \n
    \n

    \n If you want to update address as per aadhar, please\n process from digilocker\n

    \n {frontBackForCA ? (\n
    \n {!(\n correspondenceAddressFile &&\n correspondenceAddressFile.fileName &&\n correspondenceAddressFile2 &&\n correspondenceAddressFile2.fileName\n ) && (\n <>\n

    \n Kindly upload clear and coloured images of\n original documents of proof of Address\n

    \n {correspondenceAddressProof &&\n correspondenceAddressProof === \"Aadhar\" && (\n

    \n If you are uploading your Aadhaar Card,\n please ensure that the Aadhaar No. is\n masked (only last 4 digits to be visible).\n

    \n )}\n \n )}\n
    \n ) : (\n
    \n {!(\n correspondenceAddressFile &&\n correspondenceAddressFile.fileName\n ) && (\n <>\n

    \n Kindly upload clear and coloured images of\n original documents of proof of Address\n

    \n {/* {correspondenceAddressProof &&\n correspondenceAddressProof === \"Aadhar\" && (\n

    \n If you are uploading your Aadhaar Card,\n please ensure that the Aadhaar No. is\n masked (only last 4 digits to be visible).\n

    \n )} */}\n \n )}\n
    \n )}\n
    \n
    \n {!frontBackForCA && (\n \n \n {\n setFrontBackForCA(true);\n }}\n >\n Add Front/Back Document\n \n \n )}\n {frontBackForCA && (\n \n \n {\n setFrontBackForCA(false);\n }}\n >\n Remove Front/Back Document\n \n \n )}\n
    \n \n )}\n
    \n )}\n {!childSr && (\n <>\n

    \n The changes mentioned will be applicable for your Trading\n and Default Demat account\n

    \n \n )}\n {childSr && showHide && srIdList.addressId && (\n \n )}\n {childSr && (\n <>\n {/* {showHide && !showHide.pennyDrop && (\n <>\n
    \n \n

    \n Scanned copy of Bank proof for account.
    \n Document should have your Name, Account Number, IFSC\n and MICR code clearly visible\n

    \n
    \n
    \n
    \n
    \n {\n setSelectedSegincomeProof(value);\n setDropValChangedForBank(true);\n setBankFile(undefined);\n }}\n isSearchable={false}\n />\n
    \n
    \n
    \n\n \n {!(bankFile && bankFile.fileName) && (\n

    \n Kindly upload clear and coloured images of original\n documents of proof of bank\n

    \n )}\n
    \n \n )} */}\n\n {showHide && !showHide.showIncome && (\n <>\n
    \n
    \n Income Proof\n
    \n

    \n Scanned copy of income proof (Max size 1Mb)\n

    \n
    \n
    \n
    \n
    \n {\n setSelectedincomeProof(value);\n setDropValChangedForIncome(true);\n }}\n isSearchable={false}\n />\n
    \n
    \n
    \n\n \n
    \n \n )}\n
    \n
    \n (showWarningPopup != \"show\" && showWarningPopup != \"clicked\" && !localStorage.getItem(\"digiAuthKey\"))? setShowWarningPopup(\"show\") : ((accReactFlow || (dormantMoreThanYear == 'true')) && !localStorage.getItem(\"digiAuthKey\")) ? setShowIpvScreen(true) : submitRequest()}\n >\n {childSr ? \"Proceed\" : \"Submit\"}\n \n \n {!(\n (consentType &&\n (consentType?.includes(\"email\") ||\n consentType?.includes(\"mobile\") ||\n consentType?.includes(\"emailMob\"))) ||\n addressConsent?.includes(\"Change of Address\")\n ) && (\n \n Cancel\n \n )}\n {((consentType &&\n (consentType?.includes(\"email\") ||\n consentType?.includes(\"mobile\") ||\n consentType?.includes(\"emailMob\"))) ||\n addressConsent?.includes(\"Change of Address\")) && (\n \n )}\n \n
    \n
    \n \n )}\n
    \n )}\n
    \n )}\n {showIpvScreen && }\n
    \n );\n});\n","import * as React from \"react\";\nimport { config } from \"../../../config/domain\";\n\ninterface statusScreenProps {\n headerText?: string;\n desc?: string;\n status: \"Pending\" | \"Rejected\" | \"Success\";\n}\n\nexport const StatusScreen = (props: statusScreenProps) => {\n function redirect(url: string) {\n if (url.indexOf(\"http://\") === 0 || url.indexOf(\"https://\") === 0) {\n // If url is absolute\n window.location.href = url;\n }\n }\n return (\n <>\n {/* <> */}\n\n {props.status === \"Pending\" && (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {props.headerText && (\n
    \n

    {props.headerText}

    \n \n {props.desc}\n

    \n
    \n )}\n {!props.headerText && (\n
    \n
    Payment Failed
    \n

    \n Please Contact your RM or write to us at\n

    \n \n helpdesk@nuvama.com\n \n
    \n {\n e.preventDefault();\n localStorage.removeItem(\"paymentReponse\");\n redirect(\n config.root +\n \"/clientarea/service-request/account-reactivation\"\n );\n }}\n >\n Try Again\n \n
    \n
    \n )}\n
    \n
    \n )}\n {/*
    */}\n\n {props.status === \"Rejected\" && (\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    Payment Failed
    \n

    \n Please Contact your RM or write to us at\n

    \n \n helpdesk@nuvama.com\n \n
    \n {\n e.preventDefault();\n localStorage.removeItem(\"paymentReponse\");\n redirect(\n config.root +\n \"/clientarea/service-request/account-reactivation\"\n );\n }}\n >\n Try Again\n \n
    \n
    \n
    \n
    \n )}\n {/*
    */}\n {/* requestSent html */}\n {props.status === \"Success\" && (\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    Request sent
    \n

    \n Please Contact your RM or write to us at\n

    \n helpdesk@nuvama.com\n
    \n {\n e.preventDefault();\n localStorage.removeItem(\"paymentReponse\");\n redirect(\n config.root +\n \"/clientarea/service-request/account-reactivation\"\n );\n }}\n >\n Try Again\n \n
    \n
    \n
    \n
    \n )}\n \n );\n};\n","import * as React from \"react\";\nimport { useState } from \"react\";\nimport TocDropdown from \"../../../generic/tocDropdown\";\nexport const FamilySection = (props: any) => {\n var initialObj = {\n mobile_relationship: \"\",\n email_relationship: \"\",\n mobile_account_name: \"\",\n email_account_name: \"\",\n email_accountCode: \"\",\n mobile_account_code: \"\",\n };\n\n const [familyDeclReqForMob, setFamilyDeclReqForMob] = useState(\n props.emailMobileForm.mobileMatches.length ? [initialObj] : []\n );\n const [familyDeclReqForEmailMob, setFamilyDeclReqForEmailMob] = useState(\n props.emailMobileForm.emailAndMobileMatches.length ? [initialObj] : []\n );\n const [familyDeclReqForEmail, setFamilyDeclReqForEmail] = useState(\n props.emailMobileForm.emailMatches.length ? [initialObj] : []\n );\n React.useEffect(() => {\n if (props.emailMobileForm.mobileMatches.length)\n setFamilyDeclReqForMob([initialObj]);\n else setFamilyDeclReqForMob([]);\n }, [props.emailMobileForm.mobileMatches]);\n React.useEffect(() => {\n if (props.emailMobileForm.emailAndMobileMatches.length)\n setFamilyDeclReqForEmailMob([initialObj]);\n else setFamilyDeclReqForEmailMob([]);\n }, [props.emailMobileForm.emailAndMobileMatches]);\n React.useEffect(() => {\n if (props.emailMobileForm.emailMatches.length)\n setFamilyDeclReqForEmail([initialObj]);\n else setFamilyDeclReqForEmail([]);\n }, [props.emailMobileForm.emailMatches]);\n\n React.useEffect(() => {\n let allSelected = familyDeclReqForMob\n .concat(familyDeclReqForEmailMob)\n .concat(familyDeclReqForEmail)\n .every((ele: any) => {\n return ele.mobile_relationship || ele.email_relationship;\n });\n\n if (allSelected) {\n props.onFamilySubmit(\n familyDeclReqForEmail.length > 0 && familyDeclReqForMob.length > 0\n ? [\n {\n mobile_relationship: familyDeclReqForMob[0].mobile_relationship,\n email_relationship: familyDeclReqForEmail[0].email_relationship,\n mobile_account_name: familyDeclReqForMob[0].mobile_account_name,\n email_account_name: familyDeclReqForEmail[0].email_account_name,\n email_accountCode: familyDeclReqForEmail[0].email_accountCode\n ? familyDeclReqForEmail[0].email_accountCode.trim()\n : \"\",\n mobile_account_code: familyDeclReqForMob[0].mobile_account_code\n ? familyDeclReqForMob[0].mobile_account_code.trim()\n : \"\",\n },\n ]\n : familyDeclReqForMob\n .concat(familyDeclReqForEmailMob)\n .concat(familyDeclReqForEmail)\n );\n }\n }, [familyDeclReqForMob, familyDeclReqForEmailMob, familyDeclReqForEmail]);\n\n const updateFamilyDeclReq = (id: number, data: any, category: any) => {\n let dataup: any = [];\n\n switch (category) {\n case \"emailMob\":\n dataup = [...familyDeclReqForEmailMob];\n dataup[id] = data;\n setFamilyDeclReqForEmailMob(dataup);\n break;\n case \"mob\":\n dataup = [...familyDeclReqForMob];\n dataup[id] = data;\n setFamilyDeclReqForMob(dataup);\n break;\n case \"email\":\n dataup = [...familyDeclReqForEmail];\n dataup[id] = data;\n setFamilyDeclReqForEmail(dataup);\n break;\n }\n };\n const toCamelCase = (string: any) => {\n return string.replace(/\\w\\S*/g, function (txt: any) {\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\n });\n };\n return (\n <>\n
    \n

    Family Declaration

    \n

    \n Your mobile number and/or email ID matches with already existing\n account. Mention your Relation with each account or change your Email\n ID or Mobile Number\n

    \n
    \n
    \n
    \n {props.emailMobileForm.mobileMatches.length > 0 &&\n props.emailMobileForm.mobileMatches.map((ele: any, index: any) => (\n <>\n
    \n
    \n

    {toCamelCase(ele.accName)}

    \n

    Mobile number matches

    \n
    \n
    \n {\n return i !== 0;\n }\n )\n : ele.familyRelDropdownOptions\n ? ele.familyRelDropdownOptions\n : []\n }\n onSelect={(val) => {\n if (val !== \"\")\n updateFamilyDeclReq(\n index,\n {\n mobile_relationship: val,\n email_relationship: \"\",\n mobile_account_name: ele.accName,\n email_account_name: \"\",\n email_accountCode: \"\",\n mobile_account_code: ele.accCode\n ? ele.accCode.trim()\n : \"\",\n },\n \"mob\"\n );\n }}\n isSearchable={false}\n />\n
    \n
    \n \n ))}\n\n {props.emailMobileForm.emailMatches.length > 0 &&\n props.emailMobileForm.emailMatches.map((ele: any, index: any) => (\n <>\n
    \n
    \n

    {toCamelCase(ele.accName)}

    \n

    Email matches

    \n
    \n
    \n {\n return i !== 0;\n }\n )\n : ele.familyRelDropdownOptions\n ? ele.familyRelDropdownOptions\n : []\n }\n onSelect={(val) => {\n if (val !== \"\")\n updateFamilyDeclReq(\n index,\n {\n mobile_relationship: \"\",\n email_relationship: val,\n mobile_account_name: \"\",\n email_account_name: ele.accName,\n email_accountCode: ele.accCode\n ? ele.accCode.trim()\n : \"\",\n mobile_account_code: \"\",\n },\n \"email\"\n );\n }}\n isSearchable={false}\n />\n
    \n
    \n \n ))}\n
    \n {props.emailMobileForm.emailAndMobileMatches.length > 0 &&\n props.emailMobileForm.emailAndMobileMatches.map(\n (ele: any, index: any) => (\n <>\n
    \n

    {toCamelCase(ele.accName)}

    \n

    \n Email and Mobile number matches\n

    \n
    \n
    \n {\n return i !== 0;\n }\n )\n : ele.familyRelDropdownOptions\n ? ele.familyRelDropdownOptions\n : []\n }\n onSelect={(val: any) => {\n if (val !== \"\")\n updateFamilyDeclReq(\n index,\n {\n mobile_relationship: val,\n email_relationship: val,\n mobile_account_name: ele.accName,\n email_account_name: ele.accName,\n email_accountCode: ele.accCode\n ? ele.accCode.trim()\n : \"\",\n mobile_account_code: ele.accCode\n ? ele.accCode.trim()\n : \"\",\n },\n \"emailMob\"\n );\n }}\n isSearchable={false}\n />\n
    \n \n )\n )}\n
    \n
    \n \n );\n};\n","import * as React from \"react\";\n\nimport { useState } from \"react\";\nimport InputField from \"../../generic/inputField\";\nimport {\n ValidateOtp,\n SendOtp,\n otpSend,\n otpValidate,\n} from \"../../service/serviceRequest/srApiService\";\nexport const OtpSection = (props: any) => {\n const [otp, setOtp] = useState(\"\");\n const [showVerify, setShowVerify] = useState(true);\n const [error, setError] = useState(\"\");\n\n const [fiveSecondOver, setfiveSecondOver] = useState(false);\n const [otpCount, setOtpCount] = useState(0);\n const [invalidOtpCount, setInvalidOtpCount] = useState(0);\n const [invalidOtpCnt, setinvalidOtpCnt] = useState(0);\n\n const [maxLimitExceeded, setMaxLimitExceeded] = useState(false);\n\n React.useEffect(() => {\n if (props.details.srType) otpSendV2();\n else sendOtp(); \n }, []);\n React.useEffect(() => {\n if(props.showVerify === true || props.showVerify === false)\n setShowVerify(props.showVerify);\n }, [props.showVerify]);\n\n React.useEffect(() => {\n if (otpCount === 4) setError(\"OTP can be resend max 3 times.\");\n }, [otpCount]);\n\n React.useEffect(() => {\n if (invalidOtpCount === 3) setError(\"Time out of 5 seconds.\");\n if (!invalidOtpCount && error)\n setError(error.replace(\"Time out of 5 seconds.\", \"\"));\n }, [invalidOtpCount]);\n\n React.useEffect(() => {\n if (invalidOtpCnt >= 10 && props.details.srType)\n setError(\"Maximum limit exceeds. Please try after half an hour.\");\n }, [invalidOtpCnt]);\n\n React.useEffect(() => {\n if (error.includes(\"Time out of 5 seconds.\"))\n setTimeout(() => {\n setInvalidOtpCount(0);\n }, 5000);\n }, [error]);\n\n const verifyOtp = async () => {\n if (window.location.href.includes(\"/account-reactivation\")) {\n props.otpVerified();\n } else {\n let payload = {\n otpCode: otp,\n text: \"\",\n };\n if (props.details.type === \"mobileNo\")\n Object.assign(payload, {\n mobno: \"91\" + props.details.mobileNo,\n email: \"\",\n });\n else Object.assign(payload, { email: props.details.emailId, mobno: \"\" });\n\n let verifyRes = await ValidateOtp(payload);\n\n if (verifyRes.sts) props.otpVerified();\n else {\n setError(\"Incorrect OTP\");\n setInvalidOtpCount(invalidOtpCount + 1);\n }\n }\n };\n const sendOtp = async () => {\n setInvalidOtpCount(0);\n setError(\"\");\n setfiveSecondOver(false);\n setOtpCount(otpCount + 1);\n setTimeout(() => {\n setfiveSecondOver(true);\n }, 5000);\n\n let payload = {\n modifyProfile: true,\n otpCode: \"\",\n };\n if (props.details.type === \"mobileNo\")\n Object.assign(payload, {\n mobno: \"91\" + props.details.mobileNo,\n email: \"\",\n });\n else Object.assign(payload, { email: props.details.emailId, mobno: \"\" });\n await SendOtp(payload);\n };\n\n const otpSendV2 = async () => {\n if (props.setLoader) props.setLoader(true);\n setInvalidOtpCount(0);\n setError(\"\");\n setfiveSecondOver(false);\n setOtpCount(otpCount + 1);\n setTimeout(() => {\n setfiveSecondOver(true);\n }, 5000);\n\n const reqObj: any = {\n acTyp: props.details.acTyp && props.details.acTyp === \"COMEQ\" ? \"EQ\" : props.details.acTyp,\n reqTyp: \"generate\",\n sr: props.details.srType,\n srAcTyp: props.details.srAcType,\n };\n // console.log(reqObj);\n if (props.details.dpId) \n reqObj.dpId = props.details.dpId;\n\n if (props.details.type === \"mobileNo\")\n reqObj.mobile = props.details.mobileNo;\n if (props.details.type === \"emailId\") \n reqObj.email = props.details.emailId;\n\n if(props.details.type === \"mobile_and_email\") {\n reqObj.mobile = props.details.mobileNo;//\"7090334840\";//\n reqObj.email = props.details.emailId;//\"dhanyashreeajila@gmail.com\";//\n }\n if(props.details.userType)\n reqObj.userType = props.details.userType;\n if(props.details.segmentType)\n reqObj.segmentType = props.details.segmentType;\n\n let res = await otpSend(reqObj); \n if (props.setLoader) props.setLoader(false);\n\n if (res.error && res.error.errMsg) {\n if (res.error.errCd === \"SR0001\") {\n setError(\"Maximum limit exceeds. Please try after half an hour.\");\n setMaxLimitExceeded(true);\n }\n }\n \n\n //resp{\"appID\":\"663051cfbac7d699a1c59b96048b50e7\",\"config\":{\"app\":1,\"exp\":1648255541931,\"info\":14,\"prmBndExp\":1641551427846},\"data\":{\"type\":\"srotpResDao\",\"msg\":\"SUCCESS\"},\"msgID\":\"5bf296ad-68f8-4ba4-b944-b911414ca0c1\",\"srvTm\":1648296757028}\n };\n\n const otpVerifyV2 = async () => {\n if (props.setLoader) props.setLoader(true);\n const reqObj: any = {\n acTyp: props.details.acTyp && props.details.acTyp === \"COMEQ\" ? \"EQ\" : props.details.acTyp,\n otp: otp,\n sr: (props.details.srType === \"Normal to SMTF Fund Movement Preference\") ? props.details.sr : props.details.srType\n };\n if (props.details.type === \"mobileNo\")\n reqObj.mobile = props.details.mobileNo;\n if (props.details.type === \"emailId\") \n reqObj.email = props.details.emailId;\n\n if(props.details.type === \"mobile_and_email\") {\n reqObj.mobile = props.details.mobileNo;\n reqObj.email = props.details.emailId;\n }\n \n let verifyRes: any = await otpValidate(reqObj);\n // console.log(\"verifyRes\", verifyRes);\n if (props.setLoader) props.setLoader(false);\n \n if (verifyRes && verifyRes.data) props.otpVerified(verifyRes.data.unId);\n else if (verifyRes.error) {\n if (invalidOtpCnt + 1 >= 10) {\n setError(\"Max limit exceeded. Please try again after some time.\");\n } else {\n setError(\"Incorrect OTP\");\n setInvalidOtpCount(invalidOtpCount + 1);\n }\n setinvalidOtpCnt(invalidOtpCnt + 1);\n }\n \n };\n\n return (\n <>\n
    \n
    \n

    \n We've sent an OTP to the registered{\" \"}\n {(props.details.type === \"mobileNo\") ? \"mobile no.\" : (props.details.type === \"mobile_and_email\") ? \"mobile no. and email ID\" : \"email ID\"}\n

    \n
    \n
    \n
    \n {\n if (\n !error.includes(\"OTP can be resend max 3 times.\") &&\n !error.includes(\"Time out of 5 seconds.\")\n )\n setError(\"\");\n setOtp(val);\n }}\n integer={true}\n defaultValue={otp}\n onBlur={() => {}}\n className=\"formInpCont mgT7 w-50\"\n placeholder=\"Enter OTP\"\n maxLength={4}\n required\n helpText={\n !fiveSecondOver &&\n otpCount <= 4 &&\n otpCount !== 0 &&\n otpCount !== 1\n ? \"OTP has been resent\"\n : \"\"\n }\n // errorText={error}\n helpTextColor=\"blue\"\n disabled={maxLimitExceeded || invalidOtpCnt >= 10}\n >\n
    \n
    \n {showVerify && ( {\n if (props.details.srType) otpVerifyV2();\n else verifyOtp();\n e.preventDefault();\n }}\n >\n Verify\n )}\n {!showVerify && (\n //
    \n \n //
    \n )}\n
    \n
    \n {error &&
    {error}
    }\n {otpCount < 4 && !maxLimitExceeded && showVerify && (\n
    \n

    \n Didn't get the OTP? Shall we{\" \"}\n = 10 ||\n error.includes(\"Time out of 5 seconds\")\n ? \"no-cursor\"\n : \"\"\n }\n onClick={(e) => {\n if (\n !fiveSecondOver ||\n maxLimitExceeded ||\n invalidOtpCnt >= 10 ||\n error.includes(\"Time out of 5 seconds\")\n ) {\n e.preventDefault();\n return;\n }\n setOtp(\"\");\n setError(\"\");\n if (props.details.srType) otpSendV2();\n else sendOtp();\n }}\n >\n Send it again?\n \n

    \n
    \n )}\n
    \n \n );\n};\n","import React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useState,\n} from \"react\";\nimport InputField from \"../../../generic/inputField\";\nimport { asyncGetPersonalDetails } from \"../../../service/postLogin/clientProfileAPIService\";\nimport {\n GetFamilyRelationshipList,\n ServiceClientValidation,\n SendWhatsappConsent,\n CreateServiceRequestDetails,\n GetDepositoryDetails,\n} from \"../../../service/serviceRequest/srApiService\";\nimport * as esignService from \"../../../service/esign/esignService\";\nimport { StatusScreen } from \"../../generic/statusScreen\";\nimport { FamilySection } from \"./familySection\";\nimport { emailRegex, integerExp } from \"../../../utils/regex\";\nimport { OtpSection } from \"../../generic/otpSection\";\nimport Loader from \"../../../generic/loader\";\nimport Checkbox from \"../../../generic/checkbox\";\nimport { useQuery } from \"../../../service/urlHelper\";\nimport { getAccData } from \"../../../service/login/loginService\";\nexport const EmailMobileModification = forwardRef((props: any, ref: any) => {\n // const mandatoryField = useQuery().get(\"consentType\"); //mandatory consent\n let mandatoryField = \"\";\n const consentList = getAccData(\"cnsntLst\")\n ? getAccData(\"cnsntLst\")\n : JSON.parse(localStorage.getItem(\"cnsntLst\") || \"{}\");\n let hasEmailMobCons =\n consentList && consentList.length > 0\n ? consentList.some((ele: any) => {\n if (ele.name === \"emailMob\") return ele;\n })\n : undefined;\n\n if (hasEmailMobCons) {\n // if (getAccData(\"accs\").emailCnsnt && !getAccData(\"accs\").mobCnsnt)\n // mandatoryField = \"email\";\n // else if (!getAccData(\"accs\").emailCnsnt && getAccData(\"accs\").mobCnsnt)\n // mandatoryField = \"mobile\";\n // else if (getAccData(\"accs\").emailCnsnt && getAccData(\"accs\").mobCnsnt)\n // mandatoryField = \"emailMob\";\n // if(props.childSr)\n mandatoryField = \"none\";\n }\n\n const [childSr, setChildSr] = useState(\n props.childSr ? props.childSr : false\n );\n\n const [emailMobileForm, setEmailMobileForm] = useState({\n //form fields\n actualMobileNo: \"\",\n mobileNo: \"\",\n actualEmailId: \"\",\n emailId: \"\",\n //\n\n showFamilySection: false,\n familyRelDropdownOptions: [] as any,\n emailAndMobileMatches: [] as any,\n mobileMatches: [] as any,\n emailMatches: [] as any,\n familyDeclFlag: false,\n enableSubmit: true,\n familyDeclReq: [] as any,\n });\n const [errors, setErrors] = useState({\n emailId: \"\",\n mobileNo: \"\",\n });\n //const [props.loader, setLoader] = useState(true);\n const [existingEmailMobileSR, setExistingEmailMobileSR] = useState(\"\");\n const [disableMobile, setDisableMobile] = useState(false);\n const [disableEmail, setDisableEmail] = useState(false);\n const [emailOtpVerified, setEmailOtpVerified] = useState(false);\n const [mobOtpVerified, setMobOtpVerified] = useState(false);\n const [showEmailOtp, setShowEmailOtp] = useState(false);\n const [showMobileOtp, setShowMobileOtp] = useState(false);\n const [errorMessage, setErrorMessage] = React.useState();\n const [accCode, setAccCode] = React.useState(\"\");\n\n React.useEffect(() => {\n if (childSr) {\n getPersonalDetails();\n setEmailMobileForm({\n ...emailMobileForm,\n actualEmailId: props.userData.EmailId\n ? props.userData.EmailId.toLowerCase()\n : \"\",\n actualMobileNo: props.userData.Mobile ? props.userData.Mobile : \"\",\n emailId: props.userData.EmailId\n ? props.userData.EmailId.toLowerCase()\n : \"\",\n mobileNo: props.userData.Mobile ? props.userData.Mobile : \"\",\n });\n props.setLoader(false);\n if (mandatoryField && childSr) props.childSrB(false);\n } else {\n checkExistingEmailMobSR();\n }\n\n return () => {};\n }, [props.userData]);\n\n React.useEffect(() => {\n if (!childSr) props.enableSubmit(emailMobileForm.enableSubmit);\n }, [emailMobileForm.enableSubmit]);\n const isEmailModified = () => {\n return true; //!isEqual(emailMobileForm.actualEmailId, emailMobileForm.emailId);\n };\n const isMobModified = () => {\n return true; //!isEqual(emailMobileForm.mobileNo, emailMobileForm.actualMobileNo);\n };\n\n const isValidForm = (emailId?: any, mobNo?: any, onChange?: boolean) => {\n return emailMobileForm.emailId &&\n emailMobileForm.mobileNo &&\n !errors.emailId &&\n !errors.mobileNo &&\n onChange\n ? !validateForm(\"emailId\", emailId, false) &&\n !validateForm(\"mobileNo\", mobNo, false)\n : !validateForm(\"emailId\", emailMobileForm.emailId, false) &&\n !validateForm(\"mobileNo\", emailMobileForm.mobileNo, false);\n };\n\n React.useEffect(() => {\n if (disableMobile && disableEmail) {\n if (emailOtpVerified && mobOtpVerified) {\n getFamilyRelationshipList();\n }\n } else if (disableMobile || disableEmail) {\n getFamilyRelationshipList();\n }\n\n return () => {};\n }, [emailOtpVerified, mobOtpVerified]);\n\n React.useEffect(() => {\n if (errors.mobileNo || errors.emailId)\n setEmailMobileForm({ ...emailMobileForm, enableSubmit: false });\n if (isValidForm() && emailMobileForm.familyDeclReq.length > 0) {\n setEmailMobileForm({ ...emailMobileForm, enableSubmit: true });\n if (childSr) props.childSrB(true);\n }\n\n return () => {};\n }, [emailMobileForm.familyDeclReq, errors]);\n\n const getBtnText = () => {\n return (\n (//isEmailModified() &&\n ((!disableEmail && !showEmailOtp && !emailOtpVerified) || //isMobModified() &&\n (!disableMobile && !showMobileOtp && !mobOtpVerified)) &&\n isValidForm()) ||\n (childSr && !disableEmail && !disableMobile)\n ? \"Generate OTP\"\n : !showEmailOtp && !showMobileOtp\n ? \"Confirm & Esign\"\n : \"Submit\"\n );\n };\n const getPersonalDetails = async () => {\n try {\n const profile = await asyncGetPersonalDetails();\n if (profile) {\n setAccCode(profile.accountCodeField);\n if (!childSr)\n setEmailMobileForm({\n ...emailMobileForm,\n actualEmailId: profile.emailAddressField\n ? profile.emailAddressField.toLowerCase()\n : \"\",\n actualMobileNo: profile.mobileNumberField\n ? profile.mobileNumberField\n : \"\",\n emailId: profile.emailAddressField\n ? profile.emailAddressField.toLowerCase()\n : \"\",\n mobileNo: profile.mobileNumberField\n ? profile.mobileNumberField\n : \"\",\n });\n props.setLoader(false);\n }\n } catch (err) {\n // console.log(err);\n openSRErrorPopup();\n }\n };\n\n const checkExistingEmailMobSR = async () => {\n props.showFooter(true);\n setExistingEmailMobileSR(\"\");\n getPersonalDetails();\n };\n\n const getFamilyRelRes = async (val: any) => {\n return await GetFamilyRelationshipList({\n Searchvalue: val,\n });\n };\n\n const isEqual = (val1: number | string, val2: number | string) => {\n return false; //val1 === val2;\n };\n\n const getFamilyRelationshipList = async () => {\n try {\n if (\n (!disableMobile && disableEmail) ||\n (disableMobile && !disableEmail)\n ) {\n if (!childSr) props.setLoader(true);\n // let payload = {\n // Searchvalue:\n // (emailMobileForm.emailMatches.length > 0 || !emailOtpVerified) &&\n // mobOtpVerified\n // ? \"15BHAUMIK@GMAIL.COM\"\n // : \"15BHAUMIK@GMAIL.COM\",\n // };\n let familyRelListRes: any;\n familyRelListRes = await getFamilyRelRes(\n (emailMobileForm.emailMatches.length > 0 || !emailOtpVerified) &&\n mobOtpVerified\n ? emailMobileForm.mobileNo\n : emailMobileForm.emailId\n );\n if (!childSr) props.setLoader(false);\n let emailMobMatches: any = [];\n let mobMatches: any = [];\n let emailMatches: any = [];\n\n if (familyRelListRes && familyRelListRes.objUser) {\n let dropdownOptions: any = familyRelListRes?.objAvailability.filter(\n (ele: any) => {\n return ele.Available > 0 && ele.ValueItem !== 5;\n }\n );\n if (dropdownOptions.length) {\n let familyDet = {\n familyRelDropdownOptions: [\n {\n value: \"\",\n display: \"Select Relationship\",\n },\n ].concat(\n dropdownOptions.map((ele: any, i: number) => {\n return { value: ele.Tag, display: ele.Tag };\n })\n ),\n accCode: familyRelListRes?.objUser.Accountcode,\n accName: familyRelListRes?.objUser.AccountName || \"\",\n };\n\n if (disableMobile && !disableEmail) mobMatches.push(familyDet);\n if (disableEmail && !disableMobile) emailMatches.push(familyDet);\n\n if (!familyRelListRes) openSRErrorPopup();\n }\n }\n\n setEmailMobileForm({\n ...emailMobileForm,\n emailAndMobileMatches: emailMobMatches || [],\n mobileMatches:\n emailMobileForm.mobileMatches.length === 0 ||\n emailMobMatches.length > 0\n ? mobMatches\n : emailMobileForm.mobileMatches,\n emailMatches:\n emailMobileForm.emailMatches.length === 0 ||\n emailMobMatches.length > 0\n ? emailMatches\n : emailMobileForm.emailMatches,\n showFamilySection:\n mobMatches.length > 0 ||\n emailMatches.length > 0 ||\n emailMobMatches.length > 0,\n enableSubmit:\n mobMatches.length === 0 &&\n emailMatches.length === 0 &&\n emailMobMatches.length === 0,\n familyDeclFlag:\n emailMobileForm.mobileMatches.length === 0 ||\n emailMobMatches.length > 0 ||\n emailMobileForm.emailMatches.length === 0 ||\n emailMobMatches.length > 0,\n });\n } else if (disableMobile && disableEmail) {\n if (props.setLoader) props.setLoader(true);\n let mobRelListRes: any;\n mobRelListRes = await getFamilyRelRes(emailMobileForm.mobileNo);\n\n let emailRelListRes: any;\n emailRelListRes = await getFamilyRelRes(emailMobileForm.emailId);\n\n if (props.setLoader) props.setLoader(false);\n let emailMobMatches: any = [];\n let mobMatches: any = [];\n let emailMatches: any = [];\n\n if (\n mobRelListRes &&\n mobRelListRes.objUser &&\n accCode &&\n mobRelListRes.objUser.Accountcode &&\n mobRelListRes.objUser.Accountcode.trim() !== accCode.trim()\n ) {\n let dropdownOptions: any = mobRelListRes?.objAvailability.filter(\n (ele: any) => {\n return ele.Available > 0 && ele.ValueItem !== 5;\n }\n );\n if (dropdownOptions.length > 0) {\n let familyDet = {\n familyRelDropdownOptions: [\n {\n value: \"\",\n display: \"Select Relationship\",\n },\n ].concat(\n dropdownOptions.map((ele: any, i: number) => {\n return { value: ele.Tag, display: ele.Tag };\n })\n ),\n accCode: mobRelListRes?.objUser.Accountcode,\n accName: mobRelListRes?.objUser.AccountName || \"\",\n };\n\n mobMatches.push(familyDet);\n\n if (!mobRelListRes) openSRErrorPopup();\n }\n }\n if (\n emailRelListRes &&\n emailRelListRes.objUser &&\n accCode &&\n emailRelListRes.objUser.Accountcode &&\n emailRelListRes.objUser.Accountcode.trim() !== accCode.trim()\n ) {\n let dropdownOptions: any = emailRelListRes?.objAvailability.filter(\n (ele: any) => {\n return ele.Available > 0 && ele.ValueItem !== 5;\n }\n );\n if (dropdownOptions.length > 0) {\n let familyDet = {\n familyRelDropdownOptions: [\n {\n value: \"\",\n display: \"Select Relationship\",\n },\n ].concat(\n dropdownOptions.map((ele: any, i: number) => {\n return { value: ele.Tag, display: ele.Tag };\n })\n ),\n accCode: emailRelListRes?.objUser.Accountcode,\n accName: emailRelListRes?.objUser.AccountName || \"\",\n };\n\n if (mobMatches.length > 0) {\n let hasDuplicateAccName = hasSameAccName(\n mobMatches,\n familyDet?.accName\n );\n\n if (hasDuplicateAccName) {\n emailMobMatches.push(familyDet);\n } else emailMatches.push(familyDet);\n } else emailMatches.push(familyDet);\n\n if (!emailRelListRes) openSRErrorPopup();\n }\n }\n // console.log(\n // mobMatches,\n // emailMatches,\n // emailMobMatches,\n // \"222222222222222222222\"\n // );\n\n setEmailMobileForm({\n ...emailMobileForm,\n emailAndMobileMatches: emailMobMatches || [],\n mobileMatches: emailMobMatches.length > 0 ? [] : mobMatches,\n emailMatches: emailMobMatches.length > 0 ? [] : emailMatches,\n showFamilySection:\n mobMatches.length > 0 ||\n emailMatches.length > 0 ||\n emailMobMatches.length > 0,\n enableSubmit:\n mobMatches.length === 0 &&\n emailMatches.length === 0 &&\n emailMobMatches.length === 0,\n familyDeclFlag:\n mobMatches.length > 0 ||\n emailMatches.length > 0 ||\n emailMobMatches.length > 0,\n familyDeclReq: [],\n });\n }\n } catch (error) {\n // console.log(error);\n openSRErrorPopup();\n }\n };\n const hasSameAccName = (arr: any, accName: string) => {\n return arr[0].accName === accName;\n };\n const validateForm = (inputType: any, val: any, validate: boolean) => {\n let hasError = true;\n switch (inputType) {\n case \"mobileNo\":\n // if (!validate)\n // setEmailMobileForm({\n // ...emailMobileForm,\n // mobileNo: val,\n // });\n if (!val.trim() || !integerExp.test(val)) {\n if (validate)\n setErrors({\n ...errors,\n mobileNo: \"\",\n });\n } else if (val.trim().length > 10 || val.trim().length < 10) {\n if (validate)\n setErrors({\n ...errors,\n mobileNo: \"Please enter a valid mobile number.\",\n });\n } else {\n hasError = false;\n if (errors.mobileNo)\n setErrors({\n ...errors,\n mobileNo: \"\",\n });\n }\n\n break;\n case \"emailId\":\n // if (!validate)\n // setEmailMobileForm({\n // ...emailMobileForm,\n // emailId: val.toLowerCase(),\n // });\n if (!val.trim()) {\n if (validate) setErrors({ ...errors, emailId: \"\" });\n } else if (!emailRegex.test(val)) {\n if (validate)\n setErrors({ ...errors, emailId: \"Please enter a valid email id.\" });\n } else {\n hasError = false;\n if (errors.emailId)\n setErrors({\n ...errors,\n emailId: \"\",\n });\n }\n\n break;\n }\n // console.log(\"hasError\", hasError);\n\n return hasError;\n };\n const checkMandat = () => {\n let mandatoryAnswer =\n (mandatoryField === \"email\" && isEmailModified()) ||\n (mandatoryField === \"mobile\" && isMobModified()) ||\n (mandatoryField === \"emailMob\" && isMobModified() && isEmailModified()) ||\n (mandatoryField === \"none\" && true);\n if (!mandatoryAnswer && mandatoryField === \"email\" && childSr) {\n setErrorMessage(\"Please update email id\");\n } else if (!mandatoryAnswer && mandatoryField === \"mobile\" && childSr) {\n setErrorMessage(\"Please update mobile no\");\n } else if (!mandatoryAnswer && mandatoryField === \"emailMob\" && childSr) {\n setErrorMessage(\"Please update an email id and mobile no\");\n }\n if (mandatoryAnswer && mandatoryField) setErrorMessage(\"\");\n return mandatoryAnswer;\n };\n\n const modifySubmit = (emailId: any, mobNo: any) => {\n if (\n // (isEmailModified() || isMobModified()) &&\n isValidForm(emailId, mobNo, true)\n ) {\n let enable = true;\n if (getBtnText() === \"Generate OTP\") {\n if (disableMobile && showMobileOtp) {\n setShowMobileOtp(false);\n }\n if (disableEmail && showEmailOtp) {\n setShowEmailOtp(false);\n }\n if (emailMobileForm.showFamilySection) {\n setEmailMobileForm({\n ...emailMobileForm,\n enableSubmit: enable,\n showFamilySection: false,\n familyDeclReq: [],\n familyDeclFlag: false,\n });\n\n if (childSr) props.childSrB(enable);\n } else {\n // console.log(\"else1,\", enable);\n\n setEmailMobileForm({\n ...emailMobileForm,\n enableSubmit: enable,\n });\n if (childSr)\n props.childSrB(mandatoryField ? checkMandat() && enable : enable);\n }\n } else if (getBtnText() === \"Submit\") {\n if (disableMobile && !mobOtpVerified) setShowMobileOtp(true);\n if (disableEmail && !emailOtpVerified) setShowEmailOtp(true);\n // console.log(\"disableMobile\", disableMobile, disableEmail);\n\n if (\n (disableMobile && !mobOtpVerified) ||\n (disableEmail && !emailOtpVerified)\n ) {\n // console.log(\"22222222222222\");\n enable = false;\n }\n if (\n emailMobileForm.mobileMatches.length +\n emailMobileForm.emailAndMobileMatches.length +\n emailMobileForm.emailMatches.length >\n 0\n ) {\n // console.log(\"11111111111111\");\n\n setEmailMobileForm({\n ...emailMobileForm,\n enableSubmit: enable,\n showFamilySection: true,\n });\n } else\n setEmailMobileForm({\n ...emailMobileForm,\n enableSubmit: enable,\n });\n\n // console.log(\"else.\", enable);\n\n if (childSr)\n props.childSrB(mandatoryField ? checkMandat() && enable : enable);\n } else {\n if (\n emailMobileForm.mobileMatches.length +\n emailMobileForm.emailAndMobileMatches.length +\n emailMobileForm.emailMatches.length !==\n emailMobileForm.familyDeclReq.length\n ) {\n if (childSr) props.childSrB(false);\n else\n setEmailMobileForm({\n ...emailMobileForm,\n enableSubmit: false,\n });\n } else {\n if (childSr) props.childSrB(true);\n else\n setEmailMobileForm({\n ...emailMobileForm,\n enableSubmit: true,\n });\n }\n }\n } else {\n if (\n ((disableEmail && emailOtpVerified && !disableMobile) ||\n (disableMobile && mobOtpVerified && !disableEmail) ||\n (disableEmail &&\n emailOtpVerified &&\n disableMobile &&\n mobOtpVerified)) &&\n !emailMobileForm.showFamilySection &&\n isValidForm(emailId, mobNo, true)\n ) {\n setEmailMobileForm({ ...emailMobileForm, enableSubmit: true });\n\n if (childSr) props.childSrB(true);\n\n // console.log(\"2...............\");\n } else if (\n childSr &&\n isValidForm(emailId, mobNo, true) &&\n !isEmailModified() &&\n !isMobModified()\n ) {\n // console.log(\"3...................\");\n props.childSrB(\n mandatoryField\n ? checkMandat()\n : showEmailOtp ||\n showMobileOtp ||\n (emailMobileForm.showFamilySection &&\n emailMobileForm.mobileMatches.length +\n emailMobileForm.emailAndMobileMatches.length +\n emailMobileForm.emailMatches.length !==\n emailMobileForm.familyDeclReq.length)\n ? false\n : true\n );\n } else {\n setEmailMobileForm({ ...emailMobileForm, enableSubmit: false });\n if (childSr) props.childSrB(false);\n\n // console.log(\"else...............\");\n }\n }\n if (!childSr) {\n props.setBtnText(getBtnText());\n } else {\n props.setBtnTxt(getBtnText());\n }\n };\n useEffect(() => {\n if (emailMobileForm.emailId || emailMobileForm.mobileNo)\n modifySubmit(emailMobileForm.emailId, emailMobileForm.mobileNo);\n }, [\n emailMobileForm.emailId,\n emailMobileForm.mobileNo,\n showEmailOtp,\n showMobileOtp,\n emailMobileForm.showFamilySection,\n ]);\n\n useEffect(() => {\n if (disableEmail) setShowEmailOtp(true);\n }, [disableEmail]);\n\n useEffect(() => {\n if (disableMobile) setShowMobileOtp(true);\n }, [disableMobile]);\n\n const onChange = (inputType: any, val: any) => {\n let hasErr = validateForm(inputType, val, false); //form validation\n\n if (inputType == \"mobileNo\") {\n // modifySubmit(emailMobileForm.emailId, val);\n setEmailMobileForm({\n ...emailMobileForm,\n mobileNo: val,\n });\n } else {\n // modifySubmit(val, emailMobileForm.mobileNo);\n\n setEmailMobileForm({\n ...emailMobileForm,\n emailId: val,\n });\n }\n };\n const onBlur = (inputType: any, val: any) => {\n let hasErr = validateForm(inputType, val, true); //form validation\n if (!hasErr) {\n } else {\n setEmailMobileForm({ ...emailMobileForm, enableSubmit: false });\n }\n };\n const handleFamilySubmit = (familyDeclReq: any) => {\n setEmailMobileForm({\n ...emailMobileForm,\n familyDeclReq,\n });\n };\n\n //esign flow\n const proceedToEsign = async (createSRRes: any) => {\n try {\n let result: any = await esignService.proceedToEsign(\n createSRRes.Id,\n \"emailMob\",\n true\n );\n if (!result) openErrorPopup();\n } catch (err) {\n // console.log(err);\n\n openErrorPopup();\n }\n };\n\n const createSR = async (payload: any, val: any) => {\n try {\n let createSRRes = await CreateServiceRequestDetails(payload);\n if (\n typeof createSRRes === \"string\" &&\n createSRRes.includes(\"Previous Request already open for this account-\")\n ) {\n openExistSrPopup();\n return;\n } else if (\n typeof createSRRes === \"string\" &&\n createSRRes.includes(\n \"One Service Request with same email/mobile is already open\"\n )\n ) {\n openDuplicateDetailsSrPopup();\n return;\n } else {\n if (createSRRes && createSRRes.Message) {\n if (val) await proceedToEsign(createSRRes);\n //proceed & esign\n else openSRSuccessPopup(createSRRes);\n } else openSRErrorPopup();\n }\n } catch (err) {\n // console.log(err);\n\n openSRErrorPopup();\n }\n };\n\n const openExistSrPopup = () => {\n props.setLoader(false);\n props.onSubmit(\"emailMobile\", {\n headerText: \"You have an active service request\",\n content:\n \"You already have an active service request. Once it is updated, you will be able to raise new request.\",\n });\n };\n const openDuplicateDetailsSrPopup = () => {\n props.setLoader(false);\n props.onSubmit(\"emailMobile\", {\n headerText: \"Service request rejected\",\n content:\n \"The mobile no./email address entered is already in process for updation for a different account. Please update an alternate mobile no./email address to proceed OR since the mobile no./email address pending for updation in a different account is related to you (family account), wait for it to get processed. Once processed, you can use the same mobile no./email address along with family declaration.\",\n });\n };\n const openSRSuccessPopup = (createSRRes: any) => {\n props.setLoader(false);\n let paramObj: any = {\n headerText: \"We have received your request!\",\n content:\n \"Your request will be updated within TWO working days. Status of your request will be communicated through Email\",\n popupType: \"Success\",\n };\n\n if (createSRRes.base64Data) {\n paramObj.btnText = \"Download E-Signed Form\";\n paramObj.base64Data = createSRRes.base64Data;\n }\n props.onSubmit(\"emailMobile\", paramObj);\n };\n const openSRErrorPopup = () => {\n props.setLoader(false);\n if (!childSr)\n props.onSubmit(\"emailMobile\", {\n headerText:\n \"There was some problem in raising service request. Please try again later.\",\n });\n };\n const openErrorPopup = () => {\n props.setLoader(false);\n if (!childSr)\n props.onSubmit(\"emailMobile\", {\n headerText: \"There was some error while proceeding with esign process.\",\n });\n };\n const submitForm = async (val?: any) => {\n if (childSr) {\n setDisableMobile(true);\n setDisableEmail(true);\n setEmailMobileForm({ ...emailMobileForm, enableSubmit: false });\n return;\n } else if (\n (!showMobileOtp &&\n !mobOtpVerified &&\n !isEqual(emailMobileForm.actualMobileNo, emailMobileForm.mobileNo)) ||\n (!isEqual(emailMobileForm.actualEmailId, emailMobileForm.emailId) &&\n !showEmailOtp &&\n !emailOtpVerified)\n ) {\n // console.log(\"11111111111111111111111\");\n\n if (\n !isEqual(emailMobileForm.actualMobileNo, emailMobileForm.mobileNo) &&\n !mobOtpVerified\n ) {\n // console.log(\"1\");\n\n // setShowMobileOtp(true);\n setDisableMobile(true);\n }\n if (\n !isEqual(emailMobileForm.actualEmailId, emailMobileForm.emailId) &&\n !emailOtpVerified\n ) {\n // console.log(\"2\");\n\n // setShowEmailOtp(true);\n setDisableEmail(true);\n }\n setEmailMobileForm({ ...emailMobileForm, enableSubmit: false });\n return;\n } else {\n props.setLoader(true);\n let payload = {\n requestType: \"Email & Mobile Modification\",\n dpID: await getDepositoryDet(),\n new_mobile_number: emailMobileForm.mobileNo,\n new_email_id: emailMobileForm.emailId,\n old_mobile_number: emailMobileForm.actualMobileNo,\n old_email_id: emailMobileForm.actualEmailId,\n familyDeclReq: emailMobileForm.familyDeclReq,\n family_declaration_flag: emailMobileForm.familyDeclReq.length > 0,\n AutoQC: \"NA\",\n };\n\n try {\n if (disableMobile) {\n try {\n var consentRes = await SendWhatsappConsent({\n type: \"optin\",\n recipients: [\n {\n recipient: emailMobileForm.mobileNo,\n source: \"edel-web\",\n },\n ],\n });\n if (!consentRes || !consentRes.data.sts) openSRErrorPopup();\n else createSR(payload, val);\n } catch (err) {\n // console.log(err);\n\n openSRErrorPopup();\n }\n } else createSR(payload, val);\n } catch (err) {\n // console.log(err);\n\n openSRErrorPopup();\n }\n }\n };\n\n const setData = (key: any) => {\n if (key === \"emailId\") {\n setEmailOtpVerified(true);\n setShowEmailOtp(false);\n }\n if (key === \"mobileNo\") {\n setMobOtpVerified(true);\n setShowMobileOtp(false);\n }\n };\n const getDepositoryDet = async () => {\n try {\n const resp = await GetDepositoryDetails();\n\n if (resp && resp.dPIdField && resp.dPAccountNumberField) {\n return resp.dPIdField + resp.dPAccountNumberField;\n } else {\n return \"None\";\n }\n } catch (error) {\n openSRErrorPopup();\n }\n };\n useImperativeHandle(ref, () => ({\n submitData(val: any) {\n if (val !== \"Submit\") submitForm(\"proceed to esign\");\n else submitForm();\n },\n getSubmitData() {\n const reqObj = {\n new_mobile_number: emailMobileForm.mobileNo,\n new_email_id: emailMobileForm.emailId,\n old_mobile_number: emailMobileForm.actualMobileNo,\n old_email_id: emailMobileForm.actualEmailId,\n familyDeclReq: emailMobileForm.familyDeclReq,\n family_declaration_flag: emailMobileForm.familyDeclReq.length > 0,\n };\n\n let emailMobileFormObj = {\n ...emailMobileForm,\n showEmailOtp,\n showMobileOtp,\n mobOtpVerified,\n emailOtpVerified,\n btnText: getBtnText(),\n };\n return { reqObj, emailMobileFormObj };\n },\n }));\n\n return (\n <>\n {!props.loader && (\n <>\n {existingEmailMobileSR ? (\n \n ) : (\n \"\"\n )}\n {!existingEmailMobileSR && (\n <>\n
    \n
    \n \n
    \n
    \n

    +91

    \n
    \n\n {\n onChange(\"mobileNo\", value);\n }}\n defaultValue={emailMobileForm.mobileNo}\n onBlur={() => {\n // onBlur(\"mobileNo\",emailMobileForm.mobileNo);\n }}\n onMouseOut={(val) => {\n onBlur(\"mobileNo\", val);\n }}\n className=\"formInpCont mgT7\"\n placeholder=\"\"\n maxLength={10}\n required\n integer={true}\n disabled={disableMobile}\n helpTextColor=\"blue\"\n // errorText={errors.mobileNo}\n suffix={\n mobOtpVerified ? (\n \n ) : (\n \"\"\n )\n }\n >\n
    \n\n

    {errors.mobileNo}

    \n {!isMobModified() &&\n (mandatoryField === \"mobile\" ||\n mandatoryField === \"emailMob\") && (\n

    Please update mobile.

    \n )}\n\n {showMobileOtp && (\n
    \n {\n setData(\"mobileNo\");\n }}\n verifyDisabled={\n errors.mobileNo ||\n errors.emailId ||\n !emailMobileForm.mobileNo ||\n !emailMobileForm.emailId\n }\n />\n
    \n )}\n {!showMobileOtp && showEmailOtp && (\n
    \n )}\n
    \n
    \n \n\n {\n onChange(\"emailId\", value.toLowerCase());\n return value.toLowerCase();\n }}\n defaultValue={emailMobileForm.emailId}\n className=\"formInpCont mgT7\"\n placeholder=\"\"\n disabled={disableEmail}\n onBlur={() => {\n // onBlur(\"emailId\",emailMobileForm.emailId);\n }}\n suffix={\n emailOtpVerified ? (\n \n ) : (\n \"\"\n )\n }\n onMouseOut={(val) => {\n onBlur(\"emailId\", val);\n }}\n required\n helpTextColor=\"blue\"\n errorText={errors.emailId}\n >\n {!isEmailModified() &&\n (mandatoryField === \"email\" ||\n mandatoryField === \"emailMob\") && (\n

    Please update email Id.

    \n )}\n\n {showEmailOtp && (\n
    \n {\n setData(\"emailId\");\n }}\n verifyDisabled={\n errors.mobileNo ||\n errors.emailId ||\n !emailMobileForm.mobileNo ||\n !emailMobileForm.emailId\n }\n />\n
    \n )}\n
    \n
    \n {emailMobileForm.showFamilySection &&\n !showEmailOtp &&\n !showMobileOtp && (\n \n )}\n {disableMobile && (\n
    \n
    \n {}}>\n \n {\" \"}\n I am aware that my contact details will be used for all\n future communications by Nuvama, including\n communications through WhatsApp.\n \n {\" \"}\n
    \n
    \n )}\n {/* {childSr && errorMessage && <>\n

    \n {errorMessage}\n

    \n \n } */}\n {!childSr && (\n <>\n

    \n The changes mentioned will be applicable for your Trading\n and Default Demat account\n

    \n \n )}\n \n )}\n \n )}\n \n );\n});\n","import React, { createRef, useRef, useState } from \"react\";\nimport InputField from \"../../../generic/inputField\";\nimport RadioButton from \"../../../generic/radioButton\";\nimport TocDropdown from \"../../../generic/tocDropdown\";\nimport { IListObj } from \"../../../types/genericTypes\";\nimport { getCountryList } from \"../../../service/generic/otherApi\";\nimport { alphaNumExp } from \"../../../utils/regex\";\nimport { forEachChild } from \"typescript\";\n\nconst radioValues1: Array = [\n { value: \"TIN\", display: \"TIN\" },\n { value: \"Others\", display: \"Others\" },\n];\n\nexport const TaxResident = (props: any) => {\n const [listCountry, setListCountry] = useState([]);\n const [selectCountry, setSelectedCountry] = useState();\n\n React.useEffect(() => {\n getCountryDetails();\n }, []);\n React.useEffect(() => {\n scrollOnClick();\n }, []);\n\n const scrollOnClick = (id = 0) => {\n setTimeout(() => {\n const section = window.document.querySelector(`#fatca${id}`);\n section?.scrollIntoView({ behavior: \"smooth\" });\n }, 0);\n };\n React.useEffect(() => {\n if (props.taxForm) {\n for (let i = 0; i < props.taxForm.length; i++) {\n if (props.taxForm[i].idTypeOther === \"Others\") {\n let dataup = [...props.taxForm];\n dataup[i] = { ...props.taxForm[i] };\n dataup[i].idTypeOther = \"\";\n props.SetTaxForm(dataup);\n }\n }\n }\n return () => {};\n }, [props.taxForm, props.error]);\n const openSRErrorPopup = () => {\n props.onSubmit(\"FATCA Update\", {\n headerText:\n \"There was some problem in raising service request. Please try again later.\",\n });\n };\n const getCountryDetails = async () => {\n try {\n let countryOfList = await getCountryList(\"Country\");\n if (\n countryOfList &&\n countryOfList.data.enumlist.length > 0 &&\n listCountry.length < 100\n ) {\n let arr: any = [];\n countryOfList.data.enumlist.forEach((element: any) => {\n arr.push(element.displayItem);\n });\n arr.sort();\n const countryL = arr.map((list: any) => {\n return { value: list, display: list };\n });\n setListCountry([...countryL]);\n }\n } catch (error) {\n openSRErrorPopup();\n }\n };\n\n const remove = (id: any) => {\n let obj = [...props.taxForm];\n obj.splice(id, 1);\n props.SetTaxForm(obj);\n };\n const onSet = (name: string, value: any, id: any) => {\n for (let i = 0; i < props.taxForm.length; i++) {\n if (name === \"idNo\" || name === \"idTypeOther\" || name === \"country\") {\n if (i === id) {\n let dataup = [...props.taxForm];\n if (name === \"idNo\") {\n dataup[id] = {\n ...props.taxForm[id],\n [`${name}`]: value,\n [`${\"idNoError\"}`]: \"\",\n [`${\"nodisplayError\"}`]:\n value.length > 0\n ? alphaNumExp.test(value)\n ? \"\"\n : \"Enter valid Identification Number\"\n : \"\",\n };\n } else {\n dataup[id] = {\n ...props.taxForm[id],\n [`${name}`]: value,\n };\n }\n props.SetTaxForm(dataup);\n }\n } else {\n if (i === id) {\n let dataup = [...props.taxForm];\n dataup[id] = { ...props.taxForm[id], [`${name}`]: value };\n dataup[id].idType = dataup[id][\"idType\" + id];\n dataup[id].idTypeOther = dataup[id][\"idType\" + id];\n props.SetTaxForm(dataup);\n }\n }\n }\n };\n\n return (\n <>\n {props.taxForm &&\n props.taxForm.map((obj: any, id: any) => (\n
    \n {id !== 0 && (\n
    \n
    \n
    \n Tax Resident Country {id + 1}\n
    \n
    \n
    \n \n {\n remove(id);\n }}\n >\n Remove\n

    \n
    \n
    \n )}\n
    \n
    \n \n {listCountry && listCountry.length > 0 && (\n country.value !== \"\"\n )\n : listCountry\n : []\n }\n onSelect={(value: any) => {\n onSet(\"country\", value, id);\n\n setSelectedCountry(value);\n }}\n isSearchable={true}\n />\n )}\n
    \n
    \n \n
    \n \n onSet(elem.target.name, elem.target.value, id)\n }\n selected={\n props.taxForm[id][\"idType\" + id]\n ? props.taxForm[id][\"idType\" + id]\n : obj.idTypeOther\n }\n />\n \n onSet(elem.target.name, elem.target.value, id)\n }\n selected={\n props.taxForm[id][\"idType\" + id]\n ? props.taxForm[id][\"idType\" + id]\n : obj.idType\n }\n />\n
    \n
    \n
    \n
    \n
    \n \n {\n onSet(\"idTypeOther\", value.trim(), id);\n }}\n onBlur={() => {}}\n disabled={\n props.taxForm[id][\"idTypeOther\"] === \"TIN\" ? true : false\n }\n placeholder={\n obj.idTypeOther !== \"\" ? \"TIN\" : \"Enter Identification Type\"\n }\n />\n
    \n
    \n \n {\n onSet(\"idNo\", value.trimStart(), id);\n }}\n onMouseOut={(value: any) => {\n let dataup = [...props.taxForm];\n dataup[id] = {\n ...props.taxForm[id],\n [`${\"idNoError\"}`]:\n value.length > 0\n ? alphaNumExp.test(value)\n ? \"\"\n : \"Enter valid Identification Number\"\n : \"\",\n };\n props.SetTaxForm(dataup);\n }}\n onBlur={() => {}}\n pattern={alphaNumExp}\n errorText={props.taxForm[id][\"idNoError\"]}\n />\n
    \n
    \n
    \n ))}\n {props.taxForm && props.taxForm.length < 3 && (\n \n )}\n \n );\n};\n","import * as React from \"react\";\nimport { getRmDetails } from \"../../service/serviceRequest/srApiService\";\n\ninterface FailedValidationScreen {\n headerText: string;\n desc: string;\n}\nexport const FailedValidationScreen = (props: any) => {\n const [userRmName, setUserRmName] = React.useState(\"\");\n React.useEffect(() => {\n getDetailsRm();\n }, []);\n const getDetailsRm = async () => {\n const localStorageDetails: any = localStorage.getItem(\"acc_data\");\n const rmObj = {\n name: JSON.parse(localStorageDetails).userID,\n type: JSON.parse(localStorageDetails).accTyp,\n };\n let reqObj = `?acctype=${rmObj.type}&accode=${rmObj.name}`;\n try {\n let response = await getRmDetails(reqObj);\n setUserRmName(response.rmNm);\n } catch (error) {\n props.onSubmit(\"FATCA Update\", {\n headerText:\n \"There was some problem in raising service request. Please try again later.\",\n });\n }\n };\n return (\n <>\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n

    {props.headerText}

    \n

    \n {props.desc}\n

    \n

    {userRmName}

    \n

    \n \n helpdesk@nuvama.com\n \n

    \n
    \n
    \n
    \n \n );\n};\n","import React, {\n forwardRef,\n isValidElement,\n useImperativeHandle,\n useState,\n} from \"react\";\nimport RadioButton from \"../../../generic/radioButton\";\nimport { IListObj } from \"../../../types/genericTypes\";\nimport { TaxResident } from \"./taxResident\";\nimport { StatusScreen } from \"../../generic/statusScreen\";\nimport {\n CreateServiceRequestDetails,\n fatcavalidation,\n GetDepositoryDetails,\n ServiceClientValidation,\n} from \"../../../service/serviceRequest/srApiService\";\nimport { FailedValidationScreen } from \"../../generic/failedValidationScreen\";\nimport Loader from \"../../../generic/loader\";\n\nconst radioValues: Array = [\n { value: \"true\", display: \"Yes\" },\n { value: \"false\", display: \"No\" },\n];\nexport const FatcaUpdate = forwardRef((props: any, ref: any) => {\n const [taxForm, setTaxForm] = useState([\n {\n country: \"\",\n idType: \"\",\n idNo: \"\",\n idTypeOther: \"TIN\",\n idNoError: \"\",\n nodisplayError: \"\",\n },\n ]);\n const [checkStatus, setCheckStatus] = useState();\n const [SelectedRadio, setSelectedRadio] = useState(true);\n const [listing, setListing] = useState();\n const [childSr, setChildSr] = useState(props.childSr ? props.childSr : false);\n //const [loader, setLoader] = useState(true);\n\n React.useEffect(() => {\n props.setLoader(true);\n if (!childSr) {\n if (checkStatus) props.setLoader(false);\n if (checkStatus === \"FATCA Validation is Success\") {\n props.showFooter(true);\n } else {\n props.showFooter(false);\n }\n } else {\n if (checkStatus) {\n props.setLoader(false);\n if (checkStatus !== \"FATCA Validation is Success\") {\n props.hide(true);\n }\n }\n }\n }, [checkStatus]);\n\n React.useEffect(() => {\n validation();\n // if (!childSr) validation();\n // else {\n // setCheckStatus(\"FATCA Validation is Success\");\n // props.setLoader(false);\n // }\n }, []);\n\n React.useEffect(() => {\n if (SelectedRadio) {\n props.enableSubmit(true);\n if (props.childSr) {\n props.childSrB(true);\n }\n } else {\n let isValid = taxForm.every((ele: any) => {\n return (\n ele.country &&\n ele.idTypeOther &&\n ele.idNo &&\n !ele.idNoError &&\n !ele.nodisplayError\n );\n });\n if (isValid) {\n props.enableSubmit(true);\n } else {\n props.enableSubmit(false);\n }\n if (props.childSr) {\n // let childSrdisable =\n // isValid && !error.error0 && !error.error1 && !error.error2;\n props.childSrB(isValid);\n }\n }\n }, [taxForm, SelectedRadio]);\n const openSRErrorPopup = () => {\n props.onSubmit(\"FATCA Update\", {\n headerText:\n \"There was some problem in raising service request. Please try again later.\",\n });\n };\n const openExistSrPopup = () => {\n props.setLoader(false);\n props.onSubmit(\"FATCA Update\", {\n headerText: \"You have an active service request\",\n content: \"You already have an active service request. Once it is updated, you will be able to raise new request.\",\n });\n };\n\n const validation = async () => {\n try {\n let fatcaValidation = await fatcavalidation();\n // let serviceClientValidation = await ServiceClientValidation({\n // subtype: \"FATCA Declaration\",\n // });\n let serviceClientValidation = \"BOAcoountNumber not found\";\n if (fatcaValidation && serviceClientValidation) {\n if (\n fatcaValidation.match(\"FATCA Validation is Success\") &&\n serviceClientValidation.match(\"BOAcoountNumber not found\")\n ) {\n setCheckStatus(fatcaValidation);\n } else if (fatcaValidation === \"Your FATCA is updated\") {\n setCheckStatus(fatcaValidation);\n } else if (\n fatcaValidation ===\n \"Your FATCA Validation has failed. Please get in touch with your RM.\"\n ) {\n setCheckStatus(fatcaValidation);\n } else if (\n fatcaValidation === \"FATCA Validation is Success\" &&\n serviceClientValidation ===\n \"Another FATCA request is under process. Please raise any new requests only once those are processed\"\n ) {\n setCheckStatus(serviceClientValidation);\n } else {\n setCheckStatus(fatcaValidation);\n }\n }\n props.setLoader(false);\n } catch (error) {\n openSRErrorPopup();\n }\n };\n\n const onchanges = (name?: string, value?: any) => {\n setListing({ name, value });\n if (value.match(\"false\")) {\n setSelectedRadio(false);\n props.enableSubmit(false);\n } else {\n setSelectedRadio(true);\n setTaxForm([\n {\n country: \"\",\n idType: \"\",\n idNo: \"\",\n idTypeOther: \"TIN\",\n idNoError: \"\",\n },\n ]);\n }\n };\n const getDepositoryDet = async () => {\n try {\n const resp = await GetDepositoryDetails();\n\n if (resp && resp.dPIdField && resp.dPAccountNumberField) {\n return resp.dPIdField + resp.dPAccountNumberField;\n } else {\n return \"None\";\n }\n } catch (error) {\n openSRErrorPopup();\n }\n };\n useImperativeHandle(ref, () => ({\n async getSubmitData() {\n let list_indentity = taxForm.map((list: any) => {\n return {\n country: list.country,\n identification: list.idTypeOther,\n identification_number: list.idNo,\n };\n });\n const reqObj = {\n is_indian_citizen: SelectedRadio,\n fatcaReq: SelectedRadio ? [] : list_indentity,\n };\n return reqObj;\n },\n submitData(val: any) {\n Submit();\n },\n }));\n const Submit = async () => {\n props.setLoader(true);\n try {\n let listIndentity = taxForm.map((list: any, key: any) => {\n return {\n country: list.country,\n identification: list.idTypeOther,\n identification_number: list.idNo,\n };\n });\n let request = {\n requestType: \"FATCA Update\",\n dpID: await getDepositoryDet(),\n is_indian_citizen: SelectedRadio,\n fatcaReq: SelectedRadio ? [] : listIndentity,\n AutoQC: \"NA\",\n };\n\n let response = await CreateServiceRequestDetails(request);\n if (\n typeof response === \"string\" &&\n response.includes(\"Previous Request already open for this account-\")\n ) {\n openExistSrPopup();\n return;\n } else {\n if (response && response.Message) {\n props.setLoader(false);\n props.onSubmit(\"FATCA Update\", {\n content:\n \"Your request will be updated within TWO working days. Status of your request will be communicated through Email\",\n headerText: \"We have Received your request!\",\n popupType: \"Success\"\n });\n } else {\n openSRErrorPopup();\n }\n }\n } catch (error) {\n openSRErrorPopup();\n }\n };\n // console.log(props.loader, checkStatus);\n\n return (\n <>\n {/* {props.loader && (\n \n \n
    \n )} */}\n {!props.loader && (\n
    \n {checkStatus === \"FATCA Validation is Success\" && (\n
    \n

    FATCA Information

    \n

    \n I am an Indian citizen & pay taxes in India, I do not pay taxes\n in USA or any other country{\" \"}\n

    \n
    \n {\n onchanges(e.target.name, e.target.value);\n }}\n />\n {\n onchanges(e.target.name, e.target.value);\n }}\n />\n
    \n\n {!SelectedRadio && (\n
    \n

    \n Please indicate ALL countries in which you are resident for\n tax purpose and the associated Tax ID Number.\n

    \n \n
    \n )}\n {!props.childSr && (\n

    \n The changes mentioned will be applicable for your Trading and\n Default Demat account\n

    \n )}\n
    \n )}\n\n {checkStatus ===\n \"Another FATCA request is under process. Please raise any new requests only once those are processed\" && (\n \n )}\n\n {checkStatus === \"Your FATCA is updated\" && (\n \n )}\n {checkStatus ===\n \"Your FATCA Validation has failed. Please get in touch with your RM.\" && (\n \n )}\n
    \n )}\n \n );\n});\n","import { config } from \"../../../../config/domain\";\nexport const segmentActivationMsg = Object.freeze({\n error: \"There was some problem in raising service request. Please try again later.\",\n createSR: {\n content : \"We have received your request! Following segments will be activated in 3 working days:\",\n redirectionText: \"Back to Homepage\",\n redirectionLink: config.rootUrl + \"clientarea/servicerequest\",\n },\n SRexists: {\n headerText: \"You have an active service request\",\n content: \"You have already raised this request for the day.\",\n }\n});\nexport const validationMsg = {\n TradingSatusRemark: { err: \" Your trading account status is inactive.\" },\n CASHSegmentRemark: { err: \"All other segments can be activated only if CASH segment in BSE or NSE is active.\" },\n CKYCRemark: { err: \"Your CKYC is not registered. Go to Service Request > Create Service Request > CKYC Update, to update the same.\" },\n IncomeOrNetworthRemark: { err: \"Please declare your latest income to proceed with Segment Activation as income is not updated or income declared by you is over one year old. Go to Service Request > Create Service Request > Income Declaration, to update the same.\" },\n DormantRemark: { err: \"Your account is deactivated. Please reactivate your account to proceed with segment activation.\" },\n Name_Match: { err: \"You are not permitted to trade as Name in your trading account is not matching with PAN. Please connect with your Relationship Manager or contact our nearest branch for the same.\" },\n KRARemark: { err: \"Your KRA validation is pending. Without KRA validation, transactions in your account are not allowed as per regulation. Please validate KRA to proceed with Segment Activation.\", }\n}\nexport const segmentNamesSMS = {\n NSEFO: \"Equity Derivatives\",\n BSEFO: \"Equity Derivatives\",\n NSECDS: \"Currency Derivatives\",\n BSECDS: \"Currency Derivatives\",\n SLBM: \"SLBM\",\n COMMCX: \"\",\n COMNCDEX: \"Commodity Derivatives\"\n}\nexport const segmentIncomeProof = [\n {\n display: \"6 Months Bank Statement\",\n value: \"SixMonthsBankStatement\",\n desc: \"Latest self attested 6 months bank statement (not older than 3 months). Bank statement should contain client's name, account number, period and bank's logo. If logo is not available then Bank's stamp & signature is required.\",\n },\n {\n display: \"ITR Proof\",\n value: \"ITRProof\",\n desc: \"Latest self attested ITR copy.\",\n },\n {\n display: \"Demat Holdings\",\n value: \"DematHoldings\",\n desc: \"Latest self attested demat holdings statement required. If, it is non-EBL DP then DP seal & signature is mandatory on the holding statement.\",\n },\n {\n display: \"Salary Slip\",\n value: \"SalarySlip\",\n desc: \"Latest self attested salary slip required. Name on salary slip should match with client's name and it should contain employer's logo. If employer's logo is not available then employer's stamp & HR signature is required.\",\n },\n {\n display: \"Net-worth Certificate\",\n value: \"NetworthCertificate\",\n desc: \"Self attested latest net - worth certificate with CA stamp & signature required.\",\n },\n];\nexport const allowedSegmentsEQ = ['NSEFO', 'NSECDS', 'SLBM'];\nexport const allowedSegmentsCOM = ['MCX', 'NCDEX'];\nexport const allowedSegmentsComEq = ['NSEFO', 'NSECDS', 'SLBM', 'MCX', 'NCDEX'];","import React, { useState } from \"react\";\n\nimport TocDropdown from \"../../../generic/tocDropdown\";\nimport { FileUploadSection } from \"../../generic/fileUploadSection\";\nimport { segmentIncomeProof } from \"./constant\";\n\nexport const FileUpload = (props: any) => {\n const [dropValChanged, setDropValChanged] = useState(false);\n const [selectedSegincomeProof, setSelectedSegincomeProof] = useState({\n display: \"ITR Proof\",\n value: \"ITRProof\",\n desc: \"Latest self attested ITR copy.\",\n });\n\n const handleSubmit = (val: any) => {\n setDropValChanged(false);\n props.onSubmit({\n base64Data: val.base64Data,\n segDocFile: val.docFile,\n selectedSegincomeProof: selectedSegincomeProof.value,\n });\n };\n return (\n <>\n
    \n
    \n
    \n {\n let value = segmentIncomeProof.filter((ele) => {\n if (ele.value === val) return ele;\n });\n setDropValChanged(true);\n setSelectedSegincomeProof(value[0]);\n }}\n disabled={props.segDetails.disableEdit}\n isSearchable={false}\n />\n
    \n
    \n
    \n \n \n );\n};\n","import React, { useState } from \"react\";\nimport Checkbox from \"../../../generic/checkbox\";\nimport { FileUpload } from \"./fileUpload\";\nimport { OtpSection } from \"../../generic/otpSection\";\nimport {createSegmentActivationSR, GetBrokerageSlabDetails, GetSegActivationValidation } from \"../../../service/serviceRequest/srApiService\";\nimport { config } from \"../../../../config/domain\";\nimport { asyncGetPersonalDetails } from \"../../../service/postLogin/clientProfileAPIService\";\nimport { validationMsg, segmentActivationMsg, segmentNamesSMS} from \"./constant\";\nimport { PageLoader } from \"../../../generic/loader\";\nimport LoginService from \"../../../service/login/loginService\";\nimport TocDropdown from \"../../../generic/tocDropdown\";\nimport { IListObj } from \"../../../types/genericTypes\";\nimport Tooltip from \"../../../toc/orderBook/generic/obTooltips\";\n\ninterface ICommodityTypes{\n BaseMetals: IcomTypeSub;\n Bullion: IcomTypeSub;\n Energy: IcomTypeSub;\n AgriCommodities: IcomTypeSub;\n}\ninterface IcomTypeSub{\n selected: boolean;\n clientTyp: string;\n name: string;\n}\nexport const SegmentActivation = (props: any) => {\n const [segmentActivation, setSegmentActivation] = useState({\n activeSegments: {} as any,\n selectSeg: { NSEFO: false, BSEFO: false, NSECDS: false, BSECDS: false, MSEICDS: false, SLBM: false } as any,\n isNewSegSelected: false,\n });\n const [email, setEmail] = useState(\"\");\n const [mobile, setMobile] = useState(\"\");\n const [loader, setLoader] = useState(false);\n const [slabDetails, setSlabDetails] = useState([]);\n const [clientCategory, setClientCategory] = useState>([]);\n const [comTypes, setComTypes] = useState([]);\n const [accSegDetails, setAccSegDetails] = useState({});\n const [disableSubmit, setDisableSubmit] = useState(false);\n const [otpVerified, setOtpVerified] = useState(false);\n const [showCommSection, setShowCommSection] = useState(false); \n const [otpSection, setOtpSection] = useState(false);\n const [fileUpload, setFileUpload] = useState(false);\n const [uploadDet, setUploadDet] = useState({});\n const [showSteps, setShowSteps] = useState(false);\n const [validationErr, setValidationErr] = useState();\n const [comSegments, setComSegments] = useState({\n BaseMetals: {selected: true, clientTyp: 'Others', name:\"Base Metals\"},\n Bullion: {selected: true, clientTyp: 'Others', name:\"Bullion\"},\n Energy: {selected: true, clientTyp: 'Others', name:\"Energy\"},\n AgriCommodities: {selected: true, clientTyp: 'Others', name:\"Agri-Commodities\"}\n })\n const [tcnAcceptval, setTcnAcceptval] = useState({checkbox1: true, checkbox2: true, checkbox3: true});\n \n React.useEffect(() => {\n getSegmentValidationDetails();\n return () => {};\n }, []);\n \n const isImpersonated = () => {\n return window.localStorage.getItem(\"isImpersonated\"); \n };\n const proceedNext = async () => {\n if((accSegDetails.dpHolding < 5000) && getSegNames() != \"SLBM\" && !fileUpload && (typeof uploadDet === \"object\" && Object.keys(uploadDet).length == 0))\n setFileUpload(true);\n else if(((accSegDetails.dpHolding < 5000) && getSegNames() != \"SLBM\" && fileUpload && uploadDet && !otpSection) || (((accSegDetails.dpHolding > 5000) || getSegNames() == \"SLBM\") && !otpSection)){\n setOtpSection(true);\n } else if(otpVerified && otpSection && !showCommSection){\n if((segmentActivation.selectSeg.COMMCX && segmentActivation.activeSegments.COMMCX !== \"Y\") ||\n (segmentActivation.selectSeg.COMNCDEX && segmentActivation.activeSegments.COMNCDEX !== \"Y\")){\n setShowCommSection(true);\n } else {\n SubmitSR();\n }\n } else if(showCommSection)\n SubmitSR();\n }\n const SubmitSR =async () => {\n setDisableSubmit(true);\n setLoader(true);\n var selectedSegments = Object.keys(segmentActivation.selectSeg),\n seg_slab : any = [],\n slabDet = slabDetails;\n for (var i = 0; i < selectedSegments.length; i++) {\n if ( segmentActivation.selectSeg[selectedSegments[i]] && segmentActivation.activeSegments[selectedSegments[i]] !== \"Y\" ) {\n //only for selected segments match the slab names in{segment:slab} format to send in request\n for (var j = 0; j < slabDet.length; j++) {\n if ( selectedSegments[i].indexOf(slabDet[j].segement.segementName) >= 0 ) {\n if (selectedSegments[i] === \"SLBM\") {\n seg_slab.push({key: \"NSESLBM\", value: slabDet[j].segement.slabName});\n } else {\n seg_slab.push({key: selectedSegments[i], value: slabDet[j].segement.slabName});\n }\n }\n }\n }\n }\n if((segmentActivation.selectSeg.COMMCX && segmentActivation.activeSegments.COMMCX !== \"Y\") ||\n (segmentActivation.selectSeg.COMNCDEX && segmentActivation.activeSegments.COMNCDEX !== \"Y\")){\n var comSegs = Object.keys(comSegments);\n var segmentcommodities: any = [];\n for (var i = 0; i < comSegs.length; i++) {\n if(comSegments[comSegs[i] as keyof typeof comSegments].selected === true){\n var allComTypes = comTypes.filter( \n (comTyp: any) => {\n return comTyp.category == comSegments[comSegs[i] as keyof typeof comSegments].name;\n }\n )\n var allComTyps= allComTypes.map((v: any) => ({...v, category:comSegments[comSegs[i] as keyof typeof comSegments].clientTyp}))\n segmentcommodities.push(...allComTyps);\n \n }\n }\n }\n let reqObj = {\n accType: LoginService.getAccData(\"accTyp\"),\n requestType: \"Segment Activation\",\n dpID: \"None\",\n demat_holding: accSegDetails.dpHolding ? accSegDetails.dpHolding.toString() : 0,\n client_type: accSegDetails.ClientType,\n income_proof: uploadDet.selectedSegincomeProof ? uploadDet.selectedSegincomeProof : \"\",\n segment_name: seg_slab,\n segmentcommodities: segmentcommodities ? segmentcommodities : \"\",\n file_name: uploadDet.segDocFile ? [uploadDet.segDocFile] : [],\n base64_data: uploadDet.base64Data ? [uploadDet.base64Data.replace(\"data:application/pdf;base64,\", \"\")] : [],\n };\n let createSRRes = await createSegmentActivationSR(reqObj);\n \n setDisableSubmit(false);\n if (createSRRes && createSRRes.hasOwnProperty(\"data\") && createSRRes.data.hasOwnProperty(\"id\")) {\n props.setParLoader(false);\n setLoader(false);\n const value = JSON.parse(createSRRes.data.id);\n if (value) {\n openSRSuccessPopup();\n } else {\n props.setParLoader(false);\n openSRErrorPopup();\n }\n } else if(Object.keys(createSRRes).length > 0 && createSRRes.hasOwnProperty(\"error\") && createSRRes.error.errCd === \"SR0005\") {\n setLoader(false);\n openExistSrPopup();\n } else {\n if (createSRRes && createSRRes.error) {\n props.setParLoader(false);\n setLoader(false);\n openSRErrorPopup();\n }\n }\n }\n const getCommodities = (type: string) =>{\n var commodities = comTypes.filter( \n (comTyp: any) => {\n return comTyp.category == type;\n }\n )\n var tooltipList: any = [];\n for (var i = 0; i < commodities.length; i++) {\n tooltipList.push(commodities[i].commodity); \n }\n return tooltipList;\n }\n const openSRSuccessPopup = () => {\n props.setParLoader(false);\n let paramObj: any = {\n popUp2: true,\n popupType: \"Success\",\n type: \"Segment Activation\",\n iconName: \"edel-icon-processing\",\n content: segmentActivationMsg.createSR.content,\n contentBold: getSegNames(),\n redirectionLink: segmentActivationMsg.createSR.redirectionLink,\n redirectionText: segmentActivationMsg.createSR.redirectionText\n };\n props.onSubmit(\"segmentActivation\", paramObj);\n };\n const openExistSrPopup = () => {\n props.setLoader(false);\n props.onSubmit(\"segmentActivation\", {\n headerText: \"You have an active service request\",\n content: \"You already have an active service request. Once it is updated, you will be able to raise new request.\",\n });\n };\n const openSRErrorPopup = (mess?: string) => {\n props.setParLoader(false);\n props.onSubmit(\"segmentActivation\", {\n headerText: mess ? mess : segmentActivationMsg.error,\n });\n }\n const getSegNames = () => {\n var segNames = Object.keys(segmentActivation.activeSegments); \n var selectedSegNames =\"\"\n for (var i = 0; i < segNames.length; i++) {\n if (segmentActivation.selectSeg[segNames[i]] && segmentActivation.activeSegments[segNames[i]] !== \"Y\" && segNames[i]!= \"COMMCX\") {\n selectedSegNames = selectedSegNames + segmentNamesSMS[segNames[i] as keyof typeof segmentNamesSMS] + \", \";\n }\n }\n selectedSegNames= selectedSegNames.slice(0, -2);\n let newSegnames = selectedSegNames.split(\",\")\n let tempArr : any = [];\n newSegnames.forEach((ele) => {\n if(!tempArr.includes(ele.trim())) {\n tempArr.push(ele.trim())\n }\n })\n let finalSegnames = tempArr.join(\",\")\n return finalSegnames;\n //return selectedSegNames;\n };\n const allSegEnabled = () => {\n var segNames = Object.keys(segmentActivation.activeSegments);\n var notActivated = segNames.filter((ele: any) => {\n return (\n segmentActivation.activeSegments[ele] == \"N\"\n )\n });\n if(notActivated){\n return false;\n }\n return true;\n}\n const checkSegmentEnabled = () => {\n var selectedSegments = Object.keys(segmentActivation.selectSeg); \n for (var i = 0; i < selectedSegments.length; i++) {\n if (segmentActivation.selectSeg[selectedSegments[i]] && segmentActivation.activeSegments[selectedSegments[i]] !== \"Y\") {\n return true;\n }\n }\n return false;\n }; \n const getBrokerageSlabDetails = async () => {\n const res = await GetBrokerageSlabDetails({\n accType:\"COMEQ\",\n segments: [\"FO\",\"CDS\",\"SLBM\",\"COMNCDEX\",\"COMMCX\"]\n });\n if(res.data?.segmentsList){\n setSlabDetails(res.data.segmentsList);\n } else {\n openSRErrorPopup();\n }; \n props.setLoader(false);\n setLoader(false);\n setDisableSubmit(false);\n const profile = await asyncGetPersonalDetails();\n setMobile(profile.mobileNumberField);\n setEmail(profile.emailAddressField);\n };\n\n const getSegmentValidationDetails = async () => {\n props.setLoader(true);\n setLoader(true);\n setDisableSubmit(true);\n try {\n const validateDetSegRes = await GetSegActivationValidation();\n if (validateDetSegRes && validateDetSegRes.data && validateDetSegRes.data.hasOwnProperty(\"value\")){\n const value = JSON.parse(validateDetSegRes.data.value);\n if (value && value.length > 0) {\n setAccSegDetails({\n dpHolding: value[0].dpHolding,\n kraStatus: value[0].KRAStatus,\n nameMatch: value[0].Name_Match,\n dormant: value[0].Dormant,\n ClientType: value[0].ClientType,\n eblpoa: value[0].EBLPOA,\n eqSeg: value[0].EQSeg\n });\n if(value[0].Category){\n var clientTypes: any = [{}];\n for (var i = 0; i < value[0].Category.length; i++) {\n clientTypes.push({\n value: value[0].Category[i],\n display: value[0].Category[i]\n })\n }\n setClientCategory(clientTypes)\n }\n \n var comTypes: any = [];\n if(value[0].MCX){\n var mcxLst = value[0].MCX;\n for (var i = 0; i < mcxLst.length; i++) {\n var temp = mcxLst[i].split(',');\n comTypes.push({\n 'commodity': temp[0],\n 'category': temp[1],\n 'exchange': \"COM MCX\"\n });\n }\n }\n if(value[0].NCDEX){\n var ncdexLst = value[0].NCDEX;\n for(var i = 0; i < ncdexLst.length; i++){\n var temp = ncdexLst[i].split(',');\n comTypes.push({\n 'commodity': temp[0],\n 'category': temp[1],\n 'exchange': \"COM NCDEX\"\n });\n }\n }\n setComTypes([...comTypes]);\n var segmentList = value[0].lst;\n var activeSegments: any = {};\n var selectSeg: any = {};\n for (var i = 0; i < segmentList.length; i++) {\n var segName = segmentList[i].segementName.replace(\"_\", \"\")\n activeSegments[segName] = segmentList[i].status;\n //if already segment is active for the user, enable by them by default\n if (segmentList[i].status === \"Y\") {\n selectSeg[segName] = true;\n }\n }\n if(value[0].validationStatus && value[0].validationStatus == \"failed\"){\n setDisableSubmit(true);\n const validationRemarks = value[0].validationRemark;\n if ( validationRemarks && validationRemarks.length > 0) {\n let err: any = {};\n validationRemarks.map((x: any) => {\n err[`${x.validation_key}`] = validationMsg[x.validation_key as keyof typeof validationMsg].err;\n });\n setValidationErr(err);\n }\n }\n setSegmentActivation({\n ...segmentActivation,\n activeSegments,\n selectSeg,\n });\n }\n }\n getBrokerageSlabDetails();\n } catch (error) {\n props.setLoader(false);\n setLoader(false);\n }\n };\n \n return (\n <>\n
    \n
    \n {loader && (\n
    \n \n
    \n )} \n {!loader && !fileUpload && !otpSection && !showCommSection && (\n
    \n
    Step 1
    \n

    Select Segments to Activate

    \n
    \n { (segmentActivation.activeSegments[\"NSEFO\"] || segmentActivation.activeSegments[\"BSEFO\"]) && (\n
    \n
    \n {\n setSegmentActivation({\n ...segmentActivation,\n selectSeg : {...segmentActivation.selectSeg, NSEFO: event.target.checked, BSEFO: event.target.checked}\n });\n }}\n checked={segmentActivation.selectSeg[\"NSEFO\"] && segmentActivation.selectSeg[\"BSEFO\"]}\n name=\"\"\n disabled={\n accSegDetails.acStatus === \"N\" || \n (segmentActivation.activeSegments[\"NSEFO\"] === \"Y\" &&\n segmentActivation.activeSegments[\"BSEFO\"] === \"Y\")\n }\n />\n
    \n
    \n \n \n
    \n
    )}\n {/* { segmentActivation.activeSegments[\"BSEFO\"] && (\n
    \n
    \n {\n setSegmentActivation({\n ...segmentActivation,\n selectSeg : {...segmentActivation.selectSeg, BSEFO: event.target.checked}\n });\n }}\n checked={segmentActivation.selectSeg[\"BSEFO\"]}\n name=\"\"\n disabled={\n accSegDetails.acStatus === \"N\" || \n segmentActivation.activeSegments[\"BSEFO\"] === \"Y\"\n }\n />\n
    \n
    \n \n \n
    \n
    )} */}\n { (segmentActivation.activeSegments[\"NSECDS\"] || segmentActivation.activeSegments[\"BSECDS\"]) && (\n
    \n
    \n {\n setSegmentActivation({\n ...segmentActivation,\n selectSeg : {...segmentActivation.selectSeg, NSECDS: event.target.checked, BSECDS: event.target.checked}\n });\n }}\n checked={segmentActivation.selectSeg.NSECDS && segmentActivation.selectSeg.BSECDS}\n name=\"\"\n disabled={\n accSegDetails.acStatus === \"N\" || \n (segmentActivation.activeSegments[\"NSECDS\"] === \"Y\" &&\n segmentActivation.activeSegments[\"BSECDS\"] === \"Y\")\n }\n />\n
    \n
    \n \n \n
    \n
    )}\n {/* { segmentActivation.activeSegments[\"BSECDS\"] && (\n
    \n
    \n {\n setSegmentActivation({\n ...segmentActivation,\n selectSeg : {...segmentActivation.selectSeg, BSECDS: event.target.checked}\n });\n }}\n checked={segmentActivation.selectSeg.BSECDS}\n name=\"\"\n disabled={\n accSegDetails.acStatus === \"N\" || \n segmentActivation.activeSegments[\"BSECDS\"] === \"Y\"\n }\n />\n
    \n
    \n \n \n
    \n
    )} */}\n { segmentActivation.activeSegments[\"SLBM\"] && (\n
    \n
    \n {\n setSegmentActivation({\n ...segmentActivation,\n selectSeg : {...segmentActivation.selectSeg , SLBM: event.target.checked}\n });\n }}\n checked={segmentActivation.selectSeg.SLBM}\n name=\"\"\n disabled={ accSegDetails.ClientType === \"PUREONLINE\" ||\n accSegDetails.acStatus === \"N\" || segmentActivation.activeSegments[\"SLBM\"] === \"Y\"\n }\n />\n
    \n
    \n \n \n
    \n
    )}\n { segmentActivation.activeSegments[\"COMMCX\"] && segmentActivation.activeSegments[\"COMNCDEX\"] && (\n
    \n
    \n {\n setSegmentActivation({\n ...segmentActivation,\n selectSeg : {...segmentActivation.selectSeg, COMMCX: event.target.checked, COMNCDEX: event.target.checked}\n });\n }}\n checked={segmentActivation.selectSeg.COMMCX || segmentActivation.selectSeg.COMNCDEX}\n name=\"\"\n disabled={\n accSegDetails.acStatus === \"N\" || \n segmentActivation.activeSegments[\"COMMCX\"] === \"Y\" ||\n segmentActivation.activeSegments[\"COMNCDEX\"] === \"Y\"\n }\n />\n
    \n
    \n \n \n
    \n
    )}\n {(segmentActivation.selectSeg.NSEFO || segmentActivation.selectSeg.BSEFO || segmentActivation.selectSeg.NSECDS || segmentActivation.selectSeg.BSECDS || segmentActivation.selectSeg.SLBM || segmentActivation.selectSeg.COMNCDEX || segmentActivation.selectSeg.COMMCX) && (\n <>\n
    \n {(accSegDetails.dpHolding < 5000) && checkSegmentEnabled() && (\n

    Please Note: Investing in derivatives requires you to submit income proof.

    \n )}\n {/* terms and conditions for SLBM*/}\n {segmentActivation.selectSeg.SLBM && segmentActivation.activeSegments[\"SLBM\"] === \"N\" && (\n <>\n
    \n { setTcnAcceptval({ ...tcnAcceptval, checkbox1: !tcnAcceptval.checkbox1 }); }}\n checked={tcnAcceptval.checkbox1}\n name=\"\"\n disabled={otpSection || otpVerified}\n />\n \n I/We confirm that I am/we are aware of document related to rights and obligations of clearing member/participant and its client in relation to the Securities Lending and Borrowing Scheme (SLBS).\n \n
    \n
    \n { setTcnAcceptval({ ...tcnAcceptval, checkbox2: !tcnAcceptval.checkbox2 }); }}\n checked={tcnAcceptval.checkbox2}\n name=\"\"\n disabled={otpSection || otpVerified}\n />\n \n {\" \"} I/We confirm that all the transactions under the SLBS by the Client have to be strictly in accordance with SEBI Scheme, Circulars of SEBI, SLBS and the Circulars issued there under and the Rules, Byelaws, Regulations of the Clearing Corporation as applicable and the terms and conditions of the said Agreement.{\" \"}\n \n
    \n
    \n { setTcnAcceptval({ ...tcnAcceptval, checkbox3: !tcnAcceptval.checkbox3 });}}\n checked={tcnAcceptval.checkbox3}\n name=\"\"\n disabled={otpSection || otpVerified}\n />\n \n {\" \"} I/We further confirm that I/we have read and understood the contents of the\n \n 'Rights and Obligations' document(s). {\" \"}\n \n {\" \"} I/We do hereby agree to be bound by such provisions as outlined in these documents.{\" \"}\n \n
    \n \n )}\n {checkSegmentEnabled() && (\n
    \n

    Brokerage Details

    \n \n {checkSegmentEnabled() && (\n \n \n \n \n \n )}\n \n {slabDetails.length > 0 &&\n slabDetails.map((ele: any) => {\n if (\n ele.segement.segementName === \"FO\" &&\n ((segmentActivation.selectSeg.NSEFO && segmentActivation.activeSegments.NSEFO !== \"Y\") ||\n (segmentActivation.selectSeg.BSEFO && segmentActivation.activeSegments.BSEFO !== \"Y\"))\n )\n return (\n \n \n \n \n \n );\n if (\n ele.segement.segementName === \"CDS\" &&\n ((segmentActivation.selectSeg.NSECDS && segmentActivation.activeSegments.NSECDS !== \"Y\") ||\n (segmentActivation.selectSeg.MSEICDS && segmentActivation.activeSegments.MSEICDS !== \"Y\") ||\n (segmentActivation.selectSeg.BSECDS && segmentActivation.activeSegments.BSECDS !== \"Y\") )\n )\n return (\n \n \n \n \n \n );\n if (\n ele.segement.segementName === \"SLBM\" &&\n segmentActivation.selectSeg.SLBM && segmentActivation.activeSegments.SLBM !== \"Y\"\n )\n return (\n \n \n \n \n \n );\n if (\n ele.segement.segementName === \"COMNCDEX\" &&\n ((segmentActivation.selectSeg.COMNCDEX && segmentActivation.activeSegments.COMNCDEX !== \"Y\") ||\n (segmentActivation.selectSeg.COMMCX && segmentActivation.activeSegments.COMMCX !== \"Y\"))\n )\n return (\n \n \n \n \n \n );\n })}\n \n

    Future

    Options

    Equity Derivatives

    {ele.segement.future}

    {ele.segement.options}

    Currency Derivatives

    {ele.segement.future}

    {ele.segement.options}

    SLBM

    {ele.segement.future}

    {ele.segement.options}

    Commodity Derivatives

    {ele.segement.future}

    {ele.segement.options}

    \n
    )}\n {checkSegmentEnabled() && (\n <>\n

    \n If you want customized brokerage rates for selected segments, kindly{\" \"}\n Contact your RM \n

    \n \n )}\n {allSegEnabled() && (\n <>\n

    All segments are activated hence request cannot be submitted


    \n \n )}\n
    \n \n )}\n
    \n
    \n {typeof validationErr === \"object\" && Object.keys(validationErr).length > 0 && (\n Object.keys(validationErr).map(\n (val: any) => {\n return (\n
    \n \n \n {validationErr[val]}\n \n
    \n );\n }\n )\n )}\n
    \n
    \n )}\n {!loader && fileUpload && !otpSection && (\n
    \n
    Step 2
    \n

    Upload Documents

    \n

    Investing in derivatives requires you to submit income proof.

    \n
    Income proof
    \n setUploadDet(val)}\n segDetails={{\n disableEdit: false,\n showDropdown: accSegDetails.dpHolding < 5000 &&\n ( segmentActivation.selectSeg.NSEFO || segmentActivation.selectSeg.COMMCX ||\n segmentActivation.selectSeg.NSECDS || segmentActivation.selectSeg.COMNCDEX ),\n showDragUploadSec: !accSegDetails.dpHolding && (segmentActivation.selectSeg.NSEFO || segmentActivation.selectSeg.NSECDS)\n }}\n />\n
    \n )}\n {!loader && otpSection && !showCommSection && (\n
    \n
    {(accSegDetails.dpHolding < 5000 && getSegNames() != \"SLBM\") ? 'Step 3' : 'Step 2'}
    \n

    Authenticate using OTP

    \n
    \n {\n setOtpVerified(true);\n }}\n setParLoader={(val: boolean) => {\n props.setParLoader(val);\n }}\n showVerify= {!otpVerified}\n containerClass=\"segment-otp-box\"\n otpHeader=\"otp-header\"\n inputClass=\"text-field\"\n />\n
    \n
    \n )}\n {!loader && showCommSection && (\n
    \n
    {(accSegDetails.dpHolding < 5000 && getSegNames() != \"SLBM\") ? 'Step 4' : 'Step 3'}
    \n

    Select Commodities

    \n

    Please select appropriate category depending upon proposed nature of your activity against each product type.

    \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

    Commodity Type

    Client Type

    \n
    \n {\n setComSegments({\n ...comSegments,\n Bullion:{...comSegments.Bullion, selected: event.target.checked} \n });\n }}\n />\n Bullion\n
    \n \n
    \n {\n return ele.display !== \"Farmer Producer Organization/ Farmer\";\n })}\n onSelect={(val: any) => {\n let value = clientCategory.filter((ele: { value: any; }) => {\n if (ele.value === val) return ele;\n });\n setComSegments({\n ...comSegments,\n Bullion:{...comSegments.Bullion, clientTyp: value[0].value as string} \n });\n }}\n disabled={false}\n isSearchable={false}\n />\n
    \n
    \n {\n setComSegments({\n ...comSegments,\n BaseMetals:{...comSegments.BaseMetals, selected: event.target.checked} \n });\n }}\n />\n Base Metals\n
    \n
    \n {\n return ele.display != \"Farmer Producer Organization/ Farmer\";\n })}\n onSelect={(val: any) => {\n let value = clientCategory.filter((ele: { value: any; }) => {\n if (ele.value === val) return ele;\n });\n setComSegments({\n ...comSegments,\n BaseMetals:{...comSegments.BaseMetals, clientTyp: value[0].value as string} \n });\n }}\n disabled={false}\n isSearchable={false}\n />\n
    \n
    \n {\n setComSegments({\n ...comSegments,\n Energy:{...comSegments.Energy, selected: event.target.checked} \n });\n }}\n />\n Energy\n
    \n
    \n {\n return ele.display != \"Farmer Producer Organization/ Farmer\";\n })}\n onSelect={(val: any) => {\n let value = clientCategory.filter((ele: { value: any; }) => {\n if (ele.value === val) return ele;\n });\n setComSegments({\n ...comSegments,\n Energy:{...comSegments.Energy, clientTyp: value[0].value as string} \n });\n }}\n disabled={false}\n isSearchable={false}\n />\n
    \n
    \n {\n setComSegments({\n ...comSegments,\n AgriCommodities:{...comSegments.AgriCommodities, selected: event.target.checked} \n });\n }}\n />\n Agri-Commodities\n
    \n
    \n {\n let value = clientCategory.filter((ele: { value: any; }) => {\n if (ele.value === val) return ele;\n });\n setComSegments({\n ...comSegments,\n AgriCommodities:{...comSegments.AgriCommodities, clientTyp: value[0].value as string} \n });\n }}\n disabled={false}\n isSearchable={false}\n />\n
    \n
    \n
    \n

    Note

    \n

    By default, your client type is selected as Others for all the commodity type categories. If you wish to edit, kindly select the trading preference against each commodity type you wish to trade in. For more information on commodity wise categorization, \n
    {setShowSteps(!showSteps)}}>please click here {showSteps && }\n

    \n {showSteps && (<>\n

    i. Farmers/FPOs: It includes participants such as farmers, farmers’ co-operatives, Famers Producers Organisations (FPOs) and such entities of like nature.

    \n

    ii. Value chain participants (VCPs): It includes participants such as Processors, Commercial users as Dal and Flour Millers, Importers, Exporters, Physical Market Traders, Stockists, Cash & Carry participants, Produces, SMEs/MSMEs & Wholesalers etc., but exclude farmers/FPOs.

    \n

    iii. Proprietary traders: It includes the members of stock exchanges trading in their proprietary account.

    \n

    iv. Domestic financial institutional investors: It includes participants such as Mutual Funds (MFs), Portfolio Managers, Alternative Investment Funds (AIFs), Banks, Insurance Companies and Pension Funds etc., which are allowed to trade in commodity derivatives.

    \n

    v. Foreign participants: It includes participants such as Eligible Foreign Entities (EFEs), NRIs etc. which are allowed to trade in commodity derivatives markets.

    \n

    vi. Others: All other participants which cannot be classified in the above categories.

    \n \n )}\n
    \n
    \n
    \n )}\n
    \n \n \n
    \n
    \n
    \n \n );\n};\n","import React, { forwardRef, useEffect, useState } from \"react\";\nimport RadioButton from \"../../../generic/radioButton\";\nimport { IListObj } from \"../../../types/genericTypes\";\nconst accTypes: Array = [\n { value: \"trading+demat\", display: \"Trading+Demat\" },\n { value: \"demat\", display: \"Demat\" },\n { value: \"trading\", display: \"Trading\" },\n];\nexport const AccounTypeRadio = forwardRef((props: any, ref: any) => {\n const [accType, setAccType] = useState(accTypes[0].value);\n\n useEffect(() => {\n props.setAccountType(accType);\n }, [accType]);\n\n useEffect(() => {\n if (props.onlyTrading && props.onlyTrading === 1)\n setAccType(accTypes[2].value);\n else setAccType(accTypes[0].value);\n }, [props.onlyTrading]);\n\n return (\n <>\n
    \n
    \n
    Options
    \n
    \n
    \n
    \n {(props.onlyTrading ? props.onlyTrading !== 1 : true) && (\n
    \n {\n setAccType(accTypes[0].value);\n }}\n selected={accType}\n disabled={props.disabled}\n />\n
    \n )}\n\n {(props.onlyTrading ? props.onlyTrading !== 1 : true) && (\n
    \n {\n setAccType(accTypes[1].value);\n }}\n selected={accType}\n disabled={props.disabled}\n />\n
    \n )}\n\n
    \n {\n setAccType(accTypes[2].value);\n }}\n selected={accType}\n disabled={props.disabled}\n />\n
    \n
    \n
    \n
    \n \n );\n});\n","import React, { forwardRef, useEffect } from \"react\";\nimport { config } from \"../../../../config/domain\";\nimport InputField from \"../../../generic/inputField\";\nimport TocDropdown from \"../../../generic/tocDropdown\";\nimport { IListObj } from \"../../../types/genericTypes\";\n\nconst reasons: Array = [\n {\n value: \"\",\n display: \"Select Closure Reason\"\n },\n {\n value: \"Stopped dealing in Equities Commodity\",\n display: \"Stopped dealing in equities & commodity\"\n },\n {\n value: \"Dissatisfied with services\",\n display: \"Dissatisfied with services\"\n },\n {\n value: \"Transferred from city\",\n display: \"Transferred from city\"\n },\n {\n value: \"Others\",\n display: \"Others\",\n },\n];\nexport const DpTradingOptions = (props: any) => {\n return (\n <>\n
    \n {/* space-mb-20 for reason other than others*/}\n {props.dpOptions &&\n props.dpOptions.length > 2 &&\n props.selectedAcc.toLowerCase().includes(\"demat\") && (\n <>\n
    \n
    \n \n 0\n ? props.selectedDp\n : \"Select DP Details\"\n }\n dropdownOptions={props.dpOptions}\n onSelect={(val) => {\n if (val) {\n if (props.setErrors)\n props.setErrors({ ...props.errors, selectedDp: \"\" });\n props.setSelectedDp(val);\n }\n }}\n disabled={props.disabled}\n isSearchable={false}\n />\n {props.errors && props.errors.dp && (\n

    {props.errors.selectedDp}

    \n )}\n
    \n
    \n \n )}\n {props.dpOptions &&\n props.dpOptions.length === 2 &&\n props.selectedAcc.toLowerCase().includes(\"demat\") && (\n
    \n \n\n {}}\n onBlur={() => {}}\n placeholder=\"\"\n disabled={true}\n />\n
    \n )}\n {props.selectedAcc.toLowerCase() === \"trading\" && (\n
    \n \n\n {}}\n onBlur={() => {}}\n placeholder=\"\"\n disabled={true}\n />\n
    \n )}\n\n <>\n
    \n
    \n \n {\n props.setReason(val);\n props.setErrors({ ...props.errors, reason: \"\" });\n }}\n isSearchable={false}\n disabled={props.disabled || props.jointHolderErrorMsg}\n />\n {props.errors && props.errors.reason !== \"\" && (\n

    {props.errors.reason}

    \n )}\n
    \n
    \n \n\n {props.errorMsg !== \"\" && (\n
    \n

    \n {props.errorMsg}\n {props.errorMsg ===\n \"Please get your default demat account changed to another before closure\" && (\n \n {\" \"}\n Contact your RM\n \n )}\n

    \n
    \n )}\n\n {/* {props.errors && props.errors.dp && (\n
    \n

    {props.errors.dp}

    \n
    \n )} */}\n
    \n \n );\n};\n","export default __webpack_public_path__ + \"static/media/Sample-signature-image.46538db5.png\";","import * as React from \"react\";\nimport { FileUploadSection } from \"../../generic/fileUploadSection\";\nimport { useState } from \"react\";\nimport {\n accClosureSR,\n accClosureValidate,\n GetDpDetails,\n} from \"../../../service/serviceRequest/srApiService\";\nimport { config } from \"../../../../config/domain\";\nimport { StatusScreen } from \"../../generic/statusScreen\";\nimport { useQuery } from \"../../../service/urlHelper\";\nimport { AccounTypeRadio } from \"./accountType\";\nimport { DpTradingOptions } from \"./dpTradingOption\";\nimport { IListObj } from \"../../../types/genericTypes\";\nimport RadioButton from \"../../../generic/radioButton\";\nimport { OtpSection } from \"../../generic/otpSection\";\nimport EdModal from \"../../../generic/edModal\";\nimport { getAccData } from \"../../../service/login/loginService\";\nimport sampleSignature from \"../../../../assets/images/Sample-signature-image.png\";\nimport {\n base64toPDF,\n getEsignUrlJMWV2,\n} from \"../../../service/esign/esignService\";\nimport {\n alphaNumExpWithSpace,\n alphaNumExp,\n alphabetExp,\n} from \"../../../utils/regex\";\nimport InputField from \"../../../generic/inputField\";\nconst transferTypes: Array = [\n { value: \"Self Transfer\", display: \"Self Transfer\" },\n { value: \"Other Account Transfer\", display: \"Other Account Transfer\" },\n];\nconst checks = [\n { value: \"There should not be any open order of MFSS\" },\n { value: \"Debit/Credit balances need to be settled before closure\" },\n { value: \"Account should not be closed already\" },\n { value: \"You need to ensure there are no securities in your Demat account\" },\n { value: \"You need to ensure that there are no open positions in your account\"},\n { value: \"You need to ensure that no stocks placed in collateral with EBL\" },\n { value: \"You should not have custody or NBFC POA account\" },\n { value: \"You should not have any running SIP\" },\n];\n\nconst errMsg: any = {\n acTyp: \"Please select account Type\",\n selectedDp: \"Please select DP Id\",\n mobileOtp: \"Mobile OTP verification is required\",\n emailOtp: \"Email OTP verification is required\",\n attachment: \"Please upload document\",\n reason: \"Please select reason\",\n reasonText: \"Please provide reason to close account\",\n};\n\nconst successMsg: any = {\n HoldingValue: {\n err: \" You need to ensure there are no securities in your Demat account \",\n msg: \"To check holdings, please\",\n link: config.rootUrl + \"reports/consolidatedpholding\",\n },\n OpenPosition_EQ_FO_CDS: {\n err: \"You need to ensure that there are no open positions in your account \",\n msg: \"To square off your positions, please\",\n link: config.rootUrl + \"?ottype=my-positions\",\n },\n ValueOfStockLying_Coll_Hold_AccEBL: {\n err: \"You need to ensure that no stocks placed in collateral with EBL \",\n msg: \"To check pledge Holding, please\",\n link: config.rootUrl + \"reports/consolidatedpholding\",\n },\n TradingLedgeBbalance: {\n err: \"Debit/Credit balances need to be settled before closure \",\n msg: \"To clear your balance, please\",\n link: config.rootUrl + \"reports/ledger/equity/snapshot\",\n },\n MFSSOpenOrder: {\n err: \"There should not be any open order of MFSS \",\n msg: \"To check order status, please\",\n link: config.rootUrl + \"?ottype=order-status\",\n },\n MF_SIP: {\n err: \"You should not have any running SIP \",\n msg: \"To check active SIPs, please\",\n link: config.rootUrl + \"?ottype=order-status\",\n },\n EQTradingStatus: {\n err: \"Your account is closed already \",\n msg: \"\",\n link: \"\",\n },\n CCTradingStatus: {\n err: \"Your account is closed already \",\n msg: \"\",\n link: \"\",\n },\n DematAccountStatus: [\n {\n text: \"Demat Account Status is ToBeClosed\",\n err: \"Your account is closed already \",\n msg: \"\",\n link: \"\",\n },\n {\n text: \"Demat Account Status is Closed\",\n err: \"Your account is closed already \",\n msg: \"\",\n link: \"\",\n },\n {\n text: \"Demat Account Status is Suspended for Debit/Credit\",\n err: \"Demat account status should not be suspended\",\n msg: \"\",\n link: \"\",\n },\n {\n text: \"Demat Account Status is Suspended for Debit\",\n err: \"Demat account status should not be suspended \",\n msg: \"\",\n link: \"\",\n },\n {\n text: \"Demat Account Status is Suspended\",\n err: \"Demat account status should not be suspended \",\n msg: \"\",\n link: \"\",\n },\n {\n text: \"Demat Account Status is Closed\",\n err: \"Your account is closed already \",\n msg: \"\",\n link: \"\",\n },\n ],\n ArbitrationStatus: {\n err: \"Arbitration or IGRP or Appeal matter is open.\",\n msg: \"\",\n link: \"\",\n },\n PMS_Custodian_Acc: {\n err: \"You should not have custody or NBFC POA account\",\n msg: \"\",\n link: \"\",\n },\n FundingAccount_NBFC: {\n err: \"You should not have custody or NBFC POA account\",\n msg: \"\",\n link: \"\",\n },\n};\n\nconst AccountClosure: React.FC = React.forwardRef(\n (props: any, ref: any) => {\n const source = useQuery().get(\"source\");\n const [fileDetails, setFileDetails] = useState([]);\n const [existingAccClosureSR, setExistingAccClosureSR] = useState(false);\n const [accType, setAccType] = useState(\"trading+demat\");\n const [selectedDp, setSelectedDp] = useState(\"\");\n const [reason, setReason] = useState(\"\");\n const [reasonText, setReasonText] = useState(\"\");\n const [selecteddpDetails, setSelecteddpDetails] = useState();\n const [validationStr, setValidationStr] = useState(\"\");\n \n const [errors, setErrors] = useState({\n selectedDp: \"\",\n reason: \"\",\n reasonText: \"\",\n mobileOtp: \"\",\n emailOtp: \"\",\n attachment: {\n cmr: \"\",\n sign: \"\",\n },\n });\n const [dpOptions, setDpOptions] = useState([]);\n const [dpDetails, setDpDetails] = useState([]);\n const [jointHolderErrorMsg, setJointHolderErrorMsg] = useState(\"\");\n const [transferType, setTransferType] = useState();\n const [showModal, setShowModal] = useState(false);\n const [email, setEmail] = useState({\n id: \"\",\n token: \"\",\n });\n const [mobile, setMobile] = useState({\n id: \"\",\n token: \"\",\n });\n const [contentType, setContentType] = useState(\"\");\n const [validationErr, setValidationErr] = useState();\n const [showOtp, setShowOtp] = useState(false);\n const [invalidTime, setInvalidTime] = useState(false);\n const [DPType, setDPType] = useState(\"\");\n const [boId, setBoId] = useState(\"\");\n \n React.useEffect(() => {\n checkExistingAccClosureSR();\n return () => {};\n }, []);\n\n React.useEffect(() => {\n if (selectedDp && accType !== \"trading\")\n setDPType(selectedDp.includes(\"IN\") ? \"NSDL\" : \"CDSL\");\n if (\n dpDetails.length > 0 &&\n dpDetails[0].Linked_Demat_Accounts &&\n dpDetails[0].Linked_Demat_Accounts.length > 0\n ) {\n let selectedDpElement = dpDetails[0].Linked_Demat_Accounts.find(\n (ele: any) => {\n if (ele.BOID === selectedDp) return ele;\n }\n );\n\n if (selectedDpElement && selectedDpElement.DPHolderType) {\n if (selectedDpElement.DPHolderType === \"Joint\") {\n props.enableSubmit(false);\n setJointHolderErrorMsg(\n \"It seems that the DP Account is a joint holder account. This request cannot be processed online.\"\n );\n } else {\n if (\n accType === \"demat\" &&\n selectedDpElement &&\n selectedDpElement.payOutDefault === 1\n ) {\n props.enableSubmit(false);\n setJointHolderErrorMsg(\n \"Please get your default demat account changed to another before closure\"\n );\n } else {\n setJointHolderErrorMsg(\"\");\n setSelecteddpDetails(selectedDpElement);\n }\n }\n }\n }\n }, [accType, selectedDp]);\n\n React.useEffect(() => {}, [selectedDp]);\n\n React.useEffect(() => {\n if (showOtp) props.setBtnText(\"Confirm & E-Sign\");\n }, [showOtp]);\n\n const validate = (dpData?: any, selectedDpVal?: any, acc?: any) => {\n console.log(\"dpData\", dpData, dpDetails);\n\n let selDpDet = dpData ? dpData : dpDetails;\n let selDp = selectedDpVal ? selectedDpVal : selectedDp;\n let selAccType = acc ? acc : accType;\n\n if (selDpDet.length > 0) {\n const reqObj = {\n pan: selDpDet.length > 0 ? selDpDet[0].PANNo : \"\",\n dpId: selDp,\n accTyp: getAccData(\"accTyp\"),\n trdUpd: selAccType.toLowerCase().includes(\"trading\"),\n dpUpd: selAccType.toLowerCase().includes(\"demat\"),\n };\n if (selAccType === \"trading\") {\n reqObj.dpId = \"\";\n setEmail({\n token: \"\",\n id: selDpDet[0].ToEmailList,\n });\n setMobile({\n token: \"\",\n id: selDpDet[0].MobileList,\n });\n } else {\n setEmail({\n token: \"\",\n id:\n selecteddpDetails && selecteddpDetails.H1_EmailId\n ? selecteddpDetails.H1_EmailId\n : selDpDet && selDpDet[0].ToEmailList,\n });\n setMobile({\n token: \"\",\n id:\n selecteddpDetails && selecteddpDetails.H1_Mobile\n ? selecteddpDetails.H1_Mobile\n : selDpDet && selDpDet[0].MobileList,\n });\n }\n\n if (\n (selAccType.toLowerCase().includes(\"demat\") && selDp) ||\n selAccType === \"trading\"\n ) {\n props.setParLoader(true);\n accClosureValidate(reqObj)\n .then((res) => {\n props.setParLoader(false);\n if (res.data) {\n setValidationStr(res.data.value);\n const valData = JSON.parse(res.data.value)[0];\n if (\n valData.ValidationRemarks &&\n valData.ValidationRemarks.length > 0\n ) {\n let err: any = {};\n valData.ValidationRemarks.map((x: any) => {\n err[`${x.validation_key}`] = x.validation_message;\n });\n setValidationErr(err);\n }\n props.setParLoader(false);\n } else if (res.error.errCd === \"SR0004\") {\n props.rightDiv(rightSideDiv());\n setExistingAccClosureSR(false);\n props.showFooter(true);\n props.setBtnText(\"Generate OTP\");\n setInvalidTime(true);\n props.enableSubmit(false);\n props.setLoader(false);\n } else {\n openSRErrorPopup();\n }\n })\n .catch((err) => {\n openSRErrorPopup();\n });\n }\n }\n\n // }\n else if (selecteddpDetails) {\n setEmail({\n token: \"\",\n id:\n selecteddpDetails && selecteddpDetails.H1_EmailId\n ? selecteddpDetails.H1_EmailId\n : dpDetails && dpDetails[0].ToEmailList,\n });\n setMobile({\n token: \"\",\n id:\n selecteddpDetails && selecteddpDetails.H1_Mobile\n ? selecteddpDetails.H1_Mobile\n : dpDetails && dpDetails[0].MobileList,\n });\n }\n };\n \n const getDpDetails = () => {\n props.setParLoader(true);\n GetDpDetails()\n .then((res) => {\n props.setParLoader(false);\n if (res.data) {\n const dpData = JSON.parse(res.data.value);\n setDpDetails(dpData);\n setDpDetailsOptions(dpData[0].Linked_Demat_Accounts, dpData);\n } else {\n openSRErrorPopup();\n }\n })\n .catch((err) => {\n openSRErrorPopup();\n });\n };\n const setDpDetailsOptions = (dematDet: any, dpData?: any) => {\n let dpOptions: any = [];\n\n dematDet.forEach((ele: any) => {\n if (dpOptions.length === 0) {\n dpOptions.push({\n display: \"Select DP Details\",\n value: \"\",\n });\n }\n dpOptions.push({\n display: ele.BOID,\n value: ele.BOID,\n ...ele,\n });\n });\n if (dpOptions.length > 2) {\n setDpOptions(dpOptions);\n props.setParLoader(false);\n } else if (dpOptions.length === 2) {\n setDpOptions(dpOptions);\n setSelectedDp(dpOptions[1].value);\n validate(dpData, dpOptions[1].value);\n } else if (dpOptions.length === 0) {\n props.setParLoader(false);\n }\n else if(dpOptions.length === 0){\n props.setParLoader(false);\n }\n };\n\n const checkExistingAccClosureSR = async () => {\n try {\n props.setParLoader(true);\n props.rightDiv(rightSideDiv());\n getDpDetails();\n props.showFooter(true);\n props.enableSubmit(true);\n props.setBtnText(\"Generate OTP\");\n props.setParLoader(false);\n } catch (error) {\n openSRErrorPopup();\n }\n };\n\n const openSRErrorPopup = () => {\n props.setParLoader(false);\n props.onSubmit(\"accClosure\", {\n headerText: \"There was some problem in raising service request. Please try again later.\",\n });\n };\n\n const openExistSrPopup = () => {\n props.setLoader(false);\n props.onSubmit(\"accClosure\", {\n headerText: \"You have an active service request\",\n content: \"You already have an active service request. Once it is updated, you will be able to raise new request.\",\n });\n };\n\n const rightSideDiv = () => {\n return (\n
    \n
    \n {\n setShowModal(true);\n setContentType(\"CheckList\");\n }}\n >\n Check list for Account Closure\n \n
    \n
    \n );\n };\n \n const handleSubmit = (file: any, type: string) => {\n if (file && file.docFile && file.base64Data) {\n var actualbase64Data = file.base64Data.split(\",\");\n setFileDetails([\n ...fileDetails,\n {\n nm: file.docFile,\n data: actualbase64Data[1],\n docType: type,\n qcFlag: true,\n },\n ]);\n if (\n [\n ...fileDetails,\n {\n nm: file.docFile,\n data: actualbase64Data[1],\n docType: type,\n qcFlag: true,\n },\n ].length === 2\n ) {\n setErrors({\n ...errors,\n attachment: {\n cmr: \"\",\n sign: \"\",\n },\n });\n } else if (\n [\n ...fileDetails,\n {\n nm: file.docFile,\n data: actualbase64Data[1],\n docType: type,\n qcFlag: true,\n },\n ].length === 1\n ) {\n setErrors({\n ...errors,\n attachment: {\n cmr: type === \"CMR\" ? \"\" : errors.attachment.cmr,\n sign: type === \"CMR\" ? errors.attachment.sign : \"\",\n },\n });\n }\n } else {\n let files = fileDetails;\n const index = fileDetails.findIndex((x: any) => x.docType === type);\n files.splice(index, 1);\n setFileDetails(files);\n }\n };\n\n const submitReq = () => {\n \n let address: any = accType.includes(\"demat\")\n ? {\n addr1: selecteddpDetails.DP_Correspondence_Address.Addr1,\n addr2: selecteddpDetails.DP_Correspondence_Address.Addr2,\n addr3: selecteddpDetails.DP_Correspondence_Address.Addr3,\n addr4: selecteddpDetails.DP_Correspondence_Address.Addr4,\n city: selecteddpDetails.DP_Correspondence_Address.City,\n state: selecteddpDetails.DP_Correspondence_Address.State,\n pin: selecteddpDetails.DP_Correspondence_Address.Pincode,\n }\n : {\n addr1: dpDetails.length > 0 ? dpDetails[0].Addr1 : \"-----\",\n addr2: dpDetails.length > 0 ? dpDetails[0].Addr2 : \"-----\",\n addr3: dpDetails.length > 0 ? dpDetails[0].Addr3 : \"-----\",\n addr4: dpDetails.length > 0 ? dpDetails[0].Addr4 : \"-----\",\n city: dpDetails.length > 0 ? dpDetails[0].City : \"\",\n state: dpDetails.length > 0 ? dpDetails[0].CState : \"\",\n pin: dpDetails.length > 0 ? dpDetails[0].PinCode : \"\",\n };\n\n Object.keys(address).map((k) => {\n if (k.includes(\"addr\")) {\n if (address[k].length < 5) {\n let str = \"\";\n for (let i = 0; i < 5 - address[k].length; i++) {\n str += \"-\";\n }\n address[k] += str;\n }\n } else {\n if (!address[k]) address[k] = \"\";\n }\n });\n\n let reqObj = {\n acTyp:\n getAccData(\"accTyp\") && getAccData(\"accTyp\") === \"COMEQ\"\n ? \"EQ\"\n : getAccData(\"accTyp\"),\n dpId: selectedDp,\n mobToken: mobile.token,\n mobile: mobile.id,\n emailToken: email.token,\n email: email.id,\n attachments: fileDetails,\n trdUpd: accType.toLowerCase().includes(\"trading\"),\n dpUpd: accType.toLowerCase().includes(\"demat\"),\n validationReport: validationStr,\n closeRsn: reason === \"Others\" ? reasonText : reason,\n reqTyp: accType,\n address,\n closureType:\n transferType && transferType === \"Self Transfer\"\n ? \"Balance Transfer\"\n : \"Nil Holding\",\n assignedTeamCode: accType.toLowerCase().includes(\"demat\") ? 12 : 4,\n assignedTeamName: accType.toLowerCase().includes(\"demat\")\n ? \"DPTeam\"\n : \"OPS Helpdesk Team\",\n callTypId: 74,\n subTypId: 732,\n coLoginId: dpDetails.length ? dpDetails[0].COLoginId : \"\",\n eqLoginId: dpDetails.length ? dpDetails[0].EQLoginId : \"\",\n clntTyp: dpDetails.length ? dpDetails[0].Client_Type : \"\",\n targetBoId: boId,\n };\n\n props.setParLoader(true);\n accClosureSR(reqObj)\n .then(async (res) => {\n if (res && res.data && res.data.data) {\n base64toPDF(res.data.data);\n const esign = await getEsignUrlJMWV2(\n res.data.data,\n res.data.srId,\n \"accClosure\"\n );\n if (!esign) {\n openSRErrorPopup();\n }\n } else if (res && res.error && res.error.errCd === \"SR0005\" ) {\n openExistSrPopup();\n } else {\n openSRErrorPopup();\n }\n })\n .catch((err) => {\n openSRErrorPopup();\n });\n };\n\n const formValidation = () => {\n try {\n let err: any = {};\n let validation = true;\n const required = [\"reason\"];\n\n if (accType.includes(\"demat\") && dpOptions.length > 0) {\n required.push(\"selectedDp\");\n }\n\n if (reason === \"Others\") {\n required.push(\"reasonText\");\n }\n if (showOtp) {\n required.push(\"mobileOtp\", \"emailOtp\");\n }\n if (\n typeof validationErr === \"object\" &&\n Object.keys(validationErr).length === 1 &&\n validationErr.hasOwnProperty(\"HoldingValue\")\n ) {\n required.push(\"transferType\");\n if (transferType === \"Self Transfer\") {\n required.push(\"attachment\");\n required.push(\"boId\");\n }\n }\n const formData: any = {\n selectedDp,\n reason,\n reasonText,\n mobileOtp: mobile.token,\n emailOtp: email.token,\n transferType,\n attachment: fileDetails,\n boId: boId,\n };\n required.map((x: any) => {\n if (x === \"attachment\") {\n if (formData[x].length !== 2) {\n if (formData[x].length === 0)\n err[x] = {\n cmr: errMsg[x],\n sign: errMsg[x],\n };\n else if (formData[x].length === 1)\n err[x] = {\n cmr: formData[x][0].docType === \"CMR\" ? \"\" : errMsg[x],\n sign: formData[x][0].docType === \"CMR\" ? errMsg[x] : \"\",\n };\n validation = false;\n }\n } else {\n if (\n formData[x] === \"\" ||\n formData[x] === null ||\n formData[x] === undefined\n ) {\n err[x] = errMsg[x];\n validation = false;\n }\n if (x === \"reasonText\") {\n if (!alphaNumExpWithSpace.test(formData[x])) {\n err[x] = \"Special characters are not allowed like < , > etc.\";\n validation = false;\n }\n } else if (x === \"boId\") {\n if (!formData[x]) {\n err[x] = \"DP Id is required\";\n validation = false;\n } else if (alphabetExp.test(formData[x])) {\n err[x] = \"Demat Id should not contain all alphabets\";\n validation = false;\n } else if (!alphaNumExp.test(formData[x])) {\n err[x] = \"Please enter a valid DP Id\";\n validation = false;\n } else if (formData[x].length !== 16) {\n err[x] = \"Demat Id should be of length 16\";\n validation = false;\n }\n }\n }\n });\n\n setErrors(err);\n return validation;\n } catch (e) {\n // console.log(e);\n }\n };\n\n const modalData = (cType: string) => {\n switch (cType) {\n case \"CheckList\":\n return (\n <>\n
    \n
    \n \n
    \n {\n setShowModal(false);\n }}\n title=\"Close\"\n className=\"cancel sign-cross-button\"\n >\n \n \n
    \n
    \n
    \n

    \n Account Closure Check List\n

    \n
    \n
    \n
      \n {checks &&\n checks.length > 0 &&\n checks.map((c) => {\n return (\n
    • \n
      \n
      \n \n
      \n
      \n

      {c.value}

      \n
    • \n );\n })}\n
    \n
    \n
    \n {\n setShowModal(false);\n }}\n >\n OK\n \n
    \n
    \n
    \n
    \n \n \n );\n case \"Signature\":\n return (\n <>\n
    \n
    \n \n
    \n {\n setShowModal(false);\n setContentType(\"\");\n }}\n title=\"Close\"\n className=\"cancel sign-cross-button\"\n >\n \n \n
    \n
    \n \n
    \n
    \n
    \n \n \n );\n default:\n return <>;\n }\n };\n\n React.useImperativeHandle(ref, () => ({\n submitData(val: any) {\n if (formValidation()) {\n if (!(mobile.token && email.token)) {\n setShowOtp(true);\n props.srDropDown(true);\n props.setBtnText(\"Confirm & E-Sign\");\n } else {\n submitReq();\n }\n }\n },\n }));\n\n React.useEffect(() => {\n const _validationErr =\n typeof validationErr === \"object\"\n ? Object.keys(validationErr).length === 1\n ? validationErr.hasOwnProperty(\"HoldingValue\")\n ? transferType === \"Self Transfer\"\n : false\n : false\n : true;\n if (\n Object.values(errors)\n .map((x: any) => {\n return (\n x === \"\" ||\n x === null ||\n x === undefined ||\n (typeof x === \"object\" && !x.cmr && !x.sign)\n );\n })\n .every((x) => x === true) &&\n _validationErr\n ) {\n props.enableSubmit(true);\n } else {\n props.enableSubmit(false);\n }\n }, [errors, validationErr]);\n\n const hasFreeHoldings = () => {\n return (\n typeof validationErr === \"object\" &&\n Object.keys(validationErr).length === 1 &&\n validationErr.hasOwnProperty(\"HoldingValue\")\n );\n };\n return (\n <>\n {\n <>\n {existingAccClosureSR ? (\n \n ) : (\n
    \n {!invalidTime ? (\n dpDetails.length > 0 && (\n <>\n {\n console.log(\"val\", val);\n if (dpDetails[0].Linked_Demat_Accounts.length !== 0) {\n if (val === \"trading\") validate(\"\", \"\", val);\n else if (selectedDp) validate(\"\", \"\", val);\n } else if (val === \"trading\") validate(\"\", \"\", val);\n\n setAccType(val);\n setTransferType(\"\");\n setFileDetails([]);\n setBoId(\"\");\n setReason(\"\");\n setReasonText(\"\");\n setValidationErr(undefined);\n }}\n disabled={showOtp || mobile.token || email.token}\n onlyTrading={\n dpDetails[0].Linked_Demat_Accounts.length === 0\n ? 1\n : 0\n }\n />\n\n {\n setSelectedDp(val);\n setValidationErr(undefined);\n validate(\"\", val);\n }}\n errorMsg={jointHolderErrorMsg}\n accountCode={\n dpDetails.length ? dpDetails[0].AccountCode : \"\"\n }\n reason={reason}\n setReason={setReason}\n setErrors={setErrors}\n errors={errors}\n disabled={showOtp || mobile.token || email.token}\n jointHolderErrorMsg={jointHolderErrorMsg}\n />\n\n {reason === \"Others\" && (\n
    \n
    \n
    \n {\n setReasonText(e.target.value);\n setErrors({ ...errors, reasonText: \"\" });\n }}\n maxLength={DPType === \"NSDL\" ? 50 : 100}\n onBlur={(e) => {\n \n }}\n placeholder=\"Enter closure reason\"\n disabled={\n showOtp || mobile.token || email.token\n }\n />\n

    \n {reasonText.length}/\n {DPType === \"NSDL\" ? 50 : 100}\n

    \n
    \n\n {errors.reasonText && errors.reasonText !== \"\" && (\n

    \n {errors.reasonText}\n

    \n )}\n
    \n
    \n )}\n\n {\n <>\n {!jointHolderErrorMsg && (\n <>\n {hasFreeHoldings() && (\n
    \n
    \n

    \n {\" \"}\n We have found that you have free holdings\n in your account. In order to transfer this\n to your other account, Please click on\n self-transfer option below\n

    \n
    \n
    \n
    \n
    Free Holdings
    \n
    \n
    \n
    \n
    \n {\n setTransferType(\n transferTypes[0].value\n );\n setErrors({\n ...errors,\n transferType: \"\",\n });\n }}\n disabled={\n showOtp ||\n mobile.token ||\n email.token\n }\n selected={transferType}\n />\n
    \n\n
    \n {\n setTransferType(\n transferTypes[1].value\n );\n setErrors({\n ...errors,\n transferType: \"\",\n });\n setBoId(\"\");\n }}\n selected={transferType}\n disabled={\n showOtp ||\n mobile.token ||\n email.token\n }\n />\n\n
    \n
    \n

    \n

    \n \n
    \n \n Transfer the stocks offline\n \n

    \n
    \n
    \n
    \n {errors.transferType &&\n errors.transferType !== \"\" && (\n

    \n {errors.transferType}\n

    \n )}\n
    \n
    \n
    \n {transferType === \"Self Transfer\" && (\n \n
    \n \n {\n setBoId(val);\n setErrors({ ...errors, boId: \"\" });\n }}\n onBlur={(error: any) => {\n \n }}\n placeholder=\"DP Id\"\n onMouseOut={() => {}}\n defaultValue={boId}\n errorText={errors.boId}\n autoComplete=\"off\"\n disabled={\n showOtp ||\n mobile.token ||\n email.token\n }\n />\n
    \n
    \n )}\n\n {transferType === \"Self Transfer\" && (\n <>\n
    \n
    \n
    \n
    \n \n
    \n
    \n

    \n

    \n \n
    \n \n To get your CMR copy of\n Target account, contact\n the Depository participant\n with whom you have a demat\n account where you wish to\n transfer the shares from\n your Nuvama account to\n that demat account with\n another Depository\n participant (Target\n account). To transfer\n shares via online account\n closure cum transfer\n process, submit the\n closure form along with\n CMR copy of your account\n held with another\n Depository participant\n (Target Account).\n \n

    \n
    \n
    \n
    \n
    \n\n

    \n Scanned copy of CMR Account\n

    \n \n handleSubmit(data, \"CMR\")\n }\n disableCross={\n showOtp ||\n mobile.token ||\n email.token\n }\n />\n {errors.attachment &&\n errors.attachment.cmr &&\n errors.attachment.cmr !== \"\" && (\n

    \n {errors.attachment.cmr}\n

    \n )}\n
    \n
    \n \n
    \n

    \n Photo copy of your Signature\n

    \n
    \n {\n setShowModal(true);\n setContentType(\"Signature\");\n }}\n >\n View Sample\n \n \n \n \n
    \n
    \n\n \n handleSubmit(data, \"Signature\")\n }\n crop={true}\n disableCross={\n showOtp ||\n mobile.token ||\n email.token\n }\n />\n {errors.attachment &&\n errors.attachment.sign &&\n errors.attachment.sign !== \"\" && (\n

    \n {errors.attachment.sign}\n

    \n )}\n
    \n
    \n \n )}\n\n {transferType ===\n \"Other Account Transfer\" && (\n

    \n {\" \"}\n Please transfer the stocks offine & raise\n request after successful transfer\n

    \n )}\n
    \n )}\n {showOtp && (!mobile.token || !email.token) && (\n
    \n
    \n {!mobile.token && (\n {\n setMobile({ ...mobile, token });\n setErrors({\n ...errors,\n mobileOtp: \"\",\n });\n }}\n verifyDisabled={\n errors.mobileNo || errors.emailId\n }\n setLoader={(val: boolean) => {\n props.setParLoader(val);\n }}\n />\n )}\n {errors.mobileOtp &&\n errors.mobileOtp !== \"\" && (\n

    \n {errors.mobileOtp}\n

    \n )}\n
    \n\n {!email.token && (\n
    \n {\n setEmail({ ...email, token });\n setErrors({\n ...errors,\n emailOtp: \"\",\n });\n }}\n verifyDisabled={\n errors.mobileNo || errors.emailId\n }\n setLoader={(val: boolean) => {\n props.setParLoader(val);\n }}\n />\n {errors.emailOtp &&\n errors.emailOtp !== \"\" && (\n

    \n {errors.emailOtp}\n

    \n )}\n
    \n )}\n
    \n )}\n {typeof validationErr === \"object\" ? (\n Object.keys(validationErr).length > 1 ? (\n
      \n {Object.entries(validationErr).map(\n (val: any) => {\n return (\n successMsg[val[0]] && (\n
    • \n

      \n {successMsg[val[0]] &&\n successMsg[val[0]].err &&\n successMsg[val[0]].err !==\n \"\" ? (\n \n {successMsg[val[0]].err}\n \n ) : (\n {val[1]} \n )}\n {successMsg[val[0]].msg && (\n <>\n -\n \n {\" \"}\n {successMsg[val[0]].msg}\n \n \n )}{\" \"}\n {successMsg[val[0]].link && (\n \n Click here\n \n )}\n

      \n
    • \n )\n );\n }\n )}\n
    \n ) : Object.keys(validationErr)[0] ===\n \"HoldingValue\" ? (\n <>\n ) : (\n
      \n
    • \n

      \n \n {Object.values(validationErr)[0]}{\" \"}\n \n {successMsg[\n Object.keys(validationErr)[0]\n ].msg &&\n successMsg[\n Object.keys(validationErr)[0]\n ].msg.trim() && (\n <>\n -\n \n {\" \"}\n {\n successMsg[\n Object.keys(\n validationErr\n )[0]\n ].msg\n }\n \n \n )}{\" \"}\n {successMsg[\n Object.keys(validationErr)[0]\n ].link && (\n \n Click here\n \n )}\n

      \n
    • \n
    \n )\n ) : (\n \"\"\n )}\n \n )}\n \n }\n \n )\n ) : (\n <>\n

    \n Requests cannot be raised after 3:30 PM\n

    \n \n )}\n \n )}\n\n {}}\n children={modalData(contentType)}\n modalClsNm={\"modal-Sr\"}\n />\n \n }\n \n );\n }\n);\n\nexport default AccountClosure;\n","export default __webpack_public_path__ + \"static/media/digi-locker.1ec317fa.webp\";","import * as React from \"react\";\nimport { useState } from \"react\";\nimport { config } from \"../../../../config/domain\";\nimport Checkbox from \"../../../generic/checkbox\";\nimport EdModal from \"../../../generic/edModal\";\nimport InputField from \"../../../generic/inputField\";\nimport TocDropdown from \"../../../generic/tocDropdown\";\nimport { getArea, getFullAddress } from \"../../../service/generic/otherApi\";\nimport { IListObj } from \"../../../types/genericTypes\";\nimport { getOCRResp } from \"../../generic/qCCheck\";\nimport {\n alphaNumExp,\n alphaNumExpWithSpaceForAddr,\n betweenNChars,\n detectIntWithSpace,\n integerExp,\n specialCharExpressionForAddr,\n} from \"../../../utils/regex\";\nimport { FileUploadSection } from \"../../generic/fileUploadSection\";\nimport { getMergeDocumentBase64 } from \"../../../service/serviceRequest/srApiService\";\nconst addressProofOptions: Array = [\n { value: \"DrivingLicense\", display: \"Driving License\" },\n { value: \"NREGAJobCard\", display: \"NREGA job card\" },\n { value: \"Passport\", display: \"Passport\" },\n { value: \"VotersId\", display: \"Voters Id\" },\n];\nvar addressType = [\n {\n value:1,\n TotLines: 3,\n size: 30\n },\n {\n value:2,\n TotLines: 4,\n size: 36\n },\n {\n value:3,\n TotLines: 3,\n size: 50\n }\n]\nexport const addressFormErrorObj = {\n addressLine1: \"\",\n addressLine2: \"\",\n addressLine3: \"\",\n addressLine4: \"\",\n pincode: \"\",\n area: \"\",\n proof: \"\",\n fileName: \"\",\n fileData: \"\",\n};\nexport const AddressModificationForm = (props: any) => {\n const errorString = \"Area not exist.\";\n const [errors, setErrors] = React.useState({ ...addressFormErrorObj });\n const [areaOptions, setAreaOptions] = useState([]);\n const [pincodeEnabled, setPincodeEnabled] = useState(false);\n const [dropDownlownValue, setDropDownValueChanged] = useState(false);\n const [showPincodeErrorModel, setShowPincodeErrorModel] = useState(false);\n const [frontBack, setFrontBack] = useState(false);\n const [frontDocument, setFrontDocument] = useState({});\n const [backDocument, setBackDocument] = useState({});\n\n React.useEffect(() => {\n if (showPincodeErrorModel) {\n (\n document.getElementsByClassName(\"modal-Sr\")[0] as HTMLDivElement\n ).scrollTo({\n top: 0,\n left: 0,\n behavior: \"smooth\",\n });\n }\n }, [showPincodeErrorModel]);\n React.useEffect(() => {\n let err = errors;\n let addressObj = props.addressObj;\n\n Object.keys(props.addressObj).map((k: any, i: any) => {\n if (k.includes(\"addressLine\")) {\n if (addressObj[k]) {\n if (addressObj[k] && addressObj[k].length > addressType[props.addessType-1].size) {\n err[k] =\n \"Address Line \" + (i + 1) + \" maximum length is \"+addressType[props.addessType-1].size+\" characters\";\n addressObj[k] = undefined;\n } else if (\n !alphaNumExpWithSpaceForAddr.test(\n addressObj[k].replace(/\\//g, \"\")\n ) &&\n !specialCharExpressionForAddr(0, 0).test(addressObj[k])\n ) {\n err[k] =\n \"Special characters are not allowed like ~ ` # $ % ^ & * ( ) = + { } [ ] \\\\ | : ; ” ’ < > , ? _\";\n addressObj[k] = addressObj[k];\n }\n }\n }\n });\n\n setErrors(err);\n props.setAddressObj({\n ...props.addressObj,\n addressObj,\n [\"proof\"]: addressProofOptions[0].value,\n });\n\n if (props.addressObj.pincode && props.addressObj.pincode.length === 6) {\n setAreaOptions(props.areas && props.areas.length > 0 ? props.areas : []);\n if (props.areas && props.areas.length === 1) {\n props.addressObj.area = props.areas[0].value;\n }\n if (props.areas && props.areas.length > 1) {\n if (props.sameAsPermanent) props.addressObj.area = props.areas[0].value;\n else getAreaDetails(props.addressObj.pincode);\n }\n if (props.areas && props.areas.length === 0)\n getAreaDetails(props.addressObj.pincode);\n }\n }, []);\n const toCamelCase = (string: any) => {\n return string.replace(/\\w\\S*/g, function (txt: any) {\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\n });\n };\n const isEmptyObject = (obj: any) => {\n if (JSON.stringify(obj) !== \"{}\") return true;\n return false;\n };\n const isKraDetails = () => {\n if (\n !props.childSr &&\n isEmptyObject(props.kraDetails.webSign) &&\n isEmptyObject(props.kraDetails.panCard) &&\n isEmptyObject(props.kraDetails.photo)\n ) {\n return true;\n } else {\n if (props.childSr) {\n return true;\n } else {\n return false;\n }\n }\n };\n const isSecondFileDetails = (addressObj: any) => {\n if (\n addressObj &&\n frontBack &&\n !addressObj.fileName2 &&\n !addressObj.fileData2\n ) {\n return false;\n } else {\n return true;\n }\n };\n\n const isValid = () => {\n let validations = Object.values(errors).map((val: any) => {\n if (val) return false;\n else return true;\n });\n\n // let isValid = Object.values(props.addressObj).map((val: any))\n let hasFormErr: any = false;\n //console.log('props.addressObj test',props.addressObj,props.secondAddress);\n\n Object.keys(props.addressObj).map((k: any, i: any) => {\n if (k.includes(\"addressLine\")) {\n if (props.addressObj[k]) {\n if (handleChangeAddressErrors(k, props.addressObj[k], \"yes\"))\n hasFormErr = true;\n }\n // if(props.addressObj[k]===undefined) hasFormErr= true;\n // //console.log('hasFormErr',hasFormErr,'props.addressObj[k]',props.addressObj[k]);\n }\n });\n Object.keys(props.secondAddress).map((k: any, i: any) => {\n if (k.includes(\"addressLine\")) {\n if (props.secondAddress[k]) {\n //console.log('props.secondAddress[k]',props.secondAddress[k]);\n if (handleChangeAddressErrors(k, props.secondAddress[k], \"yes\"))\n hasFormErr = true;\n }\n\n // //console.log('hasFormErr',hasFormErr,'props.addressObj[k]',props.addressObj[k]);\n }\n });\n // console.log(\"validations\", validations, hasFormErr);\n\n return validations.every((x) => x === true) && !hasFormErr;\n };\n React.useEffect(() => {\n if (props.addressObj) {\n if (\n props.addressObj.addressLine1 &&\n isValid() &&\n isKraDetails() &&\n props.addressObj.pincode &&\n props.addressObj.area &&\n props.addressObj.proof\n ) {\n if (props.childSr) {\n if (!props.addressObj.fileName && !props.addressObj.fileData) {\n props.disabledButton(true);\n }\n } else {\n if (\n props.addressObj.fileName &&\n props.addressObj.fileData &&\n isSecondFileDetails(props.secondAddress)\n ) {\n props.disabledButton(true);\n } else {\n props.disabledButton(false);\n }\n }\n\n if (props.sameAsPermanent) {\n if (props.childSr) {\n if (!props.addressObj.fileName && !props.addressObj.fileData) {\n props.disabledButton(true);\n }\n } else {\n if (props.addressObj.fileName && props.addressObj.fileData) {\n props.disabledButton(true);\n } else {\n props.disabledButton(false);\n }\n }\n } else {\n if (\n props.secondAddress &&\n props.secondAddress.addressLine1 &&\n isValid() &&\n isKraDetails() &&\n props.secondAddress.pincode &&\n props.secondAddress.area &&\n props.secondAddress.proof\n ) {\n if (props.childSr) {\n if (\n !props.secondAddress.fileName &&\n !props.secondAddress.fileData\n ) {\n props.disabledButton(true);\n }\n } else {\n if (\n props.secondAddress.fileName &&\n props.secondAddress.fileData &&\n isSecondFileDetails(props.secondAddress)\n ) {\n if (\n !props.addressObj.fileName &&\n !props.addressObj.fileData &&\n !isSecondFileDetails(props.addressObj)\n ) {\n props.disabledButton(false);\n } else {\n props.disabledButton(true);\n }\n } else {\n props.disabledButton(false);\n }\n }\n } else {\n props.disabledButton(false);\n }\n }\n } else {\n props.disabledButton(false);\n }\n }\n }, [props.addressObj, props.kraDetails]);\n React.useEffect(() => {\n if (props.sameAsPermanent && props.addressObj) {\n if (\n props.addressObj.addressLine1 &&\n isValid() &&\n isKraDetails() &&\n props.addressObj.pincode &&\n props.addressObj.area &&\n props.addressObj.proof\n ) {\n if (props.childSr) {\n if (!props.addressObj.fileName && !props.addressObj.fileData) {\n props.disabledButton(true);\n }\n } else {\n if (props.addressObj.fileName && props.addressObj.fileData) {\n props.disabledButton(true);\n } else {\n props.disabledButton(false);\n }\n }\n } else {\n props.disabledButton(false);\n }\n } else {\n if (\n props.addressObj.addressLine1 &&\n isValid() &&\n isKraDetails() &&\n props.addressObj.pincode &&\n props.addressObj.area &&\n props.addressObj.proof &&\n props.addressObj.fileName &&\n props.addressObj.fileData\n ) {\n if (\n props.secondAddress &&\n props.secondAddress.addressLine1 &&\n isValid() &&\n isKraDetails() &&\n props.secondAddress.pincode &&\n props.secondAddress.area &&\n props.secondAddress.proof\n ) {\n if (props.childSr) {\n if (\n !props.secondAddress.fileName &&\n !props.secondAddress.fileData\n ) {\n props.disabledButton(true);\n }\n } else {\n if (props.secondAddress.fileName && props.secondAddress.fileData) {\n props.disabledButton(true);\n } else {\n props.disabledButton(false);\n }\n }\n } else {\n props.disabledButton(false);\n }\n } else {\n props.disabledButton(false);\n }\n }\n }, [props.sameAsPermanent]);\n React.useEffect(() => {\n if (!(frontDocument && frontDocument.fileName && frontDocument.fileData)) {\n props.disabledButton(false);\n props.setAddressObj({\n ...props.addressObj,\n [\"fileName\"]: undefined,\n [\"fileData\"]: undefined,\n });\n }\n }, [frontDocument]);\n React.useEffect(() => {\n if (backDocument && backDocument.fileName && backDocument.fileData) {\n // mergeDocuments();\n if (\n props.sameAsPermanent &&\n !(\n props.addressObj.addressLine1 &&\n isValid() &&\n isKraDetails() &&\n props.addressObj.pincode &&\n props.addressObj.area &&\n props.addressObj.proof &&\n props.addressObj.fileName &&\n props.addressObj.fileData\n )\n ) {\n props.setAddressObj({\n ...props.addressObj,\n [\"fileName2\"]: backDocument.fileName,\n [\"fileData2\"]: backDocument.fileData,\n [\"imgSrc2\"]: backDocument.imgSrc,\n });\n props.disabledButton(false);\n } else if (!props.sameAsPermanent) {\n if (\n !(\n props.addressObj.addressLine1 &&\n isValid() &&\n isKraDetails() &&\n props.addressObj.pincode &&\n props.addressObj.area &&\n props.addressObj.proof &&\n props.addressObj.fileName &&\n props.addressObj.fileData\n )\n ) {\n props.disabledButton(false);\n } else {\n if (\n !(\n props.secondAddress &&\n props.secondAddress.addressLine1 &&\n isValid() &&\n isKraDetails() &&\n props.secondAddress.pincode &&\n props.secondAddress.area &&\n props.secondAddress.proof &&\n props.secondAddress.fileName &&\n props.secondAddress.fileData\n )\n ) {\n if (\n frontBack &&\n props.addressObj.fileName &&\n props.addressObj.fileData\n ) {\n props.setAddressObj({\n ...props.addressObj,\n [\"fileName2\"]: backDocument.fileName,\n [\"fileData2\"]: backDocument.fileData,\n [\"imgSrc2\"]: backDocument.imgSrc,\n });\n }\n props.disabledButton(false);\n } else {\n props.setAddressObj({\n ...props.addressObj,\n [\"fileName2\"]: backDocument.fileName,\n [\"fileData2\"]: backDocument.fileData,\n [\"imgSrc2\"]: backDocument.imgSrc,\n });\n props.disabledButton(true);\n }\n }\n } else {\n props.setAddressObj({\n ...props.addressObj,\n [\"fileName2\"]: backDocument.fileName,\n [\"fileData2\"]: backDocument.fileData,\n [\"imgSrc2\"]: backDocument.imgSrc,\n });\n props.disabledButton(true);\n }\n }\n }, [backDocument]);\n\n // React.useEffect(() => {\n // if (props.childSr) {\n // if (props.addressObj && props.addressObj.addressLine1 &&\n // props.addressObj.addressLine2 &&\n // props.addressObj.pincode &&\n // props.addressObj.area) {\n // props.disabledButton(true);\n // } else {\n // props.disabledButton(false);\n // }\n // }\n // }, [props.childSr]);\n React.useEffect(() => {\n if (frontBack) {\n setFrontDocument({\n [\"fileName\"]: props.addressObj.fileName,\n [\"fileData\"]: props.addressObj.fileData,\n [\"imgSrc\"]: props.addressObj.imgSrc,\n });\n props.disabledButton(false);\n } else {\n if (\n props.addressObj.addressLine1 &&\n isValid() &&\n isKraDetails() &&\n props.addressObj.pincode &&\n props.addressObj.area &&\n props.addressObj.proof &&\n props.addressObj.fileName &&\n props.addressObj.fileData\n ) {\n if (\n props.secondAddress &&\n props.secondAddress.addressLine1 &&\n isValid() &&\n isKraDetails() &&\n props.secondAddress.pincode &&\n props.secondAddress.area &&\n props.secondAddress.proof\n ) {\n if (props.childSr) {\n if (\n !props.secondAddress.fileName &&\n !props.secondAddress.fileData\n ) {\n props.disabledButton(true);\n }\n } else {\n if (props.secondAddress.fileName && props.secondAddress.fileData) {\n props.disabledButton(true);\n } else {\n props.disabledButton(false);\n }\n }\n } else {\n props.disabledButton(false);\n }\n } else {\n props.disabledButton(false);\n }\n }\n }, [frontBack]);\n // React.useEffect(() => {\n // if (isKraDetails()) {\n // props.disabledButton(true);\n // } else {\n // props.disabledButton(false);\n // }\n // }, [props.kraDetails]);\n async function getAreaDetails(pincode: any) {\n if (pincode && pincode.length === 6) {\n try {\n let areaResp = await getArea(pincode);\n if (areaResp) {\n let areas = areaResp.data.areas;\n if (areas) {\n const list = areas.map((respObj: any) => {\n return {\n value: toCamelCase(respObj.toLowerCase()),\n display: toCamelCase(respObj.toLowerCase()),\n };\n });\n if (\n list &&\n list.length === 1 &&\n toCamelCase(list[0].value.toLowerCase()) ===\n toCamelCase(errorString.toLowerCase())\n ) {\n setErrors({ ...errors, [\"pincode\"]: \"Pincode is not valid\" });\n setShowPincodeErrorModel(true);\n setAreaOptions([]);\n props.setAddressObj({\n ...props.addressObj,\n [\"pincode\"]: undefined,\n });\n setPincodeEnabled(true);\n } else {\n setErrors({ ...errors, [\"pincode\"]: \"\" });\n setAreaOptions(list);\n props.setAddressObj({\n ...props.addressObj,\n [\"pincode\"]: pincode,\n [\"area\"]: list[0].value,\n });\n getFullAddressDetails(pincode, list[0].value);\n setPincodeEnabled(false);\n }\n }\n }\n } catch (e) {\n openSRErrorPopup();\n }\n }\n }\n async function getFullAddressDetails(pincode: any, area: any) {\n try {\n if (pincode && pincode.length === 6 && area) {\n let payloadObj = { area: area, pinCode: pincode };\n let fullAddress = await getFullAddress(payloadObj);\n if (fullAddress && fullAddress.data) {\n props.setAddressObj({\n ...props.addressObj,\n [\"pincode\"]: pincode,\n [\"area\"]: toCamelCase(area),\n [\"stateStr\"]: toCamelCase(fullAddress.data.state.toLowerCase()),\n [\"city\"]: toCamelCase(fullAddress.data.city.toLowerCase()),\n });\n }\n } else {\n props.setAddressObj({\n ...props.addressObj,\n [\"area\"]: area,\n [\"stateStr\"]: \"\",\n [\"city\"]: \"\",\n });\n }\n } catch (error) {\n openSRErrorPopup();\n }\n }\n const openSRErrorPopup = () => {\n // props.setLoader(false);\n if (props.onSubmit)\n props.onSubmit(\"addressModification\", {\n headerText:\n \"There was some problem in raising service request. Please try again later.\",\n });\n };\n\n function getDocumentCategory(proof: any, documentCategory: any) {\n if (proof === \"Aadhar card\") {\n documentCategory.name = \"Aadhar\";\n documentCategory.id = 117;\n } else if (proof === \"Voters Id\") {\n documentCategory.name = \"Voters Id\";\n documentCategory.id = 116;\n } else if (proof === \"Passport\") {\n documentCategory.name = \"Passport\";\n documentCategory.id = 114;\n } else if (proof === \"Driving License\") {\n documentCategory.name = \"Driving License\";\n documentCategory.id = 118;\n }\n return documentCategory;\n }\n const handleSubmitForPermantAddressFile = (fileDetails: any) => {\n setDropDownValueChanged(false);\n if (fileDetails && fileDetails.docFile && fileDetails.base64Data) {\n if (!frontBack) {\n if (props.accountCode && props.addressObj.proof !== \"NREGA job card\") {\n let documentCategory = { name: \"\", id: 0 };\n documentCategory = getDocumentCategory(\n props.addressObj.proof,\n documentCategory\n );\n let requestPayload = {\n applicationid: props.accountCode,\n base64document: fileDetails.base64Data.split(\",\")[1],\n documentcategory: documentCategory.name,\n documentid: documentCategory.id,\n source: \"DIY\",\n };\n let ocrResp: any;\n ocrResp = getOCRResp(documentCategory.name, requestPayload);\n if (\n ocrResp.status === \"completed\" &&\n ocrResp.result.extraction_output\n ) {\n // //console.log(ocrResp);\n }\n }\n let imgSrc = \"\";\n if (fileDetails.docFile.split(\".\")[1].toLowerCase() !== \"pdf\") {\n imgSrc = fileDetails.base64Data;\n }\n // //console.log(imgSrc);\n props.setAddressObj({\n ...props.addressObj,\n [\"fileName\"]: fileDetails.docFile,\n [\"fileData\"]: fileDetails.base64Data.split(\",\")[1],\n [\"imgSrc\"]: imgSrc,\n });\n } else {\n let imgSrc = \"\";\n if (fileDetails.docFile.split(\".\")[1].toLowerCase() !== \"pdf\") {\n imgSrc = fileDetails.base64Data;\n }\n setFrontDocument({\n [\"fileName\"]: fileDetails.docFile,\n [\"fileData\"]: fileDetails.base64Data.split(\",\")[1],\n [\"imgSrc\"]: imgSrc,\n });\n props.setAddressObj({\n ...props.addressObj,\n [\"fileName\"]: fileDetails.docFile,\n [\"fileData\"]: fileDetails.base64Data.split(\",\")[1],\n [\"imgSrc\"]: imgSrc,\n });\n }\n } else {\n if (!frontBack) {\n props.setAddressObj({\n ...props.addressObj,\n [\"fileName\"]: undefined,\n [\"fileData\"]: undefined,\n });\n } else {\n setFrontDocument({\n [\"fileName\"]: undefined,\n [\"fileData\"]: undefined,\n });\n props.setAddressObj({\n ...props.addressObj,\n [\"fileName\"]: undefined,\n [\"fileData\"]: undefined,\n });\n }\n }\n };\n const handleSubmitForBackDocument = (fileDetails: any) => {\n if (fileDetails && fileDetails.docFile && fileDetails.base64Data) {\n let imgSrc = \"\";\n if (fileDetails.docFile.split(\".\")[1].toLowerCase() !== \"pdf\") {\n imgSrc = fileDetails.base64Data;\n }\n setBackDocument({\n [\"fileName\"]: fileDetails.docFile,\n [\"fileData\"]: fileDetails.base64Data.split(\",\")[1],\n [\"imgSrc\"]: imgSrc,\n });\n } else {\n setFrontBack(false);\n setBackDocument({\n [\"fileName\"]: undefined,\n [\"fileData\"]: undefined,\n });\n }\n };\n function handleChangeAddressErrors(key: any, value: any, validate?: any) {\n let hasErr = false;\n if (key.includes(\"addressLine\")) {\n let index = key.replace(\"addressLine\", \"\");\n if(key === \"addressLine1\" && value.length < 1){\n setErrors({ ...errors, [key]: \"Please enter Address in Line 1\" });\n } else if (value && value.length > addressType[props.addessType-1].size) {\n if (!validate) {\n props.setAddressObj({ ...props.addressObj, [key]: value });\n setErrors({\n ...errors,\n [key]: \"Address Line \" + index + \" maximum length is \"+addressType[props.addessType-1].size+\" characters\",\n });\n }\n\n hasErr = true;\n } else if (detectIntWithSpace.test(value)) {\n if (!validate) {\n props.setAddressObj({ ...props.addressObj, [key]: value });\n setErrors({\n ...errors,\n [key]: \"Line \" + index + \" is not allowed numbers only.\",\n });\n }\n\n hasErr = true;\n } else if (\n !alphaNumExpWithSpaceForAddr.test(value.replace(/\\//g, \"\")) &&\n !specialCharExpressionForAddr(0, 0).test(value)\n ) {\n if (!validate) {\n setErrors({\n ...errors,\n [key]:\n \"Special characters are not allowed like ~ ` # $ % ^ & * ( ) = + { } [ ] \\\\ | : ; ” ’ < > , ? _\",\n });\n props.setAddressObj({ ...props.addressObj, [key]: value });\n }\n\n hasErr = true;\n } else if (!specialCharExpressionForAddr(0, 0).test(value)) {\n if (!validate) {\n setErrors({\n ...errors,\n [key]:\n \"Special characters are not allowed like ~ ` # $ % ^ & * ( ) = + { } [ ] \\\\ | : ; ” ’ < > , ? _\",\n });\n props.setAddressObj({ ...props.addressObj, [key]: value });\n }\n\n hasErr = true;\n } else {\n //console.log('errors',errors);\n if (!validate) {\n setErrors({ ...errors, [key]: \"\" });\n props.setAddressObj({ ...props.addressObj, [key]: value });\n }\n }\n } else if (key === \"pincode\") {\n if (!value) {\n if (!validate) {\n setAreaOptions([]);\n setErrors({ ...errors, [key]: undefined });\n props.setAddressObj({ ...props.addressObj, [key]: undefined });\n }\n } else if (value && value.length < 6 && !integerExp.test(value)) {\n setAreaOptions([]);\n setErrors({ ...errors, [key]: \"Pincode is not valid\" });\n // setShowPincodeErrorModel(true);\n props.setAddressObj({ ...props.addressObj, [key]: undefined });\n setPincodeEnabled(true);\n hasErr = true;\n } else if (value && value.length > 6 && !integerExp.test(value)) {\n setAreaOptions([]);\n setErrors({ ...errors, [key]: \"Pincode is not valid\" });\n setShowPincodeErrorModel(true);\n props.setAddressObj({ ...props.addressObj, [key]: undefined });\n setPincodeEnabled(true);\n hasErr = true;\n } else if (\n !alphaNumExpWithSpaceForAddr.test(value.replace(/\\//g, \"\")) &&\n !specialCharExpressionForAddr(0, 0).test(value)\n ) {\n setAreaOptions([]);\n setErrors({ ...errors, [key]: \"Pincode is not valid\" });\n setShowPincodeErrorModel(true);\n props.setAddressObj({ ...props.addressObj, [key]: undefined });\n setPincodeEnabled(true);\n hasErr = true;\n } else if (value && !integerExp.test(value)) {\n setAreaOptions([]);\n setErrors({ ...errors, [key]: \"Pincode is not valid\" });\n setShowPincodeErrorModel(true);\n props.setAddressObj({ ...props.addressObj, [key]: undefined });\n setPincodeEnabled(true);\n hasErr = true;\n } else if (value && value.length === 6 && !integerExp.test(value)) {\n setAreaOptions([]);\n getAreaDetails(value);\n }\n }\n //console.log('hasErr',hasErr);\n\n if (validate) return hasErr;\n }\n function handleChangeAddress(key: any, value: any) {\n if (key.includes(\"addressLine\")) {\n setErrors({ ...errors, [key]: \"\" });\n props.setAddressObj({ ...props.addressObj, [key]: value });\n } else if (key === \"pincode\") {\n if (value.length <= 6) {\n setAreaOptions([]);\n setErrors({ ...errors, [key]: \"Pincode is not valid\" });\n props.setAddressObj({ ...props.addressObj, [key]: undefined });\n }\n if (value.length === 6) {\n setAreaOptions([]);\n getAreaDetails(value);\n }\n } else if (key === \"area\") {\n getFullAddressDetails(props.addressObj.pincode, value);\n } else if (key === \"proof\") {\n //props.setAddressObj({ ...props.addressObj, [key]: value });\n setDropDownValueChanged(true);\n if (props.addressObj.fileName && props.addressObj.fileData) {\n setFrontDocument(undefined);\n props.setAddressObj({\n ...props.addressObj,\n [key]: value,\n [\"fileName\"]: undefined,\n [\"fileData\"]: undefined,\n });\n if (backDocument && backDocument.fileName && backDocument.fileData) {\n setBackDocument(undefined);\n }\n } else {\n props.setAddressObj({\n ...props.addressObj,\n [key]: value,\n [\"fileName\"]: undefined,\n [\"fileData\"]: undefined,\n });\n }\n // props.setAddressObj({\n // ...props.addressObj,\n // [\"fileName\"]: undefined,\n // [\"fileData\"]: undefined,\n // });\n }\n }\n\n function wrongPinCodeMessagePOPUp(): React.ReactElement {\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n

    \n This Pincode is not identifiable\n

    \n
    \n
    \n

    \n Please contact your RM or write to us at\n

    \n

    \n \n helpdesk@nuvama.com\n \n

    \n
    \n
    \n
    \n {\n e.preventDefault();\n setShowPincodeErrorModel(false);\n }}\n >\n Search Another\n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n }\n return (\n <>\n
    \n
    \n
    \n \n
    \n {\n // //console.log(value.length);\n // //console.log(!specialCharExpressionForAddr(5, 30).test(value));\n handleChangeAddress(\"addressLine1\", value);\n }}\n onBlur={() => {}}\n onMouseOut={(val) => {\n handleChangeAddressErrors(\"addressLine1\", val);\n }}\n placeholder={\"House/flat no., Road\"}\n errorText={errors.addressLine1}\n helpTextColor=\"blue\"\n helpText={\n props.addressObj &&\n props.addressObj.addressLine1 &&\n props.addressObj.addressLine1.length === addressType[props.addessType-1].size\n ? \"You can enter maximum of \"+ addressType[props.addessType-1].size +\" characters in this line.\"\n : \"\"\n }\n />\n
    \n
    \n\n
    \n \n
    \n {\n handleChangeAddress(\"addressLine2\", value);\n }}\n onBlur={() => {}}\n onMouseOut={(val) => {\n handleChangeAddressErrors(\"addressLine2\", val);\n }}\n placeholder=\"Locality, Landmark\"\n errorText={errors.addressLine2}\n helpTextColor=\"blue\"\n helpText={\n props.addressObj &&\n props.addressObj.addressLine2 &&\n props.addressObj.addressLine2.length === addressType[props.addessType-1].size\n ? \"You can enter maximum of \"+ addressType[props.addessType-1].size +\" characters in this line.\"\n : \"\"\n }\n />\n
    \n
    \n
    \n
    \n
    \n \n
    \n {\n // //console.log(value.length);\n // //console.log(!specialCharExpressionForAddr(5, 30).test(value));\n handleChangeAddress(\"addressLine3\", value);\n }}\n onBlur={() => {}}\n onMouseOut={(val) => {\n handleChangeAddressErrors(\"addressLine3\", val);\n }}\n placeholder={\"House/flat no., Road\"}\n errorText={errors.addressLine3}\n helpTextColor=\"blue\"\n helpText={\n props.addressObj &&\n props.addressObj.addressLine3 &&\n props.addressObj.addressLine3.length === addressType[props.addessType-1].size\n ? \"You can enter maximum of \"+ addressType[props.addessType-1].size +\" characters in this line.\"\n : \"\"\n }\n />\n
    \n
    \n {\n props.addessType === 2 && (\n
    \n \n
    \n {\n handleChangeAddress(\"addressLine4\", value);\n }}\n onBlur={() => {}}\n onMouseOut={(val) => {\n handleChangeAddressErrors(\"addressLine4\", val);\n }}\n placeholder=\"Locality, Landmark\"\n errorText={errors.addressLine4}\n helpTextColor=\"blue\"\n helpText={\n props.addressObj &&\n props.addressObj.addressLine4 &&\n props.addressObj.addressLine4.length === addressType[props.addessType-1].size\n ? \"You can enter maximum of \"+ addressType[props.addessType-1].size +\" characters in this line.\"\n : \"\"\n }\n />\n
    \n
    \n )}\n
    \n
    \n
    \n \n
    \n {\n handleChangeAddress(\"pincode\", value);\n }}\n onBlur={() => {}}\n onMouseOut={(val) => {\n handleChangeAddressErrors(\"pincode\", val);\n }}\n placeholder=\"Enter Pincode\"\n errorText={errors.pincode}\n />\n
    \n
    \n
    \n \n {\n handleChangeAddress(\"area\", value);\n }}\n disabled={pincodeEnabled || areaOptions.length < 1}\n isSearchable={false}\n />\n
    \n
    \n
    \n
    \n \n
    \n {}}\n onBlur={() => {}}\n placeholder=\"Enter State\"\n disabled={true}\n />\n
    \n
    \n
    \n {!props.childSr && (\n
    \n \n

    Scanned Copy Of Address Proof

    \n
    \n {\n handleChangeAddress(\"proof\", value);\n }}\n isSearchable={false}\n />\n
    \n \n {frontBack && (\n \n )}\n
    \n

    \n If you want to update address as per aadhar, please process from\n digilocker\n

    \n {frontBack ? (\n
    \n {!props.childSr &&\n !(\n props.addressObj &&\n props.addressObj.fileName &&\n backDocument &&\n backDocument.fileName\n ) && (\n <>\n

    \n Kindly upload clear coloured images of original\n documents of proof of Address\n

    \n \n )}\n
    \n ) : (\n
    \n {!props.childSr &&\n !(props.addressObj && props.addressObj.fileName) && (\n <>\n

    \n Kindly upload clear coloured images of original\n documents of proof of Address\n

    \n \n )}\n
    \n )}\n
    \n {!frontBack && (\n \n \n {\n setFrontBack(true);\n }}\n >\n Add Front/Back Document\n \n \n )}\n {frontBack && (\n \n \n {\n setFrontBack(false);\n }}\n >\n Remove Front/Back Document\n \n \n )}\n
    \n )}\n
    \n {}}\n children={wrongPinCodeMessagePOPUp()}\n modalClsNm={\"absoluteModal\"}\n />\n \n );\n};","import * as React from \"react\";\nimport { useState } from \"react\";\nimport { config } from \"../../../../config/domain\";\nimport digiLocker_img from \"../../../../assets/images/digi-locker.webp\";\nimport pdf_icon from \"../../../../assets/images/pdf_icon.png\";\nimport LoginService, { getAccData } from \"../../../service/login/loginService\";\nimport Checkbox from \"../../../generic/checkbox\";\nimport {\n CreateChildServiceRequestDetails,\n CreateServiceRequestDetails,\n createSRDocumentUpload,\n fetchDigiLockerUrl,\n GetAllNewExistingSRDetails,\n getClientDet,\n GetDepositoryDetails,\n GetEquityReactivationClientValidation,\n getMergeDocumentBase64,\n} from \"../../../service/serviceRequest/srApiService\";\nimport { useQuery } from \"../../../service/urlHelper\";\nimport { AddressModificationForm } from \"./addressModificationForm\";\nimport { getArea } from \"../../../service/generic/otherApi\";\nimport {\n getDocumentCategory,\n getMaskedAdhar,\n getOCRResp,\n} from \"../../generic/qCCheck\";\nimport { asyncGetServiceRequest } from \"../../../service/postLogin/clientProfileAPIService\";\nimport * as esignService from \"../../../service/esign/esignService\";\nimport {\n KRADocumentUploadForm,\n ViewKRADocuments,\n} from \"../KRADocumentUpload/KRADocumentUpload\";\nimport VideoVerification from \"../videoVerification/VideoVerification\";\nexport const AddressFormat = {\n addressLine1: \"\",\n addressLine2: \"\",\n addressLine3: \"\",\n addressLine4: \"\",\n city: \"\",\n country: \"\",\n pincode: \"\",\n stateStr: \"\",\n area: \"\",\n proof: \"DrivingLicense\",\n fileName: \"\",\n fileData: \"\",\n isDigiLocker: false,\n photoDetails: \"\",\n pdfXMLResp: \"\",\n};\nvar count = 0;\nexport const AddressModification: React.FC = (props) => {\n const parentDetails: any = JSON.parse(\n localStorage.getItem(\"accReactParentDetails\") || \"{}\"\n );\n const [accReactFlow, setAccReactFlow] = useState(false);\n const addressConsent = useQuery().get(\"consent\");\n const consentType = useQuery().get(\"consentType\");\n let consentList: any = undefined,\n invAddress: boolean = true;\n if (getAccData(\"cnsntLst\")) {\n consentList = getAccData(\"cnsntLst\");\n } else if (localStorage.getItem(\"cnsntLst\")) {\n consentList = JSON.parse(localStorage.getItem(\"cnsntLst\") || \"{}\");\n }\n if (consentList && consentList.length > 0) {\n let consentName = consentList.find((list: any) => {\n if (list.name === \"invAddress\") return list;\n // if (list.name === \"invAddress\" || list.name === \"accReact\") return list;\n });\n if (consentName && consentName.name === \"invAddress\") {\n invAddress = false;\n } \n // else if(consentName && consentName.name === \"accReact\") {\n // setAccReactFlow(true);\n // } \n else {\n invAddress = true;\n }\n \n }\n\n const soad = useQuery().get(\"soad\");\n const sr = useQuery().get(\"srID\");\n const digie = localStorage.getItem(\"digie\");\n let personalDetails: any = window.localStorage.getItem(\"personalDetails\");\n const digieResubmit = localStorage.getItem(\"digieResubmit\");\n const [prefilledBase64, setPrefilledBase64] = useState();\n const [qcStatus, setQCStatus] = useState(\"Verification in Process\");\n const [existingAddressSR, setExistingAddressSR] = useState();\n const [dormantMoreThanYear, setDormantMoreThanYear] = useState(undefined);\n const [existingPermanentAddress, setExistingPermanentAddress] =\n useState();\n const [existingCorrspondenceAddress, setExistingCorrspodenceAddress] =\n useState();\n const [accountCode, setAccountCode] = useState();\n const [permanentAddress, setPermanentAddress] = React.useState({\n ...AddressFormat,\n });\n const [kraDetails, setKraDetails] = React.useState({\n webSign: {},\n panCard: {},\n photo: {},\n });\n const [corrspondenceAddress, setCorrspondenceAddress] = React.useState({\n ...AddressFormat,\n });\n const [sameAsPermanent, setSameAsPermanent] = useState(true);\n const digiLockerUrl = \"https://api.digitallocker.gov.in/public/oauth2/1/authorize\";\n const dgLockerLinkUrl = digiLockerUrl + \"?client_id=\" + config.client_Id + \"&response_type=code&redirect_uri=\" + config.reDirectUrl + \"?&state=\" + JSON.stringify({});\n const source = useQuery().get(\"source\");\n const [viewAddress, setViewAddress] = useState(true);\n const [showEditAddressOptions, setshowEditAddressOptions] = useState(false);\n const [showPrerequisites, setshowPrerequisites] = useState(false);\n const [showFinalAddress, setShowFinalAddress] = useState(false);\n const [showRevalidateAddress, setShowRevalidateAddress] = useState(false);\n const [showWithoutDigilocker, setshowWithoutDigilocker] = useState(false);\n const [disabledButton, setDisabledButton] = useState(false);\n const [fullName, setFullName] = useState();\n const [enableEsign, setEnableEsign] = useState(false);\n const [enableDigilocker, setEnableDigilocker] = useState(false);\n // const [loader, props.setLoader] = useState(true);\n const [autoQC, setAutoQC] = useState(\"NA\");\n const [serReqId, setSerReqId] = useState(\"\");\n const [areaOptions, setAreaOptions] = useState([]);\n const [areaCOOptions, setCOAreaOptions] = useState([]);\n const [checkAutoQcFlag, setCheckAutoQcFlag] = useState();\n const [userConsent, setUserConsent] = useState(false);\n const [sourceAddress, setSourceAddress] = useState(false);\n const [ViewAddressSame, setViewAddressSame] = useState(false);\n const [dpType, setDpType] = useState(\"\");\n const [ipvcode, setIpvcode] = useState(\"\");\n const [showIpvScreen, setShowIpvScreen] = useState(false);\n const [showPrerequisiteLink, setShowPrerequisiteLink] = useState(true);\n const [addrType, setAddrType] = useState(1);\n const [videoContent, setVideoContent] = React.useState();\n const srID = (() => {\n return props.childSr\n ? props.getChildSr(2)\n : window.localStorage.getItem(\"srId\")\n ? window.localStorage.getItem(\"srId\")\n : sr;\n })();\n React.useEffect(() => {\n if (!props.childSr && soad && soad === \"dig\") {\n if (isKraDetails()) {\n setDisabledButton(true);\n } else {\n setDisabledButton(false);\n }\n }\n }, [kraDetails]);\n\n // React.useEffect(() => {\n // if(videoContent && ipvcode) {\n // if (!props.childSr) {\n // if (showFinalAddress) {\n // setshowEditAddressOptions(false);\n // props.setLoader(true);\n // setViewAddress(true);\n // submitRequest();\n // } else {\n // setshowEditAddressOptions(true);\n // setViewAddress(false);\n // }\n // if (serReqId && prefilledBase64) {\n // esignService.getEsignUrl(\n // prefilledBase64,\n // serReqId,\n // \"address\"\n // );\n // }\n // } else {\n // submitRequest();\n // }\n // } \n // }, [videoContent]);\n\n React.useEffect(() => {\n getDemat();\n localStorage.removeItem(\"personalDetails\");\n setDormantMoreThanYear(localStorage.getItem(\"DormantMoreThanYear\"))\n if(localStorage.getItem(\"DormantMoreThanYear\") == 'true') {\n setShowRevalidateAddress(true);\n setShowPrerequisiteLink(true);\n }\n if (window.location.href.includes(\"account-reactivation\")) {\n setAccReactFlow(true);\n } else {\n localStorage.removeItem(\"DormantMoreThanYear\");\n setShowPrerequisiteLink(false);\n }\n if (soad === \"dig\" || digie === \"Yes\") {\n if (!srID) getAddressDetails();\n else {\n // window.localStorage.removeItem(\"srId\");\n }\n personalDetails = JSON.parse(personalDetails);\n let addressFormatObj: any;\n setViewAddress(true);\n if (digie === \"Yes\") {\n if (!personalDetails) {\n window.localStorage.removeItem(\"digie\");\n setShowFinalAddress(false);\n getAddressDetails();\n } else {\n if(props.childSr)\n setShowFinalAddress(true);\n else\n setShowFinalAddress(false);\n }\n }\n\n if (personalDetails) {\n addressFormatObj = {\n aadharName: personalDetails.aadharName,\n addressLine1: personalDetails.addressLine1,\n stateStr: personalDetails.stateStr,\n pincode: personalDetails.pincode,\n city: personalDetails.city,\n isDigiLocker: true,\n fileData: personalDetails.fileData,\n fileName: personalDetails.fileName,\n proof: \"Aadhar\",\n autoQC: personalDetails.autoQC,\n photoDetails: personalDetails.photoDetails,\n pdfXMLResp: personalDetails.pdfXMLResp,\n };\n if (soad === \"dig\") {\n let fileObj = {\n [\"fileName\"]: \"Digilocker_photo.jpg\",\n [\"fileData\"]: personalDetails.photoDetails,\n [\"imgSrc\"]: personalDetails.photoDetails,\n [\"documentTypeName\"]: \"ProfilePhoto\",\n };\n setKraDetails({\n ...kraDetails,\n [\"photo\"]: fileObj ? fileObj : {},\n });\n }\n }\n\n if (addressFormatObj) {\n setSourceAddress(true);\n setPermanentAddress(addressFormatObj);\n setSameAsPermanent(true);\n props.setLoader(false);\n // submitRequest(addressFormatObj);\n }\n } else if (soad === \"nondig\" || digie === \"No\") {\n window.localStorage.removeItem(\"digie\");\n if (srID) {\n window.localStorage.removeItem(\"srId\");\n props.setLoader(true);\n getExistingOldAddress(srID);\n } else {\n getAddressDetails();\n }\n setViewAddress(false);\n } else {\n if (srID) {\n props.setLoader(true);\n getExistingOldAddress(srID);\n } else {\n if (!props.childSr) checkExistingAddressSR();\n getAddressDetails();\n }\n }\n }, []);\n const getDemat = async () => {\n let personalDet = await getClientDet(\"D\", LoginService.getAccData(\"accTyp\"));\n setDpType(personalDet.DpTyp);\n };\n const getDepositoryDet = async () => {\n try {\n const resp = await GetDepositoryDetails();\n\n if (resp && resp.dPIdField && resp.dPAccountNumberField) {\n return resp.dPIdField + resp.dPAccountNumberField;\n } else {\n return \"None\";\n }\n } catch (error) {\n openSRErrorPopup();\n }\n };\n const clearLocalStorage = () => {\n window.localStorage.removeItem(\"digie\");\n window.localStorage.removeItem(\"digieResubmit\");\n window.localStorage.removeItem(\"rejectFlow\");\n window.localStorage.removeItem(\"srId\");\n window.localStorage.removeItem(\"\");\n window.localStorage.removeItem(\"ipvcode\");\n window.localStorage.removeItem(\"imageData\");\n window.localStorage.removeItem(\"latitude\");\n window.localStorage.removeItem(\"longitude\");\n };\n async function getExistingOldAddress(srId: any) {\n try {\n props.setLoader(true);\n setViewAddress(false);\n if (typeof srId === \"string\") {\n srId = parseInt(srId);\n }\n let resp = await GetAllNewExistingSRDetails(srId);\n if (resp && resp.result) {\n if (resp.result.old_data && resp.result.old_data.accountcode) {\n setAccountCode(resp.result.old_data.accountcode);\n }\n if (\n resp &&\n resp.result &&\n resp.result.new_data &&\n resp.result.new_data.newPermanentAdr\n ) {\n setPermanentAddress(\n getAddressObj(resp.result.new_data.newPermanentAdr)\n );\n }\n if (\n resp &&\n resp.result &&\n resp.result.new_data &&\n resp.result.new_data.newCorrespondenceAdr\n ) {\n setCorrspondenceAddress(\n getAddressObj(resp.result.new_data.newCorrespondenceAdr)\n );\n }\n let resultSameAsPermant =\n JSON.stringify(resp.result.new_data.newPermanentAdr).toLowerCase() ===\n JSON.stringify(\n resp.result.new_data.newCorrespondenceAdr\n ).toLowerCase();\n if (resultSameAsPermant) {\n setSameAsPermanent(true);\n } else {\n setSameAsPermanent(false);\n }\n if (!resultSameAsPermant) {\n let corresAreaResp = await getArea(\n resp.result.new_data.newCorrespondenceAdr.pincode\n );\n if (\n corresAreaResp.data &&\n corresAreaResp.data.areas &&\n corresAreaResp.data.areas.length > 0\n ) {\n const list = corresAreaResp.data.areas.map((respObj: any) => {\n return {\n value: toCamelCase(respObj.toLowerCase()),\n display: toCamelCase(respObj.toLowerCase()),\n };\n });\n setCOAreaOptions(list);\n }\n }\n let areaResp = await getArea(\n resp.result.new_data.newPermanentAdr.pincode\n );\n if (\n areaResp.data &&\n areaResp.data.areas &&\n areaResp.data.areas.length > 0\n ) {\n props.setLoader(true);\n const list = areaResp.data.areas.map((respObj: any) => {\n return {\n value: toCamelCase(respObj.toLowerCase()),\n display: toCamelCase(respObj.toLowerCase()),\n };\n });\n setAreaOptions(list);\n let isDigResubmit = localStorage.getItem(\"digieResubmit\");\n if (isDigResubmit === \"Yes\") {\n setshowEditAddressOptions(true);\n props.setLoader(false);\n } else {\n setshowWithoutDigilocker(true);\n props.setLoader(false);\n }\n } else {\n openSRErrorPopup();\n }\n } else {\n openSRErrorPopup();\n }\n } catch (error) {\n openSRErrorPopup();\n }\n }\n function setAddressFlag() {\n if (sameAsPermanent) {\n setSameAsPermanent(false);\n setPermanentAddress(permanentAddress);\n setCorrspondenceAddress(permanentAddress);\n } else {\n setSameAsPermanent(true);\n }\n }\n\n async function getAddressDetails() {\n props.setLoader(true);\n try {\n if ((soad && soad === \"nondig\") || (digie && digie === \"No\")) {\n props.setLoader(true);\n }\n let addressDetails = await GetEquityReactivationClientValidation();\n if (addressDetails) {\n if (addressDetails.result && addressDetails.result.length > 0) {\n if(addressDetails.result[0].NCDEX == \"Y\"){\n setAddrType(1);\n } else if(addressDetails.result[0].NCDEX == \"N\" && addressDetails.result[0].DP_Type == \"NSDL\"){\n setAddrType(2);\n } else {\n setAddrType(3);\n }\n setAccountCode(addressDetails.result[0].AccountCode);\n setFullName(addressDetails.result[0].FullAcName);\n setExistingPermanentAddress(\n addressDetails.result[0].PermanentAddress[0]\n );\n setExistingCorrspodenceAddress(\n addressDetails.result[0].CorrespondenceAddress[0]\n );\n\n if (\n JSON.stringify(\n addressDetails.result[0].PermanentAddress[0]\n ).toLowerCase() ===\n JSON.stringify(\n addressDetails.result[0].CorrespondenceAddress[0]\n ).toLowerCase()\n ) {\n setViewAddressSame(true);\n } else {\n setViewAddressSame(false);\n }\n if (!(soad && soad === \"dig\")) {\n if (digie && digie === \"Yes\" && personalDetails) {\n return;\n }\n if (!soad || !digie) {\n setPermanentAddress(\n getAddressObj(addressDetails.result[0].PermanentAddress[0])\n );\n setCorrspondenceAddress(\n getAddressObj(addressDetails.result[0].CorrespondenceAddress[0])\n );\n if (addressDetails.result[0].PermanentAddress[0].PinCode) {\n let areaResp = await getArea(\n addressDetails.result[0].PermanentAddress[0].PinCode\n );\n if (\n areaResp.data &&\n areaResp.data.areas &&\n areaResp.data.areas.length > 1\n ) {\n const list = areaResp.data.areas.map((respObj: any) => {\n return {\n value: toCamelCase(respObj.toLowerCase()),\n display: toCamelCase(respObj.toLowerCase()),\n };\n });\n setAreaOptions(list);\n }\n if ((soad && soad === \"nondig\") || (digie && digie === \"No\")) {\n setshowWithoutDigilocker(true);\n }\n }\n }\n }\n }\n }\n props.setLoader(false);\n } catch (err) {\n openSRErrorPopup();\n }\n }\n const isEmptyObject = (obj: any) => {\n if (JSON.stringify(obj) !== \"{}\") return true;\n return false;\n };\n const isKraDetails = () => {\n if (\n !props.childSr &&\n isEmptyObject(kraDetails.webSign) &&\n isEmptyObject(kraDetails.panCard)\n ) {\n return true;\n } else {\n return false;\n }\n };\n function getFormattedString(addressLine1: any) {\n if (addressLine1) {\n if (addressLine1.includes(\",\")) {\n addressLine1 = addressLine1.replaceAll(\",\", \" \");\n }\n addressLine1 = addressLine1.toLowerCase();\n addressLine1 = addressLine1.trim();\n addressLine1= addressLine1.replace(/\\s+/g, ' ');\n }\n return addressLine1;\n }\n const toCamelCase = (string: any) => {\n if (string)\n return string.replace(/\\w\\S*/g, function (txt: any) {\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\n });\n else return \"\";\n };\n function getImgSrc(fileData: string, fileName: string) {\n if (fileData && fileName) {\n if (fileName.split(\".\")[1] !== \"pdf\") {\n let imgSrc =\n \"data:image/\" + fileName.split(\".\")[1] + \";base64,\" + fileData;\n return imgSrc;\n } else return undefined;\n } else return undefined;\n }\n function getAddressObj(addressObj: any, documents?: any) {\n let addressFormatObj = undefined;\n if (props.childSr)\n addressFormatObj = {\n addressLine1: toCamelCase(\n getFormattedString(\n addressObj.address_line_1\n ? addressObj.address_line_1\n : addressObj.AddressLine1\n )\n ),\n addressLine2: toCamelCase(\n getFormattedString(\n addressObj.address_line_2\n ? addressObj.address_line_2\n : addressObj.AddressLine2\n )\n ),\n addressLine3: toCamelCase(\n getFormattedString(\n addressObj.address_line_3\n ? addressObj.address_line_3\n : addressObj.AddressLine3\n )\n ),\n addressLine4: toCamelCase(\n getFormattedString(\n addressObj.address_line_4 !== \"\"\n ? addressObj.address_line_4\n : addressObj.AddressLine4 !== \"\"\n ? addressObj.AddressLine4\n : \"\"\n )\n ),\n pincode: addressObj.pincode ? addressObj.pincode : addressObj.PinCode,\n stateStr: toCamelCase(\n addressObj.state\n ? addressObj.state.toLowerCase()\n : addressObj.State.toLowerCase()\n ),\n city: toCamelCase(\n addressObj.city\n ? addressObj.city.toLowerCase()\n : addressObj.City.toLowerCase()\n ),\n country: toCamelCase(\n addressObj.Country ? addressObj.Country.toLowerCase() : \"\"\n ),\n proof: \"DrivingLicense\",\n fileData: \"\",\n fileName: \"\",\n imgSrc: \"\",\n isDigiLocker: false,\n };\n else if (sourceAddress) {\n addressFormatObj = {\n aadharName: addressObj.aadharName,\n addressLine1: addressObj.addressLine1,\n stateStr: addressObj.stateStr,\n pincode: addressObj.pincode,\n city: addressObj.city,\n isDigiLocker: true,\n fileData: addressObj.fileData,\n fileName: addressObj.fileName,\n proof: \"Aadhar\",\n };\n } else {\n addressFormatObj = {\n addressLine1: toCamelCase(\n getFormattedString(\n addressObj.address_line_1\n ? addressObj.address_line_1\n : addressObj.AddressLine1\n )\n ),\n addressLine2: toCamelCase(\n getFormattedString(\n addressObj.address_line_2\n ? addressObj.address_line_2\n : addressObj.AddressLine2\n )\n ),\n addressLine3: toCamelCase(\n getFormattedString(\n addressObj.address_line_3\n ? addressObj.address_line_3\n : addressObj.AddressLine3\n )\n ),\n addressLine4: toCamelCase(\n getFormattedString(\n addressObj.address_line_4 !== \"\"\n ? addressObj.address_line_4\n : addressObj.AddressLine4 !== \"\"\n ? addressObj.AddressLine4\n : \"\"\n )\n ),\n pincode: addressObj.pincode ? addressObj.pincode : addressObj.PinCode,\n stateStr: toCamelCase(\n addressObj.state\n ? addressObj.state.toLowerCase()\n : addressObj.State.toLowerCase()\n ),\n area: \"\",\n city: toCamelCase(\n addressObj.city\n ? addressObj.city.toLowerCase()\n : addressObj.City.toLowerCase()\n ),\n country: toCamelCase(\n addressObj.Country ? addressObj.Country.toLowerCase() : \"\"\n ),\n proof: documents ? documents.documentTypeName : \"DrivingLicense\",\n fileData: documents ? documents.fileData : undefined,\n fileName: documents ? documents.fileName : undefined,\n imgSrc: documents\n ? getImgSrc(documents.fileData, documents.fileName)\n : \"\",\n isDigiLocker: false,\n };\n }\n return addressFormatObj;\n }\n\n async function checkExistingAddressSR() {\n setExistingAddressSR(\"\");\n }\n const mergeDocuments = async (addressObj: any) => {\n if (\n addressObj &&\n addressObj.fileName &&\n addressObj.fileData &&\n addressObj.fileName2 &&\n addressObj.fileData2\n ) {\n let uploadImageObj = {\n applicationId: accountCode,\n image1: addressObj.fileData,\n image2: addressObj.fileData2,\n imagename1: addressObj.fileName,\n imagename2: addressObj.fileName2,\n };\n try {\n let mergerResp = await getMergeDocumentBase64(uploadImageObj);\n if (mergerResp) {\n addressObj.fileName = \"merge_document.pdf\";\n addressObj.fileData = mergerResp;\n }\n } catch (e) {\n openSRErrorPopup();\n }\n }\n };\n function getFinalAddressLines(addressObj: any) {\n let finalAddressObj: any = {\n finalAddressLineforPermanent1: \"\",\n finalAddressLineforPermanent2: \"\",\n finalAddressLineforPermanent3: \"\",\n finalAddressLineforPermanent4: \"\",\n };\n finalAddressObj.finalAddressLineforPermanent1 = addressObj.addressLine1;\n finalAddressObj.finalAddressLineforPermanent2 = addressObj.addressLine2;\n finalAddressObj.finalAddressLineforPermanent3 = addressObj.addressLine3;\n finalAddressObj.finalAddressLineforPermanent4 = addressObj.addressLine4;\n // //console.log(\"finalAddressObj\", Object.keys(finalAddressObj));\n\n Object.keys(finalAddressObj).map((key: any) => {\n // //console.log('ele',key);\n finalAddressObj[key] = finalAddressObj[key]\n ? finalAddressObj[key].trim()\n : finalAddressObj[key];\n\n if (finalAddressObj[key] && finalAddressObj[key].length < 5) {\n let str = \"\";\n for (let i = 0; i < 5 - finalAddressObj[key].length; i++) {\n str += \"-\";\n }\n finalAddressObj[key] += str;\n } else if (!finalAddressObj[key]) finalAddressObj[key] = \"-----\";\n });\n\n return finalAddressObj;\n }\n const getAttachment = (addressObj:any, attachment:any) => {\n attachment.push({\n fileName: \"Digilocker_photo.jpg\",\n fileData: addressObj.photoDetails,\n documentTypeName: \"ProfilePhoto\",\n });\n attachment.push({\n fileName: \"Adderss_PDF_XML.xml\",\n fileData: permanentAddress.pdfXMLResp,\n documentTypeName: \"AadhaarXML\",\n });\n \n return attachment;\n }\n async function submitRequest(addressFormatObj?: any) {\n let addressObj = permanentAddress ? permanentAddress : addressFormatObj;\n var autoQC = \"No\";\n if (addressObj && addressObj.proof === \"Aadhar\" && !props.childSr) {\n props.setLoader(true);\n let maskedObj = {\n proof: addressObj.proof,\n accountCode: accountCode,\n fileData: addressObj.fileData,\n fileName: addressObj.fileName,\n };\n let respObj = await getMaskedAdhar(maskedObj, true, true);\n if (respObj.fileData && respObj.fileName) {\n addressObj.fileData = respObj.fileData;\n addressObj.fileName = respObj.fileName;\n } else {\n addressObj.fileData = respObj;\n }\n }\n if (\n !sameAsPermanent &&\n corrspondenceAddress.proof === \"Aadhar\" &&\n !props.childSr\n ) {\n let maskedObj = {\n proof: corrspondenceAddress.proof,\n accountCode: accountCode,\n fileData: corrspondenceAddress.fileData,\n fileName: corrspondenceAddress.fileName,\n };\n let respObj = await getMaskedAdhar(maskedObj, true, true);\n if (respObj.fileData && respObj.fileName) {\n corrspondenceAddress.fileData = respObj.fileData;\n corrspondenceAddress.fileName = respObj.fileName;\n } else {\n corrspondenceAddress.fileData = respObj;\n }\n }\n if (addressObj.fileName2 && addressObj.fileData2) {\n if (addressObj.proof === \"Aadhar\") {\n let maskedObj = {\n proof: addressObj.proof,\n accountCode: accountCode,\n fileData: addressObj.fileData2,\n fileName: addressObj.fileName2,\n };\n let respObj = await getMaskedAdhar(maskedObj, true, true);\n if (respObj.fileData && respObj.fileName) {\n addressObj.fileData2 = respObj.fileData;\n addressObj.fileName2 = respObj.fileName;\n } else {\n addressObj.fileData2 = respObj;\n }\n }\n await mergeDocuments(addressObj);\n }\n if (\n !sameAsPermanent &&\n corrspondenceAddress &&\n corrspondenceAddress.fileName &&\n corrspondenceAddress.fileData\n ) {\n if (corrspondenceAddress.fileName2 && corrspondenceAddress.fileData2) {\n if (corrspondenceAddress.proof === \"Aadhar\") {\n let maskedObj = {\n proof: corrspondenceAddress.proof,\n accountCode: accountCode,\n fileData: corrspondenceAddress.fileData2,\n fileName: corrspondenceAddress.fileName2,\n };\n let respObj = await getMaskedAdhar(maskedObj, true, true);\n if (respObj.fileData && respObj.fileName) {\n corrspondenceAddress.fileData2 = respObj.fileData;\n corrspondenceAddress.fileName2 = respObj.fileName;\n } else {\n corrspondenceAddress.fileData2 = respObj;\n }\n }\n await mergeDocuments(corrspondenceAddress);\n }\n }\n let finalAddressLineforPermanent1 = \"\",\n finalAddressLineforPermanent2 = \"\",\n finalAddressLineforPermanent3 = \"\",\n finalAddressLineforPermanent4 = \"\";\n let finalAddressLineforCA1 = \"\",\n finalAddressLineforCA2 = \"\",\n finalAddressLineforCA3 = \"\",\n finalAddressLineforCA4 = \"\";\n let finalAddressLineIndex1 = 0,\n finalAddressLineIndex2 = 0;\n if ((soad && soad === \"dig\") || (digie && digie === \"Yes\")) {\n finalAddressLineforPermanent1 = toCamelCase(\n getFormattedString(addressObj.addressLine1.substring(0, 30))\n );\n finalAddressLineforPermanent2 = toCamelCase(\n getFormattedString(addressObj.addressLine1.substring(30, 60))\n );\n finalAddressLineforPermanent3 = toCamelCase(\n getFormattedString(addressObj.addressLine1.substring(60, 90))\n );\n finalAddressLineforPermanent4 = toCamelCase(\n getFormattedString(addressObj.addressLine1.substring(90, 120))\n );\n if (sameAsPermanent) {\n finalAddressLineforCA1 = finalAddressLineforPermanent1;\n finalAddressLineforCA2 = finalAddressLineforPermanent2;\n finalAddressLineforCA3 = finalAddressLineforPermanent3;\n finalAddressLineforCA4 = finalAddressLineforPermanent4;\n }\n\n autoQC = permanentAddress ? permanentAddress.autoQC : addressObj.autoQc;\n } else {\n let autoQC2: any;\n if (\n accountCode &&\n permanentAddress.proof !== \"NREGA job card\" &&\n !props.childSr\n ) {\n let documentCategory = { name: \"\", id: 0 };\n documentCategory = getDocumentCategory(\n permanentAddress.proof,\n documentCategory\n );\n let requestPayload = {\n applicationid: accountCode,\n base64document: permanentAddress.fileData,\n documentcategory: documentCategory.name,\n documentid: documentCategory.id,\n source: \"DIY\",\n };\n let ocrResp: any;\n ocrResp = await getOCRResp(documentCategory.name, requestPayload);\n if (\n ocrResp &&\n ocrResp.data &&\n ocrResp.data.status === \"completed\" &&\n ocrResp.data.result.extraction_output\n ) {\n let result = ocrResp.data.result.extraction_output;\n let finalAddress =\n permanentAddress.addressLine1 +\n permanentAddress.AddressLine2 +\n permanentAddress.area +\n permanentAddress.city +\n permanentAddress.stateStr +\n permanentAddress.pincode;\n if (\n result &&\n result.address &&\n result.address.toLowerCase() === finalAddress.toLowerCase() &&\n result.pincode.toLowerCase() ===\n permanentAddress.pincode.toLowerCase() &&\n result.state.toLowerCase() ===\n permanentAddress.stateStr.toLowerCase() &&\n result.name_on_card === fullName\n ) {\n autoQC = \"Yes\";\n } else {\n autoQC = \"No\";\n }\n }\n }\n if (\n accountCode &&\n corrspondenceAddress.proof !== \"NREGA job card\" &&\n !sameAsPermanent &&\n !props.childSr\n ) {\n let documentCategory = { name: \"\", id: 0 };\n documentCategory = getDocumentCategory(\n corrspondenceAddress.proof,\n documentCategory\n );\n let requestPayload = {\n applicationid: accountCode,\n base64document: corrspondenceAddress.fileData,\n documentcategory: documentCategory.name,\n documentid: documentCategory.id,\n source: \"DIY\",\n };\n let ocrResp: any;\n ocrResp = getOCRResp(documentCategory.name, requestPayload);\n if (\n ocrResp.data &&\n ocrResp.data.status === \"completed\" &&\n ocrResp.data.result.extraction_output\n ) {\n let result = ocrResp.data.result.extraction_output;\n let finalAddress =\n corrspondenceAddress.addressLine1 +\n corrspondenceAddress.AddressLine2 +\n corrspondenceAddress.area +\n corrspondenceAddress.pincode;\n\n if (\n result &&\n result.address &&\n result.address.toLowerCase() === finalAddress.toLowerCase() &&\n result.pincode.toLowerCase() ===\n corrspondenceAddress.pincode.toLowerCase() &&\n result.state.toLowerCase() ===\n corrspondenceAddress.stateStr.toLowerCase() &&\n result.name_on_card === fullName\n ) {\n autoQC2 = \"Yes\";\n } else {\n autoQC2 = \"No\";\n }\n }\n }\n if (!sameAsPermanent) {\n if (autoQC === \"Yes\" && autoQC2 === \"Yes\") {\n autoQC = \"Yes\";\n } else {\n autoQC = \"No\";\n }\n }\n if (permanentAddress && permanentAddress.addressLine1) {\n let finalLineAddressObj = getFinalAddressLines(addressObj);\n finalAddressLineforPermanent1 =\n finalLineAddressObj.finalAddressLineforPermanent1;\n finalAddressLineforPermanent2 =\n finalLineAddressObj.finalAddressLineforPermanent2;\n finalAddressLineforPermanent3 =\n finalLineAddressObj.finalAddressLineforPermanent3;\n finalAddressLineforPermanent4 =\n finalLineAddressObj.finalAddressLineforPermanent4;\n }\n if (sameAsPermanent) {\n finalAddressLineforCA1 = finalAddressLineforPermanent1\n ? finalAddressLineforPermanent1\n : \"\";\n finalAddressLineforCA2 = finalAddressLineforPermanent2\n ? finalAddressLineforPermanent2\n : \"\";\n finalAddressLineforCA3 = finalAddressLineforPermanent3\n ? finalAddressLineforPermanent3\n : \"\";\n finalAddressLineforCA4 = finalAddressLineforPermanent4\n ? finalAddressLineforPermanent4\n : \"\";\n } else if (corrspondenceAddress && corrspondenceAddress.addressLine1) {\n let finalLineAddressObj = getFinalAddressLines(corrspondenceAddress);\n finalAddressLineforCA1 =\n finalLineAddressObj.finalAddressLineforPermanent1;\n finalAddressLineforCA2 =\n finalLineAddressObj.finalAddressLineforPermanent2;\n finalAddressLineforCA3 =\n finalLineAddressObj.finalAddressLineforPermanent3;\n finalAddressLineforCA4 =\n finalLineAddressObj.finalAddressLineforPermanent4;\n }\n }\n\n let fileAttachements = [];\n if (addressObj.fileName && addressObj.fileData)\n fileAttachements.push({\n fileName: addressObj.fileName,\n fileData: addressObj.fileData,\n documentTypeName: addressObj.proof,\n });\n\n if (\n !sameAsPermanent &&\n corrspondenceAddress &&\n corrspondenceAddress.fileName &&\n corrspondenceAddress.fileData\n ) {\n fileAttachements.push({\n fileName: corrspondenceAddress.fileName,\n fileData: corrspondenceAddress.fileData,\n documentTypeName: corrspondenceAddress.proof,\n });\n }\n if (!props.childSr && kraDetails.webSign && kraDetails.panCard) {\n if (isEmptyObject(kraDetails.photo))\n fileAttachements.push({\n fileName: kraDetails.photo?.fileName,\n fileData: kraDetails.photo?.fileData,\n documentTypeName: kraDetails.photo?.documentTypeName,\n });\n else {\n if (permanentAddress.photoDetails && permanentAddress.pdfXMLResp) {\n fileAttachements = getAttachment(permanentAddress, fileAttachements) \n } else {\n fileAttachements = getAttachment(addressObj, fileAttachements) \n }\n }\n \n if (kraDetails.webSign)\n fileAttachements.push({\n fileName: kraDetails.webSign?.fileName,\n fileData: kraDetails.webSign?.fileData,\n documentTypeName: kraDetails.webSign?.documentTypeName,\n });\n if (kraDetails.panCard)\n fileAttachements.push({\n fileName: kraDetails.panCard?.fileName,\n fileData: kraDetails.panCard?.fileData,\n documentTypeName: kraDetails.panCard?.documentTypeName,\n });\n if (ipvcode && videoContent)\n fileAttachements.push({\n fileName: \"videoIPV.webm\",\n fileData: videoContent,\n documentTypeName: \"IPV\",\n });\n }else {\n if (permanentAddress.photoDetails && permanentAddress.pdfXMLResp) {\n fileAttachements = getAttachment(permanentAddress, fileAttachements) \n } else {\n fileAttachements = getAttachment(addressObj, fileAttachements);\n }\n }\n let requestObj: any;\n if (srID) {\n var parentId = props.childSr\n ? digie && digie === \"Yes\"\n ? window.location.href.includes(\"rejected\") ? true : false\n : true\n : false;\n requestObj = [\n {\n serviceRequestId: srID,\n AutoQC: autoQC,\n ParentId: parentId,\n SRType: 'AddressChangeMode' ,\n is_digilocker_flow: addressObj.isDigiLocker\n ? addressObj.isDigiLocker\n : false,\n address_line_1: finalAddressLineforPermanent1,\n address_line_2: finalAddressLineforPermanent2,\n address_line_3: finalAddressLineforPermanent3,\n address_line_4: finalAddressLineforPermanent4,\n Corpaddress_line_1: finalAddressLineforCA1,\n Corpaddress_line_2: finalAddressLineforCA2,\n Coraddress_line_3: finalAddressLineforCA3,\n Coraddress_line_4: finalAddressLineforCA4,\n pincode: addressObj.pincode,\n city: addressObj.city,\n state: addressObj.stateStr,\n Corscity: sameAsPermanent\n ? addressObj.city\n : corrspondenceAddress.city,\n Corsstate: sameAsPermanent\n ? addressObj.stateStr\n : corrspondenceAddress.stateStr,\n Corspincode: sameAsPermanent\n ? addressObj.pincode\n : corrspondenceAddress.pincode,\n attachment:\n fileAttachements && fileAttachements.length > 0\n ? fileAttachements\n : null,\n },\n ];\n } else {\n requestObj = {\n requestType: \"Address Modification\",\n dpID: await getDepositoryDet(),\n is_digilocker_flow: addressObj.isDigiLocker,\n OldPeraddress_line_1: existingPermanentAddress.AddressLine1,\n OldPeraddress_line_2: existingPermanentAddress.AddressLine2,\n OldPeraddress_line_3: existingPermanentAddress.AddressLine3,\n OldPeraddress_line_4: existingPermanentAddress.AddressLine4,\n OldCorpaddress_line_1: existingCorrspondenceAddress.AddressLine1,\n OldCorpaddress_line_2: existingCorrspondenceAddress.AddressLine2,\n OldCorpaddress_line_3: existingCorrspondenceAddress.AddressLine3,\n OldCorpaddress_line_4: existingCorrspondenceAddress.AddressLine4,\n OldPerpincode: existingPermanentAddress.PinCode,\n OldPercity: existingPermanentAddress.City,\n OldPerstate: existingPermanentAddress.State,\n OldCorscity: existingCorrspondenceAddress.City,\n OldCorsstate: existingCorrspondenceAddress.State,\n OldCorspincode: existingCorrspondenceAddress.PinCode,\n address_line_1: finalAddressLineforPermanent1,\n address_line_2: finalAddressLineforPermanent2,\n address_line_3: finalAddressLineforPermanent3,\n address_line_4: finalAddressLineforPermanent4,\n Corpaddress_line_1: finalAddressLineforCA1,\n Corpaddress_line_2: finalAddressLineforCA2,\n Coraddress_line_3: finalAddressLineforCA3,\n Coraddress_line_4: finalAddressLineforCA4,\n pincode: addressObj.pincode,\n city: addressObj.city,\n state: addressObj.stateStr,\n Corscity: sameAsPermanent ? addressObj.city : corrspondenceAddress.city,\n Corspincode: sameAsPermanent\n ? addressObj.pincode\n : corrspondenceAddress.pincode,\n Corsstate: sameAsPermanent\n ? addressObj.stateStr\n : corrspondenceAddress.stateStr,\n AutoQC: autoQC,\n ipv_code: ipvcode? ipvcode : \"\",\n fileAttaches: fileAttachements,\n };\n }\n\n props.setLoader(true);\n setShowFinalAddress(true);\n setViewAddressSame(false);\n // setQCStatus(\"Verified\");props.setLoader(false);\n try {\n let reqObj;\n if (props.childSr) {\n if (digie && digie === \"Yes\") {\n } else {\n requestObj.AutoQC = \"No\";\n }\n if (srID) {\n delete requestObj.requestType;\n if (digie && digie === \"Yes\") {\n reqObj = requestObj;\n } else {\n delete requestObj.fileAttaches;\n requestObj[0].AutoQC = \"No\";\n requestObj[0].attachment = [];\n reqObj = requestObj;\n }\n } else {\n delete requestObj.fileAttaches;\n reqObj = {\n ...requestObj,\n parent_id: props.srId,\n requestType: \"ADDRESSDETAILS\",\n };\n }\n }\n\n let createSRRes: any;\n if (srID ) {\n createSRRes = await createSRDocumentUpload(\n props.childSr ? reqObj : requestObj\n );\n if (\n createSRRes &&\n (createSRRes === \"All SR Details Updated successfully.\" ||\n createSRRes === \"Child SR Details Updated successfully.\" || createSRRes === \"Digilocker Flow of Address details updated successfully.\")\n ) {\n\n if (props.childSr) {\n if (props.ckycStatus && digie && digie === \"Yes\") {\n //rejection flow in reactivation with digilocker\n let reqObj: any = [\n {\n serviceRequestId: Number(props.ckycId),\n AutoQC: \"No\",\n SRType: \"CKYCResubmitDigie\",\n attachment: [\n {\n fileName: addressObj.fileName,\n fileData: addressObj.fileData,\n documentTypeName: \"Aadhar\",\n },\n {\n fileName: \"DigiLocker_Photo1.jpg\",\n fileData: addressObj.photoDetails\n ? addressObj.photoDetails\n : permanentAddress.photoDetails,\n documentTypeName: \"ProfilePhoto\",\n },\n {\n fileName: \"Adderss_PDF_XML.xml\",\n fileData: addressObj.pdfXMLResp\n ? addressObj.pdfXMLResp\n : permanentAddress.pdfXMLResp,\n documentTypeName: \"AadhaarXML\",\n },\n ],\n },\n ];\n let resp = await createSRDocumentUpload(reqObj);\n }\n props.next();\n return;\n }\n }\n } else {\n if (props.childSr) {\n createSRRes = await CreateChildServiceRequestDetails(reqObj);\n localStorage.removeItem(\"personalDetails\");\n \n } else {\n createSRRes = await CreateServiceRequestDetails(requestObj);\n }\n }\n if (\n typeof createSRRes === \"string\" &&\n createSRRes.includes(\"Previous Request already open for this account-\")\n ) {\n openExistSrPopup();\n return;\n } else {\n if (createSRRes === \"All SR Details Updated successfully.\") {\n setShowFinalAddress(true);\n setSerReqId(srID);\n const prefillFormpdfRes = await esignService.getPreFilledFormPDF(\n srID,\n \"address\"\n );\n if (prefillFormpdfRes !== null) {\n setPrefilledBase64(prefillFormpdfRes);\n }\n props.setLoader(false);\n } else if (createSRRes && createSRRes.Message) {\n setShowFinalAddress(true);\n setSerReqId(createSRRes.Id);\n if (soad && soad === \"dig\" && !props.childSR) {\n if (permanentAddress.autoQc === \"Yes\") {\n let result: any = await esignService.proceedToEsign(\n createSRRes.Id,\n \"address\",\n true\n );\n if (!result) openErrorPopup();\n } else if(createSRRes.Message == \"We have received your request for changing your address. This request will be processed in 2-3 business days.\"){\n let esignSuccess = await esignService.proceedToEsign(createSRRes.Id,\"address\", true);\n if(esignSuccess){\n let prefillFormpdfRes = await esignService.getPreFilledFormPDF(createSRRes.Id, \"address\");\n if (prefillFormpdfRes) {\n esignService.base64toPDF(prefillFormpdfRes);\n }\n }\n } else {\n const prefillFormpdfRes = await esignService.getPreFilledFormPDF(\n createSRRes.Id,\n \"address\"\n );\n if (prefillFormpdfRes !== null) {\n setPrefilledBase64(prefillFormpdfRes);\n }\n setCheckAutoQcFlag(\n setInterval(async () => {\n let serviceReqList = await asyncGetServiceRequest();\n\n if (\n serviceReqList.filter((ele: any) => {\n return ele.RequestId == createSRRes.Id;\n })[0].RequestStatus === \"PendingForEsign\"\n ) {\n setQCStatus(\"Verified\");\n setEnableEsign(true);\n }\n }, 10000)\n );\n props.setLoader(false);\n }\n } else if (props.childSr && digie) {\n if (digie === \"Yes\") {\n let reqObj: any = [\n {\n serviceRequestId: createSRRes.Id,\n AutoQC: permanentAddress.autoQC,\n SRType: \"Address Digilocker\",\n attachment: [\n {\n fileName: addressObj.fileName,\n fileData: addressObj.fileData,\n documentTypeName: \"Aadhar\",\n },\n {\n fileName: \"DigiLocker_Photo1.jpg\",\n fileData: addressObj.photoDetails\n ? addressObj.photoDetails\n : permanentAddress.photoDetails,\n documentTypeName: \"ProfilePhoto\",\n },\n {\n fileName: \"Adderss_PDF_XML.xml\",\n fileData: addressObj.pdfXMLResp\n ? addressObj.pdfXMLResp\n : permanentAddress.pdfXMLResp,\n documentTypeName: \"AadhaarXML\",\n },\n ],\n },\n ];\n\n if (\n parentDetails?.dormant_type.includes(\"6\") &&\n !props.ckycStatus\n ) {\n reqObj[0].SRType = \"AddressDigilockerDormantMode\";\n reqObj.unshift({\n serviceRequestId: Number(props.srId),\n attachment: null,\n SRType: \"ParentWithSR\",\n });\n }\n\n let resp = await createSRDocumentUpload(reqObj);\n if (\n resp &&\n (resp ===\n \"Digilocker Flow of Address details updated successfully.\" ||\n resp === \"Document uploaded successfully.\")\n ) {\n props.next();\n return;\n }\n } else {\n props.next();\n return;\n }\n } else {\n if (props.childSr) {\n props.next();\n return;\n }\n if(createSRRes.Message == \"We have received your request for changing your address. This request will be processed in 2-3 business days.\"){\n let esignSuccess = await esignService.proceedToEsign(createSRRes.Id,\"address\", true);\n if(esignSuccess){\n let prefillFormpdfRes = await esignService.getPreFilledFormPDF(createSRRes.Id, \"address\");\n if (prefillFormpdfRes) {\n esignService.base64toPDF(prefillFormpdfRes);\n }\n }\n } else {\n setShowFinalAddress(true);\n const prefillFormpdfRes = await esignService.getPreFilledFormPDF(\n createSRRes.Id,\n \"address\"\n );\n if (prefillFormpdfRes !== null) {\n setPrefilledBase64(prefillFormpdfRes);\n }\n props.setLoader(false);\n setCheckAutoQcFlag(\n setInterval(async () => {\n let serviceReqList = await asyncGetServiceRequest();\n\n if (\n serviceReqList.filter((ele: any) => {\n return ele.RequestId == createSRRes.Id;\n })[0].RequestStatus === \"PendingForEsign\"\n ) {\n setQCStatus(\"Verified\");\n setEnableEsign(true);\n }\n }, 10000)\n );\n }\n }\n } else openSRErrorPopup();\n }\n } catch (error) {\n console.log(\"ERrror\", error);\n // openSRErrorPopup();\n localStorage.removeItem(\"personalDetails\");\n localStorage.removeItem(\"digiAuthToken\");\n localStorage.removeItem(\"digiAuthKey\");\n localStorage.removeItem(\"digiLockerToken\");\n localStorage.removeItem(\"ipvcode\");\n localStorage.removeItem(\"DormantMoreThanYear\");\n localStorage.removeItem(\"imageData\");\n localStorage.removeItem(\"ipvcode\");\n localStorage.removeItem(\"latitude\");\n localStorage.removeItem(\"longitude\");\n }\n }\n function setDigilockerFlag() {\n if (enableDigilocker) {\n setEnableDigilocker(false);\n } else {\n setEnableDigilocker(true);\n }\n }\n function getAddressString(address: any) {\n let addressStr = \"\";\n if (address) {\n if (address.addressLine1) {\n addressStr = addressStr.concat(address.addressLine1).concat(\", \");\n }\n if (address.addressLine2) {\n addressStr = addressStr.concat(address.addressLine2).concat(\", \");\n }\n if (address.addressLine3) {\n addressStr = addressStr.concat(address.addressLine3).concat(\", \");\n }\n if (address.addressLine4) {\n addressStr = addressStr.concat(address.addressLine4).concat(\", \");\n }\n if (address.stateStr) {\n addressStr = addressStr.concat(address.stateStr).concat(\", \");\n }\n if (address.city) {\n addressStr = addressStr.concat(address.city).concat(\", \");\n }\n if (address.pincode) {\n addressStr = addressStr.concat(address.pincode).concat(\" \");\n }\n }\n return addressStr;\n }\n const openSRErrorPopup = () => {\n props.setLoader(false);\n props.onSubmit(\"addressModification\", {\n headerText:\n \"There was some problem in raising service request. Please try again later.\",\n });\n };\n const openErrorPopup = () => {\n props.setLoader(false);\n props.onSubmit(\"addressModification\", {\n headerText: \"There was some error while proceeding with esign process.\",\n });\n };\n const openSRSuccessPopup = (createSRRes: any) => {\n props.setLoader(false);\n let paramObj: any = {\n headerText: \"We have received your request!\",\n content: \"Your request will be updated within TWO working days. Status of your request will be communicated through Email\",\n popupType: \"Success\"\n };\n\n if(createSRRes.Data.refId){\n paramObj.btnText = \"Download E-Signed Form\";\n paramObj.refId = createSRRes.Data.refId;\n }\n props.onSubmit(\"address\", paramObj);\n };\n const openExistSrPopup = () => {\n props.setLoader(false);\n props.onSubmit(\"addressModification\", {\n headerText: \"You have an active service request\",\n content:\n \"You already have an active service request. Once it is updated, you will be able to raise new request.\",\n });\n return;\n };\n const getDigiLockerUrl = async () => {\n let reqObj: any = {};\n reqObj.reDirectUrl = config.reDirectUrl;\n // reqObj.reDirectUrl = \"http://localhost:3001/showDocuments\"\n reqObj.reDirectTime = \"3\";\n let resp = await fetchDigiLockerUrl(reqObj);\n if(resp) {\n localStorage.setItem(\"digiLockerToken\",resp?.data[0]?.Token);\n localStorage.setItem(\"digiAuthToken\",resp?.authToken);\n localStorage.setItem(\"digiAuthKey\",resp?.authKey);\n localStorage.removeItem(\"DormantMoreThanYear\");\n localStorage.removeItem(\"ipvcode\");\n localStorage.removeItem(\"imageData\");\n setShowRevalidateAddress(false);\n window.location.href = resp?.data[0]?.Link;\n }\n }\n return (\n
    \n {!props.loader && !existingAddressSR && !showIpvScreen && (\n <> {/* condition to be changed if ipv not to be shown for standalone address sr */}\n { showPrerequisiteLink && } \n \n

    Please do not refresh the page or use back button

    \n {viewAddress && (\n
    \n
    \n
    \n
    \n
    \n
    \n Permanent {ViewAddressSame ? \"and Correspondence\" : \"\"}{\" \"}\n Address\n
    \n {!showFinalAddress && !soad && !(dormantMoreThanYear == 'true') && (\n
    \n {\n {\n setshowEditAddressOptions(true);\n setViewAddress(false);\n setShowPrerequisiteLink(false);\n }\n }}\n className=\"field-subHead bold-text blue-text editAdd\"\n >\n Edit Address\n \n
    \n )}\n
    \n\n {permanentAddress && (\n

    \n {getAddressString(permanentAddress)\n ? getAddressString(permanentAddress)\n : \"\"}\n

    \n )}\n
    \n {!showFinalAddress && !ViewAddressSame && (\n
    \n {!soad && (\n
    \n Correspondence Address\n
    \n )}\n {soad && soad === \"dig\" && sameAsPermanent && (\n
    \n Correspondence Address same as Permanent Address\n
    \n )}\n\n {corrspondenceAddress && (\n

    \n {getAddressString(corrspondenceAddress)\n ? getAddressString(corrspondenceAddress)\n : \"\"}\n

    \n )}\n
    \n )}\n {showFinalAddress && !sameAsPermanent && (\n
    \n
    \n Correspondence Address\n
    \n\n {corrspondenceAddress && (\n

    \n {getAddressString(corrspondenceAddress)\n ? getAddressString(corrspondenceAddress)\n : \"\"}\n

    \n )}\n
    \n )}\n {showFinalAddress && sameAsPermanent && (\n
    \n
    \n Correspondence Address same as Permanent Address\n
    \n
    \n )}\n
    \n { showPrerequisites &&
    \n

    Prerequisites for Reactivation with Address Modification

    \n
      \n
    • Acceptable documents in case of Address Modification includes Driving License, NREGA Job Card, Passport, or Voter ID. Also, a copy of your Pan Card, a wet signature, and a photograph must be uploaded.
    • \n
    • You will need to perform a video IPV. Please ensure you have white paper and a pen ready. 
    • \n
    • E-Sign is mandatory for both Digi locker and Non-Digi locker flows. Have your Aadhaar number ready.
    • \n
    \n
    }\n {((dormantMoreThanYear == 'true') && showRevalidateAddress) &&
    \n
    Revalidate your address
    \n {\n //if (!props.childSr) {\n if (showFinalAddress) {\n setshowEditAddressOptions(false);\n props.setLoader(true);\n setViewAddress(true);\n submitRequest();\n } else {\n setshowEditAddressOptions(true);\n setViewAddress(false);\n setShowPrerequisiteLink(false);\n }\n if (serReqId && prefilledBase64) {\n esignService.getEsignUrl(\n prefilledBase64,\n serReqId,\n \"address\"\n );\n }\n //} \n // else {\n // submitRequest();\n // }\n setShowRevalidateAddress(false);\n setShowPrerequisiteLink(false);\n }}>Revalidate Address\n
    }\n
    \n {!showFinalAddress &&\n !props.childSr &&\n soad &&\n soad === \"dig\" &&\n sameAsPermanent && (\n \n )}\n {showFinalAddress && !props.childSr && (\n <>\n
    \n
    \n \n {permanentAddress && !permanentAddress.imgSrc && (\n \n {permanentAddress && permanentAddress.fileName && (\n \n {((soad && soad === \"dig\") ||\n !permanentAddress.imgSrc) && (\n
    \n \n
    \n )}\n \n {permanentAddress.fileName}\n

    \n
    \n )}\n {/* {permanentAddress &&\n permanentAddress.fileName &&\n qcStatus === \"Verification in Process\" && (\n

    \n {qcStatus}\n

    \n )}\n {permanentAddress &&\n permanentAddress.fileName &&\n qcStatus === \"Verified\" && (\n

    \n {qcStatus}\n

    \n )} */}\n \n )}\n {permanentAddress && permanentAddress.imgSrc && (\n
    \n {permanentAddress && permanentAddress.imgSrc && (\n \n )}\n {permanentAddress && permanentAddress.imgSrc2 && (\n \n )}\n {permanentAddress &&\n permanentAddress.fileName && (\n

    \n {permanentAddress.fileName}\n

    \n )}\n
    \n )}\n
    \n {!sameAsPermanent && (\n
    \n \n {corrspondenceAddress &&\n !corrspondenceAddress.imgSrc && (\n \n {corrspondenceAddress &&\n corrspondenceAddress.fileName && (\n <>\n \n {!corrspondenceAddress.imgSrc && (\n
    \n \n
    \n )}\n \n {corrspondenceAddress.fileName}\n

    \n
    \n \n )}\n \n )}\n {corrspondenceAddress &&\n corrspondenceAddress.imgSrc && (\n
    \n {corrspondenceAddress &&\n corrspondenceAddress.imgSrc && (\n \n )}\n {corrspondenceAddress &&\n corrspondenceAddress.imgSrc2 && (\n \n )}\n
    \n \n {corrspondenceAddress &&\n corrspondenceAddress.fileName && (\n

    \n {corrspondenceAddress.fileName}\n

    \n )}\n
    \n
    \n
    \n )}\n
    \n )}\n\n {sameAsPermanent && (\n
    \n \n
    \n )}\n
    \n {kraDetails && (\n <>\n {sameAsPermanent ? \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 { setUserConsent(!userConsent) }}\n name=\"UserConsent\"\n >\n I further confirm that below points verified by self \n \n
    \n
      \n
      \n
    • Please upload the colour image of document directly taken from the original document.
    • \n
    • Please check the validity of document in case of Passport and Driving Licence.
    • \n
      \n
    \n
    \n \n )}\n \n )}\n {showWithoutDigilocker && (\n <>\n
    \n
    Permanent Address
    \n
    \n {\n if (sameAsPermanent) setCorrspondenceAddress(obj);\n setPermanentAddress(obj);\n }}\n disabledButton={setDisabledButton}\n areas={areaOptions}\n accountCode={accountCode}\n sameAsPermanent={sameAsPermanent}\n childSr={props.childSr}\n dpType={dpType}\n kraDetails={kraDetails}\n addessType = {addrType}\n >\n\n
    \n
    \n
    \n
    \n Correspondence Address\n
    \n
    \n
    \n
    \n {\n setAddressFlag();\n }}\n >\n \n {\" \"}\n Same as Permanent Address{\" \"}\n \n \n
    \n
    \n
    \n
    \n {!sameAsPermanent && (\n \n )}\n
    \n
    \n {!props.childSr && (\n \n )}\n \n )}\n\n {showEditAddressOptions && (\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n Requesting your Aadhaar via DigiLocker\n
    \n

    \n DigiLocker is a Govt. of India initiative, allowing us to get\n an authorized digital copy of your Aadhaar card which can be\n used as an Address Proof.\n

    \n
    \n
    \n

    Steps to follow

    \n
      \n
    • \n
      \n
      \n \n
      \n
      \n

      \n Login or Register on DigiLocker using your Mobile No. and\n OTP\n

      \n
    • \n
    • \n
      \n
      \n \n
      \n
      \n

      \n Enter your security PIN\n

      \n
    • \n
    • \n
      \n
      \n \n
      \n
      \n

      \n Provide consent to share your Aadhaar with Nuvama\n

      \n
    • \n
    • \n
      \n
      \n \n
      \n
      \n

      \n Once done you will be brought back here to continue with\n your reactivation\n

      \n
    • \n
    \n

    \n Please note: Your Mobile No. needs to be linked\n to your Aadhaar\n

    \n
    \n \n \n I voluntarily authorize DigiLocker to share my Aadhaar\n details for changing address in my Demat and Trading\n account with Nuvama Wealth and Investment Ltd.\n \n \n
    \n
    \n {!enableDigilocker && (\n {\n if (enableDigilocker) {\n if (source && source === \"ajs\")\n window.localStorage.setItem(\"source\", source);\n if (props.childSr) {\n localStorage.setItem(\"digie\", \"Yes\");\n }\n setshowEditAddressOptions(false);\n window.location.href = dgLockerLinkUrl;\n }\n }}\n >\n Connect To Digilocker\n \n )}\n {enableDigilocker && (\n {\n if (enableDigilocker) {\n setshowEditAddressOptions(false);\n if (srID) {\n window.localStorage.setItem(\"srId\", srID);\n }\n if (source && source === \"ajs\")\n window.localStorage.setItem(\"source\", source);\n if (props.childSr) {\n localStorage.setItem(\"digie\", \"Yes\");\n if (consentType) {\n localStorage.setItem(\"consentType\", consentType);\n }\n if (addressConsent) {\n localStorage.setItem(\"consent\", addressConsent);\n }\n if (srID) {\n localStorage.setItem(\"rejectFlow\", \"Yes\");\n }\n }\n getDigiLockerUrl();\n //window.location.href = dgLockerLinkUrl;\n // window.location.href = config.root + \"showDocuments\";\n props.setLoader(true);\n }\n }}\n >\n Connect To Digilocker\n \n )}\n
    \n {\n {\n setshowEditAddressOptions(false);\n setshowWithoutDigilocker(true);\n (\n document.getElementsByClassName(\n \"modal-Sr\"\n )[0] as HTMLDivElement\n ).scrollTo({\n top: 0,\n left: 0,\n behavior: \"smooth\",\n });\n }\n localStorage.removeItem(\"digiAuthToken\");\n localStorage.removeItem(\"digiAuthKey\");\n localStorage.removeItem(\"digiLockerToken\");\n setShowPrerequisiteLink(false);\n }}\n className=\"blue-text bold-text\"\n >\n Continue Without Digilocker *\n \n

    \n {\" \"}\n * If you want to enter a different permanent and\n correspondence address or your mobile and Aadhar are not\n linked, please continue without digilocker process\n

    \n
    \n
    \n
    \n )}\n\n {!showEditAddressOptions && (\n \n {viewAddress && !showFinalAddress && props.childSr && (\n <>\n {\n if (props.childSr) {\n props.next();\n }\n setshowEditAddressOptions(true);\n setViewAddress(false);\n }}\n >\n Proceed\n \n \n {!(\n (consentType &&\n (consentType?.includes(\"email\") ||\n consentType?.includes(\"mobile\") ||\n consentType?.includes(\"emailMob\"))) ||\n addressConsent?.includes(\"Change of Address\")\n ) && (\n {\n clearLocalStorage();\n }}\n >\n Cancel\n \n )}\n {((consentType &&\n (consentType?.includes(\"email\") ||\n consentType?.includes(\"mobile\") ||\n consentType?.includes(\"emailMob\"))) ||\n addressConsent?.includes(\"Change of Address\")) && (\n \n )}\n \n \n )}\n {viewAddress && showFinalAddress && props.childSr && (\n
    \n {\" \"}\n {soad && soad === \"dig\" && (\n <>\n {\n if (!props.childSr) {\n setshowEditAddressOptions(false);\n setViewAddress(true);\n if (soad && soad === \"dig\") {\n if (!showFinalAddress) submitRequest();\n } else if (serReqId && prefilledBase64) {\n esignService.getEsignUrl(\n prefilledBase64,\n serReqId,\n \"address\"\n );\n }\n } else {\n submitRequest();\n }\n }}\n >\n {props.childSr\n ? \"Proceed\"\n : permanentAddress.autoQC === \"Yes\"\n ? \"Confirm & E-Sign\"\n : \"Submit\"}\n \n \n {!(\n (consentType &&\n (consentType?.includes(\"email\") ||\n consentType?.includes(\"mobile\") ||\n consentType?.includes(\"emailMob\"))) ||\n addressConsent?.includes(\"Change of Address\")\n ) && (\n {\n clearLocalStorage();\n }}\n >\n Cancel\n \n )}\n {((consentType &&\n (consentType?.includes(\"email\") ||\n consentType?.includes(\"mobile\") ||\n consentType?.includes(\"emailMob\"))) ||\n addressConsent?.includes(\"Change of Address\")) && (\n \n )}\n \n \n )}\n {!(soad && soad === \"dig\") && (\n <>\n {\n if (!props.childSr) {\n setshowEditAddressOptions(false);\n setViewAddress(true);\n if (serReqId && prefilledBase64) {\n esignService.getEsignUrl(\n prefilledBase64,\n serReqId,\n \"address\"\n );\n }\n } else {\n submitRequest();\n }\n }}\n >\n {props.childSr ? \"Proceed\" : \"Confirm & E-Sign\"}\n \n \n {!(\n (consentType &&\n (consentType?.includes(\"email\") ||\n consentType?.includes(\"mobile\") ||\n consentType?.includes(\"emailMob\"))) ||\n addressConsent?.includes(\"Change of Address\")\n ) && (\n {\n clearLocalStorage();\n }}\n >\n Cancel\n \n )}\n {((consentType &&\n (consentType?.includes(\"email\") ||\n consentType?.includes(\"mobile\") ||\n consentType?.includes(\"emailMob\"))) ||\n addressConsent?.includes(\"Change of Address\")) && (\n \n )}\n \n \n )}\n
    \n )}\n {viewAddress && (\n
    \n {\" \"}\n {soad && soad === \"dig\" && (\n <>\n {\n if (!props.childSr) {\n setshowEditAddressOptions(false);\n setViewAddress(true);\n if (soad && soad === \"dig\") {\n if (showFinalAddress) submitRequest();\n else{\n setShowFinalAddress(true);\n }\n } else if (serReqId && prefilledBase64) {\n esignService.getEsignUrl(\n prefilledBase64,\n serReqId,\n \"address\"\n );\n } \n } else {\n submitRequest();\n }\n }}\n >\n {props.childSr\n ? \"Proceed\"\n : permanentAddress.autoQC === \"Yes\"\n ? \"Confirm & E-Sign\"\n : showFinalAddress\n ? \"Confirm & E-Sign\"\n : \"Submit\"}\n \n \n {!(\n (consentType &&\n (consentType?.includes(\"email\") ||\n consentType?.includes(\"mobile\") ||\n consentType?.includes(\"emailMob\"))) ||\n addressConsent?.includes(\"Change of Address\")\n ) && (\n {\n clearLocalStorage();\n }}\n >\n Cancel\n \n )}\n {((consentType &&\n (consentType?.includes(\"email\") ||\n consentType?.includes(\"mobile\") ||\n consentType?.includes(\"emailMob\"))) ||\n addressConsent?.includes(\"Change of Address\")) && (\n \n )}\n \n \n )}\n {!(soad && soad === \"dig\") &&\n ((viewAddress && !showFinalAddress && !props.childSr) ||\n (viewAddress && showFinalAddress && !props.childSr)) && (\n <>\n {\n if (props.childSr) {\n submitRequest();\n }\n else if (showFinalAddress) {\n setshowEditAddressOptions(false);\n props.setLoader(true);\n setViewAddress(true);\n submitRequest();\n } \n // else if (accReactFlow || (dormantMoreThanYear == 'true') || showIpvScreen ){\n // setShowIpvScreen(true); // condition to be changed if ipv not to be shown for standalone address sr\n // }\n else if (serReqId && prefilledBase64) {\n esignService.getEsignUrl(\n prefilledBase64,\n serReqId,\n \"address\"\n );\n }\n else {\n setshowEditAddressOptions(true);\n setViewAddress(false);\n } \n setShowPrerequisiteLink(false); \n }}\n >\n {props.childSr\n ? \"Proceed\"\n : !showFinalAddress\n ? \"Confirm & Proceed\"\n : ((dormantMoreThanYear == 'true') || accReactFlow) // condition to be changed if ipv not to be shown for standalone address sr\n ? \"Proceed & Verify\"\n : \"Confirm & E-Sign\"}\n \n \n {!(\n (consentType &&\n (consentType?.includes(\"email\") ||\n consentType?.includes(\"mobile\") ||\n consentType?.includes(\"emailMob\"))) ||\n addressConsent?.includes(\"Change of Address\")\n ) && (\n {\n clearLocalStorage();\n }}\n >\n Cancel\n \n )}\n {((consentType &&\n (consentType?.includes(\"email\") ||\n consentType?.includes(\"mobile\") ||\n consentType?.includes(\"emailMob\"))) ||\n addressConsent?.includes(\"Change of Address\")) && (\n \n )}\n \n \n )}\n
    \n )}\n {showWithoutDigilocker && (\n <>\n {\n if (!props.childSr) {\n// submitRequest();\n setshowWithoutDigilocker(false);\n setViewAddress(true);\n // props.setLoader(true);\n setShowFinalAddress(true);\n // if (dormantMoreThanYear || accReactFlow) {\n // setShowIpvScreen(true);\n // }\n } else {\n setshowWithoutDigilocker(false);\n setViewAddress(true);\n setShowFinalAddress(true);\n }\n }}\n >\n Proceed\n \n \n {!(\n (consentType &&\n (consentType?.includes(\"email\") ||\n consentType?.includes(\"mobile\") ||\n consentType?.includes(\"emailMob\"))) ||\n addressConsent?.includes(\"Change of Address\")\n ) && (\n {\n clearLocalStorage();\n }}\n >\n Cancel\n \n )}\n {((consentType &&\n (consentType?.includes(\"email\") ||\n consentType?.includes(\"mobile\") ||\n consentType?.includes(\"emailMob\"))) ||\n addressConsent?.includes(\"Change of Address\")) && (\n \n )}\n \n \n )}\n \n )}\n \n )\n }\n {showIpvScreen && }\n \n );\n};","import * as React from \"react\";\nimport { FileUploadSection } from \"../../generic/fileUploadSection\";\nimport TocDropdown from \"../../../generic/tocDropdown\";\nimport { useState } from \"react\";\nimport Checkbox from \"../../../generic/checkbox\";\n\nvar bankDropdownMenu: Array = [\n {\n value: \"Cancelled Cheque\",\n display: \"Cancelled Cheque\",\n },\n {\n value: \"Bank Statement\",\n display: \"Bank Statement\",\n },\n];\nexport const BankUpload = (props: any) => {\n const [dropValChanged, setDropValChanged] = React.useState(false);\n const [selectedSegincomeProof, setSelectedSegincomeProof] = React.useState({\n value: \"Bank Statement\",\n display: \"Bank Statement\",\n });\n const [fileDetails, setFileDetails] = useState(props.fileDet || null);\n\n React.useEffect(() => {\n props.onSubmit(fileDetails);\n }, [fileDetails]);\n const handleSubmit = (fileDetails: any) => {\n setDropValChanged(false);\n\n if (fileDetails && fileDetails.docFile && fileDetails.base64Data) {\n var actualbase64Data = fileDetails.base64Data.split(\",\");\n setFileDetails({\n fileName: fileDetails.docFile,\n base64Data: actualbase64Data[1],\n fileType: selectedSegincomeProof.value,\n });\n } else {\n setFileDetails({\n fileName: \"\",\n base64Data: \"\",\n fileType: \"\",\n });\n }\n };\n return (\n <>\n \n
    \n \n

    \n Scanned copy of Bank proof for account {props.newBankDet.accNo}.\n
    \n Document should have your Name, Account Number, IFSC and MICR code\n clearly visible.\n

    \n
    \n
    \n
    \n
    \n {\n let value = bankDropdownMenu.filter((ele) => {\n if (ele.value === val) return ele;\n });\n setDropValChanged(true);\n setSelectedSegincomeProof(value[0]);\n setFileDetails({\n fileName: \"\",\n base64Data: \"\",\n fileType: \"\",\n });\n }}\n isSearchable={false}\n />\n
    \n
    \n
    \n\n \n {!props.fileDet.fileName && (\n

    \n Kindly upload clear colour image of original documents of proof of\n bank\n

    \n )}\n {/* {props.newBankDet.submitted && props.autoQC === \"No\" && (\n
    \n

    Verification in process

    \n

    \n We have received your request, it’s under verification and will be completed within one working day. \n After Successful verification we will send an email to complete E Sign.\n

    \n
    \n )} */}\n
    \n
    \n {\n props.setConsent(!props.userConsent)}}\n name=\"UserConsent\"\n >\n I further confirm that below points verified by self \n \n
    \n
      \n { selectedSegincomeProof.value===\"Bank Statement\" &&
      \n
    • Original Bank statement should be uploaded. If photocopy is uploaded, then the same will be rejected
    • \n
    • Latest 3 months transaction records required
    • \n
    • Name, Account Number, IFSC/MICR code should be mentioned in the bank statement and bank details should match with Bank statement
    • \n
    • Bank statement should not be password protected
    • \n
    • Name in Trading account, Bank account and Aadhar should match and you should be 1st holder in this bank.
    • \n
    • If Bank statement is not computer generated, then stamp and signature of Bank official required.
    • \n
      }\n { selectedSegincomeProof.value===\"Cancelled Cheque\" &&
      \n
    • Original cheque scanned copy should be uploaded. If photocopy is uploaded, then the same will be rejected.
    • \n
    • Cheque should have preprinted details like Name, Account Number, IFSC Code & MICR code and bank details should match with Cheque.
    • \n
    • If cheque does not have preprinted details then submit bank statement as proof.
    • \n
    • Name in Trading account, Bank account and Aadhar should match and you should be 1st holder in this bank.
    • \n
      }\n
    \n
    \n
    \n \n \n );\n};\n","import React, { useState } from \"react\";\nimport EdModal from \"../../../generic/edModal\";\nimport Loader from \"../../../generic/loader\";\nimport TocDropdown from \"../../../generic/tocDropdown\";\nimport {\n getbankBranch,\n getbankCities,\n getDistinctBanklist,\n} from \"../../../service/generic/otherApi\";\n\nexport const BankIfscpop = (props: any) => {\n const [ifscPop, setIfscPop] = useState(true);\n const [finalPopIfsc, setFinalPopIfsc] = useState(false);\n const [listOfIfsc, setlistOfIfsc] = useState();\n const [ifscBankForm, setifscBankForm] = useState({\n ifsc: \"\",\n micr: \"\",\n city: \"\",\n branch: \"\",\n bankName: \"\",\n });\n const [bankDetails, setBankDetails] = useState({\n bankName: [],\n bankBranch: [],\n bankCity: [],\n });\n const [selectedBankList, setSelectedBankList] = useState({\n bankName: \"\",\n bankCity: \"\",\n bankBranch: \"\",\n });\n //const [loader, setLoader] = useState(true);\n //const [ifscloader, setifscloader] = useState(false);\n React.useEffect(() => {\n const position = window.pageYOffset;\n if (position > 0) {\n window.scroll({\n top: 0,\n left: 0,\n behavior: \"smooth\",\n });\n }\n getBankList();\n }, []);\n const openSRErrorPopup = () => {\n props.setLoader(false);\n props.onSubmit(\"bankModification\", {\n headerText:\n \"There was some problem in raising service request. Please try again later.\",\n });\n };\n const getBankList = async () => {\n props.setLoader(true);\n let response = await getDistinctBanklist();\n if (response) {\n let bankList = response.data.banknames.map((list: any) => {\n return { value: list.bankname, display: list.bankname };\n });\n bankList.sort((a: any, b: any) => (a.display > b.display ? 1 : -1));\n if (bankList) {\n setBankDetails({ ...bankDetails, bankName: bankList });\n props.setLoader(false);\n } else openSRErrorPopup();\n } else {\n openSRErrorPopup();\n }\n };\n const onchange = async (name: string, val: any) => {\n props.setLoader(true);\n if (name === \"bankName\") {\n setSelectedBankList({\n ...selectedBankList,\n bankName: val,\n bankBranch: \"\",\n bankCity: \"\",\n });\n setBankDetails({\n ...bankDetails,\n bankBranch: [],\n bankCity: [],\n });\n let response = await getbankCities({ bankname: val });\n if (response && response.data.bankcities) {\n response.data.bankcities.sort((a: any, b: any) =>\n a.bankcity > b.bankcity ? 1 : -1\n );\n let list_of_city = response.data.bankcities.map((list: any) => {\n return { value: list.bankcity, display: list.bankcity };\n });\n setBankDetails({ ...bankDetails, bankCity: list_of_city });\n props.setLoader(false);\n }\n } else if (name === \"bankCity\") {\n setBankDetails({\n ...bankDetails,\n bankBranch: [],\n });\n\n setSelectedBankList({\n ...selectedBankList,\n bankCity: val,\n bankBranch: \"\",\n });\n let res = await getbankBranch({\n bankcity: val,\n bankname: selectedBankList.bankName,\n });\n props.setLoader(false);\n if (res && res.data.bankbranches) {\n res.data.bankbranches.sort((a: any, b: any) =>\n a.branch > b.branch ? 1 : -1\n );\n let list_of_branch = res.data.bankbranches.map((list: any) => {\n return {\n value: list.branch,\n display: list.branch,\n ifsc: list.ifsccode,\n micr: list.micr,\n };\n });\n setlistOfIfsc([...list_of_branch]);\n setBankDetails({ ...bankDetails, bankBranch: list_of_branch });\n }\n } else if (name === \"bankBranch\") {\n setSelectedBankList({ ...selectedBankList, bankBranch: val });\n props.setLoader(false);\n } else {\n openSRErrorPopup();\n }\n };\n\n const onsearch = () => {\n if (\n selectedBankList.bankName &&\n selectedBankList.bankCity &&\n selectedBankList.bankBranch\n ) {\n let selectedIfsc = listOfIfsc.find((list: any) => {\n if (list.value === selectedBankList.bankBranch) {\n return list;\n }\n });\n setifscBankForm({\n ...ifscBankForm,\n ifsc: selectedIfsc.ifsc,\n micr: selectedIfsc.micr,\n branch: selectedBankList.bankBranch,\n city: selectedBankList.bankCity,\n bankName: selectedBankList.bankName,\n });\n setIfscPop(false);\n setFinalPopIfsc(true);\n }\n };\n const ifscpopup = () => {\n return (\n <>\n {/* {ifscloader && (\n
    \n \n \n
    \n \n )} */}\n\n \n
    \n
    \n
    \n
    \n
    \n
    \n

    Search IFSC Code

    \n {\n setIfscPop(false);\n props.searchIfsc(false);\n }}\n >\n \n \n
    \n
    \n
    \n
    \n {\" \"}\n \n
    \n 0\n ? bankDetails.bankName\n : []\n }\n onSelect={(val: any) => {\n onchange(\"bankName\", val);\n }}\n disabled={props.loader}\n isSearchable={!props.loader ? true : false}\n />\n
    \n
    \n
    \n {\" \"}\n \n
    \n {\n onchange(\"bankCity\", val);\n }}\n disabled={props.loader}\n isSearchable={!props.loader ? true : false}\n />\n
    \n
    \n
    \n {\" \"}\n \n
    \n {\n onchange(\"bankBranch\", val);\n }}\n disabled={props.loader}\n isSearchable={!props.loader ? true : false}\n />\n
    \n
    \n
    \n {\n onsearch();\n }}\n >\n Search\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n );\n };\n const innerPopup = () => {\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    Search IFSC Code

    \n {\n setFinalPopIfsc(false);\n }}\n >\n \n \n
    \n
    \n
    \n

    \n IFSC: {ifscBankForm.ifsc}\n

    \n

    \n {selectedBankList.bankName}\n

    \n

    \n {selectedBankList.bankBranch}\n

    \n
    \n
    \n {\n e.preventDefault();\n setIfscPop(true);\n setFinalPopIfsc(false);\n setSelectedBankList({\n ...selectedBankList,\n bankName: \"\",\n bankCity: \"\",\n bankBranch: \"\",\n });\n }}\n >\n Search Another\n \n
    \n
    \n {\n e.preventDefault();\n setIfscPop(false);\n setFinalPopIfsc(false);\n props.updateBankDetails(ifscBankForm);\n }}\n >\n Select\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n );\n };\n return (\n <>\n {}} children={ifscpopup()} />\n {}} children={innerPopup()} />\n \n );\n};\n","import React, { forwardRef, useEffect, useState } from \"react\";\nimport Checkbox from \"../../../generic/checkbox\";\nimport InputField from \"../../../generic/inputField\";\nimport RadioButton from \"../../../generic/radioButton\";\nimport {\n getBankListForIfsc,\n checkPennyDrop,\n} from \"../../../service/generic/otherApi\";\nimport {\n CreateServiceRequestDetails,\n GetEquityReactivationClientValidation,\n CreateChildServiceRequestDetails,\n GetAllNewExistingSRDetails,\n createSRDocumentUpload,\n getDefaultBankValidationDetails,\n GetDepositoryDetails,\n} from \"../../../service/serviceRequest/srApiService\";\nimport { alphaNumExp, integerExp } from \"../../../utils/regex\";\nimport { BankUpload } from \"./upload\";\nimport { config } from \"../../../../config/domain\";\nimport { BankIfscpop } from \"./BankIfscpop\";\nimport { getAutoQc } from \"../../generic/qCCheck\";\nimport { StatusScreen } from \"../../generic/statusScreen\";\nimport { asyncGetServiceRequest } from \"../../../service/postLogin/clientProfileAPIService\";\nimport TocDropdown from \"../../../generic/tocDropdown\";\nimport * as esignService from \"../../../service/esign/esignService\";\nimport { useQuery } from \"../../../service/urlHelper\";\n\nconst accType: Array = [\n { value: \"Savings\", display: \"Savings\" },\n { value: \"Current\", display: \"Current\" },\n];\n\nexport const Bank = forwardRef((props: any, ref: any) => {\n const source = useQuery().get(\"source\");\n\n const [bankForm, setBankForm] = useState({\n accNo: \"\",\n ifsc: \"\",\n micr: \"\",\n accType: accType[0].value,\n city: \"\",\n branch: \"\",\n reAcc: \"\",\n bankName: \"\",\n primaryAcc: false,\n submitted: false,\n accName: \"\",\n accCode: \"\",\n });\n const [tempBank, setTempBank] = useState({\n accNo: \"\",\n ifsc: \"\",\n });\n const addressConsent = useQuery().get(\"consent\");\n const consentType = useQuery().get(\"consentType\");\n const [addBank, setAddBank] = useState(false);\n const [ifscPop, setIfscPop] = useState(false);\n const [errorMsg, setErrorMsg] = useState(\"\");\n const [errors, setErrors] = useState({\n accNoError: \"\",\n reAccError: \"\",\n ifscError: \"\",\n duplicBankErr: \"\",\n });\n const [documentUpload, setDocumentUpload] = useState(false);\n const [existingBankDet, setExistingBankDet] = useState([]);\n const [fileDet, setFileDet] = useState({});\n //const [loader, setLoader] = useState(true);\n const [existingBankSR, setExistingBankSR] = useState(\"\");\n const [autoQC, setAutoQC] = useState(\"NA\");\n const [serReqId, setSerReqId] = useState(\"\");\n const [checkAutoQcFlag, setCheckAutoQcFlag] = useState();\n const [micrArr, setmicrArr] = useState([]);\n const [micrList, setMicrList] = useState([]);\n const [pennyResponse, setPennyResponse] = useState(\"\");\n const [primaryBankModified, setPrimaryBankModified] = useState(false);\n const [defaultbankMsg, setDefaultBankMsg] = useState(null);\n const [editExisting, setEditExisting] = useState(false);\n const [editBankNo, setEditBankNo] = useState(-1);\n const [disablePrimaryCheckbox, setDisablePrimaryCheckbox] = useState(false);\n const [userConsent, setUserConsent] = useState(false);\n const sr = useQuery().get(\"srID\");\n const srId = props.childSr ? props.getChildSr(3) : sr;\n\n React.useEffect(() => {\n if (props.setParLoader) props.setParLoader(true);\n if (srId) getEditBankDet();\n else {\n if (!props.childSr) checkExistingBankSR();\n else {\n props.showFooter(false);\n //props.setLoader(false);\n if (props.userData) {\n if (\n props.userData.BankDetails &&\n props.userData.BankDetails.length > 0\n ) {\n if (props.userData.BankDetails.length > 0) {\n let hasFundingBank: boolean = false;\n props.userData.BankDetails.forEach((ele: any) => {\n ele.oldDefBankVal = ele.DefaultBank;\n if (ele.FundingBank === \"Yes\") hasFundingBank = true;\n });\n if (hasFundingBank) setErrorMsg(\"fundingBankError\");\n }\n setExistingBankDet(props.userData.BankDetails);\n }\n setBankForm({\n ...bankForm,\n accName: props.userData.FullAcName,\n accCode: props.userData.AccountCode,\n });\n } else {\n openSRErrorPopup();\n }\n }\n }\n }, []);\n\n React.useEffect(() => {\n if (checkAutoQcFlag && autoQC) clearInterval(checkAutoQcFlag);\n }, [autoQC]);\n\n useEffect(() => {\n if (defaultbankMsg) props.setLoader(false);\n }, [defaultbankMsg]);\n\n useEffect(() => {\n if (disablePrimaryCheckbox) {\n setBankForm({\n ...bankForm,\n primaryAcc: true,\n });\n\n onSetExistingBank(\"DefaultBank\", \"No\");\n }\n }, [disablePrimaryCheckbox]);\n\n const checkIfHasMatchAndDef = () => {\n var hasMatch = false;\n if (isValidForm())\n existingBankDet.forEach((ele: any) => {\n if (\n ele.BankAccountNumber &&\n ele.BankAccountNumber === bankForm.accNo &&\n ((ele.IFSC_Code && ele.IFSC_Code !== bankForm.ifsc) ||\n (ele.MICR_Code && ele.MICR_Code !== bankForm.micr)) &&\n ele.ReEnterBankAccountNumber &&\n ele.ReEnterBankAccountNumber === bankForm.reAcc &&\n (!srId\n ? ele.oldDefBankVal === \"Yes\"\n : ele.bank_modified && !ele.default_account_flag)\n ) {\n hasMatch = true;\n\n return;\n }\n });\n return hasMatch;\n };\n\n const existingBankDetModified = () => {\n let dataModified = false;\n existingBankDet.forEach((ele: any) => {\n if (srId) {\n if (ele.oldDefBankVal !== ele.DefaultBank) {\n if (!ele.bank_modified)\n dataModified = true;\n } else {\n if (ele.bank_modified) dataModified = true;\n }\n } else if (ele.oldDefBankVal !== ele.DefaultBank) dataModified = true;\n });\n \n return dataModified;\n };\n const isPrimBnkNotModif = () => {\n let dataModified = existingBankDet.some((bankdetails: any, index: any) => {\n return (\n (bankdetails.default_account_flag && !bankdetails.bank_modified) ||\n (bankdetails.DefaultBank === \"Yes\" &&\n !bankdetails.default_account_flag &&\n bankdetails.bank_modified)\n );\n });\n return dataModified;\n };\n React.useEffect(() => {\n if (existingBankDet.length > 0 && props.parentLoader) {\n if (props.setParLoader) props.setParLoader(false);\n }\n if (existingBankDetModified() || bankForm.primaryAcc)\n setPrimaryBankModified(true);\n else setPrimaryBankModified(false);\n var hasMatch = false;\n existingBankDet.forEach((ele: any) => {\n if (\n ele.BankAccountNumber &&\n ele.BankAccountNumber === bankForm.accNo &&\n ele.IFSC_Code &&\n ele.IFSC_Code === bankForm.ifsc &&\n ele.MICR_Code &&\n ele.MICR_Code === bankForm.micr &&\n ele.ReEnterBankAccountNumber &&\n ele.ReEnterBankAccountNumber === bankForm.reAcc\n ) {\n hasMatch = true;\n return;\n }\n });\n if (checkIfHasMatchAndDef()) setDisablePrimaryCheckbox(true);\n else setDisablePrimaryCheckbox(false);\n if (hasMatch)\n setErrors({\n ...errors,\n duplicBankErr: \"This bank details already exists.\",\n accNoError: isValidForm() ? \"\" : errors.accNoError,\n reAccError: isValidForm() ? \"\" : errors.reAccError,\n });\n else\n setErrors({\n ...errors,\n accNoError: isValidForm() ? \"\" : errors.accNoError,\n reAccError: isValidForm() ? \"\" : errors.reAccError,\n duplicBankErr: \"\",\n });\n }, [existingBankDet, bankForm]);\n\n useEffect(() => {\n if (pennyResponse) setPennyResponse(\"\");\n if (isValidForm()) defaultBankValidation(bankForm.accNo, bankForm.ifsc);\n else if (defaultbankMsg) setDefaultBankMsg(\"\");\n }, [bankForm.accNo, bankForm.ifsc, bankForm.micr, bankForm.reAcc]);\n React.useEffect(() => {\n //reset primary bank checkbox\n if (!isValidForm() && bankForm.primaryAcc) {\n setBankForm({ ...bankForm, primaryAcc: false });\n setPrimaryBankModified(false);\n if (srId)\n existingBankDet.forEach((ele: any) => {\n if (noDefaultBank()) {\n if (\n (ele.bank_modified && !ele.default_account_flag) ||\n (ele.bank_modified && ele.default_account_flag)\n )\n ele.DefaultBank = \"Yes\";\n else ele.DefaultBank = \"No\";\n }\n });\n else\n existingBankDet.forEach((ele: any) => {\n ele.DefaultBank = ele.oldDefBankVal;\n });\n }\n }, [errors, bankForm.primaryAcc]);\n\n const isValidForm = () => {\n return !(\n bankForm.accNo.length < 8 ||\n bankForm.accNo.length > 18 ||\n (bankForm.accNo && bankForm.accNo !== bankForm.reAcc) ||\n (bankForm.reAcc && bankForm.accNo !== bankForm.reAcc) ||\n bankForm.reAcc.length < 8 ||\n bankForm.reAcc.length > 18 ||\n !alphaNumExp.test(bankForm.ifsc) ||\n (bankForm.ifsc.length > 0 && bankForm.ifsc.length !== 11) ||\n !bankForm.accNo ||\n !bankForm.ifsc ||\n !bankForm.micr ||\n !bankForm.accType ||\n !bankForm.branch ||\n !bankForm.reAcc ||\n !bankForm.bankName\n );\n };\n const isValidEditForm = () => {\n return !(\n bankForm.accNo.length < 8 ||\n bankForm.accNo.length > 18 ||\n !alphaNumExp.test(bankForm.ifsc) ||\n (bankForm.ifsc.length > 0 && bankForm.ifsc.length !== 11) ||\n !bankForm.accNo ||\n !bankForm.ifsc ||\n !bankForm.micr ||\n !bankForm.branch ||\n !bankForm.bankName\n );\n };\n\n\n const getEditBankDet = async () => {\n const editDatRes = await GetAllNewExistingSRDetails(srId);\n if (editDatRes.result.new_data.bankAccountChangeDetails.length > 0) {\n editDatRes.result.new_data.bankAccountChangeDetails.map((ele: any) => {\n if (ele.new_bank_details === \"No\") {\n ele.BankAccountNumber = ele.account_number;\n ele.ReEnterBankAccountNumber = ele.re_enter_account_number;\n ele.IFSC_Code = ele.ifsc_Code;\n ele.BankName = ele.bank_name;\n ele.BankCity = ele.bank_city;\n ele.BankBranch = ele.bank_branch;\n ele.BankAccType = ele.current_account_savings_account;\n ele.MICR_Code = ele.micr_code;\n ele.DefaultBank =\n ele.default_account_flag && ele.bank_modified ? \"Yes\" : \"No\";\n ele.ReceivedProof = ele.received_proof;\n \n }\n });\n }\n if (editDatRes.result.documents)\n setFileDet({\n fileName: editDatRes.result.documents[0].fileName,\n base64Data: editDatRes.result.documents[0].fileData,\n fileType: editDatRes.result.documents[0].documentTypeName.includes(\n \"Cancelled\"\n )\n ? \"Cancelled Cheque\"\n : \"Bank Statement\",\n });\n let newBankRes = editDatRes.result.new_data.bankAccountChangeDetails.filter(\n (ele: any) => {\n if (ele.new_bank_details === \"Yes\") return ele;\n }\n )[0];\n if (newBankRes) {\n setAddBank(true);\n setBankForm({\n ...bankForm,\n accName: editDatRes.result.old_data.fullAcName,\n accCode: editDatRes.result.old_data.accountcode,\n accNo: newBankRes.account_number,\n ifsc: newBankRes.ifsc_Code,\n micr: newBankRes.micr_code,\n ifsc_Code: newBankRes.ifsc_Code,\n micr_code: newBankRes.micr_code,\n account_number: newBankRes.account_number,\n accType: newBankRes.current_account_savings_account,\n city: newBankRes.bank_city,\n branch: newBankRes.bank_branch,\n reAcc: newBankRes.re_enter_account_number,\n bankName: newBankRes.bank_name,\n primaryAcc: newBankRes.default_account_flag,\n });\n setmicrArr([\n { value: newBankRes.micr_code, display: newBankRes.micr_code },\n ]);\n } else\n setBankForm({\n ...bankForm,\n accName: editDatRes.result.old_data.fullAcName,\n accCode: editDatRes.result.old_data.accountcode,\n });\n patchExistingBankForm(\n editDatRes.result.new_data.bankAccountChangeDetails.filter((ele: any) => {\n return ele.new_bank_details === \"No\";\n }),\n newBankRes\n );\n };\n const getBankIdentifyChanges = () => {\n let result = \"\";\n if(editExisting) result = \"Changes In Existing Bank\";\n if (existingBankDetModified() && !addBank) result = \"Interchange\";\n if (bankForm.primaryAcc) result = \"Addition with default\";\n if (!bankForm.primaryAcc && addBank) result = \"Addition without default\";\n if (existingBankDetModified() && addBank && !bankForm.primaryAcc)\n result = \"Addition without default & Interchange\";\n return result;\n };\n const checkExistingBankSR = async () => {\n props.showFooter(false);\n setExistingBankSR(\"\");\n getExistingBankDetails();\n };\n const patchExistingBankForm = async (bank: any, newBankRes?: any) => {\n let bankDet = bank.BankDetails || bank;\n\n bankDet.forEach((ele: any) => {\n ele.oldDefBankVal = ele.DefaultBank;\n });\n setExistingBankDet(bankDet);\n if (!srId)\n setBankForm({\n ...bankForm,\n accName: bank.FullAcName,\n accCode: bank.AccountCode,\n });\n props.setLoader(false);\n if (bankDet.length > 5)\n setErrorMsg(\n \"You can only add max upto 6 bank accounts. If you wish to make changes to this please get in touch with RM.\"\n );\n };\n const getExistingBankDetails = async () => {\n try {\n let res = await GetEquityReactivationClientValidation();\n\n if (\n res &&\n res.result &&\n res.result.length > 0 &&\n res.result[0].BankDetails &&\n res.result[0].BankDetails.length > 0\n ) {\n let isFundingBank = res.result[0].BankDetails.some((ele: any) => {\n return ele.FundingBank === \"Yes\";\n });\n if (isFundingBank)\n openSRErrorPopup(\n \"Bank modification for funding account is not allowed online. Kindly contact your RM.\"\n );\n patchExistingBankForm(res.result[0]);\n } else {\n openSRErrorPopup();\n }\n } catch (err) {\n openSRErrorPopup();\n }\n };\n\n const updateDetails = (val: any) => {\n setBankForm({\n ...bankForm,\n ifsc: val.ifsc,\n micr: val.micr,\n branch: val.branch,\n city: val.city,\n bankName: val.bankName,\n });\n setmicrArr([{ value: val.micr, display: val.micr }]);\n setErrors({\n ...errors,\n ifscError: val.ifsc.length !== 11 ? \"Invalid ifsc code\" : \"\",\n });\n setIfscPop(false);\n };\n const onSet = (name: string, val: any) => {\n setBankForm({ ...bankForm, [`${name}`]: val });\n };\n\n const inputChangeIfsc = async (name: string, val: any) => {\n setMicrList([]);\n setmicrArr([]);\n props.setLoader(true);\n let ifscDetails = await getBankListForIfsc({ ifsccode: val.toUpperCase() });\n try {\n if (\n ifscDetails &&\n ifscDetails.data.ecoIBeatsBank.length > 0 &&\n val.length === 11\n ) {\n let setIfsc = ifscDetails.data.ecoIBeatsBank[0];\n let micrArr = ifscDetails.data.ecoIBeatsBank.map((list: any) => {\n return { value: list.micr, display: list.micr };\n });\n setMicrList(ifscDetails.data.ecoIBeatsBank);\n setmicrArr(micrArr);\n\n setBankForm({\n ...bankForm,\n ifsc: setIfsc.ifsccode,\n micr: setIfsc.micr,\n city: setIfsc.bankcity,\n branch: setIfsc.branch,\n bankName: setIfsc.bankname,\n });\n\n setErrors({ ...errors, ifscError: \"\" });\n if (\n !(\n setIfsc.micr &&\n setIfsc.ifsccode &&\n !errors.accNoError &&\n !errors.reAccError &&\n bankForm.accNo &&\n bankForm.reAcc\n )\n )\n props.setLoader(false);\n } else {\n props.setLoader(false);\n setErrors({ ...errors, ifscError: \"Invalid ifsc code\" });\n }\n } catch (error) {\n openSRErrorPopup();\n }\n };\n const defaultBankValidation = async (accNo: string, ifsc: string) => {\n props.setLoader(true);\n let queryParams = `${accNo}/${ifsc}`;\n let response = await getDefaultBankValidationDetails(queryParams);\n try {\n if (response.statuscode === 200) {\n setDefaultBankMsg(\n response.result[0].ValidationStatus ===\n \"Failed, This bank account is already mapped as default in another Trading account. Kindly add unique account or select another unique account as default.\"\n ? \"This bank account is already mapped as default in another Trading account. Please change new bank details or retain original default account.\"\n : response.result[0].ValidationStatus\n );\n props.setLoader(false);\n return response.result[0].ValidationStatus;\n } else {\n setDefaultBankMsg(response.statusmessage);\n props.setLoader(false);\n return response.statusmessage;\n }\n } catch (err) {\n openSRErrorPopup();\n }\n };\n const isPennyDropSuccess = async () => {\n try {\n let pennyDrop;\n if(primaryBankModified && !srId){\n pennyDrop = await checkPennyDrop({\n applicationid: bankForm.accCode,\n account_number: tempBank.accNo,\n ifsc: tempBank.ifsc,\n name: bankForm.accName,\n source_system: 2,\n });\n }else{\n pennyDrop = await checkPennyDrop({\n applicationid: bankForm.accCode,\n account_number: bankForm.accNo,\n ifsc: bankForm.ifsc,\n name: bankForm.accName,\n source_system: 2,\n });\n } \n if (pennyDrop && pennyDrop.data) {\n //Correct data for JSON parse\n const data = pennyDrop.data.value\n .toString()\n .replace('}\"', \"}\")\n .replace('\"{', \"{\");\n let checkObj = JSON.parse(data);\n if (checkObj &&( Number(checkObj.code) === 200 || Number(checkObj.code) === 201 )) {\n if (Number(checkObj.score) && Number(checkObj.score) >= 85) {\n setPennyResponse(\"success\");\n return \"success\";\n } else if (checkObj.account_status === \"FAILED\") {\n setPennyResponse(\"The Bank Validation was unsuccessful.Please proceed with your documents upload and e-sign to modify/update bank details.\");\n return \"The Bank Validation was unsuccessful.Please proceed with your documents upload and e-sign to modify/update bank details.\";\n } else if (checkObj.account_status === \"COMPLETED\"){\n setPennyResponse(\"The Bank Validation was unsuccessful.Please proceed with your documents upload and e-sign to modify/update bank details.\");\n return \"The Bank Validation was unsuccessful.Please proceed with your documents upload and e-sign to modify/update bank details.\";\n }\n } else {\n setPennyResponse(\"The Bank Validation was unsuccessful.Please proceed with your documents upload and e-sign to modify/update bank details.\");\n return \"The Bank Validation was unsuccessful.Please proceed with your documents upload and e-sign to modify/update bank details.\";\n }\n }\n setPennyResponse(\"failed\");\n return \"failed\";\n } catch (error) {\n setPennyResponse(\"failed\");\n return \"failed\";\n }\n };\n\n const openSRSuccessPopup = (createSRRes: any) => {\n props.setLoader(false);\n let paramObj: any = {\n type: \"bankModification\",\n headerText: \"We have received your request!\",\n popupType: \"Success\",\n content: (documentUpload ? \"\":\"Your bank details are validated successfully.\") + \"Your request will be updated within TWO working days. Status of your request will be communicated through Email\",\n };\n\n if (createSRRes.base64Data) {\n paramObj.btnText = \"Download E-Signed Form\";\n paramObj.base64Data = createSRRes.base64Data;\n } else if(createSRRes.Data && createSRRes.Data.refId){\n paramObj.btnText = \"Download E-Signed Form\";\n paramObj.refId = createSRRes.Data.refId;\n } else if(createSRRes.prefilled){\n paramObj.btnText = \"Download form for your reference\";\n paramObj.base64Data = createSRRes.prefilled;\n }\n props.onSubmit(\"bankModification\", paramObj);\n };\n const submitSR = async (PennyResponse?: any) => {\n props.setLoader(true);\n let autoQc = documentUpload ? \"No\" : PennyResponse === \"success\" ? \"Yes\" : \"NA\";\n setAutoQC(autoQc);\n let fileDetail = [];\n if (fileDet.fileName)\n fileDetail.push({\n fileName: fileDet.fileName,\n fileData: fileDet.base64Data,\n documentTypeName:\n fileDet.fileType === \"Cancelled Cheque\"\n ? \"CancelledCheque\"\n : \"BankStatement\",\n });\n if (fileDet.fileType === \"Cancelled Cheque\") {\n let requestObj = {\n applicationid: bankForm.accCode,\n base64document: fileDet.base64Data,\n documentcategory: \"Cheque\",\n documentid: 117,\n source: \"DIY\",\n };\n try {\n autoQc = await getAutoQc(requestObj, {\n accNo: bankForm.accNo,\n ifsc: bankForm.ifsc,\n bankName: bankForm.bankName,\n micr: bankForm.micr,\n });\n } catch (error) {\n openSRErrorPopup();\n }\n }\n\n let banks = [];\n existingBankDet.forEach((ele: any, i: number) => {\n if (!editExisting || (editExisting && editBankNo!=i)){\n banks.push({\n bank_name: ele.BankName,\n account_number: ele.BankAccountNumber,\n ifsc_Code: ele.IFSC_Code,\n micr_code: ele.MICR_Code,\n bank_city: ele.BankCity,\n bank_branch: ele.BankBranch,\n current_account_savings_account: ele.BankAccType.includes(\"Savings\")\n ? \"Savings\"\n : \"Current\",\n re_enter_account_number: ele.BankAccountNumber,\n default_account_flag: srId\n ? (ele.DefaultBank === \"Yes\" && !bankForm.primaryAcc) ||\n (existingBankDet.length === 1 && !bankForm.primaryAcc) ||\n (isPrimBnkNotModif() &&\n ele.default_account_flag &&\n addBank &&\n !bankForm.primaryAcc\n ? true\n : false)\n : ele.oldDefBankVal === \"Yes\" && !primaryBankModified\n ? true\n : ele.oldDefBankVal !== ele.DefaultBank,\n bank_modified: srId\n ? (ele.oldDefBankVal === ele.DefaultBank &&\n ele.DefaultBank === \"No\" &&\n ele.bank_modified) ||\n (ele.oldDefBankVal !== ele.DefaultBank &&\n ele.DefaultBank === \"Yes\" &&\n !ele.bank_modified) ||\n (existingBankDet.length === 1 ? bankForm.primaryAcc : false) ||\n (ele.oldDefBankVal !== ele.DefaultBank &&\n ele.DefaultBank === \"Yes\" &&\n ele.bank_modified &&\n bankForm.primaryAcc) ||\n (ele.oldDefBankVal === ele.DefaultBank &&\n ele.DefaultBank === \"Yes\") ||\n (addBank &&\n bankForm.primaryAcc &&\n ele.default_account_flag &&\n ele.DefaultBank === \"No\")\n : ele.oldDefBankVal === \"Yes\" && primaryBankModified\n ? true\n : ele.oldDefBankVal !== ele.DefaultBank,\n RecievedProof: ele.RecievedProof || ele.ReceivedProof,\n NewBankDetails: \"No\",\n penny_drop: (ele.DefaultBank === \"Yes\" && ele.oldDefBankVal === \"No\")\n ? props.childSr\n ? PennyResponse === \"success\"\n ? \"Yes\"\n : \"No\"\n : documentUpload\n ? \"No\"\n : \"Yes\"\n : \"No\"\n });\n } else if( editExisting && editBankNo==i){\n banks.push({\n bank_name: bankForm.bankName,\n account_number: bankForm.accNo,\n ifsc_Code: bankForm.ifsc,\n micr_code: bankForm.micr,\n bank_city: bankForm.city,\n bank_branch: bankForm.branch,\n current_account_savings_account: bankForm.accType,\n re_enter_account_number: bankForm.accNo,\n default_account_flag: isPrimBnkNotModif() ? bankForm.primaryAcc : (ele.DefaultBank == \"Yes\"),\n bank_modified: true,\n RecievedProof: false,\n NewBankDetails: \"Existing\",\n penny_drop: props.childSr\n ? PennyResponse === \"success\"\n ? \"Yes\"\n : \"No\"\n : documentUpload\n ? \"No\"\n : \"Yes\",\n });\n }\n });\n\n if (addBank)\n banks.push({\n bank_name: bankForm.bankName,\n account_number: bankForm.accNo,\n ifsc_Code: bankForm.ifsc,\n micr_code: bankForm.micr,\n bank_city: bankForm.city,\n bank_branch: bankForm.branch,\n current_account_savings_account: bankForm.accType,\n re_enter_account_number: bankForm.reAcc,\n default_account_flag: bankForm.primaryAcc,\n bank_modified: true,\n RecievedProof: false,\n NewBankDetails: \"Yes\",\n penny_drop: props.childSr\n ? PennyResponse === \"success\"\n ? \"Yes\"\n : \"No\"\n : documentUpload\n ? \"No\"\n : \"Yes\",\n });\n let reqObj: any = {\n requestType: \"Bank Modification\",\n dpID: await getDepositoryDet(),\n banks: banks,\n AutoQC: PennyResponse === \"success\" ? \"Yes\" : \"No\",\n fileAttaches: fileDetail,\n bank_IdentifyChanges: getBankIdentifyChanges(),\n };\n if (srId) {\n let autoQC =\n !documentUpload && addBank && !props.childSr ? \"Yes\" : autoQc;\n reqObj.serviceRequestId = srId;\n reqObj.ParentId = props.childSr\n ? PennyResponse === \"success\"\n ? false\n : true\n : false;\n reqObj.SRType = \"BankChangeMode\";\n reqObj.attachment = autoQC === \"Yes\" ? [] : reqObj.fileAttaches;\n\n delete reqObj.requestType;\n delete reqObj.fileAttaches;\n if (!props.childSr) delete reqObj.dpID;\n // console.log(\"reqObj\", reqObj);\n\n let resp = await createSRDocumentUpload([reqObj]);\n // let resp = \"All SR Details Updated successfully.\";\n if (\n resp &&\n (resp === \"All SR Details Updated successfully.\" ||\n resp === \"Child SR Details Updated successfully.\")\n ) {\n if (props.childSr) {\n props.next();\n return;\n }\n setSerReqId(srId);\n setBankForm({ ...bankForm, submitted: true });\n\n if (autoQC === \"Yes\") proceedToEsign(srId);\n else if (fileDet.fileName) {\n props.setLoader(false);\n setCheckAutoQcFlag(\n setInterval(async () => {\n let serviceReqList = await asyncGetServiceRequest();\n if (serviceReqList.length > 0) {\n serviceReqList.map((ele: any) => {\n if (\n ele.RequestId.toString() === srId.toString() &&\n ele.RequestStatus === \"PendingForEsign\"\n )\n setAutoQC(\"Yes\");\n });\n }\n }, 10000)\n );\n }\n } else {\n openSRErrorPopup();\n }\n } else {\n try {\n let createSRRes: any;\n if (!props.childSr) {\n createSRRes = await CreateServiceRequestDetails(reqObj);\n if (\n typeof createSRRes === \"string\" &&\n createSRRes.includes(\n \"Previous Request already open for this account-\"\n )\n ) {\n openExistSrPopup();\n return;\n } else if (\n createSRRes === \"Bank Modification SR is Created successfully.\"\n ) {\n openSRSuccessPopup(createSRRes);\n return;\n }\n } else {\n reqObj.requestType = \"BANKDETAILS\";\n reqObj.parent_id = props.srId;\n delete reqObj.fileAttaches;\n reqObj.AutoQC = addBank\n ? PennyResponse === \"success\"\n ? \"Yes\"\n : \"No\"\n : \"No\";\n\n const createChildSr = await CreateChildServiceRequestDetails(reqObj);\n\n if (\n typeof createChildSr === \"string\" &&\n createChildSr.includes(\n \"Previous Request already open for this account-\"\n )\n ) {\n openExistSrPopup();\n return;\n } else {\n if (\n createChildSr.Message ===\n \"Bank Modification SR is Created successfully.\"\n ) {\n props.next();\n return;\n }\n }\n }\n if (createSRRes && createSRRes.Message) {\n setSerReqId(createSRRes.Id);\n setBankForm({ ...bankForm, submitted: true });\n if(PennyResponse === \"success\"){\n let prefillFormpdfRes = await esignService.getPreFilledFormPDF(createSRRes.Id, \"bank\");\n if (prefillFormpdfRes) {\n createSRRes.prefilled = prefillFormpdfRes;\n // esignService.base64toPDF(prefillFormpdfRes);\n openSRSuccessPopup(createSRRes);\n }\n } else if(createSRRes.Message == \"We have received your request for updating your bank accounts. This request will be processed in 2-3 business days\"){\n let esignSuccess = await proceedToEsign(createSRRes.Id);\n // if(esignSuccess){\n // openSRSuccessPopup(esignSuccess);\n // }\n }else if (!documentUpload || autoQc === \"NA\"){\n await proceedToEsign(createSRRes.Id);\n }else {\n props.setLoader(false);\n setCheckAutoQcFlag(\n setInterval(async () => {\n let serviceReqList = await asyncGetServiceRequest();\n if (serviceReqList.length > 0) {\n serviceReqList.map((ele: any) => {\n if (\n ele.RequestId.toString() === createSRRes.Id.toString() &&\n ele.RequestStatus === \"PendingForEsign\"\n )\n setAutoQC(\"Yes\");\n });\n }\n }, 10000)\n );\n }\n } else openSRErrorPopup();\n } catch (err) {\n openSRErrorPopup();\n }\n }\n };\n const getDepositoryDet = async () => {\n try {\n const resp = await GetDepositoryDetails();\n\n if (resp && resp.dPIdField && resp.dPAccountNumberField) {\n return resp.dPIdField + resp.dPAccountNumberField;\n } else {\n return \"None\";\n }\n } catch (error) {\n openSRErrorPopup();\n }\n };\n const submitDetails = async () => {\n if (props.childSr) {\n props.setLoader(true);\n if (addBank || primaryBankModified) {\n if (addBank) {\n const penny = await isPennyDropSuccess();\n // if (penny === \"INVALID ACCOUNT NUMBER OR IFSC PROVIDED\") {\n // props.setLoader(false);\n // } else {\n submitSR(penny);\n // }\n } else submitSR();\n } else {\n props.next();\n return;\n }\n } else {\n if (documentUpload) {\n props.setLoader(true);\n if (autoQC === \"Yes\") proceedToEsign();\n else submitSR();\n } else {\n if (addBank || editExisting || (primaryBankModified && !srId)) {\n let newBankEdited = false;\n newBankEdited =\n bankForm.account_number !== bankForm.accNo ||\n bankForm.ifsc_Code !== bankForm.ifsc ||\n bankForm.micr_code !== bankForm.micr;\n if (!newBankEdited) {\n if (srId && !fileDet.fileName) submitSR();\n else setDocumentUpload(true);\n return;\n }\n\n props.setLoader(true);\n let pennyResponse = await isPennyDropSuccess();\n if (pennyResponse === \"success\"){\n submitSR(pennyResponse);\n // } else if (\n // pennyResponse === \"INVALID ACCOUNT NUMBER OR IFSC PROVIDED\"\n // ) {\n // props.setLoader(false);\n // if (!props.childSr) setDocumentUpload(false);\n // else submitSR();\n } else {\n props.setLoader(false);\n if (!props.childSr) {\n setDocumentUpload(true);\n props.srDropDown(true);\n } else submitSR();\n }\n } else {\n // if (srId) setFileDet({});\n setDocumentUpload(true);\n // setLoader(false);\n // if (!props.childSr) {\n // setDocumentUpload(true);\n // props.srDropDown(true);\n // } else {\n // setLoader(true);\n // submitSR();\n // }\n }\n }\n }\n };\n const proceedToEsign = async (val?: any) => {\n try {\n let result: any = await esignService.proceedToEsign(\n val ? val : serReqId,\n \"bank\",\n true\n );\n if (!result) openErrorPopup();\n else return true;\n } catch (err) {\n openErrorPopup();\n }\n };\n\n const openErrorPopup = () => {\n props.setLoader(false);\n props.onSubmit(\"bankModification\", {\n headerText: \"There was some error while proceeding with esign process.\",\n });\n };\n\n const openSRErrorPopup = (mess?: string) => {\n props.setLoader(false);\n props.onSubmit(\"bankModification\", {\n headerText: mess\n ? mess\n : \"There was some problem in raising service request. Please try again later.\",\n });\n };\n const openExistSrPopup = () => {\n props.setLoader(false);\n props.onSubmit(\"bankModification\", {\n headerText: \"You have an active service request\",\n content:\n \"You already have an active service request. Once it is updated, you will be able to raise new request.\",\n });\n };\n const onChange = (type: any, val: any) => {\n switch (type) {\n case \"accNo\":\n if (bankForm.accNo.length >= 8 && bankForm.accNo.length <= 18) {\n setErrors({\n ...errors,\n reAccError:\n val !== bankForm.reAcc && bankForm.reAcc\n ? bankForm.reAcc.length < 8 || bankForm.reAcc.length > 18\n ? \"Account number min 8 and max 18\"\n : \"Account number doesn't match\"\n : \"\",\n accNoError: \"\",\n });\n } else if (bankForm.accNo.length === 0) {\n setErrors({\n ...errors,\n accNoError: \"\",\n });\n setBankForm({ ...bankForm, [`${type}`]: \"\" });\n } else\n setErrors({\n ...errors,\n accNoError: \"Account number should be 8-18\",\n });\n\n break;\n case \"reAcc\":\n if (bankForm.reAcc.length >= 8 && bankForm.reAcc.length <= 18) {\n setErrors({\n ...errors,\n reAccError:\n bankForm.accNo && bankForm.accNo !== val\n ? \"Account number doesn't match\"\n : \"\",\n });\n } else if (bankForm.reAcc.length === 0) {\n setErrors({\n ...errors,\n reAccError: \"\",\n });\n setBankForm({ ...bankForm, [`${type}`]: \"\" });\n } else\n setErrors({\n ...errors,\n reAccError: \"Account number should be 8-18\",\n });\n break;\n }\n };\n const handleUploadDetails = (val: any) => {\n setFileDet(val);\n };\n const onSetExistingBank = (name: string, value: any, id?: number) => {\n let dataup = [...existingBankDet];\n existingBankDet.forEach((ele: any, i: any) => {\n if (srId) {\n if (Number(id) !== Number(i)) {\n dataup[i] = {\n ...existingBankDet[i],\n [`${name}`]:\n existingBankDet[i].bank_modified &&\n !existingBankDet[i].default_account_flag &&\n value === \"No\"\n ? \"Yes\"\n : \"No\",\n };\n // console.log(\"dataup[i]\", dataup[i]);\n } else {\n dataup[i] = { ...existingBankDet[i], [`${name}`]: value };\n }\n } else if (ele.oldDefBankVal !== \"Yes\") {\n if (Number(id) !== Number(i)) {\n dataup[i] = { ...existingBankDet[i], [`${name}`]: \"No\" };\n } else {\n dataup[i] = { ...existingBankDet[i], [`${name}`]: value };\n }\n }\n });\n // console.log(\"dataup\", dataup);\n\n setExistingBankDet(dataup);\n };\n const noDefaultBank = () => {\n // console.log(\"existingBankDet\", existingBankDet);\n\n return existingBankDet.every((ele: any) => {\n // console.log(\"ele\", ele);\n\n if (ele.DefaultBank === \"No\") return ele;\n });\n };\n \n return (\n <>\n {\n <>\n {existingBankSR && (\n \n )}\n {!existingBankSR && (\n \n {!documentUpload && (\n <>\n {existingBankDet.length < 6 && (addBank || editExisting)&& (\n

    \n Re. 1 will be credited to your account for verification of\n your account\n

    \n )}\n\n {existingBankDet.map((bankdetails: any, key: number) => {\n return (\n <> \n
    \n

    \n
    \n {!editExisting && ()}\n {editExisting && editBankNo==key && ()}\n \n
    \n Bank Account {key + 1}\n
    \n {((!srId && bankdetails.oldDefBankVal !== \"Yes\") ||\n (srId &&\n ((bankdetails.bank_modified &&\n bankdetails.default_account_flag) ||\n (!bankdetails.bank_modified &&\n !bankdetails.default_account_flag)))) && (\n
    \n {((editExisting && editBankNo==key) || !editExisting) && (\n {\n if(editExisting && editBankNo==key || !editExisting){\n if (bankdetails.DefaultBank === \"No\") {\n setBankForm({\n ...bankForm,\n primaryAcc: false,\n });\n onSetExistingBank(\n \"DefaultBank\",\n bankdetails.DefaultBank === \"Yes\"\n ? \"No\"\n : \"Yes\",\n key\n );\n setTempBank({accNo: bankdetails.BankAccountNumber, ifsc: bankdetails.IFSC_Code})\n } else {\n onSetExistingBank(\n \"DefaultBank\",\n bankdetails.DefaultBank === \"Yes\"\n ? \"No\"\n : \"Yes\",\n key\n );\n }\n } \n }}\n disabled={checkIfHasMatchAndDef()}\n >\n Make this your Primary Account\n )}\n
    \n )}\n {(srId\n ? ((bankdetails.bank_modified &&\n !bankdetails.default_account_flag &&\n !bankForm.primaryAcc &&\n !existingBankDetModified()) ||\n (!bankdetails.bank_modified &&\n bankdetails.default_account_flag &&\n !bankForm.primaryAcc &&\n !existingBankDetModified())) &&\n (addBank\n ? (noDefaultBank() && !bankForm.primaryAcc) ||\n (!noDefaultBank() &&\n !bankForm.primaryAcc &&\n bankdetails.DefaultBank === \"Yes\")\n : bankdetails.DefaultBank === \"Yes\" ||\n (noDefaultBank() &&\n existingBankDet.length === 1 &&\n !bankForm.primaryAcc))\n : bankdetails.oldDefBankVal === \"Yes\" &&\n !primaryBankModified) && (\n
    \n \n

    Primary Account

    \n
    \n )}\n
    \n
    \n
    \n {\" \"}\n \n
    \n {}}\n onBlur={() => {}}\n disabled={true}\n />\n
    \n
    \n
    \n {\" \"}\n \n
    \n {}}\n onBlur={() => {}}\n disabled={true}\n />\n

    \n {bankdetails.BankAccType.includes(\n \"Savings\"\n ) && \"Savings Account\"}\n\n {bankdetails.BankAccType.includes(\n \"Current\"\n ) && \"Current Account\"}\n

    \n
    \n
    \n
    \n
    \n
    \n {\" \"}\n
    \n \n {editExisting && editBankNo==key &&
    \n {\n e.preventDefault();\n setIfscPop(true);\n }}\n >\n Search IFSC\n \n
    }\n
    \n
    \n {\n if (!alphaNumExp.test(val)) {\n setErrors({\n ...errors,\n ifscError: \"Ifsc code must be Alphanumeric\",\n });\n } else if (\n val.length > 0 &&\n val.length !== 11\n ) {\n setErrors({\n ...errors,\n ifscError: \"Invalid ifsc code\",\n });\n }\n }}\n maxLength={11}\n onChange={(val: any) => {\n setErrors({\n ...errors,\n ifscError: \"\",\n });\n if (alphaNumExp.test(val)) {\n if (val.length === 11) {\n inputChangeIfsc(\"ifsc\", val);\n } else {\n setBankForm({\n ...bankForm,\n ifsc: val,\n micr: \"\",\n branch: \"\",\n });\n setmicrArr([]);\n }\n }\n }} \n pattern={alphaNumExp}\n errorText={editExisting && editBankNo==key ? errors.ifscError : \"\"}\n onBlur={() => {}}\n placeholder=\"\"\n disabled={!editExisting || editBankNo!=key}\n />\n

    \n {editExisting && editBankNo==key ? bankForm.branch : bankdetails.BankBranch}\n

    \n
    \n
    \n
    \n {\" \"}\n \n
    \n {}}\n onBlur={() => {}}\n placeholder=\"\"\n disabled={!editExisting || editBankNo!=key}\n />\n
    \n
    \n
    \n \n \n );\n // }\n })}\n \n )}\n {!documentUpload && (\n <>\n {addBank && (\n
    \n
    \n
    \n
    \n Bank Account {existingBankDet.length + 1}\n
    \n
    \n {/* {!srId && ( */}\n
    \n {\n setAddBank(false);\n setBankForm({\n ...bankForm,\n accNo: \"\",\n ifsc: \"\",\n micr: \"\",\n accType: bankForm.accType,\n city: \"\",\n branch: \"\",\n reAcc: \"\",\n bankName: \"\",\n primaryAcc: false,\n });\n\n existingBankDet.forEach((ele: any) => {\n if (noDefaultBank()) {\n if (\n (ele.bank_modified &&\n !ele.default_account_flag) ||\n (ele.bank_modified &&\n ele.default_account_flag)\n )\n ele.DefaultBank = \"Yes\";\n else ele.DefaultBank = \"No\";\n }\n });\n setErrorMsg(\"\");\n setDefaultBankMsg(\"\");\n setPennyResponse(\"\");\n setErrors({\n errors,\n accNoError: \"\",\n reAccError: \"\",\n ifscError: \"\",\n duplicBankErr: \"\",\n });\n setmicrArr([]);\n }}\n >\n Remove\n

    \n
    \n {/* )} */}\n
    \n\n
    \n
    \n
    \n

    Select Account Type

    \n
    \n
    \n
    \n
    \n {\n onSet(e.target.name, e.target.value);\n }}\n />\n
    \n
    \n {\n onSet(e.target.name, e.target.value);\n }}\n />\n
    \n
    \n
    \n
    \n
    \n

    \n In case of sole proprietorship accounts, please note\n that if the name on your cheque and name in PAN site\n does not match, it may result in additional checks\n to be conducted before reactivation.\n

    \n
    \n
    \n
    \n
    \n {\" \"}\n \n
    \n {\n setErrors({\n ...errors,\n accNoError: \"\",\n });\n\n onSet(\"accNo\", val);\n }}\n onMouseOut={(val: any) => {\n onChange(\"accNo\", val);\n }}\n integer={true}\n onBlur={() => {}}\n placeholder=\"Enter Account Number\"\n errorText={errors.accNoError}\n pattern={integerExp}\n disablePaste={true}\n />\n
    \n
    \n
    \n {\" \"}\n \n
    \n {\n setErrors({\n ...errors,\n reAccError: \"\",\n });\n onSet(\"reAcc\", val);\n }}\n onMouseOut={(val: any) => {\n onChange(\"reAcc\", val);\n }}\n onBlur={() => {}}\n placeholder=\"Re-enter Account Number\"\n errorText={errors.reAccError}\n pattern={integerExp}\n integer={true}\n disablePaste={true}\n />\n

    \n
    \n
    \n
    \n
    \n
    \n {\" \"}\n
    \n \n
    \n {\n e.preventDefault();\n setIfscPop(true);\n }}\n >\n Search IFSC\n \n
    \n
    \n
    \n {}}\n onMouseOut={(val: any) => {\n if (!alphaNumExp.test(val)) {\n setErrors({\n ...errors,\n ifscError: \"Ifsc code must be Alphanumeric\",\n });\n } else if (\n val.length > 0 &&\n val.length !== 11\n ) {\n setErrors({\n ...errors,\n ifscError: \"Invalid ifsc code\",\n });\n }\n }}\n maxLength={11}\n onChange={(val: any) => {\n setErrors({\n ...errors,\n ifscError: \"\",\n });\n if (alphaNumExp.test(val)) {\n if (val.length === 11) {\n inputChangeIfsc(\"ifsc\", val);\n } else {\n setBankForm({\n ...bankForm,\n ifsc: val,\n micr: \"\",\n branch: \"\",\n });\n setmicrArr([]);\n }\n }\n }}\n placeholder=\"\"\n pattern={alphaNumExp}\n errorText={!editExisting ? errors.ifscError : \"\"}\n />\n

    {bankForm.branch}

    \n
    \n
    \n
    \n {\" \"}\n \n
    \n {\n micrList.find((list: any) => {\n if (list.micr === val) {\n setBankForm({\n ...bankForm,\n ifsc: list.ifsccode,\n micr: list.micr,\n city: list.bankcity,\n branch: list.branch,\n bankName: list.bankname,\n });\n }\n });\n }}\n isSearchable={false}\n disabled={micrArr.length === 0}\n />\n
    \n
    \n
    \n
    \n )}\n {ifscPop && (\n \n )}\n {!addBank && existingBankDet.length < 6 && (\n
    \n {existingBankDet.length < 6 && !editExisting &&(\n \n \n {\n setAddBank(true);\n if (existingBankDet.length === 5)\n setErrorMsg(\n \"You can only add max upto 6 bank accounts. If you wish to make changes to this please get in touch with RM.\"\n );\n else\n setErrorMsg(\n \"You can only add one new account at a time. The changes mentioned will be applicable for your Trading and Default Demat account.\"\n );\n }}\n >\n Add Another Bank Account\n \n \n )}\n
    \n )}\n {bankForm.accNo &&\n bankForm.reAcc &&\n bankForm.ifsc.length === 11 &&\n !errors.accNoError &&\n !errors.reAccError && (\n
    \n {\n setBankForm({\n ...bankForm,\n primaryAcc: !bankForm.primaryAcc,\n });\n\n onSetExistingBank(\"DefaultBank\", \"No\");\n }}\n disabled={checkIfHasMatchAndDef()}\n >\n Make this your Primary Account\n \n
    \n )}\n\n {errorMsg && (\n \n {errorMsg === \"fundingBankError\"\n ? \"Bank modification for funding account is not allowed online. Kindly contact your RM.\"\n : errorMsg}\n

    \n )}\n\n {getBankIdentifyChanges() &&\n getBankIdentifyChanges() ===\n \"Addition without default & Interchange\" && (\n <>\n
    \n

    \n You can either add new bank or change default bank.\n

    \n \n )}\n {errors.duplicBankErr && (\n <>\n
    \n

    {errors.duplicBankErr}

    \n \n )}\n {pennyResponse ===\n \"INVALID ACCOUNT NUMBER OR IFSC PROVIDED\" && (\n <>\n
    \n

    {pennyResponse}

    \n \n )}\n {defaultbankMsg && defaultbankMsg !== \"Success\" && (\n <>\n
    \n

    {defaultbankMsg}

    \n \n )}\n \n )}\n {documentUpload && pennyResponse === \"The Bank Validation was unsuccessful.Please proceed with your documents upload and e-sign to modify/update bank details.\" && (\n <>\n

    {pennyResponse}

    \n \n )}\n {documentUpload && ( \n \n )}\n {\n
    \n
    \n {\n submitDetails();\n e.preventDefault();\n }}\n disabled={\n editExisting \n ? (!documentUpload \n ? !isValidEditForm\n : (!userConsent || !fileDet || (fileDet && !fileDet.fileName))\n )\n :\n (addBank\n ? !isValidForm() ||\n (defaultbankMsg && defaultbankMsg !== \"Success\") ||\n (documentUpload &&\n (!userConsent || !fileDet || (fileDet && !fileDet.fileName))) ||\n (documentUpload &&\n bankForm.submitted &&\n autoQC === \"No\") ||\n props.loader ||\n errors.ifscError ||\n // errors.accNoError ||\n // errors.reAccError ||\n errors.duplicBankErr ||\n pennyResponse ===\n \"INVALID ACCOUNT NUMBER OR IFSC PROVIDED\" ||\n (getBankIdentifyChanges() &&\n getBankIdentifyChanges() ===\n \"Addition without default & Interchange\")\n : props.childSr\n ? errorMsg && errorMsg === \"fundingBankError\"\n : (autoQC === \"No\" &&\n bankForm.submitted &&\n documentUpload) ||\n (documentUpload &&\n (!userConsent || !fileDet || (fileDet && !fileDet.fileName))) ||\n (!primaryBankModified && !srId) ||\n (srId && !addBank && isPrimBnkNotModif()) ||\n (defaultbankMsg && defaultbankMsg !== \"Success\") ||\n existingBankDet.length === 1\n )\n }\n >\n {!bankForm.submitted\n ? props.childSr\n ? \"Proceed\"\n :( documentUpload ? \"Confirm & Esign\" : \"Submit\") \n : !documentUpload\n ? \"Submit\"\n : \"Confirm & Esign\"}\n \n\n \n {!(\n (consentType &&\n (consentType?.includes(\"email\") ||\n consentType?.includes(\"mobile\") ||\n consentType?.includes(\"emailMob\"))) ||\n addressConsent?.includes(\"Change of Address\")\n ) && (\n \n Cancel\n \n )}\n {((consentType &&\n (consentType?.includes(\"email\") ||\n consentType?.includes(\"mobile\") ||\n consentType?.includes(\"emailMob\"))) ||\n addressConsent?.includes(\"Change of Address\")) && (\n \n )}\n \n
    \n
    \n }\n \n )}\n \n }\n \n );\n});\n","import * as React from \"react\";\nimport { useEffect } from \"react\";\nimport * as esignService from \"../../../service/esign/esignService\";\nimport { asyncGetServiceRequest } from \"../../../service/postLogin/clientProfileAPIService\";\n\nexport const VerficationStage = (props: any) => {\n //const [loader, setLoader] = React.useState(false);\n const [esignButton, setEsignButton] = React.useState(true);\n const [childSrList, setChildSrList] = React.useState();\n const [parentSr, setParentSr] = React.useState();\n useEffect(() => {\n asyncGetServiceRequest()\n .then((res) => {\n setParentSr(\n res.filter(\n (srReq: any) =>\n srReq.RequestType === \"Equity Dormant Reactivation\" &&\n [\"PendingForEsign\"].includes(srReq.RequestStatus)\n )[0]\n );\n })\n .catch((err) => {\n apiError();\n });\n if (!parentSr) {\n const interval = setInterval(() => {\n asyncGetServiceRequest()\n .then((res) => {\n setParentSr(\n res.filter(\n (srReq: any) =>\n srReq.RequestType === \"Equity Dormant Reactivation\" &&\n [\"PendingForEsign\"].includes(srReq.RequestStatus)\n )[0]\n );\n if (parentSr) clearInterval(interval);\n })\n .catch((err) => {\n apiError();\n });\n }, 1000 * 30);\n }\n\n asyncGetServiceRequest(props.srId)\n .then((list) => {\n setChildSrList(list);\n })\n .catch((err) => {\n apiError();\n });\n }, []);\n function apiError() {\n props.onSubmit(\"createRequestApiError\", {\n content:\n \"There was some problem in raising service request. Please try again later.\",\n headerText: \"New Service Request\",\n });\n }\n const clearLocalStorage = () => {\n window.localStorage.removeItem(\"digie\");\n window.localStorage.removeItem(\"digieResubmit\");\n window.localStorage.removeItem(\"rejectFlow\");\n window.localStorage.removeItem(\"srId\");\n window.localStorage.removeItem(\"\");\n };\n const StatusList = () => {\n let profile = false;\n\n if (childSrList && childSrList.length > 0) {\n let esign: boolean = true;\n const list = childSrList.map((sr: any) => {\n switch (sr.RequestType) {\n case \"FATCA Declaration\":\n case \"Income Declaration\":\n case \"Email and Phone Update\":\n esign = esign && sr.RequestStatus === \"Approved\";\n let fatca,\n income,\n email = false;\n if (sr.RequestType === \"FATCA Declaration\") {\n esign = esign && sr.RequestStatus === \"Approved\";\n fatca = true;\n }\n if (sr.RequestType === \"Income Declaration\") {\n esign = esign && sr.RequestStatus === \"Approved\";\n income = true;\n }\n if (!profile) {\n esign = esign && sr.RequestStatus === \"Approved\";\n profile = true;\n\n return (\n
    \n
    \n

    Profile Details

    \n
    \n
    \n \n \n {\" \"}\n {sr.RequestStatus === \"Approved\"\n ? \"Completed\"\n : sr.RequestStatus === \"Rejected - Resubmit\"\n ? \"Rejected\"\n : \"Pending\"}\n \n
    \n {sr.creator_remarks &&\n (sr.RequestStatus === \"Rejected - Resubmit\" ||\n sr.RequestStatus === \"Rejected\") &&\n sr.RequestStatus === \"Rejected - Resubmit\" && (\n
    \n

    \n

    \n {/* */}\n \n
    \n \n \n Rejection reasons\n \n \n
    \n {sr.creator_remarks}\n
    \n
    \n

    \n
    \n )}\n
    \n \n
    \n
    \n );\n } else {\n return;\n }\n case \"CKYC Update\":\n esign = esign && sr.RequestStatus === \"Approved\";\n return (\n
    \n
    \n

    CKYC Update

    \n
    \n {sr.creator_remarks &&\n (sr.RequestStatus === \"Rejected - Resubmit\" ||\n sr.RequestStatus === \"Rejected\") &&\n sr.RequestStatus === \"Rejected - Resubmit\" && (\n
    \n

    \n

    \n {/* */}\n \n
    \n \n \n Rejection reasons\n \n \n
    \n {sr.creator_remarks}\n
    \n
    \n

    \n
    \n )}\n
    \n
    \n\n
    \n \n \n {\" \"}\n {sr.RequestStatus === \"PendingforEsign\" ||\n sr.RequestStatus === \"Approved\"\n ? \"Completed\"\n : sr.RequestStatus === \"Rejected - Resubmit\"\n ? \"Rejected\"\n : \"Pending\"}\n \n \n
    \n
    \n );\n\n case \"Change of Address\":\n esign =\n esign &&\n (sr.RequestStatus === \"Approved\" ||\n sr.RequestStatus === \"PendingForEsign\");\n return (\n <>\n
    \n
    \n

    Address Details

    \n
    \n {sr.creator_remarks &&\n (sr.RequestStatus === \"Rejected - Resubmit\" ||\n sr.RequestStatus === \"Rejected\") &&\n sr.RequestStatus === \"Rejected - Resubmit\" && (\n
    \n

    \n

    \n {/* */}\n \n
    \n \n \n Rejection reasons\n \n \n
    \n {sr.creator_remarks}\n
    \n
    \n

    \n
    \n )}\n
    \n
    \n\n
    \n {\n clearLocalStorage();\n }}\n >\n \n {\" \"}\n {sr.RequestStatus === \"PendingforEsign\" ||\n sr.RequestStatus === \"Approved\"\n ? \"Completed\"\n : sr.RequestStatus === \"Rejected - Resubmit\"\n ? \"Rejected\"\n : \"Pending\"}\n \n \n
    \n
    \n {/* Status block for Video IPV */}\n { (localStorage.getItem(\"ipvcode\") && localStorage.getItem(\"imageData\")) &&
    \n
    \n

    Video IPV

    \n
    \n {sr.creator_remarks &&\n (sr.RequestStatus === \"Rejected - Resubmit\" ||\n sr.RequestStatus === \"Rejected\") &&\n sr.RequestStatus === \"Rejected - Resubmit\" && (\n
    \n

    \n

    \n {/* */}\n \n
    \n \n \n Rejection reasons\n \n \n
    \n {sr.creator_remarks}\n
    \n
    \n

    \n
    \n )}\n
    \n
    \n\n
    \n {\n clearLocalStorage();\n }}\n >\n \n {\" \"}\n {sr.RequestStatus === \"PendingforEsign\" ||\n sr.RequestStatus === \"Approved\"\n ? \"Completed\"\n : sr.RequestStatus === \"Rejected - Resubmit\"\n ? \"Rejected\"\n : \"Pending\"}\n \n \n
    \n
    }\n \n );\n case \"Bank Modification\":\n esign = esign && sr.RequestStatus === \"Approved\";\n return (\n
    \n
    \n

    Bank Details

    \n
    \n {sr.creator_remarks &&\n (sr.RequestStatus === \"Rejected - Resubmit\" ||\n sr.RequestStatus === \"Rejected\") && (\n
    \n

    \n

    \n {/* */}\n \n
    \n \n \n Rejection reasons\n \n \n
    \n {sr.creator_remarks}\n
    \n
    \n

    \n
    \n )}\n
    \n
    \n\n
    \n \n \n {\" \"}\n {sr.RequestStatus === \"PendingforEsign\" ||\n sr.RequestStatus === \"Approved\"\n ? \"Completed\"\n : sr.RequestStatus === \"Rejected - Resubmit\"\n ? \"Rejected\"\n : \"Pending\"}\n \n \n
    \n
    \n );\n }\n });\n setEsignButton(esign);\n return list;\n } else {\n return false;\n }\n };\n\n const proceedToEsign = async () => {\n if(parentSr.EsignUrl){\n window.open(parentSr.EsignUrl, \"_self\");\n } else {\n try {\n props.setLoader(true);\n let result = await esignService.proceedToEsign(\n props.srId,\n \"accReact\",\n false\n );\n } catch (err) {\n props.setLoader(false);\n openErrorPopup();\n }\n }\n };\n const prefilledEsign = async () => {\n try {\n props.setLoader(true);\n const pdf = await esignService.getPreFilledFormPDF(\n props.srId,\n \"accReact\"\n );\n const base64 = await esignService.base64toPDF(pdf);\n props.setLoader(false);\n } catch (error) {\n props.setLoader(false);\n openErrorPopup();\n }\n };\n const openErrorPopup = () => {\n props.setLoader(false);\n props.onSubmit(\"Account Reactivation\", {\n headerText: \"There was some error while proceeding with esign process.\",\n });\n };\n return (\n <>\n {!props.loader && (\n
    \n
    \n
    \n
    \n

    Account verification in progress

    \n

    \n We have received your request, it’s under verification and will be\n completed within one working day. After Successful verification we\n will send an email to complete E Sign.\n

    \n
    \n \n
    \n

    \n Please note: Once we are done\n with verification, we will intimate to complete esign process.\n

    \n
    \n proceedToEsign()}\n disabled={esignButton && parentSr ? false : true}\n >\n Proceed to E-Sign\n \n
    \n
    \n \n \n Download Pre-filled Form\n \n
    \n
    \n

    \n If your mobile and Aadhar are not linked please contact your RM\n Arvind Kathappan\n

    \n

    \n Or write to us on{\" \"}\n \n helpdesk@nuvama.com\n \n

    \n
    \n
    \n
    \n )}\n \n );\n};\n","import React, { forwardRef, useImperativeHandle, useState } from \"react\";\nimport \"../../../../assets/scss/components/clientarea/serviceRequest/incomeDeclaration.scss\";\nimport TocDropdown from \"../../../generic/tocDropdown\";\nimport InputField from \"../../../generic/inputField\";\nimport Checkbox from \"../../../generic/checkbox\";\nimport {\n CreateServiceRequest,\n GetDepositoryDetails,\n getDPID,\n GetExistingIncomeRange,\n GetNewIncomeRange,\n ServiceClientValidation,\n} from \"../../../service/serviceRequest/srApiService\";\nimport { useQuery } from \"../../../service/urlHelper\";\nimport { integerExp } from \"../../../utils/regex\";\nimport { config } from \"../../../../config/domain\";\nimport { useHistory } from \"react-router-dom\";\nimport Loader from \"../../../generic/loader\";\n\n// interface IHome {}\nexport const IncomeDeclaration = forwardRef((props: any, ref: any) => {\n const source = useQuery().get(\"source\");\n const history = useHistory();\n const [existingIncomeSR, setExistingIncomeSR] = useState();\n const [existingIncomeDetail, setExistingIncome] = useState();\n const [newIncomeDetails, setNewIncomeDetails] = useState();\n const [newIncome, setNewIncome] = useState();\n const [newIncomeRange, setNewIncomeRange] = useState();\n const [netWorthError, setNetworthErr] = useState();\n const [netWorthErrorColor, setNetWorthErrorColor] =\n useState(\"warm-grey-eight\");\n const [netWorth, setNetworthValue] = useState();\n const [newtWorthBoolean, setNewworthBoolean] = useState();\n const [newtWorthBoolean1, setNewworthBoolean1] = useState();\n const [dpId, setDpId] = useState();\n const [childSr, setChildSr] = useState(props.childSr ? props.childSr : false);\n //const [loader, setLoader] = useState(false);\n async function getExistingIncomeDeclaration() {\n props.setLoader(true);\n try {\n const resp = await GetExistingIncomeRange();\n if (resp && resp.result) {\n setExistingIncome(resp.result[0]);\n props.setLoader(false);\n } else {\n incomeDeclarationApiError();\n }\n } catch (error) {\n incomeDeclarationApiError();\n }\n }\n async function getNewIncomeRange() {\n props.setLoader(true);\n try {\n const resp = await GetNewIncomeRange();\n if (resp) {\n const list = resp.map((respObj: any) => {\n return {\n value: respObj.ValueItem,\n display: respObj.DisplayItem,\n };\n });\n setNewIncomeDetails(list);\n props.setLoader(false);\n } else {\n incomeDeclarationApiError();\n }\n } catch (error) {\n incomeDeclarationApiError();\n }\n }\n React.useEffect(() => {\n if (!newIncomeRange) {\n props.enableSubmit(false);\n if (props.childSr) {\n props.childSrB(false);\n }\n }\n if (newIncomeRange) {\n if (newIncomeRange.value === \"0\") {\n props.enableSubmit(false);\n if (props.childSr) {\n props.childSrB(false);\n }\n } else {\n props.enableSubmit(true);\n if (props.childSr) {\n props.childSrB(true);\n }\n }\n }\n }, [newIncomeRange]);\n React.useEffect(() => {\n if (!netWorth) {\n if (netWorth === 0) {\n props.enableSubmit(false);\n if (props.childSr) {\n props.childSrB(false);\n }\n } else {\n setNetworthErr(\"Min. Amount Rs. 1000\");\n if (!(newIncomeRange && newtWorthBoolean && newtWorthBoolean1)) {\n props.enableSubmit(false);\n if (props.childSr) {\n props.childSrB(false);\n }\n } else {\n props.enableSubmit(true);\n if (props.childSr) {\n props.childSrB(true);\n }\n }\n }\n }\n if (netWorth) {\n if (netWorth < 1000) {\n props.enableSubmit(false);\n if (props.childSr) {\n props.childSrB(false);\n }\n } else {\n if (!(newIncomeRange && newtWorthBoolean && newtWorthBoolean1)) {\n if (newIncomeRange && newIncomeRange.value !== \"0\") {\n props.enableSubmit(true);\n if (props.childSr) {\n props.childSrB(true);\n }\n } else {\n props.enableSubmit(false);\n if (props.childSr) {\n props.childSrB(false);\n }\n }\n } else {\n props.enableSubmit(true);\n if (props.childSr) {\n props.childSrB(true);\n }\n }\n }\n }\n }, [netWorth]);\n React.useEffect(() => {\n console.log(newIncomeRange);\n if (!(newIncomeRange && newtWorthBoolean && newtWorthBoolean1)) {\n props.enableSubmit(false);\n if (props.childSr) {\n props.childSrB(false);\n }\n } else {\n if (netWorth) {\n if (netWorth < 1000) {\n props.enableSubmit(false);\n if (props.childSr) {\n props.childSrB(false);\n }\n } else {\n props.enableSubmit(true);\n if (props.childSr) {\n props.childSrB(true);\n }\n }\n } else {\n if (netWorth === 0) {\n props.enableSubmit(false);\n if (props.childSr) {\n props.childSrB(false);\n }\n } else {\n props.enableSubmit(true);\n if (props.childSr) {\n props.childSrB(true);\n }\n }\n }\n }\n }, [newIncomeRange, newtWorthBoolean, newtWorthBoolean1]);\n function incomeDeclarationApiError() {\n props.setLoader(false);\n if (!childSr)\n props.onSubmit(\"incomeDeclarationApiError\", {\n content:\n \"There was some problem in raising service request. Please try again later.\",\n headerText: \"New Service Request\",\n });\n }\n const openExistSrPopup = () => {\n props.setLoader(false);\n props.onSubmit(\"incomeDeclarationApiError\", {\n headerText: \"You have an active service request\",\n content: \"You already have an active service request. Once it is updated, you will be able to raise new request.\",\n });\n };\n const getDepositoryDet = async () => {\n try {\n const resp = await GetDepositoryDetails();\n\n if (resp && resp.dPIdField && resp.dPAccountNumberField) {\n setDpId(resp.dPIdField + resp.dPAccountNumberField);\n return resp.dPIdField + resp.dPAccountNumberField;\n } else {\n setDpId(0);\n return \"None\";\n }\n } catch (error) {\n incomeDeclarationApiError();\n }\n };\n async function submitRequest() {\n try {\n props.setLoader(true);\n const reqObj = {\n requestType: \"Income Declaration\",\n dpID: dpId,\n income_range: newIncomeRange.display,\n net_worth_value: netWorth,\n gross_annual_income_range_code: newIncomeRange.value,\n };\n let resp = await CreateServiceRequest(reqObj);\n if (\n typeof resp === \"string\" &&\n resp.includes(\"Previous Request already open for this account-\")\n ){\n openExistSrPopup();\n return;\n }\n \n else {\n if (resp.Message) {\n props.setLoader(false);\n props.onSubmit(\"incomeDeclaration\", {\n content: resp.Message,\n headerText: \"We've Recieve Your Request\",\n popupType: \"Success\"\n });\n } else {\n incomeDeclarationApiError();\n }\n }\n } catch (error) {\n incomeDeclarationApiError();\n }\n }\n async function checkExistingIncomeSR() {\n setExistingIncomeSR(\"\");\n props.setLoader(false);\n props.showFooter(true);\n }\n function setIncomeRange(document: any) {\n if (document && document !== \"0\") {\n setNewIncome(document);\n setNewIncomeRange(newIncomeDetails[document]);\n setNewworthBoolean(true);\n setNewworthBoolean1(true);\n } else {\n setNewIncome(undefined);\n setNewIncomeRange(undefined);\n setNewworthBoolean(false);\n setNewworthBoolean1(false);\n }\n }\n function setNetworth(value: any) {\n if (!value) {\n setNetworthValue(undefined);\n setNetworthErr(\"Min. Amount Rs. 1000\");\n setNetWorthErrorColor(\"warm-grey-eight\");\n } else if (value && parseInt(value) < 1000) {\n if (!integerExp.test(value)) {\n setNetworthValue(\"\");\n setNetworthErr(\"Invalid Input Amount\");\n setNetWorthErrorColor(\"red\");\n } else {\n setNetworthValue(parseInt(value));\n setNetworthErr(\"Invalid Input Min. Amount Rs. 1000\");\n setNetWorthErrorColor(\"red\");\n }\n } else if (value && parseInt(value) >= 1000) {\n if (!integerExp.test(value)) {\n setNetworthValue(\"\");\n setNetworthErr(\"Invalid Input Amount\");\n setNetWorthErrorColor(\"red\");\n } else {\n setNetworthValue(parseInt(value));\n setNetworthErr(\"\");\n }\n }\n }\n function setConfirmation() {\n if (newtWorthBoolean) {\n setNewworthBoolean(false);\n } else {\n setNewworthBoolean(true);\n }\n }\n function setConfirmation1() {\n if (newtWorthBoolean1) {\n setNewworthBoolean1(false);\n } else {\n setNewworthBoolean1(true);\n }\n }\n\n React.useEffect(() => {\n if (!childSr) checkExistingIncomeSR();\n getExistingIncomeDeclaration();\n getNewIncomeRange();\n getDepositoryDet();\n\n return () => {};\n }, []);\n\n useImperativeHandle(ref, () => ({\n async getSubmitData() {\n const reqObj = {\n requestType: \"Income Declaration\",\n dpID: await getDepositoryDet(),\n income_range: newIncomeRange?.display,\n net_worth_value: netWorth,\n gross_annual_income_range_code: newIncomeRange?.value,\n };\n // console.log(reqObj);\n return reqObj;\n },\n submitData() {\n submitRequest();\n },\n }));\n function redirection(): void {\n // let redirectionURL = config.root + \"clientarea/service-request\";\n // if (source === \"ajs\")\n // redirectionURL = config.rootUrl + \"clientarea/servicerequest\";\n // history.push(redirectionURL);\n history.goBack();\n history.goBack();\n }\n\n return (\n
    \n {/* {loader && (\n \n \n
    \n )} */}\n {!childSr && !props.loader && existingIncomeSR}\n {!props.loader && !existingIncomeSR && (\n
    \n {!childSr && (\n
    \n \n
    \n
    \n {existingIncomeDetail && (\n

    \n Annual Income Range (As on{\" \"}\n {existingIncomeDetail.gross_annual_income_date} )\n

    \n )}\n {existingIncomeDetail && (\n \n Between {existingIncomeDetail?.annual_income_range}.\n \n )}\n
    \n
    \n {existingIncomeDetail && (\n

    \n Networth (As on {existingIncomeDetail?.networth_date})\n

    \n )}\n {existingIncomeDetail && (\n \n {existingIncomeDetail?.networth}\n \n )}\n
    \n
    \n
    \n )}\n\n
    \n \n
    \n
    \n {\" \"}\n \n
    \n {newIncomeDetails && (\n setIncomeRange(value)}\n isSearchable={false}\n />\n )}\n
    \n
    \n
    \n {\" \"}\n \n
    \n {props.childSr ? (\n {\n setNetworth(value);\n }}\n defaultValue={netWorth}\n onBlur={() => {}}\n placeholder=\"Enter Networth\"\n helpText={netWorthError}\n helpTextColor={netWorthErrorColor}\n />\n ) : (\n {\n setNetworth(value);\n }}\n onBlur={() => {}}\n placeholder=\"Enter Networth\"\n errorText={netWorthError}\n />\n )}\n
    \n
    \n
    \n
    \n
    \n {newIncomeRange && (\n <>\n
    \n setConfirmation()}\n >\n \n {\" \"}\n I/We hereby confirm/undertake that the investments/trading\n done in securities market are from my/our own/borrowed\n sources of funds and I/we confirm that the funds utilized\n for trading activity by me/us are in compliance with the\n rules, regulations and guidelines stipulated under PMLA.\n \n {\" \"}\n
    \n \n )}\n {newIncomeRange && (\n <>\n
    \n setConfirmation1()}\n >\n \n {\" \"}\n I further confirm that the value of assets mentioned above\n are my own source of Income/by way of inheritance for my\n account with Nuvama Wealth and Investment Limited (applicable for\n Demat account holders).{\" \"}\n \n \n
    \n \n )}\n
    \n {/* {!childSr && (\n
    \n
    \n submitRequest()}\n >\n Submit\n \n \n
    \n
    \n )} */}\n
    \n )}\n \n );\n});\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { config } from \"../../../../config/domain\";\nimport EdButton from \"../../../generic/edButton\";\nimport Loader from \"../../../generic/loader\";\nimport {\n CreateChildServiceRequestDetails,\n GetEquityReactivationClientValidation,\n} from \"../../../service/serviceRequest/srApiService\";\nimport { EmailMobileModification } from \"../emailMobileModification/emailMobileModification\";\nimport { FatcaUpdate } from \"../fatcaUpdate/fatcaUpdate\";\nimport { IncomeDeclaration } from \"../incomeDeclaration/incomeDeclaration\";\nimport { useQuery } from \"../../../service/urlHelper\";\nexport const ProfileForm = (props: any) => {\n // const [loader, setLoader] = useState(false);\n const consentType = useQuery().get(\"consentType\");\n const parentSrDetails: any = JSON.parse(\n localStorage.getItem(\"accReactParentDetails\") || \"{}\"\n );\n const [fatcaB, setFatcaB] = useState(false);\n const [emailB, setEmailB] = useState(false);\n const [incomeB, setIncomeB] = useState(false);\n const [btnText, setBtnText] = useState(\"Proceed\");\n const addressConsent = useQuery().get(\"consent\");\n const [show, setShow] = useState({\n fatca: true,\n income: true,\n email: true,\n });\n\n const emailMobRef = useRef();\n const incomeDRef = useRef();\n const fatcaURef = useRef();\n useEffect(() => {\n // setShow({\n // fatca: props.currentFlow.find((fl: any) => fl.type === 1) ? true : false,\n // income: props.currentFlow.find((fl: any) => fl.type === 2) ? true : false,\n // email: props.currentFlow.find((fl: any) => fl.type === 3) ? true : false,\n // });\n }, []);\n\n const clearLocalStorage = () => {\n window.localStorage.removeItem(\"digie\");\n window.localStorage.removeItem(\"digieResubmit\");\n window.localStorage.removeItem(\"rejectFlow\");\n window.localStorage.removeItem(\"srId\");\n window.localStorage.removeItem(\"\");\n };\n\n const parentCall = async () => {\n try {\n // props.setLoader(true);\n \n const emailMob: any = emailMobRef?.current;\n const incomeDeclare: any = incomeDRef?.current;\n const fataca: any = fatcaURef?.current;\n const fatcareqObj = await fataca?.getSubmitData();\n const emailMobreqObj = await emailMob?.getSubmitData().reqObj;\n const inDeclreqObj = await incomeDeclare?.getSubmitData();\n delete fatcareqObj?.requestType;\n delete emailMobreqObj?.requestType;\n delete inDeclreqObj?.requestType;\n delete fatcareqObj?.dpID;\n delete emailMobreqObj?.dpID;\n // delete inDeclreqObj?.dpID;\n \n let fatcareq= show.fatca?fatcareqObj: {\n is_indian_citizen: null,\n fatcaReq: []\n }\n const reqObj = {\n requestType: \"FATCAINCOMEEMAIL\",\n dpID: inDeclreqObj?.dpID ? inDeclreqObj?.dpID : \"None\",\n ...fatcareq,\n ...emailMobreqObj,\n ...inDeclreqObj,\n AutoQC: \"NA\",\n parent_id: props.srId,\n dormant_type: parentSrDetails?.dormant_type,\n };\n\n\n let emailMobObj = emailMob?.getSubmitData().emailMobileFormObj;\n\n if (\n !emailMobreqObj.mobOtpVerified && !emailMobObj.emailOtpVerified\n ) {\n // props.setLoader(false);\n emailMob.submitData();\n } else {\n props.setLoader(true);\n\n const createChildSr = await CreateChildServiceRequestDetails(reqObj);\n // console.log(createChildSr);\n clearLocalStorage();\n props.setLoader(false);\n\n if (\n typeof createChildSr === \"string\" &&\n createChildSr.includes(\"Previous Request already open for this account-\")\n ) {\n props.funcData.onSubmit(\"Profile\", {\n headerText: \"You have an active service request\",\n content: \"You already have an active service request. Once it is updated, you will be able to raise new request.\",\n });\n } else if (\n typeof createChildSr === \"string\" &&\n createChildSr.includes(\"One Service Request with same email/mobile is already open\")\n ) {\n props.funcData.onSubmit(\"Profile\", {\n headerText: \"Service request rejected\",\n content: \"The mobile no./email address entered is already in process for updation for a different account. Please update an alternate mobile no./email address to proceed OR since the mobile no./email address pending for updation in a different account is related to you (family account), wait for it to get processed. Once processed, you can use the same mobile no./email address along with family declaration.\",\n });\n } else {\n if (createChildSr.Message === \"FATCA Declaration,Income Declaration and Email&Phone Request SR is Created successfully\")\n props.next(reqObj.familyDeclReq);\n else\n props.funcData.onSubmit(\"Profile\", {\n headerText:\n \"There was some error while proceeding with process.Please Try Again Later.\",\n });\n }\n }\n } catch (err) {\n // console.log(err);\n\n props.setLoader(false);\n props.funcData.onSubmit(\"Profile\", {\n headerText:\n \"There was some error while proceeding with process.Please Try Again Later.\",\n });\n }\n };\n\n return (\n <>\n {\" \"}\n {/*

    New Income Declaration

    */}\n
    \n
    \n {show.fatca && (\n setShow({ ...show, fatca: false })}\n />\n )}\n {show.income && (\n \n )}\n
    \n\n {show.email && (\n
    \n \n {props.userData && (\n {\n setBtnText(val === \"Generate OTP\" ? val : \"Proceed\");\n }}\n consentType ={consentType}\n />\n )}\n
    \n )}\n\n
    \n
    \n {\n parentCall();\n e.preventDefault();\n }}\n >\n {btnText}\n \n\n \n {!(\n (consentType &&\n (consentType?.includes(\"email\") ||\n consentType?.includes(\"mobile\") ||\n consentType?.includes(\"emailMob\"))) ||\n addressConsent?.includes(\"Change of Address\")\n ) && (\n \n Cancel\n \n )}\n {((consentType &&\n (consentType?.includes(\"email\") ||\n consentType?.includes(\"mobile\") ||\n consentType?.includes(\"emailMob\"))) ||\n addressConsent?.includes(\"Change of Address\")) && (\n \n )}\n \n
    \n
    \n
    \n \n );\n};","import * as React from \"react\";\nimport { useState } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { IListObj } from \"../../../types/genericTypes\";\nimport RadioButton from \"../../../generic/radioButton\";\nimport {\n createAccReq,\n getMemorandumDetails,\n getPaymentBankDetails,\n GetPersonDetails,\n paymentGateway,\n updateAccReactStatus,\n} from \"../../../service/serviceRequest/srApiService\";\nimport InputField from \"../../../generic/inputField\";\nimport { upiExp } from \"../../../utils/regex\";\nimport { config } from \"../../../../config/domain\";\nimport { StatusScreen } from \"../../generic/statusScreen\";\nimport { asyncGetServiceRequest } from \"../../../service/postLogin/clientProfileAPIService\";\nconst payMethod: Array = [\n { value: \"IB\", display: \"Internet Banking\" },\n { value: \"UPI\", display: \"UPI\" },\n // { value: \"QR\", display: \"UPI via QR code\" },\n];\nexport const AccountPayment = (props: any) => {\n const [bankUpiDetails, setBankUpiDetails] = useState({\n bankDetails: [],\n upiDetails: [],\n upiHdlInfo: [],\n });\n const [payOption, setPayOption] = useState([]);\n const [payModeDetails, setPaymentModeDetails] = useState({\n isPrimUpi: false,\n bnkCode: \"\",\n amt: 0.0,\n bnkAccNo: \"\",\n bnkName: \"\",\n paymtMd: \"\",\n brcName: \"\",\n ldgrNm: \"Normal\",\n upi: \"\",\n app: \"trade\",\n isMmrdm: true,\n srId: \"\",\n accCode: \"\",\n });\n\n const [error, setError] = useState({ handleError: \"\", upiError: \"\" });\n const [status, setStatus] = useState();\n const [errorMsg, setErrorMsg] = useState(\"\");\n const [memorandumDetails, setMemorandumDetails] = useState({\n memorandumId: \"\",\n Total_NET_Outstanding: \"\",\n });\n const [hover, setHover] = useState(false);\n\n function redirect(url: string) {\n if (url.indexOf(\"http://\") === 0 || url.indexOf(\"https://\") === 0) {\n // If url is absolute\n window.location.href = url;\n }\n }\n React.useEffect(() => {\n if (\n memorandumDetails.Total_NET_Outstanding > 0 &&\n memorandumDetails.Total_NET_Outstanding < 50\n )\n setErrorMsg(\n \"Minimum transfer amount is Rs.50. Please contact your RM or write us on helpdesk@nuvama.com\"\n );\n showBankListed();\n }, [memorandumDetails.Total_NET_Outstanding]);\n React.useEffect(() => {\n if (props.paymentStatus) {\n switch (props.paymentStatus.bankstatus) {\n case \"Processed\":\n let accReactParentDetails: any = localStorage.getItem(\n \"accReactParentDetails\"\n );\n accReactParentDetails = JSON.parse(accReactParentDetails);\n\n const ckycDet = props.childSrList.find(\n (ele: any) => ele.RequestType === \"CKYC Update\"\n );\n\n let reqObj = {\n ckycSRId: ckycDet?.RequestId ? ckycDet.RequestId : 0,\n ckycStatus: ckycDet?.RequestStatus ? ckycDet.RequestStatus : \"None\",\n requestType: \"PaymentSuccess\",\n dormant_type: accReactParentDetails.dormant_type,\n parent_id: props.srId,\n };\n updateAccReactStatus(reqObj)\n .then((res) => {\n if (res && res.Message === \"Payment Success!!!\") {\n localStorage.removeItem(\"paymentReponse\");\n redirect(\n config.root +\n \"app/clientarea/service-request?mod=accReactPay&source=nsdl_ajs&appID=\" +\n btoa(props.srId)\n );\n } else accountApiError();\n })\n .catch((err: any) => accountApiError());\n\n break;\n case \"Pending\":\n case \"In Process\":\n setStatus(\"Pending\");\n break;\n case \"Cancelled\":\n case \"Rejected\":\n case \"Request_Sent\":\n setStatus(\"Success\");\n break;\n case \"Failed\":\n setStatus(\"Rejected\");\n break;\n }\n } else {\n getpaymentDetails();\n }\n }, []);\n const accountApiError = () => {\n props.onSubmit(\"AccountPayment\", {\n headerText: \"There was some problem during account reactivation process.\",\n });\n };\n const openExistSrPopup = () => {\n props.setLoader(false);\n props.onSubmit(\"accPayment\", {\n headerText: \"You have an active service request\",\n content: \"You already have an active service request. Once it is updated, you will be able to raise new request.\",\n });\n };\n\n const getpaymentDetails = async () => {\n try {\n let resTotalNet = await getMemorandumDetails();\n const serviceList = await asyncGetServiceRequest(props.srId);\n const createSRPayment = serviceList.find(\n (list: any) => list.RequestType === \"Memorandum Recovery\"\n );\n if (\n resTotalNet &&\n Number(resTotalNet.result[0].Total_NET_Outstanding) > 0\n ) {\n if (!createSRPayment) {\n let reqObj = {\n requestType: \"Memorandum\",\n dpID: \"None\",\n dormant_type: \"1\",\n npa_outstanding: resTotalNet.result[0].NetNPA_Outstanding,\n memorandum_outstanding:\n resTotalNet.result[0].NetMemorandum_Outstanding,\n total_outstanding: resTotalNet.result[0].Total_NET_Outstanding,\n parent_id: props.srId,\n };\n let reqMemorandum = await createAccReq(reqObj);\n if (\n typeof reqMemorandum === \"string\" &&\n reqMemorandum.includes(\n \"Previous Request already open for this account-\"\n )\n ) {\n openExistSrPopup();\n return;\n } else {\n if (\n reqMemorandum &&\n reqMemorandum.Message === \"Memorandum SR created successfully\"\n ) {\n setMemorandumDetails({\n ...memorandumDetails,\n memorandumId: reqMemorandum.Id,\n Total_NET_Outstanding:\n resTotalNet.result[0].Total_NET_Outstanding,\n });\n }\n }\n } else {\n setMemorandumDetails({\n ...memorandumDetails,\n memorandumId: createSRPayment.RequestId,\n Total_NET_Outstanding: resTotalNet.result[0].Total_NET_Outstanding,\n });\n }\n } else {\n props.setLoader(false);\n accountApiError();\n }\n props.setLoader(false);\n } catch (error) {\n props.setLoader(false);\n accountApiError();\n }\n };\n const showBankListed = async () => {\n try {\n let personaldetails = await GetPersonDetails();\n if (personaldetails && personaldetails.accountCodeField) {\n let queryPramas = `/${personaldetails.accountCodeField}?rTyp=PAYIN&APP=trade?ismrd=true`;\n let response = await getPaymentBankDetails(queryPramas);\n let resPayment: any = JSON.parse(response.data.details);\n if (resPayment && resPayment.bnkAcs) {\n var bankDetailsList = [];\n for (let i = 0; i < resPayment.bnkAcs.length; i++) {\n let api = {\n ...resPayment.bnkAcs[i],\n value: resPayment.bnkAcs[i].bnkAccNo,\n display: resPayment.bnkAcs[i].bnkName,\n };\n bankDetailsList.push(api);\n }\n setBankUpiDetails({\n ...bankUpiDetails,\n bankDetails: bankDetailsList,\n upiDetails: resPayment.upis,\n upiHdlInfo: resPayment.upiHdlInfo,\n });\n\n setPayOption([bankDetailsList[0]]);\n var autoSelectBank: any = {};\n if (bankDetailsList[0].fndTrsAvl) autoSelectBank.paymtMd = \"IB\";\n else if (bankDetailsList[0].upiintent) autoSelectBank.paymtMd = \"UPI\";\n // else if (bankDetailsList[0].upiqr && bankDetailsList[0].upiAvl)\n // autoSelectBank.paymtMd = \"QR\";\n else autoSelectBank.paymtMd = undefined;\n\n if (memorandumDetails.Total_NET_Outstanding > 50) {\n if (!autoSelectBank.paymtMd)\n setErrorMsg(\n \"We do not have instant fund transfer facility available with the selected bank currently, please try after sometime or you can connect with your respective RM for cheque based payment facility.\"\n );\n }\n\n setPaymentModeDetails({\n ...payModeDetails,\n ...autoSelectBank,\n bnkName: bankDetailsList[0].bnkName,\n bnkCode: bankDetailsList[0].bnkCode,\n brcName: bankDetailsList[0].brcName,\n bnkAccNo: bankDetailsList[0].bnkAccNo,\n accCode: personaldetails.accountCodeField,\n });\n props.setLoader(false);\n }\n }\n } catch (error) {}\n };\n const onChange = (name?: string, value?: any, accNo?: number) => {\n if (!errorMsg.includes(\"Minimum transfer amount is Rs.50\")) setErrorMsg(\"\");\n if (name !== \"paymtMd\") {\n setPaymentModeDetails({\n ...payModeDetails,\n paymtMd: \"\",\n bnkName: \"\",\n bnkCode: \"\",\n brcName: \"\",\n bnkAccNo: \"\",\n isPrimUpi: false,\n });\n var selectedBankPayMode = [];\n selectedBankPayMode = bankUpiDetails.bankDetails.filter(\n (bankObj: any) => {\n return bankObj.bnkAccNo === accNo;\n }\n );\n setPayOption([selectedBankPayMode[0]]);\n let payObj = {\n ...payModeDetails,\n [`${name}`]: value,\n bnkAccNo: accNo,\n bnkCode: selectedBankPayMode[0].bnkCode,\n brcName: selectedBankPayMode[0].brcName,\n };\n if (selectedBankPayMode[0].fndTrsAvl) payObj.paymtMd = \"IB\";\n else if (selectedBankPayMode[0].upiintent) payObj.paymtMd = \"UPI\";\n // else if (selectedBankPayMode[0].upiqr && selectedBankPayMode[0].upiAvl)\n // payObj.paymtMd = \"QR\";\n else {\n payObj.paymtMd = undefined;\n }\n if (memorandumDetails.Total_NET_Outstanding > 50) {\n if (!payObj.paymtMd)\n setErrorMsg(\n \"We do not have instant fund transfer facility available with the selected bank currently, please try after sometime or you can connect with your respective RM for cheque based payment facility.\"\n );\n }\n setPaymentModeDetails(payObj);\n } else {\n let payObj = {\n ...payModeDetails,\n [`${name}`]: value,\n upi: \"\",\n };\n setPaymentModeDetails(payObj);\n setError({\n ...error,\n handleError: \"\",\n });\n }\n };\n const submitPayment = async () => {\n props.setLoader(true);\n let requestObj = {\n isPrimUpi: payModeDetails.isPrimUpi,\n bnkCode: payModeDetails.bnkCode,\n amt: memorandumDetails.Total_NET_Outstanding,\n bnkAccNo: payModeDetails.bnkAccNo,\n bnkName: payModeDetails.bnkName,\n paymtMd: payModeDetails.paymtMd,\n brcName: payModeDetails.brcName,\n ldgrNm: payModeDetails.ldgrNm,\n upi: payModeDetails.upi,\n app: payModeDetails.app,\n isMmrdm: payModeDetails.isMmrdm,\n srId: \"SR-\" + props.srId,\n src:\n localStorage.getItem(\"lgnSrc\") == \"android-phone\"\n ? \"MRD-EMTANDROID\"\n : localStorage.getItem(\"lgnSrc\") == \"iphone\"\n ? \"MRD-EMTIOS\"\n : localStorage.getItem(\"lgnSrc\") == \"X\"\n ? \"tx3\"\n : \"MRD-web-pc\",\n accCode: payModeDetails.accCode,\n };\n try {\n let response = await paymentGateway(requestObj);\n\n if (response && response.data && JSON.parse(response.data.details).url) {\n window.open(JSON.parse(response.data.details).url, \"_self\");\n }\n if (response && response.error) {\n setError({\n ...error,\n handleError: response.error.errMsg,\n });\n }\n props.setLoader(false);\n } catch (error) {\n console.log(error);\n accountApiError();\n }\n };\n return (\n <>\n {/* {loader && (\n
    \n \n
    \n )} */}\n {!props.loader && (\n <>\n {!props.paymentStatus && (\n
    \n
    \n

    Pending Debit

    \n

    Outstanding amount pending for your account code

    \n
    \n\n
    \n \n
    \n {bankUpiDetails.bankDetails.map((bankObj: any, i: number) => (\n
    \n
    \n
    \n {\n onChange(\n e.target.name,\n bankObj.bnkName,\n bankObj.bnkAccNo\n );\n }}\n selected={payModeDetails.bnkAccNo}\n />\n

    {bankObj.bnkAccNo}

    \n
    \n
    \n
    \n ))}\n
    \n
    \n\n {payOption.length > 0 &&\n payModeDetails.paymtMd &&\n payOption.map((upiObj: any, i: any) => (\n
    \n \n
    \n {upiObj.fndTrsAvl && (\n {\n onChange(\n e.target.name,\n e.target.value,\n upiObj.bnkAccNo\n );\n }}\n selected={payModeDetails.paymtMd}\n />\n )}\n {/* {upiObj.upiqr && upiObj.upiAvl && (\n {\n onChange(\n e.target.name,\n e.target.value,\n upiObj.bnkAccNo\n );\n }}\n selected={payModeDetails.paymtMd}\n />\n )} */}\n {upiObj.upiintent && (\n <>\n {\n onChange(\n e.target.name,\n e.target.value,\n upiObj.bnkAccNo\n );\n }}\n selected={payModeDetails.paymtMd}\n />\n
    \n
    \n \n {\n setHover(true);\n }}\n onMouseLeave={() => {\n setHover(false);\n }}\n >\n \n {hover && (\n
    \n
    \n
    \n
    \n

    E.g. name@bankname

    \n
    \n
    \n
    \n )}\n
    \n
    \n \n )}\n
    \n\n {payModeDetails.paymtMd === \"UPI\" && (\n
    \n {\n setError({\n ...error,\n handleError: \"\",\n });\n //primaryUpi condition\n\n let primaryUpi: any;\n if (bankUpiDetails.upiDetails) {\n primaryUpi = bankUpiDetails.upiDetails.find(\n (list: any) =>\n list.upi === val &&\n list.bankaccountnumber ===\n payModeDetails.bnkAccNo\n );\n }\n\n if (upiExp.test(val)) {\n // let dataup = [...bankUpiDetails.upiHdlInfo];\n // dataup.push({\n // handlelimit: 200000,\n // handlename: \"@\".concat(val.split(\"@\")[1]),\n // });\n const checkHandleInfo = \"@\".concat(\n val.split(\"@\")[1]\n );\n const selectHandle =\n bankUpiDetails.upiHdlInfo.find(\n (list: any) =>\n list.handlename === checkHandleInfo\n );\n const finalHandle = selectHandle\n ? selectHandle\n : bankUpiDetails.upiHdlInfo.find(\n (list: any) =>\n list.handlename === \"@genericupi\"\n );\n\n setBankUpiDetails({\n ...bankUpiDetails,\n handleLimit: finalHandle.handlelimit,\n });\n }\n setPaymentModeDetails({\n ...payModeDetails,\n isPrimUpi: primaryUpi ? true : false,\n upi: val,\n });\n // let select = bankUpiDetails.upiHdlInfo.find(\n // (list: any) => {\n // if (list.handlename === checkHandleInfo) {\n // if (\n // memorandumDetails.Total_NET_Outstanding <=\n // list.handlelimit\n // ) {\n // add primaryUPI conditions\n // } else {\n // setPaymentModeDetails({\n // ...payModeDetails,\n // upi: \"\",\n // isPrimUpi: false,\n // });\n // }\n // }\n // }\n // );\n }}\n onMouseOut={(val) => {\n if (val) {\n if (upiExp.test(val)) {\n console.log(\n memorandumDetails.Total_NET_Outstanding <=\n payModeDetails.handleLimit,\n memorandumDetails.Total_NET_Outstanding,\n bankUpiDetails.handleLimit\n );\n\n if (\n memorandumDetails.Total_NET_Outstanding >\n bankUpiDetails.handleLimit\n ) {\n setError({\n ...error,\n handleError: `Max. Transfer amount is Rs ${bankUpiDetails.handleLimit.toLocaleString(\n \"en-IN\"\n )}`,\n });\n } else {\n setError({\n ...error,\n handleError: \"\",\n });\n }\n } else {\n setError({\n ...error,\n handleError:\n \"UPI ID should be in the format name@bankname.\",\n });\n }\n }\n }}\n onBlur={() => {}}\n errorText={error.handleError}\n placeholder=\"Enter UPI ID linked to above account\"\n pattern={upiExp}\n />\n
    \n )}\n
    \n ))}\n\n
    \n
    \n

    \n Amount to Paid ₹\n \n {\" \" +\n memorandumDetails.Total_NET_Outstanding.toLocaleString(\n \"en-IN\"\n )}\n \n

    \n
    \n {errorMsg &&

    {errorMsg}

    }\n
    \n
    \n \n Pay\n \n \n
    \n
    \n
    \n

    Queries on this Payment

    \n

    \n {\n e.preventDefault();\n props.setLoader(true);\n let reqRm = {\n requestType: \"ContactRM\",\n parent_id: props.srId,\n memorandumId: memorandumDetails.memorandumId,\n };\n let contactRm = await updateAccReactStatus(reqRm);\n if (\n contactRm &&\n contactRm.Message ===\n \"Memmorandum SR successfully assigne to RM\"\n )\n props.onSubmit(\"AccountPayment\", {\n headerText: \"We have received your request!\",\n content: \"We have received your request for reactivation of your account. This request will be processed in 2-3 business days.\",\n popupType: \"Success\"\n });\n props.setLoader(false);\n }}\n >\n Contact your RM\n \n

    \n

    \n Or write to us on{\" \"}\n \n helpdesk@nuvama.com\n \n

    \n
    \n
    \n )}\n {props.paymentStatus && }\n \n )}\n \n );\n};\n","import React from \"react\";\nimport {\n GetEquityReactivationClientValidation,\n updateAccReactStatus,\n} from \"../../../service/serviceRequest/srApiService\";\nimport { AddressModification } from \"../addressModification/addressModification\";\nimport { Bank } from \"../bankDetails/bankModification\";\nimport { CKYCUpdate } from \"../CKYC/ckycUpdate\";\nimport { VerficationStage } from \"../verficationStage/verficationStage\";\nimport { ProfileForm } from \"./profileForm\";\nimport { asyncGetServiceRequest } from \"../../../service/postLogin/clientProfileAPIService\";\nimport Loader from \"../../../generic/loader\";\nimport { getAccData, getUserID } from \"../../../service/login/loginService\";\nimport { AccountPayment } from \"../accPayment/accPayment\";\nimport { useQuery } from \"../../../service/urlHelper\";\nimport { config } from \"../../../../config/domain\";\n\nconst flow = [\n {\n RequestType: \"FATCA Declaration\",\n Stage: 1,\n type: 1,\n },\n {\n RequestType: \"Income Declaration\",\n Stage: 1,\n type: 2,\n },\n {\n RequestType: \"Email and Phone Update\",\n Stage: 1,\n type: 3,\n },\n {\n RequestType: \"Change of Address\",\n Stage: 2,\n type: 4,\n },\n // {\n // RequestType: \"Bank Modification\",\n // Stage: 3,\n // type: 5,\n // },\n {\n RequestType: \"CKYC Update\",\n Stage: 4,\n type: 6,\n },\n {\n RequestType: \"E-sign\",\n Stage: 5,\n type: 7,\n },\n];\n\n// const consetflow = [\n// {\n// RequestType: \"Change of Address\",\n// Stage: 2,\n// },\n// {\n// RequestType: \"CKYC Update\",\n// Stage: 4,\n// },\n// {\n// RequestType: \"E-sign\",\n// Stage: 5,\n// },\n// ];\n\nclass AccReactivateCont extends React.Component {\n constructor(props: any) {\n super(props);\n this.state = {\n // currentStage: 1,\n userData: {},\n srId: 0,\n childSrList: [],\n currentFlow: [],\n //loader: true,\n };\n }\n \n nextStage = async (familyDeclReq?: any) => {\n this.props.setLoader(true);\n let nextFlow = this.state.currentFlow;\n nextFlow = nextFlow.filter(\n (flow: any) => flow.Stage !== this.props.stage.currentStage\n );\n const sr = JSON.parse(\n localStorage.getItem(\"accReactParentDetails\") || \"{}\"\n );\n\n if (sr && sr.dormant_type !== \"1\") {\n this.props.setLoader(false);\n if (sr.dormant_type.includes(\"6\")) {\n let accReactSrList: any = await asyncGetServiceRequest(\n sr.RequestId\n ? sr.RequestId\n : Number(localStorage.getItem(\"accReactParentId\"))\n );\n console.log(\"accReactSrList\", accReactSrList);\n console.log(\"accReactSrList\", accReactSrList.length);\n\n if (accReactSrList.length > 0) {\n let addressSR = accReactSrList.filter((childSr: any) => {\n return childSr.RequestType === \"Change of Address\";\n });\n\n if (addressSR.length > 0 && addressSR[0].is_digilocker_flow) {\n nextFlow = [];\n }\n if (nextFlow.length === 0)\n nextFlow.push(flow.find((list) => list.type === 7));\n }\n } else nextFlow.push(flow.find((list) => list.type === 7));\n }\n nextFlow.sort((a: any, b: any) => a.Stage - b.Stage);\n this.setState({ currentFlow: nextFlow });\n this.props.stage.setCurrentStage(nextFlow[0].Stage);\n this.props.setLoader(false);\n };\n redirect = (url: string) => {\n if (url.indexOf(\"http://\") === 0 || url.indexOf(\"https://\") === 0) {\n // If url is absolute\n window.location.href = url;\n }\n };\n\n async componentDidMount() {\n try {\n\n let personalDetails: any = window.localStorage.getItem(\"personalDetails\");\n let userIdDet = JSON.parse(personalDetails);\n if (userIdDet && userIdDet.accCode !== getUserID())\n localStorage.removeItem(\"personalDetails\");\n\n this.props.srDropDown(true);\n const userData = await GetEquityReactivationClientValidation();\n this.setState({ userData: userData.result[0] });\n const serviceList = await asyncGetServiceRequest();\n const consentList = getAccData(\"cnsntLst\")\n ? getAccData(\"cnsntLst\")\n : JSON.parse(localStorage.getItem(\"cnsntLst\") || \"[]\");\n\n const sr = serviceList.filter(\n (srReq: any) =>\n srReq.RequestType === \"Equity Dormant Reactivation\" &&\n [\n \"Draft Saved\",\n \"Approved\",\n \"Submitted\",\n \"AssignedtoHO\",\n \"InProcess\",\n \"PendingForEsign\",\n \"EsignVerified\",\n \"EsignSubmitted\",\n \"AssignedforEsignQC\",\n \"EsignVerified\",\n \"PushToTarget\",\n \"MemorandumPaymentPending\",\n ].includes(srReq.RequestStatus)\n )[0];\n\n let accReactParentDetails: any;\n if (!sr) {\n accReactParentDetails = localStorage.getItem(\"accReactParentDetails\");\n accReactParentDetails = JSON.parse(accReactParentDetails);\n if (!accReactParentDetails.RequestId) {\n this.props.onSubmit(\"createRequestApiError\", {\n content: accReactParentDetails.Message,\n headerText: \"New Service Request\",\n });\n return;\n }\n\n const srId: string = accReactParentDetails.RequestId\n ? accReactParentDetails.RequestId\n : accReactParentDetails.Id;\n localStorage.setItem(\"accReactParentId\", srId);\n } else {\n accReactParentDetails = sr;\n }\n localStorage.setItem(\n \"accReactParentDetails\",\n JSON.stringify(accReactParentDetails)\n );\n this.setState({\n srId: accReactParentDetails.RequestId\n ? accReactParentDetails.RequestId\n : localStorage.getItem(\"accReactParentId\"),\n });\n // const accReactSrList: any =[];\n const accReactSrList: any = await asyncGetServiceRequest(\n (sr && sr.RequestId)\n ? sr.RequestId\n : Number(localStorage.getItem(\"accReactParentId\"))\n );\n const consentFlow: any = [];\n if (accReactSrList.length > 0) {\n if (\n (accReactParentDetails.hasOwnProperty(\"RequestStatus\") &&\n accReactParentDetails.RequestStatus === \"Draft Saved\") ||\n window.location.href.includes(\"rejected\")\n ) {\n let setFlow: any;\n\n if (accReactParentDetails.dormant_type === \"1\") {\n setFlow = flow;\n accReactSrList.map((res: any) => {\n if (window.location.href.includes(\"rejected\")) {\n if (res.RequestStatus !== \"Rejected - Resubmit\") {\n if (\n res.RequestType ===\n flow[\n flow.findIndex((f: any) => {\n if (f) return f.type === 6;\n })\n ].RequestType\n ) {\n return;\n }\n const index = setFlow.findIndex((f: any) => {\n if (f) return f.RequestType === res.RequestType;\n });\n delete setFlow[index];\n }\n } else {\n if (\n res.RequestType ===\n flow[\n flow.findIndex((f: any) => {\n if (f) return f.type === 6;\n })\n ].RequestType\n ) {\n return;\n }\n const index = setFlow.findIndex((f: any) => {\n if (f) return f.RequestType === res.RequestType;\n });\n delete setFlow[index];\n }\n });\n let profileList = setFlow.filter((f: any) => {\n if (f)\n return f.type === 1 && f.RequestType !== \"FATCA Declaration\";\n });\n if (profileList && profileList.length === 0) {\n setFlow.sort((a: any, b: any) => a.Stage - b.Stage);\n\n setFlow = setFlow.filter((f: any) => {\n if (f) return f.RequestType !== \"FATCA Declaration\";\n });\n }\n\n if (window.location.href.includes(\"rejected\")) {\n if (\n !(\n setFlow.filter((f: any) => f.type === 4)[0] ||\n setFlow.filter((f: any) => f.type === 5)[0] ||\n setFlow.filter((f: any) => f.type === 6)[0]\n )\n ) {\n const i = setFlow.findIndex((f: any) => {\n if (f) return f.type === 6;\n });\n delete setFlow[i];\n }\n // removing address or bank if SR is not created\n setFlow.map((f: any, i: any) => {\n if (f.type === 4 || f.type === 5) {\n const SR = accReactSrList.find(\n (sr: any) => sr.RequestType === f.RequestType\n );\n if (!SR) {\n delete setFlow[i];\n }\n }\n });\n }\n } else if (accReactParentDetails.dormant_type !== \"1\") {\n consentList.map((consent: any) => {\n let index;\n switch (consent.name) {\n case \"eqIncmDclr\":\n index = flow.findIndex((f: any) => {\n if (f) return f.type === 2;\n });\n consentFlow.push(flow[index]);\n break;\n case \"emailMob\":\n index = flow.findIndex((f: any) => {\n if (f) return f.type === 3;\n });\n consentFlow.push(flow[index]);\n break;\n case \"invAddress\":\n index = flow.findIndex((f: any) => {\n if (f) return f.type === 4;\n });\n consentFlow.push(flow[index]);\n break;\n default:\n break;\n }\n });\n setFlow = consentFlow;\n accReactSrList.map((res: any) => {\n if (window.location.href.includes(\"rejected\")) {\n if (res.RequestStatus !== \"Rejected - Resubmit\") {\n const index = setFlow.findIndex((f: any) => {\n if (f) return f.RequestType === res.RequestType;\n });\n delete setFlow[index];\n }\n } else {\n const index = setFlow.findIndex((f: any) => {\n if (f) return f.RequestType === res.RequestType;\n });\n delete setFlow[index];\n }\n });\n }\n console.log(setFlow);\n setFlow.sort((a: any, b: any) => a.Stage - b.Stage);\n setFlow.filter((f: any) => f);\n this.props.stage.setCurrentStage(setFlow[0].Stage);\n this.setState({ currentFlow: setFlow, childSrList: accReactSrList });\n } else if (\n accReactParentDetails.hasOwnProperty(\"RequestStatus\") &&\n [\"Submitted\", \"Approved\", \"InProcess\", \"PendingForEsign\"].includes(\n accReactParentDetails.RequestStatus\n )\n ) {\n this.setState({ childSrList: accReactSrList });\n this.props.stage.setCurrentStage(5);\n this.setState({ currentFlow: [flow.find((x) => x.Stage === 5)] });\n } else if (\n accReactParentDetails.hasOwnProperty(\"RequestStatus\") &&\n (accReactParentDetails.RequestStatus === \"MemorandumPaymentPending\" ||\n accReactParentDetails.RequestStatus === \"EsignVerified\")\n ) {\n this.setState({ childSrList: accReactSrList });\n this.props.stage.setCurrentStage(6);\n this.setState({\n currentFlow: [\n {\n RequestType: \"Memorandum Payment\",\n Stage: 6,\n type: 8,\n },\n ],\n });\n } else {\n const urlSearchParams = new URLSearchParams(\n this.props.location.search\n );\n const params = Object.fromEntries(urlSearchParams.entries());\n this.redirect(\n params.source === \"ajs\"\n ? config.rootUrl + \"clientarea/servicerequest\"\n : config.root + \"/clientarea/service-request\"\n );\n }\n } else {\n if (accReactParentDetails.dormant_type !== \"1\" && consentList.length > 0) {\n consentList.map((consent: any) => {\n let index;\n switch (consent.name) {\n case \"eqIncmDclr\":\n index = flow.findIndex((f: any) => {\n if (f) return f.type === 2;\n });\n consentFlow.push(flow[index]);\n break;\n case \"emailMob\":\n index = flow.findIndex((f: any) => {\n if (f) return f.type === 3;\n });\n consentFlow.push(flow[index]);\n break;\n case \"invAddress\":\n index = flow.findIndex((f: any) => {\n if (f) return f.type === 4;\n });\n consentFlow.push(flow[index]);\n break;\n default:\n break;\n }\n });\n const addressIndex = consentFlow.findIndex((f: any) => {\n if (f) return f.type === 4;\n });\n const bankIndex = consentFlow.findIndex((f: any) => {\n if (f) return f.type === 5;\n });\n\n if (addressIndex >= 0 || bankIndex >= 0) {\n consentFlow.push(\n flow[\n flow.findIndex((f: any) => {\n if (f) return f.type === 6;\n })\n ]\n );\n consentFlow.push(\n flow[\n flow.findIndex((f: any) => {\n if (f) return f.type === 7;\n })\n ]\n );\n }\n consentFlow.sort((a: any, b: any) => a.Stage - b.Stage);\n this.props.stage.setCurrentStage(consentFlow[0].Stage);\n }\n this.setState({\n currentFlow:\n accReactParentDetails.dormant_type !== \"1\" ? consentFlow : flow,\n childSrList: accReactSrList,\n });\n }\n this.props.setLoader(false);\n } catch (err) {\n this.props.setLoader(false);\n this.props.onSubmit(\"createRequestApiError\", {\n content:\n \"There was some problem in raising service request. Please try again later.\",\n headerText: \"New Service Request\",\n });\n }\n }\n\n getchildSrId = (stage: any) => {\n const { childSrList } = this.state;\n const childSr = childSrList.find(\n (child: any) =>\n child.RequestType === flow.find((f) => f.Stage === stage)?.RequestType\n );\n if (childSr?.is_digilocker_flow && !localStorage.getItem(\"rejectFlow\")) {\n localStorage.setItem(\"digieResubmit\", \"Yes\");\n }\n if (childSr) {\n return childSr.RequestId;\n } else {\n return null;\n }\n };\n \n getCKYCId =()=>{\n let childSr = this.state.childSrList.find((x: any) => {if(x.RequestType === \"CKYC Update\") return x});\n return childSr? childSr.RequestId : \"\";\n }\n CurrentForm: any = () => {\n\n const { userData, srId, childSrList, currentFlow, paymentStatus }: any =\n this.state;\n const { onSubmit, showFooter, enableSubmit, setBtnText, stage } =\n this.props;\n const payStatus: any = localStorage.getItem(\"paymentReponse\");\n const payStatus1: any = JSON.parse(payStatus);\n switch (stage.currentStage) {\n case 1:\n return (\n \n );\n case 2:\n return (\n x.RequestType === \"CKYC Update\")\n ? true\n : false\n }\n ckycId ={this.getCKYCId()}\n />\n );\n case 3:\n return (\n \n );\n case 4:\n return (\n \n );\n case 5:\n return (\n \n );\n case 6:\n return (\n \n );\n default:\n break;\n }\n this.props.setLoader(false);\n };\n\n render() {\n const { loader } = this.props;\n const { currentFlow } = this.state;\n return (\n // \n // \n //
    \n <>{currentFlow.length > 0 && }\n );\n }\n}\n\nexport default AccReactivateCont;","import React, { useState } from \"react\";\nimport EdModal from \"./edModal\";\n\nexport const StaticPopup = (props: any) => {\n const [showPopup, setShowPopup] = useState(true);\n const ifscpopup = () => {\n return (\n <>\n
    \n
    \n
    \n
    \n {\n setShowPopup(false);\n props.ShowPopup(false);\n }}\n >\n \n \n
    \n
    \n
    \n

    { props.heading }

    \n
    \n
    \n
    \n
    \n
      \n {props.content.map((content:string) => {\n return ( \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 return (\n <>\n {}} children={ifscpopup()} />\n \n );\n};\n","import React, { useEffect, useRef, useState } from \"react\";\nimport EdModal from \"../../generic/edModal\";\nimport TocDropdown from \"../../generic/tocDropdown\";\nimport { IListObj } from \"../../types/genericTypes\";\nimport { ClevertapService } from \"../../service/clevertapService\";\nimport urlConfig, { config } from \"../../../config/domain\";\nimport { FinalPopupScreen } from \"../generic/finalPopupScreeen\";\nimport { useQuery } from \"../../service/urlHelper\";\nimport {\n GetCKYCValidation,\n getDematAcctValidation,\n GetDepositoryDetails,\n getEquityDormantClientCategoryValidation,\n} from \"../../service/serviceRequest/srApiService\";\nimport Loader, { PageLoader } from \"../../generic/loader\";\nimport { createBrowserHistory } from \"history\";\nimport { getAccData } from \"../../service/login/loginService\";\nimport deviceName from \"../../utils/deviceName\";\nimport browserName from \"../../utils/browserName\";\nimport {\n BankModificationSteps,\n AddrModificationSteps,\n SegmentActivationSteps,\n SegmentDeactivationSteps,\n} from \"./constant\";\nimport { StaticPopup } from \"../../generic/staticPopup\";\nimport moment from \"moment\";\nimport { Idevice } from \"../../types/device\";\nimport DeviceContext from \"../../service/indentifyDevice\";\n\nvar overflowBtnDropdownOptions: Array = [];\n\noverflowBtnDropdownOptions.push(\n {\n value: \"/clientarea/service-request/smtf\",\n display: \"NRML-SMTF Funds Movement Preference\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/segment-deactivation\",\n display: \"Segment Deactivation\",\n isBlocked: false,\n }\n);\n\nvar optionsForSingleHolder = [\n {\n value:\n config.rootUrl + \"clientarea/servicerequest?create-request&selectedVal=7\",\n display: \"New DIS Booklet\",\n isBlocked: false,\n },\n {\n value:\n config.rootUrl + \"clientarea/servicerequest?create-request&selectedVal=8\",\n display: \"DP Scheme Change\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/email-mobile-modification\",\n display: \"Email & Mobile Modification\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/fatcaUpdate\",\n display: \"FATCA Update\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/bank-modification\",\n display: \"Bank Modification\",\n isBlocked: false,\n },\n {\n value:\n config.rootUrl +\n \"clientarea/servicerequest?create-request&selectedVal=10\",\n display: \"Income Declaration\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/segment-activation\",\n display: \"Segment Activation\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/account-closure\",\n display: \"Account Closure\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/address-modification\",\n display: \"Address Modification\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/nomination\",\n display: \"Nomination\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/ddpi\",\n display: \"DDPI\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/ckyc-update\",\n display: \"CKYCUpdate \",\n isBlocked: false,\n },\n];\nvar optionsForNonInd = [\n {\n value:\n config.rootUrl + \"clientarea/servicerequest?create-request&selectedVal=7\",\n display: \"New DIS Booklet\",\n isBlocked: false,\n },\n {\n value:\n config.rootUrl + \"clientarea/servicerequest?create-request&selectedVal=8\",\n display: \"DP Scheme Change\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/email-mobile-modification\",\n display: \"Email & Mobile Modification\",\n isBlocked: true,\n },\n {\n value: \"/clientarea/service-request/fatcaUpdate\",\n display: \"FATCA Update\",\n isBlocked: true,\n },\n {\n value: \"/clientarea/service-request/bank-modification\",\n display: \"Bank Modification\",\n isBlocked: true,\n },\n {\n value:\n config.rootUrl +\n \"clientarea/servicerequest?create-request&selectedVal=10\",\n display: \"Income Declaration\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/segment-activation\",\n display: \"Segment Activation\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/account-closure\",\n display: \"Account Closure\",\n isBlocked: true,\n },\n {\n value: \"/clientarea/service-request/address-modification\",\n display: \"Address Modification\",\n isBlocked: true,\n },\n {\n value: \"/clientarea/service-request/nomination\",\n display: \"Nomination\",\n isBlocked: true,\n },\n {\n value: \"/clientarea/service-request/ddpi\",\n display: \"DDPI\",\n isBlocked: true,\n },\n {\n value: \"/clientarea/service-request/ckyc-update\",\n display: \"CKYCUpdate \",\n isBlocked: true,\n },\n];\nvar optIndMissDp = [\n {\n value:\n config.rootUrl + \"clientarea/servicerequest?create-request&selectedVal=7\",\n display: \"New DIS Booklet\",\n isBlocked: true,\n },\n {\n value:\n config.rootUrl + \"clientarea/servicerequest?create-request&selectedVal=8\",\n display: \"DP Scheme Change\",\n isBlocked: true,\n },\n {\n value: \"/clientarea/service-request/email-mobile-modification\",\n display: \"Email & Mobile Modification\",\n isBlocked: true,\n },\n {\n value: \"/clientarea/service-request/fatcaUpdate\",\n display: \"FATCA Update\",\n isBlocked: true,\n },\n {\n value: \"/clientarea/service-request/bank-modification\",\n display: \"Bank Modification\",\n isBlocked: true,\n },\n {\n value:\n config.rootUrl +\n \"clientarea/servicerequest?create-request&selectedVal=10\",\n display: \"Income Declaration\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/segment-activation\",\n display: \"Segment Activation\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/account-closure\",\n display: \"Account Closure\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/address-modification\",\n display: \"Address Modification\",\n isBlocked: true,\n },\n {\n value: \"/clientarea/service-request/nomination\",\n display: \"Nomination\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/ddpi\",\n display: \"DDPI\",\n isBlocked: true,\n },\n {\n value: \"/clientarea/service-request/ckyc-update\",\n display: \"CKYCUpdate \",\n isBlocked: true,\n },\n];\nvar optIndJointHold = [\n {\n value:\n config.rootUrl + \"clientarea/servicerequest?create-request&selectedVal=7\",\n display: \"New DIS Booklet\",\n isBlocked: false,\n },\n {\n value:\n config.rootUrl + \"clientarea/servicerequest?create-request&selectedVal=8\",\n display: \"DP Scheme Change\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/email-mobile-modification\",\n display: \"Email & Mobile Modification\",\n isBlocked: true,\n },\n {\n value: \"/clientarea/service-request/fatcaUpdate\",\n display: \"FATCA Update\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/bank-modification\",\n display: \"Bank Modification\",\n isBlocked: true,\n },\n {\n value:\n config.rootUrl +\n \"clientarea/servicerequest?create-request&selectedVal=10\",\n display: \"Income Declaration\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/segment-activation\",\n display: \"Segment Activation\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/account-closure\",\n display: \"Account Closure\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/address-modification\",\n display: \"Address Modification\",\n isBlocked: true,\n },\n {\n value: \"/clientarea/service-request/nomination\",\n display: \"Nomination\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/ddpi\",\n display: \"DDPI\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/ckyc-update\",\n display: \"CKYCUpdate \",\n isBlocked: true,\n },\n];\nvar optIndOutsideDp = [\n {\n value:\n config.rootUrl + \"clientarea/servicerequest?create-request&selectedVal=7\",\n display: \"New DIS Booklet\",\n isBlocked: true,\n },\n {\n value:\n config.rootUrl + \"clientarea/servicerequest?create-request&selectedVal=8\",\n display: \"DP Scheme Change\",\n isBlocked: true,\n },\n {\n value: \"/clientarea/service-request/email-mobile-modification\",\n display: \"Email & Mobile Modification\",\n isBlocked: true,\n },\n {\n value: \"/clientarea/service-request/fatcaUpdate\",\n display: \"FATCA Update\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/bank-modification\",\n display: \"Bank Modification\",\n isBlocked: true,\n },\n {\n value:\n config.rootUrl +\n \"clientarea/servicerequest?create-request&selectedVal=10\",\n display: \"Income Declaration\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/segment-activation\",\n display: \"Segment Activation\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/account-closure\",\n display: \"Account Closure\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/address-modification\",\n display: \"Address Modification\",\n isBlocked: true,\n },\n {\n value: \"/clientarea/service-request/nomination\",\n display: \"Nomination\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/ddpi\",\n display: \"DDPI\",\n isBlocked: true,\n },\n {\n value: \"/clientarea/service-request/ckyc-update\",\n display: \"CKYCUpdate \",\n isBlocked: false,\n },\n];\nvar optNRI = [\n {\n value:\n config.rootUrl + \"clientarea/servicerequest?create-request&selectedVal=7\",\n display: \"New DIS Booklet\",\n isBlocked: false,\n },\n {\n value:\n config.rootUrl + \"clientarea/servicerequest?create-request&selectedVal=8\",\n display: \"DP Scheme Change\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/email-mobile-modification\",\n display: \"Email & Mobile Modification\",\n isBlocked: true,\n },\n {\n value: \"/clientarea/service-request/fatcaUpdate\",\n display: \"FATCA Update\",\n isBlocked: true,\n },\n {\n value: \"/clientarea/service-request/bank-modification\",\n display: \"Bank Modification\",\n isBlocked: true,\n },\n {\n value:\n config.rootUrl +\n \"clientarea/servicerequest?create-request&selectedVal=10\",\n display: \"Income Declaration\",\n isBlocked: false,\n },\n {\n value: \"/clientarea/service-request/segment-activation\",\n display: \"Segment Activation\",\n isBlocked: true,\n },\n {\n value: \"/clientarea/service-request/account-closure\",\n display: \"Account Closure\",\n isBlocked: true,\n },\n {\n value: \"/clientarea/service-request/address-modification\",\n display: \"Address Modification\",\n isBlocked: true,\n },\n {\n value: \"/clientarea/service-request/nomination\",\n display: \"Nomination\",\n isBlocked: true,\n },\n {\n value: \"/clientarea/service-request/ddpi\",\n display: \"DDPI\",\n isBlocked: true,\n },\n {\n value: \"/clientarea/service-request/ckyc-update\",\n display: \"CKYCUpdate \",\n isBlocked: true,\n },\n];\n\nconst msgForBlockSRByCategory: {\n [key: string]: any;\n} = {\n \"Individual Outside DP\":\n \" You are having an external demat account linked to your trading account. This feature is available only for Resident Individual clients having both trading and demat account with us. Please reach out to your RM or call servicing team 18001023335 for further assistance.\",\n \"Individual Missing DP Details\":\n \"It seems you do not have a demat account linked to your trading account. You need to have a demat account linked to your trading account to use this feature. Please reach out to your RM or call servicing team 18001023335.\",\n \"Individual Joint Holder\":\n \"You are having a joint holder demat account. This feature is available only for Resident Individual Single demat account holders. Please reach out to your RM or call servicing team 18001023335.\",\n NRI: \"You are an NRI customer. This feature is available only for Resident Individual clients having both trading and demat account with us. Please reach out to your RM or call servicing team 18001023335.\",\n \"Non Individual\":\n \"Your account is of non-individual category. This feature is available only for Resident Individual clients having both trading and demat account with us. Please reach out to your RM or call servicing team 18001023335.\",\n};\n\nvar totalStage = [\n \"Profile Details\",\n \"Address Details\",\n \"Bank Details\",\n window.localStorage.getItem(\"digiAuthKey\") ? \"Document Upload \": \"Document Upload & Video IPV\",\n \"E-sign\",\n];\nconst device: String = deviceName();\nconst deviceType: Idevice = DeviceContext();\n\nexport const SRLayout = (props: any) => {\n const source = useQuery().get(\"source\");\n const incomeDropdown = useQuery().get(\"incomeConsent\");\n const addressConsent = useQuery().get(\"consent\");\n const consentType = useQuery().get(\"consentType\");\n const history = createBrowserHistory({ forceRefresh: true });\n const compDet = useRef();\n const [showFinalPopup, setShowFinalPopup] = useState(false);\n const [poaFlagLoader, setPOAFlagLoader] = useState(true);\n const [popupData, setPopupData] = useState({});\n const [srDropdown, setSrDropdown] = useState(false);\n const [showModel, setShowModel] = useState(true);\n const [enableSubmit, setEnableSubmit] = useState(false);\n const [btnText, setBtnText] = useState(\"Submit\");\n const [showFooter, setShowFooter] = useState(false);\n const [currentStage, setCurrentStage] = useState(1);\n const [rightSideSec, setRightSideSec] = useState();\n const [accountCategory, setAccountCategory] = useState(\"\");\n const [parentLoader, setParentLoader] = useState(false);\n const [SROptions, setSROptions] = useState>([]);\n const [stepsPopup, setStepsPopup] = useState(false);\n\n const clevertapService = new ClevertapService();\n\n const consentList = getAccData(\"cnsntLst\")\n ? getAccData(\"cnsntLst\")\n : JSON.parse(localStorage.getItem(\"cnsntLst\") || \"{}\");\n const initalValueSet = () => {\n setPOAFlagLoader(true);\n if (window.location.href.includes(\"account-reactivation\")) {\n overflowBtnDropdownOptions.push(\n {\n value: \"/clientarea/service-request/open\",\n display: \"Select Request Type\",\n },\n {\n value: \"/clientarea/service-request/account-reactivation\",\n display: \"Account Reactivation\",\n }\n );\n\n //Adding this line to fix this removing delay in update dropdown.\n setSROptions(overflowBtnDropdownOptions);\n }\n if (window.location.href.includes(\"ckyc-update\")) {\n overflowBtnDropdownOptions.push(\n {\n value: \"/clientarea/service-request/open\",\n display: \"Select Request Type\",\n },\n {\n value: \"/clientarea/service-request/ckyc-update\",\n display: \"CKYC Update\",\n }\n );\n //Adding this line to fix this removing delay in update dropdown.\n setSROptions(overflowBtnDropdownOptions);\n }\n };\n const setCkycOption = async () => {\n let ckycResp = await GetCKYCValidation();\n if (typeof ckycResp == \"string\" && ckycResp.match(\"No\")) {\n overflowBtnDropdownOptions.push({\n value: \"/clientarea/service-request/ckyc-update\",\n display: \"CKYC Update\",\n isBlocked: false,\n });\n }\n };\n\n const setOptForNonImpersUser = async () => {\n const clientCategoryRes = await getEquityDormantClientCategoryValidation();\n setAccountCategory(clientCategoryRes[0]?.AccountCategory);\n if (\n clientCategoryRes &&\n clientCategoryRes.length > 0 &&\n clientCategoryRes[0].AccountCategory === \"Individual SingleHolder\"\n ) {\n overflowBtnDropdownOptions.push(...optionsForSingleHolder);\n } else if (\n clientCategoryRes &&\n clientCategoryRes.length > 0 &&\n clientCategoryRes[0].AccountCategory === \"NRI\"\n ) {\n overflowBtnDropdownOptions.push(...optNRI);\n } else if (\n clientCategoryRes &&\n clientCategoryRes.length > 0 &&\n clientCategoryRes[0].AccountCategory === \"Individual Missing DP Details\"\n ) {\n overflowBtnDropdownOptions.push(...optIndMissDp);\n } else if (\n clientCategoryRes &&\n clientCategoryRes.length > 0 &&\n clientCategoryRes[0].AccountCategory === \"Individual JointHolder\"\n ) {\n overflowBtnDropdownOptions.push(...optIndJointHold);\n } else if (\n clientCategoryRes &&\n clientCategoryRes.length > 0 &&\n clientCategoryRes[0].AccountCategory === \"Individual Outside DP\"\n ) {\n overflowBtnDropdownOptions.push(...optIndOutsideDp);\n } else if (\n clientCategoryRes &&\n clientCategoryRes.length > 0 &&\n clientCategoryRes[0].AccountCategory === \"Non Individual\"\n ) {\n overflowBtnDropdownOptions.push(...optionsForNonInd);\n }\n let response = await GetDepositoryDetails();\n\n if (getAccData(\"accTyp\") === \"CO\") {\n overflowBtnDropdownOptions = overflowBtnDropdownOptions.filter(\n (ele: any) =>\n ![\n \"Income Declaration\",\n \"Segment Activation\",\n \"New DIS Booklet\",\n \"DP Scheme Change\",\n ].includes(ele.display)\n );\n }\n if (response && response.dPIdField && response.dPAccountNumberField) {\n let check_val = response.dPIdField + response.dPAccountNumberField;\n let AccountCheck = await getDematAcctValidation(check_val);\n if (!AccountCheck) {\n overflowBtnDropdownOptions = overflowBtnDropdownOptions.filter(\n (ele: any) => {\n return (\n ele.display !== \"New DIS Booklet\" &&\n ele.display !== \"DP Scheme Change\"\n );\n }\n );\n }\n }\n };\n useEffect(() => {\n if (SROptions.length > 1) setPOAFlagLoader(false);\n }, [SROptions]);\n\n async function blockSR() {\n initalValueSet();\n await setCkycOption();\n const ImpersonateUser = window.localStorage.getItem(\"isImpersonated\")\n ? true\n : false;\n if (!ImpersonateUser) {\n await setOptForNonImpersUser();\n }\n if (\n consentList &&\n consentList.length > 0 &&\n consentList.find((list: any) => [\"accReact\"].includes(list.name))\n ) {\n overflowBtnDropdownOptions = overflowBtnDropdownOptions.filter(\n (ele: any) =>\n ![\n \"Email & Mobile Modification\",\n \"Address Modification\",\n \"FATCA Update\",\n \"CKYC Update\",\n \"Income Declaration\",\n ].includes(ele.display)\n );\n }\n\n overflowBtnDropdownOptions = overflowBtnDropdownOptions.sort(\n (a: any, b: any) => {\n if (a.key == b.key) return 0;\n if (a.key == \"Select Request Type\") return -1;\n if (b.key == \"Select Request Type\") return 1;\n\n if (a.key < b.key) return -1;\n if (a.key > b.key) return 1;\n return 0;\n }\n );\n overflowBtnDropdownOptions.splice(0, 0, {\n value: \"/clientarea/service-request/open\",\n display: \"Select Request Type\",\n });\n setSROptions(overflowBtnDropdownOptions);\n }\n\n function redirectToAngularSites(value: any) {\n setPOAFlagLoader(true);\n window.location.href = value;\n }\n\n React.useEffect(() => {\n window.document.body.style.overflow = \"hidden\";\n blockSR();\n }, []);\n React.useEffect(() => {\n if (!showModel) {\n props.history.push(\"/clientarea/service-request\");\n window.location.reload();\n }\n }, [showModel]);\n\n React.useEffect(() => {\n if (currentStage === 6) {\n totalStage.push(\"Pending Debit\");\n }\n }, [currentStage]);\n\n const handleSubmit = (val: any, obj: any) => {\n setShowFinalPopup(true);\n setPopupData(obj);\n };\n const onSubmit = () => {\n var comp: any = compDet?.current;\n comp.submitData(btnText);\n };\n\n const getStepsHeader = () => {\n var header = null;\n if (window.location.href.includes(\"address-modification\"))\n header = AddrModificationSteps.heading;\n else if (window.location.href.includes(\"bank-modification\"))\n header = BankModificationSteps.heading;\n else if (window.location.href.includes(\"segment-deactivation\"))\n header = SegmentDeactivationSteps.heading;\n else if (window.location.href.includes(\"segment-activation\"))\n header = SegmentActivationSteps.heading;\n return header;\n };\n const triggerClvrTap = (type: string) => {\n var data = {\n EventName: \"Successful_SR\",\n InitiationElement: \"SrLayout_Popup_Close\",\n InitiationScreen: window.location.pathname,\n LoginType: \"Traditional\",\n SrType: type,\n currentTime: moment().format(\"DD/MM/YYYY HH:mm:ss\"),\n Platform: window.localStorage.getItem(\"lgnSrc\")\n ? window.localStorage.getItem(\"lgnSrc\")\n : deviceType.isMobile\n ? \"Website_Mobile\"\n : \"Website_Desktop\",\n };\n clevertapService.pushEvent(data);\n };\n\n const getStepsContent = () => {\n var content = null;\n if (window.location.href.includes(\"address-modification\"))\n content = AddrModificationSteps.content;\n else if (window.location.href.includes(\"bank-modification\"))\n content = BankModificationSteps.content;\n else if (window.location.href.includes(\"segment-deactivation\"))\n content = SegmentDeactivationSteps.content;\n else if (window.location.href.includes(\"segment-activation\"))\n content = SegmentActivationSteps.content;\n return content;\n };\n\n function ModalBody(): React.ReactElement {\n if (showFinalPopup) {\n return (\n
    \n
    \n
    \n
    \n {\n let nomineePopup = localStorage.getItem(\"mandatePopup\");\n if (nomineePopup == \"nominee\")\n localStorage.removeItem(\"mandatePopup\");\n if (\n popupData?.popupType &&\n popupData.popupType === \"Success\"\n )\n triggerClvrTap(popupData.type?.replace(\" \", \"_\"));\n }}\n >\n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n );\n } else\n return (\n <>\n \n
    \n
    \n

    New Service Request

    \n {!(\n currentStage !== 5 &&\n ((consentType &&\n (consentType?.includes(\"email\") ||\n consentType?.includes(\"nominee\") ||\n consentType?.includes(\"mobile\") ||\n consentType?.includes(\"emailMob\"))) ||\n addressConsent?.includes(\"Change of Address\"))\n ) && (\n {\n window.localStorage.removeItem(\"digie\");\n window.localStorage.removeItem(\"digieResubmit\");\n window.localStorage.removeItem(\"rejectFlow\");\n window.localStorage.removeItem(\"srId\");\n window.localStorage.removeItem(\"\");\n }}\n className=\"cancel\"\n >\n \n \n )}\n
    \n {(window.location.href.includes(\"account-closure\") ||\n window.location.href.includes(\"ddpi\")\n ? parentLoader\n : window.location.href.includes(\"bank-modification\")\n ? poaFlagLoader || parentLoader\n : poaFlagLoader) && (\n
    \n \n
    \n )}\n {\n
    \n \n
    \n\n
    \n \n \n\n 0\n ? SROptions.find(\n (value: any) =>\n value.value === props.location.pathname\n )\n ? props.location.pathname\n : SROptions && SROptions[0].value\n : \"\"\n }\n dropdownOptions={\n !props.location.pathname.includes(\"open\")\n ? SROptions?.filter((ele: any, i: any) => {\n return i !== 0;\n })\n : SROptions\n }\n onSelect={(selVal: any) => {\n if (selVal) {\n SROptions.find((value: any) => {\n if (value.value === selVal) {\n if (value.isBlocked) {\n handleSubmit(\"srBlockedErr\", {\n headerText:\n msgForBlockSRByCategory.hasOwnProperty(\n accountCategory\n )\n ? msgForBlockSRByCategory[\n accountCategory\n ]\n : \"This option is available to Individual category of customers. Please reach out to your RM or call servicing team on 18001023335.\",\n });\n } else {\n console.log(\"else\");\n if (selVal.includes(config.rootUrl))\n redirectToAngularSites(selVal);\n else props.history.push(selVal);\n }\n }\n });\n }\n setRightSideSec(\"\");\n }}\n disabled={\n incomeDropdown === \"incomeSRDropDown\" ||\n consentType?.includes(\"email\") ||\n consentType?.includes(\"nominee\") ||\n consentType?.includes(\"mob\")\n ? true\n : srDropdown\n }\n isSearchable={false}\n />\n
    \n {rightSideSec && (\n \n {rightSideSec}\n
    \n )}\n {window.location.href.includes(\"account-reactivation\") ? (\n
    \n
    \n
    \n
      \n {totalStage.map((stage, index) => {\n if (index !== 2) {\n if (currentStage - 1 >= index) {\n return (\n
    • \n \n
    • \n );\n } else {\n return
    • ;\n }\n }\n })}\n
    \n
    \n\n
    \n

    \n {totalStage[currentStage - 1]}\n

    \n
    \n
    \n
    \n ) : window.location.href.includes(\n \"address-modification\"\n ) ||\n window.location.href.includes(\"bank-modification\") ||\n window.location.href.includes(\"segment-deactivation\") ||\n window.location.href.includes(\"segment-activation\") ? (\n
    \n
    \n {\n e.preventDefault();\n setStepsPopup(true);\n }}\n >\n {getStepsHeader()}\n \n
    \n
    \n ) : (\n
    \n )}\n \n {stepsPopup && (\n \n )}\n {props.component && (\n setSrDropdown(val)}\n ref={compDet}\n loader={poaFlagLoader}\n setLoader={setPOAFlagLoader}\n setParLoader={setParentLoader}\n parentLoader={parentLoader}\n acntCategory={accountCategory}\n enableSubmit={(val: any) => {\n setEnableSubmit(val);\n }}\n showFooter={(val: any) => {\n setShowFooter(val);\n }}\n setBtnText={(val: any) => {\n setBtnText(val);\n }}\n stage={{ currentStage, setCurrentStage }}\n rightDiv={setRightSideSec}\n {...props}\n />\n )}\n \n {(window.location.href.includes(\n \"email-mobile-modification\"\n ) ||\n window.location.href.includes(\"nomination\") ||\n window.location.href.includes(\"fatcaUpdate\") ||\n window.location.href.includes(\"ckyc-update\") ||\n window.location.href.includes(\"income-declaration\") ||\n window.location.href.includes(\"account-closure\")) &&\n showFooter && (\n \n
    \n {\n onSubmit();\n e.preventDefault();\n }}\n >\n {btnText}\n \n {!consentType?.includes(\"nominee\") && (\n \n \n Cancel\n \n \n )}\n
    \n \n )}\n \n }\n \n \n \n );\n }\n return (\n {}}\n children={ModalBody()}\n />\n );\n};\n","import React, { useState } from \"react\";\nimport { useHistory } from \"react-router\";\nimport { config } from \"../../../../config/domain\";\nimport { useQuery } from \"../../../service/urlHelper\";\n\nexport const PaymentResponse = (props: any) => {\n const urlSearchParams = new URLSearchParams(useHistory().location.search);\n const params = Object.fromEntries(urlSearchParams.entries());\n localStorage.setItem(\"paymentReponse\", params.status);\n function redirect(url: string) {\n if (url.indexOf(\"http://\") === 0 || url.indexOf(\"https://\") === 0) {\n // If url is absolute\n window.location.href = url;\n }\n }\n redirect(config.root + \"app/clientarea/service-request/account-reactivation\");\n return <>;\n};\n","export const TYPE = [\n {\n id: 1,\n name: \"Nominee\",\n fieldName: \"nominee\",\n },\n {\n id: 2,\n name: \"Guardian\",\n fieldName: \"guardian\",\n },\n];\nexport const Titles = [\n {\n value: \"\",\n display: \"Select\",\n },\n {\n display: \"Mr.\",\n value: \"Mr.\",\n },\n {\n display: \"Ms\",\n value: \"Ms\",\n },\n {\n display: \"Mrs\",\n value: \"Mrs\",\n },\n {\n display: \"Miss\",\n value: \"Miss\"\n },\n {\n display: \"Dr.\",\n value: \"Dr.\",\n },\n];\nexport const applicantRelationships = [\n {\n display: \"Select Relationship\",\n value: \"\",\n code: \"\",\n },\n {\n display: \"Brother\",\n value: \"Brother\",\n code: \"6\",\n },\n {\n display: \"Daughter\",\n value: \"Daughter\",\n code: \"3\",\n },\n {\n display: \"Father\",\n value: \"Father\",\n code: \"4\",\n },\n {\n display: \"Granddaughter\",\n value: \"Granddaughter\",\n code: \"9\",\n },\n {\n display: \"Grandfather\",\n value: \"Grandfather\",\n code: \"10\",\n },\n {\n display: \"Grandmother\",\n value: \"Grandmother\",\n code: \"11\",\n },\n {\n display: \"Grandson\",\n value: \"Grandson\",\n code: \"8\",\n },\n {\n display: \"Mother\",\n value: \"Mother\",\n code: \"5\",\n },\n {\n display: \"Sister\",\n value: \"Sister\",\n code: \"7\",\n },\n {\n display: \"Son\",\n value: \"Son\",\n code: \"2\",\n },\n {\n display: \"Spouse\",\n value: \"Spouse\",\n code: \"1\",\n },\n {\n display: \"Not Provided\",\n value: \"Not Provided\",\n code: \"12\",\n },\n {\n display: \"Others\",\n value: \"Others\",\n code: \"13\",\n },\n];\n\nexport const NOOFNOMINEE = [\n {\n display: \"1\",\n value: 1,\n },\n {\n display: \"2\",\n value: 2,\n },\n { display: \"3\", value: 3 },\n];\nexport const identificationOptions = [\n { value: \"\", display: \"Select Identification Details\", show: \"\" },\n\n {\n display: \"Photograph & Signature\",\n value: \"Photograph & Signature\",\n show: \"\",\n },\n {\n display: \"PAN\",\n value: \"pan\",\n show: \"Pan Number\",\n },\n {\n display: \"Aadhar number\",\n value: \"aadhar\",\n show: \"Aadhar Number (last 4 digits only)\",\n },\n {\n display: \"Saving bank account number\",\n value: \"bankAcc\",\n show: \"Saving Bank Account Number\",\n },\n {\n display: \"Demat account Id\",\n value: \"dpId\",\n show: \"Demat account Id\",\n },\n {\n display: \"Proof of identity\",\n value: \"Proof of identity\",\n show: \"\",\n },\n];\nexport const idType = [\n { display: \"pan\", value: \"PAN\" },\n { display: \"Photograph & Signature\", value: \"PhotographAndSignature\" },\n { display: \"aadhar\", value: \"Aadhaar\" },\n { display: \"bankAcc\", value: \"SavingBankAccountNo\" },\n { display: \"Proof of identity\", value: \"ProofofIdentity\" },\n { display: \"dpId\", value: \"DematAccountID\" },\n];\nexport const Required = [\n \"title\",\n \"firstName\",\n \"address.addr1\",\n \"address.pin\",\n \"birthdate\",\n \"nomRel\",\n];\nexport const ValidationFields = [\n \"title\",\n \"firstName\",\n \"middleName\",\n \"lastName\",\n \"address.addr1\",\n \"address.addr2\",\n \"address.addr3\",\n \"address.addr4\",\n \"address.pin\",\n \"birthdate\",\n \"nomRel\",\n \"email\",\n \"phone\",\n];\nexport const identityProofOptions = [\n { value: \"\", display: \"Select Proof of Identity\" },\n { value: \"Aadhar\", display: \"Aadhar Card\" },\n { value: \"DrivingLicense\", display: \"Driving License\" },\n { value: \"NREGAJobCard\", display: \"NREGA Job Card\" },\n { value: \"Passport\", display: \"Passport\" },\n { value: \"VotersId\", display: \"Voters Id\" },\n];\nexport const NOMINEE = {\n firstName: \"\",\n middleName: \"\",\n lastName: \"\",\n title: Titles[0].value,\n address: {\n addr1: \"\",\n addr2: \"\",\n addr3: \"\",\n addr4: \"\",\n city: \"\",\n state: \"\",\n pin: \"\",\n },\n phone: \"\",\n email: \"\",\n minor: false,\n guardian: false,\n birthdate: \"\",\n nomPer: \"100\",\n nomRel: \"\",\n aadhar: \"\",\n bankAcc: \"\",\n pan: \"\",\n dpId: \"\",\n idTyp: \"\",\n attachment: {},\n};\nexport const areaErrorString = \"Area not exist.\";\nexport const finalPayload = {\n acTyp: \"\",\n dpId: \"\", //selected dpid to which we ll replicate\n trdOpt: false,\n dpOpt: false,\n trdUpd: false, // if user is updating nominee to trading account\n dpUpd: false,\n attachments: [],\n nominees: [],\n};\nexport const NOMINEEERROR = {\n firstName: undefined,\n middleName: undefined,\n lastName: undefined,\n guarName: undefined,\n sameName: undefined,\n title: undefined,\n address: {\n addr1: undefined,\n addr2: undefined,\n addr3: undefined,\n addr4: undefined,\n pin: undefined,\n },\n phone: undefined,\n email: undefined,\n birthdate: undefined,\n nomPer: undefined,\n nomRel: undefined,\n};\n\nexport const AREAOPTIONSTATUS = {\n display: \"Select area\",\n value: \"Select area\",\n};\n\nexport const Relationship = [\n {\n value: \"Select Relationship Details\",\n display: \"Select Relationship Details\",\n },\n {\n value: \"Spouse\",\n display: \"Spouse\",\n },\n {\n value: \"Son\",\n display: \"Son\",\n },\n {\n value: \"Daughter\",\n display: \"Daughter\",\n },\n {\n value: \"Father\",\n display: \"Father\",\n },\n {\n value: \"Mother\",\n display: \"Mother\",\n },\n];\n\nexport const ageCalculator = (date) => {\n const birth = new Date(date);\n const check = new Date();\n const milliDay = 1000 * 60 * 60 * 24; // a day in milliseconds;\n const ageInDays = (check - birth) / milliDay;\n const age = Math.floor(ageInDays / 365);\n return age;\n};\n\nexport const toCamelCase = (string) => {\n return string.replace(/\\w\\S*/g, function (txt) {\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\n });\n};\n\nexport const getNestedValue = (x, nominee) => {\n let temp;\n x.split(\".\").map((u) => {\n if (temp) temp = temp[u];\n else temp = nominee[u];\n });\n return temp;\n};\n","import React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useState,\n} from \"react\";\nimport InputField from \"../../../../generic/inputField\";\nimport TocDropdown from \"../../../../generic/tocDropdown\";\nimport { getMergeDocumentBase64 } from \"../../../../service/serviceRequest/srApiService\";\nimport { pan, PersonPan } from \"../../../../utils/regex\";\nimport { FileUploadSection } from \"../../../generic/fileUploadSection\";\nimport { getMaskedAdhar, getQCChecked } from \"../../../generic/qCCheck\";\nimport sampleSignature from \"../../../../../assets/images/Sample-signature-image.png\";\nimport {\n identificationOptions,\n identityProofOptions,\n idType,\n} from \"./constant\";\nimport EdModal from \"../../../../generic/edModal\";\n\nexport const IdentifDet = forwardRef((props: any, ref: any) => {\n const [dropDownlownValue, setDropDownValueChanged] = useState(false);\n const [frontBack, setFrontBack] = useState(false);\n const [selectedProof, setSelectedProof] = useState(\"\");\n // const [viewSampleImage, setViewSampleImage] = useState(false);\n const [identificationDetails, setIdentificationDetails] = useState({\n identity: \"\",\n identificationText: \"\",\n photoDocs: {},\n signDocs: {},\n proofOfIdentityDocs: {},\n backProofOfIdentityDocs: {},\n });\n const [personaldetails, setPersonaldetails] = useState({\n pan: \"\",\n addhar: \"\",\n bankAcc: \"\",\n dpId: \"\",\n });\n\n const getMaskBase64Data = async function (needMaskObj: any) {\n let maskBase64ForFront: any;\n if (needMaskObj.docType === \"Aadhar\") {\n let maskObj = {\n proof: needMaskObj.docType,\n accountCode: props.accountCode,\n fileData: needMaskObj.data,\n };\n try {\n maskBase64ForFront = await getMaskedAdhar(maskObj);\n } catch (e) {\n console.log(e);\n maskBase64ForFront = needMaskObj.data;\n }\n } else {\n maskBase64ForFront = needMaskObj.data;\n }\n return maskBase64ForFront ? maskBase64ForFront : needMaskObj.data; //if mask adhar fail right now return original base 64\n };\n const getMergeDocument = async (uploadImageObj: any) => {\n let attachment: any;\n let mergerResp = await getMergeDocumentBase64(uploadImageObj);\n if (mergerResp) {\n let fileArray = [\n \"merge_document\",\n props.type.id === 1 ? \"04\" : \"05\",\n \"0\" + (props.id + 1),\n ];\n attachment = {\n nm: fileArray.join(\"_\").concat(\".pdf\"),\n data: mergerResp,\n docType:\n identificationDetails.identity === \"Photograph & Signature\"\n ? \"PhotographAndSignature\"\n : selectedProof,\n docCat: identificationDetails.identity,\n qcFlag: false,\n };\n return attachment;\n }\n return false;\n };\n const getAutoQcDetail = async function (checkedObj: any, attachment: any) {\n if (checkedObj.address && checkedObj.fullName && checkedObj.fileData) {\n let resp = await getQCChecked(checkedObj);\n attachment.qcFlag = resp;\n } else {\n attachment.qcFlag = attachment.qcFlag;\n }\n };\n const mergeDocuments = async (identificationDetails: any) => {\n let attachment = {\n nm: \"\",\n data: \"\",\n docType: \"\",\n docCat: \"\",\n qcFlag: false,\n };\n let uploadImageObj: any;\n if (\n identificationDetails &&\n identificationDetails.proofOfIdentityDocs &&\n identificationDetails.proofOfIdentityDocs.nm &&\n identificationDetails.proofOfIdentityDocs.data\n ) {\n props.setLoader(true);\n await getMaskBase64Data({\n docType: identificationDetails.proofOfIdentityDocs.docType,\n accountCode: props.accountCode,\n data: identificationDetails.proofOfIdentityDocs.data,\n }).then(async (image1Resp) => {\n if (\n identificationDetails.backProofOfIdentityDocs &&\n identificationDetails.backProofOfIdentityDocs.nm &&\n identificationDetails.backProofOfIdentityDocs.data\n ) {\n const image2Resp = await getMaskBase64Data({\n docType: identificationDetails.backProofOfIdentityDocs.docType,\n accountCode: props.accountCode,\n data: identificationDetails.backProofOfIdentityDocs.data,\n });\n if (image2Resp) {\n uploadImageObj = {\n applicationId: props.accountCode,\n image1: image1Resp,\n image2: image2Resp,\n imagename1: identificationDetails.proofOfIdentityDocs.nm,\n imagename2: identificationDetails.backProofOfIdentityDocs.nm,\n };\n attachment = await getMergeDocument(uploadImageObj);\n }\n } else {\n if (image1Resp) {\n attachment = {\n nm: identificationDetails.proofOfIdentityDocs.nm,\n data: image1Resp,\n docType: identificationDetails.proofOfIdentityDocs.docType,\n docCat: identificationDetails.identity,\n qcFlag: false,\n };\n }\n }\n });\n } else if (\n identificationDetails &&\n identificationDetails.photoDocs &&\n identificationDetails.photoDocs.data &&\n identificationDetails.photoDocs.nm &&\n identificationDetails.signDocs &&\n identificationDetails.signDocs.data &&\n identificationDetails.signDocs.nm\n ) {\n props.setLoader(true);\n uploadImageObj = {\n applicationId: props.accountCode,\n image1: identificationDetails.photoDocs.data,\n image2: identificationDetails.signDocs.data,\n imagename1: identificationDetails.photoDocs.nm,\n imagename2: identificationDetails.signDocs.nm,\n };\n attachment = await getMergeDocument(uploadImageObj);\n localStorage.setItem(\"signature\",attachment?.data)\n }\n await getAutoQcDetail(\n {\n addressProof: attachment.docType,\n fileData: attachment.data,\n accountCode: props.accountCode,\n address: props.nominee.address,\n fullName: props.nominee.name,\n },\n attachment\n );\n\n if (attachment.data != \"\") {\n props.onChange({ attachment });\n }\n props.setLoader(false);\n };\n\n const handleSubmitForDocument = (fileDetails: any, type?: any) => {\n setDropDownValueChanged(false);\n let docs: any = [];\n let fileSplitArray = fileDetails.docFile.split(\".\"),\n fileName = [\n fileSplitArray[0],\n props.type.id === 1 ? \"04\" : \"05\",\n \"0\" + (props.id + 1),\n ];\n let fileObj: any;\n if (fileDetails && fileDetails.docFile && fileDetails.base64Data) {\n props.setNomineeErr({ ...props.nomineeErr, attachment: \"\" });\n fileObj = {\n nm: fileName.join(\"_\").concat(\".\" + fileSplitArray[1]),\n data: fileDetails.base64Data.split(\",\")[1],\n docType:\n identificationDetails.identity === \"Photograph & Signature\" && type\n ? \"PhotographAndSignature\"\n : selectedProof,\n };\n // if (\n // !(identificationDetails.identity === \"Photograph & Signature\" && type)\n // )\n // docs.push(fileObj);\n }\n setIdentificationDetails({\n ...identificationDetails,\n [`${type}`]: fileObj ? fileObj : {},\n });\n };\n useEffect(() => {\n console.log(identificationDetails);\n mergeDocuments(identificationDetails);\n }, [identificationDetails]);\n\n useEffect(() => {\n if (identificationDetails.identity && props.updateIdentity) {\n props.updateIdentity(identificationDetails.identity);\n }\n }, [identificationDetails.identity]);\n\n function suggestMaxLength() {\n if (identificationDetails.identity === \"pan\") return 10;\n else if (identificationDetails.identity === \"aadhar\") return 4;\n else if (identificationDetails.identity === \"bankAcc\") return 18;\n else if (identificationDetails.identity === \"dpId\") return 16;\n }\n useImperativeHandle(ref, () => ({\n hasError(value: any) {\n // alert(\"getAlert from Child\");\n return heandelIdentificationValidation(value, true);\n },\n }));\n\n function heandelIdentificationValidation(value: any, checkOnlyErr?: boolean) {\n let identit = identificationDetails.identity;\n if (identit === \"pan\") {\n if (!value) {\n if (!checkOnlyErr)\n props.setNomineeErr({\n ...props.nomineeErr,\n [identit]: \"Pan is required\",\n });\n if (checkOnlyErr) return \"Pan is required\";\n } else if (value.length < 10 || !PersonPan.test(value)) {\n if (!checkOnlyErr)\n props.setNomineeErr({\n ...props.nomineeErr,\n [identit]: \"Please enter a valid pan\",\n });\n if (checkOnlyErr) return \"Please enter a valid pan\";\n } else if (value === props.userPan) {\n if (!checkOnlyErr)\n props.setNomineeErr({\n ...props.nomineeErr,\n [identificationDetails.identity]:\n \"Account holder's pan and nominee pan can not be same\",\n });\n if (checkOnlyErr)\n return \"Account holder's pan and nominee pan can not be same\";\n } else {\n props.setNomineeErr({\n ...props.nomineeErr,\n [identit]: \"\",\n });\n if (checkOnlyErr) return false;\n }\n } else if (identit === \"aadhar\") {\n if (!value) {\n if (!checkOnlyErr)\n props.setNomineeErr({\n ...props.nomineeErr,\n [identit]: \"Aadhar is required\",\n });\n if (checkOnlyErr) return \"Aadhar is required\";\n } else if (value.length < 4) {\n if (!checkOnlyErr)\n props.setNomineeErr({\n ...props.nomineeErr,\n [identit]: \"Please enter last 4 digits of aadhar\",\n });\n if (checkOnlyErr) return \"Please enter last 4 digits of aadhar\";\n } else {\n props.setNomineeErr({\n ...props.nomineeErr,\n [identit]: \"\",\n });\n if (checkOnlyErr) return false;\n }\n } else if (identit === \"bankAcc\") {\n // let holderDpId = \"123456789\";\n if (!value) {\n if (!checkOnlyErr)\n props.setNomineeErr({\n ...props.nomineeErr,\n [identit]: \"Bank account is required\",\n });\n if (checkOnlyErr) return \"Bank account is required\";\n } else if (!(value.length >= 8 && value.length <= 18)) {\n if (!checkOnlyErr)\n props.setNomineeErr({\n ...props.nomineeErr,\n [identificationDetails.identity]:\n \"Please enter a valid Bank Account No.\",\n });\n if (checkOnlyErr) return \"Please enter a valid Bank Account No.\";\n } else if (value.length < 8) {\n if (!checkOnlyErr)\n props.setNomineeErr({\n ...props.nomineeErr,\n [identificationDetails.identity]:\n \"Please enter a correct bank account\",\n });\n if (checkOnlyErr) return \"Please enter a correct bank account\";\n } else {\n props.setNomineeErr({\n ...props.nomineeErr,\n [identit]: \"\",\n });\n if (checkOnlyErr) return false;\n }\n } else if (identit === \"dpId\") {\n if (!value) {\n if (!checkOnlyErr)\n props.setNomineeErr({\n ...props.nomineeErr,\n [identit]: \"Demat account is required\",\n });\n if (checkOnlyErr) return \"Demat account is required\";\n } else if (value.length !== 16) {\n if (!checkOnlyErr)\n props.setNomineeErr({\n ...props.nomineeErr,\n [identificationDetails.identity]: \"Please enter a valid DpId.\",\n });\n if (checkOnlyErr) return \"Please enter a valid DpId.\";\n } else if (value === personaldetails.dpid) {\n if (!checkOnlyErr)\n props.setNomineeErr({\n ...props.nomineeErr,\n [identit]: \"Account holder DpId and Nominee DpId cannot be same.\",\n });\n if (checkOnlyErr)\n return \"Account holder DpId and Nominee DpId cannot be same.\";\n } else {\n props.setNomineeErr({\n ...props.nomineeErr,\n [identit]: \"\",\n });\n if (checkOnlyErr) return false;\n }\n }\n }\n\n const getIdentText = (val: string) => {\n return idType.find((ele: any) => {\n if (ele.display == val) return ele;\n })?.value;\n };\n\n return (\n <>\n
    \n
    \n
    \n \n {\n if (val)\n setIdentificationDetails({\n ...identificationDetails,\n identity: val,\n idTyp: getIdentText(val),\n photoDocs: {},\n signDocs: {},\n proofOfIdentityDocs: {},\n backProofOfIdentityDocs: {},\n });\n props.onChange({\n aadhar: \"\",\n bankAcc: \"\",\n pan: \"\",\n dpId: \"\",\n idTyp: getIdentText(val),\n attachment: {},\n });\n props.setNomineeErr({ ...props.nomineeErr, identity: \"\" });\n setDropDownValueChanged(true);\n }}\n isSearchable={false}\n />\n {props.nomineeErr.identity !== \"\" &&\n props.nomineeErr.identity !== undefined && (\n

    {props.nomineeErr.identity}

    \n )}\n
    \n {identificationDetails.identity === \"Proof of identity\" && (\n <>\n
    \n \n {\n if (val) {\n setIdentificationDetails({\n ...identificationDetails,\n photoDocs: {},\n signDocs: {},\n proofOfIdentityDocs: {},\n backProofOfIdentityDocs: {},\n });\n setSelectedProof(val);\n setDropDownValueChanged(true);\n setFrontBack(false);\n }\n }}\n isSearchable={false}\n />\n {!selectedProof &&\n identificationDetails.identity === \"Proof of identity\" &&\n props.nomineeErr.attachment && (\n

    \n Please select Proof of Identity\n

    \n )}\n
    \n \n )}\n\n {identificationDetails.identity !== \"Photograph & Signature\" &&\n identificationDetails.identity !== \"Proof of identity\" &&\n identificationDetails.identity && (\n
    \n \n {\n if (identificationText) {\n if (\n identificationDetails.identity &&\n identificationDetails.identity === \"pan\"\n )\n identificationText = identificationText\n .toString()\n .toUpperCase();\n props.onChange({\n [`${identificationDetails.identity}`]:\n identificationText,\n });\n }\n }}\n onBlur={(error) => {\n heandelIdentificationValidation(error.value);\n }}\n onMouseOut={(val) => {}}\n placeholder=\"\"\n errorText={\n props.nomineeErr &&\n props.nomineeErr[identificationDetails.identity]\n }\n defaultValue={\n props.nominee &&\n props.nominee[`${identificationDetails.identity}`]\n ? props.nominee[`${identificationDetails.identity}`]\n : \"\"\n }\n autoComplete=\"off\"\n >\n
    \n )}\n
    \n
    \n {identificationDetails.identity === \"Proof of identity\" && selectedProof && (\n
    \n
    \n \n

    \n Scanned copy of{\" \"}\n {\n identityProofOptions?.find((x) => x.value === selectedProof)\n ?.display\n }{\" \"}\n Photo\n

    \n \n handleSubmitForDocument(files, \"proofOfIdentityDocs\")\n }\n dropValChanged={dropDownlownValue}\n secondFileName={\n frontBack && identificationDetails.backProofOfIdentityDocs\n ? identificationDetails.backProofOfIdentityDocs?.nm\n : \"\"\n }\n />\n {frontBack && (\n \n handleSubmitForDocument(files, \"backProofOfIdentityDocs\")\n }\n dropValChanged={dropDownlownValue}\n secondFileName={\n frontBack && identificationDetails.proofOfIdentityDocs\n ? identificationDetails.proofOfIdentityDocs.nm\n : \"\"\n }\n />\n )}\n\n {(frontBack\n ? !(\n identificationDetails[\"proofOfIdentityDocs\"] &&\n identificationDetails[\"proofOfIdentityDocs\"].nm &&\n identificationDetails[\"proofOfIdentityDocs\"].data &&\n identificationDetails[\"backProofOfIdentityDocs\"] &&\n identificationDetails[\"backProofOfIdentityDocs\"].nm &&\n identificationDetails[\"backProofOfIdentityDocs\"].data\n )\n : !(\n identificationDetails[\"proofOfIdentityDocs\"] &&\n identificationDetails[\"proofOfIdentityDocs\"].nm &&\n identificationDetails[\"proofOfIdentityDocs\"].data\n )) && (\n

    \n Kindly upload clear and coloured images of original documents of\n proof of Identity\n

    \n )}\n\n {props.nomineeErr.attachment !== \"\" &&\n props.nomineeErr.attachment !== undefined && (\n

    \n Please Upload Required Document.\n

    \n )}\n
    \n \n {frontBack ? (\n <>\n \n {\n setFrontBack(false);\n setIdentificationDetails({\n ...identificationDetails,\n proofOfIdentityDocs:\n identificationDetails.proofOfIdentityDocs\n ? identificationDetails.proofOfIdentityDocs\n : {},\n backProofOfIdentityDocs: {},\n });\n }}\n >\n Remove Front/Back Document\n \n \n ) : (\n <>\n \n {\n setFrontBack(true);\n }}\n >\n Add Front/Back Document\n \n \n )}\n \n
    \n
    \n

    Upload details of {props.type.name}

    \n
    \n
    \n
    \n )}\n\n {identificationDetails.identity === \"Photograph & Signature\" && (\n
    \n
    \n \n

    Scanned copy of Passport Size Photo

    \n \n handleSubmitForDocument(files, \"photoDocs\")\n }\n dropValChanged={dropDownlownValue}\n secondFileName={\n identificationDetails &&\n identificationDetails[\"signDocs\"] &&\n identificationDetails[\"signDocs\"].nm\n ? identificationDetails[\"signDocs\"].nm\n : \"\"\n }\n />\n {!(\n identificationDetails &&\n identificationDetails[\"photoDocs\"] &&\n identificationDetails[\"photoDocs\"].nm &&\n identificationDetails[\"photoDocs\"].data\n ) && (\n

    \n Kindly upload clear and coloured images of original documents of\n proof of Identity\n

    \n )}\n
    \n
    \n \n
    \n

    Photo copy of your Signature

    \n {!(\n identificationDetails &&\n identificationDetails[\"signDocs\"] &&\n identificationDetails[\"signDocs\"].nm &&\n identificationDetails[\"signDocs\"].data\n ) && (\n props.setViewSampleImage(true)}\n >\n View Sample\n \n )}\n
    \n \n handleSubmitForDocument(files, \"signDocs\")\n }\n dropValChanged={dropDownlownValue}\n secondFileName={\n identificationDetails &&\n identificationDetails[\"photoDocs\"] &&\n identificationDetails[\"photoDocs\"].nm\n ? identificationDetails[\"photoDocs\"].nm\n : \"\"\n }\n />\n\n {!(\n identificationDetails &&\n identificationDetails[\"signDocs\"] &&\n identificationDetails[\"signDocs\"].nm &&\n identificationDetails[\"signDocs\"].data\n ) && (\n

    \n Kindly upload clear and coloured images of original documents of\n proof of Identity\n

    \n )}\n {props.nomineeErr.attachment !== \"\" &&\n props.nomineeErr.attachment !== undefined && (\n

    \n Please Upload Required Document.\n

    \n )}\n
    \n
    \n
    \n

    Upload details of {props.type.name}

    \n
    \n
    \n
    \n )}\n \n );\n});\n","import React, { forwardRef, useEffect, useState } from \"react\";\nimport Checkbox from \"../../../../generic/checkbox\";\nimport InputField from \"../../../../generic/inputField\";\nimport TocDropdown from \"../../../../generic/tocDropdown\";\nimport { getArea, getFullAddress } from \"../../../../service/generic/otherApi\";\nimport {\n alphaNumExpWithSpace,\n integerExp,\n integerExpWithSpace,\n} from \"../../../../utils/regex\";\nimport { areaErrorString, AREAOPTIONSTATUS, toCamelCase } from \"./constant\";\ninterface Type {\n id: number;\n name: string;\n fieldName: string;\n}\nexport const Address = forwardRef((props: any, ref: any) => {\n const [type, setType] = useState(props.type);\n const [area, setArea] = useState();\n const [areaOptions, setAreaOptions] = useState([AREAOPTIONSTATUS]);\n const handelPincode = (value: any) => {\n if (value && value.length < 6) {\n setAreaOptions([AREAOPTIONSTATUS]);\n props.onChange(\n {\n address: { ...props.nominee.address, city: \"\", state: \"\" },\n },\n \"pin\"\n );\n }\n };\n async function getFullAddressDetails(pin: any, area: any) {\n try {\n if (pin && pin.length === 6 && area) {\n let payloadObj = { area: area, pinCode: pin };\n let fullAddress = await getFullAddress(payloadObj);\n if (fullAddress && fullAddress.data) {\n props.onChange(\n {\n address: {\n ...props.nominee.address,\n pin,\n city: toCamelCase(fullAddress.data.city.toLowerCase()),\n state: toCamelCase(fullAddress.data.state.toLowerCase()),\n country: toCamelCase(fullAddress.data.country.toLowerCase()),\n },\n },\n \"pin\"\n );\n props.setLoader(false);\n }\n } else {\n props.setLoader(false);\n }\n } catch (error) {}\n }\n async function getAreaDetails(pincode: any) {\n if (pincode && pincode.length === 6) {\n props.setLoader(true);\n try {\n let areaResp = await getArea(pincode);\n if (areaResp) {\n let areas = areaResp.data.areas;\n if (areas) {\n const list = areas.map((respObj: any) => {\n return {\n value: toCamelCase(respObj.toLowerCase()),\n display: toCamelCase(respObj.toLowerCase()),\n };\n });\n if (\n list &&\n list.length === 1 &&\n toCamelCase(list[0].value.toLowerCase()) ===\n toCamelCase(areaErrorString.toLowerCase())\n ) {\n props.setShowPincodeErrorModel(true);\n props.setNomineeErr({\n ...props.nomineeErr,\n address: {\n ...props.nomineeErr.address,\n pin: \"Pincode is not valid\",\n },\n });\n setAreaOptions([AREAOPTIONSTATUS]);\n props.setLoader(false);\n } else {\n console.log(props.nomineeErr);\n setAreaOptions(list);\n getFullAddressDetails(pincode, list[0].value);\n }\n }\n }\n } catch (e) {\n console.log(e);\n }\n }\n }\n const addressErr = (error: any, type: string) => {\n let err = \"\";\n if (type === \"pin\") {\n if (error.value.length !== 6) err = \"Pincode must be 6 digit.\";\n else if (props.nomineeErr.address.pin) err = props.nomineeErr.address.pin;\n } else {\n if (error.required) err = \"Address is required\";\n // if (error.value.length > 0 && integerExp.test(error.value))\n // err = \"All the characters can't be Number.\";\n if (error.value.length > 0 && integerExpWithSpace.test(error.value))\n err = \"All the characters can't be Number.\";\n // if (error.value.length > 0 && error.value.length < 5)\n // err = \"Minimum 5 characters are required.\";\n if (!error.pattern)\n err = \"Special characters are not allowed like < , > etc.\";\n }\n\n props.setNomineeErr({\n ...props.nomineeErr,\n address: {\n ...props.nomineeErr.address,\n [type]: err,\n },\n });\n };\n useEffect(() => {\n if (props.areaOptions && props.areaOptions.length > 0) {\n setAreaOptions(props.areaOptions);\n }\n }, [props.areaOptions]);\n\n useEffect(() => {\n if (props.nominee.address.pin) {\n getAreaDetails(props.nominee.address.pin);\n handelPincode(props.nominee.address.pin);\n }\n }, []);\n return (\n <>\n {type && (\n <>\n
    \n {/*
    \n \n
    \n props.onChange({ address: e.target.value })}\n onMouseOut={(me) => {\n me.currentTarget.blur();\n props.handleChangeAddressErrors(\"address\", me.target);\n }}\n >\n {props.nominee.address}\n \n {props.nomineeErr.address ? (\n

    {props.nomineeErr.address}

    \n ) : (\n \"\"\n )}\n
    \n \n
    */}\n
    \n \n {\n props.onChange(\n {\n address: { ...props.nominee.address, addr1 },\n },\n \"addr1\"\n );\n }}\n maxLength={30}\n onBlur={(error) => {\n addressErr(error, \"addr1\");\n }}\n onMouseOut={() => {}}\n placeholder=\"Address Line 1\"\n errorText={props.nomineeErr.address.addr1}\n defaultValue={props.nominee.address.addr1}\n autoComplete=\"off\"\n >\n
    \n
    \n \n {\n props.onChange(\n {\n address: { ...props.nominee.address, addr2 },\n },\n \"addr2\"\n );\n }}\n maxLength={30}\n onBlur={(error) => {\n addressErr(error, \"addr2\");\n }}\n onMouseOut={() => {}}\n placeholder=\"Address Line 2\"\n errorText={props.nomineeErr.address.addr2}\n defaultValue={props.nominee.address.addr2}\n autoComplete=\"off\"\n >\n
    \n
    \n
    \n
    \n \n {\n props.onChange(\n {\n address: { ...props.nominee.address, addr3 },\n },\n \"addr3\"\n );\n }}\n maxLength={30}\n onBlur={(error) => {\n addressErr(error, \"addr3\");\n }}\n onMouseOut={() => {}}\n placeholder=\"Address Line 3\"\n errorText={props.nomineeErr.address.addr3}\n defaultValue={props.nominee.address.addr3}\n autoComplete=\"off\"\n >\n
    \n {props.dpType !== \"CDSL\" && (\n
    \n \n {\n props.onChange(\n {\n address: { ...props.nominee.address, addr4 },\n },\n \"addr4\"\n );\n }}\n maxLength={30}\n onBlur={(error) => {\n addressErr(error, \"addr4\");\n }}\n onMouseOut={() => {}}\n placeholder=\"Address Line 4\"\n errorText={props.nomineeErr.address.addr4}\n defaultValue={props.nominee.address.addr4}\n autoComplete=\"off\"\n >\n
    \n )}\n
    \n
    \n
    \n \n {\n getAreaDetails(pin);\n props.onChange(\n {\n address: { ...props.nominee.address, pin },\n },\n \"pin\"\n );\n handelPincode(pin);\n }}\n maxLength={6}\n onBlur={(error) => {\n addressErr(error, \"pin\");\n }}\n onMouseOut={() => {}}\n placeholder=\"Enter PIN Code\"\n errorText={props.nomineeErr.address.pin}\n defaultValue={props.nominee.address.pin}\n autoComplete=\"off\"\n >\n
    \n
    \n \n {\n setArea(val);\n }}\n isSearchable={false}\n />\n
    \n
    \n
    \n
    \n \n \n props.onChange({\n address: { ...props.nominee.address, city },\n })\n }\n onBlur={() => {}}\n onMouseOut={() => {}}\n placeholder=\"City\"\n errorText={\"\"}\n defaultValue={props.nominee.address.city}\n >\n
    \n
    \n \n \n props.onChange({\n address: { ...props.nominee.address, state },\n })\n }\n onBlur={() => {}}\n onMouseOut={() => {}}\n placeholder=\"State\"\n errorText={\"\"}\n defaultValue={props.nominee.address.state}\n >\n
    \n
    \n \n )}\n \n );\n});\n","import React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport Checkbox from \"../../../../generic/checkbox\";\nimport InputField from \"../../../../generic/inputField\";\nimport TocDropdown from \"../../../../generic/tocDropdown\";\nimport sampleSignature from \"../../../../../assets/images/Sample-signature-image.png\";\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport { IdentifDet } from \"./identificationSection\";\nimport {\n ageCalculator,\n applicantRelationships,\n NOMINEE,\n Titles,\n TYPE,\n NOMINEEERROR,\n Relationship,\n areaErrorString,\n AREAOPTIONSTATUS,\n identificationOptions,\n Required,\n getNestedValue,\n ValidationFields,\n} from \"./constant\";\nimport { Address } from \"./address\";\nimport moment from \"moment\";\nimport {\n alphabetExp,\n alphaNumExpWithSpace,\n detectIntWithSpace,\n emailRegex,\n integerExp,\n phoneNo,\n specialCharExpression,\n} from \"../../../../utils/regex\";\nimport { getArea, getFullAddress } from \"../../../../service/generic/otherApi\";\nimport { getAccData } from \"../../../../service/login/loginService\";\nimport EdModal from \"../../../../generic/edModal\";\ninterface Type {\n id: number;\n name: string;\n fieldName: string;\n}\n\nexport const NomineeGuardianForm = forwardRef((props: any, ref: any) => {\n const [type, setType] = useState();\n const [nominee, setNominee] = useState(\n props.type === 1 ? props.nominee[props.id] : props.nominee[props.id].guard\n );\n const [nomineeErr, setNomineeErr] = useState(NOMINEEERROR);\n const [showPincodeErrorModel, setShowPincodeErrorModel] = useState(false);\n const [areaOptions, setAreaOptions] = useState([AREAOPTIONSTATUS]);\n const [identity, setIdentity] = useState();\n const [showOptional, setShowOptional] = useState(false);\n const [viewSampleImage, setViewSampleImage] = useState(false);\n const childRef = useRef();\n\n useEffect(() => {\n setNominee(\n props.type === 1 ? props.nominee[props.id] : props.nominee[props.id].guard\n );\n }, [props.nominee]);\n\n useEffect(() => {\n const Type = TYPE.find((t) => t.id === props.type);\n setType(Type);\n }, []);\n const validateForm = (val: any, type: any) => {\n switch (type) {\n case \"firstName\":\n let firstName = \"\";\n if (!val) firstName = \"First Name is required\";\n \n if (!alphabetExp.test(val)) firstName = \"Only alphabets is allowed\";\n return firstName;\n case \"middleName\":\n let middleName = \"\";\n \n if (!alphabetExp.test(val)) middleName = \"Only alphabets is allowed\";\n return middleName;\n\n case \"lastName\":\n let lastName = \"\";\n \n if (!alphabetExp.test(val)) lastName = \"Only alphabets is allowed\";\n return lastName;\n\n case \"birthdate\":\n let dob = \"\";\n if (!val) dob = \"Date of birth is required\";\n return dob;\n\n case \"nomRel\":\n let nomRel = \"\";\n if (!val) nomRel = \"Nominee Relationship is required\";\n\n return nomRel;\n case \"title\":\n let title = \"\";\n if (!val) title = \"Required\";\n\n return title;\n\n case \"nomPer\":\n let nomPer = \"\";\n if (!val) nomPer = \"Nominee shares is required\";\n if ((val && val <= 0) || !val)\n nomPer = \"Nominee Shares Must greater than 0\";\n if (val && val > 100)\n nomPer = \"Nominee Shares Must less than or equal to 100\";\n return nomPer;\n\n case \"email\":\n let email = \"\";\n // if (!email) email = \"Email is required\";\n if (!emailRegex.test(val) && val.length > 0)\n email = \"Please enter a valid email id\";\n return email;\n\n case \"phone\":\n let phone = \"\";\n // if () phone = \"Mobile no. is required\";\n if (!phoneNo.test(val) && val.length > 0)\n phone = \"Please enter a valid phone number\";\n return phone;\n }\n };\n function handleNomineeShares() {\n if (props.nominee.length > 0) {\n let getPercent = props.nominee.map((nom: any) =>\n nom.nomPer ? parseFloat(nom.nomPer) : 0\n );\n return getPercent.reduce(\n (prevPer: number, curPer: number) => prevPer + curPer\n );\n }\n return Number(0);\n //else {\n // return value ? parseFloat(value) : 0;\n // }\n }\n const onChange = (value: any, field?: string) => {\n let deleteGuard: any;\n if (type?.id === 1 && value.birthdate) {\n const age = ageCalculator(value.birthdate);\n value.minor = age < 18 ? true : false;\n if (value.minor) {\n const guard: any = NOMINEE;\n delete guard.nomPer;\n const guardian = true;\n value.guard = { ...guard, guardian };\n } else {\n if (nominee.guard) {\n const { guard: tmp, ...rest } = nominee;\n deleteGuard = rest;\n }\n }\n }\n\n //reset guardian on uncheck of same as guardian checkbox\n if (!value.sameas && field === \"sameAs\") {\n const guard: any = NOMINEE;\n delete guard.nomPer;\n const guardian = true;\n value.guard = { ...guard, guardian };\n }\n //\n\n let nom = deleteGuard ? deleteGuard : nominee;\n setNominee({ ...nom, ...value });\n const key = Object.keys(value)[0];\n if (typeof nomineeErr[key] === \"object\" && field) {\n setNomineeErr({\n ...nomineeErr,\n [key]: { ...nomineeErr.address, [field]: \"\" },\n });\n } else {\n let err: any = {};\n Object.keys(value).map((x) => {\n err[x] = \"\";\n });\n setNomineeErr({ ...nomineeErr, ...err });\n }\n\n const totalNominee = JSON.parse(JSON.stringify(props.nominee));\n if (type?.id === 1) {\n totalNominee[props.id] = {\n ...nom,\n ...value,\n };\n } else {\n totalNominee[props.id].guard = {\n ...nom,\n ...value,\n };\n }\n props.updateNominee(totalNominee);\n };\n const addressErr = (val: any, type: string) => {\n let err = \"\";\n // console.log(\"type\", type);\n\n if (type === \"pin\") {\n if (val.length !== 6) err = \"Pincode must be 6 digit.\";\n } else {\n if (!val && type === \"addr1\") err = \"Address is required\";\n if (val.length > 0 && integerExp.test(val))\n err = \"All the characters can't be Number.\";\n // if (val.length > 0 && error.value.length < 5)\n // err = \"Minimum 5 characters are required.\";\n if (!alphaNumExpWithSpace.test(val))\n err = \"Special characters are not allowed like < , > etc.\";\n }\n return err;\n };\n useImperativeHandle(ref, () => ({\n validation() {\n let err: any = {};\n let validation = true;\n const required = JSON.parse(JSON.stringify(Required));\n const validationFields = JSON.parse(JSON.stringify(ValidationFields));\n\n if (props.type === 1) {\n required.push(\"nomPer\");\n }\n if (identity) {\n if (\n identity === identificationOptions[1].value ||\n identity === identificationOptions[6].value\n ) {\n required.push(\"attachment.data\");\n } else {\n required.push(identity);\n }\n }\n if (identity) {\n if (\n identity === identificationOptions[1].value ||\n identity === identificationOptions[6].value\n ) {\n // required.push(\"attachment.data\");\n } else {\n validationFields.push(identity);\n }\n }\n\n if (props.dpType === \"CDSL\") validationFields.splice(7, 1);\n\n validationFields.map((x: any) => {\n if (x.split(\".\").length > 1) {\n let value = getNestedValue(x, nominee);\n if (addressErr(value, x.split(\".\")[1])) {\n // console.log(\"111111111111111\", x.split(\".\")[1]);\n\n let err1 = x\n .split(\".\")\n .reduceRight(\n (obj: any, key: any) => ({ [key]: obj }),\n addressErr(value, x.split(\".\")[1])\n );\n // console.log(\"err1\", err1);\n\n err = {\n ...err,\n [x.split(\".\")[0]]: {\n ...err[x.split(\".\")[0]],\n ...err1[x.split(\".\")[0]],\n },\n };\n\n validation = false;\n }\n } else err[x] = validateForm(nominee[x], x);\n const child: any = childRef?.current;\n\n // console.log(\"x\", x, child && child.hasError(nominee[x]));\n\n if (identity && identity === x && child && child.hasError(nominee[x])) {\n validation = false;\n err[identity] = child.hasError(nominee[x]);\n }\n\n if (err[x]) validation = false;\n });\n // console.log(\"sssssssss\", obj);\n\n required.map((x: any) => {\n if (x.split(\".\").length > 1) {\n if (x === \"attachment.data\") {\n // console.log(\"x\", x);\n\n let value = getNestedValue(x, nominee);\n if (value === \"\" || value === null || value === undefined) {\n let err1 = x\n .split(\".\")\n .reduceRight(\n (obj: any, key: any) => ({ [key]: obj }),\n `This field is required`\n );\n err = {\n ...err,\n [x.split(\".\")[0]]: {\n ...err[x.split(\".\")[0]],\n ...err1[x.split(\".\")[0]],\n },\n };\n validation = false;\n }\n }\n } else {\n // if (x === \"attachment\") {\n // nominee[x] = nominee[x]?.data;\n // console.log(nominee[x]);\n // }\n if (x === \"nomPer\") {\n let totalPercent = handleNomineeShares();\n \n err[x] = validateForm(nominee[x], \"nomPer\");\n if (!err[x]) {\n if (!totalPercent) {\n err[x] = \"Nominee shares is required\";\n validation = false;\n } else if (totalPercent !== 100) {\n err[x] = \"Total number of shares should be 100%\";\n validation = false;\n }\n } else validation = false;\n }\n // if (\n // nominee[x] === \"\" ||\n // nominee[x] === null ||\n // nominee[x] === undefined\n // ) {\n // // err[x] = `This field is required`;\n // validation = false;\n // }\n }\n });\n console.log(\"err\", err);\n\n setNomineeErr({ ...nomineeErr, ...err });\n return validation;\n },\n }));\n useEffect(() => {\n // console.log({ nomineeErr });\n // console.log({ nominee });\n\n if (\n Object.values(nomineeErr)\n .map((x) => {\n if (x && typeof x === \"object\") {\n return Object.values(x)\n .map((z) => z === \"\" || z === null || z === undefined)\n .every((z) => z === true);\n } else {\n return x === \"\" || x === null || x === undefined;\n }\n })\n .every((x) => x === true)\n ) {\n props.enableSubmit(true);\n } else {\n props.enableSubmit(false);\n }\n }, [nomineeErr]);\n\n useEffect(() => {\n if (nominee.firstName) {\n let eqAccName = getAccData(\"accs\").eqAccName;\n var clientName = [nominee.firstName.trim()];\n if(!!nominee.middleName && nominee.middleName !=\" \")\n clientName.push(nominee.middleName.trim());\n if(!!nominee.lastName)\n clientName.push(nominee.lastName.trim());\n if (\n eqAccName.toLowerCase() === clientName.join(\" \").toLowerCase().trim()\n ) {\n setNomineeErr({\n ...nomineeErr,\n name: \"Nominee Name and Guaurdian Name can not be same as Client Name.\",\n });\n } else {\n setNomineeErr({\n ...nomineeErr,\n name: \"\",\n });\n }\n }\n }, [nominee]);\n useEffect(()=>{\n var guardName = \"\";\n var sameNomName = \"\";\n if(props.nominee[props.id].minor && props.nominee[props.id].firstName && props.nominee[props.id].guard.firstName){\n let nomName = [props.nominee[props.id].firstName.trim()];\n if(!!props.nominee[props.id].middleName)\n nomName.push(props.nominee[props.id].middleName.trim());\n if(!!props.nominee[props.id].lastName)\n nomName.push(props.nominee[props.id].lastName.trim());\n let GName = [props.nominee[props.id].guard.firstName.trim()];\n if(!!props.nominee[props.id].guard.middleName)\n GName.push(props.nominee[props.id].guard.middleName.trim());\n if(!!props.nominee[props.id].guard.lastName)\n GName.push(props.nominee[props.id].guard.lastName.trim());\n var guardName = \"\";\n if (nomName.join(\" \").toLowerCase() === GName.join(\" \").toLowerCase()) {\n guardName = \"Nominee Name and Guaurdian Name can not be same\";\n } else {\n guardName = \"\";\n }\n } else if( props.nominee[props.id].minor == false ){\n guardName = \"\";\n }\n if (props.nominee.length > 1 && props.nominee[0].firstName && props.nominee[1].firstName) {\n const nomineeNames = props.nominee.map((nominee: any) => {\n let fullName = [nominee.firstName.trim()];\n if (nominee.middleName) fullName.push(nominee.middleName.trim());\n if (nominee.lastName) fullName.push(nominee.lastName.trim());\n return fullName.join(\" \").toLowerCase();\n });\n let duplicateIndexes: number[] = [];\n var hasDuplicate = false;\n nomineeNames.some((name: any, index: any) => {\n const firstIndex = nomineeNames.indexOf(name);\n if (firstIndex !== index) {\n duplicateIndexes.push(index);\n duplicateIndexes.push(firstIndex);\n hasDuplicate = true;\n }\n });\n if (hasDuplicate && duplicateIndexes.length > 0 && duplicateIndexes.includes(props.id)) {\n sameNomName = \"Same nominee is not allowed. Kindly provide a unique nominee for the nomination.\";\n } else {\n sameNomName = \"\";\n }\n }\n setNomineeErr({\n ...nomineeErr,\n guarName: guardName,\n sameName: sameNomName\n });\n }, [props.nominee])\n function signaturePOPUp(): React.ReactElement {\n return (\n
    \n
    \n
    \n
    \n {\n setViewSampleImage(false);\n }}\n title=\"Close\"\n className=\"cancel sign-cross-button\"\n >\n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n );\n }\n function wrongPinCodeMessagePOPUp(): React.ReactElement {\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n

    \n This Pincode is not identifiable\n

    \n
    \n
    \n

    \n Please contact your RM or write to us at\n

    \n

    \n \n helpdesk@nuvama.com\n \n

    \n
    \n
    \n
    \n {\n e.preventDefault();\n setShowPincodeErrorModel(false);\n }}\n >\n Search Another\n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n }\n return (\n <>\n {type && (\n \n
    \n
    \n {type.name} {props.id + 1}\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n {\n onChange({ title });\n }}\n isSearchable={false}\n />\n
    \n {nomineeErr.title !== \"\" &&\n nomineeErr.title !== undefined && (\n

    Required

    \n )}\n
    \n\n onChange({ firstName })}\n onBlur={(error) => {\n let err = validateForm(error.value, \"firstName\");\n setNomineeErr({\n ...nomineeErr,\n firstName: err,\n });\n }}\n placeholder=\"First Name\"\n onMouseOut={() => {}}\n defaultValue={nominee.firstName}\n errorText={nomineeErr.firstName}\n autoComplete=\"off\"\n />\n onChange({ middleName })}\n onBlur={(error) => {\n let err = validateForm(error.value, \"middleName\");\n setNomineeErr({\n ...nomineeErr,\n middleName: err,\n });\n }}\n placeholder=\"Middle Name\"\n onMouseOut={() => {}}\n defaultValue={nominee.middleName}\n errorText={nomineeErr.middleName}\n autoComplete=\"off\"\n />\n onChange({ lastName })}\n onBlur={(error) => {\n let err = validateForm(error.value, \"lastName\");\n setNomineeErr({\n ...nomineeErr,\n lastName: err,\n });\n // let lastName = \"\";\n // if (error.required) lastName = \"Last Name is required\";\n // if (error.value.length > 0 && error.value.length < 3)\n // lastName = \"Min 3 Character Required\";\n // if (!error.pattern)\n // lastName = \"Only alphabets is allowed\";\n\n // setNomineeErr({\n // ...nomineeErr,\n // lastName,\n // });\n }}\n placeholder=\"Last Name\"\n onMouseOut={() => {}}\n defaultValue={nominee.lastName}\n errorText={nomineeErr.lastName}\n autoComplete=\"off\"\n />\n
    \n {nomineeErr.sameName !== \"\" && nomineeErr.sameName !== undefined && type.name != \"Guardian\" &&(\n

    {nomineeErr.sameName}

    \n )}\n {nomineeErr.name !== \"\" && nomineeErr.name !== undefined && (\n

    {nomineeErr.name}

    \n )}\n {nomineeErr.guarName !== \"\" && nomineeErr.guarName !== undefined && (\n

    {nomineeErr.guarName}

    \n )}\n
    \n
    \n
    \n
    \n
    \n \n {\n onChange({ nomRel });\n }}\n isSearchable={false}\n />\n
    \n {nomineeErr.nomRel !== \"\" &&\n nomineeErr.nomRel !== undefined && (\n

    {nomineeErr.nomRel}

    \n )}\n
    \n {type && type.id === 1 && (\n
    \n \n onChange({ nomPer })}\n onBlur={(error) => {\n let err = validateForm(error.value, \"nomPer\");\n // let totalPercent = handleNomineeShares(error.value);\n // let nomPer = \"\";\n // if (error.required) nomPer = \"Nominee shares is required\";\n // // if (error.value.length > 0 && totalPercent !== 100)\n // // nomPer =\n // // \"Total of % of shares should not be greater than 100%\";\n setNomineeErr({\n ...nomineeErr,\n nomPer: err,\n });\n }}\n onMouseOut={(val) => {}}\n placeholder=\"Enter percentage of shares\"\n errorText={nomineeErr.nomPer}\n defaultValue={nominee.nomPer}\n autoComplete=\"off\"\n >\n {/*

    */}\n
    \n )}\n
    \n \n
    \n \n {/* */}\n {\n e.preventDefault();\n }}\n onChange={(date) => {\n const date1 = moment(date, \"DD-MMM-YYYY\");\n if (date1.isValid()) {\n onChange({\n birthdate: moment(date).format(\"DD-MMM-YYYY\"),\n });\n setNomineeErr({ ...nomineeErr, birthdate: \"\" });\n }\n }}\n onBlur={(e) => {\n const date = moment(e.target.value, \"DD-MMM-YYYY\");\n if (!date.isValid()) {\n setNomineeErr({\n ...nomineeErr,\n birthdate: \"Please Enter valid Date format.\",\n });\n } else {\n setNomineeErr({\n ...nomineeErr,\n birthdate: \"\",\n });\n }\n }}\n minDate={\n moment().subtract(150, \"years\").toDate()\n }\n maxDate={\n type.id === 1\n ? new Date()\n : moment().subtract(18, \"years\").toDate()\n }\n />\n {nomineeErr.birthdate !== \"\" &&\n nomineeErr.birthdate !== undefined && (\n

    {nomineeErr.birthdate}

    \n )}\n
    \n
    \n \n
    \n
    \n
    \n \n
    \n {showOptional && (\n
    \n {\n onChange({\n email: nominee.email ? nominee.email : \"\",\n phone: nominee.phone ? nominee.phone : \"\",\n pan: \"\",\n dpId: \"\",\n idTyp: \"\",\n attachment: {},\n });\n setIdentity(\"\");\n setShowOptional(false);\n }}\n >\n
    \n )}\n
    \n\n {showOptional && (\n
    \n \n
    \n \n onChange({ email })}\n onBlur={(error) => {\n let err = validateForm(error.value, \"email\");\n setNomineeErr({\n ...nomineeErr,\n email: err,\n });\n }}\n onMouseOut={() => {}}\n placeholder=\"Enter email id\"\n errorText={nomineeErr.email}\n defaultValue={nominee.email}\n autoComplete=\"off\"\n >\n
    \n
    \n \n onChange({ phone })}\n onBlur={(error) => {\n let err = validateForm(error.value, \"phone\");\n setNomineeErr({\n ...nomineeErr,\n phone: err,\n });\n }}\n onMouseOut={() => {}}\n placeholder=\"Enter mobile number\"\n errorText={nomineeErr.phone}\n defaultValue={nominee.phone}\n autoComplete=\"off\"\n >\n
    \n
    \n \n
    \n )}\n \n\n {type.id === 1 &&\n props.id > 0 &&\n nominee.minor &&\n props.isGuardianAvailable && (\n
    \n {\n let sameas = props.nominee[Number(props.id)].sameas\n ? false\n : true;\n onChange({ sameas }, \"sameAs\");\n props.setSameGuardian(!props.sameGuardian);\n }}\n >\n \n Guardian Details Same as above{\" \"}\n \n
    \n )}\n \n \n )}\n {}}\n children={wrongPinCodeMessagePOPUp()}\n // modalClsNm={\"absoluteModal\"}\n />\n {}}\n children={signaturePOPUp()}\n // modalClsNm={\"absoluteModal\"}\n />\n \n );\n});\n","import React, { forwardRef, useEffect, useState } from \"react\";\nimport RadioButton from \"../../../../generic/radioButton\";\nimport { IListObj } from \"../../../../types/genericTypes\";\nconst accTypes: Array = [\n { value: \"tradingDemat\", display: \"Trading + Demat\" },\n { value: \"demat\", display: \"Demat\" },\n { value: \"trading\", display: \"Trading\" },\n];\nexport const AccounTypeSection = forwardRef((props: any, ref: any) => {\n const [accType, setAccType] = useState(accTypes[0].value);\n\n useEffect(() => {\n props.setAccountType(accType);\n }, [accType]);\n\n useEffect(() => {\n \n if (props.onlyTrading && props.onlyTrading === 1)\n setAccType(accTypes[2].value);\n else setAccType(accTypes[0].value);\n\n }, [props.onlyTrading]);\n\n return (\n <>\n
    \n
    \n
    \n
    \n {(props.onlyTrading ? props.onlyTrading !== 1 : true) && (\n
    \n {\n setAccType(accTypes[0].value);\n }}\n selected={accType}\n />\n
    \n )}\n\n {(props.onlyTrading ? props.onlyTrading !== 1 : true) && (\n
    \n {\n setAccType(accTypes[1].value);\n }}\n selected={accType}\n />\n
    \n )}\n\n
    \n {\n setAccType(accTypes[2].value);\n }}\n selected={accType}\n />\n
    \n
    \n
    \n
    \n \n );\n});\n","import React, { forwardRef, useEffect, useState } from \"react\";\nimport Checkbox from \"../../../../generic/checkbox\";\nimport InputField from \"../../../../generic/inputField\";\nimport TocDropdown from \"../../../../generic/tocDropdown\";\ninterface Type {\n id: number;\n name: string;\n fieldName: string;\n}\nexport const ShowDetails = forwardRef((props: any, ref: any) => {\n const [selectedGuardian, setSelectedGuardian] = useState();\n const [guardianOptions, setGuardianOptions] = useState([]);\n const [guardianName, setGuardianName] = useState(\"\");\n\n useEffect(() => {\n if (props.GuardianData) {\n let guardianOpt = props.GuardianData.map((guardian: any) => {\n return { value: guardian.firstName, display: guardian.firstName };\n });\n setGuardianOptions(guardianOpt);\n }\n }, [JSON.stringify(props.GuardianData)]);\n useEffect(() => {\n if (guardianName === \"\" && guardianOptions.length > 0) {\n setGuardianName(guardianOptions[0].value);\n updateGuardianData(guardianOptions[0].value);\n } else {\n updateGuardianData(guardianName);\n }\n }, [guardianOptions]);\n\n const updateGuardianData = async (guardianName: any) => {\n if (guardianName) {\n let guardiansData = props.GuardianData.filter((guardian: any) => {\n return guardianName === guardian.firstName;\n });\n if (guardiansData.length > 0) {\n await setSelectedGuardian(guardiansData);\n let allNominee = JSON.parse(JSON.stringify(props.totalNominee));\n allNominee[props.id].guard = guardiansData[0];\n props.setTotalNominee(allNominee);\n }\n }\n };\n\n return (\n <>\n
    \n
    \n \n 0\n ? guardianOptions[0].value\n : []\n }\n dropdownOptions={guardianOptions}\n onSelect={(val) => {\n setGuardianName(val);\n updateGuardianData(val);\n }}\n isSearchable={false}\n />\n
    \n
    \n
    \n
    \n
    \n

    Existing Guardian Details

    \n {/*

    (DP ID: 1203230001324865)

    */}\n
    \n\n
    \n
    \n \n {}}\n onBlur={() => {}}\n onMouseOut={() => {}}\n errorText={\"\"}\n defaultValue={\n selectedGuardian\n ? selectedGuardian[0].firstName +\n ` ${selectedGuardian[0].middleName}` +\n ` ${selectedGuardian[0].lastName}`\n : \"\"\n }\n >\n
    \n
    \n \n {}}\n onBlur={() => {}}\n onMouseOut={() => {}}\n errorText={\"\"}\n defaultValue={selectedGuardian ? selectedGuardian[0].nomRel : \"\"}\n >\n
    \n
    \n
    \n
    \n \n {}}\n onBlur={() => {}}\n onMouseOut={() => {}}\n errorText={\"\"}\n defaultValue={selectedGuardian ? selectedGuardian[0].email : \"\"}\n >\n
    \n
    \n \n {}}\n onBlur={() => {}}\n onMouseOut={() => {}}\n errorText={\"\"}\n defaultValue={selectedGuardian ? selectedGuardian[0].phone : \"\"}\n >\n
    \n
    \n
    \n
    \n \n {}}\n onBlur={() => {}}\n onMouseOut={() => {}}\n errorText={\"\"}\n defaultValue={\n selectedGuardian ? selectedGuardian[0].birthdate : \"\"\n }\n >\n
    \n {/*
    \n \n {}}\n onBlur={() => {}}\n onMouseOut={() => {}}\n placeholder=\"100%\"\n errorText={\"\"}\n defaultValue={\"100%\"}\n >\n
    */}\n
    \n
    \n
    \n \n

    \n {/* Flat no D301, Neel Vasundhara co op hog sc ltd, Vijay Park, Mira\n Road - East, Thane, Maharashtra - 401107 */}\n {selectedGuardian\n ? selectedGuardian[0].address.addr1 +\n ` ${selectedGuardian[0].address.addr2}` +\n ` ${selectedGuardian[0].address.addr3}` +\n ` ${selectedGuardian[0].address.addr4}` +\n ` ${selectedGuardian[0].address.city}` +\n ` ${selectedGuardian[0].address.state}` +\n ` ${selectedGuardian[0].address.pin}`\n : \"\"}\n

    \n
    \n
    \n
    \n \n );\n});\n","import React, { forwardRef, useEffect } from \"react\";\nimport InputField from \"../../../../generic/inputField\";\nimport TocDropdown from \"../../../../generic/tocDropdown\";\nexport const DpTrading = forwardRef((props: any) => {\n useEffect(() => {\n console.log(\"props\", props);\n }, []);\n\n return (\n <>\n
    \n {props.dpOptions &&\n props.dpOptions.length > 2 &&\n props.selectedAcc.toLowerCase().includes(\"demat\") && (\n <>\n \n
    \n \n 0\n ? props.selectedDp\n : \"Select DP Details\"\n }\n dropdownOptions={props.dpOptions}\n onSelect={(val) => {\n if (val) {\n if (props.setErrors)\n props.setErrors({ ...props.errors, dp: \"\" });\n props.setSelectedDp(val);\n }\n }}\n isSearchable={false}\n />\n
    \n {props.errors && props.errors.dp && (\n

    {props.errors.dp}

    \n )}\n
    \n \n )}\n {props.dpOptions &&\n props.dpOptions.length === 2 &&\n props.selectedAcc.toLowerCase().includes(\"demat\") && (\n
    \n \n\n {}}\n onBlur={() => {}}\n placeholder=\"\"\n disabled={true}\n />\n
    \n )}\n {props.selectedAcc.toLowerCase().includes(\"trading\") && (\n \n \n\n {}}\n onBlur={() => {}}\n placeholder=\"\"\n disabled={true}\n />\n \n )}\n\n
    \n

    {props.errorMsg}

    \n
    \n {/* {props.errors && props.errors.dp && (\n
    \n

    {props.errors.dp}

    \n
    \n )} */}\n \n \n );\n});\n","import React, {\n forwardRef,\n useState,\n useEffect,\n useImperativeHandle,\n} from \"react\";\nimport TocDropdown from \"../../../generic/tocDropdown\";\nimport { IListObj } from \"../../../types/genericTypes\";\nimport { NomineeGuardianForm } from \"./addNominee/form\";\nimport { NOOFNOMINEE, NOMINEE } from \"./addNominee/constant\";\nimport LoginService from \"../../../service/login/loginService\";\nimport { AccounTypeSection } from \"./common/accountTypeSection\";\nimport { ShowDetails } from \"./addNominee/showDetails\";\nimport Loader from \"../../../generic/loader\";\nimport { DpTrading } from \"./common/dpTrading\";\nimport { GetPersonDetails } from \"../../../service/serviceRequest/srApiService\";\nexport const AddNewNominee = forwardRef((props: any, ref: any) => {\n const [accountCode, setAccountCode] = useState();\n const [dpOptions, setDpOptions] = useState();\n const [selectedDp, setSelectedDp] = useState(\"\");\n const [totalNominee, setTotalNominee] = useState([NOMINEE]);\n const [selectedAcc, setSelectedAcc] = useState(\"tradingDemat\");\n const [isGuardianAvailable, setIsGuardianAvailable] =\n useState([false,false,false]);\n const [GuardianData, setGuardianData] = useState([]);\n const [sameGuardian, setSameGuardian] = useState(\n undefined\n );\n const [jointHolderErrorMsg, setJointHolderErrorMsg] = useState(\"\");\n const [updateShowDetails, setUpdateShowDetails] = useState(false);\n const [loader, setLoader] = useState(false);\n const [userPan, setUserPan] = useState(\"\");\n const [DPType, setDPType] = useState(\"\");\n const [errors, setErrors] = useState({\n dp: \"\",\n });\n\n const nomineeRef: any = [];\n const guardianRef: any = [];\n useEffect(() => {\n if (\n props.nomineeDet[0].DematDetails &&\n props.nomineeDet[0].DematDetails.length > 0\n ) {\n let selectedDpElement = props.nomineeDet[0].DematDetails.find(\n (ele: any) => {\n if (ele.Demat_Account_Number === selectedDp) return ele;\n }\n );\n\n if (selectedDpElement && selectedDpElement.Demat_HolderType) {\n if (selectedDpElement.Demat_HolderType === \"Joint\") {\n props.enableSubmit(false);\n setJointHolderErrorMsg(\n \"It seems that the DP Account is a joint holder account. This request cannot be processed online.\"\n );\n } else {\n setJointHolderErrorMsg(undefined);\n }\n }\n }\n }, [selectedDp]);\n useEffect(() => {\n if (selectedDp)\n setDPType(\n selectedAcc === \"trading\"\n ? \"\"\n : selectedDp.includes(\"IN\")\n ? \"NSDL\"\n : \"CDSL\"\n );\n }, [selectedDp, selectedAcc]);\n\n useEffect(() => {\n getPersonalDetails();\n setDpDetails(props.nomineeDet[0].DematDetails);\n\n if (\n props.nomineeDet[0].TradingDetails &&\n props.nomineeDet[0].TradingDetails.AccountCode\n )\n setAccountCode(props.nomineeDet[0].TradingDetails.AccountCode);\n }, [props.nomineeDet]);\n\n const setDpDetails = (dematDet: any) => {\n let dpOptions: any = [];\n\n dematDet.forEach((ele: any) => {\n if (ele.DematTagging !== \"OUTSIDE_DP\") {\n if (dpOptions.length === 0) {\n dpOptions.push({\n display: \"Select DP Details\",\n value: \"\",\n });\n }\n dpOptions.push({\n display: ele.Demat_Account_Number,\n value: ele.Demat_Account_Number,\n ...ele,\n });\n }\n });\n if (dpOptions.length > 2) {\n setDpOptions(dpOptions);\n // setDpToReplicate(dpOptions[1]);\n } else if (dpOptions.length === 2) {\n setDpOptions(dpOptions);\n setSelectedDp(dpOptions[1].value);\n }\n //dp\n };\n\n useEffect(() => {\n let guardpresent = [false,false,false];\n if (totalNominee.length > 1) {\n setUpdateShowDetails(!updateShowDetails);\n for (let i = 0; i < totalNominee.length - 1; i++) {\n if (totalNominee[i].minor) {\n guardpresent[i+1] = true;\n }\n }\n setIsGuardianAvailable(guardpresent);\n }\n }, [totalNominee]);\n\n useEffect(() => {\n let expetedGurdian = [];\n if (totalNominee.length > 1 && typeof sameGuardian === \"boolean\") {\n for (let i = 0; i < totalNominee.length - 1; i++) {\n if (expetedGurdian.length > 0) {\n for (let j = 0; j < expetedGurdian.length; j++) {\n if (\n expetedGurdian[j]?.firstName !== totalNominee[i].guard.firstName\n ) {\n expetedGurdian.push(totalNominee[i].guard);\n setGuardianData(expetedGurdian);\n }\n }\n } else if(totalNominee[i].guard){\n expetedGurdian.push(totalNominee[i].guard);\n setGuardianData(expetedGurdian);\n }\n }\n setSameGuardian(undefined);\n }\n }, [sameGuardian, updateShowDetails]);\n\n async function getPersonalDetails() {\n let personaldetails = await GetPersonDetails();\n if (personaldetails && personaldetails.pANNumberField) {\n setUserPan(personaldetails.pANNumberField);\n } else {\n setUserPan(\"\");\n }\n }\n\n useImperativeHandle(ref, () => ({\n submitData() {\n const nomineeVal = nomineeRef.map((x: any) => x.validation());\n const guardVal = guardianRef.map((x: any) => x.validation());\n const validation = [...nomineeVal, ...guardVal].every((x) => typeof x == 'boolean' ? x : true);\n const accValidation =\n selectedAcc === \"trading\"\n ? true\n : selectedDp\n ? (() => {\n setErrors({ ...errors, dp: \"\" });\n return true;\n })()\n : (() => {\n setErrors({ ...errors, dp: \"Please select DP Id\" });\n return false;\n })();\n if (validation && accValidation) {\n let dpId = selectedDp;\n\n if (!selectedDp || selectedAcc === \"trading\") {\n //if only trading visible/ trading option selected\n if (props.nomineeDet)\n props.nomineeDet[0].DematDetails.forEach((ele: any) => {\n if (ele.DefaultDemat === \"Yes\") dpId = ele.Demat_Account_Number;\n });\n }\n let nomTyp = \"Modification\";\n let minorClient = \"No\";\n props.nomineeDet[0].DematDetails.forEach((ele: any) => {\n if (ele.Demat_Account_Number === dpId) {\n nomTyp =\n ele.Nominee_Details.length > 0 ? \"Modification\" : \"Addition\";\n if (ele.Minor && ele.Minor.trim()) minorClient = ele.Minor;\n }\n });\n let status = \"Approved\";\n let nominees = totalNominee.map((ele: any) => {\n if (\n ele.hasOwnProperty(\"attachment\") &&\n ele.attachment.nm &&\n ele.attachment.docType !== \"PhotographAndSignature\"\n )\n if (!ele.qcFlag) status = \"QCPending\";\n\n if (ele.hasOwnProperty(\"attachment\") && !ele.attachment.nm)\n delete ele.attachment;\n if (ele.hasOwnProperty(\"guard\") && ele.guard) {\n if (\n ele.guard.hasOwnProperty(\"attachment\") &&\n ele.guard.attachment.nm &&\n ele.guard.attachment.docType !== \"PhotographAndSignature\"\n )\n if (!ele.guard.qcFlag) status = \"QCPending\";\n if (\n ele.guard.hasOwnProperty(\"attachment\") &&\n !ele.guard.attachment.nm\n )\n delete ele.guard.attachment;\n }\n if (ele.lastName === \"\") {\n ele.lastName = \".\";\n }\n\n if (ele.address) {\n Object.keys(ele.address).map((k) => {\n if (k.includes(\"addr\")) {\n if (ele.address[k].length < 5) {\n let str = \"\";\n for (let i = 0; i < 5 - ele.address[k].length; i++) {\n str += \"-\";\n }\n ele.address[k] += str;\n }\n }\n });\n }\n if (ele.hasOwnProperty(\"guard\")) {\n if (ele.guard.lastName === \"\") {\n ele.guard.lastName = \".\";\n }\n Object.keys(ele.guard.address).map((k) => {\n if (k.includes(\"addr\")) {\n if (ele.guard.address[k].length < 5) {\n let str = \"\";\n for (let i = 0; i < 5 - ele.guard.address[k].length; i++) {\n str += \"-\";\n }\n ele.guard.address[k] += str;\n }\n }\n });\n }\n\n return ele;\n });\n return {\n acTyp: LoginService.getAccData(\"accTyp\"),\n dpId,\n // trdOpt: false,\n // dpOpt: false,\n trdUpd: selectedAcc.includes(\"trading\"),\n dpUpd: selectedAcc.toLowerCase().includes(\"demat\"),\n reqTyp:\n (selectedAcc === \"tradingDemat\" && \"trading+demat\") ||\n (selectedAcc === \"trading\" && \"trading\") ||\n (selectedAcc === \"demat\" && \"demat\"),\n nomTyp,\n subStatus: status,\n minorClient: minorClient,\n nominees: nominees,\n firstHolderSignature: localStorage.getItem(\"signature\") || \"\"\n };\n } else {\n (\n document.getElementsByClassName(\"modal-Sr\")[0] as HTMLDivElement\n ).scrollTo({\n top: 0,\n left: 0,\n behavior: \"smooth\",\n });\n return false;\n }\n },\n }));\n const NomineeForm = () => {\n return (\n
    \n {totalNominee?.length > 0 &&\n totalNominee.map((no: any, i: any) => {\n return (\n
    \n (nomineeRef[i] = ref)}\n enableSubmit={props.enableSubmit}\n dpType={DPType}\n />\n {no.minor && (\n
    \n {no.sameas ? (\n \n ) : (\n (guardianRef[i] = ref)}\n enableSubmit={props.enableSubmit}\n dpType={DPType}\n />\n )}\n
    \n )}\n
    \n );\n })}\n
    \n );\n };\n\n return (\n <>\n
    \n {/*
    \n

    \n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed metus\n nunc, accumsan ultricies orci eget, maximus tristique leo.\n

    \n
    */}\n
    \n
    \n
    Add Nominee Details in
    \n
    \n {!jointHolderErrorMsg && (\n {\n setSelectedAcc(val);\n if (val === \"trading\") {\n setErrors({ ...errors, dp: \"\" });\n setJointHolderErrorMsg(\"\");\n }\n }}\n onlyTrading={dpOptions && dpOptions.length === 0 ? 1 : ( props.onlyTrading === 1 ? 1 : 0)}\n />\n )}\n \n\n
    \n {!jointHolderErrorMsg && (\n
    \n \n {NOOFNOMINEE && NOOFNOMINEE.length > 0 && (\n n.value === totalNominee.length\n )?.value\n : NOOFNOMINEE[0].value\n }\n dropdownOptions={NOOFNOMINEE}\n onSelect={(value: any) => {\n setLoader(true);\n const nominee: any = [];\n for (let i = 1; i <= value; i++) {\n let nom = JSON.parse(JSON.stringify(NOMINEE));\n const per = Math.trunc(100 / value);\n let temp = 0;\n temp = temp + (100 % value);\n if (i == 1) {\n nom.nomPer = `${per + temp}`;\n } else {\n nom.nomPer = `${per}`;\n }\n\n nominee.push(nom);\n }\n setGuardianData(undefined);\n setSameGuardian(undefined);\n setTotalNominee(JSON.parse(JSON.stringify(nominee)));\n // for Rerender ther NominationForm\n setTimeout(() => {\n setLoader(false);\n }, 200);\n }}\n isSearchable={false}\n />\n )}\n
    \n )}\n
    \n
    \n {/* {jointHolderErrorMsg && (\n <>\n
    \n

    {jointHolderErrorMsg}

    \n \n )} */}\n {!jointHolderErrorMsg ? (\n !loader ? (\n
    {NomineeForm()}
    \n ) : (\n
    \n \n
    \n )\n ) : (\n <>\n )}\n
    \n
    \n \n );\n});\n","import React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useState,\n} from \"react\";\nimport LoginService from \"../../../service/login/loginService\";\nimport { IListObj } from \"../../../types/genericTypes\";\nimport { AccounTypeSection } from \"./common/accountTypeSection\";\nimport { DpTrading } from \"./common/dpTrading\";\n\nconst accTypes: Array = [\n { value: \"tradingDemat\", display: \"Trading + Demat\" },\n { value: \"demat\", display: \"Demat\" },\n { value: \"trading\", display: \"Trading\" },\n];\n\nexport const OptOut = forwardRef((props: any, ref: any) => {\n const [dpOptions, setDpOptions] = useState([]);\n const [selectedDp, setSelectedDp] = useState(\"\");\n const [errorMsg, setErrorMsg] = useState(\"\");\n const [accType, setAccType] = useState(\"\");\n const [errors, setErrors] = useState({\n dp: \"\",\n });\n\n useEffect(() => {\n props.dpId({ dpId: selectedDp, accType: accType });\n if (\n dpOptions &&\n dpOptions.length > 0 &&\n selectedDp &&\n accType !== \"trading\"\n ) {\n let selectedDpElement = dpOptions.find((ele: any) => {\n if (ele.value === selectedDp) return ele;\n });\n if (selectedDpElement && selectedDpElement.Demat_HolderType) {\n if (selectedDpElement.Demat_HolderType === \"Joint\") {\n props.enableSubmit(false);\n setErrorMsg(\n \"It seems that the DP Account is a joint holder account. This request cannot be processed online.\"\n );\n } else {\n setErrorMsg(undefined);\n if (accType === \"trading\" || selectedDp) props.enableSubmit(true);\n }\n }\n } else {\n if (accType === \"trading\" || selectedDp) props.enableSubmit(true);\n }\n }, [selectedDp, accType]);\n\n useEffect(() => {\n getNomineeDetails();\n }, []);\n\n useEffect(() => {\n if (dpOptions.length === 2 && !dpOptions[1].value)\n props.enableSubmit(false);\n }, [dpOptions]);\n\n useImperativeHandle(ref, () => ({\n submitData() {\n let hasErr = false;\n let updateObj: any = {};\n\n let dpId = selectedDp;\n\n if (!selectedDp || accType === \"trading\") {\n //if only trading visible/ trading option selected\n if (props.nomineeDet)\n props.nomineeDet[0].DematDetails.forEach((ele: any) => {\n if (ele.DefaultDemat === \"Yes\") dpId = ele.Demat_Account_Number;\n });\n }\n\n if (dpOptions.length > 1 && accType !== \"trading\") {\n if (!selectedDp) {\n updateObj.dp = \"Please select DP Id\";\n hasErr = true;\n }\n setErrors({\n ...errors,\n ...updateObj,\n });\n }\n if (!hasErr) {\n let minorClient = \"No\";\n props.nomineeDet[0].DematDetails.forEach((ele: any) => {\n if (\n ele.Demat_Account_Number === dpId &&\n ele.Minor &&\n ele.Minor.trim()\n )\n minorClient = ele.Minor;\n });\n let reqObj = {\n acTyp: LoginService.getAccData(\"accTyp\"),\n dpId: dpId,\n trdOpt: accType.includes(\"trading\"),\n dpOpt: accType.toLowerCase().includes(\"demat\"),\n trdUpd: accType.includes(\"trading\"),\n dpUpd: accType.toLowerCase().includes(\"demat\"),\n reqTyp:\n (accType === \"tradingDemat\" && \"trading+demat\") ||\n (accType === \"trading\" && \"trading\") ||\n (accType === \"demat\" && \"demat\"),\n nomTyp: \"Opt Out\",\n minorClient: minorClient,\n subStatus: \"Approved\",\n };\n return reqObj;\n }\n {\n props.enableSubmit(false);\n return false;\n }\n },\n }));\n\n const getNomineeDetails = async () => {\n let resp = props.nomineeDet;\n\n let dpOptions: any = [];\n if (resp.length > 0) {\n resp[0].DematDetails.forEach((ele: any) => {\n if (\n ele.DematTagging !== \"Opted Out\" &&\n ele.DematTagging !== \"OUTSIDE_DP\"\n ) {\n let dematAccNo = ele.Demat_Account_Number.trim();\n if (dpOptions.length === 0) {\n dpOptions.push({\n display: \"Select DP Details\",\n value: \"\",\n });\n }\n dpOptions.push({\n display: dematAccNo,\n value: dematAccNo,\n ...ele,\n });\n }\n });\n if (dpOptions.length > 2) {\n setDpOptions(dpOptions);\n setSelectedDp(dpOptions[0].value);\n setAccType(accTypes[0].value);\n } else if (dpOptions.length === 2) {\n setDpOptions(dpOptions);\n setSelectedDp(dpOptions[1].value);\n setAccType(accTypes[0].value);\n } else if (dpOptions.length === 0) {\n setErrorMsg(\"Data in all DPs are updated\");\n setAccType(accTypes[2].value);\n }\n // props.enableSubmit(true);\n }\n };\n\n return (\n <>\n
    \n {\n setAccType(val);\n if (val === \"trading\") {\n setErrorMsg(\"\");\n }\n }}\n onlyTrading={dpOptions.length === 0 ? 1 : ( props.onlyTrading === 1 ? 1 : 0)}\n />\n \n
    \n {/*
    \n
    \n
    \n
    \n {!errorMsg && (\n
    \n {\n setAccType(accTypes[0].value);\n }}\n selected={accType}\n />\n
    \n )}\n\n {!errorMsg && (\n
    \n {\n setAccType(accTypes[1].value);\n }}\n selected={accType}\n />\n
    \n )}\n {!(\n errorMsg &&\n errorMsg ===\n \"It seems that the DP Account is a joint holder account. This request cannot be processed online.\"\n ) && (\n
    \n {\n setAccType(accTypes[2].value);\n }}\n selected={accType}\n />\n
    \n )}\n
    \n
    \n
    \n {dpOptions.length > 2 && accType !== \"trading\" && (\n
    \n
    \n
    \n
    \n \n 0 ? selectedDp : \"Select DP Details\"\n }\n dropdownOptions={\n selectedDp\n ? dpOptions.filter((ele: any, i: any) => {\n return i !== 0;\n })\n : dpOptions\n }\n onSelect={(val) => {\n if (val) {\n setSelectedDp(val);\n }\n }}\n isSearchable={false}\n />\n
    \n
    \n
    \n
    \n )}\n {dpOptions.length === 2 && accType != \"trading\" && (\n
    \n
    \n
    \n
    \n \n\n {}}\n onBlur={() => {}}\n placeholder=\"\"\n disabled={true}\n />\n
    \n
    \n
    \n
    \n )}\n {errorMsg && (\n <>\n
    \n

    {errorMsg}

    \n \n )} */}\n \n );\n});\n","import React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport {\n identificationOptions,\n NOMINEE,\n NOMINEEERROR,\n Required,\n TYPE,\n} from \"../addNominee/constant\";\nimport { IdentifDet } from \"../addNominee/identificationSection\";\ninterface Type {\n id: number;\n name: string;\n fieldName: string;\n}\nexport const IdentificationForNominee = forwardRef((props: any, ref: any) => {\n const [type, setType] = useState();\n const [nominee, setNominee] = useState();\n const [nomineeErr, setNomineeErr] = useState(NOMINEEERROR);\n const [identity, setIdentity] = useState();\n const [hasErr, setHasErr] = useState();\n const [showOptional, setShowOptional] = useState(false);\n\n const childRef = useRef();\n\n useEffect(() => {\n const Type = TYPE.find((t) => t.id === props.type);\n setNominee(\n Type?.id === 1 ? props.nominee[props.id] : props.nominee[props.id].guard\n );\n\n setType(Type);\n }, []);\n useImperativeHandle(ref, () => ({\n validation() {\n let err: any = nomineeErr;\n let validation = true;\n const required = [];\n\n if (identity) {\n if (\n identity === identificationOptions[1].value ||\n identity === identificationOptions[6].value\n ) {\n required.push(\"attachment\");\n } else {\n required.push(identity);\n }\n } else {\n // err.identity = \"This Field is Required.\";\n // validation = false;\n }\n\n required.map((x: any) => {\n const child: any = childRef?.current;\n if (child && child.hasError(nominee[x])) {\n validation = false;\n setHasErr(true);\n } else setHasErr(false);\n if (x === \"attachment\") {\n nominee[x] = nominee[x]?.data;\n }\n if (\n nominee[x] === \"\" ||\n nominee[x] === null ||\n nominee[x] === undefined\n ) {\n // err[x] = `This field is Required.`;\n validation = false;\n }\n });\n\n return validation;\n },\n }));\n useEffect(() => {\n if (hasErr) {\n props.enableSubmit(false);\n } else {\n if (\n Object.values(nomineeErr)\n .map((x) => x === \"\" || x === null || x === undefined)\n .every((x) => x === true)\n ) {\n props.enableSubmit(true);\n } else {\n props.enableSubmit(false);\n }\n }\n }, [nomineeErr, hasErr]);\n\n const onChange = (value: any) => {\n let nom = nominee;\n setNominee({ ...nom, ...value });\n const key = Object.keys(value)[0];\n\n setNomineeErr({ ...nomineeErr, [key]: \"\" });\n const totalNominee = JSON.parse(JSON.stringify(props.nominee));\n if (props.type === 1) {\n totalNominee[props.id] = {\n ...nom,\n ...value,\n };\n } else {\n totalNominee[props.id].guard = {\n ...nom,\n ...value,\n };\n }\n\n props.updateNominee(totalNominee);\n };\n\n return (\n <>\n
    \n
    \n
    \n \n
    \n
    \n setShowOptional(false)}\n >\n
    \n
    \n\n {showOptional && (\n
    \n {nominee && type && nomineeErr && (\n \n )}\n
    \n )}\n
    \n \n );\n});\n","import React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useState,\n} from \"react\";\nimport InputField from \"../../../../generic/inputField\";\nimport TocDropdown from \"../../../../generic/tocDropdown\";\nimport { IListObj } from \"../../../../types/genericTypes\";\nimport { AccounTypeSection } from \"../common/accountTypeSection\";\nimport { NomineeDisplaySection } from \"../common/nomineeDisplaySection\";\nimport * as esignService from \"../../../../service/esign/esignService\";\nimport LoginService from \"../../../../service/login/loginService\";\nimport {\n ageCalculator,\n applicantRelationships,\n NOMINEE,\n} from \"../addNominee/constant\";\nimport { IdentificationForNominee } from \"./identificationForm\";\nimport { NomineeGuardianForm } from \"../addNominee/form\";\nimport { ShowDetails } from \"../addNominee/showDetails\";\nimport { DpTrading } from \"../common/dpTrading\";\nimport { GetPersonDetails } from \"../../../../service/serviceRequest/srApiService\";\n\nconst nomineeRef: any = [];\nconst guardianRef: any = [];\n\nconst accTypes: Array = [\n { value: \"tradingDemat\", display: \"Trading + Demat\" },\n { value: \"demat\", display: \"Demat\" },\n { value: \"trading\", display: \"Trading\" },\n];\n\nexport const Replication = forwardRef((props: any, ref: any) => {\n const [dpOptions, setDpOptions] = useState([]);\n const [selectedDp, setSelectedDp] = useState(\"\");\n const [userPan, setUserPan] = useState(\"\");\n //\n\n //nominee dropdoptions\n const [nominOptions, setNominOptions] = useState([]);\n const [selectedNominee, setSelectedNominee] = useState(\"\");\n //\n\n //\n const [selectedAcc, setSelectedAcc] = useState(accTypes[0].value);\n const [dpToReplicate, setDpToReplicate] = useState({});\n const [totalNominee, setTotalNominee] = useState([]);\n const [oldNominees, setoldNominees] = useState([]);\n const [errorMsg, setErrorMsg] = useState(\"\");\n const [errors, setErrors] = useState({\n dp: \"\",\n selectedNominee: \"\",\n });\n const [editNomin, setEditNomin] = useState(true);\n const [DPType, setDPType] = useState(\"\");\n const [GuardianData, setGuardianData] = useState([]);\n const [sameGuardian, setSameGuardian] = useState(\n undefined\n );\n const [updateShowDetails, setUpdateShowDetails] = useState(false);\n const [isGuardianAvailable, setIsGuardianAvailable] =\n useState(false);\n useEffect(() => {\n let dpId = selectedDp;\n if (!selectedDp || selectedAcc === \"trading\") {\n //if only trading visible/ trading option selected\n if (props.nomineeDet)\n props.nomineeDet[0].DematDetails.forEach((ele: any) => {\n if (ele.DefaultDemat === \"Yes\") dpId = ele.Demat_Account_Number;\n });\n }\n // //console.log('dpId',dpId);\n\n let reqObj = {\n acTyp: LoginService.getAccData(\"accTyp\"),\n dpId: dpId,\n trdOpt: false,\n dpOpt: false,\n trdUpd: selectedAcc.includes(\"trading\"),\n dpUpd: selectedAcc.toLowerCase().includes(\"demat\"),\n reqTyp:\n (selectedAcc === \"tradingDemat\" && \"trading+demat\") ||\n (selectedAcc === \"trading\" && \"trading\") ||\n (selectedAcc === \"demat\" && \"demat\"),\n nomTyp: \"Modification\",\n nominees: totalNominee,\n };\n ////console.log(\"reqObj\", reqObj);\n\n // props.payload(reqObj);\n // let hasErr = false;\n\n // totalNominee.forEach((ele: any) => {\n // if (\n // !(\n // ele.aadhar ||\n // ele.bankAcc ||\n // ele.pan ||\n // ele.dpId ||\n // ele.attachment.nm\n // ) ||\n // (ele.minor &&\n // !(\n // ele.guard.aadhar ||\n // ele.guard.bankAcc ||\n // ele.guard.pan ||\n // ele.guard.dpId ||\n // ele.guard.attachment.nm\n // ))\n // )\n // hasErr = true;\n // });\n\n if (\n // (dpOptions.length > 0 && selectedAcc !== \"trading\" ? selectedDp : true) &&\n // (nominOptions.length > 1 ? selectedNominee : true) &&\n // selectedAcc &&\n // !errorMsg\n // // &&\n // // !hasErr\n errors.dp ||\n errors.selectedNominee ||\n errorMsg ||\n totalNominee.length > 3 ||\n (selectedNominee && selectedNominee.includes(\"trading\"))\n )\n props.enableSubmit(false);\n else props.enableSubmit(true);\n }, [\n selectedDp,\n selectedAcc,\n selectedNominee,\n totalNominee,\n errorMsg,\n errors,\n ]);\n\n useEffect(() => {\n if (selectedDp)\n setDPType(\n selectedAcc === \"trading\"\n ? \"\"\n : selectedDp.includes(\"IN\")\n ? \"NSDL\"\n : \"CDSL\"\n );\n }, [selectedDp, selectedAcc]);\n\n useEffect(() => {\n //reset nominee details on cancel of edit\n if (!editNomin && oldNominees.length > 0) setTotalNominee(oldNominees);\n }, [editNomin, totalNominee]);\n async function getPersonalDetails() {\n let personaldetails = await GetPersonDetails();\n if (personaldetails && personaldetails.pANNumberField) {\n setUserPan(personaldetails.pANNumberField);\n } else {\n setUserPan(\"\");\n }\n }\n useEffect(() => {\n let resp = props.nomineeDet;\n\n //nominee dropdown mapping\n let nominDetOptions: any = [];\n props.nomineeDet[0].DematDetails.map((ele: any) => {\n if (ele.DematTagging === \"Nominee Available\")\n nominDetOptions.push({\n ...ele,\n display:\n \"DP ID - \" +\n ele.Demat_Account_Number +\n \" \" +\n \" ( \" +\n ele.Nominee_Details.length +\n \" )\",\n value: ele.Demat_Account_Number,\n });\n });\n let tradDet =\n props.nomineeDet[0].TradingDetails.TradingTagging === \"Nominee Available\"\n ? props.nomineeDet[0].TradingDetails\n : {};\n if (tradDet.TradingTagging)\n nominDetOptions.push({\n ...tradDet,\n display: \"Trading - \" + tradDet.AccountCode,\n value: \"trading\",\n });\n if (nominDetOptions.length > 1) {\n if (nominDetOptions.length > 0)\n setNominOptions([\n {\n display: \"Select Nominee Details\",\n value: \"\",\n },\n ...nominDetOptions,\n ]);\n } else {\n if (nominDetOptions.length > 0) {\n setNominees(nominDetOptions[0]);\n setDpToReplicate(nominDetOptions[0]);\n }\n }\n //dp\n getPersonalDetails();\n setDpDetails(resp[0].DematDetails);\n //nomindet\n }, [props.nomineeDet]);\n\n useEffect(() => {\n let dpData = dpOptions.find((ele: any) => {\n return ele.value === selectedDp;\n });\n if (dpData) {\n if (dpData.Demat_HolderType === \"Joint\") {\n setErrorMsg(\n \"It seems that the DP Account is a joint holder account. This request cannot be processed online.\"\n );\n } else setErrorMsg(\"\");\n }\n }, [selectedDp]);\n\n const setDpDetails = (dematDet: any) => {\n let dpOptions: any = [];\n\n dematDet.forEach((ele: any) => {\n if (ele.DematTagging !== \"OUTSIDE_DP\") {\n if (dpOptions.length === 0) {\n dpOptions.push({\n display: \"Select DP Details\",\n value: \"\",\n });\n }\n dpOptions.push({\n display: ele.Demat_Account_Number,\n value: ele.Demat_Account_Number,\n ...ele,\n });\n }\n });\n if (dpOptions.length > 2) {\n setDpOptions(dpOptions);\n // setDpToReplicate(dpOptions[1]);\n } else if (dpOptions.length === 2) {\n setDpOptions(dpOptions);\n setSelectedDp(dpOptions[1].value);\n }\n //dp\n };\n\n const downloadAttachment = async () => {\n if (\n props.nomineeDet[0].TradingDetails.fileExtension.toLowerCase() === \"pdf\"\n )\n await esignService.base64toPDF(\n props.nomineeDet[0].TradingDetails.TradingNomimeeForm,\n \"TradingDetails\"\n );\n else if (\n props.nomineeDet[0].TradingDetails.fileExtension === \"jpg\" ||\n props.nomineeDet[0].TradingDetails.fileExtension === \"jpeg\"\n ) {\n console.log(\"open image\");\n var a = document.createElement(\"a\"); //Create \n a.href =\n \"data:application/pdf;base64,\" +\n props.nomineeDet[0].TradingDetails.TradingNomimeeForm; //Image Base64 Goes here\n a.download = \"Image.png\"; //File name Here\n a.click(); //Downloaded file\n }\n };\n const isMinor = (date: any) => {\n const age = ageCalculator(date);\n return age < 18;\n };\n\n //set payload for nominee array\n const setNominees = (dpDet: any) => {\n let totNominees: any = [];\n if (dpDet.Nominee_Details.length > 0) {\n dpDet.Nominee_Details.map((ele: any) => {\n let nominee: any = NOMINEE;\n let nominRel = applicantRelationships.find((rel: any) => {\n if (rel.code === String(Number(ele.NomineeRelationShip))) {\n return rel;\n }\n });\n nominee = {\n firstName: ele.FirstName.replace(/\\./g, \"\"),\n middleName: ele.MiddleName.replace(/\\./g, \"\"),\n lastName: ele.LastName.replace(/\\./g, \"\"),\n title: ele.Title,\n address: {\n addr1: ele.AddressLine1.replace(/-/g, \" \"),\n addr2: ele.AddressLine2.replace(/-/g, \" \"),\n addr3: ele.AddressLine3.replace(/-/g, \" \"),\n addr4: ele.AddressLine4.replace(/-/g, \" \"),\n // city: \"\",\n // state: \"\",\n // pin: \"\",\n city: ele.City,\n state: ele.CState,\n pin: ele.PinCode,\n country: ele.Country,\n // address:\n // ele.AddressLine1 +\n // (ele.AddressLine2 && \" \" + ele.AddressLine2) +\n // (ele.AddressLine3 && \" \" + ele.AddressLine3) +\n // (ele.AddressLine4 && \" \" + ele.AddressLine4),\n },\n phone: ele.Phone1,\n email: ele.EmailId,\n // minor: ele.MinorIndicator === \"1\" ? true : false,\n minor: isMinor(ele.BirthDate),\n guardian: false,\n birthdate: ele.BirthDate,\n nomPer: ele.NomineePercentage\n ? parseInt(String(ele.NomineePercentage))\n : \"\",\n nomRel: nominRel?.value,\n aadhar: \"\",\n bankAcc: \"\",\n pan: \"\",\n dpId: \"\",\n idTyp: \"\",\n attachment: {},\n };\n if (nominee.minor) {\n if (dpDet.Guardian_Details.length > 0) {\n let guardDet = dpDet.Guardian_Details.find((guard: any) => {\n return guard.SrNo === ele.SrNo;\n });\n if (guardDet.FirstName) {\n let nominRel = applicantRelationships.find((guardRel: any) => {\n if (\n guardRel.code === String(Number(guardDet.NomineeRelationShip))\n )\n return ele;\n });\n nominee.guard = {\n firstName: guardDet.FirstName,\n middleName: guardDet.MiddleName,\n lastName: guardDet.LastName,\n title: guardDet.Title,\n address: {\n addr1: guardDet.AddressLine1.replaceAll(\"-\", \"\"),\n addr2: guardDet.AddressLine2.replaceAll(\"-\", \"\"),\n addr3: guardDet.AddressLine3.replaceAll(\"-\", \"\"),\n addr4: guardDet.AddressLine4.replaceAll(\"-\", \"\"),\n city: guardDet.City,\n state: guardDet.CState,\n pin: guardDet.PinCode,\n country: guardDet.Country,\n },\n phone: guardDet.Phone1,\n email: guardDet.EmailId,\n minor: isMinor(guardDet.BirthDate),\n // minor: guardDet.MinorIndicator === \"1\" ? true : false,\n guardian: true,\n birthdate: guardDet.BirthDate,\n nomPer: \"\",\n nomRel: nominRel?.value,\n aadhar: \"\",\n bankAcc: \"\",\n pan: \"\",\n dpId: \"\",\n idTyp: \"\",\n attachment: {},\n };\n }\n } else {\n nominee.guard = NOMINEE;\n nominee.guard.guardian = true;\n nominee.guard.nomPer = \"\";\n nominee.minor = true;\n }\n } else if (isMinor(ele.BirthDate)) {\n nominee.guard = NOMINEE;\n nominee.guard.guardian = true;\n nominee.guard.nomPer = \"\";\n nominee.minor = true;\n }\n\n totNominees.push(nominee);\n });\n setTotalNominee(totNominees);\n if (!editNomin && dpDet.hasOwnProperty(\"DematTagging\"))\n setoldNominees(totNominees);\n }\n };\n useEffect(() => {\n let expetedGurdian = [];\n if (totalNominee.length > 1 && typeof sameGuardian === \"boolean\") {\n for (let i = 0; i < totalNominee.length - 1; i++) {\n if (expetedGurdian.length > 0) {\n for (let j = 0; j < expetedGurdian.length; j++) {\n if (\n expetedGurdian[j].firstName !== totalNominee[i].guard.firstName\n ) {\n expetedGurdian.push(totalNominee[i].guard);\n setGuardianData(expetedGurdian);\n }\n }\n } else {\n expetedGurdian.push(totalNominee[i].guard);\n setGuardianData(expetedGurdian);\n }\n }\n setSameGuardian(undefined);\n }\n }, [sameGuardian, updateShowDetails]);\n useEffect(() => {\n // console.log(\"totalNominee\", totalNominee);\n // console.log(totalNominee);\n\n if (totalNominee.length > 1) {\n setUpdateShowDetails(!updateShowDetails);\n for (let i = 0; i < totalNominee.length - 1; i++) {\n if (totalNominee[i].minor) {\n setIsGuardianAvailable(true);\n }\n }\n }\n }, [totalNominee]);\n useImperativeHandle(ref, () => ({\n submitData() {\n let hasErr = false;\n let updateObj: any = {};\n if (dpOptions.length > 1 && selectedAcc !== \"trading\") {\n if (!selectedDp) {\n updateObj.dp = \"Please select DP Id\";\n hasErr = true;\n }\n }\n\n if (nominOptions.length > 1) {\n if (!selectedNominee) {\n updateObj.selectedNominee = \"Please select nominee\";\n hasErr = true;\n }\n }\n\n const nomineeVal = nomineeRef.map((x: any) => {\n return x.validation();\n });\n\n const guardVal = guardianRef.map((x: any) => {\n if (x) return x.validation();\n else return true;\n });\n const isValid = [...nomineeVal, ...guardVal].every((x) => x === true);\n // if (!isValid) updateObj.identifForm = \"Please select nominee\";\n\n setErrors({\n ...errors,\n ...updateObj,\n });\n if (isValid && !hasErr) {\n let dpId = selectedDp;\n\n if (!selectedDp || selectedAcc === \"trading\") {\n //if only trading visible/ trading option selected\n if (props.nomineeDet)\n props.nomineeDet[0].DematDetails.forEach((ele: any) => {\n if (ele.DefaultDemat === \"Yes\") dpId = ele.Demat_Account_Number;\n });\n }\n let nomTyp = \"Modification\";\n let minorClient = \"No\";\n props.nomineeDet[0].DematDetails.forEach((ele: any) => {\n if (ele.Demat_Account_Number === dpId) {\n nomTyp =\n ele.Nominee_Details.length > 0 ? \"Modification\" : \"Addition\";\n if (ele.Minor && ele.Minor.trim()) minorClient = ele.Minor;\n }\n });\n let status = \"Approved\";\n let nominees = totalNominee.map((ele: any) => {\n if (\n ele.attachment.nm &&\n ele.attachment.docType !== \"PhotographAndSignature\"\n )\n if (!ele.qcFlag) status = \"QCPending\";\n\n if (!ele.attachment.nm) delete ele.attachment;\n if (ele.guard) {\n if (\n ele.guard.attachment.nm &&\n ele.guard.attachment.docType !== \"PhotographAndSignature\"\n )\n if (!ele.guard.qcFlag) status = \"QCPending\";\n\n if (!ele.guard.attachment.nm) delete ele.guard.attachment;\n }\n if (ele.lastName === \"\") {\n ele.lastName = \".\";\n }\n\n if (ele.address) {\n Object.keys(ele.address).map((k) => {\n if (k.includes(\"addr\")) {\n if (ele.address[k].length < 5) {\n let str = \"\";\n for (let i = 0; i < 5 - ele.address[k].length; i++) {\n str += \"-\";\n }\n ele.address[k] += str;\n }\n }\n });\n }\n if (ele.hasOwnProperty(\"guard\")) {\n if (ele.guard.lastName === \"\") {\n ele.guard.lastName = \".\";\n }\n Object.keys(ele.guard.address).map((k) => {\n if (k.includes(\"addr\")) {\n if (ele.guard.address[k].length < 5) {\n let str = \"\";\n for (let i = 0; i < 5 - ele.guard.address[k].length; i++) {\n str += \"-\";\n }\n ele.guard.address[k] += str;\n }\n }\n });\n }\n return ele;\n });\n let reqObj = {\n acTyp: LoginService.getAccData(\"accTyp\"),\n dpId: dpId,\n // trdOpt: false,\n // dpOpt: false,\n trdUpd: selectedAcc.includes(\"trading\"),\n dpUpd: selectedAcc.toLowerCase().includes(\"demat\"),\n reqTyp:\n (selectedAcc === \"tradingDemat\" && \"trading+demat\") ||\n (selectedAcc === \"trading\" && \"trading\") ||\n (selectedAcc === \"demat\" && \"demat\"),\n nomTyp: nomTyp,\n subStatus: status,\n minorClient: minorClient,\n nominees: nominees,\n };\n return reqObj;\n } else {\n (\n document.getElementsByClassName(\"modal-Sr\")[0] as HTMLDivElement\n ).scrollTo({\n top: 0,\n left: 0,\n behavior: \"smooth\",\n });\n return false;\n }\n },\n }));\n return (\n <>\n {props.nomineeDet && (\n <>\n
    \n {/*
    \n

    \n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed metus\n nunc, accumsan ultricies orci eget, maximus tristique leo.\n

    \n
    */}\n {/* //nominee dropdown */}\n {nominOptions.length > 1 && (\n
    \n
    \n
    \n \n 0 ? selectedNominee : \"\"\n }\n dropdownOptions={nominOptions}\n onSelect={(val: any) => {\n setSelectedNominee(val);\n let dpDet = nominOptions.find((ele: any) => {\n if (val != \"trading\") {\n return ele.Demat_Account_Number === val;\n } else {\n // return ele.DefaultDemat === \"Yes\";\n }\n });\n if (dpDet) {\n setDpToReplicate(dpDet);\n setNominees(dpDet);\n setErrors({ ...errors, selectedNominee: \"\", dp: \"\" });\n } else {\n setTotalNominee([]);\n }\n }}\n isSearchable={false}\n />\n
    \n {/*
    */}\n {errors.selectedNominee && (\n
    \n

    {errors.selectedNominee}

    \n
    \n )}\n
    \n
    \n )}\n {/* */}\n\n {/* //display section */}\n {(selectedNominee || nominOptions.length === 0) &&\n totalNominee.length <= 3 && (\n <>\n {/* {dpToReplicate.hasOwnProperty(\"DematTagging\") && (\n <>\n {\n {\n setEditNomin(true);\n }}\n editNomin={true}\n />\n }\n \n )} */}\n\n {/* //dp and trading dropdown */}\n {(nominOptions.length > 0\n ? selectedNominee && !selectedNominee.includes(\"trading\")\n : true) && (\n
    \n
    \n
    \n Replicate Nominee Details in\n
    \n
    \n {\n setSelectedAcc(val);\n if (val === \"trading\") {\n setErrorMsg(\"\");\n setErrors({ ...errors, dp: \"\" });\n }\n }}\n onlyTrading={dpOptions.length === 0 ? 1 : 0}\n />\n\n \n {editNomin &&\n totalNominee?.length > 0 &&\n totalNominee.map((no: any, i: any) => {\n return (\n
    \n (nomineeRef[i] = ref)}\n enableSubmit={(val: any) => {\n props.enableSubmit(val);\n }}\n dpType={DPType}\n />\n {no.minor && (\n
    \n {no.sameas ? (\n \n ) : (\n (guardianRef[i] = ref)}\n enableSubmit={props.enableSubmit}\n dpType={DPType}\n />\n )}\n
    \n )}\n
    \n );\n })}\n
    \n )}\n {/* / */}\n \n )}\n {/* */}\n\n {selectedNominee &&\n selectedNominee.includes(\"trading\") &&\n props.nomineeDet[0].TradingDetails.TradingNomimeeForm && (\n
    \n )}\n
    \n\n {/* //identification Section */}\n {(dpToReplicate.hasOwnProperty(\"Nominee_Details\") && !errorMsg\n ? dpToReplicate.Nominee_Details.length > 0\n : false) &&\n !editNomin &&\n totalNominee.length <= 3 &&\n selectedNominee &&\n !selectedNominee.includes(\"trading\") &&\n totalNominee.map((no: any, i: any) => {\n return (\n
    \n (nomineeRef[i] = ref)}\n enableSubmit={(val: any) => {\n if (errors.dp || errors.selectedNominee)\n props.enableSubmit(false);\n else props.enableSubmit(val);\n }}\n />\n {no.minor && (\n (guardianRef[i] = ref)}\n enableSubmit={(val: any) => {\n if (errors.dp || errors.selectedNominee)\n props.enableSubmit(false);\n else props.enableSubmit(val);\n }}\n />\n )}\n
    \n );\n })}\n \n )}\n {totalNominee.length > 3 && (\n
    \n

    \n More than 3 nominees are not allowed. Please select update nominee\n option and update details.\n

    \n
    \n )}\n {selectedNominee && selectedNominee.includes(\"trading\") && (\n
    \n

    \n Please update nominee details from update nominee option.\n

    \n
    \n )}\n \n );\n});\n","import React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useState,\n useRef,\n} from \"react\";\nimport RadioButton from \"../../../generic/radioButton\";\nimport { IListObj } from \"../../../types/genericTypes\";\nimport { AddNewNominee } from \"./addNewNominee\";\nimport { OptOut } from \"./optOut\";\nimport { Replication } from \"./replicate/replicate\";\nimport { GetNomineeDetails, createServiceReqNomin } from \"../../../service/serviceRequest/srApiService\";\nimport { StatusScreen } from \"../../generic/statusScreen\";\nconst payMethod: Array = [\n { value: \"replicate\", display: \"Replicate\" },\n { value: \"optOut\", display: \"Opt Out\" },\n { value: \"updateNominee\", display: \"Update Nominee\" },\n];\nconst message: any = {\n replicate:\n \"Nominee details as given in below table will be updated in Demat and/or Trading account as per your selection.\",\n updateNominee:\n \"In case you wish to update nominee in your Demat and/or Trading account, please enter nominee details. This nomination shall supersede any prior nomination made by the account holder(s), if any.\",\n optOut:\n \"I / We hereby confirm that I / We do not wish to appoint any nominee(s) in my / our trading / demat account and understand the issues involved in non-appointment of nominee(s) and further are aware that in case of death of all the account holder(s), my / our legal heirs would need to submit all the requisite documents / information for claiming of assets held in my / our trading / demat account, which may also include documents issued by Court or other such competent authority, based on the value of assets held in the trading / demat account.\",\n};\n\nexport const Nomination = forwardRef((props: any, ref: any) => {\n const [nominType, setNominType] = useState(payMethod[1].value);\n const [existingNominationSR, setExistingNominationSR] = useState(\"\");\n const [nomineeDet, setNomineeDetails] = useState([]);\n const [nomineeForm, setNomineeForm] = useState({\n selectedDp: \"\", tradingUpd: false, dematUpd: false, nominees: []\n });\n const [reqObj, setReqObj] = useState({});\n const nominee: any = useRef();\n\n useImperativeHandle(ref, () => ({\n submitData(val: any) {\n submitForm();\n },\n }));\n\n useEffect(() => {\n checkExistingNominSR();\n }, []);\n\n const isNomineePresent = (data: any) => {\n if (data) {\n let dpNomineesCount = data.DematDetails.filter((ele: any) => {\n return ele.DematTagging === \"Nominee Available\";\n }).length;\n\n return dpNomineesCount > 0;\n }\n };\n const getNomineeDetails = async () => {\n let res: any = await GetNomineeDetails();\n if (res.data && res.data.value) {\n setNomineeDetails(JSON.parse(res.data.value));\n } else openSRErrorPopup();\n };\n const submitForm = async () => {\n var payload = undefined;\n\n if (nominee.current) payload = nominee.current.submitData();\n else {\n props.setLoader(false);\n return nominee;\n }\n if (payload.acTyp || reqObj.acTyp) {\n props.setLoader(true);\n\n let resp = await createServiceReqNomin(payload || reqObj);\n let nomineePopup = localStorage.getItem(\"mandatePopup\");\n if(nomineePopup == \"nominee\")\n localStorage.removeItem(\"mandatePopup\");\n if (resp && resp.data && resp.data.srId) {\n localStorage.setItem(\"srId\", resp.data.srId)\n localStorage.setItem(\"nomPdf\", resp.data.data)\n setTimeout(() => {\n openSRSuccessPopup();\n },1500)\n } else if(resp && resp.error && resp.error.errCd === \"SR0005\" ){\n openExistSrPopup()\n\n } \n else openSRErrorPopup()\n }\n };\n const openSRSuccessPopup = () => {\n props.setLoader(false);\n let paramObj: any = {\n content:\n \"Your request will be updated within TWO working days. Status of your request will be communicated through Email\",\n headerText: \"We have received your request!\",\n btnText: \"Download Pre-filled form\",\n popupType: \"Success\",\n type: \"nomination\"\n };\n\n props.onSubmit(\"nomination\", paramObj);\n };\n const checkExistingNominSR = async () => {\n props.showFooter(true);\n setExistingNominationSR(\"\");\n props.setBtnText(\"Submit\");\n getNomineeDetails();\n };\n function downloadNomForm() {\n let url = process.env.PUBLIC_URL + \"/documents/NominationForm.pdf\";\n if (localStorage.getItem(\"lgnSrc\") === \"iphone\") window.open(url, \"_blank\");\n else {\n var link = document.createElement(\"a\");\n document.body.appendChild(link);\n link.href = url;\n link.download = \"NominationForm.pdf\";\n var evt = new MouseEvent(\"click\", {\n view: window,\n bubbles: true,\n cancelable: false,\n });\n link.dispatchEvent(evt);\n window.URL.revokeObjectURL(url);\n }\n }\n \n const openSRErrorPopup = () => {\n props.setLoader(false);\n props.onSubmit(\"nomination\", {\n headerText: \"There was some problem in raising service request. Please try again later.\",\n });\n };\n \n const openExistSrPopup = () => {\n props.setLoader(false);\n props.onSubmit(\"nomination\", {\n headerText: \"You have an active service request\",\n content: \"You already have an active service request. Once it is updated, you will be able to raise new request.\",\n });\n };\n \n return (\n <>\n {existingNominationSR ? (\n \n ) : (\n
    \n
    \n
    \n
    Options
    \n
    \n
    \n \n {isNomineePresent(nomineeDet[0]) &&\n nomineeDet.length > 0 &&\n nomineeDet[0].TradingDetails.Minor !== \"Yes\" && (\n
    \n {\n setNominType(payMethod[0].value);\n }}\n selected={nominType}\n />\n

    Add same nominee details

    \n
    \n )}\n\n
    \n {\n setNominType(payMethod[1].value);\n }}\n selected={nominType}\n />\n

    I do not wish to nominate anyone

    \n
    \n {nomineeDet.length > 0 &&\n nomineeDet[0].TradingDetails.Minor !== \"Yes\" && (\n
    \n {\n setNominType(payMethod[2].value);\n }}\n selected={nominType}\n />\n

    I wish to update nominee

    \n
    \n )}\n
    \n
    \n
    \n
    \n

    {message[nominType]}

    \n
    \n\n {nominType === \"replicate\" && nomineeDet.length > 0 && (\n {\n setReqObj(val);\n }}\n enableSubmit={(val: any) => {\n props.enableSubmit(val);\n }}\n ref={nominee}\n setLoader={(val: any) => props.setLoader(val)}\n />\n )}\n {nominType === \"optOut\" && nomineeDet.length > 0 && (\n {\n props.enableSubmit(val);\n }}\n nomineeDet={nomineeDet}\n onlyTrading = {(props.acntCategory === \"Individual Outside DP\" || props.acntCategory === \"Individual Missing DP Details\") ? 1 : 0 }\n ref={nominee}\n dpId={(obj: any) => {\n setNomineeForm({\n ...nomineeForm,\n selectedDp: obj.dpId,\n tradingUpd: obj.accType.includes(\"trading\"),\n dematUpd: obj.accType.toLowerCase().includes(\"demat\"),\n });\n }}\n setLoader={(val: any) => props.setLoader(val)}\n showErrorPopup={() => {\n openSRErrorPopup();\n }}\n />\n )}\n {nominType === \"updateNominee\" && (\n {\n props.enableSubmit(val);\n }}\n ref={nominee}\n setNomineeForm={setNomineeForm}\n loader={props.loader}\n setLoader={(val: any) => props.setLoader(val)}\n showErrorPopup={() => {\n openSRErrorPopup();\n }}\n />\n )}\n \n )}\n \n );\n});\n","import React, { useState } from \"react\";\nimport \"../../../../assets/scss/components/clientarea/serviceRequest/serviceRequest.scss\";\nimport {\n createDdpiSR,\n DdpiValidation,\n getDdpiDetails,\n getDDPIPreFilledFormPDF,\n} from \"../../../service/serviceRequest/srApiService\";\nimport { useHistory } from \"react-router-dom\";\nimport InputField from \"../../../generic/inputField\";\nimport TocDropdown from \"../../../generic/tocDropdown\";\nimport LoginService from \"../../../service/login/loginService\";\nimport urlConfig, { config } from \"../../../../config/domain\";\nimport { getEsignUrlJMWV2 } from \"../../../service/esign/esignService\";\nimport Checkbox from \"../../../generic/checkbox\";\nimport EdButton from \"../../../generic/edButton\";\n\nexport const Ddpi = (props: any) => {\n const [showTextStatus, setShowTextStatus] = useState(false);\n const [preFilledForm, setPreFilledForm] = React.useState();\n const [ddpiId, setDdpiId] = React.useState(\"\");\n const [ddpiDetails, setDdpiDetails] = React.useState([]);\n const [ddpiDetailsErrStatus, setDdpiDetailsErrStatus] = React.useState(false);\n const [ddpiDetailsErrMessage, setDdpiDetailsErrMessage] = React.useState(\"\");\n const [singleDdpiId, setsingleDdpiId] = React.useState(\"\");\n const [singleDdpiStatus, setSingleDdpiStatus] = React.useState(true);\n const [validationErr, setValidationErr] = React.useState();\n const [validationErrStatus, setValidationErrStatus] = React.useState(false);\n const [ddpiIdOptions, setddpiIdOptions] = React.useState([\n { value: \"\", display: \"Select DDPID\" },\n ]);\n const [prefillForm, setPreFillForm] = React.useState(\"\");\n const [ddpiFlags, setDdpiFlags] = React.useState(\"SPMT\");\n const [editSaveBtnStatus, setEditSaveBtnStatus] = useState(true);\n const history = useHistory();\n\n React.useEffect(() => {\n fetchDdpID();\n //getPreFilledFormPDF();\n }, []);\n\n React.useEffect(() => {\n props.rightDiv(rightSideDiv());\n }, [\n ddpiIdOptions,\n singleDdpiId,\n ddpiId,\n validationErr,\n ddpiDetails,\n singleDdpiStatus,\n preFilledForm,\n ]);\n\n /**\n * Add hypen with address when address is empty or address length is less than 5\n * @param address\n * @returns modifed address\n */\n const setAddressText = (address: string) => {\n if (!address || (address && address.length < 5)) {\n if (!address) {\n return \"-\".repeat(5);\n }\n const str = \"-\".repeat(5 - address.length);\n return `${address}${str}`;\n }\n return address;\n };\n\n /**\n * Redirect to clientArea/serviceRequest\n */\n function redirection() {\n // let redirectURL = \"\";\n // if (source === \"ajs\") {\n // redirectURL = config.rootUrl + \"clientarea/servicerequest\";\n // } else {\n // redirectURL = config.root + \"clientarea/service-request\";\n // }\n // history.push(redirectURL);\n // history.push(\"/clientarea/service-request\");\n // window.location.reload();\n window.location.href = config.rootUrl + \"clientarea/servicerequest\";\n }\n\n /**\n * Convert Base 64 String into PDF\n * @param {Base64String } respData\n */\n function base64toPDF(respData: any) {\n var decodedPdfContent = atob(respData);\n var byteArray = new Uint8Array(decodedPdfContent.length);\n for (var i = 0; i < decodedPdfContent.length; i++) {\n byteArray[i] = decodedPdfContent.charCodeAt(i);\n }\n var blob = new Blob([byteArray.buffer], { type: \"application/pdf\" });\n var _pdfurl = URL.createObjectURL(blob);\n if (localStorage.getItem(\"lgnSrc\") === \"iphone\") {\n window.open(_pdfurl, \"_blank\");\n props.setLoader(false);\n } else {\n var link = document.createElement(\"a\");\n document.body.appendChild(link);\n link.href = _pdfurl;\n link.download = \"file.pdf\";\n var evt = new MouseEvent(\"click\", {\n view: window,\n bubbles: true,\n cancelable: false,\n });\n link.dispatchEvent(evt);\n window.URL.revokeObjectURL(_pdfurl);\n props.setLoader(false);\n redirection();\n link.remove();\n }\n }\n\n /**\n * Show Dropdown at rightSide Div\n */\n const rightSideDiv = () => {\n if (singleDdpiId || ddpiIdOptions.length > 1)\n return (\n <>\n \n {singleDdpiStatus === true ? (\n {}}\n onBlur={() => {}}\n disabled={true}\n />\n ) : (\n ddpiIdOptions && (\n {\n setDdpiId(val);\n validation(val);\n }}\n isSearchable={false}\n />\n )\n )}\n {validationErr ? (\n

    {validationErr}

    \n ) : (\n <>\n )}\n \n );\n else return <>;\n };\n\n /**\n * Get Dddpi Details\n */\n const fetchDdpID = async () => {\n props.setParLoader(true);\n try {\n const response = await getDdpiDetails();\n let jsonResponse = response;\n if (Object.keys(jsonResponse).length > 0) {\n if (jsonResponse.hasOwnProperty(\"data\")) {\n const { DDPIDetails } = JSON.parse(jsonResponse.data.value).result[0];\n const ddpidData = DDPIDetails.find((val: any) => {\n if (val[\"defaultDemat\"] === \"Yes\") {\n return val;\n }\n // return {};\n });\n \n if (ddpidData && Object.values(ddpidData).length !== 0) {\n setDdpiDetails(ddpidData);\n setsingleDdpiId(ddpidData.BOID);\n setDdpiId(ddpidData.BOID);\n setSingleDdpiStatus(true);\n validation(ddpidData.BOID);\n } else {\n openDDPIErrorPopup();\n }\n\n // if (DDPIDetails.length === 1) {\n // setsingleDdpiId(DDPIDetails[0].BOID);\n // setDdpiId(DDPIDetails[0].BOID);\n // setSingleDdpiStatus(true);\n // validation(DDPIDetails[0].BOID);\n // } else {\n // const ddpiIdList = DDPIDetails.map((val: any) => {\n // return { value: val.BOID, display: val.BOID };\n // });\n // setSingleDdpiStatus(false);\n // setddpiIdOptions([...ddpiIdOptions, ...ddpiIdList]);\n // setSingleDdpiStatus(false);\n // }\n props.setParLoader(false);\n } else if (jsonResponse.hasOwnProperty(\"error\")) {\n const error = jsonResponse.error;\n if (error.errCd === \"SR0021\") {\n setDdpiDetailsErrStatus(true);\n setDdpiDetailsErrMessage(error.errMsg);\n } else {\n openDDPIErrorPopup();\n }\n props.setParLoader(false);\n }\n }\n } catch (error) {\n props.setParLoader(false);\n openDDPIErrorPopup();\n }\n };\n\n /**\n * Error Popup Only For Ddpi Component\n */\n const openDDPIErrorPopup = () => {\n props.setLoader(false);\n props.onSubmit(\"ddpi\", {\n headerText:\n \"There was some problem in raising service request. Please try again later.\",\n });\n };\n\n /**\n * Error Popup For Already SR Created\n */\n const openExistSrPopup = () => {\n props.setLoader(false);\n props.onSubmit(\"ddpi\", {\n headerText: \"You have an active service request\",\n content:\n \"You already have an active service request. Once it is updated, you will be able to raise new request.\",\n });\n };\n\n /**\n * Validation on Ddpi Details\n * @param id Ddpi Id\n */\n const validation = async (id: any) => {\n props.setLoader(true);\n if (id !== \"\") {\n var ddpid = id;\n try {\n const validationRes = await DdpiValidation({\n dpId: ddpid,\n accTyp: LoginService.getAccData(\"accTyp\"),\n });\n const validatedJson = validationRes;\n if (Object.keys(validatedJson).length !== 0) {\n if (validatedJson.hasOwnProperty(\"data\")) {\n if (Object.keys(validatedJson).length !== 0) {\n const data = validatedJson.data;\n const result = JSON.parse(data.value).result[0];\n if (result.ValidationStatus === \"Failed\") {\n setValidationErrStatus(true);\n const validationRemarks = result[\"ValidationRemarks\"];\n const finalErrMsg = validationRemarks.map((val: any) => {\n return val[\"validation_message\"];\n });\n let validationMsg;\n if (validationRemarks) {\n validationMsg = (\n

    {finalErrMsg.join(\", \")}

    \n );\n // validationMsg = validationRemarks.map((val: any) => {\n // return (
  • \n //

    \n // {val['validation_message']}\n //

    \n //
  • )\n // });\n setValidationErr(validationMsg);\n }\n }\n }\n }\n\n props.setLoader(false);\n }\n } catch (error) {\n openDDPIErrorPopup();\n }\n } else {\n props.setLoader(false);\n }\n };\n\n /**\n * Call On ProceedToEssign Button click\n */\n const submitDetails = async () => {\n props.setParLoader(true);\n try {\n if (ddpiDetailsErrStatus || validationErrStatus) {\n props.setParLoader(false);\n (\n document.getElementsByClassName(\"modal-Sr\")[0] as HTMLDivElement\n ).scrollTo({\n top: 0,\n left: 0,\n behavior: \"smooth\",\n });\n return;\n } else {\n //if (ddpiDetails.length > 0) {\n //const ddpiFlagValue = ddpiFlags.split(\"\").join(\",\");\n const ddpiFlagValue = \"S,P,M,T\";\n const selectedDdpiInfo: any = ddpiDetails;\n // let selectedDdpiInfo = selectedDdpiInfo1.find((obj) => {\n // return obj[\"BOID\"] === ddpiId;\n // });\n const dpType = ddpiId.includes(\"IN\") ? \"NSDL\" : \"CDSL\";\n //if (selectedDdpiInfo) {\n let reqObj = {\n acTyp: LoginService.getAccData(\"accTyp\"),\n dpId: ddpiId,\n reqTyp: \"demat\",\n assignedTeamCode: 4,\n assignedTeamName: \"Ops Helpdesk Team\",\n callTypId: 18,\n subTypId: 890,\n clntTyp: \"None\",\n dpType: dpType,\n edit_id: 0,\n clientCategory: \"Individual\",\n address: {\n addr1: setAddressText(selectedDdpiInfo[\"AddressLine1\"]),\n addr2: setAddressText(selectedDdpiInfo[\"AddressLine2\"]),\n addr3: setAddressText(selectedDdpiInfo[\"AddressLine3\"]),\n addr4: setAddressText(selectedDdpiInfo[\"AddressLine4\"]),\n city: selectedDdpiInfo[\"City\"],\n state: selectedDdpiInfo[\"State\"],\n pin: selectedDdpiInfo[\"PinCode\"],\n },\n ddpiFlag: ddpiFlagValue,\n };\n\n const resp: any = await createDdpiSR(reqObj);\n if (\n Object.keys(resp).length > 0 &&\n resp.hasOwnProperty(\"data\") &&\n resp.data.srId\n ) {\n await proceedToEsign(resp);\n } else if (\n Object.keys(resp).length > 0 &&\n resp.hasOwnProperty(\"error\") &&\n resp.error.errCd === \"SR0005\"\n ) {\n openExistSrPopup();\n } else {\n openDDPIErrorPopup();\n }\n }\n } catch (error: any) {\n openDDPIErrorPopup();\n }\n };\n\n /**\n * Call for proceed to esign\n */\n const proceedToEsign = async (data?: any) => {\n try {\n const esign = await getEsignUrlJMWV2(\"\", data.data.srId, \"ddpi\");\n props.setParLoader(false);\n if (!esign) {\n openDDPIErrorPopup();\n }\n } catch (err) {\n openDDPIErrorPopup();\n }\n };\n\n /**\n * Get Pre-Filled Form\n */\n const getPreFilledFormPDF = async () => {\n try {\n const response = await getDDPIPreFilledFormPDF();\n if (!response) {\n openDDPIErrorPopup();\n } else {\n setPreFilledForm(response);\n }\n } catch (err) {\n openDDPIErrorPopup();\n }\n };\n\n const toCamelCase = (string: any) => {\n return string.replace(/\\w\\S*/g, function (txt: any) {\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\n });\n };\n\n /**\n * Call on Button Download POA Pre-filled Form Click\n */\n const downloadPreFilledForm = async () => {\n props.setParLoader(true);\n try {\n if (ddpiDetailsErrStatus || validationErrStatus) {\n props.setParLoader(false);\n (\n document.getElementsByClassName(\"modal-Sr\")[0] as HTMLDivElement\n ).scrollTo({\n top: 0,\n left: 0,\n behavior: \"smooth\",\n });\n return;\n } else {\n const preFilledFormData = preFilledForm;\n if (\n Object.keys(preFilledFormData).length > 0 &&\n preFilledFormData.hasOwnProperty(\"data\")\n ) {\n const data = preFilledFormData[\"data\"];\n if (data.hasOwnProperty(\"data\")) {\n const base64Str = data.data;\n\n base64toPDF(base64Str);\n } else {\n openDDPIErrorPopup();\n }\n } else {\n openDDPIErrorPopup();\n }\n }\n } catch (err) {\n openDDPIErrorPopup();\n } finally {\n props.setParLoader(false);\n }\n };\n\n /**\n * Set Ddpi text on button click showmore or showless\n */\n const showDdpiText = async () => {\n setShowTextStatus(!showTextStatus);\n };\n\n const setDdpiOptions = (event: any) => {\n if (event.target.checked) {\n setDdpiFlags(ddpiFlags.concat(event.target.name));\n } else {\n setDdpiFlags(ddpiFlags.replace(event.target.name, \"\"));\n }\n };\n\n const editSaveBtnAuthorization = () => {\n setEditSaveBtnStatus(!editSaveBtnStatus);\n };\n return (\n
    \n {/* {loader && (\n \n \n
    \n )} */}\n {!props.loader && (\n <>\n {ddpiDetailsErrStatus ? (\n
      \n {ddpiDetailsErrMessage}\n
    \n ) : (\n \"\"\n )}\n\n
    \n

    What is DDPI?

    \n
    \n

    \n SEBI has introduced Demat Debit and Pledge instruction which will\n replace POA (Power of Attorney). DDPI is an authorization to access\n your demat account for the below mentioned specific purpose\n

    \n {/*
    \n {\n showDdpiText();\n e.preventDefault();\n }}\n >\n \n View authorization list{\" \"}\n {!showTextStatus ? (\n \n ) : (\n \n )}\n \n \n
    */}\n {/* {!showTextStatus ? (\n <>\n ) : ( */}\n <>\n
    \n
    \n
      \n
    1. \n {/* */}\n \n For seamless payin of securities to exchange towards\n settlement obligations. i.e., to sell your holdings\n seamlessly.\n \n {/* */}\n
    2. \n
    3. \n {/* */}\n \n To pledge / repledge securities\n \n {/* */}\n
    4. \n
    5. \n {/* */}\n \n To settle MF transaction executed through stock exchange\n \n {/* */}\n
    6. \n
    7. \n {/* */}\n \n To tender shares in buyback\n \n {/* */}\n
    8. \n
    \n
    \n {/* {\n
    \n {\n editSaveBtnAuthorization();\n e.preventDefault();\n }}\n disabled={!(ddpiFlags.length > 0)}\n >\n 0)? (\"arrow_text_enable\"):(\"arrow_text_disable\")}>\n {editSaveBtnStatus\n ? `Edit Authorization list`\n : `Save Authorization list`}\n \n \n
    \n } */}\n {/* {ddpiFlags.length !== 4 ? ( */}\n
    \n

    \n In case you wish to modify the DDPI subsequently, please\n contact your servicing RM/nearest branch\n

    \n
    \n {/* ) : ( */}\n {/* <>\n )} */}\n {/*
    \n

    DDPI Doesn't Support:

    \n

    \n Corporate Actions (Buyback, Takeover, Delisting, etc)\n

    \n

    Mutual Fund Transactions

    \n

    \n

    \n To execute any transactions DDPI doesn't support, we would require a prefilled POA to be sent on the below given address or the settlement would be done through E-DIS.\n

    \n
    \n

    \n \n Address: \n {toCamelCase(\"Nuvama Wealth and Investment Limited, C/O. \") + \"SSAI, Casa \" + toCamelCase(\"BLANCA, UNIT NO.\")}\n {toCamelCase(\" -803-805, \")}\n {toCamelCase(\"SECTOR 11, PLOT NO. 45, OPP. IDBI TOWERS, NR. \") + \"CBD \"}\n {toCamelCase(\"BELAPUR STATION,\")}\n {\"CBD \" + toCamelCase(\"BELAPUR, PIN CODE: 400614\")}\n */}\n
    \n \n {/* )} */}\n\n
    \n
    \n
    \n <>\n {/*
    \n
    \n
    */}\n
    \n {/*

    \n Please note: \n POAs will remain valid till you revoke the same. If you have not\n submitted your POA, and do not wish to submit POA/DDPI. You can\n still continue trading the way you currently do i.e through\n e-DIS.\n

    */}\n
    \n {/* {\n submitDetails();\n e.preventDefault();\n }}\n \n disabled = {!(ddpiFlags.length > 0)}\n >\n Proceed to E-Sign DDPI Form\n */}\n {\n submitDetails();\n e.preventDefault();\n }}\n value=\"Proceed to E-Sign DDPI Form\"\n btnTyp=\"primary\"\n disabled={!(ddpiFlags.length > 0)}\n />\n
    \n {/*
    \n {\n downloadPreFilledForm();\n }}\n >\n \n Download POA Pre-filled Form\n \n
    */}\n\n
    \n

    \n If your mobile and Aadhar are not linked please contact your\n RM Arvind Kathappan\n

    \n

    \n Or write to us on{\" \"}\n \n helpdesk@nuvama.com\n \n

    \n
    \n
    \n \n \n )}\n \n );\n};\n","export const smtfOptions = Object.freeze([\n {\n value: \"0\",\n heading:\n \"Automatic movement of funds from Normal to SMTF ledger upto SMTF debit amount.\",\n description:\n \"Any excess funds available in normal ledger will get transferred to SMTF ledger to the extent of excess funds available in normal ledger and to the extent of debit in SMTF ledger. This preference helps you save interest in SMTF ledger as SMTF debit gets reduced automatically whenever there is excess credit available in the normal ledger\",\n },\n {\n value: \"1\",\n heading:\n \"Automatic movement of funds from Normal to SMTF ledger upto SMTF margin requirement.\",\n description:\n \"Any excess funds available in normal ledger will get transferred to SMTF ledger to the extent of excess funds available in normal ledger and to the extent of SMTF margin requirement only. Under this option, the SMTF debit will remain even in case you have excess credit available in Normal ledger and you will be levied interest on SMTF debit amount despite credit being available in Normal ledger.\",\n },\n]);\n\nexport const rmDetails = Object.freeze({\n name: \"Arvind Kathappan\",\n mailId: \"helpdesk@nuvama.com\",\n});\n\nexport const smtfMsg = Object.freeze({\n error:\n \"There was some problem in raising service request. Please try again later.\",\n createSR: {\n headerText: \"We have received your request!\",\n content:\n \"We have received your request for NRML-SMTF funds movement preference. This request will be processed by end of day.\",\n },\n});\n","import React, { useEffect, useState } from \"react\";\nimport \"../../../../assets/scss/components/clientarea/serviceRequest/serviceRequest.scss\";\nimport { config } from \"../../../../config/domain\";\nimport EdButton from \"../../../generic/edButton\";\nimport RadioButton from \"../../../generic/radioButton\";\nimport { smtfOptions, smtfMsg } from \"./constant\";\nimport {\n smtfValidation,\n createSMTFSR,\n getServicingDetails,\n} from \"../../../service/serviceRequest/srApiService\";\nimport LoginService from \"../../../service/login/loginService\";\nimport { OtpSection } from \"../../generic/otpSection\";\n\ninterface ISuccessValidation {\n AccountCode: string;\n AccountName: string;\n PAN: string;\n MobileNumber: string;\n EmailID: string;\n IsSMTF: string;\n ExistingOption: string;\n TradingStatus: string;\n ValidationStatus: string;\n ValidationRemarks: string;\n}\n\ninterface IRequestObj {\n acTyp: string;\n dpId: string;\n reqSubStatus: string;\n assignedTeamCode: number;\n assignedTeamName: string;\n callTypId: number;\n subTypId: number;\n stmfPref: number;\n editId: number;\n}\n\nexport const Smtf = (props: any) => {\n const [enableSMTF, setEnableSMTF] = useState(false);\n const [otpSection, setOtpSection] = useState(false);\n const [enableBtnSubmit, setEnableBtnSubmit] = useState(false);\n const [impersonateUser, setImporsonateUser] = useState(false);\n const [invalidTime, setInvalidTime] = useState(false);\n const [selectedSMTFOption, setSelectedSMTFOption] = useState(\"\");\n const [invalidTimeMsg, setInvalidTimeMsg] = useState(\"\");\n const [enableOtpSection, setEnableOtpSection] = useState(false);\n const [existingOption, setExistingOption] = useState(\"\");\n const [rmName, setRMName] = React.useState({ name: \"\", mailId: \"\" });\n\n const [smtfValidationRes, setSMTFValidationRes] =\n useState({\n AccountCode: \"\",\n AccountName: \"\",\n PAN: \"\",\n MobileNumber: \"\",\n EmailID: \"\",\n IsSMTF: \"\",\n ExistingOption: \"\",\n TradingStatus: \"\",\n ValidationStatus: \"\",\n ValidationRemarks: \"\",\n });\n\n useEffect(() => {\n getRMName();\n validation();\n }, []);\n\n async function getRMName() {\n props.setParLoader(true);\n try {\n let details = await getServicingDetails();\n props.setParLoader(false);\n if (details) {\n setRMName({\n name: details.tradingDealerNameField, \n mailId: details.tradingDealerEmailField\n });\n }\n } catch (error) {\n props.setParLoader(false);\n }\n }\n \n const smtfOptionsList = smtfOptions.map((item, index) => {\n return (\n
  • \n {\n onChange(e);\n }}\n />\n

    {item.description}

    \n
  • \n );\n });\n\n /**\n * SMTF Validation\n */\n const validation = async () => {\n props.setParLoader(true);\n try {\n const valResponse = await smtfValidation();\n props.setParLoader(false);\n if (\n valResponse &&\n valResponse.hasOwnProperty(\"data\") &&\n valResponse.data.hasOwnProperty(\"value\")\n ) {\n const value = JSON.parse(valResponse.data.value);\n if (value && Array.isArray(value.result) && value.result.length > 0) {\n let result = value.result[0];\n setSMTFValidationRes(result);\n if (result.IsSMTF === \"N\") {\n setEnableSMTF(false);\n setEnableBtnSubmit(false);\n } else {\n setSelectedSMTFOption(result.ExistingOption);\n setEnableSMTF(true);\n setExistingOption(result.ExistingOption);\n // setEnableBtnSubmit(true);\n }\n } else {\n props.setParLoader(false);\n openSMTFErrorPopup();\n }\n } else {\n if (\n valResponse &&\n valResponse.error &&\n valResponse.error.errCd === \"SR0031\"\n ) {\n setInvalidTime(true);\n setInvalidTimeMsg(valResponse.error.errMsg);\n }\n props.setParLoader(false);\n }\n } catch (error) {\n props.setParLoader(false);\n openSMTFErrorPopup();\n }\n };\n\n /**\n * Check User Impersonated\n */\n const isImpersonated = () => {\n return window.localStorage.getItem(\"isImpersonated\");\n };\n\n /**\n * On SMTF Options selections\n */\n const onChange = (event: any) => {\n setSelectedSMTFOption(event.target.value);\n if (isImpersonated()) {\n setOtpSection(true);\n setImporsonateUser(true);\n } else {\n if(event.target.value == existingOption)\n setEnableBtnSubmit(false);\n else setEnableBtnSubmit(true);\n }\n };\n\n /**\n * Error Message for SMTF\n */\n const openSMTFErrorPopup = () => {\n props.setLoader(false);\n props.onSubmit(\"smtf\", {\n headerText: smtfMsg.error,\n });\n };\n\n /**\n * Successful Message for SMTF\n */\n const openSRSuccessPopup = () => {\n props.setLoader(false);\n let paramObj: any = {\n headerText: smtfMsg.createSR.headerText,\n content: smtfMsg.createSR.content,\n popupType: \"Success\"\n };\n props.onSubmit(\"smtf\", paramObj);\n };\n\n /**\n * Error Popup For Already SR Created\n */\n const openExistSrPopup = () => {\n props.setLoader(false);\n props.onSubmit(\"smtf\", {\n headerText: \"You have an active service request\",\n content:\n \"You have already raised this request for the day.\",\n });\n};\n /**\n * Submit SMTF\n */\n const submitDetails = async () => {\n setEnableBtnSubmit(false);\n try {\n props.setParLoader(true);\n let reqObj: IRequestObj = {\n acTyp: LoginService.getAccData(\"accTyp\"),\n dpId: \"none\",\n reqSubStatus: \"Approved\",\n assignedTeamCode: 4,\n assignedTeamName: \"Ops Helpdesk team\",\n callTypId: 18,\n subTypId: 651,\n stmfPref: Number(selectedSMTFOption),\n editId: 0,\n };\n\n const response = await createSMTFSR(reqObj);\n if (\n response &&\n response.hasOwnProperty(\"data\") &&\n response.data.hasOwnProperty(\"srId\")\n ) {\n props.setParLoader(false);\n const value = JSON.parse(response.data.srId);\n if (value) {\n openSRSuccessPopup();\n } else {\n props.setParLoader(false);\n openSMTFErrorPopup();\n }\n } else if (\n Object.keys(response).length > 0 &&\n response.hasOwnProperty(\"error\") &&\n response.error.errCd === \"SR0005\"\n ) {\n openExistSrPopup();\n } else {\n if (response && response.error) {\n props.setParLoader(false);\n openSMTFErrorPopup();\n }\n }\n setEnableBtnSubmit(true);\n } catch (error) {\n props.setParLoader(false);\n openSMTFErrorPopup();\n setEnableBtnSubmit(true);\n }\n };\n\n const showOtpSection = () => {\n setEnableOtpSection(true);\n };\n\n return (\n <>\n {!props.loader && (\n
    \n {invalidTime ? (\n

    \n {invalidTimeMsg}\n

    \n ) : (\n <>\n {enableSMTF ? (\n <>\n
    \n
      {smtfOptionsList}
    \n
    \n
    \n {impersonateUser && selectedSMTFOption ? (\n
    \n {otpSection ? (\n <>\n {!enableOtpSection ? (\n \n Request OTP\n \n ) : (\n <>\n {\" \"}\n {\n setOtpSection(false);\n setEnableBtnSubmit(true);\n }}\n setLoader={(val: boolean) => {\n props.setParLoader(val);\n }}\n />\n \n )}\n \n ) : (\n <>\n )}\n
    \n ) : (\n <>\n )}\n
    \n \n ) : (\n <>\n
    \n

    \n {smtfValidationRes.ValidationRemarks.replace(\",\", \"\")} for\n your account.\n

    \n

    Please get in touch with your RM.

    \n
    \n
    \n

    {rmName.name}

    \n

    \n \n {rmName.mailId}\n \n

    \n
    \n \n )}\n \n )}\n
    \n
    \n {\n submitDetails();\n e.preventDefault();\n }}\n />\n \n \n Cancel\n \n \n
    \n
    \n
    \n )}\n \n );\n};\n","import { config } from \"../../../../config/domain\";\nexport const segmentDeactivationMsg = Object.freeze({\n error: \"There was some problem in raising service request. Please try again later.\",\n createSR: {\n content : \"We have received your request! Following segments will be deactivated in 2 working days:\",\n redirectionText: \"Back to Homepage\",\n redirectionLink: config.rootUrl + \"clientarea/servicerequest\",\n },\n SRexists: {\n headerText: \"You have an active service request\",\n content: \"You have already raised this request for the day.\",\n }\n});\n\n export const errorMsg = {\n openOrder: {\n err: \"Please cancel your open orders to proceed with Segment deactivation.\",\n msg: \"to cancel open orders.\",\n link: config.rootUrl + \"?ottype=order-status\"\n },\n openSIP: {\n err: \"Please ensure there is no running SIP in your account to proceed with Segment deactivation.\",\n msg: \"to stop the SIP.\",\n link: config.rootUrl + \"?ottype=order-status&sTab=3\"\n },\n openPosition: {\n err: \"Please close your open positions to proceed with Segment deactivation.\",\n msg: \"to close open positions.\",\n link: config.rootUrl + \"?ottype=my-positions\"\n }\n}\n\n export const allowedSegmentsEQ = ['NSEFO', 'BSEFO', 'NSECDS', 'BSECDS', 'BSEMFSS'];\n export const allowedSegmentsCOM = ['COMMCX', 'COMNCDEX'];\n export const allowedSegmentsComEq = ['NSEFO','BSEFO', 'NSECDS','BSECDS', 'BSEMFSS', 'COMMCX', 'COMNCDEX'];\n export const segmentNamesSMS = {\n NSEFO: \"Equity Derivatives\",\n BSEFO: \"Equity Derivatives\",\n NSECDS: \"Currency Derivatives\",\n BSECDS: \"Currency Derivatives\",\n BSEMFSS: \"Mutual Funds\",\n COMMCX: \"\",\n COMNCDEX:\"Commodity Derivatives\"\n }\n export const eqDerivatives = ['OPTIDX','OPTSTK','FUTIDX','FUTSTK'];\n export const curDerivatives = ['OPTCUR','FUTCUR'];\n","import React, { useEffect, useState } from \"react\";\nimport Checkbox from \"../../../generic/checkbox\";\nimport { OtpSection } from \"../../generic/otpSection\";\nimport { config } from \"../../../../config/domain\";\nimport { \n EqPositions, CommPositions, EqOrderbook, CommOrderbook, MfOrderbook, MfSipOrderbook, createSegmentDeactivationSR, validateSegmentDeactivation \n} from \"../../../service/serviceRequest/srApiService\";\nimport LoginService, { getAccData } from \"../../../service/login/loginService\";\nimport \"../../../../assets/scss/components/clientarea/serviceRequest/segmentSR.scss\";\nimport { asyncGetPersonalDetails } from \"../../../service/postLogin/clientProfileAPIService\";\nimport { allowedSegmentsCOM, allowedSegmentsComEq, allowedSegmentsEQ, curDerivatives, eqDerivatives, errorMsg, segmentDeactivationMsg, segmentNamesSMS } from \"./constant\";\nimport PageLoader from \"../../../generic/loader\";\n\nexport interface IErrorType {\n\topenOrder?: boolean;\n openSIP?: boolean;\n openPosition?: boolean;\n}\n\ninterface IActiveSegDetailsSub{\n NSEFO?: boolean;\n BSEFO?: boolean;\n NSECDS?: boolean;\n BSECDS?: boolean;\n BSEMFSS?: boolean;\n COMNCDEX?: boolean;\n COMMCX?: boolean;\n}\n\nexport const SegmentDeactivation = (props: any) => {\n const [email, setEmail] = useState(\"\");\n const [mobile, setMobile] = useState(\"\");\n const [loader, setLoader] = useState(false);\n const [otpSection, setOtpSection] = useState(false);\n const [otpVerified, setOtpVerified] = useState(false);\n const [disableSubmit, setDisableSubmit] = useState(false);\n const [validationErr, setValidationErr] = useState({\n openOrder: false,\n openSIP: false,\n openPosition: false\n });\n const [activeSegDetails, setActiveSegDetails] = useState({\n activeSegments: {} as any, // NSEFO?: false, NSECDS?: false, BSEMFSS?: false, COMMCX?: false, COMNCDEX?: false\n selectSegment: {} as any //IActiveSegDetailsSub,\n });\n const [segmentValidation, setSegmentValidation] = useState({\n BSEMFSS_SIP:false, //sip\n NSEFO_OP: false, BSEFO_OP: false, NSECDS_OP: false, BSECDS_OP: false, COM_OP: false, //open position \n NSEFO_OO: false, BSEFO_OO: false, NSECDS_OO: false, BSECDS_OO: false, BSEMFSS_OO: false, COM_OO: false, //open order \n });\n\n React.useEffect(() => {\n getSegmentDetails();\n }, []);\n\n useEffect(()=>{\n checkSegmentValidation()\n },[activeSegDetails.selectSegment])\n\n const validateComOO = async () => {\n var CommObResult = await CommOrderbook();\n var CommOrderbookRes = CommObResult.data?.ord && CommObResult.data.ord.filter((ele: any) => {\n return ele.sts.toLowerCase() === \"open\";\n });\n if(CommOrderbookRes && CommOrderbookRes.length > 0){\n return true;\n }\n return false;\n }\n const validateComOP = async () => {\n var CommPositionsRes = await CommPositions();\n if(CommPositionsRes.data?.pos && CommPositionsRes.data.pos.length > 0){\n return true;\n }\n return false;\n }\n const valiadteMfOO = async () => {\n const MfObResult = await MfOrderbook();\n var MfOrderbookRes = MfObResult.data?.ordLst && MfObResult.data.ordLst.filter((ele: any) => {\n return ele.status.toLowerCase() === \"open\";\n });\n if(MfOrderbookRes && MfOrderbookRes.length > 0){\n return true;\n }\n return false;\n }\n const valiadteMfOP = async () => {\n const MfSipObResult = await MfSipOrderbook();\n var MfSipOrderbookRes = MfSipObResult.data?.sipOrdLst && MfSipObResult.data.sipOrdLst.filter((ele: any) => {\n return ele.status.toLowerCase() === \"running\";\n });\n if(MfSipOrderbookRes && MfSipOrderbookRes.length > 0){\n return true;\n }\n return false;\n }\n const validateCurDerOO = async () => {\n const EqObResult = await EqOrderbook();\n var scriptTyp = curDerivatives;\n var EqOrderbookRes = EqObResult.data?.ord && EqObResult.data.ord.filter((ele: any) => {\n return (\n ele.sts.toLowerCase() == \"open\" && scriptTyp.indexOf(ele.asTyp)>-1\n )\n });\n if(EqOrderbookRes && EqOrderbookRes.length > 0){\n return true;\n }\n return false;\n }\n const validateCurDerOP = async () => {\n const EqPositnResult = await EqPositions();\n var scriptTyp = curDerivatives;\n var EqPositionsRes = EqPositnResult.data?.pos && EqPositnResult.data.pos.filter((ele: any) => {\n return ( scriptTyp.indexOf(ele.pstns[0].asTyp) > -1 );\n });\n if(EqPositionsRes && EqPositionsRes.length > 0){\n return true;\n }\n return false;\n }\n const validateEqDerOO = async () => {\n const EqObResult = await EqOrderbook();\n var scriptTyp = eqDerivatives;\n var EqOrderbookRes = EqObResult.data?.ord && EqObResult.data.ord.filter((ele: any) => {\n return (\n ele.sts.toLowerCase() == \"open\" && scriptTyp.indexOf(ele.asTyp)>-1\n )\n });\n if(EqOrderbookRes && EqOrderbookRes.length > 0){\n return true;\n }\n return false;\n }\n const validateEqDerOP = async () => {\n const EqPositnResult = await EqPositions();\n var scriptTyp = eqDerivatives;\n var EqPositionsRes = EqPositnResult.data?.pos && EqPositnResult.data.pos.filter((ele: any) => {\n return ( scriptTyp.indexOf(ele.pstns[0].asTyp) > -1 );\n });\n if(EqPositionsRes && EqPositionsRes.length > 0){\n return true;\n }\n return false;\n }\n const validateActiveSegments = async (activeSegments: any) => {\n var activeSegmentNames = Object.keys(activeSegments);\n var NSEFO_OO:any = false,\n BSEFO_OO:any = false,\n NSECDS_OO:any = false,\n BSECDS_OO:any = false,\n BSEMFSS_OO:any= false,\n COM_OO:any= false,\n BSEMFSS_SIP:any=false,\n NSEFO_OP:any= false,\n BSEFO_OP:any= false,\n NSECDS_OP:any= false,\n BSECDS_OP:any= false,\n COM_OP:any= false;\n for (var i = 0; i < activeSegmentNames.length; i++) {\n var segment = activeSegmentNames[i];\n if(segment == 'NSEFO'){\n NSEFO_OO = await validateEqDerOO();\n NSEFO_OP = await validateEqDerOP();\n } \n else if(segment == 'BSEFO'){\n BSEFO_OO = await validateEqDerOO();\n BSEFO_OP = await validateEqDerOP();\n } else if(segment == 'NSECDS'){\n NSECDS_OO = await validateCurDerOO();\n NSECDS_OP = await validateCurDerOP();\n } \n else if(segment == 'BSECDS'){\n BSECDS_OO = await validateCurDerOO();\n BSECDS_OP = await validateCurDerOP();\n } else if(segment == 'BSEMFSS'){\n BSEMFSS_OO = await valiadteMfOO();\n BSEMFSS_SIP = await valiadteMfOP();\n } else if(segment == 'COMNCDEX' || segment == 'COMMCX'){\n COM_OO = await validateComOO();\n COM_OP = await validateComOP();\n }\n }\n setSegmentValidation({\n ...segmentValidation, NSEFO_OO, NSEFO_OP, BSEFO_OO, BSEFO_OP, NSECDS_OO, NSECDS_OP, BSECDS_OO, BSECDS_OP,BSEMFSS_OO, BSEMFSS_SIP, COM_OO, COM_OP\n })\n props.setParLoader(false);\n setLoader(false);\n }\n const getSegmentDetails = async () => {\n props.setParLoader(true);\n setLoader(true);\n try {\n const validateSegmentRes = await validateSegmentDeactivation();\n if (validateSegmentRes &&\n validateSegmentRes.hasOwnProperty(\"data\") && \n validateSegmentRes.data.hasOwnProperty(\"value\")\n ){\n const value = JSON.parse(validateSegmentRes.data.value);\n if (value && Array.isArray(value.result) && value.result.length > 0) {\n var allowedSegments = (getAccData(\"accTyp\") === \"EQ\" ? allowedSegmentsEQ : (getAccData(\"accTyp\") === \"CO\" ? allowedSegmentsCOM : allowedSegmentsComEq));\n var activeSegments: any = {}; \n var selectSegment: any = {};\n var segmentList = value.result[0].ActiveSegment;\n for (var i = 0; i < segmentList.length; i++) {\n var segName = segmentList[i].key.replace(\"_\", \"\");\n if (segmentList[i].value == \"Y\" && allowedSegments.indexOf(segName)>-1) {\n activeSegments[segName] = true;\n selectSegment[segName] = false;\n }\n } \n setActiveSegDetails({\n ...activeSegDetails, activeSegments, selectSegment\n }) \n validateActiveSegments(activeSegments);\n } else {\n props.setParLoader(false);\n setLoader(false);\n openSRErrorPopup()\n }\n } else {\n props.setParLoader(false);\n setLoader(false);\n openSRErrorPopup()\n }\n } catch (error) {\n props.setParLoader(false);\n setLoader(false);\n openSRErrorPopup();\n }\n }\n const getSegNames = () => {\n var selectedSegments = Object.keys(activeSegDetails.selectSegment);\n var segname = \"\";\n for (var i = 0; i < selectedSegments.length; i++) {\n if (activeSegDetails.selectSegment[selectedSegments[i]]) {\n segname = segname + segmentNamesSMS[selectedSegments[i] as keyof typeof segmentNamesSMS] + \", \";\n }\n }\n segname= segname.slice(0, -2);\n let newSegnames = segname.split(\",\")\n let tempArr : any = [];\n newSegnames.forEach((ele) => {\n if(!tempArr.includes(ele.trim())) {\n tempArr.push(ele.trim())\n }\n })\n let finalSegnames = tempArr.join(\",\")\n return finalSegnames;\n };\n const checkSegEnabled = () => {\n var selectedSegments = Object.keys(activeSegDetails.selectSegment); \n for (var i = 0; i < selectedSegments.length; i++) {\n if (activeSegDetails.selectSegment[selectedSegments[i]]) {\n return false;\n }\n }\n return true;\n }; \n const checkSegmentValidation = () => {\n var openSIP = activeSegDetails.selectSegment?.BSEMFSS && segmentValidation.BSEMFSS_SIP;\n var openPosition = ((activeSegDetails.selectSegment?.NSEFO && segmentValidation.NSEFO_OP) ||\n (activeSegDetails.selectSegment?.BSEFO && segmentValidation.BSEFO_OP) ||\n (activeSegDetails.selectSegment?.NSECDS && segmentValidation.NSECDS_OP) ||\n (activeSegDetails.selectSegment?.BSECDS && segmentValidation.BSECDS_OP) ||\n (activeSegDetails.selectSegment?.COMMCX && activeSegDetails.selectSegment?.COMNCDEX && segmentValidation.COM_OP));\n var openOrder = ((activeSegDetails.selectSegment?.NSEFO && segmentValidation.NSEFO_OO) ||\n (activeSegDetails.selectSegment?.BSEFO && segmentValidation.BSEFO_OO) ||\n (activeSegDetails.selectSegment?.NSECDS && segmentValidation.NSECDS_OO) ||\n (activeSegDetails.selectSegment?.BSECDS && segmentValidation.BSECDS_OO) ||\n (activeSegDetails.selectSegment?.BSEMFSS && segmentValidation.BSEMFSS_OO) ||\n (activeSegDetails.selectSegment?.COMMCX && activeSegDetails.selectSegment?.COMNCDEX && segmentValidation.COM_OO))\n setValidationErr({ ...validationErr, openSIP, openPosition, openOrder })\n }\n const isImpersonated = () => {\n return window.localStorage.getItem(\"isImpersonated\");\n };\n const proceedNext = async () => {\n if (isImpersonated() && !otpVerified) {\n const profile = await asyncGetPersonalDetails();\n setMobile(profile.mobileNumberField);\n setEmail(profile.emailAddressField);\n setOtpSection(true);\n } else {\n setOtpSection(false);\n submitDetails();\n }\n }\n\n const openSRErrorPopup = (mess?: string) => {\n props.setParLoader(false);\n props.onSubmit(\"segmentDeactivation\", {\n headerText: mess ? mess : segmentDeactivationMsg.error,\n });\n }; \n const openSRSuccessPopup = () => {\n props.setParLoader(false);\n let paramObj: any = {\n popUp2: true,\n popupType: \"Success\",\n type: \"Segment Deactivation\",\n iconName: \"edel-icon-green-circle-tick\",\n content: segmentDeactivationMsg.createSR.content,\n contentBold: getSegNames(),\n redirectionLink: segmentDeactivationMsg.createSR.redirectionLink,\n redirectionText: segmentDeactivationMsg.createSR.redirectionText\n };\n props.onSubmit(\"segmentDeactivation\", paramObj);\n };\n const openExistSrPopup = () => {\n props.setParLoader(false);\n props.onSubmit(\"segmentDeactivation\", {\n headerText: segmentDeactivationMsg.SRexists.headerText,\n content: segmentDeactivationMsg.SRexists.content,\n });\n };\n const submitDetails = async () => {\n setDisableSubmit(true);\n try {\n props.setParLoader(true);\n setLoader(true);\n var selectedSegmnetsReq: Array = [];\n var selectedSegments = Object.keys(activeSegDetails.selectSegment); \n for (var i = 0; i < selectedSegments.length; i++) {\n if (activeSegDetails.selectSegment[selectedSegments[i]] && activeSegDetails.activeSegments[selectedSegments[i]]) {\n selectedSegmnetsReq.push({\n segment: selectedSegments[i]\n })\n }\n }\n let reqObj = {\n accType: LoginService.getAccData(\"accTyp\"),\n dpID: \"none\",//non mandatory so sending blank\n demat_holding: \"none\",//non mandatory so sending blank\n client_type: \"PWA\",\n segmentdeactivationdetails: selectedSegmnetsReq\n }; \n let createSRRes = await createSegmentDeactivationSR(reqObj);//{\"appID\": \"663051cfbac7d699a1c59b96048b50e7\",\"config\": {\"app\": 1},\"data\": {\"type\": \"segmentDeactivationResDao\",\"id\": 24111,\"message\": \"We have received your request! Following Segments will be deactivated in 2 working days.\"},\"msgID\": \"7d125c06-db70-4e10-b3c7-4158e74ec8a4\"}\n \n if (createSRRes && createSRRes.hasOwnProperty(\"data\") && createSRRes.data.hasOwnProperty(\"id\")) {\n props.setParLoader(false);\n setLoader(false);\n const value = JSON.parse(createSRRes.data.id);\n if (value) {\n openSRSuccessPopup();\n } else {\n props.setParLoader(false);\n openSRErrorPopup();\n }\n } else if(Object.keys(createSRRes).length > 0 && createSRRes.hasOwnProperty(\"error\") && createSRRes.error.errCd === \"SR0005\") {\n setLoader(false);\n openExistSrPopup();\n } else {\n if (createSRRes && createSRRes.error) {\n props.setParLoader(false);\n setLoader(false);\n openSRErrorPopup();\n }\n }\n setDisableSubmit(false);\n } catch (error) {\n props.setParLoader(false);\n setLoader(false);\n openSRErrorPopup();\n setDisableSubmit(false);\n }\n }\n\n return (\n <>\n
    \n
    \n {!loader && (\n
    \n

    Select Segments to Deactivate

    \n
    \n { (activeSegDetails.activeSegments[\"NSEFO\"] || activeSegDetails.activeSegments[\"BSEFO\"]) && (\n
    \n
    \n {\n // if(activeSegDetails.activeSegments[\"NSEFO\"] && ( activeSegDetails.activeSegments[\"BSEFO\"] === undefined)){\n // setActiveSegDetails({\n // ...activeSegDetails,\n // selectSegment : {...activeSegDetails.selectSegment, NSEFO: event.target.checked}\n // });\n // } else \n // if(activeSegDetails.activeSegments[\"BSEFO\"] && ( activeSegDetails.activeSegments[\"NSEFO\"] === undefined)){\n // setActiveSegDetails({\n // ...activeSegDetails,\n // selectSegment : {...activeSegDetails.selectSegment, BSEFO: event.target.checked}\n // });\n // } \n // else {\n setActiveSegDetails({\n ...activeSegDetails,\n selectSegment : {...activeSegDetails.selectSegment, NSEFO: event.target.checked, BSEFO: event.target.checked}\n });\n // }\n }}\n checked={activeSegDetails.selectSegment[\"NSEFO\"] && activeSegDetails.selectSegment[\"BSEFO\"]}\n name=\"\"\n disabled= {false}\n />\n
    \n
    \n \n \n
    \n
    )}\n { (activeSegDetails.activeSegments[\"NSECDS\"] || activeSegDetails.activeSegments[\"BSECDS\"]) && (\n
    \n
    \n {\n // if(activeSegDetails.activeSegments[\"NSECDS\"] && ( activeSegDetails.activeSegments[\"BSECDS\"] === undefined)){\n // setActiveSegDetails({\n // ...activeSegDetails,\n // selectSegment : {...activeSegDetails.selectSegment, NSECDS: event.target.checked}\n // });\n // } else if(activeSegDetails.activeSegments[\"BSECDS\"] && ( activeSegDetails.activeSegments[\"NSECDS\"] === undefined) && activeSegDetails.selectSegment[\"BSECDS\"] === false){\n // setActiveSegDetails({\n // ...activeSegDetails,\n // selectSegment : {...activeSegDetails.selectSegment, BSECDS: event.target.checked}\n // });\n // } \n // else {\n setActiveSegDetails({\n ...activeSegDetails,\n selectSegment : {...activeSegDetails.selectSegment, NSECDS: event.target.checked, BSECDS: event.target.checked}\n });\n // }\n }}\n checked={activeSegDetails.selectSegment.NSECDS && activeSegDetails.selectSegment.BSECDS}\n name=\"\"\n disabled= {false}\n />\n
    \n
    \n \n \n
    \n
    )}\n { activeSegDetails.activeSegments[\"BSEMFSS\"] && (\n
    \n
    \n {\n setActiveSegDetails({\n ...activeSegDetails,\n selectSegment : {...activeSegDetails.selectSegment ,BSEMFSS : event.target.checked}\n });\n }}\n checked={activeSegDetails.selectSegment.BSEMFSS}\n name=\"\"\n disabled= {false}\n />\n
    \n
    \n \n \n
    \n
    )}\n { activeSegDetails.activeSegments[\"COMMCX\"] && activeSegDetails.activeSegments[\"COMNCDEX\"] && (\n
    \n
    \n {\n setActiveSegDetails({\n ...activeSegDetails,\n selectSegment : {...activeSegDetails.selectSegment, COMMCX: event.target.checked, COMNCDEX: event.target.checked}\n });\n }}\n checked={activeSegDetails.selectSegment.COMMCX || activeSegDetails.selectSegment.COMNCDEX}\n name=\"\"\n disabled= {false}\n />\n
    \n
    \n \n \n
    \n
    )}\n
    \n
    \n {validationErr.openOrder && (\n
    \n \n \n {errorMsg[\"openOrder\"].err}{\" \"}\n Click Here \n {errorMsg[\"openOrder\"].msg}\n \n
    \n )}\n {validationErr.openSIP && (\n
    \n \n \n {errorMsg[\"openSIP\"].err}{\" \"}\n Click Here \n {errorMsg[\"openSIP\"].msg}\n \n
    \n )}\n {validationErr.openPosition && (\n
    \n \n \n {errorMsg[\"openPosition\"].err}{\" \"}\n Click Here \n {errorMsg[\"openPosition\"].msg}\n \n
    \n )}\n
    \n {otpSection && (\n
    \n {\n setOtpVerified(true);\n }}\n setParLoader={(val: boolean) => {\n props.setParLoader(val);\n }}\n showVerify= {!otpVerified}\n containerClass=\"segment-otp-box\"\n otpHeader=\"otp-header\"\n inputClass=\"text-field\"\n />\n
    \n )}\n
    \n )} \n {loader && (\n \n \n
    \n )} \n
    \n {\n proceedNext();\n e.preventDefault();\n }}\n disabled = {\n validationErr.openSIP || validationErr.openPosition || validationErr.openOrder ||\n checkSegEnabled() || disableSubmit ||\n (otpSection && !otpVerified)\n }\n >\n Proceed\n \n \n \n Cancel\n \n \n
    \n
    \n \n \n );\n};","import * as React from \"react\";\nimport { BrowserRouter as Router, Switch, Route } from \"react-router-dom\";\nimport ClientAreaCtrl from \"../../components/clientarea/clientAreaCtrl\";\nimport { CKYCUpdate } from \"../../components/clientarea/serviceRequest/CKYC/ckycUpdate\";\nimport { DISBooklet } from \"../../components/clientarea/serviceRequest/disBooklet/disBooklet\";\nimport { DPScheme } from \"../../components/clientarea/serviceRequest/dpScheme/dpScheme\";\nimport { EmailMobileModification } from \"../../components/clientarea/serviceRequest/emailMobileModification/emailMobileModification\";\nimport { FatcaUpdate } from \"../../components/clientarea/serviceRequest/fatcaUpdate/fatcaUpdate\";\nimport { IncomeDeclaration } from \"../../components/clientarea/serviceRequest/incomeDeclaration/incomeDeclaration\";\nimport { POADownload } from \"../../components/clientarea/serviceRequest/poaDownload/poaDownload\";\nimport { SegmentActivation } from \"../../components/clientarea/serviceRequest/segmentActivation/segmentActivation\";\nimport AccountClosure from \"../../components/clientarea/serviceRequest/accClosure/accClosure\";\nimport AccReactivateCont from \"../../components/clientarea/serviceRequest/accReactivate/accReactivateCont\";\nimport { Bank } from \"../../components/clientarea/serviceRequest/bankDetails/bankModification\";\nimport { VerficationStage } from \"../../components/clientarea/serviceRequest/verficationStage/verficationStage\";\n\nimport { SRLayout } from \"../../components/clientarea/serviceRequest/srLayout\";\nimport PostLogin from \"../postLogin\";\nimport { AddressModification } from \"../../components/clientarea/serviceRequest/addressModification/addressModification\";\nimport { AccountPayment } from \"../../components/clientarea/serviceRequest/accPayment/accPayment\";\nimport { PaymentResponse } from \"../../components/clientarea/serviceRequest/accPayment/paymentResponse\";\nimport { Nomination } from \"../../components/clientarea/serviceRequest/nomination/nomination\";\nimport { Ddpi } from \"../../components/clientarea/serviceRequest/ddpi/ddpi\";\nimport { Smtf } from \"../../components/clientarea/serviceRequest/smtf/smtf\";\nimport { SegmentDeactivation } from \"../../components/clientarea/serviceRequest/segmentDeactivation/segmentDeactivation\";\nconst ClientRouting = (props: any) => {\n return (\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};\nexport default ClientRouting;\n","export default __webpack_public_path__ + \"static/media/adhar-access.b2d87417.webp\";","import * as React from \"react\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport adharAccess_img from \"../../../../assets/images/adhar-access.webp\";\nimport { config } from \"../../../../config/domain\";\nimport EdModal from \"../../../generic/edModal\";\nimport Loader from \"../../../generic/loader\";\nimport TocDropdown from \"../../../generic/tocDropdown\";\nimport {\n generateAccessTokenDetails,\n getDocListFromDigilocker,\n getSelectedDocument,\n getDigiLockerDetails,\n} from \"../../../service/generic/otherApi\";\nimport { getUserID } from \"../../../service/login/loginService\";\nimport {\n GetEquityReactivationClientValidation,\n getSelectedDocumentDetails,\n} from \"../../../service/serviceRequest/srApiService\";\nimport { IListObj } from \"../../../types/genericTypes\";\n\nvar overflowBtnDropdownOptions: Array = [\n {\n value: \"/clientarea/service-request/address-modification\",\n display: \"Address Modification\",\n },\n {\n value: \"/clientarea/service-request/account-reactivation\",\n display: \"Account Reactivation\",\n },\n];\nvar totalStage = [\n \"Profile Details\",\n \"Address Details\",\n \"Bank Details\",\n window.localStorage.getItem(\"digiAuthKey\") ? \"Document Upload \": \"Document Upload & Video IPV\",\n \"E-sign\",\n];\nexport const ShowDocuments: React.FC = (props) => {\n const location = useLocation();\n const [errCode, setErrCode] = React.useState(\"\");\n const [aadharDocDetails, setAadharDocDetails] = React.useState();\n const [accessToken, setAccessToken] = React.useState(\"\");\n const [authToken, setAuthToken] = React.useState(\"\");\n const [authKey, setAuthKey] = React.useState(\"\");\n const [token, setToken] = React.useState(\"\");\n const [accountCode, setAccountCode] = React.useState();\n const [panNo, setPanNo] = React.useState();\n const [loader, setLoader] = React.useState(true);\n const srId = window.localStorage.getItem(\"srId\");\n const source = window.localStorage.getItem(\"source\");\n const consentType = localStorage.getItem(\"consentType\");\n const addressConsent = localStorage.getItem(\"consent\");\n const [showModel, setShowModel] = React.useState(true);\n const [fullName, setFullName] = React.useState();\n let digieFlow: any = localStorage.getItem(\"digie\");\n const [currentStage, setCurrentStage] = React.useState(2);\n const rejectFlow: any = localStorage.getItem(\"rejectFlow\");\n React.useEffect(() => {\n getAddressDetails();\n // const queryObject = Object.fromEntries(\n // new URLSearchParams(location.search)\n // );\n // if (\n // typeof queryObject.code !== \"undefined\" &&\n // queryObject.state !== \"undefined\"\n // ) {\n // let accessTokenObj: any = {};\n // accessTokenObj.code = queryObject.code;\n // accessTokenObj.reDirectUrl = config.reDirectUrl + \"?\";\n // accessTokenObj.client_Id = config.client_Id;\n // // console.log(accessTokenObj);\n // getAccessToken(accessTokenObj);\n // }\n\n if (\n localStorage.getItem(\"digiLockerToken\") &&\n localStorage.getItem(\"digiAuthToken\") &&\n localStorage.getItem(\"digiAuthKey\")\n ) {\n setAuthToken(localStorage.getItem(\"digiAuthToken\"));\n setAuthKey(localStorage.getItem(\"digiAuthKey\"));\n setToken(localStorage.getItem(\"digiLockerToken\"));\n setLoader(false);\n } else {\n setErrCode(123);\n setLoader(false);\n }\n }, []);\n async function getAddressDetails() {\n try {\n let addressDetails = await GetEquityReactivationClientValidation();\n if (addressDetails.result && addressDetails.result.length > 0) {\n setAccountCode(addressDetails.result[0].AccountCode);\n setPanNo(addressDetails.result[0].PANNo);\n setFullName(addressDetails.result[0].FullAcName);\n }\n } catch (e) {}\n }\n async function getAccessToken(accessTokenObj: any) {\n let resp = await generateAccessTokenDetails(accessTokenObj);\n if (resp && resp.data) {\n if (resp.data.access_token) {\n let digiDocInfo = { ...accessTokenObj };\n digiDocInfo.access_token = resp.data.access_token;\n setAccessToken(resp.data.access_token);\n getDocumentListFromDigilocker(digiDocInfo);\n } else {\n if (resp.data.eaadhaar === \"N\") setLoader(false);\n setErrCode(\n \"Please link your aadhaar details with digilocker and refresh the page and click on continue to complete the process.\"\n );\n }\n } else {\n setLoader(false);\n setErrCode(1241);\n }\n }\n async function getDocumentListFromDigilocker(digiDocInfo: any) {\n let documentsResp = await getDocListFromDigilocker(digiDocInfo);\n if (\n documentsResp.data &&\n documentsResp.data.items &&\n documentsResp.data.items.length > 0\n ) {\n const adhar = documentsResp.data.items.filter(\n (x: any) => x.name === \"Aadhaar Card\"\n );\n if (adhar.length > 0) {\n setAadharDocDetails(adhar[0]);\n setLoader(false);\n }\n } else {\n setErrCode(1252);\n setLoader(false);\n }\n }\n async function redirectToPage() {\n try {\n setLoader(true);\n // const adharArr: Array = aadharDocDetails.uri.split(\"-\");\n // let adharNo = \"\";\n // if (adharArr.length === 3) {\n // const reg = new RegExp(\"^[0-9]+$\");\n // adharNo = adharArr[2];\n // } else {\n // adharNo = \"000000000000\";\n // }\n // let data = {\n // aadharNo: adharNo,\n // fileUri: aadharDocDetails.uri,\n // filename: \"\",\n // token: accessToken,\n // applicationId: accountCode,\n // clientPrimaryDetailId: \"\",\n // leadId: \"\",\n // panno: panNo,\n // };\n let data = {\n token: token,\n authToken: authToken,\n authKey: authKey,\n };\n try {\n let selectedDocumentResp = await getDigiLockerDetails(data);\n\n if (\n selectedDocumentResp &&\n selectedDocumentResp.aadharName &&\n selectedDocumentResp.coresAddress &&\n selectedDocumentResp.state &&\n selectedDocumentResp.coresPincode &&\n selectedDocumentResp.permanentCity\n ) {\n var autoQC = \"No\";\n if (\n selectedDocumentResp.aadharName\n .toLowerCase()\n .match(fullName.toLowerCase())\n )\n autoQC = \"Yes\";\n else autoQC = \"No\";\n let tempAddr = selectedDocumentResp.coresAddress.replaceAll(\",\", \" \");\n tempAddr = tempAddr.trim();\n tempAddr = tempAddr.replace(/\\s+/g, \" \");\n let personalDetails = {\n aadharName: selectedDocumentResp.aadharName,\n addressLine1: tempAddr,\n stateStr: selectedDocumentResp.state,\n pincode: selectedDocumentResp.coresPincode,\n city: selectedDocumentResp.permanentCity,\n isDigiLocker: true,\n fileData: selectedDocumentResp.pdfDetails,\n fileName: selectedDocumentResp.ftpAadharFileName,\n proof: \"Aadhar card\",\n autoQC: autoQC,\n accCode: getUserID(),\n photoDetails: selectedDocumentResp.photoDetails,\n pdfXMLResp: selectedDocumentResp.pdfXMLResp,\n };\n window.localStorage.setItem(\n \"personalDetails\",\n JSON.stringify(personalDetails)\n );\n if (rejectFlow && digieFlow) {\n history.push(\n \"/clientarea/service-request/account-reactivation?rejected&source=ajs\"\n );\n } else if (digieFlow) {\n let consent =\n consentType && consentType !== null\n ? \"?source=ajs&consentType=\" + consentType\n : addressConsent\n ? \"?source=ajs&consent=Change of Address\"\n : \"?source=ajs\";\n history.push(\n \"/clientarea/service-request/account-reactivation\" + consent\n );\n } else {\n if (srId) {\n window.localStorage.setItem(\"srId\", srId);\n }\n history.push(\n \"/clientarea/service-request/address-modification?soad=dig&source=ajs\"\n );\n }\n setLoader(false);\n } else {\n setErrCode(1252);\n setLoader(false);\n }\n } catch (e) {\n setErrCode(1252);\n setLoader(false);\n }\n } catch (e) {\n setErrCode(1252);\n setLoader(false);\n }\n }\n const onClose = () => {\n if (digieFlow) {\n let consent =\n consentType && consentType !== null\n ? \"?consentType=\" + consentType\n : addressConsent\n ? \"?consent=Change of Address\"\n : \"\";\n history.push(\n \"/clientarea/service-request/account-reactivation\" + consent\n );\n } else {\n if (source === \"ajs\")\n history.push(\"/clientarea/service-request?soad=dig&source=ajs\");\n else {\n history.push(\"/clientarea/service-request\");\n }\n }\n setLoader(false);\n setShowModel(false);\n };\n\n const history = useHistory();\n function ModalBody(): React.ReactElement {\n return (\n
    \n
    \n
    \n

    New Service Request

    \n {!(\n (consentType &&\n (consentType?.includes(\"email\") ||\n consentType?.includes(\"mobile\") ||\n consentType?.includes(\"emailMob\"))) ||\n addressConsent?.includes(\"Change of Address\")\n ) && (\n
    \n {source === \"ajs\" ? (\n \n \n \n ) : (\n \n \n \n )}\n
    \n )}\n
    \n \n
    \n
    \n \n \n value !== \"\" ? props.history.push(value) : null\n }\n disabled={true}\n isSearchable={false}\n />\n
    \n {digieFlow ? (\n
    \n
    \n
      \n {totalStage.map((stage, index) => {\n if (currentStage - 1 >= index) {\n return (\n
    • \n \n
    • \n );\n } else {\n return
    • ;\n }\n })}\n
    \n
    \n\n
    \n

    \n {totalStage[currentStage - 1]}\n

    \n
    \n
    \n ) : (\n
    \n )}\n
    \n\n
    \n
    \n
    \n \n
    \n
    \n Allow Access To Your Aadhar{\" \"}\n
    \n
    \n

    \n Click on confirm below to share a digital copy of your\n Aadhaar card with us.\n

    \n

    \n Please note: Digilocker does not reveal 12\n digit Aadhaar Number to us.\n

    \n
    \n {errCode && (\n
    \n {typeof errCode === \"number\" ? (\n
    \n

    \n Looks like there might be an issue with DigiLocker,\n would you like to try again or continue without\n DigiLocker?\n

    \n
    \n ) : (\n
    \n \n
    \n )}\n
    \n )}\n {loader && (\n
    \n \n
    \n )}{\" \"}\n {errCode && !loader ? (\n <>\n
    \n {\n if (rejectFlow && digieFlow) {\n localStorage.removeItem(\"digie\");\n localStorage.setItem(\"digieResubmit\", \"Yes\");\n history.push(\n \"/clientarea/service-request/account-reactivation?rejected&source=ajs\"\n );\n } else if (digieFlow) {\n localStorage.removeItem(\"digie\");\n let consent =\n consentType && consentType !== null\n ? \"?consentType=\" + consentType\n : addressConsent\n ? \"?consent=Change of Address\"\n : \"\";\n history.push(\n \"/clientarea/service-request/account-reactivation\" +\n consent\n );\n } else {\n if (srId) {\n window.localStorage.removeItem(\"srId\");\n window.location.href =\n config.rootUrl + \"clientarea/servicerequest\";\n } else {\n history.push(\n \"/clientarea/service-request/address-modification?source=ajs\"\n );\n }\n }\n }}\n >\n Try Again\n \n
    \n
    \n {\n if (rejectFlow && digieFlow) {\n localStorage.setItem(\"digie\", \"No\");\n localStorage.removeItem(\"digieResubmit\");\n history.push(\n \"/clientarea/service-request/account-reactivation?rejected&source=ajs\"\n );\n } else if (digieFlow) {\n localStorage.setItem(\"digie\", \"No\");\n let consent =\n consentType && consentType !== null\n ? \"?consentType=\" + consentType\n : addressConsent\n ? \"?consent=Change of Address\"\n : \"\";\n history.push(\n \"/clientarea/service-request/account-reactivation\" +\n consent\n );\n } else {\n if (srId) {\n window.localStorage.setItem(\"srId\", srId);\n }\n history.push(\n \"/clientarea/service-request/address-modification?soad=nondig&source=ajs\"\n );\n }\n }}\n className=\"blue-text\"\n >\n Continue Without Digilocker\n \n
    \n \n ) : (\n
    \n {!loader && (\n <>\n
    \n {\n redirectToPage();\n }}\n >\n Confirm\n \n
    \n
    \n {\n {\n setShowModel(false);\n if (rejectFlow && digieFlow) {\n localStorage.setItem(\"digie\", \"No\");\n window.localStorage.removeItem(\n \"digieResubmit\"\n );\n history.push(\n \"/clientarea/service-request/account-reactivation?rejected&source=ajs\"\n );\n } else if (digieFlow) {\n localStorage.setItem(\"digie\", \"No\");\n let consent =\n consentType && consentType !== null\n ? \"?consentType=\" + consentType\n : addressConsent\n ? \"?consent=Change of Address\"\n : \"\";\n history.push(\n \"/clientarea/service-request/account-reactivation\" +\n consent\n );\n } else {\n if (srId) {\n window.localStorage.setItem(\"srId\", srId);\n }\n history.push(\n \"/clientarea/service-request/address-modification?soad=nondig&source=ajs\"\n );\n }\n }\n }}\n className=\"blue-text\"\n >\n Continue Without Digilocker\n \n
    \n \n )}\n
    \n )}\n
    \n
    \n
    \n
    \n \n );\n }\n // return (\n //
    \n //
    \n //
    \n // \"Adhar\n //
    \n //
    \n // Allow Access To Your Aadhar{\" \"}\n //
    \n //
    \n //

    \n // Click on confirm below to share a digital copy of your Aadhaar card\n // with us.\n //

    \n //

    \n // Please note: Digilocker does not reveal 12 digit\n // Aadhaar Number to us.\n //

    \n //
    \n // {errCode && (\n //
    \n // {typeof errCode === \"number\" ? (\n //
    \n //

    \n // Looks like there might be an issue with DigiLocker, would you\n // like to try again or continue without DigiLocker?\n //

    \n //
    \n // ) : (\n //
    \n // \n //
    \n // )}\n //
    \n // )}\n // {loader && (\n // \n // \n //
    \n // )}{\" \"}\n // {errCode && !loader ? (\n // <>\n //
    \n // {\n // if (digieFlow) {\n // localStorage.removeItem(\"digiFlow\");\n // history.push(\n // \"/clientarea/service-request/account-reactvation\"\n // );\n // } else\n // history.push(\n // \"/clientarea/service-request/address-modification?source=ajs\"\n // );\n // }}\n // >\n // Try Again\n // \n //
    \n //
    \n // {\n // if (digieFlow) {\n // localStorage.setItem(\"digiFlow\", \"No\");\n // history.push(\n // \"/clientarea/service-request/account-reactvation\"\n // );\n // } else\n // history.push(\n // \"/clientarea/service-request/address-modification?soad=nondig&source=ajs\"\n // );\n // }}\n // className=\"blue-text\"\n // >\n // Continue Without Digilocker\n // \n //
    \n // \n // ) : (\n //
    \n // {!loader && (\n // <>\n //
    \n // {\n // redirectToPage();\n // }}\n // >\n // Confirm\n // \n //
    \n //
    \n // {\n // {\n // if (digieFlow) {\n // localStorage.setItem(\"digiFlow\", \"No\");\n // history.push(\n // \"/clientarea/service-request/account-reactvation\"\n // );\n // } else\n // history.push(\n // \"/clientarea/service-request/address-modification?soad=nondig&source=ajs\"\n // );\n // }\n // }}\n // className=\"blue-text\"\n // >\n // Continue Without Digilocker\n // \n //
    \n // \n // )}\n //
    \n // )}\n //
    \n // \n // );\n return (\n {}}\n children={ModalBody()}\n modalClsNm={\"absoluteModal\"}\n />\n );\n};\n","import ObRouting from \"./obLayoutRouting\";\nimport React, { useState } from \"react\";\nimport ToastMessage from \"../components/generic/toastMessage\";\nimport ee from \"../components/utils/eventEmitter\";\nimport { BrowserRouter, Route, Switch } from \"react-router-dom\";\nimport OpRouting from \"./opRouting\";\nimport HoldingsRouting from \"./holdingsRouting\";\nimport PositionRouting from \"./positionRouting\";\nimport MarginFilesRouting from \"./marginFilesRouting\";\nimport FtRouting from \"./ftRouting\";\nimport bStrg, { parsedToken } from \"../components/service/storageHelper\";\nimport { jwtToken } from \"../components/types/genericTypes\";\nimport LoginRouting from \"./login/loginRouting\";\nimport FooterCont from \"../components/footer/footer/footerCont\";\nimport FooterRouting from \"./footer/footerRouting\";\nimport { Home } from \"../components/home/home\";\nimport { EdHeader } from \"../components/header/edHeader\";\nimport ClientRouting from \"./clientRouting/clientRouting\";\nimport PostLogin from \"./postLogin\";\nimport { ShowDocuments } from \"../components/clientarea/serviceRequest/addressModification/showDocuments\";\nimport VideoVerification from \"../components/clientarea/serviceRequest/videoVerification/VideoVerification\";\n\nexport const REdRouter = () => {\n\tconst [showToast, setShowToast] = useState<{ message: React.ReactNode; color: \"success\" | \"error\" | \"cancell\" }>();\n\t//conatins the parsed jwtToken\n\tconst pToken: jwtToken | null = parsedToken();\n\n\tconst [currentpage, setCurrentpage] = useState(bStrg(\"currentPage\"));\n\n\t//temp code to be removed after integrating login\n\tee.on(\"showToast\", (e) => {\n\t\tsetShowToast(e);\n\n\t\tsetTimeout(() => {\n\t\t\tsetShowToast(undefined);\n\t\t}, 5000000);\n\t});\n\n\tReact.useEffect(() => {\n\t\tsetCurrentpage(bStrg(\"currentPage\"));\n\t}, [currentpage]);\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t{showToast && }\n\t\t\t\t\n\t\t\t\t\t{currentpage !== \"login\" && }\n\n\t\t\t\t\t<>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/* }/>\n\t\t\t\t\t\t\t}/>\n\t\t\t\t\t\t\t}/> */}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{currentpage !== \"login\" && }\n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t);\n};\n","import React from \"react\";\nimport \"./assets/scss/variables/fontFamily.scss\";\nimport \"./assets/scss/global/global.scss\";\nimport \"./assets/icons/edel_icons/style.scss\";\nimport { REdRouter } from \"./routing/REdRouter\";\n\nconst App = () => {\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\n\t);\n};\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if ((process.env.REACT_APP_ENV === 'production' || process.env.REACT_APP_ENV === 'uat') && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(\n process.env.PUBLIC_URL,\n window.location.href\n );\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' }\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport App from \"./App\";\nimport * as serviceWorker from \"./serviceWorker\";\n\nReactDOM.render(, document.getElementById(\"root\"));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}