{"version":3,"sources":["constants/AppUrls.js","global/utils.js","components/shared/CustomReactComponent/CustomReactComponent.js","global/global.js","assets/icons/ic-check-mark-x.png","assets/images/splash_icons/IS_logo_arabic_white.png","assets/images/splash_icons/IS_logo_english_white.png","constants/Constants.js","assets/images/RAMZ/bg2.png?ver=1","assets/images/splash_icons/IS_logo_arabic.png","assets/images/splash_icons/IS_logo_english.png","components/LoginSignup/AuthContainer.js","components/shared/Toggle/useDarkMode.js","components/LoginSignup/Login.js","assets/images/keyboard_icon.png","components/popups/OtpPopup/OtpPopup.js","components/InputMSX/InputMSX.js","components/LoginSignup/SellIPOShares.js","components/LoginSignup/ForgetPassword.js","components/LoginSignup/ForgotUsername.js","components/LoginSignup/OTP.js","components/LoginSignup/ChangePassword.js","global/Licences.js","assets/images/splash_icons/Shuaa_splach_center.png?ver=1","components/IFrameComponent/IFrameComponent.js","components/TermsAndConditions/SubComponent.js","components/TermsAndConditions/TermsAndConditions.js","App.js","serviceWorker.js","i18n.js","locales/LocalOverride.js","store/reducer.js","store/store.js","index.js","assets/icons/ic-check-mark-correct.png","global/Helpers.js","store/actionTypes.js","global/theme.js"],"names":["basename","login","SellIPOShares","signUp","forgetPassword","ForgotUsername","otp","changePassword","TermsAndConditions","fitGrid","trading","marketOverview","settings","newWorkspace","AdvanceChart","StockProfile","binanceWorkspace","updateAppUrls","basenameParam","any","Object","freeze","KEY1","KEY2","KEY3","KEY4","_keyStr","authenticate","UserName","Password","MobileType","SessionID","UserIPAddress","TokenID","HdnKey","FingerPrintID","FingerPrintLevel","RegistrationId","isAuthorizeOnly","options","params","encryptedString","NewHttpPost","Constants","registrationsOTP","username","tokenID","tradingNo","password","key","fingerPrintID","isIPOQuickSell","withCredentials","TradingNo","FingerPrintEnabled","userAuthinticationAdvance","NIN","ID","Mobile","Email","RequestType","forGotusername","UserAuthinticationIPOQuickSell","resetPasswordAdvance","OldPassword","addProfile","thisparam","abortController","window","AbortController","signal","updateProfile","TraceInfoPost","UpdateUserProfileSettings","undefined","addConditionalOrder","deleteProfile","addMarketWatchProfileSymbol","url","logOff","localStorage","getItem","deleteMarketWatchProfile","addMarketWatchProfileName","profileName","updateReadPushNotificationsFlag","deleteAlertByAlertID","deleteMarketWatchProfileSymbol","DeleteMarketWatchProfileAllSymbols","ProfileID","WebCode","CancelB2bRequest","Reqid","REQ_ID","WEB_CODE","CancelEquityTransferRequest","deleteConditionalByID","changesPassword","addAlert","getAccountTransferInfo","callAddBankIBAN","callDeleteBasketOrder","OrderID","submitCrmRequestRamz","addBasketOrderDetails","ModifyBasketOrderDetails","renewSubscriptionUser","TransferAmount","getAlerts","webcode","a","get_alert_url","NewHttpGet","GetTransferReqPenddingShares","getAllPushNotificationsByUser","getAllPushNotificationsByFirebase","Tokenid","googleId","Title","Body","Tag","isNew","trim","getExpectedProfitLoss","getTradeConfirmation","getStatmentOfAccount","sendDocumentByEmail","getMarketByProfile","getMarketWatchByProfileIDAndSymbol","calculatesShares","getProfiles","getConditionalByUsr","getLookups","Math","random","getUserAccounts","getCompaniesLookups","GetUSCompaniesResults","symbol","GetCryptoCompaniesResults","CheckIfUSSymbolExist","CheckIfCryptoSymbolExist","AddUSTOCompaniesLookups","AddCryptoSymbolTOCompaniesLookups","getProfilesByUserId","getCashDepURL","themeOfSys","lang","GetIPOLink","UpdateTermsAndConditionsVersion","GetTermsAndConditionsText","appLang","GetDeviceConfigs","GetSettingWorkSpaceByUserID","GetRiskManagment","obj","GetRiskManagmentCash","getAvgIndexes","excangeID","day","sector","getContactInfo","getIpAddress","getAllMarketNews","getHistorySymbolData","getGetProfiles","getBankIBAN","CallCheckIBAN","getAllTransfersReq","getShareTransferLogWithDetails","getHeartBeat","getBalanceBreakdown","getDFN_StockData","getUserPermissionsByGroupID","getPasswordPolicy","getExchangeSummary","get_exchange_summary_url","GetRequiredUserDocuments2","MainClientID","CheckUpdateIdValidity","getAnalysisIndecator","getCustodiansByClientID","GetBasketOrderDetails","UpdatePreferredLangAccount","value","svalue","encode","bvalue","gen","generate","_utf8_encode","string","replace","utftext","n","length","c","charCodeAt","String","fromCharCode","GetDailyReports","max","min","pow","floor","substring","input","type","chr1","chr2","chr3","enc1","enc2","enc3","enc4","output","i","isNaN","charAt","retValue","axios","post","catch","err","console","log","responseProcess","response","status","postRequest","SubmitShareTransferReq","SubmitEquityTransferReq","GetAccountTransferInfo","UpdateIdValidity","UploadClientDocuments","get","getRequest","resStatus","isFirstTime","errorHandling","appComponent","redirectFunctionality","dateFromStringDateOnly","s","r","exec","dateFromStringPlanB","dateFromString","Date","parseInt","TimeStamptodate","unix_timestamp","toLocaleString","getMarketIndices","exchange_id","get_market_indices_url","getMarketIndicesVer2","getAccountSummary","getTransactionSummary","strMod","e","error","GetNextRequestID","get_next_request_id_url","GetExpectedProfitLossSec","ClientID","BrokerID","ExchangeID","get_expectedprofitlosssec_url","GetChatWebBRKLookup","getchatbotwebbrklookup_url","GetLastChatConversion","BRKID","dateFrom","DateTo","getLastChatConversion","GetUSSymbolNews","Symbol","toast","configure","CustomReactComponent","props","customInitialize","dir","leftLocalized","floatRightLocalized","mrAutoLocalized","mlAutoLocalized","ml1Localized","ml2Localized","ml3Localized","ml4Localized","ml5Localized","mr1Localized","mr2Localized","mr3Localized","mr4Localized","mr5Localized","ml3LocalizedPopupHeader","mr3LocalizedPopupHeader","pl1Localized","pr1Localized","pr3Localized","Helpers","ErrorFallback","resetErrorBoundary","role","message","className","onClick","getLoader","isLoaderVisible","style","display","top","position","color","height","width","visible","state","this","React","Component","GlobalStyles","createGlobalStyle","theme","body","text","secondaryBackgrounColor","newBackgroundColor","localStorageConstants","app_path","company_name","Region","server_url","chart_iq_url","chart_trading_url","signalr_url","signalr_hub","isTickerVisible","last_Work_day","Foreign_Market","PortfolioProvider","EnableTags","EnableIPOQuickSell","EnableSymbolFullName","serverURL","signalrURL","signalrHub","domainURL","baseURL","userAuthintications","UserAuthinticationAdvance","ForGotUsername","ResetUserNameAdvance","ResetPasswordAdvance","profileBaseUrl","profileBaseUrlPart2","GetUserAccounts","HeartBeat","GetAvgIndexes","getMarketByProfileDefault","GetMarketWatchByProfileIDAndSymbol","getIndexesSummary","AddCryptoSymbolToCompaniesList","GetMarketIndicies","modifyBasketOrderDetails","modifyOrderRealTime","getAccSummary","getGroupByOrderStatmentOfAccount","getGroupedStatmentOfAccount","transferAmountSec","submitCrmRequestRamz2","AddBankIBAN","checkIBAN","AllTransfersReq","getAllPushNotificationsFromFirebase","getChatWebBRKLookup","GetShareTransferLogGrouped","GetShareTransferLogWithDetails","GetUserPermissionsByGroupID","GetAccountSummaryReport","GetExpectedPortfolioReport","GetProfitLossTransactionReport","GetTradesConfirmationReport","GetContactInfo","GetCashDepURL","TechnicalIndicator","BasketOrederURL","DeleteBasketOrder","CustodiansByClientID","updateUrls","config","RealTimeOrders","AllowOfflineOrder","CompanyName","RememberUserName","RememberPassword","OrderStatusText","Active","Traded","Canceled","Suspended","Expired","Pending","New","Outstanding","Partially_Filled","Rejected","Fully_Filled","Sent","Waiting","Private_Order","Unplaced_Order","Pending_Modify","Pending_New","Pending_Canceld","InActive_Trigger","OrderStatusTextArabic","OrderStatusResponse","OrderValidityResponse","Day","GTC","GTD","GTW","GTM","FOK","FAK","Layouts","Trading","Market_Overview","Account_Summary","New_Workspace","fit_ag_grid","Advance_Chart","Stock_Profile","defaultWorkspace","DockingTabs","Main_Grid","Order_List","Order_Basket","Orders_Entry","Order_Search","Information","Market_Time_And_Sales","Tops","News_And_Announcements","Transfers","Portfolio","Statement","Chart","Trade_Confirmation","Market_Indicies","Conditional_Orders","Balance_Breakdown","Historical_Symbol","Alert_Manager","Fundamental_Data","Client_Information","Market_Depth","Stock_Details","ChartIQ","SymbolTimeAndSales","SymbolNewAndAnnouncements","DetailQuote","TopsActive","Sector_overview","MarketSummary","AccountSummaryChart","HoldingsAllocation","TransactionSummary","ShortMWSymbol","VerticalMarketDepth","EquityTransfer","AllTransfersScreen","BinanceOrderEntry","AnalysisIndecator","BasketOrders","DailyReports","Requests","PortfolioFromDB","linkingColorTabs","LoginStatus","Success","InvalidLogin","invalidTokenID","TokenSent","TokenExpire","noPermetions","ExceedNoTrials","AlreadyLoggedIn","NotAgreeTermCondtion","UnknowError","IPOQuickSell","EnableEtrade","ComponentChildCode","Market_Watch","Market_Watch_Trade","Order_List_1","Sell_Orders_Entry","Buy_Orders_Entry","Shares_Transfer","TransferParent","Transfer","Internal_Transfer","Wire_Transfer","Cheque_Transfer","IBAN_Transfer","Cancel_Transfer","Request_Log","Account_Statement","Live_Chart","Historical_Symbol_Meta_Data","Alert","Client_Informations","Market_Depth_Order","Market_Depth_price","Martet_By_Symbol","Symbol_Time_And_Sales","Market_News_And_Announsments","Symbol_News_And_Announsments","Tops_Gainers","Tops_Losers","Tops_Value","Tops_Volume","Top_Trades","change_password","Quick_Order","Market_trade_summary","EtradeTicker","ChangePassword","EquityTransferDisplay","EquityTransferIn","EquityTransferOut","EquityTransferBetween","EquityTransferLog","EquityTransferCancel","ContactUS","cashDeposit","KYCLink","IPOLink","PreferredLanguage","Subscription","DailyReportsDisplay","Highlights","EgyptDaily","TechnicalReport","CrmRequest","dateFormat","dateFormat_4","defaultTheme","errorNotifyDuration","successNotifyDuration","connect","dispatch","setDarkMode","isDarkMode","actions","payload","forwardRef","withTranslation","withRef","useTranslation","t","useState","setTheme","componentMounted","setComponentMounted","setMode","mode","setItem","useEffect","localTheme","useDarkMode","themeMode","lightTheme","darkTheme","flexClass","formDirection","i18n","language","src","LeftImage","maxWidth","alt","direction","textAlign","marginTop","subTitle","form","Login","useDispatch","setUsername","setPassword","LanguageSelectedFromLogin","setLanguageSelected","isLanguageSelectedFromLogin","setIsLanguageSelectedFromLogin","passwordType","setPasswordType","isRememberMe","setIsRememberMe","redirect","setRedirect","setVisible","keyboardVisible","setKeyboardVisible","passwordDisabled","setPasswordDisabled","layout","setLayout","keyboardLanguage","setKeyboardLanguage","keyboard","useRef","tokenId","alreadyLoggedInFunc","yes","no","confirmAlert","title","buttons","label","callLoginApi","closeOnEscape","closeOnClickOutside","handleSubmit","preventDefault","i18next","validate","getUserSettings","then","data","WorkSpaceSettings","res","JSON","parse","selectedProfile","PreferredSymbol","PreferredExchange","EnableExpandRow","expandRow","EnableTradeTicker","tradeTicker","EnableRoundTicker","RoundTicker","postdata","profileUniqueID","ProfileName","ProfileNameAr","ProfileSettings","stringify","utils","changeLanguageNew","finally","abort","saveSettings","ForgotPasswordMethod","isFirstLoggedIn","AppUrls","toUpperCase","msg","id","href","NotEnableEtrade","hideLoader","to","localizationBtnClass","localizationBtnFloat","paddingleft","paddingRight","paddingleft2","paddingRight2","background","customLayout","default","shift","keyboardTheme","keyboardVisibleDisplay","name","onSubmit","tabIndex","placeholder","onChange","target","disabled","autoComplete","float","marginLeft","marginRight","backgroundColor","border","cursor","event","current","setInput","aria-hidden","fontSize","right","left","keyboardRef","layoutName","onKeyPress","button","checked","marginBottom","newlang","removeItem","paddingLeft","innerWidth","OtpPopup","transition","opacity","contain","onClose","overflowY","autocomplete","setState","callRegistrationsOTP","InputMSX","maskVal","setmaskVal","convertString","cleanedInput","zerosToAdd","repeat","onBlur","converted","zerosCount","zeros","splitted","split","newSplit","mask","onComplete","idNumber","setidNumber","mobileNumber","setmobileNumber","OmanAccBfx","setOmanAccBfx","OmanAccAfx","setOmanAccAfx","DeviceConfigs","pattern","inputMode","inputValue","formattedValue","padStart","maxLength","ForgetPassword","email","setEmail","mobile","setMobile","nin","setNin","qId","isNewPasswordVisible","setIsNewPasswordVisible","newPassword","setNewPassword","confirmNewPassword","setConfirmNewPassword","MINLENGTH","set_MINLENGTH","ENFORCE_START_WITH_ALPHA","set_ENFORCE_START_WITH_ALPHA","ENFORCE_SPECIAL_CHAR","set_ENFORCE_SPECIAL_CHAR","NUM_SMALL_CHAR","set_NUM_SMALL_CHAR","NUM_SPECIAL_CHAR","set_NUM_SPECIAL_CHAR","NUM_CAPITAL_CHAR","set_NUM_CAPITAL_CHAR","checkMarkFalse","IC_MINLENGTH","set_IC_MINLENGTH","IC_ENFORCE_START_WITH_ALPHA","set_IC_ENFORCE_START_WITH_ALPHA","IC_ENFORCE_SPECIAL_CHAR","set_IC_ENFORCE_SPECIAL_CHAR","IC_NUM_SMALL_CHAR","set_IC_NUM_SMALL_CHAR","IC_NUM_CAPITAL_CHAR","set_IC_NUM_CAPITAL_CHAR","IC_NUM_SPECIAL_CHAR","set_IC_NUM_SPECIAL_CHAR","callUserAuthinticationAdvance","PasswordPolicy","keys","customUI","callResetPassword","format","validateForResetPassword","Newpassword","checkMarkCorrect","specialFormat","containsSpecialChar","test","containsNumberChar","containsletterChar","smallLetter","smallLetterCount","capitalLetter","capitalLetterCount","specialLetterCount","onChangeNewPassword","callForgotUsername","OTP","setLayoutName","shuffledLetters","shuffle","shuffledNumber","shuffledlettersCaps","shuffledlettersCapsNum","row","map","pop","join","caps","generateKeyboardLayout","keyboardLayout","array","temporaryValue","randomIndex","currentIndex","handleShift","handleCapsLock","handleSpace","handleBackspace","slice","setOtp","otpType","setotpType","passwordToOTp","responseJson","confirmPassword","setConfirmPassword","callChangePasswordApi","success","POSITION","BOTTOM_CENTER","hideProgressBar","autoClose","RelatedLicences","IFrameComponent","iframeSrc","SubComponent","disabledButton","checkedDetail","callLogOff","Comapnyname","prev","clear","box","document","getElementsByClassName","visibility","boxTitle","boxMsg","boxLogin","boxShadow","borderStyle","disconnectSignalr","signalr_connection","proxies","myhub","invoke","stop","disable","marginInline","borderRadius","TermsAndConditionsText","TermsAndConditionsAR","TermsAndConditionsURL","flexDirection","dangerouslySetInnerHTML","__html","Container","lazy","App","getConfig","LicenseManager","setLicenseKey","Licences","fetch","process","headers","json","relatedConfig","website_name","isPopulated","changeLanguage","RememberMe","setTimeout","errorNotify","setIsLoaderVisible","isMobile","ReactGA","initialize","pageview","location","pathname","search","mobileView","companyName","appClassLanguage","exact","path","render","isLoggedIn","fallback","SplashScreenImage","langValue","Boolean","hostname","match","resources","en","translation","local","translationEn","OverrideLocals","pt","translationPT","ar","translationAr","use","initReactI18next","init","lng","keySeparator","interpolation","escapeValue","initialState","connectionStatus","symbolSelected","orderTypeSelected","symbols","accounts","allAccounts","activeProfile","isLocked","isSearch","orders","orderSelected","IsorderSelectedAgain","notificationCount","exchanges","symbolDetails","profileIdSelected","profiles","subscribedSymbols","subscribedSymbolsTicker","isSubscribedSymbolsChanged","isNewWorkspaceLayout","isAlertDeleted","AlertDeleted","SymbolDeleted","isConditionalOrderDeleted","isSidebarOpen","symbolSelectedForLinkingTab","linkingColorAnyScreen","linkingTab","permData","isSidebarMenuOpen","isNewWorkspaceChartLayout","workspaceChartProfiles","workspaceChartAdvanceFocous","AdvanceSerachSymbol","SelectdProfiles","IsProfilesUpdated","ProfileList","Indexes","refreashTimeSettings","numberofTradingSettings","BidPrice","BidVolume","OfferPrice","OfferVolume","BidPriceOrderPopUP","BidVolumeOrderPopUP","OfferPriceOrderPopUP","OfferVolumeOrderPopUP","SymbolTrades","MarketWatchDatafeed","mboDataFeed","mbpDataFeed","SymbolNewData","SymbolToBesubscribed","OrderIsUpdated","ClientIDOrderIsUpdated","OrderDataFeed","ActiveProfileForDefaultWorkspace","workSpaceLayoutsNumber","SymbolTSSubscrib","marketOverviewProfile","MarketTrades","selectedAccountFromPortfolioWorkspace","selectedSymbolFromPortfolio","Comp_IDFromPortfolio","portfolioData","totalHoldingCost","QtyFromPortfolio","Qty","RowFromMW","isRowInMWClicked","portfolioDataFirstReq","Settings","ActiveWorkspaceUniqueID","AvgIndexes","PopulatedRiskManagement","IsMobileSize","lookups","SectorOfMarket","IDValidityResult","OrigenalExchanges","PreferredLangAcc","MainClientID_DefaultAcc","fromBasketOrder","updateFromBasketOrder","basketOrderObject","GroupName","reducer","action","newState","newState1","assign","oldorders","NewOrder","appendOrder","checkofOrderExist","filter","ord","NewOrders","ex","find","oldexchange","exchangesUpdate","Newexchange","hasOwnProperty","result","el","o","ExchangeNameE","NameE","ExchangeNameA","NameA","EquityTransferComm","old","IndexAvailable","ColorFromAgGrideContainer","allTabWithColor","isOpen","IsAddOrDeleteProfile","filterSymbolToBesubscribed","sss","ScreenID","foundIndex","findIndex","x","push","filterSymbolTSSubscrib","UpdateSymbolTSSubscrib","OldDataFeed","trades","Trades","filterprofiles","ScreenProfileID","profile","OldDataFeedMarket","Exchange","Market","store","createStore","app","I18nextProvider","ReactDOM","getElementById","navigator","serviceWorker","ready","registration","unregister","numeral","require","minimumFractionDigits","maximumFractionDigits","numberFormatter","Number","successNotify","numberFormatterWithCommas","toString","numberFormatterWithCommasGrid","param","numberFormatterDigits","numberOfDigits","toFixed","numberFormatterWithCommasAndDigits","numberFormatterWithCommasAndDigitsFixed","threeDigitFormatValue","option","option1","agGridSymbolLosses","Losses","agGridThreeDigitFormatValue","CUR_CODE","CurCode","colDef","field","agGridCustomDigitFormatValue","LastTradePrice","qtyFormatValue","agGridQtyFormatValue","agGridChangePercentageFormatter","StatusFormatter","isAgGrid","auth","isfromHeader","dateFromStringPlanC","withTime","str","num","date","stringDate","getMonth","getDate","getFullYear","getHours","getMinutes","getSeconds","dateFromStringPlanE","dateFromStringPlanD","isJsonString","dateToString","d","dateOnly","twoDigitNumberToString","dateToFormatyyyyMMdd","month","DateFromYYYYMMDDtoDDMMYYYY","separator","concat","dateFrommater","dateTimeFillFormat","moment","dateTimeFillFormat2","dates","date_ob","dig","nFormatter","digits","convertStringToHtml","desc","linkEN","rg","includes","getCurrentLanguage","getMarketStatusName","StatusCode","getComponentPermission","ParentCode","ChildCode","isfromScreen","Check2","perm","Check","numberSort","num1","num2","dateComparator","date1","date2","date1Number","monthToNum","date2Number","datetimeformatterAgGrid","ValidityCodeFormatterAgGrid","ValidityCodeFormatter","values","BuySellFormatterAgGrid","TopsEnum","TopGainers","TopLoosers","TopVolume","TopTrades","TopTurnover","emptyCache","caches","names","forEach","delete","reload","UnformatNumber","getExchangeStatusCode","exchangeID","markets","calculateShares","useOrderValue","thisParam","selectedSymbol","orderId","order","bsFlag","orderType","cash","orderValueInputNotDisabled","shares_price","price","parseFloat","validity","selectedValidityDateType","validityDate","isIPOChange","MaxPrice","MinPrice","new_validity","account","exchange","allAccount","customThis","found","getSelectedAccountBySymbol","selectedAccount","marketType","MarketType","validityCode","Validity","Side","user","typeCode","usercat","UserType","portmang","memberid","compinit","CompInit","AccountID","UCode","quantity","switchRiskManagementType","callGetRiskManagement","isConfirmAndSubmit","isModify","BtnClicked","validateAndConfirmOrder","userType","uCode","borkerId","compInit","webCode","marketOrderTypeSelected","OrderType","Price","orderToModify","UserCat","PortMang","MemberID","IncludeMargin","IncludeFacil","TypeCode","ValidityCode","settType","CustodyID","Leverage","LeverageValue","riskManagementResponse","riskManagement","Approval_Type","AvailBal","BANK","BANK_ACCOUNT_NO","BuyOrders","BuyPower","BuyTrades","CLIENT_NAME_A","CLIENT_NAME_E","Cash","FacilitiesAmt","Flag","FlagMsgA","FlagMsgE","MSValidation","MarginAmnt","OffLineOrderDate","OrderValue","SellOrders","SellTrades","Shares","UnpostedCRTrxns","UnpostedDBTrxns","broker_ID","fromCurrentScreen","MaxLeverage","orderValueInput","isfillDatafromMarketWatch","changeSymbol","validityDateChecker","tif","IPOValidityDate","look","Type","item","validityDateTypes","isLookupsPupulated","callGetRiskManagementCash","useAllCash","MarketOrderType","marketOrderType","orderDate","MinFill","MinFillQty","VisibleQuantity","VisibleQty","TP_price","SL_price","ValidityDate","TotalVolume","Remaining","isConditionalOrder","TransferReq","Symbols","SymbolCompanyE","SymbolCompanyA","IsValidateMinMax","MaxPriceValue","MinPriceValue","indexOf","Precision","IsFund","Limit","ISTradingSession","TradingSessionDisabled","selectedTradingSession","IS_MARGIN_ACC","maxL","order_quantity","total_volume","order_price","priceForApi","confirmAndSubmitOrder","msgText","placeNewOrder","callAddOrder","newDate","SymbolCode","SymbolID","BookCode","total","remaining","execqty","SourceCode","EntryDate","ModifyDate","UserID","OrigUserID","MarketTypeCode","Source2Code","selectedExecutionRole","OrderTypeCode","ProcSentFlag","MarketOrderID","OriginCode","IntOrderID","TrxnID","SellBuyFlag","msgCode","AccountNameA","ClientNameA","AccountNameE","ClientNameE","Remark","SenderSubID","BuyerMember","SellerMember","AvgExePrice","IsinCode","FIXOrderID","RejectReason","TR_price","Max_TR_price","TR_Price_is_perc","BE_Price","SPL_Order_flag","ApprovalStatusCode","ApprovalTypeCode","StopLossPx","SenderCompanyID","LocalValue","SymbolLongName","LastUpdateTime","SmartOrderID","Sett_Type","selectedSettelmentType","CustodianID","selectedCustodian","IP_Address","TradingSessionID","order1","callCancelOrder","today","fromDate","setDate","OffLineOrderDateformat","setHours","setTime","getTime","setSeconds","setFullYear","setMonth","isValidityDatePickerDisabled","endingday","getNextDayOfTheWeek","pd","$","now","dayName","excludeToday","refDate","dayOfWeek","getDay","selectSymbol","isHeader","isOrderScreen","selectedSymbolSearchSelect","isSymbolDetailsPopulated","isLookupsPupulatedExecution","populateAccounts","callSignalr","IS_US_ONLINE","SymbolData","AlertMSG","isAccountSelectedFromProps","accountsOptions","existed","display_Leverage","countCall","CurrCode","IS_DERIVATIVE","ALLOW_DERIV_TRADING","allow_short_sell","cl_allow_short_sell_market","IS_DEFAULT_ACC","isAccountDropdownDisabled","displayLeverage","IsPortfolioPopulited","callgetCustodiansByClientID","callgetPortfolioForIPOQuickSell","index","setSymbolToSub","screenid","getUser","getExchangesWithSelected","selectedID","isFound","isSelected","getMaxValue","apply","autoSizeAll","skipHeader","allColumnIds","gridColumnApi","getAllColumns","column","colId","autoSizeColumns","getIsIPad","getCompanyName","removeExistingItem","getAppTheme","appThemeClass","getAppThemeMode","getIsTickerVisible","isTickerVisibleLocalStorage","setIsTickerVisible","isTickerVisibleParam","getPreviousConfig","SetpreviosConfig","isNullOrEmpty","getAsByteArray","file","Uint8Array","readFile","Promise","resolve","reject","reader","FileReader","addEventListener","readAsArrayBuffer","getKeyOfObj","Obj","ExchangesUpdateEnableTagValue","exchangesUpdateMsg","fromRedux","oldOrigenalexchange","list","oldExchange","keysOfNewData","idx","SYMBOL_CHANGED","GET_SYMBOLS","GET_ORDERS","APPEND_ORDERS","GET_ACCOUNTS","SET_ACTIVE_PROFILE","SELECT_ORDER","SET_NOTIFICATION_COUNT","DECREMENT_NOTIFICATION_COUNT","INCREMENT_NOTIFICATION_COUNT","GET_EXCHANGES","GET_ExchangesOriginal","SET_DARK_MODE","GET_SIGNALR","SET_SYMBOL_DETAILS","SET_PROFILES","SET_PROFILE_ID_SELECTED","SET_SUBSCRIBED_SYMBOLS","SET_IS_SUBSCRIBED_SYMBOLS_CHANGED","SET_IS_LOADER_VISIBLE","SET_IS_NEW_WORKSPACE_LAYOUT","SET_IS_ALERT_DELETED","SET_IS_CONDITIONAL_ORDER_DELETED","SET_CONFIG","SET_IS_SIDEBAR_OPEN","SET_IS_TICKER_VISIBLE","LINKING_TAP","LINKING_ALL_TAPS_OPEN","CLOSE_BTN","SET_PERM_DATA","SET_IS_SIDEBAR_MENU_OPEN","SET_IS_NEW_WORKSPACE_CHART_LAYOUT","WORKSPACE_CHART_PROFILES","SET_IS_NEW_WORKSPACE_CHART_ADVANCE_FOCOUS","SET_ADVANCE_SEARCH_SYMBOL","GET_EXCHANGES_UPDATE","UPDATE_SELECTED_PROFILE","IS_PROFILES_UPDATED","IS_ADD_DELETE_PROFILE","GET_INDEXES","UPDATE_ENABLE_EXPAND_ROW","UPDATE_RFREASH_TIME_SETTINGS","UPDATE_NUM_OF_TRADING","SYMBOL_TRADES_DATAFEED","MARKET_WATCH_UPDATE","MARKET_DEPTH_UPDATE","SET_SUBSCRIBED_SYMBOLS_TICKER","SET_SYMBOLS_TO_SUBSCRIBED","ORDER_IS_UPDATED","ORDER_LIST_DATAFEED","SET_DEFAULT_WORKSPACE","SET_WORKSPACE_LAYOUTS_NUMBER","SET_ACTIVE_PROFILE_FOR_DEFAULT_WORKSPACE","SET_ORDER_SELECTED_FALSE","SYMBOL_TIME_SALE_SUB","UPDATE_SYMBOL_TIME_SALE_SUB","SET_MAEKET_FOR_MARKET_OVER_VIEW_PROFILE","MARKET_TRADES","SELECTED_ACCOUNT_FROM_PORTFOLIO_WORKSPACE","SET_SELECT_SYMBOL_FROM_PORTFOLIO","SELECT_PREFERRED_SYMBOL","SET_PORTFOLIO_Data","SYBMOL_QTY_TO_SELL","selected_Row_From_MW","IS_Row_In_MW_Clicked","PORTFOLIO_FIRST_REQUEST","CHECK_CONNECTION","SELECT_PREFERRED_EXCHANGE","USER_SETTINGS","AVG_INDEXES","ENABLE_TRADE_TICKER","ENABLE_ROUND_TICKER","Is_Mobile_Size","GET_LOOKUPS","GET_SectorOfMarket","Active_Workspace_UniqueID","get_ID_Validity_Result","Get_Default_AccountInfo","get_BasketOrder","get_updateFromBasketOrder","get_basketOrderObject","get_GroupName","GET_EXCHANGES_UPDATE_EnableTags","toggleBorder","gradient","buttonColor"],"mappings":"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","file":"static/js/main.86131fca.chunk.js","sourcesContent":["//import * as Constants from '../constants/Constants'\r\n\r\n//export const basename = \"/fit_react\";\r\nexport let basename = \"\";//\"/fit_react_v2\";\r\nexport let login = \"/login\";\r\nexport let loginCIBC = \"/loginCIBC\";\r\nexport let SellIPOShares = \"/SellIPOShares\";\r\n\r\nexport let signUp = \"/signup\";\r\nexport let forgetPassword = \"/forgetpassword\";\r\nexport let ForgotUsername = \"/ForgotUsername\";\r\nexport let otp = \"/otp\";\r\nexport let changePassword = \"/changepassword\";\r\nexport let logout = \"/logout\";\r\nexport let TermsAndConditions = \"/TermsAndConditions\";\r\n\r\nexport let fitGrid = \"/fitGrid\";\r\n\r\nexport let trading = \"/main\";\r\nexport let marketOverview = \"/main/MarketOverview\"\r\nexport let accountSettings = \"\";\r\nexport let settings = \"/main/Settings\";\r\nexport let newWorkspace = \"/main/NewWorkspace\";\r\nexport let AdvanceChart = \"/main/AdvanceChart\";\r\nexport let StockProfile = \"/main/StockProfile\";\r\nexport let TechnicalAnalysis = \"/TechnicalAnalysis\";\r\nexport let binanceWorkspace = \"/main/binanceWorkspace\";\r\n\r\n\r\nexport function updateAppUrls(basenameParam) {\r\n basename = basenameParam;\r\n login = basenameParam + \"/login\";\r\n loginCIBC = basenameParam + \"/loginCIBC\";\r\n SellIPOShares = basenameParam + \"/SellIPOShares\";\r\n TechnicalAnalysis = basenameParam + \"/TechnicalAnalysis\";\r\n signUp = basenameParam + \"/signup\";\r\n forgetPassword = basenameParam + \"/forgetpassword\";\r\n ForgotUsername = basenameParam + \"/ForgotUsername\";\r\n otp = basenameParam + \"/otp\";\r\n changePassword = basenameParam + \"/changepassword\";\r\n logout = basenameParam + \"/logout\";\r\n TermsAndConditions = basenameParam + \"/TermsAndConditions\";\r\n\r\n fitGrid = basenameParam + \"/fitGrid\";\r\n\r\n trading = basenameParam + \"/main\";\r\n marketOverview = basenameParam + \"/main/MarketOverview\";\r\n accountSettings = basenameParam + \"/main/AccountSettings\";\r\n\r\n settings = basenameParam + \"/main/Settings\"; \r\n newWorkspace = basenameParam + \"/main/NewWorkspace\";\r\n AdvanceChart = basenameParam + \"/main/AdvanceChart\";\r\n StockProfile = basenameParam + \"/main/StockProfile\";\r\n TechnicalAnalysis = basenameParam + \"/TechnicalAnalysis\";\r\n binanceWorkspace = basenameParam + \"/main/binanceWorkspace\";\r\n\r\n /* if(localStorage.getItem(Constants.localStorageConstants.company_name) !== \"IFS\"){\r\n accountSettings = basenameParam + \"/main/AccountSettings\";\r\n } */ \r\n}\r\n\r\n\r\nexport const test = \"/test\";\r\n\r\n\r\nexport const any = \"/\";","/* eslint-disable no-useless-escape */\r\nimport axios from \"axios\";\r\nimport * as Constants from \"../constants/Constants\";\r\nimport { toast } from \"react-toastify\";\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\nimport * as Helpers from \"./Helpers\";\r\n\r\nconst Enum = {\r\n KEY1: 1,\r\n KEY2: 2,\r\n KEY3: 3,\r\n KEY4: 4,\r\n};\r\n\r\nObject.freeze(Enum); //Object.freeze will freeze the object so that no new enum can be added to it.\r\n\r\n//MARK: POST methods\r\nexport function callApi(username, password, tokenId) {\r\n // const errorNotify = (message) => {\r\n // toast.error(message, {\r\n // position: toast.POSITION.BOTTOM_CENTER,\r\n // hideProgressBar: true,\r\n // autoClose: Constants.errorNotifyDuration\r\n // });\r\n // };\r\n\r\n const params = {\r\n UserName: username,\r\n Password: password,\r\n MobileType: \"\",\r\n SessionID: \"\",\r\n UserIPAddress: \"185.99.34.25\",\r\n TokenID: tokenId,\r\n HdnKey: \"\",\r\n FingerPrintID: \"\",\r\n FingerPrintLevel: \"\",\r\n RegistrationId: \"\",\r\n isAuthorizeOnly: \"N\",\r\n };\r\n\r\n axios\r\n .post(Constants.baseURL + Constants.userAuthintications, params, {\r\n withCredentials: true,\r\n })\r\n .then((response) => {\r\n return response;\r\n })\r\n .catch((error) => {\r\n //console.log(\"error\", error);\r\n Helpers.errorNotify(this.props.t(error), this.props.i18n.language);\r\n });\r\n}\r\n\r\nvar _keyStr =\r\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\nexport function authenticate(\r\n UserName,\r\n Password,\r\n MobileType,\r\n SessionID,\r\n UserIPAddress,\r\n TokenID,\r\n HdnKey,\r\n FingerPrintID,\r\n FingerPrintLevel,\r\n RegistrationId,\r\n isAuthorizeOnly,\r\n options\r\n) {\r\n const params = {\r\n UserName: encryptedString(UserName),\r\n Password: encryptedString(Password),\r\n MobileType: MobileType,\r\n SessionID: SessionID,\r\n UserIPAddress: UserIPAddress,\r\n TokenID: TokenID,\r\n HdnKey: HdnKey,\r\n FingerPrintID: FingerPrintID,\r\n FingerPrintLevel: FingerPrintLevel,\r\n RegistrationId: RegistrationId,\r\n isAuthorizeOnly: isAuthorizeOnly,\r\n };\r\n\r\n //console.log(\"baseUrl: \", Constants.baseURL)\r\n return NewHttpPost(\r\n Constants.baseURL + Constants.userAuthintications,\r\n params,\r\n options\r\n );\r\n}\r\nexport function registrationsOTP(\r\n username,\r\n tokenID,\r\n tradingNo,\r\n password,\r\n key,\r\n fingerPrintID,\r\n isAuthorizeOnly = \"N\",\r\n isIPOQuickSell,\r\n options = { withCredentials: true }\r\n) {\r\n const params = {\r\n UserName: username,\r\n Password: password,\r\n MobileType: \"\",\r\n SessionID: \"\",\r\n UserIPAddress: \"127.0.0.1\",\r\n TokenID: tokenID,\r\n TradingNo: tradingNo,\r\n HdnKey: key,\r\n FingerPrintID: fingerPrintID,\r\n FingerPrintEnabled: \"N\",\r\n isAuthorizeOnly: isAuthorizeOnly,\r\n isIPOQuickSell: isIPOQuickSell\r\n };\r\n return NewHttpPost(\r\n Constants.baseURL + Constants.registrationsOTP,\r\n params,\r\n options\r\n );\r\n}\r\n\r\nexport function userAuthinticationAdvance(\r\n MobileType,\r\n UserIPAddress,\r\n NIN,\r\n ID,\r\n Mobile,\r\n Email,\r\n RequestType,\r\n options = { withCredentials: true }\r\n) {\r\n const params = {\r\n MobileType: MobileType,\r\n UserIPAddress: UserIPAddress,\r\n NIN: NIN,\r\n ID: ID,\r\n Mobile: Mobile,\r\n Email: Email,\r\n RequestType: RequestType,\r\n };\r\n return NewHttpPost(Constants.UserAuthinticationAdvance, params, options);\r\n}\r\nexport function forGotusername(MobileType, UserIPAddress, NIN, Mobile, options = { withCredentials: true }) {\r\n const params = {\r\n MobileType: MobileType,\r\n UserIPAddress: UserIPAddress,\r\n NIN: NIN,\r\n ID: \"\",\r\n Mobile: Mobile,\r\n Email: \"\",\r\n RequestType: \"\",\r\n };\r\n return NewHttpPost(Constants.ForGotUsername, params, options);\r\n}\r\nexport function UserAuthinticationIPOQuickSell(MobileType, UserIPAddress, NIN, ID, Mobile, Email, RequestType, options = { withCredentials: true }) {\r\n const params = {\r\n MobileType: MobileType,\r\n UserIPAddress: UserIPAddress,\r\n NIN: NIN,\r\n ID: ID,\r\n Mobile: Mobile,\r\n Email: Email,\r\n RequestType: RequestType,\r\n };\r\n return NewHttpPost(Constants.UserAuthinticationIPOQuickSell, params, options);\r\n}\r\n\r\nexport function resetUserNameAdvance(\r\n MobileType,\r\n NIN,\r\n ID,\r\n NewUser,\r\n UserIPAddress,\r\n UserName,\r\n options = { withCredentials: true }\r\n) {\r\n const params = {\r\n MobileType: MobileType, // \"IOS\"\r\n NIN: NIN, // -> entered in first page\r\n ID: ID, // -> entered in first page\r\n NewUser: NewUser, // -> enter by user\r\n UserIPAddress: UserIPAddress,\r\n UserName: UserName, // -> Old user, from preview api\r\n };\r\n return NewHttpPost(Constants.ResetUserNameAdvance, params, options);\r\n}\r\n\r\nexport function resetPasswordAdvance(\r\n Mobile,\r\n Email,\r\n Password,\r\n OldPassword,\r\n MobileType,\r\n UserIPAddress,\r\n RequestType,\r\n UserName,\r\n NIN,\r\n ID,\r\n options = { withCredentials: true }\r\n) {\r\n const params = {\r\n Mobile: Mobile, // -> remplir if Shuaa\r\n Email: Email, // -> remplir if Shuaa\r\n Password: Password, // new password\r\n OldPassword: OldPassword,\r\n MobileType: MobileType,\r\n UserIPAddress: UserIPAddress,\r\n RequestType: RequestType,\r\n UserName: UserName,\r\n NIN: NIN,\r\n ID: ID,\r\n };\r\n return NewHttpPost(Constants.ResetPasswordAdvance, params, options);\r\n}\r\n\r\nexport function addProfile(params, thisparam) {\r\n thisparam.abortController = new window.AbortController();\r\n let options = {\r\n withCredentials: true,\r\n signal: thisparam.abortController.signal,\r\n };\r\n return NewHttpPost(Constants.addProfile, params, options);\r\n}\r\n\r\nexport function updateProfile(params, thisparam) {\r\n thisparam.abortController = new window.AbortController();\r\n let options = {\r\n withCredentials: true,\r\n signal: thisparam.abortController.signal,\r\n };\r\n return NewHttpPost(Constants.updateProfile, params, options);\r\n}\r\nexport function TraceInfoPost(params) {\r\n let options = { withCredentials: true };\r\n return NewHttpPost(Constants.TraceInfoPost, params, options);\r\n}\r\n\r\nexport function UpdateUserProfileSettings(params, thisparam) {\r\n let abortController =\r\n thisparam === undefined ? new AbortController() : thisparam.abortController;\r\n let options = { withCredentials: true, signal: abortController.signal };\r\n return NewHttpPost(Constants.UpdateUserProfileSettings, params, options);\r\n}\r\n\r\nexport function addConditionalOrder(params) {\r\n let options = { withCredentials: true };\r\n return NewHttpPost(Constants.addConditionalOrder, params, options);\r\n}\r\n\r\nexport function deleteProfile(params) {\r\n let options = { withCredentials: true };\r\n return NewHttpPost(Constants.deleteProfile, params, options);\r\n}\r\n\r\nexport function addMarketWatchProfileSymbol(url, thisparam) {\r\n thisparam.abortController = new window.AbortController();\r\n let options = {\r\n withCredentials: true,\r\n signal: thisparam.abortController.signal,\r\n };\r\n return NewHttpPost(url, null, options);\r\n}\r\n\r\nexport function logOff() {\r\n\r\n let options = { withCredentials: true };\r\n let url =\r\n Constants.baseURL +\r\n Constants.logOff +\r\n \"/\" +\r\n localStorage.getItem(\"WebCode\");\r\n return NewHttpPost(url, null, options);\r\n}\r\n\r\nexport function deleteMarketWatchProfile(url, thisparam) {\r\n thisparam.abortController = new window.AbortController();\r\n let options = {\r\n withCredentials: true,\r\n signal: thisparam.abortController.signal,\r\n };\r\n return NewHttpPost(url, null, options);\r\n}\r\n\r\nexport function addMarketWatchProfileName(profileName, thisparam) {\r\n thisparam.abortController = new window.AbortController();\r\n let options = {\r\n withCredentials: true,\r\n signal: thisparam.abortController.signal,\r\n };\r\n let url =\r\n Constants.addMarketWatchProfileName +\r\n localStorage.getItem(\"WebCode\") +\r\n \"/\" +\r\n profileName;\r\n return NewHttpPost(url, null, options);\r\n}\r\nexport function updateReadPushNotificationsFlag(url) {\r\n let options = { withCredentials: true };\r\n return NewHttpPost(url, null, options);\r\n}\r\n\r\nexport function deleteAlertByAlertID(url, thisparam) {\r\n thisparam.abortController = new window.AbortController();\r\n let options = {\r\n withCredentials: true,\r\n signal: thisparam.abortController.signal,\r\n };\r\n return NewHttpPost(url, null, options);\r\n}\r\n\r\nexport function deleteMarketWatchProfileSymbol(url, thisparam) {\r\n thisparam.abortController = new window.AbortController();\r\n let options = {\r\n withCredentials: true,\r\n signal: thisparam.abortController.signal,\r\n };\r\n return NewHttpPost(url, null, options);\r\n}\r\nexport function DeleteMarketWatchProfileAllSymbols(\r\n url,\r\n ProfileID,\r\n WebCode,\r\n thisparam\r\n) {\r\n thisparam.abortController = new window.AbortController();\r\n let options = {\r\n withCredentials: true,\r\n signal: thisparam.abortController.signal,\r\n };\r\n let param = {\r\n ProfileID: ProfileID,\r\n WebCode: WebCode,\r\n };\r\n return NewHttpPost(url, param, options);\r\n}\r\nexport function CancelB2bRequest(url, Reqid, WebCode) {\r\n let options = { withCredentials: true };\r\n let param = {\r\n REQ_ID: Reqid,\r\n WEB_CODE: WebCode,\r\n };\r\n return NewHttpPost(url, param, options);\r\n}\r\nexport function CancelEquityTransferRequest(url, Reqid, WebCode) {\r\n let options = { withCredentials: true };\r\n let param = {\r\n REQ_ID: Reqid,\r\n WEB_CODE: WebCode,\r\n };\r\n return NewHttpPost(url, param, options);\r\n}\r\n\r\nexport function deleteConditionalByID(url) {\r\n let options = { withCredentials: true };\r\n return NewHttpPost(url, null, options);\r\n}\r\n\r\nexport function changesPassword(params) {\r\n let options = { withCredentials: true };\r\n let url = Constants.baseURL + Constants.changesPassword;\r\n return NewHttpPost(url, params, options);\r\n}\r\n\r\nexport function addAlert(url) {\r\n let options = { withCredentials: true };\r\n return NewHttpPost(url, null, options);\r\n}\r\n\r\nexport function getBankTransferInfo(url) {\r\n let options = { withCredentials: true };\r\n return NewHttpPost(url, null, options);\r\n}\r\n\r\nexport function getAccountTransferInfo(params) {\r\n let options = { withCredentials: true };\r\n let url = Constants.getAccountTransferInfo;\r\n return NewHttpPost(url, params, options);\r\n}\r\nexport function callAddBankIBAN(params) {\r\n let options = { withCredentials: true };\r\n let url = Constants.AddBankIBAN;\r\n return NewHttpPost(url, params, options);\r\n}\r\n\r\nexport function callDeleteBasketOrder(params, OrderID) {\r\n let options = { withCredentials: true };\r\n let url =\r\n Constants.DeleteBasketOrder +\r\n \"/\" +\r\n OrderID +\r\n \"/\" +\r\n localStorage.getItem(\"WebCode\");\r\n return NewHttpPost(url, params, options);\r\n}\r\nexport function transferAmountSec(params) {\r\n let options = { withCredentials: true };\r\n let url = Constants.transferAmountSec;\r\n return NewHttpPost(url, params, options);\r\n}\r\n\r\nexport function submitCrmRequestRamz(params) {\r\n let options = { withCredentials: true };\r\n let url = Constants.submitCrmRequestRamz2;\r\n return NewHttpPost(url, params, options);\r\n}\r\n\r\nexport function addBasketOrderDetails(params) {\r\n let options = { withCredentials: true };\r\n let url = Constants.addBasketOrderDetails;\r\n return NewHttpPost(url, params, options);\r\n}\r\n\r\nexport function ModifyBasketOrderDetails(params) {\r\n let options = { withCredentials: true };\r\n let url = Constants.modifyBasketOrderDetails;\r\n return NewHttpPost(url, params, options);\r\n}\r\nexport function renewSubscriptionUser(url) {\r\n let options = { withCredentials: true };\r\n return NewHttpPost(url, null, options);\r\n}\r\n\r\nexport function GenerateReports(url, params) {\r\n let options = { withCredentials: true, responseType: \"arraybuffer\" };\r\n return NewHttpPostfile(url, params, options);\r\n}\r\n\r\nexport function TransferAmount(params) {\r\n let options = { withCredentials: true };\r\n let url = Constants.TransferAmount;\r\n return NewHttpPost(url, params, options);\r\n}\r\n\r\n\r\n\r\n\r\n//MARK: GET methods\r\nexport async function getAlerts(webcode, thisparam) {\r\n thisparam.abortController = new window.AbortController();\r\n let options = {\r\n withCredentials: true,\r\n signal: thisparam.abortController.signal,\r\n };\r\n let get_alert_url = Constants.getAlerts + webcode;\r\n return await NewHttpGet(get_alert_url, options);\r\n}\r\nexport async function GetTransferReqPenddingShares(url) {\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function getAllPushNotificationsByUser() {\r\n let options = { withCredentials: true };\r\n let url =\r\n Constants.getAllPushNotificationsByUser + localStorage.getItem(\"WebCode\");\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function getAllPushNotificationsByFirebase(\r\n Tokenid,\r\n googleId,\r\n Title,\r\n Body,\r\n Tag,\r\n isNew\r\n) {\r\n let options = { withCredentials: true };\r\n let url =\r\n Constants.getAllPushNotificationsFromFirebase +\r\n localStorage.getItem(\"WebCode\") +\r\n \"/\" +\r\n Tokenid +\r\n \"/\" +\r\n googleId +\r\n \"/\" +\r\n Title.trim() +\r\n \"/\" +\r\n Body.trim() +\r\n \"/\" +\r\n Tag.trim() +\r\n \"/\" +\r\n isNew.trim();\r\n //console.log(\"urlNOT\", url)\r\n // let url = Constants.getAllPushNotificationsByFirebase + localStorage.getItem(\"WebCode\") + '/Tokenid/googleId/Title/Body/Tag/N';\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function getExpectedProfitLoss(url) {\r\n\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function getTradeConfirmation(url) {\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function getStatmentOfAccount(url) {\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function sendDocumentByEmail(url) {\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function getMarketByProfile(url, thisparam) {\r\n thisparam.abortController = new window.AbortController();\r\n let options = {\r\n withCredentials: true,\r\n signal: thisparam.abortController.signal,\r\n };\r\n return await NewHttpGet(url, options);\r\n}\r\nexport async function getMarketWatchByProfileIDAndSymbol(url, thisparam) {\r\n thisparam.abortController = new window.AbortController();\r\n let options = {\r\n withCredentials: true,\r\n signal: thisparam.abortController.signal,\r\n };\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function calculatesShares(url) {\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function getProfiles(thisparam) {\r\n thisparam.abortController = new window.AbortController();\r\n let options = {\r\n withCredentials: true,\r\n signal: thisparam.abortController.signal,\r\n };\r\n let url = Constants.getProfiles + localStorage.getItem(\"WebCode\");\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function getConditionalByUsr() {\r\n let options = { withCredentials: true };\r\n let url = Constants.getConditionalByUsr + localStorage.getItem(\"WebCode\");\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function getLookups() {\r\n let options = { withCredentials: true };\r\n let url =\r\n Constants.getLookups +\r\n localStorage.getItem(\"WebCode\") +\r\n \"?\" +\r\n Math.random();\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function getUserAccounts() {\r\n let url = Constants.GetUserAccounts + localStorage.getItem(\"WebCode\");\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function getCompaniesLookups() {\r\n let url =\r\n Constants.getCompaniesLookups +\r\n localStorage.getItem(\"WebCode\") +\r\n \"?\" +\r\n Math.random();\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\nexport async function GetUSCompaniesResults(symbol) {\r\n let url =\r\n Constants.GetUSCompaniesResults +\r\n symbol +\r\n \"/\" +\r\n localStorage.getItem(\"WebCode\");\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\nexport async function GetCryptoCompaniesResults(symbol) {\r\n let url =\r\n Constants.GetCryptoCompaniesResults +\r\n symbol +\r\n \"/\" +\r\n localStorage.getItem(\"WebCode\");\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\nexport async function CheckIfUSSymbolExist(symbol) {\r\n let url =\r\n Constants.CheckIfUSSymbolExist +\r\n localStorage.getItem(\"WebCode\") +\r\n \"/\" +\r\n symbol;\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\nexport async function CheckIfCryptoSymbolExist(symbol) {\r\n let url =\r\n Constants.CheckIfCryptoSymbolExist +\r\n localStorage.getItem(\"WebCode\") +\r\n \"/\" +\r\n symbol;\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\nexport async function AddUSTOCompaniesLookups(url) {\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\nexport async function AddCryptoSymbolTOCompaniesLookups(url) {\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\nexport async function getProfilesByUserId(thisparam) {\r\n thisparam.abortController = new window.AbortController();\r\n let url = Constants.getProfilesByUserId + localStorage.getItem(\"WebCode\");\r\n let options = {\r\n withCredentials: true,\r\n signal: thisparam.abortController.signal,\r\n };\r\n return await NewHttpGet(url, options);\r\n}\r\nexport async function getCashDepURL(thisparam, themeOfSys, lang) {\r\n thisparam.abortController = new window.AbortController();\r\n\r\n let url =\r\n Constants.GetCashDepURL +\r\n themeOfSys +\r\n \"/\" +\r\n lang +\r\n \"/\" +\r\n localStorage.getItem(\"WebCode\");\r\n let options = {\r\n withCredentials: true,\r\n signal: thisparam.abortController.signal,\r\n };\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function GetIPOLink(thisparam, themeOfSys, lang) {\r\n thisparam.abortController = new window.AbortController();\r\n\r\n let url =\r\n Constants.GetIPOLink +\r\n themeOfSys +\r\n \"/\" +\r\n lang +\r\n \"/\" +\r\n localStorage.getItem(\"WebCode\");\r\n let options = {\r\n withCredentials: true,\r\n signal: thisparam.abortController.signal,\r\n };\r\n return await NewHttpGet(url, options);\r\n}\r\nexport async function UpdateTermsAndConditionsVersion(thisparam) {\r\n thisparam.abortController = new window.AbortController();\r\n\r\n let url = Constants.UpdateTermsAndConditionsVersion + localStorage.getItem(\"WebCode\");\r\n let options = {\r\n withCredentials: true,\r\n signal: thisparam.abortController.signal,\r\n };\r\n return await NewHttpGet(url, options);\r\n}\r\nexport async function GetTermsAndConditionsText(appLang) {\r\n \r\n let url = Constants.GetTermsAndConditionsText + appLang;\r\n let options = {\r\n withCredentials: true\r\n };\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function GetDeviceConfigs() {\r\n let url = Constants.GetDeviceConfigs;\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function GetSettingWorkSpaceByUserID() {\r\n let url =\r\n Constants.GetSettingWorkSpaceByUserID + localStorage.getItem(\"WebCode\");\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function getRiskManagement(url, options) {\r\n return await NewHttpGet(url, options);\r\n}\r\nexport async function GetRiskManagment(obj, thisparam) {\r\n const params = obj;\r\n thisparam.abortController = new window.AbortController();\r\n let options = {\r\n withCredentials: true,\r\n signal: thisparam.abortController.signal,\r\n };\r\n let url = Constants.GetRiskManagment;\r\n return NewHttpPost(url, params, options);\r\n // let url = Constants.GetRiskManagment\r\n // return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function GetRiskManagmentCash(obj, thisparam) {\r\n const params = obj;\r\n thisparam.abortController = new window.AbortController();\r\n let options = {\r\n withCredentials: true,\r\n signal: thisparam.abortController.signal,\r\n };\r\n let url = Constants.GetRiskManagmentCash;\r\n return NewHttpPost(url, params, options);\r\n // let url = Constants.GetRiskManagment\r\n // return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function getAvgIndexes(excangeID, day, sector) {\r\n let options = { withCredentials: true };\r\n let url =\r\n Constants.GetAvgIndexes +\r\n excangeID +\r\n \"/\" +\r\n day +\r\n \"/\" +\r\n sector +\r\n \"/\" +\r\n localStorage.getItem(\"WebCode\");\r\n //console.log(\"GetAvgIndexes\", url)\r\n // let url = Constants.getAllPushNotificationsByFirebase + localStorage.getItem(\"WebCode\") + '/Tokenid/googleId/Title/Body/Tag/N';\r\n return await NewHttpGet(url, options);\r\n}\r\nexport async function getContactInfo() {\r\n let options = { withCredentials: true };\r\n let url = Constants.GetContactInfo;\r\n\r\n return await NewHttpGet(url, options);\r\n}\r\nexport async function getIpAddress() {\r\n let options = { withCredentials: false };\r\n let url = \"https://geolocation-db.com/json/\";\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function getAllMarketNews() {\r\n let url =\r\n Constants.profileBaseUrl +\r\n Constants.getAllMarketNews +\r\n localStorage.getItem(\"WebCode\");\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function getHistorySymbolData(url) {\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function getGetProfiles() {\r\n let url = Constants.getProfiles + localStorage.getItem(\"WebCode\");\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\nexport async function getBankIBAN(url) {\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\nexport async function CallCheckIBAN(url) {\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\nexport async function getAllTransfersReq(url) {\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\nexport async function getShareTransferLogWithDetails(url) {\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\nexport async function getHeartBeat(abortController) {\r\n abortController = new window.AbortController();\r\n\r\n let url = Constants.HeartBeat + localStorage.getItem(\"WebCode\");\r\n let options = { withCredentials: true, signal: abortController.signal };\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function getBalanceBreakdown(url) {\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function getDFN_StockData(url) {\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function getUserPermissionsByGroupID(url) {\r\n //let url = Constants.GetUserPermissionsByGroupID ;\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function getPasswordPolicy() {\r\n let url =\r\n Constants.getPasswordPolicy +\r\n localStorage.getItem(\"WebCode\") +\r\n \"?\" +\r\n Math.random();\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function getExchangeSummary(webcode, options) {\r\n let get_exchange_summary_url =\r\n Constants.getExchangeSummary + webcode + \"?\" + Math.random();\r\n return await NewHttpGet(get_exchange_summary_url, options);\r\n}\r\n\r\nexport async function GetRequiredUserDocuments2(\r\n webcode,\r\n MainClientID,\r\n options\r\n) {\r\n let CheckUpdateIdValidity =\r\n Constants.GetRequiredUserDocuments2 + \"/\" + webcode + \"/\" + MainClientID;\r\n return await NewHttpGet(CheckUpdateIdValidity, options);\r\n}\r\n\r\nexport async function CheckUpdateIdValidity(webcode, options) {\r\n let CheckUpdateIdValidity = Constants.CheckUpdateIdValidity + webcode;\r\n return await NewHttpGet(CheckUpdateIdValidity, options);\r\n}\r\n\r\nexport async function getAnalysisIndecator(url) {\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function getBasketOrders(url) {\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function getCustodiansByClientID(url) {\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function GetBasketOrderDetails(url) {\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function UpdatePreferredLangAccount(url) {\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport function encryptedString(value) {\r\n var svalue = encode(value, \"s\");\r\n var bvalue = encode(svalue[0], \"b\");\r\n var gen = generate(3);\r\n value = bvalue[0] + gen + svalue[1];\r\n return value;\r\n}\r\n\r\nfunction _utf8_encode(string) {\r\n string = string.replace(/\\r\\n/g, \"\\n\");\r\n var utftext = \"\";\r\n\r\n for (var n = 0; n < string.length; n++) {\r\n var c = string.charCodeAt(n);\r\n if (c < 128) {\r\n utftext += String.fromCharCode(c);\r\n } else if (c > 127 && c < 2048) {\r\n utftext += String.fromCharCode((c >> 6) | 192);\r\n utftext += String.fromCharCode((c & 63) | 128);\r\n } else {\r\n utftext += String.fromCharCode((c >> 12) | 224);\r\n utftext += String.fromCharCode(((c >> 6) & 63) | 128);\r\n utftext += String.fromCharCode((c & 63) | 128);\r\n }\r\n }\r\n return utftext;\r\n}\r\n\r\nexport async function GetDailyReports(url) {\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\n\r\nfunction generate(n) {\r\n var add = 1,\r\n max = 12 - add; // 12 is the min safe number Math.random() can generate without it starting to pad the end with zeros.\r\n\r\n if (n > max) {\r\n return generate(max) + generate(n - max);\r\n }\r\n\r\n max = Math.pow(10, n + add);\r\n var min = max / 10; // Math.pow(10, n) basically\r\n var number = Math.floor(Math.random() * (max - min + 1)) + min;\r\n\r\n return \"!\" + (\"\" + number).substring(add);\r\n}\r\n\r\nfunction encode(input, type) {\r\n var output = \"\";\r\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4;\r\n\r\n var i = 0;\r\n if (type === \"b\") input = _utf8_encode(\"**\" + input);\r\n else input = _utf8_encode(input);\r\n while (i < input.length) {\r\n chr1 = input.charCodeAt(i++);\r\n chr2 = input.charCodeAt(i++);\r\n chr3 = input.charCodeAt(i++);\r\n enc1 = chr1 >> 2;\r\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\r\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\r\n enc4 = chr3 & 63;\r\n if (isNaN(chr2)) {\r\n enc3 = enc4 = 64;\r\n } else if (isNaN(chr3)) {\r\n enc4 = 64;\r\n }\r\n\r\n output =\r\n output +\r\n _keyStr.charAt(enc1) +\r\n _keyStr.charAt(enc2) +\r\n _keyStr.charAt(enc3) +\r\n _keyStr.charAt(enc4);\r\n }\r\n var retValue = [];\r\n if (type === \"b\") {\r\n retValue[0] =\r\n output + Math.floor(Math.random() * 10) + Math.floor(Math.random() * 10);\r\n retValue[1] = \"\";\r\n\r\n return retValue;\r\n } else {\r\n retValue[1] = output.substring(0, output.length / 2); //key\r\n\r\n output = output.substring(output.length / 2, output.length);\r\n\r\n retValue[0] = output;\r\n\r\n return retValue;\r\n }\r\n}\r\n\r\nexport async function NewHttpPost(url, params, options) {\r\n let postRequest = await axios.post(url, params, options).catch((err) => {\r\n\r\n console.log(url);\r\n console.log(err);\r\n responseProcess(err.response.status);\r\n });\r\n return postRequest;\r\n}\r\nexport async function NewHttpPostfile(url, params, options) {\r\n let postRequest = await axios.post(url, params, options).catch((err) => {\r\n\r\n responseProcess(err.response.status);\r\n });\r\n return postRequest;\r\n}\r\n\r\nexport function SubmitShareTransferReq(\r\n params,\r\n options = { withCredentials: true }\r\n) {\r\n // const params = {\r\n // \"USR_CODE\": WebCode,\r\n // \"REQUEST_ID\": REQUEST_ID,\r\n // \"SEQ_REQ_ID\": SEQ_REQ_ID,\r\n // \"REQ_DATE_STR\": REQ_DATE_STR,\r\n // \"REQ_TYPE\": REQ_TYPE,\r\n // \"MAIN_CLIENT_ID\": MAIN_CLIENT_ID,\r\n // \"FROM_ACC\": FROM_ACC,\r\n // \"TO_ACC\": TO_ACC,\r\n // \"FROM_ACC_TYPE\": FROM_ACC_TYPE,\r\n // \"TO_ACC_TYPE\": TO_ACC_TYPE,\r\n // \"M_CODE\": M_CODE,\r\n // \"COMP_ID\": COMP_ID,\r\n // \"QTY\": QTY,\r\n // \"CLOSE_PRICE\": CLOSE_PRICE,\r\n // };\r\n\r\n return NewHttpPost(Constants.SubmitShareTransferReq, params, options);\r\n}\r\nexport function SubmitEquityTransferReq(\r\n params,\r\n options = { withCredentials: true }\r\n) {\r\n return NewHttpPost(Constants.SubmitEquityTransferReq, params, options);\r\n}\r\nexport function GetAccountTransferInfo(\r\n params,\r\n options = { withCredentials: true }\r\n) {\r\n return NewHttpPost(Constants.GetAccountTransferInfo, params, options);\r\n}\r\nexport function UpdateIdValidity(params, options = { withCredentials: true }) {\r\n return NewHttpPost(Constants.UpdateIdValidity, params, options);\r\n}\r\nexport function UploadClientDocuments(\r\n params,\r\n options = { withCredentials: true }\r\n) {\r\n return NewHttpPost(Constants.UploadClientDocuments, params, options);\r\n}\r\n\r\nexport async function NewHttpGet(url, options) {\r\n let getRequest = await axios.get(url, options).catch((err) => {\r\n\r\n responseProcess(err.response.status);\r\n });\r\n\r\n return getRequest;\r\n}\r\n\r\nexport async function responseProcess(resStatus, isFirstTime = false) {\r\n\r\n switch (resStatus) {\r\n case 200:\r\n return true;\r\n case 201:\r\n break;\r\n case 400:\r\n //console.log(\"something wen wrong\");\r\n break;\r\n case 408:\r\n\r\n errorHandling(isFirstTime);\r\n break;\r\n case 401:\r\n\r\n errorHandling(isFirstTime);\r\n break;\r\n case 500:\r\n //console.log('server error, try again');\r\n break;\r\n default:\r\n //console.log('unhandled error code: ', resStatus);\r\n break;\r\n }\r\n return false;\r\n}\r\n\r\nfunction errorHandling(isFirstTime) {\r\n if (isFirstTime) window.appComponent.redirectFunctionality();\r\n else window.appComponent.errorHandling();\r\n}\r\n\r\nexport function dateFromStringDateOnly(s) {\r\n var r = /\\d*(\\d{2})(\\d{2})(\\d{4})(\\d{2})(\\d{2})(\\d{2})/.exec(s);\r\n //alert(r)\r\n\r\n if (r && r.length === 7) {\r\n let datestring = r[1] + \"/\" + r[2] + \"/\" + r[3];\r\n return datestring;\r\n }\r\n return dateFromStringPlanB(s);\r\n}\r\nexport function dateFromString(s) {\r\n var r = /\\d*(\\d{2})(\\d{2})(\\d{4})(\\d{2})(\\d{2})(\\d{2})/.exec(s);\r\n //alert(r)\r\n\r\n if (r && r.length === 7) {\r\n return new Date(\r\n parseInt(r[3]),\r\n parseInt(r[2]) - 1,\r\n parseInt(r[1]),\r\n parseInt(r[4]),\r\n parseInt(r[5]),\r\n parseInt(r[6])\r\n );\r\n }\r\n return dateFromStringPlanB(s);\r\n}\r\nexport function TimeStamptodate(s) {\r\n var fixstring = s.replace(\"/Date(\", \"\").replace(\")/\", \"\");\r\n let unix_timestamp = fixstring.substring(0, 10);\r\n // Create a new JavaScript Date object based on the timestamp\r\n // multiplied by 1000 so that the argument is in milliseconds, not seconds.\r\n var date = new Date(unix_timestamp * 1000).toLocaleString();\r\n // // Hours part from the timestamp\r\n // var hours = date.getHours();\r\n // // Minutes part from the timestamp\r\n // var minutes = \"0\" + date.getMinutes();\r\n // // Seconds part from the timestamp\r\n // var seconds = \"0\" + date.getSeconds();\r\n\r\n // // Will display time in 10:30:23 format\r\n // var formattedTime =date.getFullYear().toString() +date.getMonth.toString() + date.getDay.toString() + \" \" + hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2);\r\n\r\n // var r = /\\d*(\\d{2})(\\d{2})(\\d{4})(\\d{2})(\\d{2})(\\d{2})/.exec(s);\r\n // //alert(r)\r\n\r\n // if (r && r.length === 7) {\r\n\r\n // return new Date(parseInt(r[3]), parseInt(r[2]) - 1, parseInt(r[1]), parseInt(r[4]), parseInt(r[5]), parseInt(r[6]));\r\n // }\r\n return date;\r\n}\r\nexport async function getMarketIndices(\r\n exchange_id,\r\n webcode,\r\n options = { withCredentials: true }\r\n) {\r\n let get_market_indices_url =\r\n Constants.GetMarketIndicies + exchange_id + \"/\" + webcode;\r\n //console.log(get_market_indices_url);\r\n return await NewHttpGet(get_market_indices_url, options);\r\n}\r\n\r\nexport async function getMarketIndicesVer2(\r\n exchange_id,\r\n webcode,\r\n options = { withCredentials: true }\r\n) {\r\n let get_market_indices_url =\r\n Constants.getIndexesSummary + exchange_id + \"/\" + webcode;\r\n //console.log(get_market_indices_url);\r\n return await NewHttpGet(get_market_indices_url, options);\r\n}\r\n\r\nexport async function getAccountSummary(url, thisparam) {\r\n var options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport async function getTransactionSummary(\r\n url,\r\n options = { withCredentials: true }\r\n) {\r\n return await NewHttpGet(url, options);\r\n}\r\n\r\nexport function dateFromStringPlanB(s) {\r\n try {\r\n var strMod = s.replace(/\\ /gi, \"\");\r\n strMod = strMod.replace(/\\:/gi, \"\");\r\n strMod = strMod.replace(/\\-/gi, \"\");\r\n var r = /\\d*(\\d{2})(\\d{2})(\\d{4})(\\d{2})(\\d{2})(\\d{2})/.exec(strMod);\r\n //alert(\"planb\",r)\r\n if (r && r.length === 7) {\r\n return new Date(\r\n parseInt(r[3]),\r\n parseInt(r[2]) - 1,\r\n parseInt(r[1]),\r\n parseInt(r[4]),\r\n parseInt(r[5]),\r\n parseInt(r[6])\r\n );\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n return new Date(); //ragheb //ragheb //nbo ETRADE-11\r\n}\r\n\r\n// Shared Transfer Services\r\nexport async function GetShareTransferLogGrouped(\r\n WebCode,\r\n MainClientID,\r\n options = { withCredentials: true }\r\n) {\r\n let get_sharer_transfer_log_grouped_url =\r\n Constants.GetShareTransferLogGrouped + \"-1/\" + WebCode + \"/\" + MainClientID;\r\n //console.log(get_sharer_transfer_log_grouped_url);\r\n return await NewHttpGet(get_sharer_transfer_log_grouped_url, options);\r\n}\r\n\r\nexport async function GetNextRequestID(\r\n webcode,\r\n options = { withCredentials: true }\r\n) {\r\n let get_next_request_id_url = Constants.GetNextRequestID + webcode;\r\n //console.log(get_next_request_id_url);\r\n return await NewHttpGet(get_next_request_id_url, options);\r\n}\r\n\r\n//Account portfolio Service\r\nexport async function GetExpectedProfitLossSec(\r\n MainClientID,\r\n ClientID,\r\n WebCode,\r\n Date,\r\n BrokerID,\r\n ExchangeID,\r\n options = { withCredentials: true }\r\n) {\r\n let get_expectedprofitlosssec_url =\r\n Constants.GetExpectedProfitLossSec +\r\n MainClientID +\r\n \"/\" +\r\n ClientID +\r\n \"/\" +\r\n WebCode +\r\n \"/\" +\r\n Date +\r\n \"/\" +\r\n BrokerID +\r\n \"/\" +\r\n ExchangeID;\r\n //console.log(\"URLGetExpectedProfitLossSec\", get_expectedprofitlosssec_url);\r\n return await NewHttpGet(get_expectedprofitlosssec_url, options);\r\n}\r\n\r\n// //chatbot\r\nexport async function GetChatWebBRKLookup(WebCode) {\r\n let getchatbotwebbrklookup_url = Constants.getChatWebBRKLookup + WebCode;\r\n //console.log(\"chatbot_url\", getchatbotwebbrklookup_url);\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(getchatbotwebbrklookup_url, options);\r\n}\r\n\r\nexport async function GetLastChatConversion(WebCode, BRKID, dateFrom, DateTo) {\r\n let getLastChatConversion =\r\n Constants.getLastChatConversion +\r\n WebCode +\r\n \"/\" +\r\n BRKID +\r\n \"/\" +\r\n dateFrom +\r\n \"/\" +\r\n DateTo;\r\n //console.log(\"GetLastChatConversion\", getLastChatConversion);\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(getLastChatConversion, options);\r\n}\r\nexport async function GetUSSymbolNews(Symbol, WebCode) {\r\n let getLastChatConversion =\r\n Constants.GetUSSymbolNews + Symbol + \"/\" + WebCode;\r\n //console.log(\"GetLastChatConversion\", getLastChatConversion);\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(getLastChatConversion, options);\r\n}\r\n\r\nexport async function gethandleServerTime(url) {\r\n let options = { withCredentials: true };\r\n return await NewHttpGet(url, options);\r\n}\r\n","import React from 'react'\r\nimport * as Helpers from '../../../global/Helpers';\r\nimport * as Constants from '../../../constants/Constants';\r\n\r\nimport \"react-loader-spinner/dist/loader/css/react-spinner-loader.css\";\r\nimport Loader from 'react-loader-spinner';\r\n\r\nimport { toast } from \"react-toastify\";\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\ntoast.configure();\r\nclass CustomReactComponent extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.customInitialize();\r\n this.state = {\r\n isLoaderVisible: false\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.customInitialize();\r\n }\r\n\r\n componentDidUpdate() {\r\n this.customInitialize();\r\n }\r\n\r\n customInitialize = () => {\r\n this.dir = \"ltr\";\r\n\r\n this.leftLocalized = \"left\";\r\n this.floatRightLocalized = \"right\";\r\n\r\n this.mrAutoLocalized = \"mr-auto\";\r\n this.mlAutoLocalized = \"ml-auto\";\r\n\r\n this.ml1Localized = \"ml-1\";\r\n this.ml2Localized = \"ml-2\";\r\n this.ml3Localized = \"ml-3\";\r\n this.ml4Localized = \"ml-4\";\r\n this.ml5Localized = \"ml-5\";\r\n\r\n this.mr1Localized = \"mr-1\";\r\n this.mr2Localized = \"mr-2\";\r\n this.mr3Localized = \"mr-3\";\r\n this.mr4Localized = \"mr-4\";\r\n this.mr5Localized = \"mr-5\";\r\n\r\n this.ml3LocalizedPopupHeader = \"\";\r\n this.mr3LocalizedPopupHeader = \"mr-3\"; //in \"ar\" it is empty\r\n\r\n this.pl1Localized = \"pl-1\";\r\n this.pr1Localized = \"pr-1\";\r\n this.pr3Localized = \"pr-3\";\r\n\r\n let language = Helpers.getCurrentLanguage();\r\n //console.log(\"language custom react component: \", language)\r\n if (language === \"ar\") {\r\n this.dir = \"rtl\";\r\n\r\n this.mrAutoLocalized = \"ml-auto\";\r\n this.mlAutoLocalized = \"mr-auto\";\r\n\r\n this.leftLocalized = \"right\";\r\n this.floatRightLocalized = \"left\";\r\n\r\n this.mr1Localized = \"ml-1\";\r\n this.mr2Localized = \"ml-2\";\r\n this.mr3Localized = \"ml-3\";\r\n this.mr4Localized = \"ml-4\";\r\n this.mr5Localized = \"ml-5\";\r\n\r\n this.ml1Localized = \"mr-1\";\r\n this.ml2Localized = \"mr-2\";\r\n this.ml3Localized = \"mr-3\";\r\n this.ml4Localized = \"mr-4\";\r\n this.ml5Localized = \"mr-5\";\r\n\r\n this.ml3LocalizedPopupHeader = \"mr-3\";\r\n this.mr3LocalizedPopupHeader = \"\";\r\n\r\n this.pr1Localized = \"pl-1\";\r\n this.pl1Localized = \"pr-1\";\r\n this.pr3Localized = \"pl-3\";\r\n\r\n }\r\n }\r\n\r\n ErrorFallback = ({ error, resetErrorBoundary }) => {\r\n\r\n return (\r\n
\r\n
Oh no
\r\n

{error.message}

\r\n {\r\n // this next line is why the fallbackRender is useful\r\n //this.resetComponentState()\r\n // though you could accomplish this with a combination\r\n // of the FallbackCallback and onReset props as well.\r\n Helpers.emptyCache();\r\n resetErrorBoundary()\r\n }}\r\n >\r\n Try again\r\n \r\n
\r\n )\r\n }\r\n\r\n // successNotify = (message) => {\r\n // toast.success(message, {\r\n // position: toast.POSITION.BOTTOM_CENTER,\r\n // hideProgressBar: true,\r\n // autoClose: Constants.successNotifyDuration\r\n // });\r\n // };\r\n\r\n // errorNotify = (message) => {\r\n // toast.error(message, {\r\n // position: toast.POSITION.BOTTOM_CENTER,\r\n // hideProgressBar: true,\r\n // autoClose: Constants.errorNotifyDuration\r\n // });\r\n // };\r\n\r\n getLoader = (isLoaderVisible) => {\r\n return (\r\n isLoaderVisible\r\n ?
\r\n
\r\n \r\n
\r\n
\r\n : null\r\n )\r\n }\r\n\r\n // getLoaderThreeDots = (isLoaderVisible) => {\r\n // return (\r\n // isLoaderVisible ?\r\n // : null\r\n // )\r\n // }\r\n}\r\n\r\nexport default CustomReactComponent","import { createGlobalStyle } from 'styled-components';\r\n\r\n\r\nexport const GlobalStyles = createGlobalStyle`\r\n *,\r\n *::after,\r\n *::before {\r\n box-sizing: border-box;\r\n }\r\n\r\n body {\r\n align-items: center;\r\n background: ${({ theme }) => theme.body};\r\n color: ${({ theme }) => theme.text};\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n height: 100vh;\r\n margin: 0;\r\n padding: 0;\r\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\r\n transition: all 0.25s linear;\r\n }\r\n\r\n .custom-popup{\r\n background: ${({ theme }) => theme.secondaryBackgrounColor};\r\n }\r\n .sub-header-dropdown {\r\n background: ${({ theme }) => theme.secondaryBackgrounColor};\r\n color: ${({ theme }) => theme.text};\r\n }\r\n\r\n .slider-fundamental-data {\r\n background: ${({ theme }) => theme.newBackgroundColor};\r\n color: ${({ theme }) => theme.text};\r\n }\r\n\r\n #custom-select-search .select-search .select-search__value input{\r\n background: ${({ theme }) => theme.secondaryBackgrounColor};\r\n color: ${({ theme }) => theme.text};\r\n }\r\n\r\n .select-search__select {\r\n background: ${({ theme }) => theme.secondaryBackgrounColor};\r\n color: ${({ theme }) => theme.text};\r\n }\r\n\r\n #custom-select-search .select-search__value::after {\r\n border-right: 1px solid ${({ theme }) => theme.text};\r\n border-bottom: 1px solid ${({ theme }) => theme.text};\r\n }\r\n\r\n .select-search__option{\r\n background: ${({ theme }) => theme.secondaryBackgrounColor};\r\n color: ${({ theme }) => theme.text};\r\n }\r\n\r\n .app-sidebar{\r\n background: ${({ theme }) => theme.body};\r\n }\r\n\r\n .btn-expandable-grid.active-custom{\r\n background-color: ${({ theme }) => theme.body};\r\n }\r\n\r\n .btn-expandable-grid {\r\n border-bottom: 2px solid transparent !important;\r\n background-color: ${({ theme }) => theme.body};\r\n }\r\n \r\n footer {\r\n position: absolute;\r\n bottom: 5%;\r\n left: 50%;\r\n transform: translateX(-50%);\r\n }\r\n .badge-container {\r\n background-color: ${({ theme }) => theme.body};\r\n }\r\n\r\n .ticker-container{\r\n background: ${({ theme }) => theme.secondaryBackgrounColor};\r\n color: ${({ theme }) => theme.text};\r\n }\r\n\r\n .react-date-picker--disabled {\r\n background: ${({ theme }) => theme.secondaryBackgrounColor};\r\n color: ${({ theme }) => theme.text};\r\n opacity: 0.7;\r\n }\r\n .react-calendar {\r\n background: ${({ theme }) => theme.secondaryBackgrounColor};\r\n }\r\n .react-calendar__tile--now {\r\n color: ${({ theme }) => theme.body};\r\n background : #e0542b\r\n }\r\n .react-calendar__tile--now:enabled:hover, .react-calendar__title--now:enabled:focus {\r\n background : #e0542b\r\n }\r\n \r\n small {\r\n display: block;\r\n }\r\n button {\r\n display: block;\r\n }\r\n a {\r\n color: ${({ theme }) => theme.text};\r\n }\r\n\r\n .custom-scrollable ::-webkit-scrollbar-track {\r\n background-color: ${({ theme }) => theme.newBackgroundColor} !important;\r\n }\r\n\r\n\r\n .ag-root ::-webkit-scrollbar-track {\r\n background-color: ${({ theme }) => theme.newBackgroundColor} !important;\r\n }\r\n\r\n`;","export default __webpack_public_path__ + \"static/media/ic-check-mark-x.531745eb.png\";","export default __webpack_public_path__ + \"static/media/IS_logo_arabic_white.045b6fa9.png\";","export default __webpack_public_path__ + \"static/media/IS_logo_english_white.210be42b.png\";","\r\nexport let localStorageConstants = {\r\n app_path: \"app_path\",\r\n company_name: \"company_name\",\r\n Region: \"Region\",\r\n server_url: \"server_url\",\r\n chart_iq_url: \"chart_iq_url\",\r\n chart_trading_url: \"chart_trading_url\",\r\n signalr_url: \"signalr_url\",\r\n signalr_hub: \"signalr_hub\",\r\n theme: \"theme\",\r\n isTickerVisible: \"isTickerVisible\",\r\n last_Work_day: \"last_Work_day\",\r\n Foreign_Market: \"Foreign_Market\",\r\n PortfolioProvider: \"PortfolioProvider\",\r\n EnableTags: \"EnableTags\",\r\n EnableIPOQuickSell: \"EnableIPOQuickSell\",\r\n EnableSymbolFullName: \"EnableSymbolFullName\"\r\n};\r\n\r\nexport let serverURL = \"\";\r\nexport let signalrURL = \"\";\r\nexport let signalrHub = \"\";\r\nexport let domainURL = \"\";\r\nexport let baseURL = \"\";\r\n\r\n//Login/logoff\r\nexport let userAuthintications = \"UserAuthintications\";\r\nexport let UserAuthinticationAdvance = baseURL + \"UserAuthinticationAdvance\"; //new api\r\nexport let ForGotUsername = baseURL + \"ForGotUsername\"; //new api\r\nexport let UserAuthinticationIPOQuickSell = baseURL + \"UserAuthinticationIPOQuickSell\"; //new api\r\nexport let ResetUserNameAdvance = baseURL + \"ResetUserNameAdvance\"; //new api\r\nexport let ResetPasswordAdvance = baseURL + \"ResetPasswordAdvance\"; //new api\r\n\r\nexport let logOff = \"UsersLogOff\";\r\nexport let registrationsOTP = \"RegistrationsOTP\";\r\nexport let changesPassword = \"ChangesPassword\";\r\nexport let renewSubscriptionUser = \"\";\r\n\r\n//profile api\r\nexport let profileBaseUrl = \"\";\r\nexport let profileBaseUrlPart2 = \"\";\r\nexport let getProfiles = \"\";\r\nexport let getCompaniesLookups = \"\";\r\n\r\nexport let GetUserAccounts = \"\";\r\nexport let addMarketWatchProfileSymbol = \"\";\r\nexport let addMarketWatchProfileName = \"\";\r\nexport let deleteMarketWatchProfile = \"\";\r\nexport let HeartBeat = \"\";\r\nexport let deleteMarketWatchProfileSymbol = \"\"; //{ProfileID}/{Symbol}/{WebCode}\r\nexport let DeleteMarketWatchProfileAllSymbols = \"\"; //{ProfileID}/{Symbol}/{WebCode}\r\nexport let GetAvgIndexes = \"\";\r\nexport let getMarketByProfileDefault = \"GetMarketWatchByProfileID/1/\";\r\nexport let getMarketByProfile = \"GetMarketWatchByProfileID/\";\r\nexport let GetMarketWatchByProfileIDAndSymbol = \"GetMarketWatchByProfileIDAndSymbol/\";\r\nexport let getExchangeSummary = \"\";\r\nexport let getIndexesSummary = \"GetMarketIndiciesSecound/\";\r\nexport let getAllMarketNews = \"GetAllMarketNews/\";\r\nexport let GetUSCompaniesResults = \"\";\r\nexport let CheckIfUSSymbolExist = \"\";\r\nexport let AddUSTOCompaniesLookups = \"\";\r\n\r\nexport let GetCryptoCompaniesResults = \"\";\r\nexport let CheckIfCryptoSymbolExist = \"\";\r\nexport let AddCryptoSymbolToCompaniesList = \"\";\r\n\r\nexport let TraceInfoPost = \"\";\r\n\r\nexport let GetMarketIndicies = \"\";\r\n\r\nexport let getLookups = \"\"; //+ localStorage.getItem(\"WebCode\") + '?' + Math.random()\r\nexport let getRiskManagement = \"\";\r\nexport let GetRiskManagment = \"\";\r\nexport let GetRiskManagmentCash = \"\";\r\nexport let calculatesShares = \"\";\r\nexport let addBasketOrderDetails = \"\";\r\nexport let modifyBasketOrderDetails = \"\";\r\n\r\nexport let addOrder = \"\";\r\nexport let addOrdersRealTime = \"\";\r\nexport let modifyOrderRealTime = \"\";\r\nexport let cancelOrderRealTime = \"\";\r\n\r\n//Workspace\r\nexport let getProfilesByUserId = \"\"; //+ localStorage.getItem(\"WebCode\");\r\n\r\nexport let GetSettingWorkSpaceByUserID = \"\"; //+ localStorage.getItem(\"WebCode\");\r\n\r\nexport let addProfile = \"\";\r\nexport let updateProfile = \"\";\r\nexport let UpdateUserProfileSettings = \"\";\r\nexport let UpdatePreferredLangAccount = \"\";\r\nexport let deleteProfile = \"\";\r\n\r\nexport let getPasswordPolicy = \"\";\r\n\r\n/* Account Summary */\r\nexport let getAccSummary = \"\";\r\nexport let getExpectedProfitLoss = \"\"; //portfolio api\r\nexport let getTransactionSummary = \"\";\r\n\r\n//statement\r\nexport let getStatmentOfAccount = \"\";\r\nexport let getGroupByOrderStatmentOfAccount = \"\";\r\nexport let getGroupedStatmentOfAccount = \"\";\r\nexport let sendDocumentByEmail = \"\";\r\n\r\nexport let getTradeConfirmation = \"\";\r\nexport let getBankTransferInfo = \"\"; //deprecated\r\nexport let getAccountTransferInfo = \"\";\r\nexport let getBalanceBreakdown = \"\";\r\nexport let transferAmountSec = \"\";\r\nexport let submitCrmRequestRamz = \"\";\r\nexport let submitCrmRequestRamz2 = \"\";\r\nexport let getBankIBAN = \"\";\r\nexport let AddBankIBAN = \"\";\r\nexport let CancelB2bRequest = \"\";\r\nexport let CancelEquityTransferRequest = \"\";\r\nexport let checkIBAN = \"\";\r\nexport let AllTransfersReq = \"\";\r\nexport let GetTransferReqPenddingShares = \"\";\r\n\r\nexport let getAllPushNotificationsByUser = \"\";\r\nexport let getAllPushNotificationsFromFirebase = \"\";\r\nexport let updateReadPushNotificationsFlag = \"\";\r\nexport let getHistorySymbolData = \"\";\r\nexport let getAlerts = \"\";\r\nexport let addAlert = \"\";\r\nexport let deleteAlertByAlertID = \"\";\r\nexport let getConditionalByUsr = \"\";\r\nexport let deleteConditionalByID = \"\";\r\nexport let addConditionalOrder = \"\";\r\nexport let getDFN_StockData = \"\";\r\n\r\nexport let getChatWebBRKLookup = \"\";\r\nexport let getLastChatConversion = \"\";\r\nexport let GetShareTransferLogGrouped = \"\";\r\nexport let GetShareTransferLogWithDetails = \"\";\r\nexport let GetShareTransferLogDetails = \"\";\r\nexport let GetNextRequestID = \"\";\r\nexport let SubmitShareTransferReq = \"\";\r\nexport let SubmitEquityTransferReq = \"\";\r\nexport let GetAccountTransferInfo = \"\";\r\nexport let GetExpectedProfitLossSec = \"\";\r\n\r\nexport let GetUserPermissionsByGroupID = \"\";\r\n\r\n//Report Service\r\nexport let GetAccountSummaryReport = \"\";\r\nexport let GetExpectedPortfolioReport = \"\";\r\nexport let GetProfitLossTransactionReport = \"\";\r\nexport let GetTradesConfirmationReport = \"\";\r\n\r\nexport let GetUSSymbolNews = \"\";\r\nexport let CheckUpdateIdValidity = \"\";\r\nexport let UpdateIdValidity = \"\";\r\nexport let UploadClientDocuments = \"\";\r\nexport let GetRequiredUserDocuments2 = \"\";\r\n\r\nexport let GetContactInfo = \"\";\r\nexport let GetCashDepURL = \"\";\r\nexport let GetDeviceConfigs = \"\";\r\nexport let TechnicalIndicator = \"\";\r\nexport let BasketOrederURL = \"\";\r\nexport let DeleteBasketOrder = \"\";\r\nexport let CustodiansByClientID = \"\";\r\nexport let GetDailyReports = \"\";\r\nexport let TransferAmount = \"\";\r\nexport let GetIPOLink = \"\";\r\nexport let UpdateTermsAndConditionsVersion = \"\";\r\nexport let GetTermsAndConditionsText = \"\";\r\n\r\n\r\n\r\n\r\n//function to update basic exported values, since exported Let variables are only modified in its module\r\nexport function updateUrls(server_url, signalr_url, signalr_hub) {\r\n serverURL = server_url;\r\n signalrURL = signalr_url;\r\n signalrHub = signalr_hub;\r\n domainURL = server_url;\r\n\r\n baseURL = server_url + \"GeneralWServices/\";\r\n UserAuthinticationAdvance = baseURL + \"UserAuthinticationAdvance\"; //new api\r\n ForGotUsername = baseURL + \"ForgotUsername\"; //new api\r\n UserAuthinticationIPOQuickSell = baseURL + \"UserAuthinticationIPOQuickSell\"; //new api\r\n ResetUserNameAdvance = baseURL + \"ResetUserNameAdvance\"; //new api\r\n ResetPasswordAdvance = baseURL + \"ResetPasswordAdvance\"; //new api\r\n getCompaniesLookups = baseURL + \"GetCompaniesLookups/\";\r\n CheckIfUSSymbolExist = baseURL + \"CheckIfUSSymbolExist/\";\r\n AddUSTOCompaniesLookups = baseURL + \"AddUSTOCompaniesLookups/\";\r\n CheckIfCryptoSymbolExist = baseURL + \"CheckIfCryptoSymbolExist/\";\r\n AddCryptoSymbolToCompaniesList = baseURL + \"AddCryptoSymbolToCompaniesList/\";\r\n\r\n TraceInfoPost = baseURL + \"TraceInfoPost\";\r\n\r\n HeartBeat = baseURL + \"HeartBeat/\";\r\n\r\n profileBaseUrl = domainURL + \"MarektWServices/\";\r\n profileBaseUrlPart2 = domainURL + \"RealTimeWServices/\";\r\n getProfiles = profileBaseUrl + \"GetAllProfilesLookupsByUSerCode/\";\r\n addMarketWatchProfileSymbol = profileBaseUrl + \"AddMarketWatchProfileSymbol/\";\r\n addMarketWatchProfileName = profileBaseUrl + \"AddMarketWatchProfileName/\";\r\n deleteMarketWatchProfile = profileBaseUrl + \"DeleteMarketWatchProfile/\";\r\n deleteMarketWatchProfileSymbol = profileBaseUrl + \"DeleteMarketWatchProfileSymbol/\"; //{ProfileID}/{Symbol}/{WebCode}\r\n DeleteMarketWatchProfileAllSymbols = profileBaseUrl + \"DeleteMarketWatchProfileAllSymbols\"; //{ProfileID}/{Symbol}/{WebCode}\r\n\r\n getMarketByProfileDefault = \"GetMarketWatchByProfileID/1/\";\r\n getMarketByProfile = \"GetMarketWatchByProfileID/\";\r\n GetMarketWatchByProfileIDAndSymbol = \"GetMarketWatchByProfileIDAndSymbol/\";\r\n getAllMarketNews = \"GetAllMarketNews/\";\r\n\r\n getExchangeSummary = domainURL + \"MarektWServices/GetExchangeSummary/\";\r\n getIndexesSummary = domainURL + \"MarektWServices/GetMarketIndiciesSecound/\";\r\n GetMarketIndicies = domainURL + \"MarektWServices/GetMarketIndicies/\";\r\n GetAvgIndexes = domainURL + \"MarektWServices/GetAvgIndexes/\";\r\n\r\n getRiskManagement = domainURL + \"TradingWServices/GetRsikManagment/\";\r\n GetRiskManagment = domainURL + \"TradingWServices/GetRiskManagment\";\r\n GetRiskManagmentCash = domainURL + \"TradingWServices/GetRsikManagmentCache\";\r\n calculatesShares = domainURL + \"TradingWServices/CalculatesShares/\";\r\n addBasketOrderDetails = domainURL + \"TradingWServices/AddBasketOrderDetails\";\r\n modifyBasketOrderDetails = domainURL + \"TradingWServices/ModifyBasketOrderDetails\";\r\n addOrder = domainURL + \"TradingWServices/AddOrder\";\r\n\r\n addOrdersRealTime = domainURL + \"RealTimeWServices/AddOrders\";\r\n modifyOrderRealTime = domainURL + \"RealTimeWServices/ModifyOrders\";\r\n cancelOrderRealTime = domainURL + \"RealTimeWServices/CancelOrder\";\r\n\r\n GetUserAccounts = domainURL + \"GeneralWServices/GetUserAccounts/\";\r\n getLookups = domainURL + \"GeneralWServices/getlookups/\"; //+ localStorage.getItem(\"WebCode\") + '?' + Math.random()\r\n getProfilesByUserId = domainURL + \"GeneralWServices/GetProfilesLookupByUserID/\"; //+ localStorage.getItem(\"WebCode\");\r\n GetSettingWorkSpaceByUserID = domainURL + \"GeneralWServices/GetSettingWorkSpaceByUserID/\"; //+ localStorage.getItem(\"WebCode\");\r\n addProfile = domainURL + \"GeneralWServices/AddProfile\";\r\n updateProfile = domainURL + \"GeneralWServices/UpdateProfile\";\r\n\r\n UpdateUserProfileSettings = domainURL + \"GeneralWServices/UpdateUserProfileSettings\";\r\n UpdatePreferredLangAccount = domainURL + \"GeneralWServices/UpdatePreferredLang/\";\r\n deleteProfile = domainURL + \"GeneralWServices/DeleteProfile\";\r\n getPasswordPolicy = domainURL + \"GeneralWServices/GetPasswordPolicy/\";\r\n GetUserPermissionsByGroupID = domainURL + \"GeneralWServices/GetUserPermissionsByGroupID/\"; //{GROUPCODE}/{WEBCODE}\r\n CheckUpdateIdValidity = domainURL + \"GeneralWServices/CheckUpdateIdValidity/\";\r\n UpdateIdValidity = domainURL + \"GeneralWServices/UpdateIdValidity3\";\r\n UploadClientDocuments = domainURL + \"GeneralWServices/UploadClientDocuments\";\r\n GetRequiredUserDocuments2 = domainURL + \"GeneralWServices/GetRequiredUserDocuments2\";\r\n\r\n getAccSummary = domainURL + \"FinancialWServices/GetAccSummary/\";\r\n getExpectedProfitLoss = domainURL + \"FinancialWServices/GetExpectedProfitLoss/\"; //portfolio api\r\n getStatmentOfAccount = domainURL + \"FinancialWServices/GetStatmentOfAccount/\";\r\n getGroupByOrderStatmentOfAccount = domainURL + \"FinancialWServices/GetGroupByOrderStatmentOfAccount/\";\r\n getGroupedStatmentOfAccount = domainURL + \"FinancialWServices/GetGroupedStatmentOfAccount/\";\r\n getTradeConfirmation = domainURL + \"FinancialWServices/GetTradesConfirmation/\";\r\n getBankTransferInfo = domainURL + \"FinancialWServices/GetBankTransferInfo/\";\r\n getAccountTransferInfo = domainURL + \"FinancialWServices/GetAccountTransferInfo\";\r\n getBalanceBreakdown = domainURL + \"FinancialWServices/GetBalanceBreakDown/\";\r\n transferAmountSec = domainURL + \"FinancialWServices/TransferAmountSec\";\r\n submitCrmRequestRamz = domainURL + \"FinancialWServices/SubmitCrmRequestRamz\";\r\n submitCrmRequestRamz2 = domainURL + \"FinancialWServices/submitCrmRequestRamz2\";\r\n sendDocumentByEmail = domainURL + \"FinancialWServices/SendDocumentByEmails/\";\r\n renewSubscriptionUser = domainURL + \"FinancialWServices/RenewSubscriptionUser/\";\r\n getTransactionSummary = domainURL + \"FinancialWServices/getTransactionSummary/\";\r\n getBankIBAN = domainURL + \"FinancialWServices/GetBankIBAN/\";\r\n AddBankIBAN = domainURL + \"FinancialWServices/AddBankIBAN\";\r\n CancelEquityTransferRequest = domainURL + \"FinancialWServices/CancelEquityTransferRequest\";\r\n CancelB2bRequest = domainURL + \"FinancialWServices/CancelB2bRequest\";\r\n checkIBAN = domainURL + \"FinancialWServices/checkIBAN/\";\r\n AllTransfersReq = domainURL + \"FinancialWServices/GetB2bRequests/\";\r\n GetTransferReqPenddingShares = domainURL + \"FinancialWServices/GetTransferReqPenddingShares/\";\r\n\r\n getAllPushNotificationsByUser = domainURL + \"NotificationWServices/GetAllPushNotificationsByUser/\";\r\n getAllPushNotificationsFromFirebase = domainURL + \"NotificationWServices/GetAdminNotification/\";\r\n updateReadPushNotificationsFlag = domainURL + \"NotificationWServices/UpdateReadPushNotificationsFlag/\";\r\n getHistorySymbolData = domainURL + \"NotificationWServices/GetHistorySymbolData/\";\r\n getAlerts = domainURL + \"NotificationWServices/GetAlertByUSerCode/\";\r\n addAlert = domainURL + \"NotificationWServices/AddAlert/\";\r\n deleteAlertByAlertID = domainURL + \"NotificationWServices/DeleteAlertByAlertID/\";\r\n getConditionalByUsr = domainURL + \"NotificationWServices/GetConditionalByUsr/\";\r\n deleteConditionalByID = domainURL + \"NotificationWServices/DeleteConditionalByID/\";\r\n addConditionalOrder = domainURL + \"NotificationWServices/AddConditionalOrder\";\r\n getDFN_StockData = domainURL + \"RealTimeWServices/GetDFN_StockData\";\r\n getLastChatConversion = domainURL + \"NotificationWServices/GetLastChatConversion/\";\r\n getChatWebBRKLookup = domainURL + \"NotificationWServices/GetChatWebBRKLookup/\";\r\n GetShareTransferLogGrouped = domainURL + \"FinancialWServices/GetShareTransferLogGrouped/\";\r\n GetShareTransferLogWithDetails = domainURL + \"FinancialWServices/GetShareTransferLogWithDetails/\";\r\n GetShareTransferLogDetails = domainURL + \"FinancialWServices/GetShareTransferLog/\";\r\n GetNextRequestID = domainURL + \"FinancialWServices/GetNextRequestID/\";\r\n SubmitShareTransferReq = domainURL + \"FinancialWServices/SubmitShareTransferReq\";\r\n SubmitEquityTransferReq = domainURL + \"FinancialWServices/SubmitEquityTransferReq\";\r\n GetAccountTransferInfo = domainURL + \"FinancialWServices/GetAccountTransferInfo\";\r\n GetExpectedProfitLossSec = domainURL + \"FinancialWServices/GetExpectedProfitLossSec/\";\r\n\r\n GetAccountSummaryReport = domainURL + \"ReportGeneratorWServices/GetAccountSummaryReport\";\r\n GetExpectedPortfolioReport = domainURL + \"ReportGeneratorWServices/GetExpectedPortfolioReport\";\r\n GetProfitLossTransactionReport = domainURL + \"ReportGeneratorWServices/GetProfitLossTransactionReport\";\r\n GetTradesConfirmationReport = domainURL + \"ReportGeneratorWServices/GetTradesConfirmationReport\";\r\n GetUSCompaniesResults = domainURL + \"RealTimeWServices/GetUSCompaniesResults/\";\r\n GetUSSymbolNews = domainURL + \"RealTimeWServices/GetUSSymbolNews/\";\r\n\r\n GetCryptoCompaniesResults = domainURL + \"RealTimeWServices/GetCryptoCompaniesLookup/\";\r\n\r\n GetContactInfo = domainURL + \"GeneralWServices/GetContactInfo\";\r\n GetCashDepURL = domainURL + \"GeneralWServices/GetCashDepURL/\";\r\n GetDeviceConfigs = domainURL + \"GeneralWServices/GetDeviceConfigs\";\r\n TechnicalIndicator = domainURL + \"RealTimeWServices/TechnicalIndicator\";\r\n CustodiansByClientID = domainURL + \"TradingWServices/GetCustodiansByClientID\";\r\n BasketOrederURL = domainURL + \"TradingWServices/GetBasketOrderDetails\";\r\n DeleteBasketOrder = domainURL + \"TradingWServices/DeleteBasketOrderDetails\";\r\n GetDailyReports = domainURL + 'GeneralWServices/GetDailyReports';\r\n TransferAmount = domainURL + 'FinancialWServices/CrmRequest';\r\n GetIPOLink = domainURL + \"GeneralWServices/GetIPOLink/\";\r\n UpdateTermsAndConditionsVersion = domainURL + \"GeneralWServices/UpdateTermsAndConditionsVersion/\";\r\n GetTermsAndConditionsText = domainURL + \"GeneralWServices/GetTermsAndConditionsText/\";\r\n\r\n\r\n\r\n}\r\n\r\n/* Orders */\r\nexport let config = {\r\n RealTimeOrders: true,\r\n AllowOfflineOrder: true,\r\n CompanyName: \"RAMZ\",\r\n RememberUserName: true,\r\n RememberPassword: true,\r\n};\r\n\r\n/* End Orders */\r\nexport let OrderStatusText = {\r\n Active: \"Active\",\r\n Traded: \"Traded\",\r\n Canceled: \"Canceled\",\r\n Suspended: \"Suspended\",\r\n Expired: \"Expired\",\r\n Pending: \"Pending\",\r\n New: \"New\",\r\n Outstanding: \"Outstanding\",\r\n Partially_Filled: \"Partially Filled\",\r\n Rejected: \"Rejected\",\r\n Fully_Filled: \"Fully Filled\",\r\n Sent: \"Sent\",\r\n Waiting: \"Waiting\",\r\n Private_Order: \"Private Order\",\r\n Unplaced_Order: \"Unplaced Order\",\r\n Pending_Modify: \"Pending Modify\", //1s\r\n Pending_New: \"Pending New\", //1s\r\n Pending_Canceld: \"Pending Canceld\", //1s\r\n InActive_Trigger: \"InActive Trigger\", //1s\r\n};\r\nexport let OrderStatusTextArabic = {\r\n Active: \"فعال\",\r\n Traded: \"Traded\",\r\n Canceled: \"ملغى\",\r\n Suspended: \"Suspended\",\r\n Expired: \"انتهت صلاحيته\",\r\n Pending: \"قيد التنفيذ\",\r\n New: \"جديد\",\r\n Outstanding: \"Outstanding\",\r\n Partially_Filled: \"منفذ جزئي\",\r\n Rejected: \"مرفوض\",\r\n Fully_Filled: \"منفذ بالكامل\",\r\n Sent: \"مرسل\",\r\n Waiting: \"انتظار\",\r\n Private_Order: \"Private Order\",\r\n Unplaced_Order: \"Unplaced Order\",\r\n Pending_Modify: \"Pending Modify\", //1s\r\n Pending_New: \"Pending New\", //1s\r\n Pending_Canceld: \"Pending Canceld\", //1s\r\n InActive_Trigger: \"InActive Trigger\", //1s\r\n};\r\nexport let OrderStatusResponse = {\r\n Active: \"A\",\r\n //Traded: 'T',// P or S partialy or fully filled\r\n Canceled: \"C\",\r\n Suspended: \"D\",\r\n Expired: \"E\",\r\n Pending: \"I\",\r\n New: \"N\",\r\n //Outstanding: 'O',\r\n Partially_Filled: \"P\",\r\n Rejected: \"R\",\r\n Fully_Filled: \"S\",\r\n Sent: \"T\", // T\r\n Waiting: \"W\",\r\n Private_Order: \"Z\",\r\n Unplaced_Order: \"L\",\r\n Pending_Modify: \"H\", //1s\r\n Pending_New: \"F\", //1s\r\n Pending_Canceld: \"G\", //1s\r\n InActive_Trigger: \"X\", //1s\r\n};\r\nexport let OrderValidityResponse = {\r\n Day: \"0001\",\r\n GTC: \"0002\",\r\n GTD: \"0003\",\r\n GTW: \"0004\",\r\n GTM: \"0005\",\r\n FOK: \"0006\",\r\n FAK: \"0007\",\r\n};\r\n\r\nexport let account = {\r\n ALLOW_DERIV_TRADING: \"\",\r\n AccType: \"\",\r\n AccountDesc: \"\",\r\n AccountID: \"\",\r\n CL_BANK_ID: \"\",\r\n CL_BANK_ID2: \"\",\r\n CUR_CODE: \"\",\r\n ClientID: \"\",\r\n ClientNameA: \"\",\r\n ClientNameE: \"\",\r\n Email_Address: \"\",\r\n Exchange: \"\",\r\n Exchange_DESC_A: \"\",\r\n Exchange_DESC_E: \"\",\r\n IS_DEFAULT_ACC: \"\",\r\n IS_INTER: \"\",\r\n IS_Islamic: \"\",\r\n IS_MARGIN_ACC: \"\",\r\n IS_SAMEDAY: \"\",\r\n MainClientID: \"\",\r\n MainClientNameA: \"\",\r\n MainClientNameE: \"\",\r\n Mobile_NO: \"\",\r\n NIN: \"\",\r\n};\r\n\r\nexport let Layouts = {\r\n Trading: 1,\r\n Market_Overview: 2,\r\n Account_Summary: 3,\r\n New_Workspace: 4,\r\n fit_ag_grid: 5,\r\n Advance_Chart: 6,\r\n Stock_Profile: 7,\r\n settings: 999,\r\n defaultWorkspace: 8,\r\n binanceWorkspace: 9,\r\n};\r\n\r\nexport let DockingTabs = {\r\n Main_Grid: \"t01\",\r\n Order_List: \"t02\",\r\n Order_Basket: \"t10\",\r\n Orders_Entry: \"t11\",\r\n Order_Search: \"t12\",\r\n Information: \"t13\",\r\n Market_Time_And_Sales: \"t14\",\r\n Tops: \"t15\",\r\n News_And_Announcements: \"t16\",\r\n Transfers: \"t17\",\r\n Account_Summary: \"t18\",\r\n Portfolio: \"t19\",\r\n Statement: \"t20\",\r\n Chart: \"t21\",\r\n Trade_Confirmation: \"t22\",\r\n Market_Indicies: \"t23\",\r\n Conditional_Orders: \"t24\",\r\n Balance_Breakdown: \"t25\",\r\n Historical_Symbol: \"t26\",\r\n Alert_Manager: \"t27\",\r\n Fundamental_Data: \"t28\",\r\n Client_Information: \"t29\",\r\n Market_Depth: \"p30\",\r\n Stock_Details: \"p31\",\r\n ChartIQ: \"p32\",\r\n SymbolTimeAndSales: \"p34\",\r\n SymbolNewAndAnnouncements: \"p35\",\r\n DetailQuote: \"p36\",\r\n TopsActive: \"p37\",\r\n Sector_overview: \"p38\",\r\n MarketSummary: \"p39\",\r\n AccountSummaryChart: \"p40\",\r\n HoldingsAllocation: \"p41\",\r\n TransactionSummary: \"p42\",\r\n ShortMWSymbol: \"p43\",\r\n VerticalMarketDepth: \"p44\",\r\n EquityTransfer: \"p45\",\r\n AllTransfersScreen: \"p46\",\r\n BinanceOrderEntry: \"p47\",\r\n AnalysisIndecator: \"p48\",\r\n BasketOrders: \"p49\",\r\n DailyReports: \"p50\",\r\n Requests:\"p51\",\r\n PortfolioFromDB: \"p52\",\r\n \r\n};\r\n\r\n//Id tab include linking Color button:\r\nexport let linkingColorTabs =\r\n \"t01, t02 , t11 , t12 , t26, t27 , t28 , p30, p31 , p32 , p34 , p35 , p36\";\r\n\r\nexport let LoginStatus = {\r\n Success: \"0\", //Sucess login\r\n InvalidLogin: \"-1\", //Invalid login\r\n invalidTokenID: \"-2\", //Invalid TokenID\r\n TokenSent: \"-3\", //OTP Token Sent\r\n TokenExpire: \"-4\", //Token is Expired\r\n noPermetions: \"N\", //No Permissions\r\n ExceedNoTrials: \"-6\", //Exceed No of Trials\r\n AlreadyLoggedIn: \"-7\", //Already logged in\r\n NotAgreeTermCondtion: \"-8\", //Didn't agree to terms and conditions\r\n UnknowError: \"-10\", //Unknow Error\r\n IPOQuickSell: \"-11\", //IPO Quick sell Acount_Not_EXIST OR More_Then_One_User\r\n EnableEtrade : \"-22\"\r\n};\r\n\r\nexport let ComponentChildCode = {\r\n Market_Watch: \"1\",\r\n Market_Watch_Trade: \"49\",\r\n Order_List: \"13\",\r\n Order_List_1: \"164\",\r\n Sell_Orders_Entry: \"11\",\r\n Buy_Orders_Entry: \"12\",\r\n Shares_Transfer: \"377\",\r\n\r\n TransferParent: \"34\",\r\n Transfer: \"370\",\r\n Internal_Transfer: \"382\",\r\n Wire_Transfer: \"384\",\r\n Cheque_Transfer: \"383\",\r\n IBAN_Transfer: \"385\",\r\n Cancel_Transfer: \"374\",\r\n Request_Log: \"386\",\r\n\r\n Account_Summary: \"44\",\r\n Account_Statement: \"46\", //=> Component: Statment\r\n Live_Chart: \"24\", //=> Component: Chart\r\n Trade_Confirmation: \"78\", //=> Component: Trade Confirmation\r\n Balance_Breakdown: \"76\",\r\n Historical_Symbol_Meta_Data: \"83\", //=>Component: Historical Symbol\r\n Alert: \"21\",\r\n Client_Informations: \"77\",\r\n Market_Depth: \"85\",\r\n Market_Depth_Order: \"3\",\r\n Market_Depth_price: \"2\",\r\n\r\n Martet_By_Symbol: \"4\",\r\n Conditional_Orders: \"35\",\r\n Fundamental_Data: \"96\",\r\n ChartIQ: \"10\",\r\n Portfolio: \"20\",\r\n Stock_Details: \"100\",\r\n Market_Indicies: \"22\",\r\n Market_Time_And_Sales: \"29\",\r\n Symbol_Time_And_Sales: \"103\",\r\n Market_News_And_Announsments: \"6\",\r\n Symbol_News_And_Announsments: \"97\",\r\n\r\n Tops: \"16\",\r\n Tops_Gainers: \"25\",\r\n Tops_Losers: \"26\",\r\n Tops_Value: \"27\",\r\n Tops_Volume: \"28\",\r\n Top_Trades: \"106\",\r\n\r\n Order_Search: \"13408\",\r\n Order_Basket: \"14\",\r\n change_password: \"19\",\r\n Quick_Order: \"47\",\r\n Market_trade_summary: \"30\",\r\n ShortMWSymbol: \"104\",\r\n TransactionSummary: \"105\",\r\n\r\n EtradeTicker: \"72\",\r\n ChangePassword: \"19\",\r\n\r\n // Equity Transfer\r\n EquityTransfer: \"107\",\r\n EquityTransferDisplay: \"1\",\r\n EquityTransferIn: \"2\",\r\n EquityTransferOut: \"3\",\r\n EquityTransferBetween: \"4\",\r\n EquityTransferLog: \"5\",\r\n EquityTransferCancel: \"6\",\r\n // --\r\n ContactUS: \"108\",\r\n UpdateIdValidity: \"109\",\r\n cashDeposit: \"110\",\r\n KYCLink: \"111\",\r\n IPOLink: \"112\",\r\n PreferredLanguage: \"113\",\r\n Subscription: \"114\",\r\n\r\n //DailyReports\r\n DailyReports: \"115\",\r\n DailyReportsDisplay: \"1\",\r\n Highlights: \"2\",\r\n EgyptDaily: \"3\",\r\n TechnicalReport: \"4\",\r\n //--\r\n\r\n CrmRequest: \"34\"\r\n\r\n};\r\n\r\nexport let redirectMobileURLS = {\r\n IOS: \" https://apps.apple.com/us/app/intl-securities/id1048904565\",\r\n Android: \"https://play.google.com/store/apps/details?id=app.id_IntegratedS_95149acdecf047db9b60bfc7b84de372\",\r\n};\r\n\r\nexport let dateFormat = \"ddMMyyyy\";\r\nexport let dateFormat_4 = \"dd-MM-yyyy\";\r\n\r\nexport let defaultTheme = \"light\"; //options: dark, light\r\n\r\nexport let errorNotifyDuration = 2000;\r\nexport let successNotifyDuration = 2000;\r\n","export default __webpack_public_path__ + \"static/media/bg2.063c37e1.png\";","export default __webpack_public_path__ + \"static/media/IS_logo_arabic.13fab310.png\";","export default __webpack_public_path__ + \"static/media/IS_logo_english.645fb225.png\";","import React, { useEffect } from 'react';\r\nimport './LoginSignup.css';\r\n\r\nimport FitLogo from '../../assets/images/fit_logo.png';\r\n\r\nimport ShuaaLogoWhiteArabic from '../../assets/images/splash_icons/IS_logo_arabic_white.png';\r\nimport ShuaaLogoWhiteEnglish from '../../assets/images/splash_icons/IS_logo_english_white.png';\r\n\r\nimport ShuaaLogoBlueArabic from '../../assets/images/splash_icons/IS_logo_arabic.png';\r\nimport ShuaaLogoBlueEnglish from '../../assets/images/splash_icons/IS_logo_english.png';\r\n\r\n\r\nimport LeftImage from '../../assets/images/RAMZ/bg2.png?ver=1';\r\n\r\nimport { ThemeProvider } from 'styled-components';\r\nimport { lightTheme, darkTheme } from '../../global/theme';\r\nimport { GlobalStyles } from '../../global/global';\r\nimport { useDarkMode } from '../shared/Toggle/useDarkMode';\r\nimport * as actions from \"../../store/actionTypes\";\r\nimport { connect } from \"react-redux\";\r\nimport { withTranslation } from 'react-i18next';\r\nimport { useTranslation } from 'react-i18next';\r\nimport * as Constants from '../../constants/Constants';\r\n\r\nfunction AuthContainer(props) {\r\n const { t } = useTranslation();\r\n const [theme, componentMounted] = useDarkMode();\r\n\r\n /* componentDidMount */\r\n useEffect(() => {\r\n //console.log(\"AuthContainer Mounted\");\r\n }, [])\r\n\r\n const themeMode = theme === 'light' ? lightTheme : darkTheme;\r\n if (theme === 'dark') {\r\n props.setDarkMode(true)\r\n } else {\r\n props.setDarkMode(false)\r\n }\r\n\r\n if (!componentMounted) {\r\n return
\r\n };\r\n\r\n let imageClass = \"col-md-6 auth-left hidden-sm\";\r\n let formClass = \"col-md-6 col-sm-12 auth-right\";\r\n let flexClass = \"flex-row\";\r\n let formDirection = \"ltr\";\r\n\r\n if (props.i18n.language === \"ar\") {\r\n flexClass = \"flex-row-reverse\";\r\n formDirection = \"rtl\";\r\n }\r\n\r\n let logo = null;\r\n // if (props.i18n.language === \"en\") {\r\n // if (localStorage.getItem(Constants.localStorageConstants.company_name) === \"FIT\") {\r\n // logo = FitLogo\r\n // } else {\r\n // if (theme === 'dark') {\r\n // logo = ShuaaLogoWhiteEnglish\r\n // } else {\r\n // logo = ShuaaLogoBlueEnglish\r\n // }\r\n\r\n // }\r\n // } else {\r\n // if (localStorage.getItem(Constants.localStorageConstants.company_name) === \"FIT\") {\r\n // logo = FitLogo\r\n // } else {\r\n // if (theme === 'dark') {\r\n // logo = ShuaaLogoWhiteArabic\r\n // } else {\r\n // logo = ShuaaLogoBlueArabic\r\n // }\r\n\r\n // }\r\n // }\r\n\r\n return (\r\n \r\n <>\r\n \r\n {/*

It's a {theme === 'light' ? 'light theme' : 'dark theme'}!

*/}\r\n
\r\n
\r\n {localStorage.getItem(Constants.localStorageConstants.company_name) === \"ALRAMZ\" ?\r\n
\r\n
\r\n \r\n {/* */}\r\n
\r\n
\r\n : null}\r\n\r\n
\r\n
\r\n {/* */}\r\n
\r\n \r\n
\r\n\r\n\r\n\r\n {/*

{props.title}

*/}\r\n {localStorage.getItem(Constants.localStorageConstants.company_name) === \"UNITED\"\r\n ?
\r\n
مرحباً بكم في موقع التداول الإلكتروني لشركة المتحدة للأوراق المالية
\r\n
Welcome to UNITED SECURITIES Online Trading Portal
\r\n
:\r\n localStorage.getItem(Constants.localStorageConstants.company_name) === \"GLOBAL\"\r\n ?
\r\n
مرحباً بكم في موقع التداول الإلكتروني لشركة الدولية للأوراق المالية
\r\n
Welcome to GLOBAL FINANCIAL SECURITIES Online Trading Portal
\r\n
:\r\n
{props.subTitle}
\r\n }\r\n\r\n
\r\n {props.form}\r\n
\r\n {/*
\r\n \r\n
*/}\r\n
\r\n {/*
\r\n {t(\"terms\")}\r\n
*/}\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n );\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n setDarkMode: (isDarkMode) => {\r\n dispatch({\r\n type: actions.SET_DARK_MODE,\r\n payload: {\r\n isDarkMode: isDarkMode\r\n }\r\n })\r\n },\r\n }\r\n}\r\n\r\n//export default connect(null, mapDispatchToProps)(withTranslation(null))(AuthContainer);\r\nexport default connect(null, mapDispatchToProps, null, { forwardRef: true })(withTranslation(null, { withRef: true })(AuthContainer));","// useDarkMode.js\r\nimport { useEffect, useState } from 'react';\r\nimport * as Constants from \"../../../constants/Constants\";\r\n\r\nexport const useDarkMode = () => {\r\n const [theme, setTheme] = useState(Constants.defaultTheme);\r\n const [componentMounted, setComponentMounted] = useState(false);\r\n\r\n const setMode = mode => {\r\n window.localStorage.setItem('theme', mode)\r\n setTheme(mode)\r\n };\r\n\r\n const toggleTheme = () => {\r\n if (theme === 'light') {\r\n setMode('dark');\r\n } else {\r\n setMode('light');\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const localTheme = window.localStorage.getItem('theme');\r\n if (localTheme) {\r\n setTheme(localTheme);\r\n } else {\r\n setMode(Constants.defaultTheme);\r\n }\r\n setComponentMounted(true);\r\n }, []);\r\n\r\n return [theme, toggleTheme, componentMounted]\r\n};","import React, { useState, useRef, useEffect } from \"react\";\r\nimport { toast } from \"react-toastify\";\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\nimport { authenticate, encryptedString, GetSettingWorkSpaceByUserID } from \"../../global/utils\";\r\nimport \"./LoginSignup.css\";\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport * as actions from \"../../store/actionTypes\";\r\n\r\nimport { LoginStatus } from \"../../constants/Constants\";\r\n\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nimport { confirmAlert } from 'react-confirm-alert'; // Import\r\nimport 'react-confirm-alert/src/react-confirm-alert.css'; // Import css\r\n\r\n//loader\r\nimport \"react-loader-spinner/dist/loader/css/react-spinner-loader.css\";\r\nimport Loader from 'react-loader-spinner';\r\n\r\nimport * as AppUrls from \"../../constants/AppUrls\";\r\nimport * as Constants from \"../../constants/Constants\";\r\n\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport Keyboard from \"react-simple-keyboard\";\r\nimport \"react-simple-keyboard/build/css/index.css\";\r\nimport KeyboardIcon from '../../assets/images/keyboard_icon.png';\r\n\r\nimport * as Helpers from \"../../global/Helpers\";\r\n\r\nimport * as utils from \"../../global/utils\";\r\nimport { color } from \"highcharts\";\r\nimport i18next from 'i18next';\r\n\r\n// import TermsAndConditions from '../TermsAndConditions/TermsAndConditions'\r\n\r\n\r\ntoast.configure();\r\n\r\nfunction Login(props) {\r\n const abortController = new AbortController();\r\n //const counter = useSelector((state) => state)\r\n const dispatch = useDispatch()\r\n const { t, i18n } = useTranslation();\r\n /* static login: to be uncommented */\r\n /* localStorage.setItem(\"user\", \"FIT\");\r\n localStorage.setItem(\"username\", \"FIT\");\r\n localStorage.setItem(\"WebCode\", \"50\"); */\r\n let language = localStorage.getItem(\"language\");\r\n if (language === null) {\r\n language = \"en\"\r\n }\r\n\r\n const [username, setUsername] = useState(\"\");\r\n const [password, setPassword] = useState(\"\");\r\n const [LanguageSelectedFromLogin, setLanguageSelected] = useState(language);\r\n const [isLanguageSelectedFromLogin, setIsLanguageSelectedFromLogin] = useState(false);\r\n const [passwordType, setPasswordType] = useState(\"password\");\r\n const [isRememberMe, setIsRememberMe] = useState(false);\r\n const [redirect, setRedirect] = useState(null);\r\n /* const [ipAddress, setIpAddress] = useState(\"\"); */\r\n const [visible, setVisible] = useState(false);\r\n const [keyboardVisible, setKeyboardVisible] = useState(false);\r\n const [passwordDisabled, setPasswordDisabled] = useState(false);\r\n const [layout, setLayout] = useState(\"default\");\r\n const [keyboardLanguage, setKeyboardLanguage] = useState(\"en\");\r\n const keyboard = useRef();\r\n\r\n\r\n\r\n useEffect(() => {\r\n\r\n\r\n\r\n /* componentDidMount */\r\n localStorage.setItem(\"LanguageSelectedFromLogin\", LanguageSelectedFromLogin);\r\n localStorage.setItem(\"isLanguageSelectedFromLogin\", isLanguageSelectedFromLogin);\r\n localStorage.setItem('Netconnected', false);\r\n if (localStorage.getItem(\"isRememberMe\") === 'true') {\r\n setUsername(localStorage.getItem(\"username\"));\r\n // setPassword(localStorage.getItem(\"password\"));\r\n setIsRememberMe(true);\r\n } else {\r\n setUsername(\"\");\r\n setPassword(\"\");\r\n setIsRememberMe(false);\r\n }\r\n GetDeviceConfigs();\r\n }, [])\r\n\r\n const onChange = input => {\r\n setPassword(input);\r\n // console.log(\"Input changed\", input);\r\n };\r\n\r\n const handleShift = () => {\r\n\r\n const newLayoutName = layout === \"default\" ? \"shift\" : \"default\";\r\n setLayout(newLayoutName);\r\n };\r\n\r\n const onKeyPress = button => {\r\n\r\n // console.log(\"Button pressed\", button);\r\n if (button === \"{shift}\" || button === \"{lock}\") handleShift();\r\n if (button === \"{ar}\") {\r\n setKeyboardLanguage(\"ar\")\r\n } else if (button === \"{en}\") {\r\n setKeyboardLanguage(\"en\")\r\n }\r\n };\r\n\r\n var tokenId = \"\"\r\n\r\n // const errorNotify = (message) => {\r\n // toast.error(message, {\r\n // position: toast.POSITION.BOTTOM_CENTER,\r\n // hideProgressBar: true,\r\n // autoClose: Constants.errorNotifyDuration\r\n // });\r\n // };\r\n\r\n // const successNotify = (message) => {\r\n // toast.success(message, {\r\n // position: toast.POSITION.BOTTOM_CENTER,\r\n // hideProgressBar: true,\r\n // autoClose: Constants.successNotifyDuration\r\n // });\r\n // };\r\n\r\n function changeLanguageNew(e) {\r\n\r\n e.preventDefault();\r\n var newlang = \"\";\r\n if (LanguageSelectedFromLogin === \"en\") {\r\n newlang = \"ar\";\r\n } else {\r\n newlang = \"en\";\r\n }\r\n setLanguageSelected(newlang);\r\n setIsLanguageSelectedFromLogin(true);\r\n localStorage.removeItem(\"LanguageSelectedFromLogin\");\r\n localStorage.removeItem(\"isLanguageSelectedFromLogin\");\r\n localStorage.setItem(\"LanguageSelectedFromLogin\", newlang);\r\n localStorage.setItem(\"isLanguageSelectedFromLogin\", true);\r\n props.changeLanguageNew();\r\n\r\n\r\n\r\n };\r\n\r\n // function TermsAndConditionsPOPUP() {\r\n // confirmAlert({\r\n // customUI: ({ onClose }) => {\r\n // return (\r\n //
\r\n // \r\n //
\r\n // \r\n\r\n // {t(\"TermsAndConditions\")}\r\n // \r\n //
\r\n // \r\n\r\n //
\r\n //
\r\n // \r\n // \r\n // \r\n // \r\n // );\r\n // },\r\n // });\r\n // }\r\n function alreadyLoggedInFunc() {\r\n\r\n // tokenId = \"1\";\r\n // console.log(\"token id\", tokenId);\r\n // callLoginApi();\r\n // return;\r\n var yes = t(\"Yes\");\r\n var no = t(\"No\");\r\n confirmAlert({\r\n title: 'Confirm to submit',\r\n message: t(\"userAlreadyLoggedIn\"),\r\n buttons: [\r\n {\r\n label: String(yes),\r\n onClick: () => {\r\n // console.log('Click Yes')\r\n tokenId = \"1\";\r\n // console.log(\"token id\", tokenId);\r\n callLoginApi();\r\n }\r\n },\r\n {\r\n label: String(no),\r\n //onClick: () => console.log('Click No')\r\n }\r\n ],\r\n closeOnEscape: false,\r\n closeOnClickOutside: false,\r\n })\r\n };\r\n\r\n function handleSubmit(e) {\r\n e.preventDefault();\r\n if (!validate()) {\r\n return\r\n }\r\n callLoginApi();\r\n }\r\n\r\n function NotEnableEtrade() {\r\n var msg =\r\n \r\n \r\n {t(\"NotEnableEtrade1\")}\r\n https://webtrade.alramz.ae\r\n {t(\"NotEnableEtrade2\")}\r\n 800 RAMZ (7269) or email us at cs@alramz.ae\r\n \r\n \r\n\r\n\r\n var yes = t(\"Yes\");\r\n var no = t(\"ok\");\r\n confirmAlert({\r\n title: '',\r\n message: msg,\r\n buttons: [\r\n // {\r\n // label: String(yes),\r\n\r\n // },\r\n {\r\n label: String(no),\r\n //onClick: () => console.log('Click No')\r\n }\r\n ],\r\n closeOnEscape: false,\r\n closeOnClickOutside: false,\r\n })\r\n };\r\n\r\n function validate() {\r\n\r\n if (!username) {\r\n Helpers.errorNotify(t(\"Please_enter_username_and_try_again.\"), i18next.language);\r\n return false;\r\n }\r\n\r\n if (!password) {\r\n Helpers.errorNotify(t(\"Please_enter_password_and_try_again.\"), i18next.language);\r\n return false\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function rememberMeFunction() {\r\n // if (isRememberMe) {\r\n // localStorage.setItem(\"password\", password);\r\n // } else {\r\n // Helpers.removeExistingItem(\"password\")\r\n // }\r\n }\r\n const getUserSettings = () => {\r\n\r\n let response = GetSettingWorkSpaceByUserID();\r\n response.then((response) => {\r\n let data = response.data[0]\r\n\r\n if (data.WorkSpaceSettings !== undefined && data.WorkSpaceSettings !== null && data.WorkSpaceSettings !== \"\") {\r\n\r\n var res = JSON.parse(data.WorkSpaceSettings);\r\n localStorage.setItem(\"selectedProfile\", res.selectedProfile);\r\n localStorage.setItem(\"theme\", res.theme)\r\n localStorage.setItem(\"UserSettings\", data.WorkSpaceSettings);\r\n\r\n dispatch({\r\n type: actions.SELECT_PREFERRED_SYMBOL,\r\n payload: {\r\n PreferredSymbol: res.PreferredSymbol\r\n }\r\n })\r\n\r\n dispatch({\r\n type: actions.SELECT_PREFERRED_EXCHANGE,\r\n payload: {\r\n PreferredExchange: res.PreferredExchange\r\n }\r\n })\r\n\r\n dispatch({\r\n type: actions.UPDATE_ENABLE_EXPAND_ROW,\r\n payload: {\r\n EnableExpandRow: res.expandRow === \"Y\" ? true : false\r\n }\r\n })\r\n\r\n dispatch({\r\n type: actions.ENABLE_TRADE_TICKER,\r\n payload: {\r\n EnableTradeTicker: res.tradeTicker === \"Y\" ? true : false\r\n }\r\n })\r\n\r\n dispatch({\r\n type: actions.ENABLE_ROUND_TICKER,\r\n payload: {\r\n EnableRoundTicker: res.RoundTicker === \"Y\" ? true : false\r\n }\r\n })\r\n\r\n // if (i18n.language === \"ar\" && res.lang === \"en\")\r\n // props.changeLanguageNew()\r\n // else if (i18n.language === \"en\" && res.lang === \"ar\")\r\n // props.changeLanguageNew()\r\n // console.log(\"getUserSettings Login\", data);\r\n saveSettings(data);\r\n }\r\n }).catch((error) => {\r\n\r\n console.log(\"error\", error);\r\n });\r\n }\r\n\r\n function saveSettings(data) {\r\n console.log(\"saveSettings\", data)\r\n var res = JSON.parse(data.WorkSpaceSettings);\r\n let settings = {\r\n lang: isLanguageSelectedFromLogin ? LanguageSelectedFromLogin : res.lang,\r\n theme: res.theme,\r\n\r\n expandRow: res.expandRow,\r\n PreferredSymbol: res.PreferredSymbol,\r\n PreferredExchange: res.PreferredExchange,\r\n selectedProfile: res.selectedProfile,\r\n tradeTicker: res.tradeTicker,\r\n RoundTicker: res.RoundTicker\r\n }\r\n //console.log(\"Settings Successfully Updated Login\", res.PreferredExchange);\r\n if (data !== undefined && data !== null) {\r\n let postdata = {\r\n profileUniqueID: data.profileUniqueID,\r\n ProfileID: data.ProfileID,\r\n ProfileName: data.ProfileName,\r\n ProfileNameAr: data.ProfileNameAr,\r\n ProfileSettings: data.ProfileSettings,\r\n WorkSpaceSettings: JSON.stringify(settings),\r\n WebCode: localStorage.getItem(\"WebCode\")\r\n };\r\n\r\n //console.log(\"Settings Successfully Updated Login postdata\", postdata);\r\n var updateWorkSpaceSettings = utils.UpdateUserProfileSettings(postdata);\r\n updateWorkSpaceSettings.then((response) => {\r\n\r\n if (response.data) {\r\n //console.log(\"Settings Successfully Updated\");\r\n // this.props.setUserSettings(settings)\r\n localStorage.setItem(\"UserSettings\", JSON.stringify(settings));\r\n\r\n if (i18n.language === \"ar\" && settings.lang == \"en\")\r\n props.changeLanguageNew()\r\n else if (i18n.language === \"en\" && settings.lang === \"ar\")\r\n props.changeLanguageNew()\r\n\r\n } else {\r\n console.log(\"Unsuccessfull Update Settings, please contact Administrator\")\r\n }\r\n })\r\n .finally(() => {\r\n if (abortController) abortController.abort();\r\n })\r\n .catch((error) => {\r\n console.log(\"Unsuccessfull Update Settings, please contact Administrator\")\r\n if (abortController) abortController.abort();\r\n });\r\n }\r\n }\r\n\r\n const GetDeviceConfigs = () => {\r\n\r\n let getProfilesByUserIdResponse = utils.GetDeviceConfigs();\r\n getProfilesByUserIdResponse\r\n .then(response => response.data)\r\n .then(data => {\r\n localStorage.setItem(\"ForgotPasswordMethod\", data.ForgotPasswordMethod);\r\n localStorage.setItem(\"DeviceConfigs\", JSON.stringify(data));\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n const callLoginApi = () => {\r\n setVisible(true);\r\n setPasswordDisabled(true);\r\n\r\n let options = { withCredentials: true };\r\n var response = authenticate(username, password, \"\", \"\", \"185.99.34.25\", tokenId, \"\", \"\", \"\", \"\", \"N\", options);\r\n // console.log(response);\r\n response.then((response) => {\r\n //\r\n setVisible(false);\r\n if (!keyboardVisible)\r\n setPasswordDisabled(false);\r\n //console.log(\"#Login rresponse\", response.data);\r\n //console.log(response);\r\n var status = response.data[\"Status\"]\r\n let isFirstLoggedIn = response.data[\"IsFirstLogin\"];\r\n // if (isFirstLoggedIn === \"Y\") {\r\n\r\n // localStorage.setItem(\"WebCode\", response.data[\"WebCode\"]);\r\n // setRedirect(AppUrls.changePassword);\r\n // return;\r\n // }\r\n\r\n if (status === null) {\r\n // errorNotify(t(\"somethingwentwrong\"));\r\n Helpers.errorNotify(t(\"servicesIsDownMSG\"), i18next.language);\r\n return;\r\n }\r\n\r\n switch (status) {\r\n case LoginStatus.Success:\r\n\r\n if (isFirstLoggedIn === \"Y\") {\r\n localStorage.setItem(\"loginFirst\", true);\r\n localStorage.setItem(\"WebCode\", response.data[\"WebCode\"]);\r\n localStorage.setItem(\"ExpiredDocument\", response.data[\"isExpiredDocument\"]);\r\n localStorage.setItem(\"isIndividual\", response.data[\"isIndividual\"]);\r\n localStorage.setItem(\"passwordToOTp\", encryptedString(password));\r\n localStorage.setItem(\"validValue\", \"\");\r\n localStorage.setItem(\"username\", username);\r\n localStorage.setItem(\"user\", JSON.stringify(response.data));\r\n localStorage.setItem(\"IsNormalLogin\", true);\r\n localStorage.setItem(\"isTermsAndConditions\", response.data[\"isTermsAndConditions\"]);\r\n getUserSettings();\r\n setRedirect(AppUrls.changePassword);\r\n return;\r\n } else {\r\n localStorage.setItem(\"loginFirst\", true);\r\n Helpers.successNotify(t(\"loggedinsuccessfully\"), i18next.language);\r\n localStorage.setItem(\"user\", JSON.stringify(response.data));\r\n localStorage.setItem(\"username\", username);\r\n rememberMeFunction();\r\n localStorage.setItem(\"WebCode\", response.data[\"WebCode\"]);\r\n localStorage.setItem(\"ExpiredDocument\", response.data[\"isExpiredDocument\"]);\r\n localStorage.setItem(\"isIndividual\", response.data[\"isIndividual\"]);\r\n localStorage.setItem(\"isRememberMe\", \"\" + isRememberMe);\r\n localStorage.setItem(\"IsNormalLogin\", true);\r\n localStorage.setItem(\"isTermsAndConditions\", response.data[\"isTermsAndConditions\"]);\r\n getUserSettings();\r\n\r\n if (response.data[\"isTermsAndConditions\"] === \"N\" && localStorage.getItem(Constants.localStorageConstants.company_name).toUpperCase() === \"IFS\") {\r\n setRedirect(AppUrls.TermsAndConditions);\r\n }\r\n else {\r\n setRedirect(AppUrls.trading);\r\n }\r\n }\r\n\r\n break;\r\n case LoginStatus.InvalidLogin:\r\n Helpers.errorNotify(t(\"invalidusernamepassword\"), i18next.language);\r\n break;\r\n case LoginStatus.invalidTokenID:\r\n Helpers.errorNotify(t(\"invalidToken\"), i18next.language);\r\n break;\r\n case LoginStatus.TokenSent:\r\n Helpers.successNotify(t(\"tokenSent\"), i18next.language);\r\n localStorage.setItem(\"user\", JSON.stringify(response.data));\r\n localStorage.setItem(\"username\", username);\r\n localStorage.setItem(\"passwordToOTp\", encryptedString(password));\r\n rememberMeFunction();\r\n localStorage.setItem(\"ipAddress\", \"185.99.34.25\");\r\n localStorage.setItem(\"isRememberMe\", isRememberMe);\r\n localStorage.setItem(\"isFirstLoggedIn\", isFirstLoggedIn);\r\n localStorage.setItem(\"ExpiredDocument\", response.data[\"isExpiredDocument\"]);\r\n localStorage.setItem(\"isIndividual\", response.data[\"isIndividual\"]);\r\n localStorage.setItem(\"IsNormalLogin\", true);\r\n localStorage.setItem(\"isTermsAndConditions\", response.data[\"isTermsAndConditions\"]);\r\n setRedirect(AppUrls.otp);\r\n break;\r\n case LoginStatus.TokenExpire:\r\n Helpers.errorNotify(t(\"tokenExpire\"), i18next.language);\r\n break;\r\n case LoginStatus.noPermetions:\r\n Helpers.errorNotify(t(\"nopermissions\"), i18next.language);\r\n break;\r\n case LoginStatus.ExceedNoTrials:\r\n Helpers.errorNotify(t(\"userLocked\"), i18next.language);\r\n break;\r\n case LoginStatus.AlreadyLoggedIn: //Case: Already logged in\r\n alreadyLoggedInFunc();\r\n break;\r\n case LoginStatus.NotAgreeTermCondtion:\r\n Helpers.errorNotify(t(\"notAgreeTermCondtion\"), i18next.language);\r\n break;\r\n case LoginStatus.UnknowError:\r\n Helpers.errorNotify(t(\"somethingwentwrong\"), i18next.language);\r\n break;\r\n case LoginStatus.EnableEtrade:\r\n NotEnableEtrade();\r\n break;\r\n default:\r\n var message = t(\"somethingwentwrong\");\r\n if (response.data[\"ErrorMsg\"])\r\n Helpers.errorNotify(message, i18next.language);\r\n break;\r\n }\r\n })\r\n .catch((error) => {\r\n setVisible(false);\r\n if (!keyboardVisible)\r\n setPasswordDisabled(false);\r\n console.log(\"error\", error);\r\n Helpers.errorNotify(error.message, i18next.language);\r\n });\r\n }\r\n\r\n var hideLoader = \"\";\r\n if (visible) {\r\n hideLoader = \"\";\r\n } else {\r\n hideLoader = \"hide-loader\";\r\n }\r\n\r\n function signupBtnClicked() {\r\n setRedirect(AppUrls.signUp);\r\n }\r\n \r\n if (redirect !== null) {\r\n\r\n if (localStorage.getItem(Constants.localStorageConstants.company_name).toUpperCase() === \"HORIZON\") {\r\n return ;\r\n }\r\n else\r\n return ;\r\n } else {\r\n if (localStorage.getItem(Constants.localStorageConstants.company_name).toUpperCase() === \"HORIZON\") {\r\n return ;\r\n }\r\n }\r\n\r\n\r\n let requiredClass = \"\";\r\n\r\n let localizationBtnClass = \"mt-2 mr-2\";\r\n let localizationBtnFloat = \"right\";\r\n let paddingleft = \"70px \";\r\n let paddingRight = \"0px\";\r\n let paddingleft2 = \"63px \";\r\n let paddingRight2 = \"0px\";\r\n let background = \"linear-gradient(310deg, #ebe3cf, #878787 48%, white 48%, #faf6f6 52%, #f3b21f 52%)\";\r\n if (i18n.language === \"ar\") {\r\n localizationBtnClass = \"mt-2 ml-2\";\r\n localizationBtnFloat = \"left\";\r\n paddingleft = \"0px \";\r\n paddingRight = \"48px\";\r\n background = \"linear-gradient(310deg, #f3b21f, #f3b21f 60%, white 48%, #faf6f6 64%, #878787 22%)\";\r\n paddingleft2 = \"0px \";\r\n paddingRight2 = \"11px\";\r\n }\r\n\r\n let customLayout = {\r\n default: [\r\n \"` 1 2 3 4 5 6 7 8 9 0 - = {bksp}\",\r\n \"{tab} q w e r t y u i o p [ ] \\\\\",\r\n \"{lock} a s d f g h j k l ; ' {enter}\",\r\n \"{shift} z x c v b n m , . / {shift}\",\r\n \"{ar} @ {space}\"\r\n ],\r\n shift: [\r\n \"~ ! @ # $ % ^ & * ( ) _ + {bksp}\",\r\n \"{tab} Q W E R T Y U I O P { } |\",\r\n '{lock} A S D F G H J K L : \" {enter}',\r\n \"{shift} Z X C V B N M < > ? {shift}\",\r\n \"{ar} @ {space}\"\r\n ],\r\n };\r\n let arabicLayoutCustom = {\r\n default: [\r\n \"ذ 1 2 3 4 5 6 7 8 9 0 - = {bksp}\",\r\n \"{tab} ض ص ث ق ف غ ع ه خ ح ج د \\\\\",\r\n \"{lock} ش س ي ب ل ا ت ن م ك ط {enter}\",\r\n \"{shift} ئ ء ؤ ر لا ى ة و ز ظ {shift}\",\r\n \"{en} @ {space}\"],\r\n shift: [\r\n \"ّ ! @ # $ % ^ & * ) ( _ + {bksp}\",\r\n \"{tab} َ ً ُ ٌ لإ إ ‘ ÷ × ؛ < > |\",\r\n '{lock} ِ ٍ ] [ لأ أ ـ ، / : \" {enter}',\r\n \"{shift} ~ ْ } { لآ آ ’ , . ؟ {shift}\",\r\n \"{en} @ {space}\"\r\n ]\r\n };\r\n\r\n if (keyboardLanguage === \"ar\") {\r\n customLayout = arabicLayoutCustom;\r\n }\r\n\r\n let display = {\r\n '{ar}': 'ar',\r\n '{en}': 'en',\r\n '{tab}': 'tab',\r\n '{bksp}': 'backspace',\r\n '{lock}': 'caps',\r\n '{shift}': 'shift',\r\n '{space}': ' ',\r\n '{enter}': '< enter'\r\n }\r\n\r\n let keyboardTheme = \"hg-theme-default\";\r\n if (localStorage.getItem(\"theme\") !== null) {\r\n if (localStorage.getItem(\"theme\") === \"dark\")\r\n keyboardTheme = \"hg-theme-custom\";\r\n }\r\n\r\n let keyboardVisibleDisplay = \"none\";\r\n\r\n if (keyboardVisible) {\r\n keyboardVisibleDisplay = \"block\";\r\n paddingleft = \"0px \";\r\n paddingRight = \"0px \";\r\n background = \"linear-gradient(270deg, #ebe3cf, #878787 48%, white 48%, #faf6f6 52%, #f3b21f 52%)\";\r\n }\r\n // \r\n if (Helpers.getCompanyName() === \"UNITED\") {\r\n background = background;\r\n }\r\n else {\r\n background = \"none\"\r\n\r\n }\r\n\r\n\r\n return (\r\n
\r\n
handleSubmit(e)}>\r\n \r\n
\r\n
\r\n setUsername(e.target.value)}\r\n disabled={visible}\r\n autoComplete=\"new-password\"\r\n />\r\n\r\n {\r\n localStorage.getItem(Constants.localStorageConstants.company_name).toUpperCase() === \"GLOBAL\" || localStorage.getItem(Constants.localStorageConstants.company_name).toUpperCase() === \"UNITED\" ?\r\n
\r\n {\r\n event.preventDefault();\r\n\r\n setRedirect(AppUrls.ForgotUsername)\r\n\r\n }}\r\n >\r\n {t(\"ForgotUsername\")}\r\n \r\n\r\n
: null\r\n }\r\n\r\n
\r\n
\r\n {\r\n const input = e.target.value;\r\n setPassword(input);\r\n if (keyboardVisible)\r\n keyboard.current.setInput(input);\r\n }}\r\n disabled={passwordDisabled}\r\n autoComplete=\"new-password\"\r\n />\r\n {\r\n e.preventDefault();\r\n if (passwordType === \"password\") {\r\n setPasswordType(\"text\")\r\n } else {\r\n setPasswordType(\"password\")\r\n }\r\n }}\r\n >\r\n {\r\n e.preventDefault();\r\n setKeyboardVisible(!keyboardVisible);\r\n setPasswordDisabled(!passwordDisabled);\r\n keyboard.current.setInput(password);\r\n }}\r\n />\r\n
\r\n
\r\n (keyboard.current = r)}\r\n layoutName={layout}\r\n onChange={onChange}\r\n onKeyPress={onKeyPress}\r\n theme={keyboardTheme}\r\n layout={customLayout}\r\n display={display}\r\n\r\n /* rtl={true} */\r\n />\r\n
\r\n
\r\n \r\n
\r\n setIsRememberMe(!isRememberMe)}\r\n disabled={visible}\r\n\r\n />\r\n {t(\"RememberMe\")}\r\n
\r\n\r\n
\r\n {\r\n event.preventDefault();\r\n if (!visible) {\r\n setRedirect(AppUrls.forgetPassword)\r\n };\r\n }}\r\n >\r\n {t(\"ForgotPassword\")}\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n {t(\"KYCLink\")}\r\n \r\n
\r\n\r\n
\r\n handleSubmit(e)}\r\n disabled={visible}\r\n type='submit'\r\n >\r\n {t(\"Login\")}\r\n \r\n {/* \r\n {t(\"Signup\")}\r\n */}\r\n
\r\n {localStorage.getItem(Constants.localStorageConstants.EnableIPOQuickSell).toUpperCase() === \"TRUE\" ?\r\n
\r\n setRedirect(AppUrls.SellIPOShares)}\r\n disabled={visible}\r\n type='submit'\r\n >\r\n {t(\"IPO_Authintication\")}\r\n \r\n {/* \r\n {t(\"Signup\")}\r\n */}\r\n
\r\n : null}\r\n\r\n\r\n
\r\n changeLanguageNew(e)}\r\n disabled={visible}\r\n >\r\n \r\n
{t(\"localizationLanguage\")}
\r\n \r\n
\r\n {/* {localStorage.getItem(Constants.localStorageConstants.EnableIPOQuickSell).toUpperCase() === \"TRUE\" ?\r\n
\r\n {\r\n event.preventDefault();\r\n setRedirect(AppUrls.SellIPOShares)\r\n }}\r\n >\r\n {t(\"IPO_Authintication\")}\r\n \r\n
\r\n : null} */}\r\n \r\n {localStorage.getItem(Constants.localStorageConstants.company_name) === \"ALRAMZ\" ?\r\n \r\n \r\n {t(\"Signup\")}\r\n \r\n : null}\r\n
\r\n \r\n
\r\n
\r\n

عزيزي العميل\r\n
الرجاء إستخدام الرابط أدناه للتداول في الأسواق العالمية

\r\n
\r\n
\r\n {window.innerWidth > 2500 ?\r\n

Dear Client\r\n
Click the Below Link to TRADE INTERNATIONAL MARKETS

:\r\n

Dear Client\r\n
Click the Below Link to TRADE
INTERNATIONAL MARKETS

\r\n }\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n {localStorage.getItem(Constants.localStorageConstants.company_name) === \"ADCB\" ?\r\n
\r\n

{t(\"loginFooter1\")}

\r\n
{t(\"loginFooter2\")}
\r\n

{t(\"loginFooter3\")}

\r\n
{t(\"loginFooter4\")}
\r\n

{t(\"loginFooter5\")}

\r\n
: null}\r\n
\r\n \r\n
\r\n \r\n );\r\n}\r\n\r\nexport default Login;\r\n","export default \"data:image/png;base64,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\"","import { withTranslation } from 'react-i18next';\r\nimport React from \"react\";\r\n\r\nclass OtpPopup extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n otp: \"\"\r\n }\r\n }\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n
Enter OTP
\r\n
\r\n {\r\n this.props.onClose(e);\r\n }}>X\r\n
\r\n
\r\n \r\n {\r\n e.preventDefault();\r\n this.setState({ otp: e.target.value });\r\n }}\r\n />\r\n
\r\n {\r\n this.props.callRegistrationsOTP(this.props.onClose, this.state.otp);\r\n }}\r\n >\r\n Submit OTP\r\n \r\n\r\n this.props.onClose(e)}>{this.props.t(\"cancel\")}\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withTranslation()(OtpPopup)","import React, { useState, useRef, useEffect } from \"react\";\r\nimport { InputMask } from 'primereact/inputmask';\r\nimport \"../LoginSignup/LoginSignup.css\";\r\n\r\nfunction InputMSX(props) {\r\n const [maskVal, setmaskVal] = useState(\"\");\r\n\r\n const convertString = (input) => {\r\n // Remove underscores and leading zeros\r\n const cleanedInput = input.replace(/_/g, '').replace(/^0+/, '');\r\n\r\n // Calculate the number of zeros to add\r\n const zerosToAdd = Math.max(8 - cleanedInput.length, 0);\r\n\r\n // Create the final output by adding zeros and the cleaned input\r\n const output = '0'.repeat(zerosToAdd) + cleanedInput;\r\n\r\n return output;\r\n }\r\n return (\r\n
\r\n {\r\n setmaskVal(event.target.value);\r\n // console.log(\"maskval :\", maskVal);\r\n }}\r\n onBlur={(event) => {\r\n let r = maskVal;\r\n //console.log(\"maskval blur :\", r);\r\n let converted = convertString(r);\r\n /// console.log(\"converted :\", converted);\r\n let zerosCount = r.length - converted.length;\r\n // console.log(\"zerosCount :\", zerosCount);\r\n let zeros = \"\";\r\n for (let i = 0; i < zerosCount; i++) {\r\n zeros += \"0\";\r\n }\r\n // console.log(\"zeros :\", zeros);\r\n\r\n let splitted = converted.split(\"D\");\r\n // console.log(\"splitted :\", splitted);\r\n let newSplit = splitted[0] + \"D\" + zeros + splitted[1];\r\n if (newSplit === \"00000000Dundefined\") {\r\n newSplit = \"\"\r\n }\r\n //console.log(\"newsplit :\", newSplit);\r\n\r\n props.onChange(newSplit);\r\n }}\r\n mask={props.mask}\r\n placeholder={props.placeholder}\r\n onComplete={(event) => {\r\n let r = maskVal;\r\n // console.log(\"maskval blur :\", r);\r\n let converted = convertString(r);\r\n // console.log(\"converted :\", converted);\r\n let zerosCount = r.length - converted.length;\r\n // console.log(\"zerosCount :\", zerosCount);\r\n let zeros = \"\";\r\n for (let i = 0; i < zerosCount; i++) {\r\n zeros += \"0\";\r\n }\r\n //console.log(\"zeros :\", zeros);\r\n\r\n let splitted = converted.split(\"D\");\r\n //console.log(\"splitted :\", splitted);\r\n let newSplit = splitted[0] + \"D\" + zeros + splitted[1];\r\n if (newSplit === \"00000000Dundefined\") {\r\n newSplit = \"\"\r\n }\r\n console.log(\"newsplit :\", newSplit);\r\n\r\n props.onChange(newSplit);\r\n }}\r\n />\r\n
\r\n );\r\n\r\n}\r\n\r\nexport default InputMSX;","import React, { useState, useRef, useEffect } from \"react\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport \"./LoginSignup.css\";\r\nimport * as utils from '../../global/utils';\r\nimport * as Helpers from '../../global/Helpers';\r\nimport { toast } from \"react-toastify\";\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\nimport i18next from 'i18next';\r\nimport { confirmAlert } from 'react-confirm-alert'; // Import\r\nimport 'react-confirm-alert/src/react-confirm-alert.css'; // Import css\r\nimport OtpPopup from '../popups/OtpPopup/OtpPopup';\r\nimport * as Constants from \"../../constants/Constants\";\r\nimport * as actions from \"../../store/actionTypes\";\r\nimport * as AppUrls from \"../../constants/AppUrls\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { LoginStatus } from \"../../constants/Constants\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { Display } from \"react-bootstrap-icons\";\r\nimport InputMSX from '../InputMSX/InputMSX'\r\n\r\nfunction SellIPOShares(props) {\r\n const { t } = useTranslation();\r\n const dispatch = useDispatch();\r\n\r\n let language = localStorage.getItem(\"language\");\r\n if (language === null) {\r\n language = \"en\"\r\n }\r\n const [idNumber, setidNumber] = useState();\r\n const [mobileNumber, setmobileNumber] = useState();\r\n const [visible, setVisible] = useState(false);\r\n const [redirect, setRedirect] = useState(null);\r\n const [OmanAccBfx, setOmanAccBfx] = useState(\"\");\r\n const [OmanAccAfx, setOmanAccAfx] = useState(\"\");\r\n const [LanguageSelectedFromLogin, setLanguageSelected] = useState(language);\r\n const [isLanguageSelectedFromLogin, setIsLanguageSelectedFromLogin] = useState(false);\r\n\r\n\r\n\r\n\r\n useEffect(() => {\r\n \r\n var DeviceConfigs = JSON.parse(localStorage.getItem(\"DeviceConfigs\"));\r\n if (DeviceConfigs !== null && DeviceConfigs !== undefined) {\r\n setOmanAccBfx(DeviceConfigs.OmanAccBfx)\r\n setOmanAccAfx(DeviceConfigs.OmanAccAfx)\r\n\r\n\r\n } else {\r\n GetDeviceConfigs();\r\n }\r\n }, [])\r\n\r\n\r\n function handleSubmit(e) {\r\n e.preventDefault();\r\n if (!validate()) {\r\n return\r\n }\r\n callUserAuthinticationIPOQuickSell();\r\n }\r\n\r\n function callUserAuthinticationIPOQuickSell() {\r\n\r\n setVisible(true);\r\n\r\n let response = utils.UserAuthinticationIPOQuickSell(\"IOS\", \"192.168.26.1\", \"\", idNumber, mobileNumber, \"\", \"\")\r\n\r\n response.then((response) => {\r\n\r\n setVisible(false);\r\n console.log(\"UserAuthinticationIPOQuickSell: \", response);\r\n\r\n // let status = response.data[\"Status\"]\r\n // switch (status) {\r\n // case Constants.LoginStatus.Success:\r\n // localStorage.setItem(\"username\", response.data[\"UserName\"]);\r\n // localStorage.setItem(\"WebCode\", response.data[\"WebCode\"]);\r\n // otpPrompt();\r\n // break;\r\n // case \"-1\":\r\n // Helpers.errorNotify(t(\"InvalidNINorMobileNo\"), i18next.language)\r\n // break;\r\n // default:\r\n // Helpers.errorNotify(\"error has occured\", i18next.language)\r\n // // Helpers.errorNotify(response.data[\"ErrorMsg\"], i18next.language)\r\n // break;\r\n // }\r\n\r\n\r\n var status = response.data[\"Status\"]\r\n let isFirstLoggedIn = response.data[\"IsFirstLogin\"];\r\n // if (isFirstLoggedIn === \"Y\") {\r\n\r\n // localStorage.setItem(\"WebCode\", response.data[\"WebCode\"]);\r\n // setRedirect(AppUrls.changePassword);\r\n // return;\r\n // }\r\n\r\n if (status === null) {\r\n // errorNotify(t(\"somethingwentwrong\"));\r\n Helpers.errorNotify(t(\"servicesIsDownMSG\"), i18next.language);\r\n return;\r\n }\r\n\r\n switch (status) {\r\n case LoginStatus.Success:\r\n\r\n if (isFirstLoggedIn === \"Y\") {\r\n localStorage.setItem(\"loginFirst\", true);\r\n localStorage.setItem(\"WebCode\", response.data[\"WebCode\"]);\r\n localStorage.setItem(\"ExpiredDocument\", response.data[\"isExpiredDocument\"]);\r\n localStorage.setItem(\"isIndividual\", response.data[\"isIndividual\"]);\r\n localStorage.setItem(\"passwordToOTp\", \"false\");\r\n localStorage.setItem(\"validValue\", \"\");\r\n localStorage.setItem(\"username\", response.data[\"UserName\"]);\r\n localStorage.setItem(\"IsNormalLogin\", false);\r\n localStorage.setItem(\"isTermsAndConditions\", response.data[\"isTermsAndConditions\"]);\r\n\r\n getUserSettings();\r\n // setRedirect(AppUrls.changePassword);\r\n\r\n return;\r\n } else {\r\n localStorage.setItem(\"loginFirst\", true);\r\n Helpers.successNotify(t(\"loggedinsuccessfully\"), i18next.language);\r\n localStorage.setItem(\"user\", JSON.stringify(response.data));\r\n localStorage.setItem(\"username\", response.data[\"UserName\"]);\r\n localStorage.setItem(\"WebCode\", response.data[\"WebCode\"]);\r\n localStorage.setItem(\"ExpiredDocument\", response.data[\"isExpiredDocument\"]);\r\n localStorage.setItem(\"isIndividual\", response.data[\"isIndividual\"]);\r\n localStorage.setItem(\"IsNormalLogin\", false);\r\n // localStorage.setItem(\"isRememberMe\", \"\" + isRememberMe);\r\n getUserSettings();\r\n localStorage.setItem(\"isTermsAndConditions\", response.data[\"isTermsAndConditions\"]);\r\n getUserSettings();\r\n\r\n if (response.data[\"isTermsAndConditions\"] === \"N\" && localStorage.getItem(Constants.localStorageConstants.Region).toUpperCase() === \"OMAN\") {\r\n setRedirect(AppUrls.TermsAndConditions);\r\n }\r\n else {\r\n setRedirect(AppUrls.trading);\r\n }\r\n\r\n }\r\n\r\n break;\r\n case LoginStatus.InvalidLogin:\r\n Helpers.errorNotify(t(\"InvalidNINorMobileNo\"), i18next.language);\r\n break;\r\n case LoginStatus.invalidTokenID:\r\n Helpers.errorNotify(t(\"invalidToken\"), i18next.language);\r\n break;\r\n case LoginStatus.TokenSent:\r\n Helpers.successNotify(t(\"tokenSent\"), i18next.language);\r\n localStorage.setItem(\"user\", JSON.stringify(response.data));\r\n localStorage.setItem(\"username\", response.data[\"UserName\"]);\r\n localStorage.setItem(\"passwordToOTp\", \"false\");\r\n localStorage.setItem(\"ipAddress\", \"185.99.34.25\");\r\n localStorage.setItem(\"isFirstLoggedIn\", isFirstLoggedIn);\r\n localStorage.setItem(\"ExpiredDocument\", response.data[\"isExpiredDocument\"]);\r\n localStorage.setItem(\"isIndividual\", response.data[\"isIndividual\"]);\r\n localStorage.setItem(\"IsNormalLogin\", false);\r\n localStorage.setItem(\"isTermsAndConditions\", response.data[\"isTermsAndConditions\"]);\r\n setRedirect(AppUrls.otp);\r\n break;\r\n case LoginStatus.TokenExpire:\r\n Helpers.errorNotify(t(\"tokenExpire\"), i18next.language);\r\n break;\r\n case LoginStatus.noPermetions:\r\n Helpers.errorNotify(t(\"nopermissions\"), i18next.language);\r\n break;\r\n case LoginStatus.ExceedNoTrials:\r\n Helpers.errorNotify(t(\"userLocked\"), i18next.language);\r\n break;\r\n // case LoginStatus.AlreadyLoggedIn: //Case: Already logged in\r\n // alreadyLoggedInFunc();\r\n // break;\r\n case LoginStatus.NotAgreeTermCondtion:\r\n Helpers.errorNotify(t(\"notAgreeTermCondtion\"), i18next.language);\r\n break;\r\n case LoginStatus.UnknowError:\r\n Helpers.errorNotify(t(\"somethingwentwrong\"), i18next.language);\r\n break;\r\n case LoginStatus.IPOQuickSell:\r\n Helpers.errorNotify(t(\"pleaseContactAdminstrator\"), i18next.language);\r\n break;\r\n\r\n default:\r\n var message = t(\"somethingwentwrong\");\r\n if (response.data[\"ErrorMsg\"])\r\n Helpers.errorNotify(message, i18next.language);\r\n break;\r\n }\r\n })\r\n .catch((error) => {\r\n setVisible(false);\r\n console.log(\"error\", error);\r\n Helpers.errorNotify(error.message, i18next.language);\r\n });\r\n }\r\n\r\n if (redirect !== null) {\r\n return ;\r\n }\r\n\r\n\r\n function validate() {\r\n\r\n if (idNumber === \"\" || idNumber === null || idNumber === undefined) {\r\n Helpers.errorNotify(t(\"Trading_Number_is_required\"), i18next.language)\r\n return false;\r\n }\r\n\r\n if (mobileNumber === \"\" || mobileNumber === null || mobileNumber === undefined) {\r\n Helpers.errorNotify(t(\"mobileRequired\"), i18next.language)\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n const getUserSettings = () => {\r\n\r\n let response = utils.GetSettingWorkSpaceByUserID();\r\n response.then((response) => {\r\n let data = response.data[0]\r\n\r\n if (data.WorkSpaceSettings !== undefined && data.WorkSpaceSettings !== null && data.WorkSpaceSettings !== \"\") {\r\n \r\n var res = JSON.parse(data.WorkSpaceSettings);\r\n localStorage.setItem(\"selectedProfile\", res.selectedProfile);\r\n localStorage.setItem(\"theme\", res.theme)\r\n localStorage.setItem(\"UserSettings\", data.WorkSpaceSettings);\r\n\r\n dispatch({\r\n type: actions.SELECT_PREFERRED_SYMBOL,\r\n payload: {\r\n PreferredSymbol: res.PreferredSymbol\r\n }\r\n })\r\n\r\n dispatch({\r\n type: actions.SELECT_PREFERRED_EXCHANGE,\r\n payload: {\r\n PreferredExchange: res.PreferredExchange\r\n }\r\n })\r\n\r\n dispatch({\r\n type: actions.UPDATE_ENABLE_EXPAND_ROW,\r\n payload: {\r\n EnableExpandRow: res.expandRow === \"Y\" ? true : false\r\n }\r\n })\r\n\r\n dispatch({\r\n type: actions.ENABLE_TRADE_TICKER,\r\n payload: {\r\n EnableTradeTicker: res.tradeTicker === \"Y\" ? true : false\r\n }\r\n })\r\n\r\n dispatch({\r\n type: actions.ENABLE_ROUND_TICKER,\r\n payload: {\r\n EnableRoundTicker: res.RoundTicker === \"Y\" ? true : false\r\n }\r\n })\r\n\r\n\r\n saveSettings(data);\r\n }\r\n }).catch((error) => {\r\n\r\n console.log(\"error\", error);\r\n });\r\n }\r\n\r\n function saveSettings(data) {\r\n var res = JSON.parse(data.WorkSpaceSettings);\r\n let LanguageSelectedFromLogin = localStorage.getItem(\r\n \"LanguageSelectedFromLogin\"\r\n );\r\n let isLanguageSelectedFromLogin = localStorage.getItem(\r\n \"isLanguageSelectedFromLogin\"\r\n );\r\n var lang = \"\";\r\n if (isLanguageSelectedFromLogin === \"true\") lang = LanguageSelectedFromLogin;\r\n else lang = res.lang;\r\n let settings = {\r\n lang: lang,\r\n theme: res.theme,\r\n //theme: '',\r\n expandRow: res.expandRow,\r\n PreferredSymbol: res.PreferredSymbol,\r\n PreferredExchange: res.PreferredExchange,\r\n selectedProfile: res.selectedProfile,\r\n tradeTicker: res.tradeTicker,\r\n RoundTicker: res.RoundTicker,\r\n };\r\n\r\n if (data !== undefined && data !== null) {\r\n let postdata = {\r\n profileUniqueID: data.profileUniqueID,\r\n ProfileID: data.ProfileID,\r\n ProfileName: data.ProfileName,\r\n ProfileNameAr: data.ProfileNameAr,\r\n ProfileSettings: data.ProfileSettings,\r\n WorkSpaceSettings: JSON.stringify(settings),\r\n WebCode: localStorage.getItem(\"WebCode\"),\r\n };\r\n var updateWorkSpaceSettings = utils.UpdateUserProfileSettings(postdata);\r\n updateWorkSpaceSettings\r\n .then((response) => {\r\n if (response.data) {\r\n // console.log(\"Settings Successfully Updated\");\r\n // this.props.setUserSettings(settings)\r\n localStorage.setItem(\"UserSettings\", JSON.stringify(settings));\r\n\r\n if (i18next.language === \"ar\" && settings.lang === \"en\")\r\n props.changeLanguageNew();\r\n else if (i18next.language === \"en\" && settings.lang === \"ar\")\r\n props.changeLanguageNew();\r\n } else {\r\n console.log(\r\n \"Unsuccessfull Update Settings, please contact Administrator\"\r\n );\r\n }\r\n })\r\n .finally(() => {\r\n\r\n })\r\n .catch((error) => {\r\n console.log(\r\n \"Unsuccessfull Update Settings, please contact Administrator\"\r\n );\r\n\r\n });\r\n }\r\n }\r\n\r\n const GetDeviceConfigs = () => {\r\n\r\n let getProfilesByUserIdResponse = utils.GetDeviceConfigs();\r\n getProfilesByUserIdResponse\r\n .then(response => response.data)\r\n .then(data => {\r\n localStorage.setItem(\"ForgotPasswordMethod\", data.ForgotPasswordMethod);\r\n localStorage.setItem(\"DeviceConfigs\", JSON.stringify(data));\r\n setOmanAccBfx(data.OmanAccBfx)\r\n setOmanAccAfx(data.OmanAccAfx)\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n const handleChange1 = (event) => {\r\n let inputValue = event.target.value;\r\n inputValue = inputValue.replace(/[^0-9]/g, '').substring(0, 9); \r\n setidNumber(inputValue)\r\n\r\n };\r\n\r\n const handleBlur = () => {\r\n if (idNumber !== '' && idNumber !== undefined && idNumber !== null) {\r\n const formattedValue = OmanAccBfx + idNumber.padStart(9, '0') + OmanAccAfx ;\r\n setidNumber(formattedValue) \r\n } \r\n };\r\n\r\n function changeLanguageNew(e) {\r\n\r\n e.preventDefault();\r\n var newlang = \"\";\r\n if (LanguageSelectedFromLogin === \"en\") {\r\n newlang = \"ar\";\r\n } else {\r\n newlang = \"en\";\r\n }\r\n setLanguageSelected(newlang);\r\n setIsLanguageSelectedFromLogin(true);\r\n localStorage.removeItem(\"LanguageSelectedFromLogin\");\r\n localStorage.removeItem(\"isLanguageSelectedFromLogin\");\r\n localStorage.setItem(\"LanguageSelectedFromLogin\", newlang);\r\n localStorage.setItem(\"isLanguageSelectedFromLogin\", true);\r\n props.changeLanguageNew();\r\n\r\n\r\n\r\n };\r\n\r\n let localizationBtnClass = \"mt-2 mr-2\";\r\n let localizationBtnFloat = \"right\";\r\n if (i18next.language === \"ar\") {\r\n localizationBtnClass = \"mt-2 ml-2\";\r\n localizationBtnFloat = \"left\";\r\n \r\n }\r\n \r\n return (\r\n <>\r\n {/* setidNumber(e.target.value)}\r\n /> */}\r\n {\r\n Helpers.getIsIPad() || (localStorage.getItem(Constants.localStorageConstants.company_name) === \"HORIZON\" )? :\r\n setidNumber(e)}\r\n mask={OmanAccBfx + \"999999999\" + OmanAccAfx}\r\n />\r\n }\r\n setmobileNumber(e.target.value)}\r\n />\r\n handleSubmit(e)}\r\n type='submit'\r\n >\r\n {t(\"Login\")}\r\n \r\n\r\n {\r\n event.preventDefault();\r\n setRedirect(AppUrls.login);\r\n // localStorage.getItem(Constants.localStorageConstants.company_name) === \"CIBC\" ? setRedirect(AppUrls.loginCIBC) : setRedirect(AppUrls.login);\r\n\r\n }}\r\n >\r\n {t(\"cancelForgotPassword\")}\r\n \r\n\r\n
\r\n changeLanguageNew(e)}\r\n disabled={visible}\r\n >\r\n \r\n
{t(\"localizationLanguage\")}
\r\n \r\n
\r\n\r\n \r\n )\r\n}\r\n\r\nexport default SellIPOShares\r\n","import React, { useEffect, useState } from 'react';\r\nimport './LoginSignup.css'\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Redirect } from \"react-router-dom\";\r\nimport * as AppUrls from \"../../constants/AppUrls\";\r\nimport * as Constants from \"../../constants/Constants\";\r\n\r\nimport * as utils from '../../global/utils';\r\nimport * as Helpers from '../../global/Helpers';\r\nimport { toast } from \"react-toastify\";\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\n\r\n//loader\r\nimport \"react-loader-spinner/dist/loader/css/react-spinner-loader.css\";\r\nimport Loader from 'react-loader-spinner';\r\n\r\nimport { confirmAlert } from 'react-confirm-alert'; // Import\r\nimport 'react-confirm-alert/src/react-confirm-alert.css'; // Import css\r\nimport OtpPopup from '../popups/OtpPopup/OtpPopup';\r\nimport i18next from 'i18next';\r\nimport checkMarkCorrect from \"../../assets/icons/ic-check-mark-correct.png\";\r\nimport checkMarkFalse from \"../../assets/icons/ic-check-mark-x.png\";\r\nimport { format } from 'react-string-format';\r\n\r\n\r\ntoast.configure();\r\nfunction ForgetPassword() {\r\n const { t } = useTranslation();\r\n\r\n const [redirect, setRedirect] = useState(null);\r\n const [email, setEmail] = useState(\"\");\r\n const [mobile, setMobile] = useState(\"\");\r\n const [nin, setNin] = useState(\"\");\r\n const [qId, setQId] = useState(\"\");\r\n const [isNewPasswordVisible, setIsNewPasswordVisible] = useState(false);\r\n const [newPassword, setNewPassword] = useState(\"\");\r\n const [confirmNewPassword, setConfirmNewPassword] = useState(\"\");\r\n\r\n const [visible, setVisible] = useState(false);\r\n\r\n const [MINLENGTH, set_MINLENGTH] = useState(\"\");\r\n const [ENFORCE_START_WITH_ALPHA, set_ENFORCE_START_WITH_ALPHA] = useState(\"\");\r\n const [ENFORCE_SPECIAL_CHAR, set_ENFORCE_SPECIAL_CHAR] = useState(\"\");\r\n const [NUM_SMALL_CHAR, set_NUM_SMALL_CHAR] = useState(\"\");\r\n const [NUM_SPECIAL_CHAR, set_NUM_SPECIAL_CHAR] = useState(\"\");\r\n const [NUM_CAPITAL_CHAR, set_NUM_CAPITAL_CHAR] = useState(\"\");\r\n const [IC_MINLENGTH, set_IC_MINLENGTH] = useState(checkMarkFalse);\r\n const [IC_ENFORCE_START_WITH_ALPHA, set_IC_ENFORCE_START_WITH_ALPHA] = useState(checkMarkFalse);\r\n const [IC_ENFORCE_SPECIAL_CHAR, set_IC_ENFORCE_SPECIAL_CHAR] = useState(checkMarkFalse);\r\n const [IC_NUM_SMALL_CHAR, set_IC_NUM_SMALL_CHAR] = useState(checkMarkFalse);\r\n const [IC_NUM_CAPITAL_CHAR, set_IC_NUM_CAPITAL_CHAR] = useState(checkMarkFalse);\r\n const [IC_NUM_SPECIAL_CHAR, set_IC_NUM_SPECIAL_CHAR] = useState(checkMarkFalse);\r\n\r\n\r\n let leftLocalized = \"left\";\r\n let mr2Localized = \"mr-2\";\r\n\r\n if (i18next.language === \"ar\") {\r\n leftLocalized = \"right\";\r\n mr2Localized = \"ml-2\";\r\n }\r\n\r\n function validate() {\r\n\r\n if (!isNewPasswordVisible) {\r\n if (localStorage.getItem(\"ForgotPasswordMethod\") === \"S\") {\r\n if (email.length === 0 || email === \"\" || email === null) {\r\n Helpers.errorNotify(t(\"emailisrequired\"), i18next.language)\r\n return false;\r\n }\r\n\r\n if (mobile.length === 0 || mobile === \"\" || mobile === null) {\r\n Helpers.errorNotify(t(\"mobileRequired\"), i18next.language)\r\n return false;\r\n }\r\n } else if (localStorage.getItem(\"ForgotPasswordMethod\") === \"O\") {\r\n if (nin.length === 0 || nin === \"\" || nin === null) {\r\n Helpers.errorNotify(t(\"Trading_Number_is_required\"), i18next.language)\r\n return false;\r\n }\r\n\r\n if (mobile.length === 0 || mobile === \"\" || mobile === null) {\r\n Helpers.errorNotify(t(\"mobileRequired\"), i18next.language)\r\n return false;\r\n }\r\n }\r\n else {\r\n // if (nin.length === 0 || nin === \"\" || nin === null) {\r\n // Helpers.errorNotify(t(\"NIN_is_required\"), i18next.language)\r\n // return false;\r\n // }\r\n\r\n // if (qId.length === 0 || qId === \"\" || qId === null) {\r\n // Helpers.errorNotify(t(\"QID_is_required\"), i18next.language)\r\n // return false;\r\n // }\r\n\r\n if (email.length === 0 || email === \"\" || email === null) {\r\n Helpers.errorNotify(t(\"emailisrequired\"), i18next.language)\r\n return false;\r\n }\r\n\r\n if (mobile.length === 0 || mobile === \"\" || mobile === null) {\r\n Helpers.errorNotify(t(\"mobileRequired\"), i18next.language)\r\n return false;\r\n }\r\n }\r\n\r\n\r\n\r\n }\r\n //else {\r\n // if (newPassword.length === 0 || newPassword === \"\" || newPassword === null) {\r\n // Helpers.errorNotify(t(\"New_Password_is_required\"), i18next.language)\r\n // return false;\r\n // }\r\n\r\n // if (confirmNewPassword.length === 0 || confirmNewPassword === \"\" || confirmNewPassword === null) {\r\n // Helpers.errorNotify(t(\"Confirm_New_Password_is_required\"), i18next.language)\r\n // return false;\r\n // }\r\n\r\n // if (confirmNewPassword !== newPassword) {\r\n // Helpers.errorNotify(t(\"passwordnotmatchconfirmedpassword\"), i18next.language)\r\n // return false;\r\n // }\r\n // }\r\n return true\r\n }\r\n\r\n function callRegistrationsOTP(onClose, otp) {\r\n\r\n setVisible(false);\r\n\r\n if (otp.length === 0) {\r\n Helpers.errorNotify(t(\"OTP_required\"), i18next.language);\r\n }\r\n\r\n setVisible(false);\r\n var isIPOQuickSell = localStorage.getItem(Constants.localStorageConstants.EnableIPOQuickSell).toUpperCase() === \"TRUE\" ? \"Y\" : \"N\";\r\n\r\n let registrationsOTPResponse = utils.registrationsOTP(localStorage.getItem(\"username\"), otp, \"\", \"\", \"\", \"\", \"Y\", isIPOQuickSell);\r\n\r\n registrationsOTPResponse.then((response) => {\r\n\r\n // console.log(\"registrationsOTPResponse: \", response);\r\n let status = response.data[\"Status\"]\r\n if (response.data[\"Status\"] === \"0\") {\r\n setVisible(false);\r\n //successNotify(t(\"passwordReset\"));\r\n setIsNewPasswordVisible(true);\r\n onClose();\r\n } else {\r\n Helpers.errorNotify(response.data[\"ErrorMsg\"], i18next.language);\r\n }\r\n })\r\n .catch((error) => {\r\n setVisible(false);\r\n //console.log(\"callRegistrationsOTP error\", error);\r\n Helpers.errorNotify(error.message, i18next.language);\r\n });\r\n }\r\n\r\n function otpPrompt() {\r\n confirmAlert({\r\n customUI: ({ onClose }) => {\r\n return (\r\n \r\n );\r\n }\r\n });\r\n\r\n };\r\n\r\n function callUserAuthinticationAdvance() {\r\n\r\n if (!validate()) {\r\n return;\r\n }\r\n setVisible(true);\r\n // let requestType = localStorage.getItem(Constants.localStorageConstants.company_name) === \"IFS\" ? \"S\" : \"C\";\r\n let requestType = \"\";\r\n\r\n // if (localStorage.getItem(Constants.localStorageConstants.company_name) === \"IFS\") {\r\n // requestType = \"S\"\r\n // }\r\n // else if (localStorage.getItem(Constants.localStorageConstants.company_name) === \"GLOBAL\") {\r\n // requestType = \"O\"\r\n // }\r\n // else {\r\n // requestType = \"C\"\r\n // }\r\n let response = utils.userAuthinticationAdvance(\"IOS\", \"192.168.26.1\", nin, qId, mobile, email, requestType)\r\n //console.log(response);\r\n response.then((response) => {\r\n\r\n setVisible(false);\r\n console.log(\"userAuthinticationAdvance: \", response);\r\n if (response.data.PasswordPolicy !== null && response.data.PasswordPolicy !== undefined && Object.keys(response.data.PasswordPolicy).length !== 0) {\r\n set_MINLENGTH(response.data.PasswordPolicy[\"MINLENGTH\"]);\r\n set_ENFORCE_START_WITH_ALPHA(response.data.PasswordPolicy[\"ENFORCE_START_WITH_ALPHA\"]);\r\n set_ENFORCE_SPECIAL_CHAR(response.data.PasswordPolicy[\"ENFORCE_SPECIAL_CHAR\"]);\r\n set_NUM_SMALL_CHAR(response.data.PasswordPolicy[\"NUM_SMALL_CHAR\"]);\r\n set_NUM_CAPITAL_CHAR(response.data.PasswordPolicy[\"NUM_CAPITAL_CHAR\"]);\r\n set_NUM_SPECIAL_CHAR(response.data.PasswordPolicy[\"NUM_SPECIAL_CHAR\"]);\r\n }\r\n\r\n\r\n let status = response.data[\"Status\"]\r\n switch (status) {\r\n case Constants.LoginStatus.Success:\r\n localStorage.setItem(\"username\", response.data[\"UserName\"]);\r\n localStorage.setItem(\"WebCode\", response.data[\"WebCode\"]);\r\n otpPrompt();\r\n break;\r\n case \"-1\":\r\n localStorage.getItem(\"ForgotPasswordMethod\") === \"S\" ?\r\n Helpers.errorNotify(t(\"InvalidEmailorMobileNo\"), i18next.language)\r\n : localStorage.getItem(\"ForgotPasswordMethod\") === \"O\" ?\r\n Helpers.errorNotify(t(\"InvalidNINorMobileNo\"), i18next.language)\r\n : Helpers.errorNotify(t(\"InvalidEmailorMobileNo\"), i18next.language)\r\n break;\r\n default:\r\n // errorNotify(\"error has occured\")\r\n Helpers.errorNotify(response.data[\"ErrorMsg\"], i18next.language)\r\n break;\r\n }\r\n })\r\n .catch((error) => {\r\n setVisible(false);\r\n console.log(\"error\", error);\r\n Helpers.errorNotify(error.message, i18next.language);\r\n });\r\n }\r\n\r\n function callResetPassword() {\r\n\r\n if (!validateForResetPassword()) {\r\n return;\r\n }\r\n setVisible(true);\r\n let response = utils.resetPasswordAdvance(mobile, email, newPassword, \"\", \"IOS\", \"192.168.26.1\", \"\", localStorage.getItem(\"username\"), nin, qId)\r\n //console.log(response);\r\n response.then((response) => {\r\n setVisible(false);\r\n debugger\r\n // console.log(\"userAuthinticationAdvance: \", response);\r\n let status = response.data[\"Status\"]\r\n localStorage.setItem(\"isTermsAndConditions\", response.data[\"isTermsAndConditions\"]);\r\n\r\n switch (status) {\r\n case Constants.LoginStatus.Success:\r\n // debugger\r\n // if (response.data[\"isTermsAndConditions\"] === \"N\" && localStorage.getItem(Constants.localStorageConstants.company_name).toUpperCase() === \"IFS\") {\r\n // setRedirect(AppUrls.TermsAndConditions);\r\n // }\r\n // else {\r\n setRedirect(AppUrls.trading);\r\n // }\r\n break;\r\n default:\r\n Helpers.errorNotify(response.data[\"ErrorMsg\", i18next.language])\r\n break;\r\n }\r\n })\r\n .catch((error) => {\r\n setVisible(false);\r\n console.log(\"error:\", error);\r\n Helpers.errorNotify(error.message, i18next.language);\r\n });\r\n }\r\n\r\n let hideLoader = \"\";\r\n if (visible) {\r\n hideLoader = \"\";\r\n } else {\r\n hideLoader = \"hide-loader\";\r\n }\r\n\r\n if (redirect !== null) {\r\n return ;\r\n }\r\n\r\n function onChangeNewPassword(e) {\r\n var Newpassword = e.target.value\r\n setNewPassword(e.target.value);\r\n if (Newpassword.length >= parseInt(MINLENGTH) && IC_MINLENGTH === checkMarkFalse) {\r\n set_IC_MINLENGTH(checkMarkCorrect);\r\n }\r\n\r\n if (Newpassword.length < parseInt(MINLENGTH) && IC_MINLENGTH === checkMarkCorrect) {\r\n set_IC_MINLENGTH(checkMarkFalse);\r\n }\r\n\r\n if (Newpassword.length > 0) {\r\n if (Newpassword.charAt(0) <= '9' && Newpassword.charAt(0) >= '0')\r\n set_IC_ENFORCE_START_WITH_ALPHA(checkMarkFalse);\r\n else\r\n set_IC_ENFORCE_START_WITH_ALPHA(checkMarkCorrect);\r\n\r\n let specialFormat = /[~!@#$*]/;\r\n let containsSpecialChar = false;\r\n if (specialFormat.test(Newpassword)) {\r\n containsSpecialChar = true;\r\n }\r\n\r\n let numberFormat = /\\d/;\r\n let containsNumberChar = false;\r\n if (numberFormat.test(Newpassword)) {\r\n containsNumberChar = true;\r\n }\r\n\r\n let stringFormat = /[a-zA-Z]/\r\n let containsletterChar = false;\r\n if (stringFormat.test(Newpassword)) {\r\n containsletterChar = true;\r\n }\r\n\r\n if (containsSpecialChar && containsNumberChar && containsletterChar)\r\n set_IC_ENFORCE_SPECIAL_CHAR(checkMarkCorrect);\r\n else\r\n set_IC_ENFORCE_SPECIAL_CHAR(checkMarkFalse);\r\n\r\n //checks small letter count\r\n if (parseInt(NUM_SMALL_CHAR) > 0) {\r\n let smallLetter = /[a-z]/;\r\n let smallLetterCount = 0;\r\n for (let position = 0; position < Newpassword.length; position++) {\r\n if (smallLetter.test(Newpassword.charAt(position))) {\r\n smallLetterCount += 1;\r\n }\r\n }\r\n if (parseInt(NUM_SMALL_CHAR) > smallLetterCount)\r\n set_IC_NUM_SMALL_CHAR(checkMarkFalse);\r\n else\r\n set_IC_NUM_SMALL_CHAR(checkMarkCorrect);\r\n }\r\n //checks capital letter count\r\n if (parseInt(NUM_CAPITAL_CHAR) > 0) {\r\n let capitalLetter = /[A-Z]/;\r\n let capitalLetterCount = 0;\r\n for (let position = 0; position < Newpassword.length; position++) {\r\n if (capitalLetter.test(Newpassword.charAt(position))) {\r\n capitalLetterCount += 1;\r\n }\r\n }\r\n if (parseInt(NUM_CAPITAL_CHAR) > capitalLetterCount)\r\n set_IC_NUM_CAPITAL_CHAR(checkMarkFalse);\r\n else\r\n set_IC_NUM_CAPITAL_CHAR(checkMarkCorrect);\r\n\r\n }\r\n\r\n //checks special letter count\r\n if (parseInt(NUM_SPECIAL_CHAR) > 0) {\r\n let specialLetterCount = 0;\r\n for (let position = 0; position < Newpassword.length; position++) {\r\n if (specialFormat.test(Newpassword.charAt(position))) {\r\n specialLetterCount += 1;\r\n }\r\n }\r\n if (parseInt(NUM_SPECIAL_CHAR) > specialLetterCount)\r\n set_IC_NUM_SPECIAL_CHAR(checkMarkFalse);\r\n else\r\n set_IC_NUM_SPECIAL_CHAR(checkMarkCorrect);\r\n }\r\n } else {\r\n if (IC_ENFORCE_START_WITH_ALPHA === checkMarkCorrect) {\r\n\r\n set_IC_NUM_SMALL_CHAR(checkMarkFalse);\r\n set_IC_NUM_CAPITAL_CHAR(checkMarkFalse);\r\n set_IC_NUM_SPECIAL_CHAR(checkMarkFalse);\r\n set_IC_ENFORCE_START_WITH_ALPHA(checkMarkFalse);\r\n set_ENFORCE_SPECIAL_CHAR(checkMarkFalse);\r\n\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n function validateForResetPassword() {\r\n if (newPassword.length === 0 || newPassword === \"\" || newPassword === null) {\r\n Helpers.errorNotify(t(\"New_Password_is_required\"), i18next.language)\r\n return false;\r\n }\r\n\r\n if (confirmNewPassword.length === 0 || confirmNewPassword === \"\" || confirmNewPassword === null) {\r\n Helpers.errorNotify(t(\"Confirm_New_Password_is_required\"), i18next.language)\r\n return false;\r\n }\r\n\r\n if (confirmNewPassword !== newPassword) {\r\n Helpers.errorNotify(t(\"passwordnotmatchconfirmedpassword\"), i18next.language)\r\n return false;\r\n }\r\n\r\n if (MINLENGTH !== \"\" && IC_MINLENGTH === checkMarkFalse) {\r\n Helpers.errorNotify(t(\"passwordtooshort\"), i18next.language + \" \" + MINLENGTH)\r\n return false;\r\n }\r\n\r\n if (ENFORCE_START_WITH_ALPHA !== \"\" && IC_ENFORCE_START_WITH_ALPHA === checkMarkFalse) {\r\n Helpers.errorNotify(t(\"passwordcantstartno\"), i18next.language)\r\n return false;\r\n }\r\n\r\n if (NUM_SPECIAL_CHAR !== \"\" && NUM_SPECIAL_CHAR !== \"0\" && IC_NUM_SPECIAL_CHAR === checkMarkFalse && ENFORCE_SPECIAL_CHAR === \"Y\") {\r\n Helpers.errorNotify(format(t(\"passwordcountspecialchar_X0\"), i18next.language, NUM_SPECIAL_CHAR))\r\n return false;\r\n }\r\n\r\n if (ENFORCE_SPECIAL_CHAR !== \"\" && ENFORCE_SPECIAL_CHAR === \"Y\" && IC_ENFORCE_SPECIAL_CHAR === checkMarkFalse) {\r\n Helpers.errorNotify(t(\"passwordEnforceSpecialChar\"), i18next.language);\r\n return false;\r\n }\r\n if (NUM_SMALL_CHAR !== \"\" && NUM_SMALL_CHAR !== \"0\" && IC_NUM_SMALL_CHAR === checkMarkFalse) {\r\n Helpers.errorNotify(format(t(\"passwordcountsmallchar_X0\"), i18next.language, NUM_SMALL_CHAR))\r\n return false;\r\n }\r\n\r\n\r\n if (NUM_CAPITAL_CHAR !== \"\" && NUM_CAPITAL_CHAR !== \"0\" && IC_NUM_CAPITAL_CHAR === checkMarkFalse) {\r\n Helpers.errorNotify(format(t(\"passwordcountcapitalchar_X0\"), i18next.language, NUM_CAPITAL_CHAR))\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n // const errorNotify = (message) => {\r\n // toast.error(message, {\r\n // position: toast.POSITION.BOTTOM_CENTER,\r\n // hideProgressBar: true,\r\n // autoClose: Constants.errorNotifyDuration\r\n // });\r\n // };\r\n\r\n // const successNotify = (message) => {\r\n // toast.success(message, {\r\n // position: toast.POSITION.BOTTOM_CENTER,\r\n // hideProgressBar: true,\r\n // autoClose: Constants.successNotifyDuration\r\n // });\r\n // };\r\n console.log(\"isNewPasswordVisible\", isNewPasswordVisible);\r\n\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {\r\n !isNewPasswordVisible\r\n ? localStorage.getItem(\"ForgotPasswordMethod\") === \"O\"\r\n ? <>\r\n
\r\n {\r\n e.preventDefault();\r\n setNin(e.target.value);\r\n }}\r\n />\r\n
\r\n
\r\n {\r\n e.preventDefault();\r\n setMobile(e.target.value);\r\n }}\r\n />\r\n
\r\n\r\n \r\n : localStorage.getItem(\"ForgotPasswordMethod\") === \"S\" ?\r\n <>\r\n
\r\n {\r\n e.preventDefault();\r\n setEmail(e.target.value);\r\n }}\r\n />\r\n
\r\n
\r\n {\r\n e.preventDefault();\r\n setMobile(e.target.value);\r\n }}\r\n />\r\n
\r\n \r\n : <>\r\n
\r\n {\r\n e.preventDefault();\r\n setEmail(e.target.value);\r\n }}\r\n />\r\n
\r\n
\r\n {\r\n e.preventDefault();\r\n setMobile(e.target.value);\r\n }}\r\n />\r\n
\r\n \r\n\r\n : <>\r\n
\r\n
\r\n {\r\n e.preventDefault();\r\n onChangeNewPassword(e);\r\n }}\r\n />\r\n
\r\n
\r\n {\r\n e.preventDefault();\r\n setConfirmNewPassword(e.target.value);\r\n }}\r\n />\r\n
\r\n
\r\n {\r\n MINLENGTH !== \"\"\r\n ?\r\n
\r\n \"\"\r\n {t(\"passwordtooshort\") + \" \" + MINLENGTH}\r\n
\r\n : null\r\n }\r\n {\r\n ENFORCE_START_WITH_ALPHA !== \"\" && ENFORCE_START_WITH_ALPHA === \"Y\"\r\n ?\r\n
\r\n \"\"\r\n {t(\"passwordcantstartno\")}\r\n
\r\n : null\r\n }\r\n {\r\n ENFORCE_SPECIAL_CHAR !== \"\" && ENFORCE_SPECIAL_CHAR === \"Y\"\r\n ?\r\n
\r\n \"\"\r\n {t(\"passwordEnforceSpecialChar\")}\r\n
\r\n : null\r\n }\r\n {\r\n NUM_SMALL_CHAR !== \"\" && parseInt(NUM_SMALL_CHAR) > 0\r\n ?\r\n
\r\n \"\"\r\n {format(t(\"passwordcountsmallchar_X0\"), NUM_SMALL_CHAR)}\r\n
\r\n : null\r\n }\r\n {\r\n NUM_CAPITAL_CHAR !== \"\" && parseInt(NUM_CAPITAL_CHAR) > 0\r\n ?\r\n
\r\n \"\"\r\n {format(t(\"passwordcountcapitalchar_X0\"), NUM_CAPITAL_CHAR)}\r\n
\r\n : null\r\n }\r\n {\r\n NUM_SPECIAL_CHAR !== \"\" && parseInt(NUM_SPECIAL_CHAR) > 0 && ENFORCE_SPECIAL_CHAR === \"Y\"\r\n ?\r\n
\r\n \"\"\r\n {format(t(\"passwordcountspecialchar_X0\"), NUM_SPECIAL_CHAR)}\r\n
\r\n : null\r\n }\r\n {\r\n Constants.config.CompanyName === \"CIC\"\r\n ?\r\n
\r\n \"\"\r\n {t(\"secondpasswordpolicy\")}\r\n
\r\n : null\r\n }\r\n
\r\n
\r\n\r\n \r\n }\r\n\r\n\r\n
\r\n
\r\n {\r\n !isNewPasswordVisible\r\n ? {\r\n e.preventDefault();\r\n callUserAuthinticationAdvance();\r\n }}\r\n >\r\n {t(\"request\")}\r\n \r\n : {\r\n e.preventDefault();\r\n callResetPassword();\r\n }}\r\n >\r\n {t(\"changePassword\")}\r\n \r\n }\r\n\r\n
\r\n
\r\n {\r\n event.preventDefault();\r\n setRedirect(AppUrls.login);\r\n // localStorage.getItem(Constants.localStorageConstants.company_name) === \"CIBC\" ? setRedirect(AppUrls.loginCIBC) : setRedirect(AppUrls.login);\r\n }}\r\n >\r\n {t(\"cancelForgotPassword\")}\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default ForgetPassword;","import React, { useEffect, useState } from 'react';\r\nimport './LoginSignup.css'\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Redirect } from \"react-router-dom\";\r\nimport * as AppUrls from \"../../constants/AppUrls\";\r\nimport * as Constants from \"../../constants/Constants\";\r\n\r\nimport * as utils from '../../global/utils';\r\nimport * as Helpers from '../../global/Helpers';\r\nimport { toast } from \"react-toastify\";\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\n\r\n//loader\r\nimport \"react-loader-spinner/dist/loader/css/react-spinner-loader.css\";\r\nimport Loader from 'react-loader-spinner';\r\n\r\nimport { confirmAlert } from 'react-confirm-alert'; // Import\r\nimport 'react-confirm-alert/src/react-confirm-alert.css'; // Import css\r\nimport OtpPopup from '../popups/OtpPopup/OtpPopup';\r\nimport i18next from 'i18next';\r\nimport checkMarkCorrect from \"../../assets/icons/ic-check-mark-correct.png\";\r\nimport checkMarkFalse from \"../../assets/icons/ic-check-mark-x.png\";\r\nimport { format } from 'react-string-format';\r\n\r\n\r\ntoast.configure();\r\nfunction ForgotUsername() {\r\n const { t } = useTranslation();\r\n\r\n const [redirect, setRedirect] = useState(null);\r\n const [nin, setNin] = useState(\"\");\r\n const [mobile, setMobile] = useState(\"\");\r\n\r\n const [visible, setVisible] = useState(false);\r\n\r\n\r\n\r\n let leftLocalized = \"left\";\r\n let mr2Localized = \"mr-2\";\r\n\r\n if (i18next.language === \"ar\") {\r\n leftLocalized = \"right\";\r\n mr2Localized = \"ml-2\";\r\n }\r\n\r\n function validate() {\r\n\r\n if (nin.length === 0 || nin === \"\" || nin === null) {\r\n Helpers.errorNotify(t(\"Trading_Number_is_required\"), i18next.language)\r\n return false;\r\n }\r\n\r\n if (mobile.length === 0 || mobile === \"\" || mobile === null) {\r\n Helpers.errorNotify(t(\"mobileRequired\"), i18next.language)\r\n return false;\r\n }\r\n\r\n\r\n return true\r\n }\r\n\r\n\r\n\r\n let hideLoader = \"\";\r\n if (visible) {\r\n hideLoader = \"\";\r\n } else {\r\n hideLoader = \"hide-loader\";\r\n }\r\n\r\n if (redirect !== null) {\r\n return ;\r\n }\r\n\r\n function callForgotUsername() {\r\n if (!validate()) {\r\n return;\r\n }\r\n setVisible(true);\r\n let response = utils.forGotusername(\"IOS\", \"192.168.26.1\", nin, mobile)\r\n //console.log(response);\r\n response.then((response) => {\r\n\r\n setVisible(false);\r\n console.log(\"forGotusername: \", response);\r\n\r\n let status = response.data[\"Status\"]\r\n \r\n switch (status) {\r\n case Constants.LoginStatus.Success:\r\n Helpers.successNotify(t(\"successfully\"), i18next.language);\r\n // setRedirect(AppUrls.login);\r\n break;\r\n case \"-1\":\r\n Helpers.errorNotify(t(\"InvalidNINorMobileNo\"), i18next.language)\r\n\r\n break;\r\n default:\r\n Helpers.errorNotify(response.data[\"ErrorMsg\"], i18next.language)\r\n break;\r\n }\r\n })\r\n .catch((error) => {\r\n setVisible(false);\r\n console.log(\"error\", error);\r\n Helpers.errorNotify(error.message, i18next.language);\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n return (\r\n
\r\n
\r\n
\r\n <>\r\n
\r\n {\r\n e.preventDefault();\r\n setNin(e.target.value);\r\n }}\r\n />\r\n
\r\n
\r\n {\r\n e.preventDefault();\r\n setMobile(e.target.value);\r\n }}\r\n />\r\n
\r\n\r\n \r\n\r\n\r\n
\r\n {\r\n e.preventDefault();\r\n callForgotUsername();\r\n }}\r\n >\r\n {t(\"request\")}\r\n \r\n
\r\n {\r\n event.preventDefault();\r\n setRedirect(AppUrls.login);\r\n // localStorage.getItem(Constants.localStorageConstants.company_name) === \"CIBC\" ? setRedirect(AppUrls.loginCIBC) : setRedirect(AppUrls.login);\r\n\r\n }}\r\n >\r\n {t(\"cancelForgotPassword\")}\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default ForgotUsername;","import React, { useState, useEffect } from \"react\";\r\nimport \"./LoginSignup.css\";\r\nimport { Redirect } from \"react-router\";\r\nimport {\r\n registrationsOTP,\r\n GetSettingWorkSpaceByUserID,\r\n} from \"../../global/utils\";\r\n\r\nimport { toast } from \"react-toastify\";\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\n\r\n//loader\r\nimport \"react-loader-spinner/dist/loader/css/react-spinner-loader.css\";\r\nimport Loader from \"react-loader-spinner\";\r\n\r\nimport * as AppUrls from \"../../constants/AppUrls\";\r\nimport * as Constants from \"../../constants/Constants\";\r\n\r\nimport { useTranslation } from \"react-i18next\";\r\nimport * as utils from \"../../global/utils\";\r\n\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport * as actions from \"../../store/actionTypes\";\r\nimport * as Helpers from \"../../global/Helpers\";\r\nimport i18next from \"i18next\";\r\nimport Keyboard from \"react-simple-keyboard\";\r\nimport \"react-simple-keyboard/build/css/index.css\";\r\nimport { Shift } from \"react-bootstrap-icons\";\r\n\r\ntoast.configure();\r\n\r\nfunction OTP(props) {\r\n const [input, setInput] = useState(\"\");\r\n const [layoutName, setLayoutName] = useState(\"default\")\r\n\r\n const [keyboardLayout, setKeyboardLayout] = useState(generateKeyboardLayout());\r\n\r\n function generateKeyboardLayout() {\r\n const letters = \"qwertyuiopasdfghjklzxcvbnm\";\r\n const number = \"1234567890\"\r\n const lettersCaps = \"QWERTYUIOPASDFGHJKLZXCVBNM\";\r\n const lettersCapsNum = \"!@#$%^&*()\";\r\n\r\n const shuffledLetters = shuffle(letters.split(\"\"));\r\n const shuffledNumber = shuffle(number.split(\"\"));\r\n const shuffledlettersCaps = shuffle(lettersCaps.split(\"\"));\r\n const shuffledlettersCapsNum = shuffle(lettersCapsNum.split(\"\"));\r\n\r\n const layout = [\r\n \"1 2 3 4 5 6 7 8 9 0\",\r\n \"q w e r t y u i o p {bksp}\",\r\n \"a s d f g h j k l\",\r\n \"{shift} z x c v b n m {shift}\",\r\n \"{capslock} {space} {enter}\",\r\n ];\r\n const shiftLayout = [\r\n \"! @ # $ % ^ & * ( )\",\r\n \"Q W E R T Y U I O P {bksp}\",\r\n \"A S D F G H J K L\",\r\n \"{shift} Z X C V B N M {shift}\",\r\n \"{capslock} {space} {enter}\"\r\n ];\r\n const capsLayout = [\r\n \"! @ # $ % ^ & * ( )\",\r\n \"Q W E R T Y U I O P\",\r\n \"A S D F G H J K L\",\r\n \"{shift} Z X C V B N M {bksp}\",\r\n \"{capslock} {space} {enter}\"\r\n ];\r\n\r\n for (let i = 0; i < layout.length; i++) {\r\n const row = layout[i];\r\n layout[i] = row\r\n .split(\" \")\r\n .map((key) => {\r\n if (key === \"{bksp}\" || key === \"{shift}\" || key === \"{space}\" || key === \"{capslock}\" || key === \"{enter}\") {\r\n return key;\r\n } else if (layoutName === \"default\") {\r\n return i > 0 ? shuffledLetters.pop() : shuffledNumber.pop()\r\n } else if (layoutName === \"shift\") {\r\n return i > 0 ? shuffledlettersCaps.pop() : shuffledlettersCapsNum.pop()\r\n }\r\n })\r\n .join(\" \");\r\n }\r\n\r\n // for (let i = 0; i < shiftLayout.length; i++) {\r\n // const row = shiftLayout[i];\r\n // shiftLayout[i] = row\r\n // .split(\" \")\r\n // .map((key) => {\r\n // // \r\n // if (key === \"{bksp}\" || key === \"{shift}\" || key === \"{space}\" || key === \"{capslock}\" || key === \"{enter}\" ) {\r\n // return key;\r\n // } else {\r\n // return i > 0 ? shuffledlettersCaps.pop() : shuffledlettersCapsNum.pop()\r\n // }\r\n // })\r\n // .join(\" \");\r\n // }\r\n\r\n // for (let i = 0; i < capsLayout.length; i++) {\r\n // const row = capsLayout[i];\r\n // capsLayout[i] = row\r\n // .split(\" \")\r\n // .map((key) => {\r\n // if (key === \"{bksp}\" || key === \"{shift}\" || key === \"{space}\" || key === \"{capslock}\" || key === \"{enter}\" ) {\r\n // return key;\r\n // } else {\r\n // return shuffledlettersCaps.pop();\r\n // }\r\n // })\r\n // .join(\" \");\r\n // }\r\n\r\n return { default: layout, shift: shiftLayout, caps: capsLayout };\r\n }\r\n\r\n function shuffle(array) {\r\n let currentIndex = array.length,\r\n temporaryValue,\r\n randomIndex;\r\n\r\n // While there remain elements to shuffle...\r\n while (0 !== currentIndex) {\r\n // Pick a remaining element...\r\n randomIndex = Math.floor(Math.random() * currentIndex);\r\n currentIndex -= 1;\r\n\r\n // And swap it with the current element.\r\n temporaryValue = array[currentIndex];\r\n array[currentIndex] = array[randomIndex];\r\n array[randomIndex] = temporaryValue;\r\n }\r\n\r\n return array;\r\n }\r\n const onKeyPress = (button) => {\r\n if (button === \"{shift}\" || button === \"{lock}\") handleShift();\r\n if (button === \"{capslock}\") handleCapsLock();\r\n if (button === \"{space}\") handleSpace();\r\n if (button === \"{bksp}\") handleBackspace();\r\n // Add more custom handlers for special characters here\r\n };\r\n const handleShift = () => {\r\n setLayoutName(layoutName === \"default\" ? \"shift\" : \"default\");\r\n };\r\n\r\n const handleCapsLock = () => {\r\n setLayoutName(layoutName === \"default\" ? \"shift\" : \"default\");\r\n };\r\n\r\n const handleSpace = () => {\r\n setInput(input + \" \");\r\n };\r\n\r\n const handleBackspace = () => {\r\n setInput(input.slice(0, -1));\r\n };\r\n\r\n\r\n\r\n const abortController = new AbortController();\r\n const dispatch = useDispatch();\r\n const { t, i18n } = useTranslation();\r\n const [otp, setOtp] = useState(\"\");\r\n const [redirect, setRedirect] = useState(null);\r\n const [visible, setVisible] = useState(false);\r\n const [otpType, setotpType] = useState(\"password\");\r\n\r\n // const errorNotify = (message) => {\r\n // toast.error(message, {\r\n // position: toast.POSITION.BOTTOM_CENTER,\r\n // hideProgressBar: true,\r\n // autoClose: Constants.errorNotifyDuration\r\n // });\r\n // };\r\n\r\n // const successNotify = () => {\r\n // toast.success(\"Successful Login!\", {\r\n // position: toast.POSITION.BOTTOM_CENTER,\r\n // hideProgressBar: true,\r\n // autoClose: Constants.successNotifyDuration\r\n // });\r\n // };\r\n const getUserSettings = () => {\r\n let response = GetSettingWorkSpaceByUserID();\r\n response\r\n .then((response) => {\r\n //\r\n let data = response.data[0];\r\n if (\r\n data.WorkSpaceSettings !== undefined &&\r\n data.WorkSpaceSettings !== null &&\r\n data.WorkSpaceSettings !== \"\"\r\n ) {\r\n var res = JSON.parse(data.WorkSpaceSettings);\r\n\r\n localStorage.setItem(\"selectedProfile\", res.selectedProfile);\r\n localStorage.setItem(\"theme\", res.theme);\r\n localStorage.setItem(\"UserSettings\", data.WorkSpaceSettings);\r\n // if (i18n.language === \"ar\" && res.lang === \"en\")\r\n // props.changeLanguageNew()\r\n // else if (i18n.language === \"en\" && res.lang === \"ar\")\r\n // props.changeLanguageNew()\r\n\r\n dispatch({\r\n type: actions.SELECT_PREFERRED_SYMBOL,\r\n payload: {\r\n PreferredSymbol: res.PreferredSymbol,\r\n },\r\n });\r\n\r\n dispatch({\r\n type: actions.SELECT_PREFERRED_EXCHANGE,\r\n payload: {\r\n PreferredExchange: res.PreferredExchange,\r\n },\r\n });\r\n\r\n dispatch({\r\n type: actions.UPDATE_ENABLE_EXPAND_ROW,\r\n payload: {\r\n EnableExpandRow: res.expandRow === \"Y\" ? true : false,\r\n },\r\n });\r\n\r\n dispatch({\r\n type: actions.ENABLE_TRADE_TICKER,\r\n payload: {\r\n EnableTradeTicker: res.tradeTicker === \"Y\" ? true : false,\r\n },\r\n });\r\n\r\n dispatch({\r\n type: actions.ENABLE_ROUND_TICKER,\r\n payload: {\r\n EnableRoundTicker: res.RoundTicker === \"Y\" ? true : false,\r\n },\r\n });\r\n saveSettings(data);\r\n }\r\n })\r\n .catch((error) => {\r\n console.log(\"error\", error);\r\n });\r\n };\r\n\r\n\r\n function saveSettings(data) {\r\n var res = JSON.parse(data.WorkSpaceSettings);\r\n let LanguageSelectedFromLogin = localStorage.getItem(\r\n \"LanguageSelectedFromLogin\"\r\n );\r\n let isLanguageSelectedFromLogin = localStorage.getItem(\r\n \"isLanguageSelectedFromLogin\"\r\n );\r\n var lang = \"\";\r\n if (isLanguageSelectedFromLogin === \"true\") lang = LanguageSelectedFromLogin;\r\n else lang = res.lang;\r\n let settings = {\r\n lang: lang,\r\n theme: res.theme,\r\n //theme: '',\r\n expandRow: res.expandRow,\r\n PreferredSymbol: res.PreferredSymbol,\r\n PreferredExchange: res.PreferredExchange,\r\n selectedProfile: res.selectedProfile,\r\n tradeTicker: res.tradeTicker,\r\n RoundTicker: res.RoundTicker,\r\n };\r\n\r\n if (data !== undefined && data !== null) {\r\n let postdata = {\r\n profileUniqueID: data.profileUniqueID,\r\n ProfileID: data.ProfileID,\r\n ProfileName: data.ProfileName,\r\n ProfileNameAr: data.ProfileNameAr,\r\n ProfileSettings: data.ProfileSettings,\r\n WorkSpaceSettings: JSON.stringify(settings),\r\n WebCode: localStorage.getItem(\"WebCode\"),\r\n };\r\n var updateWorkSpaceSettings = utils.UpdateUserProfileSettings(postdata);\r\n updateWorkSpaceSettings\r\n .then((response) => {\r\n if (response.data) {\r\n // console.log(\"Settings Successfully Updated\");\r\n // this.props.setUserSettings(settings)\r\n localStorage.setItem(\"UserSettings\", JSON.stringify(settings));\r\n\r\n if (i18n.language === \"ar\" && settings.lang === \"en\")\r\n props.changeLanguageNew();\r\n else if (i18n.language === \"en\" && settings.lang === \"ar\")\r\n props.changeLanguageNew();\r\n } else {\r\n console.log(\r\n \"Unsuccessfull Update Settings, please contact Administrator\"\r\n );\r\n }\r\n })\r\n .finally(() => {\r\n if (abortController) abortController.abort();\r\n })\r\n .catch((error) => {\r\n console.log(\r\n \"Unsuccessfull Update Settings, please contact Administrator\"\r\n );\r\n if (abortController) abortController.abort();\r\n });\r\n }\r\n }\r\n\r\n function validate() {\r\n if (!otp) {\r\n Helpers.errorNotify(t(\"Please_enter_OTP\"), i18n.language);\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n function submit(e) {\r\n e.preventDefault();\r\n if (!validate()) {\r\n return;\r\n }\r\n setVisible(true);\r\n\r\n var isIPOQuickSell = localStorage.getItem(Constants.localStorageConstants.EnableIPOQuickSell).toUpperCase() === \"TRUE\" && localStorage.getItem(\"IsNormalLogin\") === \"false\" ? \"Y\" : \"N\";\r\n var passwordToOTp = (localStorage.getItem(\"passwordToOTp\") === \"false\") ? \"\" : localStorage.getItem(\"passwordToOTp\");\r\n var isAuthorizeOnly = (localStorage.getItem(\"passwordToOTp\") === \"false\") ? \"Y\" : \"N\";\r\n\r\n var response = registrationsOTP(localStorage.getItem(\"username\"), otp, \"\", passwordToOTp, \"\", \"\", isAuthorizeOnly, isIPOQuickSell);\r\n\r\n //console.log(response);\r\n response\r\n .then((response) => {\r\n setVisible(false);\r\n\r\n let responseJson = response.data;\r\n let webcode = responseJson[\"WebCode\"];\r\n let isFirstLoggedIn = localStorage.getItem(\"isFirstLoggedIn\");\r\n\r\n if (\r\n webcode !== undefined &&\r\n webcode !== null &&\r\n webcode !== \"\" &&\r\n webcode !== \"-1\" &&\r\n responseJson[\"Status\"] === \"0\"\r\n ) {\r\n if (isFirstLoggedIn === \"Y\") {\r\n localStorage.setItem(\"WebCode\", webcode);\r\n localStorage.setItem(\"loginFirst\", true);\r\n localStorage.setItem(\"validValue\", otp);\r\n localStorage.setItem(\"isTermsAndConditions\", response.data[\"isTermsAndConditions\"]);\r\n getUserSettings();\r\n setRedirect(AppUrls.changePassword);\r\n //localStorage.setItem(\"user\", JSON.stringify(response.data));\r\n return;\r\n } else {\r\n Helpers.successNotify(t(\"Successful_Login!\"), i18next.language);\r\n localStorage.setItem(\"WebCode\", webcode);\r\n localStorage.setItem(\"loginFirst\", true);\r\n localStorage.setItem(\"isTermsAndConditions\", response.data[\"isTermsAndConditions\"]);\r\n getUserSettings();\r\n //localStorage.setItem(\"user\", JSON.stringify(response.data));\r\n\r\n\r\n if (response.data[\"isTermsAndConditions\"] === \"N\" &&\r\n ((localStorage.getItem(Constants.localStorageConstants.EnableIPOQuickSell).toUpperCase() === \"TRUE\" && localStorage.getItem(\"IsNormalLogin\") === \"false\") || localStorage.getItem(Constants.localStorageConstants.company_name).toUpperCase() === \"IFS\")) {\r\n setRedirect(AppUrls.TermsAndConditions);\r\n\r\n }\r\n else {\r\n setRedirect(AppUrls.trading);\r\n }\r\n }\r\n } else {\r\n Helpers.errorNotify(t(\"invalidOTP\"), i18next.language)\r\n }\r\n })\r\n .catch((error) => {\r\n setVisible(false);\r\n console.log(\"error\", error);\r\n Helpers.errorNotify(error.message, i18n.language);\r\n });\r\n }\r\n\r\n var hideLoader = \"\";\r\n if (visible) {\r\n hideLoader = \"\";\r\n } else {\r\n hideLoader = \"hide-loader\";\r\n }\r\n\r\n if (redirect) {\r\n return ;\r\n }\r\n\r\n const onChange = (otp) => {\r\n setOtp(otp);\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {/* setOtp(e.target.value)}\r\n /> */}\r\n
\r\n
\r\n
\r\n setOtp(e.target.value)}\r\n autoComplete=\"new-password\"\r\n disabled={\r\n localStorage.getItem(\r\n Constants.localStorageConstants.company_name\r\n ) === \"CIBC\"\r\n ? true\r\n : false\r\n }\r\n />\r\n {\r\n e.preventDefault();\r\n if (otpType === \"password\") {\r\n setotpType(\"text\");\r\n } else {\r\n setotpType(\"password\");\r\n }\r\n }}\r\n >\r\n
\r\n
\r\n \r\n {t(\"sendOtp\")}\r\n \r\n
\r\n
\r\n {\r\n event.preventDefault();\r\n setRedirect(AppUrls.login);\r\n //localStorage.getItem(Constants.localStorageConstants.company_name) === \"CIBC\" ? setRedirect(AppUrls.loginCIBC) : setRedirect(AppUrls.login);\r\n }}\r\n >\r\n {t(\"cancelForgotPassword\")}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n {localStorage.getItem(Constants.localStorageConstants.company_name) === \"CIBC\" ?\r\n
\r\n
\r\n \r\n
\r\n
\r\n : null}\r\n
\r\n );\r\n}\r\n\r\nexport default OTP;\r\n","import React, { useState/* , useEffect */ } from 'react';\r\nimport './LoginSignup.css'\r\nimport { toast } from \"react-toastify\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Redirect } from 'react-router-dom';\r\nimport axios from 'axios';\r\n//loader\r\nimport \"react-loader-spinner/dist/loader/css/react-spinner-loader.css\";\r\nimport Loader from 'react-loader-spinner';\r\n\r\nimport * as Constants from \"../../constants/Constants\";\r\nimport * as utils from \"../../global/utils\";\r\nimport * as AppUrls from \"../../constants/AppUrls\";\r\nimport * as Helpers from \"../../global/Helpers\";\r\nimport i18next from 'i18next';\r\n\r\n\r\ntoast.configure();\r\n\r\nfunction ChangePassword() {\r\n const { t } = useTranslation();\r\n const [username, setUsername] = useState(\"\");\r\n // const [oldPassword, setOldPassword] = useState(\"\");\r\n const [oldPassword, setoldPassword] = useState(\"\");\r\n const [password, setPassword] = useState(\"\");\r\n const [confirmPassword, setConfirmPassword] = useState(\"\");\r\n const [redirect, setRedirect] = useState(null);\r\n const [visible, setVisible] = useState(false);\r\n\r\n // const errorNotify = (message) => {\r\n // toast.error(message, {\r\n // position: toast.POSITION.BOTTOM_CENTER,\r\n // hideProgressBar: true,\r\n // autoClose: Constants.errorNotifyDuration\r\n // });\r\n // };\r\n\r\n function validate() {\r\n\r\n // if (!username) {\r\n // errorNotify(\"Please enter username and try again.\");\r\n // return false;\r\n // }\r\n\r\n // if (!oldPassword) {\r\n // errorNotify(\"Please enter old password and try again.\");\r\n // return false\r\n // }\r\n\r\n // if (!oldPassword) {\r\n // errorNotify(\"Please enter old password and try again.\");\r\n // return false\r\n // }\r\n if (!password) {\r\n Helpers.errorNotify(t(\"Please_enter_password_and_try_again.\"), i18next.language);\r\n return false\r\n }\r\n\r\n if (!confirmPassword) {\r\n Helpers.errorNotify(t(\"Please_enter_confirm_password_and_try_again.\"), i18next.language);\r\n return false\r\n }\r\n\r\n\r\n if (password !== confirmPassword) {\r\n Helpers.errorNotify(t(\"passwordnotmatchconfirmedpassword\"), i18next.language)\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function submit(e) {\r\n\r\n e.preventDefault();\r\n if (!validate()) {\r\n return;\r\n }\r\n callChangePasswordApi();\r\n }\r\n\r\n const callChangePasswordApi = async () => {\r\n\r\n setVisible(true);\r\n const params = {\r\n \"UserName\": localStorage.getItem(\"username\"),//username,\r\n \"Password\": utils.encryptedString(password),\r\n \"Password2\": utils.encryptedString(confirmPassword),\r\n \"MobileType\": \"\",\r\n \"SessionID\": \"\",\r\n \"UserIPAddress\": \"185.99.34.25\",\r\n \"TokenID\": \"\",\r\n \"HdnKey\": \"\",\r\n \"FingerPrintID\": \"\",\r\n \"FingerPrintLevel\": \"\",\r\n \"RegistrationId\": \"\",\r\n \"isAuthorizeOnly\": \"N\",\r\n \"OldPassword\": localStorage.getItem(\"passwordToOTp\"),\r\n \"WebCode\": localStorage.getItem(\"WebCode\")\r\n };\r\n let url = Constants.baseURL + Constants.changesPassword;\r\n // let changesPasswordResponse = utils.changesPassword(params);\r\n // changesPasswordResponse\r\n let options = { withCredentials: true };\r\n\r\n await axios.post(url, params, options)\r\n .then((response) => {\r\n setVisible(false);\r\n // console.log(response);\r\n debugger;\r\n var status = response.data[\"Status\"];\r\n if (status === \"0\") {\r\n toast.success(\"Password changed Successfully.\", {\r\n position: toast.POSITION.BOTTOM_CENTER,\r\n hideProgressBar: true,\r\n autoClose: 1000\r\n });\r\n let user = JSON.stringify(response.data);\r\n let webcode = response.data[\"WebCode\"];\r\n //localStorage.setItem(\"user\", user);\r\n localStorage.setItem(\"username\", username);\r\n localStorage.setItem(\"WebCode\", webcode);\r\n localStorage.setItem(\"isTermsAndConditions\", response.data[\"isTermsAndConditions\"]);\r\n\r\n //window[\"connectionInitialize\"](username, webcode);\r\n debugger\r\n // if (response.data[\"isTermsAndConditions\"] === \"N\" && localStorage.getItem(Constants.localStorageConstants.company_name).toUpperCase() === \"IFS\") {\r\n if (response.data[\"isTermsAndConditions\"] === \"N\" &&\r\n ((localStorage.getItem(Constants.localStorageConstants.EnableIPOQuickSell).toUpperCase() === \"TRUE\" && localStorage.getItem(\"IsNormalLogin\") === \"false\") || localStorage.getItem(Constants.localStorageConstants.company_name).toUpperCase() === \"IFS\")) {\r\n setRedirect(AppUrls.TermsAndConditions);\r\n }\r\n else {\r\n setRedirect(AppUrls.trading);\r\n }\r\n } else if (status === null) {\r\n setRedirect(AppUrls.login);\r\n // localStorage.getItem(Constants.localStorageConstants.company_name) === \"CIBC\" ? setRedirect(AppUrls.loginCIBC) : setRedirect(AppUrls.login);\r\n\r\n } else {\r\n debugger\r\n // Helpers.errorNotify(response.data[t(\"ErrorMsg\"),i18next.language]) \r\n Helpers.errorNotify(response.data[\"ErrorMsg\"], i18next.language)\r\n }\r\n })\r\n .catch((error) => {\r\n setVisible(false);\r\n console.log(error);\r\n Helpers.errorNotify(error.message, i18next.language);\r\n });\r\n\r\n }\r\n\r\n var hideLoader = \"\";\r\n if (visible) {\r\n hideLoader = \"\";\r\n } else {\r\n hideLoader = \"hide-loader\";\r\n }\r\n\r\n\r\n if (redirect) {\r\n return ;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {/*
\r\n setUsername(e.target.value)} />\r\n
*/}\r\n {/*
\r\n setOldPassword(e.target.value)}\r\n />\r\n
*/}\r\n {/*
\r\n setoldPassword(e.target.value)}\r\n />\r\n
*/}\r\n
\r\n setPassword(e.target.value)}\r\n />\r\n
\r\n
\r\n setConfirmPassword(e.target.value)}\r\n />\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {\r\n event.preventDefault();\r\n setRedirect(AppUrls.login);\r\n // localStorage.getItem(Constants.localStorageConstants.company_name) === \"CIBC\" ? setRedirect(AppUrls.loginCIBC) : setRedirect(AppUrls.login);\r\n\r\n\r\n }}\r\n >\r\n {t(\"cancelForgotPassword\")}\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default ChangePassword;","export const RelatedLicences = {\r\n LicencesAgGrid: 'CompanyName=FIRST Information Technology,LicensedApplication=FIT eTrade,LicenseType=SingleApplication,LicensedConcurrentDeveloperCount=1,LicensedProductionInstancesCount=3,AssetReference=AG-021214,ExpiryDate=18_October_2022_[v2]_MTY2NjA0NzYwMDAwMA==c6ff7a0b054e51eb41a303672398b044'\r\n}","export default __webpack_public_path__ + \"static/media/Shuaa_splach_center.9405122e.png\";","import React from 'react'\r\n\r\n// class IFrameComponent extends React.Component {\r\n// constructor(props) {\r\n// super(props);\r\n// }\r\n// state = {}\r\n// render() {\r\n// return (\r\n// <>\r\n// \r\n// \r\n// \r\n// );\r\n// }\r\n// }\r\n\r\n// export default IFrameComponent;\r\n\r\n\r\nconst IFrameComponent = (props) => {\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n}\r\nexport default IFrameComponent;","\r\nimport * as utils from \"../../global/utils\";\r\nimport * as Helpers from \"../../global/Helpers\";\r\n\r\nimport * as Constants from \"../../constants/Constants\";\r\n\r\nimport * as AppUrls from \"../../constants/AppUrls\";\r\nimport { Redirect } from \"react-router\";\r\nimport React from 'react';\r\nimport { withTranslation } from 'react-i18next';\r\n\r\n\r\nclass SubComponent extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n state = {\r\n\r\n redirect: null,\r\n disabledButton: true,\r\n checkedDetail: false,\r\n }\r\n\r\n callLogOff = () => {\r\n\r\n let logOffResponse = utils.logOff();\r\n logOffResponse\r\n .then((response) => {\r\n\r\n //console.log(\"Logged Off\", response)\r\n if (response.status === 200) {\r\n localStorage.removeItem(\"user\");\r\n localStorage.removeItem(\"ExpiredDocument\");\r\n let UserName = localStorage.getItem(\"username\");\r\n let RememberMe = localStorage.getItem(\"isRememberMe\");\r\n let language = localStorage.getItem(\"language\");\r\n let Comapnyname = localStorage.getItem(\r\n Constants.localStorageConstants.company_name\r\n );\r\n var prev = Helpers.getPreviousConfig();\r\n\r\n localStorage.clear();\r\n localStorage.setItem(\"language\", language);\r\n localStorage.setItem(Constants.localStorageConstants.company_name, Comapnyname);\r\n\r\n \r\n const box = document.getElementsByClassName('login_logo')[0];\r\n if(box !== undefined && box !== null)\r\n box.style.visibility = 'visible';\r\n\r\n const boxTitle = document.getElementsByClassName('LoginTitle')[0];\r\n if(boxTitle !== undefined && boxTitle !== null)\r\n boxTitle.style.visibility = 'visible';\r\n\r\n\r\n const boxMsg = document.getElementsByClassName('WelcomeMessageDiv')[0];\r\n if(boxMsg !== undefined && boxMsg !== null)\r\n boxMsg.style.visibility = 'visible'; \r\n\r\n\r\n const boxLogin = document.getElementsByClassName('LoginFormContainer')[0];\r\n if(boxLogin !== undefined && boxLogin !== null){\r\n boxLogin.style.background = 'linear-gradient(313deg, rgb(142 56 56 / 0%) 0%, rgb(196 187 187 / 7%) 9%, #c1c0c0 79%, rgb(208 193 193 / 0%) 100%)';\r\n boxLogin.style.boxShadow = '0px 0px 10px 5px #8888';\r\n boxLogin.style.borderStyle = 'inset';\r\n \r\n }\r\n \r\n\r\n Helpers.SetpreviosConfig(prev);\r\n this.setState({ redirect: AppUrls.login }, () => {\r\n this.disconnectSignalr();\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n //this.props.setIsLoaderVisible(false);\r\n console.log(\"errorcallLogOff\", error);\r\n });\r\n };\r\n\r\n disconnectSignalr = () => {\r\n\r\n if (\r\n this.props.signalr_connection !== undefined &&\r\n this.props.signalr_connection !== null &&\r\n this.props.signalr_connection.state === 1\r\n ) {\r\n this.props.signalr_connection.proxies.myhub.invoke(\"Disconnected\");\r\n }\r\n if (\r\n this.props.signalr_connection !== undefined &&\r\n this.props.signalr_connection !== null\r\n ) {\r\n this.props.signalr_connection.stop();\r\n Helpers.emptyCache();\r\n }\r\n };\r\n\r\n UpdateTermsAndConditionsVersion = () => {\r\n\r\n let UpdateTermsAndConditionsVersionResponse = utils.UpdateTermsAndConditionsVersion(this);\r\n UpdateTermsAndConditionsVersionResponse\r\n .then((response) => response.data)\r\n .then((data) => {\r\n \r\n console.log(\"UpdateTermsAndConditionsVersionResponse\", data)\r\n if (data) {\r\n this.setState({ redirect: AppUrls.trading })\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n };\r\n \r\n render() {\r\n if (this.state.redirect !== null) {\r\n return ;\r\n }\r\n return (\r\n <>\r\n
\r\n {\r\n\r\n var disable = true;\r\n if (checked.target.checked) {\r\n disable = false\r\n }\r\n\r\n this.setState({\r\n checkedDetail: checked.target.checked,\r\n disabledButton: disable\r\n })\r\n\r\n }}>\r\n\r\n \r\n \r\n {this.props.t(\"CheckboxTextTermsAndConditions\")}\r\n

\r\n
\r\n\r\n
\r\n\r\n {\r\n this.UpdateTermsAndConditionsVersion();\r\n\r\n }}\r\n disabled={this.state.disabledButton}\r\n >\r\n {this.props.t(\"IAgree\")}\r\n \r\n\r\n \r\n {this.props.t(\"signout\")}\r\n \r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\n\r\nexport default (withTranslation()(SubComponent));","import { withTranslation } from 'react-i18next';\r\n// import * as utils from \"../../global/utils\";\r\nimport * as Helpers from \"../../global/Helpers\";\r\nimport CustomReactComponent from \"../shared/CustomReactComponent/CustomReactComponent\";\r\n\r\n// import * as Constants from \"../../constants/Constants\";\r\n\r\n// import * as AppUrls from \"../../constants/AppUrls\";\r\nimport { Redirect } from \"react-router\";\r\nimport { connect } from \"react-redux\";\r\nimport IFrameComponent from \"../IFrameComponent/IFrameComponent\";\r\n\r\n\r\nimport React, { useState, useEffect } from 'react';\r\n// import { useTranslation } from \"react-i18next\";\r\n\r\nimport SubComponent from \"./SubComponent\"\r\nimport \"./TermsAndConditions.css\"\r\n\r\nimport { confirmAlert } from 'react-confirm-alert'; // Import\r\nimport 'react-confirm-alert/src/react-confirm-alert.css'; // Import css\r\nimport * as utils from \"../../global/utils\";\r\nimport * as Constants from \"../../constants/Constants\"\r\nclass TermsAndConditions extends CustomReactComponent {\r\n constructor(props) {\r\n super(props);\r\n }\r\n state = {\r\n iframeSrc: \"\",\r\n redirect: null,\r\n TermsAndConditionsText: \"\" \r\n }\r\n\r\n componentDidMount() {\r\n \r\n var DeviceConfigs = JSON.parse(localStorage.getItem(\"DeviceConfigs\"));\r\n if (DeviceConfigs !== null && DeviceConfigs !== undefined) {\r\n var url = this.props.i18n.language === \"ar\" ? DeviceConfigs.TermsAndConditionsAR : DeviceConfigs.TermsAndConditions\r\n let theme = localStorage.getItem(\"theme\");\r\n if (theme === null || theme === undefined) { theme = \"light\"; }\r\n var TermsAndConditionsURL = url + \"fitapp=etrade-\" + theme\r\n this.setState({ iframeSrc: TermsAndConditionsURL })\r\n }\r\n\r\n \r\n const box = document.getElementsByClassName('login_logo')[0];\r\n box.style.visibility = 'hidden';\r\n \r\n const boxTitle = document.getElementsByClassName('LoginTitle')[0];\r\n if(boxTitle !== undefined && boxTitle !== null)\r\n boxTitle.style.visibility = 'hidden';\r\n\r\n\r\n const boxMsg = document.getElementsByClassName('WelcomeMessageDiv')[0];\r\n if(boxMsg !== undefined && boxMsg !== null)\r\n boxMsg.style.visibility = 'hidden';\r\n\r\n const boxLogin = document.getElementsByClassName('LoginFormContainer')[0];\r\n if(boxLogin !== undefined && boxLogin !== null){\r\n boxLogin.style.background = 'none';\r\n boxLogin.style.boxShadow = 'none';\r\n boxLogin.style.border = 'none';\r\n\r\n }\r\n\r\n \r\n this.GetTermsAndConditionsText(this.props.i18n.language);\r\n } \r\n\r\n // componentDidUpdate(prevProps) {\r\n // if (prevProps.i18n.language !== this.props.i18n.language) {\r\n \r\n // this.GetTermsAndConditionsText(this.props.i18n.language);\r\n // }\r\n // }\r\n \r\n \r\n\r\n GetTermsAndConditionsText = (appLang) => {\r\n let GetTermsAndConditionsTextResponse = utils.GetTermsAndConditionsText(appLang);\r\n GetTermsAndConditionsTextResponse\r\n .then((response) => response.data)\r\n .then((data) => {\r\n \r\n console.log(\"GetTermsAndConditionsTextResponse\", data) \r\n this.setState({ TermsAndConditionsText: data })\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n \r\n render() {\r\n let leftLocalized = \"left\";\r\n let direction = \"ltr\";\r\n let marginInline = \"2px\";\r\n if (this.props.i18n.language === \"ar\") {\r\n direction = \"rtl\";\r\n marginInline = \"21px\";\r\n leftLocalized = \"right\";\r\n }\r\n if (this.state.redirect !== null) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n\r\n {this.props.t(\"TermsAndConditions\")}\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n \r\n {\r\n localStorage.getItem(Constants.localStorageConstants.company_name).toUpperCase() === \"IFS\" ? \r\n :
\r\n } \r\n\r\n \r\n\r\n \r\n
\r\n \r\n );\r\n }\r\n}\r\nconst mapStateToProps = (state) => {\r\n return {\r\n\r\n signalr_connection: state.signalr_connection,\r\n\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(withTranslation()(TermsAndConditions)) ;\r\n\r\n\r\n// const IFrameComponent2 = (props) => {\r\n\r\n// const { i18n } = useTranslation();\r\n\r\n// const [iframeSrc, setIframeSrc] = useState(\"\");\r\n// const [redirect, setRedirect] = useState(null);\r\n// const [disabledButton, setisDisabledButton] = useState(true);\r\n// const [checkedDetail, setCheckedDetail] = useState(false);\r\n\r\n// useEffect(() => {\r\n\r\n// /* componentDidMount */\r\n// \r\n// var DeviceConfigs = JSON.parse(localStorage.getItem(\"DeviceConfigs\"));\r\n// if (DeviceConfigs !== null && DeviceConfigs !== undefined) {\r\n// var url = i18n.language === \"ar\" ? DeviceConfigs.TermsAndConditionsAR : DeviceConfigs.TermsAndConditions\r\n// let theme = localStorage.getItem(\"theme\");\r\n// if (theme === null || theme === undefined) { theme = \"light\"; }\r\n// var TermsAndConditionsURL = url + \"fitapp=etrade-\" + theme\r\n\r\n\r\n// setIframeSrc(TermsAndConditionsURL);\r\n\r\n// }\r\n\r\n// }, [])\r\n\r\n\r\n// function callLogOff() {\r\n\r\n// let logOffResponse = utils.logOff();\r\n// logOffResponse\r\n// .then((response) => {\r\n// \r\n// //console.log(\"Logged Off\", response)\r\n// if (response.status === 200) {\r\n// localStorage.removeItem(\"user\");\r\n// localStorage.removeItem(\"ExpiredDocument\");\r\n// let UserName = localStorage.getItem(\"username\");\r\n// let RememberMe = localStorage.getItem(\"isRememberMe\");\r\n// let language = localStorage.getItem(\"language\");\r\n// let Comapnyname = localStorage.getItem(\r\n// Constants.localStorageConstants.company_name\r\n// );\r\n// var prev = Helpers.getPreviousConfig();\r\n\r\n// localStorage.clear();\r\n// localStorage.setItem(\"language\", language);\r\n// localStorage.setItem(Constants.localStorageConstants.company_name, Comapnyname);\r\n\r\n// Helpers.SetpreviosConfig(prev);\r\n// disconnectSignalr();\r\n// setRedirect(AppUrls.login);\r\n\r\n\r\n// }\r\n// })\r\n// .catch((error) => {\r\n// //this.props.setIsLoaderVisible(false);\r\n// console.log(\"errorcallLogOff\", error);\r\n// });\r\n// };\r\n\r\n// function disconnectSignalr() {\r\n// \r\n// if (\r\n// props.signalr_connection !== undefined &&\r\n// props.signalr_connection !== null &&\r\n// props.signalr_connection.state === 1\r\n// ) {\r\n// props.signalr_connection.proxies.myhub.invoke(\"Disconnected\");\r\n// }\r\n// if (\r\n// props.signalr_connection !== undefined &&\r\n// props.signalr_connection !== null\r\n// ) {\r\n// props.signalr_connection.stop();\r\n// Helpers.emptyCache();\r\n// }\r\n// };\r\n\r\n// let leftLocalized = \"left\";\r\n// let direction = \"ltr\";\r\n// if (i18n.language === \"ar\") {\r\n// direction = \"rtl\";\r\n// }\r\n// if (redirect !== null) {\r\n// return ;\r\n// }\r\n// return (\r\n//
\r\n// \r\n//
\r\n// \r\n\r\n// {i18n.t(\"TermsAndConditions\")}\r\n// \r\n//
\r\n// \r\n\r\n//
\r\n// \r\n// \r\n\r\n// \r\n// {/* \r\n// */}\r\n\r\n//
\r\n// {\r\n// \r\n// var disable = true;\r\n// if (checked.target.checked) {\r\n// disable = false\r\n// }\r\n// setCheckedDetail(checked.target.checked);\r\n// setisDisabledButton(disable);\r\n\r\n \r\n// }}>\r\n\r\n// \r\n//

{i18n.t(\"CheckboxTextTermsAndConditions\")}

\r\n//
\r\n\r\n//
\r\n\r\n// {\r\n// setRedirect(AppUrls.trading);\r\n\r\n// }}\r\n// disabled={disabledButton}\r\n// >\r\n// {i18n.t(\"IAgree\")}\r\n// \r\n\r\n// \r\n// {i18n.t(\"signout\")}\r\n// \r\n//
\r\n// \r\n// \r\n\r\n\r\n\r\n\r\n\r\n// );\r\n// }\r\n// const mapStateToProps = (state) => {\r\n// return {\r\n\r\n// signalr_connection: state.signalr_connection,\r\n\r\n// };\r\n// };\r\n\r\n// export default connect(mapStateToProps, null)(withTranslation()(IFrameComponent2));\r\n\r\n\r\n\r\n\r\n\r\n\r\n","\r\nimport React, { Component, Suspense, lazy } from \"react\";\r\n\r\nimport \"./App.css?ver=1\";\r\nimport './components/Header/Header.css';\r\nimport './components/Main/Main.css';\r\nimport './components/FitAgGrid/FitAgGridContainer.css';\r\n\r\nimport { Route, Switch, Redirect } from \"react-router-dom\";\r\n\r\n\r\nimport AuthContainer from \"./components/LoginSignup/AuthContainer\";\r\nimport Login from \"./components/LoginSignup/Login\";\r\nimport SellIPOShares from \"./components/LoginSignup/SellIPOShares\";\r\n\r\n// import Signup from \"./components/LoginSignup/Signup\";\r\nimport ForgetPassword from \"./components/LoginSignup/ForgetPassword\";\r\nimport ForgotUsername from \"./components/LoginSignup/ForgotUsername\";\r\nimport OTP from \"./components/LoginSignup/OTP\";\r\n\r\nimport ChangePassword from \"./components/LoginSignup/ChangePassword\";\r\n\r\nimport { isLoggedIn } from './global/Helpers';\r\n\r\nimport * as AppUrls from './constants/AppUrls';\r\nimport * as Helpers from './global/Helpers';\r\nimport * as Licences from './global/Licences';\r\nimport * as Constants from './constants/Constants';\r\n\r\nimport { withTranslation } from 'react-i18next';\r\n\r\nimport SplashScreenImage from \"./assets/images/splash_icons/Shuaa_splach_center.png?ver=1\"\r\n// import SplashScreenImage from \"./assets/images/splash_icons/IS_logo_icon_white.png\"\r\nimport { confirmAlert } from \"react-confirm-alert\";\r\nimport { LicenseManager } from \"ag-grid-enterprise\";\r\n\r\n\r\nimport { toast } from \"react-toastify\";\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\n// import firebase from '././global/firebase';\r\nimport ReactGA from 'react-ga'; //Google Analytics:\r\n\r\nimport \"react-loader-spinner/dist/loader/css/react-spinner-loader.css\";\r\nimport Loader from 'react-loader-spinner';\r\n\r\n import TermsAndConditions from './components/TermsAndConditions/TermsAndConditions'\r\n\r\n\r\n// import MobileDetect from 'mobile-detect';\r\n// import $ from \"jquery\";\r\n\r\ntoast.configure();\r\n\r\nconst Container = React.lazy(() => import('./components/Main/Container'));\r\n\r\nclass App extends Component {\r\n abortController = new window.AbortController();\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n value: \"en\",\r\n isPopulated: false,\r\n redirect: null,\r\n isMobile: false,\r\n isLoaderVisible: false\r\n }\r\n\r\n this.getConfig();\r\n window.appComponent = this;\r\n // if (window.orientation == 0) {\r\n // document.getElementById('portrait').style.display = '';\r\n // document.getElementById('landscape').style.display = 'none';\r\n // }\r\n // else if (window.orientation == 90) {\r\n // document.getElementById('portrait').style.display = 'none';\r\n // document.getElementById('landscape').style.display = '';\r\n // }\r\n //const [isMobile, setIsMobile] = useState(true);\r\n // var md = new MobileDetect(window.navigator.userAgent);\r\n // //var x = md.is('iPhone');\r\n // if (md.os()) {\r\n // if (md.os().toUpperCase() == 'IOS') {\r\n // this.setState({ isMobile: true });\r\n // }\r\n // else if (md.os().toUpperCase() == 'ANDROIDOS') {\r\n // this.setState({ isMobile: true });\r\n // }\r\n // else {\r\n // this.getConfig();\r\n // window.appComponent = this;\r\n // }\r\n // } else {\r\n // this.getConfig();\r\n // window.appComponent = this;\r\n // }\r\n }\r\n\r\n getConfig = () => {\r\n\r\n LicenseManager.setLicenseKey(Licences.RelatedLicences.LicencesAgGrid);\r\n\r\n fetch(process.env.PUBLIC_URL + '/config.json?var=' + Math.random(), {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json'\r\n }\r\n })\r\n .then((r) => r.json())\r\n .then((config) => {\r\n\r\n //console.log(\"config response: \", data);\r\n var data = config.relatedConfig[config.company_name];\r\n document.title = data.website_name;\r\n // $(\"#fav\").attr(\"href\",)\r\n //1. remove old values\r\n\r\n Helpers.removeExistingItem(Constants.localStorageConstants.app_path);\r\n Helpers.removeExistingItem(Constants.localStorageConstants.company_name);\r\n Helpers.removeExistingItem(Constants.localStorageConstants.Region);\r\n Helpers.removeExistingItem(Constants.localStorageConstants.server_url);\r\n Helpers.removeExistingItem(Constants.localStorageConstants.chart_iq_url);\r\n Helpers.removeExistingItem(Constants.localStorageConstants.chart_trading_url);\r\n Helpers.removeExistingItem(Constants.localStorageConstants.signalr_url);\r\n Helpers.removeExistingItem(Constants.localStorageConstants.signalr_hub);\r\n Helpers.removeExistingItem(Constants.localStorageConstants.last_Work_day);\r\n Helpers.removeExistingItem(Constants.localStorageConstants.Foreign_Market);\r\n Helpers.removeExistingItem(Constants.localStorageConstants.PortfolioProvider);\r\n Helpers.removeExistingItem(Constants.localStorageConstants.EnableTags);\r\n Helpers.removeExistingItem(Constants.localStorageConstants.EnableIPOQuickSell);\r\n Helpers.removeExistingItem(Constants.localStorageConstants.EnableSymbolFullName);\r\n\r\n\r\n //2. set new values\r\n localStorage.setItem(Constants.localStorageConstants.app_path, data.app_path);\r\n localStorage.setItem(Constants.localStorageConstants.company_name, data.company_name);\r\n localStorage.setItem(Constants.localStorageConstants.Region, data.Region);\r\n localStorage.setItem(Constants.localStorageConstants.server_url, data.server_url);\r\n localStorage.setItem(Constants.localStorageConstants.chart_iq_url, data.chart_iq_url);\r\n localStorage.setItem(Constants.localStorageConstants.chart_trading_url, data.chart_trading_url);\r\n localStorage.setItem(Constants.localStorageConstants.signalr_url, data.signalr_url);\r\n localStorage.setItem(Constants.localStorageConstants.signalr_hub, data.signalr_hub);\r\n localStorage.setItem(Constants.localStorageConstants.last_Work_day, data.last_Work_day);\r\n localStorage.setItem(Constants.localStorageConstants.Foreign_Market, data.Foreign_Market);\r\n localStorage.setItem(Constants.localStorageConstants.PortfolioProvider, data.PortfolioProvider);\r\n localStorage.setItem(Constants.localStorageConstants.EnableTags, data.EnableTags);\r\n localStorage.setItem(Constants.localStorageConstants.EnableIPOQuickSell, data.EnableIPOQuickSell);\r\n localStorage.setItem(Constants.localStorageConstants.EnableSymbolFullName, data.EnableSymbolFullName);\r\n\r\n\r\n //3. update urls\r\n Constants.updateUrls(data.server_url, data.signalr_url, data.signalr_hub);\r\n AppUrls.updateAppUrls(data.app_path);\r\n\r\n //4. set isPopulated to finish splash screen\r\n this.setState({ isPopulated: true });\r\n\r\n })\r\n }\r\n\r\n componentDidMount() {\r\n // var messaging = firebase.messaging();\r\n if (this.props.i18n.language === \"ar\" && localStorage.getItem(\"language\") !== null && localStorage.getItem(\"language\") === \"ar\") {\r\n this.props.i18n.changeLanguage(\"ar\");\r\n this.setState({ value: \"ar\" });\r\n }\r\n // Google Analytics\r\n ReactGA.initialize('UA-150693920-1');\r\n ReactGA.pageview(window.location.pathname + window.location.search);\r\n\r\n // // GetToken for client (firebase notification):\r\n // messaging.getToken({ vapidKey: 'BH_g7O3bUxHx9JUpBAi0Ko673EL3I2eqzGSK-QTz59Hz1dbe-ngF40Kyh1Qn1hQhS2Tg2Fi5PvmjZLeVg_fIuYg' }).then((currentToken) => {\r\n // if (currentToken) {\r\n // console.log('current token for client: ', currentToken);\r\n // } else {\r\n\r\n // console.log('No registration token available. Request permission to generate one.');\r\n\r\n // }\r\n // }).catch((err) => {\r\n // console.log('An error occurred while retrieving token. ', err);\r\n\r\n // });\r\n\r\n }\r\n\r\n changeLanguageNew = () => {\r\n\r\n var newlang = \"\";\r\n if (this.state.value === \"en\") {\r\n newlang = \"ar\";\r\n } else {\r\n newlang = \"en\";\r\n }\r\n localStorage.setItem(\"language\", newlang);\r\n this.setState({ value: newlang });\r\n this.props.i18n.changeLanguage(newlang);\r\n };\r\n\r\n errorHandling = () => {\r\n\r\n confirmAlert({\r\n // title: 'Confirm to submit',\r\n message: this.props.i18n.t(\"sessionclientexpired\"),\r\n buttons: [\r\n {\r\n label: 'Ok',\r\n onClick: () => {\r\n let UserName = localStorage.getItem(\"username\");\r\n let RememberMe = localStorage.getItem(\"isRememberMe\");\r\n let language = localStorage.getItem(\"language\");\r\n localStorage.clear();\r\n if (RememberMe !== undefined || RememberMe !== null) {\r\n localStorage.setItem(\"isRememberMe\", RememberMe);\r\n }\r\n if (RememberMe === \"true\") {\r\n if (UserName !== undefined || UserName !== null) {\r\n localStorage.setItem(\"username\", UserName);\r\n }\r\n }\r\n if (language !== undefined || language !== null) {\r\n localStorage.setItem(\"language\", language === \"null\" ? \"en\" : language);\r\n }\r\n // localStorage.removeItem(\"user\");\r\n Helpers.emptyCache();\r\n }\r\n }\r\n ],\r\n closeOnEscape: false,\r\n closeOnClickOutside: false,\r\n })\r\n\r\n setTimeout(() => {\r\n let UserName = localStorage.getItem(\"username\");\r\n let RememberMe = localStorage.getItem(\"isRememberMe\");\r\n let language = localStorage.getItem(\"language\");\r\n localStorage.clear();\r\n if (RememberMe !== undefined || RememberMe !== null) {\r\n localStorage.setItem(\"isRememberMe\", RememberMe);\r\n }\r\n if (RememberMe === \"true\") {\r\n if (UserName !== undefined || UserName !== null) {\r\n localStorage.setItem(\"username\", UserName);\r\n }\r\n }\r\n if (language !== undefined || language !== null) {\r\n localStorage.setItem(\"language\", language === \"null\" ? \"en\" : language);\r\n }\r\n // localStorage.removeItem(\"user\");\r\n Helpers.emptyCache();\r\n }, 10000);\r\n };\r\n\r\n errorNotify = (message) => {\r\n toast.error(message, {\r\n position: toast.POSITION.BOTTOM_CENTER,\r\n hideProgressBar: true,\r\n autoClose: Constants.errorNotifyDuration\r\n });\r\n };\r\n\r\n setIsLoaderVisible = (isLoaderVisible) => {\r\n if (this.state.isLoaderVisible !== isLoaderVisible)\r\n this.setState({ isLoaderVisible: isLoaderVisible });\r\n }\r\n\r\n getLoader = (isLoaderVisible) => {\r\n return (\r\n isLoaderVisible\r\n ?
\r\n
\r\n \r\n
\r\n
\r\n : null\r\n )\r\n }\r\n\r\n render() {\r\n // \r\n let mobileView = Helpers.getIsIPad() ? \"mobile-view\" : \"web-view\"\r\n let companyName = localStorage.getItem(Constants.localStorageConstants.company_name) + \"-CSS\"\r\n let appClassLanguage = \"app-en \" + mobileView;\r\n if (this.props.i18n.language === \"ar\") {\r\n appClassLanguage = \"app-ar \" + mobileView;\r\n }\r\n\r\n if (this.state.redirect) {\r\n return \r\n }\r\n // var isMobile = false\r\n // var md = new MobileDetect(window.navigator.userAgent);\r\n // //var x = md.is('iPhone');\r\n // if (md.os()) {\r\n // if (md.os().toUpperCase() == 'IOS') {\r\n // isMobile = true;\r\n // window.location = Constants.redirectMobileURLS.IOS;\r\n // }\r\n // else if (md.os().toUpperCase() == 'ANDROIDOS') {\r\n // isMobile = true;\r\n // window.location = Constants.redirectMobileURLS.Android;\r\n // }\r\n // else {\r\n // isMobile = false;\r\n // }\r\n // } else {\r\n // isMobile = false;\r\n // }\r\n\r\n return (\r\n
\r\n
\r\n {\r\n !this.state.isPopulated\r\n ? \r\n {localStorage.getItem(Constants.localStorageConstants.company_name) === \"IFS\" ?\r\n \r\n : this.getLoader(true)\r\n }\r\n\r\n
\r\n : \r\n\r\n \r\n isLoggedIn(this.abortController)\r\n ? (\r\n \r\n ) : (\r\n }\r\n />\r\n )\r\n }\r\n />\r\n\r\n\r\n\r\n \r\n isLoggedIn(this.abortController)\r\n ? \r\n {localStorage.getItem(Constants.localStorageConstants.company_name) === \"IFS\" ?\r\n \r\n : this.getLoader(true)\r\n\r\n\r\n }\r\n\r\n\r\n
\r\n }>\r\n \r\n \r\n : \r\n\r\n\r\n }\r\n />\r\n\r\n \r\n isLoggedIn(this.abortController)\r\n ? \r\n\r\n {localStorage.getItem(Constants.localStorageConstants.company_name) === \"IFS\" ?\r\n \r\n : this.getLoader(true)\r\n\r\n }\r\n \r\n }>\r\n \r\n \r\n : \r\n\r\n\r\n }\r\n />\r\n\r\n {/* (\r\n }\r\n i18n={this.props.i18n}\r\n />\r\n )}\r\n /> */}\r\n\r\n (\r\n }\r\n i18n={this.props.i18n}\r\n />\r\n )}\r\n />\r\n (\r\n }\r\n i18n={this.props.i18n}\r\n />\r\n )}\r\n />\r\n (\r\n }\r\n i18n={this.props.i18n}\r\n />\r\n )}\r\n />\r\n\r\n (\r\n }\r\n i18n={this.props.i18n}\r\n />\r\n )}\r\n />\r\n (\r\n }\r\n i18n={this.props.i18n}\r\n />\r\n )}\r\n />\r\n (\r\n }\r\n i18n={this.props.i18n}\r\n />\r\n )}\r\n />\r\n \r\n isLoggedIn(this.abortController)\r\n ? \r\n : \r\n\r\n\r\n }\r\n />\r\n \r\n }\r\n \r\n\r\n \r\n\r\n );\r\n }\r\n componentWillUnmount() {\r\n //if (this.gridApi) this.gridApi.destroy();\r\n //if (this.channel) this.channel.close();\r\n if (this.abortController) this.abortController.abort();\r\n }\r\n}\r\n\r\nexport default withTranslation()(App);\r\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\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\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, 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, 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\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import i18n from \"i18next\";\r\nimport { initReactI18next } from 'react-i18next'\r\nimport $ from 'jquery';\r\nimport translationEn from './locales/en/translationEn.json'\r\nimport translationPT from './locales/pt/translationPT.json'\r\nimport translationAr from './locales/ar/translationAr.json'\r\n\r\nimport * as OverrideLocals from './locales/LocalOverride.js'\r\n\r\n//the translations\r\nconst resources = {\r\n \r\n en: {\r\n translation: OverrideLocals.OverrideLocalEn()\r\n },\r\n pt: {\r\n translation: translationPT\r\n },\r\n ar: {\r\n translation: OverrideLocals.OverrideLocalAr()\r\n }\r\n};\r\n\r\n\r\nlet language = \"en\";\r\nif (localStorage.getItem(\"language\") !== null) {\r\n if (localStorage.getItem(\"language\") === \"ar\")\r\n language = \"ar\";\r\n else\r\n language = \"en\";\r\n}\r\ni18n\r\n .use(initReactI18next) // passes i18n down to react-i18next\r\n .init({\r\n resources,\r\n lng: language,\r\n keySeparator: false, // we do not use keys in form messages.welcome\r\n interpolation: {\r\n escapeValue: false //react already safes from xss\r\n }\r\n })\r\n\r\n\r\n\r\nexport default i18n;","import translationEn from './en/translationEn.json'\r\nimport translationAr from './ar/translationAr.json'\r\nimport * as Constants from \"../constants/Constants.js\";\r\nimport * as Helpers from \"../global/Helpers\";\r\n\r\nexport function OverrideLocalEn() {\r\n\r\n let local = translationEn;\r\n switch (localStorage.getItem(Constants.localStorageConstants.company_name)) {\r\n case \"IFS\":\r\n local[\"orderid\"] = \"Order ID\";\r\n local[\"closeprice\"] = \"Close price\";\r\n local[\"marketvaluePortfolio\"] = \"Market value\";\r\n local[\"mobileNo\"] = \"Mobile No (971xxxxxxxxxx)\";\r\n local[\"breakevenPrice\"] = \"Break-even\";\r\n local[\"UnUtilizedMarginAmount\"] = \"Utilized Margin Amount\";\r\n\r\n break;\r\n case \"UNITED\":\r\n local[\"WelcomeMessage\"] = \"Welcome to UNITED SECURITIES Online Trading Portal\";\r\n local[\"last\"] = \"Price\";\r\n local[\"qty\"] = \"Shares\";\r\n local[\"NAV\"] = \"Value\";\r\n local[\"breakevenPrice\"] = \"Breakeven price\";\r\n local[\"closeprice\"] = \"Close price\";\r\n local[\"marketvaluePortfolio\"] = \"Market value\";\r\n local[\"profitloss\"] = \"Profit/Loss\";\r\n local[\"mobileNo\"] = \"Mobile No (968xxxxxxxxxx)\";\r\n local[\"sendOtp\"] = \"Submit\";\r\n local[\"TradingNumber\"] = \"MSM Number\";\r\n local[\"IPO_Authintication\"] = \"Sell IPO shares\";\r\n\r\n break;\r\n case \"GLOBAL\":\r\n local[\"WelcomeMessage\"] = \"Welcome to GLOBAL FINANCIAL SECURITIES Online Trading Portal\";\r\n local[\"mobileNo\"] = \"Mobile No (968xxxxxxxxxx)\";\r\n local[\"last\"] = \"Price\";\r\n local[\"qty\"] = \"Shares\";\r\n local[\"NAV\"] = \"Value\";\r\n local[\"breakevenPrice\"] = \"Breakeven price\";\r\n local[\"closeprice\"] = \"Close price\";\r\n local[\"marketvaluePortfolio\"] = \"Market value\";\r\n local[\"profitloss\"] = \"Profit/Loss\";\r\n local[\"sendOtp\"] = \"Submit\";\r\n local[\"IPO_Authintication\"] = \"Sell IPO shares\";\r\n break;\r\n case \"ADCB\":\r\n local[\"WelcomeMessage\"] = \"Sign in to start trading online\";\r\n break;\r\n case \"ALRAMZ\":\r\n local[\"mobileNo\"] = \"Mobile No (971xxxxxxxxxx)\";\r\n break;\r\n case \"CIBC\":\r\n local[\"WelcomeMessage\"] = \"Welcome to Mahfazty\";\r\n local[\"sendOtp\"] = \"Submit\";\r\n local[\"otp\"] = \"Enter Your Second Authentication.\";\r\n local[\"otpDesc\"] = \"second password\";\r\n local[\"validity\"] = \"Execution Type\";\r\n break;\r\n case \"FSC\":\r\n local[\"mobileNo\"] = \"Mobile No (968xxxxxxxxxx)\";\r\n local[\"sendOtp\"] = \"Verify\";\r\n local[\"IPO_Authintication\"] = \"Sell IPO shares\";\r\n break;\r\n case \"UBHAR\":\r\n local[\"mobileNo\"] = \"Mobile No (968xxxxxxxxxx)\";\r\n local[\"sendOtp\"] = \"Submit\";\r\n local[\"IPO_Authintication\"] = \"Sell IPO shares\";\r\n break;\r\n case \"HORIZON\":\r\n local[\"mobileNo\"] = \"Mobile No (968xxxxxxxxxx)\";\r\n local[\"sendOtp\"] = \"Submit\";\r\n local[\"IPO_Authintication\"] = \"Sell IPO shares\";\r\n\r\n break;\r\n case \"AHLI\":\r\n local[\"mobileNo\"] = \"Mobile No (968xxxxxxxxxx)\";\r\n local[\"sendOtp\"] = \"Submit\";\r\n local[\"IPO_Authintication\"] = \"Sell IPO shares\";\r\n\r\n break;\r\n case \"Vision\":\r\n local[\"mobileNo\"] = \"Mobile No (968xxxxxxxxxx)\";\r\n local[\"sendOtp\"] = \"Submit\";\r\n local[\"IPO_Authintication\"] = \"Sell IPO shares\";\r\n\r\n break;\r\n\r\n\r\n }\r\n return local;\r\n}\r\n\r\nexport function OverrideLocalAr() {\r\n let local = translationAr;\r\n switch (localStorage.getItem(Constants.localStorageConstants.company_name)) {\r\n case \"IFS\":\r\n local[\"orderid\"] = \"رقم الطلب\";\r\n local[\"mobileNo\"] = \"رقم الموبايل (971xxxxxxxxxx)\";\r\n break;\r\n case \"UNITED\":\r\n local[\"WelcomeMessage\"] = \"مرحباً بكم في موقع التداول الإلكتروني لشركة المتحدة للأوراق المالية\";\r\n local[\"last\"] = \"السعر\";\r\n local[\"mobileNo\"] = \"رقم الموبايل (968xxxxxxxxxx)\";\r\n local[\"IPO_Authintication\"] = \"بيع اسهم االاكتتاب\";\r\n\r\n break;\r\n case \"GLOBAL\":\r\n local[\"WelcomeMessage\"] = \"مرحباً بكم في موقع التداول الإلكتروني لشركة الدولية للأوراق المالية\";\r\n local[\"mobileNo\"] = \"رقم الموبايل (968xxxxxxxxxx)\";\r\n local[\"IPO_Authintication\"] = \"بيع اسهم االاكتتاب\";\r\n break;\r\n case \"ADCB\":\r\n local[\"WelcomeMessage\"] = \"قم بتسجيل الدخول لبدء التداول عبر الإنترنت\";\r\n break;\r\n case \"ALRAMZ\":\r\n local[\"mobileNo\"] = \"رقم الموبايل (971xxxxxxxxxx)\";\r\n break;\r\n case \"CIBC\":\r\n local[\"WelcomeMessage\"] = \"مرحبا بك في محفظتي\";\r\n local[\"otp\"] = \"كلمة المرور الثانية\";\r\n break;\r\n case \"FSC\":\r\n local[\"mobileNo\"] = \"رقم الموبايل (968xxxxxxxxxx)\";\r\n local[\"IPO_Authintication\"] = \"بيع اسهم االاكتتاب\";\r\n break;\r\n case \"UBHAR\":\r\n local[\"mobileNo\"] = \"رقم الموبايل (968xxxxxxxxxx)\"; \r\n local[\"IPO_Authintication\"] = \"بيع اسهم االاكتتاب\"; \r\n break;\r\n case \"HORIZON\":\r\n local[\"mobileNo\"] = \"رقم الموبايل (968xxxxxxxxxx)\"; \r\n local[\"IPO_Authintication\"] = \"بيع اسهم االاكتتاب\"; \r\n break;\r\n case \"AHLI\":\r\n local[\"mobileNo\"] = \"رقم الموبايل (968xxxxxxxxxx)\"; \r\n local[\"IPO_Authintication\"] = \"بيع اسهم االاكتتاب\"; \r\n break;\r\n case \"Vision\":\r\n local[\"mobileNo\"] = \"رقم الموبايل (968xxxxxxxxxx)\"; \r\n local[\"IPO_Authintication\"] = \"بيع اسهم االاكتتاب\"; \r\n break;\r\n\r\n }\r\n return local;\r\n}","import * as actions from \"./actionTypes\";\r\nimport * as Helpers from \"../global/Helpers\";\r\n\r\n\r\nlet isTickerVisibleInitial = Helpers.getIsTickerVisible();\r\nconst initialState = {\r\n \r\n connectionStatus: null,\r\n symbolSelected: null,\r\n orderTypeSelected: null,\r\n symbols: [],\r\n accounts: [],\r\n allAccounts: [],\r\n activeProfile: {\r\n ProfileID: null,\r\n ProfileName: null,\r\n ProfileNameAr: null,\r\n ProfileSettings: null,\r\n WebCode: null,\r\n\r\n isLocked: false,\r\n isSearch: false,\r\n profileUniqueID: null,\r\n },\r\n orders: [],\r\n orderSelected: null,\r\n IsorderSelectedAgain: false,\r\n notificationCount: null,\r\n exchanges: [],\r\n isDarkMode: false,\r\n signalr_connection: null,\r\n symbolDetails: null,\r\n profileIdSelected: null,\r\n profiles: [],\r\n subscribedSymbols: [],\r\n subscribedSymbolsTicker: [],\r\n isSubscribedSymbolsChanged: false,\r\n isLoaderVisible: false,\r\n isNewWorkspaceLayout: false,\r\n isAlertDeleted: false,\r\n AlertDeleted: 0,\r\n SymbolDeleted: \"\",\r\n isConditionalOrderDeleted: false,\r\n config: null,\r\n isSidebarOpen: false,\r\n isTickerVisible: isTickerVisibleInitial, //binded intial value of redux to local storage\r\n symbolSelectedForLinkingTab: \"\",\r\n linkingColorAnyScreen: null,\r\n linkingTab: [],\r\n permData: null,\r\n isSidebarMenuOpen: true,\r\n isNewWorkspaceChartLayout: false,\r\n workspaceChartProfiles: [],\r\n workspaceChartAdvanceFocous: \"\",\r\n AdvanceSerachSymbol: \"\",\r\n SelectdProfiles: [],\r\n IsProfilesUpdated: false,\r\n ProfileList: [],\r\n Indexes: [],\r\n EnableExpandRow: false,\r\n refreashTimeSettings: [20, 20, 1, 1],\r\n numberofTradingSettings: [20, 20],\r\n BidPrice: \"\",\r\n BidVolume: \"\",\r\n OfferPrice: \"\",\r\n OfferVolume: \"\",\r\n BidPriceOrderPopUP: null,\r\n BidVolumeOrderPopUP: null,\r\n OfferPriceOrderPopUP: null,\r\n OfferVolumeOrderPopUP: null,\r\n SymbolTrades: [],\r\n MarketWatchDatafeed: \"\",\r\n mboDataFeed: \"\",\r\n mbpDataFeed: \"\",\r\n SymbolNewData: \"\",\r\n SymbolToBesubscribed: [],\r\n OrderIsUpdated: 0,\r\n ClientIDOrderIsUpdated: \"\",\r\n OrderDataFeed: null,\r\n defaultWorkspace: {\r\n ProfileID: null,\r\n ProfileName: null,\r\n ProfileNameAr: null,\r\n ProfileSettings: null,\r\n WebCode: null,\r\n isLocked: false,\r\n isSearch: false,\r\n profileUniqueID: null,\r\n },\r\n ActiveProfileForDefaultWorkspace: {\r\n ProfileID: null,\r\n ProfileName: null,\r\n ProfileNameAr: null,\r\n ProfileSettings: null,\r\n profileUniqueID: \"\",\r\n WebCode: null,\r\n isLocked: false,\r\n isSearch: false,\r\n profileUniqueID: null,\r\n },\r\n workSpaceLayoutsNumber: null,\r\n SymbolTSSubscrib: [],\r\n marketOverviewProfile: null,\r\n MarketTrades: [],\r\n selectedAccountFromPortfolioWorkspace: [],\r\n selectedSymbolFromPortfolio: null,\r\n Comp_IDFromPortfolio: null,\r\n PreferredSymbol: \"\",\r\n portfolioData: [],\r\n totalHoldingCost: 0,\r\n QtyFromPortfolio: {\r\n Symbol: \"\",\r\n Qty: 0,\r\n },\r\n RowFromMW: null,\r\n isRowInMWClicked: 0,\r\n portfolioDataFirstReq: [],\r\n PreferredExchange: null,\r\n Settings: null,\r\n ActiveWorkspaceUniqueID: \"T\",\r\n AvgIndexes: [],\r\n EnableTradeTicker: false,\r\n EnableRoundTicker: false,\r\n PopulatedRiskManagement: false,\r\n IsMobileSize: false,\r\n lookups: [],\r\n SectorOfMarket: [],\r\n IDValidityResult: null,\r\n OrigenalExchanges: [],\r\n PreferredLangAcc: null,\r\n MainClientID_DefaultAcc: null,\r\n fromBasketOrder: false,\r\n updateFromBasketOrder: false,\r\n basketOrderObject: [],\r\n GroupName: [],\r\n};\r\n\r\nconst reducer = (state = initialState, action) => {\r\n const newState = { ...state };\r\n\r\n switch (action.type) {\r\n case actions.SYMBOL_CHANGED:\r\n newState.symbolSelected = action.payload.symbolSelected;\r\n newState.orderTypeSelected = action.payload.orderTypeSelected;\r\n newState.BidPriceOrderPopUP = action.payload.BidPriceOrderPopUP;\r\n newState.BidVolumeOrderPopUP = action.payload.BidVolumeOrderPopUP;\r\n newState.OfferPriceOrderPopUP = action.payload.OfferPriceOrderPopUP;\r\n newState.OfferVolumeOrderPopUP = action.payload.OfferVolumeOrderPopUP;\r\n newState.PopulatedRiskManagement = action.payload.PopulatedRiskManagement;\r\n break;\r\n case actions.GET_SYMBOLS:\r\n let newState1 = Object.assign({}, state);\r\n newState1.symbols = action.payload.symbols;\r\n return newState1;\r\n break;\r\n case actions.GET_ACCOUNTS:\r\n debugger\r\n state = {\r\n ...state,\r\n accounts: action.payload.accounts,\r\n allAccounts: action.payload.allAccounts,\r\n };\r\n return state;\r\n case actions.SET_ACTIVE_PROFILE:\r\n newState.activeProfile = action.payload.activeProfile;\r\n break;\r\n case actions.GET_ORDERS:\r\n state = {\r\n ...state,\r\n orders: action.payload.orders,\r\n };\r\n return state;\r\n case actions.APPEND_ORDERS:\r\n let oldorders = state.orders;\r\n let NewOrder = [action.payload.appendOrder];\r\n\r\n let checkofOrderExist = oldorders.filter(\r\n (ord) => ord.OrderID === NewOrder[0].OrderID\r\n );\r\n if (checkofOrderExist.length > 0 && checkofOrderExist !== null) {\r\n let NewOrders = oldorders.map(\r\n (ex) => NewOrder.find((e) => e.OrderID === ex.OrderID) || ex\r\n );\r\n state = {\r\n ...state,\r\n orders: NewOrders,\r\n };\r\n return state;\r\n }\r\n state = {\r\n ...state,\r\n orders: [...state.orders, action.payload.appendOrder],\r\n };\r\n return state;\r\n case actions.GET_SIGNALR:\r\n state = {\r\n ...state,\r\n signalr_connection: action.payload.signalr_connection,\r\n };\r\n return state;\r\n case actions.SELECT_ORDER:\r\n state = {\r\n ...state,\r\n orderSelected: action.payload.orderSelected,\r\n IsorderSelectedAgain: true,\r\n };\r\n return state;\r\n case actions.SET_ORDER_SELECTED_FALSE:\r\n state = {\r\n ...state,\r\n IsorderSelectedAgain: false,\r\n };\r\n return state;\r\n case actions.SET_NOTIFICATION_COUNT:\r\n newState.notificationCount = action.payload.notificationCount;\r\n break;\r\n case actions.DECREMENT_NOTIFICATION_COUNT:\r\n newState.notificationCount = newState.notificationCount - 1;\r\n break;\r\n case actions.INCREMENT_NOTIFICATION_COUNT:\r\n newState.notificationCount = newState.notificationCount + 1;\r\n break;\r\n case actions.GET_EXCHANGES:\r\n state = {\r\n ...state,\r\n exchanges: action.payload.exchanges,\r\n };\r\n return state;\r\n case actions.GET_INDEXES:\r\n state = {\r\n ...state,\r\n Indexes: action.payload.Indexes,\r\n };\r\n return state;\r\n case actions.GET_EXCHANGES_UPDATE:\r\n let oldexchange = state.exchanges;\r\n\r\n if (\r\n oldexchange !== null &&\r\n oldexchange !== [] &&\r\n (action.payload.exchangesUpdate !== null) &\r\n (action.payload.exchangesUpdate !== []) &\r\n (action.payload.exchangesUpdate !== undefined) &&\r\n action.payload.exchangesUpdate.length > 0\r\n ) {\r\n let Newexchange = oldexchange.map(\r\n (ex) =>\r\n action.payload.exchangesUpdate.find(\r\n (e) => e.ExchangeID === ex.ExchangeID\r\n ) || ex\r\n );\r\n if (Newexchange !== null && Newexchange.length > 0) {\r\n if (!Newexchange[0].hasOwnProperty(\"ExchangeNameE\")) {\r\n var result = Newexchange.map((el) => {\r\n var o = Object.assign({}, el);\r\n o.ExchangeNameE = el.NameE;\r\n o.ExchangeNameA = el.NameA;\r\n return o;\r\n });\r\n Newexchange = result;\r\n }\r\n if (!Newexchange[0].hasOwnProperty(\"EquityTransferComm\")) {\r\n var result = Newexchange.map((el) => {\r\n var o = Object.assign({}, el);\r\n o.EquityTransferComm =\r\n oldexchange.filter((old) => old.ExchangeID == el.ExchangeID)[0][\r\n \"EquityTransferComm\"\r\n ] ?? 0;\r\n return o;\r\n });\r\n Newexchange = result;\r\n }\r\n \r\n if (!Newexchange[0].hasOwnProperty(\"IndexAvailable\")) {\r\n var result = Newexchange.map((el) => {\r\n var o = Object.assign({}, el);\r\n o.IndexAvailable =\r\n oldexchange.filter((old) => old.ExchangeID == el.ExchangeID)[0][\r\n \"IndexAvailable\"\r\n ] ?? 0;\r\n return o;\r\n });\r\n Newexchange = result;\r\n }\r\n \r\n \r\n // if (!Newexchange[0].hasOwnProperty(\"ORDER_INDEX\")) {\r\n // var result = Newexchange.map((el) => {\r\n // var o = Object.assign({}, el);\r\n // o.ORDER_INDEX = oldexchange.filter((old) => (old.ExchangeID == el.ExchangeID))[0][\"ORDER_INDEX\"] ?? 0;\r\n // return o;\r\n // })\r\n // Newexchange = result;\r\n // }\r\n // if (!Newexchange[0].hasOwnProperty(\"EquityTransferComm\") || !Newexchange[0].hasOwnProperty(\"ConfirmMessage\") || !Newexchange[0].hasOwnProperty(\"ConfirmMessageAR\") ) {\r\n // var result = Newexchange.map((el) => {\r\n // var o = Object.assign({}, el);\r\n // o.EquityTransferComm = oldexchange.filter((old) => (old.ExchangeID == el.ExchangeID))[0][\"EquityTransferComm\"] ?? 0;\r\n // o.ConfirmMessage = oldexchange.filter((old) => (old.ExchangeID == el.ExchangeID))[0][\"ConfirmMessage\"] ?? \"\";\r\n // o.ConfirmMessageAR = oldexchange.filter((old) => (old.ExchangeID == el.ExchangeID))[0][\"ConfirmMessageAR\"] ?? \"\";\r\n // return o;\r\n // })\r\n // Newexchange = result;\r\n // }\r\n }\r\n //console.log(\"NewexchangeRedux\", Newexchange)\r\n state = {\r\n ...state,\r\n exchanges: Newexchange,\r\n };\r\n }\r\n return state;\r\n case actions.SET_DARK_MODE:\r\n newState.isDarkMode = action.payload.isDarkMode;\r\n break;\r\n case actions.SET_SYMBOL_DETAILS:\r\n state = {\r\n ...state,\r\n symbolDetails: action.payload.symbolDetails,\r\n };\r\n return state;\r\n case actions.SET_PROFILE_ID_SELECTED:\r\n state = {\r\n ...state,\r\n profileIdSelected: action.payload.profileIdSelected,\r\n };\r\n return state;\r\n case actions.SET_PROFILES:\r\n state = {\r\n ...state,\r\n profiles: action.payload.profiles,\r\n };\r\n return state;\r\n case actions.SET_PERM_DATA:\r\n state = {\r\n ...state,\r\n permData: action.payload.permData,\r\n };\r\n return state;\r\n case actions.SET_SUBSCRIBED_SYMBOLS:\r\n state = {\r\n ...state,\r\n subscribedSymbols: action.payload.subscribedSymbols,\r\n };\r\n return state;\r\n case actions.SET_IS_SUBSCRIBED_SYMBOLS_CHANGED:\r\n state = {\r\n ...state,\r\n isSubscribedSymbolsChanged: action.payload.isSubscribedSymbolsChanged,\r\n };\r\n return state;\r\n case actions.SET_IS_LOADER_VISIBLE:\r\n state = {\r\n ...state,\r\n isLoaderVisible: action.payload.isLoaderVisible,\r\n };\r\n return state;\r\n case actions.SET_IS_NEW_WORKSPACE_LAYOUT:\r\n state = {\r\n ...state,\r\n isNewWorkspaceLayout: action.payload.isNewWorkspaceLayout,\r\n };\r\n return state;\r\n case actions.SET_IS_ALERT_DELETED:\r\n state = {\r\n ...state,\r\n isAlertDeleted: action.payload.isAlertDeleted,\r\n AlertDeleted: action.payload.AlertDeleted,\r\n SymbolDeleted: action.payload.SymbolDeleted,\r\n };\r\n return state;\r\n case actions.SET_IS_CONDITIONAL_ORDER_DELETED:\r\n state = {\r\n ...state,\r\n isConditionalOrderDeleted: action.payload.isConditionalOrderDeleted,\r\n };\r\n return state;\r\n case actions.SET_CONFIG:\r\n state = {\r\n ...state,\r\n config: action.payload.config,\r\n };\r\n return state;\r\n case actions.SET_IS_SIDEBAR_OPEN:\r\n state = {\r\n ...state,\r\n isSidebarOpen: action.payload.isSidebarOpen,\r\n };\r\n return state;\r\n case actions.SET_IS_TICKER_VISIBLE:\r\n state = {\r\n ...state,\r\n isTickerVisible: action.payload.isTickerVisible,\r\n };\r\n return state;\r\n case actions.LINKING_TAP:\r\n newState.symbolSelectedForLinkingTab =\r\n action.payload.symbolSelectedForLinkingTab;\r\n newState.ColorFromAgGrideContainer =\r\n action.payload.ColorFromAgGrideContainer;\r\n newState.BidPrice = action.payload.BidPrice;\r\n newState.BidVolume = action.payload.BidVolume;\r\n newState.OfferPrice = action.payload.OfferPrice;\r\n newState.OfferVolume = action.payload.OfferVolume;\r\n state.ColorFromAgGrideContainer =\r\n action.payload.ColorFromAgGrideContainer;\r\n state.symbolSelectedForLinkingTab =\r\n action.payload.symbolSelectedForLinkingTab;\r\n state.BidPrice = action.payload.BidPrice;\r\n state.BidVolume = action.payload.BidVolume;\r\n state.OfferPrice = action.payload.OfferPrice;\r\n state.OfferVolume = action.payload.OfferVolume;\r\n break;\r\n\r\n case actions.LINKING_ALL_TAPS_OPEN:\r\n if (\r\n action.payload.allTabWithColor !== undefined &&\r\n action.payload.allTabWithColor !== null &&\r\n action.payload.allTabWithColor !== \"\"\r\n ) {\r\n state = {\r\n ...state,\r\n linkingTab: action.payload.allTabWithColor,\r\n };\r\n }\r\n return state;\r\n case actions.SET_ADVANCE_SEARCH_SYMBOL:\r\n if (\r\n action.payload.Symbol !== undefined &&\r\n action.payload.Symbol !== null &&\r\n action.payload.Symbol !== \"\"\r\n ) {\r\n state = {\r\n ...state,\r\n AdvanceSerachSymbol: action.payload.Symbol,\r\n };\r\n }\r\n return state;\r\n\r\n case actions.CLOSE_BTN:\r\n state = {\r\n ...state,\r\n isOpen: action.isOpen,\r\n };\r\n return state;\r\n case actions.SET_IS_SIDEBAR_MENU_OPEN:\r\n state = {\r\n ...state,\r\n isSidebarMenuOpen: action.payload.isSidebarMenuOpen,\r\n };\r\n return state;\r\n case actions.SET_IS_NEW_WORKSPACE_CHART_LAYOUT:\r\n state = {\r\n ...state,\r\n isNewWorkspaceChartLayout: action.payload.isNewWorkspaceChartLayout,\r\n };\r\n return state;\r\n\r\n case actions.WORKSPACE_CHART_PROFILES:\r\n state = {\r\n ...state,\r\n workspaceChartProfiles: action.payload.workspaceChartProfiles,\r\n };\r\n return state;\r\n case actions.SET_IS_NEW_WORKSPACE_CHART_ADVANCE_FOCOUS:\r\n state = {\r\n ...state,\r\n workspaceChartAdvanceFocous: action.payload.workspaceChartAdvanceFocous,\r\n };\r\n return state;\r\n case actions.IS_PROFILES_UPDATED:\r\n state = {\r\n ...state,\r\n IsProfilesUpdated: action.payload.IsProfilesUpdated,\r\n };\r\n return state;\r\n case actions.IS_ADD_DELETE_PROFILE:\r\n state = {\r\n ...state,\r\n IsAddOrDeleteProfile: action.payload.IsAddOrDeleteProfile,\r\n };\r\n return state;\r\n case actions.UPDATE_ENABLE_EXPAND_ROW:\r\n state = {\r\n ...state,\r\n EnableExpandRow: action.payload.EnableExpandRow,\r\n };\r\n return state;\r\n case actions.UPDATE_RFREASH_TIME_SETTINGS:\r\n state = {\r\n ...state,\r\n refreashTimeSettings: action.payload.refreashTimeSettings,\r\n };\r\n return state;\r\n case actions.UPDATE_NUM_OF_TRADING:\r\n state = {\r\n ...state,\r\n numberofTradingSettings: action.payload.numberofTradingSettings,\r\n };\r\n return state;\r\n case actions.MARKET_WATCH_UPDATE:\r\n state = {\r\n ...state,\r\n MarketWatchDatafeed: action.payload.MarketWatchDatafeed,\r\n };\r\n return state;\r\n case actions.MARKET_DEPTH_UPDATE:\r\n state = {\r\n ...state,\r\n SymbolNewData: action.payload.SymbolNewData,\r\n mboDataFeed: action.payload.mboDataFeed,\r\n mbpDataFeed: action.payload.mbpDataFeed,\r\n };\r\n return state;\r\n case actions.SET_SUBSCRIBED_SYMBOLS_TICKER:\r\n state = {\r\n ...state,\r\n subscribedSymbolsTicker: action.payload.subscribedSymbolsTicker,\r\n };\r\n return state;\r\n case actions.ORDER_IS_UPDATED:\r\n //\r\n state = {\r\n ...state,\r\n OrderIsUpdated: action.payload.OrderIsUpdated,\r\n ClientIDOrderIsUpdated: action.payload.ClientIDOrderIsUpdated,\r\n };\r\n return state;\r\n case actions.ORDER_LIST_DATAFEED:\r\n state = {\r\n ...state,\r\n OrderDataFeed: action.payload.OrderDataFeed,\r\n };\r\n return state;\r\n case actions.SET_SYMBOLS_TO_SUBSCRIBED:\r\n let SymbolToBesubscribed = state.SymbolToBesubscribed;\r\n if (\r\n SymbolToBesubscribed !== null &&\r\n SymbolToBesubscribed.length > 0 &&\r\n SymbolToBesubscribed !== []\r\n ) {\r\n let filterSymbolToBesubscribed = SymbolToBesubscribed.filter(\r\n (sss) => sss.ScreenID === action.payload.ScreenID\r\n );\r\n if (filterSymbolToBesubscribed.length > 0) {\r\n let symbols = {\r\n ScreenID: action.payload.ScreenID,\r\n Symbol: action.payload.Symbol,\r\n };\r\n var foundIndex = SymbolToBesubscribed.findIndex(\r\n (x) => x.ScreenID == symbols.ScreenID\r\n );\r\n SymbolToBesubscribed[foundIndex] = symbols;\r\n } else {\r\n SymbolToBesubscribed.push({\r\n ScreenID: action.payload.ScreenID,\r\n Symbol: action.payload.Symbol,\r\n });\r\n }\r\n } else {\r\n SymbolToBesubscribed.push({\r\n ScreenID: action.payload.ScreenID,\r\n Symbol: action.payload.Symbol,\r\n });\r\n }\r\n state = {\r\n ...state,\r\n SymbolToBesubscribed: SymbolToBesubscribed,\r\n };\r\n return state;\r\n case actions.SYMBOL_TIME_SALE_SUB:\r\n let SymbolTSSubscrib = state.SymbolTSSubscrib;\r\n if (\r\n SymbolTSSubscrib !== null &&\r\n SymbolTSSubscrib.length > 0 &&\r\n SymbolTSSubscrib !== []\r\n ) {\r\n let filterSymbolTSSubscrib = SymbolTSSubscrib.filter(\r\n (sss) => sss.ScreenID === action.payload.ScreenID\r\n );\r\n if (filterSymbolTSSubscrib.length > 0) {\r\n let symbols = {\r\n ScreenID: action.payload.ScreenID,\r\n Symbol: action.payload.Symbol,\r\n };\r\n var foundIndex = SymbolTSSubscrib.findIndex(\r\n (x) => x.ScreenID == symbols.ScreenID\r\n );\r\n SymbolTSSubscrib[foundIndex] = symbols;\r\n } else {\r\n SymbolTSSubscrib.push({\r\n ScreenID: action.payload.ScreenID,\r\n Symbol: action.payload.Symbol,\r\n });\r\n }\r\n } else {\r\n SymbolTSSubscrib.push({\r\n ScreenID: action.payload.ScreenID,\r\n Symbol: action.payload.Symbol,\r\n });\r\n }\r\n state = {\r\n ...state,\r\n SymbolTSSubscrib: SymbolTSSubscrib,\r\n };\r\n return state;\r\n case actions.UPDATE_SYMBOL_TIME_SALE_SUB:\r\n let UpdateSymbolTSSubscrib = action.payload.SymbolTSSubscrib;\r\n\r\n state = {\r\n ...state,\r\n SymbolTSSubscrib: UpdateSymbolTSSubscrib,\r\n };\r\n return state;\r\n case actions.SYMBOL_TRADES_DATAFEED:\r\n let OldDataFeed = state.SymbolTrades.filter(\r\n (trades) => trades.Symbol !== action.payload.Symbol\r\n );\r\n let Trades = OldDataFeed;\r\n Trades = [...action.payload.SymbolTrades];\r\n state = {\r\n ...state,\r\n SymbolTrades: Trades,\r\n };\r\n return state;\r\n case actions.UPDATE_SELECTED_PROFILE:\r\n let SelectdProfiles = state.SelectdProfiles;\r\n let IsProfilesUpdated = false;\r\n if (\r\n SelectdProfiles !== null &&\r\n SelectdProfiles.length > 0 &&\r\n SelectdProfiles !== []\r\n ) {\r\n let filterprofiles = SelectdProfiles.filter(\r\n (SelectdProfiles) =>\r\n SelectdProfiles.ScreenProfileID === action.payload.ScreenID\r\n );\r\n if (filterprofiles.length > 0) {\r\n let profile = {\r\n ProfileID: action.payload.ProfileID,\r\n ScreenProfileID: action.payload.ScreenID,\r\n };\r\n var foundIndex = SelectdProfiles.findIndex(\r\n (x) => x.ScreenProfileID == profile.ScreenProfileID\r\n );\r\n SelectdProfiles[foundIndex] = profile;\r\n } else {\r\n let profile = {\r\n ProfileID: action.payload.ProfileID,\r\n ScreenProfileID: action.payload.ScreenID,\r\n };\r\n SelectdProfiles.push(profile);\r\n }\r\n IsProfilesUpdated = true;\r\n } else {\r\n let profile = {\r\n ProfileID: action.payload.ProfileID,\r\n ScreenProfileID: action.payload.ScreenID,\r\n };\r\n SelectdProfiles.push(profile);\r\n IsProfilesUpdated = true;\r\n }\r\n state = {\r\n ...state,\r\n SelectdProfiles: SelectdProfiles,\r\n IsProfilesUpdated: IsProfilesUpdated,\r\n };\r\n return state;\r\n case actions.SET_DEFAULT_WORKSPACE:\r\n state = {\r\n ...state,\r\n defaultWorkspace: action.payload.defaultWorkspace,\r\n };\r\n return state;\r\n case actions.SET_WORKSPACE_LAYOUTS_NUMBER:\r\n newState.workSpaceLayoutsNumber = action.payload.workSpaceLayoutsNumber;\r\n break;\r\n\r\n case actions.SET_ACTIVE_PROFILE_FOR_DEFAULT_WORKSPACE:\r\n state = {\r\n ...state,\r\n ActiveProfileForDefaultWorkspace:\r\n action.payload.ActiveProfileForDefaultWorkspace,\r\n };\r\n return state;\r\n case actions.SET_MAEKET_FOR_MARKET_OVER_VIEW_PROFILE:\r\n newState.marketOverviewProfile = action.payload.marketOverviewProfile;\r\n break;\r\n case actions.MARKET_TRADES:\r\n let OldDataFeedMarket = state.MarketTrades.filter(\r\n (trades) => trades.Exchange !== action.payload.Market\r\n );\r\n let MarketTrades = OldDataFeedMarket;\r\n MarketTrades = [...action.payload.MarketTrades];\r\n state = {\r\n ...state,\r\n MarketTrades: MarketTrades,\r\n };\r\n return state;\r\n case actions.SELECTED_ACCOUNT_FROM_PORTFOLIO_WORKSPACE:\r\n newState.selectedAccountFromPortfolioWorkspace =\r\n action.payload.selectedAccountFromPortfolioWorkspace;\r\n break;\r\n case actions.SET_SELECT_SYMBOL_FROM_PORTFOLIO:\r\n newState.selectedSymbolFromPortfolio =\r\n action.payload.selectedSymbolFromPortfolio;\r\n newState.Comp_IDFromPortfolio = action.payload.Comp_IDFromPortfolio;\r\n break;\r\n case actions.SELECT_PREFERRED_SYMBOL:\r\n state = {\r\n ...state,\r\n PreferredSymbol: action.payload.PreferredSymbol,\r\n };\r\n return state;\r\n\r\n case actions.SYBMOL_QTY_TO_SELL:\r\n state = {\r\n ...state,\r\n QtyFromPortfolio: {\r\n ...state.QtyFromPortfolio,\r\n Symbol: action.payload.Symbol,\r\n Qty: action.payload.Qty,\r\n ClientID: action.payload.ClientID,\r\n Exchange: action.payload.Exchange,\r\n },\r\n };\r\n return state;\r\n case actions.SET_PORTFOLIO_Data:\r\n state = {\r\n ...state,\r\n portfolioData: action.payload.portfolioData,\r\n totalHoldingCost: action.payload.totalHoldingCost,\r\n };\r\n return state;\r\n case actions.selected_Row_From_MW:\r\n //\r\n state = {\r\n ...state,\r\n RowFromMW: action.payload.RowFromMW,\r\n };\r\n return state;\r\n case actions.IS_Row_In_MW_Clicked:\r\n state = {\r\n ...state,\r\n isRowInMWClicked: action.payload.isRowInMWClicked,\r\n };\r\n return state;\r\n case actions.PORTFOLIO_FIRST_REQUEST:\r\n state = {\r\n ...state,\r\n portfolioDataFirstReq: action.payload.portfolioDataFirstReq,\r\n };\r\n return state;\r\n case actions.CHECK_CONNECTION:\r\n state = {\r\n ...state,\r\n connectionStatus: action.payload.connectionStatus,\r\n };\r\n return state;\r\n\r\n case actions.SELECT_PREFERRED_EXCHANGE:\r\n state = {\r\n ...state,\r\n PreferredExchange: action.payload.PreferredExchange,\r\n };\r\n return state;\r\n case actions.USER_SETTINGS:\r\n state = {\r\n ...state,\r\n Settings: action.payload.Settings,\r\n };\r\n return state;\r\n case actions.USER_SETTINGS:\r\n state = {\r\n ...state,\r\n Settings: action.payload.Settings,\r\n };\r\n return state;\r\n case actions.AVG_INDEXES:\r\n state = {\r\n ...state,\r\n AvgIndexes: action.payload.AvgIndexes,\r\n };\r\n return state;\r\n case actions.ENABLE_TRADE_TICKER:\r\n state = {\r\n ...state,\r\n EnableTradeTicker: action.payload.EnableTradeTicker,\r\n };\r\n return state;\r\n case actions.ENABLE_ROUND_TICKER:\r\n state = {\r\n ...state,\r\n EnableRoundTicker: action.payload.EnableRoundTicker,\r\n };\r\n return state;\r\n case actions.Is_Mobile_Size:\r\n state = {\r\n ...state,\r\n IsMobileSize: action.payload.IsMobileSize,\r\n };\r\n case actions.GET_LOOKUPS:\r\n debugger\r\n state = {\r\n ...state,\r\n lookups: action.payload.lookups,\r\n };\r\n return state;\r\n case actions.GET_SectorOfMarket:\r\n state = {\r\n ...state,\r\n SectorOfMarket: action.payload.SectorOfMarket,\r\n };\r\n return state;\r\n case actions.Active_Workspace_UniqueID:\r\n debugger\r\n state = {\r\n ...state,\r\n ActiveWorkspaceUniqueID: action.payload.ActiveWorkspaceUniqueID,\r\n };\r\n return state;\r\n case actions.get_ID_Validity_Result:\r\n state = {\r\n ...state,\r\n IDValidityResult: action.payload.IDValidityResult,\r\n };\r\n return state;\r\n case actions.GET_ExchangesOriginal:\r\n state = {\r\n ...state,\r\n OrigenalExchanges: action.payload.OrigenalExchanges,\r\n };\r\n return state;\r\n case actions.get_BasketOrder:\r\n state = {\r\n ...state,\r\n fromBasketOrder: action.payload.fromBasketOrder,\r\n };\r\n return state;\r\n case actions.get_updateFromBasketOrder:\r\n state = {\r\n ...state,\r\n updateFromBasketOrder: action.payload.updateFromBasketOrder,\r\n };\r\n return state;\r\n case actions.get_basketOrderObject:\r\n state = {\r\n ...state,\r\n basketOrderObject: action.payload.basketOrderObject,\r\n };\r\n return state;\r\n case actions.get_GroupName:\r\n state = {\r\n ...state,\r\n GroupName: action.payload.GroupName,\r\n };\r\n return state;\r\n case actions.Get_Default_AccountInfo:\r\n state = {\r\n ...state,\r\n PreferredLangAcc: action.payload.PreferredLangAcc,\r\n MainClientID_DefaultAcc: action.payload.MainClientID_DefaultAcc,\r\n };\r\n return state;\r\n case actions.GET_EXCHANGES_UPDATE_EnableTags:\r\n \r\n return Helpers.ExchangesUpdateEnableTagValue(state , action.payload.exchangesUpdate , true )\r\n // let oldexchangeArr = state.OrigenalExchanges\r\n\r\n // if (\r\n // oldexchangeArr !== null &&\r\n // oldexchangeArr !== [] &&\r\n // (action.payload.exchangesUpdate !== null) &\r\n // (action.payload.exchangesUpdate !== []) &\r\n // (action.payload.exchangesUpdate !== undefined) &&\r\n // action.payload.exchangesUpdate.length === undefined\r\n // ) {\r\n // \r\n // var list2 = []\r\n // let oldExchange = oldexchangeArr.find((e) => e.ExchangeID === action.payload.exchangesUpdate.ExchangeID);\r\n\r\n // if (oldExchange !== undefined && oldExchange !== null) {\r\n // var keysOfNewData = Object.keys(action.payload.exchangesUpdate);\r\n // keysOfNewData.forEach(key => {\r\n // if (key !== \"ExchangeID\")\r\n // oldExchange[key] = action.payload.exchangesUpdate[key];\r\n // });\r\n // list2.push(oldExchange);\r\n // oldexchangeArr.map(obj => list2.find(o => o.ExchangeID === obj.ExchangeID) || obj);\r\n // console.log(\"rajaa\", oldexchangeArr)\r\n // state = {\r\n // ...state,\r\n // exchanges: oldexchangeArr,\r\n // };\r\n // return state;\r\n // }\r\n\r\n // }\r\n // else if (\r\n // oldexchangeArr !== null &&\r\n // oldexchangeArr !== [] &&\r\n // (action.payload.exchangesUpdate !== null) &\r\n // (action.payload.exchangesUpdate !== []) &\r\n // (action.payload.exchangesUpdate !== undefined) &&\r\n // action.payload.exchangesUpdate.length > 0\r\n // ) {\r\n // let Newexchange = oldexchangeArr.map(\r\n // (ex) =>\r\n // action.payload.exchangesUpdate.find(\r\n // (e) => e.ExchangeID === ex.ExchangeID\r\n // ) || ex\r\n // );\r\n // }\r\n // return state;\r\n default:\r\n break;\r\n }\r\n return newState;\r\n};\r\n\r\nexport default reducer;\r\n","import { createStore } from \"redux\";\r\nimport reducer from \"./reducer\";\r\n\r\nconst store = createStore(reducer);\r\n\r\nexport default store;","import React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport './index.css?ver=1';\nimport App from './App?ver=1';\nimport * as serviceWorker from './serviceWorker';\nimport { BrowserRouter } from 'react-router-dom';\nimport { I18nextProvider } from \"react-i18next\";\nimport i18n from \"./i18n\";\nimport * as AppUrls from \"./constants/AppUrls\";\n\n/* import './assets/fonts/Source_Sans_Pro/SourceSansPro-Italic.ttf' */\n\nimport \"./i18n\";\nimport { Provider } from 'react-redux';\nimport store from \"./store/store\";\n\n\n\n\nconst app = (\n \n \n \n \n \n \n \n);\n\nReactDOM.render(\n app,\n document.getElementById('root')\n);\n\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","export default __webpack_public_path__ + \"static/media/ic-check-mark-correct.f4d88690.png\";","/* eslint-disable no-useless-escape */\r\n/* Section 1: General Functions */\r\nimport {\r\n OrderStatusText,\r\n OrderStatusResponse,\r\n OrderStatusTextArabic,\r\n} from \"../constants/Constants\";\r\nimport { lightTheme, darkTheme } from \"../global/theme\";\r\n\r\nimport * as Constants from \"../constants/Constants\";\r\nimport * as utils from \"./utils\";\r\nimport moment from \"moment\";\r\nimport { number } from \"prop-types\";\r\nimport { debug } from \"winston\";\r\nimport $ from \"jquery\";\r\nimport { toast } from \"react-toastify\";\r\n\r\nvar numeral = require(\"numeral\");\r\n\r\nconst options = {\r\n minimumFractionDigits: 2,\r\n maximumFractionDigits: 2,\r\n};\r\nexport function numberFormatter(value) {\r\n const formatted = Number(value).toLocaleString(\"en\", options);\r\n return formatted;\r\n}\r\nexport function errorNotify(message, lang = \"en\") {\r\n\r\n toast.error(message, {\r\n position: toast.POSITION.BOTTOM_CENTER,\r\n hideProgressBar: true,\r\n autoClose: Constants.errorNotifyDuration,\r\n style: lang === \"ar\" ? { textAlign: \"right\" } : {},\r\n });\r\n}\r\nexport function successNotify(message, lang = \"en\") {\r\n toast.success(message, {\r\n position: toast.POSITION.BOTTOM_CENTER,\r\n hideProgressBar: true,\r\n autoClose: Constants.successNotifyDuration,\r\n style: lang === \"ar\" ? { textAlign: \"right\" } : {},\r\n });\r\n}\r\n\r\nexport function numberFormatterWithCommas(value) {\r\n if (isNaN(value) || value === null || value === \"\") return 0;\r\n return Number(value)\r\n .toString()\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n}\r\nexport function numberFormatterWithCommasGrid(param) {\r\n var value = param.value;\r\n if (isNaN(value) || value === null || value === \"\") return 0;\r\n var val = Number(value)\r\n .toString()\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n return val;\r\n}\r\n\r\nexport function numberFormatterDigits(value, numberOfDigits) {\r\n if (isNaN(value) || value === null || value === \"\") return 0;\r\n const formatted = Number(value).toFixed(numberOfDigits);\r\n return formatted;\r\n}\r\n\r\nexport function numberFormatterWithCommasAndDigits(value, numberOfDigits) {\r\n if (isNaN(value) || value === null || value === \"\") return 0;\r\n let options = {\r\n minimumFractionDigits: 0,\r\n maximumFractionDigits: numberOfDigits,\r\n };\r\n const formatted = Number(value).toLocaleString(\"en\", options);\r\n return formatted;\r\n}\r\n\r\nexport function numberFormatterWithCommasAndDigitsFixed(value, numberOfDigits) {\r\n if (isNaN(value) || value === null || value === \"\") return 0;\r\n\r\n let options = {\r\n minimumFractionDigits: numberOfDigits,\r\n maximumFractionDigits: numberOfDigits,\r\n };\r\n const formatted = Number(value).toLocaleString(\"en\", options);\r\n return formatted;\r\n}\r\n\r\nexport function threeDigitFormatValue(value, option = 3) {\r\n let option1 = {\r\n minimumFractionDigits: option,\r\n maximumFractionDigits: option,\r\n };\r\n\r\n let option2 = {\r\n minimumFractionDigits: 4,\r\n maximumFractionDigits: 4,\r\n };\r\n\r\n if (value === \"\" || value === null || value === undefined || isNaN(value)) {\r\n return 0;\r\n }\r\n\r\n if (value === \"Total\" || value === \"المجموع\") {\r\n return value;\r\n }\r\n\r\n // var rtn = localStorage.getItem(Constants.localStorageConstants.Region).toUpperCase() === \"OMAN\"\r\n // ? value : Number(value).toLocaleString(\"en\", option1)\r\n\r\n return Number(value).toLocaleString(\"en\", option1);\r\n}\r\n\r\nexport function agGridSymbolLosses(params) {\r\n let value = params.value;\r\n if (params.data.Losses === \"2\") {\r\n value += \" | \";\r\n value += \"Accumulated Losses between 20% to 50% of issued capital\";\r\n } else if (params.data.Losses === \"3\") {\r\n value += \" | \";\r\n value += \"Accumulated Losses 50% or above of issued capital\";\r\n }\r\n return value;\r\n}\r\n\r\nexport function agGridThreeDigitFormatValue(params) {\r\n\r\n if (params === 0) {\r\n return params;\r\n }\r\n let value = params.value;\r\n if (params.data.hasOwnProperty(\"CUR_CODE\") || params.data.hasOwnProperty(\"CurCode\")) {\r\n var CurCode = params.data.hasOwnProperty(\"CUR_CODE\") ? params.data.CUR_CODE : params.data.CurCode\r\n if (CurCode === \"USD\" && params.colDef.field === \"NetChangePerc\") {\r\n value = threeDigitFormatValue(value, 2);\r\n } else {\r\n value = threeDigitFormatValue(value);\r\n }\r\n }\r\n // value = localStorage.getItem(Constants.localStorageConstants.Region).toUpperCase() === \"OMAN\"\r\n // ? params.value : threeDigitFormatValue(value);\r\n return value;\r\n}\r\n\r\nexport function agGridCustomDigitFormatValue(params) {\r\n //\r\n let value = params.value;\r\n if (params.data.hasOwnProperty(\"CUR_CODE\") || params.data.hasOwnProperty(\"CurCode\")) {\r\n var CurCode = params.data.hasOwnProperty(\"CUR_CODE\") ? params.data.CUR_CODE : params.data.CurCode\r\n\r\n if (CurCode === \"USD\") {\r\n\r\n // if (Number(params.data.LastTradePrice) < 1 && Number(params.data.LastTradePrice) != 0) {\r\n // value = threeDigitFormatValue(value, 4);\r\n // } else if (Number(params.data.LastTradePrice) > 1 && Number(params.data.LastTradePrice) != 0) {\r\n // value = threeDigitFormatValue(value, 2);\r\n // } else\r\n // value = threeDigitFormatValue(value, 3);\r\n\r\n if ((Number(params.data.BidPrice) < 1 && Number(params.data.BidPrice) != 0) || (Number(params.data.OfferPrice) < 1 && Number(params.data.OfferPrice) != 0) || (Number(params.data.LastTradePrice) < 1 && Number(params.data.LastTradePrice) != 0)) {\r\n value = threeDigitFormatValue(value, 4);\r\n } else if ((Number(params.data.BidPrice) > 1 && Number(params.data.BidPrice) != 0) || (Number(params.data.OfferPrice) > 1 && Number(params.data.OfferPrice) != 0) || (Number(params.data.LastTradePrice) > 1 && Number(params.data.LastTradePrice) != 0)) {\r\n value = threeDigitFormatValue(value, 2);\r\n } else\r\n value = threeDigitFormatValue(value, 4);\r\n\r\n } else\r\n value = threeDigitFormatValue(value, 3);\r\n }\r\n else {\r\n value = threeDigitFormatValue(value, 3);\r\n }\r\n\r\n // value = (localStorage.getItem(Constants.localStorageConstants.Region)).toUpperCase() === \"OMAN\"\r\n // ? params.value : threeDigitFormatValue(value, 3);\r\n\r\n return value;\r\n}\r\n\r\nexport function qtyFormatValue(value) {\r\n if (value === \"\" || value === null || value === undefined) {\r\n return \"\";\r\n }\r\n if (value === \"Total\" || value === \"المجموع\") {\r\n return value;\r\n }\r\n return Number(value)\r\n .toString()\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n}\r\n\r\nexport function agGridQtyFormatValue(params) {\r\n let value = params.value;\r\n value = qtyFormatValue(value);\r\n return value;\r\n}\r\n\r\nexport function changePercentageFormatter(value) {\r\n if (value === \"\" || value === null || value === undefined) return 0;\r\n return value + \" %\";\r\n}\r\n\r\nexport function agGridChangePercentageFormatter(params) {\r\n if (params.value === \"\" || params.value === null || params.value === undefined) {\r\n return agGridThreeDigitFormatValue(0);\r\n }\r\n\r\n return agGridThreeDigitFormatValue(params);\r\n}\r\n\r\nexport function datetimeformatter(params) {\r\n var r = /\\d*(\\d{2})(\\d{2})(\\d{4})(\\d{2})(\\d{2})(\\d{2})/.exec(params);\r\n if (r && r.length === 7) {\r\n return new Date(\r\n parseInt(r[3]),\r\n parseInt(r[2]) - 1,\r\n parseInt(r[1]),\r\n parseInt(r[4]),\r\n parseInt(r[5]),\r\n parseInt(r[6])\r\n );\r\n }\r\n}\r\n\r\nexport function StatusFormatter(params, isAgGrid = true, language = \"en\") {\r\n let OrderStatus = \"\";\r\n switch (isAgGrid ? params.value : params) {\r\n case OrderStatusResponse.Active: {\r\n OrderStatus =\r\n language === \"ar\"\r\n ? OrderStatusTextArabic.Active\r\n : OrderStatusText.Active;\r\n return OrderStatus;\r\n }\r\n case OrderStatusResponse.Traded: {\r\n OrderStatus =\r\n language === \"ar\"\r\n ? OrderStatusTextArabic.Traded\r\n : OrderStatusText.Traded;\r\n return OrderStatus;\r\n }\r\n case OrderStatusResponse.Canceled: {\r\n OrderStatus =\r\n language === \"ar\"\r\n ? OrderStatusTextArabic.Canceled\r\n : OrderStatusText.Canceled;\r\n return OrderStatus;\r\n }\r\n case OrderStatusResponse.Suspended: {\r\n OrderStatus =\r\n language === \"ar\"\r\n ? OrderStatusTextArabic.Suspended\r\n : OrderStatusText.Suspended;\r\n return OrderStatus;\r\n }\r\n case OrderStatusResponse.Expired: {\r\n OrderStatus =\r\n language === \"ar\"\r\n ? OrderStatusTextArabic.Expired\r\n : OrderStatusText.Expired;\r\n return OrderStatus;\r\n }\r\n\r\n case OrderStatusResponse.Pending: {\r\n OrderStatus =\r\n language === \"ar\"\r\n ? OrderStatusTextArabic.Pending\r\n : OrderStatusText.Pending;\r\n return OrderStatus;\r\n }\r\n\r\n case OrderStatusResponse.New: {\r\n OrderStatus =\r\n language === \"ar\" ? OrderStatusTextArabic.New : OrderStatusText.New;\r\n return OrderStatus;\r\n }\r\n\r\n case OrderStatusResponse.Outstanding: {\r\n OrderStatus =\r\n language === \"ar\"\r\n ? OrderStatusTextArabic.Outstanding\r\n : OrderStatusText.Outstanding;\r\n return OrderStatus;\r\n }\r\n\r\n case OrderStatusResponse.Partially_Filled: {\r\n OrderStatus =\r\n language === \"ar\"\r\n ? OrderStatusTextArabic.Partially_Filled\r\n : OrderStatusText.Partially_Filled;\r\n return OrderStatus;\r\n }\r\n case OrderStatusResponse.Rejected: {\r\n OrderStatus =\r\n language === \"ar\"\r\n ? OrderStatusTextArabic.Rejected\r\n : OrderStatusText.Rejected;\r\n return OrderStatus;\r\n }\r\n\r\n case OrderStatusResponse.Fully_Filled: {\r\n OrderStatus =\r\n language === \"ar\"\r\n ? OrderStatusTextArabic.Fully_Filled\r\n : OrderStatusText.Fully_Filled;\r\n return OrderStatus;\r\n }\r\n\r\n case OrderStatusResponse.Sent: {\r\n OrderStatus =\r\n language === \"ar\" ? OrderStatusTextArabic.Sent : OrderStatusText.Sent;\r\n return OrderStatus;\r\n }\r\n case OrderStatusResponse.Waiting: {\r\n OrderStatus =\r\n language === \"ar\"\r\n ? OrderStatusTextArabic.Waiting\r\n : OrderStatusText.Waiting;\r\n return OrderStatus;\r\n }\r\n default:\r\n return \"\";\r\n }\r\n}\r\n\r\nexport function isLoggedIn(abortController) {\r\n if (localStorage.getItem(\"user\")) {\r\n //console.log(\"logged in \");\r\n return auth(false, abortController);\r\n } else {\r\n //console.log(\"not logged in \");\r\n return false;\r\n }\r\n}\r\n\r\nexport async function auth(isfromHeader = false, abortController) {\r\n let getProfilesResponse = utils.getHeartBeat(abortController);\r\n getProfilesResponse\r\n .then((data) => {\r\n if (Number(data.data) > 0) return true;\r\n else {\r\n if (!isfromHeader) window.appComponent.errorHandling();\r\n return false;\r\n }\r\n })\r\n .finally(() => {\r\n if (abortController) abortController.abort();\r\n })\r\n .catch((error) => {\r\n if (error.response === undefined) {\r\n //console.log(error.message);\r\n return false;\r\n }\r\n let resStatus = error.response.status;\r\n let isAuthorized = utils.responseProcess(resStatus, true); //to check the user is logged in\r\n if (!isAuthorized) {\r\n //console.log(\"user unauthorized\");\r\n }\r\n if (abortController) abortController.abort();\r\n //console.log(error.message);\r\n return false;\r\n });\r\n}\r\n\r\nexport function dateFromString(s) {\r\n var r = /\\d*(\\d{2})(\\d{2})(\\d{4})(\\d{2})(\\d{2})(\\d{2})/.exec(s);\r\n //alert(r)\r\n\r\n if (r && r.length === 7) {\r\n return new Date(\r\n parseInt(r[3]),\r\n parseInt(r[2]) - 1,\r\n parseInt(r[1]),\r\n parseInt(r[4]),\r\n parseInt(r[5]),\r\n parseInt(r[6])\r\n );\r\n }\r\n return dateFromStringPlanB(s);\r\n}\r\nexport function dateFromStringPlanC(s, withTime = false) {\r\n var str = s;\r\n str = str.replace(\"+0300\", \"\");\r\n str = str.replace(\"+0200\", \"\");\r\n str = str.replace(\"+0400\", \"\");\r\n var num = parseInt(str.replace(/[^0-9]/g, \"\"));\r\n var date = new Date(num);\r\n\r\n var stringDate =\r\n (date.getMonth() + 1).toString() +\r\n \"/\" +\r\n date.getDate().toString() +\r\n \"/\" +\r\n date.getFullYear().toString() +\r\n (withTime\r\n ? \" \" +\r\n date.getHours() +\r\n \":\" +\r\n date.getMinutes() +\r\n \":\" +\r\n date.getSeconds() +\r\n (date.getHours() > 12 ? \" PM\" : \" AM\")\r\n : \"\");\r\n\r\n return stringDate;\r\n}\r\nexport function dateFromStringPlanE(s, withTime = false) {\r\n var str = s;\r\n // str = str.replace(\"+0300\", \"\")\r\n // str = str.replace(\"+0200\", \"\")\r\n // str = str.replace(\"+0400\", \"\")\r\n // var num = parseInt(str.replace(/[^0-9]/g, \"\"));\r\n var date = new Date(str);\r\n\r\n var stringDate =\r\n (date.getMonth() + 1).toString() +\r\n \"/\" +\r\n date.getDate().toString() +\r\n \"/\" +\r\n date.getFullYear().toString() +\r\n (withTime\r\n ? \" \" +\r\n date.getHours() +\r\n \":\" +\r\n date.getMinutes() +\r\n \":\" +\r\n date.getSeconds() +\r\n (date.getHours() > 12 ? \" PM\" : \" AM\")\r\n : \"\");\r\n\r\n return stringDate;\r\n}\r\nexport function dateFromStringPlanD(s) {\r\n var str = s;\r\n str = str.replace(\"+0300\", \"\");\r\n str = str.replace(\"+0200\", \"\");\r\n str = str.replace(\"+0400\", \"\");\r\n var num = parseInt(str.replace(/[^0-9]/g, \"\"));\r\n var date = new Date(num);\r\n\r\n // var stringDate = (date.getMonth() + 1).toString() + \"/\" + date.getDate().toString() + \"/\" + date.getFullYear().toString()\r\n\r\n return date;\r\n}\r\nexport function dateFromStringPlanB(s) {\r\n try {\r\n var strMod = s.replace(/\\ /gi, \"\");\r\n strMod = strMod.replace(/\\:/gi, \"\");\r\n strMod = strMod.replace(/\\-/gi, \"\");\r\n var r = /\\d*(\\d{2})(\\d{2})(\\d{4})(\\d{2})(\\d{2})(\\d{2})/.exec(strMod);\r\n //alert(\"planb\",r)\r\n if (r && r.length === 7) {\r\n return new Date(\r\n parseInt(r[3]),\r\n parseInt(r[2]) - 1,\r\n parseInt(r[1]),\r\n parseInt(r[4]),\r\n parseInt(r[5]),\r\n parseInt(r[6])\r\n );\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n return new Date(); //ragheb //ragheb //nbo ETRADE-11\r\n}\r\n\r\n//check if string is parseable to JSON\r\nexport function isJsonString(str) {\r\n if (str === null) {\r\n return false;\r\n }\r\n try {\r\n JSON.parse(str);\r\n } catch (e) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\n/* Is child descendant from parent */\r\nexport function isDescendant(parent, child) {\r\n var node = child.parentNode;\r\n while (node !== null) {\r\n if (node === parent) {\r\n return true;\r\n }\r\n node = node.parentNode;\r\n }\r\n return false;\r\n}\r\n\r\n//date to string\r\nexport function dateToString(d, dateOnly) {\r\n var str =\r\n twoDigitNumberToString(d.getDate()) +\r\n twoDigitNumberToString(d.getMonth() + 1) +\r\n d.getFullYear();\r\n if (dateOnly) str += \"000000\";\r\n else\r\n str +=\r\n twoDigitNumberToString(d.getHours()) +\r\n twoDigitNumberToString(d.getMinutes()) +\r\n twoDigitNumberToString(d.getSeconds());\r\n return str;\r\n}\r\n\r\n//returns yyyy-MM-dd\r\nexport function dateToFormatyyyyMMdd(d, dateOnly) {\r\n let date = dateToString(d, dateOnly); //returns: 25052021000000\r\n let day = date.substring(0, 2);\r\n let month = date.substring(2, 4);\r\n let year = date.substring(4, 8);\r\n let returnedDate = year + \"-\" + month + \"-\" + day;\r\n return returnedDate;\r\n}\r\n\r\n//by mhmd ramadan\r\nexport function DateFromYYYYMMDDtoDDMMYYYY(str, separator = \"-\") {\r\n if (str == undefined || str == null || str == 0 || str == \"0\") {\r\n return \"-\";\r\n }\r\n return str\r\n .split(\"\")\r\n .slice(6, 8)\r\n .toString()\r\n .replace(\",\", \"\")\r\n .concat(\r\n separator.concat(\r\n str\r\n .split(\"\")\r\n .slice(4, 6)\r\n .toString()\r\n .replace(\",\", \"\")\r\n .concat(\r\n separator.concat(\r\n str\r\n .split(\"\")\r\n .slice(0, 4)\r\n .toString()\r\n .replace(\",\", \"\")\r\n .replace(\",\", \"\")\r\n .replace(\",\", \"\")\r\n )\r\n )\r\n )\r\n );\r\n}\r\n\r\n//returns a string date: dd-MM-yyyy hh:mm:ss | example: 27-01-2021 13:23:10\r\nexport function dateFrommater(d) {\r\n let datestring =\r\n (\"0\" + d.getDate()).slice(-2) +\r\n \"-\" +\r\n (\"0\" + (d.getMonth() + 1)).slice(-2) +\r\n \"-\" +\r\n d.getFullYear() +\r\n \" \" +\r\n (\"0\" + d.getHours()).slice(-2) +\r\n \":\" +\r\n (\"0\" + d.getMinutes()).slice(-2) +\r\n \":\" +\r\n (\"0\" + d.getSeconds()).slice(-2);\r\n return datestring;\r\n}\r\n\r\nexport function yyyymmdd() {\r\n var now = new Date();\r\n var y = now.getFullYear();\r\n var m = now.getMonth() + 1;\r\n var d = now.getDate();\r\n return \"\" + y + (m < 10 ? \"0\" : \"\") + m + (d < 10 ? \"0\" : \"\") + d;\r\n}\r\n\r\n//return date with format 'ddMMyyyyHHmmss'\r\nexport function dateTimeFillFormat(date) {\r\n return moment(date).format(\"ddMMyyyyHHmmss\");\r\n}\r\n//return date with format 'ddMMyyyyHHmmss'\r\nexport function dateTimeFillFormat2(dates) {\r\n let date_ob = dates;\r\n\r\n // adjust 0 before single digit date\r\n let date = (\"0\" + date_ob.getDate()).slice(-2);\r\n\r\n // current month\r\n let month = (\"0\" + (date_ob.getMonth() + 1)).slice(-2);\r\n\r\n // current year\r\n let year = date_ob.getFullYear();\r\n\r\n // current hours\r\n let hours = \"00\";\r\n\r\n // current minutes\r\n let minutes = \"00\";\r\n\r\n // current seconds\r\n let seconds = \"00\";\r\n return date + month + year + hours + minutes + seconds;\r\n}\r\n\r\nexport function twoDigitNumberToString(dig) {\r\n if (dig >= 10) return dig.toString();\r\n return \"0\" + dig;\r\n}\r\n\r\n//example: 100,000 will be returned: 100k\r\nexport function nFormatter(num, digits) {\r\n if (num === null) {\r\n return null;\r\n } // terminate early\r\n if (num === 0) {\r\n return \"0\";\r\n } // terminate early\r\n /* digits = (!digits || digits < 0) ? 0 : digits; // number of decimal places to show\r\n var b = (num).toPrecision(2).split(\"e\"), // get power\r\n k = b.length === 1 ? 0 : Math.floor(Math.min(b[1].slice(1), 14) / 3), // floor at decimals, ceiling at trillions\r\n c = k < 1 ? num.toFixed(0 + digits) : (num / Math.pow(10, k * 3)).toFixed(1 + digits), // divide by power\r\n d = c < 0 ? c : Math.abs(c), // enforce -0 is 0\r\n e = d + ['', ' K', ' M', ' B', ' T',' P', ' E'][k]; // append power */\r\n let zeros = \"\";\r\n if (digits !== undefined && (digits !== null) & (digits > 0)) {\r\n zeros += \".\"; //place a point before zeros\r\n for (let i = 0; i < digits; i++) {\r\n zeros += \"0\";\r\n }\r\n }\r\n let e = numeral(num).format(\"0\" + zeros + \" a\");\r\n return e;\r\n}\r\n\r\n//convert string to html\r\nexport function convertStringToHtml(desc) {\r\n let linkEN = \"\";\r\n if (desc !== null) {\r\n linkEN = desc;\r\n var rg =\r\n /(https?:\\/\\/(?:www\\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}|www\\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}|https?:\\/\\/(?:www\\.|(?!www))[a-zA-Z0-9]+\\.[^\\s]{2,}|www\\.[a-zA-Z0-9]+\\.[^\\s]{2,})/gi;\r\n var substring = \"]*[>]/gi, \"
\");\r\n linkEN = linkEN.replace(/;/g, \"; \");\r\n linkEN = linkEN.replace(/&/g, \" &\");\r\n linkEN = linkEN.replace(/http:/g, \" http:\");\r\n linkEN = linkEN.replace(/https:/g, \" https:\");\r\n linkEN = linkEN.replace(rg, \"
$1\");\r\n }\r\n }\r\n\r\n return linkEN;\r\n}\r\n\r\n//get language\r\nexport function getCurrentLanguage() {\r\n let language = \"en\";\r\n if (localStorage.getItem(\"language\") !== null) {\r\n if (localStorage.getItem(\"language\") === \"ar\") language = \"ar\";\r\n else language = \"en\";\r\n }\r\n return language;\r\n}\r\n\r\nexport function getMarketStatusName(StatusCode, i18n) {\r\n\r\n switch (StatusCode) {\r\n case \"0001\":\r\n return i18n.t(\"Pre_Open\");\r\n case \"0002\":\r\n return i18n.t(\"Open\");\r\n case \"0003\":\r\n return i18n.t(\"Continuous\");\r\n case \"0004\":\r\n return i18n.t(\"Closed\");\r\n case \"0005\":\r\n return i18n.t(\"Suspended\");\r\n case \"0006\":\r\n return i18n.t(\"Pre_Close\");\r\n case \"0007\":\r\n return i18n.t(\"Closing\");\r\n case \"0008\":\r\n return i18n.t(\"Late_Trading\");\r\n case \"0009\":\r\n return i18n.t(\"EOD_Monitoring\");\r\n case \"0010\":\r\n return i18n.t(\"Preclose-Adjustment\");\r\n case \"0011\":\r\n return i18n.t(\"Trade-At-Last\");\r\n case \"0012\":\r\n return i18n.t(\"Post-Close\");\r\n case \"0013\":\r\n return i18n.t(\"intraDayAction\");\r\n default:\r\n return \"\";\r\n }\r\n}\r\n\r\nexport function getComponentPermission(\r\n permData,\r\n ParentCode,\r\n ChildCode = \"-1\",\r\n isfromScreen = false\r\n) {\r\n let result = false;\r\n if (permData !== null && permData !== undefined && permData.length > 0) {\r\n if (isfromScreen) {\r\n let Check2 = permData.filter(\r\n (perm) => perm.ParentCode === ParentCode && perm.ChildCode === ChildCode\r\n );\r\n if (Check2 !== undefined && Check2 !== null && Check2.length > 0)\r\n result = true;\r\n } else {\r\n let Check = permData.filter(\r\n (perm) => perm.ChildCode === ParentCode && perm.ParentCode === \"0\"\r\n );\r\n if (Check !== undefined && Check !== null && Check.length > 0)\r\n result = true;\r\n }\r\n\r\n // permData.forEach(element => {\r\n // if (!isfromScreen) {\r\n // if (element.ChildCode === ParentCode) {\r\n // result = true;\r\n // }\r\n // }\r\n // else {\r\n //\r\n // if (element.ParentCode === ParentCode && element.ChildCode === ChildCode) {\r\n // result = true;\r\n // }\r\n // }\r\n // });\r\n }\r\n return result;\r\n}\r\n\r\n/* export function deepEqual(object1, object2) {\r\n const keys1 = Object.keys(object1);\r\n const keys2 = Object.keys(object2);\r\n\r\n if (keys1.length !== keys2.length) {\r\n return false;\r\n }\r\n\r\n for (const key of keys1) {\r\n const val1 = object1[key];\r\n const val2 = object2[key];\r\n const areObjects = isObject(val1) && isObject(val2);\r\n if (\r\n areObjects && !deepEqual(val1, val2) ||\r\n !areObjects && val1 !== val2\r\n ) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n}\r\n\r\nexport function isObject(object) {\r\n return object !== null && typeof object === 'object';\r\n} */\r\n\r\n/************ End Section 1 ************/\r\n\r\n/* Section 2: AgGrid Functions */\r\n\r\n/* Numbers Comparator */\r\nexport function numberSort(num1, num2) {\r\n return num1 - num2;\r\n}\r\n\r\n// DATE COMPARATOR FOR SORTING\r\nexport function dateComparator(date1, date2) {\r\n let date1Number = monthToNum(date1);\r\n let date2Number = monthToNum(date2);\r\n\r\n if (date1 === null && date2 === null) {\r\n return 0;\r\n }\r\n if (date1 === null) {\r\n return -1;\r\n }\r\n if (date2 === null) {\r\n return 1;\r\n }\r\n\r\n return date1Number - date2Number;\r\n}\r\n\r\n// HELPER FOR DATE COMPARISON\r\nexport function monthToNum(date) {\r\n if (date === undefined || date === null || date.length === 0 || isNaN(date)) {\r\n return null;\r\n }\r\n\r\n // date from response: \"11012021023313\"\r\n let yearNumber = date.substring(4, 8);\r\n let monthNumber = date.substring(2, 4);\r\n let dayNumber = date.substring(0, 2);\r\n let timeNumber = date.substring(8);\r\n\r\n let result = yearNumber * 10000 + monthNumber * 100 + dayNumber + timeNumber;\r\n // 29/08/2004 => 20040829 2021/01/0010\r\n return result;\r\n}\r\n\r\nexport function dateSort(a, b) {\r\n return a.getTime() - b.getTime();\r\n}\r\n\r\nexport function datetimeformatterAgGrid(params, isAgGrid = true) {\r\n let value = isAgGrid ? params.value : params;\r\n let date = dateFromString(value);\r\n return date.toLocaleString(\"en-US\");\r\n}\r\n\r\nexport function ValidityCodeFormatterAgGrid(params) {\r\n let value = params.value.toString();\r\n\r\n if (value.length < 4) {\r\n if (value.length == 2) value = \"00\" + value;\r\n else if (value.length == 1) value = \"000\" + value;\r\n }\r\n\r\n switch (value) {\r\n case Constants.OrderValidityResponse.Day:\r\n return \"Day\";\r\n case Constants.OrderValidityResponse.GTC:\r\n return \"GTC\";\r\n case Constants.OrderValidityResponse.GTD:\r\n return \"GTD\";\r\n case Constants.OrderValidityResponse.GTW:\r\n return \"GTW\";\r\n case Constants.OrderValidityResponse.GTM:\r\n return \"GTM\";\r\n case Constants.OrderValidityResponse.FOK:\r\n return \"FOK\";\r\n case Constants.OrderValidityResponse.FAK:\r\n return \"FAK\";\r\n default:\r\n return \"\";\r\n }\r\n\r\n // if (params.value === \"0001\")\r\n // return \"Day\";\r\n // else if (params.value === \"0002\")\r\n // return \"GTC\";\r\n // else if (params.value === \"0003\")\r\n // return \"GTD\";\r\n // else if (params.value === \"0004\")\r\n // return \"GTW\";\r\n // else if (params.value === \"0005\")\r\n // return \"GTM\";\r\n // else if (params.value === \"0006\")\r\n // return \"FOK\";\r\n // else if (params.value === \"0007\")\r\n // return \"FAK\";\r\n // else\r\n // return \"\";\r\n}\r\nexport function ValidityCodeFormatter(values, language = \"en\") {\r\n let value = values.toString();\r\n let ValidityCode = \"\";\r\n if (value.length < 4) {\r\n if (value.length == 2) value = \"00\" + value;\r\n else if (value.length == 1) value = \"000\" + value;\r\n }\r\n switch (value) {\r\n case Constants.OrderValidityResponse.Day: {\r\n ValidityCode = language === \"ar\" ? \"يوم واحد\" : \"Day\";\r\n return ValidityCode;\r\n }\r\n case Constants.OrderValidityResponse.GTC:\r\n return \"GTC\";\r\n case Constants.OrderValidityResponse.GTD:\r\n return \"GTD\";\r\n case Constants.OrderValidityResponse.GTW:\r\n return \"GTW\";\r\n case Constants.OrderValidityResponse.GTM:\r\n return \"GTM\";\r\n case Constants.OrderValidityResponse.FOK:\r\n return \"FOK\";\r\n case Constants.OrderValidityResponse.FAK:\r\n return \"FAK\";\r\n default:\r\n return value;\r\n }\r\n}\r\n\r\nexport function BuySellFormatterAgGrid(params) {\r\n if (params.value === \"B\") return \"Buy\";\r\n else if (params.value === \"S\") return \"Sell\";\r\n else return \"\";\r\n}\r\n\r\n/************ End Section 2 ************/\r\n\r\n/* Section 3: Global Constant */\r\n\r\nexport const TopsEnum = Object.freeze({\r\n TopGainers: \"topGainer\",\r\n TopLoosers: \"topLooser\",\r\n TopVolume: \"topVolume\",\r\n TopTrades: \"topTrades\",\r\n TopTurnover: \"topTurnover\",\r\n});\r\n\r\n/* End Section 3 */\r\n\r\n/* empty cache function */\r\nexport function emptyCache() {\r\n if (\"caches\" in window) {\r\n caches.keys().then((names) => {\r\n // Delete all the cache files\r\n names.forEach((name) => {\r\n caches.delete(name);\r\n });\r\n });\r\n }\r\n setTimeout(() => window.location.reload());\r\n}\r\n\r\n/* Orders Functions */\r\n\r\nexport function getSelectedAccountBySymbol(\r\n exchange,\r\n account,\r\n allAccount,\r\n customThis\r\n) {\r\n let found = false;\r\n\r\n for (let x = 0; x < allAccount.length; x++) {\r\n found = undefined;\r\n\r\n if (\r\n allAccount[x].ClientID === account.ClientID &&\r\n allAccount[x].Exchange === exchange\r\n ) {\r\n found = true;\r\n console.error(\"found=\" + found);\r\n return allAccount[x];\r\n }\r\n }\r\n if (!found) {\r\n customThis.errorNotify(\r\n \"Selected company does not exist with the selected account\"\r\n );\r\n return null;\r\n }\r\n}\r\n\r\nexport function UnformatNumber(value) {\r\n if (Constants.config.CompanyName !== \"NBO\") return value;\r\n if (value) return value.replace(/,/g, \"\");\r\n else return \"\";\r\n}\r\n\r\nexport function getCustodianID(CustodianText, symbols) {\r\n for (var i in symbols) {\r\n var val = symbols[i];\r\n\r\n if (val.DescE === CustodianText || val.DescA === CustodianText) {\r\n return val.ID;\r\n }\r\n }\r\n return \"\";\r\n}\r\n\r\nexport function getExchangeStatusCode(exchangeID, markets) {\r\n if (markets.length > 0 && markets[0].ClientID !== \"\") {\r\n for (let x = 0; x < markets.length; x++) {\r\n if (markets[x].ExchangeID === exchangeID) return markets[x].StatusCode;\r\n }\r\n }\r\n return \"\";\r\n}\r\n\r\nexport function calculateShares(useOrderValue, thisParam) {\r\n if (thisParam.state.symbolDetails.Symbol === \"\") return;\r\n let selectedSymbol = thisParam.state.symbolDetails;\r\n //let expectedQty;\r\n let orderId =\r\n thisParam.state.order.OrderID !== null\r\n ? thisParam.state.order.OrderID\r\n : \"-1\"; // which means that if there is and order i.e _order then set the orderid of this order otherwise add -1\r\n let bsFlag = thisParam.state.orderType; //OrderType\r\n let cash = useOrderValue ? thisParam.state.orderValueInputNotDisabled : \"-1\";\r\n let shares_price =\r\n thisParam.state.price.toString().trim().length > 0\r\n ? parseFloat(thisParam.state.price)\r\n : 0;\r\n //let shares_quantity = UnformatNumber(thisParam.state.quantity).toString().trim().length > 0\r\n //? parseInt(UnformatNumber(thisParam.state.quantity))\r\n //: 0;\r\n\r\n let validity = thisParam.state.selectedValidityDateType.ID;\r\n let validityDate = thisParam.state.validityDate;\r\n if ((localStorage.getItem(Constants.localStorageConstants.EnableIPOQuickSell).toUpperCase() === \"TRUE\" && localStorage.getItem(\"IsNormalLogin\") === \"false\") && thisParam.state.isIPOChange) {\r\n validityDate = new Date(thisParam.state.validityDate);\r\n } else {\r\n validityDate = thisParam.state.validityDate;\r\n\r\n }\r\n if (shares_price === 0) {\r\n if (bsFlag === \"B\") shares_price = parseFloat(selectedSymbol.MaxPrice);\r\n else shares_price = parseFloat(selectedSymbol.MinPrice);\r\n }\r\n\r\n var new_validity =\r\n Constants.config.CompanyName === \"QSC\"\r\n ? validity + \" \" + dateToString(validityDate, false)\r\n : validity + dateToString(validityDate, false);\r\n\r\n let allAccounts = [...thisParam.props.accounts];\r\n /* expectedQty = custom.calculateSharesService(\r\n getSelectedAccountBySymbol(selectedSymbol.Exchange, custom.state.selectedAccount, allAccounts),\r\n custom.state.symbolDetails.Symbol,\r\n custom.state.symbolDetails.MarketType,\r\n bsFlag,\r\n cash, shares_price, orderId, validity, new_validity, bsFlag); */\r\n\r\n let account = getSelectedAccountBySymbol(\r\n selectedSymbol.Exchange,\r\n thisParam.state.selectedAccount,\r\n allAccounts\r\n );\r\n let symbol = thisParam.state.symbolDetails.Symbol;\r\n let marketType = thisParam.state.symbolDetails.MarketType;\r\n let orderType = bsFlag;\r\n //let cash = cash;\r\n //let price = shares_price;\r\n //let orderId = orderId;\r\n let validityCode = validity;\r\n let Validity = new_validity;\r\n let Side = bsFlag;\r\n let user = JSON.parse(localStorage.getItem(\"user\"));\r\n let typeCode = marketType;\r\n let usercat = user.UserType;\r\n let portmang = user.BrokerID;\r\n let memberid = user.BrokerID;\r\n let compinit = user.CompInit;\r\n let url =\r\n Constants.calculatesShares +\r\n account.MainClientID +\r\n \"/\" +\r\n account.AccountID +\r\n \"/\" +\r\n account.NIN +\r\n \"/\" +\r\n symbol +\r\n \"/\" +\r\n orderType +\r\n \"/\" +\r\n cash +\r\n \"/\" +\r\n shares_price +\r\n \"/\" +\r\n orderId +\r\n \"/\" +\r\n usercat +\r\n \"/\" +\r\n user.UCode +\r\n \"/\" +\r\n portmang +\r\n \"/\" +\r\n memberid +\r\n \"/\" +\r\n compinit +\r\n \"/\" +\r\n account.ClientID +\r\n \"/\" +\r\n typeCode +\r\n \"/\" +\r\n validityCode +\r\n \"/\" +\r\n Validity +\r\n \"/\" +\r\n Side +\r\n \"/\" +\r\n localStorage.getItem(\"WebCode\");\r\n\r\n thisParam.setIsLoaderVisible(true);\r\n //console.log(\"logging out...\");\r\n let calculatesSharesResponse = utils.calculatesShares(url);\r\n calculatesSharesResponse\r\n .then((response) => {\r\n thisParam.setIsLoaderVisible(false);\r\n //console.log(\"#CalculatesShares response: \", response.data);\r\n thisParam.setState({ quantity: response.data }, () => {\r\n //lastEditRajaa callGetRiskManagement(false, thisParam);\r\n switchRiskManagementType(false, thisParam);\r\n });\r\n })\r\n .catch((error) => {\r\n thisParam.setIsLoaderVisible(false);\r\n //console.log(\"error\", error);\r\n });\r\n}\r\n\r\n/* called multiple in component */\r\nexport function callGetRiskManagement(\r\n isConfirmAndSubmit = false,\r\n thisParam,\r\n isModify = false,\r\n BtnClicked = false\r\n) {\r\n // console.log(\"callGetRiskManagementscreenid\", thisParam.state.screenid)\r\n if (isConfirmAndSubmit && BtnClicked) {\r\n validateAndConfirmOrder(thisParam, isModify);\r\n return;\r\n }\r\n\r\n let options = { withCredentials: true };\r\n\r\n //from local storage\r\n let user = JSON.parse(localStorage.getItem(\"user\")); /* Error */\r\n let userType = user[\"UserType\"];\r\n let uCode = user[\"UCode\"];\r\n let borkerId = user[\"BrokerID\"];\r\n let compInit = user[\"CompInit\"];\r\n let webCode = user[\"WebCode\"];\r\n\r\n let price = 0;\r\n if (thisParam.state.price !== 0 && thisParam.state.price !== \"\") {\r\n price = thisParam.state.price;\r\n } else {\r\n price = thisParam.state.symbolDetails.MaxPrice;\r\n }\r\n //\r\n price = thisParam.state.marketOrderTypeSelected === \"1\" ? \"0\" : price;\r\n let validityDate = thisParam.state.validityDate;\r\n\r\n if ((localStorage.getItem(Constants.localStorageConstants.EnableIPOQuickSell).toUpperCase() === \"TRUE\" && localStorage.getItem(\"IsNormalLogin\") === \"false\") && thisParam.state.isIPOChange) {\r\n validityDate = dateToString(new Date(thisParam.state.validityDate));\r\n } else {\r\n validityDate = dateToString(thisParam.state.validityDate);\r\n }\r\n\r\n if (thisParam.state.selectedAccount === null) {\r\n setTimeout(() => {\r\n //lastEditRajaa callGetRiskManagement(isConfirmAndSubmit, thisParam);\r\n switchRiskManagementType(isConfirmAndSubmit, thisParam);\r\n }, 500);\r\n return;\r\n }\r\n let url =\r\n \"MainClientID: \" +\r\n thisParam.state.selectedAccount.MainClientID +\r\n \"/\" +\r\n \"AccountID: \" +\r\n thisParam.state.selectedAccount.AccountID +\r\n \"/\" +\r\n \"NIN: \" +\r\n thisParam.state.selectedAccount.NIN +\r\n \"/\" +\r\n \"Symbol: \" +\r\n thisParam.state.symbolDetails.Symbol +\r\n \"/\" +\r\n \"orderType: \" +\r\n thisParam.state.orderType +\r\n \"/\" +\r\n \"quantity: \" +\r\n (thisParam.state.quantity === null || thisParam.state.quantity === \"\"\r\n ? \"0\"\r\n : thisParam.state.quantity) +\r\n \"/\" +\r\n \"price: \" +\r\n (thisParam.state.marketOrderTypeSelected === \"1\" ? \"0\" : price) +\r\n \"/\" +\r\n \"userType: \" +\r\n userType +\r\n \"/\" +\r\n \"uCode: \" +\r\n uCode +\r\n \"/\" +\r\n \"borkerId: \" +\r\n borkerId +\r\n \"/\" +\r\n \"compInit: \" +\r\n compInit +\r\n \"/\" +\r\n \"ClientID: \" +\r\n thisParam.state.selectedAccount.ClientID +\r\n \"/\" +\r\n \"MarketType: \" +\r\n thisParam.state.symbolDetails.MarketType +\r\n \"/\" +\r\n \"selectedValidityDateType: \" +\r\n thisParam.state.selectedValidityDateType.ID +\r\n \"/\";\r\n //console.log(\"riskManagement\", url)\r\n let obj = {\r\n MainClientID: thisParam.state.selectedAccount.MainClientID,\r\n AccountID: thisParam.state.selectedAccount.AccountID,\r\n NIN: thisParam.state.selectedAccount.NIN,\r\n Symbol: thisParam.state.symbolDetails.Symbol,\r\n OrderType: thisParam.state.orderType,\r\n Qty: thisParam.state.quantity === null || thisParam.state.quantity === \"\" ? \"0\" : thisParam.state.quantity,\r\n Price: thisParam.state.marketOrderTypeSelected === \"1\" ? \"0\" : price,\r\n OrderID: isModify ? thisParam.state.orderToModify.OrderID : \"-1\",\r\n UserCat: userType,\r\n UCode: uCode,\r\n PortMang: borkerId,\r\n MemberID: borkerId,\r\n CompInit: compInit,\r\n IncludeMargin: \"Y\",\r\n IncludeFacil: \"Y\",\r\n ClientID: thisParam.state.selectedAccount.ClientID,\r\n TypeCode: thisParam.state.symbolDetails.MarketType,\r\n ValidityCode: thisParam.state.selectedValidityDateType.ID,\r\n Validity: validityDate,\r\n settType: \"-1\",\r\n CustodyID: \"-1\",\r\n webCode: webCode,\r\n Leverage: thisParam.state.LeverageValue.toString(),\r\n };\r\n\r\n var riskManagementResponse = utils.GetRiskManagment(obj, thisParam);\r\n riskManagementResponse\r\n .then((response) => response.data)\r\n .then((data) => {\r\n // console.log(\"#BuyOrdersEntry getRiskManagement response: \", data);\r\n thisParam.setState(\r\n {\r\n riskManagement: {\r\n AccountID: data.AccountID,\r\n Approval_Type: data.Approval_Type,\r\n AvailBal: data.AvailBal,\r\n BANK: data.BANK,\r\n BANK_ACCOUNT_NO: data.BANK_ACCOUNT_NO,\r\n BuyOrders: data.BuyOrders,\r\n BuyPower: data.BuyPower,\r\n BuyTrades: data.BuyTrades,\r\n CLIENT_NAME_A: data.CLIENT_NAME_A,\r\n CLIENT_NAME_E: data.CLIENT_NAME_E,\r\n Cash: data.Cash,\r\n ClientID: data.ClientID,\r\n FacilitiesAmt: data.FacilitiesAmt,\r\n Flag: data.Flag,\r\n FlagMsgA: data.FlagMsgA,\r\n FlagMsgE: data.FlagMsgE,\r\n MSValidation: data.MSValidation,\r\n MarginAmnt: data.MarginAmnt,\r\n MemberID: data.MemberID,\r\n NIN: data.NIN,\r\n OffLineOrderDate: data.OffLineOrderDate,\r\n OrderValue: data.OrderValue,\r\n SellOrders: data.SellOrders,\r\n SellTrades: data.SellTrades,\r\n Shares: data.Shares,\r\n UnpostedCRTrxns: data.UnpostedCRTrxns,\r\n UnpostedDBTrxns: data.UnpostedDBTrxns,\r\n broker_ID: data.broker_ID,\r\n fromCurrentScreen: false,\r\n PopulatedRiskManagement: false,\r\n MaxLeverage: data.MaxLeverage,\r\n },\r\n orderValueInput: data.OrderValue,\r\n },\r\n () => {\r\n \r\n if (\r\n thisParam.state.riskManagement.FlagMsgE !== \"\" &&\r\n thisParam.state.isfillDatafromMarketWatch !== undefined\r\n ) {\r\n if (thisParam.state.isfillDatafromMarketWatch)\r\n if (\r\n isConfirmAndSubmit &&\r\n thisParam.state.riskManagement.FlagMsgE === \"\" &&\r\n BtnClicked\r\n ) {\r\n //console.log(\"e.FlagMsgE\", thisParam.state.riskManagement.FlagMsg)\r\n // thisParam.errorNotify(thisParam.state.riskManagement.FlagMsgE)\r\n validateAndConfirmOrder(thisParam);\r\n }\r\n } else if (\r\n thisParam.state.riskManagement.Flag === \"13\" ||\r\n thisParam.state.riskManagement.Flag === \"17\" ||\r\n thisParam.state.riskManagement.Flag === \"19\"\r\n ) {\r\n // console.log(\"e.FlagMsgE\", thisParam.state.riskManagement.FlagMsgE)\r\n var msgText = thisParam.props.i18n.language === \"ar\" ? thisParam.state.riskManagement.FlagMsgA : thisParam.state.riskManagement.FlagMsgE;\r\n errorNotify(msgText, thisParam.props.i18n.language);\r\n }\r\n\r\n thisParam.props.changeSymbol(null, null, null, null, null, null, false);\r\n\r\n if (thisParam.state.selectedValidityDateType.ID === \"0001\") {\r\n //Day\r\n validityDateChecker(thisParam, data.OffLineOrderDate);\r\n }\r\n\r\n if ((localStorage.getItem(Constants.localStorageConstants.EnableIPOQuickSell).toUpperCase() === \"TRUE\" && localStorage.getItem(\"IsNormalLogin\") === \"false\")) {\r\n let result = thisParam.props.symbols.find((obj) => {\r\n return obj.Symbol === thisParam.state.symbolDetails.Symbol\r\n });\r\n if (result !== undefined && result !== null) {\r\n\r\n var OffLineOrderDate = utils\r\n .dateFromString(data.OffLineOrderDate)\r\n .toLocaleString(\"en-US\");\r\n\r\n var IPOValidityDate = utils\r\n .dateFromString(result.IPOValidityDate)\r\n .toLocaleString(\"en-US\");\r\n\r\n //OffLineOrderDate = Date(OffLineOrderDate)\r\n\r\n // var IPOValidityDate = Date(result.IPOValidityDate);\r\n\r\n // let dateObj = new Date(OffLineOrderDate);\r\n // dateObj = dateObj.toDateString();\r\n\r\n // let dateObjIPO = new Date(IPOValidityDate);\r\n // dateObjIPO = dateObjIPO.toDateString();\r\n\r\n if (IPOValidityDate > OffLineOrderDate) {\r\n if (thisParam.props.lookups !== null && thisParam.props.lookups !== undefined) {\r\n var tif = thisParam.props.lookups.filter((look) => (look.Type === \"TIF\" && look.ID !== \"0001\"))\r\n if (tif.length !== 0) {\r\n\r\n tif.forEach(item => {\r\n if (item.ID === \"0003\") {\r\n thisParam.setState({ selectedValidityDateType: item }, () => {\r\n validityDateChecker(thisParam, IPOValidityDate, true)\r\n })\r\n }\r\n })\r\n\r\n thisParam.setState({\r\n validityDateTypes: tif,\r\n isLookupsPupulated: true,\r\n isIPOChange: true\r\n // isIPOValidityDatePopulated : true\r\n })\r\n }\r\n }\r\n\r\n } else {\r\n if (thisParam.props.lookups !== null && thisParam.props.lookups !== undefined) {\r\n var tif = thisParam.props.lookups.filter((look) => (look.Type === \"TIF\"))\r\n if (tif.length !== 0) {\r\n\r\n tif.forEach(item => {\r\n if (item.ID === \"0001\") {\r\n thisParam.setState({ selectedValidityDateType: item }, () => {\r\n validityDateChecker(thisParam, data.OffLineOrderDate, false)\r\n })\r\n }\r\n })\r\n\r\n thisParam.setState({\r\n validityDateTypes: tif,\r\n isLookupsPupulated: true,\r\n isIPOChange: false\r\n // isIPOValidityDatePopulated : true\r\n })\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n );\r\n })\r\n .finally(() => {\r\n if (thisParam.abortController) thisParam.abortController.abort();\r\n })\r\n .catch((error) => {\r\n if (thisParam.abortController) thisParam.abortController.abort();\r\n //console.log(error);\r\n });\r\n}\r\n\r\nexport function callGetRiskManagementCash(isConfirmAndSubmit = false, thisParam, isModify = false, BtnClicked = false) {\r\n // console.log(\"callGetRiskManagementscreenid\", thisParam.state.screenid)\r\n if (isConfirmAndSubmit && BtnClicked) {\r\n validateAndConfirmOrder(thisParam, isModify);\r\n\r\n return;\r\n }\r\n\r\n let options = { withCredentials: true };\r\n\r\n //from local storage\r\n let user = JSON.parse(localStorage.getItem(\"user\")); /* Error */\r\n let userType = user[\"UserType\"];\r\n let uCode = user[\"UCode\"];\r\n let borkerId = user[\"BrokerID\"];\r\n let compInit = user[\"CompInit\"];\r\n let webCode = user[\"WebCode\"];\r\n\r\n let price = 0;\r\n if (thisParam.state.price !== 0 && thisParam.state.price !== \"\") {\r\n price = thisParam.state.price;\r\n } else {\r\n price = thisParam.state.symbolDetails.MaxPrice;\r\n }\r\n //\r\n price = thisParam.state.marketOrderTypeSelected === \"1\" ? \"0\" : price;\r\n let validityDate = dateToString(thisParam.state.validityDate);\r\n\r\n if (thisParam.state.selectedAccount === null) {\r\n setTimeout(() => {\r\n //lastEditRajaa callGetRiskManagement(isConfirmAndSubmit, thisParam);\r\n switchRiskManagementType(isConfirmAndSubmit, thisParam);\r\n }, 500);\r\n return;\r\n }\r\n\r\n let obj = {\r\n MainClientID: thisParam.state.selectedAccount.MainClientID,\r\n AccountID: thisParam.state.selectedAccount.AccountID,\r\n NIN: thisParam.state.selectedAccount.NIN,\r\n Symbol: thisParam.state.symbolDetails.Symbol,\r\n OrderType: thisParam.state.orderType,\r\n Qty: thisParam.state.quantity === null || thisParam.state.quantity === \"\" ? \"0\" : thisParam.state.quantity,\r\n Price: thisParam.state.marketOrderTypeSelected === \"1\" ? \"0\" : price,\r\n OrderID: isModify ? thisParam.state.orderToModify.OrderID : \"-1\",\r\n UserCat: userType,\r\n UCode: uCode,\r\n PortMang: borkerId,\r\n MemberID: borkerId,\r\n CompInit: compInit,\r\n IncludeMargin: \"Y\",\r\n IncludeFacil: \"Y\",\r\n ClientID: thisParam.state.selectedAccount.ClientID,\r\n TypeCode: thisParam.state.symbolDetails.MarketType,\r\n ValidityCode: thisParam.state.selectedValidityDateType.ID,\r\n Validity: validityDate,\r\n settType: \"-1\",\r\n CustodyID: \"-1\",\r\n webCode: webCode,\r\n Leverage: thisParam.state.LeverageValue.toString(),\r\n };\r\n\r\n var riskManagementResponse = utils.GetRiskManagmentCash(obj, thisParam);\r\n riskManagementResponse\r\n .then((response) => response.data)\r\n .then((data) => {\r\n // console.log(\"#BuyOrdersEntry getRiskManagement response: \", data);\r\n thisParam.setState(\r\n {\r\n riskManagement: {\r\n AccountID: data.AccountID,\r\n Approval_Type: data.Approval_Type,\r\n AvailBal: data.AvailBal,\r\n BANK: data.BANK,\r\n BANK_ACCOUNT_NO: data.BANK_ACCOUNT_NO,\r\n BuyOrders: data.BuyOrders,\r\n BuyPower: data.BuyPower,\r\n BuyTrades: data.BuyTrades,\r\n CLIENT_NAME_A: data.CLIENT_NAME_A,\r\n CLIENT_NAME_E: data.CLIENT_NAME_E,\r\n Cash: data.Cash,\r\n ClientID: data.ClientID,\r\n FacilitiesAmt: data.FacilitiesAmt,\r\n Flag: data.Flag,\r\n FlagMsgA: data.FlagMsgA,\r\n FlagMsgE: data.FlagMsgE,\r\n MSValidation: data.MSValidation,\r\n MarginAmnt: data.MarginAmnt,\r\n MemberID: data.MemberID,\r\n NIN: data.NIN,\r\n OffLineOrderDate: data.OffLineOrderDate,\r\n OrderValue: data.OrderValue,\r\n SellOrders: data.SellOrders,\r\n SellTrades: data.SellTrades,\r\n Shares: data.Shares,\r\n UnpostedCRTrxns: data.UnpostedCRTrxns,\r\n UnpostedDBTrxns: data.UnpostedDBTrxns,\r\n broker_ID: data.broker_ID,\r\n fromCurrentScreen: false,\r\n PopulatedRiskManagement: false,\r\n MaxLeverage: data.MaxLeverage,\r\n },\r\n orderValueInput: data.OrderValue,\r\n },\r\n () => {\r\n if (\r\n thisParam.state.riskManagement.FlagMsgE !== \"\" &&\r\n thisParam.state.isfillDatafromMarketWatch !== undefined\r\n ) {\r\n if (thisParam.state.isfillDatafromMarketWatch)\r\n if (\r\n isConfirmAndSubmit &&\r\n thisParam.state.riskManagement.FlagMsgE === \"\" &&\r\n BtnClicked\r\n ) {\r\n //console.log(\"e.FlagMsgE\", thisParam.state.riskManagement.FlagMsg)\r\n // thisParam.errorNotify(thisParam.state.riskManagement.FlagMsgE)\r\n validateAndConfirmOrder(thisParam);\r\n }\r\n } else if (\r\n thisParam.state.riskManagement.Flag === \"13\" ||\r\n thisParam.state.riskManagement.Flag === \"17\" ||\r\n thisParam.state.riskManagement.Flag === \"19\"\r\n ) {\r\n // console.log(\"e.FlagMsgE\", thisParam.state.riskManagement.FlagMsgE)\r\n var msgText = thisParam.props.i18n.language === \"ar\" ? thisParam.state.riskManagement.FlagMsgA : thisParam.state.riskManagement.FlagMsgE;\r\n errorNotify(msgText, thisParam.props.i18n.language);\r\n }\r\n\r\n thisParam.props.changeSymbol(null, null, null, null, null, null, false);\r\n\r\n if (thisParam.state.selectedValidityDateType.ID === \"0001\") {\r\n //Day\r\n validityDateChecker(thisParam, data.OffLineOrderDate);\r\n }\r\n }\r\n );\r\n })\r\n .finally(() => {\r\n if (thisParam.abortController) thisParam.abortController.abort();\r\n })\r\n .catch((error) => {\r\n if (thisParam.abortController) thisParam.abortController.abort();\r\n //console.log(error);\r\n });\r\n}\r\n\r\nexport function switchRiskManagementType(isConfirmAndSubmit = false, thisParam, isModify = false, BtnClicked = false) {\r\n if (localStorage.getItem(Constants.localStorageConstants.company_name) === \"ALRAMZ\")\r\n callGetRiskManagementCash(isConfirmAndSubmit, thisParam, isModify, BtnClicked);\r\n else\r\n callGetRiskManagement(isConfirmAndSubmit, thisParam, isModify, BtnClicked);\r\n}\r\n\r\n/* called once in component */\r\nexport function useAllCash(thisParam) {\r\n //the button of All balance click\r\n if (thisParam.state.selectedAccount.ClientID !== \"\") {\r\n\r\n if (thisParam.state.symbolDetails.Symbol !== \"\") {\r\n calculateShares(false, thisParam);\r\n\r\n //calculateRisk();//to update the order value readonly textbox . and show alerts if error happens the same function I sent yesterday including validations\r\n //lastEditRajaa callGetRiskManagement(false, thisParam);\r\n switchRiskManagementType(false, thisParam);\r\n } else {\r\n errorNotify(\r\n thisParam.props.i18n.t(\"symbol_is_required\"),\r\n thisParam.props.i18n.language\r\n );\r\n }\r\n } else {\r\n errorNotify(\r\n thisParam.props.i18n.t(\"account_is_required\"),\r\n thisParam.props.i18n.language\r\n );\r\n }\r\n}\r\n\r\n/* not called in component */\r\nexport function validateAndConfirmOrder(thisParam, isModify) {\r\n let account = thisParam.state.selectedAccount;\r\n let symbol = thisParam.state.symbolDetails.Symbol;\r\n let custodian = \"-1\";\r\n\r\n let MarketOrderType = thisParam.state.marketOrderType;\r\n let validity = thisParam.state.selectedValidityDateType.ID;\r\n let validityDate = new Date();\r\n let orderDate = new Date();\r\n let orderType = thisParam.state.orderType;\r\n let MinFill = thisParam.state.MinFillQty;\r\n let TotalVolume = 0;\r\n let quantity = Number(thisParam.state.quantity);\r\n let remaining = 0;\r\n let isConditionalOrder = false;\r\n let orderId = isModify ? thisParam.state.orderToModify.OrderID : \"-1\";\r\n let Sett_Type = \"\";\r\n let TransferReq = false;\r\n let VisibleQuantity = thisParam.state.VisibleQty;\r\n let SmartOrderID = \"\";\r\n let Remarks = \"\";\r\n let TP_price = thisParam.state.TP_price;\r\n let SL_price = thisParam.state.SL_price;\r\n placeNewOrder(\r\n account,\r\n symbol,\r\n custodian,\r\n thisParam.state.price,\r\n isModify,\r\n MarketOrderType,\r\n validity,\r\n validityDate,\r\n orderDate,\r\n orderType,\r\n MinFill,\r\n TotalVolume,\r\n quantity,\r\n remaining,\r\n isConditionalOrder,\r\n orderId,\r\n Sett_Type,\r\n TransferReq,\r\n VisibleQuantity,\r\n SmartOrderID,\r\n Remarks,\r\n TP_price,\r\n SL_price,\r\n thisParam\r\n );\r\n}\r\n\r\n/* not called in component */\r\nexport function placeNewOrder(\r\n account,\r\n symbol,\r\n custodian = \"-1\",\r\n price,\r\n isModify = false,\r\n MarketOrderType,\r\n Validity,\r\n ValidityDate,\r\n orderDate,\r\n OrderType = { Buy: 0, Sell: 1 },\r\n MinFill,\r\n TotalVolume,\r\n quantity,\r\n Remaining,\r\n isConditionalOrder = false,\r\n orderId = \"-1\",\r\n Sett_Type,\r\n TransferReq,\r\n VisibleQuantity = \"\",\r\n SmartOrderID = \"\",\r\n Remarks = \"\",\r\n TP_price = \"\",\r\n SL_price = \"\",\r\n thisParam\r\n) {\r\n let Symbols = [...thisParam.props.symbols]; //state of symbols lookups\r\n\r\n if (!account) {\r\n errorNotify(\r\n thisParam.props.i18n.t(\"Account_is_required\"),\r\n thisParam.props.i18n.language\r\n );\r\n return;\r\n }\r\n // errorNotify(thisParam.props.i18n.t(\"account is required\"), thisParam.props.i18n.language);\r\n\r\n var selectedSymbol = thisParam.state.symbolDetails; //either full from beginning or get from the below for loop\r\n\r\n if (!symbol || symbol.length === 0) {\r\n\r\n errorNotify(thisParam.props.i18n.t(\"symbol_is_required\"), thisParam.props.i18n.language);\r\n return;\r\n } else {\r\n for (let i in Symbols) {\r\n if (Symbols[i].Symbol === symbol || Symbols[i].SymbolCompanyE === symbol || Symbols[i].SymbolCompanyA === symbol) {\r\n selectedSymbol = Symbols[i];\r\n symbol = Symbols[i].Symbol;\r\n break;\r\n }\r\n }\r\n if (!selectedSymbol) {\r\n errorNotify(\r\n thisParam.props.i18n.t(\"please_select_a_symbol_from_the_list\"),\r\n thisParam.props.i18n.language\r\n );\r\n return;\r\n }\r\n }\r\n //let symbols = thisParam.props.symbols;\r\n //let selectedCustodian = getCustodianID(custodian, symbols);\r\n\r\n if (thisParam.state.orderType === \"\") {\r\n errorNotify(thisParam.props.i18n.t(\"Select_order_type_[Buy or Sell]\"), thisParam.props.i18n.language);\r\n return;\r\n }\r\n\r\n if (!quantity || parseInt(quantity) <= 0) {\r\n errorNotify(thisParam.props.i18n.t(\"quantity_is_required\"), thisParam.props.i18n.language);\r\n return;\r\n }\r\n\r\n //let price = '';\r\n\r\n if (thisParam.state.price === \"\") {\r\n if (thisParam.state.marketOrderTypeSelected === \"2\") {\r\n errorNotify(thisParam.props.i18n.t(\"Enter_price\"), thisParam.props.i18n.language);\r\n return;\r\n } else {\r\n price = thisParam.state.symbolDetails.MaxPrice;\r\n }\r\n } else {\r\n price = thisParam.state.price;\r\n }\r\n\r\n if ((parseFloat(price) < thisParam.state.symbolDetails.MinPrice || parseFloat(price) > thisParam.state.symbolDetails.MaxPrice) && (thisParam.state.IsValidateMinMax != \"N\")) {\r\n let MaxPriceValue =\r\n localStorage.getItem(Constants.localStorageConstants.company_name) ===\r\n \"IFS\"\r\n ? thisParam.state.symbolDetails.MaxPrice\r\n : localStorage.getItem(Constants.localStorageConstants.company_name) ===\r\n \"UNITED\"\r\n ? numberFormatterWithCommasAndDigitsFixed(\r\n thisParam.state.symbolDetails.MaxPrice,\r\n 4\r\n )\r\n : thisParam.state.symbolDetails.MaxPrice;\r\n\r\n let MinPriceValue =\r\n localStorage.getItem(Constants.localStorageConstants.company_name) ===\r\n \"IFS\"\r\n ? thisParam.state.symbolDetails.MinPrice\r\n : localStorage.getItem(Constants.localStorageConstants.company_name) ===\r\n \"UNITED\"\r\n ? numberFormatterWithCommasAndDigitsFixed(\r\n thisParam.state.symbolDetails.MinPrice,\r\n 4\r\n )\r\n : thisParam.state.symbolDetails.MinPrice;\r\n\r\n // thisParam.errorNotify(\"Price must be less than max \"\r\n // + MaxPriceValue +\r\n // \" price and greater than min price \"\r\n // + MinPriceValue)\r\n //\r\n var MSG = thisParam.props.i18n.t(\"Price_must_be_between_min\") + MinPriceValue + thisParam.props.i18n.t(\"and\") + MaxPriceValue;\r\n errorNotify(MSG, thisParam.props.i18n.language);\r\n return;\r\n }\r\n\r\n try {\r\n price = parseFloat(price).toString();\r\n\r\n if (Constants.config.CompanyName === \"NBO\") {\r\n if (\r\n !UnformatNumber(quantity) ||\r\n parseInt(UnformatNumber(quantity)) <= 0\r\n ) {\r\n errorNotify(\r\n thisParam.props.i18n.t(\"quantity_is_required\"),\r\n thisParam.props.i18n.language\r\n );\r\n return;\r\n }\r\n } else {\r\n if (\r\n price.indexOf(\".\") > -1 &&\r\n Constants.config.CompanyName.toUpperCase() === \"QATAR\"\r\n ) {\r\n if (\r\n price.split(\".\")[1].length > 2 &&\r\n selectedSymbol.Precision === \"2\"\r\n ) {\r\n errorNotify(\r\n thisParam.props.i18n.t(\"price_should_not_exceed_two_decimals\"),\r\n thisParam.props.i18n.language\r\n );\r\n return;\r\n }\r\n if (selectedSymbol.IsFund === \"Y\") {\r\n if (\r\n price.split(\".\")[1].length > 3 &&\r\n parseFloat(price) >= 1 &&\r\n selectedSymbol.Precision === \"3\"\r\n ) {\r\n errorNotify(\r\n thisParam.props.i18n.t(\"price_should_not_exceed_three_decimals\"),\r\n thisParam.props.i18n.language\r\n );\r\n return;\r\n }\r\n } else {\r\n if (\r\n price.split(\".\")[1].length > 2 &&\r\n parseFloat(price) >= 1 &&\r\n selectedSymbol.Precision === \"3\"\r\n ) {\r\n errorNotify(\r\n thisParam.props.i18n.t(\"price_should_not_exceed_two_decimals\"),\r\n thisParam.props.i18n.language\r\n );\r\n return;\r\n }\r\n }\r\n if (\r\n price.split(\".\")[1].length > 3 &&\r\n selectedSymbol.Precision === \"3\" &&\r\n parseFloat(price) < 1\r\n ) {\r\n errorNotify(\r\n thisParam.props.i18n.t(\"price_should_not_exceed_three_decimals\"),\r\n thisParam.props.i18n.language\r\n );\r\n return;\r\n }\r\n }\r\n }\r\n } catch (e) {\r\n //console.log(e);\r\n }\r\n\r\n if (\r\n (price || parseFloat(price) <= 0 || price.length === 0) &&\r\n (Constants.config.CompanyName === \"QNB\" ||\r\n Constants.config.CompanyName === \"CIC\") &&\r\n MarketOrderType === MarketOrderType.Limit\r\n ) {\r\n errorNotify(\r\n thisParam.props.i18n.t(\"price_is_required\"),\r\n thisParam.props.i18n.language\r\n );\r\n return;\r\n }\r\n if (price && selectedSymbol !== null && (parseFloat(price) > parseFloat(selectedSymbol.MaxPrice) || parseFloat(price) < parseFloat(selectedSymbol.MinPrice))) {\r\n //var error_msg = \"\"//priceisoutofrangemin_X0_max_X1\r\n\r\n var error_msg = \"priceisoutofrangemin_X0_max_X1\";\r\n //console.log(\"e.FlagMsgE\", error_msg)\r\n // thisParam.errorNotify(error_msg)\r\n return;\r\n }\r\n\r\n if (!Constants.config.AllowOfflineOrder && selectedSymbol !== null) {\r\n let markets = [...thisParam.state.markets];\r\n var status = getExchangeStatusCode(selectedSymbol.Exchange, markets);\r\n if (status === \"0005\" || status === \"0004\") {\r\n errorNotify(\r\n thisParam.props.i18n.t(\"offlineorder\"),\r\n thisParam.props.i18n.language\r\n );\r\n return;\r\n }\r\n }\r\n\r\n if (!Validity || Validity.length === 0) {\r\n errorNotify(\r\n thisParam.props.i18n.t(\"Valdity_is_required\"),\r\n thisParam.props.i18n.language\r\n );\r\n return;\r\n }\r\n\r\n\r\n if ([\"0003\"].indexOf(Validity) > 0) {\r\n if (!ValidityDate) {\r\n errorNotify(\r\n thisParam.props.i18n.t(\"Validity_Date_is_required\"),\r\n thisParam.props.i18n.language\r\n );\r\n return;\r\n } else if (orderDate && ValidityDate < orderDate) {\r\n errorNotify(\r\n thisParam.props.i18n.t(\"validitydatemustbegreaterthan\"),\r\n thisParam.props.i18n.language\r\n );\r\n return;\r\n }\r\n }\r\n\r\n if (thisParam.state.ISTradingSession === \"Y\" && !thisParam.state.TradingSessionDisabled && thisParam.state.selectedTradingSession.ID === \"\" && ((localStorage.getItem(Constants.localStorageConstants.company_name)).toUpperCase() === \"GLOBAL\" || (localStorage.getItem(Constants.localStorageConstants.company_name)).toUpperCase() === \"UNITED\")) {\r\n errorNotify(thisParam.props.i18n.t(\"TradingSession_is_required\"), thisParam.props.i18n.language);\r\n return;\r\n }\r\n\r\n if (parseInt(VisibleQuantity) > parseInt(UnformatNumber(quantity))) {\r\n errorNotify(\r\n thisParam.props.i18n.t(\"visiblequantitymustbelessthanquantity\"),\r\n thisParam.props.i18n.language\r\n );\r\n return;\r\n }\r\n\r\n if (parseInt(MinFill) > parseInt(UnformatNumber(quantity))) {\r\n errorNotify(\r\n thisParam.props.i18n.t(\"minimumfillmustbelessthanquantity\"),\r\n thisParam.props.i18n.language\r\n );\r\n return;\r\n }\r\n\r\n if (localStorage.getItem(Constants.localStorageConstants.company_name) === \"ALRAMZ\" && account.IS_MARGIN_ACC === \"Y\") {\r\n var maxL = thisParam.state.riskManagement.MaxLeverage === \"null\" ||\r\n thisParam.state.riskManagement.MaxLeverage === null\r\n ? \"0\"\r\n : thisParam.state.riskManagement.MaxLeverage;\r\n if (account.IS_MARGIN_ACC === \"Y\" && parseFloat(thisParam.state.LeverageValue) > parseFloat(maxL)) {\r\n errorNotify(thisParam.props.i18n.t(\"Leverage_Value_must_be_less_than_Max_Leverage\"), thisParam.props.i18n.language);\r\n return;\r\n }\r\n\r\n if (account.IS_MARGIN_ACC === \"Y\" && 1 > parseFloat(thisParam.state.LeverageValue) && parseFloat(thisParam.state.LeverageValue) < parseFloat(maxL) && parseFloat(maxL) >= 1 && thisParam.state.orderType == \"B\") {\r\n errorNotify(thisParam.props.i18n.t(\"LeverageValueMust\") + parseFloat(maxL), thisParam.props.i18n.language);\r\n return;\r\n }\r\n\r\n if (parseFloat(maxL) < 1)\r\n if (parseFloat(thisParam.state.LeverageValue) != parseFloat(maxL)) {\r\n errorNotify(\"Leverage Value must be equal Max Leverage \" + parseFloat(maxL), thisParam.props.i18n.language);\r\n return;\r\n }\r\n }\r\n\r\n //let allAccounts = [...thisParam.props.accounts];\r\n //var acc = getSelectedAccountBySymbol(selectedSymbol.Exchange, account, allAccounts, this);//Selected account;\r\n //var op = OrderType;\r\n\r\n var order_quantity =\r\n UnformatNumber(quantity).toString().trim().length > 0\r\n ? parseInt(UnformatNumber(quantity))\r\n : 0;\r\n var executed = (parseFloat(TotalVolume) || 0) - (parseFloat(Remaining) || 0);\r\n var total_volume = executed + order_quantity;\r\n //var remaining = order_quantity;\r\n //var totalQty = Constants.config.RealTimeOrders ? total_volume : remaining;\r\n var order_price = 0;\r\n if (isConditionalOrder) {\r\n // createCondtional();\r\n } else {\r\n if (selectedSymbol === null) return;\r\n order_price = price.toString().trim().length > 0 ? parseFloat(price) : 0;\r\n\r\n if (isNaN(order_price) || isNaN(parseFloat(order_price))) {\r\n price = 0;\r\n }\r\n\r\n //var bsFlag = OrderType === OrderType.Buy ? 'B' : 'S';\r\n //var risk_validity = (Constants.config.CompanyName === \"QSC\") ? Validity + ' ' + dateToString(ValidityDate, false) : Validity + dateToString(ValidityDate, false);\r\n\r\n //call api\r\n\r\n let options = { withCredentials: true };\r\n\r\n //from local storage\r\n let user = JSON.parse(localStorage.getItem(\"user\"));\r\n let userType = user[\"UserType\"];\r\n let uCode = user[\"UCode\"];\r\n let borkerId = user[\"BrokerID\"];\r\n let compInit = user[\"CompInit\"];\r\n let webCode = user[\"WebCode\"];\r\n\r\n let priceForApi = 0;\r\n if (thisParam.state.price !== 0 && thisParam.state.price !== \"\") {\r\n priceForApi = thisParam.state.price;\r\n } else {\r\n priceForApi = thisParam.state.symbolDetails.MaxPrice;\r\n }\r\n let validityDate = thisParam.state.validityDate;\r\n\r\n if ((localStorage.getItem(Constants.localStorageConstants.EnableIPOQuickSell).toUpperCase() === \"TRUE\" && localStorage.getItem(\"IsNormalLogin\") === \"false\") && thisParam.state.isIPOChange) {\r\n validityDate = dateToString(new Date(thisParam.state.validityDate));\r\n } else {\r\n validityDate = dateToString(thisParam.state.validityDate);\r\n }\r\n thisParam.setIsLoaderVisible(true);\r\n // let url = Constants.getRiskManagement +\r\n // thisParam.state.selectedAccount.MainClientID + '/' +\r\n // thisParam.state.selectedAccount.AccountID + '/' +\r\n // thisParam.state.selectedAccount.NIN + '/' +\r\n // thisParam.state.symbolDetails.Symbol + '/' +\r\n // thisParam.state.orderType + '/' +\r\n // thisParam.state.quantity + '/' +\r\n // priceForApi + '/' + orderId + '/' +\r\n // userType + '/' +\r\n // uCode + '/' +\r\n // borkerId + '/' +\r\n // borkerId + '/' +\r\n // compInit + '/' +\r\n // thisParam.state.selectedAccount.ClientID + '/' +\r\n // thisParam.state.symbolDetails.MarketType + '/' +\r\n // thisParam.state.selectedValidityDateType.ID + '/' +\r\n // validityDate + \"/\" +\r\n // \"-1/-1/\" +\r\n // webCode;\r\n\r\n let url =\r\n \"MainClientID: \" +\r\n thisParam.state.selectedAccount.MainClientID +\r\n \"/\" +\r\n \"AccountID: \" +\r\n thisParam.state.selectedAccount.AccountID +\r\n \"/\" +\r\n \"NIN: \" +\r\n thisParam.state.selectedAccount.NIN +\r\n \"/\" +\r\n \"Symbol: \" +\r\n thisParam.state.symbolDetails.Symbol +\r\n \"/\" +\r\n \"orderType: \" +\r\n thisParam.state.orderType +\r\n \"/\" +\r\n \"quantity: \" +\r\n (thisParam.state.quantity === null || thisParam.state.quantity === \"\"\r\n ? \"0\"\r\n : thisParam.state.quantity) +\r\n \"/\" +\r\n \"price: \" +\r\n (thisParam.state.marketOrderTypeSelected === \"1\" ? \"0\" : price) +\r\n \"/\" +\r\n \"userType: \" +\r\n userType +\r\n \"/\" +\r\n \"uCode: \" +\r\n uCode +\r\n \"/\" +\r\n \"borkerId: \" +\r\n borkerId +\r\n \"/\" +\r\n \"compInit: \" +\r\n compInit +\r\n \"/\" +\r\n \"ClientID: \" +\r\n thisParam.state.selectedAccount.ClientID +\r\n \"/\" +\r\n \"MarketType: \" +\r\n thisParam.state.symbolDetails.MarketType +\r\n \"/\" +\r\n \"selectedValidityDateType: \" +\r\n thisParam.state.selectedValidityDateType.ID +\r\n \"/\";\r\n //console.log(\"riskManagement\", url)\r\n\r\n let obj = {\r\n MainClientID: thisParam.state.selectedAccount.MainClientID,\r\n AccountID: thisParam.state.selectedAccount.AccountID,\r\n NIN: thisParam.state.selectedAccount.NIN,\r\n Symbol: thisParam.state.symbolDetails.Symbol,\r\n OrderType: thisParam.state.orderType,\r\n Qty:\r\n thisParam.state.quantity === null || thisParam.state.quantity === \"\"\r\n ? \"0\"\r\n : thisParam.state.quantity,\r\n Price:\r\n thisParam.state.marketOrderTypeSelected === \"1\" ? \"0\" : priceForApi,\r\n OrderID: isModify ? thisParam.state.orderToModify.OrderID : \"-1\",\r\n UserCat: userType,\r\n UCode: uCode,\r\n PortMang: borkerId,\r\n MemberID: borkerId,\r\n CompInit: compInit,\r\n IncludeMargin: \"Y\",\r\n IncludeFacil: \"Y\",\r\n ClientID: thisParam.state.selectedAccount.ClientID,\r\n TypeCode: thisParam.state.symbolDetails.MarketType,\r\n ValidityCode: thisParam.state.selectedValidityDateType.ID,\r\n Validity: validityDate,\r\n settType: \"-1\",\r\n CustodyID: \"-1\",\r\n webCode: webCode,\r\n Leverage: thisParam.state.LeverageValue.toString(),\r\n };\r\n\r\n var riskManagementResponse =\r\n localStorage.getItem(Constants.localStorageConstants.company_name) ===\r\n \"ALRAMZ\"\r\n ? utils.GetRiskManagmentCash(obj, thisParam)\r\n : utils.GetRiskManagment(obj, thisParam);\r\n riskManagementResponse\r\n .then((response) => response.data)\r\n .then((data) => {\r\n thisParam.setState(\r\n {\r\n riskManagement: {\r\n AccountID: data.AccountID,\r\n Approval_Type: data.Approval_Type,\r\n AvailBal: data.AvailBal,\r\n BANK: data.BANK,\r\n BANK_ACCOUNT_NO: data.BANK_ACCOUNT_NO,\r\n BuyOrders: data.BuyOrders,\r\n BuyPower: data.BuyPower,\r\n BuyTrades: data.BuyTrades,\r\n CLIENT_NAME_A: data.CLIENT_NAME_A,\r\n CLIENT_NAME_E: data.CLIENT_NAME_E,\r\n Cash: data.Cash,\r\n ClientID: data.ClientID,\r\n FacilitiesAmt: data.FacilitiesAmt,\r\n Flag: data.Flag,\r\n FlagMsgA: data.FlagMsgA,\r\n FlagMsgE: data.FlagMsgE,\r\n MSValidation: data.MSValidation,\r\n MarginAmnt: data.MarginAmnt,\r\n MemberID: data.MemberID,\r\n NIN: data.NIN,\r\n OffLineOrderDate: data.OffLineOrderDate,\r\n OrderValue: data.OrderValue,\r\n SellOrders: data.SellOrders,\r\n SellTrades: data.SellTrades,\r\n Shares: data.Shares,\r\n UnpostedCRTrxns: data.UnpostedCRTrxns,\r\n UnpostedDBTrxns: data.UnpostedDBTrxns,\r\n broker_ID: data.broker_ID,\r\n MaxLeverage: data.MaxLeverage,\r\n },\r\n },\r\n () => {\r\n let e = thisParam.state.riskManagement;\r\n if (\r\n e.Flag === \"6\" &&\r\n Constants.config.CompanyName === \"NBO\" &&\r\n !TransferReq\r\n ) {\r\n //CallBankTransfareRequest(e, selectedSymbol, totalQty, \"confirmMessage\"); to be done later\r\n return;\r\n } else if (e.Flag !== \"0\") {\r\n // console.log(\"e.FlagMsgE\", e.FlagMsgE)\r\n // if (Constants.config.CompanyName !== \"CIC\")\r\n // console.log(\"e.FlagMsgE\", e.FlagMsgE)\r\n var msgText = thisParam.props.i18n.language === \"ar\" ? e.FlagMsgA : e.FlagMsgE;\r\n errorNotify(\r\n thisParam.props.i18n.t(msgText),\r\n thisParam.props.i18n.language\r\n );\r\n // if (thisParam.state.isfillDatafromMarketWatch !== undefined)\r\n // if (!thisParam.state.isfillDatafromMarketWatch) {\r\n // console.log(\"e.FlagMsgE\", e.FlagMsgE)\r\n // thisParam.errorNotify(e.FlagMsgE)\r\n // }\r\n // // thisParam.errorNotify(e.FlagMsgE)\r\n // else {\r\n // if (e.FlagMsgE.indexOf('No Data') > -1) {\r\n\r\n // e.FlagMsgE = \"Company not traded to this account\";\r\n // e.FlagMsgA = \"الشركة لا يمكن تداولها على هذا الحساب\";\r\n // thisParam.errorNotify(e.FlagMsgE)\r\n // }\r\n // if (thisParam.state.isfillDatafromMarketWatch !== undefined)\r\n // if (!thisParam.state.isfillDatafromMarketWatch) {\r\n // console.log(\"e.FlagMsgE\", e.FlagMsgE)\r\n // thisParam.errorNotify(e.FlagMsgE)\r\n // }\r\n\r\n // //thisParam.errorNotify(e.FlagMsgE)\r\n // }\r\n\r\n return;\r\n }\r\n\r\n //offline order\r\n /* var orderTypeCode = '-1';\r\n switch (MarketOrderType) {\r\n case thisParam.state.MarketOrderType.Market:\r\n orderTypeCode = '1';\r\n break;\r\n case thisParam.state.MarketOrderType.Limit:\r\n orderTypeCode = '2';\r\n break;\r\n default:\r\n orderTypeCode = \"-1\";\r\n break;\r\n } */\r\n if (isModify /* && _order */) {\r\n //def = Services.modifyOrder(selectedSymbol.Symbol, bsFlag, totalQty.Remaining, price, Validity, orderTypeCode, orderId);\r\n thisParam.confirmAndSubmitOrder(total_volume, true);\r\n } else {\r\n thisParam.confirmAndSubmitOrder(total_volume);\r\n //def = Services.createOrder(selectedSymbol.Symbol, bsFlag, totalQty.Remaining, price, Validity, orderTypeCode);\r\n }\r\n }\r\n );\r\n\r\n thisParam.setIsLoaderVisible(false);\r\n })\r\n .finally(() => {\r\n if (thisParam.abortController) thisParam.abortController.abort();\r\n })\r\n .catch((error) => {\r\n if (thisParam.abortController) thisParam.abortController.abort();\r\n errorNotify(\r\n thisParam.props.i18n.t(\"Error_please_try_again_later\"),\r\n thisParam.props.i18n.language\r\n );\r\n thisParam.setIsLoaderVisible(false);\r\n });\r\n }\r\n}\r\n\r\n/* called once in component */\r\nexport function callAddOrder(TotalVolume, thisParam, type = 1) {\r\n /* new signalr add/modify order */\r\n // new -> type = 1\r\n // modify -> type = 2\r\n\r\n let order = {};\r\n let isModify = type === 2;\r\n let selectedSymbol = thisParam.state.symbolDetails;\r\n let user = JSON.parse(localStorage.getItem(\"user\"));\r\n //let selectedAccount = thisParam.state.selectedAccount;\r\n let newDate = new Date();\r\n\r\n let date = dateFrommater(newDate);\r\n\r\n order.OrderID = isModify ? thisParam.state.orderToModify.OrderID : \"\";\r\n order.SymbolCode = selectedSymbol.SymbolID;\r\n order.Exchange = selectedSymbol.Exchange;\r\n order.BookCode = \"0001\";\r\n order.BrokerID = user.BrokerID;\r\n order.AccountID = thisParam.state.selectedAccount.AccountID;\r\n order.Symbol = selectedSymbol.Symbol;\r\n\r\n let price = \"\";\r\n if (thisParam.state.price === \"\") {\r\n if (thisParam.state.orderType === \"B\") {\r\n price = thisParam.state.symbolDetails.MaxPrice;\r\n } else {\r\n price = thisParam.state.symbolDetails.MinPrice;\r\n }\r\n } else {\r\n price = thisParam.state.price;\r\n }\r\n order.Price = thisParam.state.marketOrderTypeSelected === \"1\" ? \"0\" : String(price);\r\n order.ValidityCode = thisParam.state.selectedValidityDateType.ID;\r\n\r\n if ((localStorage.getItem(Constants.localStorageConstants.EnableIPOQuickSell).toUpperCase() === \"TRUE\" && localStorage.getItem(\"IsNormalLogin\") === \"false\") && thisParam.state.isIPOChange) {\r\n order.ValidityDate = dateFrommater(new Date(thisParam.state.validityDate));\r\n } else {\r\n order.ValidityDate = dateFrommater(thisParam.state.validityDate);\r\n\r\n }\r\n\r\n let total = thisParam.state.quantity;\r\n let remaining = thisParam.state.quantity;\r\n let execqty = 0;\r\n\r\n if (isModify)\r\n if (thisParam.state.orderToModify.StatusCode === \"P\") {\r\n execqty = Number(thisParam.state.orderToModify.TotalVolume) - Number(thisParam.state.orderToModify.Remaining);\r\n total = execqty + parseInt(thisParam.state.quantity);\r\n remaining = Number(total) - execqty;\r\n }\r\n\r\n order.TotalVolume = String(total);\r\n order.Remaining = String(remaining);\r\n\r\n /* order.TotalVolume = String(parseInt(thisParam.state.quantity))\r\n order.Remaining = isModify ? remaining : String(parseInt(thisParam.state.quantity)); */\r\n //\r\n order.SourceCode = \"c\";\r\n order.StatusCode = isModify ? thisParam.state.orderToModify.StatusCode : \"W\"; //isCancel ? \"C\" : \"W\";\r\n order.EntryDate = isModify ? \"\" : date; // bs iza new order\r\n order.ModifyDate = /* isModify ? */ date; /* : \"\" */ // bs iza modify order\r\n order.UserID = user.UCode;\r\n order.OrigUserID = user.UCode;\r\n order.MarketTypeCode = selectedSymbol.MarketType; // symbol.MarketType\r\n order.Source2Code = \"c\";\r\n order.MinFillQty = thisParam.state.MinFillQty;\r\n //order.VisibleQty = thisParam.state.VisibleQty;\r\n\r\n order.VisibleQty = thisParam.state.selectedExecutionRole === \"0020\" && localStorage.getItem(Constants.localStorageConstants.company_name) === \"CIBC\" ? -1 : thisParam.state.VisibleQty; //Mustafa changes\r\n\r\n order.OrderTypeCode = thisParam.state.marketOrderTypeSelected;\r\n if (order.Price === \"0\") {\r\n order.OrderTypeCode = \"1\";\r\n }\r\n order.NIN = thisParam.state.selectedAccount.NIN;\r\n order.ProcSentFlag = \"Y\";\r\n order.MarketOrderID = \"\";\r\n order.OriginCode = \"E\";\r\n order.IntOrderID = \"\";\r\n order.TP_price = thisParam.state.TP_price;\r\n order.SL_price = thisParam.state.SL_price;\r\n\r\n order.TrxnID = isModify ? String((parseInt(thisParam.state.orderToModify.TrxnID) ?? 0) + 1) : \"0\";\r\n if (thisParam.state.orderType === \"B\") {\r\n order.SellBuyFlag = \"B\";\r\n order.msgCode = isModify ? \"C15\" : \"C11\";\r\n } else {\r\n order.SellBuyFlag = \"S\";\r\n order.msgCode = isModify ? \"C14\" : \"C10\";\r\n }\r\n order.AccountNameA = thisParam.state.selectedAccount.ClientNameA;\r\n order.AccountNameE = thisParam.state.selectedAccount.ClientNameE; // account.ClientNameE\r\n order.Remark = \"\"; // remarks\r\n order.SenderSubID = \"\";\r\n order.BuyerMember = \"\";\r\n order.SellerMember = \"\";\r\n order.AvgExePrice = \"\";\r\n order.IsinCode = \"\"; // symbol.IsinCode\r\n order.FIXOrderID = \"\";\r\n order.ClientID = thisParam.state.selectedAccount.ClientID;\r\n //order.ClientID = thisParam.state.selectedAccount.AccountID;\r\n order.RejectReason = \"\";\r\n\r\n order.TR_price = \"\";\r\n order.Max_TR_price = String(order.Price);\r\n order.TR_Price_is_perc = \"\";\r\n order.BE_Price = \"\";\r\n order.SPL_Order_flag = \"N\";\r\n order.ApprovalStatusCode = user.WebCode;\r\n order.ApprovalTypeCode = thisParam.state.riskManagement.MSValidation; // key\r\n order.StopLossPx = \"\";\r\n order.SenderCompanyID = \"\";\r\n order.LocalValue = \"\";\r\n order.SymbolLongName = \"\";\r\n order.LastUpdateTime = \"01-01-2000 22:51:14\"; //weird\r\n order.SmartOrderID = \"\"; // SmartOrderID\r\n\r\n // order.Sett_Type = \"\"; //selectedOrder.SettlementType.value\r\n // order.CustodianID = \"\"; //selectedOrder.CustodianID.id // CustodianID\r\n\r\n order.Sett_Type = localStorage.getItem(Constants.localStorageConstants.company_name) === \"CIBC\" && thisParam.state.orderType === \"S\" ? thisParam.state.selectedSettelmentType : \"\"; //Mustafa changes\r\n order.CustodianID = localStorage.getItem(Constants.localStorageConstants.company_name) === \"CIBC\" ? thisParam.state.selectedCustodian : \"\"; //Mustafa changes\r\n\r\n order.IP_Address = localStorage.getItem(\"ipAddress\");\r\n order.Leverage = parseFloat(thisParam.state.LeverageValue);\r\n order.TradingSessionID = type === 2 ? \"\" : thisParam.state.selectedTradingSession.ID;\r\n\r\n // if (localStorage.getItem(Constants.localStorageConstants.EnableIPOQuickSell).toUpperCase() === \"TRUE\" && localStorage.getItem(\"IsNormalLogin\") === \"false\" && thisParam.state.IsPortfolioPopulited) {\r\n // if (thisParam.state.profitLossData.length > 0) {\r\n // var checkSymbol = thisParam.state.profitLossData.find((el) => el.Symbol === order.Symbol);\r\n // if (checkSymbol === undefined || checkSymbol === null) {\r\n // errorNotify(thisParam.props.t(\"notEnableTrade\"), thisParam.props.i18n.language);\r\n // return\r\n // }\r\n\r\n // }\r\n // }\r\n if (thisParam.props.signalr_connection !== undefined && thisParam.props.signalr_connection !== null && thisParam.props.signalr_connection.state === 1) {\r\n let order1 = order;\r\n order = [order];\r\n\r\n console.log(\"order to invoke: \", order1, \" username: \", localStorage.getItem(\"username\"));\r\n // thisParam.props.signalr_connection.proxies.myhub.invoke(\"sendAddOrderRequest\", localStorage.getItem(\"username\"), order)\r\n\r\n thisParam.props.signalr_connection.proxies.myhub\r\n .invoke(\"sendAddOrderRequest\", localStorage.getItem(\"username\"), order1)\r\n .then((res) => {\r\n if (!res) {\r\n errorNotify(thisParam.props.t(\"MsgErrNetWork\"), thisParam.props.i18n.language);\r\n }\r\n });\r\n\r\n //Mustafa changes BasketOrder\r\n // if (thisParam.props.fromBasketOrder) {\r\n // console.log(\r\n // \"order to invoke: \",\r\n // order1,\r\n // \" username: \",\r\n // localStorage.getItem(\"username\")\r\n // );\r\n // addBasketOrderDetails(order1, thisParam);\r\n // } else if (thisParam.props.updateFromBasketOrder) {\r\n // console.log(\r\n // \"order to invoke: \",\r\n // order1,\r\n // \" username: \",\r\n // localStorage.getItem(\"username\")\r\n // );\r\n // ModifyBasketOrderDetails(order1, thisParam);\r\n // } else {\r\n // console.log(\"invoke\", order1);\r\n // // thisParam.props.signalr_connection.proxies.myhub.invoke(\"sendAddOrderRequest\", localStorage.getItem(\"username\"), order)\r\n // thisParam.props.signalr_connection.proxies.myhub\r\n // .invoke(\"sendAddOrderRequest\", localStorage.getItem(\"username\"), order1)\r\n // .then((res) => {\r\n // if (!res) {\r\n // errorNotify(\r\n // thisParam.props.t(\"MsgErrNetWork\"),\r\n // thisParam.props.i18n.language\r\n // );\r\n // }\r\n // });\r\n // }\r\n } else {\r\n errorNotify(thisParam.props.i18n.t(\"error\"), thisParam.props.i18n.language);\r\n }\r\n\r\n return;\r\n}\r\n\r\n//Mustafa changes\r\nexport function addBasketOrderDetails(orderObj, thisParam) {\r\n // basketOrderArr.value = orderObj;\r\n thisParam.props.setBasketOrderObject([orderObj]);\r\n\r\n let params = {\r\n AccountID: orderObj.AccountID,\r\n AccountNameA: orderObj.AccountNameA,\r\n AccountNameE: orderObj.AccountNameE,\r\n ApprovalStatusCode: orderObj.ApprovalStatusCode,\r\n ApprovalTypeCode: orderObj.ApprovalTypeCode,\r\n AvgExePrice: orderObj.AvgExePrice,\r\n BE_Price: orderObj.BE_Price,\r\n B_GroupName: thisParam.state.selectedGroupName,\r\n B_OutOfMarketDate: orderObj.B_OutOfMarketDate,\r\n B_OutOfMarketType: orderObj.B_OutOfMarketType,\r\n BookCode: orderObj.BookCode,\r\n BrokerID: orderObj.BrokerID,\r\n BuyerMember: orderObj.BuyerMember,\r\n ClientID: orderObj.ClientID,\r\n CompanyShortNameA: orderObj.CompanyShortNameA,\r\n CompanyShortNameE: orderObj.CompanyShortNameE,\r\n CustodianID: orderObj.CustodianID,\r\n EntryDate: orderObj.EntryDate,\r\n Exchange: orderObj.Exchange,\r\n ExecOrderComm: orderObj.ExecOrderComm,\r\n FIXOrderID: orderObj.FIXOrderID,\r\n IntOrderID: orderObj.IntOrderID,\r\n vIsinCode: orderObj.IsinCode,\r\n vvLastUpdateTime: \"/Date(928138800000+0300)/\", //\"19-01-2023 15:52:02\",\r\n LocalValue: orderObj.LocalValue,\r\n MarketOrderID: orderObj.MarketOrderID,\r\n MarketTypeCode: orderObj.MarketTypeCode,\r\n MaxPrice: orderObj.MaxPrice,\r\n Max_TR_price: orderObj.Max_TR_price,\r\n MinFillQty: orderObj.MinFillQty.toString(),\r\n MinPrice: orderObj.MinPrice,\r\n ModifyDate: orderObj.ModifyDate,\r\n NIN: orderObj.NIN,\r\n No_of_trades: orderObj.No_of_trades,\r\n OrdComm: orderObj.OrdComm,\r\n OrderID: orderObj.OrderID,\r\n OrderTypeCode: orderObj.OrderTypeCode,\r\n OrigUserID: orderObj.OrigUserID,\r\n OriginCode: orderObj.OriginCode,\r\n Precision: orderObj.Precision,\r\n Price: orderObj.Price,\r\n ProcSentFlag: orderObj.ProcSentFlag,\r\n RejectReason: orderObj.RejectReason,\r\n Remaining: orderObj.Remaining,\r\n Remark: orderObj.Remark,\r\n SL_price: orderObj.SL_price.toString(),\r\n SMART_ORDER_ID: orderObj.SMART_ORDER_ID,\r\n SPL_Order_flag: orderObj.SPL_Order_flag,\r\n SellBuyFlag: orderObj.SellBuyFlag,\r\n SellerMember: orderObj.SellerMember,\r\n SenderCompanyID: orderObj.SenderCompanyID,\r\n SenderSubID: orderObj.SenderSubID,\r\n Source2Code: orderObj.Source2Code,\r\n SourceCode: orderObj.SourceCode,\r\n StatusCode: orderObj.StatusCode,\r\n StopLossPx: orderObj.StopLossPx,\r\n Symbol: orderObj.Symbol,\r\n SymbolCode: orderObj.SymbolCode,\r\n SymbolLongName: orderObj.SymbolLongName,\r\n TP_price: orderObj.TP_price.toString(),\r\n TR_Price_is_perc: orderObj.TR_Price_is_perc,\r\n TR_price: orderObj.TR_price,\r\n TotalVolume: orderObj.TotalVolume,\r\n TrxnID: orderObj.TrxnID,\r\n UserID: localStorage.getItem(\"WebCode\"),\r\n ValidityCode: orderObj.ValidityCode,\r\n ValidityDate: orderObj.ValidityDate,\r\n VisibleQty: orderObj.VisibleQty.toString(),\r\n cur_code: orderObj.cur_code,\r\n msgCode: orderObj.msgCode,\r\n };\r\n\r\n let params2 = {\r\n AccountID: orderObj.AccountID,\r\n AccountNameA: orderObj.AccountNameA,\r\n AccountNameE: orderObj.AccountNameE,\r\n ApprovalStatusCode: orderObj.ApprovalStatusCode,\r\n ApprovalTypeCode: orderObj.ApprovalTypeCode,\r\n AvgExePrice: \"\",\r\n BE_Price: \"\",\r\n B_GroupName: \"\",\r\n B_OutOfMarketDate: \"\",\r\n B_OutOfMarketType: orderObj.B_OutOfMarketType,\r\n BookCode: orderObj.BookCode,\r\n BrokerID: orderObj.BrokerID,\r\n BuyerMember: \"\",\r\n ClientID: orderObj.ClientID,\r\n CompanyShortNameA: \"\",\r\n CompanyShortNameE: \"\",\r\n CustodianID: \"\",\r\n EntryDate: orderObj.EntryDate,\r\n Exchange: orderObj.Exchange,\r\n ExecOrderComm: \"\",\r\n FIXOrderID: \"\",\r\n IntOrderID: \"\",\r\n IsinCode: \"\",\r\n LastUpdateTime: \"/Date(928138800000+0300)/\",\r\n LocalValue: \"\",\r\n MarketOrderID: \"\",\r\n MarketTypeCode: orderObj.MarketTypeCode,\r\n MaxPrice: \"\",\r\n Max_TR_price: orderObj.Max_TR_price,\r\n MinFillQty: orderObj.MinFillQty,\r\n MinPrice: \"\",\r\n ModifyDate: orderObj.ModifyDate,\r\n NIN: orderObj.NIN,\r\n No_of_trades: \"\",\r\n OrdComm: \"\",\r\n OrderID: \"\",\r\n OrderTypeCode: orderObj.OrderTypeCode,\r\n OrigUserID: orderObj.OrigUserID,\r\n OriginCode: orderObj.OriginCode,\r\n Precision: \"\",\r\n Price: orderObj.Price,\r\n ProcSentFlag: orderObj.ProcSentFlag,\r\n RejectReason: \"\",\r\n Remaining: orderObj.Remaining,\r\n Remark: \"\",\r\n SL_price: orderObj.SL_price,\r\n SMART_ORDER_ID: \"\",\r\n SPL_Order_flag: orderObj.SPL_Order_flag,\r\n SellBuyFlag: orderObj.SellBuyFlag,\r\n SellerMember: \"\",\r\n SenderCompanyID: \"\",\r\n SenderSubID: \"\",\r\n Source2Code: orderObj.Source2Code,\r\n SourceCode: orderObj.SourceCode,\r\n StatusCode: orderObj.StatusCode,\r\n StopLossPx: \"\",\r\n Symbol: orderObj.Symbol,\r\n SymbolCode: \"12\",\r\n SymbolLongName: \"\",\r\n TP_price: orderObj.TP_price,\r\n TR_Price_is_perc: \"\",\r\n TR_price: \"\",\r\n TotalVolume: orderObj.TotalVolume,\r\n TrxnID: orderObj.TrxnID,\r\n UserID: \"82\",\r\n ValidityCode: orderObj.ValidityCode,\r\n ValidityDate: orderObj.ValidityDate,\r\n VisibleQty: orderObj.VisibleQty,\r\n cur_code: \"\",\r\n msgCode: orderObj.msgCode,\r\n };\r\n\r\n let AddBasketOrderResponse = utils.addBasketOrderDetails(params);\r\n AddBasketOrderResponse.then((response) => {\r\n console.log(\"response AddBankIBAN called\", response);\r\n\r\n if (response.data) {\r\n if (response.data !== \"false\" && response.data !== \"\") {\r\n successNotify(\r\n this.props.t(\"Add To Basket Order\"),\r\n this.props.i18n.language\r\n );\r\n } else {\r\n errorNotify(\r\n thisParam.props.i18n.t(\"Error\"),\r\n thisParam.props.i18n.language\r\n );\r\n }\r\n } else {\r\n errorNotify(\r\n thisParam.props.i18n.t(\"Error\"),\r\n thisParam.props.i18n.language\r\n );\r\n }\r\n\r\n //this.clearAll(e);\r\n }).catch((error) => {\r\n errorNotify(error, \"EN\");\r\n });\r\n}\r\n\r\n//Mustafa changes\r\nexport function ModifyBasketOrderDetails(updateOrderObj, thisParam) {\r\n // basketOrderArr.value = orderObj;\r\n thisParam.props.setBasketOrderObject([updateOrderObj]);\r\n\r\n let params = {\r\n AccountID: updateOrderObj.AccountID,\r\n AccountNameA: updateOrderObj.AccountNameA,\r\n AccountNameE: updateOrderObj.AccountNameE,\r\n ApprovalStatusCode: updateOrderObj.ApprovalStatusCode,\r\n ApprovalTypeCode: updateOrderObj.ApprovalTypeCode,\r\n AvgExePrice: updateOrderObj.AvgExePrice,\r\n BE_Price: updateOrderObj.BE_Price,\r\n B_GroupName: thisParam.state.selectedGroupName,\r\n B_OutOfMarketDate: updateOrderObj.B_OutOfMarketDate,\r\n B_OutOfMarketType: updateOrderObj.B_OutOfMarketType,\r\n BookCode: updateOrderObj.BookCode,\r\n BrokerID: updateOrderObj.BrokerID,\r\n BuyerMember: updateOrderObj.BuyerMember,\r\n ClientID: updateOrderObj.ClientID,\r\n CompanyShortNameA: updateOrderObj.CompanyShortNameA,\r\n CompanyShortNameE: updateOrderObj.CompanyShortNameE,\r\n CustodianID: updateOrderObj.CustodianID,\r\n EntryDate: updateOrderObj.EntryDate,\r\n Exchange: updateOrderObj.Exchange,\r\n ExecOrderComm: updateOrderObj.ExecOrderComm,\r\n FIXOrderID: updateOrderObj.FIXOrderID,\r\n IntOrderID: updateOrderObj.IntOrderID,\r\n IsinCode: updateOrderObj.IsinCode,\r\n LastUpdateTime: \"/Date(928138800000+0300)/\", //\"19-01-2023 15:52:02\",\r\n LocalValue: updateOrderObj.LocalValue,\r\n MarketOrderID: updateOrderObj.MarketOrderID,\r\n MarketTypeCode: updateOrderObj.MarketTypeCode,\r\n MaxPrice: updateOrderObj.MaxPrice,\r\n Max_TR_price: updateOrderObj.Max_TR_price,\r\n MinFillQty: updateOrderObj.MinFillQty.toString(),\r\n MinPrice: updateOrderObj.MinPrice,\r\n ModifyDate: updateOrderObj.ModifyDate,\r\n NIN: updateOrderObj.NIN,\r\n No_of_trades: updateOrderObj.No_of_trades,\r\n OrdComm: updateOrderObj.OrdComm,\r\n OrderID: thisParam.state.basketOrderIDUpdated,\r\n OrderTypeCode: updateOrderObj.OrderTypeCode,\r\n OrigUserID: updateOrderObj.OrigUserID,\r\n OriginCode: updateOrderObj.OriginCode,\r\n Precision: updateOrderObj.Precision,\r\n Price: updateOrderObj.Price,\r\n ProcSentFlag: updateOrderObj.ProcSentFlag,\r\n RejectReason: updateOrderObj.RejectReason,\r\n Remaining: updateOrderObj.Remaining,\r\n Remark: updateOrderObj.Remark,\r\n SL_price: updateOrderObj.SL_price.toString(),\r\n SMART_ORDER_ID: updateOrderObj.SMART_ORDER_ID,\r\n SPL_Order_flag: updateOrderObj.SPL_Order_flag,\r\n SellBuyFlag: updateOrderObj.SellBuyFlag,\r\n SellerMember: updateOrderObj.SellerMember,\r\n SenderCompanyID: updateOrderObj.SenderCompanyID,\r\n SenderSubID: updateOrderObj.SenderSubID,\r\n Source2Code: updateOrderObj.Source2Code,\r\n SourceCode: updateOrderObj.SourceCode,\r\n StatusCode: updateOrderObj.StatusCode,\r\n StopLossPx: updateOrderObj.StopLossPx,\r\n Symbol: updateOrderObj.Symbol,\r\n SymbolCode: updateOrderObj.SymbolCode,\r\n SymbolLongName: updateOrderObj.SymbolLongName,\r\n TP_price: updateOrderObj.TP_price.toString(),\r\n TR_Price_is_perc: updateOrderObj.TR_Price_is_perc,\r\n TR_price: updateOrderObj.TR_price,\r\n TotalVolume: updateOrderObj.TotalVolume,\r\n TrxnID: updateOrderObj.TrxnID,\r\n UserID: localStorage.getItem(\"WebCode\"),\r\n ValidityCode: updateOrderObj.ValidityCode,\r\n ValidityDate: updateOrderObj.ValidityDate,\r\n VisibleQty: updateOrderObj.VisibleQty.toString(),\r\n cur_code: updateOrderObj.cur_code,\r\n msgCode: updateOrderObj.msgCode,\r\n };\r\n\r\n console.log(\"modyfy\", params);\r\n\r\n let ModifyBasketResponse = utils.ModifyBasketOrderDetails(params);\r\n ModifyBasketResponse.then((response) => {\r\n console.log(\"response AddBankIBAN called\", response);\r\n if (response.data) {\r\n } else {\r\n //errorNotify(this.props.t(\"error\"), this.props.i18n.language);\r\n }\r\n\r\n //this.clearAll(e);\r\n }).catch((error) => {\r\n errorNotify(error, \"EN\");\r\n });\r\n}\r\nexport function callCancelOrder(props, errorNotify) {\r\n if (\r\n props.signalr_connection !== undefined &&\r\n props.signalr_connection !== null &&\r\n props.signalr_connection.state === 1\r\n ) {\r\n let order = {};\r\n let selectedSymbol = props.data;\r\n let user = JSON.parse(localStorage.getItem(\"user\"));\r\n let newDate = new Date();\r\n let date = dateFrommater(newDate);\r\n\r\n order.OrderID = selectedSymbol.OrderID ?? \"\";\r\n order.SymbolCode = selectedSymbol.Symbol;\r\n order.Exchange = selectedSymbol.Exchange;\r\n order.BookCode = \"0001\";\r\n order.BrokerID = user.BrokerID;\r\n order.AccountID = selectedSymbol.AccountID;\r\n order.Symbol = selectedSymbol.Symbol;\r\n\r\n order.Price = selectedSymbol.Price ?? \"\";\r\n\r\n let value = selectedSymbol.ValidityCode.toString();\r\n if (!value.includes(\"0001,0002,0003,0004,0005,0006,0007\")) {\r\n let values = value;\r\n // if (value.length < 4) {\r\n // if (value.length == 2)\r\n // value = \"00\" + value;\r\n // else if (value.length == 1)\r\n // value = \"000\" + value;\r\n // }\r\n switch (values) {\r\n case \"Day\":\r\n value = \"0001\";\r\n break;\r\n case \"GTC\":\r\n value = \"0002\";\r\n break;\r\n case \"GTD\":\r\n value = \"0003\";\r\n break;\r\n case \"GTW\":\r\n value = \"0004\";\r\n break;\r\n case \"GTM\":\r\n value = \"0005\";\r\n break;\r\n case \"FOK\":\r\n value = \"0006\";\r\n break;\r\n case \"FAK\":\r\n value = \"0007\";\r\n break;\r\n case \"1\":\r\n value = \"0001\";\r\n break;\r\n case \"2\":\r\n value = \"0002\";\r\n break;\r\n case \"3\":\r\n value = \"0003\";\r\n break;\r\n case \"4\":\r\n value = \"0006\";\r\n break;\r\n case \"5\":\r\n value = \"0005\";\r\n break;\r\n case \"6\":\r\n value = \"0006\";\r\n break;\r\n case \"7\":\r\n value = \"0007\";\r\n break;\r\n }\r\n }\r\n\r\n order.ValidityCode = value ?? \"\";\r\n order.ValidityDate = selectedSymbol.ValidityDate ?? \"\";\r\n\r\n order.TotalVolume = selectedSymbol.TotalVolume ?? \"\";\r\n order.Remaining = selectedSymbol.Remaining ?? \"\";\r\n\r\n order.SourceCode = \"c\";\r\n order.StatusCode = selectedSymbol.StatusCode ?? \"\";\r\n\r\n order.EntryDate = selectedSymbol.EntryDate ?? \"\";\r\n order.ModifyDate = date;\r\n\r\n order.UserID = user.UCode;\r\n order.OrigUserID = user.UCode;\r\n order.MarketTypeCode = selectedSymbol.MarketTypeCode; // symbol.MarketType\r\n order.Source2Code = \"c\";\r\n order.MinFillQty = selectedSymbol.MinFillQty ?? \"\";\r\n\r\n order.VisibleQty = selectedSymbol.VisibleQty ?? \"\";\r\n order.OrderTypeCode = selectedSymbol.OrderTypeCode ?? \"\";\r\n\r\n order.NIN = selectedSymbol.NIN ?? \"\";\r\n order.ProcSentFlag = \"Y\";\r\n order.MarketOrderID = \"\";\r\n order.OriginCode = \"E\";\r\n order.IntOrderID = \"\";\r\n order.TP_price = selectedSymbol.TP_price;\r\n order.SL_price = selectedSymbol.SL_price;\r\n\r\n order.TrxnID = String((parseInt(selectedSymbol.TrxnID ?? \"0\") ?? 0) + 1);\r\n\r\n order.SellBuyFlag = selectedSymbol.SellBuyFlag ?? \"\";\r\n\r\n if (selectedSymbol.orderType === \"B\") {\r\n if (\r\n selectedSymbol.StatusCode.toUpperCase() === \"W\" ||\r\n selectedSymbol.StatusCode.toUpperCase() === \"T\"\r\n ) {\r\n order.msgCode = \"C27\";\r\n } else {\r\n order.msgCode = \"C19\";\r\n }\r\n } else {\r\n if (\r\n selectedSymbol.StatusCode.toUpperCase() === \"W\" ||\r\n selectedSymbol.StatusCode.toUpperCase() === \"T\"\r\n ) {\r\n order.msgCode = \"C26\";\r\n } else {\r\n order.msgCode = \"C18\";\r\n }\r\n }\r\n\r\n order.AccountNameA = selectedSymbol.AccountNameA ?? \"\";\r\n order.AccountNameE = selectedSymbol.AccountNameE ?? \"\";\r\n order.Remark = selectedSymbol.Remark ?? \"\";\r\n\r\n order.SenderSubID = \"\";\r\n order.BuyerMember = \"\";\r\n order.SellerMember = \"\";\r\n\r\n order.AvgExePrice = selectedSymbol.AvgExePrice ?? \"\";\r\n order.IsinCode = \"\";\r\n order.FIXOrderID = \" \";\r\n\r\n order.ClientID = selectedSymbol.ClientID ?? \"\";\r\n\r\n order.RejectReason = \"\";\r\n order.TR_price = \"\";\r\n\r\n order.Max_TR_price = selectedSymbol.Max_TR_price ?? \"\";\r\n\r\n order.TR_Price_is_perc = \"\";\r\n order.BE_Price = \"\";\r\n order.SPL_Order_flag = \"N\";\r\n\r\n order.ApprovalStatusCode = user.WebCode;\r\n order.ApprovalTypeCode = \"\"; // key\r\n order.StopLossPx = \"\";\r\n order.SenderCompanyID = \"\";\r\n order.LocalValue = \"\";\r\n order.SymbolLongName = \"\";\r\n order.LastUpdateTime = \"0001-01-01T00:00:00\"; //weird\r\n order.SmartOrderID = \"\"; // SmartOrderID\r\n\r\n order.Sett_Type = \"\"; //selectedOrder.SettlementType.value\r\n order.CustodianID = \"\"; //selectedOrder.CustodianID.id // CustodianID\r\n order.IP_Address = localStorage.getItem(\"ipAddress\");\r\n //console.log(\"order to cancel: \", order, \" username: \", localStorage.getItem(\"username\"));\r\n // thisParam.props.signalr_connection.proxies.myhub.invoke(\"sendAddOrderRequest\", localStorage.getItem(\"username\"), order)\r\n props.signalr_connection.proxies.myhub.invoke(\r\n \"sendAddOrderRequest\",\r\n localStorage.getItem(\"username\"),\r\n order\r\n );\r\n } else {\r\n errorNotify(\"error\");\r\n }\r\n}\r\n\r\nexport function validityDateChecker(thisParam, validityDate = null, isIPOChange = false) {\r\n \r\n let today = new Date();\r\n let fromDate = new Date();\r\n fromDate.setDate(fromDate.getDate() + 1);\r\n\r\n let OffLineOrderDate = utils\r\n .dateFromStringDateOnly(thisParam.state.riskManagement.OffLineOrderDate)\r\n .toLocaleString(\"en-US\");\r\n\r\n let OffLineOrderDateformat = new Date();\r\n if (OffLineOrderDate !== null && OffLineOrderDate !== \"\") {\r\n if (OffLineOrderDate.includes(\",\"))\r\n OffLineOrderDateformat = new Date(OffLineOrderDate);\r\n else {\r\n OffLineOrderDateformat.setHours(today.getHours());\r\n OffLineOrderDateformat.setTime(today.getTime());\r\n OffLineOrderDateformat.setSeconds(today.getSeconds());\r\n OffLineOrderDateformat.setFullYear(\r\n Number(OffLineOrderDate.split(\"/\")[2])\r\n );\r\n OffLineOrderDateformat.setMonth(\r\n Number(OffLineOrderDate.split(\"/\")[1]) - 1\r\n );\r\n OffLineOrderDateformat.setDate(Number(OffLineOrderDate.split(\"/\")[0]));\r\n\r\n // OffLineOrderDateformat = new Date(OffLineOrderDate.split(\"/\")[2], Number(OffLineOrderDate.split(\"/\")[1]) - 1, OffLineOrderDate.split(\"/\")[0] );\r\n }\r\n }\r\n\r\n if (validityDate !== null) {\r\n today = validityDate;\r\n }\r\n if (thisParam.state.selectedValidityDateType.ID === \"0001\") {\r\n //Day\r\n thisParam.setState({\r\n isValidityDatePickerDisabled: true,\r\n validityDate: OffLineOrderDateformat,\r\n });\r\n } else if (thisParam.state.selectedValidityDateType.ID === \"0002\") {\r\n //GTC\r\n if (validityDate !== null) {\r\n today = validityDate;\r\n } else {\r\n today.setFullYear(today.getFullYear() + 1);\r\n }\r\n thisParam.setState({\r\n isValidityDatePickerDisabled: true,\r\n validityDate: today,\r\n });\r\n } else if (\r\n thisParam.state.selectedValidityDateType.ID === \"0003\" &&\r\n thisParam.state.isModify === false\r\n ) {\r\n //GTD\r\n\r\n // thisParam.setState({ isValidityDatePickerDisabled: false, validityDate: fromDate })\r\n thisParam.setState({\r\n isValidityDatePickerDisabled: false,\r\n validityDate: OffLineOrderDateformat,\r\n });\r\n } else if (\r\n thisParam.state.selectedValidityDateType.ID === \"0003\" &&\r\n thisParam.state.isModify === true\r\n ) {\r\n //GTD\r\n var x = isIPOChange ? new Date(validityDate) : validityDate\r\n if (validityDate !== null) {\r\n thisParam.setState({\r\n isValidityDatePickerDisabled: false,\r\n validityDate: x,\r\n });\r\n } else {\r\n thisParam.setState({\r\n isValidityDatePickerDisabled: false,\r\n validityDate: OffLineOrderDateformat,\r\n });\r\n }\r\n // thisParam.setState({ isValidityDatePickerDisabled: false, validityDate: fromDate })\r\n } else if (\r\n thisParam.state.selectedValidityDateType.ID === \"0003\" &&\r\n thisParam.state.isModify === undefined\r\n ) {\r\n //GTD\r\n\r\n // thisParam.setState({ isValidityDatePickerDisabled: false, validityDate: fromDate }) \r\n\r\n var x = isIPOChange ? new Date(validityDate) : OffLineOrderDateformat;\r\n thisParam.setState({\r\n isValidityDatePickerDisabled: false,\r\n validityDate: x,\r\n });\r\n } else if (thisParam.state.selectedValidityDateType.ID === \"0004\") {\r\n //GTW\r\n\r\n if (validityDate !== null) {\r\n today = validityDate;\r\n } else {\r\n var endingday = localStorage.getItem(\"last_Work_day\");\r\n today = getNextDayOfTheWeek(endingday);\r\n // var endingday = \"Thursday\"\r\n // switch (localStorage.getItem(\"Region\")) {\r\n // case \"UAE\":\r\n // // need to be changed in the begining of the year to Friday on UAE Only\r\n // endingday = \"Friday\"\r\n // break;\r\n // case \"OMAN\":\r\n // endingday = \"Thursday\"\r\n // break;\r\n // case \"QATAR\":\r\n // endingday = \"Thursday\"\r\n // break;\r\n // default:\r\n // endingday = \"Thursday\"\r\n // break;\r\n // }\r\n\r\n // switch (localStorage.getItem(\"last_Work_day\")) {\r\n // case \"0\":\r\n // endingday = \"Sunday\"\r\n // break;\r\n // case \"1\":\r\n // endingday = \"Monday\"\r\n // break;\r\n // case \"2\":\r\n // endingday = \"Tuesday\"\r\n // break;\r\n // case \"3\":\r\n // endingday = \"Wednesday\"\r\n // break;\r\n // case \"4\":\r\n // endingday = \"Thursday\"\r\n // break;\r\n // case \"5\":\r\n // endingday = \"Friday\"\r\n // break;\r\n // case \"6\":\r\n // endingday = \"Saturday\"\r\n // break;\r\n // default:\r\n // endingday = \"Thursday\"\r\n // break;\r\n // }\r\n // today = getNextDayOfTheWeek(endingday);\r\n }\r\n thisParam.setState({\r\n isValidityDatePickerDisabled: true,\r\n validityDate: today,\r\n });\r\n } else if (thisParam.state.selectedValidityDateType.ID === \"0005\") {\r\n //GTM\r\n if (validityDate !== null) {\r\n today = validityDate;\r\n } else {\r\n var d = new Date(),\r\n pd = d;\r\n for (var o = 1; pd.getMonth() == d.getMonth() || d.getDate() != 1; o++) {\r\n pd = d;\r\n d = new Date($.now() + o * 24 * 3600000);\r\n }\r\n\r\n // today = d.setDate(-1);\r\n today = pd;\r\n }\r\n thisParam.setState({\r\n isValidityDatePickerDisabled: true,\r\n validityDate: today,\r\n });\r\n } else if (thisParam.state.selectedValidityDateType.ID === \"0006\") {\r\n //FOK\r\n thisParam.setState({\r\n isValidityDatePickerDisabled: true,\r\n validityDate: today,\r\n });\r\n } else if (thisParam.state.selectedValidityDateType.ID === \"0007\") {\r\n //FAK\r\n thisParam.setState({\r\n isValidityDatePickerDisabled: true,\r\n validityDate: today,\r\n });\r\n }\r\n}\r\n\r\nexport function getNextDayOfTheWeek(\r\n dayName,\r\n excludeToday = true,\r\n refDate = new Date()\r\n) {\r\n // const dayOfWeek = [\"sun\", \"mon\", \"tue\", \"wed\", \"thu\", \"fri\", \"sat\"]\r\n // .indexOf(dayName.slice(0, 3).toLowerCase());\r\n var now = new Date();\r\n const dayOfWeek = Number(dayName);\r\n if (dayOfWeek < 0) return;\r\n\r\n refDate.setDate(\r\n refDate.getDate() +\r\n +!!excludeToday +\r\n ((dayOfWeek + 7 - refDate.getDay() - +!!excludeToday) % 7)\r\n );\r\n refDate.setHours(now.getHours());\r\n refDate.setTime(now.getTime());\r\n refDate.setSeconds(now.getSeconds());\r\n refDate.setDate(\r\n refDate.getDate() +\r\n +!!excludeToday +\r\n ((dayOfWeek + 7 - refDate.getDay() - +!!excludeToday) % 7)\r\n );\r\n return refDate;\r\n}\r\n\r\n/* select symbol in orders */\r\nexport function selectSymbol(symbol, thisParam, isHeader = false, isModify = false, isOrderScreen = false) {\r\n\r\n console.log(\"order selected symbol: \", symbol);\r\n thisParam.setState(\r\n { selectedSymbolSearchSelect: symbol, isSymbolDetailsPopulated: false, isLookupsPupulatedExecution: false },\r\n () => {\r\n\r\n let result = thisParam.props.symbols.filter((obj) => {\r\n return obj.Symbol === symbol;\r\n });\r\n if (result !== undefined && result !== null && result.length > 0) {\r\n //console.log(\"obj.Symbol \", result[0]);\r\n if (isOrderScreen)\r\n populateAccounts(result[0], thisParam, isHeader, isModify);\r\n callSignalr(symbol, result[0].MarketType, thisParam);\r\n\r\n thisParam.setState({ IsValidateMinMax: result[0].IsValidateMinMax, ISTradingSession: result[0].IS_US_ONLINE })\r\n // if (localStorage.getItem(Constants.localStorageConstants.company_name) === \"GLOBAL\") {\r\n // thisParam.setState({ IsValidateMinMax: result[0].IsValidateMinMax, ISTradingSession: result[0].IS_US_ONLINE })\r\n\r\n // }\r\n }\r\n // else {\r\n // errorNotify(\r\n // thisParam.props.i18n.t(\"Something_went_wrong\"),\r\n // thisParam.props.i18n.language\r\n // );\r\n // }\r\n }\r\n );\r\n}\r\n\r\nexport function populateAccounts(SymbolData, thisParam, isHeader = false, isModify = false) {\r\n\r\n if (thisParam.props.allAccounts !== undefined && thisParam.props.allAccounts !== null && thisParam.props.allAccounts.length > 0) {\r\n //\r\n let accounts = thisParam.props.allAccounts.filter(\r\n (item) => SymbolData.Exchange === item.Exchange\r\n );\r\n if (accounts.length === 0) {\r\n // errorNotify(thisParam.props.i18n.t(\"You_dont_have_an_Account_to_trade_on_this_Symbol\"), thisParam.props.i18n.language);\r\n thisParam.setState({\r\n accounts: accounts,\r\n });\r\n if ((localStorage.getItem(Constants.localStorageConstants.company_name)).toUpperCase() === \"IFS\") {\r\n thisParam.AlertMSG();\r\n }\r\n return;\r\n }\r\n // console.log(\"accoutntsPopulated: \", accounts);\r\n // console.log(\"thisParam.props.allAccounts \", thisParam.props.allAccounts);\r\n thisParam.setState(\r\n {\r\n accounts: accounts,\r\n isAccountSelectedFromProps: true,\r\n },\r\n () => {\r\n //console.log(\"accoutntsPopulated: \", thisParam.state.accounts);\r\n if (isHeader) {\r\n thisParam.setState({\r\n accountsOptions: thisParam.state.accounts.map(\r\n ({ AccountID, ClientNameE }) => ({\r\n value: AccountID,\r\n name: ClientNameE,\r\n })\r\n ),\r\n });\r\n }\r\n let existed = false;\r\n var display_Leverage = false;\r\n var countCall = 0;\r\n thisParam.state.accounts.forEach((item) => {\r\n if (\r\n SymbolData.Exchange === item.Exchange &&\r\n SymbolData.CurrCode === item.CUR_CODE &&\r\n SymbolData.IS_DERIVATIVE === item.ALLOW_DERIV_TRADING &&\r\n (SymbolData.allow_short_sell === item.cl_allow_short_sell_market ||\r\n SymbolData.allow_short_sell === \"Y\")\r\n ) {\r\n\r\n if (item.IS_MARGIN_ACC === \"Y\") {\r\n display_Leverage = true;\r\n } else {\r\n display_Leverage = false;\r\n }\r\n\r\n if (item.IS_DEFAULT_ACC === \"Y\") {\r\n existed = true;\r\n if (!isModify)\r\n thisParam.setState({\r\n selectedAccount: item,\r\n isAccountDropdownDisabled: false,\r\n displayLeverage: display_Leverage,\r\n IsPortfolioPopulited: false\r\n }, () => {\r\n\r\n if (countCall === 0) {\r\n thisParam.callgetCustodiansByClientID();\r\n thisParam.callgetPortfolioForIPOQuickSell();\r\n countCall = + 1;\r\n }\r\n });\r\n else\r\n thisParam.setState({\r\n isAccountDropdownDisabled: false,\r\n displayLeverage: display_Leverage,\r\n });\r\n } else {\r\n if (!isModify)\r\n thisParam.setState({\r\n selectedAccount: item,\r\n isAccountDropdownDisabled: false,\r\n displayLeverage: display_Leverage,\r\n IsPortfolioPopulited: false\r\n }, () => {\r\n\r\n if (countCall === 0) {\r\n thisParam.callgetCustodiansByClientID();\r\n thisParam.callgetPortfolioForIPOQuickSell();\r\n countCall = + 1;\r\n }\r\n });\r\n else\r\n thisParam.setState({\r\n isAccountDropdownDisabled: false,\r\n displayLeverage: display_Leverage,\r\n });\r\n }\r\n }\r\n });\r\n if (existed) return;\r\n if (!existed) {\r\n thisParam.state.accounts.forEach((item, index) => {\r\n if (item.IS_MARGIN_ACC === \"Y\") {\r\n display_Leverage = true;\r\n } else {\r\n display_Leverage = false;\r\n }\r\n if (index === 0) {\r\n existed = true;\r\n if (!isModify)\r\n thisParam.setState({\r\n selectedAccount: item,\r\n isAccountDropdownDisabled: false,\r\n displayLeverage: display_Leverage,\r\n IsPortfolioPopulited: false\r\n }, () => {\r\n\r\n if (countCall === 0) {\r\n thisParam.callgetCustodiansByClientID();\r\n thisParam.callgetPortfolioForIPOQuickSell();\r\n countCall = + 1;\r\n }\r\n });\r\n else\r\n thisParam.setState({\r\n isAccountDropdownDisabled: false,\r\n displayLeverage: display_Leverage,\r\n });\r\n return;\r\n }\r\n });\r\n }\r\n }\r\n );\r\n }\r\n}\r\n\r\nexport function callSignalr(symbol, MarketType, thisParam) {\r\n //window.isBuyOrdersEntry = true;\r\n //window.BuyOrdersEntry = thisParam;\r\n //window[\"symbolDetails\"](symbol, \"001\");\r\n //console.log(\"BuyOrdersEntry symbol: \", symbol, \" MarketType: \", MarketType);\r\n if (\r\n thisParam.props.signalr_connection !== undefined &&\r\n thisParam.props.signalr_connection !== null &&\r\n thisParam.props.signalr_connection.state === 1\r\n ) {\r\n thisParam.props.signalr_connection.proxies.myhub.invoke(\r\n \"sendSymbolDetails\",\r\n symbol,\r\n MarketType\r\n );\r\n thisParam.props.signalr_connection.proxies.myhub.invoke(\r\n \"AddMarketWatchProfileSymbol\",\r\n localStorage.getItem(\"username\"),\r\n symbol\r\n );\r\n thisParam.props.setSymbolToSub(thisParam.props.screenid, symbol);\r\n } else {\r\n //console.log(\"Something went wrong.\")\r\n // thisParam.errorNotify(\"Something went wrong.\")\r\n }\r\n}\r\n\r\nexport function getUser() {\r\n if (\r\n localStorage.getItem(\"user\") === null ||\r\n localStorage.getItem(\"user\") === undefined\r\n ) {\r\n return null;\r\n }\r\n if (!isJsonString(localStorage.getItem(\"user\"))) {\r\n return null;\r\n }\r\n let user = JSON.parse(localStorage.getItem(\"user\"));\r\n return user;\r\n}\r\n\r\nexport function getExchangesWithSelected(exchanges, selectedID) {\r\n //to set DFM always as initial selection\r\n\r\n let isFound = false;\r\n for (let i = 0; i < exchanges.length; i++) {\r\n // if (exchanges[i].ExchangeID === \"DFM\") {\r\n // isFound = true;\r\n // }\r\n if (exchanges[i].ExchangeID === selectedID) {\r\n isFound = true;\r\n }\r\n }\r\n\r\n let exchangesArray = exchanges.map((obj, index) =>\r\n isFound\r\n ? obj.ExchangeID === selectedID\r\n ? Object.assign(obj, { isSelected: true })\r\n : Object.assign(obj, { isSelected: false })\r\n : index === 0\r\n ? Object.assign(obj, { isSelected: true })\r\n : Object.assign(obj, { isSelected: false })\r\n );\r\n // console.log(\"exchangesArray\", exchangesArray);\r\n // console.log(\"exchanges\", exchanges);\r\n return exchangesArray;\r\n}\r\n\r\n// Get max value of an array in Javascript\r\nexport function getMaxValue(array) {\r\n let value = Math.max.apply(null, array);\r\n return value;\r\n}\r\n\r\n/* Global function for AgGridReact */\r\nexport function autoSizeAll(skipHeader, thisParam) {\r\n var allColumnIds = [];\r\n thisParam.gridColumnApi.getAllColumns().forEach(function (column) {\r\n allColumnIds.push(column.colId);\r\n });\r\n thisParam.gridColumnApi.autoSizeColumns(allColumnIds, skipHeader);\r\n}\r\n\r\nexport function getIsIPad() {\r\n return window.innerWidth <= 1024;\r\n}\r\n\r\nexport function getIsMobile() {\r\n /*mini mobile screen*/\r\n return window.innerWidth <= 475;\r\n}\r\n\r\nexport function isNight() {\r\n var date = new Date();\r\n if (date.getHours() > 19 || date.getHours() < 6) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\nexport function isShuaa() {\r\n return true;\r\n}\r\n\r\nexport function getCompanyName() {\r\n return localStorage.getItem(Constants.localStorageConstants.company_name).toUpperCase();\r\n}\r\n\r\nexport function removeExistingItem(key) {\r\n if (localStorage.getItem(key) !== null) localStorage.removeItem(key);\r\n}\r\n\r\nexport function getAppTheme() {\r\n let appThemeClass = \"app-theme-white\";\r\n let theme = localStorage.getItem(\"theme\");\r\n if (theme !== null) {\r\n if (theme === \"dark\") {\r\n appThemeClass = \"app-theme-dark\";\r\n }\r\n }\r\n return appThemeClass;\r\n}\r\n\r\nexport function getAppThemeMode() {\r\n let themeMode = lightTheme;\r\n let theme = localStorage.getItem(\"theme\");\r\n if (theme !== null) {\r\n if (theme === \"dark\") {\r\n themeMode = darkTheme;\r\n }\r\n }\r\n return themeMode;\r\n}\r\n\r\nexport function getIsTickerVisible() {\r\n let isTickerVisible = true;\r\n let isTickerVisibleLocalStorage = localStorage.getItem(\r\n Constants.localStorageConstants.isTickerVisible\r\n );\r\n if (isTickerVisibleLocalStorage !== null) {\r\n if (isTickerVisibleLocalStorage === \"true\") {\r\n isTickerVisible = true;\r\n } else {\r\n isTickerVisible = false;\r\n }\r\n }\r\n //console.log(\"getIsTickerVisible: \", isTickerVisible);\r\n return isTickerVisible;\r\n}\r\n\r\nexport function setIsTickerVisible(isTickerVisibleParam) {\r\n //console.log(\"setIsTickerVisible: \", isTickerVisibleParam);\r\n localStorage.setItem(\r\n Constants.localStorageConstants.isTickerVisible,\r\n isTickerVisibleParam\r\n );\r\n}\r\n\r\nexport function getPreviousConfig() {\r\n var data = {\r\n app_path: localStorage.getItem(Constants.localStorageConstants.app_path),\r\n company_name: localStorage.getItem(Constants.localStorageConstants.company_name),\r\n Region: localStorage.getItem(Constants.localStorageConstants.Region),\r\n server_url: localStorage.getItem(Constants.localStorageConstants.server_url),\r\n chart_iq_url: localStorage.getItem(Constants.localStorageConstants.chart_iq_url),\r\n chart_trading_url: localStorage.getItem(Constants.localStorageConstants.chart_trading_url),\r\n signalr_url: localStorage.getItem(Constants.localStorageConstants.signalr_url),\r\n signalr_hub: localStorage.getItem(Constants.localStorageConstants.signalr_hub),\r\n last_Work_day: localStorage.getItem(Constants.localStorageConstants.last_Work_day),\r\n Foreign_Market: localStorage.getItem(Constants.localStorageConstants.Foreign_Market),\r\n PortfolioProvider: localStorage.getItem(Constants.localStorageConstants.PortfolioProvider),\r\n EnableTags: localStorage.getItem(Constants.localStorageConstants.EnableTags),\r\n EnableIPOQuickSell: localStorage.getItem(Constants.localStorageConstants.EnableIPOQuickSell),\r\n EnableSymbolFullName: localStorage.getItem(Constants.localStorageConstants.EnableSymbolFullName)\r\n };\r\n return data;\r\n}\r\nexport function SetpreviosConfig(data) {\r\n localStorage.setItem(Constants.localStorageConstants.app_path, data.app_path);\r\n localStorage.setItem(Constants.localStorageConstants.company_name, data.company_name);\r\n localStorage.setItem(Constants.localStorageConstants.Region, data.Region);\r\n localStorage.setItem(Constants.localStorageConstants.server_url, data.server_url);\r\n localStorage.setItem(Constants.localStorageConstants.chart_iq_url, data.chart_iq_url);\r\n localStorage.setItem(Constants.localStorageConstants.chart_trading_url, data.chart_trading_url);\r\n localStorage.setItem(Constants.localStorageConstants.signalr_url, data.signalr_url);\r\n localStorage.setItem(Constants.localStorageConstants.signalr_hub, data.signalr_hub);\r\n localStorage.setItem(Constants.localStorageConstants.last_Work_day, data.last_Work_day);\r\n localStorage.setItem(Constants.localStorageConstants.Foreign_Market, data.Foreign_Market);\r\n localStorage.setItem(Constants.localStorageConstants.PortfolioProvider, data.PortfolioProvider);\r\n localStorage.setItem(Constants.localStorageConstants.EnableTags, data.EnableTags);\r\n localStorage.setItem(Constants.localStorageConstants.EnableIPOQuickSell, data.EnableIPOQuickSell);\r\n localStorage.setItem(Constants.localStorageConstants.EnableSymbolFullName, data.EnableSymbolFullName);\r\n}\r\n\r\nexport function isNullOrEmpty(str) {\r\n if (str != undefined && str != null && str != \"\") {\r\n return false;\r\n } else return true;\r\n}\r\n\r\nexport async function getAsByteArray(file) {\r\n return new Uint8Array(await readFile(file));\r\n}\r\n\r\nfunction readFile(file) {\r\n return new Promise((resolve, reject) => {\r\n // Create file reader\r\n let reader = new FileReader();\r\n\r\n // Register event listeners\r\n reader.addEventListener(\"loadend\", (e) => resolve(e.target.result));\r\n reader.addEventListener(\"error\", reject);\r\n\r\n // Read file\r\n reader.readAsArrayBuffer(file);\r\n });\r\n}\r\n\r\nexport function getKeyOfObj(Obj) {\r\n var keyOfNewData = Object.keys(Obj);\r\n return keyOfNewData;\r\n}\r\n\r\nexport function ExchangesUpdateDisableTagValue(Obj) {\r\n\r\n return \"\"\r\n}\r\nexport function ExchangesUpdateEnableTagValue(state, exchangesUpdateMsg, fromRedux = false) {\r\n // exchangesUpdateMsg = [\r\n // {\r\n // \"ExchangeID\": \"XNYS\",\r\n // \"CurrentValue\": \"9183.48\",\r\n // \"Volume\": \"2\",\r\n\r\n // },\r\n // {\r\n // \"ExchangeID\": \"XNAS\",\r\n // \"CurrentValue\": \"9183.48\",\r\n // \"Volume\": \"44\",\r\n\r\n // },\r\n // {\r\n // \"ExchangeID\": \"TDWL\",\r\n // \"CurrentValue\": \"986.31\",\r\n // \"Volume\": \"5\",\r\n\r\n // },\r\n // {\r\n // \"ExchangeID\": \"BHB\",\r\n // \"CurrentValue\": \"8250.61\",\r\n // \"ExchangeNameE\": \"BHB\",\r\n // \"ExchangeNameA\": \"BHB\",\r\n // \"Volume\": \"0\",\r\n\r\n // },\r\n // {\r\n // \"ExchangeID\": \"CRYP\",\r\n // \"CurrentValue\": \"9183.48\",\r\n // \"ExchangeNameE\": \"BINANCE\",\r\n // \"ExchangeNameA\": \"BINANCE\",\r\n // \"Volume\": \"0\",\r\n\r\n // },\r\n // {\r\n // \"ExchangeID\": \"DFM\",\r\n // \"CurrentValue\": \"100\",\r\n // \"ExchangeNameE\": \"DFM DUBAI\",\r\n // \"ExchangeNameA\": \"DFM DUBAI\",\r\n // \"Volume\": \"228506827\",\r\n\r\n // },\r\n // {\r\n // \"ExchangeID\": \"ADSM\",\r\n // \"CurrentValue\": \"9971.57\",\r\n // \"ExchangeNameE\": \"ADSM\",\r\n // \"ExchangeNameA\": \"سوق أبو ظبي\",\r\n // \"Volume\": \"241239735\",\r\n\r\n // },\r\n // {\r\n // \"ExchangeID\": \"DIFX\",\r\n // \"CurrentValue\": \"3587.44\",\r\n // \"ExchangeNameE\": \"DIFX\",\r\n // \"ExchangeNameA\": \"سوق دبي العالمي \",\r\n // \"Volume\": \"92120\",\r\n\r\n // }\r\n // ]\r\n let oldOrigenalexchange = [];\r\n\r\n oldOrigenalexchange = fromRedux ? state.OrigenalExchanges : state\r\n\r\n if (\r\n oldOrigenalexchange !== null &&\r\n oldOrigenalexchange !== [] &&\r\n (exchangesUpdateMsg !== null) &\r\n (exchangesUpdateMsg !== []) &\r\n (exchangesUpdateMsg !== undefined) &&\r\n exchangesUpdateMsg.length === undefined\r\n ) {\r\n\r\n var list = []\r\n let oldExchange = oldOrigenalexchange.find((e) => e.ExchangeID === exchangesUpdateMsg.ExchangeID);\r\n\r\n if (oldExchange !== undefined && oldExchange !== null) {\r\n var keysOfNewData = Object.keys(exchangesUpdateMsg);\r\n keysOfNewData.forEach(key => {\r\n if (key !== \"ExchangeID\")\r\n oldExchange[key] = exchangesUpdateMsg[key];\r\n });\r\n list.push(oldExchange);\r\n oldOrigenalexchange.map(obj => list.find(o => o.ExchangeID === obj.ExchangeID) || obj);\r\n\r\n state = fromRedux ? {\r\n ...state,\r\n exchanges: oldOrigenalexchange,\r\n } : oldOrigenalexchange\r\n\r\n }\r\n\r\n }\r\n else if (\r\n oldOrigenalexchange !== null &&\r\n oldOrigenalexchange !== [] &&\r\n (exchangesUpdateMsg !== null) &\r\n (exchangesUpdateMsg !== []) &\r\n (exchangesUpdateMsg !== undefined) &&\r\n exchangesUpdateMsg.length > 0\r\n ) {\r\n\r\n let oldExchange = null;\r\n let list = [];\r\n\r\n exchangesUpdateMsg.forEach((str, idx) => {\r\n\r\n oldExchange = oldOrigenalexchange.find((e) => e.ExchangeID === exchangesUpdateMsg[idx].ExchangeID);\r\n if (oldExchange !== undefined && oldExchange !== null) {\r\n\r\n var keysOfNewData = Object.keys(exchangesUpdateMsg[idx]);\r\n keysOfNewData.forEach(key => {\r\n if (key !== \"ExchangeID\")\r\n oldExchange[key] = exchangesUpdateMsg[idx][key];\r\n });\r\n list.push(oldExchange);\r\n\r\n\r\n }\r\n });\r\n\r\n if (list.length != 0) {\r\n state = fromRedux ? {\r\n ...state,\r\n exchanges: list,\r\n } : list\r\n }\r\n\r\n\r\n }\r\n return state;\r\n}\r\n","export const SYMBOL_CHANGED = \"SYMBOL_CHANGED\";\r\nexport const GET_SYMBOLS = \"GET_SYMBOLS\";\r\nexport const GET_ORDERS = \"GET_ORDERS\";\r\nexport const APPEND_ORDERS = \"APPEND_ORDERS\";\r\nexport const GET_ACCOUNTS = \"GET_ACCOUNTS\";\r\nexport const SET_ACTIVE_PROFILE = \"SET_ACTIVE_PROFILE\";\r\nexport const SELECT_ORDER = \"SELECT_ORDER\";\r\nexport const SET_NOTIFICATION_COUNT = \"SET_NOTIFICATION_COUNT\";\r\nexport const DECREMENT_NOTIFICATION_COUNT = \"DECREMENT_NOTIFICATION_COUNT\";\r\nexport const INCREMENT_NOTIFICATION_COUNT = \"INCREMENT_NOTIFICATION_COUNT\";\r\nexport const GET_EXCHANGES = \"GET_EXCHANGES\";\r\nexport const GET_ExchangesOriginal = \"GET_ExchangesOriginal\";\r\nexport const SET_DARK_MODE = \"SET_DARK_MODE\";\r\nexport const GET_SIGNALR = \"GET_SIGNALR\";\r\nexport const SET_SYMBOL_DETAILS = \"SET_SYMBOL_DETAILS\";\r\nexport const SET_PROFILES = \"SET_PROFILES\";\r\nexport const SET_PROFILE_ID_SELECTED = \"SET_PROFILE_ID_SELECTED\";\r\nexport const SET_SUBSCRIBED_SYMBOLS = \"SET_SUBSCRIBED_SYMBOLS\";\r\nexport const SET_IS_SUBSCRIBED_SYMBOLS_CHANGED = \"SET_IS_SUBSCRIBED_SYMBOLS_CHANGED\";\r\nexport const SET_IS_LOADER_VISIBLE = \"SET_IS_LOADER_VISIBLE\";\r\nexport const SET_IS_NEW_WORKSPACE_LAYOUT = \"SET_IS_NEW_WORKSPACE_LAYOUT\";\r\nexport const SET_IS_ALERT_DELETED = \"SET_IS_ALERT_DELETED\";\r\nexport const SET_IS_CONDITIONAL_ORDER_DELETED = \"SET_IS_CONDITIONAL_ORDER_DELETED\";\r\nexport const SET_CONFIG = \"SET_CONFIG\";\r\nexport const SET_IS_SIDEBAR_OPEN = \"SET_IS_SIDEBAR_OPEN\";\r\nexport const SET_IS_TICKER_VISIBLE = \"SET_IS_TICKER_VISIBLE\";\r\nexport const LINKING_TAP = \"LINKING_TAP\";\r\nexport const LINKING_ALL_TAPS_OPEN = \"LINKING_ALL_TAPS_OPEN\";\r\nexport const CLOSE_BTN = \"CLOSE_BTN\";\r\nexport const SET_PERM_DATA = \"SET_PERM_DATA\";\r\nexport const SET_IS_SIDEBAR_MENU_OPEN = \"SET_IS_SIDEBAR_MENU_OPEN\";\r\nexport const SET_IS_NEW_WORKSPACE_CHART_LAYOUT = \"SET_IS_NEW_WORKSPACE_CHART_LAYOUT\";\r\nexport const WORKSPACE_CHART_PROFILES = \"WORKSPACE_CHART_PROFILES\";\r\nexport const SET_IS_NEW_WORKSPACE_CHART_ADVANCE_FOCOUS = \"SET_IS_NEW_WORKSPACE_CHART_ADVANCE_FOCOUS\";\r\nexport const SET_ADVANCE_SEARCH_SYMBOL = \"SET_ADVANCE_SEARCH_SYMBOL\";\r\nexport const GET_EXCHANGES_UPDATE = \"GET_EXCHANGES_UPDATE\";\r\nexport const UPDATE_SELECTED_PROFILE = \"UPDATE_SELECTED_PROFILE\";\r\nexport const UPDATE_PROFILE_LIST = \"UPDATE_PROFILE_LIST\";\r\nexport const IS_PROFILES_UPDATED = \"IS_PROFILES_UPDATED\";\r\nexport const IS_ADD_DELETE_PROFILE = \"IS_ADD_DELETE_PROFILE\";\r\nexport const GET_INDEXES = \"GET_INDEXES\";\r\nexport const UPDATE_ENABLE_EXPAND_ROW = \"UPDATE_ENABLE_EXPAND_ROW\";\r\nexport const UPDATE_RFREASH_TIME_SETTINGS = \"UPDATE_RFREASH_TIME_SETTINGS\";\r\nexport const UPDATE_NUM_OF_TRADING = \"UPDATE_NUM_OF_TRADING\";\r\nexport const SYMBOL_TRADES_DATAFEED = \"SYMBOL_TRADES_DATAFEED\";\r\nexport const MARKET_WATCH_UPDATE = \"MARKET_WATCH_UPDATE\";\r\nexport const MARKET_DEPTH_UPDATE = \"MARKET_DEPTH_UPDATE\";\r\nexport const SET_SUBSCRIBED_SYMBOLS_TICKER = \"SET_SUBSCRIBED_SYMBOLS_TICKER\";\r\nexport const SET_SYMBOLS_TO_SUBSCRIBED = \"SET_SYMBOLS_TO_SUBSCRIBED\";\r\nexport const ORDER_IS_UPDATED = \"ORDER_IS_UPDATED\";\r\nexport const ORDER_LIST_DATAFEED = \"ORDER_LIST_DATAFEED\";\r\nexport const SET_DEFAULT_WORKSPACE = \"SET_DEFAULT_WORKSPACE\";\r\nexport const SET_WORKSPACE_LAYOUTS_NUMBER = \"SET_WORKSPACE_LAYOUTS_NUMBER\";\r\nexport const SET_ACTIVE_PROFILE_FOR_DEFAULT_WORKSPACE = \"SET_ACTIVE_PROFILE_FOR_DEFAULT_WORKSPACE\";\r\nexport const SET_ORDER_SELECTED_FALSE = \"SET_ORDER_SELECTED_FALSE\";\r\nexport const SYMBOL_TIME_SALE_SUB = \"SYMBOL_TIME_SALE_SUB\";\r\nexport const SYMBOL_MARKET_DEPTH_SUB = \"SYMBOL_TIME_SALE_SUB\";\r\nexport const UPDATE_SYMBOL_TIME_SALE_SUB = \"UPDATE_SYMBOL_TIME_SALE_SUB\";\r\nexport const SET_MAEKET_FOR_MARKET_OVER_VIEW_PROFILE = \"SET_MAEKET_FOR_MARKET_OVER_VIEW_PROFILE\";\r\nexport const MARKET_TRADES = \"MARKET_TRADES\";\r\nexport const SELECTED_ACCOUNT_FROM_PORTFOLIO_WORKSPACE = \"SELECTED_ACCOUNT_FROM_PORTFOLIO_WORKSPACE\";\r\nexport const GET_INDEXES_UPDATE = \"GET_INDEXES_UPDATE\";\r\nexport const SET_SELECT_SYMBOL_FROM_PORTFOLIO = \"SET_SELECT_SYMBOL_FROM_PORTFOLIO\";\r\nexport const SELECT_PREFERRED_SYMBOL = \"SELECT_PREFERRED_SYMBOL\";\r\nexport const SET_PORTFOLIO_Data = \"SET_PORTFOLIO_Data\";\r\nexport const SYBMOL_QTY_TO_SELL = \"SYBMOL_QTY_TO_SELL\";\r\nexport const selected_Row_From_MW = \"selected_Row_From_MW\";\r\nexport const IS_Row_In_MW_Clicked = \"IS_Row_In_MW_Clicked\";\r\nexport const PORTFOLIO_FIRST_REQUEST = \"PORTFOLIO_FIRST_REQUEST\";\r\nexport const CHECK_CONNECTION = \"CHECK_CONNECTION\";\r\nexport const SELECT_PREFERRED_EXCHANGE = \"SELECT_PREFERRED_EXCHANGE\";\r\nexport const USER_SETTINGS = \"USER_SETTINGS\";\r\nexport const USER_WORKSPACES_SETTINGS = \"USER_WORKSPACE_SETTINGS\";\r\nexport const AVG_INDEXES = \"AVG_INDEXES\";\r\nexport const ENABLE_TRADE_TICKER = \"ENABLE_TRADE_TICKER\";\r\nexport const ENABLE_ROUND_TICKER = \"ENABLE_ROUND_TICKER\";\r\nexport const Is_Mobile_Size = \"Is_Mobile_Size\";\r\nexport const GET_LOOKUPS = \"GET_LOOKUPS\";\r\nexport const GET_SectorOfMarket = \"GET_SectorOfMarket\";\r\nexport const Active_Workspace_UniqueID = \"Active_Workspace_UniqueID\";\r\nexport const get_ID_Validity_Result = \"get_ID_Validity_Result\";\r\nexport const Get_Default_AccountInfo = \"Get_Default_AccountInfo\";\r\nexport const get_BasketOrder = \"get_BasketOrder\";\r\nexport const get_updateFromBasketOrder = \"get_updateFromBasketOrder\";\r\nexport const get_basketOrderObject = \"get_basketOrderObject\";\r\nexport const get_GroupName = \"get_GroupName\";\r\nexport const GET_EXCHANGES_UPDATE_EnableTags = \"GET_EXCHANGES_UPDATE_EnableTags\";\r\n","// theme.js\r\nexport const lightTheme = {\r\n //body: '#E2E2E2',\r\n body: '#F0F0F7',\r\n text: '#363537',\r\n //text: '#000000',\r\n toggleBorder: '#FFF',\r\n gradient: 'linear-gradient(#39598A, #79D7ED)',\r\n secondaryBackgrounColor: \"#FFF\",\r\n buttonColor: \"#495057\",\r\n newBackgroundColor: \"#f5f6f8\"\r\n}\r\n\r\nexport const darkTheme = {\r\n body: '#000',\r\n text: '#FAFAFA',\r\n toggleBorder: '#6B8096',\r\n gradient: 'linear-gradient(#091236, #1E215D)',\r\n secondaryBackgrounColor: \"#000\",\r\n buttonColor: \"#FFF\",\r\n newBackgroundColor: \"#000\"\r\n}"],"sourceRoot":""}