{"version":3,"sources":["UI/icons/questionGraph.png","mobile/assets/avatars/defaultAvatar1.svg","mobile/assets/avatars/defaultAvatar2.svg","mobile/assets/avatars/defaultAvatar3.svg","mobile/assets/avatars/defaultAvatar4.svg","mobile/assets/avatars/defaultAvatar5.svg","mobile/assets/avatars/defaultAvatar6.svg","mobile/assets/avatars/defaultAvatar7.svg","mobile/assets/avatars/defaultAvatar8.svg","mobile/assets/avatars/defaultAvatar9.svg","mobile/assets/avatars/defaultAvatar10.svg","mobile/assets/avatars/defaultAvatar12.svg","mobile/assets/avatars/defaultAvatar14.svg","mobile/assets/avatars/defaultAvatar16.svg","mobile/assets/avatars/defaultAvatar19.svg","mobile/assets/avatars/defaultAvatar20.svg","mobile/assets/avatars/defaultAvatar21.svg","mobile/assets/avatars/defaultAvatar22.svg","mobile/assets/avatars/defaultAvatar23.svg","mobile/assets/avatars/defaultAvatar24.svg","mobile/assets/avatars/defaultAvatar25.svg","mobile/assets/avatars/defaultAvatar26.svg","mobile/assets/avatars/defaultAvatar27.svg","mobile/assets/avatars/defaultAvatar28.svg","mobile/assets/avatars/defaultAvatar29.svg","UI/Flag sync /.png$","UI/Flag/ad.png","UI/Flag/ae.png","UI/Flag/af.png","UI/Flag/ag.png","UI/Flag/ai.png","UI/Flag/al.png","UI/Flag/am.png","UI/Flag/an.png","UI/Flag/ao.png","UI/Flag/ar.png","UI/Flag/as.png","UI/Flag/at.png","UI/Flag/au.png","UI/Flag/aw.png","UI/Flag/ax.png","UI/Flag/az.png","UI/Flag/ba.png","UI/Flag/bb.png","UI/Flag/bd.png","UI/Flag/be.png","UI/Flag/bf.png","UI/Flag/bg.png","UI/Flag/bh.png","UI/Flag/bi.png","UI/Flag/bj.png","UI/Flag/bm.png","UI/Flag/bn.png","UI/Flag/bo.png","UI/Flag/br.png","UI/Flag/bs.png","UI/Flag/bt.png","UI/Flag/bv.png","UI/Flag/bw.png","UI/Flag/by.png","UI/Flag/bz.png","UI/Flag/ca.png","UI/Flag/catalonia.png","UI/Flag/cc.png","UI/Flag/cd.png","UI/Flag/cf.png","UI/Flag/cg.png","UI/Flag/ch.png","UI/Flag/ci.png","UI/Flag/ck.png","UI/Flag/cl.png","UI/Flag/cm.png","UI/Flag/cn.png","UI/Flag/co.png","UI/Flag/cr.png","UI/Flag/cs.png","UI/Flag/cu.png","UI/Flag/cv.png","UI/Flag/cx.png","UI/Flag/cy.png","UI/Flag/cz.png","UI/Flag/de.png","UI/Flag/dj.png","UI/Flag/dk.png","UI/Flag/dm.png","UI/Flag/do.png","UI/Flag/dz.png","UI/Flag/ec.png","UI/Flag/ee.png","UI/Flag/eg.png","UI/Flag/eh.png","UI/Flag/en-us.png","UI/Flag/en.png","UI/Flag/england.png","UI/Flag/er.png","UI/Flag/es.png","UI/Flag/et.png","UI/Flag/eu.png","UI/Flag/europeanunion.png","UI/Flag/fam.png","UI/Flag/fi.png","UI/Flag/fj.png","UI/Flag/fk.png","UI/Flag/fm.png","UI/Flag/fo.png","UI/Flag/fr.png","UI/Flag/ga.png","UI/Flag/gb.png","UI/Flag/gd.png","UI/Flag/ge.png","UI/Flag/gf.png","UI/Flag/gh.png","UI/Flag/gi.png","UI/Flag/gl.png","UI/Flag/gm.png","UI/Flag/gn.png","UI/Flag/gp.png","UI/Flag/gq.png","UI/Flag/gr.png","UI/Flag/gs.png","UI/Flag/gt.png","UI/Flag/gu.png","UI/Flag/gw.png","UI/Flag/gy.png","UI/Flag/he.png","UI/Flag/hi.png","UI/Flag/hk.png","UI/Flag/hm.png","UI/Flag/hn.png","UI/Flag/hr.png","UI/Flag/ht.png","UI/Flag/hu.png","UI/Flag/id.png","UI/Flag/ie.png","UI/Flag/il.png","UI/Flag/in.png","UI/Flag/io.png","UI/Flag/iq.png","UI/Flag/ir.png","UI/Flag/is.png","UI/Flag/it.png","UI/Flag/ja.png","UI/Flag/jm.png","UI/Flag/jo.png","UI/Flag/jp.png","UI/Flag/ke.png","UI/Flag/kg.png","UI/Flag/kh.png","UI/Flag/ki.png","UI/Flag/km.png","UI/Flag/kn.png","UI/Flag/kp.png","UI/Flag/kr.png","UI/Flag/kw.png","UI/Flag/ky.png","UI/Flag/kz.png","UI/Flag/la.png","UI/Flag/lb.png","UI/Flag/lc.png","UI/Flag/li.png","UI/Flag/lk.png","UI/Flag/lr.png","UI/Flag/ls.png","UI/Flag/lt.png","UI/Flag/lu.png","UI/Flag/lv.png","UI/Flag/ly.png","UI/Flag/ma.png","UI/Flag/mc.png","UI/Flag/md.png","UI/Flag/me.png","UI/Flag/mg.png","UI/Flag/mh.png","UI/Flag/mk.png","UI/Flag/ml.png","UI/Flag/mm.png","UI/Flag/mn.png","UI/Flag/mo.png","UI/Flag/mp.png","UI/Flag/mq.png","UI/Flag/mr.png","UI/Flag/ms.png","UI/Flag/mt.png","UI/Flag/mu.png","UI/Flag/mv.png","UI/Flag/mw.png","UI/Flag/mx.png","UI/Flag/my.png","UI/Flag/mz.png","UI/Flag/na.png","UI/Flag/nc.png","UI/Flag/ne.png","UI/Flag/nf.png","UI/Flag/ng.png","UI/Flag/ni.png","UI/Flag/nl.png","UI/Flag/no.png","UI/Flag/np.png","UI/Flag/nr.png","UI/Flag/nu.png","UI/Flag/nz.png","UI/Flag/om.png","UI/Flag/pa.png","UI/Flag/pe.png","UI/Flag/pf.png","UI/Flag/pg.png","UI/Flag/ph.png","UI/Flag/pk.png","UI/Flag/pl.png","UI/Flag/pm.png","UI/Flag/pn.png","UI/Flag/pr.png","UI/Flag/ps.png","UI/Flag/pt.png","UI/Flag/pw.png","UI/Flag/py.png","UI/Flag/qa.png","UI/Flag/re.png","UI/Flag/rl.png","UI/Flag/ro.png","UI/Flag/rs.png","UI/Flag/ru.png","UI/Flag/rw.png","UI/Flag/sa.png","UI/Flag/sb.png","UI/Flag/sc.png","UI/Flag/scotland.png","UI/Flag/sd.png","UI/Flag/se.png","UI/Flag/sg.png","UI/Flag/sh.png","UI/Flag/si.png","UI/Flag/sj.png","UI/Flag/sk.png","UI/Flag/sl.png","UI/Flag/sm.png","UI/Flag/sn.png","UI/Flag/so.png","UI/Flag/sr.png","UI/Flag/st.png","UI/Flag/sv.png","UI/Flag/sy.png","UI/Flag/sz.png","UI/Flag/ta.png","UI/Flag/tc.png","UI/Flag/td.png","UI/Flag/tf.png","UI/Flag/tg.png","UI/Flag/th.png","UI/Flag/tj.png","UI/Flag/tk.png","UI/Flag/tl.png","UI/Flag/tm.png","UI/Flag/tn.png","UI/Flag/to.png","UI/Flag/tr.png","UI/Flag/tt.png","UI/Flag/tv.png","UI/Flag/tw.png","UI/Flag/tz.png","UI/Flag/ua.png","UI/Flag/ug.png","UI/Flag/um.png","UI/Flag/ur.png","UI/Flag/us.png","UI/Flag/uy.png","UI/Flag/uz.png","UI/Flag/va.png","UI/Flag/vc.png","UI/Flag/ve.png","UI/Flag/vg.png","UI/Flag/vi.png","UI/Flag/vn.png","UI/Flag/vu.png","UI/Flag/wales.png","UI/Flag/wf.png","UI/Flag/ws.png","UI/Flag/ye.png","UI/Flag/yt.png","UI/Flag/za.png","UI/Flag/zh.png","UI/Flag/zm.png","UI/Flag/zw.png","UI/Flag/zz.png","background/storeContainer.js","background/storeListener/translationsInit.js","background/StoreUtils/addOrUpdateState.js","background/StoreUtils/overrideState.js","background/reducers/brandReducer.js","background/reducers/urlParametersReducer.js","background/reducers/environmentsReducer.js","background/reducers/accountInfoReducer.js","background/StoreUtils/getPathObject.js","background/repositories/PubsubRepository.js","background/repositories/TicksRepository.js","background/repositories/ProfitsRepository.js","background/repositories/PubsubSubscription.js","background/commands/CommandFactory.js","background/commands/authServerCommand.js","background/reducers/generalStatusReducer.js","background/messageUnpacker.js","background/reducers/symbolsReducer.js","background/reducers/openPositionsReducer.js","background/reducers/pendingPositionReducer.js","background/reducers/closedPositionsReducer.js","background/reducers/financialReducer.js","background/socialv1/limitedSizeList.js","background/socialv1/tradesStreams.js","background/socialv1/socialv1Reducer.js","background/reducers/mainReducer.js","background/commands/asyncServerCommand.js","background/commands/serverCommand.js","background/chart/ChartService.js","background/WebSocket/websocketListener.js","background/WebSocket/WebsocketConnection.js","background/commands/mobileUrlService.js","background/chart/chartCommand.js","background/commands/storeCommand.js","background/storeListener/brandListener.js","background/calculations/profitCalculationService.js","background/storeListener/profitCalculationListener.js","background/storeListener/renewSessionService.js","background/socialv1/socialListener.js","background/storeListener/fullStoryListener.js","background/storeListener/googleAnalyticsListener.js","background/storeListener/luckyOrangeListener.js","background/storeListener/themeListener.js","UI/primitives/PasswordField.js","UI/primitives/CheckBoxField.js","UI/primitives/LoadSpinner.js","UI/LanguageSelector/LanguageSelector.js","UI/icons/userIcon.svg","UI/LoginPage/QuickLoginItem.js","UI/LoginPage/QuickPasswordLoginItem.js","UI/LoginPage/QuickLogin.js","UI/LoginPage/LoginPage.js","UI/primitives/Button.js","UI/icons/SearchIcon.js","UI/primitives/CheckBox.js","UI/primitives/OuterClick.js","UI/LeftPanelActionsBlock/ColumnsSelectExpanded.js","UI/LeftPanelActionsBlock/LeftPanelActionsBlock.js","UI/utilsUI/formatWSTick.js","UI/utilsUI/formatTime.js","UI/primitives/Portal.js","UI/primitives/ToolTip.js","UI/TickItem/TickItemToolTipContent.js","UI/TickItem/TickItemBidAsk.js","UI/TickItem/TickItem.js","UI/TickItem/TickItemWrapper.js","UI/TicksList/TicksList.js","UI/ResizableLayout/LeftBlock.js","UI/primitives/ReactResizePanel/ReactResizePanel.js","UI/ResizePanelWrapper/ResizePanelWrapper.js","background/chart/chartController.js","UI/primitives/ModalWrapper.js","UI/Flag/index.js","UI/Flag/CountryFlagByCode.js","UI/primitives/TooltipWrapper.js","UI/primitives/LinearProgressBarWithLabel.js","UI/utilsUI/formatTimeAgo.js","UI/utilsUI/formatNumber.js","UI/SocialStream/SocialStreamItem.js","UI/primitives/chart.js","UI/primitives/Graph.js","UI/utilsUI/useWindowSize.js","UI/primitives/Switch.js","UI/utilsUI/roundToPrecision.js","UI/utilsUI/formatDaysFromNow.js","UI/ProfilePage/ProfileTabDetails.js","UI/ProfilePage/ProfilePageRadioGroup.js","UI/ProfilePage/ProfilePageOpenPositions.js","UI/ProfilePage/PortfolioTab.js","UI/ProfilePage/ProfileTab.js","UI/ProfilePage/CommunityTab.js","UI/ProfilePage/PositionsTab.js","UI/utilsUI/countDecimals.js","UI/primitives/InputStepper.js","UI/utilsUI/depositButtonClickHandler.js","UI/OpenPositions/updateNumericHelper.js","UI/ProfilePage/CurrencySelectExpanded.js","UI/ProfilePage/InvalidAmountCopy.js","UI/ProfilePage/CopyDisclaimer.js","UI/ProfilePage/CopyBlockDisclaimer.js","UI/ProfilePage/CopyTab.js","UI/ProfilePage/Suggestions.js","UI/ProfilePage/WatchPopup.js","UI/ProfilePage/UncopyPopup.js","shared/Constants/RiskLevelConstants.js","UI/ProfilePage/RiskLevelDisplay.js","UI/ProfilePage/ProfilePage.js","UI/ProfilePage/ProfilePageWrapper.js","UI/disclaimers/MarginAlert.js","UI/utilsUI/debounce.js","UI/Questionnaire/QuestionStepOne.js","UI/Questionnaire/QuestionStepTwo.js","UI/Questionnaire/QuestionStepThree.js","UI/Questionnaire/Questionnaire.js","treeUI/RepositoryValueView.js","treeUI/StoreTreeItem.js","treeUI/CommandDialog.js","treeUI/socialStreamDialog.js","treeUI/MainTreeView.js","shared/Charts/indicators.js","UI/IndicatorsPopup/IndicatorsList.js","UI/IndicatorsPopup/IndicatorsPopup.js","background/refreshStateWorkaround.js","UI/utilsUI/calcMarginRequirement.js","UI/icons/LoadingIcon.js","UI/TradePopup/FormattedSLTPProfit.js","UI/utilsUI/scrollToElement.js","UI/TradePopup/PendingDropDown.js","UI/TradePopup/TradePopupStepTwo.js","UI/TradePopup/TradePopupWSTick.js","UI/TradePopup/UnitsDropDown.js","UI/TradePopup/TradePopupAnalyticsEvents.js","UI/TradePopup/TradePopup.js","UI/primitives/Modal.js","shared/Charts/ChartPanel.js","UI/icons/Candels.js","UI/icons/GraphIcon.js","UI/icons/LineIcon.js","UI/icons/AreaIcon.js","UI/icons/IndicatorsIcon.js","UI/icons/ClearIcon.js","shared/Charts/ChartDealElement.js","UI/OpenPositionsOnChart.js","UI/ResizableLayout/CenterPanel.js","UI/primitives/Tabs/Tab.js","UI/primitives/Tabs/Tabs.js","UI/utilsUI/FormatProfitSwapCommision.js","UI/OpenPositions/OrderUpdate.js","UI/OpenPositions/OpenPositionsVirtualCloseRate.js","UI/OpenPositions/OpenPositionsVirtualProfit.js","UI/OpenPositions/OpenPositionsVirtualList.js","UI/OpenPositions/OpenPositions.js","UI/PendingOrders/PendingOrdersVirtualList.js","UI/PendingOrders/PendingOrders.js","UI/PNL/PNL.js","UI/ClosedPositions/PositionsVirtualList.js","UI/ClosedPositions/ClosedPositions.js","UI/OpenPositions/ClosePosition.js","UI/OpenPositions/OpenPositionsCounter.js","UI/OpenPositions/UnlinkPopup.js","UI/PendingOrders/PendingOrdersCounter.js","UI/OpenPositions/ClosedPositionSuccess.js","UI/PNL/ExpandedPNL.js","UI/ClosedPositions/ClosedPositionsCounter.js","UI/ResizableLayout/BottomPanel.js","UI/ResizableLayout/Logo.js","UI/icons/DepositIcon.js","UI/icons/PlusRounded.js","UI/TopPanelActions/DepositButton.js","UI/icons/CalendarIcon.js","UI/icons/EducationIcon.js","UI/TopPanelActions/ExpandedSettings.js","UI/TopPanelActions/CalendarFrame.js","UI/TopPanelActions/EducationFrame.js","UI/TopPanelActions/TopPanelActions.js","UI/ResizableLayout/TopPanel.js","shared/Charts/TradingRoom.js","UI/icons/StarIcon.js","UI/SocialsPanel/TopRankedTopItem.js","UI/ExplorePage/ExplorePageItem.js","UI/ExplorePage/ExplorePageUsersList.js","UI/ExplorePage/ExplorePageMostCopied.js","UI/ExplorePage/ExplorePageMostProfitable.js","UI/ExplorePage/ExplorePageTopRanked.js","UI/ExplorePage/ExplorerPageAdvancedSearch.js","UI/ExplorePage/ExplorePage.js","UI/primitives/AutoCompliteExpanded.js","UI/primitives/AutoComplite.js","UI/InfoPages/Terms.js","UI/JoinPage/JoinPage.js","UI/SocialsPanel/TopRankedItem.js","UI/SocialsPanel/UsersList.js","UI/SocialsPanel/TopRankedList.js","UI/SocialsPanel/SpotLight.js","UI/SocialStream/SocialStream.js","UI/SocialsPanel/SocialsPanel.js","UI/icons/SignalsIcon.js","UI/icons/SocialsIcon.js","UI/ResizableLayout/RightPanel.js","UI/ResizableLayout/MainLayout.js","mobile/context/contextCreate/ThemeContextMobile.js","mobile/context/contextCreate/ControlsContextMobile.js","mobile/context/contextCreate/SymbolContextMobile.js","mobile/context/contextCreate/ProfileContextMobile.js","mobile/context/contextCreate/PositionContextMobile.js","mobile/context/contextHook/useProviderTheme.js","mobile/context/contextHook/useProviderControls.js","mobile/context/contextHook/useProviderSymbol.js","mobile/context/contextHook/useProviderProfile.js","mobile/context/contextHook/useProviderPosition.js","mobile/context/Context.js","mobile/constants/options.js","mobile/helpers/options.helpers.js","mobile/helpers/loader.helpers.js","mobile/hook/useScreenOrientation.js","mobile/context/contextHook/useControls.js","mobile/components/Buttons/MobileBurgerButton.js","mobile/components/Buttons/MobileHeaderButton.js","mobile/modules/MobileMargin/MobileMargin.js","mobile/context/contextHook/useTheme.js","mobile/modules/MobileLogo/MobileLogo.js","mobile/modules/MobileHeader/MobileHeader.js","mobile/modules/MobileSection/MobileSection.js","mobile/hook/useClickOutside.js","mobile/helpers/swipe.helpers.js","mobile/helpers/carousel.helpers.js","mobile/hook/useSwiper.js","mobile/hook/useWindowSize.js","mobile/context/contextHook/useProfile.js","mobile/context/contextHook/usePosition.js","mobile/components/MobileSwiper.js","mobile/assets/icons/edit.svg","mobile/modules/MobileBurgerMenu/MobileBurgerMenuHeader.js","mobile/assets/icons/language.svg","mobile/assets/icons/about.svg","mobile/assets/icons/tutorial.svg","mobile/assets/icons/feedback.svg","mobile/assets/icons/logout.svg","mobile/modules/MobileBurgerMenu/MobileBurgerMenuSection.js","mobile/components/MobileTransition.js","mobile/helpers/button.helpers.js","mobile/components/Buttons/MobileButtonClose.js","mobile/components/MobileModal/MobileSectionModal.js","mobile/components/MobileLoader/MobileLoader.js","mobile/components/Buttons/MobileButton.js","mobile/components/MobileLanguageSelector/MobileLanguageSelector.js","mobile/modules/MobileBurgerMenu/MobileBurgerMenu.js","mobile/components/MobilePopUp/MobilePopUp.js","mobile/components/MobilePopUp/MobilePopUpHeader.js","mobile/components/MobileAvatarIcon.js","mobile/modules/MobileProfile/MobileProfileHeader.js","mobile/hook/useFetchData/useProfileUserData.js","mobile/components/MobileSocial/MobileSocialExplore/MobileSocialExploreStatisticBlock.js","mobile/modules/MobileProfile/MobileProfileStatistics.js","mobile/helpers/chart.helpers.js","mobile/components/MobileChart/MobileAreaChart/MobileAreaChartTooltip.js","mobile/components/MobileChart/MobileAreaChart/MobileAreaChart.js","mobile/components/MobileSocial/MobileSocialExplore/MobileSocialExploreChart.js","mobile/components/MobileRiskLevel/MobileRiskLevelNew.js","mobile/constants/risk.options.js","mobile/components/MobileRiskLevel/MobileRiskLevelOld.js","mobile/helpers/risk.helpers.js","mobile/components/MobileRiskLevel/MobileRiskLevelContainer.js","mobile/components/MobileCarousel/MobileCarouselMenu.js","mobile/components/MobileCarousel/CarouselTabList.js","shared/FlagsData/AUD.svg","shared/FlagsData/CAD.svg","shared/FlagsData/CHF.svg","shared/FlagsData/EUR.svg","shared/FlagsData/GBP.svg","shared/FlagsData/JPY.svg","shared/FlagsData/NZD.svg","shared/FlagsData/USD.svg","shared/FlagsData/BTC.svg","shared/FlagsData/BCH.svg","shared/FlagsData/CNH.svg","shared/FlagsData/CZK.svg","shared/FlagsData/DKK.svg","shared/FlagsData/EOS.svg","shared/FlagsData/ETC.svg","shared/FlagsData/ETH.svg","shared/FlagsData/HKD.svg","shared/FlagsData/HUF.svg","shared/FlagsData/ILS.svg","shared/FlagsData/LTC.svg","shared/FlagsData/MXN.svg","shared/FlagsData/NOK.svg","shared/FlagsData/PLN.svg","shared/FlagsData/RON.svg","shared/FlagsData/RUB.svg","shared/FlagsData/SEK.svg","shared/FlagsData/SGD.svg","shared/FlagsData/TRY.svg","shared/FlagsData/XLM.svg","shared/FlagsData/XMR.svg","shared/FlagsData/XRP.svg","shared/FlagsData/ZAR.svg","shared/FlagsData/DASH.svg","shared/FlagsData/Default.svg","shared/FlagsData/symbolIconService.js","mobile/components/MobileSymbolIcon/MobileSymbolIcon.js","mobile/components/MobileProfile/MobileProfileStream/MobileProfileStreamItem.js","mobile/components/MobileEmpty/MobileNothingFound.js","mobile/components/MobileProfile/MobileProfileStream/MobileProfileStream.js","mobile/components/MobileSwitch/MobileChartSwitch.js","mobile/hook/useForceUpdate.js","mobile/components/MobileAutosizer/MobileAutosizer.js","mobile/helpers/position.helpers.js","mobile/components/MobileProfile/MobileProfilePositions/MobileProfilePositionItem/MobileProfilePositionItemOpen.js","mobile/components/MobileProfile/MobileProfilePositions/MobileProfilePositionItem/MobileProfilePositionItemHead.js","mobile/helpers/sort.helpers.js","mobile/components/MobileProfile/MobileProfilePositions/MobileProfilePositionOpen.js","mobile/components/MobileProfile/MobileProfilePositions/MobileProfilePositions.js","mobile/components/MobileChart/MobilePieChart/MobilePieChartLabel.js","mobile/components/MobileChart/MobilePieChart/MobilePieChartLabelActive.js","mobile/components/MobileChart/MobilePieChart/MobilePieChart.js","mobile/hook/useFetchData/usePortfolioData.js","mobile/components/MobileProfile/MobileProfilePortfolio/MobileProfilePortfolio.js","mobile/hook/useFetchData/useCommunityFetch.js","mobile/components/MobileProfile/MobileProfileCommunity/MobileProfileCommunityItem.js","mobile/components/MobileProfile/MobileProfileCommunity/MobileProfileCommunityList.js","mobile/components/MobileProfile/MobileProfileCommunity/MobileProfileCommunityWrapper.js","mobile/components/MobileProfile/MobileProfileCommunity/MobileProfileCommunity.js","mobile/modules/MobileProfile/MobileProfileButtonBlock.js","mobile/modules/MobileProfile/MobileProfileMain.js","mobile/components/MobileProfile/MobileProfileCopy/MobileProfileCopySuccess.js","mobile/components/MobileTab/MobileTab.js","mobile/components/Buttons/MobileButtonLink.js","mobile/components/MobileAction/MobileCurrencySelect.js","mobile/components/MobileProfile/MobileProfileCopy/MobileProfileCopyCurrency.js","mobile/components/MobileInputStepper/MobileInputStepper.js","mobile/components/MobileProfile/MobileProfileCopy/MobileProfileCopyMain.js","mobile/components/MobileProfile/MobileProfileCopy/MobileProfileCopyUncopy.js","mobile/components/MobileProfile/MobileProfileCopy/MobileCopyBlockDisclaimer.js","mobile/components/MobileProfile/MobileProfileCopy/MobileProfileCopy.js","mobile/hook/useFetchData/useDetailedProfileUserData.js","mobile/components/MobileModal/MobileWatchModal.js","mobile/modules/MobileProfile/MobileProfile.js","mobile/assets/icons/business.svg","mobile/modules/MobileFooter/MobileFooterHeaderData.js","mobile/modules/MobileFooter/MobileFooterHeader.js","mobile/modules/MobilePosition/MobilePositionCount/MobilePositionCount.js","mobile/modules/MobilePosition/MobileOpenPosition/MobileOpenPositionHead.js","mobile/assets/icons/icon-unlink.svg","mobile/assets/icons/icon-copy.svg","mobile/assets/icons/icon-users.svg","mobile/components/Buttons/MobileButtonIcon.js","mobile/modules/MobilePosition/MobileClosedPosition/MobileClosedPositionActiveRow.js","mobile/modules/MobilePosition/MobileClosedPosition/MobileClosedPositionActiveBlock.js","mobile/modules/MobilePosition/MobileClosedPosition/MobileClosedPositionActive.js","mobile/modules/MobilePosition/MobileSlidePosition.js","mobile/modules/MobilePosition/MobileOpenPosition/MobileOpenPositionItem.js","mobile/modules/MobilePosition/MobileOpenPosition/MobileOpenPosition.js","mobile/components/MobileModal/MobileModal.js","mobile/modules/MobilePosition/MobilePendingOrders.js","mobile/components/MobileModal/MobileModalError.js","mobile/modules/MobilePosition/MobileClosedPosition/MobileClosedPosition.js","mobile/components/MobileSocial/MobileSocialWatch/MobileSocialWatchItem.js","mobile/components/MobileSocial/MobileSocialWatch/MobileSocialWatch.js","mobile/pages/MobileSocialWatchPage.js","mobile/components/Buttons/MobileButtonRow.js","mobile/components/MobileSocial/MobileSocialCopy/MobileSocialCopyItem.js","mobile/components/MobileSocial/MobileSocialCopy/MobileSocialCopy.js","mobile/pages/MobileSocialCopyPage.js","mobile/modules/MobileFooter/MobileFooterSection.js","mobile/modules/MobileFooter/MobileFooterOld.js","mobile/modules/MobileMargin/MobileMarginAlert.js","mobile/components/Buttons/MobileTradeAddButton.js","mobile/components/MobileCarousel/MobileCarouselAvatar.js","mobile/components/MobileChangeAvatar.js","mobile/components/MobilePosition/MobileClosePosition/MobileClosePositionHeader.js","mobile/components/MobileModal/MobileModalSuccess.js","mobile/helpers/input.helpers.js","mobile/components/MobilePosition/MobileClosePosition/MobileClosePositionMain.js","mobile/components/MobilePosition/MobileClosePosition/MobileClosePosition.js","mobile/components/MobilePosition/MobileUpdatePosition/MobileUpdatePositionHeader.js","mobile/components/MobilePosition/MobileUpdatePosition/MobileUpdatePositionBlock.js","mobile/components/MobilePosition/MobileUpdatePosition/MobileUpdatePositionInput.js","mobile/components/MobilePosition/MobileUpdatePosition/MobileUpdatePositionMain.js","mobile/components/MobilePosition/MobileUpdatePosition/MobileUpdatePosition.js","mobile/context/contextHook/useSymbol.js","mobile/components/MobileCarousel/MobileCarouselSymbolTick.js","mobile/components/MobileCarousel/MobileCarouselSymbol.js","mobile/modules/MobileTrading/MobileTradingChart/MobileTradingChartPosition.js","mobile/components/MobileCarousel/MobileCarouselSwitch.js","mobile/modules/MobileTrading/MobileTradingChart/MobileTradingChart.js","mobile/modules/MobileTrade/MobileTradeHeader.js","mobile/components/MobileSwitch/MobileOrderSwitch.js","mobile/modules/MobileUnits/MobileUnitsOptions.js","mobile/modules/MobileTrade/MobileTradeMain.js","mobile/modules/MobileUnits/MobileUnitsClosePosition.js","mobile/modules/MobileTrade/MobileTradeSection/MobileTradeInfo.js","mobile/modules/MobileTrade/MobileTradeSection/MobileTradeProcessing.js","mobile/modules/MobileTrade/MobileTradeSection/MobileTradeSuccess.js","mobile/modules/MobileTrade/MobileTradeSection/MobileTradeError.js","mobile/modules/MobileTrade/MobileTradeSection/MobileTradeScrollable.js","mobile/modules/MobileTrade/MobileTradeSection/MobileTradeDescription.js","mobile/modules/MobileTrade/MobileTradeSection/MobileTradeTwo.js","mobile/modules/MobileTrade/MobileTradeSection/MobileTradeSection.js","mobile/modules/MobileTrade/MobileTrade.js","mobile/pages/MobileTradingChartPage.js","mobile/components/MobileSwipeRow/MobileSwipeRowClass.js","mobile/components/MobileSwipeRow/MobileSwipeRow.js","mobile/modules/MobileTrading/MobileTradingAll/MobileTradingAllItem.js","mobile/components/MobileAction/MobileInputSearch.js","mobile/modules/MobileTrading/MobileTradingAll/MobileTradingAllActionBlock.js","mobile/modules/MobileTrading/MobileTradingAll/MobileTradingAll.js","mobile/pages/MobileTradingAllPage.js","mobile/components/MobileSocial/MobileSocialExplore/MobileSocialExploreItemDraw.js","mobile/components/MobileSocial/MobileSocialExplore/MobileSocialExploreItem.js","mobile/components/MobileSocial/MobileSocialExplore/MobileSocialExplore.js","mobile/hook/useStreamConnect.js","mobile/hook/useFetchData/useTopRankedData.js","mobile/pages/MobileSocialExplorePage.js","mobile/pages/MobileSignalsPage.js","mobile/components/MobilePullToRefresh.js","mobile/MobileApp.js","UI/MainApp/MainApp.js","background/commands/allCommandRegistry.js","App.js","background/storeListener/activateListeners.js","serviceWorker.js","index.js"],"names":["module","exports","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","_store","getStore","store","getLocalStoreLang","window","localStorage","getItem","setLocalStoreLang","langCode","setItem","addOrUpdateState","state","override","undefined","hasObjectChanged","returnObject","i","length","overridedeepState","Array","isArray","assign","replaceIfChanged","container","property","isChanged","overrideState","hasAnyDiff","initState","languages","languagesDisplayOrder","languageCode","mobile","isEnabled","enableChangeLanguage","language","userLang","browserLang","defaultLang","urlLang","cookieLang","theme","MainColor","ActiveText","InactiveText","ScrollColor","SubHeader","Text","GeneralColor","SystemColor","Link","Buttons","TextColor","Trade","ButtonFirst","ButtonSecond","BoxShadow","Deposit","Social","ChartColor","CopyBackground","CopyTextColor","Profit","Positive","Negative","Neutral","Tick","ChartUp","ChartDown","TickUp","TickDown","TickNeutral","Execution","BuyBackground","SellBackground","SuccessColor","FailedColor","themeSettings","HideLogo","AllowChangeTheme","ActiveTheme","ToggleThemeCommand","DarkTheme","LogoIcon","LightTheme","generalInfo","favIcon","logoLogin","logoMain","logoMainUrl","windowTitle","guestModeSettings","loginAsGuest","isSupportedLang","getBrowserLang","getUserLocales","i18n","getResourceBundle","toLowerCase","indexOf","baseLang","substring","getLanguageCode","setThemeSettings","themeData","globalState","urlParameters","getUrlParameters","params","paramKey","currValue","String","decodeURIComponent","console","error","url","getParams","environments","environmentsDisplayOrder","lastRemeberMeCMD","compareDisplayOrder","a","b","displayOrder","updateLocalStorageLogout","loginData","userId","envId","lastRememberMe","JSON","parse","removeItem","ex","log","loginLocalStorage","userLogin","rememberMe","stringify","updateLocalStorageWithLogin","rememberMeToken","tpId","userName","avatarColor","env","login","loginCounter","lastLogin","Date","now","updateEnvirmentFromLocalStorage","storageEnvKey","storageEnv","stateEnv","storageLogin","statePrevLogin","prevLogins","find","element","passwordRequiredCommand","remembermeLoginCommand","push","logoutCommand","cmdId","staticParams","postUrl","userInput","encryptedKey","storeRef","isIframe","type","tpNumber","tpPassword","requestVer","currency","digits","sign","symbol","name","userDetails","email","tpUserId","brandName","brokerName","showEnvironment","hideTopPanel","wshost","showPositionsOnChart","renewSessionCommand","refreshStateCommand","guestModeData","isLoggedInAsGuest","transferLink","analyticData","fullStoryData","organizationId","googleAnalyticsData","measurementId","luckyOrangeData","siteId","featuresData","execution","enableTpSl","deposit","depositUrl","getDepositUrlCommand","trends","trendsUrl","calendar","calendarUrl","getCalendarUrlCommand","education","educationUrl","getEducationUrlCommand","showMarginCallDisclaimer","waitForTicksOnStartup","serverTimeZone","marketRatesSettings","pin","isVisible","allowFilter","translation","sort","flag","bid","ask","mid","spread","lastUpdate","high","low","info","infoData","description","visible","sortOrder","security","stopLevel","leverage","contractSize","minimum","maximum","step","swapLong","swapShort","swapType","instrument","groupsOrder","drawerSettings","pinData","isPin","isPinVisible","togglePinDrawerCommand","openPositionsTab","pendingOrdersTab","closePositionsTab","totalProfitType","rightPanelSettings","socialv1","t4proTradingroom","vipEnabled","handleState","draf","payload","drafTab","payloadTab","generalData","marketRatesData","updateMarketSettingsColumn","updateInfoColumn","marketRatesColumnSettings","drawerData","rightPanelData","UpdateTradingRoomTab","drafColumn","columnName","payloadColumn","commandTemplate","toggleMarketRatesColumnCommandTemplate","toggleMarketRatesCommand","column","drafInfo","payloadInfo","getPathObject","node","path","currentNode","key","_dirtyNotifications","Map","_isInNotification","_setDirty","reactSetterInstance","has","set","Promise","then","dummyObject","create","reactSetter","clear","PubsubRepository","indexObj","Set","this","callback","add","myData","get","data","keySubscriptions","disposed","local","keySubscription","reactSetValue","CloneData","transferData","dispose","delete","_subscribeAndGetData","React","useState","setValue","useEffect","cloneSeq","changeSeq","newInstance","createInstance","newInstancePrev","deepClone","prevData","items","nativeCallbacks","size","created","updated","deleted","item","_handlePublishDelete","forEach","currCallback","_handlePublish","getKey","prevDataItem","subscriptions","itemData","previtemData","transform","bidProfitConversion","askProfitConversion","marginConversion","timestamp","timestampUTC","isOffline","TicksRepository","traget","source","sm","bpc","apc","mc","t","tu","ProfitClass","profitWithCommitions","profit","diff","pipDiff","isValidProfit","ProfitsRepository","AccountMovingPLClass","openPl","openPlWitoutCommition","equity","freeMargin","marginLevel","AccountMovingPLRepository","_subscriptions","obj","repId","pubsub","getNative","subscribeNative","subscribeReactWithPrev","subscribeReact","_cmdMap","Command","handlerFunc","cmdData","_cmdData","_handlerFunc","execute","bind","curr","dd","storeRefData","PubsubSubscription","isSubscriptionObj","getValueNative","getState","cmdFactorySingleton","instance","handler","warn","isCommand","internalHandler","CommandFactory","STDCMDServerAuthHandler","cmd","staticData","getStatic","storeData","getStoreData","getUserInput","fetch","method","headers","sessionStorage","body","response","ok","json","token","res","createCommand","storeDispatch","StatusModes","requireServerInit","requireLogin","accountLogin","self","top","inIframe","ticksLoaded","status","serverInitCommand","unpack","dataObj","iterators","x","propertyFactory","listMoveNext","setCurrent","currPackProp","moveNext","getCurrent","objectIterators","isValid","headProp","newObj","currIndex","dupCounter","currMode","v","c","n","array","hasMore","symbolsFlagsMap","single","left","right","symbols","symbolsOrder","subscribeEventsNative","changes","dispatch","ProfitCalculationModes","addRemovedProps","target","soruce","sourceDic","tradingSessions","tradingSessionDef","altDescription","sessionData","altContractSize","setSymbolsCommand","symbolsArray","chart","symbolId","period","from","barCount","openPositionCMD","serverContractSize","tick","clientContractSize","actionType","amount","stopLoss","takeProfit","togglePinSymbolCMD","openPendingOrderCMD","price","HandleSymbols","serversymbols","pinSymbols","symbolsToRemove","stateSymbols","values","stateSymbol","serverSymbolkey","serverSymbol","displayName","group","displayDigit","pipDigit","tradeMode","contractUnitType","serverUnits","profitCalcMode","marginPercentage","tickSize","tickValue","marginInitial","minimumLot","maximumLot","lotStep","mt5marginMultiplier","mt5marginBase","t4Pro","icon","currentTick","hasTick","getSymbolFlagMap","symbolName","splitIndex","lastIndexOf","month","year","contractMonths","parseInt","pattern","leftPair","rightPair","forexPairs","endPattern","symbolSpecialEndings","positions","eventCounter","closeAllCommand","ActionType","HandleOpenPositions","openPositions","serverPositions","positionsToRemove","statePositions","statePosition","serverPositionKey","serverPosition","openRate","openTimeUtc","openTimeS","commission","taxes","swaps","closePositionCMD","updatePositionCMD","deleteAllCommand","HandlePending","expirationS","expirationUTC","openTimeUTC","editPendingCMD","deletePedingCMD","getAllCommand","isGetAllRequsted","HandleClosedPositions","serverClosed","closeRate","takeprofit","stoploss","closeTimeS","closeTimeUTC","marginRate","closedMargin","profitWithCommission","credit","balance","margin","marginStatus","movingPL","handleAccountUpdate","accountFinancial","produce","_callbacks","LimitedSizeList","identityFunc","index","disposable","subscribe","current","ageIndex","oldItemKey","limitedList","startLength","setTimeout","callbacks","_internalCallBacks","enqueueCallbacks","itemToDelete","allTrades","trade","TradeHash","topRankedTrades","watchTraders","isSupportedSymbol","InstrumentName","iamWatching","storeSocial","copying","Nickname","following","allTradesStream","topRankedTradeStream","watchTradersStream","hasInit","hideCopyByFixedLot","showSocialStream","initSocialDataCommand","moreSocialDataCommand","searchProfileCommand","socialAccount","questionerMode","externalRiskScore","queryRiskScoreCMD","exploreCommands","getTopRanked","getMostCopied","getMostProfitable","advanceSearch","registrationCommands","joinSocialCommand","leaveSocialCommand","isMasterCommand","generateNickNameCommand","updateAvatarCommand","updatePersonalDescriptionCommand","logLfsCopyRequestWithDisclaimerCommand","getLfsSuitabilityTestResultsCommand","updateLfsSuitabilityTestResultCommand","abandonSuitabilityTestCommand","copyRelationsCommands","addFollower","updateFollower","removeFollower","unlinkTradeCommand","getClosedPositionsLinksCommand","profileCommands","getUserProfilePage","getPortfolioBreakdown","getFriends","getPositions","getDataForCopy","getGetPlAndStats","tradeLinks","closeTradeLinks","isJoined","topTraders","topTradersOrder","spotlightTraders","nickname","avatar","lfsRegulationsDetails","isLfsRegulated","lfsFinishedSuitabilityTest","lfsRiskScore","handlePositionsLinks","positionsLinks","isClosedLinks","relevantCollection","link","PositionID","toString","currLink","linkType","TradeLinkType","sourceStopLoss","MasterStopLossRate","sourceTakeProfit","MasterTakeProfitRate","sourceNickName","MasterNickname","handleSocailInitData","socialData","userData","UserDetails","IsEnabled","Avatar","IsLfsRegulated","LfsFinishedSuitabilityTest","LfsRiskScore","TradesLiks","TraderMasters","TraderFollowMasters","FeaturedTraders","setTopTrader","TopTraders","tradersObject","tradersArray","trader","JoinDate","Country","Copiers","Rank","WinRatio","MaxSingleTradeProfit","AverageDaily","AverageCopySlippage","CopySlippageRank","PnLGraph","TradingRiskLevel","AddedReason","handleSocialDataUpdated","mainReducer","combineReducers","action","generalStatus","brand","lang","langobj","langOrder","l","getFixedT","loginTradingData","o2","Cookies","remove","domain","location","host","sortedEnvironments","translatedName","loginWithTPId","account","accountInfo","sharedTradingData","ServerTimeZone","columnState","financial","tradingData","accountData","socialV1Data","isFirstTime","topRankedPerformers","spotLightPerformers","initSocialStream","EveryoneStream","pushItem","TopTradersStream","TradersIWatchStream","createdSymbol","symbolsPack","unpaked","DeepDiff","open","pending","pendingPositions","closed","closedPositions","STDCMDAsyncServerHandler","f","STDCMDServerHandler","PeriodInstance","Period1Minute","Period5Minutes","Period15Minutes","Period30Minutes","Period1Hour","Period4Hours","Period1Day","Period1Week","Period1Month","getBarTime","day","dateofweek","hours","minutes","UTC","Period","ChartService","_chartData","_tickData","_idSeq","timestampFrom","command","chartData","relativeCharting","oldestBarTime","seq","resolutionFunc","promise","promisResolutionFunc","subscriptionPromiseAction","subscriptionPromise","hasData","barsMap","arrayOfdata","value","bars","bar","localtime","ServerTimeStamp","currBar","ServerTimeStampUTC","Open","High","Low","Close","getTime","tickTime","getUTCFullYear","getUTCMonth","getUTCDate","dayofweek","getUTCDay","getUTCHours","getUTCMinutes","offset","_updateBarStateWithTick","lstRemoveCallbacks","barTime","prevBarToPublish","latestPublish","prevBar","rebuildBar","publishBar","currentBar","b1h","b1l","b1c","b1o","ticks","_processTick","symbolData","CMDChartCmdID","shouldRefresh","_lastChartSubscription","_ackFunction","ticks_connection","messageHanlders","webSocket","_stop","start","stop","_wasConnected","close","msg","send","session","encodeURIComponent","WebSocket","relative_url","protocolPrefix","protocol","toWsUrl","socket","onopen","_system_message","onerror","_onSocketClosed","onclose","onmessage","d","socketDataObj","ArrayBuffer","inflator","pako","Inflate","to","result","Blob","arrayBuffer","buffer","socketData","jsonData","Type","PayLoad","systemType","event","thisScope","TicksV2","publish","Bar","barsByTopic","p","h","updateData","Ticks","onTicks","__open","messages","__closed","KA","requestAnimationFrame","mode","SOCIALV1_TRADES","trades","storeSymbols","IsCopied","onSocialV1TradeArrived","commands","contractSizes","clientContractSizes","Init","select","currentValue","updateFunction","wsChartSubscription","CMDChartsHandler","isSuccessful","Symbol","STDCMDStoreHandler","document","title","querySelector","createElement","rel","href","getElementsByTagName","appendChild","round","decimals","Math","abs","Number","calculateMovingProfits","profitObj","position","currentPrice","convertion","pow","ProfitCalculationService","calculateProfit","_handleTick","changed","profits","getPositionsBySymbolId","profitPositionid","_updateMovingPL","openPrice","closedPrice","closeVolume","openVolume","profitPosition","positionKey","bySymbol","positionToRemove","publishDelete","financials","totalOpen","totalCommision","pos","ids","currOpenPositions","currSymbols","currFinancial","previousValue","previousSymbols","prevfinancial","_recalAll","evaluateSession","_interval","clearInterval","setInterval","firstCallUpdate","retryAttempt","social","firstSocialCall","secondCallUpdate","secondSocialCall","isFullStoryRunning","SendEventToFullStory","eventName","eventProperties","FullStory","selectUserGuid","currentUserGuid","orgId","initFullStory","envName","setUserVars","isGoogleAnalyticsRunning","SendEventToGoogleAnalytics","finalEventName","replace","gtag","loginStatus","head","googleAnalyticsScript1","src","googleAnalyticsScript2","text","initGoogleAnalytics","isLuckyOrnageRunning","SendEventToLuckyOrange","_loq","tagName","luckyOrnageData","__lo_site_id","wa","async","initLuckyOrnage","documentElement","style","setProperty","removeProperty","PasswordField","props","handleClickShowPassword","setState","prevState","showPassword","handleChange","handlePasswordChange","password","errorMessage","FormControl","fullWidth","Input","placeholder","autoComplete","onChange","endAdornment","InputAdornment","IconButton","aria-label","onClick","className","Component","withTranslation","isRememberMe","handleClickRemeberme","FormControlLabel","control","Checkbox","checked","request","color","label","labelPlacement","LoadSpinner","overlay","isLocal","isBottom","connect","additionalAction","setResponse","languagesToRender","k","handleLanguageChange","selectLanguageCommand","TextField","option","MenuItem","_extends","arguments","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","_ref","svgRef","fill","focusable","width","height","viewBox","ref","ForwardRef","forwardRef","QuickLoginItem","envData","selectEnv","toggleIsLoading","dataToDisplay","useTranslation","commandPassword","selectEnvPass","handleSubmit","preventDefault","errorDescription","backgroundColor","slice","statusText","QuickPasswordLoginItem","backAction","setUserInput","isLoading","setIsLoading","QuickLogin","selectedEnv","setSelectedEnv","setdisplayName","setTpId","envsPrevLogins","prevObj","selectedDisplayName","LoginPage","useSelector","shallowEqual","envSelection","envToDisplay","foundEnv","environment","stateObject","setStateObject","displayFullForm","setDisplayFullForm","setIsRememberMe","setError","handleReturnToFullForm","shouldDisplayQuickLogin","helperText","Button","onClickHandler","onFocusAction","onBlurAction","iconStart","iconStartSVG","iconEnd","isFaded","ariaHaspopup","ariaExpanded","ariaControls","tabIndex","dataName","styledButton","useRef","onFocus","onBlur","onMouseOver","onMouseOut","data-name","aria-haspopup","aria-expanded","aria-controls","SearchIcon","xmlns","opacity","stroke","strokeWidth","strokeLinecap","CheckBox","handleCheckBoxClick","labelText","OuterClick","WrappedComponent","additionalComponent","onClose","handleClick","handleClickOutside","closest","wrapperRef","contains","setWrapperRef","addEventListener","removeEventListener","children","shouldDisplayPin","shouldDisplayInfo","setShouldDisplayPin","setShouldDisplayInfo","shouldDisplayTime","setShouldDisplayTime","generalColor","checkboxesState","setCheckboxesState","displayPin","displayInfo","displayTime","LeftPanelActionsBlock","searchSubmit","symbolGroups","initialLeftWidth","symbolGroup","checkboxes","isColumnsSelectOpen","setIsColumnsSelectOpen","timeoutRef","clearTimeout","handleSearchSubmit","s","sGroup","toggleColumnsSelect","Icon","symbolSearch","isSmallDesktop","Select","IconComponent","KeyboardArrowDownIcon","evt","stopPropagation","formatCache","roundNumberPipDigit","Intl","NumberFormat","maximumFractionDigits","minimumFractionDigits","format","formatSymbolPrice","newElem","oldElem","tickUp","tickDown","tickNeutral","upDownStyle","digitStyle","stringValue","stringOldVlaue","ignoreChars","padStart","strongIndex","dotIndex","digitArrays","newChar","charAt","isPipDigit","prepareBidAsk","symbolTick","previousTick","bidOutput","askOutput","formatDateCache","DateTimeFormat","hour","minute","second","timeZone","formatDate","date","formatDateOnlyCache","formatDateOnly","formatTimeCache","Portal","mount","getElementById","el","setAttribute","removeChild","createPortal","ToolTip","y","currentToolTip","createRef","nextProps","nextState","hoverRect","docWidth","clientWidth","docHeight","clientHeight","ttRect","rx","lx","ty","by","bRight","scrollX","bLeft","bBellow","newState","scrollY","tickData","onCloseTooltip","systemColor","hideHeadings","toFixed","TickItemBidAsk","subHeaderColor","TickItem","isActive","timeUpdate","isExpanded","setIsExpanded","toolTip","symbolClass","pinSymbol","handleOnMouseOut","hide","data-symbol","data-pinned","currentTarget","rect","getBoundingClientRect","show","TickItemWrapper","repObj","handleItemSelect","subscribeObjAndPrev","TicksList","orderedSymbols","selectedSymbol","listSize","setListSize","renderRow","getElementsByClassName","offsetHeight","getAttribute","rowHeight","rowRenderer","rowCount","overscanRowCount","LeftBlockMemo","memo","onSymbolSelect","filteredArray","setFilteredArray","setOrderedSymbols","nothingFound","setNothingFound","setSymbolGroups","temp","pinnedTemp","symbolsToShow","symbolsToDisplay","foundSymbol","concat","all","arr","groups","handleSelect","filteredSymbols","filter","includes","symbolsList","finalFilterred","selectSubmit","prev","next","ReactResizePanel","isHorizontal","direction","handleDrag","ui","factor","delta","deltaX","deltaY","max","handleDragEnd","parentElement","parentNode","symbolSelect","maxWidth","marginRight","handleResize","validateSize","contentRef","debounce","actualContent","initialSize","prevProps","openPin","content","wrapper","containerParent","minSize","scrollWidth","scrollHeight","offsetWidth","overflow","handleClass","borderClass","containerClass","dragHandlers","onDrag","onStop","containerClasses","handleClasses","resizeBarClasses","containerStyle","flexGrow","contentStyle","contentClassName","Children","only","handle","unshift","ResizePanelWrapper","isClosed","initialWidth","initialHeight","chevronLeft","chevronRight","chevronUp","chevronDown","chartController","_chartInstance","_symbolChangeCallback","_periodChangeCallback","clearIndicators","clearDrawings","indicator","addIndicator","settings","styles","getIndicators","openTime","tp","sl","addDeal","getTimeframe","ModalWrapper","handleClose","onBackdropClick","disableBackdropClick","childClassName","heading","hideCloseButton","rest","CloseButtonProps","ariaLabel","Fade","in","context","require","countryCode","split","pop","CountryFlagByCode","countryFlags","alt","TooltipWrapper","classes","arrow","setOpen","Tooltip","onOpen","LinearProgressBarWithLabel","hideLabel","Box","display","alignItems","mr","LinearProgress","variant","minWidth","Typography","MONTH_NAMES","getFormattedDate","prefomattedDate","hideYear","getDate","getMonth","getFullYear","getHours","getMinutes","timeAgo","dateParam","today","yesterday","seconds","isToday","toDateString","isYesterday","isThisYear","format2Digits","parseFloat","toLocaleString","Format2Fixed","SocialStreamItem","borderStyle","streamType","user","toggleOpenCopyTab","isClickable","AvatarURL","NumberOfCopiedPositions","OpenPrice","ClosePrice","OpenTime","CloseTime","TradeActionType","TradeType","PendingType","PL","Price","PendingOpenTime","IsPartial","TimeStamp","time","translationId","streamText","nickName","openProfileCopy","shouldOpenCopy","$","expr","con","getOffset","scrollTop","scrollLeft","isHidden","offsetParent","isElementInViewport","bottom","innerHeight","innerWidth","tag","val","insertBefore","prop","BASE_MEASURES","margins","paddings","baseHeight","titleHeight","legendHeight","titleFontSize","getTopOffset","m","getLeftOffset","getExtraHeight","getExtraWidth","AXIS_DATASET_CHART_TYPES","DEFAULT_CHART_COLORS","DEFAULT_COLORS","line","pie","percentage","heatmap","donut","ANGLE_RATIO","PI","SvgTip","parent","colors","titleName","titleValue","listValues","titleValueFirst","setup","makeTooltip","calcPosition","inside","innerHTML","hideTip","dataPointList","formatted","li","maxLeft","pointer","pointerOffset","valueFirst","refresh","floatTwo","fillArray","count","fillerArray","getStringWidth","string","charWidth","getPositionByAngle","angle","radius","sin","cos","isValidNumber","candidate","nonNegative","isNaN","isFinite","getBarHeightAndYAttr","yTop","zeroLine","equilizeNoOfElements","array1","array2","extraCount","truncateString","txt","len","shortenLargeNumber","number","floor","log10","shortened","getSplineCurvePointsStr","xList","yList","points","controlPoint","previous","reverse","pointA","pointB","lengthX","lengthY","sqrt","atan2","reduce","acc","point","pointStr","cps","cpe","PRESET_COLOR_MAP","limitColor","r","randomColor","random","lightenDarkenColor","amt","col","getColor","usePound","num","$$1","createSVG","createElementNS","renderVerticalGradient","svgDefElem","gradientId","x1","x2","y1","y2","setGradientStop","gradElem","makeSVGGroup","args","makePath","pathStr","makeGradient","lighter","gradientDef","opacities","heatSquare","makeText","options","fontSize","dy","textAnchor","makeVertLine","FONT_SIZE","makeHoriLine","lineType","shortenNumbers","makeOverlay","unit","transformValue","nodeName","childNodes","cloneNode","updateOverlay","attributes","attr","specified","nodeValue","translate","oldCoord","newCoord","duration","old","join","translateHoriLine","yLine","newY","oldY","animatePathStr","oldPath","EASING","ease","linear","easein","easeout","easeinout","animateSVGElement","dur","easingType","oldValues","animElement","newElement","attributeName","animateElement","animAttr","begin","keySplines","keyTimes","calcMode","webkitTransform","msTransform","mozTransform","oTransform","animateSVG","svgContainer","elements","newElements","animElements","replaceChild","animSvg","runSMILAnimation","svgElement","elementsToAnimate","animSvgElement","BaseChart","HTMLElement","rawChartArgs","resetPadding","realData","prepareData","prepareFirstData","validateColors","config","showTooltip","showLegend","isNavigable","animate","truncateLegends","measures","setMeasures","argHeight","initTimeout","overlays","configure","validColors","test","isValidColor","boundDrawFn","draw","makeContainer","updateWidth","independentWidth","tip","bindTooltip","onlyWidthChange","init","calc","makeChartArea","setupComponents","components","drawArea","render","update","renderLegend","setupNavigation","baseWidth","getComputedStyle","padding","paddingLeft","paddingRight","getElementContentWidth","svg","lastChild","svgDefs","titleEL","legendArea","updateTipOffset","make","updateNav","bindUnits","bindOverlay","keyActions","onEnterKey","onLeftArrow","onUpArrow","onRightArrow","onDownArrow","keyCode","chartSvg","clone","classList","styleEl","firstChild","prepareForExport","filename","blob","URL","createObjectURL","download","click","revokeObjectURL","downloadFile","AggregationChart","maxSlices","maxLegendPoints","sliceTotals","allTotals","labels","total","datasets","totals","remaining","sumOfRemaining","grandTotal","center","textContent","legendTotals","barWidth","divisor","dot","truncate","cx","cy","dx","legendDot","DAY_NAMES_SHORT","treatAsUtc","setMinutes","getTimezoneOffset","getYyyyMmDd","mm","getWeeksBetween","startDate","endDate","weekStartDate","setDayToSunday","ceil","SEC_IN_DAY","getDaysBetween","areInSameMonth","getMonthName","short","monthName","getLastDateInMonth","newDate","getDay","addDays","numberOfDays","setDate","ChartComponent","layerClass","layerTransform","constants","getData","makeElements","animateElements","layer","oldData","componentConfigs","donutSlices","sliceStrings","transition","newData","pieSlices","titlePosition","percentageBars","xPositions","depth","percentageBar","widths","barHeight","barDepth","yAxis","newPos","newLabels","oldPos","oldLabels","xAxis","xLine","calcLabels","newX","oldX","translateVertLine","yMarkers","labelPos","labelSvg","yMarker","newOptions","yRegions","region","yRegion","startPos","endPos","newStarts","oldStarts","rectGroup","newY1","newY2","oldY2","newHeight","animateRegion","heatDomain","colWidth","squareSize","xTranslate","serializedSubDomains","cols","week","weekNo","toUpperCase","yyyyMmDd","dataValue","square","barGraph","unitType","units","yPositions","j","meta","minHeight","datasetBar","offsets","barsWidth","newXPos","newYPos","newOffsets","oldXPos","oldYPos","oldOffsets","rectAnim","oldCoordStr","groupAnim","animateBar","lineGraph","paths","hideLine","pointsList","pointsStr","spline","heatline","gradient_id","regionFill","gradient_id_region","getPaths","hideDots","datasetDot","valuesOverPoints","newValues","newXList","newYList","pathComponents","animPath","regStartPt","regEndPt","animRegion","animatePath","animateDot","getComponent","PercentageChart","barOptions","component","xPos","gOff","pOff","formattedLabels","fraction","setValues","showTip","PieChart","mouseMove","mouseLeave","hoverRadio","startAngle","clockWise","showDataInPie","createColors","colorsArray","prevSlicesProperties","slicesProperties","curAngle","curStart","curEnd","originDiffAngle","largeArc","diffAngle","endAngle","startPosition","endPosition","prevProperty","curPath","arcStartX","arcStartY","arcEndX","midArc","arcEndY","makeCircleStr","makeArcPathStr","titlePos","calTranslateByAngle","g_off","pageX","pageY","formatted_labels","percent","pnl","pl","slices","prevIndex","curActiveSliceIndex","prevAcitve","curActiveSlice","hoverSlice","normalize","mantissa","exponent","sig","exp","getChartRangeIntervals","min","upperBound","lowerBound","range","noOfParts","partSize","intervals","getChartIntervals","maxValue","minValue","normalMaxValue","normalMinValue","calcChartIntervals","withMinimum","getPositiveFirstIntervals","absMinValue","intervalSize","posIntervals","pseudoMaxValue","pseudoMinValue","getZeroIndex","yPts","zeroIndex","interval","getIntervalSize","orderedArray","getValueRange","scale","scaleMultiplier","Heatmap","countLabel","validStarts","startSubDomain","startSubDomainIndex","discreteDomains","ROW_HEIGHT","spacing","HEATMAP_SQUARE_SIZE","end","noOfWeeks","setFullYear","dataPoints","timestampSec$$1","firstWeekStart","distribution","distributionSize","dataMaxValue","distributionStep","checkpoint","calcDistribution","domainConfigs","getDomains","lessCol","dayName","dayText","comp","daySquares","daySquare","dateParts","lessText","COL_WIDTH","moreText","HEATMAP_DISTRIBUTION_SIZE","startMonth","startYear","noOfMonths","startOfMonth","getDomainConfig","startOfWeek","domainConfig","noOfMonthWeeks","getCol","NO_OF_DAYS_IN_WEEK","empty","currentDate","currentDateWithinData","getSubDomainConfig","dataPrep","datasetLength","zeroArray","vals","chartType","zeroDataPrep","zeroData","AxisChart","lineOptions","axisOptions","tooltipOptions","xAxisMode","yAxisMode","xIsSeries","shortenYAxisNumbers","formatTooltipX","formatTooltipY","calcXPositions","calcYAxisParameters","getAllYValues","makeDataByIndex","unitWidth","xOffset","dataValues","intervalHeight","calcDatasetPoints","calcYExtremes","calcYRegions","scaleAll","cumulativeYs","cumulativeYPos","stacked","yExtremes","cumulative","allValueLists","chartWidth","isSeries","allowedSpace","seriesMultiple","allowedLetters","maxLabelLength","getShortenedLabels","barDatasets","lineDatasets","barsConfigs","spaceRatio","lineConfigs","minLine","dotSize","markerConfigs","optionals","dataUnitComponents","dataByIndex","formatX","formatY","yPos","formattedLabel","yExtreme","relX","relY","mapTooltipXPosition","goal","getClosestInArray","dbi","legendBar","overlayGuides","g","currentIndex","currentUnit","setCurrentDataPoint","data_point","properties","createEvent","initEvent","dispatchEvent","fire","getDataPoint","datasetValues","splice","chartTypes","makeStrokeCircleStr","makeArcStrokePathStr","Chart","getChartByType","Graph","onSelect","graph","is_navigable","useWindowSize","setSize","useLayoutEffect","updateSize","Switch","offText","onText","handleSwitch","isSelected","activeColor","toggleSwitch","inputProps","containerClassName","role","aria-hidden","readOnly","roundToPrecision","precision","nullCheck","tempNumber","roundedTempNumber","formatDaysFromNow","dateToCount","differenceInDays","FormatPercentFloat","isNegative","pnlClass","ProfileTabDetails","detailedData","joinDateValue","dailyPL","AvgDailyReturn","maxDrawDown","AvgMonthlyReturn","CumulativePnl","MaxDrawDown","maxTradeLoss","MaxSingleTradeLoss","maxTradeProfit","winRatio","ProfilePageRadioGroup","groupList","selectedItem","handleSelectItem","RadioButtonsGroup","entries","sortColumns","sortName","sortType","sortResult","nameA","nameB","ProfilePageOpenPositions","openedTab","closedOrders","setSelectedTrader","pendingOrders","sortedPositions","setSortedPositions","prevColumn","setPrevColumn","openProfilePage","sortAll","classValue","data-sort-name","data-sort-type","data-sorted","pendingOrderText","formatPendingText","DecimalPrecision","StopLoss","TakeProfit","OriginatingTraderNickname","TIMEFRAMES","1","2","3","4","PortfolioTab","showPie","setShowPie","requestResult","setRequestResult","timeframe","setTimeframe","setData","requestPortfolio","isSubscribed","portfolio","AllocationPercentage","PLPercentage","region_fill","WinningCount","LosingCount","ProfileTab","socialFeed","risklevel","userDetailedProfile","setDetailedUserProfile","setLabels","getDetailedProfileData","DailyPLs","localLabels","localValues","NormalizedPL","areaFill","UserMeasures","COMMUNITY_TABS","CommunityTab","getProfileData","kind","setKind","userCount","setUserCount","requestFriends","kindValue","quantity","TraderFollowingDetails","TraderIsFollowing","FollowTrader","CopyTrader","TraderIsCopying","setKindValue","copiers","UserFriends","data-avatar","data-copiers","PROFICIENCY_LEVEL","ProficiencyLevel","PositionsTab","expanded","setExpanded","requestPositions","panel","newExpanded","Accordion","TransitionProps","unmountOnExit","AccordionSummary","expandIcon","AccordionDetails","ProfileOpenTrades","ProfilePendingTrades","ProfileClosedTrades","countDecimals","InputStepper","selectedUnits","stepValue","shouldFocus","showError","checkDivider","roundMax","isError","onKeyUp","inputDescription","inputEl","inputClass","newValue","inputValue","selectedUnitsNumber","getSelection","removeAllRanges","autoFocus","depositButtonClickHandler","depositURL","getDepositURLCommand","focus","tab","normalizedEditNumber","editValue","originalValue","instruments","setInstruments","currencies","setCurrencies","initialCurrencies","setInitialCurrencies","searchValue","setSearchValue","setAll","TopInstruments","AllowedInstruments","searchResult","selectCurrency","allTrue","every","changedCurrencies","arrayToUse","InvalidAmountCopy","radio","pnlTick","subscribeObj","equityStepperAmount","OverCopy","copyData","copyType","TotalAllocationMargin","CopyDisclaimer","copyColor","handleAddCopy","masterNickname","isDisclaimerCkecked","setIsDisclaimerCkecked","CopyTab","yearPnl","alreadyCopied","handlePersistCopyTab","handleUncopy","generalButtonColor","setQuestionnaire","setJoinPopup","isEquityValidForCopy","setIsEquityValidForCopy","showDisclaimer","setShowDisclaimer","showBlockDisclaimer","setShowBlockDisclaimer","setCopyData","lotAmount","setUserData","setRadio","showResponseInfo","setShowResponseInfo","currencySelect","setCurrencySelect","handleCloseCopyTab","toggleDisclaimer","getCopyData","isSet","subscription","subscribeObjNative","isInvalidEquityAmount","isOverCopy","eq","CopyType","Amount","DefaultEquityAllocationAmount","lot","DefaultCopyByFixedLotAmount","Instruments","handleAddFollower","copiedSourceType","toggleRadio","externalQuestionerMode","riskLevel","masterScore","canCopy","textAlreadyCopied","disableCopy","hideCopyByFixedLotState","Radio","MinimumEquityAllocationAmount","MaximumCopyByFixedLotAmount","catch","exception","RiskLevel","CopyBlockDisclaimer","Suggestions","users","toggleExplorePage","clodeUserModal","isLoadingProfile","randomUsers","setRandomUsers","maxSuggestions","shuffled","setOpenCopyTab","copiedUserName","copy","RISK_LEVELS","RISK_LEVEL_LABELS","RISK_LEVEL_COLORS","RiskLevelItem","RiskLevelDisplay","score","ProfilePage","openCopyTab","joinDate","isSameUser","tabValue","setTabValue","persistCopyTab","setPersistCopyTab","MetaJoinDate","setNickName","history","setHistory","forward","setForward","showPopup","setShowPopup","showUncopyPopup","setShowUncopyPopup","avatarValue","copiersCount","CopiersCount","SocialFeed","suggestionPerformers","SuggestionPerformers","watching","Following","proficiency","useMemo","toggleUncopyPopup","handleWatch","guruNickname","commandObj","handleUncopyFollower","handleOuterOpenTab","handleTabChange","newTabValue","finalTabValue","handleUserSelect","selectedUser","lastPage","nextPage","tooltip","clearActiveTab","ProfilePageWrapper","selectedTrader","setCloseProfileModal","userProfile","setUserProfile","setPortfolio","setYearPnl","setShouldOpenCopyTab","nicknameValue","FolowersMax","followingMax","pnlAndStats","queryRiskScorePromise","resp","allSettled","closeUserModal","MarginAlert","QuestionStepOne","steps","setSteps","handleNextChange","shouldHideIcon","setShouldHideIcon","bottomDiv","stepContainer","checkVisible","stepData","selectedOption","nextStepData","isFulfilled","selectOption","questionGraph","scrollIntoView","behavior","QuestionStepTwo","buttonColor","first","slide","marks","InputLabel","htmlFor","defaultValue","labelId","MenuProps","Slider","aria-labelledby","valueLabelDisplay","track","ThumbComponent","QuestionStepThree","third","fourth","question","RadioButtonsGroupFourth","Questionnaire","showThankYou","setShowThankYou","showCancel","setShowCancel","getQuestionaireData","Q1","Q2","Q4","Q3","Q5P1","Q5P2","updateQuestionnaireData","ver","q1","q2","q3","q4","q5p1","q5p2","onQuestionnaireClosed","onAbortQuestionnaireClosed","Trans","i18nKey","RadioGroup","row","checkedIcon","disableRipple","RepositoryValueView","disValue","StoreTreeItemClass","expandableItemsArray","simpleItemsArray","nodeProperties","nodekey","parentNodeId","isExpendable","TreeItem","nodeId","placement","enterDelay","fontWeight","StoreTreeItem","setCmdDialog","setSocialStream","nodeKey","getCurrrentLevelNodes","ownProps","dataObject","CommandDialog","other","setLoading","setRes","handleOk","Dialog","disableEscapeKeyDown","scroll","onEntering","DialogTitle","DialogContent","dividers","DialogActions","disabled","streamSelection","handleCancel","listItems","streamToUse","getStackOrder","rerender","transitionName","transitionEnterTimeout","transitionLeaveTimeout","dialog","setDialogValue","socialStream","TreeView","defaultExpanded","defaultCollapseIcon","defaultExpandIcon","INDICATORS","colorUp","boldUp","colorDown","boldDown","colorBasis","boldBasis","colorBorder","boldBorder","colorBg","bold","nConv","nBase","nSpan","nDisp","boldALine","boldBLine","boldBase","boldConv","boldLag","colorALine","colorBLine","colorBase","colorBg1","colorBg2","colorConv","colorLag","nFast","nSlow","nSignal","boldMACD","boldSignal","colorHistogram","colorMACD","colorSignal","overbought","oversold","upper","lower","colorK","boldK","colorD","boldD","nJaw","falsesetJaw","nTeeth","falsesetTeeth","nLips","falsesetLips","colorJaw","boldJaw","colorTeeth","boldTeeth","colorLips","boldLips","selectIndicator","aria-selected","data-value","IndicatorsPopup","handleUpdateIndicator","closeModal","settingsList","setSettingsList","handleIndicatorChange","persist","renderForm","refreshStateWorkaround","oldCounter","completed","newCounter","_calculateMT5Leverage","multiplier","userLeverage","calcMarginRequirement","tickObj","ACTION_TYPE","BID","finalLeverage","marginReq","basePrice","LoadingIcon","clipPath","FormattedSLTPProfit","noText","formatProfit","profitToDisplay","EPSILON","getRelativePos","elm","pPos","cPos","scrollTo","onDone","change","startTime","performance","animateScroll","easeInOutQuad","scrollToElement","selectPendingPrice","togglePendingDropDown","pendingPrice","isBidActive","tickPrice","renderUnits","currentPendingPrice","resultList","pipDigitRounding","priceRounding","currentRoundedPrice","distance","preparePendingPricesList","selectedElement","TradePopupStepTwo","pendingOrder","handleSwitchChange","isPending","handleSetValue","pendingOrderPrice","isBidType","activeTextColor","inactiveTextColor","enableSLTP","buySL","sellSL","setBuySL","setSellSL","buyTP","sellTP","setBuyTP","setSellTP","pendingSL","pendingTP","setPendingSL","setPendingTP","setShowError","showInfo","setShowInfo","pendingDropDown","setPendingDropDown","isBid","closeConvertion","pipNumber","handleShowError","shouldSelect","representation","SLPrice","verifiedPrice","SLPriceObject","selectedSL","TPPrice","TPPriceObject","selectedTP","TradePopupWSTick","onBidClick","onAskClick","tradePopupButton","tradePopupButtonBuy","tradePopupButtonSell","thumbClass","bidStyle","askStyle","bidContainer","askContainer","UNITS_MULTIPLIER","selectUnits","toggleUnitsDropDown","unitsName","initialUnitsList","setInitialUnitsList","ASK","currentUnits","resultSet","resultArray","counter","multiply","unitValue","prepareUnitsList","convertionRate","data-disabled","createOpenPositionEvent","pipValue","marginRequirement","orderType","mainChartController","selectedIndicatorsArr","selectedChartPeriod","getChartPeriod","fsEventParams","createFullStoryExecutionEventParams","gaEventParams","createGoogleAnalyticsExecutionEventParams","wasTradePopupClosed","executionTime","openPrice_str","isSuccessful_bool","error_str","wasTradePopupClosed_bool","executionTime_str","createPendingOrderEvent","requestPrice","ispending","pipValue_str","marginRequirement_str","symbol_str","amount_real","actionType_str","ask_real","bid_real","sl_real","tp_real","selectedIndicators_strs","selectedChartPeriod_str","requestPrice_str","selectedIndicators","isProcessing","setIsProcessing","unitsDropDown","setUnitsDropDown","setPendingOrder","setPendingOrderPrice","orderInfo","setOrderInfo","setType","isOpen","isPopupOpen","setSelectedUnits","prices","pip","conversionRate","calcPipValue","handleOpenPosition","sendOpenPositionEventFunc","TradePopupAnalyticsEvents","refreshWorkaround","openUnitsDropDown","input","onLeaveInput","blur","requestSuccess","popupClass","lotPipNumber","convertionHeader","buttonClass","handlePendingOrder","sendPendingOrderEventFunc","isAskActive","marginTop","unitsValue","cancelOrder","shouldBlockButton","Modal","onCallToAction","callToAction","isOutsideClick","currTarget","modalClass","cssClass","internalPeriodToTrade4Pro","CHART_TYPES","trade4ProToInternal","defaultChartOptions","globalChartObj","ChartPanel","trading4ProRef","elementUpdated","activeSymbolId","updateChart","isLight","updateChartStyle","trading4ProChartInstance","setColor","setConfig","internalPeriod","timePeriod","setSymbol","setDisplayName","setChartType","trading4ProCallback","outputArray","timeToUse","chartUp","chartDown","destroy","chartOptions","customChartOptions","T4PChart","setTimezone","setChartInstance","activeSymbolKey","activeSymbolPeriod","addEventHandler","timestampTo","currentSymbol","timestampFromQuery","getOldestBar","getMoreBars","callChartUpdated","subscribeToCandles","Candels","fillRule","clipRule","GraphIcon","LineIcon","AreaIcon","IndicatorsIcon","ClearIcon","ChartDealElemenet","beginEditSl","beginEditTp","deal","addDealToChart","tpValue","slValue","tpDisplay","slDisplay","loss","net","trunc","plt","on","onTPValueUpdated","onTPValueBeginUpdate","onTPValueEndUpdate","onTPClear","onSLValueUpdated","onSLValueBeginUpdate","onSLValueEndUpdate","onSLClear","drop","SinglePositionView","symbolConfig","profitValueSubscription","pubsubSubscription","tickValueSubscription","profitValue","getProfitValue","estimatedProfitSL","estimatedProfitTP","currencySymbol","CenterPanel","centerWidth","setCenterWidth","shouldDisplayRightPanel","initialRightWidth","setIsPopupOpen","isIndicatorsExpanded","setIsIndicatorsExpanded","setIndicator","resizeLayout","widthBody","popupToggle","timeFrames","timeKey","timeValue","timeSelected","setTimeSelected","setPeriodChangedCallback","toggleIndicatorModal","OpenPositionsOnChart","borderImageSource","Tab","activeTab","tabChildComponent","shouldHideName","inactiveColor","Tabs","onClickTabItem","onTabClick","unsetOuterOpenTab","child","outerOpenTab","hideName","tabContentId","shouldHide","FormatProfitSwapCommision","positive","negative","neutral","valueToRender","OrderUpdate","OpenPositionsVirtualCloseRate","closeValue","closeValueData","OpenPositionsVirtualProfit","cellData","OpenPositionsVirtualList","setCloseOrder","handleUnlink","isBottomPanelPinned","linkColor","tableRef","commandError","setCommandError","rowId","editSLValue","editTPValue","editMode","setEditMode","isSocialEnabled","isSocialVisible","LinkColor","showCopiedFrom","positionOrdered","currPosKey","currPos","exitEditMode","enterEditPosition","saveEditData","currState","renderType","renderTime","renderProfit","renderCloseRate","rowData","renderProfitRate","renderStopLoss","rowIndex","renderTakeProfit","renderCloseButton","tradeLink","closeData","orderId","renderCopied","renderEditUpdate","getRowHeight","currRow","recomputeRowHeights","disableHeight","headerHeight","rowGetter","dataKey","cellRenderer","OpenPositions","setShouldCloseOrder","PendingOrdersVirtualList","removePendingCmd","enterDeletePosition","headerStyle","PendingOrders","PreparePNL","shouldFormat","PNL","PositionsVirtualList","positionsToRender","ClosedPositions","getClosedPositionsCopied","handleUpdateOrder","showTotalProfit","totalProfit","ClosePosition","callModalOfClosedOrder","profitBasedOnAmount","OpenPositionsCounter","openPositionsQuantity","UnlinkPopup","handleUnlinkOrder","PendingOrdersCounter","ClosedPositionSuccess","closePrice","closeSuccessOrder","ExpandedPNL","marginLevelData","ClosedPositionsCounter","BottomPanel","initialBottomHeight","setIsBottomPanelPinned","isBottomOpen","setIsBottomOpen","shouldDisplayDrawerPin","closedOrderData","setClosedOrderData","shouldCloseOrder","shouldShow","shouldShowUnlinkPopup","setShoudShowUnlinkPopup","isBottomOpened","bottomPanelClass","followerPositionID","closeUnlinkPopup","closeBottomPanel","isOpen_bool","handleCancelOrderClose","BackdropProps","Logo","logo","DepositIcon","PlusRounded","shouldShowMarginAlert","CalendarIcon","EducationIcon","logout","CalendarFrame","calendarDynamicUrl","setCalendarDynamicUrl","getCalendarUrl","frameBorder","EducationFrame","educationDynamicUrl","setEducationDynamicUrl","getEducationUrl","TopPanelActions","shouldShowTriangle","isMenuExpanded","setIsMenuExpanded","isCalendarExpanded","setIsCalendarExpanded","isEduExpanded","setIsEduExpanded","toggleSettings","toggleCalendar","toggleEducation","DepositButton","shoudOpenCopy","TopPanel","SupportedLanguages","singleton_element","widget","TradingRoomPanel","trading4ProTradingRoomRef","trading4ProTradingRoomContainerRef","scriptElement","widgetHandler","updateLang","activeTheme","updateTheme","detail","logIn","getIdea","idea","directSymbol","applyIdea","convertIdea","replaceAll","setTheme","setLanguage","data-widget","data-options","StarIcon","TopRankedTopItem","positiveColor","openProfile","successRate","SuccessRate","daysFromNow","JoinDateTime","ExplorePageItem","ExplorePageUsersList","topThreeUsers","ExplorePageMostCopied","limit","orderedTopTraders","setOrderedTopTraders","orderedTopThreeTraders","setOrderedTopThreeTraders","getMostCopiedUsers","ExplorePageMostProfitable","getMostProfitableUsers","ExplorePageTopRanked","getTopRankedUsers","ExplorerPageAdvancedSearch","pnlValue","setPnlValue","success","setSuccess","drawDown","setDrawDown","plPercent","successRatePercent","maxDrawDownPercent","ExplorePage","closeExplorePage","setActivateTab","isTopThree","autoCompliteResult","shouldClose","AutoComplite","inputId","inputName","inputClassName","inputPlaceHolder","handleInputChange","resetSearch","setShouldClose","startAdornment","Terms","onConfirm","align","dir","JoinPage","closeJoin","setReloadApp","setAvatar","avatarsList","setAvatarsList","terms","setTerms","selectedName","setSelectedName","getNickname","generatedNickName","joinSocialAction","newName","avatars","rndm","toggleTerms","selectAvatar","GenerateAvatarsList","avatarsToRender","avatarNumber","match","joinButtonClass","TopRankedItem","UsersList","TopRankedList","tradersToDisplay","foundTrader","SpotLight","setUser","reloadUsers","setReloadUsers","reloadUser","randomProperty","STREAM_TYPES","ALL","stream","TOPTRADERS","IWATCH","SocialStream","setStreamType","selectedStreamType","setSelectedStreamType","setRerenderTime","streamItem","SocialsPanel","explorePage","joinPopup","setTrader","requestTradersList","searchString","handleExplorePage","openJoin","tabName","tabName_str","SignalsIcon","SocialsIcon","RightPanel","isSocialsEnabled","isTradingRoom","initActiveTab","setActiveTab","socialStyle","tradeStyle","TradingRoom","MainLayout","setSelectedSymbol","toggleRight","setToggleRight","toggleLeft","setToggleLeft","toggleBottom","setToggleBottom","openProfileModal","setOpenProfileModal","setExplorePage","questionnaire","setInitialLeftWidth","setInitialRightWidth","setInitialBottomHeight","setSymbolChangedCallback","isAutomaticSelect","totalLeftWidth","handleHeightResize","pageHeight","ThemeContextMobile","createContext","allowChangeTheme","isDarkTheme","isLightTheme","handleToggleTheme","hideLogo","lightTheme","darkTheme","ControlsContextMobile","SymbolContextMobile","ProfileContextMobile","PositionContextMobile","THEME","useProviderTheme","currentLogo","useCallback","useProviderControls","openPositionToId","setOpenPositionToId","sectionHeight","setSectionHeight","sectionControls","setHeight","footerRef","footerIsOpen","setFooterIsOpen","footerIsVisible","setFooterIsVisible","footerHeight","setFooterHeight","footerControls","setIsOpen","handleToggle","handleOpen","setTradeIsOpen","setBurgerIsOpen","setTradingChartIsOpen","handleOnVisible","handleOnHide","headerRef","headerControls","burgerRef","burgerIsOpen","burgerOpenWidth","setBurgerOpenWidth","burgerControls","onWidth","toggleIsOpen","tradingChartIsOpen","tradingChartControls","avatarIsOpen","setAvatarIsOpen","avatarControls","tradeIsOpen","tradeIsVisible","setTradeIsVisible","tradeControls","positionControls","openPosition","toId","setToId","closedPosition","useProviderSymbol","allSymbols","setAllSymbols","getAllSymbols","setInitialSymbol","setInitialSymbols","useProviderProfile","isCopied","setIsCopied","profileUserName","setProfileUserName","copiedUser","handleCopiedOpen","handleCopiedClose","handleCopiedSet","profileUser","openProfileUser","closeProfileUser","useProviderPosition","closeOrderData","setCloseOrderData","updateOrderData","setUpdateOrderData","positionClose","handleCloseOpen","handleCloseHide","positionUpdate","handleUpdateOpen","handleUpdateHide","Context","controls","profile","Provider","AVATARS","POSITION_MENU","TIME_SWITCH__POSITION","TIMEFRAMES_CHART_PIE","MAIN_MENU","PROFILE_POSITION_MENU","PROFILE_COMMUNITY_MENU","PROFILE_MENU","PROFILE_COPY","getAvatarImage","getCurrentAvatar","isAvatars","findIndex","STYLES","SIZE","POSITION","TYPE","PROPERTY","VALUE","small","middle","large","border","colorTop","colorRight","zindex","maskDark","maskLight","loaderMobileInit","loaderDesktopInit","useScreenOrientation","useControls","useContext","MobileBurgerButton","MobileHeaderButton","isAlert","isAdd","clsx","defaultProps","MobileMargin","shouldShowDepositButton","useTheme","MobileLogo","handleClickLogo","MobileHeader","handleOpenBurgerMenu","MobileSection","handleSetHeight","heightValue","currentHeight","getHeaderHeight","getFooterHeight","header","footer","useClickOutside","listener","disableClickOnPage","stopImmediatePropagation","disableClick","actionHeight","side","heightOpen","heightClose","burger","widthClose","animationFunc","swipeFooter","yMove","move","createTransition","anim","heightPercent","swipeTrade","swipeProfile","swipeBurger","xMove","getTransformFromMatrix","getCarouselListStyle","useSwiper","touchRef","onStart","onMove","onEnd","handleStart","firstTouch","touches","originalEvent","xDown","clientX","yDown","clientY","xDiff","yDiff","xUp","yUp","css","currentStyle","transformY","transformX","getStyleItem","startData","handleMove","moveData","getTypeMove","passive","handleEnd","endData","getTypeEnd","windowSize","setWindowSize","useProfile","usePosition","MobileSwiper","contentHeight","contentIsOpen","contentHandlers","MobileBurgerMenuHeader","handleAvatarClick","currentAvatar","renderName","hideAvatarIcon","MobileBurgerMenuSection","toggleLanguage","handleLogout","selectedLanguage","MobileTransition","timeout","appear","CSSTransition","modal","fade","loader","default","classNames","mountOnEnter","CreateListener","isStop","refs","MobileButtonClose","createListener","MobileSectionModal","full","backdropRef","MobileLoader","currentType","currentPosition","handleSize","currentSize","loaderChangeWidth","loading","MobileButton","isDisabled","handleButtonClick","renderButton","MobileLanguageSelector","selectedCode","setSelectedCode","getInitCode","MobileBurgerMenu","isMenuLanguage","setIsMenuLanguage","handleBurgerClose","startPercent","endPercent","startColor","endColor","background","MobilePopUp","handleOutsideClick","bottomStyle","getStyles","MobilePopUpHeader","MobileAvatarIcon","handleLoad","img","complete","onLoad","MobileProfileHeader","reference","currentCopiersCount","useProfileUserData","getUserData","requestData","MobileSocialExploreStatisticBlock","MobileProfileStatistics","COLORS_RED","COLORS_YELLOW","COLORS_GREEN","COLORS_BLUE","createChartColors","cIndex","getColorsArray","getColorsIndex","createChartLabel","createChartData","MobileAreaChartTooltip","active","MobileAreaChart","winWidth","winHeight","currentWidth","ComposedChart","stopColor","stopOpacity","Area","baseLine","fillOpacity","deefaultProps","MobileSocialExploreChart","setChartData","fetchDataAsync","dOnly","sep","MobileRiskLevelNew","riskColor","MobileRiskLevelOld","level","componentTitle","titleText","componentBar","MAX_LEVEL","isActiveItem","animationDuration","DURATION","animationDelay","getLevelItemStyle","componentLabel","MobileRiskLevelContainer","isExternal","SwiperCore","use","Pagination","Controller","Thumbs","MobileCarouselMenu","pagination","tabChildComponents","swiperRef","swiper","activeIndex","slideTo","slidesPerView","spaceBetween","wrapperTag","centeredSlides","initialSlide","slideToClickedSlide","onSlideChange","CarouselTabList","classname","renderItems","idx","_ref13","_ref15","_ref16","_ref17","_ref18","_ref19","_ref20","_ref21","_ref22","_ref23","maskUnits","mask","gradientUnits","flags","BCH","cutMethod","CNH","CZK","DKK","EOS","ETC","ETH","HKD","HUF","ILS","LTC","MXN","NOK","PLN","RON","RUB","SEK","SGD","TRY","XLM","XMR","XRP","ZAR","AUD","CAD","CHF","EUR","GBP","JPY","NZD","USD","BTC","DASH","Default","MobileSymbolIcon","symbolIcon","singleFlagData","singleFlag","leftFlagData","rightFlagData","leftViewBox","leftFlag","rightViewBox","rightFlag","defaultFlagData","defaultFlag","getSymbolFlag","MobileProfileStreamItem","symbolSettings","flagSettings","currentAction","currentPnl","MobileNothingFound","MobileProfileStream","MobileChartSwitch","useForceUpdate","MobileAutosizer","maxHeight","currentItem","scrollToIndex","positionType","onScroll","listRef","sizerRef","propsDep","currentRef","currentRowHeight","minH","maxH","currentRowCount","currentOversSanRowCount","currentScrollToIndex","handleRemoveItem","forceUpdateGrid","forceUpdate","handleOnScroll","currentRenderRow","removeRow","scrollToRow","noRowsRenderer","renderTypeMulti","getRenderColumn","columns","getCurrentPositionsAll","positionsArray","getPositionArrayFromObj","MobileProfilePositionItemOpen","itemType","currentRate","types","inactive","heads","MobileProfilePositionItemHead","onActive","renderHeadList","typesHead","sortClass","isUp","sortArray","sortUp","sortDown","SORT_TYPE","sortOpenTime","sortOpenRate","sortInstrument","sortAction","sortPnl","initialSort","MobileProfilePositionOpen","sortData","setSortData","handleFilterClick","sortedOptions","sortProfilePosition","MobileProfilePositions","setPositions","handleTimeChange","MobilePieChartLabel","midAngle","outerRadius","RADIAN","sx","sy","mx","my","ey","dominantBaseline","MobilePieChartLabelActive","innerRadius","Sector","MobilePieChart","setActiveIndex","onPieClick","_","renderLabel","renderLabelActive","opt","ResponsiveContainer","Pie","activeShape","entry","Cell","usePortfolioData","portfolioData","setPortfolioData","MobileProfilePortfolio","useCommunityFetch","err","MobileProfileCommunityItem","MobileProfileCommunityList","MobileProfileCommunityWrapper","MobileProfileCommunity","MobileProfileButtonBlock","onWatch","isLoadingWatch","setIsLoadingWatch","isLoadingCopy","alreadyWatched","watchBtnTitle","copyBtnTitle","handleClickWatch","handleClickCopy","MobileProfileMain","handleOpenWatchModal","isCurrentUserProfile","carouselTab","setCarouselTab","isExternalQuestionnaire","MobileProfileCopySuccess","handleCloseClick","MobileTab","MobileButtonLink","blank","setPlaceholder","MobileProfileCopyCurrency","scrollable","handleSetInstruments","renderAllInstrument","renderInstruments","currencyList","MobileInputStepper","inputmode","buttonStyle","inputMode","MobileProfileCopyMain","handleClickTab","optionsTab","hideFixed","getProfileCopyOptions","currentDesc","disableButton","buttonTitle","uncopyText","handleCopy","handleChangeEquity","handleChangeLotAmount","handleCurrencyChange","createUserData","copyDataFetch","MobileProfileCopyUncopy","onAction","handleSuccess","MobileCopyBlockDisclaimer","MobileProfileCopy","copyStatus","setCopyStatus","uncopyModal","setUncopyModal","handleStatusClose","handleRequestSuccess","handleRequestError","handleUncopyOpen","handleUncopyClose","useDetailedProfileUserData","userDetailProfile","setUserDetailProfile","getExternalRiskData","MobileWatchModal","onSuccess","modalRef","handleButtonOk","handleButtonCopy","MobileProfile","currentUser","watchModalName","setWatchModalName","handleCloseWatchModal","handleOpenProfile","userProfil","MobileFooterHeaderData","MobileFooterHeader","arrayLength","CounterOpenPosition","CounterPendingOrders","CounterClosedPosition","MobileOpenPositionHead","propType","PropTypes","MobileButtonIcon","renderIcon","typeClass","typeStyle","MobileClosedPositionActiveRow","MobileClosedPositionActiveBlock","MobileClosedPositionActive","closeTime","MobileSlidePosition","isSlide","threshold","rowRef","maxScroll","handleSwipeLeft","handleSwipeRight","handleSwipe","startX","endX","changedTouches","onTouchStart","MobileOpenPositionItem","deleteOrderData","handleOpenRow","currentCloseTradeLink","shouldCopiedUser","shouldCopiedUnlink","handleDeletePositionClick","handleRowClick","handleUpdatePosition","nick","renderActiveItem","currentMinHeight","currentMaxHeight","currentActiveBlockHeight","actionTypeColorsClass","isSlideRow","MobileOpenPosition","renderColumns","MobileModal","MobilePendingOrders","deleteDate","setDeleteData","handleSetUpdateOrderData","handleDeleteOrderData","handleDeleteConfirmClose","handleButtonConfirm","updateOrderDate","MobileModalError","subtitle","MobileClosedPosition","setCurrentItem","setClosedPosition","requestError","setRequestError","setShowTotalProfit","setTotalProfit","off","links","handleGetCloseLinks","commandObject","handleGetClosePosition","message","sortPosition","handleTotalProfit","MobileSocialWatchItem","handleUnwatch","IsCopyAllowed","getCopiers","handleClickOpen","handleClickUnwatch","MobileSocialWatch","MobileSocialWatchPage","MobileButtonRow","MobileSocialCopyItem","handleClickUncopy","MobileSocialCopy","MobileSocialCopyPage","MobileFooterSection","carouselCounter","counterChildren","carouselList","listChildren","startTabPosition","positionIndex","carouseTab","MobileFooterOld","MobileMarginAlert","MobileTradeAddButton","isVisibleButton","Virtual","MobileCarouselAvatar","lazy","virtual","clickable","dynamicBullets","virtualIndex","MobileChangeAvatar","setCurrentAvatar","handleChangeAvatar","avatarName","handleUpdateClick","avatarUrl","isVisibleAvatars","MobileClosePositionHeader","MobileModalSuccess","maskNumericalInput","MobileClosePositionMain","responseErrorData","setResponseErrorData","responseSuccessData","setResponseSuccessData","handleValueChange","handleCloseOrder","handleCloseError","handleOnCloseOrderPopup","buttonText","renderAction","currentProfit","MobileClosePosition","MobileUpdatePositionHeader","MobileUpdatePositionBlock","double","MobileUpdatePositionInput","shouldClear","handleClear","MobileUpdatePositionMain","handleOnClose","handleUnlinkOpen","handleChangeTakeProfit","isUpdate","handleChangeInput","handleOnCloseOrder","handleOnUpdateOrder","currentTakeProfit","currentSwap","currentCommission","isCopiedForm","MobileUpdatePosition","unlinkId","setUnlinkId","setIsUpdate","timeToShowBtn","unlinkModal","handleUnlinkConfirm","useSymbol","MobileCarouselSymbolTick","MobileCarouselSymbol","MobileTradingChartPosition","isEmpty","MobileCarouselSwitch","MobileTradingChart","handleChangeSymbol","symbolValue","chartHeight","handleUpdateChartStyle","MobileTradeHeader","MobileOrderSwitch","setTypes","handleUnitsSelect","MobileTradeUnitsUp","MobileTradeDown","MobileTradeProcessing","MobileTradeSuccess","currentTitle","MobileTradeError","MobileTradeScrollable","MobileTradeDescription","MobileTradeTwo","focusPendingOrder","setPendingPrice","MobileTradeSection","focusPending","setFocusPending","setRequestSuccess","isOpenProcessing","onChangeSwitch","handleSetPendingPrice","isFocus","MobileTrade","MobileTradingChartPage","handleTradeClose","MobileSwipeRowClass","swiping","leftActionBoxWidth","leftActionBoxVisibility","rightActionBoxWidth","rightActionBoxVisibility","handleTouchStart","handleTouchMove","handleTouchEnd","leftActionBox","rightActionBox","isClose","doClose","doUpdateContentOffset","targetTouches","getPosition","absX","absY","deltaThreshold","disableSwipeLeft","disableSwipeRight","calculateMovingDistance","contentPosition","onTouchMove","switchThreshold","flickThreshold","newOffset","onTouchEnd","buttons","leftButtons","rightButtons","transitionFunc","disableParallax","disableExpand","transitionStyle","zIndex","onTransitionEnd","visibility","flexDirection","wrapParallaxActions","MobileSwipeRow","func","bool","oneOfType","oneOf","MobileTradingAllItem","handleBackClick","handleIndex","MobileInputSearch","handleOnChange","MobileTradingAllActionBlock","onChangeSearch","onChangeGroup","groupsTab","setGroupsTab","handleGroupChange","rates","MobileTradingAll","handleBack","isActionBar","setIsActionBar","scrollIndex","setScrollIndex","scrollToTop","handleSetIndex","handleScroll","handleItemClick","findOrderedSymbols","searchSymbolValue","MobileTradingAllPage","handleBackTab","setSymbolGroup","trim","symbolObj","MobileSocialExploreItemDraw","handleToggleIsOpen","MobileSocialExploreItem","MobileSocialExplore","editItemIndex","setEditItemItem","handleItem","useStreamConnect","tradersIWatch","tradersWatchList","tradersAllList","tradersTopList","tradersAll","tradersTop","useTopRankedData","setTopTraders","getTraders","MobileSocialExplorePage","MobileSignalsPage","MobilePullToRefresh","isNotLoggedIn","handleOnRefresh","reload","shouldRenderLoginPage","bgColor","pullDownContent","releaseContent","refreshContent","onRefresh","pullDownThreshold","triggerHeight","startInvisible","PullDownContent","ReleaseContent","RefreshContent","MobileApp","enableSignals","socialIsVisible","signalsEnabled","menu","getMainMenu","handleSwitchTab","MainApp","initResponseIsSuccessful","setInitResponseIsSuccessful","errCode","errText","initError","setInitError","stateStatus","shouldShowMobile","isMobile","initApp","ticksReady","registerHandler","createStore","__REDUX_DEVTOOLS_EXTENSION__","initReactI18next","lng","resources","trans","fallbackLng","react","transSupportBasicHtmlNodes","interpolation","escapeValue","changeLanguage","translationListener","brandListener","profitCalculationListener","RenewSessionService","socialV1Listener","websocketListener","googleAnalyticsListener","luckyOrangeListener","fullStoryListener","themeListener","searchParams","URLSearchParams","search","ss","newRelativePathQuery","pathname","replaceState","App","Boolean","hostname","ReactDOM","navigator","serviceWorker","ready","registration","unregister"],"mappings":"8mqIAAAA,EAAOC,QAAU,IAA0B,2C,oBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,iUCA3C,IAAIC,EAAM,CACT,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,kBAAmB,IACnB,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,cAAe,IACf,WAAY,IACZ,gBAAiB,IACjB,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,sBAAuB,IACvB,YAAa,IACb,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,iBAAkB,IAClB,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,cAAe,IACf,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,IACZ,WAAY,KAIb,SAASC,EAAeC,GACvB,IAAIC,EAAKC,EAAsBF,GAC/B,OAAOG,EAAoBF,GAE5B,SAASC,EAAsBF,GAC9B,IAAIG,EAAoBC,EAAEN,EAAKE,GAAM,CACpC,IAAIK,EAAI,IAAIC,MAAM,uBAAyBN,EAAM,KAEjD,MADAK,EAAEE,KAAO,mBACHF,EAEP,OAAOP,EAAIE,GAEZD,EAAeS,KAAO,WACrB,OAAOC,OAAOD,KAAKV,IAEpBC,EAAeW,QAAUR,EACzBN,EAAOC,QAAUE,EACjBA,EAAeE,GAAK,K,cCvRpBL,EAAOC,QAAU,s3B,cCAjBD,EAAOC,QAAU,0jB,cCAjBD,EAAOC,QAAU,k0B,cCAjBD,EAAOC,QAAU,8yB,cCAjBD,EAAOC,QAAU,s3B,cCAjBD,EAAOC,QAAU,0zB,cCAjBD,EAAOC,QAAU,krB,cCAjBD,EAAOC,QAAU,sqB,cCAjBD,EAAOC,QAAU,slB,cCAjBD,EAAOC,QAAU,8rB,cCAjBD,EAAOC,QAAU,03B,cCAjBD,EAAOC,QAAU,sjB,cCAjBD,EAAOC,QAAU,85B,cCAjBD,EAAOC,QAAU,stB,cCAjBD,EAAOC,QAAU,84B,cCAjBD,EAAOC,QAAU,8yB,cCAjBD,EAAOC,QAAU,kzB,cCAjBD,EAAOC,QAAU,syB,cCAjBD,EAAOC,QAAU,0rB,cCAjBD,EAAOC,QAAU,knB,cCAjBD,EAAOC,QAAU,krB,cCAjBD,EAAOC,QAAU,koB,cCAjBD,EAAOC,QAAU,8nB,cCAjBD,EAAOC,QAAU,85B,cCAjBD,EAAOC,QAAU,kqB,cCAjBD,EAAOC,QAAU,00B,cCAjBD,EAAOC,QAAU,82B,cCAjBD,EAAOC,QAAU,srB,cCAjBD,EAAOC,QAAU,kzB,cCAjBD,EAAOC,QAAU,0tB,cCAjBD,EAAOC,QAAU,s2B,cCAjBD,EAAOC,QAAU,ssB,cCAjBD,EAAOC,QAAU,0mB,cCAjBD,EAAOC,QAAU,0sB,cCAjBD,EAAOC,QAAU,0zB,cCAjBD,EAAOC,QAAU,k2B,cCAjBD,EAAOC,QAAU,8iB,cCAjBD,EAAOC,QAAU,81B,cCAjBD,EAAOC,QAAU,0tB,cCAjBD,EAAOC,QAAU,80B,cCAjBD,EAAOC,QAAU,ktB,cCAjBD,EAAOC,QAAU,sgB,cCAjBD,EAAOC,QAAU,snB,cCAjBD,EAAOC,QAAU,0yB,cCAjBD,EAAOC,QAAU,knB,cCAjBD,EAAOC,QAAU,stB,cCAjBD,EAAOC,QAAU,kpB,cCAjBD,EAAOC,QAAU,8pB,cCAjBD,EAAOC,QAAU,spB,cCAjBD,EAAOC,QAAU,smB,cCAjBD,EAAOC,QAAU,0wB,cCAjBD,EAAOC,QAAU,8tB,cCAjBD,EAAOC,QAAU,s0B,cCAjBD,EAAOC,QAAU,slB,cCAjBD,EAAOC,QAAU,spB,cCAjBD,EAAOC,QAAU,kvB,cCAjBD,EAAOC,QAAU,sxB,cCAjBD,EAAOC,QAAU,8qB,cCAjBD,EAAOC,QAAU,s1B,cCAjBD,EAAOC,QAAU,ksB,cCAjBD,EAAOC,QAAU,kyB,cCAjBD,EAAOC,QAAU,srB,cCAjBD,EAAOC,QAAU,slB,cCAjBD,EAAOC,QAAU,soB,cCAjBD,EAAOC,QAAU,ksB,cCAjBD,EAAOC,QAAU,s0B,cCAjBD,EAAOC,QAAU,0zB,cCAjBD,EAAOC,QAAU,krB,cCAjBD,EAAOC,QAAU,k4B,cCAjBD,EAAOC,QAAU,8oB,cCAjBD,EAAOC,QAAU,kzB,cCAjBD,EAAOC,QAAU,szB,cCAjBD,EAAOC,QAAU,0pB,cCAjBD,EAAOC,QAAU,kuB,cCAjBD,EAAOC,QAAU,sqB,cCAjBD,EAAOC,QAAU,00B,cCAjBD,EAAOC,QAAU,03B,cCAjBD,EAAOC,QAAU,0vB,cCAjBD,EAAOC,QAAU,kpB,cCAjBD,EAAOC,QAAU,kvB,cCAjBD,EAAOC,QAAU,sqB,cCAjBD,EAAOC,QAAU,0zB,cCAjBD,EAAOC,QAAU,82B,cCAjBD,EAAOC,QAAU,kzB,cCAjBD,EAAOC,QAAU,kvB,cCAjBD,EAAOC,QAAU,0qB,cCAjBD,EAAOC,QAAU,soB,cCAjBD,EAAOC,QAAU,8oB,cCAjBD,EAAOC,QAAU,8qB,cCAjBD,EAAOC,QAAU,0pB,cCAjBD,EAAOC,QAAU,sqB,cCAjBD,EAAOC,QAAU,suB,cCAjBD,EAAOC,QAAU,sqB,cCAjBD,EAAOC,QAAU,k2B,cCAjBD,EAAOC,QAAU,8qB,cCAjBD,EAAOC,QAAU,ksB,cCAjBD,EAAOC,QAAU,0sB,cCAjBD,EAAOC,QAAU,s3B,cCAjBD,EAAOC,QAAU,0iB,cCAjBD,EAAOC,QAAU,kkB,cCAjBD,EAAOC,QAAU,0tB,cCAjBD,EAAOC,QAAU,85B,cCAjBD,EAAOC,QAAU,suB,cCAjBD,EAAOC,QAAU,stB,cCAjBD,EAAOC,QAAU,sqB,cCAjBD,EAAOC,QAAU,0lB,cCAjBD,EAAOC,QAAU,0lB,cCAjBD,EAAOC,QAAU,8pB,cCAjBD,EAAOC,QAAU,szB,cCAjBD,EAAOC,QAAU,0rB,cCAjBD,EAAOC,QAAU,04B,cCAjBD,EAAOC,QAAU,0sB,cCAjBD,EAAOC,QAAU,ssB,cCAjBD,EAAOC,QAAU,kuB,cCAjBD,EAAOC,QAAU,0kB,cCAjBD,EAAOC,QAAU,kiB,cCAjBD,EAAOC,QAAU,82B,cCAjBD,EAAOC,QAAU,kpB,cCAjBD,EAAOC,QAAU,0kB,cCAjBD,EAAOC,QAAU,kxB,cCAjBD,EAAOC,QAAU,ksB,cCAjBD,EAAOC,QAAU,svB,cCAjBD,EAAOC,QAAU,s4B,cCAjBD,EAAOC,QAAU,8xB,cCAjBD,EAAOC,QAAU,k0B,cCAjBD,EAAOC,QAAU,swB,cCAjBD,EAAOC,QAAU,kzB,cCAjBD,EAAOC,QAAU,kqB,cCAjBD,EAAOC,QAAU,s3B,cCAjBD,EAAOC,QAAU,k1B,cCAjBD,EAAOC,QAAU,0wB,cCAjBD,EAAOC,QAAU,8sB,cCAjBD,EAAOC,QAAU,ktB,cCAjBD,EAAOC,QAAU,suB,cCAjBD,EAAOC,QAAU,81B,cCAjBD,EAAOC,QAAU,0oB,cCAjBD,EAAOC,QAAU,k2B,cCAjBD,EAAOC,QAAU,ksB,cCAjBD,EAAOC,QAAU,8pB,cCAjBD,EAAOC,QAAU,soB,cCAjBD,EAAOC,QAAU,0kB,cCAjBD,EAAOC,QAAU,0lB,cCAjBD,EAAOC,QAAU,shB,cCAjBD,EAAOC,QAAU,8wB,cCAjBD,EAAOC,QAAU,knB,cCAjBD,EAAOC,QAAU,snB,cCAjBD,EAAOC,QAAU,k2B,cCAjBD,EAAOC,QAAU,k5B,cCAjBD,EAAOC,QAAU,kpB,cCAjBD,EAAOC,QAAU,8vB,cCAjBD,EAAOC,QAAU,0qB,cCAjBD,EAAOC,QAAU,0yB,cCAjBD,EAAOC,QAAU,szB,cCAjBD,EAAOC,QAAU,s4B,cCAjBD,EAAOC,QAAU,kxB,cCAjBD,EAAOC,QAAU,80B,cCAjBD,EAAOC,QAAU,0kB,cCAjBD,EAAOC,QAAU,krB,cCAjBD,EAAOC,QAAU,8uB,cCAjBD,EAAOC,QAAU,8tB,cCAjBD,EAAOC,QAAU,0xB,cCAjBD,EAAOC,QAAU,sxB,cCAjBD,EAAOC,QAAU,syB,cCAjBD,EAAOC,QAAU,03B,cCAjBD,EAAOC,QAAU,8yB,cCAjBD,EAAOC,QAAU,suB,cCAjBD,EAAOC,QAAU,8zB,cCAjBD,EAAOC,QAAU,8pB,cCAjBD,EAAOC,QAAU,ksB,cCAjBD,EAAOC,QAAU,snB,cCAjBD,EAAOC,QAAU,ssB,cCAjBD,EAAOC,QAAU,0mB,cCAjBD,EAAOC,QAAU,0tB,cCAjBD,EAAOC,QAAU,sxB,cCAjBD,EAAOC,QAAU,82B,cCAjBD,EAAOC,QAAU,0pB,cCAjBD,EAAOC,QAAU,8sB,cCAjBD,EAAOC,QAAU,8iB,cCAjBD,EAAOC,QAAU,krB,cCAjBD,EAAOC,QAAU,kzB,cCAjBD,EAAOC,QAAU,0uB,cCAjBD,EAAOC,QAAU,kxB,cCAjBD,EAAOC,QAAU,8gB,cCAjBD,EAAOC,QAAU,k7B,cCAjBD,EAAOC,QAAU,s4B,cCAjBD,EAAOC,QAAU,kwB,cCAjBD,EAAOC,QAAU,kpB,cCAjBD,EAAOC,QAAU,8vB,cCAjBD,EAAOC,QAAU,0vB,cCAjBD,EAAOC,QAAU,kpB,cCAjBD,EAAOC,QAAU,knB,cCAjBD,EAAOC,QAAU,kvB,cCAjBD,EAAOC,QAAU,svI,cCAjBD,EAAOC,QAAU,8qB,cCAjBD,EAAOC,QAAU,8kB,cCAjBD,EAAOC,QAAU,0kB,cCAjBD,EAAOC,QAAU,kuB,cCAjBD,EAAOC,QAAU,0vB,cCAjBD,EAAOC,QAAU,01B,cCAjBD,EAAOC,QAAU,s0B,cCAjBD,EAAOC,QAAU,83B,cCAjBD,EAAOC,QAAU,0qB,cCAjBD,EAAOC,QAAU,8uB,cCAjBD,EAAOC,QAAU,0oB,cCAjBD,EAAOC,QAAU,s3B,cCAjBD,EAAOC,QAAU,ksB,cCAjBD,EAAOC,QAAU,ssB,cCAjBD,EAAOC,QAAU,0wB,cCAjBD,EAAOC,QAAU,kmB,cCAjBD,EAAOC,QAAU,0rB,cCAjBD,EAAOC,QAAU,kuB,cCAjBD,EAAOC,QAAU,0tB,cCAjBD,EAAOC,QAAU,ssB,cCAjBD,EAAOC,QAAU,syB,cCAjBD,EAAOC,QAAU,srB,cCAjBD,EAAOC,QAAU,8kB,cCAjBD,EAAOC,QAAU,s3B,cCAjBD,EAAO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qF,gBAAmB0lD,EAAoCsD,EAAiBhpD,gBAAvCipD,GA8BpD/pD,IAAKqqD,GAEL,qCACA,6BAAM3gD,MC/ChB4gD,GAAmB,CACrB,KACA,IACA,GACA,KACA,IACA,KACA,GACA,KACA,IACA,KACA,GACA,KACA,IACA,KACA,GACA,KACA,IACA,KACA,GACA,KACA,IACA,KACA,GACA,KACA,IACA,KACA,GACA,KACA,IACA,KACA,GACA,KACA,IACA,KACA,GACA,KACA,IACA,KACA,EACA,KACA,IACA,KACA,IACA,MACA,KACA,MACA,IACA,MACA,KACA,MACA,IACA,KACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KA8FWxlD,OAlEO,SAAC,GAEhB,IADHylD,EACE,EADFA,YAAkCtd,GAChC,EADWud,oBACX,EADgCvd,eAAethE,EAC/C,EAD+CA,aAAcuhE,EAC7D,EAD6DA,UAAW0X,EACxE,EADwEA,QAAS4B,EACjF,EADiFA,YAAaiE,EAC9F,EAD8FA,UAAWz8C,EACzG,EADyGA,eAAgB6hC,EACzH,EADyHA,QAASnoE,EAClI,EADkIA,SAAUw9B,EAC5I,EAD4IA,YAC5I,EAC8Cr0B,mBAAS,MADvD,mBACK65E,EADL,KACuBC,EADvB,KAEI7c,EAA+C,kBAAlBb,EAA6BA,EAAc3yC,QAAQ,YAAa,IAAM2yC,EACnG3lE,EAAOk/E,EAAc3B,GAAYC,IAAMD,GAAY+F,IACjDv3E,EAAMmtB,eAANntB,EASRtC,qBAAU,WACN45E,EAzCiB,SAACE,EAAc3d,EAAW0X,EAAS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MkI,EAAY2/C,GAAYC,OAExC,uBAAG7nD,UAAU,mCAAb,QACA,uBAAGA,UAAU,mCAAmCwM,KAGlD,yBACExM,UAAWw1E,aAAK,+BACd+T,IAAU3hC,GAAYC,KAAO,aCxDxBwF,GAAmB,CAC/B,KACA,IACA,GACA,KACA,IACA,KACA,GACA,KACA,IACA,KACA,GACA,KACA,IACA,KACA,GACA,KACA,IACA,KACA,GACA,KACA,IACA,KACA,GACA,KACA,IACA,KACA,GACA,KACA,IACA,KACA,GACA,KACA,IACA,KACA,GACA,KACA,IACA,KACA,EACA,KACA,IACA,KACA,IACA,MACA,KACA,MACA,IACA,MACA,KACA,MACA,IACA,KACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KCrGYkE,ICuIE1pD,IAjHkB,SAAAjJ,GAAU,IAGzC0uD,EAYG1uD,EAZH0uD,YAEAtd,GAUGpxC,EAXH2uD,oBAWG3uD,EAVHoxC,eACAthE,EASGkwB,EATHlwB,aACAuhE,EAQGrxC,EARHqxC,UACA0X,EAOG/oD,EAPH+oD,QACA4B,EAMG3qD,EANH2qD,YACAiE,EAKG5uD,EALH4uD,UACAz8C,EAIGnS,EAJHmS,eACA6hC,EAGGh0C,EAHHg0C,QACAnoE,EAEGm0B,EAFHn0B,SACAw9B,EACGrJ,EADHqJ,YAGM7xB,EAAKmtB,eAALntB,EAjBkC,EAmBOxC,mBAAS,MAnBhB,mBAmBlC65E,EAnBkC,KAmBhBC,EAnBgB,KAqBnC7c,EAAsB+I,mBAAQ,WACnC,MAAgC,kBAAlB5J,EACVA,EAAc3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","file":"static/js/main.98cfc1da.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/questionGraph.591cfd75.png\";","module.exports = __webpack_public_path__ + \"static/media/defaultAvatar1.9dd2b09b.svg\";","module.exports = __webpack_public_path__ + \"static/media/defaultAvatar2.42089799.svg\";","module.exports = __webpack_public_path__ + \"static/media/defaultAvatar3.f09c7391.svg\";","module.exports = __webpack_public_path__ + \"static/media/defaultAvatar4.d4c2aa00.svg\";","module.exports = __webpack_public_path__ + \"static/media/defaultAvatar5.b43567a2.svg\";","module.exports = __webpack_public_path__ + \"static/media/defaultAvatar6.7f07039d.svg\";","module.exports = __webpack_public_path__ + \"static/media/defaultAvatar7.7f4e029b.svg\";","module.exports = __webpack_public_path__ + \"static/media/defaultAvatar8.f24efb27.svg\";","module.exports = __webpack_public_path__ + \"static/media/defaultAvatar9.5b337f4f.svg\";","module.exports = __webpack_public_path__ + \"static/media/defaultAvatar10.bcb530a6.svg\";","module.exports = __webpack_public_path__ + \"static/media/defaultAvatar12.b15ca057.svg\";","module.exports = __webpack_public_path__ + \"static/media/defaultAvatar14.23944b8c.svg\";","module.exports = __webpack_public_path__ + \"static/media/defaultAvatar16.6ba4cd33.svg\";","module.exports = __webpack_public_path__ + \"static/media/defaultAvatar19.fd085e89.svg\";","module.exports = __webpack_public_path__ + \"static/media/defaultAvatar20.3ca1e3f0.svg\";","module.exports = __webpack_public_path__ + \"static/media/defaultAvatar21.e20582c4.svg\";","module.exports = __webpack_public_path__ + \"static/media/defaultAvatar22.18a3dba0.svg\";","module.exports = __webpack_public_path__ + \"static/media/defaultAvatar23.1db9297a.svg\";","module.exports = __webpack_public_path__ + \"static/media/defaultAvatar24.ccc7a049.svg\";","module.exports = __webpack_public_path__ + \"static/media/defaultAvatar25.f385c038.svg\";","module.exports = __webpack_public_path__ + \"static/media/defaultAvatar26.829a81d8.svg\";","module.exports = __webpack_public_path__ + \"static/media/defaultAvatar27.b85d225b.svg\";","module.exports = __webpack_public_path__ + \"static/media/defaultAvatar28.67595915.svg\";","module.exports = __webpack_public_path__ + \"static/media/defaultAvatar29.8dc59511.svg\";","var map = {\n\t\"./ad.png\": 440,\n\t\"./ae.png\": 441,\n\t\"./af.png\": 442,\n\t\"./ag.png\": 443,\n\t\"./ai.png\": 444,\n\t\"./al.png\": 445,\n\t\"./am.png\": 446,\n\t\"./an.png\": 447,\n\t\"./ao.png\": 448,\n\t\"./ar.png\": 449,\n\t\"./as.png\": 450,\n\t\"./at.png\": 451,\n\t\"./au.png\": 452,\n\t\"./aw.png\": 453,\n\t\"./ax.png\": 454,\n\t\"./az.png\": 455,\n\t\"./ba.png\": 456,\n\t\"./bb.png\": 457,\n\t\"./bd.png\": 458,\n\t\"./be.png\": 459,\n\t\"./bf.png\": 460,\n\t\"./bg.png\": 461,\n\t\"./bh.png\": 462,\n\t\"./bi.png\": 463,\n\t\"./bj.png\": 464,\n\t\"./bm.png\": 465,\n\t\"./bn.png\": 466,\n\t\"./bo.png\": 467,\n\t\"./br.png\": 468,\n\t\"./bs.png\": 469,\n\t\"./bt.png\": 470,\n\t\"./bv.png\": 471,\n\t\"./bw.png\": 472,\n\t\"./by.png\": 473,\n\t\"./bz.png\": 474,\n\t\"./ca.png\": 475,\n\t\"./catalonia.png\": 476,\n\t\"./cc.png\": 477,\n\t\"./cd.png\": 478,\n\t\"./cf.png\": 479,\n\t\"./cg.png\": 480,\n\t\"./ch.png\": 481,\n\t\"./ci.png\": 482,\n\t\"./ck.png\": 483,\n\t\"./cl.png\": 484,\n\t\"./cm.png\": 485,\n\t\"./cn.png\": 486,\n\t\"./co.png\": 487,\n\t\"./cr.png\": 488,\n\t\"./cs.png\": 489,\n\t\"./cu.png\": 490,\n\t\"./cv.png\": 491,\n\t\"./cx.png\": 492,\n\t\"./cy.png\": 493,\n\t\"./cz.png\": 494,\n\t\"./de.png\": 495,\n\t\"./dj.png\": 496,\n\t\"./dk.png\": 497,\n\t\"./dm.png\": 498,\n\t\"./do.png\": 499,\n\t\"./dz.png\": 500,\n\t\"./ec.png\": 501,\n\t\"./ee.png\": 502,\n\t\"./eg.png\": 503,\n\t\"./eh.png\": 504,\n\t\"./en-us.png\": 505,\n\t\"./en.png\": 506,\n\t\"./england.png\": 507,\n\t\"./er.png\": 508,\n\t\"./es.png\": 509,\n\t\"./et.png\": 510,\n\t\"./eu.png\": 511,\n\t\"./europeanunion.png\": 512,\n\t\"./fam.png\": 513,\n\t\"./fi.png\": 514,\n\t\"./fj.png\": 515,\n\t\"./fk.png\": 516,\n\t\"./fm.png\": 517,\n\t\"./fo.png\": 518,\n\t\"./fr.png\": 519,\n\t\"./ga.png\": 520,\n\t\"./gb.png\": 521,\n\t\"./gd.png\": 522,\n\t\"./ge.png\": 523,\n\t\"./gf.png\": 524,\n\t\"./gh.png\": 525,\n\t\"./gi.png\": 526,\n\t\"./gl.png\": 527,\n\t\"./gm.png\": 528,\n\t\"./gn.png\": 529,\n\t\"./gp.png\": 530,\n\t\"./gq.png\": 531,\n\t\"./gr.png\": 532,\n\t\"./gs.png\": 533,\n\t\"./gt.png\": 534,\n\t\"./gu.png\": 535,\n\t\"./gw.png\": 536,\n\t\"./gy.png\": 537,\n\t\"./he.png\": 538,\n\t\"./hi.png\": 539,\n\t\"./hk.png\": 540,\n\t\"./hm.png\": 541,\n\t\"./hn.png\": 542,\n\t\"./hr.png\": 543,\n\t\"./ht.png\": 544,\n\t\"./hu.png\": 545,\n\t\"./id.png\": 546,\n\t\"./ie.png\": 547,\n\t\"./il.png\": 548,\n\t\"./in.png\": 549,\n\t\"./io.png\": 550,\n\t\"./iq.png\": 551,\n\t\"./ir.png\": 552,\n\t\"./is.png\": 553,\n\t\"./it.png\": 554,\n\t\"./ja.png\": 555,\n\t\"./jm.png\": 556,\n\t\"./jo.png\": 557,\n\t\"./jp.png\": 558,\n\t\"./ke.png\": 559,\n\t\"./kg.png\": 560,\n\t\"./kh.png\": 561,\n\t\"./ki.png\": 562,\n\t\"./km.png\": 563,\n\t\"./kn.png\": 564,\n\t\"./kp.png\": 565,\n\t\"./kr.png\": 566,\n\t\"./kw.png\": 567,\n\t\"./ky.png\": 568,\n\t\"./kz.png\": 569,\n\t\"./la.png\": 570,\n\t\"./lb.png\": 571,\n\t\"./lc.png\": 572,\n\t\"./li.png\": 573,\n\t\"./lk.png\": 574,\n\t\"./lr.png\": 575,\n\t\"./ls.png\": 576,\n\t\"./lt.png\": 577,\n\t\"./lu.png\": 578,\n\t\"./lv.png\": 579,\n\t\"./ly.png\": 580,\n\t\"./ma.png\": 581,\n\t\"./mc.png\": 582,\n\t\"./md.png\": 583,\n\t\"./me.png\": 584,\n\t\"./mg.png\": 585,\n\t\"./mh.png\": 586,\n\t\"./mk.png\": 587,\n\t\"./ml.png\": 588,\n\t\"./mm.png\": 589,\n\t\"./mn.png\": 590,\n\t\"./mo.png\": 591,\n\t\"./mp.png\": 592,\n\t\"./mq.png\": 593,\n\t\"./mr.png\": 594,\n\t\"./ms.png\": 595,\n\t\"./mt.png\": 596,\n\t\"./mu.png\": 597,\n\t\"./mv.png\": 598,\n\t\"./mw.png\": 599,\n\t\"./mx.png\": 600,\n\t\"./my.png\": 601,\n\t\"./mz.png\": 602,\n\t\"./na.png\": 603,\n\t\"./nc.png\": 604,\n\t\"./ne.png\": 605,\n\t\"./nf.png\": 606,\n\t\"./ng.png\": 607,\n\t\"./ni.png\": 608,\n\t\"./nl.png\": 609,\n\t\"./no.png\": 610,\n\t\"./np.png\": 611,\n\t\"./nr.png\": 612,\n\t\"./nu.png\": 613,\n\t\"./nz.png\": 614,\n\t\"./om.png\": 615,\n\t\"./pa.png\": 616,\n\t\"./pe.png\": 617,\n\t\"./pf.png\": 618,\n\t\"./pg.png\": 619,\n\t\"./ph.png\": 620,\n\t\"./pk.png\": 621,\n\t\"./pl.png\": 622,\n\t\"./pm.png\": 623,\n\t\"./pn.png\": 624,\n\t\"./pr.png\": 625,\n\t\"./ps.png\": 626,\n\t\"./pt.png\": 627,\n\t\"./pw.png\": 628,\n\t\"./py.png\": 629,\n\t\"./qa.png\": 630,\n\t\"./re.png\": 631,\n\t\"./rl.png\": 632,\n\t\"./ro.png\": 633,\n\t\"./rs.png\": 634,\n\t\"./ru.png\": 635,\n\t\"./rw.png\": 636,\n\t\"./sa.png\": 637,\n\t\"./sb.png\": 638,\n\t\"./sc.png\": 639,\n\t\"./scotland.png\": 640,\n\t\"./sd.png\": 641,\n\t\"./se.png\": 642,\n\t\"./sg.png\": 643,\n\t\"./sh.png\": 644,\n\t\"./si.png\": 645,\n\t\"./sj.png\": 646,\n\t\"./sk.png\": 647,\n\t\"./sl.png\": 648,\n\t\"./sm.png\": 649,\n\t\"./sn.png\": 650,\n\t\"./so.png\": 651,\n\t\"./sr.png\": 652,\n\t\"./st.png\": 653,\n\t\"./sv.png\": 654,\n\t\"./sy.png\": 655,\n\t\"./sz.png\": 656,\n\t\"./ta.png\": 657,\n\t\"./tc.png\": 658,\n\t\"./td.png\": 659,\n\t\"./tf.png\": 660,\n\t\"./tg.png\": 661,\n\t\"./th.png\": 662,\n\t\"./tj.png\": 663,\n\t\"./tk.png\": 664,\n\t\"./tl.png\": 665,\n\t\"./tm.png\": 666,\n\t\"./tn.png\": 667,\n\t\"./to.png\": 668,\n\t\"./tr.png\": 669,\n\t\"./tt.png\": 670,\n\t\"./tv.png\": 671,\n\t\"./tw.png\": 672,\n\t\"./tz.png\": 673,\n\t\"./ua.png\": 674,\n\t\"./ug.png\": 675,\n\t\"./um.png\": 676,\n\t\"./ur.png\": 677,\n\t\"./us.png\": 678,\n\t\"./uy.png\": 679,\n\t\"./uz.png\": 680,\n\t\"./va.png\": 681,\n\t\"./vc.png\": 682,\n\t\"./ve.png\": 683,\n\t\"./vg.png\": 684,\n\t\"./vi.png\": 685,\n\t\"./vn.png\": 686,\n\t\"./vu.png\": 687,\n\t\"./wales.png\": 688,\n\t\"./wf.png\": 689,\n\t\"./ws.png\": 690,\n\t\"./ye.png\": 691,\n\t\"./yt.png\": 692,\n\t\"./za.png\": 693,\n\t\"./zh.png\": 694,\n\t\"./zm.png\": 695,\n\t\"./zw.png\": 696,\n\t\"./zz.png\": 697\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 439;","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIVSURBVHjaYkyvvv7jxz8GBoZ//xh+/GJaMUnz3z/Wf/9+A0X+/GEAkdwMQOk/YARkAAQAMQDO/wT09vxcTxkAAAD9///8/AIAAI8BAf0DA/r///sGBvv+/voDb/r/+/r++vr/+fnto6MCMDTHJgCEQBQFF5EDS7D/vgxNDQT5uuo784GJMTxkrfvZuAeosDTsnvWlDqLMKyFZzi/5BRDLv3///v77D1T95+//33+B1vy6uE+G/eevv39/fPovbOx+/t/Pn/++//j/6yfjr59AJwEEEMufP0At//78/ffnz/9///7///9T5MN74Sufv4V9YbzI+e/fz3+/fvz/DiIZf/76xcAAEEBMP34BVQNd/+/3n3+/fgN1/PjB+guomrvzFdAp/4Do+/d/P78DLQFZxcAAEEBADX+ADgGq/v0bhB5e43/yk5Oj//XHEvbn3zlvnxf8//PHX2A4/voJ9DTQBoAAAmn4A1b96/ffHz//S6s9/PP75xFr1dMnJX///qWkd+/v1x//Qd74DlLEwAAQQCw/vgFd//f3byACijMAnWQVcOrmKfE/v3+omd3++/fnv28gHwNdzPj7NzCUAAKI5dO3H7///OflYQHqZ2MFhrA4A8NPdbNfwID490+GiekXozzQlyDVII8yMAAEEKO+5/5Xr358+fHr25c/fz8xPLwQDIxyYBzD0T9DaEyDkgMDA0CAAQB4zHf3MXqYnwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEqSURBVHjaYvzPgAD/GBiYaxkY/oARkPMLzPiFwgAIwKG80wAAwlAADAnq0MNWGTipvfcpheWmmy9GNGUPey/RkskiWwP6mhDy5BVAYA0M//8/ecrw9y8QPfj8++/fv7//A9UBFYHIX39//fr3C8iQ5ZEF2gAQQCxgs/9DVAOVrXRe+R8HYGRkfKj6ECCAWIBOZQSqBjuB4fef/7gByJP//gEEENhJf0BmE9bAyPjnzx+AAAI76S/I+P+/f+HXwAi2BCCAwE4CGv/rF8hVv37hcQ+QBDoJIIBAGphBxv9m+A0KG2tr61+/fv3+/RtKgll//vz+8+eviorKxYsXAQIIpIHp9x8GSUmQnj9/Zf78hgCgcyEkEPyFAaA9AAHE+BUcp3AkzEAAAAQYAHrGaQbZnz4fAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHuSURBVHjaYtTU1Pz06RMDGPz69evF69f/WFn//f4N5P4BC1aJMkxMYGD4AZQGcQECiOXdu3dNTU1A1t9/IMjw+zfjn7/Mv3/9//2b7ffvf79+BSj+/63+9dffXz///lw8ezFAALEAAVD1y1ev/vz+/efPH6C6/79+/f/56/+vn/9//vz38+d79v+3JT79/P1DgksSaAlAALH8+/fv79+/QNVA5b9/gQz+z8DwLzHh/98///ce+H/yGFDg++/vv37//PXnJ9BhAAEonHcjAEAQCKKMhdGIVZI7lqXc4Q+DTd9sye+EGUGA38atlb3R7KgeRwDZXI5NGfIEEMuPb9/+gM3+BTTk5w+ge/5xcvwxM2P4/oORg+3/jx9/fvz7/uf7D6Ak2AaAAGL5+uMH0DlA5T/BAOjLv/fvMolL/uPm+XP9BuO3b8AAA2r69ecXSMMvBoAAYmH4D3T27x8/fkD0/Pvx4/+OXT/ERP///sN25ToD0FygM3//BOr5/e83UANAALFAgh8IgHqAGoBu+H/tOuf5C//Amv+C3M/w4+/3X8Bw+QvSABBAIA1AdULCwhBPM/z8xfDrJ+OvX4w/fzL+/g0MEz5xBkVe4d9/fv/59wfoaYAAYmRABQ+BYQqOYzjyAMaSOjimgRwuBoAAAwD7RWlTjl53wAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHhSURBVHjaYrBkIA0ABBDjdgaG69XVbxkY/oEBI8NfHs6/ntZ//v/7s2Hfn5fvfn///ufP79+///zh+/1bYdMmgAAAMQDO/wQuAAAXAP+W5OX4/f3//v2AZ/vW3P0ZDfv+/fsyIfsxSPtbevr3+Pr/+/uBHR36AAACADEAzv8C+gAAHP7/P/39/P3+//77sb79OS36FRf7Fhn7PDD6oLD5//76+vv8Svr6Kvv7EAAAAojlHwMDmwC393e+B/bFP/8zmwou6H8U9ef+P6D+P3//e7hMu6eZzvjzZ8raHBZRAaBigAACafj359//P3+8VrXPdi6e9Sbx948/v/8yATX8+vP/6vM8ll+fC1cWMPL8/vfnzx8GBoAAYgJ6HOg/oLfkuX65HpwtKcAgJcYoJcoARDJiDDLCzH67+zR5vgF9/e/3b6DpAAEEsoHhz5//v//+/vPb6u8jm2/7+CMi/8PAuyVLfv28/uvP73+//zL8/QNUDBBATEAMdM//P7+ABvz99fv3lnU/Ll6EqP5x7erz7u6/QIN/AxX8BoYh0EkAAcTyB+SHv0xi4oy/f4N1/nk9d65UW9t/JqbXU6eJGmj+B/oQqPIfKBCArgEIIMarDAzAkAVpg5EQLgM2koWBASDAAM/8It7659tpAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIVSURBVHjaADEAzv8BXWi2tPMD7wMCqfjGBwMAUAI5SisKf+bFN7kQAPn+APj6APz4APn7APb6AP/4AAD6AgAxAM7/BM74AeiBLLX4DUfmBwL3+KcZMFj74J8CYX9E7/r+//v+/v38/vr+AP3///3//5tclgKIZfmXbWznvge+esXw+fP/X78jbl75+Y8p8Oe+cnn3T38ZhLhYgYjtz79nn3+wMjEyMHwHCCCWXjbLUgU9bZHHfy9d+8/FwCIj/enzr2MfGL79BWpnaPNT4/z5mYGR6QsLZ96qawwMPwACADEAzv8CofEOKxsTn/MT4wQM6gIImCA/ChQTqvYO+PwA+v7+BvGtAPGRBQsKCu+e/P4AAAD7AojFT5Kh8/D9TXe+8P//y/z379SVJ/bLC1iLfjv46++vv/+BSljEy3/dK/rHa/P3P1DHd4AAYmTQW9TYavnww4/ff//9+QdE///8/ff7D5D8//P7XwUjeXYWRqDgxx9/fz98sSGrEiCAmBh+/vrz/98viOq//3//Aan+9QcUOP/+/79x4dHT7/+efWe4cfrhv39AG34BBBALw29g0DEAJf9C0F+Q2f/+AHUCw/T/7++/n51/+Bdo4ddffwVZgX4ACCAWoA1A88R52f6CbYA4CRjkv0Hsf3//MoC4QDkB7j8MQBv+AgQQI4NQJ1JEfgeaASOB3L9AN8AYv8EkA0CAAQCRWUgArUB7AwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHqSURBVHjaYrzMycDyj4GBiQEIWP4w/PnNwMLA8IOBASL2i4HhDxj9AyOgOEAAsQClJSf0A1X///v3379/LH//znn/NYSTienv37lvvmRyM//984fxz69/v38D0ZXpiwACiIUBDP68fM787+/id99COZl0v/6oe/f1z69fEZyMv9786339qYCbCchlk5AEWggQQCz//oHMBqE/f4yZ/1e++PTj58//v39x/fkz6fPP379+ZnMy//v1+9+vX//+/Aa6DSCAmJh+gTX8/v3/z+8zX75L//vz6/fvrz9/Pf3+4+ePnyJ//xz+9PXfz1//gRp+/Qb6CiCAmBj+AzX8Aer+//uPCsNfht+/S7gZf4JBJS+TwL9f6v+Bxv/8C7L2N9DxAAEECiGgYxh+//n797cW418F9v9r331j+f3rz6+fuz78S2FnZP/zH2g20JFAs4B+AAggoIsYgKqB/D8/f3L++dXx8mMw+/8PP34CURwHY+mzD0BBkGqgk/7++cbAABBAIBv+/QUGGdCJINE2PmbmP7+tmf9/ZvrH8+f3HCHWv79+gXwIcjbQzwwAAQQKVqDrmUXEmMAhzQDU+ftPgYAwUBHIoD9/mEAOBkYRWA8DA0AAMR4Hx8M/pBj9A45gSLxCYwkswgAWAQgwAGX6QkBNdoo9AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGDSURBVHjaYvytqsrw4QMDBPz79+/Xr39//jD8+sXw9+8/oAAYMcAYQAQQgIQxxgEABIEYUZ/O6lcZnCknxuXSdrhlEcO9k6pMmjAbMgX6C0/7Bc7eVwCxMDAxARX/f/WaAST3j+EfVBqEfv+Gavv9m+H3b0YJiT8MDAABxAJ0z/9//xkgJoERQjWIASZ//2EAMn7/BjoJIIBYRLhmNf0xefHn27+//8AqgeRfoBQyA0j+/v1X6jf3bIafAAHE8uvXH6BX/4KkQeRvFHV//wBNAauGcBkYfgAEEAs4PP7DnQ1xC9g5/8BegBgP8T8ouAACiPH7VAYWm67/X5/+///n/z+g8G8E+e/3PxDjL8M/EJeJW+bFnKUAAcTyDxhIQDmQaqCBcD2/warB3H9/GMDkv///GFgYAAKI5d8nhv+//jIwizAwAAPtDyPjHwZGqApGpr+M/8HhBgwQoOzPP/8+MAAEEOPHXgaGbwz/fjGADIKQwDCEMRgg3D+gSAZxuRgAAgwAGOaHzabOV6YAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAF6SURBVHjaYvz48SMDEvj3j4FBkP8fhA1Ez5+DSCQAEEAsQAk+Pj4g+f//f4ie/wWFDH///P/zh+HPn//Cwv/BUhDw7NkzgABigSqCqwYyHj74//s3FCEBRkbGP3/+AAQQC7pqIPnrF9D4/7+AGn4hawA7+B9AAAAxAM7/AQAAeXZ2TuLi8/z8/vz7/gABAfb4/XV0Lv7+/319ywEA//T0+fr6/Pv7/h8fDcHBhgKICagNaBzY/n9A1N5u9vfPv4b607U1p37/+V9fb/Tr199fv/4BEdBEBoY/AAEEdNKfv3//Ah336/dfoA2Zmft8/FSdnST//f23bceTvLwDQLOAesDG/WVg+AEQQIxv377l5+eHuh4CrK2hPgZ65sIFuAeAnr5z5w5AALH8A4U8A4oGoDqIaqRQgoQK0CEAAQTSAFcNjTxZWcbfv4GSDEASKMgIDBgggsoCBBBIw6tXr5Dj8s/WrZCY/gMMkNu3/zExAYPzzz+IGANAgAEAxmlOvh1IY9AAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAU5JREFUeNpcUbFKA0EQ3T0vdwcWwc5wXHEBgwHtxX9Ipb2kEwURIfgJAf/BfIB+gmUai2CR6hAEEZIujRAuuzu748xuOILDMryZeTPz5k5+9PtOiEiwKUQUgkL0IUhJCfAZSyEXRUzB8XAoKHCOHgIwsBa1Ji8AAmBvzNtsFvMoRLdcIvGITTWnZPEb33zB5NC+J8QL7KjTsVstNLhhGy1i3br/xJ+0dbdg9mYjlGJvDDXEhmUCp8jTM6b1WKmrI8Q6eQBcr1kVVbWmHr625uu87rBBa1dlyfhb7ivR3t7Aknx1gSh7vV5RFBvqJmGIo1E9n0fnZ/b0xI2f9qZT/lChlGXZarWKrDcACKCq5GBg2gfueSJvr6EpgTdjjOx2u7ShrutmUvABXF7gyysDEp6mKW3ghjzPd3mN/ctQDzeUZel/qwipXR9Ag4P9CTAAKtFSoA6PIf4AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGMSURBVHjaYow8/v/LHwYI+Mfw7xcQ/2EACvz68+/Pv38//gBFQAjE+POPjYkBIIBYPv1hSFWEqP7//z/jv/9ABsO/f////mf8+4/5LwPT33//wVwQyj32BSCAWH78Yfj9j+H97/8gpf8ZQBJAS/7///MPjEBcKFuYnZHh1z+AAGKpl32jKSYM1PMfaMt/kDYgBBoJAmA+hAkkWRkZRLXfAAQQizrvP2E2BrBisFog/X3v3y+bgYYycXv+53D7DwOMjAxmwgwAAcQE8S5UDEL/2PPv3/3/f+/9/7b9PzIA+e0fQACxIKtmgOhgs2P48QYYTv85nJHVMwId9u8fQACxXPv4T4v3/6+/IB0w57r+53L5B5L+/+8rVPW/fwxsLP+PvvkLEEAsWbeFSpkZXn4HhgMDPED+wkPpHzSUgEEnwcnQeUQQIIBYmP79Y2RgEmWHBuhfYMiCdDICGX9A4Qt0NwM4TkB+APoCIIAYjbd+ffcLGpE/QAio+h9ILSjOwegPGAHjExj/bAwAAQYA9gFw522GQWAAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIZSURBVHjaYlRU/P/hAwME/Pr178cPhr9/gcx/YAQBQMaycoY0F4a/bAwMAAEAMQDO/wTs7ACcnAD/AAD//v/9/QH9/QD9/f/8/AL7+wIG/PMrAMwhAtsCAPoKF6UFJR+qvboCADEAzv8EBAQA//8A1dX//PwA/PsA+vv/APv5MgDAOgLHEADpBhIVCj03+RsT0NHJ+czQ2dbXAoiFAWw2UPXv3wyK/y5asB2W5LjHzMHJZaDH6pTDwM5/bcfcx0vn3b30SD84RNnCEyCAWP78+sf177M3yy5F9musjL85FOTZnXMYxeT+g8GtvcueXz7KIiTPxXyLneHzqw9sAAHEEvF1p+2ne//Yn7Gqq3K6BTJycf+Hga9P2pXsC8VMDP98F359/SIjE6uosCBAAAAxAM7/A9IAlyE7Jvfu/Qvs2/q8sPrW0AEGBQIVGf8AAAQNO/vvvALzwQAMGPsA7iE2W+Xq7QIAMQDO/wEAAPyXlwHKyv/5+fkd+9dEArojCdkC/PIIMC8ISk4EHib133IB++v//foHE0iwwgsCCOjpv79+sfz8CdTAevWn7rmfOr9/fDX+c8jtyTa5nXksnGxctqasoTG/WZjZWf4yMT0ACCCgDT+7ulh+/vr/88f/H2D08ycwBkGM/z+/ejEfMWA/zM98j01aht3BecuLlwABBNTwHRavf2AMZC4kpg8xM8TXMTBIMTAABBgABJb60QzjGyEAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAElSURBVHjaYvzPgAD/UNlYEUAAmuTYAAAQhAEYqF/zFbe50RZ1cMmS9TLi0pJLRjZohAMTGFUN9HdnHgEE1sDw//+Tp0ClINW/f0NIKPoFJH/9//ULyGaUlQXaABBALAympv81tRhExYFWAI0BqQZZ8geE4Iw/f379+sUmLv5v+3aAAGJ8+fKlqKgo2Jb/DGCIBoBKISQ3N/fbt28BAgjiJKgqOAM7AMsCBBALQhFW85HV/weGyz+AAGL8ra/PWFj4//VrBiQXAwPq/18UbwBlGcXF37S1AQQQy7+LF5mPHft/7x4DNFigYQIlIYw/vxmAYa2iAnQOQACxAEOK6fcfBklJUIACRYFywBAEsf8wQEiw8RAEVAwQQIxfUSMSTxxDAECAAQAPfFda8rBeqAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIzSURBVHjaYjxe3nyAQ6Vyx7veD+tY/v3L/+dWKvXIyUTOc9Ybhq8fGBj+AJFnssv2uZsYGN4xMPwCCAAxAM7/AUtNjZ95PPsXHfjPzf/49wEfIhAVELzd+MzU5v38/vf6+1tNLQQEAd7j77fB3KOMjwIAMQDO/wHNCQkZhYYD7Or78vL++fkFDAv5/gH29/qJCD3w/AH6+PodGQ9GOyGJm8UgHRGrko8CiOmQjg+Ttj6HluZfYVEGWQUuM7Pfsop3ZfR+/Pnv56jCwMBw4/5roOrKdBsJYW4Ghm8AAcT0ISSJQVh4wz+F5zziL1gF1gmZMevofuQTcbZTlRXnLUyy+P7jd4SXFisLo6uVIgPDD4AAADEAzv8DLAEa6w0YwN/4+/b43/UCuNbx2/QDEP73rcbkJSIUq7fV6ev07O/3EQ8IqLXU3NDDAgAxAM7/A8veKS1ELvXw9N77Cd76BwT8+ujr9M/o+/3//8bN4+nt9P///1dLK6Cu0QkIBd7RvgKICRRwf/79/vMvyF6pNsX81++/f/7+Y/j39/evP//+/fv/9//Pn3965hz7+Onbv79/gYoBAgio4devP0Dj/psbSMtJ8gW4afz89fvX7z9g9BcYrNISfOWpVj9///379z9QA0AAsQA1AE0S4ufceeSuvprowZMPZCX4fv4Eyv778+f/9x+/ihLNtZTFfv76u2bnNaCnAQKIkYHBFxydP4A6kdAfZK6qY9nt/U0MDP+AoQwQYAAK+BukFnf4xAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGeSURBVHjaLMbBCQAgEAPBKId9WLJV2ZAPOZcgiJ9hSh9zpaPF3tgGpzlIIPzNl0RRrwBieffjzwRrSc+jazfaR/xgYP73H6iL4e+/f3///weSIC1//4EZ/3///T9h5jGAAGLh42ADqv794oXn0p6ZQcW/f//++/f/n////gDJfyDy999/v0GMf+I87Az//gEEENOnX3+2Wof8//Nnjl/u799/QCr+/wMaBlQBUvr3L4j8A0JAEaCrAAKIBejqLyxss4OKfgAl//77A7b9D4Tx99+vv1BLwCL/gRoAAojl1y+gi/9///UX5JJ//yFu/QsmwfaAnQRhgH0PEEAsP0F2MfyBqAaK/vv/F+RoZA1g54HNAmoACCDG37cZGIWr/v95xAB0PNj9CBLB/QuUZWSRf3NlF0AAsbBO2tocpPXk00+IQ8Fm/wNb8g8qAnY90Evy/Byra+wBAojx+1UGFokiYDACTWIAhicoSMEMoAjDH7A9/0A2MPwBhunrSwcAAoiRIX8/w6cfoLgERiQoOsGMX7BohjLACBijXCwAAQYAaNKq8wFV9AQAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIpSURBVHjaYlTP3Pvj1z8GBqZ//xguJRTwxTz6N4lNYMmUrx+YGH79Yvj2h+EHkASjL78Y/v0DCCCWfwz/6qPUGf4z/vv3n0OxlKHyLaM2e0eC3tfvzL////7959+v339//QGifz9//52duxkgAAAxAM7/BPr4AgD/AOvw+v3//f756f/n6v/2B+Xs9vLzBvr/+vr6/fj7/fn7/Pn6/RYRCAAA+gJQOAYpAMAwCFPo/9+681btLOTgIUiq6hICHkbgOmOqU9l250UOu5FwnC+AGH/uVmZWq/r/4xXD/18Mv3/9n/n2fwT7X26gO37+//vz318w+efX378/mDmkHq1aBhBALCwRz/7Xf2R89gbo4P/ff/z/9uvfjI8Mf34y/vzB8OMnI1Dbj++MP38y/fjJIMfEso0BIAAAMQDO/wT6nggFKgb+9wj+/gEB+wD+kvP/Xgf9DAH/+gL+/QL9/QL//AP+/AT+/QUDCwv4DwACiIVr1pS+VOOnb778/vO30WoR69/v/zkYIndk/PnzB+jXH79A5C+Qv//Ki3LvWc4AEIAherkBAASBIAqRk/136g9cFTeZCt5Y7jpC2ix+EwELf1tx0Fshu1MBwuLIgnLXF0AsDB8+AaWF+Fl+/2FgYhNmEP3JwM4hIcD+jZPh1z+233//gqPiDzC8/vz9ycDwAyCAGBmM5zO8+8bwARSX59vKhYoZ/uQzKE9MBxoGlAYGPAz9ASM2gAADAHEdTC2XuptBAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHfSURBVHjaYmSYeJzhxx8GCPjHwPDnH8O/PwxAgT9/QGwI+QvM+PWHgYUJIIBYGL78qXZVBCn+D0T///7/D1Tw99+/PyDGPyD7918g+e/3v/+///7fNPMYQACxMHBxMTCzPPkKFGcAqv7979/fv0C5v7//M4AU/fv/6++/X0ANf//JcrMxsPEABBDjYUZGpUmTfr14+f/fX4a/QNP+/P/z5x8Y/f/9G8QAkr9/AwXZJCQOzZwJEEAsDExMIPcBTfz7l+H3n78/votFRbFKSX/cf4BVXvbj4cPfrl79/xuo//f/37+YGBgAAogJ6AKQ64HEn79///xhV1RmVVB83NPDZWTILqfAqav3FywOJP8BlTAwAAQQUA8DIyQEfv1h/P3355VrP+/el0xLe79m7Y+7d7+eOMX48w8jUOonSAEwFAECiOUXA9Dlf0Ce/Auy9x/T/2dzZv3/9fvf3z8frl4BeQAi9e8P878/XxgYAAKIxbWWIc3m773Pf3//BSr/++vvn19/f/0GQqC3/v35BTID5KA///6q8P+7+JABIIBYGD4x/P79R5JN5PdfcNCAtP35zfoHbB3Y/SDPAYP679+ffxneMQAEECNDKQNQDyhqf8HQHyTGHxjjH5jkYQAIMACu3GUPfyOdVwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHjSURBVHjaYmRgOK3qLrCiT6ajLmZR2tov3xiE+BiA4N8fhn//wCSYzRu4mYHhD5AJEAAxAM7/BAAAAFZJDuvu/JSaqb7Gt0UxxP8A+gEB/AH+/AP+/AIA+////P/++1NtKvv8/7KXzQIIpIHh///l2z5evfMzzMNtxa53YWabmRl/MjD++v8HqBqIfv3/9+vm/R+ykmxASwACiAloy7//DH//MJy+/G3J5o/2LuFLj7j/+fMXpBqo599PoGog+vX73+/fQNf9AQggoAaGv38Z/vz9B1Rz8uK3Bes/OLpHzz/g9efPn/9/fkFU//8L1PD/9x+QBoAAAtkAVPobiP78B5px9NzX2avfu3onzNzj//Pn3/9APwA1/P/169dfoAlADQABBNLwF2w/0NJff4Dk/0Onv05d/s7TP2X67mCg0RA/AKXANvwDCCCQBqDxv/78A+oB2vDr99+fv//tP/F1wqJ3PkGZvVsiwQ77/ef3v79gGwACCKgB6Np/YKVAc8AkGO0+9qV73tuA8IK2DfFAG4AOBrocaDpAALGAbPjzX1KUFWjjHxBiADJA0n/+3Xvye9HGj9lZFTOXC6rIsf/9B9IAEECMDAw7GUCx+QcSkRgMIBKr7FRqL7/FwPAMGKQAAQYA6stgQLSyr6QAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHbSURBVHjaYmRgbmSAg7///p4Hc98x/PvD8I+L4R8TA6d1PojP8IeB4RcQAQQQC1C2epInkPz37/+/P0yMMl////7LIPiH8f8fZuY/TCy/Y6r8//z7/fsvCG+aMBkggFjAJv9/8urb37////5i/P/rAcP/v////P7///d/xt//f/6+/ejDr7+/gaplJbiBNgAEEBPYaAag6j9AM/7+A6run/Pr/qPf9x/+bp/y6///n79+//31+8+vP39+//kH1AAQQCwgd4NV//kDRIz////68/v3ur2///79/ef3L6ClIA0gzl+IBoAAAtkANhvEB9r7/99vQ5VfP3+CkKHqLyD316+/YEuAxv0FagAIIKCGP3+Bxv/+9+vP319//gFtcLD8BQSfv/z0sIU7CYTANvwBCCCQBqC5QNVACmzDr//MvwR4fjEBfcwKtgGk9C/QeKC5QBsAAggYSn/+/AE78ff/378ZQBp+/8oK+Q1i/Pr9nwWk4c9/kLP/gDT8AQggoAZgGPyTFOH+DXTlTwYGVhmG/78Z/wK1/mFg+c3A8kdJhhcY4H9BYQPU8A8ggBgZGJIZGFjAEQlEDG83L/z3jeHfB4Z/vxj+8TD8Y2GQjbVkYPjBwPABqBqoACDAAGawZ3sdNcy9AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGKSURBVHjaYmRwZkCAfwwMvxgY/oDRLxj6gcT4zQAQgEQxtwEABoFYw7pMwFasd08CwrJcOWarrJ2HZ1m0ZFIncDUhdPYXQCxgk/8/ef/0L0jdX+snv73v/pX+8Pv/n9+P2H+vlP29WeLXr7+/fv/+LSssC1QKEEAsQGcATYYYbPPkd9qlv0y/fv3/84fh12+5L78KX/76of17veSv3/+AVv0GagAIICagc//+/wuy/c9viyd/QKp///4PJMGI6ccvp3u/fv359ev3L4gGgAAC2fDn718g58+/Pxqv/kBVA0kYQ/85SMPvP7+BRgI1AAQQE9D7IC/++wMUvcIDNvg3mPz5E0Ke4QPb8A9qA0AAgTQAWUAhoKv2iv768weo6Nd/mMOA7twkBfIA0Pi/f0E2AAQQCzB0/4CDDGjpVonfPzV/hV//Jf8NpPoO5+85yr9XyIC0gZT/+wvUABBALCAb/vyR5Jf8DRa9pPf7rDYoQIAWgkT+/VH6BxQGA7AGgABiZJBEiUiCACDAAMCmX7rCYWs5AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFTSURBVHjaYmRABR/fM/D8AjH+/WP4J8Dw7xPDP3GGfwwIBBBALEC56upqsAoQ4OD6y8D3l4HhD+P/P8wMf5h4f/+P+fP/9+//f0Dkl02bAAKIBWzu/ydPnv4Fg3//fjMw/P3//zcU/f39//av/79+AVUzysoCbQAIIBaw2f+BSv8AEdCk/0DVv/7//wPW8AuEfv2GaGD4/RuoASCAQBpAqiHg9x+E2dg0ABUDBBBIw58/f3///o2k4RdCwz+waoiGP3+ANgAEEMQGkOJfv3+haoCRMBsYwU4CCCCQBqDxv379Alnw6xe6Df9/w40HBtQTBgaAAII4CehbKIC6G66aFazhD1DDX5BLGBgAAghiwx9JSUmwN/4yMgJ99htMAmWBHv3DoPQHqBSCgE4CCCBGtJi+fZfhFwsD0Hf//jAIcTD8e8fwQh8kDtTNxsBwh4EBIMAAr1pl7/uLhvQAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGDSURBVHjaYvzPgAD/UNlYEUAAmuTYAAAQhAEYqF/zFbe50RZ1cMmS9TLi0pJLRjZohAMTGFUN9HdnHgEE1sDw//+Tp0ClINW/f0NIKPoFJH/9//ULyGaUlQXaABBALGCz/6OoBkpDTAWp+wXSA9bA8Ps3UANAALEAMSNQNVDFnz8Mv4Hk7///fn/PB5Hs7b/+//wF0wnSADQdIIBYzjEwyHL+/cUDceWff0Dp9l+8wkC5388X/GKN//3v169/rCB7WLn+XGJgAAggFtNahnz3Pw8+//n179efv39+A3Vc/zXX9Pf//7+Cz/z+lfULKPLrN4hU4vt96gkDQAAKyNwGABgGQi6yY6b1XtE9Vs4dokKcekWv0ogGnFLcZqQKFGEsj2zl6xdALAx/GEAGg9SBFP0C6QGb+g9MAsX/As0CavgLRAy/GAACiAWIf//7I8ktCTbm7x+ITpAKkPOAZgHD4S8Q/P/7F6jhDwNAADEypDMA9UDRH1T2HyTGH3A8MzEABBgAU6to2uOHQr4AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFgSURBVHjaYvz69SsDEvj37x+ERGbAwZ9//wACiAUoysXFBST///8P0QOm//+HU0jgxYsXAAHEAlP0H5nxHxtgZGQEWgIQQCx3Pt2RYZL5+/8vQobh/z8gBIN/MAhErEwst77dAgggRoZmhjKXskefH/359weIfv/7DUJ/f//6CyR//fr7C8j99QdEyvPKH5x0ECAAhWOQAgAMg7D+/8nWNVMQDwmCvWTessZJ9VWHCIns0yWxc/MF4FgMUgCAYRBmpf9/sDqY2yWEQBbEYcK0ZuKxIY0FGZ98Z/8KFlcAsTAcYZDX/M369tefv3/+/AGSIJf8+fMbxPgDYoC4QOP//JER+XPqIANAALH83M7ALPvn3z2gcSBTQK4AOwRKQhh/fjP8+cuo8reOgQEggFiA0cP0+w+DpCRQDijK8AekE+SuP38YICQQ/f0LQUDFAAHECIznf0iIAZWLJgUEAAEGADzQZYYqa4w6AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFbSURBVHjaYvz06RMDDPBu3/4vKorh718I9x8Y/YExIAgggBiBGnh5eSEq/v/7y/D6NcO8+f9fvWb4++f/nz8Mf/78+/79/+/fQDaQ/LJpE0AAsUCV/v8Poi5fYZg18//bdwy/foEUgdG/r1//g7mMsrJAGwACiAmhGgh0df83NjGIi0NU/P/1G8SAI6BmBgaAAGL59+8f3A//L19m6O75/+E91Hight8I1QxAxMAAEEBMcCeBgI7O/4kT/ktLwRT9QrEB6B8GBoAAYoGrBjHOnGbo6v7/7h1Y6W+Yw6A2MIKdBBBATEAn/YcBBiPj/xMm/BcX+//zF5pqYHABbQAGMUAAQf0A9fepU/97e/8/e4ZQDSH/ADX8hcQPQAAxvnr1SlBQEOokoNDDh/8bGv5//swAC/t/P36AxMHo9ZUrAAHEAlT648cPiD3/pk37V1nJgBq18JiGAIAAAwB361RtvY8fzAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAI1SURBVHjaYvx/9SrDL64bFir/fv5lERf/9+cPEDH8+vXvx48/////Y2AAoh8MIKCz9fg/lk8AAcSovVzxSsQ9IP/byZNf9uxhFhVl+Pv3z+fPDEBtHBz///79/egRt7sHt6vL////Ods4AQIAMQDO/wMCPPEBDQoSDBgYICwLMznwrqv87OwTXWAILC3ytrX64eEYh44FKSXV+Np8zHnStdICiEWIT4CPTWDqxX5DMeMExXiJzk6gSW/ePfr1+494f/9/MJhwo3/T/U0W4pYMAgwAAcT05x/QkQziPJLX3lzNPJ7x4f93oIp/r98zvnkLZHz5/ytof8Dhp0cUBBT/M/4H+gYggJi+/fvx9//ff///cnFw//rz6/bH6/8//xJW0RFVN/z/6fvdz7c+fv/Mz83/+y8oNIAhABAAMQDO/wLoCPz+//38//zw9e/3/vcjDS/grJzu39bv5t/dopMhCyn9BPrr8Ov8/vv9/v0ADAACiAlIAXU/fP9Qmld6sc0Svv//5eLSBeQ1+CXkFTOLuf7/3+O0X11I7cab67///ALaABAAMQDO/wQA7gDm9OVlLGk3DzP//v/kZmUAAQEScXD//wHrhoX67+4fqK+GMIfBH8aPz4oA6gACiJFhOsPvlN9A/307fuL9siXMwiLAePj98eO/37+ZuLj+//nz89FDofgkbg83YNjwZfMBBBDjwfsHZT6InTPU/MTAwMbA8AcctUDyF5gBYUOk7JavvSb1CiDAAH1oJnSag5rVAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAF4SURBVHjaYmSYyMDwgwEK/jEw/AHRf6sY/v3DhhgYAAKIheELQ7VrNUjx/39AxMzIDNb6mZHxDzPzHyam3/////n/H0p++bIJIIBYGFiA0v+ffH369//fv//+sjKy/mP4+///R7AiCPoFRr8ZGWWBlgAEEAsDyK7/QKV//v/98+83AyPD//9/0ZRCSAaG30ANAAEEMv8vA1D1nz9///z594eBieH/v79I6lA0ABUDBCB5jG0AgGEQlqGH9KBe3NOAhCIVefDghZWXmmYzdXAm+cCgCZMGvtTW3HoCCKThL1jpr3+/gJb8Y/oHsuH9L7C638gko8BvYCgBBBBIA8iov7+Aen7//QWyAehADNUMf0CuBoY5QACBnfQXqPT373+/geS/////QTRAVEM0/AFqAPr0L9APAAHEAoy13//+SHJLgr3xl4WJ+d+fv4yyPEAjGcAGg9DfvxAEdBJAADEylDIwfAJH8C8wAjK+MbzcDopUNAQBAAEGACQBazxAuCviAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAH1SURBVHjaYjyZXrqHSaF6+rV60UssTAy1L2WyZb9E2Ul9WDqTiYHhDwPDPzD6A0ZAABAAMQDO/wEzG2u0olj7GBz42Nf/9PQBFhcOGBW70e06yacC/Pv++/v+/Pz++/v//Pz/+/vGsrICiGXOv3UM17U4j+9j/vDx//fvLIIC3/8wWn/78vPeXZC6X7///v7179cvht+/2WRlgVYBBBDLBh6TNFUttjePv999xCjKzqko8/bey1t/hdR+Xfn/+5fCypUMzMz/geDnz4cpKUBXAQQQyzOnsF8cPAse8qszijH9+n/1m5qTusjbkw/+/vrN+PvX/18/a56x//n3v038J9BJQA0AAQAxAM7/BHS0cuQVeQHX6w8P9f/8+/jD0d4hFUgL8O37+f36+v/9/cVrSmVbXP5NTf38/PwAAAKI5cHT1xqfH0r8efD3xa9/v//4A3155dfbX7+B7gYaOe35dNcO47t/L/c/vR0AtgEggJiAYQeUABoGVP3/1y8g4+9PkC//gQWdY9ays3OwcXC4B6/6D7YBIIBYQCENDjhQmPwGGQxRDSV///YOWQly6p+///7+BcYDQACBNPz//YdVUhKk+s/f/5CwBwc8lATGwN+/HH//AslfDAwAAcS4lYHhFywi/8Ci9g9YEC2OgSQbAwNAgAEANZtLtF2QDxkAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIRSURBVHjaYvx6k4HhFwMDEwME/PsHxFDGvz8g9r9/UPYfMAMgAMNibAMwDMMw+/83svSgXFEgGTpGEStA4EKqgej7jdJr7/IFVyuz8lBaOCbUms8vgFggBjPxRDOArfn399W/jxN/fnn169MnTsFf/37/ZmAEqv79/98vRlYZoD0AAcTMxcFhZW0N0Qa0jZGRm5HD8d5bo99HfvEoP2Bg/P/v37d/f37/+/eLiYn36/NbAAEAMQDO/wR3eXnt7+/r6+tiaGgXFhYiHR399/cMrZn8+vrv/asOGf8E/////OH763n/AP76+AACiBFocFFR8cOHD/4Awe8/nVYazMwsn7yiVIQFPy2d+u/XT4mi1v9gwMjE9PHDB4AAYvx8nYFRoOLO7fuVHZ+AGn7/Zplqr5y97STXr9+d7vrvgzJZubl1FBSAGpiYmN6/fw8QADEAzv8B8dMACBp1/vvgAQX4+fP75+L/8ewAFNAjAPj0dbPYzfbp+vr6+/v7MzExY2VlNTU1Aojx40UGdskCoAaGfz8YmH//Z/j14+O/399BgfjsPoN37rPfv36B3Prnr4qKysWLFwECiAUYUkA5RmaJf/9//P/z5z/DHw7+30xsfxn+/Va1+n3zDN/PT/+ePPvz5Pmfqo6vQA8DBBDj29OgWARG4Z9fUAaQZGJh+AVkfwPFNBMX0AxwlP9huHeJASDAABJwMQXPwd1pAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGGSURBVHjaYvwvyswAA//+/GX4BaQYGH4w/PsPojERQAAO5RwHABCGgWA43o4oEW+lS2wTaEZbbH/j3ImoQhgp0IDsBtRwBYT4+hnrCiCwhv8M/9+8AioCqf7zhwEq/fc/SPUfEPkbyPjNKCYBtAEggFi+RfxlU/31TxzoiD///4HV/fv9/x9Y29/fYPTnH5jBxPftkzwDQACxfEli4JX+8ff31////zD8B6r+8/8/UMNvoF0wxm+wEb+YWHk/tDAABBAL0CMgg0HSfxhAjN//gNJQRX/+MfwCM4CCf5iA3H8MAAHEArT8P8NvsGoQ+Q9mA9RsiCVgzf+BrvzDABBALGv+MNgCHfTn5z+wCiD5F8L4D2aAuUDVwBDgYf4x8wcDQACx5H5iyP/99cGvT7///f7z7w+Q/PXvFyhcIAyI4H8g+VeJ4evRTwwAAcTC8IcBKCTBIgEKP6BJ//78YvgFFIEgSND+/fcXFHwMf4GKAQKIkWEjOAL/ICEI9xcsbiGCDFASIMAArSN8tzlGFIEAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHjSURBVHjaYmRIZkCAfwwMf2DkLzCCMyDoBwNAALEAlTVGN/5nYPj//x8Q/P3/9++/vzZa31gY/mw5z/Tn3x8g98+f37///fn99/eq2lUAAQTS8J/h/7NPz/9C5P79WRj89f9/zv//fztLvPVezPzrz+8/f3//+vtLhl8GaANAAIE1/P8PVA1U6qn7NVTqb1XVpAv/JH7/+a/848XmtpBlj39PO8gM1PP7z2+gqwACiAnoYpC9TF9nB34NVf5z4XpoZJbEjJKfWaEfL7KLlbaURKj8Opj08RfIVb+BNgAEEBPQW1L8P+b6/mb6//s/w+/+nc4F0/9P2cj65xdHc+p/QR39//9/AdHJ9A/60l8YvjIABBAT0JYH75jStv75zwCSMBY8BXTMxXv/21ezfHj9X5/3BESDy5JfBy7/ZuBnAAggkA1//vx594kpaCnLloe/smLaVT9/ff3y/+/P/w+u/+JuW7fhwS/tSayPXrOycrEyfGQACCAWoA1//oOCDIgm72fu4vy6b4LD/9/S/3///s9+S28yy+9/LEAf//kLChVgCAEEEEjD7z9/JHgkQeHwD8gUjV79O9r6CzPLv6lr1OUFwWH9Fxjcv//9BcYoA0AAMTI4ImIROUYRMf2XARkABBgA8kMvQf3q+24AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGgSURBVHjaYmTw9maoqmJgY2P48YMBCP79Y/jzB8QAkhA2kIQwgIiJCSCAGIFS1fPmMTg6/uPk/Pf799///4HK//779wfIAJIMDL+B5L9/v///B6JNx44BBBALyLC7d57cvfs3JOSvqMTvHyA9v/8x/IaS/379+w9EQG2y7KwM/3gAAogF7Ir/fx8/+jN3brbdCyuDv0A1QNP///sNZvyCMX4z/pP7+GMPQACBNPz9+/cPELx4MX/9H0aG3+Z6YPsh6sBKwYzfDP9/AxUDBBAT2Ht/f4PBy4+/2+f9fvjk13+mX1DVQG1/Yey/f4B+AgggiA0gC379/sXD9Cc15Les5K//v6CmItvA+O83UANAAIFsAJr969evPzy8qUG/7E1//f/zC2wqkh6ge8DB9ucHA0AAsYCd9Oe3mNjvhIQGWYVfX3/9AgYiKGRg5H9QsP7591/lP/tFlmMAAQTS8FtOXtLP9zcv75+fP/+wgULwNzgefsNiAxjQf0Hkd4ZfLwACiIVBWnq+uhrD48cMnz5BoxMSr79+ocQxJO45OAACDABeL3jo/4fUSgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIJSURBVHjaNMmxCQAgEMDAKI/7l+7jUIo8QS1Md6TMQSTyEy+SaFhx4X7Xy8DOEUAsQNUsatVAlf+B4v+Byv/+Z/gL1PGfTen/rz8sv67+Z/zzl+E3468//7f//rJ2E0AAsQD1ARX///WU4f9fkOr/vxkY/v7n1PgnlPHjx/9fP74yvS35/OSX6IqbzMqy/1gZAAKICWz2f4RqIMny6/+ncx8+fP71+y/rv1+MIv3vN71gFPj1n/33v98MAAHEBHYgUPUfkOr/f/4z/fr2menVd6l/H/d+/Prr9Prpj968F01q/v/l1/+/QMsZAAKIBaThP8js////MDD++f/j9xPuFQy/vjOz/mdh/q/rm8bAwMQ7N+4/52+G33+AagECiOXfH6AP/vwH2sD4i4H5z1vBsn/ff4izffj74/e775y8v1/92db4/8Ov/9y/Gf/+BmoACCCmf6Cw+f2f+dd3nqC7LJ3v3ohw/v30++0TvqlR8mfXfeWVeefW8f/zb4Y/f/7//fOHgQEggJiAwQw0+D+H5ruPehz3PinNTGXk4Px4cN5/hp//L0wXabGSm+b+X+TX/z+//wO9ysAAEEAsTDwM/5n+/D/+VvJuPwP73/+KMny3trCy/WKUkGdg+s3AB4zUP6Aw/AsKRqCTAAKI8fN8BoYMhn8/Gf6JgiIVGMf/voJDDgNBAECAAQCFISPqD6W+BwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGSSURBVHjaYnzIAAVy//9zRV36skTnATPzPwaGf2BBCOMPEgkQQCxAUcHaaiD5////ngQpRkZG4aLC/3//MPz58x+Efv//DSL/Acnfv+9u2AQQQCxgg/7/e/IUSL18/weo7c+DB0AVDL+BioCqgejXv1+//v/6zSwrC7QBIIDAGv4CVf0F0f9ADvn/5xfI1F8gpSDVQD2/QCTT799AVwEEEIvM379AZ0Cc9Aeo8/9/gbUb/mMDQGUanz4BBBAjc/D5/mTpF+9///0HdvO/f0BtQA6I/AMk//3+CxIHikgJss7OOQ0QQIx///6FGP+f4X/JgmfdcZL/cQAmJqb3798DBBDLPWZmkdysP/fuC2zY9BvspLd21v9+gXzMAPLub6g3fv9hUVa6evocQACxAL35HxxkQKUgZ/3//+8nRMUvkCBIJ4jxD+iQP8DAZgAIILCGP3+YJEEuEeUDBRqzjCzTX1DAM4CDn/nPH5Dqv3//gR0PEECMV2FRqPD+vaDeibcXzK4JC/+BxTEkghlgJBAABBgA9J5akqVspaUAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFNSURBVHjaYlQ9+f/DHwYI+PPv369/QJIBSP7/94/hH5jzB8yAsBkYAAIwLMZWAEBAFLvDJIZVmsswShVO/C7vJSlzW6uGmRrwkNKJer/kIAXcx3kI+lhfALEwAZX+Z3j1G8gHm/IfxACq+ANWByR/g1UD2eLsjEAJgABi/PjxIy8vL8RJQCsgJFbAyMh4//59gABiBKooKyt79OjRHyD4DYIQ8OsXmIBRQFJeXv7gwYMAAcQC8uufv0A+XANEGkU5mAbKAxUDBBBIw9+/IMW/fv+CmQ9SgGw23AigYoAAYnz79i0/Pz9+10NkgX64desWQACxCJ/iaVFnePIDGBQMyGECIUEMSHD9Y5DjZFi9RwgggFhAsfWfSYwNEpQM4DBl+P2PEcIARstfkCAwfv7/A0ctQAAxMmz/yvADKVL/MECj9hdaHIOl2BgAAgwAZ3V9YV7lZU4AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGUSURBVHjaTMJBCgAQEADA+amne4EkbZK0rqaREVlK1prc72GzCCaDTuMJwKQc2wAAgzAQdIZnIWZLg7BxKNN8cfqzH6oQ4W7MQDIF0STIRX+9mU8AsTB8/Miwa9f//HwGIAKqBmoDk1D0C0j++v/rF5DNKCv7j4EBIIBYGPj5/3/5wpCbi1ANlAaaB1EKUv0booHh92+gBoAAYvr3+jXDxo0M3d1goT8QORAJQT9/IdhABQwMAAHEwiAqygD0d1ISVMMfqHlQbXDNQNk/f4A2AAQQE8Pr1//Xrfs/aTLMATDy508ECUYQJwEEEMs/r4D/+7Z/zUiMzfjz+9+vX39///776/ff37/+AeXBjL+//gAF//1R4v9zrI0BIICY/m3Z8K+l+ceMKZ+Zf31m/g0kP0HRz09Mvz4ygdksvz6z/P7K9JeBjQEggFj+iYsyfPnEVFMi6Sf5599fsGEg9OffH6DxQBLorb9A8B+EGH4wAAQQ49fnL79Jij94fNq0ypThFwMI/WFAMBjAjB8MDP8YIAAgwABvN3WWW1RiZQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHqSURBVHjaYvzJgAL+gNEPMJsNJvgPhoAAIIAYGeTvdtQLgUX///vL8JOdg/3rN26OX7///Xn/ifULMyfju49//jL8/vP/z59/87svAwQQC4OIxA8utmfv/v/9+//PPwamPwwOdq/FZH78+Pv38Ytfuzdof/zID1QNRDKiTAwMagABBMRAkxn+/P3/G6ia8W9E3BE3dV5jJlmzfxI+siIpeQfZWH/++vMXiH4DLWL4BRBATEAn//n3H8j+++e/kuQLGXYBno+Ml64dPnfx0P9HPyUYeXT07v36zQh0ItASoMMBAgio4d/ff2D3/GWQUXwh8F+QjUfkx5M//x+/kJBXEmAQlVB+/vvvv19AV/0FaQAIICaGX//+Av309/+vv/9ePBH4/P/D9x/fP7GLPmRQffPp7U+Gr++e8v7+9f/3b5CngRoAAoiF4RdI9W+wAWeuyhh7Hvnzg8XWUBmo/+77O5/5Xh/cZw32w78//4Ae/gcQQCzAMAeF2l+GX38Yvv5hmtBn4xVyjo/9/Z8/DB8YGFc0Ozx7CwxTkOq/fxmBIQQQQCwMr14xfhOW5QTaCArsX8wsl5ap8vN/Abrz5Rs2gf//+fm+AD35D+jJL0A/3AMIIMbXSBEJieZvDAxfwAwOMGJAimYgAAgwACh0GTCs4tX1AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIGSURBVHjaYvzoHfzvwwcmFqYfr55wnz7NgAT+//8PJH/9+vVMWJgNyGBg+MPAABBALP8ePeEsLwRKMH9+x8XF9R8Mfn38yPiPgVmA7/+/f6wsrKJZWSzsPP/+/r0/qRcggFgYeDiAZv178/bvu1cQ1X/+/f8ybfq/H3+5q0qYGRlB+m/f/scpwCQlAbQEIIBYGIDyf//9//2H4c8foNzPK9d//vvF/OARw68fX0+fYfn7l93MlOH797+MHP9//gI6CSCAWP79+sXw9+//37////wJ1PBlxkwWHi5Gbv7/rBx/Fy7+/PiB2Nq1/77/ZGD8zvjrJ1ADQACxMPz48e/3n3+/f//79RvkS2X5/+fO/WflYfzyg+njM2Z1jX///v35+Z2JhROoAOgkgABi+vPjx/8/v4E2/Pv5A6iBJynpm7AI0NO/f3/5IiTGX14OFPwNVPPz199fICcBBBDLvy9fwKp/gtC/fwwcHPwNDd/37GJk5xAyN2fk4PgLdPDPn39ZfzH8BnqUASCAWP68fQr2wK9/QLf9+wc0j5GNlcHUhImNg4GdHagaKPjvx/d/bD+Z/vwBOgkggFiAmv79/M0oJMD09zsjOBCBccIuJAJk/WNgYGJiAgqyKioxC4iBvMrAABBAjLeBGsBR+ImBgffKlR8/fsAjGML4/fv3I0dHNrAyIAAIMAAWsTLdMXjAtwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAATBJREFUeNpUkU1LA0EMhpNViqWtVYrFj4OnulCoFNSbF3+Gtn9UvBSxoHgR9eRBD1Xbgyu0Ckt3MhMzMzvtGsLLSxieTBKkhxMIwczGmKJqrcUsVGJVqtQ5de8NsGbQwMTWKGaFTABqhb1X6uYVJ/295v5Z3kJIWgFZZXKpJDOmTAyUK/O7F0zvu3TYguW3BK883mUmaqxmCLXZYITj3m5j7QgKgTTP2Rac5U2kQ6U6e3zD39tO6aAB/4PNEs/G4qUC0fr7cIKfFzubpXbxdUSp6xDYwWOt/vM0wumwzd1mYbMWbMIAxjexY6gI6slVgh/n21vlOAzsYY7qNpNXSIHRXN1In8f4fR1Hx3FgEwek+72si4Rt78PaACWXU/watPyN/SH9dRfqT+69GHn5J8AAeJhkjAZrdt8AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIDSURBVHjaYmSIZWaAgz9/Gf4BSQaGXzASguQYGK6BGT8YAAKIBahsc0GXj+bHL2/YWi7z/v337w/T37///v75++cPkPz3V4Hze6Lc+/kPOM6+Y9pUNhEggEAafGS+Jqxh1RD/1G55NWy9AivHjz+//n369/v3vz+///2+9ufP/bdfzrxhkhUQB9oAEEBMDAwi/zl++ym9N2L/+v//b1bmX5++/ptq+my20fNff3+HiX/49evX6TdMQLYx/1egqwACADEAzv8EAPICrtsNUhnb/xD8Z8Ec/gH6mDfn5fX+bM8PbSLsMg/0+foGmeEHNw/0Xh0BhCIAAgAxAM7/BAAE58boBcDhGe76/v37/Pv+/AkB+33UDwsA+6ThBRol/ZnfBvr++r7qAhPcCQDVAAKICRgsf///fvz1//sff3/8+/X77++vv3/Xqb/68ev3vfcMSSf5gY759fvPdqvHx1+DwhMggJiAzvr97++vf8Aw+f3x59/vf34nnRSQ4fg20fDZr/+/gfp//QGR9vtFgEEH1AAQQCxADcAQ/A0W/f33z5e/vzkYfgcdEvr2D6j01y+g1N/f1sJf9r5g+wPWABBALGAb/kjyivyGBDxQJ9Av//5w/f7Lz/37z9+/hgLfshSYJ97iOf4GGJcMAAHEyGAOi84fSFELQb9hKUCSgeE5lAkQYADMqym/vMn2nAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAbJJREFUeNp0kT9Mk0EYxp/v+tVSghYcTAohTFXjHwI4IAkDiUPDTLGNi8Y/LGpYXY2Eib8rTCyQNMahJH5VUtCEkgoJlgDRxIHJxMkC4le+3t338l7bgYXL3eXNe7978tw9VvA7AbjftVAoPuYCCiCQD+XxklAK0oMvv97sCF33PMBmxrmbfYB3n+9cc34PWjA0aZ98XS3oSfuHe43TSHW4MZH79RMhcoluE13luXy6kPpByT05vHOa2D7JH82Qbqbey/8ROcYVit3Ksjxbcukt0yUaTe7rh7uV4WJ5498skUHLiJwwimYz33RnP/KFTfqmHRZecdMsnPn7voZ6iLiIEFoM+izKzXxpFpNrtq5g8SDuK+l5Vrozij6lC0JBhCDM8583YL6cK72ccoai4QDUge1LlWh1+sMp9AWoICTEJYgAe33RgLny6uGrqWyi+gHmD0DSpoEgkjeQDmogYOg6+uX49cQng6JGM+5bUL69ZaEHf1Ab51BcMEwOItZqDRzW0KX8I+60NaHqgdMQRpt4t4hMxNY6X3qK8ZGxTDFeF1EcrYbkpCuAhmbv7Kd+eCbAAHiZ+RMcNV6aAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAH4SURBVHjaYuTUv8HML7i+VtK/8TkDE8Pvf//+fmH4eEHyLwODgMpjBtZ/DH/+Mvz6x/AXTP76AxAAMQDO/wQDDxDYprAbG33jMqaqyGv9/gD/+QAKwW3//PyKPBX7A//9/f/9/v/7/P/9//6JbtwCiOXfX4Yd55MCOZunbM76x/j/32+Gf3///79////v30/V//35C1L65+8/ICkuyMjwhQEggBifPHkpJSUKtBAIGBn/gyiG//+9vf//+v1/x/b/MPDv339GRsbz588BBBALA8NvoBJmZqCq/wxgCAK/foE0IAGgKUBlnz9/BggglrTDafnW+R9+fgA69e+/v3+Z/v399ycGqOH37zm35/wB8n6BfPHn3x9BdsGSbSUAAcSybfs2VUXVB18e/Pr368/fP7///f7991c00Phfv6adnvbr76/ff38DpYCkEr/Slw1fAAKIheEPw+//v4ESQDOASn/9A7FB7vn9G6oaSLL8/gMMXeY/DGwMAAHEUpLEEKX85+vv38Cg+/fvNyi0/4M1/PrV7/gbGDz//v4CSf3/y8P6tzOHASCAWAI4GHQF//z/L/n/P9D3wBD9DWLI/mb488dJEsj+A0bAQAQhMVsGgABiPHSIgYmJgZOTgZ2dgZsPJP4PGK3KDP8YGP5dA8Xvv39QEgIAAgwAkrFcoANSd7wAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGbSURBVHjaYmQ4zsDwhwEB/sG4f0Ds71Li//78+vfvBwj9+f+vhQEggFiAEtWK1WCV//79//f3/98/DH///v3DyPAnRvgPC+fv/////P8PJrf9/rJ9E0AAsYBN+//k91Og0r///v7+/xtIAlXkS/w24Pj97x9Q6S8QWvmbcaUs0HqAAGICm/0fZDBM9Z//v1JEf1tzQZT+BJHrfv3v+PX/92+gBoAAYgEqB6v+8+f/HyD599/vNLHfbry/wc4Am7359/+mX/9//mb4/RtoOkAAgTT8+Q8yG6Tn35800d/uvL/AqsEadvz+3/Dr/w+Q8QxAeQYGgACC2ABS+uvfrySRP558EIPB5J7f/2t+/f/6+/8vkAZGsJMAAgikAWj8r7+/YkT++PPDlAJJoOqKX/+/QFUzgJ0MDGqAAAIF65+/f0KFfocKILn7GFj1Z6BRYA1/gBr+AkMb6AeAAGJh+MXgxvfHj18SqJqBASj0m+HKb8ZpvxnE/zAIgQwGob9/IQjoJIAAYvS9yrDsGyc0IsHR/M8RFN2YCAIAAgwAqoFmdiZS8coAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAALCAIAAAAmzuBxAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEBSURBVHjaYvzPgAD/UNkQBBBALCBedTWQ+P/vHyMjI4jx+zfDjx+Mf/4w//nzZ/ZsgAACq2D4///JU4a/fxkWLfr/H2Tof39/kDpJSaAZAAHEAtb9HyT99y9UGgh+//7/6zfD799AFQABxPAXaFll5b9///4CwZ+/QIN///7969evn0AQHf2egQEggMC2MDL+BwOoATAAcS9AAIFt+fEDLACGyCq+fgWqAAggFiBmBKrw9WX48+f/1q1QSXNzoFMYZWWBsgABBFIB9BXI5UDXwcGvX0AEcSlAAIFUMP3+A/QYSFF8AtAahp8/gLoZwNqAsgABxPgVKfj+oYYmBAEEGACuqcePp4nP0QAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFXSURBVHjaYvw/kYHhBwMI/GP494fhU85HIAsIGCDUv3/iJ8SBUgx/wIiJASCAWBi+MDC4VgOl///7x/j/Hz8/7///IN5/GBWjGfPn/+/f///8/v9707FNAAHEwsACFv/6lOHfX4a/f+Hq4OD299u//v/6/e+3LLss0CqAAGIB4v///oNU//v7/+9vNNVA8OvfL5AGoCX/fgNdBRBALEDnMTL8Zfj/5z/QB//+/McAUA3/gK4CaQAIIBaQV8Bm//9LQMMfoII/DAABBNIANBuMfjH8xWsD2EkAAcQCdAjjf6DxYNV/f2HVAHTMn39//v4H2QAQQCANzCClvxlArvqNVcMfkAaQImCQAAQQy78fDExATdySID1//oKjkIGRkZEBBpQ4lIBe/PsPGOR/GX4xAAQQ49dShn+fQHEM1AlEH7ru/vnzBxLTEIb+Dn1QTDOAY5qNASDAABikdpxDoY3+AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHcSURBVHjaYtydXr3lg8jESy86v5xhYfhX/EcrnOWdn5lI9NptDAwyDAw/GBh+ISOAAGI0N29c3+P5XUDk741r/37++iMmJSLCs+fetzOXrzOzcv358+/P378gEgT+LewvBggAMQDO/wSc5JgC0hUP8O357u/++fkHEQ/4+/809/qr8hgEBw38+/37/P2tmGVIXpMbGBAAAPgCiGmHmM0/FU0WVdXfQqL/pOTY9A2/S8hd51H6DVT6+8/Kqcm/fv8GqgZqm9MZA3QSQAAxPTBw+snGueAJ/1MWoWcMvIu/yPyWVnjKxPfr1+9fv/96J04Fkr9+//n1609U/jwGhr8AAcT0bt+x5WdeX375bv8Tht2P/x86dWX6pQ+/f/4AKlo/M+3XH5A9INuAXvj97/DhwwABxLL84Ttlxn9AseuMLL8ZGYHij568vfP7Dws7n1vMpN9/QcYDffLnz1+g721tbQECiAnorL9/QQb8BhkGMu8XyEgQCXTMniV5ENVAqdXTUhgYGAACCKQBGF6/gQimCEKCXfLHMqgLSB5fXwq0yi9lOlADQACxADUAzRYX4QVZCjHs7z8QCQ74v/9AkRCcMVtBRuTv339ADQABxMjAYIgalz9g5F8GbAAgwAB2s0hu2PkgEgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFUSURBVHjaYmRIP87w7Q/DHwYGJgaGH/8YuJj+LrBiYGD4hxUwMAAEEAvDlz/VUYrxZsILTr/7+/svHyczAwMjA8N/RkZGZmZmJiam/0jgy5cvAAHExPCPIcVChOE/Q5yJ0KO3P59++AlUDQEYpoOsBQggoDsYll149/f//503P/z+8//PX4b/uAFQA0AAsTBwCHz8w9q47/2f/wx/2Dn+/P2FSzUDGAAEEAvDvTtMnziZP/749/c/079/v/g4/3///p+BAdlYqAYmpn9v3gAEEONfoK78/P8PHvz//YsB6Kbfv4GM/79+///1C8RGIpmUlN6fOgUQQCxAvzCChRj+/EFRhKoaJPvnDzDwAQIIpIH5D8hgBrgiTG1/gBr+MvwFuQYggEAamH7/YZCUBBvzl+EPSCcj2EgGCAlEf/9CEFAxQAAxfgWGLhJiQOWiSQEBQIABAIaNaAY5Pzm9AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGfSURBVHjaYmSYyMDwgwEKWBgeFjPIgJn/4Ogrw79/MMTAABCAQjk3AgAEgQCIX2BmU1ZFV9aGkQfnkGy0XUx0aw5G1Fjqcl0cBWhAnY8D5CNTs/MFEAvQVAaG/0++Pv37/+9fxr9/Hv9m+Pz3/+/fUMT1+/+/X///A9FvRkZZoCUAATgaYwMAYBAGObT//xujVLuwASf2RXWZySYuJGw0grj6+WVEjvAEEMh8kAuASv79AboDZCpQWwPQ4N//y3/9/4miAagYIICYGP4w/Pn39/ff37///QaSIIMLfv0X+/Vf8tf/ql8g7v9fUARU+I8BIIBAGv7+Axn/6++vX/9+/QM6o/7X/+e//j/9+b/k1//fP+EaGP6DnAQQQCxADSDH/v0F1POb8RfISUBnZIN9DPQMG9w9wFD68+cPA0AAgTT8+fsH5CSgEgawol+/oKohAQXV8BeMGAACiAUYa7///ZHklgT6Aeg6JqnfDDy/GYF6gaYBSZ4/DIx/YKr/Ap0EEECMDKUMDJ+AFoIRA8PJhQxKyNEMRA+h0QwBAAEGABDIZIMH+VDlAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFqSURBVHjaYrzOwPAPjJgYQEDAleHVbhADIvgHLPgHiQ0QQCxAlkR9NW8sw+cV/1gV/7Gb/hV4+vfzhj8Mv/78//Pn/+/f/8AkhH1t0yaAAAJp4I37zyz2lDfu79uqv/++/WYz+cuq/vvLxt8gdb+A5K9/v34B2SyyskBLAAII5JAva/7/+/z367a/f3/8ZuT9+//Pr78vQUrB6n4CSSj6/RuoASCAWEDO/fD3ddEfhv9/OE3/sKj8/n7k9/fDQNUIs/+DVf8HawAIIJCT/v38C3Hr95N/GDh/f94AVvT7N8RUBpjxQAVADQABBNLw/y/Ifwy/f/399ufTOpDBEPf8g5sN0QBEDAwAAQTWABEChgOSA9BVA00E2wAQQCANQBbEif/AzoCqgLkbbBYwWP/+//sXqBYggFhAkfL7D7OkJFCOCSj65zfUeFjwg8z++/ffX5AGoGKAAGI8jhSRyIw/SJH9D4aAYQoQYAA6rnMw1jU2vQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAF1SURBVHjaYny/neHfPwYo+Adig7gQxh8MxMAAEEAsQAkh/Wqg4v9A7n8g+vuf4S9Q8v9/kJL/DL//A8l/v4Hc//9/39uyCSCAWMAmA9lPgUoZ/v0FskB6QCp+w8hfYPSbkV0WaAlAALGAzf6PqvoXyLx/YKX/f8EYvxn+/f7ziwEggFgY/gC1/GVg+POf8Q+IBLqBEWwwiAHWAGQwgDUwAPUwAAQQI4Pg8dIOhYcvf/35+//3H6Ah/8EIxPj1G0j++wVh//mrKMF+aNJJgABiYfjB8OcPEAGF/sPIf79+Q7QB9fz/hWQQMPgAAgik4edvhu+/GP78Zvj9h+EXGP0GawAxIFyQiYy/foHCByCAWK7/txS7kfP73v3/v3+BTf79DygDJIFcoD6ws0CCf/+wKSufZzgFEEAsbAwMzH9+MEmKgB30C0SCpIHu+A1hAw3/9/ff/79//v/9wcPAABBAjHcZwOHEwPALFL8g9AeJRENAABBgALCAa8EvfPnLAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFvSURBVHjaYmTgb2X4xQAF//4x/PrD8P8fA8MfJPQLRgLRP4AAFMS5DQAgDARBBwSIxuiIPgic0Cr3gFejbTF6nukIO2SLhirQLLoUIfzBe+UTQIw///9nZgArBxJgBlgzCoDwGRkZP3z6BBBALAyLFjEYG////u3/P6DEv///YOgvmAQ6D2wRkM3Ixf1r9UqAABTGQREAIAgEQBwL2ICW9KOFX4nBISifnR2HaIlcs4pIRAUKICD9x9O9+u1k3qpPALEAPcgAdC9QFOhGiAawNFwdiPz169/v30xAExkYAAIIpAHsKaDxv0AaQEqBKn4jmw0lgYiBASCAWETaWzkcnf99+QxxKIT8B3M3kAT6AeyXv0x8fDKTJwEEEOP3nz9ZmJlBcgyI0PmHGUoMDMBQevP2LUAAMTIwFLfOiwI6CmjQHzAChT2QC6T/gOIEZMG//0BxoK6l7WUAAQTUkA6LRXh0wrmICAazgSQTQIABABaBedMaHOruAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFJSURBVHjaYmRgmMjA8IMBCv4xMPyBkcjoF4xkAQjAoZjbAADCQCwFqzFVJmGNzEZ3T3gky3LhEbEz53vdF6lJSyZfEAb1bUBV6wggFrB5/548+QxUClT3+zeQ/PsbqAKE/v7+9ffX77+/fgFF/srK8jIwfAMIIBZTUx1NTSFRUa5/////BZn9H2w8yAagTjADikRFObZvtwAIIMa/L18yiooCnfT//38GMMQFGBkZP924ARBALBDPQoTgDKyAgZERaBFAALGAPAsVwGs+0Ib/wFD5BxBALP+cnBjLy/+/fs0ADiAYAnoFzIAJgmRFRP50dgIEEMu/69eZjx37f+8eAzCAgOjXLxCCMOAif34z/PnLoKICdDNAALEAA5Xp9x8GSUmgHEgUKPf7NyOI/YcBQoKNhyCgYoAAYvwKiQgYYkDlokkBAUCAAQBzjGcaf+uHXwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHFSURBVHjaYrzNwKDquJyBjYfhxzeGfwwMf/4w/PnH8AuI/sBIMPoBRL8Y2NgAAohFhYHhk831pRr+H7iF/v/7/+/f/z8Q8u8/IOPPn39///37/ef/73//gCLzc/YABBDjZwYG7uqqT8+e8yUl/LawYWD4D9T2/z8DFIOpf2CakZHx/cePAAHEAnTF73//OX///jx9Bs/Xrwyu7v8ZGaAKYYgJTDIyMrAxMQAEEONHBgb29nZmM7Pfs2f//P5jH5/WdvMwoON///kHcgaQ/AslpQQ5lhRuBQggkA0srq4MurrMv/+wTppk9/LMp11f56gF/f4FhH9//fn7+/e/X0ANf/79lOBiYLgHEEAgDX927GD69On31Mk/f//ay6uz2ypa/B8DxFQQ+gOyAehjCREOBgYZgABifMvAwJWV9f/+/e9//vAmxP0PCfuPDTAwAP3A+ObNG4AAAjvpz58Pf/5wZaT/9vL9/+f/f2iogEhg+ILDiwESSt9+/AEIIBYeBoaPf/+3RfT9esvwZ+FNiO3AGPgNYfwFxcPfv////vv/9z/DvuY5AAHEeJqBwVR0JjRSgdH5/w/QUzD0C0z+A5MMYJIJIMAA5qlT7L92ZXAAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGjSURBVHjaYmRI/M8AB//+MfwBkgwMvxgY/vxj+PUPSgLRDwiDASAAhXJOBAAIQ0GUADJRggJs4JHyHyTNzhZvJjurMG0r6MZkNBXQgHo+5Cp99/sCiAVi9LNPQBVgC0ByIA2/YOp+A9EfEFeanxFoD0AAgTT8/QdSDbTcXOo8kBenv27OWb9ffxn23DUGKv39F46ATv0HEEBMQIVggxmsZM5G6W56+EEkek3zg/diyYarHOSP/QJb9esPCAH1AP0AEECMf//+ZWRk/A/ywGMGRpn/uAEjE9PHDx8AAojlAzMzV3U1o9x75lCeH2n3/v8BGvX7/69fjA6crIn8P2c8/7PlLcgTv38zycm92rULIIAYf//+DbEB6Bk8xgNlgcrevHkDEEAsrAH/StOYH7z7byd/MtFwddWuzMsvFVSF7nW5dfQdjVh/3Q4SUMCgUxRm2F/AABBAzAwK1WbGTFxsDC+/SL/7Li7O873TbcaLL7JnnhmfeGrJx8HAy87Az87IxwkK9Ic7vwIEECOD/VekiAQyGBBRCwy73//AMQ9BIAAQYACLEkIlDYvwWwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHySURBVHjaYmQQj2foWcjAwwAF/8DoD4xEZoARQAAxMjCsr25VYbA78k/q0T+Gf3///f3z/+/f/3/+ANE/IPr9G8T+HSj6Z+mz35t2bAIIIBYGBjaGb1xP5jj8NTr1137Pb+bvQD2////+/Q+Kfv37BURv+IA6ZYE2AAQQC8gV/xj+/v3354Txn2vyfwNW/5J8ADT799/fv/7/+v3vV5/a73//f/3//9uU97dJEANAADEB1QNVt7YqcXMx/3kh+GtacoccY4zEr1ipX92qv37+/ZV29VfSlV///v268uV38xIGgAACaeDjYykquv3p099Jk1V+/+SS5P52+/ev+U9/AQ3+BXZSpsyv0x9/zX36B+gkgAACamBISZEAepOF5V9+/u1fv34+f8qTI/5rhuZPtj//fv37CVT999+vzgdA5/0GagAIADEAzv8DAABT9vYH7Oz7X18YKSkJxsbvr6k98+wI280ie2xs+9ghwxnRwvjz/P78EAUP59LnAggYrMvT0gweP/7+8+e/Hz/+gkLkFzCMWECu+f0NZCzL1z8JM/9YHVThUrm44iJAAAFD6dfv33919XgyMyRLS++AwhwcnH/+MPz+zQmOC/a/Wyv/PvD4G7kE6CSAAALasJSB4RtSZCJH7C8wCZEFghsMjPsBAgwAk1A9QmWywvkAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAE+SURBVHjaYvz48SMDEvj3D0zAKQwAEEAsQMDFxQWU/v//P0QPmP7/H04hgRcvXgAEEAtM0X9kBqqyf0AxIMXIyAi0ASCAmFBV/2P4du3/r+f/H0/4//fL/x93/j9o+n+v8f//P1Ct//4BBBAL3PUgbV9O/n+59P+vN/9/vv7/btt/Dtb/fAH/hSL//2eCGPrnzx+AAGKB+A9iAAOn7n/mX///v/rP9v8/m/R/Hqv/gvFwlzGAnQQQQCANMIH/fxnYDzP56gt/4+PWu/b59fXPbwMEEF5hBDsJIIBYEMaD/fD425czr97I89288uqKMLcIwniYVwECiPH9+/e8vLzIDnv+9fnuxwfcZZyEOYSRNQBD6e7duwABxPj27Vs+Pj5kY7CFLEgAiIEaAAII5Id3795BYvEPGOICkMAECDAAlKhdBC91VK8AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFuSURBVHjaYmSIP9sdIJLlJsIABv/+/YOQyAw4+PPvH0AAsQj++8LGK3vzxV8DRR6Inv//wQScQgIvXrwACCAmIOD+/2f1hS9Hrn+EqIArQzMeYiFAALEAGX///ef6+3PjlX9///2z0xL4jwNANAAEEMsfoLuAhv3/z/3357qLf//8/eegLYBLw58/fwACiOXXH7Bv/v7/+/c/59+fK87+Fd++WkmUDcj/9+cPkGT4C5b7+5dRQIAhLw8ggIA2AA0FCQL1/P77z/fCGplzG37++v3/16+/v0Hk/9+//4FJFiWlDz9/AgQQy98/QKeDlAI12J3faHduI1TR798Mv34xgPUASaBrQIiBASCAWBh+gawAqT630f48SDXEPLg2kMgfoAaQq4A6AAIIqAGk2uvZEdO35xmkpIFyTEDzgEqBHvj9mxFI/vnDDPMG0AaAAGJh+PHnWohxCMP7l8BQAyNQaMDYfyDRD2MwMTAABBgAMxl5E8UTSgsAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGzSURBVHjaYvTxcWb4+53h3z8GZpZff/79+v3n/7/fDAz/GHAAgABi+f37e3FxOZD1Dwz+/v3z9y+E/AMFv3//+Qumfv9et241QACxMDExAVWfOHkJJAEW/gUEP0EQDn78+AHE/gFOQJUAAcQiy8Ag8O+fLFj1n1+/QDp+/gQioK7fP378+vkDqOH39x9A/RJ/gE5lAAhAYhzcAACCQBDkgRXRjP034R0IaDTZTFZn0DItot37S94KLOINerEcI7aKHAHE8v/3r/9//zIA1f36/R+o4tevf1ANYNVA9P07RD9IJQMDQACxADHD3z8Ig4GMHz+AqqHagKp//fwLVA0U//v7LwMDQACx/LZiYFD7/5/53/+///79BqK/EMZ/UPACSYa/v/8DyX9A0oTxx2EGgABi+a/H8F/m339BoCoQ+g8kgRaCQvgPJJiBYmAuw39hxn+uDAABxMLwi+E/0PusRkwMvxhBGoDkH4b/v/+D2EDyz///QB1/QLb8+sP0lQEggFh+vGXYM2/SP6A2Zoaf30Ex/J+PgekHwz9gQDAz/P0FYrAyMfz7wcDAzPDtFwNAgAEAd3SIyRitX1gAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHOSURBVHjaYjx8/f+MPQwv3jFwsDEwMPz79Yfh3z+GP38Yfv359+fPvx9/gCL/fv0CM379Y2NhAAggxv///3/5wXD1McPjt/8ZwACo4d+//3/////7j+EvkPH3P4gLZuTO/AIQQCxAFTwcDGYq//m4GE7dZvj84z8TAwNI9d//f8CK/vyFqhbkYQSaBBBAIA1AS4CkhhSDCO//ozcY7r78DxIDm/rnLxT9A2r7y8Dw6x9AADH9A7oAqGHnzv9fvwpzM3gb/rfV+M/J+J/h138mGGL+9Z8RjBi+MAAEEMgGhrNn/2/f/v/TJ4bgYEbG/4YK/79x3tl04euff//+/P0LJkHoJxcng8AOgAACO8nI6P+LF//t7cEO+bfpw6a5n2c+l3/9+//vX/9+/f4HJv//VmJXYvA6BRBALEAnMQKN9fQE6nz089H0V9MPfDwAlEao/g8igYH8l+kP0EkAAQTSwMzMDPT33k97p7ya8vLHy1+Mv5DMBuoExgRQw98//4G+ZgAIIJCGD/8+rPmw9vDHQ5xMXDKcMkB1ICP//4GQILOBIfQPGLB/GX4xAAQQy7QX04qvFTN8YGAAhv8fMPoHJn+BGf9gggxgkoMBIMAAfNNeI2mv5cQAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGBSURBVHjaYvzIwPCPAQqADIG/f/+9evVBUvIfmIuM/oDVAAQQC5DFUV0NVv4PiBgZGZl4eblLiv99/fb/z5//v38zgEkg+9/v3y83bQIIIBawtv//njxl+Pv3PxABwd+/f+8//PflM0jdr9//f//6/+sXUDWTrCzQdIAALM1BDgBADAFA/f+PSahm9+YwuAc4X3ev7cSiHz0ts0EjEVgBOBpzGwAAEAQS99/WDkgU7e95IWi+NuQ7VE03KHz7KiRykwKvAGIE2g90938wgBj//x/QRob/GICRienjhw8AAcTCAJdjAEOwvv/YACPIqH8AAcTyipmZNyvr7/37IFf9+sW1a9f/jx+/+Pr9+/wJ4h6IB4CyLEpKT86dAwggsA2QgAO6FUhCLPv1k+HnT6ggUMMfYOD+BXoV6AeAAAJ5+v/vP0ySkmBj/oICmZkZGIIMX74wQoL/zx+mv2DVf0GyAAHE+BQchZCIBCKxt2//PHr0xtAQLghJB5BoZmJgAAgwAAauWfWiVmegAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAH+SURBVHjaYmToZECAfwwMf0Dk3ygGZlWGnz9/slewg0R+MUDJXwwAAcQCVNbs0gwk/zL8/f/v/5//f/79+88gwlpc/I6ZmTkrIOv3v99//v3+/e/Pn39/VsxYARBALBCjn3579u/fX6AQUEPMlV+/D/wp/c34qz3NjenxJO2/QD2///yW5pEG2gAQQEwgBzD8/Yuk2uDDl3bXP1FWU7Ksfpq/+5R57vuvP79+/fv15+8foAaAAAAxAM7/Af3hAAERhwD85v///QD//Pyd7Z5C80kvBlzbB/rOkUAVWH25+gJxC///+gEDHPLXqQIAMQDO/wEAAAB8e3bj4+L7/Pz8+/uSGwQMA+1kK535MVyZnPcF+/vx8AlO1/L6+vofHyC5usACiPHv379APf+BgAEE/3SmLzK7HbX3B0vW/4T732Q//63dKcvUvh4oz8TE9P79e4AAYmSoZij2Ln74+eHvv6DQSDn/w/Td57XOvxJ2/m50/5u97schbuYmo/9ADyjyKR5qPwQQQEzAAAZyfv39BdTw6+/vidr/jnIxJe1mev+So367NEQ1UAoYrH+BnvzDABBALECP//7/W4JTAhhEQJ3AsFpj/dvPgDMv/cXyrvXLdvrLA5UCwX9QSAI1AAQQI0MuSkRC2C+LGMQdGZ4+fSodIg2VhSQCBgaAAAMATZ0sjL04zIMAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGOSURBVHjaYmTWXMwAA3///GP49Y/h37+31xL4/ny4Jyj8j4EBiP4gkQABxAJUN6nG9D8Dw///DP/+/v/37/+ff/+42BgYWbhEU1P///79/88fIPkPTN7dtAkggEAagEpfvfvxF6L67z8g4+///yz//v6+e/f/r9//f//69+sXUDWzrCzQBoAAFI6xDQAwDMKkKP8/TCE1TAw2Yp0KhXJ2nllEJLly0KJEGolXXwCxMPz59+cfTPUfqAYWxv//mZhB6sBKwTp//wNrAAggxr9//zIyMv4HA7DzcAJGJqaPHz4ABBDjXQYG4fz8Pw8eAG3///sPyLzfvwR37vzLxBJTegRo2+8/f8HkPxlx7qV9CwACiAnoj/9QS/+APAdEP4Hoxy+w24Cqf4NV//kDdAoobAECiAWkARJwILN/Q9wN9jIwhKBmAxX/AYUKSANAAIE1/P7DJCnJCApyoMd/AxmMTMxMjIySYlx/QaEMCol//0AkMOoAAojxKmpEQki1qxc/cImpK9YgCUMYDAABBgDEsnffT0k7VwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHYSURBVHjaYlSs9P3w4wsDGPz68+fHr19/f3xhZuO6W7eGjZkVKPj///9/YPDnzx8gCRBALG++fegIyP3PwPDv/7+///7++fsXJMHCLCopyc7ABFT+7z8CPHr0CCCAWFiYWP4z/H/56R1I6d8/v/79+f37l/LHX3+kbv6TlPzHygo0FaKai4sLSAIEEAsDWACo+vffP0Ak+/lb4J3XnL9+fvu9ncfdl0FUlIGZGW4DUC1AADH9+PMLZDBQ9Z/fv/7/cX3wluvXzwZNMWZP3y9b1zIyMUG8B9EAdC1AADEBfQky/s+vn39///z1S+Tr90t/fr3gYPneWv3zzMmXyWFMTEzMzMyMjIwQrwMEENP/Xz+ALvn55/fP3yA9L//9Vnvxge39B/bCKjZldan5ayCqmcEOA2oACCAmhh/fgO759Rus4eeP5eIc31kZOo/c+r10AX9A+P9fv4CKgE4C6gGSf//+BQggkAag638CnfT7149fPy9wMmRoC0yV5uFy9fkvK/uPgwPZx0A9AAHEwvDj068/v0V4BH79/Q2yB+h19p+PxNn+WVv9/w82Fmw8RDWQBAggRgZvQYZX7xl+MDB8Y4CSwHhnY9i357AQJy9EEdAlEAaQBAgwADDnTcmcsDekAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGGSURBVHjaYvx5U53h3ycGCPgHBL8Y/v35x/ALyPj35/+/f0BBoDBQDEQCAUAAsTD8e8cs1gJW/pfh/3+m/0Dy3///fyGI4f+f////gMh/QME/H250AwQQCwMDEP1n+PMapgIkAUL/wEqBJMPv//+A6A8jqzjQeoAAAtoAcgpW1SB1ION/g7m/gZqBbgUIIBYWrk+MzD8Z/v+AOwCGoOogxgMZjCzfOLgYAAKIRaSkri3R+tX7L3/+/v/77++fv//A6O/vPyD2779/gRTQ5N9//0kI80zJfQwQQCzvb0k9/cD3+A3Lb5A0yNbff/79AqsA6vn95z9M8O/nv1wMDEoAAcTC8OMf2CSQut9/4Iy/EMavP///QKz68+/vX1AYAwQQ43kGBqmiol8PHvz//fvf799Q8tcvIAk2GSTy/w8Q/WVVUjp78CBAALEoMDBwfP3AIMgNEgUZC1LBAGL/AYn8BVkBVM3w9+//L291GBgAAojxIQPDH1BsoqA/SAwGJAYTAwNAgAEA/GyBI0uDlLwAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAE/SURBVHjaYmRw3s8AB/8YGH79Y/gDRr/+gNhA9OMPmP2H4cc/ht9/AAJQKMcEAIAwDMB2YAV5U4ArNOCqa8v25MrqdnJPVsim3JlS0cU2MAoy6JvvCyAWiNFP3gPFQaqB1N+/IBIo/fsPiPz1598vIPf3P1lhdgaGPwABxAJ0xj+QkUCDQaYCVf8CGQlSDVIHJP+A9Pz+B9QMdPEfgABiYdjv+Ne07M+jR3+A4DcIQsCvX2ACRoGE5OUZGA4CBBDISX/+/AVy4Rqg0sjKwTRQHqgYIIBAGv7+BSn+9fsXzHyQAmSz4UYAFQMEEOPTp0/FxcX///8P5PzHDUBKGRkvXLgAEEAs/4BeBislqAEc9P8AAgikAa4aHoFAwxhQAJD7H6IBIIBAGh48eACyBwyBnvkHBhAGxKP/YADIBggwANQufux425lWAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFjSURBVHjaYnzLwPCPAQr+oZJw9AdJECAAx2FuAwAIA7EUlGycrRiKJe4jorBlr2F3z8QuO1KoiCGLDDDh7wLuOU8AsYCUMvz/++QpA1Dp379AUZAeIPn7N0jdLyDj179fv4DiTLKyQKsAAoiFzdSUSVOLQVQMajxQz9+/v3/+Zrb9xrSf9d/vX0Czmf6ALGQUFWXbvh0ggBj//v3LyMgIsuf/fwYw/Pfv74/X8xh+P2GVqGD4z/IfBoDKPn36BBBATBDvQsXA9K+XXX9+fvr39+evZy3/kQHQ0//+AQQQE5pqMPjz+8//H7/5//3/jaL+P9DyfwABxKivr19YWPj69Wug2/6Awe/ff1ICXwG1TVrKD+QCXQgkgbLi4uJtbW0AAQRyfVpa2r17936DwS8wgDBAJJgFNASoRUVF5eLFiwABBApWoJGSkpJAKaAoyAIwAFv1G2LnXxgAKgYIIJIRQIABAP7XTmNIudjEAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGOSURBVHjaYmAgBWxkYAAIIBYgVV9fDyT//fv3FwyAjD9/fv/5A2L//v37DxgChVq+f+fduBEggFjAOv8/ffoMKP0HDn7/+QXUAiTA4N+vX3O/fZOUkfnEwAAQQCz3798XEhICSoL0oQKgVf+Bgr9/f/H2lv31C8j4x8AAEEAsIlIi3KzcENUMYPj/zJn/J0/+//Dhf3k5UNFDS0vZnz+BDAYgYmAACCCmfwz/EGYD6StX/s+a9d/N7f/370ABqGqg8UD05w9QKUAAMYHshasGAi2t/0lJ/9eu/8/IBOTJ7t77HqL61y8GsJMAAojx7vu7QhxCf/7+ATn6/z+ITqApIJtB8P//37+YdSwF/vxhVFJ6c+4cQACxKDcopwWk3ft47zcwDP/9/gUMkb/AEPoNIv/+Bvn0/6//Tb/Plv4V/vsX6HiAAGIBGvL7/x9JHkmg9J9/f/+AtQHRn39/QCQwqP//+fvvb9CMvxs7/wKdBBBAjAzZDAzfGBh+gdEfGAOZ/QeMgGo5GHZeZgAIMAC5IE8NnTqEdQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHzSURBVHjaYkxOP8IAB//+Mfz7w8Dwi4HhP5CcJb/n/7evb16/APL/gRFQDiAAw3JuAgAIBEDQ/iswEERjGzBQLEru97ll0g0+3HvqMn1SpqlqGsZMsZsIe0SICA5gt5a/AGIEarCPtFh+6N/ffwxA9OvP/7//QYwff/6fZahmePeB4dNHhi+fGb59Y4zyvHHmCEAAAW3YDzQYaJJ93a+vX79aVf58//69fvEPlpIfnz59+vDhw7t37968efP3b/SXL59OnjwIEEAsDP+YgY53b2b89++/awvLn98MDi2cVxl+/vl6mituCtBghi9f/v/48e/XL86krj9XzwEEEENy8g6gu22rfn78+NGs5Ofr16+ZC58+fvyYwX8rxOxXr169fPny+fPn1//93bJlBUAAsQADZMEBxj9/GBxb2P/9+S/R8u3vzxuyaX8ZHv3j8/YGms3w8ycQARmi2eE37t4ACCDGR4/uSkrKAS35B3TT////wADOgLOBIaXIyjBlwxKAAGKRXjCB0SOEaeu+/y9fMnz4AHQxCP348R/o+l+//sMZQBNLEvif3AcIIMZbty7Ly6t9ZmXl+fXj/38GoHH/UcGfP79//BBiYHjy9+8/oUkNAAHEwt1V/vI/KBY/QSISFqM/GBg+MzB8A6PfYC5EFiDAABqgW776MP0rAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAflJREFUeNpinDRzn5qN3uFDt16+YWBg+Pv339+KGN0rbVP+//2rW5tf0Hfy/2+mr99+yKpyOl3Ydt8njEWIn8f9zj639NC7j78eP//8739GVUUhNUNuhl8//ysKeZrJ/v7z10Zb2PTQTIY1XZO2Xmfad+f7XgkXxuUrVB6cjPVXef78JyMjA8PFuwyX7gAZj97+T2e9o3d4BWNp84K1NzubTjAB3fH0+fv6N3qP/ir9bW6ozNQCijB8/8zw/TuQ7r4/ndvN5mZgkpPXiis3Pv34+ZPh5t23//79Rwehof/9/NDEgMrOXHvJcrllgpoRN8PFOwy/fzP8+gUlgZI/f/5xcPj/69e/37//AUX+/mXRkN555gsOG2xt/5hZQMwF4r9///75++f3nz8nr75gSms82jfvQnT6zqvXPjC8e/srJQHo9P9fvwNtAHmG4f8zZ6dDc3bIyM2LTNlsbtfM9OPHH3FhtqUz3eXX9H+cOy9ZMB2o6t/Pn0DHMPz/b+2wXGTvPlPGFxdcD+mZyjP8+8MUE6sa7a/xo6Pykn1s4zdzIZ6///8zMGpKM2pKAB0jqy4UE7/msKat6Jw5mafrsxNtWZ6/fjvNLW29qv25pQd///n+5+/fxDDVbcc//P/zx/36m5Ub9zL8+7t66yEROcHK7q5bldMBAgwADcRBCuVLfoEAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGCSURBVHjaYvz48SMDEvj3j+Hfty/npKX/MTAY3L7NwMf3DxUABBALUBEfHx+Q/P//P1QPJ7t6UdG/P3+EpKQY2Nj+I4Fnz54BBBALRBFcNUj4378fDx78+/3739+/QBvhqhkZGf/8+QMQQCxoqiEkUPX/X7+BShiQjAc7+B9AALE8SEmRi4//++ED0Dyg2Qx///77+fPfr1//f/9+PWMGUBVQHCT15w+LkNCF3FyAAGJ5t3q1oJLSr8eP///+8//Pb5BLgMYDyV+/3q1Z8w/MAPrn/69f7AoKzxgYAAKIhcventvIiE1e/t+/vwx/QIYBbfi4dStQKa+LC9QGoIa/f1lFRAT27QMIIMa3b9/y8/PDXQ/ywI8ft1xdgQar7tsHDyWgLNDTd+7cAQggFqA/kL0LkQQ5A4j+/mVE8jEQAEMJIIBAGuCqIaKMDAxsMjJAJzEyMQFNhYlBZQECCKTh1atXyHH56927Q1u2/GJgcLh0iUFICOSEf//+gB0CBAABBgAC4UQezUonUAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIfSURBVHjaYjzMyTBHh2GNGcNXOQYGDgaGXzD0B4zQGAwMAAHE+J6Bgae67jszwzPuPzfF/90U+/uM/89f5j9//oLRv9+//4HJv39+//u9adYmgABi+cHAwMbwj+nlMyWJP8qX/9qx/rn94fdZ+T97NX69Y/31m+H3rz+/gOj339+y3LJASwACiAVki+g/1oA//1l////4l5v7t8HLP9qT/voe/HNF8s9J2d8nZH8/4vv1m/H37/+/gRoAAgAxAM7/BP4AAAVH/Pq5+wER/AIn/PaN/Ah0+voY/Qjc+zvu+znP/OsF/M4a/cQh++cw+wD2AAIAMQDO/wQCAAAABv382/0HV/z//vv97fz/9PsAGPv81/z7/foA/foP9fhK6vpHy/vi2gurwQACCGTD/99/WAx//Qfa+e83W/gfBtGff5/9Yfz5gw3o4V+/3jNzHZMwPy9s+V7HjmFbPUAAADEAzv8E/AAA+bf+BTz6/OT8Ahr6Ahz6/qD6A9L78wAI2hQyzhQ20RI15Qob9/8FJQj7AADaAghkw7/rf77v+82m8YuR4fenU0z3/2pdVDc7LWr1lEPqKwMb44+fDL9+sf758Y8PGEJ/AAIAMQDO/wQGAAAE+/n4Eh7e7xvZDivSSzTvBA/7/gEE/P0c/f7+/fj8DAD9/gP9/QL9/v8AAPwCiHEjA8MSBsc1DDH/eS0YfnAw/AZGzA9Y9P7DQAwAAQYAUN0czDhQ58AAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFnSURBVHjaYvzPgAD/UNlYEUAAmuTYAAAQhAEYqF/zFbe50RZ1cMmS9TLi0pJLRjZohAMTGFUN9HdnHgEE1sDw//+Tp0ClINW/f0NIKPoFJH/9//ULyGaUlQXaABBALAx/Gf4zAt31F4i+ffj3/cN/XrFfzOx//v///f//LzACM/79ZmD8/e8TA0AAMYHdDVT958vXP38nMDB0s3x94/Tj5y+YahhiAKLfQKUAAcQEdtJfoDHMF2L+vPzDmFXLelf551tGFOOhev4A/QgQQExgHwAd8IdFT/Wz6j+GhlpmXSOW/2z///8Eq/sJ18Dw/zdQA0AAMQExxJjjdy9x2/76EfLz4MXdP/i+wsyGkkA3Aw3984cBIIAYfzIwMKel/bt3jwEaLNAwgZIQxp/fDH/+MqqovL14ESCAWICeZvr9h0FSEhSgwBgAygFDEMT+wwAhgQgc4kAEVAwQQIxfUSMSTxxDAECAAQAJWke8v4u1tAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHiSURBVHjaYmSIVGT48okBAv79Yfj1h+HfL4Zfvxn+MIDQDwaGX2AEYXAwAAQQC8Ond9WpbSDF//7/+//3779/f/79/fvnF5D88+//n79/fwN5f//8/gdk/N6UOwEggFgYfrAx/GZ88v71338g1b///frL+IeRRer3339fv975/eP3L5Ctv4FAVkQCaC5AALEwKL0WEfj5m+kb0Eig6T9/M/CJFTEzswE5X378eP6o5v//H0CzgZZI8HMziDIABAAxAM7/Af39AAEBdgAA4v///AD//JPMhOz2Ez4dq+DwINTrMhAG53g6YP//+v//+wEBH/LywQKICezZv0A+CDH8/vqLDaxa8c+/f07yS998FwCrBiMGoBgDQACBNADNBiEGkCgj04/t90L+/f8lxXNjy+1ITtb3cA0M/38DNQAEADEAzv8B+wAAAYRq/+XfAPz8//z6+vkAg1GY8QcM+/7/CPPvhJ9UBP/0//v7APz8AR0i7KvOAojlHwMD86M//+/9Zvj9GyjB8utXXXPUdQltYFhq3DnF9Pvb/1+//v8BavjL8P0v0DkAAQTSwPT7D4OkJNiYvwx/fjP9/q39+xXQxf/lpf7/+QM0mwEYMmAEVAwQQIxfgVGGhBhQuWhSQAAQYAAhCj2m2q78nwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAHZSURBVHjapNPLbhMxFMbxv+2ZlMk0jRpCqASRuFVCAiHgeXgT1jwJLPoMgHgCBIuKInEJjUTaiFzIdcb2eGwWDSWLbkLPxpvz/eTF+UQIgcuMACrA9urdZCywiID6i1cffl208fdzQlwsPH/2tBUBaekDd/ZqAHjA+4CSAinPkqUPeB+QUiCFgBDo9OcAaQQoV3oy45hlBZVYsddIGM0MsZJUYoktPLVqxGCq0aZkpxrjSg+gJIAtHEvtmGaW++0613cTbFGy1AW5cdxsVmnWEx7c2mWWFyy1wxYOAAlgjGGRFfgyUEsrfPoxoaIUD283eLLfxAU47IxJr8QEH5hnBcaYf0CeG05/5/SGGf1RRq0a8+hug25/QftaSm+wZDjVjKaa01FGf5yT52uA1hrvA9aVDGeadivlqDvm52DJPHdY53l87yrjuSEzDh8CWus1wGhK7xEIDjtjtpOYSqyYZYaXr7+wk0Tst+t8/DpEAKX3aLMGmFwTAkRKMJxoDt59RwCtRpVkK0IIwcHbb5wMMyIlCeEsAxABWGtXgCRSksEk5837nDgSBOBzd4IUkGxF5wdmrT0HrPeOk+Oj/6mCFUAduAHUNgzPgZ4A1KpIakOgBKy4bJ3/DABxU/n8hyJINwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAYFJREFUeNosUT1LA0EQ3YvHGTEaBSsh+IUpJJjKX2AlCFrZWyQiCJLKIqUIFhaCoETxJwgWdv4DkQQRNERjZSFRwSQGktzOjG/2HO52797Om3lv1lvbKHkmJsJiiDUsMwkTiyWyIuQQSxHI5BuR8emFYDBgcAQoQEtWaWEPBKVZGwLvdlrNzyefhYJ48NNoG8M4M4aIwsxUY2v97fQqVanGiXvgos5QYkKMxJwMrY2GBu1ETnbvHupj20fZSi1xUXwxCNHX8/Q8pjJUKMEDmmRmvneOl1ySeGJyB3PZdEccQyFjYuoGDsVGdnOrz64EuxIWxvLLN1EyAkTfeddsBVlK17P4dgrJJfH57QqOogTjPISwSTbUh/qV15HTwj2H6h5NLov1cjWulQxDMlYQMBUdn7BbyeYPM9l0s7T3uDjf2txPaReUh54BSBIf3bud30Ry1LA6Y2wktY9k4WwSYoeT+CWdoOV+tw2GD/bXezly9W/NSXd3L+7K3ZWqIAbwJ8AAqIB6+GR9QGYAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGmSURBVHjaYmQ4/J8BDpi+/LW2YWD4xcDw5x/Dr38MP4Dkms/v/wEFWEBCfxgYAAKIBaisUZkBqOk/w/9fTNyMVWX///5j+PuX8fc/5j9/mf78NWX/yMD2599/IPp78EsTQACK5RgJAAgGAuCJwgv8/28KldEZJgmHfveHp6tyA0vA0jAmJdI31Wk+TyfthRSyKq4AAmv4///vf4bfQATUC1HHDFTzF6gaiP79//X/P9gGhj8f/jAABBALw79/f/4zAnl/Gf7/AToLrOj/v/8Q44Ha/v3/DdYAcui3XwwAAQTUwABk/gGaCPTDPyCG2/AHogehgfEP0FyAAAJ6HmQ2UAyEmCA2/AY6EUkD0DSgQ4FWgTQABBDUSUBP/QYGJ8glv///BNoAc9tvSPiAnAy0BEgBBBAoeP/8YwYa/+s/wy9GsNPhTgL7+y/IbpAH/gP1/GMACCCQDb//M0mwAkPp/zdGBgYpIQZ+DkZmZobff4EhBkRAzn+Gf0DVDAz/mJgYAAKIkWHjV3Ac/mMAaf/1NlT8H1AGCbVdB8Y7iAFU8uEHA0CAAQBhu2WqL4LhywAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAF7SURBVHjaYnz6+jMDFDBJu5xg+PWPgYfp6jIDLg6GP/8YGP5BwR8w+eHTF4AAYmFiYJAQ4QEq////f2uZxr////7+ZdBQEgByIYLI4NqdXwABxPIPbDhE+tmbn0BT//799x8bYGRk/PXnH0AAsfwDqvgHNez3XyD7358//4Ek0ARk1Qz//zGANQAEECOD8cH2EpWnb34BDf71+/+fv0BtQHf9+/XnP1Dnb5Ag0Ih/v/7+kxFhX9WwGyAABXRsAwAIw0CQgv3nDbwV+DSuzpLlvSr2Dk5XN5lUYFOXDqPh3TmhvgBiYfj3B2QlyFCwarAiIADqB9r57y8Q/gNjkAJgqAEEEOPt++/lZHj/gR0d13EXaCoQra1X+Yfqc6AngZ4+fv4BQACxMLH8Y2YEcoACDBDVQARWgYZAAOg1gAACOukfPMjFBVnBHgAZxoACGOF6AAKIBejoOw/eQCJyVvFRBoZfwCiPtPzPwwWM6X9A/Ace2/8YPn35AhBgAOvHaZyBALjqAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAH0SURBVHjaYjyaW73nl1T9zGv1whe42JjKn8ukS34KCDDx/FTDIPWP4c8/hh9g8t8/hm9ABgNAADEayuZvXRT+R1zqx9Ur/799Y5SQ4hcT2Hb1+0MRQxYOhl8M///8A6O/IHLStC8AAcQy788qxqtqnMf2Mr9//+/7dzZBwe9/GCz//D9ibMDA+/8vWN3vvyAkwc3I8OsfQACxbOEySFTW5Hr/7Puf/4xCohzKCu/uP7/6mR2oAqi6eEsh6/fPIhF/Xsz/zSCjMO1XMUAAMT0zcmPk4Fh5l+Xeb+4H31iXfZRmkld89x+k4f+f//9+/xGN/PP/zy+x2D9ANtAPAAEAMQDO/wQUKii06A3FAib4GRsB/v2+3gPhJSouNfz77//+/f8Ag5AFDv/oV1EVp60AMgIAVfACiJGh8W+3M8OzzxCfMUBcDPTi73//v/3/n72zSvbF1b+fv/xnYX6tZ+dyJBMggFiA/vj7nxEcCAx/wJ77DQ4TkJMY/vPXt4jy/38e6Cm2btuPT4wMh94ABBAL0Mw/f5nBRsI0wEIGGKbVB/97Kf13/v17wcX/Z18yAIMZIIBYgPHym4FJkJfhL8RJ/4HagGxGsPNA3LMvGE7m7fn38v/ffwzA6AMIIEaGzK8gmV9gBIpXBgT3HxIDFNkMQAAQYAAAOEaMu5EPsgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIaSURBVHjaYrxfWL2CQ6dyyZvFTBt+MTAlP7FoVLvnYyVlPPcLA8MnBoY/DAw/GBh+gRlAkg0gAAAxAM7/ATszg7WMQfYZHgPW1P7z8/sYGQ0aFrDa+8zN4/r9/fz8/fv7/v79/fr8/vr8/7KdhwIAMQDO/wTC4JL/1BEOwbkA8vMA9vf/EA78/gNR9viz8jHw+QEWPDUABAT0+f359/kE1tEAAPwCiGWFlI2vqhYPD8ffOw//C4sxy0h8evb+Ihvn97f/f/3485edJ9ue9c8/hs4dX37/BLkKIAAAMQDO/wTOSl5JDg2m3h0zDvz9/v/HDTdNK+Lo0e/2+vr6/P34+/26z9MLA/v16QcG/P4AAPoCiIVt17ZFIkGH7/9+x87y+9efnZcunVXmt2b99/fnt98/GdlZmKyU5F9fOcHMJAOUBWoACCCW9vMM+X5Mf35+3/6V58/vf7///rx88dnZP8AQYfr94yfXn/ePju9/9fIF52+eD79BNgAEEAvQH7//AkPgH5D6/efvr9//fv3//xvI+/03L5Th188De78p/2FT0Pu0j81I/NTOPwABBNIADjsw+vPn12+gHhD718+/nav+xds+02d49PvXr69/f209Kwi0ASCAgBq+/f7zX1KMB2g8UCfYVSCrQBb+/bf3Nvf/v7+ARvz5z/L371+gBoAAYmRgiATH6C9U9AMctX9gcQxhAP3AAxBgAL6/P4woX6oKAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAG6SURBVHjaNMbRDQAQFMXQZzSjmcxa0tQNPvTjpK2PWb+kTDAaIrwHF+I1G48AYgGqy/dUBan+z/D///9//////ftfkIf1/z+GFx+/AwX//v0HBH//gcRzJx8BCCAWiNnvv/4GKv0HFP3378fvvyEW0kDNvZtuMjAy/PkLVP0PqE2Qh53h1x+AAGJh+AdyCUjpf5Axv//+Y2RgWHnsMVAEaOXv3yD6D0gHSA9QA0AAsfz5xwCUAKn++19Dmu/f/39XHn548vYbUAFQh74CP9CUU7fegrX8Z/j1CyCAgBqg7gOabashDHTJj59/Lzx4BzTPVlPUXEUQKHLk2iuwPX+BNgAEEAvQ+yBPgXzwf9+VV0Dq6qMPf0Ce+b//yst3X378/gMy8T/IwcBA/AMQQCANf/9DfXb+/vtfQN6//+L87EBFj15/OXztNcgr//5BHAIMdYAAYvr1hwHioT8Qb/37DzQzzk4uwV4OGPwMDKBwA6sGuYLh1z+AAGL5AXLTfz5uVqA3wMH3n+cv84bTz4COEBPg+A8yASQItBek4d8fgABilExeixyRDBD0B4xA7H9QNtCyf0DMABBgAElFl3TcfMhyAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFsSURBVHjaYvz8+TMDDPDKvbj9XlWV/eb7F2L//v0DivzDAAABxAIU5eHhAZL///8v7xAVeVlSICTKx8cH5EIEkcGzZ88AAogFYjZE+tHLP3+ePnj48/d/bICRkRFoA0AAscBV/waiv//+/fn76w8DVg0QFwIEADEAzv8EDRzodokU4ur9/Pz+/P3/APv6+/3/RnXr+vv/+/z++vz/+/v++vv++/z/HxgEwZPcAojxJgODaGPxnycP/v8FSv75/weo8BdI1W8Q4x+I8QvCYJVTvLzxKEAAsagzX88XEnvw88+vvyDFCx9FhoovBRoJMvsP1GwIqSTGcorhMkAAsbx/I8HLywtxomvxq/+/fv389e/wJBFMDwA9fS9HASCAWCDhDRECuhvogF+/sfsYCP78+QMQQCAN8CCXEmFm/iEjK8oMNIwBBQC5UD0AAcT48uVLeCzKyj7Yz2DryLD35k0Z5NgFBucfsEOAACDAAHgwX+bAaYh7AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGzSURBVHjaYiyeepkBBv79+Zfnx/f379+fP38CyT9//jAyMiq5GP77wvDnJ8MfoAIGBoAAYgGqC7STApL///3/9++/pCTv////Qdz/QO4/IMna0vf/z+9/v379//37bUUTQACBNDD8Z/j87fffvyAVX79+/Q8GQDbQeKA9fM+e/Pv18/+vnwzCIkBLAAKQOAY5AIAwCEv4/4PddNUm3ji0QJyxW3rgzE0iLfqDGr2oYuu0l54AYvnz5x9Q6d+/QPQfyAQqAin9B3EOyG1A1UDj//36zfjr1y8GBoAAFI9BDgAwCMIw+P8Ho3GDO6XQ0l4MN8b2kUwYaLszqgKM/KHcDXwBxAJUD3TJ779A8h9Q5D8SAHoARP36+Rfo41+/mcA2AAQQy49ff0Cu//MPpAeI/0FdA1QNYYNVA/3wmwEYVgwMAAHE8uPHH5BqoD1//gJJLADoJKDS378Z//wFhhJAALF8A3rizz8uTmYg788fJkj4QOKREQyYxSWBhjEC/fcXZANAALF8+/anbcHlHz9+ffvx58uPX9KckkCn/gby/wLd8uvHjx96k+cD1UGiGQgAAgwA7q17ZpsMdUQAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAF7SURBVHjaYmRoZkCAfwwMf2AkHP2CITAXIACH8lIDAAgDQfSCN0RVB0Zqb38Uksk7zZqtdr05nhTRksmQowF9TQh9+gogFpB5//8/+foUqPTvv7+///2GkCD0F4R+/f31698vIEOWR5bhBwNAABLHIAUAEIZhbZ3D/3+3ylR2ySmQBBZmVI5vb1o87nwZ6hU/Ek4ZiSuAWP6WMDAy/gWq+P8fqOjPf4bf///D0S8wgjB+MzL+/mTCABBALGDP/gWL/gFr+w1T9BtJNYjBwPjn3z8GgAACaQAqBSGg7f//oKpDIRn//wZqAAggRgb75RNyDJ+//QYKl79/f4MCCIz+gtDvv3/BbKDUP2kRrjmVqwECiIXhlcDn7+wfvjL8hoTi3/9ABjBof4PYYBGg+D+QBh5ODgYGKYAAYmH4BTT3n5gA858/TGBT/0PM/gOJEaDSf8B4AQU5MJYYGH4ABBAjg+x6hm+/GH79A+oEkf//oMYzPNoZwEHMBBBgAJwjaF+mcK9sAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAflJREFUeNpinDRzn5qN3uFDt16+YWBg+Pv339+KGN0rbVP+//2rW5tf0Hfy/2+mr99+yKpyOl3Ydt8njEWIn8f9zj639NC7j78eP//8739GVUUhNUNuhl8//ysKeZrJ/v7z10Zb2PTQTIY1XZO2Xmfad+f7XgkXxuUrVB6cjPVXef78JyMjA8PFuwyX7gAZj97+T2e9o3d4BWNp84K1NzubTjAB3fH0+fv6N3qP/ir9bW6ozNQCijB8/8zw/TuQ7r4/ndvN5mZgkpPXiis3Pv34+ZPh5t23//79Rwehof/9/NDEgMrOXHvJcrllgpoRN8PFOwy/fzP8+gUlgZI/f/5xcPj/69e/37//AUX+/mXRkN555gsOG2xt/5hZQMwF4r9///75++f3nz8nr75gSms82jfvQnT6zqvXPjC8e/srJQHo9P9fvwNtAHmG4f8zZ6dDc3bIyM2LTNlsbtfM9OPHH3FhtqUz3eXX9H+cOy9ZMB2o6t/Pn0DHMPz/b+2wXGTvPlPGFxdcD+mZyjP8+8MUE6sa7a/xo6Pykn1s4zdzIZ6///8zMGpKM2pKAB0jqy4UE7/msKat6Jw5mafrsxNtWZ6/fjvNLW29qv25pQd///n+5+/fxDDVbcc//P/zx/36m5Ub9zL8+7t66yEROcHK7q5bldMBAgwADcRBCuVLfoEAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIPSURBVHjaYvzPgAD/OhkYXjEw9DIwlDP8+8Pwr5fhXyzDPyGGfxMZ/jFAEUAAMf5lYFi0qzpeC6SegfEfw9+//xmAYn/+A3X8/fOf4fd/IPvv73/v/rTd+J2TsAkggFiACl9x/W96/zSU568m29//zL8Z/v39/+83SCnz7///f///++vij18Tv/9m4JEF2gAQQCxMDAz///2/8/Zv28u/jjy/ffn/CrP8+s/4B6T09683P34tefN7xZtfXxl+GzH8BpoOEEAsIJf9/Vsj96fm7p8tb/8c/vg7QPC35zImht+MGyN+LXj569H337/+/frN+vv3P5AGgABiArv9rzTD7+7zjEAzn//8Lb2R4W/k5z8xn6XWMjz88fvX/19ADb/+/vrz9w/QdIAAAvnh978/M+79uaMJFP3Dzfj7mucvndlMDL8Yb8R/5nvx6/kvkJ7fjL///PsN1AAQQCAn/fnzex/Drz8Mf5x4foUJ/pZm/fW/COj131G/ftlw/J758tfy17//AMH/P38YGAACiAWIfzP8keb/Hc/z24wDGDi/gMECDqVf/9l+y7D9buL55Sz2u/nN319v/gJNBwggkA0in/80ikgysf1m+P+X4S/IbMb/QDYw5n6D4o/xjz3nX1uZvwV3/v5iYAAIIMavDIhY/BfPwPCA4d9Bhn+O4Jg+zPBPmeGfBMO/oyBZCAAIMABCwS8h7YoAaQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHkSURBVHjaYnz9+jUDDPz79w9CsslIMvxl+Pb48T8w+PPnD1wKIIBYgJSIiMj/9+/+XjjPpG/AKCj0/z/Dr46O/39+80tK/geC9+//7N/LaGrGICl1584dgABigpj9+/LFd2eO/b54DqiAgeH/32dP/z6BGv/z3OmX+7b/PH4YqAxoE0AAgWwAKmK1dRDg5WHRN4Zwgcb///37Pxiw2DsJsbOxmFkB2UDXAQQQ49fcdNaA4P8fPzEwMf7/9ev/37//v3//c/woUAOTkfF/NnagCAMz079vP5kE+F7U1wAEEMuPyTOZhESADvj/58//338YgAb/+/ufi+v/3z9/Nm/8/+M7UPDfb5CFzHJyXx6/BAggFpboUCYTMwYVVQZGxn8/f4Jt+Pbn1EmgfiY7RwY2tv///jAzMv398ZNJUIht+y6AAAAxAM7/AOXl5fz8/Pv7+/O7t/r6+vn5+fj4+O5ZVO1STfX19fT09PPz8+eTi/Ly8vPz88PDwwKICRLAPzatfb9r27e1KyAe/f8b4enP0ya82bf7U3cT2NP/AAKIBYiBLHYjM/43b9jNrCChzCguwfDrJyMjI5DN4x/K8v07q6cfJOIAAojx/v370IgEQwibTV8faO+XkyeBXIg6CACyAQIMANK2TnMREZBLAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGzSURBVHjaYiyeepkBBv79+Zfnx/f379+fP38CyT9//jAyMiq5GP77wvDnJ8MfoAIGBoAAYgGqC7STApL///3/9++/pCTv////Qdz/QO4/IMna0vf/z+9/v379//37bUUTQACBNDD8Z/j87fffvyAVX79+/Q8GQDbQeKA9fM+e/Pv18/+vnwzCIkBLAAKQOAY5AIAwCEv4/4PddNUm3ji0QJyxW3rgzE0iLfqDGr2oYuu0l54AYvnz5x9Q6d+/QPQfyAQqAin9B3EOyG1A1UDj//36zfjr1y8GBoAAFI9BDgAwCMIw+P8Ho3GDO6XQ0l4MN8b2kUwYaLszqgKM/KHcDXwBxAJUD3TJ779A8h9Q5D8SAHoARP36+Rfo41+/mcA2AAQQy49ff0Cu//MPpAeI/0FdA1QNYYNVA/3wmwEYVgwMAAHE8uPHH5BqoD1//gJJLADoJKDS378Z//wFhhJAALF8A3rizz8uTmYg788fJkj4QOKREQyYxSWBhjEC/fcXZANAALF8+/anbcHlHz9+ffvx58uPX9KckkCn/gby/wLd8uvHjx96k+cD1UGiGQgAAgwA7q17ZpsMdUQAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAF8SURBVHjaYvzPgAD/UNlYEUAAmuTYAAAQhAEYqF/zFbe50RZ1cMmS9TLi0pJLRjZohAMTGFUN9HdnHgEE1sDw//+Tp0ClINW/f0NIKPoFJH/9//ULyGaUlQXaABBALGCz/6OoBkoDzYMoBan+DdHA8Ps3UANAAAri4AQAEIYBYAo+BDfsgjqfCEJTjXiPK/fA7AApJZQC1+boDNI9Wg2J0h9GTDwBBHHSX7DoH7C23xvX/dq08ffPH78Z//9KToKohmj4A/QjQAAxgX0AMv4/A0TiV0TwLznpX7LSP+OjgdyfMA2/GP7/BmoACCAW5jKGrIDf9z/++vPvz++/v379/f3r36/fjr9///1ttPkXkPz1F0QCZZX5/5xtZAAIIBaGPwx//gKVAn30GyINUvHvN4wECgLNAmr4C0QMvxgAAogFiH//+yPJLQk25u8fiE6Qij8g8i8wvP78BYL/f/8CNfxjAAggRoZkBqAeoD0gEo7+IIn8gSFwQgAIMAAY2GJyqiifEgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFhSURBVHjaYnz//j0DDPz79w9CIjPg4M+fP0ASIIBYgBICAgJA8v///xBtYPr/fziFBB48eAAQQEwwRTDV//79/fb1X3v975cv0GyA2AkQQEyoZv//8/zZv6qCr9ev/qvM//vsCZoNQFcBBBATRCtU23+GLx8/AtFePpHP379/+fwJTQNQMUAAQTVABRj+cy2ezfb+rev9axzv3rJVFwPNRCgHOwkggJiQVQPBt9CY979/H//6692vX59qWv8zMSHUg20ACCCWfxAzIPYwMHCpqTPNWqqxP07Adt5fdna4UyDhAVQMEECMP0VZmes7/r14ygDUCUTfv///+uWj+3PuzayM/3j+s7D8//MbKM7w7y+jhPTbaQsAAojl3+vfTNevMvz9/f/3b4Y/fxn+/P4ewMHMKsn47S3jrw9AUxh+g1SDpJ49B1oEEECMX4FeQUJA8IeB4Q0DgxCq+D9YagAIMACTvVKMKze5rAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFoSURBVHjaYvz48SMDEvj3D0zAKQwAEEAsQAk+Pj4g+f//f5CO9+////jBICT0n5UVIogMnj17BhBALBCDQaq/fGFYuPD/6dMM37//B2qIjv5vYYGsmpGR8c+fPwABxARVDUQLFvw/eJDh8+f/3779f/Dgf0vr/6tX0WwAOgkggJigbn/27P+hQwy///z/9ev/798g8uvX/8uWYWoACCDGv6mpjCEh/z98+P/nD9Cb//8C0Z//f/+ioz9/GAUFP1ZWAgQQC8Ps2f+5uIB6//f3MfxH9eX+/f/z8qAW/v7NqKT07/17gABiAoYfSOjePYYjR1FUAwUXLYKrZvjzB2jJHwYGgABiAWpgBnJ+/mSYOBFkj7Hxf2bm/y9e/J806f+xY1ANf4Aa/jL8/Qv0LEAAgTQw/f7DICkJMmbadAYxUQY2NsZHjxg+fGCQlwcaDEJ//0IQUDFAADF+BcYoEmJA5aJJAQFAgAEAGIpbSsjEg+QAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAF/SURBVHjaYjzOwPCHAQH+wbh/YOx/MAZEHCAAh+J2AgAIw0A/XMQ5u1WHcKk8ahDCHQfZ0an6X08mLcrikCYXEBpIDnC7nwBiAWv7/+vJU5DSv3+Bcv/+/gXKgRQByV9Axq//v34BuWyyskDTAQKIReP5c2FRUYb///4DAUgvBMAZ/yBMoDQjI+PPK1cBAohRPP1vUyjjq48MfyHO+ff/z18oAtn0B8T4DeaKCzBOrPgEEEAsL28xvH/H8OYdRIIBpPQPSAVQ6W8Y4w+YzfCTkeH1P4AAYuGUYuDh+c/7G2Iq2IY/UCOBDCD3N4Tx9z8/338G5n8AAcR4/+l9aXHpf8DwgbkaBfwDQYb/IMjExHTm/BmAAGJkyGdIC0i79+ne77+/gejX319ABGGASaDgL2C4/vn3V0VA5WLrRYAAYgHGB9A5ktySQGmg6J+/4BAFqfgDIv+CnQMEwCD495fhFwNAADEypDMw/GAAskAx+QsJ/YGJ/IEhYIQzMQAEGADd/mwRRbEhzAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFySURBVHjaYvzPgAD/gPg1A4MQmP0PhN58Y5AuY2D4BUZ/QAgggFhAktXVQOL/v3+MQCVcf/8z/AXKMDL+YWb+w8vxOybsz59/v3//+/P77+9NUzcBBBBYA8P//0+eMvz9C0T///5mYPj7//9vCPr77/ftD79+/fsFVC3LIwu0ByCAWMBm/4eq/g1R/ev//z9gDUDGr19/f//6C9IAREANAAHEAnQ3I1D1nz////xh+P0HbjZEw79/SBr+gTQABBDYSX9AZiNp+AXXACSBqiEa/vz9A9QAEEBgJ/0FGQ+UAmn4B9cAJaE2/APb8IcBIIDATgIa/+sXyFW/fqHZ8O8/1D1//v35++8PUANAAIE0MIOM/80A1PYb6lFkbUANwGD98+8vEAGdBBBAIA1Mv/8wSEqC9Pz5C+QwMPxmZPwNjqffzEx/lPj//P0LCu+/QA3/GAACiPErOILhiOEqwz8xaDQD0bNvDKYB0DgGSTMxAAQYADMZZ4UhPZkQAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAF6SURBVHjaYpR9y/CBAQr+/GP4xcDw9x+Y8w+G/iCx/zEABOBQjFEAAIEYVjhHf66u/tNV2quHEEKGtNtjxqrBcCITUtmkKYuWqvExx9lPADF+vX+eS8Hg////EEsgjP/YACMj47MTmwACiPE/P8P/liaGD88YPv35zwg06DfYdCD6/f83kP0LwvjH8IdRQvrDlA0AAcT0h43hvxITQxrHX2GQS/6CvPAXyAAhoKf+//33D0j+/vcbqBMowgAQQEwMXxgYLVj+C/5n9GP7/wNiAwz9hjL+/YawQRoAAojlHxMD493vDJK//t//zvD35///f6DqIO4BOgbMZvgL1snAABBALExfGRj2/Pj/5D3D/98g5/z+ywB0F5QEcv8xAgX//P/37zfjn7/AEAYIIJYPN48KKpsDBXAFDjSIgNKMjO9ClwIEECPDR4YW9orfIO/+Boc9NIz+wKLiHygG/gL9DmSsfLYTIIAYGR6ixyVK7P6BxTqEwcQAEGAA+TdZT+lFveAAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGrSURBVHjaYhTuvP+WQZEBAv4xMPyBkcjoF4xkYQAIIBYmBpl+x5dvGCb9+/8PiP7+//vn39+///78+f/nD5D89/v3XzD578/vv783zdwEEEAsQF3czHwXPjz5CwT//v7+/xtIA0mgNAT9+vsLiIAMWV5Zhm8MAAHE8ucfAyMDu5PwvAidPwz/QRAImL4d/A+0jdMeSP6HCP3/z8jI+Nb8LUAAMf1h+PfvH8Oj94w/frGwMELR9MuXJ104z8zAzMzAAiahiIOJAyCAmH79Yfjxl+Hv///TT8PN+q/LaKzPYPIfDTCAzAYIIKY/fxi+//7/5+//RDOo+JMXLzhYuNmYOB8+fYaiHui+f/8AAogFGCjsTIwCfP8EGf7++w0SlRISYv737++/f2LCwsDgAQUeMMSBqpmYfn35BBBALAxM/5h+/vKYkvbk86e/f/7++/ULqIgBaO+fP/d//gSFJ1DPn99AA9gVFY8dOgQQQCwMX/7wPr/LIib2T1iYGagBqOIvSDWQwfT3739wfIAsAZJ//zIxMAAEEAvDuxf60QY3MaIYHunIDGCsAQQYAKWpQyaRNWG5AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAF5SURBVHjaYuS1P8rAwHBimgCQNMl4x/CP8fuvvwy//oHRHyj5A4jAIv//AAQQC1Cdk4mAlpbW////XUyvM/z/v6ZT4/9/hv9ACRAFwSDw7z/Dg0fPAAKI8dGjR7KysiBxMAAyjp5/D5T7B1TxD6zuH5TNycF0eNcTgABigSiCqwaSF25///vv35+////+BZF//vz/A+T//S8kwFI/5QpAADGyWx92Mxfa2KMJVO2UdQVo0rYJWlBXMECdArGJiYnp1q1HAAHE8ucXzI0QN/z775Zz5R/EJf/+QxFI+D8PJ8uFQ3cBAojxxYs3IiICSAYiM/7BMdC9QBvu3XsIEEAs6w99sdBl/vbz33+YSf8hZsMcA1QMYXBxMB/Z9QUggFgOnnmhJMP74cuvv0Bf/gN5FM74B+ECPfwPJCLEy9q56SZAADHevP9RVIgd5A5I8IGdwwD1KMKFDCC/MJw6ewsggBgZxDdDI/LnPwaGPxjoHxj9AQc7iAQIMADrG2tQp2zGfgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIISURBVHjaYv5ZWcjvWb17H8N0QcYoScV1H5zymf8fm5HdtIWZgYGPgUGIgYGfgYGLgYGDgQEowggQQIwMDLX/T7n/MrV+uGUfw4f3gtrqQvoqVcuefDlx8tevv39+//39B0L++/3776ZNuQABADEAzv8B/xsA5WJ+DfLp+fb4/fT6CREJ8/j/GQfvVOA98vn/+/r6+/0A+/r8+fn4HR0Vt7dxAgAxAM7/BGDyP4lNUg3y3PS+zQIoEw08LOi3za7+E/jb8/r6+kpKL2JiOAsLCNfX5rS00be3AAKIia2qQ0yUseYwxzsh2Y/fGWrfWihHOf76y/z99x+ghrg4C2aW/6XlS8XF+by89BgYGAACADEAzv8EMqiId+tQ3uH8uBH3//z8zMKMVCEzeSoF+/j4+/sDDw8IqMXE8STFtLUBVFNUAAAAAgAxAM7/BGnR6m9ACfz87L7mBfz7Avv7AvXU1G3O/vr6APv79+vs8jgW6hr9JRUOBdzc6QAAAAKIiYEB5H1wgPz5/QvoSaD/GH79AgoCnfR75oxDAiKOlpbZ3/+Zrl59GqgBIIBYGBh+/QEHGVAFWBFQM4QBJBkWLjq6ePFpIPfbt68qKpJADQABBNTwDciXlOQHkn+AQf7nL1gzhAEU+Qdk/P377+9fXiAJ1AAQQMCI02Zg+AC0h4HhBxj9ZsALAAIMAOL4JCkHTxzeAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAF/SURBVHjaYmRO///3BwMI/GNg+Pbv8ZQPHCz/gAAk8O/fp2//1CMEGP78A6Ef/xg4GAACiOXvF4b2GJD6v//+//7DKC4iyMwE5P0HAiDF9/t/Rt7/f//+//n7/8+//4sqvwAEEAsDC0j1849AIYYffxj+/f/PDFEOBkBFd1+BNPz++19akBFoD0AAsQBdAjLgH9AGBqAxQHP/o4Jff8A2gCxhALoKIIBYgJr+/mMEcv6ChdBU///3/xfQFLB7fgM1/GIACCCgBoa//xn+/v3/G+QHDA3/gYJQPwB9CDQVIIDAGqAGgMxAt+AfyEn/IU76BwyGfwABBHLSn/+MINV/GICGYbUB5Pu/IHMZGP4ABBALw69/f/4wA0WBGkDORQMMIBsYQMHFAPI0AwNAALEAI+v3PyYxPgagJT9+MTAygkQZIRQDAzMjg7wIMJgZgW4DWcDwDyCAGBlcvzK8+we0B6gTiE5ve8XDwfDnz59/YPDm0x9XezFwKvgHMQIgwADVAHPN4MLU2gAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGPSURBVHjaYvzLyYAA/xj+/WL49x/ChJL/UNkAAcQCZE2fD1Ly79//v0AN/xjA5P8/f0Dcv3/+//n7/zdQCsyoreAECCAWiNEv34Kl/wJV///791/gu6WsTP/ns0T++sv4+8//30A9f/5LCDP+YWAACCAmkNl/oar/AA3+y2D9reWe43uecMvEh70g1UD0G0QCbQA6CSCAmICO/vufAagOyP/7hwHoErM3n/7/+/Xw/TkZtse/fv8DqQYjoBRQA0AAsTD8BbsEaADI3UBt/5gZ/9hJ+v7/95/p364/f/7+/sMEddVfRqAGgABi+Qd2EpAPtAGs4f+Xz/97JgtryB/w+PL/NzvDL6BZv6H+BioGCCAmIP79D6Ya5FyGr19/Sgke8LWcefqTzK/fjL/BqoGyf4FqGBgAAgjkaZB3wZ4DGfbnf7vMBM8H25hXMa6UKoJ6GiwO1ABUDBBAICcBjRcRBOkBex3oH6YFgtOBisT/MACdCg5rRqBqoHqgYoAAYvyMEal/kNgQqT8MiLgHCDAA45ZI5qLSc2QAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGWSURBVHjaYvzPgAD/GBi+nWRgYGL494fh3z+wCJgBIsGMP38YAAKIBSRcXQ0k/v/7x/jvH7fO3/8cfxkY/vz//wdM/gYy4OSLbZsAAgisgeH//ydPGf7+BaL/f38zMPwFq4CjX2D0m5FRFmgPQACxgM3+///vX0ag6t+/Gf7/BUv/QVYKIRkYfgM1AAQQE9Cp3//+Lfrz597v3/9///nP8AtJKRr6DfQDQACBbJjx5++b37+7/vyZ+vvPmvu/v3H8+vv7999/QPTrz7/f//79+vsfxBBk/1P5jgEggEAaMv/+yf/zJ+/3L4bff5bc+P2B7devP79//fv1++/vX39h5L/fSny/389jAAggFqCT2H7/nvbrFzDM/v8CmfQTrAioAqTnH1Tnn39//oK9DBBAIA3MQKVA74L8ADLsFxPYVIhqoM4/IFP+/PsLRAxfGAACCKSB6fcfBklJkJ4/f6W4f3Ox/oYYCdTw5y/QsD9//4LCG4iAcQoQQIxfwREMR8LWDAw84Lj5BYw3MIIwQKmAgUGIASDAAGGvcY4lI6RhAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIXSURBVHjaYrS0lGXI07rDcuX1vacM3xgY/jGAwB8k9AtG/gLJAAQAMQDO/wHTAADukZIMRCEgJCrt+Puw3rnm9eT9/Pj8APz8//z8//v7/fz8/vv7/vz7/fuyl7ICADEAzv8ELAAA/eroxYvNw0EEQVUaci5Q6vYH5PX2k9Oe5fPh+/v3+gH6+v76+/77HQwdAPoAAgAxAM7/A4AAAAE8PB/w8ATb+rzO6fsXwSQbxBgJ5UkdW0EaQ/b9/uv49u/37vv6+Q0GDd7I3gKI8S9QQ1kZw6NHQPu///6zj+H3UcXfRVW/Bfh////P+f9/1s8/go+/MM67ueLJlzer+1cDBBBYQ1Hx/4cPgBoYfgOd/bvy1y9+59+Fxb+ZGX/9/w/UBiTF//+f+/UPt0SHDEAAsQA9/v8vxHu/fv/+0/z7t5b3L5cIiGq2//9Lf/0VfvaVZd6N/gdfXjEcYQAIADEAzv8E/gAAAfv7//r63vz8kgn6T3v7PjgC//8o+/5h5vUDotm2v+XO2/DX/Pr0IxIiAPQAAgikgenPn/2/f2+W+1vdJSfEk/jqG9f9z9+az0669f7qr59ffjP8ArmV+e8fhr/AWAIIIJYrDAwvBIVv+IhXp4S+/Par++Sa2x/v/vr18R/DH3k+iT//QLHxFwj+//377y8wWAECiFGUk+H1DwaGSQwM5xgY3iDF9C/UmP4HJnkYAAIMAO8HNiEGagofAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABUUlEQVR42qWTsUrDUBiFIzgIFeosgnQPpEMfwLGDu5ODW3X1HQS3FnwEI4RMIlQs3XTQDOLSQAebFAlIEZWmtk3TcLwn5AarQ1Mb+ODy3/MdEnKvoijKypIoq4I1QU6wnpFc4tBV8vjnQ5cFheOajYfW50LQocsC9ej0CU3rDWemmwlm6dBlgdbv9xFFEabT6QyON0DH8//MmaVDlwXFXq+HMAwxmUxixuMAjftXGI2XGK45k/vM0qEbF7iuiyAIRGicol930Xp+h935wHm9O7PHLJ20wLZtjEYjDIfDGH/wBb3uoKq3Ub1oiwInnsl9ZumkBZZlwff9+Lt+cvfo4Vbwe84snbRga6eG0n4T6t5NJpilIwu0jdIJtnevsFm+zASzdORfUA3DgGmaC0FHngOeprLgQFARHM6hkmTL8iTmk4WavFJxDlqSLci7sNRt/AaBYgvXxLv1IwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABY0lEQVR42qXTT0oDMRiH4TdtbK1DZ2oRpK5aEF2JrjyCR3DnCTyPd/AMLl26cuNCERUXCkVaLUnMzOSPC7W1iDBqIGQR8nx8SX4CEPxjSKD+Za2KRcADTgJJPDt6/kt1sXvYkUDXlzn19b1fHfbXJwBdCSRlYamVmji+q1Z5uU9ZWIBEANuTyeQ8SRJijO+6jwyHmrIMZFmTLGvOA0KgtSZN0x0JCGstrVZrCtzePqN1SYyR0cjQ73dI08YcYK0FEDUAYwwhBEIIOOfRumA41Jye3hNCZDye7X9OYwwA3wCIhBBoNARbWyu8vFiWluSPgARQSuGcm7YwGLS5ufHkuWd1NaHdljjn5lpQSs2Ag+N91jZ65M5WeoWmXOTh6nEKRK0VT+oJ58tq37e+gNYKIErAG/OKu/CEGCoBNVGjcAWAF8AA2AR6QLNCHiKQA4/ApQAyoAskFQP1GSQNjMTHPfw5jW/kSso/ohVRIwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGhSURBVHjaYnzLwPCPAQr+wUhk9Acs+AfMZmJgAAggFiCLp7oarPDffyD6+5fhz9//f/8w/P37//dvEPrzB04+3rQJIIBYmEBq//978hSoFKQaKPf3L4+V9X9urk9r1vz7BdTz6/+vX0DVTLKyQKUAAQRW/+8/VPXfv0xAwMz8Pznpv7o6h7AwIxPDv1+/IAioB+gcgABiAboMpPrPH4Y/fxgZGTlrav6/f////oP/HJzMkyZxP3/+NSvr15cvEOcBFQMEEAvIQX9AzgVq+Pf77/+bN/87Of3ftPk/J+f/f3//797979s3oPEMYG8ANQAEEMQGkPEgt/7+83HaNF6giJERKAC4OD+vW/f782eoH8BOAgggJlBQAnWDhP4ATWLj5/+vpwfiHjwAtISVhweiGmQ82AaAAALZADb+9z+wK3++fMlYUfHj4cNfnz/zHTny5fFjoAaGP7///fnL9PcvUDFAAIHi4d/vP4ySkkwgY4C+//0DqFlUlFlQ8MurVyxyciC//QWpBoYNUDFAADE+ZGD4hRqvyIw/qHHPxsAAEGAA8os95q2GYrQAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIzSURBVHjaYjxe3nyAQ6Vyx7veD+tY/v3L/+dWKvXIyUTOc9Ybhq8fGBj+AJFnssv2uZsYGN4xMPwCCAAxAM7/AUtNjZ95PPsXHfjPzf/49wEfIhAVELzd+MzU5v38/vf6+1tNLQQEAd7j77fB3KOMjwIAMQDO/wHNCQkZhYYD7Or78vL++fkFDAv5/gH29/qJCD3w/AH6+PodGQ9GOyGJm8UgHRGrko8CiOmQjg+Ttj6HluZfYVEGWQUuM7Pfsop3ZfR+/Pnv56jCwMBw4/5roOrKdBsJYW4Ghm8AAcT0ISSJQVh4wz+F5zziL1gF1gmZMevofuQTcbZTlRXnLUyy+P7jd4SXFisLo6uVIgPDD4AAADEAzv8DLAEa6w0YwN/4+/b43/UCuNbx2/QDEP73rcbkJSIUq7fV6ev07O/3EQ8IqLXU3NDDAgAxAM7/A8veKS1ELvXw9N77Cd76BwT8+ujr9M/o+/3//8bN4+nt9P///1dLK6Cu0QkIBd7RvgKICRRwf/79/vMvyF6pNsX81++/f/7+Y/j39/evP//+/fv/9//Pn3965hz7+Onbv79/gYoBAgio4devP0Dj/psbSMtJ8gW4afz89fvX7z9g9BcYrNISfOWpVj9///379z9QA0AAsQA1AE0S4ufceeSuvprowZMPZCX4fv4Eyv778+f/9x+/ihLNtZTFfv76u2bnNaCnAQKIkYHBFxydP4A6kdAfZK6qY9nt/U0MDP+AoQwQYAAK+BukFnf4xAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGrSURBVHjaYmSQX8rw6Q8DBPz5x/DrD4j8+w/IwYYYAAKIheHdr8YuWyDr3z+Gf////f0LVPzv75//f/7+/wMi/4HQn3+//wAZ/1f2LgYIIBaGX/9+/f735OXPv39BqmHS/3+DFQHRL6CCP39///onK8nJwPADIIBY2icYeDpKfPvx9////3//AfH/fwz///8DsUHo9/+/QLuBVv/7x83J8ueLHUAAMTx//vwfGPz9+/fzl9/TV9z//fv3z5+/fvz8+ePHj/bZN1+9/fz169cvX74AyePHjwMEEBPEt//BgJ2NIdBZHMhYu+fFqu0vgIwYLwlONkaI7H+QP/8BBBATyD4o///PX//mrH0MZAY5i4W6iwEZ8zY8/fHzL0weGAx/AAKIsXnySS9n9a/f/oBc9Q8oBAxQkOvBrgSFElAl2Mn/ublY2iftAgggRgaG3rR6t3tPvv7+DQyTv7/+/P/16+/v3yAGUARM/gEH3X8VOe6LG/oBAogFGB3MLAyKMpygkAah/xAGOOBBYf8XbA9QHBh0QN8CBBDQhmoGBg5YRP7CxoDEOoTkAAgwANm9dMMXfgHiAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGeSURBVHjaYvzPgAD/UNlYEUAAsYAkq6uBxP9//xiBFBPT/3////398//vP6bfv5h+//7/589/GPll5UqAAAJrYPj//8lThr9/gQgoWhra80f+/587//8o/Jtckfj/96//v34BxRllZYE2AAQQE9js/3DVv//+7VqU3cvxccLclMkcH37//glS/QuqB6gBIICAyv7+AwMg4++fv9+/f/994cIvR8efZ878MDP79OnTt2/fvn79+uXLFyD5/PlzgACCagApBgOg9C8HB4jq7ydOfPj4EaL68+fPQB1Pnz4FCCCQBojq33+ADvoNlAapNjUFqv6mpfX+/XuIaqBVQMbjx48BAoiRIfxwe7zS0w8/f//9/+fvv99//31+fGPZ+jqgi3286tkkNYAif/79+/P3v6wg+4qsAwABxMLw6w+Q/xukFKqBWUw1KmUZkMEK5v7+8+/Pf6AUMJyBcfYPIICAGoAG/BfhYQWqBnoHGBBAEiQNYoPIv2DV/4AkWANAADEyuO5k+POP4ccfoFVAzSDyB4wBRH/A7L/wiGYACDAAOJ12JTMlJgUAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAF5SURBVHjaYmRVP/6PgYGJAQT+/Pn3/w8Dw69/IPTnH8OPPyAGSAiI/oFJBoAAJMZBEQAhEAPBfWDkhIIHcIUmkglU3au7PVf/UhUHimAXIMeOFJk/x8yxrwBiAWr6/5/h1ZtfQNV/IXJQpf9+Q8jf/37/ATHERVmBlgAEEAvQqv///v8Fmg1T/QesDmQkiASqhmoAigA1AAQQy98/DEAVIDmIwUiqIQjEBlny7+dvoPP/AQQQC/eXF+x/RDl//wBpgKgAWvXnH8vvf6wQG34Dyb9ABtdvLgaGBwABxPgX6Inq/P+PH/z/84vhF9Du3/9///r/C0z+/g0UBJFgNpOc0vtdpwACiOUNAwMP0HtAiT9/GP4CSaCBIBKMfv2D6Pn7G2gpy78/zxgYAAIIFKzgMAOrgBoMNRWk+jdUGwPYi8CIAAggsIbffxjFJRlBRv799+c3I0QzUBBI/gX5gwkW2EDnAwQQ42NwHP6DReY/SJSjCkJEIAAgwAANg4fKkCGgcQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFCSURBVHjaYjzLgAL+gMl/MMYfGBtCAhFAAA7E7QQAEAZi/XANJ+1WDuJC96iHEELIyt3d8dihpKIsFmlygPlOG7jnPAHEAjbo/+8nT/8Dlf79C5IDMoAkUCmQ/AVk/Pr/6xeQyyorC7QHIIBYwGb/R1YNlAaZClYKVg3U9gui/xcDA0AAMf79+5eRkRGk7f9/BjDEBYDKPn36BBBAECdBVcEZWAEDI+O/f/8AAogFoQi/+UAb/gMD5R9AADEy+DNkpWTdf3f/z98/v//++vXn96+/v37//Q1EIAaMC5RVFlI6W3AOIIBYGH4AA/APSMUfqKJff35BVYNIoOCvPyANf//8/wt0DkAAsTD8YgAGsiSPJDBQ/gDN+QfSBmb/AYYLUAAYHX//gAPxL0gDQAAxMlgzAPWA0A8MBhD9Z0ADAAEGACLkbQYCfrxnAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFASURBVHjaYrwvyMzw6S8DGPwD0//ACAj+wNj/kNgAAcTC8P6vUF87UPr/v38M//79//v3/18g+Yfh35//v//++/vn/x8g+v3/N4hxe9YigABiYWAGG/biOQNI6V+wNBj9/f0PqOj3738g1b////rFLCUNtAEggFgY/jIAjYSo/gdWygBU8ec3iP37z7/fv0DsXyARxj9AOQaAAGIBOe7b179fPv3/85cBah5Q6a9/v8HafoOM//frF1CckYf3FwMDQACxCOSmctjY//34EeSef2AEchiY8QfsB4jlf/8yCwiKnT8LEECMf/+CguY/EDCAIW7AxMT0/v17gABi+ffvHyMjI0g9Az7VEFmgLwACiAmoAb9SNG0AAQSyAWgXRA8DDADtZEABQC5IFqgYIIBAGn78+PEPAhjAEAeAaAUIMAD/YnbumkL3sQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFzSURBVHjaYmSYyMDwgwEE/jEw/GF4mvKUiYEJxIOAPz9EnFT//WP49wuMOBgAAoiF4QtDtWs1VMX/f+Ki4oyMQA3/gQAo+P/fn/8VMf///wYx/v7+krsJIIBYGFhA4k++Pv377y8QfPnzhZeV9z8cfP/8/+Xt//9//f/9m1FYFugIgABiAboEaDJQ9R8g+vv7Pyb48+v/319ASxj+/gZqAAggkPl/Gf7++f/nzz8QwlD+7//vX///ARFIA1AxQACxAD0KNPv3399//mLVALYB6KQ/vxmA8gwMAAEE0vAXbPavf7+AejAs+AdyD9hJjGAnAQQQSMNvoK1/Qap///0FDCh0PUAnMfwGuRroBAYGgAACOwmk9DcEYfHDH7CGf39BiIEBIIBYgLH2+98fSW5JkDf+/GUCRQIDIyMjAwQwsTCIKYHDBaQB6CSAAGJkKGVg+ASKY1B8/2DYXrJdiksKFMVAfwHJNw9kvMP/gZMBBAAEGABKw3KpDBKvGgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAHZSURBVHjapNPLbhMxFMbxv+2ZlMk0jRpCqASRuFVCAiHgeXgT1jwJLPoMgHgCBIuKInEJjUTaiFzIdcb2eGwWDSWLbkLPxpvz/eTF+UQIgcuMACrA9urdZCywiID6i1cffl208fdzQlwsPH/2tBUBaekDd/ZqAHjA+4CSAinPkqUPeB+QUiCFgBDo9OcAaQQoV3oy45hlBZVYsddIGM0MsZJUYoktPLVqxGCq0aZkpxrjSg+gJIAtHEvtmGaW++0613cTbFGy1AW5cdxsVmnWEx7c2mWWFyy1wxYOAAlgjGGRFfgyUEsrfPoxoaIUD283eLLfxAU47IxJr8QEH5hnBcaYf0CeG05/5/SGGf1RRq0a8+hug25/QftaSm+wZDjVjKaa01FGf5yT52uA1hrvA9aVDGeadivlqDvm52DJPHdY53l87yrjuSEzDh8CWus1wGhK7xEIDjtjtpOYSqyYZYaXr7+wk0Tst+t8/DpEAKX3aLMGmFwTAkRKMJxoDt59RwCtRpVkK0IIwcHbb5wMMyIlCeEsAxABWGtXgCRSksEk5837nDgSBOBzd4IUkGxF5wdmrT0HrPeOk+Oj/6mCFUAduAHUNgzPgZ4A1KpIakOgBKy4bJ3/DABxU/n8hyJINwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGJSURBVHjaYvy/nwEO/kEwGP37w/DvHxj9gSEwGyAAhXJwAAAEQzG0xSqmtJUZjOTW+sEll5f2xz5eMDkyDnaeOFmVxQIlCkiIveYVQGANDED2U6BShn9/gSyQHpCK3zDyFxj9ZmSXBdoAEEAs/8RMGTm1GFjE/v//9x+o5//fO6+FztyR+/vvr5HCbVWRpyCz//359/8PI4voP6ntAAHE+PvvXyZGxv//gbb8h9i2bPu9n5++6msIn7vzOcFPCWgM0CggCVT2/uMngABiYgI7nwGsA4K+fv2pLM21a//tz19//ger/g+RAgXJP4AAYoKYCkKMYH3//+spCx6/+vEPG5ehigDYWmT0DyCAGBmKGToCOp5+fPrn358/f3///vvn97/ff4Dk399AERD59w8I/fsjwy+zvHE5QACxMPxhgAjB1SGU/vsD1/nn319gMDD8YgAIIBYgBvJFuEUgxkBJMAKqAII///+AqP9gDf8YAAKIkSGZAagHaA+IhKM/SCJ/YAiUEBgAAgwA+jxNFkS1oCwAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIkSURBVHjaYrxe27vjh1zhlGcLFY6wMf2LvKrXbP5hzwepgzd/MDD8YWD4wsDwi0FzEcP1GDD3F0AAADEAzv8BW0eZmpdJAhQV++Tl9+DiBSUkBxALqLfmHx4OGBUK5ezl4PqvEQod8fD7JhBD6Ob1AgAxAM7/BJoYxgPWGwb28wT19Qn5+gHu4/n9/wbhEavMC/z8/vz9/Rs+5Nz84Pz5Aer32XtV5wKIZcs7ER9VTQYuln937v1+8IhTXx8o9/7ZW2cHSVlp3u0Pqn///wZ0DAsDOz+78MLF0QABADEAzv8E8EJQ+Pv+w8jtIvz5BAgV0+MNMQ3v8ff9zLfg+/z+/f5SGT2rPNH3wS76z7ounZOAAohJ5sOdd/+5NEyV2dRVHv/kEOZn/SOjyMXD7uosm5mso+Cy1Fw0/f/PX8oMmXK2W2bOrQIIIEYGhs7OPuenzz+DXPzn/58/f3///vcbTILZf1s4FimWfr1RyjxJJmf5gokAAQAxAM7/BGdvMk1KIN7g8QgIAyAdDsvO6BQVCRwXCsbL5yAeDeHi8w8rLN92yCSRCF7mKDo3fAKIZebEI1KSvE+efgYaBrLhN8hUoOvBXJBVIjGvbNq/v//CPHvelXXLuwECADEAzv8BXWWzdm836Ov1CAcDGxoM0dPrExMJGBUIzdHqHBoM5ujzCggF/b1+7S93FxYL29vjAgjoh1JIFMJIIPqHwf0DRkAGA0CAAQBqCxJTXIqE2wAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGVSURBVHjaYvzPgAD/UNlYEUAAmuTYAAAQhAEYqF/zFbe50RZ1cMmS9TLi0pJLRjZohAMTGFUN9HdnHgEE1sDw//+Tp0ClINW/f0NIKPoFJH/9//ULyGaUlQXaABCAojm4AQAEgSB4D1sg1qB/aqc2ETgl2e9kB1S5NmSCYDiymMEk43aN48/pByJl9gQAMQDO/wD9/f3+/v75/vy04bf8/P34/Pz2+/rB5cTD5sX1+Pjt9/Lu9vGc057y9PT19fXn5+cCCOIkhl2Pdtz4cPPLz09iXNJiHEInXhxnYWJmZ+T4/PPzpbeX7ny6/f/f/0iVCKDRAAHEAvbBf08Zj19/f1lJWgIt5GXjMREz+v+fQYFPFihlJKK/7PbycMVQoDqgBoAADMUxEQAwCAPAiwpkoA0TmG13hhBaln+4e0Tcc/FAstXraLg31VoxKJaZZeYXQCwXL148duzYvXv3foPBLzCAMEAkmPXnz2+g91RUVIDOAQggkJOARklKSoKMB5r/B6IRyP4DIYHgLwwAFQMEEMkIIMAACzQ/i2EkNPcAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGSSURBVHjaYmSYyMDwgwEK/jEw/IGRyOgXjGRhAAggFoYvDNWu1SDFQMDw7++/v3/+/f37/8+ffxD0+/ffP3/+g8jff39vmrEJIIBYgJoYGRiffH367/9fuKI////++vv7z9/fv/79Aqr79RdI/pLllWNgYgAIADEAzv8Et1q3EgYSEAYQ5PXkGgoa4fPhHAsd3/PfHAob4PXiHQkb3vLeHgse2/HbKhEq9Fb0Aojx79+/jIyMQCf9//+fAQz/f//5//Ch///+/7e2/s/B9h8GgMo+ffoEEEBMEN9CxSD0imX/37z+z8byf9GC/8gA7E+AAGJCVw0EMTH/nz79f+LE/8REFPX//wM1AAQQcy07O4OKyv8zZxh+/vp/8eL/nz9BpJ7+fxYWoDxIG1DkxAmG798Zrlz5smsHQAAx/mRgYM7M/HfvHsOvX8DQAyE4A4nNAPSqsvLbc+cAAogFGEtMP34yiImBRP/8Zfjzm+H3b0YQ+w8DhASiv39B6NcvoGKAAGL8Co5ZOGJA5aJJAQFAgAEA8eJIJDc4COoAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGmSURBVHjaYmTQn8kAA3/PpdxjZlb6+5dZYRLDrz8g9ANM/v3DwPCLgQFEAgRgUI5tAICgIID6iRFsIzEXolHaQmFLd/dpXvXif6vlr+RmlnoLwcYshEMOCHSKF7rUrucJIBaw0f+fv/3x998/IOvPo0dA7uOXX3//+Q9U8efP318gpX+BOqWEOYHyAAHEAjT5318GoOq/f/+DwJ/fQAKo6A9IA9hgsJ6/QD1//wOdBBBAjEAW0CUgW/7/Z/jP8CY8RGjFqv/YAFDZp0+fAAKI8TYDg0hF+Z/Hj/+DzPz97/dvht+/wYxf/3+BuP9+/foPtOjPL1Z5hUt79wEEEMgGiPEg84E2+HoLbdyM1QYmJqb3798DBBALs8yEqmaHx6+Avvy7qML63y+QH3yq9gG5YA+AENALQE/Li3Pv7J0GEEAswJD+8/cfRBqoFOSA///BHoVoALr0L0TDH5BT/gAEEAvDL6DUPzFBzj9gARYpKSApJcIFNgUUdKDwAYUhw9//wHD/BxBAjAzM9fCIfPu+5oqgsNbr16KiRWCRf7AI/gcjGQACDABaQWaUFWPKrAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAE2SURBVHjaYmSYyMDwgwEE/jEw/GF4mvT0HyqQUlX9B5aEIIAAYmH4wlDtWg1SDwT//0lKSv7/D+T9/w+nYmL+//79/88fIPll0yaAAGJhYAGJP/n69O+/v0CAUAcHt2////ULqJpRVhZoA0AAsQCtAZoMVP0HiP7+RlcNBEDVYA0Mv38DNQAEEMj8vwx//wCt/AdC/zEBkgagYoAAYgF6FGj277+///wlpAEoz8AAEEAgDX/BZv/69wuoB48GRrCTAAKICajh9//fv/6CVP/++wu7BrDxQFf/YWAACCCwk0BKf0MQdg1/gBqAPv0L9ANAALEAY+33vz+S3JIgb/z5C45CBkZGRgY4UFICKQUjoJMAAoiRoZSB4RMojkHx/YPhbNVZoM3AOISQQPUK9vaQOIYAgAADAC5Wd4RRwnKfAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABS0lEQVR42qWTPUvDUBSGIzgIFfobugfSn9FV8A+4xcFBcHJzcBAXHR38GkNAhexxLMRFHEJB0AxOSTAxgXwnx/tecwOZmtrCA5dz3udtQ28kSZI21kTaZGwxRoztgYxaB640pn9+4KJgUlXVyjIcuCiQ0zSlpmmormtOVZYUzF/p6/aJgzNmYo8sHLgoUKIo+hNZK/CfLfo4u+6BmdgjCwcuCqau61LJvqEoCs776RUtji97YCb2yMKBywscx6E8zynLMo59dE5v6kkPzMQeWThdgW3b/JmSJOE4d4/0snvY4/PmodsjC6crsCyL4jjmzwV+vgNaXNzTfOeAgzNmYo8snK7ANE0Kw5CCIBgEsnBEgWIYBvm+T57nDQJZOOJfkDVNI13XVwKOuAe4TTPGHkNl7C9BbbMzcRPH7UFuf9J0CUqbnYh3Ya238Rc8pDRn8axt7QAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIPSURBVHjaYvx/nuHZF4agGwwnXzGAwD8w+oOEfjEw/GBgEGO4qMcgw8UAEAAxAM7/AVU7AKKkewgLAMnv/rrw/vL8/fwA/f3+/Pz//Pz+/Pz7+wkC/E0P+0ET/Pbw+yUxsgIAMQDO/wSrxQA9rv9EMuU2J/0eAv2f6PvM8/37//v7/vv7+/suCvtrFPocDfrNyPukvB3tAAACADEAzv8DAAAAMDM8ucPw+vf9NCD7PRP9A/760/X8/v77WxP6cBz6Dfv7m6f6gpr7+f0N3t7eAogFqOHv378/fv5ZvfvP2at/Yr1/Byr+1mT9/ffvbw2uX1eu/upb/Pv0lV9A24R+/wYqBgggJiD+8+fvbzC4eud37dTf9x/9UuP9pcH36/7DX7ntINUQ8OcPMAQYAAKICWwDkP3n1+9f0mK/KhJ+yUv+uvPh1633P+WlfrXm/FSRhmr4DbYBIIBATgKygOp9rP/Eev1i5/299umvac9///r3O1XkV6TR78VKv/oW/Z6xFhh8IBsAAgAxAM7/AwAAAEZCMWJL7U1H++77+4Xf+qLq+vT9+/T9+r/v+9Ty+zMP+kk6+y4f/NvmEdrd6QKIUZOf4eiRJB6B38fe/F7+6u9LoM3gMAVGAoj8/UeQ+U+iyF93sb/vX/2Vd7oCEECMX/cyPPvEYHSO4fMd1Nj9BWP/AJMKDNstGNT4GAACDAC8xj4Wc3ch8QAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFrSURBVHjaYpjNQBoACCDG/wwMb6qrdzIwXP0HAn///v3zB0xAwO/fv2EkkNi0aRNAALEANYkw/I968nTf37/L//79+Ps3UPlvOPgFgkAAZMrKygIVAwQQSMP/f/8Z/v51+vtX8fdvBQ/v/wmx/7EBRkbGhw8fAgQQ0z+gjr9/GYyM/v/7p/D7z/+d2/4vWvQfBwC6GSCAmEAeUVH5n5//39Ly/+/f/z9+BGno68einIEB6B2AAAI76erV/xMm/D94kOH3r///Wf77Bf7PSsfiJJAWBoAAAjkJZPCePQzfvz/k+fXfywOrapC5YCcBBBALUAPznz9APbtVf0/wYPv9d/2vLSt/A8Pp7+9ff3/9/vfnzz8Q+8+/v8r8SkdbjgIEEEjDe7Y/a8IlzymzSgKD/98fkOp/QBXA+Pjz9/8foB5gQP/9//fvv78MfxgAAoixk4GhPJCBQYiB4RcM/UFi/IEx/oFJBgaAAAMAuIZbuTVBebcAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAE2SURBVHjaYvz69SsDEvj37x+ERGbAwZ9//wACiAUoysXFBST///8P0QOm//+HU0jgxYsXAAHEAlP0H8HYt+//4SP/f//6b2b238sLrpqRkRFoCUAAsaCrXrv2/8KF///8+f/r9//Dh/8/ffI/OQWiAeJCgABigrseJPT27f/Vq////v3/1y8oWrzk/+PHcEv+/PkDEEBMEM/B3fj/40eo0t9g8suX/w8f/odZAVQMEEAsQAzj/2cQFf3PxARWCrYEaBXQLCkpqB/+/wcqBgggJrjxQPX/hYX/+/v///kLqhpIBgf/l5ODhxiQBAggFriToDoTEv5zcf3ftQuk2s7uf0wM3MdAAPQDQAAxvn37lo+PDy4KZUDcycj4/z9CBojv3r0LEEAgG969eweLSBDEBSCWAAQYACaTbJ/kuok9AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHLSURBVHjaYmAgEQAEoDkMTAAAYRiGd/erXefYMi2CgQSyrCR3PkBVtYEDO7PfOxFxBRATWNv/J0+ePH78+BEQPH8eFR0t9vGj+Lv3iUlJdx8/vn379s1bt27evAnUAFQKEECMV0+eVNLV/f/v338Y+Pbq1b8lSxj+/PkXFcUlJgaV+PePiYX5yKbNAAHE+JKBgbe2/u+TZ////Pn/5zdQXf2Pr/mMLKx//9Z9fNf689+/Hz////oFdBuLvNytvTsAAlAsBzkAQDAQADdC4v/PlDiRYtuqmPtkAapsH/MHarrWdXmpod5kOSMOLzWM2IfAE4DhOUYCAASBGHhBx8r/v9NaBKRLt5O5JDMEiQooTjs1LGJH4i/9yp+6I/vhCyDGq9f3KymYAEMG6tT//z68eMQweR7Tn78/s+MFJOVAYiAv/GdhZjlwZCVAAAAxAM7/AQB5AGxKbdjz2fv9+/v++vr+/wf+CTPb+wH6+70i++397Pr+9vz9+/z+/SsPKcqIyQKIheEH0J+/FTjkfoNE//z+B9T2+742iCHx94/oP57//xl+//vz9z9Qyz+gYoAAYmTIZwBSDH8YGH7B0B8kxh8Y4x+Y5GEACDAAW2I9KwmKYGkAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGQSURBVHjaYvzIgAD/YCQyA47+gAUBAnAYBikAwCAM8zDYo/2Vz9oX2uqKkIQcezPd6Q4jDRXicAHcAHr/VX0BxALW9v/fk6cgpUD0+zcD619G2d8MjL//Xfz978vv/79//fv1CyjOJCsLtAQggFj+gZT/R6hm/Mvi84vJ6A/D39+Mmr9+Lvj17+vv/2ANQARUDBBATCALQM6A2s6k8YtR+fefk7/+HP/FqPSLWfMXSPUvqCVADQABxATy35+/EAP+//rNKPr7P/Ov/y9+/X3+6x/jr/8yMCcB0R+gbxgAAghkw3+IF38Dzfj19+Evhq+//vP/YhD6+f/Lr39PfkJVAy0BOpiBASCAwH74/RtiAMOvX3/O/WbU/sVk8Pv/399/r/76vf/3/59gxwBd++cPUDFAAIE1QDwAddWvH7N+Men//v/j15+zv/99BIn8+/Mb5Oy/f4FOAgggiA1/GCUlGUGe/guUAzHugwNA8Dcj7x+Q2ZAw/PsX6CSAAGJ8Do7CfzASM3YhsQ6JZqCPAQIMAPbnVIL0Z19UAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAG3SURBVHjaYmTg3c/w6x8DBPxhYPgLZEPQHxiJzGAACCAWhl8MDX1qQNb/f0DF/4Hq//79B2T8+fPv91+Gv3/+/fkDYf///fvf6olHAAKIhYHhC8f/X89e/QQqAir88/c/RMUvIPs3SDVQHRD9+vNXWpyDgeENQACxHP7pq/i08tfjx//+ggwBWvH31082CQmg5u93bjP8+fv354//v34Bpdjk5GwZ9gAEEBPI6X9BxjL+/g10AbeBHpsAv0R1lWRdLSsvN4+5KVAQpOHXLwagAgYGgABiAvnoz1+grX+AxjMyCaVncHt4MnBwMnBw8AWFiBSX/Gdh/fPrFwj9+fODgQEggFjANvxhADn2FzMnHxMfH5+rC5OAINBIPk9PJgEBJjZWqPFgGwACiAkYYCB/AYX+/pXq7QMKMbKy/gcCFhZGdvb/DAxyS5YwAn32BxReQOcABBAjA8PCshaTh0++AXX9YWD6/fsvOFj+/gKSf0AIGG6/v/8Gel5Blnvf6lUAAQR0Et+n3+y8IqxgOVAI/oYGPChMQcEBYfz7/+kv0D4RgAAC2rCWARh50IhEQ8gxDUFMAAEGAIw0M61VmortAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIiSURBVHjaYrzLwPCPAQSYYIw/DFDwA0z+A6M/MHGAAGIBqhPprAEx//////ff/39//jL9Z4vg+s/w5/v898xff/3/++ffnz//f//8//v37QUbAQKIBazt/5/nTxn+//v/5+//P38Y/vz5PokJSDE9+/L77+9/v3////3r388fzFKyQKsAAogJpPzvf4Z/UNVA9Pfvb6YQNtYg1r9/f/379QtoNpD8ByT//Aa6CiAAQ3NuBAAIAgHQJ7IGujOz/xnxEDmJN9iWRauFSAP9EqhzUDzE+xpUDdjTHcdyzuELADEAzv8B142LHf3wB0VN/vTz9Z2UCneE/hcK//h4/f37/fluBfIN8XBgDY+e/wcG94d4xe7+AgAxAM7/AX97pXFqRJu/+E05Dxb+7aDC++/6A2pQBv39/XuY8gQA+oFSCH6v+uzy/ZRlEVFbjwKIsXfmbhYeVVcLwbtPvu099T7BVxIYUlNXPvn39196sNTlO1+2H31TGCML5K7d9/bpzV0AAcTIoDzx3oGkuRueRXqI3Xv6fd/Jt79//0sKlAKGwpQVj/78/ZcdKnPtPkhbRZKSXUA/QAAxBmeudLA101XjOX3lE1DaSIP3379/xy9+BLLD3MTuP/1+8Ox7KwO+//8YDp59N62mCSAAADEAzv8BAAd3RVQou6XgNU0W/v4AzbXeAAD6Y3Es+Pj6pZfMAAD8U18yrsDm/+HeR1c0zNwKAgwAtRQ4pxH7HeUAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHTSURBVHjaYvRfzjBDn4GblQEI/v9nQAZALkQEwoCwAQKIZeMBBnvFajclBi2RfwwMQPT3//+/DAx//v//AyZ/Axlw8svdTQABxMLAwfD2y/8ZZz4aSn4M05LlYuFnYPgOlkZGIA2MjKJASwACiIXhFciiGrvaLz+/NB6YHq3nqSuq+x8LAFrO+FekCCAAADEAzv8AAFkA6/Tr7vfuXLBdzufOT6dRm82e7Pjy+fn5+Pj49/f39vb29fX19PT09fX15+fnAogF4r/Tz05///lNhkfm+5+vSy8venrjSIlZ0f9/YK/++8fwDwSYWNm/nD0CEEBQDUbiRn8Z/j74+OD3v19OD38FXr38YUH031+///759f/373+/f/3/+5tFVunG1lMAAcTMoMvwmf+jvbyDuZR594bCtMu/g2/94vj9+w/TbwbGXwyMvxmYfjEA2Ux/WIT431x/DhBAUBsq9pXLvhK1+1h2W17klhzIAQwgfwLdBHIUyMf/GJg5OR9JPwAIIBaGXwy/f3Hz/Qj/w2FzR5rhx9//wIj485fhz18g+f/vPzD5n+HvX5BfNk8WAwggRoZQcYYnaxi+6TF8+sfw6x/DD2B0AUkw+z8kKuEIBAACDABa5TTASy747QAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHuSURBVHjaYmSYyMDwgwEK/jEw/IGRQPQLRDLqMMzjYUiMhCoBCCBGhlaGatdqkOL//4Do7/+/f/79/fvvDxBwcPwJl/y9b+GfJ09/v3z75/fv35s2bQIIIBYGFqDi/0++PgUq/fvv7+9/v//+/fv7728tid8h7L+nV/2ra12QmJjB8v+JopLs8VwGgABiAToAaDJQ6R+Q2UCVf5nYfuWp/Nk15Xf3/V9GloHc3Dw+HsbOZvfUmX9/tGcACCCQ+X8ZgKr//PkLcoay6O8w3t+zW35fvwN0wq8vexazMr6Jsl7D1/f7/7vfQMUAAcQC9BbQ0b9//WZg/ZOl8Yfn+e+Jtb8ePgeq/i3C/6sg57cVxxqGtF//P/5mUPwDDA6AAGIBBgXQaCmhPzFCv67vd9y2ZdvT179+/fotIfJrWs1voWO//k/5/f/Xr/+/fzP+/g3UABBALAxMDCEKv1me/bpywNXHL+r1O4Yf+1ZxcPyel/ebsfDX/5dQ1Qx/QK4GBjVAALHMdWA4vODP5UtA7YdtHXyOHVrTWvRL+ebv/6kgdSAE1PAHqAHo079APwAEECMQZ6Yn/fnzm4PtNwvT38b436xHfjPs+A00D6QabDAwwBnA6PWVKwABxAiLZAZffYYFPAwMR0ERjRVBAECAAQAWUy0gXAgwfgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHDSURBVHjaYjSs/f/lBwME/Pn379cfIMnw6xfDrz9A9r/fIA4SYmMACCDGgzf/q4iBlf///5+B4d9/KPMfCIMY/xn+//sH4f4/duMLQAAxfmRgZO/v+/fiFcNfkJkMLEz/v3wB6fn95//fPyDy9+9/f37///WbSUry+ZzZAAHEApRifPWKiYmBOSiEUV6e8efPX6tX/9m9m+HXb4bfv0Do129GoBN//2b49YOJgQEggJj+AZ3x9y+zv/+/W7f+P7j/a8cO5qCg/2xs/379AqK/P3/9/QVCf4Dc30DdDAABBNLA8Ocvg6gIk77+z1Wrmays/vPwMIiI/P8N0gB0z3+wTiD5/8+fPwwMAAHEBHIu0K0vXv7evIklIODP9u0M37//e/7838+fIEU/f0JVg20AKgYIIKAfGBiBdi1ZwpaY+F9SgkVN7Wdt7f83bxjBZgOdDvEA0HgmIGJgAAggFqAt/3h4/j169K29AxRQwOD78pWBi+s/K+s/sDpwKAFj588/QUFghAEEEMups9+1pFlAgQ0Nc0iog6MCLAQR/weSY9hx6jVAADEyx3/9+wEWkcB4BRryC4kLj+l/QDYDAx8DQIABAA2EWORnICKSAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHiSURBVHjaYvz4/SsDEvj37x+YhLCgGAb+ADFAADEBpfk4uIDo2YNHV89fZP3PyMfBLcDFxc/NLcjNy8nMfPnM2cd374ry84sJCAE1AAQQC8Tg169fb9269cP7DyJiYsqKiv/v3v3/589/FZVnL16uXbtGQFBQWEhIRlYWaAVAAIFs+P///4cPH37//m1oYqwsJfm/t/d/QcH/vJz/ddUKYqJuXl5v3rx5/uIFUBnQBoAAYgT6gZedE6jt1atXXLy8jHsOcEyd+P/37y9/mH7+/CWQEPEpIvLj6zdS0lKMjIwPnj0BCCAWiC+BukVERICMnW/4jP8w/2bibDLMf/aTvfrxOX12dm5pKaACBkZGoJMAAgioAaQaCN6+fcvDzfVVXTdXvZKZjfURu9iHHz/vGrupf//85u1HSUlJRqCef/8AAogJiIGqb968OW3aNKC/PQw4VS1UnjALMXz/4azD5uokvW/f/vr6+pMnT0L8ABBALP/AocTFxQXkHzx0WFNLszZM7ZIJ+5+//3UV2O/du7l6zXphYWEBAQGgAqCTAAII5AcgS1pa2t3d/eXLl2JikkD9ekpcEHeKi0t5eHgANairq4PjlQEggBifv32LHJFwiuEPmMEAYf/5A1YNxAABBgCFMRk3L8TWJAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAF4SURBVHjaYmQAgk4GBg4Ghh9g9AeG/sEYv2AIzAUIwKEcEwEAAjEQpKBCDvZeB0awl+SAodlq+/tFtdkYIHJiEuxjP5HyxYr22lcAgTQwfPn/ZNnTvw5//wr/BYr+/ff3N0gFUCkI/fr769e/X0CGLI8s0AkAAQTS8O/f/7+f//7Z9jcsP5RPlA+o4d8/kFX//oPov///QUS4WbnZMtgAAgik4e9foK1//vz4YyJkIiUp9R8HYGRkNOExAQggkIY/f4B2/wZq+cfw7z9uwMDICLQHIICYwDaALPgFdO1/fIDhP8iJAAEEsgFo/K9fv/4DbTp69J+QENCFYPcDyb8QX4B8+e8fEw/Pl+nTAQII4qQ/LAy/K779lp827RtQJxD9/g0kgeEEZfz5zfDnL7OKyoeLFwECCBxKjH+miEhK/P79489fpj9gRUD05w8TmARGBhPQEpC1f4EeAAggRqCG2wwMYgwM78CRC4lfBhgDIsIAEwQCgAADAJ1oZSmm+IU7AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIVSURBVHjaYtxaWH+DT6l43pVygVscTAyNt0QKTf71Hz7CwCDFwPCLgeEHA8M/MPkDwgUIADEAzv8BJzNzuI9XAxcY+Nzc/vT1AhYXChQSiajE/gEM+vv8/P0BDAb5akXzfaoL+vv7spxwAgAxAM7/BJwAxgfdMQTQyQLu8fz39wgTEfb8/9/jAAYD9vD3//8EBDYoxZzC+9riNRsUCgAA+AIAMQDO/wKyCij8IiQHISH8Dg8AHB0JLCr1ERX7+/z2+//6+vyQ5qRXEg9ZIhqd56D7+/0AAP0CADEAzv8C8jI6AggJq+QA4AIO4/sGpvQVBh4e+vv89/n9+vr//3J/9NMC9ML4AHqH+/v/AAAAAgAxAM7/AyQCGO4NF8DW8Pb4+d3v+7zM5tXz/+nn6f39A/j1++8Du+ciVt0VJ8HUmerpG+PaugKIZeXxJxJuf/78+XXqDcOf34y///++fvXJr188vxj//WP6FxbY+O/f/39AYNFV0bIJaANAALEwMABd+//Xn7/AEAGGyq/ff3/9Z/jN+O/3j39tEZ9Y706ZeeI2UC7BQKbaX8pvEwNAAAE1/AEr/Qv0KNBbIA1ABlDnn78Nq9it9P+H6Ct+/c0w9xjjvRfsQBsAAgio4QdQnaQY7+/f//6AwD8g9/e/v39+g4w4f5Ph4gOgCf9+fmL8ywwMJQaAAGJkYNCFxSgyCZLDCgACDAADryXOV47YFgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAH6SURBVHjaYmTe//8OA6MWy38uBoY/DP8+/gFRDP+A5D+Gf2AEZDCBSSD6xQAQQIxADe9V+54xyO1hCP77n+Hff4a/QPX//rH8//HzH/MPBpa///4D0Z///3///z/h2BeAAGJhYGB4xiC76Hcw03+wcf9BcjL/bhr83//2n+De/z5f/rGDNPz7L87OyPDrH0AAMTGAwP+Q/zP//mP4+f//3////v/7bfJ/l82/9fb/1pr/2/b93//f/0DGA/UAjQQIIKa/DP8k/t9b/i8daDDj/99M/35w/3+r9f/If4affAxPjP/v4P73AaThL8hmoB8AAogJ6D+guaH/J//6/5//30uuf2/V/5268Nf0/59f7/8IXPujo/v36G+wJX/+gkICIIBYgGHy9L/c4v9R//79//SPW+L/Xd3/B9b8S7r9T/H1P6EP//ic/y/Z9c/9D9gbQA0AAcQExEAbIv/1AX389j/vx3/c9/8qe/6fa/N/rcL/S7n/89/+EwKrZvgLdNK/PwABBAylf1L/bpf/awCGKDBY7/5Tuf5PmeffK8//CwT+PZn5t+rwfwdGqAZQ/AAEENBJQLf8zmCds/Z/Mihy/jP8BkWR2PH/acDYeP+fXwFkEONfsHFACYAAYmRY+7X9D18l0zt4XAIDG8r+gxTTQMN/MDAwMQAEGAC/aVpzH3H22AAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHFSURBVHjaYvzLgAL+gREDEvkPlQ0QgMc4tgEABmEgCCJbsxWzpTM2oYr0Ov3Z88x1JJOcjKaxo3s24GvArXoCiKWA2T9Y1OzTy/f///77B0J/f/38++f3379//v7/+4fh77+/f/4A0Z/ff/glhOoZNgEEADEAzv8EkyJwHRIj5/35/P7//f0A+fr9Ew8EWUYV////n7Ln3eb4AQAA+vz9+/z+GxQH3QCRAoiJ4c+/338Zfv1j/P2X8ceff4xMjOXxMtrKXEBUmSjHxsb05df/n38YQegfSC9AADEB1f79z/DvD8gNv3/+FeBh4uVi/g8GgnzM4gLMv77/BroHhIAOYPgDEEAgG/7+/ffrH8Ovv/9//2N48fb3p69/IBrefPz98MXPPwwMP//8/wUMgt//gRoAAogF6ECg937/BtoBCqf33/9UTnuY4icGDLfJq5+9/PCHiRGoBOh1oENAAQsQQIy+DPYp9Znvnrz+Cw4ZoNW/fkDc8Pfv739M/0GCYIl/wnKiBRtqAAKIZQXDQdZHygxA+0CB/RdoMcO/3//+/f7/H+gwcPADEdDRQA/c+evJwAAQQIyfMSL1DxIbIvUHKe4BAgwAnbhCepZmuD8AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGXSURBVHjaYrzPgAD/YCSE8QfG/gdjA0mAAGIBSkh0VAPJ///+Mfz79//vXxD68+f/3z8MQPLPbyD7H5hk+PP7ysJNAAEE0sDAwvL3+TOGf0BpoOo//2HqQOSv3/9+A9m/gAwmKRmgJQABxML2+DG7lBRI238QYGBgfPX11bxT8378/J5onizFJwW0GSzzn5GRgS3lPEAAMTEwMTEAmYyMIAFGpv+MDDvv7rn04vKZF+d33Nn5+/8/oBkwxPjn3z+AAGL69+8fzHSg+f+BSndd3/Hu+7tfv39uvrzpxour/+EA6O9//wACCKQBrhrImnJkMtAf//8x/P77+9ff3+37Ov7A1f8H+usPQACxwDVAvDHRb+LTz8/TVqcAtaWaJJjKmf3995uRgRniCiAJEECM1xkYpKty/j56AAwKUID8/v3v109g+Pz59ZPxDzjEfoOD6+8fFnmlE9tPAQQQCzAu/n/7xiggCAxmJmCw/vnNCArH30y/QcHPAAllUMz8/f/1G9AGgABivIgakf+QIhjOZYCRQAAQYAAQU0TmhP8+fAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAapJREFUeNo0UT1rVEEUvTNvN1k3RjAhBAtNQAjGoI3YhNQbUIidpBAsop2lv8ImlaBioWgqmxSJaxFIkSqgNoJ/QEEILL59u2/fe3Nn7vHegMPAfJ17Pu64xy+aYuyyjHQIkKJtiokLCZ22RKYmSgKioGF022jlI/fwHgxNAEgfh0O6edvr6fs36c4gRqSEJJQEHw9GramWUQ4KkUg2gbPKrYd8ivArvzg7AqtCNKK5eUcEj3NuheqtSpelW+350/33/Q8v1x5kk8LQUacqMFTWK6U6MbRAhMaVrHTo82G/f3S82kZRuxRVBIHVlTomzwo1i9DKukbnmvv7k4chVBzyH830EtU1cQIHaAPMkrJaJYymmWD5jv/y7tPuk/DmWbO3+/b6htPmqBkRS28Fqqj0pshUeZx95RsXXt3aCiv3eX3x9eAkjqOhmc2zhvUs/wkS5Y1b64ad7Qp/An43Tx+FuwtFEYnPO6sY9dQqK+0ALl+iirE8S72lHUyuOiWkSDO8Obd9dOXQs8sASZbB9Z6Xg1IzCJu04koi/TVNZs9WRs5WpzeOMvknwAA1gFW4KEKxHwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGrSURBVHjaYmSQXc7wj4GBiQGE/zAw/PnD8AuC/jH8BUr8AaNfMMYfgABiAZKNrcZyQq+UhZ8ZyN4581Dx2nPFB2+E/vz5/+ff/z9//v35+w9I/gYzVrZsBAggFrDZ/73UNrKz/GD688ta9rYSH2/J5djfv//9/gtU9/c3WPXv33+lxTiBNgAEEEj5v/8MO67qcrN9Y2f+8efvn/XnjUGqQUr//vrz79fvvyD0B2QP0G0AAcTC8I/p9z/GPTd1d19TA1r68y/rb6D7//79/Zfhz2+QX37/ZQSRfxh+/gX5EyCAWDQ/7VD9xifw9SPQ0X///P375/ffP39ATv/99zeICdQK5IIYYlyCuxhmAQQQy4Gv83nf8TG8fPD/76//v//8//37/+9fmCTQAGYmpSiGrwABxPKNgYET7FqQ6j+/gL4DkX+A5O9/f8CqgSSI+4f57583DAwAAcQCCqM/IINBSiGGgU39BzUbbAlQ89+/TH9B8QIQQCz/wBoYxSSZgH4E+vr3b8a/IM1MYH8wgKLjz79/INUMYA0AAcR4GxyB/2AkAyoXDQEBQIABAH37YQEdozCyAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIFSURBVHjaRMaxDQAgEMPAMCWzMwpSEqOvcHHyumfrl8Kg0ogQFzMT6sRPAAAxAM7/BAAAAHbOEQEAAI76/gAB/vs9DvLh9dq8EPPp//77/P38+/37/P/8/AgR+Rot8AsI3AIIpOHn7//ff/9g+PsXiP7/Z7m2lYud98ufr4w/v/0BmsrM8vPnlz9cIt8enGKX12QCCCCghv//gOj/X4Z/QEt/A13y5cXf1zeYLVPuPb3IISjz8e+vv59f/Xt8juvre5bfCn8AAogJqPjv37+///35//c3w1+gc0Fu+PfvFzvPN53gJ0KKH65u4+UW+yYo++Hv79///v4BCCAmoO+Aqv/8+Q3U8B9I/gNq+P3//y8uia83t3Iz/P/tkH9LzuYlr/gXoDjQaIAAYgFaAFQNsuHPL5ANYA1/vv+/v49T1eEFA8MvkPSnP1e28IN9/xcggFiAYff7H1AJWPWfX////fr7ixVIP7vC/umFAL/056cX2ZWsX/35+RcYaEDXAwQQ2Ia/f379AbvnN8hJnII/+eV+PjzFwcLO8P8Px5+ffx6dlpQx/fr6NhMj4x+AAGICRg3j/99cLEz/GBn/szIzMDDr+L358ZGNlZvx/3/Wv/9Y/zOx/v7J8foWD7/ke27hnwABxPjpnCNSRIKCFYj+gbwEjBNQHAOdAZJl+AeMfWCkAQQYAJhUc1JTX8GfAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFkSURBVHjaYmRgiGZAgH/nGZaDKAaGP2DyHxIbQgIEEFA2evPWy9+//9q85XJr+45///79/QtEf/+Awe/fv3/9+vXz588fP358//799c3rAAHEAtTh4qTOzs5iY620Y+fV59XF///8AaJ/QPL37/9/gezf/4CM379ZJCQvTJwFEEAgDXv23LSxUdq46dLvP38lWnr+4wCMjIxmKdkAAQTU8OfilSfbd14BGvr3z99nxdkgs0Gmwsz+CzT+z7/fv1glZU7PWgQQQIy/375mFhSGmAG07T9uwMjE9PbGDYAAYrkkLCrT1/b72TOQeSB3A10PcjHQbDADaC+Y++cPq7TMyYWrAQKI8fvrl6xgG/AbD5QF+uHFjWsAAcRySVRcvq3+59MnYGMglvz6B3I02AaIf0DkX3Y5uWPLNwIEEOPX50/ZRMTQ/IBhG0gAiJ9fvQwQQCznJKX/oEbnH9SoRWYAAUCAAQBu0mcNl6fCkgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIGSURBVHjaYnz79i0DDPz79w+ZhIA/f/5AGI/efXKuOAAQQCxAuS/PTonJG//7+/vVozOyul6MjMwMDP+BgAFCgcHUow9PPPjNcOAGQACBNEioWN04POf3z2/CsvqMjExIykDgy8/fUcsuPXv/RUaAk4GJBSCAWIB23zq29P3ze//+//364ZWsticDIyNc9cUn74q23Hr/5cfvfwy/f/1iUJkOEEAs3z69+v//n6i8wbfPr35///Ln9w9mVg6g0u+/fpdtvnbqyddfQIU///zmX/pb4j2DDANAAAAxAM7/AgYMFCY6Xezj0vLq3yc8XgMEB////9fn8E+gzsng8Pn6+vr4+fobgPoOx/wE8gD4AAII5IeXd44JSmkwMDA+v76Py0apasv14w8/fAea+o/x17e7vxWm/mJ+8/vvbyBg+MUAEAAxAM7/BP7+/honQBkoQAH//u30+V2iyuDw+/v/Avv6+foTnPsY1PoC9Pv6+/z+/P3+/AD8AAIIpIGRmfX/v3/br73oPvz4+48/v4D++3rvl/yU3yxvfv37DfTCn39ADX+BCKgBIIBAGl5/+Tbx4P0HH/+I83L+4fj7m2f1b46bfxgFfv/l/vP3z5//f/4Cwf+/f4EafjEABBBLz64LE6dcYHjxCRTVv74xqE1l4GNgAHrtGwPQPBD6BSb/gUk+BoAAAwAdbVDiIWomQAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGOSURBVHjaYvx9lYHhDwMc/PvD8A9EgRCEDSShbCBiYgAIIBagaiapZqCa////Mvz/x8zwl/n/P4b/f/7DEVDh/99ABsO/358urwQIIBYWJgYGRqCCZ4wgDSAVDP//QqSB6sDo1/9/v4GIkVUaaC5AALFc+sIg9evP719AM/5CjPz37zfYYJCif/9//YMw/v1iZf91/hUDQACx6O9hKHP9/ujLlz9///z59+f3v98g9Pf3LxD569ffXyA2mJTn4z+4gAEggFgYfjD8+fcXyAeqBmkAKQVJA7X9AmlAaAOayPCFASCAWIDO+vv/z5//f4DqgEJgG34BjYdoA5EQ9v/fQARUDBBALGtbGXT///7+EKgGpAto1r8/EGVglRDyL1DxH075P5suMgAEEIsZAwP/mz9/X4KMAEr///XrP8gCMAMu8uf3/z9/WTj/ejAwAAQQyy+gk4BmS0oCpRn+/AXJARkg9h8gyQgkge79+5fx798/f//+YGAACCDG2+CI/gcj/6FyGZDEgQgYZwABBgAlIndD8dLdmQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFzSURBVHjaYvxvrsvw6QMDGPz794/h1x+GPz+A5L9fv/79+v3vF8O/3wz/GBAIIIBYGD68YahsAqr+/+8f4/9/DH/+/geSf/8y/v3H/Pcv05/f///+BSEw40tTJ0AAsTD8+MXw+9f/168Y/v1l+Pvv/58/DH//gFWAFf3+AyJBjN+M4hJAGwACiIXBL+S/kiqDiBhI9X+wHpCREBKs8x9QJ4jBwM//T14cIIAY3759KygoCHLS//8MYIgLMDIyvn79GiCAWCDehQjBGVgBAyMjMFQAAogFoQi/+UAbgKHx7x9AALGUnOAL0/j/4TvQ2QzAAAI5HuhzIAljQ7wDDHBBzv8VO5kBAohl/pl/ygLMTz7///2XAaju918QAobQ73/gcIIwQIhBjpfh4y4GgAACOukfEwOTNDfDn/9AaQaQPf8Yfv9jhDD+/IOIMIJiBxSo/wACiJGx9ev/L2CZX2D0hwFMgtn//kHZ/yAkAwMHA0CAAQDhxHlrsArfvwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFjSURBVHjaYpzIwPCDAQr+MTD8gZHI6BeMZGJgAAggli8MDK7V1UDV///9A6G/f//9+fvv75//f/78A6Lfv/+CSSD77+/fMzdtAgggFhaQ0f+/PnkKUgpEQDkwCZQGkb+AjF//fv0CcrllZYGWAwQQC9A9f/79/42sGigNNBWsFISADLAGtt+/PzEwAAQQ48uTJ3nk5IBC////ZwA6CegHiNv+/4cy/kE5LGxsD44fBwggxr9//zIyMv4HA5DjcANGJqaPHz4ABBDLm3PnuGVkgDYwQM38/x9uA4wNsYqFnf3RyZMAAcRYzsDglZX18f59UDj8+gX2KMjFf+EMsCBQll9Jqf3cOYAAYgF6HMj5Dw4TEPoFChMg4z/QV0ASwvjz+/+fv8BgBLoZIIBYgNHx//cfLklJsDF///6B6YRFAjBCgP6EBDow+gACiLGUgeETLCJ/IUXqL9RohkQ/DwMDQIABAHwogUlFi1BaAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAE1SURBVHjaYmSYyYAC/jAw/AOTf5DYvxAkQAAO5dwIABAGYmBCV5TnWghc431gZjaT1ntqVybJsSLbNJnPAwZFBH36CiCQhv8M/5/9ePb331+gaogKiCII+gUk//4CMqQ5pYE2AAQQSAPI4H9/IeYBGSDz/v35BVT0H6znLwj9+vcLqADoKoAAYgE5heEvxA0Q1VBFIMavXzA2SP/f30AbAAIIrAFs/G+Q8X9gSkFGgg0GaYMIApUBbQAIIBagpr///0CcAVcNcQOyZpCn//0GagAIIJCGP3//AuXgHoXYDrcE5BOwLFAP0DkAAQTW8P8PitORjP8FshkYpkA2KAyBigECCKQBKCHOIQHyAChAEVYBjQQqAdoPCr3/YA3/GAACiJGhESUioSSE8Q+JC4lyBgaAAAMAfyiQ8/keuMIAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFCSURBVHjaYvzPgAD/UNlYEUAAmuTYAAAQhAEYqF/zFbe50RZ1cMmS9TLi0pJLRjZohAMTGFUN9HdnHgEE1sDw//+Tp0ClINW/f0NIKPoFJH/9//ULyGaUlQXaABBALGCz/6Oo/vXrH9g8BpC6XyA9YA0Mv38DNQAEEAsQMwJVA1X8+cPwG0j+/v7/91m93//+/DY+9Yvt5y+wPVANQNMBAogJ5KI/SG74/fuu1K+vHL++cPy6IQtTDUF//gBNBwggsJP+/gH76RfIht+/1W7++vD/998/vzSv/v6PZAMj2EkAAQR2ElgI5CqwBNPvX+ZnQFb9+43kHrCb/zAwAAQQSAMzxIvQYIGGCcgIuMgfoAZQqACdAxBAIA1Mv/8wSEqCjQH6HqSTEWwkA4QEInAYAhFQMUAAMX5FjUg8cQwBAAEGAIxxV83FJtxtAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEOSURBVHjaYvzPgAD/UNlYEUAAmuTYAAAQhAEYqF/zFbe50RZ1cMmS9TLi0pJLRjZohAMTGFUN9HdnHgEE1sDw//+Tp0ClINW/f0NIKPoFJH/9//ULyGaUlQXaABBALGCz/6OoBkoDzYMoBan+DdHA8Ps3UANAALEAMSNQNVDFnz8Mv4EkFrPhGoCmAwQQCwMrK4Os7H8Wlv9/gR74g3AxktMhJIOU1L+DBwECiPH169dCQkL/gYABDHEDJiam69evAwQQy79//yB8sN9xAogsUDFAAIE0QDgENQDBnz9/AAIIagNcDwQwMjIyoAAgFyoLEEAgDS9evPgDBv/AAGIShA1iMIAgkAH0A1AKIMAA5a1fe6Xb4q0AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHISURBVHjaYmTg3M0AB38Y/t5yZWBhYPjA8O8fwz8uEHlBneEfSAZKAgQQUJKhpV8dSP79B5JmFK7+//8/A+9vxv9/mf9/ZvrPKl/w5/+f3////vn3+8/1OcsBAgikgeE/w9PXv//+/Q9E//88ZmD9vGUd97+/v719vv3///vng9//f4MQi5T0LwYGgABiAtoENBui+s/f/wz//756+ldB9tuvH7+fPPv6//+v/79//YOiP0BXAQQQE9Bd//4z/AGpBokAjTywh1Nw9i+Lfd8O7Gb7/+/Xv1+///369ffXL6DDgH4ACCAWoPl//oBUg0iwhr9/GXncf/0Han/JBNIANAbsJIgGgAAC+gGoGCjyD2TJ739AFX/+MAbv7wSKRGsWAPVDVYNUgJwEEEBADSDG7z//gQb9BWr4/ysi8vevn8V///yKi/8CtOf/L1AogbT9+Qu0ASCAQDb8/ssAthakE6SC5V1U8O9//379Z/z9/x8HyDBQsP799xdkA0AAgTQA1UkIswL98BsYXsxSDP9Emfl+M/378///RwZmdja5v2DVf4FBCdQAEECMDAwrwTEIRW+Pp/8DBvUPcEyD0SFXUBxDEBAABBgAcLpkVVnkSs0AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAIAAADkharWAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAWJJREFUeNpUUr0vQ1EUP6/39iNtY+guISQidOli62Ag/gCbxd9gNHVg6iJIbBa7ldjEIJUwVCIWxWIggqZUe885zrn3veZ5OXnvfPx+5/NF/LQE6YcAmIEBkFQnZmJE9Tkih2yh/IurfUGyx2PCSgl7ourFzYHVr9jnbfQc8pzUm5FjPVevolYgxbn/6MHBLBSsW7thYzBxGoE5zkixYDsvZnuGxgumkh9Kv9NlszvnkpBiiCxwjA7pI4Jof37qeIMjuN9pDjvfLhlGog7BgtMKCYHppZ+pjVUWriaLb45hcNsdtaTTk7SEgcBDYEH87D1+rbQuJy6OKncf/XyjvejC6CqCFYIj9FAVX6p0WuudvaKNsifPjfUWBajfCmpLqItzqW2+L1+r0nwQaO/QXzIZQ85n2c+QrVcNxLGQjMO9RtcPNAL72c3mtljakpVJAjlNxGpS+EHEKbumOD1C6U+AAQBBagoVSc9+ugAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFXSURBVHjaYnz//j0DDPz7909AWBjKxoEAAogFKCcgIAAk////D1LY2vr/9RuGv38Y//xh/vOH6ffv/3/+/IeRXzZtAgggFoh5UNVAxtOnDM+fg1RA0C8g+ev/r19ANqOsLNAGgABiQVENZABNAkqDSLBSkOrfEA0Mv38DNQAEEAvQ3QjVQPjrD6bZcA1AZQABBNXwHwyAjNfsv7/w/Pr3B6Tn3+9f/8AkUOffP7/Z+f8cY2AACCAWuGqw+Qx5Ib+ffQYZ+Iv51++/QB1g8u8voD4l3t+nfjIABBDIBrjxQPLvn18/f4OkUVT//f3n35+/zH8YXjEABBDCSRASbh6MBOr89ecfUMNfIGL4wwAQQFAb4HrEOcX//f0H9AHQSKCGP3+B4fXnLxD8//sXqOEXA0AAMT5+/PgfGPz58wdIqreoMzwBRykTA9A8EPoFJv+BSR4GgAADACSwYx/dm6x4AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIGSURBVHjaYmTgrGaAg39/GH79Y/j/h4EBjn4hkf+sGTYCBAAxAM7/BAAAAISSTTInFQ0JBcLQ5vP3+/39//z+/v39/vz8/vv8/fn9APr7ACYE5FQMxRl2AAIIpEFCiMvDRvH/f4Yrd95cvvf2759/f/4ClYLQt9/MnH8/xfAcCOA4xSoi/ymWASCAgBr+sbMxA7UxMjKwsTFDTAVa8u03I9BgM9Yrifw7lHk//ldx/m+b8i90DkAAADEAzv8EAPr83OXyq7jYEA0GyNTo+/z9+vz/+PsDE//qWwu9SBLc/yc5/zZe/xYo+f8BhJC8AgAxAM7/BAD9/vb4+6/D3vv8//z8/ff5Afz9/kMExV4TyhUrKv86l/8SKeLr+bOq0tLc7KSGdAII6CSggn+/f//7/fff9+9Mkv8fxwqesDXg/W9W913Q5Pi1d9sXHzlw6tGL11+UFISAwQUQQGANQEt+M7H8+hrAeyHG8C+7UfQ9Jr1dJ1/vOrzj2v03P7///s/MyMzGzMQI9OkfgAACavj1/cd/NaZHCSZv1AzMT/3S3rTjzeFTe96///r7P1DFfyYWpt+gIP777+8/oAaAAAJp8FF8r2anfO275aJDX+8/uvH75y8xAU5hfvbf4Oj4/Y8BrBoY2kAD/gAEEKO7c/aJZxwfr/9gYHgAjlE09A+JAYxsBoAAAwDl5x/24Nr3SwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIqSURBVHjaPMLBCYAwFAWwrORUHfyfS5EiUkSeeGmIRJr4v3t5yuLmYnIyDn34BAAxAM7/BAB4AACQewByAP+v/gHv/gD9/f/8/QD6/AEB/ANm/AL6+//8/P8M+/9f/P8o+/ROsgKIhaGTgUHi/3/TpwxRfxmW/f1/5jdIz93f/1l+/7/z+z9Qg8Gv/xm//t/6zThP9t9hBoAAADEAzv8EAAAA/+r/AJj9ACP9/0D7AA/9/7r6/8/8/wD7/wD6/0j6/yr7/4n6/8n7AB77/gAAAgAxAM7/BP41AAEe/QD4/P/d/ADa/P8r+/8y+/81+//++//t+v/u+v+K+//2+v8a+wAo+wC8AAKIheEE0I6//7/9/v/lD8PDP//PgQ22/v3//+//l3/9//r7f92v/0q//vP9ZuD786+SASCAWBhsGP4n/Pl/48//l78YvoN89p/51//jQA2//j8Am70SzBb9zaj7+98kBoAAYvl3nIHR8Pf/+78YZP/8D/31/97v/xt//f8NtmHfr/8+v/8X/Pq/+DcD0Fcf//xhYAAIIBagP5j5/vxP+82g8/v/vN//d//6/+vXf4Pf/1l//V/x+/+C3/8dQd5gOPWXYTMwhhgAAojlny8DU8UfhseS/6f8Znj6l0HmN8Pv34xqvxmY/jAoANl/GG7/YWj8y1D8l8H/7z9ZBoAAYvz6leFfBMO/zQxAq4CIAUwC3fnvH8M/a6ggVIqZgeEWA0CAAQDvj0SHVpI7MAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFsSURBVHjaYmSYyMDwgwEE/jEw/GF4XMAgxQXm/QOjMwz/rEEycAQQQCwMXxiqXavBKv79+/9PgP0vAwMQ/WFk/MPM/IdJ/vf/mD//f//+/wdEftm0CSCAWBhYgIr/P/n69O+/vyDw7zcD89///39D0a/f/2//+v/rF1A1o6ws0AaAAGJhAFn9H6j6DxD9/Q1k/v//6///P2ANv/7/+wXSA9bA8Ps3UANAAIHM/8vw9w/Qyn8ghDAbmwagYoAAYgF6FGj277+///yFa/iF0PAfrBqiASjPwAAQQCANf8Fm//r3C6gHSQOYRLKBEewkgAACafj9//evvyDVv//++odmw7/fcOOBrv7DwAAQQGAngZT+hiCwamQbwBr+ADUAfQoMbgaAAGIBxtrvf38kuSVB3vjzl4kR6LPfjCASaNxvBtY/DEp/QErBCOgkgABiZChlYPgElv0BQqd7GBR4YNEMRPsY/sVC4xgCAAIMAGM0cjL4DOlaAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAMAAABBPP0LAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAn1BMVEX+ywD+ywD+ywD+ywD+zAT/ywD/ywD+1zu2whO2whO1whKzwQ+zwA3l4441sjM1sjM1sjJVvlOE0IKJ0Yfe8t40sjM0sjMzsjJFuESi3KL1+/X////1+/U1sTM1sTM0sTI4sjWw4K+qWTeqWTaqYj/g18f7yc7tJjntJDfwRFX1i5XsOUnqKDnqKDnrLj/qKzzqJzjqKDnqKDnqKDnqKDlzJ7AtAAAAAWJLR0QbAmDUpAAAAAd0SU1FB+AKGwo0KJQwp8YAAACJSURBVAjXTchHAoIwFEXRTxFCCzUUI02KFClB9782E3TgGd33AE6SLEvwT1FV5ZeXk6br2rcAIWSYlu04tmUafADGrucHYRSFge+5GAMhcZJmV0pvWZrEhECe50VZ1ZTWVVnwAXeuabu+79pGNDy4YZzmeRoH0fDklnXb921dRJ8HO16MvQ8m+gNpPA/qIy7lQQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNi0xMC0yN1QxMDo1Mjo0MCswMzowMDp4aqYAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTYtMTAtMjdUMTA6NTI6NDArMDM6MDBLJdIaAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAF+SURBVHjaYvzPgAD/GBiYGV4yMIjAeED07SuD4D8YB4gAAogFJFVdzWDF8P/UP8Yf/2r/8Xz+zfj37/8/fxj//GFm+M3B+ifm/+/fQD6Q/LJpE0AAgTUw/P8v+ZThzV+Gd38f//n7ESQFRf9//fv3+/b/X7+AHEZZWaANAAHEBFLu+59B4C9DxF+g6O8/DGDZ/79/QZT9A1G/YBwGBoAAYgFixv1/GVT//L/+h4Hpz58fULMh2v7/+g/XygBEDAwAAQSygSH073+G3/+Df/8X+f0bYRxcD0zozx+g6QABBPLDf8Y//1X+/Gf5xfD7D9BaiFKIagYkGxjBTgIIILCT/gED4RcDwx+gBFDq50+EqxggNgAdAwylP3/+MDAABBBIA/PfP/+f/WZgB2r7jeYeqIY/QA1/Gf7+BToHIIBAGphm/mH4IvmfBeinv1LSTFwg7wEjAeRJxj9MjH+UQErBCKgYIIAYvyLFIhAJM1xmYJBAEvjykEEdwoIAgAADAJ4ZThKIqVtZAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHeSURBVHjaYmSYyMDwgwEK/jEw/IGRv2AMCBtCsjAABBALwxeGatdqkOL//4Do7/+/f/78ZWQCKfzy88+f/79///vz5x+I/P3396aZmwACiAWoiYHh/5OvT4FKgeDf/9/cLH///v8dL844+eHXL39+f/r569f/X0DVsjyyQDsBAogJiIEm//33988/kOokKaavv39xs8gd/Gr4698fhv8/C2QZfv35BURAPUBXAQQQE9D8vwx///wHOuT3//9/Fj//+v7nHxdp1xK9sl9/uf/8+zXp8ReQhr+/fv8DaQAIICagb4BmA3UD+THiDFoCtqkaKVoCmgz//xfr5aVrVr3/wVAuzwTU8OcvUCkDQAAAMQDO/wMAPgA2Ijbu+e76/vrJ7/prLGo7FzsGAgbm9eYvEjANBgwRBhCC1bz7//sPBg/lxOUCiAWoCcgBGQAKh18lx0o4WTh//vn5/c93FkaWdz/evf7+Gmg5UPbvP5ANAAEE0gC0C+IkIPn9949QxVApbildQd1tj7adf31h7b01wMD9Aw4VoGKAAGIBxhowjCW5JYGqQaJ/fm98uPHfv39AI3/8/QEklQSUQOENDHSghl8MAAHEyFDKwPAJFpG/YJH6AymmfyFFPw8DQIABAL9BPtF3kUG5AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHnSURBVHjaYmTQbWSAg39/GH79A5Ngxo9fDD/+MPz5xfD3DwPDLwgCCCAWoLIJVZ5A8v//f//+MYjw/ZaX+m0s84uT4c/DL+zbT/179Jrxz9//f/78/fP377TKSQABxAI2+f/Ld1///v0vKfBLR+nzn6fXPn+WZGQQlFV+6KzydcELmQfPmH7/+SshwgO0ASCAmIDu+P/vP1D1n7//5KT+GUj+uvpHbdZtpQNsChWLFPj+fc8P/P/rz9/ff4DgL1ADQAAxMfz59+c/SDUQmEm8vfz444qtwv//srEwSBy58m7GTSVOhke/f/359fvvnz//gBoAAogJ6L9/f4E2/ANa+pfz738WVRNtXiF+NgdjMT8nuVOn+FlZ///6C7ThH1CegeEPQACBbfgL8hDQgM+fhLRl3lx+/Oztx89X7j44+5DZyfLa74/sv0HGQ20ACCAWYNgBbQAZ8Ofv5rMc0kz354QxHH5vePfZ8yK354ZS3/t2MgAdDA4lkAaAAAI5CeimPyBv/b1091PtOV4+cW6gj4CONBR9fuauxNZTAhDj/4I0/AEIIBaGX7+AxosIcv0FG/P7JUf+/P9+9pzAkMvZovb97TdZ8X+gIPkLdAdQwz+AAGJkYE5Ejkgw+oNEQhgQBNTAABBgADDPQBngvq0dAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIhSURBVHjaADEAzv8BACWHAPj8gXhCJiASkKDMybzaAP7+/e6C/v7+BQV2AAD0WW9KMi4WdWOkAADqAAD+AoiZgdOhq9GNj5vNwUzW20lZQl7Q3knZ3lSWgYHhJx+nmZOWkCBnqLt6cJQpo5jUhSNHAAKIhYGJgeE/w9NXX+48fq+rIvr+448Pn3/+B4OHzz7++PmHjY35wbNPkiJc//79Z2D4AxBALAy//vz+8y/YVVVanJeFmYGZmfH7z98QDd++//79529FqhkfN+vnb78YGYG2fgMIIMbZq8+b6Uo/ffmJlYXp/38GXm5WoAYbIxmghv0nHwF98vLdVzYWpj9//0mL8c5fdwoggBj//v3LyMgIlP756y/QCBYWxv+oAKjnx8+/zMwMrKwsHz98AAgglnlrLpnqSwnwsrOxMj558eXrt19AFdZG0hAb/v77pyTNz8LKeOv+ezZWpkXrzwIEADEAzv8BAAV1eopM7/L4Z1Yu8vP5h5zI//7/r5NQ////QmKp+/r9HBgMdGE0o7HV3OLxvqJ7AoiJ4c8/oF8+f/157PxTbi5WEQFOBpij/v799+ffvxevv568+MzHQRkYRsBQAgggFob/P/78/ZsTbSQvwfPr718NJSGm+wyM4BAB+vLf33+lyaYSwtxff/xiYgQFK0AAASWyGRg+gTQzsDEw/GJg+ACM3ZcvVwB9IinpBQxHBgYusBTQIY+AJECAAQC87QvkuTqraAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHLSURBVHjaYmSYysDwhYGBiQEE/sHQHzD6BWNA2D8YGDgYAAJQKO82AIAwEENTZDWmYhD2YDJadL7wkVw9OWNFb/3Pp14+BntDQUJID0oqZM0xrwBiYWADKv7/5OtToNK/QLH/QAV/g1R/////e8HV30Durz+/fjH+AsrI8sgysDAABBDIKUCT//4DGczF/huo7deXX+FKvyOUfv/6/OvX3588HL9A4A9ID9BhAAHEBHTfX4a/f/7/+fP1t5fsn1//fv1m+e2+/Zfjll+/WH79/PsrSvkXSCdQ/B9IA0AAMQG9+OffXyAHaPvZ17+XOP3+9e7Xr6e/fj/79evlr7Xuv8+9Ban+9ffXn79/gKYDBBALyAag//7++cX+6/TNP4+Vf++M/zX92u8//35laf5+/O3XltO/fwmA3AOxASCAQBpAPgMaAAwH3l8Z63976P/K1f3N8P9316Vf8w+CVf//DTQRaC5QA0AAgTQAORADQDr5f6258Gv5KZARQJFfwkBxoGOAFv4FIqD7AQKIBRhrwDCW5Jb8DREF6uT6/fvPb5CFjCAaGB5/gQAY6EANXxgAAoiRoZKB4R04dn/BYhSZARf/B45pIQaAAAMA6XpoXQ+yMwUAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAH4SURBVHjaYjycXXuASa121ad6pk18LH+KnzmkK9zyspLwX/yJgeEPA8MvBoZ/YBKKAAIAMQDO/wEvJYOwlEAAGhv519gA9PP/GBsLFRC72fza2+z9+/70+//8+/4A+ff8/v/3/QOpnI0CADEAzv8EnvCUB9oRBMi7BfHz/vb2BhIP+PsCOff5xvU28PsDJjg4/P3+/Pz//Pz+8dfQAAD4AohpC4/Fb3k1Flm5P5y8/6Rl2dQ1P3MLX+VU/v6b4fevX7///JMUeqMg8uw3UNvvv0AnAQQQ0xuPGCYBgY2fZB9ySj9jFFrHacaio/OBU/jzr/+/f/0Bmv3jNxsz2wagDaz/QH4ACCCWf6eObVTkO/7onwELB8OfP4dv3Lwqx63J+p/x149fQJf8/ffzzweg6b9ADgPZABAAMQDO/wPL5zUrPC3v7/fh9wfg9gf7/P3n6vbP5f/z+wH9+gBRLKI0CLPz7P4dBL7S4Cjd2boCiAkYdkBjfv8Gor+/gOgXkPwHYXz+9ad3peXNd8L/OT91LLH59QcYvn8AAogFaMvfP/+BBgM1QPSAGH+gDJa//zqX2QA9ABT58RfopD8AAQTU8AcoISHGDSSBEn9AOv/9+Qcm/4BEGH7///f/LxPD3y+//gMVAwQQIwNDJCxGsaJ/SAygMgaAAAMA5XdGLTXRCtsAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAE2SURBVHjaYvz48SPDv38MTEwMSODfmzc8ysr/gAwMBBBALEDAysJy8+ZNbW0tBkaQtv//GRhYWP4XFTF//sz0+/f/P3/+w8gvmzYBBBDLvz9/7ty/9+rZsz+/f+sbGv4HKWf4//fv/wcP/n/48P/X7/+/f/3/9QuomlFWFmgDQACxMLGwaGhofv7yFaEaCP79AykCqfsF0gPWwPD7N1ADQACx/AN7wNTMDKQaDKHg92+YHoQGoHEAAQTWwABVBWeAALJqiIY/f4BKAQIIpAGqAsV8mAYkGxjBTgIIIBbsxv/7D1cHNx4YUH8YGAACCOEkFA3//6EY/weo4S/D379ANQABxIKsGh5xjMzMDDIyDLy8QINB6O9fCAKaDRBAIBvevHnzDwaA1oKoV6/4tmxBi2MIAAgwAE21W+t5kcN2AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGCSURBVHjaYjzOwPCHAQH+wbh/YOx/MAZEHCCAWNgYGJSqq/+D1P4Dov9///7/8/f/3z///vz5D0S/fwPJf2ASyD6/aRNAALHsYmBwYuD9+uQFUOk/oLrfINV/f4MU/QWiX0D273+/QGweWal5DAwAAcRSydBcye/4+NvXP3///QFpAaoBGgdW/PvfbyAXyPgFNOGvnDDvHoYnAAE4jJMUAEAYBoBpUBD//9qmiwvMYQaw0kZcrKgWKJRg/pLeVPOfsgnsI4BYGCQPSAmpMv95DzQVhP7+/Q2kwTb8/vMHKvjnD9AGKTGhgwzbAQKI8e9foH/z//9/8J/hF8P/P/////7//xdWkolJ6f37UwABxAIMG0ZGkBAw3FAVoagGywJtYgAIIJa0fQwR6n/e//z97x8oaP7++wVC/0GMfyDubxj3rxDH39J9DAABxDJ/FQNDBDCoJcFB8hcanCD2HwgJDDOgahD4//djDwNAADEyxDMAHQ9Ff7Ax/sAYwAhnYgAIMADE32WgD1cXGgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGwSURBVHjaYnzNwPAPjCAAzv6Hgf6AxQECcCjGNgDAIAzL0LkP8xUn9Y0kUIRkSx58xhuxSw1ttwyrpZJAYoL09sv8AogFrO3/3ydPf7L9/wfU8PvP/79AFb+AGkDs37//A9k/f7F/+M4kKwu0BCCAWIB2/f/3/w/Dv2ktaj9Ygaw/P/7/UGRR0GHTWft53c9/P38x/WX8/qvZ7wTH799AxQABxARyMcgZf/7++/3v7++ff39IM0m5c7oKMgqYsZkARf7+BTro979fv4EOA9oAEEAgJ4Ec/ef3X5BT/v78+12VXRnorN7XPawMrGDBPwx/f///BXIk0HSAAALZABQEuvX3/z+/Gf7+Y2S49vsGw3+GPKECSy6rn////GT884sB5CsGsA0AAQT2w2+wdUDbGf4y/fl3++eNzb/+6nDqHfi479+/X//+/gXZAFQDtgEggCBO+sP8/Vdx6nlQ4IDc+uvfrxPAIGoGhdLPf2C7Wb79AoY4UDFAALH8Adnwh1FSkgsU5H//Ad31G2ref0gkABl///4S+wsEQMUAAcR4FxaLf5Bi9B8SFxkxMTAABBgAab1LMOd7kuIAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGjSURBVHjaYmTAAOwMDBkMDP8YGCYzYAEAARiIYyKAYRgIghM+aoNOrIQgjSGYTP70tordZ2TmbPvY0f3SX3MgYEsLfkkwVdUVQCxgbf+fPHn69+9f179/dX7/nv73b93v3wy/f7f+/h386/eJ379u/gJpkZWVBSoFCCAmIOb/91/o71+7v3+Nf/9e+Pdv1K9fD3//vv8LqPrXod8/0379EgEjIaApDAwAASgcgxuAYRCIHVIH6pqRMkznO0MIffpj+ykpqpT/Q5MrGduBNoFfe1Kf3QyypSuAwE768xfIB2pg+P2H8c9vNrA0CEEYQBLMABoKDAmAAAJp+P8XYjzQsD9gpUAVSKphJNAGoAaAAGJhjmao9/j96MOvP3///P77C0gAyd8g8vcfIOMviPsH6MS/f+QE/2y+yAAQQCwMUgzPuf88BkmA0K9/v36B1YHIf0AuVMMfoD/5/zKoMAAEEAvDD6BD/khySIKM/Pf3z1+wl4Eq/v0BkX9BoQEM8b///wLlgIoBAoiRoZSB4RPQ3wwMv2DoDxLjD4zxD0xyMQAEGACOo13bLsfWhAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHQSURBVHjaYmSI52ZgYmGAgD9/XvbdY2Jg+vfvH5AHJP/8+PFKUREkA+SCEUAAAZUyNUZ3MjAw/vv399ff30KCwkyMTAwM/4EAqO7/79+sOQUM//7/+/sHyL41bxZAAIHN/s/w7NOrv//+fv/9C6SO8T8C/Pv/694DEPX7N7OUJNAGgABiAdkM1A+0HWjIvz//wWbfu3IA6B5ZDWtmoNrfv8CO+8P05zfQYQABxMTw78/f/0CFf//8/fsbaO///49vnnhz/8Lqia13zu8EOuv/r1//fv/+9+v3v99/gDYABBALw69fIOP//gGqBuoBamATEPvCxMclpy0grf4faP2fP2AH/AEygDYABBATA5DxD2Q2EAGNAmrYd/boUw4hQQP9XacO/gM6CWzD/z8gBPQvQAABNTAAnQ6x4RfQ0wz/nUyd/315C7TN2coDqP/vr9//wU76D1TEwAAQQEAnMQCdD7bh9y+gH/79FxIQjfSMhQbSr1//QUHHAAyX/3//ATUABBBIw+9/f8R5hIEavv3+ycjICLQXQoIYTEyscrKgkAcG5Z/fQE8DBBAjgy04Gn+Ao/EDw8VtF9mY2IDe+wcGv758eWZrywRWAvYAA0CAAQD6o1TwTGkEKQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHNSURBVHjaYmRgOCnIeWHTkh4GBgavqKLPP/UYGP4B0UkGewEIi4HhDxIJEECMgpwzH95nBqref1RdR/0RG9vP9VsNb98T6mgSYWf++5+B4f+/f/9h4MuzZwABADEAzv8Edm6yAABQxskPNS7GDAr2AP79SkHncL1W7GJjCAD5//v8//v6/vv7//r6Axwb3KipAoiFAQT+vXjJo6bExMPx59t35v////7+zSAwexoH85///8HGgwlGZmaV/AKAAGLkZp7+6vm//3+fd0z2Sgjbz/D/z7QFNucvSc1lK+dk+Pnvzx+w8b////nNLCNzfcMGgABiZGA4OmUit6fDdqDB+VWRQCf8Ajth8ypRTuZfYOPB5jMwAG34eO8eQAAxnmRgkMsv//ngEcPv3//+gEwCmvfv12+O358YOdj/AwWBusEkq7z81T17AAKI8ffzp4y8fP///mX4zwB1LMTRQIMhZoNJoBwjC8ubu3cBAojlnqS0aH7+nwcPQCb9+QMyDOImcMiAuBDBv3/ZFBUvHT0KEECM3+/fZxEUhBoDC3UGIAmPATCDASz7+uZNgABi+fXi2Y8nT/4BATBAgAjG+ANmM0D4fyCMf0wMDAABBgDcZ1sWFOFmVAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHaSURBVHjaYuzVZygOY2DgYWD4wcDwj4HhD4xERr9gJAsDQAAO4pgIABCGAWBxgBMEIoIZG1XEiAaapHD88CXN1ujebFfpiEmIFJDAWxH8C8Hw6VcAsTAwMCi8+R+/8ul8y7+nFP/+Bir49xco9/sfGP39/evfr19/fwEZstyyQBsAAgik4f+//3yMf7N2/g2tL2SVlP8PBv+AEEqBGP/+/WNhYbkudR0ggFi+MTDc4Pqr6PPn+9I/knXdl36zzP79+9nvP0Crfv/69QtIApkg6resnOymXZsAAogJ6BNJN8a6tWK88Vz/Gb/pfH0b9OXN6y+vgegVBH169fLTSyB6+/Ut0DkAAcQCDJvVW/92xH57t4OD493fE39ZZ/5h+PUbhH6DGIwg8g+QZP79hw2oASCAGH8yMDBXZf2/cJ+B+8+/htqPArx//v1jALsa5PD//xhA5F8gm5mV8+al7QABBPI0w5s//5l/M3j+ZmCr4Pv86/8/IPoNI8GM/78Z/v9lZFdReXYRIIBYgLHEJPqHIU7yv+xvhh9/GUByvxmBJCiqfjMw/gEhBqD4X4aff/+9YQAIIMavogz/ehj+iTH8+8DwDxyvQBcBGf9+gRkQ9h9Q7INMYGMACDAAn2ZJkkC65DMAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIZSURBVHjaYmRgmMjA8IOBgQWMgIxfDAz/GBj+gBGQLTJxqo+b2i8pV+N/YAmAAAAxAM7/AQAAh359Qw4L9wgH+OnsDPf5Avz8/v39/vz8/TI2GE9LHAnm3waRjP/y9P/7+/SysgIIaCobG+vvBK9VHOzfO+a4PHoo9vvPb05O5ugETTN1Dr6+hv/7D//79ev/7z+MtXXnKuMBAgiogYGR4R8jw29mxt9AEqhaRU04P1eD9/1Tjvz0/8/f/P/1+7+00uf6wjvijO6V1gABBNTw69MX1qYZHlxsX+8/FwoKV/e0F+RbOuP/+k3/f//6DzQ7LOJFjO+8l+sOn9zD8IQBIICAGv78/vPvyUteERGJzm4dwd/vOcrS/997CnTxf26hr13Ft5V5Ks7l3n55Q1FAERgQAAEEsuHv3782TtJxIdI829YyLl74/+cvkDOcXF9nRG75drJ/X+eXX19+A1377zcw2AACCKiBq7BIX4j5O2d71f/zV0AGM3N+rS1+Yqzccr3z1IPDvxh+AZX++fcHGHJAGwACiOXu9QTJBxcYu5r/f/kFUq1j/Koo/iTr4/aDSW9+vPkFNPjvrz8gDX+BCKgBIIBYpMwUmEKi/wtJ/Bdg+hXu/8pCb/Wzjfuu7RTgEOBm4/7z98+f/3+Abv77Hxg3f4FOAgggxq/g+AOiWysnb1P4Vj+nHBgUIP4vpOj+A4t9HgaAAAMAQO8VmfiJ/b4AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHhSURBVHjaYmTwPs0AB3/+MfwBk7/+gBhA8heY/QNCghgAAcTCz/CjIUMNpPr7Ty6W5///M378LvWLjeXPv/9//4LQHxD6B0b/p2edBQgglo8MHAwM/41l1soI3xbmf8XN/evDJ/bN53wP3zD78wek6Peff7///gOSkoJsQNsBAoil8NKmYFlFYdUznJw/li37fenS37a2D1G2C9Tf3Lt3UvXvn39///yFIL6vvAcZJgAEADEAzv8EjOOKAO58/gT3///80tL8KCj7///7AQH7MR6+Mo7T//r6//v8//r7//v7AR8bQQDLAlAcxzYAgDAMwALqNyw8zNSD+gtsTUUQm90B09zd6M4iI7hWStnGUUKE/vRduMATQCzAsGA4zfbP4U90zK/fv4F2/05MBMr//nuBlRFo8K8/YBtAJCPQHwwMAAHEwmz+e7v0P5l7jCeO/Nmx/RdQ08+fv1JSfje+5lsX/Ato6a8/f37//fPn7x9l0b9nTzEABBAL0IL1l7idFJkPHv799RvQA78OH/n9Qlxw7RXu338hqoH2/oF4Hhj4AAHEwvCDAWjA1ptaf4x/83z+9uf3n+/cTGdf/pUXAioFBxLQ9H9/IQioASCAGBmUGYB6gPaASCD6zYAfAAQYAIwbQcePyNUkAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGrSURBVHjaYvwfycDwiYGBiQEI/v1jYPgFpEDkvz9g9IPh3y8wAjK+MfzjYQAIQKEcGgAAwjAA24BX8Xi+4rY51pZhojIszOauLdJFI0TUdWRHNlwhVfIb6zwBxMLwjYHh9///758ygNT9BYoy/AHq+Q1S9AeM/v76/+fX/9+/GUVkgUoAAojx682TnJKKDEB1QEuANvyHAAj97///vyDiHwgzMrM+PX8IIIBYGGR0GDg5waqBqkDw/42D/++d/P/n5395k/9aLv9hgIGR8Y+SFUAAsfwD+RRqLpTx8vb/U1v///z9n5n9v6YzsgagYoAAAmmAu4IB4hIh+f+6tv9///wvrvYfCTCCnPYPIIBYrry7osys/Ovvr39AxwKDCgjl1f7JqYGM+ffn3+cHYK8AVf5jZ2E/9+UcQAAxMuQzpPml3ft47/ff30AE1AlEv/+BGL//AMnfv//9+vPv95+/f1UEVC42XQQIIBZglP1m/CPJJwlU/eff3z8gFSD0598fEPn3z5//QMV/geH9FxioHAwAAcTIUMrA8AEau1D0B4nxB8aAKOBjAAgwANEEZRxBlgmBAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHsSURBVHjaYmBwZoCj2Xtnv37/+vPnzx8/fnz99vX79++fvnzavbWbQZiBgZeBgZUBCAACiAWIq3OrgeS/f/9stGwEeAWYGJm//Pz8/c93KV4pzr8cTppOEa3hv//9+f3396bcTQABBNLAwPD/yfunf//9/f7z+////xkY//du6/3+63trSOu/f/8///h88+Wt379/ywrLApUCBGBgjJEAgEEQVr3+/5funRGxjOFC7pHba5sareIEh/UKhJMZ6RGNVht9+AKIieEPw9//f4GK/vz5DXQVAyPDsdvHnr97/uzdswk7JjD8ZwCaBdQM0gPWABBAIBv+/P0L5Pz59+c/Awjuvrz7++/vP3/9BNoDdCHQFJBtf34DjQRqAAggJoZfQDP+AFUDRYGGLTu2DOjoP2Avvv/6ftbeWVAb/kFtAAggkAYgCygEdBXIsN+/Hr97/OnLp6/fv955defb729ArwE9ADT+71+QDQABxMLwgwFiHtBSoP/8jPyMlY37tvQB2VkuWaK8ojdf3PwNMg4UKkANAAHEArLhzx9JfkmgBjZWdh4OHk1OTRVxFaARhvKGQPLx+8fKoip/gQCsASCAGBkkGYB6QOgHQ+WSyjiDGDYWjndf3v349UOER+TLjy+TDk1anL+YAQYAAgwAPutUIEdI5O0AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAF0SURBVHjaYmSYyMDwgwEE/jEw/GG4n3ZfgE3g379/IIF//979eKfepg4UB8n+YmBgYQAIIBaGLwzVrtUQ6X///4kLibMzcTAw/AcCoCD7b/aYgJg/DL9///vz++/vTTM3AQQQC1ATUPrJ16d///0FApDZTP/hACh4++PtX/9+/f73W5ZHFmgPQACxADHQZKDEHyD6+/s/Bvj19xdIw9/fQAR0FUAAgcz/y/D3z/8/f/6BEJpqoIUgDX9BNgARUANAALEAPQQ0G6j7z1+wBgYMG/78gjgJqACoGCCAQBr+gs0GigKFcDrpP9QGgAACaQBygKJA1b///vr/7/9/JE8Dww3knv+/gSYCzQUqBgggsJNASn9DEFYb/gA1/AeFClAxQACxAGMNGMaS3JIgb/z5y8jICAwGCAkEzEzMSvxKf///BSGghl8MAAHEyFDKwPAJFMeg+P7BcLzhuBCbECSm//z58+rLK+cMZ1A0M4DV8DAABBgA03x2IFD9ts4AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGOSURBVHjaYmQo/M/wiwEK/v1j+MMAQ/9A6BcqYmAACCAWoOr6ELDi/////Wf8+4/h73+gyv9//zL++cf8+y8TkP3n7//fQPLf/zVNXwACiAVk2H+Gp5/+g5SCDAVKMwClf/+Fqvv95/+vvyCuDD8jw7d/AAHEYmrCoCryX5ATaANQA0QbkPz+99+f3/+4gHogNgBJUS6GjQ7/AAKI8S/QbkZGoJP+///PAIb/v8z9/eXTv3+/Wbg4/3Nn/IcBoLJPnz4BBBATxLdQMQj999f2+2q31n/8//f3f2QACpR/AAHEgqyaAaqD0VH+wl9Zjv8MKOoZgaHy7x9AADHqT/9daMH4+ut/mI+Bzv3H+PvD3///vv/jBwkCRYC2/mUQ52FsW/gGIIBYLu76d1qa+f47YDgwgEIDFCbAUOIHMkBsSJiCQoxBRZiBYSUDQAABg/XfbwYmCX4GsAQoroDkb2AkgLQx/AOSwGj5ywiMpT+gePsHEECMDP5fGb7AIhIo9oMBPXYhUf4bpJyBlQEgwAAvMWK745hsrQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFXSURBVHjaYvzPgAD/UNlYEUAAkuTgCAAIBgJggq5VoAs1qM0vdzmMz362vezjokxPGimkEQ5WoAQEKuK71zwCCKyB4c//J8+BShn+/vv/+w/D399AEox+//8FJH/9/wUU+cUoKw20ASCAWBhEDf/LyDOw84BU//kDtgGI/oARmAHRDJQSFwVqAAggxo8fP/Ly8oKc9P8/AxjiAoyMjA8ePAAIIJZ///5BVIM0MOBWDpRlZPzz5w9AALH8gyvCbz7QBrCJAAHEyKDYX15r/+j1199//v35++/Xn7+///77DST/wMl/f4Dk378K4jx7O2cABBALw7NP77/+ev3xB0gOpOHfr99AdX9/gTVASKCGP//+8XCyMjC8AwggFoZfIHWSwpwQk4CW/AYjsKlA8u+ff////v33998/YPgBnQQQQIzAaGNg+AVGf5AYf5BE/oCjGEIyAQQYAGvKZ4C6+xXRAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGSSURBVHjaYnzIAAVy//9zRV36skTnATPzPwaGf2BBCOMPEgkQQCxAUcHaaiD5////ngQpRkZG4aLC/3//MPz58x+Efv//DSL/Acnfv+9u2AQQQCxgg/7/e/IUSL18/weo7c+DB0AVDL+BioCqgejXv1+//v/6zSwrC7QBIIDAGv4CVf0F0f9ADvn/5xfI1F8gpSDVQD2/QCTT799AVwEEEIvM379AZ0Cc9Aeo8/9/gbUb/mMDQGUanz4BBBAjc/D5/mTpF+9///0HdvO/f0BtQA6I/AMk//3+CxIHikgJss7OOQ0QQIx///6FGP+f4X/JgmfdcZL/cQAmJqb3798DBBDLPWZmkdysP/fuC2zY9BvspLd21v9+gXzMAPLub6g3fv9hUVa6evocQACxAL35HxxkQKUgZ/3//+8nRMUvkCBIJ4jxD+iQP8DAZgAIILCGP3+YJEEuEeUDBRqzjCzTX1DAM4CDn/nPH5Dqv3//gR0PEECMV2FRqPD+vaDeibcXzK4JC/+BxTEkghlgJBAABBgA9J5akqVspaUAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAALCAYAAACtWacbAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFNSURBVHjaYjTSPPnvLTsvAxD8f3Bek5kBCwAIIAZjzWP/PwAVPGdk/Cere/Lz////GdAxQAAx/f33meEPULXw48eMN5dxcctq7/iGbhBAADH9+/eJQeDDB4b/P38yMHNwMN7bo88prTrvD7IigABi+vP3HcO3ffsYmPj4GJj4+RkeS0kxbLuTzCwp3/AfpggggBjV5Zv/b39Yy/APyAlw2cLw8eUjhm8fXgLd8pPh/79fDO+e9jICBBDL778vGX4BFYh0dDDs+3WOQX3mZ4Z3T7oYka0DCCAGOYnQ/69qa///fPDg/8/79//f9/b+zycW+x/ZdwABBHTTS4a/QIcz/PkDxqxCQgxLXy1m4BH0gLsJIIAYxITM/h8HhtOT8PD/j4OC/h8Csg8C8Wog5uC1ApsIEECM3IKeQPo3UOgX0Oh/YMwApkFxALEOIMAA8JGo784JaZMAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGhSURBVHjaYmSQjGf4wwAF//4x/PrD8OcPiPz7iwEk8QsJ/QCKAAQQC1CwriMGpPjvv3//Gf4Cwb9/f/6CeH/+ABl/fwPJP39/gxh/17VXAgQQC8jg//+fvv70999/oGKgUrD0P6A0HP36/QdIyojxA+0BCCAWhn9AUxn+/P0PMhWk+t8vMPn7zz+YajAJZP/+C9QAEEAsDFx/mJn+MDP8/s/49z/Qrv8g14AdBrLvD8SBIN6ff/+BXvoGEEAs92ccEtKw//3z1Z+/f4D+YGT4+//fHzD6/Q/M+PfvN5j8w8IhcVPoL0AAsSgGmBT3Sz5+wWGpI3v08sNPX3+C3PD7z6+/IDcAXfLnz5/fYFcpSAoemcUAEEBMDEAP/f5nq6+UE2zTnuHz9x/j9x9/vv/+/+Pnvx+//v34+ff7z3/ff4HQL3DoAwQQMJR+AV16/ubTl28/333y6sePn79hgQg0+w/YH2BPAAHQ0wwAAQTU8AMYIP8ZGSatOfr+83cJYd4/oDD9B1MKZkCU/wVpAAggRgYGS9TohMQonP2fARUABBgABC1yvgwYOZYAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHOSURBVHjaYiwuvt7FMqONp+APB1fdiZgilVk/fv2YdCfH9knezhVL2DnZ/v39C0H//wHBX4AAYnnDJXUntbfm2+1nnGKM+ebpN4XVP18+wLLFetc/ZrFlzOxMTP+AKhn+/2P4+5fh97OfAAEAMQDO/wO+Ie8YMyUBFa0Nxu0AAdcTwuL/MscUzvQyyZoKRvn9//z9/Pr7+/r8/PsCAQH68foCMDjGKACAMBBT8f/PdLCIoIKF2qu3JySl9pbpwpNI6E1jhmnsU205LPCcM2zwigzwBRBTms68m/waDDfsHliHMGh8OmWcwHDLa51IUL181def3/7+/fP/P9ADf/7/A5FAlwEEEMv/h/c1j16b9NzyEydzcf2vHaYMe76KxdzPvMgdy8nCCjEbrPofExPQHX8BAojx8+1oTnkOoBOBVgMNACoAOgMUHv/+gHkQ1X+BTFYWph9PfgIEEAsDw3+IMXDVEEeDAhHZ9SBVDL9//wYIIJa//4AuY4MJQVRDQx1oLSREQSQDyBAgARBAQBsYQNHBzAzyEzMw6IAO/c/MyAD0JxMrC9hJQGVgd4BY/wACiAVo3M9nP0BGggwHuRjiaAaYY/6CohmqCUgCBBgA5aZ4oR98IZwAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIRSURBVHjaYjxc2Ljjk0jr3Ev1olfYmJiqX0qkyv/zclALXPiMgeEbA8MfMPrBwPALjFgAAgAxAM7/AS0Xa7epXfwUF/jW1QD39gAZGw4VErTN7NDe8vv7/vz8/kMK6bzzE/P3/Pv8/7KfgQIAMQDO/wSiAq4D1CoH8e0F7/D/9/gFERD4+/499/qx7TH3+/9NCeQk9erw9xCY5RQdGxAAAPwCADEAzv8CsAow+yQpBiMk+w4S/hwfCDAv9BIZ0QUe+fz/+vv9qO0VwPAPmOYWXRHk//39AAD6AojpjV0AIw/fsvucDxkFH/7mWvRBlkVT8wMb349ff6sEr4lwMix+LRbC9UD1/1tP9idADQABADEAzv8DKPMR6AkVxNLu9/f53uz7vcnl0+j9FQj90On8TQnjKv/rt+8RzfMKE/71tv8j49i7Aohl8V2WfGaBP3wMJ/7w/vn99zf/n5uvf19+9vfX7//pD7R+/f7z+/cfoNtmf5dW4gQ5CSCAmID+AIbGr7//QKp///3169/P30DX/4OoA0n9/hvDcx8o+/fPP6AGgABiAWr48+fv719/fwNJsCKQul9gEsj+82eC+EXBf19/8v48+NcQqAEggIAavgEDWFKcBygN1AkMeJBOIAOo4Q8wHv7OZrXzZn9y8J/437//GRj+AgQQIwNDMAPDF6S4/AWO2l+oCBLfQCdxAQQYAPiQOqzN4uIGAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFwSURBVHjaYtzPgAIM3n9kYPgHBAwQCgMABBALUML2w4dv585xWVo+b2jg5+f9/x8o9v8/nEICz549AwggkIa/Hz/y2Nj8vHv316NHWNVBACMj458/fwACiAkozSwm9mHbNjYlpX+/f+NSDQFAJwEEECPQDyplZT+BZv/58//3n79/fv///Ruo898vIOPXv1+/gOz/YJJdXv7AwYMAAcQC9N3/P3+BioAa/v3+w/DnN8OvXwxAq8Dq/kNICOPPH6D9AAHEAiT+//0DVg005g/Tb5DBDL9+M/76xfgbSv6HsH//BnoAIIDAGkAO+PUP6KRfv5JKfv/6++v3X5CzIAygs4BsoFuV+f6cbWcACCBQKP0DGQ9yN1AnUBFCHZAE6fwFcuu/v3/+/mX4xwAQQBAb/rBKSoLs+fNXhgus9S9QxR+QwSB7gSr//v0HVP6X4Q8DQAAxrmUAkiD0D0wmhjIw/AKzvoGF/sG4EGkGBoAAAwC87Hl4OQQUvQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGZSURBVHjaYvz48SMDEvj3D0wAKWFhIBOC/sAYQAQQQCxAeT4+PiD57tt/kDJehv//gbz/vwoK/n39+v/37/9//sDJ15s2AQQQC8TgZ5/+rzn/98vP/3FmTFJ8jP////97/8G/z5/+//r97/ev/79+AVUzycoCrQIIIJAGoLQkL4OuFMOXn4wQ1UAAUQcmf0M0/AMiBgaAAGKBu95emYnhP8N/OPj4Caj6H1gpWOdv5t+/gTYABBCLVh9Lk+efV5////37/8+//3/+MgBJhj9/qpycmH7/YgQ6HSTxh+n3b0YxMZaDBwECiOXpnX/PPvx/8uH/b7AGIAlCfxhZqyr/owImJqY/wcEAAcTE8Ovfn38MMHUg9OMnkP0Pru7XjBm/JkyAeBUY3AABBNQAU/33/y8w+Rfo4T9Q1X+vX/+9d+/v9ev+Xr0K5P758wcggFiATgYaJ8bDCHQ9MBT+gBwGZDMCAdBUZk1Nzp4eUHTKy0PCBiCAGBlc3wJdxfDjH8OvPyAGlP3v+oFfQPP+gQFQwx9wEgACgAADAD95XQp6lC2bAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEfSURBVHjaYvzPgAD/gPj5c4Z/IPofHCgq/gNLQRBAALGAFFZXA4n///4xApWKi/8HmfGf8f9/ZgYGpv///8fE/P/9+/+fP0Dyy6ZNAAEE1sDw//+Tpwx//wLRf4hyZHD79v9fv4CqGWVlgTYABBAL2Oz/UNW/f6OrBgKgarAGht+/gRoAAogFiBmBqoE2/vnD8PvPf0yApAFoHEAAgZ305y/ElQQ0/PkDNB0ggMBO+vsH7Kdf+DUwgp0EEEBgJwGN//UL5CqgBFYNYOOBhv5hYAAIIJAGZnCQAZ0IchhWDX+AGkChAnQOQACBNDD9/sMgKQk25i8kBhkZGRHRqaQECUMgAioGCCDGr0ixCIrh8+ehEQz0IgTY2kKlwAAgwAACPWGEO27OJwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGESURBVHjaYrzOwPCHAQH+oSKI1B8kNkAADsXYBgAYhGEMPaK/8hW39BsMKUKKbA85o+u+39asSpQVDQadKdBy+kV8AcQC1MrI8P/3k6dApQxA1UC5v39B6iDo1+9/v3/9+/ULyGaRlf3FwAAQQIyvX74UFhUF2fAfBIDa/zNc/nRjNSMfO5e42///Bv8h4N8/RkbGj58+AQQQ0z+Y6/+DCKDqV58/Lvg65ezPnec/fZjz//9zqAaoAgaAAGKCqoaK/v/+ffOft5/eMkpe/Wb49+vXH99X/4cDkDf/AQQQC7JqIPzJFLHluuov2dt/P/65ejEz2EGLFaaeEeSufwABxIKkH6STl4XdyFD/ECv/33//rDTl+Vk5kGX//PkDEEAs9yUk/qel/bx3DxgOoMD59Yvz1y9XMAPIvQ9h/AEG6192FZWjFy8CBBAoWP/+/sMkKcnw+zfjn79AOcbfv5mBmmGRAGSAIucvCAAVAwQQ43EGhl+wiPyDxPiDGt8QBtDHAAEGAMIBQ2IEyDEvAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHjSURBVHjaTMJBCgAQEADA+aD/P8FJkjZJopxMI5E57/4uJoOg06gUrgAMxzERACAMA8CwIgQRWEASGjDTAWXdmjZw98s3AGfvBYwqfJliIikSnZqhS3n8KsLNngBiAWp4x/C/48lTu79/Q//+5fr9G6Tn9+///3//t/79X+33f/5f/9f++n/4N6Os7D8GBoAAYgJq+PcPaOjfvaysbczMV4Gqf/0CabD7/d/l13+On//lfv13/PX/P0gQqAEggEAa/v79++fPn8SYGCVHx8pfv+b//v3996//D379n/Lr/9Zf/x/9+n/m1/80kAagYoAAAmlgYWHJzMycMX36hrXr0tLSVrOy5v38de3sr/+Xfv2f/fv/iV//HX793/gL6A2gDQABOJyjEwBAEICCzdtKfbVLjuCHgwT6DIwa4OAeAMzM3fOkiLC3Qo+YkBE1qEUp7ZeuAAJp+Pbt2/r1638C5f7/V1NT+/LlC9CIj79/9/z6lfz7902gl2b9ZvgJCrc/DAwAAQQKJSDj9+/fOTk5d+7cmTFjBlA1kAshj/z+HfLrV9mf35F//jL9BUYPA0AAgTT8/v1HUlLywYMH169fl5GR+Q0GEFP+gMHsv3+v/P2b+/cvKwMDQAAxkATyGRgAAgwAFBNAveVnNNkAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGsSURBVHjaYly7dnpw8DcGhi8MIPAPjP6AEZDxC8z4hcwACMBhvNMAAMJQAAwTkhDKiorKqQgQ0PchsFyu2WPvFdEzj2TSgEgBLygV+FUVI+YVQIzfv7/k4BADqtu27cmaNbe/ffv19y/D79//f/8Gqfj96++v339//QKxZWW5t2+fABBATAwMfP//f2Niuufjw1pSoiUry/vr13+w0j+/oKqBCMj+AzQC6CSAAGL69w9IPWZgmP7//3RtLeb6ehMdHaCevz9//QORPyEaQAiiASCAWBgYPjMwPPz//8H//1wMDPe5uQ2am1esmax9buX7P7+Arv8DdNWfX3+ADLE/ogcZTgMEEFAD9///Mv//q/xnEGP4r/z/+8//i5WCVswPBLvsPxLJ9Fspj4EBIIBYgC4Ca4hhYBD4f+3+/ymz/58/9x/sa2TVDOBQAwYtQAABNXxlYBD5/1+dYcPm/7Nm/P/wHlkdlPEHqOEvAzD4GBgAAgiowej/u+UMSy/8P3mcQUCAgYcbGKiMYCMZICQQ/f0LQUBfAwQQC9sa/R+p9v9gkQyPbUwEAQABBgA3IVX7XymN1wAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHLSURBVHjaYvz48yMDGHz59UV6mjTDFwaGfwwMf8AIyPgFZvyCMVgYAAKIBaiUj40PSLIxs9Xb13/9/fUPw9+///78+fvnDwOQ/P37H5j8++f3v9+bZmwCCCAWiPH/////9+/f46+PP/389Pff3/8M/6W5ZR6+v/v97/dfv3/9+vcLqFqWRxZoD0AAMUFUQ8g///4AVf/68ytbO9tG3Pr7z+8sjCylBqWSnJJAQaAeoKsAAoiJAQaApgI1ACWsJK3UBNR2PN75899PGW4ZTSHNGPUYkIa/v4E2AAQQC9AlEOOBACgEBLysvJzMnM++PP3199fZV+faz7Q/+vzo1/9ff/7/AWoACCAmoPr/MADUAJR49e0lMADi1OJ+/fz16+fPw08OP/j8AOgekA1/GAACiIXh3z8kDSD/7Xiw00DY0EfRBxjin399VuBV2HBnw54ne4BBB9QAEEAs/xgQTvr17zfQGUBL6k/WPfn8xEHKgYeNZ+L5iTfe3fjx98efv3+BTgIIIJAfIKHEyMgoyS3Jzcz9+z/I9k13N62/vx4YaD9//2RmZVYRUPn7/y/QBoAAYnz+/vk/MPjx54dqiSrDG4wIRo54LgaAAAMAh8pAjKSRbocAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEISURBVHjaYvz/8SMDDPyD43//gPQ/bAAggFhACvn4gMT///8Zwdr+/wcRjP//MzMwMP1HAV+ePQMIIBYGqKL/yIz/2AAjI+O/P38AAoiFSNUQKaCTAAKIBehWRrhqMMSjAagDIIBYGPj5Gfr6/j979v/PH4Y/f/7D0e/f/38DGb/BjN8gWWnpfwsXAgQQ2EkPH/5/8OD/718MvyHqfv3/9fv/r18gNhLJ+OkT0DkAAQR2ElgIZDyyIlTVEMv/MDAABBBIAzPYAQxwRZja/gA1/GX4+xfoHIAAAmlg+v2HQVISbMxfhj8gnYxgIxkgJBD9/QtBQMUAAcT4FRy5cMSAykWTAgKAAAMA0PVcqMe0XaEAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJDSURBVHjaYlRNZjgjl/vrzz+tS4teb2xgYPjBwPCPgeELAwMLA8MbMJuLgeETAwMTA8MfIBcgAAAxAM7/A99Qbfdme/41PncrR/0VITo7IUVFGaOV4AQLQKSX4wkQQj8+Got+7vP+SSQmL9nXwwIAMQDO/wL+/v7/AP/6+fn98/Li4vbf4fVXR6b/+9/h4u/x7uXx7uLT0vb39N7p5uX7+QAAAPwCiMnh3Qzhx7fE7l6e+PLc79///v5kFOD7wMryzcXqrKjQmxj/g8ICbyRFX2gq3xPgA7kQIAAAMQDO/wHX09MQEhMHBQHv+QFzbM/8AQEhHOQcF+VeUL4AAPrZ3hQuJ97Q1hettC5UTOZBUvMCiIlLQODn79+//v1j+Pf/77+fbtbH375jlRZ7xsXx/c/v3////fr65c/fP7/FBF8A5YFOAggAMQDO/wTo8PQZDg7/AAH+///9/wAwJ9kvJNMLCfORoDoZFOrP1Rr3+CoWEexFOcyOn3IAAKICADEAzv8B6QAACYh//+Hi4e0DbuxQEhDrjHibBQL47vEG9fYA+vz+Cwjy+PX7nq090tlOzc6DAgAxAM7/Av4AAOkb5+8Z4//3+Pv9/uTmDpulN+PjBerpAfLw/vTx/uzpAv/9+gsK8wAC9gAA+gKIBRgZf38zcXLJsEoIygmw/PvDeOuZXf9y8+8/GZkYf/36xfDzJwMz088fvxiZmH8DYxAggBifMzB8AEfjAQaGdAZ3oBngyP4FFoNE8D+wEjZw9HMBBBgA6ZoMYwzD0VIAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIjSURBVHjaYkxOPD3F4lzGDTeZHw+K/qzw+1HiwnDBhe1OxDWHp8c3MDB8Y2D4xcDwB0yCGAABADEAzv8BUW/nfWgQMRf32OD6JQrt2vcTGhEAvt8N6+Xz1d7a+/sA/f71/Pv/+vwF/Pz8qJKUAgAxAM7/A8Uw/h1DMAHm5RTTwwHNzRP97f/v8B/p1v3BuLbzEfn27fL36i8e98jW9QwNAtbJyQIAMQDO/wLoAA79AwUBAgMA9/n/6u0A+fv1/gXtAAnt/QQB/vcjRbcLDtsHBvU8Lb4mO8cAAPwCADEAzv8D5T6oKygLGBD+zPkcFQHyuxhIDOzcvxA+0/oV3uvo7uQGGQTU5fDW+wcH7dk40snLAgAxAM7/BAri0hzlBYrHKBr+7wLZ7c/9/ub8HynMjN4MQPz4Bvj8Eu8XDwwUNerl0v32AgAA+gIAMQDO/wSnrcgaNkbm5tLF+wH8/DID0dD09/z2+jME6/L//vcIDer7/PwIDAz7/P0FAfYAAPoCiAkUcP/+/v77n+nvb+a/v3/9/sfI8J+N8e+fP7+/fmeriNn3+8/ve1cP/vn7O9r/JNAPAAEE1AAMrn+/f/8Fol8Q8heU8fvPvwOnVJ7ckEt0ufDquu7FG7JAxQABxAK0BSghLsL158/fP3///fn97/dfkNI/f/8Cg//UFXcB7p9TFujw8zHtPgI0/R9AADEyMKQjRySMAUH/kBh/wCQDQIABAJPTL1o6B4FZAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAG+SURBVHjaYmRguLmYwUCH4fsPBoZfDAz/kNAfMGKAMYCIiYEBIIBYGBjUHlW/EWE4rMN0gpXx5++ff///+ff/z+9/f4GMPxD07/dvIAIyTqxbBxBAjAwM/2urGR49+a/A86qwmotXhP3/v///gaJA4j8MMDGBuP/+vb91CyCAmEA2/vvPy8lw851YbhX3o6csf5lYGJiZgeg/HAH1A9UxM/9jYQEIIKCT/omJMUZGMOzf8//cBYacnP/xsuuUPh3m/f3q/++fUMeASTYZmWMrVgAEEFADg5kJg6bWf26u/4ePMPz7/X/ajYCYvzeNfp5h/vX9B1Dpr18g9Ps3x///zxgYAAIIpGHn9v9AH27b8v/bV4bvv/6nyK804fnA/Ecf6HV2oAaIv//+ZZWQkDt6FCCAgJ7+XZDFePM+UJCBg/N/d/d/Wbn/TAj/QgHQXEZGxmfXrgEEEMgPP/4wA92pwvussYeHX5obJP/vP8hgEOMfSC1YD1ADw7dvAAEE0sD6+3uC5HZTht3fGr6+/wYOdaBquGNA5N9///4y/P2748IFgAACargnNl9blIHhEgPDN6QI/oUtvtkYGAACDACeLSsxVcvF+QAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFqSURBVHjaYpjNQBoACCDG/wwMb6qrdzIwXP0HAn///v3zB0xAwO/fv2EkkNi0aRNAALEANYkw/I968nTf37/L//79+Ps3UPlvOPgFgkAAZMrKygIVAwQQSMP/f/8Z/v51+vtX8fdvBQ/v/wmx/7EBRkbGhw8fAgQQyz+gjm/fGEHa/in8/vN/57b/TP//x8RgagAqBLoZIICYEN758fP/79//P378v2jR/77+/9h0AL0DEEAsEMX/P3/59/8fw+9f//+z/PcL/J+VjsVJYEsAAogJ6CSgwf9+/WT4/v0hz6//Xh5YVYMM/Q909T+AAAL5gfnPH6Ce3aq/J3iw/f67/teWlb+B4fT396+/v37/+/PnH4j9599fZX6loy1HAQIIpOE925814ZLnlFklgcH/7w9I9T+gCmB8/Pn7/w9QDzCg//7/+/ffX4Y/DAABxNjJwFAeyMAgxMDwC4b+IDH+wBj/wCQDA0CAAQDkoFQxcPY0cQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAG8SURBVHjaYmSIZGD4wgAF/xgYWBj+boQysSKAAGJh+MRQnVoNUgEE///9ZfzLoPiX4e8fxj9/mP/8Yfr9+/+fP/9h5JdNmwACiIWBCaj4/5P3T7mY/xoJ/9UR/v0n8O+f17/Zlv/+//73/1+////+9f/XL6BqRllZoA0AAcQCNvv/339/C03+8v/8w7bk7+/vv/+7/P4S95ur+xdY9W+IBobfv4EaAAKICeiuv////vnz58PX3xxb/7BlN3/K7Ph1WoSR/fcfhl//f4KN/wW1BGg6QAAxMfxi+PP37++/v1kYfn//+usnE+cHCbWfTKz/mH7+ZgUpQmj48wdoA0AAsQA1/P0HZP458/qXqvNfjdnVItxy3wNvApUIvwPb8BvqJEawkwACiIXhDwPQ+F9/f+2890dY6/cnrycCb++z3frNfOwX01eEagZgKAHdzcAAEEAgG4DGA/W8+fO79+Rvdt5f2+b++sP+m+kdWDVEwx+gBmBY/wX6ASCAWBi+Mfz+80eSX/L3n99AzwBDm0H2NwtQHS/QapDBIPT3LwQBnQQQQIwMxgwM7xgYfjAArQKRTAyvP2OPYwgACDAAjtdGduN8tIgAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAG4SURBVHjaYmSY/J/hGwMM/GP4BSIY/gDRPwT6BSNZGAACcCgnRQCAMAwAKeAMWUjBBdr6a9JwzOxze/Eyx79SyoiXKQEGa8gaFFJxUXv5EUAsDEwg1U++/v/7nwGo2kj0pJ3UHsb/f3Y/sdv7yPb3//+//oEQULUsDyPDv38AAcQCMvvf/79AO/8w+CvODldqZWR49p9BzFBo6/9/dZvvuf1i+P/rL0jD778MQFcBBBATUPlfsIMZmH57y01kZHgE5AH1MDE+ilReyMD869cfkAaQnn//gT4ECCAmoJOBqoEGMDL85GG5Dfc+E+NbEY7HrIyf4Rr+gA0GCCCgDQx//4G89fU365ffinANf//xv/rG//4HJ8gPf8HeANnwDyCAmIAY4rPvv1jW3Mv491+MgYH57z+hP3/5596I+fKdDeJjoPFAc4EeBQggFqAf/vxlBvnpH8Ocq9l3P6p4yqwH+nPjA4+VdwKBPoYEKyQ+gO4HCCAWhh//fv9jkuRmAEswXH3rduGNKyjgfzPI84HVAYP7LyMwZoAhCXQOQAAxMpR/ZfiEFJc/QKJQ7j+kaAaxGRj4GAACDACoBTqv9JtaWQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFrSURBVHjaYvzPgAD/UNlYEUAAmuTYAAAQhAEYqF/zFbe50RZ1cMmS9TLi0pJLRjZohAMTGFUN9HdnHgEE1sDw//+Tp0ClINW/f0NIKPoFJH/9//ULyGaUlQXaABBALAxfv/5nY2P49w+s7z8IQwEDgvPvH4jPxPTvzRuAAGL58I+Nn5mZgZkZqgTotEePfm5Z9+/3bzafIAY5OYQBjIxvfrEBBBATxKdwQ0Hgy6fl2u/qvzj///z+PzJgYPjz5x9AADH9A1v3H8k1DJwcAYf/V/1YycDBiaIeiP79Awggxrcfv3Oxsf4FaQPp+AdzPtBpf//DBP4BIQMLM9OT5y8BAoiRQfBic4fU45e/gdb9/sMAJv+DSTjj/59///7++S8nwbZmwmmAABSRQQoAIAzD5vADgv9/qDSb3TmFULLjleh7EqWmQXoESzjDIChVWKeeu18AMTIwnwVGEzgSkUkI4w9SFP+BpACAAAMAApVT/l2szdAAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFUSURBVHjaYvz59es/Bij4x/AvSULo3OfffxgYfjEw/ICRvxkQACCAGIEa2Li4gKz///9DhBZXl//9+/vf379//wDp33///PkDJv/9+V22fC1AALFAjIerXtFU9/rRA7AiIPoF1PAHhH4BSSFpGaACgABiQlb979+/8NpGkFqQCpCi32DG718gBLQBqAYggFjgjoNoW1xVBjL11y+wDVCzwdzff0FeYwAIICagqRDVEA3RLR0Q6T+/f/4BGQxV/RtMAhUABBALUMN/qPL////9n19SAHLGL4TTwTb8/gfyN0gDQAAx/YMbD9LxP6G7H2zkLxD5C6wTauFvYKgBNQAEEAsDzEkQn8zMzQAbD3E62Pg/IOP/AMP4D0glQAAxfnz/louHD+4HINkXG/EX7GVw2P8FkaAY+QuMmQknzgMEEMgPH969+wcGQHkTWfmXDPgAQIABAGt9W+VUXtJZAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGzSURBVHjaYiyeepkBBv79+Zfnx/f379+fP38CyT9//jAyMiq5GP77wvDnJ8MfoAIGBoAAYgGqC7STApL///3/9++/pCTv////Qdz/QO4/IMna0vf/z+9/v379//37bUUTQACBNDD8Z/j87fffvyAVX79+/Q8GQDbQeKA9fM+e/Pv18/+vnwzCIkBLAAKQOAY5AIAwCEv4/4PddNUm3ji0QJyxW3rgzE0iLfqDGr2oYuu0l54AYvnz5x9Q6d+/QPQfyAQqAin9B3EOyG1A1UDj//36zfjr1y8GBoAAFI9BDgAwCMIw+P8Ho3GDO6XQ0l4MN8b2kUwYaLszqgKM/KHcDXwBxAJUD3TJ779A8h9Q5D8SAHoARP36+Rfo41+/mcA2AAQQy49ff0Cu//MPpAeI/0FdA1QNYYNVA/3wmwEYVgwMAAHE8uPHH5BqoD1//gJJLADoJKDS378Z//wFhhJAALF8A3rizz8uTmYg788fJkj4QOKREQyYxSWBhjEC/fcXZANAALF8+/anbcHlHz9+ffvx58uPX9KckkCn/gby/wLd8uvHjx96k+cD1UGiGQgAAgwA7q17ZpsMdUQAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGBSURBVHjaYmTQPs7w6Q8DCDAxMLC8P2DOwcbA8I/hHxix/GD4pw3kIRBAALEwvPtT3aQIVP7vH+O//0yc0hWsrD8ZGP78//8HRH75/T/mz//fv///AZFfNm0CCCAWBhYGhv8MT17//vvv/99/TP/+PWJg+P7//28o+vP7/+1f/3/9AqpmlJUF2gAQQCwgs/8zAFX/+QtCQIP///8FJn+DGP+Aqn9DNDD8/g3UABBALAx//oFV//vzhwGs4RfCeBAbRQPQdIAAYmH49Q+o7vef/zANv5H0gBm/oE5i+PMHaANAAIE0/AUZ//8XUM9fBiQNYBLJSYxgJwEEEEjD778Mv/6A9Pz+wwB1BpoNYOOBbgAGHEAAsTD8BNL/gJqBrvr9lxFJA8QGsIY/QA1/Gf7+BfoBIICAofQHqFRShBXkjb/MTEzSDAzfGBmB/gMa95uB5Q+D0h+QUjACOgkggBgZGLYyMPwCS4Nc+HxvMAsLw78/4HgFkh8Y/oVD4xgCAAIMACetb51Fz+5FAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAUlJREFUeNp0UE1Lw0AQnW02AcVcRPyoWqnYnHvy6FVRf4GIR/+BHoI3wb9RRKFXERSP1aMgCIWCVARRlKKhlTQimp1xNpuEgvjYHWZm572ZHfEMgMlRmTMYwp+8eAQY294AIj5IpAiUdgCTENNkmnmtn8iYRZA+mw/M7qAcXysqpLfLDzfq6j6kYbQdb5at1B0J4yRrjQy7O/MA1GncmExaPeBLr+Qvzi1df3eBVLAM7dUaq5b93dHai9blUYGn1d+pzri3xZLkgBQCKnbkxGTl/BTi+KfVAjLroIwDkFyZNORqTXhvXEXHdW7tFKcAykY4JWQQURTlQXNlvXKwzwJ3/l714owy6L0gOo7T6/VEv98XQhjCV/v+6fAIFU5vbQ55C6bUVLO1LCsMQ8Ek27ZhAHobiHlo/EKhwFYTgiDABOYtn+E//AowAFh4/jzczTSYAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAE2SURBVHjaYvz69T8DAvz79w9CQVj/0MCffwwAAcQClObiAin6/x+okxHMgPCAbOb//5n+I4EXL74ABBALxGSwagTjPzbAyMgItAQggBg9Pf9nZPx//x7kjL9////9C2QAyf9//qCQQCQkxFhY+BEggFi2b/+nq8v46BEDSPQ3w+8//3//BqFfv9BJeXmQEwACCOSkP38YgHy4Bog0RN0vIOMXVOTPH6Cv/gEEEEgDxFKgHEgDXCmGDUAE1AAQQCybGZg1f/d8//XsH0jTn3+///z79RtE/v4NZfz68xfI/vOX+4/0ZoZFAAHE4gYMvD+3/v2+h91wCANo9Z+/jH9VxBkYAAKIBRg9TL//MEhKAuWAogxgZzGC2CCfgUggAoYdGAEVAwQQ41egu5AQAyoXTQoIAAIMAD+JZR7YOGEWAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGnSURBVHjaJInBDQAgEINwAMd2aVPRU/sgkLY+9pS/6ApU5gZKfXn8IkcAsQAZfe4g1f/////7n/Hff5Cyv/9A7L//mH//Y/r/70+oyCTG/7+WPc9pm/wPIIBYIGa/+gpUAVL6B6j0L8Of/////P0PZP/4/T9Vsonn102mf99CRX61MeQBBBAT0P7/QEUgU0Gq//xl+P3//++/IA2/wXqWv8j4/ofp5S/R3W8DgQ4DCCCW37/+/fnP+Osv2BkQG0CW/P8B0/P0l2j17flAcREeZoZPnwACiPHzTwZW5sr//x79BzkEaDqQ/AVkMIDYv/+B2L8g4oxM8i9e7wUIIBYukC++/Wf68p/hF8N/iJ5fWEkmJiE+NgaAAGIBepSRESTEwPAHVRGKarDsnz9/GAACiIW1jqHE68+DT79///v9+y8Q/fr17xeEAST//Acx/gC5//4q8f890M4AEIAhOUgBGISBABiTWOgT+v/PiehVCrsrOtdJ6zZ/vvnlRi2i47ntoBMBigxq6xpL1uwIIEaGZAaGHwxA9yPQHyTyFzjiIVwgg4UBIMAA+Llowbi/5UcAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAG5SURBVHjaYmTwZkCAfwwMf8DoF4wEoh9IjB8MAAEYFJMbAEAYhvXBsLAFrAMj5iiR/LAsj2xn7q7qMkVZtmnGKdEAkRgg3PW+AAJpAKp+9vEZUB0TAxOQ9+3nt19/frGysP3+8+v7rx//Gf5//fnly4/PMkKyQMUAAcQCdMb///9//vlhpWijLKz6+cen0/fPGMjpszGxMTMyHb171E7V/vKzSwuOzwVaBdQAEEAgDWAH/AXyP33/wMHKKSMgzcnMee/1vZ9/fn74/uHtlzfMDMy//gJdBtIAEEBMQN8A3ffn728RbhEFEYXXX958+fXl2otrHGzs155f42Dmuvv67o5rO/6CvAQMBwaAACTN0Q0AEAwFQO3+i4hhLOJXQvvahxjgcm+IBFlar0K5m4WZG4CFraJjDsCZ/OAIIBagDX/A1v36/TPJOomLhRvoJXhY8bHzAaWyV2T9/PsTyAVqAAggmAYg/Pdn8r7Jf/6BFAMtAYoAyQKngsO3DgP1QAIaqAEggFiAcfH73x8JPglwkANFf4OkgUb8A5Erzi4H+k9OSB6oAWgnUANAADEyKKNEJMNPBvwAIMAAMHo3F4Y5Tq0AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAICSURBVHjaYmRmPtvSIlVZeaO6Wq2j48Xfv58YGP4xgMAfMANCcjEwPJkYnmjkwgAQADEAzv8Enp4eVlYSBQUAbm4WLi4IzMz1+/sA/f3+/Pz//Pz+/PsB+/wESjvGPjLQ/wljhJmdAgAxAM7/AQAAw56eJzQ0C6Ki7ujo+vj4/v39//v7/vv7//v7BQMA93dfpSwrx+D0BYHMBbd0twKIhYGB5ePHf4KCzH/+/uPnZ/r69c+vX0CzGX//YvOzOxTiupeB6832+wztJx/JicoBHQoQQCzW1gIZGSKJSffnz1NYs+bDihVvfv9mY/j3ozRmpaH+0euf/uRue/Hzz6/fYFuBGgACADEAzv8ExcXsvr4Z+/oAqqrvsbHy+/sJSDjGVUa79QbfuuQDiMno+/76+v76+/z7/Pz8AAAAAgjopF+7dn0AenHFys/6qvd8bI6rKp69/+1n79FvV998+fX/1++/v38BbQB66i/IBoAAAmoAMhl+/WJL9N+prXD5n8C5gy95W48DDf4NMRiiGmj8378gGwACCORpF4urgnaXVeWPv2b4s/AK274Hz4Eu/vUXYvbv339+/QFqACr/9xeoASCAWCJNGyQFgqWUrt76KDnt3Ns//1llRbiBSv/8/QNy9z9QZPyFALAGgABiPD6Z4QUbw5RzDHsXMTB8ZyAIAAIMACDfK+Co9zmnAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHySURBVHjaYmRgmMjA8IMBBJgYGL6dPFlvYgLi/PvH8O8Twz8phn8/Gf4xIBBAALEwMHyprnYFq2A2MLhjalry//9fBoY/jH/+MK/8wxT5+/+fP/9/Q8kvmzYBBBBQAxD9f/LkOxPTH3Pzg///v2Jg+AtS0ff7/97f/3/9/v/71/9fv4AijLKyQBsAAogFZPQ/hr9/mYyM7srKglX/+fV/8p//e8BKQap/QzQw/P4N1AAQQEB3A1X/Z2D46eV1nuH/n/9/gap//98GNhWIfsIYOjr/8/IYzp8HCCCgDX/+/GEy0L+jqPj8P1DD1N//t4DMAyGgOqBhlpb/g4P/W1oxsLL8+/ABIIAgTvrl4XPhP8Mvhll//m/8DXUGK+t/e/v/vr7/jYz+gwHj//9ApQABBPK0uuYTdZVHDLP//F8FNpuP77+zy39v7//ychClv//+fvrl6YOvD3xX+QIEADEAzv8EAAD0P0LU/6T7AKj7/xQY/0hI/0tO/xAJ9v/94/Ha0uzS0OvQy+vL2e/ZGgwaAJ4AAgAxAM7/BAUBtiXXOP/eQf94MvIwKOAH9N3tv9vi19jw2Of25/f49/z+/P0A/RoMGv3+/QAGAAKIsdWX/x/XnxV2UlcZbjNcYmAABuwHYECAY5UJzPgF4wJJHgaAAAMAUu89tr5e2cIAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIbSURBVHjaYnz06BEDA0Pmzu9bp1xikOJgEOFi+PGH4c8/hl9g8h8Dw713DHc/ydYaHUiQ+vr9O0AAMdbufNzkJgPU8+3P36atj/++/fFHkO0vA0jxHyB4/v23ANukMEUuZsb///+7TTsHEEDMhy5bCOsImcnysDIxuqgLPPnz7/TxF29//Xv74cebOx9sbSSaPWVYGBmAqgs3PVyXthIggJgZPLINRDgXHnymIc8jws1iIMXtbCK65uDz39/+LinVs1PkBSo99+SLZ8u5f9/+3jv7BSCAWIB2/+Vn/fP9d/2cG/qWYpUOUoIczJvL9f/DQOHmh3u3PfwtzvFbmI3hxzeAAGICu/T/b1am39JcJ9bf8+q79B8JGDee2bvoxi8F3l9szH9+/2P4/QcggJhANjD8//P1z6/7n9TdZLcU6CBrOF1rZBCk9Ov6u1+ff/8GBdkfgAACOen3ux+/3n6rTtAwk+UCKvr8669z89nff/7tqzPiYWGcF6q4R18osfvcX1ZgWDIBBBATw7EX/KKcG8sNIKpnHH/hVH7iFxPjT2ZGs9wjPYeeAgWdVHgfzrQXkeMBRgpAADGGzr+8LEYDKPrr3/+EZXf+PP78W5TzN+P/P3///f7178+jz3+kuLana7IxAo1n4MvfDRBAjMCY/vfvn+vix7drjzCwcjBI8TB8+QGKZhD6B1L1/w0DwweGUIcr9fpAHkCAAQAGHylL06NptQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAF+SURBVHjaTMJBCgAQEADA+YbX+f9BkjZJ4uJgGik73v1dTAZBp1EpXAHE8tyAYWJCV86+j0x//jH++8fw9+//P38Z/v5h/POH+c8fpt+////58x9Gftm0CSCAWBj+MLwW+FBj+r1lzWum33+BoiA9QBUQ9AtI/vr/6xeQzSgr+4+BASCAQBr+/fr/ROB1SSB/t0Mz03/G/////UeAf3CCgZn53/37AAHExAB08f+/f379ecL7Mvdg1WO2r//5+JAQPwjxgxEv7wsODoAAYgLa8Off399/fwPBY5bHNVsr/qLYgAQYGP79+wcQQCANf//9+fPvz69/v8T/ijd5NjH+Z8CuHui0f/8AAgjkB4i/uN9wt3u1M/1k+vD9A1DiP1gaWQMzM/OnT58AAoiF4R/Dn/9/uF5yvV7+OnBm4C8wADoPSoJZf/78/vPnr4qKysWLFwECiIXhCwPHK06uQ1ySQpJ/+P4C5SDgD5j1Bwz+wgAwhAACiIHBloEkABBgAEotTjqTEtNjAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGwSURBVHjaYmRwbmSAgb919Qz/GICIuayU4dc/hl+/GH79YfjxC8H4/QsggFiA6qpzPYHkv3//GZW/Mfz7+5/hb26J35+////8/QdEv//+BZH/QIxNuZMBAogFbPT/J++//f33n+Hno///fzP8/3v/9effQEV//gIV/frz9xeQ/fuvrDA3A8MvgABiAZr87x8DUPWfn6wQ1f///WJh/PHtD9MvsJ5fYPT7H1Az0Lm/AAKI8e9BBkalMoZfQLP/MPz/8//fbxD6Dyb//QIjMOP/b0Z2+U97DwIEEAvDHwaQqSAVMA3/f0G1IVSDGAz//gCVAAQQ0EkM/0Hq/gBFgUJIGpBIsAgj0Od/GAACiJFBvzirLOD+m4/AoNjq3gu26pf52pLff/6A/PCD6dcfYPj8+/Pnr7IY39nWSQABxMLw488fkIf+/v7zD2bYr19A1aAg+gcM/98Mf/8w/vvDBETsDAxPAAKIBRgpQKWS/NzAAGFgk2YABtS/37JCPKCwB7r531+gOX///gOhf6BIBQggRgbJZHhEvp2zFhgGQIeKptsygELjFwz9A3OBJANAgAEA3Ll5iCfmAhAAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFmSURBVHjaYnzJwPCPgYGFk5Ph168/f//+A3MZwCQa+gMWBwggFiBL5NQpZh2dXwcO/Lt8mUlb+9/Hj39OnPj/5w8QMfz+/Q/I+P37P5h8smkTQACxADUxa2v/Pn78z549LB4ePxYsYJKTY5SW+b1/H0jdr9//f//69+sXkM0sKwu0BCCAQBr+//3LLC//4/nzfzt2cBQXAw37VlcHVPrvN1DdL5AesIZ/QMTAABBAICf9PniQxdqa1dPz1/Yd39va/n7+DDEbpAGsFEgCVTP+/v2LgQEggFiAVvy9cuXX/v3/GRgZeHgY/rAzcXH9A7ueCagUbDDDnz+Mv/8wSkoCFQMEEOPvjx+ZeHj+AwEDGOIGTExMb+/fBwggkJMYwXyQZ3ADiCzQ0wABxPLv3z9mMIegBhD48wcggEAa4KoZYICRkZEBBQC5/yGxCRBALAz//v149+4fFPwBQjTAABIFkZAUABBgAKq8T1ajWRp9AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIXSURBVHjaYnyqazktomvbsTcb9qQ9+MlQ4j3DQ4fDZUGd/csABoZvDAx/GBh+MTD8A5NAxAIQADEAzv8BS1evrlL81Ck+Ksey+vv+3DVJJeXRrv8mzdLq/f3/+/39+/r//Pz+/f79/Pz9q5edAgAxAM7/Af8HA/+EiADu6gDw8wD+/f8KCv/19+z7BGcBS/j8//v7/QD++vv8/vX3AB4bCrCbngIAMQDO/wTK/hwvFRgG8vH+BPj/AwcCFRXwBPfg9QX58/32+AKFV6YQCO39/fzr8QqMvGoAAPoCADEAzv8CiFyU+AQHtD9j9A4S5QUTsDNa/xERxyA99/n/+vn9/f77AQD6AgD6Egvt/Pr9AAD6AgAxAM7/AlCkfMkdONnh9NLwBtrvAL3E568gSCnaxf77+f4A/t/ZD7npivsjqrjqj/7++wAA/AKIJf53WOHhp0+eftz3ywToLcb7by5de/HzjzYj0Ku/f339ycd0e8GEb5c4/2n//esOtAEggJiA+D8wKP78Z/r7m/Hv79+///3//5/x359fv//++v17xzPXS+KXGP5x3jrq8ecvKIgBAogFaAsw1ICh8esPUDkQAQMFxACT/67eeP37SjrQ5j9/XinL8wMjBCCAgBp+/P77T0KUCygKDD4w+vsHSgLt/gdS/RfI4ACygYoBAoiRgaGSgeELLCJ/waL2D4z7D8b9ByZ5AAIMAEc5SdmraF94AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGQSURBVHjaYvz69SsDEvj37x+ERGbAwZ9//wACiAUoysXF9f8/w48ffxkY/3NxMIM1/gcCKIUEvnz5AhBALBCD+6c8fvHqPfO/v62NugxMTP+xAUZGRqAlAAHEyCx4eEKH0ufPf6JChOcsfvXly99//xn+/Pn35/e/33/+Axm/gej3PyBDQpx95sRDAAHE8vf9l8dPftSZ3vnLZ1uucz1iocRvBmagol9ADb/A5O9/v34Byb8fPv1mYHgDEEBAJ/37859h0fJXIpuW//n99/d/6V///wPNBqJfYARi/AWSDH/+gkIBIICAGlj+/mPayWzy6wPYGUDVQCP/MP36y/D7L8Ovv4xQ8h/D739MQMUAAcTSyhDj/LX+06cXQGf+/QVyMpQEOuLXn79AtwO5QKnff/kEJSczTAcIIJYShtfM3y/9+3aP4fdvoOH/f/0CIQgDLvLnN9BBjD9UjBkYAAKIBRg9TEAHSkoC5UDOBMr9/s0IYv9hgJBA9PcvBAEVAwQQIzCe/yEhBlQumhQQAAQYAF6IXDEgUHAsAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGSSURBVHjaYnzIAAVy//9zRV36skTnATPzPwaGf2BBCOMPEgkQQCxAUcHaaiD5////ngQpRkZG4aLC/3//MPz58x+Efv//DSL/Acnfv+9u2AQQQCxgg/7/e/IUSL18/weo7c+DB0AVDL+BioCqgejXv1+//v/6zSwrC7QBIIDAGv4CVf0F0f9ADvn/5xfI1F8gpSDVQD2/QCTT799AVwEEEIvM379AZ0Cc9Aeo8/9/gbUb/mMDQGUanz4BBBAjc/D5/mTpF+9///0HdvO/f0BtQA6I/AMk//3+CxIHikgJss7OOQ0QQIx///6FGP+f4X/JgmfdcZL/cQAmJqb3798DBBDLPWZmkdysP/fuC2zY9BvspLd21v9+gXzMAPLub6g3fv9hUVa6evocQACxAL35HxxkQKUgZ/3//+8nRMUvkCBIJ4jxD+iQP8DAZgAIILCGP3+YJEEuEeUDBRqzjCzTX1DAM4CDn/nPH5Dqv3//gR0PEECMV2FRqPD+vaDeibcXzK4JC/+BxTEkghlgJBAABBgA9J5akqVspaUAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHESURBVHjaYvz79TsDwz8GOPj3D8T5B6L/QTj/4OAPkAsQQCxAWSYuLiD5//9/iBYmEP2f8f9/ZrAgMvjy6g1AALFAjP8+fzHDpy/////7/+cvUISjMPc/BmBkZPzz5w9AAAAxAM7/BEJk5G1eFUfW2gvv5f97fQCnpv3V15Se5fj+A/38/v39/vz9//z8/vz9/hMQBHds1gIAMQDO/wTEyvBFQhNF+Pj/amsADw7/XV39dnrt5PHZ8AgA/Pz7/P77/f/8+/76/P4cFwYA/egCiOnvHwagQ/79/fd/xpT/Hz/9X76Uien/519Mf/79//2XAejAP7////4DYvwFBw1AAAH9wAZ0+uOI7C1bnj2d/p3hp0dppO3LA5y//4IM+f2P8fd/pj//gQHE+BMUCmwAAcS4n4FBqbyLlZ/ru71L80bWcp8/XHu3fjx4+h/INb/BCOym33/YFWT2710KEEAsVgwMzO/v/Dt7j+HdvQmWjow7z7BtXi/6+/f/X7/+A0kI489voJsYeT4IMjAABBAL0GFMQDdKSv5/8oxz+SKg3H9ZWcbfQBV/GCAkEP39C0FAxQABxPgVHBFwxIDKRZMCAoAAAwBcKj0T0E2bvQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFGSURBVHjaYmQ4zIAC/jEw/AEz/sDY/2AMMAIIQJEYnAAAAjHsHm7iqLeMmzhU26sVQghkZfXuWCXbHE6Zhqx0QIED+Pe55wkgFoi5T38/+wdRwfDn77+/f/7/+Q1UBFL3+9e/XxC2NLs00AaAAGKxFbNVYVcRZBYEGgm05N+/f0DVUOPBpv4FaQaxRVlE1kqtBQggxq9ff3NyMgMtAbqHAQxxAUZGxkeP3gEEEMu/fwwQ1SANDLiVA2UZGYH2AwQQExDDBP7jB0B5oGKAAGLU1b1YXCz5+vWfv39hrv4D9sFfEBssCBb5+19cnK2t7QxAALFcvnzv2DGee/e+gwPl369fIARhAMMIFEC/IHr+qahwMjBcAQggYLD+AUpLSrJCgxoc5r9/QxkQO4H2/AUHIjAKAQKIkYFhJSIa0dE/JAYEMQAEGACBUnH2830a6gAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGISURBVHjaYvz48z/DPwYY+PfvH4SCMP8hgz9gSYAAYgGq5uMAKfr//z8DAyOYAeEB2cz//zP9RwLP3nwBCCAWiMlg1QjGv3+/wRoYkVUzMjICLQEIIBZM1X///n5/pYLh/z8BnW5kDRAXAwQQEwPMByCh/wwTd7e8uLbs24vXH59+fHJ+Tu2qXGQ9//4wAAQQI0P13z5vxhef///5B0QMpuLXpO5PuyLm8/X3f82HGx/yeO7/6fH77/8/f/9L8TEtaP0AEEBMDH8Y/v77/xuC/v6/dGMKCx8T948DPF/2vfnKevTJbKAgCIGM+8/w5x9AALEA8d//jEADgMYDya8cOXt/8bv8q//758cy7urP35j+/v8Pkf0L0vAHIIBAGv78Zf4DMgOk4ctfNS3h/61r7X/++u8VrPjg7v/fv6Gu/Qv07C8GgABiYfgFjBEmEW4GmCUMN94wKNpGAM27/ua/FA/Dn//AcGME2vMXHJsAAcTIkPwVqAdoD4gEIQYoFy7yB4bAwQkQYAC2RE+h3d1hoAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGmSURBVHjaYmRoZECAfwy/ExiYmECMfxD0h+GfJpCHQAABxAJUVu1ZDVL8/x8QMcr9ZWAAoj+M3/8w//vDxPH7f8yf/79///8DIr9s2gQQQCxgk/8/+fr07/+/f//9Zfj/m4Hx7///v/+z/waR/37/v/3r/69fQNWMsrJAGwACkDQGOQCAMAhzif9/sLBUpjcSWtjvnaCmnTrzHHCjmhBaX1hShCuAQBr+MgBV//nz98+ff3+Apn75/Xv9vd8///4OUPolwIyiAegYgAACafjz7+/vv7+BqoEI6KQr735tf/T78+/fUry/XMXBqiEagPIMDAABxMLwh+EvWOmvf7+AlgBtMBP9ZS7x+9uvX3YSQD8gbGAEOwkggEAafv///evvL6Ce339//Wf4DfRDtibIx3+BHvj3G2480NV/GBgAAgikAWgw0Em///0GkkBfgj0NYjD+BwcUUMMfoAagT4HBzQAQQCwMvxh+//sjyS0J9gY4WBl+MzICSaBxwCD+w6D0B6QUjIBOAgggRoZkBqAekOwvEHo9ARzj8Jj+xfBPHxrHEAAQYAD+LFuRr4ubWAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGhSURBVHjaYlSc+P/TDwYI+PPv358/DL/+Mfz+A+Ig0C8YycIAEIBCOTcCAISBGGie1miNmJQmiciwT0CmnVFd23r7NxAkYZKF8NcqruzBpzjBmPsKIBYWFpDqV1+BqkFKgRJ//zL8/Q+SBrKBqoGM32CGOA8jUAVAADEBFf0HKgKZygA2huHDz/92cv+dFP6/+/b/xx+whj8gBNQDdBVAALH8Yfj3l4ERyP779/+vvwxm0v+FOP/L8/9nZPgfq/f/2ef/O+/8/we2AegLhl8MAAHE9OsPyOy/EAf8+3/80X9O5v9SPP8luP7zsP7ffx/mKqCCv6CQAAgglj8gDWBXgh327ff/88//KwoAg+D/uWf/33/7z8IE888/kJMAAojl759/wMCB2AgkgbbL8f+ff+7/z7//FQVB2sBmg2SB5jL8+QMQQCxAW/78ZQbZC9Ow7PL/X39Adp55CvLJL6jxIJcz/GEACCAWhh//gIEtws0AswQSV4wQFcAg/gMKD2CogBwMdBJAADEylH5l+ASLSBBiQLCRoxkURwwMPAwAAQYAt2147biAyK4AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGTSURBVHjaYmToZ2D4wQAF/2DoDwPDLzD5B4kNJFkYAAJQKMZGAIAwELJwNMfSSVwi+z35GAsOCmZrr/PnSjcD3IEqMSSUlMjCihtPADG+/fmRj5X7PxAwgCADw38wmwEsAAX/wCQjE+PDd48AAogRJNfVw/D8OcPfv0BDgRb8ByKvD////v6/muM/0Kbfv///+g1kMEpJfVyyGCCAWIAOZnzziuH5U6A6ht9/QCqafv/n/v3//+//sr/+Z/4CawCRDEDjGBgAAogJ5Nc/f0GiEATUsPXXf6lf/2V+gRh/waohCOg7BgaAAAJpALoE5Izfv0Do56//br/+H/31/9BPEOP7T7gGht+/gRoAAgjsJF6+//wCYNcDzfvzv/M3TP/v/8IQ9m8GoJSwKNBNAAHE8uHra142vn+QkGCABsrvP79ANCyY/gGj5j8DMyPzq1cPAQKIkaGUIdU77fc/cEjDQh0Y5L///gbFA9C5IO4fYAz9/ff3Qsd5gABiZChmYPgEi8hfSJH6CxzlcBFI9PMwAAQYAPONaQwVH2jCAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHaSURBVHjaYtzNwOA6mYHhGwMI/GNg+AMjkdEvGMnCABBALFYMDO8+Vfd6MDD+/QcEfxn+/v3398+/P3///wGSf/7+/v0fTP778/vf73XTNwEEEAsXA8P/v/9zFz4tD/oLBH/+/f4D0gBU8fv3XzD579evv79+/fktwyPLwMQAEEAsQIdwff/PyP530rW//xN+/wPq/g9ywX+G3//+/QKygQwg+e/vb2am31tFGAACiAnoYKArOJ/84Xn1m3fuHz72X3zsv5l//zq0/RcfGwgx//y1d+MvfvZfvGy/5fgYAAIIZAMD0MG/fv9/+4fh6Z///3//+fNr5crfK1eBGF6+vxcu+LVoya9fv36HRf3584cBIIBAGv7//QNCXL8Y5EEamJh+BQX9Zmf75eMPckxU9G9Ozl8h4b8Z/v8GOgcggFiAmPH37x/Cv/4I/vmX8evfT5AiRo7f3sG/P/4AeYCB81dg1O8PP/6wMP958I4BIIBAGp7z/rnF+rtb5/fv3dAwAYYPhPwNdCGYAQw6Zf6/p3oYAAKI5Q0DwxuOP4s9JcV//f7D+hckBw7NP3+BDgaTwNj4B4wjoNRfhi8MAAHEuJaBIbiYgeEDOCJ/IUXqL9RohkQ/DwNAgAEAXm1JlTnRn1wAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGHSURBVHjaYmTQv87wiwEK/v1j+PWP4c8/kAiQ8esPiPz9DyjBwPAHQgIEEAtQrr9aDKIYjP79+cvw99//v//+/f3L8OfP/z9////58w/CmFF3HSCAWIBK/v5jePHmzz+gor9g6b8gxu8/IHVAEoz+/f79T1KUFWgvQAAx7j/9VVmW7devf///M/z///8fBAF1/wNyGUA0EIEF2NmYDp18BRBAjH///mVkZAQ66T9IBwNY1/93t+u+/mOXUqn4jwSAyj59+gQQQCwQ30KEIIyz17+fvPsa6AqT719MtbngGhgYGYEWAQQQC1w13HxDdbZPv23//vtrqs2JYgPYqQABxLj7+EdVOfYfv0CuBPkB7Og/oEACmgTyA8QHQJqDnXn30WcAAcTIwH66qkv20YtfsDD59+sPOJR+A0PmLySU/vwFhvV/BUm27TNPAQQQC9gQBklRFqDE3z//wKH+/zdIBTDsmf/+hYY1KND/gWILIIAYGZiPMvxlgEckjPwDY/9DYoB0AAQYAKRYbE3/GAjBAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAE4SURBVHjaYvzPgAD/UNlYEUAAmuTYAAAQhAEYqF/zFbe50RZ1cMmS9TLi0pJLRjZohAMTGFUN9HdnHgEE1sDw//+Tp0ClINW/f0NIKPoFJH/9//ULyGaUlQXaABBALJ8+fuTl5WWA6vsPIbECBkbGdw8fAgQQE9zRQKHv/36uurfm+//fEBW//v+df3vRpz9f4Hr+/fsHEEBMQAw3df399fuf7Ft1ewWEu+rOyt2Pdk2/Oh1mBcOfP38AAojlH9wNDP+DFAM+/fwYohwIEYhUCn/x7XmMWjSEywh2MEAAMb59+5afnx+/6yGyjIyMd+7cAQggRiArLS3t3r17v8HgFxhAGCASzPrz5/efP39VVFQuXrwIEECgYP39+4+kpCRQCigKlIOAP2DWHzD4CwNAxQABRDICCDAAz55KKgzD0rYAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIVSURBVHjaHMbBCQAgDATBKD5s0LoszH4kHMuhZB/DtrXPTaKyjUNfjCwQzq9qxBz9CSCWfyyfMjxUQcr/M/z7/x+IgODv339///z9BzTiP8Pff//+/vsPJv8VLzoCEEAsi9jc2Fgn/v/+6v+/fwz///7/B0R/QOT/Pwz/fv//C2QDyd9AW5k4xV1ZpgIEADEAzv8Ekmf9RXnl8+Pj//39BP/74Pn9tv8A+/z6o6Ge9NXT0pSQ8d/l/fv6+Pn7ER4enLwAAogJaO/vv38ZGP+oOnEJOXBvARrFyPTz569rt+9wqGsq19SrR0mZLpx749ev379/f2BgAAggJqB/GRn+ynlIfhcQbdr8xtfXy8/TBSj39evXkoraDXv2cZtm395U5Z5pxML97xcDA0AAsYADiOnID+dfzIIuv86tWL7qz9+/P378YGFhqa2veXLu4tmS2uu2sd94VfU+tAIVAwQQCxMDAzBAhNdP+/Ofgf3XT4/fv3f/+vXh92/Wv/8Yr1151tX27skz8cUtf5iYGaWlgWYDBBDjx04GNqemf5+fAIPi///fDMAQ/Qf01G8GYED9/cXwDxQroLD6+4+FX/bJ5LUAAcTi9m113i/df6z//zD/A0UcMygugAygJ/8xg2IGHAkgsf+//tf+UAEIIEbD4p1vPv2ARCQQ/fr17/+fPwy/wOgfkATFPANQBBhLwFTAwwIQYAAk7mFO2zo6eQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABY0lEQVR42qXTT0oDMRiH4TdtbK1DZ2oRpK5aEF2JrjyCR3DnCTyPd/AMLl26cuNCERUXCkVaLUnMzOSPC7W1iDBqIGQR8nx8SX4CEPxjSKD+Za2KRcADTgJJPDt6/kt1sXvYkUDXlzn19b1fHfbXJwBdCSRlYamVmji+q1Z5uU9ZWIBEANuTyeQ8SRJijO+6jwyHmrIMZFmTLGvOA0KgtSZN0x0JCGstrVZrCtzePqN1SYyR0cjQ73dI08YcYK0FEDUAYwwhBEIIOOfRumA41Jye3hNCZDye7X9OYwwA3wCIhBBoNARbWyu8vFiWluSPgARQSuGcm7YwGLS5ufHkuWd1NaHdljjn5lpQSs2Ag+N91jZ65M5WeoWmXOTh6nEKRK0VT+oJ58tq37e+gNYKIErAG/OKu/CEGCoBNVGjcAWAF8AA2AR6QLNCHiKQA4/ApQAyoAskFQP1GSQNjMTHPfw5jW/kSso/ohVRIwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAICSURBVHjaYtyfX7uDQ61zx6fiT5sEWP7U/nCJFbgWYCQWvPADA8MfMPqFhP4ABBCjrHnzgWYHBinpnzduMHz+/E9Kmk+Yf8uDv5fvvfnz99+fP/9+//kLIv/9/f3n36buToAAADEAzv8EsOKWCdoSBsm++fDx/fX3BxQQ9/0BP/b6ugA08voEHRLyGAvw/gX+4OwI+/8YAAD6Aohlk4xToqo299snX27eZRQSZVdWePXo9TVOzu8vGX79+lNnv0lYkO/7h2sXn0v3nIgHagAIIKYHdn5MXFzLPoreYRN79J9nMYcek4rqaxae77/+sTKzsUsEssnl//n85//fH0C3ATUABAAxAM7/BPzMyKghEMnm/uj+CgH8+8a82c8ZCy8BAPz6+fL4A+7goOft+vwFBwUE+Pz6/wAA+gKIZenBHyIBbH9+fzj1hx/suV83H3y//Ofvr7+Mv3/9/PiZ6QCvEK/Ad8UXv37/BobYD4AAYgKGFND7v/7+//MXKPLr1++/P3///fULzGH4PuWElev7FxYvX80+bvaX4QcDwz+AAGIBavjzFygNDDUQ+QtoNpgNIv/+vfOaM2O5z7+/f3/++c/BA3ISQAABNfz6/ee/pAgX0J4/IAQKb6BSCOPPX16gcX///mP8+//vP6Cn/wEEECMDQyhqXKLEK1JM/4MggAADADIlPsLT1SX8AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHMSURBVHjaYhR13vnhyy8GBoZ//5j+/mC6PSdLTODVnz9/GP79+sf0/88zhh+uDH+AsgwgACQBAojlzYdffUVaIM5/ht+/GUXka9nZvrH9/8/w/89/xv//eH5x5jz79/fP/z+/Gf78eTZ/PkAAiubYBgAQBAJgJGzB/msZWy2sLBSQFwe4HDN/2udxh1pxHUELEcCN4tjHakMCUxLJ6glA0RwbAQDDIAwkOe+/MAZCGpWvsVFOyjpUPwr218qRzZDlLd4WeAJQOAYpAMAwCNth///vWk1XwUNAArkW+wvsI2+ZJvPE7PArSBKtFb4AHE5JEgAABBrG/z8sUi4d2kt1gz9pMqyxyaW6Qzvy9SMSDpwAAmkASv75CxT5/+sP0HlwG/4A3QbS9vsX0DwGIAKFHQNAALEw/PgDdAnQNpANQA1AFSAbgGb/AXoa6K9/v35DjPgHtgEggFgYfgE1gowH6gHaAHISUM+/f/8gTgIHKEgDMFj+/gVqAAggFoYvf4AMUUE2oJ6fPxmYWYUZmdmBfmdi/v2f4R8j2y8WOYiFUA0AAcTIILmY4dU3kBNB8ch0cHW2lBADKKKBbmZi+POA4UcmSAKCmBgYAAIMADoiepJbB7BWAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGhSURBVHjaYmTgLGcAg//fOv79+wdiMTMDCSCLlSGRgeEPA8MvGPrBwMAGEEAsQLnefv//QA3//zMyMoJ0FhQy/P3D+OdPvpjfvz9A8P/P3z+/fwOZf5dMnQAQQCAN/xn+v3j9FWrP//8MDx/8//0biB78fP/3959fv4HE39+//kpL8gHtAQjAwhjbAACAMOj/j02bqpi4MAEE3eGYt6E0bGWbcyANe59TK4BYGH79+/f/39+//0CqwRBiPFDDr99//gBt+AXUA3QYyElAGwACiAVk+N9/f/7+hxoPBEAbwHp+/wJLAXX9BhkI1vAHIICAToKI/k0t3QQ0BmjvH5U0kKN//2X789fCXDY7wQxo+7dvv+avurCN4QdAAAE1/Pr79z9IHVA1xH9/oE4HMo6eeczAwGhvKdc28RDQFUAPAwQQExADLfwNUv0HYjDY0SB3A0lBfvbUaMP////N7fMzN5QGmg4QQCAbgGaLCXP9AVnyH6gZyP37B+rLX7//rd9+I9BTY+qCU0fPPAK6HyCAgDEVjhSXmOgPONLhbAGAAAMA5dtcF+ULRmcAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHESURBVHjaYvzPgAD/YAzmdgaGDwwMf2DoF4xkYQAIIBaQfHU1kPjPzMz48ycDC8v/f//znT7//vnnzz8g+v3n75/f/37/BrL//t4wcxNAAIE1cHD8l5BgMDVlWLjo//PnDH//1gl+ZPn7+/+/3///A8lfQPTv328mdtlWLwaAAGICmf3rF4O9PYOe3v/cHKDq/79/83H+5mQEol+cjD/B5C8uEPlbiI0BIIBYgO4GueTu3f9cXAxXr/3/8OE/G1vl7V+/f/z+8+/Xn79ABGH8Fuf53beFASCAwE4SFPy/fPn/RYsY/vwBGg8MhuOff/3++vvX31+//v7+DSJ//f77W/HvH4Z7DAABBNIAMhWo7s9vht9//rOyAtlS/3/xcIFM/Q02G6gH6Hsprt9HxRgAAojx91EGRvms/z/vM/z/A/If0Jd/fv2H+Bjk3d8QQYZ/fxjZld7sPwcQQCw33jBIiP/5/f03MBwY/v3+9x8aJv/+gtT9A2sAk3/ZGP+e/8AAEEAsugcYUnmBIS0JDOw///6CnfEbTII8BIwEcGz8/fcPGHx/L6xhAAggRoZiBoZPsIj8hRSpv8AxDxf5ByZ5GAACDABxbkMxG/PbxAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFWSURBVHjaYvzPgAD/UNlYEUAAisQgBwAQhGGi/pzP8EBvG+BImqbL7pzuUlda9SJ7DMs85NYEBgX5Ir4AYvz/H2QHhIQz/mMDjIyMnz59AgggRkfXjTmZOu/e/fz7D2jH/7///v398+8PkPEHCEHsv3///fn978+/f8JCnGWlWwACiGX/7jOmhiKPHn3+8wck8fvPv9+//wLRr1//wORfOCkvz8fAsAUggIB++AdxJ8iRQNf++f/rF8TZ/4B6fgEZQPIXRAEoLAACCKjhx9+/f/78+f0LaC/YbIjxyGaDSaCFvxgYvgAEEAs3r5qKqhAPLzs4GP4CnQR2G9CMf2A2iPEH7BNJSe5Tp8wAAojx58+fzMzM//79wxU4EACUBYbS27dvAQKI5R87O1NJCQPEjX//MvwGkn8Yf/8GRggCAY0DSgFt2bsXIIAYv6JGJJ44hgCAAAMA8pZimQIezaoAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGCSURBVHjaYtzPgAD/wAgI/oARhAtnQxgAAcQClFatrgaS///9AyKGv3////n77++f/3/A6Pfvf2ASyP73+/fhTZsAAogFbOL/X0+e/v/7F6gaKPoPqAdIAhUByV9Axq//v34BuWyyskAbAAKIxezrV05OToiT/v//DyR/3Wlg4tH+z8D89+MJZoXq/4yc/8GAkZGR/elTgABignsApPo/w++HE5gELP///fb/zwdmmay/jyb8RwJ//vwBCCCmf//+QVQDwe+H/cyyeYyCLkCp///+/GeVYpSr+HuvHqoc6PV//wACiPHjx488PDz/Ieb/B+n8+7Dz/7d7IA3s0ozytXDjmZiY7t+/DxBALHDj4QxG2VIGkPb/DEiOgfsQIIAYGVQZ0mrS7r269/vP799/f//68wuIgOxff8EkSPDXn7+///z9qyKucrH1IkAAsTD8YPj9948kv+RvsChQDsgAKv3z7w+E/PMXFC8g8O8v0AaAAGJgEGdg4GdgYGcgEgAEGADVtDiKtIsdZQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIQSURBVHjaYmTgPsrwiwEK/vxj+P+DAcT/BCZ5GBiYwIw/MMQAEAAxAM7/BAD4AHuRIQAAAP7+/wb/9TQn1DAk2BEM7v/+/OzzDMvWJcPQK+vwCvv8/vv8/7KZwAKIBWQEA8OTl78Y//9pz5ObsvCJGN/ng1fk//z+//ffHyP5/X++31iw3fnZGz5ZKXagsQABxMTwj+Hf3/9///7/8fVvRc+dvATLKRsjBVjeCLC/luJ/8uIjt4rMHRO1i7+ANvz+B3QVQAAxMfz99/fn7z/ffnuaHdJVuJzTfKe1QKV3eXD3ktAr92X+/vm7/YyxruL1X7+ATgJq+AUQQEAHffvz5z+QY6p2mZvnS6rf8vzW879+///9++/OUwZ//vxhZPglJ/bw1+9/QGVAGwACCKjhz99////8+ffopSDQGGWxe9a6Z4Aafv5mePb19+rPb+6JHbt4R/bX779AI4CKAQKIBegPoPeBBly+K6uvevXjN1Zf0z2mSicfvxLs3Or27pkon+StVc/Y/vz+B/QnUDFAAIFs+AMKsn/Hr6q//cAJtHjHBZP339i5uT+V+az99Y3t998/l3cEAw398xcU+AABBLThD1C1pBjb71/C+y74/fx71t3ogjDv+///fr/8wOv2SvniO2F5SV6gs//+BYUSQAAxMjCsRotLBoYvDAzPgIYxMAgwMLCAZf/BEBNAgAEA9lslgZu66XQAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGUSURBVHjaTMJBCgAQAACwXT3BMz1ckiRJ5GZNik5wvPu7mAw6jUohcwUQIwMDw+bVNV78DIzH/zF8+8vw9+//P0Dyz/8/fxj+/Pn/+/d/JPLLpk0AAcQC1HDiwr/n6k/jY/6xrvj7//wvkB6gCgj6BSR//f/1C8hmlJX9x8AAEEAgDf/+/T+06+/XL3/T8/6wH/77f9nv/69hSkGqf0M0MPz+DdQAEEBMQA3a2trV1dVH9/3v7Pv92vL3/9bf/+1//2cCq/sJNv4X1BKgYoAAAmnw8vSUk5Nrbm44c/L3snm//0n+/F/8678H1GCEhj9/gDYABBBIw9ZtWx88eFBaWqWm/is4+hcD0D19v/6v/wG24SdcA8RJAAEE8sOpU6eXLVtuaP6npOA39+E//2f++v8YZjaMBIXYH2DAMQAEEEjDz58/LRx/F/r+Zm/783/fT2R1UMYfoAZQiAMVAwQQSIO5wZ8ocSmm/t8M7/4wyIBCgxFsJAOEBKK/fyEI6CSAAGJ0ZWBYwwAC/8AIzsBEEAAQYAArG0lafStYOQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHjSURBVHjaYmSwZACC3e8kP9x8/oWBIdGQgeEPA7eZ7tcDlxl+MTD8YICSPxkgACAAADEAzv8EAAAAfHOPIuf5//4HBhAKdQbwCwcJ7/TwUnOczd/V1OTa/P38+/77+/z9+/37sXOZAogJpOs/w6cHT5l+Pnx15pwAJ8+lhzf4uXjbt8wMMXP/+efX7ZcPbj1/eOvZvd9//wDVAgQQE8M/hn///7Gy/f/4/Dsb678z968m24ecunup3CuNiZGJk5X915/fv37/+vUXaMlvoAaAAGIBavjz7++Pz7+/fv/Jwfj/z1+GXZePTIip+f337+pT2++/efLr92+gnt8gBLIBIIBYgH769+8vK+vfb1/+8XL9+/Xnz+Unt1LnVKlLKN178/jVx7dApSBL/vyBOAkggFiAYQK04fvnX/c4fvN9BBrD8OvvL6D02YdXfgPNBrnkD9iGP0BvAzUABBDIBiCTjfUvx6/fHFz/f/35BXHAL2Dg/IFqALnn75+///4CNQAEEBMwjH//+8NnaG7CxsChoP0L6oDfYJ2/fv3+A3EPMHD//AVpAAggiA1/Pt+9xSKm+OvDcylJiT8g5wKN/A1W9O8P2Gwg+PMP5AeAAGJk4AdF5MSfDDIMDHcYGMoZCACAAAMAC9BBJrSMH4IAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGBSURBVHjaYvzPgAD/UNlYEUAAmuTYAAAQhAEYqF/zFbe50RZ1cMmS9TLi0pJLRjZohAMTGFUN9HdnHgEE1sDw//+Tp0ClINUZGQxycv8FBP4DweHD/48f/79///9fv4CqGWVlgTYABBAL2Oz/UNVxcQyfP/+fMeP/7dv/ZWX/+/n9l5H+b2jw//ARoAaG37+BGgACiAnkbqBqsI0M//79P3Tov4bG/+nT/wsLg4z38Pz/+w/IBrAlQLUAAcQEctGfvyBXAhHQEqDZXl7/+/r+Hzjw39DwPy8vSByi4c8foOkAAQTS8P/vH7CffgH9/V9G5v+G9f8LCv5HR4Ns+PABrgHiJIAAAjkJIsTwG6zNxub/mbP/Q0NBfjUz+3/pEiR8QG7+8+cPAwNAALEANTBDhIDagC6pqPhfWPhfTAwUStu2/d+z5/++ff//ADWAQgXoHIAAAmlg+v2HQVISbMxfhnnzgDoZwUYyQEglJUgYAhFQMUAAMX5FjUg8cQwBAAEGAPoqOIu5WnWcAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAE8SURBVHjaYvz48SMDEvj3D0TwCQoCaawIIIBYgPJ8fHwMd+78X7WKISSEQVX1/38Ghtxcxj9/mP/8Yfr9+/+fP/9h5JdNmwACiAVi8P+WFoa/fxla2/7Pm8vAyPj//n2QIiD6BSR//f/1C8hmlJUF2gAQQEwg1UAzi4sZWFj+FxZAuFClIHU/QeQvqB6gBoAAgtrAoKPzf+5chv8gCAIgFQizISQDEDEwAAQQCw8/P0NR8f+HD4CuZPj95/8fqDRcHdx4hj9/gDYABBDIhv9//4D99Auk4TfE4N/IZkP9AHYSQACxADEjWAhoAIoiVNUg2T9ANzAABBBIAzM4yBjgijC1/QFq+AsKRgYGgAACaWD6/YdBUhJszF+GPyCdjGAjGSAkEP39C0FAxQABxPgVNSIZcETwP1hSAAgwAP4dTt/+nGWfAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAF+SURBVHjaYvzPgAD/UNlYEUAAmuTYBgAYhIEgJJmboZgtHbaJKNK8TvozM8LIllwagEY4sIFV1UD/3swngMAaGBn/P3kCVApS7ebG8O/f/x07/n/6BFL36/f/37/+//oFZDPKygJtAAggkIb/YINBqqOjGUxNQeqUlf93dIDV/QLpAWtg+P0bqAEggJhA7gaqBtqoqMjg5PR/+vT/SUn/N2z4//Xr/+XL//Pwgu2BWgJUCxBATCAn/fgJEnVx/Q+05NgxkNzp0/9XrPgvJPR/zZr/ZmZQDX/+AE0HCCCQhv9//4D89OQxMMT+a2uDnKGm9v/SJZCrHj36v28fRAPESQABxALEjGBLGRYv/s/H97+oCOQYIIiM/P/ly/9Fi6CO+QMy9A8DA0AAgTQwg4MMaMD/rq7/vr7/WVlBrv/8GeROiAf+ADWAQgXoHIAAAmlg+v+fQVISbMxfhpMngToZhYUZ+PkZwAaDEDgMgQioGCCAGL+iRiSeOIYAgAADAO/XO1xGA79vAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAH7SURBVHjaHMFBBsAwEADA+cXap+X/coqqqoqIJXRGjZGZfhFRvVdrxWYx+Xh5uLk4Aojxv6rq/wsXFqxcefv27X///ikpKaVERjLs2/d/506GP3/+//79H4n8smkTQAAxN7x7x2hvb+DhcfbSpVu3bgG1Xb9zxy4s7P+HD/8PHfr/+s3/16//v3oFRIw8PD/u3AEIADEAzv8DgAAA/x0dAPLzOllZ193d5ubm4+Pj1NvbQWJi//7+/8/O//r7//r6//v7AA0N+N7eAoi5joGB0cqK4eRJhv//bWNjr96+/RgMLt286ZKeDtJz5gxcw8+HDwECiLkeqMHc4v+7d/+vXAHqsU9MBCp99OjRw4cPz1277pGbC9Jz6hRIAz//j8ePAQIIpIHBzAyk4fcvhouXgHqcU1PPX7/+AAzOXLniU1T4/9///ydOMPLzf3/6FCCAmGuBGoyN/799CwoToNXnz////989M/Pc9ev3weDMlat+5eWgUL9168vz5wABxFzDwMBkaAjSAAy732D/AR3NwOCVnw80/u69e3fv3Dl16VJQdTUDE9P33bsBAoi5GqhBT5+Bm+s/FxcDNw8DDwgx3rnDwMjom5//7O3bb9++ffr06dLt2+45OV/7+wECCD0igeg1A8NLBobnDAxPWVkfHzzIgARu794NEGAAoWM1UKSWerIAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGqSURBVHjaYsxkQIB/DAx/wAjI+AVDf2CMjFiGnsUMAAHEAlQX3lsPUv3vH8O/v//+/gUy/v/5DWL9+fvvz28lSwZBOYajcz+Lqvz/sXglQAAx/v//H6gaQsIZ/7EBRkbGT58+AQQQC0T69fffHSdefvr8/c+/f0DD/wDt+PsfyICgX3//rTZOXf4qrzDnLUAAMYFc8qJC9HV8t4N0ooHon39/f4P0/P31988vEAlSDdQz4U70wTcGDL/+AAQQE9CGrS9sFz/2AlpkIcPX6aL4/fcfoD2//jL8+vsfpOEPSE+a3EILgVMMv34BBBDj3+etDCz8/3+/+M/tcOmzSdvhhz/+QJwBdNL/HPm5DoKH3I7NBtopJ8ixq3QrQAAx/v79m/HH2def35edVvn85dsvuNP//f/9B+qHHeZRnbeTrv1031u0GSCAGH/+/MnMzAzyCY7AgQCgLDCU3r59CxBAjN4MDOnlaX+BzgaG/W8w+efPXxD5W07rl4Le72d3/l7e9//fv7/AgMvddR4ggBjdkSIVgn6AyTJFBgMnhhlzGdaAI/s/LDUABBgAJutTUOXJvRkAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFjSURBVHjaYmRQ38wAB3/+gdCvfww//jx8Hy7BwPAPAwEEEAtQWUutDpA0EmZnZmI68vTL338Mf//+FbhQwPznK9Pv3////PkPI79s2gQQQCwQo0W+/nMOFWdlZXww+8vhN9///Pn3596Df78//f/1+//vX/9//QKqZpSVBdoAEEAsQGv+/fv3+9dfBgag4L/v3//8/vsPqAGqFKT6N0QDA1CagQEggFgY/vz5+5fhwo/fNXPu/fn379nHn3/+/vsNNAPJbLgGoFsAAoiF4RdQ2b+/f/4+f/cHaPDvv/+BHgAy2H9/QaiGaACKMjAABBDL36ehDJfy/z94ADSP4TfYf0jOQCYZwU4CCCAWIGYECwENQFGEqhokC3QBAwNAAIE0MIODjAGuCFPbH6CGv8DABvoBIIBAGph+/2GQlAQb85fhD0gnI9hIBggJRH//QhBQMUAAMX5FjUgGbLELlwICgAADAElTZuDmjaewAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIUSURBVHjaYmSYyMDwgwEK/jEw/IGRQPSNgYGHId6NIeEPg6MzVAlAALEwfGGodq0GKf7/D4j+/v/759/fv//+AIGSyJ8Asd8iLH8WLPwdHPzn9+/fmzZtAgggFgYWoOL/T74+BSr9++/v73+///7+y8D8O1bjtynz7xvnfmf2/nr79hdQta+HrPVcBoAAYgE6AGgyUOkfoNl/QarlRH6lKvzh/fZ71uxfu/f++vnzNxvTr/T0306h4ocfMgAEEMj8vwxA1X/+/P7zj+lPsNZvZ67fLx7/zqz//ebNLyDQUf+dUcLFLS164rVJcl0iQACxAD0HdPTvn7+lBP+kq/zh/fJ70fxfW7f//vED6LpfSTG/3SNFfjKwNp4qfPHTiuHLB4AAYgEGEdCLXmp/PPl+vX/+p6jx94uXQHN/K8n8yi5hVtbg2frYtuFk2S9GBiW+/wy//gEEEAuDBEOm5m9Ztl/Tpv7Zuh2o8vefX79iwn+7RQq/+itZcCTp+CvjX8BABrr733+GP38AAojlogfD36d/Epp/v3oFDInf4sK/8ov/iWtJH3xmOftSzNNfIr///f8DQkCXgyIHIIBY9FUZUlP+cHBISkr+trP46xXBzcbxt+9Czrm3ulxc/xXZ///5z/D3L+Pf/8CQZAA6CSCAGGGRzNDYyOAVx9BxjmHtvOsMf4SAcgwQYyGMf/9Acc/DABBgAHXkKRL4rPs9AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFQSURBVHjaYmRo/c8AB//+MfwBkgwg8s8/KPoFI4GIgQEgAIdycgMACAMxUAF6oygqoQ1q45dkzSH5N26XR/8zCEuepggsVEPFkxB+S9bcRwCxMDCBVD/5+h+o9O8/BqDE378Mv/+DpCGKfgERmCHLw8jw4x9AAIFs+AdUBLQWZDZI9a/////8BSuFawBzf/8FuQMggFiALvsLsh2k+g/cbCTVUBLkKgaGDwwAAcTCIHJKhFPh19+fIHf/+/cbpBNI/gO75x+I/RfKluFiY5A6AhBAjH8fMjDI5P///+A/wy8GoFf/A+34hZVkYlJ6f/wUQACxAEOSESwEDEhURSiqwbJ/gKENEEAgDcwgDlAIrgiLNgaGvyD0hwEggEAamP4DdUrCREE6GRl/gyMPQv6BqgYG+z8GgABi/HoTFL///kBJBjgbwmBAcEEcBgaAAAMASIdu6OFHDhsAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGlSURBVHjaYmAgEQAEECMQd3TUA8l///7/+/f3799///79+fMHyPgDAr+BzD8w1p8FC1YDBBDj1/8MrAxV//8//c/wl4Hh7///v0GMf7/BDDD5/xcY/WZklH3zaTtAALGwnWNglAZKAZWC1DH8/wuW/vP/H1jpv18gxr9fDP9/M7D+ZjvOABBALEzGDIxlfxke/fn/5w/DbyD5m6G8fOmdO1HR0QyHDjGUljL8/s3w69f/378Z5X+zHGQACCCWEgYG3z9/P/7+DXT5399AB/8OMjX9e+tWUVFRd2fn4t+///76BUK/f/P/+VPGwAAQQCz9QO/+/fPgz59fv38BPfb792+xY8diYmKsVq48cOhQ98+fQJFfv34BSaXfv18zMAAEEOPqzQy6mlk/vt8HBs6/f7/+/f8NIv8Byd9/oYxf//8CyT+cXEobtp0DCCDGnz8ZmJnT/v27x4AaJjASygAGICOjytu3FwECiOUfOwNT6x+Gv5JAYxj+/GUAevrvb0agR/8CBYEif0CMf39BUv///lvKABBAjF+BfkBCDKhcNCkgAAgwAB4eRo3nku8lAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHNSURBVHjaYoxuvsoAA/+QwJ8/f6bsyfr79evfW7f+//v3l4EBggACiAGoASi96/Tbv//+7jz5Bqhu24lXv3792nL0+ffv3799+/bly5dPYPDhw4eKigqAAGIEaoj3kPj09c9/MABqBhJAxt9//7zXtDB8+vzv69f/37/9+/GDSVjo0eYtAAHE8o8BKM0QYCO89tDrQCB58GWAjciagy8//PvP0tcH1A9xKNP/f0xMzLd27QIIIBaGfwwM//+tPfgKaCpQNdACoOr3//69+vf/Z3j4/x8/QOjnz3+/fzOLigrv2wcQQCxA3zkbC6458BJkycFXQHLmgZfJNsK1214yL10KCQCG//8ZgSQz8+nZswECiOUP2MdAUaDBQMfPOPDy3f9/VZtffv34/5eXF9Ds/79///3z58efPwwSElJHjgAEEOP58+e1tLT+/v0L9u5/iJFwBpwNDDGgZwqKigACiEUkJeVnTs7fCxf+v3377/Pn/9+/AyVBBoPN/vXnz88/f37//fvz7182aWmjkycBAojx0KFDJiYmEHOQbYCzf/78+ePHT7DePz2dnQABxHiXiRHodHhE/ocxvjAwfAKT7xkYvjEwfACTQAAQYABGRX9Ie8/t6AAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABY0lEQVR42qXTT0oDMRiH4TdtbK1DZ2oRpK5aEF2JrjyCR3DnCTyPd/AMLl26cuNCERUXCkVaLUnMzOSPC7W1iDBqIGQR8nx8SX4CEPxjSKD+Za2KRcADTgJJPDt6/kt1sXvYkUDXlzn19b1fHfbXJwBdCSRlYamVmji+q1Z5uU9ZWIBEANuTyeQ8SRJijO+6jwyHmrIMZFmTLGvOA0KgtSZN0x0JCGstrVZrCtzePqN1SYyR0cjQ73dI08YcYK0FEDUAYwwhBEIIOOfRumA41Jye3hNCZDye7X9OYwwA3wCIhBBoNARbWyu8vFiWluSPgARQSuGcm7YwGLS5ufHkuWd1NaHdljjn5lpQSs2Ag+N91jZ65M5WeoWmXOTh6nEKRK0VT+oJ58tq37e+gNYKIErAG/OKu/CEGCoBNVGjcAWAF8AA2AR6QLNCHiKQA4/ApQAyoAskFQP1GSQNjMTHPfw5jW/kSso/ohVRIwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAflJREFUeNpinDRzn5qN3uFDt16+YWBg+Pv339+KGN0rbVP+//2rW5tf0Hfy/2+mr99+yKpyOl3Ydt8njEWIn8f9zj639NC7j78eP//8739GVUUhNUNuhl8//ysKeZrJ/v7z10Zb2PTQTIY1XZO2Xmfad+f7XgkXxuUrVB6cjPVXef78JyMjA8PFuwyX7gAZj97+T2e9o3d4BWNp84K1NzubTjAB3fH0+fv6N3qP/ir9bW6ozNQCijB8/8zw/TuQ7r4/ndvN5mZgkpPXiis3Pv34+ZPh5t23//79Rwehof/9/NDEgMrOXHvJcrllgpoRN8PFOwy/fzP8+gUlgZI/f/5xcPj/69e/37//AUX+/mXRkN555gsOG2xt/5hZQMwF4r9///75++f3nz8nr75gSms82jfvQnT6zqvXPjC8e/srJQHo9P9fvwNtAHmG4f8zZ6dDc3bIyM2LTNlsbtfM9OPHH3FhtqUz3eXX9H+cOy9ZMB2o6t/Pn0DHMPz/b+2wXGTvPlPGFxdcD+mZyjP8+8MUE6sa7a/xo6Pykn1s4zdzIZ6///8zMGpKM2pKAB0jqy4UE7/msKat6Jw5mafrsxNtWZ6/fjvNLW29qv25pQd///n+5+/fxDDVbcc//P/zx/36m5Ub9zL8+7t66yEROcHK7q5bldMBAgwADcRBCuVLfoEAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGmSURBVHjaYvz48SMDGPz7x8DEBCJBTDiFAQACiAUowcb25+/fTYyM/9hYA/4wCiw99fbHz7//GP4D8d+//37/BTL+/wGR/9rajwAEEOPbt2/Z2DYxMR1gYACKWPxnTvv/n/E/w384+AdjMDExXblxHyCAWP79+/Pv33cmpr////9lYLjC+P/PzmvfgIqApoLQ338g40Fu+c/LwVy66B5AALGwsXGwMAf8/PX0/78/HGyZv/6zbr/88fOPP7///f8NdM8fkJPA5D9ZQbbnM+8ABBDj67fvBfn5f/36DbSUlQ1o4b9vP4Fe/odw0j+ow1iYmM5fuQkQQCxFq57EOzB9/PYH7AaQ1X/Bvvz7H+iYf3/+gnwG5AIlBDhZsmbcAwgglsUrHsmK8z959wvmBrhL/sG4f0EB9fe/vDD7z5XXAAKI8fr959LiIkDPIQcIlMPwDyYKCjUWFsYT564BBBAjg/Pmqmx9YDgA9QAD+zckyMHsP+AQBJoNdNg/kAv/by1aDxBAjPcfPv/z7w80GiEshj9gBtD8P3+AFCjGGf6BWUwMDAABBgDMk5SpwCJLewAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGVSURBVHjaYmRgSFy7tkxDQ6Sr68jChRsYGP7s3Fl37corFTURX98iIJeB4RcY/YAwAAKIEajh06dpO3fePXfuxb9//7KzTb9//8vGxvj27feZM8/8+f3v95+/EPL377+bNlUBBBALAwPD69ff7O0V3rz55uqq9OTJJ2EhzsePvwoLc969++73r7+/fv/99esPULWsLD/QHoAAYkllmP9wjvbHxy9E//49v/fP379/7v8CmXnv198ooKrfv//9+v3nF4jB/1vqDMNrgABi/PjxJy8vK9Ce////M4AhLsDIyHju3AOAAGIBuhuiGqSBAbdyoCwj479/fwACiOUfwz+YAF7zgTb8///nDwNAADEGMzAkZTW8v//4358/f8Fu/fMLHCJABHT9b5AgJKQEleRyzm0CCCCWtf4Mwu7P7r17CFby+9efX+CAAQfPn9+//oH0AQ0AhoaK8H+GcwwAAcQCjJDff/9I8kr+Bov++QcxHBb6IHuBwn///v/7999foCcBAoiRwR4WlcgRCiEhsQwKCwQACDAAOjxvXowI8ZUAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAG7SURBVHjaYnx9XpTh3zsGBhYGBoZ/DH8Y/vz994/hHxMjl8o9BiaBf6jgz79/AAHEwvDvk6ByP1A1w/+/DP//g0iGP/8Z2Bj5RRkYOP6jghcvXgAEEMhgEPjzEqj0P0jPn///f/1n5GD6++c/4z+wsr9gkhEIgJYABBALyCEgdTDVDEAGkASqZvr+/c+XT9fu39/w8xerhpoTH58UUANAADEBHcYANgZs9t////78//cbhP6zvHr95fDJRax/GfkZ7l27mv/928U/f/4ABBATw7//YKVg1f9/g9EfEPn3u4w0r69n49cnT+6e4Te13MnF7wa0ASCAWP4BfcvwF6YHYjzQD8z/Gdm/ftj08eUuJT4baUbJ08eOCEnJsjGzAgQQC9BFIA8A1QHd/e8P1BIGFqAIK5eliLzFu7s32Jnfmpi7//739+WLlwABxAIMdbC6P1DHQDzACNTwi5lZ6D/Tf24TDUYmRiYWFg5GVqAfAAKI5Q/Iz38YmEWBrmIEMpj+MPz9ycDIwcjIxMDICAxwTiEhYPSAHA4GAAHEeHc/w78fwKBlALoNiP6ASSCXx+DwPwYR5GiGaAAIMABTlkYuN8jKzQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHTSURBVHjaYmRgOM7A8IeB4R0DA8Pfu/4M/xggCEQAyT8gkruHgeEXFAEEEAtQdXW1IgeH9N9//39J1bKzf////y9QkPH/H2aGP0z/f3/78yci9vfvv39+//u9acImgAACagCBp89+/fv77+/fx///fwHa9P//bzj68/fXzfe/fv/9LcsjC7QBIICYGMBW//3z78+f/2Cz/77/8evX399A8979+PX//8///4FcEAKKADUABBDQBqDB/4Hoz59/DP9/n3j1a9vD30Yiv1kZf+949Mtf4ZeJ8O9ff0CqgZYANQAEENAGkNlA1b9//2f8//vKu98nXv4yEv6lK/Tr2ItfZ9/8ZmSA2gB0BDB0AAIIYgNI9W+gwP/fWvy/EtR+tZ37/ff/rxSN38p8v379+w1xD8RJAAEE0vD7N8NvsADQuWaiv0xEfm249/vDr9/9Fr+YGX5/+gVS/efvn79/QTYABBAoWIHuAZoDJMHB8ovh/y9vud/f/4BUQ0SArv/z7+8fYJD8YQAIIJAGoHskJNiAPmFikmRg4GVg+B2uDLTuDyPDb6AsM9MfZf6/oDD/C9IAEECMDAxbwXH4BCj39mghUAgSu/BoBpLyReDE8A8UYwABBgBPe1r1zq2RDQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGiSURBVHjaYvz7mmHXCwYGJgYPIYZ//xhA4B8I/YMjIO8PmPEHhAACiMVlDcOmz/WcRX/XXuMN0nnHwPD3//+/DAx/GP//YWb4w/T/9///f/7DyC+nNgEEEAvTP4YJv+Kf5P4KKpzIwPABKArW8xsJ/QKj34yMskAbAAKIZY8Hw3/F2QwMjyHqwOQvmKlQpRCSgeE3UANAAAAxAM7/AQAAwXZ2I+Li+fz8APz7/vv8/56eHQkJAv////X1/EpK3fv7/vr6/vv7/x8fB8HBvgKICeSlPyA+UAJIAlXv2fPZ0/OOq+vtbds+bd6sCFQNQUBlQL8BBBALEP/9y/Dnz/9fv/8vmA9SPW3aq1+//gNV9PW9/Pnz767dylaWNyEmAhUDBBCjM4N1dlb+2/tv/wI1/vrz9/ffPxDy95+/QFNBJNABf//8+SuiJFJ6rgoggFi2MRxl/qP97/c9BrAh/8GGQxlwkT+/ge5g/KsSwsAAEEAsQGuYfv9hkJQEygFFgR4H6mQEsf8wQEggAjoajICKAQKI8Ss0ZqGIAZWLJgUEAAEGAH/0WnST1zi/AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIISURBVHjaYtyfXrvjm1bn4m/FnOsEOH7VvveK5b8U4CEWvPIPA8MvBgYIiWAABAAxAM7/AR0HicCvOgAYHPnZ2AHz8v0ZHA0VD7TQANXT7fv6/fz7/vv8/vz7//v8/Pv7/rKylAIAMQDO/wSwDo4I2wsFzbsI8PP99fYGEw/3+gJA9fm93zvw+QX7/Pv6/Pz6+/38+P8cHAwAAPoCADEAzv8EsAI6Yh4nCvEI9PjhAg4TBiEa6dzt1vgK9voA+vr/JVC19PkHAf79/v/u8MJdAAD6AgAxAM7/AuQ+XgMREKjjId0BHOP9EaX5PAMsLOwGFPf8Afr6/vv9+SkhB1Y/N/v9+Pv7/wAA+gKI5depYytUPU7eZHzOw8P099exEzfPy3Lp8zP8+fHt1y8OoCpFCf3/jKw/gZ74A9IAEAAxAM7/AqXhAuX1B/z898vrEMXpFPr6+9nY7aTDAPT4BPr6/P/9+73Tq/wA////+vv7/QAA/AKICYiBLKDtQOr3r9+/fv39+fM/kPz9+w9QQ6mjuCov261b6+rdZP7/A4UsQACxADX8+fMPqAeM/gF1wlQDBf/dus2hI8D779+fa9c5f/0GavgDEEBADUC7/klKcgFJoM4/f0DagJqBLgaS0+dYARl//zL9/fvr71+ghn8AAcTIwJDKwPADFp3IkYocxxD0j4GBCSDAACmtQ9ZuigirAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAH6SURBVHjaYvz48SMDEvj3D0zAKQwAEEAsQHEOxl3M7MaMTKz/f9/9//MCE1/Br48LGBh/sfKn/PmygoFJhpFF9N/f37+/7n3+kgMgAAAxAM7/BAAAAvv++vTviwD/EgcHFgIDFAcA9/v+1QMD1v7+Wv8HQPrwiPr46fX67f0EGObuEwIAMQDO/wT8/P4KDln/+eL1+dr//tsJBgKOgj4GDUz39zrw6exlaaMRE8Xj7/oVCQ8HCnMUFAoCADEAzv8CiIjg/PwA4eU4/gIf+vgG/vz27unr08Qe1sYw4tf3Bv/B9vb6EQs3CQ5px8cV7Oz4AoiFiYHh/r1vT17qaujZAz367W1RfZ/6k+pGwbiY1xP72Vj/vPpeceKYmaOj4J/f34CeBgggJjkFjjdvfgsKsv5n+O87LeTnt1eMjP/+Mvz894fxH/dXZnauRw/93r37wsrK8P8/KJQAAojx7du3/Pz8////Bxr/4ZHH8mtcQUaeT2/t+XT7g6ixAq+QAt+3OW+ZT0pJcQMV3L17GyCAWCBBDtHAKrJMS3ovE6utnMyaXxKPf//T3r83XkHBwtSUE6iAkZERGEIAAQTSAFENJDk5BKw1g4DMf9zrfv58duWKkKzsXyYmHUZGZqAgJGYBAojx+fPnaHH5B2gO2FoIA8QGCoJFgAAgwADodh8TiRYmWwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFsSURBVHjaYvzPgAD/UNlYEUAAmuTYAAAQhAEYqF/zFbe50RZ1cMmS9TLi0pJLRjZohAMTGFUN9HdnHgEE1sDw//+Tp0ClINW/f4NI9d////3+f+b3/1+////+9f/XL6A4o6ws0AaAAGIBm/0fRTVQ2v3Pf97f/4/9Aqv+DdHA8Ps3UANAALEAMSNQNdDGP3+ALvnf8vv/t9//9X/////7f+uv/4K//iciNABNBwggsJP+/IW4kuH3n//1v/8v+wVSDURmv/57//7/CeokoKFA0wECiAnkpL9/wH4CO+DNr/+VQA1A9PN/w6//j36CVIMRxEkAAQR20m+QpSBXgU0CuSTj9/93v/8v//V/xW+48UBD/zAwAAQQSAMzOMiABoBUswCd8ev/M7A669//OX7///Lr/x+gBlCoAJ0DEEAgDUy//zBISoKNAfoepJNRFmQkyJecfxj4/kDCEIiAigECiPErakTiiWMIAAgwAB4ZUlqMMhQQAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHuSURBVHjaTMLRCUARAADA+zWDGYxrCvMYQ5IkvV75dZ0U1SKQ+Z8fh81iMug0rgBiufyU4dKX6id3WFbO+3X57z+9v3////nL8PcP458/zH/+MP3+/f/Pn/8w8sumTQABxMLAwHDt3v+3bx6ERjJNbv/x6fdv6z9/QSog6BeQ/PX/1y8gm1FW9h8DA0AAMQE1/Pv7//Slv0s3/cguY9z89++237+gSkHqfoLIX1A9QA0AAQSyIcr3rzj/n3cf/ixa/ye/miG15vekP79//f395++vX39+ARm//4JI+b+/9zIwAAQQSMOPH387VvwuTflz9OyfHz9+z2/78/c3479/DP//AUmmf/8Y//9j/vf3LysX8+V1DAABBNLw+Pkfb4c/797/Mtb+kxDIGJb349ev30A7fv3+DSQgJJBQVPxy7AQDQACBNOw7/vv+vV8mOkDVDDGTvvwM+fXTBeiM37/+gb38F0T++f/nJ/sfhkMMAAEE0vDn9x9j7d9As6Mnff3l8OuH5a/fP8Cq/wFJkPf//Pv95x8wpP8yfGEACCCQBi2VP0GucqWLv0kGC/zWBpn9mw1kJFADkPzzDxjMf/8CPfH/L8MvBoAAYmFkYDDmnCelz8Bgy8AAJI8DgxloKQNQDsSAsIGIAUxyMAAEGAAkxVGbT0qdUQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIeSURBVHjaYnz+/DkDEvj3j+Hf758MzMxg9r////8DyZ9/f7MwMP0DA4AAYgFKiEuI///P8PX2re8Hdn65/Zg/IkTY0BSo9NmkLg5VTVZBIQZpGS5JaaDWe/fvAwQQSAMjA+PLvTv+vH717uxZ3nffmN+8Aaq+GenH8PbH+1/b//z+pXXgwIPcROH0gj+sHAABxATU8Pfvnz8MDNIRseIpWV/+/uV1cH6/fePPNz8YxHm4fv9UWLb0w9Ejry9fYhERBToJIIBAGpiYmP8uWghy7p5d7379+nLjyrfz55j//WJ9/OKfkw2jpNTTgixDn3w2UXGgBoAAADEAzv8Cx+q34/TeEwUV6vnq687JEgoG7Xd19L/ACRIJ/wAB/8/O9HdvFyQqoAOt6fno1erHAgAxAM7/AQmDAIxGeur14lCM7RgBBvgM/gTq+QL8/u0H+PMK/CfW9Aj782JvA+kX/ykJIpiJvQIAMQDO/wL6/AD+//v8/fvPRQTTH/oV4/3QJfiaUPYk5v+uPvZag/uHUgB3mQMG+vvx/e8A/gACADEAzv8C/foA/P78+/36rC7y5Ar3hlvtskj/4h79yBf0U6/8BPX5xjH91hr29wL8B/4IAPwAAogFiIGhJMwlsXia8C3Znw/U/ov+++2/6Ncbje8bPZkNHn9LXsx4UOe7AgfDf6D5XxgAAoiRIR8YpQwMv8DoDwbjH4z7D0wyMAAEGADW2hsQaHrpugAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAG8SURBVHjaYmRgmMrAwPD/fxaQ3MDI+I+BQcnT88H27X8YGDAREwMDQACxANVVV9uB9fzXKy//8/evgLk5l5rq/1+///358+/37/9//vz//fsvmL1j0yaAAAJpgKgGkt8fPfrz+ze3isqP+w/+/vwJVPH31+8/v38x/PoF1MMhKwtUAxBAIA3//jFAtf3+/e/vXxACMn79ZuLlUaqv59TS+vHw4Y3UFKAg0FUAAQR0FUgBxJJ/v/8wMTEBGX9//Pjz65d8be2dsrJ3u3bdSE6WKSr+CzSFgQEggFguOq+TMBZ7OuPo/z9/+R0d/v/99+fr17+/fgGluXR0pLKz75aVSaSnC7i4POjpAdoAEEAs9/bu59TR+/7gwb/fv4A2gBwDZAB9/OsX0CWPe3okUlNfLFjAbWDAAHYSQACxADHYxb9AYQIkIezfv4HSN5KSpEtKBF1duY2MbqSns/HyAhUDBBBIw/8/EIN/Q1WDNQBd9fvJkxvZ2UDu/z+/Gf78ZVFRASoGCCCWXyAb/rBJSoKC6A/QBzCd4OAHWQtk/P0LQT8YGAACiHEpA8M3pLj8h8T+BRP5B2NwMDAABBgAlkE9cYJ03a8AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFuSURBVHjaYmRgsGZAgH8MDL9g5I+fDHf/gTnICCCAWICqqqtLFJVETEzk9+y+bmQke/bs41ePXv3984/5zxGm37////nzH0Z+2bQJIIBYwAb/l5cTnjnj0K9ffwUEuI4du8P2++fv33///b77/9fv/79//f/1C6iaUVYWaANAADEB7fn3j2H//psfP/7w8NC6evUZUPbX7z9AzWB1P0HkL6geoAaAAAJp+PuX6d69NyHRFh9+/L9169Xv3wy/f/35DTQbqOjnL2QNQMcABBDQSb9Y/vxg+/3j1K6Ld2+/YP3zl+HXH6ANQCdBFCFU//kDtAEggFj+Mpxn+Hv8/58H/2//YvgN9h/I0b8RqmEkI9hJAAHEAsSMYCGgASiKUFWDZP/8+cPAABBAIA3M4CBjgCvC1PYHqOEvw9+/QD8ABBBIA9PvPwySkmBj/jL8AelkBBvJACGB6O9fCAIqBgggxq+oEcmAEbXIUkAAEGAAb9NdEO8MLm8AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEvSURBVHjaYnzPgAD/YCQyA47+gEmAAGIBSnC2VgPJ////Mfz9x/Dv7/8/fxn+/vkPRH+A6DeQZPjz+99vEPvFkk0AAcQCNuv/v+dPGf7+/Q9Ef34z/P4LVvf7/28w+evXv9+/gGwmaVmgDQABxCLQ2/vf3p7hyxegFf//AW34ByRBOv/+A/JBDLCdQEFGHh6hbywAAcT49etXTk5OsJP+M4AhLsDIyPjo0SOAAGL59+8fRDVIAwNu5UBZRkagYoAAAmmACeA1H2gDyMn/AAKIZcKEPhcXt8+fP//9+xfIh5NwAFQKEeTl5e3r6wMIIEagM/Ly8u7fv/8bDH79+oVE/QaSf4AIDJSUlE6cOAEQQKBgBYpISEj8hkj8BkMgDeX+BhoO0QDxLUAAkYwAAgwAVjNhonoORPsAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHjSURBVHjaJIZBCgAwCMNU/P9ve5ER1rkQQlJSfMA672aoCtd0+1kOXAEokmMTAEAYCqIRhMB3JvcvXCR2WSCe2lzxrr8v6ZW9bS0bg9bMnaqP55DJnEhARFwBxAIxHchhEBFhcHH5D+QwMgD1/P/77z8zE4j89es/GxtQJyMjI9ASgABigar+///jly9/GBh4ubnPnHn24f2vf/+B6v/Y28p/AjrsyxcBAQEmsMMAAghqw7379z+8ewc0WkVdY97cuy9f/mBg+v/nxx8zE/Fbly/8/v2Ph59PT0//z58/AAHEAvHmt69fVVVV2TjYf/z4BeRM6DYHOqwwcz9QVlNb5/9/xsuXrwAdAuQCBBBIA5AF1Hrt2lUDIyNmJqbKn1N+Z7X9//O7k5mZ+b/DX2bms8dPMjKzQDQABBATxA86urr/GRh///7z5+cP5l/fWBhAiPnXp18/fvz4/vPnr98WlhYQxwMEENRJQBuYmZhZWFh+MzJyJBT+f/3m76/f/9hYGJgZOdjY2Tk4/vz+DZQFKgMIIMa3b9/y8fEBLXn37t3/f/8FBAWA1vwFu5ORgQHowtevXwNNFBYWBobS3bt3AQKIEcj/BwN//vz68+ffH3AEAw0DWg10EtBgJhaoQ4AAIMAAV00kxNUSQrIAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIUSURBVHjaYmBoFWZo5ffeX37z4unP6up/GRgg6DcDw08Ghu8MDF8ZGD4zMHxkYHjPwPCWgQEggBgbDzP8Yp3C8O+PuJB0kJit6N4jLEePMfz9/f/PH4Y/f/7/BjHg5JdNmwACiMXoBoNZ+OfaM18ePnx56sXlcodE1W9fWI6d/v/gHkjdr9//f//6/+sXkM0oK/uPgQEgAAAxAM7/AQAAAMnBfiEn6oPXCuf4BP3993MxaCQGDxLe5v/19f/+/v/+/f/9/v/+/gEJCvGrqwIIpKGsrExH44WDLcPEB5xP/7C++/Xz738GDmaOv//+/P4LQSA3yfCIb5g0ESCAWIAa/vz5u3Hr19fvmcv8vnfe53j9j+vHn2+fP7/49ff3r7+/gKp//fsN1Mb+9yfDCwaAAAJp+Pv3j5sTk7P9v9kP2B78ZP3x5+uf//+4uIXZ/v4Dmf33zx+ghn9/eLhEGHgYAAIIpMHfnVFDl7HjJvelzyy/fn2dbFPPzcT95i73ty9///4F++If0Bf/eLhZZNTSAAKIZX4zg7oZS+5Jvjdf/zCw/i42Sdi9nHXz2vcvXj8DGgsOpH9AK4BIRYXz4sVdAAHE8s+LoeYiNxcTs4W8aJiU/455nGfOfeHmY5Dn4gS54w8wAv4B7fn7F0gCXfMPIIAYGTKBvmYQt7CuE5iQHfyKAegvhn9g9AvG+ANGDGCSDSDAAOBCLl8bj6ZDAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABm0lEQVR42qWTTW4TQRCFv+rp2AJLJLKIBAuQgoI4CzuuwgVYcIFchVW4QVZcIIIFAYkk2B477m7PT3dPsRiHOGIzCiW1WiqpX733qp8Awn+UBYqdeyiYAhlIFpiUJx9XD5k+ff/hwALT1LY8efvuDvu2DJjHShek7+/wW3/+BDC1wCTWFdl72vOv2Gcd+UbQRpCRYg+VtBDoBM09yOjVa2JdAUwsULTB04Ul9oVjdJzIpaH9bshzQ1oKo5cZBOJPAwXk1ZI2eIDCAlJ5T3u1oDi4QZ5GJArt5Ritexn1t62yrTwp51TeA4gF2DhHnF2TqxX5VMEoaWHRBJqE0VFGgHjRM8AUbJz7u0aCW5PKa/KPFVoLWEWK3jOzr7QX/fS8FhDQnAlufQfgnaOZXdGF0L/S/shYeXScqL7s0UWQYrucpsbvMvDOEWe/6Zr6n103pyDmfs+EcA9Ag/c05RxNcdAHErtH6E1UC+RNVXH2a4ZqNwxADDm2AFmAI+AN8BwYD8iDAg1wCZwLsA9MgcnAQN0GKQClbH14cBr/AJw40XwovHzfAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGGSURBVHjaYmRuZGaAgb///jL8Y2D4A0ZAxi8w4xcKAyCAWIDqJnlOApL/////+//vv///gACoE8gGkhIfPvp8+fD7369ff/9w//qj2bcSIIBYIGa/+voKpPrfvz///vz9++fP/78g6t/vqyz/D3H96Lz3iPXPrwlq+u+lGAACiAVo9f9//8FGAg3+8wekGkT+/fv397/frL/+/P77J1dSFCgiwQhyEkAAsYCUMoAdADLyDxT9/f3nH1DT797+a1wffzj9+vXm3++F6er1RxkAAghkA9ApCNV//wANBtnzD2g20PG///z6BUL/fgPtBwYEQACxAL0PZIEUQdwDVgfX9u/3L6CHfwMRw2+gv4AaAAIIrAHkRahLfsOUgrT9+/P/1y8g+g0EQHVABQwMAAEE0gBSjaQOohRCAm0AafgD1PCXAaSeASCAWIAeB0qIcIvALPkD9zowPFjkPjMJ/pT6/1cAEkUMDAABxMiQjBqj8HgFixw9yyDEwKAJjqvzDAx8DAwAAQYAza93S9217P4AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHQSURBVHjaYrz+8LpmmCaDHwPDHwaGf2D0B8b+BWb8QmKwMQAEEOPXz1/ZOdlnbm+S1fv99/+/f///gtEfIPr7D4iAgmDy358//38XHtwEEECMX79+5WJl/8v0f+/udFfX7/8ZfzMw/P3//zcS+gVGvxkZZT992g4QQCwMDAz/mTu+ruRxDpu5rDrJ6d8PJsZf///8+ff79/8/QMavf39+//8NIlnEf1+fyAAQQCyfJlUx+Svwhp/4MOudp4zM+pN3Vb9//fv7N0jD719/gegXkA1k/Ob+8nsZAwNAADG+PbqX5e55nqjj////+bYvitXOz9Pb+/fPn79///4FBFAKRCsqKh49ehQggFhYtEz+XjoAUn2In8nKe1WC/2TRH2Abfv0Dk///gNl/fnOI/97DwAAQQCz/GP7xpdb9AwaP/vtFBVHuzF9YgH749/sfw+//jL/+Mf7+B+Qy/v7P9IeN7Y8KAwNAAIE8zcDA+PvX9207k5Mnvv/PAg6Tf5DAgYUSw2+G/38ZGf8atTIABBDj9+/ff/z+OXt7kYQ2LMiBkQAif//59+ffX3icAMP6b9Wa8wABxPjw+UN5KXmGOAaGL7BI/QWLbGQ2JO55GAACDADqXViU/+zCZAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAHZSURBVHjapNPLbhMxFMbxv+2ZlMk0jRpCqASRuFVCAiHgeXgT1jwJLPoMgHgCBIuKInEJjUTaiFzIdcb2eGwWDSWLbkLPxpvz/eTF+UQIgcuMACrA9urdZCywiID6i1cffl208fdzQlwsPH/2tBUBaekDd/ZqAHjA+4CSAinPkqUPeB+QUiCFgBDo9OcAaQQoV3oy45hlBZVYsddIGM0MsZJUYoktPLVqxGCq0aZkpxrjSg+gJIAtHEvtmGaW++0613cTbFGy1AW5cdxsVmnWEx7c2mWWFyy1wxYOAAlgjGGRFfgyUEsrfPoxoaIUD283eLLfxAU47IxJr8QEH5hnBcaYf0CeG05/5/SGGf1RRq0a8+hug25/QftaSm+wZDjVjKaa01FGf5yT52uA1hrvA9aVDGeadivlqDvm52DJPHdY53l87yrjuSEzDh8CWus1wGhK7xEIDjtjtpOYSqyYZYaXr7+wk0Tst+t8/DpEAKX3aLMGmFwTAkRKMJxoDt59RwCtRpVkK0IIwcHbb5wMMyIlCeEsAxABWGtXgCRSksEk5837nDgSBOBzd4IUkGxF5wdmrT0HrPeOk+Oj/6mCFUAduAHUNgzPgZ4A1KpIakOgBKy4bJ3/DABxU/n8hyJINwAAAABJRU5ErkJggg==\"","\r\nlet _store = null;\r\n\r\nexport const setStore = function(store)\r\n{\r\n _store = store;\r\n}\r\n\r\nexport const getStore = function(store)\r\n{\r\n return _store;\r\n}\r\n\r\n","import i18n from \"i18next\";\r\nimport trans from \"../../translations.json\" \r\nimport {getStore} from '../storeContainer'\r\nimport { initReactI18next } from 'react-i18next';\r\n\r\nexport function getLocalStoreLang()\r\n{\r\n return window.localStorage?.getItem(\"superweb-lang\");\r\n}\r\n\r\nexport function setLocalStoreLang(langCode)\r\n{\r\n if (window.localStorage)\r\n {\r\n window.localStorage.setItem(\"superweb-lang\",langCode);\r\n }\r\n}\r\n\r\nexport default function Init()\r\n{\r\n let store = getStore();\r\ni18n\r\n .use(initReactI18next) // passes i18n down to react-i18next\r\n .init({\r\n lng:getLocalStoreLang(),\r\n resources: trans,\r\n fallbackLng: \"en\",\r\n react:{\r\n transSupportBasicHtmlNodes: true,\r\n },\r\n interpolation: {\r\n escapeValue: false\r\n }\r\n })\r\n\r\n function select(state) {\r\n return state.brand.languageCode;\r\n }\r\n \r\n let currentValue = i18n.language;\r\n store.subscribe(()=>{\r\n\r\n let previousValue = currentValue\r\n currentValue = select(store.getState())\r\n if (previousValue !== currentValue) {\r\n i18n.changeLanguage(currentValue);\r\n }});\r\n}","export function addOrUpdateState(state, override) {\r\n if (state === override) {\r\n return undefined;\r\n }\r\n else if (typeof override === 'object') {\r\n if (state === null || state === undefined) {\r\n return override;\r\n }\r\n if (typeof state !== 'object') {\r\n return override;\r\n }\r\n\r\n if (override === null || override === undefined)\r\n {\r\n return override;\r\n }\r\n \r\n let hasObjectChanged = false;\r\n let returnObject = state;\r\n let keys = Object.keys(override);\r\n for (let i = 0; i < keys.length; i++) {\r\n let overridedeepState = addOrUpdateState(state[keys[i]], override[keys[i]]);\r\n if (overridedeepState !== undefined) {\r\n if (!hasObjectChanged) {\r\n hasObjectChanged = true;\r\n if (Array.isArray(override)) {\r\n returnObject = Object.assign([], state);\r\n }\r\n else {\r\n returnObject = Object.assign({}, state);\r\n }\r\n }\r\n returnObject[keys[i]] = overridedeepState;\r\n }\r\n }\r\n return returnObject;\r\n }\r\n else {\r\n return override;\r\n }\r\n}\r\n","export function replaceIfChanged(container, property, override) {\r\n if (container)\r\n {\r\n let state = container[property];\r\n if (isChanged(state,override))\r\n {\r\n container[property] = override;\r\n }\r\n }\r\n}\r\n\r\nfunction isChanged(state, override) {\r\n if (state === override) {\r\n return false;\r\n }\r\n else if (typeof override === 'object' && override !== null && override !== undefined) {\r\n if (state === null || state === undefined) {\r\n return true;\r\n }\r\n if (typeof state !== 'object' || state === null || state === undefined) {\r\n return true;\r\n }\r\n\r\n let keys = Object.keys(override);\r\n for (let i = 0; i < keys.length; i++) {\r\n if (isChanged(state[keys[i]], override[keys[i]]))\r\n {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n}\r\n\r\nexport function overrideState(state, override) {\r\n if (state === override) {\r\n return state;\r\n }\r\n else if (typeof override === 'object' && override !== null && override !== undefined) {\r\n if (state === null || state === undefined) {\r\n return override;\r\n }\r\n if (typeof state !== 'object' || state === null || state === undefined) {\r\n return override;\r\n }\r\n let returnObject = override;\r\n let hasAnyDiff = false;\r\n let keys = Object.keys(override);\r\n for (let i = 0; i < keys.length; i++) {\r\n let overridedeepState = overrideState(state[keys[i]], override[keys[i]]);\r\n if (overridedeepState !== state[keys[i]]) {\r\n hasAnyDiff = true;\r\n }\r\n returnObject[keys[i]] = overridedeepState;\r\n }\r\n if (!hasAnyDiff) {\r\n return state;\r\n }\r\n else {\r\n return returnObject;\r\n }\r\n }\r\n else {\r\n return override;\r\n }\r\n}\r\n","/* eslint-disable import/prefer-default-export */\r\n/* eslint-disable indent */\r\nimport { getUserLocales } from 'get-user-locale';\r\nimport produce from 'immer';\r\n\r\nimport i18n from 'i18next';\r\nimport url from 'url-parameters';\r\nimport { setLocalStoreLang, getLocalStoreLang } from '../storeListener/translationsInit';\r\nimport { addOrUpdateState } from '../StoreUtils/addOrUpdateState';\r\nimport { replaceIfChanged,overrideState } from '../StoreUtils/overrideState';\r\n\r\nconst initState = {\r\n languages: {},\r\n languagesDisplayOrder: [],\r\n languageCode: getLocalStoreLang() ?? 'en',\r\n mobile: { isEnabled: false },\r\n enableChangeLanguage: false,\r\n language: {\r\n userLang: '',\r\n browserLang: '',\r\n defaultLang: '',\r\n urlLang: '',\r\n cookieLang: ''\r\n },\r\n theme: {\r\n MainColor: { ActiveText: '#e74e0f', InactiveText: '#a4b0e4', ScrollColor: '#2a3469' },\r\n SubHeader: { Text: '#ffffff47' },\r\n Text: { GeneralColor: 'white', SystemColor: 'white', Link: 'white' },\r\n Buttons: { TextColor: '#ffffff' },\r\n Trade: { ButtonFirst: '#3ab6a1', ButtonSecond: '#44e680', BoxShadow: 'rgba(109,203,7,0.4)' },\r\n Deposit: { ButtonFirst: '#E6B11C', ButtonSecond: '#AD330B' },\r\n Social: { ChartColor: 'white', CopyBackground: '#008000', CopyTextColor: 'white' },\r\n Profit: { Positive: '#66C3A7', Negative: '#DB6161', Neutral: 'white' },\r\n Tick: {\r\n ChartUp: '#4B8907', ChartDown: '#D0021B', TickUp: 'green', TickDown: 'red', TickNeutral: '#fff'\r\n },\r\n Execution: {\r\n BuyBackground: '#1CB5EE', SellBackground: 'lightcoral', SuccessColor: 'white', FailedColor: 'white'\r\n }\r\n },\r\n themeSettings: {\r\n HideLogo: false,\r\n AllowChangeTheme: false,\r\n ActiveTheme: 'dark',\r\n ToggleThemeCommand: null,\r\n DarkTheme: {\r\n LogoIcon: \"\",\r\n MainColor: { ActiveText: '#e74e0f', InactiveText: '#a4b0e4', ScrollColor: '#345480' },\r\n SubHeader: { Text: '#ffffff47' },\r\n Text: { GeneralColor: 'white', SystemColor: 'white', Link: 'white' },\r\n Buttons: { TextColor: '#ffffff' },\r\n Trade: { ButtonFirst: '#3ab6a1', ButtonSecond: '#44e680' },\r\n Deposit: { ButtonFirst: '#E6B11C', ButtonSecond: '#AD330B' },\r\n Social: { ChartColor: 'white', CopyBackground: '#008000', CopyTextColor: 'white' },\r\n Profit: { Positive: 'green', Negative: 'red', Neutral: 'white' },\r\n Tick: {\r\n ChartUp: '#4B8907', ChartDown: '#D0021B', TickUp: 'green', TickDown: 'red', TickNeutral: '#fff'\r\n },\r\n Execution: {\r\n BuyBackground: '#1CB5EE', SellBackground: 'lightcoral', SuccessColor: 'white', FailedColor: 'white'\r\n }\r\n },\r\n LightTheme: {\r\n LogoIcon: \"\",\r\n MainColor: { ActiveText: '#1CB5EE', InactiveText: '#283B5560', ScrollColor: '#345480' },\r\n SubHeader: { Text: '#A4A8BA' },\r\n Text: { GeneralColor: '#283B55', SystemColor: '#283B55', Link: 'gray' },\r\n Buttons: { TextColor: '#283B55' },\r\n Trade: { ButtonFirst: '#3ab6a1', ButtonSecond: '#44e680' },\r\n Deposit: { ButtonFirst: '#E6B11C', ButtonSecond: '#AD330B' },\r\n Social: { ChartColor: 'white', CopyBackground: '#008000', CopyTextColor: 'white' },\r\n Profit: { Positive: '#04B66B', Negative: '#CE4B4B', Neutral: '#283B55' },\r\n Tick: {\r\n ChartUp: '#04B66B', ChartDown: '#CE4B4B', TickUp: '#04B66B', TickDown: '#CE4B4B', TickNeutral: '#283B55'\r\n },\r\n Execution: {\r\n BuyBackground: '#1CB5EE', SellBackground: 'lightcoral', SuccessColor: 'white', FailedColor: 'white'\r\n }\r\n }\r\n },\r\n generalInfo: {\r\n favIcon: '',\r\n logoLogin: '',\r\n logoMain: '',\r\n logoMainUrl:'',\r\n windowTitle: ''\r\n },\r\n guestModeSettings: {\r\n loginAsGuest: null,\r\n isEnabled: false\r\n }\r\n };\r\n\r\nfunction isSupportedLang(state, browserLang) {\r\n return state.languages[browserLang] !== undefined;\r\n}\r\n\r\nfunction getBrowserLang() {\r\n const userLang = getUserLocales();\r\n\r\n if (userLang) {\r\n for (let i = 0; i < userLang.length; i++) {\r\n if (i18n.getResourceBundle(userLang[i].toLowerCase())) {\r\n return userLang[i].toLowerCase();\r\n }\r\n if (userLang[i].indexOf('-') > 0) {\r\n const baseLang = userLang[i].substring(0, userLang[i].indexOf('-')).toLowerCase();\r\n if (i18n.getResourceBundle(baseLang)) {\r\n return baseLang;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction getLanguageCode(state){\r\n if (isSupportedLang(state, state.language.urlLang)) {\r\n return state.language.urlLang;\r\n } else if (state.language.userLang && isSupportedLang(state, state.language.userLang)) {\r\n return state.language.userLang;\r\n } else if (isSupportedLang(state, state.language.cookieLang)) {\r\n return state.language.cookieLang;\r\n } else if (isSupportedLang(state, state.language.browserLang)) {\r\n return state.language.browserLang;\r\n } else if (isSupportedLang(state, state.language.defaultLang)) {\r\n return state.language.defaultLang;\r\n }\r\n\r\n return 'en';\r\n}\r\n\r\nfunction setThemeSettings(state, themeData,globalState) {\r\n if(themeData?.DarkTheme){\r\n replaceIfChanged(state.themeSettings,'DarkTheme', themeData.DarkTheme);\r\n }\r\n\r\n if(themeData?.LightTheme){\r\n replaceIfChanged(state.themeSettings,'LightTheme', themeData.LightTheme);\r\n }\r\n\r\n replaceIfChanged(state.themeSettings,'ToggleThemeCommand', themeData.ToggleThemeCommand);\r\n if (globalState.urlParameters.theme === 'dark' || globalState.urlParameters.theme === 'light')\r\n {\r\n state.themeSettings.ActiveTheme = globalState.urlParameters.theme;\r\n }\r\n else\r\n {\r\n state.themeSettings.ActiveTheme = themeData.ActiveTheme;\r\n }\r\n\r\n state.themeSettings.AllowChangeTheme = themeData.AllowChangeTheme; \r\n state.themeSettings.HideLogo = themeData.HideLogo;\r\n replaceIfChanged(state,'theme', state.themeSettings.ActiveTheme === 'dark' ? state.themeSettings.DarkTheme:state.themeSettings.LightTheme);\r\n}\r\n\r\nexport const brandReducer = function brandReducer(state = initState, action, globalState) {\r\n switch (action.type) {\r\n case 'login-success':\r\n {\r\n return produce(state,draf=>{\r\n if(action.payload.themeData){\r\n setThemeSettings(draf, action.payload.themeData,globalState);\r\n }\r\n\r\n if (action.payload.featuresData.mobile)\r\n {\r\n replaceIfChanged(draf,'mobile', action.payload.featuresData.mobile);\r\n }\r\n\r\n draf.language.userLang = action.payload.generalData.userDetails.userLang;\r\n draf.languageCode = getLanguageCode(draf);\r\n setLocalStoreLang(draf.languageCode);\r\n return draf;\r\n });\r\n }\r\n case 'init-brand+login': \r\n case 'init-brand':\r\n const o = { ...state };\r\n const lang = action.payload.brand.languages;\r\n if (action.payload.brand.generalInfo != null) {\r\n o.generalInfo = action.payload.brand.generalInfo;\r\n }\r\n\r\n const langobj = {};\r\n const langOrder = [];\r\n lang.forEach((l) => {\r\n if (i18n.getResourceBundle(l.code)) {\r\n l.displayName = i18n.getFixedT(l.code, '')('Branding.Language.Name');\r\n if (l.code) {\r\n langobj[l.code] = l;\r\n langOrder.push(l.code);\r\n }\r\n }\r\n });\r\n o.languages = langobj;\r\n o.enableChangeLanguage = action.payload.brand.enableChangeLanguage;\r\n o.languagesDisplayOrder = langOrder;\r\n o.guestModeSettings = action.payload.brand.guestModeSettings;\r\n\r\n o.language.userLang = action.payload.brand.userLang;\r\n o.language.browserLang = getBrowserLang();\r\n o.language.defaultLang = action.payload.brand.defaultLang;\r\n o.language.urlLang = globalState?.urlParameters?.lang;\r\n o.language.cookieLang = getLocalStoreLang();\r\n o.languageCode = getLanguageCode(o);\r\n setLocalStoreLang(o.languageCode);\r\n\r\n if (action.payload.loginTradingData?.themeData) {\r\n setThemeSettings(o, action.payload.loginTradingData.themeData,globalState);\r\n }\r\n\r\n if (action.payload.brand.mobile)\r\n {\r\n replaceIfChanged(o,'mobile',action.payload.brand.mobile)\r\n }\r\n\r\n return overrideState(state, o);\r\n case 'brand.language.change':\r\n const o2 = addOrUpdateState(state, action.payload);\r\n setLocalStoreLang(o2.languageCode);\r\n return o2;\r\n\r\n case 'brand.theme.change':\r\n return produce(state, draf=> {\r\n if (action.storeData.ActiveTheme === 'dark') {\r\n draf.themeSettings.ActiveTheme = 'light';\r\n replaceIfChanged(draf,'theme',draf.themeSettings?.LightTheme);\r\n } else {\r\n draf.themeSettings.ActiveTheme = 'dark';\r\n replaceIfChanged(draf,'theme',draf.themeSettings?.DarkTheme);\r\n }\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\n","import {overrideState} from '../StoreUtils/overrideState'\r\nimport url from 'url-parameters';\r\n\r\nfunction getUrlParameters(params)\r\n{\r\n if (params)\r\n {\r\n for(let paramKey in params){\r\n let currValue = params[paramKey];\r\n if (typeof currValue === 'string' || currValue instanceof String)\r\n {\r\n try\r\n {\r\n params[paramKey] = decodeURIComponent(currValue);\r\n }\r\n catch (e)\r\n {\r\n console.error(e);\r\n }\r\n }\r\n }\r\n }\r\n return params;\r\n}\r\n\r\nexport function publishUrlParameters(store)\r\n{\r\n let params = getUrlParameters(url.getParams());\r\n \r\n store.dispatch({\r\n type:\"init-url-parameters\",\r\n payload: params,\r\n })\r\n}\r\n\r\nconst initState = getUrlParameters(url.getParams());\r\n\r\nexport const urlParametersReducer = function reducer(state = initState, action){\r\n switch (action.type) {\r\n case \"init-url-parameters\":\r\n return overrideState(state,action.payload ?? {});\r\n default:\r\n break;\r\n }\r\n\r\n return state;\r\n}","import produce from \"immer\"\r\nimport Cookies from \"js-cookie\";\r\n\r\nconst initState = {\r\n environments:{},\r\n environmentsDisplayOrder:[],\r\n lastRemeberMeCMD:null,\r\n};\r\n\r\nexport const environmentsReducer = function environmentsReducer(state = initState, action,globalState){\r\n switch (action.type) {\r\n case \"login-logout-rememberme\":\r\n {\r\n updateLocalStorageLogout({userId:action.staticData.userId,envId:action.staticData.envId})\r\n return produce(state,draf=>{\r\n updateEnvirmentFromLocalStorage(draf);\r\n });\r\n }\r\n case \"login-logout\":\r\n {\r\n Cookies.remove('superweb-session-id',{ domain: `${window.location.host}` } );\r\n Cookies.remove('superweb-session-id');\r\n window.sessionStorage.removeItem('superweb-session');\r\n window.localStorage.removeItem('superweb-rememberme-latest');\r\n\r\n updateLocalStorageLogout({userId:action.staticData.userId,envId:action.staticData.envId})\r\n return produce(state,draf=>{\r\n updateEnvirmentFromLocalStorage(draf);\r\n });\r\n }\r\n case \"init-brand\":\r\n {\r\n let o = Object.assign({},state);\r\n let environments = action.payload.environments ?? [];\r\n let sortedEnvironments = environments.environments.sort(compareDisplayOrder);\r\n o.environments = {};\r\n o.environmentsDisplayOrder = [];\r\n\r\n for(let env of sortedEnvironments)\r\n {\r\n o.environments[env.id] = {\r\n id: env.id,\r\n displayName: env.displayName,\r\n translatedName: env.translatedName,\r\n loginWithTPId: env.loginWithTPId,\r\n prevLogins:[]\r\n }\r\n\r\n o.environmentsDisplayOrder.push(env.id);\r\n }\r\n\r\n updateEnvirmentFromLocalStorage(o);\r\n return o;\r\n }\r\n case \"init-brand+login\":\r\n {\r\n let o = Object.assign({},state);\r\n let environments = action.payload.environments ?? [];\r\n let sortedEnvironments = environments.environments.sort(compareDisplayOrder);\r\n o.environments = {};\r\n o.environmentsDisplayOrder = [];\r\n\r\n for(let env of sortedEnvironments)\r\n {\r\n o.environments[env.id] = {\r\n id: env.id,\r\n displayName: env.displayName,\r\n translatedName: env.translatedName,\r\n loginWithTPId: env.loginWithTPId,\r\n prevLogins:[]\r\n }\r\n\r\n o.environmentsDisplayOrder.push(env.id);\r\n }\r\n\r\n updateLocalStorageWithLogin({\r\n rememberMeToken:action.payload.loginTradingData.generalData.rememberMe,\r\n userId:action.payload.loginTradingData.generalData.userId,\r\n tpId:action.payload.loginTradingData.generalData.tpUserId,\r\n userName:action.payload.loginTradingData.generalData.userDetails.name,\r\n envId:action.payload.loginTradingData.generalData.envId,\r\n avatarColor:action.payload.loginTradingData.generalData.avatarColor});\r\n\r\n updateEnvirmentFromLocalStorage(o);\r\n\r\n return o;\r\n }\r\n case \"login-success\":\r\n {\r\n updateLocalStorageWithLogin({\r\n rememberMeToken:action.payload.generalData.rememberMe,\r\n userId:action.payload.generalData.userId,\r\n tpId:action.payload.generalData.tpUserId,\r\n userName:action.payload.generalData.userDetails.name,\r\n envId:action.payload.generalData.envId,\r\n avatarColor:action.payload.generalData.avatarColor});\r\n\r\n return produce(state,draf=>{\r\n updateEnvirmentFromLocalStorage(draf);\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nfunction compareDisplayOrder( a, b ) {\r\n if(a.displayOrder && b.displayOrder){\r\n return a.displayOrder - b.displayOrder;\r\n }\r\n return 0;\r\n}\r\n\r\n\r\nfunction updateLocalStorageLogout(loginData)\r\n{\r\n let {userId,envId} = loginData;\r\n let lastRememberMe = window.localStorage.getItem('superweb-rememberme-latest');\r\n if (lastRememberMe)\r\n {\r\n try\r\n {\r\n lastRememberMe = JSON.parse(lastRememberMe)\r\n if (lastRememberMe.userId === userId)\r\n {\r\n window.localStorage.removeItem('superweb-rememberme-latest');\r\n }\r\n }\r\n catch(ex)\r\n {\r\n console.log(ex);\r\n window.localStorage.removeItem('superweb-rememberme-latest');\r\n }\r\n }\r\n\r\n let loginLocalStorage = window.localStorage.getItem('superweb-env-logins');\r\n\r\n if (loginLocalStorage)\r\n {\r\n try{\r\n loginLocalStorage = JSON.parse(loginLocalStorage);\r\n let env = loginLocalStorage.environments[envId]\r\n let userLogin = env[userId];\r\n if (userLogin)\r\n {\r\n userLogin.rememberMe = null;\r\n window.localStorage.setItem('superweb-env-logins',JSON.stringify(loginLocalStorage));\r\n }\r\n }\r\n catch(ex)\r\n {\r\n console.log(ex);\r\n }\r\n }\r\n}\r\n\r\nfunction updateLocalStorageWithLogin(loginData)\r\n{\r\n let {rememberMeToken,userId,tpId,userName,envId,avatarColor} = loginData;\r\n let loginLocalStorage = window.localStorage.getItem('superweb-env-logins');\r\n if (!loginLocalStorage)\r\n {\r\n loginLocalStorage = {environments:{}}\r\n }\r\n else\r\n {\r\n try\r\n {\r\n loginLocalStorage = JSON.parse(loginLocalStorage);\r\n }\r\n catch (ex){\r\n loginLocalStorage = {};\r\n console.log(ex);\r\n }\r\n }\r\n\r\n let env = loginLocalStorage.environments[envId];\r\n if (!env)\r\n {\r\n env = {\r\n };\r\n loginLocalStorage.environments[envId] = env;\r\n }\r\n\r\n let login = env[userId];\r\n if (!login)\r\n {\r\n login = {\r\n loginCounter:0\r\n };\r\n env[userId] = login;\r\n }\r\n\r\n login.loginCounter = login.loginCounter + 1;\r\n login.lastLogin = Date.now();\r\n login.userId = userId;\r\n login.tpId = tpId;\r\n login.userName = userName;\r\n login.envId = envId;\r\n login.rememberMe = rememberMeToken ? rememberMeToken : login.rememberMe;\r\n login.avatarColor = avatarColor;\r\n\r\n window.localStorage.setItem('superweb-env-logins',JSON.stringify(loginLocalStorage));\r\n\r\n if (rememberMeToken)\r\n {\r\n window.localStorage.setItem('superweb-rememberme-latest', rememberMeToken);\r\n }\r\n}\r\n\r\nfunction updateEnvirmentFromLocalStorage(state)\r\n{\r\n let loginLocalStorage = window.localStorage.getItem('superweb-env-logins');\r\n\r\n if (loginLocalStorage)\r\n {\r\n try\r\n {\r\n loginLocalStorage = JSON.parse(loginLocalStorage);\r\n }\r\n catch (ex){\r\n loginLocalStorage = null;\r\n console.log(ex);\r\n }\r\n }\r\n\r\n if (loginLocalStorage && loginLocalStorage.environments)\r\n {\r\n for(let storageEnvKey in loginLocalStorage.environments)\r\n {\r\n let storageEnv = loginLocalStorage.environments[storageEnvKey];\r\n let stateEnv = state.environments[storageEnvKey];\r\n if (stateEnv){\r\n for(let userId in storageEnv)\r\n {\r\n var storageLogin = storageEnv[userId];\r\n if (storageLogin && storageLogin.envId === storageEnvKey && storageLogin.tpId && storageLogin.userId)\r\n {\r\n let statePrevLogin = stateEnv.prevLogins.find(element=>element.userId === userId);\r\n if (!statePrevLogin)\r\n {\r\n statePrevLogin = {\r\n passwordRequiredCommand: null,\r\n remembermeLoginCommand: null\r\n };\r\n stateEnv.prevLogins.push(statePrevLogin);\r\n }\r\n\r\n statePrevLogin.userName = storageLogin.userName;\r\n statePrevLogin.userId = storageLogin.userId;\r\n statePrevLogin.tpId = storageLogin.tpId;\r\n statePrevLogin.envId = storageLogin.envId;\r\n statePrevLogin.avatarColor = storageLogin.avatarColor;\r\n statePrevLogin.logoutCommand = null;\r\n\r\n if (!storageLogin.rememberMe)\r\n {\r\n statePrevLogin.remembermeLoginCommand = null;\r\n }\r\n else\r\n {\r\n if (!statePrevLogin.remembermeLoginCommand)\r\n {\r\n statePrevLogin.remembermeLoginCommand = { cmdId: 'STD.CMD.Server.Auth',\r\n staticParams: { postUrl: 'api/auth/loginRememberMe' },\r\n userInput: { encryptedKey: null },\r\n storeRef : { urlParameters:[\"urlParameters\"], isIframe:[\"generalStatus\",\"isIframe\"] } }\r\n }\r\n statePrevLogin.remembermeLoginCommand.userInput.encryptedKey = storageLogin.rememberMe;\r\n\r\n statePrevLogin.logoutCommand = { cmdId: 'STD.CMD.AsyncServer',\r\n staticParams: { postUrl: 'api/userActions/logout',\r\n type: \"login-logout-rememberme\",\r\n envId:storageLogin.envId,\r\n userId:storageLogin.userId\r\n },\r\n userInput: { } }\r\n }\r\n\r\n statePrevLogin.passwordRequiredCommand = { cmdId: 'STD.CMD.Server.Auth',\r\n staticParams: { postUrl: 'api/auth/loginByTpId', envId: storageLogin.envId },\r\n userInput: { tpNumber: storageLogin.tpId, tpPassword: \"\", rememberMe: false,requestVer:3 },\r\n storeRef : { urlParameters:[\"urlParameters\"], isIframe:[\"generalStatus\",\"isIframe\"] } }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import { replaceIfChanged } from '../StoreUtils/overrideState';\r\nimport produce from \"immer\"\r\n\r\nconst initState = {\r\n currency: { code: \"\", digits: 0, sign: \"\", symbol: \"\", name: \"\" },\r\n userDetails: {\r\n avatarColor: \"\",\r\n name: \"\",\r\n email: \"\",\r\n tpUserId: \"\",\r\n brandName: \"\",\r\n brokerName: \"\",\r\n userId: \"\",\r\n envId: \"\",\r\n showEnvironment: false,\r\n hideTopPanel: false,\r\n wshost:\"\",\r\n showPositionsOnChart: false\r\n },\r\n logoutCommand: null,\r\n renewSessionCommand: null,\r\n refreshStateCommand: null,\r\n guestModeData: {\r\n isLoggedInAsGuest: false,\r\n transferLink: \"\"\r\n },\r\n analyticData: {\r\n fullStoryData:{isEnabled: false, organizationId: \"\"},\r\n googleAnalyticsData: {measurementId: \"\", isEnabled: false,},\r\n luckyOrangeData: {siteId: \"\", isEnabled: false,}\r\n },\r\n featuresData: {\r\n execution: {enableTpSl: false},\r\n deposit: { isEnabled: false, depositUrl: \"\", getDepositUrlCommand:null},\r\n trends: { isEnabled: false, trendsUrl: \"\" },\r\n calendar: { isEnabled: false, calendarUrl: \"\", getCalendarUrlCommand: null },\r\n education: { isEnabled: false, educationUrl: \"\", getEducationUrlCommand: null },\r\n showMarginCallDisclaimer: false,\r\n waitForTicksOnStartup:false,\r\n },\r\n serverTimeZone: \"\",\r\n marketRatesSettings: {\r\n pin: { isVisible: false, allowFilter: false, translation: \"\", sort: 0 },\r\n symbol: { isVisible: false, allowFilter: false, translation: \"\", sort: 0 },\r\n flag: { isVisible: false, allowFilter: false, translation: \"\", sort: 0 },\r\n bid: { isVisible: false, allowFilter: false, translation: \"\", sort: 0 },\r\n ask: { isVisible: false, allowFilter: false, translation: \"\", sort: 0 },\r\n mid: { isVisible: false, allowFilter: false, translation: \"\", sort: 0 },\r\n spread: { isVisible: false, allowFilter: false, translation: \"\", sort: 0 },\r\n lastUpdate: { isVisible: false, allowFilter: false, translation: \"\", sort: 0 },\r\n high: { isVisible: false, allowFilter: false, translation: \"\", sort: 0 },\r\n low: { isVisible: false, allowFilter: false, translation: \"\", sort: 0 },\r\n info: { isVisible: false, allowFilter: false, translation: \"\", sort: 0 },\r\n infoData: {\r\n description: { visible: false, translation: \"\", sortOrder: 0 },\r\n security: { visible: false, translation: \"\", sortOrder: 0 },\r\n digits: { visible: false, translation: \"\", sortOrder: 0 },\r\n stopLevel: { visible: false, translation: \"\", sortOrder: 0 },\r\n leverage: { visible: false, translation: \"\", sortOrder: 0 },\r\n contractSize: { visible: false, translation: \"\", sortOrder: 0 },\r\n minimum: { visible: false, translation: \"\", sortOrder: 0 },\r\n maximum: { visible: false, translation: \"\", sortOrder: 0 },\r\n step: { visible: false, translation: \"\", sortOrder: 0 },\r\n swapLong: { visible: false, translation: \"\", sortOrder: 0 },\r\n swapShort: { visible: false, translation: \"\", sortOrder: 0 },\r\n swapType: { visible: false, translation: \"\", sortOrder: 0 },\r\n instrument: { visible: false, translation: \"\", sortOrder: 0 },\r\n },\r\n groupsOrder: []\r\n },\r\n drawerSettings: {\r\n pinData:{\r\n isPin : false,\r\n isPinVisible : false,\r\n togglePinDrawerCommand : null\r\n },\r\n openPositionsTab: {\r\n },\r\n pendingOrdersTab: {\r\n },\r\n closePositionsTab: {\r\n totalProfitType:\"hide\",\r\n }\r\n },\r\n rightPanelSettings: {\r\n socialv1: { isVisible: false, sort: 0 },\r\n t4proTradingroom: { isVisible: false, sort: 0, vipEnabled: false }\r\n }\r\n};\r\n\r\nexport const accountInfoReducer = function accountInfoReducer(state = initState, action, globalState) {\r\n switch (action.type) {\r\n case \"login-logout\":\r\n return initState;\r\n case \"init-brand+login\":\r\n {\r\n return produce(state, draf => {\r\n handleState(draf, action.payload.loginTradingData);\r\n draf.serverTimeZone = action.payload.loginTradingData.sharedTradingData.ServerTimeZone;\r\n });\r\n }\r\n case \"login-success\":\r\n {\r\n return produce(state, draf => {\r\n handleState(draf, action.payload);\r\n draf.serverTimeZone = action.payload.sharedTradingData.ServerTimeZone;\r\n });\r\n }\r\n case \"marketRatesColumn-toggle\":\r\n {\r\n return produce(state, draf => {\r\n var columnState = draf.marketRatesSettings[action.staticData.column];\r\n if (columnState) {\r\n columnState.isVisible = !action.storeData.isVisible;\r\n }\r\n });\r\n }\r\n case \"drawer-toggle\":\r\n {\r\n return produce(state, draf => {\r\n draf.drawerSettings.pinData.isPin = !action.storeData.isPin;\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nfunction handleState(draf, payload) {\r\n draf.currency.code = payload.generalData.currency.code;\r\n draf.currency.digits = payload.generalData.currency.digits;\r\n draf.currency.sign = payload.generalData.currency.sign;\r\n draf.currency.symbol = payload.generalData.currency.symbol;\r\n draf.currency.name = payload.generalData.currency.name;\r\n\r\n draf.userDetails.avatarColor = payload.generalData.userDetails.avatarColor;\r\n draf.userDetails.name = payload.generalData.userDetails.name;\r\n draf.userDetails.email = payload.generalData.userDetails.email;\r\n draf.userDetails.tpUserId = payload.generalData.tpUserId;\r\n draf.userDetails.brandName = payload.generalData.brandName;\r\n draf.userDetails.brokerName = payload.generalData.brokerName;\r\n draf.userDetails.userId = payload.generalData.userId;\r\n draf.userDetails.envId = payload.generalData.envId;\r\n draf.userDetails.showEnvironment = payload.generalData.showEnvironment;\r\n draf.userDetails.hideTopPanel = payload.generalData.hideTopPanel;\r\n draf.userDetails.wshost = payload.generalData.wshost;\r\n draf.userDetails.showPositionsOnChart = payload.generalData.showPositionsOnChart;\r\n\r\n draf.logoutCommand = payload.generalData.logoutCommand;\r\n replaceIfChanged(draf,'renewSessionCommand',payload.generalData.renewSessionCommand);\r\n replaceIfChanged(draf,'refreshStateCommand',payload.generalData.refreshStateCommand);\r\n\r\n draf.guestModeData.isLoggedInAsGuest = payload.guestModeData.isLoggedInAsGuest;\r\n draf.guestModeData.transferLink = payload.guestModeData.transferLink;\r\n\r\n draf.featuresData.waitForTicksOnStartup = payload.featuresData.waitForTicksOnStartup;\r\n draf.featuresData.deposit.isEnabled = payload.featuresData.deposit.isEnabled;\r\n draf.featuresData.deposit.depositUrl = payload.featuresData.deposit.depositUrl;\r\n replaceIfChanged(draf.featuresData.deposit,'getDepositUrlCommand',payload.featuresData.deposit.getDepositUrlCommand);\r\n draf.featuresData.trends.isEnabled = payload.featuresData.trends.isEnabled;\r\n draf.featuresData.trends.trendsUrl = payload.featuresData.trends.trendsUrl;\r\n draf.featuresData.calendar.isEnabled = payload.featuresData.calendar.isEnabled;\r\n draf.featuresData.calendar.calendarUrl = payload.featuresData.calendar.calendarUrl;\r\n replaceIfChanged(draf.featuresData.calendar,'getCalendarUrlCommand', payload.featuresData.calendar.getCalendarUrlCommand);\r\n draf.featuresData.education.isEnabled = payload.featuresData.education.isEnabled;\r\n draf.featuresData.education.educationUrl = payload.featuresData.education.educationUrl;\r\n replaceIfChanged(draf.featuresData.education,'getEducationUrlCommand', payload.featuresData.education.getEducationUrlCommand);\r\n draf.featuresData.showMarginCallDisclaimer = payload.featuresData.showMarginCallDisclaimer;\r\n if (payload.featuresData.execution)\r\n {\r\n draf.featuresData.execution.enableTpSl = payload.featuresData.execution.enableTpSl;\r\n }\r\n\r\n if(payload.analyticData){\r\n if(payload.analyticData.fullStoryData){\r\n draf.analyticData.fullStoryData.isEnabled = payload.analyticData.fullStoryData.isEnabled;\r\n draf.analyticData.fullStoryData.organizationId = payload.analyticData.fullStoryData.organizationId;\r\n }\r\n if(payload.analyticData.googleAnalyticsData){\r\n draf.analyticData.googleAnalyticsData.measurementId = payload.analyticData.googleAnalyticsData.measurementId;\r\n draf.analyticData.googleAnalyticsData.isEnabled = payload.analyticData.googleAnalyticsData.isEnabled;\r\n }\r\n if(payload.analyticData.luckyOrangeData){\r\n draf.analyticData.luckyOrangeData.siteId = payload.analyticData.luckyOrangeData.siteId;\r\n draf.analyticData.luckyOrangeData.isEnabled = payload.analyticData.luckyOrangeData.isEnabled;\r\n }\r\n }\r\n\r\n if (payload.marketRatesData)\r\n {\r\n replaceIfChanged(draf.marketRatesSettings,'groupsOrder', payload.marketRatesData.groupsOrder);\r\n updateMarketSettingsColumn(draf.marketRatesSettings.pin, payload.marketRatesData, \"pin\");\r\n updateMarketSettingsColumn(draf.marketRatesSettings.symbol, payload.marketRatesData, \"symbol\");\r\n updateMarketSettingsColumn(draf.marketRatesSettings.flag, payload.marketRatesData, \"flag\");\r\n updateMarketSettingsColumn(draf.marketRatesSettings.bid, payload.marketRatesData, \"bid\");\r\n updateMarketSettingsColumn(draf.marketRatesSettings.ask, payload.marketRatesData, \"ask\");\r\n updateMarketSettingsColumn(draf.marketRatesSettings.mid, payload.marketRatesData, \"mid\");\r\n updateMarketSettingsColumn(draf.marketRatesSettings.spread, payload.marketRatesData, \"spread\");\r\n updateMarketSettingsColumn(draf.marketRatesSettings.lastUpdate, payload.marketRatesData, \"lastUpdate\");\r\n updateMarketSettingsColumn(draf.marketRatesSettings.high, payload.marketRatesData, \"high\");\r\n updateMarketSettingsColumn(draf.marketRatesSettings.low, payload.marketRatesData, \"low\");\r\n updateMarketSettingsColumn(draf.marketRatesSettings.info, payload.marketRatesData, \"info\");\r\n\r\n updateInfoColumn(draf.marketRatesSettings.infoData.description, payload.marketRatesData.marketRatesColumnSettings.infoData.description)\r\n updateInfoColumn(draf.marketRatesSettings.infoData.security, payload.marketRatesData.marketRatesColumnSettings.infoData.security)\r\n updateInfoColumn(draf.marketRatesSettings.infoData.digits, payload.marketRatesData.marketRatesColumnSettings.infoData.digits)\r\n updateInfoColumn(draf.marketRatesSettings.infoData.stopLevel, payload.marketRatesData.marketRatesColumnSettings.infoData.stopLevel)\r\n updateInfoColumn(draf.marketRatesSettings.infoData.leverage, payload.marketRatesData.marketRatesColumnSettings.infoData.leverage)\r\n updateInfoColumn(draf.marketRatesSettings.infoData.contractSize, payload.marketRatesData.marketRatesColumnSettings.infoData.contractSize)\r\n updateInfoColumn(draf.marketRatesSettings.infoData.minimum, payload.marketRatesData.marketRatesColumnSettings.infoData.minimum)\r\n updateInfoColumn(draf.marketRatesSettings.infoData.maximum, payload.marketRatesData.marketRatesColumnSettings.infoData.maximum)\r\n updateInfoColumn(draf.marketRatesSettings.infoData.step, payload.marketRatesData.marketRatesColumnSettings.infoData.step)\r\n updateInfoColumn(draf.marketRatesSettings.infoData.swapLong, payload.marketRatesData.marketRatesColumnSettings.infoData.swapLong)\r\n updateInfoColumn(draf.marketRatesSettings.infoData.swapShort, payload.marketRatesData.marketRatesColumnSettings.infoData.swapShort)\r\n updateInfoColumn(draf.marketRatesSettings.infoData.swapType, payload.marketRatesData.marketRatesColumnSettings.infoData.swapType)\r\n updateInfoColumn(draf.marketRatesSettings.infoData.instrument, payload.marketRatesData.marketRatesColumnSettings.infoData.instrument)\r\n }\r\n\r\n if (payload.drawerData)\r\n {\r\n draf.drawerSettings.closePositionsTab.totalProfitType = payload.drawerData.closePositionsTab.totalProfitType;\r\n if (payload.drawerData.pinData)\r\n {\r\n draf.drawerSettings.pinData.isPin = payload.drawerData.pinData.isPin;\r\n draf.drawerSettings.pinData.isPinVisible = payload.drawerData.pinData.isPinVisible;\r\n replaceIfChanged(draf.drawerSettings.pinData,'togglePinDrawerCommand',payload.drawerData.pinData.togglePinDrawerCommand);\r\n }\r\n UpdateRightPanelTab(draf.rightPanelSettings.socialv1, payload.rightPanelData.socialv1);\r\n UpdateTradingRoomTab(draf.rightPanelSettings.t4proTradingroom, payload.rightPanelData.t4proTradingroom);\r\n }\r\n\r\n}\r\n\r\nfunction updateMarketSettingsColumn(drafColumn, payload, columnName) {\r\n var payloadColumn = payload.marketRatesColumnSettings[columnName];\r\n var commandTemplate = payload.toggleMarketRatesColumnCommandTemplate;\r\n drafColumn.isVisible = payloadColumn.isVisible;\r\n drafColumn.allowFilter = payloadColumn.allowFilter;\r\n drafColumn.translation = payloadColumn.translation;\r\n drafColumn.sort = payloadColumn.sort;\r\n if (!drafColumn.toggleMarketRatesCommand) {\r\n drafColumn.toggleMarketRatesCommand = {\r\n cmdId: commandTemplate.cmdId,\r\n storeRef: { isVisible: [\"account\", \"accountInfo\", \"marketRatesSettings\", columnName, \"isVisible\"] },\r\n userInput: null,\r\n staticParams: {\r\n type: commandTemplate.staticParams.type,\r\n column: columnName,\r\n postUrl: commandTemplate.staticParams.postUrl\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction updateInfoColumn(drafInfo, payloadInfo) {\r\n drafInfo.visible = payloadInfo.visible;\r\n drafInfo.sortOrder = payloadInfo.sortOrder;\r\n drafInfo.translation = payloadInfo.translation;\r\n}\r\n\r\nfunction UpdateRightPanelTab(drafTab, payloadTab) {\r\n drafTab.isVisible = payloadTab.isVisible;\r\n drafTab.sort = payloadTab.sort;\r\n}\r\n\r\nfunction UpdateTradingRoomTab(drafTab, payloadTab) {\r\n drafTab.isVisible = payloadTab.isVisible;\r\n drafTab.sort = payloadTab.sort;\r\n drafTab.vipEnabled = payloadTab.vipEnabled;\r\n}\r\n\r\n\r\n","export function getPathObject(node, path) {\r\n let currentNode = node;\r\n for (let i = 0; i < path.length; i++) {\r\n let key = path[i];\r\n if (currentNode === null || currentNode === undefined) {\r\n return null;\r\n }\r\n else {\r\n currentNode = currentNode[key];\r\n }\r\n }\r\n return currentNode;\r\n}\r\n","import React, { useEffect } from 'react';\r\n\r\nconst _dirtyNotifications = new Map()\r\nlet _isInNotification = false;\r\n\r\nlet _removeFromDirty = function(reactSetterInstance)\r\n{\r\n let value = _dirtyNotifications.get(reactSetterInstance);\r\n if (value === 0)\r\n {\r\n _dirtyNotifications.set(reactSetterInstance,1);\r\n }\r\n}\r\n\r\nlet _setDirty= function(reactSetterInstance)\r\n{\r\n if (!_dirtyNotifications.has(reactSetterInstance))\r\n {\r\n _dirtyNotifications.set(reactSetterInstance,0);\r\n }\r\n \r\n if(!_isInNotification)\r\n {\r\n _isInNotification = true;\r\n Promise.resolve().then(()=>{\r\n let dummyObject= Object.create(null);\r\n for (let [reactSetter, value] of _dirtyNotifications) {\r\n if (!value)\r\n {\r\n reactSetter(dummyObject);\r\n }\r\n }\r\n\r\n _dirtyNotifications.clear();\r\n _isInNotification = false;\r\n });\r\n }\r\n}\r\n\r\nexport default class PubsubRepository\r\n{\r\n #_dataset = new Map();\r\n #_subscriptions = new Map();\r\n #_nativeSubscriptions = new Set();\r\n #_indexObj;\r\n #_globalSeq = 1;\r\n constructor(indexObj){\r\n this.#_indexObj= indexObj;\r\n }\r\n\r\n subscribeEventsNative(callback)\r\n {\r\n this.#_nativeSubscriptions.add(callback);\r\n }\r\n\r\n getNative(key) \r\n {\r\n let myData = this.#_dataset.get(key);\r\n if (myData)\r\n {\r\n return myData.data;\r\n }\r\n return null;\r\n }\r\n\r\n subscribeNative(key,callback)\r\n {\r\n let keySubscriptions = this.#_subscriptions.get(key);\r\n if (!keySubscriptions)\r\n {\r\n keySubscriptions = new Set();\r\n this.#_subscriptions.set(key,keySubscriptions);\r\n }\r\n\r\n let disposed = false;\r\n let local = this;\r\n let keySubscription = {\r\n reactSetValue: ()=>{\r\n if (!disposed)\r\n {\r\n let myData = local.#_dataset.get(key);\r\n keySubscriptions.add(keySubscription);\r\n if (myData)\r\n {\r\n local.CloneData(myData);\r\n callback(myData.transferData[0]);\r\n }\r\n }\r\n },\r\n };\r\n\r\n keySubscriptions.add(keySubscription);\r\n \r\n keySubscription.reactSetValue(); // call the callback now\r\n\r\n return {\r\n dispose:()=>{\r\n disposed = true;\r\n keySubscriptions.delete(keySubscription);}\r\n };\r\n }\r\n \r\n subscribeReactWithPrev(key)\r\n {\r\n let data = this._subscribeAndGetData(key);\r\n if (data)\r\n {\r\n return data.transferData;\r\n }\r\n return [undefined,undefined];\r\n }\r\n\r\n subscribeReact(key)\r\n {\r\n let data = this._subscribeAndGetData(key);\r\n if (data)\r\n {\r\n return data.transferData[0];\r\n }\r\n return null;\r\n }\r\n\r\n _subscribeAndGetData(key)\r\n {\r\n let keySubscriptions = this.#_subscriptions.get(key);\r\n if (!keySubscriptions)\r\n {\r\n keySubscriptions = new Set();\r\n this.#_subscriptions.set(key,keySubscriptions);\r\n }\r\n \r\n const [,setValue] = React.useState(Object.create(null));\r\n\r\n _removeFromDirty(setValue);\r\n let keySubscription = {\r\n reactSetValue: setValue,\r\n }\r\n useEffect(() => {\r\n return function cleanup() {\r\n keySubscriptions.delete(keySubscription);\r\n };\r\n });\r\n\r\n keySubscriptions.add(keySubscription);\r\n\r\n let myData = this.#_dataset.get(key);\r\n if (myData)\r\n {\r\n this.CloneData(myData);\r\n return myData;\r\n }\r\n return null;\r\n }\r\n\r\n CloneData(myData) {\r\n if (myData.cloneSeq !== myData.changeSeq) {\r\n let newInstance = this.#_indexObj.createInstance();\r\n let newInstancePrev = this.#_indexObj.createInstance();\r\n \r\n this.#_indexObj.deepClone(newInstance, myData.data);\r\n this.#_indexObj.deepClone(newInstancePrev, myData.prevData);\r\n\r\n myData.transferData = [newInstance, newInstancePrev];\r\n myData.cloneSeq = myData.changeSeq;\r\n }\r\n }\r\n\r\n publishDelete(items)\r\n {\r\n if (items === null || items === undefined){\r\n return;\r\n }\r\n\r\n let nativeCallbacks = undefined;\r\n if (this.#_nativeSubscriptions.size > 0)\r\n {\r\n nativeCallbacks = {\r\n created:[],\r\n updated:[],\r\n deleted:[]\r\n };\r\n }\r\n\r\n if (Array.isArray(items)){\r\n for (let i =0;i{\r\n currCallback(nativeCallbacks);\r\n });\r\n }\r\n }\r\n\r\n publish(items)\r\n {\r\n if (items === null || items === undefined){\r\n return;\r\n }\r\n\r\n let nativeCallbacks = undefined;\r\n if (this.#_nativeSubscriptions.size > 0)\r\n {\r\n nativeCallbacks = {\r\n created:[],\r\n updated:[],\r\n deleted:[]\r\n };\r\n }\r\n\r\n if (Array.isArray(items)){\r\n for (let i =0;i{\r\n currCallback(nativeCallbacks);\r\n });\r\n }\r\n }\r\n\r\n _handlePublishDelete(item,nativeCallbacks)\r\n {\r\n let key = this.#_indexObj.getKey(item);\r\n let prevDataItem = this.#_dataset.get(key);\r\n if (prevDataItem == null) {\r\n // we do nothing and we are done\r\n }\r\n else{\r\n if (nativeCallbacks){\r\n nativeCallbacks.deleted.push({key:key,data:prevDataItem.data});\r\n }\r\n \r\n this.#_dataset.delete(key);\r\n let subscriptions = this.#_subscriptions.get(key);\r\n if (subscriptions) {\r\n if (subscriptions.size) {\r\n for (let item of subscriptions) {\r\n _setDirty(item.reactSetValue);\r\n }\r\n subscriptions.clear();\r\n }\r\n }\r\n }\r\n }\r\n \r\n _handlePublish(item,nativeCallbacks) {\r\n let key = this.#_indexObj.getKey(item);\r\n let prevDataItem = this.#_dataset.get(key);\r\n this.#_globalSeq++;\r\n if (prevDataItem == null) {\r\n let itemData = this.#_indexObj.createInstance();\r\n let previtemData = this.#_indexObj.createInstance();\r\n this.#_indexObj.transform(itemData, item);\r\n this.#_indexObj.transform(previtemData, item);\r\n prevDataItem = {\r\n data: itemData,\r\n prevData: previtemData,\r\n changeSeq: this.#_globalSeq,\r\n cloneSeq:0,\r\n transferData: null\r\n };\r\n this.#_dataset.set(key, prevDataItem);\r\n if (nativeCallbacks){\r\n nativeCallbacks.created.push({key:key,data:prevDataItem.data});\r\n }\r\n }\r\n else {\r\n this.#_indexObj.deepClone(prevDataItem.prevData,prevDataItem.data);\r\n this.#_indexObj.transform(prevDataItem.data, item);\r\n prevDataItem.changeSeq = this.#_globalSeq;\r\n \r\n if (nativeCallbacks){\r\n nativeCallbacks.updated.push({key:key,data:prevDataItem.data});\r\n }\r\n }\r\n \r\n let subscriptions = this.#_subscriptions.get(key);\r\n if (subscriptions) {\r\n if (subscriptions.size) {\r\n for (let item of subscriptions) {\r\n _setDirty(item.reactSetValue);\r\n }\r\n subscriptions.clear();\r\n }\r\n }\r\n }\r\n};","import PubsubRepository from \"./PubsubRepository\" ;\r\n\r\nclass Tick\r\n{\r\n symbol = \"\";\r\n bid = 0;\r\n ask = 0;\r\n bidProfitConversion = null;\r\n askProfitConversion = null;\r\n marginConversion = null;\r\n timestamp = 0;\r\n timestampUTC = 0;\r\n isOffline = true;\r\n}\r\n\r\nexport const TicksRepository = new PubsubRepository({\r\n createInstance(){\r\n return new Tick();\r\n },\r\n \r\n transform(traget,source)\r\n {\r\n traget.symbol = source.sm;\r\n traget.bid = source.b;\r\n traget.ask = source.a;\r\n traget.bidProfitConversion = source.bpc;\r\n traget.askProfitConversion = source.apc;\r\n traget.marginConversion = source.mc;\r\n traget.timestamp = source.t; \r\n traget.timestampUTC = source.tu; \r\n traget.isOffline = source.o === 0? false:true;\r\n },\r\n deepClone(traget,source)\r\n {\r\n traget.symbol = source.symbol;\r\n traget.bid = source.bid;\r\n traget.ask = source.ask;\r\n traget.bidProfitConversion = source.bidProfitConversion;\r\n traget.askProfitConversion = source.askProfitConversion;\r\n traget.marginConversion = source.marginConversion;\r\n traget.timestamp = source.timestamp; \r\n traget.timestampUTC = source.timestampUTC; \r\n traget.isOffline = source.isOffline;\r\n },\r\n \r\n getKey(item)\r\n {\r\n return item.sm;\r\n }\r\n});","import PubsubRepository from \"./PubsubRepository\" ;\r\n\r\nexport class ProfitClass\r\n{\r\n id=\"\";\r\n profitWithCommitions = 0;\r\n profit = 0;\r\n diff = 0;\r\n pipDiff = 0;\r\n isValidProfit = false;\r\n}\r\n\r\nexport const ProfitsRepository = new PubsubRepository({\r\n createInstance(){\r\n return new ProfitClass();\r\n },\r\n \r\n transform(traget,source)\r\n {\r\n traget.id = source.id\r\n traget.profitWithCommitions = source.profitWithCommitions;\r\n traget.profit = source.profit;\r\n traget.diff = source.diff;\r\n traget.pipDiff = source.pipDiff;\r\n traget.isValidProfit = source.isValidProfit;\r\n },\r\n \r\n deepClone(traget,source)\r\n {\r\n traget.id = source.id\r\n traget.profitWithCommitions = source.profitWithCommitions;\r\n traget.profit = source.profit;\r\n traget.diff = source.diff;\r\n traget.pipDiff = source.pipDiff;\r\n traget.isValidProfit = source.isValidProfit;\r\n },\r\n \r\n getKey(item)\r\n {\r\n return item.id;\r\n }\r\n});\r\n\r\nexport class AccountMovingPLClass\r\n{\r\n id=\"\";\r\n openPl = 0;\r\n openPlWitoutCommition = 0;\r\n equity = 0;\r\n freeMargin = 0;\r\n marginLevel = false;\r\n}\r\n\r\nexport const AccountMovingPLRepository = new PubsubRepository({\r\n createInstance(){\r\n return new AccountMovingPLClass();\r\n },\r\n \r\n transform(traget,source)\r\n {\r\n traget.id = source.id\r\n traget.openPl = source.openPl;\r\n traget.openPlWitoutCommition = source.openPlWitoutCommition;\r\n traget.equity = source.equity;\r\n traget.freeMargin = source.freeMargin;\r\n traget.marginLevel = source.marginLevel;\r\n },\r\n \r\n deepClone(traget,source)\r\n {\r\n traget.id = source.id\r\n traget.openPl = source.openPl;\r\n traget.openPlWitoutCommition = source.openPlWitoutCommition;\r\n traget.equity = source.equity;\r\n traget.freeMargin = source.freeMargin;\r\n traget.marginLevel = source.marginLevel;\r\n },\r\n \r\n getKey(item)\r\n {\r\n return item.id;\r\n }\r\n});","import {TicksRepository} from './TicksRepository'\r\nimport {ProfitsRepository,AccountMovingPLRepository} from './ProfitsRepository'\r\n\r\n\r\nlet _subscriptions = new Map()\r\n\r\n_subscriptions.set('ticks',TicksRepository);\r\n_subscriptions.set('PNL',ProfitsRepository);\r\n_subscriptions.set('ACCOUNT_PNL',AccountMovingPLRepository);\r\n\r\nclass pubsubSubscription\r\n{\r\n isSubscriptionObj(obj)\r\n {\r\n if (obj !== null && obj !== undefined)\r\n {\r\n if (obj.repId)\r\n {\r\n if (_subscriptions.has(obj.repId))\r\n {\r\n if (obj.key !== undefined && obj.key !== null)\r\n {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n getPubsub(obj)\r\n {\r\n let pubsub =_subscriptions.get(obj.repId);\r\n return pubsub;\r\n }\r\n\r\n getValueNative(obj)\r\n {\r\n let pubsub =_subscriptions.get(obj.repId);\r\n if (pubsub)\r\n {\r\n return pubsub.getNative(obj.key);\r\n }\r\n }\r\n\r\n subscribeObjNative(obj,callback)\r\n {\r\n let pubsub =_subscriptions.get(obj.repId);\r\n if (pubsub)\r\n {\r\n return pubsub.subscribeNative(obj.key,callback);\r\n }\r\n return {dispose:()=>{}}\r\n }\r\n\r\n subscribeObjAndPrev(obj)\r\n {\r\n let pubsub =_subscriptions.get(obj.repId);\r\n if (pubsub)\r\n {\r\n return pubsub.subscribeReactWithPrev(obj.key);\r\n }\r\n }\r\n\r\n subscribeObj(obj)\r\n {\r\n let pubsub =_subscriptions.get(obj.repId);\r\n if (pubsub)\r\n {\r\n return pubsub.subscribeReact(obj.key);\r\n }\r\n }\r\n};\r\n\r\nexport default new pubsubSubscription();","import {getPathObject} from '../StoreUtils/getPathObject'\r\nimport PubsubSubscription from '../repositories/PubsubSubscription'\r\nimport {getStore} from '../storeContainer'\r\n\r\nconst _cmdMap = new Map()\r\n\r\nclass Command\r\n{\r\n constructor(handlerFunc,cmdData)\r\n {\r\n this._cmdData = cmdData;\r\n this._handlerFunc = handlerFunc;\r\n this.execute = this.execute.bind(this);\r\n }\r\n\r\n getStore()\r\n {\r\n return getStore();\r\n }\r\n\r\n getStatic()\r\n {\r\n if (!this._cmdData.staticParams)\r\n {\r\n return {};\r\n }\r\n\r\n return this._cmdData.staticParams\r\n }\r\n\r\n getUserInput()\r\n {\r\n if (!this._cmdData.userInput)\r\n {\r\n return {};\r\n }\r\n\r\n return this._cmdData.userInput\r\n }\r\n\r\n getStoreData()\r\n {\r\n if (!this._cmdData.storeRef)\r\n {\r\n return {};\r\n }\r\n\r\n let store = getStore();\r\n let curr = this._cmdData.storeRef;\r\n let dd = Object.keys(curr);\r\n let obj = {}\r\n for (let i =0;i{});\r\n }\r\n\r\n let internalHandler = _cmdMap.get(instance.cmdId);\r\n if (!internalHandler)\r\n {\r\n console.error(`CommandFactory::createCommand id '${instance.cmdId}' has no command handler`);\r\n return new Command(()=>{});\r\n }\r\n\r\n return new Command(internalHandler,instance);\r\n }\r\n} \r\n\r\nconst cmdFactorySingleton = new CommandFactoryClass();\r\nexport default cmdFactorySingleton;\r\nexport const CommandFactory = cmdFactorySingleton; ","import { CommandFactory } from \"./CommandFactory\";\r\nimport {adjustURL} from './mobileUrlService'\r\n\r\nexport const STDCMDServerCmdAuthID = \"STD.CMD.Server.Auth\"; \r\n\r\nexport async function STDCMDServerAuthHandler(cmd,userInput)\r\n{\r\n let staticData = cmd.getStatic();\r\n let storeData = cmd.getStoreData();\r\n\r\n if (!userInput)\r\n {\r\n userInput = cmd.getUserInput();\r\n }\r\n \r\n if (staticData.postUrl)\r\n {\r\n try\r\n {\r\n let response = await fetch(adjustURL(staticData.postUrl),{\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json;charset=utf-8',\r\n 'superweb-session':window.sessionStorage.getItem('superweb-session') ?? ''\r\n },\r\n body: JSON.stringify({\r\n userInput: userInput,\r\n staticData: staticData,\r\n storeData: storeData})\r\n });\r\n\r\n if (!response.ok){\r\n // Server Error\r\n return response;\r\n }\r\n else{\r\n let data = await response.json();\r\n if (data)\r\n {\r\n if (data.token)\r\n {\r\n window.sessionStorage.setItem('superweb-session',data.token);\r\n }\r\n\r\n if (CommandFactory.isCommand(data))\r\n {\r\n var res = CommandFactory.createCommand({cmdId:data.cmdId,storeRef:data.storeRef, staticParams:{type:data.storeDispatch}, userInput:data.payload}).execute();\r\n if (res)\r\n {\r\n await res;\r\n }\r\n }\r\n }\r\n\r\n return data;\r\n }\r\n }\r\n catch\r\n {\r\n // Server Error\r\n return null;\r\n }\r\n }\r\n\r\n // Invalid CMD\r\n return null;\r\n} ","import {STDCMDServerCmdAuthID} from \"../commands/authServerCommand\"\r\nimport produce from \"immer\"\r\n\r\nexport const StatusModes = {\r\n requireServerInit : \"requireServerInit\",\r\n requireLogin :\"requireLogin\",\r\n accountLogin : \"accountLogin\",\r\n};\r\n\r\nfunction inIframe () {\r\n try {\r\n return window.self !== window.top;\r\n } catch (e) {\r\n return true;\r\n }\r\n}\r\n\r\nconst initState = {\r\n\r\n isIframe:inIframe(),\r\n ticksLoaded:false,\r\n status: StatusModes.requireServerInit,\r\n serverInitCommand: {cmdId:STDCMDServerCmdAuthID,staticParams:{postUrl : \"api/getInitData\",\r\n rememberMeToken:window.localStorage.getItem('superweb-rememberme-latest')??''}\r\n ,storeRef : { urlParameters:[\"urlParameters\"],isIframe:[\"generalStatus\",\"isIframe\"] }},\r\n};\r\n\r\nexport const generalStatusReducer = function generalStatusReducer(state = initState, action,globalState){\r\n switch (action.type) {\r\n case \"ticks-init-bulk-ended\":\r\n {\r\n return produce(state,draf=>{\r\n draf.ticksLoaded = true;\r\n });\r\n }\r\n case \"login-logout\":\r\n return produce(state,draf=>{\r\n draf.status = StatusModes.requireLogin;\r\n draf.ticksLoaded = false;\r\n });\r\n case \"init-brand\":\r\n return produce(state,draf=>{\r\n draf.status = StatusModes.requireLogin;\r\n });\r\n case \"init-brand+login\":\r\n {\r\n return produce(state,draf=>{\r\n draf.status = StatusModes.accountLogin;\r\n });\r\n }\r\n case \"login-success\":\r\n {\r\n return produce(state,draf=>{\r\n draf.status = StatusModes.accountLogin;\r\n });\r\n }\r\n \r\n default:\r\n return state;\r\n }\r\n}","export const unpack = (dataObj) =>\r\n{\r\n if (!dataObj)\r\n {\r\n return undefined;\r\n }\r\n\r\n const payload = [];\r\n \r\n let iterators = Object.keys(dataObj).map(x=>propertyFactory(x,dataObj));\r\n\r\n if (iterators.length > 0)\r\n {\r\n while(listMoveNext(iterators))\r\n {\r\n let obj = {};\r\n for (let i = 0; i < iterators.length; i++) {\r\n iterators[i].setCurrent(obj);\r\n }\r\n payload.push(obj);\r\n }\r\n }\r\n\r\n return payload;\r\n}\r\n\r\nconst propertyFactory = (key,obj)=>{\r\n \r\n const Mode_Iterate =0;\r\n const Mode_Duplicate =1;\r\n\r\n let currPackProp = undefined;\r\n if (key)\r\n {\r\n currPackProp = obj[key];\r\n } \r\n else\r\n {\r\n // Empty key will force a simple prop, this is a desgin bug.\r\n currPackProp = obj;\r\n }\r\n \r\n if (!currPackProp)\r\n {\r\n return {\r\n moveNext: ()=>{ return false; },\r\n setCurrent:(obj)=>{},\r\n getCurrent:()=>{return undefined},\r\n }\r\n }\r\n\r\n if (key && currPackProp.o)\r\n {\r\n // This is an obj pack\r\n let objectIterators = Object.keys(currPackProp.o).map(x=>propertyFactory(x,currPackProp.o));\r\n let isValid = false;\r\n let headProp = propertyFactory(\"\",currPackProp);\r\n return {\r\n moveNext:()=>{\r\n isValid = false;\r\n if (headProp.moveNext())\r\n {\r\n if (headProp.getCurrent() === 1)\r\n {\r\n for (let i = 0; i < objectIterators.length; i++) {\r\n objectIterators[i].moveNext();\r\n }\r\n }\r\n isValid = true;\r\n return true;\r\n }\r\n return false;\r\n },\r\n getCurrent:()=>{\r\n return headProp.getCurrent();\r\n },\r\n setCurrent:(obj)=>{\r\n if (isValid)\r\n {\r\n if (headProp.getCurrent() === 1)\r\n {\r\n let newObj = {};\r\n for (let i = 0; i < objectIterators.length; i++) {\r\n objectIterators[i].setCurrent(newObj);\r\n }\r\n obj[key] = newObj; \r\n }\r\n else\r\n {\r\n obj[key] = null;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else\r\n {\r\n let currIndex = -1;\r\n let dupCounter = 0;\r\n let currMode = Mode_Iterate;\r\n let isValid = false;\r\n const reset = ()=>{\r\n currIndex = -1;\r\n dupCounter = 0;\r\n currMode = Mode_Iterate;\r\n isValid = false;\r\n };\r\n\r\n const moveNext = ()=>{\r\n if (!currPackProp)\r\n {\r\n isValid =false;\r\n return false;\r\n }\r\n\r\n if (currMode === Mode_Iterate)\r\n {\r\n if (currPackProp?.v)\r\n {\r\n if (currPackProp.v.length === (currIndex +1))\r\n {\r\n if (currIndex >= 0 && currPackProp?.c > 0)\r\n {\r\n currMode = Mode_Duplicate;\r\n dupCounter = 1;\r\n isValid =true;\r\n return true;\r\n }\r\n }\r\n else if (currPackProp.v.length > (currIndex +1))\r\n {\r\n currIndex++;\r\n isValid =true;\r\n return true;\r\n }\r\n }\r\n }\r\n else if (currMode === Mode_Duplicate)\r\n {\r\n if (currPackProp?.c === dupCounter)\r\n {\r\n currPackProp = currPackProp?.n;\r\n reset();\r\n return moveNext();\r\n }\r\n else if (currPackProp?.c > dupCounter)\r\n {\r\n dupCounter++;\r\n isValid =true;\r\n return true;\r\n }\r\n }\r\n\r\n isValid =false;\r\n return false;\r\n };\r\n return {\r\n getCurrent:()=>{\r\n return currPackProp.v[currIndex];\r\n },\r\n moveNext : moveNext,\r\n setCurrent:(obj)=>{\r\n if (isValid)\r\n {\r\n obj[key] = currPackProp.v[currIndex];\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nconst listMoveNext = (array)=>\r\n{\r\n let hasMore = false;\r\n for (let i = 0; i < array.length; i++) {\r\n if (array[i].moveNext())\r\n {\r\n hasMore = true; \r\n }\r\n }\r\n return hasMore;\r\n}","import produce from \"immer\"\r\nimport { replaceIfChanged } from \"../StoreUtils/overrideState\";\r\nimport {TicksRepository} from \"../repositories/TicksRepository\"\r\nimport {getStore} from \"../storeContainer\"\r\nimport { unpack } from \"../messageUnpacker\";\r\nimport { DeepDiff } from 'deep-diff'\r\n\r\nconst symbolsFlagsMap = {\r\n \"BROB\": { single: \"BROBTEST\", left: \"\", right: \"\" },\r\n \"DASHUSD\": {single: \"\", left: \"DASH\", right: \"USD\"}\r\n}\r\n\r\nconst initState = {\r\n symbols:{},\r\n symbolsOrder:[]\r\n};\r\n\r\nTicksRepository.subscribeEventsNative((changes)=>{\r\n let store = getStore();\r\n if (store)\r\n {\r\n if (changes.created.length > 0)\r\n {\r\n store.dispatch({\r\n type:\"symbols-push-Updates\",\r\n payload: changes,\r\n });\r\n }\r\n }\r\n});\r\n\r\nexport const ProfitCalculationModes =\r\n{\r\n Forex : 0,\r\n CFD : 1,\r\n Future : 2,\r\n Sirix : 3,\r\n MT5Forex : 4,\r\n\tMT5CFD: 5,\r\n\tMT5Futures: 6,\r\n\tMT5CFDIndex: 7,\r\n\tMT5CFDLeverage: 8,\r\n}\r\n\r\nexport const symbolsReducer = function symbolsReducer(state = initState, action){\r\n switch (action.type) {\r\n case \"login-logout\":\r\n return initState;\r\n case \"symbols-pin-toggle\":\r\n return produce(state,draf=>{\r\n let stateSymbols = draf.pinSymbols;\r\n draf.pinSymbols = [];\r\n stateSymbols.forEach(element => {\r\n if (element !== action.staticData.symbolId){\r\n draf.pinSymbols.push(element);\r\n }\r\n });\r\n\r\n if (!action.storeData.isPin)\r\n {\r\n draf.pinSymbols.push(action.staticData.symbolId);\r\n }\r\n\r\n let symbol =draf.symbols[action.staticData.symbolId];\r\n if (symbol)\r\n {\r\n symbol.isPin = !action.storeData.isPin;\r\n }\r\n });\r\n case \"symbols-push-Updates\":\r\n return produce(state,draf=>{\r\n let stateSymbols = draf.symbols;\r\n for (let i=0 ;i{\r\n HandleSymbols(draf, serversymbols);\r\n });\r\n }\r\n case \"login-success\":\r\n {\r\n if (action.payload.sharedTradingData.symbols?.symbolsPack)\r\n {\r\n let unpaked = unpack(action.payload.sharedTradingData.symbols.symbolsPack);\r\n setSymbolsCommand(unpaked);\r\n if (action.payload.sharedTradingData.symbols.symbols)\r\n {\r\n addRemovedProps(unpaked,action.payload.sharedTradingData.symbols.symbols);\r\n var differences = DeepDiff(action.payload.sharedTradingData.symbols.symbols, unpaked);\r\n }\r\n \r\n action.payload.sharedTradingData.symbols.symbols = unpaked;\r\n }\r\n\r\n let serversymbols = action.payload.sharedTradingData.symbols;\r\n return produce(state,draf=>{\r\n HandleSymbols(draf, serversymbols);\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nfunction addRemovedProps(target,soruce)\r\n{\r\n let sourceDic = {};\r\n soruce.forEach(x=>{\r\n sourceDic[x.id] = x;\r\n })\r\n\r\n target.forEach(x=>{\r\n if (sourceDic[x.id])\r\n {\r\n x.tradingSessions = sourceDic[x.id].tradingSessions;\r\n x.tradingSessionDef = sourceDic[x.id].tradingSessionDef;\r\n \r\n sourceDic[x.id].altDescription = x.altDescription;\r\n sourceDic[x.id].sessionData = x.sessionData;\r\n sourceDic[x.id].altContractSize = x.altContractSize;\r\n }\r\n });\r\n}\r\nfunction setSymbolsCommand(symbolsArray) {\r\n symbolsArray.forEach(x => {\r\n\r\n x.chart = {\r\n cmdId: \"STD.CMD.ChartBars\",\r\n staticParams: { symbolId: x.id, postUrl: \"api/tradingData/getChart\" },\r\n userInput: { period: 5, from: null, barCount: 600 },\r\n storeRef:{},\r\n };\r\n x.openPositionCMD = {\r\n cmdId: \"STD.CMD.Server\",\r\n staticParams: { symbolId: x.id, contractSize: x.serverContractSize ?? x.contractSize, postUrl: \"api/trading/openPosition\" },\r\n storeRef: { tick: { repId: \"ticks\", key: x.id } ,clientContractSize: [\"account\", \"symbols\", \"symbols\", x.id, \"contractSize\"]},\r\n userInput: { actionType: 0, amount: 1, stopLoss: 0.0, takeProfit: 0.0 },\r\n };\r\n x.togglePinSymbolCMD = {\r\n cmdId: \"STD.CMD.AsyncServer\",\r\n staticParams: { symbolId: x.id, postUrl: \"api/userActions/togglePinSymbol\", type: \"symbols-pin-toggle\" },\r\n userInput: {},\r\n storeRef: { isPin: [\"account\", \"symbols\", \"symbols\", x.id, \"isPin\"] },\r\n };\r\n x.openPendingOrderCMD = {\r\n cmdId: \"STD.CMD.Server\",\r\n staticParams: { symbolId: x.id,contractSize: x.serverContractSize ?? x.contractSize, postUrl: \"api/trading/createPending\" },\r\n storeRef: { tick: { repId: \"ticks\", key: x.id },clientContractSize: [\"account\", \"symbols\", \"symbols\", x.id, \"contractSize\"] },\r\n userInput: { price: 1, amount: 1, actionType: 0, stopLoss: 0.0, takeProfit: 0.0 },\r\n };\r\n });\r\n}\r\n\r\nfunction HandleSymbols(draf, payload) {\r\n let serversymbols = payload.symbols;\r\n let symbolsOrder = payload.symbolsOrder;\r\n let pinSymbols = {\r\n\r\n };\r\n\r\n payload.pinSymbols.forEach(element => {\r\n pinSymbols[element] = true;\r\n });\r\n\r\n replaceIfChanged(draf,'pinSymbols', payload.pinSymbols);\r\n\r\n let symbolsToRemove = new Set();\r\n let stateSymbols = draf.symbols;\r\n for (let stateSymbol of Object.values(stateSymbols)) {\r\n symbolsToRemove.add(stateSymbol.id);\r\n }\r\n\r\n for (let serverSymbolkey in serversymbols) {\r\n let serverSymbol = serversymbols[serverSymbolkey];\r\n symbolsToRemove.delete(serverSymbol.id);\r\n let stateSymbol = stateSymbols[serverSymbol.id];\r\n if (!stateSymbol) {\r\n stateSymbol = { id: serverSymbol.id, tradingSessions: [], tick: { repId: \"ticks\", key: serverSymbol.id } };\r\n stateSymbols[serverSymbol.id] = stateSymbol;\r\n }\r\n stateSymbol.displayName = serverSymbol.displayName;\r\n stateSymbol.description = serverSymbol.description;\r\n stateSymbol.group = serverSymbol.group;\r\n stateSymbol.flag = serverSymbol.flag;\r\n stateSymbol.displayDigit = serverSymbol.displayDigit;\r\n stateSymbol.pipDigit= serverSymbol.pipDigit;\r\n stateSymbol.tradeMode = serverSymbol.tradeMode;\r\n stateSymbol.contractUnitType = serverSymbol.contractUnitType;\r\n stateSymbol.serverUnits = serverSymbol.serverUnits;\r\n stateSymbol.profitCalcMode = serverSymbol.profitCalcMode;\r\n stateSymbol.contractSize = serverSymbol.contractSize;\r\n stateSymbol.leverage = serverSymbol.leverage;\r\n stateSymbol.marginPercentage = serverSymbol.marginPercentage;\r\n stateSymbol.tickSize = serverSymbol.tickSize;\r\n stateSymbol.tickValue = serverSymbol.tickValue;\r\n stateSymbol.marginInitial = serverSymbol.marginInitial;\r\n stateSymbol.swapLong = serverSymbol.swapLong;\r\n stateSymbol.swapShort = serverSymbol.swapShort;\r\n stateSymbol.swapType = serverSymbol.swapType;\r\n stateSymbol.minimumLot = serverSymbol.minimumLot;\r\n stateSymbol.maximumLot = serverSymbol.maximumLot;\r\n stateSymbol.lotStep = serverSymbol.lotStep;\r\n stateSymbol.stopLevel = serverSymbol.stopLevel;\r\n stateSymbol.isVisible = serverSymbol.isVisible;\r\n stateSymbol.mt5marginMultiplier = serverSymbol.mt5marginMultiplier;\r\n stateSymbol.mt5marginBase = serverSymbol.mt5marginBase;\r\n\r\n stateSymbol.t4Pro = serverSymbol.t4Pro;\r\n\r\n replaceIfChanged(stateSymbol,'icon', serverSymbol.icon)\r\n replaceIfChanged(stateSymbol,'tradingSessions', serverSymbol.tradingSessions);\r\n replaceIfChanged(stateSymbol,'openPendingOrderCMD', serverSymbol.openPendingOrderCMD);\r\n replaceIfChanged(stateSymbol,'openPositionCMD', serverSymbol.openPositionCMD);\r\n replaceIfChanged(stateSymbol,'togglePinSymbolCMD', serverSymbol.togglePinSymbolCMD);\r\n\r\n replaceIfChanged(stateSymbol,'chart', serverSymbol.chart);\r\n\r\n let currentTick = TicksRepository.getNative(serverSymbol.id);\r\n stateSymbol.hasTick = currentTick != null;\r\n\r\n stateSymbol.isPin = pinSymbols[serverSymbol.id] ? true:false;\r\n\r\n var flagData = getSymbolFlagMap(stateSymbol.displayName);\r\n replaceIfChanged(stateSymbol,'flag', flagData);\r\n }\r\n\r\n for (let symbolToRemove of symbolsToRemove) {\r\n delete stateSymbols[symbolToRemove];\r\n }\r\n\r\n replaceIfChanged(draf,'symbolsOrder', symbolsOrder);\r\n}\r\n\r\nfunction getSymbolFlagMap(symbolName) {\r\n //search in map\r\n var flag = symbolsFlagsMap[symbolName];\r\n if (flag) {\r\n return flag;\r\n }\r\n\r\n //isContract\r\n var splitIndex = symbolName.lastIndexOf(\"-\");\r\n\r\n if (splitIndex !== -1) {\r\n var month = symbolName.substring(splitIndex + 1, splitIndex + 4);\r\n var year = symbolName.substring(splitIndex + 4, splitIndex + 6);\r\n\r\n if (contractMonths.has(month) && parseInt(year)) {\r\n var pattern = symbolName.substring(0, splitIndex);\r\n var flag = symbolsFlagsMap[pattern];\r\n if (flag) {\r\n return flag;\r\n }\r\n }\r\n }\r\n\r\n //isForex\r\n var leftPair = symbolName.substring(0, 3);\r\n var rightPair = symbolName.substring(3, 6);\r\n\r\n if (forexPairs.has(leftPair) && forexPairs.has(rightPair)) {\r\n if (symbolName.length > 6) {\r\n var endPattern = symbolName.substring(6);\r\n if (symbolSpecialEndings.has(endPattern)) {\r\n return { single: \"\", left: leftPair, right: rightPair };\r\n }\r\n }\r\n else {\r\n return { single: \"\", left: leftPair, right: rightPair };\r\n }\r\n }\r\n\r\n return { single: \"\", left: \"\", right: \"\" };\r\n}\r\n\r\nconst contractMonths = new Set([\r\n \"JAN\",\r\n \"FEB\",\r\n \"MAR\",\r\n \"APR\",\r\n \"MAY\",\r\n \"JUN\",\r\n \"JUL\",\r\n \"AUG\",\r\n \"SEP\",\r\n \"OCT\",\r\n \"NOV\",\r\n \"DEC\"\r\n]);\r\n\r\nconst forexPairs = new Set([\r\n \"AUD\",\r\n \"BTC\",\r\n \"CAD\",\r\n \"CHF\",\r\n \"EUR\",\r\n \"GBP\",\r\n \"JPY\",\r\n \"NZD\",\r\n \"USD\",\r\n \"TRY\",\r\n \"BCH\",\r\n \"CNH\",\r\n \"CZK\",\r\n \"DKK\",\r\n \"EOS\",\r\n \"ETC\",\r\n \"ETH\",\r\n \"HKD\",\r\n \"HUF\",\r\n \"ILS\",\r\n \"LTC\",\r\n \"MXN\",\r\n \"NOK\",\r\n \"PLN\",\r\n \"RON\",\r\n \"RUB\",\r\n \"SEK\",\r\n \"SGD\",\r\n \"XLM\",\r\n \"XMR\",\r\n \"XRP\",\r\n \"ZAR\"\r\n]);\r\n\r\nconst symbolSpecialEndings = new Set([\r\n \"*\",\r\n \"#\",\r\n \"1\",\r\n \".\",\r\n \"$\",\r\n \"!\",\r\n \"_\"\r\n]);\r\n","import produce from \"immer\"\r\nimport { replaceIfChanged } from '../../background/StoreUtils/overrideState';\r\nconst initState = {\r\n positions:{},\r\n eventCounter:0,\r\n closeAllCommand:null\r\n};\r\n\r\nexport const ActionType = {\r\n Buy : 0,\r\n Sell : 1\r\n}\r\n\r\nexport const openPositionsReducer = function openPositionsReducer(state = initState, action){\r\n switch (action.type) {\r\n case \"login-logout\":\r\n return initState;\r\n case \"init-brand+login\":\r\n {\r\n let serverPositions = action.payload.loginTradingData.tradingData.openPositions;\r\n return produce(state,draf=>{\r\n HandleOpenPositions(draf, serverPositions);\r\n });\r\n }\r\n case \"update-trading-data\":\r\n case \"login-success\":\r\n {\r\n let serverPositions = action.payload.tradingData.openPositions;\r\n return produce(state,draf=>{\r\n HandleOpenPositions(draf, serverPositions);\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nfunction HandleOpenPositions(draf, openPositions) {\r\n let serverPositions = openPositions.positions;\r\n replaceIfChanged(draf,'closeAllCommand', openPositions.closeAllCommand);\r\n draf.eventCounter = draf.eventCounter+1;\r\n let positionsToRemove = new Set();\r\n let statePositions = draf.positions;\r\n for (let statePosition of Object.values(statePositions)) {\r\n positionsToRemove.add(statePosition.id);\r\n }\r\n\r\n for (let serverPositionKey in serverPositions) {\r\n let serverPosition = serverPositions[serverPositionKey];\r\n positionsToRemove.delete(serverPosition.id);\r\n let statePosition = statePositions[serverPosition.id];\r\n if (!statePosition) {\r\n statePosition = { id: serverPosition.id, profit: { key: serverPosition.id, repId: \"PNL\" } };\r\n statePositions[serverPosition.id] = statePosition;\r\n }\r\n statePosition.tpId = serverPosition.tpId;\r\n statePosition.actionType = serverPosition.actionType;\r\n statePosition.amount = serverPosition.amount;\r\n statePosition.symbolId = serverPosition.symbolId;\r\n statePosition.symbolName = serverPosition.symbolName;\r\n statePosition.openRate = serverPosition.openRate;\r\n statePosition.openTimeUtc = serverPosition.openTimeUtc;\r\n statePosition.openTimeS = serverPosition.openTimeS;\r\n statePosition.commission = serverPosition.commission;\r\n statePosition.taxes = serverPosition.taxes;\r\n statePosition.swaps = serverPosition.swaps;\r\n statePosition.stopLoss = serverPosition.stopLoss;\r\n statePosition.takeProfit = serverPosition.takeProfit;\r\n\r\n replaceIfChanged(statePosition,'closePositionCMD', serverPosition.closePositionCMD);\r\n replaceIfChanged(statePosition,'updatePositionCMD', serverPosition.updatePositionCMD);\r\n }\r\n\r\n for (let positionToRemove of positionsToRemove) {\r\n delete statePositions[positionToRemove];\r\n }\r\n}\r\n","import produce from \"immer\"\r\nimport { replaceIfChanged } from '../StoreUtils/overrideState';\r\nconst initState = {\r\n positions:{},\r\n deleteAllCommand: null\r\n};\r\n\r\nexport const PendingType = {\r\n BuyLimit :0,\r\n SellLimit :1,\r\n BuyStop :2,\r\n SellStop :3\r\n}\r\n\r\nexport const pendingPositionsReducer = function pendingPositionsReducer(state = initState, action){\r\n switch (action.type) {\r\n case \"login-logout\":\r\n return initState;\r\n case \"init-brand+login\":\r\n {\r\n let serverPositions = action.payload.loginTradingData.tradingData.pendingPositions;\r\n return produce(state,draf=>{\r\n HandlePending(draf, serverPositions); \r\n });\r\n }\r\n case \"update-trading-data\":\r\n case \"login-success\":\r\n {\r\n let serverPositions = action.payload.tradingData.pendingPositions;\r\n return produce(state,draf=>{\r\n HandlePending(draf, serverPositions); \r\n });\r\n }\r\n default:\r\n return state; \r\n }\r\n}\r\n\r\nfunction HandlePending(draf, payload) {\r\n let serverPositions = payload.positions;\r\n replaceIfChanged(draf,'deleteAllCommand', serverPositions.deleteAllCommand);\r\n\r\n let positionsToRemove = new Set();\r\n let statePositions = draf.positions;\r\n for (let statePosition of Object.values(statePositions)) {\r\n positionsToRemove.add(statePosition.id);\r\n }\r\n\r\n for (let serverPositionKey in serverPositions) {\r\n let serverPosition = serverPositions[serverPositionKey];\r\n positionsToRemove.delete(serverPosition.id);\r\n let statePosition = statePositions[serverPosition.id];\r\n if (!statePosition) {\r\n statePosition = { id: serverPosition.id };\r\n statePositions[serverPosition.id] = statePosition;\r\n }\r\n statePosition.tpId = serverPosition.tpId;\r\n statePosition.actionType = serverPosition.actionType;\r\n statePosition.type = serverPosition.type;\r\n statePosition.expirationS = serverPosition.expirationS;\r\n statePosition.expirationUTC = serverPosition.expirationUTC;\r\n statePosition.amount = serverPosition.amount;\r\n statePosition.stopLoss = serverPosition.stopLoss;\r\n statePosition.takeProfit = serverPosition.takeProfit;\r\n statePosition.symbolId = serverPosition.symbolId;\r\n statePosition.symbolName = serverPosition.symbolName;\r\n statePosition.openRate = serverPosition.openRate;\r\n statePosition.openTimeS = serverPosition.openTimeS;\r\n statePosition.openTimeUTC = serverPosition.openTimeUTC;\r\n\r\n replaceIfChanged(statePosition,'editPendingCMD', serverPosition.editPendingCMD);\r\n replaceIfChanged(statePosition,'deletePedingCMD', serverPosition.deletePedingCMD);\r\n }\r\n\r\n for (let positionToRemove of positionsToRemove) {\r\n delete statePositions[positionToRemove];\r\n }\r\n}\r\n","import produce from \"immer\"\r\nimport { replaceIfChanged } from '../StoreUtils/overrideState';\r\nconst initState = {\r\n positions:{},\r\n getAllCommand:null,\r\n isGetAllRequsted:false\r\n};\r\n\r\nexport const closedPositionsReducer = function closedPositionsReducer(state = initState, action){\r\n switch (action.type) {\r\n case \"login-logout\":\r\n return initState;\r\n case \"closed-possitions-arrived\":\r\n {\r\n let serverClosed = action.payload.closedPositions;\r\n return produce(state,draf=>{\r\n HandleClosedPositions(draf, serverClosed);\r\n draf.isGetAllRequsted = true;\r\n }); \r\n }\r\n case \"update-trading-data\":\r\n case \"login-success\":\r\n {\r\n let serverClosed = action.payload.tradingData.closedPositions;\r\n return produce(state,draf=>{\r\n HandleClosedPositions(draf, serverClosed);\r\n });\r\n }\r\n case \"init-brand+login\":\r\n {\r\n let serverClosed = action.payload.loginTradingData.tradingData.closedPositions;\r\n return produce(state,draf=>{\r\n HandleClosedPositions(draf, serverClosed);\r\n });\r\n }\r\n default:\r\n return state; \r\n }\r\n}\r\n\r\nfunction HandleClosedPositions(draf, serverClosed) {\r\n if (draf.isGetAllRequsted)\r\n {\r\n draf.getAllCommand = null;\r\n }\r\n else\r\n {\r\n replaceIfChanged(draf,'getAllCommand', serverClosed.getAllCommand);\r\n }\r\n \r\n let statePositions = draf.positions;\r\n\r\n let serverPositions = serverClosed.positions;\r\n for (let serverPositionKey in serverPositions) {\r\n let serverPosition = serverPositions[serverPositionKey];\r\n let statePosition = statePositions[serverPosition.id];\r\n if (!statePosition) {\r\n statePosition = { id: serverPosition.id };\r\n statePositions[serverPosition.id] = statePosition;\r\n }\r\n statePosition.tpId = serverPosition.tpId;\r\n statePosition.actionType = serverPosition.actionType;\r\n statePosition.amount = serverPosition.amount;\r\n statePosition.symbolId = serverPosition.symbolId;\r\n statePosition.symbolName = serverPosition.symbolName;\r\n statePosition.openRate = serverPosition.openRate;\r\n statePosition.closeRate = serverPosition.closeRate;\r\n statePosition.openTimeS = serverPosition.openTimeS;\r\n statePosition.profit = serverPosition.profit;\r\n statePosition.takeprofit = serverPosition.takeprofit;\r\n statePosition.stoploss = serverPosition.stoploss;\r\n statePosition.closeTimeS = serverPosition.closeTimeS;\r\n statePosition.closeTimeUTC = serverPosition.closeTimeUTC;\r\n statePosition.commission = serverPosition.commission;\r\n statePosition.taxes = serverPosition.taxes;\r\n statePosition.swaps = serverPosition.swaps;\r\n statePosition.marginRate = serverPosition.marginRate;\r\n statePosition.closedMargin = serverPosition.closedMargin;\r\n\r\n statePosition.profitWithCommission = statePosition.profit + statePosition.commission + statePosition.taxes + statePosition.swaps;\r\n }\r\n\r\n return draf;\r\n}\r\n","import produce from \"immer\"\r\n\r\nconst initState = {\r\n credit:0,\r\n balance:0,\r\n margin:0,\r\n marginStatus:0,\r\n movingPL :{ key: \"MOVINGPNL\", repId: \"ACCOUNT_PNL\" }\r\n};\r\n\r\nexport const financialReducer = function financialReducer(state = initState, action,globalState){\r\n switch (action.type) { \r\n case \"login-logout\":\r\n return initState;\r\n case \"init-brand+login\":{\r\n let accountFinancial = action.payload.loginTradingData.tradingData.accountData.accountFinancial;\r\n return handleAccountUpdate(state, accountFinancial);\r\n }\r\n case \"update-trading-data\":\r\n case \"login-success\":\r\n {\r\n let accountFinancial = action.payload.tradingData.accountData.accountFinancial;\r\n return handleAccountUpdate(state, accountFinancial);\r\n }\r\n default:\r\n return state;\r\n }\r\n }\r\n \r\nfunction handleAccountUpdate(state, accountFinancial) {\r\n return produce(state, draf => {\r\n draf.credit = accountFinancial.credit;\r\n draf.balance = accountFinancial.balance;\r\n draf.margin = accountFinancial.margin;\r\n draf.marginStatus = accountFinancial.marginStatus;\r\n });\r\n}\r\n\r\n","// eslint-disable-next-line no-unused-vars\r\nimport React, { useEffect } from 'react';\r\n\r\n\r\nconst _callbacks = new Set();\r\n\r\nconst enqueueCallbacks = function(limitedList){\r\n let startLength = _callbacks.size;\r\n _callbacks.add(limitedList);\r\n if (startLength === 0)\r\n {\r\n setTimeout(()=>{\r\n let callbacks = Array.from( _callbacks.values());\r\n _callbacks.clear();\r\n for (let current of callbacks)\r\n {\r\n current._internalCallBacks();\r\n }\r\n },0);\r\n }\r\n\r\n}\r\n\r\nexport default class LimitedSizeList\r\n{\r\n #_buffer = new Map();\r\n #_callbacks = new Map();\r\n #_size;\r\n #_callbackIndex = 0;\r\n #_isInCallback = false;\r\n #_itemsToDelete = [];\r\n #_identityFunc;\r\n #_ageIndex = -1;\r\n \r\n #_ageArray;\r\n\r\n constructor(identityFunc, size)\r\n {\r\n this.#_identityFunc = identityFunc;\r\n this.#_size = size;\r\n this.#_ageArray = new Array(this.#_size); \r\n }\r\n\r\n *getStackOrder()\r\n {\r\n for (let i = 0;i= 0)\r\n {\r\n let currValue = (this.#_ageIndex -i) % this.#_size;\r\n yield this.#_buffer.get(this.#_ageArray[currValue]);\r\n }\r\n }\r\n }\r\n\r\n getUnordered()\r\n {\r\n return this.#_buffer.values();\r\n }\r\n\r\n subscribe(callback)\r\n {\r\n let index = this.#_callbackIndex++;\r\n this.#_callbacks.set(index,\r\n {\r\n deleted:false,\r\n callback:callback,\r\n });\r\n let local = this;\r\n return ()=>{\r\n if (local.#_isInCallback)\r\n {\r\n let currCallback = local.#_callbacks.get(index);\r\n if (currCallback)\r\n {\r\n currCallback.deleted = true;\r\n local.#_itemsToDelete.push(index);\r\n }\r\n }\r\n else\r\n {\r\n local.#_callbacks.delete(index);\r\n }\r\n }\r\n }\r\n\r\n subscribeReact(callback)\r\n {\r\n let disposable = null;\r\n\r\n disposable = this.subscribe(()=>{\r\n callback();\r\n disposable();\r\n });\r\n \r\n useEffect(() => {\r\n return function cleanup() {\r\n disposable();\r\n };\r\n });\r\n return disposable;\r\n }\r\n\r\n pushItem(item)\r\n {\r\n let id = this.#_identityFunc(item);\r\n let foundItem = this.#_buffer.get(id)\r\n if (foundItem)\r\n {\r\n this.#_buffer.set(id,item);\r\n }\r\n else\r\n {\r\n this.#_ageIndex++;\r\n let current = this.#_ageIndex;\r\n let ageIndex = current % this.#_size;\r\n if (ageIndex < current)\r\n {\r\n let oldItemKey = this.#_ageArray[ageIndex];\r\n this.#_buffer.delete(oldItemKey)\r\n }\r\n\r\n this.#_ageArray[ageIndex] = id;\r\n this.#_buffer.set(id,item);\r\n }\r\n\r\n if (this.#_callbacks.size)\r\n {\r\n enqueueCallbacks(this);\r\n }\r\n }\r\n\r\n _internalCallBacks()\r\n {\r\n this.#_isInCallback = true; \r\n for (const item of Array.from(this.#_callbacks.values())) {\r\n if (!item.deleted)\r\n {\r\n try\r\n {\r\n item.callback();\r\n }\r\n catch\r\n {\r\n\r\n }\r\n }\r\n }\r\n\r\n if (this.#_itemsToDelete.length)\r\n {\r\n for (let itemToDelete of this.#_itemsToDelete)\r\n {\r\n this.#_buffer.delete(itemToDelete);\r\n }\r\n this.#_itemsToDelete = []; // clear the list\r\n }\r\n this.#_isInCallback = false;\r\n }\r\n\r\n}","import LimitedSizeList from '../socialv1/limitedSizeList'\r\nimport {getStore} from '../storeContainer'\r\n\r\nlet allTrades = new LimitedSizeList(trade=>trade.TradeHash,100);\r\nlet topRankedTrades = new LimitedSizeList(trade=>trade.TradeHash,100);\r\nlet watchTraders = new LimitedSizeList(trade=>trade.TradeHash,100);\r\n\r\nexport const isSupportedSymbol = function isSupportedSymbol(trade,symbols){\r\n return !(!symbols[trade.InstrumentName]);\r\n}\r\n\r\nfunction iamWatching(storeSocial, trade) {\r\n return storeSocial.copying[trade.Nickname] ||\r\n storeSocial.following[trade.Nickname];\r\n}\r\n\r\nexport const onSocialV1TradeArrived = function(trades)\r\n{\r\n let state = getStore().getState();\r\n let storeSocial = state.account.socialv1\r\n let storeSymbols = state.account.symbols.symbols;\r\n\r\n for(let trade of trades)\r\n {\r\n if (trade.Nickname !== storeSocial.userDetails.nickname)\r\n {\r\n if (!trade.IsCopied)\r\n {\r\n if (isSupportedSymbol(trade,storeSymbols))\r\n {\r\n allTrades.pushItem(trade);\r\n \r\n if (iamWatching(storeSocial, trade))\r\n {\r\n watchTraders.pushItem(trade);\r\n }\r\n \r\n if (storeSocial.topTraders[trade.Nickname])\r\n {\r\n topRankedTrades.pushItem(trade);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport const allTradesStream = allTrades;\r\nexport const topRankedTradeStream = topRankedTrades;\r\nexport const watchTradersStream = watchTraders;\r\n","import produce from 'immer';\r\nimport { replaceIfChanged } from '../StoreUtils/overrideState';\r\nimport {\r\n allTradesStream, topRankedTradeStream, watchTradersStream, isSupportedSymbol\r\n} from './tradesStreams';\r\n\r\nexport const QUESTIONER_MODE_EXTENRAL = 'external';\r\n\r\nconst initState = {\r\n isEnabled: false,\r\n hasInit: false,\r\n hideCopyByFixedLot: false,\r\n showSocialStream: { cmd: 'TradesStrem' },\r\n initSocialDataCommand: null,\r\n moreSocialDataCommand: null,\r\n searchProfileCommand: null,\r\n socialAccount: {\r\n questionerMode: 'internal',\r\n externalRiskScore: null,\r\n queryRiskScoreCMD: null\r\n },\r\n exploreCommands: {\r\n getTopRanked: null,\r\n getMostCopied: null,\r\n getMostProfitable: null,\r\n advanceSearch: null\r\n },\r\n registrationCommands: {\r\n joinSocialCommand: null,\r\n leaveSocialCommand: null,\r\n isMasterCommand: null,\r\n generateNickNameCommand: null,\r\n updateAvatarCommand: null,\r\n updatePersonalDescriptionCommand: null,\r\n logLfsCopyRequestWithDisclaimerCommand: null,\r\n getLfsSuitabilityTestResultsCommand: null,\r\n updateLfsSuitabilityTestResultCommand: null,\r\n abandonSuitabilityTestCommand: null\r\n },\r\n copyRelationsCommands: {\r\n addFollower: null,\r\n updateFollower: null,\r\n removeFollower: null,\r\n unlinkTradeCommand: null,\r\n getClosedPositionsLinksCommand: null\r\n },\r\n profileCommands: {\r\n getUserProfilePage: null,\r\n getPortfolioBreakdown: null,\r\n getFriends: null,\r\n getPositions: null,\r\n getDataForCopy: null,\r\n getGetPlAndStats: null\r\n },\r\n tradeLinks: {},\r\n closeTradeLinks: {},\r\n copying: {},\r\n following: {},\r\n isJoined: false,\r\n topTraders: {},\r\n topTradersOrder: [],\r\n spotlightTraders: {},\r\n userDetails: {\r\n nickname: null,\r\n isEnabled: false,\r\n avatar: null\r\n },\r\n lfsRegulationsDetails: {\r\n isLfsRegulated: false,\r\n lfsFinishedSuitabilityTest: false,\r\n lfsRiskScore: 0\r\n }\r\n};\r\n\r\nexport const linkType = {\r\n Linked: 0,\r\n Unlinked: 1,\r\n Manual: 2\r\n};\r\n\r\nexport const socialv1Reducer = function generalStatusReducer(state = initState, action, globalState) {\r\n switch (action.type) {\r\n case 'login-logout':\r\n return initState;\r\n case 'init-brand+login':\r\n {\r\n const socialData = action.payload.loginTradingData.socialV1Data ?? {};\r\n return produce(state, (draf) => {\r\n handleSocialDataUpdated(draf, socialData);\r\n });\r\n }\r\n case 'login-success':\r\n {\r\n const socialData = action.payload.socialV1Data ?? {};\r\n return produce(state, (draf) => {\r\n handleSocialDataUpdated(draf, socialData);\r\n });\r\n }\r\n case 'socialv1-external-updated':\r\n {\r\n return produce(state, (draf) => {\r\n draf.socialAccount.externalRiskScore = action.payload.socialAccount.externalRiskScore;\r\n });\r\n }\r\n case 'socialv1-push-tradeLink':\r\n {\r\n return produce(state, (draf) => {\r\n const isCloseLinksHandle = false;\r\n handlePositionsLinks(draf, action.payload.tradeLinks, isCloseLinksHandle);\r\n });\r\n }\r\n case 'socialv1-closed-tradeLinks':\r\n {\r\n return produce(state, (draf) => {\r\n if (action.payload) {\r\n const isCloseLinksHandle = true;\r\n handlePositionsLinks(draf, action.payload, isCloseLinksHandle);\r\n }\r\n\r\n if (draf.copyRelationsCommands.getClosedPositionsLinksCommand && draf.copyRelationsCommands.getClosedPositionsLinksCommand.userInput.isFirstTime) {\r\n if (Object.keys(draf.closeTradeLinks).length > 0) {\r\n draf.copyRelationsCommands.getClosedPositionsLinksCommand.userInput.isFirstTime = false;\r\n }\r\n }\r\n });\r\n }\r\n case 'socialv1-init':\r\n {\r\n const socialData = action.payload;\r\n return produce(state, (draf) => {\r\n handleSocailInitData(draf, socialData);\r\n });\r\n }\r\n case 'socialv1-more-data':\r\n {\r\n const socialData = action.payload;\r\n return produce(state, (draf) => {\r\n for (const source of socialData.topRankedPerformers ?? []) {\r\n setTopTrader(source, draf.topTraders, draf.topTradersOrder);\r\n }\r\n\r\n for (const source of socialData.spotLightPerformers ?? []) {\r\n setTopTrader(source, draf.spotlightTraders, []);\r\n }\r\n\r\n if (socialData.initSocialStream) {\r\n for (const source of socialData.initSocialStream.EveryoneStream ?? []) {\r\n if (isSupportedSymbol(source, globalState.account.symbols.symbols)) {\r\n allTradesStream.pushItem(source);\r\n }\r\n }\r\n\r\n for (const source of socialData.initSocialStream.TopTradersStream ?? []) {\r\n if (isSupportedSymbol(source, globalState.account.symbols.symbols)) {\r\n topRankedTradeStream.pushItem(source);\r\n }\r\n }\r\n\r\n for (const source of socialData.initSocialStream.TradersIWatchStream ?? []) {\r\n if (isSupportedSymbol(source, globalState.account.symbols.symbols)) {\r\n watchTradersStream.pushItem(source);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n case 'socialv1-init-after-registration-action': {\r\n const socialData = action.payload.payload;\r\n return produce(state, (draf) => {\r\n handleSocailInitData(draf, socialData);\r\n });\r\n }\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nfunction handlePositionsLinks(draf, positionsLinks, isClosedLinks) {\r\n const relevantCollection = isClosedLinks ? draf.closeTradeLinks : draf.tradeLinks;\r\n for (const link of positionsLinks) {\r\n const tpId = link.PositionID.toString();\r\n let currLink = relevantCollection[tpId];\r\n\r\n if (!currLink) {\r\n currLink = {\r\n tpId\r\n };\r\n relevantCollection[tpId] = currLink;\r\n }\r\n\r\n currLink.linkType = link.TradeLinkType;\r\n currLink.sourceStopLoss = link.MasterStopLossRate;\r\n currLink.sourceTakeProfit = link.MasterTakeProfitRate;\r\n currLink.sourceNickName = link.MasterNickname;\r\n }\r\n}\r\n\r\nfunction handleSocailInitData(draf, socialData) {\r\n draf.hasInit = true;\r\n replaceIfChanged(draf, 'searchProfileCommand', socialData.searchProfileCommand);\r\n replaceIfChanged(draf.exploreCommands, 'getTopRanked', socialData.exploreCommands.getTopRanked);\r\n replaceIfChanged(draf.exploreCommands, 'getMostCopied', socialData.exploreCommands.getMostCopied);\r\n replaceIfChanged(draf.exploreCommands, 'getMostProfitable', socialData.exploreCommands.getMostProfitable);\r\n replaceIfChanged(draf.exploreCommands, 'advanceSearch', socialData.exploreCommands.advanceSearch);\r\n\r\n replaceIfChanged(draf.profileCommands, 'getUserProfilePage', socialData.profileCommands.getUserProfilePage);\r\n replaceIfChanged(draf.profileCommands, 'getPortfolioBreakdown', socialData.profileCommands.getPortfolioBreakdown);\r\n replaceIfChanged(draf.profileCommands, 'getFriends', socialData.profileCommands.getFriends);\r\n replaceIfChanged(draf.profileCommands, 'getPositions', socialData.profileCommands.getPositions);\r\n replaceIfChanged(draf.profileCommands, 'getDataForCopy', socialData.profileCommands.getDataForCopy);\r\n replaceIfChanged(draf.profileCommands, 'getGetPlAndStats', socialData.profileCommands.getGetPlAndStats);\r\n replaceIfChanged(draf.copyRelationsCommands, 'addFollower', socialData.copyRelationsCommands.addFollower);\r\n replaceIfChanged(draf.copyRelationsCommands, 'updateFollower', socialData.copyRelationsCommands.updateFollower);\r\n replaceIfChanged(draf.copyRelationsCommands, 'removeFollower', socialData.copyRelationsCommands.removeFollower);\r\n replaceIfChanged(draf.copyRelationsCommands, 'unlinkTradeCommand', socialData.copyRelationsCommands.unlinkTradeCommand);\r\n replaceIfChanged(draf.copyRelationsCommands, 'getClosedPositionsLinksCommand', socialData.copyRelationsCommands.getClosedPositionsLinksCommand);\r\n\r\n replaceIfChanged(draf.registrationCommands, 'joinSocialCommand', socialData.registrationCommands.joinSocialCommand);\r\n replaceIfChanged(draf.registrationCommands, 'isMasterCommand', socialData.registrationCommands.isMasterCommand);\r\n replaceIfChanged(draf.registrationCommands, 'leaveSocialCommand', socialData.registrationCommands.leaveSocialCommand);\r\n replaceIfChanged(draf.registrationCommands, 'generateNickNameCommand', socialData.registrationCommands.generateNickNameCommand);\r\n replaceIfChanged(draf.registrationCommands, 'updateAvatarCommand', socialData.registrationCommands.updateAvatarCommand);\r\n replaceIfChanged(draf.registrationCommands, 'updatePersonalDescriptionCommand', socialData.registrationCommands.updatePersonalDescriptionCommand);\r\n replaceIfChanged(draf.registrationCommands, 'logLfsCopyRequestWithDisclaimerCommand', socialData.registrationCommands.logLfsCopyRequestWithDisclaimerCommand);\r\n replaceIfChanged(draf.registrationCommands, 'getLfsSuitabilityTestResultsCommand', socialData.registrationCommands.getLfsSuitabilityTestResultsCommand);\r\n replaceIfChanged(draf.registrationCommands, 'updateLfsSuitabilityTestResultCommand', socialData.registrationCommands.updateLfsSuitabilityTestResultCommand);\r\n replaceIfChanged(draf.registrationCommands, 'abandonSuitabilityTestCommand', socialData.registrationCommands.abandonSuitabilityTestCommand);\r\n\r\n replaceIfChanged(draf, 'moreSocialDataCommand', socialData.moreSocialDataCommand);\r\n\r\n draf.isJoined = socialData.userData.UserDetails?.IsEnabled;\r\n draf.userDetails.nickname = socialData.userData.UserDetails?.Nickname;\r\n draf.userDetails.isEnabled = socialData.userData.UserDetails?.IsEnabled;\r\n draf.userDetails.avatar = socialData.userData.UserDetails?.Avatar;\r\n\r\n draf.lfsRegulationsDetails.isLfsRegulated = socialData.userData.IsLfsRegulated;\r\n draf.lfsRegulationsDetails.lfsFinishedSuitabilityTest = socialData.userData.LfsFinishedSuitabilityTest;\r\n draf.lfsRegulationsDetails.lfsRiskScore = socialData.userData.LfsRiskScore;\r\n\r\n if (socialData.socialAccount) {\r\n //draf.socialAccount.questionerMode = QUESTIONER_MODE_EXTENRAL;\r\n //draf.socialAccount.externalRiskScore = 3 //socialData.socialAccount.externalRiskScore;\r\n\r\n draf.socialAccount.questionerMode = socialData.socialAccount.questionerMode;\r\n draf.socialAccount.externalRiskScore = socialData.socialAccount.externalRiskScore;\r\n \r\n replaceIfChanged(draf.socialAccount, 'queryRiskScoreCMD', socialData.socialAccount.queryRiskScoreCMD);\r\n }\r\n\r\n if (socialData.userData.TradesLiks) {\r\n const isCloseLinksHandle = false;\r\n handlePositionsLinks(draf, socialData.userData.TradesLiks, isCloseLinksHandle);\r\n }\r\n\r\n if (socialData.userData.TraderMasters) {\r\n for (const source of socialData.userData.TraderMasters) {\r\n draf.copying[source] = true;\r\n }\r\n }\r\n\r\n if (socialData.userData.TraderFollowMasters) {\r\n for (const source of socialData.userData.TraderFollowMasters) {\r\n draf.following[source] = true;\r\n }\r\n }\r\n\r\n if (socialData.userData.FeaturedTraders) {\r\n for (const source of socialData.userData.FeaturedTraders) {\r\n setTopTrader(source, draf.topTraders, draf.topTradersOrder);\r\n }\r\n }\r\n\r\n if (socialData.userData.TopTraders) {\r\n for (const source of socialData.userData.TopTraders) {\r\n setTopTrader(source, draf.topTraders, draf.topTradersOrder);\r\n }\r\n }\r\n}\r\n\r\nfunction setTopTrader(source, tradersObject, tradersArray) {\r\n if (source.Nickname) {\r\n let trader = tradersObject[source.Nickname];\r\n if (!trader) {\r\n if (tradersArray) {\r\n tradersArray.push(source.Nickname);\r\n }\r\n\r\n trader = { Nickname: source.Nickname };\r\n\r\n tradersObject[source.Nickname] = trader;\r\n }\r\n\r\n trader.Avatar = source.Avatar;\r\n trader.JoinDate = source.JoinDate;\r\n trader.Country = source.Country;\r\n trader.Copiers = source.Copiers;\r\n trader.Profit = source.Profit;\r\n trader.Rank = source.Rank;\r\n trader.WinRatio = source.WinRatio;\r\n trader.MaxSingleTradeProfit = source.MaxSingleTradeProfit;\r\n trader.AverageDaily = source.AverageDaily;\r\n trader.AverageCopySlippage = source.AverageCopySlippage;\r\n trader.CopySlippageRank = source.CopySlippageRank;\r\n trader.PnLGraph = source.PnLGraph;\r\n trader.TradingRiskLevel = source.TradingRiskLevel;\r\n trader.AddedReason = source.AddedReason;\r\n }\r\n}\r\n\r\nfunction handleSocialDataUpdated(state, socialData) {\r\n state.isEnabled = socialData.isEnabled;\r\n state.hideCopyByFixedLot = socialData.hideCopyByFixedLot;\r\n replaceIfChanged(state, 'initSocialDataCommand', socialData.initSocialDataCommand);\r\n}\r\n","//import { combineReducers } from 'redux'\r\nimport combineReducers from 'combine-reducers-global-state';\r\nimport {brandReducer} from './brandReducer';\r\nimport {urlParametersReducer} from './urlParametersReducer';\r\nimport {environmentsReducer} from './environmentsReducer';\r\nimport {accountInfoReducer} from './accountInfoReducer';\r\nimport {generalStatusReducer} from \"./generalStatusReducer\";\r\nimport {symbolsReducer} from \"./symbolsReducer\";\r\nimport {openPositionsReducer} from \"./openPositionsReducer\";\r\nimport {pendingPositionsReducer} from \"./pendingPositionReducer\";\r\nimport {closedPositionsReducer} from \"./closedPositionsReducer\";\r\nimport {financialReducer} from \"./financialReducer\";\r\nimport {socialv1Reducer} from \"../socialv1/socialv1Reducer\";\r\n\r\nexport const mainReducer = combineReducers({urlParameters:urlParametersReducer,\r\n generalStatus: generalStatusReducer,\r\n brand:brandReducer,\r\n environments:environmentsReducer,\r\n account:combineReducers({accountInfo:accountInfoReducer,\r\n financial:financialReducer,\r\n socialv1:socialv1Reducer,\r\n symbols:symbolsReducer,\r\n positions:combineReducers({\r\n open:openPositionsReducer,\r\n pending:pendingPositionsReducer,\r\n closed:closedPositionsReducer\r\n })\r\n })\r\n });","import {adjustURL} from './mobileUrlService'\r\n\r\nexport const STDCMDAsyncServerCmdID = \"STD.CMD.AsyncServer\"; \r\n\r\n\r\n\r\nexport async function STDCMDAsyncServerHandler(cmd,userInput)\r\n{\r\n let store = cmd.getStore();\r\n let staticData = cmd.getStatic();\r\n let storeData = cmd.getStoreData();\r\n if (!userInput)\r\n {\r\n userInput = cmd.getUserInput();\r\n }\r\n \r\n if (staticData.postUrl)\r\n {\r\n fetch(adjustURL(staticData.postUrl),{\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json;charset=utf-8',\r\n 'superweb-session':window.sessionStorage.getItem('superweb-session') ?? ''\r\n },\r\n body: JSON.stringify({\r\n userInput: userInput,\r\n storeData: storeData,\r\n staticData:staticData})\r\n });\r\n }\r\n\r\n if (staticData.type)\r\n {\r\n let f = store.dispatch({\r\n type:staticData.type,\r\n payload:userInput,\r\n storeData: storeData,\r\n staticData:staticData,\r\n });\r\n\r\n return f;\r\n }\r\n\r\n} \r\n","import { CommandFactory } from \"./CommandFactory\";\r\nimport {adjustURL} from './mobileUrlService'\r\n\r\nexport const STDCMDServerCmdID = \"STD.CMD.Server\"; \r\n\r\nexport async function STDCMDServerHandler(cmd,userInput)\r\n{\r\n let staticData = cmd.getStatic();\r\n let storeData = cmd.getStoreData();\r\n\r\n if (!userInput)\r\n {\r\n userInput = cmd.getUserInput();\r\n }\r\n \r\n if (staticData.postUrl)\r\n {\r\n try\r\n {\r\n let response = await fetch(adjustURL(staticData.postUrl),{\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json;charset=utf-8',\r\n 'superweb-session':window.sessionStorage.getItem('superweb-session') ?? ''\r\n },\r\n body: JSON.stringify({\r\n userInput: userInput,\r\n staticData: staticData,\r\n storeData: storeData})\r\n });\r\n\r\n if (!response.ok){\r\n // Server Error\r\n return response;\r\n }\r\n else{\r\n let data = await response.json();\r\n if (data)\r\n {\r\n if (CommandFactory.isCommand(data))\r\n {\r\n var res = CommandFactory.createCommand({cmdId:data.cmdId,storeRef:data.storeRef, staticParams:{type:data.storeDispatch}, userInput:data.payload}).execute();\r\n if (res)\r\n {\r\n await res;\r\n }\r\n }\r\n }\r\n\r\n return data;\r\n }\r\n }\r\n catch\r\n {\r\n // Server Error\r\n return null;\r\n }\r\n }\r\n\r\n // Invalid CMD\r\n return null;\r\n} ","import CommandFactory from '../commands/CommandFactory'\r\nimport {CMDChartCmdID} from './chartCommand'\r\n\r\nconst MAX_BAR_TIME = 2524608000000; // Year 2050\r\n\r\nclass period\r\n{\r\n Period1Minute = 1;\r\n Period5Minutes = 5;\r\n Period15Minutes = 15;\r\n Period30Minutes = 30;\r\n Period1Hour = 60;\r\n Period4Hours = 240;\r\n Period1Day = 1440;\r\n Period1Week = 10080;\r\n Period1Month = 43200;\r\n};\r\n\r\nconst PeriodInstance = new period();\r\n\r\nlet getBarTime = function(year,month,day,dateofweek,hours,minutes,period)\r\n{\r\n switch (period)\r\n {\r\n case PeriodInstance.Period1Minute:\r\n return new Date(Date.UTC(year,month,day,hours,minutes,0,0));\r\n case PeriodInstance.Period5Minutes:\r\n return new Date(Date.UTC(year,month,day,hours,minutes - (minutes%5),0,0));\r\n case PeriodInstance.Period15Minutes:\r\n return new Date(Date.UTC(year,month,day,hours,minutes - (minutes%15),0,0));\r\n case PeriodInstance.Period30Minutes:\r\n return new Date(Date.UTC(year,month,day,hours,minutes - (minutes%30),0,0));\r\n case PeriodInstance.Period1Hour:\r\n return new Date(Date.UTC(year,month,day,hours,0,0,0));\r\n case PeriodInstance.Period4Hours:\r\n return new Date(Date.UTC(year,month,day,hours -(hours%4),0,0,0));\r\n case PeriodInstance.Period1Day:\r\n return new Date(Date.UTC(year,month,day,0,0,0,0));\r\n case PeriodInstance.Period1Week:\r\n return new Date(Date.UTC(year,month,day - (dateofweek-1),0,0,0,0));\r\n case PeriodInstance.Period1Month:\r\n return new Date(Date.UTC(year,month,0,0,0,0,0));\r\n default:\r\n return new Date(Date.UTC(year,month,day,hours,minutes,0,0));\r\n }\r\n}\r\n\r\n\r\nclass chartService\r\n{\r\n constructor() {\r\n this._chartData = new Map();\r\n this._tickData = new Map();\r\n this._idSeq = 0;\r\n }\r\n\r\n async getMoreBars(cmd, period,barCount,timestampFrom)\r\n {\r\n let command = CommandFactory.createCommand(cmd);\r\n let symbolId =command.getStatic().symbolId\r\n let key = `${symbolId}|${period}`;\r\n let chartData = this._chartData.get(key);\r\n if (chartData)\r\n {\r\n if (chartData.hasMore)\r\n {\r\n let command = CommandFactory.createCommand(cmd);\r\n return await command.execute(Object.assign({},command.getUserInput(),{period:period,barCount:barCount,from:timestampFrom,relativeCharting:true}));\r\n }\r\n }\r\n }\r\n\r\n getOldestBar(symbolId,period)\r\n {\r\n let key = `${symbolId}|${period}`;\r\n let chartData = this._chartData.get(key);\r\n if (chartData)\r\n {\r\n return chartData.oldestBarTime;\r\n }\r\n\r\n return MAX_BAR_TIME;\r\n }\r\n\r\n subscribe(cmd, period,barCount, callback)\r\n {\r\n let command = CommandFactory.createCommand(cmd);\r\n let symbolId =command.getStatic().symbolId\r\n\r\n command.execute(Object.assign({},command.getUserInput(),{period:period,barCount:barCount,relativeCharting:true}));\r\n\r\n let seq = this._idSeq++;\r\n let disposed = false;\r\n let key = `${symbolId}|${period}`;\r\n let chartData = this._chartData.get(key);\r\n\r\n if (!chartData)\r\n {\r\n let resolutionFunc = null;\r\n let promise = new Promise((promisResolutionFunc)=>{ resolutionFunc = promisResolutionFunc});\r\n chartData = {\r\n subscriptionPromiseAction: resolutionFunc,\r\n subscriptionPromise: promise,\r\n hasData: false,\r\n callbacks:new Map(),\r\n barsMap:new Map(),\r\n oldestBarTime:MAX_BAR_TIME \r\n };\r\n this._chartData.set(key,chartData);\r\n }\r\n\r\n chartData.subscriptionPromise.then(()=>{\r\n if (!disposed)\r\n {\r\n let arrayOfdata =[]\r\n for (let value of chartData.barsMap.values()) {\r\n arrayOfdata.push(value);\r\n }\r\n \r\n arrayOfdata.sort(function(a, b) {return a[0] - b[0];});\r\n \r\n var callbackAction = callback(arrayOfdata);\r\n if (callbackAction === true)\r\n {\r\n chartData.callbacks.set(seq,callback);\r\n }\r\n }\r\n });\r\n\r\n return {\r\n promise:chartData.subscriptionPromise,\r\n dispose:()=>{ \r\n disposed = true;\r\n chartData.callbacks.delete(seq);\r\n }\r\n } \r\n }\r\n\r\n updateData(symbolId,period,bars,hasMore)\r\n {\r\n let key = `${symbolId}|${period}`;\r\n let chartData = this._chartData.get(key);\r\n if (!chartData)\r\n {\r\n let resolutionFunc = null;\r\n let promise = new Promise((promisResolutionFunc)=>{ resolutionFunc = promisResolutionFunc});\r\n chartData = {\r\n subscriptionPromiseAction: resolutionFunc,\r\n subscriptionPromise: promise,\r\n hasData: true,\r\n hasMore: (hasMore === undefined) ? false:hasMore,\r\n barsMap:new Map(),\r\n oldestBarTime:MAX_BAR_TIME,\r\n };\r\n this._chartData.set(key,chartData);\r\n }\r\n if (hasMore !== undefined)\r\n {\r\n chartData.hasMore = hasMore;\r\n }\r\n\r\n\r\n let arrayOfdata =[]\r\n for(var bar of bars)\r\n {\r\n let localtime = new Date(bar.ServerTimeStamp);\r\n let utcTime = new Date(bar.ServerTimeStampUTC);\r\n let currBar = [localtime,utcTime,bar.Open,bar.High,bar.Low,bar.Close,bar.Close];\r\n arrayOfdata.push(currBar);\r\n if (chartData.oldestBarTime > bar.ServerTimeStamp)\r\n {\r\n chartData.oldestBarTime = bar.ServerTimeStamp;\r\n }\r\n\r\n chartData.barsMap.set(localtime.getTime(),currBar)\r\n }\r\n\r\n arrayOfdata.sort(function(a, b) {return a[0] - b[0];});\r\n \r\n // Update the latest bar...\r\n let currentTick = this._tickData.get(symbolId);\r\n if (currentTick)\r\n {\r\n let tickTime = new Date(currentTick.t);\r\n let year = tickTime.getUTCFullYear();\r\n let month =tickTime.getUTCMonth();\r\n let day =tickTime.getUTCDate();\r\n let dayofweek = tickTime.getUTCDay();\r\n let hours = tickTime.getUTCHours();\r\n let minutes = tickTime.getUTCMinutes();\r\n\r\n let offset = currentTick.t - currentTick.tu;\r\n \r\n let currBar = this._updateBarStateWithTick(getBarTime(year,month,day,dayofweek,hours,minutes,period),offset, currentTick, chartData);\r\n if (currBar)\r\n {\r\n arrayOfdata.push(currBar);\r\n }\r\n }\r\n\r\n chartData.hasData = true;\r\n chartData.subscriptionPromiseAction();\r\n\r\n let lstRemoveCallbacks = [];\r\n for (let callback of chartData.callbacks.values()) {\r\n let x = callback(arrayOfdata);\r\n if (!x)\r\n {\r\n lstRemoveCallbacks.push(callback);\r\n }\r\n }\r\n lstRemoveCallbacks.forEach(callback => {chartData.callbacks.delete(callback);});\r\n }\r\n\r\n _processTick(tick,barTime,period)\r\n {\r\n var offset = tick.t - tick.tu;\r\n let key = `${tick.sm}|${period}`;\r\n let chartData = this._chartData.get(key);\r\n if (chartData && chartData.hasData)\r\n {\r\n let lstRemoveCallbacks = null;\r\n let prevBarToPublish = null;\r\n if (!chartData.barsMap.get(barTime.getTime()))\r\n {\r\n if (chartData.latestPublish)\r\n {\r\n let prevBar = chartData.barsMap.get(chartData.latestPublish);\r\n if (prevBar)\r\n {\r\n let rebuildBar = [...prevBar];\r\n rebuildBar[5] = rebuildBar[6]; // Set User Close to Absulute Close.\r\n chartData.barsMap.set(chartData.latestPublish, rebuildBar);\r\n prevBarToPublish = rebuildBar;\r\n }\r\n }\r\n }\r\n\r\n let publishBar = this._updateBarStateWithTick(barTime, offset, tick, chartData);\r\n if (publishBar)\r\n {\r\n if (chartData.oldestBarTime > barTime)\r\n {\r\n chartData.oldestBarTime = barTime;\r\n }\r\n\r\n chartData.barsMap.set(barTime.getTime(),publishBar);\r\n\r\n /*if (prevBarTime !== MIN_BAR_TIME && prevBarTime !== publishBar[0])\r\n {\r\n let prevBar = chartData.barsMap.get(prevBarTime);\r\n if (prevBar)\r\n {\r\n let rebuildBar = [...prevBar];\r\n rebuildBar[5] = rebuildBar[6]; // Set User Close to Absulute Close.\r\n chartData.barsMap.set(prevBarTime, rebuildBar);\r\n prevBarToPublish = rebuildBar;\r\n }\r\n }*/\r\n\r\n chartData.latestPublish = publishBar[0].getTime();\r\n for (let callback of chartData.callbacks.values()) {\r\n let x = null;\r\n if (prevBarToPublish) {\r\n x = callback([prevBarToPublish,publishBar]);\r\n }\r\n else{\r\n x = callback([publishBar]);\r\n }\r\n\r\n if (!x)\r\n {\r\n if (!lstRemoveCallbacks)\r\n {\r\n lstRemoveCallbacks = [];\r\n }\r\n lstRemoveCallbacks.push(callback);\r\n }\r\n }\r\n if (lstRemoveCallbacks)\r\n {\r\n lstRemoveCallbacks.forEach(callback => {\r\n chartData.callbacks.delete(callback);\r\n });\r\n }\r\n\r\n }\r\n }\r\n }\r\n\r\n _updateBarStateWithTick(barTime,offset, tick, chartData) {\r\n // We dont to any thing with the utc for now...\r\n let publishBar =null;\r\n let currentBar = chartData.barsMap.get(barTime.getTime());\r\n\r\n if (!currentBar) {\r\n publishBar = [barTime, barTime - offset, tick.b1o, tick.b1h, tick.b1l, tick.b, tick.b1c];\r\n chartData.barsMap.set(barTime.getTime(), publishBar);\r\n }\r\n else {\r\n\r\n if (currentBar[3] < tick.b1h) {\r\n if (!publishBar)\r\n publishBar = [...currentBar];\r\n publishBar[3] = tick.b1h;\r\n }\r\n\r\n if (currentBar[4] > tick.b1l) {\r\n if (!publishBar)\r\n publishBar = [...currentBar];\r\n publishBar[4] = tick.b1l;\r\n }\r\n\r\n if (currentBar[6] !== tick.b1c) {\r\n if (!publishBar)\r\n publishBar = [...currentBar];\r\n publishBar[6] = tick.b1c;\r\n }\r\n\r\n if (currentBar[5] !== tick.b) {\r\n if (!publishBar)\r\n publishBar = [...currentBar];\r\n publishBar[5] = tick.b;\r\n }\r\n }\r\n return publishBar;\r\n }\r\n\r\n onTicks(ticks)\r\n {\r\n for(let tick of ticks)\r\n {\r\n let currentTick = this._tickData.get(tick.sm);\r\n if (!currentTick){\r\n currentTick ={\r\n sm:tick.sm\r\n };\r\n this._tickData.set(tick.sm,currentTick);\r\n }\r\n \r\n currentTick.a = tick.a;\r\n currentTick.b = tick.b;\r\n currentTick.t = tick.t;\r\n currentTick.tu = tick.tu;\r\n currentTick.b1o = tick.b1o;\r\n currentTick.b1h = tick.b1h;\r\n currentTick.b1l = tick.b1l;\r\n currentTick.b1c = tick.b1c;\r\n\r\n let tickTime = new Date(tick.t);\r\n let year = tickTime.getUTCFullYear();\r\n let month =tickTime.getUTCMonth();\r\n let day =tickTime.getUTCDate();\r\n let dayofweek = tickTime.getUTCDay();\r\n let hours = tickTime.getUTCHours();\r\n let minutes = tickTime.getUTCMinutes();\r\n \r\n this._processTick(tick,getBarTime(year,month,day,dayofweek,hours,minutes,PeriodInstance.Period1Minute),PeriodInstance.Period1Minute);\r\n this._processTick(tick,getBarTime(year,month,day,dayofweek,hours,minutes,PeriodInstance.Period5Minutes),PeriodInstance.Period5Minutes);\r\n this._processTick(tick,getBarTime(year,month,day,dayofweek,hours,minutes,PeriodInstance.Period15Minutes),PeriodInstance.Period15Minutes);\r\n this._processTick(tick,getBarTime(year,month,day,dayofweek,hours,minutes,PeriodInstance.Period30Minutes),PeriodInstance.Period30Minutes);\r\n this._processTick(tick,getBarTime(year,month,day,dayofweek,hours,minutes,PeriodInstance.Period1Hour),PeriodInstance.Period1Hour);\r\n this._processTick(tick,getBarTime(year,month,day,dayofweek,hours,minutes,PeriodInstance.Period4Hours),PeriodInstance.Period4Hours);\r\n this._processTick(tick,getBarTime(year,month,day,dayofweek,hours,minutes,PeriodInstance.Period1Day),PeriodInstance.Period1Day);\r\n this._processTick(tick,getBarTime(year,month,day,dayofweek,hours,minutes,PeriodInstance.Period1Week),PeriodInstance.Period1Week);\r\n this._processTick(tick,getBarTime(year,month,day,dayofweek,hours,minutes,PeriodInstance.Period1Month),PeriodInstance.Period1Month);\r\n }\r\n }\r\n\r\n isRequsetRequired(symbolId,period)\r\n {\r\n let symbolData = this._chartData.get(`${symbolId}|${period}`)\r\n if (symbolData)\r\n {\r\n if (symbolData.hasData)\r\n {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n isChart(instance)\r\n {\r\n if (instance && typeof instance === 'object')\r\n {\r\n if (instance.cmdId === CMDChartCmdID)\r\n {\r\n return true;\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport const Period = PeriodInstance;\r\nexport const ChartService = new chartService();","import {WebsocketConnection} from \"./WebsocketConnection\"\r\nimport {TicksRepository} from \"../repositories/TicksRepository\"\r\nimport {ChartService} from '../../background/chart/ChartService'\r\nimport CommandFactory from \"../commands/CommandFactory\"\r\nimport {onSocialV1TradeArrived} from \"../socialv1/tradesStreams\"\r\nimport {getStore} from '../storeContainer'\r\nimport {StatusModes} from '../reducers/generalStatusReducer'\r\n\r\nlet shouldRefresh = false;\r\nlet _lastChartSubscription = null;\r\nlet _ackFunction = ()=>{};\r\n\r\nconst ticks_connection = new WebsocketConnection({\r\n TicksV2:function(ticks,socket) {\r\n for (let i =0;i\r\n ChartService.updateData(barsByTopic[e].symbol,barsByTopic[e].period,barsByTopic[e].bars,undefined)\r\n );\r\n },\r\n Ticks:function(ticks,socket) {\r\n TicksRepository.publish(ticks);\r\n ChartService.onTicks(ticks);\r\n },\r\n __open:(messages,socket)=>{\r\n if (_lastChartSubscription)\r\n {\r\n socket.send(JSON.stringify(_lastChartSubscription));\r\n }\r\n },\r\n __closed:(messages,socket)=>\r\n {\r\n shouldRefresh = true;\r\n },\r\n KA: (messages,socket)=>{\r\n _ackFunction = ()=>{socket.send('{\"Type\":\"ACK\"}')};\r\n requestAnimationFrame(()=>\r\n {\r\n try\r\n {\r\n _ackFunction();\r\n }\r\n catch{}\r\n finally{\r\n _ackFunction = ()=>{};\r\n }\r\n\r\n });\r\n if (shouldRefresh)\r\n {\r\n shouldRefresh =false;\r\n if (getStore().getState().account.accountInfo.refreshStateCommand)\r\n {\r\n CommandFactory.createCommand(getStore().getState().account.accountInfo.refreshStateCommand).execute({mode:'reconnection_refresh'})\r\n }\r\n }\r\n },\r\n SOCIALV1_TRADES:function(trades){\r\n onSocialV1TradeArrived(trades);\r\n },\r\n Command:function(commands)\r\n {\r\n for (let i = 0;i{\r\n let previousValue = currentValue\r\n currentValue = select(store.getState())\r\n if (previousValue !== currentValue) {\r\n updateFunction();\r\n }});\r\n}\r\n\r\nexport const wsChartSubscription = (msg)=>{\r\n _lastChartSubscription = msg;\r\n ticks_connection.send(msg);\r\n};\r\n\r\n\r\n","import {toWsUrl} from '../commands/mobileUrlService'\r\nimport pako from 'pako';\r\n\r\nexport class WebsocketConnection {\r\n constructor(messageHanlders){\r\n this.messageHanlders = messageHanlders;\r\n this.webSocket = null;\r\n this.url = \"/api/ws\";\r\n this._stop = false;\r\n this.start = this.start.bind(this);\r\n this.stop = this.stop.bind(this);\r\n this._wasConnected = false;\r\n this.status = 'offline';\r\n this.host = '';\r\n\r\n let local =this;\r\n }\r\n\r\n stop()\r\n {\r\n this._stop = true;\r\n if (this.webSocket)\r\n {\r\n this.webSocket.close();\r\n }\r\n }\r\n\r\n send(msg)\r\n {\r\n if (this.webSocket)\r\n {\r\n if (this.status == 'open')\r\n {\r\n this.webSocket.send(JSON.stringify(msg));\r\n }\r\n }\r\n }\r\n\r\n start()\r\n {\r\n if (this.webSocket)\r\n {\r\n this.webSocket.close();\r\n }\r\n let session = encodeURIComponent(window.sessionStorage.getItem('superweb-session') ?? '');\r\n this.webSocket = new WebSocket(toWsUrl(`${this.url}?_dc=${Date.now()}&relativeCharting=true&compressed=true&token=${session}`));\r\n\r\n this.status = 'connecting';\r\n this._stop = false;\r\n let socket = this.webSocket;\r\n let local =this;\r\n this.webSocket.onopen = ()=>{\r\n local.status = 'open';\r\n local._system_message(socket,\"__open\");\r\n if (local._wasConnected)\r\n {\r\n local._system_message(socket,\"__reconnected\");\r\n }\r\n local._wasConnected = true;\r\n };\r\n\r\n this.webSocket.onerror = this._onSocketClosed.bind(this);\r\n this.webSocket.onclose = this._onSocketClosed.bind(this);\r\n this.webSocket.onmessage = (d)=>{\r\n var socketDataObj = null;\r\n if (d.data instanceof ArrayBuffer)\r\n {\r\n let inflator = new pako.Inflate({\r\n to:\"string\"\r\n });\r\n inflator.push(d.data,true);\r\n socketDataObj = inflator.result;\r\n }\r\n else if (d.data instanceof Blob)\r\n {\r\n let local = this;\r\n d.data.arrayBuffer().then(buffer=>{\r\n if (buffer)\r\n {\r\n let inflator = new pako.Inflate({\r\n to:\"string\"\r\n });\r\n inflator.push(buffer,true);\r\n var socketData = inflator.result;\r\n if (socketData)\r\n {\r\n var jsonData = JSON.parse(socketData);\r\n if (jsonData.Type)\r\n {\r\n let handler = local.messageHanlders[jsonData.Type];\r\n if (handler)\r\n {\r\n handler(jsonData.PayLoad,socket);\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }\r\n else if (typeof d.data === \"string\")\r\n {\r\n socketDataObj = d.data;\r\n }\r\n\r\n if (socketDataObj)\r\n {\r\n try\r\n {\r\n var jsonData = JSON.parse(socketDataObj);\r\n if (jsonData?.Type)\r\n {\r\n let handler = this.messageHanlders[jsonData.Type];\r\n if (handler)\r\n {\r\n handler(jsonData.PayLoad,socket);\r\n }\r\n }\r\n }\r\n catch(e)\r\n {\r\n console.error(e,socketDataObj);\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n _system_message(socket,systemType)\r\n {\r\n let handler = this.messageHanlders[systemType];\r\n if (handler)\r\n {\r\n handler([],socket);\r\n }\r\n }\r\n\r\n _onSocketClosed(event)\r\n {\r\n if (this.status != 'offline')\r\n {\r\n this.status = 'offline';\r\n this._system_message(this.webSocket,\"__closed\");\r\n\r\n let webSocket = this.webSocket;\r\n let thisScope = this;\r\n \r\n setTimeout(function(){\r\n if (!thisScope._stop)\r\n {\r\n if (webSocket === thisScope.webSocket)\r\n {\r\n thisScope.start()\r\n }\r\n }}, 1000);\r\n }\r\n }\r\n}\r\n","import { Capacitor } from '@capacitor/core';\r\n\r\nexport const adjustURL = (relative_url)=>\r\n{\r\n return relative_url; \r\n}\r\n\r\nexport const toWsUrl = (relative_url)=>\r\n{\r\n const protocolPrefix = window.location.protocol === 'https:' ? 'wss:' : 'ws:';\r\n let { host } = window.location;\r\n return `${protocolPrefix}//${host}${relative_url}`;\r\n}","import {ChartService} from './ChartService'\r\nimport {adjustURL} from '../commands/mobileUrlService'\r\nimport { wsChartSubscription } from '../WebSocket/websocketListener';\r\n\r\nexport const CMDChartCmdID = \"STD.CMD.ChartBars\"; \r\n\r\nexport async function CMDChartsHandler(cmd,userInput)\r\n{\r\n let staticData = cmd.getStatic();\r\n if (!userInput)\r\n {\r\n userInput = cmd.getUserInput();\r\n }\r\n\r\n let response = await fetch(adjustURL(staticData.postUrl),{\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json;charset=utf-8',\r\n 'superweb-session':window.sessionStorage.getItem('superweb-session') ?? ''\r\n },\r\n body: JSON.stringify({\r\n staticData: staticData,\r\n userInput: userInput})\r\n });\r\n\r\n if (!response.ok){\r\n // Server Error\r\n //return null;\r\n }\r\n else{\r\n let data = await response.json();\r\n if (data)\r\n {\r\n if (data.isSuccessful)\r\n {\r\n ChartService.updateData(staticData.symbolId,userInput.period, data.bars,data.hasMore);\r\n try\r\n {\r\n wsChartSubscription({Type:'ChartSubscription',Symbol:staticData.symbolId,Period:userInput.period});\r\n }\r\n catch\r\n {\r\n \r\n }\r\n return data.hasMore;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n} ","export const STDCMDStoreCmdID = \"STD.CMD.Store\"; \r\n\r\nexport async function STDCMDStoreHandler(cmd,userInput)\r\n{\r\n let store = cmd.getStore();\r\n let staticData = cmd.getStatic();\r\n \r\n if (!userInput)\r\n {\r\n userInput = cmd.getUserInput();\r\n }\r\n\r\n var f = store.dispatch({\r\n type:staticData.type,\r\n payload:userInput\r\n });\r\n\r\n return f;\r\n} \r\n","import {getStore} from '../storeContainer'\r\n\r\nlet updateFunction = function()\r\n{\r\n let store = getStore().getState();\r\n window.document.title= store.brand.generalInfo.windowTitle;\r\n \r\n var link = document.querySelector(\"link[rel*='icon']\") || document.createElement('link');\r\n link.type = 'image/x-icon';\r\n link.rel = 'shortcut icon';\r\n link.href = store.brand.generalInfo.favIcon;\r\n document.getElementsByTagName('head')[0].appendChild(link);\r\n}\r\n\r\nexport default function Init()\r\n{\r\n let store = getStore();\r\n function select(state) {\r\n return state.brand.generalInfo;\r\n }\r\n \r\n let currentValue = select(store.getState());\r\n \r\n store.subscribe(()=>{\r\n let previousValue = currentValue\r\n currentValue = select(store.getState())\r\n if (previousValue !== currentValue) {\r\n updateFunction();\r\n }});\r\n}","import {TicksRepository} from '../../background/repositories/TicksRepository'\r\nimport {ProfitsRepository,AccountMovingPLRepository} from '../../background/repositories/ProfitsRepository'\r\nimport {ProfitCalculationModes} from '../../background/reducers/symbolsReducer'\r\nimport {ActionType} from '../reducers/openPositionsReducer'\r\nimport {getStore} from '../storeContainer';\r\n\r\nexport const round = (value, decimals) => {\r\n return Math.abs(value) < 0.000001 ? Math.round(value * 10 ** decimals) / 10 ** decimals\r\n : Number(Math.round(value + 'e' + decimals) + 'e-' + decimals);\r\n};\r\n\r\nconst calculateMovingProfits = function(profitObj,position,tick,symbol)\r\n{\r\n let currentPrice = tick.ask;\r\n let convertion = tick.askProfitConversion;\r\n if (position.actionType === ActionType.Buy){\r\n currentPrice = tick.bid;\r\n convertion = tick.bidProfitConversion;\r\n }\r\n\r\n profitObj.diff = round((position.actionType === ActionType.Buy ? (currentPrice - position.openRate):(position.openRate - currentPrice)),12);\r\n profitObj.pipDiff = round(profitObj.diff * Math.pow(10,symbol.pipDigit),6);\r\n\r\n let profit = ProfitCalculationService.calculateProfit(symbol,position.actionType,position.amount,position.openRate,currentPrice,convertion);\r\n if (profit === null)\r\n {\r\n profitObj.isValidProfit = false;\r\n }\r\n else\r\n {\r\n profitObj.profit = profit;\r\n profitObj.profitWithCommitions = profit + position.swaps + position.taxes + position.commission;\r\n profitObj.isValidProfit = true;\r\n }\r\n}\r\n\r\nTicksRepository.subscribeEventsNative((changes)=>{\r\n let changed = false;\r\n for (let i=0 ;i{\r\n let previousValue = currOpenPositions;\r\n let previousSymbols = currSymbols;\r\n let prevfinancial = currFinancial;\r\n \r\n currOpenPositions = store.getState().account.positions.open.positions;\r\n currSymbols = store.getState().account.symbols.symbols;\r\n currFinancial = store.getState().account.financial;\r\n \r\n if (previousValue !== currOpenPositions ||\r\n previousSymbols !== currSymbols ||\r\n prevfinancial !== currFinancial) {\r\n updateFunction();\r\n };\r\n });\r\n}","import {getStore} from \"../storeContainer\"\r\nimport CommandFactory from '../commands/CommandFactory';\r\n\r\nlet evaluateSession = function()\r\n{\r\n let store = getStore()\r\n if (store)\r\n {\r\n let state = store.getState();\r\n let renewSessionCommand = state?.account?.accountInfo?.renewSessionCommand;\r\n if (renewSessionCommand)\r\n {\r\n if (CommandFactory.isCommand(renewSessionCommand))\r\n {\r\n CommandFactory.createCommand(renewSessionCommand).execute();\r\n }\r\n }\r\n }\r\n}\r\n\r\nclass RenewSessionService\r\n{\r\n constructor()\r\n {\r\n this._interval = null;\r\n }\r\n\r\n start()\r\n {\r\n if (this._interval)\r\n {\r\n clearInterval(this._interval);\r\n this._interval = null;\r\n }\r\n if (!this._interval)\r\n {\r\n this._interval = setInterval(evaluateSession, 1000*60*8);\r\n }\r\n }\r\n}\r\n\r\nexport default new RenewSessionService();","import {getStore} from '../storeContainer'\r\nimport {CommandFactory} from '../commands/CommandFactory'\r\n\r\nlet firstCallUpdate = async function(retryAttempt)\r\n{\r\n let social = getStore().getState().account.socialv1;\r\n if (social.isEnabled)\r\n {\r\n if (social.initSocialDataCommand)\r\n {\r\n let res = await CommandFactory.createCommand(social.initSocialDataCommand).execute();\r\n if (!(res && res.isSuccessful))\r\n {\r\n if (retryAttempt !== 9)\r\n {\r\n console.log(\"Social init request return unsuccessful\")\r\n setTimeout(()=>{\r\n firstCallUpdate(retryAttempt +1);\r\n },3000);\r\n }\r\n else{\r\n console.log(\"Social init request return unsuccessful, will not retry\")\r\n }\r\n }\r\n }\r\n }\r\n else\r\n {\r\n // clear\r\n }\r\n}\r\n\r\nlet secondCallUpdate = function()\r\n{\r\n let social = getStore().getState().account.socialv1;\r\n if (social.isJoined)\r\n {\r\n if (social.moreSocialDataCommand)\r\n {\r\n CommandFactory.createCommand(social.moreSocialDataCommand).execute();\r\n }\r\n }\r\n else\r\n {\r\n // clear\r\n }\r\n}\r\n\r\nexport default function Init()\r\n{\r\n firstSocialCall();\r\n secondSocialCall();\r\n}\r\n\r\nfunction firstSocialCall() {\r\n let store = getStore();\r\n function select(state) {\r\n return state.account.socialv1.isEnabled;\r\n }\r\n\r\n let currentValue = select(store.getState());\r\n\r\n store.subscribe(() => {\r\n let previousValue = currentValue;\r\n currentValue = select(store.getState());\r\n if (previousValue !== currentValue) {\r\n firstCallUpdate(0);\r\n }\r\n });\r\n}\r\n\r\nfunction secondSocialCall() {\r\n let store = getStore();\r\n function select(state) {\r\n return state.account.socialv1.isJoined;\r\n }\r\n\r\n let currentValue = select(store.getState());\r\n\r\n store.subscribe(() => {\r\n let previousValue = currentValue;\r\n currentValue = select(store.getState());\r\n if (previousValue !== currentValue) {\r\n secondCallUpdate();\r\n }\r\n });\r\n}\r\n","import { getStore } from '../storeContainer'\r\nimport { StatusModes } from '../reducers/generalStatusReducer';\r\nimport * as FullStory from '@fullstory/browser';\r\nlet isFullStoryRunning = false;\r\n\r\nlet initFullStory = function (fullStoryData) {\r\n isFullStoryRunning = true;\r\n FullStory.init({ orgId: fullStoryData.organizationId });\r\n}\r\n\r\nlet setUserVars = function (userDetails, envName) {\r\n FullStory.identify(userDetails.userId, {\r\n \"displayName\": userDetails.name,\r\n \"brandName_str\": userDetails.brandName,\r\n \"brokerName_str\": userDetails.brokerName,\r\n 'tpUserId_str': userDetails.tpUserId,\r\n 'displayName_str': userDetails.name,\r\n 'envId_str': userDetails.envId,\r\n 'envName_str': envName\r\n });\r\n}\r\n\r\nexport function SendEventToFullStory(eventName, eventProperties) {\r\n if (isFullStoryRunning) {\r\n FullStory.event(eventName, eventProperties);\r\n }\r\n}\r\n\r\nexport default function Init() {\r\n let store = getStore();\r\n function selectUserGuid(state) {\r\n return state.account.accountInfo.userDetails.userId;\r\n }\r\n\r\n let currentUserGuid = selectUserGuid(store.getState());\r\n\r\n store.subscribe(() => {\r\n var state = store.getState();\r\n let fullStoryData = state.account.accountInfo.analyticData.fullStoryData;\r\n let userDetails = state.account.accountInfo.userDetails;\r\n let loginStatus = state.generalStatus.status;\r\n\r\n if (loginStatus === StatusModes.accountLogin) {\r\n if (!isFullStoryRunning && fullStoryData.isEnabled && fullStoryData.organizationId){\r\n initFullStory(fullStoryData);\r\n }\r\n\r\n if (isFullStoryRunning)\r\n {\r\n let previousUserGuid = currentUserGuid;\r\n currentUserGuid = selectUserGuid(state);\r\n if (previousUserGuid !== currentUserGuid){\r\n let envName = state.environments.environments[userDetails.envId]?.displayName ?? \"\";\r\n setUserVars(userDetails, envName);\r\n }\r\n }\r\n }\r\n });\r\n}","import { getStore } from '../storeContainer'\r\nimport { StatusModes } from '../reducers/generalStatusReducer';\r\nlet isGoogleAnalyticsRunning = false;\r\n\r\nlet initGoogleAnalytics = function (googleAnalyticsData) {\r\n isGoogleAnalyticsRunning = true;\r\n\r\n var head = document.getElementsByTagName('head')[0];\r\n var googleAnalyticsScript1 = document.createElement('script');\r\n googleAnalyticsScript1.src = \"https://www.googletagmanager.com/gtag/js?id=\" + googleAnalyticsData.measurementId;\r\n googleAnalyticsScript1.id = \"googleAnalyticsScript1\";\r\n head.appendChild(googleAnalyticsScript1);\r\n\r\n var googleAnalyticsScript2 = document.createElement('script');\r\n googleAnalyticsScript2.text = `window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', '${googleAnalyticsData.measurementId}');`;\r\n googleAnalyticsScript2.id = \"googleAnalyticsScript2\";\r\n head.appendChild(googleAnalyticsScript2);\r\n}\r\n\r\nlet setUserVars = function (googleAnalyticsData, userDetails, envName) {\r\n window.gtag('set', 'user_properties', {\r\n 'brandName': userDetails.brandName,\r\n 'brokerName': userDetails.brokerName,\r\n 'tpUserId': userDetails.tpUserId,\r\n 'displayName': userDetails.name,\r\n 'envId': userDetails.envId,\r\n 'envName': envName\r\n });\r\n\r\n window.gtag('config', `'${googleAnalyticsData.measurementId}'`, {\r\n 'user_id': userDetails.userId\r\n });\r\n}\r\n\r\nexport function SendEventToGoogleAnalytics(eventName, eventProperties) {\r\nif(isGoogleAnalyticsRunning){\r\n var finalEventName = eventName.replace(/ /g,\"_\");\r\n window.gtag('event', finalEventName, eventProperties);\r\n }\r\n}\r\n\r\nexport default function Init() {\r\n let store = getStore();\r\n function selectUserGuid(state) {\r\n return state.account.accountInfo.userDetails.userId;\r\n }\r\n\r\n let currentUserGuid = selectUserGuid(store.getState());\r\n\r\n store.subscribe(() => {\r\n let state = store.getState();\r\n let loginStatus = state.generalStatus.status;\r\n let googleAnalyticsData = state.account.accountInfo.analyticData.googleAnalyticsData;\r\n let userDetails = state.account.accountInfo.userDetails;\r\n\r\n if (loginStatus === StatusModes.accountLogin) {\r\n if (!isGoogleAnalyticsRunning && googleAnalyticsData.isEnabled && googleAnalyticsData.measurementId){\r\n initGoogleAnalytics(googleAnalyticsData);\r\n }\r\n\r\n if (isGoogleAnalyticsRunning)\r\n {\r\n let previousUserGuid = currentUserGuid;\r\n currentUserGuid = selectUserGuid(state);\r\n if (previousUserGuid !== currentUserGuid){\r\n let envName = state.environments.environments[userDetails.envId]?.displayName ?? \"\";\r\n setUserVars(googleAnalyticsData, userDetails, envName);\r\n }\r\n }\r\n }\r\n });\r\n}\r\n","import { getStore } from '../storeContainer'\r\nimport { StatusModes } from '../reducers/generalStatusReducer';\r\nlet isLuckyOrnageRunning = false;\r\n\r\nlet initLuckyOrnage = function (luckyOrnageData) {\r\n isLuckyOrnageRunning = true;\r\n window.__lo_site_id = luckyOrnageData.siteId;\r\n var head = document.getElementsByTagName('head')[0];\r\n var wa = document.createElement('script');\r\n wa.type = 'text/javascript';\r\n wa.async = true;\r\n wa.src = 'https://d10lpsik1i8c69.cloudfront.net/w.js';\r\n head.appendChild(wa);\r\n}\r\n\r\nlet setUserVars = function (userDetails, envName) {\r\n window._loq = window._loq || [];\r\n window._loq.push(['custom', {\r\n 'brandName': userDetails.brandName,\r\n 'brokerName': userDetails.brokerName,\r\n 'tpUserId': userDetails.tpUserId,\r\n 'userId': userDetails.userId,\r\n 'name': userDetails.name,\r\n 'envId': userDetails.envId,\r\n 'envName': envName,\r\n }]);\r\n}\r\n\r\nexport function SendEventToLuckyOrange(params) {\r\n window._loq = window._loq || [];\r\n if(Array.isArray(params)){\r\n params.forEach(tagName => {\r\n if(typeof tagName === 'string'){\r\n window._loq.push([\"tag\", tagName]);\r\n }\r\n });\r\n }\r\n if(typeof params === 'string'){\r\n window._loq.push([\"tag\", params]);\r\n }\r\n}\r\n\r\nexport default function Init() {\r\n let store = getStore();\r\n function selectUserGuid(state) {\r\n return state.account.accountInfo.userDetails.userId;\r\n }\r\n\r\n let currentUserGuid = selectUserGuid(store.getState());\r\n\r\n store.subscribe(() => {\r\n let state = store.getState();\r\n let loginStatus = state.generalStatus.status;\r\n let luckyOrangeData = state.account.accountInfo.analyticData.luckyOrangeData;\r\n let userDetails = state.account.accountInfo.userDetails;\r\n\r\n if (loginStatus === StatusModes.accountLogin) {\r\n if (!isLuckyOrnageRunning && luckyOrangeData.isEnabled && luckyOrangeData.siteId){\r\n initLuckyOrnage(luckyOrangeData);\r\n }\r\n\r\n if (isLuckyOrnageRunning)\r\n {\r\n let previousUserGuid = currentUserGuid;\r\n currentUserGuid = selectUserGuid(state);\r\n if (previousUserGuid !== currentUserGuid){\r\n let envName = state.environments.environments[userDetails.envId]?.displayName ?? \"\";\r\n setUserVars(userDetails, envName);\r\n }\r\n }\r\n }\r\n });\r\n}\r\n","import { getStore } from '../storeContainer';\r\n\r\nconst updateFunction = function () {\r\n const store = getStore().getState();\r\n if (store.brand.theme?.MainColor?.ActiveText) {\r\n document.documentElement.style.setProperty('--line-color', store.brand.theme.MainColor.ActiveText);\r\n document.documentElement.style.setProperty('--copy-button', store.brand.theme.Social.CopyBackground);\r\n document.documentElement.style.setProperty('--scroll-color', store.brand.theme.MainColor.ScrollColor);\r\n document.documentElement.style.setProperty('--main-text-color', store.brand.theme.Text.GeneralColor);\r\n }\r\n if (store.brand.themeSettings?.ActiveTheme !== 'dark') {\r\n // document.body.setAttribute('class', 'theme--light');\r\n // document.documentElement.style.setProperty('--main-bg-color', '#fff');\r\n document.documentElement.style.setProperty('--main-bg-color', '#f5f6fa');\r\n // document.documentElement.style.setProperty('--secondary-bg-color', '#f5f5fa');\r\n document.documentElement.style.setProperty('--secondary-bg-color', '#E9EBF3');\r\n document.documentElement.style.setProperty('--tertiary-bg-color', '#fff');\r\n // document.documentElement.style.setProperty('--field-bg-color', '#dcdcdc');\r\n document.documentElement.style.setProperty('--field-bg-color', '#fff');\r\n document.documentElement.style.setProperty('--main-text-color', '#283B55');\r\n document.documentElement.style.setProperty('--positive-digit', '#04B66B');\r\n document.documentElement.style.setProperty('--negative-digit', '#CE4B4B');\r\n document.documentElement.style.setProperty('--scroll-color', store.brand.theme.MainColor.ScrollColor);\r\n }\r\n if (store.brand.themeSettings?.ActiveTheme === 'dark') {\r\n // document.body.setAttribute('class', 'theme--dark');\r\n document.documentElement.style.removeProperty('--main-bg-color');\r\n document.documentElement.style.removeProperty('--secondary-bg-color');\r\n document.documentElement.style.removeProperty('--tertiary-bg-color');\r\n document.documentElement.style.removeProperty('--field-bg-color');\r\n document.documentElement.style.removeProperty('--main-text-color');\r\n // document.documentElement.style.setProperty('--positive-digit', store.brand.theme.Profit.Positive);\r\n document.documentElement.style.setProperty('--positive-digit', '#66C3A7');\r\n // document.documentElement.style.setProperty('--negative-digit', store.brand.theme.Profit.Negative);\r\n document.documentElement.style.setProperty('--negative-digit', '#DB6161');\r\n }\r\n};\r\n\r\nexport default function Init() {\r\n const store = getStore();\r\n function select(state) {\r\n return state.brand.themeSettings.ActiveTheme;\r\n }\r\n\r\n let currentValue = select(store.getState());\r\n\r\n store.subscribe(() => {\r\n const previousValue = currentValue;\r\n currentValue = select(store.getState());\r\n\r\n if (previousValue !== currentValue) {\r\n updateFunction();\r\n }\r\n });\r\n}\r\n","import React from 'react';\r\nimport { withTranslation } from 'react-i18next';\r\n// import PropTypes from 'prop-types';\r\nimport Input from '@material-ui/core/Input';\r\nimport InputAdornment from '@material-ui/core/InputAdornment';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Visibility from '@material-ui/icons/Visibility';\r\nimport VisibilityOff from '@material-ui/icons/VisibilityOff';\r\n\r\nimport './PasswordField.css';\r\n\r\nclass PasswordField extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n showPassword: false\r\n };\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleClickShowPassword = this.handleClickShowPassword.bind(this);\r\n }\r\n\r\n handleClickShowPassword = () => {\r\n this.setState((prevState) => ({ showPassword: !prevState.showPassword }));\r\n }\r\n\r\n handleChange(e) {\r\n const { handlePasswordChange } = this.props;\r\n handlePasswordChange(e);\r\n }\r\n\r\n render() {\r\n const { showPassword } = this.state;\r\n const { password, errorMessage, t } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n {showPassword ? : }\r\n \r\n \r\n }\r\n />\r\n { errorMessage &&

{t(errorMessage)}

}\r\n
\r\n );\r\n }\r\n}\r\n\r\n// PasswordField.propTypes = {};\r\n\r\nexport default withTranslation()(PasswordField);\r\n","import React from 'react';\r\nimport { withTranslation } from 'react-i18next';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\n// import PropTypes from 'prop-types';\r\n\r\nconst CheckBoxField = ({ isRememberMe, handleClickRemeberme, t }) => {\r\n const handleClick = (e) => {\r\n const request = {\r\n target: {\r\n name: e.target.name,\r\n value: !isRememberMe\r\n }\r\n };\r\n handleClickRemeberme(request);\r\n };\r\n\r\n return (\r\n \r\n }\r\n // label='Remember Me'\r\n label={t('Login.Form.RememberMe')}\r\n labelPlacement='end'\r\n />\r\n );\r\n};\r\n\r\n// CheckBoxField.propTypes = {};\r\n\r\nexport default withTranslation()(CheckBoxField);\r\n","import React from 'react';\r\n\r\nimport './LoadSpinner.css';\r\n\r\n\r\nconst LoadSpinner = ({ overlay = false, isLocal, isBottom }) => {\r\n if (overlay) {\r\n return (\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n if (isLocal) {\r\n return (\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n if (isBottom) {\r\n return (\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n );\r\n};\r\n\r\nexport default LoadSpinner;\r\n","import React, { useState } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { withTranslation } from 'react-i18next';\r\n// import PropTypes from 'prop-types';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\n\r\nimport { CommandFactory } from '../../background/commands/CommandFactory';\r\n\r\n\r\nconst LanguageSelector = ({ languages, languageCode, t, additionalAction }) => {\r\n const [, setResponse] = useState('');\r\n const languagesToRender = [];\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const k in languages) {\r\n languagesToRender.push(languages[k]);\r\n }\r\n const handleLanguageChange = async (e) => {\r\n const command = languagesToRender.find((item) => item.code === e.target.value);\r\n\r\n try {\r\n setResponse(null);\r\n const res = await CommandFactory.createCommand(command.selectLanguageCommand).execute();\r\n // eslint-disable-next-line no-unused-expressions\r\n additionalAction && additionalAction();\r\n if (res.isSuccessful === false) {\r\n setResponse(res);\r\n }\r\n } catch (err) {\r\n setResponse(err);\r\n }\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n {languagesToRender.map((option) => (\r\n \r\n {t(option.displayName)}\r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n\r\n// LanguageSelector.propTypes = {};\r\n\r\nconst mapStateToProps = (state) => {\r\n const { languages, languageCode } = state.brand;\r\n\r\n return {\r\n languages,\r\n languageCode\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps)(withTranslation()(LanguageSelector));\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12,2C6.48,2,2,6.48,2,12c0,5.52,4.48,10,10,10c5.52,0,10-4.48,10-10C22,6.48,17.52,2,12,2z M7.07,18.28 c0.43-0.9,3.05-1.78,4.93-1.78s4.51,0.88,4.93,1.78C15.57,19.36,13.86,20,12,20S8.43,19.36,7.07,18.28z M18.36,16.83 c-1.43-1.74-4.9-2.33-6.36-2.33s-4.93,0.59-6.36,2.33C4.62,15.49,4,13.82,4,12c0-4.41,3.59-8,8-8c4.41,0,8,3.59,8,8 C20,13.82,19.38,15.49,18.36,16.83z\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12,6c-1.94,0-3.5,1.56-3.5,3.5S10.06,13,12,13c1.94,0,3.5-1.56,3.5-3.5S13.94,6,12,6z M12,11c-0.83,0-1.5-0.67-1.5-1.5 C10.5,8.67,11.17,8,12,8c0.83,0,1.5,0.67,1.5,1.5C13.5,10.33,12.83,11,12,11z\"\n});\n\nvar SvgUserIcon = function SvgUserIcon(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n \"aria-hidden\": \"true\",\n className: \"stUf5b\",\n fill: \"currentColor\",\n focusable: \"false\",\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgUserIcon, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/userIcon.d074523e.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState, Fragment } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport { CommandFactory } from '../../background/commands/CommandFactory';\r\n\r\nimport './QuickLogin.css';\r\n\r\n\r\nconst QuickLoginItem = ({ envData, selectEnv, toggleIsLoading }) => {\r\n const { displayName, dataToDisplay: { tpId, passwordRequiredCommand, remembermeLoginCommand, userName, avatarColor } } = envData;\r\n const { t } = useTranslation();\r\n const commandPassword = CommandFactory.createCommand(passwordRequiredCommand);\r\n const [response, setResponse] = useState('');\r\n\r\n const selectEnvPass = () => {\r\n selectEnv(commandPassword, displayName, tpId);\r\n };\r\n\r\n const handleSubmit = async (e) => {\r\n e.preventDefault();\r\n\r\n const command = CommandFactory.createCommand(remembermeLoginCommand);\r\n\r\n toggleIsLoading();\r\n\r\n try {\r\n setResponse(null);\r\n const res = await command.execute();\r\n\r\n if (res.isSuccessful === undefined) {\r\n setResponse(res);\r\n toggleIsLoading();\r\n } else if (res.isSuccessful === false && res.errorDescription === 'Login.Error.InvalidUserNameOrPassword') {\r\n selectEnvPass();\r\n toggleIsLoading();\r\n } else if (res.isSuccessful === false) {\r\n selectEnvPass();\r\n toggleIsLoading();\r\n }\r\n } catch (err) {\r\n setResponse(err);\r\n toggleIsLoading();\r\n }\r\n };\r\n\r\n\r\n return (\r\n \r\n
\r\n
\r\n {userName.slice(0, 1)}\r\n
\r\n
\r\n {userName}\r\n \r\n {tpId}\r\n @\r\n {displayName}\r\n \r\n
\r\n
\r\n { response && remembermeLoginCommand && (\r\n response.status\r\n ? (\r\n

\r\n {response.status}\r\n {' '}\r\n {response.statusText}\r\n

\r\n )\r\n : (\r\n

\r\n {response.errorDescription ? t(response.errorDescription) : t('Login.Thenical.Issue')}\r\n

\r\n )\r\n )}\r\n
\r\n );\r\n};\r\n\r\n// QuickLoginItem.propTypes = {};\r\n\r\nexport default QuickLoginItem;\r\n","import React, { useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Button from '@material-ui/core/Button';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport PasswordField from '../primitives/PasswordField';\r\nimport CheckBoxField from '../primitives/CheckBoxField';\r\nimport LoadSpinner from '../primitives/LoadSpinner';\r\n\r\n\r\nconst QuickPasswordLoginItem = ({\r\n cmd,\r\n displayName,\r\n backAction,\r\n id\r\n}) => {\r\n const [userInput, setUserInput] = useState(cmd ? cmd.getUserInput() : {requestVer:3});\r\n const [response, setResponse] = useState(null);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const { t } = useTranslation();\r\n\r\n const handleSubmit = async (e) => {\r\n e.preventDefault();\r\n setIsLoading(true);\r\n\r\n try {\r\n setResponse(null);\r\n const res = await cmd.execute(userInput);\r\n if (res.isSuccessful === false) {\r\n setResponse(res);\r\n setIsLoading(false);\r\n }\r\n } catch (err) {\r\n setResponse(err);\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n const handleChange = (e) => {\r\n const { name, value } = e.target;\r\n setUserInput((prevState) => ({ ...prevState, [name]: value }));\r\n };\r\n\r\n const handleBackAction = () => {\r\n backAction(null, null, null);\r\n };\r\n\r\n\r\n return (\r\n
\r\n {isLoading && }\r\n

\r\n {id}\r\n @\r\n {displayName}\r\n

\r\n {displayName}\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// QuickPasswordLoginItem.propTypes = {};\r\n\r\nexport default QuickPasswordLoginItem;\r\n","import React, { Fragment, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport { ReactComponent as UserIcon } from '../icons/userIcon.svg';\r\n\r\nimport QuickLoginItem from './QuickLoginItem';\r\nimport QuickPasswordLoginItem from './QuickPasswordLoginItem';\r\n\r\n\r\nconst QuickLogin = ({ environments, backAction, toggleIsLoading }) => {\r\n const { t } = useTranslation();\r\n const [selectedEnv, setSelectedEnv] = useState(null);\r\n const [displayName, setdisplayName] = useState(null);\r\n const [tpId, setTpId] = useState(null);\r\n\r\n const envsPrevLogins = [];\r\n environments.forEach((env) => {\r\n if (env.prevLogins) {\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const prevObj in env.prevLogins) {\r\n envsPrevLogins.push(\r\n {\r\n id: env.id,\r\n displayName: env.displayName,\r\n translatedName: env.translatedName,\r\n loginWithTPId: env.loginWithTPId,\r\n dataToDisplay: env.prevLogins[prevObj]\r\n }\r\n );\r\n }\r\n }\r\n });\r\n\r\n const handleBackAction = () => {\r\n backAction();\r\n };\r\n\r\n const selectEnv = (env, selectedDisplayName, id) => {\r\n setSelectedEnv(env);\r\n setdisplayName(selectedDisplayName);\r\n setTpId(id);\r\n };\r\n\r\n if (!selectedEnv) {\r\n return (\r\n \r\n

{t('Login.Header.ChooseAcc')}

\r\n
\r\n {envsPrevLogins.map((item) => (\r\n \r\n ))}\r\n
\r\n
\r\n \r\n
\r\n {t('Login.Button.ChooseAnotherAccount')}\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// QuickLogin.propTypes = {};\r\n\r\nexport default QuickLogin;\r\n","/* eslint-disable complexity */\r\nimport React, { Fragment, useState } from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Button } from '@material-ui/core';\r\nimport Input from '@material-ui/core/Input';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\r\n// import PropTypes from 'prop-types';\r\n\r\n\r\nimport { CommandFactory } from '../../background/commands/CommandFactory';\r\nimport PasswordField from '../primitives/PasswordField';\r\nimport CheckBoxField from '../primitives/CheckBoxField';\r\nimport LoadSpinner from '../primitives/LoadSpinner';\r\nimport LanguageSelector from '../LanguageSelector/LanguageSelector';\r\n\r\nimport QuickLogin from './QuickLogin';\r\nimport './LoginPage.css';\r\n\r\n\r\nconst LoginPage = () => {\r\n const { environments, environmentsDisplayOrder } = useSelector((state) => (state.environments), shallowEqual);\r\n const { generalInfo: { logoLogin }, enableChangeLanguage } = useSelector((state) => (state.brand), shallowEqual);\r\n const { t } = useTranslation();\r\n const envSelection = [];\r\n\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const envToDisplay in environmentsDisplayOrder) {\r\n const foundEnv = environments[environmentsDisplayOrder[envToDisplay]];\r\n if (foundEnv) {\r\n envSelection.push(foundEnv);\r\n }\r\n }\r\n\r\n const [stateObject, setStateObject] = useState({ userId: '', tpPassword: '', environment: envSelection.length ? envSelection[0].id : '' });\r\n const [displayFullForm, setDisplayFullForm] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isRememberMe, setIsRememberMe] = useState(false);\r\n const [error, setError] = useState(false);\r\n const { userId, tpPassword, environment } = stateObject;\r\n\r\n const handleChange = (e) => {\r\n const { name, value } = e.target;\r\n setStateObject((prevState) => ({ ...prevState, [name]: value }));\r\n };\r\n\r\n const handleReturnToFullForm = () => {\r\n setDisplayFullForm((prevState) => (!prevState));\r\n };\r\n\r\n const handleSubmit = async (e) => {\r\n e.preventDefault();\r\n const selectedEnv = envSelection.find((item) => item.id === environment);\r\n\r\n const command = CommandFactory.createCommand(selectedEnv.loginWithTPId);\r\n\r\n setIsLoading(true);\r\n\r\n try {\r\n setError('');\r\n const res = await command.execute({\r\n rememberMe: isRememberMe,\r\n tpNumber: userId,\r\n tpPassword,\r\n requestVer: 3,\r\n });\r\n if (res.isSuccessful === undefined) {\r\n setError(res);\r\n setIsLoading(false);\r\n } else if (res.isSuccessful === false) {\r\n setError(res);\r\n setIsLoading(false);\r\n }\r\n } catch (err) {\r\n setError(err);\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n const handleClickRemeberme = () => {\r\n setIsRememberMe((prevState) => (!prevState));\r\n };\r\n\r\n const toggleIsLoading = () => {\r\n setIsLoading((prevState) => !prevState);\r\n };\r\n\r\n\r\n if (!envSelection.length) {\r\n return

{t('Smth.Went.Wrong')}

;\r\n }\r\n\r\n const shouldDisplayQuickLogin = envSelection.find((item) => Object.keys(item.prevLogins).length > 0);\r\n\r\n\r\n return (\r\n
\r\n {isLoading && }\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n { shouldDisplayQuickLogin && !displayFullForm ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n

{t('Login.Header.SignIn')}

\r\n \r\n \r\n {envSelection.map((option) => (\r\n \r\n {t(option.translatedName)}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n { error && (\r\n error.status\r\n ? (\r\n

\r\n {error.status}\r\n  \r\n {error.statusText}\r\n

\r\n ) :

{error.errorDescription ? t(error.errorDescription) : t('Login.Thenical.Issue')}

\r\n )}\r\n\r\n \r\n { shouldDisplayQuickLogin && displayFullForm && (\r\n
\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n {!!enableChangeLanguage && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\n// LoginPage.propTypes = {};\r\n\r\nexport default LoginPage;\r\n","import React, { useRef } from 'react';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport './Button.css';\r\n\r\n\r\nconst Button = ({\r\n text,\r\n onClickHandler,\r\n onFocusAction,\r\n onBlurAction,\r\n className,\r\n iconStart,\r\n iconStartSVG,\r\n iconEnd,\r\n isFaded,\r\n ariaHaspopup,\r\n ariaExpanded,\r\n ariaControls,\r\n tabIndex,\r\n style,\r\n ...rest\r\n}) => {\r\n const { dataName } = rest;\r\n const styledButton = useRef();\r\n const handleOnFocus = () => {\r\n styledButton.current.style.backgroundColor = onFocusAction;\r\n };\r\n const handleOnBlur = () => {\r\n styledButton.current.style.backgroundColor = onBlurAction;\r\n };\r\n\r\n return (\r\n undefined}\r\n onBlur={() => undefined}\r\n onMouseOver={onFocusAction ? handleOnFocus : null}\r\n onMouseOut={onBlurAction ? handleOnBlur : null}\r\n data-name={dataName}\r\n tabIndex={tabIndex || 0}\r\n aria-haspopup={ariaHaspopup}\r\n aria-expanded={ariaExpanded}\r\n aria-controls={ariaControls}\r\n style={style}\r\n ref={styledButton}\r\n >\r\n {iconStart && }\r\n {iconStartSVG && iconStartSVG}\r\n \r\n {text && text}\r\n {iconEnd && }\r\n \r\n \r\n );\r\n};\r\n\r\n// Button.propTypes = {};\r\n\r\nexport default Button;\r\n","import React from 'react';\r\n// import PropTypes from 'prop-types';\r\n\r\nconst SearchIcon = ({ fill }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\n// SearchIcon.propTypes = {};\r\n\r\nexport default SearchIcon;\r\n","/* eslint-disable react/jsx-wrap-multilines */\r\nimport React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\n// import PropTypes from 'prop-types';\r\n\r\n\r\n// eslint-disable-next-line object-curly-newline\r\nconst CheckBox = ({ value, label, labelPlacement, name, handleCheckBoxClick, color }) => {\r\n const { t } = useTranslation();\r\n const { MainColor: { ActiveText, InactiveText } } = useSelector((state) => (state.brand.theme));\r\n const labelText = t(`${label}`);\r\n const handleClick = (e) => {\r\n const request = {\r\n target: {\r\n name: e.target.name,\r\n value: !value\r\n }\r\n };\r\n handleCheckBoxClick(request);\r\n };\r\n\r\n return (\r\n \r\n }\r\n label={labelText}\r\n labelPlacement={labelPlacement ? 'end' : 'start'}\r\n style={{ color }}\r\n />\r\n );\r\n};\r\n\r\n// CheckBox.propTypes = {};\r\n\r\nexport default CheckBox;\r\n","/* eslint-disable react/destructuring-assignment */\r\nimport React, { Component } from 'react';\r\n// import PropTypes from 'prop-types';\r\n\r\nconst OuterClick = (WrappedComponent, additionalComponent) => class extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.setWrapperRef = this.setWrapperRef.bind(this);\r\n this.handleClickOutside = this.handleClickOutside.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n document.addEventListener('mousedown', this.handleClickOutside);\r\n }\r\n\r\n componentWillUnmount() {\r\n document.removeEventListener('mousedown', this.handleClickOutside);\r\n }\r\n\r\n onClose = () => {\r\n // eslint-disable-next-line no-unused-expressions\r\n this.props.handleClick && this.props.handleClick();\r\n }\r\n\r\n setWrapperRef(node) {\r\n this.wrapperRef = node;\r\n }\r\n\r\n // eslint-disable-next-line consistent-return\r\n handleClickOutside = (event) => {\r\n if (additionalComponent && !!event.target.closest(additionalComponent) === true) {\r\n return null;\r\n }\r\n\r\n if (this.wrapperRef && !this.wrapperRef.contains(event.target)) {\r\n this.onClose();\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n {this.props.children}\r\n \r\n
\r\n );\r\n }\r\n};\r\n\r\n// OuterClick.propTypes = {\r\n// WrappedComponent: PropTypes.object.isRequired\r\n// };\r\n\r\nexport default OuterClick;\r\n","import React, { useState, useEffect } from 'react';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport CheckBox from '../primitives/CheckBox';\r\nimport OuterClick from '../primitives/OuterClick';\r\n\r\n\r\nconst ColumnsSelectExpanded = ({\r\n shouldDisplayPin,\r\n shouldDisplayInfo,\r\n // shouldDisplayFlags,\r\n setShouldDisplayPin,\r\n setShouldDisplayInfo,\r\n // setShouldDisplayFlags,\r\n shouldDisplayTime,\r\n setShouldDisplayTime,\r\n generalColor\r\n}) => {\r\n const [checkboxesState, setCheckboxesState] = useState(null);\r\n\r\n useEffect(() => {\r\n setCheckboxesState({\r\n displayPin: shouldDisplayPin,\r\n displayInfo: shouldDisplayInfo,\r\n // displayFlags: shouldDisplayFlags,\r\n displayTime: shouldDisplayTime\r\n });\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const changed = (e) => {\r\n const { name } = e.target;\r\n setCheckboxesState((prevState) => ({ ...prevState, [name]: !prevState[name] }));\r\n switch (name) {\r\n case 'displayPin':\r\n setShouldDisplayPin();\r\n break;\r\n case 'displayInfo':\r\n setShouldDisplayInfo();\r\n break;\r\n // case 'displayFlags':\r\n // setShouldDisplayFlags();\r\n // break;\r\n case 'displayTime':\r\n setShouldDisplayTime();\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n {/* */}\r\n \r\n
\r\n );\r\n};\r\n\r\n// ColumnsSelectExpanded.propTypes = {};\r\n\r\nexport default OuterClick(ColumnsSelectExpanded);\r\n","import React, {\r\n useEffect, useState, useRef, Fragment\r\n} from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Input from '@material-ui/core/Input';\r\nimport InputAdornment from '@material-ui/core/InputAdornment';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Icon from '@material-ui/core/Icon';\r\nimport Select from '@material-ui/core/Select';\r\nimport KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown';\r\n\r\nimport { CommandFactory } from '../../background/commands/CommandFactory';\r\nimport Button from '../primitives/Button';\r\nimport SearchIcon from '../icons/SearchIcon';\r\n\r\nimport ColumnsSelectExpanded from './ColumnsSelectExpanded';\r\n\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nconst LeftPanelActionsBlock = ({\r\n searchSubmit,\r\n symbolGroups,\r\n // selectSubmit,\r\n shouldDisplayPin,\r\n setShouldDisplayPin,\r\n shouldDisplayInfo,\r\n setShouldDisplayInfo,\r\n // shouldDisplayFlags,\r\n // setShouldDisplayFlags,\r\n shouldDisplayTime,\r\n setShouldDisplayTime,\r\n width,\r\n initialLeftWidth\r\n}) => {\r\n const [stateObject, setStateObject] = useState({ symbol: '', symbolGroup: symbolGroups[0], checkboxes: [] });\r\n const [isColumnsSelectOpen, setIsColumnsSelectOpen] = useState(false);\r\n const timeoutRef = useRef(null);\r\n\r\n const { t } = useTranslation();\r\n const { Buttons: { TextColor }, Text: { GeneralColor, SystemColor } } = useSelector((state) => (state.brand.theme));\r\n\r\n const { symbol, symbolGroup } = stateObject;\r\n\r\n useEffect(() => {\r\n if (timeoutRef.current !== null) {\r\n clearTimeout(timeoutRef.current);\r\n }\r\n\r\n timeoutRef.current = setTimeout(() => {\r\n timeoutRef.current = null;\r\n // eslint-disable-next-line no-use-before-define\r\n handleSearchSubmit();\r\n }, 333);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [symbol]);\r\n\r\n const handleChange = (e) => {\r\n const { name, value } = e.target;\r\n setStateObject((prevState) => ({ ...prevState, [name]: value }));\r\n };\r\n\r\n const handleSearchSubmit = (s = symbol, sGroup = symbolGroup) => {\r\n // setStateObject((prevState) => ({ ...prevState, symbolGroup: symbolGroups[0] }));\r\n searchSubmit(s, sGroup);\r\n };\r\n\r\n const handleSelectSubmit = (e) => {\r\n setStateObject((prevState) => ({ ...prevState, symbolGroup: e.target.value }));\r\n // handleChange(e);\r\n handleSearchSubmit(undefined, e.target.value);\r\n // setStateObject((prevState) => ({ ...prevState, symbol: ''}));\r\n // selectSubmit(e.target.value);\r\n };\r\n\r\n const toggleColumnsSelect = () => {\r\n setIsColumnsSelectOpen((prevState) => !prevState);\r\n };\r\n\r\n const togglePin = () => {\r\n const command = CommandFactory.createCommand(setShouldDisplayPin);\r\n command.execute();\r\n };\r\n\r\n const toggleInfo = () => {\r\n const command = CommandFactory.createCommand(setShouldDisplayInfo);\r\n command.execute();\r\n };\r\n\r\n // const toggleFlags = () => {\r\n // setShouldDisplayFlags((prevState) => !prevState);\r\n // };\r\n\r\n const toggleTime = () => {\r\n const command = CommandFactory.createCommand(setShouldDisplayTime);\r\n command.execute();\r\n };\r\n\r\n const resetSearch = () => {\r\n setStateObject((prevState) => ({ ...prevState, symbol: '' }));\r\n searchSubmit(null, 'MarketRates.Groups.All');\r\n };\r\n\r\n const icon = symbol ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n {/* */}\r\n \r\n \r\n );\r\n\r\n const handleCloseColumnsSelect = (evt) => {\r\n // eslint-disable-next-line no-unused-expressions\r\n evt && evt.stopPropagation();\r\n toggleColumnsSelect();\r\n };\r\n\r\n const handleOpenColumnsSelect = (evt) => {\r\n evt.stopPropagation();\r\n toggleColumnsSelect();\r\n };\r\n\r\n const symbolSearch = (\r\n 300 ? 'left-panel__symbol-search left-panel__symbol-search--large' : 'left-panel__symbol-search'}\r\n className='left-panel__symbol-search left-panel__symbol-search--large'\r\n value={symbol}\r\n onChange={handleChange}\r\n endAdornment={icon}\r\n style={{ color: TextColor }}\r\n autoComplete='off'\r\n />\r\n );\r\n const isSmallDesktop = width < 1200;\r\n\r\n\r\n return (\r\n \r\n
\r\n {/* {!isSmallDesktop &&
{symbolSearch}
} */}\r\n {!isSmallDesktop && symbolSearch}\r\n
\r\n \r\n \r\n {symbolGroups.map((group) => (\r\n \r\n {t(group)}\r\n \r\n ))}\r\n \r\n \r\n
\r\n \r\n {isColumnsSelectOpen && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n {isSmallDesktop && (\r\n
{symbolSearch}
\r\n )}\r\n
\r\n );\r\n};\r\n\r\n\r\nexport default LeftPanelActionsBlock;\r\n","/* eslint-disable complexity */\r\nimport React from 'react';\r\n\r\nimport PubsubSubscription from '../../background/repositories/PubsubSubscription';\r\n\r\nconst formatCache = new Map();\r\n\r\nexport const roundNumberPipDigit = (value, pipDigit) => {\r\n if (value || value === 0) {\r\n let f = formatCache.get(pipDigit);\r\n if (!f) {\r\n f = new Intl.NumberFormat('en-US', { style: 'decimal', maximumFractionDigits: pipDigit, minimumFractionDigits: pipDigit });\r\n formatCache.set(pipDigit, f);\r\n }\r\n return f.format(value);\r\n }\r\n\r\n return '';\r\n};\r\n\r\nexport const formatSymbolPrice = (newElem, oldElem, pipDigit, displayDigit, tickUp, tickDown, tickNeutral) => {\r\n if (displayDigit === undefined) {\r\n // eslint-disable-next-line no-param-reassign\r\n displayDigit = pipDigit;\r\n }\r\n\r\n // we dont support negative values....\r\n if (newElem < 0 || oldElem < 0) {\r\n return [];\r\n }\r\n\r\n const upDownStyle = newElem > oldElem ? 'up' : 'down';\r\n const digitStyle = newElem > oldElem ? { color: tickUp } : { color: tickDown };\r\n\r\n let stringValue = roundNumberPipDigit(newElem, displayDigit);\r\n let stringOldVlaue = roundNumberPipDigit(oldElem, displayDigit);\r\n\r\n let ignoreChars = 0;\r\n if (stringValue.length > stringOldVlaue.length) {\r\n ignoreChars = stringValue.length - stringOldVlaue.length;\r\n stringValue = stringValue.padStart('0', stringValue.length - stringOldVlaue.length);\r\n } else if (stringOldVlaue.length > stringValue.length) {\r\n stringOldVlaue = stringOldVlaue.padStart('0', stringOldVlaue.length - stringValue.length);\r\n }\r\n\r\n let strongIndex = 10000; // Not Strong\r\n if (pipDigit > 0) {\r\n const dotIndex = stringValue.indexOf('.');\r\n if (dotIndex >= 0) {\r\n // eslint-disable-next-line eqeqeq\r\n if (pipDigit == 1) {\r\n strongIndex = dotIndex - 1;\r\n } else {\r\n strongIndex = dotIndex + pipDigit - 1;\r\n }\r\n }\r\n }\r\n\r\n const digitArrays = [];\r\n let changed = false;\r\n for (let i = 0; i < stringValue.length; i += 1) {\r\n const newChar = stringValue.charAt(i);\r\n if (!changed) {\r\n const oldChar = stringOldVlaue.charAt(i);\r\n changed = newChar !== oldChar;\r\n }\r\n\r\n if (ignoreChars <= i) {\r\n const isPipDigit = i >= strongIndex && i <= strongIndex + 1;\r\n digitArrays.push({newChar});\r\n }\r\n }\r\n\r\n return digitArrays;\r\n};\r\n\r\nexport const prepareBidAsk = (symbolTick, previousTick, pipDigit, tickUp, tickDown, tickNeutral) => {\r\n if (!symbolTick) {\r\n return { bidOutput: (
--
), askOutput: (
--
) };\r\n }\r\n return {\r\n bidOutput: formatSymbolPrice(symbolTick.bid, previousTick.bid, pipDigit, undefined, tickUp, tickDown, tickNeutral),\r\n askOutput: formatSymbolPrice(symbolTick.ask, previousTick.ask, pipDigit, undefined, tickUp, tickDown, tickNeutral)\r\n };\r\n};\r\n\r\n\r\nconst FormatWSTick = ({\r\n selectedSymbol, onBidClick, onAskClick, isBidActive, isTradePopup, tickUp, tickDown\r\n}) => {\r\n const pipDigit = selectedSymbol.displayDigit;\r\n const [symbolTick, previousTick] = PubsubSubscription.subscribeObjAndPrev(selectedSymbol?.tick);\r\n const { bidOutput, askOutput } = prepareBidAsk(symbolTick, previousTick, pipDigit, tickUp, tickDown);\r\n const thumbClass = isBidActive ? 'trade-popup__thumb' : 'trade-popup__thumb trade-popup__thumb--active';\r\n\r\n return (\r\n
\r\n {isTradePopup &&
}\r\n
\r\n Sell\r\n
{bidOutput}
\r\n
\r\n
\r\n Buy\r\n
{askOutput}
\r\n
\r\n
\r\n );\r\n};\r\n\r\n// FormatWSTick.propTypes = {};\r\n\r\nexport default FormatWSTick;\r\n","export const nowDate = new Date();\r\n\r\nconst options = {\r\n day: 'numeric',\r\n month: 'numeric',\r\n year: 'numeric',\r\n hour: 'numeric',\r\n minute: 'numeric',\r\n second: 'numeric',\r\n timeZone:'UTC',\r\n};\r\nconst dateOptions = { day: 'numeric', month: 'numeric', year: 'numeric',timeZone:'UTC' };\r\nconst timeOptions = { hour: 'numeric', minute: 'numeric', second: 'numeric',timeZone:'UTC' };\r\n\r\nlet formatDateCache = new Intl.DateTimeFormat('en-GB', options)\r\nexport const formatDate = (date) => {\r\n const formattedDate = formatDateCache.format(date).replace(',', '');\r\n return formattedDate;\r\n};\r\n\r\nlet formatDateOnlyCache = new Intl.DateTimeFormat('en-GB', dateOptions)\r\nexport const formatDateOnly = (date) => {\r\n const formattedDate = formatDateOnlyCache.format(date).replace(',', '');\r\n return formattedDate;\r\n};\r\n\r\nlet formatTimeCache = new Intl.DateTimeFormat('en-GB', timeOptions)\r\nexport const formatTime = (date) => {\r\n const formattedDate = formatTimeCache.format(date).replace(',', '');\r\n return formattedDate;\r\n};\r\n","import { useEffect } from 'react';\r\nimport { createPortal } from 'react-dom';\r\n\r\n\r\nconst Portal = ({ children }) => {\r\n const mount = document.getElementById('portal-root');\r\n const el = document.createElement('div');\r\n el.setAttribute('role', 'presentation');\r\n\r\n useEffect(() => {\r\n mount.appendChild(el);\r\n return () => { return mount.removeChild(el); };\r\n }, [el, mount]);\r\n\r\n return createPortal(children, el);\r\n};\r\n\r\nexport default Portal;\r\n","import React from 'react';\r\n\r\nimport Portal from './Portal';\r\nimport './ToolTip.css';\r\n\r\n\r\nclass ToolTip extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n visible: false, x: 0, y: 0, type: 'none'\r\n };\r\n this.currentToolTip = React.createRef();\r\n }\r\n\r\n shouldComponentUpdate(nextProps, nextState) {\r\n // eslint-disable-next-line react/destructuring-assignment\r\n return this.state.visible !== nextState.visible || this.state.x !== nextState.x || this.state.y !== nextState.y;\r\n }\r\n\r\n show(hoverRect) {\r\n const ttNode = this.currentToolTip.current;\r\n\r\n if (ttNode != null) {\r\n let x = 0; let\r\n y = 0;\r\n\r\n const docWidth = document.documentElement.clientWidth;\r\n const docHeight = document.documentElement.clientHeight;\r\n\r\n const ttRect = { width: 260, height: 370 };\r\n\r\n const rx = hoverRect.x + ttRect.width; // most right x\r\n const lx = hoverRect.x; // most left x\r\n const ty = hoverRect.y; // most top y\r\n const by = hoverRect.y + ttRect.height; // most bottom y\r\n\r\n const bRight = (rx + ttRect.width) <= (window.scrollX + docWidth);\r\n const bLeft = (lx - ttRect.width) >= 0;\r\n const bBellow = (ty + ttRect.height) <= docHeight;\r\n // const bAbove = (ty + ttRect.height) >= docHeight;\r\n\r\n // console.log('r', bRight, 'l', bLeft, 'a', bAbove, 'b', bBellow);\r\n\r\n let newState = {};\r\n\r\n if (bRight && bBellow) {\r\n x = rx - ttRect.width;\r\n y = ty + (hoverRect.height);\r\n\r\n newState.type = 'right';\r\n } else if (bRight && !bBellow) {\r\n y = ty - ttRect.height;\r\n x = lx;\r\n\r\n newState.type = 'top';\r\n } else if (bBellow) {\r\n y = by - ttRect.height;\r\n x = lx - ttRect.width;\r\n\r\n newState.type = 'bottom';\r\n } else if (bLeft) {\r\n x = lx - ttRect.width;\r\n y = ty - ttRect.height;\r\n\r\n newState.type = 'left';\r\n }\r\n\r\n newState = {\r\n ...newState, x, y, visible: true\r\n };\r\n\r\n this.setState(newState);\r\n }\r\n }\r\n\r\n hide() {\r\n this.setState({ visible: false });\r\n }\r\n\r\n render() {\r\n const {\r\n visible, x, y, type\r\n } = this.state;\r\n const { children } = this.props;\r\n const style = {\r\n left: (`${x + window.scrollX}px`),\r\n top: (`${y + window.scrollY}px`)\r\n };\r\n\r\n\r\n return (\r\n
\r\n {visible && (\r\n \r\n
{children}
\r\n
\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default ToolTip;\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport OuterClick from '../primitives/OuterClick';\r\n\r\nimport './TickItemToolTipContent.css';\r\n\r\n\r\nconst TickItemToolTipContent = ({ tickData, onCloseTooltip, generalColor, systemColor, hideHeadings }) => {\r\n const { t } = useTranslation();\r\n const {\r\n description,\r\n id,\r\n pipDigit,\r\n contractSize,\r\n group,\r\n leverage,\r\n swapLong,\r\n swapShort,\r\n swapType,\r\n minimumLot,\r\n maximumLot,\r\n lotStep,\r\n stopLevel\r\n } = tickData;\r\n\r\n\r\n return (\r\n
\r\n {!hideHeadings && (\r\n

\r\n {id}\r\n \r\n

\r\n )}\r\n
\r\n {!hideHeadings &&

{description}

}\r\n
\r\n
\r\n {t('InstrumetInfo.Details.Instrument')}\r\n {id}\r\n
\r\n
\r\n {t('InstrumetInfo.Details.SecurityGroupName')}\r\n {group}\r\n
\r\n
\r\n {t('InstrumetInfo.Details.Digits')}\r\n {pipDigit}\r\n
\r\n
\r\n {t('InstrumetInfo.Details.StopLossLevel')}\r\n {stopLevel}\r\n
\r\n
\r\n {t('InstrumetInfo.Details.Leverage')}\r\n \r\n 1:\r\n {leverage.toFixed()}\r\n \r\n
\r\n
\r\n {t('InstrumetInfo.Details.LotSize')}\r\n {contractSize}\r\n
\r\n
\r\n {t('InstrumetInfo.Details.TradingAmountMinimum')}\r\n {minimumLot}\r\n
\r\n
\r\n {t('InstrumetInfo.Details.TradingAmountMaximum')}\r\n {maximumLot}\r\n
\r\n
\r\n {t('InstrumetInfo.Details.TradingAmountStep')}\r\n {lotStep}\r\n
\r\n
\r\n {t('InstrumetInfo.Details.SwapLong')}\r\n {swapLong}\r\n
\r\n
\r\n {t('InstrumetInfo.Details.SwapShort')}\r\n {swapShort}\r\n
\r\n
\r\n {t('InstrumetInfo.Details.SwapType')}\r\n {swapType}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\n\r\nexport default OuterClick(TickItemToolTipContent);\r\n","import React, { Fragment } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n// import PropTypes from 'prop-types';\r\n\r\nconst TickItemBidAsk = ({ bid, ask, subHeaderColor }) => {\r\n const { t } = useTranslation();\r\n return (\r\n \r\n
\r\n {t('MarketRates.Bid')}\r\n
{bid}
\r\n
\r\n
\r\n {t('MarketRates.Ask')}\r\n
{ask}
\r\n
\r\n
\r\n );\r\n};\r\n\r\n// TickItemBidAsk.propTypes = {};\r\n\r\nexport default TickItemBidAsk;\r\n","import React, { useRef, useState, Fragment } from 'react';\r\n\r\nimport { CommandFactory } from '../../background/commands/CommandFactory';\r\nimport ToolTip from '../primitives/ToolTip';\r\n// import Flag from '../Flag/Flag';\r\n\r\nimport TickItemToolTipContent from './TickItemToolTipContent';\r\nimport TickItemBidAsk from './TickItemBidAsk';\r\nimport './TickItem.css';\r\n\r\n\r\nconst TickItem = ({\r\n name,\r\n bid,\r\n ask,\r\n tickData,\r\n isActive,\r\n shouldDisplayPin,\r\n shouldDisplayInfo,\r\n // shouldDisplayFlags,\r\n shouldDisplayTime,\r\n subHeaderColor,\r\n timeUpdate,\r\n tickUp\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n // eslint-disable-next-line no-unused-vars\r\n const [isLoading, setIsLoading] = useState(false);\r\n const toolTip = useRef();\r\n const symbolClass = isActive ? 'bid-item__container active' : 'bid-item__container';\r\n\r\n const pinSymbol = async (e) => {\r\n e.stopPropagation();\r\n const command = CommandFactory.createCommand(tickData.togglePinSymbolCMD);\r\n setIsLoading(true);\r\n\r\n try {\r\n // setResponse(null);\r\n const res = await command.execute();\r\n\r\n if (res.isSuccessful === true) {\r\n // setOrderInfo((prevState) => {\r\n // return { ...prevState, status: 'success', price: pendingPrice };\r\n // });\r\n } else if (res.isSuccessful === false) {\r\n // setResponse(res);\r\n }\r\n } catch (err) {\r\n // setResponse(err);\r\n }\r\n\r\n setIsLoading(false);\r\n };\r\n\r\n\r\n const handleOnMouseOut = (evt) => {\r\n // eslint-disable-next-line no-unused-expressions\r\n evt && evt.stopPropagation();\r\n\r\n toolTip.current.hide();\r\n setIsExpanded(false);\r\n };\r\n\r\n const handleOnMouseOver = (evt) => {\r\n evt.stopPropagation();\r\n\r\n const el = evt.currentTarget;\r\n setIsExpanded(true);\r\n\r\n if (el != null) {\r\n const rect = el.getBoundingClientRect();\r\n toolTip.current.show(rect);\r\n }\r\n };\r\n\r\n\r\n return (\r\n
\r\n {/*
*/}\r\n {shouldDisplayPin && (\r\n
\r\n {tickData.isPin ? (\r\n
\r\n \r\n
\r\n ) : (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n )}\r\n {/* {shouldDisplayFlags && } */}\r\n
\r\n {name}\r\n
\r\n \r\n {shouldDisplayTime && (\r\n
\r\n {timeUpdate}\r\n
\r\n )}\r\n {shouldDisplayInfo && (\r\n \r\n \r\n \r\n
\r\n {!isExpanded ? : (\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\nexport default TickItem;\r\n","import React from 'react';\r\n\r\nimport PubsubSubscription from '../../background/repositories/PubsubSubscription';\r\n\r\nimport { prepareBidAsk } from '../utilsUI/formatWSTick';\r\nimport { formatTime } from '../utilsUI/formatTime';\r\n\r\nimport TickItem from './TickItem';\r\nimport './TickItem.css';\r\n\r\n\r\nconst TickItemWrapper = ({\r\n name,\r\n pipDigit,\r\n repObj,\r\n tickData,\r\n handleItemSelect,\r\n isActive,\r\n shouldDisplayPin,\r\n shouldDisplayInfo,\r\n // shouldDisplayFlags,\r\n shouldDisplayTime,\r\n subHeaderColor,\r\n tickUp,\r\n tickDown,\r\n tickNeutral\r\n}) => {\r\n const [symbolTick, previousTick] = PubsubSubscription.subscribeObjAndPrev(repObj);\r\n const { bidOutput, askOutput } = prepareBidAsk(symbolTick, previousTick, pipDigit, tickUp, tickDown, tickNeutral);\r\n const timeUpdate = formatTime(symbolTick?.timestamp);\r\n\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\n\r\nexport default TickItemWrapper;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { List, AutoSizer } from 'react-virtualized';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport TickItem from '../TickItem/TickItemWrapper';\r\n// import LoadSpinner from '../primitives/LoadSpinner';\r\n\r\nimport '../ResizableLayout/LeftPanel.css';\r\n\r\n\r\nconst TicksList = ({\r\n orderedSymbols,\r\n handleItemSelect,\r\n selectedSymbol,\r\n shouldDisplayPin,\r\n shouldDisplayInfo,\r\n // shouldDisplayFlags,\r\n shouldDisplayTime\r\n // leftScrollWidth\r\n}) => {\r\n const [listSize, setListSize] = useState(0);\r\n const { SubHeader: { Text }, Tick: { TickUp, TickDown, TickNeutral } } = useSelector((state) => (state.brand.theme));\r\n // eslint-disable-next-line consistent-return\r\n const selectItem = (e) => {\r\n const current = e.target.closest('.bid-item__container');\r\n if (!current) { return null; }\r\n handleItemSelect(orderedSymbols.find((item) => { return item.id === current.getAttribute('data-symbol'); }));\r\n };\r\n\r\n const renderRow = ({ index, key, style }) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n const element = document.getElementsByClassName('left-panel__inner').item(0);\r\n setListSize({ height: element.offsetHeight });\r\n }, []);\r\n\r\n\r\n return (\r\n
\r\n {/*
*/}\r\n
\r\n {/* {(isLoading || orderedSymbols.length === 0) && } */}\r\n \r\n {\r\n // eslint-disable-next-line no-unused-vars\r\n ({ width, height }) => {\r\n return (\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 TicksList;\r\n","/* eslint-disable no-restricted-syntax */\r\n/* eslint-disable guard-for-in */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport LeftPanelActionsBlock from '../LeftPanelActionsBlock/LeftPanelActionsBlock';\r\nimport TicksList from '../TicksList/TicksList';\r\n\r\nimport './LeftPanel.css';\r\n\r\n\r\nconst LeftBlock = ({ onSymbolSelect, selectedSymbol, width, initialLeftWidth }) => {\r\n const [isLoading, setIsLoading] = useState(true);\r\n const { symbols, symbolsOrder, pinSymbols } = useSelector((state) => (state.account.symbols), shallowEqual);\r\n const { marketRatesSettings } = useSelector((state) => { return (state.account.accountInfo); }, shallowEqual);\r\n const { Text: { GeneralColor } } = useSelector((state) => (state.brand.theme));\r\n const [filteredArray, setFilteredArray] = useState([]);\r\n const [orderedSymbols, setOrderedSymbols] = useState([]);\r\n const [nothingFound, setNothingFound] = useState(false);\r\n const [symbolGroups, setSymbolGroups] = useState(null);\r\n // const [width] = useWindowSize();\r\n // const [leftScrollWidth, setLeftScrollWidth] = useState(0);\r\n const { t } = useTranslation();\r\n\r\n // useEffect(() => {\r\n // setLeftScrollWidth(document.getElementsByClassName('bid-item__container')?.item(0)?.scrollWidth);\r\n // }, [shouldDisplayPin, shouldDisplayInfo, shouldDisplayTime]);\r\n\r\n useEffect(() => {\r\n const temp = [];\r\n const pinnedTemp = [];\r\n let symbolsToShow = new Set();\r\n for (const symbolsToDisplay in symbolsOrder) {\r\n symbolsToShow.add(symbolsOrder[symbolsToDisplay]);\r\n const foundSymbol = symbols[symbolsOrder[symbolsToDisplay]];\r\n if (foundSymbol) {\r\n if (!foundSymbol.isPin) {\r\n temp.push(foundSymbol);\r\n }\r\n }\r\n }\r\n for (const symbolsToDisplay in pinSymbols) {\r\n const foundSymbol = symbols[pinSymbols[symbolsToDisplay]];\r\n if (foundSymbol) {\r\n if (symbolsToShow.has(foundSymbol.id))\r\n {\r\n if (foundSymbol.isPin) {\r\n pinnedTemp.push(foundSymbol);\r\n }\r\n }\r\n }\r\n }\r\n setOrderedSymbols(pinnedTemp.concat(temp));\r\n setIsLoading(false);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [symbols, symbolsOrder]);\r\n\r\n useEffect(() => {\r\n const all = 'MarketRates.Groups.All';\r\n var arr = [all];\r\n var groups = new Set();\r\n groups.add(all);\r\n\r\n for (const symbolId of symbolsOrder) {\r\n const stateSymbol = symbols[symbolId];\r\n if (stateSymbol) {\r\n if (stateSymbol.group) {\r\n groups.add(stateSymbol.group);\r\n }\r\n }\r\n }\r\n\r\n if(marketRatesSettings.groupsOrder?.length > 0){\r\n for(const group of marketRatesSettings.groupsOrder){\r\n if(groups.has(group)){\r\n arr.push(group);\r\n }\r\n }\r\n }else{\r\n arr = [...groups];\r\n }\r\n\r\n // const prepareGroups = [...new Set(orderedSymbols.map(item => item.group))];\r\n setSymbolGroups(arr);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const handleSelect = (group) => {\r\n if (group === 'MarketRates.Groups.All') {\r\n setFilteredArray([]);\r\n } else {\r\n const filteredSymbols = orderedSymbols.filter((item) => item.group.toLowerCase().includes(group.toLowerCase()));\r\n if (filteredSymbols.length > 0) {\r\n setNothingFound(false);\r\n setFilteredArray(filteredSymbols);\r\n } else {\r\n setNothingFound(true);\r\n }\r\n }\r\n };\r\n\r\n const handleSearch = (symbol, symbolGroup) => {\r\n if (!symbol && symbolGroup === 'MarketRates.Groups.All') {\r\n setFilteredArray([]);\r\n setNothingFound(false);\r\n } else if (!symbol && symbolGroup !== 'MarketRates.Groups.All') {\r\n handleSelect(symbolGroup);\r\n } else if (symbolGroup === 'MarketRates.Groups.All') {\r\n const filteredSymbols = orderedSymbols.filter((item) => item.id.toLowerCase().includes(symbol.toLowerCase())\r\n || item.description.toLowerCase().includes(symbol.toLowerCase())\r\n || item.group.toLowerCase().includes(symbol.toLowerCase()));\r\n if (filteredSymbols.length > 0) {\r\n setNothingFound(false);\r\n setFilteredArray(filteredSymbols);\r\n } else {\r\n setNothingFound(true);\r\n }\r\n } else {\r\n const filteredSymbols = orderedSymbols.filter((item) => item.id.toLowerCase().includes(symbol.toLowerCase())\r\n || item.description.toLowerCase().includes(symbol.toLowerCase())\r\n || item.group.toLowerCase().includes(symbol.toLowerCase()));\r\n const finalFilterred = filteredSymbols.filter((item) => item.group.toLowerCase() === symbolGroup.toLowerCase());\r\n if (finalFilterred.length > 0) {\r\n setNothingFound(false);\r\n setFilteredArray(finalFilterred);\r\n } else {\r\n setNothingFound(true);\r\n }\r\n }\r\n };\r\n\r\n const symbolsList = filteredArray.length > 0 ? filteredArray : orderedSymbols;\r\n\r\n const shouldDisplayPin = marketRatesSettings.pin.isVisible;\r\n const setShouldDisplayPin = marketRatesSettings.pin.toggleMarketRatesCommand;\r\n\r\n const shouldDisplayTime = marketRatesSettings.lastUpdate.isVisible;\r\n const setShouldDisplayTime = marketRatesSettings.lastUpdate.toggleMarketRatesCommand;\r\n\r\n const shouldDisplayInfo = marketRatesSettings.info.isVisible;\r\n const setShouldDisplayInfo = marketRatesSettings.info.toggleMarketRatesCommand;\r\n\r\n return (\r\n
\r\n

{t('MarketRates.Heading')}

\r\n {symbolGroups && (\r\n \r\n )}\r\n {/* {!nothingFound && false && ( */}\r\n {!nothingFound && (\r\n \r\n )}\r\n {nothingFound &&
{t('MarketRates.NothingFound')}
}\r\n
\r\n );\r\n};\r\n\r\n\r\n// eslint-disable-next-line import/prefer-default-export, consistent-return\r\nexport const LeftBlockMemo = React.memo(LeftBlock, (prev, next) => {\r\n if (prev.initialLeftWidth !== next.initialLeftWidth) {\r\n return false;\r\n }\r\n // eslint-disable-next-line no-self-compare\r\n if ((prev.onSymbolSelect !== next.onSymbolSelect && prev.selectedSymbol !== prev.selectedSymbol)) {\r\n return true;\r\n }\r\n});\r\n","/* eslint-disable react/no-did-update-set-state */\r\n/* eslint-disable complexity */\r\n\r\nimport React from 'react';\r\nimport { DraggableCore } from 'react-draggable';\r\nimport debounce from 'lodash.debounce';\r\n\r\nimport './ReactResizePanel.css';\r\n\r\n\r\nclass ReactResizePanel extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { size: 0 };\r\n\r\n this.contentRef = React.createRef();\r\n this.wrapperRef = React.createRef();\r\n this.validateSize = debounce(this.validateSize, 100).bind(this);\r\n }\r\n\r\n isHorizontal = () => this.props.direction === 'w' || this.props.direction === 'e';\r\n\r\n componentDidMount() {\r\n const content = this.contentRef.current;\r\n const actualContent = content.children[0];\r\n const initialSize = this.isHorizontal()\r\n ? actualContent.getBoundingClientRect().width\r\n : actualContent.getBoundingClientRect().height;\r\n\r\n // Initialize the size value based on the content's current size\r\n this.setState({ size: initialSize });\r\n this.validateSize();\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n const { openPin, id, style } = this.props;\r\n if (prevProps.openPin !== openPin && id === 'bottom-resize' && openPin) {\r\n this.setState({ size: 300 });\r\n }\r\n\r\n if (prevProps.openPin !== openPin && id === 'bottom-resize' && !openPin) {\r\n this.setState({ size: 73 });\r\n }\r\n if (prevProps?.style?.width && style?.width && prevProps.style.width !== style.width && this.isHorizontal()) {\r\n this.setState({ size: style.width });\r\n }\r\n }\r\n\r\n validateSize() {\r\n const isHorizontal = this.isHorizontal();\r\n const content = this.contentRef.current;\r\n const wrapper = this.wrapperRef.current;\r\n const actualContent = content.children[0];\r\n const containerParent = wrapper.parentElement;\r\n\r\n //\r\n // Or if our size doesn't equal the actual content size, then we\r\n // must have pushed past the min size of the content, so resize back\r\n // let minSize = isHorizontal ? $(actualContent).outerWidth(true) : $(actualContent).outerHeight(true);\r\n let minSize = isHorizontal\r\n ? actualContent.scrollWidth\r\n : actualContent.scrollHeight;\r\n\r\n const margins = isHorizontal\r\n ? actualContent.getBoundingClientRect().width - actualContent.offsetWidth\r\n : actualContent.getBoundingClientRect().height - actualContent.offsetHeight;\r\n minSize += margins;\r\n\r\n if (this.state.size !== minSize) {\r\n this.setState({\r\n ...this.state,\r\n size: minSize\r\n });\r\n } else {\r\n // If our resizing has left the parent container's content overflowing\r\n // then we need to shrink back down to fit\r\n const overflow = isHorizontal\r\n ? containerParent.scrollWidth - containerParent.clientWidth\r\n : containerParent.scrollHeight - containerParent.clientHeight;\r\n\r\n if (overflow) {\r\n console.log('overflow', overflow);\r\n this.setState({\r\n ...this.state,\r\n size: isHorizontal\r\n ? actualContent.clientWidth - overflow\r\n : actualContent.clientHeight - overflow\r\n });\r\n }\r\n }\r\n }\r\n\r\n handleDrag = (e, ui) => {\r\n const { direction } = this.props;\r\n const factor = direction === 'e' || direction === 's' ? -1 : 1;\r\n\r\n // modify the size based on the drag delta\r\n const delta = this.isHorizontal() ? ui.deltaX : ui.deltaY;\r\n this.setState((s, p) => ({ size: Math.max(10, s.size - delta * factor) }));\r\n // this.props.handleResize((s, p) => ({ size: Math.max(10, s.size - delta * factor) }));\r\n };\r\n\r\n handleDragEnd = (e, ui) => {\r\n if (this.props.id === 'left-resize') {\r\n const parentElement = document.getElementById('symbol-search').parentNode;\r\n const symbolSelect = document.getElementsByClassName('left-panel__actions-grow').item(0);\r\n if (this.state.size < 320) {\r\n parentElement.style.maxWidth = 'unset';\r\n parentElement.style.width = '100%';\r\n parentElement.style.marginRight = '0px';\r\n symbolSelect.style.maxWidth = 'unset';\r\n } else if (parentElement.parentNode.className === 'symbol-search__container') {\r\n parentElement.parentNode.style.maxWidth = '100%';\r\n parentElement.style.marginRight = '0px';\r\n symbolSelect.style.maxWidth = 'unset';\r\n } else {\r\n parentElement.style.maxWidth = 'calc(100% - 200px)';\r\n parentElement.style.marginRight = '8px';\r\n symbolSelect.style.maxWidth = '200px';\r\n }\r\n }\r\n if (this.props.id === 'bottom-resize') {\r\n const height = document.getElementById('bottom-panel__content').offsetHeight;\r\n this.props.handleResize(height);\r\n }\r\n if (this.props.handleResize) {\r\n this.props.handleResize(this.state.size);\r\n } else {\r\n this.validateSize();\r\n }\r\n };\r\n\r\n render() {\r\n const { size } = this.state;\r\n const {\r\n handleClass, borderClass, children, style, containerClass\r\n } = this.props;\r\n const dragHandlers = {\r\n onDrag: this.handleDrag,\r\n onStop: this.handleDragEnd\r\n };\r\n const { direction } = this.props;\r\n const isHorizontal = this.isHorizontal();\r\n\r\n let containerClasses = isHorizontal ? 'ContainerHorizontal Container' : 'ContainerVertical Container';\r\n\r\n if (containerClass) {\r\n containerClasses += ` ${containerClass}`;\r\n }\r\n\r\n const containerStyle = { ...style } || {};\r\n if (size !== 0) {\r\n containerStyle.flexGrow = 0;\r\n containerStyle[isHorizontal ? 'width' : 'height'] = 'auto';\r\n }\r\n\r\n let handleClasses;\r\n if (handleClass) {\r\n handleClasses = handleClass;\r\n } else {\r\n handleClasses = isHorizontal ? 'ResizeHandleHorizontal' : 'ResizeHandleVertical';\r\n }\r\n let resizeBarClasses;\r\n if (borderClass) {\r\n resizeBarClasses = borderClass;\r\n } else {\r\n resizeBarClasses = isHorizontal ? 'ResizeBarHorizontal' : 'ResizeBarVertical';\r\n }\r\n const contentStyle = isHorizontal ? { width: `${size}px` } : { height: `${size}px` };\r\n const contentClassName = isHorizontal ? 'ResizeContentHorizontal ResizeContent' : 'ResizeContentVertical ResizeContent';\r\n\r\n const content = [\r\n \r\n {React.Children.only(children)}\r\n
\r\n ];\r\n\r\n const handle = (\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n\r\n // Insert the handle at the beginning of the content if our directio is west or north\r\n if (direction === 'w' || direction === 'n') {\r\n content.unshift(handle);\r\n } else {\r\n content.push(handle);\r\n }\r\n\r\n return (\r\n \r\n {content}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default ReactResizePanel;\r\n","import React from 'react';\r\n// import PropTypes from 'prop-types';\r\nimport ReactResizePanel from '../primitives/ReactResizePanel/ReactResizePanel';\r\n\r\nimport './ResizePanelWrapper.css';\r\n\r\n\r\nconst ResizePanelWrapper = ({\r\n handleClick,\r\n // style,\r\n direction,\r\n handleClass,\r\n borderClass,\r\n children,\r\n isClosed,\r\n initialWidth,\r\n initialHeight,\r\n id,\r\n handleResize,\r\n openPin\r\n}) => {\r\n const chevronLeft = ;\r\n const chevronRight = ;\r\n const chevronUp = ;\r\n const chevronDown = ;\r\n\r\n\r\n return (\r\n //
\r\n \r\n {/*
*/}\r\n
\r\n {direction === 'e' && (\r\n
\r\n {isClosed ? chevronRight : chevronLeft}\r\n
\r\n )}\r\n {children}\r\n {direction === 'w' && (\r\n
\r\n {isClosed ? chevronLeft : chevronRight}\r\n
\r\n )}\r\n {direction === 'n' && (\r\n
\r\n {isClosed ? chevronUp : chevronDown}\r\n
\r\n )}\r\n
\r\n \r\n //
\r\n );\r\n};\r\n\r\n// ResizePanel.propTypes = {};\r\n\r\nexport default ResizePanelWrapper;\r\n","export default class chartController {\r\n constructor() {\r\n this._chartInstance = null;\r\n this._symbolChangeCallback = null;\r\n this._periodChangeCallback = null;\r\n }\r\n\r\n setChartInstance(chart) {\r\n this._chartInstance = chart;\r\n }\r\n\r\n clearIndicators() {\r\n if (this._chartInstance) {\r\n this._chartInstance.clearIndicators();\r\n this._chartInstance.clearDrawings();\r\n }\r\n }\r\n\r\n addIndicator(indicator) {\r\n if (this._chartInstance) {\r\n this._chartInstance.addIndicator(indicator.name, { ...indicator?.settings, ...indicator?.styles });\r\n }\r\n }\r\n\r\n getIndicators(){\r\n if (this._chartInstance) {\r\n return this._chartInstance.getIndicators();\r\n }\r\n return [];\r\n }\r\n\r\n addDeal(symbol, openTime, action, tp, sl){\r\n if (this._chartInstance) {\r\n return this._chartInstance.addDeal(symbol, openTime, action, tp, sl);\r\n }\r\n return null;\r\n }\r\n\r\n getChartPeriod(){\r\n if (this._chartInstance) {\r\n return this._chartInstance.getTimeframe();\r\n }\r\n return \"\";\r\n }\r\n\r\n callChartUpdated(symbolId, period) {\r\n if (this._symbolChangeCallback) {\r\n this._symbolChangeCallback(symbolId);\r\n }\r\n\r\n if (this._periodChangeCallback) {\r\n this._periodChangeCallback(period);\r\n }\r\n }\r\n\r\n setSymbolChangedCallback(callback) {\r\n this._symbolChangeCallback = callback;\r\n }\r\n\r\n setPeriodChangedCallback(callback) {\r\n this._periodChangeCallback = callback;\r\n }\r\n}\r\n","import React from 'react';\r\nimport Modal from '@material-ui/core/Modal';\r\nimport Fade from '@material-ui/core/Fade';\r\n\r\nimport Button from './Button';\r\nimport './ModalWrapper.css';\r\n\r\n\r\nconst ModalWrapper = ({ open, handleClose, onBackdropClick, children, disableBackdropClick, childClassName, heading, contentClassName, hideCloseButton, ...rest }) => {\r\n const CloseButtonProps = {\r\n onClickHandler: handleClose,\r\n ariaLabel: 'Close',\r\n className: 'btn btn--close',\r\n iconEnd: 'fa fa-times'\r\n };\r\n\r\n return (\r\n \r\n \r\n
\r\n {heading &&

{heading}

}\r\n {!hideCloseButton && (\r\n
\r\n
\r\n )}\r\n
\r\n {children}\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ModalWrapper;","const context = require.context('./', true, /.png$/);\r\n\r\nconst obj = {};\r\ncontext.keys().forEach((key) => {\r\n const countryCode = key.split('./').pop() // remove the first 2 characters\r\n .substring(0, key.length - 6); // remove the file extension\r\n obj[countryCode] = context(key);\r\n});\r\n\r\nexport default obj;\r\n","import React from 'react';\r\nimport countryFlags from './index';\r\n\r\nconst CountryFlagByCode = (countryCode) => {\r\n return (\r\n
\r\n {`${countryCode}\r\n
\r\n );\r\n};\r\n\r\nexport default CountryFlagByCode;\r\n","import React, { useState } from 'react';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\n\r\n\r\nconst TooltipWrapper = ({\r\n children, arrow, classes, title, ...rest\r\n}) => {\r\n const [open, setOpen] = useState(false);\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleOpen = (e) => {\r\n const { target } = e;\r\n if ((target.scrollWidth > target.offsetWidth)) {\r\n setOpen(true);\r\n }\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default TooltipWrapper;\r\n","import React from 'react';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Box from '@material-ui/core/Box';\r\n\r\nconst LinearProgressBarWithLabel = ({ value, hideLabel }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n {!hideLabel && (\r\n \r\n \r\n {`${Math.round(\r\n value\r\n )}/10`}\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default LinearProgressBarWithLabel;\r\n","const MONTH_NAMES = [\r\n 'January', 'February', 'March', 'April', 'May', 'June',\r\n 'July', 'August', 'September', 'October', 'November', 'December'\r\n];\r\n\r\n\r\nconst getFormattedDate = (date, prefomattedDate = false, hideYear = false) => {\r\n const day = date.getDate();\r\n const month = MONTH_NAMES[date.getMonth()];\r\n const year = date.getFullYear();\r\n const hours = date.getHours();\r\n let minutes = date.getMinutes();\r\n\r\n if (minutes < 10) {\r\n // Adding leading zero to minutes\r\n minutes = `0${minutes}`;\r\n }\r\n\r\n if (prefomattedDate) {\r\n // Today at 10:20\r\n // Yesterday at 10:20\r\n return `${prefomattedDate} at ${hours}:${minutes}`;\r\n }\r\n\r\n if (hideYear) {\r\n // 10. January at 10:20\r\n return `${day}. ${month} at ${hours}:${minutes}`;\r\n }\r\n\r\n // 10. January 2017. at 10:20\r\n return `${day}. ${month} ${year}. at ${hours}:${minutes}`;\r\n};\r\n\r\n\r\n// --- Main function\r\nconst timeAgo = (dateParam) => {\r\n if (!dateParam) {\r\n return null;\r\n }\r\n\r\n const date = typeof dateParam === 'object' ? dateParam : new Date(dateParam);\r\n const DAY_IN_MS = 86400000; // 24 * 60 * 60 * 1000\r\n const today = new Date();\r\n const yesterday = new Date(today - DAY_IN_MS);\r\n const seconds = Math.round((today - date) / 1000);\r\n const minutes = Math.round(seconds / 60);\r\n const isToday = today.toDateString() === date.toDateString();\r\n const isYesterday = yesterday.toDateString() === date.toDateString();\r\n const isThisYear = today.getFullYear() === date.getFullYear();\r\n\r\n\r\n if (seconds < 5) {\r\n return 'now';\r\n } if (seconds < 60) {\r\n return `${seconds} seconds ago`;\r\n } if (seconds < 90) {\r\n return 'about a minute ago';\r\n } if (minutes < 60) {\r\n return `${minutes} minutes ago`;\r\n } if (isToday) {\r\n return getFormattedDate(date, 'Today'); // Today at 10:20\r\n } if (isYesterday) {\r\n return getFormattedDate(date, 'Yesterday'); // Yesterday at 10:20\r\n } if (isThisYear) {\r\n return getFormattedDate(date, false, true); // 10. January at 10:20\r\n }\r\n\r\n return getFormattedDate(date); // 10. January 2017. at 10:20\r\n};\r\n\r\nexport default timeAgo;\r\n","const Format2Fixed = (value) => {\r\n return parseFloat(value).toLocaleString('en-US', {\r\n style: 'decimal',\r\n maximumFractionDigits: 2,\r\n minimumFractionDigits: 2\r\n });\r\n};\r\n\r\nexport const format2Digits = (value, digits) => {\r\n return parseFloat(value).toLocaleString('en-US', {\r\n style: 'decimal',\r\n maximumFractionDigits: digits,\r\n minimumFractionDigits: digits\r\n });\r\n};\r\n\r\nexport default Format2Fixed;\r\n","/* eslint-disable complexity */\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport timeAgo from '../utilsUI/formatTimeAgo';\r\nimport Format2Fixed from '../utilsUI/formatNumber';\r\nimport Button from '../primitives/Button';\r\nimport { SendEventToGoogleAnalytics } from '../../background/storeListener/googleAnalyticsListener';\r\n\r\nimport './SocialStream.css';\r\n\r\n\r\nconst SocialStreamItem = ({streamType, user, handleItemSelect, toggleOpenCopyTab, isClickable, isSmallDesktop }) => {\r\n const {\r\n AvatarURL,\r\n Nickname,\r\n NumberOfCopiedPositions,\r\n InstrumentName,\r\n OpenPrice,\r\n ClosePrice,\r\n OpenTime,\r\n CloseTime,\r\n TradeActionType,\r\n Country,\r\n TradeType,\r\n PendingType,\r\n PL,\r\n Price,\r\n PendingOpenTime,\r\n IsPartial,\r\n TimeStamp\r\n } = user;\r\n const { t } = useTranslation();\r\n let price = TradeType === 0 ? OpenPrice : ClosePrice;\r\n let time = TradeType === 0 ? timeAgo(OpenTime) : timeAgo(CloseTime);\r\n let translationId = TradeType === 0 ? 'Stream.User.Opened.Position' : 'Stream.User.Closed.Position';\r\n let actionType = TradeActionType === 0 ? t('Stream.Buy') : t('Stream.Sell');\r\n if (IsPartial) {\r\n translationId = 'Stream.User.Partial.Closed.Position';\r\n }\r\n if (TradeType === 2) {\r\n price = Price;\r\n time = timeAgo(PendingOpenTime);\r\n translationId = 'Stream.User.Pending.Position';\r\n switch (PendingType) {\r\n case 0:\r\n actionType = t('PendingOrder.Buy.Limit');\r\n break;\r\n case 1:\r\n actionType = t('PendingOrder.Sell.Limit');\r\n break;\r\n case 2:\r\n actionType = t('PendingOrder.Buy.Stop');\r\n break;\r\n case 3:\r\n actionType = t('PendingOrder.Sell.Stop');\r\n break;\r\n default:\r\n actionType = t('PendingOrder.Buy.Limit');\r\n }\r\n }\r\n let borderStyle;\r\n if (TradeType === 1) {\r\n borderStyle = 'stream__container white-border';\r\n } else if (TradeActionType === 0) {\r\n borderStyle = 'stream__container green-border';\r\n } else {\r\n borderStyle = 'stream__container red-border';\r\n }\r\n\r\n const streamText = t(translationId, {\r\n nickName: Nickname,\r\n actionType,\r\n instrument: InstrumentName,\r\n price\r\n });\r\n\r\n const openProfileCopy = () => {\r\n SendEventToGoogleAnalytics(`SocialStream:${streamType}:CopyClick`, {nickname: user?.Nickname});\r\n handleItemSelect({ Nickname: user?.Nickname, Avatar: user?.AvatarURL, shouldOpenCopy: true });\r\n toggleOpenCopyTab();\r\n };\r\n\r\n const openProfile = () => {\r\n SendEventToGoogleAnalytics(`SocialStream:${streamType}:ProfileClick`, {nickname: user?.Nickname});\r\n handleItemSelect({ Nickname: user?.Nickname, Avatar: user?.AvatarURL, shouldOpenCopy: false });\r\n };\r\n\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {/*

\r\n {Country}\r\n

*/}\r\n
\r\n {/*
*/}\r\n
\r\n
\r\n
\r\n {isSmallDesktop ? (\r\n {streamText}\r\n ) : (\r\n streamText\r\n )}\r\n {PL > 0 && (\r\n
\r\n {t('Stream.Earning')}\r\n  \r\n {Format2Fixed(PL * 100)}\r\n %\r\n
\r\n )}\r\n {NumberOfCopiedPositions > 0 && PL > 0 && (\r\n
\r\n {NumberOfCopiedPositions}\r\n  copied this position\r\n
\r\n )}\r\n
\r\n {!isSmallDesktop && (\r\n
\r\n \r\n {time}\r\n
\r\n )}\r\n
\r\n {isClickable && !isSmallDesktop && (\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\n// SocialStreamItem.propTypes = {};\r\n\r\nexport default SocialStreamItem;\r\n","/* eslint-disable no-var */\r\n/* eslint-disable no-restricted-syntax */\r\n// eslint-disable-next-line max-classes-per-file\r\nfunction $(expr, con) {\r\n return typeof expr === 'string'? (con || document).querySelector(expr) : expr || null;\r\n}\r\n\r\n\r\n\r\n$.create = (tag, o) => {\r\n var element = document.createElement(tag);\r\n\r\n for (var i in o) {\r\n var val = o[i];\r\n\r\n if (i === 'inside') {\r\n $(val).appendChild(element);\r\n }\r\n else if (i === 'around') {\r\n var ref = $(val);\r\n ref.parentNode.insertBefore(element, ref);\r\n element.appendChild(ref);\r\n\r\n } else if (i === 'styles') {\r\n if(typeof val === 'object') {\r\n Object.keys(val).map(prop => {\r\n element.style[prop] = val[prop];\r\n });\r\n }\r\n } else if (i in element) {\r\n element[i] = val;\r\n }\r\n else {\r\n element.setAttribute(i, val);\r\n }\r\n }\r\n\r\n return element;\r\n};\r\n\r\nfunction getOffset(element) {\r\n const rect = element.getBoundingClientRect();\r\n return {\r\n // https://stackoverflow.com/a/7436602/6495043\r\n // rect.top varies with scroll, so we add whatever has been\r\n // scrolled to it to get absolute distance from actual page top\r\n top: rect.top + (document.documentElement.scrollTop || document.body.scrollTop),\r\n left: rect.left + (document.documentElement.scrollLeft || document.body.scrollLeft)\r\n };\r\n}\r\n\r\n// https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent\r\n// an element's offsetParent property will return null whenever it, or any of its parents,\r\n// is hidden via the display style property.\r\nfunction isHidden(el) {\r\n return (el.offsetParent === null);\r\n}\r\n\r\nfunction isElementInViewport(el) {\r\n // Although straightforward: https://stackoverflow.com/a/7557433/6495043\r\n var rect = el.getBoundingClientRect();\r\n\r\n return (\r\n rect.top >= 0 &&\r\n rect.left >= 0 &&\r\n rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && /*or $(window).height() */\r\n rect.right <= (window.innerWidth || document.documentElement.clientWidth) /*or $(window).width() */\r\n );\r\n}\r\n\r\nfunction getElementContentWidth(element) {\r\n var styles = window.getComputedStyle(element);\r\n var padding = parseFloat(styles.paddingLeft) +\r\n\t\tparseFloat(styles.paddingRight);\r\n\r\n return element.clientWidth - padding;\r\n}\r\n\r\n\r\n\r\n\r\n\r\nfunction fire(target, type, properties) {\r\n var evt = document.createEvent('HTMLEvents');\r\n\r\n evt.initEvent(type, true, true );\r\n\r\n for (var j in properties) {\r\n evt[j] = properties[j];\r\n }\r\n\r\n return target.dispatchEvent(evt);\r\n}\r\n\r\n// https://css-tricks.com/snippets/javascript/loop-queryselectorall-matches/\r\n\r\nconst BASE_MEASURES = {\r\n margins: {\r\n top: 10,\r\n bottom: 10,\r\n left: 20,\r\n right: 20\r\n },\r\n paddings: {\r\n top: 20,\r\n bottom: 40,\r\n left: 30,\r\n right: 10\r\n },\r\n\r\n baseHeight: 240,\r\n titleHeight: 20,\r\n legendHeight: 30,\r\n\r\n titleFontSize: 12,\r\n};\r\n\r\nfunction getTopOffset(m) {\r\n return m.titleHeight + m.margins.top + m.paddings.top;\r\n}\r\n\r\nfunction getLeftOffset(m) {\r\n return m.margins.left + m.paddings.left;\r\n}\r\n\r\nfunction getExtraHeight(m) {\r\n const totalExtraHeight = m.margins.top + m.margins.bottom\r\n\t\t+ m.paddings.top + m.paddings.bottom\r\n\t\t+ m.titleHeight + m.legendHeight;\r\n return totalExtraHeight;\r\n}\r\n\r\nfunction getExtraWidth(m) {\r\n const totalExtraWidth = m.margins.left + m.margins.right\r\n\t\t+ m.paddings.left + m.paddings.right;\r\n\r\n return totalExtraWidth;\r\n}\r\n\r\nconst INIT_CHART_UPDATE_TIMEOUT = 700;\r\nconst CHART_POST_ANIMATE_TIMEOUT = 400;\r\n\r\nconst DEFAULT_AXIS_CHART_TYPE = 'line';\r\nconst AXIS_DATASET_CHART_TYPES = ['line', 'bar'];\r\n\r\nconst AXIS_LEGEND_BAR_SIZE = 100;\r\n\r\nconst BAR_CHART_SPACE_RATIO = 0.5;\r\nconst MIN_BAR_PERCENT_HEIGHT = 0.00;\r\n\r\nconst LINE_CHART_DOT_SIZE = 4;\r\nconst DOT_OVERLAY_SIZE_INCR = 4;\r\n\r\nconst PERCENTAGE_BAR_DEFAULT_HEIGHT = 20;\r\nconst PERCENTAGE_BAR_DEFAULT_DEPTH = 2;\r\n\r\n// Fixed 5-color theme,\r\n// More colors are difficult to parse visually\r\nconst HEATMAP_DISTRIBUTION_SIZE = 5;\r\n\r\nconst HEATMAP_SQUARE_SIZE = 10;\r\nconst HEATMAP_GUTTER_SIZE = 2;\r\n\r\nconst DEFAULT_CHAR_WIDTH = 7;\r\n\r\nconst TOOLTIP_POINTER_TRIANGLE_HEIGHT = 5;\r\n\r\nconst DEFAULT_CHART_COLORS = ['light-blue', 'blue', 'violet', 'red', 'orange',\r\n 'yellow', 'green', 'light-green', 'purple', 'magenta', 'light-grey', 'dark-grey'];\r\nconst HEATMAP_COLORS_GREEN = ['#ebedf0', '#c6e48b', '#7bc96f', '#239a3b', '#196127'];\r\n\r\n\r\n\r\nconst DEFAULT_COLORS = {\r\n bar: DEFAULT_CHART_COLORS,\r\n line: DEFAULT_CHART_COLORS,\r\n pie: DEFAULT_CHART_COLORS,\r\n percentage: DEFAULT_CHART_COLORS,\r\n heatmap: HEATMAP_COLORS_GREEN,\r\n donut: DEFAULT_CHART_COLORS\r\n};\r\n\r\n// Universal constants\r\nconst ANGLE_RATIO = Math.PI / 180;\r\nconst FULL_ANGLE = 360;\r\n\r\nclass SvgTip {\r\n constructor({\r\n parent = null,\r\n colors = []\r\n }) {\r\n this.parent = parent;\r\n this.colors = colors;\r\n this.titleName = '';\r\n this.titleValue = '';\r\n this.listValues = [];\r\n this.titleValueFirst = 0;\r\n\r\n this.x = 0;\r\n this.y = 0;\r\n\r\n this.top = 0;\r\n this.left = 0;\r\n\r\n this.setup();\r\n }\r\n\r\n setup() {\r\n this.makeTooltip();\r\n }\r\n\r\n refresh() {\r\n this.fill();\r\n this.calcPosition();\r\n }\r\n\r\n makeTooltip() {\r\n this.container = $.create('div', {\r\n inside: this.parent,\r\n className: 'graph-svg-tip comparison',\r\n innerHTML: `\r\n\t\t\t\t
    \r\n\t\t\t\t
    `\r\n });\r\n this.hideTip();\r\n\r\n this.title = this.container.querySelector('.title');\r\n this.dataPointList = this.container.querySelector('.data-point-list');\r\n\r\n this.parent.addEventListener('mouseleave', () => {\r\n this.hideTip();\r\n });\r\n }\r\n\r\n fill() {\r\n let title;\r\n if(this.index) {\r\n this.container.setAttribute('data-point-index', this.index);\r\n }\r\n if(this.titleValueFirst) {\r\n title = `${this.titleValue}${this.titleName}`;\r\n } else {\r\n title = `${this.titleName}${this.titleValue}`;\r\n }\r\n this.title.innerHTML = title;\r\n this.dataPointList.innerHTML = '';\r\n\r\n this.listValues.map((set, i) => {\r\n const color = this.colors[i] || 'black';\r\n const value = set.formatted === 0 || set.formatted ? set.formatted : set.value;\r\n\r\n const li = $.create('li', {\r\n styles: {\r\n 'border-top': `3px solid ${color}`\r\n },\r\n innerHTML: `${ value === 0 || value ? value : '' }\r\n\t\t\t\t\t${set.title ? set.title : '' }`\r\n });\r\n\r\n this.dataPointList.appendChild(li);\r\n });\r\n }\r\n\r\n calcPosition() {\r\n const width = this.container.offsetWidth;\r\n\r\n this.top = this.y - this.container.offsetHeight\r\n\t\t\t- TOOLTIP_POINTER_TRIANGLE_HEIGHT;\r\n this.left = this.x - width/2;\r\n const maxLeft = this.parent.offsetWidth - width;\r\n\r\n const pointer = this.container.querySelector('.svg-pointer');\r\n\r\n if(this.left < 0) {\r\n pointer.style.left = `calc(50% - ${-1 * this.left}px)`;\r\n this.left = 0;\r\n } else if(this.left > maxLeft) {\r\n const delta = this.left - maxLeft;\r\n const pointerOffset = `calc(50% + ${delta}px)`;\r\n pointer.style.left = pointerOffset;\r\n\r\n this.left = maxLeft;\r\n } else {\r\n pointer.style.left = '50%';\r\n }\r\n }\r\n\r\n setValues(x, y, title = {}, listValues = [], index = -1) {\r\n this.titleName = title.name;\r\n this.titleValue = title.value;\r\n this.listValues = listValues;\r\n this.x = x;\r\n this.y = y;\r\n this.titleValueFirst = title.valueFirst || 0;\r\n this.index = index;\r\n this.refresh();\r\n }\r\n\r\n hideTip() {\r\n this.container.style.top = '0px';\r\n this.container.style.left = '0px';\r\n this.container.style.opacity = '0';\r\n }\r\n\r\n showTip() {\r\n this.container.style.top = this.top + 'px';\r\n this.container.style.left = this.left + 'px';\r\n this.container.style.opacity = '1';\r\n }\r\n}\r\n\r\n/**\r\n * Returns the value of a number upto 2 decimal places.\r\n * @param {Number} d Any number\r\n */\r\nfunction floatTwo(d) {\r\n return parseFloat(d.toFixed(2));\r\n}\r\n\r\n/**\r\n * Returns whether or not two given arrays are equal.\r\n * @param {Array} arr1 First array\r\n * @param {Array} arr2 Second array\r\n */\r\n\r\n\r\n/**\r\n * Shuffles array in place. ES6 version\r\n * @param {Array} array An array containing the items.\r\n */\r\n\r\n\r\n/**\r\n * Fill an array with extra points\r\n * @param {Array} array Array\r\n * @param {Number} count number of filler elements\r\n * @param {Object} element element to fill with\r\n * @param {Boolean} start fill at start?\r\n */\r\nfunction fillArray(array, count, element, start=false) {\r\n if(!element) {\r\n element = start ? array[0] : array[array.length - 1];\r\n }\r\n const fillerArray = new Array(Math.abs(count)).fill(element);\r\n array = start ? fillerArray.concat(array) : array.concat(fillerArray);\r\n return array;\r\n}\r\n\r\n/**\r\n * Returns pixel width of string.\r\n * @param {String} string\r\n * @param {Number} charWidth Width of single char in pixels\r\n */\r\nfunction getStringWidth(string, charWidth) {\r\n return (string+'').length * charWidth;\r\n}\r\n\r\n\r\n\r\n// https://stackoverflow.com/a/29325222\r\n\r\n\r\nfunction getPositionByAngle(angle, radius) {\r\n return {\r\n x: Math.sin(angle * ANGLE_RATIO) * radius,\r\n y: Math.cos(angle * ANGLE_RATIO) * radius,\r\n };\r\n}\r\n\r\n/**\r\n * Check if a number is valid for svg attributes\r\n * @param {object} candidate Candidate to test\r\n * @param {Boolean} nonNegative flag to treat negative number as invalid\r\n */\r\nfunction isValidNumber(candidate, nonNegative=false) {\r\n if (Number.isNaN(candidate)) return false;\r\n else if (candidate === undefined) return false;\r\n else if (!Number.isFinite(candidate)) return false;\r\n else if (nonNegative && candidate < 0) return false;\r\n else return true;\r\n}\r\n\r\nfunction getBarHeightAndYAttr(yTop, zeroLine) {\r\n let height, y;\r\n if (yTop <= zeroLine) {\r\n height = zeroLine - yTop;\r\n y = yTop;\r\n } else {\r\n height = yTop - zeroLine;\r\n y = zeroLine;\r\n }\r\n\r\n return [height, y];\r\n}\r\n\r\nfunction equilizeNoOfElements(array1, array2,\r\n extraCount = array2.length - array1.length) {\r\n\r\n // Doesn't work if either has zero elements.\r\n if(extraCount > 0) {\r\n array1 = fillArray(array1, extraCount);\r\n } else {\r\n array2 = fillArray(array2, extraCount);\r\n }\r\n return [array1, array2];\r\n}\r\n\r\nfunction truncateString(txt, len) {\r\n if (!txt) {\r\n return;\r\n }\r\n if (txt.length > len) {\r\n return txt.slice(0, len-3) + '...';\r\n } else {\r\n return txt;\r\n }\r\n}\r\n\r\nfunction shortenLargeNumber(label) {\r\n let number;\r\n if (typeof label === 'number') number = label;\r\n else if (typeof label === 'string') {\r\n number = Number(label);\r\n if (Number.isNaN(number)) return label;\r\n }\r\n\r\n // Using absolute since log wont work for negative numbers\r\n const p = Math.floor(Math.log10(Math.abs(number)));\r\n if (p <= 2) return number; // Return as is for a 3 digit number of less\r\n const\tl = Math.floor(p / 3);\r\n const shortened = (Math.pow(10, p - l * 3) * +(number / Math.pow(10, p)).toFixed(1));\r\n\r\n // Correct for floating point error upto 2 decimal places\r\n return Math.round(shortened*100)/100 + ' ' + ['', 'K', 'M', 'B', 'T'][l];\r\n}\r\n\r\n// cubic bezier curve calculation (from example by François Romain)\r\nfunction getSplineCurvePointsStr(xList, yList) {\r\n\r\n const points=[];\r\n for(let i=0;i {\r\n const lengthX = pointB[0] - pointA[0];\r\n const lengthY = pointB[1] - pointA[1];\r\n return {\r\n length: Math.sqrt(Math.pow(lengthX, 2) + Math.pow(lengthY, 2)),\r\n angle: Math.atan2(lengthY, lengthX)\r\n };\r\n };\r\n \r\n const controlPoint = (current, previous, next, reverse) => {\r\n const p = previous || current;\r\n const n = next || current;\r\n const o = line(p, n);\r\n const angle = o.angle + (reverse ? Math.PI : 0);\r\n const length = o.length * smoothing;\r\n const x = current[0] + Math.cos(angle) * length;\r\n const y = current[1] + Math.sin(angle) * length;\r\n return [x, y];\r\n };\r\n \r\n const bezierCommand = (point, i, a) => {\r\n const cps = controlPoint(a[i - 1], a[i - 2], point);\r\n const cpe = controlPoint(point, a[i - 1], a[i + 1], true);\r\n return `C ${cps[0]},${cps[1]} ${cpe[0]},${cpe[1]} ${point[0]},${point[1]}`;\r\n };\r\n \r\n const pointStr = (points, command) => {\r\n return points.reduce((acc, point, i, a) => i === 0\r\n ? `${point[0]},${point[1]}`\r\n : `${acc} ${command(point, i, a)}`, '');\r\n };\r\n \r\n return pointStr(points, bezierCommand);\r\n}\r\n\r\nconst PRESET_COLOR_MAP = {\r\n 'light-blue': '#7cd6fd',\r\n 'blue': '#5e64ff',\r\n 'violet': '#743ee2',\r\n 'red': '#ff5858',\r\n 'orange': '#ffa00a',\r\n 'yellow': '#feef72',\r\n 'green': '#28a745',\r\n 'light-green': '#98d85b',\r\n 'purple': '#b554ff',\r\n 'magenta': '#ffa3ef',\r\n 'black': '#36114C',\r\n 'grey': '#bdd3e6',\r\n 'light-grey': '#f0f4f7',\r\n 'dark-grey': '#b8c2cc'\r\n};\r\n\r\nfunction limitColor(r){\r\n if (r > 255) return 255;\r\n else if (r < 0) return 0;\r\n return r;\r\n}\r\n\r\nfunction randomColor() {\r\n return '#' + Math.floor(Math.random() * 16777215).toString(16);\r\n}\r\n\r\n\r\nfunction lightenDarkenColor(color, amt) {\r\n if (color) {\r\n let col = getColor(color);\r\n let usePound = false;\r\n if (col && col[0] == '#') {\r\n col = col.slice(1);\r\n usePound = true;\r\n }\r\n const num = parseInt(col,16);\r\n const r = limitColor((num >> 16) + amt);\r\n const b = limitColor(((num >> 8) & 0x00FF) + amt);\r\n const g = limitColor((num & 0x0000FF) + amt);\r\n return (usePound?'#':'') + (g | (b << 8) | (r << 16)).toString(16);\r\n }\r\n const random = randomColor();\r\n \r\n return random;\r\n}\r\n\r\nfunction isValidColor(string) {\r\n // https://stackoverflow.com/a/32685393\r\n const HEX_RE = /(^\\s*)(#)((?:[A-Fa-f0-9]{3}){1,2})$/i;\r\n const RGB_RE = /(^\\s*)(rgb|hsl)(a?)[(]\\s*([\\d.]+\\s*%?)\\s*,\\s*([\\d.]+\\s*%?)\\s*,\\s*([\\d.]+\\s*%?)\\s*(?:,\\s*([\\d.]+)\\s*)?[)]$/i;\r\n return HEX_RE.test(string) || RGB_RE.test(string);\r\n}\r\n\r\nconst getColor = (color) => {\r\n return PRESET_COLOR_MAP[color] || color;\r\n};\r\n\r\nconst AXIS_TICK_LENGTH = 6;\r\nconst LABEL_MARGIN = 4;\r\nconst LABEL_MAX_CHARS = 15;\r\nconst FONT_SIZE = 10;\r\nconst BASE_LINE_COLOR = '#dadada';\r\nconst FONT_FILL = '#555b51';\r\n\r\nfunction $$1(expr, con) {\r\n return typeof expr === 'string'? (con || document).querySelector(expr) : expr || null;\r\n}\r\n\r\nfunction createSVG(tag, o) {\r\n var element = document.createElementNS('http://www.w3.org/2000/svg', tag);\r\n\r\n for (var i in o) {\r\n var val = o[i];\r\n\r\n if (i === 'inside') {\r\n $$1(val).appendChild(element);\r\n }\r\n else if (i === 'around') {\r\n var ref = $$1(val);\r\n ref.parentNode.insertBefore(element, ref);\r\n element.appendChild(ref);\r\n\r\n } else if (i === 'styles') {\r\n if(typeof val === 'object') {\r\n Object.keys(val).map(prop => {\r\n element.style[prop] = val[prop];\r\n });\r\n }\r\n } else {\r\n if(i === 'className') { i = 'class'; }\r\n if(i === 'innerHTML') {\r\n element['textContent'] = val;\r\n element['text'] = val;\r\n element.innerHTML = val;\r\n } else {\r\n element.setAttribute(i, val);\r\n }\r\n }\r\n }\r\n\r\n return element;\r\n}\r\n\r\nfunction renderVerticalGradient(svgDefElem, gradientId) {\r\n return createSVG('linearGradient', {\r\n inside: svgDefElem,\r\n id: gradientId,\r\n x1: 0,\r\n x2: 0,\r\n y1: 0,\r\n y2: 1\r\n });\r\n}\r\n\r\nfunction setGradientStop(gradElem, offset, color, opacity) {\r\n return createSVG('stop', {\r\n 'inside': gradElem,\r\n 'style': `stop-color: ${color}`,\r\n 'offset': offset,\r\n 'stop-opacity': opacity\r\n });\r\n}\r\n\r\nfunction makeSVGContainer(parent, className, width, height) {\r\n return createSVG('svg', {\r\n className: className,\r\n inside: parent,\r\n width: width,\r\n height: height\r\n });\r\n}\r\n\r\nfunction makeSVGDefs(svgContainer) {\r\n return createSVG('defs', {\r\n inside: svgContainer,\r\n });\r\n}\r\n\r\nfunction makeSVGGroup(className, transform='', parent=undefined) {\r\n const args = {\r\n className: className,\r\n transform: transform\r\n };\r\n if(parent) args.inside = parent;\r\n return createSVG('g', args);\r\n}\r\n\r\n\r\n\r\nfunction makePath(pathStr, className='', stroke='none', fill='none', strokeWidth=2) {\r\n return createSVG('path', {\r\n className: className,\r\n d: pathStr,\r\n styles: {\r\n stroke: stroke,\r\n fill: fill,\r\n 'stroke-width': strokeWidth\r\n }\r\n });\r\n}\r\n\r\nfunction makeArcPathStr(startPosition, endPosition, center, radius, clockWise=1, largeArc=0){\r\n const [arcStartX, arcStartY] = [center.x + startPosition.x, center.y + startPosition.y];\r\n const [arcEndX, arcEndY] = [center.x + endPosition.x, center.y + endPosition.y];\r\n return `M${center.x} ${center.y}\r\n\t\tL${arcStartX} ${arcStartY}\r\n\t\tA ${radius} ${radius} 0 ${largeArc} ${clockWise ? 1 : 0}\r\n\t\t${arcEndX} ${arcEndY} z`;\r\n}\r\n\r\nfunction makeCircleStr(startPosition, endPosition, center, radius, clockWise=1, largeArc=0){\r\n const [arcStartX, arcStartY] = [center.x + startPosition.x, center.y + startPosition.y];\r\n const [arcEndX, midArc, arcEndY] = [center.x + endPosition.x, center.y * 2, center.y + endPosition.y];\r\n return `M${center.x} ${center.y}\r\n\t\tL${arcStartX} ${arcStartY}\r\n\t\tA ${radius} ${radius} 0 ${largeArc} ${clockWise ? 1 : 0}\r\n\t\t${arcEndX} ${midArc} z\r\n\t\tL${arcStartX} ${midArc}\r\n\t\tA ${radius} ${radius} 0 ${largeArc} ${clockWise ? 1 : 0}\r\n\t\t${arcEndX} ${arcEndY} z`;\r\n}\r\n\r\nfunction makeArcStrokePathStr(startPosition, endPosition, center, radius, clockWise=1, largeArc=0){\r\n const [arcStartX, arcStartY] = [center.x + startPosition.x, center.y + startPosition.y];\r\n const [arcEndX, arcEndY] = [center.x + endPosition.x, center.y + endPosition.y];\r\n\r\n return `M${arcStartX} ${arcStartY}\r\n\t\tA ${radius} ${radius} 0 ${largeArc} ${clockWise ? 1 : 0}\r\n\t\t${arcEndX} ${arcEndY}`;\r\n}\r\n\r\nfunction makeStrokeCircleStr(startPosition, endPosition, center, radius, clockWise=1, largeArc=0){\r\n const [arcStartX, arcStartY] = [center.x + startPosition.x, center.y + startPosition.y];\r\n const [arcEndX, midArc, arcEndY] = [center.x + endPosition.x, radius * 2 + arcStartY, center.y + startPosition.y];\r\n\r\n return `M${arcStartX} ${arcStartY}\r\n\t\tA ${radius} ${radius} 0 ${largeArc} ${clockWise ? 1 : 0}\r\n\t\t${arcEndX} ${midArc}\r\n\t\tM${arcStartX} ${midArc}\r\n\t\tA ${radius} ${radius} 0 ${largeArc} ${clockWise ? 1 : 0}\r\n\t\t${arcEndX} ${arcEndY}`;\r\n}\r\n\r\nfunction makeGradient(svgDefElem, color, lighter = false) {\r\n const gradientId ='path-fill-gradient' + '-' + color + '-' +(lighter ? 'lighter' : 'default');\r\n const gradientDef = renderVerticalGradient(svgDefElem, gradientId);\r\n let opacities = [1, 0.6, 0.2];\r\n if(lighter) {\r\n opacities = [0.4, 0.2, 0];\r\n }\r\n\r\n setGradientStop(gradientDef, '0%', color, opacities[0]);\r\n setGradientStop(gradientDef, '50%', color, opacities[1]);\r\n setGradientStop(gradientDef, '100%', color, opacities[2]);\r\n\r\n return gradientId;\r\n}\r\n\r\nfunction percentageBar(x, y, width, height,\r\n depth=PERCENTAGE_BAR_DEFAULT_DEPTH, fill='none') {\r\n\r\n const args = {\r\n className: 'percentage-bar',\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height,\r\n fill: fill,\r\n styles: {\r\n 'stroke': lightenDarkenColor(fill, -25),\r\n // Diabolically good: https://stackoverflow.com/a/9000859\r\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-dasharray\r\n 'stroke-dasharray': `0, ${height + width}, ${width}, ${height}`,\r\n 'stroke-width': depth\r\n },\r\n };\r\n\r\n return createSVG('rect', args);\r\n}\r\n\r\nfunction heatSquare(className, x, y, size, radius, fill='none', data={}) {\r\n const args = {\r\n className: className,\r\n x: x,\r\n y: y,\r\n width: size,\r\n height: size,\r\n rx: radius,\r\n fill: fill\r\n };\r\n\r\n Object.keys(data).map(key => {\r\n args[key] = data[key];\r\n });\r\n\r\n return createSVG('rect', args);\r\n}\r\n\r\nfunction legendBar(x, y, size, fill='none', label, truncate=false) {\r\n label = truncate ? truncateString(label, LABEL_MAX_CHARS) : label;\r\n\r\n const args = {\r\n className: 'legend-bar',\r\n x: 0,\r\n y: 0,\r\n width: size,\r\n height: '2px',\r\n fill: fill\r\n };\r\n const text = createSVG('text', {\r\n className: 'legend-dataset-text',\r\n x: 0,\r\n y: 0,\r\n dy: (FONT_SIZE * 2) + 'px',\r\n 'font-size': (FONT_SIZE * 1.2) + 'px',\r\n 'text-anchor': 'start',\r\n fill: FONT_FILL,\r\n innerHTML: label\r\n });\r\n\r\n const group = createSVG('g', {\r\n transform: `translate(${x}, ${y})`\r\n });\r\n group.appendChild(createSVG('rect', args));\r\n group.appendChild(text);\r\n\r\n return group;\r\n}\r\n\r\nfunction legendDot(x, y, size, fill='none', label, truncate=false) {\r\n label = truncate ? truncateString(label, LABEL_MAX_CHARS) : label;\r\n\r\n const args = {\r\n className: 'legend-dot',\r\n cx: 0,\r\n cy: 0,\r\n r: size,\r\n fill: fill\r\n };\r\n const text = createSVG('text', {\r\n className: 'legend-dataset-text',\r\n x: 0,\r\n y: 0,\r\n dx: (FONT_SIZE) + 'px',\r\n dy: (FONT_SIZE/3) + 'px',\r\n 'font-size': (FONT_SIZE * 1.2) + 'px',\r\n 'text-anchor': 'start',\r\n fill: FONT_FILL,\r\n innerHTML: label\r\n });\r\n\r\n const group = createSVG('g', {\r\n transform: `translate(${x}, ${y})`\r\n });\r\n group.appendChild(createSVG('circle', args));\r\n group.appendChild(text);\r\n\r\n return group;\r\n}\r\n\r\nfunction makeText(className, x, y, content, options = {}) {\r\n const fontSize = options.fontSize || FONT_SIZE;\r\n const dy = options.dy !== undefined ? options.dy : (fontSize / 2);\r\n const fill = options.fill || FONT_FILL;\r\n const textAnchor = options.textAnchor || 'start';\r\n return createSVG('text', {\r\n className: className,\r\n x: x,\r\n y: y,\r\n dy: dy + 'px',\r\n 'font-size': fontSize + 'px',\r\n fill: fill,\r\n 'text-anchor': textAnchor,\r\n innerHTML: content\r\n });\r\n}\r\n\r\nfunction makeVertLine(x, label, y1, y2, options={}) {\r\n if(!options.stroke) options.stroke = BASE_LINE_COLOR;\r\n const l = createSVG('line', {\r\n className: 'line-vertical ' + options.className,\r\n x1: 0,\r\n x2: 0,\r\n y1: y1,\r\n y2: y2,\r\n styles: {\r\n stroke: options.stroke\r\n }\r\n });\r\n\r\n const text = createSVG('text', {\r\n x: 0,\r\n y: y1 > y2 ? y1 + LABEL_MARGIN : y1 - LABEL_MARGIN - FONT_SIZE,\r\n dy: FONT_SIZE + 'px',\r\n 'font-size': FONT_SIZE + 'px',\r\n 'text-anchor': 'middle',\r\n innerHTML: label + ''\r\n });\r\n\r\n const line = createSVG('g', {\r\n transform: `translate(${ x }, 0)`\r\n });\r\n\r\n line.appendChild(l);\r\n line.appendChild(text);\r\n\r\n return line;\r\n}\r\n\r\nfunction makeHoriLine(y, label, x1, x2, options={}) {\r\n if(!options.stroke) options.stroke = BASE_LINE_COLOR;\r\n if(!options.lineType) options.lineType = '';\r\n if (options.shortenNumbers) label = shortenLargeNumber(label);\r\n\r\n const className = 'line-horizontal ' + options.className +\r\n\t\t(options.lineType === 'dashed' ? 'dashed': '');\r\n\r\n const l = createSVG('line', {\r\n className: className,\r\n x1: x1,\r\n x2: x2,\r\n y1: 0,\r\n y2: 0,\r\n styles: {\r\n stroke: options.stroke\r\n }\r\n });\r\n\r\n const text = createSVG('text', {\r\n x: x1 < x2 ? x1 - LABEL_MARGIN : x1 + LABEL_MARGIN,\r\n y: 0,\r\n dy: (FONT_SIZE / 2 - 2) + 'px',\r\n 'font-size': FONT_SIZE + 'px',\r\n 'text-anchor': x1 < x2 ? 'end' : 'start',\r\n innerHTML: label+''\r\n });\r\n\r\n const line = createSVG('g', {\r\n transform: `translate(0, ${y})`,\r\n 'stroke-opacity': 1\r\n });\r\n\r\n if(text === 0 || text === '0') {\r\n line.style.stroke = 'rgba(27, 31, 35, 0.6)';\r\n }\r\n\r\n line.appendChild(l);\r\n line.appendChild(text);\r\n\r\n return line;\r\n}\r\n\r\nfunction yLine(y, label, width, options={}) {\r\n if (!isValidNumber(y)) y = 0;\r\n\r\n if(!options.pos) options.pos = 'left';\r\n if(!options.offset) options.offset = 0;\r\n if(!options.mode) options.mode = 'span';\r\n if(!options.stroke) options.stroke = BASE_LINE_COLOR;\r\n if(!options.className) options.className = '';\r\n\r\n let x1 = -1 * AXIS_TICK_LENGTH;\r\n let x2 = options.mode === 'span' ? width + AXIS_TICK_LENGTH : 0;\r\n\r\n if(options.mode === 'tick' && options.pos === 'right') {\r\n x1 = width + AXIS_TICK_LENGTH;\r\n x2 = width;\r\n }\r\n\r\n // let offset = options.pos === 'left' ? -1 * options.offset : options.offset;\r\n\r\n x1 += options.offset;\r\n x2 += options.offset;\r\n\r\n return makeHoriLine(y, label, x1, x2, {\r\n stroke: options.stroke,\r\n className: options.className,\r\n lineType: options.lineType,\r\n shortenNumbers: options.shortenNumbers\r\n });\r\n}\r\n\r\nfunction xLine(x, label, height, options={}) {\r\n if (!isValidNumber(x)) x = 0;\r\n\r\n if(!options.pos) options.pos = 'bottom';\r\n if(!options.offset) options.offset = 0;\r\n if(!options.mode) options.mode = 'span';\r\n if(!options.stroke) options.stroke = BASE_LINE_COLOR;\r\n if(!options.className) options.className = '';\r\n\r\n // Draw X axis line in span/tick mode with optional label\r\n // \ty2(span)\r\n // \t\t\t\t\t\t|\r\n // \t\t\t\t\t\t|\r\n //\t\t\t\tx line\t|\r\n //\t\t\t\t\t\t|\r\n // \t\t\t\t\t \t|\r\n // ---------------------+-- y2(tick)\r\n //\t\t\t\t\t\t|\r\n //\t\t\t\t\t\t\ty1\r\n\r\n let y1 = height + AXIS_TICK_LENGTH;\r\n let y2 = options.mode === 'span' ? -1 * AXIS_TICK_LENGTH : height;\r\n\r\n if(options.mode === 'tick' && options.pos === 'top') {\r\n // top axis ticks\r\n y1 = -1 * AXIS_TICK_LENGTH;\r\n y2 = 0;\r\n }\r\n\r\n return makeVertLine(x, label, y1, y2, {\r\n stroke: options.stroke,\r\n className: options.className,\r\n lineType: options.lineType\r\n });\r\n}\r\n\r\nfunction yMarker(y, label, width, options={}) {\r\n if(!options.labelPos) options.labelPos = 'right';\r\n const x = options.labelPos === 'left' ? LABEL_MARGIN\r\n : width - getStringWidth(label, 5) - LABEL_MARGIN;\r\n\r\n const labelSvg = createSVG('text', {\r\n className: 'chart-label',\r\n x: x,\r\n y: 0,\r\n dy: (FONT_SIZE / -2) + 'px',\r\n 'font-size': FONT_SIZE + 'px',\r\n 'text-anchor': 'start',\r\n innerHTML: label+''\r\n });\r\n\r\n const line = makeHoriLine(y, '', 0, width, {\r\n stroke: options.stroke || BASE_LINE_COLOR,\r\n className: options.className || '',\r\n lineType: options.lineType\r\n });\r\n\r\n line.appendChild(labelSvg);\r\n\r\n return line;\r\n}\r\n\r\nfunction yRegion(y1, y2, width, label, options={}) {\r\n // return a group\r\n const height = y1 - y2;\r\n\r\n const rect = createSVG('rect', {\r\n className: 'bar mini', // remove class\r\n styles: {\r\n fill: 'rgba(228, 234, 239, 0.49)',\r\n stroke: BASE_LINE_COLOR,\r\n 'stroke-dasharray': `${width}, ${height}`\r\n },\r\n // 'data-point-index': index,\r\n x: 0,\r\n y: 0,\r\n width: width,\r\n height: height\r\n });\r\n\r\n if(!options.labelPos) options.labelPos = 'right';\r\n const x = options.labelPos === 'left' ? LABEL_MARGIN\r\n : width - getStringWidth(label+'', 4.5) - LABEL_MARGIN;\r\n\r\n const labelSvg = createSVG('text', {\r\n className: 'chart-label',\r\n x: x,\r\n y: 0,\r\n dy: (FONT_SIZE / -2) + 'px',\r\n 'font-size': FONT_SIZE + 'px',\r\n 'text-anchor': 'start',\r\n innerHTML: label+''\r\n });\r\n\r\n const region = createSVG('g', {\r\n transform: `translate(0, ${y2})`\r\n });\r\n\r\n region.appendChild(rect);\r\n region.appendChild(labelSvg);\r\n\r\n return region;\r\n}\r\n\r\nfunction datasetBar(x, yTop, width, color, label='', index=0, offset=0, meta={}) {\r\n let [height, y] = getBarHeightAndYAttr(yTop, meta.zeroLine);\r\n y -= offset;\r\n\r\n if(height === 0) {\r\n height = meta.minHeight;\r\n y -= meta.minHeight;\r\n }\r\n\r\n // Preprocess numbers to avoid svg building errors\r\n if (!isValidNumber(x)) x = 0;\r\n if (!isValidNumber(y)) y = 0;\r\n if (!isValidNumber(height, true)) height = 0;\r\n if (!isValidNumber(width, true)) width = 0;\r\n\r\n const rect = createSVG('rect', {\r\n className: 'bar mini',\r\n style: `fill: ${color}`,\r\n 'data-point-index': index,\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n });\r\n\r\n label += '';\r\n\r\n if(!label && !label.length) {\r\n return rect;\r\n } else {\r\n rect.setAttribute('y', 0);\r\n rect.setAttribute('x', 0);\r\n const text = createSVG('text', {\r\n className: 'data-point-value',\r\n x: width/2,\r\n y: 0,\r\n dy: (FONT_SIZE / 2 * -1) + 'px',\r\n 'font-size': FONT_SIZE + 'px',\r\n 'text-anchor': 'middle',\r\n innerHTML: label\r\n });\r\n\r\n const group = createSVG('g', {\r\n 'data-point-index': index,\r\n transform: `translate(${x}, ${y})`\r\n });\r\n group.appendChild(rect);\r\n group.appendChild(text);\r\n\r\n return group;\r\n }\r\n}\r\n\r\nfunction datasetDot(x, y, radius, color, label='', index=0) {\r\n const dot = createSVG('circle', {\r\n style: `fill: ${color}`,\r\n 'data-point-index': index,\r\n cx: x,\r\n cy: y,\r\n r: radius\r\n });\r\n\r\n label += '';\r\n\r\n if(!label && !label.length) {\r\n return dot;\r\n } else {\r\n dot.setAttribute('cy', 0);\r\n dot.setAttribute('cx', 0);\r\n\r\n const text = createSVG('text', {\r\n className: 'data-point-value',\r\n x: 0,\r\n y: 0,\r\n dy: (FONT_SIZE / 2 * -1 - radius) + 'px',\r\n 'font-size': FONT_SIZE + 'px',\r\n 'text-anchor': 'middle',\r\n innerHTML: label\r\n });\r\n\r\n const group = createSVG('g', {\r\n 'data-point-index': index,\r\n transform: `translate(${x}, ${y})`\r\n });\r\n group.appendChild(dot);\r\n group.appendChild(text);\r\n\r\n return group;\r\n }\r\n}\r\n\r\nfunction getPaths(xList, yList, color, options={}, meta={}) {\r\n const pointsList = yList.map((y, i) => (xList[i] + ',' + y));\r\n let pointsStr = pointsList.join('L');\r\n\r\n // Spline\r\n if (options.spline)\r\n pointsStr = getSplineCurvePointsStr(xList, yList);\r\n\r\n const path = makePath('M'+pointsStr, 'line-graph-path', color);\r\n\r\n // HeatLine\r\n if(options.heatline) {\r\n const gradient_id = makeGradient(meta.svgDefs, color);\r\n path.style.stroke = `url(#${gradient_id})`;\r\n }\r\n\r\n const paths = {\r\n path: path\r\n };\r\n\r\n // Region\r\n if(options.regionFill) {\r\n const gradient_id_region = makeGradient(meta.svgDefs, color, true);\r\n\r\n const pathStr = 'M' + `${xList[0]},${meta.zeroLine}L` + pointsStr + `L${xList.slice(-1)[0]},${meta.zeroLine}`;\r\n paths.region = makePath(pathStr, 'region-fill', 'none', `url(#${gradient_id_region})`);\r\n }\r\n\r\n return paths;\r\n}\r\n\r\nconst makeOverlay = {\r\n 'bar': (unit) => {\r\n let transformValue;\r\n if(unit.nodeName !== 'rect') {\r\n transformValue = unit.getAttribute('transform');\r\n unit = unit.childNodes[0];\r\n }\r\n const overlay = unit.cloneNode();\r\n overlay.style.fill = '#000000';\r\n overlay.style.opacity = '0.4';\r\n\r\n if(transformValue) {\r\n overlay.setAttribute('transform', transformValue);\r\n }\r\n return overlay;\r\n },\r\n\r\n 'dot': (unit) => {\r\n let transformValue;\r\n if(unit.nodeName !== 'circle') {\r\n transformValue = unit.getAttribute('transform');\r\n unit = unit.childNodes[0];\r\n }\r\n const overlay = unit.cloneNode();\r\n const radius = unit.getAttribute('r');\r\n const fill = unit.getAttribute('fill');\r\n overlay.setAttribute('r', parseInt(radius) + DOT_OVERLAY_SIZE_INCR);\r\n overlay.setAttribute('fill', fill);\r\n overlay.style.opacity = '0.6';\r\n\r\n if(transformValue) {\r\n overlay.setAttribute('transform', transformValue);\r\n }\r\n return overlay;\r\n },\r\n\r\n 'heat_square': (unit) => {\r\n let transformValue;\r\n if(unit.nodeName !== 'circle') {\r\n transformValue = unit.getAttribute('transform');\r\n unit = unit.childNodes[0];\r\n }\r\n const overlay = unit.cloneNode();\r\n const radius = unit.getAttribute('r');\r\n const fill = unit.getAttribute('fill');\r\n overlay.setAttribute('r', parseInt(radius) + DOT_OVERLAY_SIZE_INCR);\r\n overlay.setAttribute('fill', fill);\r\n overlay.style.opacity = '0.6';\r\n\r\n if(transformValue) {\r\n overlay.setAttribute('transform', transformValue);\r\n }\r\n return overlay;\r\n }\r\n};\r\n\r\nconst updateOverlay = {\r\n 'bar': (unit, overlay) => {\r\n let transformValue;\r\n if(unit.nodeName !== 'rect') {\r\n transformValue = unit.getAttribute('transform');\r\n unit = unit.childNodes[0];\r\n }\r\n const attributes = ['x', 'y', 'width', 'height'];\r\n Object.values(unit.attributes)\r\n .filter(attr => attributes.includes(attr.name) && attr.specified)\r\n .map(attr => {\r\n overlay.setAttribute(attr.name, attr.nodeValue);\r\n });\r\n\r\n if(transformValue) {\r\n overlay.setAttribute('transform', transformValue);\r\n }\r\n },\r\n\r\n 'dot': (unit, overlay) => {\r\n let transformValue;\r\n if(unit.nodeName !== 'circle') {\r\n transformValue = unit.getAttribute('transform');\r\n unit = unit.childNodes[0];\r\n }\r\n const attributes = ['cx', 'cy'];\r\n Object.values(unit.attributes)\r\n .filter(attr => attributes.includes(attr.name) && attr.specified)\r\n .map(attr => {\r\n overlay.setAttribute(attr.name, attr.nodeValue);\r\n });\r\n\r\n if(transformValue) {\r\n overlay.setAttribute('transform', transformValue);\r\n }\r\n },\r\n\r\n 'heat_square': (unit, overlay) => {\r\n let transformValue;\r\n if(unit.nodeName !== 'circle') {\r\n transformValue = unit.getAttribute('transform');\r\n unit = unit.childNodes[0];\r\n }\r\n const attributes = ['cx', 'cy'];\r\n Object.values(unit.attributes)\r\n .filter(attr => attributes.includes(attr.name) && attr.specified)\r\n .map(attr => {\r\n overlay.setAttribute(attr.name, attr.nodeValue);\r\n });\r\n\r\n if(transformValue) {\r\n overlay.setAttribute('transform', transformValue);\r\n }\r\n },\r\n};\r\n\r\nconst UNIT_ANIM_DUR = 350;\r\nconst PATH_ANIM_DUR = 350;\r\nconst MARKER_LINE_ANIM_DUR = UNIT_ANIM_DUR;\r\nconst REPLACE_ALL_NEW_DUR = 250;\r\n\r\nconst STD_EASING = 'easein';\r\n\r\nfunction translate(unit, oldCoord, newCoord, duration) {\r\n const old = typeof oldCoord === 'string' ? oldCoord : oldCoord.join(', ');\r\n return [\r\n unit,\r\n {transform: newCoord.join(', ')},\r\n duration,\r\n STD_EASING,\r\n 'translate',\r\n {transform: old}\r\n ];\r\n}\r\n\r\nfunction translateVertLine(xLine, newX, oldX) {\r\n return translate(xLine, [oldX, 0], [newX, 0], MARKER_LINE_ANIM_DUR);\r\n}\r\n\r\nfunction translateHoriLine(yLine, newY, oldY) {\r\n return translate(yLine, [0, oldY], [0, newY], MARKER_LINE_ANIM_DUR);\r\n}\r\n\r\nfunction animateRegion(rectGroup, newY1, newY2, oldY2) {\r\n const newHeight = newY1 - newY2;\r\n const rect = rectGroup.childNodes[0];\r\n const width = rect.getAttribute('width');\r\n const rectAnim = [\r\n rect,\r\n { height: newHeight, 'stroke-dasharray': `${width}, ${newHeight}` },\r\n MARKER_LINE_ANIM_DUR,\r\n STD_EASING\r\n ];\r\n\r\n const groupAnim = translate(rectGroup, [0, oldY2], [0, newY2], MARKER_LINE_ANIM_DUR);\r\n return [rectAnim, groupAnim];\r\n}\r\n\r\nfunction animateBar(bar, x, yTop, width, offset=0, meta={}) {\r\n let [height, y] = getBarHeightAndYAttr(yTop, meta.zeroLine);\r\n y -= offset;\r\n if(bar.nodeName !== 'rect') {\r\n const rect = bar.childNodes[0];\r\n const rectAnim = [\r\n rect,\r\n {width: width, height: height},\r\n UNIT_ANIM_DUR,\r\n STD_EASING\r\n ];\r\n\r\n const oldCoordStr = bar.getAttribute('transform').split('(')[1].slice(0, -1);\r\n const groupAnim = translate(bar, oldCoordStr, [x, y], MARKER_LINE_ANIM_DUR);\r\n return [rectAnim, groupAnim];\r\n } else {\r\n return [[bar, {width: width, height: height, x: x, y: y}, UNIT_ANIM_DUR, STD_EASING]];\r\n }\r\n // bar.animate({height: args.newHeight, y: yTop}, UNIT_ANIM_DUR, mina.easein);\r\n}\r\n\r\nfunction animateDot(dot, x, y) {\r\n if(dot.nodeName !== 'circle') {\r\n const oldCoordStr = dot.getAttribute('transform').split('(')[1].slice(0, -1);\r\n const groupAnim = translate(dot, oldCoordStr, [x, y], MARKER_LINE_ANIM_DUR);\r\n return [groupAnim];\r\n } else {\r\n return [[dot, {cx: x, cy: y}, UNIT_ANIM_DUR, STD_EASING]];\r\n }\r\n // dot.animate({cy: yTop}, UNIT_ANIM_DUR, mina.easein);\r\n}\r\n\r\nfunction animatePath(paths, newXList, newYList, zeroLine, spline) {\r\n const pathComponents = [];\r\n let pointsStr = newYList.map((y, i) => (newXList[i] + ',' + y)).join('L');\r\n\r\n if (spline)\r\n pointsStr = getSplineCurvePointsStr(newXList, newYList);\r\n\r\n const animPath = [paths.path, {d:'M' + pointsStr}, PATH_ANIM_DUR, STD_EASING];\r\n pathComponents.push(animPath);\r\n\r\n if(paths.region) {\r\n const regStartPt = `${newXList[0]},${zeroLine}L`;\r\n const regEndPt = `L${newXList.slice(-1)[0]}, ${zeroLine}`;\r\n\r\n const animRegion = [\r\n paths.region,\r\n {d:'M' + regStartPt + pointsStr + regEndPt},\r\n PATH_ANIM_DUR,\r\n STD_EASING\r\n ];\r\n pathComponents.push(animRegion);\r\n }\r\n\r\n return pathComponents;\r\n}\r\n\r\nfunction animatePathStr(oldPath, pathStr) {\r\n return [oldPath, {d: pathStr}, UNIT_ANIM_DUR, STD_EASING];\r\n}\r\n\r\n// Leveraging SMIL Animations\r\n\r\nconst EASING = {\r\n ease: '0.25 0.1 0.25 1',\r\n linear: '0 0 1 1',\r\n // easein: \"0.42 0 1 1\",\r\n easein: '0.1 0.8 0.2 1',\r\n easeout: '0 0 0.58 1',\r\n easeinout: '0.42 0 0.58 1'\r\n};\r\n\r\nfunction animateSVGElement(element, props, dur, easingType='linear', type=undefined, oldValues={}) {\r\n\r\n const animElement = element.cloneNode(true);\r\n const newElement = element.cloneNode(true);\r\n\r\n for(var attributeName in props) {\r\n let animateElement;\r\n if(attributeName === 'transform') {\r\n animateElement = document.createElementNS('http://www.w3.org/2000/svg', 'animateTransform');\r\n } else {\r\n animateElement = document.createElementNS('http://www.w3.org/2000/svg', 'animate');\r\n }\r\n const currentValue = oldValues[attributeName] || element.getAttribute(attributeName);\r\n const value = props[attributeName];\r\n\r\n const animAttr = {\r\n attributeName: attributeName,\r\n from: currentValue,\r\n to: value,\r\n begin: '0s',\r\n dur: dur/1000 + 's',\r\n values: currentValue + ';' + value,\r\n keySplines: EASING[easingType],\r\n keyTimes: '0;1',\r\n calcMode: 'spline',\r\n fill: 'freeze'\r\n };\r\n\r\n if(type) {\r\n animAttr['type'] = type;\r\n }\r\n\r\n for (var i in animAttr) {\r\n animateElement.setAttribute(i, animAttr[i]);\r\n }\r\n\r\n animElement.appendChild(animateElement);\r\n\r\n if(type) {\r\n newElement.setAttribute(attributeName, `translate(${value})`);\r\n } else {\r\n newElement.setAttribute(attributeName, value);\r\n }\r\n }\r\n\r\n return [animElement, newElement];\r\n}\r\n\r\nfunction transform(element, style) { // eslint-disable-line no-unused-vars\r\n element.style.transform = style;\r\n element.style.webkitTransform = style;\r\n element.style.msTransform = style;\r\n element.style.mozTransform = style;\r\n element.style.oTransform = style;\r\n}\r\n\r\nfunction animateSVG(svgContainer, elements) {\r\n const newElements = [];\r\n const animElements = [];\r\n\r\n elements.map(element => {\r\n const unit = element[0];\r\n const parent = unit.parentNode;\r\n if (parent) {\r\n let animElement;\r\n let newElement;\r\n\r\n element[0] = unit;\r\n [animElement, newElement] = animateSVGElement(...element);\r\n\r\n newElements.push(newElement);\r\n animElements.push([animElement, parent]);\r\n\r\n parent.replaceChild(animElement, unit);\r\n }\r\n });\r\n\r\n const animSvg = svgContainer.cloneNode(true);\r\n\r\n animElements.map((animElement, i) => {\r\n animElement[1].replaceChild(newElements[i], animElement[0]);\r\n elements[i][0] = newElements[i];\r\n });\r\n\r\n return animSvg;\r\n}\r\n\r\nfunction runSMILAnimation(parent, svgElement, elementsToAnimate) {\r\n if(elementsToAnimate.length === 0) return;\r\n\r\n const animSvgElement = animateSVG(svgElement, elementsToAnimate);\r\n if(svgElement.parentNode == parent) {\r\n parent.removeChild(svgElement);\r\n parent.appendChild(animSvgElement);\r\n\r\n }\r\n\r\n // Replace the new svgElement (data has already been replaced)\r\n setTimeout(() => {\r\n if(animSvgElement.parentNode == parent) {\r\n parent.removeChild(animSvgElement);\r\n parent.appendChild(svgElement);\r\n }\r\n }, REPLACE_ALL_NEW_DUR);\r\n}\r\n\r\nconst CSSTEXT = \".chart-container{position:relative;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Roboto','Oxygen','Ubuntu','Cantarell','Fira Sans','Droid Sans','Helvetica Neue',sans-serif}.chart-container .axis,.chart-container .chart-label{fill:#555b51}.chart-container .axis line,.chart-container .chart-label line{stroke:#dadada}.chart-container .dataset-units circle{stroke:#fff;stroke-width:2}.chart-container .dataset-units path{fill:none;stroke-opacity:1;stroke-width:2px}.chart-container .dataset-path{stroke-width:2px}.chart-container .path-group path{fill:none;stroke-opacity:1;stroke-width:2px}.chart-container line.dashed{stroke-dasharray:5,3}.chart-container .axis-line .specific-value{text-anchor:start}.chart-container .axis-line .y-line{text-anchor:end}.chart-container .axis-line .x-line{text-anchor:middle}.chart-container .legend-dataset-text{fill:#6c7680;font-weight:600}.graph-svg-tip{position:absolute;z-index:99999;padding:10px;font-size:12px;color:#959da5;text-align:center;background:rgba(0,0,0,.8);border-radius:3px}.graph-svg-tip ul{padding-left:0;display:flex}.graph-svg-tip ol{padding-left:0;display:flex}.graph-svg-tip ul.data-point-list li{min-width:90px;flex:1;font-weight:600}.graph-svg-tip strong{color:#dfe2e5;font-weight:600}.graph-svg-tip .svg-pointer{position:absolute;height:5px;margin:0 0 0 -5px;content:' ';border:5px solid transparent;border-top-color:rgba(0,0,0,.8)}.graph-svg-tip.comparison{padding:0;text-align:left;pointer-events:none}.graph-svg-tip.comparison .title{display:block;padding:10px;margin:0;font-weight:600;line-height:1;pointer-events:none}.graph-svg-tip.comparison ul{margin:0;white-space:nowrap;list-style:none}.graph-svg-tip.comparison li{display:inline-block;padding:5px 10px}\";\r\n\r\nfunction downloadFile(filename, data) {\r\n var a = document.createElement('a');\r\n a.style = 'display: none';\r\n var blob = new Blob(data, {type: 'image/svg+xml; charset=utf-8'});\r\n var url = window.URL.createObjectURL(blob);\r\n a.href = url;\r\n a.download = filename;\r\n document.body.appendChild(a);\r\n a.click();\r\n setTimeout(function(){\r\n document.body.removeChild(a);\r\n window.URL.revokeObjectURL(url);\r\n }, 300);\r\n}\r\n\r\nfunction prepareForExport(svg) {\r\n let clone = svg.cloneNode(true);\r\n clone.classList.add('chart-container');\r\n clone.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\r\n clone.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\r\n const styleEl = $.create('style', {\r\n 'innerHTML': CSSTEXT\r\n });\r\n clone.insertBefore(styleEl, clone.firstChild);\r\n\r\n const container = $.create('div');\r\n container.appendChild(clone);\r\n\r\n return container.innerHTML;\r\n}\r\n\r\nclass BaseChart {\r\n constructor(parent, options) {\r\n\r\n this.parent = typeof parent === 'string'\r\n ? document.querySelector(parent)\r\n : parent;\r\n\r\n if (!(this.parent instanceof HTMLElement)) {\r\n throw new Error('No `parent` element to render on was provided.');\r\n }\r\n\r\n this.rawChartArgs = options;\r\n\r\n this.title = options.title || '';\r\n this.type = options.type || '';\r\n this.resetPadding = options.resetPadding || false;\r\n\r\n this.realData = this.prepareData(options.data);\r\n this.data = this.prepareFirstData(this.realData);\r\n\r\n this.colors = this.validateColors(options.colors, this.type);\r\n\r\n this.config = {\r\n showTooltip: 1, // calculate\r\n showLegend: 1, // calculate\r\n isNavigable: options.isNavigable || 0,\r\n animate: (typeof options.animate !== 'undefined') ? options.animate : 1,\r\n truncateLegends: options.truncateLegends || 1\r\n };\r\n\r\n this.measures = JSON.parse(JSON.stringify(BASE_MEASURES));\r\n const m = this.measures;\r\n this.setMeasures(options);\r\n if(!this.title.length) { m.titleHeight = 0; }\r\n if(!this.config.showLegend) m.legendHeight = 0;\r\n this.argHeight = options.height || m.baseHeight;\r\n\r\n this.state = {};\r\n this.options = {};\r\n\r\n this.initTimeout = INIT_CHART_UPDATE_TIMEOUT;\r\n\r\n if(this.config.isNavigable) {\r\n this.overlays = [];\r\n }\r\n\r\n this.configure(options);\r\n }\r\n\r\n prepareData(data) {\r\n return data;\r\n }\r\n\r\n prepareFirstData(data) {\r\n return data;\r\n }\r\n\r\n validateColors(colors, type) {\r\n const validColors = [];\r\n colors = (colors || []).concat(DEFAULT_COLORS[type]);\r\n colors.forEach((string) => {\r\n const color = getColor(string);\r\n if(!isValidColor(color)) {\r\n console.warn('\"' + string + '\" is not a valid color.');\r\n } else {\r\n validColors.push(color);\r\n }\r\n });\r\n return validColors;\r\n }\r\n\r\n setMeasures() {\r\n // Override measures, including those for title and legend\r\n // set config for legend and title\r\n }\r\n\r\n configure() {\r\n const height = this.argHeight;\r\n this.baseHeight = height;\r\n this.height = height - getExtraHeight(this.measures);\r\n\r\n // Bind window events\r\n this.boundDrawFn = () => this.draw(true);\r\n window.addEventListener('resize', this.boundDrawFn);\r\n window.addEventListener('orientationchange', this.boundDrawFn);\r\n }\r\n\r\n destroy() {\r\n window.removeEventListener('resize', this.boundDrawFn);\r\n window.removeEventListener('orientationchange', this.boundDrawFn);\r\n }\r\n\r\n // Has to be called manually\r\n setup() {\r\n this.makeContainer();\r\n this.updateWidth();\r\n this.makeTooltip();\r\n\r\n this.draw(false, true);\r\n }\r\n\r\n makeContainer() {\r\n // Chart needs a dedicated parent element\r\n this.parent.innerHTML = '';\r\n\r\n const args = {\r\n inside: this.parent,\r\n className: 'chart-container'\r\n };\r\n\r\n if(this.independentWidth) {\r\n args.styles = { width: this.independentWidth + 'px' };\r\n }\r\n\r\n this.container = $.create('div', args);\r\n }\r\n\r\n makeTooltip() {\r\n this.tip = new SvgTip({\r\n parent: this.container,\r\n colors: this.colors\r\n });\r\n this.bindTooltip();\r\n }\r\n\r\n bindTooltip() {}\r\n\r\n draw(onlyWidthChange=false, init=false) {\r\n if (onlyWidthChange && isHidden(this.parent)) {\r\n // Don't update anything if the chart is hidden\r\n return;\r\n }\r\n this.updateWidth();\r\n\r\n this.calc(onlyWidthChange);\r\n this.makeChartArea();\r\n this.setupComponents();\r\n\r\n this.components.forEach(c => c.setup(this.drawArea));\r\n // this.components.forEach(c => c.make());\r\n this.render(this.components, false);\r\n\r\n if(init) {\r\n this.data = this.realData;\r\n setTimeout(() => {this.update(this.data);}, this.initTimeout);\r\n }\r\n\r\n this.renderLegend();\r\n\r\n this.setupNavigation(init);\r\n }\r\n\r\n calc() {} // builds state\r\n\r\n updateWidth() {\r\n this.baseWidth = getElementContentWidth(this.parent);\r\n if (this.resetPadding) {\r\n this.measures = {\r\n ...this.measures,\r\n paddings: {\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n left: 0\r\n },\r\n margins: {\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n left: 0\r\n }\r\n }\r\n this.width = this.baseWidth;\r\n // this.width = this.baseWidth - getExtraWidth(this.measures);\r\n this.height = this.baseHeight;\r\n } else {\r\n this.width = this.baseWidth - getExtraWidth(this.measures);\r\n }\r\n }\r\n\r\n makeChartArea() {\r\n if(this.svg) {\r\n this.container.removeChild(this.container.lastChild);\r\n }\r\n const m = this.measures;\r\n\r\n this.svg = makeSVGContainer(\r\n this.container,\r\n 'frappe-chart chart',\r\n this.baseWidth,\r\n this.baseHeight\r\n );\r\n this.svgDefs = makeSVGDefs(this.svg);\r\n\r\n if(this.title.length) {\r\n this.titleEL = makeText(\r\n 'title',\r\n m.margins.left,\r\n m.margins.top,\r\n this.title,\r\n {\r\n fontSize: m.titleFontSize,\r\n fill: '#666666',\r\n dy: m.titleFontSize\r\n }\r\n );\r\n }\r\n\r\n let top = getTopOffset(m);\r\n this.drawArea = makeSVGGroup(\r\n this.type + '-chart chart-draw-area',\r\n `translate(${getLeftOffset(m)}, ${top})`\r\n );\r\n\r\n if(this.config.showLegend) {\r\n top += this.height + m.paddings.bottom;\r\n this.legendArea = makeSVGGroup(\r\n 'chart-legend',\r\n `translate(${getLeftOffset(m)}, ${top})`\r\n );\r\n }\r\n\r\n if(this.title.length) { this.svg.appendChild(this.titleEL); }\r\n this.svg.appendChild(this.drawArea);\r\n if(this.config.showLegend) { this.svg.appendChild(this.legendArea); }\r\n\r\n this.updateTipOffset(getLeftOffset(m), getTopOffset(m));\r\n }\r\n\r\n updateTipOffset(x, y) {\r\n this.tip.offset = {\r\n x: x,\r\n y: y\r\n };\r\n }\r\n\r\n setupComponents() { this.components = new Map(); }\r\n\r\n update(data) {\r\n if(!data) {\r\n console.error('No data to update.');\r\n }\r\n this.data = this.prepareData(data);\r\n this.calc(); // builds state\r\n this.render(this.components, this.config.animate);\r\n }\r\n\r\n render(components=this.components, animate=false) {\r\n if(this.config.isNavigable) {\r\n // Remove all existing overlays\r\n this.overlays.map(o => o.parentNode.removeChild(o));\r\n // ref.parentNode.insertBefore(element, ref);\r\n }\r\n let elementsToAnimate = [];\r\n // Can decouple to this.refreshComponents() first to save animation timeout\r\n components.forEach(c => {\r\n elementsToAnimate = elementsToAnimate.concat(c.update(animate));\r\n });\r\n if(elementsToAnimate.length > 0) {\r\n runSMILAnimation(this.container, this.svg, elementsToAnimate);\r\n setTimeout(() => {\r\n components.forEach(c => c.make());\r\n this.updateNav();\r\n }, CHART_POST_ANIMATE_TIMEOUT);\r\n } else {\r\n components.forEach(c => c.make());\r\n this.updateNav();\r\n }\r\n }\r\n\r\n updateNav() {\r\n if(this.config.isNavigable) {\r\n this.makeOverlay();\r\n this.bindUnits();\r\n }\r\n }\r\n\r\n renderLegend() {}\r\n\r\n setupNavigation(init=false) {\r\n if(!this.config.isNavigable) return;\r\n\r\n if(init) {\r\n this.bindOverlay();\r\n\r\n this.keyActions = {\r\n '13': this.onEnterKey.bind(this),\r\n '37': this.onLeftArrow.bind(this),\r\n '38': this.onUpArrow.bind(this),\r\n '39': this.onRightArrow.bind(this),\r\n '40': this.onDownArrow.bind(this),\r\n };\r\n\r\n document.addEventListener('keydown', (e) => {\r\n if(isElementInViewport(this.container)) {\r\n e = e || window.event;\r\n if(this.keyActions[e.keyCode]) {\r\n this.keyActions[e.keyCode]();\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n makeOverlay() {}\r\n updateOverlay() {}\r\n bindOverlay() {}\r\n bindUnits() {}\r\n\r\n onLeftArrow() {}\r\n onRightArrow() {}\r\n onUpArrow() {}\r\n onDownArrow() {}\r\n onEnterKey() {}\r\n\r\n addDataPoint() {}\r\n removeDataPoint() {}\r\n\r\n getDataPoint() {}\r\n setCurrentDataPoint() {}\r\n\r\n updateDataset() {}\r\n\r\n export() {\r\n const chartSvg = prepareForExport(this.svg);\r\n downloadFile(this.title || 'Chart', [chartSvg]);\r\n }\r\n}\r\n\r\nclass AggregationChart extends BaseChart {\r\n constructor(parent, args) {\r\n super(parent, args);\r\n }\r\n\r\n configure(args) {\r\n super.configure(args);\r\n \r\n this.config.maxSlices = args.maxSlices || 20;\r\n this.config.maxLegendPoints = args.maxLegendPoints || 20;\r\n }\r\n\r\n calc() {\r\n const s = this.state;\r\n const maxSlices = this.config.maxSlices;\r\n s.sliceTotals = [];\r\n\r\n const allTotals = this.data.labels.map((label, i) => {\r\n let total = 0;\r\n this.data.datasets.map(e => {\r\n total += e.values[i];\r\n });\r\n return [total, label];\r\n }).filter(d => { return d[0] >= 0; }); // keep only positive results\r\n\r\n let totals = allTotals;\r\n if(allTotals.length > maxSlices) {\r\n // Prune and keep a grey area for rest as per maxSlices\r\n allTotals.sort((a, b) => { return b[0] - a[0]; });\r\n\r\n totals = allTotals.slice(0, maxSlices-1);\r\n const remaining = allTotals.slice(maxSlices-1);\r\n\r\n let sumOfRemaining = 0;\r\n remaining.map(d => {sumOfRemaining += d[0];});\r\n totals.push([sumOfRemaining, 'Rest']);\r\n this.colors[maxSlices-1] = 'grey';\r\n }\r\n\r\n s.labels = [];\r\n totals.map(d => {\r\n s.sliceTotals.push(d[0]);\r\n s.labels.push(d[1]);\r\n });\r\n\r\n s.grandTotal = s.sliceTotals.reduce((a, b) => a + b, 0);\r\n\r\n this.center = {\r\n x: this.width / 2,\r\n y: this.height / 2\r\n };\r\n }\r\n\r\n renderLegend() {\r\n const s = this.state;\r\n this.legendArea.textContent = '';\r\n this.legendTotals = s.sliceTotals.slice(0, this.config.maxLegendPoints);\r\n\r\n let count = 0;\r\n let y = 0;\r\n this.legendTotals.map((d, i) => {\r\n let barWidth = 150;\r\n const divisor = Math.floor(\r\n (this.width - getExtraWidth(this.measures))/barWidth\r\n );\r\n if (this.legendTotals.length < divisor) {\r\n barWidth = this.width/this.legendTotals.length;\r\n }\r\n if(count > divisor) {\r\n count = 0;\r\n y += 20;\r\n }\r\n const x = barWidth * count + 5;\r\n const label = this.config.truncateLegends ? truncateString(s.labels[i], barWidth/10) : s.labels[i];\r\n const dot = legendDot(\r\n x,\r\n y,\r\n 5,\r\n this.colors[i],\r\n `${label}: ${d}`,\r\n false\r\n );\r\n this.legendArea.appendChild(dot);\r\n count++;\r\n });\r\n }\r\n}\r\n\r\n// Playing around with dates\r\n\r\nconst NO_OF_YEAR_MONTHS = 12;\r\nconst NO_OF_DAYS_IN_WEEK = 7;\r\n\r\nconst NO_OF_MILLIS = 1000;\r\nconst SEC_IN_DAY = 86400;\r\n\r\nconst MONTH_NAMES = ['January', 'February', 'March', 'April', 'May',\r\n 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\r\n\r\n\r\nconst DAY_NAMES_SHORT = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\r\n\r\n\r\n// https://stackoverflow.com/a/11252167/6495043\r\nfunction treatAsUtc(date) {\r\n const result = new Date(date);\r\n result.setMinutes(result.getMinutes() - result.getTimezoneOffset());\r\n return result;\r\n}\r\n\r\nfunction getYyyyMmDd(date) {\r\n const dd = date.getDate();\r\n const mm = date.getMonth() + 1; // getMonth() is zero-based\r\n return [\r\n date.getFullYear(),\r\n (mm>9 ? '' : '0') + mm,\r\n (dd>9 ? '' : '0') + dd\r\n ].join('-');\r\n}\r\n\r\nfunction clone(date) {\r\n return new Date(date.getTime());\r\n}\r\n\r\n\r\n\r\n\r\n\r\n// export function getMonthsBetween(startDate, endDate) {}\r\n\r\nfunction getWeeksBetween(startDate, endDate) {\r\n const weekStartDate = setDayToSunday(startDate);\r\n return Math.ceil(getDaysBetween(weekStartDate, endDate) / NO_OF_DAYS_IN_WEEK);\r\n}\r\n\r\nfunction getDaysBetween(startDate, endDate) {\r\n const millisecondsPerDay = SEC_IN_DAY * NO_OF_MILLIS;\r\n return (treatAsUtc(endDate) - treatAsUtc(startDate)) / millisecondsPerDay;\r\n}\r\n\r\nfunction areInSameMonth(startDate, endDate) {\r\n return startDate.getMonth() === endDate.getMonth()\r\n\t\t&& startDate.getFullYear() === endDate.getFullYear();\r\n}\r\n\r\nfunction getMonthName(i, short=false) {\r\n const monthName = MONTH_NAMES[i];\r\n return short ? monthName.slice(0, 3) : monthName;\r\n}\r\n\r\nfunction getLastDateInMonth (month, year) {\r\n return new Date(year, month + 1, 0); // 0: last day in previous month\r\n}\r\n\r\n// mutates\r\nfunction setDayToSunday(date) {\r\n const newDate = clone(date);\r\n const day = newDate.getDay();\r\n if(day !== 0) {\r\n addDays(newDate, (-1) * day);\r\n }\r\n return newDate;\r\n}\r\n\r\n// mutates\r\nfunction addDays(date, numberOfDays) {\r\n date.setDate(date.getDate() + numberOfDays);\r\n}\r\n\r\nclass ChartComponent {\r\n constructor({\r\n layerClass = '',\r\n layerTransform = '',\r\n constants,\r\n\r\n getData,\r\n makeElements,\r\n animateElements\r\n }) {\r\n this.layerTransform = layerTransform;\r\n this.constants = constants;\r\n\r\n this.makeElements = makeElements;\r\n this.getData = getData;\r\n\r\n this.animateElements = animateElements;\r\n\r\n this.store = [];\r\n this.labels = [];\r\n\r\n this.layerClass = layerClass;\r\n this.layerClass = typeof(this.layerClass) === 'function'\r\n ? this.layerClass() : this.layerClass;\r\n\r\n this.refresh();\r\n }\r\n\r\n refresh(data) {\r\n this.data = data || this.getData();\r\n }\r\n\r\n setup(parent) {\r\n this.layer = makeSVGGroup(this.layerClass, this.layerTransform, parent);\r\n }\r\n\r\n make() {\r\n this.render(this.data);\r\n this.oldData = this.data;\r\n }\r\n\r\n render(data) {\r\n this.store = this.makeElements(data);\r\n\r\n this.layer.textContent = '';\r\n this.store.forEach(element => {\r\n this.layer.appendChild(element);\r\n });\r\n this.labels.forEach(element => {\r\n this.layer.appendChild(element);\r\n });\r\n }\r\n\r\n update(animate = true) {\r\n this.refresh();\r\n let animateElements = [];\r\n if(animate) {\r\n animateElements = this.animateElements(this.data) || [];\r\n }\r\n return animateElements;\r\n }\r\n}\r\n\r\nconst componentConfigs = {\r\n donutSlices: {\r\n layerClass: 'donut-slices',\r\n makeElements(data) {\r\n return data.sliceStrings.map((s, i) => {\r\n const slice = makePath(s, 'donut-path', data.colors[i], 'none', data.strokeWidth);\r\n slice.style.transition = 'transform .3s;';\r\n return slice;\r\n });\r\n },\r\n\r\n animateElements(newData) {\r\n return this.store.map((slice, i) => animatePathStr(slice, newData.sliceStrings[i]));\r\n },\r\n },\r\n pieSlices: {\r\n layerClass: 'pie-slices',\r\n makeElements(data) {\r\n return data.sliceStrings.map((s, i) =>{\r\n // var element = document.createElementNS('http://www.w3.org/2000/svg', 'g');\r\n // this.pieWithData = [];\r\n // const group = makeSVGGroup();\r\n const group = createSVG('g', {\r\n // transform: `translate(${x}, ${y})`\r\n // transform: `translate(200, 200)`\r\n });\r\n const text = makeText('pie-path-text', data.titlePosition[i].x, data.titlePosition[i].y, data.data?.labels[i]);\r\n // const text = makeText('pie-path-text', data.titlePosition[i].x, data.titlePosition[i].y, data.data.labels[i]);\r\n const slice = makePath(s, 'pie-path', 'none', data.colors[i]);\r\n group.appendChild(slice);\r\n group.appendChild(text);\r\n // var ref = $(group);\r\n // ref.parentNode.insertBefore(element, ref);\r\n // element.appendChild(text);\r\n slice.style.transition = 'transform .3s;';\r\n text.style.transition = 'transform .3s;';\r\n group.style.transition = 'transform .3s;';\r\n // return slice;\r\n // return text;\r\n // return group;\r\n // slice.appendChild(text)\r\n return group;\r\n });\r\n },\r\n\r\n animateElements(newData) {\r\n return this.store.map((slice, i) =>\r\n animatePathStr(slice, newData.sliceStrings[i])\r\n );\r\n }\r\n },\r\n percentageBars: {\r\n layerClass: 'percentage-bars',\r\n makeElements(data) {\r\n return data.xPositions.map((x, i) =>{\r\n const y = 0;\r\n const bar = percentageBar(x, y, data.widths[i],\r\n this.constants.barHeight, this.constants.barDepth, data.colors[i]);\r\n return bar;\r\n });\r\n },\r\n\r\n animateElements(newData) {\r\n if(newData) return [];\r\n }\r\n },\r\n yAxis: {\r\n layerClass: 'y axis',\r\n makeElements(data) {\r\n return data.positions.map((position, i) =>\r\n yLine(position, data.labels[i], this.constants.width,\r\n {mode: this.constants.mode, pos: this.constants.pos, shortenNumbers: this.constants.shortenNumbers})\r\n );\r\n },\r\n\r\n animateElements(newData) {\r\n let newPos = newData.positions;\r\n let newLabels = newData.labels;\r\n let oldPos = this.oldData.positions;\r\n let oldLabels = this.oldData.labels;\r\n\r\n [oldPos, newPos] = equilizeNoOfElements(oldPos, newPos);\r\n [oldLabels, newLabels] = equilizeNoOfElements(oldLabels, newLabels);\r\n\r\n this.render({\r\n positions: oldPos,\r\n labels: newLabels\r\n });\r\n\r\n return this.store.map((line, i) => {\r\n return translateHoriLine(\r\n line, newPos[i], oldPos[i]\r\n );\r\n });\r\n }\r\n },\r\n\r\n xAxis: {\r\n layerClass: 'x axis',\r\n makeElements(data) {\r\n return data.positions.map((position, i) =>\r\n xLine(position, data.calcLabels[i], this.constants.height,\r\n {mode: this.constants.mode, pos: this.constants.pos})\r\n );\r\n },\r\n\r\n animateElements(newData) {\r\n let newPos = newData.positions;\r\n let newLabels = newData.calcLabels;\r\n let oldPos = this.oldData.positions;\r\n let oldLabels = this.oldData.calcLabels;\r\n\r\n [oldPos, newPos] = equilizeNoOfElements(oldPos, newPos);\r\n [oldLabels, newLabels] = equilizeNoOfElements(oldLabels, newLabels);\r\n\r\n this.render({\r\n positions: oldPos,\r\n calcLabels: newLabels\r\n });\r\n\r\n return this.store.map((line, i) => {\r\n return translateVertLine(\r\n line, newPos[i], oldPos[i]\r\n );\r\n });\r\n }\r\n },\r\n\r\n yMarkers: {\r\n layerClass: 'y-markers',\r\n makeElements(data) {\r\n return data.map(m =>\r\n yMarker(m.position, m.label, this.constants.width,\r\n {labelPos: m.options.labelPos, mode: 'span', lineType: 'dashed'})\r\n );\r\n },\r\n animateElements(newData) {\r\n [this.oldData, newData] = equilizeNoOfElements(this.oldData, newData);\r\n\r\n const newPos = newData.map(d => d.position);\r\n const newLabels = newData.map(d => d.label);\r\n const newOptions = newData.map(d => d.options);\r\n\r\n const oldPos = this.oldData.map(d => d.position);\r\n\r\n this.render(oldPos.map((pos, i) => {\r\n return {\r\n position: oldPos[i],\r\n label: newLabels[i],\r\n options: newOptions[i]\r\n };\r\n }));\r\n\r\n return this.store.map((line, i) => {\r\n return translateHoriLine(\r\n line, newPos[i], oldPos[i]\r\n );\r\n });\r\n }\r\n },\r\n\r\n yRegions: {\r\n layerClass: 'y-regions',\r\n makeElements(data) {\r\n return data.map(r =>\r\n yRegion(r.startPos, r.endPos, this.constants.width,\r\n r.label, {labelPos: r.options.labelPos})\r\n );\r\n },\r\n animateElements(newData) {\r\n [this.oldData, newData] = equilizeNoOfElements(this.oldData, newData);\r\n\r\n const newPos = newData.map(d => d.endPos);\r\n const newLabels = newData.map(d => d.label);\r\n const newStarts = newData.map(d => d.startPos);\r\n const newOptions = newData.map(d => d.options);\r\n\r\n const oldPos = this.oldData.map(d => d.endPos);\r\n const oldStarts = this.oldData.map(d => d.startPos);\r\n\r\n this.render(oldPos.map((pos, i) => {\r\n return {\r\n startPos: oldStarts[i],\r\n endPos: oldPos[i],\r\n label: newLabels[i],\r\n options: newOptions[i]\r\n };\r\n }));\r\n\r\n let animateElements = [];\r\n\r\n this.store.map((rectGroup, i) => {\r\n animateElements = animateElements.concat(animateRegion(\r\n rectGroup, newStarts[i], newPos[i], oldPos[i]\r\n ));\r\n });\r\n\r\n return animateElements;\r\n }\r\n },\r\n\r\n heatDomain: {\r\n layerClass: function() { return 'heat-domain domain-' + this.constants.index; },\r\n makeElements(data) {\r\n const {index, colWidth, rowHeight, squareSize, radius, xTranslate} = this.constants;\r\n const monthNameHeight = -12;\r\n let x = xTranslate, y = 0;\r\n\r\n this.serializedSubDomains = [];\r\n\r\n data.cols.map((week, weekNo) => {\r\n if(weekNo === 1) {\r\n this.labels.push(\r\n makeText('domain-name', x, monthNameHeight, getMonthName(index, true).toUpperCase(),\r\n {\r\n fontSize: 9\r\n }\r\n )\r\n );\r\n }\r\n week.map((day, i) => {\r\n if(day.fill) {\r\n let data = {\r\n 'data-date': day.yyyyMmDd,\r\n 'data-value': day.dataValue,\r\n 'data-day': i\r\n };\r\n const square = heatSquare('day', x, y, squareSize, radius, day.fill, data);\r\n this.serializedSubDomains.push(square);\r\n }\r\n y += rowHeight;\r\n });\r\n y = 0;\r\n x += colWidth;\r\n });\r\n\r\n return this.serializedSubDomains;\r\n },\r\n\r\n animateElements(newData) {\r\n if(newData) return [];\r\n }\r\n },\r\n\r\n barGraph: {\r\n layerClass: function() { return 'dataset-units dataset-bars dataset-' + this.constants.index; },\r\n makeElements(data) {\r\n const c = this.constants;\r\n this.unitType = 'bar';\r\n this.units = data.yPositions.map((y, j) => {\r\n return datasetBar(\r\n data.xPositions[j],\r\n y,\r\n data.barWidth,\r\n c.color,\r\n data.labels[j],\r\n j,\r\n data.offsets[j],\r\n {\r\n zeroLine: data.zeroLine,\r\n barsWidth: data.barsWidth,\r\n minHeight: c.minHeight\r\n }\r\n );\r\n });\r\n return this.units;\r\n },\r\n animateElements(newData) {\r\n let newXPos = newData.xPositions;\r\n let newYPos = newData.yPositions;\r\n let newOffsets = newData.offsets;\r\n let newLabels = newData.labels;\r\n\r\n let oldXPos = this.oldData.xPositions;\r\n let oldYPos = this.oldData.yPositions;\r\n let oldOffsets = this.oldData.offsets;\r\n let oldLabels = this.oldData.labels;\r\n\r\n [oldXPos, newXPos] = equilizeNoOfElements(oldXPos, newXPos);\r\n [oldYPos, newYPos] = equilizeNoOfElements(oldYPos, newYPos);\r\n [oldOffsets, newOffsets] = equilizeNoOfElements(oldOffsets, newOffsets);\r\n [oldLabels, newLabels] = equilizeNoOfElements(oldLabels, newLabels);\r\n\r\n this.render({\r\n xPositions: oldXPos,\r\n yPositions: oldYPos,\r\n offsets: oldOffsets,\r\n labels: newLabels,\r\n\r\n zeroLine: this.oldData.zeroLine,\r\n barsWidth: this.oldData.barsWidth,\r\n barWidth: this.oldData.barWidth,\r\n });\r\n\r\n let animateElements = [];\r\n\r\n this.store.map((bar, i) => {\r\n animateElements = animateElements.concat(animateBar(\r\n bar, newXPos[i], newYPos[i], newData.barWidth, newOffsets[i],\r\n {zeroLine: newData.zeroLine}\r\n ));\r\n });\r\n\r\n return animateElements;\r\n }\r\n },\r\n\r\n lineGraph: {\r\n layerClass: function() { return 'dataset-units dataset-line dataset-' + this.constants.index; },\r\n makeElements(data) {\r\n const c = this.constants;\r\n this.unitType = 'dot';\r\n this.paths = {};\r\n if(!c.hideLine) {\r\n this.paths = getPaths(\r\n data.xPositions,\r\n data.yPositions,\r\n c.color,\r\n {\r\n heatline: c.heatline,\r\n regionFill: c.regionFill,\r\n spline: c.spline\r\n },\r\n {\r\n svgDefs: c.svgDefs,\r\n zeroLine: data.zeroLine\r\n }\r\n );\r\n }\r\n\r\n this.units = [];\r\n if(!c.hideDots) {\r\n this.units = data.yPositions.map((y, j) => {\r\n return datasetDot(\r\n data.xPositions[j],\r\n y,\r\n data.radius,\r\n c.color,\r\n (c.valuesOverPoints ? data.values[j] : ''),\r\n j\r\n );\r\n });\r\n }\r\n\r\n return Object.values(this.paths).concat(this.units);\r\n },\r\n animateElements(newData) {\r\n let newXPos = newData.xPositions;\r\n let newYPos = newData.yPositions;\r\n let newValues = newData.values;\r\n\r\n let oldXPos = this.oldData.xPositions;\r\n let oldYPos = this.oldData.yPositions;\r\n let oldValues = this.oldData.values;\r\n\r\n [oldXPos, newXPos] = equilizeNoOfElements(oldXPos, newXPos);\r\n [oldYPos, newYPos] = equilizeNoOfElements(oldYPos, newYPos);\r\n [oldValues, newValues] = equilizeNoOfElements(oldValues, newValues);\r\n\r\n this.render({\r\n xPositions: oldXPos,\r\n yPositions: oldYPos,\r\n values: newValues,\r\n\r\n zeroLine: this.oldData.zeroLine,\r\n radius: this.oldData.radius,\r\n });\r\n\r\n let animateElements = [];\r\n\r\n if(Object.keys(this.paths).length) {\r\n animateElements = animateElements.concat(animatePath(\r\n this.paths, newXPos, newYPos, newData.zeroLine, this.constants.spline));\r\n }\r\n\r\n if(this.units.length) {\r\n this.units.map((dot, i) => {\r\n animateElements = animateElements.concat(animateDot(\r\n dot, newXPos[i], newYPos[i]));\r\n });\r\n }\r\n\r\n return animateElements;\r\n }\r\n }\r\n};\r\n\r\nfunction getComponent(name, constants, getData) {\r\n const keys = Object.keys(componentConfigs).filter(k => name.includes(k));\r\n const config = componentConfigs[keys[0]];\r\n Object.assign(config, {\r\n constants: constants,\r\n getData: getData\r\n });\r\n return new ChartComponent(config);\r\n}\r\n\r\nclass PercentageChart extends AggregationChart {\r\n constructor(parent, args) {\r\n super(parent, args);\r\n this.type = 'percentage';\r\n this.setup();\r\n }\r\n\r\n setMeasures(options) {\r\n const m = this.measures;\r\n this.barOptions = options.barOptions || {};\r\n\r\n const b = this.barOptions;\r\n b.height = b.height || PERCENTAGE_BAR_DEFAULT_HEIGHT;\r\n b.depth = b.depth || PERCENTAGE_BAR_DEFAULT_DEPTH;\r\n\r\n m.paddings.right = 30;\r\n m.legendHeight = 60;\r\n m.baseHeight = (b.height + b.depth * 0.5) * 8;\r\n }\r\n\r\n setupComponents() {\r\n const s = this.state;\r\n\r\n let componentConfigs = [\r\n [\r\n 'percentageBars',\r\n {\r\n barHeight: this.barOptions.height,\r\n barDepth: this.barOptions.depth,\r\n },\r\n function() {\r\n return {\r\n xPositions: s.xPositions,\r\n widths: s.widths,\r\n colors: this.colors\r\n };\r\n }.bind(this)\r\n ]\r\n ];\r\n\r\n this.components = new Map(componentConfigs\r\n .map(args => {\r\n const component = getComponent(...args);\r\n return [args[0], component];\r\n }));\r\n }\r\n\r\n calc() {\r\n super.calc();\r\n const s = this.state;\r\n\r\n s.xPositions = [];\r\n s.widths = [];\r\n\r\n let xPos = 0;\r\n s.sliceTotals.map((value) => {\r\n const width = this.width * value / s.grandTotal;\r\n s.widths.push(width);\r\n s.xPositions.push(xPos);\r\n xPos += width;\r\n });\r\n }\r\n\r\n makeDataByIndex() { }\r\n\r\n bindTooltip() {\r\n const s = this.state;\r\n this.container.addEventListener('mousemove', (e) => {\r\n const bars = this.components.get('percentageBars').store;\r\n const bar = e.target;\r\n if(bars.includes(bar)) {\r\n\r\n const i = bars.indexOf(bar);\r\n const gOff = getOffset(this.container), pOff = getOffset(bar);\r\n\r\n const x = pOff.left - gOff.left + parseInt(bar.getAttribute('width'))/2;\r\n const y = pOff.top - gOff.top;\r\n const title = (this.formattedLabels && this.formattedLabels.length>0\r\n ? this.formattedLabels[i] : this.state.labels[i]) + ': ';\r\n const fraction = s.sliceTotals[i]/s.grandTotal;\r\n\r\n this.tip.setValues(x, y, {name: title, value: (fraction*100).toFixed(1) + '%'});\r\n this.tip.showTip();\r\n }\r\n });\r\n }\r\n}\r\n\r\nclass PieChart extends AggregationChart {\r\n constructor(parent, args) {\r\n super(parent, args);\r\n this.type = 'pie';\r\n this.initTimeout = 0;\r\n this.init = 1;\r\n this.data = args?.data\r\n // this.titlePosition = []\r\n // this.data.titlePosition = []\r\n\r\n this.setup();\r\n }\r\n\r\n configure(args) {\r\n super.configure(args);\r\n this.mouseMove = this.mouseMove.bind(this);\r\n this.mouseLeave = this.mouseLeave.bind(this);\r\n\r\n this.hoverRadio = args.hoverRadio || 0.1;\r\n this.config.startAngle = args.startAngle || 0;\r\n\r\n this.clockWise = args.clockWise || false;\r\n this.showDataInPie = args.showDataInPie || false;\r\n this.colors = this.createColors();\r\n }\r\n\r\n setMeasures() {\r\n const m = this.measures;\r\n\r\n m.legendHeight = 80;\r\n // m.baseHeight = (b.height + b.depth * 0.5) * 8;\r\n }\r\n\r\n createColors() {\r\n const colorsArray = [];\r\n DEFAULT_CHART_COLORS.forEach((item) => {\r\n colorsArray.push(getColor(item));\r\n })\r\n \r\n for(let i = 0; i < this.data.labels.length - 12; i++) {\r\n colorsArray.push(randomColor());\r\n }\r\n \r\n return colorsArray;\r\n }\r\n\r\n calc() {\r\n super.calc();\r\n const s = this.state;\r\n this.radius = (this.height > this.width ? this.center.x : this.center.y);\r\n\r\n const { radius, clockWise, data } = this;\r\n\r\n const prevSlicesProperties = s.slicesProperties || [];\r\n s.sliceStrings = [];\r\n s.slicesProperties = [];\r\n s.titlePosition = [];\r\n let curAngle = 180 - this.config.startAngle;\r\n s.sliceTotals.map((total, i) => {\r\n const startAngle = curAngle;\r\n const originDiffAngle = (total / s.grandTotal) * FULL_ANGLE;\r\n const largeArc = originDiffAngle > 180 ? 1: 0;\r\n const diffAngle = clockWise ? -originDiffAngle : originDiffAngle;\r\n const endAngle = curAngle = curAngle + diffAngle;\r\n const startPosition = getPositionByAngle(startAngle, radius);\r\n const endPosition = getPositionByAngle(endAngle, radius);\r\n\r\n const prevProperty = this.init && prevSlicesProperties[i];\r\n // const width = this.parent.offsetWidth;\r\n\r\n let curStart,curEnd;\r\n if(this.init) {\r\n curStart = prevProperty ? prevProperty.startPosition : startPosition;\r\n curEnd = prevProperty ? prevProperty.endPosition : startPosition;\r\n } else {\r\n curStart = startPosition;\r\n curEnd = endPosition;\r\n }\r\n const curPath =\r\n\t\t\t\toriginDiffAngle === 360\r\n\t\t\t\t ? makeCircleStr(curStart, curEnd, this.center, this.radius, clockWise, largeArc)\r\n\t\t\t\t : makeArcPathStr(curStart, curEnd, this.center, this.radius, clockWise, largeArc);\r\n\r\n // const titlePos = { x: this.center.x + startPosition.x, y: this.center.y + startPosition.y };\r\n const titlePos = { x: this.center.x + endPosition.x, y: this.center.y + endPosition.y };\r\n // const maxRight = this.center.x + endPosition.x;\r\n // const width = curEnd.x - curStart.x;\r\n // const height = curEnd.y - curStart.y;\r\n // const titlePos = { x: maxRight - width / 2, y: this.center.y + curStart.y / 2 };\r\n // console.log('width', maxRight - width / 2, height, curEnd.y, curStart.y, this.center.y);\r\n // const titlePos = { x: this.center.x + startPosition.x, y: this.center.y + startPosition.y };\r\n // const [arcStartX, arcStartY] = [this.center.x + startPosition.x, this.center.y + startPosition.y];\r\n // const [arcEndX, arcEndY] = [this.center.x + endPosition.x, this.center.y + endPosition.y];\r\n // const titlePos = { x: arcEndX - arcStartX, y: arcEndY - arcStartY };\r\n // if(this.init) {\r\n // s.titlePosition.push(titlePos);\r\n // }\r\n s.titlePosition.push(titlePos);\r\n s.sliceStrings.push(curPath);\r\n s.slicesProperties.push({\r\n startPosition,\r\n endPosition,\r\n value: total,\r\n total: s.grandTotal,\r\n startAngle,\r\n endAngle,\r\n angle: diffAngle\r\n });\r\n\r\n });\r\n this.init = 0;\r\n }\r\n\r\n setupComponents() {\r\n const s = this.state;\r\n\r\n let componentConfigs = [\r\n [\r\n 'pieSlices',\r\n { },\r\n function() {\r\n return {\r\n sliceStrings: s.sliceStrings,\r\n colors: this.colors,\r\n data: this.data,\r\n titlePosition: s.titlePosition\r\n };\r\n }.bind(this)\r\n ]\r\n ];\r\n\r\n this.components = new Map(componentConfigs\r\n .map(args => {\r\n const component = getComponent(...args);\r\n return [args[0], component];\r\n }));\r\n }\r\n\r\n calTranslateByAngle(property){\r\n const{radius,hoverRadio} = this;\r\n const position = getPositionByAngle(property.startAngle+(property.angle / 2),radius);\r\n return `translate3d(${(position.x) * hoverRadio}px,${(position.y) * hoverRadio}px,0)`;\r\n }\r\n\r\n hoverSlice(path,i,flag,e){\r\n if(!path) return;\r\n const color = this.colors[i];\r\n \r\n if(flag) {\r\n transform(path, this.calTranslateByAngle(this.state.slicesProperties[i]));\r\n path.style.fill = lightenDarkenColor(color, 50);\r\n const g_off = getOffset(this.svg);\r\n const x = e.pageX - g_off.left + 10;\r\n const y = e.pageY - g_off.top - 10;\r\n const title = (this.formatted_labels && this.formatted_labels.length > 0\r\n ? this.formatted_labels[i] : this.state.labels[i]) + ': ';\r\n const percent = (this.state.sliceTotals[i] * 100 / this.state.grandTotal).toFixed(2);\r\n const pnl = (this.realData.pl[i]).toFixed(2);\r\n this.tip.setValues(x, y, {name: title, value: `${percent}% PL: ${pnl}%`});\r\n this.tip.showTip();\r\n } else {\r\n transform(path,'translate3d(0,0,0)');\r\n this.tip.hideTip();\r\n path.style.fill = color;\r\n }\r\n }\r\n\r\n bindTooltip() {\r\n this.container.addEventListener('mousemove', this.mouseMove);\r\n this.container.addEventListener('mouseleave', this.mouseLeave);\r\n }\r\n\r\n mouseMove(e){\r\n const target = e.target.parentNode;\r\n const slices = this.components.get('pieSlices').store;\r\n const prevIndex = this.curActiveSliceIndex;\r\n const prevAcitve = this.curActiveSlice;\r\n // const doesInclude = slices.find((item) => {\r\n // return item.firstChild === target && item.firstChild;\r\n // });\r\n // console.log('doesInclude', doesInclude);\r\n // if(doesInclude) {\r\n if(slices.includes(target)) {\r\n const i = slices.indexOf(target);\r\n this.hoverSlice(prevAcitve, prevIndex,false);\r\n this.curActiveSlice = target;\r\n this.curActiveSliceIndex = i;\r\n this.hoverSlice(target, i, true, e);\r\n } else {\r\n this.mouseLeave();\r\n }\r\n }\r\n\r\n mouseLeave(){\r\n this.hoverSlice(this.curActiveSlice,this.curActiveSliceIndex,false);\r\n }\r\n}\r\n\r\nfunction normalize(x) {\r\n // Calculates mantissa and exponent of a number\r\n // Returns normalized number and exponent\r\n // https://stackoverflow.com/q/9383593/6495043\r\n\r\n if(x===0) {\r\n return [0, 0];\r\n }\r\n if(isNaN(x)) {\r\n return {mantissa: -6755399441055744, exponent: 972};\r\n }\r\n var sig = x > 0 ? 1 : -1;\r\n if(!isFinite(x)) {\r\n return {mantissa: sig * 4503599627370496, exponent: 972};\r\n }\r\n\r\n x = Math.abs(x);\r\n var exp = Math.floor(Math.log10(x));\r\n var man = x/Math.pow(10, exp);\r\n\r\n return [sig * man, exp];\r\n}\r\n\r\nfunction getChartRangeIntervals(max, min=0) {\r\n let upperBound = Math.ceil(max);\r\n const lowerBound = Math.floor(min);\r\n let range = upperBound - lowerBound;\r\n\r\n let noOfParts = range;\r\n let partSize = 1;\r\n\r\n // To avoid too many partitions\r\n if(range > 5) {\r\n if(range % 2 !== 0) {\r\n upperBound++;\r\n // Recalc range\r\n range = upperBound - lowerBound;\r\n }\r\n noOfParts = range/2;\r\n partSize = 2;\r\n }\r\n\r\n // Special case: 1 and 2\r\n if(range <= 2) {\r\n noOfParts = 4;\r\n partSize = range/noOfParts;\r\n }\r\n\r\n // Special case: 0\r\n if(range === 0) {\r\n noOfParts = 5;\r\n partSize = 1;\r\n }\r\n\r\n const intervals = [];\r\n for(var i = 0; i <= noOfParts; i++){\r\n intervals.push(lowerBound + partSize * i);\r\n }\r\n return intervals;\r\n}\r\n\r\nfunction getChartIntervals(maxValue, minValue=0) {\r\n let [normalMaxValue, exponent] = normalize(maxValue);\r\n const normalMinValue = minValue ? minValue/Math.pow(10, exponent): 0;\r\n\r\n // Allow only 7 significant digits\r\n normalMaxValue = normalMaxValue.toFixed(6);\r\n\r\n let intervals = getChartRangeIntervals(normalMaxValue, normalMinValue);\r\n intervals = intervals.map(value => value * Math.pow(10, exponent));\r\n return intervals;\r\n}\r\n\r\nfunction calcChartIntervals(values, withMinimum=false) {\r\n //*** Where the magic happens ***\r\n\r\n // Calculates best-fit y intervals from given values\r\n // and returns the interval array\r\n\r\n const maxValue = Math.max(...values);\r\n const minValue = Math.min(...values);\r\n\r\n // Exponent to be used for pretty print\r\n let exponent = 0, intervals = []; // eslint-disable-line no-unused-vars\r\n\r\n function getPositiveFirstIntervals(maxValue, absMinValue) {\r\n let intervals = getChartIntervals(maxValue);\r\n\r\n const intervalSize = intervals[1] - intervals[0];\r\n\r\n // Then unshift the negative values\r\n let value = 0;\r\n for(var i = 1; value < absMinValue; i++) {\r\n value += intervalSize;\r\n intervals.unshift((-1) * value);\r\n }\r\n return intervals;\r\n }\r\n\r\n // CASE I: Both non-negative\r\n\r\n if(maxValue >= 0 && minValue >= 0) {\r\n exponent = normalize(maxValue)[1];\r\n if(!withMinimum) {\r\n intervals = getChartIntervals(maxValue);\r\n } else {\r\n intervals = getChartIntervals(maxValue, minValue);\r\n }\r\n }\r\n\r\n // CASE II: Only minValue negative\r\n\r\n else if(maxValue > 0 && minValue < 0) {\r\n // `withMinimum` irrelevant in this case,\r\n // We'll be handling both sides of zero separately\r\n // (both starting from zero)\r\n // Because ceil() and floor() behave differently\r\n // in those two regions\r\n\r\n const absMinValue = Math.abs(minValue);\r\n\r\n if(maxValue >= absMinValue) {\r\n exponent = normalize(maxValue)[1];\r\n intervals = getPositiveFirstIntervals(maxValue, absMinValue);\r\n } else {\r\n // Mirror: maxValue => absMinValue, then change sign\r\n exponent = normalize(absMinValue)[1];\r\n const posIntervals = getPositiveFirstIntervals(absMinValue, maxValue);\r\n intervals = posIntervals.map(d => d * (-1));\r\n }\r\n\r\n }\r\n\r\n // CASE III: Both non-positive\r\n\r\n else if(maxValue <= 0 && minValue <= 0) {\r\n // Mirrored Case I:\r\n // Work with positives, then reverse the sign and array\r\n\r\n const pseudoMaxValue = Math.abs(minValue);\r\n const pseudoMinValue = Math.abs(maxValue);\r\n\r\n exponent = normalize(pseudoMaxValue)[1];\r\n if(!withMinimum) {\r\n intervals = getChartIntervals(pseudoMaxValue);\r\n } else {\r\n intervals = getChartIntervals(pseudoMaxValue, pseudoMinValue);\r\n }\r\n\r\n intervals = intervals.reverse().map(d => d * (-1));\r\n }\r\n\r\n return intervals;\r\n}\r\n\r\nfunction getZeroIndex(yPts) {\r\n let zeroIndex;\r\n const interval = getIntervalSize(yPts);\r\n if(yPts.indexOf(0) >= 0) {\r\n // the range has a given zero\r\n // zero-line on the chart\r\n zeroIndex = yPts.indexOf(0);\r\n } else if(yPts[0] > 0) {\r\n // Minimum value is positive\r\n // zero-line is off the chart: below\r\n const min = yPts[0];\r\n zeroIndex = (-1) * min / interval;\r\n } else {\r\n // Maximum value is negative\r\n // zero-line is off the chart: above\r\n const max = yPts[yPts.length - 1];\r\n zeroIndex = (-1) * max / interval + (yPts.length - 1);\r\n }\r\n return zeroIndex;\r\n}\r\n\r\n\r\n\r\nfunction getIntervalSize(orderedArray) {\r\n return orderedArray[1] - orderedArray[0];\r\n}\r\n\r\nfunction getValueRange(orderedArray) {\r\n return orderedArray[orderedArray.length-1] - orderedArray[0];\r\n}\r\n\r\nfunction scale(val, yAxis) {\r\n return floatTwo(yAxis.zeroLine - val * yAxis.scaleMultiplier);\r\n}\r\n\r\n\r\n\r\n\r\n\r\nfunction getClosestInArray(goal, arr, index = false) {\r\n const closest = arr.reduce(function(prev, curr) {\r\n return (Math.abs(curr - goal) < Math.abs(prev - goal) ? curr : prev);\r\n }, []);\r\n\r\n return index ? arr.indexOf(closest) : closest;\r\n}\r\n\r\nfunction calcDistribution(values, distributionSize) {\r\n // Assume non-negative values,\r\n // implying distribution minimum at zero\r\n\r\n const dataMaxValue = Math.max(...values);\r\n\r\n const distributionStep = 1 / (distributionSize - 1);\r\n const distribution = [];\r\n\r\n for(var i = 0; i < distributionSize; i++) {\r\n const checkpoint = dataMaxValue * (distributionStep * i);\r\n distribution.push(checkpoint);\r\n }\r\n\r\n return distribution;\r\n}\r\n\r\nfunction getMaxCheckpoint(value, distribution) {\r\n return distribution.filter(d => d < value).length;\r\n}\r\n\r\nconst COL_WIDTH = HEATMAP_SQUARE_SIZE + HEATMAP_GUTTER_SIZE;\r\nconst ROW_HEIGHT = COL_WIDTH;\r\n// const DAY_INCR = 1;\r\n\r\nclass Heatmap extends BaseChart {\r\n constructor(parent, options) {\r\n super(parent, options);\r\n this.type = 'heatmap';\r\n\r\n this.countLabel = options.countLabel || '';\r\n\r\n const validStarts = ['Sunday', 'Monday'];\r\n const startSubDomain = validStarts.includes(options.startSubDomain)\r\n ? options.startSubDomain : 'Sunday';\r\n this.startSubDomainIndex = validStarts.indexOf(startSubDomain);\r\n\r\n this.setup();\r\n }\r\n\r\n setMeasures(options) {\r\n const m = this.measures;\r\n this.discreteDomains = options.discreteDomains === 0 ? 0 : 1;\r\n\r\n m.paddings.top = ROW_HEIGHT * 3;\r\n m.paddings.bottom = 0;\r\n m.legendHeight = ROW_HEIGHT * 2;\r\n m.baseHeight = ROW_HEIGHT * NO_OF_DAYS_IN_WEEK\r\n\t\t\t+ getExtraHeight(m);\r\n\r\n const d = this.data;\r\n const spacing = this.discreteDomains ? NO_OF_YEAR_MONTHS : 0;\r\n this.independentWidth = (getWeeksBetween(d.start, d.end)\r\n\t\t\t+ spacing) * COL_WIDTH + getExtraWidth(m);\r\n }\r\n\r\n updateWidth() {\r\n const spacing = this.discreteDomains ? NO_OF_YEAR_MONTHS : 0;\r\n const noOfWeeks = this.state.noOfWeeks ? this.state.noOfWeeks : 52;\r\n this.baseWidth = (noOfWeeks + spacing) * COL_WIDTH\r\n\t\t\t+ getExtraWidth(this.measures);\r\n }\r\n\r\n prepareData(data=this.data) {\r\n if(data.start && data.end && data.start > data.end) {\r\n throw new Error('Start date cannot be greater than end date.');\r\n }\r\n\r\n if(!data.start) {\r\n data.start = new Date();\r\n data.start.setFullYear( data.start.getFullYear() - 1 );\r\n }\r\n if(!data.end) { data.end = new Date(); }\r\n data.dataPoints = data.dataPoints || {};\r\n\r\n if(parseInt(Object.keys(data.dataPoints)[0]) > 100000) {\r\n const points = {};\r\n Object.keys(data.dataPoints).forEach(timestampSec$$1 => {\r\n const date = new Date(timestampSec$$1 * NO_OF_MILLIS);\r\n points[getYyyyMmDd(date)] = data.dataPoints[timestampSec$$1];\r\n });\r\n data.dataPoints = points;\r\n }\r\n\r\n return data;\r\n }\r\n\r\n calc() {\r\n const s = this.state;\r\n\r\n s.start = clone(this.data.start);\r\n s.end = clone(this.data.end);\r\n\r\n s.firstWeekStart = clone(s.start);\r\n s.noOfWeeks = getWeeksBetween(s.start, s.end);\r\n s.distribution = calcDistribution(\r\n Object.values(this.data.dataPoints), HEATMAP_DISTRIBUTION_SIZE);\r\n\r\n s.domainConfigs = this.getDomains();\r\n }\r\n\r\n setupComponents() {\r\n const s = this.state;\r\n const lessCol = this.discreteDomains ? 0 : 1;\r\n\r\n let componentConfigs = s.domainConfigs.map((config, i) => [\r\n 'heatDomain',\r\n {\r\n index: config.index,\r\n colWidth: COL_WIDTH,\r\n rowHeight: ROW_HEIGHT,\r\n squareSize: HEATMAP_SQUARE_SIZE,\r\n radius: this.rawChartArgs.radius || 0,\r\n xTranslate: s.domainConfigs\r\n .filter((config, j) => j < i)\r\n .map(config => config.cols.length - lessCol)\r\n .reduce((a, b) => a + b, 0)\r\n\t\t\t\t\t* COL_WIDTH\r\n },\r\n function() {\r\n return s.domainConfigs[i];\r\n }.bind(this)\r\n\r\n ]);\r\n\r\n this.components = new Map(componentConfigs\r\n .map((args, i) => {\r\n const component = getComponent(...args);\r\n return [args[0] + '-' + i, component];\r\n })\r\n );\r\n\r\n let y = 0;\r\n DAY_NAMES_SHORT.forEach((dayName, i) => {\r\n if([1, 3, 5].includes(i)) {\r\n const dayText = makeText('subdomain-name', -COL_WIDTH/2, y, dayName,\r\n {\r\n fontSize: HEATMAP_SQUARE_SIZE,\r\n dy: 8,\r\n textAnchor: 'end'\r\n }\r\n );\r\n this.drawArea.appendChild(dayText);\r\n }\r\n y += ROW_HEIGHT;\r\n });\r\n }\r\n\r\n update(data) {\r\n if(!data) {\r\n console.error('No data to update.');\r\n }\r\n\r\n this.data = this.prepareData(data);\r\n this.draw();\r\n this.bindTooltip();\r\n }\r\n\r\n bindTooltip() {\r\n this.container.addEventListener('mousemove', (e) => {\r\n this.components.forEach(comp => {\r\n const daySquares = comp.store;\r\n const daySquare = e.target;\r\n if(daySquares.includes(daySquare)) {\r\n\r\n const count = daySquare.getAttribute('data-value');\r\n const dateParts = daySquare.getAttribute('data-date').split('-');\r\n\r\n const month = getMonthName(parseInt(dateParts[1])-1, true);\r\n\r\n const gOff = this.container.getBoundingClientRect(), pOff = daySquare.getBoundingClientRect();\r\n\r\n const width = parseInt(e.target.getAttribute('width'));\r\n const x = pOff.left - gOff.left + width/2;\r\n const y = pOff.top - gOff.top;\r\n const value = count + ' ' + this.countLabel;\r\n const name = ' on ' + month + ' ' + dateParts[0] + ', ' + dateParts[2];\r\n\r\n this.tip.setValues(x, y, {name: name, value: value, valueFirst: 1}, []);\r\n this.tip.showTip();\r\n }\r\n });\r\n });\r\n }\r\n\r\n renderLegend() {\r\n this.legendArea.textContent = '';\r\n let x = 0;\r\n const y = ROW_HEIGHT;\r\n const radius = this.rawChartArgs.radius || 0;\r\n\r\n const lessText = makeText('subdomain-name', x, y, 'Less',\r\n {\r\n fontSize: HEATMAP_SQUARE_SIZE + 1,\r\n dy: 9\r\n }\r\n );\r\n x = (COL_WIDTH * 2) + COL_WIDTH/2;\r\n this.legendArea.appendChild(lessText);\r\n\r\n this.colors.slice(0, HEATMAP_DISTRIBUTION_SIZE).map((color, i) => {\r\n const square = heatSquare('heatmap-legend-unit', x + (COL_WIDTH + 3) * i,\r\n y, HEATMAP_SQUARE_SIZE, radius, color);\r\n this.legendArea.appendChild(square);\r\n });\r\n\r\n const moreTextX = x + HEATMAP_DISTRIBUTION_SIZE * (COL_WIDTH + 3) + COL_WIDTH/4;\r\n const moreText = makeText('subdomain-name', moreTextX, y, 'More',\r\n {\r\n fontSize: HEATMAP_SQUARE_SIZE + 1,\r\n dy: 9\r\n }\r\n );\r\n this.legendArea.appendChild(moreText);\r\n }\r\n\r\n getDomains() {\r\n const s = this.state;\r\n const [startMonth, startYear] = [s.start.getMonth(), s.start.getFullYear()];\r\n const [endMonth, endYear] = [s.end.getMonth(), s.end.getFullYear()];\r\n\r\n const noOfMonths = (endMonth - startMonth + 1) + (endYear - startYear) * 12;\r\n\r\n const domainConfigs = [];\r\n\r\n let startOfMonth = clone(s.start);\r\n for(var i = 0; i < noOfMonths; i++) {\r\n let endDate = s.end;\r\n if(!areInSameMonth(startOfMonth, s.end)) {\r\n const [month, year] = [startOfMonth.getMonth(), startOfMonth.getFullYear()];\r\n endDate = getLastDateInMonth(month, year);\r\n }\r\n domainConfigs.push(this.getDomainConfig(startOfMonth, endDate));\r\n\r\n addDays(endDate, 1);\r\n startOfMonth = endDate;\r\n }\r\n\r\n return domainConfigs;\r\n }\r\n\r\n getDomainConfig(startDate, endDate='') {\r\n const [month, year] = [startDate.getMonth(), startDate.getFullYear()];\r\n let startOfWeek = setDayToSunday(startDate); // TODO: Monday as well\r\n endDate = clone(endDate) || getLastDateInMonth(month, year);\r\n\r\n const domainConfig = {\r\n index: month,\r\n cols: []\r\n };\r\n\r\n addDays(endDate, 1);\r\n const noOfMonthWeeks = getWeeksBetween(startOfWeek, endDate);\r\n\r\n let cols = [], col;\r\n for(var i = 0; i < noOfMonthWeeks; i++) {\r\n col = this.getCol(startOfWeek, month);\r\n cols.push(col);\r\n\r\n startOfWeek = new Date(col[NO_OF_DAYS_IN_WEEK - 1].yyyyMmDd);\r\n addDays(startOfWeek, 1);\r\n }\r\n\r\n if(col[NO_OF_DAYS_IN_WEEK - 1].dataValue !== undefined) {\r\n addDays(startOfWeek, 1);\r\n cols.push(this.getCol(startOfWeek, month, true));\r\n }\r\n\r\n domainConfig.cols = cols;\r\n\r\n return domainConfig;\r\n }\r\n\r\n getCol(startDate, month, empty = false) {\r\n const s = this.state;\r\n\r\n // startDate is the start of week\r\n const currentDate = clone(startDate);\r\n const col = [];\r\n\r\n for(var i = 0; i < NO_OF_DAYS_IN_WEEK; i++, addDays(currentDate, 1)) {\r\n let config = {};\r\n\r\n // Non-generic adjustment for entire heatmap, needs state\r\n const currentDateWithinData = currentDate >= s.start && currentDate <= s.end;\r\n\r\n if(empty || currentDate.getMonth() !== month || !currentDateWithinData) {\r\n config.yyyyMmDd = getYyyyMmDd(currentDate);\r\n } else {\r\n config = this.getSubDomainConfig(currentDate);\r\n }\r\n col.push(config);\r\n }\r\n\r\n return col;\r\n }\r\n\r\n getSubDomainConfig(date) {\r\n const yyyyMmDd = getYyyyMmDd(date);\r\n const dataValue = this.data.dataPoints[yyyyMmDd];\r\n const config = {\r\n yyyyMmDd: yyyyMmDd,\r\n dataValue: dataValue || 0,\r\n fill: this.colors[getMaxCheckpoint(dataValue, this.state.distribution)]\r\n };\r\n return config;\r\n }\r\n}\r\n\r\nfunction dataPrep(data, type) {\r\n data.labels = data.labels || [];\r\n\r\n const datasetLength = data.labels.length;\r\n\r\n // Datasets\r\n let datasets = data.datasets;\r\n const zeroArray = new Array(datasetLength).fill(0);\r\n if(!datasets) {\r\n // default\r\n datasets = [{\r\n values: zeroArray\r\n }];\r\n }\r\n\r\n datasets.map(d=> {\r\n // Set values\r\n if(!d.values) {\r\n d.values = zeroArray;\r\n } else {\r\n // Check for non values\r\n let vals = d.values;\r\n vals = vals.map(val => (!isNaN(val) ? val : 0));\r\n\r\n // Trim or extend\r\n if(vals.length > datasetLength) {\r\n vals = vals.slice(0, datasetLength);\r\n } else {\r\n vals = fillArray(vals, datasetLength - vals.length, 0);\r\n }\r\n }\r\n\r\n // Set labels\r\n //\r\n\r\n // Set type\r\n if(!d.chartType ) {\r\n if(!AXIS_DATASET_CHART_TYPES.includes(type)) type = DEFAULT_AXIS_CHART_TYPE;\r\n d.chartType = type;\r\n }\r\n\r\n });\r\n\r\n // Markers\r\n\r\n // Regions\r\n // data.yRegions = data.yRegions || [];\r\n if(data.yRegions) {\r\n data.yRegions.map(d => {\r\n if(d.end < d.start) {\r\n [d.start, d.end] = [d.end, d.start];\r\n }\r\n });\r\n }\r\n\r\n return data;\r\n}\r\n\r\nfunction zeroDataPrep(realData) {\r\n const datasetLength = realData.labels.length;\r\n const zeroArray = new Array(datasetLength).fill(0);\r\n\r\n const zeroData = {\r\n labels: realData.labels.slice(0, -1),\r\n datasets: realData.datasets.map(d => {\r\n return {\r\n name: '',\r\n values: zeroArray.slice(0, -1),\r\n chartType: d.chartType\r\n };\r\n }),\r\n };\r\n\r\n if(realData.yMarkers) {\r\n zeroData.yMarkers = [\r\n {\r\n value: 0,\r\n label: ''\r\n }\r\n ];\r\n }\r\n\r\n if(realData.yRegions) {\r\n zeroData.yRegions = [\r\n {\r\n start: 0,\r\n end: 0,\r\n label: ''\r\n }\r\n ];\r\n }\r\n\r\n return zeroData;\r\n}\r\n\r\nfunction getShortenedLabels(chartWidth, labels=[], isSeries=true) {\r\n let allowedSpace = chartWidth / labels.length;\r\n if(allowedSpace <= 0) allowedSpace = 1;\r\n const allowedLetters = allowedSpace / DEFAULT_CHAR_WIDTH;\r\n\r\n let seriesMultiple;\r\n if(isSeries) {\r\n // Find the maximum label length for spacing calculations\r\n const maxLabelLength = Math.max(...labels.map(label => label.length));\r\n seriesMultiple = Math.ceil(maxLabelLength/allowedLetters);\r\n }\r\n\r\n const calcLabels = labels.map((label, i) => {\r\n label += '';\r\n if(label.length > allowedLetters) {\r\n\r\n if(!isSeries) {\r\n if(allowedLetters-3 > 0) {\r\n label = label.slice(0, allowedLetters-3) + ' ...';\r\n } else {\r\n label = label.slice(0, allowedLetters) + '..';\r\n }\r\n } else {\r\n if(i % seriesMultiple !== 0) {\r\n label = '';\r\n }\r\n }\r\n }\r\n return label;\r\n });\r\n\r\n return calcLabels;\r\n}\r\n\r\nclass AxisChart extends BaseChart {\r\n constructor(parent, args) {\r\n super(parent, args);\r\n\r\n this.barOptions = args.barOptions || {};\r\n this.lineOptions = args.lineOptions || {};\r\n\r\n this.type = args.type || 'line';\r\n this.init = 1;\r\n\r\n this.setup();\r\n }\r\n\r\n setMeasures() {\r\n if(this.data.datasets.length <= 1) {\r\n this.config.showLegend = 0;\r\n this.measures.paddings.bottom = 30;\r\n }\r\n }\r\n\r\n configure(options) {\r\n super.configure(options);\r\n\r\n options.axisOptions = options.axisOptions || {};\r\n options.tooltipOptions = options.tooltipOptions || {};\r\n\r\n this.config.xAxisMode = options.axisOptions.xAxisMode || 'span';\r\n this.config.yAxisMode = options.axisOptions.yAxisMode || 'span';\r\n this.config.xIsSeries = options.axisOptions.xIsSeries || 0;\r\n this.config.shortenYAxisNumbers = options.axisOptions.shortenYAxisNumbers || 0;\r\n\r\n this.config.formatTooltipX = options.tooltipOptions.formatTooltipX;\r\n this.config.formatTooltipY = options.tooltipOptions.formatTooltipY;\r\n\r\n this.config.valuesOverPoints = options.valuesOverPoints;\r\n }\r\n\r\n prepareData(data=this.data) {\r\n return dataPrep(data, this.type);\r\n }\r\n\r\n prepareFirstData(data=this.data) {\r\n return zeroDataPrep(data);\r\n }\r\n\r\n calc(onlyWidthChange = false) {\r\n this.calcXPositions();\r\n if(!onlyWidthChange) {\r\n this.calcYAxisParameters(this.getAllYValues(), this.type === 'line');\r\n }\r\n this.makeDataByIndex();\r\n }\r\n\r\n calcXPositions() {\r\n const s = this.state;\r\n const labels = this.data.labels;\r\n s.datasetLength = labels.length;\r\n\r\n s.unitWidth = this.width/(s.datasetLength);\r\n // Default, as per bar, and mixed. Only line will be a special case\r\n s.xOffset = s.unitWidth/2;\r\n\r\n // // For a pure Line Chart\r\n // s.unitWidth = this.width/(s.datasetLength - 1);\r\n // s.xOffset = 0;\r\n\r\n s.xAxis = {\r\n labels: labels,\r\n positions: labels.map((d, i) =>\r\n floatTwo(s.xOffset + i * s.unitWidth)\r\n )\r\n };\r\n }\r\n\r\n calcYAxisParameters(dataValues, withMinimum = 'false') {\r\n const yPts = calcChartIntervals(dataValues, withMinimum);\r\n const scaleMultiplier = this.height / getValueRange(yPts);\r\n const intervalHeight = getIntervalSize(yPts) * scaleMultiplier;\r\n const zeroLine = this.height - (getZeroIndex(yPts) * intervalHeight);\r\n\r\n this.state.yAxis = {\r\n labels: yPts,\r\n positions: yPts.map(d => zeroLine - d * scaleMultiplier),\r\n scaleMultiplier: scaleMultiplier,\r\n zeroLine: zeroLine,\r\n };\r\n\r\n // Dependent if above changes\r\n this.calcDatasetPoints();\r\n this.calcYExtremes();\r\n this.calcYRegions();\r\n }\r\n\r\n calcDatasetPoints() {\r\n const s = this.state;\r\n const scaleAll = values => values.map(val => scale(val, s.yAxis));\r\n\r\n s.datasets = this.data.datasets.map((d, i) => {\r\n const values = d.values;\r\n const cumulativeYs = d.cumulativeYs || [];\r\n return {\r\n name: d.name,\r\n index: i,\r\n chartType: d.chartType,\r\n\r\n values: values,\r\n yPositions: scaleAll(values),\r\n\r\n cumulativeYs: cumulativeYs,\r\n cumulativeYPos: scaleAll(cumulativeYs),\r\n };\r\n });\r\n }\r\n\r\n calcYExtremes() {\r\n const s = this.state;\r\n if(this.barOptions.stacked) {\r\n s.yExtremes = s.datasets[s.datasets.length - 1].cumulativeYPos;\r\n return;\r\n }\r\n s.yExtremes = new Array(s.datasetLength).fill(9999);\r\n s.datasets.map(d => {\r\n d.yPositions.map((pos, j) => {\r\n if(pos < s.yExtremes[j]) {\r\n s.yExtremes[j] = pos;\r\n }\r\n });\r\n });\r\n }\r\n\r\n calcYRegions() {\r\n const s = this.state;\r\n if(this.data.yMarkers) {\r\n this.state.yMarkers = this.data.yMarkers.map(d => {\r\n d.position = scale(d.value, s.yAxis);\r\n if(!d.options) d.options = {};\r\n // if(!d.label.includes(':')) {\r\n // \td.label += ': ' + d.value;\r\n // }\r\n return d;\r\n });\r\n }\r\n if(this.data.yRegions) {\r\n this.state.yRegions = this.data.yRegions.map(d => {\r\n d.startPos = scale(d.start, s.yAxis);\r\n d.endPos = scale(d.end, s.yAxis);\r\n if(!d.options) d.options = {};\r\n return d;\r\n });\r\n }\r\n }\r\n\r\n getAllYValues() {\r\n let key = 'values';\r\n\r\n if(this.barOptions.stacked) {\r\n key = 'cumulativeYs';\r\n let cumulative = new Array(this.state.datasetLength).fill(0);\r\n this.data.datasets.map((d, i) => {\r\n const values = this.data.datasets[i].values;\r\n d[key] = cumulative = cumulative.map((c, i) => c + values[i]);\r\n });\r\n }\r\n\r\n const allValueLists = this.data.datasets.map(d => d[key]);\r\n if(this.data.yMarkers) {\r\n allValueLists.push(this.data.yMarkers.map(d => d.value));\r\n }\r\n if(this.data.yRegions) {\r\n this.data.yRegions.map(d => {\r\n allValueLists.push([d.end, d.start]);\r\n });\r\n }\r\n\r\n return [].concat(...allValueLists);\r\n }\r\n\r\n setupComponents() {\r\n let componentConfigs = [\r\n [\r\n 'yAxis',\r\n {\r\n mode: this.config.yAxisMode,\r\n width: this.width,\r\n shortenNumbers: this.config.shortenYAxisNumbers\r\n // pos: 'right'\r\n },\r\n function() {\r\n return this.state.yAxis;\r\n }.bind(this)\r\n ],\r\n\r\n [\r\n 'xAxis',\r\n {\r\n mode: this.config.xAxisMode,\r\n height: this.height,\r\n // pos: 'right'\r\n },\r\n function() {\r\n const s = this.state;\r\n s.xAxis.calcLabels = getShortenedLabels(this.width,\r\n s.xAxis.labels, this.config.xIsSeries);\r\n\r\n return s.xAxis;\r\n }.bind(this)\r\n ],\r\n\r\n [\r\n 'yRegions',\r\n {\r\n width: this.width,\r\n pos: 'right'\r\n },\r\n function() {\r\n return this.state.yRegions;\r\n }.bind(this)\r\n ],\r\n ];\r\n\r\n const barDatasets = this.state.datasets.filter(d => d.chartType === 'bar');\r\n const lineDatasets = this.state.datasets.filter(d => d.chartType === 'line');\r\n\r\n const barsConfigs = barDatasets.map(d => {\r\n const index = d.index;\r\n return [\r\n 'barGraph' + '-' + d.index,\r\n {\r\n index: index,\r\n color: this.colors[index],\r\n stacked: this.barOptions.stacked,\r\n\r\n // same for all datasets\r\n valuesOverPoints: this.config.valuesOverPoints,\r\n minHeight: this.height * MIN_BAR_PERCENT_HEIGHT,\r\n },\r\n function() {\r\n const s = this.state;\r\n let d = s.datasets[index];\r\n const stacked = this.barOptions.stacked;\r\n\r\n const spaceRatio = this.barOptions.spaceRatio || BAR_CHART_SPACE_RATIO;\r\n const barsWidth = s.unitWidth * (1 - spaceRatio);\r\n const barWidth = barsWidth/(stacked ? 1 : barDatasets.length);\r\n\r\n let xPositions = s.xAxis.positions.map(x => x - barsWidth/2);\r\n if(!stacked) {\r\n xPositions = xPositions.map(p => p + barWidth * index);\r\n }\r\n\r\n let labels = new Array(s.datasetLength).fill('');\r\n if(this.config.valuesOverPoints) {\r\n if(stacked && d.index === s.datasets.length - 1) {\r\n labels = d.cumulativeYs;\r\n } else {\r\n labels = d.values;\r\n }\r\n }\r\n\r\n let offsets = new Array(s.datasetLength).fill(0);\r\n if(stacked) {\r\n offsets = d.yPositions.map((y, j) => y - d.cumulativeYPos[j]);\r\n }\r\n\r\n return {\r\n xPositions: xPositions,\r\n yPositions: d.yPositions,\r\n offsets: offsets,\r\n // values: d.values,\r\n labels: labels,\r\n\r\n zeroLine: s.yAxis.zeroLine,\r\n barsWidth: barsWidth,\r\n barWidth: barWidth,\r\n };\r\n }.bind(this)\r\n ];\r\n });\r\n\r\n const lineConfigs = lineDatasets.map(d => {\r\n const index = d.index;\r\n return [\r\n 'lineGraph' + '-' + d.index,\r\n {\r\n index: index,\r\n color: this.colors[index],\r\n svgDefs: this.svgDefs,\r\n heatline: this.lineOptions.heatline,\r\n regionFill: this.lineOptions.regionFill,\r\n spline: this.lineOptions.spline,\r\n hideDots: this.lineOptions.hideDots,\r\n hideLine: this.lineOptions.hideLine,\r\n\r\n // same for all datasets\r\n valuesOverPoints: this.config.valuesOverPoints,\r\n },\r\n function() {\r\n const s = this.state;\r\n let d = s.datasets[index];\r\n const minLine = s.yAxis.positions[0] < s.yAxis.zeroLine\r\n ? s.yAxis.positions[0] : s.yAxis.zeroLine;\r\n\r\n return {\r\n xPositions: s.xAxis.positions,\r\n yPositions: d.yPositions,\r\n\r\n values: d.values,\r\n\r\n zeroLine: minLine,\r\n radius: this.lineOptions.dotSize || LINE_CHART_DOT_SIZE,\r\n };\r\n }.bind(this)\r\n ];\r\n });\r\n\r\n const markerConfigs = [\r\n [\r\n 'yMarkers',\r\n {\r\n width: this.width,\r\n pos: 'right'\r\n },\r\n function() {\r\n return this.state.yMarkers;\r\n }.bind(this)\r\n ]\r\n ];\r\n\r\n componentConfigs = componentConfigs.concat(barsConfigs, lineConfigs, markerConfigs);\r\n\r\n const optionals = ['yMarkers', 'yRegions'];\r\n this.dataUnitComponents = [];\r\n\r\n this.components = new Map(componentConfigs\r\n .filter(args => !optionals.includes(args[0]) || this.state[args[0]])\r\n .map(args => {\r\n const component = getComponent(...args);\r\n if(args[0].includes('lineGraph') || args[0].includes('barGraph')) {\r\n this.dataUnitComponents.push(component);\r\n }\r\n return [args[0], component];\r\n }));\r\n }\r\n\r\n makeDataByIndex() {\r\n this.dataByIndex = {};\r\n\r\n const s = this.state;\r\n const formatX = this.config.formatTooltipX;\r\n const formatY = this.config.formatTooltipY;\r\n const titles = s.xAxis.labels;\r\n\r\n titles.map((label, index) => {\r\n const values = this.state.datasets.map((set, i) => {\r\n const value = set.values[index];\r\n return {\r\n title: set.name,\r\n value: value,\r\n yPos: set.yPositions[index],\r\n color: this.colors[i],\r\n formatted: formatY ? formatY(value) : value,\r\n };\r\n });\r\n\r\n this.dataByIndex[index] = {\r\n label: label,\r\n formattedLabel: formatX ? formatX(label) : label,\r\n xPos: s.xAxis.positions[index],\r\n values: values,\r\n yExtreme: s.yExtremes[index],\r\n };\r\n });\r\n }\r\n\r\n bindTooltip() {\r\n // NOTE: could be in tooltip itself, as it is a given functionality for its parent\r\n this.container.addEventListener('mousemove', (e) => {\r\n const m = this.measures;\r\n const o = getOffset(this.container);\r\n const relX = e.pageX - o.left - getLeftOffset(m);\r\n const relY = e.pageY - o.top;\r\n\r\n if(relY < this.height + getTopOffset(m)\r\n\t\t\t\t&& relY > getTopOffset(m)) {\r\n this.mapTooltipXPosition(relX);\r\n } else {\r\n this.tip.hideTip();\r\n }\r\n });\r\n }\r\n\r\n mapTooltipXPosition(relX) {\r\n const s = this.state;\r\n if(!s.yExtremes) return;\r\n\r\n const index = getClosestInArray(relX, s.xAxis.positions, true);\r\n if (index >= 0) {\r\n const dbi = this.dataByIndex[index];\r\n\r\n this.tip.setValues(\r\n dbi.xPos + this.tip.offset.x,\r\n dbi.yExtreme + this.tip.offset.y,\r\n {name: dbi.formattedLabel, value: ''},\r\n dbi.values,\r\n index\r\n );\r\n\r\n this.tip.showTip();\r\n }\r\n }\r\n\r\n renderLegend() {\r\n const s = this.data;\r\n if(s.datasets.length > 1) {\r\n this.legendArea.textContent = '';\r\n s.datasets.map((d, i) => {\r\n const barWidth = AXIS_LEGEND_BAR_SIZE;\r\n // let rightEndPoint = this.baseWidth - this.measures.margins.left - this.measures.margins.right;\r\n // let multiplier = s.datasets.length - i;\r\n const rect = legendBar(\r\n // rightEndPoint - multiplier * barWidth,\t// To right align\r\n barWidth * i,\r\n '0',\r\n barWidth,\r\n this.colors[i],\r\n d.name,\r\n this.config.truncateLegends);\r\n this.legendArea.appendChild(rect);\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n // Overlay\r\n makeOverlay() {\r\n if(this.init) {\r\n this.init = 0;\r\n return;\r\n }\r\n if(this.overlayGuides) {\r\n this.overlayGuides.forEach(g => {\r\n const o = g.overlay;\r\n o.parentNode.removeChild(o);\r\n });\r\n }\r\n\r\n this.overlayGuides = this.dataUnitComponents.map(c => {\r\n return {\r\n type: c.unitType,\r\n overlay: undefined,\r\n units: c.units,\r\n };\r\n });\r\n\r\n if(this.state.currentIndex === undefined) {\r\n this.state.currentIndex = this.state.datasetLength - 1;\r\n }\r\n\r\n // Render overlays\r\n this.overlayGuides.map(d => {\r\n const currentUnit = d.units[this.state.currentIndex];\r\n\r\n d.overlay = makeOverlay[d.type](currentUnit);\r\n this.drawArea.appendChild(d.overlay);\r\n });\r\n }\r\n\r\n updateOverlayGuides() {\r\n if(this.overlayGuides) {\r\n this.overlayGuides.forEach(g => {\r\n const o = g.overlay;\r\n o.parentNode.removeChild(o);\r\n });\r\n }\r\n }\r\n\r\n bindOverlay() {\r\n this.parent.addEventListener('data-select', () => {\r\n this.updateOverlay();\r\n });\r\n }\r\n\r\n bindUnits() {\r\n this.dataUnitComponents.map(c => {\r\n c.units.map(unit => {\r\n unit.addEventListener('click', () => {\r\n const index = unit.getAttribute('data-point-index');\r\n this.setCurrentDataPoint(index);\r\n });\r\n });\r\n });\r\n\r\n // Note: Doesn't work as tooltip is absolutely positioned\r\n this.tip.container.addEventListener('click', () => {\r\n const index = this.tip.container.getAttribute('data-point-index');\r\n this.setCurrentDataPoint(index);\r\n });\r\n }\r\n\r\n updateOverlay() {\r\n this.overlayGuides.map(d => {\r\n const currentUnit = d.units[this.state.currentIndex];\r\n updateOverlay[d.type](currentUnit, d.overlay);\r\n });\r\n }\r\n\r\n onLeftArrow() {\r\n this.setCurrentDataPoint(this.state.currentIndex - 1);\r\n }\r\n\r\n onRightArrow() {\r\n this.setCurrentDataPoint(this.state.currentIndex + 1);\r\n }\r\n\r\n getDataPoint(index=this.state.currentIndex) {\r\n const s = this.state;\r\n const data_point = {\r\n index: index,\r\n label: s.xAxis.labels[index],\r\n values: s.datasets.map(d => d.values[index])\r\n };\r\n return data_point;\r\n }\r\n\r\n setCurrentDataPoint(index) {\r\n const s = this.state;\r\n index = parseInt(index);\r\n if(index < 0) index = 0;\r\n if(index >= s.xAxis.labels.length) index = s.xAxis.labels.length - 1;\r\n if(index === s.currentIndex) return;\r\n s.currentIndex = index;\r\n fire(this.parent, 'data-select', this.getDataPoint());\r\n }\r\n\r\n\r\n\r\n // API\r\n addDataPoint(label, datasetValues, index=this.state.datasetLength) {\r\n super.addDataPoint(label, datasetValues, index);\r\n this.data.labels.splice(index, 0, label);\r\n this.data.datasets.map((d, i) => {\r\n d.values.splice(index, 0, datasetValues[i]);\r\n });\r\n this.update(this.data);\r\n }\r\n\r\n removeDataPoint(index = this.state.datasetLength-1) {\r\n if (this.data.labels.length <= 1) {\r\n return;\r\n }\r\n super.removeDataPoint(index);\r\n this.data.labels.splice(index, 1);\r\n this.data.datasets.map(d => {\r\n d.values.splice(index, 1);\r\n });\r\n this.update(this.data);\r\n }\r\n\r\n updateDataset(datasetValues, index=0) {\r\n this.data.datasets[index].values = datasetValues;\r\n this.update(this.data);\r\n }\r\n // addDataset(dataset, index) {}\r\n // removeDataset(index = 0) {}\r\n\r\n updateDatasets(datasets) {\r\n this.data.datasets.map((d, i) => {\r\n if(datasets[i]) {\r\n d.values = datasets[i];\r\n }\r\n });\r\n this.update(this.data);\r\n }\r\n\r\n // updateDataPoint(dataPoint, index = 0) {}\r\n // addDataPoint(dataPoint, index = 0) {}\r\n // removeDataPoint(index = 0) {}\r\n}\r\n\r\nclass DonutChart extends AggregationChart {\r\n constructor(parent, args) {\r\n super(parent, args);\r\n this.type = 'donut';\r\n this.initTimeout = 0;\r\n this.init = 1;\r\n\r\n this.setup();\r\n }\r\n\r\n configure(args) {\r\n super.configure(args);\r\n this.mouseMove = this.mouseMove.bind(this);\r\n this.mouseLeave = this.mouseLeave.bind(this);\r\n\r\n this.hoverRadio = args.hoverRadio || 0.1;\r\n this.config.startAngle = args.startAngle || 0;\r\n\r\n this.clockWise = args.clockWise || false;\r\n this.strokeWidth = args.strokeWidth || 30;\r\n }\r\n\r\n calc() {\r\n super.calc();\r\n const s = this.state;\r\n this.radius =\r\n\t\t\tthis.height > this.width\r\n\t\t\t ? this.center.x - this.strokeWidth / 2\r\n\t\t\t : this.center.y - this.strokeWidth / 2;\r\n\r\n const { radius, clockWise } = this;\r\n\r\n const prevSlicesProperties = s.slicesProperties || [];\r\n s.sliceStrings = [];\r\n s.slicesProperties = [];\r\n let curAngle = 180 - this.config.startAngle;\r\n\r\n s.sliceTotals.map((total, i) => {\r\n const startAngle = curAngle;\r\n const originDiffAngle = (total / s.grandTotal) * FULL_ANGLE;\r\n const largeArc = originDiffAngle > 180 ? 1: 0;\r\n const diffAngle = clockWise ? -originDiffAngle : originDiffAngle;\r\n const endAngle = curAngle = curAngle + diffAngle;\r\n const startPosition = getPositionByAngle(startAngle, radius);\r\n const endPosition = getPositionByAngle(endAngle, radius);\r\n\r\n const prevProperty = this.init && prevSlicesProperties[i];\r\n\r\n let curStart,curEnd;\r\n if(this.init) {\r\n curStart = prevProperty ? prevProperty.startPosition : startPosition;\r\n curEnd = prevProperty ? prevProperty.endPosition : startPosition;\r\n } else {\r\n curStart = startPosition;\r\n curEnd = endPosition;\r\n }\r\n const curPath =\r\n\t\t\t\toriginDiffAngle === 360\r\n\t\t\t\t ? makeStrokeCircleStr(curStart, curEnd, this.center, this.radius, this.clockWise, largeArc)\r\n\t\t\t\t : makeArcStrokePathStr(curStart, curEnd, this.center, this.radius, this.clockWise, largeArc);\r\n\r\n s.sliceStrings.push(curPath);\r\n s.slicesProperties.push({\r\n startPosition,\r\n endPosition,\r\n value: total,\r\n total: s.grandTotal,\r\n startAngle,\r\n endAngle,\r\n angle: diffAngle\r\n });\r\n\r\n });\r\n this.init = 0;\r\n }\r\n\r\n setupComponents() {\r\n const s = this.state;\r\n\r\n let componentConfigs = [\r\n [\r\n 'donutSlices',\r\n { },\r\n function() {\r\n return {\r\n sliceStrings: s.sliceStrings,\r\n colors: this.colors,\r\n strokeWidth: this.strokeWidth,\r\n };\r\n }.bind(this)\r\n ]\r\n ];\r\n\r\n this.components = new Map(componentConfigs\r\n .map(args => {\r\n const component = getComponent(...args);\r\n return [args[0], component];\r\n }));\r\n }\r\n\r\n calTranslateByAngle(property){\r\n const{ radius, hoverRadio } = this;\r\n const position = getPositionByAngle(property.startAngle+(property.angle / 2),radius);\r\n return `translate3d(${(position.x) * hoverRadio}px,${(position.y) * hoverRadio}px,0)`;\r\n }\r\n\r\n hoverSlice(path,i,flag,e){\r\n if(!path) return;\r\n const color = this.colors[i];\r\n if(flag) {\r\n transform(path, this.calTranslateByAngle(this.state.slicesProperties[i]));\r\n path.style.stroke = lightenDarkenColor(color, 50);\r\n const g_off = getOffset(this.svg);\r\n const x = e.pageX - g_off.left + 10;\r\n const y = e.pageY - g_off.top - 10;\r\n const title = (this.formatted_labels && this.formatted_labels.length > 0\r\n ? this.formatted_labels[i] : this.state.labels[i]) + ': ';\r\n const percent = (this.state.sliceTotals[i] * 100 / this.state.grandTotal).toFixed(1);\r\n this.tip.setValues(x, y, {name: title, value: percent + '%'});\r\n this.tip.showTip();\r\n } else {\r\n transform(path,'translate3d(0,0,0)');\r\n this.tip.hideTip();\r\n path.style.stroke = color;\r\n }\r\n }\r\n\r\n bindTooltip() {\r\n this.container.addEventListener('mousemove', this.mouseMove);\r\n this.container.addEventListener('mouseleave', this.mouseLeave);\r\n }\r\n\r\n mouseMove(e){\r\n const target = e.target;\r\n const slices = this.components.get('donutSlices').store;\r\n const prevIndex = this.curActiveSliceIndex;\r\n const prevAcitve = this.curActiveSlice;\r\n if(slices.includes(target)) {\r\n const i = slices.indexOf(target);\r\n this.hoverSlice(prevAcitve, prevIndex,false);\r\n this.curActiveSlice = target;\r\n this.curActiveSliceIndex = i;\r\n this.hoverSlice(target, i, true, e);\r\n } else {\r\n this.mouseLeave();\r\n }\r\n }\r\n\r\n mouseLeave(){\r\n this.hoverSlice(this.curActiveSlice,this.curActiveSliceIndex,false);\r\n }\r\n}\r\n\r\n// import MultiAxisChart from './charts/MultiAxisChart';\r\nconst chartTypes = {\r\n bar: AxisChart,\r\n line: AxisChart,\r\n // multiaxis: MultiAxisChart,\r\n percentage: PercentageChart,\r\n heatmap: Heatmap,\r\n pie: PieChart,\r\n donut: DonutChart,\r\n};\r\n\r\nfunction getChartByType(chartType = 'line', parent, options) {\r\n if (chartType === 'axis-mixed') {\r\n options.type = 'line';\r\n return new AxisChart(parent, options);\r\n }\r\n\r\n if (!chartTypes[chartType]) {\r\n console.error('Undefined chart type: ' + chartType);\r\n return;\r\n }\r\n\r\n return new chartTypes[chartType](parent, options);\r\n}\r\n\r\nclass Chart {\r\n constructor(parent, options) {\r\n return getChartByType(options.type, parent, options);\r\n }\r\n}\r\n\r\nexport { Chart, PercentageChart, PieChart, Heatmap, AxisChart };\r\n","import React, { useImperativeHandle, forwardRef, Component } from 'react';\r\n// import { Chart } from 'frappe-charts/dist/frappe-charts.min.esm';\r\n// import { Chart } from 'frappe-charts/dist/frappe-charts.esm';\r\nimport { Chart } from './chart';\r\nimport './Chart.css';\r\n\r\n\r\nclass Graph extends Component {\r\n componentDidMount() {\r\n const {\r\n title, data, type, height = 250, onSelect, isLoading, ...rest\r\n } = this.props;\r\n this.graph = new Chart(this.chart, {\r\n title,\r\n data,\r\n type,\r\n height,\r\n is_navigable: !!onSelect,\r\n ...rest\r\n });\r\n if (onSelect) {\r\n this.graph.parent.addEventListener('data-select', onSelect);\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { data, isLoading } = this.props;\r\n if (prevProps.data !== data && !isLoading && data) {\r\n this.graph.update(data);\r\n }\r\n }\r\n\r\n render() {\r\n return
    (this.chart = chart)} />;\r\n }\r\n}\r\n\r\nexport default Graph;\r\n\r\n// const Graph = forwardRef((props, parentRef) => {\r\n// const ref = React.useRef(null);\r\n// const chart = React.useRef(null);\r\n// const { onDataSelect } = props;\r\n\r\n// // useImperativeHandle(parentRef, () => ({\r\n// // export: () => {\r\n// // if (chart && chart.current) {\r\n// // chart.current.export();\r\n// // }\r\n// // }\r\n// // }));\r\n\r\n// React.useEffect(() => {\r\n// chart.current = new Chart(ref.current, {\r\n// isNavigable: onDataSelect !== undefined,\r\n// ...props\r\n// });\r\n// if (onDataSelect) {\r\n// chart.current.parent.addEventListener('data-select', (e) => {\r\n// e.preventDefault();\r\n// onDataSelect(e);\r\n// });\r\n// }\r\n// }, []);\r\n\r\n// React.useEffect(() => {\r\n// chart.current.update(props.data);\r\n// }, [props.data]);\r\n\r\n// return
    ;\r\n// });\r\n\r\n// export default Graph;\r\n","import React, { useLayoutEffect, useState } from 'react';\r\n\r\nconst useWindowSize = () => {\r\n const [size, setSize] = useState([0, 0]);\r\n useLayoutEffect(() => {\r\n function updateSize() {\r\n setSize([window.innerWidth, window.innerHeight]);\r\n }\r\n window.addEventListener('resize', updateSize);\r\n updateSize();\r\n return () => window.removeEventListener('resize', updateSize);\r\n }, []);\r\n\r\n // if (size >= 1200 && size < 1366) {\r\n // return 'midDesktop';\r\n // }\r\n\r\n // if (size > 1023 && size < 1200) {\r\n // return 'smallDesktop';\r\n // }\r\n return size;\r\n};\r\n\r\nexport default useWindowSize;\r\n","import React from 'react';\r\n// import PropTypes from 'prop-types';\r\nimport './Switch.css';\r\n\r\n// eslint-disable-next-line object-curly-newline\r\nconst Switch = ({ offText, onText, handleSwitch, isSelected, name, generalColor = {}, activeColor }) => {\r\n const toggleSwitch = (e) => {\r\n e.stopPropagation();\r\n handleSwitch(e);\r\n };\r\n\r\n const inputProps = {\r\n name,\r\n type: 'checkbox',\r\n onClick: toggleSwitch,\r\n value: isSelected\r\n // checked: isSelected\r\n };\r\n\r\n const containerClassName = isSelected ? 'switch-container checked' : 'switch-container';\r\n\r\n return (\r\n
    \r\n
    {offText}
    \r\n \r\n
    {onText}
    \r\n
    \r\n );\r\n};\r\n\r\n// Switch.defaultProps = {\r\n// offText: '',\r\n// onText: ''\r\n// };\r\n\r\n\r\n// Switch.propTypes = {\r\n// offText: PropTypes.string,\r\n// onText: PropTypes.string,\r\n// handleSwitch: PropTypes.func.isRequired\r\n// };\r\n\r\nexport default Switch;\r\n","const roundToPrecision = (number, precision, nullCheck = false) => {\r\n if (number === null && nullCheck) return null;\r\n const factor = 10 ** precision;\r\n const tempNumber = number * factor;\r\n const roundedTempNumber = Math.round(tempNumber);\r\n return roundedTempNumber / factor;\r\n};\r\n\r\nexport default roundToPrecision;\r\n","const formatDaysFromNow = (date) => {\r\n const now = new Date();\r\n const dateToCount = new Date(date);\r\n const difference = now.getTime() - dateToCount.getTime();\r\n const differenceInDays = difference / (1000 * 3600 * 24);\r\n return Math.round(differenceInDays);\r\n};\r\n\r\nexport default formatDaysFromNow;\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { roundNumberPipDigit } from '../utilsUI/formatWSTick';\r\nimport formatDaysFromNow from '../utilsUI/formatDaysFromNow';\r\n\r\nexport const FormatPercentFloat = ({ value }) => {\r\n const isNegative = value < 0;\r\n const pnlClass = isNegative ? 'red' : 'green';\r\n if (isNegative) {\r\n value = Math.abs(value);\r\n }\r\n return (\r\n \r\n {isNegative && '-'}\r\n {roundNumberPipDigit(value * 100, 2)}\r\n %\r\n \r\n );\r\n};\r\n\r\n\r\nconst ProfileTabDetails = ({ detailedData, joinDateValue }) => {\r\n const { t } = useTranslation();\r\n const {\r\n AverageCopySlippage: copySlippage,\r\n AvgDailyReturn: dailyPL,\r\n AvgMonthlyReturn: monthlyPL,\r\n CopySlippageRank: copySlippageRank,\r\n CumulativePnl: cumulativePL,\r\n MaxDrawDown: maxDrawDown,\r\n MaxSingleTradeLoss: maxTradeLoss,\r\n MaxSingleTradeProfit: maxTradeProfit,\r\n WinRatio: winRatio\r\n } = detailedData;\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {t('Profile.Days')}\r\n
    \r\n
    \r\n {joinDateValue && formatDaysFromNow(joinDateValue)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {t('Profile.Success.Rate')}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {t('Profile.Average.Daily')}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {t('Profile.Max.Drawdown')}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {t('Profile.Best.Position')}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {t('Profile.Worst.Position')}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default ProfileTabDetails;","import React from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\n\r\nimport Button from '../primitives/Button';\r\n\r\n\r\nconst ProfilePageRadioGroup = ({ groupList, selectedItem, handleSelectItem }) => {\r\n const { MainColor } = useSelector((state) => (state.brand.theme), shallowEqual);\r\n // const profileFilterButtonActive = {\r\n // color: MainColor.ActiveText\r\n // };\r\n // const profileFilterButton = {\r\n // // backgroundColor: '#283B55',\r\n // color: MainColor.InactiveText\r\n // };\r\n const RadioButtonsGroup = Object.entries(groupList).map(([key, value]) => {\r\n return (\r\n handleSelectItem(key)}\r\n />\r\n );\r\n });\r\n\r\n return (\r\n
    \r\n {RadioButtonsGroup}\r\n
    \r\n );\r\n};\r\n\r\nexport default ProfilePageRadioGroup;\r\n","/* eslint-disable complexity */\r\nimport React, { Fragment, useState, useEffect } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport { formatDate } from '../utilsUI/formatTime';\r\nimport { FormatPercentFloat } from './ProfileTabDetails';\r\nimport { format2Digits } from '../utilsUI/formatNumber';\r\nimport { SendEventToGoogleAnalytics } from '../../background/storeListener/googleAnalyticsListener';\r\n\r\nexport const sortColumns = (data, sortName, sortType, direction) => {\r\n let sortResult = [];\r\n if (sortType === 'date') {\r\n if (direction) {\r\n sortResult = data.sort((a, b) => new Date(a[sortName]).getTime() - new Date(b[sortName]).getTime());\r\n } else {\r\n sortResult = data.sort((a, b) => new Date(b[sortName]).getTime() - new Date(a[sortName]).getTime());\r\n }\r\n } else if (sortType === 'number') {\r\n if (direction) {\r\n sortResult = data.sort((a, b) => a[sortName] - b[sortName]);\r\n } else {\r\n sortResult = data.sort((a, b) => b[sortName] - a[sortName]);\r\n }\r\n } else if (sortType === 'string') {\r\n if (!direction) {\r\n sortResult = data.sort((a, b) => {\r\n const nameA = a[sortName]?.toUpperCase() || '';\r\n const nameB = b[sortName]?.toUpperCase() || '';\r\n if (nameA < nameB) {\r\n return -1;\r\n }\r\n if (nameA > nameB) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n } else {\r\n sortResult = data.sort((a, b) => {\r\n const nameA = a[sortName]?.toUpperCase() || '';\r\n const nameB = b[sortName]?.toUpperCase() || '';\r\n if (nameA > nameB) {\r\n return -1;\r\n }\r\n if (nameA < nameB) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n }\r\n }\r\n\r\n return sortResult;\r\n};\r\n\r\n\r\nconst ProfilePageOpenPositions = ({\r\n openedTab, positions, closedOrders, setSelectedTrader, pendingOrders\r\n}) => {\r\n const [sortedPositions, setSortedPositions] = useState(null);\r\n const [prevColumn, setPrevColumn] = useState({ columnName: closedOrders ? 'CloseTime' : 'OpenTime', direction: false });\r\n const { t } = useTranslation();\r\n\r\n const openProfilePage = (e) => {\r\n var nickname = e.target.getAttribute('data-name');\r\n setSelectedTrader({ nickname: nickname });\r\n SendEventToGoogleAnalytics(`Profile:Positions:${openedTab}:ProfileClick`, {nickname: nickname});\r\n };\r\n\r\n const sortPositions = () => {\r\n if (closedOrders) {\r\n setSortedPositions(positions?.sort((a, b) => new Date(b.CloseTime).getTime() - new Date(a.CloseTime).getTime()));\r\n } else {\r\n setSortedPositions(positions?.sort((a, b) => new Date(b.OpenTime).getTime() - new Date(a.OpenTime).getTime()));\r\n }\r\n };\r\n\r\n const sortAll = (e) => {\r\n const element = e.target;\r\n const sortName = element.getAttribute('data-sort-name');\r\n const sortType = element.getAttribute('data-sort-type');\r\n const classValue = element.getAttribute('data-sorted');\r\n const direction = prevColumn.columnName === sortName ? !prevColumn.direction : true;\r\n element.setAttribute('id', sortName);\r\n if (classValue) {\r\n if (classValue === 'down') {\r\n element.setAttribute('data-sorted', 'up');\r\n } else {\r\n element.setAttribute('data-sorted', 'down');\r\n }\r\n } else {\r\n element.setAttribute('data-sorted', 'up');\r\n }\r\n if (prevColumn && sortName !== prevColumn.columnName) {\r\n document.getElementById(prevColumn.columnName).setAttribute('data-sorted', '');\r\n }\r\n // Array.prototype.map.call(element.parentNode.children, el => console.log('el', el));\r\n\r\n setSortedPositions(sortColumns(positions, sortName, sortType, direction));\r\n\r\n if (sortName === prevColumn.columnName) {\r\n setPrevColumn((prevState) => ({ columnName: sortName, direction: !prevState.direction }));\r\n } else {\r\n setPrevColumn({ columnName: sortName, direction: true });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n sortPositions();\r\n closedOrders ? setPrevColumn({ columnName: 'CloseTime', direction: false }) : setPrevColumn({ columnName: 'OpenTime', direction: false });\r\n }, []);\r\n\r\n const formatPendingText = (position) => {\r\n let pendingOrderText = '';\r\n if (position.PendingType === 0) {\r\n pendingOrderText = t('PendingOrder.Buy.Limit');\r\n } else if (position.PendingType === 1) {\r\n pendingOrderText = t('PendingOrder.Sell.Limit');\r\n } else if (position.PendingType === 2) {\r\n pendingOrderText = t('PendingOrder.Buy.Stop');\r\n } else if (position.PendingType === 3) {\r\n pendingOrderText = t('PendingOrder.Sell.Stop');\r\n }\r\n return pendingOrderText;\r\n };\r\n\r\n\r\n return (\r\n \r\n {positions?.length ? (\r\n \r\n \r\n \r\n {/* \r\n \r\n {!pendingOrders ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {/* */}\r\n {!closedOrders ? (\r\n // \r\n ) : (\r\n \r\n )}\r\n {closedOrders && (\r\n \r\n )}\r\n {closedOrders && (\r\n // \r\n )}\r\n {!closedOrders && (\r\n \r\n )}\r\n {!closedOrders && (\r\n \r\n )}\r\n {!pendingOrders && (\r\n \r\n \r\n \r\n \r\n )}\r\n {/* {pendingOrders && } */}\r\n \r\n \r\n \r\n {sortedPositions && sortedPositions.map((item) => {\r\n return (\r\n \r\n {/* */}\r\n \r\n {pendingOrders\r\n ? \r\n : \r\n }\r\n \r\n \r\n {closedOrders && }\r\n {closedOrders && }\r\n {!closedOrders && (\r\n \r\n )}\r\n {!closedOrders && (\r\n \r\n )}\r\n {!pendingOrders && (\r\n \r\n \r\n \r\n \r\n )}\r\n {/* {pendingOrders && (\r\n \r\n )} */}\r\n \r\n );\r\n })}\r\n \r\n
    */}\r\n {t('InstrumetInfo.Details.Instrument')}\r\n {t('InstrumetInfo.Details.Type')}\r\n \r\n {t('InstrumetInfo.Details.OpenRate')}\r\n \r\n {t('InstrumetInfo.Details.OpenRate')}\r\n \r\n {t('InstrumetInfo.Details.OpenRate')}\r\n \r\n \r\n {t('InstrumetInfo.Details.OpenTime')}\r\n {/* {oldFirst ? : } */}\r\n \r\n {t('InstrumetInfo.Details.OpenTime')}\r\n \r\n {t('InstrumetInfo.Details.CloseRate')}\r\n \r\n \r\n {t('InstrumetInfo.Details.CloseTime')}\r\n {/* {oldFirst ? : } */}\r\n \r\n {t('InstrumetInfo.Details.StopLoss')}\r\n \r\n {t('InstrumetInfo.Details.TakeProfit')}\r\n \r\n {t('InstrumetInfo.Details.PL')}\r\n {t('InstrumetInfo.Details.CopiedFrom')}{t('InstrumetInfo.Details.Expiry')}
    \r\n \r\n {item?.InstrumentName}{item && formatPendingText(item)}{item?.TradeActionType === 0 ? 'Buy' : 'Sell'}{pendingOrders ? format2Digits(item?.Price, item?.DecimalPrecision) : item?.OpenPrice}{formatDate(new Date(item?.OpenTime))}{item?.ClosePrice}{item?.CloseTime}\r\n
    {item?.StopLoss || '-'}
    \r\n
    \r\n
    {item?.TakeProfit || '-'}
    \r\n
    \r\n \r\n {item?.OriginatingTraderNickname}\r\n \r\n \r\n {(item?.Experation && item?.Experation !== '1970-01-01T00:00:00Z') ? formatDate(new Date(item?.Experation)) : '-'}\r\n
    \r\n ) : (\r\n
    {t('MarketRates.NothingFound')}
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\n// ProfilePageOpenPositions.propTypes = {};\r\n\r\nexport default ProfilePageOpenPositions;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\nimport 'frappe-charts/dist/frappe-charts.min.css';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport { CommandFactory } from '../../background/commands/CommandFactory';\r\nimport Graph from '../primitives/Graph';\r\nimport LoadSpinner from '../primitives/LoadSpinner';\r\nimport Switch from '../primitives/Switch';\r\nimport LinearProgressBarWithLabel from '../primitives/LinearProgressBarWithLabel';\r\nimport roundToPrecision from '../utilsUI/roundToPrecision';\r\nimport useWindowSize from '../utilsUI/useWindowSize';\r\n\r\nimport { FormatPercentFloat } from './ProfileTabDetails';\r\nimport ProfilePageRadioGroup from './ProfilePageRadioGroup';\r\nimport { sortColumns } from './ProfilePageOpenPositions';\r\nimport { SendEventToGoogleAnalytics } from '../../background/storeListener/googleAnalyticsListener';\r\n\r\nexport const TIMEFRAMES = {\r\n 1: '1m',\r\n 2: '3m',\r\n 3: '6m',\r\n 4: '1y'\r\n};\r\n\r\n\r\nconst PortfolioTab = ({ nickname, generalColor, activeColor }) => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [showPie, setShowPie] = useState(true);\r\n const [requestResult, setRequestResult] = useState(null);\r\n const [prevColumn, setPrevColumn] = useState({ columnName: 'AllocationPercentage', direction: false });\r\n const [sortedPositions, setSortedPositions] = useState(null);\r\n const [timeframe, setTimeframe] = useState(1);\r\n const [width, height] = useWindowSize();\r\n const [data, setData] = useState(null);\r\n const { profileCommands: { getPortfolioBreakdown } } = useSelector((state) => { return (state.account.socialv1); }, shallowEqual);\r\n const { t } = useTranslation();\r\n const requestPortfolio = async (time) => {\r\n setIsLoading(true);\r\n const userInput = { timeframe: time || timeframe, nickname };\r\n\r\n const command = CommandFactory.createCommand(getPortfolioBreakdown);\r\n\r\n try {\r\n setRequestResult(null);\r\n const res = await command.execute(userInput);\r\n\r\n \r\n if (res.isSuccessful === true) {\r\n return res.payload;\r\n }\r\n } catch (err) {\r\n // setRequestResult(err);\r\n }\r\n\r\n setIsLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n setIsLoading(true);\r\n requestPortfolio().then((portfolio) => {\r\n if (isSubscribed) {\r\n setRequestResult(portfolio);\r\n setIsLoading(false);\r\n }\r\n });\r\n return () => isSubscribed = false;\r\n }, [nickname]);\r\n\r\n useEffect(() => {\r\n const labels = [];\r\n const values = [];\r\n const pl = [];\r\n if (requestResult?.length) {\r\n requestResult.forEach((item) => {\r\n labels.push(item.InstrumentName);\r\n values.push(roundToPrecision(item.AllocationPercentage * 100, 2));\r\n pl.push(roundToPrecision(item.PLPercentage * 100, 2));\r\n });\r\n }\r\n setData({ labels, values, pl });\r\n requestResult?.length > 0 && setSortedPositions(sortColumns(requestResult, 'AllocationPercentage', 'number', false));\r\n setPrevColumn({ columnName: 'AllocationPercentage', direction: false });\r\n }, [requestResult]);\r\n\r\n\r\n useEffect(() => {\r\n SendEventToGoogleAnalytics(\"Profile:PortfolioTabOpened\");\r\n }, []);\r\n\r\n const sortAll = (e) => {\r\n const element = e.target;\r\n const sortName = element.getAttribute('data-sort-name');\r\n const sortType = element.getAttribute('data-sort-type');\r\n const classValue = element.getAttribute('data-sorted');\r\n const direction = prevColumn.columnName === sortName ? !prevColumn.direction : true;\r\n element.setAttribute('id', sortName);\r\n if (classValue) {\r\n if (classValue === 'down') {\r\n element.setAttribute('data-sorted', 'up');\r\n } else {\r\n element.setAttribute('data-sorted', 'down');\r\n }\r\n } else {\r\n element.setAttribute('data-sorted', 'up');\r\n }\r\n if (prevColumn && sortName !== prevColumn.columnName) {\r\n document.getElementById(prevColumn.columnName).setAttribute('data-sorted', '');\r\n }\r\n // Array.prototype.map.call(element.parentNode.children, el => console.log('el', el));\r\n\r\n setSortedPositions(sortColumns(requestResult, sortName, sortType, direction));\r\n\r\n if (sortName === prevColumn.columnName) {\r\n setPrevColumn((prevState) => ({ columnName: sortName, direction: !prevState.direction }));\r\n } else {\r\n setPrevColumn({ columnName: sortName, direction: true });\r\n }\r\n };\r\n\r\n // useEffect(() => {\r\n // setSortedPositions(sortColumns(requestResult, 'Percent', 'number', false));\r\n // setPrevColumn({ columnName: 'Percent', direction: false });\r\n // }, []);\r\n\r\n const setTimeframeValue = (value) => {\r\n setTimeframe(parseInt(value, 10));\r\n requestPortfolio(parseInt(value, 10)).then((portfolio) => {\r\n setRequestResult(portfolio);\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const togglePortfolioView = () => {\r\n setShowPie((prevState) => !prevState);\r\n };\r\n\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n {showPie ? (\r\n
    \r\n
    \r\n {/* {(data && data.labels.length > 0) && !isLoading && ( */}\r\n {(data && data.labels.length > 0) && (\r\n \r\n )}\r\n
    \r\n
    \r\n ) : (\r\n sortedPositions?.length && (\r\n
    \r\n \r\n \r\n \r\n \r\n {/* % of portfolio */}\r\n \r\n \r\n {/* Winning Positions */}\r\n \r\n {/* Losing Positions */}\r\n \r\n \r\n \r\n \r\n {sortedPositions.map((item) => {\r\n return (\r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n
    {t('InstrumetInfo.Details.Instrument')}\r\n {t('ProfilePage.Percent.Portfolio')}\r\n {t('Socials.PNL')}{t('ProfilePage.Winning.Positions')}{t('ProfilePage.Losing.Positions')}
    {item.InstrumentName}\r\n {roundToPrecision(item.AllocationPercentage * 100, 2)}\r\n %\r\n \r\n {roundToPrecision(item.PLPercentage * 100, 2)}{FormatPercentFloat({ value: item.PLPercentage })}{item.WinningCount}{item.LosingCount}
    \r\n
    \r\n )\r\n )}\r\n {isLoading && }\r\n
    \r\n );\r\n};\r\n\r\n// PortfolioTab.propTypes = {};\r\n\r\nexport default PortfolioTab;\r\n","import React, { useState, useEffect, Fragment } from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\nimport 'frappe-charts/dist/frappe-charts.min.css';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport { CommandFactory } from '../../background/commands/CommandFactory';\r\nimport LinearProgressBarWithLabel from '../primitives/LinearProgressBarWithLabel';\r\nimport SocialStreamItem from '../SocialStream/SocialStreamItem';\r\nimport LoadSpinner from '../primitives/LoadSpinner';\r\nimport Graph from '../primitives/Graph';\r\nimport { formatDateOnly } from '../utilsUI/formatTime';\r\nimport useWindowSize from '../utilsUI/useWindowSize';\r\n\r\nimport { TIMEFRAMES } from './PortfolioTab';\r\nimport ProfileTabDetails from './ProfileTabDetails';\r\nimport ProfilePageRadioGroup from './ProfilePageRadioGroup';\r\nimport { SendEventToGoogleAnalytics } from '../../background/storeListener/googleAnalyticsListener';\r\n\r\nimport './ProfilePage.css';\r\n\r\n\r\nconst ProfileTab = ({ socialFeed, risklevel, userName, joinDateValue, generalColor }) => {\r\n const { t } = useTranslation();\r\n const [userDetailedProfile, setDetailedUserProfile] = useState(null);\r\n const [timeframe, setTimeframe] = useState(4);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [labels, setLabels] = useState([]);\r\n const [values, setValues] = useState([]);\r\n const [width, height] = useWindowSize();\r\n const [error, setError] = useState(false);\r\n const { profileCommands: { getGetPlAndStats } } = useSelector((state) => { return (state.account.socialv1); }, shallowEqual);\r\n\r\n const getDetailedProfileData = async (nickname, period) => { \r\n const userInput = { nickname, timeframe: period };\r\n const command = CommandFactory.createCommand(getGetPlAndStats);\r\n try {\r\n const res = await command.execute(userInput);\r\n\r\n if (res.ok === false) {\r\n setError({ result: res.statusText });\r\n }\r\n if (res.isSuccessful === true) {\r\n return res.payload;\r\n } else if (res.isSuccessful === false) {\r\n setError(res);\r\n }\r\n } catch (err) {\r\n setError(err);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n let isSubscribed;\r\n isSubscribed = true;\r\n setIsLoading(true);\r\n // eslint-disable-next-line no-unused-expressions\r\n userName && getDetailedProfileData(userName, timeframe).then((info) => {\r\n if (isSubscribed) {\r\n setDetailedUserProfile(info);\r\n setIsLoading(false);\r\n }\r\n });\r\n\r\n return () => {\r\n return isSubscribed = false;\r\n }\r\n }, [userName]);\r\n\r\n useEffect(() => {\r\n if (userDetailedProfile) {\r\n getDetailedProfileData(userName, timeframe).then((info) => {\r\n setDetailedUserProfile(info);\r\n });\r\n }\r\n }, [timeframe]);\r\n\r\n useEffect(() => {\r\n if (userDetailedProfile) {\r\n const pnl = userDetailedProfile?.DailyPLs;\r\n const localLabels = [];\r\n const localValues = [];\r\n let total = 0;\r\n if (pnl?.length) {\r\n pnl.forEach((item) => {\r\n localLabels.push(`${formatDateOnly(new Date(item.Date))} / ${item.NormalizedPL > 0 ? '+' : ''}${((Math.round(item.NormalizedPL * 100000) / 100000) * 100).toFixed(2)}%`);\r\n // labels.push(`${formatDateOnly(new Date(item.Date))} / ${item.NormalizedPL > 0 ? '+' : ''}${((Math.round(item.NormalizedPL * 100000) / 100000) * 100).toFixed(2)}%`);\r\n total += (Math.round(item.NormalizedPL * 100000) / 100000);\r\n localValues.push(total);\r\n // values.push(total);\r\n });\r\n }\r\n setValues(localValues);\r\n setLabels(localLabels);\r\n // setIsLoading(false);\r\n }\r\n }, [userDetailedProfile, timeframe]);\r\n\r\n useEffect(() => {\r\n SendEventToGoogleAnalytics(\"Profile:ProfileTabOpened\");\r\n }, []);\r\n\r\n const setTimeframeValue = (value) => {\r\n setTimeframe(parseInt(value, 10));\r\n };\r\n\r\n\r\n return (\r\n
    \r\n
    \r\n {!isLoading ? (\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {(values && values.length > 0) && (\r\n `P/L ${Math.round(d * 100000) / 1000}`\r\n }}\r\n lineOptions={{\r\n hideDots: 1,\r\n regionFill: 1,\r\n areaFill: 1\r\n }}\r\n resetPadding\r\n />\r\n )}\r\n
    \r\n {userDetailedProfile && }\r\n {/*
    {t('Social.Profile.RiskLevel')}
    \r\n */}\r\n
    \r\n {/*
    \r\n {socialFeed.map((item) => )}\r\n
    */}\r\n
    \r\n ) : (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n {socialFeed.map((item) => )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\n// ProfileTab.propTypes = {};\r\n\r\nexport default ProfileTab;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport { CommandFactory } from '../../background/commands/CommandFactory';\r\nimport roundToPrecision from '../utilsUI/roundToPrecision';\r\nimport CountryFlagByCode from '../Flag/CountryFlagByCode';\r\nimport Button from '../primitives/Button';\r\nimport LoadSpinner from '../primitives/LoadSpinner';\r\n\r\nimport { PROFICIENCY_LEVEL } from './ProfilePage';\r\nimport { SendEventToGoogleAnalytics } from '../../background/storeListener/googleAnalyticsListener';\r\n\r\nexport const COMMUNITY_TABS = {\r\n 'WATCHERS': {index:'1',translation:'Socail.Profile.Watchers'},\r\n 'WATCHING': {index:'0',translation:'Socail.Profile.Watching'},\r\n 'COPIERS': {index:'3',translation:'Socail.Profile.Copiers'},\r\n 'COPYING': {index:'2',translation:'Social.CopyingText'}\r\n};\r\n\r\n\r\nconst CommunityTab = ({ nickname, getProfileData, generalColor }) => {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [kind, setKind] = useState(1);\r\n const [requestResult, setRequestResult] = useState(null);\r\n const [userCount, setUserCount] = useState(null);\r\n const { t } = useTranslation();\r\n const { profileCommands: { getFriends } } = useSelector((state) => { return (state.account.socialv1); }, shallowEqual);\r\n const { MainColor: { ActiveText, InactiveText } } = useSelector((state) => (state.brand.theme), shallowEqual);\r\n const requestFriends = async (kindValue) => {\r\n setIsLoading(true);\r\n const userInput = { nickname, kind: kindValue, length: 100 };\r\n\r\n const command = CommandFactory.createCommand(getFriends);\r\n\r\n try {\r\n setRequestResult(null);\r\n const res = await command.execute(userInput);\r\n\r\n if (res.ok === false) {\r\n // setRequestResult({ result: res.statusText });\r\n }\r\n if (res.isSuccessful === true) {\r\n return res.payload;\r\n } else if (res.isSuccessful === false) {\r\n // setRequestResult(res);\r\n }\r\n } catch (err) {\r\n // setRequestResult(err);\r\n }\r\n\r\n // setIsLoading(false);\r\n\r\n };\r\n\r\n useEffect(() => {\r\n SendEventToGoogleAnalytics(\"Profile:CommunityTabOpened\");\r\n let isSubscribed = true;\r\n setIsLoading(true);\r\n requestFriends(1).then((info) => {\r\n if (isSubscribed) {\r\n setRequestResult(info);\r\n if (!userCount) {\r\n const quantity = {\r\n '0': info?.TraderFollowingDetails?.TraderIsFollowing,\r\n '1': info?.TraderFollowingDetails?.FollowTrader,\r\n '3': info?.TraderFollowingDetails?.CopyTrader,\r\n '2': info?.TraderFollowingDetails?.TraderIsCopying\r\n };\r\n setUserCount(quantity)\r\n }\r\n setIsLoading(false);\r\n }\r\n });\r\n return () => isSubscribed = false;\r\n }, []);\r\n\r\n const setKindValue = (e) => {\r\n e.stopPropagation();\r\n const value = e.target.getAttribute('data-name');\r\n setKind(parseInt(value, 10));\r\n requestFriends(parseInt(value, 10)).then((info) => {\r\n setRequestResult(info);\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n // const userCount = {\r\n // '0': requestResult?.TraderFollowingDetails?.TraderIsFollowing,\r\n // '1': requestResult?.TraderFollowingDetails?.FollowTrader,\r\n // '3': requestResult?.TraderFollowingDetails?.CopyTrader,\r\n // '2': requestResult?.TraderFollowingDetails?.TraderIsCopying\r\n // };\r\n\r\n const RadioButtonsGroup = Object.entries(COMMUNITY_TABS).map(([key, value]) => {\r\n const { index, translation } = value;\r\n const isActive = parseInt(index, 10) === kind;\r\n return (\r\n \r\n );\r\n });\r\n\r\n const handleItemSelect = (e) => {\r\n const userName = e.target.closest('.profile-page__item').getAttribute('data');\r\n const avatar = e.target.closest('.profile-page__item').getAttribute('data-avatar');\r\n const copiers = e.target.closest('.profile-page__item').getAttribute('data-copiers');\r\n userName && getProfileData({ nickname: userName, avatar, copiers });\r\n SendEventToGoogleAnalytics(\"Profile:Community:ProfileClick\", {nickname: userName});\r\n // eslint-disable-next-line no-unused-expressions\r\n // userName && getProfileData(userName);\r\n };\r\n\r\n\r\n return (\r\n
    \r\n {/* {!isLoading && ( */}\r\n
    \r\n {RadioButtonsGroup}\r\n
    \r\n {/* )} */}\r\n {requestResult && !isLoading && (\r\n
    \r\n \r\n \r\n \r\n \r\n {/* Master`s P/L */}\r\n \r\n \r\n \r\n \r\n {requestResult?.UserFriends?.map((item) => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n
    {t('Socials.Name')}{t('ProfilePage.Masters.PNL')}
    \r\n
    \r\n
    \r\n
    \r\n {item?.Country && CountryFlagByCode(item?.Country)}\r\n
    \r\n
    \r\n
    \r\n {item?.Nickname}\r\n
    \r\n
    \r\n = 0 ? 'green' : 'red'}>\r\n {roundToPrecision(item.CumulativePnl * 100, 2)}\r\n %\r\n \r\n
    \r\n
    \r\n )}\r\n {isLoading && }\r\n
    \r\n );\r\n};\r\n\r\n// CommunityTab.propTypes = {};\r\n\r\nexport default CommunityTab;\r\n","import React, { useState, useEffect, Fragment } from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Accordion from '@material-ui/core/Accordion';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport { CommandFactory } from '../../background/commands/CommandFactory';\r\nimport LoadSpinner from '../primitives/LoadSpinner';\r\nimport Button from '../primitives/Button';\r\nimport ProfilePageOpenPositions from './ProfilePageOpenPositions';\r\nimport { SendEventToGoogleAnalytics } from '../../background/storeListener/googleAnalyticsListener';\r\n\r\nimport { TIMEFRAMES } from './PortfolioTab';\r\n\r\n\r\nconst PositionsTab = ({ nickname, setSelectedTrader, generalColor }) => {\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [requestResult, setRequestResult] = useState(null);\r\n const [timeframe, setTimeframe] = useState(1);\r\n const [expanded, setExpanded] = React.useState('Open');\r\n const { profileCommands: { getPositions } } = useSelector((state) => { return (state.account.socialv1); }, shallowEqual);\r\n const { t } = useTranslation();\r\n const requestPositions = async (time) => {\r\n setIsLoading(true);\r\n const userInput = { nickname, timeframe: time };\r\n\r\n const command = CommandFactory.createCommand(getPositions);\r\n\r\n try {\r\n setRequestResult(null);\r\n const res = await command.execute(userInput);\r\n\r\n if (res.ok === false) {\r\n setRequestResult({ result: res.statusText });\r\n }\r\n if (res.isSuccessful === true) {\r\n setRequestResult(res.payload);\r\n } else if (res.isSuccessful === false) {\r\n setRequestResult(res);\r\n }\r\n } catch (err) {\r\n setRequestResult(err);\r\n }\r\n\r\n setIsLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n requestPositions(1);\r\n SendEventToGoogleAnalytics(\"Profile:PositionsTabOpened\");\r\n }, []);\r\n\r\n const setTimeframeValue = (e) => {\r\n const value = e.target.getAttribute('data-name');\r\n setTimeframe(parseInt(value, 10));\r\n requestPositions(parseInt(value, 10));\r\n };\r\n\r\n const handleChange = (panel) => (event, newExpanded) => {\r\n setExpanded(newExpanded ? panel : false);\r\n SendEventToGoogleAnalytics(`Profile:Positions:${panel}Click`);\r\n };\r\n\r\n return (\r\n
    \r\n {/*
    \r\n {RadioButtonsGroup}\r\n
    */}\r\n {/* {requestResult && !isLoading && ( */}\r\n \r\n \r\n }>\r\n

    {t('Positions.Open.Title')}

    \r\n
    \r\n \r\n {isLoading ? (\r\n \r\n {isLoading && }\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
    \r\n \r\n }>\r\n

    {t('Positions.Pending.Title')}

    \r\n
    \r\n \r\n {isLoading ? (\r\n \r\n {isLoading && }\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
    \r\n \r\n }>\r\n

    {t('Positions.Closed.Title')}

    \r\n
    \r\n \r\n {isLoading ? (\r\n \r\n {isLoading && }\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
    \r\n
    \r\n {/* )} */}\r\n {/* {isLoading && } */}\r\n
    \r\n );\r\n};\r\n\r\n// PositionsTab.propTypes = {};\r\n\r\nexport default PositionsTab;\r\n","const countDecimals = (value) => {\r\n if ((value % 1) !== 0) {\r\n return value.toString().split('.')[1]?.length;\r\n }\r\n if (value.toString().indexOf('.') > 0) {\r\n return 1;\r\n }\r\n return 0;\r\n};\r\n\r\nexport default countDecimals;\r\n","/* eslint-disable complexity */\r\n/* eslint-disable jsx-a11y/no-autofocus */\r\n/* eslint-disable jsx-a11y/control-has-associated-label */\r\nimport React, { useRef } from 'react';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport RemoveIcon from '@material-ui/icons/Remove';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport { roundNumberPipDigit } from '../utilsUI/formatWSTick';\r\nimport countDecimals from '../utilsUI/countDecimals';\r\nimport MinusIcon from '../icons/MinusIcon';\r\nimport PlusIcon from '../icons/PlusIcon';\r\n\r\nimport './InputStepper.css';\r\n\r\nconst InputStepper = ({\r\n min,\r\n max,\r\n selectedUnits,\r\n setValue,\r\n stepValue,\r\n shouldFocus,\r\n pipDigit = 1,\r\n showError,\r\n errorMessage,\r\n checkDivider,\r\n roundMax,\r\n isError,\r\n onFocusAction,\r\n id = null,\r\n onKeyUp,\r\n inputDescription\r\n}) => {\r\n const inputEl = useRef(null);\r\n\r\n const incrementValue = () => {\r\n const newValue =\r\n typeof selectedUnits === 'string'\r\n ? Number(selectedUnits.replace(/[^0-9\\.]/g, '')) + stepValue\r\n : selectedUnits + stepValue;\r\n if (newValue > max) return;\r\n\r\n setValue(newValue.toFixed(pipDigit));\r\n };\r\n\r\n const decrementValue = () => {\r\n const newValue =\r\n typeof selectedUnits === 'string'\r\n ? Number(selectedUnits.replace(/[^0-9\\.]/g, '')) - stepValue\r\n : selectedUnits - stepValue;\r\n if (newValue < min || newValue <= 0) return;\r\n\r\n setValue(newValue.toFixed(pipDigit));\r\n };\r\n\r\n const handleInputChange = (e) => {\r\n // eslint-disable-next-line no-useless-escape\r\n const inputValue = e.target.value.replace(/[^0-9\\.]/g, '');\r\n setValue(inputValue);\r\n if (showError) {\r\n showError('');\r\n }\r\n };\r\n\r\n const onLeaveInput = () => {\r\n let selectedUnitsNumber = selectedUnits;\r\n if (typeof selectedUnits === 'string') {\r\n selectedUnitsNumber = selectedUnits.replace(/[^0-9\\.]/g, '');\r\n selectedUnitsNumber = roundNumberPipDigit(\r\n selectedUnitsNumber,\r\n countDecimals(selectedUnitsNumber)\r\n );\r\n setValue(selectedUnitsNumber);\r\n }\r\n if (showError) {\r\n if (checkDivider) {\r\n if (typeof selectedUnits === 'string') {\r\n selectedUnitsNumber = selectedUnits?.replace(/[^0-9\\.]/g, '');\r\n }\r\n if (selectedUnitsNumber < min\r\n // || (selectedUnitsNumber * 10 ** pipDigit) % (stepValue * 10 ** pipDigit) !== 0\r\n || selectedUnitsNumber > max\r\n ) {\r\n showError(errorMessage);\r\n } else {\r\n showError('');\r\n }\r\n } else if (selectedUnitsNumber === '0' || selectedUnitsNumber === '') {\r\n showError(errorMessage);\r\n } else {\r\n showError('');\r\n }\r\n }\r\n if (roundMax) {\r\n if (selectedUnitsNumber > max) {\r\n setValue(max.toFixed(pipDigit));\r\n }\r\n }\r\n // eslint-disable-next-line no-unused-expressions\r\n // onFocusAction && onFocusAction();\r\n document.getSelection().removeAllRanges();\r\n };\r\n\r\n const handleOnFocus = () => {\r\n if (inputEl.current) {\r\n inputEl.current.select();\r\n // eslint-disable-next-line no-unused-expressions\r\n onFocusAction && onFocusAction();\r\n }\r\n };\r\n\r\n const inputClass = isError\r\n ? 'input-stepper input-stepper--error'\r\n : 'input-stepper';\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n {inputDescription && (\r\n
    {inputDescription}
    \r\n )}\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\n// InputStepper.defaultProps = {\r\n// min: 0,\r\n// max: 1000000,\r\n// stepValue: 1\r\n// };\r\n\r\n// InputStepper.propTypes = {\r\n// min: PropTypes.number,\r\n// max: PropTypes.number,\r\n// selectedUnits: PropTypes.number.isRequired,\r\n// setValue: PropTypes.func.isRequired,\r\n// stepValue: PropTypes.number\r\n// };\r\n\r\nexport default InputStepper;\r\n","import { CommandFactory } from '../../background/commands/CommandFactory';\r\nimport { SendEventToGoogleAnalytics } from '../../background/storeListener/googleAnalyticsListener';\r\n// import { getStore } from '../../storeContainer';\r\n\r\nconst depositButtonClickHandler = (depositURL, getDepositURLCommand) => {\r\n // console.log('store', getStore().getState()?.account?.accountInfo?.featuresData?.deposit);\r\n const onClick = async () => {\r\n SendEventToGoogleAnalytics('DepositClick');\r\n if (!CommandFactory.isCommand(getDepositURLCommand)) {\r\n if (depositURL) {\r\n window.open(depositURL, '_blank').focus();\r\n }\r\n } else {\r\n try {\r\n const tab = window.open();\r\n if (tab) {\r\n const response = await CommandFactory.createCommand(getDepositURLCommand).execute();\r\n if (!response.isSuccessful) {\r\n if (depositURL) {\r\n tab.location.href = depositURL;\r\n } else {\r\n tab.close();\r\n }\r\n } else {\r\n tab.location.href = response.depositUrl;\r\n }\r\n }\r\n } catch (exception) {\r\n console.error(exception);\r\n }\r\n }\r\n };\r\n onClick();\r\n};\r\n\r\nexport default depositButtonClickHandler;\r\n","export const normalizedEditNumber = function(editValue,originalValue)\r\n{\r\n let value =editValue ?? 0;\r\n if (typeof value === 'string')\r\n {\r\n if (editValue == ''){\r\n value = 0;\r\n }\r\n else\r\n {\r\n value = parseFloat(editValue.replace(\",\", \"\"));\r\n \r\n if (isNaN(value)){\r\n value = originalValue;\r\n }\r\n }\r\n } \r\n\r\n return value;\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Input from '@material-ui/core/Input';\r\nimport InputAdornment from '@material-ui/core/InputAdornment';\r\nimport Icon from '@material-ui/core/Icon';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport CheckBox from '../primitives/CheckBox';\r\nimport OuterClick from '../primitives/OuterClick';\r\nimport Button from '../primitives/Button';\r\n\r\n\r\nconst CurrencySelectExpanded = ({ portfolio, instruments, setInstruments, handleClick, systemColor }) => {\r\n const [currencies, setCurrencies] = useState(null);\r\n const [initialCurrencies, setInitialCurrencies] = useState(false);\r\n const [searchValue, setSearchValue] = useState('');\r\n const [all, setAll] = useState(true);\r\n const { t } = useTranslation();\r\n\r\n useEffect(() => {\r\n const result = {};\r\n if (instruments?.length) {\r\n if (portfolio?.TopInstruments?.length) {\r\n portfolio.TopInstruments.forEach((item) => {\r\n result[item?.Symbol] = instruments.includes(item?.Symbol);\r\n });\r\n } else if (portfolio?.AllowedInstruments?.length) {\r\n portfolio.AllowedInstruments.forEach((item) => {\r\n result[item?.Symbol] = instruments.includes(item?.Symbol);\r\n });\r\n }\r\n } else if (portfolio?.TopInstruments?.length) {\r\n portfolio.TopInstruments.forEach((item) => {\r\n result[item?.Symbol] = true;\r\n });\r\n } else if (portfolio?.AllowedInstruments?.length) {\r\n portfolio.AllowedInstruments.forEach((item) => {\r\n result[item?.Symbol] = true;\r\n });\r\n }\r\n setCurrencies(result);\r\n setInitialCurrencies(result);\r\n }, [instruments]);\r\n\r\n useEffect(() => {\r\n const searchResult = {};\r\n\r\n if (searchValue) {\r\n Object.entries(currencies).forEach(([key, value]) => {\r\n if (key.toLowerCase().includes(searchValue.toLowerCase())) {\r\n searchResult[key] = value;\r\n }\r\n });\r\n setCurrencies(searchResult);\r\n } else {\r\n // eslint-disable-next-line no-unused-expressions\r\n initialCurrencies && setCurrencies(initialCurrencies);\r\n }\r\n }, [searchValue]);\r\n\r\n const selectCurrency = (e) => {\r\n setCurrencies((prevState) => ({ ...prevState, [e.target.name]: e.target.value }));\r\n };\r\n\r\n const toggleAll = () => {\r\n const changedCurrencies = {};\r\n Object.keys(currencies).forEach((key) => {\r\n if (!all) {\r\n changedCurrencies[key] = true;\r\n } else {\r\n changedCurrencies[key] = false;\r\n }\r\n });\r\n setCurrencies(changedCurrencies);\r\n };\r\n\r\n useEffect(() => {\r\n if (currencies) {\r\n const allTrue = Object.values(currencies).every((item) => item);\r\n setAll(allTrue);\r\n }\r\n }, [currencies]);\r\n\r\n const handleCurrencies = () => {\r\n const arrayToUse = [];\r\n\r\n Object.entries(currencies).forEach(([key, value]) => { if (value) { arrayToUse.push(key); } });\r\n if (!all) {\r\n setInstruments(arrayToUse);\r\n } else {\r\n setInstruments([]);\r\n }\r\n handleClick();\r\n };\r\n\r\n const handleSearch = (e) => {\r\n setSearchValue(e.target.value);\r\n };\r\n\r\n const resetSearch = () => {\r\n setSearchValue('');\r\n };\r\n\r\n const icon = searchValue ? (\r\n \r\n \r\n \r\n ) : (\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 {currencies && Object.entries(currencies).map(([key, value]) => {\r\n return (\r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\n// CurrencySelectExpanded.propTypes = {};\r\n\r\nexport default OuterClick(CurrencySelectExpanded);\r\n","import React from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\nimport PubsubSubscription from '../../background/repositories/PubsubSubscription';\r\nimport { useTranslation } from 'react-i18next';\r\nimport {normalizedEditNumber} from '../OpenPositions/updateNumericHelper'\r\n\r\nconst InvalidAmountCopyComp = ({userData,radio}) => {\r\n const { t } = useTranslation();\r\n const pnlTick = PubsubSubscription.subscribeObj({ key: 'MOVINGPNL', repId: 'ACCOUNT_PNL' });\r\n const equityStepperAmount = normalizedEditNumber(userData?.equity,parseFloat(userData?.equity));\r\n const isInvalidEquityAmount = equityStepperAmount > pnlTick.equity && !radio;\r\n if (isInvalidEquityAmount)\r\n {\r\n return (
    \r\n {t('Social.CopyTab.Errors.InvalidAmountMaxEquity', { equity: Math.abs(pnlTick.equity - parseFloat(equityStepperAmount)) })}\r\n
    );\r\n }\r\n return null;\r\n}\r\n\r\nconst OverCopyComp = ({userData,radio,copyData}) => {\r\n const { balance } = useSelector((state) => (state.account.financial), shallowEqual);\r\n const { t } = useTranslation();\r\n const pnlTick = PubsubSubscription.subscribeObj({ key: 'MOVINGPNL', repId: 'ACCOUNT_PNL' });\r\n const equityStepperAmount = normalizedEditNumber(userData?.equity,parseFloat(userData?.equity));\r\n const isOverCopy = equityStepperAmount < pnlTick.equity && (((userData?.copyType === 1 || userData?.copyType === 2) && equityStepperAmount + copyData?.TotalAllocationMargin - userData?.amount > balance)\r\n || (!userData?.copyType === 1 && !userData?.copyType === 2 && equityStepperAmount + copyData?.TotalAllocationMargin > equityStepperAmount > balance)) && !radio;\r\n\r\n if (isOverCopy)\r\n {\r\n return (
    \r\n {t('Social.CopyTab.Errors.InvalidAmountOverCopy')}\r\n
    );\r\n }\r\n return null;\r\n}\r\n\r\nexport const InvalidAmountCopy = InvalidAmountCopyComp;\r\nexport const OverCopy = OverCopyComp;","import React, { useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport Button from '../primitives/Button';\r\nimport CheckBox from '../primitives/CheckBox';\r\nimport { SendEventToGoogleAnalytics } from '../../background/storeListener/googleAnalyticsListener';\r\n\r\n\r\nconst CopyDisclaimer = ({\r\n handleClose, copyColor, handleAddCopy, masterNickname\r\n}) => {\r\n const [isDisclaimerCkecked, setIsDisclaimerCkecked] = useState(false);\r\n const { t } = useTranslation();\r\n\r\n const toggleCheckBox = () => {\r\n setIsDisclaimerCkecked((prevState) => !prevState);\r\n };\r\n\r\n const confirmAndCopy = () => {\r\n handleClose();\r\n handleAddCopy(false);\r\n SendEventToGoogleAnalytics('Profile:Copy:LFSDisclaimer:CopyClick', { masterNickname });\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n

    \r\n Warning\r\n : The Strategy you have selected is NOT in line with your Investment and Risk Profile and LFS does not recommend this Strategy/Trader for you.\r\n We recommend you consider a strategy in your Investment and Risk Profile or below.\"\r\n

    \r\n

    \r\n Should you wish to proceed despite this warning please confirm that you are aware of all the risks associated with trading these markets,\r\n and have sought advice from an independent financial advisor for any questions or doubts and understand the Risks involved by checking this box.\r\n

    \r\n \r\n

    \r\n We would like you to note that past performance of all Trading strategies is not a guarantee, nor indicative of future returns.\r\n There is a high level of risk involved with trading forex, cryptocurrencies, commodities, indices and other CFDs.\r\n Funds placed under management should be risk capital funds that if lost will not significantly affect one’s personal financial well-being.\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\n// CopyDisclaimer.propTypes = {};\r\n\r\nexport default CopyDisclaimer;\r\n","import React, { useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport Button from '../primitives/Button';\r\nimport { SendEventToGoogleAnalytics } from '../../background/storeListener/googleAnalyticsListener';\r\n\r\nexport default ({ handleClose, masterNickname }) => {\r\n const { t } = useTranslation();\r\n\r\n SendEventToGoogleAnalytics('Profile:Copy:LFSDisclaimer:Block', { masterNickname });\r\n\r\n return (\r\n
    \r\n
    \r\n

    \r\n Warning: \r\n The Strategy you have selected is NOT in line with your Investment and Risk Profile and LFS does not recommend this Strategy/Trader for you.\r\n We recommend you consider a strategy in your Investment and Risk Profile or below.\r\n

    \r\n

    \r\n We would like you to note that past performance of all Trading strategies is not a guarantee, nor indicative of future returns.\r\n There is a high level of risk involved with trading forex, cryptocurrencies, commodities, indices and other CFDs.\r\n Funds placed under management should be risk capital funds that if lost will not significantly affect one’s personal financial well-being.\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n","/* eslint-disable complexity */\r\nimport React, { useState, useEffect, Fragment } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\nimport Radio from '@material-ui/core/Radio';\r\n// import PropTypes from 'prop-types';\r\nimport PubsubSubscription from '../../background/repositories/PubsubSubscription';\r\n\r\nimport { CommandFactory } from '../../background/commands/CommandFactory';\r\nimport InputStepper from '../primitives/InputStepper';\r\nimport Button from '../primitives/Button';\r\nimport LoadSpinner from '../primitives/LoadSpinner';\r\nimport ModalWrapper from '../primitives/ModalWrapper';\r\nimport depositButtonClickHandler from '../utilsUI/depositButtonClickHandler';\r\nimport { SendEventToGoogleAnalytics } from '../../background/storeListener/googleAnalyticsListener';\r\nimport { QUESTIONER_MODE_EXTENRAL } from '../../background/socialv1/socialv1Reducer';\r\nimport { normalizedEditNumber } from '../OpenPositions/updateNumericHelper';\r\n\r\nimport CurrencySelectExpanded from './CurrencySelectExpanded';\r\nimport { InvalidAmountCopy, OverCopy } from './InvalidAmountCopy';\r\nimport CopyDisclaimer from './CopyDisclaimer';\r\nimport CopyBlockDisclaimer from './CopyBlockDisclaimer';\r\n\r\n\r\nconst CopyTab = ({\r\n nickname,\r\n yearPnl,\r\n user,\r\n alreadyCopied,\r\n setSelectedTrader,\r\n getProfileData,\r\n handlePersistCopyTab,\r\n handleUncopy,\r\n generalColor,\r\n copyColor,\r\n generalButtonColor,\r\n systemColor,\r\n setQuestionnaire,\r\n setJoinPopup\r\n}) => {\r\n const { t } = useTranslation();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isEquityValidForCopy, setIsEquityValidForCopy] = useState(true);\r\n const [showDisclaimer, setShowDisclaimer] = useState(false);\r\n const [showBlockDisclaimer, setShowBlockDisclaimer] = useState(false);\r\n const [requestResult, setRequestResult] = useState(null);\r\n const [copyData, setCopyData] = useState(null);\r\n const [userData, setUserData] = useState({\r\n amount: null,\r\n equity: '',\r\n lotAmount: '',\r\n instruments: [],\r\n copyType: 0\r\n });\r\n const [radio, setRadio] = useState(false);\r\n const [showResponseInfo, setShowResponseInfo] = useState(false);\r\n const [currencySelect, setCurrencySelect] = useState(false);\r\n const {\r\n copyRelationsCommands: {\r\n addFollower,\r\n updateFollower\r\n },\r\n profileCommands: { getDataForCopy },\r\n socialAccount: {\r\n questionerMode,\r\n externalRiskScore,\r\n queryRiskScoreCMD\r\n },\r\n lfsRegulationsDetails,\r\n hideCopyByFixedLot,\r\n userDetails\r\n } = useSelector((state) => { return (state.account.socialv1); }, shallowEqual);\r\n const { currency: { symbol } } = useSelector((state) => (state.account.accountInfo), shallowEqual);\r\n const { balance } = useSelector((state) => (state.account.financial), shallowEqual);\r\n const { MainColor: { ActiveText, InactiveText } } = useSelector((state) => (state.brand.theme), shallowEqual);\r\n const { deposit: { depositUrl, getDepositUrlCommand } } = useSelector((state) => { return (state.account.accountInfo.featuresData); }, shallowEqual);\r\n\r\n const handleCloseCopyTab = () => {\r\n setSelectedTrader({ nickname, avatar: user?.UserDetails?.Avatar });\r\n handlePersistCopyTab(false);\r\n };\r\n\r\n const toggleDisclaimer = () => {\r\n setShowDisclaimer((prevState) => !prevState);\r\n };\r\n\r\n const getCopyData = async () => {\r\n setIsLoading(true);\r\n const userInput = { masterNickname: nickname || user?.UserDetails?.Nickname };\r\n const command = CommandFactory.createCommand(getDataForCopy);\r\n\r\n try {\r\n // setRequestResult(null);\r\n const res = await command.execute(userInput);\r\n\r\n if (res.ok === false) {\r\n setCopyData({ result: res.statusText });\r\n }\r\n if (res.isSuccessful === true) {\r\n setCopyData(res.payload);\r\n } else if (res.isSuccessful === false) {\r\n setCopyData(res);\r\n }\r\n } catch (err) {\r\n setCopyData(err);\r\n }\r\n\r\n // setIsLoading(false);\r\n };\r\n\r\n // Calculate isEquityValidForCopy\r\n useEffect(() => {\r\n let isSet = false;\r\n const subscription = PubsubSubscription.subscribeObjNative({ key: 'MOVINGPNL', repId: 'ACCOUNT_PNL' }, (pnl) => {\r\n if (!isSet) {\r\n const equityStepperAmount = normalizedEditNumber(userData?.equity, parseFloat(userData?.equity));\r\n const isInvalidEquityAmount = equityStepperAmount > pnl.equity && !radio;\r\n const isOverCopy = equityStepperAmount < pnl.equity && (((userData?.copyType === 1 || userData?.copyType === 2) && equityStepperAmount + copyData?.TotalAllocationMargin - userData?.amount > balance)\r\n || (!userData?.copyType === 1 && !userData?.copyType === 2 && equityStepperAmount + copyData?.TotalAllocationMargin > equityStepperAmount > balance)) && !radio;\r\n\r\n if (isEquityValidForCopy) {\r\n if (isInvalidEquityAmount || isOverCopy) {\r\n setIsEquityValidForCopy(false);\r\n isSet = true;\r\n }\r\n } else if (!isInvalidEquityAmount && !isOverCopy) {\r\n setIsEquityValidForCopy(true);\r\n isSet = true;\r\n }\r\n }\r\n });\r\n\r\n // useEffect Cleanup\r\n return () => {\r\n subscription.dispose();\r\n };\r\n }, [user, isEquityValidForCopy, radio, balance, userData?.equity, userData?.copyType, userData?.amount, copyData, copyData?.TotalAllocationMargin]);\r\n\r\n useEffect(() => {\r\n const eq = user?.CopyType === 2 ? user?.Amount : user?.DefaultEquityAllocationAmount;\r\n const lot = user?.CopyType === 1 ? user?.Amount : user?.DefaultCopyByFixedLotAmount;\r\n setUserData({\r\n amount: user?.Amount,\r\n equity: eq,\r\n lotAmount: lot,\r\n instruments: user?.Instruments || [],\r\n copyType: user?.CopyType\r\n });\r\n getCopyData().then(() => setIsLoading(false));\r\n if (user?.CopyType === 1) {\r\n setRadio(true);\r\n }\r\n }, [user]);\r\n\r\n useEffect(() => {\r\n SendEventToGoogleAnalytics('Profile:CopyTabOpened');\r\n }, []);\r\n\r\n const handleAddFollower = async (remove = false) => {\r\n setIsLoading(true);\r\n const userInput = {\r\n masterNickname: nickname,\r\n amount: radio ? normalizedEditNumber(userData?.lotAmount, Number(userData?.lotAmount)) : normalizedEditNumber(userData?.equity, Number(userData?.equity)),\r\n copyType: radio ? 1 : 2,\r\n copiedSourceType: 0,\r\n instruments: userData?.instruments\r\n };\r\n\r\n // if (alreadyCopied && remove) {\r\n // userInput = { guruNickname: nickname, amount: 1, copyType: 4 };\r\n // commandObj = {\r\n // ...updateFollower,\r\n // userInput\r\n // };\r\n // }\r\n\r\n const command = CommandFactory.createCommand(addFollower);\r\n\r\n try {\r\n setRequestResult(null);\r\n const res = await command.execute(userInput);\r\n\r\n if (res.ok === false) {\r\n setRequestResult({ result: res.statusText });\r\n }\r\n if (res.isSuccessful === true) {\r\n setRequestResult(res.payload);\r\n handlePersistCopyTab(true);\r\n if (remove) {\r\n handleCloseCopyTab();\r\n } else {\r\n setShowResponseInfo(true);\r\n }\r\n getProfileData(nickname);\r\n } else if (res.isSuccessful === false) {\r\n setRequestResult(res);\r\n setIsLoading(false);\r\n }\r\n } catch (err) {\r\n setRequestResult(err);\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n const handleValue = (value) => {\r\n setUserData((prevState) => ({\r\n ...prevState, equity: value\r\n }));\r\n };\r\n\r\n const handleLotValue = (value) => {\r\n setUserData((prevState) => ({\r\n ...prevState, lotAmount: value\r\n }));\r\n };\r\n\r\n const handleSetInstruments = (value) => {\r\n setUserData((prevState) => ({\r\n ...prevState, instruments: value\r\n }));\r\n };\r\n\r\n const toggleRadio = () => {\r\n setRadio((prevState) => !prevState);\r\n };\r\n\r\n const canCopy = (riskLevel,maxDrawDown) =>\r\n {\r\n if (maxDrawDown <=0 || maxDrawDown === undefined || maxDrawDown === null)\r\n {\r\n return false;\r\n }\r\n\r\n let masterScore = 0;\r\n if (maxDrawDown * 100 > 50)\r\n {\r\n masterScore = 2;\r\n }\r\n else if (maxDrawDown * 100 > 25)\r\n {\r\n masterScore = 1;\r\n }\r\n \r\n if (riskLevel <= 0)\r\n {\r\n return false;\r\n }\r\n\r\n if (riskLevel >= 1 && riskLevel <25)\r\n {\r\n return masterScore === 0;\r\n }\r\n else if (riskLevel >= 25 && riskLevel <75)\r\n {\r\n return masterScore === 0 || masterScore === 1;\r\n }\r\n else if (riskLevel >= 75)\r\n {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n \r\n const externalQuestionerMode = (riskLevel) => {\r\n setIsLoading(false);\r\n if (yearPnl?.UserMeasures?.MaxDrawDown) {\r\n if (canCopy(riskLevel,yearPnl?.UserMeasures?.MaxDrawDown)) {\r\n handleAddFollower(false);\r\n } else {\r\n setShowBlockDisclaimer(true);\r\n }\r\n } else {\r\n setShowBlockDisclaimer(true);\r\n }\r\n };\r\n\r\n const handleAddCopy = () => {\r\n SendEventToGoogleAnalytics(alreadyCopied ? 'Profile:Copy:EditCopyClick' : 'Profile:Copy:CopyClick', { masterNickname: nickname });\r\n if (!userDetails.isEnabled) {\r\n setJoinPopup(true);\r\n } else if (questionerMode === QUESTIONER_MODE_EXTENRAL) {\r\n setIsLoading(true);\r\n if (!externalRiskScore) {\r\n try {\r\n CommandFactory.createCommand(queryRiskScoreCMD).execute()\r\n .catch((ex) => { externalQuestionerMode(0); })\r\n .then((value) => {\r\n if (value?.payload?.socialAccount?.externalRiskScore) {\r\n externalQuestionerMode(value.payload.socialAccount.externalRiskScore);\r\n } else {\r\n externalQuestionerMode(0);\r\n }\r\n });\r\n } catch (exception) { externalQuestionerMode(0); }\r\n } else {\r\n externalQuestionerMode(externalRiskScore);\r\n }\r\n } else if (!lfsRegulationsDetails.isLfsRegulated) {\r\n handleAddFollower(false);\r\n } else if (!lfsRegulationsDetails.lfsFinishedSuitabilityTest) {\r\n setQuestionnaire(true);\r\n } else if (user.UserDetails.RiskLevel > lfsRegulationsDetails.lfsRiskScore) {\r\n setShowDisclaimer(true);\r\n } else {\r\n handleAddFollower(false);\r\n }\r\n };\r\n\r\n const handleRemoveCopy = () => {\r\n SendEventToGoogleAnalytics('Profile:Copy:UnCopyClick', { masterNickname: nickname });\r\n handleUncopy();\r\n // handleAddFollower(true);\r\n };\r\n\r\n const handleOpenCurrency = () => {\r\n setCurrencySelect(true);\r\n };\r\n\r\n const handleCloseCurrency = () => {\r\n setCurrencySelect(false);\r\n };\r\n\r\n const handleDepositClick = () => {\r\n depositButtonClickHandler(depositUrl, getDepositUrlCommand);\r\n };\r\n\r\n const text = radio ? t('Social.CopyTab.ByEquityDesc', { nickname, symbol: userData?.lotAmount, equity: '(lots)' }) : t('Social.CopyTab.ByEquityDesc', { nickname, symbol, equity: userData?.equity });\r\n const textAlreadyCopied = userData?.copyType === 1 ? t('Social.CopyTab.CurrCopyStatus', { nickname, symbol: userData?.amount, equity: '(lots)' }) : t('Social.CopyTab.CurrCopyStatus', { nickname, symbol, equity: userData?.amount });\r\n const disableCopy = parseFloat(userData?.lotAmount) <= 0 || parseFloat(userData?.equity) <= 0 || userData?.instruments === null ? 'btn btn-copy no-pointer' : 'btn btn-copy';\r\n let hideCopyByFixedLotState = hideCopyByFixedLot;\r\n if (hideCopyByFixedLotState && alreadyCopied && userData?.copyType === 1) {\r\n hideCopyByFixedLotState = false;\r\n }\r\n\r\n return (\r\n
    \r\n {showResponseInfo ? (\r\n
    \r\n

    \r\n {t('Social.CopyTab.CopyResponse', { nickName: nickname })}\r\n

    \r\n
    \r\n ) : (\r\n \r\n {!isLoading ? (\r\n \r\n {alreadyCopied && (\r\n
    \r\n

    {textAlreadyCopied}

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

    {alreadyCopied ? `${t('Social.CopyTab.EditCopyDesc')}:` : `${t('Social.CopyTab.NewCopyDesc')}:`}

    \r\n
    \r\n
    \r\n \r\n {t('Social.CopyTab.ByEquity')}\r\n
    \r\n {radio === false && (\r\n
    \r\n
    \r\n \r\n
    \r\n {symbol}\r\n {t('General.Equity')}\r\n
    \r\n )}\r\n
    \r\n {!hideCopyByFixedLotState\r\n && (\r\n
    \r\n
    \r\n \r\n {t('Social.CopyTab.ByFixed')}\r\n
    \r\n {radio === true && (\r\n
    \r\n
    \r\n \r\n
    \r\n (lots)\r\n {t('Social.CopyTab.ByFixedHeader')}\r\n
    \r\n )}\r\n
    \r\n )}\r\n {parseFloat(userData?.equity) <= 0 && !radio && (\r\n
    \r\n {t('Social.CopyTab.Errors.InvalidAmount')}\r\n
    \r\n )}\r\n {userData?.equity === '' && !radio && (\r\n
    \r\n {t('Social.CopyTab.Errors.EmptyEquity')}\r\n
    \r\n )}\r\n {parseFloat(userData?.lotAmount) <= 0 && radio && (\r\n
    \r\n {t('Social.CopyTab.Errors.InvalidAmount')}\r\n
    \r\n )}\r\n {userData?.lotAmount === '' && radio && (\r\n
    \r\n {t('Social.CopyTab.Errors.EmptyEquity')}\r\n
    \r\n )}\r\n \r\n \r\n

    {text}

    \r\n
    \r\n
    \r\n

    \r\n {t('Social.CopyTab.SelectedInstrumentP1')}\r\n {userData?.instruments?.length ? userData?.instruments.map((item) => {item}) : {t('Social.CopyTab.SelectedInstrumentAll')}}\r\n {t('Social.CopyTab.SelectedInstrumentP2')}\r\n

    \r\n
    \r\n
    \r\n \r\n {currencySelect && copyData && (\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n {!isEquityValidForCopy\r\n ? (\r\n \r\n {userData?.copyType === 1 || userData?.copyType === 2 ? t('General.Save') : t('Socials.Button.Copy')}\r\n
    \r\n ) : (\r\n \r\n )}\r\n
    \r\n \r\n \r\n \r\n\r\n setShowBlockDisclaimer(false)}\r\n childClassName='modal-window--disclaimer'\r\n contentClassName='content'\r\n >\r\n setShowBlockDisclaimer(false)}\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// CopyTab.propTypes = {};\r\n\r\nexport default CopyTab;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport roundToPrecision from '../utilsUI/roundToPrecision';\r\nimport Button from '../primitives/Button';\r\nimport useWindowSize from '../utilsUI/useWindowSize';\r\nimport { SendEventToGoogleAnalytics } from '../../background/storeListener/googleAnalyticsListener';\r\n\r\nconst Suggestions = ({\r\n users, getProfileData, toggleExplorePage, clodeUserModal, isLoadingProfile, generalColor, generalButtonColor\r\n}) => {\r\n const { t } = useTranslation();\r\n const [randomUsers, setRandomUsers] = useState(null);\r\n const [width, height] = useWindowSize();\r\n const maxSuggestions = width > 1199 ? 6 : 5;\r\n useEffect(() => {\r\n if (users.length > maxSuggestions) {\r\n const shuffled = users.sort(() => 0.5 - Math.random());\r\n setRandomUsers(shuffled);\r\n } else {\r\n setRandomUsers(users);\r\n }\r\n }, [users, isLoadingProfile]);\r\n const handleItemSelect = (e) => {\r\n const userName = e.target.closest('.profile-page__suggestion-item').getAttribute('data');\r\n const avatar = e.target.closest('.profile-page__suggestion-item').getAttribute('data-avatar');\r\n const copiers = e.target.closest('.profile-page__suggestion-item').getAttribute('data-copiers');\r\n // eslint-disable-next-line no-unused-expressions\r\n userName && getProfileData({ nickname: userName, avatar, copiers, shouldOpenCopy: false });\r\n SendEventToGoogleAnalytics(\"Profile:Suggestions:ProfileClick\", {nickname: userName});\r\n };\r\n\r\n const handleExplorePage = () => {\r\n SendEventToGoogleAnalytics(\"Profile:Suggestions:ExplorePageClick\");\r\n clodeUserModal();\r\n toggleExplorePage();\r\n };\r\n\r\n const renderProfit = (value) => {\r\n if (value > 5) {\r\n return
    >500%
    ;\r\n } if (value >= 0.1 || value <= -0.1) {\r\n return (\r\n
    \r\n {roundToPrecision(value * 100, 0)}\r\n %\r\n
    \r\n );\r\n }\r\n return (\r\n
    \r\n {roundToPrecision(value * 100, 1)}\r\n %\r\n
    \r\n );\r\n };\r\n\r\n\r\n return (\r\n
    \r\n
    {t('Social.Suggestions.Text')}:
    \r\n
    \r\n {!isLoadingProfile && randomUsers && randomUsers.slice(0, maxSuggestions).map((user) => {\r\n return (\r\n
    \r\n {/*
    */}\r\n
    \r\n {user?.Nickname}\r\n
    {renderProfit(user?.Profit)}
    \r\n
    \r\n
    \r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\n// Suggestions.propTypes = {};\r\n\r\nexport default Suggestions;\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport OuterClick from '../primitives/OuterClick';\r\nimport Button from '../primitives/Button';\r\nimport { SendEventToGoogleAnalytics } from '../../background/storeListener/googleAnalyticsListener';\r\n\r\n\r\nconst WatchPopup = ({\r\n setOpenCopyTab, handleClick, copiedUserName, generalButtonColor\r\n}) => {\r\n const { t } = useTranslation();\r\n const handleOpenCopy = () => {\r\n SendEventToGoogleAnalytics('Profile:WatchPopup:CopyClick', { masterNickname: copiedUserName });\r\n setOpenCopyTab();\r\n handleClick();\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n {t('Social.Popup.Watch.BodyText', {\r\n nickname: copiedUserName,\r\n copy: t('Socials.Button.Copy')\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\n// WatchPopup.propTypes = {};\r\n\r\nexport default OuterClick(WatchPopup);\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport OuterClick from '../primitives/OuterClick';\r\nimport Button from '../primitives/Button';\r\nimport { SendEventToGoogleAnalytics } from '../../background/storeListener/googleAnalyticsListener';\r\n\r\n\r\nconst UncopyPopup = ({\r\n handleUncopy, handleClick, copiedUserName, generalButtonColor\r\n}) => {\r\n const { t } = useTranslation();\r\n const handleUncopyAction = () => {\r\n SendEventToGoogleAnalytics('Profile:UnCopyPopup:UnCopyClick', { masterNickname: copiedUserName });\r\n handleUncopy();\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n {t('Social.Uncopy.DisclaimerHeader')}\r\n  \r\n {copiedUserName}\r\n

    {t('Social.Uncopy.Disclaimer')}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\n// UncopyPopup.propTypes = {};\r\n\r\nexport default OuterClick(UncopyPopup);\r\n","export const RISK_LEVELS = {\r\n RISK_LOW: 0,\r\n RISK_MEDIUM: 1,\r\n RISK_HIGH: 2\r\n};\r\n\r\nexport const RISK_LEVEL_LABELS = [\r\n 'General.Low',\r\n 'General.Medium',\r\n 'General.High'\r\n];\r\n\r\nexport const RISK_LEVEL_COLORS = [\r\n '#3CC09B',\r\n '#F2994A',\r\n '#EB5757'\r\n];\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { QUESTIONER_MODE_EXTENRAL } from '../../background/socialv1/socialv1Reducer';\r\nimport { RISK_LEVELS, RISK_LEVEL_COLORS, RISK_LEVEL_LABELS } from '../../shared/Constants/RiskLevelConstants';\r\n\r\n\r\nconst RiskLevelItem = ({ riskLevel, type }) => {\r\n const { t } = useTranslation();\r\n const theme = useSelector((state)=>state.brand.theme);\r\n\r\n return (\r\n
    \r\n
    \r\n  \r\n
    \r\n {t(RISK_LEVEL_LABELS[type])}\r\n
    \r\n );\r\n};\r\n\r\n\r\nconst RiskLevelDisplay = ({ yearPnl, user }) => {\r\n const { t } = useTranslation();\r\n const questionerMode = useSelector((state) => { return state.account.socialv1.socialAccount.questionerMode; });\r\n\r\n if (questionerMode === QUESTIONER_MODE_EXTENRAL) {\r\n if (yearPnl) {\r\n if (yearPnl?.UserMeasures?.MaxDrawDown <= 0) {\r\n return null;\r\n }\r\n let score = 0;\r\n if (yearPnl.UserMeasures.MaxDrawDown * 100 > 50) {\r\n score = 2;\r\n } else if (yearPnl.UserMeasures.MaxDrawDown * 100 > 25) {\r\n score = 1;\r\n }\r\n return (\r\n
    \r\n
    {t('Social.Profile.RiskLevel')}
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n } else {\r\n const riskLevel = user?.UserDetails?.RiskLevel || '';\r\n return (\r\n
    \r\n {t('Social.Profile.RiskLevel')}\r\n :\r\n  \r\n {riskLevel}\r\n
    \r\n );\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport default RiskLevelDisplay;\r\n","/* eslint-disable complexity */\r\nimport React, {\r\n useState, useEffect, useMemo, Fragment\r\n} from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport { CommandFactory } from '../../background/commands/CommandFactory';\r\nimport { SendEventToGoogleAnalytics } from '../../background/storeListener/googleAnalyticsListener';\r\nimport Button from '../primitives/Button';\r\n// import LoadSpinner from '../primitives/LoadSpinner';\r\nimport ModalWrapper from '../primitives/ModalWrapper';\r\nimport { formatDateOnly } from '../utilsUI/formatTime';\r\nimport CountryFlagByCode from '../Flag/CountryFlagByCode';\r\nimport TooltipWrapper from '../primitives/TooltipWrapper';\r\n\r\nimport ProfileTab from './ProfileTab';\r\nimport PortfolioTab from './PortfolioTab';\r\nimport CommunityTab from './CommunityTab';\r\nimport PositionsTab from './PositionsTab';\r\nimport CopyTab from './CopyTab';\r\nimport Suggestions from './Suggestions';\r\nimport WatchPopup from './WatchPopup';\r\nimport UncopyPopup from './UncopyPopup';\r\nimport RiskLevelDisplay from './RiskLevelDisplay';\r\nimport './ProfilePage.css';\r\n\r\n// export const ProficiencyLevelType = {\r\n// CHAMPION: 0,\r\n// GRANDMASTER: 1,\r\n// MASTER: 2,\r\n// EXPERT: 3,\r\n// TRADER: 4\r\n// };\r\n\r\nexport const PROFICIENCY_LEVEL = [\r\n 'CHAMPION',\r\n 'GRANDMASTER',\r\n 'MASTER',\r\n 'EXPERT',\r\n 'TRADER'\r\n];\r\n\r\nconst ProfilePage = ({\r\n user,\r\n yearPnl,\r\n setSelectedTrader,\r\n toggleExplorePage,\r\n clodeUserModal,\r\n openCopyTab,\r\n handleCloseCopyTab,\r\n isLoadingProfile,\r\n userName,\r\n avatar,\r\n copiers,\r\n joinDate,\r\n portfolio,\r\n isSameUser,\r\n getProfileData,\r\n setQuestionnaire,\r\n setJoinPopup\r\n}) => {\r\n const { t } = useTranslation();\r\n const [tabValue, setTabValue] = useState(openCopyTab ? 4 : 0);\r\n const [persistCopyTab, setPersistCopyTab] = useState(false);\r\n const joinDateValue = user?.UserDetails?.MetaJoinDate || joinDate;\r\n // const nickName = user?.UserDetails?.Nickname || '';\r\n const [nickName, setNickName] = useState(null);\r\n const [history, setHistory] = useState([]);\r\n const [forward, setForward] = useState([]);\r\n const [showPopup, setShowPopup] = useState(false);\r\n const [showUncopyPopup, setShowUncopyPopup] = useState(false);\r\n const riskLevel = user?.UserDetails?.RiskLevel || '';\r\n const avatarValue = user?.UserDetails?.Avatar || avatar;\r\n const copiersCount = user?.CopiersCount || copiers || 0;\r\n const socialFeed = user?.SocialFeed || [];\r\n const suggestionPerformers = user?.SuggestionPerformers || [];\r\n const alreadyCopied = user?.CopyType === 1 || user?.CopyType === 2;\r\n const watching = user?.CopyType === 4 || alreadyCopied;\r\n const copying = user?.Following || [];\r\n const flag = user?.UserDetails?.Country || '';\r\n const proficiency = user?.UserDetails?.ProficiencyLevel || 0;\r\n const { copyRelationsCommands: { updateFollower, removeFollower } } = useSelector((state) => { return (state.account.socialv1); }, shallowEqual);\r\n const {\r\n MainColor, Text: { GeneralColor, SystemColor }, Social: { CopyBackground, CopyTextColor }, Buttons: { TextColor }\r\n } = useSelector((state) => (state.brand.theme));\r\n const generalColor = useMemo(() => ({ color: GeneralColor }), [GeneralColor]);\r\n const copyColor = useMemo(() => ({ color: CopyTextColor, backgroundColor: CopyBackground }), [CopyBackground, CopyTextColor]);\r\n const generalButtonColor = useMemo(() => ({ color: TextColor }), [TextColor]);\r\n\r\n const toggleUncopyPopup = () => {\r\n setShowUncopyPopup((prevState) => !prevState);\r\n };\r\n\r\n const handleWatch = async () => {\r\n const userInput = { guruNickname: userName, amount: watching ? 0 : 1, copyType: watching ? 0 : 4 };\r\n\r\n let commandObj = {\r\n ...updateFollower,\r\n userInput\r\n };\r\n\r\n if (watching) {\r\n commandObj = {\r\n ...removeFollower,\r\n userInput: {\r\n guruNickname: userName\r\n }\r\n };\r\n }\r\n SendEventToGoogleAnalytics(watching ? 'Profile:UnWatchClick' : 'Profile:WatchClick', { masterNickname: userName });\r\n const command = CommandFactory.createCommand(commandObj);\r\n\r\n try {\r\n const res = await command.execute();\r\n\r\n if (res.ok === false) {\r\n // setRequestResult({ result: res.statusText });\r\n }\r\n if (res.isSuccessful === true) {\r\n setSelectedTrader({ nickname: userName, avatar: user?.UserDetails?.Avatar });\r\n // eslint-disable-next-line no-unused-expressions\r\n !watching && setShowPopup(true);\r\n } else if (res.isSuccessful === false) {\r\n // setRequestResult(res);\r\n }\r\n } catch (err) {\r\n // setRequestResult(err);\r\n }\r\n };\r\n\r\n const handleUncopyFollower = async () => {\r\n // setIsLoading(true);\r\n const userInput = { guruNickname: userName, amount: 1, copyType: 4 };\r\n\r\n const command = CommandFactory.createCommand(updateFollower);\r\n\r\n try {\r\n // setRequestResult(null);\r\n const res = await command.execute(userInput);\r\n\r\n if (res.ok === false) {\r\n // setRequestResult({ result: res.statusText });\r\n }\r\n if (res.isSuccessful === true) {\r\n getProfileData(userName);\r\n setTabValue(0);\r\n handleCloseCopyTab();\r\n toggleUncopyPopup();\r\n } else if (res.isSuccessful === false) {\r\n // setRequestResult(res);\r\n }\r\n } catch (err) {\r\n // setRequestResult(err);\r\n }\r\n\r\n // setIsLoading(false);\r\n };\r\n\r\n const handleOuterOpenTab = () => {\r\n SendEventToGoogleAnalytics(alreadyCopied ? 'Profile:EditCopyClick' : 'Profile:CopyClick', { masterNickname: userName });\r\n setTabValue(4);\r\n };\r\n\r\n const handlePersistCopyTab = (value) => {\r\n setPersistCopyTab(value);\r\n if (!value) {\r\n setTabValue(0);\r\n }\r\n };\r\n\r\n const goToCommunity = () => {\r\n setTabValue(2);\r\n };\r\n\r\n const clearActiveTab = () => {\r\n setTabValue(0);\r\n };\r\n\r\n const handleTabChange = (event, newValue) => {\r\n let newTabValue;\r\n if (event) {\r\n newTabValue = event.target.getAttribute('name');\r\n } else {\r\n newTabValue = newValue;\r\n }\r\n const finalTabValue = parseInt(newTabValue, 10);\r\n setTabValue(finalTabValue);\r\n\r\n let eventName = '';\r\n if (finalTabValue === 0) {\r\n eventName = 'ProfileTabClick';\r\n } else if (finalTabValue === 1) {\r\n eventName = 'PortfolioTabClick';\r\n } else if (finalTabValue === 2) {\r\n eventName = 'CommunityTabClick';\r\n } else if (finalTabValue === 3) {\r\n eventName = 'PositionsTabClick';\r\n } else if (finalTabValue === 4) {\r\n eventName = 'CopyTabClick';\r\n }\r\n SendEventToGoogleAnalytics(`Profile:${eventName}`);\r\n };\r\n\r\n useEffect(() => {\r\n if (openCopyTab || persistCopyTab) {\r\n setTabValue(4);\r\n } else {\r\n setTabValue(0);\r\n }\r\n\r\n setNickName(user?.UserDetails?.Nickname);\r\n // return handleCloseCopyTab();\r\n // }, [user]);\r\n }, [user]);\r\n\r\n const handleUserSelect = (selectedUser) => {\r\n if (selectedUser.nickname !== userName) {\r\n setSelectedTrader(selectedUser);\r\n setHistory([...history, userName]);\r\n setForward([]);\r\n handleCloseCopyTab();\r\n }\r\n };\r\n\r\n const openUser = (e) => {\r\n handleUserSelect({ nickname: e.target.getAttribute('data-name'), avatar: e.target.getAttribute('data-avatar'), shouldOpenCopy: false });\r\n };\r\n\r\n const closeWatchPopup = () => {\r\n setShowPopup(false);\r\n };\r\n\r\n const handleUncopy = () => {\r\n handleUncopyFollower();\r\n };\r\n\r\n const goBack = () => {\r\n if (history.length > 0) {\r\n const lastPage = history[history.length - 1];\r\n setHistory(history.slice(0, history.length - 1));\r\n setForward([userName, ...forward]);\r\n setSelectedTrader({ nickname: lastPage });\r\n }\r\n };\r\n\r\n const goForward = () => {\r\n if (forward.length > 0) {\r\n const nextPage = forward[0];\r\n setHistory([...history, userName]);\r\n setForward(forward.slice(1, forward.length));\r\n setSelectedTrader({ nickname: nextPage });\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 {nickName || userName}\r\n

    \r\n
    \r\n \r\n {t('Social.Profile.JoinLabel')}\r\n : \r\n {joinDateValue && formatDateOnly(new Date(joinDateValue))}\r\n \r\n
    \r\n
    \r\n \r\n {t('Social.CopiersText')}\r\n :\r\n  \r\n {copiersCount}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {flag && CountryFlagByCode(flag)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n  \r\n \r\n {PROFICIENCY_LEVEL[proficiency].toLowerCase()}\r\n
    \r\n \r\n {/*
    \r\n {t('Social.CopyingText')}\r\n
    */}\r\n {/*
    \r\n {Array.isArray(copying) && copying?.length > 0 && copying.map((item) => {\r\n return (\r\n
    \r\n
    {item?.Nickname}
    \r\n
    \r\n );\r\n })}\r\n
    */}\r\n
    \r\n {!isSameUser && !isLoadingProfile && (\r\n \r\n )}\r\n {!isSameUser && !isLoadingProfile && (\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {t('ProfilePage.Profile.Title')}\r\n
    \r\n \r\n \r\n \r\n {t('ProfilePage.Portfolio.Title')}\r\n
    \r\n \r\n \r\n \r\n {t('ProfilePage.Community.Title')}\r\n
    \r\n \r\n \r\n \r\n {t('ProfilePage.Positions.Title')}\r\n
    \r\n \r\n {!isSameUser && (\r\n \r\n \r\n {t('ProfilePage.Copy.Title')}\r\n
    \r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n {tabValue === 0 && (\r\n \r\n )}\r\n\r\n {tabValue === 1 && }\r\n\r\n {tabValue === 2 && }\r\n\r\n {tabValue === 3 && }\r\n\r\n {!isSameUser && tabValue === 4 && (\r\n \r\n {user && (\r\n \r\n )}\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {showPopup && (\r\n \r\n \r\n \r\n )}\r\n {showUncopyPopup && (\r\n \r\n \r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\n// ProfilePage.propTypes = {};\r\n\r\nexport default ProfilePage;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport { CommandFactory } from '../../background/commands/CommandFactory';\r\nimport { SendEventToGoogleAnalytics } from '../../background/storeListener/googleAnalyticsListener';\r\nimport { QUESTIONER_MODE_EXTENRAL } from '../../background/socialv1/socialv1Reducer';\r\nimport ModalWrapper from '../primitives/ModalWrapper';\r\n\r\nimport ProfilePage from './ProfilePage';\r\n\r\n\r\nconst ProfilePageWrapper = ({\r\n selectedTrader, setSelectedTrader, toggleExplorePage, openCopyTab, setOpenCopyTab, setCloseProfileModal, setQuestionnaire, setJoinPopup, open\r\n}) => {\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [error, setError] = useState(false);\r\n const [userProfile, setUserProfile] = useState(null);\r\n const [portfolio, setPortfolio] = useState(null);\r\n const [yearPnl, setYearPnl] = useState(null);\r\n const [shouldOpenCopyTab, setShouldOpenCopyTab] = useState(false);\r\n const {\r\n socialAccount: { questionerMode, queryRiskScoreCMD, externalRiskScore },\r\n profileCommands: { getUserProfilePage, getPortfolioBreakdown, getGetPlAndStats }, userDetails\r\n } = useSelector((state) => { return (state.account.socialv1); }, shallowEqual);\r\n const avatar = selectedTrader?.avatar || '';\r\n const copiers = selectedTrader?.copiers || '';\r\n const nickname = selectedTrader?.nickname || '';\r\n const joinDate = selectedTrader?.joinDate || '';\r\n // const shouldOpenCopy = selectedTrader?.shouldOpenCopy || false;\r\n const { name } = useSelector((state) => { return (state.account.accountInfo.userDetails); }, shallowEqual);\r\n const isSameUser = userDetails?.nickname ? selectedTrader?.nickname?.toLowerCase() === userDetails?.nickname.replace(/\\s/g, '').toLowerCase() : false;\r\n\r\n const getProfileData = async (nicknameValue) => {\r\n const userInput = { nickname: nicknameValue, FolowersMax: 4, followingMax: 4 };\r\n\r\n const command = CommandFactory.createCommand(getUserProfilePage);\r\n\r\n try {\r\n const res = await command.execute(userInput);\r\n if (res.ok === false) {\r\n setError({ result: res.statusText });\r\n }\r\n if (res.isSuccessful === true) {\r\n setUserProfile(res.payload);\r\n } else if (res.isSuccessful === false) {\r\n setError(res);\r\n }\r\n } catch (err) {\r\n setError(err);\r\n }\r\n };\r\n\r\n const requestPortfolio = async () => {\r\n // setIsLoading(true);\r\n const userInput = { timeframe: 3, nickname };\r\n\r\n const command = CommandFactory.createCommand(getPortfolioBreakdown);\r\n\r\n try {\r\n setPortfolio(null);\r\n const res = await command.execute(userInput);\r\n\r\n if (res.ok === false) {\r\n setPortfolio({ result: res.statusText });\r\n }\r\n if (res.isSuccessful === true) {\r\n setPortfolio(res.payload);\r\n } else if (res.isSuccessful === false) {\r\n setPortfolio(res);\r\n }\r\n } catch (err) {\r\n setPortfolio(err);\r\n }\r\n\r\n // setIsLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n if (selectedTrader) {\r\n setIsLoading(true);\r\n let pnlAndStats = async () => {};\r\n let queryRiskScorePromise = async () => {};\r\n if (questionerMode === QUESTIONER_MODE_EXTENRAL) {\r\n pnlAndStats = async () => {\r\n try {\r\n const cmd = CommandFactory.createCommand(getGetPlAndStats);\r\n const resp = await cmd.execute({ nickname, timeframe: 4 });\r\n if (resp.isSuccessful) {\r\n setYearPnl(resp.payload);\r\n }\r\n } catch (exception) {}\r\n };\r\n\r\n if (!externalRiskScore) {\r\n queryRiskScorePromise = async () => {\r\n try {\r\n await CommandFactory.createCommand(queryRiskScoreCMD).execute();\r\n } catch (exception) {}\r\n };\r\n }\r\n }\r\n Promise.allSettled([getProfileData(nickname), requestPortfolio(), pnlAndStats(), queryRiskScorePromise()])\r\n .then(setIsLoading(false));\r\n }\r\n // if (selectedTrader?.shouldOpenCopy) {\r\n if (openCopyTab) {\r\n setShouldOpenCopyTab(true);\r\n } else {\r\n setShouldOpenCopyTab(false);\r\n }\r\n }, [selectedTrader]);\r\n\r\n useEffect(() => {\r\n SendEventToGoogleAnalytics('ProfilePageOpened');\r\n }, []);\r\n\r\n const closeUserModal = () => {\r\n setSelectedTrader(null);\r\n setCloseProfileModal();\r\n };\r\n\r\n const handleCloseCopyTab = () => {\r\n setOpenCopyTab(false);\r\n // setShouldOpenCopyTab(false);\r\n };\r\n\r\n const handleItemSelect = (item) => {\r\n setSelectedTrader(item);\r\n };\r\n\r\n\r\n return (\r\n \r\n {selectedTrader && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\n// ProfilePageWrapper.propTypes = {};\r\n\r\nexport default ProfilePageWrapper;\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport depositButtonClickHandler from '../utilsUI/depositButtonClickHandler';\r\n\r\n\r\nconst MarginAlert = () => {\r\n const { t } = useTranslation();\r\n const { deposit: { depositUrl, getDepositUrlCommand } } = useSelector((state) => (state.account.accountInfo.featuresData));\r\n const { Text: { GeneralColor } } = useSelector((state) => (state.brand.theme));\r\n const handleDepositClick = () => {\r\n depositButtonClickHandler(depositUrl, getDepositUrlCommand);\r\n };\r\n\r\n return (\r\n \r\n {t('Margin.Alert.Deposit')}\r\n
    \r\n );\r\n};\r\n\r\n// GeneralDisclaimer.propTypes = {};\r\n\r\nexport default MarginAlert;\r\n","function debounce(fn, ms) {\r\n let timer;\r\n return () => {\r\n clearTimeout(timer);\r\n timer = setTimeout(() => {\r\n timer = null;\r\n // eslint-disable-next-line prefer-rest-params\r\n fn.apply(this, arguments);\r\n }, ms);\r\n };\r\n}\r\n\r\nexport default debounce;\r\n","import React, { useState, useEffect, useCallback, useRef } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport debounce from '../utilsUI/debounce';\r\n\r\nimport Button from '../primitives/Button';\r\nimport questionGraph from '../icons/questionGraph.png';\r\n\r\n\r\nconst QuestionStepOne = ({ steps, setSteps, handleNextChange }) => {\r\n const [shouldHideIcon, setShouldHideIcon] = useState(false);\r\n const { t } = useTranslation();\r\n const bottomDiv = useRef();\r\n const stepContainer = useRef();\r\n const options = [\r\n { id: 1, value: t('Socialv1.Suitability.Q1.Answer1') },\r\n { id: 2, value: t('Socialv1.Suitability.Q1.Answer2') },\r\n { id: 3, value: t('Socialv1.Suitability.Q1.Answer3') },\r\n { id: 4, value: t('Socialv1.Suitability.Q1.Answer4') }\r\n ];\r\n\r\n const selectOption = (value) => {\r\n const nextStepData = steps.stepData;\r\n nextStepData[0] = { selectedOption: value, isFulfilled: true };\r\n setSteps((prevState) => ({\r\n ...prevState, stepData: nextStepData\r\n }));\r\n };\r\n\r\n // const checkVisible = () => {\r\n // const rect = bottomDiv.current.getBoundingClientRect();\r\n // const container = stepContainer.current.getBoundingClientRect();\r\n // return rect.bottom <= container.bottom;\r\n // };\r\n\r\n // const isBottomReached = useCallback(\r\n // debounce(() => checkVisible, 200), []\r\n // );\r\n\r\n useEffect(() => {\r\n const checkVisible = () => {\r\n const rect = bottomDiv.current.getBoundingClientRect();\r\n const container = stepContainer.current.getBoundingClientRect();\r\n // return rect.bottom <= container.bottom;\r\n if (rect.bottom <= container.bottom) {\r\n setShouldHideIcon(true);\r\n }\r\n };\r\n // if (checkVisible) {\r\n // setShouldHideIcon(true);\r\n // }\r\n // const handleIcon = () => {\r\n // if (isBottomReached) {\r\n // console.log(isBottomReached);\r\n // // setShouldHideIcon(true);\r\n // } else {\r\n // // setShouldHideIcon(false);\r\n // console.log(isBottomReached);\r\n // }\r\n // };\r\n stepContainer.current.addEventListener('scroll', checkVisible);\r\n return () => window.removeEventListener('scroll', checkVisible);\r\n }, []);\r\n\r\n const RadioButtonsGroup = options.map((option) => {\r\n return (\r\n
    selectOption(option.id)}>\r\n {option.value}\r\n
    \r\n );\r\n });\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {t('Socialv1.Suitability.QuestionHeader')}\r\n
    \r\n

    \r\n {t('Socialv1.Suitability.Q1.Paragraph1')}\r\n

    \r\n text\r\n

    \r\n {t('Socialv1.Suitability.Q1.Paragraph2')}\r\n

    \r\n

    \r\n {t('Socialv1.Suitability.Q1.Paragraph3')}\r\n

    \r\n {!shouldHideIcon && (\r\n {\r\n bottomDiv.current.scrollIntoView({ behavior: 'smooth' });\r\n }}\r\n />\r\n )}\r\n
    \r\n
    \r\n {RadioButtonsGroup}\r\n
    \r\n \r\n
    \r\n )}\r\n \r\n

    {t('Socialv1.Suitability.Abandone.Title')}

    \r\n

    {t('Socialv1.Suitability.Abandone.InnerTitle')}

    \r\n
    \r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\n// Questionnaire.propTypes = {};\r\n\r\nexport default Questionnaire;\r\n","import React from 'react';\r\nimport PubsubSubscription from '../background/repositories/PubsubSubscription';\r\n\r\n\r\nexport default function RepositoryValueView(props) {\r\n const { repObj } = props;\r\n const obj = PubsubSubscription.subscribeObj(repObj);\r\n const disValue = JSON.stringify(obj);\r\n\r\n return (
    {disValue}
    );\r\n}\r\n","import React ,{ Component }from 'react';\r\nimport TreeItem from '@material-ui/lab/TreeItem';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport { connect } from 'react-redux';\r\nimport CommandFactory from \"../background/commands/CommandFactory\"\r\nimport PubsubSubscription from \"../background/repositories/PubsubSubscription\"\r\nimport Button from '@material-ui/core/Button';\r\nimport { getPathObject } from '../background/StoreUtils/getPathObject';\r\nimport RepositoryValueView from './RepositoryValueView'\r\n\r\nclass StoreTreeItemClass extends Component\r\n{ \r\n isExpendable(value)\r\n {\r\n if (value !== null && value !== undefined)\r\n {\r\n if (typeof value === 'object' || Array.isArray(value))\r\n {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n }\r\n\r\n getCurrrentLevelNodes()\r\n {\r\n let expandableItemsArray = []\r\n let simpleItemsArray = []\r\n let commandsArray = []\r\n let nodeValue = this.props.nodeValue;\r\n \r\n if (typeof nodeValue === 'object' || Array.isArray(nodeValue))\r\n {\r\n let nodeProperties = Object.keys(nodeValue).sort();\r\n for (let i = 0;i
    {key}
    [{value.length}]
    }>\r\n \r\n )\r\n }\r\n else\r\n {\r\n if (PubsubSubscription.isSubscriptionObj(value))\r\n {\r\n expandableItemsArray.push(
    {key}
    {}
    }>);\r\n }\r\n else if (CommandFactory.isCommand(value))\r\n {\r\n let local =this;\r\n expandableItemsArray.push(
    {key}
    }> \r\n )\r\n }\r\n else if (value.cmd === \"TradesStrem\")\r\n {\r\n let local =this;\r\n expandableItemsArray.push(
    {key}
    }> \r\n )\r\n }\r\n else\r\n {\r\n expandableItemsArray.push(
    {key}
    )}>\r\n \r\n
    )\r\n }\r\n }\r\n }\r\n else{\r\n if (value !== null && value !== undefined)\r\n {\r\n simpleItemsArray.push(
    {key}
    {value.toString()}
    }>
    )\r\n }\r\n else\r\n {\r\n simpleItemsArray.push(
    {key}
    }>
    )\r\n }\r\n }\r\n }\r\n }\r\n else\r\n {\r\n if (nodeValue !== null && nodeValue !== undefined)\r\n {\r\n let nodeKey = this.props.parentNodeId + \"|\" + nodeValue;\r\n simpleItemsArray.push()\r\n }\r\n }\r\n\r\n return expandableItemsArray.concat(commandsArray).concat(simpleItemsArray);\r\n }\r\n\r\n render()\r\n {\r\n if (this.props.nodeValue)\r\n {\r\n return this.getCurrrentLevelNodes()\r\n }\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state,ownProps) {\r\n if (!Array.isArray(ownProps.path))\r\n {\r\n return { }\r\n }\r\n else\r\n {\r\n let dataObject =getPathObject(state,ownProps.path);\r\n if (dataObject)\r\n {\r\n return {nodeValue: dataObject}\r\n }\r\n }\r\n return { }\r\n}\r\n\r\nlet storeTreeItemInstance = connect(mapStateToProps)(StoreTreeItemClass);\r\nexport const StoreTreeItem = storeTreeItemInstance;","import React from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport LinearProgress from '@material-ui/core/LinearProgress'\r\n\r\n//import { JsonEditor as Editor } from 'jsoneditor-react';\r\n//import 'jsoneditor-react/es/editor.min.css';\r\n\r\nexport default function CommandDialog(props) {\r\n const { setCmdDialog,cmd, value: valueProp, open,title, ...other } = props;\r\n\r\n const [userInput, setUserInput] = React.useState(cmd ? cmd.getUserInput():{});\r\n const [isLoading, setLoading] = React.useState(false);\r\n const [res, setRes] = React.useState(null);\r\n\r\n const handleEntering = () => {\r\n };\r\n\r\n const handleCancel = () => {\r\n setCmdDialog({open:false,cmd:null,title:\"\"});\r\n };\r\n\r\n const handleOk = async () => {\r\n setLoading(true);\r\n try\r\n {\r\n setRes(null);\r\n let res = await cmd.execute(userInput);\r\n if (res.isSuccessful === false)\r\n {\r\n setLoading(false);\r\n setRes(res);\r\n }\r\n else\r\n {\r\n setCmdDialog({open:false,cmd:null,title:\"\"});\r\n }\r\n }\r\n catch (err)\r\n {\r\n console.log(err);\r\n setLoading(false);\r\n setRes(err);\r\n }\r\n };\r\n\r\n const onChanged = (v1,v2,v3) => {\r\n setUserInput(v1);\r\n };\r\n\r\n\r\n return (\r\n\r\n \r\n {title}\r\n \r\n {/* {cmd && \r\n
    \r\n Static Data:\r\n \r\n Store Data:\r\n \r\n User Input:\r\n \r\n {res &&\r\n
    \r\n Error:\r\n \r\n
    }\r\n
    \r\n } */}\r\n
    \r\n \r\n \r\n {isLoading && }\r\n \r\n \r\n \r\n \r\n );\r\n}","import React from 'react';\r\n\r\nimport Button from '@material-ui/core/Button';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport ReactCSSTransitionGroup from 'react-addons-css-transition-group';\r\nimport {allTradesStream,topRankedTradeStream,watchTradersStream} from '../background/socialv1/tradesStreams'\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport './socialStreamDialog.css';\r\n\r\nexport default ({setCmdDialog, open,...other}) => {\r\n const { t } = useTranslation();\r\n let [state,setState] = React.useState({\r\n streamSelection:\"ALL\",\r\n });\r\n\r\n const handleChange = (event) =>{\r\n setState({streamSelection: event.target.value});\r\n } \r\n const handleCancel = () => {\r\n setCmdDialog({open:false});\r\n };\r\n\r\n let listItems =[] ;\r\n let streamToUse = allTradesStream;\r\n if (state.streamSelection === \"ALL\")\r\n {\r\n streamToUse = allTradesStream;\r\n }\r\n else if (state.streamSelection === \"IWATCH\")\r\n {\r\n streamToUse = watchTradersStream;\r\n }\r\n else if (state.streamSelection === \"TOPTRADERS\")\r\n {\r\n streamToUse = topRankedTradeStream;\r\n }\r\n \r\n for(let item of streamToUse.getStackOrder())\r\n {\r\n listItems.push(
    {`${item.Nickname} ${item.InstrumentName} ${item.OpenPrice} ${item.ClosePrice} ${item.TradeActionType ===0?\"BUY\":\"SELL\"}`}
    )\r\n }\r\n\r\n streamToUse.subscribeReact(()=>{\r\n setState({rerender:Date.now(),\r\n streamSelection:state.streamSelection\r\n });\r\n });\r\n\r\n return (\r\n {\"Social Stream\" ?? \"\"}\r\n \r\n \r\n
    \r\n {(open) && \r\n
    \r\n \r\n {listItems}\r\n \r\n
    }\r\n
    \r\n
    \r\n \r\n \r\n \r\n );\r\n};\r\n\r\n","import React, { Fragment, memo } from 'react';\r\nimport TreeView from '@material-ui/lab/TreeView';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight';\r\n\r\nimport { StoreTreeItem } from \"./StoreTreeItem\"\r\nimport CommandDialog from './CommandDialog';\r\nimport { useTranslation } from 'react-i18next';\r\nimport SocialStreamDialog from './socialStreamDialog'\r\n\r\nfunction MainTreeView(props){\r\n\r\n const [dialog, setDialogValue] = React.useState({open:false,cmd:null,title:\"\"})\r\n const [socialStream, setSocialStream] = React.useState({open:false})\r\n const { t } = useTranslation();\r\n\r\n return ( \r\n
    \r\n \r\n

    {t('Branding.Language.Name')}

    \r\n {dialog.open && }\r\n {socialStream.open && }\r\n\r\n }\r\n defaultExpandIcon={}\r\n >\r\n \r\n \r\n
    \r\n
    );\r\n};\r\n\r\nexport default memo(MainTreeView);\r\n","export const INDICATORS = [\r\n {\r\n name: 'Aroon',\r\n settings: { n: 15 },\r\n styles: {\r\n colorUp: '#ee7d00', boldUp: false, colorDown: '#00b0ea', boldDown: false\r\n }\r\n },\r\n {\r\n name: 'BollingerBands',\r\n settings: { n: 15, k: 1 },\r\n styles: {\r\n colorBasis: '#0e73b9', boldBasis: false, colorBorder: '#00b0ea', boldBorder: false, colorBg: '#00b0ea'\r\n }\r\n },\r\n {\r\n name: 'DonchianChannel',\r\n settings: { n: 15 },\r\n styles: {\r\n colorBasis: '#ee7d00', boldBasis: false, colorBorder: '#ffcb00', boldBorder: false, colorBg: 'rgba(255,202,0,0.2)'\r\n }\r\n },\r\n { name: 'ExponentialMovingAverage', settings: { n: 15 }, styles: { color: '#eb609e', bold: false } },\r\n {\r\n name: 'IchimokuCloud',\r\n settings: {\r\n nConv: 9, nBase: 26, nSpan: 52, nDisp: 26\r\n },\r\n styles: {\r\n boldALine: false,\r\n boldBLine: false,\r\n boldBase: false,\r\n boldConv: false,\r\n boldLag: false,\r\n colorALine: '#934b95',\r\n colorBLine: '#ef7d00',\r\n colorBase: '#65b22e',\r\n colorBg1: 'rgba(226,6,18,0.2)',\r\n colorBg2: 'rgba(101,178,46,0.3)',\r\n colorConv: '#e20612',\r\n colorLag: '#006ab4'\r\n }\r\n },\r\n { name: 'Momentum', settings: { n: 15 }, styles: { color: '#eb609e', bold: false } },\r\n {\r\n name: 'MovingAverageConvergenceDivergence',\r\n settings: { nFast: 12, nSlow: 26, nSignal: 9 },\r\n styles: {\r\n boldMACD: false,\r\n boldSignal: false,\r\n colorHistogram: '#944b96',\r\n colorMACD: '#65b22e',\r\n colorSignal: '#40c4ef'\r\n }\r\n },\r\n { name: 'PivotPoints', styles: { color: '#016ab3', bold: false } },\r\n {\r\n name: 'RelativeStrengthIndex',\r\n settings: { n: 15, overbought: 70, oversold: 30 },\r\n styles: {\r\n color: '#65b22e',\r\n bold: false,\r\n colorBg: 'rgba(174,208,131,0.2)'\r\n }\r\n },\r\n { name: 'SimpleMovingAverage', settings: { n: 15 }, styles: { color: '#ee7d00', bold: false } },\r\n {\r\n name: 'StochasticOscillator',\r\n settings: {\r\n n: 15, upper: 80, d: 3, lower: 20, k: 3\r\n },\r\n styles: {\r\n colorK: '#e20613',\r\n boldK: false,\r\n colorD: '#ee7d00',\r\n boldD: false,\r\n colorBg: 'rgba(255,202,0,0.2)'\r\n }\r\n },\r\n {\r\n name: 'WilliamsAlligator',\r\n settings: {\r\n nJaw: 21, falsesetJaw: 8, nTeeth: 13, falsesetTeeth: 5, nLips: 8, falsesetLips: 3\r\n },\r\n styles: {\r\n colorJaw: '#aed083',\r\n boldJaw: false,\r\n colorTeeth: '#e20613',\r\n boldTeeth: false,\r\n colorLips: '#006ab4',\r\n boldLips: false\r\n }\r\n }\r\n];\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport OuterClick from '../primitives/OuterClick';\r\nimport { INDICATORS } from '../../shared/Charts/indicators';\r\n\r\nimport './IndicatorsList.css';\r\n\r\n\r\nconst IndicatorsList = ({ selectIndicator, clearIndicators, systemColor }) => {\r\n const { t } = useTranslation();\r\n return (\r\n
    \r\n \r\n {t('Select.Indicator.Clear')}\r\n \r\n {INDICATORS.map((option) => {\r\n return (\r\n \r\n {t(`Select.Indicator${option.name}`)}\r\n \r\n );\r\n })}\r\n
    \r\n );\r\n};\r\n\r\n// IndicatorsList.propTypes = {};\r\n\r\nexport default OuterClick(IndicatorsList);\r\n","import React, { useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Input from '@material-ui/core/Input';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\n// import 'react-colorful/dist/index.css';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport Button from '../primitives/Button';\r\n\r\n\r\nconst IndicatorsPopup = ({ indicator, handleUpdateIndicator, closeModal }) => {\r\n const { name, settings, styles } = indicator;\r\n const [settingsList, setSettingsList] = useState(settings);\r\n const { t } = useTranslation();\r\n if (!settings) {\r\n handleUpdateIndicator({ name, styles });\r\n closeModal();\r\n return null;\r\n }\r\n\r\n const handleIndicatorChange = (e) => {\r\n e.persist();\r\n setSettingsList((prevState) => { return { ...prevState, [e.target.name]: parseInt(e.target.value, 10) || '' }; });\r\n };\r\n\r\n const updateIndicator = () => {\r\n handleUpdateIndicator({ name, settings: settingsList, styles });\r\n closeModal();\r\n };\r\n\r\n const renderForm = Object.entries(settingsList).map(([key, value]) => {\r\n let text;\r\n if (name === 'StochasticOscillator' && key === 'n') {\r\n text = t('Indicator.StochasticOscillator.Settings.N');\r\n } else if (key === 'n') {\r\n text = t('Indicator.Settings.Length');\r\n } else {\r\n text = t(`Indicator.${name}.Settings.${key}`);\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n {text}\r\n \r\n
    \r\n
    \r\n );\r\n });\r\n\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {renderForm}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\n// IndicatorsPopup.propTypes = {};\r\n\r\nexport default IndicatorsPopup;\r\n","import {getStore} from './storeContainer'\r\nimport CommandFactory from \"./commands/CommandFactory\"\r\n\r\nexport const refreshStateWorkaround = () =>\r\n{\r\n var oldCounter = getStore().getState().account.positions.open.eventCounter;\r\n return {\r\n completed: ()=>{\r\n setTimeout(()=>{\r\n var newCounter = getStore().getState().account.positions.open.eventCounter;\r\n if (oldCounter == newCounter)\r\n {\r\n if (getStore().getState().account.accountInfo.refreshStateCommand)\r\n {\r\n console.log(\"Refresh workaround Activated\")\r\n CommandFactory.createCommand(getStore().getState().account.accountInfo.refreshStateCommand).execute({mode:'refresh_workaround'})\r\n }\r\n }\r\n else{\r\n console.log(\"Refresh workaround Skip\")\r\n }\r\n },3000)\r\n }\r\n }\r\n}","/* eslint-disable no-mixed-operators */\r\n/* eslint-disable complexity */\r\nimport { ProfitCalculationModes } from '../../background/reducers/symbolsReducer';\r\nimport { ACTION_TYPE } from '../TradePopup/TradePopup';\r\n\r\nconst calcMarginRequirement = (tickObj, type, selectedSymbol, size) => {\r\n const { marginPercentage, tickSize, tickValue, profitCalcMode, leverage, marginInitial, contractSize,mt5marginMultiplier,mt5marginBase } = selectedSymbol;\r\n if (!tickObj) {\r\n return 0;\r\n }\r\n\r\n const openRate = type === ACTION_TYPE.BID ? tickObj.bid : tickObj.ask;\r\n const marginRate = !tickObj.marginConversion || tickObj.marginConversion <= 0 ? 1 : tickObj.marginConversion;\r\n const finalLeverage = !leverage || leverage <= 0 ? 1 : leverage;\r\n const amount = (size || 0) * (marginInitial === 0 ? contractSize : marginInitial);\r\n let marginReq = 0;\r\n\r\n switch (profitCalcMode) {\r\n case ProfitCalculationModes.Sirix:\r\n marginReq = (amount * openRate * marginRate / finalLeverage);\r\n break;\r\n\r\n case ProfitCalculationModes.MT5CFDLeverage:\r\n {\r\n let basePrice = mt5marginBase;\r\n if (basePrice == 0)\r\n {\r\n basePrice = openRate * contractSize;\r\n }\r\n marginReq = (marginRate * _calculateMT5Leverage(leverage,mt5marginMultiplier) * size * basePrice * mt5marginMultiplier);\r\n }break;\r\n case ProfitCalculationModes.MT5CFDIndex:\r\n {\r\n let basePrice = mt5marginBase;\r\n if (basePrice == 0)\r\n {\r\n basePrice = (openRate * ((contractSize * tickValue) / tickSize));\r\n }\r\n marginReq = (marginRate * size * basePrice * mt5marginMultiplier);\r\n }break;\r\n case ProfitCalculationModes.MT5Forex:\r\n {\r\n marginReq = (marginRate * _calculateMT5Leverage(leverage,mt5marginMultiplier) * size * mt5marginBase * mt5marginMultiplier);\r\n } break;\r\n case ProfitCalculationModes.MT5CFD:\r\n {\r\n let basePrice = mt5marginBase;\r\n if (basePrice == 0)\r\n {\r\n basePrice = openRate * contractSize;\r\n }\r\n marginReq = (marginRate * size * basePrice * mt5marginMultiplier);\r\n } break;\r\n case ProfitCalculationModes.Forex:\r\n marginReq = (amount / finalLeverage * marginRate);\r\n break;\r\n\r\n case ProfitCalculationModes.CFD:\r\n marginReq = (amount * openRate * marginRate / finalLeverage );\r\n break;\r\n\r\n case ProfitCalculationModes.Future:\r\n case ProfitCalculationModes.MT5Futures:\r\n //marginReq = amount * marginInitial / marginPercentage * marginRate;\r\n marginReq = amount / marginPercentage * marginRate;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return marginReq;\r\n};\r\n\r\nconst _calculateMT5Leverage= (leverage,multiplier)=>\r\n{\r\n let userLeverage = leverage * multiplier;\r\n if (userLeverage === 0)\r\n {\r\n return 1;\r\n }\r\n return (1/userLeverage);\r\n}\r\n\r\nexport default calcMarginRequirement;\r\n","import React from 'react';\r\n// import PropTypes from 'prop-types';\r\n\r\nconst LoadingIcon = ({ fill }) => {\r\n return (\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// LoadingIcon.propTypes = {};\r\n\r\nexport default LoadingIcon;\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\n\r\nconst FormattedSLTPProfit = ({ profit, symbol, noText = false }) => {\r\n const { t } = useTranslation();\r\n let formatProfit = null;\r\n const profitToDisplay = Math.round((profit + Number.EPSILON) * 100) / 100;\r\n if (profit >= 0) {\r\n formatProfit = (\r\n \r\n {symbol}\r\n {profitToDisplay}\r\n \r\n );\r\n } else {\r\n formatProfit = (\r\n \r\n -\r\n {symbol}\r\n {profitToDisplay * -1}\r\n \r\n );\r\n }\r\n\r\n return (\r\n

    \r\n {!noText && (\r\n \r\n {t('Trade.Execution.EstimatedProfit')}\r\n :\r\n \r\n )}\r\n  \r\n {formatProfit}\r\n

    \r\n );\r\n};\r\n\r\nexport default FormattedSLTPProfit;\r\n","function getRelativePos(elm) {\r\n const pPos = elm.parentNode.getBoundingClientRect(); // parent pos\r\n const cPos = elm.getBoundingClientRect(); // target pos\r\n const pos = {};\r\n\r\n pos.top = cPos.top - pPos.top + elm.parentNode.scrollTop;\r\n pos.right = cPos.right - pPos.right;\r\n pos.bottom = cPos.bottom - pPos.bottom;\r\n pos.left = cPos.left - pPos.left;\r\n\r\n return pos;\r\n}\r\n\r\nfunction easeInOutQuad(t) { return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t; }\r\n\r\nfunction scrollTo(element, to, duration, onDone) {\r\n const start = element.scrollTop;\r\n const change = to - start;\r\n const startTime = performance.now();\r\n let val; let now; let elapsed; let\r\n t;\r\n\r\n function animateScroll() {\r\n now = performance.now();\r\n elapsed = (now - startTime) / 1000;\r\n t = (elapsed / duration);\r\n\r\n element.scrollTop = start + change * easeInOutQuad(t);\r\n\r\n if (t < 1) window.requestAnimationFrame(animateScroll);\r\n else onDone && onDone();\r\n }\r\n\r\n animateScroll();\r\n}\r\n\r\nfunction scrollToElement(container, elm, duration = 0) {\r\n const pos = getRelativePos(elm);\r\n if (duration) {\r\n scrollTo(container, pos.top, duration); // duration in seconds\r\n } else {\r\n container.scrollTo(pos.left, pos.top);\r\n }\r\n}\r\n\r\nexport default scrollToElement;\r\n","import React, { useEffect } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport OuterClick from '../primitives/OuterClick';\r\nimport scrollToElement from '../utilsUI/scrollToElement';\r\nimport {roundNumberPipDigit} from '../utilsUI/formatWSTick'\r\nimport './UnitsDropDown.css';\r\n\r\n\r\nconst preparePendingPricesList = (currentPendingPrice, pipDigit,displayDigit, tickPrice) => {\r\n\r\n const resultList = [];\r\n let stepValue = (10 ** -pipDigit);\r\n if (pipDigit != displayDigit)\r\n {\r\n stepValue = (10 ** -displayDigit) * 5;\r\n }\r\n const pipDigitRounding = 10 ** pipDigit;\r\n const priceRounding = 10 ** displayDigit;\r\n \r\n if (!(currentPendingPrice > 0))\r\n {\r\n currentPendingPrice = tickPrice;\r\n }\r\n\r\n let currentRoundedPrice = Math.round(currentPendingPrice * pipDigitRounding) / pipDigitRounding;\r\n let count = 1;\r\n for (let i = -40; i <= 40; i += 1) {\r\n let price = currentRoundedPrice + (stepValue * i);\r\n if (i == 0)\r\n {\r\n price = currentPendingPrice;\r\n }\r\n \r\n if (price > 0)\r\n {\r\n resultList.push({\r\n key : i,\r\n index: count,\r\n price : Math.round(price * priceRounding )/ priceRounding,\r\n distance: (price- tickPrice) * pipDigitRounding\r\n });\r\n count += 1;\r\n }\r\n }\r\n\r\n return resultList; \r\n};\r\n\r\n\r\nconst PendingDropDown = ({ selectPendingPrice, togglePendingDropDown, pendingPrice, pipDigit,displayDigit, tickObj, isBidActive }) => {\r\n useEffect(() => {\r\n const container = document.getElementById('trade-popup__pending-list');\r\n const position = document.getElementById('scroll-pointer');\r\n scrollToElement(container, position);\r\n }, []);\r\n const { t } = useTranslation();\r\n const tickPrice = isBidActive ? tickObj?.bid : tickObj?.ask;\r\n\r\n const renderUnits = preparePendingPricesList(pendingPrice, pipDigit,displayDigit, tickPrice);\r\n\r\n const handleUnitsSelect = (e) => {\r\n e.stopPropagation();\r\n let selectedElement = e.target.closest('.units-row');\r\n if (selectedElement)\r\n {\r\n let index = parseInt(selectedElement.getAttribute('index'));\r\n if (index)\r\n {\r\n let value = renderUnits[index -1];\r\n if (value)\r\n {\r\n selectPendingPrice(value.price); \r\n togglePendingDropDown();\r\n }\r\n }\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    {t('InstrumetInfo.Details.Price')}
    \r\n {/*
    {t('PendingOrder.Pipdiff')}
    */}\r\n
    {t('General.Pips')}
    \r\n
    \r\n
    \r\n
    \r\n {renderUnits.map(item =>{\r\n return (
    \r\n
    {roundNumberPipDigit(item.price,displayDigit)}
    \r\n
    \r\n {item.distance > 0 && '+'}\r\n {roundNumberPipDigit(item.distance,displayDigit-pipDigit)}\r\n
    \r\n
    )\r\n })}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\n// PendingDropDown.propTypes = {};\r\n\r\nexport default OuterClick(PendingDropDown, '#pending-price-stepper');\r\n","/* eslint-disable no-nested-ternary */\r\n/* eslint-disable no-lonely-if */\r\n/* eslint-disable max-len */\r\n/* eslint-disable complexity */\r\nimport React, { Fragment, useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport Switch from '../primitives/Switch';\r\nimport Button from '../primitives/Button';\r\nimport InputStepper from '../primitives/InputStepper';\r\nimport { ProfitCalculationService } from '../../background/calculations/profitCalculationService';\r\nimport TickItemToolTipContent from '../TickItem/TickItemToolTipContent';\r\nimport roundToPrecision from '../utilsUI/roundToPrecision';\r\nimport countDecimals from '../utilsUI/countDecimals';\r\nimport FormattedSLTPProfit from './FormattedSLTPProfit';\r\n\r\nimport PendingDropDown from './PendingDropDown';\r\nimport { ACTION_TYPE } from './TradePopup';\r\n\r\n\r\nconst TradePopupStepTwo = ({\r\n pendingOrder,\r\n handleSwitchChange,\r\n // cancelOrder,\r\n price,\r\n status,\r\n onClose,\r\n isPending,\r\n handleSetValue,\r\n pendingOrderPrice,\r\n isBidType,\r\n selectedSymbol,\r\n selectedUnits,\r\n symbol,\r\n response,\r\n tickObj,\r\n activeTextColor,\r\n inactiveTextColor,\r\n generalColor,\r\n systemColor,\r\n enableSLTP,\r\n lotStep,\r\n // SL,\r\n // TP,\r\n // setSL,\r\n // setTP,\r\n buySL,\r\n sellSL,\r\n setBuySL,\r\n setSellSL,\r\n buyTP,\r\n sellTP,\r\n setBuyTP,\r\n setSellTP,\r\n pendingSL,\r\n pendingTP,\r\n setPendingSL,\r\n setPendingTP\r\n}) => {\r\n const [showError, setShowError] = useState('');\r\n const [showInfo, setShowInfo] = useState(false);\r\n const [pendingDropDown, setPendingDropDown] = useState(false);\r\n const { t } = useTranslation();\r\n let { pipDigit, displayDigit } = selectedSymbol;\r\n displayDigit = Math.max(displayDigit, pipDigit);\r\n const isBid = !!isBidType;\r\n const type = isBidType ? 1 : 0;\r\n let openRate = isBid ? tickObj?.bid : tickObj?.ask;\r\n if (isPending) {\r\n openRate = pendingOrderPrice;\r\n }\r\n const closeConvertion = isBid ? tickObj?.bidProfitConversion : tickObj?.askProfitConversion;\r\n\r\n let pipNumber = 1;\r\n for (let i = 0; i < pipDigit; i += 1) {\r\n pipNumber /= 10;\r\n }\r\n\r\n // useEffect(() => {\r\n // setPendingPrice(pendingOrderPrice);\r\n // }, [pendingOrderPrice]);\r\n\r\n // const executionDescription = isPending ? '(Pending Order)' : '(Market Execution)';\r\n const handleShowError = (error) => {\r\n setShowError(error);\r\n };\r\n\r\n const toggleInfo = () => {\r\n setShowInfo((prevState) => !prevState);\r\n };\r\n\r\n const togglePendingDropDown = () => {\r\n setPendingDropDown((prevState) => !prevState);\r\n };\r\n\r\n const closePendingDropDown = () => {\r\n setPendingDropDown(false);\r\n };\r\n\r\n const enterSL = () => {\r\n if ((!pendingSL?.number) && isPending) {\r\n let selectedSL = null;\r\n if (isBid) {\r\n selectedSL = pendingOrderPrice + 4 * pipNumber;\r\n } else {\r\n selectedSL = pendingOrderPrice - 4 * pipNumber;\r\n }\r\n setPendingSL({\r\n number: roundToPrecision(selectedSL, displayDigit),\r\n representation: roundToPrecision(selectedSL, displayDigit).toString()\r\n });\r\n }\r\n if ((!buySL?.number) && !isBid && !isPending) {\r\n setBuySL({\r\n number: roundToPrecision((tickObj.bid - 4 * pipNumber), displayDigit),\r\n representation: roundToPrecision((tickObj.bid - 4 * pipNumber), displayDigit).toString()\r\n });\r\n }\r\n if ((!sellSL?.number) && isBid && !isPending) {\r\n setSellSL({\r\n number: roundToPrecision((tickObj.ask + 4 * pipNumber), displayDigit),\r\n representation: roundToPrecision((tickObj.ask + 4 * pipNumber), displayDigit).toString()\r\n });\r\n }\r\n };\r\n\r\n const enterTP = () => {\r\n if ((!pendingTP?.number) && isPending) {\r\n let selectedTP = null;\r\n if (isBid) {\r\n selectedTP = pendingOrderPrice - 4 * pipNumber;\r\n } else {\r\n selectedTP = pendingOrderPrice + 4 * pipNumber;\r\n }\r\n setPendingTP({\r\n number: roundToPrecision(selectedTP, displayDigit),\r\n representation: roundToPrecision(selectedTP, displayDigit).toString()\r\n });\r\n }\r\n if ((!buyTP?.number) && !isBid && !isPending) {\r\n setBuyTP({\r\n number: roundToPrecision((tickObj.bid + 4 * pipNumber), displayDigit),\r\n representation: roundToPrecision((tickObj.bid + 4 * pipNumber), displayDigit).toString()\r\n });\r\n }\r\n if ((!sellTP?.number) && isBid && !isPending) {\r\n setSellTP({\r\n number: roundToPrecision((tickObj.ask - 4 * pipNumber), displayDigit),\r\n representation: roundToPrecision((tickObj.ask - 4 * pipNumber), displayDigit).toString()\r\n });\r\n }\r\n };\r\n\r\n const handleSLChange = (SLPrice) => {\r\n let verifiedPrice = SLPrice === '' ? null : SLPrice;\r\n const decimals = countDecimals(SLPrice.replace(/[^0-9\\.]/g, ''));\r\n if (decimals > displayDigit) {\r\n verifiedPrice = roundToPrecision(verifiedPrice, displayDigit, true).toString();\r\n }\r\n const SLPriceObject = { number: (SLPrice === '0' || SLPrice === '') ? null : parseFloat(verifiedPrice.replace(',', ''), decimals), representation: verifiedPrice };\r\n if (isPending) {\r\n setPendingSL(SLPriceObject);\r\n } else {\r\n if (isBid) {\r\n setSellSL(SLPriceObject);\r\n } else {\r\n setBuySL(SLPriceObject);\r\n }\r\n }\r\n };\r\n\r\n const handleTPChange = (TPPrice) => {\r\n let verifiedPrice = TPPrice === '' ? null : TPPrice;\r\n const decimals = countDecimals(TPPrice.replace(/[^0-9\\.]/g, ''));\r\n if (decimals > displayDigit) {\r\n verifiedPrice = roundToPrecision(verifiedPrice, displayDigit, true).toString();\r\n }\r\n const TPPriceObject = { number: (TPPrice === '0' || TPPrice === '') ? null : parseFloat(verifiedPrice.replace(',', ''), decimals), representation: verifiedPrice };\r\n if (isPending) {\r\n setPendingTP(TPPriceObject);\r\n } else {\r\n if (isBid) {\r\n setSellTP(TPPriceObject);\r\n } else {\r\n setBuyTP(TPPriceObject);\r\n }\r\n }\r\n };\r\n\r\n\r\n return (\r\n \r\n
    \r\n \r\n {/* {executionDescription} */}\r\n {isPending && (\r\n \r\n \r\n {showError && {t(showError)}}\r\n {/* {pendingOrderText} */}\r\n {pendingDropDown && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n {enableSLTP && (\r\n
    \r\n
    \r\n

    {t('InstrumetInfo.Details.StopLoss')}

    \r\n \r\n {!isPending && !!buySL?.number && !isBid && (\r\n \r\n )}\r\n {!isPending && !!sellSL?.number && isBid && (\r\n \r\n )}\r\n {isPending && !!pendingSL?.number && (\r\n \r\n )}\r\n
    \r\n
    \r\n

    {t('InstrumetInfo.Details.TakeProfit')}

    \r\n \r\n {!isPending && !!buyTP?.number && !isBid && (\r\n \r\n )}\r\n {!isPending && !!sellTP?.number && isBid && (\r\n \r\n )}\r\n {isPending && !!pendingTP?.number && (\r\n \r\n )}\r\n
    \r\n
    \r\n )}\r\n \r\n {showInfo && }\r\n
    \r\n {(response || status) && (\r\n
    \r\n {response && (\r\n \r\n

    {t('Trade.Execute.Failed')}

    \r\n {t(response.result ?? 'trading.error.GeneralError')}\r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\n// TradePopupStepTwo.propTypes = {};\r\n\r\nexport default TradePopupStepTwo;\r\n","/* eslint-disable complexity */\r\nimport React, { useRef } from 'react';\r\n\r\nimport PubsubSubscription from '../../background/repositories/PubsubSubscription';\r\nimport { prepareBidAsk } from '../utilsUI/formatWSTick';\r\n\r\n\r\nconst TradePopupWSTick = ({\r\n selectedSymbol, onBidClick, onAskClick, isBidActive, tradePopupButton, tradePopupButtonBuy, tradePopupButtonSell, tickUp, tickDown, tickNeutral\r\n}) => {\r\n const pipDigit = selectedSymbol.displayDigit;\r\n const [symbolTick, previousTick] = PubsubSubscription.subscribeObjAndPrev(selectedSymbol?.tick);\r\n const { bidOutput, askOutput } = prepareBidAsk(symbolTick, previousTick, pipDigit, tickUp, tickDown, tickNeutral);\r\n const thumbClass = isBidActive ? 'trade-popup__thumb' : 'trade-popup__thumb trade-popup__thumb--active';\r\n const bidStyle = isBidActive ? { backgroundColor: tradePopupButtonSell } : {};\r\n const askStyle = !isBidActive ? { backgroundColor: tradePopupButtonBuy } : {};\r\n const bidContainer = useRef();\r\n const askContainer = useRef();\r\n const handleOnFocusBid = () => {\r\n bidContainer.current.style.backgroundColor = tradePopupButtonSell;\r\n };\r\n const handleOnFocusAsk = () => {\r\n askContainer.current.style.backgroundColor = tradePopupButtonBuy;\r\n };\r\n const handleOnBlurBid = () => {\r\n bidContainer.current.style.backgroundColor = isBidActive ? tradePopupButtonSell : tradePopupButton.backgroundColor;\r\n };\r\n const handleOnBlurAsk = () => {\r\n askContainer.current.style.backgroundColor = !isBidActive ? tradePopupButtonBuy : tradePopupButton.backgroundColor;\r\n };\r\n\r\n return (\r\n
    \r\n \r\n undefined}\r\n onBlur={() => undefined}\r\n onMouseOver={handleOnFocusBid}\r\n onMouseOut={handleOnBlurBid}\r\n ref={bidContainer}\r\n >\r\n Sell\r\n
    {bidOutput}
    \r\n
    \r\n undefined}\r\n onBlur={() => undefined}\r\n onMouseOver={handleOnFocusAsk}\r\n onMouseOut={handleOnBlurAsk}\r\n ref={askContainer}\r\n >\r\n Buy\r\n
    {askOutput}
    \r\n \r\n \r\n );\r\n};\r\n\r\n// TradePopupWSTick.propTypes = {};\r\n\r\nexport default TradePopupWSTick;\r\n","/* eslint-disable prefer-template */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport OuterClick from '../primitives/OuterClick';\r\nimport calcMarginRequirement from '../utilsUI/calcMarginRequirement';\r\nimport { roundNumberPipDigit } from '../utilsUI/formatWSTick';\r\nimport scrollToElement from '../utilsUI/scrollToElement';\r\nimport { ProfitCalculationModes } from '../../background/reducers/symbolsReducer';\r\n\r\nimport { ACTION_TYPE } from './TradePopup';\r\nimport './UnitsDropDown.css';\r\n\r\nconst UNITS_MULTIPLIER = [\r\n 0.001,\r\n 0.01,\r\n 0.1,\r\n 0.125,\r\n 0.15,\r\n 0.175,\r\n 0.2,\r\n 0.225,\r\n 0.25,\r\n 0.275,\r\n 0.3,\r\n 0.325,\r\n 0.35,\r\n 0.375,\r\n 0.4,\r\n 0.425,\r\n 0.45,\r\n 0.475,\r\n 0.5,\r\n 0.525,\r\n 0.55,\r\n 0.575,\r\n 0.6,\r\n 0.625,\r\n 0.65,\r\n 0.675,\r\n 0.7,\r\n 0.725,\r\n 0.75,\r\n 0.775,\r\n 0.8,\r\n 0.825,\r\n 0.85,\r\n 0.875,\r\n 0.9,\r\n 0.925,\r\n 0.95,\r\n 0.975,\r\n 1,\r\n 1.25,\r\n 1.5,\r\n 1.75,\r\n 1.1,\r\n 1.125,\r\n 1.15,\r\n 1.175,\r\n 1.2,\r\n 1.225,\r\n 1.25,\r\n 1.275,\r\n 1.3,\r\n 1.35,\r\n 1.4,\r\n 1.45,\r\n 1.5,\r\n 1.6,\r\n 1.7,\r\n 1.8,\r\n 1.9,\r\n 2,\r\n 2.1,\r\n 2.2,\r\n 2.3,\r\n 2.4,\r\n 2.5,\r\n 2.6,\r\n 2.7,\r\n 2.8,\r\n 2.9,\r\n 3,\r\n 4,\r\n 5,\r\n 6,\r\n 7,\r\n 8,\r\n 9,\r\n 10,\r\n 12,\r\n 14,\r\n 16,\r\n 18,\r\n 20,\r\n 25,\r\n 30,\r\n 35,\r\n 40,\r\n 45,\r\n 50,\r\n 60,\r\n 70,\r\n 80,\r\n 90,\r\n 100,\r\n 200,\r\n 300,\r\n 400,\r\n 500,\r\n 600,\r\n 700,\r\n 800,\r\n 900,\r\n 1000,\r\n 2000,\r\n 3000,\r\n 4000,\r\n 5000,\r\n 6000,\r\n 7000,\r\n 8000,\r\n 9000,\r\n 10000,\r\n 20000,\r\n 30000,\r\n 40000,\r\n 50000,\r\n 60000,\r\n 70000,\r\n 80000,\r\n 90000,\r\n 100000,\r\n 1000000,\r\n 10000000\r\n];\r\n\r\nconst prepareUnitsList = (currentUnits, stepValue, tickObj, type, selectedSymbol, pnlTick) => {\r\n const resultSet = new Set();\r\n const resultArray = [];\r\n let counter = 0;\r\n UNITS_MULTIPLIER.forEach((multiply) => {\r\n // eslint-disable-next-line prefer-template\r\n const unitValue = +(Math.round((Math.round((currentUnits * multiply) / stepValue) * stepValue) + 'e+2') + 'e-2');\r\n if (unitValue) {\r\n resultSet.add(unitValue);\r\n }\r\n });\r\n\r\n [...resultSet].forEach((item) => {\r\n if (Math.round(calcMarginRequirement(tickObj, type, selectedSymbol, item)) <= pnlTick?.equity) {\r\n resultArray.push(item);\r\n } else if (counter < 3 && Math.round(calcMarginRequirement(tickObj, type, selectedSymbol, item)) > pnlTick?.equity) {\r\n counter += 1;\r\n resultArray.push(item);\r\n }\r\n });\r\n\r\n return resultArray;\r\n};\r\n\r\n\r\nconst UnitsDropDown = ({\r\n selectUnits, toggleUnitsDropDown, selectedUnits, contractSize, stepValue, tickObj, isBidActive, unitsName, selectedSymbol, pnlTick, currency, handleClick\r\n}) => {\r\n const [initialUnitsList, setInitialUnitsList] = useState(null);\r\n const selectedUnitsNumber = typeof selectedUnits === 'string' ? selectedUnits.replace(/[^0-9\\.]/g, '') : selectedUnits;\r\n const type = isBidActive ? ACTION_TYPE.BID : ACTION_TYPE.ASK;\r\n const { t } = useTranslation();\r\n const handleUnitsSelect = (e) => {\r\n e.stopPropagation();\r\n if (e.target.closest('.units-row')) {\r\n selectUnits(e.target.closest('.units-row').firstChild.innerHTML);\r\n }\r\n handleClick();\r\n };\r\n\r\n useEffect(() => {\r\n setInitialUnitsList(prepareUnitsList(selectedUnitsNumber, stepValue, tickObj, type, selectedSymbol, pnlTick));\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (initialUnitsList) {\r\n const container = document.getElementById('trade-popup__units-list');\r\n const position = document.getElementById('units-scroll-pointer');\r\n if (container && position) {\r\n scrollToElement(container, position);\r\n }\r\n }\r\n }, [initialUnitsList]);\r\n\r\n const convertionRate = isBidActive ? (tickObj?.askProfitConversion || 1) : (tickObj?.bidProfitConversion || 1);\r\n const currentPrice = isBidActive ? (tickObj?.bid || 1) : (tickObj?.ask || 1);\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    {unitsName}
    \r\n
    {t('Units.Value')}
    \r\n
    {t('Trade.Margin.Title')}
    \r\n
    \r\n
    \r\n
    \r\n {initialUnitsList?.length > 0 && initialUnitsList.map((unit) => {\r\n return (\r\n
    pnlTick?.equity}>\r\n
    {unit}
    \r\n
    \r\n {currency}\r\n {selectedSymbol.profitCalcMode == ProfitCalculationModes.Sirix\r\n ? roundNumberPipDigit(unit * currentPrice * contractSize * convertionRate, 2)\r\n : roundNumberPipDigit(unit * currentPrice * contractSize / convertionRate, 2)}\r\n
    \r\n
    \r\n {currency}\r\n {roundNumberPipDigit(calcMarginRequirement(tickObj, type, selectedSymbol, unit), 2)}\r\n
    \r\n
    \r\n );\r\n })}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\n// UnitsDropDown.propTypes = {};\r\n\r\nexport default OuterClick(UnitsDropDown, '#units-stepper');\r\n","import { SendEventToFullStory } from '../../background/storeListener/fullStoryListener';\r\nimport { SendEventToGoogleAnalytics } from '../../background/storeListener/googleAnalyticsListener';\r\nimport {SendEventToLuckyOrange} from '../../background/storeListener/luckyOrangeListener';\r\n\r\nexport function createOpenPositionEvent(tickObj, pipValue, marginRequirement, selectedSymbol, selectedUnits, orderType, mainChartController) {\r\n let start = new Date().getTime();\r\n let selectedIndicators = mainChartController.getIndicators();\r\n let selectedIndicatorsArr = selectedIndicators.map(x => x.name());\r\n let selectedChartPeriod = mainChartController.getChartPeriod();\r\n\r\n let fsEventParams = createFullStoryExecutionEventParams(tickObj, pipValue, marginRequirement, selectedSymbol, selectedUnits, orderType, selectedIndicatorsArr, selectedChartPeriod, false);\r\n let gaEventParams = createGoogleAnalyticsExecutionEventParams(tickObj, pipValue, marginRequirement, selectedSymbol, selectedUnits, orderType, selectedIndicatorsArr, selectedChartPeriod, false);\r\n\r\n return (wasTradePopupClosed, isSuccessful, openPrice, error) => {\r\n try {\r\n var executionTime = new Date().getTime() - start;\r\n\r\n fsEventParams.openPrice_str = openPrice.toString();\r\n fsEventParams.isSuccessful_bool = isSuccessful;\r\n fsEventParams.error_str = error;\r\n fsEventParams.wasTradePopupClosed_bool = wasTradePopupClosed;\r\n fsEventParams.executionTime_str = executionTime.toString();\r\n\r\n gaEventParams.openPrice = openPrice.toString();\r\n gaEventParams.isSuccessful = isSuccessful;\r\n gaEventParams.error = error;\r\n gaEventParams.wasTradePopupClosed = wasTradePopupClosed;\r\n gaEventParams.executionTime = executionTime.toString();\r\n\r\n SendEventToGoogleAnalytics(\"OpenPosition\", gaEventParams);\r\n SendEventToFullStory(\"OpenPosition\", fsEventParams);\r\n SendEventToLuckyOrange([`OpenPosition`, `OpenPosition:symbol:${selectedSymbol}`, `OpenPosition:success:${isSuccessful}`]);\r\n } catch (ex) {\r\n }\r\n }\r\n}\r\n\r\n\r\nexport function createPendingOrderEvent(tickObj, pipValue, marginRequirement, selectedSymbol, selectedUnits, orderType, requestPrice, mainChartController) {\r\n\r\n let start = new Date().getTime();\r\n let selectedIndicators = mainChartController.getIndicators();\r\n let selectedIndicatorsArr = selectedIndicators.map(x => x.name());\r\n let selectedChartPeriod = mainChartController.getChartPeriod();\r\n\r\n let fsEventParams = createFullStoryExecutionEventParams(tickObj, pipValue, marginRequirement, selectedSymbol, selectedUnits, orderType, selectedIndicatorsArr, selectedChartPeriod, true, requestPrice);\r\n let gaEventParams = createGoogleAnalyticsExecutionEventParams(tickObj, pipValue, marginRequirement, selectedSymbol, selectedUnits, orderType, selectedIndicatorsArr, selectedChartPeriod, true, requestPrice);\r\n\r\n return (wasTradePopupClosed, isSuccessful, error) => {\r\n try {\r\n var executionTime = new Date().getTime() - start;\r\n\r\n fsEventParams.isSuccessful_bool = isSuccessful;\r\n fsEventParams.error_str = error;\r\n fsEventParams.wasTradePopupClosed_bool = wasTradePopupClosed;\r\n fsEventParams.executionTime_str = executionTime.toString();\r\n\r\n gaEventParams.isSuccessful = isSuccessful;\r\n gaEventParams.error = error;\r\n gaEventParams.wasTradePopupClosed = wasTradePopupClosed;\r\n gaEventParams.executionTime = executionTime.toString();\r\n\r\n SendEventToGoogleAnalytics(\"PendingOrderRequest\", gaEventParams);\r\n SendEventToFullStory(\"PendingOrderRequest\", fsEventParams);\r\n SendEventToLuckyOrange([`PendingOrderRequest`, `PendingOrderRequest:symbol:${selectedSymbol}`, `PendingOrderRequest:success:${isSuccessful}`]);\r\n }\r\n catch (ex) {\r\n }\r\n }\r\n}\r\n\r\n const createFullStoryExecutionEventParams = (tickObj, pipValue, marginRequirement, selectedSymbol, selectedUnits, orderType, selectedIndicatorsArr, selectedChartPeriod, ispending, requestPrice = null) => {\r\n let fsEventParams = {\r\n pipValue_str: pipValue,\r\n marginRequirement_str: marginRequirement,\r\n symbol_str: selectedSymbol,\r\n amount_real: selectedUnits,\r\n actionType_str: orderType === \"bid\" ? \"Sell\" : \"Buy\",\r\n ask_real: tickObj.ask,\r\n bid_real: tickObj.bid,\r\n sl_real: 0,\r\n tp_real: 0,\r\n selectedIndicators_strs: selectedIndicatorsArr,\r\n selectedChartPeriod_str: selectedChartPeriod,\r\n };\r\n\r\n if (ispending) {\r\n fsEventParams.requestPrice_str = requestPrice;\r\n\r\n if (orderType === \"bid\") {\r\n fsEventParams.actionType_str = requestPrice <= tickObj?.bid ? \"SellStop\" : \"SellLimit\"\r\n } else {\r\n fsEventParams.actionType_str = requestPrice > tickObj?.ask ? \"BuyStop\" : \"BuyLimit\";\r\n }\r\n }\r\n return fsEventParams;\r\n }\r\n\r\n const createGoogleAnalyticsExecutionEventParams = (tickObj, pipValue, marginRequirement, selectedSymbol, selectedUnits, orderType, selectedIndicatorsArr, selectedChartPeriod, ispending, requestPrice = null) => {\r\n let gaEventParams = {\r\n pipValue: pipValue,\r\n marginRequirement: marginRequirement,\r\n symbol: selectedSymbol,\r\n amount: selectedUnits,\r\n actionType: orderType === \"bid\" ? \"Sell\" : \"Buy\",\r\n ask: tickObj.ask,\r\n bid: tickObj.bid,\r\n sl: 0,\r\n tp: 0,\r\n selectedIndicators: selectedIndicatorsArr,\r\n selectedChartPeriod: selectedChartPeriod,\r\n };\r\n if (ispending) {\r\n gaEventParams.requestPrice = requestPrice;\r\n\r\n if (orderType === \"bid\") {\r\n gaEventParams.actionType = requestPrice <= tickObj?.bid ? \"SellStop\" : \"SellLimit\"\r\n } else {\r\n gaEventParams.actionType = requestPrice > tickObj?.ask ? \"BuyStop\" : \"BuyLimit\";\r\n }\r\n }\r\n return gaEventParams;\r\n }\r\n","/* eslint-disable no-unused-expressions */\r\n/* eslint-disable no-mixed-operators */\r\n/* eslint-disable complexity */\r\n/* eslint-disable max-len */\r\n\r\nimport React, { Fragment, useEffect, useState } from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\n// import PropTypes from 'prop-types';\r\nimport PubsubSubscription from '../../background/repositories/PubsubSubscription';\r\nimport { CommandFactory } from '../../background/commands/CommandFactory';\r\nimport {refreshStateWorkaround} from '../../background/refreshStateWorkaround';\r\n\r\nimport OuterClick from '../primitives/OuterClick';\r\nimport InputStepper from '../primitives/InputStepper';\r\nimport { roundNumberPipDigit } from '../utilsUI/formatWSTick';\r\nimport roundToPrecision from '../utilsUI/roundToPrecision';\r\nimport countDecimals from '../utilsUI/countDecimals';\r\nimport { ProfitCalculationModes } from '../../background/reducers/symbolsReducer';\r\nimport calcMarginRequirement from '../utilsUI/calcMarginRequirement';\r\nimport Button from '../primitives/Button';\r\nimport LoadSpinner from '../primitives/LoadSpinner';\r\nimport LoadingIcon from '../icons/LoadingIcon';\r\n\r\nimport TradePopupStepTwo from './TradePopupStepTwo';\r\nimport TradePopupWSTick from './TradePopupWSTick';\r\nimport UnitsDropDown from './UnitsDropDown';\r\nimport * as TradePopupAnalyticsEvents from './TradePopupAnalyticsEvents';\r\nimport './TradePopup.css';\r\n// import { MonetizationOn } from '@material-ui/icons';\r\n\r\nexport const ACTION_TYPE = {\r\n BID: 'bid',\r\n ASK: 'ask'\r\n};\r\n\r\nconst calcPipValue = (prices, selectedSymbol, selectedUnits, orderType) => {\r\n const { pipDigit, contractSize, profitCalcMode } = selectedSymbol;\r\n // let pip = Math.pow(10, -pipDigit);\r\n const pip = Math.pow(10, -pipDigit);\r\n if (!prices) {\r\n return 0;\r\n }\r\n let conversionRate = (prices.askProfitConversion + prices.bidProfitConversion) / 2;\r\n\r\n if (orderType) {\r\n conversionRate = orderType === ACTION_TYPE.BID\r\n ? prices.bidProfitConversion\r\n : prices.askProfitConversion;\r\n }\r\n\r\n if (profitCalcMode === ProfitCalculationModes.Sirix) {\r\n return pip * selectedUnits * conversionRate * contractSize;\r\n }\r\n return pip * selectedUnits / conversionRate * contractSize;\r\n};\r\n\r\n\r\nconst TradePopup = ({ onClose, selectedSymbol, mainChartController }) => {\r\n const enableSLTP = useSelector((state) => { return (state.account.accountInfo.featuresData.execution.enableTpSl); });\r\n const { currency: { symbol } } = useSelector((state) => { return (state.account.accountInfo); }, shallowEqual);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isProcessing, setIsProcessing] = useState(false);\r\n const [unitsDropDown, setUnitsDropDown] = useState(false);\r\n const [showError, setShowError] = useState('');\r\n const [pendingOrder, setPendingOrder] = useState(false);\r\n const [pendingOrderPrice, setPendingOrderPrice] = useState(null);\r\n const [response, setResponse] = useState('');\r\n const [orderInfo, setOrderInfo] = useState({ status: '', price: null });\r\n const [type, setType] = useState(ACTION_TYPE.ASK);\r\n const [isPopupOpen] = useState({ isOpen: true });\r\n const [buySL, setBuySL] = useState({ number: null , representation: '' });\r\n const [buyTP, setBuyTP] = useState({ number: null , representation: '' });\r\n const [sellSL, setSellSL] = useState({ number: null , representation: '' });\r\n const [sellTP, setSellTP] = useState({ number: null , representation: '' });\r\n const [pendingSL, setPendingSL] = useState({ number: null , representation: '' });\r\n const [pendingTP, setPendingTP] = useState({ number: null , representation: '' });\r\n const { t } = useTranslation();\r\n const {\r\n Execution: {\r\n BuyBackground, SellBackground, SuccessColor, FailedColor\r\n },\r\n SubHeader: { Text },\r\n MainColor: { ActiveText, InactiveText },\r\n Text: { GeneralColor, SystemColor },\r\n Tick: { TickUp, TickDown, TickNeutral }\r\n } = useSelector((state) => (state.brand.theme));\r\n const { ActiveTheme } = useSelector((state) => { return (state.brand.themeSettings); }, shallowEqual);\r\n const tradePopupButton = { backgroundColor: ActiveTheme === 'dark' ? '#283b55' : '#D3D5E0' };\r\n const {\r\n displayName,\r\n description,\r\n contractSize,\r\n tick,\r\n minimumLot,\r\n maximumLot,\r\n lotStep\r\n } = selectedSymbol;\r\n const [selectedUnits, setSelectedUnits] = useState({ number: Math.max(minimumLot, lotStep), representation: roundNumberPipDigit(Math.max(minimumLot, lotStep)) });\r\n const tickObj = PubsubSubscription.subscribeObj(tick);\r\n const pnlTick = PubsubSubscription.subscribeObj({ key: 'MOVINGPNL', repId: 'ACCOUNT_PNL' });\r\n\r\n const isBidType = type === ACTION_TYPE.BID;\r\n\r\n const marginRequirement = calcMarginRequirement(tickObj, type, selectedSymbol, selectedUnits.number);\r\n const pipValue = calcPipValue(tickObj, selectedSymbol, selectedUnits.number, type);\r\n\r\n const handleSetValue = (units) => {\r\n setShowError('');\r\n const decimals = countDecimals(units.replace(/[^0-9\\.]/g, ''));\r\n const unitsValue = decimals === 0 ? units.replace(/[^0-9\\.]/g, '') : roundNumberPipDigit(units, decimals);\r\n setSelectedUnits({ number: roundToPrecision(unitsValue, decimals), representation: units });\r\n };\r\n\r\n const handleSelectValue = (units) => {\r\n setShowError('');\r\n const decimals = countDecimals(units);\r\n setSelectedUnits({ number: roundToPrecision(units, decimals), representation: roundNumberPipDigit(units, decimals) });\r\n };\r\n\r\n const handleSetPendingPrice = (units) => {\r\n response && setResponse('');\r\n if (typeof units === 'number') {\r\n setPendingOrderPrice(units);\r\n }\r\n if (typeof units === 'string') {\r\n const decimals = countDecimals(units.replace(/[^0-9\\.]/g, ''));\r\n const unitsValue = decimals === 0 ? units.replace(/[^0-9\\.]/g, '') : roundToPrecision(units, decimals);\r\n setPendingOrderPrice(unitsValue);\r\n }\r\n };\r\n\r\n const handleBid = () => {\r\n response && setResponse('');\r\n setType(ACTION_TYPE.BID);\r\n };\r\n\r\n const handleAsk = () => {\r\n response && setResponse('');\r\n setType(ACTION_TYPE.ASK);\r\n };\r\n\r\n const cancelOrder = () => {\r\n setResponse('');\r\n setType('');\r\n };\r\n\r\n const handleOpenPosition = async (e) => {\r\n e.preventDefault();\r\n\r\n const command = CommandFactory.createCommand(selectedSymbol.openPositionCMD);\r\n setOrderInfo((prevState) => {\r\n return { ...prevState, price: isBidType ? PubsubSubscription.getValueNative(tick).bid : PubsubSubscription.getValueNative(tick).ask };\r\n });\r\n setIsProcessing(true);\r\n\r\n\r\n const sendOpenPositionEventFunc = TradePopupAnalyticsEvents.createOpenPositionEvent(tickObj, roundNumberPipDigit(pipValue, 2), roundNumberPipDigit(marginRequirement, 2), selectedSymbol.displayName, selectedUnits.number, type, mainChartController);\r\n try {\r\n setResponse(null);\r\n let refreshWorkaround = refreshStateWorkaround();\r\n const res = await command.execute({\r\n actionType: isBidType ? 1 : 0,\r\n amount: selectedUnits.number,\r\n stopLoss: isBidType ? sellSL?.number : buySL?.number,\r\n takeProfit: isBidType ? sellTP?.number : buyTP?.number\r\n });\r\n\r\n if (res.isSuccessful) {\r\n refreshWorkaround.completed();\r\n sendOpenPositionEventFunc(!isPopupOpen.isOpen, true, res.price, res.result);\r\n\r\n setOrderInfo((prevState) => {\r\n return { ...prevState, status: 'success', price: res.price };\r\n });\r\n } else {\r\n sendOpenPositionEventFunc(!isPopupOpen.isOpen, false, 0, res.result ?? 'trading.error.GeneralError');\r\n\r\n setResponse(res);\r\n }\r\n } catch (err) {\r\n sendOpenPositionEventFunc(!isPopupOpen.isOpen, false, 0, 'trading.error.GeneralError');\r\n\r\n setResponse(err);\r\n }\r\n\r\n setIsProcessing(false);\r\n };\r\n\r\n const handleSwitchChange = () => {\r\n response && setResponse('');\r\n if (pendingOrderPrice === null) {\r\n setPendingOrderPrice(isBidType ? PubsubSubscription.getValueNative(tick).bid : PubsubSubscription.getValueNative(tick).ask);\r\n }\r\n setPendingOrder((prevState) => !prevState);\r\n };\r\n\r\n const handleShowError = (error) => {\r\n setShowError(error);\r\n };\r\n\r\n const toggleUnitsDropDown = () => {\r\n setUnitsDropDown((prevState) => !prevState);\r\n };\r\n\r\n const openUnitsDropDown = () => {\r\n response && setResponse('');\r\n setUnitsDropDown(true);\r\n };\r\n\r\n useEffect(() => {\r\n const input = document.getElementById('units-stepper');\r\n const onLeaveInput = (e) => {\r\n if (e.key === 'Enter' || e.key === 'Tab') {\r\n setUnitsDropDown(false);\r\n input.blur();\r\n }\r\n };\r\n document.addEventListener('keyup', onLeaveInput);\r\n return function cleanup() {\r\n document.removeEventListener('keyup', onLeaveInput);\r\n isPopupOpen.isOpen = false;\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n const input = document.getElementById('units-stepper');\r\n function resizeInput() {\r\n input.style.width = `${input.value.length}ch`;\r\n }\r\n resizeInput();\r\n }, [selectedUnits]);\r\n\r\n const requestSuccess = orderInfo.status === 'success';\r\n const popupClass = requestSuccess ? 'trade-popup trade-popup--no-pointer' : 'trade-popup';\r\n const lotPipNumber = countDecimals(lotStep);\r\n let unitsName = '';\r\n let convertionHeader = '';\r\n if (contractSize !== 1) {\r\n unitsName = selectedSymbol?.serverUnits || 'unit';\r\n convertionHeader = `1 ${unitsName} = ${roundNumberPipDigit(contractSize)} ${selectedSymbol?.contractUnitType || ''}`;\r\n } else {\r\n unitsName = selectedSymbol?.contractUnitType || 'unit';\r\n }\r\n\r\n const typeClass = isBidType ? 'bid' : 'ask';\r\n const buttonClass = showError ? 'open-order no-pointer' : `open-order ${typeClass}`;\r\n let pendingOrderText = '';\r\n if (pendingOrder) {\r\n if (isBidType) {\r\n pendingOrderText = pendingOrderPrice <= tickObj?.bid ? `SELL Stop ${selectedSymbol?.id} ${selectedUnits.representation} at ${pendingOrderPrice}` : `SELL Limit ${selectedSymbol?.id} ${selectedUnits.representation} at ${pendingOrderPrice}`;\r\n } else {\r\n pendingOrderText = pendingOrderPrice > tickObj?.ask ? `BUY Stop ${selectedSymbol?.id} ${selectedUnits.representation} at ${pendingOrderPrice}` : `BUY Limit ${selectedSymbol?.id} ${selectedUnits.representation} at ${pendingOrderPrice}`;\r\n }\r\n }\r\n\r\n const handlePendingOrder = async (e) => {\r\n e.preventDefault();\r\n\r\n const command = CommandFactory.createCommand(selectedSymbol.openPendingOrderCMD);\r\n setIsProcessing(true);\r\n const sendPendingOrderEventFunc = TradePopupAnalyticsEvents.createPendingOrderEvent(tickObj, roundNumberPipDigit(pipValue, 2), roundNumberPipDigit(marginRequirement, 2), selectedSymbol.displayName, selectedUnits.number, type, pendingOrderPrice, mainChartController);\r\n\r\n try {\r\n setResponse(null);\r\n let refreshWorkaround = refreshStateWorkaround();\r\n const res = await command.execute({\r\n actionType: isBidType ? 1 : 0,\r\n amount: selectedUnits.number,\r\n stopLoss: pendingSL?.number,\r\n takeProfit: pendingTP?.number,\r\n price: pendingOrderPrice\r\n });\r\n\r\n if (res.isSuccessful) {\r\n refreshWorkaround.completed();\r\n sendPendingOrderEventFunc(!isPopupOpen.isOpen, true, res.result);\r\n\r\n setOrderInfo((prevState) => ({ ...prevState, status: 'success', price: pendingOrderPrice }));\r\n } else {\r\n sendPendingOrderEventFunc(!isPopupOpen.isOpen, false, res.result ?? 'trading.error.GeneralError');\r\n\r\n setResponse(res);\r\n }\r\n } catch (err) {\r\n sendPendingOrderEventFunc(!isPopupOpen.isOpen, false, 'trading.error.GeneralError');\r\n\r\n setResponse(err);\r\n }\r\n\r\n setIsProcessing(false);\r\n };\r\n\r\n\r\n return (\r\n \r\n {ActiveTheme === 'light' &&
    }\r\n
    \r\n {!requestSuccess && (\r\n
    \r\n
    \r\n \r\n

    {displayName}

    \r\n
    \r\n

    {description}

    \r\n \r\n {/*
    0.01 Unit = 100 EURO
    */}\r\n {/*
    */}\r\n {selectedSymbol?.serverUnits && selectedSymbol?.contractUnitType && (\r\n \r\n
    \r\n {convertionHeader}\r\n
    \r\n
    \r\n )}\r\n
    \r\n {unitsDropDown && (\r\n \r\n \r\n {t('Trade.PipValue.Title')}\r\n : \r\n \r\n {symbol}\r\n {roundNumberPipDigit(pipValue, 2)}\r\n \r\n \r\n \r\n {t('Trade.Margin.Title')}\r\n : \r\n \r\n {symbol}\r\n {roundNumberPipDigit(marginRequirement, 2)}\r\n \r\n \r\n \r\n )}\r\n
    \r\n \r\n {showError && {t(showError)}}\r\n {unitsDropDown && (\r\n
    \r\n \r\n
    \r\n )}\r\n {/* Estimated margin requirement: */}\r\n
    \r\n \r\n {t('Trade.PipValue.Title')}\r\n : \r\n \r\n {symbol}\r\n {roundNumberPipDigit(pipValue, 2)}\r\n \r\n \r\n \r\n {t('Trade.Margin.Title')}\r\n : \r\n \r\n {symbol}\r\n {roundNumberPipDigit(marginRequirement, 2)}\r\n \r\n \r\n
    \r\n \r\n
    \r\n )}\r\n {isLoading && }\r\n {isProcessing && (\r\n
    \r\n
    \r\n \r\n

    {t('Trade.Execute.PleaseWait')}

    \r\n

    {t('Trade.Execute.Processing')}

    \r\n
    \r\n
    \r\n )}\r\n {!requestSuccess && (\r\n
    \r\n {/* */}\r\n {pendingOrder ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n )}\r\n {requestSuccess && (\r\n
    \r\n
    \r\n
    \r\n

    \r\n {pendingOrder ? t('Trade.Execute.SuccessPending') : t('Trade.Execute.Success')}\r\n

    \r\n {!pendingOrder && (\r\n \r\n {t('Trade.Execute.SuccessPrice')}\r\n  \r\n {orderInfo?.price}\r\n \r\n )}\r\n
    \r\n \r\n
    \r\n )}\r\n {/* {response && {response.result}} */}\r\n
    \r\n \r\n );\r\n};\r\n\r\n// TradePopup.propTypes = {};\r\n\r\nexport default OuterClick(TradePopup);\r\n","/* eslint-disable react/destructuring-assignment */\r\n/* eslint-disable no-unused-expressions */\r\nimport React, { Component } from 'react';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport './Modal.css';\r\nimport Button from './Button';\r\n\r\nclass Modal extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.setWrapperRef = this.setWrapperRef.bind(this);\r\n this.handleClickOutside = this.handleClickOutside.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n document.addEventListener('mousedown', this.handleClickOutside);\r\n }\r\n\r\n componentWillUnmount() {\r\n document.removeEventListener('mousedown', this.handleClickOutside);\r\n }\r\n\r\n onClose = (e) => {\r\n this.props.onClose && this.props.onClose(e);\r\n };\r\n\r\n onCallToAction = (e) => {\r\n this.props.callToAction && this.props.callToAction(e);\r\n };\r\n\r\n setWrapperRef(node) {\r\n this.wrapperRef = node;\r\n }\r\n\r\n isOutsideClick(element,target)\r\n {\r\n if (element)\r\n {\r\n let currTarget = target;\r\n while (currTarget)\r\n {\r\n if (element === currTarget)\r\n {\r\n return false;\r\n }\r\n \r\n if (currTarget === document.body)\r\n {\r\n return true;\r\n }\r\n \r\n currTarget = currTarget.parentElement;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n handleClickOutside = (event) => {\r\n if (this.wrapperRef && this.isOutsideClick(this.wrapperRef,event.target)) {\r\n //this.onClose(event);\r\n }\r\n }\r\n\r\n\r\n render() {\r\n const {\r\n show,\r\n className,\r\n heading,\r\n children\r\n } = this.props;\r\n if (!show) {\r\n return null;\r\n }\r\n const modalClass = className ? `modal ${className}` : 'modal';\r\n const CloseButtonProps = {\r\n onClickHandler: (e) => this.onClose(e),\r\n ariaLabel: 'Close',\r\n cssClass: 'btn',\r\n iconEnd: 'fa fa-times'\r\n };\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\n// Modal.defaultProps = {\r\n// heading: 'Modal Window',\r\n// callToAction: () => {},\r\n// callToActionText: 'Send'\r\n// };\r\n\r\n// Modal.propTypes = {\r\n// onClose: PropTypes.func.isRequired,\r\n// show: PropTypes.bool.isRequired,\r\n// heading: PropTypes.string,\r\n// callToAction: PropTypes.func,\r\n// callToActionText: PropTypes.string\r\n\r\n// };\r\n\r\nexport default Modal;\r\n","/* eslint-disable no-restricted-syntax */\r\n/* eslint-disable complexity */\r\nimport React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { Period, ChartService } from '../../background/chart/ChartService';\r\n\r\nconst internalPeriodToTrade4Pro = {};\r\n\r\nexport const CHART_TYPES = {\r\n CANDLES: 'candles',\r\n BARS: 'bars',\r\n LINE: 'line',\r\n AREA: 'area'\r\n};\r\n\r\n// Period1Month = \"1M\"; // NOT Supported\r\ninternalPeriodToTrade4Pro[Period.Period1Minute] = '1M';\r\ninternalPeriodToTrade4Pro[Period.Period5Minutes] = '5M';\r\ninternalPeriodToTrade4Pro[Period.Period15Minutes] = '15M';\r\ninternalPeriodToTrade4Pro[Period.Period30Minutes] = '30M';\r\ninternalPeriodToTrade4Pro[Period.Period1Hour] = '1H';\r\ninternalPeriodToTrade4Pro[Period.Period4Hours] = '4H';\r\ninternalPeriodToTrade4Pro[Period.Period1Day] = '1D';\r\ninternalPeriodToTrade4Pro[Period.Period1Week] = '1W';\r\n\r\nexport const trade4ProToInternal = {\r\n '1M': Period.Period1Minute,\r\n '5M': Period.Period5Minutes,\r\n '15M': Period.Period15Minutes,\r\n '30M': Period.Period30Minutes,\r\n '1H': Period.Period1Hour,\r\n '4H': Period.Period4Hours,\r\n '1D': Period.Period1Day,\r\n '1W': Period.Period1Week\r\n};\r\n\r\nexport const defaultChartOptions = {\r\n // 'colors.grid': '#1C314E',\r\n 'colors.candleShadow': '#979797',\r\n 'colors.axisText': '#979797',\r\n 'colors.frameActive': '#979797',\r\n 'colors.futureBackground': 'rgba(256, 256, 256, 0.05)',\r\n 'colors.futureLine': 'rgba(256, 256, 256, 0.1)',\r\n 'system.frameWidth': 0,\r\n 'system.axisLineWidth': 0,\r\n 'system.roundedCandles': false\r\n};\r\n\r\nlet globalChartObj = null;\r\n\r\nexport const getGlobalChart = function () {\r\n return globalChartObj;\r\n};\r\n\r\nclass ChartPanel extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n const local = this;\r\n\r\n // eslint-disable-next-line func-names\r\n this.trading4ProRef = function (element) {\r\n local.elementUpdated(element);\r\n };\r\n }\r\n\r\n\r\n shouldComponentUpdate(nextProps, nextState) {\r\n // || nextProps.addIndicator !== this.props.addIndicator\r\n // || nextProps.shouldClearIndicators !== this.props.shouldClearIndicators\r\n\r\n if (nextProps.activeSymbolId !== this.props.activeSymbolId\r\n || nextProps.period !== this.props.period\r\n || nextProps.chartType !== this.props.chartType) {\r\n this.updateChart(nextProps);\r\n }\r\n if (nextProps.isLight !== this.props.isLight) {\r\n this.updateChartStyle(nextProps);\r\n }\r\n return false;\r\n }\r\n\r\n updateChartStyle(props) {\r\n if (this.trading4ProChartInstance)\r\n {\r\n const chart = this.trading4ProChartInstance;\r\n const { isLight } = props;\r\n\r\n if (isLight) {\r\n chart.setColor('background', '#fafafa');\r\n chart.setColor('axisLine', '#fafafa');\r\n chart.setColor('grid', '#E9EBF3');\r\n chart.setConfig('system.gridDash', [1, 0]);\r\n } else {\r\n chart.setColor('background', '#13172D');\r\n chart.setColor('axisLine', '#13172D');\r\n chart.setColor('grid', '#1C314E');\r\n chart.setConfig('system.gridDash', [1, 3]);\r\n }\r\n }\r\n }\r\n\r\n updateChart(props) {\r\n const chart = this.trading4ProChartInstance;\r\n if (chart)\r\n {\r\n const { chartType, period, activeSymbolId, symbols } = props;\r\n let internalPeriod = period;\r\n if (internalPeriod instanceof String) {\r\n internalPeriod = parseInt(internalPeriod, 10);\r\n }\r\n\r\n const timePeriod = internalPeriodToTrade4Pro[internalPeriod];\r\n\r\n const symbol = symbols[activeSymbolId];\r\n if (!symbol) {\r\n chart.setDisplayName('');\r\n chart.setChartType(chartType);\r\n chart.setTimeframe('5M');\r\n } else {\r\n chart.setSymbol(activeSymbolId);\r\n chart.setDisplayName(symbol.displayName);\r\n chart.setChartType(chartType);\r\n chart.setTimeframe(timePeriod);\r\n }\r\n }\r\n }\r\n\r\n subscribeToCandles(symbol, internalPeriod, barCount, timePeriod, trading4ProCallback, chart) {\r\n if (this.subscription) {\r\n this.subscription.dispose();\r\n this.subscription = null;\r\n }\r\n let local = this;\r\n this.subscription = ChartService.subscribe(symbol.chart, internalPeriod, barCount, (bars) => {\r\n const outputArray = [];\r\n for (const bar of bars) {\r\n let timeToUse = (bar[0] / 1000);\r\n if (local.props.serverTimeZone)\r\n {\r\n timeToUse = (bar[1] / 1000);\r\n }\r\n\r\n outputArray.push({\r\n symbol: symbol.displayName,\r\n timeframe: timePeriod,\r\n timestamp: timeToUse,\r\n open: bar[2],\r\n high: bar[3],\r\n low: bar[4],\r\n close: bar[5]\r\n });\r\n }\r\n\r\n trading4ProCallback(outputArray);\r\n\r\n return true;\r\n });\r\n }\r\n\r\n elementUpdated(element) {\r\n const { isLight, chartUp, chartDown } = this.props;\r\n if (this.subscription) {\r\n this.subscription.dispose();\r\n this.subscription = null;\r\n }\r\n\r\n if (this.trading4ProChartInstance) {\r\n this.trading4ProChartInstance.destroy();\r\n this.trading4ProChartInstance = null;\r\n }\r\n\r\n if (element) {\r\n const chartOptions = {\r\n ...defaultChartOptions,\r\n 'colors.background': isLight ? '#fafafa' : '#13172D',\r\n // 'colors.frameActive': isLight ? '#ccc' : '#13172D',\r\n 'colors.grid': isLight ? '#E9EBF3' : '#1C314E',\r\n 'colors.candleRiseBorder': chartUp,\r\n 'colors.candleFallBorder': chartDown,\r\n 'colors.candleRise': chartUp,\r\n 'colors.candleFall': chartDown,\r\n 'colors.barRise': chartUp,\r\n 'colors.barFall': chartDown,\r\n 'colors.axisLine': isLight ? '#fafafa' : '#13172D',\r\n 'system.gridDash': isLight ? [1, 0] : [1, 3],\r\n ...this.props.customChartOptions\r\n };\r\n\r\n const chart = new window.T4PChart(element, { 'toolbar.disable': true, ...chartOptions });\r\n if (this.props.serverTimeZone)\r\n {\r\n chart.setTimezone(this.props.serverTimeZone);\r\n }\r\n this.props.chartController.setChartInstance(chart);\r\n\r\n globalChartObj = chart;\r\n this.trading4ProChartInstance = chart;\r\n const local = this;\r\n\r\n let activeSymbolKey = null;\r\n let activeSymbolPeriod = null;\r\n chart.addEventHandler('onCandlesRequest', (symbol, timeframe, timestampFrom, timestampTo, count, callback) => {\r\n if (!timestampFrom && !timestampTo) {\r\n if (activeSymbolKey !== symbol\r\n || activeSymbolPeriod !== timeframe) {\r\n let stateSymbol = local.props.symbols[symbol];\r\n if (!stateSymbol) {\r\n if (activeSymbolKey) {\r\n setTimeout(() => {\r\n stateSymbol = local.props.symbols[activeSymbolKey];\r\n if (stateSymbol) {\r\n chart.setSymbol(stateSymbol.id);\r\n chart.setDisplayName(stateSymbol.displayName);\r\n chart.setTimeframe(activeSymbolPeriod);\r\n activeSymbolKey = null; // addEventHandler will be called when the symbol will be reset and we want to reload the chart\r\n }\r\n }, 0);\r\n }\r\n } else {\r\n activeSymbolKey = symbol;\r\n activeSymbolPeriod = timeframe;\r\n if (local.props.chartController) {\r\n local.props.chartController.callChartUpdated(symbol, trade4ProToInternal[timeframe]);\r\n }\r\n\r\n if (local.props.symbols) {\r\n const stateSymbol = local.props.symbols[symbol];\r\n if (stateSymbol) {\r\n local.subscribeToCandles(stateSymbol, trade4ProToInternal[timeframe], count, timeframe, callback, chart);\r\n }\r\n }\r\n }\r\n }\r\n } else if (timestampFrom && !timestampTo) {\r\n const currentSymbol = local.props.symbols[symbol];\r\n if (currentSymbol) {\r\n // let timestampFromQuery = timestampFrom*1000;\r\n const timestampFromQuery = ChartService.getOldestBar(symbol, trade4ProToInternal[timeframe]);\r\n ChartService.getMoreBars(currentSymbol.chart, trade4ProToInternal[timeframe], count, timestampFromQuery).then((t) => {\r\n if (t === true) {\r\n callback([]);\r\n }\r\n });\r\n }\r\n }\r\n });\r\n\r\n this.updateChart(this.props);\r\n }\r\n }\r\n\r\n render() {\r\n return
    ;\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n return { symbols: state.account?.symbols?.symbols,\r\n serverTimeZone: state.account.accountInfo.serverTimeZone\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps)(ChartPanel);\r\n","import React from 'react';\r\n// import PropTypes from 'prop-types';\r\n\r\nconst Candels = ({ fill }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\n// Candels.propTypes = {};\r\n\r\nexport default Candels;\r\n","import React from 'react';\r\n// import PropTypes from 'prop-types';\r\n\r\nconst GraphIcon = ({ fill }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\n// GraphIcon.propTypes = {};\r\n\r\nexport default GraphIcon;\r\n","import React from 'react';\r\n// import PropTypes from 'prop-types';\r\n\r\nconst LineIcon = ({ fill }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\n// LineIcon.propTypes = {};\r\n\r\nexport default LineIcon;\r\n","import React from 'react';\r\n// import PropTypes from 'prop-types';\r\n\r\nconst AreaIcon = ({ fill }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\n// AreaIcon.propTypes = {};\r\n\r\nexport default AreaIcon;\r\n","import React from 'react';\r\n// import PropTypes from 'prop-types';\r\n\r\nconst IndicatorsIcon = ({ fill, width, height }) => {\r\n return (\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// IndicatorsIcon.propTypes = {};\r\n\r\nexport default IndicatorsIcon;\r\n","import React from 'react';\r\n// import PropTypes from 'prop-types';\r\n\r\nconst ClearIcon = ({ fill, width, height }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\n// ClearIcon.propTypes = {};\r\n\r\nexport default ClearIcon;\r\n","import React, { Component } from 'react';\r\n\r\nclass ChartDealElemenet extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.beginEditSl = false;\r\n this.beginEditTp = false;\r\n }\r\n\r\n componentDidMount() {\r\n if (!this.deal) {\r\n this.addDealToChart();\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (!this.deal) {\r\n this.addDealToChart();\r\n } else {\r\n\r\n if(prevProps.title !== this.props.title){\r\n this.deal.title(this.props.title ?? '');\r\n }\r\n\r\n if(prevProps.color !== this.props.color){\r\n this.deal.color(this.props.color ?? 'green');\r\n }\r\n\r\n if (prevProps.tpValue !== this.props.tpValue) {\r\n this.deal.takeProfit(this.props.tpValue === 0 ? null : this.props.tpValue);\r\n }\r\n\r\n if (prevProps.slValue !== this.props.slValue) {\r\n this.deal.stopLoss(this.props.slValue === 0 ? null : this.props.slValue);\r\n }\r\n\r\n if (prevProps.tpDisplay !== this.props.tpDisplay) {\r\n this.deal.profit(this.props.tpDisplay ?? '');\r\n }\r\n\r\n if (prevProps.slDisplay !== this.props.slDisplay) {\r\n this.deal.loss(this.props.slDisplay ?? '');\r\n }\r\n\r\n if (prevProps.display !== this.props.display) {\r\n this.deal.net(this.props.display ?? '');\r\n }\r\n }\r\n }\r\n\r\n addDealToChart() {\r\n if(!this.props.chartController || !this.props.symbol || !this.props.openTime || !this.props.openRate){\r\n return;\r\n }\r\n\r\n var deal = this.props.chartController.addDeal(this.props.symbol, Math.trunc(this.props.openTime / 1000), this.props.openRate);\r\n let thisScope = this;\r\n if (deal) {\r\n setTimeout(() => {\r\n if (thisScope.deal?.plt)\r\n {\r\n thisScope.deal.plt.panel().select(deal);\r\n }\r\n }, 0);\r\n this.deal = deal;\r\n this.deal.type(this.props.actionType === 0 ? 'buy' : 'sell');\r\n this.deal.title(this.props.title ?? '');\r\n this.deal.loss(this.props.slDisplay ?? '');\r\n this.deal.profit(this.props.tpDisplay ?? '');\r\n this.deal.net(this.props.display ?? '');\r\n this.deal.color(this.props.color ?? 'green');\r\n this.deal.stopLoss(this.props.slValue === 0 ? null : this.props.slValue);\r\n this.deal.takeProfit(this.props.tpValue === 0 ? null : this.props.tpValue);\r\n\r\n this.deal.on('changeTakeProfit', function () {\r\n if(!thisScope.beginEditTp){\r\n thisScope.beginEditTp = true;;\r\n thisScope.props.onTPValueBeginUpdate && thisScope.props.onTPValueBeginUpdate();\r\n }\r\n else{\r\n thisScope.props.onTPValueUpdated && thisScope.props.onTPValueUpdated();\r\n }\r\n });\r\n\r\n this.deal.on('setTakeProfit', function () {\r\n thisScope.beginEditTp = false;\r\n thisScope.props.onTPValueEndUpdate && thisScope.props.onTPValueEndUpdate();\r\n });\r\n\r\n deal.on('closeTakeProfit', async function () {\r\n thisScope.props.onTPClear && thisScope.props.onTPClear();\r\n });\r\n\r\n this.deal.on('changeStopLoss', function () {\r\n if(!thisScope.beginEditSl){\r\n thisScope.beginEditSl = true;\r\n thisScope.props.onSLValueBeginUpdate && thisScope.props.onSLValueBeginUpdate();\r\n }\r\n else{\r\n thisScope.props.onSLValueUpdated && thisScope.props.onSLValueUpdated();\r\n }\r\n });\r\n\r\n this.deal.on('setStopLoss', async function () {\r\n thisScope.beginEditSl = false;\r\n thisScope.props.onSLValueEndUpdate && thisScope.props.onSLValueEndUpdate();\r\n });\r\n\r\n\r\n deal.on('closeStopLoss', async function () {\r\n thisScope.props.onSLClear && thisScope.props.onSLClear();\r\n });\r\n }\r\n\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.deal) {\r\n this.deal.drop();\r\n this.deal = null;\r\n }\r\n }\r\n\r\n render() {\r\n return null;\r\n }\r\n}\r\n\r\nexport default ChartDealElemenet;\r\n\r\n","\r\nimport { useSelector, shallowEqual } from 'react-redux';\r\nimport pubsubSubscription from '../background/repositories/PubsubSubscription';\r\nimport React, { useState, useEffect } from 'react';\r\nimport ChartDealElemenet from '../shared/Charts/ChartDealElement';\r\nimport { ProfitCalculationService } from '../background/calculations/profitCalculationService';\r\n\r\nconst SinglePositionView = ({ position, mainChartController }) => {\r\n const { symbols } = useSelector((state) => (state.account.symbols), shallowEqual);\r\n const currency = useSelector((state) => (state.account.accountInfo.currency));\r\n\r\n const symbolConfig = symbols[position.symbolId];\r\n\r\n const profitValueSubscription = pubsubSubscription.subscribeObj(position.profit);\r\n const tickValueSubscription = pubsubSubscription.subscribeObj(symbolConfig.tick);\r\n\r\n if (!profitValueSubscription || !tickValueSubscription) {\r\n return null;\r\n }\r\n\r\n const profit = Math.round((profitValueSubscription.profit + Number.EPSILON) * 100) / 100;\r\n const profitValue = getProfitValue(profit, currency.symbol);\r\n let closeConvertion = position.actionType === 0 ? tickValueSubscription?.askProfitConversion : tickValueSubscription?.bidProfitConversion;\r\n\r\n let estimatedProfitSL = null;\r\n if (position.stopLoss) {\r\n var value = ProfitCalculationService.calculateProfit(symbolConfig, position.actionType, position.amount, position.openRate, position.stopLoss, closeConvertion);\r\n estimatedProfitSL = getProfitValue(Math.round((value + Number.EPSILON) * 100) / 100, currency.symbol);\r\n }\r\n let estimatedProfitTP = null;\r\n if (position.takeProfit) {\r\n var value = ProfitCalculationService.calculateProfit(symbolConfig, position.actionType, position.amount, position.openRate, position.takeProfit, closeConvertion);\r\n estimatedProfitTP = getProfitValue(Math.round((value + Number.EPSILON) * 100) / 100, currency.symbol);\r\n }\r\n\r\n const setProfitSL = (sl) => {};\r\n\r\n const setProfitTP = (tp) => {};\r\n\r\n return (\r\n 0 ? 'green' : (profit === 0 ? 'grey' : 'red' )}\r\n title={`${position.actionType === 0 ? \"Buy\" : \"Sell\"}, ${position.amount}`}\r\n display={profitValue}\r\n tpValue={position.takeProfit}\r\n slValue={position.stopLoss}\r\n slDisplay={estimatedProfitSL}\r\n tpDisplay={estimatedProfitTP}\r\n\r\n // onSLValueUpdated = { setProfitSL }\r\n // onSLValueBeginUpdate={ onExitEditMode }\r\n // onSLValueEndUpdate = { onExitEditMode }\r\n // onSLClear = {onSlClear}\r\n // onTPValueUpdated = { setProfitTP }\r\n // onTPValueBeginUpdate={ onExitEditMode }\r\n // onTPValueEndUpdate = { onExitEditMode }\r\n // onTPClear = { onSlClear }\r\n />\r\n );\r\n}\r\n\r\nexport default ({ mainChartController, selectedSymbol}) => {\r\n const userDetails = useSelector((state) => state.account.accountInfo.userDetails, shallowEqual);\r\n if(!userDetails.showPositionsOnChart){\r\n return null;\r\n }\r\n\r\n const statePositions = useSelector((state) => state.account.positions.open.positions);\r\n return Object.values(statePositions).map(x => {\r\n if(x.symbolId === selectedSymbol.id){\r\n return \r\n }\r\n });\r\n}\r\n\r\nconst getProfitValue = function(profit, currencySymbol){\r\n let value = '0';\r\n if(profit >= 0){\r\n value = `${currencySymbol}${profit}`;\r\n }else{\r\n value = `-${currencySymbol}${profit*-1}`;\r\n }\r\n\r\n return value;\r\n}\r\n","/* eslint-disable complexity */\r\nimport React, { Fragment, useState, useEffect, useRef } from 'react';\r\n// import PropTypes from 'prop-types';\r\nimport { useSelector, shallowEqual } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Select from '@material-ui/core/Select';\r\nimport KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown';\r\n\r\n// import debounce from '../utilsUI/debounce';\r\nimport MainTreeView from '../../treeUI/MainTreeView';\r\nimport IndicatorsList from '../IndicatorsPopup/IndicatorsList';\r\nimport IndicatorsPopup from '../IndicatorsPopup/IndicatorsPopup';\r\nimport TradePopup from '../TradePopup/TradePopup';\r\nimport ToolTip from '../primitives/ToolTip';\r\nimport Button from '../primitives/Button';\r\nimport Modal from '../primitives/Modal';\r\nimport ChartPanel, { trade4ProToInternal, CHART_TYPES } from '../../shared/Charts/ChartPanel';\r\nimport { INDICATORS } from '../../shared/Charts/indicators';\r\nimport Candels from '../icons/Candels';\r\nimport GraphIcon from '../icons/GraphIcon';\r\nimport LineIcon from '../icons/LineIcon';\r\nimport AreaIcon from '../icons/AreaIcon';\r\nimport IndicatorsIcon from '../icons/IndicatorsIcon';\r\nimport ClearIcon from '../icons/ClearIcon';\r\nimport OpenPositionsOnChart from '../OpenPositionsOnChart';\r\nimport './CenterPanel.css';\r\nimport { symbol } from 'prop-types';\r\n\r\n\r\nconst CenterPanel = ({\r\n selectedSymbol,\r\n orderedSymbols,\r\n onSymbolSelect,\r\n mainChartController,\r\n centerWidth,\r\n setCenterWidth,\r\n shouldDisplayRightPanel,\r\n initialLeftWidth,\r\n initialRightWidth\r\n}) => {\r\n const { t } = useTranslation();\r\n const { MainColor: { ActiveText, InactiveText }, Tick: { ChartUp, ChartDown }, Text: { SystemColor }, Trade: { ButtonFirst, ButtonSecond, BoxShadow }, Buttons: { TextColor } } = useSelector((state) => (state.brand.theme));\r\n const { ActiveTheme } = useSelector((state) => (state.brand.themeSettings));\r\n const { symbols } = useSelector((state) => (state.account.symbols), shallowEqual);\r\n const hasTick = symbols[selectedSymbol?.id]?.hasTick;\r\n const [isPopupOpen, setIsPopupOpen] = useState(false);\r\n const [isIndicatorsExpanded, setIsIndicatorsExpanded] = useState(false);\r\n const toolTip = useRef();\r\n const [chartType, setChartType] = useState(CHART_TYPES.CANDLES);\r\n const [indicator, setIndicator] = useState('');\r\n\r\n const resizeLayout = () => {\r\n const widthBody = document.getElementById('root').offsetWidth;\r\n if (shouldDisplayRightPanel) {\r\n setCenterWidth(widthBody - initialLeftWidth - initialRightWidth);\r\n } else {\r\n setCenterWidth(widthBody - initialLeftWidth);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n resizeLayout();\r\n // const debouncedResizeLayout = debounce(resizeLayout, 200);\r\n window.addEventListener('resize', resizeLayout);\r\n return () => window.removeEventListener('resize', resizeLayout);\r\n }, []);\r\n\r\n useEffect(() => {\r\n resizeLayout();\r\n }, [initialLeftWidth, centerWidth, initialRightWidth]);\r\n\r\n const popupToggle = () => {\r\n setIsPopupOpen((prevState) => { return !prevState; });\r\n };\r\n\r\n const handleChange = (e) => {\r\n onSymbolSelect(orderedSymbols.find(((item) => item.id === e.target.value)));\r\n };\r\n\r\n const timeFrames = [];\r\n\r\n Object.entries(trade4ProToInternal).forEach((item) => {\r\n timeFrames.push({ timeKey: item[1], timeValue: item[0] });\r\n });\r\n\r\n const [timeSelected, setTimeSelected] = useState(timeFrames[1]);\r\n\r\n mainChartController.setPeriodChangedCallback((period) => {\r\n if (timeSelected.timeKey !== period) {\r\n Object.entries(trade4ProToInternal).forEach((item) => {\r\n if (item[1] === period) {\r\n setTimeSelected({ timeKey: item[1], timeValue: item[0] });\r\n }\r\n });\r\n }\r\n });\r\n\r\n const handleTimeChange = (e) => {\r\n setTimeSelected(timeFrames.find((item) => item.timeKey === e.target.value));\r\n };\r\n\r\n const changeChartType = (e) => {\r\n setChartType(e.target.value);\r\n };\r\n\r\n const selectIndicator = (e) => {\r\n setIndicator(INDICATORS.find((item) => item.name === e.target.getAttribute('data-value')));\r\n };\r\n\r\n const handleUpdateIndicator = (newValue) => {\r\n mainChartController.addIndicator(newValue);\r\n };\r\n\r\n const toggleIndicatorModal = () => {\r\n setIndicator('');\r\n };\r\n\r\n const clearIndicators = () => {\r\n setIndicator('');\r\n setIsIndicatorsExpanded(false);\r\n toolTip.current.hide();\r\n mainChartController.clearIndicators();\r\n };\r\n\r\n const handleOnMouseOut = (evt) => {\r\n // eslint-disable-next-line no-unused-expressions\r\n evt && evt.stopPropagation();\r\n\r\n toolTip.current.hide();\r\n setIsIndicatorsExpanded((prevState) => !prevState);\r\n };\r\n\r\n const handleOnMouseOver = (evt) => {\r\n evt.stopPropagation();\r\n\r\n const el = evt.currentTarget;\r\n setIsIndicatorsExpanded((prevState) => !prevState);\r\n\r\n if (el != null) {\r\n const rect = el.getBoundingClientRect();\r\n toolTip.current.show(rect);\r\n }\r\n };\r\n\r\n const resetSearch = () => {\r\n const element = document.getElementById('trader-search');\r\n if (element) {\r\n element.blur();\r\n }\r\n };\r\n\r\n\r\n return (\r\n
    \r\n
    \r\n {selectedSymbol && (\r\n \r\n \r\n
    \r\n \r\n \r\n {t('Chart.Trade')}\r\n
    \r\n {isPopupOpen && hasTick && (\r\n \r\n )}\r\n
    \r\n
    \r\n \r\n {orderedSymbols.map((option) => {\r\n return (\r\n \r\n {/* {t(option.translatedName)} */}\r\n {option.id}\r\n \r\n );\r\n })}\r\n \r\n \r\n {timeFrames.map((option) => {\r\n return (\r\n \r\n {option.timeValue}\r\n \r\n );\r\n })}\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n {t(`Select.Chart.${CHART_TYPES.CANDLES}`)}\r\n \r\n \r\n \r\n {t(`Select.Chart.${CHART_TYPES.BARS}`)}\r\n \r\n \r\n \r\n {t(`Select.Chart.${CHART_TYPES.LINE}`)}\r\n \r\n \r\n \r\n {t(`Select.Chart.${CHART_TYPES.AREA}`)}\r\n \r\n \r\n }\r\n ariaHaspopup='listbox'\r\n ariaExpanded={isIndicatorsExpanded}\r\n ariaControls='indicators'\r\n />\r\n {!isIndicatorsExpanded ? : (\r\n \r\n \r\n \r\n )}\r\n }\r\n onClickHandler={clearIndicators}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n )}\r\n {false && }\r\n {indicator?.name && (\r\n \r\n \r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\n// CenterPanel.propTypes = {\r\n// lastRemeberMeCMD: PropTypes.object\r\n// };\r\n\r\nexport default CenterPanel;\r\n","import React, { Component } from 'react';\r\n// import PropTypes from 'prop-types';\r\n\r\n\r\nclass Tab extends Component {\r\n onClick = () => {\r\n const { name, onClick } = this.props;\r\n onClick(name);\r\n }\r\n\r\n render() {\r\n const {\r\n onClick,\r\n props: {\r\n activeTab,\r\n label,\r\n name,\r\n tabChildComponent,\r\n shouldHideName,\r\n activeColor,\r\n inactiveColor\r\n }\r\n } = this;\r\n\r\n let className = 'tab-list-item';\r\n let style = { color: inactiveColor };\r\n\r\n if (activeTab === name) {\r\n className += ' tab-list-active';\r\n style = { color: activeColor };\r\n }\r\n\r\n\r\n return (\r\n \r\n {!shouldHideName && label}\r\n {tabChildComponent}\r\n
    \r\n );\r\n }\r\n}\r\n\r\n// Tab.defaultProps = {\r\n// label: undefined\r\n// };\r\n\r\n// Tab.propTypes = {\r\n// activeTab: PropTypes.string.isRequired,\r\n// label: PropTypes.string,\r\n// onClick: PropTypes.func.isRequired\r\n// };\r\n\r\nexport default Tab;\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\n// import PropTypes from 'prop-types';\r\nimport Tab from './Tab';\r\nimport './Tabs.css';\r\n\r\nclass Tabs extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n activeTab: ''\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n // eslint-disable-next-line react/destructuring-assignment\r\n const openedTab = this.props.children[0].props.name ? this.props.children[0].props.name : this.props.children.find((child) => !!child.props.name).props.name;\r\n this.setState({ activeTab: openedTab });\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.outerOpenTab && prevProps.outerOpenTab !== this.props.outerOpenTab) {\r\n this.setState({ activeTab: this.props.outerOpenTab });\r\n }\r\n }\r\n\r\n onClickTabItem = (tab) => {\r\n if(this.props.onTabClick){\r\n this.props.onTabClick(tab);\r\n }\r\n this.setState({ activeTab: tab });\r\n this.props.unsetOuterOpenTab && this.props.unsetOuterOpenTab();\r\n }\r\n\r\n render() {\r\n const {\r\n onClickTabItem,\r\n props: {\r\n children,\r\n hideName,\r\n tabContentId,\r\n activeColor,\r\n inactiveColor\r\n },\r\n state: {\r\n activeTab\r\n }\r\n } = this;\r\n\r\n\r\n return (\r\n
    \r\n
    \r\n {children.map((child) => {\r\n const { name, label, tabChildComponent, shouldHide } = child.props;\r\n\r\n if (name !== undefined && !shouldHide) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return null;\r\n })}\r\n
    \r\n
    \r\n {children.map((child) => {\r\n if (child.props.name !== activeTab || child.props.name === undefined) return undefined;\r\n return child.props.children;\r\n })}\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n const { MainColor: { ActiveText, InactiveText } } = state.brand.theme;\r\n\r\n return {\r\n activeColor: ActiveText,\r\n inactiveColor: InactiveText\r\n };\r\n};\r\n\r\n// Tabs.propTypes = {\r\n// children: PropTypes.instanceOf(Array).isRequired\r\n// };\r\n\r\nexport default connect(mapStateToProps)(Tabs);\r\n","import React from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\n// import PropTypes from 'prop-types';\r\n\r\nconst FormatProfitSwapCommision = ({ tickValue, positive, negative, neutral }) => {\r\n const { symbol } = useSelector((state) => { return (state.account.accountInfo.currency); }, shallowEqual);\r\n let pnlClass;\r\n let style;\r\n const isNegative = tickValue < 0;\r\n if (tickValue === 0) {\r\n pnlClass = null;\r\n style = { color: neutral };\r\n } else if (isNegative) {\r\n pnlClass = 'red';\r\n style = { color: negative };\r\n } else {\r\n pnlClass = 'green';\r\n style = { color: positive };\r\n }\r\n const valueToRender = isNegative ? Math.abs(Math.round((tickValue + Number.EPSILON) * 100) / 100) : Math.round((tickValue + Number.EPSILON) * 100) / 100;\r\n\r\n return (\r\n \r\n {isNegative && '-'}\r\n {symbol}\r\n {valueToRender}\r\n \r\n );\r\n};\r\n\r\n// FormatProfitSwapCommision.propTypes = {};\r\n\r\nexport default FormatProfitSwapCommision;\r\n","import React from 'react';\r\n// import PropTypes from 'prop-types';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\n\r\n// import PubsubSubscription from '../../Repositories/PubsubSubscription';\r\n\r\nimport InputStepper from '../primitives/InputStepper';\r\n\r\n\r\nconst OrderUpdate = ({\r\n symbolId,\r\n selectedUnits,\r\n setSelectedUnits,\r\n shouldFocus,\r\n id\r\n}) => {\r\n const { symbols } = useSelector((state) => (state.account.symbols), shallowEqual);\r\n let currentSymbol;\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const obj in symbols) {\r\n if (symbols[obj].id === symbolId) {\r\n currentSymbol = symbols[obj];\r\n break;\r\n }\r\n }\r\n\r\n // const symbolTick = PubsubSubscription.subscribeObj(currentSymbol.tick);\r\n // const [selectedUnits, setSelectedUnits] = useState(0);\r\n let pipNumber = 1;\r\n for (let i = 0; i < currentSymbol?.displayDigit; i += 1) {\r\n pipNumber /= 10;\r\n }\r\n\r\n const handleValueChange = (value) => {\r\n setSelectedUnits(value);\r\n };\r\n\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\n// StopLoss.propTypes = {};\r\n\r\nexport default OrderUpdate;\r\n","import React from 'react';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport pubsubSubscription from '../../background/repositories/PubsubSubscription';\r\n\r\n\r\nconst OpenPositionsVirtualCloseRate = ({ symbolName, actionType }) => {\r\n const closeValue = pubsubSubscription.subscribeObj({ key: symbolName, repId: 'ticks' });\r\n const closeValueData = actionType === 0 ? closeValue?.bid : closeValue?.ask;\r\n\r\n return (\r\n
    \r\n {closeValue && closeValueData}\r\n
    \r\n );\r\n};\r\n\r\n// OpenPositionsVirtualCloseRate.propTypes = {};\r\n\r\nexport default OpenPositionsVirtualCloseRate;\r\n","import React from 'react';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport pubsubSubscription from '../../background/repositories/PubsubSubscription';\r\nimport FormatProfitSwapCommision from '../utilsUI/FormatProfitSwapCommision';\r\n\r\n\r\nconst OpenPositionsVirtualProfit = ({ cellData, positive, negative, neutral }) => {\r\n const profitValueSubscription = pubsubSubscription.subscribeObj({ key: cellData?.key, repId: 'PNL' });\r\n const profitValue = profitValueSubscription?.profit;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\n// OpenPositionsVirtualProfit.propTypes = {};\r\n\r\nexport default OpenPositionsVirtualProfit;\r\n","import React, {\r\n useState, useEffect, useRef, Fragment\r\n} from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\nimport {\r\n Column, Table, SortDirection, List, AutoSizer\r\n} from 'react-virtualized';\r\nimport 'react-virtualized/styles.css';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport { formatDate } from '../utilsUI/formatTime';\r\nimport FormatProfitSwapCommision from '../utilsUI/FormatProfitSwapCommision';\r\nimport Button from '../primitives/Button';\r\n\r\nimport OrderUpdate from './OrderUpdate';\r\n\r\nimport { CommandFactory } from '../../background/commands/CommandFactory';\r\nimport { normalizedEditNumber } from './updateNumericHelper';\r\nimport { SendEventToGoogleAnalytics } from '../../background/storeListener/googleAnalyticsListener';\r\nimport OpenPositionsVirtualCloseRate from './OpenPositionsVirtualCloseRate';\r\nimport OpenPositionsVirtualProfit from './OpenPositionsVirtualProfit';\r\n\r\n\r\nconst OpenPositionsVirtualList = ({ setSelectedTrader, setCloseOrder, handleUnlink, isBottomPanelPinned, subHeaderColor, systemColor, linkColor }) => {\r\n const { t } = useTranslation();\r\n const tableRef = useRef();\r\n const [commandError, setCommandError] = useState(null);\r\n const statePositions = useSelector((state) => state.account.positions.open.positions);\r\n const [editMode, setEditMode] = useState({ rowId: null, editSLValue: null, editTPValue: null });\r\n\r\n const tradeLinks = useSelector((state) => state.account.socialv1.tradeLinks);\r\n const isSocialEnabled = useSelector((state) => state.account.socialv1.isEnabled);\r\n const isSocialVisible = useSelector((state) => state.account.accountInfo.rightPanelSettings.socialv1.isVisible);\r\n const { Text: { SystemColor, LinkColor }, SubHeader: { Text }, Profit: { Positive, Negative, Neutral }, Buttons: { TextColor } } = useSelector((state) => (state.brand.theme));\r\n const showCopiedFrom = isSocialEnabled && isSocialVisible;\r\n\r\n const positionOrdered = [];\r\n for (const currPosKey in statePositions) {\r\n const currPos = statePositions[currPosKey];\r\n positionOrdered.push(currPos);\r\n }\r\n positionOrdered.sort((a,b) => b.openTimeS-a.openTimeS);\r\n\r\n const exitEditMode = () => {\r\n setEditMode({\r\n rowId: null, editSLValue: null, editTPValue: null, mode: 0\r\n });\r\n setCommandError(null);\r\n };\r\n\r\n const enterEditPosition = (id) => {\r\n const statePosition = statePositions[id];\r\n if (statePosition) {\r\n setEditMode({ rowId: statePosition.id, editSLValue: statePosition.stopLoss, editTPValue: statePosition.takeProfit });\r\n } else {\r\n exitEditMode();\r\n }\r\n };\r\n\r\n const saveEditData = async (e) => {\r\n e.preventDefault();\r\n\r\n const currState = statePositions[editMode.rowId];\r\n if (currState) {\r\n setCommandError(null);\r\n try {\r\n const response = await CommandFactory.createCommand(currState.updatePositionCMD)\r\n .execute({\r\n takeProfit: normalizedEditNumber(editMode.editTPValue, currState.takeProfit),\r\n stopLoss: normalizedEditNumber(editMode.editSLValue, currState.stopLoss)\r\n });\r\n\r\n if (!response.isSuccessful) {\r\n setCommandError(response.result ?? 'trading.error.GeneralError');\r\n } else {\r\n exitEditMode();\r\n }\r\n } catch (ex) {\r\n setCommandError('trading.error.GeneralError');\r\n }\r\n }\r\n };\r\n\r\n const renderType = ({ cellData }) => {\r\n if (cellData === 0) return 'Buy';\r\n if (cellData === 1) return 'Sell';\r\n\r\n return '';\r\n };\r\n\r\n const renderTime = ({ cellData }) => {\r\n return formatDate(cellData);\r\n };\r\n\r\n const renderProfit = ({ cellData }) => {\r\n return
    ;\r\n };\r\n\r\n const renderCloseRate = ({ rowData }) => {\r\n return ;\r\n };\r\n\r\n const renderProfitRate = ({ cellData }) => {\r\n return ;\r\n };\r\n\r\n const renderStopLoss = ({ cellData, rowData, rowIndex }) => {\r\n if (rowData.id === editMode.rowId) {\r\n return (\r\n \r\n {\r\n setEditMode({ ...editMode, editSLValue: value });\r\n }}\r\n shouldFocus={false}\r\n id={`stopLoss-${rowData?.tpId}`}\r\n />\r\n \r\n );\r\n }\r\n return ;\r\n };\r\n\r\n const renderTakeProfit = ({ cellData, rowData, rowIndex }) => {\r\n if (rowData.id === editMode.rowId) {\r\n return (\r\n \r\n setEditMode({ ...editMode, editTPValue: value })}\r\n shouldFocus={false}\r\n />\r\n \r\n );\r\n }\r\n return ;\r\n };\r\n\r\n const renderCloseButton = ({ rowData }) => {\r\n const handleCancelOrder = () => {\r\n exitEditMode();\r\n const tradeLink = tradeLinks[rowData.tpId];\r\n const closeData = {\r\n closePositionCMD: rowData?.closePositionCMD,\r\n symbolName: rowData?.symbolName,\r\n type: rowData?.actionType,\r\n orderId: rowData?.tpId,\r\n openRate: rowData?.openRate,\r\n openTimeS: rowData?.openTimeS,\r\n amount: rowData?.amount,\r\n profitValue: rowData?.profit,\r\n stopLoss: rowData?.stopLoss,\r\n takeProfit: rowData?.takeProfit,\r\n tradeLink\r\n };\r\n setCloseOrder(closeData);\r\n };\r\n return
    \r\n );\r\n }\r\n return null;\r\n };\r\n\r\n const renderEditUpdate = ({ rowData }) => {\r\n if (rowData.id === editMode.rowId) {\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n {commandError && (\r\n
    \r\n {t(commandError)}\r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n }\r\n return ;\r\n };\r\n\r\n const getRowHeight = ({ index }) => {\r\n const currRow = positionOrdered[index];\r\n if (currRow) {\r\n if (currRow.id == editMode.rowId) {\r\n return 80;\r\n }\r\n }\r\n return 35;\r\n };\r\n\r\n useEffect(\r\n () => {\r\n tableRef.current.recomputeRowHeights();\r\n },\r\n [editMode.rowId]\r\n );\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n {({ height, width }) => (\r\n positionOrdered[index]}\r\n className='open-positions__container'\r\n ref={tableRef}\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 {showCopiedFrom && (\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// OpenPositionsVirtualList.propTypes = {};\r\n\r\nexport default OpenPositionsVirtualList;\r\n","/* eslint-disable jsx-a11y/control-has-associated-label */\r\nimport React, {useEffect} from 'react';// import PropTypes from 'prop-types';\r\n\r\nimport OpenPositionsVirtualList from './OpenPositionsVirtualList';\r\nimport { SendEventToGoogleAnalytics } from '../../background/storeListener/googleAnalyticsListener';\r\nimport './OpenPositions.css';\r\n\r\n\r\nconst OpenPositions = ({ setShouldCloseOrder, setSelectedTrader, handleUnlink, isBottomPanelPinned, subHeaderColor, systemColor, linkColor }) => {\r\n useEffect(() => {\r\n SendEventToGoogleAnalytics(\"Drawer:OpenOrdersTabOpened\");\r\n}, []);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\n// OpenPositions.propTypes = {};\r\n\r\nexport default OpenPositions;\r\n","import React, {\r\n useState, useEffect, Fragment, useRef\r\n} from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Column, Table, AutoSizer } from 'react-virtualized';\r\nimport 'react-virtualized/styles.css';\r\nimport Button from '../primitives/Button';\r\n\r\nimport OpenPositionsVirtualCloseRate from '../OpenPositions/OpenPositionsVirtualCloseRate';\r\nimport OrderUpdate from '../OpenPositions/OrderUpdate';\r\nimport { CommandFactory } from '../../background/commands/CommandFactory';\r\nimport {refreshStateWorkaround} from '../../background/refreshStateWorkaround';\r\nimport { normalizedEditNumber } from '../OpenPositions/updateNumericHelper';\r\n\r\nconst EditPositionMode = 1;\r\nconst DeletePositionMode = 2;\r\nconst PendingOrdersVirtualList = ({ isBottomPanelPinned, subHeaderColor, systemColor, linkColor, generalColor }) => {\r\n const { t } = useTranslation();\r\n const tableRef = useRef();\r\n const [commandError, setCommandError] = useState(null);\r\n const statePositions = useSelector((state) => state.account.positions.pending.positions, shallowEqual);\r\n const [editMode, setEditMode] = useState({\r\n rowId: null,\r\n mode: 0,\r\n editSLValue: null,\r\n editTPValue: null\r\n });\r\n\r\n const positionOrdered = [];\r\n for (const currPosKey in statePositions) {\r\n const currPos = statePositions[currPosKey];\r\n positionOrdered.push(currPos);\r\n }\r\n positionOrdered.sort((a,b) => b.openTimeS-a.openTimeS);\r\n\r\n const renderType = ({ cellData }) => {\r\n if (cellData === 0) return 'Buy Limit';\r\n if (cellData === 1) return 'Sell Limit';\r\n if (cellData === 2) return 'Buy Stop';\r\n if (cellData === 3) return 'Sell Stop';\r\n\r\n return '';\r\n };\r\n\r\n const removePendingCmd = async (e) => {\r\n e.preventDefault();\r\n\r\n const currState = statePositions[editMode.rowId];\r\n if (currState) {\r\n setCommandError(null);\r\n try {\r\n var refreshWorkaround = refreshStateWorkaround();\r\n const response = await CommandFactory.createCommand(currState.deletePedingCMD).execute();\r\n\r\n if (!response.isSuccessful) {\r\n setCommandError(response.result ?? 'trading.error.GeneralError');\r\n } else {\r\n refreshWorkaround.completed();\r\n exitEditMode();\r\n }\r\n } catch (ex) {\r\n setCommandError('trading.error.GeneralError');\r\n }\r\n }\r\n };\r\n const saveEditData = async (e) => {\r\n e.preventDefault();\r\n\r\n const currState = statePositions[editMode.rowId];\r\n if (currState) {\r\n setCommandError(null);\r\n try {\r\n\r\n const response = await CommandFactory.createCommand(currState.editPendingCMD)\r\n .execute({\r\n takeProfit: normalizedEditNumber(editMode.editTPValue, currState.takeProfit),\r\n stopLoss: normalizedEditNumber(editMode.editSLValue, currState.stopLoss)\r\n });\r\n\r\n if (!response.isSuccessful) {\r\n setCommandError(response.result ?? 'trading.error.GeneralError');\r\n } else {\r\n exitEditMode();\r\n }\r\n } catch (ex) {\r\n setCommandError('trading.error.GeneralError');\r\n }\r\n }\r\n };\r\n\r\n const exitEditMode = () => {\r\n setEditMode({\r\n rowId: null, editSLValue: null, editTPValue: null, mode: 0\r\n });\r\n setCommandError(null);\r\n };\r\n\r\n const enterEditPosition = (id) => {\r\n const statePosition = statePositions[id];\r\n if (statePosition) {\r\n setEditMode({\r\n rowId: statePosition.id, mode: EditPositionMode, editSLValue: statePosition.stopLoss, editTPValue: statePosition.takeProfit\r\n });\r\n } else {\r\n exitEditMode();\r\n }\r\n };\r\n\r\n const enterDeletePosition = (id) => {\r\n const statePosition = statePositions[id];\r\n if (statePosition) {\r\n setEditMode({\r\n rowId: statePosition.id, mode: DeletePositionMode, editSLValue: null, editTPValue: null\r\n });\r\n } else {\r\n exitEditMode();\r\n }\r\n };\r\n\r\n const renderCloseRate = ({ rowData }) => {\r\n let actionType = 1;\r\n if (rowData.actionType === 0 || rowData.actionType === 2) actionType = 1;\r\n if (rowData.actionType === 1 || rowData.actionType === 3) actionType = 0;\r\n return ;\r\n };\r\n\r\n const renderStopLoss = ({ cellData, rowData, rowIndex }) => {\r\n if (rowData.id === editMode.rowId && editMode.mode === EditPositionMode) {\r\n return (\r\n \r\n {\r\n setEditMode({ ...editMode, editSLValue: value });\r\n }}\r\n shouldFocus={false}\r\n />\r\n \r\n );\r\n }\r\n return ;\r\n };\r\n\r\n const renderTakeProfit = ({ cellData, rowData, rowIndex }) => {\r\n if (rowData.id === editMode.rowId && editMode.mode === EditPositionMode) {\r\n return (\r\n \r\n setEditMode({ ...editMode, editTPValue: value })}\r\n shouldFocus={false}\r\n />\r\n \r\n );\r\n }\r\n return ;\r\n };\r\n\r\n const renderCloseButton = ({ rowData, rowIndex }) => {\r\n if (rowData.id === editMode.rowId && editMode.mode === DeletePositionMode) {\r\n return (\r\n
    \r\n

    {t('InstrumetInfo.Details.SureDelete')}

    \r\n
    \r\n );\r\n }\r\n\r\n return (\r\n enterDeletePosition(rowData.id)}\r\n className='close-position outer-exclude'\r\n iconEnd='fa fa-times'\r\n style={linkColor}\r\n />\r\n );\r\n };\r\n\r\n const renderEditUpdate = ({ rowData }) => {\r\n if (rowData.id === editMode.rowId && editMode.mode === EditPositionMode) {\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n {commandError && (\r\n
    \r\n {t(commandError)}\r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n }\r\n return ;\r\n };\r\n\r\n const getRowHeight = ({ index }) => {\r\n const currRow = positionOrdered[index];\r\n if (currRow) {\r\n if (currRow.id == editMode.rowId) {\r\n return 100;\r\n }\r\n }\r\n return 35;\r\n };\r\n\r\n useEffect(\r\n () => {\r\n tableRef.current.recomputeRowHeights();\r\n },\r\n [editMode.rowId]\r\n );\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n {({ height, width }) => (\r\n positionOrdered[index]}\r\n className='open-positions__container'\r\n ref={tableRef}\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
    \r\n
    \r\n );\r\n};\r\n\r\nexport default PendingOrdersVirtualList;\r\n","/* eslint-disable jsx-a11y/control-has-associated-label */\r\nimport React, {useEffect} from 'react';// import PropTypes from 'prop-types';\r\n\r\n\r\nimport '../OpenPositions/OpenPositions.css';\r\nimport { SendEventToGoogleAnalytics } from '../../background/storeListener/googleAnalyticsListener';\r\n\r\nimport PendingOrdersVirtualList from './PendingOrdersVirtualList';\r\n\r\n\r\nconst PendingOrders = ({ isBottomPanelPinned, subHeaderColor, systemColor, linkColor, generalColor }) => {\r\n useEffect(() => {\r\n SendEventToGoogleAnalytics(\"Drawer:PendingOrdersTabOpened\");\r\n}, []);\r\n return (\r\n \r\n );\r\n};\r\n\r\n// PendingOrders.propTypes = {};\r\n\r\nexport default PendingOrders;\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport PubsubSubscription from '../../background/repositories/PubsubSubscription';\r\nimport { roundNumberPipDigit } from '../utilsUI/formatWSTick';\r\nimport '../ResizableLayout/BottomPanel.css';\r\n\r\n\r\nexport const PreparePNL = ({ pnlTick, shouldFormat, symbol }) => {\r\n if (shouldFormat) {\r\n let { openPl } = pnlTick;\r\n const isNegative = openPl < 0;\r\n const pnlClass = isNegative ? 'red' : 'green';\r\n if (isNegative) {\r\n openPl = Math.abs(openPl);\r\n }\r\n return (\r\n \r\n {isNegative && '-'}\r\n {symbol}\r\n {roundNumberPipDigit(openPl, 2)}\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {symbol}\r\n {roundNumberPipDigit(pnlTick.equity, 2)}\r\n \r\n );\r\n};\r\n\r\n\r\nconst PNL = ({ balance, credit, symbol, subHeaderColor, systemColor }) => {\r\n const { t } = useTranslation();\r\n const pnlTick = PubsubSubscription.subscribeObj({ key: 'MOVINGPNL', repId: 'ACCOUNT_PNL' });\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n {t('General.Balance')}\r\n \r\n \r\n {symbol}\r\n {roundNumberPipDigit(balance, 2)}\r\n \r\n
    \r\n
    \r\n +\r\n
    \r\n
    \r\n \r\n {t('General.Credit')}\r\n \r\n \r\n {symbol}\r\n {roundNumberPipDigit(credit, 2)}\r\n \r\n
    \r\n
    \r\n +\r\n
    \r\n
    \r\n \r\n {t('General.OpenPl')}\r\n \r\n \r\n
    \r\n
    \r\n =\r\n
    \r\n
    \r\n \r\n {t('General.Equity')}\r\n \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default PNL;\r\n","import React, { Fragment } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\nimport { Column, Table, SortDirection, List, AutoSizer } from 'react-virtualized';\r\nimport 'react-virtualized/styles.css';\r\n// import PropTypes from 'prop-types';\r\nimport { SendEventToGoogleAnalytics } from '../../background/storeListener/googleAnalyticsListener';\r\nimport { formatDate } from '../utilsUI/formatTime';\r\nimport FormatProfitSwapCommision from '../utilsUI/FormatProfitSwapCommision';\r\n\r\nconst PositionsVirtualList = ({\r\n positionsToRender,\r\n setSelectedTrader,\r\n closeTradeLinks,\r\n showCopiedFrom,\r\n isBottomPanelPinned,\r\n subHeaderColor,\r\n systemColor,\r\n linkColor\r\n}) => {\r\n const { t } = useTranslation();\r\n const { Profit: { Positive, Negative, Neutral } } = useSelector((state) => (state.brand.theme));\r\n\r\n const renderType = ({ cellData }) => {\r\n return cellData === 0 ? 'Buy' : 'Sell';\r\n };\r\n\r\n const renderTime = ({ cellData }) => {\r\n return formatDate(cellData);\r\n };\r\n\r\n const renderProfit = ({ cellData }) => {\r\n return
    ;\r\n };\r\n\r\n const renderCopied = ({ cellData }) => {\r\n let tradeLink = null;\r\n Object.keys(closeTradeLinks).forEach((key) => {\r\n if (key === cellData) {\r\n tradeLink = closeTradeLinks[key].sourceNickName;\r\n }\r\n });\r\n const openProfilePage = () => {\r\n setSelectedTrader({ nickname: tradeLink });\r\n SendEventToGoogleAnalytics(\"Drawer:Closed:ProfileClick\",{masterNickname: tradeLink});\r\n };\r\n return (\r\n {tradeLink}\r\n );\r\n };\r\n\r\n return (\r\n
    \r\n \r\n {({ height, width }) => (\r\n positionsToRender[index]}\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 {showCopiedFrom && (\r\n \r\n )}\r\n \r\n )}\r\n \r\n
    \r\n );\r\n};\r\n\r\n// PositionsVirtualList.propTypes = {};\r\n\r\nexport default PositionsVirtualList;\r\n","/* eslint-disable no-restricted-syntax */\r\nimport React, { useEffect, useState } from 'react';\r\n// import PropTypes from 'prop-types';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { CommandFactory } from '../../background/commands/CommandFactory';\r\nimport LoadSpinner from '../primitives/LoadSpinner';\r\nimport '../OpenPositions/OpenPositions.css';\r\nimport { PreparePNL } from '../PNL/PNL';\r\nimport { SendEventToGoogleAnalytics } from '../../background/storeListener/googleAnalyticsListener';\r\nimport PositionsVirtualList from './PositionsVirtualList';\r\n\r\nconst ClosedPositions = ({\r\n setSelectedTrader, isBottomPanelPinned, subHeaderColor, systemColor, linkColor\r\n}) => {\r\n const { symbols } = useSelector((state) => (state.account.symbols), shallowEqual);\r\n const { positions, getAllCommand, isGetAllRequsted } = useSelector((state) => (state.account.positions.closed), shallowEqual);\r\n const [isLoading, setIsLoading] = useState(!isGetAllRequsted);\r\n const {\r\n isEnabled, isJoined, copyRelationsCommands: { getClosedPositionsLinksCommand }, closeTradeLinks\r\n } = useSelector((state) => { return (state.account.socialv1); }, shallowEqual);\r\n const { rightPanelSettings: { socialv1: { isVisible } }, currency: { symbol }, drawerSettings: { closePositionsTab } } = useSelector((state) => { return (state.account.accountInfo); }, shallowEqual);\r\n const { t } = useTranslation();\r\n\r\n useEffect(() => {\r\n SendEventToGoogleAnalytics(\"Drawer:ClosedOrdersTabOpened\");\r\n let getClosedPositionsCopied = async () => {};\r\n if (isEnabled && isVisible && getClosedPositionsLinksCommand) {\r\n getClosedPositionsCopied = async () => {\r\n const command = CommandFactory.createCommand(getClosedPositionsLinksCommand);\r\n try {\r\n const res = await command.execute();\r\n } catch (err) {\r\n }\r\n };\r\n }\r\n\r\n let handleUpdateOrder = async () => {};\r\n if (getAllCommand) {\r\n handleUpdateOrder = async () => {\r\n const command = CommandFactory.createCommand(getAllCommand);\r\n try {\r\n var contractSizes = {};\r\n for (const symbolName in symbols) {\r\n contractSizes[symbolName] =symbols[symbolName].contractSize;\r\n }\r\n const res = await command.execute({\r\n clientContractSizes:contractSizes\r\n });\r\n } catch (err) {\r\n }\r\n };\r\n }\r\n\r\n Promise.allSettled([handleUpdateOrder(), getClosedPositionsCopied()])\r\n .then(() => {\r\n if (isLoading) {\r\n setIsLoading(false);\r\n }\r\n });\r\n }, []);\r\n\r\n if (isLoading) {\r\n return ;\r\n }\r\n\r\n const positionsToRender = [];\r\n const showCopiedFrom = isEnabled && isVisible;\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const obj in positions) {\r\n positionsToRender.push(positions[obj]);\r\n }\r\n positionsToRender.sort((a,b) => b.closeTimeUTC - a.closeTimeUTC);\r\n\r\n let showTotalProfit = false;\r\n let totalProfit = 0;\r\n if (closePositionsTab.totalProfitType === 'includeCommissions') {\r\n showTotalProfit = true;\r\n for (const position of positionsToRender) {\r\n totalProfit += position.profit + position.commission + position.swaps;\r\n }\r\n } else if (closePositionsTab.totalProfitType === 'excludeCommissions') {\r\n showTotalProfit = true;\r\n for (const position of positionsToRender) {\r\n totalProfit += position.profit;\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n {showTotalProfit && (\r\n
    \r\n {t('InstrumetInfo.Details.Profit')}\r\n : \r\n \r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\n// ClosedPositions.propTypes = {};\r\n\r\nexport default ClosedPositions;\r\n","import React, { useState, Fragment } from 'react';\r\n// import PropTypes from 'prop-types';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { CommandFactory } from '../../background/commands/CommandFactory';\r\nimport {refreshStateWorkaround} from '../../background/refreshStateWorkaround';\r\nimport pubsubSubscription from '../../background/repositories/PubsubSubscription';\r\nimport { ProfitCalculationService } from '../../background/calculations/profitCalculationService';\r\n\r\n// import { ACTION_TYPE } from '../TradePopup/TradePopup';\r\nimport InputStepper from '../primitives/InputStepper';\r\nimport FormatProfitSwapCommision from '../utilsUI/FormatProfitSwapCommision';\r\nimport Button from '../primitives/Button';\r\nimport LoadSpinner from '../primitives/LoadSpinner';\r\nimport { formatDate } from '../utilsUI/formatTime';\r\nimport {normalizedEditNumber} from '../OpenPositions/updateNumericHelper';\r\n\r\nexport const ACTION_TYPE_SB = {\r\n SELL: 'Sell',\r\n BUY: 'Buy'\r\n};\r\n\r\n\r\nconst ClosePosition = ({\r\n closePositionCMD,\r\n // handleCancelOrderClose,\r\n symbolName,\r\n type,\r\n orderId,\r\n openRate,\r\n openTimeS,\r\n amount,\r\n callModalOfClosedOrder,\r\n stopLoss,\r\n takeProfit,\r\n tradeLink\r\n}) => {\r\n const [selectedUnits, setSelectedUnits] = useState(amount);\r\n const [response, setResponse] = useState('');\r\n const [isLoading, setIsLoading] = useState(false);\r\n const { symbols } = useSelector((state) => { return (state.account.symbols); }, shallowEqual);\r\n const closeValue = pubsubSubscription.subscribeObj({ key: symbolName, repId: 'ticks' });\r\n const isBid = type === 0;\r\n const closeRate = isBid ? closeValue?.bid : closeValue?.ask;\r\n const closeConvertion = isBid ? closeValue?.bidProfitConversion : closeValue?.askProfitConversion;\r\n const { t } = useTranslation();\r\n const profitBasedOnAmount = ProfitCalculationService.calculateProfit(symbols[symbolName], type, normalizedEditNumber(selectedUnits,parseFloat(selectedUnits)), openRate, closeRate, closeConvertion);\r\n\r\n const handleValueChange = (value) => {\r\n setSelectedUnits(value);\r\n };\r\n\r\n const handleUpdateOrder = async (e) => {\r\n e.preventDefault();\r\n\r\n const command = CommandFactory.createCommand(closePositionCMD);\r\n setIsLoading(true);\r\n\r\n try {\r\n setResponse(null);\r\n let refreshWorkaround = refreshStateWorkaround()\r\n const res = await command.execute({ amount: Number(normalizedEditNumber(selectedUnits,parseFloat(selectedUnits))) });\r\n\r\n if (res.isSuccessful === true) {\r\n refreshWorkaround.completed();\r\n // eslint-disable-next-line object-curly-newline\r\n callModalOfClosedOrder({ symbolName, orderId, openTimeS, type, openRate, amount, profitValue: res.profit, price: res.price });\r\n } else if (res.isSuccessful === false) {\r\n setResponse(res);\r\n }\r\n } catch (err) {\r\n setResponse(err);\r\n }\r\n setIsLoading(false);\r\n };\r\n\r\n\r\n return (\r\n \r\n {!isLoading ? (\r\n \r\n
    \r\n
    \r\n {t('InstrumetInfo.Details.OpenTime')}\r\n :\r\n  \r\n {formatDate(openTimeS)}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {!!stopLoss && (\r\n \r\n {t('InstrumetInfo.Details.StopLoss')}\r\n :\r\n  \r\n {stopLoss}\r\n \r\n )}\r\n
    \r\n
    \r\n {!!takeProfit && (\r\n \r\n {t('InstrumetInfo.Details.TakeProfit')}\r\n :\r\n  \r\n {takeProfit}\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {t('InstrumetInfo.Details.OpenRate')}\r\n :\r\n  \r\n {openRate}\r\n \r\n
    \r\n
    \r\n \r\n {t('InstrumetInfo.Details.CloseRate')}\r\n :\r\n  \r\n {closeRate}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {t('InstrumetInfo.Details.Profit')}\r\n : \r\n \r\n \r\n \r\n
    \r\n {tradeLink && tradeLink?.linkType === 0 && (\r\n
    \r\n
    \r\n
    \r\n {t('Social.Close.Attention')}\r\n
    \r\n
    \r\n )}\r\n {/* {response &&
    {t(response?.result)}
    }\r\n
    \r\n
    \r\n
    {response && t(response?.result)}
    \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// ClosePosition.propTypes = {};\r\n\r\nexport default ClosePosition;\r\n","import React from 'react';\r\n// import PropTypes from 'prop-types';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\n\r\n\r\nconst OpenPositionsCounter = () => {\r\n const { positions } = useSelector((state) => (state.account.positions.open), shallowEqual);\r\n const { MainColor: { ActiveText } } = useSelector((state) => (state.brand.theme));\r\n const openPositionsQuantity = Object.keys(positions).length;\r\n\r\n\r\n return (\r\n
    \r\n {openPositionsQuantity}\r\n
    \r\n );\r\n};\r\n\r\n// OpenPositionsCounter.propTypes = {};\r\n\r\nexport default OpenPositionsCounter;\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport Button from '../primitives/Button';\r\n\r\n\r\nconst UnlinkPopup = ({ handleUnlinkOrder, handleClick, orderId }) => {\r\n const { t } = useTranslation();\r\n const handleUnlinkAction = () => {\r\n handleUnlinkOrder(orderId);\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n {t('Unlink.Attention')}\r\n

    {t('Unlink.Text')}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\n// UnlinkPopup.propTypes = {};\r\n\r\nexport default UnlinkPopup;\r\n","import React from 'react';\r\n// import PropTypes from 'prop-types';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\n\r\n\r\nconst PendingOrdersCounter = () => {\r\n const { positions } = useSelector((state) => (state.account.positions.pending), shallowEqual);\r\n const { MainColor: { ActiveText } } = useSelector((state) => (state.brand.theme));\r\n const openPositionsQuantity = Object.keys(positions).length;\r\n\r\n\r\n return (\r\n
    \r\n {openPositionsQuantity}\r\n
    \r\n );\r\n};\r\n\r\n// PendingOrdersCounter.propTypes = {};\r\n\r\nexport default PendingOrdersCounter;\r\n","import React, { Fragment } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport FormatProfitSwapCommision from '../utilsUI/FormatProfitSwapCommision';\r\nimport Button from '../primitives/Button';\r\n\r\n\r\nconst ClosedPositionSuccess = ({\r\n profitValue,\r\n closePrice,\r\n closeSuccessOrder\r\n}) => {\r\n const { t } = useTranslation();\r\n\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n

    {t('Close.Order.Success')}

    \r\n
    \r\n {t('InstrumetInfo.Details.CloseRate')}\r\n : \r\n {closePrice}\r\n
    \r\n
    \r\n {t('InstrumetInfo.Details.Profit')}\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 OuterClick(ExpandedSettings, '#menu-language');\r\n","import React, { useEffect, useState, Fragment } from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\n\r\nimport { CommandFactory } from '../../background/commands/CommandFactory';\r\nimport LoadSpinner from '../primitives/LoadSpinner';\r\n\r\n\r\nconst CalendarFrame = () => {\r\n const [calendarDynamicUrl, setCalendarDynamicUrl] = useState(null);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const { calendar } = useSelector((state) => { return (state.account.accountInfo.featuresData); }, shallowEqual);\r\n const getCalendarUrl = async () => {\r\n if (CommandFactory.isCommand(calendar.getCalendarUrlCommand)) {\r\n try {\r\n const response = await CommandFactory.createCommand(calendar.getCalendarUrlCommand).execute();\r\n if (!response?.isSuccessful) {\r\n if (calendar?.calendarUrl) {\r\n setCalendarDynamicUrl(calendar.calendarUrl);\r\n }\r\n } else {\r\n setCalendarDynamicUrl(response?.payload?.calendarUrl);\r\n }\r\n } catch (err) {\r\n console.error('error', err);\r\n }\r\n setIsLoading(false);\r\n } else {\r\n if (calendar?.calendarUrl) {\r\n setCalendarDynamicUrl(calendar.calendarUrl);\r\n }\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getCalendarUrl();\r\n }, []);\r\n\r\n if (isLoading) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n {calendarDynamicUrl ? (\r\n \r\n ) : (\r\n
    Unable to reach server
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default CalendarFrame;\r\n","import React, { useEffect, useState, Fragment } from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\n\r\nimport { CommandFactory } from '../../background/commands/CommandFactory';\r\nimport LoadSpinner from '../primitives/LoadSpinner';\r\n\r\n\r\nconst EducationFrame = () => {\r\n const [educationDynamicUrl, setEducationDynamicUrl] = useState(null);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const { education } = useSelector((state) => { return (state.account.accountInfo.featuresData); }, shallowEqual);\r\n const getEducationUrl = async () => {\r\n if (CommandFactory.isCommand(education.getEducationUrlCommand)) {\r\n try {\r\n const response = await CommandFactory.createCommand(education.getEducationUrlCommand).execute();\r\n if (!response?.isSuccessful) {\r\n if (education?.educationUrl) {\r\n setEducationDynamicUrl(education.educationUrl);\r\n }\r\n } else {\r\n setEducationDynamicUrl(response?.payload?.educationUrl);\r\n }\r\n } catch (err) {\r\n console.error('error', err);\r\n }\r\n setIsLoading(false);\r\n } else {\r\n if (education?.educationUrl) {\r\n setEducationDynamicUrl(education.educationUrl);\r\n }\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n getEducationUrl();\r\n }, []);\r\n\r\n if (isLoading) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n {educationDynamicUrl ? (\r\n \r\n ) : (\r\n
    Unable to reach server
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default EducationFrame;\r\n","/* eslint-disable complexity */\r\nimport React, { useState, Fragment } from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\nimport DepositButton from './DepositButton';\r\nimport Button from '../primitives/Button';\r\n// import Clock from '../primitives/Clock';\r\nimport ModalWrapper from '../primitives/ModalWrapper';\r\nimport CalendarIcon from '../icons/CalendarIcon';\r\nimport EducationIcon from '../icons/EducationIcon';\r\nimport { SendEventToGoogleAnalytics } from '../../background/storeListener/googleAnalyticsListener';\r\nimport ExpandedSettings from './ExpandedSettings';\r\nimport CalendarFrame from './CalendarFrame';\r\nimport EducationFrame from './EducationFrame';\r\n\r\n\r\nconst TopPanelActions = ({ handleUserSelect, setJoinPopup, shouldShowTriangle }) => {\r\n const [isMenuExpanded, setIsMenuExpanded] = useState(false);\r\n const [isCalendarExpanded, setIsCalendarExpanded] = useState(false);\r\n const [isEduExpanded, setIsEduExpanded] = useState(false);\r\n const { featuresData, userDetails, rightPanelSettings: { socialv1: { isVisible } } } = useSelector((state) => { return (state.account.accountInfo); }, shallowEqual);\r\n const { userDetails: { nickname, avatar }, isEnabled, isJoined } = useSelector((state) => { return (state.account.socialv1); }, shallowEqual);\r\n const { Deposit: { ButtonFirst, ButtonSecond }, Text: { GeneralColor } } = useSelector((state) => state.brand.theme);\r\n // const { environments } = useSelector((state) => { return (state.environments); }, shallowEqual);\r\n const {\r\n deposit,\r\n calendar,\r\n education,\r\n trends\r\n } = featuresData;\r\n const { name, tpUserId } = userDetails;\r\n const displayName = `${name} (${tpUserId})`;\r\n // const envName = environments[Object.keys(environments)[0]].displayName;\r\n const toggleSettings = () => {\r\n setIsMenuExpanded((prevState) => { return !prevState; });\r\n };\r\n const toggleCalendar = () => {\r\n if (!isCalendarExpanded) {\r\n SendEventToGoogleAnalytics('CalendarClick');\r\n }\r\n setIsCalendarExpanded((prevState) => { return !prevState; });\r\n };\r\n const toggleEducation = () => {\r\n if (!isEduExpanded) {\r\n SendEventToGoogleAnalytics('EducationClick');\r\n }\r\n setIsEduExpanded((prevState) => { return !prevState; });\r\n };\r\n\r\n const openProfile = () => {\r\n handleUserSelect({ nickname, avatar, shoudOpenCopy: false });\r\n };\r\n\r\n const openJoin = () => {\r\n setJoinPopup((prevState) => !prevState);\r\n };\r\n\r\n\r\n return (\r\n \r\n \r\n {calendar?.isEnabled && \r\n\t);\r\n};\r\n\r\nexport default MobileBurgerButton;\r\n","import React, {useCallback} from 'react';\r\nimport AttachMoneyIcon from '@material-ui/icons/AttachMoney';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport clsx from 'clsx';\r\n\r\nconst MobileHeaderButton = ({type, isAlert, isAdd, onClick}) => {\r\n\r\n\tconst icon = () => {\r\n\t\tif (type === 'money') return ;\r\n\t\tif (type === 'search') return ;\r\n\t};\r\n\r\n\tconst handleClick = useCallback(e => {\r\n\t\te && e.preventDefault();\r\n\t\tonClick && onClick();\r\n\t}, [onClick]);\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t{icon()}\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nMobileHeaderButton.defaultProps = {\r\n\ttype: 'search',\r\n\tisAlert: false,\r\n\tisAdd: false,\r\n};\r\n\r\nexport default MobileHeaderButton;\r\n","import React, { useCallback, useMemo } from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\n\r\nimport { CommandFactory } from '../../../background/commands/CommandFactory'\r\n\r\nimport MobileHeaderButton from '../../components/Buttons/MobileHeaderButton';\r\n\r\nconst MobileMargin = () => {\r\n const { marginStatus } = useSelector((state) => state.account.financial,\r\n shallowEqual);\r\n\r\n const { deposit } = useSelector((state) => state.account.accountInfo.featuresData,\r\n shallowEqual);\r\n\r\n const shouldShowMarginAlert = useMemo(() => {\r\n return marginStatus && marginStatus !== 0;\r\n }, [marginStatus]);\r\n\r\n const shouldShowDepositButton = useMemo(() => {\r\n return deposit.isEnabled || false;\r\n }, [deposit, deposit.isEnabled]);\r\n\r\n const handleClick = useCallback(async () => {\r\n const { getDepositUrlCommand, depositUrl } = deposit;\r\n if (!CommandFactory.isCommand(getDepositUrlCommand)) {\r\n if (!depositUrl) return null;\r\n return window.open(depositUrl, '_blank', 'noopener').focus();\r\n }\r\n\r\n const command = CommandFactory.createCommand(getDepositUrlCommand);\r\n const tab = window.open();\r\n try {\r\n const res = await command.execute();\r\n if (!res.isSuccessful) {\r\n if (depositUrl) {\r\n return tab.location.href = depositUrl;\r\n }\r\n return tab.close();\r\n }\r\n if (res.isSuccessful) return tab.location.href = res.depositUrl;\r\n } catch (err) {\r\n console.error(err); // TODO: remove log\r\n }\r\n }, [deposit]);\r\n\r\n return (\r\n
    \r\n {shouldShowDepositButton && (\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default MobileMargin;\r\n","import {useContext} from 'react';\r\nimport ThemeContextMobile from '../contextCreate/ThemeContextMobile';\r\n\r\nconst useTheme = () => {\r\n\treturn useContext(ThemeContextMobile);\r\n};\r\n\r\nexport default useTheme\r\n","import React, {useCallback} from 'react';\r\nimport {shallowEqual, useSelector} from 'react-redux';\r\n\r\nimport useTheme from '../../context/contextHook/useTheme';\r\n\r\nconst MobileLogo = () => {\r\n\r\n\tconst {logo, hideLogo} = useTheme();\r\n\r\n\tconst {logoMainUrl} = useSelector(state => state.brand.generalInfo,\r\n\t\t\tshallowEqual);\r\n\r\n\tconst handleClickLogo = useCallback(() => {\r\n\t\tif (!logoMainUrl) return null;\r\n\t\treturn window.open(logoMainUrl);\r\n\t}, [logoMainUrl]);\r\n\r\n\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{hideLogo && (<>)}\r\n\t\t\t\t{!hideLogo && (\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t)}\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileLogo;\r\n","import React, {useCallback} from 'react';\r\nimport clsx from 'clsx';\r\n\r\nimport useControls from '../../context/contextHook/useControls';\r\n\r\nimport MobileBurgerButton from '../../components/Buttons/MobileBurgerButton';\r\n\r\nimport MobileMargin from '../MobileMargin/MobileMargin';\r\nimport MobileLogo from '../MobileLogo/MobileLogo';\r\n\r\nconst MobileHeader = () => {\r\n\r\n\tconst {\r\n\t\theaderControls: {headerRef},\r\n\t\tburgerControls: {isOpen, handleOpen},\r\n\t} = useControls();\r\n\r\n\tconst handleOpenBurgerMenu = useCallback(() => {\r\n\t\thandleOpen && handleOpen();\r\n\t}, [handleOpen]);\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t{/**/}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileHeader;\r\n","import React, {useCallback, useEffect, useState} from 'react';\r\n\r\nimport useWindowSize from '../../../UI/utilsUI/useWindowSize';\r\nimport useControls from '../../context/contextHook/useControls';\r\n\r\nconst MobileSection = ({children}) => {\r\n\tconst [sectionHeight, setSectionHeight] = useState();\r\n\tconst {\r\n\t\theaderControls: {headerRef},\r\n\t\tfooterControls: {footerRef, isVisible},\r\n\t\tsectionControls: {setHeight},\r\n\t} = useControls();\r\n\r\n\tconst [width, height] = useWindowSize();\r\n\r\n\tconst handleSetHeight = useCallback(heightValue => {\r\n\t\tconst currentHeight = heightValue || sectionHeight;\r\n\t\tsetHeight && setHeight(currentHeight);\r\n\t\tsetSectionHeight(currentHeight);\r\n\t}, [sectionHeight, setHeight]);\r\n\r\n\tconst getHeaderHeight = useCallback(() => {\r\n\t\tif (headerRef && !headerRef.current) return 0;\r\n\t\treturn headerRef.current.offsetHeight;\r\n\t}, [headerRef]);\r\n\r\n\tconst getFooterHeight = useCallback(() => {\r\n\t\tif ((footerRef && !footerRef.current) || !isVisible) return 0;\r\n\t\treturn footerRef.current.offsetHeight;\r\n\t}, [footerRef, isVisible]);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst header = getHeaderHeight();\r\n\t\tconst footer = getFooterHeight();\r\n\t\tconst h = height - header - footer;\r\n\t\thandleSetHeight(h);\r\n\t}, [width, height, getHeaderHeight, getFooterHeight, handleSetHeight]);\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileSection;\r\n","import {useEffect} from 'react';\r\n\r\nconst useClickOutside = (ref, callback) => {\r\n\r\n\tuseEffect(() => {\r\n\t\tconst listener = event => {\r\n\t\t\tconst el = ref?.current;\r\n\t\t\tif (!el || el.contains((event?.target) || null)) return null;\r\n\t\t\tcallback(event);\r\n\t\t};\r\n\t\tdocument.addEventListener(`mousedown`, listener);\r\n\t\tdocument.addEventListener(`touchstart`, listener);\r\n\t\treturn () => {\r\n\t\t\tdocument.removeEventListener(`mousedown`, listener);\r\n\t\t\tdocument.removeEventListener(`touchstart`, listener);\r\n\t\t};\r\n\t}, [ref, callback]);\r\n\r\n};\r\nexport default useClickOutside;\r\n","export const getTouches = evt => evt.touches || evt.originalEvent.touches;\r\n\r\nconst disableClickOnPage = e => {\r\n\te && e.preventDefault();\r\n\te && e.stopImmediatePropagation();\r\n\te && e.stopPropagation();\r\n};\r\n\r\nconst addDisableClickOnPage = () => {\r\n\tdocument.addEventListener('click', disableClickOnPage, true);\r\n\tdocument.addEventListener('touchstart', disableClickOnPage, true);\r\n\tdocument.addEventListener('touchmove', disableClickOnPage, true);\r\n\treturn null;\r\n};\r\n\r\nconst removeDisableClickOnPage = () => {\r\n\tdocument.removeEventListener('click', disableClickOnPage, true);\r\n\tdocument.removeEventListener('touchstart', disableClickOnPage, true);\r\n\tdocument.removeEventListener('touchmove', disableClickOnPage, true);\r\n\treturn null;\r\n};\r\n\r\nconst disableClick = duration => {\r\n\taddDisableClickOnPage();\r\n\tconst time = setTimeout(() => {\r\n\t\tremoveDisableClickOnPage();\r\n\t\tclearTimeout(time);\r\n\t}, duration + 100);\r\n};\r\n\r\nconst actionHeight = side => {\r\n\tconst footer = {\r\n\t\theightOpen: ((80 - side) * 0.25),\r\n\t\theightClose: ((80 - side) * 0.7),\r\n\t};\r\n\tconst trade = {\r\n\t\theightOpen: (side * 0.2),\r\n\t\theightClose: (side * 0.2),\r\n\t};\r\n\tconst burger = {\r\n\t\twidthClose: (side * 0.25),\r\n\t};\r\n\treturn {\r\n\t\tfooter,\r\n\t\ttrade,\r\n\t\tburger,\r\n\t};\r\n};\r\n\r\nconst animationFunc = {\r\n\tmove: 'linear',\r\n\topen: 'cubic-bezier(.17,.67,.83,.67)',\r\n\tclose: 'cubic-bezier(.68,.4,.15,.74)',\r\n};\r\n\r\n// FOOTER\r\nconst handleSwipeFooterMove = data => {\r\n\tconst {yMove, item, height} = data;\r\n\tlet move = yMove;\r\n\tif (yMove > 0) move = 0;\r\n\tif (yMove < (80 - height)) move = 80 - height;\r\n\r\n\tif (item && item.style) {\r\n\t\titem.style.transition = `transform 0.05s ${animationFunc.move}`;\r\n\t\titem.style.transform = `translateY(${move}px)`;\r\n\t}\r\n};\r\nconst handleSwipeFooterEnd = data => {\r\n\tconst {height, yMove, isOpen, item, onOpen, onClose} = data;\r\n\r\n\tconst {heightOpen, heightClose} = actionHeight(height).footer;\r\n\r\n\tconst createTransition = () => {\r\n\t\tlet anim = animationFunc.open;\r\n\t\tlet duration = 100;\r\n\t\tconst durationAll = 600;\r\n\t\tconst heightPercent = Math.abs(yMove * 100 / height) / 100;\r\n\r\n\t\tif (!isOpen) {\r\n\t\t\tduration = durationAll * heightPercent;\r\n\t\t}\r\n\t\tif (isOpen) {\r\n\t\t\tduration = durationAll * (1 - heightPercent);\r\n\t\t}\r\n\r\n\t\tif (yMove === 0) {\r\n\t\t\tduration = 400;\r\n\t\t\tanim = animationFunc.close;\r\n\t\t}\r\n\r\n\t\tif (item) {\r\n\t\t\titem.style.transition = `transform ${duration}ms ${anim}`;\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleOpen = () => {\r\n\t\tcreateTransition();\r\n\t\tif (item) {\r\n\t\t\titem.style.transform = `translateY(${80 - height}px)`;\r\n\t\t\tonOpen && onOpen();\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleClose = () => {\r\n\t\tcreateTransition();\r\n\t\tif (item) {\r\n\t\t\titem.style.transform = `translateY(${0}px)`;\r\n\t\t\tonClose && onClose();\r\n\t\t}\r\n\t};\r\n\r\n\tif (!!yMove) {\r\n\t\tif (!isOpen) {\r\n\t\t\tif (yMove < heightOpen) {\r\n\t\t\t\thandleOpen();\r\n\t\t\t} else {\r\n\t\t\t\thandleClose();\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (isOpen) {\r\n\t\t\tif (yMove < heightClose) {\r\n\t\t\t\thandleOpen();\r\n\t\t\t} else {\r\n\t\t\t\thandleClose();\r\n\t\t\t}\r\n\t\t}\r\n\t} else {\r\n\t\tif (isOpen) handleClose();\r\n\t\tif (!isOpen) handleOpen();\r\n\t}\r\n\r\n};\r\n\r\nexport const swipeFooter = {\r\n\tstart: data => data,\r\n\tmove: handleSwipeFooterMove,\r\n\tend: handleSwipeFooterEnd,\r\n};\r\n\r\n//TRADE\r\nconst handleSwipeTradeMove = data => {\r\n\tconst {yMove, item, height} = data;\r\n\r\n\tlet move = yMove;\r\n\tif (yMove < 0) move = 0;\r\n\tif (yMove > height) move = height;\r\n\r\n\tif (item && item.style) {\r\n\t\titem.style.transition = `transform 0.05s ${animationFunc.move}`;\r\n\t\titem.style.transform = `translateY(${move}px)`;\r\n\t}\r\n};\r\nconst handleSwipeTradeEnd = data => {\r\n\tconst {height, yMove, isOpen, item, onOpen, onClose} = data;\r\n\tconst {heightClose} = actionHeight(height).trade;\r\n\r\n\tconst handleOpen = () => {\r\n\t\tif (item) {\r\n\t\t\titem.style.transition = `transform ${200}ms ${animationFunc.open}`;\r\n\t\t\titem.style.transform = `translateY(${0}px)`;\r\n\t\t\tonOpen && onOpen();\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleClose = () => {\r\n\t\tlet duration = 100;\r\n\t\tconst durationAll = 600;\r\n\t\tconst heightPercent = Math.abs(yMove * 100 / height) / 100;\r\n\t\tduration = durationAll * heightPercent;\r\n\r\n\t\tif (yMove === 0) {\r\n\t\t\tduration = 400;\r\n\t\t}\r\n\r\n\t\tif (item) {\r\n\t\t\titem.style.transition = `transform ${duration}ms ${animationFunc.close}`;\r\n\t\t\titem.style.transform = `translateY(${height}px)`;\r\n\t\t\tdisableClick(duration);\r\n\t\t\tconst t = setTimeout(() => {\r\n\t\t\t\tonClose && onClose();\r\n\t\t\t\tclearTimeout(t);\r\n\t\t\t}, duration);\r\n\t\t}\r\n\t};\r\n\r\n\tif (!!yMove) {\r\n\t\tif (isOpen) {\r\n\t\t\tif (yMove > heightClose) {\r\n\t\t\t\thandleClose();\r\n\t\t\t} else {\r\n\t\t\t\thandleOpen();\r\n\t\t\t}\r\n\t\t}\r\n\t} else {\r\n\t\tif (isOpen) handleClose();\r\n\t\tif (!isOpen) handleOpen();\r\n\t}\r\n};\r\n\r\nexport const swipeTrade = {\r\n\tstart: data => data,\r\n\tmove: handleSwipeTradeMove,\r\n\tend: handleSwipeTradeEnd,\r\n};\r\n\r\n// PROFILE\r\nconst handleSwipeProfileMove = data => {\r\n\tconst {yMove, item, height} = data;\r\n\r\n\tlet move = yMove;\r\n\tif (yMove < 0) move = 0;\r\n\tif (yMove > height) move = height;\r\n\r\n\tif (item && item.style) {\r\n\t\titem.style.transition = `transform 0.05s ${animationFunc.move}`;\r\n\t\titem.style.transform = `translateY(${move}px)`;\r\n\t}\r\n};\r\n\r\nconst handleSwipeProfileEnd = data => {\r\n\tconst {height, yMove, isOpen, item, onOpen, onClose} = data;\r\n\tconst {heightClose} = actionHeight(height).trade;\r\n\r\n\tconst handleOpen = () => {\r\n\t\tif (item) {\r\n\t\t\titem.style.transition = `transform ${200}ms ${animationFunc.open}`;\r\n\t\t\titem.style.transform = `translateY(${0}px)`;\r\n\t\t\tonOpen && onOpen();\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleClose = () => {\r\n\t\tlet duration = 100;\r\n\t\tconst durationAll = 600;\r\n\t\tconst heightPercent = Math.abs(yMove * 100 / height) / 100;\r\n\t\tduration = durationAll * heightPercent;\r\n\r\n\t\tif (yMove === 0) {\r\n\t\t\tduration = 400;\r\n\t\t}\r\n\r\n\t\tif (item) {\r\n\t\t\titem.style.transition = `transform ${duration}ms ${animationFunc.close}`;\r\n\t\t\titem.style.transform = `translateY(${height}px)`;\r\n\t\t\tdisableClick(duration);\r\n\t\t\tconst t = setTimeout(() => {\r\n\t\t\t\tonClose && onClose();\r\n\t\t\t\tclearTimeout(t);\r\n\t\t\t}, duration);\r\n\t\t}\r\n\t};\r\n\r\n\tif (!!yMove) {\r\n\t\tif (isOpen) {\r\n\t\t\tif (yMove > heightClose) {\r\n\t\t\t\thandleClose();\r\n\t\t\t} else {\r\n\t\t\t\thandleOpen();\r\n\t\t\t}\r\n\t\t}\r\n\t} else {\r\n\t\tif (isOpen) handleClose();\r\n\t}\r\n};\r\n\r\nexport const swipeProfile = {\r\n\tstart: data => data,\r\n\tmove: handleSwipeProfileMove,\r\n\tend: handleSwipeProfileEnd,\r\n};\r\n\r\n// BURGER\r\nconst handleSwipeBurgerMove = data => {\r\n\tconst {xMove, item, width, onWidth} = data;\r\n\r\n\tlet move = xMove;\r\n\tif (xMove > 0) move = 0;\r\n\tif (xMove < -width * 0.8) move = -width * 0.8;\r\n\r\n\tconst percent = (((move + width * 0.8) * 100) / width) * 1.25;\r\n\tonWidth && onWidth(percent);\r\n\r\n\t// const header = document.getElementById('mobile-header');\r\n\t// if (header && header.style) {\r\n\t// \theader.style.marginLeft = `${(width * (percent / 1.25)) / 100}px`;\r\n\t// \theader.style.transition = `all 0.05s ${animationFunc.move}`;\r\n\t// }\r\n\r\n\tif (item && item.style) {\r\n\t\titem.style.transition = `transform 0.05s ${animationFunc.move}`;\r\n\t\titem.style.transform = `translateX(${move}px)`;\r\n\t}\r\n};\r\nconst handleSwipeBurgerEnd = data => {\r\n\tconst {width, xMove, isOpen, item, onOpen, onClose} = data;\r\n\tconst {widthClose} = actionHeight(width).burger;\r\n\r\n\tconst handleOpen = () => {\r\n\t\tif (item) {\r\n\t\t\titem.style.transition = `transform ${200}ms ${animationFunc.open}`;\r\n\t\t\titem.style.transform = `translateX(${0}px)`;\r\n\t\t\tonOpen && onOpen();\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleClose = () => {\r\n\t\tlet duration = 300;\r\n\t\tconst durationAll = 600;\r\n\t\tconst heightPercent = Math.abs(xMove * 100 / width) / 100;\r\n\t\tduration = durationAll * heightPercent;\r\n\r\n\t\tif (xMove === 0) {\r\n\t\t\tduration = 300;\r\n\t\t}\r\n\r\n\t\tif (item) {\r\n\t\t\titem.style.transition = `transform ${duration}ms ${animationFunc.close}`;\r\n\t\t\titem.style.transform = `translateX(${-width}px)`;\r\n\t\t\tdisableClick(duration);\r\n\t\t\tconst t = setTimeout(() => {\r\n\t\t\t\tonClose && onClose();\r\n\t\t\t\tclearTimeout(t);\r\n\t\t\t}, duration);\r\n\t\t}\r\n\t};\r\n\r\n\tif (!!xMove) {\r\n\t\tif (isOpen) {\r\n\t\t\tif (xMove < -widthClose) {\r\n\t\t\t\thandleClose();\r\n\t\t\t} else {\r\n\t\t\t\thandleOpen();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n\r\nexport const swipeBurger = {\r\n\tstart: data => data,\r\n\tmove: handleSwipeBurgerMove,\r\n\tend: handleSwipeBurgerEnd,\r\n};\r\n","export const getEvent = e => {\r\n\treturn (e && e.type.search('touch') !== -1) ? e.touches[0] : e;\r\n};\r\n\r\nexport const getTransformFromMatrix = transform => {\r\n\tconst y = transform\r\n\t\t\t.replace('matrix', '')\r\n\t\t\t.replace('(', '')\r\n\t\t\t.replace(')', '')\r\n\t\t\t.split(',')\r\n\t\t\t.map(el => Number(el))\r\n\t\t\t.find((el, i, arr) => i === arr.length - 1);\r\n\t// .filter((el, i, arr) => i === arr.length - 1)\r\n\t// .map(el => el + 'px')\r\n\t// .join();\r\n\r\n\tconst x = transform\r\n\t\t\t.replace('matrix', '')\r\n\t\t\t.replace('(', '')\r\n\t\t\t.replace(')', '')\r\n\t\t\t.split(',')\r\n\t\t\t.map(el => Number(el))\r\n\t\t\t.find((el, i, arr) => i === arr.length - 2);\r\n\r\n\treturn {y, x};\r\n};\r\n\r\nexport const getStyleItem = item => {\r\n\tif (!item) return null;\r\n\tconst css = item.currentStyle || window.getComputedStyle(item);\r\n\treturn {\r\n\t\tcss,\r\n\t\twidth: item.offsetWidth,\r\n\t\theight: item.offsetHeight,\r\n\t\tmarginRight: parseInt(css.marginRight),\r\n\t\ttransformY: getTransformFromMatrix(css.transform).y,\r\n\t\ttransformX: getTransformFromMatrix(css.transform).x,\r\n\t\toffsetWidth: item.offsetWidth / 2,\r\n\t\toffsetHeight: item.offsetHeight / 2,\r\n\t};\r\n};\r\n\r\nexport const getRectItem = item => {\r\n\tconst style = item.getBoundingClientRect();\r\n\treturn {\r\n\t\tx1: style.x,\r\n\t\tx2: style.x + style.width,\r\n\t\ty1: style.y,\r\n\t\ty2: style.y + style.height,\r\n\t\th: style.height,\r\n\t\tw: style.width,\r\n\t\ttop: style.top,\r\n\t\tright: style.right,\r\n\t\tbottom: style.bottom,\r\n\t\tleft: style.left,\r\n\t};\r\n};\r\n\r\nexport const getCarouselListStyle = index => {\r\n\treturn {\r\n\t\ttransform: `translateX(-${index * 100}%)`,\r\n\t};\r\n};\r\n","import {useCallback, useEffect, useMemo, useRef} from 'react';\r\n\r\nimport {\r\n\tgetTouches,\r\n\tswipeBurger,\r\n\tswipeFooter,\r\n\tswipeProfile,\r\n\tswipeTrade,\r\n} from '../helpers/swipe.helpers';\r\n\r\nimport {getStyleItem} from '../helpers/carousel.helpers';\r\n\r\nimport useWindowSize from '../../UI/utilsUI/useWindowSize';\r\n\r\nconst getTypeMove = (type, data) => {\r\n\tswitch (type) {\r\n\t\tcase 'footer':\r\n\t\t\treturn swipeFooter.move(data);\r\n\t\tcase 'trade':\r\n\t\t\treturn swipeTrade.move(data);\r\n\t\tcase 'profile':\r\n\t\tcase 'positionClose':\r\n\t\tcase 'positionUpdate':\r\n\t\tcase 'avatar':\r\n\t\t\treturn swipeProfile.move(data);\r\n\t\tcase 'burger':\r\n\t\t\treturn swipeBurger.move(data);\r\n\t\tdefault:\r\n\t\t\treturn data => data;\r\n\t}\r\n};\r\n\r\nconst getTypeEnd = (type, data) => {\r\n\tswitch (type) {\r\n\t\tcase 'footer':\r\n\t\t\treturn swipeFooter.end(data);\r\n\t\tcase 'trade':\r\n\t\t\treturn swipeTrade.end(data);\r\n\t\tcase 'profile':\r\n\t\tcase 'positionClose':\r\n\t\tcase 'positionUpdate':\r\n\t\tcase 'avatar':\r\n\t\t\treturn swipeProfile.end(data);\r\n\t\tcase 'burger':\r\n\t\t\treturn swipeBurger.end(data);\r\n\t\tdefault:\r\n\t\t\treturn data => data;\r\n\t}\r\n};\r\n\r\nconst useSwiper = props => {\r\n\tconst {type, touchRef = null, callback, options} = props;\r\n\tconst {onStart, onMove, onEnd, onOpen, onClose} = callback;\r\n\tconst {height, isOpen} = options;\r\n\r\n\tconst [width] = useWindowSize();\r\n\r\n\tconst contentRef = useRef(null);\r\n\r\n\tconst ref = useMemo(() => {\r\n\t\treturn touchRef && touchRef?.current\r\n\t\t\t\t? touchRef?.current\r\n\t\t\t\t: contentRef?.current;\r\n\t}, [contentRef?.current, touchRef, touchRef?.current]);\r\n\r\n\tconst handleStart = useCallback(event => {\r\n\t\tconst firstTouch = getTouches(event)[0];\r\n\r\n\t\tlet xDown = firstTouch.clientX;\r\n\t\tlet yDown = firstTouch.clientY;\r\n\r\n\t\tlet xDiff = null;\r\n\t\tlet yDiff = null;\r\n\r\n\t\tlet xUp = null;\r\n\t\tlet yUp = null;\r\n\r\n\t\tlet yMove = 0;\r\n\t\tlet xMove = 0;\r\n\r\n\t\tconst item = contentRef?.current;\r\n\t\tconst style = getStyleItem(item);\r\n\r\n\t\tconst transformY = style?.transformY || 0;\r\n\t\tconst transformX = style?.transformX || 0;\r\n\r\n\t\tconst startData = {\r\n\t\t\t...props,\r\n\t\t\t...callback,\r\n\t\t\t...options,\r\n\t\t\titem,\r\n\t\t\tstyle,\r\n\t\t\tcontentRef,\r\n\t\t\ttouchRef,\r\n\t\t\txDown,\r\n\t\t\tyDown,\r\n\t\t\theight,\r\n\t\t\tisOpen,\r\n\t\t\tonOpen,\r\n\t\t\tonClose,\r\n\t\t\tyMove,\r\n\t\t\txMove,\r\n\t\t\twidth,\r\n\t\t};\r\n\r\n\t\tonStart && onStart(startData);\r\n\r\n\t\tconst handleMove = evt => {\r\n\t\t\tif (!xDown || !yDown) return null;\r\n\r\n\t\t\txUp = evt.touches[0].clientX;\r\n\t\t\tyUp = evt.touches[0].clientY;\r\n\r\n\t\t\txDiff = xDown - xUp;\r\n\t\t\tyDiff = yDown - yUp;\r\n\r\n\t\t\tyMove = transformY - yDiff;\r\n\t\t\txMove = transformX - xDiff;\r\n\r\n\t\t\tconst moveData = {\r\n\t\t\t\t...startData,\r\n\t\t\t\txUp,\r\n\t\t\t\tyUp,\r\n\t\t\t\txDiff,\r\n\t\t\t\tyDiff,\r\n\t\t\t\tyMove,\r\n\t\t\t\txMove,\r\n\t\t\t\twidth,\r\n\t\t\t};\r\n\r\n\t\t\tonMove && onMove(moveData);\r\n\t\t\tgetTypeMove(type, moveData);\r\n\t\t};\r\n\r\n\t\tconst handleEnd = () => {\r\n\t\t\tconst endData = {\r\n\t\t\t\t...startData,\r\n\t\t\t\txDiff,\r\n\t\t\t\tyDiff,\r\n\t\t\t\txUp,\r\n\t\t\t\tyUp,\r\n\t\t\t\tyMove,\r\n\t\t\t\txMove,\r\n\t\t\t\tisOpen,\r\n\t\t\t\tonOpen,\r\n\t\t\t\tonClose,\r\n\t\t\t\twidth,\r\n\t\t\t};\r\n\r\n\t\t\tonEnd && onEnd(endData);\r\n\t\t\tgetTypeEnd(type, endData);\r\n\r\n\t\t\tdocument.removeEventListener('touchmove', handleMove, {passive: false});\r\n\t\t\tdocument.removeEventListener('touchend', handleEnd);\r\n\t\t};\r\n\r\n\t\tdocument.addEventListener('touchmove', handleMove, {passive: false});\r\n\t\tdocument.addEventListener('touchend', handleEnd);\r\n\t}, [height, isOpen, ref]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!height || !ref) return;\r\n\t\tref.addEventListener('touchstart', handleStart);\r\n\t\treturn () => {\r\n\t\t\tref.removeEventListener('touchstart', handleStart);\r\n\t\t};\r\n\t}, [height, isOpen, ref, touchRef]);\r\n\r\n\treturn {\r\n\t\tcontentRef,\r\n\t};\r\n};\r\n\r\nexport default useSwiper;\r\n","import React, {useCallback, useEffect, useState} from 'react';\r\n\r\nconst useWindowSize = () => {\r\n\tconst [windowSize, setWindowSize] = useState({\r\n\t\tinnerWidth: undefined,\r\n\t\tinnerHeight: undefined,\r\n\t\tclientWidth: undefined,\r\n\t\tclientHeight: undefined,\r\n\t});\r\n\r\n\tconst handleResize = useCallback(() => {\r\n\t\tsetWindowSize(prev => ({\r\n\t\t\t...prev,\r\n\t\t\tinnerWidth: window.innerWidth,\r\n\t\t\tinnerHeight: window.innerHeight,\r\n\t\t\tclientWidth: document.body.clientWidth,\r\n\t\t\tclientHeight: document.body.clientHeight,\r\n\t\t}));\r\n\t}, [setWindowSize]);\r\n\r\n\tuseEffect(() => {\r\n\t\twindow.addEventListener('resize', handleResize);\r\n\t\thandleResize();\r\n\r\n\t\treturn () => window.removeEventListener('resize', handleResize);\r\n\t}, [handleResize]);\r\n\r\n\treturn {\r\n\t\t...windowSize,\r\n\t\twidth: windowSize.innerWidth,\r\n\t\theight: windowSize.innerHeight,\r\n\t};\r\n};\r\n\r\nexport default useWindowSize;\r\n","import {useContext} from 'react';\r\nimport ProfileContextMobile from '../contextCreate/ProfileContextMobile';\r\n\r\nconst useProfile = () => {\r\n\treturn useContext(ProfileContextMobile);\r\n};\r\n\r\nexport default useProfile;\r\n","import {useContext} from 'react';\r\nimport PositionContextMobile from '../contextCreate/PositionContextMobile';\r\n\r\nconst usePosition = () => useContext(PositionContextMobile);\r\n\r\nexport default usePosition;\r\n","import React, {useCallback, useMemo} from 'react';\r\nimport clsx from 'clsx';\r\n\r\nimport useSwiper from '../hook/useSwiper';\r\nimport useWindowSize from '../hook/useWindowSize';\r\n\r\nimport useControls from '../context/contextHook/useControls';\r\nimport useProfile from '../context/contextHook/useProfile';\r\nimport usePosition from '../context/contextHook/usePosition';\r\n\r\nconst MobileSwiper = props => {\r\n\tconst {touchRef, children, className, type} = props;\r\n\r\n\tconst {\r\n\t\tfooterControls,\r\n\t\ttradeControls,\r\n\t\tavatarControls,\r\n\t\tburgerControls,\r\n\t\theaderControls: {headerRef},\r\n\t\tsectionControls: {sectionHeight},\r\n\t} = useControls();\r\n\r\n\tconst {profileUser, copiedUser} = useProfile();\r\n\tconst {positionClose, positionUpdate} = usePosition();\r\n\r\n\tconst {height, clientHeight} = useWindowSize();\r\n\r\n\tconst headerHeight = useCallback(() => {\r\n\t\tif (headerRef && !headerRef.current) return 0;\r\n\t\treturn headerRef.current.offsetHeight;\r\n\t}, [headerRef, clientHeight, height]);\r\n\r\n\tconst contentHeight = useMemo(() => {\r\n\t\tswitch (type) {\r\n\t\t\tcase 'footer' :\r\n\t\t\tcase 'avatar' :\r\n\t\t\tcase 'profile' :\r\n\t\t\t\treturn height - headerHeight();\r\n\t\t\tcase 'positionClose' :\r\n\t\t\tcase 'positionUpdate' :\r\n\t\t\t\treturn height - headerHeight();\r\n\t\t\tcase 'trade' :\r\n\t\t\t\treturn sectionHeight;\r\n\t\t\tcase 'burger' :\r\n\t\t\t\treturn height;\r\n\t\t\tdefault:\r\n\t\t\t\treturn height;\r\n\t\t}\r\n\t}, [height, clientHeight, headerHeight, type, sectionHeight]);\r\n\r\n\tconst contentIsOpen = useMemo(() => {\r\n\t\tswitch (type) {\r\n\t\t\tcase 'footer' :\r\n\t\t\t\treturn footerControls.isOpen;\r\n\t\t\tcase 'trade' :\r\n\t\t\t\treturn tradeControls.isOpen;\r\n\t\t\tcase 'profile' :\r\n\t\t\t\treturn !!profileUser.profileUserName;\r\n\t\t\tcase 'positionClose' :\r\n\t\t\t\treturn !!positionClose.closeData;\r\n\t\t\tcase 'positionUpdate' :\r\n\t\t\t\treturn !!positionUpdate.updateData;\r\n\t\t\tcase 'avatar' :\r\n\t\t\t\treturn avatarControls.isOpen;\r\n\t\t\tcase 'burger' :\r\n\t\t\t\treturn burgerControls.isOpen;\r\n\t\t\tdefault:\r\n\t\t\t\treturn false;\r\n\t\t}\r\n\t}, [\r\n\t\ttype,\r\n\t\tfooterControls,\r\n\t\tfooterControls.isOpen,\r\n\t\ttradeControls,\r\n\t\ttradeControls.isOpen,\r\n\t\tprofileUser,\r\n\t\tprofileUser.profileUserName,\r\n\t\tpositionClose,\r\n\t\tpositionClose.closeData,\r\n\t\tpositionUpdate,\r\n\t\tpositionUpdate.updateData,\r\n\t\tavatarControls,\r\n\t\tavatarControls.isOpen,\r\n\t\tburgerControls,\r\n\t\tburgerControls.isOpen,\r\n\t]);\r\n\r\n\tconst contentHandlers = useMemo(() => {\r\n\t\tswitch (type) {\r\n\t\t\tcase 'footer':\r\n\t\t\t\treturn {\r\n\t\t\t\t\tonOpen: footerControls.handleOpen,\r\n\t\t\t\t\tonClose: footerControls.handleClose,\r\n\t\t\t\t};\r\n\t\t\tcase 'trade':\r\n\t\t\t\treturn {\r\n\t\t\t\t\tonOpen: tradeControls.handleOpen,\r\n\t\t\t\t\tonClose: tradeControls.handleClose,\r\n\t\t\t\t};\r\n\t\t\tcase 'profile':\r\n\t\t\t\treturn {\r\n\t\t\t\t\tonOpen: d => d,\r\n\t\t\t\t\tonClose: profileUser.closeProfileUser,\r\n\t\t\t\t};\r\n\t\t\tcase 'positionClose':\r\n\t\t\t\treturn {\r\n\t\t\t\t\tonOpen: d => d,\r\n\t\t\t\t\tonClose: positionClose.handleCloseHide,\r\n\t\t\t\t};\r\n\t\t\tcase 'positionUpdate':\r\n\t\t\t\treturn {\r\n\t\t\t\t\tonOpen: d => d,\r\n\t\t\t\t\tonClose: positionUpdate.handleUpdateHide,\r\n\t\t\t\t};\r\n\t\t\tcase 'avatar':\r\n\t\t\t\treturn {\r\n\t\t\t\t\tonOpen: d => d,\r\n\t\t\t\t\tonClose: avatarControls.handleClose,\r\n\t\t\t\t};\r\n\t\t\tcase 'burger':\r\n\t\t\t\treturn {\r\n\t\t\t\t\tonOpen: d => d,\r\n\t\t\t\t\tonClose: burgerControls.handleClose,\r\n\t\t\t\t\tonWidth: burgerControls.onWidth,\r\n\t\t\t\t};\r\n\t\t\tdefault:\r\n\t\t\t\treturn null;\r\n\t\t}\r\n\t}, [\r\n\t\ttype,\r\n\t\tfooterControls,\r\n\t\ttradeControls,\r\n\t\tprofileUser,\r\n\t\tpositionClose,\r\n\t\tpositionUpdate,\r\n\t\tavatarControls,\r\n\t\tburgerControls,\r\n\t]);\r\n\r\n\tconst callback = {\r\n\t\tonOpen: () => contentHandlers.onOpen(),\r\n\t\tonClose: () => contentHandlers.onClose(),\r\n\t\t...contentHandlers,\r\n\t};\r\n\r\n\tconst options = {\r\n\t\theight: contentHeight || '',\r\n\t\tisOpen: contentIsOpen || false,\r\n\t};\r\n\r\n\tconst {contentRef} = useSwiper({\r\n\t\ttype,\r\n\t\ttouchRef,\r\n\t\tcallback,\r\n\t\toptions,\r\n\t});\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t{children}\r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileSwiper;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.31356 0.479015C7.8422 -0.00800596 7.06531 -0.0207028 6.57829 0.450656L1.63425 5.23569C1.60037 5.26848 1.57562 5.30942 1.56231 5.35459L0.884868 7.65359C0.857013 7.74785 0.88209 7.84969 0.950398 7.92037C1.01881 7.99095 1.11977 8.01934 1.21489 7.99469L3.53481 7.39263C3.58039 7.3808 3.62211 7.3574 3.65599 7.32461L8.59992 2.53947C9.0862 2.06778 9.09889 1.29153 8.62828 0.804201L8.31356 0.479015ZM2.22547 5.42264L6.27178 1.50635L7.53478 2.81131L3.48836 6.7276L2.22547 5.42264ZM1.96058 5.9331L2.96962 6.97577L1.54426 7.34571L1.96058 5.9331ZM8.22066 2.1476L7.92676 2.43205L6.66365 1.12697L6.95766 0.842526C7.22818 0.580707 7.65976 0.58776 7.92158 0.85828L8.23641 1.18347C8.4978 1.4543 8.49075 1.88556 8.22066 2.1476Z\",\n fill: \"#A5B1E0\"\n});\n\nvar SvgEdit = function SvgEdit(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 9,\n height: 9,\n viewBox: \"0 0 9 9\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgEdit, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/edit.a74af196.svg\";\nexport { ForwardRef as ReactComponent };","import React, {useMemo} from 'react';\r\nimport {ReactComponent as Edit} from '../../assets/icons/edit.svg';\r\nimport {shallowEqual, useSelector} from 'react-redux';\r\n\r\nconst MobileBurgerMenuHeader = props => {\r\n const {handleAvatarClick, currentAvatar, userDetails} = props;\r\n\r\n const {\r\n accountInfo: {\r\n rightPanelSettings: {\r\n socialv1: {isVisible},\r\n },\r\n },\r\n socialv1: {isEnabled},\r\n } = useSelector(state => state.account);\r\n\r\n const environments = useSelector(state => state.environments.environments,\r\n shallowEqual);\r\n\r\n const envName = environments[userDetails.envId]?.displayName ?? '';\r\n\r\n const renderName = useMemo(() => {\r\n return `${userDetails.name} (${userDetails.tpUserId})`;\r\n }, [userDetails]);\r\n\r\n const isSocialsEnabled = useMemo(() => {\r\n return isEnabled && isVisible;\r\n }, [isEnabled, isVisible]);\r\n\r\n const hideAvatarIcon = useMemo(() => {\r\n return isSocialsEnabled;\r\n }, []);\r\n\r\n return (\r\n
    \r\n\r\n
    \r\n {!hideAvatarIcon && (\r\n \r\n
    \r\n {currentAvatar && (\r\n \"avatar\"/\r\n )}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n\r\n

    \r\n {renderName}\r\n

    \r\n\r\n

    \r\n {userDetails.showEnvironment && (\r\n <>\r\n {envName}\r\n \r\n )}\r\n

    \r\n \r\n );\r\n};\r\n\r\nexport default MobileBurgerMenuHeader;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.8083 6.45352C9.6197 6.47335 8.43435 6.58142 7.26252 6.777L10.8083 6.45352ZM10.8083 6.45352V10.5667H5.54901C5.57967 9.34884 5.77073 8.13996 6.11757 6.96963L7.26239 6.77702L10.8083 6.45352ZM10.8083 11.4333H5.54901C5.57967 12.6512 5.77073 13.86 6.11757 15.0304L7.26205 15.223L10.8083 11.4333ZM10.8083 11.4333V15.5465C9.61969 15.5267 8.43418 15.4186 7.26219 15.223L10.8083 11.4333ZM11.2501 0.9H11.25C5.53626 0.9 0.9 5.41967 0.9 11C0.9 16.5803 5.53626 21.1 11.25 21.1C16.9637 21.1 21.6 16.5803 21.6 11V10.9999C21.5936 5.42226 16.9611 0.906243 11.2501 0.9ZM15.3876 5.92274L15.3873 5.92268C14.166 5.71909 12.9304 5.60667 11.6917 5.58678V1.7969C13.5084 2.02398 15.1102 3.64393 16.0593 6.03693L15.3876 5.92274ZM7.11284 5.92272L6.44061 6.03618C7.38967 3.64237 8.99153 2.02175 10.8083 1.79539V5.58678C9.56959 5.60667 8.33432 5.71909 7.11304 5.92268L7.11284 5.92272ZM7.11257 16.0773L7.11268 16.0773C8.33398 16.2812 9.56943 16.3941 10.8083 16.4149V20.2049C8.99148 19.9776 7.38961 18.3575 6.44058 15.9643L7.11257 16.0773ZM15.3872 16.0773L16.0594 15.9638C15.1103 18.3576 13.5085 19.9783 11.6917 20.2046V16.4149C12.9304 16.3941 14.1657 16.2812 15.387 16.0773L15.3872 16.0773ZM20.704 11.4333C20.6559 12.4557 20.4327 13.4632 20.0435 14.4138L17.3376 14.8694C17.6385 13.7466 17.8051 12.5936 17.834 11.4333H20.704ZM1.79605 11.4333H4.66597C4.69487 12.5936 4.86149 13.7466 5.16241 14.8694L2.45646 14.4138C2.06731 13.4632 1.84411 12.4557 1.79605 11.4333ZM2.45646 7.58615L5.16241 7.13062C4.86149 8.25338 4.69487 9.40642 4.66597 10.5667H1.79605C1.84411 9.54429 2.06731 8.53681 2.45646 7.58615ZM16.3824 6.96963C16.7293 8.13996 16.9203 9.34884 16.951 10.5667H11.6917V6.45352C12.8804 6.47335 14.0659 6.58143 15.2379 6.77702L16.3824 6.96963ZM15.2376 15.223C14.0657 15.4186 12.8803 15.5267 11.6917 15.5465V11.4333H16.951C16.9203 12.6512 16.7293 13.86 16.3824 15.0304L15.2376 15.223ZM20.704 10.5667H17.834C17.8051 9.40642 17.6385 8.25338 17.3376 7.13063L20.0435 7.58615C20.4327 8.53681 20.6559 9.54429 20.704 10.5667ZM17.0517 6.20319C16.5889 4.76412 15.775 3.4588 14.6825 2.3982C16.7756 3.1976 18.5138 4.69577 19.5841 6.62948L17.0517 6.20319ZM5.44828 6.20319L2.91593 6.62948C3.98623 4.69577 5.72443 3.1976 7.81747 2.3982C6.72505 3.4588 5.91107 4.76412 5.44828 6.20319ZM5.44828 15.7968C5.91107 17.2359 6.72505 18.5412 7.81747 19.6018C5.72443 18.8024 3.98623 17.3042 2.91593 15.3705L5.44828 15.7968ZM17.0517 15.7968L19.5841 15.3705C18.5138 17.3042 16.7756 18.8024 14.6825 19.6018C15.775 18.5412 16.5889 17.2359 17.0517 15.7968Z\",\n strokeWidth: 0.2\n});\n\nvar SvgLanguage = function SvgLanguage(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 22,\n viewBox: \"0 0 22 22\",\n fill: \"#A5B1E0\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgLanguage, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/language.a98c81ae.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 20C4.48578 20 0 15.5142 0 10C0 4.48578 4.48578 0 10 0C15.5142 0 20 4.48578 20 10C20 15.5142 15.5142 20 10 20ZM10 1.25C5.17502 1.25 1.25 5.17502 1.25 10C1.25 14.825 5.17502 18.75 10 18.75C14.825 18.75 18.75 14.825 18.75 10C18.75 5.17502 14.825 1.25 10 1.25Z\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.1509 4.95446C11.1509 5.38951 10.7982 5.74218 10.3632 5.74218C9.92812 5.74218 9.57544 5.38951 9.57544 4.95446C9.57544 4.51942 9.92812 4.16675 10.3632 4.16675C10.7982 4.16675 11.1509 4.51942 11.1509 4.95446Z\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.3562 15.1666C10.3584 15.1667 10.3606 15.1667 10.3628 15.1667C10.365 15.1667 10.3672 15.1667 10.3694 15.1666H12.1358C12.4619 15.1666 12.7266 14.9019 12.7266 14.5758C12.7266 14.2497 12.4619 13.985 12.1358 13.985H10.9536V7.87989C10.9536 7.55375 10.6889 7.28906 10.3628 7.28906H8.98425C8.65812 7.28906 8.39343 7.55375 8.39343 7.87989C8.39343 8.20602 8.65812 8.47071 8.98425 8.47071H9.77197V13.985H8.59082C8.26469 13.985 8 14.2497 8 14.5758C8 14.9019 8.26469 15.1666 8.59082 15.1666H10.3562Z\"\n});\n\nvar SvgAbout = function SvgAbout(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"#A5B1E0\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgAbout, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/about.6123aedd.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.0714 2.92857C15.2619 1.11905 12.7619 0 10 0C7.2381 0 4.7381 1.11905 2.92857 2.92857C1.11905 4.7381 0 7.2381 0 10C0 12.7619 1.11905 15.2619 2.92857 17.0714C4.7381 18.881 7.2381 20 10 20C12.7619 20 15.2619 18.881 17.0714 17.0714C18.881 15.2619 20 12.7619 20 10C20 7.2381 18.881 4.7381 17.0714 2.92857ZM16.2143 16.2143C14.619 17.8095 12.4286 18.7857 10 18.7857C7.57143 18.7857 5.38095 17.8095 3.78571 16.2143C2.21429 14.619 1.21429 12.4286 1.21429 10C1.21429 7.57143 2.19048 5.38095 3.78571 3.78571C5.38095 2.19048 7.57143 1.21429 10 1.21429C12.4286 1.21429 14.619 2.19048 16.2143 3.78571C17.8095 5.38095 18.7857 7.57143 18.7857 10C18.7857 12.4286 17.7857 14.619 16.2143 16.2143Z\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.8836 9.48103C14.8441 9.44152 14.7848 9.3625 14.7256 9.28347C14.7058 9.26372 14.7058 9.26372 14.686 9.24396C14.6268 9.18469 14.5675 9.14518 14.4885 9.10567L11.5646 7.4264C11.5646 7.4264 11.5448 7.4264 11.5448 7.40664L8.60116 5.70762C8.34433 5.54957 8.04799 5.52981 7.77141 5.58908C7.49482 5.66811 7.25775 5.84591 7.0997 6.10274C7.04043 6.18176 7.02067 6.28054 6.98116 6.35957C6.96141 6.41884 6.96141 6.49786 6.94165 6.57689C6.94165 6.59664 6.94165 6.63615 6.94165 6.65591V10.0737V13.4718C6.94165 13.7681 7.06019 14.0447 7.25775 14.2423C7.45531 14.4398 7.73189 14.5583 8.02824 14.5583C8.12702 14.5583 8.24555 14.5386 8.34433 14.4991C8.44311 14.4596 8.54189 14.4201 8.62092 14.3608L11.5251 12.6815L11.5646 12.6618L14.4885 10.9825C14.5082 10.9825 14.5082 10.9627 14.528 10.9627C14.7651 10.8047 14.9429 10.5676 15.0021 10.3108C15.0812 10.0342 15.0417 9.73786 14.8836 9.48103ZM14.0341 10.0935C14.0341 10.1132 14.0143 10.133 13.9946 10.133H13.9748L11.0707 11.832L11.0509 11.8518L8.14677 13.531C8.12702 13.531 8.12702 13.5508 8.10726 13.5508C8.10726 13.5508 8.0875 13.5508 8.0875 13.5705H8.06775C8.04799 13.5705 8.02824 13.5508 8.00848 13.5508C7.98872 13.531 7.98872 13.5113 7.98872 13.4915V10.0737V6.67567V6.65591V6.63615C8.00848 6.6164 8.02824 6.59664 8.04799 6.59664C8.06775 6.59664 8.0875 6.59664 8.10726 6.59664L11.0312 8.27591L11.0509 8.29567L13.9946 9.99469L14.0143 10.0144L14.0341 10.0342C14.0341 10.054 14.0341 10.0737 14.0341 10.0935Z\"\n});\n\nvar SvgTutorial = function SvgTutorial(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"#A5B1E0\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgTutorial, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/tutorial.0825ffff.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.35142 12.8627L3.42627 18.2566C3.24781 19.3055 4.36357 20.4378 5.59005 19.8289L10.4342 17.2821L15.2782 19.8287C16.2301 20.3667 17.6446 19.5274 17.4421 18.2567L16.517 12.8627L20.436 9.04257C21.2234 8.33391 20.8898 6.66466 19.6094 6.49892L14.1934 5.71195L11.7715 0.803993C11.3175 -0.190469 9.67986 -0.342823 9.09688 0.803993L6.67487 5.71172L1.25899 6.49869C0.146385 6.63169 -0.466293 8.13295 0.432302 9.04246L4.35142 12.8627ZM7.01985 7.36713C7.50561 7.29647 7.92543 6.99142 8.1427 6.55124L10.4343 1.90794L12.7259 6.55147C12.9434 6.99165 13.363 7.29658 13.8488 7.36713L18.9729 8.11168L15.2652 11.7259C14.9134 12.0685 14.753 12.5621 14.8361 13.046L15.7113 18.1494L11.128 15.7397C10.6936 15.5114 10.1746 15.5116 9.74017 15.7398L5.15707 18.1494L6.03226 13.0461C6.1153 12.562 5.95484 12.0685 5.60333 11.726L1.89542 8.11168L7.01985 7.36713Z\"\n});\n\nvar SvgFeedback = function SvgFeedback(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 21,\n height: 20,\n viewBox: \"0 0 21 20\",\n fill: \"#A5B1E0\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgFeedback, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/feedback.720d2325.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.9668 18.3058H2.49168C2.0332 18.3058 1.66113 17.9337 1.66113 17.4752V2.52504C1.66113 2.06657 2.03324 1.6945 2.49168 1.6945H9.9668C10.4261 1.6945 10.7973 1.32325 10.7973 0.86395C10.7973 0.404653 10.4261 0.0333252 9.9668 0.0333252H2.49168C1.11793 0.0333252 0 1.15129 0 2.52504V17.4752C0 18.8489 1.11793 19.9669 2.49168 19.9669H9.9668C10.4261 19.9669 10.7973 19.5956 10.7973 19.1363C10.7973 18.677 10.4261 18.3058 9.9668 18.3058Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.7527 9.40867L14.7029 4.42527C14.3773 4.10301 13.8508 4.10719 13.5285 4.43359C13.2062 4.76 13.2095 5.28574 13.5368 5.60801L17.1456 9.16945H7.47532C7.01603 9.16945 6.64478 9.5407 6.64478 10C6.64478 10.4593 7.01603 10.8306 7.47532 10.8306H17.1456L13.5368 14.392C13.2096 14.7143 13.2071 15.24 13.5285 15.5664C13.6913 15.7309 13.9056 15.8139 14.1199 15.8139C14.3308 15.8139 14.5418 15.7342 14.7029 15.5747L19.7527 10.5913C19.9106 10.4352 20.0002 10.2225 20.0002 9.99996C20.0002 9.77746 19.9114 9.56566 19.7527 9.40867Z\"\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 20,\n height: 20,\n fill: \"white\"\n})));\n\nvar SvgLogout = function SvgLogout(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"#A5B1E0\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgLogout, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/logout.6723e079.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useMemo } from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport useTheme from '../../context/contextHook/useTheme';\r\n\r\nimport { ReactComponent as Language } from '../../assets/icons/language.svg';\r\nimport { ReactComponent as About } from '../../assets/icons/about.svg';\r\nimport { ReactComponent as Tutorial } from '../../assets/icons/tutorial.svg';\r\nimport { ReactComponent as Feedback } from '../../assets/icons/feedback.svg';\r\nimport { ReactComponent as Logout } from '../../assets/icons/logout.svg';\r\n\r\nimport Switch from '../../../UI/primitives/Switch';\r\n\r\nconst MobileBurgerMenuSection = (props) => {\r\n const {\r\n toggleLanguage, education, toggleEducation, handleLogout\r\n } = props;\r\n\r\n const { languages, languageCode, enableChangeLanguage } = useSelector((state) => state.brand, shallowEqual);\r\n const { t } = useTranslation();\r\n const { handleToggleTheme, isDarkTheme, allowChangeTheme } = useTheme();\r\n\r\n const selectedLanguage = useMemo(() => {\r\n if (!languages || !languageCode) return null;\r\n const { displayName } = languages[languageCode];\r\n return displayName;\r\n }, [languages, languageCode]);\r\n\r\n return (\r\n
    \r\n
      \r\n {!!enableChangeLanguage && (\r\n \r\n
      \r\n \r\n

      \r\n {/* TODO: local this */}\r\n Languages\r\n

      \r\n
      \r\n
      \r\n {selectedLanguage || languageCode || ''}\r\n
      \r\n \r\n )}\r\n\r\n \r\n {allowChangeTheme && (\r\n \r\n )}\r\n \r\n\r\n \r\n
      \r\n \r\n

      \r\n {/* TODO: local this */}\r\n Swich Account\r\n

      \r\n
      \r\n \r\n\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default MobileBurgerMenuSection;\r\n","import React from 'react';\r\nimport {CSSTransition} from 'react-transition-group';\r\n\r\nconst MobileTransition = props => {\r\n const {\r\n style,\r\n children,\r\n isOpen,\r\n type,\r\n timeout,\r\n appear,\r\n } = props;\r\n\r\n const timeouts = {\r\n 'slide-up': 300,\r\n slide: 300,\r\n modal: 400,\r\n burger: 300,\r\n scale: 300,\r\n fade: 200,\r\n footer: 400,\r\n loader: 100,\r\n default: 1000,\r\n action: 300,\r\n };\r\n return (\r\n \r\n <>\r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nMobileTransition.defaultProps = {\r\n type: 'slide',\r\n timeout: null,\r\n appear: false,\r\n};\r\n\r\nexport default MobileTransition;\r\n","export class CreateListener {\r\n\tconstructor(ref, callback, stop = false) {\r\n\t\tthis.ref = ref;\r\n\t\tthis.callback = callback;\r\n\t\tthis.isStop = stop;\r\n\t}\r\n\r\n\tinit(ref, callback) {\r\n\t\tthis.ref = ref;\r\n\t\tthis.callback = callback;\r\n\t}\r\n\r\n\tstop() {\r\n\t\tthis.isStop = true;\r\n\t}\r\n\r\n\tlistener(e) {\r\n\t\tif (this.isStop) {\r\n\t\t\te && e.preventDefault();\r\n\t\t\te && e.stopPropagation();\r\n\t\t}\r\n\t\tthis.callback && this.callback(e, this.ref);\r\n\t}\r\n\r\n\tget refs() {\r\n\t\tconst r = this.ref;\r\n\t\tif (!r || !r.current) return null;\r\n\t\treturn r.current;\r\n\t}\r\n\r\n\tadd() {\r\n\t\tif (this.refs) {\r\n\t\t\tthis.refs.addEventListener('click', this.listener.bind(this), true);\r\n\t\t\tthis.refs.addEventListener('touchstart', this.listener.bind(this),\r\n\t\t\t\t\t{passive: false});\r\n\t\t}\r\n\t}\r\n\r\n\tremove() {\r\n\t\tif (this.refs) {\r\n\t\t\tthis.refs.removeEventListener('click', this.listener.bind(this), true);\r\n\t\t\tthis.refs.removeEventListener('touchstart', this.listener.bind(this),\r\n\t\t\t\t\ttrue);\r\n\t\t}\r\n\t}\r\n}\r\n","import React, { useCallback, useEffect, useRef } from 'react';\r\nimport { CreateListener } from '../../helpers/button.helpers';\r\n\r\n\r\nconst MobileButtonClose = ({ onClick, stop = true }) => {\r\n const ref = useRef(null);\r\n\r\n const handleClick = useCallback((e) => {\r\n onClick && onClick(e);\r\n }, [onClick]);\r\n\r\n useEffect(() => {\r\n const createListener = new CreateListener();\r\n if (stop) {\r\n createListener.init(ref, handleClick);\r\n createListener.add();\r\n }\r\n return () => {\r\n if (stop) {\r\n createListener.remove();\r\n }\r\n };\r\n }, [ref]);\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default MobileButtonClose;\r\n","import React, {useCallback, useRef} from 'react';\r\nimport clsx from 'clsx';\r\nimport MobileButtonClose from '../Buttons/MobileButtonClose';\r\nimport useClickOutside from '../../hook/useClickOutside';\r\n\r\nconst MobileSectionModal = props => {\r\n\tconst {isOpen, full, overlay, title, onClose, children} = props;\r\n\r\n\tconst backdropRef = useRef(null);\r\n\r\n\tconst handleClick = useCallback(e => {\r\n\t\te && e.preventDefault();\r\n\t\te && e.stopPropagation();\r\n\t\tonClose && onClose(e);\r\n\t}, [onClose]);\r\n\r\n\tuseClickOutside(backdropRef, handleClick);\r\n\r\n\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{isOpen && (\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t

    {title}

    \r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t{children}\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t)}\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nMobileSectionModal.defaultProps = {\r\n\tisOpen: false,\r\n\toverlay: false,\r\n\tfull: false,\r\n\ttitle: 'Header title',\r\n};\r\n\r\nexport default MobileSectionModal;\r\n","import React, {useCallback, useEffect, useMemo} from 'react';\r\nimport LoadSpinner from '../../../UI/primitives/LoadSpinner';\r\nimport {\r\n\tloaderChangeWidth,\r\n\tPOSITION,\r\n\tSIZE,\r\n\tTYPE,\r\n} from '../../helpers/loader.helpers';\r\nimport clsx from 'clsx';\r\n\r\nconst MobileLoader = ({isLoading, type, size, position, overlay}) => {\r\n\r\n\tconst currentType = useMemo(() => {\r\n\t\treturn TYPE.includes(type) ? type : 'section';\r\n\t}, [type]);\r\n\r\n\tconst currentPosition = useMemo(() => {\r\n\t\treturn POSITION.includes(position) ? position : 'top';\r\n\t}, [position]);\r\n\r\n\tconst handleSize = useCallback(() => {\r\n\t\tconst sizeStyle = SIZE.includes(size) ? size : 'middle';\r\n\t\tloaderChangeWidth(sizeStyle);\r\n\t}, [size, isLoading]);\r\n\r\n\tuseEffect(() => {\r\n\t\thandleSize();\r\n\t}, [handleSize]);\r\n\r\n\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{isLoading && (\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t)}\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nMobileLoader.defaultProps = {\r\n\tsize: 'middle',\r\n\tposition: 'center',\r\n\tloading: false,\r\n\toverlay: false,\r\n};\r\n\r\nexport default MobileLoader;\r\n","import React, {useCallback, useMemo} from 'react';\r\nimport clsx from 'clsx';\r\nimport MobileLoader from '../MobileLoader/MobileLoader';\r\n\r\nconst propsVariables = {\r\n\tsize: ['lg', 'md'],\r\n\ttype: ['primary', 'secondary'],\r\n};\r\n\r\nconst MobileButton = props => {\r\n\tconst {\r\n\t\tname,\r\n\t\tonClick,\r\n\t\tsize,\r\n\t\ttype,\r\n\t\ttitle,\r\n\t\tchildren,\r\n\t\tstyle,\r\n\t\tclassName,\r\n\t\tdisabled,\r\n\t\tisLoading,\r\n\t} = props;\r\n\r\n\tconst isDisabled = useMemo(() => {\r\n\t\treturn isLoading\r\n\t\t\t\t? true\r\n\t\t\t\t: !!disabled;\r\n\t}, [disabled, isLoading, onClick]);\r\n\r\n\tconst handleButtonClick = useCallback(e => {\r\n\t\te && e.preventDefault();\r\n\t\te && e.stopPropagation();\r\n\t\tif (isDisabled) return;\r\n\t\treturn onClick && onClick();\r\n\t}, [onClick, isLoading, isDisabled]);\r\n\r\n\tconst renderButton = useMemo(() => {\r\n\t\treturn (\r\n\t\t\t\t<>\r\n\t\t\t\t\t\r\n\t\t\t\t\t{title && (\r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t{title.toLowerCase()}\r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{children && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t{children}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t);\r\n\t}, [isLoading, title, children]);\r\n\r\n\treturn (\r\n\t\t\t handleButtonClick(e)}\r\n\t\t\t>\r\n\t\t\t\t{renderButton}\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nMobileButton.defaultProps = {\r\n\tname: '',\r\n\tsize: 'lg',\r\n\ttype: 'primary',\r\n\ttitle: '',\r\n\tstyle: {},\r\n\tchildren: null,\r\n\tonClick: null,\r\n\tisLoading: false,\r\n};\r\n\r\nexport default MobileButton;\r\n","import React, {\r\n useCallback, useEffect, useMemo, useState\r\n} from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\nimport clsx from 'clsx';\r\n\r\nimport MobileSectionModal from '../MobileModal/MobileSectionModal';\r\nimport MobileButton from '../Buttons/MobileButton';\r\nimport { CommandFactory } from '../../../background/commands/CommandFactory'\r\nimport MobileLoader from '../MobileLoader/MobileLoader';\r\n\r\nconst MobileLanguageSelector = ({ isOpen, onClose }) => {\r\n const { t } = useTranslation();\r\n\r\n const { languages, languageCode } = useSelector((state) => state.brand, shallowEqual);\r\n\r\n const [selectedCode, setSelectedCode] = useState(null);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const languagesToRender = useMemo(() => {\r\n if (!languages) return null;\r\n const languagesToRender = [];\r\n for (const key in languages) {\r\n languagesToRender.push(languages[key]);\r\n }\r\n return languagesToRender;\r\n }, [languages]);\r\n\r\n const getInitCode = useCallback(() => {\r\n setSelectedCode(languageCode);\r\n }, [languageCode, setSelectedCode]);\r\n\r\n const handleClose = useCallback(() => {\r\n onClose && onClose();\r\n }, [onClose]);\r\n\r\n const handleChange = useCallback((e, item) => {\r\n e && e.preventDefault();\r\n setSelectedCode(item.code);\r\n }, [setSelectedCode]);\r\n\r\n const handleSelect = useCallback(async () => {\r\n if (!languagesToRender || !selectedCode) return null;\r\n const { selectLanguageCommand } = languagesToRender.find(\r\n (el) => el.code === selectedCode\r\n );\r\n if (!selectLanguageCommand) return null;\r\n const command = CommandFactory.createCommand(selectLanguageCommand);\r\n setIsLoading(true);\r\n try {\r\n const res = await command.execute();\r\n if (!res) {\r\n console.error('Error change language'); // TODO: remove log add err\r\n }\r\n setIsLoading(false);\r\n handleClose();\r\n } catch (err) {\r\n setIsLoading(false);\r\n console.error(err); // TODO: remove log add err\r\n }\r\n }, [selectedCode, languagesToRender, setIsLoading, handleClose]);\r\n\r\n const isDisabled = useMemo(() => {\r\n if (!languageCode || !selectedCode) return true;\r\n return languageCode === selectedCode;\r\n }, [languageCode, selectedCode]);\r\n\r\n useEffect(() => {\r\n getInitCode();\r\n }, [getInitCode]);\r\n\r\n return (\r\n \r\n {isOpen && (\r\n
    \r\n {languagesToRender && !!languagesToRender.length && (\r\n <>\r\n \r\n\r\n
      \r\n {languagesToRender.map((item) => (\r\n handleChange(e, item)}\r\n className={clsx('mobile-language-selector__item',\r\n item.code === selectedCode && 'active')}\r\n >\r\n \r\n {item.displayName}\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\nexport default MobileLanguageSelector;\r\n","import React, {\r\n useCallback, useMemo, useRef, useState\r\n} from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\n\r\nimport { CommandFactory } from '../../../background/commands/CommandFactory'\r\n\r\nimport { getCurrentAvatar } from '../../helpers/options.helpers';\r\n\r\nimport useClickOutside from '../../hook/useClickOutside';\r\n\r\nimport useControls from '../../context/contextHook/useControls';\r\nimport useTheme from '../../context/contextHook/useTheme';\r\n\r\nimport MobileSwiper from '../../components/MobileSwiper';\r\n\r\nimport MobileBurgerMenuHeader from './MobileBurgerMenuHeader';\r\nimport MobileBurgerMenuSection from './MobileBurgerMenuSection';\r\n\r\nimport MobileTransition from '../../components/MobileTransition';\r\nimport MobileSectionModal\r\n from '../../components/MobileModal/MobileSectionModal';\r\nimport MobileLanguageSelector\r\n from '../../components/MobileLanguageSelector/MobileLanguageSelector';\r\nimport MobileLoader from '../../components/MobileLoader/MobileLoader';\r\n\r\nconst MobileBurgerMenu = () => {\r\n const [isMenuLanguage, setIsMenuLanguage] = useState(false);\r\n const [isEduExpanded, setIsEduExpanded] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const touchRef = useRef(null);\r\n\r\n const {\r\n featuresData,\r\n userDetails,\r\n rightPanelSettings: { socialv1: { isVisible } },\r\n logoutCommand\r\n } = useSelector((state) => state.account.accountInfo, shallowEqual);\r\n\r\n const { userDetails: { nickname, avatar } } = useSelector(\r\n (state) => state.account.socialv1, shallowEqual\r\n );\r\n\r\n const { isDarkTheme } = useTheme();\r\n\r\n const {\r\n avatarControls,\r\n burgerControls: {\r\n isOpen, burgerRef, handleClose, burgerOpenWidth\r\n }\r\n } = useControls();\r\n\r\n const { education } = useMemo(() => {\r\n return featuresData;\r\n }, [featuresData]);\r\n\r\n const currentAvatar = useMemo(() => {\r\n return getCurrentAvatar(avatar)?.icon.type;\r\n }, [avatar]);\r\n\r\n const handleBurgerClose = useCallback(() => {\r\n handleClose && handleClose();\r\n }, [handleClose]);\r\n\r\n const handleAvatarClick = useCallback((e) => {\r\n e && e.preventDefault();\r\n e && e.stopPropagation();\r\n const { handleOpen } = avatarControls;\r\n handleOpen && handleOpen();\r\n }, []);\r\n\r\n const toggleEducation = useCallback((e) => {\r\n e && e.preventDefault();\r\n e && e.stopPropagation();\r\n setIsEduExpanded((prev) => !prev);\r\n }, []);\r\n\r\n const toggleLanguage = useCallback((e) => {\r\n e && e.preventDefault();\r\n e && e.stopPropagation();\r\n setIsMenuLanguage((prev) => !prev);\r\n }, []);\r\n\r\n const handleLogout = useCallback(async (e) => {\r\n e && e.preventDefault();\r\n e && e.stopPropagation();\r\n const command = CommandFactory.createCommand(logoutCommand);\r\n setIsLoading(true);\r\n try {\r\n const res = await command.execute();\r\n setIsLoading(false);\r\n } catch (err) {\r\n setIsLoading(false);\r\n console.log(err); // TODO: remove log\r\n }\r\n }, [logoutCommand, setIsLoading]);\r\n\r\n useClickOutside(burgerRef, handleBurgerClose);\r\n\r\n const style = useMemo(() => {\r\n const startPercent = burgerOpenWidth / 16e1;\r\n const endPercent = burgerOpenWidth * 16e1;\r\n\r\n const startColor = isDarkTheme\r\n ? `rgba(33, 39, 71, ${startPercent})`\r\n : `rgba(211, 213, 224, ${startPercent})`;\r\n const endColor = isDarkTheme\r\n ? `rgba(19, 23, 45, ${endPercent})`\r\n : `rgba(213, 214, 221, ${endPercent})`;\r\n\r\n return {\r\n background: `linear-gradient(180deg, ${startColor} 0%, ${endColor} 100%)`\r\n };\r\n }, [burgerOpenWidth, isDarkTheme]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {/* HEADER */}\r\n \r\n\r\n {/* SECTION */}\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\nexport default MobileBurgerMenu;\r\n","import React, {useCallback, useMemo, useRef} from 'react';\r\n\r\nimport useClickOutside from '../../hook/useClickOutside';\r\nimport useControls from '../../context/contextHook/useControls';\r\n\r\nimport MobileTransition from '../MobileTransition';\r\nimport useWindowSize from '../../hook/useWindowSize';\r\n\r\nconst MobilePopUp = ({\r\n\t style,\r\n\t children,\r\n\t onClose,\r\n\t isOpen,\r\n\t type = 'full',\r\n\t transition = 'slide',\r\n }) => {\r\n\tconst backdropRef = useRef(null);\r\n\r\n\tconst {\r\n\t\tfooterControls: {footerRef},\r\n\t\theaderControls: {headerRef},\r\n\t\tsectionControls: {sectionHeight},\r\n\t} = useControls();\r\n\r\n\tconst handleOutsideClick = useCallback(() => {\r\n\t\t//TODO: outside click close\r\n\t\t// onClose && onClose();\r\n\t}, [onClose]);\r\n\r\n\tuseClickOutside(backdropRef, handleOutsideClick);\r\n\r\n\tconst {height, clientHeight, innerHeight} = useWindowSize();\r\n\r\n\tconst bottomStyle = useMemo(() => {\r\n\t\tif (!clientHeight || !innerHeight) return 0;\r\n\t\tif (clientHeight !== innerHeight) return clientHeight - innerHeight;\r\n\t\treturn 0;\r\n\t}, [clientHeight, innerHeight]);\r\n\r\n\tconst getStyles = useMemo(() => {\r\n\t\tconst blockHeight = height - 90;\r\n\t\tconst styles = {\r\n\t\t\theight: `${blockHeight}px`,\r\n\t\t\tbottom: `${bottomStyle}px`,\r\n\t\t};\r\n\t\tif (footerRef && !footerRef.current) return styles;\r\n\t\tif (headerRef && !headerRef.current) return styles;\r\n\t\tconst headerHeight = headerRef.current.offsetHeight;\r\n\t\tconst footerHeight = footerRef.current.offsetHeight;\r\n\r\n\t\t// TODO: add height 14px for climb on header\r\n\t\tif (type === 'full') {\r\n\t\t\tstyles.height = `${height - headerHeight}px`;\r\n\t\t\treturn styles;\r\n\t\t}\r\n\t\tif (type === 'section') {\r\n\t\t\tstyles.height = `${height - headerHeight - footerHeight}px`;\r\n\t\t\tstyles.bottom = 0;\r\n\t\t\treturn styles;\r\n\t\t}\r\n\t\tif (type === 'footer') {\r\n\t\t\tstyles.height = `${height - headerHeight - 136}px`;\r\n\t\t\tstyles.bottom = '136px';\r\n\t\t\treturn styles;\r\n\t\t}\r\n\t\tstyles.height = `${height - footerHeight - headerHeight + 14}px`;\r\n\t\tstyles.bottom = `${footerHeight}px`;\r\n\t\treturn styles;\r\n\t}, [isOpen, type, height, sectionHeight, bottomStyle]);\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t{children}\r\n\t\t\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobilePopUp;\r\n","import React from 'react';\r\n\r\nconst MobilePopUpHeader = ({style, children}) => {\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t{children}\r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobilePopUpHeader;\r\n","import React, {useCallback, useMemo} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\n\r\nimport {getCurrentAvatar} from '../helpers/options.helpers';\r\n\r\nconst MobileAvatarIcon = ({avatar, isActive}) => {\r\n\r\n\tconst currentAvatar = useMemo(() => {\r\n\t\treturn getCurrentAvatar(avatar)?.icon?.type;\r\n\t}, [avatar]);\r\n\r\n\tconst handleLoad = useCallback(e => {\r\n\t\tconst img = e.currentTarget;\r\n\t\tif (img.complete) img.classList.add('visible');\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nMobileAvatarIcon.defaultProps = {\r\n\tavatar: 'defaultavatar1',\r\n\tisActive: false,\r\n};\r\n\r\nMobileAvatarIcon.propTypes = {\r\n\tavatar: PropTypes.string,\r\n\tisActive: PropTypes.bool,\r\n};\r\n\r\nexport default MobileAvatarIcon;\r\n","import React, {useCallback, useMemo} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {useTranslation} from 'react-i18next';\r\n\r\nimport useProfile from '../../context/contextHook/useProfile';\r\n\r\nimport MobilePopUpHeader from '../../components/MobilePopUp/MobilePopUpHeader';\r\nimport MobileAvatarIcon from '../../components/MobileAvatarIcon';\r\nimport MobileButtonClose from '../../components/Buttons/MobileButtonClose';\r\n\r\nconst MobileProfileHeader = ({avatar, nickname, copiersCount, reference}) => {\r\n\tconst {copiedUser: {isCopied, handleCopiedClose}} = useProfile();\r\n\r\n\tconst {t} = useTranslation();\r\n\r\n\tconst currentCopiersCount = useMemo(() => {\r\n\t\tif (typeof copiersCount === 'undefined') return '--';\r\n\t\treturn copiersCount || 0;\r\n\t}, [copiersCount]);\r\n\r\n\tconst handleClose = useCallback(e => {\r\n\t\tif (!isCopied) return null;\r\n\t\tif (isCopied) {\r\n\t\t\te && e.preventDefault();\r\n\t\t\te && e.stopPropagation();\r\n\t\t\thandleCopiedClose && handleCopiedClose();\r\n\t\t}\r\n\t}, [handleCopiedClose, isCopied]);\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t

    {nickname}

    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{t('Socail.Profile.Copiers').toLowerCase()}\r\n\t\t\t\t\t\t\t\t: \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{currentCopiersCount}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nMobileProfileHeader.defaultProps = {\r\n\tavatar: '',\r\n\tnickname: '',\r\n\tcopiersCount: 0,\r\n};\r\n\r\nMobileProfileHeader.propTypes = {\r\n\tavatar: PropTypes.string,\r\n\tnickname: PropTypes.string,\r\n\tcopiersCount: PropTypes.number,\r\n\treference: PropTypes.oneOfType([\r\n\t\tPropTypes.func,\r\n\t\tPropTypes.shape({current: PropTypes.instanceOf(Element)}),\r\n\t]).isRequired,\r\n};\r\n\r\nexport default MobileProfileHeader;\r\n","import { useCallback, useEffect, useState } from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\nimport { CommandFactory } from '../../../background/commands/CommandFactory';\r\n\r\nconst useProfileUserData = (userName) => {\r\n const [userProfile, setUserProfile] = useState(null);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const { getUserProfilePage } = useSelector(\r\n (state) => state.account.socialv1.profileCommands, shallowEqual\r\n );\r\n\r\n const getUserData = useCallback(async () => {\r\n if (!userName || !getUserProfilePage) return;\r\n const userInput = { nickname: userName, FolowersMax: 4, followingMax: 4 };\r\n\r\n const command = CommandFactory.createCommand(getUserProfilePage);\r\n setIsLoading(true);\r\n try {\r\n const res = await command.execute(userInput);\r\n if (res.isSuccessful) setUserProfile(res.payload);\r\n setIsLoading(false);\r\n return res;\r\n } catch (err) {\r\n console.error(err);\r\n setIsLoading(false);\r\n }\r\n }, [getUserProfilePage, userName]);\r\n\r\n useEffect(() => {\r\n getUserData();\r\n }, [getUserData]);\r\n\r\n return {\r\n userProfile,\r\n isLoading,\r\n requestData: () => getUserData()\r\n };\r\n};\r\n\r\nexport default useProfileUserData;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\n\r\nconst MobileSocialExploreStatisticBlock = ({\r\n\t label,\r\n\t number,\r\n\t isActive,\r\n\t className,\r\n }) => {\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t

    \r\n\t\t\t\t\t{number || ''}\r\n\t\t\t\t

    \r\n\t\t\t\t

    \r\n\t\t\t\t\t{label || ''}\r\n\t\t\t\t

    \r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileSocialExploreStatisticBlock;\r\n","import React from 'react';\r\nimport {useTranslation} from 'react-i18next';\r\nimport clsx from 'clsx';\r\n\r\nimport MobileSocialExploreStatisticBlock\r\n\tfrom '../../components/MobileSocial/MobileSocialExplore/MobileSocialExploreStatisticBlock';\r\n\r\nconst MobileProfileStatistics = ({isActive, pnl, daysFromNow, successRate}) => {\r\n\r\n\tconst {t} = useTranslation();\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{/*TODO: locale this*/}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nMobileProfileStatistics.defaultProps = {\r\n\tisActive: false,\r\n\tpnl: 0,\r\n\tdaysFromNow: 0,\r\n\tsuccessRate: 0,\r\n};\r\n\r\nexport default MobileProfileStatistics;\r\n","export const COLORS_RED = [\r\n\t'#DE4A4A',\r\n\t'#F86464',\r\n\t'#FF7D7D',\r\n\t'#FF9797',\r\n\t'#FFB0B0',\r\n\t// '#FFC9C9',\r\n];\r\n\r\nexport const COLORS_YELLOW = [\r\n\t'#DEC84A',\r\n\t'#F8E264',\r\n\t'#FFFB7D',\r\n\t'#FFFF97',\r\n\t'#FFFFB0',\r\n\t// '#FFFFC9',\r\n];\r\n\r\nexport const COLORS_GREEN = [\r\n\t'#51DE4A',\r\n\t'#6BF864',\r\n\t'#84FF7D',\r\n\t'#9EFF97',\r\n\t'#B7FFB0',\r\n\t// '#D0FFC9',\r\n];\r\n\r\nexport const COLORS_BLUE = [\r\n\t'#4A4FDE',\r\n\t'#6469F8',\r\n\t'#7D82FF',\r\n\t'#979CFF',\r\n\t'#B0B5FF',\r\n\t// '#C9CEFF',\r\n];\r\n\r\nconst getColorsArray = (index = 0) => {\r\n\tlet arr = [];\r\n\tconst cIndex = index % 4;\r\n\tswitch (cIndex) {\r\n\t\tcase 0:\r\n\t\t\tarr = COLORS_RED;\r\n\t\t\tbreak;\r\n\t\tcase 1:\r\n\t\t\tarr = COLORS_YELLOW;\r\n\t\t\tbreak;\r\n\t\tcase 2:\r\n\t\t\tarr = COLORS_GREEN;\r\n\t\t\tbreak;\r\n\t\tcase 3:\r\n\t\t\tarr = COLORS_BLUE;\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\tarr = COLORS_BLUE;\r\n\t}\r\n\treturn arr;\r\n};\r\n\r\nconst getColorsIndex = (index = 0) => {\r\n\tconst length = COLORS_RED.length - 1 || 4;\r\n\tconst i = ~~(index / length);\r\n\treturn i > length ? length : i;\r\n};\r\n\r\nexport const createChartColors = index => {\r\n\tconst colorsArray = getColorsArray(index);\r\n\tconst colorsIndex = getColorsIndex(index);\r\n\treturn colorsArray[colorsIndex];\r\n};\r\n\r\nexport const createChartLabel = label => {\r\n\t// label => '17/01/2021 / -0.80%'\r\n\treturn label\r\n\t\t\t.split('/')\r\n\t\t\t.filter(el => el.includes('%'))\r\n\t\t\t.join();\r\n};\r\n\r\nexport const createChartData = (value, label) => {\r\n\treturn value.map((item, index) => {\r\n\t\treturn {\r\n\t\t\tname: createChartLabel(label[index]),\r\n\t\t\tvalue: item,\r\n\t\t};\r\n\t});\r\n};\r\n\r\nexport const createPieChartData = data => {\r\n\tif (!data) return [];\r\n\treturn data\r\n\t\t\t.map(item => ({\r\n\t\t\t\tname: item.InstrumentName,\r\n\t\t\t\tvalue: item.AllocationPercentage,\r\n\t\t\t\tlabel: `${(item.AllocationPercentage * 100).toFixed(2)}%`,\r\n\t\t\t}));\r\n};\r\n","import React, {useMemo} from 'react';\r\n\r\nconst MobileAreaChartTooltip = props => {\r\n\tconst {payload, label, active} = props;\r\n\r\n\tconst action = useMemo(() => {\r\n\t\tif (!active || !payload || !payload.length) return null;\r\n\t\treturn {\r\n\t\t\t...payload[0].payload,\r\n\t\t\tpayload: payload[0],\r\n\t\t};\r\n\t}, [payload, active]);\r\n\r\n\tif (!active) return null;\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t{action?.name}\r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileAreaChartTooltip;\r\n","import React, {useCallback, useMemo} from 'react';\r\n// import {AreaChart, Line, ComposedChart, Area, XAxis, YAxis, CartesianGrid, Tooltip, Legend} from recharts;\r\nimport {Area, ComposedChart, Tooltip} from 'recharts';\r\n\r\nimport useWindowSize from '../../../../UI/utilsUI/useWindowSize';\r\nimport MobileAreaChartTooltip from './MobileAreaChartTooltip';\r\n\r\nconst MobileAreaChart = props => {\r\n\tconst {\r\n\t\tdata,\r\n\t\twidth,\r\n\t\theight,\r\n\t\ttype,\r\n\t} = props;\r\n\r\n\tconst [winWidth, winHeight] = useWindowSize();\r\n\r\n\tconst currentWidth = useMemo(() => {\r\n\t\treturn width || winWidth - 40;\r\n\t}, [data, width, winWidth]);\r\n\r\n\tconst currentHeight = useMemo(() => {\r\n\t\treturn height || 100;\r\n\t}, [data, height, winHeight]);\r\n\r\n\tconst renderChart = useCallback(() => {\r\n\t\treturn type\r\n\t}, [type, data])\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t}/>\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nMobileAreaChart.deefaultProps = {\r\n\tdata: [],\r\n\twidth: 0,\r\n\theight: 0,\r\n\ttype: 'area',\r\n};\r\n\r\nexport default MobileAreaChart;\r\n","import React, {useCallback, useEffect, useMemo, useState} from 'react';\r\n\r\nimport {formatDateOnly} from '../../../../UI/utilsUI/formatTime';\r\nimport {useSelector} from 'react-redux';\r\nimport { CommandFactory } from '../../../../background/commands/CommandFactory';\r\nimport {createChartData} from '../../../helpers/chart.helpers';\r\nimport MobileAreaChart from '../../MobileChart/MobileAreaChart/MobileAreaChart';\r\n\r\nconst MobileSocialExploreChart = ({userName}) => {\r\n\tconst [chartData,setChartData] = useState([]);\r\n\tconst {getGetPlAndStats} = useSelector(state => state.account.socialv1.profileCommands);\t\r\n\tconst [error, setError] = useState(false);\r\n\tconst [isLoading, setIsLoading] = useState(true)\r\n\r\n\tconst fetchDataAsync = async ()=>\r\n\t{\r\n\t\ttry\r\n\t\t{\r\n\t\t\tconst res =await CommandFactory.createCommand(getGetPlAndStats).execute({nickname: userName, timeframe: 1});\r\n\t\t\tif (res.isSuccessful) {\r\n\t\t\t\tlet DailyPLs = res.payload?.DailyPLs;\r\n\t\t\t\tif (DailyPLs)\r\n\t\t\t\t{\r\n\t\t\t\t\tconst pnl = DailyPLs;\r\n\t\t\t\t\tlet total = 0;\r\n\t\t\t\t\tif (!pnl && !pnl.length) return null;\r\n\t\t\t\t\tconst localLabels = pnl.map(item => {\r\n\t\t\t\t\t\tconst dOnly = `${formatDateOnly(new Date(item.Date))}`;\r\n\t\t\t\t\t\tconst sep = item.NormalizedPL > 0 ? '+' : '';\r\n\t\t\t\t\t\tconst pnl = ((Math.round(item.NormalizedPL * 100000) / 100000) *\r\n\t\t\t\t\t\t\t\t100).toFixed(2);\r\n\t\t\t\t\t\treturn `${dOnly} / ${sep}${pnl}%`;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tconst localValues = pnl.map(item => {\r\n\t\t\t\t\t\ttotal += (Math.round(item.NormalizedPL * 100000) / 100000);\r\n\t\t\t\t\t\treturn total;\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tsetChartData(createChartData(localValues,localLabels));\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tsetError(res);\r\n\t\t\t}\r\n\t\t\tsetIsLoading(false);\r\n\t\t}\r\n\t\tcatch(e)\r\n\t\t{\r\n\t\t\tsetIsLoading(false);\r\n\t\t}\r\n\t}\r\n\r\n\tuseEffect(()=>{\r\n\t\t\r\n\t\tfetchDataAsync();\r\n\t\t//return function cleanup() {\t\t};\r\n\t},[userName]);\r\n\r\n\t/*const DailyPLs = useMemo(() => {\r\n\t\treturn userDetailedProfile?.DailyPLs;\r\n\t}, [userDetailedProfile]);\r\n\r\n\tconst getDetailedProfileData = useCallback(async () => {\r\n\t\tif (!userName || !timeframe || !getGetPlAndStats) return null;\r\n\t\tconst userInput = {nickname: userName, timeframe: timeframe};\r\n\r\n\t\t\r\n\t\tsetIsLoading(true);\r\n\t\ttry {\r\n\t\t\tconsole.log(\"DDDDDDD\");\r\n\t\t\tconst res = await command.execute(userInput);\r\n\r\n\t\t\tif (!res.ok) {\r\n\t\t\t\tsetError({result: res.statusText});\r\n\t\t\t\tsetIsLoading(false);\r\n\t\t\t}\r\n\t\t\tif (res.isSuccessful) {\r\n\t\t\t\tsetIsLoading(false);\r\n\t\t\t\tsetDetailedUserProfile(res.payload);\r\n\t\t\t} else if (!res.isSuccessful) {\r\n\t\t\t\tsetIsLoading(false);\r\n\t\t\t\tsetError(res);\r\n\t\t\t}\r\n\t\t} catch (err) {\r\n\t\t\tsetIsLoading(false);\r\n\t\t\tsetError(err);\r\n\t\t}\r\n\t}, [getGetPlAndStats, userName, timeframe]);\r\n\r\n\tconst getlocalData = useCallback(() => {\r\n\t\tif (!DailyPLs || !userName) return null;\r\n\t\tconst pnl = DailyPLs;\r\n\t\tlet total = 0;\r\n\t\tif (!pnl && !pnl.length) return null;\r\n\t\tconst localLabels = pnl.map(item => {\r\n\t\t\tconst dOnly = `${formatDateOnly(new Date(item.Date))}`;\r\n\t\t\tconst sep = item.NormalizedPL > 0 ? '+' : '';\r\n\t\t\tconst pnl = ((Math.round(item.NormalizedPL * 100000) / 100000) *\r\n\t\t\t\t\t100).toFixed(2);\r\n\t\t\treturn `${dOnly} / ${sep}${pnl}%`;\r\n\t\t});\r\n\t\tconst localValues = pnl.map(item => {\r\n\t\t\ttotal += (Math.round(item.NormalizedPL * 100000) / 100000);\r\n\t\t\treturn total;\r\n\t\t});\r\n\t\tsetValues(localValues);\r\n\t\tsetLabels(localLabels);\r\n\t}, [DailyPLs, setValues, setLabels, userName]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!userName) return null;\r\n\t\tgetDetailedProfileData();\r\n\t\tgetlocalData();\r\n\t}, [getDetailedProfileData, getlocalData, userName]);\r\n\r\n\tconst newData = useMemo(() => {\r\n\t\treturn createChartData(values, labels);\r\n\t}, [values, labels]);*/\r\n\r\n\treturn (\r\n\t\t\t<>\r\n\t\t\t\t\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileSocialExploreChart;\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport { RISK_LEVELS, RISK_LEVEL_COLORS, RISK_LEVEL_LABELS } from '../../../shared/Constants/RiskLevelConstants';\r\n\r\nconst RiskLevelItem = ({ riskLevel, type }) => {\r\n const { t } = useTranslation();\r\n const theme = useSelector((state)=>state.brand.theme);\r\n \r\n return (\r\n
    \r\n
    \r\n  \r\n
    \r\n {t(RISK_LEVEL_LABELS[type])}\r\n
    \r\n );\r\n};\r\n\r\nconst MobileRiskLevelNew = ({ externalRiskScore }) => {\r\n const { t } = useTranslation();\r\n\r\n if (externalRiskScore?.UserMeasures?.MaxDrawDown > 0) {\r\n let score = 0;\r\n if (externalRiskScore.UserMeasures.MaxDrawDown * 100 > 50) {\r\n score = 2;\r\n } else if (externalRiskScore.UserMeasures.MaxDrawDown * 100 > 25) {\r\n score = 1;\r\n }\r\n\r\n return (\r\n
    \r\n
    {t('Social.Profile.RiskLevel')}
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport default MobileRiskLevelNew;\r\n","export const riskColor = [\r\n\t'#3CC09B',\r\n\t'#72B893',\r\n\t'#8AB786',\r\n\t'#D7B152',\r\n\t'#ECA244',\r\n\t'#E68847',\r\n\t'#E37A47',\r\n\t'#e96e28',\r\n];\r\n\r\nexport const MAX_LEVEL = 10;\r\nexport const RISK_LENGTH = 8;\r\nexport const DURATION = 3000;\r\nexport const DURATION_LEVEL = DURATION / RISK_LENGTH;\r\nexport const BLOCK_COST = MAX_LEVEL / RISK_LENGTH;\r\n","import React, { useMemo } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport clsx from 'clsx';\r\n\r\nimport { RISK_LENGTH } from '../../constants/risk.options';\r\nimport { getLevelItemStyle, isActiveItem } from '../../helpers/risk.helpers';\r\n\r\n\r\nconst MobileRiskLevelOld = ({ level, title, label }) => {\r\n const { t } = useTranslation();\r\n const componentTitle = useMemo(() => {\r\n let titleText = '';\r\n if (typeof title !== 'string') {\r\n titleText = title;\r\n } else if (title.toLowerCase() === 'risk level') {\r\n titleText = t('Social.Profile.RiskLevel');\r\n } else {\r\n titleText = t(title);\r\n }\r\n\r\n return (\r\n

    \r\n {titleText}\r\n

    \r\n );\r\n }, [title]);\r\n\r\n const componentBar = useMemo(() => {\r\n const arr = [...Array(RISK_LENGTH).keys()].map((i) => i + 1);\r\n return (\r\n
      \r\n {arr.map((item, index) => {\r\n const isActive = isActiveItem(index, level);\r\n const styles = getLevelItemStyle(index);\r\n return (\r\n \r\n \r\n \r\n );\r\n })}\r\n
    \r\n );\r\n }, [level]);\r\n\r\n const componentLabel = useMemo(() => {\r\n return (\r\n
      \r\n {label && label.length && label.map((el, i) => (\r\n \r\n {el}\r\n \r\n ))}\r\n
    \r\n );\r\n }, [label]);\r\n\r\n return (\r\n
    \r\n {componentTitle}\r\n {componentBar}\r\n {componentLabel}\r\n
    \r\n );\r\n};\r\n\r\nMobileRiskLevelOld.defaultProps = {\r\n level: 0,\r\n title: 'Risk Level',\r\n label: ['Low', 'Medium', 'High']\r\n};\r\n\r\nexport default MobileRiskLevelOld;\r\n","import {BLOCK_COST, DURATION_LEVEL, riskColor} from '../constants/risk.options';\r\n\r\nexport const isActiveItem = (index = 0, level = 0) => {\r\n\treturn index < level / BLOCK_COST;\r\n};\r\n\r\nexport const getLevelItemStyle = index => {\r\n\treturn {\r\n\t\tbackgroundColor: riskColor[index],\r\n\t\tanimationDuration: `${DURATION_LEVEL}ms`,\r\n\t\tanimationDelay: `${index * DURATION_LEVEL}ms`,\r\n\t};\r\n};\r\n","import React from 'react';\r\n\r\nimport MobileRiskLevelNew from './MobileRiskLevelNew';\r\nimport MobileRiskLevelOld from './MobileRiskLevelOld';\r\n\r\n\r\nconst MobileRiskLevelContainer = ({ level, title, label, yearPnl, isExternal }) => {\r\n if (isExternal) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default MobileRiskLevelContainer;\r\n","import React, {useCallback, useEffect, useMemo, useRef} from 'react';\r\nimport {useTranslation} from 'react-i18next';\r\nimport clsx from 'clsx';\r\n\r\nimport {Swiper, SwiperSlide} from 'swiper/react';\r\nimport SwiperCore, {Controller, Pagination, Thumbs} from 'swiper';\r\n\r\nimport 'swiper/swiper-bundle.css';\r\n\r\nSwiperCore.use([Pagination, Controller, Thumbs]);\r\n\r\nconst MobileCarouselMenu = props => {\r\n\tconst {\r\n\t\toptions = [],\r\n\t\tvalue = 0,\r\n\t\tonChange,\r\n\t\ttype = 'primary',\r\n\t\ttheme = 'black',\r\n\t\tposition = false,\r\n\t\tprofile = false,\r\n\t\tpagination = false,\r\n\t\ttabChildComponents = [],\r\n\t} = props;\r\n\r\n\tconst {t} = useTranslation();\r\n\r\n\tconst swiperRef = useRef(null);\r\n\r\n\tconst handleChange = useCallback(swiper => {\r\n\t\tconst index = swiper.activeIndex;\r\n\t\tconst option = {\r\n\t\t\tindex,\r\n\t\t\tvalue: options[index],\r\n\t\t\toptions,\r\n\t\t};\r\n\t\tonChange && onChange(option);\r\n\t}, [onChange, options]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (swiperRef && swiperRef.current) {\r\n\t\t\tconst swiper = swiperRef.current.swiper;\r\n\t\t\tif (swiper.activeIndex !== value) {\r\n\t\t\t\tswiper.slideTo(value);\r\n\t\t\t}\r\n\t\t}\r\n\t}, [value]);\r\n\r\n\tconst slidesPerView = useMemo(() => {\r\n\t\treturn position\r\n\t\t\t? 2\r\n\t\t\t: profile\r\n\t\t\t\t? 3\r\n\t\t\t\t: type === 'primary'\r\n\t\t\t\t\t? 'auto'\r\n\t\t\t\t\t: 4;\r\n\t}, [position, type]);\r\n\r\n\tconst spaceBetween = useMemo(() => {\r\n\t\treturn type === 'primary' ? 4 : 0;\r\n\t}, [type]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{options.map((option, index) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t\t\t{!!option.translation\r\n\t\t\t\t\t\t\t\t\t? t(option.translation).toLowerCase()\r\n\t\t\t\t\t\t\t\t\t: option.label.toLowerCase()\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t{tabChildComponents && index <=\r\n\t\t\t\t\t\t\t\ttabChildComponents.length - 1\r\n\t\t\t\t\t\t\t\t\t? tabChildComponents[index]\r\n\t\t\t\t\t\t\t\t\t: ''\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t))}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileCarouselMenu;\r\n","import React, {useMemo} from 'react';\r\nimport clsx from 'clsx';\r\n\r\nimport {getCarouselListStyle} from '../../helpers/carousel.helpers';\r\n\r\nconst CarouselTabList = ({children, options = [], index, style, classname}) => {\r\n\r\n const renderItems = useMemo(() => {\r\n if (children && children.length) return children;\r\n return options;\r\n }, [children, options]);\r\n\r\n return (\r\n \r\n {renderItems.map((item, idx) => (\r\n \r\n {index === idx && (\r\n <>\r\n {item}\r\n \r\n )}\r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default CarouselTabList;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.9983 0.000488281H0V60H89.9983V0.000488281Z\",\n fill: \"#0052B4\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.2683 29.9994C39.3163 29.946 39.3638 29.8923 39.4112 29.8384C39.3638 29.8925 39.3153 29.9456 39.2671 29.9994H39.2683Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.4601 38.5693L24.3863 42.5969L28.7362 41.5918L26.7881 45.6089L30.2861 48.3828L25.931 49.3646L25.9431 53.829L22.4601 51.0359L18.9772 53.829L18.9893 49.3646L14.6343 48.3828L18.1323 45.6089L16.1841 41.5918L20.5339 42.5969L22.4601 38.5693Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.0393 47.1729L68.9581 49.0939L71.0328 48.6144L70.1036 50.5304L71.7721 51.8536L69.6948 52.3217L69.7004 54.4511L68.0393 53.1191L66.3782 54.4511L66.3838 52.3217L64.3066 51.8536L65.9749 50.5304L65.046 48.6144L67.1207 49.0939L68.0393 47.1729Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M53.4931 21.9932L54.4119 23.9144L56.4866 23.4347L55.5574 25.3509L57.2257 26.6741L55.1485 27.1422L55.1542 29.2718L53.4931 27.9394L51.8318 29.2718L51.8376 27.1422L49.7603 26.6741L51.4286 25.3509L50.4998 23.4347L52.5743 23.9144L53.4931 21.9932Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M65.6394 4.34766L66.5582 6.26891L68.6329 5.78903L67.7037 7.70537L69.372 9.02844L67.2949 9.49672L67.3005 11.6261L65.6394 10.2937L63.9783 11.6261L63.9839 9.49672L61.9067 9.02844L63.575 7.70537L62.6461 5.78903L64.7208 6.26891L65.6394 4.34766Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M79.1052 17.8818L80.024 19.8029L82.0985 19.3234L81.1697 21.2394L82.838 22.5624L80.7607 23.0307L80.7665 25.1601L79.1052 23.828L77.4441 25.1601L77.4497 23.0307L75.3726 22.5624L77.0409 21.2394L76.1117 19.3234L78.1864 19.8029L79.1052 17.8818Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M71.3665 25.6719L72.089 27.8958H74.4275L72.5356 29.2704L73.2584 31.4943L71.3665 30.1199L69.4743 31.4943L70.1971 29.2704L68.3052 27.8958H70.6437L71.3665 25.6719Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.9991 0.000488281V5.37103L37.0598 9.78288H44.9991V20.2169H34.6101L44.9991 25.9885V29.9993H40.3094L27.3908 22.823V29.9993H17.6084V21.4612L2.24011 29.9993H0V24.6287L7.93936 20.2169H0V9.78288H10.389L0 4.00928V0.000488281H4.68975L17.6084 7.17697V0.000488281H27.3908V8.53855L42.759 0.000488281H44.9991Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M25.312 0H19.6871V12.187H0V17.8119H19.6871V29.9993H25.312V17.8119H44.9991V12.187H25.312V0Z\",\n fill: \"#D80027\"\n});\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.3906 20.2168L44.999 29.9992V27.233L32.3699 20.2168H27.3906Z\",\n fill: \"#0052B4\"\n});\n\nvar _ref13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.3906 20.2168L44.999 29.9992V27.233L32.3699 20.2168H27.3906Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.3906 20.2173L44.999 29.9997V27.2335L32.3699 20.2173H27.3906Z\",\n fill: \"#D80027\"\n});\n\nvar _ref15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.6289 20.2168L0 27.233V29.9992L17.6084 20.2168H12.6289Z\",\n fill: \"#D80027\"\n});\n\nvar _ref16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.6084 9.78239L0 0V2.76622L12.6291 9.78239H17.6084Z\",\n fill: \"#0052B4\"\n});\n\nvar _ref17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.6084 9.78239L0 0V2.76622L12.6291 9.78239H17.6084Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.6084 9.78239L0 0V2.76622L12.6291 9.78239H17.6084Z\",\n fill: \"#D80027\"\n});\n\nvar _ref19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.3701 9.78239L44.999 2.76622V0L27.3906 9.78239H32.3701Z\",\n fill: \"#D80027\"\n});\n\nvar SvgAud = function SvgAud(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgAud, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/AUD.a6eee1dc.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.999 0H0V59.9981H89.999V0Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.999 0H0V60H29.999V0Z\",\n fill: \"#D80027\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.999 0H60V60H89.999V0Z\",\n fill: \"#D80027\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.6243 34.1668L56.2493 31.3544L53.4368 29.9483V27.1358L47.8119 29.9483L50.6243 24.3234H47.8119L44.9994 20.1045L42.1869 24.3234H39.3745L42.1869 29.9483L36.562 27.1358V29.9483L33.7495 31.3544L39.3745 34.1668L37.9684 36.9793H43.5933V41.1982H46.4058V36.9793H52.0307L50.6243 34.1668Z\",\n fill: \"#D80027\"\n});\n\nvar SvgCad = function SvgCad(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgCad, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/CAD.3f639fe6.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.0019 0H0V60H90.0019V0Z\",\n fill: \"#D80027\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M62 24.3334H50.6666V13H39.3334V24.3334H28V35.6666H39.3334V47H50.6666V35.6666H62V24.3334Z\",\n fill: \"#F0F0F0\"\n});\n\nvar SvgChf = function SvgChf(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 91,\n height: 60,\n viewBox: \"0 0 91 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgChf, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/CHF.5f1ca48c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 90,\n height: 60,\n fill: \"#2B479D\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.3738 8.17333L45.9692 9.95844L47.8509 9.97307C48.0946 9.97492 48.1955 10.2858 47.9996 10.4306L46.4858 11.5484L47.0533 13.3424C47.1268 13.5746 46.8624 13.767 46.6641 13.6252L45.1333 12.5309L43.6025 13.6252C43.4044 13.7668 43.1398 13.5747 43.2133 13.3424L43.7808 11.5484L42.267 10.4306C42.071 10.2858 42.1719 9.97492 42.4157 9.97307L44.2973 9.95844L44.8928 8.17333C44.9696 7.94222 45.2968 7.94222 45.3738 8.17333Z\",\n fill: \"#FFE15A\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.3738 46.5L45.9692 48.2851L47.8509 48.2997C48.0946 48.3016 48.1955 48.6124 47.9996 48.7572L46.4858 49.8751L47.0533 51.6691C47.1268 51.9012 46.8624 52.0936 46.6641 51.9519L45.1333 50.8575L43.6025 51.9519C43.4044 52.0935 43.1398 51.9014 43.2133 51.6691L43.7808 49.8751L42.267 48.7572C42.071 48.6124 42.1719 48.3016 42.4157 48.2997L44.2973 48.2851L44.8928 46.5C44.9696 46.2689 45.2968 46.2689 45.3738 46.5Z\",\n fill: \"#FFE15A\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.5364 27.3364L65.1318 29.1215L67.0135 29.1362C67.2572 29.138 67.3581 29.4488 67.1622 29.5937L65.6484 30.7115L66.2159 32.5055C66.2894 32.7376 66.025 32.9301 65.8267 32.7883L64.2959 31.694L62.7651 32.7883C62.5669 32.9299 62.3024 32.7378 62.3759 32.5055L62.9434 30.7115L61.4296 29.5937C61.2336 29.4488 61.3345 29.138 61.5783 29.1362L63.4599 29.1215L64.0554 27.3364C64.1322 27.1053 64.4594 27.1053 64.5364 27.3364Z\",\n fill: \"#FFE15A\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.2102 27.3364L26.8057 29.1215L28.6873 29.1362C28.931 29.138 29.0319 29.4488 28.836 29.5937L27.3222 30.7115L27.8897 32.5055C27.9632 32.7376 27.6988 32.9301 27.5005 32.7883L25.9697 31.694L24.4389 32.7883C24.2408 32.9299 23.9762 32.7378 24.0497 32.5055L24.6172 30.7115L23.1034 29.5937C22.9075 29.4488 23.0084 29.138 23.2521 29.1362L25.1337 29.1215L25.7292 27.3364C25.8062 27.1053 26.1334 27.1053 26.2102 27.3364Z\",\n fill: \"#FFE15A\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.0867 17.3296L29.6821 19.1147L31.5638 19.1293C31.8075 19.1312 31.9084 19.442 31.7125 19.5868L30.1987 20.7047L30.7662 22.4987C30.8397 22.7308 30.5753 22.9232 30.377 22.7814L28.8462 21.6871L27.3154 22.7814C27.1172 22.9231 26.8527 22.731 26.9262 22.4987L27.4937 20.7047L25.9799 19.5868C25.7839 19.442 25.8848 19.1312 26.1286 19.1293L28.0102 19.1147L28.6056 17.3296C28.6827 17.0985 29.0095 17.0985 29.0867 17.3296Z\",\n fill: \"#FFE15A\"\n});\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M62.2786 36.4927L62.874 38.2778L64.7557 38.2924C64.9994 38.2943 65.1003 38.6051 64.9044 38.7499L63.3906 39.8678L63.9581 41.6618C64.0316 41.8939 63.7672 42.0863 63.5688 41.9445L62.0381 40.8502L60.5073 41.9445C60.3091 42.0862 60.0446 41.8941 60.1181 41.6618L60.6856 39.8678L59.1718 38.7499C58.9758 38.6051 59.0767 38.2943 59.3205 38.2924L61.2021 38.2778L61.7975 36.4927C61.8746 36.2616 62.2016 36.2616 62.2786 36.4927Z\",\n fill: \"#FFE15A\"\n});\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55.2644 10.3149L55.8599 12.1L57.7415 12.1147C57.9852 12.1165 58.0861 12.4274 57.8902 12.5722L56.3764 13.69L56.9439 15.484C57.0174 15.7162 56.753 15.9086 56.5547 15.7668L55.0239 14.6725L53.4931 15.7668C53.295 15.9084 53.0304 15.7163 53.1039 15.484L53.6714 13.69L52.1576 12.5722C51.9617 12.4274 52.0626 12.1165 52.3063 12.1147L54.1879 12.1L54.7834 10.3149C54.8602 10.0838 55.1871 10.0838 55.2644 10.3149Z\",\n fill: \"#FFE15A\"\n});\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.1013 43.5068L36.6968 45.2919L38.5784 45.3066C38.8221 45.3084 38.9231 45.6193 38.7271 45.7641L37.2133 46.8819L37.7808 48.6759C37.8543 48.9081 37.5899 49.1005 37.3916 48.9587L35.8608 47.8644L34.33 48.9587C34.1319 49.1003 33.8673 48.9082 33.9408 48.6759L34.5083 46.8819L32.9945 45.7641C32.7986 45.6193 32.8995 45.3084 33.1432 45.3066L35.0249 45.2919L35.6203 43.5068C35.6973 43.2757 36.0241 43.2757 36.1013 43.5068Z\",\n fill: \"#FFE15A\"\n});\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M61.7975 17.3296L61.2021 19.1147L59.3205 19.1293C59.0767 19.1312 58.9758 19.442 59.1718 19.5868L60.6856 20.7047L60.1181 22.4987C60.0446 22.7308 60.309 22.9232 60.5073 22.7814L62.0381 21.6871L63.5688 22.7814C63.767 22.9231 64.0316 22.731 63.9581 22.4987L63.3906 20.7047L64.9044 19.5868C65.1003 19.442 64.9994 19.1312 64.7557 19.1293L62.874 19.1147L62.2786 17.3296C62.2016 17.0985 61.8746 17.0985 61.7975 17.3296Z\",\n fill: \"#FFE15A\"\n});\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M28.6056 36.4927L28.0102 38.2778L26.1286 38.2924C25.8848 38.2943 25.7839 38.6051 25.9799 38.7499L27.4937 39.8678L26.9262 41.6618C26.8527 41.8939 27.1171 42.0863 27.3154 41.9445L28.8462 40.8502L30.377 41.9445C30.5751 42.0862 30.8397 41.8941 30.7662 41.6618L30.1987 39.8678L31.7125 38.7499C31.9084 38.6051 31.8075 38.2943 31.5638 38.2924L29.6821 38.2778L29.0867 36.4927C29.0095 36.2616 28.6827 36.2616 28.6056 36.4927Z\",\n fill: \"#FFE15A\"\n});\n\nvar _ref13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M35.6203 10.3149L35.0249 12.1L33.1432 12.1147C32.8995 12.1165 32.7986 12.4274 32.9945 12.5722L34.5083 13.69L33.9408 15.484C33.8673 15.7162 34.1317 15.9086 34.33 15.7668L35.8608 14.6725L37.3916 15.7668C37.5897 15.9084 37.8543 15.7163 37.7808 15.484L37.2133 13.69L38.7271 12.5722C38.9231 12.4274 38.8221 12.1165 38.5784 12.1147L36.6968 12.1L36.1013 10.3149C36.0241 10.0838 35.6973 10.0838 35.6203 10.3149Z\",\n fill: \"#FFE15A\"\n});\n\nvar _ref14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M54.7834 43.5068L54.1879 45.2919L52.3063 45.3066C52.0626 45.3084 51.9617 45.6193 52.1576 45.7641L53.6714 46.8819L53.1039 48.6759C53.0304 48.9081 53.2948 49.1005 53.4931 48.9587L55.0239 47.8644L56.5547 48.9587C56.7528 49.1003 57.0174 48.9082 56.9439 48.6759L56.3764 46.8819L57.8902 45.7641C58.0861 45.6193 57.9852 45.3084 57.7415 45.3066L55.8599 45.2919L55.2644 43.5068C55.1872 43.2757 54.8604 43.2757 54.7834 43.5068Z\",\n fill: \"#FFE15A\"\n});\n\nvar SvgEur = function SvgEur(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12, _ref13, _ref14);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgEur, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/EUR.f9be8aca.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.9983 0.000488281H0V60H89.9983V0.000488281Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.624 0H39.3742V24.3744H0V35.6242H39.3742V59.9986H50.624V35.6242H89.9983V24.3744H50.624V0Z\",\n fill: \"#D80027\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M69.2188 40.4336L89.9983 51.978V40.4336H69.2188Z\",\n fill: \"#0052B4\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M54.7817 40.4336L89.9985 59.9984V54.4659L64.7404 40.4336H54.7817Z\",\n fill: \"#0052B4\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M80.6179 59.9983L54.7817 45.6436V59.9983H80.6179Z\",\n fill: \"#0052B4\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M54.7817 40.4336L89.9985 59.9984V54.4659L64.7404 40.4336H54.7817Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M54.7817 40.4336L89.9985 59.9984V54.4659L64.7404 40.4336H54.7817Z\",\n fill: \"#D80027\"\n});\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.8799 40.4336L0 49.2559V40.4336H15.8799Z\",\n fill: \"#0052B4\"\n});\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M35.2165 42.9219V59.9989H4.48047L35.2165 42.9219Z\",\n fill: \"#0052B4\"\n});\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M25.258 40.4336L0 54.4659V59.9984L35.2167 40.4336H25.258Z\",\n fill: \"#D80027\"\n});\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.7796 19.5649L0 8.02051V19.5649H20.7796Z\",\n fill: \"#0052B4\"\n});\n\nvar _ref13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M35.2167 19.5648L0 0V5.53243L25.258 19.5648H35.2167Z\",\n fill: \"#0052B4\"\n});\n\nvar _ref14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.38086 0L35.217 14.3547V0H9.38086Z\",\n fill: \"#0052B4\"\n});\n\nvar _ref15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M35.2167 19.5648L0 0V5.53243L25.258 19.5648H35.2167Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M35.2167 19.5648L0 0V5.53243L25.258 19.5648H35.2167Z\",\n fill: \"#D80027\"\n});\n\nvar _ref17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M74.1187 19.565L89.9986 10.7427V19.565H74.1187Z\",\n fill: \"#0052B4\"\n});\n\nvar _ref18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M54.7817 17.077V0H85.5177L54.7817 17.077Z\",\n fill: \"#0052B4\"\n});\n\nvar _ref19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.7404 19.5648L89.9985 5.53243V0L54.7817 19.5648H64.7404Z\",\n fill: \"#D80027\"\n});\n\nvar SvgGbp = function SvgGbp(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgGbp, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/GBP.b42fef38.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0H90V60H0V0Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.6556 47.3113C54.4066 47.3113 62.3113 39.4066 62.3113 29.6556C62.3113 19.9047 54.4066 12 44.6556 12C34.9047 12 27 19.9047 27 29.6556C27 39.4066 34.9047 47.3113 44.6556 47.3113Z\",\n fill: \"#D80027\"\n});\n\nvar SvgJpy = function SvgJpy(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgJpy, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/JPY.f237b07e.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M88.448 60H1.55179C0.694862 60 0 59.2929 0 58.421V1.57902C0 0.707052 0.694862 0 1.55179 0H88.4482C89.3051 0 90 0.707052 90 1.57902V58.421C89.9998 59.2931 89.305 60 88.448 60Z\",\n fill: \"#0052B4\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.2104 0.000976562H41.4676L26.8419 9.58348V0.000976562H18.9471V9.58348L4.32137 0.000976562H1.57902C0.707052 0.000976562 0 0.707849 0 1.57981V2.83223L12.5483 11.0534H0V18.9481H12.5483L0 27.1695V28.4219C0 29.2938 0.707052 30.0009 1.57902 30.0009H4.32173L18.9475 20.4184V30.0009H26.8422V20.4184L41.4678 30.0009H44.2105C45.0825 30.0009 45.7896 29.2938 45.7896 28.4219V27.1695L33.2413 18.9483H45.7894V11.0536H33.2411L45.7894 2.83241V1.58C45.7894 0.707851 45.0823 0.000976562 44.2104 0.000976562Z\",\n fill: \"#F5F5F5\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.7894 12.6326H25.263V0.000976562H20.5263V12.6326H0V17.3693H20.5263V30.0009H25.263V17.3693H45.7894V12.6326Z\",\n fill: \"#D80027\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.3683 11.0528L0.752484 0.26709C0.31033 0.546834 0 1.01707 0 1.57906V1.66098L14.4682 11.0528H17.3683Z\",\n fill: \"#D80027\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.7419 11.0526L45.5489 0.791835C45.2742 0.326965 44.7894 0 44.2101 0H43.8686L26.8418 11.0526H29.7419Z\",\n fill: \"#D80027\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.0043 18.9473L0.227539 29.1883C0.499592 29.6645 0.991828 29.9999 1.57958 29.9999H1.87739L18.9046 18.9473H16.0043Z\",\n fill: \"#D80027\"\n});\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.7643 28.5448L30.9782 18.9473H28.0781L44.8689 29.8464C45.3718 29.613 45.7169 29.1238 45.7643 28.5448Z\",\n fill: \"#D80027\"\n});\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M69.7365 52.053C69.6725 52.053 69.6079 52.0328 69.553 51.9943L67.6843 50.6589L65.8153 51.9943C65.7606 52.0328 65.6958 52.053 65.6318 52.053C65.5663 52.053 65.5016 52.0328 65.4461 51.9927C65.3367 51.9126 65.2896 51.7707 65.3304 51.6412L66.0235 49.4516L64.1764 48.0886C64.0669 48.0069 64.0215 47.8666 64.0631 47.7371C64.1055 47.6077 64.225 47.5196 64.3615 47.5182L66.6583 47.4996L67.3847 45.3209C67.4279 45.193 67.5489 45.105 67.6846 45.105C67.8204 45.105 67.9415 45.1928 67.9846 45.3209L68.7109 47.4996L71.0077 47.5182C71.1442 47.5198 71.2637 47.6077 71.3061 47.7371C71.3478 47.8666 71.3022 48.0069 71.1929 48.0886L69.3457 49.4516L70.0388 51.6412C70.0796 51.7707 70.0327 51.9126 69.9231 51.9927C69.8669 52.0328 69.8015 52.053 69.7365 52.053Z\",\n fill: \"#D80027\",\n stroke: \"white\",\n strokeWidth: 0.4\n});\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M66.9194 16.5993C66.864 16.5993 66.8093 16.582 66.7623 16.549L65.1619 15.4044L63.5614 16.5492C63.5146 16.5821 63.4591 16.5994 63.4043 16.5994C63.3488 16.5994 63.2928 16.5821 63.2453 16.5478C63.1515 16.4792 63.1112 16.3577 63.1462 16.2468L63.7397 14.3717L62.1579 13.2031C62.0642 13.1331 62.0253 13.0116 62.0609 12.9021C62.0972 12.7912 62.2002 12.7159 62.3164 12.7146L64.2833 12.7001L64.9054 10.8343C64.9424 10.7248 65.046 10.6494 65.1622 10.6494C65.2785 10.6494 65.3822 10.7246 65.4191 10.8343L66.0411 12.7001L68.008 12.7146C68.1243 12.716 68.2272 12.7912 68.2635 12.9021C68.2992 13.0116 68.2602 13.1331 68.1666 13.2031L66.5847 14.3717L67.1783 16.2468C67.2132 16.3577 67.1731 16.4792 67.0792 16.5478C67.0311 16.5821 66.975 16.5993 66.9194 16.5993Z\",\n fill: \"#D80027\",\n stroke: \"white\",\n strokeWidth: 0.4\n});\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M80.972 25.4939C80.9166 25.4939 80.8619 25.4766 80.8149 25.4437L79.2147 24.2989L77.6142 25.4437C77.5673 25.4766 77.5118 25.4939 77.457 25.4939C77.4016 25.4939 77.3455 25.4766 77.298 25.4423C77.2043 25.3737 77.164 25.2522 77.1989 25.1413L77.7925 23.2662L76.2106 22.0976C76.1169 22.0276 76.078 21.9062 76.1137 21.7967C76.15 21.6858 76.2529 21.6104 76.3692 21.6092L78.3361 21.5946L78.9581 19.7288C78.9952 19.6193 79.0987 19.5439 79.215 19.5439C79.3312 19.5439 79.4349 19.6192 79.4718 19.7288L80.0939 21.5946L82.0608 21.6092C82.177 21.6106 82.28 21.6858 82.3163 21.7967C82.3519 21.9062 82.3129 22.0276 82.2193 22.0976L80.6375 23.2662L81.231 25.1413C81.266 25.2522 81.2258 25.3737 81.1319 25.4423C81.0837 25.4766 81.0276 25.4939 80.972 25.4939Z\",\n fill: \"#D80027\",\n stroke: \"white\",\n strokeWidth: 0.4\n});\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M57.6836 33.6497C57.6189 33.6497 57.555 33.6294 57.5001 33.591L55.6315 32.2542L53.7626 33.591C53.7078 33.6294 53.6431 33.6497 53.579 33.6497C53.5143 33.6497 53.4488 33.6294 53.3934 33.5894C53.2839 33.5093 53.2369 33.3674 53.2777 33.2379L53.9708 31.0483L52.1236 29.6837C52.0142 29.602 51.9687 29.4601 52.0104 29.3322C52.0528 29.2027 52.173 29.1147 52.3087 29.1133L54.6055 29.0963L55.3319 26.9176C55.3752 26.7897 55.4961 26.7017 55.6319 26.7017C55.7676 26.7017 55.8887 26.7895 55.9318 26.9176L56.6582 29.0963L58.955 29.1133C59.0908 29.1149 59.211 29.2027 59.2534 29.3322C59.295 29.4601 59.2494 29.602 59.1401 29.6837L57.293 31.0483L57.9861 33.2379C58.0269 33.3674 57.98 33.5093 57.8704 33.5894C57.814 33.6296 57.7486 33.6497 57.6836 33.6497Z\",\n fill: \"#D80027\",\n stroke: \"white\",\n strokeWidth: 0.4\n});\n\nvar SvgNzd = function SvgNzd(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgNzd, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/NZD.599828bc.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.999 0H0V60H89.999V0Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.999 7.49902H0V14.9983H89.999V7.49902Z\",\n fill: \"#D80027\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.999 22.4995H0V29.9988H89.999V22.4995Z\",\n fill: \"#D80027\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.999 37.498H0V44.9973H89.999V37.498Z\",\n fill: \"#D80027\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.999 52.4985H0V59.9978H89.999V52.4985Z\",\n fill: \"#D80027\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.9995 0H0V32.3077H44.9995V0Z\",\n fill: \"#2E52B2\"\n});\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.5465 13.2349L16.8217 15.4644H14.4775L16.3744 16.8417L15.6496 19.0711L17.5465 17.6939L19.4421 19.0711L18.7175 16.8417L20.6143 15.4644H18.27L17.5465 13.2349Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.27 23.5107L17.5465 21.2812L16.8217 23.5107H14.4775L16.3744 24.8881L15.6496 27.1175L17.5465 25.7401L19.4421 27.1175L18.7175 24.8881L20.6143 23.5107H18.27Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.36293 23.5107L7.63924 21.2812L6.91451 23.5107H4.57031L6.46715 24.8881L5.74241 27.1175L7.63924 25.7401L9.53502 27.1175L8.81046 24.8881L10.7069 23.5107H8.36293Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.63924 13.2349L6.91451 15.4644H4.57031L6.46715 16.8417L5.74241 19.0711L7.63924 17.6939L9.53502 19.0711L8.81046 16.8417L10.7069 15.4644H8.36293L7.63924 13.2349Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.5465 5.18896L16.8217 7.41873H14.4775L16.3744 8.79613L15.6496 11.0255L17.5465 9.64814L19.4421 11.0255L18.7175 8.79613L20.6143 7.41873H18.27L17.5465 5.18896Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.63924 5.18896L6.91451 7.41873H4.57031L6.46715 8.79613L5.74241 11.0255L7.63924 9.64814L9.53502 11.0255L8.81046 8.79613L10.7069 7.41873H8.36293L7.63924 5.18896Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.454 13.2349L26.7294 15.4644H24.3853L26.2819 16.8417L25.5575 19.0711L27.454 17.6939L29.35 19.0711L28.6252 16.8417L30.5221 15.4644H28.1779L27.454 13.2349Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M28.1779 23.5107L27.454 21.2812L26.7294 23.5107H24.3853L26.2819 24.8881L25.5575 27.1175L27.454 25.7401L29.35 27.1175L28.6252 24.8881L30.5221 23.5107H28.1779Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.0849 23.5107L37.3612 21.2812L36.6365 23.5107H34.2925L36.189 24.8881L35.4644 27.1175L37.3612 25.7401L39.257 27.1175L38.5323 24.8881L40.4291 23.5107H38.0849Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.3612 13.2349L36.6365 15.4644H34.2925L36.189 16.8417L35.4644 19.0711L37.3612 17.6939L39.257 19.0711L38.5323 16.8417L40.4291 15.4644H38.0849L37.3612 13.2349Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.454 5.18896L26.7294 7.41873H24.3853L26.2819 8.79613L25.5575 11.0255L27.454 9.64814L29.35 11.0255L28.6252 8.79613L30.5221 7.41873H28.1779L27.454 5.18896Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.3612 5.18896L36.6365 7.41873H34.2925L36.189 8.79613L35.4644 11.0255L37.3612 9.64814L39.257 11.0255L38.5323 8.79613L40.4291 7.41873H38.0849L37.3612 5.18896Z\",\n fill: \"#F0F0F0\"\n});\n\nvar SvgUsd = function SvgUsd(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgUsd, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/USD.d911f562.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 90,\n height: 60,\n fill: \"#F4C85B\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 5,\n y: 5,\n width: 80,\n height: 50,\n fill: \"#EFB250\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55.0829 31.1216C54.621 30.5109 54.0338 30.0021 53.3371 29.595C52.8125 29.2818 52.2254 29.0313 51.5756 28.8434C52.7577 28.2641 53.6346 27.4969 54.2217 26.5495C54.8011 25.6023 55.0907 24.5923 55.0907 23.512C55.0907 22.3612 54.7619 21.2573 54.1043 20.2004C53.4467 19.1435 52.5385 18.3607 51.3799 17.8518C50.5031 17.4603 49.407 17.2255 48.0918 17.1315V14H44.788V17.0846H43.1205V14H39.8246V17.0846H38.4232V17.0767H34.7358V20.036H37.335V39.2479H34.7358V42.2072H37.335V42.215H39.8246V45.3074H43.1205V42.215H44.788V45.3074H48.0918V42.1915C49.1878 42.1367 50.1508 42.0036 50.9728 41.7923C52.0688 41.5182 52.9926 41.1033 53.7207 40.5553C54.4488 40.0073 55.0672 39.2244 55.5604 38.2145C56.0615 37.2046 56.312 36.1085 56.312 34.9342C56.312 33.4702 55.8971 32.202 55.0829 31.1216ZM40.6622 20.0517H45.6805C47.4889 20.0517 48.765 20.1691 49.501 20.404C50.2447 20.6388 50.8162 21.0694 51.2155 21.7035C51.6147 22.3376 51.8183 23.0736 51.8183 23.9112C51.8183 24.7881 51.6069 25.5161 51.1763 26.1033C50.7458 26.6827 50.1116 27.1054 49.2661 27.3559C48.6241 27.5517 47.5673 27.6456 46.0954 27.6456H40.6622V20.0517ZM52.3663 37.048C52.0375 37.6586 51.6147 38.1284 51.098 38.4415C50.5813 38.7625 49.9472 38.9895 49.18 39.1304C48.7416 39.2088 47.99 39.2479 46.9175 39.2479H40.6622V30.6127H46.4712C48.0683 30.6127 49.2974 30.7536 50.1508 31.0276C50.6596 31.1999 51.098 31.4426 51.4817 31.7557C51.7321 31.9671 51.9514 32.2098 52.1471 32.4916C52.6246 33.1806 52.8673 33.9947 52.8673 34.9342C52.8673 35.7328 52.6951 36.4373 52.3663 37.048Z\",\n fill: \"#CC903A\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M54.3471 31.1216C53.8851 30.5109 53.298 30.0021 52.6012 29.595C52.0767 29.2818 51.4895 29.0313 50.8398 28.8434C52.0219 28.2641 52.8987 27.4969 53.4859 26.5495C54.0652 25.6023 54.3549 24.5923 54.3549 23.512C54.3549 22.3612 54.026 21.2573 53.3685 20.2004C52.7108 19.1435 51.8027 18.3607 50.644 17.8518C49.7672 17.4603 48.6712 17.2255 47.3559 17.1315V14H44.0522V17.0846H42.3846V14H39.0887V17.0846H37.6873V17.0767H34V20.036H36.5992V39.2479H34V42.2072H36.5992V42.215H39.0887V45.3074H42.3846V42.215H44.0522V45.3074H47.3559V42.1915C48.4519 42.1367 49.4149 42.0036 50.2369 41.7923C51.333 41.5182 52.2568 41.1033 52.9849 40.5553C53.7129 40.0073 54.3314 39.2244 54.8246 38.2145C55.3257 37.2046 55.5762 36.1085 55.5762 34.9342C55.5762 33.4702 55.1612 32.202 54.3471 31.1216ZM39.9264 20.0517H44.9447C46.7531 20.0517 48.0292 20.1691 48.7651 20.404C49.5089 20.6388 50.0803 21.0694 50.4796 21.7035C50.8789 22.3376 51.0825 23.0736 51.0825 23.9112C51.0825 24.7881 50.8711 25.5161 50.4405 26.1033C50.0099 26.6827 49.3758 27.1054 48.5303 27.3559C47.8883 27.5517 46.8314 27.6456 45.3596 27.6456H39.9264V20.0517ZM51.6304 37.048C51.3016 37.6586 50.8789 38.1284 50.3622 38.4415C49.8455 38.7625 49.2114 38.9895 48.4442 39.1304C48.0057 39.2088 47.2542 39.2479 46.1816 39.2479H39.9264V30.6127H45.7354C47.3324 30.6127 48.5616 30.7536 49.4149 31.0276C49.9238 31.1999 50.3622 31.4426 50.7458 31.7557C50.9963 31.9671 51.2155 32.2098 51.4113 32.4916C51.8888 33.1806 52.1315 33.9947 52.1315 34.9342C52.1315 35.7328 51.9593 36.4373 51.6304 37.048Z\",\n fill: \"#FCD462\"\n});\n\nvar SvgBtc = function SvgBtc(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgBtc, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/BTC.13d36d3b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 90,\n height: 60,\n fill: \"#8DC351\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55.7943 19.1603C54.2227 15.1665 50.2816 14.806 45.6923 15.6971L44.0579 10L40.5906 10.9944L42.1825 16.5437C41.2711 16.8029 40.3435 17.0905 39.422 17.374L37.8221 11.7883L34.3568 12.7807L35.9872 18.4778C35.2419 18.7087 34.5087 18.9355 33.7898 19.1421L33.7837 19.1218L29 20.4929L30.0633 24.1992C30.0633 24.1992 32.6111 23.4134 32.5807 23.4741C33.9862 23.0711 34.6768 23.7556 35.011 24.422L36.8743 30.9109C36.9694 30.8846 37.097 30.8522 37.2469 30.8299L36.8803 30.9352L39.4869 40.0287C39.5517 40.4884 39.495 41.2682 38.5147 41.5517C38.5694 41.578 35.9912 42.2727 35.9912 42.2727L36.4915 46.6129L41.0038 45.3167C41.8443 45.0797 42.6746 44.857 43.4868 44.6281L45.1414 50.39L48.6046 49.3976L46.9702 43.6965C47.8992 43.45 48.8255 43.1934 49.7489 42.9269L51.3732 48.6037L54.8425 47.6093L53.1939 41.8575C58.9274 39.8505 62.5871 37.2116 61.5238 31.5894C60.6692 27.0649 58.0323 25.6918 54.4941 25.8457C56.2115 24.2458 56.9508 22.0828 55.7943 19.1623V19.1603ZM54.4779 32.8714C55.7133 37.1792 48.1996 38.8034 45.8503 39.4799L43.6609 31.8446C46.0103 31.1702 53.1878 28.3814 54.4759 32.8734L54.4779 32.8714ZM49.7752 22.5628C50.8972 26.4817 44.6169 27.788 42.6584 28.349L40.6737 21.4246C42.6301 20.8636 48.6026 18.4778 49.7752 22.5648V22.5628Z\",\n fill: \"white\"\n});\n\nvar SvgBch = function SvgBch(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgBch, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/BCH.078914e5.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0H90V60H0V0Z\",\n fill: \"#D60A2E\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.3427 10.9453L17.3594 17.0581L24.1045 18.038L19.2232 22.796L20.376 29.5146L14.3427 26.3424L8.30851 29.5146L9.46138 22.796L4.58008 18.038L11.3252 17.0581L14.3427 10.9453Z\",\n fill: \"#FED953\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.2111 22.6777L33.417 25.12L36.1125 25.5115L34.1618 27.4134L34.622 30.0973L32.2111 28.8303L29.8003 30.0973L30.2604 27.4134L28.3105 25.5115L31.0061 25.12L32.2111 22.6777Z\",\n fill: \"#FED953\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30.784 11.998L32.9872 13.6003L35.5553 12.6941L34.7119 15.2845L36.368 17.4471L33.6443 17.4454L32.0983 19.6883L31.2583 17.097L28.6479 16.3207L30.8519 14.7209L30.784 11.998Z\",\n fill: \"#FED953\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.251 4.62793L26.7362 7.3028L28.648 9.24357L25.945 9.58041L24.6903 11.9979L23.5349 9.53159L20.8477 9.08467L22.8364 7.22335L22.4301 4.53027L24.8153 5.84619L27.251 4.62793Z\",\n fill: \"#FED953\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.251 32.0327L26.7362 34.7076L28.648 36.6475L25.945 36.9844L24.6903 39.4019L23.5349 36.9355L20.8477 36.4895L22.8364 34.6281L22.4301 31.9351L24.8153 33.251L27.251 32.0327Z\",\n fill: \"#FED953\"\n});\n\nvar SvgCnh = function SvgCnh(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgCnh, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/CNH.a02884b0.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.0019 0H0V60H90.0019V0Z\",\n fill: \"#0052B4\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.0019 30V60H0L37.8263 30H90.0019Z\",\n fill: \"#D80027\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.0019 0V30H37.8263L0 0H90.0019Z\",\n fill: \"#F0F0F0\"\n});\n\nvar SvgCzk = function SvgCzk(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 91,\n height: 60,\n viewBox: \"0 0 91 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgCzk, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/CZK.ea8581f9.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.5061 0.00146484H0V60.0007H89.5061V0.00146484Z\",\n fill: \"#D80027\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M33.5648 0H22.3765V24.3743H0V35.6241H22.3765V59.9984H33.5648V35.6241H89.5061V24.3743H33.5648V0Z\",\n fill: \"#F0F0F0\"\n});\n\nvar SvgDkk = function SvgDkk(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgDkk, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/DKK.cf68c301.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 90,\n height: 60,\n fill: \"black\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M45.0765 9.00003C45.2993 8.99792 45.5152 9.10184 45.6518 9.28848L54.6588 21.5939C54.7168 21.6731 54.7576 21.7635 54.7786 21.8594L59.1367 41.7702C59.2003 42.0607 59.0745 42.36 58.8225 42.5179L45.4574 50.8925C45.3405 50.9657 45.2082 51.0012 45.0765 51C44.9448 51.0012 44.8124 50.9657 44.6956 50.8925L31.3305 42.5179C31.0785 42.36 30.9527 42.0607 31.0163 41.7702L35.3744 21.8594C35.3954 21.7635 35.4362 21.6731 35.4942 21.5939L44.5012 9.28848C44.6378 9.10184 44.8537 8.99792 45.0765 9.00003ZM44.3651 11.8602L36.8427 22.1373L38.7361 28.0832L44.3651 18.1496V11.8602ZM45.0765 19.7526L39.3188 29.9132L42.9181 41.2162H47.2349L50.8342 29.9132L45.0765 19.7526ZM51.781 31.5841L48.7138 41.2162H57.2392L51.781 31.5841ZM55.9969 42.6254H48.2651L46.3378 48.6778L55.9969 42.6254ZM45.0765 47.9945L46.7862 42.6254H43.3668L45.0765 47.9945ZM41.4392 41.2162L38.372 31.5841L32.9138 41.2162H41.4392ZM33.3895 37.5183L37.7892 29.7541L36.189 24.7286L33.3895 37.5183ZM34.1561 42.6254H41.8879L43.8152 48.6778L34.1561 42.6254ZM56.7635 37.5183L52.3638 29.7541L53.964 24.7286L56.7635 37.5183ZM53.3103 22.1373L51.4169 28.0832L45.7879 18.1496V11.8602L53.3103 22.1373Z\",\n fill: \"white\"\n});\n\nvar SvgEos = function SvgEos(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgEos, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/EOS.4b747bad.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 90,\n height: 60,\n fill: \"#13182C\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.0015 30.0233L44.6707 22.7288L58.1637 29.9704L44.6824 37.2712L31.0015 30.0233Z\",\n fill: \"#009F42\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.0015 30.0233L44.6707 22.7288L58.1637 29.9704L44.6824 37.2712L31.0015 30.0233Z\",\n fill: \"#01C853\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.6714 22.7288L58.1644 29.9704L44.6831 37.2712L44.6714 22.7288Z\",\n fill: \"#009F42\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.6714 31.1419L58.1644 29.9702L44.6831 37.2711L44.6714 31.1419H44.6714Z\",\n fill: \"#007831\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.6707 31.1419L31.0015 30.0232L44.659 37.2711L44.6707 31.1419H44.6707Z\",\n fill: \"#009F42\"\n});\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31 31.9629C35.7881 34.5026 40.7773 37.1646 44.6402 39.2228L58.1688 31.9649C53.2705 39.2437 49.1904 45.2982 44.6401 51.9996C40.0842 45.3123 35.0501 37.9308 31 31.9629Z\",\n fill: \"#009F42\"\n});\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31 31.9629C35.7881 34.5026 40.7773 37.1646 44.6402 39.2228L58.1688 31.9649C53.2705 39.2437 49.1904 45.2982 44.6401 51.9996C40.0842 45.3123 35.0501 37.9308 31 31.9629Z\",\n fill: \"#01C853\"\n});\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.6402 39.2232L58.1689 31.9653C53.2705 39.2441 44.6401 52 44.6401 52L44.6402 39.2232Z\",\n fill: \"#009F42\"\n});\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.6402 39.2232L58.1689 31.9653C53.2705 39.2441 49.1904 45.2986 44.6401 52L44.6402 39.2232Z\",\n fill: \"#009F42\"\n});\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.6379 20.7L31.002 27.8804L44.5787 8L58.1641 27.9238L44.6379 20.7Z\",\n fill: \"#01C853\"\n});\n\nvar _ref13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.6378 20.7L44.5786 8L58.164 27.9238L44.6378 20.7Z\",\n fill: \"#009F42\"\n});\n\nvar SvgEtc = function SvgEtc(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12, _ref13);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgEtc, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/ETC.d51b1f0f.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 90,\n height: 60,\n fill: \"#151E2C\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.5033 8L31 30.4078L44.5033 24.2705V8Z\",\n fill: \"#8A92B2\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.5033 24.2703L31 30.4076L44.5033 38.3915V24.2703Z\",\n fill: \"#62688F\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.0087 30.4078L44.5029 8V24.2705L58.0087 30.4078Z\",\n fill: \"#62688F\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.5029 38.3915L58.0087 30.4076L44.5029 24.2703V38.3915Z\",\n fill: \"#454A75\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31 32.97L44.5033 52.0001V40.9488L31 32.97Z\",\n fill: \"#8A92B2\"\n});\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.5029 40.9488V52.0001L58.0162 32.97L44.5029 40.9488Z\",\n fill: \"#62688F\"\n});\n\nvar SvgEth = function SvgEth(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgEth, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/ETH.16861aa0.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 90,\n height: 60,\n fill: \"#DE2910\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.0263 32.4439C36.9176 32.4657 34.5497 31.7916 32.475 29.5087C32.3319 29.3514 32.3518 29.1034 32.5146 28.9659L32.5153 28.9653C32.673 28.832 32.9061 28.8526 33.0453 29.0052C36.208 32.4717 40.1278 31.8649 42.4698 31.0272C41.6046 31.0656 40.5174 31.0007 39.8182 30.5421C36.8972 28.6254 38.2202 26.5864 36.2802 24.1217C34.3525 21.6726 32.6178 21.7326 29.8865 22.1459C27.1824 22.5548 26.321 20.575 26.0528 19.4763C26.0049 19.2794 25.7298 19.2671 25.6593 19.4568C22.2889 28.546 32.423 39.7926 42.8276 31.7061C41.8007 32.0834 40.4784 32.4292 39.0263 32.4439ZM31.4339 29.3595C31.3748 29.5218 31.1426 29.5154 31.0924 29.3501L30.7043 28.0735L29.3686 28.0268C29.1956 28.0207 29.13 27.7985 29.272 27.6998L30.3684 26.9369L30.0002 25.6543C29.9524 25.4885 30.144 25.3574 30.282 25.4614L31.3477 26.2664L32.4558 25.5204C32.5993 25.4238 32.7833 25.5651 32.7266 25.7283L32.2889 26.9888L33.3421 27.8102C33.4783 27.9167 33.4006 28.135 33.2276 28.1316L31.8913 28.1055L31.4339 29.3595Z\",\n fill: \"#F5F5F5\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M46.4912 26.4052C48.1656 25.1256 50.4653 24.2476 53.4972 24.832C53.7062 24.8723 53.839 25.0827 53.7918 25.29L53.7916 25.2907C53.7456 25.492 53.5466 25.6149 53.3435 25.576C48.7301 24.6951 45.9578 27.5274 44.5872 29.5995C45.2565 29.0508 46.1655 28.4519 47.0006 28.4007C50.4895 28.1856 50.6557 30.6095 53.6893 31.4204C56.7032 32.226 58.0552 31.1399 59.993 29.1741C61.9111 27.228 63.7901 28.2966 64.6646 29.0154C64.8211 29.1442 65.0487 28.9895 64.9911 28.7954C62.2271 19.5046 47.3602 16.5715 43.8931 29.2707C44.4875 28.3547 45.3381 27.2864 46.4912 26.4052ZM54.42 24.3285C54.3698 24.1632 54.5595 24.0293 54.6989 24.1315L55.7766 24.9206L56.8736 24.1583C57.0155 24.0596 57.2016 24.1982 57.1476 24.3622L56.7286 25.6291L57.7937 26.4349C57.9317 26.5393 57.857 26.7585 57.6842 26.7579L56.3477 26.7517L55.909 28.012C55.8522 28.1752 55.6201 28.1722 55.5674 28.0078L55.1603 26.7371L53.824 26.7103C53.651 26.7067 53.5821 26.4856 53.7227 26.3847L54.8077 25.6057L54.42 24.3285Z\",\n fill: \"#F5F5F5\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M40.9067 27.2813C40.0843 25.3429 39.8076 22.9008 41.1331 20.117C41.2244 19.925 41.4619 19.8492 41.651 19.947L41.6517 19.9473C41.8354 20.0421 41.9047 20.2653 41.8166 20.4518C39.8082 24.6902 41.8623 28.0778 43.5292 29.9206C43.1643 29.1364 42.8111 28.1084 42.9699 27.2883C43.634 23.8627 46.0266 24.3081 47.5719 21.5791C49.1074 18.8677 48.3918 17.2895 46.9697 14.9251C45.5618 12.5846 47.0684 11.0361 47.9844 10.3707C48.1483 10.2515 48.0553 9.99296 47.8527 10.0001C38.1493 10.3476 31.5857 23.9818 43.0366 30.5089C42.2966 29.7052 41.4731 28.6161 40.9067 27.2813ZM40.8754 19.0992C40.7024 19.1064 40.6201 18.8896 40.7541 18.7805L41.7891 17.9365L41.3241 16.6857C41.2639 16.5238 41.4448 16.3785 41.5904 16.472L42.7144 17.1937L43.7623 16.3659C43.898 16.2586 44.0922 16.3855 44.0481 16.5527L43.7078 17.8427L44.8203 18.5817C44.9643 18.6774 44.9035 18.901 44.7308 18.9108L43.3964 18.9863L43.0362 20.271C42.9896 20.4372 42.7576 20.4486 42.6949 20.2876L42.2106 19.0444L40.8754 19.0992Z\",\n fill: \"#F5F5F5\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M48.4662 31.6794C50.2092 32.8642 51.7666 34.7678 52.1629 37.8246C52.1904 38.0355 52.0317 38.2274 51.8197 38.2477H51.8186C51.6128 38.2674 51.4333 38.1172 51.4064 37.9127C50.7953 33.2641 47.2306 31.5266 44.8291 30.8784C45.5611 31.3404 46.4161 32.0136 46.7274 32.7889C48.0278 36.0277 45.7749 36.9467 45.9562 40.0762C46.1364 43.1853 47.5942 44.1254 50.0728 45.3442C52.5261 46.5508 52.1 48.6668 51.691 49.7217C51.6179 49.9106 51.8364 50.0774 52.0028 49.9619C59.9717 44.4244 58.0919 29.4148 44.9242 30.1176C45.9829 30.3932 47.2662 30.8634 48.4662 31.6794ZM52.932 38.5409C53.0736 38.4414 53.2602 38.5791 53.207 38.7432L52.7948 40.0122L53.8643 40.8125C54.0027 40.916 53.9295 41.1359 53.7565 41.1361L52.42 41.1369L51.9882 42.3994C51.9323 42.5629 51.6999 42.5612 51.6465 42.397L51.2327 41.1284L49.8963 41.1085C49.7231 41.1061 49.6532 40.8849 49.7931 40.7836L50.8739 39.9986L50.4798 38.7238C50.4288 38.5586 50.6176 38.4238 50.7576 38.5253L51.8394 39.3088L52.932 38.5409Z\",\n fill: \"#F5F5F5\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.1078 35.4514C43.5073 37.4692 42.1647 39.5294 39.368 40.8362C39.1753 40.9264 38.9437 40.8341 38.8599 40.6387L38.8596 40.638C38.7783 40.4482 38.867 40.2321 39.0538 40.1441C43.3041 38.1484 43.8777 34.2305 43.7654 31.7498C43.5473 32.5866 43.1649 33.6042 42.5198 34.1363C39.8247 36.3582 38.2619 34.4954 35.3306 35.6203C32.4181 36.7378 31.9647 38.41 31.5555 41.1375C31.1508 43.8374 29.0014 44.0759 27.8706 44.008C27.6683 43.9959 27.5752 44.2544 27.7361 44.3776C35.4455 50.2695 49.1978 43.9153 44.5203 31.6089C44.5798 32.6987 44.5212 34.0617 44.1078 35.4514ZM38.9183 41.7851C39.0563 41.8895 38.9818 42.1091 38.8088 42.1082L37.4725 42.1023L37.0344 43.3628C36.9777 43.526 36.7454 43.523 36.6927 43.3586L36.2851 42.088L34.9488 42.0615C34.7758 42.0581 34.7066 41.837 34.8472 41.736L35.9319 40.9565L35.5442 39.6797C35.494 39.5144 35.6835 39.3805 35.8229 39.4827L36.9008 40.2714L37.9976 39.5088C38.1395 39.41 38.3256 39.5487 38.2716 39.7127L37.8532 40.9796L38.9183 41.7851Z\",\n fill: \"#F5F5F5\"\n});\n\nvar SvgHkd = function SvgHkd(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgHkd, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/HKD.72b74b6a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.0019 0H0V60H90.0019V0Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.0019 0H0V19.9999H90.0019V0Z\",\n fill: \"#D80027\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.0019 40H0V59.9999H90.0019V40Z\",\n fill: \"#436F4D\"\n});\n\nvar SvgHuf = function SvgHuf(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 91,\n height: 60,\n viewBox: \"0 0 91 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgHuf, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/HUF.047b5d9b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 90,\n height: 60,\n fill: \"#F5F5F5\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 90,\n height: 11,\n fill: \"#0038B8\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"rect\", {\n y: 49,\n width: 90,\n height: 11,\n fill: \"#0038B8\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M53.1568 29.9654L57.188 22.9832H49.1258L45.0939 16L41.0622 22.9832H33L37.0312 29.9654L33 36.9476H41.0622L45.0939 43.9309L49.1256 36.9476H57.1878L53.1568 29.9654ZM53.2329 25.2668L51.8384 27.682L50.444 25.2668H53.2329ZM50.5201 29.9654L47.8073 34.6641H42.3804L39.6677 29.9654L42.3805 25.2668H47.8074L50.5201 29.9654ZM45.0939 20.5671L46.4889 22.9834H43.6989L45.0939 20.5671ZM36.9549 25.2668H39.7437L38.3492 27.682L36.9549 25.2668ZM36.9549 34.6641L38.3494 32.2488L39.7438 34.6641H36.9549ZM45.0939 39.3637L43.6989 36.9475H46.4889L45.0939 39.3637ZM51.8384 32.2488L53.2329 34.6641H50.4441L51.8384 32.2488Z\",\n fill: \"#0038B8\"\n});\n\nvar SvgIls = function SvgIls(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIls, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/ILS.5273c722.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 90,\n height: 60,\n fill: \"#345D9D\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M42.0412 42.325L45.1646 31.7923L50.0315 30.4121L51.0484 26.9255L46.2542 28.3782L51.339 11.0901V10.8141C51.3352 10.7034 51.3097 10.5946 51.2638 10.4938C51.218 10.393 51.1527 10.3022 51.0718 10.2266C50.9908 10.1511 50.8958 10.0922 50.792 10.0534C50.6883 10.0146 50.578 9.99664 50.4673 10.0005H44.0024C43.7577 9.99298 43.5174 10.0675 43.32 10.2123C43.1225 10.3571 42.9792 10.5639 42.9128 10.7996L36.8838 31.2838L32.0896 32.7366L31 36.078L35.7942 34.6252L31.5085 49.2257H57.0775C57.3228 49.2358 57.5643 49.1623 57.7623 49.0171C57.9603 48.8719 58.103 48.6637 58.1671 48.4267L59.6198 43.4146V43.1385C59.6161 43.0279 59.5906 42.919 59.5447 42.8182C59.4989 42.7174 59.4336 42.6266 59.3526 42.5511C59.2717 42.4755 59.1766 42.4166 59.0729 42.3779C58.9692 42.3391 58.8588 42.3211 58.7482 42.325H42.0412Z\",\n fill: \"white\"\n});\n\nvar SvgLtc = function SvgLtc(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgLtc, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/LTC.c6778727.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30.5258 59.999H1.57899C0.70704 59.999 0 59.2919 0 58.42V1.57899C0 0.707039 0.70704 0 1.57899 0H30.5258V59.999Z\",\n fill: \"#006847\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M61.0527 0.000976562H30.5264V60.0001H61.0527V0.000976562Z\",\n fill: \"#F5F5F5\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.9981 59.9988H61.0513V0H89.9981C90.87 0 91.577 0.707039 91.577 1.57899V58.42C91.577 59.2921 90.87 59.9988 89.9981 59.9988Z\",\n fill: \"#CE1126\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M48.5117 31.4121L45.7886 32.774V34.1356H47.1502L48.5117 31.4121Z\",\n fill: \"#FFD250\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.7883 37.5391C45.412 37.5391 45.1074 37.2345 45.1074 36.8582V34.135C45.1074 33.7587 45.412 33.4541 45.7883 33.4541C46.1647 33.4541 46.4693 33.7587 46.4693 34.135V36.8582C46.4693 37.2345 46.1647 37.5391 45.7883 37.5391Z\",\n fill: \"#00C3A0\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.7886 34.8164C43.1144 34.8164 40.5322 33.7845 38.5171 31.9109C38.2418 31.655 38.2259 31.2241 38.4817 30.949C38.7396 30.6745 39.17 30.6598 39.4436 30.9136C41.2061 32.5525 43.4594 33.4547 45.7884 33.4547C48.1173 33.4547 50.3706 32.5525 52.1331 30.9136C52.4077 30.6591 52.8379 30.673 53.0951 30.949C53.351 31.2243 53.3351 31.6552 53.0596 31.9109C51.0449 33.7847 48.4627 34.8164 45.7886 34.8164Z\",\n fill: \"#00C3A0\"\n});\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.7888 37.5393C44.0434 37.5393 42.3528 37.0293 40.8994 36.064L41.6533 34.9297C44.1107 36.5625 47.4669 36.5625 49.9241 34.9297L50.678 36.064C49.2247 37.0295 47.5341 37.5393 45.7888 37.5393Z\",\n fill: \"#00AADC\"\n});\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.7104 28.3481L43.2071 30.6746L42.9517 31.4403L46.8664 30.5326L44.7104 28.3481Z\",\n fill: \"#732D37\"\n});\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41.6219 32.1886C39.8222 32.1886 37.6619 30.674 37.0889 27.2992L38.4319 27.0719C38.9081 29.8782 40.6344 30.8289 41.6711 30.8264C41.989 30.8176 42.3206 30.708 42.3467 30.4833C42.3773 30.2147 42.3846 30.151 41.6726 29.9102C41.2855 29.7791 40.8468 29.631 40.5389 29.2787C39.2935 27.8566 40.9796 26.3514 41.7897 25.6281C41.9326 25.5004 41.9918 25.392 41.9766 25.3509C41.9321 25.2344 41.6649 25.0584 41.3637 25.0584C40.4987 25.0584 39.8424 24.5698 39.6518 23.7839C39.4536 22.9701 39.828 22.1124 40.5407 21.7441L41.1658 22.9541C40.9988 23.0405 40.9326 23.2865 40.975 23.4621C40.9916 23.5326 41.0322 23.6968 41.364 23.6968C42.1977 23.6968 42.9909 24.1888 43.2489 24.8656C43.3592 25.1541 43.5254 25.9041 42.6971 26.6441C41.8028 27.4427 41.2676 28.0436 41.5642 28.3821C41.6312 28.4584 41.9192 28.5563 42.1093 28.6201C42.7223 28.8276 43.8633 29.2132 43.6998 30.6393C43.5973 31.5361 42.7969 32.1584 41.7092 32.1879C41.6799 32.1879 41.6506 32.1886 41.6219 32.1886Z\",\n fill: \"#AAD264\"\n});\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M47.1502 24.604C47.1502 24.604 48.5119 21.8808 45.7886 20.5191C45.7886 20.5191 55.3199 19.1575 53.9583 31.4122L53.9577 31.4116C53.0641 30.6967 51.7373 29.3901 51.2635 28.3484L47.1502 25.9655V24.604Z\",\n fill: \"#874150\"\n});\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.7886 27.3271L52.5966 31.412C52.5966 31.412 52.5966 31.412 49.8734 32.7737L45.7886 28.689V27.3271Z\",\n fill: \"#732D37\"\n});\n\nvar _ref13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.0654 23.2424C43.8174 23.2424 44.4271 23.8521 44.4271 24.604L44.4257 24.6055C43.6133 25.4178 43.4121 26.6586 43.9258 27.6862L44.2334 28.3016C44.3616 28.5581 44.5305 28.7924 44.7333 28.9953L48.5121 32.7741V30.8923C48.5121 28.5479 47.9664 26.2358 46.9179 24.139C46.2259 22.7551 44.8115 21.8809 43.2643 21.8809H43.0656V23.2427H43.0654V23.2424Z\",\n fill: \"#783C46\"\n});\n\nvar _ref14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.0653 21.8804L41.7036 23.242V24.6037C41.7036 24.6037 43.3234 23.7826 43.8693 23.5209C44.2508 23.3381 44.1814 22.9058 43.9625 22.6974C43.792 22.5354 43.0653 21.8804 43.0653 21.8804Z\",\n fill: \"#FFD250\"\n});\n\nvar _ref15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.7886 40.2623C39.4067 40.2623 34.2148 35.0704 34.2148 28.6885H35.5765C35.5765 34.3199 40.1573 38.9008 45.7888 38.9008C51.4203 38.9008 56.0011 34.3199 56.0011 28.6885H57.3628C57.3624 35.0704 52.1706 40.2623 45.7886 40.2623Z\",\n fill: \"#AAD264\"\n});\n\nvar _ref16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M35.6506 33.6532C36.1609 33.6532 36.5746 33.2395 36.5746 32.7292C36.5746 32.2189 36.1609 31.8052 35.6506 31.8052C35.1403 31.8052 34.7266 32.2189 34.7266 32.7292C34.7266 33.2395 35.1403 33.6532 35.6506 33.6532Z\",\n fill: \"#FFE15A\"\n});\n\nvar _ref17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.693 36.9154C38.2034 36.9154 38.617 36.5017 38.617 35.9914C38.617 35.4811 38.2034 35.0674 37.693 35.0674C37.1827 35.0674 36.769 35.4811 36.769 35.9914C36.769 36.5017 37.1827 36.9154 37.693 36.9154Z\",\n fill: \"#FFE15A\"\n});\n\nvar _ref18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41.0114 39.3822C41.5217 39.3822 41.9354 38.9685 41.9354 38.4582C41.9354 37.9479 41.5217 37.5342 41.0114 37.5342C40.5011 37.5342 40.0874 37.9479 40.0874 38.4582C40.0874 38.9685 40.5011 39.3822 41.0114 39.3822Z\",\n fill: \"#FFE15A\"\n});\n\nvar _ref19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M56.0246 33.6532C56.5349 33.6532 56.9486 33.2395 56.9486 32.7292C56.9486 32.2189 56.5349 31.8052 56.0246 31.8052C55.5143 31.8052 55.1006 32.2189 55.1006 32.7292C55.1006 33.2395 55.5143 33.6532 56.0246 33.6532Z\",\n fill: \"#FFE15A\"\n});\n\nvar _ref20 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M53.9806 36.9154C54.4909 36.9154 54.9046 36.5017 54.9046 35.9914C54.9046 35.4811 54.4909 35.0674 53.9806 35.0674C53.4703 35.0674 53.0566 35.4811 53.0566 35.9914C53.0566 36.5017 53.4703 36.9154 53.9806 36.9154Z\",\n fill: \"#FFE15A\"\n});\n\nvar _ref21 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.6628 39.3822C51.1731 39.3822 51.5868 38.9685 51.5868 38.4582C51.5868 37.9479 51.1731 37.5342 50.6628 37.5342C50.1525 37.5342 49.7388 37.9479 49.7388 38.4582C49.7388 38.9685 50.1525 39.3822 50.6628 39.3822Z\",\n fill: \"#FFE15A\"\n});\n\nvar _ref22 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M46.4694 38.2199H45.1078C44.3558 38.2199 43.7461 37.6102 43.7461 36.8583C43.7461 36.1063 44.3558 35.4966 45.1078 35.4966H46.4694C47.2214 35.4966 47.8311 36.1063 47.8311 36.8583C47.8311 37.6104 47.2214 38.2199 46.4694 38.2199Z\",\n fill: \"#FFB478\"\n});\n\nvar _ref23 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.2635 28.3483C51.7175 29.6815 52.6819 30.9013 53.9577 31.4114L53.9583 31.412C55.3199 19.1576 45.7886 20.5191 45.7886 20.5191C52.5966 20.5191 51.2635 28.3483 51.2635 28.3483Z\",\n fill: \"#9B4B5A\"\n});\n\nvar SvgMxn = function SvgMxn(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 92,\n height: 60,\n viewBox: \"0 0 92 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19, _ref20, _ref21, _ref22, _ref23);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgMxn, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/MXN.c12da0cd.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90 0.000976562H0V60.0016H90V0.000976562Z\",\n fill: \"#D80027\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90 37.0114H35.5421V60.0006H32.2826H24.7813H21.5218V37.0114H0V33.75V26.2506V22.989H21.5218V0H24.7813H32.2826H35.5421V22.989H90V26.2506V33.75V37.0114Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90 26.2506V33.75H32.2826V60.0006H24.7813V33.75H0V26.2506H24.7813V0H32.2826V26.2506H90Z\",\n fill: \"#0052B4\"\n});\n\nvar SvgNok = function SvgNok(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 61,\n viewBox: \"0 0 90 61\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgNok, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/NOK.cb8c7f1c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90 0H0V59.9987H90V0Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90 0H0V29.9994H90V0Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90 29.9995H0V59.9989H90V29.9995Z\",\n fill: \"#D80027\"\n});\n\nvar SvgPln = function SvgPln(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgPln, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/PLN.32a5add4.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.999 0H0V59.9981H89.999V0Z\",\n fill: \"#FFDA44\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.999 0H0V60H29.999V0Z\",\n fill: \"#0052B4\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.999 0H60V60H89.999V0Z\",\n fill: \"#D80027\"\n});\n\nvar SvgRon = function SvgRon(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgRon, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/RON.427057fd.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0V19.9995V39.9991V59.9986H89.9983V39.9991V19.9995V0H0Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.9983 0.000488281H0V60H89.9983V0.000488281Z\",\n fill: \"#0052B4\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.9983 0.000488281H0V19.9996H89.9983V0.000488281Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.9983 39.999H0V59.9981H89.9983V39.999Z\",\n fill: \"#D80027\"\n});\n\nvar SvgRub = function SvgRub(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgRub, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/RUB.445d5608.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.9983 0.000488281H0V60H89.9983V0.000488281Z\",\n fill: \"#0052B4\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M33.7493 0H22.4996V24.3744H0V35.6242H22.4996V59.9986H33.7493V35.6242H89.9983V24.3744H33.7493V0Z\",\n fill: \"#FFDA44\"\n});\n\nvar SvgSek = function SvgSek(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgSek, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/SEK.dd817a5f.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.0019 0H0V60H90.0019V0Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.0019 0H0V30H90.0019V0Z\",\n fill: \"#D80027\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.6742 14.9995C14.6742 10.6286 17.7462 6.97722 21.8483 6.08124C21.2178 5.94343 20.5637 5.8689 19.8919 5.8689C14.8489 5.8689 10.7612 9.9566 10.7612 14.9993C10.7612 20.0421 14.8491 24.13 19.8919 24.13C20.5637 24.13 21.2178 24.0553 21.8483 23.9176C17.7462 23.022 14.6742 19.3706 14.6742 14.9995Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.4135 6.52124L27.0611 8.51412H29.1567L27.4612 9.74584L28.1088 11.7387L26.4135 10.5072L24.7181 11.7387L25.3659 9.74584L23.6704 8.51412H25.7659L26.4135 6.52124Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.3305 10.4343L21.9779 12.4272H24.0735L22.378 13.6589L23.0256 15.6518L21.3305 14.4203L19.6351 15.6518L20.2828 13.6589L18.5874 12.4272H20.6829L21.3305 10.4343Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.4969 10.4343L32.1444 12.4272H34.24L32.5445 13.6589L33.1921 15.6518L31.4969 14.4203L29.8016 15.6518L30.4494 13.6589L28.7539 12.4272H30.8494L31.4969 10.4343Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.5401 16.3042L30.1877 18.2971H32.2833L30.588 19.5288L31.2356 21.5217L29.5401 20.2901L27.845 21.5217L28.4926 19.5288L26.7974 18.2971H28.8927L29.5401 16.3042Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.2869 16.3042L23.9343 18.2971H26.0298L24.3346 19.5288L24.9822 21.5217L23.2869 20.2901L21.5916 21.5217L22.2392 19.5288L20.5439 18.2971H22.6393L23.2869 16.3042Z\",\n fill: \"#F0F0F0\"\n});\n\nvar SvgSgd = function SvgSgd(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 91,\n height: 60,\n viewBox: \"0 0 91 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgSgd, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/SGD.b7b24082.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90 0H0V59.9987H90V0Z\",\n fill: \"#D80027\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.4554 23.1064L46.5481 27.3684L51.5566 25.7444L48.4592 30.0025L51.5515 34.2642L46.5446 32.634L43.4471 36.8923L43.4503 31.6267L38.4434 29.9964L43.4521 28.3723L43.4554 23.1064Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M35.016 40.6519C29.1328 40.6519 24.3633 35.8824 24.3633 29.9992C24.3633 24.116 29.1328 19.3465 35.016 19.3465C36.8505 19.3465 38.5763 19.8104 40.0833 20.6269C37.7194 18.315 34.4864 16.8882 30.9189 16.8882C23.678 16.8882 17.8081 22.7582 17.8081 29.999C17.8081 37.2398 23.6781 43.1098 30.9189 43.1098C34.4864 43.1098 37.7194 41.683 40.0833 39.3711C38.5765 40.188 36.8505 40.6519 35.016 40.6519Z\",\n fill: \"#F0F0F0\"\n});\n\nvar SvgTry = function SvgTry(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgTry, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/TRY.fcf82ba7.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask0\",\n \"mask-type\": \"alpha\",\n maskUnits: \"userSpaceOnUse\",\n x: 0,\n y: 0,\n width: 90,\n height: 60\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 90,\n height: 60,\n fill: \"black\"\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask0)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 90,\n height: 60,\n fill: \"#151E2C\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M59.5137 17.4494L54.675 19.9147L31.3094 31.816C31.2304 31.2134 31.1906 30.6062 31.1904 29.9985C31.1936 27.5735 31.8302 25.1914 33.0373 23.0882C34.2444 20.985 35.98 19.2336 38.0722 18.0075C40.1644 16.7815 42.5406 16.1233 44.9655 16.0982C47.3903 16.073 49.7797 16.6818 51.8969 17.8643L54.6665 16.4531L55.0796 16.2423C52.5425 14.4008 49.5456 13.2967 46.4202 13.0519C43.2948 12.8071 40.1626 13.4313 37.3697 14.8553C34.5768 16.2794 32.2321 18.4479 30.5946 21.1212C28.9571 23.7946 28.0906 26.8686 28.0909 30.0036C28.0909 30.4366 28.1074 30.8678 28.1402 31.2974C28.1863 31.9058 28.0514 32.5141 27.7525 33.046C27.4536 33.5778 27.004 34.0094 26.4605 34.2863L25 35.031V38.5045L29.2998 36.3129L30.6922 35.6023L32.0643 34.9035L56.6965 22.3528L59.4644 20.9433L65.1855 18.0275V14.5557L59.5137 17.4494Z\",\n fill: \"white\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M65.1855 21.5029L33.4635 37.6546L30.6956 39.0675L25 41.9697V45.4398L30.6565 42.558L35.4952 40.0927L58.8846 28.1744C58.9637 28.781 59.0034 29.3921 59.0036 30.0038C59.0021 32.4316 58.3656 34.8168 57.1574 36.9226C55.9491 39.0283 54.2111 40.7815 52.1159 42.0079C50.0206 43.2344 47.6411 43.8915 45.2134 43.914C42.7857 43.9365 40.3943 43.3237 38.2767 42.1363L38.1067 42.2264L35.1042 43.7566C37.6407 45.5981 40.637 46.7026 43.7619 46.948C46.8868 47.1933 50.0187 46.57 52.8116 45.1469C55.6045 43.7238 57.9496 41.5564 59.5878 38.884C61.226 36.2116 62.0935 33.1384 62.0946 30.0038C62.0946 29.5669 62.0775 29.1299 62.0452 28.6981C61.9993 28.09 62.134 27.4818 62.4326 26.95C62.7312 26.4183 63.1802 25.9866 63.7233 25.7092L65.1855 24.9645V21.5029Z\",\n fill: \"white\"\n}));\n\nvar SvgXlm = function SvgXlm(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgXlm, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/XLM.e7f1d14f.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 90,\n height: 41,\n fill: \"#FF6600\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M45.5 36L26 26V41H0V60H90V41H63V26L45.5 36Z\",\n fill: \"#4C4C4C\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.487 41.0323H0V48H30.0609V29.4194L45.2087 44.5161L60.3565 29.4194V48H90V41.0323H67.9304V12L45.2087 34.6452L22.487 12V41.0323Z\",\n fill: \"white\"\n});\n\nvar SvgXmr = function SvgXmr(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgXmr, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/XMR.4d0dc933.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask0\",\n \"mask-type\": \"alpha\",\n maskUnits: \"userSpaceOnUse\",\n x: 0,\n y: 0,\n width: 90,\n height: 60\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 90,\n height: 60,\n fill: \"black\"\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask0)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 90,\n height: 60,\n fill: \"#D3D5E0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M59.7024 34.4106C58.2881 33.594 56.6955 33.3573 55.1179 33.3022C53.7943 33.256 51.8196 32.4079 51.8196 30.0001C51.8196 28.2062 53.2739 26.7624 55.1186 26.698C56.696 26.6429 58.2885 26.406 59.7024 25.5896C60.9725 24.8564 62.0271 23.8017 62.7604 22.5317C63.4936 21.2616 63.8797 19.8209 63.8797 18.3544C63.8796 16.8879 63.4936 15.4472 62.7603 14.1772C62.0271 12.9071 60.9724 11.8525 59.7023 11.1192C58.4323 10.386 56.9916 9.99997 55.525 10C54.0585 10 52.6178 10.3861 51.3478 11.1194C50.0778 11.8527 49.0231 12.9074 48.2899 14.1774C47.5567 15.4475 47.1707 16.8882 47.1708 18.3547C47.1708 19.9734 47.7465 21.463 48.4811 22.8445C49.0989 24.0065 49.4115 26.1632 47.2925 27.3865C45.7162 28.2966 43.749 27.7203 42.7664 26.1478C41.9364 24.8195 40.9344 23.575 39.5316 22.7649C38.2616 22.0317 36.8209 21.6456 35.3544 21.6456C33.8879 21.6456 32.4473 22.0317 31.1772 22.7649C29.9072 23.4982 28.8525 24.5528 28.1193 25.8228C27.386 27.0929 27 28.5335 27 30.0001C27 31.4666 27.386 32.9072 28.1193 34.1773C28.8525 35.4473 29.9072 36.5019 31.1772 37.2352C32.4473 37.9684 33.8879 38.3545 35.3544 38.3545C36.8209 38.3545 38.2616 37.9684 39.5316 37.2352C40.934 36.4254 41.9361 35.1817 42.7655 33.8543C43.4467 32.7642 45.1478 31.3748 47.2924 32.6139C48.8663 33.5232 49.3528 35.5156 48.4803 37.1567C47.7458 38.538 47.1709 40.0273 47.1709 41.6457C47.1709 43.1122 47.5569 44.5528 48.2901 45.8228C49.0234 47.0929 50.078 48.1475 51.348 48.8807C52.6181 49.614 54.0587 50 55.5252 50C56.9917 50 58.4323 49.614 59.7024 48.8807C60.9724 48.1475 62.027 47.0929 62.7603 45.8228C63.4935 44.5528 63.8795 43.1122 63.8795 41.6457C63.8795 40.1792 63.4935 38.7385 62.7603 37.4685C62.027 36.1985 60.9724 35.1439 59.7024 34.4106Z\",\n fill: \"url(#paint0_linear)\"\n}));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear\",\n x1: 37.4008,\n y1: 16.1384,\n x2: 65.1242,\n y2: 43.8617,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#00AAE4\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#006097\"\n})));\n\nvar SvgXrp = function SvgXrp(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgXrp, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/XRP.457ef7ef.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.0019 0H0V60H90.0019V0Z\",\n fill: \"#F0F0F0\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.0437 30.0002L0 9.94751V50.0564L20.0437 30.0002Z\",\n fill: \"black\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M28.3351 30.0001L0 1.646V9.94762L20.0437 30.0003L0 50.0565V58.3426L28.3351 30.0001Z\",\n fill: \"#FFDA44\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.621 35.8696C89.6312 35.7923 89.7623 35.7153 90.0019 35.6379V30V24.1304H89.621H39.1301L14.9997 0H0V1.64587L28.3351 30L0 58.3425V60H14.9997L39.1301 35.8696H89.621Z\",\n fill: \"#6DA544\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M88.4518 41.7395H41.5615L23.3008 60H90.002V41.7395H88.4518Z\",\n fill: \"#0052B4\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M88.4518 18.2605H90.002V0H23.3008L41.5615 18.2605H88.4518Z\",\n fill: \"#D80027\"\n});\n\nvar SvgZar = function SvgZar(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 91,\n height: 60,\n viewBox: \"0 0 91 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgZar, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/ZAR.57a64d94.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 90,\n height: 60,\n fill: \"#2573C2\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M66.3972 21.9652C66.3537 21.2385 66.1404 20.5321 65.7746 19.9026C65.4502 19.254 64.873 18.7481 64.1984 18.4886C63.5105 18.1458 62.7484 17.9787 61.9801 18.0022H33.1941L31.1315 24.1835H57.2127L53.0939 36.8186H27.0192L24.9565 43H53.8788C54.7406 42.9751 55.5926 42.8108 56.4019 42.5135C57.2127 42.053 58.1402 41.586 58.9251 40.9374C59.6913 40.3333 60.3836 39.641 60.9877 38.8748C61.487 38.124 61.9128 37.3269 62.259 36.4943L66.0794 24.4819C66.427 23.6915 66.5374 22.8172 66.3972 21.9652Z\",\n fill: \"white\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41.409 27.6313H26.0626L24 33.3458H39.502L41.409 27.6313Z\",\n fill: \"white\"\n});\n\nvar SvgDash = function SvgDash(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgDash, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/DASH.bc55536a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 90,\n height: 60,\n fill: \"#345480\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.9764 10.0017C44.2594 10.0017 43.5429 10.0403 42.83 10.1171C42.1766 10.1838 41.5312 10.2933 40.8944 10.4261C40.7712 10.4519 40.6479 10.4791 40.5247 10.5075C36.7731 11.3617 33.3475 13.2798 30.6586 16.0319C30.4086 16.2882 30.1638 16.5521 29.9245 16.8235C22.6611 25.1621 23.5328 37.81 31.8715 45.0734C39.8547 52.0271 51.8714 51.5644 59.2963 44.0175C59.5468 43.7612 59.7915 43.4973 60.0305 43.2259C63.2359 39.5755 65.0024 34.8827 64.9995 30.0247C64.9995 18.9662 56.0349 10.0016 44.9764 10.0017ZM31.5483 17.0331C31.6538 16.9236 31.7633 16.8188 31.8707 16.7127C31.9949 16.5905 32.1183 16.4677 32.2451 16.3496C32.3566 16.2455 32.4714 16.1454 32.5855 16.0439C32.7143 15.9298 32.8425 15.8157 32.9746 15.7055C33.0908 15.6074 33.2103 15.5133 33.3291 15.4185C33.4625 15.3117 33.596 15.205 33.7335 15.1022C33.855 15.0107 33.9785 14.922 34.1026 14.8352C34.2408 14.7364 34.3796 14.635 34.5204 14.5429C34.6466 14.4574 34.7741 14.3747 34.9022 14.2926C35.045 14.2011 35.1885 14.111 35.3334 14.0256C35.4638 13.9478 35.595 13.8712 35.7271 13.796C35.8749 13.7119 36.0232 13.6298 36.1723 13.5497C36.3058 13.4785 36.4393 13.4089 36.5728 13.3408C36.725 13.264 36.8785 13.19 37.0327 13.1172C37.1661 13.0538 37.305 12.9904 37.4425 12.9303C37.5993 12.8636 37.7582 12.7968 37.917 12.7301C38.0552 12.6734 38.1927 12.618 38.3322 12.5646C38.4937 12.5032 38.6572 12.4458 38.8207 12.3884C38.9602 12.3397 39.0997 12.2909 39.2412 12.2449C39.4074 12.1915 39.5749 12.1421 39.7431 12.0934C39.8839 12.0527 40.0234 12.0106 40.1649 11.9726C40.219 11.9585 40.2731 11.9472 40.3271 11.9332C38.3515 13.8515 36.8854 16.2322 36.0615 18.8598C34.4774 18.442 32.9438 17.8518 31.4883 17.0998C31.5103 17.0764 31.529 17.0531 31.5483 17.0331ZM30.5886 18.1076C32.1918 18.9763 33.892 19.6529 35.6537 20.1233C34.7901 23.1264 34.3367 26.2326 34.3062 29.3573H26.3036C26.449 25.2368 27.9559 21.2807 30.5886 18.1076ZM30.5886 41.9417C27.956 38.7686 26.4492 34.8125 26.3036 30.6921H34.3062C34.3367 33.8168 34.79 36.923 35.6537 39.9261C33.892 40.3966 32.1919 41.0732 30.5886 41.9417ZM40.1609 48.0795C40.0261 48.0454 39.8866 48.0014 39.7478 47.9607C39.5789 47.9113 39.4094 47.8619 39.2425 47.8078C39.1017 47.7625 38.9629 47.7137 38.8241 47.665C38.6599 47.6083 38.4957 47.5502 38.3335 47.4881C38.1947 47.4354 38.0578 47.38 37.9203 47.3239C37.7608 47.2572 37.6013 47.1905 37.4431 47.1237C37.307 47.0636 37.1715 47.0018 37.0367 46.9382C36.8811 46.8647 36.7263 46.79 36.5695 46.7126C36.436 46.6458 36.3025 46.5791 36.169 46.5063C36.0182 46.4256 35.8686 46.3428 35.7191 46.2574C35.5857 46.1833 35.4588 46.1072 35.33 46.0298C35.1832 45.9417 35.039 45.8509 34.8949 45.7581C34.768 45.6774 34.6412 45.5953 34.5164 45.5112C34.3743 45.4151 34.2334 45.315 34.0939 45.2148C33.9718 45.1274 33.8497 45.04 33.7295 44.9479C33.5914 44.8438 33.4559 44.7363 33.321 44.6282C33.2029 44.5341 33.0854 44.4406 32.97 44.3438C32.8365 44.2331 32.7077 44.1176 32.5782 44.0028C32.4647 43.902 32.3506 43.8026 32.2398 43.6998C32.1123 43.581 31.9888 43.4575 31.8647 43.3354C31.7572 43.2292 31.6478 43.1244 31.5423 43.0157C31.523 42.995 31.5043 42.9736 31.4849 42.9536C32.9404 42.2012 34.474 41.6108 36.0582 41.1929C36.8822 43.8204 38.3483 46.2011 40.3238 48.1195C40.2697 48.1055 40.215 48.0942 40.1609 48.0795ZM44.309 48.6602C41.4531 48.2544 38.9495 45.2736 37.3744 40.8718C39.6517 40.3619 41.9756 40.0884 44.309 40.0556V48.6602ZM44.309 38.7207C41.8337 38.7532 39.3688 39.0472 36.9552 39.5977C36.1172 36.7021 35.6751 33.7063 35.6411 30.6921H44.309V38.7207ZM44.309 29.3573H35.6411C35.675 26.343 36.1171 23.3472 36.9552 20.4517C39.3688 21.002 41.8338 21.2961 44.309 21.3287V29.3573ZM44.309 19.9938C41.9755 19.9613 39.6517 19.6877 37.3744 19.1775C38.9495 14.7758 41.4531 11.795 44.309 11.3892V19.9938ZM59.3644 18.1076C61.9969 21.2808 63.5037 25.2368 63.6493 29.3573H55.6468C55.6162 26.2326 55.163 23.1264 54.2992 20.1233C56.0609 19.6527 57.761 18.9761 59.3644 18.1076ZM49.7867 11.9692C49.9268 12.0039 50.0663 12.048 50.2052 12.0887C50.374 12.1381 50.5436 12.1875 50.7104 12.2415C50.8512 12.2869 50.9901 12.3356 51.1289 12.3844C51.2931 12.4411 51.4573 12.4992 51.6195 12.5612C51.7583 12.614 51.8951 12.6694 52.0326 12.7254C52.1921 12.7922 52.3516 12.8589 52.5098 12.9257C52.646 12.9857 52.7815 13.0476 52.9163 13.1112C53.0718 13.1846 53.2266 13.2594 53.3835 13.3368C53.517 13.4035 53.6505 13.4703 53.784 13.543C53.9348 13.6238 54.0843 13.7066 54.2338 13.792C54.3673 13.8661 54.4941 13.9422 54.6229 14.0196C54.7698 14.1077 54.9139 14.1985 55.0581 14.2912C55.1849 14.372 55.3117 14.4541 55.4365 14.5382C55.5787 14.6343 55.7189 14.7337 55.8583 14.8339C55.9812 14.9213 56.1033 15.0094 56.2241 15.1008C56.3616 15.2043 56.4964 15.3117 56.6319 15.4199C56.7494 15.5133 56.8675 15.6067 56.983 15.7042C57.1165 15.815 57.2453 15.9305 57.3748 16.0453C57.4882 16.146 57.6024 16.2455 57.7132 16.3483C57.8406 16.4671 57.9641 16.5905 58.0882 16.7127C58.1957 16.8188 58.3052 16.9236 58.4106 17.0324C58.43 17.0531 58.4487 17.0744 58.468 17.0945C57.0126 17.8468 55.479 18.4373 53.8947 18.8552C53.0691 16.2273 51.6012 13.8468 49.6238 11.9292C49.6779 11.9432 49.7326 11.9545 49.7867 11.9692ZM45.6439 11.3892C48.4999 11.795 51.0034 14.7758 52.5786 19.1775C50.3013 19.6874 47.9773 19.961 45.6439 19.9938V11.3892ZM45.6439 21.3287C48.1193 21.2961 50.5842 21.0021 52.9977 20.4517C53.8358 23.3472 54.2779 26.343 54.3119 29.3573H45.6439V21.3287ZM45.6439 30.6921H54.3119C54.2779 33.7063 53.8358 36.7021 52.9977 39.5977C50.5842 39.0473 48.1193 38.7533 45.6439 38.7207V30.6921ZM45.6439 48.6602V40.0556C47.9774 40.0881 50.3013 40.3617 52.5786 40.8718C51.0034 45.2736 48.4999 48.2544 45.6439 48.6602ZM58.4046 43.0163C58.2992 43.1251 58.1904 43.2299 58.0829 43.336C57.9588 43.4582 57.8346 43.5816 57.7071 43.7004C57.5963 43.8039 57.4822 43.9007 57.3688 44.0041C57.2393 44.1189 57.1105 44.2337 56.9783 44.3445C56.8615 44.442 56.7427 44.5361 56.6239 44.6308C56.4904 44.7376 56.3569 44.8444 56.2194 44.9472C56.098 45.0386 55.9745 45.1274 55.8503 45.2142C55.7122 45.313 55.5734 45.4144 55.4325 45.5065C55.3064 45.5919 55.1789 45.6747 55.0507 45.7561C54.9079 45.8482 54.764 45.9373 54.6189 46.0231C54.4854 46.1012 54.358 46.1773 54.2265 46.2527C54.0787 46.3368 53.9301 46.4189 53.7806 46.499C53.6471 46.5702 53.5136 46.6398 53.3802 46.7079C53.228 46.7847 53.0745 46.8587 52.9203 46.9315C52.7868 46.9949 52.648 47.0583 52.5105 47.1184C52.3536 47.1851 52.1948 47.2519 52.0359 47.3186C51.8978 47.3747 51.7603 47.4307 51.6215 47.4835C51.4586 47.5455 51.2951 47.6036 51.1309 47.6603C50.9921 47.7091 50.8532 47.7578 50.7124 47.8032C50.5456 47.8572 50.3787 47.9066 50.2085 47.9553C50.069 47.9967 49.9288 48.0381 49.788 48.0761C49.734 48.0902 49.6799 48.1015 49.6258 48.1155C51.6014 46.1972 53.0675 43.8165 53.8914 41.1889C55.4756 41.6067 57.0092 42.1969 58.4647 42.9489C58.4427 42.9729 58.424 42.9963 58.4046 43.0163ZM59.3644 41.9417C57.7611 41.0731 56.061 40.3965 54.2992 39.9261C55.1629 36.923 55.6162 33.8168 55.6468 30.6921H63.6493C63.504 34.8125 61.9971 38.7687 59.3644 41.9417Z\",\n fill: \"white\"\n}));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 40,\n height: 40,\n fill: \"white\",\n transform: \"translate(24.9995 10)\"\n})));\n\nvar SvgDefault = function SvgDefault(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 90,\n height: 60,\n viewBox: \"0 0 90 60\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgDefault, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/Default.ee83e2ee.svg\";\nexport { ForwardRef as ReactComponent };","import { ReactComponent as AUD } from './AUD.svg';\r\nimport { ReactComponent as CAD } from './CAD.svg';\r\nimport { ReactComponent as CHF } from './CHF.svg';\r\nimport { ReactComponent as EUR } from './EUR.svg';\r\nimport { ReactComponent as GBP } from './GBP.svg';\r\nimport { ReactComponent as JPY } from './JPY.svg';\r\nimport { ReactComponent as NZD } from './NZD.svg';\r\nimport { ReactComponent as USD } from './USD.svg';\r\nimport { ReactComponent as BTC } from './BTC.svg';\r\nimport { ReactComponent as BCH } from './BCH.svg';\r\nimport { ReactComponent as CNH } from './CNH.svg';\r\nimport { ReactComponent as CZK } from './CZK.svg';\r\nimport { ReactComponent as DKK } from './DKK.svg';\r\nimport { ReactComponent as EOS } from './EOS.svg';\r\nimport { ReactComponent as ETC } from './ETC.svg';\r\nimport { ReactComponent as ETH } from './ETH.svg';\r\nimport { ReactComponent as HKD } from './HKD.svg';\r\nimport { ReactComponent as HUF } from './HUF.svg';\r\nimport { ReactComponent as ILS } from './ILS.svg';\r\nimport { ReactComponent as LTC } from './LTC.svg';\r\nimport { ReactComponent as MXN } from './MXN.svg';\r\nimport { ReactComponent as NOK } from './NOK.svg';\r\nimport { ReactComponent as PLN } from './PLN.svg';\r\nimport { ReactComponent as RON } from './RON.svg';\r\nimport { ReactComponent as RUB } from './RUB.svg';\r\nimport { ReactComponent as SEK } from './SEK.svg';\r\nimport { ReactComponent as SGD } from './SGD.svg';\r\nimport { ReactComponent as TRY } from './TRY.svg';\r\nimport { ReactComponent as XLM } from './XLM.svg';\r\nimport { ReactComponent as XMR } from './XMR.svg';\r\nimport { ReactComponent as XRP } from './XRP.svg';\r\nimport { ReactComponent as ZAR } from './ZAR.svg';\r\nimport { ReactComponent as DASH } from './DASH.svg';\r\nimport { ReactComponent as Default } from './Default.svg';\r\n\r\nimport React from 'react';\r\n\r\nexport function getSymbolFlag(flag){\r\n if (flag?.single) {\r\n const singleFlagData = flags[flag.single];\r\n if(singleFlagData){\r\n const singleFlag = React.createElement(singleFlagData.flag, { viewBox: \"15 0 60 60\", height: \"100%\", width: \"100%\" });\r\n return (
    \r\n {singleFlag}\r\n
    )\r\n }\r\n }\r\n\r\n if (flag?.left && flag?.right) {\r\n let leftFlagData = flags[flag.left];\r\n let rightFlagData = flags[flag.right];\r\n\r\n if(leftFlagData && rightFlagData){\r\n let leftViewBox = \"0 0 30 60\";\r\n if (leftFlagData.cutMethod === 'center') {\r\n leftViewBox = \"15 0 30 60\";\r\n }\r\n let leftFlag = React.createElement(leftFlagData.flag, { viewBox: leftViewBox, width:'100%', height:'100%'});\r\n\r\n let rightViewBox = \"0 0 30 60\";\r\n if (rightFlagData.cutMethod === 'center') {\r\n rightViewBox = \"15 0 30 60\";\r\n }\r\n let rightFlag = React.createElement(rightFlagData.flag, { viewBox: rightViewBox, width:'100%', height:'100%'});\r\n\r\n return (\r\n
    \r\n
    \r\n {leftFlag}\r\n
    \r\n
    \r\n {rightFlag}\r\n
    \r\n
    );\r\n }\r\n }\r\n\r\n let defaultFlagData = flags[\"Default\"];\r\n if (defaultFlagData)\r\n {\r\n let defaultFlag = React.createElement(defaultFlagData.flag, { viewBox: \"15 0 60 60\", height: \"100%\", width: \"100%\" });\r\n return (
    \r\n {defaultFlag}\r\n
    );\r\n }\r\n else\r\n {\r\n return (
    );\r\n }\r\n};\r\n\r\n\r\nconst flags = {\r\n 'BCH': { flag: BCH, cutMethod: 'center' },\r\n 'CNH': { flag: CNH, cutMethod: 'left' },\r\n 'CZK': { flag: CZK, cutMethod: 'left' },\r\n 'DKK': { flag: DKK, cutMethod: 'left' },\r\n 'EOS': { flag: EOS, cutMethod: 'center' },\r\n 'ETC': { flag: ETC, cutMethod: 'center' },\r\n 'ETH': { flag: ETH, cutMethod: 'center' },\r\n 'HKD': { flag: HKD, cutMethod: 'center' },\r\n 'HUF': { flag: HUF, cutMethod: 'center' },\r\n 'ILS': { flag: ILS, cutMethod: 'center' },\r\n 'LTC': { flag: LTC, cutMethod: 'center' },\r\n 'MXN': { flag: MXN, cutMethod: 'center' },\r\n 'NOK': { flag: NOK, cutMethod: 'left' },\r\n 'PLN': { flag: PLN, cutMethod: 'center' },\r\n 'RON': { flag: RON, cutMethod: 'center' },\r\n 'RUB': { flag: RUB, cutMethod: 'center' },\r\n 'SEK': { flag: SEK, cutMethod: 'left' },\r\n 'SGD': { flag: SGD, cutMethod: 'left' },\r\n 'TRY': { flag: TRY, cutMethod: 'left' },\r\n 'XLM': { flag: XLM, cutMethod: 'center' },\r\n 'XMR': { flag: XMR, cutMethod: 'center' },\r\n 'XRP': { flag: XRP, cutMethod: 'center' },\r\n 'ZAR': { flag: ZAR, cutMethod: 'left' },\r\n 'AUD': { flag: AUD, cutMethod: 'left' },\r\n 'CAD': { flag: CAD, cutMethod: 'center' },\r\n 'CHF': { flag: CHF, cutMethod: 'center' },\r\n 'EUR': { flag: EUR, cutMethod: 'center' },\r\n 'GBP': { flag: GBP, cutMethod: 'center' },\r\n 'JPY': { flag: JPY, cutMethod: 'center' },\r\n 'NZD': { flag: NZD, cutMethod: 'left' },\r\n 'USD': { flag: USD, cutMethod: 'left' },\r\n 'BTC': { flag: BTC, cutMethod: 'center' },\r\n 'DASH': { flag: DASH, cutMethod: 'center' },\r\n 'Default': { flag: Default, cutMethod: 'center' }\r\n}\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport { getSymbolFlag } from '../../../shared/FlagsData/symbolIconService';\r\nimport \"../../../shared/FlagsData/symbol-icon.css\";\r\n\r\nconst MobileSymbolIcon = props => {\r\n const { name, flag } = props;\r\n const { ActiveTheme } = useSelector((state) => (state.brand.themeSettings));\r\n\r\n const symbolIcon = getSymbolFlag(flag);\r\n\r\n return (\r\n
    \r\n {symbolIcon}\r\n
    \r\n );\r\n};\r\n\r\n\r\nexport default MobileSymbolIcon;\r\n","import React, {useMemo} from 'react';\r\nimport {useTranslation} from 'react-i18next';\r\nimport MobileSymbolIcon from '../../MobileSymbolIcon/MobileSymbolIcon';\r\nimport Format2Fixed from '../../../../UI/utilsUI/formatNumber';\r\nimport clsx from 'clsx';\r\n\r\nconst MobileProfileStreamItem = props => {\r\n\tconst {\r\n symbols,\r\n\t\tInstrumentName,\r\n\t\tTradeType,\r\n\t\tTradeActionType,\r\n\t\tPrice,\r\n\t\tPendingType,\r\n\t\tOpenPrice,\r\n\t\tClosePrice,\r\n\t\tNumberOfCopiedPositions,\r\n\t\tPL,\r\n\t} = props;\r\n\r\n\tconst {t} = useTranslation();\r\n\r\n\tconst currentType = useMemo(() => {\r\n\t\t// TODO: locale this\r\n\t\t// ? t('Stream.User.Opened.Position')\r\n\t\t// : t('Stream.User.Closed.Position');\r\n\t\t// 'Stream.User.Pending.Position';\r\n\t\tlet label = '';\r\n\t\tswitch (TradeType) {\r\n\t\t\tcase 0:\r\n\t\t\t\tlabel = 'Opened';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 1:\r\n\t\t\t\tlabel = 'Closed';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 2:\r\n\t\t\t\tlabel = 'Pending';\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tlabel = 'Opened';\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\treturn label.toLowerCase();\r\n\t}, [TradeType]);\r\n\r\n let symbolSettings = symbols[InstrumentName];\r\n let flagSettings = symbolSettings?.flag;\r\n\r\n\tconst currentAction = useMemo(() => {\r\n\t\tlet label = '';\r\n\t\tif (TradeType === 2) {\r\n\t\t\tswitch (PendingType) {\r\n\t\t\t\tcase 0:\r\n\t\t\t\t\tlabel = 'PendingOrder.Buy.Limit';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 1:\r\n\t\t\t\t\tlabel = 'PendingOrder.Sell.Limit';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 2:\r\n\t\t\t\t\tlabel = 'PendingOrder.Buy.Stop';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 3:\r\n\t\t\t\t\tlabel = 'PendingOrder.Sell.Stop';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tlabel = 'PendingOrder.Buy.Limit';\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tlabel = TradeActionType === 0 ? 'Stream.Buy' : 'Stream.Sell';\r\n\t\t}\r\n\t\treturn t(label).toLowerCase();\r\n\t}, [TradeType, PendingType, TradeActionType]);\r\n\r\n\tconst currentPrice = useMemo(() => {\r\n\t\treturn TradeType === 2\r\n\t\t\t\t? Price\r\n\t\t\t\t: TradeType === 0 ? OpenPrice : ClosePrice;\r\n\t}, [OpenPrice, ClosePrice, TradeType, Price]);\r\n\r\n\tconst currentPnl = useMemo(() => {\r\n\t\treturn PL === undefined\r\n\t\t\t\t? '--'\r\n\t\t\t\t: !!PL\r\n\t\t\t\t\t\t? `${Format2Fixed(PL * 100)}%`\r\n\t\t\t\t\t\t: '0%';\r\n\t}, [PL]);\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t
    \r\n\r\n\t\t\t\t\t{/*DESC*/}\r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t{currentType}  \r\n {InstrumentName}\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{currentAction}\r\n\t\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{/*TODO: locale this*/}\r\n\t\t\t\t\t\t\t\t\t\tposition at\r\n\t\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{currentPrice}\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t{/*STAT*/}\r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t{/*{!!PL && (*/}\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t{t('Stream.Earning')}\r\n\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t{/*{Format2Fixed(PL * 100)}*/}\r\n\t\t\t\t\t\t\t\t\t{currentPnl}\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{/*)}*/}\r\n\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t{/*{!!NumberOfCopiedPositions && (*/}\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t{t('Socials.Copiers')}\r\n\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t{NumberOfCopiedPositions || 0}\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{/*)}*/}\r\n\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileProfileStreamItem;\r\n\r\n/*\r\n* AvatarURL: \"defaultAvatar2\"\r\nClosePrice: \"1.40239\"\r\nCloseTime: \"2021-02-22T11:15:52Z\"\r\nCountryCode: \"EU\"\r\nInstrumentName: \"GBPUSD\"\r\nIsCopied: false\r\nIsPartial: false\r\nNickname: \"ninoroma\"\r\nNumberOfCopiedPositions: 0\r\nOpenTime: \"2021-02-22T10:28:34Z\"\r\nPL: 0.007268\r\nTimeStamp: \"2021-02-22T15:15:52Z\"\r\nTradeActionType: 1\r\nTradeHash: 703717604\r\nTradeType: 1\r\nTraderRiskLevel: 5\r\nTradingRiskLevel: 1\r\n* */\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {useTranslation} from 'react-i18next';\r\n\r\nconst MobileNothingFound = ({isOpen}) => {\r\n\tconst {t} = useTranslation();\r\n\r\n\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{isOpen && (\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t{t('MarketRates.NothingFound')}\r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t)}\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nMobileNothingFound.defaultProps = {\r\n\tisOpen: true,\r\n};\r\n\r\nMobileNothingFound.propTypes = {\r\n\tisOpen: PropTypes.bool,\r\n};\r\n\r\nexport default MobileNothingFound;\r\n","import React from 'react';\r\nimport MobileProfileStreamItem from './MobileProfileStreamItem';\r\nimport MobileNothingFound from '../../MobileEmpty/MobileNothingFound';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\n\r\nconst MobileProfileStream = ({options = []}) => {\r\n const { symbols} = useSelector((state) => (state.account.symbols), shallowEqual);\r\n\r\n\tif (options && !options.length) {\r\n\t\treturn ;\r\n\t}\r\n\treturn (\r\n\t\t\t
      \r\n\t\t\t\t{options && !options.length && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t{options && !!options.length && options.map(item => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t))}\r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileProfileStream;\r\n","import React, {useCallback} from 'react';\r\nimport clsx from 'clsx';\r\n\r\n//TODO design data\r\n// import {TIME_SWITCH} from '../../constants/options'\r\n\r\nconst isActive = (value, option) => {\r\n\treturn value === option.timeKey;\r\n};\r\n\r\nconst MobileChartSwitch = ({type, options, value, onChange}) => {\r\n\r\n\tconst handleClick = useCallback((e, option) => {\r\n\t\te.preventDefault();\r\n\t\tonChange && onChange(option);\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t
      \r\n\t\t\t\t\t{options && options.slice(0, 4).map((option, index) => (\r\n\t\t\t\t\t\t\t handleClick(e, option)}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{option.timeValue}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileChartSwitch;\r\n","import React, {useState} from 'react';\r\n\r\nconst useForceUpdate = () => {\r\n\tconst [value, setValue] = useState(0);\r\n\treturn () => setValue(value => value + 1);\r\n};\r\n\r\nexport default useForceUpdate;\r\n","import React, {useCallback, useEffect, useMemo, useRef} from 'react';\r\nimport {AutoSizer, List} from 'react-virtualized';\r\nimport clsx from 'clsx';\r\nimport useForceUpdate from '../../hook/useForceUpdate';\r\nimport MobileNothingFound from '../MobileEmpty/MobileNothingFound';\r\n\r\nconst MobileAutosizer = props => {\r\n\tconst {\r\n\t\tminHeight,\r\n\t\tmaxHeight,\r\n\t\trowHeight,\r\n\t\trowCount,\r\n\t\toverscanRowCount,\r\n\t\toptions,\r\n\t\ttradeLinks,\r\n\t\trenderRow,\r\n\t\tclassName,\r\n\t\tcloseTradeLinks,\r\n\t\tcurrentItem,\r\n\t\tscrollToIndex,\r\n\t\ttype,\r\n\t\tpositionType,\r\n\t\treference = null,\r\n\t\tonScroll,\r\n\t} = props;\r\n\r\n\tconst forceUpdate = useForceUpdate();\r\n\r\n\tconst listRef = useRef(null);\r\n\tconst sizerRef = useRef(null);\r\n\r\n\tconst propsDep = useMemo(() => {\r\n\t\treturn Object.keys(props).map(prop => props[prop]);\r\n\t}, [props]);\r\n\r\n\tconst currentRef = useMemo(() => {\r\n\t\treturn reference || listRef;\r\n\t}, [reference, listRef]);\r\n\r\n\tconst currentRowHeight = useCallback(({index}) => {\r\n\t\tconst minH = minHeight || rowHeight || 40;\r\n\t\tconst maxH = maxHeight || rowHeight || 40;\r\n\r\n\t\tif (!options) return minH;\r\n\t\tconst currRowId = options[index].id;\r\n\t\tif (currRowId === currentItem?.id) return maxH;\r\n\t\treturn minH;\r\n\t}, [currentItem, options, rowHeight, minHeight, maxHeight]);\r\n\r\n\tconst currentRowCount = useMemo(() => {\r\n\t\treturn rowCount || options?.length;\r\n\t}, [rowCount, options]);\r\n\r\n\tconst currentOversSanRowCount = useMemo(() => {\r\n\t\treturn overscanRowCount || 10;\r\n\t}, [overscanRowCount]);\r\n\r\n\tconst currentScrollToIndex = useMemo(() => {\r\n\t\tconst dR = currentRowCount - scrollToIndex;\r\n\t\t// return dR >= 10 ? scrollToIndex + 10 : scrollToIndex;\r\n\t\treturn scrollToIndex;\r\n\t}, [scrollToIndex, currentRowCount]);\r\n\r\n\tconst handleRemoveItem = useCallback(index => {\r\n\t\tif (typeof index === 'undefined') return null;\r\n\t\toptions.splice(index, 1);\r\n\t\tconst ref = currentRef?.current;\r\n\t\tif (!ref) return null;\r\n\t\tref.forceUpdateGrid();\r\n\t\tref.forceUpdate();\r\n\t}, [currentRef]);\r\n\r\n\tconst handleOnScroll = useCallback(scroll => {\r\n\t\tonScroll && onScroll(scroll);\r\n\t}, [onScroll]);\r\n\r\n\tconst currentRenderRow = useCallback(({index, key, style}) => {\r\n\t\tconst isActive = type === 'social'\r\n\t\t\t\t? currentItem?.TradeHash === options[index].TradeHash\r\n\t\t\t\t: currentItem?.id === options[index]?.id;\r\n\r\n\t\tconst cls = () => {\r\n\t\t\tif (positionType === 'chart') return null;\r\n\t\t\tif (index < 0) {\r\n\t\t\t\treturn 'odd';\r\n\t\t\t} else {\r\n\t\t\t\treturn index % 2 === 0 ? 'even' : 'odd';\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tconst removeRow = () => {\r\n\t\t\thandleRemoveItem(index);\r\n\t\t};\r\n\r\n\t\tif (options && !options.length || options && !options[index]) return (\r\n\t\t\t\t
    \r\n\t\t);\r\n\r\n\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t{renderRow({\r\n\t\t\t\t\t\titem: options[index],\r\n\t\t\t\t\t\tprops: {\r\n\t\t\t\t\t\t\t...props,\r\n\t\t\t\t\t\t\tindex,\r\n\t\t\t\t\t\t\tisActive,\r\n\t\t\t\t\t\t\tremoveRow,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t})}\r\n\t\t\t\t
    \r\n\t\t);\r\n\t}, [\r\n\t\t...propsDep,\r\n\t\toptions,\r\n\t\ttradeLinks,\r\n\t\tcloseTradeLinks,\r\n\t\tcurrentItem,\r\n\t\thandleRemoveItem,\r\n\t\tcurrentRef,\r\n\t]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (currentRef && currentRef.current) {\r\n\t\t\tcurrentRef.current.recomputeRowHeights();\r\n\t\t}\r\n\t// }, [currentItem, currentRef, forceUpdate]);\r\n\t}, [currentItem, currentRef]);\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t{props => (\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileAutosizer;\r\n","export const renderType = (actionType, pending = false) => {\r\n\tlet type = '';\r\n\tlet transition = '';\r\n\r\n\tif (pending) {\r\n\t\tswitch (actionType) {\r\n\t\t\tcase 0:\r\n\t\t\t\ttype = 'Buy Limit';\r\n\t\t\t\ttransition = 'PendingOrder.Buy.Limit';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 1:\r\n\t\t\t\ttype = 'Sell Limit';\r\n\t\t\t\ttransition = 'PendingOrder.Sell.Limit';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 2:\r\n\t\t\t\ttype = 'Buy Stop';\r\n\t\t\t\ttransition = 'PendingOrder.Buy.Stop';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 3:\r\n\t\t\t\ttype = 'Sell Stop';\r\n\t\t\t\ttransition = 'PendingOrder.Sell.Stop';\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\ttype = '';\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tif (!pending) {\r\n\t\tswitch (actionType) {\r\n\t\t\tcase 0:\r\n\t\t\t\ttype = 'Buy';\r\n\t\t\t\ttransition = '';\r\n\t\t\t\t// transition = 'Stream.Buy'; //TODO: locale this\r\n\t\t\t\tbreak;\r\n\t\t\tcase 1:\r\n\t\t\t\ttype = 'Sell';\r\n\t\t\t\ttransition = '';\r\n\t\t\t\t// transition = 'Stream.Sell'; //TODO: locale this\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\ttype = '';\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\treturn {type, transition};\r\n};\r\n\r\nexport const renderTypeMulti = actionType => {\r\n\tif (actionType === 0 || actionType === 2) return 1;\r\n\tif (actionType === 1 || actionType === 3) return 0;\r\n\treturn 1;\r\n};\r\n\r\nexport const initColumns = [\r\n\t'instrument',\r\n\t'type',\r\n\t'amount',\r\n\t'profit',\r\n\t'price',\r\n\t'currentPrice',\r\n\t'stopLoss',\r\n\t'takeProfit',\r\n\t'user',\r\n\t'unlink',\r\n\t'close',\r\n\t'delete',\r\n\t'arrow',\r\n];\r\n\r\nexport const getRenderColumn = (columns, type) => {\r\n\tif (!columns || !columns.length) return true;\r\n\treturn columns.includes(type);\r\n};\r\n\r\nexport const getPositionArrayFromObj = positions => {\r\n\tif (!positions) return [];\r\n\treturn Object.keys(positions).map(pos => positions[pos]);\r\n};\r\n\r\nexport const getCurrentPositionsAll = (positions, symbolId) => {\r\n\tif (!positions || !symbolId) return [];\r\n\r\n\tconst positionsArray = getPositionArrayFromObj(positions);\r\n\tif (!positionsArray || !positionsArray.length) return [];\r\n\r\n\treturn positionsArray.filter(position => position.symbolId === symbolId);\r\n};\r\n","import React, {Fragment, useMemo} from 'react';\r\nimport {useTranslation} from 'react-i18next';\r\nimport clsx from 'clsx';\r\n\r\nimport {renderType} from '../../../../helpers/position.helpers';\r\nimport {format2Digits} from '../../../../../UI/utilsUI/formatNumber';\r\nimport {FormatPercentFloat} from '../../../../../UI/ProfilePage/ProfileTabDetails';\r\n\r\nconst MobileProfilePositionItemOpen = props => {\r\n\tconst {\r\n\t\tInstrumentName,\r\n\t\tTradeActionType,\r\n\t\tpendingOrders,\r\n\t\tOpenPrice,\r\n\t\tPrice,\r\n\t\tDecimalPrecision,\r\n\t\tPL,\r\n\t\titemType,\r\n\t} = props;\r\n\r\n\tconst {t} = useTranslation();\r\n\r\n\tconst currentType = useMemo(() => {\r\n\t\tconst label = renderType(TradeActionType, pendingOrders);\r\n\t\treturn label.transition ? t(label.transition) : label.type;\r\n\t}, [pendingOrders, TradeActionType]);\r\n\r\n\tconst currentRate = useMemo(() => {\r\n\t\treturn pendingOrders\r\n\t\t\t\t? format2Digits(Price, DecimalPrecision)\r\n\t\t\t\t: OpenPrice;\r\n\t}, [pendingOrders, OpenPrice]);\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t
    {InstrumentName}
    \r\n\t\t\t\t
    {currentType}
    \r\n\t\t\t\t
    {currentRate}
    \r\n\t\t\t\t
    {}
    \r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileProfilePositionItemOpen;\r\n","import React, {useCallback, useMemo} from 'react';\r\nimport {useTranslation} from 'react-i18next';\r\nimport clsx from 'clsx';\r\n\r\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\r\n\r\nconst types = {\r\n\topen: ['instrument', 'action', 'open_rate', 'pnl'],\r\n};\r\n\r\nconst inactive = {\r\n\topen: ['none'],\r\n};\r\n\r\nconst heads = [\r\n\t{\r\n\t\tid: 0,\r\n\t\tvalue: 'instrument',\r\n\t\tlabel: 'Instrument',\r\n\t\ttranslate: 'InstrumetInfo.Details.Instrument',\r\n\t},\r\n\t{\r\n\t\tid: 1,\r\n\t\tvalue: 'action',\r\n\t\tlabel: 'Action',\r\n\t\ttranslate: 'InstrumetInfo.Details.Type',\r\n\t},\r\n\t{\r\n\t\tid: 2,\r\n\t\tvalue: 'open_rate',\r\n\t\tlabel: 'Open Rate',\r\n\t\ttranslate: 'InstrumetInfo.Details.OpenRate',\r\n\t},\r\n\t{\r\n\t\tid: 3,\r\n\t\tvalue: 'pnl',\r\n\t\tlabel: 'P/L (%)',\r\n\t\ttranslate: 'InstrumetInfo.Details.PL',\r\n\t},\r\n];\r\n\r\nconst typesHead = type => {\r\n\treturn heads.filter(({value}) => types[type].includes(value));\r\n};\r\n\r\nconst MobileProfilePositionItemHead = ({type, active, onActive, sort}) => {\r\n\r\n\tconst {t} = useTranslation();\r\n\r\n\tconst renderHeadList = useMemo(() => {\r\n\t\treturn typesHead(type);\r\n\t}, [type]);\r\n\r\n\tconst handleClick = useCallback((e, item) => {\r\n\t\te && e.preventDefault();\r\n\t\te && e.stopPropagation();\r\n\t\tif (!active) return null;\r\n\t\tif (inactive[type].includes(item.value)) return null;\r\n\t\tonActive && onActive(item);\r\n\t}, [active, type]);\r\n\r\n\tconst sortClass = item => {\r\n\t\tif (!sort || !active || !item) return null;\r\n\t\tconst isActive = sort.value === item.value;\r\n\t\tconst isUp = sort.type;\r\n\t\treturn clsx(isActive && 'active', isUp && 'up');\r\n\t};\r\n\r\n\treturn (\r\n\t\t\t
      \r\n\t\t\t\t{renderHeadList.map((el, i) => (\r\n\t\t\t\t\t\t handleClick(e, {...el, index: i})}\r\n\t\t\t\t\t\t\t\tclassName=\"mobile-profile-position-head__item\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t
      \r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
      \r\n\r\n\t\t\t\t\t\t\t\t

      \r\n\t\t\t\t\t\t\t\t\t{/*TODO: locale this*/}\r\n\t\t\t\t\t\t\t\t\t{/*{el.translate ? t(el.translate) : el.label}*/}\r\n\t\t\t\t\t\t\t\t\t{el.label}\r\n\t\t\t\t\t\t\t\t

      \r\n\t\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t))}\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileProfilePositionItemHead;\r\n","const sortArray = (a = null, b = null, type = true) => {\r\n\tif (!a || !b) return 0;\r\n\tconst sortUp = () => a > b ? 1 : -1;\r\n\tconst sortDown = () => a < b ? 1 : -1;\r\n\treturn type ? sortUp() : sortDown();\r\n};\r\n\r\nconst sortOpenTime = ({options, type}) => {\r\n\treturn options\r\n\t\t\t.sort((a, b) => sortArray(a.OpenTime, b.OpenTime, type));\r\n};\r\nconst sortOpenRate = ({options, type}) => {\r\n\treturn options\r\n\t\t\t.sort((a, b) => sortArray(a.OpenPrice, b.OpenPrice, type));\r\n};\r\nconst sortInstrument = ({options, type}) => {\r\n\treturn options\r\n\t\t\t.sort((a, b) => sortArray(a.InstrumentName, b.InstrumentName, type));\r\n};\r\nconst sortAction = ({options, type}) => {\r\n\treturn options\r\n\t\t\t.sort((a, b) => sortArray(a.TradeActionType, b.TradeActionType, type));\r\n};\r\nconst sortPnl = ({options, type}) => {\r\n\treturn options\r\n\t\t\t.sort((a, b) => sortArray(a.PL, b.PL, type));\r\n};\r\n\r\nexport const SORT_TYPE = {\r\n\t'open_time': data => sortOpenTime(data),\r\n\t'open_rate': data => sortOpenRate(data),\r\n\t'instrument': data => sortInstrument(data),\r\n\t'action': data => sortAction(data),\r\n\t'pnl': data => sortPnl(data),\r\n};\r\n\r\nexport const sortProfilePosition = (options = [], sort = {}) => {\r\n\tif (!options || !options.length) return options;\r\n\treturn SORT_TYPE[sort.value]({options, type: sort.type});\r\n};\r\n","import React, {useCallback, useMemo, useRef, useState} from 'react';\r\n\r\nimport MobileNothingFound from '../../MobileEmpty/MobileNothingFound';\r\nimport MobileAutosizer from '../../MobileAutosizer/MobileAutosizer';\r\nimport MobileProfilePositionItemOpen\r\n\tfrom './MobileProfilePositionItem/MobileProfilePositionItemOpen';\r\nimport MobileProfilePositionItemHead\r\n\tfrom './MobileProfilePositionItem/MobileProfilePositionItemHead';\r\nimport {sortProfilePosition} from '../../../helpers/sort.helpers';\r\n\r\nconst initialSort = {\r\n\tvalue: 'open_time',\r\n\ttype: true,\r\n};\r\n\r\nconst MobileProfilePositionOpen = ({positions}) => {\r\n\tconst [sortData, setSortData] = useState(initialSort);\r\n\r\n\tconst ref = useRef(null);\r\n\r\n\tconst handleFilterClick = useCallback(item => {\r\n\t\tref && ref.current && ref.current.forceUpdateGrid();\r\n\t\treturn setSortData(prev => {\r\n\t\t\tconst value = item.value;\r\n\t\t\tconst type = prev.value === item.value\r\n\t\t\t\t\t? !prev.type\r\n\t\t\t\t\t: true;\r\n\t\t\treturn {value, type};\r\n\t\t});\r\n\t}, [sortData, setSortData]);\r\n\r\n\tconst sortedOptions = useMemo(() => {\r\n\t\treturn sortProfilePosition(positions, sortData);\r\n\t}, [sortData, positions]);\r\n\r\n\tconst renderRow = useCallback(data => {\r\n\t\tconst {item, props} = data;\r\n\t\treturn (\r\n\t\t\t\t\r\n\t\t);\r\n\t}, [sortedOptions]);\r\n\r\n\tif (!positions || !positions.length) {\r\n\t\treturn (\r\n\t\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileProfilePositionOpen;\r\n","import React, {useCallback, useEffect, useMemo, useState} from 'react';\r\nimport {useSelector} from 'react-redux';\r\n\r\nimport {PROFILE_POSITION_MENU} from '../../../constants/options';\r\nimport { CommandFactory } from '../../../../background/commands/CommandFactory';\r\n\r\nimport MobileChartSwitch from '../../MobileSwitch/MobileChartSwitch';\r\nimport CarouselTabList from '../../MobileCarousel/CarouselTabList';\r\n\r\nimport MobileProfilePositionOpen from './MobileProfilePositionOpen';\r\nimport MobileLoader from '../../MobileLoader/MobileLoader';\r\n\r\nconst MobileProfilePositions = ({nickname}) => {\r\n\tconst {getPositions} = useSelector(\r\n\t\t\tstate => state.account.socialv1.profileCommands);\r\n\r\n\tconst [timeframe, setTimeframe] = useState(1);\r\n\tconst [isLoading, setIsLoading] = useState(false);\r\n\tconst [positions, setPositions] = useState(null);\r\n\r\n\tconst {\r\n\t\tProfileOpenTrades,\r\n\t\tProfilePendingTrades,\r\n\t\tProfileClosedTrades,\r\n\t} = useMemo(() => {\r\n\t\tconst pos = {\r\n\t\t\tProfileOpenTrades: [],\r\n\t\t\tProfilePendingTrades: [],\r\n\t\t\tProfileClosedTrades: [],\r\n\t\t};\r\n\t\tif (!positions) return pos;\r\n\t\tpos.ProfileOpenTrades = positions.ProfileOpenTrades || [];\r\n\t\tpos.ProfilePendingTrades = positions.ProfilePendingTrades || [];\r\n\t\tpos.ProfileClosedTrades = positions.ProfileClosedTrades || [];\r\n\t\treturn pos;\r\n\t}, [positions]);\r\n\r\n\tconst handleTimeChange = useCallback(({timeKey}) => {\r\n\t\tsetTimeframe && setTimeframe(timeKey);\r\n\t}, [setTimeframe]);\r\n\r\n\tconst requestPositions = useCallback(async () => {\r\n\t\tif (!nickname) return null;\r\n\t\tsetIsLoading(true);\r\n\t\tconst userInput = {nickname, timeframe: 1};\r\n\r\n\t\tconst command = CommandFactory.createCommand(getPositions);\r\n\r\n\t\ttry {\r\n\t\t\tconst res = await command.execute(userInput);\r\n\r\n\t\t\tif (!res.isSuccessful) {\r\n\t\t\t\tconsole.error(`Get position for ${userInput.nickname} request error`); //TODO: remove log set error\r\n\t\t\t}\r\n\r\n\t\t\tif (res.isSuccessful) {\r\n\t\t\t\tsetPositions(res.payload);\r\n\t\t\t}\r\n\t\t} catch (err) {\r\n\t\t\tconsole.error(err); //TODO: remove log set error\r\n\t\t}\r\n\t\tsetIsLoading(false);\r\n\t}, [nickname]);\r\n\r\n\tuseEffect(() => {\r\n\t\trequestPositions();\r\n\t}, [requestPositions]);\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\r\n\t\t\t\t{!isLoading && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileProfilePositions;\r\n","import React from 'react';\r\n\r\nconst MobilePieChartLabel = props => {\r\n\tconst {\r\n\t\tcx,\r\n\t\tcy,\r\n\t\tmidAngle,\r\n\t\touterRadius,\r\n\t\tfill,\r\n\t\tname,\r\n\t\tlabel,\r\n\t\tisDarkTheme,\r\n\t} = props;\r\n\r\n\tconst RADIAN = Math.PI / 180;\r\n\tconst sin = Math.sin(-RADIAN * midAngle);\r\n\tconst cos = Math.cos(-RADIAN * midAngle);\r\n\tconst sx = cx + (outerRadius) * cos;\r\n\tconst sy = cy + (outerRadius) * sin;\r\n\tconst mx = cx + (outerRadius + 10) * cos;\r\n\tconst my = cy + (outerRadius + 10) * sin;\r\n\tconst ex = mx + (cos >= 0 ? 1 : -1) * 22;\r\n\tconst ey = my;\r\n\tconst textAnchor = cos >= 0 ? 'start' : 'end';\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t= 0 ? 1 : -1) * 12}\r\n\t\t\t\t\t\ty={ey}\r\n\t\t\t\t\t\tdy={-6}\r\n\t\t\t\t\t\ttextAnchor={textAnchor}\r\n\t\t\t\t\t\t// fill={fill}\r\n\t\t\t\t\t\tfill={isDarkTheme ? '#fff' : '#283B55'}\r\n\t\t\t\t>\r\n\t\t\t\t\t{label}\r\n\t\t\t\t\r\n\t\t\t\t= 0 ? 1 : -1) * 12}\r\n\t\t\t\t\t\ty={ey}\r\n\t\t\t\t\t\tdy={6}\r\n\t\t\t\t\t\ttextAnchor={textAnchor}\r\n\t\t\t\t\t\t// fill=\"#fff\"\r\n\t\t\t\t\t\tfill={isDarkTheme ? '#fff' : '#283B55'}\r\n\t\t\t\t>\r\n\t\t\t\t\t{name}\r\n\t\t\t\t\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobilePieChartLabel;\r\n","import React, {useCallback} from 'react';\r\nimport {Sector} from 'recharts';\r\n\r\nconst MobilePieChartLabelActive = props => {\r\n\tconst {\r\n\t\tcx,\r\n\t\tcy,\r\n\t\tmidAngle,\r\n\t\tinnerRadius,\r\n\t\touterRadius,\r\n\t\tstartAngle,\r\n\t\tendAngle,\r\n\t\tfill,\r\n\t\tpayload,\r\n\t\tlabel,\r\n\t\tisDarkTheme,\r\n\t} = props;\r\n\tconst RADIAN = Math.PI / 180;\r\n\tconst sin = Math.sin(-RADIAN * midAngle);\r\n\tconst cos = Math.cos(-RADIAN * midAngle);\r\n\tconst sx = cx + (outerRadius + 10) * cos;\r\n\tconst sy = cy + (outerRadius + 10) * sin;\r\n\tconst mx = cx + (outerRadius + 20) * cos;\r\n\tconst my = cy + (outerRadius + 20) * sin;\r\n\tconst ex = mx + (cos >= 0 ? 1 : -1) * 22;\r\n\tconst ey = my;\r\n\tconst textAnchor = cos >= 0 ? 'start' : 'end';\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{payload.name}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t= 0 ? 1 : -1) * 12}\r\n\t\t\t\t\t\ty={ey}\r\n\t\t\t\t\t\tdy={4}\r\n\t\t\t\t\t\ttextAnchor={textAnchor}\r\n\t\t\t\t\t\tfill={isDarkTheme ? '#fff' : '#283B55'}\r\n\t\t\t\t>\r\n\t\t\t\t\t{label}\r\n\t\t\t\t\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobilePieChartLabelActive;\r\n","import React, {useCallback, useMemo, useState} from 'react';\r\nimport {Cell, Pie, PieChart, ResponsiveContainer, Sector} from 'recharts';\r\nimport {\r\n\tcreateChartColors,\r\n\tcreatePieChartData,\r\n} from '../../../helpers/chart.helpers';\r\nimport MobilePieChartLabel from './MobilePieChartLabel';\r\nimport MobilePieChartLabelActive from './MobilePieChartLabelActive';\r\nimport useTheme from '../../../context/contextHook/useTheme';\r\n\r\nconst renderActiveShape = props => {\r\n\tconst RADIAN = Math.PI / 180;\r\n\tconst {\r\n\t\tcx,\r\n\t\tcy,\r\n\t\tmidAngle,\r\n\t\tinnerRadius,\r\n\t\touterRadius,\r\n\t\tstartAngle,\r\n\t\tendAngle,\r\n\t\tfill,\r\n\t\tpayload,\r\n\t\tpercent,\r\n\t\tvalue,\r\n\t} = props;\r\n\tconst sin = Math.sin(-RADIAN * midAngle);\r\n\tconst cos = Math.cos(-RADIAN * midAngle);\r\n\tconst sx = cx + (outerRadius + 10) * cos;\r\n\tconst sy = cy + (outerRadius + 10) * sin;\r\n\tconst mx = cx + (outerRadius + 30) * cos;\r\n\tconst my = cy + (outerRadius + 30) * sin;\r\n\tconst ex = mx + (cos >= 0 ? 1 : -1) * 22;\r\n\tconst ey = my;\r\n\tconst textAnchor = cos >= 0 ? 'start' : 'end';\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{payload.name}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t= 0 ? 1 : -1) * 12} y={ey} textAnchor={textAnchor}\r\n\t\t\t\t fill=\"#333\">{`PV ${value}`}\r\n\t\t\t\t= 0 ? 1 : -1) * 12} y={ey} dy={18}\r\n\t\t\t\t textAnchor={textAnchor} fill=\"#999\">\r\n\t\t\t\t\t{`(Rate ${(percent * 100).toFixed(2)}%)`}\r\n\t\t\t\t\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nconst MobilePieChart = ({options}) => {\r\n\tconst [activeIndex, setActiveIndex] = useState(null);\r\n\r\n\tconst {isDarkTheme} = useTheme();\r\n\r\n\tconst onPieClick = useCallback((_, index) => {\r\n\t\tsetActiveIndex(prev => prev === index ? null : index);\r\n\t}, [setActiveIndex]);\r\n\r\n\tconst renderLabel = useMemo(() => {\r\n\t\tif (typeof activeIndex === 'number') return null;\r\n\t\treturn ;\r\n\t}, [activeIndex, MobilePieChartLabel, isDarkTheme]);\r\n\r\n\tconst renderLabelActive = useMemo(() => {\r\n\t\treturn ;\r\n\t}, [activeIndex, MobilePieChartLabelActive, isDarkTheme]);\r\n\r\n\tconst opt = useMemo(() => {\r\n\t\treturn createPieChartData(options);\r\n\t}, [options]);\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\topt.map((entry, index) => {\r\n\t\t\t\t\t\t\t\tconst fill = createChartColors(index);\r\n\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobilePieChart;\r\n","import React, {useCallback, useEffect, useState} from 'react';\r\nimport { CommandFactory } from '../../../background/commands/CommandFactory'\r\nimport {shallowEqual, useSelector} from 'react-redux';\r\n\r\nconst usePortfolioData = (nickname, timeframe = 3) => {\r\n\tconst {getPortfolioBreakdown} = useSelector(\r\n\t\t\tstate => state.account.socialv1.profileCommands, shallowEqual);\r\n\r\n\tconst [portfolioData, setPortfolioData] = useState(null);\r\n\tconst [isLoading, setIsLoading] = useState(false);\r\n\r\n\tconst requestPortfolio = useCallback(async () => {\r\n\t\tif (!nickname) return null;\r\n\t\tconst userInput = {timeframe: timeframe, nickname};\r\n\r\n\t\tconst command = CommandFactory.createCommand(getPortfolioBreakdown);\r\n\t\tsetIsLoading(true);\r\n\t\ttry {\r\n\t\t\tconst res = await command.execute(userInput);\r\n\t\t\tif (res.isSuccessful) {\r\n\t\t\t\tsetPortfolioData(res.payload);\r\n\t\t\t}\r\n\t\t\tsetIsLoading(false);\r\n\t\t} catch (err) {\r\n\t\t\tconsole.error(err);\r\n\t\t\tsetIsLoading(false);\r\n\t\t}\r\n\r\n\t}, [setIsLoading, getPortfolioBreakdown, nickname, timeframe]);\r\n\r\n\tuseEffect(() => {\r\n\t\trequestPortfolio().then(() => setIsLoading(false));\r\n\t}, [requestPortfolio]);\r\n\r\n\treturn {\r\n\t\tportfolioData,\r\n\t\tisLoading,\r\n\t\trequestData: () => requestPortfolio(),\r\n\t};\r\n\r\n};\r\n\r\nexport default usePortfolioData;\r\n","import React, {useCallback, useState} from 'react';\r\nimport {useTranslation} from 'react-i18next';\r\n\r\nimport {TIMEFRAMES_CHART_PIE} from '../../../constants/options';\r\n\r\nimport MobileChartSwitch from '../../MobileSwitch/MobileChartSwitch';\r\nimport clsx from 'clsx';\r\nimport MobilePieChart from '../../MobileChart/MobilePieChart/MobilePieChart';\r\nimport MobileLoader from '../../MobileLoader/MobileLoader';\r\nimport usePortfolioData from '../../../hook/useFetchData/usePortfolioData';\r\n\r\nconst MobileProfilePortfolio = ({nickname}) => {\r\n\tconst [timeframe, setTimeframe] = useState(1);\r\n\tconst {t} = useTranslation();\r\n\r\n\tconst handleTimeChange = useCallback(({timeKey}) => {\r\n\t\tsetTimeframe && setTimeframe(timeKey);\r\n\t}, [setTimeframe]);\r\n\r\n\tconst {portfolioData, isLoading} = usePortfolioData(nickname, timeframe);\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t
    \r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t{!isLoading && nickname && (\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t)}\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileProfilePortfolio;\r\n","import React, {useCallback, useEffect, useState} from 'react';\r\nimport {shallowEqual, useSelector} from 'react-redux';\r\nimport { CommandFactory } from '../../../background/commands/CommandFactory'\r\n\r\nconst useCommunityFetch = (nickname, kind) => {\r\n\tconst {getFriends} = useSelector(\r\n\t\t\tstate => state.account.socialv1.profileCommands, shallowEqual);\r\n\r\n\tconst [isLoading, setIsLoading] = useState(false);\r\n\tconst [data, setData] = useState(null);\r\n\r\n\tconst requestData = useCallback(async () => {\r\n\t\tif (!nickname) return null;\r\n\t\tconst userInput = {nickname, kind: kind, length: 100};\r\n\t\t\r\n\t\tconst command = CommandFactory.createCommand(getFriends);\r\n\t\ttry {\r\n\t\t\tsetIsLoading(true);\r\n\t\t\tconst res = await command.execute(userInput);\r\n\t\t\tif (!res.isSuccessful) {\r\n\t\t\t\tconst err = `Get profile friends for ${userInput.nickname} request error`;\r\n\t\t\t\tconsole.error(err); //TODO: remove log set error\r\n\t\t\t\tsetIsLoading(false);\r\n\t\t\t}\r\n\t\t\tif (res.isSuccessful) {\r\n\t\t\t\tsetData(res.payload);\r\n\t\t\t\tsetIsLoading(false);\r\n\t\t\t}\r\n\t\t} catch (err) {\r\n\t\t\tconsole.error(err); //TODO: remove log\r\n\t\t\tsetIsLoading(false);\r\n\t\t}\r\n\t}, [nickname, kind, getFriends, setIsLoading, setData]);\r\n\r\n\tuseEffect(() => {\r\n\t\trequestData();\r\n\t}, [requestData]);\r\n\r\n\treturn {isLoading, data, requestData};\r\n};\r\n\r\nexport default useCommunityFetch;\r\n","import React, {useCallback, useMemo} from 'react';\r\nimport MobileAvatarIcon from '../../MobileAvatarIcon';\r\nimport roundToPrecision from '../../../../UI/utilsUI/roundToPrecision';\r\nimport clsx from 'clsx';\r\nimport useProfile from '../../../context/contextHook/useProfile';\r\n\r\nconst MobileProfileCommunityItem = props => {\r\n\tconst {Avatar, Nickname, CumulativePnl} = props;\r\n\r\n\tconst {profileUser: {openProfileUser}} = useProfile();\r\n\r\n\tconst currentPnl = useMemo(() => {\r\n\t\tconst pnl = roundToPrecision(CumulativePnl * 100, 2);\r\n\t\treturn pnl !== 0 ? `${pnl}%` : pnl;\r\n\t}, [CumulativePnl]);\r\n\r\n\tconst handleClick = useCallback(e => {\r\n\t\te && e.preventDefault();\r\n\t\topenProfileUser && openProfileUser(Nickname);\r\n\t}, [openProfileUser]);\r\n\r\n\treturn (\r\n\t\t\t\r\n\r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t{Nickname}\r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\r\n\t\t\t\t
    \r\n\t\t\t\t\t

    \r\n\t\t\t\t\t\t{/*TODO: locale this*/}\r\n\t\t\t\t\t\tP/L\r\n\t\t\t\t\t

    \r\n\t\t\t\t\t
    = 0 && 'green',\r\n\t\t\t\t\t\t\tCumulativePnl < 0 && 'red',\r\n\t\t\t\t\t)}>\r\n\t\t\t\t\t\t{currentPnl}\r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileProfileCommunityItem;\r\n","import React, {useCallback} from 'react';\r\nimport MobileAutosizer from '../../MobileAutosizer/MobileAutosizer';\r\nimport MobileProfileCommunityItem from './MobileProfileCommunityItem';\r\n\r\nconst MobileProfileCommunityList = ({UserFriends, TraderFollowingDetails}) => {\r\n\r\n\tconst renderRow = useCallback(data => {\r\n\t\tconst {item, props} = data;\r\n\t\treturn (\r\n\t\t\t\t\r\n\t\t);\r\n\t}, [UserFriends, TraderFollowingDetails]);\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileProfileCommunityList;\r\n","import React from 'react';\r\nimport useCommunityFetch from '../../../hook/useFetchData/useCommunityFetch';\r\nimport MobileLoader from '../../MobileLoader/MobileLoader';\r\nimport MobileNothingFound from '../../MobileEmpty/MobileNothingFound';\r\nimport MobileProfileCommunityList from './MobileProfileCommunityList';\r\n\r\nconst MobileProfileCommunityWrapper = ({nickname, kind}) => {\r\n\tconst {\r\n\t\tdata,\r\n\t\tisLoading,\r\n\t} = useCommunityFetch(nickname, kind);\r\n\r\n\tif (isLoading) {\r\n\t\treturn ;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\t<>\r\n\t\t\t\t\r\n\r\n\t\t\t\t{data && !data.UserFriends.length && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t{data && !!data.UserFriends.length && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileProfileCommunityWrapper;\r\n","import React, {useCallback, useState} from 'react';\r\n\r\nimport {PROFILE_COMMUNITY_MENU} from '../../../constants/options';\r\n\r\nimport MobileChartSwitch from '../../MobileSwitch/MobileChartSwitch';\r\nimport CarouselTabList from '../../MobileCarousel/CarouselTabList';\r\nimport MobileProfileCommunityWrapper from './MobileProfileCommunityWrapper';\r\n\r\nconst MobileProfileCommunity = ({nickname}) => {\r\n\tconst [timeframe, setTimeframe] = useState(1); //TODO: return to 1\r\n\r\n\tconst handleTimeChange = useCallback(({timeKey}) => {\r\n\t\tsetTimeframe && setTimeframe(timeKey);\r\n\t}, [setTimeframe]);\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileProfileCommunity;\r\n","import React, {useCallback, useMemo, useState} from 'react';\r\nimport MobileButton from '../../components/Buttons/MobileButton';\r\nimport {useTranslation} from 'react-i18next';\r\nimport { CommandFactory } from '../../../background/commands/CommandFactory'\r\nimport {shallowEqual, useSelector} from 'react-redux';\r\nimport useProfile from '../../context/contextHook/useProfile';\r\nimport useProfileUserData from '../../hook/useFetchData/useProfileUserData';\r\n\r\nconst MobileProfileButtonBlock = props => {\r\n\tconst {\r\n\t\tnickname,\r\n\t\tonWatch,\r\n\t} = props;\r\n\r\n\tconst {\r\n\t\tcopiedUser: {handleCopiedOpen},\r\n\t} = useProfile();\r\n\r\n\tconst {userProfile, requestData} = useProfileUserData(nickname);\r\n\r\n\tconst [isLoadingWatch, setIsLoadingWatch] = useState(false);\r\n\tconst [isLoadingCopy, setIsLoadingCopy] = useState(false);\r\n\r\n\tconst {updateFollower, removeFollower} = useSelector(\r\n\t\t\tstate => state.account.socialv1.copyRelationsCommands, shallowEqual);\r\n\r\n\tconst {t} = useTranslation();\r\n\r\n\tconst alreadyCopied = useMemo(() => {\r\n\t\treturn userProfile?.CopyType === 1 || userProfile?.CopyType === 2;\r\n\t}, [userProfile]);\r\n\r\n\tconst alreadyWatched = useMemo(() => {\r\n\t\treturn userProfile?.CopyType === 4 || alreadyCopied;\r\n\t}, [userProfile, alreadyCopied]);\r\n\r\n\tconst watchBtnTitle = useMemo(() => {\r\n\t\tconst result = alreadyWatched\r\n\t\t\t\t? t('Social.Button.Unwatch')\r\n\t\t\t\t: t('Social.Button.Watch');\r\n\r\n\t\treturn result.toLowerCase();\r\n\t}, [alreadyWatched]);\r\n\r\n\tconst copyBtnTitle = useMemo(() => {\r\n\t\tconst result = alreadyCopied\r\n\t\t\t\t? t('Social.Button.EditCopy')\r\n\t\t\t\t: t('Socials.Button.Copy');\r\n\t\treturn result.toLowerCase();\r\n\t}, [alreadyCopied]);\r\n\r\n\tconst handleClickWatch = useCallback(async () => {\r\n\t\tif (!nickname) return null;\r\n\t\tconst userInput = {\r\n\t\t\tguruNickname: nickname,\r\n\t\t\tamount: alreadyWatched ? 0 : 1,\r\n\t\t\tcopyType: alreadyWatched ? 0 : 4,\r\n\t\t};\r\n\r\n\t\tlet commandObj = {};\r\n\t\tif (alreadyWatched) {\r\n\t\t\tcommandObj = {\r\n\t\t\t\t...removeFollower,\r\n\t\t\t\tuserInput,\r\n\t\t\t};\r\n\t\t}\r\n\t\tif (!alreadyWatched) {\r\n\t\t\tcommandObj = {\r\n\t\t\t\t...updateFollower,\r\n\t\t\t\tuserInput,\r\n\t\t\t};\r\n\t\t}\r\n\t\tconst command = CommandFactory.createCommand(commandObj);\r\n\t\tsetIsLoadingWatch(true);\r\n\t\ttry {\r\n\t\t\tconst res = await command.execute();\r\n\t\t\tif (res.isSuccessful) {\r\n\t\t\t\trequestData && requestData().then(() => {\r\n\t\t\t\t\tsetIsLoadingWatch(false);\r\n\t\t\t\t});\r\n\t\t\t\tif (!alreadyWatched) {\r\n\t\t\t\t\tonWatch && onWatch(nickname);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} catch (err) {\r\n\t\t\tconsole.error(err);\r\n\t\t\tsetIsLoadingWatch(false);\r\n\t\t}\r\n\t}, [\r\n\t\talreadyWatched,\r\n\t\tnickname,\r\n\t\tupdateFollower,\r\n\t\tremoveFollower,\r\n\t\tsetIsLoadingWatch,\r\n\t\trequestData,\r\n\t]);\r\n\r\n\tconst handleClickCopy = useCallback(() => {\r\n\t\thandleCopiedOpen && handleCopiedOpen();\r\n\t}, [handleCopiedOpen]);\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileProfileButtonBlock;\r\n","import React, { useCallback, useMemo, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport clsx from 'clsx';\r\nimport MobileProfileStatistics from './MobileProfileStatistics';\r\nimport MobileSocialExploreChart\r\n from '../../components/MobileSocial/MobileSocialExplore/MobileSocialExploreChart';\r\nimport MobileRiskLevelContainer from '../../components/MobileRiskLevel/MobileRiskLevelContainer';\r\nimport MobileCarouselMenu\r\n from '../../components/MobileCarousel/MobileCarouselMenu';\r\nimport { PROFILE_MENU } from '../../constants/options';\r\nimport CarouselTabList from '../../components/MobileCarousel/CarouselTabList';\r\nimport MobileProfileStream\r\n from '../../components/MobileProfile/MobileProfileStream/MobileProfileStream';\r\nimport MobileProfilePositions\r\n from '../../components/MobileProfile/MobileProfilePositions/MobileProfilePositions';\r\nimport MobileProfilePortfolio\r\n from '../../components/MobileProfile/MobileProfilePortfolio/MobileProfilePortfolio';\r\nimport MobileProfileCommunity\r\n from '../../components/MobileProfile/MobileProfileCommunity/MobileProfileCommunity';\r\nimport MobileProfileButtonBlock from './MobileProfileButtonBlock';\r\nimport formatDaysFromNow from '../../../UI/utilsUI/formatDaysFromNow';\r\nimport { FormatPercentFloat } from '../../../UI/ProfilePage/ProfileTabDetails';\r\nimport { QUESTIONER_MODE_EXTENRAL } from '../../../background/socialv1/socialv1Reducer';\r\n\r\nconst MobileProfileMain = (props) => {\r\n const {\r\n UserDetails,\r\n WinRatio,\r\n yearPnl,\r\n SuccessRate,\r\n nickname,\r\n SocialFeed,\r\n CumulativePnl,\r\n handleOpenWatchModal,\r\n isCurrentUserProfile\r\n } = props;\r\n const [carouselTab, setCarouselTab] = useState(0);\r\n const { questionerMode } = useSelector(\r\n (state) => state.account.socialv1.socialAccount\r\n );\r\n const isExternalQuestionnaire = questionerMode === QUESTIONER_MODE_EXTENRAL;\r\n\r\n const daysFromNow = useMemo(() => {\r\n return formatDaysFromNow(new Date(UserDetails?.MetaJoinDate));\r\n }, [UserDetails]);\r\n\r\n const pnl = useMemo(() => {\r\n return Math.round(\r\n (CumulativePnl + Number.EPSILON) * 10000\r\n ) / 100;\r\n }, [CumulativePnl]);\r\n\r\n const successRate = useMemo(() => {\r\n return WinRatio\r\n ? FormatPercentFloat({ value: WinRatio })\r\n : SuccessRate && FormatPercentFloat({ value: SuccessRate }) || 0;\r\n }, [WinRatio, SuccessRate]);\r\n\r\n const handleTabChange = useCallback(({ index }) => {\r\n setCarouselTab && setCarouselTab(index);\r\n }, [setCarouselTab]);\r\n\r\n return (\r\n
    \r\n\r\n
    \r\n \r\n {nickname && (\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 {!isCurrentUserProfile && carouselTab !== 2 && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default MobileProfileMain;\r\n","import React, {useCallback, useState} from 'react';\r\nimport {useTranslation} from 'react-i18next';\r\n\r\nimport MobileButton from '../../Buttons/MobileButton';\r\nimport MobileLoader from '../../MobileLoader/MobileLoader';\r\n\r\nconst MobileProfileCopySuccess = ({onClose, title = '', requestData}) => {\r\n\tconst [isLoading, setIsLoading] = useState(false);\r\n\r\n\tconst {t} = useTranslation();\r\n\r\n\tconst handleClose = useCallback(() => {\r\n\t\tsetIsLoading(false);\r\n\t\tonClose && onClose();\r\n\t}, [onClose, setIsLoading]);\r\n\r\n\tconst handleCloseClick = useCallback(() => {\r\n\t\tsetIsLoading(true);\r\n\t\trequestData && requestData()\r\n\t\t\t\t.then(() => handleClose())\r\n\t\t\t\t.catch(() => handleClose());\r\n\t}, [handleClose, setIsLoading]);\r\n\r\n\treturn (\r\n\t\t\t<>\r\n\t\t\t\t\r\n\r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t{title}\r\n\t\t\t\t\t\t

    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileProfileCopySuccess;\r\n","import React, {useCallback} from 'react';\r\nimport {useTranslation} from 'react-i18next';\r\nimport clsx from 'clsx';\r\n\r\nconst MobileTab = ({options, value, onClick}) => {\r\n\tconst {t} = useTranslation();\r\n\r\n\tconst handleClick = useCallback((e, props) => {\r\n\t\tonClick && onClick(props);\r\n\t}, [onClick]);\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t
      \r\n\t\t\t\t\t{options && !!options.length && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t{options.map((opt, index, array) => (\r\n\t\t\t\t\t\t\t\t\t\t handleClick(e, {index, ...opt})}\r\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"mobile-tab__item\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{width: `${100 / array.length - 1}%`}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t\t\t{opt.translate ? t(opt.translate) : opt.label}\r\n\t\t\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nMobileTab.defaultProps = {\r\n\toptions: [],\r\n\tvalue: 0,\r\n};\r\n\r\nexport default MobileTab;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport {useSelector} from 'react-redux';\r\nimport depositButtonClickHandler from '../../../UI/utilsUI/depositButtonClickHandler';\r\n\r\nconst MobileButtonLink = props => {\r\n\tconst {url, title, blank, type} = props;\r\n const { deposit: { depositUrl, getDepositUrlCommand } } = useSelector((state) => (state.account.accountInfo.featuresData));\r\n const handleDepositClick = () => {\r\n depositButtonClickHandler(depositUrl, getDepositUrlCommand);\r\n };\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t\t

    \r\n\t\t\t\t\t\t{title}\r\n\t\t\t\t\t

    \r\n\t\t\t\t\r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nMobileButtonLink.defaultProps = {\r\n\turl: '',\r\n\ttitle: '',\r\n\ttype: 'primary',\r\n\tblank: false,\r\n};\r\n\r\nexport default MobileButtonLink;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {useTranslation} from 'react-i18next';\r\n\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport Input from '@material-ui/core/Input';\r\nimport OuterClick from '../../../UI/primitives/OuterClick';\r\nimport Button from '../../../UI/primitives/Button';\r\nimport CheckBox from '../../../UI/primitives/CheckBox';\r\n\r\nconst MobileCurrencySelect = ({\r\n\t portfolio,\r\n\t instruments,\r\n\t setInstruments,\r\n\t handleClick,\r\n\t systemColor,\r\n }) => {\r\n\tconst [currencies, setCurrencies] = useState(null);\r\n\tconst [placeholder, setPlaceholder] = useState('');\r\n\tconst [initialCurrencies, setInitialCurrencies] = useState(false);\r\n\tconst [searchValue, setSearchValue] = useState('');\r\n\tconst [all, setAll] = useState(true);\r\n\tconst {t} = useTranslation();\r\n\r\n\tuseEffect(() => {\r\n\t\tconst result = {};\r\n\t\tif (instruments?.length) {\r\n\t\t\tif (portfolio?.TopInstruments?.length) {\r\n\t\t\t\tportfolio.TopInstruments.forEach((item) => {\r\n\t\t\t\t\tresult[item?.Symbol] = instruments.includes(item?.Symbol);\r\n\t\t\t\t});\r\n\t\t\t} else if (portfolio?.AllowedInstruments?.length) {\r\n\t\t\t\tportfolio.AllowedInstruments.forEach((item) => {\r\n\t\t\t\t\tresult[item?.Symbol] = instruments.includes(item?.Symbol);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t} else if (portfolio?.TopInstruments?.length) {\r\n\t\t\tportfolio.TopInstruments.forEach((item) => {\r\n\t\t\t\tresult[item?.Symbol] = true;\r\n\t\t\t});\r\n\t\t} else if (portfolio?.AllowedInstruments?.length) {\r\n\t\t\tportfolio.AllowedInstruments.forEach((item) => {\r\n\t\t\t\tresult[item?.Symbol] = true;\r\n\t\t\t});\r\n\t\t}\r\n\t\tsetCurrencies(result);\r\n\t\tsetInitialCurrencies(result);\r\n\t}, [instruments]);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst searchResult = {};\r\n\t\tif (searchValue) {\r\n\t\t\tObject.entries(currencies).forEach(([key, value]) => {\r\n\t\t\t\tif (key.toLowerCase().includes(searchValue.toLowerCase())) {\r\n\t\t\t\t\tsearchResult[key] = value;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tsetCurrencies(searchResult);\r\n\t\t} else {\r\n\t\t\tinitialCurrencies && setCurrencies(initialCurrencies);\r\n\t\t}\r\n\t}, [searchValue]);\r\n\r\n\tconst selectCurrency = (e) => {\r\n\t\tsetCurrencies(\r\n\t\t\t\t(prevState) => ({...prevState, [e.target.name]: e.target.value}));\r\n\t};\r\n\r\n\tconst toggleAll = () => {\r\n\t\tconst changedCurrencies = {};\r\n\t\tObject.keys(currencies).forEach((key) => {\r\n\t\t\tif (!all) {\r\n\t\t\t\tchangedCurrencies[key] = true;\r\n\t\t\t} else {\r\n\t\t\t\tchangedCurrencies[key] = false;\r\n\t\t\t}\r\n\t\t});\r\n\t\tsetCurrencies(changedCurrencies);\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tif (currencies) {\r\n\t\t\tconst allTrue = Object.values(currencies).every((item) => item);\r\n\t\t\tsetAll(allTrue);\r\n\t\t}\r\n\t}, [currencies]);\r\n\r\n\tconst handleCurrencies = () => {\r\n\t\tconst arrayToUse = [];\r\n\r\n\t\tObject.entries(currencies).forEach(([key, value]) => {\r\n\t\t\tif (value) {\r\n\t\t\t\tarrayToUse.push(key);\r\n\t\t\t}\r\n\t\t});\r\n\t\tif (!all) {\r\n\t\t\tsetInstruments(arrayToUse);\r\n\t\t} else {\r\n\t\t\tsetInstruments([]);\r\n\t\t}\r\n\t\thandleClick();\r\n\t};\r\n\r\n\tconst handleSearch = (e) => {\r\n\t\tsetSearchValue(e.target.value);\r\n\t};\r\n\r\n\tconst resetSearch = () => {\r\n\t\tsetSearchValue('');\r\n\t};\r\n\r\n\tconst icon = searchValue ? (\r\n\t\t\t\r\n\t) : (\r\n\t\t\t\r\n\t);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst result = currencies &&\r\n\t\t\t\tObject.entries(currencies).map(([key, value]) => {\r\n\t\t\t\t\tif (value) return key;\r\n\t\t\t\t});\r\n\t\tif (result && result.length) {\r\n\t\t\tsetPlaceholder(result.join(' , '));\r\n\t\t}\r\n\t}, [currencies]);\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t{currencies && Object.entries(currencies).map(([key, value]) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t{/*TODO: locale this*/}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nexport default OuterClick(MobileCurrencySelect);\r\n","import React, {useCallback, useMemo, useRef, useState} from 'react';\r\nimport {useTranslation} from 'react-i18next';\r\n\r\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\r\n\r\nimport MobileCurrencySelect from '../../MobileAction/MobileCurrencySelect';\r\n\r\nconst MobileProfileCopyCurrency = ({userData, handleChange, copyData}) => {\r\n\tconst {t} = useTranslation();\r\n\tconst [currencySelect, setCurrencySelect] = useState(false);\r\n\r\n\tconst wrapperRef = useRef();\r\n\r\n\tconst handleOpen = useCallback(e => {\r\n\t\te && e.preventDefault();\r\n\t\tif (currencySelect) return null;\r\n\t\tsetCurrencySelect(true);\r\n\t\tif (wrapperRef && wrapperRef.current) {\r\n\t\t\tconst scrollable = document.querySelector(\r\n\t\t\t\t\t'.mobile-profile-copy__main__scrollable');\r\n\t\t\tconst rect = wrapperRef.current.getBoundingClientRect();\r\n\t\t\tconst t = setTimeout(() => {\r\n\t\t\t\tscrollable && scrollable.scrollTo({\r\n\t\t\t\t\ttop: rect.top,\r\n\t\t\t\t\tbehavior: 'smooth',\r\n\t\t\t\t});\r\n\t\t\t\tclearTimeout(t);\r\n\t\t\t}, 100);\r\n\t\t}\r\n\t}, [currencySelect, wrapperRef]);\r\n\r\n\tconst handleClose = useCallback(() => {\r\n\t\tsetCurrencySelect(false);\r\n\t}, [setCurrencySelect]);\r\n\r\n\tconst handleSetInstruments = useCallback(value => {\r\n\t\thandleChange && handleChange(value);\r\n\t}, [handleChange]);\r\n\r\n\tconst renderAllInstrument = useMemo(() => {\r\n\t\treturn (\r\n\t\t\t\t

    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{t('Social.CopyTab.SelectedInstrumentP1')}\r\n\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t{t('Social.CopyTab.SelectedInstrumentAll')}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t{t('Social.CopyTab.SelectedInstrumentP2')}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t

    \r\n\t\t);\r\n\t}, []);\r\n\r\n\tconst renderInstruments = useMemo(() => {\r\n\t\tconst instruments = userData?.instruments;\r\n\t\tlet text = instruments.join(', ');\r\n\t\tif (instruments && instruments.length >= 3) {\r\n\t\t\ttext = `${instruments.slice(0, 3).join(', ')} ... (${instruments.length})`;\r\n\t\t}\r\n\r\n\t\t//TODO: locale this\r\n\t\treturn (\r\n\t\t\t\t

    \r\n\t\t\t\t\tCopying {text}\r\n\t\t\t\t

    \r\n\t\t);\r\n\t}, [userData, userData?.instruments]);\r\n\r\n\tconst currencyList = useMemo(() => {\r\n\t\tconst isInstruments = userData?.instruments?.length;\r\n\t\treturn isInstruments ? renderInstruments : renderAllInstrument;\r\n\t}, [userData, renderAllInstrument]);\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\r\n\t\t\t\t{/*
    */}\r\n\t\t\t\t{/*\t

    */}\r\n\t\t\t\t{/*\t\t\t*/}\r\n\t\t\t\t{/*\t\t\t\t{t('Social.CopyTab.SelectedInstrumentP1')}*/}\r\n\t\t\t\t{/*\t\t\t\t */}\r\n\t\t\t\t{/*\t\t\t*/}\r\n\t\t\t\t{/*\t\t{!userData?.instruments?.length && (*/}\r\n\t\t\t\t{/*\t\t\t\t{t('Social.CopyTab.SelectedInstrumentAll')}*/}\r\n\t\t\t\t{/*\t\t)}*/}\r\n\t\t\t\t{/*\t\t*/}\r\n\t\t\t\t{/*\t\t\t\t */}\r\n\t\t\t\t{/*\t\t\t{t('Social.CopyTab.SelectedInstrumentP2')}*/}\r\n\t\t\t\t{/*\t\t\t*/}\r\n\t\t\t\t{/*\t

    */}\r\n\t\t\t\t{/*\t
    */}\r\n\t\t\t\t{/*\t\t*/}\r\n\t\t\t\t{/*\t
    */}\r\n\t\t\t\t{/*
    */}\r\n\r\n\t\t\t\t{/*
      */}\r\n\t\t\t\t{/*\t{!!userData?.instruments?.length &&*/}\r\n\t\t\t\t{/*\tuserData?.instruments.map(item => (*/}\r\n\t\t\t\t{/*\t\t\t*/}\r\n\t\t\t\t{/*\t\t\t\t{item}*/}\r\n\t\t\t\t{/*\t\t\t*/}\r\n\t\t\t\t{/*\t))}*/}\r\n\t\t\t\t{/*
    */}\r\n\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t{currencyList}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t{currencySelect && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\r\n\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileProfileCopyCurrency;\r\n","/* eslint-disable complexity */\r\nimport React, { useMemo, useRef } from 'react';\r\nimport clsx from 'clsx';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport RemoveIcon from '@material-ui/icons/Remove';\r\n\r\nimport { roundNumberPipDigit } from '../../../UI/utilsUI/formatWSTick';\r\nimport countDecimals from '../../../UI/utilsUI/countDecimals';\r\n\r\nimport '../../../UI/primitives/InputStepper.css';\r\n\r\n\r\nconst MobileInputStepper = (props) => {\r\n const {\r\n min,\r\n max,\r\n selectedUnits,\r\n setValue,\r\n stepValue,\r\n shouldFocus,\r\n pipDigit = 1,\r\n showError,\r\n errorMessage,\r\n checkDivider,\r\n roundMax,\r\n isError,\r\n onFocusAction,\r\n id = null,\r\n onKeyUp,\r\n inputDescription,\r\n pattern = '',\r\n inputmode = ''\r\n } = props;\r\n\r\n const currentValue = useMemo(() => {\r\n if (!selectedUnits) {\r\n return '';\r\n }\r\n return selectedUnits;\r\n }, [selectedUnits]);\r\n\r\n const inputEl = useRef(null);\r\n\r\n const incrementValue = () => {\r\n const newValue = typeof selectedUnits === 'string'\r\n ? Number(selectedUnits.replace(/[^0-9\\.]/g, '')) + stepValue\r\n : selectedUnits + stepValue;\r\n if (newValue > max) return;\r\n\r\n setValue(newValue.toFixed(pipDigit));\r\n };\r\n\r\n const decrementValue = () => {\r\n const newValue = typeof selectedUnits === 'string'\r\n ? Number(selectedUnits.replace(/[^0-9\\.]/g, '')) - stepValue\r\n : selectedUnits - stepValue;\r\n if (newValue < min || newValue <= 0) return;\r\n\r\n setValue(newValue.toFixed(pipDigit));\r\n };\r\n\r\n const handleInputChange = (e) => {\r\n const inputValue = e.target.value.replace(/[^0-9\\.]/g, '');\r\n setValue(inputValue);\r\n if (showError) {\r\n showError('');\r\n }\r\n };\r\n\r\n const onLeaveInput = () => {\r\n let selectedUnitsNumber = selectedUnits;\r\n if (typeof selectedUnits === 'string') {\r\n selectedUnitsNumber = selectedUnits.replace(/[^0-9\\.]/g, '');\r\n selectedUnitsNumber = roundNumberPipDigit(selectedUnitsNumber,\r\n countDecimals(selectedUnitsNumber));\r\n setValue(selectedUnitsNumber);\r\n }\r\n if (showError) {\r\n if (checkDivider) {\r\n if (typeof selectedUnits === 'string') {\r\n selectedUnitsNumber = selectedUnits?.replace(/[^0-9\\.]/g, '');\r\n }\r\n if (selectedUnitsNumber < min\r\n\t\t\t\t\t\t|| (selectedUnitsNumber * (10 ** pipDigit))\r\n\t\t\t\t\t\t% (stepValue * (10 ** pipDigit)) !== 0 || selectedUnitsNumber > max) {\r\n showError(errorMessage);\r\n } else {\r\n showError('');\r\n }\r\n } else if (selectedUnitsNumber === '0' || selectedUnitsNumber === '') {\r\n showError(errorMessage);\r\n } else {\r\n showError('');\r\n }\r\n }\r\n if (roundMax) {\r\n if (selectedUnitsNumber > max) {\r\n setValue(max.toFixed(pipDigit));\r\n }\r\n }\r\n document.getSelection().removeAllRanges();\r\n };\r\n\r\n const handleOnFocus = () => {\r\n if (inputEl.current) {\r\n inputEl.current.select();\r\n onFocusAction && onFocusAction();\r\n }\r\n };\r\n\r\n const buttonStyle = useMemo(() => {\r\n return { width: '20%' };\r\n }, []);\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n {inputDescription &&
    {inputDescription}
    }\r\n
    \r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default MobileInputStepper;\r\n","/* eslint-disable complexity */\r\nimport React, {\r\n useCallback, useEffect, useMemo, useState\r\n} from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { CommandFactory } from '../../../../background/commands/CommandFactory';\r\nimport PubsubSubscription from '../../../../background/repositories/PubsubSubscription';\r\nimport { QUESTIONER_MODE_EXTENRAL } from '../../../../background/socialv1/socialv1Reducer';\r\n\r\nimport MobileTab from '../../MobileTab/MobileTab';\r\nimport MobileButton from '../../Buttons/MobileButton';\r\nimport MobileButtonLink from '../../Buttons/MobileButtonLink';\r\n\r\nimport MobileProfileCopyCurrency from './MobileProfileCopyCurrency';\r\nimport MobileInputStepper from '../../MobileInputStepper/MobileInputStepper';\r\nimport { getProfileCopyOptions } from '../../../helpers/options.helpers';\r\n\r\nconst MobileProfileCopyMain = (props) => {\r\n const {\r\n nickname,\r\n CopyType,\r\n Amount,\r\n Instruments,\r\n alreadyCopied,\r\n handleAddFollower,\r\n handleUncopyFollower,\r\n MinimumEquityAllocationAmount,\r\n MaximumCopyByFixedLotAmount,\r\n DefaultEquityAllocationAmount,\r\n DefaultCopyByFixedLotAmount,\r\n yearPnl,\r\n setShowBlockDisclaimer\r\n } = props;\r\n\r\n const { t } = useTranslation();\r\n\r\n const {\r\n socialAccount: {\r\n questionerMode,\r\n externalRiskScore,\r\n queryRiskScoreCMD\r\n },\r\n profileCommands: { getDataForCopy },\r\n hideCopyByFixedLot\r\n } = useSelector((state) => state.account.socialv1, shallowEqual);\r\n\r\n const { depositUrl } = useSelector(\r\n (state) => state.account.accountInfo.featuresData.deposit, shallowEqual\r\n );\r\n\r\n const { symbol } = useSelector((state) => state.account.accountInfo.currency,\r\n shallowEqual);\r\n\r\n const { balance } = useSelector((state) => state.account.financial, shallowEqual);\r\n\r\n const pnlTick = PubsubSubscription.subscribeObj(\r\n { key: 'MOVINGPNL', repId: 'ACCOUNT_PNL' }\r\n );\r\n\r\n const [persistCopyTab, setPersistCopyTab] = useState(false);\r\n const [tabValue, setTabValue] = useState(0);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [copyData, setCopyData] = useState(null);\r\n const [userData, setUserData] = useState({\r\n amount: null,\r\n equity: '',\r\n lotAmount: '',\r\n instruments: [],\r\n copyType: 0\r\n });\r\n\r\n const handleClickTab = useCallback(({ index }) => {\r\n setTabValue(index);\r\n }, [setTabValue]);\r\n\r\n const hideCopyByFixedLotState = useMemo(() => {\r\n let hideCopyByFixedLotState = hideCopyByFixedLot;\r\n const alreadyCopied = CopyType === 1 || CopyType === 2;\r\n if (hideCopyByFixedLotState && alreadyCopied && userData?.copyType === 1) {\r\n hideCopyByFixedLotState = false;\r\n }\r\n return hideCopyByFixedLotState;\r\n }, [hideCopyByFixedLot, CopyType, userData]);\r\n\r\n const optionsTab = useMemo(() => {\r\n return getProfileCopyOptions(hideCopyByFixedLotState);\r\n }, [hideCopyByFixedLotState]);\r\n\r\n const equityStepperAmount = useMemo(() => {\r\n return parseFloat(userData.equity);\r\n }, [userData, userData.equity]);\r\n\r\n const isOverCopy = useMemo(() => {\r\n return equityStepperAmount < pnlTick.equity\r\n\t\t\t\t&& (((userData?.copyType === 1 || userData?.copyType === 2)\r\n\t\t\t\t\t&& equityStepperAmount + copyData?.TotalAllocationMargin\r\n\t\t\t\t\t- userData?.amount > balance)\r\n\t\t\t\t\t|| (!userData?.copyType === 1 && !userData?.copyType === 2\r\n\t\t\t\t\t\t&& equityStepperAmount + copyData?.TotalAllocationMargin\r\n\t\t\t\t\t\t> equityStepperAmount > balance)) && tabValue === 0;\r\n }, [equityStepperAmount, pnlTick, userData, copyData, balance, tabValue]);\r\n\r\n const isInvalidEquityAmount = useMemo(() => {\r\n return equityStepperAmount > pnlTick.equity && tabValue === 0;\r\n }, [equityStepperAmount, pnlTick, tabValue]);\r\n\r\n const currentDesc = useMemo(() => {\r\n return tabValue === 0\r\n ? t('Social.CopyTab.ByEquityDesc',\r\n { nickname, symbol, equity: userData.equity })\r\n : t('Social.CopyTab.ByEquityDesc',\r\n { nickname, symbol: userData?.lotAmount, equity: '(lots)' });\r\n }, [tabValue, nickname, userData, symbol]);\r\n\r\n const disableButton = useMemo(() => {\r\n return parseFloat(userData?.lotAmount) <= 0\r\n\t\t\t\t|| parseFloat(userData?.equity) <= 0 || userData?.instruments === null;\r\n }, [userData]);\r\n\r\n const buttonTitle = useMemo(() => {\r\n return userData.copyType === 1 || userData.copyType === 2\r\n ? t('General.Save')\r\n : t('Socials.Button.Copy');\r\n }, [userData]);\r\n\r\n const uncopyText = useMemo(() => {\r\n return userData.copyType === 1\r\n ? t('Social.CopyTab.CurrCopyStatus',\r\n { nickname, symbol: userData?.amount, equity: '(lots)' }) // TODO: locale this\r\n : t('Social.CopyTab.CurrCopyStatus',\r\n { nickname, symbol, equity: userData?.amount });\r\n }, [userData, symbol, nickname]);\r\n\r\n const canCopy = (riskLevel, maxDrawDown) => {\r\n if (maxDrawDown <= 0 || maxDrawDown === undefined || maxDrawDown === null) {\r\n return false;\r\n }\r\n\r\n let masterScore = 0;\r\n if (maxDrawDown * 100 > 50)\r\n {\r\n masterScore = 2;\r\n } else if (maxDrawDown * 100 > 25) {\r\n masterScore = 1;\r\n }\r\n\r\n if (riskLevel <= 0) {\r\n return false;\r\n }\r\n\r\n if (riskLevel >= 1 && riskLevel < 25) {\r\n return masterScore === 0;\r\n }\r\n if (riskLevel >= 25 && riskLevel < 75) {\r\n return masterScore === 0 || masterScore === 1;\r\n }\r\n if (riskLevel >= 75) {\r\n return true;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n const externalQuestionerMode = (riskLevel, data) => {\r\n setIsLoading(false);\r\n if (yearPnl?.UserMeasures?.MaxDrawDown) {\r\n if (canCopy(riskLevel, yearPnl?.UserMeasures?.MaxDrawDown)) {\r\n handleAddFollower(data);\r\n } else {\r\n setShowBlockDisclaimer(true);\r\n }\r\n } else {\r\n setShowBlockDisclaimer(true);\r\n }\r\n };\r\n\r\n const handleCopy = useCallback(() => {\r\n const data = {\r\n ...props,\r\n ...copyData,\r\n userData,\r\n tabValue\r\n };\r\n if (questionerMode === QUESTIONER_MODE_EXTENRAL) {\r\n setIsLoading(true);\r\n if (!externalRiskScore) {\r\n try {\r\n CommandFactory.createCommand(queryRiskScoreCMD).execute()\r\n .catch((ex) => { externalQuestionerMode(0, data); })\r\n .then((value) => {\r\n if (value?.payload?.socialAccount?.externalRiskScore) {\r\n externalQuestionerMode(value.payload.socialAccount.externalRiskScore,data);\r\n } else {\r\n externalQuestionerMode(0, data);\r\n }\r\n });\r\n } catch (exception) { externalQuestionerMode(0, data); }\r\n } else {\r\n externalQuestionerMode(externalRiskScore,data);\r\n }\r\n } else {\r\n handleAddFollower && handleAddFollower(data);\r\n }\r\n }, [handleAddFollower, userData, tabValue, copyData]);\r\n\r\n const handleUncopy = useCallback(() => {\r\n handleUncopyFollower && handleUncopyFollower();\r\n }, [handleUncopyFollower]);\r\n\r\n const handleChangeEquity = useCallback((value) => {\r\n if (typeof value === 'string') {\r\n value = parseInt(value.replace(/,/g, ''));\r\n }\r\n if (value) {\r\n setUserData((prev) => ({\r\n ...prev,\r\n equity: value\r\n }));\r\n }\r\n }, [setUserData]);\r\n\r\n const handleChangeLotAmount = useCallback((value) => {\r\n setUserData((prev) => ({\r\n ...prev,\r\n lotAmount: value\r\n }));\r\n }, [setUserData]);\r\n\r\n const handleCurrencyChange = useCallback((data) => {\r\n setUserData((prev) => ({\r\n ...prev,\r\n instruments: data\r\n }));\r\n }, [setUserData]);\r\n\r\n const createUserData = useCallback(() => {\r\n setUserData((prev) => ({\r\n ...prev,\r\n amount: Amount,\r\n equity: CopyType === 2 ? Amount : DefaultEquityAllocationAmount,\r\n lotAmount: CopyType === 1 ? Amount : DefaultCopyByFixedLotAmount,\r\n instruments: Instruments || [],\r\n copyType: CopyType\r\n }));\r\n if (CopyType === 1) {\r\n setTabValue(1);\r\n }\r\n }, [\r\n CopyType,\r\n setUserData,\r\n Amount,\r\n Instruments,\r\n DefaultEquityAllocationAmount,\r\n setTabValue\r\n ]);\r\n\r\n const copyDataFetch = useCallback(async () => {\r\n if (!nickname || !getDataForCopy) return null;\r\n const userInput = { masterNickname: nickname };\r\n const commandObj = { ...getDataForCopy, userInput };\r\n const command = CommandFactory.createCommand(commandObj);\r\n try {\r\n setIsLoading(true);\r\n const res = await command.execute();\r\n if (res.isSuccessful) {\r\n setCopyData(res.payload);\r\n return res.payload;\r\n }\r\n if (!res.isSuccessful) {\r\n console.error('Error fetch copy data'); // TODO: remove log add error handler\r\n }\r\n setIsLoading(false);\r\n } catch (err) {\r\n setIsLoading(false);\r\n console.error(err); // TODO: remove log add error handler\r\n }\r\n }, [nickname, getDataForCopy]);\r\n\r\n useEffect(() => {\r\n copyDataFetch().then(() => setIsLoading(false));\r\n createUserData();\r\n }, [copyDataFetch, createUserData]);\r\n\r\n return (\r\n
    \r\n\r\n
    \r\n {/* REMOVE FOLLOWER */}\r\n {alreadyCopied && (\r\n
    \r\n

    \r\n {uncopyText}\r\n

    \r\n \r\n
    \r\n )}\r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n {tabValue === 0 && (\r\n \r\n )}\r\n {!hideCopyByFixedLotState && tabValue === 1 && (\r\n \r\n )}\r\n
    \r\n
    \r\n {/* TODO: locae this */}\r\n

    \r\n {tabValue === 0 ? symbol : 'lots'}\r\n

    \r\n

    \r\n {tabValue === 0\r\n ? t('General.Equity')\r\n : t('Social.CopyTab.ByFixedHeader')}\r\n

    \r\n
    \r\n
    \r\n\r\n
    \r\n {currentDesc}\r\n
    \r\n\r\n {/* ERROR */}\r\n
    \r\n {parseFloat(userData.equity) <= 0 && tabValue === 0 && (\r\n
    \r\n {t('Social.CopyTab.Errors.InvalidAmount')}\r\n
    \r\n )}\r\n {userData.equity === '' && tabValue === 0 && (\r\n
    \r\n {t('Social.CopyTab.Errors.EmptyEquity')}\r\n
    \r\n )}\r\n {parseFloat(userData.lotAmount) <= 0 && tabValue === 1 && (\r\n
    \r\n {t('Social.CopyTab.Errors.InvalidAmount')}\r\n
    \r\n )}\r\n {userData.lotAmount === '' && tabValue === 1 && (\r\n
    \r\n {t('Social.CopyTab.Errors.EmptyEquity')}\r\n
    \r\n )}\r\n {isInvalidEquityAmount && (\r\n
    \r\n {t('Social.CopyTab.Errors.InvalidAmountMaxEquity', {\r\n equity: Math.abs(\r\n pnlTick.equity - parseFloat(userData.equity)\r\n )\r\n })}\r\n
    \r\n )}\r\n {isOverCopy && (\r\n
    \r\n {t('Social.CopyTab.Errors.InvalidAmountOverCopy')}\r\n
    \r\n )}\r\n
    \r\n\r\n {/* CURRENCY SELECT */}\r\n \r\n
    \r\n\r\n
    \r\n {(isOverCopy || isInvalidEquityAmount) && (\r\n
    \r\n \r\n
    \r\n )}\r\n\r\n {!isOverCopy && !isInvalidEquityAmount && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n\r\n
    \r\n );\r\n};\r\nexport default MobileProfileCopyMain;\r\n","import React, {useCallback, useState} from 'react';\r\nimport MobileButton from '../../Buttons/MobileButton';\r\nimport {useTranslation} from 'react-i18next';\r\nimport MobileLoader from '../../MobileLoader/MobileLoader';\r\n\r\nconst MobileProfileCopyUncopy = ({nickname = '', onClose, onAction}) => {\r\n\tconst {t} = useTranslation();\r\n\r\n\tconst [isLoading, setIsLoading] = useState(false);\r\n\r\n\tconst handleClose = useCallback(() => {\r\n\t\tsetIsLoading(false);\r\n\t\tonClose && onClose();\r\n\t}, [onClose]);\r\n\r\n\tconst handleSuccess = useCallback(() => {\r\n\t\tsetIsLoading(true);\r\n\t\tonAction && onAction()\r\n\t\t\t\t.then(() => setIsLoading(false))\r\n\t\t\t\t.catch(() => setIsLoading(false));\r\n\t}, [onAction, setIsLoading]);\r\n\r\n\treturn (\r\n\t\t\t<>\r\n\t\t\t\t\r\n\r\n\t\t\t\t
    \r\n\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t{t('Social.ConfirmUncopy')}\r\n\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t{t('Social.Uncopy.DisclaimerHeader')}\r\n\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t{nickname}\r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t{t('Social.Uncopy.Disclaimer')}\r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\r\n\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileProfileCopyUncopy;\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n// import PropTypes from 'prop-types';\r\n\r\nimport { SendEventToGoogleAnalytics } from '../../../../background/storeListener/googleAnalyticsListener';\r\n\r\nimport MobileButton from '../../Buttons/MobileButton';\r\n\r\n\r\nconst MobileCopyBlockDisclaimer = ({ handleClose, masterNickname }) => {\r\n const { t } = useTranslation();\r\n\r\n SendEventToGoogleAnalytics('Profile:Copy:LFSDisclaimer:Block', { masterNickname });\r\n\r\n return (\r\n
    \r\n
    \r\n

    \r\n Warning: \r\n The Strategy you have selected is NOT in line with your Investment and Risk Profile and LFS does not recommend this Strategy/Trader for you.\r\n We recommend you consider a strategy in your Investment and Risk Profile or below.\r\n

    \r\n

    \r\n We would like you to note that past performance of all Trading strategies is not a guarantee, nor indicative of future returns.\r\n There is a high level of risk involved with trading forex, cryptocurrencies, commodities, indices and other CFDs.\r\n Funds placed under management should be risk capital funds that if lost will not significantly affect one’s personal financial well-being.\r\n

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default MobileCopyBlockDisclaimer;\r\n","import React, { useCallback, useMemo, useState } from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { CommandFactory } from '../../../../background/commands/CommandFactory';\r\nimport useProfile from '../../../context/contextHook/useProfile';\r\n\r\nimport MobileProfileCopySuccess from './MobileProfileCopySuccess';\r\nimport MobileProfileCopyMain from './MobileProfileCopyMain';\r\nimport MobileProfileCopyUncopy from './MobileProfileCopyUncopy';\r\nimport MobileLoader from '../../MobileLoader/MobileLoader';\r\nimport MobileCopyBlockDisclaimer from './MobileCopyBlockDisclaimer';\r\n\r\nconst MobileProfileCopy = ({\r\n profile, nickname = '', requestData, yearPnl\r\n}) => {\r\n const {\r\n copiedUser: { handleCopiedClose }\r\n } = useProfile();\r\n\r\n const { addFollower } = useSelector(\r\n (state) => state.account.socialv1.copyRelationsCommands, shallowEqual\r\n );\r\n\r\n const { updateFollower, removeFollower } = useSelector(\r\n (state) => state.account.socialv1.copyRelationsCommands, shallowEqual\r\n );\r\n\r\n const { t } = useTranslation();\r\n\r\n const [copyStatus, setCopyStatus] = useState('');\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [uncopyModal, setUncopyModal] = useState(false);\r\n const [showBlockDisclaimer, setShowBlockDisclaimer] = useState(false);\r\n\r\n const alreadyCopied = useMemo(() => {\r\n return profile?.CopyType === 1 || profile?.CopyType === 2;\r\n }, [profile]);\r\n\r\n const handleStatusClose = useCallback(() => {\r\n // handleCopiedClose && handleCopiedClose();\r\n setCopyStatus && setCopyStatus('');\r\n }, []);\r\n\r\n const handleRequestSuccess = useCallback(() => {\r\n const text = t('Social.CopyTab.CopyResponse', { nickName: nickname });\r\n setCopyStatus && setCopyStatus(text);\r\n }, [setCopyStatus]);\r\n\r\n const handleRequestError = useCallback((err) => {\r\n setCopyStatus && setCopyStatus(err);\r\n }, [setCopyStatus]);\r\n\r\n const handleAddFollower = useCallback(async (data) => {\r\n const { userData, tabValue } = data;\r\n if (!userData || !nickname) return null;\r\n const amount = tabValue === 0\r\n ? Number(userData?.equity)\r\n : Number(userData?.lotAmount);\r\n const copyType = tabValue === 0 ? 2 : 1;\r\n\r\n const userInput = {\r\n masterNickname: nickname,\r\n amount,\r\n copyType,\r\n copiedSourceType: 0,\r\n instruments: userData?.instruments\r\n };\r\n\r\n const command = CommandFactory.createCommand(addFollower);\r\n setIsLoading(true);\r\n try {\r\n const res = await command.execute(userInput);\r\n if (!res.isSuccessful) {\r\n setIsLoading(false);\r\n handleRequestError('Error copy fetch'); // TODO: add error\r\n }\r\n if (res.isSuccessful) {\r\n handleRequestSuccess();\r\n }\r\n setIsLoading(false);\r\n } catch (err) {\r\n setIsLoading(false);\r\n handleRequestError(err);\r\n console.error(err); // TODO: remove log add error\r\n }\r\n }, [handleRequestSuccess, handleRequestError, addFollower]);\r\n\r\n const handleUncopyFollower = useCallback(async () => {\r\n if (!nickname || !updateFollower) return null;\r\n const userInput = { guruNickname: nickname, amount: 1, copyType: 4 };\r\n\r\n const command = CommandFactory.createCommand(updateFollower);\r\n setIsLoading(true);\r\n try {\r\n const res = await command.execute(userInput);\r\n if (!res.isSuccessful) {\r\n handleRequestError('Error uncopy fetch'); // TODO: add error\r\n }\r\n if (res.isSuccessful) {\r\n requestData();\r\n }\r\n setIsLoading(false);\r\n } catch (err) {\r\n console.error(err); // TODO: remove log add err\r\n setIsLoading(false);\r\n }\r\n }, [updateFollower, nickname]);\r\n\r\n const handleUncopyOpen = useCallback(() => {\r\n setUncopyModal(true);\r\n }, [setUncopyModal]);\r\n\r\n const handleUncopyClose = useCallback(() => {\r\n setUncopyModal(false);\r\n }, [setUncopyModal]);\r\n\r\n const handleCloseBlockDiclaimer = () => {\r\n setShowBlockDisclaimer(false);\r\n };\r\n\r\n return (\r\n
    \r\n {showBlockDisclaimer && }\r\n {!!copyStatus && (\r\n \r\n )}\r\n {!copyStatus && !showBlockDisclaimer && (\r\n <>\r\n \r\n\r\n {uncopyModal && (\r\n \r\n )}\r\n {!uncopyModal && (\r\n \r\n )}\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default MobileProfileCopy;\r\n","import React, { useCallback, useEffect, useState } from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\n\r\nimport { CommandFactory } from '../../../background/commands/CommandFactory';\r\nimport { QUESTIONER_MODE_EXTENRAL } from '../../../background/socialv1/socialv1Reducer';\r\n\r\n\r\nconst useDetailedProfileUserData = (nickname, period = 4) => {\r\n const {\r\n profileCommands: { getGetPlAndStats },\r\n socialAccount: { questionerMode, queryRiskScoreCMD, externalRiskScore }\r\n } = useSelector(\r\n (state) => state.account.socialv1, shallowEqual\r\n );\r\n\r\n const [userDetailProfile, setUserDetailProfile] = useState(null);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const getDetailedProfileData = useCallback(async () => {\r\n if (!nickname || !period) return null;\r\n const userInput = { nickname, timeframe: period || 4 };\r\n\r\n const command = CommandFactory.createCommand(getGetPlAndStats);\r\n setIsLoading(true);\r\n try {\r\n const res = await command.execute(userInput);\r\n if (res.isSuccessful) {\r\n setUserDetailProfile(res.payload);\r\n }\r\n setIsLoading(false);\r\n } catch (err) {\r\n console.error(err);\r\n setIsLoading(false);\r\n }\r\n }, [setIsLoading, getGetPlAndStats, nickname, period, setUserDetailProfile]);\r\n\r\n const getExternalRiskData = useCallback(async () => {\r\n if (!nickname) return null;\r\n setIsLoading(true);\r\n try {\r\n await CommandFactory.createCommand(queryRiskScoreCMD).execute();\r\n setIsLoading(false);\r\n } catch (err) {\r\n console.error(err);\r\n setIsLoading(false);\r\n }\r\n }, [nickname, queryRiskScoreCMD]);\r\n\r\n useEffect(() => {\r\n getDetailedProfileData().then(() => {\r\n if (questionerMode === QUESTIONER_MODE_EXTENRAL && !externalRiskScore) {\r\n getExternalRiskData();\r\n }\r\n }).then(() => setIsLoading(false));\r\n }, [getDetailedProfileData]);\r\n\r\n return {\r\n userDetailProfile,\r\n isLoading,\r\n requestData: () => getDetailedProfileData()\r\n };\r\n};\r\n\r\nexport default useDetailedProfileUserData;\r\n","import React, {useCallback, useRef} from 'react';\r\nimport {useTranslation} from 'react-i18next';\r\nimport clsx from 'clsx';\r\nimport useClickOutside from '../../hook/useClickOutside';\r\n\r\nimport MobileTransition from '../MobileTransition';\r\nimport MobileButton from '../Buttons/MobileButton';\r\n\r\nconst MobileWatchModal = ({\r\n\t isOpen,\r\n\t onClose,\r\n\t onSuccess,\r\n\t userName,\r\n\t position,\r\n\t className,\r\n }) => {\r\n\r\n\tconst {t} = useTranslation();\r\n\r\n\tconst modalRef = useRef(null);\r\n\r\n\tuseClickOutside(modalRef, () => {\r\n\t\thandleButtonOk();\r\n\t});\r\n\r\n\tconst handleButtonOk = useCallback(() => {\r\n\t\tonClose && onClose();\r\n\t}, [onClose]);\r\n\r\n\tconst handleButtonCopy = useCallback(() => {\r\n\t\tonSuccess && onSuccess()\r\n\t}, [onSuccess]);\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t{t('Social.Popup.Watch.BodyText', {\r\n\t\t\t\t\t\t\t\t\tnickname: userName,\r\n\t\t\t\t\t\t\t\t\tcopy: t('Socials.Button.Copy'),\r\n\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nMobileWatchModal.defaultProps = {\r\n\tisOpen: false,\r\n\tuserName: '',\r\n\tposition: 'top',\r\n\tclassName: '',\r\n};\r\n\r\nexport default MobileWatchModal;\r\n","import React, {\r\n useCallback, useMemo, useRef, useState\r\n} from 'react';\r\n\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\nimport useProfile from '../../context/contextHook/useProfile';\r\n\r\nimport MobilePopUp from '../../components/MobilePopUp/MobilePopUp';\r\nimport MobileProfileHeader from './MobileProfileHeader';\r\nimport useProfileUserData from '../../hook/useFetchData/useProfileUserData';\r\nimport MobileSwiper from '../../components/MobileSwiper';\r\nimport MobileProfileMain from './MobileProfileMain';\r\nimport MobileProfileCopy\r\n from '../../components/MobileProfile/MobileProfileCopy/MobileProfileCopy';\r\nimport useDetailedProfileUserData\r\n from '../../hook/useFetchData/useDetailedProfileUserData';\r\nimport MobileWatchModal from '../../components/MobileModal/MobileWatchModal';\r\nimport MobileLoader from '../../components/MobileLoader/MobileLoader';\r\n\r\nconst MobileProfile = () => {\r\n const {\r\n profileUser: { profileUserName, openProfileUser },\r\n copiedUser: { isCopied }\r\n } = useProfile();\r\n\r\n const currentUser = useSelector((state) => state.account.socialv1.userDetails, shallowEqual);\r\n\r\n const Nickname = useMemo(() => profileUserName, [profileUserName]);\r\n\r\n const { userProfile, isLoading, requestData } = useProfileUserData(Nickname);\r\n\r\n const { userDetailProfile } = useDetailedProfileUserData(Nickname);\r\n\r\n const { UserDetails, CopiersCount, SocialFeed } = useMemo(\r\n () => ({ ...userProfile }),\r\n [userProfile]\r\n );\r\n\r\n const isCurrentUserProfile = useMemo(() => {\r\n const pUser = UserDetails?.Nickname;\r\n const cUser = currentUser?.nickname;\r\n return pUser === cUser;\r\n }, [currentUser, UserDetails]);\r\n\r\n const [watchModalName, setWatchModalName] = useState(null);\r\n\r\n const handleOpenWatchModal = useCallback((name) => {\r\n setWatchModalName(name);\r\n }, [setWatchModalName]);\r\n\r\n const handleCloseWatchModal = useCallback(() => {\r\n setWatchModalName(null);\r\n }, [setWatchModalName]);\r\n\r\n const handleOpenProfile = useCallback(() => {\r\n handleCloseWatchModal && handleCloseWatchModal();\r\n openProfileUser && openProfileUser(watchModalName, true);\r\n }, [openProfileUser, watchModalName]);\r\n\r\n const touchRef = useRef(null);\r\n\r\n return (\r\n \r\n \r\n <>\r\n \r\n\r\n
    \r\n {isLoading && (\r\n \r\n )}\r\n {!isLoading && !!userProfile && (\r\n <>\r\n \r\n {!isCopied && (\r\n \r\n )}\r\n {isCopied && !isCurrentUserProfile && (\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 MobileProfile;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M28.5 5H23V3.5C22.9978 1.56794 21.4321 0.0021875 19.5 0H10.5C8.56794 0.0021875 7.00219 1.56794 7 3.5V5H1.5C0.671562 5 0 5.67156 0 6.5V16.5C0.002625 17.1334 0.402812 17.6969 1 17.908V24.5C1 25.3284 1.67156 26 2.5 26H27.5C28.3284 26 29 25.3284 29 24.5V17.908C29.5972 17.6969 29.9974 17.1334 30 16.5V6.5C30 5.67156 29.3284 5 28.5 5ZM8 3.5C8.00163 2.12 9.12 1.00163 10.5 1H19.5C20.88 1.00163 21.9984 2.12 22 3.5V5H20.98L21 3.5C20.9984 2.67225 20.3277 2.00163 19.5 2H10.4815C9.65375 2.00163 8.98312 2.67225 8.9815 3.5V3.505L8.995 5H8V3.5ZM20 3.493L19.98 5H9.995L9.9795 3.5C9.9795 3.22388 10.2034 3 10.4795 3H19.5C19.7734 3 19.9962 3.21956 20 3.493ZM28 24.5C28 24.7761 27.7761 25 27.5 25H2.5C2.22388 25 2 24.7761 2 24.5V18H5.5V19.5C5.5 19.7761 5.72388 20 6 20H8C8.27612 20 8.5 19.7761 8.5 19.5V18H21.5V19.5C21.5 19.7761 21.7239 20 22 20H24C24.2761 20 24.5 19.7761 24.5 19.5V18H28V24.5ZM6.5 19V16.5C6.49975 16.3652 6.55531 16.2363 6.6535 16.144C6.74444 16.0506 6.86963 15.9985 7 16C7.27612 16 7.5 16.2239 7.5 16.5V17.5V19H6.5ZM22.5 19V16.5C22.5 16.2239 22.7239 16 23 16C23.1349 15.9996 23.2639 16.0549 23.3565 16.153C23.4493 16.2446 23.501 16.3697 23.5 16.5V17.5V19H22.5ZM29 16.5C29 16.7761 28.7761 17 28.5 17H24.5V16.5C24.4964 15.6731 23.8269 15.0036 23 15C22.1716 15 21.5 15.6716 21.5 16.5V17H8.5V16.5C8.5 15.6716 7.82844 15 7 15C6.1735 15.0046 5.50462 15.6735 5.5 16.5V17H1.5C1.22388 17 1 16.7761 1 16.5V6.5C1 6.22388 1.22388 6 1.5 6H28.5C28.7761 6 29 6.22388 29 6.5V16.5Z\"\n});\n\nvar SvgBusiness = function SvgBusiness(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 30,\n height: 26,\n viewBox: \"0 0 30 26\",\n fill: \"white\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgBusiness, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/business.a3569908.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\n\r\nconst MobileFooterHeaderData = ({label, data}) => {\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t

    \r\n\t\t\t\t\t{label}\r\n\t\t\t\t

    \r\n\t\t\t\t

    \r\n\t\t\t\t\t{data}\r\n\t\t\t\t

    \r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileFooterHeaderData;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport {ReactComponent as Business} from '../../assets/icons/business.svg';\r\nimport {shallowEqual, useSelector} from 'react-redux';\r\nimport {useTranslation} from 'react-i18next';\r\nimport MobileFooterHeaderData from './MobileFooterHeaderData';\r\nimport {PreparePNL} from '../../../UI/PNL/PNL';\r\nimport {roundNumberPipDigit} from '../../../UI/utilsUI/formatWSTick';\r\n\r\nconst MobileFooterHeader = props => {\r\n\tconst {\r\n\t\tisOpen,\r\n\t\tpnlTick,\r\n\t\tbalance,\r\n\t\tsymbol,\r\n\t\tmargin,\r\n\t\tcredit,\r\n\t\treference,\r\n\t} = props;\r\n\r\n\tconst {positions} = useSelector(state => state.account.positions.open,\r\n\t\t\tshallowEqual);\r\n\tconst openPositionsQuantity = Object.keys(positions).length;\r\n\r\n\tconst {t} = useTranslation();\r\n const marginLevelData = margin === 0 ? <> : <>{roundNumberPipDigit(pnlTick.equity/margin * 100, 2)}%;\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t{isOpen && (\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t)}\r\n\t\t\t\t
    \r\n\r\n\t\t\t\t\t{/*ROW 1*/}\r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t{!isOpen && (\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t 99 && 'small')}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{openPositionsQuantity <= 99\r\n\t\t\t\t\t\t\t\t\t\t\t\t? openPositionsQuantity\r\n\t\t\t\t\t\t\t\t\t\t\t\t: '+99'\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{symbol}\r\n\t\t\t\t\t\t\t\t\t{roundNumberPipDigit(balance, 2)}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t{/*ROW 2*/}\r\n\t\t\t\t\t
    \r\n\r\n \r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{symbol}\r\n\t\t\t\t\t\t\t\t\t{roundNumberPipDigit(pnlTick.freeMargin, 2)}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{symbol}\r\n\t\t\t\t\t\t\t\t\t{roundNumberPipDigit(credit, 2)}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileFooterHeader;\r\n","import React from 'react';\r\nimport {shallowEqual, useSelector} from 'react-redux';\r\n\r\nconst arrayLength = arr => {\r\n\treturn Object.keys(arr).length;\r\n};\r\n\r\nexport const CounterOpenPosition = () => {\r\n\tconst {positions} = useSelector(state => state.account.positions.open,\r\n\t\t\tshallowEqual);\r\n\tconst quantity = arrayLength(positions);\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t{` (${quantity})`}\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport const CounterPendingOrders = () => {\r\n\tconst {positions} = useSelector(state => state.account.positions.pending,\r\n\t\t\tshallowEqual);\r\n\tconst quantity = arrayLength(positions);\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t{` (${quantity})`}\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport const CounterClosedPosition = () => {\r\n\tconst {positions, isGetAllRequsted} = useSelector(\r\n\t\t\tstate => state.account.positions.closed, shallowEqual);\r\n\tconst quantity = arrayLength(positions);\r\n\r\n\tif (!isGetAllRequsted) {\r\n\t\t// return ;\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t\t\t{` (${quantity})`}\r\n\t\t\t\t\r\n\t);\r\n};\r\n\r\nconst MobilePositionCount = {\r\n\tCounterOpenPosition,\r\n\tCounterPendingOrders,\r\n\tCounterClosedPosition,\r\n};\r\n\r\nexport default MobilePositionCount;\r\n\r\n\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport {useTranslation} from 'react-i18next';\r\n\r\nimport {getRenderColumn} from '../../../helpers/position.helpers';\r\n\r\nconst MobileOpenPositionHead = ({columns, type = 'open', sort}) => {\r\n\tconst {t} = useTranslation();\r\n\treturn (\r\n\t\t\t
    \r\n\r\n\t\t\t\t{/*instrument*/}\r\n\t\t\t\t{getRenderColumn(columns, 'instrument') && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('InstrumetInfo.Details.Instrument')}\r\n\t\t\t\t\t\t

    \r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{/*action*/}\r\n\t\t\t\t{getRenderColumn(columns, 'type') && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('InstrumetInfo.Details.Type')}\r\n\t\t\t\t\t\t

    \r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{/*amount*/}\r\n\t\t\t\t{getRenderColumn(columns, 'amount') && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('InstrumetInfo.Details.Amount')}\r\n\t\t\t\t\t\t

    \r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{/*price*/}\r\n\t\t\t\t{getRenderColumn(columns, 'price') && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('InstrumetInfo.Details.Price')}\r\n\t\t\t\t\t\t

    \r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{/*current price*/}\r\n\t\t\t\t{getRenderColumn(columns, 'currentPrice') && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('Pending.CurrentPrice')}\r\n\t\t\t\t\t\t

    \r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{/*profit*/}\r\n\t\t\t\t{getRenderColumn(columns, 'profit') && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('InstrumetInfo.Details.Profit')}\r\n\t\t\t\t\t\t

    \r\n\t\t\t\t)}\r\n\t\t\t\t{/*copied*/}\r\n\t\t\t\t{getRenderColumn(columns, 'copied') && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('InstrumetInfo.Details.CopiedFrom')}\r\n\t\t\t\t\t\t

    \r\n\t\t\t\t)}\r\n\r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nMobileOpenPositionHead.defaultProps = {\r\n\tcolumns: [],\r\n\ttype: 'open',\r\n};\r\n\r\nMobileOpenPositionHead.propType = {\r\n\tcolumns: PropTypes.array,\r\n\ttype: PropTypes.string,\r\n};\r\n\r\nexport default MobileOpenPositionHead;\r\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.5528 10.1961C12.3666 10.1961 12.1805 10.1249 12.0386 9.98308C11.7542 9.69878 11.7542 9.23909 12.0386 8.95479L13.5077 7.48571C14.1775 6.82242 14.5455 5.93661 14.5455 4.98901C14.5455 3.04068 12.96 1.45456 11.011 1.45456C10.0641 1.45456 9.17827 1.82249 8.51657 2.49018L7.04524 3.96138C6.76093 4.24582 6.30125 4.24582 6.01694 3.96138C5.73263 3.67707 5.73263 3.21739 6.01694 2.93308L7.48601 1.46335C8.42123 0.520807 9.67364 0 11.011 0C13.7622 0 16 2.23783 16 4.98901C16 6.32785 15.4792 7.57946 14.5331 8.51694L13.0663 9.98308C12.9245 10.1249 12.739 10.1961 12.5528 10.1961Z\",\n fill: \"inherit\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.98901 15.9998C2.23783 15.9998 0 13.7619 0 11.0108C0 9.67193 0.520807 8.42032 1.46694 7.48284L2.93375 6.0167C3.21819 5.73239 3.67774 5.73239 3.96218 6.0167C4.24649 6.301 4.24649 6.76069 3.96218 7.04499L2.49311 8.51406C1.82249 9.17736 1.45456 10.0632 1.45456 11.0108C1.45456 12.9591 3.04001 14.5452 4.98901 14.5452C5.93594 14.5452 6.82175 14.1773 7.48345 13.5096L8.95479 12.0384C9.23909 11.754 9.69878 11.754 9.98308 12.0384C10.2674 12.3227 10.2674 12.7824 9.98308 13.0667L8.51401 14.5366C7.5788 15.479 6.32652 15.9998 4.98901 15.9998Z\",\n fill: \"inherit\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.54183 7.18517C9.35567 7.18517 9.1695 7.11393 9.02768 6.97211C8.74338 6.6878 8.74338 6.22812 9.02768 5.94381L10.3949 4.57661C10.6793 4.29217 11.1389 4.29217 11.4233 4.57661C11.7076 4.86092 11.7076 5.3206 11.4233 5.60491L10.056 6.97211C9.91416 7.11393 9.728 7.18517 9.54183 7.18517Z\",\n fill: \"inherit\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.09076 11.6361C4.9046 11.6361 4.7183 11.5649 4.57661 11.4231C4.29217 11.1386 4.29217 10.6791 4.57661 10.3946L5.94381 9.02744C6.22812 8.74313 6.6878 8.74313 6.97211 9.02744C7.25655 9.31174 7.25655 9.77143 6.97211 10.0557L5.60491 11.4231C5.46309 11.5649 5.27692 11.6361 5.09076 11.6361Z\",\n fill: \"inherit\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.2725 16.0018C15.0863 16.0018 14.9002 15.9306 14.7584 15.7887L0.21333 1.24358C-0.0711098 0.959273 -0.0711098 0.499589 0.21333 0.215283C0.497636 -0.0691568 0.957186 -0.0691568 1.24163 0.215283L15.7868 14.7603C16.0711 15.0448 16.0711 15.5043 15.7868 15.7887C15.645 15.9306 15.4587 16.0018 15.2725 16.0018Z\",\n fill: \"inherit\"\n});\n\nvar SvgIconUnlink = function SvgIconUnlink(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 17,\n viewBox: \"0 0 16 17\",\n fill: \"white\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconUnlink, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon-unlink.0fc89a8a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.1521 4.37207H2.05674C0.921802 4.37207 0 5.25781 0 6.34833V23.0237C0 24.1142 0.921802 25 2.05674 25H14.1521C15.287 25 16.2088 24.1142 16.2088 23.0237V6.34833C16.2035 5.25781 15.2817 4.37207 14.1521 4.37207ZM14.7648 23.0186C14.7648 23.3463 14.4877 23.6125 14.1467 23.6125H2.05141C1.7104 23.6125 1.43332 23.3463 1.43332 23.0186V6.34833C1.43332 6.02066 1.7104 5.75443 2.05141 5.75443H14.1467C14.4877 5.75443 14.7648 6.02066 14.7648 6.34833V23.0186Z\",\n fill: \"inherit\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.7774 0H6.6821C5.54717 0 4.62537 0.885735 4.62537 1.97626C4.62537 2.36025 4.94507 2.66744 5.34469 2.66744C5.74432 2.66744 6.06402 2.36025 6.06402 1.97626C6.06402 1.64859 6.34109 1.38236 6.6821 1.38236H18.7774C19.1184 1.38236 19.3955 1.64859 19.3955 1.97626V18.6516C19.3955 18.9793 19.1184 19.2455 18.7774 19.2455C18.3778 19.2455 18.0581 19.5527 18.0581 19.9367C18.0581 20.3207 18.3778 20.6279 18.7774 20.6279C19.9124 20.6279 20.8342 19.7422 20.8342 18.6516V1.97626C20.8342 0.885735 19.9124 0 18.7774 0Z\",\n fill: \"inherit\"\n});\n\nvar SvgIconCopy = function SvgIconCopy(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 21,\n height: 25,\n viewBox: \"0 0 21 25\",\n fill: \"#fff\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconCopy, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon-copy.65e182b0.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.12996 7.82509C7.90893 7.82509 9.35123 6.07337 9.35123 3.91257C9.35123 1.75173 8.87762 0 6.12996 0C3.3822 0 2.90869 1.75173 2.90869 3.91257C2.90874 6.07337 4.35098 7.82509 6.12996 7.82509Z\",\n fill: \"inherit\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.2067 13.6411C12.1471 9.87683 11.6555 8.80423 7.89349 8.12524C7.89349 8.12524 7.36383 8.80001 6.12954 8.80001C4.89525 8.80001 4.36569 8.12524 4.36569 8.12524C0.644737 8.79677 0.123132 9.8535 0.054574 13.5188C0.0489982 13.8181 0.0464283 13.8338 0.0454102 13.799C0.0456041 13.8641 0.0458951 13.9845 0.0458951 14.1945C0.0458951 14.1945 0.941564 16 6.12959 16C11.3176 16 12.2134 14.1945 12.2134 14.1945C12.2134 14.0596 12.2135 13.9657 12.2136 13.902C12.2126 13.9235 12.2105 13.8818 12.2067 13.6411Z\",\n fill: \"inherit\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.5999 7.12689C12.0448 7.12689 13.2161 5.70419 13.2161 3.94921C13.2161 2.19419 12.8315 0.771484 10.5999 0.771484C10.2245 0.771484 9.90153 0.811872 9.62366 0.887267C10.1391 1.83748 10.2097 2.99163 10.2097 3.9129C10.2097 4.95601 9.92698 5.9519 9.40625 6.77649C9.76417 7 10.1697 7.12689 10.5999 7.12689Z\",\n fill: \"inherit\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.536 11.8497C15.4875 8.79248 15.0883 7.92135 12.0328 7.36987C12.0328 7.36987 11.6027 7.91795 10.6002 7.91795C10.5588 7.91795 10.5186 7.91669 10.479 7.9149C11.116 8.20207 11.6954 8.60193 12.1221 9.18705C12.8598 10.1986 13.0294 11.5575 13.0644 13.5537C15.1201 13.1475 15.5414 12.2993 15.5414 12.2993C15.5414 12.1887 15.5414 12.1129 15.5415 12.0611C15.5407 12.0793 15.539 12.0466 15.536 11.8497Z\",\n fill: \"inherit\"\n});\n\nvar SvgIconUsers = function SvgIconUsers(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"white\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgIconUsers, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icon-users.42b68931.svg\";\nexport { ForwardRef as ReactComponent };","import React, {useCallback, useMemo} from 'react';\r\nimport clsx from 'clsx';\r\n\r\nimport IconHide from '@material-ui/icons/VisibilityOffOutlined';\r\nimport IconMoreVert from '@material-ui/icons/MoreVert';\r\nimport IconArrowRight from '@material-ui/icons/KeyboardArrowRight';\r\nimport IconArrowDown from '@material-ui/icons/KeyboardArrowDown';\r\nimport {ReactComponent as IconCopy} from '../../assets/icons/icon-copy.svg';\r\nimport {ReactComponent as IconUsers} from '../../assets/icons/icon-users.svg';\r\n\r\nconst MobileButtonIcon = props => {\r\n\tconst {type, onClick, className, style, isActive, disabled, stop} = props;\r\n\r\n\tconst handleClick = useCallback(e => {\r\n\t\te && e.preventDefault();\r\n\t\tif (stop) {\r\n\t\t\te && e.stopPropagation();\r\n\t\t}\r\n\t\tif (disabled) return null;\r\n\t\tonClick && onClick(e);\r\n\t}, [onClick, disabled, stop]);\r\n\r\n\tconst renderIcon = useMemo(() => {\r\n\t\tswitch (type) {\r\n\t\t\tcase 'arrow' :\r\n\t\t\t\treturn isActive ? : ;\r\n\t\t\tcase 'arrow-right' :\r\n\t\t\t\treturn ;\r\n\t\t\tcase 'arrow-down' :\r\n\t\t\t\treturn ;\r\n\t\t\tcase 'hide':\r\n\t\t\t\treturn ;\r\n\t\t\tcase 'copy':\r\n\t\t\t\treturn ;\r\n\t\t\tcase 'more':\r\n\t\t\t\treturn ;\r\n\t\t\tcase 'user':\r\n\t\t\t\treturn ;\r\n\t\t\tdefault:\r\n\t\t\t\treturn '';\r\n\t\t}\r\n\t}, [type, isActive]);\r\n\r\n\tconst classes = useMemo(() => {\r\n\t\tlet typeClass = '';\r\n\t\tlet typeStyle = {};\r\n\t\tswitch (type) {\r\n\t\t\tcase 'more':\r\n\t\t\t\ttypeStyle = {width: '4px'};\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\ttypeClass = '';\r\n\t\t}\r\n\t\treturn {\r\n\t\t\tclassName: clsx('mobile-button-icon',\r\n\t\t\t\t\tdisabled && 'disabled',\r\n\t\t\t\t\tisActive && 'active',\r\n\t\t\t\t\ttypeClass,\r\n\t\t\t\t\tclassName,\r\n\t\t\t),\r\n\t\t\tstyle: {...style, ...typeStyle},\r\n\t\t};\r\n\t}, [isActive, type, className]);\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t{renderIcon}\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nMobileButtonIcon.defaultProps = {\r\n\ttype: 'default',\r\n\tclassName: '',\r\n\tstyle: {},\r\n\tisActive: false,\r\n\tdisabled: false,\r\n\tstop: false,\r\n};\r\n\r\nexport default MobileButtonIcon;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst MobileClosedPositionActiveRow = ({children}) => {\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t{children}\r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nMobileClosedPositionActiveRow.defaultProps = {\r\n\tchildren: <>,\r\n};\r\n\r\nMobileClosedPositionActiveRow.propTypes = {\r\n\tchildren: PropTypes.node,\r\n};\r\n\r\nexport default MobileClosedPositionActiveRow;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst MobileClosedPositionActiveBlock = ({title, data}) => {\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t{title}\r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t{data}\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nMobileClosedPositionActiveBlock.defaultProps = {\r\n\ttitle: '',\r\n\tdata: '',\r\n};\r\n\r\nMobileClosedPositionActiveBlock.propTypes = {\r\n\ttitle: PropTypes.string,\r\n\tdata: PropTypes.oneOfType([\r\n\t\tPropTypes.string,\r\n\t\tPropTypes.number,\r\n\t\tPropTypes.node,\r\n\t]),\r\n};\r\n\r\nexport default MobileClosedPositionActiveBlock;\r\n","import React, {useCallback, useMemo} from 'react';\r\nimport {useSelector} from 'react-redux';\r\nimport {useTranslation} from 'react-i18next';\r\n\r\nimport MobileClosedPositionActiveRow from './MobileClosedPositionActiveRow';\r\nimport MobileClosedPositionActiveBlock from './MobileClosedPositionActiveBlock';\r\n\r\nimport {formatDate} from '../../../../UI/utilsUI/formatTime';\r\nimport FormatProfitSwapCommision\r\n\tfrom '../../../../UI/utilsUI/FormatProfitSwapCommision';\r\nimport useTheme from '../../../context/contextHook/useTheme';\r\n\r\nconst MobileClosedPositionActive = props => {\r\n\tconst {\r\n\t\topenTimeS,\r\n\t\tcloseTimeS,\r\n\t\topenRate,\r\n\t\tcloseRate,\r\n\t\tcommission,\r\n\t\tswaps,\r\n\t\tTakeProfit,\r\n\t\tStopLoss,\r\n\t} = props;\r\n\r\n\tconst {Profit} = useSelector(state => state.brand.theme);\r\n\tconst {isDarkTheme} = useTheme();\r\n\r\n\tconst {Positive, Negative, Neutral} = useMemo(() => {\r\n\t\treturn Profit;\r\n\t}, [Profit]);\r\n\r\n\tconst renderProfit = useCallback(value => {\r\n\t\treturn
    \r\n\t\t\t\r\n\t\t
    ;\r\n\t}, [Positive, Negative, Neutral, isDarkTheme]);\r\n\r\n\tconst openTime = useMemo(() => {\r\n\t\treturn formatDate(openTimeS);\r\n\t}, [openTimeS]);\r\n\r\n\tconst closeTime = useMemo(() => {\r\n\t\treturn formatDate(closeTimeS);\r\n\t}, [closeTimeS]);\r\n\r\n\tconst {t} = useTranslation();\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t{/*ROW 1*/}\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t
    \r\n\r\n\t\t\t\t{/*ROW 2*/}\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t
    \r\n\r\n\t\t\t\t{/*ROW 3*/}\r\n\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileClosedPositionActive;\r\n","import React, {useCallback, useRef} from 'react';\r\n\r\nconst MobileSlidePosition = ({isSlide, children, threshold}) => {\r\n\tconst rowRef = useRef();\r\n\r\n\tconst maxScroll = useCallback(item => {\r\n\t\tif (!item) return threshold;\r\n\t\treturn item.scrollWidth - item.clientWidth;\r\n\t}, [threshold]);\r\n\r\n\tconst handleSwipeLeft = useCallback(() => {\r\n\t\tconst item = rowRef?.current;\r\n\t\tconst rect = item?.getBoundingClientRect();\r\n\t\titem && item.scrollTo({\r\n\t\t\ttop: 0,\r\n\t\t\tleft: rect.width,\r\n\t\t\tbehavior: 'smooth',\r\n\t\t});\r\n\t}, [rowRef]);\r\n\r\n\tconst handleSwipeRight = useCallback(() => {\r\n\t\tconst item = rowRef?.current;\r\n\t\tconst rect = item?.getBoundingClientRect();\r\n\t\titem && item.scrollTo({\r\n\t\t\ttop: 0,\r\n\t\t\tleft: -rect.width,\r\n\t\t\tbehavior: 'smooth',\r\n\t\t});\r\n\t}, [rowRef]);\r\n\r\n\tconst handleSwipe = useCallback((start, end) => {\r\n\t\tconst item = rowRef?.current;\r\n\t\tif (!item) return null;\r\n\t\tconst maxS = maxScroll(item);\r\n\t\tif (end - start < -(maxS * 0.75)) {\r\n\t\t\thandleSwipeLeft();\r\n\t\t} else {\r\n\t\t\thandleSwipeRight();\r\n\t\t}\r\n\t}, [rowRef, maxScroll]);\r\n\r\n\tconst handleStart = useCallback(event => {\r\n\t\tconst startX = event.touches[0].clientX;\r\n\r\n\t\tconst handleEnd = evt => {\r\n\t\t\tconst endX = evt.changedTouches[0].clientX;\r\n\t\t\thandleSwipe(startX, endX);\r\n\t\t\tdocument.removeEventListener('touchend', handleEnd);\r\n\t\t};\r\n\r\n\t\tdocument.addEventListener('touchend', handleEnd);\r\n\t}, [handleSwipe]);\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nMobileSlidePosition.defaultProps = {\r\n\tisSlide: true,\r\n\tthreshold: 30,\r\n};\r\n\r\nexport default MobileSlidePosition;\r\n","/* eslint-disable complexity */\r\nimport React, {useCallback, useMemo} from 'react';\r\nimport {useTranslation} from 'react-i18next';\r\nimport clsx from 'clsx';\r\n\r\nimport {ReactComponent as IconUnlink} from '../../../assets/icons/icon-unlink.svg';\r\n\r\nimport {\r\n\tgetRenderColumn,\r\n\trenderType,\r\n\trenderTypeMulti,\r\n} from '../../../helpers/position.helpers';\r\nimport usePosition from '../../../context/contextHook/usePosition';\r\n\r\nimport pubsubSubscription from '../../../../background/repositories/PubsubSubscription';\r\nimport FormatProfitSwapCommision\r\n\tfrom '../../../../UI/utilsUI/FormatProfitSwapCommision';\r\nimport OpenPositionsVirtualCloseRate\r\n\tfrom '../../../../UI/OpenPositions/OpenPositionsVirtualCloseRate';\r\nimport MobileButtonIcon from '../../../components/Buttons/MobileButtonIcon';\r\nimport useProfile from '../../../context/contextHook/useProfile';\r\nimport MobileClosedPositionActive\r\n\tfrom '../MobileClosedPosition/MobileClosedPositionActive';\r\nimport MobileSlidePosition from '../MobileSlidePosition';\r\n\r\nconst MobileOpenPositionItem = props => {\r\n\tconst {\r\n\t\tshowCopiedFrom,\r\n\t\ttradeLinks,\r\n\t\tdeleteOrderData,\r\n\t\tsymbolName,\r\n\t\tactionType,\r\n\t\tamount,\r\n\t\topenRate,\r\n\t\tstopLoss,\r\n\t\ttakeProfit,\r\n\t\tprofit,\r\n\t\tcolumns,\r\n\t\ttpId,\r\n\t\tpositionType = 'open',\r\n\t\tcloseTradeLinks,\r\n\t\thandleOpenRow,\r\n\t\tisActive,\r\n\t\tminHeight,\r\n\t\tmaxHeight,\r\n\t} = props;\r\n\r\n\tconst {profileUser: {openProfileUser}} = useProfile();\r\n\tconst {positionClose, positionUpdate} = usePosition();\r\n\r\n\tconst {t} = useTranslation();\r\n\r\n\tconst profitValueSubscription = pubsubSubscription.subscribeObj(\r\n\t\t\t{key: tpId, repId: 'PNL'});\r\n\r\n\tconst profitValue = useMemo(() => {\r\n\t\tlet profitValue;\r\n\t\tswitch (positionType) {\r\n\t\t\tcase 'open' :\r\n\t\t\t\tprofitValue = profitValueSubscription?.profit;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'closed':\r\n\t\t\t\tprofitValue = profit;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tprofitValue = 0;\r\n\t\t}\r\n\t\treturn profitValue;\r\n\t}, [profitValueSubscription, positionType]);\r\n\r\n\tconst currentCloseTradeLink = useMemo(() => {\r\n\t\tif (!closeTradeLinks) return null;\r\n\t\treturn closeTradeLinks[tpId];\r\n\t}, [closeTradeLinks]);\r\n\r\n\tconst tradeLink = useMemo(() => {\r\n\t\tif (!tradeLinks) return null;\r\n\t\treturn tradeLinks[tpId];\r\n\t}, [tradeLinks]);\r\n\r\n\tconst shouldCopiedUser = useMemo(() => {\r\n\t\tif (positionType === 'open') return tradeLink?.sourceNickName;\r\n\t\tif (positionType === 'closed') return currentCloseTradeLink?.sourceNickName;\r\n\t}, [positionType, tradeLink, currentCloseTradeLink]);\r\n\r\n\tconst shouldCopiedUnlink = useMemo(() => {\r\n\t\tif (positionType === 'open') return !!tradeLink;\r\n\t\tif (positionType === 'closed') return false;\r\n\t}, [positionType, tradeLink]);\r\n\r\n\tconst handleClosePositionClick = (e) => {\r\n\t\te && e.preventDefault();\r\n\t\tif (!positionClose || (positionType === 'closed')) return null;\r\n\t\tconst {handleCloseOpen} = positionClose;\r\n\t\t\r\n\t\tconst closeData = {\r\n\t\t\t...props,\r\n\t\t};\r\n\t\thandleCloseOpen && handleCloseOpen(closeData);\r\n\t};\r\n\r\n\tconst handleDeletePositionClick = useCallback(e => {\r\n\t\te && e.preventDefault();\r\n\t\tdeleteOrderData && deleteOrderData({...props});\r\n\t}, [deleteOrderData]);\r\n\r\n\tconst handleRowClick = useCallback((e, data) => {\r\n\t\te && e.preventDefault();\r\n\t\tif (positionType !== 'closed') return null;\r\n\t\tif (isActive) return handleOpenRow && handleOpenRow(null);\r\n\t\tconst propsData = typeof data !== 'undefined' ? data : props;\r\n\t\treturn handleOpenRow && handleOpenRow(propsData);\r\n\t}, [positionType, handleOpenRow, props]);\r\n\r\n\tconst handleUpdatePosition = useCallback(e => {\r\n\t\te && e.preventDefault();\r\n\t\tif (!positionUpdate || (positionType === 'closed')) return null;\r\n\t\tconst {handleUpdateOpen} = positionUpdate;\r\n\t\thandleUpdateOpen && handleUpdateOpen(props);\r\n\t}, [positionUpdate]);\r\n\r\n\tconst handleOpenProfile = useCallback(e => {\r\n\t\te && e.preventDefault();\r\n\t\te && e.stopPropagation();\r\n\t\thandleRowClick(e, null);\r\n\t\tconst nick = tradeLink?.sourceNickName\r\n\t\t\t\t|| currentCloseTradeLink?.sourceNickName;\r\n\t\tif (!nick) return null;\r\n\t\topenProfileUser && openProfileUser(nick);\r\n\t}, [openProfileUser, tradeLink, handleRowClick, currentCloseTradeLink]);\r\n\r\n\tconst currentType = useMemo(() => {\r\n\t\tconst label = renderType(actionType, positionType === 'pending');\r\n\t\treturn label.transition ? t(label.transition) : label.type;\r\n\t}, [actionType, positionType]);\r\n\r\n\tconst renderActiveItem = useMemo(() => {\r\n\t\tif (!isActive) return null;\r\n\t\tswitch (positionType) {\r\n\t\t\tcase 'closed':\r\n\t\t\t\treturn ;\r\n\t\t\tdefault:\r\n\t\t\t\treturn <>;\r\n\t\t}\r\n\t}, [positionType, isActive]);\r\n\r\n\tconst currentMinHeight = useMemo(() => {\r\n\t\treturn minHeight || '';\r\n\t}, [minHeight]);\r\n\r\n\tconst currentMaxHeight = useMemo(() => {\r\n\t\treturn maxHeight || '';\r\n\t}, [maxHeight]);\r\n\r\n\tconst currentActiveBlockHeight = useMemo(() => {\r\n\t\treturn currentMaxHeight - currentMinHeight;\r\n\t}, [currentMinHeight, currentMaxHeight]);\r\n\r\n\tconst actionTypeColorsClass = useMemo(() => {\r\n\t\tif (positionType) return '';\r\n\t\treturn clsx(actionType === 0 && 'green', actionType === 1 && 'red');\r\n\t}, [positionType, actionType]);\r\n\r\n\tconst isSlideRow = useMemo(() => {\r\n\t\treturn positionType !== 'closed';\r\n\t}, [positionType]);\r\n\r\n\treturn (\r\n\t\t\t//
    \r\n\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{getRenderColumn(columns, 'instrument') && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{symbolName}\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t)}\r\n\r\n\r\n\t\t\t\t\t\t{getRenderColumn(columns, 'type') && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{currentType}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{getRenderColumn(columns, 'amount') && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{amount}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{getRenderColumn(columns, 'price') && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{openRate}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{getRenderColumn(columns, 'stopLoss') && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{stopLoss}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{getRenderColumn(columns, 'takeProfit') && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{takeProfit}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{getRenderColumn(columns, 'currentPrice') && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{getRenderColumn(columns, 'profit') && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{showCopiedFrom && (\r\n\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t{getRenderColumn(columns, 'user') && (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{shouldCopiedUser && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t{getRenderColumn(columns, 'unlink') && (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{shouldCopiedUnlink && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{getRenderColumn(columns, 'arrow') && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{getRenderColumn(columns, 'close') && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{t('InstrumetInfo.Details.Close')}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{getRenderColumn(columns, 'delete') && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{t('InstrumetInfo.Details.Delete')}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\r\n\r\n\t\t\t\t\t{!!isActive && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{renderActiveItem}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileOpenPositionItem;\r\n","import React, {useCallback, useEffect, useMemo} from 'react';\r\nimport {useSelector} from 'react-redux';\r\n\r\nimport MobileOpenPositionHead from './MobileOpenPositionHead';\r\nimport MobileOpenPositionItem from './MobileOpenPositionItem';\r\nimport MobileAutosizer\r\n\tfrom '../../../components/MobileAutosizer/MobileAutosizer';\r\nimport useControls from '../../../context/contextHook/useControls';\r\n\r\nconst MobileOpenPosition = props => {\r\n\tconst {\r\n\t\tsetCloseOrderData,\r\n\t\tsetUpdateOrderData,\r\n\t} = props;\r\n\r\n\tconst {positionControls: {openPosition: {toId, setToId}}} = useControls();\r\n\r\n\tconst statePositions = useSelector(\r\n\t\t\tstate => state.account.positions.open.positions);\r\n\r\n\tconst tradeLinks = useSelector(state => state.account.socialv1.tradeLinks);\r\n\tconst isSocialEnabled = useSelector(\r\n\t\t\t(state) => state.account.socialv1.isEnabled);\r\n\tconst isSocialVisible = useSelector(\r\n\t\t\t(state) => state.account.accountInfo.rightPanelSettings.socialv1.isVisible);\r\n\tconst showCopiedFrom = isSocialEnabled && isSocialVisible;\r\n\r\n\tconst positionOrdered = useMemo(() => {\r\n\t\tconst positionOrdered = [];\r\n\t\tfor (const currPosKey in statePositions) {\r\n\t\t\tconst currPos = statePositions[currPosKey];\r\n\t\t\tpositionOrdered.push(currPos);\r\n\t\t}\r\n\t\treturn positionOrdered.sort((a,b) => b.openTimeS-a.openTimeS);\r\n\t}, [statePositions]);\r\n\r\n\tconst scrollToIndex = useMemo(() => {\r\n\t\treturn positionOrdered.findIndex(pos => pos.id === toId);\r\n\t}, [positionOrdered, toId]);\r\n\r\n\tconst handleSetCloseOrderData = useCallback(data => {\r\n\t\tsetCloseOrderData && setCloseOrderData(data);\r\n\t}, []);\r\n\r\n\tconst handleSetUpdateOrderData = useCallback(data => {\r\n\t\tsetUpdateOrderData && setUpdateOrderData(data);\r\n\t}, [setUpdateOrderData]);\r\n\r\n\tconst renderColumns = useMemo(() => {\r\n\t\treturn [\r\n\t\t\t'instrument',\r\n\t\t\t'type',\r\n\t\t\t'amount',\r\n\t\t\t'profit',\r\n\t\t\t'user',\r\n\t\t\t'close',\r\n\t\t];\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\treturn () => {\r\n\t\t\tsetToId && setToId(null);\r\n\t\t};\r\n\t}, [setToId]);\r\n\r\n\tconst renderRow = useCallback(data => {\r\n\t\tconst {item, props} = data;\r\n\t\treturn (\r\n\t\t\t\t\r\n\t\t);\r\n\t}, [renderColumns]);\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileOpenPosition;\r\n","import React, {useRef} from 'react';\r\nimport clsx from 'clsx';\r\n\r\nimport useClickOutside from '../../hook/useClickOutside';\r\n\r\nconst MobileModal = ({children, onClose, isOpen, className}) => {\r\n\tconst backdropRef = useRef(null);\r\n\r\n\tuseClickOutside(backdropRef, () => {\r\n\t\tonClose && onClose();\r\n\t});\r\n\r\n\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{isOpen && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t{children}\r\n\t\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileModal;\r\n","import React, {useCallback, useMemo, useState} from 'react';\r\nimport {shallowEqual, useSelector} from 'react-redux';\r\nimport {useTranslation} from 'react-i18next';\r\nimport clsx from 'clsx';\r\n\r\nimport MobileModal from '../../components/MobileModal/MobileModal';\r\nimport MobileButton from '../../components/Buttons/MobileButton';\r\n\r\nimport { CommandFactory } from '../../../background/commands/CommandFactory'\r\n\r\nimport MobileOpenPositionHead\r\n\tfrom './MobileOpenPosition/MobileOpenPositionHead';\r\nimport MobileAutosizer from '../../components/MobileAutosizer/MobileAutosizer';\r\nimport MobileOpenPositionItem\r\n\tfrom './MobileOpenPosition/MobileOpenPositionItem';\r\nimport usePosition from '../../context/contextHook/usePosition';\r\n\r\nconst MobilePendingOrders = () => {\r\n\tconst [deleteDate, setDeleteData] = useState(null);\r\n\tconst [commandError, setCommandError] = useState('');\r\n\r\n\tconst {positionUpdate} = usePosition()\r\n\tconst {t} = useTranslation();\r\n\r\n\tconst {positions} = useSelector(\r\n\t\t\tstate => state.account.positions.pending, shallowEqual);\r\n\r\n\tconst positionsToRender = useMemo(() => {\r\n\t\tconst positionsToRender = [];\r\n\t\tfor (const key in positions) {\r\n\t\t\tconst position = positions[key];\r\n\t\t\tpositionsToRender.push(position);\r\n\t\t}\r\n\t\tpositionsToRender.sort((a,b) => b.openTimeS-a.openTimeS);\r\n\t\treturn positionsToRender;\r\n\t}, [positions]);\r\n\r\n\tconst renderColumns = useMemo(() => {\r\n\t\treturn [\r\n\t\t\t'instrument',\r\n\t\t\t'type',\r\n\t\t\t'amount',\r\n\t\t\t'price',\r\n\t\t\t'currentPrice',\r\n\t\t\t'delete',\r\n\t\t];\r\n\t}, [positionsToRender]);\r\n\r\n\tconst handleSetUpdateOrderData = useCallback(data => {\r\n\t\tif (!positionUpdate) return null;\r\n\t\tconst {handleUpdateOpen} = positionUpdate\r\n\t\thandleUpdateOpen && handleUpdateOpen(data);\r\n\t}, [positionUpdate]);\r\n\r\n\tconst handleDeleteOrderData = useCallback(data => {\r\n\t\tsetDeleteData(data);\r\n\t}, []);\r\n\r\n\tconst handleDeleteConfirmClose = useCallback(() => {\r\n\t\tsetDeleteData(null);\r\n\t}, []);\r\n\r\n\tconst handleButtonConfirm = useCallback(async () => {\r\n\t\tconst cmd = deleteDate?.deletePedingCMD;\r\n\t\tsetCommandError(null);\r\n\t\ttry {\r\n\t\t\tconst command = CommandFactory.createCommand(cmd);\r\n\t\t\tconst res = await command.execute();\r\n\r\n\t\t\tif (res.isSuccessful) {\r\n\t\t\t\thandleDeleteConfirmClose();\r\n\t\t\t}\r\n\t\t\tif (!res.isSuccessful) {\r\n\t\t\t\tsetCommandError(res.result ?? 'trading.error.GeneralError');\r\n\t\t\t}\r\n\t\t} catch (err) {\r\n\t\t\tsetCommandError('trading.error.GeneralError');\r\n\t\t}\r\n\t}, [deleteDate]);\r\n\r\n\tif (!positionsToRender || !positionsToRender.length) {\r\n\t\treturn (\r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t{/*TODO: locale this*/}\r\n\t\t\t\t\t\tNo Pending Orders\r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t);\r\n\t}\r\n\r\n\tconst renderRow = data => {\r\n\t\tconst {item, props} = data;\r\n\t\treturn (\r\n\t\t\t\t\r\n\t\t);\r\n\t};\r\n\r\n\treturn (\r\n\t\t\t<>\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\r\n\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t{commandError && (\r\n\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t{t(commandError)}\r\n\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{!commandError && (\r\n\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t{t('InstrumetInfo.Details.SureDelete')}\r\n\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobilePendingOrders;\r\n","import React, {useCallback} from 'react';\r\nimport {useTranslation} from 'react-i18next';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst MobileModalError = ({isOpen, children, onClose, title, subtitle}) => {\r\n\tconst {t} = useTranslation();\r\n\r\n\tconst handleClose = useCallback(e => {\r\n\t\tonClose && onClose(e);\r\n\t}, [onClose]);\r\n\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{isOpen && (\r\n\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t\t{title}\r\n\t\t\t\t\t\t\t\t\t

    \r\n\r\n\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t\t{subtitle}\r\n\t\t\t\t\t\t\t\t\t

    \r\n\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t{children}\r\n\t\t\t\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{t('General.Close')}\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t)}\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nMobileModalError.defaultProps = {\r\n\ttitle: '',\r\n\tsubtitle: '',\r\n\tisOpen: true,\r\n\r\n};\r\n\r\nMobileModalError.propTypes = {\r\n\ttitle: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\r\n\tsubtitle: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\r\n\tchildren: PropTypes.node,\r\n\tonClose: PropTypes.func.isRequired,\r\n\tisOpen: PropTypes.bool,\r\n};\r\n\r\nexport default MobileModalError;\r\n","import React, {useCallback, useEffect, useMemo, useState} from 'react';\r\nimport {shallowEqual, useSelector} from 'react-redux';\r\nimport {useTranslation} from 'react-i18next';\r\nimport clsx from 'clsx';\r\n\r\nimport { CommandFactory } from '../../../../background/commands/CommandFactory';\r\nimport {TIME_SWITCH__POSITION} from '../../../constants/options';\r\n\r\nimport MobileOpenPositionHead\r\n\tfrom '../MobileOpenPosition/MobileOpenPositionHead';\r\nimport MobileAutosizer\r\n\tfrom '../../../components/MobileAutosizer/MobileAutosizer';\r\nimport MobileOpenPositionItem\r\n\tfrom '../MobileOpenPosition/MobileOpenPositionItem';\r\nimport MobileLoader from '../../../components/MobileLoader/MobileLoader';\r\nimport MobileNothingFound\r\n\tfrom '../../../components/MobileEmpty/MobileNothingFound';\r\nimport MobileModalError from '../../../components/MobileModal/MobileModalError';\r\nimport {PreparePNL} from '../../../../UI/PNL/PNL';\r\n\r\nconst MobileClosedPosition = () => {\r\n\r\n\tconst [timeSelected, setTimeSelected] = useState(TIME_SWITCH__POSITION[3]);\r\n\tconst [currentItem, setCurrentItem] = useState(null);\r\n\tconst [isLoading, setIsLoading] = useState(false);\r\n\tconst [closedPosition, setClosedPosition] = useState([]);\r\n\tconst [requestError, setRequestError] = useState(null);\r\n\tconst [showTotalProfit, setShowTotalProfit] = useState(false);\r\n\tconst [totalProfit, setTotalProfit] = useState(null);\r\n\r\n\tconst {t} = useTranslation();\r\n\r\n\tconst {positions, getAllCommand, isGetAllRequsted} = useSelector(\r\n\t\t\tstate => state.account.positions.closed, shallowEqual);\r\n\r\n\tconst {\r\n\t\trightPanelSettings: {socialv1: {isVisible}},\r\n\t\tcurrency: {symbol},\r\n\t\tdrawerSettings: {closePositionsTab},\r\n\t} = useSelector(state => state.account.accountInfo, shallowEqual);\r\n\r\n\tconst {\r\n\t\ttradeLinks,\r\n\t\tisEnabled,\r\n\t\tcloseTradeLinks,\r\n\t\tcopyRelationsCommands: {getClosedPositionsLinksCommand},\r\n\t} = useSelector(state => state.account.socialv1, shallowEqual);\r\n\r\n\tconst loading = useMemo(() => {\r\n\t\treturn {\r\n\t\t\ton: () => setIsLoading(true),\r\n\t\t\toff: () => setIsLoading(false),\r\n\t\t};\r\n\t}, [setIsLoading]);\r\n\r\n\tconst error = useMemo(() => {\r\n\t\treturn {\r\n\t\t\tlinks: err => {\r\n\t\t\t\tsetIsLoading({title: 'Links request error', error: err});\r\n\t\t\t},\r\n\t\t\tposition: err => {\r\n\t\t\t\tsetIsLoading({title: 'Closed Positions request error', error: err});\r\n\t\t\t},\r\n\t\t\tclear: () => setIsLoading(null),\r\n\t\t};\r\n\t}, [setRequestError]);\r\n\r\n\tconst showCopiedFrom = useMemo(() => {\r\n\t\treturn isEnabled && isVisible;\r\n\t}, [isEnabled, isVisible]);\r\n\r\n\tconst positionsToRender = useMemo(() => {\r\n\t\tconst positionsToRender = [];\r\n\t\tfor (const obj in positions) {\r\n\t\t\tpositionsToRender.push(positions[obj]);\r\n\t\t}\r\n\t\tpositionsToRender.sort((a,b) => b.closeTimeUTC-a.closeTimeUTC);\r\n\t\tif (isGetAllRequsted) {\r\n\t\t\tsetClosedPosition(positionsToRender);\r\n\t\t}\r\n\t\treturn positionsToRender;\r\n\t}, [positions, isGetAllRequsted]);\r\n\r\n\tconst handleTimeChange = useCallback(option => {\r\n\t\tif (!option) return null;\r\n\t\tsetTimeSelected(option);\r\n\t}, []);\r\n\r\n\tconst handleGetCloseLinks = useCallback(async () => {\r\n\t\tconst commandObject = getClosedPositionsLinksCommand;\r\n\t\tif (!commandObject) return;\r\n\t\tconst command = CommandFactory.createCommand(commandObject);\r\n\t\treturn await command.execute();\r\n\t}, [getClosedPositionsLinksCommand]);\r\n\r\n\tconst handleGetClosePosition = useCallback(async () => {\r\n\t\tif (isGetAllRequsted) return;\r\n\t\tconst command = CommandFactory.createCommand(getAllCommand);\r\n\t\tloading.on();\r\n\t\ttry {\r\n\t\t\tconst res = await command.execute({period: 1});\r\n\t\t\tif (res.isSuccessful) {\r\n\t\t\t\tconst pos = res.payload?.closedPositions?.positions;\r\n\t\t\t\tsetClosedPosition(pos);\r\n\t\t\t}\r\n\t\t\tif (!res.isSuccessful) {\r\n\t\t\t\terror.position('Closed position request error');\r\n\t\t\t}\r\n\t\t\tloading.off();\r\n\t\t} catch (err) {\r\n\t\t\tloading.off();\r\n\t\t\terror.position(err?.message);\r\n\t\t}\r\n\t}, [getAllCommand, isGetAllRequsted, setClosedPosition, loading, error]);\r\n\r\n\tconst handleOpenRow = useCallback(props => {\r\n\t\tsetCurrentItem(props);\r\n\t}, [setCurrentItem]);\r\n\r\n\tconst renderColumns = useMemo(() => {\r\n\t\treturn [\r\n\t\t\t'instrument',\r\n\t\t\t'type',\r\n\t\t\t'amount',\r\n\t\t\t'profit',\r\n\t\t\t'user',\r\n\t\t\t'arrow',\r\n\t\t];\r\n\t}, [positionsToRender]);\r\n\r\n\tconst sortPosition = useMemo(() => {\r\n\t\tif (!closedPosition.length) return [];\r\n\t\treturn closedPosition.sort((a,b) => b.closeTimeUTC-a.closeTimeUTC);\r\n\t}, [closedPosition]);\r\n\r\n\tconst handleTotalProfit = useCallback(() => {\r\n\t\tlet total = 0;\r\n\t\tif (closePositionsTab.totalProfitType === 'includeCommissions') {\r\n\t\t\tfor (const position of sortPosition) {\r\n\t\t\t\ttotal += position.profit + position.commission + position.swaps;\r\n\t\t\t}\r\n\t\t\tsetTotalProfit(total);\r\n\t\t\tsetShowTotalProfit(true);\r\n\t\t} else if (closePositionsTab.totalProfitType === 'excludeCommissions') {\r\n\t\t\tfor (const position of sortPosition) {\r\n\t\t\t\ttotal += position.profit;\r\n\t\t\t}\r\n\t\t\tsetTotalProfit(total);\r\n\t\t\tsetShowTotalProfit(true);\r\n\t\t}\r\n\t}, [sortPosition, closePositionsTab, closePositionsTab.totalProfitType]);\r\n\r\n\tuseEffect(() => {\r\n\t\thandleTotalProfit();\r\n\t}, [handleTotalProfit]);\r\n\r\n\tuseEffect(() => {\r\n\t\thandleGetCloseLinks();\r\n\t\thandleGetClosePosition();\r\n\t}, []);\r\n\r\n\tconst renderRow = data => {\r\n\t\tconst {item, props} = data;\r\n\t\treturn (\r\n\t\t\t\t\r\n\t\t);\r\n\t};\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\r\n\t\t\t\t{!!closedPosition.length && (\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t\t{showTotalProfit && (\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t\t\t{t('InstrumetInfo.Details.Profit')}\r\n\t\t\t\t\t\t\t\t\t\t\t: \r\n\t\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t)}\r\n\r\n\t\t\t\r\n\r\n\t);\r\n};\r\n\r\nexport default MobileClosedPosition;\r\n","import React, {useCallback, useMemo, useState} from 'react';\r\nimport {useTranslation} from 'react-i18next';\r\n\r\nimport MobileAvatarIcon from '../../MobileAvatarIcon';\r\nimport MobileButtonIcon from '../../Buttons/MobileButtonIcon';\r\nimport MobileLoader from '../../MobileLoader/MobileLoader';\r\n\r\nconst MobileSocialWatchItem = props => {\r\n\tconst {\r\n\t\tAvatarURL,\r\n\t\tNickname,\r\n\t\tNumberOfCopiedPositions,\r\n\t\thandleCopy,\r\n\t\thandleUnwatch,\r\n\t\thandleOpen,\r\n\t\tAvatar,\r\n\t\tCopiersCount,\r\n\t\tIsCopyAllowed,\r\n\t\tCopyType,\r\n\t\tremoveRow,\r\n\t} = props;\r\n\r\n\tconst [isLoading, setIsLoading] = useState(false);\r\n\r\n\tconst {t} = useTranslation();\r\n\r\n\tconst alreadyCopied = useMemo(() => {\r\n\t\treturn CopyType === 1 || CopyType === 2;\r\n\t}, [CopyType]);\r\n\r\n\tconst alreadyWatched = useMemo(() => {\r\n\t\treturn CopyType === 4 || alreadyCopied;\r\n\t}, [CopyType, alreadyCopied]);\r\n\r\n\tconst getCopiers = useMemo(() => {\r\n\t\treturn NumberOfCopiedPositions || CopiersCount || 0;\r\n\t}, [NumberOfCopiedPositions]);\r\n\r\n\tconst handleClickOpen = useCallback(e => {\r\n\t\te && e.preventDefault();\r\n\t\thandleOpen && handleOpen(Nickname);\r\n\t}, [handleOpen, Nickname]);\r\n\r\n\tconst handleClickUnwatch = useCallback(e => {\r\n\t\te && e.stopPropagation();\r\n\t\tsetIsLoading(true);\r\n\t\thandleUnwatch &&\r\n\t\thandleUnwatch({...props, alreadyWatched})\r\n\t\t\t\t.then(res => {\r\n\t\t\t\t\tif (res?.isSuccessful) {\r\n\t\t\t\t\t\tremoveRow && removeRow();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tsetIsLoading(false);\r\n\t\t\t\t})\r\n\t\t\t\t.catch(err => {\r\n\t\t\t\t\tconsole.error(err);\r\n\t\t\t\t\tsetIsLoading(false);\r\n\t\t\t\t});\r\n\t}, [alreadyWatched, props, handleUnwatch, setIsLoading, Nickname]);\r\n\r\n\tconst handleClickCopy = useCallback(e => {\r\n\t\te && e.stopPropagation();\r\n\t\tif (!IsCopyAllowed) return null;\r\n\t\thandleCopy && handleCopy(Nickname);\r\n\t}, [Nickname, IsCopyAllowed, handleCopy]);\r\n\r\n\treturn (\r\n\t\t\t<>\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t

    {Nickname}

    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{t('Socail.Profile.Copiers').toLowerCase()}\r\n\t\t\t\t\t\t\t\t: \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{getCopiers}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileSocialWatchItem;\r\n","import React, {useCallback} from 'react';\r\n\r\nimport MobileAutosizer from '../../MobileAutosizer/MobileAutosizer';\r\nimport MobileSocialWatchItem from './MobileSocialWatchItem';\r\n\r\nconst MobileSocialWatch = props => {\r\n\tconst {\r\n\t\toptions = [],\r\n\t\thandleUnwatch,\r\n\t\thandleCopy,\r\n\t\thandleOpen,\r\n\t} = props;\r\n\r\n\tconst renderRow = useCallback(data => {\r\n\t\tconst {item, props} = data;\r\n\r\n\t\treturn (\r\n\t\t\t\t\r\n\t\t);\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileSocialWatch;\r\n","import React, {useCallback} from 'react';\r\nimport {shallowEqual, useSelector} from 'react-redux';\r\n\r\nimport {CommandFactory} from '../../background/commands/CommandFactory';\r\n\r\nimport MobileSocialWatch\r\n\tfrom '../components/MobileSocial/MobileSocialWatch/MobileSocialWatch';\r\nimport useProfile from '../context/contextHook/useProfile';\r\nimport useCommunityFetch from '../hook/useFetchData/useCommunityFetch';\r\nimport MobileLoader from '../components/MobileLoader/MobileLoader';\r\nimport MobileNothingFound from '../components/MobileEmpty/MobileNothingFound';\r\n\r\nconst MobileSocialWatchPage = ({isVisible}) => {\r\n\tconst {profileUser: {openProfileUser}} = useProfile();\r\n\r\n\t// const {tradersIWatch} = useStreamConnect(); //TODO: mb this array\r\n\r\n\tconst {updateFollower, removeFollower} = useSelector(\r\n\t\t\tstate => state.account.socialv1.copyRelationsCommands, shallowEqual);\r\n\r\n\tconst {userDetails} = useSelector(state => state.account.socialv1,\r\n\t\t\tshallowEqual);\r\n\r\n\tconst {data, isLoading} = useCommunityFetch(userDetails?.nickname, 0);\r\n\r\n\tconst handleUnwatch = useCallback(async ({Nickname}) => {\r\n\t\tif (!Nickname || !updateFollower || !removeFollower) return null;\r\n\t\tconst userInput = {\r\n\t\t\tguruNickname: Nickname,\r\n\t\t\tamount: 0,\r\n\t\t\tcopyType: 0,\r\n\t\t};\r\n\r\n\t\tconst command = CommandFactory.createCommand(removeFollower);\r\n\r\n\t\ttry {\r\n\t\t\t//TODO: add err handler\r\n\t\t\treturn await command.execute(userInput);\r\n\t\t} catch (err) {\r\n\t\t\tconsole.error(err); //TODO: remove log\r\n\t\t}\r\n\t}, [updateFollower, removeFollower]);\r\n\r\n\tconst handleOpen = useCallback(name => {\r\n\t\tif (!name) return null;\r\n\t\topenProfileUser && openProfileUser(name);\r\n\t}, [openProfileUser]);\r\n\r\n\tconst handleCopy = useCallback(name => {\r\n\t\topenProfileUser && openProfileUser(name, true);\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{isVisible && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t{data?.UserFriends && !data?.UserFriends.length && !isLoading && (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t{data?.UserFriends && !!data?.UserFriends.length && (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileSocialWatchPage;\r\n","import React, {useCallback} from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst MobileButtonRow = ({title, onClick}) => {\r\n\r\n\tconst handleClick = useCallback(e => {\r\n\t\te && e.preventDefault();\r\n\t\te && e.stopPropagation();\r\n\t\tonClick && onClick(e);\r\n\t}, [onClick]);\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t{title}\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nMobileButtonRow.defaultProps = {\r\n\ttitle: '',\r\n};\r\n\r\nMobileButtonRow.propTypes = {\r\n\ttitle: PropTypes.string,\r\n\tonClick: PropTypes.func,\r\n};\r\n\r\nexport default MobileButtonRow;\r\n","import React, {useCallback, useMemo} from 'react';\r\nimport {useTranslation} from 'react-i18next';\r\n\r\nimport MobileAvatarIcon from '../../MobileAvatarIcon';\r\nimport MobileButtonRow from '../../Buttons/MobileButtonRow';\r\n\r\nconst MobileSocialCopyItem = props => {\r\n\tconst {\r\n\t\tAvatar,\r\n\t\tNickname,\r\n\t\tNumberOfCopiedPositions,\r\n\t\tCopiersCount,\r\n\t\thandleOpen,\r\n\t\thandleUncopy,\r\n\t} = props;\r\n\tconst {t} = useTranslation();\r\n\r\n\tconst handleClickOpen = useCallback(e => {\r\n\t\te && e.preventDefault();\r\n\t\te && e.stopPropagation();\r\n\t\thandleOpen && handleOpen(Nickname);\r\n\t}, [handleOpen, Nickname]);\r\n\r\n\tconst handleClickUncopy = useCallback(() => {\r\n\t\thandleUncopy && handleUncopy(Nickname);\r\n\t}, [handleUncopy, Nickname]);\r\n\r\n\tconst getCopiers = useMemo(() => {\r\n\t\treturn NumberOfCopiedPositions || CopiersCount || 0;\r\n\t}, [NumberOfCopiedPositions, CopiersCount]);\r\n\r\n\treturn (\r\n\t\t\t<>\r\n\t\t\t\t\r\n\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t

    {Nickname}

    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{t('Socail.Profile.Copiers').toLowerCase()}\r\n\t\t\t\t\t\t\t\t: \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{getCopiers}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileSocialCopyItem;\r\n","import React, {useCallback} from 'react';\r\n\r\nimport useProfile from '../../../context/contextHook/useProfile';\r\n\r\nimport MobileAutosizer from '../../MobileAutosizer/MobileAutosizer';\r\nimport MobileSocialCopyItem from './MobileSocialCopyItem';\r\nimport useControls from '../../../context/contextHook/useControls';\r\n\r\nconst MobileSocialCopy = ({options}) => {\r\n\r\n\tconst {profileUser: {openProfileUser}} = useProfile();\r\n\tconst {footerControls: {handleClose}} = useControls();\r\n\r\n\tconst handleOpen = useCallback(name => {\r\n\t\tif (!name || !openProfileUser) return null;\r\n\t\topenProfileUser && openProfileUser(name);\r\n\t}, [openProfileUser, handleClose]);\r\n\r\n\tconst handleUncopy = useCallback(name => {\r\n\t\tif (!name || !openProfileUser) return null;\r\n\t\topenProfileUser && openProfileUser(name, true);\r\n\t}, [openProfileUser, handleClose]);\r\n\r\n\tconst renderRow = useCallback(data => {\r\n\t\tconst {item, props} = data;\r\n\r\n\t\treturn (\r\n\t\t\t\t\r\n\t\t);\r\n\t}, []);\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileSocialCopy;\r\n","import React from 'react';\r\nimport {shallowEqual, useSelector} from 'react-redux';\r\n\r\nimport MobileSocialCopy\r\n\tfrom '../components/MobileSocial/MobileSocialCopy/MobileSocialCopy';\r\nimport useCommunityFetch from '../hook/useFetchData/useCommunityFetch';\r\nimport MobileLoader from '../components/MobileLoader/MobileLoader';\r\nimport MobileNothingFound from '../components/MobileEmpty/MobileNothingFound';\r\n\r\nconst MobileSocialCopyPage = ({isVisible}) => {\r\n\r\n\tconst {userDetails} = useSelector(state => state.account.socialv1,\r\n\t\t\tshallowEqual);\r\n\r\n\tconst {data, isLoading} = useCommunityFetch(userDetails?.nickname, 2);\r\n\r\n\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{isVisible && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t{data?.UserFriends && !data?.UserFriends.length && !isLoading && (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t{data?.UserFriends && !!data?.UserFriends.length && (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileSocialCopyPage;\r\n","import React, {useCallback, useEffect, useMemo, useState} from 'react';\r\nimport {useSelector} from 'react-redux';\r\n\r\nimport {getFooterMenu} from '../../helpers/options.helpers';\r\n\r\nimport {\r\n CounterClosedPosition,\r\n CounterOpenPosition,\r\n CounterPendingOrders,\r\n} from '../MobilePosition/MobilePositionCount/MobilePositionCount';\r\n\r\nimport MobileOpenPosition\r\n from '../MobilePosition/MobileOpenPosition/MobileOpenPosition';\r\nimport MobilePendingOrders from '../MobilePosition/MobilePendingOrders';\r\nimport MobileClosedPosition\r\n from '../MobilePosition/MobileClosedPosition/MobileClosedPosition';\r\nimport MobileCarouselMenu\r\n from '../../components/MobileCarousel/MobileCarouselMenu';\r\nimport CarouselTabList from '../../components/MobileCarousel/CarouselTabList';\r\nimport MobileSocialWatchPage from '../../pages/MobileSocialWatchPage';\r\nimport MobileSocialCopyPage from '../../pages/MobileSocialCopyPage';\r\n\r\nconst START_TAB_VALUE = 'open_position';\r\n\r\nconst MobileFooterSection = ({isOpen}) => {\r\n const {\r\n accountInfo: {\r\n rightPanelSettings: {\r\n socialv1: {isVisible},\r\n },\r\n },\r\n socialv1: {isEnabled},\r\n } = useSelector(state => state.account);\r\n\r\n //TODO: handleUnlink popup\r\n const [shouldShowUnlinkPopup, setShoudShowUnlinkPopup] = useState(\r\n {tpId: null, shouldShow: false});\r\n\r\n const isSocialsEnabled = useMemo(() => {\r\n // return false;\r\n return isEnabled && isVisible;\r\n }, [isEnabled, isVisible]);\r\n\r\n const carouselCounter = useMemo(() => {\r\n const counterChildren = [\r\n ,\r\n ,\r\n ,\r\n ];\r\n if (!isSocialsEnabled) return counterChildren;\r\n return [\r\n <>,\r\n <>,\r\n ...counterChildren,\r\n ];\r\n }, [\r\n isSocialsEnabled,\r\n CounterOpenPosition,\r\n CounterPendingOrders,\r\n CounterClosedPosition,\r\n ]);\r\n\r\n //TODO: open position handle unlink\r\n const handleUnlink = useCallback(tpId => {\r\n if (tpId) {\r\n setShoudShowUnlinkPopup(\r\n (prevState) => ({tpId, shouldShow: !prevState.shouldShow}));\r\n } else {\r\n setShoudShowUnlinkPopup(\r\n prevState => ({tpId: null, shouldShow: !prevState.shouldShow}));\r\n }\r\n }, []);\r\n\r\n const carouselList = useMemo(() => {\r\n const listChildren = [\r\n ,\r\n ,\r\n ,\r\n ];\r\n if (!isSocialsEnabled) return listChildren;\r\n return [\r\n ,\r\n ,\r\n ...listChildren,\r\n ];\r\n }, [isSocialsEnabled, handleUnlink]);\r\n\r\n const POSITION_MENU = useMemo(() => {\r\n return getFooterMenu(isSocialsEnabled);\r\n }, [isSocialsEnabled]);\r\n\r\n const startTabPosition = useCallback(() => {\r\n const positionIndex = POSITION_MENU.findIndex(\r\n el => el.value === START_TAB_VALUE);\r\n return isSocialsEnabled\r\n ? positionIndex || 0\r\n : 0;\r\n }, [POSITION_MENU, isSocialsEnabled]);\r\n\r\n const [carouseTab, setCarouselTab] = useState(startTabPosition);\r\n\r\n const handleTabChange = useCallback(option => {\r\n if (!option) return null;\r\n setCarouselTab(option.index);\r\n }, []);\r\n\r\n useEffect(() => {\r\n return () => setCarouselTab(startTabPosition);\r\n }, [startTabPosition]);\r\n\r\n return (\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\nexport default MobileFooterSection;\r\n","import React, {useRef} from 'react';\r\nimport useControls from '../../context/contextHook/useControls';\r\nimport {shallowEqual, useSelector} from 'react-redux';\r\nimport PubsubSubscription from '../../../background/repositories/PubsubSubscription';\r\nimport MobileFooterHeader from './MobileFooterHeader';\r\nimport MobileFooterSection from './MobileFooterSection';\r\nimport MobileSwiper from '../../components/MobileSwiper';\r\n\r\nconst MobileFooterOld = () => {\r\n\r\n\tconst {\r\n\t\tfooterControls: {\r\n\t\t\tisOpen,\r\n\t\t\thandleOpen,\r\n\t\t\tfooterRef,\r\n\t\t\tisVisible,\r\n\t\t},\r\n\t} = useControls();\r\n\r\n\tconst touchRef = useRef(null);\r\n\r\n\tconst {\r\n\t\tfinancial: {balance, credit, margin},\r\n\t\taccountInfo: {currency: {symbol}},\r\n\t} = useSelector(state => state.account, shallowEqual);\r\n\r\n\tconst pnlTick = PubsubSubscription.subscribeObj(\r\n\t\t\t{key: 'MOVINGPNL', repId: 'ACCOUNT_PNL'});\r\n\r\n\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{!!isVisible && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{isOpen && (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileFooterOld;\r\n","import React, {useMemo} from 'react';\r\nimport {shallowEqual, useSelector} from 'react-redux';\r\nimport {useTranslation} from 'react-i18next';\r\nimport depositButtonClickHandler from '../../../UI/utilsUI/depositButtonClickHandler';\r\n\r\nconst MobileMarginAlert = () => {\r\n\tconst {t} = useTranslation();\r\n const { deposit: { depositUrl, getDepositUrlCommand } } = useSelector((state) => (state.account.accountInfo.featuresData));\r\n\tconst {marginStatus} = useSelector(state => state.account.financial,\r\n\t\t\tshallowEqual);\r\n\r\n\tconst isAlert = useMemo(() => {\r\n\t\treturn marginStatus && marginStatus !== 0;\r\n\t}, [marginStatus]);\r\n\r\n const handleDepositClick = () => {\r\n depositButtonClickHandler(depositUrl, getDepositUrlCommand);\r\n };\r\n\r\n\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{!!isAlert && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileMarginAlert;\r\n","import React, {useCallback, useMemo} from 'react';\r\nimport useControls from '../../context/contextHook/useControls';\r\nimport MobileTransition from '../MobileTransition';\r\nimport usePosition from '../../context/contextHook/usePosition';\r\nimport useProfile from '../../context/contextHook/useProfile';\r\n\r\nconst MobileTradeAddButton = () => {\r\n\tconst {tradeControls: {handleOpen, isVisible}} = useControls();\r\n\tconst {positionUpdate: {updateData}} = usePosition();\r\n\tconst {positionClose: {closeData}} = usePosition();\r\n\tconst {profileUser: {profileUserName}} = useProfile();\r\n\r\n\tconst handleButtonClick = useCallback(e => {\r\n\t\te.preventDefault();\r\n\t\thandleOpen && handleOpen();\r\n\t}, [handleOpen]);\r\n\r\n\tconst isVisibleButton = useMemo(() => {\r\n\t\treturn isVisible && !updateData && !profileUserName && !closeData;\r\n\t}, [isVisible, updateData, profileUserName, closeData]);\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t);\r\n};\r\n\r\nexport default MobileTradeAddButton;\r\n","import React, {useCallback} from 'react';\r\nimport clsx from 'clsx';\r\n\r\nimport {Swiper, SwiperSlide} from 'swiper/react';\r\nimport SwiperCore, {Pagination, Virtual} from 'swiper';\r\nimport 'swiper/swiper-bundle.css';\r\n\r\nimport {getAvatarImage} from '../../helpers/options.helpers';\r\n// import DefaultAvatar from '../../assets/avatar.svg';\r\n\r\nSwiperCore.use([Virtual, Pagination]);\r\n\r\nconst MobileCarouselAvatar = ({options, value, onChange}) => {\r\n\r\n\tconst handleChange = useCallback(swiper => {\r\n\t\tconst index = swiper.activeIndex;\r\n\t\tconst option = {\r\n\t\t\tindex,\r\n\t\t\tvalue: options[index],\r\n\t\t};\r\n\t\tonChange && onChange(option);\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t\t{options.map((option, index) => (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{({isActive}) => (\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\"avatar\"/\r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\t\r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileCarouselAvatar;\r\n","import React, {useCallback, useMemo, useRef, useState} from 'react';\r\nimport {useTranslation} from 'react-i18next';\r\nimport {shallowEqual, useSelector} from 'react-redux';\r\n\r\nimport {CommandFactory} from '../../background/commands/CommandFactory';\r\n\r\nimport useControls from '../context/contextHook/useControls';\r\nimport {createAvatarName, getCurrentAvatar} from '../helpers/options.helpers';\r\nimport {AVATARS} from '../constants/options';\r\n\r\nimport MobilePopUpHeader from './MobilePopUp/MobilePopUpHeader';\r\nimport MobilePopUp from './MobilePopUp/MobilePopUp';\r\nimport MobileButtonClose from './Buttons/MobileButtonClose';\r\nimport MobileButton from './Buttons/MobileButton';\r\n\r\nimport MobileCarouselAvatar from './MobileCarousel/MobileCarouselAvatar';\r\nimport MobileSwiper from './MobileSwiper';\r\nimport MobileLoader from './MobileLoader/MobileLoader';\r\n\r\nconst MobileChangeAvatar = () => {\r\n\tconst [isLoading, setIsLoading] = useState(false);\r\n\tconst [currentAvatar, setCurrentAvatar] = useState('');\r\n\r\n\tconst {t} = useTranslation();\r\n\tconst touchRef = useRef(null);\r\n\r\n\tconst {updateAvatarCommand} = useSelector(\r\n\t\t\tstate => state.account.socialv1.registrationCommands, shallowEqual);\r\n\r\n\tconst userDetails = useSelector(\r\n\t\t\tstate => state.account.accountInfo.userDetails, shallowEqual);\r\n\r\n\t//TODO: ?? or\r\n\tconst {userDetails: {avatar}} = useSelector(\r\n\t\t\tstate => state.account.socialv1, shallowEqual);\r\n\r\n\tconst {\r\n\t\tavatarControls: {isOpen, handleClose},\r\n\t\tburgerControls: {handleOpen},\r\n\t} = useControls();\r\n\r\n\tconst handleChangeAvatar = useCallback(props => {\r\n\t\tconst avatarName = createAvatarName(props.value.id);\r\n\t\tsetCurrentAvatar(avatarName);\r\n\t}, [setCurrentAvatar]);\r\n\r\n\tconst handleUpdateClick = useCallback(async () => {\r\n\t\tif (!currentAvatar || !updateAvatarCommand) return null;\r\n\t\tconst userInput = {avatarUrl: currentAvatar};\r\n\t\t\r\n\t\tconst command = CommandFactory.createCommand(updateAvatarCommand);\r\n\t\tsetIsLoading(true);\r\n\t\ttry {\r\n\t\t\tconst res = await command.execute(userInput);\r\n\t\t\tif (!res.isSuccessful) {\r\n\t\t\t\tconsole.error('Profile update error'); //TODO: remove log add err\r\n\t\t\t}\r\n\t\t\tsetIsLoading(false);\r\n\t\t} catch (err) {\r\n\t\t\tsetIsLoading(false);\r\n\t\t\tconsole.error(err); //TODO: remove log add err\r\n\t\t}\r\n\t}, [currentAvatar, updateAvatarCommand, setIsLoading]);\r\n\r\n\tconst handleCloseClick = useCallback(e => {\r\n\t\te && e.preventDefault();\r\n\t\te && e.stopPropagation();\r\n\t\tconst t = setTimeout(() => {\r\n\t\t\thandleClose && handleClose(); //close avatar\r\n\t\t\tclearTimeout(t);\r\n\t\t}, 100);\r\n\t\thandleOpen && handleOpen(); //open burger\r\n\t}, [handleOpen, handleClose]);\r\n\r\n\tconst currentValue = useMemo(() => {\r\n\t\treturn getCurrentAvatar(avatar)?.index;\r\n\t}, [avatar]);\r\n\r\n\tconst isVisibleAvatars = useMemo(() => {\r\n\t\treturn typeof currentValue !== 'undefined';\r\n\t}, [currentValue]);\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{/*HEADER*/}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t{/*TODO: locale this*/}\r\n\t\t\t\t\t\t\t\tEdit your profile picture\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t{/*MAIN SECTION*/}\r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t{/*TODO: locale this*/}\r\n\t\t\t\t\t\t\t{`Hi ${userDetails.name}!`}\r\n\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t{/*TODO: locale this*/}\r\n\t\t\t\t\t\t\tHere you can change your profile picture\r\n\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t{isVisibleAvatars && (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\r\n\r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileChangeAvatar;\r\n","import React, {useCallback} from 'react';\r\nimport {useTranslation} from 'react-i18next';\r\n\r\nimport MobilePopUpHeader from '../../MobilePopUp/MobilePopUpHeader';\r\nimport MobileButtonClose from '../../Buttons/MobileButtonClose';\r\n\r\nconst MobileClosePositionHeader = ({onClose, id, reference}) => {\r\n\tconst {t} = useTranslation();\r\n\r\n\tconst handleClose = useCallback(() => {\r\n\t\tonClose && onClose();\r\n\t}, [onClose]);\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t{t('Close.Order.Title')}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t: \r\n\t\t\t\t\t\t\t{`ID ${id}`}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileClosePositionHeader;\r\n","import React, {useCallback} from 'react';\r\nimport {useTranslation} from 'react-i18next';\r\n\r\nconst MobileModalSuccess = ({children, onClose, title = ''}) => {\r\n\tconst {t} = useTranslation();\r\n\r\n\tconst handleClose = useCallback(e => {\r\n\t\tonClose && onClose(e);\r\n\t}, [onClose]);\r\n\treturn (\r\n\t\t\t
    \r\n\r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t{title}\r\n\t\t\t\t\t\t

    \r\n\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t{children}\r\n\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\r\n\t\t\t\t\r\n\t\t\t\t\t{t('General.Done')}\r\n\t\t\t\t\r\n\r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileModalSuccess;\r\n","export const maskNumericalInput = units => {\r\n\tconst s = units\r\n\t\t\t.toString()\r\n\t\t\t.replace(/./, '')\r\n\t\t\t.replace(/^0/, '');\r\n\tconst value = units.toString().replace(/^0\\d+$/, `0.${s}`);\r\n\treturn value;\r\n};\r\n\r\nexport const searchSymbolValue = (symbol = '', group = '', arr = []) => {\r\n\tif (!arr && !arr.length) return [];\r\n\tif (!symbol && !group) return arr;\r\n\r\n\tlet result = arr;\r\n\r\n\tif (group && group === 'MarketRates.Groups.All') result = arr;\r\n\r\n\tif (group && group !== 'MarketRates.Groups.All') result = arr.filter(\r\n\t\t\titem => item.group.toLowerCase().includes(group.toLowerCase()));\r\n\r\n\treturn result.filter(\r\n\t\t\titem => item.id.toLowerCase().includes(symbol.toLowerCase())\r\n\t\t\t\t\t|| item.description.toLowerCase().includes(symbol.toLowerCase())\r\n\t\t\t\t\t|| item.group.toLowerCase().includes(symbol.toLowerCase()));\r\n};\r\n\r\n","/* eslint-disable complexity */\r\nimport React, { useCallback, useMemo, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport clsx from 'clsx';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\nimport { CommandFactory } from '../../../../background/commands/CommandFactory'\r\n\r\nimport { renderType } from '../../../helpers/position.helpers';\r\nimport { formatDate } from '../../../../UI/utilsUI/formatTime';\r\nimport pubsubSubscription from '../../../../background/repositories/PubsubSubscription';\r\n\r\nimport MobileInputStepper from '../../MobileInputStepper/MobileInputStepper';\r\nimport MobileButton from '../../Buttons/MobileButton';\r\nimport FormatProfitSwapCommision\r\n from '../../../../UI/utilsUI/FormatProfitSwapCommision';\r\nimport MobileLoader from '../../MobileLoader/MobileLoader';\r\nimport MobileModalSuccess from '../../MobileModal/MobileModalSuccess';\r\nimport MobileModalError from '../../MobileModal/MobileModalError';\r\n\r\nimport { maskNumericalInput } from '../../../helpers/input.helpers';\r\nimport {normalizedEditNumber} from '../../../../UI/OpenPositions/updateNumericHelper';\r\nimport { ProfitCalculationService } from '../../../../background/calculations/profitCalculationService';\r\n\r\nconst MobileClosePositionMain = (props) => {\r\n const {\r\n symbolName,\r\n openTimeS,\r\n actionType,\r\n openRate,\r\n profit,\r\n tradeLink,\r\n amount,\r\n closePositionCMD,\r\n handleClose,\r\n stopLoss,\r\n takeProfit\r\n } = props;\r\n\r\n const { t } = useTranslation();\r\n\r\n const [selectedUnits, setSelectedUnits] = useState(amount);\r\n const [responseErrorData, setResponseErrorData] = useState(null);\r\n const [responseSuccessData, setResponseSuccessData] = useState(null);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const closeValue = pubsubSubscription.subscribeObj({ key: symbolName, repId: 'ticks' });\r\n const { symbols } = useSelector((state) => { return (state.account.symbols); }, shallowEqual);\r\n \r\n const isBid = actionType === 0;\r\n const closeRate = isBid ? closeValue?.bid : closeValue?.ask;\r\n const closeConvertion = isBid ? closeValue?.bidProfitConversion : closeValue?.askProfitConversion;\r\n\r\n const profitValue = ProfitCalculationService.calculateProfit(symbols[symbolName], actionType, normalizedEditNumber(selectedUnits,parseFloat(selectedUnits)), openRate, closeRate, closeConvertion);\r\n\r\n const handleValueChange = useCallback((value) => {\r\n console.log('handleValueChange');\r\n const units = maskNumericalInput(value);\r\n setSelectedUnits && setSelectedUnits(units);\r\n }, [setSelectedUnits]);\r\n\r\n const handleCloseOrder = useCallback(async (e) => {\r\n e && e.preventDefault();\r\n if (!closePositionCMD || !selectedUnits) return null;\r\n\r\n const command = CommandFactory.createCommand(closePositionCMD);\r\n setIsLoading(true);\r\n try {\r\n const res = await command.execute({\r\n amount: Number(normalizedEditNumber(selectedUnits,selectedUnits))\r\n });\r\n if (!res.isSuccessful) {\r\n const err = t(res.result);\r\n setResponseErrorData(err);\r\n }\r\n if (res.isSuccessful) {\r\n setResponseSuccessData({ profitValue: res.profit, price: res.price });\r\n }\r\n setIsLoading(false);\r\n } catch (err) {\r\n setIsLoading(false);\r\n setResponseErrorData(err);\r\n }\r\n }, [\r\n selectedUnits,\r\n closePositionCMD,\r\n setIsLoading,\r\n setResponseSuccessData,\r\n setResponseErrorData\r\n ]);\r\n\r\n const handleCloseError = useCallback(() => {\r\n setResponseErrorData(null);\r\n handleClose && handleClose();\r\n }, [setResponseErrorData, handleClose]);\r\n\r\n const handleOnCloseOrderPopup = useCallback(() => {\r\n setResponseSuccessData(null);\r\n handleClose && handleClose();\r\n }, [setResponseSuccessData, handleClose]);\r\n\r\n const buttonText = useMemo(() => {\r\n const renderAction = renderType(actionType);\r\n const action = renderAction.transition || renderAction.type;\r\n return `${action} ${symbolName} ${selectedUnits}`;\r\n }, [actionType, symbolName, selectedUnits]);\r\n\r\n const currentProfit = useMemo(() => {\r\n if (!profitValue) return '--';\r\n return (\r\n \r\n \r\n \r\n );\r\n }, [profitValue]);\r\n\r\n return (\r\n \r\n \r\n {!!responseSuccessData && (\r\n \r\n
    \r\n \r\n {t('InstrumetInfo.Details.CloseRate')}\r\n {' '}\r\n : \r\n \r\n {responseSuccessData?.price || 0}\r\n
    \r\n
    \r\n \r\n {t('InstrumetInfo.Details.Profit')}\r\n : \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n )}\r\n\r\n {!!responseErrorData && (\r\n \r\n )}\r\n\r\n {!responseSuccessData && !responseErrorData && (\r\n <>\r\n
    \r\n\r\n {/* TIME */}\r\n
    \r\n \r\n {t('InstrumetInfo.Details.OpenTime')}\r\n : \r\n \r\n \r\n\t\t\t\t\t\t\t\t \r\n {formatDate(openTimeS)}\r\n \r\n
    \r\n\r\n {tradeLink && tradeLink?.linkType === 0 && (\r\n
    \r\n
    \r\n
    \r\n {t('Social.Close.Attention')}\r\n
    \r\n
    \r\n )}\r\n\r\n {/* INPUT */}\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n {/* Column 1 */}\r\n \r\n
    \r\n \r\n {t('InstrumetInfo.Details.OpenRate')}\r\n : \r\n \r\n {openRate}\r\n
    \r\n
    \r\n \r\n {t('InstrumetInfo.Details.CloseRate')}\r\n : \r\n \r\n \r\n {actionType === 0\r\n ? closeValue?.bid\r\n : closeValue?.ask}\r\n \r\n
    \r\n
    \r\n\r\n {/* Column 2 */}\r\n \r\n {!!stopLoss && (\r\n
    \r\n \r\n {t('InstrumetInfo.Details.StopLoss')}\r\n : \r\n \r\n {stopLoss}\r\n
    \r\n )}\r\n {!!takeProfit && (\r\n
    \r\n \r\n {t('InstrumetInfo.Details.TakeProfit')}\r\n : \r\n \r\n {takeProfit}\r\n
    \r\n )}\r\n
    \r\n
    \r\n\r\n {/* PROFIT */}\r\n \r\n \r\n {t('InstrumetInfo.Details.Profit')}\r\n : \r\n \r\n {currentProfit}\r\n \r\n\r\n {responseErrorData\r\n &&
    {t(responseErrorData?.result)}
    }\r\n \r\n\r\n
    \r\n \r\n \r\n {t('InstrumetInfo.Details.Close')}\r\n\t\t\t\t\t\t \r\n \r\n\r\n \r\n {buttonText}\r\n\t\t\t\t\t\t\t\t\t\t \r\n \r\n \r\n
    \r\n \r\n )}\r\n\r\n \r\n );\r\n};\r\n\r\nexport default MobileClosePositionMain;\r\n","import React, {useCallback, useRef} from 'react';\r\n\r\nimport usePosition from '../../../context/contextHook/usePosition';\r\n\r\nimport MobileClosePositionHeader from './MobileClosePositionHeader';\r\nimport MobilePopUp from '../../MobilePopUp/MobilePopUp';\r\nimport MobileClosePositionMain from './MobileClosePositionMain';\r\nimport MobileSwiper from '../../MobileSwiper';\r\n\r\nconst MobileClosePosition = () => {\r\n\tconst {positionClose: {closeData, handleCloseHide}} = usePosition();\r\n\r\n\tconst touchRef = useRef(null);\r\n\r\n\tconst handleClose = useCallback(() => {\r\n\t\thandleCloseHide && handleCloseHide();\r\n\t}, [handleCloseHide]);\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{closeData && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileClosePosition;\r\n","import React, { useMemo } from 'react';\r\n\r\nimport MobilePopUpHeader from '../../MobilePopUp/MobilePopUpHeader';\r\nimport MobileButtonClose from '../../Buttons/MobileButtonClose';\r\n\r\nimport PubsubSubscription from '../../../../background/repositories/PubsubSubscription';\r\nimport {prepareBidAsk} from '../../../../UI/utilsUI/formatWSTick';\r\nimport MobileSymbolIcon from '../../MobileSymbolIcon/MobileSymbolIcon';\r\n\r\nconst MobileUpdatePositionHeader = (props) => {\r\n const { onClose, selectedSymbol, reference } = props;\r\n\r\n const [symbolTick, previousTick] = PubsubSubscription.subscribeObjAndPrev(selectedSymbol?.tick);\r\n\r\n const pipDigit = useMemo(() => {\r\n const { displayDigit } = selectedSymbol;\r\n return displayDigit;\r\n }, [selectedSymbol]);\r\n\r\n const { bidOutput, askOutput } = useMemo(() => {\r\n return prepareBidAsk(symbolTick, previousTick, pipDigit);\r\n }, [symbolTick, previousTick, pipDigit]);\r\n\r\n const title = useMemo(() => {\r\n const { displayName } = selectedSymbol;\r\n return displayName;\r\n }, [selectedSymbol]);\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n

    \r\n {title}\r\n

    \r\n
    \r\n
    \r\n {askOutput}\r\n
    \r\n
    \r\n {bidOutput}\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n\r\n
    \r\n );\r\n};\r\n\r\nexport default MobileUpdatePositionHeader;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\n\r\nconst MobileUpdatePositionBlock = props => {\r\n\tconst {label, value, time, left, center, right, double, disabled} = props;\r\n\r\n\tif (disabled) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{label}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{value}\r\n\t\t\t\t\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nMobileUpdatePositionBlock.defaultProps = {\r\n\tlabel: '',\r\n\tvalue: '',\r\n\ttime: '',\r\n\tleft: false,\r\n\tcenter: false,\r\n\tright: false,\r\n\tdouble: false,\r\n\tdisabled: false,\r\n};\r\n\r\nMobileUpdatePositionBlock.propTypes = {\r\n\tlabel: PropTypes.string,\r\n\tleft: PropTypes.bool,\r\n\tcenter: PropTypes.bool,\r\n\tright: PropTypes.bool,\r\n\tdouble: PropTypes.bool,\r\n\tdisabled: PropTypes.bool,\r\n\ttime: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\r\n\tvalue: PropTypes.oneOfType([\r\n\t\tPropTypes.string, PropTypes.number, PropTypes.node,\r\n\t]),\r\n};\r\n\r\nexport default MobileUpdatePositionBlock;\r\n","import React, {useCallback, useMemo} from 'react';\r\nimport {shallowEqual, useSelector} from 'react-redux';\r\n\r\nimport MobileButtonClose from '../../Buttons/MobileButtonClose';\r\nimport MobileInputStepper from '../../MobileInputStepper/MobileInputStepper';\r\n\r\nconst MobileUpdatePositionInput = props => {\r\n\tconst {\r\n\t\tlabel,\r\n\t\tsymbolId,\r\n\t\ttpId,\r\n\t\ttypes,\r\n\t\tonChange,\r\n\t\tselectedUnits,\r\n\t\tdefaultValue,\r\n\t\tshouldClear,\r\n\t\tinputmode,\r\n\t} = props;\r\n\r\n\tconst {symbols} = useSelector(state => state.account.symbols, shallowEqual);\r\n\r\n\tconst currentSymbol = useMemo(() => {\r\n\t\treturn symbols[symbolId];\r\n\t}, [symbols]);\r\n\r\n\tconst pipNumber = useMemo(() => {\r\n\t\tlet pipNumber = 1;\r\n\t\tfor (let i = 0; i < currentSymbol?.displayDigit; i += 1) {\r\n\t\t\tpipNumber /= 10;\r\n\t\t}\r\n\t\treturn pipNumber;\r\n\t}, [currentSymbol]);\r\n\r\n\tconst handleValueChange = useCallback(value => {\r\n\t\tonChange && onChange({type: types, value});\r\n\t}, [onChange]);\r\n\r\n\tconst handleClear = useCallback(e => {\r\n\t\te && e.preventDefault();\r\n\t\t// onChange && onChange({type: types, value: defaultValue}); //TODO: reset\r\n\t\tonChange && onChange({type: types, value: ''}); //TODO: clear\r\n\t}, [defaultValue, selectedUnits, onChange]);\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t

    \r\n\t\t\t\t\t{label}\r\n\t\t\t\t

    \r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t{/*TODO: reset*/}\r\n\t\t\t\t\t{/*{shouldClear && defaultValue !== selectedUnits && (*/}\r\n\t\t\t\t\t{/*TODO: clear*/}\r\n\t\t\t\t\t{shouldClear && selectedUnits && (\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t)}\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nMobileUpdatePositionInput.defaultProps = {\r\n\tdefaultValue: '',\r\n\tshouldClear: false,\r\n\tinputmode: '',\r\n};\r\n\r\nexport default MobileUpdatePositionInput;\r\n","/* eslint-disable complexity */\r\nimport React, {\r\n useCallback, useEffect, useMemo, useState, Fragment\r\n} from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\nimport clsx from 'clsx';\r\n\r\nimport { formatDate } from '../../../../UI/utilsUI/formatTime';\r\nimport pubsubSubscription from '../../../../background/repositories/PubsubSubscription';\r\nimport { renderType } from '../../../helpers/position.helpers';\r\n\r\nimport Button from '../../../../UI/primitives/Button';\r\nimport MobileUpdatePositionBlock from './MobileUpdatePositionBlock';\r\nimport { ProfitCalculationService } from '../../../../background/calculations/profitCalculationService';\r\nimport FormatProfitSwapCommision\r\n from '../../../../UI/utilsUI/FormatProfitSwapCommision';\r\nimport MobileUpdatePositionInput from './MobileUpdatePositionInput';\r\nimport MobileButton from '../../Buttons/MobileButton';\r\nimport FormattedSLTPProfit from '../../../../UI/TradePopup/FormattedSLTPProfit';\r\nimport MobileModalError from '../../MobileModal/MobileModalError';\r\nimport MobileModalSuccess from '../../MobileModal/MobileModalSuccess';\r\nimport useProfile from '../../../context/contextHook/useProfile';\r\nimport usePosition from '../../../context/contextHook/usePosition';\r\nimport { maskNumericalInput } from '../../../helpers/input.helpers';\r\nimport { pipDigital } from '../../../helpers/number.helpers';\r\nimport { normalizedEditNumber } from '../../../../UI/OpenPositions/updateNumericHelper';\r\n\r\nconst MobileUpdatePositionMain = (props) => {\r\n const {\r\n symbolName,\r\n symbolId,\r\n openTimeS,\r\n actionType,\r\n amount,\r\n profit,\r\n swaps,\r\n commission,\r\n openRate,\r\n tpId,\r\n stopLoss,\r\n takeProfit,\r\n handleCloseOrder,\r\n handleUpdateOrder,\r\n responseErrorData,\r\n responseSuccessData,\r\n handleOnClose,\r\n handleUnlinkOpen,\r\n handleChangeTakeProfit,\r\n isUpdate\r\n } = props;\r\n\r\n const {\r\n rightPanelSettings: { socialv1: { isVisible } },\r\n currency: { symbol },\r\n drawerSettings: { closePositionsTab }\r\n } = useSelector((state) => state.account.accountInfo, shallowEqual);\r\n const { symbols } = useSelector((state) => (state.account.symbols), shallowEqual);\r\n\r\n const { profileUser: { openProfileUser } } = useProfile();\r\n const { positionUpdate: { handleUpdateHide } } = usePosition();\r\n\r\n const [editMode, setEditMode] = useState(\r\n { stopLoss: stopLoss || '', takeProfit: takeProfit || '' }\r\n );\r\n\r\n const { t } = useTranslation();\r\n\r\n const tradeLinks = useSelector((state) => state.account.socialv1.tradeLinks);\r\n\r\n const profitValueSubscription = pubsubSubscription.subscribeObj(\r\n { key: profit?.key, repId: profit?.repId }\r\n );\r\n\r\n const closeValue = pubsubSubscription.subscribeObj(\r\n { key: symbolName, repId: 'ticks' }\r\n );\r\n\r\n const closeConvertion = actionType === 1 ? closeValue?.bidProfitConversion : closeValue?.askProfitConversion;\r\n\r\n const profitValue = useMemo(() => {\r\n return profitValueSubscription?.profit;\r\n }, [profitValueSubscription]);\r\n\r\n const totalProfit = profitValueSubscription?.profitWithCommitions ? : '--';\r\n\r\n const type = useMemo(() => {\r\n const label = renderType(actionType);\r\n return label.transition ? t(label.transition) : label.type;\r\n }, [actionType]);\r\n\r\n const handleChangeInput = useCallback(({ type, value }) => {\r\n const units = maskNumericalInput(value);\r\n setEditMode((prev) => ({\r\n ...prev,\r\n [type]: units\r\n }));\r\n if (type === 'takeProfit') {\r\n return handleChangeTakeProfit\r\n\t\t\t\t&& handleChangeTakeProfit();\r\n }\r\n }, [setEditMode, handleChangeTakeProfit]);\r\n\r\n const closeRate = useMemo(() => {\r\n if (!closeValue) return '--';\r\n const a = closeValue.ask;\r\n const b = closeValue.bid;\r\n const value = actionType === 0 ? b : a;\r\n // return pipDigital(value);\r\n return value;\r\n }, [actionType, closeValue]);\r\n\r\n const handleOnCloseOrder = useCallback(() => {\r\n handleCloseOrder && handleCloseOrder(amount);\r\n }, [handleCloseOrder, closeRate]);\r\n\r\n const handleOnUpdateOrder = useCallback(() => {\r\n handleUpdateOrder && handleUpdateOrder(editMode);\r\n }, [handleUpdateOrder, editMode]);\r\n\r\n const currentTakeProfit = useMemo(() => {\r\n return profitValue\r\n ? \r\n : '--';\r\n }, [profitValue]);\r\n\r\n const currentSwap = useMemo(() => {\r\n return profitValue\r\n ? \r\n : '--';\r\n }, [swaps]);\r\n\r\n const currentCommission = useMemo(() => {\r\n return profitValue\r\n ? \r\n : '--';\r\n }, [commission]);\r\n\r\n const isCopiedForm = useMemo(() => {\r\n const tradeLink = tradeLinks[tpId];\r\n return tradeLink;\r\n }, [tradeLinks]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n setEditMode({ stopLoss: '', takeProfit: '' });\r\n };\r\n }, []);\r\n\r\n const renderCopied = () => {\r\n const tradeLink = tradeLinks[tpId];\r\n\r\n const openProfilePage = () => {\r\n const nick = tradeLink?.sourceNickName;\r\n if (!nick) return null;\r\n handleUpdateHide && handleUpdateHide();\r\n openProfileUser && openProfileUser(nick);\r\n };\r\n\r\n const handleUnlinkOrder = () => {\r\n handleUnlinkOpen && handleUnlinkOpen(tpId);\r\n };\r\n\r\n if (tradeLink) {\r\n return (\r\n
    \r\n \r\n {tradeLink.sourceNickName}\r\n \r\n \r\n
    \r\n );\r\n }\r\n return null;\r\n };\r\n\r\n return (\r\n
    \r\n\r\n {/* ERROR */}\r\n {responseErrorData && (\r\n
    \r\n handleOnClose(e, 'error')}\r\n />\r\n
    \r\n )}\r\n\r\n {/* SUCCESS */}\r\n {responseSuccessData && (\r\n
    \r\n {responseSuccessData?.type === 'close' && (\r\n handleOnClose(e, 'success')}\r\n title={t('Close.Order.Success')}\r\n >\r\n
    \r\n \r\n {t('InstrumetInfo.Details.CloseRate')}\r\n : \r\n \r\n {responseSuccessData?.price || 0}\r\n
    \r\n
    \r\n \r\n {t('InstrumetInfo.Details.Profit')}\r\n : \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n )}\r\n {responseSuccessData?.type === 'update' && (\r\n \r\n )}\r\n
    \r\n )}\r\n\r\n
    \r\n {/* SECTION 1 */}\r\n
    \r\n\r\n {/* ROW 1 */}\r\n
    \r\n\r\n \r\n\r\n \r\n \r\n
    \r\n\r\n {/* ROW 2 */}\r\n
    \r\n\r\n \r\n\r\n \r\n\r\n {/* TODO: dynamic data */}\r\n \r\n
    \r\n\r\n {/* ROW 3 */}\r\n
    \r\n\r\n \r\n\r\n \r\n \r\n
    \r\n\r\n {/* ROW 4 */}\r\n
    \r\n\r\n \r\n\r\n \r\n\r\n
    \r\n\r\n
    \r\n\r\n {/* SECTION 2 */}\r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n\r\n \r\n \r\n \r\n {!!editMode.stopLoss && (\r\n \r\n \r\n {t('Trade.Execution.EstimatedProfit')}\r\n  \r\n {t('InstrumetInfo.Details.PL')}\r\n : \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n\r\n {/* TODO: distance */}\r\n {/*\t
    */}\r\n {/*\t\t/!*TODO: locale this*!/ */}\r\n {/*\t\t */}\r\n {/*\t\tDistance */}\r\n {/*\t\t:  */}\r\n {/*\t */}\r\n {/*\t\t/!*TODO: dynamic data*!/ */}\r\n {/*\t\t */}\r\n {/*\t\t  */}\r\n {/*\t\t\t+10 */}\r\n {/*\t */}\r\n {/*\t
    */}\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 {!!editMode.takeProfit && (\r\n \r\n \r\n {t('Trade.Execution.EstimatedProfit')}\r\n  \r\n {t('InstrumetInfo.Details.PL')}\r\n : \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n {/* TODO: distance */}\r\n {/*
    */}\r\n {/*\t/!*TODO: locale this*!/ */}\r\n {/*\t */}\r\n {/*\tDistance */}\r\n {/*\t:  */}\r\n {/* */}\r\n {/*\t/!*TODO: dynamic data*!/ */}\r\n {/*\t */}\r\n {/*\t  */}\r\n {/*\t\t+10 */}\r\n {/* */}\r\n {/*
    */}\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n {/* BUTTON */}\r\n
    \r\n {/* TODO: locale this / add handler */}\r\n \r\n {!!isUpdate && (\r\n \r\n )}\r\n
    \r\n\r\n \r\n );\r\n};\r\n\r\nexport default MobileUpdatePositionMain;\r\n","import React, {\r\n useCallback, useEffect, useMemo, useRef, useState\r\n} from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\nimport { useTranslation } from 'react-i18next';\r\nimport clsx from 'clsx';\r\n\r\nimport { CommandFactory } from '../../../../background/commands/CommandFactory';\r\nimport usePosition from '../../../context/contextHook/usePosition';\r\nimport { normalizedEditNumber } from '../../../../UI/OpenPositions/updateNumericHelper';\r\nimport MobileModal from '../../MobileModal/MobileModal';\r\nimport MobileButton from '../../Buttons/MobileButton';\r\nimport MobileSwiper from '../../MobileSwiper';\r\nimport MobileLoader from '../../MobileLoader/MobileLoader';\r\nimport MobilePopUp from '../../MobilePopUp/MobilePopUp';\r\n\r\nimport MobileUpdatePositionHeader from './MobileUpdatePositionHeader';\r\nimport MobileUpdatePositionMain from './MobileUpdatePositionMain';\r\n\r\n\r\nconst MobileUpdatePosition = () => {\r\n const touchRef = useRef(null);\r\n\r\n const { positionUpdate: { updateData, handleUpdateHide } } = usePosition();\r\n\r\n const { symbols } = useSelector((state) => state.account.symbols, shallowEqual);\r\n const { unlinkTradeCommand } = useSelector(\r\n (state) => state.account.socialv1.copyRelationsCommands, shallowEqual\r\n );\r\n\r\n const { t } = useTranslation();\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [unlinkId, setUnlinkId] = useState(false);\r\n const [responseErrorData, setResponseErrorData] = useState(null);\r\n const [responseSuccessData, setResponseSuccessData] = useState(null);\r\n const [isUpdate, setIsUpdate] = useState(true);\r\n\r\n const handleClose = useCallback(() => {\r\n handleUpdateHide && handleUpdateHide();\r\n }, [handleUpdateHide]);\r\n\r\n const handleCloseOrder = useCallback(async (amount) => {\r\n const closePositionCMD = updateData?.closePositionCMD;\r\n if (!amount || !closePositionCMD) return null;\r\n\r\n const userInput = { amount };\r\n\r\n const command = CommandFactory.createCommand(closePositionCMD);\r\n setIsLoading(true);\r\n try {\r\n const res = await command.execute(userInput);\r\n if (!res.isSuccessful) {\r\n const err = t(res?.result || 'trading.error.GeneralError');\r\n setResponseErrorData(err);\r\n }\r\n if (res.isSuccessful) {\r\n setResponseSuccessData(\r\n { type: 'close', profitValue: res.profit, price: res.price }\r\n );\r\n }\r\n\r\n setIsLoading(false);\r\n } catch (err) {\r\n setIsLoading(false);\r\n const e = t('trading.error.GeneralError');\r\n setResponseErrorData(e);\r\n }\r\n }, [updateData, setResponseErrorData, setResponseSuccessData]);\r\n\r\n const handleUpdateOrder = useCallback(async (data) => {\r\n const timeToShowBtn = 20000;\r\n const updatePositionCMD = updateData?.updatePositionCMD;\r\n if (!data || !updatePositionCMD) return null;\r\n\r\n const userInput = {\r\n takeProfit: normalizedEditNumber(data.takeProfit, updateData.takeProfit),\r\n stopLoss: normalizedEditNumber(data.stopLoss, updateData.stopLoss)\r\n };\r\n\r\n const command = CommandFactory.createCommand(updatePositionCMD);\r\n setIsLoading(true);\r\n try {\r\n const res = await command.execute(userInput);\r\n\r\n if (!res.isSuccessful) {\r\n const err = t(res?.result || 'trading.error.GeneralError');\r\n setResponseErrorData(err);\r\n }\r\n\r\n if (res.isSuccessful) {\r\n setResponseSuccessData(\r\n { type: 'update', profitValue: res.profit, price: res.price }\r\n );\r\n }\r\n setIsUpdate(false);\r\n const t = setTimeout(() => {\r\n setIsUpdate(true);\r\n clearTimeout(t);\r\n }, timeToShowBtn);\r\n setIsLoading(false);\r\n } catch (err) {\r\n setIsLoading(false);\r\n const e = t('trading.error.GeneralError');\r\n setResponseErrorData(e);\r\n }\r\n }, [updateData, setResponseErrorData]);\r\n\r\n const handleChangeTakeProfit = useCallback(() => {\r\n const t = setTimeout(() => {\r\n setIsUpdate(true);\r\n clearTimeout(t);\r\n }, 300);\r\n }, []);\r\n\r\n const handleOnClose = useCallback((e, type) => {\r\n e && e.preventDefault();\r\n setResponseErrorData(null);\r\n setResponseSuccessData(null);\r\n handleClose();\r\n }, [setResponseErrorData, setResponseSuccessData, handleClose]);\r\n\r\n const handleResetData = (e) => {\r\n e && e.preventDefault();\r\n // e && e.stopImmediatePropagation();\r\n setResponseErrorData(null);\r\n setResponseSuccessData(null);\r\n };\r\n\r\n const unlinkModal = useMemo(() => {\r\n return {\r\n open: (tpId) => setUnlinkId(tpId),\r\n close: () => setUnlinkId(null)\r\n };\r\n }, [setUnlinkId]);\r\n\r\n const handleUnlinkConfirm = useCallback(async () => {\r\n if (!unlinkId || !unlinkTradeCommand) return null;\r\n\r\n const reset = () => {\r\n setIsLoading(false);\r\n unlinkModal.close();\r\n };\r\n\r\n const userInput = { followerPositionID: Number(unlinkId) };\r\n\r\n const command = CommandFactory.createCommand(unlinkTradeCommand);\r\n\r\n try {\r\n const res = await command.execute(userInput);\r\n setIsLoading(false);\r\n unlinkModal.close();\r\n return res;\r\n } catch (err) {\r\n setIsLoading(false);\r\n unlinkModal.close();\r\n console.error(err); // TODO: remove log add error\r\n }\r\n }, [unlinkId, unlinkTradeCommand, setIsLoading]);\r\n\r\n const handleUnlinkOpen = useCallback((tpId) => {\r\n unlinkModal.open(tpId);\r\n }, [unlinkModal]);\r\n\r\n useEffect(() => {\r\n setIsUpdate(true);\r\n return () => {\r\n setIsUpdate(true);\r\n };\r\n }, [updateData]);\r\n\r\n return (\r\n \r\n \r\n {!!updateData && (\r\n <>\r\n \r\n\r\n \r\n
    \r\n\r\n

    \r\n {t('Social.Unlink.ConfirmTitle')}\r\n

    \r\n

    \r\n {t('Unlink.Attention')}\r\n

    \r\n

    \r\n {t('Unlink.Text')}\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 \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default MobileUpdatePosition;\r\n","import {useContext} from 'react';\r\nimport SymbolContextMobile from '../contextCreate/SymbolContextMobile'\r\n\r\nconst useSymbol = () => {\r\n\treturn useContext(SymbolContextMobile);\r\n};\r\n\r\nexport default useSymbol\r\n","import React, {useMemo} from 'react';\r\n\r\nimport useSymbol from '../../context/contextHook/useSymbol';\r\n\r\nimport PubsubSubscription from '../../../background/repositories/PubsubSubscription';\r\nimport {prepareBidAsk} from '../../../UI/utilsUI/formatWSTick';\r\n\r\nconst MobileCarouselSymbolTick = ({currentSymbol}) => {\r\n\tconst {selectedSymbol} = useSymbol();\r\n\r\n\tconst symbol = useMemo(() => {\r\n\t\treturn currentSymbol || selectedSymbol;\r\n\t}, [currentSymbol, selectedSymbol]);\r\n\r\n\tconst pipDigit = useMemo(() => {\r\n\t\treturn symbol?.displayDigit;\r\n\t}, [symbol]);\r\n\r\n\tconst [symbolTick, previousTick] = PubsubSubscription.subscribeObjAndPrev(\r\n\t\t\tsymbol?.tick);\r\n\r\n\tconst {bidOutput, askOutput} = prepareBidAsk(symbolTick, previousTick,\r\n\t\t\tpipDigit);\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t{askOutput}\r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t{bidOutput}\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileCarouselSymbolTick;\r\n","import React, { useCallback } from 'react';\r\n\r\nimport { Swiper, SwiperSlide } from 'swiper/react';\r\nimport SwiperCore, { Virtual } from 'swiper';\r\n\r\nimport 'swiper/swiper-bundle.css';\r\nimport clsx from 'clsx';\r\nimport MobileCarouselSymbolTick from './MobileCarouselSymbolTick';\r\nimport MobileSymbolIcon from '../MobileSymbolIcon/MobileSymbolIcon';\r\n\r\nSwiperCore.use([Virtual]);\r\n\r\nconst MobileCarouselSymbol = ({ options, value, onChange }) => {\r\n\r\n const handleChange = useCallback(swiper => {\r\n const index = swiper.activeIndex;\r\n const option = {\r\n index,\r\n value: options[index],\r\n };\r\n onChange && onChange(option);\r\n }, [options, onChange]);\r\n\r\n return (\r\n\r\n \r\n\r\n \r\n {options.map((option, index) => (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{({isActive}) => (\r\n\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{option.displayName}\r\n\t\t\t\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default MobileCarouselSymbol;\r\n","import React, {useCallback, useMemo} from 'react';\r\nimport {useSelector} from 'react-redux';\r\n\r\nimport {getCurrentPositionsAll} from '../../../helpers/position.helpers';\r\nimport useSymbol from '../../../context/contextHook/useSymbol';\r\nimport MobileOpenPositionHead\r\n\tfrom '../../MobilePosition/MobileOpenPosition/MobileOpenPositionHead';\r\nimport MobileAutosizer\r\n\tfrom '../../../components/MobileAutosizer/MobileAutosizer';\r\nimport usePosition from '../../../context/contextHook/usePosition';\r\nimport MobileOpenPositionItem\r\n\tfrom '../../MobilePosition/MobileOpenPosition/MobileOpenPositionItem';\r\n\r\nconst MobileTradingChartPosition = () => {\r\n\tconst {selectedSymbol} = useSymbol();\r\n\tconst {positionUpdate: {handleUpdateOpen}} = usePosition();\r\n\r\n\tconst tradeLinks = useSelector(state => state.account.socialv1.tradeLinks);\r\n\r\n\tconst isSocialEnabled = useSelector(\r\n\t\t\t(state) => state.account.socialv1.isEnabled);\r\n\tconst isSocialVisible = useSelector(\r\n\t\t\t(state) => state.account.accountInfo.rightPanelSettings.socialv1.isVisible);\r\n\r\n\tconst statePositions = useSelector(\r\n\t\t\tstate => state.account.positions.open.positions);\r\n\r\n\tconst showCopiedFrom = useMemo(() => {\r\n\t\treturn isSocialEnabled && isSocialVisible;\r\n\t}, [isSocialEnabled, isSocialVisible]);\r\n\r\n\tconst positions = useMemo(() => {\r\n\t\treturn getCurrentPositionsAll(statePositions, selectedSymbol?.id)\r\n\t\t\t\t.sort((a,b) => b.openTimeS-a.openTimeS);\r\n\t}, [selectedSymbol, statePositions]);\r\n\r\n\tconst isEmpty = useMemo(() => {\r\n\t\treturn !positions || !positions?.length;\r\n\t}, [positions]);\r\n\r\n\tconst renderColumns = useMemo(() => {\r\n\t\treturn [\r\n\t\t\t'instrument',\r\n\t\t\t'type',\r\n\t\t\t'amount',\r\n\t\t\t'profit',\r\n\t\t\t'user',\r\n\t\t\t'close',\r\n\t\t];\r\n\t}, [positions]);\r\n\r\n\tconst updateOrderDate = useCallback(props => {\r\n\t\thandleUpdateOpen && handleUpdateOpen(props);\r\n\t}, [handleUpdateOpen]);\r\n\r\n\tconst renderRow = useCallback(data => {\r\n\t\tconst {item, props} = data;\r\n\t\treturn (\r\n\t\t\t\t// \r\n\t\t\t\t\r\n\t\t);\r\n\t}, [positions, statePositions, selectedSymbol]);\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t{isEmpty && (\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t{/*TODO: locale this*/}\r\n\t\t\t\t\t\t\tNo Open Position on {selectedSymbol.displayName}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t)}\r\n\t\t\t\t{!isEmpty && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t{/**/}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileTradingChartPosition;\r\n","import React, {useCallback, useMemo} from 'react';\r\nimport clsx from 'clsx';\r\n\r\nimport {Swiper, SwiperSlide} from 'swiper/react';\r\nimport SwiperCore, {Pagination, Virtual} from 'swiper';\r\nimport 'swiper/swiper-bundle.css';\r\n\r\nSwiperCore.use([Virtual, Pagination]);\r\n\r\nconst MobileCarouselSwitch = props => {\r\n\tconst {value, options, onChange, type} = props;\r\n\r\n\tconst handleChange = useCallback(swiper => {\r\n\t\tconst index = swiper.activeIndex;\r\n\t\tconst opt = options[index];\r\n\t\tonChange && onChange(opt);\r\n\t}, [onChange, options]);\r\n\r\n\tconst isActiveItem = useCallback((value, option) => {\r\n\t\treturn value === option.timeKey;\r\n\t}, [value]);\r\n\r\n\tconst initialSlide = useMemo(() => {\r\n\t\tlet index = 0;\r\n\t\toptions.forEach((el, i) => {\r\n\t\t\tif (el.timeKey !== value) return null;\r\n\t\t\tindex = i;\r\n\t\t});\r\n\t\treturn index;\r\n\t}, [value, options]);\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t\t{options.map((option, index) => (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{({isActive}) => (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{option.timeValue}\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\t\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nMobileCarouselSwitch.defaultValue = {\r\n\tvalue: '',\r\n\toptions: [],\r\n\ttype: 'timekey',\r\n};\r\n\r\nexport default MobileCarouselSwitch;\r\n","import React, {useCallback, useEffect, useMemo, useState} from 'react';\r\nimport {useSelector} from 'react-redux';\r\n\r\nimport chartController from '../../../../background/chart/chartController';\r\nimport ChartPanel, {\r\n\tCHART_TYPES,\r\n\ttrade4ProToInternal,\r\n} from '../../../../shared/Charts/ChartPanel';\r\n\r\nimport MobileCarouselSymbol\r\n\tfrom '../../../components/MobileCarousel/MobileCarouselSymbol';\r\nimport useWindowSize from '../../../../UI/utilsUI/useWindowSize';\r\nimport MobileTradingChartPosition from './MobileTradingChartPosition';\r\nimport MobileCarouselSwitch\r\n\tfrom '../../../components/MobileCarousel/MobileCarouselSwitch';\r\nimport useTheme from '../../../context/contextHook/useTheme';\r\nimport useForceUpdate from '../../../hook/useForceUpdate';\r\n\r\nconst mainChartController = new chartController();\r\n\r\nconst MobileTradingChart = props => {\r\n\tconst {\r\n\t\tselectedSymbol,\r\n\t\torderedSymbols,\r\n\t\thandleChangeSymbol,\r\n\t\tsymbolValue,\r\n\t\ttimeFrames,\r\n\t\ttimeSelected,\r\n\t\tsetTimeSelected,\r\n\t\thandleTimeChange,\r\n\t} = props;\r\n\r\n\tconst [width, height] = useWindowSize();\r\n\tconst {isDarkTheme} = useTheme();\r\n\tconst forceUpdate = useForceUpdate();\r\n\r\n\tconst [chartType, setChartType] = useState(CHART_TYPES.CANDLES);\r\n\tconst {Tick: {ChartUp, ChartDown}} = useSelector(state => state.brand.theme);\r\n\r\n\tmainChartController.setPeriodChangedCallback(period => {\r\n\t\tif (timeSelected.timeKey !== period) {\r\n\t\t\tObject.entries(trade4ProToInternal).forEach((item) => {\r\n\t\t\t\tif (item[1] === period) {\r\n\t\t\t\t\tsetTimeSelected({timeKey: item[1], timeValue: item[0]});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n\r\n\tconst chartHeight = useMemo(() => {\r\n\t\treturn width * 0.7;\r\n\t}, [width, height]);\r\n\r\n\tconst customChartOptions = useMemo(() => {\r\n\t\treturn {\r\n\t\t\t// 'colors.background': isDarkTheme ? 'transparent' : '#F5F6FA',\r\n\t\t\t// 'colors.frameActive': isDarkTheme ? 'transparent' : '#979797',\r\n\t\t\t'colors.background': 'transparent',\r\n\t\t\t'colors.frameActive': 'transparent',\r\n\t\t\t'colors.axisLine': isDarkTheme ? '#13172D' : '#fafafa',\r\n\t\t\t'colors.candleRiseBorder': isDarkTheme ? ChartUp || '#4B8907' : '#3CC09B',\r\n\t\t\t'colors.candleFallBorder': isDarkTheme ? ChartDown || '#D0021B' : '#CE4B4B',\r\n\t\t\t'colors.candleRise': isDarkTheme ? ChartUp || '#4B8907' : '#3CC09B',\r\n\t\t\t'colors.candleFall': isDarkTheme ? ChartDown || '#D0021B' : '#CE4B4B',\r\n\t\t\t'colors.barRise': isDarkTheme ? ChartUp || '#4B8907' : '#3CC09B',\r\n\t\t\t'colors.barFall': isDarkTheme ? ChartDown || '#D0021B' : '#CE4B4B',\r\n\t\t};\r\n\t}, [ChartUp, ChartDown, isDarkTheme]);\r\n\r\n\tconst handleUpdateChartStyle = useCallback(() => {\r\n\t\tconst chart = mainChartController._chartInstance;\r\n\t\tif (isDarkTheme) {\r\n\t\t\tchart.setColor('background', 'transparent');\r\n\t\t\tchart.setColor('axisLine', '#fafafa');\r\n\t\t} else {\r\n\t\t\tchart.setColor('background', 'transparent');\r\n\t\t\tchart.setColor('axisLine', '#13172D');\r\n\t\t}\r\n\t}, [isDarkTheme]);\r\n\r\n\tuseEffect(() => {\r\n\t\tforceUpdate();\r\n\t}, [isDarkTheme]);\r\n\r\n\tuseEffect(() => {\r\n\t\thandleUpdateChartStyle();\r\n\t}, [handleUpdateChartStyle]);\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\r\n\t\t\t\t\r\n\r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t
    \r\n\r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileTradingChart;\r\n","import React, {useMemo} from 'react';\r\n\r\nimport MobileButtonClose from '../../components/Buttons/MobileButtonClose';\r\n\r\nimport PubsubSubscription from '../../../background/repositories/PubsubSubscription';\r\nimport {prepareBidAsk} from '../../../UI/utilsUI/formatWSTick';\r\nimport MobileSymbolIcon\r\n\tfrom '../../components/MobileSymbolIcon/MobileSymbolIcon';\r\n\r\nconst MobileTradeHeader = ({onClose, selectedSymbol, reference}) => {\r\n\r\n\tconst pipDigit = useMemo(() => {\r\n\t\tconst {displayDigit} = selectedSymbol;\r\n\t\treturn displayDigit;\r\n\t}, [selectedSymbol]);\r\n\r\n\tconst [symbolTick, previousTick] = PubsubSubscription.subscribeObjAndPrev(\r\n\t\t\tselectedSymbol?.tick);\r\n\r\n\tconst {bidOutput, askOutput} = useMemo(() => {\r\n\t\treturn prepareBidAsk(symbolTick, previousTick, pipDigit);\r\n\t}, [symbolTick, previousTick, pipDigit]);\r\n\r\n\tconst title = useMemo(() => {\r\n\t\tconst {displayName} = selectedSymbol;\r\n\t\treturn displayName;\r\n\t}, [selectedSymbol]);\r\n\r\n\treturn (\r\n\t\t\t\r\n\r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t

    \r\n\t\t\t\t\t\t{title}\r\n\t\t\t\t\t

    \r\n\t\t\t\t
    \r\n\r\n\t\t\t\t
    \r\n\t\t\t\t\t{askOutput}\r\n\t\t\t\t
    \r\n\r\n\t\t\t\t
    \r\n\t\t\t\t\t{bidOutput}\r\n\t\t\t\t
    \r\n\r\n\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileTradeHeader;\r\n","import React, {useCallback, useEffect, useState} from 'react';\r\nimport clsx from 'clsx';\r\n\r\nimport PubsubSubscription from '../../../background/repositories/PubsubSubscription';\r\nimport {prepareBidAsk} from '../../../UI/utilsUI/formatWSTick';\r\n\r\nimport {ACTION_TYPE} from '../../../UI/TradePopup/TradePopup';\r\n\r\nconst MobileOrderSwitch = ({name, style, onChange, selectedSymbol, type}) => {\r\n\tconst [types, setTypes] = useState(type);\r\n\tconst pipDigit = selectedSymbol.displayDigit;\r\n\tconst [symbolTick, previousTick] = PubsubSubscription.subscribeObjAndPrev(\r\n\t\t\tselectedSymbol?.tick);\r\n\tconst {bidOutput, askOutput} = prepareBidAsk(symbolTick, previousTick,\r\n\t\t\tpipDigit);\r\n\r\n\tconst handleClick = useCallback(types => {\r\n\t\tsetTypes(types);\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tsetTypes(type);\r\n\t}, [type]);\r\n\r\n\tuseEffect(() => {\r\n\t\tonChange && onChange(types);\r\n\t}, [types]);\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t handleClick(ACTION_TYPE.ASK)}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t

    Buy

    \r\n\t\t\t\t\t\t
    {askOutput}
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t handleClick(ACTION_TYPE.BID)}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t

    Sell

    \r\n\t\t\t\t\t\t

    {bidOutput}

    \r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileOrderSwitch;\r\n","export const UNITS_MULTIPLIER = [\r\n\t0.001,\r\n\t0.01,\r\n\t0.1,\r\n\t0.125,\r\n\t0.15,\r\n\t0.175,\r\n\t0.2,\r\n\t0.225,\r\n\t0.25,\r\n\t0.275,\r\n\t0.3,\r\n\t0.325,\r\n\t0.35,\r\n\t0.375,\r\n\t0.4,\r\n\t0.425,\r\n\t0.45,\r\n\t0.475,\r\n\t0.5,\r\n\t0.525,\r\n\t0.55,\r\n\t0.575,\r\n\t0.6,\r\n\t0.625,\r\n\t0.65,\r\n\t0.675,\r\n\t0.7,\r\n\t0.725,\r\n\t0.75,\r\n\t0.775,\r\n\t0.8,\r\n\t0.825,\r\n\t0.85,\r\n\t0.875,\r\n\t0.9,\r\n\t0.925,\r\n\t0.95,\r\n\t0.975,\r\n\t1,\r\n\t1.25,\r\n\t1.5,\r\n\t1.75,\r\n\t1.1,\r\n\t1.125,\r\n\t1.15,\r\n\t1.175,\r\n\t1.2,\r\n\t1.225,\r\n\t1.25,\r\n\t1.275,\r\n\t1.3,\r\n\t1.35,\r\n\t1.4,\r\n\t1.45,\r\n\t1.5,\r\n\t1.6,\r\n\t1.7,\r\n\t1.8,\r\n\t1.9,\r\n\t2,\r\n\t2.1,\r\n\t2.2,\r\n\t2.3,\r\n\t2.4,\r\n\t2.5,\r\n\t2.6,\r\n\t2.7,\r\n\t2.8,\r\n\t2.9,\r\n\t3,\r\n\t4,\r\n\t5,\r\n\t6,\r\n\t7,\r\n\t8,\r\n\t9,\r\n\t10,\r\n\t12,\r\n\t14,\r\n\t16,\r\n\t18,\r\n\t20,\r\n\t25,\r\n\t30,\r\n\t35,\r\n\t40,\r\n\t45,\r\n\t50,\r\n\t60,\r\n\t70,\r\n\t80,\r\n\t90,\r\n\t100,\r\n\t200,\r\n\t300,\r\n\t400,\r\n\t500,\r\n\t600,\r\n\t700,\r\n\t800,\r\n\t900,\r\n\t1000,\r\n\t2000,\r\n\t3000,\r\n\t4000,\r\n\t5000,\r\n\t6000,\r\n\t7000,\r\n\t8000,\r\n\t9000,\r\n\t10000,\r\n\t20000,\r\n\t30000,\r\n\t40000,\r\n\t50000,\r\n\t60000,\r\n\t70000,\r\n\t80000,\r\n\t90000,\r\n\t100000,\r\n\t1000000,\r\n\t10000000,\r\n];\r\n","import React, {useCallback, useMemo, useState} from 'react';\r\nimport {shallowEqual, useSelector} from 'react-redux';\r\n\r\nimport {roundNumberPipDigit} from '../../../UI/utilsUI/formatWSTick';\r\nimport PubsubSubscription from '../../../background/repositories/PubsubSubscription';\r\nimport calcMarginRequirement from '../../../UI/utilsUI/calcMarginRequirement';\r\nimport countDecimals from '../../../UI/utilsUI/countDecimals';\r\nimport roundToPrecision from '../../../UI/utilsUI/roundToPrecision';\r\nimport {ProfitCalculationModes} from '../../../background/reducers/symbolsReducer';\r\nimport { CommandFactory } from '../../../background/commands/CommandFactory'\r\n\r\nimport {ACTION_TYPE} from '../../../UI/TradePopup/TradePopup';\r\nimport MobileTradeMainDraw from './MobileTradeMainDraw';\r\nimport MobileLoader from '../../components/MobileLoader/MobileLoader';\r\nimport * as TradePopupAnalyticsEvents\r\n\tfrom '../../../UI/TradePopup/TradePopupAnalyticsEvents';\r\nimport chartController from '../../../background/chart/chartController';\r\nimport {maskNumericalInput} from '../../helpers/input.helpers';\r\n\r\nconst mainChartController = new chartController();\r\n\r\nexport const calcPipValue = (prices, selectedSymbol, selectedUnits, orderType) => {\r\n\tconst {pipDigit, contractSize, profitCalcMode} = selectedSymbol;\r\n\tlet pip = Math.pow(10, -pipDigit);\r\n\tif (!prices) {\r\n\t\treturn 0;\r\n\t}\r\n\tlet conversionRate = (prices.askProfitConversion +\r\n\t\t\tprices.bidProfitConversion) / 2;\r\n\r\n\tif (orderType) {\r\n\t\tconversionRate = orderType === ACTION_TYPE.BID ?\r\n\t\t\t\tprices.bidProfitConversion :\r\n\t\t\t\tprices.askProfitConversion;\r\n\t}\r\n\r\n\tif (profitCalcMode === ProfitCalculationModes.Sirix) {\r\n\t\treturn pip * selectedUnits * conversionRate * contractSize;\r\n\t} else {\r\n\t\treturn pip * selectedUnits / conversionRate * contractSize;\r\n\t}\r\n\r\n};\r\n\r\nconst MobileTradeMain = ({selectedSymbol}) => {\r\n\tconst {symbol} = useSelector(state => state.account.accountInfo.currency,\r\n\t\t\tshallowEqual);\r\n\r\n\tconst {\r\n\t\tcontractSize,\r\n\t\ttick,\r\n\t\tminimumLot,\r\n\t\tmaximumLot,\r\n\t\tlotStep,\r\n\t\tdescription,\r\n\t} = useMemo(() => selectedSymbol, [selectedSymbol]);\r\n\r\n\tconst [isLoading, setIsLoading] = useState(false);\r\n\tconst [isProcessing, setIsProcessing] = useState(false);\r\n\tconst [unitsDropDown, setUnitsDropDown] = useState(false);\r\n\tconst [showError, setShowError] = useState('');\r\n\tconst [pendingOrder, setPendingOrder] = useState(false);\r\n\tconst [pendingOrderPrice, setPendingOrderPrice] = useState(null);\r\n\tconst [response, setResponse] = useState('');\r\n\tconst [orderInfo, setOrderInfo] = useState({status: '', price: null});\r\n\tconst [type, setType] = useState(ACTION_TYPE.ASK);\r\n\tconst [selectedUnits, setSelectedUnits] = useState({\r\n\t\tnumber: Math.max(minimumLot, lotStep),\r\n\t\trepresentation: Math.max(minimumLot, lotStep),\r\n\t});\r\n\r\n\tconst tickObj = PubsubSubscription.subscribeObj(tick);\r\n\tconst pnlTick = PubsubSubscription.subscribeObj(\r\n\t\t\t{key: 'MOVINGPNL', repId: 'ACCOUNT_PNL'});\r\n\r\n\tconst marginRequirement = useMemo(() => {\r\n\t\tconst {number} = selectedUnits;\r\n\t\treturn calcMarginRequirement(tickObj, type, selectedSymbol, number);\r\n\t}, [tickObj, type, selectedSymbol, selectedUnits]);\r\n\r\n\tconst pipValue = useMemo(() => {\r\n\t\tconst {number} = selectedUnits;\r\n\t\treturn calcPipValue(tickObj, selectedSymbol, number, type);\r\n\t}, [tickObj, selectedSymbol, selectedUnits, type]);\r\n\r\n\tconst handleSetValue = useCallback(value => {\r\n\t\tsetShowError('');\r\n\t\tconst units = maskNumericalInput(value);\r\n\t\tconst decimals = countDecimals(units.replace(/[^0-9\\.]/g, ''));\r\n\t\tconst unitsValue = decimals === 0 ?\r\n\t\t\t\tunits.replace(/[^0-9\\.]/g, '') :\r\n\t\t\t\troundNumberPipDigit(units, decimals);\r\n\t\tsetSelectedUnits({\r\n\t\t\tnumber: roundToPrecision(unitsValue, decimals),\r\n\t\t\trepresentation: units,\r\n\t\t});\r\n\t}, [setShowError, setSelectedUnits]);\r\n\r\n\tconst handleSetPendingPrice = useCallback(value => {\r\n\t\tresponse && setResponse('');\r\n\t\tconst units = maskNumericalInput(value);\r\n\t\tsetPendingOrderPrice(units);\r\n\t}, [setPendingOrderPrice, setResponse, response]);\r\n\r\n\tconst cancelOrder = useCallback(() => {\r\n\t\tsetResponse('');\r\n\t\tsetType('');\r\n\t}, [setResponse, setType]);\r\n\r\n\tconst onChangeSwitch = useCallback(type => {\r\n\t\tif (!type) return null;\r\n\t\tresponse && setResponse('');\r\n\t\tsetType(type);\r\n\t}, [type, response]);\r\n\r\n\tconst handleSwitchChange = useCallback(() => {\r\n\t\tresponse && setResponse('');\r\n\t\tsetPendingOrderPrice(type === ACTION_TYPE.BID ?\r\n\t\t\t\tPubsubSubscription.getValueNative(tick).bid :\r\n\t\t\t\tPubsubSubscription.getValueNative(tick).ask);\r\n\t\tsetPendingOrder(prevState => !prevState);\r\n\t}, [response, type, tick]);\r\n\r\n\tconst handleShowError = useCallback(error => {\r\n\t\tsetShowError(error);\r\n\t}, []);\r\n\r\n\tconst toggleUnitsDropDown = useCallback(() => {\r\n\t\tsetUnitsDropDown(prev => !prev);\r\n\t}, [setUnitsDropDown]);\r\n\r\n\tconst closeUnitsDropDown = useCallback(() => {\r\n\t\tresponse && setResponse('');\r\n\t\tsetUnitsDropDown(false);\r\n\t}, [response, setResponse, setUnitsDropDown]);\r\n\r\n\tconst openUnitsDropDown = useCallback(() => {\r\n\t\tresponse && setResponse('');\r\n\t\tsetUnitsDropDown(true);\r\n\t}, [response, setResponse, setUnitsDropDown]);\r\n\r\n\tconst requestSuccess = useMemo(() => {\r\n\t\tconst {status} = orderInfo;\r\n\t\treturn status === 'success';\r\n\t}, [orderInfo]);\r\n\r\n\tconst lotPipNumber = useMemo(() => {\r\n\t\treturn countDecimals(lotStep);\r\n\t}, [lotStep]);\r\n\r\n\tconst handleOpenPosition = useCallback(async e => {\r\n\t\te && e.preventDefault();\r\n\r\n\t\tconst command = CommandFactory.createCommand(selectedSymbol.openPositionCMD);\r\n\r\n\t\tsetOrderInfo(prev => {\r\n\t\t\treturn {\r\n\t\t\t\t...prev,\r\n\t\t\t\tprice: type === ACTION_TYPE.BID ?\r\n\t\t\t\t\t\tPubsubSubscription.getValueNative(tick).bid :\r\n\t\t\t\t\t\tPubsubSubscription.getValueNative(tick).ask,\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\tsetIsProcessing(true);\r\n\t\ttry {\r\n\t\t\tsetResponse(null);\r\n\t\t\tconst res = await command.execute({\r\n\t\t\t\tactionType: type === ACTION_TYPE.BID ? 1 : 0,\r\n\t\t\t\tamount: selectedUnits.number,\r\n\t\t\t});\r\n\r\n\t\t\tif (res.isSuccessful) {\r\n\t\t\t\tsetOrderInfo((prevState) => {\r\n\t\t\t\t\treturn {...prevState, status: 'success', price: res.price};\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tif (!res.isSuccessful) {\r\n\t\t\t\tsetResponse(res);\r\n\t\t\t}\r\n\t\t} catch (err) {\r\n\t\t\tsetResponse(err);\r\n\t\t}\r\n\r\n\t\tsetIsProcessing(false);\r\n\t}, [\r\n\t\tselectedUnits,\r\n\t\tselectedSymbol,\r\n\t\tsetIsProcessing,\r\n\t\tsetResponse,\r\n\t\tsetOrderInfo,\r\n\t\ttype]);\r\n\r\n\tconst handlePendingOrder = useCallback(async e => {\r\n\t\te && e.preventDefault();\r\n\r\n\t\tconst userInput = {\r\n\t\t\tactionType: type === ACTION_TYPE.BID ? 1 : 0,\r\n\t\t\tamount: selectedUnits.number,\r\n\t\t\tprice: pendingOrderPrice,\r\n\t\t};\r\n\r\n\t\tconst command = CommandFactory.createCommand(selectedSymbol.openPendingOrderCMD);\r\n\r\n\t\tsetIsLoading(true);\r\n\r\n\t\tconst sendPendingOrderEventFunc = TradePopupAnalyticsEvents.createPendingOrderEvent(\r\n\t\t\t\ttickObj, roundNumberPipDigit(pipValue, 2),\r\n\t\t\t\troundNumberPipDigit(marginRequirement, 2),\r\n\t\t\t\tselectedSymbol.displayName, selectedUnits.number, type,\r\n\t\t\t\tpendingOrderPrice, mainChartController);\r\n\r\n\t\ttry {\r\n\t\t\tsetResponse(null);\r\n\t\t\tconst res = await command.execute(userInput);\r\n\r\n\t\t\tif (res.isSuccessful) {\r\n\t\t\t\tsendPendingOrderEventFunc(false, true,\r\n\t\t\t\t\t\tres.result);\r\n\r\n\t\t\t\tsetOrderInfo((prevState) => ({\r\n\t\t\t\t\t...prevState,\r\n\t\t\t\t\tstatus: 'success',\r\n\t\t\t\t\tprice: pendingOrderPrice,\r\n\t\t\t\t}));\r\n\t\t\t}\r\n\t\t\tif (!res.isSuccessful) {\r\n\t\t\t\tsendPendingOrderEventFunc(false, false,\r\n\t\t\t\t\t\tres.result ?? 'trading.error.GeneralError');\r\n\r\n\t\t\t\tsetResponse(res);\r\n\t\t\t}\r\n\t\t} catch (err) {\r\n\t\t\tsendPendingOrderEventFunc(\r\n\t\t\t\t\tfalse,\r\n\t\t\t\t\tfalse,\r\n\t\t\t\t\t'trading.error.GeneralError');\r\n\t\t\tsetResponse(err);\r\n\t\t}\r\n\t\tsetIsLoading(false);\r\n\t}, [\r\n\t\tsetOrderInfo,\r\n\t\tsetResponse,\r\n\t\tsetIsLoading,\r\n\t\ttype,\r\n\t\tselectedUnits,\r\n\t\tpendingOrderPrice,\r\n\t\tselectedSymbol,\r\n\t]);\r\n\r\n\treturn (\r\n\t\t\t<>\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileTradeMain;\r\n","import React, {useCallback, useEffect, useMemo, useState} from 'react';\r\nimport {useTranslation} from 'react-i18next';\r\n\r\nimport {UNITS_MULTIPLIER} from './MobileUnitsOptions';\r\nimport {ACTION_TYPE} from '../../../UI/TradePopup/TradePopup';\r\n\r\nimport calcMarginRequirement from '../../../UI/utilsUI/calcMarginRequirement';\r\nimport scrollToElement from '../../../UI/utilsUI/scrollToElement';\r\nimport {ProfitCalculationModes} from '../../../background/reducers/symbolsReducer';\r\nimport {roundNumberPipDigit} from '../../../UI/utilsUI/formatWSTick';\r\nimport OuterClick from '../../../UI/primitives/OuterClick';\r\n\r\nconst prepareUnitsList = (\r\n\t\tcurrentUnits, stepValue, tickObj, type, selectedSymbol, pnlTick) => {\r\n\tconst resultSet = new Set();\r\n\tconst resultArray = [];\r\n\tlet counter = 0;\r\n\tUNITS_MULTIPLIER.forEach((multiply) => {\r\n\t\t// eslint-disable-next-line prefer-template\r\n\t\tconst unitValue = +(Math.round(\r\n\t\t\t\t(Math.round((currentUnits * multiply) / stepValue) * stepValue) +\r\n\t\t\t\t'e+2') + 'e-2');\r\n\t\tif (unitValue) {\r\n\t\t\tresultSet.add(unitValue);\r\n\t\t}\r\n\t});\r\n\r\n\t[...resultSet].forEach((item) => {\r\n\t\tif (Math.round(\r\n\t\t\t\tcalcMarginRequirement(tickObj, type, selectedSymbol, item)) <=\r\n\t\t\t\tpnlTick?.equity) {\r\n\t\t\tresultArray.push(item);\r\n\t\t} else if (counter < 3 &&\r\n\t\t\t\tMath.round(calcMarginRequirement(tickObj, type, selectedSymbol, item)) >\r\n\t\t\t\tpnlTick?.equity) {\r\n\t\t\tcounter += 1;\r\n\t\t\tresultArray.push(item);\r\n\t\t}\r\n\t});\r\n\r\n\treturn resultArray;\r\n};\r\n\r\nconst MobileUnitsClosePosition = props => {\r\n\r\n\tconst {\r\n\t\tselectUnits,\r\n\t\ttoggleUnitsDropDown,\r\n\t\tselectedUnits,\r\n\t\tcontractSize,\r\n\t\tstepValue,\r\n\t\ttickObj,\r\n\t\tisBidActive,\r\n\t\tunitsName,\r\n\t\tselectedSymbol,\r\n\t\tpnlTick,\r\n\t\tcurrency,\r\n\t\thandleClick,\r\n\t} = props;\r\n\r\n\tconst {t} = useTranslation();\r\n\r\n\tconst [initialUnitsList, setInitialUnitsList] = useState(null);\r\n\r\n\tconst selectedUnitsNumber = useMemo(() => {\r\n\t\treturn typeof selectedUnits === 'string'\r\n\t\t\t\t? selectedUnits.replace(/[^0-9\\.]/g, '')\r\n\t\t\t\t: selectedUnits;\r\n\t}, [selectedUnits]);\r\n\r\n\tconst type = useMemo(() => {\r\n\t\treturn isBidActive ? ACTION_TYPE.BID : ACTION_TYPE.ASK;\r\n\t}, [isBidActive]);\r\n\r\n\tconst handleUnitsSelect = useCallback(e => {\r\n\t\te && e.stopPropagation();\r\n\t\tif (e.target.closest('.units-row')) {\r\n\t\t\tselectUnits(e.target.closest('.units-row').firstChild.innerHTML);\r\n\t\t}\r\n\t\thandleClick && handleClick();\r\n\t}, [handleClick]);\r\n\r\n\tconst convertionRate = useMemo(() => {\r\n\t\treturn isBidActive\r\n\t\t\t\t? (tickObj?.askProfitConversion || 1)\r\n\t\t\t\t: (tickObj?.bidProfitConversion || 1);\r\n\t}, [isBidActive, tickObj]);\r\n\r\n\tconst currentPrice = useMemo(() => {\r\n\t\treturn isBidActive\r\n\t\t\t\t? (tickObj?.bid || 1)\r\n\t\t\t\t: (tickObj?.ask || 1);\r\n\t}, [isBidActive, tickObj]);\r\n\r\n\tuseEffect(() => {\r\n\t\tsetInitialUnitsList(\r\n\t\t\t\tprepareUnitsList(selectedUnitsNumber, stepValue, tickObj, type,\r\n\t\t\t\t\t\tselectedSymbol, pnlTick));\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (initialUnitsList) {\r\n\t\t\tconst container = document.getElementById('trade-popup__units-list');\r\n\t\t\tconst position = document.getElementById('units-scroll-pointer');\r\n\t\t\tif (container && position) {\r\n\t\t\t\tscrollToElement(container, position);\r\n\t\t\t}\r\n\t\t}\r\n\t}, [initialUnitsList]);\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    {unitsName}
    \r\n\t\t\t\t\t\t
    {t('Units.Value')}
    \r\n\t\t\t\t\t\t
    {t('Trade.Margin.Title')}
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t{initialUnitsList?.length > 0 && initialUnitsList.map((unit) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t pnlTick?.equity}>\r\n\t\t\t\t\t\t\t\t\t
    {unit}
    \r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t{currency}\r\n\t\t\t\t\t\t\t\t\t\t{selectedSymbol.profitCalcMode ===\r\n\t\t\t\t\t\t\t\t\t\tProfitCalculationModes.Sirix\r\n\t\t\t\t\t\t\t\t\t\t\t\t? roundNumberPipDigit(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tunit * currentPrice * contractSize * convertionRate,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t2)\r\n\t\t\t\t\t\t\t\t\t\t\t\t: roundNumberPipDigit(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tunit * currentPrice * contractSize / convertionRate,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t2)}\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t{currency}\r\n\t\t\t\t\t\t\t\t\t\t{roundNumberPipDigit(\r\n\t\t\t\t\t\t\t\t\t\t\t\tcalcMarginRequirement(tickObj, type, selectedSymbol,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tunit), 2)}\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t
    \r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default OuterClick(MobileUnitsClosePosition, '#units-stepper');\r\n","import React from 'react';\r\nimport {shallowEqual, useSelector} from 'react-redux';\r\nimport {useTranslation} from 'react-i18next';\r\n\r\nimport MobileTransition from '../../../components/MobileTransition';\r\n\r\nimport {roundNumberPipDigit} from '../../../../UI/utilsUI/formatWSTick';\r\n\r\nexport const MobileTradeUnitsUp = props => {\r\n\tconst {\r\n\t\tunitsDropDown = false,\r\n\t\tpipValue = null,\r\n\t\tmarginRequirement = null,\r\n\t} = props;\r\n\r\n\tconst {t} = useTranslation();\r\n\r\n\tconst {symbol} = useSelector(state => state.account.accountInfo.currency,\r\n\t\tshallowEqual);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{t('Trade.PipValue.Title')}\r\n\t\t\t\t\t\t: \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{symbol || ''}\r\n\t\t\t\t\t\t\t{pipValue\r\n\t\t\t\t\t\t\t\t? roundNumberPipDigit(pipValue, 2)\r\n\t\t\t\t\t\t\t\t: 0\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\t{t('Trade.Margin.Title')}\r\n\t\t\t\t\t: \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{symbol || ''}\r\n\t\t\t\t\t\t{marginRequirement\r\n\t\t\t\t\t\t\t? roundNumberPipDigit(marginRequirement, 2)\r\n\t\t\t\t\t\t\t: 0\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t
    \r\n\t\t\r\n\t);\r\n};\r\n\r\nexport const MobileTradeDown = props => {\r\n\tconst {\r\n\t\tpipValue = null,\r\n\t\tmarginRequirement = null,\r\n\t} = props;\r\n\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n","import React from 'react';\r\nimport {useTranslation} from 'react-i18next';\r\n\r\nimport MobileTransition from '../../../components/MobileTransition';\r\n\r\nconst MobileTradeProcessing = ({isOpen}) => {\r\n\r\n\tconst {t} = useTranslation();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t\t

    {t('Trade.Execute.PleaseWait')}

    \r\n\t\t\t\t\t

    {t('Trade.Execute.Processing')}

    \r\n\t\t\t\t
    \r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileTradeProcessing;\r\n","import React, {useCallback, useMemo} from 'react';\r\nimport {useTranslation} from 'react-i18next';\r\n\r\nimport MobileTransition from '../../../components/MobileTransition';\r\nimport MobileModalSuccess\r\n\tfrom '../../../components/MobileModal/MobileModalSuccess';\r\n\r\nconst MobileTradeSuccess = props => {\r\n\tconst {\r\n\t\tisOpen = false,\r\n\t\tonClose,\r\n\t\tprice,\r\n\t\tpendingOrder = false,\r\n\t} = props;\r\n\tconst {t} = useTranslation();\r\n\r\n\tconst handleClose = useCallback(e => {\r\n\t\treturn onClose && onClose(e);\r\n\t}, [onClose]);\r\n\r\n\tconst currentTitle = useMemo(() => {\r\n\t\treturn pendingOrder\r\n\t\t\t? t('Trade.Execute.SuccessPending')\r\n\t\t\t: t('Trade.Execute.Success');\r\n\t}, [pendingOrder]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{!pendingOrder && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t{t('Trade.Execute.SuccessPrice')}\r\n\t\t\t\t\t\t \r\n\t\t\t\t\t\t{price || ''}\r\n\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileTradeSuccess;\r\n","import React, {useMemo} from 'react';\r\nimport {useTranslation} from 'react-i18next';\r\nimport MobileTransition from '../../../components/MobileTransition';\r\n\r\nconst MobileTradeError = ({showError = ''}) => {\r\n\tconst {t} = useTranslation();\r\n\r\n\tconst isOpen = useMemo(() => {\r\n\t\treturn !!showError || false;\r\n\t}, [showError]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{t(showError)}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileTradeError;\r\n","import React, {useEffect, useRef} from 'react';\r\nimport clsx from 'clsx';\r\n\r\nimport useControls from '../../../context/contextHook/useControls';\r\n\r\nconst MobileTradeScrollable = ({children, unitsDropDown}) => {\r\n\r\n\tconst {footerControls: {isVisible}} = useControls();\r\n\r\n\tconst wrapperRef = useRef();\r\n\r\n\tuseEffect(() => {\r\n\t\tif (wrapperRef && wrapperRef.current) {\r\n\t\t\twrapperRef.current.scrollTo(0, 0);\r\n\t\t}\r\n\t}, [unitsDropDown]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{children}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileTradeScrollable;\r\n","import React, {useMemo} from 'react';\r\nimport useSymbol from '../../../context/contextHook/useSymbol';\r\n\r\nconst MobileTradeDescription = () => {\r\n\tconst {selectedSymbol} = useSymbol();\r\n\r\n\tconst description = useMemo(() => {\r\n\t\treturn selectedSymbol?.description || '';\r\n\t}, [selectedSymbol]);\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t

    {description}

    \r\n\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileTradeDescription;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {useTranslation} from 'react-i18next';\r\nimport Switch from '../../../../UI/primitives/Switch';\r\nimport InputStepper from '../../../../UI/primitives/InputStepper';\r\nimport PendingDropDown from '../../../../UI/TradePopup/PendingDropDown';\r\nimport {ACTION_TYPE} from '../../../../UI/TradePopup/TradePopup';\r\nimport Button from '../../../../UI/primitives/Button';\r\nimport TickItemToolTipContent\r\n\tfrom '../../../../UI/TickItem/TickItemToolTipContent';\r\n\r\nconst MobileTradeTwo = props => {\r\n\tconst {\r\n\t\tpendingOrder,\r\n\t\thandleSwitchChange,\r\n\t\t// cancelOrder,\r\n\t\tprice,\r\n\t\tstatus,\r\n\t\tonClose,\r\n\t\tisPending,\r\n\t\thandleSetValue,\r\n\t\tpendingOrderPrice,\r\n\t\ttype,\r\n\t\tselectedSymbol,\r\n\t\tresponse,\r\n\t\ttickObj,\r\n\t\tactiveTextColor,\r\n\t\tinactiveTextColor,\r\n\t\tgeneralColor,\r\n\t\tsystemColor,\r\n\t\tfocusPendingOrder,\r\n\t} = props;\r\n\r\n\tconst [pendingPrice, setPendingPrice] = useState(pendingOrderPrice);\r\n\tconst [showError, setShowError] = useState('');\r\n\tconst [showInfo, setShowInfo] = useState(false);\r\n\tconst [pendingDropDown, setPendingDropDown] = useState(false);\r\n\tconst {t} = useTranslation();\r\n\tlet {pipDigit, displayDigit} = selectedSymbol;\r\n\tdisplayDigit = Math.max(displayDigit, pipDigit);\r\n\r\n\tlet pipNumber = 1;\r\n\tfor (let i = 0; i < pipDigit; i += 1) {\r\n\t\tpipNumber /= 10;\r\n\t}\r\n\r\n\tuseEffect(() => {\r\n\t\tsetPendingPrice(pendingOrderPrice);\r\n\t}, [pendingOrderPrice]);\r\n\r\n\tconst handleShowError = (error) => {\r\n\t\tsetShowError(error);\r\n\t};\r\n\r\n\tconst toggleInfo = () => {\r\n\t\tsetShowInfo((prevState) => !prevState);\r\n\t};\r\n\r\n\tconst togglePendingDropDown = () => {\r\n\t\tsetPendingDropDown((prevState) => !prevState);\r\n\t};\r\n\r\n\tconst closePendingDropDown = () => {\r\n\t\tsetPendingDropDown(false);\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tfocusPendingOrder && focusPendingOrder(pendingDropDown);\r\n\t}, [pendingDropDown]);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t{isPending && (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{showError &&\r\n\t\t\t\t\t\t{t(showError)}}\r\n\t\t\t\t\t\t{pendingDropDown && (\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\t{showInfo && }\r\n\t\t\t
    \r\n\t\t\t{(response || status) && (\r\n\t\t\t\t
    \r\n\t\t\t\t\t{response && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t

    {t('Trade.Execute.Failed')}

    \r\n\t\t\t\t\t\t\t{t(\r\n\t\t\t\t\t\t\t\tresponse.result ?? 'trading.error.GeneralError')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t
    \r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileTradeTwo;\r\n","import React, {useCallback, useEffect, useMemo, useState} from 'react';\r\nimport {shallowEqual, useSelector} from 'react-redux';\r\nimport clsx from 'clsx';\r\n\r\nimport {ACTION_TYPE} from '../../../../UI/TradePopup/TradePopup';\r\nimport { CommandFactory } from '../../../../background/commands/CommandFactory';\r\n\r\nimport useSymbol from '../../../context/contextHook/useSymbol';\r\nimport useTheme from '../../../context/contextHook/useTheme';\r\n\r\nimport PubsubSubscription from '../../../../background/repositories/PubsubSubscription';\r\nimport {roundNumberPipDigit} from '../../../../UI/utilsUI/formatWSTick';\r\nimport countDecimals from '../../../../UI/utilsUI/countDecimals';\r\nimport roundToPrecision from '../../../../UI/utilsUI/roundToPrecision';\r\nimport {calcPipValue} from '../MobileTradeMain';\r\nimport chartController from '../../../../background/chart/chartController';\r\n\r\n\r\nimport UnitsDropDown from '../../../../UI/TradePopup/UnitsDropDown';\r\nimport * as TradePopupAnalyticsEvents\r\n\tfrom '../../../../UI/TradePopup/TradePopupAnalyticsEvents';\r\n\r\nimport {MobileTradeDown, MobileTradeUnitsUp} from './MobileTradeInfo';\r\nimport MobileLoader from '../../../components/MobileLoader/MobileLoader';\r\nimport MobileTradeProcessing from './MobileTradeProcessing';\r\nimport MobileTradeSuccess from './MobileTradeSuccess';\r\nimport MobileTradeError from './MobileTradeError';\r\nimport MobileTradeScrollable from './MobileTradeScrollable';\r\nimport MobileTradeDescription from './MobileTradeDescription';\r\nimport MobileOrderSwitch\r\n\tfrom '../../../components/MobileSwitch/MobileOrderSwitch';\r\nimport MobileTransition from '../../../components/MobileTransition';\r\nimport InputStepper from '../../../../UI/primitives/InputStepper';\r\nimport calcMarginRequirement\r\n\tfrom '../../../../UI/utilsUI/calcMarginRequirement';\r\nimport MobileButton from '../../../components/Buttons/MobileButton';\r\nimport useControls from '../../../context/contextHook/useControls';\r\nimport MobileTradeTwo from './MobileTradeTwo';\r\n\r\nconst mainChartController = new chartController();\r\n\r\nconst MobileTradeSection = () => {\r\n\tconst {selectedSymbol} = useSymbol();\r\n\tconst {theme} = useTheme();\r\n\tconst {\r\n\t\ttradeControls,\r\n\t\tfooterControls: {isVisible, handleOnVisible, handleOnHide},\r\n\t} = useControls();\r\n\r\n\tconst {\r\n\t\ttick,\r\n\t\tcontractSize,\r\n\t\tminimumLot,\r\n\t\tmaximumLot,\r\n\t\tlotStep,\r\n\t} = useMemo(() => {\r\n\t\treturn selectedSymbol;\r\n\t}, [selectedSymbol]);\r\n\r\n\tconst {symbol} = useSelector(state => state.account.accountInfo.currency,\r\n\t\tshallowEqual);\r\n\r\n\t// STATE\r\n\tconst [type, setType] = useState(ACTION_TYPE.ASK);\r\n\tconst [isProcessing, setIsProcessing] = useState(false);\r\n\tconst [isLoading, setIsLoading] = useState(false);\r\n\tconst [focusPending, setFocusPending] = useState(false);\r\n\tconst [pendingOrder, setPendingOrder] = useState(false);\r\n\tconst [pendingOrderPrice, setPendingOrderPrice] = useState(null);\r\n\tconst [requestSuccess, setRequestSuccess] = useState(false);\r\n\tconst [showError, setShowError] = useState('');\r\n\tconst [response, setResponse] = useState('');\r\n\tconst [unitsDropDown, setUnitsDropDown] = useState(false);\r\n\tconst [orderInfo, setOrderInfo] = useState({status: '', price: null});\r\n\tconst [selectedUnits, setSelectedUnits] = useState({\r\n\t\tnumber: Math.max(minimumLot, lotStep),\r\n\t\trepresentation: Math.max(minimumLot, lotStep),\r\n\t});\r\n\r\n\tconst tickObj = PubsubSubscription.subscribeObj(tick);\r\n\tconst pnlTick = PubsubSubscription.subscribeObj(\r\n\t\t{key: 'MOVINGPNL', repId: 'ACCOUNT_PNL'});\r\n\r\n\t// MEMO\r\n\tconst {\r\n\t\tSubHeader: {Text},\r\n\t\tMainColor: {ActiveText, InactiveText},\r\n\t\tText: {GeneralColor, SystemColor},\r\n\t} = useMemo(() => {\r\n\t\treturn theme;\r\n\t}, [theme]);\r\n\r\n\tconst {unitsName, convertionHeader} = useMemo(() => {\r\n\t\tconst {contractSize, serverUnits, contractUnitType} = selectedSymbol;\r\n\t\tlet unitsName = '';\r\n\t\tlet convertionHeader = '';\r\n\t\tif (contractSize !== 1) {\r\n\t\t\tunitsName = serverUnits || 'unit';\r\n\t\t\tconvertionHeader = `1 ${unitsName} = ${roundNumberPipDigit(contractSize)}\r\n\t\t\t ${contractUnitType || ''}`;\r\n\t\t} else {\r\n\t\t\tunitsName = selectedSymbol?.contractUnitType || 'unit';\r\n\t\t}\r\n\t\treturn {\r\n\t\t\tunitsName,\r\n\t\t\tconvertionHeader,\r\n\t\t};\r\n\t}, [selectedSymbol]);\r\n\r\n\tconst isOpenProcessing = useMemo(() => {\r\n\t\treturn isProcessing || isLoading;\r\n\t}, [isProcessing, isLoading]);\r\n\r\n\tconst lotPipNumber = useMemo(() => {\r\n\t\treturn countDecimals(lotStep);\r\n\t}, [lotStep]);\r\n\r\n\tconst isBidType = useMemo(() => {\r\n\t\treturn type === ACTION_TYPE.BID;\r\n\t}, [type]);\r\n\r\n\tconst marginRequirement = useMemo(() => {\r\n\t\tconst {number} = selectedUnits;\r\n\t\treturn calcMarginRequirement(tickObj, type, selectedSymbol, number);\r\n\t}, [tickObj, type, selectedSymbol, selectedUnits.number]);\r\n\r\n\tconst pipValue = useMemo(() => {\r\n\t\tconst {number} = selectedUnits;\r\n\t\treturn calcPipValue(tickObj, selectedSymbol, number, type);\r\n\t}, [tickObj, selectedSymbol, selectedUnits, type]);\r\n\r\n\tconst buttonStyle = useMemo(() => {\r\n\t\tconst isBid = type === ACTION_TYPE.BID;\r\n\t\treturn {\r\n\t\t\tbackgroundColor: showError\r\n\t\t\t\t? ''\r\n\t\t\t\t: isBid ? '#DB6161' : '#1CB5EE',\r\n\t\t};\r\n\t}, [type, showError]);\r\n\r\n\tconst buttonClass = useMemo(() => {\r\n\t\treturn clsx(\r\n\t\t\t'mobile-open-order',\r\n\t\t\tshowError && 'no-pointer',\r\n\t\t\tshowError && type === ACTION_TYPE.BID && 'bid',\r\n\t\t\tshowError && type !== ACTION_TYPE.BID && 'ask',\r\n\t\t);\r\n\t}, [showError, type]);\r\n\r\n\tconst pendingOrderText = useMemo(() => {\r\n\t\tlet txt = '';\r\n\t\tif (pendingOrder) {\r\n\t\t\tif (type === ACTION_TYPE.BID) {\r\n\t\t\t\ttxt = pendingOrderPrice <= tickObj?.bid ?\r\n\t\t\t\t\t`SELL Stop ${selectedSymbol?.id} ${selectedUnits.representation} at ${pendingOrderPrice}` :\r\n\t\t\t\t\t`SELL Limit ${selectedSymbol?.id} ${selectedUnits.representation} at ${pendingOrderPrice}`;\r\n\t\t\t} else {\r\n\t\t\t\ttxt = pendingOrderPrice > tickObj?.ask ?\r\n\t\t\t\t\t`BUY Stop ${selectedSymbol?.id} ${selectedUnits.representation} at ${pendingOrderPrice}` :\r\n\t\t\t\t\t`BUY Limit ${selectedSymbol?.id} ${selectedUnits.representation} at ${pendingOrderPrice}`;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn txt;\r\n\t}, [pendingOrder, type, pendingOrderPrice, tickObj]);\r\n\r\n\t// CALLBACK\r\n\tconst onChangeSwitch = useCallback(type => {\r\n\t\tif (!type) return null;\r\n\t\tsetType(type);\r\n\t}, [type]);\r\n\r\n\tconst handleSetValue = useCallback(units => {\r\n\t\tsetShowError('');\r\n\t\tconst decimals = countDecimals(units.replace(/[^0-9\\.]/g, ''));\r\n\t\tconst unitsValue = decimals === 0\r\n\t\t\t? units.replace(/[^0-9\\.]/g, '')\r\n\t\t\t: roundNumberPipDigit(units, decimals);\r\n\t\tsetSelectedUnits(\r\n\t\t\t{\r\n\t\t\t\tnumber: roundToPrecision(unitsValue, decimals),\r\n\t\t\t\trepresentation: units,\r\n\t\t\t});\r\n\t}, []);\r\n\r\n\tconst handleShowError = useCallback(error => {\r\n\t\tsetShowError(error);\r\n\t}, []);\r\n\r\n\tconst openUnitsDropDown = useCallback(() => {\r\n\t\tresponse && setResponse('');\r\n\t\tsetUnitsDropDown(true);\r\n\t}, [response]);\r\n\r\n\tconst toggleUnitsDropDown = useCallback(() => {\r\n\t\tsetUnitsDropDown(prev => !prev);\r\n\t}, []);\r\n\r\n\tconst handleSwitchChange = useCallback(() => {\r\n\t\tresponse && setResponse('');\r\n\t\tsetPendingOrderPrice(isBidType\r\n\t\t\t? PubsubSubscription.getValueNative(tick).bid\r\n\t\t\t: PubsubSubscription.getValueNative(tick).ask);\r\n\t\tsetPendingOrder(prev => !prev);\r\n\t}, [response, isBidType, tick]);\r\n\r\n\tconst cancelOrder = useCallback(() => {\r\n\t\tsetResponse('');\r\n\t\tsetType('');\r\n\t}, []);\r\n\r\n\tconst handleSetPendingPrice = useCallback(units => {\r\n\t\tresponse && setResponse('');\r\n\t\tsetPendingOrderPrice(units);\r\n\t}, [response]);\r\n\r\n\tconst handleOnClose = useCallback(e => {\r\n\t\te && e.preventDefault();\r\n\t\tif (!tradeControls) return null;\r\n\t\tconst {handleClose} = tradeControls;\r\n\t\thandleClose && handleClose();\r\n\t}, [tradeControls]);\r\n\r\n\tconst focusPendingOrder = useCallback(isFocus => {\r\n\t\tsetFocusPending(isFocus);\r\n\t}, []);\r\n\r\n\t// HANDLERS\r\n\tconst handleOpenPosition = useCallback(async e => {\r\n\t\te && e.preventDefault();\r\n\r\n\t\tconst commandObj = {\r\n\t\t\tcmdId: selectedSymbol.openPositionCMD.cmdId,\r\n\t\t\tstaticParams: selectedSymbol.openPositionCMD.staticParams,\r\n\t\t\tstoreRef: selectedSymbol.openPositionCMD.storeRef,\r\n\t\t\tuserInput: {\r\n\t\t\t\tactionType: isBidType ? 1 : 0,\r\n\t\t\t\tamount: selectedUnits.number,\r\n\t\t\t},\r\n\t\t};\r\n\t\tconst command = CommandFactory.createCommand(commandObj);\r\n\t\tsetOrderInfo(prev => ({\r\n\t\t\t...prev,\r\n\t\t\tprice: isBidType\r\n\t\t\t\t? PubsubSubscription.getValueNative(tick).bid\r\n\t\t\t\t: PubsubSubscription.getValueNative(tick).ask,\r\n\t\t}));\r\n\t\tsetIsProcessing(true);\r\n\r\n\t\tconst sendOpenPositionEventFunc = TradePopupAnalyticsEvents.createOpenPositionEvent(\r\n\t\t\ttickObj, roundNumberPipDigit(pipValue, 2),\r\n\t\t\troundNumberPipDigit(marginRequirement, 2), selectedSymbol.displayName,\r\n\t\t\tselectedUnits.number, type, mainChartController);\r\n\r\n\t\ttry {\r\n\t\t\tsetResponse(null);\r\n\t\t\tconst res = await command.execute();\r\n\r\n\t\t\tif (res.isSuccessful) {\r\n\t\t\t\tsendOpenPositionEventFunc(false, true, res.price, res.result);\r\n\t\t\t\tsetOrderInfo(prev => ({\r\n\t\t\t\t\t...prev,\r\n\t\t\t\t\tstatus: 'success',\r\n\t\t\t\t\tprice: res.price,\r\n\t\t\t\t}));\r\n\t\t\t} else {\r\n\t\t\t\tsendOpenPositionEventFunc(false, false, 0,\r\n\t\t\t\t\tres.result ?? 'trading.error.GeneralError');\r\n\t\t\t\tsetResponse(res);\r\n\t\t\t}\r\n\t\t} catch (err) {\r\n\t\t\tsendOpenPositionEventFunc(false, false, 0, 'trading.error.GeneralError');\r\n\t\t\tsetResponse(err);\r\n\t\t}\r\n\r\n\t\tsetIsProcessing(false);\r\n\t}, [\r\n\t\tselectedSymbol,\r\n\t\tisBidType,\r\n\t\tselectedUnits,\r\n\t\ttick,\r\n\t\ttickObj,\r\n\t\tpipValue,\r\n\t\tmarginRequirement,\r\n\t\ttype,\r\n\t\tmainChartController]);\r\n\r\n\tconst handlePendingOrder = useCallback(async e => {\r\n\t\te && e.preventDefault();\r\n\r\n\t\tconst commandObj = {\r\n\t\t\t...selectedSymbol.openPendingOrderCMD,\r\n\t\t\tuserInput: {\r\n\t\t\t\tactionType: isBidType ? 1 : 0,\r\n\t\t\t\tamount: selectedUnits.number,\r\n\t\t\t\tprice: pendingOrderPrice,\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tconst command = CommandFactory.createCommand(commandObj);\r\n\t\tsetIsLoading(true);\r\n\t\tconst sendPendingOrderEventFunc = TradePopupAnalyticsEvents.createPendingOrderEvent(\r\n\t\t\ttickObj, roundNumberPipDigit(pipValue, 2),\r\n\t\t\troundNumberPipDigit(marginRequirement, 2), selectedSymbol.displayName,\r\n\t\t\tselectedUnits.number, type, pendingOrderPrice, mainChartController);\r\n\r\n\t\ttry {\r\n\t\t\tsetResponse(null);\r\n\t\t\tconst res = await command.execute();\r\n\r\n\t\t\tif (res.isSuccessful) {\r\n\t\t\t\tsendPendingOrderEventFunc(false, true, res.result);\r\n\t\t\t\tsetOrderInfo(\r\n\t\t\t\t\tprev => ({...prev, status: 'success', price: pendingOrderPrice}));\r\n\t\t\t} else {\r\n\t\t\t\tsendPendingOrderEventFunc(false, false,\r\n\t\t\t\t\tres.result ?? 'trading.error.GeneralError');\r\n\t\t\t\tsetResponse(res);\r\n\t\t\t}\r\n\t\t} catch (err) {\r\n\t\t\tsendPendingOrderEventFunc(false, false, 'trading.error.GeneralError');\r\n\t\t\tsetResponse(err);\r\n\t\t}\r\n\r\n\t\tsetIsLoading(false);\r\n\t}, [selectedSymbol, isBidType, selectedUnits, pendingOrderPrice]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (orderInfo && orderInfo.status === 'success') {\r\n\t\t\tsetRequestSuccess(true);\r\n\t\t}\r\n\t}, [orderInfo]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!!unitsDropDown || !!focusPending) {\r\n\t\t\thandleOnHide && handleOnHide();\r\n\t\t} else {\r\n\t\t\thandleOnVisible && handleOnVisible();\r\n\t\t}\r\n\t\treturn () => {\r\n\t\t\thandleOnVisible && handleOnVisible();\r\n\t\t};\r\n\t}, [unitsDropDown, focusPending]);\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t{/*processing*/}\r\n\t\t\t\r\n\r\n\t\t\t{/*loading*/}\r\n\t\t\t\r\n\r\n\t\t\t{/*success*/}\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t{isVisible && (\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{!focusPending && (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t{convertionHeader}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t{unitsDropDown && (\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{/*error*/}\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t\r\n\t\t\t
    \r\n\r\n\t\t\t{/*buttons*/}\r\n\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t\t{pendingOrder && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{pendingOrderText}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{!pendingOrder && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{type === ACTION_TYPE.BID ?\r\n\t\t\t\t\t\t\t\t`Sell ${selectedSymbol?.id} ${selectedUnits.representation} at ${tickObj?.bid}` :\r\n\t\t\t\t\t\t\t\t`Buy ${selectedSymbol?.id} ${selectedUnits.representation} at ${tickObj?.ask}`}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t
    \r\n\t\t\t\r\n\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileTradeSection;\r\n","import React, {useRef} from 'react';\r\n\r\nimport useSymbol from '../../context/contextHook/useSymbol';\r\n\r\nimport MobileSwiper from '../../components/MobileSwiper';\r\nimport MobilePopUpHeader from '../../components/MobilePopUp/MobilePopUpHeader';\r\nimport MobileTradeHeader from './MobileTradeHeader';\r\nimport MobileTradeSection from './MobileTradeSection/MobileTradeSection';\r\n\r\nconst MobileTrade = ({onClose}) => {\r\n\r\n\tconst touchRef = useRef(null);\r\n\r\n\tconst {selectedSymbol} = useSymbol();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{/*HEADER*/}\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t{/*MAIN SECTION*/}\r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t{/*\t*/}\r\n\t\t\t
    \r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileTrade;\r\n","import React, {useCallback, useEffect, useMemo, useState} from 'react';\r\n\r\nimport useSymbol from '../context/contextHook/useSymbol';\r\nimport useControls from '../context/contextHook/useControls';\r\nimport {trade4ProToInternal} from '../../shared/Charts/ChartPanel';\r\n\r\nimport MobileTradingChart\r\n\tfrom '../modules/MobileTrading/MobileTradingChart/MobileTradingChart';\r\nimport MobileTrade from '../modules/MobileTrade/MobileTrade';\r\nimport MobilePopUp from '../components/MobilePopUp/MobilePopUp';\r\n\r\nconst MobileTradingChartPage = () => {\r\n\tconst {\r\n\t\tselectedSymbol,\r\n\t\tsetSelectedSymbol,\r\n\t\torderedSymbols,\r\n\t} = useSymbol();\r\n\tconst {tradingChartControls, tradeControls} = useControls();\r\n\r\n\tconst timeFrames = useMemo(() => {\r\n\t\tconst timeFrames = [];\r\n\t\tObject.entries(trade4ProToInternal).forEach((item) => {\r\n\t\t\ttimeFrames.push({timeKey: item[1], timeValue: item[0]});\r\n\t\t});\r\n\t\treturn timeFrames;\r\n\t}, [trade4ProToInternal]);\r\n\r\n\tconst [timeSelected, setTimeSelected] = useState(timeFrames[1]);\r\n\r\n\tconst symbolValue = useMemo(() => {\r\n\t\treturn orderedSymbols?.findIndex(el => el.id === selectedSymbol.id);\r\n\t}, [selectedSymbol, orderedSymbols]);\r\n\r\n\tconst handleChangeSymbol = useCallback(option => {\r\n\t\tsetSelectedSymbol && setSelectedSymbol(option.value);\r\n\t}, []);\r\n\r\n\tconst handleTimeChange = useCallback(option => {\r\n\t\tif (!option) return null;\r\n\t\tsetTimeSelected && setTimeSelected(option);\r\n\t}, [setTimeSelected]);\r\n\r\n\t//trade pop up\r\n\tconst handleTradeClose = useCallback(() => {\r\n\t\tif (!tradeControls) return null;\r\n\t\tconst {handleClose} = tradeControls;\r\n\t\thandleClose && handleClose();\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst {handleOpen, handleClose} = tradingChartControls;\r\n\t\thandleOpen();\r\n\t\treturn () => {\r\n\t\t\thandleClose();\r\n\t\t};\r\n\t}, [tradingChartControls]);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{selectedSymbol && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\r\n\t\t\t{/*TRADE POP UP*/}\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileTradingChartPage;\r\n","import React, {Component} from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nclass MobileSwipeRowClass extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tthis.state = {\r\n\t\t\tx: 0,\r\n\t\t\ty: 0,\r\n\t\t\tstartTime: null,\r\n\t\t\tswiping: 0,\r\n\t\t\tmove: 0,\r\n\t\t\toffset: 0,\r\n\t\t\ttransition: false,\r\n\t\t\tleftActionBoxWidth: 0,\r\n\t\t\tleftActionBoxVisibility: false,\r\n\t\t\trightActionBoxWidth: 0,\r\n\t\t\trightActionBoxVisibility: false,\r\n\t\t};\r\n\t\tthis.handleTouchStart = this.handleTouchStart.bind(this);\r\n\t\tthis.handleTouchMove = this.handleTouchMove.bind(this);\r\n\t\tthis.handleTouchEnd = this.handleTouchEnd.bind(this);\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.setState({\r\n\t\t\tleftActionBoxWidth: this.leftActionBox.getBoundingClientRect().width,\r\n\t\t\trightActionBoxWidth: this.rightActionBox.getBoundingClientRect().width,\r\n\t\t});\r\n\t}\r\n\r\n\tcomponentWillReceiveProps(nextProps) {\r\n\t\tif (nextProps.isClose !== this.props.isClose && nextProps.isClose) {\r\n\t\t\tthis.doClose();\r\n\t\t}\r\n\t}\r\n\r\n\tdoUpdateContentOffset(offset = 0) {\r\n\t\tthis.setState({\r\n\t\t\tswiping: 0,\r\n\t\t\tmove: 0,\r\n\t\t\toffset,\r\n\t\t\ttransition: true,\r\n\t\t});\r\n\t}\r\n\r\n\tdoClose() {\r\n\t\tthis.doUpdateContentOffset(0);\r\n\t}\r\n\r\n\tgetPosition(e) {\r\n\t\treturn {\r\n\t\t\tx: e.targetTouches[0].clientX,\r\n\t\t\ty: e.targetTouches[0].clientY,\r\n\t\t};\r\n\t}\r\n\r\n\tcalculateMovingDistance(e) {\r\n\t\tconst {x, y} = this.getPosition(e);\r\n\t\tconst deltaX = x - this.state.x;\r\n\t\tconst deltaY = y - this.state.y;\r\n\t\treturn {\r\n\t\t\tdeltaX,\r\n\t\t\tdeltaY,\r\n\t\t\tabsX: Math.abs(deltaX),\r\n\t\t\tabsY: Math.abs(deltaY),\r\n\t\t};\r\n\t}\r\n\r\n\thandleTouchStart(e) {\r\n\t\tconst {x, y} = this.getPosition(e);\r\n\t\tthis.setState({\r\n\t\t\tx,\r\n\t\t\ty,\r\n\t\t\tstartTime: Date.now(),\r\n\t\t});\r\n\t\tthis.props.onTouchStart && this.props.onTouchStart(e, this.state);\r\n\t}\r\n\r\n\thandleTouchMove(e) {\r\n\t\tconst {deltaThreshold, disableSwipeLeft, disableSwipeRight} = this.props;\r\n\t\tconst {deltaX, absX, absY} = this.calculateMovingDistance(e);\r\n\r\n\t\tlet swiping = this.state.swiping;\r\n\t\tif (absX < deltaThreshold && absY < deltaThreshold && !swiping) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// defined swiping when acrossed delta threshold\r\n\t\tif (!swiping) {\r\n\t\t\tswiping = absX > absY ? 1 : -1;\r\n\t\t}\r\n\r\n\t\tif (swiping > 0) {\r\n\t\t\t// if this swiping is defined as a horzental swiping, prevent default behavior\r\n\t\t\t// and update the state of SwipeRow\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\tlet move = deltaX;\r\n\t\t\tlet offset = this.state.offset;\r\n\t\t\tconst contentPosition = move + offset;\r\n\r\n\t\t\t// handle the disable swipe\r\n\t\t\tif (\r\n\t\t\t\t\t(disableSwipeRight && contentPosition >= 0) ||\r\n\t\t\t\t\t(disableSwipeLeft && contentPosition <= 0)\r\n\t\t\t) {\r\n\t\t\t\tmove = 0;\r\n\t\t\t\toffset = 0;\r\n\t\t\t}\r\n\r\n\t\t\tthis.setState({\r\n\t\t\t\tswiping,\r\n\t\t\t\tmove,\r\n\t\t\t\toffset,\r\n\t\t\t\ttransition: false,\r\n\t\t\t\tleftActionBoxVisibility: contentPosition > 0,\r\n\t\t\t\trightActionBoxVisibility: contentPosition < 0,\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t// if this swiping is regarded as a vertical swiping, ignore horizental swiping change\r\n\t\t\tthis.setState({\r\n\t\t\t\tswiping,\r\n\t\t\t});\r\n\t\t}\r\n\t\tthis.props.onTouchMove && this.props.onTouchMove(e, this.state);\r\n\t}\r\n\r\n\thandleTouchEnd(e) {\r\n\t\tconst {\r\n\t\t\tmove,\r\n\t\t\tstartTime,\r\n\t\t\toffset,\r\n\t\t\tleftActionBoxWidth,\r\n\t\t\trightActionBoxWidth,\r\n\t\t} = this.state;\r\n\t\tconst {\r\n\t\t\tswitchThreshold,\r\n\t\t\tflickThreshold,\r\n\t\t\tdisableSwipeLeft,\r\n\t\t\tdisableSwipeRight,\r\n\t\t} = this.props;\r\n\r\n\t\tconst contentPosition = move + offset;\r\n\t\tconst duration = Date.now() - startTime;\r\n\r\n\t\tlet newOffset = offset;\r\n\r\n\t\tif (move > 0) {\r\n\t\t\t// if swipe right\r\n\t\t\tif (duration < flickThreshold) {\r\n\t\t\t\t// if it is a flick swipe\r\n\t\t\t\tnewOffset = offset < 0 ? 0 : leftActionBoxWidth;\r\n\t\t\t} else {\r\n\t\t\t\t// check whether the right action box needs to be closed\r\n\t\t\t\tif (contentPosition > -rightActionBoxWidth * switchThreshold) {\r\n\t\t\t\t\t// check whether the left action box need to be open\r\n\t\t\t\t\tnewOffset =\r\n\t\t\t\t\t\t\t!disableSwipeRight &&\r\n\t\t\t\t\t\t\tcontentPosition > leftActionBoxWidth * switchThreshold\r\n\t\t\t\t\t\t\t\t\t? leftActionBoxWidth\r\n\t\t\t\t\t\t\t\t\t: 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (move < 0) {\r\n\t\t\t// if swipe left\r\n\t\t\tif (duration < flickThreshold) {\r\n\t\t\t\t// if it is a flick swipe\r\n\t\t\t\tnewOffset = offset > 0 ? 0 : -rightActionBoxWidth;\r\n\t\t\t} else {\r\n\t\t\t\t// check whether the left action box needs to be closed\r\n\t\t\t\tif (contentPosition < leftActionBoxWidth * switchThreshold) {\r\n\t\t\t\t\t// check whether the right action box need to be open\r\n\t\t\t\t\tnewOffset =\r\n\t\t\t\t\t\t\t!disableSwipeLeft &&\r\n\t\t\t\t\t\t\tcontentPosition < -rightActionBoxWidth * switchThreshold\r\n\t\t\t\t\t\t\t\t\t? -rightActionBoxWidth\r\n\t\t\t\t\t\t\t\t\t: 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.doUpdateContentOffset(newOffset);\r\n\t\tthis.props.onTouchEnd && this.props.onTouchEnd(e, this.state);\r\n\t}\r\n\r\n\twrapParallaxActions(buttons, align, contentPosition, width, transition) {\r\n\t\treturn (\r\n\t\t\t\tbuttons &&\r\n\t\t\t\tbuttons.map((el, idx) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{el}\r\n\t\t\t\t\t\t\r\n\t\t\t\t))\r\n\t\t);\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst {\r\n\t\t\tprops: {\r\n\t\t\t\tleftButtons,\r\n\t\t\t\trightButtons,\r\n\t\t\t\ttransitionFunc,\r\n\t\t\t\tdisableParallax,\r\n\t\t\t\tdisableExpand,\r\n\t\t\t\tclassName,\r\n\t\t\t\tchildren,\r\n\t\t\t},\r\n\t\t\tstate: {\r\n\t\t\t\tmove,\r\n\t\t\t\toffset,\r\n\t\t\t\ttransition,\r\n\t\t\t\tleftActionBoxWidth,\r\n\t\t\t\trightActionBoxWidth,\r\n\t\t\t\tleftActionBoxVisibility,\r\n\t\t\t\trightActionBoxVisibility,\r\n\t\t\t},\r\n\t\t} = this;\r\n\r\n\t\tconst transitionStyle =\r\n\t\t\t\tthis.state.swiping && !transition ? '' : transitionFunc;\r\n\t\tconst contentPosition = move + offset;\r\n\r\n\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\t\t\t\ttransition: false,\r\n\t\t\t\t\t\t\t\t\t\tleftActionBoxVisibility: offset > 0,\r\n\t\t\t\t\t\t\t\t\t\trightActionBoxVisibility: offset < 0,\r\n\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{children}\r\n\t\t\t\t\t\r\n\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\tthis.leftActionBox = el;\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\tvisibility: leftActionBoxVisibility ? 'visible' : 'hidden',\r\n\t\t\t\t\t\t\t\tposition: 'absolute',\r\n\t\t\t\t\t\t\t\ttop: 0,\r\n\t\t\t\t\t\t\t\tleft: disableParallax\r\n\t\t\t\t\t\t\t\t\t\t? 0\r\n\t\t\t\t\t\t\t\t\t\t: Math.min(0, -leftActionBoxWidth + contentPosition),\r\n\t\t\t\t\t\t\t\twidth:\r\n\t\t\t\t\t\t\t\t\t\tdisableParallax || disableExpand\r\n\t\t\t\t\t\t\t\t\t\t\t\t?\r\n\t\t\t\t\t\t\t\t\t\t\t\t'auto'\r\n\t\t\t\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t\t\t\tMath.max(leftActionBoxWidth, contentPosition) || 'auto',\r\n\t\t\t\t\t\t\t\theight: '100%',\r\n\t\t\t\t\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t\t\t\t\tflexDirection: 'row-reverse',\r\n\t\t\t\t\t\t\t\ttransition: transitionStyle,\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{disableParallax\r\n\t\t\t\t\t\t\t\t? leftButtons\r\n\t\t\t\t\t\t\t\t: this.wrapParallaxActions(\r\n\t\t\t\t\t\t\t\t\t\tleftButtons,\r\n\t\t\t\t\t\t\t\t\t\t'right',\r\n\t\t\t\t\t\t\t\t\t\tcontentPosition,\r\n\t\t\t\t\t\t\t\t\t\tleftActionBoxWidth,\r\n\t\t\t\t\t\t\t\t\t\ttransitionStyle,\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\tthis.rightActionBox = el;\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\t\t\tvisibility: rightActionBoxVisibility ? 'visible' : 'hidden',\r\n\t\t\t\t\t\t\t\tposition: 'absolute',\r\n\t\t\t\t\t\t\t\ttop: 0,\r\n\t\t\t\t\t\t\t\tright: disableParallax\r\n\t\t\t\t\t\t\t\t\t\t? 0\r\n\t\t\t\t\t\t\t\t\t\t: Math.min(0, -rightActionBoxWidth - contentPosition),\r\n\t\t\t\t\t\t\t\twidth:\r\n\t\t\t\t\t\t\t\t\t\tdisableParallax || disableExpand\r\n\t\t\t\t\t\t\t\t\t\t\t\t?\r\n\t\t\t\t\t\t\t\t\t\t\t\t'auto'\r\n\t\t\t\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t\t\t\tMath.max(rightActionBoxWidth, -contentPosition) ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t'auto',\r\n\t\t\t\t\t\t\t\theight: '100%',\r\n\t\t\t\t\t\t\t\tdisplay: 'flex',\r\n\t\t\t\t\t\t\t\ttransition: transitionStyle,\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{disableParallax\r\n\t\t\t\t\t\t\t\t? rightButtons\r\n\t\t\t\t\t\t\t\t: this.wrapParallaxActions(\r\n\t\t\t\t\t\t\t\t\t\trightButtons,\r\n\t\t\t\t\t\t\t\t\t\t'left',\r\n\t\t\t\t\t\t\t\t\t\tcontentPosition,\r\n\t\t\t\t\t\t\t\t\t\trightActionBoxWidth,\r\n\t\t\t\t\t\t\t\t\t\ttransitionStyle,\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t);\r\n\t}\r\n}\r\n\r\nMobileSwipeRowClass.propTypes = {\r\n\tonTouchStart: PropTypes.func,\r\n\tonTouchMove: PropTypes.func,\r\n\tonTouchEnd: PropTypes.func,\r\n\tclassName: PropTypes.string,\r\n\trowHeight: PropTypes.string,\r\n\tchildren: PropTypes.node,\r\n\tleftButtons: PropTypes.array,\r\n\trightButtons: PropTypes.array,\r\n\tisClose: PropTypes.bool,\r\n\tswitchThreshold: PropTypes.number,\r\n\tdeltaThreshold: PropTypes.number,\r\n\tflickThreshold: PropTypes.number,\r\n\ttransitionFunc: PropTypes.string,\r\n\tdisableSwipeLeft: PropTypes.bool,\r\n\tdisableSwipeRight: PropTypes.bool,\r\n\tdisableParallax: PropTypes.bool,\r\n\tdisableExpand: PropTypes.bool,\r\n};\r\n\r\nMobileSwipeRowClass.defaultProps = {\r\n\tleftButtons: [],\r\n\trightButtons: [],\r\n\tisClose: undefined,\r\n\tswitchThreshold: 0.5,\r\n\tdeltaThreshold: 10,\r\n\tflickThreshold: 200,\r\n\ttransitionFunc: 'all .3s cubic-bezier(0, 0, 0, 1)',\r\n\trowHeight: '100%',\r\n\tdisableSwipeLeft: false,\r\n\tdisableSwipeRight: false,\r\n\tdisableParallax: false,\r\n\tdisableExpand: false,\r\n};\r\n\r\nexport default MobileSwipeRowClass;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport MobileSwipeRowClass from './MobileSwipeRowClass';\r\n\r\nconst MobileSwipeRow = props => {\r\n\tconst {\r\n\t\tleftButtons,\r\n\t\trightButtons,\r\n\t\tisClose,\r\n\t\tswitchThreshold,\r\n\t\tdeltaThreshold,\r\n\t\tflickThreshold,\r\n\t\ttransitionFunc,\r\n\t\tdisableSwipeLeft,\r\n\t\tdisableSwipeRight,\r\n\t\tdisableParallax,\r\n\t\tdisableExpand,\r\n\t\tchildren,\r\n\t\trowHeight,\r\n\t\trowId,\r\n\t} = props;\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nMobileSwipeRow.defaultProps = {\r\n\tleftButtons: [],\r\n\trightButtons: [],\r\n\tisClose: undefined,\r\n\tswitchThreshold: 0.5,\r\n\tdeltaThreshold: 10,\r\n\tflickThreshold: 200,\r\n\ttransitionFunc: 'all .3s cubic-bezier(0, 0, 0, 1)',\r\n\trowHeight: '100%',\r\n\tdisableSwipeLeft: false,\r\n\tdisableSwipeRight: false,\r\n\tdisableParallax: false,\r\n\tdisableExpand: false,\r\n};\r\n\r\nMobileSwipeRow.defaultProps = {\r\n\tclassName: PropTypes.string,\r\n\ttransitionFunc: PropTypes.string,\r\n\trowHeight: PropTypes.string,\r\n\tonTouchStart: PropTypes.func,\r\n\tonTouchMove: PropTypes.func,\r\n\tonTouchEnd: PropTypes.func,\r\n\tleftButtons: PropTypes.array,\r\n\trightButtons: PropTypes.array,\r\n\tswitchThreshold: PropTypes.number,\r\n\tdeltaThreshold: PropTypes.number,\r\n\tflickThreshold: PropTypes.number,\r\n\tisClose: PropTypes.bool,\r\n\tdisableSwipeLeft: PropTypes.bool,\r\n\tdisableSwipeRight: PropTypes.bool,\r\n\tdisableParallax: PropTypes.bool,\r\n\tdisableExpand: PropTypes.bool,\r\n\tchildren: PropTypes.oneOfType([\r\n\t\tPropTypes.node,\r\n\t\tPropTypes.oneOf(['null']),\r\n\t]),\r\n};\r\n\r\nexport default MobileSwipeRow;\r\n","import React, {useCallback, useMemo} from 'react';\r\nimport clsx from 'clsx';\r\n\r\nimport MobileSwipeRow from '../../../components/MobileSwipeRow/MobileSwipeRow';\r\n\r\nimport PubsubSubscription from '../../../../background/repositories/PubsubSubscription';\r\nimport {prepareBidAsk} from '../../../../UI/utilsUI/formatWSTick';\r\nimport useWindowSize from '../../../../UI/utilsUI/useWindowSize';\r\nimport MobileSymbolIcon\r\n\tfrom '../../../components/MobileSymbolIcon/MobileSymbolIcon';\r\n\r\nconst MobileTradingAllItem = props => {\r\n\tconst {\r\n\t\tid,\r\n\t\tindex,\r\n\t\tdisplayName,\r\n\t\tflag,\r\n\t\ttick,\r\n\t\tdisplayDigit,\r\n\t\thandleBackClick,\r\n\t\tonClick,\r\n\t\thandleIndex,\r\n\t\tisActive,\r\n\t\tisPin,\r\n\t} = props;\r\n\r\n\tconst [symbolTick, previousTick] = PubsubSubscription.subscribeObjAndPrev(\r\n\t\t\ttick);\r\n\tconst {bidOutput, askOutput} = prepareBidAsk(symbolTick, previousTick,\r\n\t\t\tdisplayDigit);\r\n\r\n\tconst [width] = useWindowSize();\r\n\r\n\tconst handleButtonClick = useCallback(e => {\r\n\t\te && e.preventDefault();\r\n\t\thandleBackClick && handleBackClick();\r\n\t}, [handleBackClick]);\r\n\r\n\tconst handleRowClick = useCallback(e => {\r\n\t\te && e.preventDefault();\r\n\t\tonClick && onClick(props);\r\n\t\thandleIndex && handleIndex(index);\r\n\t}, [onClick, handleIndex]);\r\n\r\n\tconst leftButtons = useMemo(() => {\r\n\t\treturn [\r\n\t\t\t//
    \r\n\t\t\t// \t,\r\n\t\t\t//
    ,\r\n\t\t\t//
    pin
    ,\r\n\t\t\t//
    test\r\n\t\t\t// \tpin button
    ,\r\n\t\t\t//
    Pin
    ,\r\n\t\t\t//
    Mute
    \r\n\t\t];\r\n\t}, [width]);\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t{displayName}\r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t{isActive && (\r\n\t\t\t\t\t\t\t\t handleButtonClick(e)}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{/*TODO: locale*/}\r\n\t\t\t\t\t\t\t\t\tGo to the chart\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{!isActive && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    {bidOutput}
    \r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    {askOutput}
    \r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileTradingAllItem;\r\n","import React, {useCallback} from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport Input from '@material-ui/core/Input';\r\n\r\nconst MobileInputSearch = props => {\r\n\tconst {\r\n\t\tvalue,\r\n\t\tonChange,\r\n\t\tendAdornment,\r\n\t\tstyle,\r\n\t\tplaceholder,\r\n\t\tname,\r\n\t\tclassName,\r\n\t\tid,\r\n\t\tautoComplete,\r\n\t} = props;\r\n\r\n\tconst handleOnChange = useCallback(props => {\r\n\t\tonChange && onChange(props);\r\n\t}, [onChange]);\r\n\r\n\treturn (\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nMobileInputSearch.defaultProps = {\r\n\tendAdornment: <>,\r\n\tstyle: {},\r\n\tautoComplete: false,\r\n\tplaceholder: '',\r\n\tvalue: '',\r\n\tname: '',\r\n\tclassName: '',\r\n\tid: '',\r\n};\r\n\r\nMobileInputSearch.propTypes = {\r\n\tplaceholder: PropTypes.string,\r\n\tvalue: PropTypes.string,\r\n\tname: PropTypes.string,\r\n\tclassName: PropTypes.string,\r\n\tid: PropTypes.string,\r\n\tautoComplete: PropTypes.bool,\r\n\tstyle: PropTypes.object,\r\n\tendAdornment: PropTypes.node,\r\n};\r\n\r\nexport default MobileInputSearch;\r\n","import React, {useCallback, useEffect, useMemo, useState} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {shallowEqual, useSelector} from 'react-redux';\r\nimport {useTranslation} from 'react-i18next';\r\nimport clsx from 'clsx';\r\n\r\nimport MobileInputSearch\r\n\tfrom '../../../components/MobileAction/MobileInputSearch';\r\nimport MobileTransition from '../../../components/MobileTransition';\r\n\r\nimport Icon from '@material-ui/core/Icon';\r\nimport InputAdornment from '@material-ui/core/InputAdornment';\r\nimport SearchIcon from '../../../../UI/icons/SearchIcon';\r\nimport MobileCarouselMenu\r\n\tfrom '../../../components/MobileCarousel/MobileCarouselMenu';\r\n\r\nconst MobileTradingAllActionBlock = props => {\r\n\tconst {onChangeSearch, onChangeGroup, isVisible} = props;\r\n\r\n\tconst {t} = useTranslation();\r\n\r\n\tconst {Buttons: {TextColor}, Text: {GeneralColor}} = useSelector(\r\n\t\t\tstate => state.brand.theme, shallowEqual);\r\n\tconst {symbols, symbolsOrder} = useSelector(state => state.account.symbols,shallowEqual);\r\n const { marketRatesSettings } = useSelector(state => state.account.accountInfo, shallowEqual);\r\n\tconst [symbolGroups, setSymbolGroups] = useState([]);\r\n\tconst [groupsTab, setGroupsTab] = useState(0);\r\n\tconst [stateObject, setStateObject] = useState({symbol: '', symbolGroup: ''});\r\n\r\n\tconst handleChange = useCallback(e => {\r\n\t\tconst {name, value} = e.target;\r\n\t\tsetStateObject((prev) => ({\r\n\t\t\t...prev,\r\n\t\t\t[name]: value,\r\n\t\t}));\r\n\t\tif (name === 'symbol') return onChangeSearch && onChangeSearch(value);\r\n\t\tif (name === 'symbolGroup') return onChangeGroup && onChangeGroup(value);\r\n\t}, [setStateObject, onChangeSearch, onChangeGroup]);\r\n\r\n\tconst resetSearch = useCallback(() => {\r\n\t\tsetStateObject((prev) => ({\r\n\t\t\t...prev,\r\n\t\t\tsymbol: '',\r\n\t\t}));\r\n\t\treturn onChangeSearch && onChangeSearch('');\r\n\t\t// searchSubmit(null, 'MarketRates.Groups.All');\r\n\t}, [setStateObject, handleChange, onChangeSearch]);\r\n\r\n\tconst handleGroupChange = useCallback(({index, value}) => {\r\n\t\tsetGroupsTab(index);\r\n\t\tonChangeGroup && onChangeGroup(value.value);\r\n\t}, [onChangeGroup]);\r\n\r\n\tconst icon = useMemo(() => {\r\n\t\treturn stateObject.symbol ? (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t) : (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t);\r\n\t}, [GeneralColor, resetSearch, stateObject, stateObject.symbol]);\r\n\r\n\tuseEffect(() => {\r\n const all = 'MarketRates.Groups.All';\r\n\t\tvar arr = [all];\r\n var groups = new Set();\r\n groups.add(all);\r\n\r\n for (const symbolId of symbolsOrder) {\r\n const stateSymbol = symbols[symbolId];\r\n if (stateSymbol) {\r\n if (stateSymbol.group) {\r\n groups.add(stateSymbol.group);\r\n }\r\n }\r\n }\r\n\r\n if(marketRatesSettings.groupsOrder?.length > 0){\r\n for(const group of marketRatesSettings.groupsOrder){\r\n if(groups.has(group)){\r\n arr.push(group);\r\n }\r\n }\r\n }else{\r\n arr = [...groups];\r\n }\r\n\r\n\t\tconst rates = arr.map((el, i) => {\r\n\t\t\treturn {\r\n\t\t\t\tid: i,\r\n\t\t\t\tlabel: el,\r\n\t\t\t\tvalue: el,\r\n\t\t\t\ttranslation: el,\r\n\t\t\t};\r\n\t\t});\r\n\t\tsetSymbolGroups(rates);\r\n\t\tsetStateObject(prev => ({...prev, symbolGroup: rates[0]}));\r\n\t}, [symbolsOrder, symbols]);\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nMobileTradingAllActionBlock.defaultProps = {\r\n\tisVisible: true,\r\n};\r\n\r\nMobileTradingAllActionBlock.propTypes = {\r\n\tisVisible: PropTypes.bool,\r\n};\r\n\r\nexport default MobileTradingAllActionBlock;\r\n","import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';\r\nimport clsx from 'clsx';\r\n\r\nimport MobileAutosizer\r\n\tfrom '../../../components/MobileAutosizer/MobileAutosizer';\r\nimport MobileTradingAllItem from './MobileTradingAllItem';\r\nimport MobileNothingFound\r\n\tfrom '../../../components/MobileEmpty/MobileNothingFound';\r\nimport {searchSymbolValue} from '../../../helpers/input.helpers';\r\nimport MobileTradingAllActionBlock from './MobileTradingAllActionBlock';\r\n\r\nconst MobileTradingAll = props => {\r\n\r\n\tconst {\r\n\t\tsearchValue,\r\n\t\tsymbolGroup,\r\n\t\tonChangeSearch,\r\n\t\tonChangeGroup,\r\n\t\tselectedSymbol,\r\n\t\torderedSymbols,\r\n\t\thandleItemSelect,\r\n\t\thandleBack,\r\n\t} = props;\r\n\r\n\tconst [isActionBar, setIsActionBar] = useState(false);\r\n\tconst [scrollIndex, setScrollIndex] = useState(0);\r\n\r\n\tconst scrollToTop = useRef(0);\r\n\r\n\tconst handleSetIndex = useCallback(() => {\r\n\t\tconst index = orderedSymbols.findIndex(el => el.id === selectedSymbol.id);\r\n\t\tconst max = orderedSymbols.length - 1;\r\n\t\tsetScrollIndex(index === -1\r\n\t\t\t\t? 0\r\n\t\t\t\t: index <= 9\r\n\t\t\t\t\t\t? 0\r\n\t\t\t\t\t\t: (max - 9) <= index ? index : index + 9,\r\n\t\t);\r\n\t}, [selectedSymbol, orderedSymbols]);\r\n\r\n\tconst handleScroll = useCallback(scroll => {\r\n\t\treturn setIsActionBar(true); //TODO: visible action bar rates\r\n\r\n\t\tif (scrollToTop.current >= scroll.scrollTop) {\r\n\t\t\tsetIsActionBar(true);\r\n\t\t\tscrollToTop.current = scroll.scrollTop;\r\n\t\t\treturn scroll.scrollTop;\r\n\t\t} else {\r\n\t\t\tsetIsActionBar(false);\r\n\t\t\tscrollToTop.current = scroll.scrollTop;\r\n\t\t}\r\n\r\n\t\tscrollToTop.current = scroll.scrollTop;\r\n\t\tif (scroll.scrollTop < 80) return setIsActionBar(true);\r\n\t\treturn setIsActionBar(false);\r\n\t}, [setIsActionBar, scrollToTop]);\r\n\r\n\tconst handleBackClick = useCallback(() => {\r\n\t\thandleBack && handleBack();\r\n\t}, [handleBack]);\r\n\r\n\tconst handleItemClick = useCallback(item => {\r\n\t\thandleItemSelect && handleItemSelect(item);\r\n\t}, [handleItemSelect]);\r\n\r\n\tconst findOrderedSymbols = useMemo(() => {\r\n\t\treturn searchSymbolValue(searchValue, symbolGroup, orderedSymbols);\r\n\t}, [symbolGroup, searchValue, orderedSymbols]);\r\n\r\n\tconst handleIndex = useCallback((index, item) => {\r\n\t\thandleItemClick && handleItemClick(item);\r\n\t}, [findOrderedSymbols, handleItemClick]);\r\n\r\n\tconst renderRow = useCallback(data => {\r\n\t\tconst {item, props} = data;\r\n\t\treturn (\r\n\t\t\t\t handleIndex(index, findOrderedSymbols[index])}\r\n\t\t\t\t/>\r\n\t\t);\r\n\t}, [findOrderedSymbols]);\r\n\r\n\tuseEffect(() => {\r\n\t\thandleSetIndex();\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\r\n\t\t\t\t\r\n\r\n\t\t\t\t{!findOrderedSymbols.length && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t{!!findOrderedSymbols.length && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t
    \r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileTradingAll;\r\n","import React, {useCallback, useState} from 'react';\r\nimport useSymbol from '../context/contextHook/useSymbol';\r\nimport MobileTradingAll\r\n\tfrom '../modules/MobileTrading/MobileTradingAll/MobileTradingAll';\r\n\r\nconst MobileTradingAllPage = ({handleBackTab}) => {\r\n\tconst {\r\n\t\tselectedSymbol,\r\n\t\tsetSelectedSymbol,\r\n\t\torderedSymbols,\r\n\t} = useSymbol();\r\n\r\n\tconst [searchValue, setSearchValue] = useState('');\r\n\tconst [symbolGroup, setSymbolGroup] = useState('');\r\n\r\n\tconst onChangeSearch = useCallback(value => {\r\n\t\tif (!value) return setSearchValue('');\r\n\t\tif (searchValue.length < value) return setSearchValue(value.trim());\r\n\t\tconst t = setTimeout(() => {\r\n\t\t\tsetSearchValue(value.trim());\r\n\t\t\treturn clearTimeout(t);\r\n\t\t}, 300);\r\n\t}, [searchValue, setSearchValue]);\r\n\r\n\tconst onChangeGroup = useCallback(value => {\r\n\t\tsetSymbolGroup(value);\r\n\t}, [setSymbolGroup]);\r\n\r\n\tconst handleItemSelect = useCallback(symbolObj => {\r\n\t\tif (!symbolObj) return;\r\n\t\tsetSelectedSymbol && setSelectedSymbol(symbolObj);\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{selectedSymbol && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileTradingAllPage;\r\n","import React, {useMemo} from 'react';\r\nimport {useTranslation} from 'react-i18next';\r\nimport clsx from 'clsx';\r\n\r\nimport formatDaysFromNow from '../../../../UI/utilsUI/formatDaysFromNow';\r\n\r\nimport MobileSocialExploreChart from './MobileSocialExploreChart';\r\n\r\nimport MobileAvatarIcon from '../../MobileAvatarIcon';\r\nimport MobileButtonIcon from '../../Buttons/MobileButtonIcon';\r\nimport MobileButton from '../../Buttons/MobileButton';\r\n\r\nimport MobileSocialExploreStatisticBlock\r\n\tfrom './MobileSocialExploreStatisticBlock';\r\n\r\nconst MobileSocialExploreItemDraw = props => {\r\n\tconst {\r\n\t\tisActive,\r\n\t\tAvatar,\r\n\t\tuserProfile,\r\n\t\tNickname,\r\n\t\tCopiersCount,\r\n\t\tsuccessRate,\r\n\t\tisLoadingWatch,\r\n\t\tisLoadingCopy,\r\n\t\talreadyCopied,\r\n\t\talreadyWatched,\r\n\t\tJoinDateTime,\r\n\t\tCumulativePnl,\r\n\t\thandleToggleIsOpen,\r\n\t\thandleOpenProfile,\r\n\t\thandleClickCopy,\r\n\t\thandleClickWatch,\r\n\t} = props;\r\n\r\n\tconst {t} = useTranslation();\r\n\r\n\tconst copyBtnTitle = useMemo(() => {\r\n\t\tconst result = alreadyCopied\r\n\t\t\t\t? t('Social.Button.EditCopy')\r\n\t\t\t\t: t('Socials.Button.Copy');\r\n\t\treturn result.toLowerCase();\r\n\t}, [alreadyCopied]);\r\n\r\n\tconst watchBtnTitle = useMemo(() => {\r\n\t\tconst result = alreadyWatched\r\n\t\t\t\t? t('Social.Button.Unwatch')\r\n\t\t\t\t: t('Social.Button.Watch');\r\n\r\n\t\treturn result.toLowerCase();\r\n\t}, [userProfile, isLoadingWatch, alreadyWatched]);\r\n\r\n\tconst daysFromNow = useMemo(() => {\r\n\t\treturn formatDaysFromNow(new Date(JoinDateTime));\r\n\t}, [JoinDateTime]);\r\n\r\n\tconst pnl = useMemo(() => {\r\n\t\treturn Math.round((CumulativePnl + Number.EPSILON) * 10000) / 100;\r\n\t}, [CumulativePnl]);\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t
    \r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t

    {Nickname}

    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{t('Socail.Profile.Copiers').toLowerCase()}\r\n\t\t\t\t\t\t\t\t: \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{CopiersCount}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{/*TODO: locale this*/}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t{!isActive && (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t{isActive && (\r\n\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileSocialExploreItemDraw;\r\n","import React, {useCallback, useEffect, useMemo, useState} from 'react';\r\nimport {shallowEqual, useSelector} from 'react-redux';\r\n\r\nimport { CommandFactory } from '../../../../background/commands/CommandFactory';\r\n\r\nimport useProfile from '../../../context/contextHook/useProfile';\r\nimport {FormatPercentFloat} from '../../../../UI/ProfilePage/ProfileTabDetails';\r\nimport MobileSocialExploreItemDraw from './MobileSocialExploreItemDraw';\r\n\r\nconst MobileSocialExploreItem = props => {\r\n\tconst {\r\n\t\tNickname,\r\n\t\tAvatar,\r\n\t\tCopiersCount,\r\n\t\tCumulativePnl,\r\n\t\tJoinDateTime,\r\n\t\tWinRatio,\r\n\t\tSuccessRate,\r\n\t\tisActive,\r\n\t\tindex,\r\n\t\thandleOpen,\r\n\t\thandleOpenWatchModal,\r\n\t} = props;\r\n\r\n\tconst {\r\n\t\tprofileUser: {openProfileUser},\r\n\t} = useProfile();\r\n\r\n\tconst {getUserProfilePage} = useSelector(\r\n\t\t\tstate => state.account.socialv1.profileCommands, shallowEqual);\r\n\r\n\tconst {updateFollower, removeFollower} = useSelector(\r\n\t\t\tstate => state.account.socialv1.copyRelationsCommands, shallowEqual);\r\n\r\n\tconst currentUser = useSelector(state => state.account.socialv1.userDetails,\r\n\t\t\tshallowEqual);\r\n\r\n\tconst [isLoadingWatch, setIsLoadingWatch] = useState(false);\r\n\tconst [isLoadingCopy, setIsLoadingCopy] = useState(false);\r\n\r\n\tconst isCurrentUserProfile = useMemo(() => {\r\n\t\tconst pUser = Nickname;\r\n\t\tconst cUser = currentUser?.nickname;\r\n\t\treturn pUser === cUser;\r\n\t}, [currentUser, Nickname]);\r\n\r\n\tconst [userProfile, setUserProfile] = useState(null);\r\n\r\n\tconst successRate = useMemo(() => {\r\n\t\treturn WinRatio\r\n\t\t\t\t? FormatPercentFloat({value: WinRatio})\r\n\t\t\t\t: SuccessRate && FormatPercentFloat({value: SuccessRate});\r\n\t}, [WinRatio, SuccessRate]);\r\n\r\n\tconst alreadyCopied = useMemo(() => {\r\n\t\treturn userProfile?.CopyType === 1 || userProfile?.CopyType === 2;\r\n\t}, [userProfile]);\r\n\r\n\tconst alreadyWatched = useMemo(() => {\r\n\t\treturn userProfile?.CopyType === 4 || alreadyCopied;\r\n\t}, [userProfile, alreadyCopied]);\r\n\r\n\tconst getUserData = useCallback(async () => {\r\n\t\tif (!Nickname || !getUserProfilePage) return;\r\n\t\tconst userInput = {nickname: Nickname};\r\n\t\t\r\n\t\tconst command = CommandFactory.createCommand(getUserProfilePage);\r\n\t\ttry {\r\n\t\t\tconst res = await command.execute(userInput);\r\n\t\t\tif (res.isSuccessful) setUserProfile(res.payload);\r\n\t\t\treturn res;\r\n\t\t} catch (err) {\r\n\t\t\tconsole.error(err);\r\n\t\t}\r\n\t}, [getUserProfilePage, Nickname, isLoadingWatch, isLoadingCopy]);\r\n\r\n\tconst handleToggleIsOpen = useCallback(e => {\r\n\t\te && e.stopPropagation();\r\n\t\tif (isActive) return handleOpen && handleOpen(null);\r\n\t\treturn handleOpen && handleOpen(index);\r\n\t}, [isActive, index]);\r\n\r\n\tconst handleClickWatch = useCallback(async () => {\r\n\t\tif (!Nickname || isCurrentUserProfile) return null;\r\n\t\tconst userInput = {\r\n\t\t\tguruNickname: Nickname,\r\n\t\t\tamount: alreadyWatched ? 0 : 1,\r\n\t\t\tcopyType: alreadyWatched ? 0 : 4,\r\n\t\t};\r\n\r\n\t\tlet commandObj = {};\r\n\t\tif (alreadyWatched) {\r\n\t\t\tcommandObj = {\r\n\t\t\t\t...removeFollower,\r\n\t\t\t\tuserInput,\r\n\t\t\t};\r\n\t\t}\r\n\t\tif (!alreadyWatched) {\r\n\t\t\tcommandObj = {\r\n\t\t\t\t...updateFollower,\r\n\t\t\t\tuserInput,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst command = CommandFactory.createCommand(commandObj);\r\n\t\tsetIsLoadingWatch(true);\r\n\t\ttry {\r\n\t\t\tconst res = await command.execute();\r\n\t\t\tif (res.isSuccessful) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tawait getUserData();\r\n\t\t\t\t} catch (err) {\r\n\t\t\t\t\tconsole.error(err); //TODO: remove log add err\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tsetIsLoadingWatch(false);\r\n\t\t} catch (err) {\r\n\t\t\tconsole.error(err); //TODO: remove log add err\r\n\t\t\tsetIsLoadingWatch(false);\r\n\t\t}\r\n\t\tif (!alreadyWatched) {\r\n\t\t\thandleOpenWatchModal && handleOpenWatchModal(Nickname);\r\n\t\t}\r\n\t}, [\r\n\t\talreadyWatched,\r\n\t\tNickname,\r\n\t\tupdateFollower,\r\n\t\tremoveFollower,\r\n\t\tgetUserData,\r\n\t\tisCurrentUserProfile]);\r\n\r\n\tconst handleClickCopy = useCallback(e => {\r\n\t\te && e.stopPropagation();\r\n\t\tif (isCurrentUserProfile) return null;\r\n\t\topenProfileUser && openProfileUser(Nickname, true);\r\n\t}, [Nickname, openProfileUser, isCurrentUserProfile]);\r\n\r\n\tconst handleOpenProfile = useCallback(e => {\r\n\t\te && e.preventDefault();\r\n\t\te && e.stopPropagation();\r\n\t\topenProfileUser && openProfileUser(props.Nickname);\r\n\t}, [Nickname, openProfileUser]);\r\n\r\n\tuseEffect(() => {\r\n\t\tgetUserData();\r\n\t}, [getUserData]);\r\n\r\n\treturn (\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileSocialExploreItem;\r\n","import React, {useCallback, useState} from 'react';\r\n\r\nimport MobileSocialExploreItem from './MobileSocialExploreItem';\r\nimport MobileNothingFound from '../../MobileEmpty/MobileNothingFound';\r\n\r\nconst MobileSocialExplore = ({options, handleOpenWatchModal}) => {\r\n\tconst [editItemIndex, setEditItemItem] = useState(null);\r\n\r\n\tconst handleItem = useCallback(index => {\r\n\t\tsetEditItemItem(index);\r\n\t}, []);\r\n\r\n\tconst isActiveItem = useCallback(index => {\r\n\t\treturn index === editItemIndex;\r\n\t}, [editItemIndex]);\r\n\r\n\treturn (\r\n\t\t\t
    \r\n\t\t\t\t{options && !options.length && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{/*TODO: return/add autosizer*/}\r\n\t\t\t\t{options && options.length && (\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t{options.map((opt, index) => (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t)}\r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileSocialExplore;\r\n","import React, {useState} from 'react';\r\n\r\nimport {\r\n\tallTradesStream,\r\n\ttopRankedTradeStream,\r\n\twatchTradersStream,\r\n} from '../../background/socialv1/tradesStreams';\r\n\r\nconst useStreamConnect = () => {\r\n\tconst [tradersIWatch] = useState(\r\n\t\t\twatchTradersStream);\r\n\r\n\tconst [allTrades] = useState(\r\n\t\t\tallTradesStream);\r\n\r\n\tconst [topTraders] = useState(\r\n\t\t\ttopRankedTradeStream);\r\n\r\n\tconst [, setRerenderTime] = useState(null);\r\n\r\n\tconst tradersWatchList = [];\r\n\tconst tradersAllList = [];\r\n\tconst tradersTopList = [];\r\n\r\n\tfor (const item of tradersIWatch.getStackOrder()) {\r\n\t\ttradersWatchList.push(item);\r\n\t}\r\n\r\n\tfor (const item of allTrades.getStackOrder()) {\r\n\t\ttradersAllList.push(item);\r\n\t}\r\n\r\n\tfor (const item of topTraders.getStackOrder()) {\r\n\t\ttradersTopList.push(item);\r\n\t}\r\n\r\n\ttradersIWatch.subscribeReact(() => {\r\n\t\tsetRerenderTime(Date.now());\r\n\t});\r\n\tallTrades.subscribeReact(() => {\r\n\t\tsetRerenderTime(Date.now());\r\n\t});\r\n\ttopTraders.subscribeReact(() => {\r\n\t\tsetRerenderTime(Date.now());\r\n\t});\r\n\r\n\treturn {\r\n\t\ttradersIWatch: tradersWatchList,\r\n\t\ttradersAll: tradersAllList,\r\n\t\ttradersTop: tradersTopList,\r\n\t};\r\n};\r\n\r\nexport default useStreamConnect;\r\n","import React, {useCallback, useEffect, useState} from 'react';\r\nimport { CommandFactory } from '../../../background/commands/CommandFactory'\r\nimport {shallowEqual, useSelector} from 'react-redux';\r\n\r\nconst useTopRankedData = () => {\r\n\tconst {getTopRanked} = useSelector(\r\n\t\t\tstate => state.account.socialv1.exploreCommands, shallowEqual);\r\n\r\n\tconst [topTraders, setTopTraders] = useState(null);\r\n\tconst [isLoading, setIsLoading] = useState(false);\r\n\r\n\tconst getTraders = useCallback(async () => {\r\n\t\tif (!getTopRanked) return;\r\n\r\n\t\tconst limit = 100; //TODO: dynamic limit ?\r\n\t\tconst commandObj = {\r\n\t\t\t...getTopRanked,\r\n\t\t\tuserInput: {limit},\r\n\t\t};\r\n\r\n\t\tconst command = CommandFactory.createCommand(commandObj);\r\n\t\ttry {\r\n\t\t\tsetIsLoading(true);\r\n\t\t\tconst res = await command.execute();\r\n\t\t\tif (res.isSuccessful) setTopTraders(res.payload.slice(0, limit));\r\n\t\t\tsetIsLoading(false);\r\n\t\t} catch (err) {\r\n\t\t\tconsole.error(err); //TODO: remove log add errors\r\n\t\t\tsetIsLoading(false);\r\n\t\t}\r\n\t}, [getTopRanked]);\r\n\r\n\tuseEffect(() => {\r\n\t\tgetTraders().then(() => setIsLoading(false));\r\n\t}, [getTraders]);\r\n\r\n\treturn {\r\n\t\ttopTraders,\r\n\t\tisLoading,\r\n\t\trequestData: () => getTraders(),\r\n\t};\r\n};\r\n\r\nexport default useTopRankedData;\r\n","import React, {useCallback, useState} from 'react';\r\n\r\nimport MobileSocialExplore\r\n\tfrom '../components/MobileSocial/MobileSocialExplore/MobileSocialExplore';\r\nimport MobileWatchModal from '../components/MobileModal/MobileWatchModal';\r\nimport useStreamConnect from '../hook/useStreamConnect';\r\nimport useTopRankedData from '../hook/useFetchData/useTopRankedData';\r\nimport useProfile from '../context/contextHook/useProfile';\r\nimport MobileLoader from '../components/MobileLoader/MobileLoader';\r\n\r\nconst MobileSocialExplorePage = ({isVisible}) => {\r\n\tconst {tradersAll} = useStreamConnect(); //TODO: mb this array?\r\n\r\n\tconst [watchModalName, setWatchModalName] = useState(null);\r\n\r\n\tconst {\r\n\t\tprofileUser: {openProfileUser},\r\n\t} = useProfile();\r\n\r\n\tconst handleOpenWatchModal = useCallback(name => {\r\n\t\tsetWatchModalName(name);\r\n\t}, [setWatchModalName]);\r\n\r\n\tconst handleCloseWatchModal = useCallback(() => {\r\n\t\tsetWatchModalName(null);\r\n\t}, [setWatchModalName]);\r\n\r\n\tconst handleOpenProfile = useCallback(() => {\r\n\t\thandleCloseWatchModal && handleCloseWatchModal();\r\n\t\topenProfileUser && openProfileUser(watchModalName, true);\r\n\t}, [openProfileUser, watchModalName]);\r\n\r\n\tconst {topTraders, isLoading} = useTopRankedData();\r\n\r\n\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{isVisible && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t{!isLoading && (\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t);\r\n};\r\n\r\nexport default MobileSocialExplorePage;\r\n","import React from 'react';\r\nimport TradingRoomPanel from '../../shared/Charts/TradingRoom';\r\n\r\nconst MobileSignalsPage = () => {\r\n\treturn (\r\n\t\t
    \r\n\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t
    \r\n\t);\r\n};\r\n\r\nexport default MobileSignalsPage;\r\n","import React, {useCallback, useMemo} from 'react';\r\n// import PullToRefresh from 'react-simple-pull-to-refresh'; //TODO: remove pack\r\nimport {\r\n\tPullDownContent,\r\n\tPullToRefresh,\r\n\tRefreshContent,\r\n\tReleaseContent,\r\n} from 'react-js-pull-to-refresh';\r\n\r\nimport {StatusModes} from '../../background/reducers/generalStatusReducer';\r\nimport {shallowEqual, useSelector} from 'react-redux';\r\n\r\nconst MobilePullToRefresh = ({children}) => {\r\n\r\n\tconst {\r\n\t\tgeneralStatus: {\r\n\t\t\tstatus: isNotLoggedIn,\r\n\t\t},\r\n\t} = useSelector(({generalStatus}) => ({generalStatus}), shallowEqual);\r\n\r\n\tconst handleOnRefresh = useCallback(() => {\r\n\t\tdocument.location.reload();\r\n\t}, []);\r\n\r\n\tconst {requireServerInit, requireLogin} = useMemo(() => {\r\n\t\treturn StatusModes;\r\n\t}, [StatusModes]);\r\n\r\n\tconst shouldRenderLoginPage = useMemo(() => {\r\n\t\treturn isNotLoggedIn === requireServerInit\r\n\t\t\t\t|| isNotLoggedIn === requireLogin;\r\n\t}, [isNotLoggedIn, requireServerInit, requireLogin]);\r\n\r\n\tconst bgColor = useMemo(() => {\r\n\t\treturn shouldRenderLoginPage ? 'transparent' : '#13182C';\r\n\t}, [shouldRenderLoginPage]);\r\n\r\n\tconst options = useMemo(() => {\r\n\t\treturn {\r\n\t\t\tpullDownContent: ,\r\n\t\t\treleaseContent: ,\r\n\t\t\trefreshContent: ,\r\n\t\t\tonRefresh: handleOnRefresh,\r\n\t\t\tpullDownThreshold: 70,\r\n\t\t\ttriggerHeight: 50,\r\n\t\t\tbackgroundColor: bgColor,\r\n\t\t\tstartInvisible: true,\r\n\t\t};\r\n\t}, [\r\n\t\tPullDownContent,\r\n\t\tReleaseContent,\r\n\t\tRefreshContent,\r\n\t\thandleOnRefresh,\r\n\t\tbgColor,\r\n\t]);\r\n\r\n\treturn (\r\n\t\t\t\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\r\n\t);\r\n};\r\n\r\nexport default MobilePullToRefresh;\r\n","import React, {\r\n useCallback, useEffect, useMemo, useState\r\n} from 'react';\r\nimport { shallowEqual, useSelector } from 'react-redux';\r\nimport clsx from 'clsx';\r\n\r\nimport Context from './context/Context';\r\nimport { getMainMenu } from './helpers/options.helpers';\r\nimport { loaderDesktopInit, loaderMobileInit } from './helpers/loader.helpers';\r\n\r\nimport useScreenOrientation from './hook/useScreenOrientation';\r\n\r\nimport MobileHeader from './modules/MobileHeader/MobileHeader';\r\nimport MobileSection from './modules/MobileSection/MobileSection';\r\nimport MobileBurgerMenu from './modules/MobileBurgerMenu/MobileBurgerMenu';\r\nimport MobileProfile from './modules/MobileProfile/MobileProfile';\r\nimport MobileFooterOld from './modules/MobileFooter/MobileFooterOld';\r\nimport MobileMarginAlert from './modules/MobileMargin/MobileMarginAlert';\r\n\r\nimport MobileTradeAddButton from './components/Buttons/MobileTradeAddButton';\r\nimport MobileChangeAvatar from './components/MobileChangeAvatar';\r\nimport MobileCarouselMenu from './components/MobileCarousel/MobileCarouselMenu';\r\nimport CarouselTabList from './components/MobileCarousel/CarouselTabList';\r\n\r\nimport MobileClosePosition\r\n from './components/MobilePosition/MobileClosePosition/MobileClosePosition';\r\nimport MobileUpdatePosition\r\n from './components/MobilePosition/MobileUpdatePosition/MobileUpdatePosition';\r\n\r\nimport MobileTradingChartPage from './pages/MobileTradingChartPage';\r\nimport MobileTradingAllPage from './pages/MobileTradingAllPage';\r\nimport MobileSocialExplorePage from './pages/MobileSocialExplorePage';\r\nimport MobileSignalsPage from './pages/MobileSignalsPage';\r\nimport MobilePullToRefresh from './components/MobilePullToRefresh';\r\n\r\nimport './styles/index.css';\r\n\r\nconst MobileApp = () => {\r\n useScreenOrientation();\r\n\r\n const { ActiveTheme } = useSelector((state) => state.brand.themeSettings);\r\n\r\n const t4proTradingroom = useSelector((state) => state.account.accountInfo.rightPanelSettings.t4proTradingroom);\r\n const enableSignals = t4proTradingroom.isVisible && t4proTradingroom.vipEnabled;\r\n\r\n const {\r\n accountInfo: {\r\n rightPanelSettings: {\r\n socialv1: { isVisible }\r\n }\r\n },\r\n socialv1: { isEnabled }\r\n } = useSelector((state) => state.account);\r\n\r\n const [tabValue, setTabValue] = useState(0);\r\n\r\n const isSocialsEnabled = useMemo(() => {\r\n return isEnabled && isVisible;\r\n }, [isEnabled, isVisible]);\r\n\r\n const MAIN_MENU = useMemo(() => {\r\n return getMainMenu(isSocialsEnabled, enableSignals);\r\n }, [isSocialsEnabled]);\r\n\r\n const isLightTheme = useMemo(() => {\r\n return ActiveTheme === 'light';\r\n }, [ActiveTheme]);\r\n\r\n const handleSwitchTab = useCallback((option) => {\r\n if (!option) return null;\r\n setTabValue(option.index);\r\n }, []);\r\n\r\n const handleBackTab = useCallback(() => {\r\n setTabValue(0);\r\n }, []);\r\n\r\n useEffect(() => {\r\n loaderMobileInit();\r\n return () => {\r\n loaderDesktopInit();\r\n };\r\n }, [loaderMobileInit, loaderDesktopInit]);\r\n\r\n //= ===========================================================================\r\n // window.addEventListener('navigate', (e, data) => {\r\n // \tconst direction = data.state.direction;\r\n // \talert(`data, ${data}`);\r\n // \tconsole.log('e', e);\r\n // \tconsole.log('data', data);\r\n // \tconsole.log('direction', direction);\r\n // \tif (direction === 'back') {\r\n // \t\tconsole.log('direction back');\r\n // \t}\r\n // \tif (direction === 'forward') {\r\n // \t\tconsole.log('direction forward');\r\n // \t}\r\n // });\r\n //\r\n // window.onpopstate = function(event) {\r\n // \talert(\r\n // \t\t\t`location: ${document.location}, state: ${JSON.stringify(\r\n // \t\t\t\t\tevent)}`);\r\n // };\r\n //\r\n // window.addEventListener('popstate', e => {\r\n // \tconsole.log(e);\r\n // });\r\n //\r\n // const a = [0, 1, 2, 3, 4];\r\n //\r\n // a.map(el => {\r\n // \tconst {history} = window;\r\n // \tsetTimeout(() => {\r\n // \t\t// history.pushState({page: el}, `title ${el}`, `?page=${el}`);\r\n // \t\thistory.pushState({page: el}, `title ${el}`);\r\n // \t\twindow.dispatchEvent(new Event('popstate'));\r\n // \t\t// console.log('location: ${document.location}', document.location);\r\n // \t}, (el + 1) * 3000);\r\n // });\r\n //\r\n // const {history} = window;\r\n //\r\n // history.pushState({page: 1}, 'title 1', '?page=1');\r\n // history.pushState({page: 2}, 'title 2', '?page=2');\r\n // history.replaceState({page: 3}, 'title 3', '?page=3');\r\n // history.back(); // alerts \"location: http://example.com/example.html?page=1, state: {\"page\":1}\"\r\n // history.back(); // alerts \"location: http://example.com/example.html, state: null\"\r\n // history.go(2); // alerts \"location: http://example.com/example.html?page=3, state: {\"page\":3}\"\r\n //\r\n // window.addEventListener('hashchange', function() {\r\n // \tconsole.log('Hash changed to', window.location.hash);\r\n // });\r\n //\r\n // document.addEventListener('backbutton', function(e) {\r\n // \tconsole.log('e', e);\r\n // \t\tif(menu is visible) {\r\n // \t\t\t//Hide the menu\r\n // \t\t\t//This is also working fine\r\n // \t\t\treturn false;\r\n // \t\t}\r\n // \telse //nothing is visible, exit the app\r\n // \t\t{\r\n // \t\t\tnavigator.app.exitApp();\r\n // \t\t}\r\n // });\r\n //\r\n // document.addEventListener('deviceready', onDeviceReady, false);\r\n //\r\n // function onDeviceReady() {\r\n // \tconsole.log('PhoneGap Ready!');\r\n //\r\n // \tdocument.addEventListener('backbutton', handleBackButton, false);\r\n // }\r\n //\r\n // function handleBackButton() {\r\n // \tconsole.log('Back Button Pressed!');\r\n // \tnavigator.app.exitApp();\r\n // }\r\n //\r\n // console.log('window.location', window.location);\r\n //= ===========================================================================\r\n\r\n return (\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 {/* */}\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\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default MobileApp;\r\n","import React, {Fragment, useEffect, useMemo, useState} from 'react';\r\nimport {shallowEqual, useSelector} from 'react-redux';\r\n\r\nimport {StatusModes} from '../../background/reducers/generalStatusReducer';\r\nimport {CommandFactory} from '../../background/commands/CommandFactory';\r\nimport isMobile from 'is-mobile';\r\nimport LoginPage from '../LoginPage/LoginPage';\r\nimport LoadSpinner from '../primitives/LoadSpinner';\r\nimport MainLayout from '../ResizableLayout/MainLayout';\r\nimport MobileApp from '../../mobile/MobileApp';\r\n\r\nconst MainApp = () => {\r\n\tconst [initResponseIsSuccessful, setInitResponseIsSuccessful] = useState(\r\n\t\t\ttrue);\r\n\tconst [initError, setInitError] = useState({errCode: '', errText: ''});\r\n\tconst {environments: {lastRemeberMeCMD}} = useSelector(\r\n\t\t\t({environments}) => ({environments}), shallowEqual);\r\n\tconst {\r\n\t\tgeneralStatus: {\r\n\t\t\tstatus: stateStatus,\r\n\t\t\tticksLoaded: ticksLoaded,\r\n\t\t\tserverInitCommand,\r\n\t\t},\r\n\t} = useSelector(({generalStatus}) => ({generalStatus}), shallowEqual);\r\n\r\n\tconst waitForTicksOnStartup = useSelector(state => state.account.accountInfo.featuresData.waitForTicksOnStartup);\r\n\tconst mobile = useSelector(state => state.brand.mobile);\r\n\r\n\tconst shouldShowMobile = useMemo(() => {\r\n\t\tif (mobile.isEnabled) {\r\n\t\t\treturn isMobile();\r\n\t\t}\r\n\t\treturn false;\r\n\t}, [mobile]);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst initApp = async () => {\r\n\t\t\tconst command = CommandFactory.createCommand(serverInitCommand);\r\n\r\n\t\t\ttry {\r\n\t\t\t\tconst res = await command.execute({\r\n\t\t\t\t\trequestVer :3,\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (res.ok === false) {\r\n\t\t\t\t\tsetInitError({errCode: res.status, errText: res.statusText});\r\n\t\t\t\t\tsetInitResponseIsSuccessful(false);\r\n\t\t\t\t}\r\n\t\t\t} catch (err) {\r\n\t\t\t\tsetInitError({errCode: err.name, errText: err.message});\r\n\t\t\t\tsetInitResponseIsSuccessful(false);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tinitApp();\r\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\r\n\t}, []);\r\n\r\n\tif (!initResponseIsSuccessful) {\r\n\t\treturn (\r\n\t\t\t\t

    \r\n\t\t\t\t\tOops \r\n\t\t\t\t\t{initError.errCode}\r\n\t\t\t\t\t \r\n\t\t\t\t\t{initError.errText}\r\n\t\t\t\t

    // TODO: create error page component\r\n\t\t);\r\n\t}\r\n\r\n\tif (stateStatus == StatusModes.requireServerInit) {\r\n\t\treturn ;\r\n\t}\r\n\r\n\tlet ticksReady = true;\r\n\tif (waitForTicksOnStartup)\r\n\t{\r\n\t\tticksReady = ticksLoaded;\r\n\t}\r\n\r\n\tif (stateStatus == StatusModes.accountLogin && !ticksReady)\r\n\t{\r\n\t\treturn ;\r\n\t}\r\n\r\n\tif (stateStatus == StatusModes.accountLogin)\r\n\t{\r\n\t\tif (shouldShowMobile)\r\n\t\t{\r\n\t\t\treturn ()\r\n\t\t}\r\n\r\n\t\treturn ()\r\n\t}\r\n\r\n\treturn ;\r\n};\r\n\r\nexport default MainApp;\r\n","import CommandFactory from \"./CommandFactory\"\r\nimport{STDCMDAsyncServerHandler,STDCMDAsyncServerCmdID } from \"./asyncServerCommand\"\r\nimport {STDCMDServerHandler,STDCMDServerCmdID} from \"./serverCommand\"\r\nimport {CMDChartsHandler,CMDChartCmdID} from \"../chart/chartCommand\"\r\nimport {STDCMDStoreHandler,STDCMDStoreCmdID} from \"./storeCommand\"\r\nimport {STDCMDServerCmdAuthID,STDCMDServerAuthHandler} from './authServerCommand'\r\n\r\nexport default function RegisterAll()\r\n{\r\n CommandFactory.registerHandler(STDCMDAsyncServerCmdID,STDCMDAsyncServerHandler);\r\n CommandFactory.registerHandler(STDCMDServerCmdID,STDCMDServerHandler);\r\n CommandFactory.registerHandler(CMDChartCmdID,CMDChartsHandler);\r\n CommandFactory.registerHandler(STDCMDStoreCmdID,STDCMDStoreHandler);\r\n CommandFactory.registerHandler(STDCMDServerCmdAuthID,STDCMDServerAuthHandler);\r\n}","import React from 'react';\r\nimport {createStore} from 'redux';\r\nimport {Provider} from 'react-redux';\r\n\r\nimport {mainReducer} from './background/reducers/mainReducer.js';\r\nimport registerAllCommands from './background/commands/allCommandRegistry';\r\nimport {setStore} from './background/storeContainer';\r\nimport StartListener from './background/storeListener/activateListeners';\r\n\r\nimport MainApp from './UI/MainApp/MainApp';\r\nimport './App.css';\r\n\r\nregisterAllCommands();\r\n\r\nconst store = createStore(mainReducer, window.__REDUX_DEVTOOLS_EXTENSION__ &&\r\n\t\twindow.__REDUX_DEVTOOLS_EXTENSION__());\r\nsetStore(store);\r\nStartListener();\r\n\r\nif ('URLSearchParams' in window) {\r\n\tvar searchParams = new URLSearchParams(window.location.search);\r\n\tif (searchParams.get('token') || searchParams.get('jwttoken')) {\r\n\t\tsearchParams.delete('token');\r\n\t\tsearchParams.delete('jwttoken');\r\n\t\tlet ss = searchParams.toString();\r\n\t\tvar newRelativePathQuery = window.location.pathname;\r\n\t\tif (ss) {\r\n\t\t\tnewRelativePathQuery = window.location.pathname + '?' + ss;\r\n\t\t}\r\n\r\n\t\twindow.history.replaceState(null, '', newRelativePathQuery);\r\n\t}\r\n}\r\n\r\nfunction App() {\r\n\treturn ;\r\n}\r\n\r\nexport default App;\r\n","import brandListener from './brandListener';\r\nimport translationListener from './translationsInit';\r\nimport profitCalculationListener from './profitCalculationListener'\r\nimport RenewSessionService from './renewSessionService'\r\nimport socialV1Listener from '../socialv1/socialListener'\r\nimport websocketListener from '../WebSocket/websocketListener'\r\nimport fullStoryListener from './fullStoryListener'\r\nimport googleAnalyticsListener from './googleAnalyticsListener'\r\nimport luckyOrangeListener from './luckyOrangeListener'\r\nimport themeListener from './themeListener'\r\n\r\nexport default function StartListener()\r\n{\r\n translationListener();\r\n brandListener();\r\n profitCalculationListener();\r\n RenewSessionService.start();\r\n socialV1Listener();\r\n websocketListener();\r\n googleAnalyticsListener();\r\n luckyOrangeListener();\r\n fullStoryListener();\r\n themeListener();\r\n}\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' }\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then(registration => {\r\n registration.unregister();\r\n })\r\n .catch(error => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}