{"version":3,"sources":["utils/functions/enums.ts","gateways/RfpGateway/rfp.types.ts","contexts/AppContext.ts","views/features/Markets/MarketsGridNew/MarketsTable.module.scss","gateways/RfpGateway/rfpConstants.ts","utils/functions/subscriptionUtils.ts","contexts/DashboardContext.ts","store/authStore.tsx","views/features/Dashboard/Header/components/SettingsModal/SettingsModule.module.scss","utils/functions/calculations.ts","store/tradingAccountStore.tsx","views/features/Dashboard/Watchlist/Instrument/formattedQuoteNumber.tsx","utils/hooks/useObservable.ts","setup/routes.ts","utils/functions/WatchlistUtils.ts","store/WatchListStore/watchListStore.tsx","utils/hooks/useForceRerender.ts","views/features/Dashboard/Watchlist/WatchList.module.scss","shared/Button/Button.tsx","utils/functions/Nullable.ts","setup/config.ts","utils/hooks/useSelectedTradingAccount.tsx","views/features/Dashboard/TradeTicket/TradeTicket.module.scss","utils/functions/Ioc.ts","store/accountStatusStore.tsx","views/features/Dashboard/InstrumentSearch/InstrumentSearch.module.scss","store/tradingViewStore.ts","shared/Modal/Modal.tsx","contexts/RfpGatewayContext.ts","utils/hooks/usePromiseFactory.ts","store/OrderStore/orderStore.initial.ts","store/OrderStore/orderStore.tsx","store/OrderStore/orderStore.helpers.ts","views/features/Dashboard/ChartPanel/NewOrderModals/OrderTicketModal/OrderInformation/InfoElement.tsx","views/features/Dashboard/CloseTradeTicket/ClosePositionTicket.module.scss","utils/hooks/useShortTranslation.ts","views/features/Dashboard/ChartPanel/NewOrderModals/OrderTicketModal/OrderInformation/OrderInformation.module.scss","setup/i18n.ts","views/components/BidAskSpread/BidAskSpread.module.scss","pages/TradersGym/TradersGymContext.tsx","views/features/Dashboard/PositionsPanel/PositionGrid/PositionGrid.module.scss","views/features/Dashboard/Watchlist/Lists/WatchlistEdit.module.scss","views/components/WtrPopup/WtrPopup.tsx","views/features/Dashboard/PositionsPanel/PositionsPanel.module.scss","views/components/InstrumentSummary/InstrumentHeader.module.scss","utils/functions/Lazy.ts","shared/Button/index.ts","views/features/Dashboard/Header/AccountPanel/MarginLevel.module.scss","views/features/Dashboard/TradeBoard/TradeBoardHeader/TradeBoardHeader.module.scss","views/components/Permissions/config.types.ts","contexts/InstrumentContext.ts","setup/subscriptionsConfig.ts","views/features/Markets/NewsWidget/NewsWidgetStyles.module.scss","views/features/Dashboard/ChartPanel/NewOrderModals/ConfirmOrderModal/ConfirmOrderModal.module.scss","utils/mutations/useSaveUserPreferences.ts","views/features/Dashboard/Header/components/AccountMenuPopupSection.module.scss","views/features/Dashboard/Settings/settingsOptions.ts","store/QuoteStore/quoteStore.ts","views/features/Dashboard/TradeBoard/TradeBoardItem/OneClickTradeTicket/OneClickTradeTicket.module.scss","utils/functions/StringUtils.ts","views/features/Dashboard/Header/Header.module.scss","views/features/Dashboard/Watchlist/WatchlistsDropDown/WatchlistsDropDown.module.scss","pages/Signals/SignalsList/SignalsList.module.scss","views/components/Community/components/CommunityList/CommunityList.module.scss","views/features/Dashboard/Header/AccountPanel/RemainingVolume.module.scss","views/features/Dashboard/PositionsPanel/Grids/helpers.ts","gateways/RfpGateway/RfpGateway.ts","views/features/Markets/MarketsGrid/MarketsGrid.module.scss","utils/hooks/watchlist/useSaveWatchlistToPreferences.tsx","views/features/Markets/MarketsGridNew/components/TableSettingsModal.module.scss","views/features/Dashboard/Watchlist/Instrument/Instrument.module.scss","store/PipsStore/pipStore.initial.ts","store/PipsStore/pipStore.tsx","utils/hooks/useForceCloseModal.ts","views/features/Dashboard/Dashboard.module.scss","shared/LiveChat/LiveChat.module.scss","store/PositionsStore/positionsStore.tsx","utils/functions/uniqueId.ts","store/createSelectors.tsx","utils/hooks/useSubscriptionInfo.ts","pages/Signals/SignalsList/SignalPercentElement/SignalPercentElement.module.scss","views/features/Dashboard/Header/AccountPanel/CurrencyStats.module.scss","views/features/Dashboard/TradeBoard/TradeBoardItem/OneClickTradeTicket/OneClickTradeButtons/OneClickTradeButtons.module.scss","views/features/Markets/Markets.module.scss","views/components/FeedbackModal/FeedbackModal.module.scss","views/features/Dashboard/Header/AccountPanel/TradingAccounts/TradingAccounts.module.scss","pages/Subscriptions/SubscriptionSelector/TierTile.module.scss","views/components/MarketItemFormatter/useMarketItemsMap.ts","utils/hooks/useOrderTicketAccess.tsx","contexts/WindowContext.ts","utils/hooks/useGetTranslatedWLName.ts","utils/functions/isWindowStyles.ts","contexts/ChartContext.ts","utils/functions/TypeUtils.ts","views/features/Dashboard/TradeBoard/TradeBoard.module.scss","views/features/Dashboard/CloseTradeTicket/CancelOrderTicket.module.scss","utils/hooks/useSubscriptionModal.ts","contexts/MarginRulesContext.ts","utils/functions/Observables.ts","views/features/Dashboard/ChartPanel/NewOrderModals/DetachedModal/DetachedModal.module.scss","shared/WtrTooltip/WtrTooltip.tsx","store/create.tsx","views/components/Tooltip/Tooltip.tsx","utils/functions/chartIqTimeZone.ts","utils/hooks/preferences/useFillContextsFromPreferences.ts","pages/TradersGym/Positions/GymTradingPosition.ts","views/components/MoneyFormatter/MoneyFormatter.tsx","utils/functions/marketItems/marketItemGroupMapFormatter.ts","pages/Subscriptions/SubscriptionSelector/SubscriptionSelector.module.scss","utils/functions/constants.ts","views/components/CloseButton/CloseButton.tsx","store/OrderStore/orderStore.types.ts","views/features/Dashboard/Header/components/SettingsModal/TwoFactorAuthentication/TwoFactorAuthModal.module.scss","views/features/Dashboard/Watchlist/SearchResult/SearchResult.module.scss","views/features/Dashboard/Watchlist/WatchlistHeader/WatchlistHeader.module.scss","shared/WtrToggle/WtrToggle.module.scss","views/components/ContactModal/ContactModal.module.scss","views/components/Loading/Loading.tsx","views/components/GroupBadge/InstrumentIcon.tsx","pages/TradersGym/Accounts/GymTradingManager.ts","gateways/TfboGateway/TfboGateway.types.ts","views/features/Dashboard/TradeBoard/TradeBoardItem/OneClickTradeTicket/OneClickTradeDropdown/OneClickTradeDropdown.module.scss","utils/functions/PromiseFactory.ts","views/features/Dashboard/Watchlist/AddToWatchlist/AddToWatchlist.tsx","views/features/Dashboard/Watchlist/Lists/WatchlistsList.tsx","views/components/DailyPercent/DailyPercent.tsx","views/components/InstrumentSummary/InstrumentHeader.tsx","views/features/Dashboard/ChartPanel/NewOrderModals/OrderTicketModal/OrderInformation/InfoElement.module.scss","views/components/NotificationModal/NotificationModal.module.scss","views/components/ReconnectModal/ReconnectModal.module.scss","views/features/Markets/MarketsGridNew/components/DraggableTableHeader.tsx","views/features/Markets/MarketsGridNew/components/DragAlongCell.tsx","shared/WtrModal/index.ts","contexts/MarginRequirementsContext.tsx","utils/hooks/usePreferredFeedId.ts","views/components/ToastNotificationContent/ToastNotificationContent.tsx","utils/functions/toastNotificationUtils.tsx","views/features/Markets/MarketsGridNew/components/LowOrHigh.tsx","views/features/Markets/MarketsGridNew/components/SellOrBuyButton.tsx","views/features/Dashboard/Navigation/Items/Signals.module.scss","pages/Tutorials/Tutorials.module.scss","views/features/Dashboard/ChartPanel/NewOrderModals/ClosedTicketModal/ClosedTicketModal.module.scss","pages/Signals/SignalsList/SignalsFilter/SignalsFilter.module.scss","views/features/Markets/MarketsGridNew/components/NewWatchlistsList.module.scss","shared/AccountStatusCTA/AccountStatusCTA.module.scss","views/features/Dashboard/Navigation/Items/Item.module.scss","shared/Checkbox/Checkbox.module.scss","pages/Subscriptions/CurrencyDetails/CurrencyDetails.module.scss","views/components/WtrDropdown/WtrDropdown.tsx","utils/hooks/useLogout.ts","utils/hooks/system/useSwitchMode.tsx","views/features/Dashboard/TradeTicket/NumberInput/FormattedNumberInput/FormattedNumberInput.tsx","views/features/Dashboard/TradeTicket/NumberInput/LotsAwareInput/LotsAwareInput.tsx","views/features/Dashboard/TradeTicket/NumberInput/NumberInput.tsx","shared/Button/Button.module.scss","views/components/Shared/TradingSessionTooltip.module.scss","views/features/Dashboard/Watchlist/CreateWatchlistButton/CreateWatchlistButton.module.scss","views/components/Notifications/components/NotificationsList/NotificationsList.module.scss","views/features/Dashboard/Header/components/AccountMenuPopup.module.scss","pages/Subscriptions/Carousel/Carousel.module.scss","utils/hooks/useGridHeight.tsx","views/features/Markets/MarketsGridNew/components/SettingTrigger.tsx","utils/hooks/useTimeSessions.ts","views/features/Dashboard/PositionsPanel/Grids/components/CalcSwapValue.tsx","views/features/Dashboard/Watchlist/CreateWatchlistButton/CreateWatchlistButton.tsx","pages/TradersGym/Positions/GymPositionUtils.ts","views/features/Dashboard/TradeBoard/TradeBoardItem/OneClickTradeTicket/utils.ts","views/features/Dashboard/Watchlist/Lists/WatchlistsList.module.scss","views/components/ToastNotificationContent/ToastNotificationContent.module.scss","views/features/Dashboard/TradeTicket/NumberInput/NumberInput.module.scss","views/features/Dashboard/ChartPanel/NewOrderModals/OrderTicketModal/OrderInformation/SessionInformation/WeekInformation.module.scss","views/features/Dashboard/Header/AccountPanel/AccountStats.module.scss","pages/Subscriptions/SubscriptionAlert/SubscriptionAlert.module.scss","chartiq/GridViewCharts/ChartUtils.tsx","utils/functions/subscriptionManager.ts","views/components/Resizable/WtrResizable.tsx","views/components/Resizable/config.ts","gateways/UserPreferencesGateway/defaultCFDPreference.ts","utils/functions/fillUserPrefLocally.ts","shared/WtrModal/WtrModal.tsx","views/features/Dashboard/Newsfeed/Newsfeed.module.scss","pages/TradersGym/HistoryData/GymRefQuotesStore.ts","views/components/GroupBadge/GroupBadge.module.scss","views/components/DailyPercent/DailyPercent.module.scss","views/components/Notifications/components/NotificationsItem/NotificationsItem.module.scss","views/features/Dashboard/Header/AccountPanel/AccountPanel.module.scss","components/InfoModal/InfoModal.module.scss","views/features/Dashboard/Navigation/Items/SignalsPopup.module.scss","layouts/AuthLayout/AuthLayout.module.scss","pages/Calendar/Calendar.module.scss","views/features/DashboardContainerComponent/DashboardContainerComponent.module.scss","views/features/Dashboard/PositionsPanel/Grids/components/SettingsGrid.tsx","views/features/Dashboard/PositionsPanel/Grids/components/renderClearFilters.tsx","utils/hooks/useMoneyFormatter.tsx","images/metals.svg","images/forex.svg","images/crypto.svg","images/energy.svg","images/indices.svg","views/features/Dashboard/PositionsPanel/Grids/components/LimitProfitLossButton.tsx","views/features/Dashboard/PositionsPanel/Grids/components/CloseIcon.tsx","shared/AccountStatusCTA/AccountStatusCTA.tsx","setup/credentials.ts","utils/hooks/useDynamicWatchLists.tsx","views/components/Shared/TradingSessionTooltip.tsx","utils/functions/closeChildWindows.ts","utils/functions/sortSearchResults.ts","views/components/DetachIcon/DetachIcon.tsx","utils/functions/getAccountStats.ts","utils/hooks/useSubscriptionConstraints.ts","utils/hooks/useHandleSubscriptionConstraints.ts","utils/functions/OrderedSet.ts","pages/TradersGym/HistoryData/GymHistoryDataStore.ts","pages/TradersGym/HistoryData/GymHistoryManager.ts","views/features/Dashboard/Watchlist/EmptySearch/EmptySearch.module.scss","views/features/Markets/MarketSignals/MarketSignalsGate/MarketSignalsGate.module.scss","views/features/Markets/MarketSignals/MarketSignals.module.scss","views/features/Dashboard/Header/components/AccountIconAndTier.module.scss","images/commodities.svg","images/et-fs.svg","images/stocks.svg","utils/functions/uniqueArticle.ts","views/features/Dashboard/Newsfeed/NewsKeywords.tsx","images/loader_dark.svg","images/loader_light.svg","utils/functions/getTimeFrameTranslation.ts","views/features/Dashboard/ChartPanel/NewOrderModals/OrderTicketModal/OrderInformation/MarginRequirements/MarginRequirements.module.scss","views/features/Dashboard/Navigation/RightNavigation/Items/Item.module.scss","pages/Signals/SignalsEmptyState/SignalsEmptyState.module.scss","views/features/Markets/MarketsGridNew/components/MarketsEmptyState.module.scss","views/components/SearchableList/SearchableList.module.scss","views/components/Notifications/components/NotificationsIcon/NotificationsIcon.module.scss","views/components/Notifications/Notifications.module.scss","views/components/LangSelect/LangSelect.module.scss","views/features/Dashboard/Navigation/Navigation.module.scss","views/features/Dashboard/Navigation/IconToggles/OneClickTradingToggle.module.scss","pages/Subscriptions/SubscriptionAlert/OrHzDivider/OrHzDivider.module.scss","views/features/Dashboard/PositionsPanel/Grids/components/CurrentPrice.tsx","views/features/Dashboard/PositionsPanel/Grids/components/CalcGrossPL.tsx","views/features/Dashboard/PositionsPanel/Grids/components/CalcNetPL.tsx","views/features/Dashboard/PositionsPanel/Grids/components/CalcPLPips.tsx","views/features/Dashboard/PositionsPanel/Grids/components/CalcComment.tsx","views/features/Dashboard/PositionsPanel/Grids/components/EditIcon.tsx","views/features/Markets/NewsWidget/NewsPopup.tsx","shared/WtrSlider/WtrSlider.tsx","utils/mutations/useRefreshJWTToken.tsx","utils/hooks/useStorageDOMEvents.ts","views/features/Dashboard/TradeTicket/LimitProfitLoss/utils.ts","views/features/Dashboard/Watchlist/Instrument/Instrument.tsx","views/components/BidAskSpread/BidAskSpread.tsx","utils/hooks/useHandleOrderConstraint.ts","utils/hooks/useIsInViewport.ts","views/components/GroupBadge/GroupBadge.tsx","views/features/Markets/NewsWidget/NewsArticle.tsx","views/components/JapanNewsDisclaimer/JapanNewsDisclaimer.tsx","utils/hooks/useUpdateSBWatchlistInstruments.tsx","views/features/Dashboard/Watchlist/SearchResult/SearchResult.tsx","views/features/Dashboard/Watchlist/EmptySearch/EmptySearch.tsx","utils/functions/getSearchResults.ts","views/features/Dashboard/Watchlist/WatchlistsDropDown/WatchlistsDropDown.tsx","views/components/GroupBadge/MarketItemIcon.tsx","views/features/Dashboard/ChartPanel/NewOrderModals/DetachedModal/DetachedModal.tsx","utils/mutations/useUpdateUserPrefPips.tsx","views/features/Markets/MarketsGridNew/hooks/useClickOutside.ts","utils/hooks/usePlayNotificationSound.ts","images/risers.svg","images/fallers.svg","images/most-volatiles.svg","utils/hooks/useSignalsAccessRestriction.tsx","utils/functions/submitDynamicForm.ts","utils/hooks/useWindowSize.ts","views/features/Dashboard/ChartPanel/NewOrderModals/OrderTicketModal/OrderInformation/MarginRequirements/RequirementLine.tsx","views/features/Dashboard/ChartPanel/NewOrderModals/OrderTicketModal/OrderInformation/MarginRequirements/MarginRequirements.tsx","views/features/Dashboard/ChartPanel/NewOrderModals/OrderTicketModal/OrderInformation/SessionInformation/WeekInformation.tsx","views/features/Dashboard/ChartPanel/NewOrderModals/OrderTicketModal/OrderInformation/ModalOrderInformation.tsx","shared/ConditionalWrapper/ConditionalWrapper.tsx","shared/Modal/DraggableModalDialog/DraggableModalDialog.tsx","views/features/ThinkPortal/IframeThinkPortal.module.scss","views/components/Community/components/CommunityIcon/CommunityIcon.module.scss","views/features/Dashboard/Header/components/AccountMenu.module.scss","views/features/Dashboard/Header/AccountPanel/TradingAccounts/SubscriptionOptions.module.scss","pages/Calendar/Insights.module.scss","views/features/Dashboard/CloseTradeTicket/CancelOrderTicket.tsx","views/features/Dashboard/ChartPanel/NewOrderModals/ConfirmOrderModal/ConfirmOrderModal.tsx","views/features/Dashboard/CloseTradeTicket/ClosePositionTicketHeader.tsx","views/features/Dashboard/CloseTradeTicket/ClosePositionTicket.tsx","images/tiers/tier1.svg","images/tiers/tier2.svg","images/tiers/tier3.svg","views/features/Dashboard/TradeTicket/index.tsx","pages/Signals/SignalsEmptyState/SignalsEmptyState.tsx","images/loader.svg","images/grab-indicator.svg","images/comment.svg","images/empty-notification-list.svg","images/flags/eur.svg","images/flags/gbp.svg","images/flags/aud.svg","images/flags/cad.svg","images/flags/chf.svg","images/flags/nzd.svg","images/flags/sgd.svg","images/flags/zar.svg","images/flags/usd.svg","images/flags/jpy.svg","views/components/Loading/Loading.module.scss","views/features/Dashboard/Watchlist/AddToWatchlist/AddToWatchlist.module.scss","views/components/CloseButton/CloseButton.module.scss","views/features/Dashboard/TradeTicket/TradeTicketCalendar/TradeTicketCalendar.module.scss","pages/Signals/SignalsList/SortingChevronIcons/SortingChevronIcons.module.scss","pages/Subscriptions/SubscriptionDetails/SubscriptionDetails.module.scss","views/components/userGuideModal/UserGuideModal.module.scss","pages/TradersGym/Accounts/ServiceIssuesModal/ServiceIssuesModal.module.scss","views/components/LangSelect/LangSelect.tsx","pages/TradersGym/Player/GymDataItemPlayer.ts","shared/LiveChat/config.ts","shared/LiveChat/Horizontal.tsx","shared/LiveChat/Vertical.tsx","shared/LiveChat/LiveChat.tsx","views/components/InputError/InputError.tsx","utils/hooks/useResizableContainersWidth.tsx","views/features/Dashboard/ChartPanel/NewOrderModals/OrderTicketModal/OrderInformation/OrderInformation.tsx","utils/queries/useSignals.tsx","utils/mutations/useSubmitFeedback.tsx","views/components/FeedbackModal/FeedbackModal.tsx","views/components/SearchableList/SearchableList.tsx","views/components/Fragment.tsx","utils/functions/simulateClick.ts","views/features/Dashboard/InstrumentSearch/InstrumentSearch.tsx","contexts/NotificationsContext.tsx","views/components/Notifications/components/NotificationsIcon/NotificationsIcon.tsx","views/components/Notifications/components/NotificationsItem/NotificationsItem.tsx","views/components/Notifications/components/NotificationsList/NotificationsList.tsx","views/components/Notifications/Notifications.tsx","views/components/Community/components/CommunityList/CommunityList.tsx","utils/hooks/useCountryPrivacyPolicy.ts","views/components/Community/components/CommunityIcon/CommunityIcon.tsx","views/components/Community/Community.tsx","views/features/Dashboard/Header/components/SettingsModal/PlatformSettings.tsx","utils/functions/passwordValidation.ts","utils/queries/useGetMFAEnabled.tsx","views/features/Dashboard/Header/components/SettingsModal/MFAManagement.tsx","views/features/Dashboard/Header/components/SettingsModal/SecuritySettings.tsx","views/features/Dashboard/Header/components/SettingsModal/TradingSettings.tsx","views/features/Dashboard/Header/components/SettingsModal/AvatarIcons.tsx","utils/mutations/useGetPhoneCodesAndFlags.ts","views/features/Dashboard/Header/components/SettingsModal/ProfileSettings.tsx","utils/mutations/useChangePassword.tsx","views/features/Dashboard/Header/components/SettingsModal/PasswordSettings.tsx","views/features/Dashboard/Header/components/SettingsModal/SettingsModal.tsx","views/features/Dashboard/Header/components/SettingsOptions.tsx","views/features/Dashboard/Header/components/AccountUserIcon/AccountUserIcon.tsx","views/features/Dashboard/Header/components/AccountMenuPopup.tsx","views/features/Dashboard/Header/components/AccountMenu.tsx","views/features/Dashboard/Header/AccountPanel/AccountStats.tsx","views/features/Dashboard/Header/AccountPanel/RemainingVolume.tsx","images/flags/index.ts","views/features/Dashboard/Header/components/AccountCurrency.tsx","views/features/Dashboard/Header/components/AccountIconAndTier.tsx","views/features/Dashboard/Header/AccountPanel/TradingAccounts/SubscriptionOptions.tsx","utils/hooks/system/useSwitchAccount.tsx","views/features/Dashboard/Header/AccountPanel/TradingAccounts/TradingAccounts.tsx","views/features/Dashboard/Header/AccountPanel/CurrencyStats.tsx","views/features/Dashboard/Header/AccountPanel/AccountPanel.tsx","views/features/Dashboard/Header/Header.tsx","views/features/Dashboard/Navigation/Items/Item.tsx","views/features/Dashboard/Navigation/Items/Trade.tsx","views/features/Dashboard/Navigation/Items/Markets.tsx","views/components/SearchInput/useOutsideAlerter.tsx","components/InfoModal/InfoModal.tsx","views/features/Dashboard/Navigation/Items/Signals.tsx","views/features/Dashboard/Navigation/Items/SignalsPopup.tsx","views/features/Dashboard/Navigation/Items/Calendar.tsx","views/features/Dashboard/Navigation/Items/Management.tsx","views/features/Dashboard/Navigation/Items/Guide.tsx","pages/TradersGym/Positions/GymPositionManager.ts","pages/TradersGym/Accounts/GymTradingAccount.ts","pages/TradersGym/Accounts/GymAccountUtils.ts","utils/hooks/useEnableTradersGym.ts","views/features/Dashboard/Navigation/Items/TradersGym.tsx","shared/WtrToggle/WtrToggle.tsx","views/features/Dashboard/Navigation/IconToggles/ThemeToggle.tsx","views/features/Dashboard/Navigation/IconToggles/OneClickTradingToggle.tsx","views/features/Dashboard/Navigation/Navigation.tsx","shared/Checkbox/Checkbox.tsx","utils/functions/stripHtmlTags.ts","pages/Subscriptions/Carousel/Carousel.tsx","pages/Subscriptions/CurrencyDetails/CurrencyDetails.tsx","utils/functions/currencyPairsUtils.ts","utils/subscriptions/useSubscribe.tsx","utils/subscriptions/useChangeTier.tsx","pages/Subscriptions/SubscriptionSelector/TierTile.tsx","pages/Subscriptions/SubscriptionSelector/SubscriptionSelector.tsx","pages/Subscriptions/SubscriptionDetails/SubscriptionDetails.tsx","utils/subscriptions/useCancelSubscription.tsx","utils/subscriptions/useStopSubscription.tsx","utils/subscriptions/useResumeSubscription.tsx","pages/Subscriptions/SubscriptionAlert/OrHzDivider/OrHzDivider.tsx","pages/Subscriptions/SubscriptionAlert/SubscriptionAlert.tsx","utils/hooks/useHandleSubscribeResponse.ts","utils/hooks/useHandleDemoPendingExpiry.ts","utils/subscriptions/useFetchSubscriptionStatus.tsx","pages/Subscriptions/SubscriptionChecker/SubscriptionChecker.tsx","views/components/NotificationModal/NotificationModal.tsx","views/components/userGuideModal/UserGuide.tsx","views/components/ContactModal/ContactModal.tsx","views/components/ReconnectModal/ReconnectModal.tsx","utils/hooks/watchlist/useWatchlistSync.ts","layouts/AuthLayout/AuthLayout.tsx","pages/Signals/helpers.ts","views/features/Dashboard/TradeTicket/TradeTicketCalendar/TradeTicketCalendar.tsx","views/features/Dashboard/TradeTicket/LimitProfitLoss/LimitProfitLoss.tsx","views/features/Dashboard/TradeTicket/TradeTicket.tsx","utils/functions/translateDate.ts","utils/hooks/usePresentTradeEvent.ts","utils/hooks/useSubscribeTradeEvent.ts","utils/functions/Dispatcher.ts","pages/TradersGym/HistoryData/GymHistoryRequest.ts","views/features/Dashboard/PositionsPanel/Grids/components/Change.tsx","views/features/Dashboard/PositionsPanel/Grids/components/GymRemoveModal.tsx","views/features/Dashboard/PositionsPanel/Grids/components/PositionSearch.tsx","views/features/Dashboard/PositionsPanel/Grids/components/CalcDistanceToMarket.tsx","views/features/Dashboard/ChartPanel/NewOrderModals/ClosedTicketModal/ClosedTicketModal.tsx","views/features/Dashboard/Header/AccountPanel/MarginLevel.tsx","utils/functions/documentUtils.ts","pages/TradersGym/Accounts/ServiceIssuesModal/ServiceIssuesModal.tsx","views/features/Dashboard/TradeBoard/TradeBoardHeader/TradeBoardHeader.tsx","views/features/Dashboard/TradeBoard/TradeBoardItem/OneClickTradeTicket/OneClickTradeDropdown/OneClickTradeDropdown.tsx","views/features/Dashboard/TradeBoard/TradeBoardItem/OneClickTradeTicket/OneClickTradeButtons/OneClickTradeButtons.tsx","views/features/Dashboard/TradeBoard/TradeBoardItem/OneClickTradeTicket/OneClickTradeTicket.tsx","gateways/RfpGateway/rfpTrades.ts","views/features/Dashboard/TradeBoard/TradeBoardItem/TradeBoardItem.tsx","views/features/Dashboard/TradeBoard/TradeBoard.tsx","views/features/Dashboard/PositionsPanel/Grids/Position/usePositionGridColumn.tsx","views/features/Dashboard/PositionsPanel/Grids/Position/usePositionTable.tsx","views/features/Dashboard/PositionsPanel/Grids/Position/PositionTable.tsx","views/features/Dashboard/PositionsPanel/Grids/Order/useOrderGridColumn.tsx","views/features/Dashboard/PositionsPanel/Grids/Order/useOrderTable.tsx","views/features/Dashboard/PositionsPanel/Grids/Order/OrderTable.tsx","views/features/Dashboard/PositionsPanel/Grids/components/infoIcon.tsx","views/features/Dashboard/PositionsPanel/Grids/Closed/useClosedGridColumn.tsx","views/features/Dashboard/PositionsPanel/Grids/Closed/useClosedTable.tsx","views/features/Dashboard/PositionsPanel/Grids/Closed/ClosedTable.tsx","views/features/Dashboard/PositionsPanel/PositionsPanel.tsx","views/features/Dashboard/Watchlist/WatchlistHeader/WatchlistHeader.tsx","views/features/Dashboard/Watchlist/DetachWatchList/components/DetachWatchlistPercentChange.tsx","views/features/Dashboard/Watchlist/DetachWatchList/useDetachWatchListColumn.tsx","views/features/Dashboard/Watchlist/DetachWatchList/useDetachWatchList.tsx","views/features/Dashboard/Watchlist/DetachWatchList/DetachWatchList.tsx","views/features/Dashboard/Watchlist/Lists/WatchlistEdit.tsx","views/features/Dashboard/Watchlist/Watchlist.tsx","views/features/Dashboard/Navigation/RightNavigation/Items/Item.tsx","views/features/Dashboard/Navigation/RightNavigation/Items/Trade.tsx","views/features/Dashboard/Navigation/RightNavigation/Items/Info.tsx","views/features/Dashboard/Navigation/RightNavigation/Items/News.tsx","views/features/Dashboard/Navigation/RightNavigation/RightNavigation.tsx","pages/Signals/SignalsList/SignalPercentElement/SignalPercentElement.tsx","pages/Signals/SignalsList/SortingChevronIcons/SortingChevronIcons.tsx","pages/Signals/SignalsList/SignalsFilter/SignalsFilter.tsx","pages/Signals/SignalsList/SignalsList.tsx","views/components/EmptyNews/EmptyNews.tsx","views/features/Dashboard/Newsfeed/Newsfeed.tsx","views/components/ThemeWrapper/ThemeWrapper.module.scss","shared/WtrModal/WtrModal.module.scss","views/components/InputError/InputError.module.scss","views/components/JapanNewsDisclaimer/JapanNewsDisclaimer.module.scss","views/components/DetachIcon/DetachIcon.module.scss","views/features/Dashboard/TradeTicket/NumberInput/FormattedNumberInput/FormattedNumberInput.module.scss","shared/WtrTooltip/WtrTooltip.module.scss","views/features/Dashboard/ChartPanel/NewOrderModals/OrderTicketModal/OrderInformation/MarginRequirements/RequirementLine.module.scss","docs/sound.wav","shared/WtrSlider/WtrSlider.module.scss","views/features/Markets/MarketSignals/MarketSignalsList/MarketsSignalsList.module.scss","images/feedbackStars/oneStar.png","images/feedbackStars/twoStars.png","images/feedbackStars/threeStars.png","images/feedbackStars/fourStars.png","images/feedbackStars/fiveStars.png","views/features/Dashboard/Header/components/AccountUserIcon/AccountUserIcon.module.scss","views/features/Dashboard/Header/components/AccountCurrency.module.scss","docs/Web-User-Guide-Japan.pdf","images lazy /^/.//.*/.svg$/ groupOptions: {} namespace object","index.scss","setup/gtm.ts","webpack:///./src/workers/BinaryRfpClient.worker.ts?c2be","workers/BinaryRfpClient.worker.ts","gateways/RfpGateway/BinaryRfpGateway.ts","setup/registerIcons.ts","setup/monitoring.ts","setup/axios.ts","views/components/ThemeWrapper/ThemeWrapper.tsx","utils/functions/subscrOpParamsPersistHelper.ts","gateways/errorMessages.ts","gateways/RfpGateway/websocket.ts","utils/functions/getUrlWithAppendedQueryString.ts","utils/queries/useApplicationStatus.tsx","utils/queries/useUserProfile.tsx","utils/queries/useUserStats.tsx","utils/hooks/preferences/useStoreAndLoadPreferences.ts","utils/hooks/preferences/useUpdatePipsPreferences.ts","utils/queries/useUserPreferences.tsx","utils/mutations/useExchangeSSOCode.tsx","utils/queries/useAggreementStatus.tsx","utils/hooks/system/useInitialize.tsx","views/components/Permissions/withLiveAccount_inDemoMode.ts","views/components/Permissions/withLiveAccount_inLiveMode.ts","views/components/Permissions/withoutLiveAccount_inDemoMode.ts","views/components/Permissions/withoutLiveAccount_inLiveMode.ts","views/components/Permissions/AccountStatusHandler.tsx","utils/mutations/useSetupMFA.tsx","utils/mutations/useSetMFAStatus.tsx","views/features/Dashboard/Header/components/SettingsModal/TwoFactorAuthentication/TwoFactorAuthModal.tsx","utils/functions/changeLanguageForPortal.ts","views/components/AuthGuard/AuthGuard.tsx","utils/functions/lazyRetry.ts","views/features/Dashboard/Dashboard.tsx","views/features/Markets/NewsWidget/NewsWidget.tsx","views/features/Markets/MarketSignals/MarketSignalsGate/MarketSignalsGate.tsx","views/features/Markets/MarketSignals/MarketSignalsList/MarketSignalsList.tsx","views/features/Markets/MarketSignals/MarketSignals.tsx","store/MarketTableFilterStore/marketTableFilterStore.ts","views/features/Markets/MarketsGrid/utils.ts","views/features/Markets/MarketsGridNew/components/FilterBar.tsx","views/features/Markets/MarketsGridNew/components/PercentChange.tsx","views/features/Markets/MarketsGridNew/components/TableSettingsModal.tsx","views/features/Markets/MarketsGridNew/components/VolativityProgressBar.tsx","views/features/Markets/MarketsGridNew/components/NewWatchlistsList.tsx","views/features/Markets/MarketsGridNew/components/AddToWatchlistWrapper.tsx","views/features/Markets/MarketsGridNew/components/MarketsEmptyState.tsx","views/features/Markets/MarketsGridNew/MarketsTable.tsx","views/components/MarketItemFormatter/useMarketItemFormatter.ts","views/features/Markets/Markets.tsx","utils/functions/postMessageToTp.ts","utils/functions/handleDepositRedirect.ts","views/features/ThinkPortal/IframeThinkPortal.tsx","utils/queries/useCalendarToken.tsx","pages/Calendar/Insights.tsx","pages/Calendar/Calendar.tsx","utils/mutations/useGenerateSSOToken.tsx","utils/hooks/useFetchDataFromYoutube.ts","pages/Tutorials/SingleTutorial.tsx","pages/Tutorials/Tutorials.tsx","views/features/DashboardContainerComponent/DashboardContainerComponent.tsx","Content.tsx","utils/hooks/usePageVisibility.ts","App.tsx","workers/serviceWorkerContainer.ts","index.tsx","shared/NewUpdateNotification/utils.ts"],"names":["MarketsGroupName","MarketsGroupTooltips","MarketsGroupPeriod","AppComponentType","MarginAccountType","QuantityType","PhoneNumbers","ApplicationStatus","ChartTimezone","TicketLayout","GridType","TradingPositionType","stopLossTypes","TradingPositionLimitType","TradingPositionSide","TradingAccountType","QUANTITY_TYPE","LOTS","AMOUNT","SignalType","ThaiPriceType","RFPDataObjectType","RFPConnectionErrorType","AccountMarketType","PositionSide","SubscriptionAction","TradingPositionState","defaultValues","Lazy","isLoading","isArabic","localStorage","getItem","accessToken","appTheme","accountStats","autoShowModal","statusModal","noDemoAccountModal","unapprovedAppModal","insufficientFundModal","incompleteApplication","resetAccountModal","underReviewModal","successfulActCreation","feedbackModal","contactModal","openSettings","reconnectModal","ipLocation","email","emailVerification","feedbackResponse","firstName","isLoggedIn","isTwofaEnabled","lastName","loginResponse","loginResponseStatus","modalId","phoneNumber","phone","phoneCountryCode","resetPasswordInfo","selectedLanguage","twofaBarcodeKey","twofaSecretKey","userPreferences","userId","isChildWindow","tradingMode","userPreferenceError","languageSettings","isJapanAccount","agreementPendingVersion","userCountryISO","countryData","subscriptionInfo","subscriptionModal","canFetchSubscrInfo","currentlySelectedSignal","limitProfitLossValues","octStoredValues","AppContextProvider","ObservableObject","this","_instance","getValue","m_propertyValues","value","raiseAndSetIfChanged","setItem","toUpperCase","_this$m_propertyValue","_this$m_propertyValue2","isOpen","reason","constructor","super","clone","reset","defaultVals","logout","_AppContextProvider","createContext","Resolver","isSet","isRegistered","resolve","instance","module","exports","concat","process","REACT_APP_RFP_STOMP_WEBPROXY","RFP","tfboLoginResponse","tfboEndpointResponse","ping","pong","getFeedIds","getMarketItems","getMarketItemsInfo","getTradingAccounts","getTradingProviders","manageHistory","manageHistoryDate","manageQuotes","manageTradingNews","manageMarketWinNews","getNewsGroups","getMarketWatchIntervals","getMarketWatchCategories","getMarketWatchSnapshots","getMarketWatchSubscription","getMarketWatchDynamicSubscription","getTTSessionTimes","rfpServerNames","requestRfpServerNames","queueDemoAccountParams","queueErrors","queueFeedIds","queueHistoricalDataUpdates","queueInfos","queueMarketItems","queueMarketItemsInfo","queueQuotes","queueTradingAccountsError","queueSessionTimes","queueTradingAccount","queueTradingAccountProperties","queueTradingProvider","queueTradingAccountLogin","queueTierInfo","queueTradingAccountInstruments","queueTradingNews","queueMarketWinNews","queueTradingNewsConfig","queueTradingNewsGroup","queueTradeEvent","queueTradeEventExt","queueTradingPositionUpdates","queueMarketWatchCategories","queueMarketWatchIntervals","queueMarketWatchItem","queueMarketWatchItems","queueHistorySize","queueHistoryStartDate","queuePreviousDayClosePrice","queueTierUpdateInfo","tradingAccountLogin","tradingAccountLogout","TTWatchList","requestTTWatchList","TTMarginRules","requestTTMarginRules","requestFutureMargin","futureMargin","closeTrade","connect","editOrder","editPosition","newOrder","newTrade","partialClose","updateQuantityType","All","HistoryTickItems","HistoryTick","HistorySize","PriceQuote","TfboLoginResponse","TfboEndpointResponse","Pong","FeedInfos","TradingAccount","TradingAccountLogin","TradingAccountLogout","TradingProvider","TradeEvent","TradingPosition","MarketWatchIntervals","MarketWatchCategories","MarketWatchItem","MarketWatchItems","RFPNews","MarketItem","MarketItemsRecord","HistoryTimescaleStartDate","TradingAccountsError","TTSessionTimes","SubscriptionStatus","ACCOUNT_SUBSCRIPTION_STATUS_WITH_TIER_INFO","Active","shouldShowTierIcon","status","includes","SubscriptionModalReason","UserOperationType","defaultSubscriptionModalState","text","instrument","defaultSubscriptionInfo","tier","tierNum","nextTier","enabled","TTTier","expiryDate","startDate","isDemoUnlimited","maxVolume","usedVolume","remainingVolume","getInstrumentMinTier","instrumentCode","instrumentList","_instrumentList$find","find","code","minTier","getTierNumFromName","parseInt","charAt","length","getFormattedDateHelper","datetime","formatString","globalLocale","moment","locale","format","formattedDate","getGeneralFormatDate","date","includeHM","arguments","undefined","isJapanFormat","JAPAN_DATETIMES_FORMAT","JAPAN_DATE_FORMAT","GENERAL_DATETIMES_FORMAT","GENERAL_DATE_FORMAT","getSubscriptionExpiryDate","endOfMonth","endOf","unix","getSubscriptionStartDate","startOfMonth","startOf","checkIsVolumeUnlimited","checkIsVolumeExceeded","_subscriptionInfo$tie","checkIsTierOrderSizeExceeded","orderSize","_tiers$find","currentTier","orderMaxLimit","tiers","id","maxPerOrder","checkIsGlobalOrderSizeExceeded","isNaN","GLOBAL_MAX_ORDER_SIZE","checkHasSubscriptionOptions","subscriptionStatus","Unpaid","Stopped","getSubscriptionConstraints","marketItems","operation","_getInitModalPropsByS","statusBasedReason","getInitModalPropsByStatus","checkIsOperationGranted","CLOSE","CANCEL","Existing","checkIsInstrumentAllowed","currentTierNum","instrumentMinTier","Instrument","canSeeSubscriptionDetails","checkMustShowTierSelector","modalReason","SubscriptionForExistingUser","ManageSubscription","UpgradeSubscription","Volume","OrderSizeUpgradable","SubscribeFromAlert","UpgradeToAccessGym","checkMustShowAlert","SubscriptionForNewUser","SubscriptionForUnpaidUser","Renewal","Cancelled","Terminated","ChangeTierResponse","SubscribeResponse","ConfirmStop","ConfirmRestart","SubscriptionDetails","CancelSubscriptionResponse","StopSubscriptionResponse","RestartSubscriptionResponse","NoSuperiorTiers","SystemError","OrderSizeGlobal","NotAuthorized","IncorrectParamsForBJP","GymNotAccessibleForTier","JapanAccountEmptyApplicationStatus","statusToReasonMap","Suspended","NoRecord","Incomplete","displayVolumeInfo","amount","appContextProvider","i18n","t","formatNumberWithCommas","getUpdatedSubscrInfoObject","updateProps","infoObject","getStatusRelatedSubscrInfoUpdate","getActiveTier","_infoObject$tier","toLowerCase","getNextMonthTier","getTierDisplayName","tierId","tierKey","tiersKeysMap","getTierNameByNumber","tierNumber","getMinReqTierDisplayText","getAnyLiveUserAccount","appContext","_appContext$accountSt","liveAccountForDemo","_ref2","account","type","accountNumber","toString","checkHasUserDemoAccount","_appContext$accountSt2","_ref3","getJPAcctIdForTierInfoRequest","_appContext$accountSt3","_appContext$accountSt4","liveJapanSubscriptionAccount","_ref4","platformAccountType","PlatformAccountType","ThinkTrader","getJPAcctIdForTierInfoRequestFromTradingAccounts","tradingAccounts","_liveJapanSubscriptio","_ref5","accountType","accountMarketType","Japan","presentComponentType","Watchlist","alreadyEstablished","accountValues","balance","margin","freeMargin","marginLevel","equity","pl","organizationName","orderModalOpenedFrom","updateMarketWatchItem","marketWatchIntervals","marketWatchCategories","marketWatchItem","marketWatchItems","marketWatchRisers","daily","weekly","marketWatchRisersSB","marketWatchFallers","marketWatchFallersSB","marketWatchMostVolatile","marketWatchMostVolatileSB","closedTable","historicalData","detailedInformation","defaultWatchLists","mainPanelView","marketItemsInfo","multiCharts","newChart","notificationMessage","notificationType","tradeNews","openTable","orderTable","orderType","quantityType","notificationSoundMuted","notificationSoundVolume","tradeFromChartEnabled","rfpConnectionError","selectedTradingAccount","selectedInstrument","selectedSymbol","selectedPosition","selectedNewsContent","symbolChanged","toggleOverlay","positionProfitLosses","tradingAccount","tradingPositions","tradingPositionsArr","tradingPositionsLength","twoFactorAuthModalToggle","startTradingNow","watchlist","hsSubs","instruments","orderConfirm","new","edit","cancel","close","oneClickTrading","keyPress","marketIndex","rfpGatewayProvider","inactiveTime","inactiveModal","openOrder","openOrderInformation","toggleAccordionMenu","inputValidation","amountLots","limitStop","addProfit","addLoss","closeQuantity","highAmount","orderValue","takeProfit","stopLoss","closePosition","label","trade","toggleOrdersTFC","toggleTradesTFC","emptyChartModal","currentPrice","isEdit","dragPosition","showProfitLoss","activeIndex","gridClicked","selectedSymbolUpdated","getOrderInfo","instrumentLastTrade","settingsOptions","gridChartsChanged","showOrderTicket","showOrderInformation","showCloseTicket","showClosedPositionTicket","showConfirmTicket","tradeInformation","showCancelTicket","gridButton","modifyTicket","gridChartInitialLoad","crossHairState","showNewsFeed","selectedType","maximizeGrid","applicationStatus","chartTimezone","initialTimezone","headerSelected","closeLength","ticketLoad","typeOfOrder","userGuide","modalToggle","closeOrder","newOrderModalToggle","orderTicket","confirmOrder","notification","isActive","message","reconnection","isReconnecting","count","loadingState","accountPopupToggle","tfboConnectionError","ssoTradingAccount","previousDayClosePrices","closeAllOtherTabs","DashboardContextProvider","getTradingPositions","_","Error","Object","values","newWatchlist","filter","v","i","a","findIndex","_id","addPreviousDayClosePrices","_DashboardContextProvider","TradingMode","storedTradingMode","Live","initialStateAuthStore","isAuthenticated","userStats","userProfile","USER_EMAIL_KEY","isDemoMode","Demo","isLiveMode","isMFAEnabled","setupMFA","disableMFA","reinitialize","isSouthAfricaAccount","isRfpConnected","accountAvatar","userPhoneNumbers","mobile","mobileCountryCode","authStore","create","set","setTradingMode","setApplicationStatus","setUserProfile","setUserProfileProp","prop","state","setUserStats","setUserStatsProp","setIsAuthenticated","setIsMFAEnabled","setSetupMFA","setDisableMFA","setReinialize","setIsJapanAccount","setIsSouthAfricaAccount","setIsRfpConnected","setAccountAvatar","setPhoneNumbers","createSelectors","getFormattedSpreadValue","marketItem","askPrice","bidPrice","language","_spreadSplit$1$length","_spreadSplit$","spreadValue","calculateSpreadValue","spreadString","toFixed","separatorIndex","lastIndexOf","spreadSplit","split","spreadWithDecimal","toLocaleString","_marketItem$marketIte","marketItemInfoDecPrecision","marketItemInfo","decimalPrecision","decPrec","decimal","getMarketItemTickSize","Math","pow","calcInitialLimitValue","_ref","price","isBuy","pipSize","defaultPips","isTakeProfit","TakeProfit","pipValue","NaN","calculateInitialStopLossValue","initialStopLossValueObj","quote_value","parseFloat","limitPrice","side","initialValue","calculateInitialTakeProfitValue","initialStopLossTakeProfitObj","getInstrumentDetails","symbol","Array","isArray","information","_tradingAccount$","getTradingInstrument","tradingInstruments","getMarketItem","feedId","rfpGateway","_rfpGateway","RfpGateway","convertAmountToLot","roundLot","_marketItem$marketIte2","tickSize","getMarketItemPipSize","_marketItem$marketIte3","min","calcPipCost","priceQuote","getCurrentPrice","lastBid","b","onePip","preCalcPL","baseCurrency","calculateMarginImpact","marginRequirement","marginImpact","marginReq","getMarginImpact","convertToBaseCurrency","qCcy","convertLotToAmount","lot","MarketItemType","isMarketItemType","flags","findCommonMarketItem","fSymbol","sSymbol","first","second","mapMarketItems","forEach","item","grp","push","res","mt1","base","bCcy","quoteCode","mt2","closePrice","quoteCurrency","SpreadBetting","mt","baseAccountCurrency","homeCurrencyConversionRate","lastQuoteBaseCcy","pair","inverse","info","getQuotePrices","mtPair","getEstOffset","executed","offset","getTimezoneOffset","timeZone","str","timeZoneName","h","m","match","hour","e","console","warn","Date","getNYTimezoneOffset","addZero","val","updateDateWithHoursAndMinutes","hours","minutes","utcTimeOffset","daysOffset","newDate","setDate","getDate","setHours","setMinutes","setSeconds","convertTradingSessions","sessions","trading","map","session","start","end","time","tradeSessions","timezone","serverTimeZone","lastSunday","getLastSunday","currentDate","offsetToLastSunday","getDay","lastSundayDate","index","startHour","startMinute","endHour","endMinute","openDate","closeDate","openDayOfWeek","closeDayOfWeek","getHourAndMinutes","ts1","day","getFullYear","getMonth","schedule","pushTradingSession","getHours","getMinutes","ts2","applyEmptySessions","addEmptySession","dayOfWeek","emptyTimeSession","tradingSession","prevSession","getTime","key","getCurrentPriceKey","mapQuotesPrices","get","calcPipsAtPrice","getPositionPipsChange","position","_position$cP","openPrice","oP","cP","mul","updatePosition","open","pending","profit","calcProfit","grossProfit","floor","netProfit","comm","swap","netPL","grPL","posId","activePositions","pos","_position$dec","_position$marketItem","tradingInstrument","quantity","qty","dec","pips","basePositionCurrency","FUTURE","tickValue","currentProfitOrStopPrice","progression","fillQuantity","collection","_tradingAccount$tradi","_detailedInformation$","max","minL","rndLot","maxL","getDefaultAmount","_qty$toString$split$","decLength","Number","getAllLotsAtAccount","amounts","_tradingAccount$tradi2","_detailedInformation$2","currenciesMap","EUR","USD","JPY","NZD","AUD","ZAR","CHF","GBP","defineBaseCurrencySymbol","formatter","abs","formatNumberAsMoney","currency","num","_num","formatAsMoney","selectedTradingAccountNumber","_num2","getMarginCalculationType","marginCalculationType","getEffectiveSize","marginAccountType","accountId","openPositions","majoritySide","totalBuy","totalSell","aId","Hedged","Unhedged","getHedgedTradeQuantity","effectiveSize","numberInputQuantity","isSquare","instrumentMarginReq","sizeOfPosition","calcPercentChange","calcPercentChangeAtParams","op","updateCurrentPrice","c","isPending","getAdditionalSubscriptionPairs","additionalSubscriptionPair","Set","baseCcyPos","baseCcyAcct","add","calculateEquity","profitLoss","calculateFreeMargin","accountMcLevel","usedMargin","calculateMarginLevel","SBCLeaner","name","result","endsWith","replace","getLanguageToUse","lang","initialStateTradingAccountStore","selected","selectedAccountStats","accounts","currentAccountUrl","isSpreadBetting","isJapanSpread","isJapanSubscription","isFundedTrader","isOneClickTradingActive","tradingAccountStore","persist","immer","setSelected","setAccountMarketType","setSelectedAccountStats","setAccounts","setCurrentAccountUrl","setAccountStats","setIsFundedTrader","setIsOneClickTradingActive","storage","createJSONStorage","useStorageDOMEvents","formattedNumber","isSpreadBettingAccount","order","gridChartMenu","instrumentColorTradeBoard","_marketItem$decPrec","spanElementStyles","orderTicketBigSymbol","fontSize","fontWeight","orderTicketSmallSymbol","gridChartMenuBigSymbol","display","width","gridChartMenuSmallSymbol","gridChartMenuDot","watchlistBigSymbolLongNumber","color","watchlistBigSymbolShortNumber","watchlistSmallSymbolLongNumber","watchlistSmallSymbolShortNumber","separator","isCommaSeparator","numArray","addedLength","formatPosition","formatLength","decimalFormat","firstNum","secondNum","formattedArr","React","createElement","style","numDecimals","numPastDecimal","splice","direction","localizeNumber","_language","Intl","NumberFormat","minimumFractionDigits","localizeDecimalSeparator","replaceAllThousandSeparators","_localStorage$getItem","replaceAll","revertToTraditionalNumberFormat","Hooks","observable","subscriptionHandler","dependencies","subscriptionRef","useRef","current","subscribe","onNext","onError","onComplete","useEffect","unsubscribe","webTraderPath","webTraderDetachedPath","Routes","login","forgotPassword","registered","twoFactorAuthentication","sso","agreeToTermsAndConditions","trader","tradersGym","charts","feedback","markets","calendar","settings","detached","guide","openAccount","uploadDocuments","funds","reports","signals","tutorials","error","newWindow","DETACHED_SUB_ROUTES","Charts","Trade","OneClickTrade","Positions","commonFxSymbols","MAX_WATCHLISTS_ALLOWED","MAX_INSTRUMENTS_ALLOWED","MAX_INSTRUMENTS_ALLOWED_JP","DEFAULT_FEED_ID","WATCHLIST_SORT_ORDER","NONE","ASCENDING","DESCENDING","WATCHLIST_SORT_VALUE","INSTRUMENT","CODE","CHANGE","LAST_PRICE","convertTWatchlistsToWatchListData","watchlists","_code","_name","_feedId","sortOrder","_sortOrder","sortValue","_sortValue","getDefaultJapanWatchlists","preferredFeedId","japanWatchlists","element","_rank","watchlistRank","keys","sort","slice","getDefaultCFDWatchlist","isSpreadBettingWatchlist","isJapanSpreadWatchlist","fXSymbols","spreadBettingFxSymbols","japanSpreadFxSymbols","defaultArray","newInstrumentEntry","defaultWatchlistPreference","translatedName","defineSortOrder","createNewWatchlist","dynamicWatchlistPreference","instrumentExistsInDynamicWatchlists","watchList","items","title","japanSpreadWatchlistName","initialStateWatchListStore","currentWatchList","childWatchlistName","showWatchListPanel","watchListStore","getCurrentWatchList","setCurrentWatchList","watchlistsCount","watchlistInstrumentCount","getWatchlist","getWatchlistInstruments","getWatchlistsContainsInstrument","hasWatchlists","isWatchlistNameExists","getWatchlists","getSelectedWatchlist","addEmptyWatchlist","addWatchlist","data","uniqueWatchlists","self","w","setWatchlists","setWatchlistsForAllTradingModes","LIVE","DEMO","removeWatchlist","setSortOrder","addInstruments","setInstruments","reorderWatchlistInstruments","fromIndex","toIndex","removed","removeInstruments","filteredInstruments","inst","some","removeAllInstruments","moveInstruments","fromWatchlist","destinationWatchlist","fromWatchlistInstruments","destinationWatchlistInstruments","isInstrumentExistsInWatchlist","isInstrumentExistsInAnyWatchlist","renameWatchlist","oldName","newName","removeAllWatchlists","setShowWatchListPanel","show","partialize","useForceRerender","mounted","setValue","useState","now","Button","className","labelClass","disabled","onClick","icon","iconOnhover","size","variant","smallFont","isFullWidth","children","disabledOnHover","labelIcon","setLabelIcon","_className","cn","styles","button","outlineDisabled","fullWidth","event","aria-label","onMouseEnter","onMouseLeave","FontAwesomeIcon","buttonLabel","Nullable","requireNonNull","m_value","isPresent","run","consumer","runNullable","predicate","empty","mapper","of","flatMap","coalesce","mapNullable","getOrThrow","throwable","orElse","other","orElseGet","orElseGetNullable","orElseRun","runnable","equals","_len","_key","_empty","_Nullable","twoFAHost","getConfig","SUPPORT_EMAIL_GENERAL","SUPPORT_EMAIL_JAPAN","tfboSourceParam","SUBSCR_MGMT_PROV","JAPAN_DATETIME_FORMAT","ENVIRONMENT_NAME","_process","_process$env","REACT_APP_ENV","isProduction","isPreviewProduction","versionNumber","MFA_ACCESS_TOKEN_KEY","ACCESS_TOKEN_KEY","REFRESH_TOKEN_KEY","signalsBpKey","signalsBpVal","TV_UAT_REDIRECT_LOGIN_URL","TV_PROD_REDIRECT_LOGIN_URL","useSelectedTradingAccount","useContext","DashboardContext","use","DefaultResolver","resolverDelegate","m_resolverDelegate","_iterator$next","next","resolveAll","_iterator$next2","list","iterator","_iterator$next3","DependencyContainer","m_resolver","m_services","m_registeredServices","Map","register","impl","has","services","prototype","resolver","registerSingle","service","serviceFunc","newInstance","initialStateAccountStatusStore","checkApplicationStatus","userProfileInfo","checkAccountStatus","infoMessage","showModal","hasLiveAccount","hasDemoAccount","hasAnyAccount","permissions","accountMenuAction","accountMenuLabel","marginLevelAction","marginLevelLabel","signalsAction","tradeButtons","mainMenuAction","addAccount","manageFunds","portalPage","notificationBell","canTrade","isTraderGymActive","unlockGym","accountStatusStore","setCheckApplicationStatus","response","setStatus","newStatus","setIsTraderGymActive","setUserProfileInfo","user","setCheckAccountStatus","setHasLiveAccount","setHasDemoAccount","setInfoMessage","infoMessageToChange","setPermissions","permission","setShowModal","toShowModal","setTradingAccount","setShowAccountStatus","setCanTrade","setUnlockGym","TradingViewStore","isSearchOpen","firstPressedButton","isPreselectedInstrument","compSymbol","isCompSymbolMode","ticketLayout","dockStylesTicket","haveSearchForPositions","setDockStylesTicket","setIsPreselectedInstrument","setOpenOrderInformation","setIsSearchOpen","setIsCompSymbolMode","setFirstPressedButton","setCompSymbol","setTicketLayout","setHaveSearchForPositions","assign","rest","AppContext","dialogClassName","BootstrapModal","Body","Header","Title","Footer","Dialog","TRANSITION_DURATION","BACKDROP_TRANSITION_DURATION","RfpGatewayContext","promiseFactory","promiseFactoryRef","PromiseFactory","initialState","Buy","Market","isPreservedValue","amountInfo","step","openPriceInfo","isTriggered","potentialProfitLoss","stopLossInfo","takeProfitInfo","limitsOnly","isPositionDraggingDisabled","stopLossType","action","ActionType","unknown","tradingPosition","currentQuote","isSignalOrder","orderStore","resetExceptSide","setAction","setTradingPosition","setTradingInstrument","setCurrentQuote","setMarketItem","setTradeProps","setAmountInfo","setOpenPriceInfo","setTakeProfitInfo","setStopLossInfo","setIsSignalOrder","fillStoreFromPosition","limitsType","compareLimits","restTradingPosition","GymTradingPosition","eT","prc","sl","tp","takeProfitPips","StopLoss","stopLossPips","createTradeRequestObject","currentPriceQuote","tradeObject","_current$stopLossInfo","_current$stopLossInfo2","_current$takeProfitIn","_current$takeProfitIn2","editState","isMarketOrder","stopLevel","limitLevel","trailingStop","_current$stopLossInfo3","_current$takeProfitIn3","Trailing","_currentPriceQuote$b","_currentPriceQuote$a","_currentPriceQuote$a2","_currentPriceQuote$b2","_current$openPriceInf","_current$openPriceInf2","commonProps","reqId","getSeconds","acctId","_current$amountInfo$a","_current$amountInfo","_current$openPriceInf3","_state$marketItem3","_state$marketItem4","_current$amountInfo4","_current$amountInfo5","_state$marketItem","_state$marketItem2","_current$amountInfo2","_current$openPriceInf4","_current$amountInfo3","priceLevel","expiration","tradeSide","tradeSize","tradeType","lotAmountQty","InfoElement","setRed","setRedPL","setRedPip","showMarginTooltip","valueClassName","useTranslation","tradingViewStore","infoElementUndock","infoElement","infoGroup","WtrPopup","content","popupText","trigger","red","green","infoElementValue","useShortTranslation","languageString","tt","options","HASH","charLength","random","genRandonNumber","HttpApi","LanguageDetector","initReactI18next","ChainedBackend","init","react","useSuspense","transKeepBasicHtmlNodesFor","backend","backends","LocalStorageBackend","HttpBackend","backendOptions","expirationTime","defaultVersion","loadPath","detection","lookupQuerystring","lookupLocalStorage","lookupCookie","caches","fallbackLng","interpolation","escapeValue","supportedLngs","getEnabledLangOptions","keySeparator","ns","TradersGymContext","TradersGymContextProvider","gymTradingAccount","lastHistoryTick","spreadPriceDif","simulation","simulationList","isOpenCreateSimulationModal","simulationsManager","searchInstrumentSelected","isOpenResetTradersGymModal","isPlaying","tradersGymContext","setTradersGymContext","convertHistoryTickToPriceQuote","historyTick","_tradersGymContext$sp","priceOffset","f","high","l","low","openTime","priceQuoteInThrottle","setGymProps","Provider","getLastPriceQuote","updateGymPriceQuote","setTimeout","quote","resetOrderStore","getPositions","_tradersGymContext$gy","_tradersGymContext$gy2","_tradersGymContext$gy3","_tradersGymContext$gy4","closed","closedPositions","SemanticUiPopup","Content","m_function","supplier","input","loadValue","IStatusConfigEnum","WatchlistMap","ObservableMap","m_instrumentComparator","entry","ObservableSet","instrumentComparator","InstrumentContextProvider","m_instruments","m_watchlists","m_groups","m_recentlyViewedInstruments","m_instrumentSearchInputFocusDelegate","config","m_watchlistComparator","val1","val2","watchlistComparator","trim","from","entries","ObservableQueue","watchlistExists","getInstrument","delete","addInstrumentToWatchlist","watchlistName","removeInstrumentFromWatchlist","focusInstrumentSearchInput","instrumentSearchInputFocusDelegate","fnc","groupingProperty","_instrument$groupingP","updateGroups","_instrument$groupingP2","instrumentContext","tierIcons","tier1","tier1Icon","tier2","tier2Icon","tier3","tier3Icon","pricePerMonth","currencyPairs","minPerOrder","monthlyAmount","maxPosition","maxOpenInstrumentPosition","reduce","accumulator","totalNumberOfTiers","HIGHEST_TIER_ID","TIERS_WITH_GYM_ACCESS","useSaveUserPreferences","useMutation","mutationKey","mutationFn","async","preferences","_preferences$user_pre","_preferences$user_pre2","liveCFDWatchlist","user_prefs","_type","_lastUsedWatchlist","convertUserPref","JSON","stringify","axios","url","method","headers","Authorization","SHA384","params","preference","btoa","encodeURIComponent","hasBrackets","LanguageCodes","languageOptions","shortText","ENGLISH","rfpLang","captchaLang","signalsLang","calendarLang","tradingView","CHINESE_SIMPLIFIED","CHINESE_TRADITIONAL","DEUTSCH","JAPANESE","VIETNAMESE","THAI","PORTUGUESE","ARABIC","ITALIAN","SPANISH","allowedLanguages","enabledLangOptions","languageOption","getInactivityLogoutOptions","getAccountIconOptions","image","avatar","src","rfpLangMap","acc","captchaLangMap","signalsLangMap","calendarLangMap","tradingViewLangMap","calcBuyDirection","previousQuote","prevBuyDirection","quoteStore","quotes","setQuote","_state$quotes$quote$c","_state$quotes$quote$c2","_state$quotes$quote$c3","_state$quotes$quote$c4","_state$quotes$quote$c5","prevSellDirection","sellDirection","buyDirection","maxVolatility","setMaxVolatility","StringUtils","String","compare","every","compValue","template","context","returnValue","isNullOrWhiteSpace","regex","RegExp","exec","lastIndex","search","isString","equalsIgnoreCase","isNullOrEmpty","evaluateTemplate","hidePopup","popup","document","getElementsByClassName","addCommas","isPipsChange","_current$toString$spl","_current$toString$spl2","closeAllTickets","dashboardContext","positionTableObj","Lots","Amount","onDate","change","grossPL","comment","dividend","pipsChange","orderTableObj","expiryOn","distanceToMarket","createdOn","closedTableObj","closeOn","closedTime","m_eventEmitter","m_debugHandler","m_config","m_connectionInfo","EventEmitter","debugHandler","on","listener","eventEmitter","once","off","removeAllListeners","emit","err","debug","useSaveWatchlistToPreferences","mutate","savePreferences","store","setStopLossPips","setTakeProfitPips","pipStore","forceCloseModal","modalBackdrop","modal","initialStatePositionsStore","panelSize","positionTab","gridHeight","positionPanelHeight","showPositionsBottomPanel","positionsStore","setPositionTab","tab","setWatchListPanelSize","setGridHeight","setShowPositionsBottomPanel","uniqueId","r","_store","k","getState","s","useSubscriptionInfo","usePromiseFactory","forceRerender","useObservable","getPropertyChangeStream","throttle","useMarketItemsMap","useMemo","createMarketItemCodeMap","useOrderTicketAccess","statusStore","gymContext","realTradingAccount","DETACHED_WINDOW_TRADE","DETACHED_WINDOW_CHARTS","DETACHED_WINDOW_POSITIONS","childWindowTypeMap","detachedChartsWindow","window","location","origin","detachedTradeWindow","detachedPositionsWindow","detachedWatchlistWindow","WindowContextProvider","_defaultWindowProps","_default","m_window","opener","parent","m_children","m_childWindows","childWindowSubscriptions","m_windowEventHandlers","ev","m_type","globalThis","parentName","hasOwnProperty","windowEventHandlers","eventName","handler","removeEventListener","addEventListener","childWindowType","TypeUtils","is","subject","href","callback","createAppStateManager","requestState","createEvent","initEvent","dispatchEvent","openChildWindow","windowProps","windowName","default","promise","reject","childWindow","windowFeatures","childContext","sender","isResolved","contexts","app","chart","ChartContextProvider","dashboard","marginRules","MarginRulesContextProvider","_WindowContextProvider","features","height","left","top","menubar","toolbar","resizable","useGetTranslatedWLName","isWindowStyles","styleClass","windowStyleClass","activeChart","layout","isEmpty","chartParams","periodicityChartId","getHistorySizeRecord","historySizeRecords","setHistorySizeRecord","historySize","addChartPanelTab","setSingleActiveChart","setActiveChart","resetActiveChart","setSymbol","indexOf","setLayout","_ChartContextProvider","evaluator","object","inherited","propertyNames","getOwnPropertyNames","getPrototypeOf","apply","useSubscriptionModal","setModalStateProps","setProps","modalState","setIsModalOpen","setModalReason","resetModalStateProps","futureMarginReqId","futureMarginValue","resetFutureMargin","getPositionSideValue","BUY","Sell","SELL","PSD_UNKNOWN","_MarginRulesContextProvider","Observable","ObservableFns","Subject","m_subject","newValue","oldValue","setter","propertyName","props","Proxy","target","receiver","_len2","_key2","bind","currentValue","m_valueComparator","comparator","additions","_len3","_key3","_len4","_key4","deletions","clear","changeStream","m_keyComparator","keyComparator","getRealKey","updates","realKey","_len5","_key5","m_maxLength","m_items","maxLength","dequeue","pop","enqueue","_len6","_key6","enqueuedItems","unshift","removedItems","_len7","_key7","WtrTooltip","wtrTooltip","storeResetFns","resetAllStores","resetFn","stateCreator","_create","setState","Tooltip","forwardRef","ref","BootstrapTooltip","convertChartTimeZone","NYT","GMT","Local","useFillContextsFromPreferences","dynamicWatchLists","useDynamicWatchLists","userPrefs","_preferences$platform","_preferences$platform2","_preferences$platform3","_preferences$platform5","_preferences$platform6","_preferences$platform7","_preferences$trading","_preferences$trading2","_preferences$trading3","_preferences$trading6","_preferences$trading7","_preferences$trading10","_preferences$trading11","_preferences$trading14","_preferences$trading15","_preferences$platform8","_preferences$platform9","_preferences$platform10","_preferences$platform11","platform","lastLoggedAct","demo","live","isLastLoggedAccountSpreadBetting","accountTypes","_preferences$platform4","isLastLoggedAccountJapanSpread","JapanSpread","theme","getCurrentTheme","matchMedia","matches","_preferences$trading$","_preferences$trading4","_preferences$trading5","_preferences$trading8","_preferences$trading9","_preferences$trading12","_preferences$trading13","_preferences$trading16","_preferences$trading17","_mode","_quantityType","_notificationSoundMuted","_notificationSoundVolume","_tradeFromChartEnabled","inactivity","cfdWatchlists","filteredByModeWatchlists","existingWatchlist","_grossProfit","_simulationId","_lastDataClosePrice","_lastDataCloseTime","deepCopy","_this$type","copyPos","simulationId","oT","cT","openAskPrice","openBidPrice","closeAskPrice","closeBidPrice","tpInPips","slInPips","dataObjectType","cancelRequestSent","dataItem","accountCurrency","lastDataCloseTime","lastDataClosePrice","updateActivePosition","updatePendingPosition","hasStopLoss","closeTime","setPositionInClosedState","hasTakeProfit","storePosition","shouldSetInOpenState","Limit","Stop","GymPositionUtils","validateMargin","removePositionStore","deleted","calcUsedMargin","_this$qCcy","effectivePrice","GymRefQuotesStore","sharedInstance","getPrice","FOREX","leverage","multiplayer","calcProfitOnClosedPositionWithAccountCurrency","calcInPips","digits","canceled","plPositionCurrency","buildKey","ignoreProps","positionId","positionData","parse","_position$type","removeItem","MoneyFormatter","money","Fragment","all","createMarketItemGroupMap","createMarketItemGroupTableData","changeMap","volatilityMap","tableItem","fullName","volatility","ccy","sell","buy","createMarketItemCodes","createMarketWatchItemCodes","Tier","createMarketItemTierMap","Tier1","Tier2","Tier3","createMarketItemsArrayFromCodes","codes","marketsItemMap","BASE_DOCUMENT_TITLE","instrumentGroupProps","Forex","forex","ForexSB","Indices","indices","IndicesSB","Stocks","stocks","Energy","energy","EnergySB","Commodities","commodities","Crypto","crypto","Metals","metals","MetalsSB","Shares","CFD","efts","ETFs","SUPPORTED_RESOLUTIONS","CloseButton","tooltipID","isItClosed","buttonPositioning","OverlayTrigger","placement","delay","hide","overlay","rectangle","Loading","loader","whiteLoader","loaderSVG","alt","InstrumentIcon","isJapanSubscriptionAccount","iconSrc","setIconSrc","isRendered","setIsRendered","group","category","displayName","iconModule","defaultIcon","loadIcon","GroupBadge","groupName","GymTradingManager","restorePosition","positionManager","GymHistoryManager","requestRefQuotes","modifyPosition","partialClosePosition","deletePosition","AccountTradingType","m_singletonPromises","m_thottledPromises","executor","Promise","singleton","timeout","finally","interval","round","clearInterval","_PromiseFactory","AddToWatchlist","maxReached","selectedTradingAccountWatchlist","allWatchlists","saveWatchlistToPreferences","then","exists","existsInWatchlistIcon","handleRemoveFromWatchlist","updatePreferenceObject","addToWatchlistIcon","handleAddToWatchlist","WatchlistsList","getTranslatedWLName","selectedWatchlist","titleContainer","titleWatchlist","watchlistContainer","watchlistData","maxInstruments","isInstrumentExistInWatchlist","maxItemContainer","itemContainer","watchlistItem","cursor","maxErrorMessage","DailyPercent","_dailyPercent","dailyValue","dailyPercent","previousClosePrice","dailyPercentage","positive","negative","InstrumentHeader","memo","_instrumentGroupProps","_low$toString","_high$toString","showButtons","resizeHeader","headerActions","undock","showBidAskSpread","bidAskSpreadData","onCloseButtonCLick","redirectFromDashboard","rfpGatewayContext","openWatchlist","setOpenWatchlist","setCreate","listName","setListName","setDisabled","setCurrentPriceQuote","subIdRef","setHigh","setLow","nameError","setNameError","maxWatchlistsError","setMaxWatchlistsError","activeTradingAccount","usePreferredFeedId","isTradersGymActive","traderGymPriceQuote","closedTicket","send","existsInWatchlist","useCallback","DisplayIcon","instrumentExists","handleOpenWatchlistMenu","_e","preferenceToUpdate","isMaxedOut","handleAddNewWatchlist","newWatchlistEntry","unsubscribePriceQuote","subscribePriceQuote","tooltip","watchlistsNames","inWatchlist","thisArray","join","dangerouslySetInnerHTML","__html","resizedWrapper","wrapper","Undock","undocked","headerContainer","infoIcon","handleOpenInfoClick","iconContainer","instrumentStats","shortInstrumentName","TradingSessionTooltip","instrumentFullName","iconGroup","onClose","popupContainer","watchlistsListContainer","CreateWatchlistButton","handleCreateWatchlist","closeTicket","iconDetached","iconAtached","Dock","createContainer","createHeader","inputContainer","inputTitle","errorInput","onChange","messageRow","errorMessage","inputCount","buttonContainer","handleCancelWatchlist","verifyWatchlistName","BidAskSpread","isBidAskDisabled","highLowBox","textTitleLow","lowValue","textTitleHigh","highValue","buttons","showPriceStats","spreadPosition","resizeButton","showInstrumentName","showButtonText","onChartClick","log","buttonsClass","bidAskSpreadButtons","prevProps","nextProps","DraggableTableHeader","_asc$desc","header","table","attributes","isDragging","listeners","transform","useSortable","column","opacity","CSS","Translate","transition","whiteSpace","getSize","zIndex","colSpan","tableHeader","isPlaceholder","align_left","getToggleSortingHandler","flexRender","columnDef","getContext","onDoubleClick","resetSize","onMouseDown","getResizeHandler","onTouchStart","resizer","columnResizeDirection","ltr","rtl","getIsResizing","isResizing","thElem","columnSizingHandler","columnSizing","getBoundingClientRect","setColumnSizing","prevSizes","headerWrapper","userSelect","asc","desc","getIsSorted","dragColumnButton","DragAlongCell","cell","handleSelectedInstrument","setNodeRef","overflow","textOverflow","lineHeight","tableData","td","ACCOUNT_MARKET_TYPES_NOT_ALLOWED","MarginRequirementsContext","MarginRequirementsContextProvider","marginRulesContext","MarginRulesContext","setSelectedTradingAccount","doesRulesApply","setDoesRulesApply","marginRequirementsToApply","setMarginRequirementsToApply","detailedInfo","selectedMarketItem","selectedAccountDetailedInformation","matchingRule","rule","requirementsToApply","payload","UniqueId","selectedAccountNumber","setPreferredFeedId","preferredFeed","TYPE_TO_CLASS_SUFFIX_MAP","success","danger","fatal","ToastNotificationContent","body","toastTitle","messageContainer","addToastNotification","duration","notificationId","Store","addNotification","insert","container","animationIn","animationOut","dismiss","showIcon","removeNotification","removeToastNotification","toastNotificationId","LowOrHighType","LowOrHigh","marketItemCode","Low","SellOrBuyType","SellOrBuyButton","tooltipTimestamp","tooltipTitle","timeUpdate","typeButton","testButton","typeValue","WtrDropdown","SemanticUiDropdown","useLogout","chartContext","ChartContext","windowContext","WindowContext","saveUserPreference","history","useHistory","logOut","closeChildWindows","promises","disconnect","allSettled","credentials","clearCredentials","sessionStorage","useSwitchMode","mode","reload","useSwitchToDemo","switchMode","click","useSwitchToLive","FormattedNumberInput","isAllowed","allowNegative","NumericFormat","thousandSeparator","decimalSeparator","decimalScale","floatValue","onValueChange","LotsAwareInput","formattedValue","setFormattedValue","prevValue","setPrevValue","prevQuantityType","setQuantityType","_state$current$amount","formatValue","lotValue","amountValue","NumberInput","lotAware","incrementor","amountErrorClass","allowNegativeValues","handleIsAllowed","Infinity","findNextValue","isIncrement","quantityValues","_quantityValues$find","_quantityValues$slice","reverse","hasError","stopPropagation","decrementQuantity","incrementQuantity","useGridHeight","rowVirtualizer","windowHeaderHeight","documentHeight","documentElement","clientHeight","isSafari","test","navigator","userAgent","getTotalSize","SettingTrigger","handleShowColumnChooser","marginLeft","useTimeSessions","getNextOpenTradingSessions","tradingSessions","nextDay","j","ts","getOpenTime","intervalToDuration","formatted","formatDuration","days","timeFromNow","fromNow","findLastTradingSession","nextTradingSession","getClosesTime","isWorkingTime","getNextOpenDate","nextOpenTradingSessions","orgTime","currentTime","CalcSwapValue","record","row","original","isGroupRow","errorCreateWatchlist","createWatchList","plusIcon","createFooter","errorFooter","bottomFooterTitle","createErrorMessage","_account$tradingInstr","instrumentDetails","minAmount","generatePositionId","positionType","storeInstrumentsOCTValue","obj","getSavedInstrumentsOCTValue","RFP_TIMING_INTERVAL","ChartUtils","priceType","chartId","arr","subscriptionId","ctx","textHight","textAlign","globalAlpha","fillStyle","xL","yL","fitTextOnCanvas","textBaseline","fillText","text1","text2","y","fontsize","fontface","font","measureText","selectors","minFontSizeRange","_minFontSizeRange$max","_minFontSizeRange$min","maxFontSize","minFontSize","outputDiv","querySelector","clientWidth","textWidth","scrollWidth","textHeight","scrollHeight","getComputedStyle","getPropertyValue","didIncrementFont","ceil","_chartPeriods","timeScale","rfpTimeInterval","getRFPTimingInterval","getSecondsFromTimeInterval","chartPeriods","chartPeriod","historicalOnly","createChartTicks","ONE_MONTH","setUTCMinutes","getUTCMinutes","setUTCDate","getUTCDate","periodicity","ONE_MIN","TWO_MIN","THREE_MIN","FIVE_MIN","TEN_MIN","FIFTEEN_MIN","THIRTY_MIN","SIXTY_MIN","TWO_HOURS","THREE_HOURS","FOUR_HOURS","EIGHT_HOURS","ONE_DAY","ONE_WEEK","extractValues","period","timeUnit","minHistoryTicks","getSelectionLabel","getChartLabel","historyTicks","DT","Open","High","Close","volume","chartTicks","dateString","getUTCFullYear","getUTCMonth","padStart","tick","chartTick","keyShowPositions","keyShowOrders","TTSubscriptionManager","priceFeed","getHistoryRequestId","timescale","watchPriceQuote","subscribeForPriceQuotes","unwatchPriceQuote","createPriceFeed","updatePositionSubscriptions","_TTSubscriptionManager","getStoredSizes","storedString","WtrResizable","panelName","enableResizing","setSidePanelWidth","setNewsPanelHeight","isInitialMount","getWtrResizableConfig","minWidth","maxWidth","enable","right","bottom","topRight","bottomRight","bottomLeft","topLeft","handleClasses","positionsGrid","minHeight","maxHeight","tradeTicket","marketsGroups","marketsNews","simulationsList","simulationsGrid","signalsList","signalsOverview","keyToFetch","panelKey","enabledDirections","x","getEnabledResizeDirection","defaultSize","setPanelSize","_getStoredSizes","newSize","newWidth","_rest$defaultSize","newHeight","_rest$defaultSize2","storeDimensions","newObject","newStoredString","ReResizable","onResizeStop","handleResizeStop","_direction","d","prevSize","getSavedPreferencesForUser","fillUserPrefLocally","localUserPref","parsedUserPref","meta","app_version","lastModified","getMilliseconds","_gmtOffset","os","version","cfd","templates","studyTemplates","drawingTemplates","settingsTemplate","loadUserPrefLocally","WtrModal","wtrModal","SemanticUiModal","Description","Actions","refQuotes","addTicks","buildRefQuoteKey","dataItems","searchDataItem","mid","midVal","SettingGrid","_appContext$isChildWi","setShowSettingsModal","columns","getAllLeafColumns","settingsRef","useClickOutside","changeCaption","caption","translations","lots","onToggleChange","columnVisibility","getToggleVisibilityHandler","tableSettingsPopup","tableSettingsPopupPositionChild","tableSettingsPopupPosition","tableSettingsTitle","tableSettingOptionsContainer","isDisabledJapan","isDisabled","checkboxContainer","htmlFor","checkbox","checked","getIsVisible","optionText","disabledCheckbox","checkmark","RenderClearFilters","columnFilters","setColumnFilters","periodDropdownRef","InstrumentContext","orderTicketAccess","iconValue","setIconValue","emptyFilteredStateMessage","emptyStateMessage","handleStartTrading","openPeriodDropdown","periodDropDownComponent","dataset","hasOpenedDropDown","emptyGridContainer","emptyIcon","emptyStateMessageLink","getTimeFrameTranslation","startTrading_Inactive","startTrading_Active","useMoneyFormatter","LimitProfitLossButton","_record$position3","_record$position4","gridType","isEmptyTrailingLoss","_record$position5","_record$position6","_record$position7","_record$decPrec","plusContainer","plusButton","_record$position","_record$position2","tradingPositionState","Order","Position","Normal","positions","openTicket","plusTheme","profitValues","CloseIcon","_info$row","gym","iconStyle","marginRight","triggerContainer","showClose","allPositions","AccountStatusCTA","isFullHeight","fullHeight","CredentialsManager","Buffer","decodeData","_credentials","creds","password","createdAt","prepareAndEncodeData","getCredentials","setCredentials","isSpreadBettingAcc","comingFromPreferences","dynamicWatchlists","currentDynamicWatchlists","codes_csv","watchListName","_appContext$userPrefe","_appContext$userPrefe2","_appContext$userPrefe3","_dashboardContext$wat","minutesFromCurrentTime","workingTime","workingTimeText","nextOpenDateText","nextClosesDateText","nextDateText","ttSessionInfoContainer","ttSessionMarketStatusInfo","gray","sessionIcon","childWindows","sortSearchResults","searchString","instrumentA","instrumentB","instrumentScore","exchangeTicker","substring","codeA","codeB","localeCompare","DetachIcon","windowType","detachWatchlistHandler","APPROVED","LEVEL1_APPROVED","FUNDED_TRADER","innerHeight","innerWidth","hasThinkTraderLiveAccount","hasApprovedLiveAccount","isApproved","printAccountName","isLiveAccount","isJapanSpreadAccount","defaultName","useSubscriptionConstraints","getConstraints","useHandleSubscriptionConstraints","handleSubscriptionsConstraints","constraint","OrderedSet","equalsFn","addAll","found","hasAll","remove","foundIdx","removeAll","toArray","GymHistoryDataStore","request","addDataItems","endTime","delegates","subDataId","subSizeId","subscribeFor","historyTicksReceived","historySizeReceived","addDelegate","delegate","removeDelegate","sendHistoryRequest","historyRequest","historySubscription","Snapshot","requestHistoryData","dataStore","getHistoryRequest","_this$data$get","startsWith","kTPRefQuotes","historyDataRejected","historyTickItems","refQuotesUpdated","historyDataUpdated","pairs","makeRefQuoteRequest","startTime","tradeTime","GymHistoryRequest","destructor","unsubscribeFor","uniqueRecord","recordsArray","newsKeywords","LCO","NGAS","WTC","WTI","AUS200","ES","SPX500","US30","YM","NAS100","NQ","ESTX50","FD","GER30","UK100","FRA40","US2000","ZAR40","JPN225","HK50","CHINA50","XAUUSD","XAGUSD","XPTUSD","BTCUSD","ETHUSD","getKeywords","_newsKeywords$code","_newsKeywords$code$sl","_newsKeywords$code$sl2","CurrentPrice","prevState","setPrevState","_record$subRows","subRows","colorValue","alignRight","greenCurrent","redCurrent","CalcGrossPl","totalPl","gridRecord","_gridRecord$position","_gridRecord$position2","grossPLValue","getToggleExpandedHandler","CalcNetPl","netPLValue","CalcPLPips","profitLossPipsValue","CalcComment","_record$comment","EditIcon","openRemoveModal","setOpenRemoveModal","GymRemoveModal","Popup","PopupContainer","instrumentDetail","openPositionInformation","openOrderDetails","iconWrapper","openMarketInformation","_tradersGymContext$si","_tradersGymContext$si2","currentSimulationId","getSimulationWithId","openModifyTicket","pinned","editTheme","NewsPopup","setOpen","article","setArticle","news","Modal","centered","onHide","handleClose","modalContainer","heading","headline","textContainer","bodyText","WtrSlider","wtrSlider","Slider","useRefreshJWTToken","tokenPair","refreshToken","useErrorBoundary","_error$response","storageEventCallback","getOptions","rehydrate","storeInstrumentsPipsValue","getSavedInstrumentsPipsValue","windows","isInViewport","useIsInViewport","handleChartClick","isSelected","isInstrument","isGrid","selectStyle","nonHighlightSelected","highlightSelected","rightHandContainer","windowContainer","showActions","data-testid","TickerInfo","windowTickerInfo","badge","tickerContainer","instrumentInfo","instrumentCodeAndSessionIconContainer","Symbol","symbolDescription","data-tip","data-for","tradeMeasure","profitTradeMeasure","dispatcher","headerSpreadPosition","tradingPositionSide","storeMarketItem","handleOrderConstraint","useHandleOrderConstraint","prevBid","setPrevBid","previousBid","setPreviousBid","prevAsk","setPrevAsk","previousAsk","setPreviousAsk","selectedQuantity","displayPriceA","displayPriceB","instrumentZero","getPathname","pathname","bidNumber","askNumber","toDate","instrumentColor","instrumentGrey","instrumentRedHighlighted","instrumentRed","instrumentGreenHighlighted","instrumentGreen","buttonStyles","resizedButton","orderButton","windowInstrumentButton","gridChartInstrumentButton","instrumentButton","orderButtonStyles","orderButtonModal","borderButton","orderGrey","orderRed","orderGreen","handleButtonClick","handleTradeSideClick","_selectedInstrument$d","spreadButton","checkboxPrice","checkboxPriceBuy","checkboxPriceSell","sellContainer","sellLabel","sellNumber","showPrice","buttonToolTip","isOpenMarket","notOrder","tickerActionsModify","tickerActions","spread","orderPosition","orderPositionModal","windowSpread","highlightSpread","rightHandSpread","headerTickerButtons","windowInstrumentPosition","instrumentPosition","isIntersecting","setIsIntersecting","observer","IntersectionObserver","observe","hideIconForNonJapan","groupIcon","NewsArticle","customWidth","articleContainer","handleClickedArticle","articleText","getFormattedNewsArticleTime","JapanNewsDisclaimer","openDisclaimerMessage","setOpenDisclaimerMessage","disclaimerMessage","useUpdateSBWatchlistInstruments","shouldUpdate","wlInstruments","SearchResult","onUpdateWatchlist","searchTerm","resultContainer","leftContainer","textGroup","renderMatchingCode","unhighlighted","highlighted","matchText","renderMatchingName","upperName","resultName","startIndex","endIndex","matchName","resultItem","resultItemContainer","existsIcon","EmptySearch","invalidSearchTerm","emptyStateContainer","noMatch","tickerMessage","getSearchResults","isTicker","isCode","isName","WatchlistsDropDown","typedValue","changeValue","setIsOpen","handleModify","verifyWatchlist","setCurrentItemWatchList","handleCreateWatchListClose","classList","createWLContainer","createWatchlistItems","createWatchlistTitle","inputBox","costInput","costInputModal","lightErrorInput","autoFocus","inputContainerText","popupFooter","tierName","listContainer","listContainerActive","active","iconPen","images","etf","CORN","SOYBEAN","WHEAT","ADAUSD","ALGOUSD","ATOMUSD","AVAXUSD","BATUSD","BCHUSD","BNBUSD","DASHUSD","DOGEUSD","DOTUSD","EOSUSD","LINKUSD","LTCUSD","MANAUSD","MATICUSD","OMGUSD","SANDUSD","SHIBUSD","SOLUSD","UNIUSD","USDC","USDT","XLMUSD","XMRUSD","XRPUSD","XTZUSD","ZECUSD","BRENT","equities","AAPL","ABNB","AMZN","BABA","GOOG","GS","META","MSFT","TSLA","UBER","V","AUDCAD","AUDCHF","AUDJPY","AUDNZD","AUDUSD","CADCHF","CADJPY","CHFJPY","EURAUD","EURCAD","EURCHF","EURCZK","EURGBP","EURHUF","EURJPY","EURNOK","EURNZD","EURPLN","EURSEK","EURSGD","EURTRY","EURUSD","EURZAR","GBPAUD","GBPCAD","GBPCHF","GBPHUF","GBPJPY","GBPNZD","GBPUSD","GBPZAR","NZDCAD","NZDCHF","NZDJPY","NZDUSD","USDBRL","USDCAD","USDCHF","USDCNH","USDHKD","USDHUF","USDJPY","USDMXN","USDNOK","USDSEK","USDSGD","USDTRY","USDZAR","ESH24","FDXH4","FFIH4","GER40","NQH24","SPAIN35","TAIEX","USDINDEX","VIX","YMH24","COOPER","XAUEUR","MarketInstrumentIcon","groupLowerCased","DetachedModal","successTitle","successAction","hideAction","dockAction","withPadding","buttonDisabledClass","isError","noBody","scrollable","modalHeader","noPadding","modalTitle","dockIconContainer","hideClosePosition","modalBody","modalFooter","useUpdateUserPrefPips","saveUserPreferences","checkForSVG","handleClickOutside","contains","tagName","handleKeyPress","notificationSound","Audio","sound","usePlayNotificationSound","isMuted","soundVolume","muted","play","useSignalsAccessRestriction","queryClient","useQueryClient","useQuery","_response$data","allowed","initialData","getQueryData","submitDynamicForm","acceptCharset","form","appendChild","submit","removeChild","useWindowSize","windowSize","setWindowSize","handleResize","RequirementLine","rangeMin","rangeMax","isLastRange","line","MarginRequirements","_marginRequirementsCo","_marginRequirementsCo2","_marginRequirementsCo3","_marginRequirementsCo4","_marginRequirementsCo5","marginRequirementsContext","tierValues","instrumentRndLotValue","lastLotsIndex","margins","tierRequirements","infoTooltip","marginValue","WeekInformation","dayAndTimeWrapper","valuesWrapper","_marketItem$tradingSe","getTradingSessionInfo","ModalOrderInformation","_appContext$subscript","setMax","setMin","swapL","setSwapL","swapS","setSwapS","setRndLot","setSpread","symbolDigits","setSymbolDigits","setTickSize","setTickValue","setCurrency","threeDaySwap","setThreeDaySwap","setMarginReq","fetchInfoParams","spreadVal","calculateSpread","_info$swpL$toString$s","_info$swpL$toString$s2","_info$swpS$toString$s","_info$swpS$toString$s2","_info$sDig","_info$tickSize","_info$tickValue","_info$ccy","_info$marginReq","rnd","maxAmount","plDecPrec","swpL","psDecPrec","swpS","sDig","undockedContainer","formattedSwapInfo","translateThreeDaysSwapValue","sector","translateSector","exchangeCountryCode","translateCountryCode","ConditionalWrapper","condition","DraggableModalDialog","nodeRef","Draggable","ModalDialog","CancelOrderTicket","cancelExpiry","setCancelExpiry","resizeText","setResizeText","isSummaryPosition","isIndividualPosition","allOrdersLength","isAllOrders","setQuantity","_change","positionsDelegate","positionOpened","_sender","_position","hideComponent","positionDeleted","_selectedTradingAccou","firstPosition","selectedInstrumentDetails","instrumentRndLot","_selectedInstrumentDe","amtDPrec","_selectedInstrumentDe2","lotDPrec","closePositions","closeGymPosition","selectedAccount","summaryParams","trAccountId","typeOfPosition","_selectedPosition$","_selectedPosition$2","_selectedPosition$3","_selectedPosition$4","resizeHeaderText","ticketInfo","closeContainer","closeContainerModal","closeFields","amountInput","footer","orderModalFooter","modalPartialButtons","disableButton","closeButtonLocation","dockClosePosition","ConfirmOrderModal","_tradeRequest$priceLe","_selectedMarketItem$d","_selectedMarketItem$d2","tradeRequest","updateUserPrefPips","orderSide","convertDate","setConvertDate","setMarginImpact","_tradeRequest$expirat","confirm","newConvertDate","currentDatetime","expWeekDatetime","expMonthDatetime","baseDatetime","subCodes","addAdditionalSubPairsCodes","subId","showInvalidNotification","currentOrderType","formatText","calcMarketOrderVal","orderVal","calcNonMarketOrderVal","calculateOrderValue","impact","hedgedTradeQuantity","convertedToBaseCurrencyImpact","orderPrice","animation","modalDialog","dialogAs","fieldContainer","confirmField","getAccountType","providerAccountId","calculateQuantity","_size","ticketButton","editOrderTicket","ticketButtonClose","tradeRequestObject","checkAlpha","buildPendingPosition","updatePositions","buildPosition","_tradeRequest$limitLe","_tradeRequest$stopLev","instrumentTrade","lastTrade","ClosePositionTicketHeader","titleWrapper","ClosePositionTicket","_allTradingPositions$","qtyMin","setQtyMin","qtyMax","setQtyMax","qtyStep","setQtyStep","qtyRndLot","setQtyRndLot","qtyError","setQtyError","allTradingPositions","setPrice","setQuantityValues","pL","setPL","avgPrice","setAvgPrice","posSide","setPosSide","summaryPrice","setSummaryPrice","summaryPL","setSummaryPL","summaryAmount","setSummaryAmount","preFormattedPL","setPreFormattedPL","isDisableButton","setIsDisableButton","formatNumber","clickedInstrument","hasAmountError","allPositionsLength","isAllPositions","mi","undockTicketLayout","dockTicketLayout","accountBaseCurrency","calcPotentialProfitLoss","priceValue","clickedInst","_selectedTradingAccou2","stpL","sellAmount","buyAmount","decimalPec","calAmount","calculateSide","_selectedTradingAccou3","summaryAmountLot","_pos$grossProfit","pLValue","sellPL","buyPL","summaryPriceValue","_pos$grossProfit2","_pos$grossProfit3","handleClosePosition","positionAmount","partialParams","closeTicketButton","ticketInfoModal","orderQuantityLabels","modalOrderQuantityLabels","isAmountValidByStep","validateQuantity","errorValidation","undockedPartialButtons","summaryTicket","modalContainerSummary","closeContainerSummary","Trans","i18nKey","numPositions","modalInfoPosition","SignalsEmptyState","clearFilters","handleClearFilters","showButton","LangSelect","defaultLang","selection","customIcon","itemWrapper","itemWrapper_active","dropdownItem","inline","defaultValue","handleChange","changeLanguage","dropdownIcon","DataItemPlayerStatus","PlayerDataItem","TP_PLAYER_EMPTY_INDEX","TP_PLAYER_MAX_SPEED","onTick","playerCurrentIndex","waitingData","playerRequest","didCalledInitialRequest","_playerDataItems","waitingState","Unknown","hasDataItems","playerItemsCount","_this$playerDataItems","_this$playerDataItems2","playerDataItems","GymDataItemPlayer","_this","playerDataItemsMap","_autoPlayingSpeed","_playerStatus","_simulation","timer","canPlayPrevious","playerItem","getPlayerSelectedSymbol","buildGymSymbol","playerStatus","Playing","playPrevious","Pause","notifyCurrentIndexChanged","playNext","pause","setInWaitingState","playerWaitingStateChanged","recoverFromWaitingState","getCurrentHistoryTick","getTimerTimeInterval","autoPlayingSpeed","invalidateTimer","startTimer","changeTimeScale","playerTimeScaleChanged","_playerItem$playerDat","_playerItem$playerDat2","resetPlayerDataItems","removeAllItems","resetPlayerDataItem","resetPlayerDataItemWithGuid","guid","setNewPlayerDataItem","playerDataItem","setCurrentItemIndex","forceNotifyCurrentIndexChanged","playerCurrentIndexChanged","playerCurrentIndexChangedForControls","Buffering","playerStatusChanged","playerReadyToPlay","setInterval","destroy","playerDidReachEnd","telegram","twitter","seaConfig","channels","CONFIG","ja","Horizontal","onZDClick","onToggle","isHover","setIsHover","horizontal","rel","zendesk","iconLight","onMouseOver","triggerIcon","Vertical","liveChatRef","mouseDown","tooltipTranslations","vertical","expandCollapse","LiveChat","menuStyle","zdOpen","languageToUse","zE","oldScript","getElementById","zEACLoaded","zEWebpackACJsonp","zEmbed","script","onload","toggleState","handleZDClick","liveChat","InputError","useResizableContainersWidth","hasModal","windowWidth","setWindowWidth","handleWindowResize","resizableContainersWidthRestriction","OrderInformation","activeState","additionalSubscriptionPairValue","setAdditionalSubscriptionPairValue","pipPL","setPipPL","percentageChange","setPercentageChange","redPip","pendingAmountLot","setPendingAmountLot","matchedAmountLot","setMatchedAmountLot","matchedPendingOrder","setMatchedPendingOrder","matchedOpenPosition","setMatchedOpenPosition","setActive","setUsedMargin","setComment","orderMenuState","positionMenuState","calculateUsedMargin","marginIdentifier","convertedToBase","hedged","updateCommentValue","matchedPosition","percentChange","_position$pips","pipPlVal","amountLot","_selectedMarketItem$c","_openedInstrument","_pendingInstrument","pendingOrders","openedInstrument","pendingInstrument","formatValueAsMoney","commission","_matchedOpenPosition$","_matchedOpenPosition$2","_matchedOpenPosition$3","_matchedOpenPosition$4","_matchedOpenPosition$5","_matchedOpenPosition$6","_matchedOpenPosition$7","commandValue","positionMsg","marginUsedMsg","_pos$marketItem$decPr","_pos$marketItem","_pos$prc","_pos$prc2","_pos$openBidPrice","_pos$openAskPrice","toLocaleUpperCase","elementContainer","emptyContainer","chartMessage","emptyButtonContainer","_pos$marketItem$decPr2","_pos$marketItem2","createdOnDate","dockedContainer","accordion","openMarketInfo","openPositionInfo","openOrderInfo","useSignals","queryKey","closestExpiry","signal","expiry","Report","isBefore","getNextExpiry","staleTime","diff","filteredProductMap","productMap","product","sbSymbol","assetId","StartDate","subtract","EndDate","LanguageCode","AssetIds","IncludeExpired","Period","Count","mapped","Product","description","slug","Group","Category","status_text","confidence","cacheTime","useSubmitFeedback","parameters","FeedbackModal","showFeedbackModal","feedbackInput","setFeedbackInput","ratingStars","setRatingStars","fill","emptyStar","showFeedbackSubmitScreen","setShowFeedbackSubmitScreen","starsImage","setStarsImage","submitFeedback","handleCancelFeedback","backdrop","feedbackHeader","feedbackModalTitle","closeIcon","submittedContainer","thankYouMessage","commentIcon","appreciateMessage","ratingContainer","questionText","starContainer","star","idx","oneStar","twoStars","threeStars","fourStars","fiveStars","fullStar","handleRatingClick","visibility","feedbackContainer","textArea","footerContainer","prefix","handleFeedbackSubmit","score","mapFeedbackScore","comments","onSuccess","SearchableListInput","searchInputElementRef","inputHasValue","setInputHasValue","inputElementAttributes","inputAttributes","searchInput","onInputChange","evnt","onInputElementChange","inputThrottling","onBlur","inputContainerElementAttributes","inputContainerAttributes","searchInputContainer","focus","onOpen","searchIconAttributes","classNames","searchIcon","faSearch","clearIconAttributes","_attributes","faTimes","autoComplete","spellCheck","SearchableListResult","renderedResults","setRenderedResults","SearchableList","renderedResultsSubjectRef","formElementRef","filterData","clickHandler","searchableInputAttributes","onInputFocus","onFocus","_event$target","filteredData","render","_event$target2","onSubmit","preventDefault","simulateMouseEvent","coordX","coordY","MouseEvent","view","bubbles","cancelable","clientX","clientY","MegaMenu","ReactMegaMenu","m_activeRowKey","mouseLeave","activate","section","controllerRef","getSections","setActiveSection","activateItemByKey","activeRow","InstrumentSearch","selectedTradingAccountWatchlists","instrumentGroups","groups","maxWatchlistLimit","displayStateRef","isSearchbarOpen","isGymActive","focusSearch","groupTranslations","CryptoSB","controller","for","selectedGroup","selectedWatchlistManagementInstrument","maxWatchlistNameLength","searchListFilter","_instrument$code","_instrument$fullName","_instrument$grp","_instrument$exchangeT","viewInstrument","placeholder","searchContainer","searchMatches","megaMenuControllerRef","instrumentSearchController","tableContainerRef","instrumentsByGroup","searchMatch","instrumentsPanel","lastClickedCell","setLastClickedCell","newInstruments","recentlyViewedInstruments","isShowRecentlyViewed","valueComparator","ArrayStore","showEmptyState","renderSymbolColumn","upperSearch","notHighlighted","instrumentContainer","instrumentText","instrumentSymbol","instrumentFullNameTrim","renderNameColumn","renderWatchlistColumn","watchlistNames","handleCellClick","rowId","columnId","watchlistAddRemoveIcon","data-rowid","data-colid","triggerLastClickedCell","cellSelector","onCellClick","maxInstrumentsPerWatchlist","columnHelper","createColumnHelper","accessor","instrumentCell","enableHiding","minSize","watchlistCell","useReactTable","getCoreRowModel","rows","getRowModel","useVirtualizer","estimateSize","getScrollElement","overscan","virtualRows","getVirtualItems","emptyState","emptyStateText","emptyStateSearchString","overflowY","virtualRow","data-index","measureElement","tableRow","getVisibleCells","newWatchlistNameRef","watchlistNameElementRef","duplicateWatchlistNameRef","allWatchlistsLocal","watchlistPanel","addToWatchlistPanel","hidden","itemContent","textCenter","textBold","isWatchlistMaxed","disableIcon","disabledIcon","maxedContainer","rerender","updateWatchlist","maxedItemContent","addToWatchlistContainer","selectWatchlistName","limitMessage","createWatchlist","onNewWatchlistNameChange","inputExlpanation","maxWatchlistError","borderTop","actionButtonContainer","onCreateWatchlistSaveClick","megaMenuItems","selectedStyling","selectedTier","isTier","allLabel","megaMenuProps","styleConfig","containerProps","menuPanel","menuProps","groupPanel","menuItemProps","menuItemSelectedProps","contentProps","instrumentPanel","NotificationType","defaultContext","notifications","addNotifications","resetNotifications","NotificationsContext","NotificationsContextProvider","setNotifications","newValues","prevValues","NotificationsIcon","messageCount","iconContainerClicked","notificationIcon","newMessageBadge","NotificationsItem","IconMap","alert","NotificationsList","hasNotifications","notificationRef","emptyList","emptyListIcon","emptyText","emptySubText","Notifications","openNotifications","setOpenNotifications","shouldDisplayNotifications","PENDING_REVIEW","handleRedirect","OpenAccount","timestamp","containter","completeAppBtn","marginRightSafari","basic","UserNotificationsIcon","UserNotificationsList","CommunityList","handleToggleOpen","upvoty","communityRef","upvotyLink","setUpvotyLink","privacyPolicyLink","useCountryPrivacyPolicy","_result$account$organ","_result$account","_result$account$organ2","organization","privateKey","token","jwt","sign","redirectUri","popupIsArabic","wrapperItems","handleAcademyClick","Tutorials","itemNoBorder","CommunityIcon","Community","PlatformSettings","setOpenSettings","handleCloseModal","setTheme","fillContextsFromPreferences","handleThemeSwitch","invertedSetting","platformTab","profileSetingsHeader","platformTabName","profileSetingsContent","settingsPairs","settingsPairsName","settingsPairsImgDropdown","dropdownMenuLangWrapper","_event","initialSettingLanguage","dropdownMenu","dropdownMenuLang","settingsPairsTheme","borderBottom","additionalPadding","settingsThemeWrapper","singlethemeWrapper","inactive","themeImage","themeImageLight","themeRadioWrapper","themeRadioName","themeImageDark","themeImageSystem","settingsPairsPhone","isPasswordSingleDigit","isPasswordValidLength","isPasswordSingleUpperLetter","isPasswordSpecialCharacters","isPasswordLowercaseLetter","useGetMFAEnabled","queryFn","MFAManagement","Radio","toggle","toggleMFA","SecuritySettings","handleUpdatePasswordSettings","invalid","setInvalid","dontMatch","setDontMatch","setErrorMessage","inactivityLogout","setInactivityLogout","showPasswordPopup","setShowPasswordPopup","currentPassword","setCurrentPassword","newPassword","setNewPassword","confirmPassword","setConfirmPassword","passwordValidations","setPasswordValidations","validSatisfied","lowercaseSatisfied","uppercaseSatisfied","digitSatisfied","specialSatisfied","checkContainer","toggleButtonChecked","toggleButton","findDefaultInactivity","intactivityValue","dropdownMenuSecurity","TradingSettings","setSettings","setShowInfoModalBackground","showInfoModalBackground","playSound","volumeScale","setVolumeScale","soundMuted","setSoundMuted","divRefArrow","qunatityTypeButton","handleQuantityTypeChange","RFPConnection","updatedQuantityType","handleOneClickTradingChange","updatedSettings","infoModalWrapper","buttonsContainer","infoModalWrapperBackground","settingsQuantityButtons","quantityButton","quantityButtonSelected","outerCircle","innerCircle","showConfirmModal","handleTradeFromChart","newStateTradeFromChart","rangeContainer","handleChangeMute","newMuted","slider","onAfterChange","AvatarIcons","avatarPath","findImage","currentImage","useGetPhoneCodesAndFlags","showUnused","HandleChangeTypes","ProfileSettings","dropdownOptionsRef","openImgModal","setOpenImgModal","imgModal","setImgModal","changeInPhone","setChangeInPhone","changeInPhoneSecond","setChangeInPhoneSecond","isLoadingSaveData","setIsLoadingSaveData","avatarFromPrefs","isLoadingFlagsAndCodes","fetchPhoneCodesAndFlags","justifyContentFlexEnd","onClickOpenImgModal","dropdownIconWrapper","defaultImage","dropdownDefaultImage","imgContainer","PhoneNumber","number","handleUpdateSettings","AccountAvatar","settingsPairsMeta","useChangePassword","new_password","PasswordSettings","changePassword","inputTypeCurrentPassword","setInputTypeCurrentPassword","inputTypeNewPassword","setInputTypeNewPassword","uppercaseCheck","setUppercaseCheck","lowercaseCheck","setLowercaseCheck","numberCheck","setNumberCheck","specialCheck","setSpecialCheck","passwordLenghtCheck","setPasswordLenghtCheck","setIsDisabled","handleChangeInput","isLengthValid","isLowercaseValid","isUppercaseValid","isDigitValid","isSpecialCharValid","isNewPasswordValid","validationFailed","validationSucceed","platformTabSecurity","passwordInputWrapper","newPasswordInput","invalidPassword","eyeIcon","showCurrentPassword","showNewPassword","settingsPairPassword","conditionSuccess","settingsButtonsPassword","cancelButton","saveButton","handleUpdatePassword","TabsEnum","SettingsModal","setResetIdleTimer","setFullname","setEmail","initialSettings","parseSettings","activeTab","setActiveTab","passwordSettings","setPasswordSettings","tabs","platformSettings","tradingSettings","securitySettings","activeTier","settingsMain","settingsWrapper","settingsNavigation","settingsModalHeader","optionsContainer","profileContainer","profileSettingsBG","profileImage","profileImageInfo","profileName","profileEmail","tabName","tabDisplayText","settingsTabContainer","settingsTabOption","settingsTabContainerIcon","settingsTabContainerLabel","SettingsOptions","setAccountPopupIsOpen","handleTpRedirectReports","handleTpRedirectManageFunds","switchToLive","switchToDemo","last","iconContainerWrapper","settingsIcon","handleOnClickSettings","logoutAccount","AccountUserIcon","accountPopupIsOpen","AccountMenuPopup","userIconContainer","userIconContainerFullWidth","switchButtonContainer","switchToRealMoney","fund","Deposits","accountStatus","Reports","Funds","AccountMenu","userIconContainerClicked","AccountStats","valueColoring","coloring","parsedValue","statsContainer","statsLabel","RemainingVolume","iconButton","remainVolPercent","colorStatusIndicator","orange","hasUpgradeButton","valueContainer","statusIndicator","marginPercent","toggleIcon","viewDetailsContainer","btnViewDetails","handleShowDetails","contentContainer","progressBarContainer","progressWrapper","Progress","percent","progressBar","handleUpgradeClick","CAD","SGD","AccountCurrency","getCurrencyFlag","flag","AccountIconAndTier","outline","customCurrency","isForJapanSubscriptionAccount","isNotListOfSelectedTradingMode","Loader","imageWrapper","imageOutline","SubscriptionOptions","hasManageSubscriptionOption","optionsWrapper","option","handleManageClick","handleStopClick","useSwitchAccount","selectedTradingMode","mutateAsync","selectedIndex","newAccount","acct_id","_appContext$email","activeMenuItem","switchAccounts","accountsList","isLiveMenu","showAddAccount","hasJapanSpread","showAddJapanAccount","hasNoDemoAccount","hasSubscriptionOptions","isCurrentAccount","accountsListItem","accountInfo","currentAcc","ttAccountId","rfpDnsName","rfpUrlsObj","handleSwitchAccounts","stats","addAccountContainer","handleAddAccountClick","addLiveAccount","addDemoAccount","accountName","classNameAccountType","TRADING_ACCOUNTS_TYPES","CurrencyStats","setActiveMenuItem","accountTypeStyling","hasTradingAccountsError","setHasTradingAccountsError","accountFlag","exclamationIcon","currencyIcon","accountTypeBadge","accountIdAndType","accountTradingMode","menuHeader","menuItem","activeLineIndicator","TradingAccounts","AccountPanel","_dashboardContext$acc","isSearchBarOpen","isMenuOpen","setIsMenuOpen","accountProfitLoss","calculatedEquity","calculatedFreeMargin","calculatedMarginLevel","isAccountPanelOpen","availableMargin","mustShowRemainingVolume","triggerAccountBalance","accountPanelButton","handleToggleAccountPanel","buttonToggleIcon","accountStatsWrapper","iconPlusEqual","MarginLevel","formattedValues","isGymPresenter","showSearch","isInTradersGymMode","resetIdleTimer","setIsSearchbarOpen","useIdleTimer","onIdle","debounce","startManually","logoContainer","logo","expandedInstrumentSearchContainer","instrumentSearchContainer","handleCloseClick","gridViewCharts","onTradePage","updateSymbol","symbols","newChartId","selectedSymbols","noop","Item","route","component","skipIndicator","itemClass","containerClass","iconClass","preClick","disableTooltip","refNeeded","setParentRef","parentRef","itemDisabled","itemLoading","indicator","iconDisabled","iconLoading","Markets","useOutsideAlerter","InfoModal","arrow","closeInfoModal","additionalPositioning","childRef","parentPosition","setParentPosition","calculateParentPosition","parentCenterY","offsetHeight","childHeight","childwidth","offsetWidth","contentWrapper","Signals","signalPopupRef","openSignalPopup","setOpenSignalPopup","createRef","isUserAllowedToAccessSignals","refetch","balanceCheck","signalsAccessSecondCheck","modalMessage","handleSignalPopupCta","Calendar","Management","deposits","fork","CompleteOnboarding","relevantStep","UploadDocuments","statusPage","Status","handleAccountClick","Guide","handleClick","GymPositionManager","player","oldPosState","changed","calcGrossProfit","storeAccount","positionClosed","positionUpdated","notifyAccountUpdate","validatePendingPosition","validateOpenPosition","positionRestored","prevPosition","positionModified","posCopy","restoreTradingPosition","deletePositionById","_this$account$activeP","deleteAllPositionsWithSimulationId","allPosition","deleteAllPositions","marginCall","shouldPresentLiquidationMsg","positionManagerMarginCall","GymTradingAccount","deposit","GYM","credit","providerId","_balance","checkForMarginCall","CustomEvent","marginSum","positionUsedMargin","accountData","copyAccount","resetAccount","removeAllSimulations","GymAccountUtils","emailId","defaultLeverage","charCodeAt","useEnableTradersGym","setIsTradeGymActive","canEnableTradersGym","skipJapanTierValidation","convertEmailToId","gymAccount","restoreAccount","_userProfile$country$","_userProfile$country","accountBalance","country","demoBalance","createAccount","TradersGym","traderGymPopupRef","openTradersGymPopup","setOpenTradersGymPopup","enableTradersGym","closeTradersGymPopup","handlePreClick","handleTradersGymPopupCta","WtrToggle","activeBackgroundStyling","horizontalStyling","faIcon","ThemeToggle","isDarkTheme","inverted","OneClickTradingToggle","openActivateModal","setOpenActivateModal","updateOneClickTrading","handleCancel","handleActivate","Navigation","helpOpen","setHelpOpen","pageTitlePrefix","updateDocumentTitle","navContainer","navMenuItemsContainer","mainMenu","toggles","Checkbox","isChecked","labelContents","checkedValue","isLabelContentsInteractive","checkboxId","constrainedLabel","unCheckedIcon","checkedIcon","Carousel","selectedTierInfo","onMoreDetails","currentIndex","setCurrentIndex","tierPerksTranslations","carouselData","isCurrencySlide","perkValue","tierInfo","viewDetails","details","caroucel","noDetailsTopMargin","_item","handleCarouselClick","carouselDot","CurrencyDetails","onGoBack","contentClassName","modalContent","detailsModalHeader","backButton","detailsModalBody","scroll","tableContainer","generateFXMaxPositionTable","array","translationFunc","tableContent","limits","limitEntry","leadCurrency","inputData","fxPair","secondaryCurrency","pairLimit","existingLeadEntry","generateFXMaxPositionArray","useSubscribe","provider","requestedTier","source","useChangeTier","TierTile","onSelectTier","isNewUser","showCurrencyPairs","showMaxVolume","showOrderSize","tileContainer","selectorIndicator","selectorTitle","selectedText","defaultText","tileSection","tierIcon","tierTitle","padded","tradableCurrencyPairs","SubscriptionSelector","preselectedTier","startFromTierNum","onCancel","modalView","setModalView","hasUserAgreement","setHasUserAgreement","setSelectedTier","isRequesting","setIsRequesting","disabledTierId","isConfirmDisabled","changeTier","handleSelectTier","handleSubscribe","handleMoreDetails","handleConfirmSubscribe","_data$action","_data$action2","_data$action3","fields","handleClickAgreementBox","isDowngrade","isUpgrade","subscribeButtonText","courseName","CTA_TRANS_TEXTS","ctaText","tierInfoContainer","tilesContainer","isCurrentTier","titleText","isNewSubscribe","isTierChange","confirmButtonText","modalText","modalExplanation","confirmModalHeader","confirmModalBody","confitmTextWrapper","courseChangeTitle","_subscriptionInfo$sta","handleGoBack","startDatetime","expiryDatetime","subscriptionTerm","currencyValueCell","btnViewCurrencyDetails","handleCurrencyDetailsClick","detailsRows","detailsTable","useCancelSubscription","useStopSubscription","useResumeSubscription","OrHzDivider","divider","SubscriptionAlert","onConfirm","RESPONSE_TITLE_MAP","stopped","notAllowed","noRecord","restarted","remainingBalance","RESPONSE_MESSAGE_MAP","STATUS_MESSAGE_MAP","STATUS_TITLE_MAP","setMessage","setTitle","cancelSubscription","stopSubscription","resumeSubscription","japanSpreadAccount","_accountStats$find","ta","handleConfirm","handleSubscribeClick","handleResumeConfirm","handleOpenLiveAccountClick","handleLogoutClick","handleNotNowClick","columnButtons","subscriptionDetailsContent","detailsText","useHandleSubscribeResponse","useLocation","queryParams","URLSearchParams","subscribeOpStatus","subscribeOpProviderStatus","useHandleDemoPendingExpiry","subscriptionCheckStatus","triggerDemoExpiryNotifications","useFetchSubscriptionStatus","SubscriptionChecker","setSubscrInfoProps","checkStatus","setCheckStatus","isFetching","fetchSubscriptionStatus","nextMonthTier","handleCancelModal","statusRelatedUpdates","currentSubscriptionTier","nextSubscriptionTier","initModalProps","mustShowSelector","mustShowAlert","startTierNum","newTierNum","possibleMinTier","NotificationModal","isBackdrop","dialog","notificationModal","UserGuide","fileSrc","userGuideJapanPDF","modalSize","ContactModal","showContactModal","supportEmail","countriesInfos","UK","AU","showCustomCountry","IT","BR","SA","CY","JA_INTL","ContactOption","hasPhonePlus","optionContainer","dir","headerText","JA_LOCAL","mailLink","ReconnectModal","reconnectAttemptsCounter","isOnline","setIsOnline","captchaRef","reconnectIntervalMilliseconds","reconnectAttemptsLimit","reconnectAttemptsLimitReached","setReconnectAttemptsLimitReached","reconnectionInProcess","refreshJWTToken","connected","handleRetry","handleReconnect","attemptReconnect","rfpPayload","username","authToken","connectResult","AuthenticationFailed","attemptsLimitReached","startAttemptTimestamp","reconnectInterval","handleLogout","failedIcon","faWifiSlash","faSync","spin","REACT_APP_DISABLE_CAPTCHA","HCaptcha","sitekey","onVerify","useWatchlistSync","isJapanDemo","hasNoWatchLists","isJapanLiveWithNoLiveAccounts","_account$watchlist$0$","_account$watchlist$","AuthLayout","hasHeaderSearch","hasMainNav","hasHeader","hasPositions","notificationConfig","ReactNotifications","detachContainer","detachContainerScroll","navigation","getRelevantPrice","priceKey","getRelevantFormattedPrice","TradeTicketCalendar","selectedDate","handleDateSelection","handleCloseCalendar","datePickerLocale","calendarContainer","DatePicker","minDate","endDate","calendarClassName","calendarInput","onClickOutside","LimitProfitLoss","pnlTextColor","onEnabled","setPipValue","isPriceChanged","setIsPriceChanged","isPipsFocused","setIsPipsFocused","updatePipStore","getPipsValue","localPrefs","parsedPrefs","handlePipValueChange","handlePipsChange","fieldGroup","Dropdown","handleStopLossTypeChange","fieldWrapper","numberInputWrapper","subLabel","subText","TradeTicket","_current$takeProfitIn5","_current$openPriceInf5","_current$stopLossInfo4","_current$stopLossInfo6","_current$openPriceInf6","_current$openPriceInf11","_current$openPriceInf12","_current$openPriceInf13","_current$amountInfo15","_current$amountInfo16","_current$amountInfo17","_current$amountInfo18","_current$amountInfo19","_current$amountInfo20","_current$takeProfitIn6","_current$takeProfitIn7","_current$takeProfitIn8","_current$takeProfitIn9","_current$takeProfitIn10","_getOpenPrice3","_current$stopLossInfo7","_current$stopLossInfo8","_current$stopLossInfo9","_current$stopLossInfo10","_current$stopLossInfo11","_getOpenPrice4","_current$amountInfo21","_current$openPriceInf14","_current$takeProfitIn11","_current$stopLossInfo12","_current$takeProfitIn12","_current$stopLossInfo13","isStopLossActive","isTakeProfitActive","isCancellingOrder","hedgedSquareQuantity","setHedgedSquareQuantity","calculatedEffectiveSize","setCalculatedEffectiveSize","defaultGTC","showCalendar","setShowCalendar","setSelectedDate","dateText","setDateText","potentialProfitColor","setPotentialProfitColor","potentialLossColor","setPotentialLossColor","pipCost","setPipCost","marginUsage","setMarginUsage","unhedgedMarginUsage","setUnhedgedMarginUsage","setMarginCalculationType","setFreeMargin","prevMarketItemCode","setPrevMarketItemCode","insufficientMargin","isOneClickTradingEnabled","translateDate","localLocale","nonArabicFormattedQuickDates","week","month","calendarOptions","orderTypeOptions","_current$limitsOnly","handleCancelButtonClick","gymNormalizePrice","gymNormalizePriceQuote","lastPriceQuote","updatePipCost","updateMarginImpact","updateFreeMargin","validateOpenPrice","_instrument","stepAmount","_parsedPrefs$user_pre","_parsedPrefs$user_pre2","_parsedPrefs$user_pre3","setInitialQuantityGroup","updateAmountInfo","calculateLimitStopPrice","_getOpenPrice","getOpenPrice","potentialPL","validateTakeProfit","_current$takeProfitIn4","_getOpenPrice2","validateStopLoss","_current$stopLossInfo5","_current$openPriceInf7","_current$amountInfo6","_current$amountInfo7","_current$amountInfo8","_current$amountInfo9","_current$openPriceInf8","positiveSubText","negativeSubText","formatAsCurrency","_current$amountInfo10","_current$amountInfo11","_current$openPriceInf9","_current$openPriceInf10","marginCalcType","tradeQuantity","unhedgedMarginImpact","_current$amountInfo12","_current$amountInfo13","isLimit","quantities","defQuantity","formatAndDisplayDate","newDateText","getReformattedDate","submitOrderRequest","isInstrumentOpenPosition","_current$amountInfo14","activeTradingPositions","showPopup","showAmount","containerUndock","sideCloseButton","tradeTicketButton","handleOrderTypeChange","calendarIcon","handleShowCalendar","handleDateValueChange","calendarOption","_user_prefs$trading$s","noMargin","rowMiddle","infoRow","infoLabel","popupMessage","fieldTakeProfitStopLoss","handleTakeProfitEnabled","handleStopLossEnabled","tradersGymField","handleConfirmButtonCLick","messageBody","messageType","expDateStr","formattedExpDateStr","expDate","formatDateExpNotifyBody","handleStateDispatch","eventCallback","usePresentTradeEvent","tradeEvent","events","DispatchHandler","m_lastDataUpdate","m_lastDispatch","m_isDispatching","m_asyncPromise","lastDispatch","setMilliseconds","dispatchInterval","m_data","m_timeoutInterval","freeze","queue","dispatchable","stop","doDispatch","runAsync","lastDataUpdate","dispatch","_this$m_data$get","catch","dispatchAction","Dispatcher","m_handlers","m_isRunning","m_dispatchInterval","m_timerInterval","setHandler","removeHandler","setHandlers","handlers","getHandler","hasHandler","clearHandlers","handlerId","runHandlers","isReady","currentTradeTimeMillis","_historyRequest$start","_historyRequest$endTi","generateUniqueHistoryId","cloneWithNewRequestId","cloneObj","suffix","PercentChange","isNumberPositive","deleteClosedPosition","SharedModal","modalRemoveOption","modalTopHeader","removeMessage","modifyFooter","actionButtons","SharedButton","handleCancelRemove","handleRemoveItem","PositionSearch","_columnFilters$find","haveX","setHaveX","instrumentName","searchBox","notEmpty","prev","onFilterChange","clearSearchIcon","CalcDistanceToMarket","lowestDTM","highestDTM","ClosedTicketModal","_data$0$prc","_data$0$prc2","_data$0$openBidPrice","_data$0$openAskPrice","_data$0$cP","_data$0$cP2","_data$0$closeBidPrice","_data$0$closeAskPrice","_data$2","setShowClosedPositionTicket","setAmount","amountOrLots","_data$","amountDecPrec","formattedOpenTime","formattedCloseTime","_gymContext$tradersGy","_gymContext$tradersGy2","_gymContext$tradersGy3","getSimulationName","progressBarMargin","progressIndicator","gymPresenter","progressPercent","dividerShort","japanPositioningShortDiv","dividerLong","japanPositioningLongDiv","marginCallStopOut","marginCallJapan","japanText","stopOut","updateDocumentTitleWithPriceQuote","titlePrefix","ServiceIssuesModal","TradeBoardHeader","isWatchlistSearchOpen","handleWatchlistSearchToggle","handleReloadWatchlist","isDynamicWatchlist","storeWatchlists","openModify","setOpenModify","setCreateWatchList","setWatchlistName","setTypedValue","searchResults","setSearchResults","searchValue","setSearchValue","showEmptySearchState","setShowEmptySearchState","invalidRemoveName","setInvalidRemoveName","searchInputRef","watchlistNameRef","handleSaveWatchlist","newWatchlistName","wlCount","editWatchlistIcon","nameExists","maxWatchlists","headerButtonsWrapper","watchlistSearchContainer","resetWatchlistSearch","searchTitle","inputIcon","clearSearchInput","deleteIcon","openSearchInput","results","sorted","hiddenScroll","boxSearch","modalWatchlist","modifyWatchlistModalBody","modifyWatchlist","modifyInputContainer","modifyErrorInput","modifyInput","inputLimit","modifyErrorMessage","buttonDiv","disableBtn","removeCurrentWatchlist","modifyButton","handleCloseModifyModal","renameCurrentWatchlist","originalName","OneClickTradeDropdown","handleQuantityChange","formattedQuantity","handleInputChange","wrongQuantityError","dropdownOpen","setDropdownOpen","dropdownStyle","dropdownError","dropdown","dropdownRef","closeOpenDropdown","_dropdownRef$current","readOnly","inputSkeleton","Skeleton","baseColor","highlightColor","optionSelected","pound","points","OneClickTradeButtons","handleBuySellClick","hoverClasses","instrumentIcon","faArrowAltUp","faArrowAltDown","handleBuySellButtonClick","closedMarketContainer","closedMarket","containerSelected","tradeButtonContainer","sellLabelContainer","upDownIcon","priceContainer","buyLabelContainer","TradeState","OneClickTradeTicket","_dashboardContext$sel","handleInstrumentChange","isDetached","requestId","tradeState","Default","lastRequestTime","octStoredValue","setSelectedQuantity","setWrongQuantityError","isFirstRender","setIsFirstRender","storedOCTValue","selectedTradingAccountId","asyncWait","ms","subTradeEventIdRef","getQuantityValues","_octStoredValue$selec","convertedValue","Submitted","inputValue","_value$split$1$length","_value$split$","getDefQuantityValue","quantityValue","defValue","_storedOCTValue$selec","isQuantityValid","containerLimited","containerDetached","removeIconContainer","removeIcon","instrumentHeader","timeInMillis","orderRequestObject","orderConfirmObj","stopLossValues","buttonHover","spreadHover","loadingContainer","loadingIcon","submittedText","_e$target$value$match","isValid","modalRemoveWatchlist","TradeBoardItem","onInstrumentChange","TradeBoard","updateSBWatchlistInstruments","setIsDynamicWatchlist","setIsWatchlistSearchOpen","subscribeToNewInstruments","initialChartSymbol","instrumentHandlers","onRemovalFromWatchlist","subIdItemsRef","unsubscribeInstruments","watchlistContainerDetach","marketTickerContainer","windowMarketTickerContainer","noScrollBar","instrumentsContainer","mktItem","addInstrumentContainer","centeredText","addInstrument","addInstrumentIcon","addInstrumentTitle","iconC","aria-hidden","emptyTitle","usePositionGridColumn","symbolCell","getCanExpand","getIsExpanded","symbolText","verticalCenterAlign","renderValue","Change","enableSorting","CalcNetPL","horizontalCenterAlign","maxSize","usePositionTable","_useSelectedTradingAc","openPositionsBySymbol","oldestDate","newestDate","valueOf","codeOrTicker","sumValue","headID","Exposure","Previous","positionLength","_position$currentPric","_position$netProfit","_position$grossProfit","_position$oP","currentChange","onDateTranslated","parentItem","NetPL","GrossPL","PositionTable","showSettingsModal","columnResizeMode","setColumnVisibility","globalFilter","setGlobalFilter","highlightPosition","setHighlightPosition","expanded","setExpanded","sorting","setSorting","columnOrder","setColumnOrder","isMozilla","havePositions","setHavePositions","localDataOrder","parsedData","getSortedRowModel","onSortingChange","onExpandedChange","getSubRows","onColumnVisibilityChange","getFilteredRowModel","onColumnFiltersChange","onGlobalFilterChange","onColumnOrderChange","getExpandedRowModel","debugTable","localData","localSortingData","setItemToStorage","sensors","useSensors","useSensor","MouseSensor","TouchSensor","KeyboardSensor","tableContainerHeight","positionPageTableWrapper","DndContext","collisionDetection","closestCenter","modifiers","restrictToHorizontalAxis","onDragEnd","over","oldIndex","newIndex","arrayMove","tableContainerVirtualStyles","stickyHeader","getHeaderGroups","headerGroup","SortableContext","strategy","horizontalListSortingStrategy","positionClass","tableRowTransparent","useOrderGridColumn","_getValue","useOrderTable","columnOptionExpired","setColumnOptionExpired","pendingPositionsBySymbol","expiredOrder","expiredDate","nearestExpDate","oldestCreatedDate","farthestExpDate","newestCreatedDate","isGTC","gtcIndex","expiredDateValue","squareAmount","ExpiryOnTranslated","Type","TypeTranslated","_marketItem$decPrec2","_position$prc$toFixed","_position$prc","_position$tp$toFixed","_position$tp","_position$sl$toFixed","_position$sl","createdOnTranslated","typeTranslated","OrderTable","InfoIcon","onInfoClick","iconTheme","useClosedGridColumn","useClosedTable","closedPositionsBySymbol","todayDate","todayDateFormat","closeDateFormat","subtractWeek","oneWeekDate","subtractMonth","oneMonthDate","setMonth","subtractMonths","threeMonthDate","getYTD","subtractYear","yearDate","setFullYear","mapClosedData","_position$oP$toFixed","_position$cP$toFixed","openOnTranslated","closedOnTranslated","ClosedTable","closedPositionsPeriodDropdown","setPositionData","tableOrEmptyState","setTableOrEmptyState","useImperativeHandle","exportToExcel","worksheetData","excelObject","worksheet","XLSX","json_to_sheet","workbook","book_new","book_append_sheet","PositionsPanel","closedTableRef","showPositions","setShowPositions","gridLengths","setGridLengths","closeDateOptions","todaysPositions","lastWeek","weeklyPositions","isBetween","lastMonth","monthlyPositions","lastThreeMonths","lastThreeMonthPositions","year","lastYearPositions","ytd","yearToDatePositions","openLength","pendingLength","setTab","tabIndex","gridLayout","reserveSpaceHelper","tabLabelValue","tabLabel","tools","handleCloseFilter","upward","closeDropdown","downLoadIcon","handleDownloadClick","loadingImage","lightLoader","darkLoader","loadingText","WatchlistHeader","editLayer","setSort","headerEdit","watchlistAccordion","editInstrument","windowInstrument","handleInstrumentClick","instrumentChevron","columnLabelContainer","columnLabel","DetachWatchlistPercentChange","ask","bid","calcChangePercentage","useDetachWatchListColumn","sortingRef","MarketItemIcon","sortingFn","rowA","rowB","useDetachWatchList","confirmOrderTicket","DetachWatchList","WatchlistEdit","window1","availableWatchlistsForMoveOperation","setOpenMove","handleSelectAllWatchListElements","handleWatchListSelection","resetEditLayer","editOptionContainer","actionRow","selectAll","editOptionCheckboxContainer","textAll","move","editOptionIcons","editBarText","editHeader","windowEditHeader","editIcon","windowHeader","openModalTitle","removeButton","removeItemsIcon","WatchListCategories","windowWatchListCategories","WatchListCategoriesChildEdit","windowEditDragContainer","instrumentBox","DragDropContext","destination","Droppable","droppableId","provided","windowMarketTickerContainerEdit","MarketTickerContainer","droppableProps","innerRef","draggableId","editContainer","windowEditContainer","draggableProps","dragHandleProps","SymbolDescription","grabIndicatorContainer","grabIndicator","sortedInstruments","setSortedInstruments","setAvailableWatchlistsForMoveOperation","allWatchlistsCount","setEditLayer","setRemoveItem","setRemoveAll","openMove","setSelectedWatchlist","sortWatchlistInstruments","handleMoveClose","editWatchlistButton","headerDynamic","emptyWindowContainer","notSticky","instrumentTitle","Container","fluid","containerFluid","instrumentChecked","updatedRemoveItem","removeAttribute","modifyWatchlistInput","moveModalHeader","moveModalTitle","isSomeOfTheElementsExistsInWatchlist","moveWatchlist","moveToWatchlist","toWatchlistInstruments","toWatchlist","originalList","RightNavItem","tooltipText","RightNavTrade","handleClickTrade","RightNavInfo","handleClickInfo","RightNavNews","handleClickNews","RightNavigation","Info","News","SignalPercentElement","barCount","hasHorizontalLayout","oneBar","twoBars","threeBars","fourBars","containerHorizontalLayout","signalBars","sizingBox","firstBar","bar","secondBar","thirdBar","fourthBar","fifthBar","SortingChevronIcons","sortType","chevronIcon","SignalsFilter","filterConditions","handleChangeSlider","handleChangeDropdown","triggerAnimation","availableAssetsClassOptions","statusOptions","easeInAnimation","easeOutAnimation","onAnimationEnd","range","marks","20","40","60","80","100","allowCross","confidenceRange","assetClass","initialFiltersState","SignalsList","hasFilter","hasHorizontalConfidenceLayout","doNavigate","loading","hasBorder","isFilterOpen","setIsFilterOpen","setTriggerAnimation","sortingDirection","fieldName","setFilterConditions","getValueToSort","sortSignals","signalList","matchConfidence","matchAssetClass","matchOrder","sortedData","currentSignal","nextSignal","currentSignalValue","nextSignalValue","hasFilters","border","filterIconHolder","handleOpenFilter","filterIcon","hasFiltersIndicator","dropdownName","scrollableWrapper","signalsTable","tableHeadersRow","handleClickSort","sortingChevtonsContainer","signalData","_appContext$currently","_signalData$marketIte","_signalData$marketIte2","signalItem","handleSignalClick","signalsItemWrapper","confidencePercent","orderStats","EmptyNews","Newsfeed","liveTradeNews","matchingArticles","setMatchingArticles","updateCode","filterCode","formattedCode","newsFilter","matchingRecords","keywords","newsfeedContainer","webpackAsyncContext","req","__webpack_require__","o","ids","tagManagerArgs","gtmId","TagManager","initialize","Worker_fn","Worker","BinaryRfpClientWorkerState","ProtobufSchema","_jsonDefinitions","_root","_types","_ProtobufSchema","RfpBinaryMessagesJson","protobuf","Root","fromJSON","WrapperMessage","lookupType","worker","BinaryRfpClientWorker","m_socketClient","m_state","disconnected","m_stateStream","m_debugStream","m_dataStream","m_subscriptionStreams","m_appInBackgroundMode","m_lastInBackgroundModeTimestamp","setIsInBackgroundMode","performance","stateStream","debugStream","client","WebSocket","connectionTimeoutMilliseconds","pongTimeoutMilliseconds","connectionTimeout","pongTimeout","lastFrameTime","isMonitoringMainThread","checkMainThread","reconnect","requestAnimationFrame","resetConnectionTimeout","clearTimeout","pingRequest","types","fromObject","commandId","Command","PING","binaryType","onopen","onmessage","ArrayBuffer","uint8ArrData","Uint8Array","decode","stream","onerror","onclose","requireConnectedClient","bytes","encode","finish","subscribeForData","unsubscribeForData","complete","command","connectedAction","disconnectedAction","readyState","OPEN","args","stripObjectFunctions","rfpClient","createWorkerModule","expose","BinaryRfpGatewayConfig","defaultFeedId","baseUrl","webSocket","maxRequestsPerSecond","autoReconnect","feedDelay","TT_WATCH_LIST","isoCode","codesCsv","RFP_SERVERS","RfpServers","rfpServer","rfpServerName","TT_MARGIN_RULES","marginRule","scheduleEnabled","dayIndexesSundayFirst","dayValues","FUTURE_MARGIN","_data$margin","FutureMargin","TT_SESSION_TIMES","HS_START_DATE","HistoryStartDate","timeInterval","intervalMin","TFBO_LOGIN","tfbo_session_id","tfboSessionId","tfbo_token","tfboToken","TFBO_ENDPOINT","restApiURL","uploadDocsURL","exchangeRateURL","REQ_QUOTES","RequestQuotes","Action","SUBSCRIBE","UNSUBSCRIBE","PONG","FEED_INFO","feeds","feedInfo","feedID","initialGroup","feedIds","HS_TICK","firstItem","continuousFlag","contFlag","MKT_ITEM","MarketItems","baseCcy","groupCode","isin","marginType","pipSizeH","tradable","wlRank","subscriptionCounter","MKT_ITEM_INFO","MarketItemsInfo","MarketItemInfo","MarketItemsInfoRecord","QUOTE","Quote","TR_ACCOUNTS_ERROR","TR_ACCOUNT","AccountType","TR_PROVIDER","uniqueName","TR_ACCOUNT_LOGIN_INFO","TradingAccountLoginInfo","loggedOn","ACCT_TIER_INFO","AccountTierInfo","ttAcctId","usedUnits","availableUnits","maxUnits","TR_ACCOUNT_INSTRUMENTS","TradingInstruments","_rshMap","minLot","maxLot","stepLot","lotDecPrec","pipPos","rshL","rshLong","rshS","rshShort","swapLong","swapShort","trPeriod","tradingPeriod","mtReqMx","mtValOne","mtReqOne","mtValTwo","mtReqTwo","mtValThree","mtReqThree","mtValFour","mtReqFour","mtValFive","mtReqFive","mtValSix","mtReqSix","NEWS_ARTICLE","currencies","newsCurrency","newsCategoryId","newsTypeId","revision","MKTWIN_NEWS","MarketWinNews","codeId","priority","TRADE_EVENT","TradeEventMsgType","msgType","eventType","EventType","EVT_TYPE_ERROR","HS_SIZE","rfpTimingInterval","TRADE_EVENT_EXT","TradeEventExt","orderId","eventEntry","TradeEventEntry","POSITION","POSITIONS","isJapaneseUser","floorValueIfNeedIt","PositionState","CLOSED","PositionType","CMD_INFO","ClientCommandResult","clReqId","msg","objId","topic","subType","ERROR","SessionError","MKTW_INTERVALS","intervalLength","MKTW_CATEGORIES","categories","itemsCount","dynamic","MKTW_ITEM","MKTW_ITEMS","dynamic_category","dynamicCategory","totNumMsgs","msgNum","PREV_DAY_CLOSE_PRICE","PreviousDayClosePrice","_messageMapper","RequestHistory","Timescale","TS_UNKNOWN","PriceType","RHPT_UNKNOWN","expDt","isFinite","RequestNewTrade","TradeSide","TSD_UNKNOWN","TradeType","TTP_UNKNOWN","root","ProtoVer","lookupTypeOrEnum","LoginMode","LocalizationLang","LoginRequest","AuthTokenLoginRequest","RequestTfboLogin","RequestTfboEndpoint","Ping","SSOLoginRequest","LoginResponse","QuoteServiceStatus","RequestHistoryStartDate","RequestFeeds","FeedInfo","RequestMarketItems","RequestMarketItemsInfo","RequestTradingProviders","RequestTradingAccounts","RequestRfpServers","RequestLoginTradingAccount","RequestLogoutTradingAccount","RequestAccountTierInfo","RequestTTWatchList","RequestTTMarginRules","RequestFutureMargin","VTUpdateTradingAccountQuantityType","VTUpdateTradingAccount","RequestPreviousDayClosePrice","TradingInstrument","DemoAccountParam","DemoAccountParams","TradingAccountProperty","TradingAccountProperties","RequestNewOrder","RequestEditPosition","RequestEditOrder","RequestCloseTrade","RequestCloseTradePartial","RequestMarketWatchIntervals","RequestMarketWatchCategories","RequestMarketWatchSnapshots","RequestMarketWatchSubscription","RequestMarketWatchDynamicSubscription","TradingAccountNotFound","TradingAccountDeleted","RequestTTSessionTimes","RequestNews","RequestMarketWinNews","RequestNewsGroups","RequestNewsConfig","NewsArticles","NewsFilterGroup","NewsFilterGroups","NewsFilterEntry","NewsFilterEntries","TierUpdatePush","REQ_FEEDS","REQ_MKT_ITEMS","REQ_MKT_ITEMS_INFO","REQ_TR_ACCOUNTS","REQ_TR_PROVIDERS","SNAPSHOT","mapHistoryPriceType","mapHistoryTimescale","Subscribe","countBars","tickCount","REQ_HISTORY","REQ_TT_SESSION_TIMES","REQ_HS_START_DATE","REQ_NEWS","msgCount","REQ_MKTWIN_NEWS","REQ_LOGIN_TR_ACCOUNT","tradingAccountId","REQ_LOGOUT_TR_ACCOUNT","REQ_TT_WATCH_LIST","REQ_RFP_SERVERS","acctIds","REQ_TT_MARGIN_RULES","REQ_FUTURE_MARGIN","REQ_ACCT_TIER_INFO","REQ_CLOSE_TRADE","REQ_EDIT_ORDER","mapOrderExpiration","REQ_EDIT_POS","reqNewTrade","mapTradeSide","mapTradeType","REQ_NEW_ORDER","REQ_NEW_TRADE","REQ_CLOSE_POS_PART","reqCloseTrade","REQ_MKTW_INTERVALS","REQ_MKTW_CATEGORIES","REQ_MKTW_SNAPSHOTS","categoryName","REQ_MKTW_SUBSCRIPTION","REQ_MKTW_DYNAMIC_SUBSCRIPTION","REQ_UPD_TR_ACCOUNT","accId","REQ_PREV_DAY_CLOSE_PRICE","decodeMessage","UPDATE_ACCT_TIER","RfpDataMessageMapId","objType","CMD_UNKNOWN","PriceQuoteSubscription","gateway","m_gateway","m_subscriptions","sendPriceQuoteRequest","Unsubscribe","subscription","onPriceQuote","func","dispose","DataObjectSubscription","onDataObject","rfpDataType","PriceFeed","m_id","m_stream","m_subscriptionDelegate","subscriptionDelegate","subscriptionStreamDelegate","pipe","subscriptions","newSubscriptions","existingSubscriptions","HistoryFeed","m_fetchTicksDelegate","fetchTicksDelegate","ticks","fetchTicks","historyFeedSubscription","timeoutDelay","hsReqId","WorkerRfpClient","m_worker","m_workerState","m_promiseFactory","m_subscriptionCommandIds","m_workerDebugSubscription","m_workerStateSubscription","setAppInBackgroundMode","errorCallback","startWorker","observableSubscription","hasSubscription","stopWorker","spawn","WebWorker","Thread","terminate","BinaryRfpGateway","m_dataObjectSubscriptions","m_priceFeedConfigTemplate","m_historyFeedConfigTemplate","m_subscriptionMessageStream","_this$m_socketClient","m_currentPrices","m_historyData","m_mapMarketItems","subscriptionMessageStream","m_priceStream","m_historyStream","m_priceFeeds","m_historyFeeds","m_isAppInBackgroundMode","m_feedIds","m_maxRequestFrequency","m_priceQuoteSubscriptions","m_marketItemsRecord","m_lastRequestTime","m_reconnectHandler","m_quotesInterval","nextCommandId","subscriptionStream","_data$historyTicks","priceFeedId","subscriptionsByFeedId","priceStream","historyFeedId","historyFeed","fetchHistoryTicks","historyStream","connectPayloadProvider","_this$connectionInfo","_this$connectionInfo2","_this$connectionInfo3","connectionInfo","connectPayload","wsDisconnect","enableSSO","sso_token","wsConnect","decodedMessage","_ProtobufSchema$rshMa","rshData","rshMap","adjustedPips","connectTimeout","wsSubscribe","_data$error","ConnectionToServerClosed","wsUnsubscribe","LOGIN","_data$fundedTrader","rfpUrl","login_mode","loginMode","fundedTrader","AuthenticationTimeout","loginRequest","REQ_LOGIN_AUTH_TOKEN","protoVer","ONE","wsSend","feedIdsSubscription","feed","RequestFeedIdsTimeout","simulateQuotes","discError","feedIdentifier","priceFeedConfigTemplate","requestTfboLogin","tfboLoginRequest","REQ_TFBO_LOGIN","requestTfboEndpoint","REQ_TFBO_ENDPOINT","deletePriceFeed","createHistoryFeed","historyFeedConfigTemplate","deleteHistoryFeed","isHistoryFeedOwned","timeoutPromise","item1","item2","historyFeeds","subscripions","_historyTickItems$his","_this$m_feedIds","feedInfos","wrapperMessage","messageMapper","commandIds","mapperFnc","subscribedCommandIds","wsHasSubscription","_this$m_priceFeeds","_this$m_historyFeeds","_this$m_feedIds2","dataObjectSubscriptions","setPriceQuote","websocketUrl","library","faCalendar","fasCalendar","fasTimes","fasPen","fasTimesCircle","fasSearch","falSearch","farSearch","faPencil","faArrowDownToLine","fasChevronLeft","fasChevronRight","falChevronLeft","falChevronRight","fasPlusCircle","fasInfoCircle","fasExternalLinkAlt","falExternalLinkAlt","farExternalLinkAlt","fasCog","fasUser","faGripDotsVertical","falTimes","fasList","falList","falNewspaper","faGlobe","farGlobe","fasGlobe","farPlusCircle","falPlusCircle","faEye","farEye","falEye","falEyeSlash","fasEyeSlash","farEyeSlash","faFileAlt","farCircleXmark","fasCircleXmark","falCircleXmark","falXmark","faCheckCircle","farTasks","falTasks","fasTasks","faHistory","fasChartPie","farChartPie","falChartPie","falPlus","faCaretUp","faSpinner","faCaretDown","faClipboardList","faExclamationCircle","faPauseCircle","faPen","falPen","farTimesCircle","fasCaretLeft","fasCaretRight","faSquare","fasCheckSquare","faBell","farBell","falBell","faPlayCircle","fasArrowLeft","faSun","faBrightness","faMoon","farCreditCard","faTwitter","faTelegram","faLine","faCommentAltDots","fasCommentAltDots","faDumbbell","faCommentDots","fasCommentDots","fasDumbbell","falDumbbell","farDumbbell","fasPlayCircle","fasPauseCircle","faStepBackward","faStepForward","faGamepad","faRedo","farMoneyBillWave","falMoneyBillWave","fasMoneyBillWave","faCheck","faSignal","fasSignal","faFilter","falFilter","faChevronUp","faChevronDown","farChevronDown","farXmark","farSignalSlash","fasSignalSlash","falSignalSlash","falFilterSlash","farLock","faLock","farShield","falShield","faBookReader","faGripVertical","faBolt","faBookOpenCover","falBookOpenCover","faNewspaper","faArrowRightArrowLeft","faPlus","faCirclePlus","faMinus","farKey","farChartColumn","faCircleMinus","fasFileArrowUp","falFileArrowUp","farFileArrowUp","fasChartColumn","falChartColumn","fasShield","farDesktop","fasDesktop","falDesktop","fasKey","falKey","faTruck","faTrashAlt","faAngleUp","faAngleDown","faAngleRight","faExclamationTriangle","faExchange","faInfoCircle","faChartCandlestick","fasChartCandlestick","fasPlus","faMoneyBill1","faSquareArrowDownLeft","faSquareArrowUpRight","fasMoneyBill1","faPenLine","faEllipsisV","faGrid","faFunction","faGear","falInfoCircle","farArrowRightArrowLeft","farInfoCircle","faBoltSlash","faChartTreeMap","faMessageDots","fasMessageDots","faArrowRightFromBracket","faPhone","falUser","faEnvelope","faVolume","faVolumeSlash","fasLayerPlus","farLayerPlus","falLayerPlus","farInfo","falInfo","fasInfo","faQuestionCircle","farTrash","falTrash","fasTrash","faClone","faPeopleGroup","falPeopleGroup","fasPeopleGroup","fasCircleQuestion","falCircleQuestion","faCircleQuestion","fasClapperboardPlay","falClapperboardPlay","farClapperboardPlay","faMoneyBillTrendUp","farExlamationTriangle","farBookOpenCover","faSparkles","faArrowLeft","faCalendarAlt","farPlusLarge","falPlusLarge","fasPlusLarge","farEquals","falEquals","fasEquals","fasCircleCheck","falCircle","farXmarkLarge","falXmarkLarge","fasXmarkLarge","farSquareArrowUpRight","farSquareArrowDownLeft","fasSquareArrowUpRight","fasSquareArrowDownLeft","falSquareArrowUpRight","falSquareArrowDownLeft","fasShieldKeyhole","farShieldKeyhole","falShieldKeyhole","farChartCandlestick","farCircle","fasCircle","fasListUl","falListUl","farListUl","falClockRotateLeft","fasClockRotateLeft","farClockRotateLeft","initApm","serviceName","serverUrl","serviceVersion","environment","refreshTokenPromise","defaults","baseURL","withCredentials","retryRequest","originalRequest","_retried","interceptors","_config$url","_response$data2","_response$data2$paylo","_originalRequest$url","_originalRequest$url2","retried","_error$response2","_originalRequest$url3","_originalRequest$url4","ThemeWrapper","isJapanese","isThai","isVietnamese","isArab","isTraditionalChinese","isSimplifiedChinese","fullHeightWidth","subscribeOpsPersistHelper","initStatusName","initProviderStatusName","queryPersistAppendix","RFP_TRADING_ACCOUNT","TFBO_CONNECTION_ERROR","TFBO_GET_USER_RECONNECTING","TFBO_GET_USER","TFBO_GET_ACCOUNT_STATS_RECONNECTING","USER_PREFERENCES","i18next","loadLanguages","connectWebSocket","instrumentContextProvider","dashboardContextProvider","marginRulesContextProvider","existingValue","freshNewsArr","oldAccount","oldPos","Risers","Daily","dailyRisers","weeklyRisers","RisersSB","Fallers","dailyFallers","weeklyFallers","FallersSB","dailyMostVolatile","weeklyMostVolatile","MostVolatileSB","prevClose","onConnected","feedReq","feedSubscription","MostVolatile","Weekly","rfpNews","tradingProvider","_savedPreferences$use","_savedPreferences$use2","_savedPreferences$use3","savedPreferences","lastLoggedAcc","newWatchList","codesArray","newCode","currentMarginRules","currentFutureMargin","serverNames","marketItemsRecord","mktwatchItem","mktwatchItems","previousDayClosePrice","tierUpdateInfo","loginCred","skip_tfbo_login","captcha_response","getUrlWithAppendedQueryString","currentUrl","extraQueryString","hasCurrentUrlQuestMark","URL","useApplicationStatus","useUserProfile","useUserStats","useStoreAndLoadPreferences","limitProfitLossStoredValues","newUserPreferences","_savedPreferences$use4","_savedPreferences$use5","_savedPreferences$use6","_savedPreferences$use7","_savedPreferences$use8","storedStopLossValueType","stopLossValueType","storedTakeProfitValueType","takeProfitValueType","filteredSBWatchlistAccountPref","useUpdatePipsPreferences","pipsObject","_appContext$userPrefe4","_appContext$userPrefe5","useUserPreferences","opts","storeAndLoadPreferences","updatePipsPreferences","preferencesData","decodeURIComponent","atob","useExchangeSSOToken","ssoCode","useAggreementStatus","ALLOWED_TRADING_ACCOUNT_TYPES","useInitialize","isInitializedRef","fetchUserPreferences","fetchProfile","_data$country$code","_data$country","code2","fetchUserStats","stat","accountTradingType","CE","fetchApplicationStatus","application_status","fetchAggrementStatus","customerVersion","latestVersion","exchangeSSOCode","useExchangeSSOCode","query","ssoEmail","updateLanguageSettings","connectRfp","setCustomContext","setUserContext","rfpUrlStorage","_storedData$email","storedData","_storedData$email2","go","withLiveAccount_inDemoMode","EMPTY","DUPLICATE","INCOMPLETE","PENDING_ID_ADDRESS","PENDING_ID","PENDING_ADDRESS","PENDING_APPROPRIATENESS_TEST","PENDING_PROPER_DOCUMENTS","PENDING_RG227","PENDING_BLURRY_CROPPED_ID","PENDING_BLURRY_POA","MANUAL_DOCS","PENDING_E_VERIFICATION","PENDING_TRANSLATION","PENDING_KYC","DENIED","PENDING_TRANSFER","PENDING_NEW_TnC_ACCEPTANCE","FAILED","PENDING","INTERNAL_TESTING","PENDING_IP_MISMATCH","PENDING_DOB_MISMATCH","PENDING_DOB_ADDRESS_MISMATCH","PENDING_ADDRESS_MISMATCH","PENDING_E_VERIFICATION_RETRY","PENDING_SOF","PENDING_NO_KYC_DOCS","PENDING_EMAIL","PENDING_NO_ID","withLiveAccount_inLiveMode","withoutLiveAccount_inDemoMode","withoutLiveAccount_inLiveMode","AccountStatusHandler","tierWatchlist","setTierWatchlist","statEntry","_statEntry$account","_dashboardContext$tra","lastLogged","_account$accountNumbe","_dashboardContext$tra2","_dashboardContext$tra3","Tier0","_change$newValue","accountIDs","_dashboardContext$tra4","_account$accountNumbe2","_dashboardContext$tra5","_dashboardContext$tra6","useSetupMFA","useSetMFAStatus","TwoFactorAuthModal","setCode","setError","generateKey","enableMFA","isLoadingManage","mfaModal","closeModal","qrCode","OTPInput","inputType","numInputs","renderInput","inputStyle","otpInput","containerStyle","otpContainer","shouldAutoFocus","actions","languages","changeLangForPortal","AuthGuard","Component","isValidSession","Route","Redirect","to","lazyRetry","componentImport","storageKey","hasRefreshed","_component$default","handleImportError","ChartPanel","lazy","Dashboard","showTradeNewsfeed","openOrderTicket","useSubscribeTradeEvent","localLanguage","isChanged","filteredWatchlists","hasItem","instruName","errorNotifRef","visibleNotif","isTradingConstrained","userOperation","leftPanel","Switch","exact","path","tradeLeftPanel","tradeLeftPanelOpen","tradeLeftPanelClose","rightPanel","rightTopPanel","chartPanel","panelBackground","ticket","showTicket","ticketPanel","rightNav","positionsBottomPanel","positionsBottomPanelOpen","positionsBottomPanelClose","ordersPanel","NewsWidget","withDetails","filterOption","setFilterOption","listOfArticles","setListOfArticles","selectedArticle","setSelectedArticle","emptyContainerMessage","dropdownOptions","formatCode","formattedCodes","keyword","currentPositions","currentPosition","span","contents","halfWidth","contentsAndDisclaimer","width50","jpNewsWrapper","newsWrapper","createNewSimulation","disclaimerMessageWrapper","articleDetails","MarketSignalsGate","isLiveAccountApproved","setLabel","unlockIcon","ctaButton","handleCTAButtonClick","MarketSignalsList","MarketSignals","gateContainer","fakeList","gate","marketTableFilterStore","isCurrencyOpen","toggleOpenCurrency","isExchangeCountryCodeOpen","isSectorOpen","isCategoryOpen","isPeriodOpen","setExchangeCountryCode","toggleOpenExchangeCountryCode","setSector","toggleOpenSector","ALL","setCategory","toggleOpenCategory","setPeriod","toggleOpenPeriod","closeAllFilters","setAllFiltersToDefault","TRANSLATIONS_KEY_MAP","ETF","Equities","countrycode","DE","FI","FR","GB","HK","NL","US","ZA","Financials","Industrials","Materials","Technology","Utilities","translateMarketTerm","termType","termKey","_TRANSLATIONS_KEY_MAP","translationKey","FilterBar","selectedCategory","selectedCategoryTranslatedLabel","sectors","exchangeCountryCodes","periods","popupPosition","onClickSetSector","onClickSetExchangeCountry","onClickSetCurrency","onClickSetCategory","onClickSetPeriod","sectorsJSXMap","bold","exchangeCountriesJSXMap","currenciesJSXMap","categoriesJSXMap","periodsJSXMap","filterOptionGroupWrapper","filterOptionGroup","filterLabel","filterControl","filterListWrapper","filterList","TableSettingsModal","isDynamicCategorySelected","isChangeDisabled","VolatilityProgressBar","ProgressBar","NewWatchlistsList","instrumentExistsInWatchlist","AddToWatchlistWrapper","openWatchlistMenu","setOpenWatchlistMenu","duplicateName","setDuplicateName","handleOpenWatchlist","resizedCancelBtn","resizedSaveBtn","alreadyExists","maxWatchlistsReached","checkWatchlistValidation","MarketsEmptyState","noResultsIcon","MarketsTable","_sorting$","_sorting$2","translatedMarketGroups","newsPanelHeight","useMarketItemFormatter","currencyFilter","exchangeCountryCodeFilter","periodFilter","categoryFilter","sectorFilter","setForceRerender","setLoading","setEmptyState","codesComparison","setCodesComparison","isVolatileSelected","selectedCategoryTranslated","scrollTo","filteredArray","dataMap","categoryArray","isScrolling","marketPageTableWrapper","_marketGroupsRef$curr","_marketGroupsRef$curr2","marketGroupsRef","selectedMarketsGroupName","setSelectedMarketsGroupName","_JSON$parse","_JSON$parse$Risers","_JSON$parse2","_JSON$parse2$Fallers","_JSON$parse3","_JSON$parse3$MarketsG","risersArray","risersSBArray","fallersArray","fallersSBArray","mostVolatileArray","mostVolatileSBArray","marketFilters","riserPeriod","riserCategory","marketWatch","_riserCategory$items","riserSBCategory","_riserSBCategory$item","fallerPeriod","fallerCategory","_fallerCategory$items","fallerSBCategory","_fallerSBCategory$ite","mvPeriod","mvCategory","_mvCategory$items","mvSBCategory","_mvSBCategory$items","dynamicGroups","risers","fallers","mostVolatile","dynamicSBGroups","constantGroups","groupA","groupB","spreadBettingGroups","marketGroups","marketGroup","marketGroupsFiltered","marketTabs","categoryGroupContainer","positionTypeOption","labelText","marketsWrapper","jpNews","newsAndSignals","newsOrSignalsColumn","postMessageToTP","tpIframe","contentWindow","postMessage","handleDepositRedirect","actionType","IframeThinkPortal","componentType","showLoader","setShowLoader","tpPostMessageListener","tradingAccountIdsKey","navigateToPortalPage","transactionId","displayNone","useCalendarToken","page","Insights","setUrl","iframeContainerRef","usi","iframeContainer","iframeEdit","allowFullScreen","frameBorder","scrolling","FallBackCalendar","containerRef","languageMap","it","th","innerHTML","fallBackCalendar","calRef","toggleAttribute","defer","parentNode","culture","ar","useGenerateSSOToken","useFetchDataFromYoutube","fetch","json","SingleTutorial","openVideo","videoArticle","descriptionWrapper","videoId","setVideoId","errorFromYoutube","handleOpenVideo","handleCloseVideo","allow","loadingTutorials","setIsOpenServiceIssuesModal","video","_video$snippet","_video$snippet2","_video$snippet2$thumb","_video$snippet2$thumb2","_video$snippet3","embedVideo","snippet","resourceId","thumbnails","maxres","DashboardContainerComponent","generateSSOToken","renderDisplayInit","Portal","toRender","toDisplay","portalIframeComponents","thinkPortalAuth","fullWidthHeight","Login","MobileView","ForgotPassword","TwoFactorAuthentication","Agreement","NewTraderWindow","AccountStatusModal","App","marginRulesProvider","setAttribute","Suspense","fallback","ApmRoute","visibilityChange","QueryClient","ROUTES_ALLOWED_ON_MOBILE","pageHiddenStatus","_document","_document2","_document3","msHidden","webkitHidden","initialHidden","hiddenStatus","setHiddenStatus","handleVisibilityChange","usePageVisibility","isMobile","reactDeviceDetect","QueryClientProvider","Boolean","hostname","dependencyContainer","setResolver","createRoot","Router","serviceWorker","registration","getRegistration","waiting","showSkipWaitingPrompt","notificationDialog","update","refreshing","ready","unregister","child"],"mappings":"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Aa,CACZ,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAED0jC,0BAA2B,CAC1B,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,MAGb,CACChuC,GAAI,QACJ0e,IAAK,aACLivB,cAAe,IACfC,cAAe,KACfC,YAAa,IACb5tC,YAAa,IACb6tC,cAAejqC,IAAKC,EAAE,iBACtBiqC,YAAa,IACbzjC,YAAa,CACZ,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAED0jC,0BAA2B,CAC1B,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UAAW,IACX,UA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AuB,CACtB,KACA,IAED,sBAAuB,CACtB,KACA,IAED,sBAAuB,CACtB,KACA,IAED,uBAAwB,CACvB,KACA,IAED,uBAAwB,CACvB,KACA,IAED,sBAAuB,CACtB,KACA,IAED,sBAAuB,CACtB,KACA,IAED,sBAAuB,CACtB,KACA,IAED,uBAAwB,CACvB,KACA,IAED,sBAAuB,CACtB,KACA,IAED,uBAAwB,CACvB,KACA,IAED,wBAAyB,CACxB,KACA,IAED,sBAAuB,CACtB,KACA,IAED,uBAAwB,CACvB,KACA,IAED,uBAAwB,CACvB,KACA,IAED,sBAAuB,CACtB,KACA,IAED,sBAAuB,CACtB,KACA,IAED,oBAAqB,CACpB,KACA,IAED,oBAAqB,CACpB,KACA,IAED,sBAAuB,CACtB,KACA,IAED,sBAAuB,CACtB,KACA,IAED,sBAAuB,CACtB,KACA,IAED,sBAAuB,CACtB,KACA,IAED,sBAAuB,CACtB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,oBAAqB,CACpB,KACA,IAED,mBAAoB,CACnB,KACA,IAED,mBAAoB,CACnB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,IAED,qBAAsB,CACrB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,uBAAwB,CACvB,KACA,KAED,wBAAyB,CACxB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,uBAAwB,CACvB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,uBAAwB,CACvB,KACA,KAED,uBAAwB,CACvB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,wBAAyB,CACxB,KACA,KAED,uBAAwB,CACvB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,uBAAwB,CACvB,KACA,KAED,qBAAsB,CACrB,KACA,KAED,yBAA0B,CACzB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,eAAgB,CACf,KACA,KAED,sBAAuB,CACtB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,sBAAuB,CACtB,KACA,KAED,2BAA4B,CAC3B,KACA,KAED,qBAAsB,CACrB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,kBAAmB,CAClB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,oBAAqB,CACpB,KACA,KAED,iBAAkB,CACjB,KACA,KAED,YAAa,CACZ,KACA,KAED,oBAAqB,CACpB,KACA,KAED,eAAgB,CACf,KACA,KAED,0BAA2B,CAC1B,KACA,KAED,kBAAmB,CAClB,KACA,KAED,gBAAiB,CAChB,KAED,oBAAqB,CACpB,KAED,kBAAmB,CAClB,KACA,KAED,eAAgB,CACf,KAED,qBAAsB,CACrB,IACA,GAED,wBAAyB,CACxB,KACA,KAED,eAAgB,CACf,KACA,KAED,wBAAyB,CACxB,KACA,KAED,gCAAiC,CAChC,KAED,eAAgB,CACf,KAED,cAAe,CACd,KAED,gBAAiB,CAChB,KAED,kBAAmB,CAClB,KAED,kBAAmB,CAClB,KAED,kBAAmB,CAClB,KAED,kBAAmB,CAClB,KAED,kBAAmB,CAClB,KAED,kBAAmB,CAClB,KAED,kBAAmB,CAClB,KAED,kBAAmB,CAClB,KAED,kBAAmB,CAClB,KAED,kBAAmB,CAClB,KAED,cAAe,CACd,KAED,0BAA2B,CAC1B,KACA,KAED,uBAAwB,CACvB,KAED,sBAAuB,CACtB,KACA,KAED,iBAAkB,CACjB,KACA,KAED,0BAA2B,CAC1B,KACA,KAED,yBAA0B,CACzB,KACA,KAED,8BAA+B,CAC9B,KACA,KAED,4BAA6B,CAC5B,KACA,KAED,0BAA2B,CAC1B,KACA,KAED,gBAAiB,CAChB,KAED,kBAAmB,CAClB,KACA,KAED,wBAAyB,CACxB,KACA,KAED,eAAgB,CACf,KAED,oBAAqB,CACpB,KAED,qBAAsB,CACrB,KAED,mBAAoB,CACnB,KACA,KAED,eAAgB,CACf,KAED,uBAAwB,CACvB,KAED,gBAAiB,CAChB,KACA,KAED,gBAAiB,CAChB,KACA,KAED,eAAgB,CACf,KAED,uBAAwB,CACvB,KACA,KAED,eAAgB,CACf,KAED,+BAAgC,CAC/B,KACA,KAED,0BAA2B,CAC1B,KACA,KAED,sBAAuB,CACtB,KACA,KAED,wBAAyB,CACxB,KACA,KAED,yBAA0B,CACzB,KACA,KAED,0BAA2B,CAC1B,KACA,KAED,oBAAqB,CACpB,KAED,oBAAqB,CACpB,KAED,oBAAqB,CACpB,KAED,oCAAqC,CACpC,KACA,KAED,mBAAoB,CACnB,KACA,KAED,mBAAoB,CACnB,KACA,MAGF,SAAS8zJ,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAEj0J,EAAK+zJ,GAC9B,OAAOr/G,QAAQv7D,UAAUo8D,MAAK,WAC7B,IAAI52C,EAAI,IAAInL,MAAM,uBAAyBugK,EAAM,KAEjD,MADAp1J,EAAErd,KAAO,mBACHqd,KAIR,IAAIu1J,EAAMl0J,EAAI+zJ,GAAMjwK,EAAKowK,EAAI,GAC7B,OAAOx/G,QAAQvF,IAAI+kH,EAAIlhJ,MAAM,GAAGhT,IAAIg0J,EAAoBr1J,IAAI42C,MAAK,WAChE,OAAOy+G,EAAoBpsK,EAAE9D,EAAI,MAGnCgwK,EAAoBhhJ,KAAO,WAC1B,OAAOrf,OAAOqf,KAAK9S,IAEpB8zJ,EAAoBhwK,GAAK,IACzBzK,EAAOC,QAAUw6K,G,uECzvBjBz6K,EAAOC,QAAU,CAAC,aAAa,UAAU,mBAAmB,UAAU,SAAS,UAAU,UAAU,UAAU,aAAa,UAAU,mBAAmB,UAAU,WAAW,UAAU,mBAAmB,oDAAoD,qBAAqB,UAAU,kBAAkB,UAAU,mBAAmB,UAAU,kBAAkB,UAAU,iBAAiB,UAAU,mBAAmB,UAAU,mBAAmB,UAAU,iBAAiB,UAAU,mBAAmB,UAAU,oBAAoB,UAAU,qBAAqB,UAAU,qBAAqB,Y,0rBCGhlB,MAAM66K,EAAiB,CACtBC,MAAO,gBAGJt4I,KAAgBC,MACnBs4I,IAAWC,WAAWH,G,0HCTR,SAASI,IACtB,OAAO,IAAIC,OAAO,IAA0B,uD,mECavC,IAAKC,EAA0B,SAA1BA,GAA0B,OAA1BA,EAA0B,4BAA1BA,EAA0B,sBAA1BA,EAA0B,cAA1BA,EAA0B,sCAA1BA,EAA0B,KAOtC,MAAMC,EAYL,6BACC,OAAO98K,KAAK+8K,iBAGb,kBACC,OAAO/8K,KAAKg9K,MAAM98K,WAGnB,mBACC,OAAOF,KAAKi9K,OAAO/8K,WAGZU,gBACRs8K,EAzBKJ,IACmBC,iBAAmB,IAAIxgL,IAAK,IAAM4gL,GADrDL,EAEmBE,MAAQ,IAAIzgL,IAAK,IAAM6gL,IAASC,KAAKC,SAASR,EAAeC,iBAAiB78K,aAFjG48K,EAGmBG,OAAS,IAAI1gL,IAAK,KAElC,CACNghL,eAFYT,EAAeE,MAAM98K,WAEZs9K,WACpB,4DAoBJ,MAAMC,EAAS,MACd,MAAMC,EAAsB98K,cAAA,KACnB+8K,eAAsC,KAAK,KAC3CC,QAAsCf,EAA2BgB,aAAa,KAC9EC,cAAqD,IAAIrxH,IAAsC,KAC/FsxH,cAAgC,IAAItxH,IAAiB,KACrDuxH,aAAmD,KAAK,KACxDC,sBAAqF,IAAIn4I,IAG7F,KAEIo4I,uBAAiC,EAAM,KACvCC,iCAA2C,EAEnD,YACC,OAAOn+K,KAAK49K,QAGNQ,sBAAsBh+K,GAC5BJ,KAAKm+K,gCAAkC/9K,EAAQi+K,YAAYr+I,OAAS,EACpEhgC,KAAKk+K,sBAAwB99K,EAG9B,UAAkBA,GACjBJ,KAAK49K,QAAUx9K,EACfJ,KAAK89K,cAAc14I,KAAKhlC,GAGlBk+K,cACN,OAAO/xH,IAAWlU,KAAKr4C,KAAK89K,eAGtBS,cACN,OAAOhyH,IAAWlU,KAAKr4C,KAAK+9K,eAGtBj4K,QAAQ01C,GACd,OAAO,IAAIshB,QAAQ,CAACv7D,EAAS+mD,KAC5B,MAAMk2H,EAAS,IAAIC,UAAUjjI,GACvBkjI,EAAgC70K,SAASjI,SACzC+8K,EAA0B90K,SAASjI,SAGzC,IAAIg9K,EAAmD1oI,WAAW,IAAM,GAAI,KACxE2oI,EAA6C3oI,WAAW,IAAM,GAAI,KAElE4oI,EAAwB,EACxBC,GAAyB,EAC7B,MAEMC,EAAkBA,KACvB,MAAM9rG,EAAcmrG,YAAYr+I,MAChBkzC,EAAc4rG,EAJE,MAS/B93J,QAAQ8R,MAAM,2BAEd94B,KAAKi/K,aAGNH,EAAgB5rG,EAGZ6rG,GACHG,sBAAsBF,IAIlBG,EAAyBA,KAE9BC,aAAaR,GACbQ,aAAaP,GAGbD,EAAoB1oI,WAAW,KAC9B,MAAMmpI,EAAcvC,EAAewC,MAAM/B,eAAegC,WAAW,CAClEC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQC,KACvDjiJ,KAAM,OAEPzW,QAAQf,KAAK,aACbjmB,KAAKyhE,KAAK49G,GAGVR,EAAc3oI,WAAW,KACxBlvB,QAAQf,KAAK,aAEbjmB,KAAKi/K,aACHN,IACDD,IAEJF,EAAOmB,WAAa,cACpBnB,EAAOoB,OAAUt+I,IAChBthC,KAAK29K,eAAiBa,EACtBx+K,KAAKqe,MAAQw+J,EAA2B/4B,UACxC06B,EAAOoB,OAAS,KAGhBb,GAAyB,EACzBD,EAAgBT,YAAYr+I,MAC5Bg/I,IAEAz9K,KAEDi9K,EAAOqB,UAAav+I,IACnB,GAAIA,EAAM7D,gBAAgBqiJ,YAAa,CACtC,IAAIC,EACJA,EAAe,IAAIC,WAAW1+I,EAAM7D,MACpC,MAAM1iB,EAAU+hK,EAAewC,MAAM/B,eAAe0C,OAAOF,GAC3DA,EAAe,KAEff,IAuBIh/K,KAAKg+K,cACRh+K,KAAKg+K,aAAa54I,KAAKrqB,GAGxB,MAAMmlK,EAASlgL,KAAKi+K,sBAAsBlzJ,IAAIhQ,EAAQykK,WAClDU,GACHA,EAAO96I,KAAKrqB,GAKdokK,KAEDX,EAAO2B,QAAW7+I,IACjBk9I,EAAO2B,QAAU,KACjBpB,GAAyB,EACzB/+K,KAAKqe,MAAQw+J,EAA2B/jJ,MAKxCsmJ,aAAaR,GACbQ,aAAaP,GACbv2H,EAAO,oBAERk2H,EAAO4B,QAAW9+I,IACjBk9I,EAAO4B,QAAU,KAEjBrB,GAAyB,EACzB/+K,KAAKqe,MAAQw+J,EAA2BgB,aAOxCt8K,OAKIkgE,KAAK1mD,GACX,OAAO,IAAI+hD,QAAQ,CAACv7D,EAAS+mD,KAC5B,IACCtoD,KAAKqgL,uBAAwB7B,IAC5BzjK,EAAQyN,KAAOzN,EAAQyN,MAAQ7H,KAAKmL,MAAM5E,KAAK8Y,MAAQ,KACvD,MAAMsgJ,EAAQxD,EAAewC,MAAM/B,eAAegD,OAAOxlK,GAASylK,SAClEhC,EAAO/8G,KAAK6+G,GACZ/+K,MAEA,MAAOqhD,GACR0F,EAAO1F,MAKH69H,mBACN,OAAO7+I,IAASU,GAAGtiC,KAAK29K,gBACtBv1J,IAAKo2J,IACL,MAAM0B,EAASt+I,IAASU,GAAGtiC,KAAKg+K,cAAcl7I,UAAU,KACvD9iC,KAAKg+K,aAAe,IAAIvxH,IACjBzsD,KAAKg+K,eAEb,OAAOzxH,IAAWlU,KAAK6nI,KAEvBx9I,WAAW,IAAM,IAAI9mB,MAAM,kBAGvB8kK,qBACN,OAAO,IAAI5jH,QAAQ,CAACv7D,EAAS+mD,KAC5B,IACC1mB,IAASU,GAAGtiC,KAAKg+K,cAAch8I,IAAKk+I,IACnCA,EAAOS,WACP3gL,KAAKg+K,aAAe,OAErBz8K,IACC,MAAOqhD,GACR0F,EAAO1F,MAKH5rB,UAAU4pJ,GAChB,OAAOh/I,IAASU,GAAGtiC,KAAK29K,gBACtBv1J,IAAKo2J,IACL,MAAM0B,EAASt+I,IAASU,GAAGtiC,KAAKi+K,sBAAsBlzJ,IAAI61J,IAAU99I,UAAU,KAC7E,MAAMo9I,EAAS,IAAIzzH,IAEnB,OADAzsD,KAAKi+K,sBAAsBlgK,IAAI6iK,EAASV,GACjCA,IAER,OAAO3zH,IAAWlU,KAAK6nI,KAEvBx9I,WAAW,IAAM,IAAI9mB,MAAM,kBAGvByb,YAAYupJ,GAClB,OAAO,IAAI9jH,QAAQ,CAACv7D,EAAS+mD,KAC5B,IACC1mB,IAASU,GAAGtiC,KAAKi+K,sBAAsBlzJ,IAAI61J,IAAU5+I,IAAKk+I,IACzDA,EAAOS,WACP3gL,KAAKi+K,sBAAsBvlI,OAAOkoI,KAEnCr/K,IACC,MAAOqhD,GACR0F,EAAO1F,MAKHq8H,YAENj/K,KAAK+tE,aAGL/tE,KAAKqe,MAAQw+J,EAA2B+B,kBAGlC7wG,aACN,OAAO,IAAIjR,QAAQ,CAACv7D,EAAS+mD,KAC5B,IACCtoD,KAAKqgL,uBACH7B,GAAWA,EAAO3nK,QACnB,QAED7W,KAAK29K,eAAiB,KACtB39K,KAAKqe,MAAQw+J,EAA2BgB,aACxCt8K,IACC,MAAOqhD,GACR0F,EAAO1F,MAKFy9H,uBACPQ,EACAC,GAEA,GAAI9gL,KAAK29K,gBAAkB39K,KAAK29K,eAAeoD,aAAetC,UAAUuC,KACvEH,EAAgB7gL,KAAK29K,oBACf,CAEN,GAAkC,kBADlCmD,EAAqBA,GAAsB,kCAE1C,MAAM,IAAIllK,MAAMklK,GACV,GAAkC,oBAAvBA,EACjBA,SACM,GACNv5H,IAAUC,GAAUs5H,EAAqBr5H,GAA6B,OAAjBA,EAAQ91B,MAAqC,OAApB81B,EAAQ1sC,SAEtF,MAAM+lK,GAKDj+H,QAA6B,IAAD,IAAA1f,EAAAx4B,UAAAZ,OAAnBk3K,EAAI,IAAA/+J,MAAAihB,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ69I,EAAI79I,GAAAz4B,UAAAy4B,GACpB,IAEC69I,EAAOA,EAAK74J,IAAKhoB,GAA4B,kBAAVA,EAAqBJ,KAAKkhL,qBAAqB9gL,GAASA,GAC3FJ,KAAK+9K,cAAc34I,KAAK67I,GACvB,MAAOr+H,KAGFs+H,qBAA8B9gL,GACrC,MAAMinB,EAAW,GAIjB,OAHAkgC,IAAU4D,cAAc/qD,GAAO,GAC7B4b,OAAQ4O,GAAuC,oBAAvBxqB,EAAcwqB,IACtC9F,QAAS8F,GAASvD,EAAIuD,GAAQxqB,EAAcwqB,IACvCvD,EAGR,4BACC,MAAM85J,EAAY,IAAIzD,EAChBD,EAAc,GAIpB,OAHAl2H,IAAU4D,cAAcg2H,GAAW,GACjCnlK,OAAQ4O,GAA2C,oBAA3Bu2J,EAAkBv2J,IAC1C9F,QAAS8F,GAAS6yJ,EAAO7yJ,GAAQu2J,EAAkBv2J,GAAKyiC,KAAK8zH,IACxD1D,GAIT,OAAOC,EAAsB0D,sBA3Tf,GAiUU,MAArBt6H,WAAWlB,QACdy7H,YAAO5D,G,uECtPR,MAAM6D,EAGL,oBACC,OAAOthL,KAAKiiD,SAASs/H,eAAiB,SAGvC,cACC,OAAOvhL,KAAKiiD,SAASu/H,QAGtB,mBACC,MAAM,GAAN7/K,OAAU3B,KAAKwhL,QAAO,QAGvB,2BACC,OAAOxhL,KAAKiiD,SAASw/H,UAAUC,qBAGhC,gBACC,OAAO1hL,KAAKiiD,SAASw/H,UAGtB,mBACC,OAAOzhL,KAAKiiD,SAASG,aAGfxhD,YAAYm3C,GAA4B,KA1BvCkK,cAAQ,EA2BfjiD,KAAKiiD,SAAWnhD,IAAMi3C,GACtB/3C,KAAKiiD,SAASu/H,QAAUxhL,KAAKiiD,SAASu/H,QAAQ1vJ,QAAQ,SAAU,KAClB,IAA1C9xB,KAAKiiD,SAASw/H,UAAUE,gBAC3B3hL,KAAKiiD,SAASw/H,UAAUE,cAAczkH,SAAWv8C,KAAKm2D,KACrDn2D,KAAK4M,IAAI,EAAGvtB,KAAKiiD,SAASw/H,UAAUE,cAAczkH,aAGA,MAAhDl9D,KAAKiiD,SAASw/H,UAAUC,sBAAgC1hL,KAAKiiD,SAASw/H,UAAUC,sBAAwB,KAI3G1hL,KAAKiiD,SAASw/H,UAAUC,qBAAuB,KAEhD1hL,KAAKiiD,SAASw/H,UAAUG,UAAYjhK,KAAK4M,IAAI,EAAGvtB,KAAKiiD,SAASw/H,UAAUG,WAAa,IA0CvF,MAAM9E,EA6hCL,qBAA4B/hK,GAC3B,GAAIA,EAAQ0iB,KACX,OAAQ1iB,EAAQykK,WACf,KAAK1C,EAAewC,MAAM/B,eAAekC,QAAQoC,cAAe,CAC/D,MAAMpkJ,EAAOq/I,EAAewC,MAAM/5K,YAAY06K,OAAOllK,EAAQ0iB,MAE7D,MAAO,CACNqkJ,QAASrkJ,EAAKqkJ,QACd1lJ,MAAOqB,EAAK1Y,KAAKqD,IAAKrD,IACd,CACNsX,MAAOtX,EAAKsX,MACZ1I,MAAO5O,EAAK4O,MACZiyD,UAAW7gE,EAAKg9J,aAKpB,KAAKjF,EAAewC,MAAM/B,eAAekC,QAAQuC,YAAa,CAC7D,MAAMvkJ,EAAOq/I,EAAewC,MAAM2C,WAAWhC,OAAOllK,EAAQ0iB,MAC5D,MAAO,CACNkS,MAAOlS,EAAKkS,MACZvsC,eAAgBq6B,EAAKykJ,UAAU95J,IAAKrD,IAC5B,CACNokH,WAAYpkH,EAAKokH,WACjBg5C,cAAep9J,EAAKo9J,cACpBj5C,YAAankH,EAAKmkH,gBAKtB,KAAK4zC,EAAewC,MAAM/B,eAAekC,QAAQ2C,gBAAiB,CACjE,MAAM3kJ,EAAOq/I,EAAewC,MAAM75K,cAAcw6K,OAAOllK,EAAQ0iB,MAE/D,MAAO,CACN/N,UAAW+N,EAAK/N,UAChB0M,MAAOqB,EAAKwrB,YAAY7gC,IAAKi6J,IAC5B,MAAM,GACLn2K,EAAE,KACFylB,EAAI,YACJnb,EAAW,WACX+vF,EAAU,iBACVI,EAAgB,gBAChB27E,EAAe,sBACfC,EAAqB,UACrBC,GACGH,EAEJ,MAAO,CACNn2K,KACAylB,OACAnb,cACA+vF,aACAI,mBACA27E,kBACAC,wBACAC,gBAKJ,KAAK1F,EAAewC,MAAM/B,eAAekC,QAAQgD,cAAe,CAAC,IAADC,EAC/D,MAAMjlJ,EAAOq/I,EAAewC,MAAMqD,aAAa1C,OAAOllK,EAAQ0iB,MAE9D,OADAzW,QAAQf,KAAK,oBAAqB,CAAEwX,SAC7B,CACNxqB,OAAmB,QAAbyvK,EAAEjlJ,EAAKxqB,cAAM,IAAAyvK,IAAI,EACvB/yI,MAAOlS,EAAKkS,OAGd,KAAKmtI,EAAewC,MAAM/B,eAAekC,QAAQmD,iBAAkB,CAClE,MAAMnlJ,EAAOq/I,EAAewC,MAAMz3K,eAAeo4K,OAAOllK,EAAQ0iB,MAChE,MAAO,CACNk3B,eAAgB34D,IAAkB6L,eAClC8gB,eAAgB8U,EAAK9U,eACrB1G,OAAQwb,EAAKxb,OACbkG,QAASsV,EAAKtV,SAGhB,KAAK20J,EAAewC,MAAM/B,eAAekC,QAAQoD,cAAe,CAC/D,MAAMplJ,EAAOq/I,EAAewC,MAAMwD,iBAAiB7C,OAAOllK,EAAQ0iB,MAGlE,OAFAzW,QAAQ67B,MAAM,kBAADlhD,OAAmB87B,EAAKjV,OAE9B,CACNmsC,eAAgB34D,IAAkB2L,0BAClC8a,OAAQgb,EAAKhb,OACb/Y,KAAM+zB,EAAK/zB,KACXq5K,aAActlJ,EAAKulJ,YACnBx6J,KAAMiV,EAAKjV,MAGb,KAAKs0J,EAAewC,MAAM/B,eAAekC,QAAQwD,WAAY,CAC5D,MAAMxlJ,EAAOq/I,EAAewC,MAAM54K,kBAAkBu5K,OAAOllK,EAAQ0iB,MACnE,MAAO,CACNk3B,eAAgB34D,IAAkB0K,kBAClCukE,QAASxtC,EAAKwtC,QACdnyC,MAAO2E,EAAK3E,MACZoqJ,gBAAiBzlJ,EAAK0lJ,cACtBC,WAAY3lJ,EAAK4lJ,WAGnB,KAAKvG,EAAewC,MAAM/B,eAAekC,QAAQ6D,cAAe,CAC/D,MAAM7lJ,EAAOq/I,EAAewC,MAAM34K,qBAAqBs5K,OAAOllK,EAAQ0iB,MACtE,MAAO,CACNk3B,eAAgB34D,IAAkB2K,qBAClC48K,WAAY9lJ,EAAK8lJ,WACjBC,cAAe/lJ,EAAK+lJ,cACpBC,gBAAiBhmJ,EAAKgmJ,iBAGxB,KAAK3G,EAAewC,MAAM/B,eAAekC,QAAQiE,WAAY,CAC5D,MAAMjmJ,EAAOq/I,EAAewC,MAAMqE,cAAc1D,OAAOllK,EAAQ0iB,MAC/D,MAAO,CACN6O,OACC7O,EAAK6O,SAAWwwI,EAAewC,MAAMqE,cAAcC,OAAOC,UACvD/G,EAAewC,MAAMqE,cAAcC,OAAOC,UAC1C/G,EAAewC,MAAMqE,cAAcC,OAAOE,YAC9CrhK,OAAQgb,EAAKhb,OACb/Y,KAAM+zB,EAAK/zB,MAGb,KAAKozK,EAAewC,MAAM/B,eAAekC,QAAQsE,KAChD,MAAO,CACNpvH,eAAgB34D,IAAkB4K,MAGpC,KAAKk2K,EAAewC,MAAM/B,eAAekC,QAAQuE,UAAW,CAE3D,IAAIC,EADSnH,EAAewC,MAAMz4K,UAAUo5K,OAAOllK,EAAQ0iB,MAC1CymJ,SAAS97J,IAAKhoB,IACvB,CACNu0D,eAAgB34D,IAAkB6K,UAClCs9K,OAAQ/jL,EAAMqiB,QAAU,GACxB2hK,aAAchkL,EAAMgkL,aACpBzyJ,KAAMvxB,EAAMuxB,MAAQ,GACpB8O,QAASrgC,EAAMqgC,WASjB,MALkB,CACjBk0B,eAAgB34D,IAAkB6K,UAClCw9K,QAASJ,GAKX,KAAKnH,EAAewC,MAAM/B,eAAekC,QAAQ6E,QAAS,CACzD,MAAM7mJ,EAAOq/I,EAAewC,MAAMh5K,iBAAiB25K,OAAOllK,EAAQ0iB,MAC5D8mJ,EAAY9mJ,EAAK4X,YAAY,GAC7B1F,EAAQ40I,EAAU50I,OAAS,GAC3BltB,EAAS8hK,EAAU9hK,QAAU,GAC7B/Y,EAAO66K,EAAU76K,MAAQ,GACzB0wE,EAAYmqG,EAAUnqG,UAE5B,IAAIlB,EAAez7C,EAAK4X,YAAYjtB,IAAKhoB,IACjC,CACNu0D,eAAgB34D,IAAkBuK,YAClCopC,MAAOvvC,EAAMuvC,OAAS,GACtBltB,OAAQriB,EAAMqiB,QAAU,GACxB/Y,KAAMtJ,EAAMsJ,MAAQ,GACpB86K,eAAgBpkL,EAAMqkL,UAAY,EAClCrqG,UAAWh6E,EAAMg6E,UACjB3uD,KAAMrrB,EAAMqrB,MAAQ,EACpBgqB,KAAMr1C,EAAMq1C,MAAQ,EACpBE,IAAKv1C,EAAMu1C,KAAO,EAClB9+B,MAAOzW,EAAMyW,OAAS,EACtBu+C,UAA+B,KAAnBh1D,EAAMooB,MAAQ,GAC1B+wD,OAASn5E,EAAMm5E,QAAU,KAK3BL,EAAap0D,QAASC,IACrBA,EAAK6wB,SAAW4+B,IAAWpC,YAAYrtD,EAAMyvD,IAAW0C,qBAAqBnyD,EAAKq1D,cAYnF,MATyB,CACxBzqC,MAAOA,EACPltB,OAAQA,EACR/Y,KAAMA,EACNstE,UAAWoD,EACXzlB,eAAgB34D,IAAkBsK,iBAClC4yE,aAAcA,GAKhB,KAAK4jG,EAAewC,MAAM/B,eAAekC,QAAQiF,SAAU,CAG1D,IAAI93K,EAFSkwK,EAAewC,MAAMqF,YAAY1E,OAAOllK,EAAQ0iB,MAEtCre,WAAWgJ,IAAKhoB,IACtC,MAAMw7D,EAAcx7D,EAAM8mF,eAAiB9mF,EAAM8mF,eAAiB9mF,EAAMsJ,KAExE,MAAO,CACN2b,KAAMjlB,EAAMwkL,SAAW,GACvB7sH,IAAK33D,EAAM23D,KAAO,GAClBruD,KAAMtJ,EAAMsJ,MAAQ,GACpB8W,QAASpgB,EAAMmgB,kBAAoB,EACnCq7C,YAAaA,EACb/D,SAAUz3D,EAAMuxB,MAAQ,GACxBlP,OAAQriB,EAAMqiB,QAAU,GACxB8B,MAAOnkB,EAAMmkB,OAAS,GACtBS,IAAK5kB,EAAMykL,WAAa,GACxBC,KAAM1kL,EAAM0kL,MAAQ,GACpBC,WAAY3kL,EAAM2kL,YAAc,GAChCC,SAAU5kL,EAAM4kL,SAAQ,GAAArjL,OAAMvB,EAAM4kL,UAAa,GACjD9gK,KAAM9jB,EAAM23D,KAAO,GACnB/0C,SAAU5iB,EAAM4iB,UAAY,EAC5BiiK,SAAU7kL,EAAM6kL,SAChBp7E,oBAAqBzpG,EAAMypG,oBAC3BF,OAAQvpG,EAAMupG,OACdziB,eAAgB9mF,EAAM8mF,eACtBv9E,QAASvJ,EAAMuJ,SAAW,EAC1BsxB,cAAe76B,EAAM8kL,QAAU,EAE/BC,oBAAqB,EACrBzyK,kBAAmBtS,EAAMqS,eAS3B,MAL0B,CACzBkiD,eAAgB34D,IAAkB0L,kBAClCkF,YAAaA,GAKf,KAAKkwK,EAAewC,MAAM/B,eAAekC,QAAQ2F,cAAe,CAG/D,IAAI1wK,EAFSooK,EAAewC,MAAM+F,gBAAgBpF,OAAOllK,EAAQ0iB,MAEtCre,WAAWgJ,IAAKhoB,IACnC,CACNu0D,eAAgB34D,IAAkBspL,eAClC57K,KAAMtJ,EAAMsJ,MAAQ,GACpB6W,iBAAkBngB,EAAMmgB,kBAAoB,GAC5CkC,OAAQriB,EAAMqiB,QAAU,GACxB0S,aAAc/0B,EAAM+0B,cAAgB,GACpCD,eAAgB90B,EAAM80B,gBAAkB,GACxCjU,QAAS7gB,EAAM6gB,SAAW,GAC1B+B,SAAU5iB,EAAM4iB,UAAY,MAI9B,MAAO,CACN2xC,eAAgB34D,IAAkBupL,sBAClC7wK,gBAAiBA,GAGnB,KAAKooK,EAAewC,MAAM/B,eAAekC,QAAQ+F,MAAO,CACvD,MAAM/nJ,EAAOq/I,EAAewC,MAAMmG,MAAMxF,OAAOllK,EAAQ0iB,MACvD,MAAO,CACNk3B,eAAgB34D,IAAkByK,WAClC0V,EAAGshB,EAAKuyI,IACRxsJ,EAAGia,EAAKwyI,IACRr/I,EAAG6M,EAAK/zB,KACR8rC,EAAG/X,EAAKhb,OACRkE,EAAG8W,EAAKgY,KACRC,EAAGjY,EAAKkY,IACR3lC,EAAe,IAAZytB,EAAKjV,MAGV,KAAKs0J,EAAewC,MAAM/B,eAAekC,QAAQiG,kBAAmB,CACnE,MAAMjoJ,EAAOq/I,EAAewC,MAAM13K,qBAAqBq4K,OAAOllK,EAAQ0iB,MACtE,MAAO,CACNk3B,eAAgB34D,IAAkB4L,qBAClC8qI,WAAYj1G,EAAKi1G,WACjBhuE,aAAcjnC,EAAKinC,cAGrB,KAAKo4G,EAAewC,MAAM/B,eAAekC,QAAQkG,WAAY,CAC5D,MAAMloJ,EAAOq/I,EAAewC,MAAMx4K,eAAem5K,OAAOllK,EAAQ0iB,MAMhE,IAAIr+B,GAAiB,EAErB,MAAM0Q,EAAqB1O,IAASG,QAAQzB,KACxCgQ,IACH1Q,EAAiB0Q,EAAmB1Q,gBAKrC,MAAMsT,EAAoBtT,GAA6C,IAA3Bq+B,EAAK/qB,kBAA0B,EAAI+qB,EAAK/qB,kBAEpF,MAAO,CACNiiD,eAAgB34D,IAAkB8K,eAClC2L,YAAaoJ,OAAOqf,KAAK4hJ,EAAewC,MAAMx4K,eAAe8+K,aAAan8K,KACxEmhB,GACAkyJ,EAAewC,MAAMx4K,eAAe8+K,YACnCh7J,KACK6S,EAAKhrB,aAEbO,QAASyqB,EAAKzqB,QACd2Q,aAAc8Z,EAAKmnJ,QACnBnyC,OAAQh1G,EAAKg1G,OACbr/H,OAAQqqB,EAAKrqB,OACbF,WAAYuqB,EAAKvqB,WACjBhH,GAAIuxB,EAAKvxB,GAAG43J,UACZxtG,SAAU74B,EAAK64B,SACfnjD,YAAasqB,EAAKtqB,YAClB43D,cAAettC,EAAKstC,cACpB0kC,kBAAmBhyE,EAAKgyE,kBACxBj+F,eAAgBisB,EAAKgyE,kBACrBijC,WAAYj1G,EAAKi1G,WAAWoxB,UAE5BtyI,WAAYpyB,EAAiBuhB,KAAKm2D,KAAKr5C,EAAKjM,YAAciM,EAAKjM,WAC/DjC,sBAAuBkO,EAAKlO,sBAC5BlD,gBAAiB,GACjBsqB,gBAAiB,GACjB9qB,YAAa,EACbE,UAAW,EACX3sB,eAAgBA,EAChByJ,QAAS40B,EAAK50B,QACd6J,qBAGF,KAAKoqK,EAAewC,MAAM/B,eAAekC,QAAQoG,YAAa,CAC7D,MAAMpoJ,EAAOq/I,EAAewC,MAAMr4K,gBAAgBg5K,OAAOllK,EAAQ0iB,MACjE,MAAO,CACNk3B,eAAgB34D,IAAkBiL,gBAClCi8G,YAAazlF,EAAKylF,YAClBtnD,YAAan+B,EAAKm+B,YAClBuoH,OAAQ1mJ,EAAKhb,OACbvW,GAAIuxB,EAAKvxB,GAAG43J,UACZgiB,WAAYroJ,EAAKqoJ,YAGnB,KAAKhJ,EAAewC,MAAM/B,eAAekC,QAAQsG,sBAAuB,CACvE,MAAMtoJ,EAAOq/I,EAAewC,MAAM0G,wBAAwB/F,OAAOllK,EAAQ0iB,MACzE,MAAO,CACNk3B,eAAgB34D,IAAkB+K,oBAClC2oB,UAAW+N,EAAKoS,OAAOi0H,UACvBhrI,MAAO2E,EAAKinC,aACZuhH,SAAUxoJ,EAAKwoJ,UAGjB,KAAKnJ,EAAewC,MAAM/B,eAAekC,QAAQyG,eAAgB,CAChE,MAAMzoJ,EAAOq/I,EAAewC,MAAM6G,gBAAgBlG,OAAOllK,EAAQ0iB,MACjE,MAAO,CACN/N,UAAW+N,EAAK2oJ,SAAStiB,UACzBhrI,MAAO2E,EAAK3E,MACZjwB,QAAS40B,EAAK50B,QACdH,KAAM+0B,EAAK/0B,KACX29K,UAAW5oJ,EAAK4oJ,UAChBC,eAAgB7oJ,EAAK6oJ,eACrBC,SAAU9oJ,EAAK8oJ,UAGjB,KAAKzJ,EAAewC,MAAM/B,eAAekC,QAAQ+G,uBAAwB,CACxE,MAAM/oJ,EAAOq/I,EAAewC,MAAMmH,mBAAmBxG,OAAOllK,EAAQ0iB,MAG9Dlb,EAAyC,CAC9CoyC,eAAgB34D,IAAkByqL,mBAClCn1K,QAASmsB,EAAKoS,OAAOi0H,UACrBttJ,YAAa,IA2Dd,OAxDAsmK,EAAe4J,QAAU,IAAI5gJ,IAE7BrI,EAAKhR,kBACHzQ,OAAQ5b,GAAyB,OAAfA,EAAMsJ,MACxBob,QAAS1kB,IACT,MAAMumL,EAASvmL,EAAMumL,QAAU,EACzBC,EAASxmL,EAAMwmL,QAAU,EACzB9jK,EAAW1iB,EAAM0iB,UAAY,EAC7B+jK,EAAUzmL,EAAMymL,SAAW,EAC3B39E,EAAY09E,EAAS9jK,EACrBmxD,EAAY0yG,EAAS7jK,EACrBwqI,EAAau5B,EAAU/jK,EAG7BP,EAAmB/L,YAAYpW,EAAMsJ,MAAS,CAC7CiiG,SAAUvrG,EAAM+2J,eAAiB,EACjCp/F,IAAK33D,EAAM23D,KAAO,GAClBruD,KAAMtJ,EAAMsJ,KACZsb,IAAK5kB,EAAMs7D,OAAS,GACpBmwC,SAAUzrG,EAAM0mL,YAAc,EAC9B59E,UAAWA,EACXj1B,UAAWA,EACXq5E,WAAYA,EACZ5/H,KAAMk5J,EACNp5J,KAAMm5J,EACNI,OAAQ3mL,EAAM2mL,QAAU,EACxBt5J,OAAQ3K,EACRkkK,KAAM5mL,EAAM6mL,SAAW,EACvBC,KAAM9mL,EAAM+mL,UAAY,EACxB59E,KAAMnpG,EAAMynG,cAAgB,EAC5ByL,KAAMuzE,EACNz9E,KAAMhpG,EAAMgnL,UAAY,EACxB99E,KAAMlpG,EAAMinL,WAAa,EACzBC,SAAUlnL,EAAMmnL,eAAiB,GACjCxjK,UAAW3jB,EAAMyjB,mBAAqB,EACtCqkF,aAAc9nG,EAAM8nG,cAAgB,GACpCs/E,QAASpnL,EAAMonL,SAAW,EAC1BC,SAAUrnL,EAAMqnL,UAAY,EAC5BC,SAAUtnL,EAAMsnL,UAAY,EAC5BC,SAAUvnL,EAAMunL,UAAY,EAC5BC,SAAUxnL,EAAMwnL,UAAY,EAC5BC,WAAYznL,EAAMynL,YAAc,EAChCC,WAAY1nL,EAAM0nL,YAAc,EAChCC,UAAW3nL,EAAM2nL,WAAa,EAC9BC,UAAW5nL,EAAM4nL,WAAa,EAC9BC,UAAW7nL,EAAM6nL,WAAa,EAC9BC,UAAW9nL,EAAM8nL,WAAa,EAC9BC,SAAU/nL,EAAM+nL,UAAY,EAC5BC,SAAUhoL,EAAMgoL,UAAY,GAE7BtL,EAAe4J,QAAQ3oK,IAAI3d,EAAMsJ,KAAO,CACvCs9K,KAAM5mL,EAAM6mL,SAAW,EACvBC,KAAM9mL,EAAM+mL,UAAY,EACxBJ,OAAQ3mL,EAAM2mL,QAAU,MAGpBxkK,EAER,KAAKu6J,EAAewC,MAAM/B,eAAekC,QAAQ4I,aAAc,CAC9D,MAAM5qJ,EAAOq/I,EAAewC,MAAMznF,YAAYooF,OAAOllK,EAAQ0iB,MAC7D,MAAO,CACNk3B,eAAgB34D,IAAkBwL,QAClC6jE,KAAM5tC,EAAK4tC,KACX6oE,QAASz2G,EAAKy2G,QACdo0C,WAAY7qJ,EAAK8qJ,aAAangK,IAAKhoB,GAAUA,EAAM4uB,UACnD0hE,SAAUjzD,EAAKizD,SACfxkF,GAAIuxB,EAAKvxB,GACTs8K,eAAgB/qJ,EAAK+qJ,eACrBC,WAAYhrJ,EAAKgrJ,WACjBC,SAAUjrJ,EAAKirJ,SACflgK,KAAMiV,EAAKjV,KACX8wH,OAAQ77G,EAAK67G,QAGf,KAAKwjC,EAAewC,MAAM/B,eAAekC,QAAQkJ,YAGhD,OAFa7L,EAAewC,MAAMsJ,cAAc3I,OAAOllK,EAAQ0iB,MAEnD6Z,MAAMlvB,IAAItH,IAAwE,IAAvE,GAAE5U,EAAE,OAAEotI,EAAM,UAAEjlB,EAAS,MAAEh4F,EAAK,OAAEwsJ,EAAM,SAAEC,EAAQ,KAAEv3K,EAAI,QAAEqgC,GAAS9wB,EAGvF,MAAO,CACNuqD,KAAMz5B,EACN8+C,SAAUr0D,EACVnwB,GAAI4hB,OAAO5hB,GAGXsc,KAA2B,IAApBsF,OAAOumG,IAAqB,EACnCilB,OAAQA,KAIX,KAAKwjC,EAAewC,MAAM/B,eAAekC,QAAQsJ,YAAa,CAC7D,MAAMtrJ,EAAOq/I,EAAewC,MAAMp4K,WAAW+4K,OAAOllK,EAAQ0iB,MACtD8zH,EAAc11I,OAAOqf,KAAK4hJ,EAAewC,MAAM0J,mBAAmBv/K,KACtEmhB,GACAkyJ,EAAewC,MAAM0J,kBAAkBp+J,IACvC6S,EAAKwrJ,SAEDl3B,EAAa,CAClBp9F,eAAgB34D,IAAkBkL,WAClC2oC,OAAQpS,EAAKoS,OACbrnB,KAAMiV,EAAKjV,KAAKs7I,UAChBolB,UAAWzrJ,EAAKyrJ,UAChBnuK,QAAS0iB,EAAK1iB,QACdw2I,YAAaA,GAMd,OAJAQ,EAAWC,OACVv0H,EAAKyrJ,YAAcpM,EAAewC,MAAMp4K,WAAWiiL,UAAUC,eAC1D,CAAC,CAAEruK,QAAS0iB,EAAK1iB,QAAS+d,MAAO2E,EAAK1iB,QAASw2I,YAAaA,IAC5D,CAAC,CAAEx2I,QAAS0iB,EAAK1iB,QAASw2I,YAAaA,IACpCQ,EAER,KAAK+qB,EAAewC,MAAM/B,eAAekC,QAAQ4J,QAAS,CACzD,MAAM5rJ,EAAOq/I,EAAewC,MAAM94K,YAAYy5K,OAAOllK,EAAQ0iB,MAU7D,MATiC,CAChCk3B,eAAgB34D,IAAkBwK,YAClCmpC,MAAOlS,EAAKkS,OAAS,GACrBltB,OAAQgb,EAAKhb,QAAU,GACvB/Y,KAAM+zB,EAAK/zB,MAAQ,GACnB4/K,kBAAmB7rJ,EAAK6rJ,kBACxB79G,SAAUhuC,EAAKguC,SACfjrC,KAAM/C,EAAK+C,MAIb,KAAKs8I,EAAewC,MAAM/B,eAAekC,QAAQ8J,gBAAiB,CACjE,MAAM9rJ,EAAOq/I,EAAewC,MAAMkK,cAAcvJ,OAAOllK,EAAQ0iB,MACzDs0H,EAAa,CAClBp9F,eAAgB34D,IAAkBkL,WAClC2oC,OAAQpS,EAAKoS,OACb45I,QAAShsJ,EAAKgsJ,QACdjrB,UAAW/gI,EAAK+gI,UAChBxM,OAAQ,IAeT,OAbAv0H,EAAKisJ,WAAW5kK,QAAS1kB,IACxB4mB,QAAQ67B,MAAM,cAADlhD,OAAevB,EAAM2a,UAClC,MAAMw2I,EAAc11I,OAAOqf,KAAK4hJ,EAAewC,MAAM0J,mBAAmBv/K,KACtEmhB,GACAkyJ,EAAewC,MAAM0J,kBAAkBp+J,IACvCxqB,EAAM6oL,SAERl3B,EAAWC,OAAQ/sI,KAClB7kB,EAAM8oL,YAAcpM,EAAewC,MAAMqK,gBAAgBR,UAAUC,eAChE,CAAEruK,QAAS3a,EAAM2a,QAAS+d,MAAO14B,EAAM2a,QAASw2I,YAAaA,GAC7D,CAAEx2I,QAAS3a,EAAM2a,QAASw2I,YAAaA,MAGrCQ,EAER,KAAM+qB,EAAewC,MAAM/B,eAAekC,QAAQmK,SAClD9M,EAAewC,MAAM/B,eAAekC,QAAQoK,UAAY,CACvD,IAAI9lG,EAAkF,GAErFA,EADGhpE,EAAQykK,YAAc1C,EAAewC,MAAM/B,eAAekC,QAAQoK,UACzD/M,EAAewC,MAAMlmJ,UAAU6mJ,OAAOllK,EAAQ0iB,MAAMvS,SAEpD,CAAC4xJ,EAAewC,MAAMz7F,SAASo8F,OAAOllK,EAAQ0iB,OAG3D,IAAIqsJ,GAAiB,EACrB,MAAMh6K,EAAqB1O,IAASG,QAAQzB,KAK5C,OAJIgQ,IACHg6K,EAAiBh6K,EAAmB1Q,gBAG9B2kF,EACL37D,IAAKhoB,IACL,SAAS2pL,EAAmB1iK,GAC3B,OAAIA,GACIyiK,EAAiBnpK,KAAKmL,MAAMzE,GAE7BA,EAGR,IAAIs4F,EAAav/G,EAAMu/G,WAAaoqE,EAAmB3pL,EAAMu/G,YAAc,EACvE1zF,EAAO7rB,EAAM6rB,KAAO89J,EAAmB3pL,EAAM6rB,MAAQ,EACrDJ,EAAck+J,EAAmB3pL,EAAMyrB,aAEvCE,OAAgCnhB,EAKpC,OAJIxK,EAAMie,QAAUy+J,EAAewC,MAAMz7F,SAASmmG,cAAcC,SAC/Dl+J,GAAaF,GAAe,IAAM8zF,GAAc,IAAM1zF,GAAQ,IAGxD,CACN0oC,eAAgB34D,IAAkBmL,gBAClC4oB,IAAK3vB,EAAMyvC,OACXxxB,MAAOxC,OAAOqf,KAAK4hJ,EAAewC,MAAMz7F,SAASmmG,eAAevgL,KAC9DmhB,GACAkyJ,EAAewC,MAAMz7F,SAASmmG,cAC7Bp/J,IACIxqB,EAAMie,OAEbuD,KAAM/F,OAAOqf,KAAK4hJ,EAAewC,MAAMz7F,SAAS1nF,cAAcsN,KAC5DmhB,GACAkyJ,EAAewC,MAAMz7F,SAAS1nF,aAC7ByuB,IACIxqB,EAAMwhB,MAEblY,KAAMtJ,EAAMsJ,MAAQ,GACpB8rC,EAAGp1C,EAAMqiB,QAAU,GACnBlR,KAAMsK,OAAOqf,KAAK4hJ,EAAewC,MAAMz7F,SAASqmG,cAAczgL,KAC5DmhB,GACAkyJ,EAAewC,MAAMz7F,SAASqmG,aAC7Bt/J,IACIxqB,EAAMmR,MAEb8Z,GAAIjrB,EAAMgrB,UACVE,GAAIlrB,EAAMolB,WACVuoB,IAAK3tC,EAAM2gB,MACXiL,KAAM2zF,EACN1zF,KAAMA,EACNU,IAAKvsB,EAAMssB,SACXynC,GAAsB,MAAlB/zD,EAAMw1C,SAAmBx1C,EAAMw1C,SAASkuH,UAAY,KACxD1vG,GAAuB,MAAnBh0D,EAAMg1D,UAAoBh1D,EAAMg1D,UAAU0uG,UAAY,KAC1Dh2H,GAA4B,MAAxB1tC,EAAMmzC,eAAyBnzC,EAAMmzC,eAAeuwH,UAAY,KACpE91H,GAAI5tC,EAAM4X,SACVi2B,GAAI7tC,EAAM2X,WACVqU,MAAmB,MAAZhsB,EAAM8L,GAAa4hB,OAAOpM,WAAWthB,EAAM8L,IAAM,KACxD0gB,IAAKxsB,EAAMogB,QACXqL,YAAaA,EAEbE,UAAWg+J,EAAmBh+J,GAC9Bu1B,SAAUlhD,EAAMkhD,SAChBvwB,2BAA4B,IAAIC,IAChCqwB,QAASjhD,EAAMihD,QACfgT,aAAcj0D,EAAMi0D,aACpBC,aAAcl0D,EAAMk0D,aACpBC,cAAen0D,EAAMm0D,cACrBC,cAAep0D,EAAMo0D,cACrBxlB,aAAc5uC,EAAM4uC,gBAGrBlzB,SAEH,KAAKghK,EAAewC,MAAM/B,eAAekC,QAAQ0K,SAAU,CAC1D,MAAM1sJ,EAAOq/I,EAAewC,MAAM8K,oBAAoBnK,OAAOllK,EAAQ0iB,MAYrE,MAXuC,CACtCk3B,eAAgB34D,IAAkBouL,oBAClCz6I,MAAOlS,EAAK4sJ,QACZ5nK,OAAQgb,EAAKhb,OACb/Y,KAAM+zB,EAAK/zB,KACX4gL,IAAK7sJ,EAAK6sJ,IACVC,MAAO9sJ,EAAK8sJ,MACZC,MAAO/sJ,EAAK+sJ,MAAM1mB,UAClBlyI,OAAQ6L,EAAK7L,OAAOkyI,UACpB2mB,QAAShtJ,EAAKgtJ,QAAQ3mB,WAIxB,KAAKgZ,EAAewC,MAAM/B,eAAekC,QAAQiL,MAAO,CACvD,MAAMjtJ,EAAOq/I,EAAewC,MAAMqL,aAAa1K,OAAOllK,EAAQ0iB,MAK9D,MAJmC,CAClCk3B,eAAgB34D,IAAkB2uL,aAClC7xJ,MAAO2E,EAAK3E,OAId,KAAKgkJ,EAAewC,MAAM/B,eAAekC,QAAQmL,eAAgB,CAChE,MAAMntJ,EAAOq/I,EAAewC,MAAMl4K,qBAAqB64K,OAAOllK,EAAQ0iB,MAChEhqB,EAA6C,CAClDkhD,eAAgB34D,IAAkBoL,qBAClCqb,OAAQgb,EAAKhb,OACbooK,eAAgB,IAQjB,OALIptJ,EAAKotJ,gBAAkB3oK,MAAMC,QAAQsb,EAAKotJ,iBAC7CptJ,EAAKotJ,eAAe/lK,QAAS1kB,IAC5BqT,EAAqBo3K,eAAe5lK,KAAK7kB,KAGpCqT,EAER,KAAKqpK,EAAewC,MAAM/B,eAAekC,QAAQqL,gBAAiB,CACjE,MAAMrtJ,EAAOq/I,EAAewC,MAAMj4K,sBAAsB44K,OAAOllK,EAAQ0iB,MACjE/pB,EAA+C,CACpDihD,eAAgB34D,IAAkBqL,sBAClCob,OAAQgb,EAAKhb,OACbsoK,WAAY,IAab,OAVIttJ,EAAKk+B,UAAYz5C,MAAMC,QAAQsb,EAAKk+B,WACvCl+B,EAAKk+B,SAAS72C,QAAS1kB,IACtBsT,EAAsBq3K,WAAW9lK,KAAK,CACrC0M,KAAMvxB,EAAMuxB,KACZk5J,eAAgBzqL,EAAMyqL,eACtBG,WAAY5qL,EAAM4qL,WAClBC,QAAS7qL,EAAM6qL,YAIXv3K,EAER,KAAKopK,EAAewC,MAAM/B,eAAekC,QAAQyL,UAAW,CAC3D,MAAMztJ,EAAOq/I,EAAewC,MAAMh4K,gBAAgB24K,OAAOllK,EAAQ0iB,MAajE,MAZyC,CACxCk3B,eAAgB34D,IAAkBsL,gBAClCmb,OAAQgb,EAAKhb,OACb/Y,KAAM+zB,EAAK/zB,KACXmhL,eAAgBptJ,EAAKotJ,eACrB/yH,WAAYr6B,EAAKq6B,WACjBknD,cAAevhF,EAAKuhF,cACpBvpE,KAAMhY,EAAKgY,KACXE,IAAKlY,EAAKkY,IACVs6H,IAAKxyI,EAAKwyI,IACVD,IAAKvyI,EAAKuyI,KAIZ,KAAK8M,EAAewC,MAAM/B,eAAekC,QAAQ0L,WAAY,CAC5D,MAAM1tJ,EAAOq/I,EAAewC,MAAM/3K,iBAAiB04K,OAAOllK,EAAQ0iB,MAC5D7pB,EAAqC,CAC1C+gD,eAAgB34D,IAAkBuL,iBAClCkb,OAAQgb,EAAKhb,OACb2oK,iBAAkB3tJ,EAAK4tJ,gBACvB1vH,SAAUl+B,EAAKk+B,SACf2vH,WAAY7tJ,EAAK6tJ,WACjBC,OAAQ9tJ,EAAK8tJ,OACbnvJ,MAAO,IAmBR,OAhBIqB,EAAK1Y,MAAQ7C,MAAMC,QAAQsb,EAAK1Y,OACnC0Y,EAAK1Y,KAAKD,QAAS1kB,IAClBwT,EAAiBwoB,MAAMnX,KAAK,CAC3B0vC,eAAgB34D,IAAkBsL,gBAClCmb,OAAQriB,EAAMqiB,OACd/Y,KAAMtJ,EAAMsJ,KACZmhL,eAAgBzqL,EAAMyqL,eACtB/yH,WAAY13D,EAAM03D,WAClBknD,cAAe5+G,EAAM4+G,cACrBvpE,KAAMr1C,EAAMq1C,KACZE,IAAKv1C,EAAMu1C,IACXs6H,IAAK7vK,EAAM6vK,IACXD,IAAK5vK,EAAM4vK,QAIPp8J,EAER,KAAKkpK,EAAewC,MAAM/B,eAAekC,QAAQ+L,qBAAsB,CACtE,MAAM/tJ,EAAOq/I,EAAewC,MAAMmM,sBAAsBxL,OAAOllK,EAAQ0iB,MACvE,MAAO,CACNhb,OAAQgb,EAAKhb,OACbsC,KAAM0Y,EAAK1Y,OAKfiC,QAAQ67B,MAAM,8CAADlhD,OAA+CoZ,EAAQykK,YAIrE,6BACC,OAAOx/K,KAAK+8K,iBAGb,kBACC,OAAO/8K,KAAKg9K,MAAM98K,WAGnB,mBACC,OAAOF,KAAKi9K,OAAO/8K,WAGpB,oBACC,OAAOF,KAAK0mL,QAGb,2BACC,OAAO1mL,KAAK0rL,eAAexrL,WAGpBU,eAER,2BACCw5E,GAEA,MAAMh6E,EAAQJ,KAAKs/K,MAAMqM,eAAeC,UAAUxxG,GAClD,OAAgB,MAATh6E,EAAgBA,EAAQJ,KAAKs/K,MAAMqM,eAAeC,UAAUC,WAGpE,2BACCp3G,GAEA,MAAMr0E,EAAQJ,KAAKs/K,MAAMqM,eAAeG,UAAUr3G,GAClD,OAAgB,MAATr0E,EAAgBA,EAAQJ,KAAKs/K,MAAMqM,eAAeG,UAAUC,aAGpE,0BAAkCp7I,GACjC,GAAkB,MAAdA,EACH,OAAO,KAER,MAAMq7I,EAAQ,IAAI9kK,KAClB,OAAQypB,GACP,IAAK,UACJq7I,EAAMlkK,SAAS,GAAI,GAAI,GAAI,KAC3B,MAED,IAAK,WACJkkK,EAAMpkK,QAAQokK,EAAMnkK,UAAY,GAChC,MAED,IAAK,YACJmkK,EAAM5gB,SAAS4gB,EAAMjiK,WAAa,GAClC,MAED,IAAK,UACL,QACC,MAA6B,kBAAf4mB,GAA2Bs7I,SAASt7I,GAAcA,EAAa,KAG/E,OAAOq7I,EAAMrhK,UAGd,oBACCimB,GAEA,MAAMxwC,EAAQJ,KAAKs/K,MAAM4M,gBAAgBC,UAAUv7I,GACnD,OAAgB,MAATxwC,EAAgBA,EAAQJ,KAAKs/K,MAAM4M,gBAAgBC,UAAUC,YAGrE,oBACCt7I,GAEA,MAAM1wC,EAAQJ,KAAKs/K,MAAM4M,gBAAgBG,UAAUv7I,GACnD,OAAgB,MAAT1wC,EAAgBA,EAAQJ,KAAKs/K,MAAM4M,gBAAgBG,UAAUC,aAYtEpP,EAtzDMJ,IACU4J,aAAO,EADjB5J,EAEmBC,iBAAmB,IAAIxgL,IAAK,IAAM4gL,GAFrDL,EAGmBE,MAAQ,IAAIzgL,IAAK,IAAM6gL,IAASC,KAAKC,SAASR,EAAeC,iBAAiB78K,aAHjG48K,EAImBG,OAAS,IAAI1gL,IAAK,KACzC,MAAMgwL,EAAOzP,EAAeE,MAAM98K,WAClC,MAAO,CACNssL,SAAWD,EAAKE,iBAAiB,mDAC/B3wK,OACF4wK,UAAYH,EAAKE,iBAAiB,oDAChC3wK,OACF6wK,iBAAmBJ,EAAKE,iBAAiB,2DACvC3wK,OACF8wK,aAAcL,EAAK/O,WAClB,uDAEDqP,sBAAuBN,EAAK/O,WAC3B,gEAEDsP,iBAAkBP,EAAK/O,WACtB,2DAEDuP,oBAAqBR,EAAK/O,WACzB,8DAEDwP,KAAMT,EAAK/O,WACV,+CAED52K,KAAM2lL,EAAK/O,WACV,+CAEDyP,gBAAiBV,EAAK/O,WACrB,0DAED0P,cAAeX,EAAK/O,WACnB,wDAED92K,kBAAmB6lL,EAAK/O,WACvB,4DAED72K,qBAAsB4lL,EAAK/O,WAC1B,+DAEDmG,cAAe4I,EAAK/O,WACnB,wDAEDiI,MAAO8G,EAAK/O,WACX,gDAED2P,mBAAoBZ,EAAK/O,WACxB,6DAGDmO,eAAgBY,EAAK/O,WACpB,yDAED4P,wBAAyBb,EAAK/O,WAC7B,kEAEDsF,iBAAkByJ,EAAK/O,WACtB,2DAEDj3K,YAAagmL,EAAK/O,WACjB,sDAEDl3K,iBAAkBimL,EAAK/O,WACtB,2DAEDh3K,YAAa+lL,EAAK/O,WACjB,sDAGD6P,aAAcd,EAAK/O,WAClB,uDAED8P,SAAUf,EAAK/O,WACd,mDAED32K,UAAW0lL,EAAK/O,WACf,oDAGD+P,mBAAoBhB,EAAK/O,WACxB,6DAED/1K,WAAY8kL,EAAK/O,WAChB,qDAEDmH,YAAa4H,EAAK/O,WACjB,sDAGDgQ,uBAAwBjB,EAAK/O,WAC5B,iEAED8H,eAAgBiH,EAAK/O,WACpB,yDAED6H,gBAAiBkH,EAAK/O,WACrB,0DAGDiQ,wBAAyBlB,EAAK/O,WAC7B,kEAEDv2K,gBAAiBslL,EAAK/O,WACrB,0DAGDkQ,uBAAwBnB,EAAK/O,WAC5B,iEAEDmQ,kBAAmBpB,EAAK/O,WACvB,4DAEDyE,WAAYsK,EAAK/O,WAChB,qDAED51K,qBAAsB2kL,EAAK/O,WAC1B,+DAED12K,eAAgBylL,EAAK/O,WACpB,yDAEDoQ,2BAA4BrB,EAAK/O,WAChC,qEAEDqQ,4BAA6BtB,EAAK/O,WACjC,sEAEDwI,wBAAyBuG,EAAK/O,WAC7B,kEAEDsQ,uBAAwBvB,EAAK/O,WAC5B,iEAED2I,gBAAiBoG,EAAK/O,WACrB,0DAGDuQ,mBAAoBxB,EAAK/O,WACxB,6DAEDj4K,YAAagnL,EAAK/O,WACjB,sDAGDwQ,qBAAsBzB,EAAK/O,WAC1B,+DAED/3K,cAAe8mL,EAAK/O,WACnB,wDAGDyQ,oBAAqB1B,EAAK/O,WACzB,8DAEDmF,aAAc4J,EAAK/O,WAClB,uDAGD0Q,mCACC3B,EAAKE,iBAAiB,8EACrB3wK,OACFqyK,uBAAwB5B,EAAK/O,WAC5B,iEAGD4Q,6BAA8B7B,EAAK/O,WAClC,mEAGDiO,sBAAuBc,EAAK/O,WAC3B,4DAGD6Q,kBAAmB9B,EAAK/O,WACvB,4DAEDiJ,mBAAoB8F,EAAK/O,WACxB,6DAGD8Q,iBAAkB/B,EAAK/O,WACtB,2DAED+Q,kBAAmBhC,EAAK/O,WACvB,4DAGDgR,uBAAwBjC,EAAK/O,WAC5B,iEAEDiR,yBAA0BlC,EAAK/O,WAC9B,mEAGDwL,kBAAoBuD,EAAKE,iBAAiB,4DACxC3wK,OACF5U,WAAYqlL,EAAK/O,WAChB,qDAEDgM,cAAe+C,EAAK/O,WACnB,wDAEDmM,gBAAiB4C,EAAK/O,WACrB,0DAGD35F,SAAU0oG,EAAK/O,WACd,mDAEDpkJ,UAAWmzJ,EAAK/O,WACf,oDAGD0O,gBAAiBK,EAAK/O,WACrB,0DAEDkR,gBAAiBnC,EAAK/O,WACrB,0DAEDmR,oBAAqBpC,EAAK/O,WACzB,8DAEDoR,iBAAkBrC,EAAK/O,WACtB,2DAEDqR,kBAAmBtC,EAAK/O,WACvB,4DAEDsR,yBAA0BvC,EAAK/O,WAC9B,mEAGDuR,4BAA6BxC,EAAK/O,WACjC,sEAEDp2K,qBAAsBmlL,EAAK/O,WAC1B,+DAEDwR,6BAA8BzC,EAAK/O,WAClC,uEAEDn2K,sBAAuBklL,EAAK/O,WAC3B,gEAEDyR,4BAA6B1C,EAAK/O,WACjC,sEAED0R,+BAAgC3C,EAAK/O,WACpC,yEAED2R,sCAAuC5C,EAAK/O,WAC3C,gFAEDl2K,gBAAiBilL,EAAK/O,WACrB,0DAEDj2K,iBAAkBglL,EAAK/O,WACtB,2DAGD4R,uBAAwB7C,EAAK/O,WAC5B,iEAED6R,sBAAuB9C,EAAK/O,WAC3B,gEAGD8R,sBAAuB/C,EAAK/O,WAC3B,gEAED31K,eAAgB0kL,EAAK/O,WACpB,yDAGD+R,YAAahD,EAAK/O,WACjB,sDAEDgS,qBAAsBjD,EAAK/O,WAC1B,+DAEDiS,kBAAmBlD,EAAK/O,WACvB,4DAEDkS,kBAAmBnD,EAAK/O,WACvB,4DAED3lF,YAAa00F,EAAK/O,WACjB,sDAEDmS,aAAcpD,EAAK/O,WAClB,uDAEDoS,gBAAiBrD,EAAK/O,WACrB,0DAEDqS,iBAAkBtD,EAAK/O,WACtB,2DAEDsS,gBAAiBvD,EAAK/O,WACrB,0DAEDuS,kBAAmBxD,EAAK/O,WACvB,4DAEDoL,cAAe2D,EAAK/O,WACnB,wDAEDwS,eAAgBzD,EAAK/O,WACpB,yDAED4M,oBAAqBmC,EAAK/O,WACzB,8DAEDmN,aAAc4B,EAAK/O,WAClB,uDAEDD,eAAgBgP,EAAK/O,WACpB,4DAhUEV,EAqUmB4O,eAAiB,IAAInvL,IAAK,KACR,CACxCklE,KAAM,CACL,CAAC3/D,IAAU,MAAI,CACdsmB,IAAMrN,GACE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQC,KACvDjiJ,KAAMq/I,EAAewC,MAAM0N,KAAKzM,OAAO,IAAIC,YAY9C,CAAC1+K,IAAgB,YAAI,CACpBsmB,IAAMrN,GACE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQwQ,UACvDxyJ,KAAMq/I,EAAewC,MAAM+N,aAAa9M,OAAO,IAAIC,YAItD,CAAC1+K,IAAoB,gBAAI,CACxBsmB,IAAMrN,GACE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQyQ,cACvDzyJ,KAAMq/I,EAAewC,MAAMiO,mBAAmBhN,OAAO,CAAE99J,OAAQ1H,EAAQ0H,SAAU+9J,YAIpF,CAAC1+K,IAAwB,oBAAI,CAC5BsmB,IAAMrN,GACE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQ0Q,mBACvD1yJ,KAAMq/I,EAAewC,MAAMkO,uBAAuBjN,OAAO,CAAE99J,OAAQ1H,EAAQ0H,SAAU+9J,YAIxF,CAAC1+K,IAAwB,oBAAI,CAC5BsmB,IAAMrN,GACE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQ2Q,gBACvD3yJ,KAAMq/I,EAAewC,MAAMoO,uBAAuBnN,OAAO,CAAE7tC,WAAY33H,IAAWylK,YAIrF,CAAC1+K,IAAyB,qBAAI,CAC7BsmB,IAAMrN,GACE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQ4Q,iBACvD5yJ,KAAMq/I,EAAewC,MAAMmO,wBAAwBlN,OAAO,IAAIC,YAIjE,CAAC1+K,IAAmB,eAAI,CACvBsmB,IAAMrN,IACL,IAAI0iB,EA2BJ,OAzBCA,EADG1iB,EAAQkwE,WAAalwE,EAAQwuE,QACzBuzF,EAAewC,MAAMqM,eAAepL,OAAO,CACjD5wI,MAAO50B,EAAQ40B,MACfrD,OAAQwwI,EAAewC,MAAMqM,eAAe/H,OAAO0M,SACnD7tK,OAAQ1H,EAAQ0H,OAChB/Y,KAAMqR,EAAQrR,KACd+qE,UAAWqoG,EAAeyT,oBAAoBx1K,EAAQ05D,WACtD2F,UAAW0iG,EAAe0T,oBAAoBz1K,EAAQq/D,WACtD6Q,UAAWlwE,EAAQkwE,UACnB1B,QAASxuE,EAAQwuE,UAGXuzF,EAAewC,MAAMqM,eAAepL,OAAO,CACjD5wI,MAAO50B,EAAQ40B,MACfrD,OACCvxB,EAAQuxB,SAAWlwC,IAAmBq0L,UACnC3T,EAAewC,MAAMqM,eAAe/H,OAAOC,UAC3C/G,EAAewC,MAAMqM,eAAe/H,OAAOE,YAC/CrhK,OAAQ1H,EAAQ0H,OAChB/Y,KAAMqR,EAAQrR,KACd+qE,UAAWqoG,EAAeyT,oBAAoBx1K,EAAQ05D,WACtD2F,UAAW0iG,EAAe0T,oBAAoBz1K,EAAQq/D,WACtDs2G,UAAW31K,EAAQ41K,WAAa,OAI3B7T,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQmR,YACvDnzJ,KAAMA,EAAK+iJ,aAId,CAAC1+K,IAAuB,mBAAI,CAC3BsmB,IAAMrN,GACE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQoR,qBACvDpzJ,KAAMq/I,EAAewC,MAAMgQ,sBAAsB/O,OAAO,CACvD72K,KAAMqR,EAAQrR,OACZ82K,YAIN,CAAC1+K,IAAuB,mBAAI,CAC3BsmB,IAAMrN,GACE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQqR,kBACvDrzJ,KAAMq/I,EAAewC,MAAM8N,wBAAwB7M,OAAO,CACzD99J,OAAQ1H,EAAQ0H,OAChB/Y,KAAMqR,EAAQrR,KACds5K,YAAajoK,EAAQgoK,eACnBvC,YAIN,CAAC1+K,IAAkB,cAAI,CACtBsmB,IAAMrN,IACL,MAAMic,EAAYjc,EAAQuxB,SAAWlwC,IAAmBq0L,UACxD,IAAI/3H,EAAkB,GAiBtB,OAhBA39C,EAAQnO,YAAYkY,QAAS1F,IACxB4X,GACoC,IAAnC5X,EAAW+lK,qBACdzsH,EAAMzzC,KAAK7F,EAAW1V,MAEvB0V,EAAW+lK,wBAGX/lK,EAAW+lK,oBAAsBxkK,KAAK4M,IAAI,EAAGnO,EAAW+lK,oBAAsB,GACvC,IAAnC/lK,EAAW+lK,qBACdzsH,EAAMzzC,KAAK7F,EAAW1V,SAMlBozK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQiE,WACvDjmJ,KAAMq/I,EAAewC,MAAMqE,cAAcpD,OAAO,CAC/Cj0I,OAAQtV,EACL8lJ,EAAewC,MAAMqE,cAAcC,OAAOC,UAC1C/G,EAAewC,MAAMqE,cAAcC,OAAOE,YAC7CrhK,OAAQ1H,EAAQ0H,OAChB/Y,KAAMgvD,IACJ8nH,aAIN,CAAC1+K,IAAuB,mBAAI,CAC3BsmB,IAAMrN,GACE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQsR,SACvDtzJ,KAAMq/I,EAAewC,MAAMiQ,YAAYhP,OAAO,CAC7Cj0I,OACCvxB,EAAQuxB,SAAWlwC,IAAmBq0L,UACnC3T,EAAewC,MAAMiQ,YAAY3L,OAAOC,UACxC/G,EAAewC,MAAMiQ,YAAY3L,OAAOE,YAC5CkN,SAAUj2K,EAAQi2K,WAChBxQ,YAIN,CAAC1+K,IAAyB,qBAAI,CAC7BsmB,IAAMrN,GACE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQwR,gBACvDxzJ,KAAMq/I,EAAewC,MAAMkQ,qBAAqBjP,OAAO,CACtDvpJ,UAAWjc,EAAQic,YACjBwpJ,YAIN,CAAC1+K,IAAyB,qBAAI,CAC7BsmB,IAAMrN,GACE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQyR,qBACvDzzJ,KAAMq/I,EAAewC,MAAMsO,2BAA2BrN,OAAO,CAC5D1wI,OAAQ90B,EAAQo2K,mBACd3Q,YAIN,CAAC1+K,IAA0B,sBAAI,CAC9BsmB,IAAMrN,GACE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQ2R,sBACvD3zJ,KAAMq/I,EAAewC,MAAMuO,4BAA4BtN,OAAO,CAC7D1wI,OAAQ90B,EAAQotH,UACdq4C,YAIN,CAAC1+K,IAAwB,oBAAI,CAC5BsmB,IAAMrN,GACE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQ4R,kBACvD5zJ,KAAMq/I,EAAewC,MAAMyO,mBAAmBxN,OAAO,CACpDuB,QAAS/mK,EAAQ+mK,UACftB,YAIN,CAAC1+K,IAA2B,uBAAI,CAC/BsmB,IAAMrN,GACE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQ6R,gBACvD7zJ,KAAMq/I,EAAewC,MAAMqO,kBAAkBpN,OAAO,CACnD5wI,MAAO50B,EAAQ40B,MACf4hJ,QAASx2K,EAAQw2K,UACf/Q,YAIN,CAAC1+K,IAA0B,sBAAI,CAC9BsmB,IAAMrN,GAEE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQ+R,oBACvD/zJ,KAAMq/I,EAAewC,MAAM0O,qBAAqBzN,OAAO,CACtD7wJ,UAAW3U,EAAQ2U,YACjB8wJ,YAIN,CAAC1+K,IAAyB,qBAAI,CAC7BsmB,IAAMrN,IACLiM,QAAQf,KAAK,+BAAgC,CAAElL,YAExC+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQgS,kBACvDh0J,KAAMq/I,EAAewC,MAAM2O,oBAAoB1N,OAAO,CACrD5wI,MAAO50B,EAAQ40B,MACf9/B,OAAQkL,EAAQlL,OAChBggC,OAAQ90B,EAAQ80B,OAChB5tB,OAAQlH,EAAQkH,OAChBL,KAAM7G,EAAQ6G,OACZ4+J,aAIN,CAAC1+K,IAAmB,eAAI,CACvBsmB,IAAMrN,GACE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQiS,mBACvDj0J,KAAMq/I,EAAewC,MAAMwO,uBAAuBvN,OAAO,CACxD6F,SAAUrrK,EAAQ2U,YAChB8wJ,YAIN,CAAC1+K,IAAgB,YAAI,CACpBsmB,IAAMrN,IACLiM,QAAQ6+C,IAAI,qBAADlkE,OAAsBoZ,EAAQqR,QAClC0wJ,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQkS,gBACvDl0J,KAAMq/I,EAAewC,MAAMuP,kBAAkBtO,OAAO,CACnD1wI,OAAQ90B,EAAQmxF,YAChB9/E,MAAM,GAADzqB,OAAKoZ,EAAQqR,SAChBo0J,aAIN,CAAC1+K,IAAe,WAAI,CACnBsmB,IAAMrN,GACE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQmS,eACvDn0J,KAAMq/I,EAAewC,MAAMsP,iBAAiBrO,OAAO,CAClD5wI,MAAM,GAADhuC,OAAKoZ,EAAQ40B,OAClBE,OAAQ90B,EAAQ80B,OAChBzjB,MAAM,GAADzqB,OAAKoZ,EAAQqR,OAClB0iB,UAAW/zB,EAAQ+zB,UAAS,GAAAntC,OAAMoZ,EAAQ+zB,WAAc,KACxDC,WAAYh0B,EAAQg0B,WAAU,GAAAptC,OAAMoZ,EAAQg0B,YAAe,KAC3D2B,WAAY31B,EAAQ21B,WAAU,GAAA/uC,OAAMoZ,EAAQ21B,YAAe,KAC3DC,WAAY51B,EAAQ41B,WAAamsI,EAAe+U,mBAAmB92K,EAAQ41B,YAAc,KACzF3B,aAAcj0B,EAAQi0B,aAAY,GAAArtC,OAAMoZ,EAAQi0B,cAAiB,OAC/DwxI,YAIN,CAAC1+K,IAAkB,cAAI,CACtBsmB,IAAMrN,GACE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQqS,aACvDr0J,KAAMq/I,EAAewC,MAAMqP,oBAAoBpO,OAAO,CACrD5wI,MAAM,GAADhuC,OAAKoZ,EAAQ40B,OAClBE,OAAQ90B,EAAQ80B,OAChBzjB,MAAM,GAADzqB,OAAKoZ,EAAQqR,OAClB0iB,UAAW/zB,EAAQ+zB,UAAS,GAAAntC,OAAMoZ,EAAQ+zB,WAAc,KACxDC,WAAYh0B,EAAQg0B,WAAU,GAAAptC,OAAMoZ,EAAQg0B,YAAe,KAC3DC,aAAcj0B,EAAQi0B,aAAY,GAAArtC,OAAMoZ,EAAQi0B,cAAiB,OAC/DwxI,YAIN,CAAC1+K,IAAc,UAAI,CAClBsmB,IAAMrN,IACL,MAAM0iB,EAAO,CACZs0J,YAAa,CACZpiJ,MAAM,GAADhuC,OAAKoZ,EAAQ40B,OAClBE,OAAQ90B,EAAQ80B,OAChBptB,OAAQ1H,EAAQ0H,OAChB/Y,KAAMqR,EAAQrR,KACdmnC,UAAU,GAADlvC,OAAKoZ,EAAQ81B,WACtBD,UAAWksI,EAAekV,aAAaj3K,EAAQ61B,WAC/CE,UAAWgsI,EAAemV,aAAal3K,EAAQ+1B,WAC/ChC,UAAW/zB,EAAQ+zB,UAAS,GAAAntC,OAAMoZ,EAAQ+zB,WAAc,KACxDC,WAAYh0B,EAAQg0B,WAAU,GAAAptC,OAAMoZ,EAAQg0B,YAAe,KAC3DC,aAAcj0B,EAAQi0B,aAAY,GAAArtC,OAAMoZ,EAAQi0B,cAAiB,MAElE0B,WAAY31B,EAAQ21B,WAAU,GAAA/uC,OAAMoZ,EAAQ21B,YAAe,KAC3DC,WAAY51B,EAAQ41B,WAAamsI,EAAe+U,mBAAmB92K,EAAQ41B,YAAc,MAE1F,OAAOmsI,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQyS,cACvDz0J,KAAMq/I,EAAewC,MAAMoP,gBAAgBnO,OAAO9iJ,GAAM+iJ,aAI3D,CAAC1+K,IAAc,UAAI,CAClBsmB,IAAMrN,GACE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQ0S,cACvD10J,KAAMq/I,EAAewC,MAAM4M,gBAAgB3L,OAAO,CACjD5wI,MAAM,GAADhuC,OAAKoZ,EAAQ40B,OAClBE,OAAQ90B,EAAQ80B,OAChBptB,OAAQ1H,EAAQ0H,OAChB/Y,KAAMqR,EAAQrR,KACdmnC,UAAU,GAADlvC,OAAKoZ,EAAQ81B,WACtBD,UAAWksI,EAAekV,aAAaj3K,EAAQ61B,WAC/C9B,UAAW/zB,EAAQ+zB,UAAS,GAAAntC,OAAMoZ,EAAQ+zB,WAAc,KACxDC,WAAYh0B,EAAQg0B,WAAU,GAAAptC,OAAMoZ,EAAQg0B,YAAe,KAC3DC,aAAcj0B,EAAQi0B,aAAY,GAAArtC,OAAMoZ,EAAQi0B,cAAiB,OAC/DwxI,YAIN,CAAC1+K,IAAkB,cAAI,CACtBsmB,IAAMrN,GACE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQ2S,mBACvD30J,KAAMq/I,EAAewC,MAAMwP,yBAAyBvO,OAAO,CAC1D8R,cAAe,CACdjmK,MAAM,GAADzqB,OAAKoZ,EAAQqR,OAClByjB,OAAQ90B,EAAQmxF,aAEjBr8F,OAAQkL,EAAQlL,SACd2wK,YAIN,CAAC1+K,IAA6B,yBAAI,CACjCsmB,IAAMrN,GACE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQ6S,mBACvD70J,KAAMq/I,EAAewC,MAAMyP,4BAA4BxO,OAAO,IAAIC,YAIrE,CAAC1+K,IAA8B,0BAAI,CAClCsmB,IAAMrN,GACE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQ8S,oBACvD90J,KAAMq/I,EAAewC,MAAM0P,6BAA6BzO,OAAO,IAAIC,YAItE,CAAC1+K,IAA6B,yBAAI,CACjCsmB,IAAMrN,GACE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQ+S,mBACvD/0J,KAAMq/I,EAAewC,MAAM2P,4BAA4B1O,OAAO,CAC7DkS,aAAc13K,EAAQ03K,aACtB5H,eAAgB9vK,EAAQ8vK,iBACtBrK,YAIN,CAAC1+K,IAAgC,4BAAI,CACpCsmB,IAAMrN,GACE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQiT,sBACvDj1J,KAAMq/I,EAAewC,MAAM4P,+BAA+B3O,OAAO,CAChE72K,KAAMqR,EAAQrR,KACdmhL,eAAgB9vK,EAAQ8vK,eACxB7zJ,UAAWjc,EAAQic,YACjBwpJ,YAIN,CAAC1+K,IAAuC,mCAAI,CAC3CsmB,IAAMrN,GACE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQkT,8BACvDl1J,KAAMq/I,EAAewC,MAAM6P,sCAAsC5O,OAAO,CACvE5kH,SAAU5gD,EAAQ4gD,SAClBkvH,eAAgB9vK,EAAQ8vK,eACxB7zJ,UAAWjc,EAAQic,YACjBwpJ,YAIN,CAAC1+K,IAAwB,oBAAI,CAC5BsmB,IAAMrN,GACE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQmT,mBACvDn1J,KAAMq/I,EAAewC,MAAM6O,uBAAuB5N,OAAO,CACxD1wI,OAAQ90B,EAAQ83K,MAChB19K,aAAc4F,EAAQ5F,eACpBqrK,YAIN,CAAC1+K,IAAgC,4BAAI,CACpCsmB,IAAMrN,GACE+hK,EAAewC,MAAM/B,eAAegC,WAAW,CACrDC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQqT,yBACvDr1J,KAAMq/I,EAAewC,MAAM8O,6BAA6B7N,OAAO,CAC9D72K,KAAMqR,EAAQrR,OACZ82K,aAKPxpJ,UAAW,CACV,CAACl1B,IAAuB,mBAAI,CAC3B09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQwD,WACvD76J,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAAiB,aAAI,CACrB09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQoC,cACvDz5J,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAAoB,gBAAI,CACxB09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQuC,YACvD55J,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAAmB,eAAI,CACvB09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQ2C,gBACvDh6J,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAAkB,cAAI,CACtB09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQgD,cACvDr6J,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAA0B,sBAAI,CAC9B09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQ6D,cACvDl7J,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAAU,MAAI,CACd09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQsE,KACvD37J,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAAkB,cAAI,CACtB09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQuE,UACvD57J,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAAgC,4BAAI,CACpC09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQ6E,QACvDl8J,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAAsB,kBAAI,CAC1B09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQiF,SACvDt8J,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAA0B,sBAAI,CAC9B09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQ2F,cACvDh9J,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAAiB,aAAI,CACrB09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQ+F,MACvDp9J,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAAuB,mBAAI,CAC3B09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQmD,iBACvDx6J,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAA+B,2BAAI,CACnC09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQiG,kBACvDt9J,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAAyB,qBAAI,CAC7B09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQkG,WACvDv9J,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAA0B,sBAAI,CAC9B09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQoG,YACvDz9J,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAA8B,0BAAI,CAClC09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQsG,sBACvD39J,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAAmB,eAAI,CACvB09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQyG,eACvD99J,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAAoC,gCAAI,CACxC09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQ+G,uBACvDp+J,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAAsB,kBAAI,CAC1B09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQ4I,aACvDjgK,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAAwB,oBAAI,CAC5B09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQkJ,YACvDvgK,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAAqB,iBAAI,CACzB09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQsJ,YACvD3gK,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAAsB,kBAAI,CAC1B09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQ4J,QACvDjhK,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAA2B,uBAAI,CAC/B09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQoD,cACvDz6J,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAAwB,oBAAI,CAC5B09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQ8J,gBACvDnhK,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAAiC,6BAAI,CACrC09K,UAAW,CACV1C,EAAewC,MAAM/B,eAAekC,QAAQmK,SAC5C9M,EAAewC,MAAM/B,eAAekC,QAAQoK,WAE7CzhK,IAAMrN,IAEL,IAAIgpE,EAAkF,GAErFA,EADGhpE,EAAQykK,YAAc1C,EAAewC,MAAM/B,eAAekC,QAAQoK,UACzD/M,EAAewC,MAAMlmJ,UAAU6mJ,OAAOllK,EAAQ0iB,MAAOvS,SAErD,CAAC4xJ,EAAewC,MAAMz7F,SAASo8F,OAAOllK,EAAQ0iB,OAG3D,IAAIqsJ,GAAiB,EACrB,MAAMh6K,EAAqB1O,IAASG,QAAQzB,KAK5C,SAASiqL,EAAmB1iK,GAC3B,OAAIA,GACIyiK,EAAiBnpK,KAAKmL,MAAMzE,GAE7BA,EAGR,OAXIvX,IACHg6K,EAAiBh6K,EAAmB1Q,gBAU9B2kF,EACL37D,IAAKhoB,IACL,IAAIu/G,EAAav/G,EAAMu/G,WAAaoqE,EAAmB3pL,EAAMu/G,YAAc,EACvE1zF,EAAO7rB,EAAM6rB,KAAO89J,EAAmB3pL,EAAM6rB,MAAQ,EACrDJ,EAAck+J,EAAmB3pL,EAAMyrB,aAEvCE,OAAgCnhB,EAKpC,OAJIxK,EAAMie,QAAUy+J,EAAewC,MAAMz7F,SAASmmG,cAAcC,SAC/Dl+J,GAAaF,GAAe,IAAM8zF,GAAc,IAAM1zF,GAAQ,IAGxD,CACN0oC,eAAgB34D,IAAkBmL,gBAClC4oB,IAAK3vB,EAAMyvC,OACXxxB,MAAOxC,OAAOqf,KAAK4hJ,EAAewC,MAAMz7F,SAASmmG,eAAevgL,KAC9DmhB,GACAkyJ,EAAewC,MAAMz7F,SAASmmG,cAC7Bp/J,IACIxqB,EAAMie,OAEbuD,KAAM/F,OAAOqf,KAAK4hJ,EAAewC,MAAMz7F,SAAS1nF,cAAcsN,KAC5DmhB,GACAkyJ,EAAewC,MAAMz7F,SAAS1nF,aAC7ByuB,IACIxqB,EAAMwhB,MAEblY,KAAMtJ,EAAMsJ,MAAQ,GACpB8rC,EAAGp1C,EAAMqiB,QAAU,GACnBlR,KAAMsK,OAAOqf,KAAK4hJ,EAAewC,MAAMz7F,SAASqmG,cAAczgL,KAC5DmhB,GACAkyJ,EAAewC,MAAMz7F,SAASqmG,aAC7Bt/J,IACIxqB,EAAMmR,MAEb8Z,GAAIjrB,EAAMgrB,UACVE,GAAIlrB,EAAMolB,WACVuoB,IAAK3tC,EAAM2gB,MACXiL,KAAM2zF,EACN1zF,KAAMA,EACNU,IAAKvsB,EAAMssB,SACXynC,GAAsB,MAAlB/zD,EAAMw1C,SAAmBx1C,EAAMw1C,SAASkuH,UAAY,KACxD1vG,GAAuB,MAAnBh0D,EAAMg1D,UAAoBh1D,EAAMg1D,UAAU0uG,UAAY,KAC1Dh2H,GAA4B,MAAxB1tC,EAAMmzC,eAAyBnzC,EAAMmzC,eAAeuwH,UAAY,KACpE91H,GAAI5tC,EAAM4X,SACVi2B,GAAI7tC,EAAM2X,WACVqU,MAAmB,MAAZhsB,EAAM8L,GAAa4hB,OAAOpM,WAAWthB,EAAM8L,IAAM,KACxD0gB,IAAKxsB,EAAMogB,QACXqL,YAAaA,EAEbE,UAAWg+J,EAAmBh+J,GAC9Bu1B,SAAUlhD,EAAMkhD,SAChBvwB,2BAA4B,IAAIC,IAChCqwB,QAASjhD,EAAMihD,QACfgT,aAAcj0D,EAAMi0D,aACpBC,aAAcl0D,EAAMk0D,aACpBC,cAAen0D,EAAMm0D,cACrBC,cAAep0D,EAAMo0D,cACrBxlB,aAAc5uC,EAAM4uC,gBAGrBlzB,WAGJ,CAACha,IAAgB,YAAI,CACpB09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQ0K,SACvD/hK,IAAMrN,GACQ+hK,EAAewC,MAAM8K,oBAAoBnK,OAAOllK,EAAQ0iB,OAIvE,CAAC37B,IAAiB,aAAI,CACrB09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQiL,MACvDtiK,IAAMrN,GACQ+hK,EAAewC,MAAMqL,aAAa1K,OAAOllK,EAAQ0iB,OAIhE,CAAC37B,IAA+B,2BAAI,CACnC09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQmL,eACvDxiK,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAAgC,4BAAI,CACpC09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQqL,gBACvD1iK,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAA0B,sBAAI,CAC9B09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQyL,UACvD9iK,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAA2B,uBAAI,CAC/B09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQ0L,WACvD/iK,IAAMrN,GACE+hK,EAAeiW,cAAch4K,IAGtC,CAACjZ,IAAgC,4BAAI,CACpC09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQ+L,qBACvDpjK,IAAMrN,IACL,MAAM0iB,EAAOq/I,EAAewC,MAAMmM,sBAAsBxL,OAAOllK,EAAQ0iB,MACvE,MAAO,CACNhb,OAAQgb,EAAKhb,OACbsC,KAAM0Y,EAAK1Y,QAId,CAACjjB,IAAyB,qBAAI,CAC7B09K,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQuT,iBACvD5qK,IAAMrN,IACL,MAAM0iB,EAAOq/I,EAAewC,MAAM0Q,eAAe/P,OAAOllK,EAAQ0iB,MAEhE,MAAO,CACN/N,UAAW+N,EAAKoS,OAChBlnC,QAAS80B,EAAK/0B,YAphCfo0K,EA6yDSmW,oBAAuBC,IACpC,OAAQA,GACP,KAAKl3L,IAAkBsK,iBACtB,OAAOw2K,EAAewC,MAAM/B,eAAekC,QAAQ6E,QAErD,OAAOxH,EAAewC,MAAM/B,eAAekC,QAAQ0T,aAMrD,MAAMC,EAOExyL,YAAYyyL,GAAsB,KANxBC,eAAS,OACTC,gBAA6D,IAAIztJ,IAMjF9lC,KAAKszL,UAAYD,EAGVG,sBAAsB/wK,EAAgBi2C,EAAiB1hC,GAC9D,GAAIh3B,KAAKszL,UAAUxvC,UAAW,CAC7B,MAAMx3G,EAAStV,EAAY56B,IAAmBq0L,UAAYr0L,IAAmBq3L,YACvE5uK,EAAiB7kB,KAAKszL,UAAUzuK,eACtC,IAAIjY,EAA4B,GAChC8rD,EAAM5zC,QAASpb,IACd,MAAM0V,EAAayF,EAAekG,IAAI,GAADppB,OAAI8gB,EAAM,KAAA9gB,OAAI+H,IAC/C0V,IACHxS,EAAYqY,KAAK7F,GAGb4X,GAAgD,IAAnC5X,EAAW+lK,sBAA8B/lK,EAAW4yD,iBACpEhyE,KAAKszL,UAAU7xH,KAAK3/D,IAAIqB,kBAAmB,CAAEuG,KAAMA,OAKtD1J,KAAKszL,UAAU7xH,KAAK3/D,IAAIY,aAAc,CAAE4pC,OAAQA,EAAQ7pB,OAAQA,EAAQ7V,YAAaA,KAIvFy1D,oBAAoB5/C,EAAgBi2C,EAAiB/Q,GACpD,MAAM4mD,EAAQnqD,cAgBd,OAfKpkD,KAAKuzL,gBAAgBttJ,IAAIsoE,IAC7BvuG,KAAKuzL,gBAAgBx1K,IAAIwwF,EAAO,CAAC5mD,EAAUllC,EAAQi2C,IAIpDA,EAAM5zC,QAASpb,IACd,MAAM2Z,EAAarjB,KAAKszL,UAAUptK,eAAezD,EAAQ/Y,GACrD2Z,GACHskC,EAAStkC,KAKXrjB,KAAKwzL,sBAAsB/wK,EAAQi2C,GAAO,GAEnC61C,EAGRnsC,sBAAsBmsC,GACrB,MAAMmlF,EAAe1zL,KAAKuzL,gBAAgBxoK,IAAIwjF,GAC1CmlF,IACH1zL,KAAKwzL,sBAAsBE,EAAa,GAAIA,EAAa,IAAI,GAC7D1zL,KAAKuzL,gBAAgB76I,OAAO61D,IAI9BolF,aAAatwK,GACZrjB,KAAKuzL,gBAAgBzuK,QAASiW,IAC7B,MAAO64J,EAAMnxK,EAAQi2C,GAAS39B,EAC1B1X,EAAWmyB,IAAM/yB,GACpBi2C,EAAM5zC,QAASpb,IACV2Z,EAAWuN,IAAMlnB,GACpBkqL,EAAKvwK,OAOVwwK,UACC3xK,MAAMm2B,KAAKr4C,KAAKuzL,gBAAgBr4J,QAAQpW,QAASiW,IAChD/6B,KAAKoiE,sBAAsBrnC,KAE5B/6B,KAAKuzL,gBAAgBxlI,SAKvB,MAAM+lI,EAA0DlzL,cAAA,KAC9C2yL,gBAA8D,IAAIztJ,IAKnF9O,UACCw7I,EACA7qH,GAEA,MAAM4mD,EAAQnqD,cAKd,OAJKpkD,KAAKuzL,gBAAgBttJ,IAAIsoE,IAC7BvuG,KAAKuzL,gBAAgBx1K,IAAIwwF,EAAO,CAAC5mD,EAAU6qH,IAGrCjkE,EAGRl3E,YAAYk3E,GACPvuG,KAAKuzL,gBAAgBttJ,IAAIsoE,IAC5BvuG,KAAKuzL,gBAAgB76I,OAAO61D,GAI9BwlF,aAAat2J,GACZz9B,KAAKuzL,gBAAgBzuK,QAASiW,IAC7B,MAAO64J,EAAMI,GAAej5J,EACxBi5J,IAAgBh4L,IAAkBqK,KAAO2tL,IAAgBv2J,EAAKk3B,gBACjEi/H,EAAKn2J,KAKRo2J,UACC7zL,KAAKuzL,gBAAgBxlI,SAoBvB,MAAMkmI,EAML,SACC,OAAOj0L,KAAKk0L,KAGb,oBACC,OAAOl0L,KAAKuzL,gBAGb,aACC,OAAOvzL,KAAKm0L,SAGNvzL,YAAYm3C,GAA0B,KAjB5Bm8I,UAAI,OACJE,4BAAsB,OACtBD,cAAQ,OACRZ,gBAA4C,GAe5DvzL,KAAKk0L,KAAOn8I,EAAO7rC,GACnBlM,KAAKo0L,uBAAyBr8I,EAAOs8I,qBACrCr0L,KAAKm0L,SAAWp8I,EAAOu8I,6BAA6BC,KACnDv4K,YAAQqH,GAEQ,MAAdA,GACArjB,KAAKw0L,cAAc51J,KAAMx+B,GAAUA,EAAMqiB,SAAWY,EAAWmyB,GAAKp1C,EAAMsJ,OAAS2Z,EAAWuN,KAQ3FoG,UAAU08J,GAChB,OAAO9xJ,IAASU,GAAGoxJ,GACjBtrK,IAAKsrK,GAEExxK,MAAMC,QAAQuxK,GAAgBA,EAAe,CAACA,IAErDtrK,IAAKosK,IAEL,MAAMC,EAA6C,GAYnD,OAXAD,EAAc1vK,QAAS4uK,IAEpB1zL,KAAKuzL,gBAAgB30J,KACpB7D,GAAYA,EAAQrxB,OAASgqL,EAAahqL,MAAQqxB,EAAQtY,SAAWixK,EAAajxK,UAGpFziB,KAAKuzL,gBAAgBtuK,KAAKyuK,GAC1Be,EAAiBxvK,KAAKyuK,OAID,OAAhBe,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB1qL,QAAS,EAC/B/J,KAAKo0L,uBAAuBp0L,KAAKkM,GAAIuoL,EAAkBr4L,IAAmBq0L,WAC1E3zH,QAAQv7D,YAEXuhC,UAAU,IAAMg6B,QAAQv7D,WAMpB81B,YACNq8J,GAKA,OAAO9xJ,IAASU,GAAGoxJ,GACjBtrK,IAAKsrK,GAE0B,oBAAjBA,EACX1zL,KAAKuzL,gBAAgBv3K,OAAO03K,GAC5BxxK,MAAMC,QAAQuxK,GACdA,EACA,CAACA,IAEJtrK,IAAKosK,IAEL,MAAME,EAAkD,GAWxD,OAVAF,EAAc1vK,QAAS4uK,IACtB,MAAMxqK,EAAQlpB,KAAKuzL,gBAAgBn3K,UACjC2e,GAAYA,EAAQrxB,OAASgqL,EAAahqL,MAAQqxB,EAAQtY,SAAWixK,EAAajxK,QAEhFyG,GAAS,IACZlpB,KAAKuzL,gBAAgB19J,OAAO3M,EAAO,GACnCwrK,EAAsBzvK,KAAKyuK,OAID,OAArBgB,QAAqB,IAArBA,OAAqB,EAArBA,EAAuB3qL,QAAS,EACpC/J,KAAKo0L,uBAAuBp0L,KAAKkM,GAAIwoL,EAAuBt4L,IAAmBq3L,aAC/E32H,QAAQv7D,YAEXuhC,UAAU,IAAMg6B,QAAQv7D,YAuB5B,MAAMozL,EAWL,SACC,OAAO30L,KAAKk0L,KAGb,oBACC,OAAOl0L,KAAKuzL,gBAGb,aACC,OAAOvzL,KAAKm0L,SAGNvzL,YAAYm3C,GAA4B,KAtB9Bm8I,UAAI,OACJE,4BAAsB,OACtBQ,0BAAoB,OAKpBT,cAAQ,OACRZ,gBAA8C,GAe9DvzL,KAAKk0L,KAAOn8I,EAAO7rC,GACnBlM,KAAKo0L,uBAAyBr8I,EAAOs8I,qBACrCr0L,KAAK40L,qBAAuB78I,EAAO88I,mBAEnC70L,KAAKm0L,SAAWp8I,EAAOu8I,6BAA6BC,KACnDnsK,YAAKwiE,GACGA,EAAiB1R,aAAal9D,OAAQ69D,GAC5C75E,KAAKw0L,cAAc51J,KACjBx+B,GAAUA,EAAMqiB,SAAWo3D,EAAKp3D,QAAUriB,EAAMsJ,OAASmwE,EAAKnwE,MAAQtJ,EAAMg6E,YAAcP,EAAKO,aAInGp+D,YAAQ84K,GAAkC,MAATA,IAAsB,OAALA,QAAK,IAALA,OAAK,EAALA,EAAO/qL,QAAS,IAI7DgrL,WAAWC,EAAmDC,GACpE,OAAOj1L,KAAK40L,qBAAqBI,EAAyBC,EAAcj1L,MAGlEg3B,UAAU08J,GAQhB,GAPc1zL,KAAKuzL,gBAAgBn3K,UACjC2e,GACAA,EAAQrxB,OAASgqL,EAAahqL,MAC9BqxB,EAAQtY,SAAWixK,EAAajxK,QAChCsY,EAAQq/C,YAAcs5G,EAAat5G,WACnCr/C,EAAQ05C,YAAci/G,EAAaj/G,YAExB,EACZ,OAAO3X,QAAQv7D,UAEhBvB,KAAKuzL,gBAAgBtuK,KAAKyuK,GAC1BA,EAAa/jJ,MAAQsqC,IAAsBz4E,SAAS24E,oBACnDu5G,EAAahqL,KACbgqL,EAAat5G,UACbs5G,EAAaj/G,WAGd,MAAM0V,EAAsB,IACxBupG,EACEpnJ,OAAQlwC,IAAmBq0L,UAAWh8G,UAAWi/G,EAAaj/G,UAAW9kC,MAAO+jJ,EAAa/jJ,OAEnG,OAAO3vC,KAAKo0L,uBAAuBp0L,KAAKkM,GAAIi+E,GAKtC9yD,YACNq8J,GAEA,MAEM5lH,GADmB,oBAAjB4lH,EAA8B1zL,KAAKuzL,gBAAgBv3K,OAAO03K,GAAgB,CAACA,IACpDtrK,IAAKsrK,IACnC,MAAMxqK,EAAQlpB,KAAKuzL,gBAAgBn3K,UACjC2e,GACAA,EAAQrxB,OAASgqL,EAAahqL,MAC9BqxB,EAAQtY,SAAWixK,EAAajxK,QAChCsY,EAAQq/C,YAAcs5G,EAAat5G,WACnCr/C,EAAQ05C,YAAci/G,EAAaj/G,WAErC,GAAIvrD,EAAQ,EACX,OAAO4zC,QAAQv7D,UAEhBvB,KAAKuzL,gBAAgB19J,OAAO3M,EAAO,GACnC,MAAMgsK,EAAUj7G,IAAsBz4E,SAAS24E,oBAC9Cu5G,EAAahqL,KACbgqL,EAAat5G,UACbs5G,EAAaj/G,WAGR0V,EAAsB,IACxBupG,EACEpnJ,OAAQlwC,IAAmBq3L,YAAah/G,UAAWi/G,EAAaj/G,UAAW9kC,MAAOulJ,GAExF,OAAOl1L,KAAKo0L,uBAAuBp0L,KAAKkM,GAAIi+E,KAE7C,OAAOrtB,QAAQvF,IAAIuW,IAuBrB,MAAMqnH,EASL,gBACC,OAAwB,MAAjBn1L,KAAKo1L,UAAoBp1L,KAAKq1L,gBAAkBxY,EAA2B/4B,UAGnF,aACC,OAAO9jJ,KAAKo1L,SAGb,mBACC,OAAOp1L,KAAKgiD,eAGb,iBAAwB5hD,GACvBJ,KAAKgiD,eAAiB5hD,EAGhBQ,cAAe,KAxBL00L,iBAAmB,IAAI/pJ,IAAiB,KACxCgqJ,8BAAwB,OACjCF,mBAAa,OACbD,SAA0D,KAAK,KAC/DI,0BAA2D,KAAK,KAChEC,0BAAgF,KAAK,KACrFzzI,eAA6C,KAmBpDhiD,KAAKq1L,cAAgBxY,EAA2BgB,aAChD79K,KAAKu1L,yBAA2B,IAAIvkK,IAG9B0kK,uBAAuBt1L,GACzBJ,KAAKo1L,UACRp1L,KAAKo1L,SAAShX,sBAAsBh+K,GAI/B0F,QAAQ01C,EAAam6I,GAC3B,OAAO,IAAI74H,QAAQliB,MAAOr5C,EAAS+mD,KAClC,UACOtoD,KAAK41L,cACV,MAAOhzI,GACR,IAAIjiD,EAASiiD,EAAIjxB,MAAQixB,EAAI7nC,QAAO,IAAApZ,OAAOihD,EAAIjxB,KAAI,MAAAhwB,OAAKihD,EAAI7nC,SAAO,IAAApZ,OAASihD,EAAG,KAC/E0F,EAAO,0BAAD3mD,OAA2BhB,IASlC,GANIX,KAAKw1L,2BACRx1L,KAAKw1L,0BAA0Bn+J,cAE5Br3B,KAAKy1L,2BACRz1L,KAAKy1L,0BAA0Bp+J,cAE5Br3B,KAAKo1L,SAAU,CAClBp1L,KAAKw1L,0BAA4Bx1L,KAAKo1L,SAAS7W,cAAcvnJ,UAAWlb,IACvE9b,KAAK6iD,SAAS/mC,KAEf9b,KAAKy1L,0BAA4Bz1L,KAAKo1L,SAAS9W,cAActnJ,UAAW52B,IAMvE,GALAJ,KAAKq1L,cAAgBj1L,EACjBA,IAAUy8K,EAA2B/jJ,OAAS68J,IACjDA,EAAc,IAAI/5K,MAAM,oBACxB+5K,OAAgB/qL,GAEbxK,IAAUy8K,EAA2B+B,mBAAqB+W,EAAe,CAEjDv0L,IAASG,QAAQzB,KACzBnC,gBAAiB,KAGtC,UACOqC,KAAKo1L,SAAStvL,QAAQ01C,GAC5Bj6C,IACC,MAAOqhD,GACJ5iD,KAAK8jJ,UACR6xC,GAAiBA,EAAc/yI,GAE/B0F,EAAO,gCAAD3mD,OAAiCihD,EAAG,YAI5C0F,EAAO,2BAKHmZ,KAAK1mD,GACX,OAAO,IAAI+hD,QAAQ,CAACv7D,EAAS+mD,KAC5B,IACCtoD,KAAKqgL,uBAAwB7B,IAC5BzjK,EAAQyN,KAAOzN,EAAQyN,MAAQ7H,KAAKmL,MAAM5E,KAAK8Y,MAAQ,KAKvDw+I,EAAO/8G,KAAK1mD,GACZxZ,MAEA,MAAOqhD,GACR0F,EAAO,2BAAD3mD,OAA4BihD,EAAG,SAKjC69H,iBAAiB94H,GACvB,OAAO,IAAImV,QAAQ,CAACv7D,EAAS+mD,KAC5B,IACCtoD,KAAKqgL,uBAAuBzlI,UACI4jI,EAAOiC,mBACfzpJ,UAAU2wB,GACjCpmD,MAEA,MAAOqhD,GACR0F,EAAO,uBAAD3mD,OAAwBihD,EAAG,SAK7B89H,qBACN,OAAO,IAAI5jH,QAAQ,CAACv7D,EAAS+mD,KAC5B,IACCtoD,KAAKqgL,uBACH7B,IACAA,EAAOkC,qBACPn/K,KAED,KACCA,MAGD,MAAOqhD,GACR0F,EAAO,yBAAD3mD,OAA0BihD,EAAG,SAK/B5rB,UAAU4pJ,EAAuCj5H,GACvD,OAAO,IAAImV,QAAQ,CAACv7D,EAAS+mD,KAC5B,IACCtoD,KAAKqgL,uBAAuBzlI,UAC3B,MAAMi7I,EAAyBrX,EAAOxnJ,UAAU4pJ,GAChD5gL,KAAKu1L,yBAAyBpkK,IAAIyvJ,GAClCiV,EAAuB7+J,UAAU2wB,GACjCpmD,MAEA,MAAOqhD,GACR0F,EAAO,uBAAD3mD,OAAwBihD,EAAG,SAK7BvrB,YAAYupJ,GAClB,OAAO,IAAI9jH,QAAQ,CAACv7D,EAAS+mD,KAC5B,IACCtoD,KAAKqgL,uBACH7B,IACAA,EAAOnnJ,YAAYupJ,GACnB5gL,KAAKu1L,yBAAyB78I,OAAOkoI,GACrCr/K,KAED,KACCA,MAGD,MAAOqhD,GACR0F,EAAO,yBAAD3mD,OAA0BihD,EAAG,SAK/BkzI,gBAAgBlV,GACtB,OAAO5gL,KAAKu1L,yBAAyBtvJ,IAAI26I,GAGnC7yG,aACN,OAAO,IAAIjR,QAAQ,CAACv7D,EAAS+mD,KAC5B,IACCtoD,KAAKqgL,uBACJzlI,gBACO4jI,EAAOzwG,aACb/tE,KAAKu1L,yBAAyBxnI,QAC1B/tD,KAAKw1L,2BACRx1L,KAAKw1L,0BAA0Bn+J,cAE5Br3B,KAAKy1L,2BACRz1L,KAAKy1L,0BAA0Bp+J,oBAE1Br3B,KAAK+1L,aACX/1L,KAAKq1L,cAAgBxY,EAA2BgB,aAChDt8K,KAED,KACCA,MAGD,MAAOqhD,GACR0F,EAAO,yBAAD3mD,OAA0BihD,EAAG,SAK9By9H,uBACPQ,EACAC,GAEA,GAAI9gL,KAAKo1L,UAAYp1L,KAAK8jJ,UACzB+8B,EAAgB7gL,KAAKo1L,cACf,CAEN,GAAkC,kBADlCtU,EAAqBA,GAAsB,2DAE1C,MAAM,IAAIllK,MAAMklK,GACV,GAAkC,oBAAvBA,EACjBA,SACM,GACNv5H,IAAUC,GAAUs5H,EAAqBr5H,GAA4B,MAAhBA,EAAQ91B,MAAmC,MAAnB81B,EAAQ1sC,SAErF,MAAM+lK,GAKDj+H,QACP,GAAI7iD,KAAKoiD,aACR,IACCpiD,KAAKoiD,gBAAaz3C,WACjB,MAAOi4C,KAIX,oBAeC,aAdM5iD,KAAKs1L,iBAAiBv4H,UAAU,iBAAkBniB,MAAOr5C,EAAS+mD,KACvE,IACC,GAAItoD,KAAKo1L,SACR7zL,QACM,CACN,MAAMk8K,QAAeuY,YAA6B,IAAIC,GACtDj2L,KAAKo1L,SAAW3X,EAChBl8K,KAEA,MAAOqhD,GACR5iD,KAAK6iD,MAAM,0BAA2BD,GACtC0F,EAAO,2BAAD3mD,OAA4BihD,EAAG,SAGf,MAAjB5iD,KAAKo1L,SAAmBt4H,QAAQv7D,UAAYvB,KAAK41L,cAGzD,mBAeC,aAdM51L,KAAKs1L,iBAAiBv4H,UAAU,kBAAmBniB,MAAOr5C,EAAS+mD,KACxE,IACsB,MAAjBtoD,KAAKo1L,iBAGFc,IAAOC,UAAUn2L,KAAKo1L,UAC5Bp1L,KAAKo1L,SAAW,MAHhB7zL,IAMA,MAAOqhD,GACR5iD,KAAK6iD,MAAM,6BAA8BD,GACzC0F,EAAO,8BAAD3mD,OAA+BihD,EAAG,SAGlB,MAAjB5iD,KAAKo1L,SAAmBt4H,QAAQv7D,UAAYvB,KAAK+1L,cAQ3C,MAAMK,UAAyBxzK,IA0B7C,qBACC,OAAO5iB,KAAKs1L,iBAGb,8BACC,OAAOt1L,KAAKq2L,0BAGb,8BACC,OAAOr2L,KAAKs2L,0BAA0Bp2L,WAGvC,gCACC,OAAOF,KAAKu2L,4BAA4Br2L,WAGzC,gCACC,OAAOF,KAAKw2L,4BAA4Bt2L,WAGzC,gBAAiC,IAADu2L,EAC/B,OAA0B,QAAnBA,EAAAz2L,KAAK29K,sBAAc,IAAA8Y,OAAA,EAAnBA,EAAqB3yC,aAAa,EAG1C,aACC,OAAO9jJ,KAAKiiD,SAGb,sBACC,OAAOjiD,KAAK02L,gBAGb,qBACC,OAAO12L,KAAK22L,cAGb,qBAA4BhnJ,GAC3B3vC,KAAK22L,cAAc54K,IAAI4xB,EAAO,IAG/B,yBAAgCA,GAC/B3vC,KAAK22L,cAAcj+I,OAAO/I,GAG3B,qBACC,OAAO3vC,KAAK42L,iBAGb,yBACC,OAAOrqI,IAAWlU,KAAKr4C,KAAK62L,2BAG7B,kBACC,OAAO72L,KAAK82L,cAAc52L,WAG3B,oBACC,OAAOF,KAAK+2L,gBAAgB72L,WAG7B,iBACC,OAAOF,KAAKg3L,aAGb,mBACC,OAAOh3L,KAAKi3L,eAGb,4BACC,OAAOj3L,KAAKk3L,wBAGb,2BAAkC92L,GACjCJ,KAAKk3L,wBAA0B92L,EAC/BJ,KAAK29K,eAAe+X,uBAAuBt1L,GAGrCQ,YAAYm3C,GAA4B,IAAD0/D,EAC7C52G,MAAM,IAAIygL,EAAuBvpI,IAAQ0/D,EAAAz3G,KAAC,KAvG1Bw2L,4BAAmE,IAAIj6L,IAAK,IAAM,IAAIkwD,KAAW,KACjGqqI,mBAAa,OACbC,qBAAe,OACfxD,gBAA+D,IAAIztJ,IAAM,KACzEwwJ,+BAAyB,OACzBC,iCAA2B,OAC3B5Y,oBAAc,OACd+Y,gBAA2C,IAAI5wJ,IAAM,KACrD6wJ,cAA4C,IAAI7wJ,IAAM,KACtDwvJ,iBAAmB,IAAI/pJ,IAAiB,KACxCyrJ,aAA6B,GAAG,KAChCC,eAAiC,GAAG,KACpCE,UAAwB,GAAG,KAC3BC,2BAAqB,OACrBf,0BAAoD,IAAIvC,EAAyB,KACjFuD,0BAAoD,IAAIjE,EAAuBpzL,MAAM,KACrF42L,iBAA4C,IAAI9wJ,IAA0B,KAEnFwxJ,yBAAmB,OAEnBJ,yBAAmC,EAAM,KACzCK,kBAA4B,EAAE,KAC9BC,mBAAmE,KAAK,KACxEC,iBAAwB,KAAK,KAulC7BC,eAAiB,EArgCxB13L,KAAKo3L,sBAAwBz2K,KAAKm2D,KAAK,IAAO92E,KAAK+3C,OAAO2pI,sBAC1D1hL,KAAK29K,eAAiB,IAAIwX,EAC1Bn1L,KAAK29K,eAAev7H,aAAe,WAClCq1D,EAAK50D,SAAMl4C,YAIZ3K,KAAK82L,cAAgB,IAAIv6L,IAAK,KAC7B,MAAMm6B,EAAqC12B,KAAK23L,mBAAmBpD,KAClEv4K,YAAQjB,GAAYA,EAAQykK,YAAc1C,EAAewC,MAAM/B,eAAekC,QAAQ+F,OACtFp9J,YAAKrN,GAA8CA,EAAQ0iB,MAC3DzhB,YAAQqH,GAAyC,MAAdA,GAAuC,IAAjBA,EAAWlH,GAA4B,IAAjBkH,EAAWG,IAK3F,OAHAkT,EAAWM,UAAW3T,IACrBrjB,KAAK02L,gBAAgB34K,IAAI,GAADpc,OAAI0hB,EAAWmyB,EAAC,KAAA7zC,OAAI0hB,EAAWuN,GAAKvN,KAEtDqT,IAIR12B,KAAK+2L,gBAAkB,IAAIx6L,IAAK,IACxByD,KAAK23L,mBAAmBpD,KAC9Bv4K,YAAQjB,GAAYA,EAAQykK,YAAc1C,EAAewC,MAAM/B,eAAekC,QAAQ6E,SACtFl8J,YAAKrN,GAAoDA,EAAQ0iB,MACjEzhB,YAAQyhB,IAAsB,IAAAm6J,EAAA,OAA0B,MAArBn6J,EAAKy7C,eAAyC,QAAjB0+G,EAAAn6J,EAAKy7C,oBAAY,IAAA0+G,OAAA,EAAjBA,EAAmB7tL,QAAS,MAK9F/J,KAAKs2L,0BAA4B,IAAI/5L,IAAK,KAClC,CACN83L,qBAAsBA,CACrBwD,EACAnE,EACApnJ,IAEO1K,IAASU,GAAGoxJ,GACjBtrK,IAAKsrK,GAEExxK,MAAMC,QAAQuxK,GAAgBA,EAAe,CAACA,IAErDtrK,IAAKosK,GAEEA,EACLx4K,OAAQ03K,IACR,MAAM,KAAEhqL,EAAI,OAAE+Y,GAAWixK,EACzB,OACE1zL,KAAK8jJ,WAAax3G,IAAWlwC,IAAmBq0L,aAChDzwL,KAAKg3L,aAAap4J,KACjBs7C,GACAA,EAAUhuE,KAAO2rL,GACjB39G,EAAUs6G,cAAc51J,KACtB80J,GAAiBA,EAAajxK,SAAWA,GAAUixK,EAAahqL,OAASA,MAK9EywC,OAAO,CAAC/xB,EAAKsrK,KACRtrK,EAAI6d,IAAIytJ,EAAajxK,SACzB2F,EAAIrK,IAAI21K,EAAajxK,OAAQ,IAE9B2F,EAAI2C,IAAI2oK,EAAajxK,QAASwC,KAAKyuK,GAC5BtrK,GACL,IAAI0d,MAER9pB,OAAQ87K,GAA0BA,EAAsBt3J,KAAO,GAC/DpY,IAAK0vK,IAGJxrJ,IAAWlwC,IAAmBq0L,UAAYzwL,KAAKg3B,UAAUl1B,IAAI+B,aAAei5D,QAAQv7D,WAEtEo8D,KAAK,KACnB,MAAMmQ,EAA4B,GAClCgqH,EAAsBhzK,QAAQ,CAAC0vK,EAAe/xK,KAC7C,IAAI7V,EAA4B,GAChC4nL,EAAc1vK,QAAS1kB,IACtB,MAAMgf,EAAapf,KAAK6kB,eAAekG,IAAI,GAADppB,OAAIvB,EAAMqiB,OAAM,KAAA9gB,OAAIvB,EAAMsJ,OAChE0V,IACHxS,EAAYqY,KAAK7F,GAIhBktB,IAAWlwC,IAAmBq0L,WACK,IAAnCrxK,EAAW+lK,qBACV/lK,EAAW4yD,iBAGZhyE,KAAKyhE,KAAK3/D,IAAIqB,kBAAmB,CAAEuG,KAAM0V,EAAW1V,UAKvD,MAAM2+C,EAAUroD,KAAKyhE,KAAK3/D,IAAIY,aAAc,CAC3C4pC,OAAQA,EACR7pB,OAAQA,EACR7V,YAAaA,IAEdkhE,EAAS7oD,KAAKojC,QAIhBvlB,UAAU,IAAMg6B,QAAQv7D,WAE3B+yL,2BAA4BA,IACpBt0L,KAAK+3L,eAMf/3L,KAAKu2L,4BAA8B,IAAIh6L,IAAK,KACpC,CACN83L,qBAAsBA,CAAC2D,EAAuB7tG,KACpCnqF,KAAK8jJ,WAAa35D,EAAoB79C,SAAWlwC,IAAmBq3L,aAC5EzzL,KAAKi3L,eAAer4J,KAClBq5J,GACAA,EAAY/rL,KAAO8rL,GACnBC,EAAYzD,cAAc51J,KACxB80J,GACAA,EAAajxK,SAAW0nE,EAAoB1nE,QAC5CixK,EAAahqL,OAASygF,EAAoBzgF,MAC1CgqL,EAAat5G,YAAc+P,EAAoB/P,WAC/Cs5G,EAAaj/G,YAAc0V,EAAoB1V,YAGjD3X,QAAQv7D,UACRvB,KAAKg3B,UAAUl1B,IAAI2B,4BAA4Bk6D,KAAK,IACpD39D,KAAKyhE,KAAK3/D,IAAIU,cAAe2nF,IAGjC0qG,mBAAoBA,CACnBG,EACAC,EACAgD,IAEOj4L,KAAKk4L,kBAAkBlD,EAAyBC,EAAcgD,GAEtE3D,2BAA4BA,IACpBt0L,KAAKm4L,iBAMTryL,QACNsyL,GAC6B,IAADC,EAAAC,EAAAC,EAC5B,OAAOv4L,KAAK8jJ,UACThnF,QAAQv7D,QAAQ,CAChB0pE,SAAS,EACT/iE,OAAQ,IACRrK,MAA0B,QAArBw6L,EAAEr4L,KAAKw4L,sBAAc,IAAAH,OAAA,EAAnBA,EAAqBl0C,SAC5Bg/B,cAAkC,QAArBmV,EAAEt4L,KAAKw4L,sBAAc,IAAAF,OAAA,EAAnBA,EAAqBnV,cACpCE,UAA8B,QAArBkV,EAAEv4L,KAAKw4L,sBAAc,IAAAD,OAAA,EAAnBA,EAAqBlV,YAEhCrjL,KAAKqrC,eAAe0xB,UAAU,UAAWniB,MAAOr5C,EAAS+mD,KACzD,IAEC,IAAImwI,EAAiBL,IA0DrB,GAvDAx2J,IAASU,GAAGtiC,KAAKw3L,oBAAoBx1J,IAAKmlB,GAAYnnD,KAAKyiD,IAAI,cAAe0E,IAG9EvlB,IAASU,GAAGtiC,KAAK+3C,OAAO0pI,UAAUE,eAChCv5J,IAAKu5J,IAAqC,IAAlBA,EAA0BA,EAAczkH,SAAW,MAC3El7B,IAAKyiH,IACL,IAAIvnF,EAAgB,KACpBl9D,KAAKw3L,mBAAqB,KACzBt6H,EACCA,GACAk9C,YAAY,KACXp6G,KAAKqrC,eAAe0xB,UAAU,YAAaniB,MAAOr5C,EAAS+mD,KAC1D,IACCtoD,KAAK6iD,MAAM,mCACL7iD,KAAK04L,qBACL14L,KAAK8F,QAAQsyL,GAAwBz6H,KAAM/rC,IAC3CA,EAAOq5C,SACXjrE,KAAK6iD,MAAM,+BAAgCjxB,EAAOkH,SAGpDskC,cAAcF,GACdA,EAAW,KACV,MAAOta,GACR5iD,KAAK6iD,MAAM,+BAAgCD,GAE5CrhD,OAECkjJ,MAKP7iH,IAASU,GAAGtiC,KAAKw3L,oBAAoBx1J,IAAKmlB,GAAYnnD,KAAKwiD,KAAK,cAAe2E,IAI9EI,IAAUC,GAA+BixI,EAAiBhxI,GAAoC,oBAAjBA,EAAQkW,QAErF86H,QAAuBA,IAKvBA,EAAeE,WACc,OAA5BF,EAAet0C,UACc,OAA7Bs0C,EAAeG,WACgB,OAA/BH,EAAex5L,aAEhBsC,EAAQ,CACP0pE,SAAS,EACTnyC,MAAO,qCACP5wB,OAAQ,OAKRuwL,EAAeE,YACa,OAA5BF,EAAet0C,UACa,OAA5Bs0C,EAAetzG,UACgB,OAA/BszG,EAAex5L,aAOhB,YALAsC,EAAQ,CACP0pE,SAAS,EACTnyC,MAAO,yCACP5wB,OAAQ,MAUV,SAJMlI,KAAK64L,UAAW//J,IACrB94B,KAAK2iD,KAAK,cAAe7pB,MAGrB94B,KAAK8jJ,UAMT,YALAviJ,EAAQ,CACP0pE,SAAS,EACTnyC,MAAO,iDACP5wB,OAAQ,MAMVlI,KAAK29K,eAAe8C,iBAAkB1lK,IACrC,MAAM+9K,EAAiBhc,EAAeiW,cAAch4K,GASpD,IAPiCkwC,EAOL6tI,IALnB,mBAAoB7tI,EAKgB,CAC5C,MAAMlwC,EAAU+9K,EAChB,GAAI/9K,EAAQ45C,iBAAmB34D,IAAkByK,WAAY,CAAC,IAADsyL,EAC5D,MAAMC,EAA+B,QAAxBD,EAAGjc,EAAemc,cAAM,IAAAF,OAAA,EAArBA,EAAuBhuK,IAAKhQ,EAAuB6V,GAEnE,GAAIooK,EAAS,CACZ,MAAME,EAAev4K,KAAKC,IAAI,GAAIo4K,EAAQjS,QAEtCiS,EAAQhS,OACVjsK,EAAuBoB,EAAKpB,EAAuBoB,EAAI68K,EAAQhS,KAAOkS,GAEpEF,EAAQ9R,OACVnsK,EAAuByI,EAAKzI,EAAuByI,EAAIw1K,EAAQ9R,KAAOgS,IAM1E,OADAl5L,KAAKq2L,0BAA0BtC,aAAah5K,GACpCA,EAAQ45C,gBACf,KAAK34D,IAAkByK,WACtBzG,KAAKq3L,0BAA0B1D,aAAa54K,GAC5C,MAED,KAAK/e,IAAkBsK,iBAAkB,CACxC,MAAM81B,EAAQrhB,EAEd,GAAIqhB,EAAMuT,MAAM86C,WAAW,OAAQ,CAClC,MAAMhtD,EAAOz9B,KAAK22L,cAAc5rK,IAAIqR,EAAMuT,OAC1C,GAAIlS,EACH,GAAIA,EAAK1zB,OAAS,EACjB,GAAkC,IAA9BqyB,EAAM88C,aAAanvE,OAAc,CACvB0zB,EAAKA,EAAK1zB,OAAS,GACvBqrD,YAAch5B,EAAM88C,aAAa,GAAG9jB,WAC5C33B,EAAKmxB,MAENnxB,EAAKxY,KAAKmX,EAAM88C,aAAa,SAE7Bz7C,EAAKxY,QAAQmX,EAAM88C,mBAGpBl5E,KAAK22L,cAAc54K,IAAIqe,EAAMuT,MAAOvT,EAAM88C,cAI7C,MAED,KAAKl9E,IAAkBuK,YAAa,CACnC,MAAM8uC,EAAct6B,EACpB,GAAIs6B,EAAY1F,MAAM86C,WAAW,OAAQ,CACxC,MAAMhtD,EAAOz9B,KAAK22L,cAAc5rK,IAAIsqB,EAAY1F,OAChD,GAAIlS,EACH,GAAIA,EAAK1zB,OAAS,EAAG,CACP0zB,EAAKA,EAAK1zB,OAAS,GACvBqrD,YAAc/f,EAAY+f,WAClC33B,EAAKmxB,MAENnxB,EAAKxY,KAAKowB,QAEVr1C,KAAK22L,cAAc54K,IAAIs3B,EAAY1F,MAAO,CAAC0F,IAI9C,QArEH,IAAiC4V,IA8ElC,MAAMo5F,EAAkC,CAAEp5E,SAAS,EAAM/iE,OAAQ,IAAKrK,MAAO46L,EAAet0C,UAwG5F,SAvGMnkJ,KAAKqrC,eAAegd,QAAQ,CAAC9mD,EAAS+mD,KAC3C,MAAM0U,EAAUh9D,KAAKqrC,eAAesvB,MAAM36D,KAAK+3C,OAAO0pI,UAAU0X,gBAChE,IAAIxwI,GAAa,GAGdpB,IAAUC,GACVixI,EACChxI,GAAoC,oBAAjBA,EAAQkW,OACxB86H,EAAeE,WAKrB34L,KAAKo5L,YAAYtc,EAAewC,MAAM/B,eAAekC,QAAQiL,MAAQ3vK,IACpE,IAAI2pD,EAAe,GACnB,GAAI3pD,EAAQ0iB,KAAM,CACjB,MAAMA,EAAOq/I,EAAeiW,cAAch4K,GAC/B,IAADs+K,EAAV,GAAI57J,EACHinC,EAAyB,QAAb20H,EAAG57J,EAAK3E,aAAK,IAAAugK,IAAI,UAC7BryK,QAAQ67B,MAAM,0BAADlhD,OAA2B+iE,IAI1C,GAAK/b,GAWJ,GAAI+b,IAAiBzoE,IAAuBq9L,yBAA0B,CAErEt5L,KAAK+tE,aACL,MAAMj+D,EAAqB1O,IAASG,QAAQzB,KACxCgQ,IACHA,EAAmBnS,gBAAiB,SAftCgrD,GAAa,EACbqU,EAAQpmD,SACR5W,KAAKu5L,cAAcx+K,EAAQykK,WAC3Bn7B,EAAcp5E,SAAU,EACxBo5E,EAAcn8I,OAAS,IACvBm8I,EAAcvrH,MAAQ78B,IAAuBqoJ,qBAC7C/iJ,MAiBHvB,KAAKo5L,YAAYtc,EAAewC,MAAM/B,eAAekC,QAAQ+Z,MAAQz+K,IACpE,IAAK4tC,EAAY,CAChBA,GAAa,EACbqU,EAAQpmD,SACR,MAAM6mB,EAAOq/I,EAAewC,MAAM4N,cAAcjN,OAAOllK,EAAQ0iB,MAE5C,IAADg8J,EAAlB,GADAz5L,KAAKu5L,cAAcx+K,EAAQykK,WACvB/hJ,EAAKwtC,QACRo5E,EAAcp5E,SAAU,EACxBo5E,EAAcn8I,OAAS,IACvBm8I,EAAc8+B,cAAgB1lJ,EAAK0lJ,cACnC9+B,EAAcg/B,UAAY5lJ,EAAK4lJ,UAC/Bh/B,EAAcjmI,KAAOqf,EAAKrf,KAC1BimI,EAAcq1C,OAASj8J,EAAKi8J,OAC5Br1C,EAAcs1C,WAAal8J,EAAKm8J,YAAc9c,EAAewC,MAAMoN,UAAU3uJ,KAAO,OAAS,OAC7FsmH,EAAcw1C,aAAgC,QAApBJ,EAAGh8J,EAAKo8J,oBAAY,IAAAJ,UAE9Cp1C,EAAcp5E,SAAU,EACxBo5E,EAAcn8I,OAAS,IACvBm8I,EAAcvrH,MAAQ2E,EAAK3E,MAE5Bv3B,OAIFy7D,EAAQW,KAAK,KACPhV,IACJA,GAAa,EACb07F,EAAcp5E,SAAU,EACxBo5E,EAAcn8I,OAAS,IACvBm8I,EAAcvrH,MAAQ78B,IAAuB69L,sBAC7Cv4L,OAIF,IAAIge,EAAWs+B,IAAY46I,EAAqCzmK,MAEhE,MAAM+nK,EAAejd,EAAewC,MAAM/B,eAAegC,WAAW,CACnEC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQua,qBACvDv8J,KAAMq/I,EAAewC,MAAMuN,sBAAsBtM,OAAO,CACvDp8B,SAAWs0C,EAAqCt0C,SAChDC,UAAYq0C,EAAqCr0C,UACjDw1C,UACuD,SAArDnB,EAAqCx5L,YACnC69K,EAAewC,MAAMoN,UAAU1uJ,KAC/B8+I,EAAewC,MAAMoN,UAAU3uJ,KACnCk8J,SAAUnd,EAAewC,MAAMkN,SAAS0N,IACxCloK,KAAM8qJ,EAAewC,MAAMqN,iBAC1BptK,GAEDm6K,OAASjB,EAAqCiB,SAC5ClZ,WAEJxgL,KAAKm6L,OAAOJ,MAIR11C,EAAcp5E,QAAS,CAC3B,IACCjrE,KAAK04L,eACJ,MAAO91I,IAET,YADArhD,EAAQ8iJ,SAKHrkJ,KAAKqrC,eAAegd,QAAQzN,MAAOr5C,EAAS+mD,KACjD,MAAM0U,EAAUh9D,KAAKqrC,eAAesvB,MAAM36D,KAAK+3C,OAAO0pI,UAAU0X,gBAChE,IAAIxwI,GAAa,EACjB,MAAMyxI,EAAsBp6L,KAAK62L,0BAA0B7/J,UAAWjc,IACrE,GAAIA,EAAQykK,YAAc1C,EAAewC,MAAM/B,eAAekC,QAAQuE,UAAW,CACxDjpK,EAAQ0iB,KAC3B4mJ,QAAQv/J,QAASu1K,IAChBr6L,KAAKm3L,UAAUv4J,KAAMx+B,GAAUA,EAAM+jL,SAAWkW,EAAKlW,SACzDnkL,KAAKm3L,UAAUlyK,KAAKo1K,KAIjB1xI,IACJA,GAAa,EACbqU,EAAQpmD,SACRs/B,WAAW,KACVkkJ,EAAoB/iK,cACpBr3B,KAAKq3B,YAAYv1B,IAAI0B,eACnB,KACHo+B,IAASU,GAAGtiC,KAAK+3C,OAAO0pI,UAAUG,WAChC5lK,OAAQ2+C,GAAUA,EAAQ,GAC1B34B,IAAK24B,GAAUzkB,WAAW,IAAM30C,IAAWo5D,IAC3C33B,UAAU,IAAMzhC,SAIrBy7D,EAAQW,KAAK,KACPhV,IACJA,GAAa,EACbyxI,EAAoB/iK,cACpBgtH,EAAcp5E,SAAU,EACxBo5E,EAAcn8I,OAAS,IACvBm8I,EAAcvrH,MAAQ78B,IAAuBq+L,sBAC7C/4L,aAGIvB,KAAKg3B,UAAUl1B,IAAI0B,cACzBxD,KAAKyhE,KAAK3/D,IAAIK,cAEfZ,EAAQ8iJ,GAGJA,EAAcp5E,UACjBjrE,KAAKkiD,iBAAmB,CACvBiiG,SAAWs0C,EAAqCt0C,SAChDh/D,SAAWszG,EAAqCtzG,UAAY,GAC5Dg+F,cAAe9+B,EAAc8+B,cAC7BE,UAAWh/B,EAAcg/B,WAE1BrjL,KAAK2iD,KAAK,cAIP3iD,KAAK+3C,OAAO0pI,UAAU8Y,iBACzBn9H,cAAcp9D,KAAKy3L,kBACnBz3L,KAAKy3L,iBAAmBr9E,YAAY,KACnCx4E,IAASU,GAAGtiC,KAAKuzL,gBAAgBxoK,IAAIjpB,IAAI+B,cACvCmY,OAAQ44D,GAAmB50E,KAAK8jJ,WAChC9hH,IAAK4yC,IACL,MAAMs4D,EAAU,CAAC,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,UACvEjrH,EAASirH,EAAQvsH,KAAKmL,MAAMnL,KAAK6xB,UAAkB,OAAP06F,QAAO,IAAPA,OAAO,EAAPA,EAASnjI,UACrDkmK,EAAMvuJ,YAAYf,KAAK6xB,UAAY,IAAM,IAAO,IAAK3yB,QAAQ,IAC7DmwJ,EAAMtuJ,YAAYf,KAAK6xB,UAAY,IAAMy9H,GAAOA,GAAKpwJ,QAAQ,IAC7DwD,EAAmC,CACxCm8J,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQ+F,MACvDh9J,KAAM7H,KAAKmL,MAAM5E,KAAK8Y,MAAQ,KAC9BvC,KAAM,CACLk3B,eAAgB34D,IAAkByK,WAClC0V,EAAG6zJ,EACHxsJ,EAAGysJ,EACHr/I,EAAG3O,EACHuzB,EAAGx1C,KAAK+3C,OAAOwpI,eAAiB,SAChC56J,EAAGqpJ,EACHt6H,EAAGu6H,EACHjgK,EAAGkX,KAAK8Y,MAAQ,MAKlB,GADAhgC,KAAKq2L,0BAA0BtC,aAAa1wK,EAAWoa,MACnD,mBAAoBpa,EAAWoa,KAAM,CACxC,MAAM1iB,EAAUsI,EAAWoa,KAC3Bz9B,KAAKq3L,0BAA0B1D,aAAa54K,GAE7C/a,KAAK62L,0BAA0BzxJ,KAAK/hB,MAEpC,MAEH,MAAOu/B,GACR,IACC5iD,KAAK04L,eACJ,MAAO8B,GACRxzK,QAAQ8R,MAAM,qBAADn3B,OAAsB64L,IAEpClyI,EAAO,iCAAD3mD,OAAkCihD,EAAG,SAKzCpgC,cAAc9Y,EAAc+Y,GAClC,IAAIg4K,EAAuB,OAANh4K,QAAM,IAANA,IAAU,SAC/B,OAAOziB,KAAK42L,iBAAiB7rK,IAAI,GAADppB,OAAI84L,EAAc,KAAA94L,OAAI+H,IAGhD8wE,kBAAqD,IAArCtuE,EAAUvB,UAAAZ,OAAA,QAAAa,IAAAD,UAAA,GAAAA,UAAA,GAAG,UAC/BuvE,EAAYl6E,KAAKg3L,aAAavtL,KAAMrJ,GAAUA,EAAM8L,KAAOA,GAK/D,OAJiB,MAAbguE,IACHA,EAAY,IAAI+5G,EAAU,IAAKj0L,KAAK06L,wBAAyBxuL,GAAIA,IACjElM,KAAKg3L,aAAa/xK,KAAKi1D,IAEjBA,EAGDygH,mBACN,MAAMC,EAAmB9d,EAAewC,MAAM/B,eAAegC,WAAW,CACvEC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQob,eACvDp9J,KAAMq/I,EAAewC,MAAMwN,iBAAiBvM,OAAO,IAAIC,WAGxD,OADAxgL,KAAKm6L,OAAOS,GACL56L,KAGD86L,sBACN,MAAMA,EAAsBhe,EAAewC,MAAM/B,eAAegC,WAAW,CAC1EC,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQsb,kBACvDt9J,KAAMq/I,EAAewC,MAAMyN,oBAAoBxM,OAAO,IAAIC,WAG3D,OADAxgL,KAAKm6L,OAAOW,GACL96L,KAMDg7L,gBAAgB9uL,GACtB,GAAkB,oBAAPA,EACVlM,KAAKg3L,aAAah7K,OAAO9P,GAAI4Y,QAASo1D,IACrCA,EAAU7iD,YAAaq8J,GAAiC,MAAhBA,GACxC,MAAMxqK,EAAQlpB,KAAKg3L,aAAansI,QAAQqvB,GACxChxD,GAAS,GAAKlpB,KAAKg3L,aAAanhK,OAAO3M,EAAO,SAEzC,CACNhd,EAAmB,kBAAPA,EAAkBA,EAAKA,EAAGA,GACtC,MAAMgd,EAAQlpB,KAAKg3L,aAAa56K,UAAWhc,GAAUA,EAAM8L,IAAMA,GACjEgd,GAAS,GACRlpB,KAAKg3L,aACHnhK,OAAO3M,EAAO,GACdpE,QAASo1D,GAAcA,EAAU7iD,YAAaq8J,GAAiC,MAAhBA,IAEnE,OAAO1zL,KAGDi7L,oBAAyD,IAAvC/uL,EAAUvB,UAAAZ,OAAA,QAAAa,IAAAD,UAAA,GAAAA,UAAA,GAAG,UACjCstL,EAAcj4L,KAAKi3L,eAAextL,KAAMrJ,GAAUA,EAAM8L,IAAMA,GAKlE,OAJmB,MAAf+rL,IACHA,EAAc,IAAItD,EAAY,IAAK30L,KAAKk7L,0BAA2BhvL,GAAIA,IACvElM,KAAKi3L,eAAehyK,KAAKgzK,IAEnBA,EAMDkD,kBAAkBjvL,GACxB,GAAkB,oBAAPA,EACVlM,KAAKi3L,eAAej7K,OAAO9P,GAAI4Y,QAASmzK,IACvCA,EAAY5gK,YAAaq8J,GAAiC,MAAhBA,GAC1C,MAAMxqK,EAAQlpB,KAAKi3L,eAAepsI,QAAQotI,GAC1C/uK,GAAS,GAAKlpB,KAAKi3L,eAAephK,OAAO3M,EAAO,SAE3C,CACNhd,EAAmB,kBAAPA,EAAkBA,EAAKA,EAAGA,GACtC,MAAMgd,EAAQlpB,KAAKi3L,eAAe76K,UAAWhc,GAAUA,EAAM8L,IAAMA,GACnEgd,GAAS,GACRlpB,KAAKi3L,eACHphK,OAAO3M,EAAO,GACdpE,QAASmzK,GAAgBA,EAAY5gK,YAAaq8J,GAAiC,MAAhBA,IAEvE,OAAO1zL,KAGDk4L,kBACNlD,EACAC,EACAgD,GAEA,MAAM,OAAEx1K,EAAM,KAAE/Y,EAAI,UAAE0wE,EAAS,UAAEu2G,EAAS,UAAEl8G,EAAS,MAAE9kC,GAAUqlJ,EACjE,OAAOh1L,KAAKqrC,eAAe0xB,UAAU,aAADp7D,OACtB8gB,EAAM,KAAA9gB,OAAI+H,EAAI,KAAA/H,OAAIy4E,EAAS,KAAAz4E,OAAI8yE,GAC5C75B,MAAOr5C,EAAS+mD,KACf,IACC,MAAM8yI,EAAoC,MAAfnD,EAG3BA,EACgB,MAAfA,EACGj4L,KAAKi7L,kBAAkB,GAADt5L,OAAI8gB,EAAM,KAAA9gB,OAAI+H,EAAI,KAAA/H,OAAIy4E,EAAS,KAAAz4E,OAAIgf,KAAK6xB,WAC9DylJ,EACJhD,EAAet0K,KAAKm2D,KAAKn2D,KAAK4M,IAAI,EAAG0nK,GAAgB,OAGrD,MAAMl8G,EAAkB43G,IAAcv2G,EAAUvoD,SAAS,SAAWuoD,EAAUvoD,SAAS,SAAW,IAAM,KAClGqnD,EAA8B,GACpC,IACIw6G,EADA/qI,GAAsB,EAK1B,MAAM0yI,EAAiBr7L,KAAKqrC,eAAesvB,MAAMs6H,GACjDoG,EAAe19H,KAAK,KACdhV,IACJA,GAAa,EACb/mB,IAASU,GAAGoxJ,GAAc1xJ,IAAK0xJ,IACU,oBAA7BA,EAAar8J,YACvBq8J,EAAar8J,cAEbr3B,KAAK6iD,MAAM,0BAA2B6wI,KAGpC0H,GACHp7L,KAAKm7L,kBAAkBlD,GAExB12L,EAAQ23E,EAAa/9C,KAAK,CAACmgK,EAAOC,IAAUD,EAAMlmI,UAAYmmI,EAAMnmI,eAKtE,MAAMs/H,EAAwB10L,KAAKw7L,aACjCx/K,OAAQq+K,KAAWA,EAAKnuL,KAAO+rL,EAAa/rL,IAAMkvL,IAClDhzK,IAAKiyK,IACE,CACNA,KAAMA,EACNoB,aAAcpB,EAAK7F,cAAcx4K,OAC/B5b,GACAA,EAAMsJ,OAASA,GACftJ,EAAMqiB,SAAWA,GACjBriB,EAAMg6E,YAAcA,GACpBh6E,EAAMq0E,YAAcA,YAInB3X,QAAQvF,IACbm9H,EAAsBnyJ,QAASniC,GAC9BA,EAAMq7L,aAAarzK,IAAKsrK,GAAiBtzL,EAAMi6L,KAAKhjK,YAAYq8J,MAKlE1zL,KAAKg3B,UAAUl1B,IAAI2B,4BAA4Bk6D,KAAMjnC,IACpDg9J,EAAeh9J,EAAWM,UAAW4zD,IAAsB,IAAD8wG,EAWzD,GAVA9wG,EAAiB1R,aACfl9D,OAAQ69D,GACO,MAARA,GAAgBA,EAAKlqC,QAAUA,GAEtC7qB,QAAS+0D,IACJX,EAAat6C,KAAMyW,GAAgBA,EAAY+f,YAAcykB,EAAKzkB,YACtE8jB,EAAaj0D,KAAK40D,MAKnBlxB,IACW,OAAZuwB,QAAY,IAAZA,OAAY,EAAZA,EAAcnvE,SAAUgvE,GACiB,IAAZ,QAA7B2iH,EAAA9wG,EAAiB1R,oBAAY,IAAAwiH,OAAA,EAA7BA,EAA+B3xL,QAC9B,CACD4+C,GAAa,EACb0yI,EAAezkL,SACK,MAAhB88K,GAA4D,oBAA7BA,EAAar8J,aAC/Cq8J,EAAar8J,cAEV+jK,GACHp7L,KAAKm7L,kBAAkBlD,GAIxB,MAIM1tI,GAHLnpD,IAASC,OAASD,IAASE,aAAaynD,KACrC3nD,IAASG,QAAQwnD,KACjBA,IAAqBvnD,UACgB4oD,qBAAqBza,GAC1D4a,EACH2uB,EAAap0D,QAAS+0D,IACrBA,EAAKjkC,SAAWikC,EAAKzkB,UAAY7K,EAAYkhB,WAG9CzkD,QAAQ6+C,IAAI,8BAAgCn8D,EAAO,cAAgB0wE,GAGpE74E,EAAQ23E,EAAa/9C,KAAK,CAACmgK,EAAOC,IAAUD,EAAMlmI,UAAYmmI,EAAMnmI,uBAIjE6iI,EAAajhK,UAAU,CAC5B2Y,MAAOA,EACPltB,OAAQA,EACR/Y,KAAMA,EACN0wE,UAAWA,EACXu2G,UAAWA,EACXl8G,UAAWA,IAIZigH,EAAsBnyJ,QAASniC,GAC9BA,EAAMq7L,aAAarzK,IAAKsrK,GAAiBtzL,EAAMi6L,KAAKrjK,UAAU08J,KAE9D,MAAO9wI,GACR0F,EAAO,kCAAD3mD,OAAmCihD,EAAG,SAMzCx8C,mBAAmBspB,EAAmBva,GAC5C,OAAOnV,KAAKyhE,KAAK3/D,IAAIsE,mBAAoB,CACxCysL,MAAOnjK,EACPva,iBAIKssD,KAA2C+wG,GAA2D,IAAC,IAADmpB,EAAAx4J,EAAAx4B,UAAAZ,OAAxCk3K,EAAI,IAAA/+J,MAAAihB,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ69I,EAAI79I,EAAA,GAAAz4B,UAAAy4B,GAExE,IAAKpjC,KAAK8jJ,UACT,OAAO9jJ,KAAKqrC,eAAegd,QAAQ,CAAC9mD,EAAS+mD,KAC5CtoD,KAAKwiD,KAAK,YAAa,KACtBxiD,KAAKyhE,KAAK+wG,KAAgByO,GACxBtjH,KAAM/rC,GAAWrwB,EAAQqwB,IACzBwhI,MAAOxwG,GAAQ0F,EAAO1F,QAM3B,GAAI4vH,GAAe1wK,IAAIK,YAAcnC,KAAK81L,gBAAgBh0L,IAAI0B,gBAA+B,QAAdm4L,EAAA37L,KAAKm3L,iBAAS,IAAAwE,OAAA,EAAdA,EAAgB5xL,QAAS,EACvG,OAAO/J,KAAKs1L,iBAAiB36H,MAAM,GAAGgD,KAAK,KAC1C,IAAIi+H,EAAY,CACfjnI,eAAgB34D,IAAkB6K,UAClCw9K,QAASrkL,KAAKm3L,WAEfn3L,KAAK62L,0BAA0BzxJ,KAAK,CACnCo6I,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQuE,UACvDvmJ,KAAMm+J,EACNpzK,KAAM7H,KAAKmL,MAAM5E,KAAK8Y,MAAQ,SAMjC,GACCwyI,GAAe1wK,IAAIM,gBACnBpC,KAAK81L,gBAAgBh0L,IAAI6B,wBACIiH,IAA7B5K,KAAKs3L,oBAEL,OAAOt3L,KAAKs1L,iBAAiB36H,MAAM,GAAGgD,KAAK,KACtC39D,KAAKs3L,qBACRt3L,KAAK62L,0BAA0BzxJ,KAAK,CACnCo6I,UAAW1C,EAAewC,MAAM/B,eAAekC,QAAQiF,SACvDjnJ,KAAMz9B,KAAKs3L,oBACX9uK,KAAM7H,KAAKmL,MAAM5E,KAAK8Y,MAAQ,SAMlC,MAAOqrC,GAAQ41G,EAGT4a,EAAiBj6J,IAASU,GAAGw6I,EAAegf,cAAcr6H,KAAK+wG,IACnEpqJ,IAAKia,GACwB,oBAAfA,EAAOja,IAAsBia,EAAOja,IAA0CijD,GAAQ,MAEpG3oC,WAAW,IAAM,IAAI9mB,MAAM,2CAADja,OAA4C6wK,EAAW,OAKnF,OAHAxyK,KAAK6iD,MAAM,WAADlhD,OAAY6wK,GAAennG,GAAQ,IAGtCrrE,KAAKm6L,OAAO0B,GAGb/F,gBAA2DtjB,GACjE,OAAgD,MAAzCxyK,KAAKuzL,gBAAgBxoK,IAAIynJ,GAG1B7oF,aACN6oF,EACA7qH,GAEA,OAAO3nD,KAAKq2L,0BAA0Br/J,UAAUw7I,EAAa7qH,GAGvD0jC,eAAekjB,GAEjBvuG,KAAK22L,cAAc1wJ,IAAIsoE,IAC1BvuG,KAAK22L,cAAcj+I,OAAO61D,GAE3BvuG,KAAKq2L,0BAA0Bh/J,YAAYk3E,GAIrClsC,oBAAoB5/C,EAAgBi2C,EAAiB/Q,GAC3D,OAAO3nD,KAAKq3L,0BAA0Bh1H,oBAAoB5/C,EAAQi2C,EAAO/Q,GAGnEya,sBAAsBmsC,GAC5BvuG,KAAKq3L,0BAA0Bj1H,sBAAsBmsC,GAU/Cv3E,UACNw7I,EACA7qH,GAEA,OAAO3nD,KAAK8jJ,UACT9jJ,KAAKqrC,eAAe0xB,UAAU,aAADp7D,OAAc6wK,GAAe53H,MAAOr5C,EAAS+mD,KAC1E,IAEC,MAAM,WAAEyzI,EAAU,UAAEC,GAAcp6J,IAASU,GAAGw6I,EAAegf,cAAc9kK,UAAUw7I,IACnFpqJ,IAAKia,IACE,CACN05J,WAAY75K,MAAMC,QAAQkgB,EAAOm9I,WAAan9I,EAAOm9I,UAAY,CAACn9I,EAAOm9I,WACzEwc,UAAiC,oBAAf35J,EAAOja,IAAqBia,EAAOja,IAAIilC,KAAKjlC,KAAO,QAGtE2C,MAEF,GAAkB,MAAdgxK,IAAgC,OAAVA,QAAU,IAAVA,OAAU,EAAVA,EAAYhyL,QAAS,EAC9C,MAAM,IAAI6R,MAAM,6DAADja,OAA8D6wK,EAAW,MAEzF,GAAiB,MAAbwpB,EACH,MAAM,IAAIpgL,MAAM,iFAADja,OACmE6wK,EAAW,MAK9F,IAAIypB,EAAuBj8L,KAAKuzL,gBAAgBxoK,IAAIynJ,IAAgB,GACpEupB,EACE//K,OAAQwjK,KAAgByc,EAAqB9zL,SAASq3K,IAAcx/K,KAAKk8L,kBAAkB1c,KAC3F16J,QAAS06J,IACTx/K,KAAKo5L,YAAY5Z,EAAYzkK,IAC5B,IAAIswD,EAAO2wH,EAAUjhL,GAiBrB,GAfA/a,KAAK6iD,MAAM,cAADlhD,OAAe6wK,GAAennG,GAGpCtwD,EAAQykK,YAAc1C,EAAewC,MAAM/B,eAAekC,QAAQiF,WACrE1kL,KAAKs3L,oBAAsBjsH,EAGvBrrE,KAAKs3L,qBACRt3L,KAAKs3L,oBAAoB1qL,YAAYkY,QAASiW,GAC7C/6B,KAAK42L,iBAAiB74K,IAAI,GAADpc,OAAIo5B,EAAQtY,OAAM,KAAA9gB,OAAIo5B,EAAQrxB,MAAQqxB,KAM9DhgB,EAAQykK,YAAc1C,EAAewC,MAAM/B,eAAekC,QAAQ2F,cAAe,CAC9D/5G,EACN32D,gBAAgBoQ,QAASiW,IACxC,GAAI/6B,KAAKs3L,oBAAqB,CAC7B,IAAIxkF,EAAK9yG,KAAKwiB,cAAcuY,EAAQrxB,KAAMqxB,EAAQtY,QAC9CqwF,IACHA,EAAGxyF,eAAiBya,MAMxB,GAAIwsB,IAAUC,GAA0B6jB,EAAO5jB,GAAoC,oBAAjBA,EAAQriB,MAAsB,CAC/F,IAAI3H,EAAO4tC,EAAKjmC,OAAOhlC,MACvB,KAAOq9B,GACNz9B,KAAK62L,0BAA0BzxJ,KAAK,CACnCo6I,UAAWzkK,EAAQykK,UACnB/hJ,KAAMA,EACNjV,KAAMzN,EAAQyN,MAAQ7H,KAAKmL,MAAM5E,KAAK8Y,MAAQ,OAE/CvC,EAAO4tC,EAAKjmC,OAAOhlC,WAGpBJ,KAAK62L,0BAA0BzxJ,KAAK,CACnCo6I,UAAWzkK,EAAQykK,UACnB/hJ,KAAM4tC,EACN7iD,KAAMzN,EAAQyN,MAAQ7H,KAAKmL,MAAM5E,KAAK8Y,MAAQ,SAI5Ci8J,EAAqB9zL,SAASq3K,IAClCyc,EAAqBh3K,KAAKu6J,KAG7Bx/K,KAAKuzL,gBAAgBx1K,IAAIy0J,EAAaypB,GAEtC,MAAMvlK,EAAuD12B,KAAK62L,0BAA0BtC,KAC3Fv4K,YAAQjB,GAAYkhL,EAAqB9zL,SAAS4S,EAAQykK,YAC1Dp3J,YAAKrN,GAAkCA,EAAQ0iB,OAEhDl8B,EAAQomD,EAAWjxB,EAAWM,UAAU2wB,GAAYjxB,GACnD,MAAOksB,GACR0F,EAAO,uBAAD3mD,OAAwBihD,EAAG,SAGlC5iD,KAAKqrC,eAAegd,QAAQ,CAAC9mD,EAAS+mD,KACtCtoD,KAAKwiD,KAAK,YAAa,KACtBxiD,KAAKg3B,UAAUw7I,EAAa7qH,GAC1BgW,KAAM/rC,GAAWrwB,EAAQqwB,IACzBwhI,MAAOxwG,GAAQ0F,EAAO1F,QAKtBvrB,YAAYm7I,GAClB,OAAOxyK,KAAKqrC,eAAe0xB,UAAU,eAADp7D,OAAgB6wK,GAAe53H,MAAOr5C,EAAS+mD,KAClF,IACC,MAAM2zI,EAAuBj8L,KAAKuzL,gBAAgBxoK,IAAIynJ,GAClDypB,SACGn/H,QAAQvF,IAAI0kI,EAAqB7zK,IAAKo3J,GAAcx/K,KAAKu5L,cAAc/Z,KAE9Ex/K,KAAKuzL,gBAAgB76I,OAAO85H,GAC5BjxK,IACC,MAAOqhD,GACR0F,EAAO,yBAAD3mD,OAA0BihD,EAAG,SAK/BmrB,aACN,OAAQ/tE,KAAK8jJ,UAEV9jJ,KAAKqrC,eAAe0xB,UAAU,aAAcniB,MAAOr5C,EAAS+mD,KAAY,IAAD6zI,EAAAC,EAAAC,EAEvE,UACOr8L,KAAK29K,eAAe+C,qBACzB,MAAO99H,GACR5iD,KAAK6iD,MAAM,oCAAqCD,GAGjD,UACO5iD,KAAK04L,eACV,MAAO91I,GACR5iD,KAAK6iD,MAAM,oCAAqCD,GAGjD5iD,KAAKkiD,iBAAmB,KACxBliD,KAAKu3L,kBAAoB,EACzBv3L,KAAKuzL,gBAAgBxlI,SACA,QAAjBouI,EAAAn8L,KAAKg3L,oBAAY,IAAAmF,OAAA,EAAjBA,EAAmBpyL,QAAS,GAC/B/J,KAAKg3L,aAAanhK,OAAO,IAEH,QAAnBumK,EAAAp8L,KAAKi3L,sBAAc,IAAAmF,OAAA,EAAnBA,EAAqBryL,QAAS,GACjC/J,KAAKi3L,eAAephK,OAAO,IAEV,QAAdwmK,EAAAr8L,KAAKm3L,iBAAS,IAAAkF,OAAA,EAAdA,EAAgBtyL,QAAS,GAC5B/J,KAAKm3L,UAAUthK,OAAO,GAGnB71B,KAAKs3L,sBACRt3L,KAAKs3L,oBAAoB1qL,YAAYipB,OAAO,GAC5C71B,KAAKs3L,yBAAsB1sL,GAG5B5K,KAAK42L,iBAAiB7oI,QAElB/tD,KAAKs8L,yBACRt8L,KAAKs8L,wBAAwBzI,UAE9B7zL,KAAKq3L,0BAA0BxD,UAE/BtyL,IACAvB,KAAK2iD,KAAK,kBAzCVma,QAAQv7D,UA6CL2kB,eAAezD,EAAgB/Y,GACrC,OAAO1J,KAAK02L,gBAAgB3rK,IAAI,GAADppB,OAAI8gB,EAAM,KAAA9gB,OAAI+H,IAGvC6yL,cAAcl5K,GACpBrjB,KAAK02L,gBAAgB34K,IAAI,GAADpc,OAAI0hB,EAAWmyB,EAAC,KAAA7zC,OAAI0hB,EAAWuN,GAAKvN,GAGrDw1K,UAAUlD,GACjB,OAAO31L,KAAK29K,eAAe73K,QAAQ9F,KAAK+3C,OAAOykJ,aAAc7G,GAK9D,aAAqB56K,GAUpB,OAAO/a,KAAK29K,eAAel8G,KAAK1mD,GA2BzBq+K,YACPxY,EACAj5H,GAEA,OAAO3nD,KAAK29K,eAAe3mJ,UAAU4pJ,EAASj5H,GAGvC4xI,cAAc3Y,GACrB,OAAO5gL,KAAK29K,eAAetmJ,YAAYupJ,GAGhCsb,kBAAkBtb,GACzB,OAAO5gL,KAAK29K,eAAemY,gBAAgBlV,GAGpC8X,eACP,OAAO14L,KAAK29K,eAAe5vG,c,uJCvkH7B0uH,KAAQtrK,IACPurK,KACAC,KACAC,MACAC,MACAC,MACAC,MACAC,KACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAC,MACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAhB,MACAiB,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAC,MACAC,MACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAC,MACAC,KACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,MACAC,MACAC,MACAC,KACAC,MACAC,KACAC,KACAC,MACAC,KACAC,KACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,MACAC,MACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAC,KACAX,MACAC,KACAW,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAC,KACAC,KACAC,MACAC,KACAC,MACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAC,KACAC,MACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAC,KACAC,MACAC,KACAC,MACAC,MACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,MACAC,MACAC,MACA9iD,MACAC,MACA8iD,KACAC,KACAC,KACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAC,KACAC,KACAD,KACAE,KACAC,KACAC,MACAC,KACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,MACAC,MACAC,MACAC,MACAC,MACAC,MACAC,MACAC,KACAC,MACAC,MACAC,KACAC,KACAC,KACAd,KACAe,KACAC,MACAC,KACAC,KACAC,KACAC,KACAC,M,cC7bc/rB,OAdAgsB,aAAQ,CAEtBC,YAAa,aAGbC,UAAW9oM,yCAGX+oM,eAAgBvmK,IAGhBwmK,YAAahpM,e,UCJd,IAAIipM,GANJtvJ,KAAMuvJ,SAASC,QAAUnpM,gCACzB25C,KAAMuvJ,SAASE,iBAAkB,EACjCzvJ,KAAMuvJ,SAASpvJ,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","file":"static/js/main.17ea6ab8.chunk.js","sourcesContent":["export enum MarketsGroupName {\n\tRisers = 'Risers',\n\tFallers = 'Fallers',\n\tMostVolatile = 'Most volatile',\n\tRisersSB = 'Risers SB',\n\tFallersSB = 'Fallers SB',\n\tMostVolatileSB = 'Most volatile SB',\n\tCommodities = 'Commodities',\n\tCrypto = 'Crypto',\n\tCryptoSB = 'CryptoSB',\n\tEnergy = 'Energy',\n\tEnergySB = 'EnergySB',\n\tCFD = 'CFD',\n\tETF = 'ETF',\n\tForex = 'Forex',\n\tForexSB = 'ForexSB',\n\tIndices = 'Indices',\n\tIndicesSB = 'IndicesSB',\n\tMetals = 'Metals',\n\tMetalsSB = 'MetalsSB',\n\tStocks = 'Stocks',\n\tEquities = 'Equities',\n\tTier1 = 'Tier1',\n\tTier2 = 'Tier2',\n\tTier3 = 'Tier3',\n}\nexport enum MarketsGroupTooltips {\n\tRisers = 'RISERS_TOOLTIP',\n\tFallers = 'FALLERS_TOOLTIP',\n\t'Most volatile' = 'MOST_VOLATILE_TOOLTIP',\n\t'Risers SB' = 'RISERS_TOOLTIP',\n\t'Fallers SB' = 'FALLERS_TOOLTIP',\n\t'Most volatile SB' = 'MOST_VOLATILE_TOOLTIP',\n\tCommodities = 'COMMODITIES_TOOLTIP',\n\tCrypto = 'CRYPTO_TOOLTIP',\n\tCryptoSB = 'CRYPTO_TOOLTIP',\n\tEnergy = 'ENERGY_TOOLTIP_CFD',\n\tEnergySB = 'ENERGY_TOOLTIP',\n\tCFD = 'SHARE_TOOLTIP_CFD',\n\tETF = 'ETF_TOOLTIP_CFD',\n\tForex = 'FOREX_TOOLTIP_CFD',\n\tForexSB = 'FOREX_TOOLTIP',\n\tIndices = 'INDICES_TOOLTIP',\n\tIndicesSB = 'INDICES_TOOLTIP_SB',\n\tMetals = 'METALS_TOOLTIP',\n\tMetalsSB = 'METALS_TOOLTIP_SB',\n\tEquities = 'SHARE_TOOLTIP_CFD',\n}\n\nexport enum Topic {\n\tUnknown = 0,\n\tQuotes = 1,\n\tHistory = 2,\n\tAlarms = 3,\n\tTrading = 4,\n\tNews = 5,\n\tConnection = 6,\n\tService = 7,\n}\n\nexport enum Result {\n\tUnknown = 0,\n\tOK = 1,\n\tERROR = 2,\n}\nexport enum SubType {\n\tUnknown = 0,\n\tSUB = 1,\n\tUNSUB = 2,\n\tCL_REQ = 3,\n\tNONE = 4,\n}\n\nexport enum MarketsGroupPeriod {\n\tDaily = 1440,\n\tWeekly = 10080,\n}\n\nexport enum RequestState {\n\tNone,\n\tInProgress,\n\tSuccess,\n\tError,\n}\n\nexport enum AppComponentType {\n\tUploadDocuments = 10,\n\tOpenAccount = 20,\n\tCompleteOnboarding = 30,\n\tFunds = 40,\n\tReports = 50,\n\tDeposits = 60,\n\tWatchlist = 70,\n\tMarkets = 80,\n\tStatus = 90,\n\tCalendar = 100,\n\tPortal = 110,\n\tTradersGym = 120,\n\tSignals = 130,\n\tTutorials = 140,\n}\n\n/** MarginAccountType The flag which describes the account level setting for margin calculations (0: Hedged, 1: Unhedged, 2: Japan) */\nexport enum MarginAccountType {\n\tHedged = 0,\n\tUnhedged = 1,\n\tJapan = 2,\n}\n\nexport enum QuantityType {\n\tAmount = 1,\n\tLots = 2,\n}\n\n//Support contact phone numbers per region\nexport enum PhoneNumbers {\n\tUK = '44 203 514 2374',\n\tAU = '61 3 9093 3400',\n\tSA = '27 10 446 5933',\n\tCY = '357 252 621 49',\n\tES = '34 911 984 469',\n\tIT = '39 023 0579033',\n\tBR = '55 11 4858 4252',\n\tJA_INTL = '81 0120 010 097',\n\tJA_LOCAL = '03-6866-2804',\n}\n\n//Application Statuses\nexport enum ApplicationStatus {\n\tEMPTY = 'EMPTY',\n\tAPPROVED = 'APPROVED',\n\tFUNDED_TRADER = 'FUNDED_TRADER',\n\tPENDING = 'PENDING',\n\tINCOMPLETE = 'INCOMPLETE',\n\tPENDING_REVIEW = 'PENDING_REVIEW',\n\tPENDING_PROPER_DOCUMENTS = 'PENDING_PROPER_DOCUMENTS',\n\tPENDING_APPROPRIATENESS_TEST = 'PENDING_APPROPRIATENESS_TEST',\n\tPENDING_TRANSLATION = 'PENDING_TRANSLATION',\n\tPENDING_RG227 = 'PENDING_RG227',\n\tPENDING_BLURRY_CROPPED_ID = 'PENDING_BLURRY_CROPPED_ID',\n\tPENDING_BLURRY_POA = 'PENDING_BLURRY_POA',\n\tPENDING_ADDRESS = 'PENDING_ADDRESS',\n\tPENDING_ID = 'PENDING_ID',\n\tPENDING_E_VERIFICATION = 'PENDING_E_VERIFICATION',\n\tPENDING_E_VERIFICATION_RETRY = 'PENDING_E_VERIFICATION_RETRY',\n\tPENDING_ID_ADDRESS = 'PENDING_ID_ADDRESS',\n\tLEVEL1_APPROVED = 'LEVEL1_APPROVED',\n\tPENDING_KYC = 'PENDING_KYC',\n\tMANUAL_DOCS = 'MANUAL_DOCS',\n\tDENIED = 'DENIED',\n\tPENDING_TRANSFER = 'PENDING_TRANSFER',\n\tPENDING_NEW_TnC_ACCEPTANCE = 'PENDING_NEW_TnC_ACCEPTANCE',\n\tFAILED = 'FAILED',\n\tINTERNAL_TESTING = 'INTERNAL_TESTING',\n\tPENDING_IP_MISMATCH = 'PENDING_IP_MISMATCH',\n\tPENDING_DOB_MISMATCH = 'PENDING_DOB_MISMATCH',\n\tPENDING_DOB_ADDRESS_MISMATCH = 'PENDING_DOB_ADDRESS_MISMATCH',\n\tPENDING_ADDRESS_MISMATCH = 'PENDING_ADDRESS_MISMATCH',\n\tPENDING_SOF = 'PENDING_SOF',\n\tPENDING_NO_KYC_DOCS = 'PENDING_NO_KYC_DOCS',\n\tPENDING_EMAIL = 'PENDING_EMAIL',\n\tPENDING_NO_ID = 'PENDING_NO_ID',\n\tDUPLICATE = 'DUPLICATE',\n}\n\n//Chart Timezone\nexport enum ChartTimezone {\n\tLocal = 'Local',\n\tGMT = 'UTC',\n\tNYT = 'America/New_York',\n}\n\nexport enum TicketLayout {\n\tDock = 'Dock',\n\tUndock = 'Undock',\n}\n\nexport enum GridType {\n\tPosition = 'position',\n\tOrder = 'order',\n\tClose = 'close',\n}\n\nexport enum TradingPositionType {\n\tMarket = 'MARKET',\n\tLimit = 'LIMIT',\n\tStop = 'STOP',\n}\nexport enum stopLossTypes {\n\tNormal = 'NORMAL',\n\tTrailing = 'TRAILING',\n}\n\nexport enum TradingPositionLimitType {\n\tStopLoss = 'StopLoss',\n\tTakeProfit = 'TakeProfit',\n}\n\nexport enum TradingPositionSide {\n\tBuy = 'BUY',\n\tSell = 'SELL',\n}\n\nexport enum TradingAccountType {\n\tDEMO = 'DEMO',\n\tLIVE = 'LIVE',\n\tGYM = 'GYM',\n}\n\nexport const QUANTITY_TYPE: { [key: string]: string } = {\n\tLOTS: 'Lots',\n\tAMOUNT: 'Amount',\n};\n\nexport enum TradingValueType {\n\tPRICE = 'PRICE',\n\tPIPS = 'PIPS',\n}\n\nexport enum SignalType {\n\tLiveTrade = 9,\n\tBuyLimit = 16,\n\tSellLimit = 14,\n\tBuyStop = 15,\n\tSellStop = 13,\n}\n\nexport enum ThaiPriceType {\n\tBuy = 'ซื้อ',\n\tSell = 'ขาย',\n}\n\nexport enum WatchListCountries {\n\tAU,\n\tCN,\n\tDE,\n\tES,\n\tHK,\n\tID,\n\tNL,\n\tNZ,\n\tPH,\n\tTH,\n\tTW,\n\tZA,\n}\n","import { Result, Topic, SubType, TradingPositionSide, TradingPositionType } from '../../utils/functions/enums';\n\nexport enum RFPDataObjectType {\n\tAll,\n\tHistoryTickItems,\n\tHistoryTick,\n\tHistorySize,\n\tPriceQuote,\n\tTfboLoginResponse,\n\tTfboEndpointResponse,\n\tPong,\n\tFeedInfos,\n\tMarketItemsRecord,\n\tMarketItem,\n\tMarketItemsInfoRecord,\n\tMarketItemInfo,\n\tTradingAccount,\n\tTradingAccountLogin,\n\tTradingInstruments,\n\tTradingProvider,\n\tTradeEvent,\n\tTradingPosition,\n\tMarketWatchIntervals,\n\tMarketWatchCategories,\n\tMarketWatchItem,\n\tMarketWatchItems,\n\tRFPNews,\n\tClientCommandResult,\n\tSessionError,\n\tHistoryTimescaleStartDate,\n\tTradingAccountsError,\n\tTradingAccountLogout,\n\tTTSessionTimes,\n}\n\nexport interface RFPDataObject {\n\tdataObjectType: RFPDataObjectType;\n}\n\nexport interface ClientCommandResult extends RFPDataObject {\n\treqId?: string;\n\tfeedId?: string;\n\tcode?: string;\n\tmsg?: string;\n\n\tobjId: string;\n\n\ttopic: Topic;\n\tresult: Result;\n\tsubType: SubType;\n}\n\nexport interface SessionError extends RFPDataObject {\n\terror?: string;\n}\n\nexport interface RFPLoginPayload {\n\tusername: string;\n\tpassword: string;\n\ttradingMode: TradingMode;\n}\n\nexport interface RFPConnectPayload {\n\tusername: string;\n\tpassword?: string;\n\tauthToken?: string;\n\tsso_token?: string;\n\ttradingMode: TradingMode;\n\tenableSSO?: boolean;\n\tlang?: string;\n\tskip_tfbo_login: boolean;\n\tcaptcha_response?: string;\n\trfpUrl?: string;\n}\n\nexport enum RFPConnectionErrorType {\n\tAuthenticationFailed = 'Error: Authentication failed.',\n\tAuthenticationTimeout = 'Error: Authentication timeout.',\n\tRequestFeedIdsTimeout = 'Error: Timeout requesting feedIDs.',\n\tConnectionToServerClosed = 'Connection to server closed',\n}\n\nexport interface RFPConnectResult {\n\tsuccess: boolean;\n\tstatus: number;\n\temail?: string | null | undefined;\n\ttfboSessionId?: string | null | undefined;\n\ttfboToken?: string | null | undefined;\n\terror?: string | null | undefined;\n\tprop?: { [k: string]: string } | null | undefined;\n\tlogin_mode?: TradingMode | null | undefined;\n\tfundedTrader?: boolean | null | undefined;\n\trfpUrl?: string | null | undefined;\n}\n\nexport const TRADING_MODE_LIVE = 'LIVE';\nexport const TRADING_MODE_DEMO = 'DEMO';\n\nexport type TradingMode = typeof TRADING_MODE_LIVE | typeof TRADING_MODE_DEMO;\n\ninterface RFPWebProxyHeaders {\n\t'heart-beat': string;\n\t'user-name': string;\n\tversion: string;\n\tsubscription?: any;\n}\n\nexport interface Frame {\n\tbody: string;\n\tcommand: string;\n\theaders: RFPWebProxyHeaders;\n\tack?: (headers: unknown) => void;\n\tnack?: (headers: unknown) => void;\n}\n\nexport interface FeedInfo {\n\tfeedID: string;\n\tinitialGroup: null;\n\tname: string;\n\tvariant: null;\n}\n\nexport interface FeedInfos extends RFPDataObject {\n\tfeedIds: FeedInfo[];\n}\n\nexport interface TradingProvider extends RFPDataObject {\n\tdescription: string;\n\tdisplayName: string;\n\tfeedID: string;\n\tid: number;\n\tuniqueName: string;\n}\n\n// These fields are finally working as expected for field accountMarketType on account.\nexport enum AccountMarketType {\n\tCFD = 0,\n\tAustralia = 1,\n\tAfrica = 2,\n\tJapan = 3,\n\tSpreadBetting = 4,\n\tJapanSpread = 5,\n}\n\nexport interface RFPTradingAccountsError {\n\tdataObjectType: RFPDataObjectType;\n\tproviderId: number;\n\terrorMessage: string;\n}\n\nexport interface TradingAccount extends RFPDataObject {\n\taccountType: 'DEMO' | 'LIVE' | 'GYM';\n\tbalance: number;\n\tbaseCurrency: string;\n\tcredit: number;\n\tequity: number;\n\tfreeMargin: number;\n\tgrossProfit: number;\n\tid: number;\n\tleverage: number;\n\tmarginLevel: number;\n\tpreferredFeed: string;\n\tproviderAccountId: string;\n\taccountNumber?: number;\n\tproviderId: number;\n\tusedMargin: number;\n\tmarginCalculationType?: number;\n\tval?: MarketItem;\n\ttradingInstruments?: TradingInstruments;\n\tactivePositions: Record;\n\tclosedPositions: Record;\n\tnetProfit: number;\n\tisJapanAccount: boolean;\n\tenabled: boolean;\n\taccountMarketType: AccountMarketType;\n\tisLoggedIn: boolean;\n}\n\nexport interface QuantityTypeUpdate {\n\tquantityType: number;\n\taccId: number;\n}\n\nexport interface DemoAccountParams {\n\tdefaultCode: string;\n\tinstruments: { code: string }[];\n\tmsgType: number;\n\ttpId: number;\n}\n\nexport interface NewsSubscriptionRequest {\n\taction: SubscriptionAction;\n\tmsgCount: number;\n}\n\nexport interface MarketWinNewsSubscriptionRequest {\n\tsubscribe: boolean;\n}\n\nexport interface NewsApiResponse {\n\tlimit: number;\n\toffset: number;\n\trequest: [];\n\tsorOrder: string;\n\tsortBy: string;\n\tsortOrder: string;\n}\n\nexport interface RFPNews extends RFPDataObject {\n\tbody: string;\n\tcountry?: string;\n\tcurrencies?: string[];\n\theadline: string;\n\tid: number;\n\tnewsCategoryId?: string;\n\tnewsTypeId?: string;\n\trevision?: number;\n\ttime: Long;\n\texternalLinkUrl?: string;\n}\n\nexport interface MarketItemsRecord extends RFPDataObject {\n\tmarketItems: MarketItem[];\n}\n\nexport interface MarketItem extends RFPDataObject {\n\tbCcy: string;\n\tccy: string;\n\tcode: string;\n\tdecPrec: number;\n\tdisplayName: string;\n\tfullName: string;\n\tfeedId: string;\n\tflags: number;\n\tgrp: string;\n\tisin: string;\n\tmarginType: number;\n\tpipSizeH: string;\n\tqCcy: string;\n\tquoteCurrency?: string; //TODO remove this field, as it does not appear to be sent by RFP\n\ttickSize: number;\n\ttradable?: boolean | null | undefined;\n\texchangeCountryCode?: string | null | undefined;\n\tsector?: string | null | undefined;\n\texchangeTicker?: string | null | undefined;\n\tvolatility?: string | number;\n\tpercentChange?: string | number;\n\tmarketItemInfo?: MarketItemInfo | null;\n\tminTier?: number | null;\n\tcategory?: string;\n\twatchlistRank?: number | null;\n\tsubscriptionCounter: number;\n\taccountMarketType: AccountMarketType;\n\taccountType: AccountMarketType;\n\ttradingSessions?: TradingSessions;\n}\n\nexport enum DayOfWeek {\n\tSunday = 0,\n\tMonday = 1,\n\tTuesday = 2,\n\tWednesday = 3,\n\tThursday = 4,\n\tFriday = 5,\n\tSaturday = 6,\n}\n\nexport interface TradingSession {\n\tisOpen: boolean;\n\tday: DayOfWeek;\n\topenDate: Date;\n\tcloseDate: Date;\n\tschedule: { start: string; end: string };\n}\n\nexport interface TradingSessions {\n\t//Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday\n\tsessions: TradingSession[][];\n\ttimezone: string;\n\tutcTimeOffset: number; // in hours\n}\n\nexport interface MarketItemsInfoRecord extends RFPDataObject {\n\tmarketItemsInfo: MarketItemInfo[];\n}\n\nexport interface MarketItemInfo extends RFPDataObject {\n\tcode: string;\n\tdecimalPrecision: string;\n\tfeedId: string;\n\tformatLength: string;\n\tformatPosition: string;\n\tpipSize: string;\n\ttickSize: string;\n}\n\nexport interface SelectedSymbol {\n\t[chartId: string]: MarketItem;\n}\n\nexport interface TradingAccountLoginRequest {\n\taction: 'Login';\n\ttradingAccountId: number;\n}\n\nexport interface TradingAccountLogoutRequest {\n\tacct_id: number;\n}\nexport interface RequestTTWatchList {\n\tisoCode: string;\n}\n\nexport interface RequestRfpServerNames {\n\treqId: string;\n\tacctIds: string[];\n}\n\nexport interface TTWatchListItem {\n\ttitle: string;\n\torder: number;\n\tcodes_csv: any;\n}\n\nexport interface TTWatchList {\n\tisoCode: string;\n\titems: TTWatchListItem[];\n}\n\nexport interface RFPServerItem {\n\tttAccountId: string;\n\trfpServerName: string;\n\trfpDnsName: string;\n}\nexport interface RfpServerNames {\n\treqId: string;\n\trfpServerNames: RFPServerItem[];\n}\n\nexport interface TradingAccountLogin extends RFPDataObject {\n\taccountId: number;\n\terror: null | string;\n\tloggedOn: boolean;\n}\n\nexport interface AccountTierRequest {\n\taccountId: string;\n}\n\nexport interface AccountTierResponse {\n\taccountId: string;\n\terror: string;\n\tenabled: boolean;\n\ttier: number;\n\tusedUnits: number;\n\tavailableUnits: number;\n\tmaxUnits: number;\n}\n\nexport interface TradingInstruments extends RFPDataObject {\n\taccount: number;\n\tinstruments: {\n\t\t[key: string]: Instrument;\n\t};\n}\n\nexport interface Instrument {\n\tamtDPrec: number;\n\tccy: string;\n\tcode: string;\n\tgrp: string;\n\tlotDPrec: number;\n\tmaxL: number;\n\tminL: number;\n\tpipPos: number;\n\trndLot: number;\n\trshL: number;\n\trshS: number;\n\tsDig: number;\n\tstpL: number;\n\tswpL: number;\n\tswpS: number;\n\ttrPeriod: string;\n\ttickValue?: number;\n\ttickSize?: number;\n\tmarginReq?: number;\n\n\tmaxAmount: number;\n\tminAmount: number;\n\tstepAmount: number;\n\n\tthreeDaySwap: string;\n\n\tmtReqMx: number;\n\tmtValOne: number;\n\tmtReqOne: number;\n\tmtValTwo: number;\n\tmtReqTwo: number;\n\tmtValThree: number;\n\tmtReqThree: number;\n\tmtValFour: number;\n\tmtReqFour: number;\n\tmtValFive: number;\n\tmtReqFive: number;\n\tmtValSix: number;\n\tmtReqSix: number;\n}\n\nexport interface RequestTTMarginRules {\n\taccountId: number;\n}\n\nexport interface TTMarginRuleItem {\n\tid: number;\n\tname: string;\n\tinstruments: string;\n\ttierValues: string;\n\ttierRequirements: string;\n\tscheduleEnabled: number;\n\tdayIndexesSundayFirst: string;\n\tdayValues: string;\n}\n\nexport interface TTMarginRules {\n\taccountId: number;\n\titems: TTMarginRuleItem[];\n}\n\nexport enum PositionSide {\n\tPSD_UNKNOWN = 0,\n\tBUY = 1,\n\tSELL = 2,\n}\n\n/*REQ_FUTURE_MARGIN*/\nexport interface RequestFutureMargin {\n\tacctId: number;\n\tamount: number;\n\tsymbol: string;\n\treqId: string;\n\tside: PositionSide;\n}\n\n/*FUTURE_MARGIN*/\nexport interface FutureMargin {\n\tmargin: number;\n\treqId: string;\n}\n\nexport interface HistoryRequest {\n\treqId: string;\n\tfeedId: string;\n\tcode: string;\n\tpriceType: PriceType;\n\ttimescale: TimeScale;\n\ttickCount?: number;\n\tstartTime?: number;\n\tendTime?: number;\n}\n\nexport interface HistorySubscription extends HistoryRequest {\n\taction: SubscriptionAction;\n}\n\nexport interface HistoryRequestStartDate {\n\tfeedId: string;\n\tcode: string;\n\ttimeInterval: number; //interval_min\n}\n\nexport interface HistoryTimescaleStartDate extends RFPDataObject {\n\tfeedId: string;\n\tcode: string;\n\ttimeInterval: number; //interval_min\n\ttime: number; //time in seconds\n}\n\nexport type PriceQuote = RFPDataObject & {\n\t/** ask */\n\ta: number;\n\t/** bid */\n\tb: number;\n\t/** symbol */\n\tc: string;\n\t/** feed ID */\n\tf: string;\n\t/** high */\n\th: number;\n\t/** low */\n\tl: number;\n\t/** timestamp */\n\tt: number;\n};\n\nexport type PriceType = 'Bid' | 'Ask' | 'Average';\n\nexport type TimeScale =\n\t| 'TS_1MIN'\n\t| 'TS_2MIN'\n\t| 'TS_3MIN'\n\t| 'TS_5MIN'\n\t| 'TS_10MIN'\n\t| 'TS_15MIN'\n\t| 'TS_30MIN'\n\t| 'TS_1HOUR'\n\t| 'TS_2HOUR'\n\t| 'TS_3HOUR'\n\t| 'TS_4HOUR'\n\t| 'TS_6HOUR'\n\t| 'TS_8HOUR'\n\t| 'TS_12HOUR'\n\t| 'TS_1DAY'\n\t| 'TS_1WEEK'\n\t| 'TS_1MONTH';\n\nexport interface HistoryTick extends RFPDataObject {\n\treqId: string;\n\tfeedId: string;\n\tcode: string;\n\n\tcontinuousFlag: number;\n\ttimescale: TimeScale;\n\n\topen: number;\n\thigh: number;\n\tlow: number;\n\tclose: number;\n\n\tcloseTime: number;\n\tvolume: number;\n\n\topenTime: number;\n}\n\nexport interface HistoryTickItems extends RFPDataObject {\n\treqId: string;\n\tfeedId: string;\n\tcode: string;\n\ttimeScale: TimeScale;\n\n\thistoryTicks: HistoryTick[];\n}\n\nexport interface HistorySize extends RFPDataObject {\n\treqId: string;\n\tfeedId: string;\n\tcode: string;\n\trfpTimingInterval: number;\n\tduration: number;\n\tsize: number;\n}\n\nexport interface FeedSubscription {\n\tfeedId: string;\n}\n\nexport interface RFPRequestTTSessionTimes {\n\tcode: string;\n}\n\nexport interface RFPSessionTimes extends RFPDataObject {\n\tserverTimeZone: string;\n\tsymbol: string;\n\ttrading: string;\n}\n\nexport interface SocketHeaders {\n\tAuthorization: string;\n}\n\nexport interface QuoteSubscription {\n\taction: SubscriptionAction;\n\tfeedId: string;\n\tmarketItems: MarketItem[];\n}\n\nexport enum SubscriptionAction {\n\tSubscribe,\n\tUnsubscribe,\n\tSnapshot,\n}\n\nexport interface RFPInfo {\n\tclReqId: string;\n\tcode: string | null;\n\tfeedId: string | null;\n\tmsg: string;\n\tobjId: null;\n\tresult: string;\n\tsubType: string;\n\ttopic: string;\n}\n\nexport interface IChartParameters {\n\tfunc: string;\n\tsymbol: string;\n\tperiod: number;\n\ttimeUnit: string;\n\tinterval: number;\n\tstart: string;\n\tend: string;\n}\n\nexport interface RFPLoginError {\n\terror: string;\n\tmessage: string;\n\tpath: string;\n\tstatus: number;\n\ttimestamp: string;\n}\n\nexport interface RFPLoginSuccess {\n\taccessToken: string;\n\temail: string;\n\tid: number;\n\troles: string[];\n\ttfboSessionId: string;\n\ttfboToken: string;\n\ttokenType: 'Bearer';\n\tusername: string;\n}\n\nexport enum TradingPositionState {\n\topen = 'OPEN',\n\tpending = 'PENDING',\n\tclosed = 'CLOSED',\n\tcanceled = 'CANCELED',\n\tdeleted = 'DELETED',\n}\n\n// export enum LocalizationLang {\n// 'none' = ProtobufSchema.types.LocalizationLang.,\n// 'en' = 'en',\n// 'zh-Hans' = 'cn',\n// 'zh-Hant' = 'ct',\n// 'de' = 'de',\n// 'ms-MY' = 'ms_MY',\n// 'pt-BR' = 'pt_BR',\n// 'th' = 'th',\n// 'vi' = 'vi',\n// 'ar-SA' = 'ar_SA',\n// 'ja' = 'ja'\n// }\n\nexport interface TradingPosition extends RFPDataObject {\n\taId: number;\n\tstate: TradingPositionState;\n\tside: TradingPositionSide;\n\tcode: string;\n\tf: string;\n\ttype?: TradingPositionType;\n\toP?: number;\n\tcP?: number;\n\tprc?: number;\n\tcomm?: number;\n\tswap?: number;\n\tqty?: number;\n\toT?: number;\n\tcT?: number;\n\teT?: number;\n\tsl?: number;\n\ttp?: number;\n\tposId?: number;\n\tqCcy?: string;\n\tdec?: number;\n\tgrossProfit?: number;\n\tdividend?: number;\n\tmarketItem?: MarketItem;\n\tcurrentPrice?: number;\n\tpips?: number;\n\tadditionalSubscriptionPair: Set;\n\tnetProfit?: number;\n\tcomment?: string;\n\tcancelRequestSent?: boolean;\n\topenAskPrice?: number;\n\topenBidPrice?: number;\n\tcloseAskPrice?: number;\n\tcloseBidPrice?: number;\n\ttrailingStop?: number;\n}\n\nexport type orderTypes = 'market' | 'limit' | 'stop' | '';\n\nexport interface NewOrderRequest {\n\treqId: number;\n\tacctId: number;\n\tfeedId: string;\n\tcode: string;\n\ttradeSize: number;\n\ttradeSide: 'BUY' | 'SELL' | 'NEW';\n\ttradeType: 'STOP' | 'LIMIT';\n\texpiration?: OrderExpiration;\n\tlimitLevel?: number;\n\tstopLevel?: number;\n\tpriceLevel?: number;\n\ttrailingStop?: number;\n}\n\nexport interface EditOrderRequest {\n\treqId: number;\n\tacctId: number;\n\tposId: number;\n\tpriceLevel?: number;\n\texpiration?: OrderExpiration;\n\tlimitLevel: string | number | null;\n\tstopLevel: string | number | null;\n\ttrailingStop?: string | number | null;\n}\n\nexport interface NewPositionRequest {\n\treqId: number;\n\tacctId: number;\n\tfeedId: string;\n\tcode: string;\n\ttradeSize: number;\n\ttradeSide: 'BUY' | 'SELL' | 'NEW';\n\tlimitLevel?: number;\n\tstopLevel?: number;\n\ttrailingStop?: number;\n}\n\nexport interface EditPositionRequest {\n\treqId: number;\n\tacctId: number;\n\tposId: number;\n\tlimitLevel: string | null;\n\tstopLevel: string | null;\n\ttrailingStop?: string | null;\n}\n\nexport interface CloseTradeRequest {\n\tposId: number;\n\ttrAccountId: number;\n}\n\nexport interface PartialCloseRequest {\n\tposId: number;\n\ttrAccountId: number;\n\tamount: number;\n}\n\nexport interface MarketWatchSnapshotsRequest {\n\tcategoryName: string;\n\tintervalLength: number;\n}\n\nexport interface MarketWatchIntervals extends RFPDataObject {\n\tfeedId: string;\n\tintervalLength: number[];\n}\n\nexport interface MarketWatchCategory {\n\tname?: string | null | undefined;\n\tintervalLength?: number | null | undefined;\n\titemsCount?: number | null | undefined;\n\tdynamic?: boolean | null | undefined;\n}\n\nexport interface MarketWatchCategories extends RFPDataObject {\n\tfeedId: string;\n\tcategories: MarketWatchCategory[];\n}\n\nexport interface MarketWatchItem extends RFPDataObject {\n\tfeedId?: string | null | undefined;\n\tcode?: string | null | undefined;\n\tintervalLength?: number | null | undefined;\n\tvolatility?: number | null | undefined;\n\tpercentChange?: number | null | undefined;\n\thigh?: number | null | undefined;\n\tlow?: number | null | undefined;\n\tbid?: number | null | undefined;\n\task?: number | null | undefined;\n}\n\nexport interface MarketWatchItems extends RFPDataObject {\n\tfeedId: string;\n\tdynamic_category: string | null | undefined;\n\tcategory: string;\n\ttotNumMsgs: number;\n\tmsgNum: number;\n\titems: MarketWatchItem[];\n}\n\nexport interface MarketWatchSubscriptionRequest {\n\tcode: string[];\n\tintervalLength: number;\n\tsubscribe: boolean;\n}\n\nexport interface MarketWatchDynamicSubscriptionRequest {\n\tcategory: string;\n\tintervalLength: number;\n\tsubscribe: boolean;\n}\n\nexport interface Ping {}\n\nexport interface Pong extends RFPDataObject {}\n\nexport interface TfboLoginResponse extends RFPDataObject {\n\tsuccess: boolean;\n\terror: string;\n\ttfbo_session_id: string;\n\ttfbo_token: string;\n}\n\nexport interface TfboEndpointResponse extends RFPDataObject {\n\trestApiURL: string;\n\tuploadDocsURL: string;\n\texchangeRateURL: string;\n}\n\nexport interface TradeRequest {\n\tquantity: number;\n\tquantityType: string;\n\tsl: string;\n\ttp: string;\n\ttypeOfOrder: orderTypes;\n\tacctId?: number;\n\ttradeType?: string;\n\texpiration?: OrderExpiration;\n\tposId?: number;\n\tcode?: string;\n\tlotAmountQty?: number;\n\ttradeSize?: number;\n\tlimitLevel?: number;\n\tstopLevel?: number;\n\tpriceLevel?: number;\n\ttradeSide?: string;\n}\n\nexport interface TradeEvent extends RFPDataObject {\n\tmessage?: string | null;\n\tmessageType?: string | null;\n\trequestId?: string | number | null;\n\tevents?: Array<{ message?: string | null; error?: string | null; messageType?: string | null }>;\n}\n\nexport interface InstrumentLastTrade {\n\t[instrument: string]: TradeRequest;\n}\n\nexport type PositionState = 'OPEN' | 'PENDING' | 'CLOSED' | null;\n\nexport type OrderExpiration = 'EXP_DAY' | 'EXP_WEEK' | 'EXP_MONTH' | 'EXP_GTC' | 'CUSTOM' | number | null;\n\nexport interface PreviousDayClosePriceRequest {\n\tcode: string[];\n}\n\nexport interface PreviousDayClosePriceItem {\n\tcode?: string | null;\n\tprevClose?: number | null;\n}\nexport interface PreviousDayClosePrice {\n\tfeedId?: string;\n\titem?: PreviousDayClosePriceItem[];\n}\n\nexport interface PreviousDayClosePrices {\n\t[instrument: string]: number;\n}\n\nexport interface TierUpdateInfo {\n\taccountId: number;\n\ttierNum: number;\n}\n","import { createContext } from 'react';\nimport clone from 'clone';\n\nimport { Resolver } from '../utils/functions/Ioc';\nimport { default as Lazy } from '../utils/functions/Lazy';\nimport { Optional } from '../utils/functions/Nullable';\nimport { ObservableObject } from '../utils/functions/Observables';\nimport { TfboApiMethodMeta } from '../gateways/TfboGateway/TfboGateway.types';\nimport {\n\tlimitProfitLossValues,\n\toctStoredValues,\n\tTPreferenceResponse,\n} from '../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\nimport { SubscriptionInfo, SubscriptionModalState } from '../utils/functions/subscriptionUtils';\nimport { SignalsListType } from '../pages/Signals/Signals';\n\nexport type TAppTheme = 'light' | 'dark' | string;\n\nexport type TTradingMode = 'LIVE' | 'DEMO';\n\nexport type TAppCountry = {\n\tid: number;\n\ttext: string;\n\tvalue: string;\n\tcode: string;\n\tphoneCode: string;\n\tliveCurrency: string;\n\tdemoCurrency: string;\n};\n\nexport type TAppPhoneCode = {\n\ttext: string;\n\tvalue: string;\n};\n\nexport type TAppCurrency = {\n\tcountryId: number;\n\tcurrency: string;\n};\n\ntype TGetUserIpResponsePayloadResult = (typeof TfboApiMethodMeta)['utility.getUserIp']['responsePayload']['result'];\n\ntype TLoginResponsePayloadResult = (typeof TfboApiMethodMeta)['authentication.login']['responsePayload']['result'];\n\ntype TLoginResponseStatus = (typeof TfboApiMethodMeta)['authentication.login']['responsePayload']['status'];\n\ntype TFeedbackResponsePayloadResult = (typeof TfboApiMethodMeta)['profile.feedback']['responsePayload']['result'];\n\ntype TForgotPasswordResponsePayloadResult =\n\t(typeof TfboApiMethodMeta)['authentication.forgotPassword']['responsePayload']['result'];\n\ntype TSendEmailVerificationResponsePayloadResult =\n\t(typeof TfboApiMethodMeta)['emailValidation.sendVerificationCode']['responsePayload']['result'];\n\ntype TAccountStatsResponsePayloadResult = (typeof TfboApiMethodMeta)['account.stats']['responsePayload']['result'];\n\ntype TAppContextProperties = {\n\tisLoading: boolean;\n\taccessToken: Optional;\n\n\tfeedbackModal: boolean;\n\tcontactModal: boolean;\n\topenSettings: boolean;\n\tstatusModal: boolean;\n\treconnectModal: boolean;\n\tappTheme: TAppTheme;\n\taccountStats: TAccountStatsResponsePayloadResult['data'];\n\tipLocation: Optional;\n\temail: Optional;\n\tuserId: Optional;\n\tuserCountryISO: Optional;\n\tcountryData: Optional;\n\temailVerification: Optional;\n\tfeedbackResponse: Optional;\n\tfirstName: Optional;\n\tisLoggedIn: boolean;\n\tisTwofaEnabled: boolean;\n\tisArabic: boolean;\n\tlastName: Optional;\n\tloginResponse: Optional;\n\tloginResponseStatus: Optional;\n\tmodalId: Optional;\n\tphoneNumber: { phone: string; phoneCountryCode: number };\n\tresetPasswordInfo: Optional;\n\tselectedLanguage: string;\n\ttwofaBarcodeKey: Optional;\n\ttwofaSecretKey: Optional;\n\tuserPreferences: TPreferenceResponse | null;\n\tisChildWindow: Optional;\n\ttradingMode: TTradingMode;\n\tuserPreferenceError: boolean;\n\tlanguageSettings: string;\n\tisJapanAccount: boolean;\n\tagreementPendingVersion: string | null;\n\tsubscriptionInfo: SubscriptionInfo | null;\n\tsubscriptionModal: SubscriptionModalState | null;\n\tcanFetchSubscrInfo: boolean;\n\tcurrentlySelectedSignal: SignalsListType | null;\n\tlimitProfitLossValues: limitProfitLossValues | null;\n\toctStoredValues: octStoredValues | null;\n};\n\nconst defaultValues = new Lazy(() => {\n\treturn {\n\t\tisLoading: false,\n\t\tisArabic: localStorage.getItem('language') === 'ar-SA',\n\t\taccessToken: null,\n\t\tappTheme: localStorage.getItem('wt-theme') || 'light',\n\t\taccountStats: [],\n\t\tautoShowModal: false,\n\t\tstatusModal: false,\n\t\tnoDemoAccountModal: false,\n\t\tunapprovedAppModal: false,\n\t\tinsufficientFundModal: false,\n\t\tincompleteApplication: false,\n\t\tresetAccountModal: false,\n\t\tunderReviewModal: false,\n\t\tsuccessfulActCreation: false,\n\t\tfeedbackModal: false,\n\t\tcontactModal: false,\n\t\topenSettings: false,\n\t\treconnectModal: false,\n\t\tipLocation: null,\n\t\temail: null,\n\t\temailVerification: null,\n\t\tfeedbackResponse: null,\n\t\tfirstName: null,\n\t\tisLoggedIn: false,\n\t\tisTwofaEnabled: false,\n\t\tlastName: null,\n\t\tloginResponse: null,\n\t\tloginResponseStatus: null,\n\t\tmodalId: null,\n\t\tphoneNumber: { phone: '', phoneCountryCode: 0 },\n\t\tresetPasswordInfo: null,\n\t\tselectedLanguage: 'English',\n\t\ttwofaBarcodeKey: null,\n\t\ttwofaSecretKey: null,\n\t\tuserPreferences: null,\n\t\tuserId: null,\n\t\tisChildWindow: false,\n\t\ttradingMode: 'LIVE',\n\t\tuserPreferenceError: false,\n\t\tlanguageSettings: '',\n\t\tisJapanAccount: false,\n\t\tagreementPendingVersion: null,\n\t\tuserCountryISO: null,\n\t\tcountryData: null,\n\t\tsubscriptionInfo: null,\n\t\tsubscriptionModal: null,\n\t\tcanFetchSubscrInfo: false,\n\t\tcurrentlySelectedSignal: null,\n\t\tlimitProfitLossValues: {},\n\t\toctStoredValues: {},\n\t};\n});\n\ninterface IAppContext extends TAppContextProperties {\n\treset(): void;\n\tlogout(): void;\n}\n\nexport class AppContextProvider\n\textends ObservableObject\n\timplements IAppContext\n{\n\tprivate m_propertyValues: TAppContextProperties;\n\tprivate static _instance = new Lazy(() => {\n\t\treturn new AppContextProvider();\n\t});\n\n\tpublic static get instance(): AppContextProvider {\n\t\treturn this._instance.getValue();\n\t}\n\n\tpublic get isLoading(): boolean {\n\t\treturn this.m_propertyValues.isLoading;\n\t}\n\n\tpublic set isLoading(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('isLoading', value, this.m_propertyValues.isLoading, (value) => {\n\t\t\tthis.m_propertyValues.isLoading = value;\n\t\t});\n\t}\n\n\tpublic get isArabic(): boolean {\n\t\treturn this.m_propertyValues.isArabic;\n\t}\n\n\tpublic set isArabic(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('isArabic', value, this.m_propertyValues.isArabic, (value) => {\n\t\t\tthis.m_propertyValues.isArabic = value;\n\t\t});\n\t}\n\n\tpublic get userPreferenceError(): boolean {\n\t\treturn this.m_propertyValues.userPreferenceError;\n\t}\n\n\tpublic set userPreferenceError(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('userPreferenceError', value, this.m_propertyValues.userPreferenceError, (value) => {\n\t\t\tthis.m_propertyValues.userPreferenceError = value;\n\t\t});\n\t}\n\n\tpublic get languageSettings(): string {\n\t\treturn this.m_propertyValues.languageSettings;\n\t}\n\n\tpublic set languageSettings(value: string) {\n\t\tthis.raiseAndSetIfChanged('languageSettings', value, this.m_propertyValues.languageSettings, (value) => {\n\t\t\tthis.m_propertyValues.languageSettings = value;\n\t\t});\n\t}\n\n\tpublic get accessToken(): Optional {\n\t\treturn this.m_propertyValues.accessToken;\n\t}\n\n\tpublic set accessToken(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('accessToken', value, this.m_propertyValues.accessToken, (value) => {\n\t\t\tthis.m_propertyValues.accessToken = value;\n\t\t});\n\t}\n\n\tpublic get appTheme(): TAppTheme {\n\t\treturn this.m_propertyValues.appTheme;\n\t}\n\n\tpublic set appTheme(value: TAppTheme) {\n\t\tlocalStorage.setItem('wt-theme', value);\n\t\tthis.raiseAndSetIfChanged('appTheme', value, this.m_propertyValues.appTheme, (value) => {\n\t\t\tthis.m_propertyValues.appTheme = value;\n\t\t});\n\t}\n\n\tpublic get accountStats(): TAccountStatsResponsePayloadResult['data'] {\n\t\treturn this.m_propertyValues.accountStats;\n\t}\n\n\tpublic set accountStats(value: TAccountStatsResponsePayloadResult['data']) {\n\t\tthis.raiseAndSetIfChanged('accountStats', value, this.m_propertyValues.accountStats, (value) => {\n\t\t\tthis.m_propertyValues.accountStats = value;\n\t\t});\n\t}\n\n\tpublic get ipLocation(): Optional {\n\t\treturn this.m_propertyValues.ipLocation;\n\t}\n\n\tpublic set ipLocation(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('ipLocation', value, this.m_propertyValues.ipLocation, (value) => {\n\t\t\tthis.m_propertyValues.ipLocation = value;\n\t\t});\n\t}\n\n\tpublic get email(): Optional {\n\t\treturn this.m_propertyValues.email;\n\t}\n\n\tpublic set email(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('email', value, this.m_propertyValues.email, (value) => {\n\t\t\tthis.m_propertyValues.email = value;\n\t\t});\n\t}\n\n\tpublic get countryData(): Optional {\n\t\treturn this.m_propertyValues.countryData;\n\t}\n\n\tpublic set countryData(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('countryData', value, this.m_propertyValues.countryData, (value) => {\n\t\t\tthis.m_propertyValues.countryData = value;\n\t\t});\n\t}\n\n\tpublic get userCountryISO(): Optional {\n\t\treturn this.m_propertyValues.userCountryISO;\n\t}\n\n\tpublic set userCountryISO(value: Optional) {\n\t\tif (value) {\n\t\t\t// Setup is Japan Account\n\t\t\tthis.m_propertyValues.isJapanAccount = value.toUpperCase() === 'JP';\n\t\t}\n\n\t\tthis.raiseAndSetIfChanged('userCountryISO', value, this.m_propertyValues.userCountryISO, (value) => {\n\t\t\tthis.m_propertyValues.userCountryISO = value;\n\t\t});\n\t}\n\n\tpublic get userId(): Optional {\n\t\treturn this.m_propertyValues.userId;\n\t}\n\n\tpublic set userId(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('userId', value, this.m_propertyValues.userId, (value) => {\n\t\t\tthis.m_propertyValues.userId = value;\n\t\t});\n\t}\n\n\tpublic get emailVerification(): Optional {\n\t\treturn this.m_propertyValues.emailVerification;\n\t}\n\n\tpublic set emailVerification(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('emailVerification', value, this.m_propertyValues.emailVerification, (value) => {\n\t\t\tthis.m_propertyValues.emailVerification = value;\n\t\t});\n\t}\n\n\tpublic get feedbackResponse(): Optional {\n\t\treturn this.m_propertyValues.feedbackResponse;\n\t}\n\n\tpublic set feedbackResponse(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('feedbackResponse', value, this.m_propertyValues.feedbackResponse, (value) => {\n\t\t\tthis.m_propertyValues.feedbackResponse = value;\n\t\t});\n\t}\n\n\tpublic get firstName(): Optional {\n\t\treturn this.m_propertyValues.firstName;\n\t}\n\n\tpublic set firstName(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('firstName', value, this.m_propertyValues.firstName, (value) => {\n\t\t\tthis.m_propertyValues.firstName = value;\n\t\t});\n\t}\n\n\tpublic get isLoggedIn(): boolean {\n\t\treturn this.m_propertyValues.isLoggedIn;\n\t}\n\n\tpublic set isLoggedIn(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('isLoggedIn', value, this.m_propertyValues.isLoggedIn, (value) => {\n\t\t\tthis.m_propertyValues.isLoggedIn = value;\n\t\t});\n\t}\n\n\tpublic get isTwofaEnabled(): boolean {\n\t\treturn this.m_propertyValues.isTwofaEnabled;\n\t}\n\n\tpublic set isTwofaEnabled(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('isTwofaEnabled', value, this.m_propertyValues.isTwofaEnabled, (value) => {\n\t\t\tthis.m_propertyValues.isTwofaEnabled = value;\n\t\t});\n\t}\n\n\tpublic get lastName(): Optional {\n\t\treturn this.m_propertyValues.lastName;\n\t}\n\n\tpublic set lastName(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('lastName', value, this.m_propertyValues.lastName, (value) => {\n\t\t\tthis.m_propertyValues.lastName = value;\n\t\t});\n\t}\n\n\tpublic get loginResponse(): Optional {\n\t\treturn this.m_propertyValues.loginResponse;\n\t}\n\n\tpublic set loginResponse(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('loginResponse', value, this.m_propertyValues.loginResponse, (value) => {\n\t\t\tthis.m_propertyValues.loginResponse = value;\n\t\t});\n\t}\n\n\tpublic get loginResponseStatus(): Optional {\n\t\treturn this.m_propertyValues.loginResponseStatus;\n\t}\n\n\tpublic set loginResponseStatus(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('loginResponseStatus', value, this.m_propertyValues.loginResponseStatus, (value) => {\n\t\t\tthis.m_propertyValues.loginResponseStatus = value;\n\t\t});\n\t}\n\n\tpublic get modalId(): Optional {\n\t\treturn this.m_propertyValues.modalId;\n\t}\n\n\tpublic set modalId(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('modalId', value, this.m_propertyValues.modalId, (value) => {\n\t\t\tthis.m_propertyValues.modalId = value;\n\t\t});\n\t}\n\n\tpublic get phoneNumber(): { phone: string; phoneCountryCode: number } {\n\t\treturn this.m_propertyValues.phoneNumber;\n\t}\n\n\tpublic set phoneNumber(value: { phone: string; phoneCountryCode: number }) {\n\t\tthis.raiseAndSetIfChanged('phoneNumber', value, this.m_propertyValues.phoneNumber, (value) => {\n\t\t\tthis.m_propertyValues.phoneNumber = value;\n\t\t});\n\t}\n\n\tpublic get resetPasswordInfo(): Optional {\n\t\treturn this.m_propertyValues.resetPasswordInfo;\n\t}\n\n\tpublic set resetPasswordInfo(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('resetPasswordInfo', value, this.m_propertyValues.resetPasswordInfo, (value) => {\n\t\t\tthis.m_propertyValues.resetPasswordInfo = value;\n\t\t});\n\t}\n\n\tpublic get selectedLanguage(): string {\n\t\treturn this.m_propertyValues.selectedLanguage;\n\t}\n\n\tpublic set selectedLanguage(value: string) {\n\t\tthis.raiseAndSetIfChanged('selectedLanguage', value, this.m_propertyValues.selectedLanguage, (value) => {\n\t\t\tthis.m_propertyValues.selectedLanguage = value;\n\t\t});\n\t}\n\n\tpublic get twofaBarcodeKey(): Optional {\n\t\treturn this.m_propertyValues.twofaBarcodeKey;\n\t}\n\n\tpublic set twofaBarcodeKey(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('twofaBarcodeKey', value, this.m_propertyValues.twofaBarcodeKey, (value) => {\n\t\t\tthis.m_propertyValues.twofaBarcodeKey = value;\n\t\t});\n\t}\n\n\tpublic get twofaSecretKey(): Optional {\n\t\treturn this.m_propertyValues.twofaSecretKey;\n\t}\n\n\tpublic set twofaSecretKey(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('twofaSecretKey', value, this.m_propertyValues.twofaSecretKey, (value) => {\n\t\t\tthis.m_propertyValues.twofaSecretKey = value;\n\t\t});\n\t}\n\n\tpublic get userPreferences(): TPreferenceResponse | null {\n\t\treturn this.m_propertyValues.userPreferences;\n\t}\n\n\tpublic set userPreferences(value: TPreferenceResponse | null) {\n\t\tthis.raiseAndSetIfChanged('userPreferences', value, this.m_propertyValues.userPreferences, (value) => {\n\t\t\tthis.m_propertyValues.userPreferences = value;\n\t\t});\n\t}\n\n\tpublic get limitProfitLossValues(): limitProfitLossValues | null {\n\t\treturn this.m_propertyValues.limitProfitLossValues;\n\t}\n\n\tpublic set limitProfitLossValues(value: limitProfitLossValues | null) {\n\t\tthis.raiseAndSetIfChanged('limitProfitLossValues', value, this.m_propertyValues.limitProfitLossValues, (value) => {\n\t\t\tthis.m_propertyValues.limitProfitLossValues = value;\n\t\t});\n\t}\n\n\tpublic get octStoredValues(): octStoredValues | null {\n\t\treturn this.m_propertyValues.octStoredValues;\n\t}\n\n\tpublic set octStoredValues(value: octStoredValues | null) {\n\t\tthis.raiseAndSetIfChanged('octStoredValues', value, this.m_propertyValues.octStoredValues, (value) => {\n\t\t\tthis.m_propertyValues.octStoredValues = value;\n\t\t});\n\t}\n\n\tpublic get isChildWindow(): Optional {\n\t\treturn this.m_propertyValues.isChildWindow;\n\t}\n\n\tpublic set isChildWindow(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('isChildWindow', value, this.m_propertyValues.isChildWindow, (value) => {\n\t\t\tthis.m_propertyValues.isChildWindow = value;\n\t\t});\n\t}\n\tpublic get tradingMode(): TTradingMode {\n\t\treturn this.m_propertyValues.tradingMode;\n\t}\n\n\tpublic set tradingMode(value: TTradingMode) {\n\t\tthis.raiseAndSetIfChanged('tradingMode', value, this.m_propertyValues.tradingMode, (value) => {\n\t\t\tthis.m_propertyValues.tradingMode = value;\n\t\t});\n\t}\n\tpublic get feedbackModal(): boolean {\n\t\treturn this.m_propertyValues.feedbackModal;\n\t}\n\tpublic set feedbackModal(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('feedbackModal', value, this.m_propertyValues.feedbackModal, (value) => {\n\t\t\tthis.m_propertyValues.feedbackModal = value;\n\t\t});\n\t}\n\tpublic get reconnectModal(): boolean {\n\t\treturn this.m_propertyValues.reconnectModal;\n\t}\n\tpublic set reconnectModal(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('reconnectModal', value, this.m_propertyValues.reconnectModal, (value) => {\n\t\t\tthis.m_propertyValues.reconnectModal = value;\n\t\t});\n\t}\n\tpublic get contactModal(): boolean {\n\t\treturn this.m_propertyValues.contactModal;\n\t}\n\tpublic set contactModal(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('contactModal', value, this.m_propertyValues.contactModal, (value) => {\n\t\t\tthis.m_propertyValues.contactModal = value;\n\t\t});\n\t}\n\tpublic get openSettings(): boolean {\n\t\treturn this.m_propertyValues.openSettings;\n\t}\n\tpublic set openSettings(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('openSettings', value, this.m_propertyValues.openSettings, (value) => {\n\t\t\tthis.m_propertyValues.openSettings = value;\n\t\t});\n\t}\n\tpublic get statusModal(): boolean {\n\t\treturn this.m_propertyValues.statusModal;\n\t}\n\tpublic set statusModal(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('statusModal', value, this.m_propertyValues.statusModal, (value) => {\n\t\t\tthis.m_propertyValues.statusModal = value;\n\t\t});\n\t}\n\n\tpublic get isJapanAccount(): boolean {\n\t\treturn this.m_propertyValues.isJapanAccount;\n\t}\n\n\tpublic set isJapanAccount(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('isJapanAccount', value, this.m_propertyValues.isJapanAccount, (value) => {\n\t\t\tthis.m_propertyValues.isJapanAccount = value;\n\t\t});\n\t}\n\n\tpublic get agreementPendingVersion(): string | null {\n\t\treturn this.m_propertyValues.agreementPendingVersion;\n\t}\n\n\tpublic set agreementPendingVersion(value: string | null) {\n\t\tthis.raiseAndSetIfChanged(\n\t\t\t'agreementPendingVersion',\n\t\t\tvalue,\n\t\t\tthis.m_propertyValues.agreementPendingVersion,\n\t\t\t(value) => {\n\t\t\t\tthis.m_propertyValues.agreementPendingVersion = value;\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic get subscriptionInfo(): SubscriptionInfo | null {\n\t\treturn this.m_propertyValues.subscriptionInfo;\n\t}\n\n\tpublic set subscriptionInfo(value: SubscriptionInfo | null) {\n\t\tthis.raiseAndSetIfChanged('subscriptionInfo', value, this.m_propertyValues.subscriptionInfo, (value) => {\n\t\t\tthis.m_propertyValues.subscriptionInfo = value;\n\t\t});\n\t}\n\n\tpublic get subscriptionModal(): SubscriptionModalState | null {\n\t\treturn this.m_propertyValues.subscriptionModal;\n\t}\n\n\tpublic set subscriptionModal(value: SubscriptionModalState | null) {\n\t\tthis.raiseAndSetIfChanged('subscriptionModal', value, this.m_propertyValues.subscriptionModal, (value) => {\n\t\t\tif (\n\t\t\t\tvalue?.isOpen === this.m_propertyValues.subscriptionModal?.isOpen &&\n\t\t\t\tvalue?.reason === this.m_propertyValues.subscriptionModal?.reason\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.m_propertyValues.subscriptionModal = value;\n\t\t});\n\t}\n\n\tpublic get canFetchSubscrInfo(): boolean {\n\t\treturn this.m_propertyValues.canFetchSubscrInfo;\n\t}\n\n\tpublic set canFetchSubscrInfo(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('canFetchSubscrInfo', value, this.m_propertyValues.canFetchSubscrInfo, (value) => {\n\t\t\tthis.m_propertyValues.canFetchSubscrInfo = value;\n\t\t});\n\t}\n\n\tpublic get currentlySelectedSignal(): SignalsListType | null {\n\t\treturn this.m_propertyValues.currentlySelectedSignal;\n\t}\n\n\tpublic set currentlySelectedSignal(value: SignalsListType | null) {\n\t\tthis.raiseAndSetIfChanged(\n\t\t\t'currentlySelectedSignal',\n\t\t\tvalue,\n\t\t\tthis.m_propertyValues.currentlySelectedSignal,\n\t\t\t(value) => {\n\t\t\t\tthis.m_propertyValues.currentlySelectedSignal = value;\n\t\t\t}\n\t\t);\n\t}\n\n\tprivate constructor() {\n\t\tsuper();\n\t\tthis.m_propertyValues = clone(defaultValues.getValue());\n\t}\n\n\tpublic reset(): void {\n\t\tconst defaultVals = clone(defaultValues.getValue());\n\t\tthis.m_propertyValues = {\n\t\t\t...defaultVals,\n\t\t\tappTheme: this.appTheme,\n\t\t};\n\t}\n\n\tpublic logout(): void {\n\t\tconst defaultVals = clone(defaultValues.getValue());\n\t\tthis.m_propertyValues = {\n\t\t\t...defaultVals,\n\t\t\tipLocation: this.ipLocation,\n\t\t\tisChildWindow: this.isChildWindow,\n\t\t\tappTheme: this.appTheme,\n\t\t};\n\t}\n}\n\nexport default createContext(\n\tResolver.isSet && Resolver.isRegistered(AppContextProvider)\n\t\t? Resolver.resolve(AppContextProvider)\n\t\t: AppContextProvider.instance\n);\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"filterList\":\"MarketsTable_filterList__1pbbg\",\"marketPageTableWrapper\":\"MarketsTable_marketPageTableWrapper__2foAw\",\"positionPageTableWrapper\":\"MarketsTable_positionPageTableWrapper__3Y_Sp\",\"tableContainerVirtualStyles\":\"MarketsTable_tableContainerVirtualStyles__3U8Y9\",\"tableContainerDetach\":\"MarketsTable_tableContainerDetach__3QLax\",\"table\":\"MarketsTable_table__RP4DD\",\"tr\":\"MarketsTable_tr__D5mvc\",\"th\":\"MarketsTable_th__MlZS5\",\"td\":\"MarketsTable_td__30LbE\",\"resizer\":\"MarketsTable_resizer__3ZwzX\",\"ltr\":\"MarketsTable_ltr__2Zo-Q\",\"rtl\":\"MarketsTable_rtl__1QZ-M\",\"icon\":\"MarketsTable_icon__mr1PH\",\"existsInWatchlistIcon\":\"MarketsTable_existsInWatchlistIcon__2qwjc\",\"addToWatchlistIcon\":\"MarketsTable_addToWatchlistIcon__3IW9i\",\"addIcon\":\"MarketsTable_addIcon__1d3hf\",\"errorAddIcon\":\"MarketsTable_errorAddIcon__2nKhN\",\"iconTheme\":\"MarketsTable_iconTheme__1hM1m\",\"triggerContainer\":\"MarketsTable_triggerContainer__3qW2O\",\"isResizing\":\"MarketsTable_isResizing__3H8Ah\",\"stickyHeader\":\"MarketsTable_stickyHeader__21H4a\",\"tableHeader\":\"MarketsTable_tableHeader__cdPDj\",\"tableRow\":\"MarketsTable_tableRow__3z2Ia\",\"editTheme\":\"MarketsTable_editTheme__3dj2N\",\"tableRowTransparent\":\"MarketsTable_tableRowTransparent__1vG8t\",\"tableData\":\"MarketsTable_tableData__2-yg2\",\"verticalCenterAlign\":\"MarketsTable_verticalCenterAlign__11ELG\",\"horizontalCenterAlign\":\"MarketsTable_horizontalCenterAlign__3729w\",\"alignRight\":\"MarketsTable_alignRight__3rKyn\",\"symbolCell\":\"MarketsTable_symbolCell__16pWQ\",\"symbolText\":\"MarketsTable_symbolText__2SVhj\",\"headerWrapper\":\"MarketsTable_headerWrapper__2PdxR\",\"dragColumnButton\":\"MarketsTable_dragColumnButton__1iduO\",\"loadingContainer\":\"MarketsTable_loadingContainer__3Q1la\",\"greenCurrent\":\"MarketsTable_greenCurrent__3f8fJ\",\"redCurrent\":\"MarketsTable_redCurrent__pqxrr\",\"costInput\":\"MarketsTable_costInput__363-U\",\"marketsList\":\"MarketsTable_marketsList__1iSl9\",\"header\":\"MarketsTable_header__2IH_K\",\"label\":\"MarketsTable_label__3iZsS\",\"filterOptionGroupWrapper\":\"MarketsTable_filterOptionGroupWrapper__24gWk\",\"filterOptionGroup\":\"MarketsTable_filterOptionGroup__3AowU\",\"filterLabel\":\"MarketsTable_filterLabel__PdMWV\",\"filterControl\":\"MarketsTable_filterControl__2ZKUR\",\"dataGrid\":\"MarketsTable_dataGrid__3fCBR\",\"DataGrid\":\"MarketsTable_DataGrid__38swX\",\"content\":\"MarketsTable_content__GzVQH\",\"badgeWrapper\":\"MarketsTable_badgeWrapper__36f36\",\"contentSymbol\":\"MarketsTable_contentSymbol__2AIyE\",\"button\":\"MarketsTable_button__Auztz\",\"typeButton\":\"MarketsTable_typeButton__3I2dP\",\"testButton\":\"MarketsTable_testButton__3NPoL\",\"typeValue\":\"MarketsTable_typeValue__gFQ3L\",\"testValue\":\"MarketsTable_testValue__1xuRr\",\"watchlistsListContainer\":\"MarketsTable_watchlistsListContainer__3OJCP\",\"titleContainer\":\"MarketsTable_titleContainer__3onqt\",\"watchlistContainer\":\"MarketsTable_watchlistContainer__1l_qs\",\"createWatchlist\":\"MarketsTable_createWatchlist__1yMAr\",\"create\":\"MarketsTable_create__1Qg1b\",\"errorCreateText\":\"MarketsTable_errorCreateText__3idYb\",\"textContainer\":\"MarketsTable_textContainer__2DgAc\",\"createErrorMessage\":\"MarketsTable_createErrorMessage__XDxxk\",\"createWLContainer\":\"MarketsTable_createWLContainer__ZoVpf\",\"createWatchlistItems\":\"MarketsTable_createWatchlistItems__3K_gK\",\"inputContainer\":\"MarketsTable_inputContainer__1JTt3\",\"inputTitle\":\"MarketsTable_inputTitle__fXwp9\",\"inputContainerText\":\"MarketsTable_inputContainerText__2WGRq\",\"popupFooter\":\"MarketsTable_popupFooter__vNeFa\",\"lightticketButton\":\"MarketsTable_lightticketButton__1zdB6\",\"darkticketButton\":\"MarketsTable_darkticketButton__2jLES\",\"messageRow\":\"MarketsTable_messageRow__1Nk23\",\"inputCount\":\"MarketsTable_inputCount__2xPCg\",\"disableButton\":\"MarketsTable_disableButton__19A-Y\",\"lightCostInput\":\"MarketsTable_lightCostInput__1pWGy\",\"errorInput\":\"MarketsTable_errorInput__2sUGV\",\"lightErrorInput\":\"MarketsTable_lightErrorInput__uSe3G\",\"errorMessage\":\"MarketsTable_errorMessage__2f4k7\",\"btnCancel\":\"MarketsTable_btnCancel__2XWgV\",\"resizedCancelBtn\":\"MarketsTable_resizedCancelBtn__26Tzn\",\"btnSave\":\"MarketsTable_btnSave__B61x_\",\"resizedSaveBtn\":\"MarketsTable_resizedSaveBtn__3LfEA\",\"hidden\":\"MarketsTable_hidden__2ZwmQ\",\"Popup\":\"MarketsTable_Popup__1VqLl\",\"filterListWrapper\":\"MarketsTable_filterListWrapper__194Jh\",\"listContainer\":\"MarketsTable_listContainer__pq9Nk\",\"itemContainer\":\"MarketsTable_itemContainer__1Bg3U\",\"item\":\"MarketsTable_item__Nx6Bj\",\"bold\":\"MarketsTable_bold__bvgy8\",\"progressBarContainer\":\"MarketsTable_progressBarContainer__3xtvu\",\"progressBar\":\"MarketsTable_progressBar__mfe7j\",\"positive\":\"MarketsTable_positive__3KMH2\",\"negative\":\"MarketsTable_negative__2cd89\",\"tooltipTimestamp\":\"MarketsTable_tooltipTimestamp__2RrFe\",\"tooltipTitle\":\"MarketsTable_tooltipTitle__2_6Y6\",\"grid\":\"MarketsTable_grid__1QlYf\",\"padSm\":\"MarketsTable_padSm__20Iko\",\"star\":\"MarketsTable_star__1qqZA\",\"timeUpdate\":\"MarketsTable_timeUpdate__32Gu2\",\"emptyGridContainer\":\"MarketsTable_emptyGridContainer__jVD7D\",\"emptyIcon\":\"MarketsTable_emptyIcon__2vErQ\",\"emptyStateMessage\":\"MarketsTable_emptyStateMessage__3yecX\"};","import {\n\tPriceQuote,\n\tQuoteSubscription,\n\tHistorySubscription,\n\tHistoryTick,\n\tFeedSubscription,\n\tNewsSubscriptionRequest,\n\tMarketWinNewsSubscriptionRequest,\n\tTradingAccountLoginRequest,\n\tCloseTradeRequest,\n\tEditOrderRequest,\n\tEditPositionRequest,\n\tNewOrderRequest,\n\tNewPositionRequest,\n\tPartialCloseRequest,\n\tMarketItem,\n\tTradingAccount,\n\tTradingInstruments,\n\tTradingProvider,\n\tTradingAccountLogin,\n\tRFPNews,\n\tTradeEvent,\n\tTradingPosition,\n\tQuantityTypeUpdate,\n\tMarketWatchSnapshotsRequest,\n\tMarketWatchSubscriptionRequest,\n\tMarketWatchDynamicSubscriptionRequest,\n\tMarketWatchIntervals,\n\tMarketWatchCategories,\n\tMarketWatchItem,\n\tMarketWatchItems,\n\tHistorySize,\n\tTfboLoginResponse,\n\tTfboEndpointResponse,\n\tPong,\n\tHistoryTickItems,\n\tFeedInfos,\n\tRFPDataObjectType,\n\tMarketItemsRecord,\n\tRFPDataObject,\n\tAccountTierResponse,\n\tAccountTierRequest,\n\tPreviousDayClosePriceRequest,\n\tPreviousDayClosePrice,\n\tMarketItemsInfoRecord,\n\tTierUpdateInfo,\n\tHistoryRequestStartDate,\n\tHistoryTimescaleStartDate,\n\tRFPTradingAccountsError,\n\tTradingAccountLogoutRequest,\n\tRFPRequestTTSessionTimes,\n\tRFPSessionTimes,\n\tRequestTTWatchList,\n\tTTWatchList,\n\tRequestTTMarginRules,\n\tTTMarginRules,\n\tFutureMargin,\n\tRequestFutureMargin,\n\tRequestRfpServerNames,\n\tRFPServerItem,\n\tRfpServerNames,\n} from './rfp.types';\n\nexport const RFP_STOMP_SIGNIN = `${process.env.REACT_APP_RFP_STOMP_WEBPROXY}/api/auth/signin`;\nexport const RFP_STOMP_WEBSOCKET_ENDPOINT = `${process.env.REACT_APP_RFP_STOMP_WEBPROXY}/ep`;\nexport const RFP_STOMP_ENDPOINT = `${process.env.REACT_APP_RFP_STOMP_WEBPROXY}`;\nexport const RFP_BINARY_ENDPOINT = `${process.env.REACT_APP_RFP_BINARY_WEBPROXY}`;\n\nexport const RFP = {\n\t// endpoints related to 'tfbo'\n\ttfboLoginResponse: '/app/tfboLoginResponse',\n\ttfboEndpointResponse: '/app/tfboEndpointResponse',\n\n\t// endpoints related to 'app'\n\tping: '/app/ping',\n\tpong: '/app/pong',\n\tgetFeedIds: '/app/feedIds',\n\tgetMarketItems: '/app/mktItems',\n\tgetMarketItemsInfo: '/app/mktItemsInfo',\n\tgetTradingAccounts: '/app/tradingAccounts',\n\tgetTradingProviders: '/app/tradingProviders',\n\tmanageHistory: '/app/manageHistory',\n\tmanageHistoryDate: '/app/manageHistoryDate',\n\tmanageQuotes: '/app/manageQuotes',\n\tmanageTradingNews: '/app/manageNews',\n\tmanageMarketWinNews: '/app/manageMarketWinNews',\n\tgetNewsGroups: '/app/getNewsGroups', //unused\n\tgetMarketWatchIntervals: '/app/getMarketWatchIntervals',\n\tgetMarketWatchCategories: '/app/getMarketWatchCategories',\n\tgetMarketWatchSnapshots: '/app/getMarketWatchSnapshots',\n\tgetMarketWatchSubscription: '/app/getMarketWatchSubscription',\n\tgetMarketWatchDynamicSubscription: '/app/getMarketWatchDynamicSubscription',\n\tgetTTSessionTimes: '/app/getTTSessionTimes',\n\trfpServerNames: '/app/rfpServerNames',\n\trequestRfpServerNames: '/app/requestRfpServerNames',\n\n\t// endpoints related to the user\n\tqueueDemoAccountParams: '/user/queue/demo-acct-params', //unused\n\tqueueErrors: '/user/queue/errors', //unused\n\tqueueFeedIds: '/user/queue/feedIds',\n\tqueueHistoricalDataUpdates: '/user/queue/hs-upd',\n\tqueueInfos: '/user/queue/infos', //unused\n\tqueueMarketItems: '/user/queue/mktItems',\n\tqueueMarketItemsInfo: '/user/queue/marketitems-info',\n\tqueueQuotes: '/user/queue/q',\n\tqueueTradingAccountsError: '/user/queue/trading-accounts-error',\n\tqueueSessionTimes: '/user/queue/session-times',\n\tqueueTradingAccount: '/user/queue/trading-account',\n\tqueueTradingAccountProperties: '/user/queue/trading-account-properties', //unused\n\tqueueTradingProvider: '/user/queue/trading-provider',\n\tqueueTradingAccountLogin: '/user/queue/trading-account-logon',\n\tqueueTierInfo: '/user/queue/tier-info',\n\tqueueTradingAccountInstruments: '/user/queue/trading-instruments',\n\tqueueTradingNews: '/user/queue/news',\n\tqueueMarketWinNews: '/user/queue/marketWinNews',\n\tqueueTradingNewsConfig: '/user/queue/news-cfg', //unused\n\tqueueTradingNewsGroup: '/user/queue/news-grp', //unused\n\tqueueTradeEvent: '/user/queue/trade-event',\n\tqueueTradeEventExt: '/user/queue/trade-event-ext',\n\tqueueTradingPositionUpdates: '/user/queue/tp',\n\tqueueMarketWatchCategories: '/user/queue/queueMarketWatchCategories',\n\tqueueMarketWatchIntervals: '/user/queue/queueMarketWatchIntervals',\n\tqueueMarketWatchItem: '/user/queue/queueMarketWatchItem',\n\tqueueMarketWatchItems: '/user/queue/queueMarketWatchItems',\n\tqueueHistorySize: '/user/queue/queueHistorySize',\n\tqueueHistoryStartDate: '/user/queue/queueHistoryStartDate',\n\tqueuePreviousDayClosePrice: '/user/queue/queuePreviousDayClosePrice',\n\tqueueTierUpdateInfo: '/user/queue/queueTierUpdateInfo',\n\n\t// endpoints to make trades\n\ttradingAccountLogin: '/app/tradingAccountLogin',\n\ttradingAccountLogout: '/app/tradingAccountLogout',\n\tTTWatchList: '/app/ttWatchList',\n\trequestTTWatchList: '/app/requestTTWatchList',\n\tTTMarginRules: '/app/ttMarginRules',\n\trequestTTMarginRules: '/app/requestTTMarginRules',\n\trequestFutureMargin: '/app/requestFutureMargin',\n\tfutureMargin: '/app/futureMargin',\n\tcloseTrade: '/app/closeTrade',\n\tconnect: '/app/connect',\n\teditOrder: '/app/editOrder',\n\teditPosition: '/app/editPosition',\n\tnewOrder: '/app/newOrder',\n\tnewTrade: '/app/newTrade',\n\tpartialClose: '/app/closeTradePartial',\n\n\t//endpoint to update trading quantity settings\n\tupdateQuantityType: '',\n} as const;\n\nexport const RFP_RESPONSE = {\n\tUNAUTHORIZED: 'Unauthorized',\n};\n\nconst RfpMessageMap = (() => {\n\tconst map = {\n\t\tsend: {\n\t\t\t[RFP['getTTSessionTimes']]: null as unknown as RFPRequestTTSessionTimes,\n\t\t\t[RFP['getFeedIds']]: null as unknown as null | undefined,\n\t\t\t[RFP['ping']]: null as unknown as null | undefined,\n\t\t\t//[RFP['pong']]: null as unknown as null | undefined,\n\t\t\t[RFP['getMarketItems']]: null as unknown as FeedSubscription,\n\t\t\t[RFP['getMarketItemsInfo']]: null as unknown as FeedSubscription,\n\t\t\t[RFP['getTradingAccounts']]: null as unknown as number,\n\t\t\t[RFP['getTradingProviders']]: null as unknown as null | undefined,\n\t\t\t[RFP['manageHistory']]: null as unknown as HistorySubscription,\n\t\t\t[RFP['manageHistoryDate']]: null as unknown as HistoryRequestStartDate,\n\t\t\t[RFP['manageQuotes']]: null as unknown as QuoteSubscription,\n\t\t\t[RFP['manageTradingNews']]: null as unknown as NewsSubscriptionRequest,\n\t\t\t[RFP['manageMarketWinNews']]: null as unknown as MarketWinNewsSubscriptionRequest,\n\t\t\t[RFP['tradingAccountLogin']]: null as unknown as TradingAccountLoginRequest,\n\t\t\t[RFP['tradingAccountLogout']]: null as unknown as TradingAccountLogoutRequest,\n\t\t\t[RFP['requestTTWatchList']]: null as unknown as RequestTTWatchList,\n\t\t\t[RFP['requestRfpServerNames']]: null as unknown as RequestRfpServerNames,\n\t\t\t[RFP['requestTTMarginRules']]: null as unknown as RequestTTMarginRules,\n\t\t\t[RFP['requestFutureMargin']]: null as unknown as RequestFutureMargin,\n\t\t\t[RFP['queueTierInfo']]: null as unknown as AccountTierRequest,\n\t\t\t[RFP['closeTrade']]: null as unknown as CloseTradeRequest,\n\t\t\t[RFP['editOrder']]: null as unknown as EditOrderRequest,\n\t\t\t[RFP['editPosition']]: null as unknown as EditPositionRequest,\n\t\t\t[RFP['newOrder']]: null as unknown as NewOrderRequest,\n\t\t\t[RFP['newTrade']]: null as unknown as NewPositionRequest,\n\t\t\t[RFP['partialClose']]: null as unknown as PartialCloseRequest,\n\t\t\t[RFP['updateQuantityType']]: null as unknown as QuantityTypeUpdate,\n\t\t\t[RFP['getMarketWatchIntervals']]: null as unknown as null | undefined,\n\t\t\t[RFP['getMarketWatchCategories']]: null as unknown as null | undefined,\n\t\t\t[RFP['getMarketWatchSnapshots']]: null as unknown as MarketWatchSnapshotsRequest,\n\t\t\t[RFP['getMarketWatchSubscription']]: null as unknown as MarketWatchSubscriptionRequest,\n\t\t\t[RFP['getMarketWatchDynamicSubscription']]: null as unknown as MarketWatchDynamicSubscriptionRequest,\n\t\t\t[RFP['queuePreviousDayClosePrice']]: null as unknown as PreviousDayClosePriceRequest,\n\t\t},\n\t\tsubscribe: {\n\t\t\t[RFP['tfboLoginResponse']]: null as unknown as TfboLoginResponse,\n\t\t\t[RFP['tfboEndpointResponse']]: null as unknown as TfboEndpointResponse,\n\t\t\t[RFP['pong']]: null as unknown as Pong,\n\t\t\t[RFP['queueFeedIds']]: null as unknown as FeedInfos,\n\t\t\t[RFP['queueHistoricalDataUpdates']]: null as unknown as HistoryTickItems,\n\t\t\t[RFP['queueMarketItems']]: null as unknown as MarketItemsRecord,\n\t\t\t[RFP['queueMarketItemsInfo']]: null as unknown as MarketItemsInfoRecord,\n\t\t\t[RFP['queueQuotes']]: null as unknown as PriceQuote,\n\t\t\t[RFP['queueSessionTimes']]: null as unknown as RFPSessionTimes,\n\t\t\t[RFP['queueTradingAccount']]: null as unknown as TradingAccount,\n\t\t\t[RFP['queueTradingAccountsError']]: null as unknown as RFPTradingAccountsError,\n\t\t\t[RFP['queueTradingProvider']]: null as unknown as TradingProvider,\n\t\t\t[RFP['queueTradingAccountLogin']]: null as unknown as TradingAccountLogin,\n\t\t\t[RFP['queueTierInfo']]: null as unknown as AccountTierResponse,\n\t\t\t[RFP['queueTradingAccountInstruments']]: null as unknown as TradingInstruments,\n\t\t\t[RFP['queueTradingNews']]: null as unknown as RFPNews,\n\t\t\t[RFP['queueMarketWinNews']]: null as unknown as RFPNews,\n\t\t\t[RFP['queueTradeEvent']]: null as unknown as TradeEvent,\n\t\t\t[RFP['queueTradeEventExt']]: null as unknown as TradeEvent,\n\t\t\t[RFP['queueTradingPositionUpdates']]: null as unknown as TradingPosition,\n\t\t\t[RFP['queueInfos']]: null as unknown as any,\n\t\t\t[RFP['queueErrors']]: null as unknown as any,\n\t\t\t[RFP['queueMarketWatchIntervals']]: null as unknown as MarketWatchIntervals,\n\t\t\t[RFP['queueMarketWatchCategories']]: null as unknown as MarketWatchCategories,\n\t\t\t[RFP['queueMarketWatchItem']]: null as unknown as MarketWatchItem,\n\t\t\t[RFP['queueMarketWatchItems']]: null as unknown as MarketWatchItems,\n\t\t\t[RFP['queueHistorySize']]: null as unknown as HistorySize,\n\t\t\t[RFP['queueHistoryStartDate']]: null as unknown as HistoryTimescaleStartDate,\n\t\t\t[RFP['queuePreviousDayClosePrice']]: null as unknown as PreviousDayClosePrice,\n\t\t\t[RFP['queueTierUpdateInfo']]: null as unknown as TierUpdateInfo,\n\t\t\t[RFP['TTWatchList']]: null as unknown as TTWatchList,\n\t\t\t[RFP['TTMarginRules']]: null as unknown as TTMarginRules,\n\t\t\t[RFP['futureMargin']]: null as unknown as FutureMargin,\n\t\t\t[RFP['rfpServerNames']]: null as unknown as RfpServerNames,\n\t\t},\n\t} as const;\n\treturn map;\n})();\n\nconst RfpDataMessageMap = (() => {\n\tconst map = {\n\t\t[RFPDataObjectType.All]: null as unknown as RFPDataObject,\n\t\t[RFPDataObjectType.HistoryTickItems]: null as unknown as HistoryTickItems,\n\t\t[RFPDataObjectType.HistoryTick]: null as unknown as HistoryTick,\n\t\t[RFPDataObjectType.HistorySize]: null as unknown as HistorySize,\n\t\t[RFPDataObjectType.PriceQuote]: null as unknown as PriceQuote,\n\t\t[RFPDataObjectType.TfboLoginResponse]: null as unknown as TfboLoginResponse,\n\t\t[RFPDataObjectType.TfboEndpointResponse]: null as unknown as TfboEndpointResponse,\n\t\t[RFPDataObjectType.Pong]: null as unknown as Pong,\n\t\t[RFPDataObjectType.FeedInfos]: null as unknown as FeedInfos,\n\t\t[RFPDataObjectType.TradingAccount]: null as unknown as TradingAccount,\n\t\t[RFPDataObjectType.TradingAccountLogin]: null as unknown as TradingAccountLogin,\n\t\t[RFPDataObjectType.TradingAccountLogout]: null as unknown as TradingAccountLogoutRequest,\n\t\t[RFPDataObjectType.TradingProvider]: null as unknown as TradingProvider,\n\n\t\t[RFPDataObjectType.TradeEvent]: null as unknown as TradeEvent,\n\t\t[RFPDataObjectType.TradingPosition]: null as unknown as TradingPosition,\n\t\t[RFPDataObjectType.MarketWatchIntervals]: null as unknown as MarketWatchIntervals,\n\n\t\t[RFPDataObjectType.MarketWatchCategories]: null as unknown as MarketWatchCategories,\n\t\t[RFPDataObjectType.MarketWatchItem]: null as unknown as MarketWatchItem,\n\t\t[RFPDataObjectType.MarketWatchItems]: null as unknown as MarketWatchItems,\n\t\t[RFPDataObjectType.RFPNews]: null as unknown as RFPNews,\n\n\t\t[RFPDataObjectType.MarketItem]: null as unknown as MarketItem,\n\t\t[RFPDataObjectType.MarketItemsRecord]: null as unknown as MarketItemsRecord,\n\t\t[RFPDataObjectType.HistoryTimescaleStartDate]: null as unknown as HistoryTimescaleStartDate,\n\t\t[RFPDataObjectType.TradingAccountsError]: null as unknown as RFPTradingAccountsError,\n\t\t[RFPDataObjectType.TTSessionTimes]: null as unknown as RequestTTWatchList,\n\t} as const;\n\treturn map;\n})();\n\nexport type TRfpDataMessageMap = typeof RfpDataMessageMap;\n\nexport type TRfpMessages = typeof RfpMessageMap;\nexport type TRfpSendParams = TRfpMessages['send'][T] extends null | undefined\n\t? Parameters<(body?: TRfpMessages['send'][T]) => any>\n\t: Parameters<(body: TRfpMessages['send'][T]) => any>;\n","import moment from 'moment';\n\nimport {\n\tTfboApiMethodMeta,\n\tTradingAccountType as PlatformAccountType,\n} from '../../gateways/TfboGateway/TfboGateway.types';\nimport i18n from '../../setup/i18n';\nimport { AccountMarketType, MarketItem, TradingAccount } from '../../gateways/RfpGateway/rfp.types';\nimport { AppContextProvider } from '../../contexts/AppContext';\nimport {\n\tGENERAL_DATE_FORMAT,\n\tGENERAL_DATETIMES_FORMAT,\n\tJAPAN_DATE_FORMAT,\n\tJAPAN_DATETIMES_FORMAT,\n} from '../../setup/config';\nimport { GLOBAL_MAX_ORDER_SIZE, tiers, tiersKeysMap } from '../../setup/subscriptionsConfig';\nimport { formatNumberWithCommas } from '../../views/features/Dashboard/Watchlist/Instrument/formattedQuoteNumber';\n\nimport { Optional } from './Nullable';\nimport { Resolver } from './Ioc';\n\n// Japan subscription statuses\nexport enum SubscriptionStatus {\n\t'Active' = 'ACTIVE',\n\t'NoRecord' = 'NORECORD',\n\t'Existing' = 'EXISTING',\n\t'Stopped' = 'STOPPED',\n\t'Terminated' = 'TERMINATED',\n\t'Unpaid' = 'UNPAID',\n\t'Cancelled' = 'CANCELED',\n\t'Suspended' = 'SUSPENDED',\n\t'Incomplete' = 'INCOMPLETE',\n}\n\nconst ACCOUNT_SUBSCRIPTION_STATUS_WITH_TIER_INFO = [SubscriptionStatus.Active];\n\nexport const shouldShowTierIcon = (subscriptionInfo: SubscriptionInfo) =>\n\tsubscriptionInfo &&\n\tsubscriptionInfo.status &&\n\tACCOUNT_SUBSCRIPTION_STATUS_WITH_TIER_INFO.includes(subscriptionInfo.status);\n\n// Japan subscription tiers\nexport type SubscriptionTier = 'Tier0' | 'Tier1' | 'Tier2' | 'Tier3';\n\n// export enum changeTierResponse {\n// \t'Changed' = 'CHANGED',\n// \t'NotApplicable' = 'NOTAPPLICABLE',\n// \t'NotAllowed' = 'NOTALLOWED',\n// \t'NoRecord' = 'NORECORD',\n// }\n\nexport enum SubscriptionModalReason {\n\tInstrument = 'InstrumentNotAllowed',\n\tVolume = 'VolumeExceeded',\n\tOrderSizeUpgradable = 'OrderSizeInvalidUntilUpgrade',\n\tOrderSizeGlobal = 'OrderSizeGlobalExceeded',\n\tSubscriptionForNewUser = 'SubscriptionForNewUserNeeded',\n\tSubscriptionForExistingUser = 'SubscriptionForExistingUserNeeded',\n\tSubscriptionForUnpaidUser = 'SubscriptionForUnpaidUserNeeded',\n\tRenewal = 'RenewalNeeded',\n\tCancelled = 'CancelledOrSuspended',\n\tTerminated = 'SubscriptionTerminated',\n\tSubscribeResponse = 'SubscribeResponseRecevied',\n\tManageSubscription = 'ManageSubscriptionRequest',\n\tUpgradeSubscription = 'UpgradeSubscriptionRequest',\n\t// ManageSubscriptionConfirm = 'ManageSubscriptionConfirmation',\n\t// UpgradeSubscriptionConfirm = 'UpgradeSubscriptionConfirmation',\n\tConfirmStop = 'ConfirmationForSubscriptionStopNeeded',\n\tConfirmRestart = 'ConfirmationForSubscriptionResumNeeded',\n\t// ConfirmCancel = 'ConfirmationForSubscriptionCancelNeeded',\n\tChangeTierResponse = 'ChangeTierResponseReceived',\n\tStopSubscriptionResponse = 'StopSubscriptionResponseReceived',\n\tCancelSubscriptionResponse = 'CancelSubscriptionResponseReceived',\n\tRestartSubscriptionResponse = 'RestartSubscriptionResponse',\n\tSubscriptionDetails = 'SubscriptionDetailsDisplayed',\n\tNoSuperiorTiers = 'NoSuperiorTiersAvaiableForThisUser',\n\tSubscribeFromAlert = 'SubscribeFromAlert',\n\tSystemError = 'BackendOperationSysError',\n\tOrderSizeHighestTier = 'OrderSizeExceededForHighestTier',\n\tNotAuthorized = 'BackendReturnedResponseNotAuthorized',\n\tIncorrectParamsForBJP = 'BackendSentIncorrectParamsForRequestToBJP',\n\tGymNotAccessibleForTier = 'TierNotAllowedToAccessTradersGym',\n\tUpgradeToAccessGym = 'UpgradeNeededToAccessTradersGym',\n\tJapanAccountEmptyApplicationStatus = 'JapanAccountEmptyApplicationStatus',\n}\n\nexport enum UserOperationType {\n\t'CLOSE' = 'CanClosePositions',\n\t'CANCEL' = 'CanCancelOrders',\n}\n\nexport type SubscriptionModalState = {\n\tisOpen: boolean;\n\treason: SubscriptionModalReason | null;\n\ttext?: string | null;\n\tinstrument?: MarketItem | null;\n};\n\nexport type SubscriptionInfo = {\n\tstatus: SubscriptionStatus | null;\n\ttier: SubscriptionTier | null;\n\ttierNum: number | null;\n\tnextTier: SubscriptionTier | null;\n\tenabled: boolean | null;\n\tTTTier: number | null;\n\texpiryDate: string | null;\n\tstartDate: string | null;\n\tisDemoUnlimited: boolean | null;\n\tmaxVolume: number | null;\n\tusedVolume: number | null;\n\tremainingVolume: number | null;\n};\n\n// export type SubscriptionInfoProp = {\n// \tkey: keyof SubscriptionInfo;\n// \tvalue: any;\n// };\n//\n// export type SubscribeStatusObj = {\n// \tstatus: string;\n// \tproviderStatus?: string;\n// };\n\nexport type SubscriptionCheckStatus = 'NOT_STARTED' | 'IN_PROGRESS' | 'DONE';\n\nexport interface Tier {\n\tid: SubscriptionTier;\n\tkey: string;\n\tpricePerMonth: number;\n\tcurrencyPairs: string;\n\tminPerOrder: number;\n\tmaxPerOrder: number;\n\tmonthlyAmount: string;\n\tmaxPosition: number;\n\tinstruments: string[];\n\topenInterestLimit?: any;\n\tmaxOpenInstrumentPosition?: {\n\t\t[key: string]: number;\n\t};\n}\n\nexport const defaultSubscriptionModalState = {\n\tisOpen: false,\n\treason: null,\n\ttext: null,\n\tinstrument: null,\n};\n\nexport const defaultSubscriptionInfo: SubscriptionInfo = {\n\tstatus: null,\n\ttier: null,\n\ttierNum: null,\n\tnextTier: null,\n\tenabled: null,\n\tTTTier: null,\n\texpiryDate: null,\n\tstartDate: null,\n\tisDemoUnlimited: null,\n\tmaxVolume: null,\n\tusedVolume: null,\n\tremainingVolume: null,\n};\n\n//get app context provider\n\nconst sendRequest = (\n\trequestObj: { method: keyof typeof TfboApiMethodMeta; payloadParameters: any },\n\tonSuccess?: ((response: any) => void) | null,\n\tonError?: ((error: any) => void) | null\n) => {};\n\nexport const useSubscribe = ({\n\taccountId,\n\tprovider,\n\ttier,\n\tsource,\n}: {\n\taccountId: number;\n\tprovider: string;\n\ttier: SubscriptionTier;\n\tsource: string;\n}) => {\n\tconst request = {\n\t\tmethod: 'subscriptions.subscribe' as keyof typeof TfboApiMethodMeta,\n\t\tpayloadParameters: {\n\t\t\tprovider: provider,\n\t\t\taccountNumber: accountId,\n\t\t\ttier: tier,\n\t\t\tsource: source,\n\t\t},\n\t};\n\n\tconst onSuccess = (response: any) => {};\n\n\tconst onError = (error: any) => {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\tconsole.debug('Error requesting initial subscription from TFBO gateway. Exception: ', message);\n\t};\n\n\tsendRequest(request, onSuccess, onError);\n};\n\n// export const getInstrumentTiers = (instrCode: string) => {};\n\nexport const getInstrumentMinTier = (instrumentCode: string | undefined, instrumentList: MarketItem[]) => {\n\tif (!instrumentCode) {\n\t\treturn null;\n\t}\n\n\treturn instrumentList.find((instrument) => instrument.code === instrumentCode)?.minTier;\n};\n\nexport const getTierNumFromName = (tier: SubscriptionTier) => {\n\treturn parseInt(tier?.charAt(tier.length - 1) || '', 10);\n};\n\nexport const getFormattedDateHelper = (datetime: Date | number | null | undefined, formatString: string) => {\n\tconst globalLocale = moment.locale();\n\tif (globalLocale === 'en') {\n\t\tconst modifiedMoment = datetime ? () => moment(datetime) : moment;\n\t\treturn modifiedMoment().format(formatString);\n\t}\n\n\tmoment.locale('en');\n\tconst modifiedMoment = datetime ? () => moment(datetime) : moment;\n\tconst formattedDate = modifiedMoment().format(formatString);\n\tmoment.locale(globalLocale);\n\treturn formattedDate;\n};\n\nexport const getGeneralFormatDate = (\n\tdate: Date | number | null | undefined,\n\tincludeHM: boolean = false,\n\tisJapanFormat: boolean = false\n) => {\n\tlet formatString = null;\n\tif (isJapanFormat) {\n\t\tformatString = includeHM ? JAPAN_DATETIMES_FORMAT : JAPAN_DATE_FORMAT;\n\t} else {\n\t\tformatString = includeHM ? GENERAL_DATETIMES_FORMAT : GENERAL_DATE_FORMAT;\n\t}\n\n\treturn getFormattedDateHelper(date, formatString);\n};\n\nconst getSubscriptionExpiryDate = (includeHM: boolean = false, isJapanFormat: boolean = false) => {\n\tconst endOfMonth = moment().endOf('month');\n\tconst datetime = endOfMonth.unix() * 1000;\n\n\treturn getGeneralFormatDate(datetime, includeHM, isJapanFormat);\n};\n\nconst getSubscriptionStartDate = (includeHM: boolean = false, isJapanFormat: boolean = false) => {\n\tconst startOfMonth = moment().startOf('month');\n\tconst datetime = startOfMonth.unix() * 1000;\n\n\treturn getGeneralFormatDate(datetime, includeHM, isJapanFormat);\n};\n\n// export const checkUserHasUnlimitedDemo = () => true;\n\nexport const checkIsInstrumentAllowed = (\n\tinstrumentCode: string,\n\tcurrentTierNum: number | null | undefined,\n\tinstrumentList: MarketItem[]\n) => {\n\tconst instrumentMinTier = getInstrumentMinTier(instrumentCode, instrumentList);\n\tif (!currentTierNum || !instrumentMinTier) {\n\t\treturn true;\n\t}\n\n\treturn currentTierNum >= instrumentMinTier;\n};\n\nexport const checkIsVolumeUnlimited = (subscriptionInfo: SubscriptionInfo | null) => {\n\tif (!subscriptionInfo) {\n\t\treturn false;\n\t}\n\n\treturn subscriptionInfo.maxVolume === -1;\n};\n\nexport const checkIsVolumeExceeded = (subscriptionInfo: SubscriptionInfo | null) => {\n\tif (!subscriptionInfo) {\n\t\treturn false;\n\t}\n\n\tif (subscriptionInfo?.tierNum ?? 0 > 1) {\n\t\treturn false;\n\t}\n\n\tif (subscriptionInfo?.remainingVolume === null) {\n\t\treturn false;\n\t}\n\n\treturn subscriptionInfo.remainingVolume === 0;\n};\n\nexport const checkIsTierOrderSizeExceeded = (orderSize: number, subscriptionInfo: SubscriptionInfo | null) => {\n\tif (!subscriptionInfo) {\n\t\treturn false;\n\t}\n\n\tconst currentTier = subscriptionInfo.tier;\n\tconst orderMaxLimit = tiers.find((tier) => tier.id === currentTier)?.maxPerOrder;\n\tif (orderMaxLimit) {\n\t\treturn orderSize > orderMaxLimit;\n\t}\n\n\treturn false;\n};\n\nexport const checkIsGlobalOrderSizeExceeded = (orderSize: number) => {\n\tif (!orderSize || isNaN(orderSize)) {\n\t\treturn false;\n\t}\n\n\treturn GLOBAL_MAX_ORDER_SIZE && !isNaN(GLOBAL_MAX_ORDER_SIZE) ? orderSize > GLOBAL_MAX_ORDER_SIZE : false;\n};\n\nexport const checkHasSubscriptionOptions = (subscriptionStatus: SubscriptionStatus | null) => {\n\tif (!subscriptionStatus) return false;\n\n\treturn [SubscriptionStatus.Active, SubscriptionStatus.Unpaid, SubscriptionStatus.Stopped].includes(\n\t\tsubscriptionStatus.toUpperCase() as SubscriptionStatus\n\t);\n};\n\nexport const checkIsOperationGranted = (\n\tsubscriptionStatus: SubscriptionStatus | null | undefined,\n\toperation: UserOperationType\n) => {\n\tif (!subscriptionStatus || !operation) return false;\n\n\tswitch (operation) {\n\t\tcase UserOperationType.CLOSE:\n\t\t\tif ((SubscriptionStatus.Existing, SubscriptionStatus.Unpaid).includes(subscriptionStatus)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase UserOperationType.CANCEL:\n\t\t\tif ((SubscriptionStatus.Existing, SubscriptionStatus.Unpaid).includes(subscriptionStatus)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tbreak;\n\t\tdefault:\n\t}\n\n\treturn false;\n};\n\nexport const getSubscriptionConstraints = (\n\tsubscriptionInfo: SubscriptionInfo | null,\n\tinstrumentCode: string | null,\n\tmarketItems: MarketItem[],\n\toperation?: UserOperationType\n) => {\n\tconst statusBasedReason = getInitModalPropsByStatus(subscriptionInfo?.status || null)?.reason;\n\tif (statusBasedReason) {\n\t\tconst isOperationGranted = operation ? checkIsOperationGranted(subscriptionInfo?.status, operation) : false;\n\n\t\tif (isOperationGranted) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn statusBasedReason;\n\t}\n\n\tif (instrumentCode) {\n\t\tif (\n\t\t\toperation !== UserOperationType.CLOSE &&\n\t\t\toperation !== UserOperationType.CANCEL &&\n\t\t\t!checkIsInstrumentAllowed(instrumentCode, subscriptionInfo?.tierNum, marketItems)\n\t\t) {\n\t\t\treturn SubscriptionModalReason.Instrument;\n\t\t}\n\t}\n\n\treturn null;\n};\n\nexport const canSeeSubscriptionDetails = (subscriptionStatus: SubscriptionStatus | null) => {\n\tif (!subscriptionStatus) return false;\n\treturn [SubscriptionStatus.Active, SubscriptionStatus.Unpaid, SubscriptionStatus.Existing].includes(\n\t\tsubscriptionStatus\n\t);\n};\n\n// export const checkUserHasAccess = (subscriptionStatus: SubscriptionStatus) =>\n// \t[\n// \t\tSubscriptionStatus.Active,\n// \t\t// SubscriptionStatus.NoRecord,\n// \t\tSubscriptionStatus.Incomplete,\n// \t\tSubscriptionStatus.Existing,\n// \t\t// SubscriptionStatus.Stopped,\n// \t\tSubscriptionStatus.Unpaid,\n// \t].includes(subscriptionStatus.toUpperCase() as SubscriptionStatus);\n\n// export const checkUserNeedsInitialSubscription = (subscriptionStatus: SubscriptionStatus) =>\n// \tsubscriptionStatus !== SubscriptionStatus.Active;\n// [SubscriptionStatus.NoRecord, SubscriptionStatus.Existing, SubscriptionStatus.Incomplete].includes(\n// \tsubscriptionStatus.toUpperCase() as SubscriptionStatus\n// );\n\nexport const checkMustShowTierSelector = (\n\tsubscriptionStatus: SubscriptionStatus | null,\n\tmodalReason: SubscriptionModalReason | null\n) => {\n\tif (!subscriptionStatus || !modalReason) {\n\t\treturn false;\n\t}\n\n\treturn (\n\t\t// checkUserHasAccess(subscriptionStatus) &&\n\t\t[\n\t\t\tSubscriptionModalReason.SubscriptionForExistingUser,\n\t\t\tSubscriptionModalReason.ManageSubscription,\n\t\t\tSubscriptionModalReason.UpgradeSubscription,\n\t\t\tSubscriptionModalReason.Instrument,\n\t\t\tSubscriptionModalReason.Volume,\n\t\t\tSubscriptionModalReason.OrderSizeUpgradable,\n\t\t\tSubscriptionModalReason.SubscribeFromAlert,\n\t\t\tSubscriptionModalReason.UpgradeToAccessGym,\n\t\t].includes(modalReason)\n\t);\n};\n\nexport const checkMustShowAlert = (\n\tsubscriptionStatus: SubscriptionStatus | null,\n\tmodalReason: SubscriptionModalReason | null\n) => {\n\tif (!subscriptionStatus || !modalReason) {\n\t\treturn false;\n\t}\n\n\treturn (\n\t\t// !checkUserHasAccess(subscriptionStatus) ||\n\t\t[\n\t\t\tSubscriptionModalReason.SubscriptionForNewUser,\n\t\t\tSubscriptionModalReason.SubscriptionForUnpaidUser,\n\t\t\tSubscriptionModalReason.Renewal,\n\t\t\tSubscriptionModalReason.Cancelled,\n\t\t\tSubscriptionModalReason.Terminated,\n\t\t\tSubscriptionModalReason.ChangeTierResponse,\n\t\t\tSubscriptionModalReason.SubscribeResponse,\n\t\t\tSubscriptionModalReason.ConfirmStop,\n\t\t\t// SubscriptionModalReason.ConfirmCancel,\n\t\t\tSubscriptionModalReason.ConfirmRestart,\n\t\t\tSubscriptionModalReason.SubscriptionDetails,\n\t\t\tSubscriptionModalReason.CancelSubscriptionResponse,\n\t\t\tSubscriptionModalReason.StopSubscriptionResponse,\n\t\t\tSubscriptionModalReason.RestartSubscriptionResponse,\n\t\t\tSubscriptionModalReason.NoSuperiorTiers,\n\t\t\tSubscriptionModalReason.SystemError,\n\t\t\tSubscriptionModalReason.OrderSizeGlobal,\n\t\t\tSubscriptionModalReason.NotAuthorized,\n\t\t\tSubscriptionModalReason.IncorrectParamsForBJP,\n\t\t\tSubscriptionModalReason.GymNotAccessibleForTier,\n\t\t\tSubscriptionModalReason.JapanAccountEmptyApplicationStatus,\n\t\t].includes(modalReason)\n\t);\n};\n\nexport const getInitModalPropsByStatus = (\n\tsubscriptionStatus: SubscriptionStatus | null\n): Partial | null => {\n\t// switch (subscriptionStatus?.toUpperCase()) {\n\tconst statusToReasonMap: { [key: string]: SubscriptionModalReason } = {\n\t\t[SubscriptionStatus.Terminated]: SubscriptionModalReason.Terminated,\n\t\t[SubscriptionStatus.Suspended]: SubscriptionModalReason.Cancelled,\n\t\t[SubscriptionStatus.Cancelled]: SubscriptionModalReason.Cancelled,\n\t\t[SubscriptionStatus.NoRecord]: SubscriptionModalReason.SubscriptionForNewUser,\n\t\t[SubscriptionStatus.Incomplete]: SubscriptionModalReason.SubscriptionForNewUser,\n\t\t[SubscriptionStatus.Stopped]: SubscriptionModalReason.Renewal,\n\t\t[SubscriptionStatus.Unpaid]: SubscriptionModalReason.SubscriptionForUnpaidUser,\n\t\t[SubscriptionStatus.Existing]: SubscriptionModalReason.SubscriptionForExistingUser,\n\t};\n\n\tconst reason = subscriptionStatus ? statusToReasonMap[subscriptionStatus.toUpperCase()] : null;\n\tif (reason) {\n\t\treturn {\n\t\t\treason,\n\t\t\tisOpen: true,\n\t\t\ttext: null,\n\t\t};\n\t}\n\n\treturn null;\n};\n\nexport const displayVolumeInfo = (amount: Optional) => {\n\tconst appContextProvider = Resolver.resolve(AppContextProvider);\n\tif (typeof amount === 'number') {\n\t\tif (amount === -1) {\n\t\t\treturn i18n.t('wtr:UNLIMITED');\n\t\t}\n\n\t\treturn formatNumberWithCommas(amount, 0, appContextProvider.languageSettings);\n\t}\n\n\treturn '-';\n};\n\nexport const getUpdatedSubscrInfoObject = (\n\tupdateProps: Partial,\n\tinfoObject: SubscriptionInfo | null\n) => {\n\tconst currentInfoObj = infoObject || defaultSubscriptionInfo;\n\treturn { ...currentInfoObj, ...updateProps };\n};\n\nexport const getStatusRelatedSubscrInfoUpdate = (\n\tsubscriptionStatus: SubscriptionStatus,\n\tinfoObject: SubscriptionInfo | null\n): Partial => {\n\tconst status = subscriptionStatus ? (subscriptionStatus.toUpperCase() as SubscriptionStatus) : null;\n\n\tconst updateProps: Partial = {\n\t\tstatus,\n\t\texpiryDate: subscriptionStatus === SubscriptionStatus.Active ? getSubscriptionExpiryDate(false, false) : null,\n\t\tstartDate: subscriptionStatus === SubscriptionStatus.Active ? getSubscriptionStartDate(false, false) : null,\n\t};\n\n\treturn {\n\t\t...updateProps,\n\t};\n};\n\nexport const getActiveTier = (infoObject: SubscriptionInfo | null) => {\n\tif (infoObject?.status === SubscriptionStatus.Active && infoObject?.tier?.toLowerCase() !== 'tier0') {\n\t\treturn infoObject.tier;\n\t}\n\n\treturn null;\n};\n\nexport const getNextMonthTier = (infoObject: SubscriptionInfo | null) => {\n\tif (infoObject?.status === SubscriptionStatus.Active) {\n\t\treturn infoObject.nextTier;\n\t}\n\n\treturn null;\n};\n\nexport const getTierDisplayName = (tierId: string | null) => {\n\tif (!tierId) {\n\t\treturn undefined;\n\t}\n\n\tconst tierKey = tiersKeysMap[tierId];\n\tif (!tierKey) {\n\t\treturn undefined;\n\t}\n\n\treturn i18n.t(`wtr:${tierKey}_NAME`) + ' • ' + i18n.t(`wtr:${tierKey}`);\n};\n\nexport const getTierNameByNumber = (tierNumber: number) => {\n\tconst tierKey = tiersKeysMap[`Tier${tierNumber}`];\n\tif (!tierKey) {\n\t\treturn '';\n\t}\n\n\treturn i18n.t(`wtr:${tierKey}_NAME`);\n};\n\nexport const getMinReqTierDisplayText = (tierNumber: number) => {\n\treturn i18n.t(`wtr:MINIMUM_REQUIRED_TIER`) + ': ' + getTierNameByNumber(tierNumber);\n};\n\nexport const getAnyLiveUserAccount = (appContext: AppContextProvider) => {\n\tconst liveAccountForDemo = appContext.accountStats?.find(({ account }) => account.type === 'LIVE');\n\treturn liveAccountForDemo?.account.accountNumber.toString();\n};\n\nexport const checkHasUserDemoAccount = (appContext: AppContextProvider) =>\n\t!!appContext.accountStats?.find(({ account }) => account.type === 'DEMO');\n\nexport const getJPAcctIdForTierInfoRequest = (appContext: AppContextProvider) => {\n\tif (appContext.isJapanAccount && appContext.accountStats?.length) {\n\t\tconst liveJapanSubscriptionAccount = appContext.accountStats?.find(\n\t\t\t({ account, platformAccountType }) =>\n\t\t\t\taccount.type === 'LIVE' && platformAccountType === PlatformAccountType.ThinkTrader\n\t\t);\n\t\treturn liveJapanSubscriptionAccount?.account.accountNumber.toString();\n\t}\n\treturn null;\n};\n\n//TODO: REFACTOR & FIX\n// These conditionals are workaround for this\n// https://thinkmarkets.atlassian.net/browse/WTR-4894\n// On randomly runtime points those 2 arrays are different, in this case,\n// the tradingAccount have the accounts data, but the accountStats does not,\n// that way the request to RFP is not sent, therefore no data for Volume info is received.\nexport const getJPAcctIdForTierInfoRequestFromTradingAccounts = (tradingAccounts: TradingAccount[]) => {\n\tconst liveJapanSubscriptionAccount = tradingAccounts.find(\n\t\t({ accountType, accountMarketType }) => accountType === 'LIVE' && accountMarketType === AccountMarketType.Japan\n\t);\n\treturn liveJapanSubscriptionAccount?.accountNumber?.toString();\n};\n\n// export const getCurrentAccountId = (accountContext: DashboardContextProvider) => {\n// \tif (accountContext.activeTradingAccount.length > 0) {\n// \t\treturn accountContext.activeTradingAccount[0].providerAccountId;\n// \t} else if (accountContext.tradingAccount.length > 0) {\n// \t\treturn accountContext.tradingAccount[0].providerAccountId;\n// \t}\n\n// \treturn null;\n// };\n// !!!!! TFBO returns params for a request to BJP ONLY when status is `NoRecord` or `Incomplete`\n//---- Dynamic form for request to BJP: used for initial new subscription\n//subscriptionUtils/ submitDynamicForm(result.action.type, result.action.url, result.action.fields, acceptCharset)\n","import { createContext } from 'react';\nimport clone from 'clone';\n\nimport { Resolver } from '../utils/functions/Ioc';\nimport { default as Lazy } from '../utils/functions/Lazy';\nimport { ObservableObject } from '../utils/functions/Observables';\nimport { Optional } from '../utils/functions/Nullable';\nimport { TWatchlists, TWatchlistInstrument } from '../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\nimport { default as RfpGateway } from '../gateways/RfpGateway/RfpGateway';\nimport {\n\tMarketItem,\n\tTradeRequest,\n\tTradingInstruments,\n\tMarketItemInfo,\n\tRFPNews,\n\tTradingAccount,\n\tTradingPosition,\n\torderTypes,\n\tMarketWatchIntervals,\n\tMarketWatchCategories,\n\tMarketWatchItem,\n\tMarketWatchItems,\n\tPreviousDayClosePrices,\n\tRFPServerItem,\n} from '../gateways/RfpGateway/rfp.types';\n\nimport { AppComponentType } from '../utils/functions/enums';\n\nexport type TModalToggle = {\n\ttype: 'CLOSE_ORDER' | 'CLOSE_POSITION';\n\tvalue: boolean;\n};\n\nexport type TNewOrderModalToggle = {\n\ttype: 'ORDER_TICKET' | 'CONFIRM_ORDER' | 'ORDER_SUCCESS' | 'ADD_PROFIT_LOSS';\n\tvalue: boolean;\n};\n\nexport type TOpenOrder = {\n\tsymbol: string;\n\tside: string;\n\tcommission?: string;\n\tquantity: string;\n\topenPrice: string;\n\tcurrentPrice: string;\n\tstopLoss: string;\n\ttakeProfit: string;\n\tpL: string;\n\tdividend: string;\n\trisk: string;\n\tswap: string;\n\torderID: string;\n};\n\nexport type TExecutedOrder = {\n\tsymbol: string;\n\tside: string;\n\tquantity: string;\n\topenPrice: string;\n\tcurrentPrice: string;\n\tstopLoss: string;\n\ttakeProfit: string;\n\tpL: string;\n\tdividend: string;\n\trisk: string;\n\tcommission: string;\n\tswap: string;\n\torderID: string;\n};\n\nexport type TClosedOrder = {\n\tcloseTime: string;\n\tsymbol: string;\n\tside: string;\n\tquantity: string;\n\topenPrice: string;\n\tcurrentPrice: string;\n\tstopLoss: string;\n\ttakeProfit: string;\n\tpL: string;\n\tdividend: string;\n\trisk: string;\n\tcommission: string;\n\tswap: string;\n\torderID: string;\n};\n\nexport type TChartFeed = {\n\tc: number;\n\tcf: number;\n\tf: string;\n\th: number;\n\tl: number;\n\to: number;\n\tr: string;\n\tt: number;\n\tv: number;\n\tx: string;\n};\n\nexport interface WatchListItemCodes {\n\t_code: string;\n}\n\nexport interface WatchListItem {\n\tcodes_csv: WatchListItemCodes[];\n\torder: number;\n\ttitle: string;\n}\n\nexport interface DefaultWatchList {\n\tisoCode: string;\n\titems: WatchListItem[];\n}\n\nexport type TMappedWatchlist = {\n\t[key: string]: TWatchlistInstrument[];\n};\n\nexport type TLoadingState = {\n\ttype: 'MARKET' | 'ACCOUNT' | 'POSITION';\n\tvalue: boolean;\n};\n\nexport type TOrderConfirm = {\n\tnew: boolean;\n\tedit: boolean;\n\tcancel: boolean;\n\tclose: boolean;\n};\n\nexport type TInputError = {\n\ttype: 'AMOUNT-LOTS' | 'LIMIT-STOP' | 'TAKE-PROFIT' | 'STOP-LOSS' | 'CLOSE-QUANTITY' | 'ADD-PROFIT' | 'ADD-LOSS';\n\tvalue: boolean | string;\n};\n\nexport type TNotification = {\n\tisActive: boolean;\n\tmessage: string;\n\ttype: 'info' | 'error';\n};\n\nexport type TOrderValue = {\n\tamountLots: string;\n\tlimitStop: string;\n\ttakeProfit: string;\n\tstopLoss: string;\n\tclosePosition: string;\n\tcloseQuantity: string;\n\taddProfit: string;\n\taddLoss: string;\n\tlabel: string;\n};\n\nexport type TShowProfitLoss = {\n\ttakeProfit: boolean;\n\tstopLoss: boolean;\n\taddProfit: boolean;\n\taddLoss: boolean;\n};\n\nexport type TInputValidation = {\n\taddProfit: boolean;\n\taddLoss: boolean;\n\tamountLots: boolean;\n\tcloseQuantity: boolean;\n\tlimitStop: boolean;\n\thighAmount: boolean;\n};\n\ntype TDashboardContextProperties = {\n\taccountType: 'cfd' | 'equity';\n\talreadyEstablished: boolean;\n\torderModalOpenedFrom: string;\n\taccountValues: {\n\t\tbalance: number;\n\t\tmargin: number;\n\t\tfreeMargin: number;\n\t\tmarginLevel: number;\n\t\tequity: number;\n\t\torganizationName: string;\n\t\tpl: number;\n\t};\n\tupdateMarketWatchItem: MarketWatchItem | null;\n\tmarketWatchIntervals: MarketWatchIntervals | MarketWatchIntervals[];\n\tmarketWatchCategories: MarketWatchCategories | MarketWatchCategories[];\n\tmarketWatchItem: MarketWatchItem[];\n\tmarketWatchItems: MarketWatchItems[];\n\tmarketWatchRisers: {\n\t\tdaily: MarketWatchItems[];\n\t\tweekly: MarketWatchItems[];\n\t};\n\tmarketWatchRisersSB: {\n\t\tdaily: MarketWatchItems[];\n\t\tweekly: MarketWatchItems[];\n\t};\n\tmarketWatchFallers: {\n\t\tdaily: MarketWatchItems[];\n\t\tweekly: MarketWatchItems[];\n\t};\n\tmarketWatchFallersSB: {\n\t\tdaily: MarketWatchItems[];\n\t\tweekly: MarketWatchItems[];\n\t};\n\tmarketWatchMostVolatile: {\n\t\tdaily: MarketWatchItems[];\n\t\tweekly: MarketWatchItems[];\n\t};\n\tmarketWatchMostVolatileSB: {\n\t\tdaily: MarketWatchItems[];\n\t\tweekly: MarketWatchItems[];\n\t};\n\tclosedTable: TClosedOrder[];\n\thistoricalData: TChartFeed[];\n\tdetailedInformation: TradingInstruments[];\n\tdefaultWatchLists: DefaultWatchList[];\n\tmainPanelView: number;\n\tmarketItems: MarketItem[];\n\tmarketItemsInfo: MarketItemInfo[];\n\tmultiCharts: boolean;\n\tnewChart: boolean;\n\tnotificationMessage: string;\n\tnotificationType: 'info' | 'error';\n\ttradeNews: RFPNews[];\n\topenTable: TOpenOrder[];\n\torderTable: TExecutedOrder[];\n\t// orderType: 'SELL' | 'BUY' | 'NEW';\n\tquantityType: 'Lots' | 'Amount';\n\tnotificationSoundMuted: boolean;\n\tnotificationSoundVolume: number;\n\ttradeFromChartEnabled: boolean;\n\toneClickTrading: boolean;\n\trfpConnectionError: any;\n\tselectedTradingAccount: number;\n\tselectedInstrument: Optional;\n\tselectedSymbol: any;\n\tselectedPosition: any;\n\tselectedNewsContent: number;\n\tsymbolChanged: string;\n\ttoggleOverlay: number;\n\tpositionProfitLosses: number;\n\ttradingAccount: TradingAccount[];\n\trfpServerNames: RFPServerItem[];\n\ttradingPositions: Record;\n\ttradingPositionsArr: TradingPosition[];\n\ttradingPositionsLength: number;\n\ttwoFactorAuthModalToggle: boolean;\n\twatchlist: TWatchlists[];\n\thsSubs: any;\n\tinstruments: any;\n\torderConfirm: TOrderConfirm;\n\tkeyPress: any;\n\tmarketIndex: any;\n\trfpGatewayProvider: Optional<() => RfpGateway>;\n\tinactiveTime: number;\n\tinactiveModal: boolean;\n\topenOrder: any;\n\topenOrderInformation: boolean;\n\ttoggleAccordionMenu: string;\n\tinputValidation: TInputValidation;\n\torderValue: TOrderValue;\n\ttrade: any;\n\tcurrentPrice: any;\n\tisEdit: boolean;\n\tdragPosition: any;\n\tshowProfitLoss: TShowProfitLoss;\n\tactiveIndex: number;\n\tgridClicked: boolean | number;\n\tselectedSymbolUpdated: boolean;\n\tgetOrderInfo: any;\n\tinstrumentLastTrade: any;\n\tsettingsOptions: any;\n\tgridChartsChanged: boolean;\n\tshowOrderTicket: boolean;\n\tshowOrderInformation: boolean;\n\tshowCloseTicket: boolean;\n\tshowClosedPositionTicket: boolean;\n\tshowConfirmTicket: boolean;\n\ttradeInformation: Optional;\n\tshowCancelTicket: boolean;\n\tgridButton: any;\n\tmodifyTicket: boolean;\n\tgridChartInitialLoad: boolean;\n\tcrossHairState: any;\n\tshowNewsFeed: boolean;\n\tselectedType: string;\n\tcloseTrade: any;\n\tstartTradingNow: boolean;\n\tmaximizeGrid: boolean;\n\tapplicationStatus: string | null | undefined;\n\tchartTimezone: any;\n\tinitialTimezone: Optional;\n\theaderSelected: boolean;\n\tcloseLength: number;\n\temptyChartModal: boolean;\n\tticketLoad: boolean;\n\ttypeOfOrder: orderTypes;\n\tuserGuide: boolean;\n\tmodalToggle: {\n\t\tclosePosition: boolean;\n\t\tcloseOrder: boolean;\n\t};\n\tnewOrderModalToggle: {\n\t\torderTicket: boolean;\n\t\tconfirmOrder: boolean;\n\t\tamount?: number;\n\t\tlimit?: number;\n\t\tstopLoss?: number;\n\t\ttakeProfit?: number;\n\t\tdate?: string;\n\t\tinstrument?: string;\n\t};\n\tnotification: TNotification;\n\treconnection: {\n\t\tisReconnecting: boolean;\n\t\tcount: number;\n\t};\n\tloadingState: {\n\t\tmarketItems: boolean;\n\t\ttradingAccounts: boolean;\n\t\ttradingPositions: boolean;\n\t};\n\tpresentComponentType: AppComponentType;\n\taccountPopupToggle: boolean;\n\ttfboConnectionError: boolean;\n\tssoTradingAccount: string | null;\n\tpreviousDayClosePrices: PreviousDayClosePrices;\n};\n\nlet defaultValues = new Lazy(() => {\n\treturn {\n\t\tpresentComponentType: AppComponentType.Watchlist,\n\t\taccountType: 'cfd',\n\t\talreadyEstablished: false,\n\t\taccountValues: {\n\t\t\tbalance: 0,\n\t\t\tmargin: 0,\n\t\t\tfreeMargin: 0,\n\t\t\tmarginLevel: 0,\n\t\t\tequity: 0,\n\t\t\tpl: 0,\n\t\t\torganizationName: '',\n\t\t},\n\t\torderModalOpenedFrom: '',\n\t\tupdateMarketWatchItem: null,\n\t\tmarketWatchIntervals: [],\n\t\tmarketWatchCategories: [],\n\t\tmarketWatchItem: [],\n\t\tmarketWatchItems: [],\n\t\tmarketWatchRisers: {\n\t\t\tdaily: [],\n\t\t\tweekly: [],\n\t\t},\n\t\tmarketWatchRisersSB: {\n\t\t\tdaily: [],\n\t\t\tweekly: [],\n\t\t},\n\t\tmarketWatchFallers: {\n\t\t\tdaily: [],\n\t\t\tweekly: [],\n\t\t},\n\t\tmarketWatchFallersSB: {\n\t\t\tdaily: [],\n\t\t\tweekly: [],\n\t\t},\n\t\tmarketWatchMostVolatile: {\n\t\t\tdaily: [],\n\t\t\tweekly: [],\n\t\t},\n\t\tmarketWatchMostVolatileSB: {\n\t\t\tdaily: [],\n\t\t\tweekly: [],\n\t\t},\n\t\tclosedTable: [],\n\t\thistoricalData: [],\n\t\tdetailedInformation: [],\n\t\tdefaultWatchLists: [],\n\t\tmainPanelView: 2,\n\t\tmarketItems: [],\n\t\tmarketItemsInfo: [],\n\t\tmultiCharts: true,\n\t\tnewChart: false,\n\t\tnotificationMessage: 'My Error Message',\n\t\tnotificationType: 'error',\n\t\ttradeNews: [],\n\t\topenTable: [],\n\t\torderTable: [],\n\t\torderType: 'BUY',\n\t\tquantityType: 'Amount',\n\t\tnotificationSoundMuted: false,\n\t\tnotificationSoundVolume: 50,\n\t\ttradeFromChartEnabled: true,\n\t\trfpConnectionError: {},\n\t\tselectedTradingAccount: 0,\n\t\tselectedInstrument: null,\n\t\tselectedSymbol: {},\n\t\tselectedPosition: {},\n\t\tselectedNewsContent: -1,\n\t\tsymbolChanged: '',\n\t\ttoggleOverlay: -1,\n\t\tpositionProfitLosses: 0,\n\t\ttradingAccount: [],\n\t\trfpServerNames: [],\n\t\ttradingPositions: {},\n\t\ttradingPositionsArr: [],\n\t\ttradingPositionsLength: 0,\n\t\ttwoFactorAuthModalToggle: false,\n\t\tstartTradingNow: false,\n\t\twatchlist: [],\n\t\thsSubs: [],\n\t\tinstruments: {},\n\t\torderConfirm: {\n\t\t\tnew: false,\n\t\t\tedit: false,\n\t\t\tcancel: false,\n\t\t\tclose: false,\n\t\t},\n\t\toneClickTrading: false,\n\t\tkeyPress: -1,\n\t\tmarketIndex: -1,\n\t\trfpGatewayProvider: null,\n\t\tinactiveTime: 3600,\n\t\tinactiveModal: false,\n\t\topenOrder: [],\n\t\topenOrderInformation: false,\n\t\ttoggleAccordionMenu: '',\n\t\tinputValidation: {\n\t\t\tamountLots: false,\n\t\t\tlimitStop: false,\n\t\t\taddProfit: false,\n\t\t\taddLoss: false,\n\t\t\tcloseQuantity: false,\n\t\t\thighAmount: false,\n\t\t},\n\t\torderValue: {\n\t\t\tamountLots: '',\n\t\t\tlimitStop: '',\n\t\t\ttakeProfit: '',\n\t\t\tstopLoss: '',\n\t\t\tclosePosition: '',\n\t\t\tcloseQuantity: '',\n\t\t\taddProfit: '',\n\t\t\taddLoss: '',\n\t\t\tlabel: '',\n\t\t},\n\t\ttrade: [],\n\t\ttoggleOrdersTFC: false,\n\t\ttoggleTradesTFC: false,\n\t\temptyChartModal: false,\n\t\tcurrentPrice: 0,\n\t\tisEdit: false,\n\t\tdragPosition: {},\n\t\tshowProfitLoss: {\n\t\t\ttakeProfit: false,\n\t\t\tstopLoss: false,\n\t\t\taddProfit: false,\n\t\t\taddLoss: false,\n\t\t},\n\t\tactiveIndex: 0,\n\t\tgridClicked: 0,\n\t\tselectedSymbolUpdated: false,\n\t\tgetOrderInfo: {},\n\t\tinstrumentLastTrade: [],\n\t\tsettingsOptions: {},\n\t\tgridChartsChanged: false,\n\t\tshowOrderTicket: false,\n\t\tshowOrderInformation: false,\n\t\tshowCloseTicket: false,\n\t\tshowClosedPositionTicket: false,\n\t\tshowConfirmTicket: false,\n\t\ttradeInformation: null,\n\t\tshowCancelTicket: false,\n\t\tgridButton: '',\n\t\tmodifyTicket: false,\n\t\tgridChartInitialLoad: false,\n\t\tcrossHairState: {},\n\t\tshowNewsFeed: false,\n\t\tselectedType: 'Instrument',\n\t\tcloseTrade: 'Today',\n\t\tmaximizeGrid: false,\n\t\tapplicationStatus: undefined,\n\t\tchartTimezone: '',\n\t\tinitialTimezone: '',\n\t\theaderSelected: false,\n\t\tcloseLength: 0,\n\t\tticketLoad: false,\n\t\ttypeOfOrder: 'market',\n\t\tuserGuide: false,\n\t\tmodalToggle: {\n\t\t\tclosePosition: false,\n\t\t\tcloseOrder: false,\n\t\t},\n\t\tnewOrderModalToggle: {\n\t\t\torderTicket: false,\n\t\t\tconfirmOrder: false,\n\t\t},\n\t\tnotification: {\n\t\t\tisActive: false,\n\t\t\tmessage: '',\n\t\t\ttype: 'error',\n\t\t},\n\t\treconnection: {\n\t\t\tisReconnecting: false,\n\t\t\tcount: 0,\n\t\t},\n\t\tloadingState: {\n\t\t\tmarketItems: false,\n\t\t\ttradingAccounts: false,\n\t\t\ttradingPositions: false,\n\t\t},\n\t\taccountPopupToggle: false,\n\t\ttfboConnectionError: false,\n\t\tssoTradingAccount: null,\n\t\tpreviousDayClosePrices: {},\n\t\tcloseAllOtherTabs: null,\n\t};\n});\n\ninterface IDashboardContext extends TDashboardContextProperties {\n\treset(): void;\n}\n\nexport class DashboardContextProvider\n\textends ObservableObject\n\timplements IDashboardContext\n{\n\tprivate m_propertyValues: TDashboardContextProperties;\n\tprivate static _instance = new Lazy(() => {\n\t\treturn new DashboardContextProvider();\n\t});\n\n\tpublic static get instance(): DashboardContextProvider {\n\t\treturn this._instance.getValue();\n\t}\n\n\tpublic get marketWatchIntervals(): MarketWatchIntervals | MarketWatchIntervals[] {\n\t\treturn this.m_propertyValues.marketWatchIntervals;\n\t}\n\n\tpublic set marketWatchIntervals(value: MarketWatchIntervals | MarketWatchIntervals[]) {\n\t\tthis.raiseAndSetIfChanged('marketWatchIntervals', value, this.m_propertyValues.marketWatchIntervals, (value) => {\n\t\t\tthis.m_propertyValues.marketWatchIntervals = value;\n\t\t});\n\t}\n\n\tpublic get marketWatchCategories(): MarketWatchCategories | MarketWatchCategories[] {\n\t\treturn this.m_propertyValues.marketWatchCategories;\n\t}\n\n\tpublic set marketWatchCategories(value: MarketWatchCategories | MarketWatchCategories[]) {\n\t\tthis.raiseAndSetIfChanged('marketWatchCategories', value, this.m_propertyValues.marketWatchCategories, (value) => {\n\t\t\tthis.m_propertyValues.marketWatchCategories = value;\n\t\t});\n\t}\n\n\tpublic get marketWatchItem(): MarketWatchItem[] {\n\t\treturn this.m_propertyValues.marketWatchItem;\n\t}\n\n\tpublic set marketWatchItem(value: MarketWatchItem[]) {\n\t\tthis.raiseAndSetIfChanged('marketWatchItem', value, this.m_propertyValues.marketWatchItem, (value) => {\n\t\t\tthis.m_propertyValues.marketWatchItem = value;\n\t\t});\n\t}\n\n\tpublic get defaultWatchLists(): DefaultWatchList[] {\n\t\treturn this.m_propertyValues.defaultWatchLists;\n\t}\n\n\tpublic set defaultWatchLists(value: DefaultWatchList[]) {\n\t\tthis.raiseAndSetIfChanged('defaultWatchLists', value, this.m_propertyValues.defaultWatchLists, (value) => {\n\t\t\tthis.m_propertyValues.defaultWatchLists = value;\n\t\t});\n\t}\n\n\tpublic get updateMarketWatchItem(): MarketWatchItem | null {\n\t\treturn this.m_propertyValues.updateMarketWatchItem;\n\t}\n\n\tpublic set updateMarketWatchItem(value: MarketWatchItem | null) {\n\t\tthis.raiseAndSetIfChanged('updateMarketWatchItem', value, this.m_propertyValues.updateMarketWatchItem, (value) => {\n\t\t\tthis.m_propertyValues.updateMarketWatchItem = value;\n\t\t});\n\t}\n\n\tpublic get marketWatchItems(): MarketWatchItems[] {\n\t\treturn this.m_propertyValues.marketWatchItems;\n\t}\n\n\tpublic set marketWatchItems(value: MarketWatchItems[]) {\n\t\tthis.raiseAndSetIfChanged('marketWatchItems', value, this.m_propertyValues.marketWatchItems, (value) => {\n\t\t\tthis.m_propertyValues.marketWatchItems = value;\n\t\t});\n\t}\n\n\tpublic get marketWatchRisers(): {\n\t\tdaily: MarketWatchItems[];\n\t\tweekly: MarketWatchItems[];\n\t} {\n\t\treturn this.m_propertyValues.marketWatchRisers;\n\t}\n\n\tpublic set marketWatchRisers(value: { daily: MarketWatchItems[]; weekly: MarketWatchItems[] }) {\n\t\tthis.raiseAndSetIfChanged('marketWatchRisers', value, this.m_propertyValues.marketWatchRisers, (value) => {\n\t\t\tthis.m_propertyValues.marketWatchRisers = value;\n\t\t});\n\t}\n\n\tpublic get marketWatchRisersSB(): {\n\t\tdaily: MarketWatchItems[];\n\t\tweekly: MarketWatchItems[];\n\t} {\n\t\treturn this.m_propertyValues.marketWatchRisersSB;\n\t}\n\n\tpublic set marketWatchRisersSB(value: { daily: MarketWatchItems[]; weekly: MarketWatchItems[] }) {\n\t\tthis.raiseAndSetIfChanged('marketWatchRisersSB', value, this.m_propertyValues.marketWatchRisersSB, (value) => {\n\t\t\tthis.m_propertyValues.marketWatchRisersSB = value;\n\t\t});\n\t}\n\n\tpublic get marketWatchFallers(): {\n\t\tdaily: MarketWatchItems[];\n\t\tweekly: MarketWatchItems[];\n\t} {\n\t\treturn this.m_propertyValues.marketWatchFallers;\n\t}\n\n\tpublic set marketWatchFallers(value: { daily: MarketWatchItems[]; weekly: MarketWatchItems[] }) {\n\t\tthis.raiseAndSetIfChanged('marketWatchFallers', value, this.m_propertyValues.marketWatchFallers, (value) => {\n\t\t\tthis.m_propertyValues.marketWatchFallers = value;\n\t\t});\n\t}\n\n\tpublic get marketWatchFallersSB(): {\n\t\tdaily: MarketWatchItems[];\n\t\tweekly: MarketWatchItems[];\n\t} {\n\t\treturn this.m_propertyValues.marketWatchFallersSB;\n\t}\n\n\tpublic set marketWatchFallersSB(value: { daily: MarketWatchItems[]; weekly: MarketWatchItems[] }) {\n\t\tthis.raiseAndSetIfChanged('marketWatchFallersSB', value, this.m_propertyValues.marketWatchFallersSB, (value) => {\n\t\t\tthis.m_propertyValues.marketWatchFallersSB = value;\n\t\t});\n\t}\n\n\tpublic get marketWatchMostVolatile(): {\n\t\tdaily: MarketWatchItems[];\n\t\tweekly: MarketWatchItems[];\n\t} {\n\t\treturn this.m_propertyValues.marketWatchMostVolatile;\n\t}\n\n\tpublic set marketWatchMostVolatile(value: { daily: MarketWatchItems[]; weekly: MarketWatchItems[] }) {\n\t\tthis.raiseAndSetIfChanged(\n\t\t\t'marketWatchMostVolatile',\n\t\t\tvalue,\n\t\t\tthis.m_propertyValues.marketWatchMostVolatile,\n\t\t\t(value) => {\n\t\t\t\tthis.m_propertyValues.marketWatchMostVolatile = value;\n\t\t\t}\n\t\t);\n\t}\n\tpublic get marketWatchMostVolatileSB(): {\n\t\tdaily: MarketWatchItems[];\n\t\tweekly: MarketWatchItems[];\n\t} {\n\t\treturn this.m_propertyValues.marketWatchMostVolatileSB;\n\t}\n\n\tpublic set marketWatchMostVolatileSB(value: { daily: MarketWatchItems[]; weekly: MarketWatchItems[] }) {\n\t\tthis.raiseAndSetIfChanged(\n\t\t\t'marketWatchMostVolatileSB',\n\t\t\tvalue,\n\t\t\tthis.m_propertyValues.marketWatchMostVolatileSB,\n\t\t\t(value) => {\n\t\t\t\tthis.m_propertyValues.marketWatchMostVolatileSB = value;\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic get accountType(): 'cfd' | 'equity' {\n\t\treturn this.m_propertyValues.accountType;\n\t}\n\n\tpublic set accountType(value: 'cfd' | 'equity') {\n\t\tthis.raiseAndSetIfChanged('accountType', value, this.m_propertyValues.accountType, (value) => {\n\t\t\tthis.m_propertyValues.accountType = value;\n\t\t});\n\t}\n\n\tpublic get alreadyEstablished(): boolean {\n\t\treturn this.m_propertyValues.alreadyEstablished;\n\t}\n\n\tpublic set alreadyEstablished(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('alreadyEstablished', value, this.m_propertyValues.alreadyEstablished, (value) => {\n\t\t\tthis.m_propertyValues.alreadyEstablished = value;\n\t\t});\n\t}\n\n\tpublic get orderModalOpenedFrom(): string {\n\t\treturn this.m_propertyValues.orderModalOpenedFrom;\n\t}\n\n\tpublic set orderModalOpenedFrom(value: string) {\n\t\tthis.raiseAndSetIfChanged('orderModalOpenedFrom', value, this.m_propertyValues.orderModalOpenedFrom, (value) => {\n\t\t\tthis.m_propertyValues.orderModalOpenedFrom = value;\n\t\t});\n\t}\n\n\tpublic get closedTable(): TClosedOrder[] {\n\t\treturn this.m_propertyValues.closedTable;\n\t}\n\n\tpublic set closedTable(value: TClosedOrder[]) {\n\t\tthis.raiseAndSetIfChanged('closedTable', value, this.m_propertyValues.closedTable, (value) => {\n\t\t\tthis.m_propertyValues.closedTable = value;\n\t\t});\n\t}\n\n\tpublic get historicalData(): TChartFeed[] {\n\t\treturn this.m_propertyValues.historicalData;\n\t}\n\n\tpublic set historicalData(value: TChartFeed[]) {\n\t\tthis.raiseAndSetIfChanged('historicalData', value, this.m_propertyValues.historicalData, (value) => {\n\t\t\tthis.m_propertyValues.historicalData = value;\n\t\t});\n\t}\n\n\tpublic get detailedInformation(): TradingInstruments[] {\n\t\treturn this.m_propertyValues.detailedInformation;\n\t}\n\n\tpublic set detailedInformation(value: TradingInstruments[]) {\n\t\tthis.raiseAndSetIfChanged('detailedInformation', value, this.m_propertyValues.detailedInformation, (value) => {\n\t\t\tthis.m_propertyValues.detailedInformation = value;\n\t\t});\n\t}\n\n\tpublic get mainPanelView(): number {\n\t\treturn this.m_propertyValues.mainPanelView;\n\t}\n\n\tpublic set mainPanelView(value: number) {\n\t\tthis.raiseAndSetIfChanged('mainPanelView', value, this.m_propertyValues.mainPanelView, (value) => {\n\t\t\tthis.m_propertyValues.mainPanelView = value;\n\t\t});\n\t}\n\n\tpublic get marketItems(): MarketItem[] {\n\t\treturn this.m_propertyValues.marketItems;\n\t}\n\n\tpublic set marketItems(value: MarketItem[]) {\n\t\tthis.raiseAndSetIfChanged('marketItems', value, this.m_propertyValues.marketItems, (value) => {\n\t\t\tthis.m_propertyValues.marketItems = value;\n\t\t});\n\t}\n\n\tpublic get marketItemsInfo(): MarketItemInfo[] {\n\t\treturn this.m_propertyValues.marketItemsInfo;\n\t}\n\n\tpublic set marketItemsInfo(value: MarketItemInfo[]) {\n\t\tthis.raiseAndSetIfChanged('marketItemsInfo', value, this.m_propertyValues.marketItemsInfo, (value) => {\n\t\t\tthis.m_propertyValues.marketItemsInfo = value;\n\t\t});\n\t}\n\n\tpublic get presentComponentType(): AppComponentType {\n\t\treturn this.m_propertyValues.presentComponentType;\n\t}\n\n\tpublic set presentComponentType(value: AppComponentType) {\n\t\tthis.raiseAndSetIfChanged('presentComponentType', value, this.m_propertyValues.presentComponentType, (value) => {\n\t\t\tthis.m_propertyValues.presentComponentType = value;\n\t\t});\n\t}\n\n\tpublic get multiCharts(): boolean {\n\t\treturn this.m_propertyValues.multiCharts;\n\t}\n\n\tpublic set multiCharts(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('multiCharts', value, this.m_propertyValues.multiCharts, (value) => {\n\t\t\tthis.m_propertyValues.multiCharts = value;\n\t\t});\n\t}\n\n\tpublic get newChart(): boolean {\n\t\treturn this.m_propertyValues.newChart;\n\t}\n\n\tpublic set newChart(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('newChart', value, this.m_propertyValues.newChart, (value) => {\n\t\t\tthis.m_propertyValues.newChart = value;\n\t\t});\n\t}\n\n\tpublic get notificationMessage(): string {\n\t\treturn this.m_propertyValues.notificationMessage;\n\t}\n\n\tpublic set notificationMessage(value: string) {\n\t\tthis.raiseAndSetIfChanged('notificationMessage', value, this.m_propertyValues.notificationMessage, (value) => {\n\t\t\tthis.m_propertyValues.notificationMessage = value;\n\t\t});\n\t}\n\n\tpublic get notificationType(): 'info' | 'error' {\n\t\treturn this.m_propertyValues.notificationType;\n\t}\n\n\tpublic set notificationType(value: 'info' | 'error') {\n\t\tthis.raiseAndSetIfChanged('notificationType', value, this.m_propertyValues.notificationType, (value) => {\n\t\t\tthis.m_propertyValues.notificationType = value;\n\t\t});\n\t}\n\n\tpublic get tradeNews(): RFPNews[] {\n\t\treturn this.m_propertyValues.tradeNews;\n\t}\n\n\tpublic set tradeNews(value: RFPNews[]) {\n\t\tthis.raiseAndSetIfChanged('tradeNews', value, this.m_propertyValues.tradeNews, (value) => {\n\t\t\tthis.m_propertyValues.tradeNews = value;\n\t\t});\n\t}\n\n\tpublic get openTable(): TOpenOrder[] {\n\t\treturn this.m_propertyValues.openTable;\n\t}\n\n\tpublic set openTable(value: TOpenOrder[]) {\n\t\tthis.raiseAndSetIfChanged('openTable', value, this.m_propertyValues.openTable, (value) => {\n\t\t\tthis.m_propertyValues.openTable = value;\n\t\t});\n\t}\n\n\tpublic get orderTable(): TExecutedOrder[] {\n\t\treturn this.m_propertyValues.orderTable;\n\t}\n\n\tpublic set orderTable(value: TExecutedOrder[]) {\n\t\tthis.raiseAndSetIfChanged('orderTable', value, this.m_propertyValues.orderTable, (value) => {\n\t\t\tthis.m_propertyValues.orderTable = value;\n\t\t});\n\t}\n\n\t// public get orderType(): 'SELL' | 'BUY' | 'NEW' {\n\t// \treturn this.m_propertyValues.orderType;\n\t// }\n\n\t// public set orderType(value: 'SELL' | 'BUY' | 'NEW') {\n\t// \tthis.raiseAndSetIfChanged('orderType', value, this.m_propertyValues.orderType, (value) => {\n\t// \t\tthis.m_propertyValues.orderType = value;\n\t// \t});\n\t// }\n\n\tpublic get quantityType(): 'Lots' | 'Amount' {\n\t\treturn this.m_propertyValues.quantityType;\n\t}\n\n\tpublic set quantityType(value: 'Lots' | 'Amount') {\n\t\tthis.raiseAndSetIfChanged('quantityType', value, this.m_propertyValues.quantityType, (value) => {\n\t\t\tthis.m_propertyValues.quantityType = value;\n\t\t});\n\t}\n\n\tpublic get notificationSoundMuted(): boolean {\n\t\treturn this.m_propertyValues.notificationSoundMuted;\n\t}\n\n\tpublic set notificationSoundMuted(value: boolean) {\n\t\tthis.raiseAndSetIfChanged(\n\t\t\t'notificationSoundMuted',\n\t\t\tvalue,\n\t\t\tthis.m_propertyValues.notificationSoundMuted,\n\t\t\t(value) => {\n\t\t\t\tthis.m_propertyValues.notificationSoundMuted = value;\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic get notificationSoundVolume(): number {\n\t\treturn this.m_propertyValues.notificationSoundVolume;\n\t}\n\tpublic set notificationSoundVolume(value: number) {\n\t\tthis.raiseAndSetIfChanged(\n\t\t\t'notificationSoundVolume',\n\t\t\tvalue,\n\t\t\tthis.m_propertyValues.notificationSoundVolume,\n\t\t\t(value) => {\n\t\t\t\tthis.m_propertyValues.notificationSoundVolume = value;\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic get tradeFromChartEnabled(): boolean {\n\t\treturn this.m_propertyValues.tradeFromChartEnabled;\n\t}\n\n\tpublic set tradeFromChartEnabled(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('tradeFromChartEnabled', value, this.m_propertyValues.tradeFromChartEnabled, (value) => {\n\t\t\tthis.m_propertyValues.tradeFromChartEnabled = value;\n\t\t});\n\t}\n\n\tpublic get rfpConnectionError(): any {\n\t\treturn this.m_propertyValues.rfpConnectionError;\n\t}\n\n\tpublic set rfpConnectionError(value: any) {\n\t\tthis.raiseAndSetIfChanged('rfpConnectionError', value, this.m_propertyValues.rfpConnectionError, (value) => {\n\t\t\tthis.m_propertyValues.rfpConnectionError = value;\n\t\t});\n\t}\n\n\tpublic get selectedTradingAccount(): number {\n\t\treturn this.m_propertyValues.selectedTradingAccount;\n\t}\n\n\tpublic set selectedTradingAccount(value: number) {\n\t\tthis.raiseAndSetIfChanged(\n\t\t\t'selectedTradingAccount',\n\t\t\tvalue,\n\t\t\tthis.m_propertyValues.selectedTradingAccount,\n\t\t\t(value) => {\n\t\t\t\tthis.m_propertyValues.selectedTradingAccount = value;\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic get selectedInstrument(): Optional {\n\t\treturn this.m_propertyValues.selectedInstrument;\n\t}\n\n\tpublic set selectedInstrument(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('selectedInstrument', value, this.m_propertyValues.selectedInstrument, (value) => {\n\t\t\tthis.m_propertyValues.selectedInstrument = value;\n\t\t});\n\t}\n\n\tpublic get selectedSymbol(): any {\n\t\treturn this.m_propertyValues.selectedSymbol;\n\t}\n\n\tpublic set selectedSymbol(value: any) {\n\t\tthis.raiseAndSetIfChanged('selectedSymbol', value, this.m_propertyValues.selectedSymbol, (value) => {\n\t\t\tthis.m_propertyValues.selectedSymbol = value;\n\t\t});\n\t}\n\n\tpublic get selectedPosition(): any {\n\t\treturn this.m_propertyValues.selectedPosition;\n\t}\n\n\tpublic set selectedPosition(value: any) {\n\t\tthis.raiseAndSetIfChanged('selectedPosition', value, this.m_propertyValues.selectedPosition, (value) => {\n\t\t\tthis.m_propertyValues.selectedPosition = value;\n\t\t});\n\t}\n\n\tpublic get selectedNewsContent(): number {\n\t\treturn this.m_propertyValues.selectedNewsContent;\n\t}\n\n\tpublic set selectedNewsContent(value: number) {\n\t\tthis.raiseAndSetIfChanged('selectedNewsContent', value, this.m_propertyValues.selectedNewsContent, (value) => {\n\t\t\tthis.m_propertyValues.selectedNewsContent = value;\n\t\t});\n\t}\n\n\tpublic get symbolChanged(): string {\n\t\treturn this.m_propertyValues.symbolChanged;\n\t}\n\n\tpublic set symbolChanged(value: string) {\n\t\tthis.raiseAndSetIfChanged('symbolChanged', value, this.m_propertyValues.symbolChanged, (value) => {\n\t\t\tthis.m_propertyValues.symbolChanged = value;\n\t\t});\n\t}\n\n\tpublic get toggleOverlay(): number {\n\t\treturn this.m_propertyValues.toggleOverlay;\n\t}\n\n\tpublic set toggleOverlay(value: number) {\n\t\tthis.raiseAndSetIfChanged('toggleOverlay', value, this.m_propertyValues.toggleOverlay, (value) => {\n\t\t\tthis.m_propertyValues.toggleOverlay = value;\n\t\t});\n\t}\n\n\tpublic get positionProfitLosses(): number {\n\t\treturn this.m_propertyValues.positionProfitLosses;\n\t}\n\n\tpublic set positionProfitLosses(value: number) {\n\t\tthis.raiseAndSetIfChanged('positionProfitLosses', value, this.m_propertyValues.positionProfitLosses, (value) => {\n\t\t\tthis.m_propertyValues.positionProfitLosses = value;\n\t\t});\n\t}\n\n\tpublic get tradingAccount(): TradingAccount[] {\n\t\treturn this.m_propertyValues.tradingAccount;\n\t}\n\n\tpublic set tradingAccount(value: TradingAccount[]) {\n\t\tthis.raiseAndSetIfChanged('tradingAccount', value, this.m_propertyValues.tradingAccount, (value) => {\n\t\t\tthis.m_propertyValues.tradingAccount = value;\n\t\t});\n\t}\n\n\tpublic get rfpServerNames(): RFPServerItem[] {\n\t\treturn this.m_propertyValues.rfpServerNames;\n\t}\n\n\tpublic set rfpServerNames(value: RFPServerItem[]) {\n\t\tthis.raiseAndSetIfChanged('rfpServerNames', value, this.m_propertyValues.rfpServerNames, (value) => {\n\t\t\tthis.m_propertyValues.rfpServerNames = value;\n\t\t});\n\t}\n\n\tpublic getTradingPositions(): TradingPosition[] {\n\t\treturn this.m_propertyValues.tradingPositionsArr;\n\t}\n\n\tpublic get tradingPositionsArr(): TradingPosition[] {\n\t\treturn this.m_propertyValues.tradingPositionsArr;\n\t}\n\n\tpublic set tradingPositionsArr(_: TradingPosition[]) {\n\t\tthrow new Error('tradingPositionsArr can not be set externally');\n\t}\n\n\tpublic get tradingPositions(): Record {\n\t\treturn this.m_propertyValues.tradingPositions;\n\t}\n\n\tpublic set tradingPositions(value: Record) {\n\t\tthis.raiseAndSetIfChanged('tradingPositions', value, this.m_propertyValues.tradingPositions, (value) => {\n\t\t\tthis.tradingPositionsLength = Object.values(value).length;\n\t\t\tthis.m_propertyValues.tradingPositions = value;\n\t\t\tthis.m_propertyValues.tradingPositionsArr = Object.values(this.m_propertyValues.tradingPositions);\n\t\t});\n\t}\n\n\tpublic get tradingPositionsLength(): number {\n\t\treturn this.m_propertyValues.tradingPositionsLength;\n\t}\n\n\tpublic set tradingPositionsLength(value: number) {\n\t\tthis.raiseAndSetIfChanged(\n\t\t\t'tradingPositionsLength',\n\t\t\tvalue,\n\t\t\tthis.m_propertyValues.tradingPositionsLength,\n\t\t\t(value) => {\n\t\t\t\tthis.m_propertyValues.tradingPositionsLength = value;\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic get twoFactorAuthModalToggle(): boolean {\n\t\treturn this.m_propertyValues.twoFactorAuthModalToggle;\n\t}\n\n\tpublic set twoFactorAuthModalToggle(value: boolean) {\n\t\tthis.raiseAndSetIfChanged(\n\t\t\t'twoFactorAuthModalToggle',\n\t\t\tvalue,\n\t\t\tthis.m_propertyValues.twoFactorAuthModalToggle,\n\t\t\t(value) => {\n\t\t\t\tthis.m_propertyValues.twoFactorAuthModalToggle = value;\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic get startTradingNow(): boolean {\n\t\treturn this.m_propertyValues.startTradingNow;\n\t}\n\n\tpublic set startTradingNow(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('startTradingNow', value, this.m_propertyValues.startTradingNow, (value) => {\n\t\t\tthis.m_propertyValues.startTradingNow = value;\n\t\t});\n\t}\n\n\tpublic get watchlist(): TWatchlists[] {\n\t\treturn this.m_propertyValues.watchlist;\n\t}\n\n\tpublic set watchlist(value: TWatchlists[]) {\n\t\t// Filter repeated watchlists\n\t\tconst newWatchlist = value.filter((v, i, a) => a.findIndex((t) => t._id === v._id) === i);\n\t\tthis.raiseAndSetIfChanged('watchlist', newWatchlist, this.m_propertyValues.watchlist, (newWatchlist) => {\n\t\t\tthis.m_propertyValues.watchlist = newWatchlist;\n\t\t});\n\t}\n\n\tpublic get hsSubs(): any {\n\t\treturn this.m_propertyValues.hsSubs;\n\t}\n\n\tpublic set hsSubs(value: any) {\n\t\tthis.raiseAndSetIfChanged('hsSubs', value, this.m_propertyValues.hsSubs, (value) => {\n\t\t\tthis.m_propertyValues.hsSubs = value;\n\t\t});\n\t}\n\n\tpublic get instruments(): any {\n\t\treturn this.m_propertyValues.instruments;\n\t}\n\n\tpublic set instruments(value: any) {\n\t\tthis.raiseAndSetIfChanged('instruments', value, this.m_propertyValues.instruments, (value) => {\n\t\t\tthis.m_propertyValues.instruments = value;\n\t\t});\n\t}\n\n\tpublic get orderConfirm(): TOrderConfirm {\n\t\treturn this.m_propertyValues.orderConfirm;\n\t}\n\n\tpublic set orderConfirm(value: TOrderConfirm) {\n\t\tthis.raiseAndSetIfChanged('orderConfirm', value, this.m_propertyValues.orderConfirm, (value) => {\n\t\t\tthis.m_propertyValues.orderConfirm = value;\n\t\t});\n\t}\n\n\tpublic get oneClickTrading(): boolean {\n\t\treturn this.m_propertyValues.oneClickTrading;\n\t}\n\n\tpublic set oneClickTrading(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('oneClickTrading', value, this.m_propertyValues.oneClickTrading, (value) => {\n\t\t\tthis.m_propertyValues.oneClickTrading = value;\n\t\t});\n\t}\n\n\tpublic get keyPress(): any {\n\t\treturn this.m_propertyValues.keyPress;\n\t}\n\n\tpublic set keyPress(value: any) {\n\t\tthis.raiseAndSetIfChanged('keyPress', value, this.m_propertyValues.keyPress, (value) => {\n\t\t\tthis.m_propertyValues.keyPress = value;\n\t\t});\n\t}\n\n\tpublic get marketIndex(): any {\n\t\treturn this.m_propertyValues.marketIndex;\n\t}\n\n\tpublic set marketIndex(value: any) {\n\t\tthis.raiseAndSetIfChanged('marketIndex', value, this.m_propertyValues.marketIndex, (value) => {\n\t\t\tthis.m_propertyValues.marketIndex = value;\n\t\t});\n\t}\n\n\tpublic get rfpGatewayProvider(): Optional<() => RfpGateway> {\n\t\treturn this.m_propertyValues.rfpGatewayProvider;\n\t}\n\n\tpublic set rfpGatewayProvider(value: Optional<() => RfpGateway>) {\n\t\tthis.raiseAndSetIfChanged('rfpGatewayProvider', value, this.m_propertyValues.rfpGatewayProvider, (value) => {\n\t\t\tthis.m_propertyValues.rfpGatewayProvider = value;\n\t\t});\n\t}\n\n\tpublic get inactiveTime(): number {\n\t\treturn this.m_propertyValues.inactiveTime;\n\t}\n\n\tpublic set inactiveTime(value: number) {\n\t\tthis.raiseAndSetIfChanged('inactiveTime', value, this.m_propertyValues.inactiveTime, (value) => {\n\t\t\tthis.m_propertyValues.inactiveTime = value;\n\t\t});\n\t}\n\n\tpublic get inactiveModal(): boolean {\n\t\treturn this.m_propertyValues.inactiveModal;\n\t}\n\n\tpublic set inactiveModal(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('inactiveModal', value, this.m_propertyValues.inactiveModal, (value) => {\n\t\t\tthis.m_propertyValues.inactiveModal = value;\n\t\t});\n\t}\n\n\tpublic get openOrder(): any {\n\t\treturn this.m_propertyValues.openOrder;\n\t}\n\n\tpublic set openOrder(value: any) {\n\t\tthis.raiseAndSetIfChanged('openOrder', value, this.m_propertyValues.openOrder, (value) => {\n\t\t\tthis.m_propertyValues.openOrder = value;\n\t\t});\n\t}\n\n\tpublic get openOrderInformation(): boolean {\n\t\treturn this.m_propertyValues.openOrderInformation;\n\t}\n\n\tpublic set openOrderInformation(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('openOrderInformation', value, this.m_propertyValues.openOrderInformation, (value) => {\n\t\t\tthis.m_propertyValues.openOrderInformation = value;\n\t\t});\n\t}\n\n\tpublic get toggleAccordionMenu(): string {\n\t\treturn this.m_propertyValues.toggleAccordionMenu;\n\t}\n\n\tpublic set toggleAccordionMenu(value: string) {\n\t\tthis.raiseAndSetIfChanged('toggleAccordionMenu', value, this.m_propertyValues.toggleAccordionMenu, (value) => {\n\t\t\tthis.m_propertyValues.toggleAccordionMenu = value;\n\t\t});\n\t}\n\n\tpublic get inputValidation(): TInputValidation {\n\t\treturn this.m_propertyValues.inputValidation;\n\t}\n\n\tpublic set inputValidation(value: TInputValidation) {\n\t\tthis.raiseAndSetIfChanged('inputValidation', value, this.m_propertyValues.inputValidation, (value) => {\n\t\t\tthis.m_propertyValues.inputValidation = value;\n\t\t});\n\t}\n\n\tpublic get orderValue(): TOrderValue {\n\t\treturn this.m_propertyValues.orderValue;\n\t}\n\n\tpublic set orderValue(value: TOrderValue) {\n\t\tthis.raiseAndSetIfChanged('orderValue', value, this.m_propertyValues.orderValue, (value) => {\n\t\t\tthis.m_propertyValues.orderValue = value;\n\t\t});\n\t}\n\n\tpublic get trade(): any {\n\t\treturn this.m_propertyValues.trade;\n\t}\n\n\tpublic set trade(value: any) {\n\t\tthis.raiseAndSetIfChanged('trade', value, this.m_propertyValues.trade, (value) => {\n\t\t\tthis.m_propertyValues.trade = value;\n\t\t});\n\t}\n\n\tpublic get currentPrice(): any {\n\t\treturn this.m_propertyValues.currentPrice;\n\t}\n\n\tpublic set currentPrice(value: any) {\n\t\tthis.raiseAndSetIfChanged('currentPrice', value, this.m_propertyValues.currentPrice, (value) => {\n\t\t\tthis.m_propertyValues.currentPrice = value;\n\t\t});\n\t}\n\n\tpublic get isEdit(): boolean {\n\t\treturn this.m_propertyValues.isEdit;\n\t}\n\n\tpublic set isEdit(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('isEdit', value, this.m_propertyValues.isEdit, (value) => {\n\t\t\tthis.m_propertyValues.isEdit = value;\n\t\t});\n\t}\n\n\tpublic get userGuide(): boolean {\n\t\treturn this.m_propertyValues.userGuide;\n\t}\n\n\tpublic set userGuide(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('userGuide', value, this.m_propertyValues.userGuide, (value) => {\n\t\t\tthis.m_propertyValues.userGuide = value;\n\t\t});\n\t}\n\n\tpublic get dragPosition(): any {\n\t\treturn this.m_propertyValues.dragPosition;\n\t}\n\n\tpublic set dragPosition(value: any) {\n\t\tthis.raiseAndSetIfChanged('dragPosition', value, this.m_propertyValues.dragPosition, (value) => {\n\t\t\tthis.m_propertyValues.dragPosition = value;\n\t\t});\n\t}\n\n\tpublic get showProfitLoss(): TShowProfitLoss {\n\t\treturn this.m_propertyValues.showProfitLoss;\n\t}\n\n\tpublic set showProfitLoss(value: TShowProfitLoss) {\n\t\tthis.raiseAndSetIfChanged('showProfitLoss', value, this.m_propertyValues.showProfitLoss, (value) => {\n\t\t\tthis.m_propertyValues.showProfitLoss = value;\n\t\t});\n\t}\n\n\tpublic get activeIndex(): number {\n\t\treturn this.m_propertyValues.activeIndex;\n\t}\n\n\tpublic set activeIndex(value: number) {\n\t\tthis.raiseAndSetIfChanged('activeIndex', value, this.m_propertyValues.activeIndex, (value) => {\n\t\t\tthis.m_propertyValues.activeIndex = value;\n\t\t});\n\t}\n\n\tpublic get gridClicked(): boolean | number {\n\t\treturn this.m_propertyValues.gridClicked;\n\t}\n\n\tpublic set gridClicked(value: boolean | number) {\n\t\tthis.raiseAndSetIfChanged('gridClicked', value, this.m_propertyValues.gridClicked, (value) => {\n\t\t\tthis.m_propertyValues.gridClicked = value;\n\t\t});\n\t}\n\n\tpublic get selectedSymbolUpdated(): boolean {\n\t\treturn this.m_propertyValues.selectedSymbolUpdated;\n\t}\n\n\tpublic set selectedSymbolUpdated(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('selectedSymbolUpdated', value, this.m_propertyValues.selectedSymbolUpdated, (value) => {\n\t\t\tthis.m_propertyValues.selectedSymbolUpdated = value;\n\t\t});\n\t}\n\n\tpublic get getOrderInfo(): any {\n\t\treturn this.m_propertyValues.getOrderInfo;\n\t}\n\n\tpublic set getOrderInfo(value: any) {\n\t\tthis.raiseAndSetIfChanged('getOrderInfo', value, this.m_propertyValues.getOrderInfo, (value) => {\n\t\t\tthis.m_propertyValues.getOrderInfo = value;\n\t\t});\n\t}\n\n\tpublic get instrumentLastTrade(): any {\n\t\treturn this.m_propertyValues.instrumentLastTrade;\n\t}\n\n\tpublic set instrumentLastTrade(value: any) {\n\t\tthis.raiseAndSetIfChanged('instrumentLastTrade', value, this.m_propertyValues.instrumentLastTrade, (value) => {\n\t\t\tthis.m_propertyValues.instrumentLastTrade = value;\n\t\t});\n\t}\n\n\tpublic get settingsOptions(): any {\n\t\treturn this.m_propertyValues.settingsOptions;\n\t}\n\n\tpublic set settingsOptions(value: any) {\n\t\tthis.raiseAndSetIfChanged('settingsOptions', value, this.m_propertyValues.settingsOptions, (value) => {\n\t\t\tthis.m_propertyValues.settingsOptions = value;\n\t\t});\n\t}\n\n\tpublic get gridChartsChanged(): boolean {\n\t\treturn this.m_propertyValues.gridChartsChanged;\n\t}\n\n\tpublic set gridChartsChanged(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('gridChartsChanged', value, this.m_propertyValues.gridChartsChanged, (value) => {\n\t\t\tthis.m_propertyValues.gridChartsChanged = value;\n\t\t});\n\t}\n\n\tpublic get showOrderTicket(): boolean {\n\t\treturn this.m_propertyValues.showOrderTicket;\n\t}\n\n\tpublic set showOrderTicket(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('showOrderTicket', value, this.m_propertyValues.showOrderTicket, (value) => {\n\t\t\tthis.m_propertyValues.showOrderTicket = value;\n\t\t});\n\t}\n\n\tpublic get showOrderInformation(): boolean {\n\t\treturn this.m_propertyValues.showOrderInformation;\n\t}\n\n\tpublic set showOrderInformation(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('showOrderInformation', value, this.m_propertyValues.showOrderInformation, (value) => {\n\t\t\tthis.m_propertyValues.showOrderInformation = value;\n\t\t});\n\t}\n\n\tpublic get showCloseTicket(): boolean {\n\t\treturn this.m_propertyValues.showCloseTicket;\n\t}\n\n\tpublic set showCloseTicket(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('showCloseTicket', value, this.m_propertyValues.showCloseTicket, (value) => {\n\t\t\tthis.m_propertyValues.showCloseTicket = value;\n\t\t});\n\t}\n\n\tpublic get showClosedPositionTicket(): boolean {\n\t\treturn this.m_propertyValues.showClosedPositionTicket;\n\t}\n\n\tpublic set showClosedPositionTicket(value: boolean) {\n\t\tthis.raiseAndSetIfChanged(\n\t\t\t'showClosedPositionTicket',\n\t\t\tvalue,\n\t\t\tthis.m_propertyValues.showClosedPositionTicket,\n\t\t\t(value) => {\n\t\t\t\tthis.m_propertyValues.showClosedPositionTicket = value;\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic get showConfirmTicket(): boolean {\n\t\treturn this.m_propertyValues.showConfirmTicket;\n\t}\n\n\tpublic set showConfirmTicket(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('showConfirmTicket', value, this.m_propertyValues.showConfirmTicket, (value) => {\n\t\t\tthis.m_propertyValues.showConfirmTicket = value;\n\t\t});\n\t}\n\n\tpublic get tradeInformation(): Optional {\n\t\treturn this.m_propertyValues.tradeInformation;\n\t}\n\n\tpublic set tradeInformation(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('tradeInformation', value, this.m_propertyValues.tradeInformation, (value) => {\n\t\t\tthis.m_propertyValues.tradeInformation = value;\n\t\t});\n\t}\n\n\tpublic get showCancelTicket(): boolean {\n\t\treturn this.m_propertyValues.showCancelTicket;\n\t}\n\n\tpublic set showCancelTicket(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('showCancelTicket', value, this.m_propertyValues.showCancelTicket, (value) => {\n\t\t\tthis.m_propertyValues.showCancelTicket = value;\n\t\t});\n\t}\n\n\tpublic get gridButton(): any {\n\t\treturn this.m_propertyValues.gridButton;\n\t}\n\n\tpublic set gridButton(value: any) {\n\t\tthis.raiseAndSetIfChanged('gridButton', value, this.m_propertyValues.gridButton, (value) => {\n\t\t\tthis.m_propertyValues.gridButton = value;\n\t\t});\n\t}\n\n\tpublic get modifyTicket(): boolean {\n\t\treturn this.m_propertyValues.modifyTicket;\n\t}\n\n\tpublic set modifyTicket(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('modifyTicket', value, this.m_propertyValues.modifyTicket, (value) => {\n\t\t\tthis.m_propertyValues.modifyTicket = value;\n\t\t});\n\t}\n\n\tpublic get gridChartInitialLoad(): boolean {\n\t\treturn this.m_propertyValues.gridChartInitialLoad;\n\t}\n\n\tpublic set gridChartInitialLoad(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('gridChartInitialLoad', value, this.m_propertyValues.gridChartInitialLoad, (value) => {\n\t\t\tthis.m_propertyValues.gridChartInitialLoad = value;\n\t\t});\n\t}\n\n\tpublic get crossHairState(): any {\n\t\treturn this.m_propertyValues.crossHairState;\n\t}\n\n\tpublic set crossHairState(value: any) {\n\t\tthis.raiseAndSetIfChanged('crossHairState', value, this.m_propertyValues.crossHairState, (value) => {\n\t\t\tthis.m_propertyValues.crossHairState = value;\n\t\t});\n\t}\n\n\tpublic get showNewsFeed(): boolean {\n\t\treturn this.m_propertyValues.showNewsFeed;\n\t}\n\n\tpublic set showNewsFeed(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('showNewsFeed', value, this.m_propertyValues.showNewsFeed, (value) => {\n\t\t\tthis.m_propertyValues.showNewsFeed = value;\n\t\t});\n\t}\n\n\tpublic get selectedType(): string {\n\t\treturn this.m_propertyValues.selectedType;\n\t}\n\n\tpublic set selectedType(value: string) {\n\t\tthis.raiseAndSetIfChanged('selectedType', value, this.m_propertyValues.selectedType, (value) => {\n\t\t\tthis.m_propertyValues.selectedType = value;\n\t\t});\n\t}\n\n\tpublic get closeTrade(): any {\n\t\treturn this.m_propertyValues.closeTrade;\n\t}\n\n\tpublic set closeTrade(value: any) {\n\t\tthis.raiseAndSetIfChanged('closeTrade', value, this.m_propertyValues.closeTrade, (value) => {\n\t\t\tthis.m_propertyValues.closeTrade = value;\n\t\t});\n\t}\n\n\tpublic get maximizeGrid(): boolean {\n\t\treturn this.m_propertyValues.maximizeGrid;\n\t}\n\n\tpublic set maximizeGrid(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('maximizeGrid', value, this.m_propertyValues.maximizeGrid, (value) => {\n\t\t\tthis.m_propertyValues.maximizeGrid = value;\n\t\t});\n\t}\n\n\tpublic get applicationStatus(): string | null | undefined {\n\t\treturn this.m_propertyValues.applicationStatus;\n\t}\n\n\tpublic set applicationStatus(value: string | null | undefined) {\n\t\tthis.raiseAndSetIfChanged('applicationStatus', value, this.m_propertyValues.applicationStatus, (value) => {\n\t\t\tthis.m_propertyValues.applicationStatus = value;\n\t\t});\n\t}\n\n\tpublic get chartTimezone(): any {\n\t\treturn this.m_propertyValues.chartTimezone;\n\t}\n\n\tpublic set chartTimezone(value: any) {\n\t\tthis.raiseAndSetIfChanged('chartTimezone', value, this.m_propertyValues.chartTimezone, (value) => {\n\t\t\tthis.m_propertyValues.chartTimezone = value;\n\t\t});\n\t}\n\n\tpublic get initialTimezone(): Optional {\n\t\treturn this.m_propertyValues.initialTimezone;\n\t}\n\n\tpublic set initialTimezone(value: Optional) {\n\t\tthis.raiseAndSetIfChanged('initialTimezone', value, this.m_propertyValues.initialTimezone, (value) => {\n\t\t\tthis.m_propertyValues.initialTimezone = value;\n\t\t});\n\t}\n\n\tpublic get headerSelected(): boolean {\n\t\treturn this.m_propertyValues.headerSelected;\n\t}\n\n\tpublic set headerSelected(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('headerSelected', value, this.m_propertyValues.headerSelected, (value) => {\n\t\t\tthis.m_propertyValues.headerSelected = value;\n\t\t});\n\t}\n\n\tpublic get closeLength(): number {\n\t\treturn this.m_propertyValues.closeLength;\n\t}\n\n\tpublic set closeLength(value: number) {\n\t\tthis.raiseAndSetIfChanged('closeLength', value, this.m_propertyValues.closeLength, (value) => {\n\t\t\tthis.m_propertyValues.closeLength = value;\n\t\t});\n\t}\n\n\tpublic get ticketLoad(): boolean {\n\t\treturn this.m_propertyValues.ticketLoad;\n\t}\n\n\tpublic set ticketLoad(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('ticketLoad', value, this.m_propertyValues.ticketLoad, (value) => {\n\t\t\tthis.m_propertyValues.ticketLoad = value;\n\t\t});\n\t}\n\n\tpublic get typeOfOrder(): orderTypes {\n\t\treturn this.m_propertyValues.typeOfOrder;\n\t}\n\n\tpublic set typeOfOrder(value: orderTypes) {\n\t\tthis.raiseAndSetIfChanged('typeOfOrder', value, this.m_propertyValues.typeOfOrder, (value) => {\n\t\t\tthis.m_propertyValues.typeOfOrder = value;\n\t\t});\n\t}\n\n\tpublic get modalToggle(): { closePosition: boolean; closeOrder: boolean } {\n\t\treturn this.m_propertyValues.modalToggle;\n\t}\n\n\tpublic set modalToggle(value: { closePosition: boolean; closeOrder: boolean }) {\n\t\tthis.raiseAndSetIfChanged('modalToggle', value, this.m_propertyValues.modalToggle, (value) => {\n\t\t\tthis.m_propertyValues.modalToggle = value;\n\t\t});\n\t}\n\tpublic get accountValues(): {\n\t\tbalance: number;\n\t\tmargin: number;\n\t\tfreeMargin: number;\n\t\tmarginLevel: number;\n\t\tequity: number;\n\t\torganizationName: string;\n\t\tpl: number;\n\t} {\n\t\treturn this.m_propertyValues.accountValues;\n\t}\n\n\tpublic set accountValues(value: {\n\t\tbalance: number;\n\t\tmargin: number;\n\t\tfreeMargin: number;\n\t\tmarginLevel: number;\n\t\tequity: number;\n\t\torganizationName: string;\n\t\tpl: number;\n\t}) {\n\t\tthis.raiseAndSetIfChanged('accountValues', value, this.m_propertyValues.accountValues, (value) => {\n\t\t\tthis.m_propertyValues.accountValues = value;\n\t\t});\n\t}\n\n\tpublic get newOrderModalToggle(): {\n\t\torderTicket: boolean;\n\t\tconfirmOrder: boolean;\n\t\tamount?: number;\n\t\tlimit?: number;\n\t\tstopLoss?: number;\n\t\ttakeProfit?: number;\n\t\tdateText?: string;\n\t\tdateValue?: number;\n\t\tinstrument?: string;\n\t\ttype?: orderTypes;\n\t} {\n\t\treturn this.m_propertyValues.newOrderModalToggle;\n\t}\n\n\tpublic set newOrderModalToggle(value: {\n\t\torderTicket: boolean;\n\t\tconfirmOrder: boolean;\n\t\tamount?: number;\n\t\tlimit?: number;\n\t\tstopLoss?: number;\n\t\ttakeProfit?: number;\n\t\tdateText?: string;\n\t\tdateValue?: number;\n\t\tinstrument?: string;\n\t\ttype?: orderTypes;\n\t}) {\n\t\tthis.raiseAndSetIfChanged('newOrderModalToggle', value, this.m_propertyValues.newOrderModalToggle, (value) => {\n\t\t\tthis.m_propertyValues.newOrderModalToggle = value;\n\t\t});\n\t}\n\n\tpublic get notification(): TNotification {\n\t\treturn this.m_propertyValues.notification;\n\t}\n\n\tpublic set notification(value: TNotification) {\n\t\tthis.raiseAndSetIfChanged('notification', value, this.m_propertyValues.notification, (value) => {\n\t\t\tthis.m_propertyValues.notification = value;\n\t\t});\n\t}\n\n\tpublic get reconnection(): { isReconnecting: boolean; count: number } {\n\t\treturn this.m_propertyValues.reconnection;\n\t}\n\n\tpublic set reconnection(value: { isReconnecting: boolean; count: number }) {\n\t\tthis.raiseAndSetIfChanged('reconnection', value, this.m_propertyValues.reconnection, (value) => {\n\t\t\tthis.m_propertyValues.reconnection = value;\n\t\t});\n\t}\n\n\tpublic get loadingState(): { marketItems: boolean; tradingAccounts: boolean; tradingPositions: boolean } {\n\t\treturn this.m_propertyValues.loadingState;\n\t}\n\n\tpublic set loadingState(value: { marketItems: boolean; tradingAccounts: boolean; tradingPositions: boolean }) {\n\t\tthis.raiseAndSetIfChanged('loadingState', value, this.m_propertyValues.loadingState, (value) => {\n\t\t\tthis.m_propertyValues.loadingState = value;\n\t\t});\n\t}\n\n\tpublic get emptyChartModal(): boolean {\n\t\treturn this.m_propertyValues.emptyChartModal;\n\t}\n\n\tpublic set emptyChartModal(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('emptyChartModal', value, this.m_propertyValues.emptyChartModal, (value) => {\n\t\t\tthis.m_propertyValues.emptyChartModal = value;\n\t\t});\n\t}\n\n\tpublic get accountPopupToggle(): boolean {\n\t\treturn this.m_propertyValues.accountPopupToggle;\n\t}\n\n\tpublic set accountPopupToggle(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('accountPopupToggle', value, this.m_propertyValues.accountPopupToggle, (value) => {\n\t\t\tthis.m_propertyValues.accountPopupToggle = value;\n\t\t});\n\t}\n\n\tpublic get tfboConnectionError(): boolean {\n\t\treturn this.m_propertyValues.tfboConnectionError;\n\t}\n\n\tpublic set tfboConnectionError(value: boolean) {\n\t\tthis.raiseAndSetIfChanged('tfboConnectionError', value, this.m_propertyValues.tfboConnectionError, (value) => {\n\t\t\tthis.m_propertyValues.tfboConnectionError = value;\n\t\t});\n\t}\n\n\tpublic get ssoTradingAccount(): string | null {\n\t\treturn this.m_propertyValues.ssoTradingAccount;\n\t}\n\n\tpublic set ssoTradingAccount(value: string | null) {\n\t\tthis.raiseAndSetIfChanged('ssoTradingAccount', value, this.m_propertyValues.ssoTradingAccount, (value) => {\n\t\t\tthis.m_propertyValues.ssoTradingAccount = value;\n\t\t});\n\t}\n\n\tpublic get previousDayClosePrices(): PreviousDayClosePrices {\n\t\treturn this.m_propertyValues.previousDayClosePrices;\n\t}\n\n\tpublic addPreviousDayClosePrices(values: PreviousDayClosePrices) {\n\t\tthis.raiseAndSetIfChanged(\n\t\t\t'previousDayClosePrices',\n\t\t\tvalues,\n\t\t\tthis.m_propertyValues.previousDayClosePrices,\n\t\t\t(values) => {\n\t\t\t\tthis.m_propertyValues.previousDayClosePrices = {\n\t\t\t\t\t...this.m_propertyValues.previousDayClosePrices,\n\t\t\t\t\t...values,\n\t\t\t\t};\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic closeAllOtherTabs() {\n\t\tthis.modifyTicket = false;\n\t\tthis.showOrderInformation = false;\n\t\tthis.showNewsFeed = false;\n\t\tthis.showOrderTicket = false;\n\t\tthis.showConfirmTicket = false;\n\t\tthis.startTradingNow = false;\n\t\tthis.showCloseTicket = false;\n\t\tthis.showCancelTicket = false;\n\t}\n\n\tprivate constructor() {\n\t\tsuper();\n\t\tthis.m_propertyValues = clone(defaultValues.getValue());\n\t}\n\n\tpublic reset(): void {\n\t\tthis.m_propertyValues = clone(defaultValues.getValue());\n\t}\n}\n\nexport default createContext(\n\tResolver.isSet && Resolver.isRegistered(DashboardContextProvider)\n\t\t? Resolver.resolve(DashboardContextProvider)\n\t\t: DashboardContextProvider.instance\n);\n","import { USER_EMAIL_KEY } from '../setup/config';\n\nimport { create } from './create';\n\nimport createSelectors from './createSelectors';\n\nexport type UserStats = Array;\n\nexport interface UserProfile {\n\temail?: string;\n\t[key: string]: any;\n}\nexport interface UserPhoneNumbersProps {\n\tphone: string;\n\tphoneCountryCode: string;\n\tmobile: string;\n\tmobileCountryCode: string;\n}\n\nexport enum TradingMode {\n\tDemo = 'DEMO',\n\tLive = 'LIVE',\n}\n\nexport interface AuthStoreActions {\n\tsetTradingMode: (mode: TradingMode) => void;\n\tsetApplicationStatus: (applicationStatus: string) => void;\n\tsetUserProfile: (user: UserProfile) => void;\n\tsetUserProfileProp: (prop: keyof UserProfile, value: any) => void;\n\tsetUserStats: (stats: UserStats) => void;\n\tsetUserStatsProp: (prop: keyof UserStats, value: any) => void;\n\tsetIsAuthenticated: (isAuthenticated: boolean) => void;\n\tsetIsMFAEnabled: (isMFAEnabled: boolean | undefined) => void;\n\tsetSetupMFA: (setupMFA: boolean) => void;\n\tsetDisableMFA: (disableMFA: boolean) => void;\n\tsetReinialize: (reinitialize: number) => void;\n\tsetIsJapanAccount: (isJapanAccount: boolean) => void;\n\tsetIsSouthAfricaAccount: (isSouthAfricaAccount: boolean) => void;\n\tsetIsRfpConnected: (isRfpConnected: boolean) => void;\n\tsetAccountAvatar: (avatar: number) => void;\n\tsetPhoneNumbers: (userPhoneNumbers: UserPhoneNumbersProps) => void;\n\treset: () => void;\n}\nexport interface AuthStoreValues {\n\ttradingMode: TradingMode;\n\tisDemoMode: boolean;\n\tisLiveMode: boolean;\n\tapplicationStatus: string | undefined;\n\tuserProfile: UserProfile;\n\tuserStats: UserStats;\n\tisAuthenticated: boolean;\n\tisMFAEnabled: boolean | undefined;\n\tsetupMFA: boolean;\n\tdisableMFA: boolean;\n\treinitialize: number | undefined;\n\tisRfpConnected: boolean;\n\taccountAvatar: number;\n\tuserPhoneNumbers: UserPhoneNumbersProps;\n\n\t// TODO: Think in a better approach for the account user.countryISO based restrictions\n\tisJapanAccount: boolean;\n\tisSouthAfricaAccount: boolean;\n}\n\nconst storedTradingMode = (localStorage.getItem('tradingMode') as TradingMode) || TradingMode.Live;\n\nexport const initialStateAuthStore: AuthStoreValues = {\n\tapplicationStatus: undefined,\n\tisAuthenticated: false,\n\tuserStats: [],\n\tuserProfile: { email: localStorage.getItem(USER_EMAIL_KEY) || '' },\n\ttradingMode: storedTradingMode,\n\tisDemoMode: storedTradingMode === TradingMode.Demo,\n\tisLiveMode: storedTradingMode === TradingMode.Live,\n\tisMFAEnabled: undefined,\n\tsetupMFA: false,\n\tdisableMFA: false,\n\treinitialize: undefined,\n\tisJapanAccount: false,\n\tisSouthAfricaAccount: false,\n\tisRfpConnected: false,\n\taccountAvatar: 0,\n\tuserPhoneNumbers: {\n\t\tphone: '',\n\t\tphoneCountryCode: '',\n\t\tmobile: '',\n\t\tmobileCountryCode: '',\n\t},\n};\n\nexport type AuthStore = AuthStoreValues & AuthStoreActions;\n\nconst authStore = create()((set: any) => ({\n\t...initialStateAuthStore,\n\n\tsetTradingMode: (tradingMode: TradingMode) => {\n\t\tset({ isLiveMode: tradingMode === TradingMode.Live, isDemoMode: tradingMode === TradingMode.Demo, tradingMode });\n\t\tlocalStorage.setItem('tradingMode', tradingMode);\n\t},\n\n\tsetApplicationStatus: (applicationStatus: string) => set({ applicationStatus }),\n\n\tsetUserProfile: (userProfile: UserProfile) => {\n\t\tset({ userProfile });\n\t},\n\n\tsetUserProfileProp: (prop: keyof UserProfile, value: any) => {\n\t\tif (prop === 'email') {\n\t\t\tlocalStorage.setItem(USER_EMAIL_KEY, value);\n\t\t}\n\t\tset((state: AuthStore) => ({ userProfile: { ...state.userProfile, [prop]: value } }));\n\t},\n\n\tsetUserStats: (userStats: UserStats) => set({ userStats }),\n\tsetUserStatsProp: (prop: keyof UserStats, value: any) =>\n\t\tset((state: AuthStore) => ({ userStats: { ...state.userStats, [prop]: value } })),\n\n\tsetIsAuthenticated: (isAuthenticated: boolean) => set({ isAuthenticated }),\n\n\tsetIsMFAEnabled: (isMFAEnabled: boolean | undefined) => set({ isMFAEnabled }),\n\n\tsetSetupMFA: (setupMFA: boolean) => set({ setupMFA }),\n\n\tsetDisableMFA: (disableMFA: boolean) => set({ disableMFA }),\n\n\tsetReinialize: (reinitialize: number) => set({ reinitialize }),\n\n\tsetIsJapanAccount: (isJapanAccount: boolean) => set({ isJapanAccount }),\n\n\tsetIsSouthAfricaAccount: (isSouthAfricaAccount: boolean) => set({ isSouthAfricaAccount }),\n\n\tsetIsRfpConnected: (isRfpConnected: boolean) => set({ isRfpConnected }),\n\tsetAccountAvatar: (accountAvatar: number) => set({ accountAvatar }),\n\tsetPhoneNumbers: (userPhoneNumbers: UserPhoneNumbersProps) => set({ userPhoneNumbers }),\n\n\treset: () => set({ ...initialStateAuthStore }),\n}));\n\nexport default createSelectors(authStore);\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"platformInactivity\":\"SettingsModule_platformInactivity__39Tc_\",\"platformTab\":\"SettingsModule_platformTab__3bgLV\",\"platform\":\"SettingsModule_platform__2jHXl\",\"checkContainer\":\"SettingsModule_checkContainer__3Ltqa\",\"container\":\"SettingsModule_container__2QenX\",\"redCheck\":\"SettingsModule_redCheck__YF9fu\",\"toggleButton\":\"SettingsModule_toggleButton__1aCl-\",\"toggleButtonChecked\":\"SettingsModule_toggleButtonChecked__3Omk6\",\"titleContainer\":\"SettingsModule_titleContainer__3hmf6\",\"rangeContainer\":\"SettingsModule_rangeContainer__tQgdB\",\"slider\":\"SettingsModule_slider__2wifa\",\"iconContainer\":\"SettingsModule_iconContainer__ZIhdz\",\"platformContainer\":\"SettingsModule_platformContainer__Epk9g\",\"costInput\":\"SettingsModule_costInput__3z3ib\",\"questionIcon\":\"SettingsModule_questionIcon__2LnEx\",\"errorMessage\":\"SettingsModule_errorMessage__1KknH\",\"errorMessagePhone\":\"SettingsModule_errorMessagePhone__6qiaG\",\"passPopup\":\"SettingsModule_passPopup__3qPzW\",\"passwordPopup\":\"SettingsModule_passwordPopup__2o8Sq\",\"headerMessage\":\"SettingsModule_headerMessage__17p-l\",\"check\":\"SettingsModule_check__gUFL6\",\"dropdownMenu\":\"SettingsModule_dropdownMenu__2jl5n\",\"diveder\":\"SettingsModule_diveder__1YJNl\",\"dropdownMenuLang\":\"SettingsModule_dropdownMenuLang__1dS6-\",\"focused\":\"SettingsModule_focused__3AwYb\",\"closeIcon\":\"SettingsModule_closeIcon__3zIK4\",\"icon\":\"SettingsModule_icon__3sRqb\",\"inactivity\":\"SettingsModule_inactivity__2HSNa\",\"profileSetingsHeader\":\"SettingsModule_profileSetingsHeader__1wMSV\",\"platformTabName\":\"SettingsModule_platformTabName__Jj72T\",\"profileSetingsContent\":\"SettingsModule_profileSetingsContent__3lomB\",\"additionalPadding\":\"SettingsModule_additionalPadding__3aKTa\",\"settingsPairs\":\"SettingsModule_settingsPairs__WHMks\",\"settingsPairsName\":\"SettingsModule_settingsPairsName__3ztpL\",\"settingsQuantityButtons\":\"SettingsModule_settingsQuantityButtons__C-lWI\",\"quantityButton\":\"SettingsModule_quantityButton__3FY4f\",\"outerCircle\":\"SettingsModule_outerCircle__2nAkV\",\"innerCircle\":\"SettingsModule_innerCircle__20lXg\",\"quantityButtonSelected\":\"SettingsModule_quantityButtonSelected__1f8jN\",\"dropdownDocs\":\"SettingsModule_dropdownDocs__35EWg\",\"newPasswordInput\":\"SettingsModule_newPasswordInput__3lrf3\",\"invalidPassword\":\"SettingsModule_invalidPassword__2m9Fq\",\"eyeIcon\":\"SettingsModule_eyeIcon__1hHGU\",\"settingsPairsPhone\":\"SettingsModule_settingsPairsPhone__ia6EG\",\"settingsPairsPhoneCodeWrapper\":\"SettingsModule_settingsPairsPhoneCodeWrapper__tEMZW\",\"settingsPairsPhoneNumber\":\"SettingsModule_settingsPairsPhoneNumber__CPDMo\",\"mobileCountryCode\":\"SettingsModule_mobileCountryCode__1Se8u\",\"settingsPairsImgDropdown\":\"SettingsModule_settingsPairsImgDropdown__2yFxD\",\"menu\":\"SettingsModule_menu__25oyE\",\"settingsPairsImgDropdownArrow\":\"SettingsModule_settingsPairsImgDropdownArrow__1pQrf\",\"imgContainer\":\"SettingsModule_imgContainer__7RcnV\",\"dropdownMenuLangWrapper\":\"SettingsModule_dropdownMenuLangWrapper__30E6W\",\"item\":\"SettingsModule_item__372DH\",\"dropdownMenuSecurity\":\"SettingsModule_dropdownMenuSecurity__3cEY0\",\"justifyContentFlexEnd\":\"SettingsModule_justifyContentFlexEnd__tE2I3\",\"dropdownIconWrapper\":\"SettingsModule_dropdownIconWrapper__MraMM\",\"dropdownDefaultImage\":\"SettingsModule_dropdownDefaultImage__lyoRn\",\"passwordInputWrapper\":\"SettingsModule_passwordInputWrapper__1sAhM\",\"phoneNumberAndCode\":\"SettingsModule_phoneNumberAndCode__-n8SH\",\"settingsUpload\":\"SettingsModule_settingsUpload__3g8jB\",\"fileInput\":\"SettingsModule_fileInput__1ggG6\",\"fileUploadLabel\":\"SettingsModule_fileUploadLabel__3BZEU\",\"settingsPairsTheme\":\"SettingsModule_settingsPairsTheme__10ibJ\",\"settingsThemeWrapper\":\"SettingsModule_settingsThemeWrapper__23VqV\",\"inactive\":\"SettingsModule_inactive__32wG7\",\"singlethemeWrapper\":\"SettingsModule_singlethemeWrapper__20At4\",\"themeRadioWrapper\":\"SettingsModule_themeRadioWrapper__1k6lH\",\"themeImage\":\"SettingsModule_themeImage__1_cKH\",\"themeImageSystem\":\"SettingsModule_themeImageSystem__2hXbK\",\"themeImageDark\":\"SettingsModule_themeImageDark__3xC9a\",\"themeImageLight\":\"SettingsModule_themeImageLight__ABtNj\",\"active\":\"SettingsModule_active__3-5WD\",\"borderBottom\":\"SettingsModule_borderBottom__2_8uZ\",\"themeLabel\":\"SettingsModule_themeLabel__3pfhu\",\"platformTabSecurity\":\"SettingsModule_platformTabSecurity__37Vvf\",\"settingsPairPassword\":\"SettingsModule_settingsPairPassword__2HF8R\",\"conditionSuccess\":\"SettingsModule_conditionSuccess__1W37U\",\"settingsButtonsPassword\":\"SettingsModule_settingsButtonsPassword__eRqtI\",\"cancelButton\":\"SettingsModule_cancelButton__ER8LN\",\"saveButton\":\"SettingsModule_saveButton__2SC9s\",\"versionNumber\":\"SettingsModule_versionNumber__1Ul5T\",\"link\":\"SettingsModule_link__8b4jo\",\"activateMessage\":\"SettingsModule_activateMessage__2bYad\",\"settingsModalHeader\":\"SettingsModule_settingsModalHeader__1UFhA\",\"settingsPairsError\":\"SettingsModule_settingsPairsError__3tiZ4\",\"infoModalWrapperBackground\":\"SettingsModule_infoModalWrapperBackground__3WweT\",\"infoModalWrapper\":\"SettingsModule_infoModalWrapper__3pHPx\",\"buttonsContainer\":\"SettingsModule_buttonsContainer__1802d\",\"button\":\"SettingsModule_button__2tU-1\"};","import {\n\tAccountMarketType,\n\tInstrument,\n\tMarketItem,\n\tPriceQuote,\n\tTradingAccount,\n\tTradingInstruments,\n\tTradingPosition,\n\tTradingPositionState,\n\tTradingSessions,\n\tDayOfWeek,\n\tTradingSession,\n\tRFPSessionTimes,\n} from '../../gateways/RfpGateway/rfp.types';\nimport {\n\tInitialStopLossTakeProfitValues,\n\tInitialValues,\n} from '../../views/features/Dashboard/ChartPanel/NewOrderModals/OrderTicketModal/OrderTicketModal';\nimport { formatNumberWithCommas } from '../../views/features/Dashboard/Watchlist/Instrument/formattedQuoteNumber';\n\nimport RfpGateway from '../../gateways/RfpGateway/RfpGateway';\n\nimport { MarginAccountType, TradingPositionLimitType } from './enums';\nimport { Resolver } from './Ioc';\nimport { Optional } from './Nullable';\n\nexport interface BuySellIncrement {\n\tminValue: number;\n\tmaxValue: number;\n\tstepAmount: number;\n}\n\nexport type TEffectiveSize = {\n\tval: number;\n\tmajoritySide: string;\n};\n\n/* Get formatted Spread Value based on ask and bid price */\nexport const getFormattedSpreadValue = (\n\tmarketItem: MarketItem,\n\taskPrice: number,\n\tbidPrice: number,\n\tlanguage: string\n) => {\n\tif (marketItem) {\n\t\tconst spreadValue = calculateSpreadValue(marketItem, askPrice, bidPrice);\n\t\tconst spreadString = `${spreadValue.toFixed(1)}`;\n\t\tconst separatorIndex = spreadString.lastIndexOf('.');\n\t\tconst spreadSplit = spreadString.split(spreadString[separatorIndex]);\n\t\tconst spreadWithDecimal = spreadSplit[0].toLocaleString();\n\t\treturn formatNumberWithCommas(\n\t\t\tspreadWithDecimal + spreadString[separatorIndex] + spreadSplit[1],\n\t\t\tspreadSplit[1]?.length ?? 0,\n\t\t\tlanguage\n\t\t);\n\t}\n};\n\n/* Calculate the Spread Value based on ask and bid price */\nexport const calculateSpreadValue = (marketItem: MarketItem, askPrice: number, bidPrice: number) => {\n\t// This is the only place where we should use decimalPrecision from marketItemInfo if is setup\n\tconst marketItemInfoDecPrecision = marketItem.marketItemInfo?.decimalPrecision;\n\tconst decPrec = marketItemInfoDecPrecision ? +marketItemInfoDecPrecision : marketItem.decPrec;\n\tconst tickSize = getMarketItemTickSize(marketItem);\n\tlet decimal = tickSize >= 1.0 ? 0 : decPrec;\n\tdecimal = decimal > 2 ? decimal - 1 : decimal;\n\treturn (askPrice - bidPrice) * Math.pow(10, decimal);\n};\n\n/* Calculate the Initial Limit Price and Stop Price based on BUY and SELL*/\n\nexport const calculateInitialValue = (initialValueObj: InitialValues) => {\n\tif (\n\t\t(initialValueObj.side === 'BUY' && initialValueObj.typeOfOrder === 'limit') ||\n\t\t(initialValueObj.side === 'SELL' && initialValueObj.typeOfOrder === 'stop')\n\t) {\n\t\treturn (initialValueObj.instrument - initialValueObj.instrument * (initialValueObj.initialValue / 100)).toFixed(\n\t\t\tinitialValueObj.decimalPrecision\n\t\t);\n\t}\n\n\tif (\n\t\t(initialValueObj.side === 'BUY' && initialValueObj.typeOfOrder === 'stop') ||\n\t\t(initialValueObj.side === 'SELL' && initialValueObj.typeOfOrder === 'limit')\n\t) {\n\t\treturn (initialValueObj.instrument + initialValueObj.instrument * (initialValueObj.initialValue / 100)).toFixed(\n\t\t\tinitialValueObj.decimalPrecision\n\t\t);\n\t}\n};\n\n/* Calculate the Stop Price usually 10% upside for Sell and 10% downside for Buy */\n\ninterface CalcInitialLimitValueProps {\n\tprice: number;\n\tisBuy: boolean;\n\ttype: TradingPositionLimitType;\n\tpipSize: number;\n\tdefaultPips: number;\n}\n\nexport const calcInitialLimitValue = ({ price, isBuy, type, pipSize, defaultPips }: CalcInitialLimitValueProps) => {\n\tif (!isNaN(price)) {\n\t\tconst isTakeProfit = type === TradingPositionLimitType.TakeProfit;\n\t\tconst pipValue = defaultPips * pipSize;\n\t\tif (isBuy) {\n\t\t\treturn isTakeProfit ? price + pipValue : price - pipValue;\n\t\t} else {\n\t\t\treturn isTakeProfit ? price - pipValue : price + pipValue;\n\t\t}\n\t}\n\n\treturn NaN;\n};\n\nexport const calculateInitialStopLossValue = (initialStopLossValueObj: InitialStopLossTakeProfitValues) => {\n\tconst quote_value =\n\t\tinitialStopLossValueObj.typeOfOrder === 'limit' || initialStopLossValueObj.typeOfOrder === 'stop'\n\t\t\t? parseFloat(initialStopLossValueObj.limitPrice)\n\t\t\t: initialStopLossValueObj.instrument;\n\tif (quote_value !== 0) {\n\t\treturn initialStopLossValueObj.side === 'BUY'\n\t\t\t? (quote_value - quote_value * (initialStopLossValueObj.initialValue / 100)).toFixed(\n\t\t\t\t\tinitialStopLossValueObj.decimalPrecision\n\t\t\t )\n\t\t\t: (quote_value + quote_value * (initialStopLossValueObj.initialValue / 100)).toFixed(\n\t\t\t\t\tinitialStopLossValueObj.decimalPrecision\n\t\t\t );\n\t}\n\treturn 0;\n};\n\n/* Calculate the Take Profit usually 10% upside for Buy and 10% downside for Sell */\n\nexport const calculateInitialTakeProfitValue = (initialStopLossTakeProfitObj: InitialStopLossTakeProfitValues) => {\n\tlet quote_value =\n\t\tinitialStopLossTakeProfitObj.typeOfOrder === 'limit' || initialStopLossTakeProfitObj.typeOfOrder === 'stop'\n\t\t\t? parseFloat(initialStopLossTakeProfitObj.limitPrice)\n\t\t\t: initialStopLossTakeProfitObj.instrument;\n\tif (quote_value !== 0) {\n\t\treturn initialStopLossTakeProfitObj.side === 'BUY'\n\t\t\t? (quote_value + quote_value * (initialStopLossTakeProfitObj.initialValue / 100)).toFixed(\n\t\t\t\t\tinitialStopLossTakeProfitObj.decimalPrecision\n\t\t\t )\n\t\t\t: (quote_value - quote_value * (initialStopLossTakeProfitObj.initialValue / 100)).toFixed(\n\t\t\t\t\tinitialStopLossTakeProfitObj.decimalPrecision\n\t\t\t );\n\t}\n\treturn 0;\n};\n\n/* Set Initial min, max and step value for the Limit Order, StopLoss and TakeProfit */\n\nexport const calculateOrderValueConfig = (\n\ttypeOfOrder: string,\n\tquote: any,\n\tstepAmount: number,\n\torderType?: string,\n\ttradeMeasure?: string\n): BuySellIncrement => {\n\tif (tradeMeasure === 'stopLoss') {\n\t\treturn {\n\t\t\tminValue: orderType === 'SELL' ? (quote && quote.b ? quote.b : quote) : 0,\n\t\t\tmaxValue: orderType === 'SELL' ? 10000 : quote && quote.a ? quote.a : quote,\n\t\t\tstepAmount: stepAmount,\n\t\t};\n\t}\n\tif (tradeMeasure === 'takeProfit') {\n\t\treturn {\n\t\t\tminValue: orderType === 'SELL' ? 0 : quote && quote.a ? quote.a : quote,\n\t\t\tmaxValue: orderType === 'SELL' ? (quote && quote.b ? quote.b : quote) : 10000,\n\t\t\tstepAmount: stepAmount,\n\t\t};\n\t}\n\n\tif ((orderType === 'BUY' && typeOfOrder === 'limit') || (orderType === 'SELL' && typeOfOrder === 'stop')) {\n\t\treturn {\n\t\t\tminValue: 0,\n\t\t\tmaxValue: quote && quote.a ? quote.a : quote,\n\t\t\tstepAmount: stepAmount,\n\t\t};\n\t}\n\n\tif ((orderType === 'BUY' && typeOfOrder === 'stop') || (orderType === 'SELL' && typeOfOrder === 'limit')) {\n\t\treturn {\n\t\t\tminValue: quote && quote.b ? quote.b : quote,\n\t\t\tmaxValue: 10000,\n\t\t\tstepAmount: stepAmount,\n\t\t};\n\t}\n\n\treturn {\n\t\tminValue: orderType === 'SELL' ? (quote && quote.b ? quote.b : quote) : 0,\n\t\tmaxValue: orderType === 'SELL' ? 10000 : quote && quote.a ? quote.a : quote,\n\t\tstepAmount: stepAmount,\n\t};\n};\n\n/* Get trading Instruments details */\n\nexport const getInstrumentDetails = (\n\tdetailedInformation: TradingInstruments[],\n\tselectedTradingAccount: TradingAccount[] | TradingAccount | undefined,\n\tsymbol: string\n) => {\n\tlet tradingAccount: TradingAccount[] = [];\n\n\tif (selectedTradingAccount) {\n\t\tif (Array.isArray(selectedTradingAccount)) {\n\t\t\ttradingAccount = selectedTradingAccount;\n\t\t} else {\n\t\t\ttradingAccount = [selectedTradingAccount];\n\t\t}\n\t}\n\n\tconst information = detailedInformation.find((value) => value.account === tradingAccount[0]?.id);\n\tif (information && information.instruments) {\n\t\treturn information.instruments[symbol];\n\t}\n};\n\nexport const getTradingInstrument = (tradingAccount: TradingAccount, symbol: string) => {\n\tconst tradingInstruments = tradingAccount.tradingInstruments;\n\tif (tradingInstruments && tradingInstruments.instruments) {\n\t\treturn tradingInstruments.instruments[symbol];\n\t}\n};\n\nexport const getMarketItem = (feedId: string, code: string, rfpGateway: Optional = undefined) => {\n\tconst _rfpGateway = rfpGateway ?? Resolver.resolve(RfpGateway);\n\tif (_rfpGateway) {\n\t\treturn _rfpGateway.getMarketItem(code, feedId);\n\t}\n};\n\n/* Convert Amount to Lot */\nexport const convertAmountToLot = (amount: number, roundLot: number) => amount / roundLot;\n\n/* For JPY alone we need to convert the qty */\nexport const isForexJPY = (isForexJPY: string) => {\n\tif (isForexJPY === 'JPY') {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\nexport const getMarketItemTickSize = (marketItem: MarketItem) => {\n\tconst tickSize = marketItem.marketItemInfo?.tickSize;\n\treturn tickSize ? +tickSize : marketItem.tickSize;\n};\n\nexport const getMarketItemPipSize = (marketItem: MarketItem | undefined | null) => {\n\tif (marketItem) {\n\t\tconst pipSize = marketItem.marketItemInfo?.pipSize;\n\t\treturn pipSize ? +pipSize : Math.min(1, getMarketItemTickSize(marketItem) * 10);\n\t}\n\treturn NaN;\n};\n\nexport const calcPipCost = (\n\tamount: number,\n\tmarketItem: MarketItem,\n\ttradingAccount: TradingAccount,\n\trfpGateway: Optional\n) => {\n\tconst priceQuote = getCurrentPrice(marketItem.feedId, marketItem.code, rfpGateway);\n\tconst lastBid = priceQuote ? priceQuote.b : 0;\n\tconst onePip = getMarketItemPipSize(marketItem);\n\tconst pipCost = preCalcPL(\n\t\tmarketItem,\n\t\tamount,\n\t\tlastBid,\n\t\tlastBid + onePip,\n\t\ttradingAccount.baseCurrency,\n\t\t'BUY',\n\t\ttradingAccount,\n\t\trfpGateway\n\t);\n\treturn pipCost;\n};\n\nexport const calculateMarginImpact = (\n\tprice: number,\n\tamount: number,\n\tmarketItem: MarketItem,\n\ttradingAccount: TradingAccount,\n\torderType: 'BUY' | 'SELL',\n\trfpGateway: Optional\n) => {\n\tif (isNaN(price)) {\n\t\treturn NaN;\n\t}\n\n\tlet marginRequirement = 0;\n\tlet marginImpact: number = 0;\n\n\tif (tradingAccount.tradingInstruments) {\n\t\tconst instrument = tradingAccount.tradingInstruments.instruments[marketItem.code];\n\t\tmarginRequirement = instrument && instrument.marginReq ? instrument.marginReq : 0;\n\t}\n\n\tmarginImpact = getMarginImpact(marginRequirement, amount, price);\n\n\treturn convertToBaseCurrency(\n\t\ttradingAccount,\n\t\tmarginImpact,\n\t\tprice,\n\t\tmarketItem.qCcy,\n\t\tmarketItem.feedId,\n\t\tmarketItem.code,\n\t\torderType === 'BUY',\n\t\trfpGateway\n\t);\n};\n\n/* Convert Lot to Amount Required when placing orders when Lot is selected */\nexport const convertLotToAmount = (lot: number, roundLot: number) => (lot ? lot * roundLot : 0);\n\nexport enum MarketItemType {\n\tFOREX,\n\tSPOT,\n\tCFD,\n\tFUTURE,\n\tINDEX,\n\tCOMMODITY,\n\tOPTION,\n\tNDF,\n\tSTOCK,\n\tCFD_INDEX,\n\tCRYPTO,\n}\n\nlet FLAG_TYPE_BASE = 256;\n\nexport const isMarketItemType = (marketItem: MarketItem, type: MarketItemType) =>\n\t(marketItem.flags && FLAG_TYPE_BASE << type) !== 0;\n\nexport const findCommonMarketItem = (fSymbol: string, sSymbol: string, rfpGateway: Optional) => {\n\tconst _rfpGateway = rfpGateway ?? Resolver.resolve(RfpGateway);\n\tif (_rfpGateway) {\n\t\tlet first: any = [];\n\t\tlet second: any = [];\n\n\t\t_rfpGateway.mapMarketItems.forEach((item: MarketItem) => {\n\t\t\tif (item.grp === 'Forex' || item.grp === 'Crypto') {\n\t\t\t\tif (item.code.includes(fSymbol)) {\n\t\t\t\t\tfirst.push(item);\n\t\t\t\t}\n\n\t\t\t\tif (item.code.includes(sSymbol)) {\n\t\t\t\t\tsecond.push(item);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tlet res: any = null;\n\t\tfirst.forEach((mt1: any) => {\n\t\t\tif (!res) {\n\t\t\t\tlet base = mt1.bCcy;\n\t\t\t\tlet quoteCode = mt1.qCcy;\n\t\t\t\tlet code = fSymbol === base ? quoteCode : base;\n\n\t\t\t\tsecond.forEach((mt2: any) => {\n\t\t\t\t\tif (!res) {\n\t\t\t\t\t\tif (mt2.code.includes(code)) {\n\t\t\t\t\t\t\tres = {\n\t\t\t\t\t\t\t\tfirst: mt1,\n\t\t\t\t\t\t\t\tsecond: mt2,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\treturn res;\n\t}\n};\n\nexport const convertToBaseCurrency = (\n\ttradingAccount: TradingAccount,\n\tpl: number,\n\tclosePrice: number,\n\tquoteCurrency: string,\n\tfeedId: string,\n\tsymbol: string,\n\tisBuy: boolean,\n\trfpGateway: Optional\n) => {\n\tif (tradingAccount.accountMarketType === AccountMarketType.SpreadBetting) {\n\t\treturn pl;\n\t}\n\n\tif (rfpGateway) {\n\t\tlet mt = rfpGateway.getMarketItem(symbol, feedId);\n\t\tif (mt === undefined) {\n\t\t\treturn NaN;\n\t\t}\n\n\t\tlet baseAccountCurrency = tradingAccount.baseCurrency;\n\n\t\tif (quoteCurrency === baseAccountCurrency) {\n\t\t\treturn pl;\n\t\t}\n\n\t\tlet pair = quoteCurrency + baseAccountCurrency;\n\t\tlet inverse = false;\n\t\tlet homeCurrencyConversionRate;\n\n\t\tlet info = getTradingInstrument(tradingAccount, pair);\n\n\t\tif (!info) {\n\t\t\tpair = baseAccountCurrency + quoteCurrency;\n\t\t\tinfo = getTradingInstrument(tradingAccount, pair);\n\t\t\tinverse = true;\n\t\t}\n\n\t\tlet lastQuoteBaseCcy;\n\t\tif (info) {\n\t\t\tlastQuoteBaseCcy = rfpGateway.getQuotePrices(feedId, info.code);\n\t\t}\n\n\t\t//no luck...keep digging for a path\n\t\tif (!lastQuoteBaseCcy) {\n\t\t\tinverse = false;\n\t\t\tpl = pl / closePrice;\n\n\t\t\tpair = mt.bCcy + baseAccountCurrency;\n\t\t\tinfo = getTradingInstrument(tradingAccount, pair);\n\n\t\t\tif (!info) {\n\t\t\t\tpair = baseAccountCurrency + mt.bCcy;\n\t\t\t\tinfo = getTradingInstrument(tradingAccount, pair);\n\t\t\t\tinverse = true;\n\t\t\t}\n\n\t\t\tif (!info) {\n\t\t\t\tlet mtPair: any = findCommonMarketItem(quoteCurrency, baseAccountCurrency, rfpGateway);\n\t\t\t\tif (mtPair) {\n\t\t\t\t\tpl = pl * closePrice;\n\t\t\t\t\tlastQuoteBaseCcy = rfpGateway.getQuotePrices(feedId, mtPair.first.code);\n\n\t\t\t\t\tif (lastQuoteBaseCcy) {\n\t\t\t\t\t\tinverse = !(mtPair.first.bCcy === quoteCurrency);\n\t\t\t\t\t\tif (inverse) {\n\t\t\t\t\t\t\thomeCurrencyConversionRate = isBuy ? lastQuoteBaseCcy.b : lastQuoteBaseCcy.a;\n\t\t\t\t\t\t\tpl = pl / homeCurrencyConversionRate;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\thomeCurrencyConversionRate = isBuy ? lastQuoteBaseCcy.a : lastQuoteBaseCcy.b;\n\t\t\t\t\t\t\tpl = pl * homeCurrencyConversionRate;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinfo = getTradingInstrument(tradingAccount, mtPair.second.code);\n\t\t\t\t\t\tinverse = mtPair.second.bCcy === baseAccountCurrency;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn NaN;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn NaN;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!info) {\n\t\t\t\treturn NaN;\n\t\t\t}\n\n\t\t\tlastQuoteBaseCcy = rfpGateway.getQuotePrices(feedId, info.code);\n\n\t\t\tif (lastQuoteBaseCcy) {\n\t\t\t\tif (inverse) {\n\t\t\t\t\thomeCurrencyConversionRate = isBuy ? lastQuoteBaseCcy.b : lastQuoteBaseCcy.a;\n\t\t\t\t\tpl = pl / homeCurrencyConversionRate;\n\t\t\t\t} else {\n\t\t\t\t\thomeCurrencyConversionRate = isBuy ? lastQuoteBaseCcy.a : lastQuoteBaseCcy.b;\n\t\t\t\t\tpl = pl * homeCurrencyConversionRate;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn NaN;\n\t\t\t}\n\n\t\t\treturn pl;\n\t\t}\n\n\t\tif (inverse) {\n\t\t\thomeCurrencyConversionRate = isBuy ? lastQuoteBaseCcy.b : lastQuoteBaseCcy.a;\n\t\t\tpl = pl / homeCurrencyConversionRate;\n\t\t} else {\n\t\t\thomeCurrencyConversionRate = isBuy ? lastQuoteBaseCcy.a : lastQuoteBaseCcy.b;\n\t\t\tpl = pl * homeCurrencyConversionRate;\n\t\t}\n\n\t\treturn pl;\n\t}\n\treturn NaN;\n};\n\nconst getTimezoneOffset = (timeZone: string, date: Date) => {\n\ttry {\n\t\tconst str = date.toLocaleString('en', { timeZone: timeZone, timeZoneName: 'longOffset' } as any);\n\t\tconst [, h, m] = str.match(/([+-]\\d+):(\\d+)$/) || ['+00', '00'];\n\t\tconst hour = +h;\n\t\tconst min = +m;\n\t\tconst res = hour * 60 + (hour > 0 ? min : -min);\n\t\treturn isNaN(res) ? -4 : res;\n\t} catch (e) {\n\t\tconsole.warn(e);\n\t\treturn -4;\n\t}\n};\n\n// Get NY timezone offset in hours\nfunction getNYTimezoneOffset() {\n\tlet executed = false;\n\tconst offset = getTimezoneOffset('America/New_York', new Date()) / 60;\n\treturn function () {\n\t\tif (!executed) {\n\t\t\texecuted = true;\n\t\t}\n\t\treturn offset;\n\t};\n}\n\nconst getEstOffset = getNYTimezoneOffset();\n\nconst addZero = (val: number) => {\n\treturn val < 10 ? '0' + val : val;\n};\n\nconst getLastSunday = () => {\n\tconst currentDate = new Date();\n\tconst currentDay = currentDate.getDay();\n\tconst offsetToLastSunday = (currentDay + 7) % 7;\n\tconst lastSundayDate = new Date(currentDate);\n\tlastSundayDate.setDate(currentDate.getDate() - offsetToLastSunday);\n\treturn lastSundayDate;\n};\n\nconst updateDateWithHoursAndMinutes = (\n\tdate: Date,\n\thours: number,\n\tminutes: number,\n\tutcTimeOffset: number,\n\tdaysOffset: number\n) => {\n\tconst newDate = new Date(date);\n\tnewDate.setDate(newDate.getDate() + daysOffset);\n\tnewDate.setHours(hours - (utcTimeOffset + date.getTimezoneOffset() / 60));\n\tnewDate.setMinutes(minutes);\n\tnewDate.setSeconds(0);\n\treturn newDate;\n};\n\nexport const convertTradingSessions = (info: RFPSessionTimes) => {\n\t//TradingSessions\n\t//'17:03-24:00,00:00-24:00,00:00-24:00,00:00-24:00,00:00-24:00,00:00-16:55,0'\n\tconst sessions = info.trading.split(',').map((session) => {\n\t\tif (session === '0') {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tstart: '',\n\t\t\t\t\tend: '',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\tconst times = session.split(' ');\n\t\treturn times.map((time) => {\n\t\t\tconst [start, end] = time.split('-');\n\t\t\treturn {\n\t\t\t\tstart,\n\t\t\t\tend,\n\t\t\t};\n\t\t});\n\t});\n\n\tif (sessions.length === 7) {\n\t\tconst tradeSessions = {} as TradingSessions;\n\t\ttradeSessions.timezone = info.serverTimeZone;\n\t\ttradeSessions.sessions = [[], [], [], [], [], [], []] as TradingSession[][];\n\n\t\ttradeSessions.utcTimeOffset = getEstOffset();\n\n\t\tconst lastSunday = getLastSunday();\n\n\t\t//day: number]: TradingSession[]; // 0 - Sunday, 1 - Monday, 2 - Tuesday, 3 - Wednesday, 4 - Thursday, 5 - Friday, 6 - Saturday\n\t\tsessions.forEach((session, index) => {\n\t\t\tif (session) {\n\t\t\t\tsession.forEach((time) => {\n\t\t\t\t\tconst { start, end } = time;\n\t\t\t\t\tif (!(start.length === 0 || end.length === 0)) {\n\t\t\t\t\t\tconst [startHour, startMinute] = start.split(':').map((val) => parseInt(val));\n\t\t\t\t\t\tconst [endHour, endMinute] = end.split(':').map((val) => parseInt(val));\n\n\t\t\t\t\t\tconst openDate = updateDateWithHoursAndMinutes(\n\t\t\t\t\t\t\tlastSunday,\n\t\t\t\t\t\t\tstartHour,\n\t\t\t\t\t\t\tstartMinute,\n\t\t\t\t\t\t\ttradeSessions.utcTimeOffset,\n\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst closeDate = updateDateWithHoursAndMinutes(\n\t\t\t\t\t\t\tlastSunday,\n\t\t\t\t\t\t\tendHour,\n\t\t\t\t\t\t\tendMinute,\n\t\t\t\t\t\t\ttradeSessions.utcTimeOffset,\n\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst openDayOfWeek = openDate.getDay() as DayOfWeek;\n\t\t\t\t\t\tconst closeDayOfWeek = closeDate.getDay() as DayOfWeek;\n\t\t\t\t\t\tif (openDayOfWeek !== closeDayOfWeek) {\n\t\t\t\t\t\t\tlet start = getHourAndMinutes(openDate);\n\t\t\t\t\t\t\tconst ts1 = {\n\t\t\t\t\t\t\t\tisOpen: true,\n\t\t\t\t\t\t\t\tday: openDayOfWeek,\n\t\t\t\t\t\t\t\topenDate: openDate,\n\t\t\t\t\t\t\t\tcloseDate: new Date(openDate.getFullYear(), openDate.getMonth(), openDate.getDate() + 1, 0, 0, 0),\n\t\t\t\t\t\t\t\tschedule: { start: start, end: '24:00' },\n\t\t\t\t\t\t\t} as TradingSession;\n\t\t\t\t\t\t\tpushTradingSession(tradeSessions, openDayOfWeek, ts1);\n\n\t\t\t\t\t\t\tif (!(closeDate.getHours() === 0 && closeDate.getMinutes() === 0)) {\n\t\t\t\t\t\t\t\tconst ts2 = {\n\t\t\t\t\t\t\t\t\tisOpen: true,\n\t\t\t\t\t\t\t\t\tday: closeDayOfWeek,\n\t\t\t\t\t\t\t\t\topenDate: ts1.closeDate,\n\t\t\t\t\t\t\t\t\tcloseDate: closeDate,\n\t\t\t\t\t\t\t\t\tschedule: {\n\t\t\t\t\t\t\t\t\t\tstart: getHourAndMinutes(ts1.closeDate),\n\t\t\t\t\t\t\t\t\t\tend: getHourAndMinutes(closeDate),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t} as TradingSession;\n\t\t\t\t\t\t\t\tpushTradingSession(tradeSessions, closeDayOfWeek, ts2);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tlet start = getHourAndMinutes(openDate);\n\t\t\t\t\t\t\tlet end = getHourAndMinutes(closeDate);\n\t\t\t\t\t\t\tif (end === '00:00') {\n\t\t\t\t\t\t\t\tend = '24:00';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst ts = {\n\t\t\t\t\t\t\t\tisOpen: true,\n\t\t\t\t\t\t\t\tday: openDayOfWeek,\n\t\t\t\t\t\t\t\topenDate: openDate,\n\t\t\t\t\t\t\t\tcloseDate: closeDate,\n\t\t\t\t\t\t\t\tschedule: { start, end },\n\t\t\t\t\t\t\t} as TradingSession;\n\n\t\t\t\t\t\t\tpushTradingSession(tradeSessions, openDayOfWeek, ts);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tapplyEmptySessions(tradeSessions);\n\t\treturn tradeSessions;\n\t}\n\treturn undefined;\n};\n\nconst getHourAndMinutes = (date: Date) => {\n\treturn `${addZero(date.getHours())}:${addZero(date.getMinutes())}`;\n};\n\nconst applyEmptySessions = (tradeSessions: TradingSessions) => {\n\tfor (let i = 0; i < tradeSessions.sessions.length; i++) {\n\t\tif (tradeSessions.sessions[i] && tradeSessions.sessions[i].length === 0) {\n\t\t\taddEmptySession(tradeSessions, i as DayOfWeek);\n\t\t}\n\t}\n};\n\nconst addEmptySession = (tradeSessions: TradingSessions, dayOfWeek: DayOfWeek) => {\n\tconst emptyTimeSession = {\n\t\tisOpen: false,\n\t\tday: dayOfWeek,\n\t\tschedule: { start: '', end: '' },\n\t} as TradingSession;\n\n\ttradeSessions.sessions[dayOfWeek].push(emptyTimeSession);\n};\n\nconst pushTradingSession = (tradeSessions: TradingSessions, dayOfWeek: DayOfWeek, tradingSession: TradingSession) => {\n\tif (tradeSessions.sessions[dayOfWeek]) {\n\t\t// check if previous session close time is equal to current session open time\n\t\tif (tradeSessions.sessions[dayOfWeek].length > 0) {\n\t\t\tconst prevSession = tradeSessions.sessions[dayOfWeek][tradeSessions.sessions[dayOfWeek].length - 1];\n\t\t\tif (prevSession.closeDate && tradingSession.openDate) {\n\t\t\t\tif (prevSession.schedule.start === tradingSession.schedule.end) {\n\t\t\t\t\t// Check if close date is older than open date\n\t\t\t\t\tif (prevSession.closeDate.getTime() < tradingSession.openDate.getTime()) {\n\t\t\t\t\t\t// set only hours and minutes\n\t\t\t\t\t\tprevSession.openDate.setHours(tradingSession.openDate.getHours());\n\t\t\t\t\t\tprevSession.openDate.setMinutes(tradingSession.openDate.getMinutes());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tprevSession.openDate = tradingSession.openDate;\n\t\t\t\t\t}\n\t\t\t\t\tprevSession.schedule.start = tradingSession.schedule.start;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tprevSession.closeDate.getHours() === tradingSession.openDate.getHours() &&\n\t\t\t\t\tprevSession.closeDate.getMinutes() === tradingSession.openDate.getMinutes()\n\t\t\t\t) {\n\t\t\t\t\tprevSession.closeDate = tradingSession.closeDate;\n\t\t\t\t\tprevSession.schedule.end = tradingSession.schedule.end;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\ttradeSessions.sessions[dayOfWeek].push(tradingSession);\n\t} else {\n\t\ttradeSessions.sessions[dayOfWeek] = [tradingSession];\n\t}\n};\n\nconst getCurrentPriceKey = (feedId: string, code: string) => {\n\treturn `${feedId}-${code}`;\n};\n\nexport const getCurrentPrice = (feedId: string, code: string, rfpGateway: Optional) => {\n\tconst _rfpGateway = rfpGateway ?? Resolver.resolve(RfpGateway);\n\tif (_rfpGateway) {\n\t\tconst key = getCurrentPriceKey(feedId, code);\n\t\treturn _rfpGateway.mapQuotesPrices.get(key);\n\t}\n\n\treturn undefined;\n};\n\nconst calcPipsAtPrice = (marketItem: MarketItem, price: number) => price * (1 / getMarketItemPipSize(marketItem));\n\nexport const getPositionPipsChange = (position: TradingPosition) => {\n\tconst marketItem = position.marketItem;\n\tif (marketItem) {\n\t\tlet openPrice = position.oP || 0;\n\t\tlet closePrice: number | undefined = position.cP ?? 0;\n\t\tif (closePrice === 0) {\n\t\t\tclosePrice = position.currentPrice;\n\t\t}\n\n\t\tif (closePrice) {\n\t\t\tif (closePrice === 0) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tconst isBuy = position.side === 'BUY';\n\t\t\tconst mul = isBuy ? 1 : -1;\n\t\t\treturn calcPipsAtPrice(marketItem, closePrice - openPrice) * mul;\n\t\t}\n\t}\n\treturn 0;\n};\n\nexport const updatePosition = (\n\taccount: TradingAccount,\n\tposition: TradingPosition,\n\trfpGateway: Optional\n) => {\n\tif (position.state === TradingPositionState.open || position.state === TradingPositionState.pending) {\n\t\tlet profit = calcProfit(account, position, rfpGateway);\n\t\tposition.grossProfit = account.isJapanAccount ? Math.floor(profit) : profit;\n\t\tposition.netProfit = position.grossProfit + (position.comm || 0) + (position.swap || 0);\n\n\t\tif (isNaN(profit)) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\tlet netPL = 0.0;\n\tlet grPL = 0.0;\n\n\tfor (const posId in account.activePositions) {\n\t\tconst pos = account.activePositions[posId];\n\t\tif (pos.grossProfit && !isNaN(pos.grossProfit)) {\n\t\t\tgrPL += pos.grossProfit;\n\t\t}\n\n\t\tif (pos.netProfit && !isNaN(pos.netProfit)) {\n\t\t\tnetPL += pos.netProfit;\n\t\t}\n\t}\n\n\taccount.grossProfit = grPL;\n\taccount.netProfit = netPL;\n};\n\nexport const calcProfit = (account: TradingAccount, position: TradingPosition, rfpGateway: Optional) => {\n\tif (position.state !== 'OPEN') {\n\t\treturn 0;\n\t}\n\n\tconst tradingInstrument = getTradingInstrument(account, position.code);\n\tconst marketItem = position.marketItem;\n\tconst quantity = position.qty;\n\n\tif (!marketItem || !quantity || !tradingInstrument) {\n\t\treturn NaN;\n\t}\n\n\tlet openPrice = position.oP;\n\tif (!openPrice || openPrice === 0) {\n\t\treturn NaN;\n\t}\n\n\tlet closePrice = position.cP;\n\tif (!closePrice || closePrice === 0) {\n\t\tclosePrice = position.currentPrice;\n\t}\n\n\tif (!closePrice || closePrice === 0) {\n\t\treturn NaN;\n\t}\n\n\tconst decimal = position.dec ?? -1;\n\tconst isBuy = position.side === 'BUY';\n\tconst mul = isBuy ? 1 : -1;\n\tlet pips = 0.0;\n\tif (decimal !== -1) {\n\t\tconst price = closePrice - openPrice;\n\t\tpips = calcPipsAtPrice(marketItem, price) * mul;\n\t}\n\n\tposition.pips = pips;\n\n\tlet basePositionCurrency = position.marketItem?.qCcy;\n\tif (!basePositionCurrency) {\n\t\treturn NaN;\n\t}\n\n\tlet baseAccountCurrency = account.baseCurrency;\n\tif (!baseAccountCurrency) {\n\t\treturn NaN;\n\t}\n\n\tlet pl: number | null = quantity * (closePrice - openPrice) * mul;\n\n\tif (\n\t\tisMarketItemType(marketItem, MarketItemType.FUTURE) &&\n\t\ttradingInstrument.tickValue &&\n\t\ttradingInstrument.tickSize\n\t) {\n\t\tpl *= tradingInstrument.tickValue / tradingInstrument.tickSize;\n\t}\n\n\tif (basePositionCurrency !== baseAccountCurrency) {\n\t\tpl = convertToBaseCurrency(\n\t\t\taccount,\n\t\t\tpl,\n\t\t\tclosePrice,\n\t\t\tbasePositionCurrency,\n\t\t\tmarketItem.feedId,\n\t\t\tmarketItem.code,\n\t\t\tisBuy,\n\t\t\trfpGateway\n\t\t);\n\t}\n\n\treturn pl;\n};\n\n/* Precalculate the Take Profit and Stop Loss values when order modal opens */\n\nexport const preCalcPL = (\n\tmarketItem: MarketItem | undefined,\n\tquantity: number | undefined,\n\tlastBid: any,\n\tcurrentProfitOrStopPrice: any,\n\tbaseAccountCurrency: string,\n\torderType: any,\n\ttradingAccount: TradingAccount | undefined,\n\trfpGateway: Optional\n) => {\n\tif (!marketItem || !quantity) {\n\t\treturn NaN;\n\t}\n\n\tif (quantity === 0) {\n\t\treturn 1;\n\t}\n\tlet pl = 0;\n\tpl = quantity * (currentProfitOrStopPrice - lastBid) * (orderType === 'BUY' ? 1 : -1);\n\tconst quoteCurrency = marketItem.qCcy;\n\n\tif (tradingAccount) {\n\t\tif (quoteCurrency !== baseAccountCurrency) {\n\t\t\tpl = convertToBaseCurrency(\n\t\t\t\ttradingAccount,\n\t\t\t\tpl,\n\t\t\t\tlastBid,\n\t\t\t\tquoteCurrency,\n\t\t\t\tmarketItem.feedId,\n\t\t\t\tmarketItem.code,\n\t\t\t\torderType === 'BUY',\n\t\t\t\trfpGateway\n\t\t\t);\n\t\t}\n\n\t\tif (tradingAccount.isJapanAccount) {\n\t\t\treturn pl ? Math.floor(pl).toFixed(0) : 0;\n\t\t}\n\t}\n\treturn pl ? pl.toFixed(2) : 0;\n};\n\n/* Increment factor for the lot or amount input field */\nconst progression = [1, 2, 3.0, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000, 10000, 100000];\n\n/* Set increment values for the Type Amount */\nexport const fillQuantity = (\n\tmarketItem: MarketItem,\n\ttradingAccount: Optional,\n\tdetailedInformation?: TradingInstruments[]\n) => {\n\tconst collection = [];\n\tlet instrument;\n\tif (tradingAccount) {\n\t\tinstrument = tradingAccount.tradingInstruments?.instruments[marketItem.code];\n\t} else if (!tradingAccount && detailedInformation) {\n\t\tinstrument = detailedInformation[0]?.instruments[marketItem.code];\n\t}\n\n\tif (instrument) {\n\t\tlet min = -1;\n\t\tlet max = 1.7976931348623157e308 / 2;\n\n\t\tconst decPrec = marketItem.decPrec;\n\n\t\tmin = convertLotToAmount(instrument.minL, instrument.rndLot);\n\t\tmax = convertLotToAmount(instrument.maxL, instrument.rndLot);\n\n\t\tif (min < 0) {\n\t\t\tmin = getDefaultAmount(instrument);\n\t\t}\n\n\t\tfor (let i = 0; i < progression.length; i++) {\n\t\t\tlet minimumLot = min;\n\t\t\tlet qty = progression[i] * minimumLot;\n\t\t\tif (qty > max + 0.000001) break;\n\t\t\tif (qty === 0.3) {\n\t\t\t\tqty = parseFloat((0.3).toFixed(10));\n\t\t\t}\n\t\t\tconst decLength = qty.toString().split('.')[1]?.length;\n\t\t\tcollection.push(decLength > decPrec ? Number(qty.toFixed(decPrec)) : qty);\n\t\t}\n\t}\n\treturn collection;\n};\n\nexport const getDefaultAmount = (instrument: Instrument) => {\n\treturn instrument.grp === 'Forex' ? 1000 : convertLotToAmount(instrument.minL, instrument.rndLot);\n};\n\n/* Set increment values for the Type LOT */\nexport const getAllLotsAtAccount = (\n\tmarketItem: MarketItem,\n\ttradingAccount: Optional,\n\tdetailedInformation?: TradingInstruments[]\n) => {\n\tconst amounts = fillQuantity(marketItem, tradingAccount, detailedInformation);\n\tconst collection: number[] = [];\n\n\tlet instrument: Instrument | undefined;\n\tif (tradingAccount) {\n\t\tinstrument = tradingAccount.tradingInstruments?.instruments[marketItem.code];\n\t} else if (!tradingAccount && detailedInformation) {\n\t\tinstrument = detailedInformation[0]?.instruments[marketItem.code];\n\t}\n\n\tif (instrument) {\n\t\tamounts.forEach((value) => {\n\t\t\tcollection.push(convertAmountToLot(value, instrument!.rndLot));\n\t\t});\n\t}\n\n\treturn collection;\n};\n\nconst currenciesMap: { [key: string]: string } = {\n\tEUR: '€',\n\tUSD: '$',\n\tJPY: '¥',\n\tNZD: '$',\n\tAUD: '$',\n\tZAR: 'R',\n\tCHF: '₣',\n\tGBP: '£',\n};\n\nexport const defineBaseCurrencySymbol = (tradingAccount: TradingAccount | null | undefined) =>\n\t!tradingAccount?.baseCurrency ? '' : currenciesMap[tradingAccount?.baseCurrency] || tradingAccount?.baseCurrency;\n\nconst formatter = ({\n\tlanguage,\n\tisJapanAccount,\n\tvalue,\n\tsymbol,\n}: {\n\tlanguage: string;\n\tisJapanAccount: boolean;\n\tvalue: number;\n\tsymbol: string;\n}) => {\n\tconst isArabic = language === 'ar-SA';\n\tconst decPrec = isJapanAccount ? 0 : 2;\n\n\tif (isArabic) {\n\t\treturn value < 0\n\t\t\t? `${formatNumberWithCommas(Math.abs(value), decPrec, language)} ${symbol} -`\n\t\t\t: `${formatNumberWithCommas(value, decPrec, language)} ${symbol}`;\n\t} else {\n\t\treturn value < 0\n\t\t\t? `- ${symbol} ${formatNumberWithCommas(Math.abs(value), decPrec, language)}`\n\t\t\t: `${symbol} ${formatNumberWithCommas(value, decPrec, language)}`;\n\t}\n};\n\nexport function formatNumberAsMoney(\n\tcurrency: string,\n\tnum: string | number | undefined,\n\tlanguage: string,\n\tisJapanAccount: boolean = false\n) {\n\tnum = parseFloat(num!.toString());\n\tconst value = num ?? 0;\n\tif (!isNaN(value)) {\n\t\tconst symbol = currenciesMap[currency];\n\t\treturn formatter({ language, isJapanAccount, value, symbol });\n\t}\n\treturn '';\n}\n\nexport function formatAsMoney(\n\ttradingAccounts: TradingAccount[],\n\tselectedTradingAccountNumber: any,\n\tnum: string | number | undefined,\n\tlanguage: string\n) {\n\tnum = parseFloat(num!.toString());\n\tconst value = num ?? 0;\n\tif (!isNaN(value)) {\n\t\tconst selectedTradingAccount = tradingAccounts.find((item: any) => item.id === selectedTradingAccountNumber);\n\t\tconst symbol = defineBaseCurrencySymbol(selectedTradingAccount);\n\t\tconst isJapanAccount = !!selectedTradingAccount?.isJapanAccount;\n\n\t\treturn formatter({ language, isJapanAccount, value, symbol });\n\t}\n\treturn '';\n}\n\nexport const getMarginCalculationType = (tradingAccount: TradingAccount | undefined): number => {\n\tif (tradingAccount && tradingAccount.marginCalculationType) {\n\t\treturn tradingAccount.marginCalculationType > 0 ? tradingAccount.marginCalculationType - 1 : 0;\n\t}\n\treturn 0;\n};\n\n/**\n * Calculates the effective (net) size of a instrument within the open positions based on margin calculation type.\n * @param {number} marginAccountType The flag which describes the account level setting for margin calculations (0: Hedged, 1: unhedged, 2: Japan)\n * @param {number} code The instrument for which effective size is to be calculated\n * @param {number} accountId ID of account currently in use\n * @param {number} openPositions An array of open trading positions for a given account\n * @return {TEffectiveSize} Object containing net value and majority side for given instrument positions\n */\nexport const getEffectiveSize = (\n\tmarginAccountType: MarginAccountType,\n\tcode: string,\n\taccountId: number,\n\topenPositions: TradingPosition[]\n): TEffectiveSize => {\n\tlet majoritySide = '';\n\tlet totalBuy = 0;\n\tlet totalSell = 0;\n\n\topenPositions\n\t\t.filter((position) => {\n\t\t\treturn position.code === code && position.aId === accountId;\n\t\t})\n\t\t.forEach((position) => {\n\t\t\tif (position.side === 'BUY') {\n\t\t\t\ttotalBuy += position.qty!;\n\t\t\t} else if (position.side === 'SELL') {\n\t\t\t\ttotalSell += position.qty!;\n\t\t\t}\n\t\t});\n\n\tif (totalBuy > totalSell) {\n\t\tmajoritySide = 'BUY';\n\t} else if (totalSell > totalBuy) {\n\t\tmajoritySide = 'SELL';\n\t} else {\n\t\tmajoritySide = 'SQUARE';\n\t}\n\n\tswitch (marginAccountType) {\n\t\tcase MarginAccountType.Hedged:\n\t\t\treturn { val: Math.abs(totalBuy - Math.abs(totalSell)), majoritySide: majoritySide };\n\n\t\tcase MarginAccountType.Unhedged:\n\t\t\treturn { val: totalBuy + Math.abs(totalSell), majoritySide: majoritySide };\n\n\t\tcase MarginAccountType.Japan:\n\t\t\treturn { val: totalBuy > totalSell ? totalBuy : Math.abs(totalSell), majoritySide: majoritySide }; //To Do: Account for pending orders when id === 2 (Japan)\n\n\t\tdefault:\n\t\t\treturn { val: 0, majoritySide: '' };\n\t}\n};\n\n/**\n * Calculates the size of the position after hedging it against other opened positions of the same instrument\n * @param {number} orderType The type of order (BUY or SELL)\n * @param {TEffectiveSize} effectiveSize Effective size of the instrument based on open positions\n * @param {number} numberInputQuantity Value in the number input for trade size\n * @return {number} Returns hedged trade quantity to be used in margin impact calculation\n */\nexport const getHedgedTradeQuantity = (\n\teffectiveSize: TEffectiveSize,\n\tnumberInputQuantity: number | string,\n\torderType?: string\n): { value: number; isSquare: boolean } => {\n\tif (effectiveSize.majoritySide === 'SQUARE') {\n\t\treturn { value: +numberInputQuantity, isSquare: true };\n\t} else if (orderType !== effectiveSize.majoritySide && +numberInputQuantity <= +effectiveSize.val) {\n\t\treturn { value: 0, isSquare: false };\n\t} else if (orderType !== effectiveSize.majoritySide && +numberInputQuantity > effectiveSize.val) {\n\t\treturn { value: Math.abs(effectiveSize.val - +numberInputQuantity), isSquare: false };\n\t} else if (\n\t\t(effectiveSize.majoritySide === 'BUY' && orderType === 'BUY') ||\n\t\t(effectiveSize.majoritySide === 'SELL' && orderType === 'SELL')\n\t) {\n\t\treturn { value: +numberInputQuantity, isSquare: false };\n\t} else if (\n\t\t(effectiveSize.majoritySide === 'BUY' && orderType === 'SELL') ||\n\t\t(effectiveSize.majoritySide === 'SELL' && orderType === 'BUY')\n\t) {\n\t\treturn { value: +numberInputQuantity, isSquare: false };\n\t} else {\n\t\treturn { value: 0, isSquare: false };\n\t}\n};\n\n/**\n * Calculates the margin impact of a particular trade based on size, instrument level setting and current price\n * @param {number} instrumentMarginReq The margin requirement found on the instrument market item details\n * @param {number} sizeOfPosition Size of the position\n * @param {number} currentPrice current price of the instrument\n * @return {number} Returns calculated margin impact, not converted to base currency\n */\nexport const getMarginImpact = (instrumentMarginReq: number, sizeOfPosition: number, currentPrice: any): number =>\n\t((instrumentMarginReq * sizeOfPosition) / 100) * currentPrice;\n\nexport const calcPercentChange = (position: TradingPosition) =>\n\tcalcPercentChangeAtParams(position.oP, position.currentPrice, position.side === 'BUY');\n\nexport const calcPercentChangeAtParams = (\n\topenPrice: number | undefined,\n\tclosePrice: number | undefined,\n\tisBuy: boolean\n) => {\n\tconst op = openPrice ?? NaN;\n\tconst currentPrice = closePrice ?? NaN;\n\treturn ((currentPrice - op) / op) * 100 * (isBuy ? 1 : -1);\n};\n\nexport const updateCurrentPrice = (position: TradingPosition, priceQuote: PriceQuote) => {\n\tif (position.code === priceQuote.c) {\n\t\tconst isBuy = position.side === 'BUY';\n\t\tconst isPending = position.state === TradingPositionState.pending;\n\t\tif (isBuy) {\n\t\t\tposition.currentPrice = isPending ? priceQuote.a : priceQuote.b;\n\t\t} else {\n\t\t\tposition.currentPrice = isPending ? priceQuote.b : priceQuote.a;\n\t\t}\n\t}\n};\n\nexport const getAdditionalSubscriptionPairs = (\n\ttradingAccount: TradingAccount,\n\tmarketItem: MarketItem,\n\trfpGateway: Optional\n) => {\n\tlet additionalSubscriptionPair: Set = new Set();\n\tconst baseCcyPos = marketItem.qCcy;\n\tif (!baseCcyPos) {\n\t\treturn additionalSubscriptionPair;\n\t}\n\n\tlet baseCcyAcct = tradingAccount.baseCurrency;\n\tif (!baseCcyAcct) {\n\t\treturn additionalSubscriptionPair;\n\t}\n\n\tif (baseCcyPos !== baseCcyAcct) {\n\t\tlet pair = baseCcyPos + baseCcyAcct;\n\n\t\tlet info = getTradingInstrument(tradingAccount, pair);\n\t\tif (!info) {\n\t\t\tpair = baseCcyAcct + baseCcyPos;\n\t\t\tinfo = getTradingInstrument(tradingAccount, pair);\n\t\t}\n\n\t\tif (!info) {\n\t\t\tpair = baseCcyAcct + marketItem.bCcy;\n\n\t\t\tinfo = getTradingInstrument(tradingAccount, pair);\n\t\t\tif (!info) {\n\t\t\t\tpair = marketItem.bCcy + baseCcyAcct;\n\t\t\t\tinfo = getTradingInstrument(tradingAccount, pair);\n\t\t\t}\n\t\t}\n\n\t\tif (!info) {\n\t\t\t// Find cross symbol\n\t\t\tlet mtPair: any = findCommonMarketItem(baseCcyPos, baseCcyAcct, rfpGateway);\n\t\t\tif (mtPair) {\n\t\t\t\tpair = mtPair.first.code;\n\n\t\t\t\tif (pair) {\n\t\t\t\t\tadditionalSubscriptionPair.add(pair);\n\t\t\t\t}\n\t\t\t\tinfo = getTradingInstrument(tradingAccount, mtPair.second.code);\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (info) {\n\t\t\tpair = info.code;\n\n\t\t\tadditionalSubscriptionPair.add(pair);\n\t\t}\n\t}\n\treturn additionalSubscriptionPair;\n};\n\n// Calculations migrated from AccountPanel\nexport const calculateEquity = ({ balance, profitLoss }: { balance: number; profitLoss: number }): number =>\n\t+balance + profitLoss;\nexport const calculateFreeMargin = ({\n\tequity,\n\taccountMcLevel,\n\tusedMargin,\n}: {\n\tequity: number;\n\taccountMcLevel: number;\n\tusedMargin: number;\n}): number => Math.max(0, equity / accountMcLevel - usedMargin);\nexport const calculateMarginLevel = ({ equity, usedMargin }: { equity: number; usedMargin: number }): number =>\n\tusedMargin === 0 ? 0 : (equity / usedMargin) * 100;\n\nexport const SBCLeaner = (name: string) => {\n\tlet result = name ?? '';\n\tif (result.endsWith('_SB')) {\n\t\tresult = result.replace('_SB', '');\n\t}\n\tif (result.endsWith('SB')) {\n\t\tresult = result.replace('SB', '');\n\t}\n\n\treturn result;\n};\n\nexport const getLanguageToUse = (lang: string) => {\n\tif (lang) {\n\t\treturn lang === 'zh-Hans' || lang === 'zh-Hant' ? 'zh-cn' : lang === 'ar-SA' ? 'en' : lang.toLowerCase();\n\t}\n\n\t// if no language is provided, default to english\n\treturn 'en';\n};\n","import { immer } from 'zustand/middleware/immer';\nimport { createJSONStorage, persist } from 'zustand/middleware';\n\nimport { Account, TAccountStats } from '../gateways/TfboGateway/TfboGateway.types';\nimport { useStorageDOMEvents } from '../utils/hooks/useStorageDOMEvents';\n\nimport { create } from './create';\nimport createSelectors from './createSelectors';\n\nexport interface TradingAccountStoreActions {\n\tsetSelected: (selected: number) => void;\n\n\tsetAccounts: (accounts: any[]) => void;\n\n\tsetAccountStats: (accountStats: any[]) => void;\n\n\tsetSelectedAccountStats: (selectedAccountStats: any) => void;\n\tsetIsFundedTrader: (isFundedTrader: boolean) => void;\n\tsetAccountMarketType: ({\n\t\tisJapanSpread,\n\t\tisJapanSubscription,\n\t\tisSpreadBetting,\n\t}: {\n\t\tisJapanSpread: boolean;\n\t\tisJapanSubscription: boolean;\n\t\tisSpreadBetting: boolean;\n\t}) => void;\n\tsetCurrentAccountUrl: (url: string) => void;\n\tsetIsOneClickTradingActive: (value: boolean) => void;\n\treset: () => void;\n}\n\nexport interface TradingAccountStoreValues {\n\tselected: number;\n\taccounts: Account[];\n\taccountStats: TAccountStats[];\n\tselectedAccountStats: any;\n\n\t// TODO: when refactoring and have time, group these status in a clever way, and update all over the application\n\tisSpreadBetting: boolean;\n\tisJapanSpread: boolean;\n\tisJapanSubscription: boolean;\n\tisFundedTrader: boolean;\n\tcurrentAccountUrl: string;\n\tisOneClickTradingActive: boolean;\n}\n\nexport const initialStateTradingAccountStore: TradingAccountStoreValues = {\n\tselected: -1,\n\tselectedAccountStats: {},\n\taccounts: [],\n\taccountStats: [],\n\tcurrentAccountUrl: '',\n\tisSpreadBetting: false,\n\tisJapanSpread: false,\n\tisJapanSubscription: false,\n\tisFundedTrader: false,\n\tisOneClickTradingActive: false,\n};\nexport type TradingAccountStore = TradingAccountStoreValues & TradingAccountStoreActions;\n\nconst tradingAccountStore = create()(\n\tpersist(\n\t\timmer((set: any) => ({\n\t\t\t...initialStateTradingAccountStore,\n\n\t\t\tsetSelected: (selected: number) => set({ selected }),\n\n\t\t\tsetAccountMarketType: ({\n\t\t\t\tisJapanSpread,\n\t\t\t\tisJapanSubscription,\n\t\t\t\tisSpreadBetting,\n\t\t\t}: {\n\t\t\t\tisJapanSpread: boolean;\n\t\t\t\tisJapanSubscription: boolean;\n\t\t\t\tisSpreadBetting: boolean;\n\t\t\t}) => set({ isJapanSpread, isJapanSubscription, isSpreadBetting }),\n\n\t\t\tsetSelectedAccountStats: (selectedAccountStats: {}) =>\n\t\t\t\tset((state: TradingAccountStore) => {\n\t\t\t\t\tstate.selectedAccountStats = { ...selectedAccountStats };\n\t\t\t\t}),\n\n\t\t\tsetAccounts: (accounts: any) => set({ accounts }),\n\t\t\tsetCurrentAccountUrl: (currentAccountUrl: string) => set({ currentAccountUrl }),\n\t\t\tsetAccountStats: (accountStats: any[]) => set({ accountStats }),\n\t\t\tsetIsFundedTrader: (isFundedTrader: boolean) => set({ isFundedTrader }),\n\t\t\tsetIsOneClickTradingActive: (isOneClickTradingActive: boolean) => set({ isOneClickTradingActive }),\n\t\t\treset: () => set({ ...initialStateTradingAccountStore }),\n\t\t})),\n\t\t{\n\t\t\tname: 'trading-account-store', // unique name\n\t\t\tstorage: createJSONStorage(() => localStorage),\n\t\t}\n\t)\n);\n\nuseStorageDOMEvents(tradingAccountStore);\n\nexport default createSelectors(tradingAccountStore);\n","import React from 'react';\n\nimport { MarketItem } from '../../../../../gateways/RfpGateway/rfp.types';\n\n// TODO: - Refactor some of the formattedNumber logic. Use a separate component and Number Formatter...\nexport const formattedNumber = (\n\tnum: number | string,\n\tmarketItem: MarketItem | { decPrec: number; marketItemInfo?: any } | undefined | null,\n\tisSpreadBettingAccount: boolean,\n\torder?: any,\n\tgridChartMenu?: any,\n\tlang?: string,\n\tinstrumentColorTradeBoard?: string\n) => {\n\tconst decPrec = marketItem?.decPrec ?? 0;\n\n\tconst str = (+num).toFixed(decPrec).toString();\n\tconst language = lang ?? localStorage.getItem('language') ?? 'en';\n\n\t// Styling of span elements\n\tconst spanElementStyles = {\n\t\torderTicketBigSymbol: { fontSize: 24, fontWeight: 'bold' },\n\t\torderTicketSmallSymbol: {},\n\t\tgridChartMenuBigSymbol: { fontSize: 20, display: 'inline-block', width: 11.5 },\n\t\tgridChartMenuSmallSymbol: { display: 'inline-block', width: 8 },\n\t\tgridChartMenuDot: { display: 'inline-block', width: 4 },\n\t\twatchlistBigSymbolLongNumber: instrumentColorTradeBoard\n\t\t\t? { fontSize: 28, color: instrumentColorTradeBoard }\n\t\t\t: { fontSize: 14 },\n\t\twatchlistBigSymbolShortNumber: instrumentColorTradeBoard\n\t\t\t? { fontSize: 30, color: instrumentColorTradeBoard }\n\t\t\t: { fontSize: 19 },\n\t\twatchlistSmallSymbolLongNumber: instrumentColorTradeBoard\n\t\t\t? { fontSize: 18, color: instrumentColorTradeBoard }\n\t\t\t: { fontSize: 11 },\n\t\twatchlistSmallSymbolShortNumber: instrumentColorTradeBoard\n\t\t\t? { fontSize: 20, color: instrumentColorTradeBoard }\n\t\t\t: {},\n\t};\n\n\t// Maximum length for short bid/ask numbers used to apply different styling for bigger numbers\n\tconst maxBidAskNumberLength = 7;\n\n\t//Get comma or dot depending on how the number separates int from decimals\n\t//Need to get country specific separators so whole numbers are not defaulting to period on line 21\n\tconst separatorIndex = str.lastIndexOf('.' || ',');\n\tconst separator = isCommaSeparator(language) ? ',' : '.';\n\tconst numArray = str.split('');\n\n\tconst decimalFormat = (firstNum: number, secondNum: number) => {\n\t\tlet formattedArr: any = [];\n\t\tfor (let i = 0; i <= numArray.length; i++) {\n\t\t\tif (firstNum === i || secondNum === i) {\n\t\t\t\tformattedArr.push(\n\t\t\t\t\t maxBidAskNumberLength\n\t\t\t\t\t\t\t\t\t? spanElementStyles.watchlistBigSymbolLongNumber\n\t\t\t\t\t\t\t\t\t: spanElementStyles.watchlistBigSymbolShortNumber))\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{numArray[i]}\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tlet value = numArray[i];\n\t\t\t\tif (isCommaSeparator(language) && value === '.') {\n\t\t\t\t\tvalue = ',';\n\t\t\t\t}\n\t\t\t\tformattedArr.push(\n\t\t\t\t\t maxBidAskNumberLength\n\t\t\t\t\t\t\t\t\t? spanElementStyles.watchlistSmallSymbolLongNumber\n\t\t\t\t\t\t\t\t\t: spanElementStyles.watchlistSmallSymbolShortNumber))\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{value}\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t///Add commas\n\t\tlet numDecimals = 0;\n\t\tif (separatorIndex > 3) {\n\t\t\tlet numPastDecimal = 0;\n\t\t\tfor (let i = 0; i < separatorIndex; i++) {\n\t\t\t\tconst thirdDigit = separatorIndex - numPastDecimal === 3 - numDecimals;\n\t\t\t\tif (thirdDigit) {\n\t\t\t\t\tformattedArr.splice(\n\t\t\t\t\t\ti,\n\t\t\t\t\t\t0,\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{separator === '.' ? ',' : '.'}\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t\tnumPastDecimal = 0;\n\t\t\t\t\tnumDecimals++;\n\t\t\t\t} else {\n\t\t\t\t\tnumPastDecimal++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn gridChartMenu && language === 'ar-SA' ? (\n\t\t\t
{formattedArr}
\n\t\t) : (\n\t\t\t
{formattedArr}
\n\t\t);\n\t};\n\n\tlet start;\n\tlet addedLength = 0;\n\n\tif (marketItem?.marketItemInfo) {\n\t\tstart = separatorIndex + +marketItem.marketItemInfo.formatPosition;\n\t\taddedLength = +marketItem.marketItemInfo.formatLength - 1;\n\t} else if (isSpreadBettingAccount) {\n\t\tstart = separatorIndex + (decPrec <= 3 ? 1 : 3);\n\t\tif (decPrec > 1) {\n\t\t\tstart++;\n\t\t}\n\t} else {\n\t\tstart = separatorIndex + (decPrec <= 3 ? 1 : 3);\n\t\taddedLength = decPrec === 1 ? 0 : 1;\n\t}\n\n\treturn decimalFormat(start, start + addedLength);\n};\n\nexport const formatNumberWithCommas = (num: number | string, decPrec: number, language: string) => {\n\treturn language ? localizeNumber(+num, decPrec, language) : num.toString();\n};\n\nexport const localizeNumber = (num: number, decPrec: number, language: string) => {\n\tif (language === 'ar-SA') language = 'en';\n\treturn new Intl.NumberFormat(language ?? 'en-US', { minimumFractionDigits: decPrec }).format(+num.toFixed(decPrec));\n};\n\nexport const isCommaSeparator = (language: string) => {\n\treturn ['de', 'vi', 'pt-BR', 'it', 'es'].includes(language);\n};\n\nexport const localizeDecimalSeparator = (value: string, language: string) => {\n\treturn isCommaSeparator(language) ? value.replace('.', ',') : value;\n};\n\nexport const replaceAllThousandSeparators = (value: string, language?: string) => {\n\tlanguage = language ? language : localStorage.getItem('language') ?? 'en';\n\tconst separator = isCommaSeparator(language) ? '.' : ',';\n\treturn value.replaceAll(separator, '');\n};\n\nexport const revertToTraditionalNumberFormat = (value: string, language: string) => {\n\tconst separator = isCommaSeparator(language) ? '.' : ',';\n\tvalue = value.replaceAll(separator, '');\n\treturn isCommaSeparator(language) ? value.replace(',', '.') : value;\n};\n","import { useEffect, useRef } from 'react';\nimport { Optional } from '../functions/Nullable';\nimport { Subscription, Observable } from '../functions/Observables';\n\ntype TSubscriptionHandler =\n\t| ((value: T) => void)\n\t| {\n\t\t\tonNext: (value: T) => void;\n\t\t\tonError?: (error: any) => void;\n\t\t\tonComplete?: () => void;\n\t };\n\nclass Hooks {\n\tpublic static useObservable(\n\t\tobservable: Observable,\n\t\tsubscriptionHandler: TSubscriptionHandler\n\t): Subscription;\n\tpublic static useObservable(\n\t\tobservable: Observable,\n\t\tsubscriptionHandler: TSubscriptionHandler,\n\t\tdependencies: any[]\n\t): Subscription;\n\tpublic static useObservable(\n\t\tobservable: Observable,\n\t\tsubscriptionHandler: TSubscriptionHandler,\n\t\tdependencies?: Optional\n\t): Subscription {\n\t\tconst subscriptionRef = useRef>>();\n\t\tif (subscriptionRef.current == null) {\n\t\t\tsubscriptionRef.current =\n\t\t\t\ttypeof subscriptionHandler === 'function'\n\t\t\t\t\t? observable.subscribe(subscriptionHandler)\n\t\t\t\t\t: observable.subscribe(\n\t\t\t\t\t\t\tsubscriptionHandler.onNext,\n\t\t\t\t\t\t\tsubscriptionHandler.onError,\n\t\t\t\t\t\t\tsubscriptionHandler.onComplete\n\t\t\t\t\t );\n\t\t}\n\t\tuseEffect(() => {\n\t\t\tif (subscriptionRef.current == null) {\n\t\t\t\tsubscriptionRef.current =\n\t\t\t\t\ttypeof subscriptionHandler === 'function'\n\t\t\t\t\t\t? observable.subscribe(subscriptionHandler)\n\t\t\t\t\t\t: observable.subscribe(\n\t\t\t\t\t\t\t\tsubscriptionHandler.onNext,\n\t\t\t\t\t\t\t\tsubscriptionHandler.onError,\n\t\t\t\t\t\t\t\tsubscriptionHandler.onComplete\n\t\t\t\t\t\t );\n\t\t\t}\n\t\t\treturn () => {\n\t\t\t\tif (subscriptionRef.current != null) {\n\t\t\t\t\tsubscriptionRef.current.unsubscribe();\n\t\t\t\t\tsubscriptionRef.current = null;\n\t\t\t\t}\n\t\t\t};\n\t\t}, dependencies || []);\n\n\t\treturn subscriptionRef.current!;\n\t}\n}\n\nexport default Hooks.useObservable;\n","interface IRoutes {\n\taccount: {\n\t\tlogin: string;\n\t\temailVerification: string;\n\t\tforgotPassword: string;\n\t\tregistered: string;\n\t\ttwoFactorAuthentication: string;\n\t\tsso: string;\n\t\tmobile: string;\n\t\tagreeToTermsAndConditions: string;\n\t};\n\ttrader: {\n\t\ttradersGym: string;\n\t\tcharts: string;\n\t\tfeedback: string;\n\t\tmarkets: string;\n\t\tsettings: string;\n\t\twatchlist: string;\n\t\tdetached: string;\n\t\tguide: string;\n\t\topenAccount: string;\n\t\tuploadDocuments: string;\n\t\tfunds: string;\n\t\tstatus: string;\n\t\treports: string;\n\t\tcalendar: string;\n\t\tsignals: string;\n\t\ttutorials: string;\n\t};\n\terror: string;\n\tnewWindow: string;\n}\n\nexport const webTraderPath = '/web-trader';\nexport const accountPath = '/account';\nexport const webTraderDetachedPath = `${webTraderPath}/detached`;\n\nconst Routes: IRoutes = {\n\taccount: {\n\t\tlogin: `${accountPath}/login`,\n\t\temailVerification: `${accountPath}/email-verification`,\n\t\tforgotPassword: `${accountPath}/forgotpassword`,\n\t\tregistered: `${accountPath}/registered`,\n\t\ttwoFactorAuthentication: `${accountPath}/2fa`,\n\t\tsso: `${accountPath}/sso`,\n\t\tmobile: `${accountPath}/mobile`,\n\t\tagreeToTermsAndConditions: `${accountPath}/agreement`,\n\t},\n\ttrader: {\n\t\ttradersGym: `${webTraderPath}/gym`,\n\t\tcharts: `${webTraderPath}/charts`,\n\t\tfeedback: `${webTraderPath}/feedback`,\n\t\tmarkets: `${webTraderPath}/markets`,\n\t\tcalendar: `${webTraderPath}/calendar`,\n\t\tsettings: `${webTraderPath}/settings`,\n\t\twatchlist: `${webTraderPath}/watchlist`,\n\t\tdetached: webTraderDetachedPath,\n\t\tguide: `${webTraderPath}/guide`,\n\t\topenAccount: `${webTraderPath}/open-account`,\n\t\tuploadDocuments: `${webTraderPath}/funds`,\n\t\tfunds: `${webTraderPath}/funds`,\n\t\tstatus: `${webTraderPath}/funds/status`,\n\t\treports: `${webTraderPath}/reports`,\n\t\tsignals: `${webTraderPath}/signals`,\n\t\ttutorials: `${webTraderPath}/tutorials`,\n\t},\n\terror: '/error',\n\tnewWindow: '/new-window',\n};\n\nexport const DETACHED_SUB_ROUTES = {\n\tCharts: `${webTraderDetachedPath}/charts`,\n\tTrade: `${webTraderDetachedPath}/trade`,\n\tOneClickTrade: `${webTraderDetachedPath}/one-click-trade`,\n\tPositions: `${webTraderDetachedPath}/positions`,\n};\n\nexport default Routes;\n","import { TWatchlistInstrument, TWatchlists } from '../../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\nimport { MarketItem } from '../../gateways/RfpGateway/rfp.types';\nimport { DefaultWatchList, WatchListItem } from '../../contexts/DashboardContext';\nimport { WatchListData } from '../../store/WatchListStore/watchListStore';\n\nconst commonFxSymbols: string[] = [];\n\nexport const MAX_WATCHLISTS_ALLOWED = 20;\nexport let MAX_INSTRUMENTS_ALLOWED = 50;\nexport let MAX_INSTRUMENTS_ALLOWED_JP = 100;\n\nexport const DEFAULT_FEED_ID = 'VTFeed';\n\nexport const WATCHLIST_SORT_ORDER = {\n\tNONE: 'None',\n\tASCENDING: 'Ascending',\n\tDESCENDING: 'Descending',\n} as const;\n\nexport const WATCHLIST_SORT_VALUE = {\n\tINSTRUMENT: 'Instrument',\n\tCODE: 'Code',\n\tCHANGE: 'Change',\n\tLAST_PRICE: 'LastPrice',\n} as const;\n\nexport type WatchlistSortOrder = (typeof WATCHLIST_SORT_ORDER)[keyof typeof WATCHLIST_SORT_ORDER];\nexport type WatchlistSortValue = (typeof WATCHLIST_SORT_VALUE)[keyof typeof WATCHLIST_SORT_VALUE];\n\nexport const convertTWatchlistsToWatchListData = (watchlists: TWatchlists[]) => {\n\treturn watchlists.map((watchlist) => {\n\t\tconst marketItems = watchlist.instrument.map((watchlist) => {\n\t\t\treturn watchlist._code;\n\t\t});\n\t\treturn {\n\t\t\tid: watchlist._id,\n\t\t\tname: watchlist._name,\n\t\t\tfeedId: watchlist._feedId,\n\t\t\tsortOrder: watchlist._sortOrder,\n\t\t\tsortValue: watchlist._sortValue,\n\t\t\tinstruments: marketItems,\n\t\t} as WatchListData;\n\t});\n};\n\nexport const getDefaultJapanWatchlists = (preferredFeedId: string, marketItems: MarketItem[]): TWatchlists[] => {\n\tconst numTiers = 3;\n\tconst japanWatchlists: Record = {};\n\tfor (let i = 1; i <= numTiers; i++) {\n\t\tjapanWatchlists[`tier${i}`] = [];\n\t}\n\n\tfor (const element of marketItems) {\n\t\tif (typeof element.minTier !== 'undefined' && element.minTier !== null) {\n\t\t\t// loop from each instrument's minTier to max number of tiers defined\n\t\t\t// to make sure higher tiers include instruments from lower tiers\n\t\t\tfor (let tierNum = element.minTier; tierNum <= numTiers; tierNum++) {\n\t\t\t\tjapanWatchlists[`tier${tierNum}`].push({ _code: element.code, _rank: element.watchlistRank });\n\t\t\t}\n\t\t}\n\t}\n\n\tObject.keys(japanWatchlists).forEach((tierKey) => {\n\t\t// finally, sort instruments inside each watchlist by rank\n\t\tjapanWatchlists[tierKey].sort((a: TWatchlistInstrument, b: TWatchlistInstrument) => (a._rank < b._rank ? -1 : 1));\n\t});\n\n\tlet result: TWatchlists[] = [];\n\n\tObject.keys(japanWatchlists).forEach((tierKey) => {\n\t\tresult.push({\n\t\t\tinstrument: japanWatchlists[tierKey],\n\t\t\t_feedId: preferredFeedId,\n\t\t\t_id: `Tier ${tierKey.slice(-1)}`,\n\t\t\t_name: `Tier ${tierKey.slice(-1)}`,\n\t\t\t_sortOrder: 'None',\n\t\t\t_sortValue: 'Instrument',\n\t\t});\n\t});\n\n\treturn result;\n};\n\nexport const getDefaultCFDWatchlist = (\n\tmarketItems: MarketItem[],\n\tisSpreadBettingWatchlist = false,\n\tisJapanSpreadWatchlist = false\n) => {\n\tlet fXSymbols = commonFxSymbols;\n\n\tif (isSpreadBettingWatchlist) {\n\t\tfXSymbols = spreadBettingFxSymbols;\n\t} else if (isJapanSpreadWatchlist) {\n\t\tfXSymbols = japanSpreadFxSymbols;\n\t}\n\n\tlet defaultArray: TWatchlistInstrument[] = [];\n\tfXSymbols.forEach((symbol: string) => {\n\t\tmarketItems.forEach((marketItem) => {\n\t\t\tif (marketItem.code === symbol) {\n\t\t\t\tlet newInstrumentEntry = { _code: marketItem.code };\n\t\t\t\tdefaultArray.push(newInstrumentEntry);\n\t\t\t}\n\t\t});\n\t});\n\n\treturn defaultArray;\n};\n\nexport const defaultWatchlistPreference = (\n\tpreferredFeedId: string,\n\tmarketItems: MarketItem[],\n\ttranslatedName: string,\n\tisSpreadBettingWatchlist: boolean,\n\tisJapanSpreadWatchlist: boolean\n): TWatchlists => {\n\treturn {\n\t\tinstrument: getDefaultCFDWatchlist(marketItems, isSpreadBettingWatchlist, isJapanSpreadWatchlist),\n\t\t_feedId: preferredFeedId,\n\t\t_id: translatedName,\n\t\t_name: translatedName,\n\t\t_sortOrder: 'None',\n\t\t_sortValue: 'Instrument',\n\t};\n};\n\nconst defineSortOrder = (order: number): WatchlistSortOrder => {\n\tswitch (order) {\n\t\tcase 1:\n\t\t\treturn 'Ascending';\n\t\tcase 2:\n\t\t\treturn 'Descending';\n\t\tdefault:\n\t\t\treturn 'None';\n\t}\n};\n\nexport const createNewWatchlist = (name: string, feedId: string, instruments?: TWatchlistInstrument[]): TWatchlists => {\n\treturn {\n\t\tinstrument: instruments || [],\n\t\t_feedId: feedId,\n\t\t_id: name,\n\t\t_name: name,\n\t\t_sortOrder: WATCHLIST_SORT_ORDER.NONE,\n\t\t_sortValue: WATCHLIST_SORT_VALUE.INSTRUMENT,\n\t};\n};\nexport const dynamicWatchlistPreference = (\n\tpreferredFeedId: string,\n\ttranslatedName: string,\n\tinstrument: any,\n\torder: number\n): TWatchlists => {\n\treturn {\n\t\tinstrument: instrument,\n\t\t_feedId: preferredFeedId,\n\t\t_id: translatedName,\n\t\t_name: translatedName,\n\t\t_sortOrder: defineSortOrder(order),\n\t\t_sortValue: WATCHLIST_SORT_VALUE.INSTRUMENT,\n\t};\n};\n\nexport const instrumentExistsInDynamicWatchlists = (\n\tname: string,\n\twatchlists: DefaultWatchList[],\n\tisSpreadBettingAccount: boolean\n): boolean => {\n\tlet result = false;\n\tif (watchlists.length > 0 && !isSpreadBettingAccount) {\n\t\twatchlists.forEach((watchList) => {\n\t\t\tif (!!watchList.items.find((item: WatchListItem) => item.title === name)) result = true;\n\t\t});\n\t}\n\treturn result;\n};\n\nconst spreadBettingFxSymbols = [\n\t'UK100_SB',\n\t'GER40_SB',\n\t'NAS100_SB',\n\t'US30_SB',\n\t'SPX500_SB',\n\t'JPN225_SB',\n\t'GBPUSD_SB',\n\t'EURUSD_SB',\n\t'USDJPY_SB',\n\t'XAUUSD_SB',\n\t'WTI_SB',\n];\n\nexport const japanSpreadWatchlistName = 'デフォルト(全通貨ペア)';\nconst japanSpreadFxSymbols: string[] = [\n\t'USDJPY',\n\t'EURUSD',\n\t'EURJPY',\n\t'AUDJPY',\n\t'GBPJPY',\n\t'NZDJPY',\n\t'CADJPY',\n\t'CHFJPY',\n\t'GBPUSD',\n\t'AUDUSD',\n\t'NZDUSD',\n\t'USDCAD',\n\t'USDCHF',\n\t'EURGBP',\n\t'EURAUD',\n\t'EURCAD',\n\t'EURCHF',\n\t'EURNZD',\n\t'GBPAUD',\n\t'GBPCAD',\n\t'GBPCHF',\n\t'GBPNZD',\n\t'AUDCAD',\n\t'AUDCHF',\n\t'AUDNZD',\n\t'CADCHF',\n\t'EURHUF',\n\t'EURSGD',\n\t'GBPHUF',\n\t'NZDCAD',\n\t'NZDCHF',\n\t'USDHUF',\n\t'USDMXN',\n\t'USDPLN',\n\t'USDSGD',\n\t'USDZAR',\n\t'EURMXN',\n\t'MXNJPY',\n\t'ZARJPY',\n\t'USDCNH',\n\t'AUDCNH',\n\t'AUDSGD',\n\t'CNHJPY',\n\t'EURCNH',\n\t'GBPCNH',\n\t'NZDSGD',\n\t'SGDJPY',\n\t'EURNOK',\n\t'EURSEK',\n\t'USDNOK',\n\t'USDSEK',\n\t'CHFSEK',\n\t'GBPNOK',\n\t'GBPSEK',\n\t'GBPSGD',\n\t'NOKJPY',\n\t'NZDCNH',\n\t'EURCZK',\n\t'EURPLN',\n\t'EURZAR',\n\t'GBPZAR',\n\t'USDHKD',\n\t'EURDKK',\n\t'EURHKD',\n\t'GBPCZK',\n\t'GBPDKK',\n\t'GBPPLN',\n\t'NOKSEK',\n\t'USDCZK',\n\t'USDDKK',\n];\n","import { immer } from 'zustand/middleware/immer';\nimport { createJSONStorage, persist } from 'zustand/middleware';\n\nimport { create } from '../create';\nimport createSelectors from '../createSelectors';\nimport { TradingMode } from '../../gateways/RfpGateway/rfp.types';\nimport {\n\tDEFAULT_FEED_ID,\n\tWATCHLIST_SORT_ORDER,\n\tWATCHLIST_SORT_VALUE,\n\tWatchlistSortOrder,\n\tWatchlistSortValue,\n} from '../../utils/functions/WatchlistUtils';\nimport { useStorageDOMEvents } from '../../utils/hooks/useStorageDOMEvents';\n\nexport interface WatchListData {\n\tid: string;\n\tname: string;\n\tfeedId: string;\n\tsortOrder: WatchlistSortOrder;\n\tsortValue: WatchlistSortValue;\n\tinstruments: string[];\n}\n\ninterface WatchListStoreActions {\n\tgetCurrentWatchList: (isChildWindow: boolean) => string;\n\tsetCurrentWatchList: (currentWatchList: any, isChildWindow: boolean) => void;\n\tisWatchlistNameExists: (tradingMode: TradingMode, name: string) => boolean;\n\thasWatchlists: (tradingMode: TradingMode) => boolean;\n\n\taddEmptyWatchlist: (tradingMode: TradingMode, name: string) => void;\n\taddWatchlist: (tradingMode: TradingMode, data: WatchListData) => void;\n\tgetSelectedWatchlist: (tradingMode: TradingMode, isChildWindow: boolean) => WatchListData | null;\n\tgetWatchlist: (tradingMode: TradingMode, name: string) => WatchListData | null;\n\tgetWatchlists: (tradingMode: TradingMode) => WatchListData[] | null;\n\tgetWatchlistsContainsInstrument: (tradingMode: TradingMode, instrument: string) => WatchListData[] | null;\n\tsetWatchlists: (tradingMode: TradingMode, watchlists: WatchListData[]) => void;\n\tsetWatchlistsForAllTradingModes: (watchlists: WatchListData[]) => void;\n\tsetSortOrder: (tradingMode: TradingMode, name: string, sortOrder: WatchlistSortOrder) => void;\n\tremoveWatchlist: (tradingMode: TradingMode, name: string) => void;\n\taddInstruments: (tradingMode: TradingMode, name: string, instruments: string[]) => void;\n\tsetInstruments: (tradingMode: TradingMode, name: string, instruments: string[]) => void;\n\treorderWatchlistInstruments: (tradingMode: TradingMode, name: string, fromIndex: number, toIndex: number) => void;\n\tremoveInstruments: (tradingMode: TradingMode, name: string, instruments: string[]) => void;\n\tremoveAllInstruments: (tradingMode: TradingMode, name: string) => void;\n\tmoveInstruments: (\n\t\ttradingMode: TradingMode,\n\t\tfromWatchlist: string,\n\t\tdestinationWatchlist: string,\n\t\tinstruments: string[]\n\t) => void;\n\tisInstrumentExistsInWatchlist: (tradingMode: TradingMode, name: string, instrument: string) => boolean;\n\tisInstrumentExistsInAnyWatchlist: (tradingMode: TradingMode, instrument: string) => boolean;\n\twatchlistsCount: (tradingMode: TradingMode) => number;\n\twatchlistInstrumentCount: (tradingMode: TradingMode, name: string) => number;\n\tgetWatchlistInstruments: (tradingMode: TradingMode, name: string) => string[];\n\trenameWatchlist: (tradingMode: TradingMode, oldName: string, newName: string) => void;\n\tremoveAllWatchlists: () => void;\n\treset: () => void;\n\tsetShowWatchListPanel: (show: boolean) => void;\n}\n\nexport interface WatchListStoreValues {\n\tcurrentWatchList: string;\n\tshowWatchListPanel: boolean;\n\tchildWatchlistName: string;\n\t// key is trading mode and value is array of watchlist items\n\twatchlists: { [key: string]: WatchListData[] };\n}\n\nexport const initialStateWatchListStore: WatchListStoreValues = {\n\tcurrentWatchList: '',\n\tchildWatchlistName: '',\n\twatchlists: {},\n\tshowWatchListPanel: true,\n};\n\nexport type WatchListStore = WatchListStoreValues & WatchListStoreActions;\n\nconst watchListStore = create()(\n\tpersist(\n\t\timmer((set: any, get: any) => ({\n\t\t\t...initialStateWatchListStore,\n\n\t\t\tgetCurrentWatchList: (isChildWindow) => {\n\t\t\t\tconst { childWatchlistName, currentWatchList } = get();\n\t\t\t\treturn isChildWindow && childWatchlistName.length > 0 ? childWatchlistName : currentWatchList;\n\t\t\t},\n\n\t\t\tsetCurrentWatchList: (currentWatchList, isChildWindow) => {\n\t\t\t\tset({\n\t\t\t\t\t[isChildWindow ? 'childWatchlistName' : 'currentWatchList']: currentWatchList,\n\t\t\t\t});\n\t\t\t},\n\n\t\t\twatchlistsCount: (tradingMode) => {\n\t\t\t\tconst watchlists = get().watchlists[tradingMode];\n\t\t\t\treturn watchlists ? watchlists.length : 0;\n\t\t\t},\n\n\t\t\twatchlistInstrumentCount: (tradingMode, name) => {\n\t\t\t\tconst watchlist = get().getWatchlist(tradingMode, name);\n\t\t\t\treturn watchlist ? watchlist.instruments.length : 0;\n\t\t\t},\n\n\t\t\tgetWatchlistInstruments: (tradingMode, name) => {\n\t\t\t\tconst watchlist = get().getWatchlist(tradingMode, name);\n\t\t\t\treturn watchlist ? watchlist.instruments : [];\n\t\t\t},\n\n\t\t\tgetWatchlistsContainsInstrument: (tradingMode, instrument) => {\n\t\t\t\tconst watchlists = get().watchlists[tradingMode];\n\t\t\t\tif (watchlists) {\n\t\t\t\t\treturn watchlists.filter((watchlist: WatchListData) => watchlist.instruments.includes(instrument));\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t},\n\n\t\t\thasWatchlists: (tradingMode) => {\n\t\t\t\tconst watchlists = get().watchlists[tradingMode];\n\t\t\t\treturn watchlists;\n\t\t\t},\n\n\t\t\tisWatchlistNameExists: (tradingMode, name) => {\n\t\t\t\treturn get().getWatchlist(tradingMode, name);\n\t\t\t},\n\n\t\t\tgetWatchlist: (tradingMode, name) => {\n\t\t\t\tconst watchlists = get().watchlists[tradingMode];\n\t\t\t\tif (watchlists) {\n\t\t\t\t\treturn watchlists.find((watchlist: WatchListData) => watchlist.name === name);\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t},\n\n\t\t\tgetWatchlists: (tradingMode) => {\n\t\t\t\treturn get().watchlists[tradingMode];\n\t\t\t},\n\n\t\t\tgetSelectedWatchlist: (tradingMode, isChildWindow) => {\n\t\t\t\treturn get().getWatchlist(tradingMode, get().getCurrentWatchList(isChildWindow));\n\t\t\t},\n\n\t\t\taddEmptyWatchlist: (tradingMode, name) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\tconst watchlists = state.watchlists[tradingMode] || [];\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {\n\t\t\t\t\t\t\t...state.watchlists,\n\t\t\t\t\t\t\t[tradingMode]: [\n\t\t\t\t\t\t\t\t...watchlists,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tid: name,\n\t\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\t\tfeedId: DEFAULT_FEED_ID,\n\t\t\t\t\t\t\t\t\tsortOrder: WATCHLIST_SORT_ORDER.NONE,\n\t\t\t\t\t\t\t\t\tsortValue: WATCHLIST_SORT_VALUE.INSTRUMENT,\n\t\t\t\t\t\t\t\t\tinstruments: [],\n\t\t\t\t\t\t\t\t} as WatchListData,\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\taddWatchlist: (tradingMode, data) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\tconst watchlists = state.watchlists[tradingMode] || [];\n\t\t\t\t\tconst uniqueWatchlists = [...watchlists, data].filter(\n\t\t\t\t\t\t(watchlist, index, self) => index === self.findIndex((w) => w.id === watchlist.id)\n\t\t\t\t\t);\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {\n\t\t\t\t\t\t\t...state.watchlists,\n\t\t\t\t\t\t\t[tradingMode]: uniqueWatchlists,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\tsetWatchlists: (tradingMode, watchlists) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\t// TODO add watchlist orders logic\n\t\t\t\t\tconst uniqueWatchlists = watchlists.filter(\n\t\t\t\t\t\t(watchlist, index, self) => index === self.findIndex((w) => w.id === watchlist.id)\n\t\t\t\t\t);\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {\n\t\t\t\t\t\t\t...state.watchlists,\n\t\t\t\t\t\t\t[tradingMode]: uniqueWatchlists,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\tsetWatchlistsForAllTradingModes: (watchlists) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\tconst uniqueWatchlists = watchlists.filter(\n\t\t\t\t\t\t(watchlist, index, self) => index === self.findIndex((w) => w.id === watchlist.id)\n\t\t\t\t\t);\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {\n\t\t\t\t\t\t\tLIVE: uniqueWatchlists,\n\t\t\t\t\t\t\tDEMO: uniqueWatchlists,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\tremoveWatchlist: (tradingMode, name) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\tconst watchlists = state.watchlists[tradingMode].filter((item) => item.name !== name);\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {\n\t\t\t\t\t\t\t...state.watchlists,\n\t\t\t\t\t\t\t[tradingMode]: watchlists,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\tsetSortOrder: (tradingMode, name, sortOrder) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\tconst watchlists = state.watchlists[tradingMode].map((item) => {\n\t\t\t\t\t\tif (item.name === name) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...item,\n\t\t\t\t\t\t\t\tsortOrder,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn item;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {\n\t\t\t\t\t\t\t...state.watchlists,\n\t\t\t\t\t\t\t[tradingMode]: watchlists,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\taddInstruments: (tradingMode, name, instruments) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\tconst watchlists = state.watchlists[tradingMode].map((item) => {\n\t\t\t\t\t\tif (item.name === name) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...item,\n\t\t\t\t\t\t\t\tinstruments: item.instruments.concat(instruments),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn item;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {\n\t\t\t\t\t\t\t...state.watchlists,\n\t\t\t\t\t\t\t[tradingMode]: watchlists,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\tsetInstruments: (tradingMode, name, instruments) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\tconst watchlists = state.watchlists[tradingMode].map((item) => {\n\t\t\t\t\t\tif (item.name === name) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...item,\n\t\t\t\t\t\t\t\tinstruments,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn item;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {\n\t\t\t\t\t\t\t...state.watchlists,\n\t\t\t\t\t\t\t[tradingMode]: watchlists,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\treorderWatchlistInstruments: (tradingMode, name, fromIndex, toIndex) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\tconst watchlists = state.watchlists[tradingMode].map((item) => {\n\t\t\t\t\t\tif (item.name === name) {\n\t\t\t\t\t\t\tconst instruments = item.instruments.slice();\n\t\t\t\t\t\t\tconst [removed] = instruments.splice(fromIndex, 1);\n\t\t\t\t\t\t\tinstruments.splice(toIndex, 0, removed);\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...item,\n\t\t\t\t\t\t\t\tinstruments,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn item;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {\n\t\t\t\t\t\t\t...state.watchlists,\n\t\t\t\t\t\t\t[tradingMode]: watchlists,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\tremoveInstruments: (tradingMode, name, instruments) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\tconst watchlists = state.watchlists[tradingMode].map((item) => {\n\t\t\t\t\t\tif (item.name === name) {\n\t\t\t\t\t\t\tconst filteredInstruments = item.instruments.filter(\n\t\t\t\t\t\t\t\t(inst) => !instruments.some((instrument) => instrument === inst)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...item,\n\t\t\t\t\t\t\t\tinstruments: filteredInstruments,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn item;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {\n\t\t\t\t\t\t\t...state.watchlists,\n\t\t\t\t\t\t\t[tradingMode]: watchlists,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\tremoveAllInstruments: (tradingMode, name) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\tconst watchlists = state.watchlists[tradingMode].map((item) => {\n\t\t\t\t\t\tif (item.name === name) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...item,\n\t\t\t\t\t\t\t\tinstruments: [],\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn item;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {\n\t\t\t\t\t\t\t...state.watchlists,\n\t\t\t\t\t\t\t[tradingMode]: watchlists,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\tmoveInstruments: (tradingMode, fromWatchlist, destinationWatchlist, instruments) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\tconst watchlists = state.watchlists[tradingMode].map((item) => {\n\t\t\t\t\t\tif (item.name === fromWatchlist) {\n\t\t\t\t\t\t\tconst fromWatchlistInstruments = item.instruments.filter(\n\t\t\t\t\t\t\t\t(inst) => !instruments.some((instrument) => instrument === inst)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...item,\n\t\t\t\t\t\t\t\tinstruments: fromWatchlistInstruments,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (item.name === destinationWatchlist) {\n\t\t\t\t\t\t\tconst destinationWatchlistInstruments = item.instruments.concat(instruments);\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...item,\n\t\t\t\t\t\t\t\tinstruments: destinationWatchlistInstruments,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn item;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {\n\t\t\t\t\t\t\t...state.watchlists,\n\t\t\t\t\t\t\t[tradingMode]: watchlists,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\tisInstrumentExistsInWatchlist: (tradingMode, name, instrument) => {\n\t\t\t\tconst watchlist = get().getWatchlist(tradingMode, name);\n\t\t\t\treturn watchlist ? watchlist.instruments.includes(instrument) : false;\n\t\t\t},\n\t\t\tisInstrumentExistsInAnyWatchlist: (tradingMode, instrument) => {\n\t\t\t\tconst watchlists = get().watchlists[tradingMode];\n\t\t\t\tif (watchlists) {\n\t\t\t\t\treturn watchlists.some((watchlist: WatchListData) => watchlist.instruments.includes(instrument));\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\trenameWatchlist: (tradingMode, oldName, newName) => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\tconst watchlists = state.watchlists[tradingMode].map((item) => {\n\t\t\t\t\t\tif (item.name === oldName) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...item,\n\t\t\t\t\t\t\t\tid: newName,\n\t\t\t\t\t\t\t\tname: newName,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn item;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {\n\t\t\t\t\t\t\t...state.watchlists,\n\t\t\t\t\t\t\t[tradingMode]: watchlists,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\tremoveAllWatchlists: () => {\n\t\t\t\tset((state: WatchListStore) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\twatchlists: {},\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t\treset: () => set({ ...initialStateWatchListStore }),\n\n\t\t\tsetShowWatchListPanel: (show: boolean) =>\n\t\t\t\tset({\n\t\t\t\t\tshowWatchListPanel: show,\n\t\t\t\t}),\n\t\t})),\n\t\t{\n\t\t\tname: 'watchlist-store', // unique name\n\t\t\tpartialize: (state) => ({\n\t\t\t\tcurrentWatchList: state.currentWatchList,\n\t\t\t\twatchlists: state.watchlists,\n\t\t\t\tshowWatchListPanel: state.showWatchListPanel,\n\t\t\t\t// Exclude `childWatchlistName` from being persisted\n\t\t\t}),\n\t\t\tstorage: createJSONStorage(() => localStorage),\n\t\t}\n\t)\n);\n\nuseStorageDOMEvents(watchListStore);\n\nexport default createSelectors(watchListStore);\n","import { useState, useEffect, useRef } from 'react';\n\nexport default function useForceRerender(): () => void {\n\tconst mounted = useRef(false);\n\tconst [, setValue] = useState(Date.now());\n\n\tuseEffect(() => {\n\t\tmounted.current = true;\n\n\t\treturn () => {\n\t\t\tmounted.current = false;\n\t\t};\n\t}, []);\n\n\treturn () => {\n\t\tif (mounted.current) {\n\t\t\tsetValue(Date.now());\n\t\t}\n\t};\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"MarketTickerContainer\":\"WatchList_MarketTickerContainer__aow-r\",\"costInput\":\"WatchList_costInput__2V2aM\",\"modifyInput\":\"WatchList_modifyInput__1w9SB\",\"modifyErrorInput\":\"WatchList_modifyErrorInput__1psSQ\",\"container\":\"WatchList_container__3LS-6\",\"containerFluid\":\"WatchList_containerFluid__28woq\",\"instrumentBox\":\"WatchList_instrumentBox__1fJ6h\",\"emptyContainer\":\"WatchList_emptyContainer__2zLal\",\"iconC\":\"WatchList_iconC__2UkLj\",\"emptyWindowContainer\":\"WatchList_emptyWindowContainer__2kduN\",\"editIcon\":\"WatchList_editIcon__MKXlF\",\"iconWrapper\":\"WatchList_iconWrapper__1nlUZ\",\"header\":\"WatchList_header__1hCgB\",\"headerDynamic\":\"WatchList_headerDynamic__288s1\",\"windowHeader\":\"WatchList_windowHeader__MGjlY\",\"Title\":\"WatchList_Title__2kPiI\",\"openModalTitle\":\"WatchList_openModalTitle__1LK4W\",\"lightTitle\":\"WatchList_lightTitle__1JBeL\",\"darkTitle\":\"WatchList_darkTitle__1y4z3\",\"instrumentTitle\":\"WatchList_instrumentTitle__2qXkM\",\"emptyTitle\":\"WatchList_emptyTitle__1jtL8\",\"instrumentsContainer\":\"WatchList_instrumentsContainer__B4H7h\",\"notSticky\":\"WatchList_notSticky__34SvH\",\"SearchInputContainer\":\"WatchList_SearchInputContainer__1yyCH\",\"windowSearchInputContainer\":\"WatchList_windowSearchInputContainer__2ppJI\",\"WatchListCategoriesChildNotification\":\"WatchList_WatchListCategoriesChildNotification__1sR2m\",\"noScrollBar\":\"WatchList_noScrollBar__1m1K8\",\"windowMarketTickerContainer\":\"WatchList_windowMarketTickerContainer__1RVCt\",\"loadingWatchlist\":\"WatchList_loadingWatchlist__1e7Jn\",\"windowPadding\":\"WatchList_windowPadding__1G_y0\",\"addInstrument\":\"WatchList_addInstrument__2EM_f\",\"centeredText\":\"WatchList_centeredText__2hdd7\",\"Popup\":\"WatchList_Popup__3fiTd\",\"watchlistContainer\":\"WatchList_watchlistContainer__KFzBD\",\"PopupContainer\":\"WatchList_PopupContainer__EXZgF\",\"editPopupContainer\":\"WatchList_editPopupContainer__2pBi-\",\"editWindowPopupContainer\":\"WatchList_editWindowPopupContainer__31NYA\",\"watchlistItemsList\":\"WatchList_watchlistItemsList__9Qo3_\",\"editWatchlistItemsList\":\"WatchList_editWatchlistItemsList__1JMyN\",\"watchlistItems\":\"WatchList_watchlistItems__abUG5\",\"otherItems\":\"WatchList_otherItems__13m1k\",\"activeWatchList\":\"WatchList_activeWatchList__1lumj\",\"errorMessage\":\"WatchList_errorMessage__36iam\",\"modifyErrorMessage\":\"WatchList_modifyErrorMessage__2MqFt\",\"btnSave\":\"WatchList_btnSave__2Lu-z\",\"darkCheck\":\"WatchList_darkCheck__2gMLj\",\"lightCheck\":\"WatchList_lightCheck__1N-ZP\",\"selectAllContainer\":\"WatchList_selectAllContainer__2nKNo\",\"disableBtn\":\"WatchList_disableBtn__1fA0s\",\"modifyWatchlist\":\"WatchList_modifyWatchlist__R21tw\",\"modifyInputContainer\":\"WatchList_modifyInputContainer__36obj\",\"modalWatchlist\":\"WatchList_modalWatchlist__Z-OeI\",\"modalRemoveWatchlist\":\"WatchList_modalRemoveWatchlist__S7JEm\",\"removeMessage\":\"WatchList_removeMessage__Ojypw\",\"modalTopHeader\":\"WatchList_modalTopHeader__2bGUd\",\"moveModalHeader\":\"WatchList_moveModalHeader__1sOyZ\",\"modalTitle\":\"WatchList_modalTitle__1S3ka\",\"modalItems\":\"WatchList_modalItems__1D3F_\",\"modifyButton\":\"WatchList_modifyButton__5Isub\",\"title\":\"WatchList_title__39eix\",\"modifyFooter\":\"WatchList_modifyFooter__3ei6y\",\"buttonDiv\":\"WatchList_buttonDiv__3uh_k\",\"inputLimit\":\"WatchList_inputLimit__3qMFR\",\"actionButtons\":\"WatchList_actionButtons__1avPP\",\"closeIcon\":\"WatchList_closeIcon__xiLU4\",\"moveModalTitle\":\"WatchList_moveModalTitle__3S7xK\",\"modalFooter\":\"WatchList_modalFooter__1VA4o\",\"moveWatchlist\":\"WatchList_moveWatchlist__3R8fz\",\"disableButton\":\"WatchList_disableButton__RSGq5\",\"lightStarIcon\":\"WatchList_lightStarIcon__3bZ7h\",\"darkStarIcon\":\"WatchList_darkStarIcon__2Nxn3\",\"addInstrumentContainer\":\"WatchList_addInstrumentContainer__1ONrg\",\"detachWatchlistIcon\":\"WatchList_detachWatchlistIcon__2Nzk-\",\"icon\":\"WatchList_icon___FT4J\",\"addToWatchlistIcon\":\"WatchList_addToWatchlistIcon__gJvXr\",\"headerButtonsWrapper\":\"WatchList_headerButtonsWrapper__TY0Ka\",\"watchlistSearchContainer\":\"WatchList_watchlistSearchContainer__1VC3m\",\"hidden\":\"WatchList_hidden__Ez5Rv\",\"searchContainer\":\"WatchList_searchContainer__7Pakd\",\"searchTitle\":\"WatchList_searchTitle__2AIHp\",\"searchInputContainer\":\"WatchList_searchInputContainer__pZqDS\",\"searchInput\":\"WatchList_searchInput__2haiy\",\"openSearchInput\":\"WatchList_openSearchInput__SnhV2\",\"inputIcon\":\"WatchList_inputIcon__3Z-ZO\",\"deleteIcon\":\"WatchList_deleteIcon__1EkTX\",\"searchResults\":\"WatchList_searchResults__1Br1E\",\"hiddenScroll\":\"WatchList_hiddenScroll__2WGCz\",\"boxSearch\":\"WatchList_boxSearch__1AlXL\",\"modifyWatchlistModalBody\":\"WatchList_modifyWatchlistModalBody__1umop\",\"selectWatchlistIcon\":\"WatchList_selectWatchlistIcon__Z2DU6\",\"addInstrumentIcon\":\"WatchList_addInstrumentIcon__HxH5V\",\"saveButton\":\"WatchList_saveButton__w3V2b\",\"inputContainerText\":\"WatchList_inputContainerText__dxhdS\"};","import React, { useEffect, useState } from 'react';\n\nimport cn from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { IconProp } from '@fortawesome/fontawesome-svg-core';\n\nimport styles from './Button.module.scss';\n\ninterface ButtonProps {\n\tclassName?: string;\n\tlabelClass?: string;\n\tdisabled?: boolean;\n\tlabel: any | undefined;\n\tonClick?: (event: React.MouseEvent) => void;\n\ticon?: IconProp;\n\ticonOnhover?: IconProp;\n\tsize?: 'sm' | 'md' | 'lg' | 'fluid';\n\ttype?: 'submit';\n\tvariant?: 'primary' | 'secondary' | 'tertiary' | 'danger' | 'outline';\n\tsmallFont?: boolean;\n\tisFullWidth?: boolean;\n\tdisabledOnHover?: boolean;\n\tchildren?: React.ReactNode;\n}\n\nconst Button: React.FC = ({\n\tclassName,\n\tlabelClass,\n\tdisabled = false,\n\tlabel,\n\tonClick,\n\ticon,\n\ticonOnhover,\n\tsize = 'md',\n\ttype,\n\tvariant = 'primary',\n\tsmallFont = false,\n\tisFullWidth = false,\n\tchildren,\n\tdisabledOnHover = false,\n}) => {\n\tconst [labelIcon, setLabelIcon] = useState(icon);\n\tuseEffect(() => {\n\t\tsetLabelIcon(icon);\n\t}, [icon]);\n\n\tconst _className = cn(\n\t\tsmallFont ? styles.smallFont : '',\n\t\tclassName,\n\t\tstyles.button,\n\t\tstyles[size],\n\t\tstyles[variant],\n\t\t{\n\t\t\t[styles.disabled]: disabled,\n\t\t\t[styles.outlineDisabled]: disabled && variant === 'outline',\n\t\t},\n\t\tisFullWidth ? styles.fullWidth : ''\n\t);\n\tif (!label) {\n\t\treturn null;\n\t}\n\tconst handleButtonClick = (event: React.MouseEvent) => {\n\t\tif (!disabled && typeof onClick === 'function') {\n\t\t\tonClick(event);\n\t\t}\n\t};\n\n\treturn (\n\t\t {\n\t\t\t\tif (!disabledOnHover) setLabelIcon(iconOnhover);\n\t\t\t}}\n\t\t\tonMouseLeave={() => setLabelIcon(icon)}\n\t\t>\n\t\t\t{labelIcon && }\n\t\t\t\n\t\t\t\t{children}\n\t\t\t\t{label}\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Button;\n","type Consumer = (value: T) => void;\ntype Producer = () => T;\ntype Mapper = (value: T) => U;\ntype Predicate = (value: T) => boolean;\n\nexport type Optional = T | null | undefined;\nexport default class Nullable {\n\tprivate static readonly _empty = new Nullable(null, false);\n\tprivate readonly m_value: T;\n\n\tprivate constructor(value: T, requireNonNull: boolean = true) {\n\t\tif (requireNonNull && value == null) {\n\t\t\tthrow new Error('value cannot be null or undefined');\n\t\t}\n\t\tthis.m_value = value;\n\t}\n\n\t/**\n\t * Indicates whether a value is present\n\t * @returns `true` if there is a value present, otherwise `false`\n\t */\n\tpublic isPresent(): boolean {\n\t\treturn this.m_value != null;\n\t}\n\n\t/**\n\t * If a value is present, invokes the specified consumer with the value; otherwise, does nothing.\n\t * @param consumer the function to invoke if a value is present\n\t * @returns a `Nullable` describing the value of this `Nullable` if a value is present; otherwise, an empty `Nullable`\n\t */\n\tpublic run(consumer: Consumer>): Nullable {\n\t\tif (this.m_value != null) {\n\t\t\tconsumer(this.m_value as NonNullable);\n\t\t}\n\t\treturn this;\n\t}\n\n\t/**\n\t * Invokes the specified function using the present value, which may be null.\n\t * @param consumer the function to invoke\n\t * @returns a `Nullable` describing the value of this `Nullable` if a value is present; otherwise, an empty `Nullable`\n\t * @see Consumer\n\t */\n\tpublic runNullable(consumer: Consumer): Nullable {\n\t\tconsumer(this.m_value);\n\t\treturn this;\n\t}\n\n\t/**\n\t * If a value is present, and the value matches the given predicate, returns a `Nullable` describing the value; otherwise, returns an empty `Nullable`.\n\t * @param predicate a predicate to apply to the value, if present\n\t * @returns a `Nullable` describing the value of this `Nullable` if a value is present and the value matches the given predicate; otherwise, an empty `Nullable`\n\t * @see Predicate\n\t */\n\tpublic filter(predicate: Predicate>): Nullable {\n\t\treturn this.m_value == null ? this : predicate(this.m_value as NonNullable) ? this : Nullable.empty();\n\t}\n\n\t/**\n\t * If a value is present, applies the provided mapping function to it and, if the result is non-null, `Nullable` describing the result. Otherwise, returns an empty `Nullable`.\n\t * @param {U} U The return type of the mapping function\n\t * @param mapper A mapping function to apply to the value, if present\n\t * @returns a `Nullable` describing the result of applying the mapping function to the value of this `Nullable`, if a value is present; otherwise, an empty `Nullable`\n\t * @see Mapper\n\t */\n\tpublic map(mapper: Mapper, U>): Nullable {\n\t\treturn this.m_value != null ? Nullable.of(mapper(this.m_value as NonNullable)) : Nullable.empty();\n\t}\n\n\t/**\n\t * If a value is present, applies the provided `Nullable`-bearing\n\t * mapping function to it and returns that result; otherwise, returns an empty\n\t * `Nullable`. This method is similar to {@link map()},\n\t * but the provided mapper is one whose result is already a `Nullable`,\n\t * and if invoked, {@link flatMap} does not wrap it with an additional `Nullable`.\n\t * @param The type parameter of the `Nullable` returned by the mapping function\n\t * @param mapper The mapping function to apply to the value, if present\n\t * @returns the result of applying the `Nullable`-bearing mapping function to the value of this `Nullable`, if a value is present; otherwise, an empty `Nullable`\n\t * @see Mapper\n\t */\n\tpublic flatMap(mapper: Mapper, Nullable>): Nullable {\n\t\treturn Nullable.coalesce(\n\t\t\tthis.m_value != null ? mapper(this.m_value as NonNullable) : null,\n\t\t\tNullable.empty()\n\t\t) as Nullable;\n\t}\n\n\t/**\n\t * Invokes the specified mapping function using the current value of this `Nullable`, which may be null.\n\t * If the result is non-null, returns a `Nullable` describing the result. Otherwise, returns an empty `Nullable`.\n\t * This is similar to {@link map()}, with the exception that the mapping function is called even if the current value of this `Nullable` is null.\n\t * @param {U} U the return type of the mapping function\n\t * @param mapper a mapping function to apply to the value\n\t * @returns a `Nullable` describing the result of applying the mapping function to the value of this `Nullable`\n\t * @see Mapper\n\t */\n\tpublic mapNullable(mapper: Mapper): Nullable {\n\t\treturn Nullable.of(mapper(this.m_value));\n\t}\n\n\t/**\n\t * If a value is present in this `Nullable`, returns the value; otherwise, returns null.\n\t * @returns the value held by this `Nullable`\n\t */\n\tpublic get(): T {\n\t\treturn this.m_value;\n\t}\n\n\t/**\n\t * Returns the contained value, if present; otherwise, throws the specified error\n\t * @param {X} X the type of the error to be thrown\n\t * @param throwable the {@link Error} to throw if no value is present. If not supplied, a generic error will be thrown\n\t * @returns the present value\n\t * @throws X\n\t */\n\tpublic getOrThrow(throwable?: X | Producer): NonNullable {\n\t\tif (this.m_value != null) {\n\t\t\treturn this.m_value as NonNullable;\n\t\t}\n\t\tthrow throwable == null ? new Error('No value present') : typeof throwable === 'function' ? throwable() : throwable;\n\t}\n\n\t/**\n\t * Returns the value if present, otherwise returns {@param other}.\n\t * @param other the value to be returned if there is no value present - may be null\n\t * @returns the value, if present, otherwise other\n\t */\n\tpublic orElse(other: T): T {\n\t\treturn this.m_value != null ? this.m_value : other;\n\t}\n\n\t/**\n\t * Returns the value if present, otherwise invokes {@param other} and returns the result of that invocation.\n\t * @param other a {@link Producer} whose result is returned if no value is present\n\t * @returns the value if present; otherwise, the result of invoking the supplied {@link Producer}\n\t * @see Producer\n\t */\n\tpublic orElseGet(other: Producer): T {\n\t\treturn this.m_value != null ? this.m_value : other();\n\t}\n\n\t/**\n\t * Returns `Nullable` describing the value of this `Nullable` if a value is present; otherwise, invokes {@param other} and returns a `Nullable` describing the result of that invocation.\n\t * @param other a {@link Producer} whose result is returned if no value is present\n\t * @returns a `Nullable` describing the value of this `Nullable` if a value is present; otherwise, a `Nullable` describing the result of invoking the supplied {@link Producer}\n\t * @see Producer\n\t */\n\tpublic orElseGetNullable(other: Producer): Nullable {\n\t\treturn this.m_value != null ? this : Nullable.of(other());\n\t}\n\n\t/**\n\t * Invokes the specified function if no value is present.\n\t * @param runnable the function to invoke\n\t * @returns a `Nullable` describing the value of this `Nullable` if a value is present; otherwise, an empty `Nullable`\n\t */\n\tpublic orElseRun(runnable: () => any): Nullable {\n\t\tif (this.m_value == null) {\n\t\t\trunnable();\n\t\t}\n\t\treturn this;\n\t}\n\n\t/**\n\t * Indicates whether some other object is \"equal to\" this `Nullable`.\n\t * The other object is considered equal if:\n\t * - it is also a `Nullable` and;\n\t * - both instances have no value present or;\n\t * - the present values are \"equal to\" each other via \"==\" comparison\n\t * @param other the object to be tested for equality with this instance\n\t * @returns true if the other object is \"equal to\" this object; otherwise, false\n\t */\n\tpublic equals(other: unknown): boolean {\n\t\treturn this === other ? true : other instanceof Nullable && other.m_value === this.m_value;\n\t}\n\n\t/**\n\t * Returns a non-empty string representation of this `Nullable` suitable for debugging.\n\t * @returns the string representation of this instance\n\t */\n\tpublic toString(): string {\n\t\treturn this.m_value != null ? `Nullable[${this.m_value}]` : 'Nullable.empty';\n\t}\n\n\t/**\n\t * Indicates whether the specified value is null or undefined\n\t * @param value the value to evaluate\n\t * @returns true if the specified value is null or undefined; otherwise, false\n\t */\n\tpublic static isNullOrUndefined(value: unknown): boolean {\n\t\treturn value === null || value === undefined;\n\t}\n\n\t/**\n\t * Returns the first non-null value from the specified values.\n\t * @param {T} T the type of the returned value\n\t * @param values the values to evaluate\n\t * @returns the first non-null value from the supplied values\n\t */\n\tpublic static coalesce(...values: T[]): Optional {\n\t\tfor (const value of values) {\n\t\t\tif (value != null) {\n\t\t\t\treturn value;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\t/**\n\t * Returns an empty `Nullable` instance. No value is present for this `Nullable`\n\t * @param {T} T The type of the non-existent value\n\t * @return an empty `Nullable`\n\t */\n\tpublic static empty(): Nullable {\n\t\treturn this._empty;\n\t}\n\n\t/**\n\t * Returns a `Nullable` describing the specified value, if non-null; otherwise, returns an empty `Nullable`.\n\t * @param {T} T the type of the value\n\t * @param value the possibly-null value to describe\n\t * @return a `Nullable` describing the specified value, if non-null; otherwise an empty `Nullable`\n\t * @see empty()\n\t */\n\tpublic static of(value: Optional): Nullable {\n\t\treturn value == null ? this.empty() : new Nullable(value);\n\t}\n}\n","export type AppConfig = {\n\tAPI_URL: string;\n\tTWOFA_URL: string;\n};\n\nconst getConfig = (apiHost: string, twoFAHost: string): AppConfig => {\n\treturn {\n\t\tAPI_URL: `${apiHost}/nsdata`,\n\t\tTWOFA_URL: `${twoFAHost}/2fa`,\n\t};\n};\n\nlet environment = getConfig(process.env.REACT_APP_API_URL!, process.env.REACT_APP_2FA_URL!);\n\nexport const LIVECHAT_JAPAN_DEPT = 'ライブチャットによるサポート';\n\nexport const SUPPORT_EMAIL_GENERAL = 'support@thinkmarkets.com';\nexport const SUPPORT_EMAIL_JAPAN = 'support-jp@thinkmarkets.com';\n\nexport const tfboSourceParam = 'webTrader';\n\nexport const SUBSCR_MGMT_PROV = 'BjpSub';\n\nexport const GENERAL_DATE_FORMAT = 'DD/MMM/YYYY';\nexport const GENERAL_DATETIME_FORMAT = 'DD/MMM/YYYY hh:mm';\nexport const GENERAL_DATETIMES_FORMAT = 'DD/MMM/YYYY H:mm:ss';\n\nexport const JAPAN_DATE_FORMAT = 'yyyy/MM/DD'; // 'yyyy/MM/D日';\nexport const JAPAN_DATETIME_FORMAT = 'yyyy/MM/DD HH:mm'; // 'yyyy年MM月D日 HH:mm';\nexport const JAPAN_DATETIMES_FORMAT = 'yyyy/MM/DD H:mm:ss';\n\nexport { environment };\n\nexport const ENVIRONMENT_NAME = process?.env?.REACT_APP_ENV;\n\nexport const isDevelopment = ENVIRONMENT_NAME === 'development';\nexport const isStaging = ENVIRONMENT_NAME === 'staging';\nexport const isProduction = ENVIRONMENT_NAME === 'production';\nexport const isPreviewProduction = ENVIRONMENT_NAME === 'preview-production';\n\nexport const versionNumber = process.env.REACT_APP_VERSION;\n\nexport const DX_COLUMN_CHOOSER_SIZE = { width: 350, height: 350 };\n\nexport const MFA_ACCESS_TOKEN_KEY = 'mfaAccessToken';\nexport const ACCESS_TOKEN_KEY = 'accessToken';\nexport const REFRESH_TOKEN_KEY = 'refreshToken';\nexport const USER_EMAIL_KEY = 'emai';\n\nexport const signalsBpKey = 'EMmXGbF89RM7iizI';\nexport const signalsBpVal = 'C1KzLpPmo3uIjZR7';\n\nexport const TV_UAT_REDIRECT_LOGIN_URL = 'https://tvstaging-oauth.thinkmarkets.com/login';\nexport const TV_PROD_REDIRECT_LOGIN_URL = 'https://tvprod-oauth.thinkmarkets.com/login';\n","import { useContext } from 'react';\n\nimport DashboardContext from '../../contexts/DashboardContext';\nimport tradingAccountStore from '../../store/tradingAccountStore';\n\nconst useSelectedTradingAccount = () => {\n\tconst { tradingAccount } = useContext(DashboardContext);\n\tconst selected = tradingAccountStore.use.selected();\n\n\treturn tradingAccount[selected];\n};\n\nexport default useSelectedTradingAccount;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"TradeTicket_container__2S2h7\",\"fieldContainer\":\"TradeTicket_fieldContainer__2dSa-\",\"modalDialog\":\"TradeTicket_modalDialog__2uqRW\",\"modalHeader\":\"TradeTicket_modalHeader__22RFa\",\"modalBody\":\"TradeTicket_modalBody__NDpZ3\",\"resizedWrapper\":\"TradeTicket_resizedWrapper__2oTJn\",\"containerUndock\":\"TradeTicket_containerUndock__2RlYv\",\"fieldGroup\":\"TradeTicket_fieldGroup__3DF6r\",\"row\":\"TradeTicket_row__1efhH\",\"rowMiddle\":\"TradeTicket_rowMiddle__3AKKk\",\"fieldTakeProfitStopLoss\":\"TradeTicket_fieldTakeProfitStopLoss__1mwZy\",\"popupMessage\":\"TradeTicket_popupMessage__2rAet\",\"undocked\":\"TradeTicket_undocked__1ajFp\",\"dropdownMenu\":\"TradeTicket_dropdownMenu__3Zdn-\",\"menu\":\"TradeTicket_menu__RfFBs\",\"fieldGroupTitle\":\"TradeTicket_fieldGroupTitle__3owpQ\",\"label\":\"TradeTicket_label__3QGVI\",\"control\":\"TradeTicket_control__KkOY-\",\"wrapper\":\"TradeTicket_wrapper__4cjzE\",\"fieldWrapper\":\"TradeTicket_fieldWrapper__20MU5\",\"numberInputWrapper\":\"TradeTicket_numberInputWrapper__Zf43w\",\"noPadding\":\"TradeTicket_noPadding__2fE0a\",\"noBorder\":\"TradeTicket_noBorder__MYNzO\",\"infoRow\":\"TradeTicket_infoRow__3Wm86\",\"infoLabel\":\"TradeTicket_infoLabel__1p5Xd\",\"subLabel\":\"TradeTicket_subLabel__1StCg\",\"input\":\"TradeTicket_input__3BBAl\",\"subText\":\"TradeTicket_subText__1fsvO\",\"positiveSubText\":\"TradeTicket_positiveSubText__2JQEL\",\"negativeSubText\":\"TradeTicket_negativeSubText__16x8m\",\"errorValidation\":\"TradeTicket_errorValidation__2J5oR\",\"toggleButton\":\"TradeTicket_toggleButton__yRSTb\",\"toggleButtonChecked\":\"TradeTicket_toggleButtonChecked__3sae4\",\"calendarIcon\":\"TradeTicket_calendarIcon__2ScUO\",\"sideCloseButton\":\"TradeTicket_sideCloseButton__3be3m\",\"tradeTicketButton\":\"TradeTicket_tradeTicketButton__1A1Ye\",\"tradersGymField\":\"TradeTicket_tradersGymField__3Ftp8\",\"footer\":\"TradeTicket_footer__38BK-\"};","type Class = Function & { prototype: T };\ntype Optional = T | null | undefined;\ntype DefaultConstructor = Class & (new () => T);\n\n/**\n * Interface for dependency resolvers.\n */\nexport interface IResolver {\n\t/**\n\t * Resolves a dependency.\n\t * @template T\n\t * @param {T} T The type of the dependency.\n\t * @param type A class instance of T\n\t * @returns An instance of T if successful, otherwise null.\n\t */\n\tresolve(type: Class): T;\n\n\t/**\n\t * Resolves a dependency.\n\t * @template T\n\t * @param {T} T The type of the dependency.\n\t * @param type A class instance of T\n\t * @returns All instances of T if successful.\n\t */\n\tresolveAll(type: Class): T[];\n\n\t/**\n\t * Determines whether a dependency of the specified type is registered.\n\t * @template T\n\t * @param {T} T The type of the dependency.\n\t * @param type A class instance of T\n\t * @returns True if an instance of the specified type is registered, otherwise false.\n\t */\n\tisRegistered(type: Class): boolean;\n}\n\n/**\n * Interface for dependency containers.\n */\nexport interface IDependencyContainer {\n\t/**\n\t * Gets the resolver from the container\n\t */\n\tresolver: IResolver;\n\n\t/**\n\t * Registers an instance of type T to be stored in the container.\n\t * @template T\n\t * @param {T} T The type of the instance.\n\t * @param type A class instance of T\n\t * @param instance An instance of T\n\t * @returns An instance of {@link IDependencyContainer}\n\t */\n\tregister(type: Class, instance: T): IDependencyContainer;\n\n\t/**\n\t * Registers an instance of type T to be stored in the container.\n\t * @template T, TImpl\n\t * @param {T} T The type of the instance.\n\t * @param {TImpl} TImpl Type to register for instantiation.\n\t * @param type A class instance of T\n\t * @param typeImpl A class instance of TImpl\n\t * @returns An instance of {@link IDependencyContainer}\n\t */\n\tregister(type: Class, typeImpl: DefaultConstructor): IDependencyContainer;\n\n\t/**\n\t * Registers a function which returns an instance of type T\n\t * @template T\n\t * @param {T} T The type of the instance.\n\t * @param type A class instance of T\n\t * @param factory A function which returns an instance of type T\n\t * @returns An instance of {@link IDependencyContainer}\n\t */\n\tregister(type: Class, factory: (resolver: IResolver) => T): IDependencyContainer;\n\n\t/**\n\t * Registers a type to instantiate for type T as singleton.\n\t * @template T, TImpl\n\t * @param {T} T The type of the instance.\n\t * @param {TImpl} TImpl Type to register for instantiation.\n\t * @param type A class instance of T\n\t * @param typeImpl A class instance of TImpl\n\t * @returns An instance of {@link IDependencyContainer}\n\t */\n\tregisterSingle(type: Class, typeImpl: DefaultConstructor): IDependencyContainer;\n\n\t/**\n\t * Registers a function which returns an instance of type T for singleton.\n\t * @template T\n\t * @param {T} T The type of the instance.\n\t * @param type A class instance of T\n\t * @param factory A function which returns an instance of type T\n\t * @returns An instance of {@link IDependencyContainer}\n\t */\n\tregisterSingle(type: Class, factory: (resolver: IResolver) => T): IDependencyContainer;\n}\n\nclass DefaultResolver implements IResolver {\n\tprivate readonly m_resolverDelegate: (type: Class) => IterableIterator;\n\n\tpublic constructor(resolverDelegate: (type: Class) => IterableIterator) {\n\t\tthis.m_resolverDelegate = resolverDelegate;\n\t}\n\n\t/**\n\t * Resolves a dependency.\n\t * @template T\n\t * @param {T} T The type of the dependency.\n\t * @param type A class instance of T\n\t * @returns An instance of T if successful, otherwise null.\n\t */\n\tpublic resolve(type: Class): T {\n\t\tconst iterator: IterableIterator = this.m_resolverDelegate(type);\n\t\tconst value: T = iterator.next()?.value;\n\t\treturn value;\n\t}\n\n\t/**\n\t * Resolves a dependency.\n\t * @template T\n\t * @param {T} T The type of the dependency.\n\t * @param type A class instance of T\n\t * @returns All instances of T if successful.\n\t */\n\tpublic resolveAll(type: Class): T[] {\n\t\tconst list: T[] = new Array();\n\t\tconst iterator: IterableIterator = this.m_resolverDelegate(type);\n\t\tlet value: T = iterator.next()?.value();\n\t\twhile (value != null) {\n\t\t\tlist.push(value);\n\t\t\tvalue = iterator.next()?.value();\n\t\t}\n\t\treturn list;\n\t}\n\n\t/**\n\t * Determines whether a dependency of the specified type is registered.\n\t * @template T\n\t * @param {T} T The type of the dependency.\n\t * @param type A class instance of T\n\t * @returns True if an instance of the specified type is registered, otherwise false.\n\t */\n\tpublic isRegistered(type: Class): boolean {\n\t\treturn this.resolve(type) != null;\n\t}\n}\n\nexport class DependencyContainer implements IDependencyContainer {\n\tprivate readonly m_resolver: IResolver;\n\tprivate readonly m_services: Map>;\n\tprivate readonly m_registeredServices: Map any>>;\n\n\tpublic get resolver(): IResolver {\n\t\treturn this.m_resolver;\n\t}\n\n\tpublic constructor() {\n\t\tthis.m_services = new Map();\n\t\tthis.m_registeredServices = new Map any>>();\n\t\tthis.m_resolver = new DefaultResolver((type: Class) => this.resolveAll(type));\n\t}\n\n\t/**\n\t * Registers an instance of type T to be stored in the container.\n\t * @template T\n\t * @param {T} T The type of the instance.\n\t * @param type A class instance of T\n\t * @param instance An instance of T\n\t * @returns An instance of {@link IDependencyContainer}\n\t */\n\tpublic register(type: Class, instance: T): this;\n\n\t/**\n\t * Registers an instance of type T to be stored in the container.\n\t * @template T, TImpl\n\t * @param {T} T The type of the instance.\n\t * @param {TImpl} TImpl Type to register for instantiation.\n\t * @param type A class instance of T\n\t * @param typeImpl A class instance of TImpl\n\t * @returns An instance of {@link IDependencyContainer}\n\t */\n\tpublic register(type: Class, typeImpl: DefaultConstructor): this;\n\n\t/**\n\t * Registers a function which returns an instance of type T\n\t * @template T\n\t * @param {T} T The type of the instance.\n\t * @param type A class instance of T\n\t * @param factory A function which returns an instance of type T\n\t * @returns An instance of {@link IDependencyContainer}\n\t */\n\tpublic register(type: Class, factory: (resolver: IResolver) => T): this;\n\n\tpublic register(\n\t\ttype: Class,\n\t\timpl: TImpl | DefaultConstructor | ((resolver: IResolver) => TImpl)\n\t): this {\n\t\tif (typeof impl != 'function' && impl instanceof type) {\n\t\t\tif (!this.m_services.has(type)) {\n\t\t\t\tthis.m_services.set(type, new Array());\n\t\t\t}\n\t\t\tconst services = this.m_services.get(type);\n\t\t\tif (Array.isArray(services)) {\n\t\t\t\tservices.push(impl);\n\t\t\t}\n\t\t} else if (impl === type || impl instanceof type || (impl as Class).prototype instanceof type) {\n\t\t\tif (!this.m_registeredServices.has(type)) {\n\t\t\t\tthis.m_registeredServices.set(type, new Array<(resolver: IResolver) => TImpl>());\n\t\t\t}\n\t\t\tconst services = this.m_registeredServices.get(type);\n\t\t\tif (Array.isArray(services)) {\n\t\t\t\tservices.push((resolver: IResolver) => new (impl as unknown as DefaultConstructor)());\n\t\t\t}\n\t\t} else if (typeof impl == 'function') {\n\t\t\tif (!this.m_registeredServices.has(type)) {\n\t\t\t\tthis.m_registeredServices.set(type, new Array<(resolver: IResolver) => TImpl>());\n\t\t\t}\n\t\t\tconst services = this.m_registeredServices.get(type);\n\t\t\tif (Array.isArray(services)) {\n\t\t\t\tservices.push(impl as (resolver: IResolver) => TImpl);\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Registers a type to instantiate for type T as singleton.\n\t * @template T, TImpl\n\t * @param {T} T The type of the instance.\n\t * @param {TImpl} TImpl Type to register for instantiation.\n\t * @param type A class instance of T\n\t * @param typeImpl A class instance of TImpl\n\t * @returns An instance of {@link IDependencyContainer}\n\t */\n\tpublic registerSingle(type: Class, typeImpl: DefaultConstructor): this;\n\n\t/**\n\t * Registers a function which returns an instance of type T for singleton.\n\t * @template T\n\t * @param {T} T The type of the instance.\n\t * @param type A class instance of T\n\t * @param factory A function which returns an instance of type T\n\t * @returns An instance of {@link IDependencyContainer}\n\t */\n\tpublic registerSingle(type: Class, factory: (resolver: IResolver) => T): this;\n\n\tpublic registerSingle(\n\t\ttype: Class,\n\t\timpl: DefaultConstructor | ((resolver: IResolver) => TImpl)\n\t): this {\n\t\tif (impl === type || impl instanceof type || (impl as DefaultConstructor).prototype instanceof type) {\n\t\t\tif (!this.m_services.has(type)) {\n\t\t\t\tthis.m_services.set(type, new Array());\n\t\t\t}\n\t\t\tconst services = this.m_services.get(type);\n\t\t\tif (Array.isArray(services)) {\n\t\t\t\tservices.push(new (impl as DefaultConstructor)());\n\t\t\t}\n\t\t} else if (typeof impl == 'function') {\n\t\t\tif (!this.m_services.has(type)) {\n\t\t\t\tthis.m_services.set(type, new Array());\n\t\t\t}\n\t\t\tconst services = this.m_services.get(type);\n\t\t\tif (Array.isArray(services)) {\n\t\t\t\tservices.push((impl as (resolver: IResolver) => TImpl)(this.m_resolver));\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tprivate *resolveAll(type: Class): IterableIterator {\n\t\tif (this.m_services.has(type)) {\n\t\t\tconst list: Array = this.m_services.get(type) as Array;\n\t\t\tfor (const service of list) {\n\t\t\t\tyield service;\n\t\t\t}\n\t\t}\n\n\t\tif (this.m_registeredServices.has(type)) {\n\t\t\tconst list: Array<(resolver: IResolver) => any> = this.m_registeredServices.get(type) as Array<\n\t\t\t\t(resolver: IResolver) => any\n\t\t\t>;\n\t\t\tfor (const serviceFunc of list) {\n\t\t\t\tyield serviceFunc(this.m_resolver);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * A quick access wrapper for IResolver implementations\n */\nexport class Resolver {\n\tprivate static _instance: Optional = null;\n\n\t/**\n\t * Gets the {@link IResolver} instance.\n\t * @returns The resolver instance.\n\t * @throws Error if resolver has not been set.\n\t */\n\tprivate static get instance(): IResolver {\n\t\tif (!this.isSet) {\n\t\t\tthrow new Error('IResolver has not been set. Please set it by calling the Resolver.setResolver method.');\n\t\t}\n\t\treturn this._instance as IResolver;\n\t}\n\n\t/**\n\t * Sets the {@link IResolver} instance.\n\t * @param value The resolver instance to set.\n\t * @throws Error if resolver has already been set - instance can only be set once to prevent mix-ups.\n\t */\n\tprivate static set instance(value: IResolver) {\n\t\tif (this.isSet) {\n\t\t\tthrow new Error(\n\t\t\t\t'IResolver can only be set once. If this was intentional you should call the Resolver.ResetResolver method first.'\n\t\t\t);\n\t\t}\n\t\tthis._instance = value;\n\t}\n\n\t/**\n\t * Gets a value indicating whether the resolver has been set.\n\t * @returns True if the resolver instance has been set, otherwise false\n\t * @see setResolver\n\t */\n\tpublic static get isSet(): boolean {\n\t\treturn this._instance != null;\n\t}\n\n\t/**\n\t * Sets the resolver instance.\n\t * @param resolver An instance of IResolver implementation.\n\t */\n\tpublic static setResolver(resolver: IResolver): void {\n\t\tthis.instance = resolver;\n\t}\n\n\t/**\n\t * Gets the resolver instance.\n\t * @param resolver An instance of IResolver implementation.\n\t */\n\tpublic static getResolver(): IResolver {\n\t\treturn this.instance;\n\t}\n\n\t/**\n\t * Resets the resolver instance.\n\t * @param newInstance An new instance of IResolver implementation.\n\t */\n\tpublic static resetResolver(newInstance: Optional): void {\n\t\tthis._instance = newInstance;\n\t}\n\n\t/**\n\t * Resolves a dependency.\n\t * @template T\n\t * @param {T} T The type of the dependency.\n\t * @param type A class instance of T\n\t * @returns An instance of T if successful, otherwise null.\n\t */\n\tpublic static resolve(type: Class): T {\n\t\treturn this.instance.resolve(type);\n\t}\n\n\t/**\n\t * Resolves a dependency.\n\t * @template T\n\t * @param {T} T The type of the dependency.\n\t * @param type A class instance of T\n\t * @returns All instances of T if successful, otherwise null.\n\t */\n\tpublic static resolveAll(type: Class): T[] {\n\t\treturn this.instance.resolveAll(type);\n\t}\n\n\t/**\n\t * Determines whether a dependency of the specified type is registered.\n\t * @template T\n\t * @param {T} T The type of the dependency.\n\t * @param type A class instance of T\n\t * @returns True if an instance of the specified type is registered, otherwise false.\n\t */\n\tpublic static isRegistered(type: Class): boolean {\n\t\treturn this.instance.isRegistered(type);\n\t}\n}\n","import {create} from './create';\n\nimport createSelectors from './createSelectors';\n\nexport interface StatusStoreValues {\n checkApplicationStatus: any;\n userProfileInfo: any;\n checkAccountStatus: any;\n infoMessage: string;\n showModal: boolean;\n status: string | undefined;\n\n hasLiveAccount: boolean | undefined;\n hasDemoAccount: boolean | undefined;\n hasAnyAccount: boolean | undefined;\n\n permissions: {\n accountMenuAction: string | boolean | undefined;\n accountMenuLabel: string | undefined;\n marginLevelAction: string | boolean | undefined;\n marginLevelLabel: string | undefined;\n signalsAction: string | boolean | undefined;\n tradeButtons: string | boolean | undefined;\n mainMenuAction: string | boolean | undefined;\n reports: string | boolean | undefined;\n addAccount: string | boolean | undefined;\n manageFunds: string | boolean | undefined;\n tradersGym: boolean | undefined;\n portalPage: string | boolean | undefined;\n notificationBell: boolean | undefined;\n };\n canTrade: boolean;\n tradingAccount: any;\n isTraderGymActive: boolean;\n\n unlockGym: boolean;\n}\n\nexport const initialStateAccountStatusStore: StatusStoreValues = {\n checkApplicationStatus: {},\n userProfileInfo: {},\n checkAccountStatus: {},\n infoMessage: '',\n showModal: false,\n status: 'EMPTY',\n hasLiveAccount: undefined,\n hasDemoAccount: undefined,\n hasAnyAccount: undefined,\n permissions: {\n accountMenuAction: undefined,\n accountMenuLabel: undefined,\n marginLevelAction: undefined,\n marginLevelLabel: undefined,\n signalsAction: undefined,\n tradeButtons: undefined,\n mainMenuAction: undefined,\n reports: undefined,\n addAccount: undefined,\n manageFunds: undefined,\n tradersGym: undefined,\n portalPage: undefined,\n notificationBell: undefined,\n },\n canTrade: false,\n tradingAccount: {},\n isTraderGymActive: false,\n unlockGym: false,\n};\n\nexport interface StatusStoreActions {\n setHasLiveAccount: (hasLiveAccount: boolean) => void;\n setHasDemoAccount: (hasDemoAccount: boolean) => void;\n setCheckApplicationStatus: (response: any) => void;\n setStatus: (newStatus: string) => void;\n setUserProfileInfo: (user: string) => void;\n setCheckAccountStatus: (response: any) => void;\n\n setInfoMessage: (infoMessageToChange: string) => void;\n setPermissions: (permission: any) => void;\n setShowModal: (toShowModal: boolean) => void;\n setTradingAccount: (tradingAccount: any) => void;\n setIsTraderGymActive: (isActive: boolean) => void;\n setCanTrade: (canTrade: boolean) => void;\n setShowAccountStatus: () => void;\n setUnlockGym: (unlockGym: boolean) => void;\n reset: () => void;\n}\n\nexport type StatusStore = StatusStoreValues & StatusStoreActions;\n\nconst accountStatusStore = create()((set: any) => ({\n ...initialStateAccountStatusStore,\n\n setCheckApplicationStatus: (response) =>\n set(() => ({\n checkApplicationStatus: response,\n })),\n setStatus: (newStatus) => set(() => ({status: newStatus ? newStatus : 'EMPTY'})),\n setIsTraderGymActive: (isActive) => set(() => ({isTraderGymActive: isActive})),\n setUserProfileInfo: (user) => set(() => ({userProfileInfo: user})),\n setCheckAccountStatus: (response) => {\n let hasLiveAccount = false;\n let hasAnyAccount = false;\n let hasDemoAccount = false;\n\n if (response.length > 0) {\n hasAnyAccount = true;\n }\n if (response.length > 0) {\n response.forEach((account: any) => {\n set(() => ({tradingAccount: account}));\n if (account.account.type === 'LIVE') {\n hasLiveAccount = true;\n }\n if (account.account.type === 'DEMO') {\n hasDemoAccount = true;\n }\n if (hasLiveAccount && hasDemoAccount) return;\n });\n }\n set(() => ({\n checkAccountStatus: response,\n hasLiveAccount,\n hasDemoAccount,\n hasAnyAccount,\n }));\n },\n\n setHasLiveAccount: (hasLiveAccount: boolean) => set({hasLiveAccount}),\n setHasDemoAccount: (hasDemoAccount: boolean) => set({hasDemoAccount}),\n setInfoMessage: (infoMessageToChange) => set(() => ({infoMessage: infoMessageToChange})),\n setPermissions: (permission) => set(() => ({permissions: permission})),\n setShowModal: (toShowModal) => set(() => ({showModal: toShowModal})),\n setTradingAccount: (tradingAccount) => set(() => ({tradingAccount: tradingAccount})),\n setShowAccountStatus: () =>\n set((state: StatusStore) => ({\n showModal: true,\n infoMessage: state.status,\n })),\n setCanTrade: (canTrade) =>\n set(() => ({\n canTrade: canTrade,\n })),\n\n setUnlockGym: (unlockGym: boolean) => set({unlockGym}),\n reset: () => set({...initialStateAccountStatusStore}),\n}));\n\nexport default createSelectors(accountStatusStore);\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"1\":\"InstrumentSearch_1__ru3pr\",\"2\":\"InstrumentSearch_2__3kB3G\",\"3\":\"InstrumentSearch_3__6QyTJ\",\"textCenter\":\"InstrumentSearch_textCenter__2WSjY\",\"textBold\":\"InstrumentSearch_textBold__TOl09\",\"hidden\":\"InstrumentSearch_hidden__2szF3\",\"selectedSearchCategory\":\"InstrumentSearch_selectedSearchCategory__13_zI\",\"hideSelectedSearchCategory\":\"InstrumentSearch_hideSelectedSearchCategory__3ICq5\",\"searchContainer\":\"InstrumentSearch_searchContainer__1KzWa\",\"menuPanel\":\"InstrumentSearch_menuPanel__3Pheo\",\"groupPanel\":\"InstrumentSearch_groupPanel__pNTEH\",\"instrumentPanel\":\"InstrumentSearch_instrumentPanel__aEi3W\",\"watchlistPanel\":\"InstrumentSearch_watchlistPanel__ZevE-\",\"itemContainer\":\"InstrumentSearch_itemContainer__3U770\",\"itemContainerHeader\":\"InstrumentSearch_itemContainerHeader__2LqZV\",\"itemContainerForm\":\"InstrumentSearch_itemContainerForm__1ubcp\",\"itemContainerFooter\":\"InstrumentSearch_itemContainerFooter__1NTR1\",\"maxedContainer\":\"InstrumentSearch_maxedContainer__3hLl7\",\"itemContent\":\"InstrumentSearch_itemContent__351_k\",\"errorItemContent\":\"InstrumentSearch_errorItemContent__7l47w\",\"selected\":\"InstrumentSearch_selected__1z6sW\",\"selectionIndicator\":\"InstrumentSearch_selectionIndicator__10t-6\",\"maxedItemContent\":\"InstrumentSearch_maxedItemContent__158WW\",\"limitMessage\":\"InstrumentSearch_limitMessage__12_gw\",\"hide\":\"InstrumentSearch_hide__eAiLI\",\"watchlistCell\":\"InstrumentSearch_watchlistCell__3VR7v\",\"content\":\"InstrumentSearch_content__1YJ76\",\"groupIcon\":\"InstrumentSearch_groupIcon__2aXsJ\",\"watchlistIcon\":\"InstrumentSearch_watchlistIcon__1-Zci\",\"existsInWatchlistIcon\":\"InstrumentSearch_existsInWatchlistIcon__7d14N\",\"addToWatchlistIcon\":\"InstrumentSearch_addToWatchlistIcon__1PGxf\",\"disabledIcon\":\"InstrumentSearch_disabledIcon__2n9eC\",\"createWatchlistIcon\":\"InstrumentSearch_createWatchlistIcon__2wArT\",\"commodities\":\"InstrumentSearch_commodities__1eHsF\",\"crypto\":\"InstrumentSearch_crypto__2IvpO\",\"cryptosb\":\"InstrumentSearch_cryptosb__1ICud\",\"cfd\":\"InstrumentSearch_cfd__E5-7u\",\"etfs\":\"InstrumentSearch_etfs__3dU-O\",\"energy\":\"InstrumentSearch_energy__2bGeo\",\"energysb\":\"InstrumentSearch_energysb__3eryu\",\"forex\":\"InstrumentSearch_forex__1ZZiV\",\"forexsb\":\"InstrumentSearch_forexsb__3falF\",\"indices\":\"InstrumentSearch_indices__3tBKK\",\"indicessb\":\"InstrumentSearch_indicessb__1q3Wi\",\"metals\":\"InstrumentSearch_metals__1fb8S\",\"metalssb\":\"InstrumentSearch_metalssb__5u9Ra\",\"stocks\":\"InstrumentSearch_stocks__1pGdf\",\"shares\":\"InstrumentSearch_shares__qc0ur\",\"headerContainer\":\"InstrumentSearch_headerContainer__2T2V5\",\"watchlistName\":\"InstrumentSearch_watchlistName__QMu0m\",\"addIcon\":\"InstrumentSearch_addIcon__2xiGC\",\"errorAddIcon\":\"InstrumentSearch_errorAddIcon__2j6IS\",\"createWatchlistContainer\":\"InstrumentSearch_createWatchlistContainer__3c2ea\",\"createWatchlist\":\"InstrumentSearch_createWatchlist__2NzuL\",\"inputContainer\":\"InstrumentSearch_inputContainer__lcIWa\",\"errorInput\":\"InstrumentSearch_errorInput__3wMkI\",\"actionButtonContainer\":\"InstrumentSearch_actionButtonContainer__3i8Aa\",\"cancel\":\"InstrumentSearch_cancel__1sBpN\",\"submit\":\"InstrumentSearch_submit__1tWK9\",\"createWatchlistFooterContainer\":\"InstrumentSearch_createWatchlistFooterContainer__1jM7V\",\"createFooter\":\"InstrumentSearch_createFooter__1TAQR\",\"textContainer\":\"InstrumentSearch_textContainer__1Jifg\",\"createErrorMessage\":\"InstrumentSearch_createErrorMessage__Ru2Pf\",\"errorCreate\":\"InstrumentSearch_errorCreate__2UWQS\",\"Popup\":\"InstrumentSearch_Popup__1C48Y\",\"displayInput\":\"InstrumentSearch_displayInput__2TA8J\",\"inputExlpanation\":\"InstrumentSearch_inputExlpanation__2mPYJ\",\"errorMessage\":\"InstrumentSearch_errorMessage__1MmgG\",\"maxWatchlistError\":\"InstrumentSearch_maxWatchlistError__1yPhg\",\"matchText\":\"InstrumentSearch_matchText__3G1or\",\"emptyState\":\"InstrumentSearch_emptyState__2zHVr\",\"searchIcon\":\"InstrumentSearch_searchIcon__29Ose\",\"emptyStateText\":\"InstrumentSearch_emptyStateText__mJO1Z\",\"emptyStateSearchString\":\"InstrumentSearch_emptyStateSearchString__1Bada\",\"addToWatchlistContainer\":\"InstrumentSearch_addToWatchlistContainer__z2fdF\",\"instrumentContainer\":\"InstrumentSearch_instrumentContainer__1wxr8\",\"instrumentFullNameTrim\":\"InstrumentSearch_instrumentFullNameTrim__Xm9PC\",\"badge\":\"InstrumentSearch_badge__3e224\",\"categoryTitle\":\"InstrumentSearch_categoryTitle__1zN7t\",\"instrumentText\":\"InstrumentSearch_instrumentText__1hxPZ\",\"instrumentSymbol\":\"InstrumentSearch_instrumentSymbol__3uj3I\",\"instrumentFullName\":\"InstrumentSearch_instrumentFullName__2aTh2\",\"tableRow\":\"InstrumentSearch_tableRow__22KEJ\",\"watchlistAddRemoveIcon\":\"InstrumentSearch_watchlistAddRemoveIcon__3shOH\"};","import { create } from 'zustand';\nimport createSelectors from './createSelectors';\n\ninterface TradingViewStore {\n\tisSearchOpen: boolean;\n\tfirstPressedButton: string;\n\tcompSymbol: string;\n\tisCompSymbolMode: boolean;\n\tisPreselectedInstrument: boolean;\n\topenOrderInformation: boolean;\n\tticketLayout: string;\n\t// showTradeButton: boolean;\n\tdockStylesTicket: boolean;\n\thaveSearchForPositions: boolean;\n\tsetDockStylesTicket: (value: boolean) => void;\n\tsetIsPreselectedInstrument: (value: boolean) => void;\n\tsetOpenOrderInformation: (value: boolean) => void;\n\tsetIsSearchOpen: (value: boolean) => void;\n\tsetFirstPressedButton: (value: string) => void;\n\tsetCompSymbol: (value: string) => void;\n\tsetIsCompSymbolMode: (value: boolean) => void;\n\tsetTicketLayout: (value: string) => void;\n\tsetHaveSearchForPositions: (value: boolean) => void;\n\t// setShowTradeButton: (value: boolean) => void;\n}\n\nconst TradingViewStore = create((set) => ({\n\tisSearchOpen: false,\n\tfirstPressedButton: '',\n\tisPreselectedInstrument: false,\n\tcompSymbol: '',\n\tisCompSymbolMode: false,\n\topenOrderInformation: false,\n\tticketLayout: 'Dock',\n\t// showTradeButton: false,\n\tdockStylesTicket: false,\n\thaveSearchForPositions: false,\n\tsetDockStylesTicket: (value: boolean) => set((state) => ({ dockStylesTicket: value })),\n\tsetIsPreselectedInstrument: (value: boolean) => set((state) => ({ isPreselectedInstrument: value })),\n\tsetOpenOrderInformation: (value: boolean) => set((state) => ({ openOrderInformation: value })),\n\tsetIsSearchOpen: (value: boolean) => set((state) => ({ isSearchOpen: value })),\n\tsetIsCompSymbolMode: (value: boolean) => set((state) => ({ isCompSymbolMode: value })),\n\tsetFirstPressedButton: (value: string) => set((state) => ({ firstPressedButton: value })),\n\tsetCompSymbol: (value: string) => set((state) => ({ compSymbol: value })),\n\tsetTicketLayout: (value: string) => set((state) => ({ ticketLayout: value })),\n\tsetHaveSearchForPositions: (value: boolean) => set((state) => ({ haveSearchForPositions: value })),\n\t// setShowTradeButton: (value: boolean) => set((state) => ({ showTradeButton: value })),\n}));\n\nexport default createSelectors(TradingViewStore);\n","import React, { useContext } from 'react';\n\nimport { Modal as BootstrapModal, ModalProps } from 'react-bootstrap';\n\nimport AppContext from '../../contexts/AppContext';\n\n/**\n * Wrapper component that allows you to stylize the Bootstrap Modal Component\n */\nconst Modal: React.FC = ({ children, ...rest }: ModalProps) => {\n\tconst { appTheme, isJapanAccount } = useContext(AppContext);\n\trest.dialogClassName = `${rest.dialogClassName || ''} ${appTheme} ${isJapanAccount ? 'japanTheme' : ''}`;\n\n\treturn {children};\n};\n\nexport default Object.assign(Modal, {\n\tBody: BootstrapModal.Body,\n\tHeader: BootstrapModal.Header,\n\tTitle: BootstrapModal.Title,\n\tFooter: BootstrapModal.Footer,\n\tDialog: BootstrapModal.Dialog,\n\tTRANSITION_DURATION: BootstrapModal.TRANSITION_DURATION,\n\tBACKDROP_TRANSITION_DURATION: BootstrapModal.BACKDROP_TRANSITION_DURATION,\n});\n","import { createContext } from 'react';\n\nimport RfpGateway from '../gateways/RfpGateway/RfpGateway';\nimport { Optional } from '../utils/functions/TypeUtils';\n\nconst RfpGatewayContext = createContext>(undefined);\n\nexport default RfpGatewayContext;\n","import { useEffect, useRef } from 'react';\nimport { Optional } from '../functions/Nullable';\nimport { default as PromiseFactory } from '../functions/PromiseFactory';\n\nclass Hooks {\n\tpublic static usePromiseFactory(): PromiseFactory;\n\tpublic static usePromiseFactory(promiseFactory: PromiseFactory): PromiseFactory;\n\tpublic static usePromiseFactory(promiseFactory?: Optional): PromiseFactory {\n\t\tconst promiseFactoryRef = useRef>();\n\t\tif (promiseFactoryRef.current == null) {\n\t\t\tpromiseFactoryRef.current = promiseFactory || new PromiseFactory();\n\t\t}\n\t\tuseEffect(() => {\n\t\t\treturn () => {\n\t\t\t\tpromiseFactoryRef.current = null;\n\t\t\t};\n\t\t}, []);\n\t\treturn promiseFactoryRef.current!;\n\t}\n}\n\nexport default Hooks.usePromiseFactory;\n","import { TradingPositionSide, TradingPositionType } from '../../utils/functions/enums';\n\nimport { ActionType, Order, OrderStoreValues } from './orderStore.types';\n\nconst initialOrder: Order = {\n\taccountId: undefined,\n\tside: TradingPositionSide.Buy,\n\ttype: TradingPositionType.Market,\n\tisPreservedValue: false,\n\tdate: 'EXP_GTC',\n\tquantity: undefined,\n\tamountInfo: {\n\t\tamount: undefined,\n\t\terror: undefined,\n\t\tmax: undefined,\n\t\tmin: undefined,\n\t\trndLot: undefined,\n\t\tstep: undefined,\n\t},\n\topenPriceInfo: {\n\t\terror: undefined,\n\t\tisActive: false,\n\t\tisTriggered: false,\n\t\tpotentialProfitLoss: undefined,\n\t\tprice: undefined,\n\t},\n\tstopLossInfo: {\n\t\terror: undefined,\n\t\tisActive: false,\n\t\tisTriggered: false,\n\t\tpotentialProfitLoss: undefined,\n\t\tprice: undefined,\n\t},\n\ttakeProfitInfo: {\n\t\terror: undefined,\n\t\tisActive: false,\n\t\tisTriggered: false,\n\t\tpotentialProfitLoss: undefined,\n\t\tprice: undefined,\n\t},\n\tlimitsOnly: undefined,\n\tisPositionDraggingDisabled: false,\n\tstopLossType: 'NORMAL',\n};\n\nexport const initialState: OrderStoreValues = {\n\tcurrent: initialOrder,\n\taction: ActionType.unknown,\n\ttradingPosition: undefined,\n\ttradingInstrument: undefined,\n\tcurrentQuote: undefined,\n\tmarketItem: undefined,\n\tisSignalOrder: false,\n};\n","import { immer } from 'zustand/middleware/immer';\n\nimport {\n\tEditOrderRequest,\n\tEditPositionRequest,\n\tInstrument,\n\tMarketItem,\n\tNewOrderRequest,\n\tNewPositionRequest,\n\tPriceQuote,\n\tTradingPosition,\n\tTradingPositionState,\n} from '../../gateways/RfpGateway/rfp.types';\n\nimport {\n\tstopLossTypes,\n\tTradingPositionLimitType,\n\tTradingPositionSide,\n\tTradingPositionType,\n} from '../../utils/functions/enums';\n\nimport { create } from '../create';\nimport createSelectors from '../createSelectors';\n\nimport { GymTradingPosition } from '../../pages/TradersGym/Positions/GymTradingPosition';\n\nimport { initialState } from './orderStore.initial';\nimport {\n\tActionType,\n\tIAmountInfo,\n\tIPriceInfo,\n\tITradeObjProps,\n\tOrder,\n\tOrderStore,\n\tOrderStoreValues,\n} from './orderStore.types';\nimport { compareLimits } from './orderStore.helpers';\nimport { getMarketItemPipSize } from '../../utils/functions/calculations';\n\nconst orderStore = create()(\n\timmer((set: any, get: any) => ({\n\t\t...initialState,\n\t\treset: () =>\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\treturn (state = initialState);\n\t\t\t}),\n\n\t\tresetExceptSide: () =>\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\tconst { side } = state.current;\n\n\t\t\t\tstate = { ...initialState };\n\t\t\t\tstate.current = { ...state.current, side };\n\n\t\t\t\treturn state;\n\t\t\t}),\n\n\t\tsetAction: (action: ActionType) => {\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\tstate.action = action;\n\t\t\t});\n\t\t},\n\n\t\tsetTradingPosition: (tradingPosition: TradingPosition | undefined) => {\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\tstate.tradingPosition = tradingPosition ? { ...tradingPosition } : tradingPosition;\n\t\t\t});\n\t\t},\n\n\t\tsetTradingInstrument: (tradingInstrument: Instrument | undefined) => {\n\t\t\tset((state: OrderStore) => {\n\t\t\t\tstate.tradingInstrument = tradingInstrument ? { ...tradingInstrument } : tradingInstrument;\n\t\t\t});\n\t\t},\n\n\t\tsetCurrentQuote: (currentQuote: PriceQuote | undefined) => {\n\t\t\tset((state: OrderStore) => {\n\t\t\t\tstate.currentQuote = currentQuote ? { ...currentQuote } : currentQuote;\n\t\t\t});\n\t\t},\n\n\t\tsetMarketItem: (marketItem: MarketItem | undefined) => {\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\t// create object copy to not be passed by reference\n\n\t\t\t\tstate.marketItem = marketItem ? { ...marketItem } : marketItem;\n\t\t\t});\n\t\t},\n\n\t\tsetTradeProps: (values: Order) => {\n\t\t\tset((state: OrderStore) => {\n\t\t\t\tstate.current = { ...state.current, ...values };\n\t\t\t});\n\t\t},\n\n\t\tsetAmountInfo: (amountInfo: IAmountInfo) => {\n\t\t\tset((state: OrderStore) => {\n\t\t\t\tstate.current.amountInfo = { ...state.current.amountInfo, ...amountInfo };\n\t\t\t});\n\t\t},\n\n\t\tsetOpenPriceInfo: (openPriceInfo: IPriceInfo) => {\n\t\t\tset((state: OrderStore) => {\n\t\t\t\tstate.current.openPriceInfo = { ...state.current.openPriceInfo, ...openPriceInfo };\n\t\t\t});\n\t\t},\n\n\t\tsetTakeProfitInfo: (takeProfitInfo: IPriceInfo) => {\n\t\t\tset((state: OrderStore) => {\n\t\t\t\tstate.current.takeProfitInfo = { ...state.current.takeProfitInfo, ...takeProfitInfo };\n\t\t\t});\n\t\t},\n\n\t\tsetStopLossInfo: (stopLossInfo: IPriceInfo) => {\n\t\t\tset((state: OrderStore) => {\n\t\t\t\tstate.current.stopLossInfo = { ...state.current.stopLossInfo, ...stopLossInfo };\n\t\t\t});\n\t\t},\n\n\t\tsetIsSignalOrder: (isSignalOrder: boolean) => {\n\t\t\tset((state: OrderStore) => {\n\t\t\t\tstate.isSignalOrder = isSignalOrder;\n\t\t\t});\n\t\t},\n\n\t\tfillStoreFromPosition: (\n\t\t\ttradingPosition: TradingPosition,\n\t\t\tlimitsType?: TradingPositionLimitType[],\n\t\t\tisPositionDraggingDisabled?: boolean,\n\t\t\tpips?: { takeProfitPips: number; stopLossPips: number }\n\t\t) => {\n\t\t\tconst position = get().tradingPosition;\n\t\t\tconst limitsOnly = get().current;\n\t\t\tif (position && tradingPosition.posId === position.posId && compareLimits(limitsOnly, limitsType)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\treturn (state = { ...initialState });\n\t\t\t});\n\t\t\tconst { marketItem, ...restTradingPosition } = tradingPosition;\n\n\t\t\tif (tradingPosition instanceof GymTradingPosition) {\n\t\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\t\tstate.tradingPosition = tradingPosition;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\t\tstate.tradingPosition = { ...restTradingPosition };\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\tif (state.tradingPosition !== undefined) {\n\t\t\t\t\tstate.tradingPosition.marketItem = marketItem ? { ...marketItem } : undefined;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\tstate.marketItem = tradingPosition.marketItem ? { ...tradingPosition.marketItem } : tradingPosition.marketItem;\n\t\t\t});\n\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\tstate.current = {\n\t\t\t\t\t...state.current,\n\t\t\t\t\tside: tradingPosition.side,\n\t\t\t\t\ttype: tradingPosition.type,\n\t\t\t\t\tdate: tradingPosition.eT,\n\t\t\t\t\tlimitsOnly: limitsType,\n\t\t\t\t\tisPositionDraggingDisabled: isPositionDraggingDisabled,\n\t\t\t\t};\n\t\t\t});\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\tif (state.current.amountInfo !== undefined) {\n\t\t\t\t\tstate.current.amountInfo.amount = tradingPosition.qty;\n\t\t\t\t}\n\t\t\t});\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\tif (tradingPosition.state === TradingPositionState.open) {\n\t\t\t\t\tstate.current.openPriceInfo = { ...state.current.openPriceInfo, price: tradingPosition.oP, isActive: true };\n\t\t\t\t} else if (tradingPosition.state === TradingPositionState.pending) {\n\t\t\t\t\tstate.current.openPriceInfo = { ...state.current.openPriceInfo, price: tradingPosition.prc, isActive: true };\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tlet stopLoss = tradingPosition.sl ? (isNaN(tradingPosition.sl) ? undefined : tradingPosition.sl) : undefined;\n\n\t\t\tlet takeProfit = tradingPosition.tp ? (isNaN(tradingPosition.tp) ? undefined : tradingPosition.tp) : undefined;\n\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\tif (takeProfit || limitsType?.includes(TradingPositionLimitType.TakeProfit)) {\n\t\t\t\t\tif (!takeProfit && tradingPosition.currentPrice && pips?.takeProfitPips) {\n\t\t\t\t\t\tconst mul = tradingPosition.side === TradingPositionSide.Buy ? 1 : -1;\n\t\t\t\t\t\ttakeProfit = tradingPosition.currentPrice + pips.takeProfitPips * getMarketItemPipSize(marketItem) * mul;\n\t\t\t\t\t}\n\n\t\t\t\t\tstate.current.takeProfitInfo = {\n\t\t\t\t\t\t...state.current.takeProfitInfo,\n\t\t\t\t\t\tisActive: true,\n\t\t\t\t\t\tprice: takeProfit,\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tstate.current.takeProfitInfo = {\n\t\t\t\t\t\t...state.current.takeProfitInfo,\n\t\t\t\t\t\tisActive: false,\n\t\t\t\t\t\tprice: undefined,\n\t\t\t\t\t\tpotentialProfitLoss: undefined,\n\t\t\t\t\t\terror: undefined,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\tif (stopLoss || limitsType?.includes(TradingPositionLimitType.StopLoss)) {\n\t\t\t\t\tif (!stopLoss && tradingPosition.currentPrice && pips?.stopLossPips) {\n\t\t\t\t\t\tconst mul = tradingPosition.side === TradingPositionSide.Buy ? 1 : -1;\n\t\t\t\t\t\tstopLoss = tradingPosition.currentPrice - pips.stopLossPips * getMarketItemPipSize(marketItem) * mul;\n\t\t\t\t\t}\n\n\t\t\t\t\tstate.current.stopLossInfo = { ...state.current.stopLossInfo, isActive: true, price: stopLoss };\n\t\t\t\t} else {\n\t\t\t\t\tstate.current.stopLossInfo = {\n\t\t\t\t\t\t...state.current.stopLossInfo,\n\t\t\t\t\t\tisActive: false,\n\t\t\t\t\t\tprice: undefined,\n\t\t\t\t\t\tpotentialProfitLoss: undefined,\n\t\t\t\t\t\terror: undefined,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tcreateTradeRequestObject: (\n\t\t\tpips?: { takeProfitPips: number; stopLossPips: number },\n\t\t\tcurrentPriceQuote?: PriceQuote\n\t\t) => {\n\t\t\tlet tradeObject: any;\n\t\t\tset((state: OrderStoreValues) => {\n\t\t\t\tconst { tradingPosition, current } = state;\n\n\t\t\t\tconst { type } = state.current;\n\t\t\t\tconst editState =\n\t\t\t\t\ttradingPosition?.state === TradingPositionState.open ||\n\t\t\t\t\ttradingPosition?.state === TradingPositionState.pending;\n\n\t\t\t\tconst isMarketOrder = type === TradingPositionType.Market;\n\n\t\t\t\tlet stopLevel = null;\n\t\t\t\tlet limitLevel = null;\n\t\t\t\tlet trailingStop = 0;\n\n\t\t\t\tif (current.stopLossInfo?.isActive && current.stopLossInfo?.price) {\n\t\t\t\t\tstopLevel = current.stopLossInfo?.price;\n\t\t\t\t\tif (current.stopLossType === stopLossTypes.Trailing && pips) {\n\t\t\t\t\t\tif (isMarketOrder || tradingPosition?.state === TradingPositionState.open) {\n\t\t\t\t\t\t\tlet currentPrice = 0;\n\t\t\t\t\t\t\tif (editState) {\n\t\t\t\t\t\t\t\tif (current.side === TradingPositionSide.Buy) {\n\t\t\t\t\t\t\t\t\tcurrentPrice = currentPriceQuote?.b ?? 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcurrentPrice = currentPriceQuote?.a ?? 0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (current.side === TradingPositionSide.Buy) {\n\t\t\t\t\t\t\t\t\tcurrentPrice = currentPriceQuote?.a ?? 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcurrentPrice = currentPriceQuote?.b ?? 0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttrailingStop = Math.abs(currentPrice - stopLevel);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst openPrice = current.openPriceInfo?.price ?? 0;\n\t\t\t\t\t\t\ttrailingStop = Math.abs(openPrice - stopLevel);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (current.takeProfitInfo?.isActive && current.takeProfitInfo?.price) {\n\t\t\t\t\tlimitLevel = current.takeProfitInfo?.price;\n\t\t\t\t}\n\n\t\t\t\tlet commonProps: ITradeObjProps = {\n\t\t\t\t\tstopLevel,\n\t\t\t\t\tlimitLevel,\n\t\t\t\t\ttrailingStop,\n\t\t\t\t\treqId: +new Date().getSeconds(),\n\t\t\t\t\tacctId: current.accountId!,\n\t\t\t\t};\n\n\t\t\t\tif (editState) {\n\t\t\t\t\t// edit order / position\n\t\t\t\t\tif (current.limitsOnly) {\n\t\t\t\t\t\t// modify take profit and stop loss for open positions\n\t\t\t\t\t\tif (tradingPosition?.state === TradingPositionState.open) {\n\t\t\t\t\t\t\ttradeObject = {\n\t\t\t\t\t\t\t\t...commonProps,\n\t\t\t\t\t\t\t\tposId: tradingPosition.posId,\n\t\t\t\t\t\t\t} as EditPositionRequest;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// modify take profit and stop loss for pending orders\n\t\t\t\t\t\tif (tradingPosition?.state === TradingPositionState.pending) {\n\t\t\t\t\t\t\ttradeObject = {\n\t\t\t\t\t\t\t\t...commonProps,\n\t\t\t\t\t\t\t\tposId: tradingPosition.posId,\n\t\t\t\t\t\t\t\tpriceLevel: tradingPosition.prc,\n\t\t\t\t\t\t\t\texpiration: tradingPosition.eT,\n\t\t\t\t\t\t\t} as EditOrderRequest;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// modify a pending order\n\t\t\t\t\t\ttradeObject = {\n\t\t\t\t\t\t\t...commonProps,\n\t\t\t\t\t\t\tposId: tradingPosition?.posId,\n\t\t\t\t\t\t\ttradeSide: current.side,\n\t\t\t\t\t\t\ttradeSize: current.amountInfo?.amount ?? 0,\n\t\t\t\t\t\t\ttradeType: current.type,\n\t\t\t\t\t\t\tpriceLevel: !isMarketOrder ? current.openPriceInfo?.price : null,\n\t\t\t\t\t\t\texpiration: !isMarketOrder ? current.date : null,\n\t\t\t\t\t\t} as EditOrderRequest;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (!isMarketOrder) {\n\t\t\t\t\t\t// new order\n\t\t\t\t\t\ttradeObject = {\n\t\t\t\t\t\t\t...commonProps,\n\t\t\t\t\t\t\tcode: state.marketItem?.code,\n\t\t\t\t\t\t\tfeedId: state.marketItem?.feedId,\n\t\t\t\t\t\t\ttradeSide: current.side,\n\t\t\t\t\t\t\ttradeSize: current.amountInfo?.amount,\n\t\t\t\t\t\t\ttradeType: !isMarketOrder ? current.type : null,\n\t\t\t\t\t\t\tpriceLevel: !isMarketOrder ? current.openPriceInfo?.price : null,\n\t\t\t\t\t\t\texpiration: !isMarketOrder ? current.date : null,\n\t\t\t\t\t\t\tlotAmountQty: current.amountInfo?.amount,\n\t\t\t\t\t\t} as NewOrderRequest;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// new position\n\t\t\t\t\t\ttradeObject = {\n\t\t\t\t\t\t\t...commonProps,\n\t\t\t\t\t\t\tcode: state.marketItem?.code,\n\t\t\t\t\t\t\tfeedId: state.marketItem?.feedId,\n\t\t\t\t\t\t\ttradeSide: current.side,\n\t\t\t\t\t\t\ttradeSize: current.amountInfo?.amount,\n\t\t\t\t\t\t\tlotAmountQty: current.amountInfo?.amount,\n\t\t\t\t\t\t} as NewPositionRequest;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn tradeObject;\n\t\t},\n\t}))\n);\n\nexport default createSelectors(orderStore);\n","import { TradingPositionLimitType } from '../../utils/functions/enums';\n\nexport const compareLimits = (a?: TradingPositionLimitType[], b?: TradingPositionLimitType[]) => {\n\tif (a && b && a.length === b.length) {\n\t\tfor (var i = 0; i < a.length; i++) {\n\t\t\tif (!b.includes(a[i])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\treturn false;\n};\n","import React from 'react';\nimport cn from 'classnames';\nimport { TFunctionResult } from 'i18next';\nimport { useTranslation } from 'react-i18next';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport WtrPopup from '../../../../../../components/WtrPopup/WtrPopup';\n\nimport styles from './InfoElement.module.scss';\nimport tradingViewStore from '../../../../../../../store/tradingViewStore';\nimport { TicketLayout } from '../../../../../../../utils/functions/enums';\n\ninterface InfoElementProps {\n\ttitle: string;\n\tvalue: string | number | TFunctionResult;\n\tsetRed?: boolean;\n\tsetRedPL?: boolean;\n\tsetRedPip?: boolean;\n\tid?: string;\n\tshowMarginTooltip?: boolean;\n\tclassName?: string;\n\tvalueClassName?: string;\n\tisArabic?: boolean;\n}\n\nconst InfoElement = ({\n\ttitle,\n\tvalue,\n\tsetRed,\n\tsetRedPL,\n\tsetRedPip,\n\tid,\n\tshowMarginTooltip,\n\tclassName,\n\tvalueClassName,\n\tisArabic,\n}: InfoElementProps) => {\n\tconst { t } = useTranslation();\n\tconst dockStylesTicket = tradingViewStore.use.dockStylesTicket();\n\n\tconst applyColorStyling = () => {\n\t\tif (setRed || setRedPL || setRedPip) {\n\t\t\treturn styles.red;\n\t\t} else if (!setRed && id && !setRedPip) {\n\t\t\treturn styles.green;\n\t\t} else {\n\t\t\treturn styles.value;\n\t\t}\n\t};\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t{title}\n\t\t\t\t{showMarginTooltip && (\n\t\t\t\t\t{t('wtr:INFO_MARGIN')}
}\n\t\t\t\t\t\ttrigger={}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t{value}\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default InfoElement;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalHeader\":\"ClosePositionTicket_modalHeader__rPZjz\",\"modalBody\":\"ClosePositionTicket_modalBody__22bgq\",\"modalFooter\":\"ClosePositionTicket_modalFooter__63i3e\",\"orderQuantityLabels\":\"ClosePositionTicket_orderQuantityLabels__2k082\",\"modalOrderQuantityLabels\":\"ClosePositionTicket_modalOrderQuantityLabels__3ogum\",\"header\":\"ClosePositionTicket_header__34o3F\",\"modalButtons\":\"ClosePositionTicket_modalButtons__1xTJ0\",\"closeModal\":\"ClosePositionTicket_closeModal__2y7Ha\",\"modalButton\":\"ClosePositionTicket_modalButton__gkQzi\",\"modalInfoPosition\":\"ClosePositionTicket_modalInfoPosition__p049M\",\"ticketInfo\":\"ClosePositionTicket_ticketInfo__1A0cy\",\"ticketInfoModal\":\"ClosePositionTicket_ticketInfoModal__35VZF\",\"closeContainer\":\"ClosePositionTicket_closeContainer__1EIYZ\",\"closeContainerSummary\":\"ClosePositionTicket_closeContainerSummary__2y0j_\",\"closeFields\":\"ClosePositionTicket_closeFields__1xd9t\",\"iconContainer\":\"ClosePositionTicket_iconContainer__1RsaQ\",\"icon\":\"ClosePositionTicket_icon__4CWkT\",\"orderModalFooter\":\"ClosePositionTicket_orderModalFooter__2ReaF\",\"modalPartialButtons\":\"ClosePositionTicket_modalPartialButtons__1cF5i\",\"undockedPartialButtons\":\"ClosePositionTicket_undockedPartialButtons__1d5gm\",\"closeTicket\":\"ClosePositionTicket_closeTicket__3In-_\",\"amountInput\":\"ClosePositionTicket_amountInput__3hCYK\",\"disableButton\":\"ClosePositionTicket_disableButton__3J0Xe\",\"errorValidation\":\"ClosePositionTicket_errorValidation__2asV-\",\"invalidRemainder\":\"ClosePositionTicket_invalidRemainder__28TVU\",\"modalContainerSummary\":\"ClosePositionTicket_modalContainerSummary__1CxNW\",\"closeContainerModal\":\"ClosePositionTicket_closeContainerModal__Fg5Ej\",\"positive\":\"ClosePositionTicket_positive__D9ibq\",\"negative\":\"ClosePositionTicket_negative__1Vm3e\",\"notificationCustomError\":\"ClosePositionTicket_notificationCustomError__21kkM\",\"notificationCustomIcon\":\"ClosePositionTicket_notificationCustomIcon__3Zkaw\",\"notificationTitle\":\"ClosePositionTicket_notificationTitle__3OQNU\",\"toastTitle\":\"ClosePositionTicket_toastTitle__1gADz\",\"showIcon\":\"ClosePositionTicket_showIcon__3i7qe\",\"fa\":\"ClosePositionTicket_fa__hG1Jb\",\"notificationMessage\":\"ClosePositionTicket_notificationMessage__2ncJe\",\"closeButtonLocation\":\"ClosePositionTicket_closeButtonLocation__3IuGY\",\"text\":\"ClosePositionTicket_text__2hUzg\",\"label\":\"ClosePositionTicket_label__YKomV\",\"value\":\"ClosePositionTicket_value__Zmbth\",\"input\":\"ClosePositionTicket_input__3eZ8-\",\"amountLabel\":\"ClosePositionTicket_amountLabel__N2z3V\"};","import { useTranslation } from 'react-i18next';\n\nconst useShortTranslation = (languageString: string) => {\n\tconst { t } = useTranslation();\n\tconst tt = (name: string, options?: Object) => {\n\t\treturn t(`${languageString}${name}`, options);\n\t};\n\treturn tt;\n};\n\nexport default useShortTranslation;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"undockedContainer\":\"OrderInformation_undockedContainer__1_FZW\",\"accordion\":\"OrderInformation_accordion__MEDs3\",\"body\":\"OrderInformation_body__HK70I\",\"active\":\"OrderInformation_active__1J4jB\",\"dockedContainer\":\"OrderInformation_dockedContainer__2UHgW\",\"closeButtonLocation\":\"OrderInformation_closeButtonLocation__2Nm4c\",\"lightmodalInfoPosition\":\"OrderInformation_lightmodalInfoPosition__2Keug\",\"fieldContainer\":\"OrderInformation_fieldContainer__3WOVI\",\"lightconfirmFields\":\"OrderInformation_lightconfirmFields__2oeMh\",\"darkconfirmFields\":\"OrderInformation_darkconfirmFields__1G0FX\",\"container\":\"OrderInformation_container__1vC0F\",\"containerChildWindow\":\"OrderInformation_containerChildWindow__1yPPA\",\"infoContainer\":\"OrderInformation_infoContainer__TVUBu\",\"elementContainer\":\"OrderInformation_elementContainer__EaneI\",\"marketInfoHeading\":\"OrderInformation_marketInfoHeading__2fdo8\",\"positionMsg\":\"OrderInformation_positionMsg__11nIU\",\"ordersMsg\":\"OrderInformation_ordersMsg__19IKz\",\"marginUsedMsg\":\"OrderInformation_marginUsedMsg__2XuaD\",\"emptyContainer\":\"OrderInformation_emptyContainer__2g4-J\",\"startTrading_Inactive\":\"OrderInformation_startTrading_Inactive__2Vkgf\",\"startTrading_Active\":\"OrderInformation_startTrading_Active__LLLAZ\",\"chartIcon\":\"OrderInformation_chartIcon__EcPJA\",\"chartMessage\":\"OrderInformation_chartMessage__3mvmk\",\"icon\":\"OrderInformation_icon__3sYb7\",\"header\":\"OrderInformation_header__-QLxf\",\"formattedSwapInfo\":\"OrderInformation_formattedSwapInfo__DMbfy\",\"infoElementValue\":\"OrderInformation_infoElementValue__ILpzR\",\"red\":\"OrderInformation_red__YKuWw\",\"pL\":\"OrderInformation_pL__378IJ\",\"date\":\"OrderInformation_date__1bxmf\"};","import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport LanguageDetector from 'i18next-browser-languagedetector';\nimport HttpApi from 'i18next-http-backend';\nimport ChainedBackend from 'i18next-chained-backend';\nimport HttpBackend from 'i18next-http-backend';\nimport LocalStorageBackend from 'i18next-localstorage-backend';\n\nimport { getEnabledLangOptions } from '../views/features/Dashboard/Settings/settingsOptions';\n\nconst loadPath = '/locales/{{lng}}/{{ns}}.json';\n\nfunction genRandonNumber(length: number) {\n\tconst chars = '0123456789';\n\tconst charLength = chars.length;\n\tlet result = '';\n\tfor (var i = 0; i < length; i++) {\n\t\tresult += chars.charAt(Math.floor(Math.random() * charLength));\n\t}\n\treturn result;\n}\n\nconst HASH = genRandonNumber(10);\n\ni18n\n\t.use(HttpApi)\n\t.use(LanguageDetector)\n\t.use(initReactI18next)\n\t.use(ChainedBackend)\n\t.init({\n\t\treact: {\n\t\t\tuseSuspense: false,\n\t\t\ttransKeepBasicHtmlNodesFor: ['br', 'b', 'i', 'strong'],\n\t\t},\n\t\tbackend: {\n\t\t\tbackends: [LocalStorageBackend, HttpBackend],\n\t\t\tbackendOptions: [\n\t\t\t\t{\n\t\t\t\t\texpirationTime: 7 * 24 * 60 * 60 * 1000, // 7 days\n\t\t\t\t\tdefaultVersion: \"v\" + HASH\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tloadPath,\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\tdetection: {\n\t\t\torder: ['querystring', 'localStorage', 'navigator'],\n\t\t\tlookupQuerystring: 'lang',\n\t\t\tlookupLocalStorage: 'language',\n\t\t\tlookupCookie: 'cookie',\n\t\t\tcaches: ['localStorage', 'cookie'],\n\t\t},\n\t\t// debug: true,\n\t\t// lng: navigator.language,\n\t\tfallbackLng: 'en',\n\t\tinterpolation: {\n\t\t\tescapeValue: false, // not needed for react as it escapes by default\n\t\t},\n\t\tsupportedLngs: getEnabledLangOptions().map((lang) => lang.value),\n\t\tkeySeparator: '',\n\t\tns: ['andr', 'en', 'wtr', 'Vietnamese_VI_updated', 'err_codes_1', 'instruments'],\n\t});\n\nexport default i18n;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tickerActions\":\"BidAskSpread_tickerActions__tRjG2\",\"tickerActionsModify\":\"BidAskSpread_tickerActionsModify__2KcMa\",\"OrderButton\":\"BidAskSpread_OrderButton__2BKHy\",\"tickerLow\":\"BidAskSpread_tickerLow__3AT7g\",\"tickerLowLong\":\"BidAskSpread_tickerLowLong__2oH9V\",\"tickerHigh\":\"BidAskSpread_tickerHigh__1HXjQ\",\"tickerHighLong\":\"BidAskSpread_tickerHighLong__1lynE\",\"colorRed\":\"BidAskSpread_colorRed__3fF8a\",\"colorGreen\":\"BidAskSpread_colorGreen__3TiiV\",\"instrumentButton\":\"BidAskSpread_instrumentButton__vUNGb\",\"windowInstrumentButton\":\"BidAskSpread_windowInstrumentButton__67R-l\",\"gridChartInstrumentButton\":\"BidAskSpread_gridChartInstrumentButton__8RnHl\",\"resizedButton\":\"BidAskSpread_resizedButton__2rczZ\",\"orderButton\":\"BidAskSpread_orderButton__7c4EX\",\"orderButtonModal\":\"BidAskSpread_orderButtonModal__2JIH7\",\"borderButton\":\"BidAskSpread_borderButton__3UbCU\",\"instrumentGreen\":\"BidAskSpread_instrumentGreen__2V_X3\",\"instrumentGreenHighlighted\":\"BidAskSpread_instrumentGreenHighlighted__1Q_7n\",\"instrumentRed\":\"BidAskSpread_instrumentRed__3VMmS\",\"instrumentRedHighlighted\":\"BidAskSpread_instrumentRedHighlighted__zkzlt\",\"instrumentGrey\":\"BidAskSpread_instrumentGrey__3sO1s\",\"orderGreen\":\"BidAskSpread_orderGreen__1cqaP\",\"orderRed\":\"BidAskSpread_orderRed__1Lq2E\",\"orderGrey\":\"BidAskSpread_orderGrey__1JqSC\",\"spread\":\"BidAskSpread_spread__21ZFB\",\"rightHandSpread\":\"BidAskSpread_rightHandSpread__1s6Et\",\"headerTickerButtons\":\"BidAskSpread_headerTickerButtons__1alNV\",\"instrumentPosition\":\"BidAskSpread_instrumentPosition__k-ThC\",\"windowInstrumentPosition\":\"BidAskSpread_windowInstrumentPosition__3EenE\",\"sellNumber\":\"BidAskSpread_sellNumber__2_RN2\",\"label\":\"BidAskSpread_label__3uRQ6\",\"orderPosition\":\"BidAskSpread_orderPosition__3iZ4w\",\"orderPositionModal\":\"BidAskSpread_orderPositionModal__3yWHl\",\"spreadButton\":\"BidAskSpread_spreadButton__3sbCM\",\"highlightSpread\":\"BidAskSpread_highlightSpread__11sYQ\",\"windowSpread\":\"BidAskSpread_windowSpread__1Dm05\",\"tickerContainer\":\"BidAskSpread_tickerContainer__jjJnL\",\"notOrder\":\"BidAskSpread_notOrder__36LVQ\",\"showPrice\":\"BidAskSpread_showPrice__2ijn7\",\"checkboxPrice\":\"BidAskSpread_checkboxPrice__2iC7m\",\"container\":\"BidAskSpread_container__18U_r\",\"checkboxPriceBuy\":\"BidAskSpread_checkboxPriceBuy__3UWHU\",\"checkboxPriceSell\":\"BidAskSpread_checkboxPriceSell__3F1pq\",\"checkbox\":\"BidAskSpread_checkbox__2OUkd\",\"sellLabel\":\"BidAskSpread_sellLabel__10AjA\",\"sellLabelModal\":\"BidAskSpread_sellLabelModal__-s59o\",\"tooltipTimestamp\":\"BidAskSpread_tooltipTimestamp__3W9FC\",\"tooltipTitle\":\"BidAskSpread_tooltipTitle__xp4VG\",\"closedMarketContainer\":\"BidAskSpread_closedMarketContainer__10-vk\",\"closedMarket\":\"BidAskSpread_closedMarket__1kSRZ\",\"borderButtonSell\":\"BidAskSpread_borderButtonSell__1SPu9\",\"borderButtonBuy\":\"BidAskSpread_borderButtonBuy__wxSl-\",\"tickerContainerBuy\":\"BidAskSpread_tickerContainerBuy__3lPaO\",\"timeUpdate\":\"BidAskSpread_timeUpdate__2d2jD\"};","import React, { useRef, useState } from 'react';\n\nimport { HistoryTick, MarketItem, PriceQuote, TradingPositionState } from '../../gateways/RfpGateway/rfp.types';\n\nimport { GymTradingAccount } from './Accounts/GymTradingAccount';\nimport { GymTradingPosition } from './Positions/GymTradingPosition';\nimport { GymSimulation } from './Simulations/GymSimulation';\nimport { GymSimulationsManager } from './Simulations/GymSimulationsManager';\n\nexport interface ITradersGymContext {\n\tgymTradingAccount?: GymTradingAccount;\n\tlastHistoryTick?: HistoryTick;\n\tpriceQuote?: PriceQuote;\n\tspreadPriceDif?: number;\n\tisActive?: boolean;\n\tsimulation?: GymSimulation;\n\tsimulationList?: GymSimulation[];\n\tisOpenCreateSimulationModal?: boolean;\n\tsimulationsManager?: GymSimulationsManager;\n\tsearchInstrumentSelected?: MarketItem;\n\tisOpenResetTradersGymModal?: boolean;\n\tisPlaying?: boolean;\n}\n\nexport type TradersGymContextType = {\n\ttradersGymContext: ITradersGymContext;\n\tsetGymProps: (values: ITradersGymContext) => void;\n\tupdateGymPriceQuote: (lastHistoryTick: HistoryTick) => void;\n\tresetOrderStore: () => void;\n\tgetLastPriceQuote: () => PriceQuote | undefined;\n\tconvertHistoryTickToPriceQuote: (historyTick: HistoryTick) => PriceQuote;\n\tgetPositions: (state: TradingPositionState) => GymTradingPosition[];\n};\n\nexport const TradersGymContext = React.createContext(null);\n\nconst TradersGymContextProvider: React.FC = ({ children }) => {\n\tconst initialState: ITradersGymContext = {\n\t\tgymTradingAccount: undefined,\n\t\tisActive: false,\n\t\tlastHistoryTick: undefined,\n\t\tpriceQuote: undefined,\n\t\tspreadPriceDif: undefined,\n\t\tsimulation: undefined,\n\t\tsimulationList: [],\n\t\tisOpenCreateSimulationModal: false,\n\t\tsimulationsManager: undefined,\n\t\tsearchInstrumentSelected: undefined,\n\t\tisOpenResetTradersGymModal: false,\n\t\tisPlaying: false,\n\t};\n\n\tconst [tradersGymContext, setTradersGymContext] = useState(initialState);\n\n\tconst convertHistoryTickToPriceQuote = (historyTick: HistoryTick) => {\n\t\t//Spread support\n\t\tconst priceOffset = tradersGymContext.spreadPriceDif ?? 0;\n\t\treturn {\n\t\t\ta: historyTick.close + priceOffset,\n\t\t\tb: historyTick.close,\n\t\t\tc: historyTick.code,\n\t\t\tf: historyTick.feedId,\n\t\t\th: historyTick.high,\n\t\t\tl: historyTick.low,\n\t\t\tt: historyTick.openTime,\n\t\t} as PriceQuote;\n\t};\n\n\tconst getLastPriceQuote = () => {\n\t\tif (tradersGymContext.lastHistoryTick) {\n\t\t\treturn convertHistoryTickToPriceQuote(tradersGymContext.lastHistoryTick);\n\t\t}\n\t\treturn undefined;\n\t};\n\n\t// Used for throttle the store simulation, it need it because could cause performance issue\n\tconst priceQuoteInThrottle = useRef(false);\n\t// Throttle once per 333 millis\n\tconst priceQuoteThrottleLimit = 333;\n\n\tconst resetOrderStore = () => {\n\t\tsetGymProps(initialState);\n\t\tif (priceQuoteInThrottle.current) {\n\t\t\tpriceQuoteInThrottle.current = false;\n\t\t}\n\t};\n\n\tconst updateGymPriceQuote = (lastHistoryTick: HistoryTick) => {\n\t\tif (!priceQuoteInThrottle.current) {\n\t\t\tpriceQuoteInThrottle.current = true;\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (lastHistoryTick) {\n\t\t\t\t\tconst quote = convertHistoryTickToPriceQuote(lastHistoryTick);\n\t\t\t\t\tsetGymProps({ priceQuote: quote });\n\t\t\t\t}\n\n\t\t\t\tpriceQuoteInThrottle.current = false;\n\t\t\t}, priceQuoteThrottleLimit);\n\t\t}\n\t};\n\n\t/**\n\t * Set the tradersGymContext\n\t * @param values the new values\n\t */\n\tconst setGymProps = (values: ITradersGymContext) => {\n\t\tsetTradersGymContext((current) => {\n\t\t\treturn { ...current, ...values };\n\t\t});\n\t};\n\n\tconst getPositions = (state: TradingPositionState) => {\n\t\treturn state === TradingPositionState.closed\n\t\t\t? tradersGymContext.gymTradingAccount?.closedPositions.filter((position) => {\n\t\t\t\t\treturn position.state === state;\n\t\t\t }) ?? []\n\t\t\t: tradersGymContext.gymTradingAccount?.activePositions.filter((position) => {\n\t\t\t\t\treturn position.state === state;\n\t\t\t }) ?? [];\n\t};\n\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n\nexport default TradersGymContextProvider;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"icon\":\"PositionGrid_icon__1rZLP\",\"plusTheme\":\"PositionGrid_plusTheme__c1k81\",\"tpslCell\":\"PositionGrid_tpslCell__fvHgn\",\"closeAndMoreOptionsCell\":\"PositionGrid_closeAndMoreOptionsCell__1EeeS\",\"plusButton\":\"PositionGrid_plusButton__2Mbt4\",\"iconContainer\":\"PositionGrid_iconContainer__2v8Ks\",\"profitValues\":\"PositionGrid_profitValues__13jrp\",\"HoverButton\":\"PositionGrid_HoverButton__qMm1C\",\"plusContainer\":\"PositionGrid_plusContainer__2A4Ej\",\"darkplusTheme\":\"PositionGrid_darkplusTheme__3vV8B\",\"treeListLayout\":\"PositionGrid_treeListLayout__2oKxg\",\"editTheme\":\"PositionGrid_editTheme__1NC7l\",\"highlightValues\":\"PositionGrid_highlightValues__1Urdf\",\"lighteditClickTheme\":\"PositionGrid_lighteditClickTheme__1FAyy\",\"darkeditClickTheme\":\"PositionGrid_darkeditClickTheme__1HdAK\",\"Popup\":\"PositionGrid_Popup__2sU2M\",\"triggerContainer\":\"PositionGrid_triggerContainer__1yWG1\",\"PopupCog\":\"PositionGrid_PopupCog__1KFEO\",\"PopupContainer\":\"PositionGrid_PopupContainer__3AWXo\",\"PopupContainerCog\":\"PositionGrid_PopupContainerCog__lDxZt\",\"PopupContainerCogOne\":\"PositionGrid_PopupContainerCogOne__2rWvX\",\"iconWrapper\":\"PositionGrid_iconWrapper__3ybJ7\",\"settingsContainer\":\"PositionGrid_settingsContainer__1Vo0V\",\"lightsettingsPopup\":\"PositionGrid_lightsettingsPopup__2NThv\",\"darksettingsPopup\":\"PositionGrid_darksettingsPopup__235gd\",\"closeIcon\":\"PositionGrid_closeIcon__1awWy\",\"lightCheckbox\":\"PositionGrid_lightCheckbox__1AjvQ\",\"darkCheckbox\":\"PositionGrid_darkCheckbox__2T58Q\",\"columnChooser\":\"PositionGrid_columnChooser__1kmnK\",\"cogContainer\":\"PositionGrid_cogContainer__w3Nb4\",\"greenCurrent\":\"PositionGrid_greenCurrent__23cRo\",\"redCurrent\":\"PositionGrid_redCurrent__3cq5m\",\"headerCell\":\"PositionGrid_headerCell__3snka\",\"clearFilters\":\"PositionGrid_clearFilters__1djd1\",\"startTrading_Inactive\":\"PositionGrid_startTrading_Inactive__lbZ1W\",\"startTrading_Active\":\"PositionGrid_startTrading_Active__QmjW5\",\"emptyStateMessage\":\"PositionGrid_emptyStateMessage__1Jb_Z\",\"emptyStateMessageLink\":\"PositionGrid_emptyStateMessageLink__3JzBr\",\"emptyIcon\":\"PositionGrid_emptyIcon__1KU2_\",\"searchIcon\":\"PositionGrid_searchIcon__3dmL4\",\"noOrders\":\"PositionGrid_noOrders__vJmpS\",\"noPositions\":\"PositionGrid_noPositions__3h3vV\",\"positionDate\":\"PositionGrid_positionDate__1seFJ\",\"emptyGridContainer\":\"PositionGrid_emptyGridContainer__1xk7m\",\"headerCellInstrument\":\"PositionGrid_headerCellInstrument__1q21j\",\"modalRemoveOption\":\"PositionGrid_modalRemoveOption__OjEw2\",\"modalTopHeader\":\"PositionGrid_modalTopHeader__2SJwc\",\"modalTitle\":\"PositionGrid_modalTitle__CxEcb\",\"modalItems\":\"PositionGrid_modalItems__3CjOx\",\"modifyButton\":\"PositionGrid_modifyButton__1UeDq\",\"modifyFooter\":\"PositionGrid_modifyFooter__3Dj8z\",\"removeMessage\":\"PositionGrid_removeMessage__2uoKf\",\"actionButtons\":\"PositionGrid_actionButtons__2iC7j\",\"grid\":\"PositionGrid_grid__1C7pp\",\"sideTooltipWrapper\":\"PositionGrid_sideTooltipWrapper__micMF\",\"sideTooltipSquare\":\"PositionGrid_sideTooltipSquare__33NQR\",\"sideTooltipSquareArabic\":\"PositionGrid_sideTooltipSquareArabic__1E8bo\",\"sideTooltipSquareIcon\":\"PositionGrid_sideTooltipSquareIcon__1pK6_\",\"tooltipWrapper\":\"PositionGrid_tooltipWrapper__1MlUT\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"MarketTickerContainer\":\"WatchlistEdit_MarketTickerContainer__3foeB\",\"container\":\"WatchlistEdit_container__3BFtv\",\"darkCheck\":\"WatchlistEdit_darkCheck__19YoM\",\"lightCheck\":\"WatchlistEdit_lightCheck__uF8a4\",\"textAll\":\"WatchlistEdit_textAll__2Cvns\",\"windowEditHeader\":\"WatchlistEdit_windowEditHeader__2rQ7k\",\"windowHeader\":\"WatchlistEdit_windowHeader__vQgTH\",\"editHeader\":\"WatchlistEdit_editHeader__rO56s\",\"editIcon\":\"WatchlistEdit_editIcon__13Y2Q\",\"actionRow\":\"WatchlistEdit_actionRow__1mxWN\",\"editOptionContainer\":\"WatchlistEdit_editOptionContainer__2zSqE\",\"selectAll\":\"WatchlistEdit_selectAll__mDF5W\",\"move\":\"WatchlistEdit_move__10qSB\",\"remove\":\"WatchlistEdit_remove__aDBud\",\"editOptionIcons\":\"WatchlistEdit_editOptionIcons__t-62-\",\"removeItemsIcon\":\"WatchlistEdit_removeItemsIcon__1TAFq\",\"WatchListCategories\":\"WatchlistEdit_WatchListCategories__MK30J\",\"windowWatchListCategories\":\"WatchlistEdit_windowWatchListCategories__3Cemf\",\"WatchListCategoriesChild\":\"WatchlistEdit_WatchListCategoriesChild__IAOp-\",\"WatchListCategoriesChildEdit\":\"WatchlistEdit_WatchListCategoriesChildEdit__3FDLk\",\"windowEditDragContainer\":\"WatchlistEdit_windowEditDragContainer__1zpLU\",\"instrumentBox\":\"WatchlistEdit_instrumentBox__2EHwO\",\"windowMarketTickerContainerEdit\":\"WatchlistEdit_windowMarketTickerContainerEdit__1rfjr\",\"editContainer\":\"WatchlistEdit_editContainer__3mLFr\",\"TickerIcons\":\"WatchlistEdit_TickerIcons__GZ0ix\",\"showActions\":\"WatchlistEdit_showActions__vypYJ\",\"equityField\":\"WatchlistEdit_equityField__F--Is\",\"windowEditContainer\":\"WatchlistEdit_windowEditContainer__3qni_\",\"TickerInfo\":\"WatchlistEdit_TickerInfo__1wrdO\",\"windowTickerInfo\":\"WatchlistEdit_windowTickerInfo__2abf1\",\"checkboxContainer\":\"WatchlistEdit_checkboxContainer__13st7\",\"editOptionCheckboxContainer\":\"WatchlistEdit_editOptionCheckboxContainer__1kxHH\",\"checkmark\":\"WatchlistEdit_checkmark__1Awlv\",\"tickerContainer\":\"WatchlistEdit_tickerContainer__1fOtb\",\"Symbol\":\"WatchlistEdit_Symbol__2Ey_s\",\"SymbolDescription\":\"WatchlistEdit_SymbolDescription__2aLX1\",\"lightSymbolDescription\":\"WatchlistEdit_lightSymbolDescription__iTbBF\",\"darkSymbolDescription\":\"WatchlistEdit_darkSymbolDescription__2l_3d\",\"lightSymbol\":\"WatchlistEdit_lightSymbol__1Zl1c\",\"darkSymbol\":\"WatchlistEdit_darkSymbol__2NQst\",\"grabIndicatorContainer\":\"WatchlistEdit_grabIndicatorContainer__DvfLl\",\"grabIndicator\":\"WatchlistEdit_grabIndicator__3lTSt\",\"Title\":\"WatchlistEdit_Title__qaseY\",\"openModalTitle\":\"WatchlistEdit_openModalTitle__2p7vK\",\"lightTitle\":\"WatchlistEdit_lightTitle__26cLH\",\"darkTitle\":\"WatchlistEdit_darkTitle__kNeDG\",\"disableBtn\":\"WatchlistEdit_disableBtn__3QF2m\",\"editBarText\":\"WatchlistEdit_editBarText__1sI1d\"};","import React, { useContext } from 'react';\n\nimport { Popup as SemanticUiPopup } from 'semantic-ui-react';\n\nimport AppContext from '../../../contexts/AppContext';\nimport './WtrPopup.module.scss';\n\n/**\n * Wrapper component that allows you to stylize the Semantic Ui React Popup Component\n */\nconst WtrPopup = ({ children, ...rest }: any) => {\n\tconst { appTheme } = useContext(AppContext);\n\trest.className = `${rest.className || ''} ${appTheme}`;\n\n\treturn {children};\n};\n\nWtrPopup.Content = SemanticUiPopup.Content;\nWtrPopup.Header = SemanticUiPopup.Header;\n\nexport default WtrPopup;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"searchBox\":\"PositionsPanel_searchBox__MH3G9\",\"searchIcon\":\"PositionsPanel_searchIcon__TQkjw\",\"clearSearchIcon\":\"PositionsPanel_clearSearchIcon__1keCw\",\"notEmpty\":\"PositionsPanel_notEmpty__1yNr5\",\"loadingIcon\":\"PositionsPanel_loadingIcon__dmOJz\",\"headingContainer\":\"PositionsPanel_headingContainer__3zRPU\",\"iconContainer\":\"PositionsPanel_iconContainer__14p4c\",\"header\":\"PositionsPanel_header__3VJBa\",\"tools\":\"PositionsPanel_tools__uria3\",\"closeDropdown\":\"PositionsPanel_closeDropdown__2srAs\",\"downLoadIcon\":\"PositionsPanel_downLoadIcon__ifPNk\",\"tabs\":\"PositionsPanel_tabs__2wiCm\",\"content\":\"PositionsPanel_content__3ixfi\",\"positionTab\":\"PositionsPanel_positionTab__1IUdm\",\"active\":\"PositionsPanel_active__1F70l\",\"reserveSpaceHelper\":\"PositionsPanel_reserveSpaceHelper__2H0lc\",\"tabLabelValue\":\"PositionsPanel_tabLabelValue__2Dmp2\",\"tabLabel\":\"PositionsPanel_tabLabel__2zb--\",\"loadingImage\":\"PositionsPanel_loadingImage__20QLp\",\"loadingText\":\"PositionsPanel_loadingText__26Beb\",\"ordersTable\":\"PositionsPanel_ordersTable__2Kh6O\",\"lightordersTable\":\"PositionsPanel_lightordersTable__2fJOT\",\"darkordersTable\":\"PositionsPanel_darkordersTable__4llyW\",\"tableOverlayHide\":\"PositionsPanel_tableOverlayHide__MaMuT\",\"tableOverlayShow\":\"PositionsPanel_tableOverlayShow__2kflW\",\"orderTableContainer\":\"PositionsPanel_orderTableContainer__1UINz\",\"lighttableHeadColor\":\"PositionsPanel_lighttableHeadColor__2-iod\",\"darktableHeadColor\":\"PositionsPanel_darktableHeadColor__WSmU-\",\"modalDescription\":\"PositionsPanel_modalDescription__3pPJp\",\"descriptionLine\":\"PositionsPanel_descriptionLine__VSpj3\",\"descriptionData\":\"PositionsPanel_descriptionData__2tfYf\",\"modalButtons\":\"PositionsPanel_modalButtons__2_FpO\",\"modalHead\":\"PositionsPanel_modalHead__2Qp7r\",\"overlay\":\"PositionsPanel_overlay__3Id5E\",\"overlayTop\":\"PositionsPanel_overlayTop__35zoL\",\"lightdropdownTheme\":\"PositionsPanel_lightdropdownTheme__2U_HI\",\"darkdropdownTheme\":\"PositionsPanel_darkdropdownTheme__3FavK\",\"lighticonTheme\":\"PositionsPanel_lighticonTheme__1qgcX\",\"darkiconTheme\":\"PositionsPanel_darkiconTheme__25QgH\",\"lightclickTheme\":\"PositionsPanel_lightclickTheme__3KdD1\",\"lightplusTheme\":\"PositionsPanel_lightplusTheme__3gRBc\",\"darkplusTheme\":\"PositionsPanel_darkplusTheme__3OqxT\",\"paddingLeft\":\"PositionsPanel_paddingLeft__2l8g6\",\"delayedQuote\":\"PositionsPanel_delayedQuote__2fvHg\",\"darkpositionTitle\":\"PositionsPanel_darkpositionTitle__25e6-\",\"lightpositionTitle\":\"PositionsPanel_lightpositionTitle__2ptkr\",\"notificationCustomIcon\":\"PositionsPanel_notificationCustomIcon__38Y1d\",\"fa\":\"PositionsPanel_fa__1u8Uj\",\"notificationCustomInfo\":\"PositionsPanel_notificationCustomInfo__GxWjD\",\"notificationCustom\":\"PositionsPanel_notificationCustom__1qgr1\",\"notificationMessage\":\"PositionsPanel_notificationMessage__3cYkn\",\"toastTitle\":\"PositionsPanel_toastTitle__35cpZ\",\"notificationCustomError\":\"PositionsPanel_notificationCustomError__3wZYo\",\"notificationTitle\":\"PositionsPanel_notificationTitle__2gq8E\",\"showIcon\":\"PositionsPanel_showIcon__1BIsP\",\"lightshowIcon\":\"PositionsPanel_lightshowIcon__zXZLB\",\"gridLayout\":\"PositionsPanel_gridLayout__1Sw7C\",\"plusButton\":\"PositionsPanel_plusButton__2kRCz\",\"plusContainer\":\"PositionsPanel_plusContainer__1OeJv\",\"tabPane\":\"PositionsPanel_tabPane__HuBaT\",\"windowIcon\":\"PositionsPanel_windowIcon__1hGpQ\",\"addTicket\":\"PositionsPanel_addTicket__2ysEG\",\"gridContainer\":\"PositionsPanel_gridContainer__1mTDt\",\"lighttoastTitle\":\"PositionsPanel_lighttoastTitle__1zmAt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"InstrumentHeader_wrapper__PDQbL\",\"resizedWrapper\":\"InstrumentHeader_resizedWrapper__32wur\",\"bidAskSpreadButtons\":\"InstrumentHeader_bidAskSpreadButtons__3Ryap\",\"undocked\":\"InstrumentHeader_undocked__1XGKD\",\"headerContainer\":\"InstrumentHeader_headerContainer__2hPmP\",\"title\":\"InstrumentHeader_title__3au3S\",\"instrumentFullName\":\"InstrumentHeader_instrumentFullName__14a3_\",\"iconContainer\":\"InstrumentHeader_iconContainer__24oeT\",\"icon\":\"InstrumentHeader_icon__uSvE2\",\"infoIcon\":\"InstrumentHeader_infoIcon__1NaZ3\",\"iconGroup\":\"InstrumentHeader_iconGroup__17vg8\",\"group\":\"InstrumentHeader_group__3GijD\",\"changes\":\"InstrumentHeader_changes__30jId\",\"text\":\"InstrumentHeader_text__wKrY4\",\"textTitleHigh\":\"InstrumentHeader_textTitleHigh__2bokn\",\"textTitleLow\":\"InstrumentHeader_textTitleLow__1tp_R\",\"iconDetached\":\"InstrumentHeader_iconDetached__353xu\",\"iconAtached\":\"InstrumentHeader_iconAtached__2nJSx\",\"darkiconTheme\":\"InstrumentHeader_darkiconTheme__39EUk\",\"addToWatchlistIcon\":\"InstrumentHeader_addToWatchlistIcon__2Dha8\",\"watchlistsListContainer\":\"InstrumentHeader_watchlistsListContainer__3S-l0\",\"addIcon\":\"InstrumentHeader_addIcon__3bS_Q\",\"disabledAddIcon\":\"InstrumentHeader_disabledAddIcon__3QfYI\",\"create\":\"InstrumentHeader_create__2yIAX\",\"createErrorText\":\"InstrumentHeader_createErrorText__346eo\",\"createContainer\":\"InstrumentHeader_createContainer__LbcAq\",\"createHeader\":\"InstrumentHeader_createHeader__2z6VQ\",\"inputContainer\":\"InstrumentHeader_inputContainer__24zBe\",\"inputTitle\":\"InstrumentHeader_inputTitle__8qE2n\",\"input\":\"InstrumentHeader_input__2LzLC\",\"errorInput\":\"InstrumentHeader_errorInput__29nKB\",\"inputCount\":\"InstrumentHeader_inputCount__3HkP2\",\"messageRow\":\"InstrumentHeader_messageRow__2ozVu\",\"errorMessage\":\"InstrumentHeader_errorMessage__16k4D\",\"buttons\":\"InstrumentHeader_buttons__3edtu\",\"buttonContainer\":\"InstrumentHeader_buttonContainer__1tCB_\",\"highLowBox\":\"InstrumentHeader_highLowBox__zJ3At\",\"lowValue\":\"InstrumentHeader_lowValue__3nJgI\",\"highValue\":\"InstrumentHeader_highValue__23Z5u\",\"topIcon\":\"InstrumentHeader_topIcon__1Mcal\",\"watchlistItem\":\"InstrumentHeader_watchlistItem__VCk_p\",\"watchlistIcon\":\"InstrumentHeader_watchlistIcon__zECQk\",\"existsInWatchlistIcon\":\"InstrumentHeader_existsInWatchlistIcon__1EZl8\",\"instrumentStats\":\"InstrumentHeader_instrumentStats__2i9mj\",\"sessionIcon\":\"InstrumentHeader_sessionIcon__v3eTa\"};","type Optional = T | null | undefined;\n\nexport default class Lazy {\n\tprivate m_value: Optional = null;\n\tprivate m_function: Optional<(input?: any) => T> = null;\n\n\tpublic get hasValue(): boolean {\n\t\treturn this.m_function == null;\n\t}\n\n\tpublic constructor(supplier: () => T);\n\tpublic constructor(supplier: (input: any) => T);\n\tpublic constructor(supplier: (() => T) | ((input: any) => T)) {\n\t\tif (supplier == null) {\n\t\t\tthrow new Error('supplier cannot be null');\n\t\t}\n\t\tthis.m_function = (input?: any) => {\n\t\t\treturn supplier(input);\n\t\t};\n\t}\n\n\tpublic getValue(): T;\n\tpublic getValue(input: U): T;\n\tpublic getValue(input?: U): T {\n\t\tif (this.m_function != null) {\n\t\t\tthis.loadValue(input);\n\t\t}\n\t\treturn this.m_value as T;\n\t}\n\n\tprivate loadValue(input?: U): void {\n\t\tif (this.m_function != null) {\n\t\t\tthis.m_value = this.m_function(input);\n\t\t\tthis.m_function = null;\n\t\t}\n\t}\n}\n","export { default } from './Button';\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"MarginLevel_wrapper__2zY9S\",\"isOpen\":\"MarginLevel_isOpen__7QeVc\",\"green\":\"MarginLevel_green__3REi4\",\"statusIndicator\":\"MarginLevel_statusIndicator__1P87r\",\"orange\":\"MarginLevel_orange__14yns\",\"red\":\"MarginLevel_red__14gfY\",\"disabled\":\"MarginLevel_disabled__2O1x5\",\"gymPresenter\":\"MarginLevel_gymPresenter__36yda\",\"statsLabel\":\"MarginLevel_statsLabel__1VYjG\",\"marginPercent\":\"MarginLevel_marginPercent__kseyQ\",\"valueContainer\":\"MarginLevel_valueContainer__1szpg\",\"toggleIcon\":\"MarginLevel_toggleIcon__2LY6r\",\"popup\":\"MarginLevel_popup__16qtl\",\"contentWrapper\":\"MarginLevel_contentWrapper__17Z_C\",\"progressBarContainer\":\"MarginLevel_progressBarContainer__3W7Or\",\"progressPercent\":\"MarginLevel_progressPercent__kt222\",\"progressWrapper\":\"MarginLevel_progressWrapper__1lxqV\",\"shortSection\":\"MarginLevel_shortSection__1XOUU\",\"longSection\":\"MarginLevel_longSection__J2dvK\",\"dividerShort\":\"MarginLevel_dividerShort__2HGrV\",\"text\":\"MarginLevel_text__2BbIm\",\"dividerLong\":\"MarginLevel_dividerLong__O-Tht\",\"japanText\":\"MarginLevel_japanText__1coGC\",\"japanPositioningShortDiv\":\"MarginLevel_japanPositioningShortDiv__2dwUL\",\"japanPositioningLongDiv\":\"MarginLevel_japanPositioningLongDiv__28D0I\",\"marginCallStopOut\":\"MarginLevel_marginCallStopOut__2BVfc\",\"marginCall\":\"MarginLevel_marginCall__1BKPW\",\"marginCallJapan\":\"MarginLevel_marginCallJapan__1M1Y2\",\"stopOut\":\"MarginLevel_stopOut__39C02\",\"contentContainer\":\"MarginLevel_contentContainer__3mbfa\",\"values\":\"MarginLevel_values__2Aqcm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"costInput\":\"TradeBoardHeader_costInput__h34QN\",\"errorInput\":\"TradeBoardHeader_errorInput__2I1lC\",\"modalWatchlist\":\"TradeBoardHeader_modalWatchlist__U3FJ3\",\"modifyWatchlistModalBody\":\"TradeBoardHeader_modifyWatchlistModalBody__83Tro\",\"modifyInput\":\"TradeBoardHeader_modifyInput__1lyFI\",\"modifyErrorInput\":\"TradeBoardHeader_modifyErrorInput__-KLUs\",\"headerContainer\":\"TradeBoardHeader_headerContainer__U86Ed\",\"title\":\"TradeBoardHeader_title__2uOJI\",\"editWatchlistIcon\":\"TradeBoardHeader_editWatchlistIcon__2KvQD\",\"addToWatchlistIcon\":\"TradeBoardHeader_addToWatchlistIcon__2FgK5\",\"headerContainerCenter\":\"TradeBoardHeader_headerContainerCenter__FEwAy\",\"watchlistsPopup\":\"TradeBoardHeader_watchlistsPopup__n24PO\",\"watchlists\":\"TradeBoardHeader_watchlists__20Ud7\",\"listContainer\":\"TradeBoardHeader_listContainer__2wHIe\",\"itemContainer\":\"TradeBoardHeader_itemContainer__3nXXg\",\"watchlistItem\":\"TradeBoardHeader_watchlistItem__6xyLz\",\"icon\":\"TradeBoardHeader_icon__15Jpy\",\"active\":\"TradeBoardHeader_active__cRQW6\",\"watchlistName\":\"TradeBoardHeader_watchlistName__2gnmH\",\"createWatchlistContainer\":\"TradeBoardHeader_createWatchlistContainer__iZw0_\",\"createWatchlistItems\":\"TradeBoardHeader_createWatchlistItems__3BRMG\",\"createWatchlistTitle\":\"TradeBoardHeader_createWatchlistTitle__23ov4\",\"inputContainer\":\"TradeBoardHeader_inputContainer__3vaj_\",\"inputTitle\":\"TradeBoardHeader_inputTitle__3j249\",\"inputBox\":\"TradeBoardHeader_inputBox__yMdWN\",\"messageRow\":\"TradeBoardHeader_messageRow__2UWbg\",\"errorMessage\":\"TradeBoardHeader_errorMessage__1zR2L\",\"modifyErrorMessage\":\"TradeBoardHeader_modifyErrorMessage__2O6LY\",\"inputContainerText\":\"TradeBoardHeader_inputContainerText__2SI8K\",\"createWatchlistFooter\":\"TradeBoardHeader_createWatchlistFooter__2tNSQ\",\"headerButtonsWrapper\":\"TradeBoardHeader_headerButtonsWrapper__FQnwk\",\"watchlistSearchContainer\":\"TradeBoardHeader_watchlistSearchContainer__1OPkZ\",\"hidden\":\"TradeBoardHeader_hidden__iNUW1\",\"searchContainer\":\"TradeBoardHeader_searchContainer__2QDxq\",\"searchTitle\":\"TradeBoardHeader_searchTitle__2fFEo\",\"searchInputContainer\":\"TradeBoardHeader_searchInputContainer__1HWWP\",\"searchInput\":\"TradeBoardHeader_searchInput__QFe0b\",\"openSearchInput\":\"TradeBoardHeader_openSearchInput__u2r9M\",\"inputIcon\":\"TradeBoardHeader_inputIcon__3M2d4\",\"deleteIcon\":\"TradeBoardHeader_deleteIcon__3KAaN\",\"searchResults\":\"TradeBoardHeader_searchResults__weGA_\",\"hiddenScroll\":\"TradeBoardHeader_hiddenScroll__3RuCq\",\"boxSearch\":\"TradeBoardHeader_boxSearch__t5tR3\",\"modalTopHeader\":\"TradeBoardHeader_modalTopHeader__3gsFp\",\"modalTitle\":\"TradeBoardHeader_modalTitle__3mbGv\",\"modifyWatchlist\":\"TradeBoardHeader_modifyWatchlist__c11sr\",\"modifyInputContainer\":\"TradeBoardHeader_modifyInputContainer__1VTzz\",\"inputLimit\":\"TradeBoardHeader_inputLimit__3cEF1\",\"buttonDiv\":\"TradeBoardHeader_buttonDiv__3eWyo\",\"disableBtn\":\"TradeBoardHeader_disableBtn__1c5rU\",\"modifyButton\":\"TradeBoardHeader_modifyButton__33uB3\",\"modifyFooter\":\"TradeBoardHeader_modifyFooter__26oD6\",\"actionButtons\":\"TradeBoardHeader_actionButtons__2ePF4\",\"saveButton\":\"TradeBoardHeader_saveButton__3SYYu\",\"cancelButton\":\"TradeBoardHeader_cancelButton__14Iyb\"};","import { ApplicationStatus } from '../../../utils/functions/enums';\n\nexport type AccountMenuAction = 'switchToRealMoney' | 'fund' | 'accountStatus' | 'accountStatus' | false;\nexport type AccountMenuLabel =\n\t| 'en:SWITCH_TO_REAL'\n\t| 'wtr:ACCOUNT_STATUS'\n\t| 'en:DEPOSIT_FUNDS'\n\t| 'wtr:COMPLETE_APPLICATION'\n\t| 'en:OPEN_LIVE_ACCOUNT'\n\t| 'en:Upload Documents'\n\t| false;\nexport type MarginLevelAction = 'switchToRealMoney' | 'fund' | 'accountStatus' | 'accountStatus' | false;\nexport type marginLevelLabel =\n\t| 'en:SWITCH_TO_REAL'\n\t| 'wtr:ACCOUNT_STATUS'\n\t| 'en:DEPOSIT_FUNDS'\n\t| 'wtr:COMPLETE_APPLICATION'\n\t| 'en:OPEN_LIVE_ACCOUNT'\n\t| 'en:Upload Documents'\n\t| false;\nexport type SignalsAction = 'balanceCheck' | 'accountUnderReview' | 'accountStatus' | 'accountStatus' | false;\nexport type TradeButtons = 'orderTicket' | 'accountStatus' | false;\nexport type MainMenuAction = 'account' | 'fund' | false;\nexport type AddAccount = 'accountStatus' | 'addDemoAccount' | 'addLiveAccount' | 'accountStatus' | false;\nexport type Reports = 'accountStatus' | 'reports' | false;\n\nexport type ManageFunds = 'accountStatus' | 'fund' | 'accountStatus' | false;\nexport type TradersGym = true | false | 'accountStatus';\nexport type PortalPage = 'deposits' | 'fork' | 'relevantStep' | 'statusPage' | 'accountStatus' | false;\nexport type NotificationBell = true | false;\n\nexport enum IStatusConfigEnum {\n\taccountStatus = 'accountStatus',\n\treports = 'reports',\n\taccountUnderReview = 'accountUnderReview',\n\tfund = 'fund',\n\tbalanceCheck = 'balanceCheck',\n\taddLiveAccount = 'addLiveAccount',\n\taddDemoAccount = 'addDemoAccount',\n\tstatusPage = 'statusPage',\n\tfork = 'fork',\n\trelevantStep = 'relevantStep',\n\tdeposits = 'deposits',\n\tswitchToRealMoney = 'switchToRealMoney',\n}\n\nexport interface IStatusConfig {\n\taccountMenuAction: AccountMenuAction;\n\taccountMenuLabel: AccountMenuLabel;\n\tmarginLevelAction: MarginLevelAction;\n\tmarginLevelLabel: marginLevelLabel;\n\tsignalsAction: SignalsAction;\n\ttradeButtons: TradeButtons;\n\tmainMenuAction: MainMenuAction;\n\taddAccount: AddAccount;\n\tmanageFunds: ManageFunds;\n\treports: Reports;\n\ttradersGym: TradersGym;\n\tportalPage: PortalPage;\n\tnotificationBell: NotificationBell;\n}\n\nexport type ActionsConfig = { [key in ApplicationStatus]: IStatusConfig };\n","import { createContext } from 'react';\n\nimport { default as Nullable, Optional } from '../utils/functions/Nullable';\nimport { ObservableMap, ObservableSet, ObservableQueue, IObservableMapEntry } from '../utils/functions/Observables';\nimport { Intersection, ExcludeProperties, Comparator } from '../utils/functions/TypeUtils';\nimport { MarketItem } from '../gateways/RfpGateway/rfp.types';\n\ntype TWatchlistMarketItem = Intersection;\ntype TReadonlyObservableSet = ExcludeProperties, ['add', 'clear', 'delete']>;\ntype TReadonlyObservableMap = ExcludeProperties, ['set', 'clear', 'delete']>;\n\ninterface IInstrumentContextConfig {\n\tinstruments?: Optional | ArrayLike>;\n\twatchlists?: Optional>>;\n\tinstrumentComparator?: Optional>;\n\twatchlistComparator?: Optional>;\n}\n\ninterface IInstrumentContext {\n\tinstruments: MarketItem[]; //ObservableSet;\n\tgroups: Set;\n\twatchlists: TReadonlyObservableMap>;\n\trecentlyViewedInstruments: ObservableQueue;\n\tinstrumentSearchInputFocusDelegate: Optional<() => any>;\n\n\taddWatchlist(name: string): boolean;\n\taddWatchlist(name: string, instruments: Iterable | ArrayLike): boolean;\n\tremoveWatchlist(name: string): boolean;\n\taddInstrumentToWatchlist(instrument: TWatchlistMarketItem, watchlistName: string): boolean;\n\tremoveInstrumentFromWatchlist(instrument: TWatchlistMarketItem, watchlistName: string): boolean;\n\tfocusInstrumentSearchInput(): void;\n\taddInstruments(instruments: MarketItem[], groupingProperty: 'grp' | 'minTier'): void;\n\tupdateGroups(groupingProperty: 'grp' | 'minTier'): void;\n}\n\nclass WatchlistMap extends ObservableMap> {\n\tprivate m_instrumentComparator: Optional> = null;\n\n\tpublic get instrumentComparator(): Optional> {\n\t\treturn this.m_instrumentComparator;\n\t}\n\n\tpublic set instrumentComparator(value: Optional>) {\n\t\tthis.m_instrumentComparator = value;\n\t}\n\n\tpublic set(key: string, value: ObservableSet): this;\n\tpublic set(values: IObservableMapEntry>[]): this;\n\tpublic set(\n\t\tkey: string | IObservableMapEntry>[],\n\t\tvalue?: ObservableSet\n\t): this {\n\t\tlet values: IObservableMapEntry>[] = Array.isArray(key)\n\t\t\t? key\n\t\t\t: [{ key: key, value: value as ObservableSet }];\n\t\tvalues = values.map((entry) => {\n\t\t\treturn { key: entry.key, value: new ObservableSet(entry.value, this.instrumentComparator) };\n\t\t});\n\t\treturn super.set(values);\n\t}\n}\n\nexport class InstrumentContextProvider implements IInstrumentContext {\n\tprivate readonly m_instrumentComparator: Comparator;\n\tprivate readonly m_watchlistComparator: Comparator;\n\tprivate m_instruments: MarketItem[];\n\tprivate readonly m_groups: any;\n\tprivate readonly m_watchlists: WatchlistMap;\n\tprivate readonly m_recentlyViewedInstruments: ObservableQueue;\n\tprivate m_instrumentSearchInputFocusDelegate: Optional<() => any> = null;\n\n\tpublic set instruments(instruments: MarketItem[]) {\n\t\tthis.m_instruments = instruments;\n\t}\n\n\tpublic get instruments(): MarketItem[] {\n\t\treturn this.m_instruments;\n\t}\n\n\tpublic get watchlists(): TReadonlyObservableMap> {\n\t\treturn this.m_watchlists;\n\t}\n\n\tpublic get groups(): Set {\n\t\treturn this.m_groups;\n\t}\n\n\tpublic get recentlyViewedInstruments(): ObservableQueue {\n\t\treturn this.m_recentlyViewedInstruments;\n\t}\n\n\tpublic get instrumentSearchInputFocusDelegate(): Optional<() => any> {\n\t\treturn this.m_instrumentSearchInputFocusDelegate;\n\t}\n\n\tpublic set instrumentSearchInputFocusDelegate(value: Optional<() => any>) {\n\t\tthis.m_instrumentSearchInputFocusDelegate = value;\n\t}\n\n\tpublic constructor(config?: Optional) {\n\t\tthis.m_instrumentComparator = Nullable.of(config)\n\t\t\t.map((config) => config.instrumentComparator as Comparator)\n\t\t\t.orElseGet(() => (val1, val2) => (val1.code || '').toLowerCase() === (val2.code || '').toLowerCase());\n\n\t\tthis.m_watchlistComparator = Nullable.of(config)\n\t\t\t.map((config) => config.watchlistComparator as Comparator)\n\t\t\t.orElseGet(() => (val1, val2) => (val1 || '').trim().toLowerCase() === (val2 || '').trim().toLowerCase());\n\n\t\tthis.m_instruments = Nullable.of(config)\n\t\t\t.map((config) => config.instruments)\n\t\t\t.map((instruments) => {\n\t\t\t\treturn Array.from(instruments);\n\t\t\t\t// const set = new ObservableSet(null, this.m_instrumentComparator);\n\t\t\t\t// set.add(...Array.from(instruments));\n\t\t\t\t// return set;\n\t\t\t})\n\t\t\t.orElseGet(() => []);\n\n\t\tthis.m_watchlists = Nullable.of(config)\n\t\t\t.map((config) => config.watchlists)\n\t\t\t.map((watchlists) => {\n\t\t\t\treturn Array.from(watchlists).map(([key, values]) => {\n\t\t\t\t\treturn { key: key, value: ObservableSet.from(values, this.m_instrumentComparator) };\n\t\t\t\t});\n\t\t\t})\n\t\t\t.map((entries) => {\n\t\t\t\tconst map = new WatchlistMap(null, this.m_watchlistComparator);\n\t\t\t\tmap.instrumentComparator = this.m_instrumentComparator;\n\t\t\t\tmap.set(entries);\n\t\t\t\treturn map;\n\t\t\t})\n\t\t\t.orElseGet(() => {\n\t\t\t\tconst map = new WatchlistMap(null, this.m_watchlistComparator);\n\t\t\t\tmap.instrumentComparator = this.m_instrumentComparator;\n\t\t\t\treturn map;\n\t\t\t});\n\n\t\tthis.m_groups = new Set();\n\n\t\tthis.m_recentlyViewedInstruments = new ObservableQueue(null, this.m_instrumentComparator, 5);\n\t}\n\n\tpublic watchlistExists(name: string): boolean {\n\t\treturn Nullable.of(name)\n\t\t\t.map((name) => this.watchlists.has(name))\n\t\t\t.orElse(false);\n\t}\n\n\tpublic addWatchlist(name: string): boolean;\n\tpublic addWatchlist(\n\t\tname: string,\n\t\tinstruments: Iterable | ArrayLike\n\t): boolean;\n\tpublic addWatchlist(\n\t\tname: string,\n\t\tinstruments?: Iterable | ArrayLike\n\t): boolean {\n\t\treturn Nullable.of(name)\n\t\t\t.filter((name) => !this.watchlistExists(name))\n\t\t\t.map((name) => {\n\t\t\t\tconst marketItems = Array.from(instruments || [])\n\t\t\t\t\t.map((instrument) => this.getInstrument(instrument))\n\t\t\t\t\t.filter((instrument) => instrument);\n\t\t\t\tthis.m_watchlists.set(\n\t\t\t\t\tname,\n\t\t\t\t\tObservableSet.from(marketItems as TWatchlistMarketItem[], this.m_instrumentComparator)\n\t\t\t\t);\n\t\t\t\treturn true;\n\t\t\t})\n\t\t\t.orElse(false);\n\t}\n\n\tpublic removeWatchlist(name: string): boolean {\n\t\treturn Nullable.of(name)\n\t\t\t.map((name) => this.m_watchlists.delete(name))\n\t\t\t.orElse(false);\n\t}\n\n\tpublic addInstrumentToWatchlist(instrument: TWatchlistMarketItem, watchlistName: string): boolean {\n\t\treturn Nullable.of(instrument)\n\t\t\t.map((instrument) => this.getInstrument(instrument))\n\t\t\t.map((instrument) => {\n\t\t\t\treturn Nullable.of(this.getWatchlistInstruments(watchlistName))\n\t\t\t\t\t.filter((instruments) => !instruments.has(instrument))\n\t\t\t\t\t.map((instruments) => {\n\t\t\t\t\t\tinstruments.add(instrument);\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t})\n\t\t\t\t\t.orElse(false);\n\t\t\t})\n\t\t\t.orElse(false);\n\t}\n\n\tpublic removeInstrumentFromWatchlist(instrument: TWatchlistMarketItem, watchlistName: string): boolean {\n\t\treturn Nullable.of(instrument)\n\t\t\t.map((instrument) => this.getInstrument(instrument))\n\t\t\t.map((instrument) => {\n\t\t\t\treturn Nullable.of(this.getWatchlistInstruments(watchlistName))\n\t\t\t\t\t.map((instruments) => instruments.delete(instrument))\n\t\t\t\t\t.orElse(false);\n\t\t\t})\n\t\t\t.orElse(false);\n\t}\n\n\tpublic focusInstrumentSearchInput(): void {\n\t\tNullable.of(this.instrumentSearchInputFocusDelegate)\n\t\t\t.filter((fnc) => typeof fnc === 'function')\n\t\t\t.run((fnc) => fnc());\n\t}\n\n\tprivate getInstrument(instrument: TWatchlistMarketItem): Optional {\n\t\treturn Nullable.of(instrument)\n\t\t\t.map((instrument) => Array.from(this.instruments).find((value) => this.m_instrumentComparator(value, instrument)))\n\t\t\t.get();\n\t}\n\n\tprivate getWatchlistInstruments(watchlistName: string): Optional> {\n\t\treturn this.m_watchlists.get(watchlistName);\n\t}\n\n\tpublic addInstruments(instruments: MarketItem[], groupingProperty: 'grp' | 'minTier'): void {\n\t\tfor (const instrument of instruments) {\n\t\t\tinstrument[groupingProperty] && this.m_groups.add(instrument[groupingProperty]?.toString());\n\t\t}\n\n\t\tthis.instruments = instruments;\n\t}\n\n\tpublic updateGroups(groupingProperty: 'grp' | 'minTier'): void {\n\t\tfor (const instrument of this.instruments) {\n\t\t\tinstrument[groupingProperty] && this.m_groups.add(instrument[groupingProperty]?.toString());\n\t\t}\n\t}\n}\n\nconst instrumentContext = createContext(new InstrumentContextProvider());\n\nexport default instrumentContext;\n","import i18n from '../setup/i18n';\n\nimport { Tier } from '../utils/functions/subscriptionUtils';\n\nimport tier1Icon from '../images/tiers/tier1.svg';\nimport tier2Icon from '../images/tiers/tier2.svg';\nimport tier3Icon from '../images/tiers/tier3.svg';\n\nexport const tierIcons: { [key: string]: string } = {\n\ttier1: tier1Icon,\n\ttier2: tier2Icon,\n\ttier3: tier3Icon,\n};\n\n// this information is used only to present the Manage Subscription modal, this is not taken into account for limit or validations\n// It is not updated with data from backend\nexport const tiers: Tier[] = [\n\t{\n\t\tid: 'Tier1',\n\t\tkey: 'TIER_ONE',\n\t\tpricePerMonth: 1500,\n\t\tcurrencyPairs: '2',\n\t\tminPerOrder: 1000,\n\t\tmaxPerOrder: 100000,\n\t\tmonthlyAmount: '10000000',\n\t\tmaxPosition: 30000000,\n\t\tinstruments: ['USD/JPY', 'EUR/USD'],\n\t\tmaxOpenInstrumentPosition: {\n\t\t\t'EUR/USD': 30000000,\n\t\t\t'USD/JPY': 30000000,\n\t\t},\n\t},\n\t{\n\t\tid: 'Tier2',\n\t\tkey: 'TIER_TWO',\n\t\tpricePerMonth: 3000,\n\t\tcurrencyPairs: '25',\n\t\tminPerOrder: 1000,\n\t\tmaxPerOrder: 250000,\n\t\tmonthlyAmount: i18n.t('wtr:UNLIMITED'),\n\t\tmaxPosition: 30000000,\n\t\tinstruments: [\n\t\t\t'USD/JPY',\n\t\t\t'EUR/USD',\n\t\t\t'EUR/JPY',\n\t\t\t'AUD/JPY',\n\t\t\t'GBP/JPY',\n\t\t\t'NZD/JPY',\n\t\t\t'CAD/JPY',\n\t\t\t'CHF/JPY',\n\t\t\t'GBP/USD',\n\t\t\t'AUD/USD',\n\t\t\t'NZD/USD',\n\t\t\t'USD/CAD',\n\t\t\t'USD/CHF',\n\t\t\t'EUR/GBP',\n\t\t\t'EUR/AUD',\n\t\t\t'EUR/CAD',\n\t\t\t'EUR/CHF',\n\t\t\t'EUR/NZD',\n\t\t\t'GBP/AUD',\n\t\t\t'GBP/CAD',\n\t\t\t'GBP/CHF',\n\t\t\t'GBP/NZD',\n\t\t\t'AUD/CAD',\n\t\t\t'AUD/CHF',\n\t\t\t'AUD/NZD',\n\t\t],\n\t\tmaxOpenInstrumentPosition: {\n\t\t\t'AUD/CAD': 30000000,\n\t\t\t'AUD/CHF': 30000000,\n\t\t\t'AUD/JPY': 30000000,\n\t\t\t'AUD/NZD': 30000000,\n\t\t\t'AUD/USD': 30000000,\n\t\t\t'CAD/JPY': 30000000,\n\t\t\t'CHF/JPY': 30000000,\n\t\t\t'EUR/AUD': 30000000,\n\t\t\t'EUR/CAD': 30000000,\n\t\t\t'EUR/CHF': 30000000,\n\t\t\t'EUR/GBP': 30000000,\n\t\t\t'EUR/JPY': 30000000,\n\t\t\t'EUR/NZD': 30000000,\n\t\t\t'EUR/USD': 30000000,\n\t\t\t'GBP/AUD': 30000000,\n\t\t\t'GBP/CAD': 30000000,\n\t\t\t'GBP/CHF': 30000000,\n\t\t\t'GBP/JPY': 30000000,\n\t\t\t'GBP/NZD': 30000000,\n\t\t\t'GBP/USD': 30000000,\n\t\t\t'NZD/JPY': 30000000,\n\t\t\t'NZD/USD': 30000000,\n\t\t\t'USD/CAD': 30000000,\n\t\t\t'USD/CHF': 30000000,\n\t\t\t'USD/JPY': 30000000,\n\t\t},\n\t},\n\t{\n\t\tid: 'Tier3',\n\t\tkey: 'TIER_THREE',\n\t\tpricePerMonth: 5000,\n\t\tcurrencyPairs: '70',\n\t\tminPerOrder: 1000,\n\t\tmaxPerOrder: 500000,\n\t\tmonthlyAmount: i18n.t('wtr:UNLIMITED'),\n\t\tmaxPosition: 50000000,\n\t\tinstruments: [\n\t\t\t'USD/JPY',\n\t\t\t'EUR/USD',\n\t\t\t'EUR/JPY',\n\t\t\t'AUD/JPY',\n\t\t\t'GBP/JPY',\n\t\t\t'NZD/JPY',\n\t\t\t'CAD/JPY',\n\t\t\t'CHF/JPY',\n\t\t\t'GBP/USD',\n\t\t\t'AUD/USD',\n\t\t\t'NZD/USD',\n\t\t\t'USD/CAD',\n\t\t\t'USD/CHF',\n\t\t\t'EUR/GBP',\n\t\t\t'EUR/AUD',\n\t\t\t'EUR/CAD',\n\t\t\t'EUR/CHF',\n\t\t\t'EUR/NZD',\n\t\t\t'GBP/AUD',\n\t\t\t'GBP/CAD',\n\t\t\t'GBP/CHF',\n\t\t\t'GBP/NZD',\n\t\t\t'AUD/CAD',\n\t\t\t'AUD/CHF',\n\t\t\t'AUD/NZD',\n\t\t\t'CAD/CHF',\n\t\t\t'EUR/HUF',\n\t\t\t'EUR/SGD',\n\t\t\t'GBP/HUF',\n\t\t\t'NZD/CAD',\n\t\t\t'NZD/CHF',\n\t\t\t'USD/HUF',\n\t\t\t'USD/MXN',\n\t\t\t'USD/PLN',\n\t\t\t'USD/SGD',\n\t\t\t'USD/ZAR',\n\t\t\t'EUR/MXN',\n\t\t\t'MXN/JPY',\n\t\t\t'ZAR/JPY',\n\t\t\t'USD/CNH',\n\t\t\t'AUD/CNH',\n\t\t\t'AUD/SGD',\n\t\t\t'CNH/JPY',\n\t\t\t'EUR/CNH',\n\t\t\t'GBP/CNH',\n\t\t\t'NZD/SGD',\n\t\t\t'SGD/JPY',\n\t\t\t'EUR/NOK',\n\t\t\t'EUR/SEK',\n\t\t\t'USD/NOK',\n\t\t\t'USD/SEK',\n\t\t\t'CHF/SEK',\n\t\t\t'GBP/NOK',\n\t\t\t'GBP/SEK',\n\t\t\t'GBP/SGD',\n\t\t\t'NOK/JPY',\n\t\t\t'NZD/CNH',\n\t\t\t'EUR/CZK',\n\t\t\t'EUR/PLN',\n\t\t\t'EUR/ZAR',\n\t\t\t'GBP/ZAR',\n\t\t\t'USD/HKD',\n\t\t\t'EUR/DKK',\n\t\t\t'EUR/HKD',\n\t\t\t'GBP/CZK',\n\t\t\t'GBP/DKK',\n\t\t\t'GBP/PLN',\n\t\t\t'NOK/SEK',\n\t\t\t'USD/CZK',\n\t\t\t'USD/DKK',\n\t\t],\n\t\tmaxOpenInstrumentPosition: {\n\t\t\t'AUD/CAD': 30000000,\n\t\t\t'AUD/CHF': 30000000,\n\t\t\t'AUD/JPY': 50000000,\n\t\t\t'AUD/NZD': 30000000,\n\t\t\t'AUD/USD': 30000000,\n\t\t\t'CAD/CHF': 30000000,\n\t\t\t'CAD/JPY': 30000000,\n\t\t\t'CHF/JPY': 30000000,\n\t\t\t'EUR/AUD': 30000000,\n\t\t\t'EUR/CAD': 30000000,\n\t\t\t'EUR/CHF': 30000000,\n\t\t\t'EUR/CZK': 1000000,\n\t\t\t'EUR/GBP': 30000000,\n\t\t\t'EUR/HUF': 30000000,\n\t\t\t'EUR/JPY': 50000000,\n\t\t\t'EUR/NOK': 2000000,\n\t\t\t'EUR/NZD': 30000000,\n\t\t\t'EUR/PLN': 1000000,\n\t\t\t'EUR/SEK': 2000000,\n\t\t\t'EUR/SGD': 30000000,\n\t\t\t'EUR/USD': 50000000,\n\t\t\t'EUR/ZAR': 1000000,\n\t\t\t'GBP/AUD': 30000000,\n\t\t\t'GBP/CAD': 30000000,\n\t\t\t'GBP/CHF': 30000000,\n\t\t\t'GBP/HUF': 30000000,\n\t\t\t'GBP/JPY': 50000000,\n\t\t\t'GBP/NZD': 30000000,\n\t\t\t'GBP/USD': 30000000,\n\t\t\t'GBP/ZAR': 1000000,\n\t\t\t'NZD/CAD': 30000000,\n\t\t\t'NZD/CHF': 30000000,\n\t\t\t'NZD/JPY': 30000000,\n\t\t\t'NZD/USD': 30000000,\n\t\t\t'USD/CAD': 30000000,\n\t\t\t'USD/CHF': 30000000,\n\t\t\t'USD/CNH': 5000000,\n\t\t\t'USD/HKD': 1000000,\n\t\t\t'USD/HUF': 30000000,\n\t\t\t'USD/JPY': 50000000,\n\t\t\t'USD/MXN': 30000000,\n\t\t\t'USD/NOK': 2000000,\n\t\t\t'USD/PLN': 30000000,\n\t\t\t'USD/SEK': 2000000,\n\t\t\t'USD/SGD': 30000000,\n\t\t\t'USD/ZAR': 30000000,\n\t\t\t'AUD/CNH': 5000000,\n\t\t\t'AUD/SGD': 5000000,\n\t\t\t'CHF/SEK': 2000000,\n\t\t\t'CNH/JPY': 5000000,\n\t\t\t'EUR/CNH': 5000000,\n\t\t\t'EUR/DKK': 1000000,\n\t\t\t'EUR/HKD': 1000000,\n\t\t\t'EUR/MXN': 10000000,\n\t\t\t'GBP/CNH': 5000000,\n\t\t\t'GBP/CZK': 1000000,\n\t\t\t'GBP/DKK': 1000000,\n\t\t\t'GBP/NOK': 2000000,\n\t\t\t'GBP/PLN': 1000000,\n\t\t\t'GBP/SEK': 2000000,\n\t\t\t'GBP/SGD': 2000000,\n\t\t\t'MXN/JPY': 10000000,\n\t\t\t'NOK/JPY': 2000000,\n\t\t\t'NOK/SEK': 1000000,\n\t\t\t'NZD/CNH': 2000000,\n\t\t\t'NZD/SGD': 5000000,\n\t\t\t'SGD/JPY': 5000000,\n\t\t\t'USD/CZK': 1000000,\n\t\t\t'USD/DKK': 1000000,\n\t\t\t'ZAR/JPY': 10000000,\n\t\t},\n\t},\n];\n\n// export const tiersIds = tiers.map((tierObj) => tierObj.id as string);\n\nexport const tiersKeysMap: { [key: string]: string } = tiers.reduce((accumulator, currentTier) => {\n\treturn {\n\t\t...accumulator,\n\t\t[currentTier.id]: currentTier.key,\n\t};\n}, {});\n\nexport const totalNumberOfTiers = tiers.length;\n\n// export const LOWEST_TIER_ID = tiers[0].id;\n\nexport const HIGHEST_TIER_ID = tiers[tiers.length - 1].id;\n\nexport const GLOBAL_MAX_ORDER_SIZE = tiers.find((tier) => tier.id === HIGHEST_TIER_ID)?.maxPerOrder;\n\nexport const TIERS_WITH_GYM_ACCESS = [tiers[1].id, tiers[2].id];\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"textContainer\":\"NewsWidgetStyles_textContainer__37Io_\",\"contentsAndDisclaimer\":\"NewsWidgetStyles_contentsAndDisclaimer__2pr3v\",\"newsWrapper\":\"NewsWidgetStyles_newsWrapper__3GbYk\",\"jpNewsWrapper\":\"NewsWidgetStyles_jpNewsWrapper__1G93S\",\"container\":\"NewsWidgetStyles_container__3L_OP\",\"header\":\"NewsWidgetStyles_header__1BM0k\",\"actions\":\"NewsWidgetStyles_actions__2uu0-\",\"contents\":\"NewsWidgetStyles_contents__DNd8r\",\"title\":\"NewsWidgetStyles_title__jT-d0\",\"span\":\"NewsWidgetStyles_span__1hUhY\",\"wrapper\":\"NewsWidgetStyles_wrapper__1k6bU\",\"halfWidth\":\"NewsWidgetStyles_halfWidth__2ut6a\",\"width50\":\"NewsWidgetStyles_width50__2d9cv\",\"articleDetails\":\"NewsWidgetStyles_articleDetails__1_nwc\",\"articleContainer\":\"NewsWidgetStyles_articleContainer__1oNSp\",\"selected\":\"NewsWidgetStyles_selected__2F5Mb\",\"articleText\":\"NewsWidgetStyles_articleText__2NRAX\",\"headline\":\"NewsWidgetStyles_headline__2UIK6\",\"time\":\"NewsWidgetStyles_time__22yOa\",\"modalContainer\":\"NewsWidgetStyles_modalContainer__gVXfM\",\"iconContainer\":\"NewsWidgetStyles_iconContainer__2ljwq\",\"cancel\":\"NewsWidgetStyles_cancel__2gsFj\",\"heading\":\"NewsWidgetStyles_heading__whb8h\",\"bodyText\":\"NewsWidgetStyles_bodyText__GwDXM\",\"disclaimerMessageWrapper\":\"NewsWidgetStyles_disclaimerMessageWrapper__vrRuM\",\"emptyContainer\":\"NewsWidgetStyles_emptyContainer__3sMWp\",\"emptyButtonContainer\":\"NewsWidgetStyles_emptyButtonContainer__PYq2I\",\"clearFiltersButton\":\"NewsWidgetStyles_clearFiltersButton__376ki\",\"emptyIcon\":\"NewsWidgetStyles_emptyIcon__iu-_q\",\"message\":\"NewsWidgetStyles_message__3xYSb\",\"dropdown\":\"NewsWidgetStyles_dropdown__1k6Yb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalDialog\":\"ConfirmOrderModal_modalDialog__1J-0D\",\"modalHeader\":\"ConfirmOrderModal_modalHeader__3eG3H\",\"modalBody\":\"ConfirmOrderModal_modalBody__1lGK9\",\"container\":\"ConfirmOrderModal_container__3_ICr\",\"fieldContainer\":\"ConfirmOrderModal_fieldContainer__pV5xq\",\"confirmField\":\"ConfirmOrderModal_confirmField__XGvWk\",\"label\":\"ConfirmOrderModal_label__1nfva\",\"value\":\"ConfirmOrderModal_value__3ZPe9\",\"footer\":\"ConfirmOrderModal_footer__3wylb\"};","import { useMutation } from '@tanstack/react-query';\nimport { SHA384 } from 'sha2';\n\nimport axios from 'axios';\n\nimport { useContext } from 'react';\n\nimport AppContext from '../../contexts/AppContext';\nimport { TradingAccountType } from '../functions/enums';\nimport watchListStore from '../../store/WatchListStore/watchListStore';\n\nconst useSaveUserPreferences = () => {\n\tconst appContext = useContext(AppContext);\n\tconst currentWatchList = watchListStore.use.currentWatchList();\n\n\tconst mutationFn = async () => {\n\t\tconst preferences = appContext.userPreferences;\n\t\tconst isJapanAccount = appContext.isJapanAccount;\n\n\t\tif (currentWatchList && preferences && isJapanAccount) {\n\t\t\tconst liveCFDWatchlist = preferences?.user_prefs?.watchlists?.account.find((account) => {\n\t\t\t\treturn account && account._type.toUpperCase() === TradingAccountType.LIVE && !account.accountType;\n\t\t\t});\n\n\t\t\tif (liveCFDWatchlist) {\n\t\t\t\tliveCFDWatchlist._lastUsedWatchlist = currentWatchList;\n\t\t\t}\n\t\t}\n\n\t\tif (preferences) {\n\t\t\tconst convertUserPref = JSON.stringify(preferences);\n\t\t\tconst email = appContext.email;\n\t\t\ttry {\n\t\t\t\tconst response = await axios({\n\t\t\t\t\turl: '/v2/preferences',\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\tAuthorization: SHA384(`${email}Bji4xKz9cPTac4B7ruET`).toString('hex'),\n\t\t\t\t\t},\n\t\t\t\t\tparams: {\n\t\t\t\t\t\temail,\n\t\t\t\t\t},\n\t\t\t\t\tdata: {\n\t\t\t\t\t\temail,\n\t\t\t\t\t\tpreference: btoa(encodeURIComponent(convertUserPref)),\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tif (convertUserPref && convertUserPref !== 'null') {\n\t\t\t\t\tlocalStorage.setItem(`userPref-${email}`, convertUserPref);\n\t\t\t\t}\n\n\t\t\t\treturn response.data;\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(e);\n\n\t\t\t\tif (!preferences) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (convertUserPref && convertUserPref !== 'null') {\n\t\t\t\t\tlocalStorage.setItem(`userPref-${email}`, convertUserPref);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\treturn useMutation({ mutationKey: ['useSaveUserPreferences', appContext.email], mutationFn });\n};\n\nexport default useSaveUserPreferences;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"section\":\"AccountMenuPopupSection_section__1v_RW\",\"header\":\"AccountMenuPopupSection_header__3-0h-\",\"item\":\"AccountMenuPopupSection_item__BNzUg\",\"demo\":\"AccountMenuPopupSection_demo__lVBZI\",\"disabledOptionChildren\":\"AccountMenuPopupSection_disabledOptionChildren__1LdMu\",\"live\":\"AccountMenuPopupSection_live__J0gVQ\",\"icon\":\"AccountMenuPopupSection_icon__1Chxm\",\"red\":\"AccountMenuPopupSection_red__2dYRI\",\"iconContainerWrapper\":\"AccountMenuPopupSection_iconContainerWrapper__3jlSt\",\"iconContainer\":\"AccountMenuPopupSection_iconContainer__LMVs0\",\"settingsIcon\":\"AccountMenuPopupSection_settingsIcon__2eh_G\",\"statsContainer\":\"AccountMenuPopupSection_statsContainer__ufIQ5\",\"stats\":\"AccountMenuPopupSection_stats__Y8xOT\",\"selected\":\"AccountMenuPopupSection_selected__1Uaf2\",\"baseCurrency\":\"AccountMenuPopupSection_baseCurrency__1LFt4\",\"addAccountContainer\":\"AccountMenuPopupSection_addAccountContainer__3fpEX\",\"plusIcon\":\"AccountMenuPopupSection_plusIcon__Yzxhd\",\"addAccountText\":\"AccountMenuPopupSection_addAccountText__2hp-Q\",\"itemNoBorder\":\"AccountMenuPopupSection_itemNoBorder__kqgrs\",\"manageSubscriptionIcon\":\"AccountMenuPopupSection_manageSubscriptionIcon__tg8Dk\",\"itemCancel\":\"AccountMenuPopupSection_itemCancel__1vwHc\",\"currencyStatsUsers\":\"AccountMenuPopupSection_currencyStatsUsers__2ugkH\"};","import { ENVIRONMENT_NAME } from '../../../../setup/config';\n\nexport type TLanguageOptions = {\n\tshortText?: string;\n\tvalue: string;\n\tdisabled?: boolean;\n\trfpLang: string;\n\tcaptchaLang: string;\n\tsignalsLang: string;\n\tcalendarLang: string;\n\ttradingView: string;\n\ttext?: string;\n};\n\nconst hasBrackets = ENVIRONMENT_NAME !== 'production' && ENVIRONMENT_NAME !== 'preview-production';\n\nexport enum LanguageCodes {\n\tENGLISH = 'en',\n\tCHINESE_SIMPLIFIED = 'zh-Hans',\n\tCHINESE_TRADITIONAL = 'zh-Hant',\n\tDEUTSCH = 'de',\n\tJAPANESE = 'ja',\n\tVIETNAMESE = 'vi',\n\tTHAI = 'th',\n\tPORTUGUESE = 'pt-BR',\n\tARABIC = 'ar-SA',\n\tITALIAN = 'it',\n\tSPANISH = 'es',\n}\n\nexport const languageOptions: TLanguageOptions[] = [\n\t{\n\t\tshortText: 'English',\n\t\tvalue: LanguageCodes.ENGLISH,\n\t\tdisabled: false,\n\t\trfpLang: 'en',\n\t\tcaptchaLang: 'en',\n\t\tsignalsLang: 'en-gb',\n\t\tcalendarLang: 'en',\n\t\ttradingView: 'en',\n\t},\n\t{\n\t\tshortText: '简体中文', // Chinese Simplified\n\t\tvalue: LanguageCodes.CHINESE_SIMPLIFIED,\n\t\tdisabled: false,\n\t\trfpLang: 'cn',\n\t\tcaptchaLang: 'zh-CN',\n\t\tsignalsLang: 'zh-cn',\n\t\tcalendarLang: 'cs',\n\t\ttradingView: 'zh',\n\t},\n\t{\n\t\tshortText: '繁體中文', // Chinese Traditional\n\t\tvalue: LanguageCodes.CHINESE_TRADITIONAL,\n\t\tdisabled: false,\n\t\trfpLang: 'ct',\n\t\tcaptchaLang: 'zh-TW',\n\t\tsignalsLang: 'zh-cht',\n\t\tcalendarLang: 'cs',\n\t\ttradingView: 'zh_TW',\n\t},\n\t{\n\t\tshortText: 'Deutsch', // German\n\t\tvalue: LanguageCodes.DEUTSCH,\n\t\tdisabled: false,\n\t\trfpLang: 'de',\n\t\tcaptchaLang: 'de',\n\t\tsignalsLang: 'de-de',\n\t\tcalendarLang: 'de',\n\t\ttradingView: 'de',\n\t},\n\t{\n\t\tshortText: '日本語', // Japanese\n\t\tvalue: LanguageCodes.JAPANESE,\n\t\tdisabled: false,\n\t\trfpLang: 'ja',\n\t\tcaptchaLang: 'ja',\n\t\tsignalsLang: 'ja-jp',\n\t\tcalendarLang: 'ja',\n\t\ttradingView: 'ja',\n\t},\n\t{\n\t\tshortText: 'Tiếng Việt', // Vietnamese\n\t\tvalue: LanguageCodes.VIETNAMESE,\n\t\tdisabled: false,\n\t\trfpLang: 'vi',\n\t\tcaptchaLang: 'vi',\n\t\tsignalsLang: 'vi-vn',\n\t\tcalendarLang: 'vi',\n\t\ttradingView: 'vi',\n\t},\n\t{\n\t\tshortText: 'ไทย', // Thai\n\t\tvalue: LanguageCodes.THAI,\n\t\tdisabled: false,\n\t\trfpLang: 'th',\n\t\tcaptchaLang: 'th',\n\t\tsignalsLang: 'th-th',\n\t\tcalendarLang: 'vi',\n\t\ttradingView: 'th',\n\t},\n\t{\n\t\tshortText: 'Português', // Portguese\n\t\tvalue: LanguageCodes.PORTUGUESE,\n\t\tdisabled: false,\n\t\trfpLang: 'pt',\n\t\tcaptchaLang: 'pt',\n\t\tsignalsLang: 'pt-br',\n\t\tcalendarLang: 'pt',\n\t\ttradingView: 'pt',\n\t},\n\t{\n\t\tshortText: 'العربية', // Arabic\n\t\tvalue: LanguageCodes.ARABIC,\n\t\tdisabled: false,\n\t\trfpLang: 'ar_sa',\n\t\tcaptchaLang: 'ar',\n\t\tsignalsLang: 'ar-ae',\n\t\tcalendarLang: 'ar',\n\t\ttradingView: 'ar',\n\t},\n\t{\n\t\tshortText: 'Italiano', // Italian\n\t\tvalue: LanguageCodes.ITALIAN,\n\t\tdisabled: false,\n\t\trfpLang: 'it',\n\t\tcaptchaLang: 'it',\n\t\tsignalsLang: 'it-it',\n\t\tcalendarLang: 'it',\n\t\ttradingView: 'it',\n\t},\n\t{\n\t\tshortText: 'Español', // Spanish\n\t\tvalue: LanguageCodes.SPANISH,\n\t\tdisabled: false,\n\t\trfpLang: 'es',\n\t\tcaptchaLang: 'es',\n\t\tsignalsLang: 'es-es',\n\t\tcalendarLang: 'es',\n\t\ttradingView: 'es',\n\t},\n].map((lang) => {\n\tif (hasBrackets) {\n\t\tlang.shortText += ` (${lang.value})`;\n\t}\n\treturn lang;\n});\n\nexport const getEnabledLangOptions = (allowedLanguages: string[] = []): TLanguageOptions[] => {\n\tconst enabledLangOptions = languageOptions.filter((languageOption: TLanguageOptions) => {\n\t\tif (languageOption.disabled) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (allowedLanguages.length && !allowedLanguages.includes(languageOption.value)) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t});\n\n\treturn enabledLangOptions;\n};\n\nexport const getInactivityLogoutOptions = (t: (string: string) => string) => [\n\t{ text: t('wtr:15_Minutes'), value: '900' },\n\t{ text: t('wtr:60_Minutes'), value: '3600' },\n\t{ text: t('wtr:360_Minutes'), value: '21600' },\n];\nexport const getAccountIconOptions = (num?: number) => [\n\t{\n\t\tkey: 1,\n\t\tvalue: 1,\n\t\timage: { avatar: true, src: '/avatars/1.svg' },\n\t},\n\t{\n\t\tkey: 2,\n\t\tvalue: 2,\n\t\timage: { avatar: true, src: '/avatars/2.svg' },\n\t},\n\t{\n\t\tkey: 3,\n\t\tvalue: 3,\n\t\timage: { avatar: true, src: '/avatars/3.svg' },\n\t},\n\t{\n\t\tkey: 4,\n\t\tvalue: 4,\n\t\timage: { avatar: true, src: '/avatars/4.svg' },\n\t},\n\t{\n\t\tkey: 5,\n\t\tvalue: 5,\n\t\timage: { avatar: true, src: '/avatars/5.svg' },\n\t},\n\t{\n\t\tkey: 6,\n\t\tvalue: 6,\n\t\timage: { avatar: true, src: '/avatars/6.svg' },\n\t},\n\t{\n\t\tkey: 7,\n\t\tvalue: 7,\n\t\timage: { avatar: true, src: '/avatars/7.svg' },\n\t},\n\t{\n\t\tkey: 8,\n\t\tvalue: 8,\n\t\timage: { avatar: true, src: '/avatars/8.svg' },\n\t},\n\t{\n\t\tkey: 9,\n\t\tvalue: 9,\n\t\timage: { avatar: true, src: '/avatars/9.svg' },\n\t},\n\t{\n\t\tkey: 10,\n\t\tvalue: 10,\n\t\timage: { avatar: true, src: '/avatars/10.svg' },\n\t},\n\t{\n\t\tkey: 11,\n\t\tvalue: 11,\n\t\timage: { avatar: true, src: '/avatars/11.svg' },\n\t},\n\t{\n\t\tkey: 12,\n\t\tvalue: 12,\n\t\timage: { avatar: true, src: '/avatars/12.svg' },\n\t},\n\t{\n\t\tkey: 13,\n\t\tvalue: 13,\n\t\timage: { avatar: true, src: '/avatars/13.svg' },\n\t},\n\t{\n\t\tkey: 14,\n\t\tvalue: 14,\n\t\timage: { avatar: true, src: '/avatars/14.svg' },\n\t},\n\t{\n\t\tkey: 15,\n\t\tvalue: 15,\n\t\timage: { avatar: true, src: '/avatars/15.svg' },\n\t},\n\t{\n\t\tkey: 16,\n\t\tvalue: 16,\n\t\timage: { avatar: true, src: '/avatars/16.svg' },\n\t},\n\t{\n\t\tkey: 17,\n\t\tvalue: 17,\n\t\timage: { avatar: true, src: '/avatars/17.svg' },\n\t},\n\t{\n\t\tkey: 18,\n\t\tvalue: 18,\n\t\timage: { avatar: true, src: '/avatars/18.svg' },\n\t},\n\t{\n\t\tkey: 19,\n\t\tvalue: 19,\n\t\timage: { avatar: true, src: '/avatars/19.svg' },\n\t},\n\t{\n\t\tkey: 20,\n\t\tvalue: 20,\n\t\timage: { avatar: true, src: '/avatars/20.svg' },\n\t},\n\t{\n\t\tkey: 21,\n\t\tvalue: 21,\n\t\timage: { avatar: true, src: '/avatars/21.svg' },\n\t},\n\t{\n\t\tkey: 22,\n\t\tvalue: 22,\n\t\timage: { avatar: true, src: '/avatars/22.svg' },\n\t},\n\t{\n\t\tkey: 23,\n\t\tvalue: 23,\n\t\timage: { avatar: true, src: '/avatars/23.svg' },\n\t},\n\t{\n\t\tkey: 24,\n\t\tvalue: 24,\n\t\timage: { avatar: true, src: '/avatars/24.svg' },\n\t},\n\t{\n\t\tkey: 25,\n\t\tvalue: 25,\n\t\timage: { avatar: true, src: '/avatars/25.svg' },\n\t},\n\t{\n\t\tkey: 26,\n\t\tvalue: 26,\n\t\timage: { avatar: true, src: '/avatars/26.svg' },\n\t},\n\t{\n\t\tkey: 27,\n\t\tvalue: 27,\n\t\timage: { avatar: true, src: '/avatars/27.svg' },\n\t},\n\t{\n\t\tkey: 28,\n\t\tvalue: 28,\n\t\timage: { avatar: true, src: '/avatars/28.svg' },\n\t},\n\t{\n\t\tkey: 29,\n\t\tvalue: 29,\n\t\timage: { avatar: true, src: '/avatars/29.svg' },\n\t},\n\t{\n\t\tkey: 30,\n\t\tvalue: 30,\n\t\timage: { avatar: true, src: '/avatars/30.svg' },\n\t},\n\t{\n\t\tkey: 31,\n\t\tvalue: 31,\n\t\timage: { avatar: true, src: '/avatars/31.svg' },\n\t},\n\t{\n\t\tkey: 32,\n\t\tvalue: 32,\n\t\timage: { avatar: true, src: '/avatars/32.svg' },\n\t},\n\t{\n\t\tkey: 33,\n\t\tvalue: 33,\n\t\timage: { avatar: true, src: '/avatars/33.svg' },\n\t},\n\t{\n\t\tkey: 34,\n\t\tvalue: 34,\n\t\timage: { avatar: true, src: '/avatars/34.svg' },\n\t},\n\t{\n\t\tkey: 35,\n\t\tvalue: 35,\n\t\timage: { avatar: true, src: '/avatars/35.svg' },\n\t},\n];\n\nexport const rfpLangMap = getEnabledLangOptions().reduce(\n\t(acc, current) => ({ ...acc, [current.value]: current.rfpLang }),\n\t{} as { string: string }\n);\nexport type RfpLangMap = keyof typeof rfpLangMap;\nexport const captchaLangMap = getEnabledLangOptions().reduce(\n\t(acc, current) => ({ ...acc, [current.value]: current.captchaLang }),\n\t{} as { string: string }\n);\nexport type CaptchaLangMap = keyof typeof captchaLangMap;\nexport const signalsLangMap: { string: string } = getEnabledLangOptions().reduce(\n\t(acc, current) => ({ ...acc, [current.value]: current.signalsLang }),\n\t{} as { string: string }\n);\nexport type SignalsLangMap = keyof typeof signalsLangMap;\nexport const calendarLangMap: { string: string } = getEnabledLangOptions().reduce(\n\t(acc, current) => ({ ...acc, [current.value]: current.calendarLang }),\n\t{} as { string: string }\n);\nexport type CalendarLangMap = keyof typeof calendarLangMap;\nexport const tradingViewLangMap: { string: string } = getEnabledLangOptions().reduce(\n\t(acc, current) => ({ ...acc, [current.value]: current.tradingView }),\n\t{} as { string: string }\n);\nexport type TradingViewLangMap = keyof typeof tradingViewLangMap;\n","import { create } from 'zustand';\n\nimport createSelectors from '../createSelectors';\n\nimport { PriceQuote } from '../../gateways/RfpGateway/rfp.types';\n\nexport type QuoteState = {\n\tquotes: Record<\n\t\tstring,\n\t\t{ sellDirection: number; buyDirection: number; previousQuote: PriceQuote; currentQuote: PriceQuote }\n\t>;\n\tsetQuote: (quote: PriceQuote) => void;\n\tmaxVolatility: number;\n\tsetMaxVolatility: (value: number) => void;\n};\n\nconst calcSellDirection = (currentQuote: PriceQuote, previousQuote?: PriceQuote, prevSellDirection?: number) => {\n\tif (previousQuote && currentQuote.b !== previousQuote.b) {\n\t\treturn currentQuote.b > previousQuote.b ? -1 : 1;\n\t}\n\treturn prevSellDirection ?? 0;\n};\n\nconst calcBuyDirection = (currentQuote: PriceQuote, previousQuote?: PriceQuote, prevBuyDirection?: number) => {\n\tif (previousQuote && currentQuote.a !== previousQuote.a) {\n\t\treturn currentQuote.a > previousQuote.a ? -1 : 1;\n\t}\n\treturn prevBuyDirection ?? 0;\n};\n\nconst quoteStore = create((set) => ({\n\tquotes: {},\n\tsetQuote: (quote: PriceQuote) => {\n\t\tset((state) => ({\n\t\t\tquotes: {\n\t\t\t\t...state.quotes,\n\t\t\t\t[quote.c]: {\n\t\t\t\t\tsellDirection: calcSellDirection(\n\t\t\t\t\t\tquote,\n\t\t\t\t\t\tstate.quotes[quote.c]?.previousQuote,\n\t\t\t\t\t\tstate.quotes[quote.c]?.sellDirection\n\t\t\t\t\t),\n\t\t\t\t\tbuyDirection: calcBuyDirection(\n\t\t\t\t\t\tquote,\n\t\t\t\t\t\tstate.quotes[quote.c]?.previousQuote,\n\t\t\t\t\t\tstate.quotes[quote.c]?.buyDirection\n\t\t\t\t\t),\n\t\t\t\t\tpreviousQuote: state.quotes[quote.c]?.currentQuote || quote,\n\t\t\t\t\tcurrentQuote: quote,\n\t\t\t\t},\n\t\t\t},\n\t\t}));\n\t},\n\tmaxVolatility: 1,\n\tsetMaxVolatility: (value: number) => {\n\t\tset((state) => ({\n\t\t\t...state,\n\t\t\tmaxVolatility: value,\n\t\t}));\n\t},\n}));\n\nexport default createSelectors(quoteStore);\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"OneClickTradeTicket_container__2c-QA\",\"containerSelected\":\"OneClickTradeTicket_containerSelected__3lf8f\",\"removeIconContainer\":\"OneClickTradeTicket_removeIconContainer__2gUYA\",\"buttonHover\":\"OneClickTradeTicket_buttonHover__2B-36\",\"spreadHover\":\"OneClickTradeTicket_spreadHover__3gmCQ\",\"containerDetached\":\"OneClickTradeTicket_containerDetached__301mo\",\"containerLimited\":\"OneClickTradeTicket_containerLimited__3lr4r\",\"iconContainer\":\"OneClickTradeTicket_iconContainer__yGsYs\",\"wrapper\":\"OneClickTradeTicket_wrapper__3IRo6\",\"removeIcon\":\"OneClickTradeTicket_removeIcon__3GtdA\",\"headerContainer\":\"OneClickTradeTicket_headerContainer__2zZmW\",\"instrumentHeader\":\"OneClickTradeTicket_instrumentHeader__y08kV\",\"instrumentCode\":\"OneClickTradeTicket_instrumentCode__1jALl\",\"sessionIcon\":\"OneClickTradeTicket_sessionIcon___lko5\",\"instrumentName\":\"OneClickTradeTicket_instrumentName__XR5tB\",\"orderStatusContainer\":\"OneClickTradeTicket_orderStatusContainer__Oa8NR\",\"loadingContainer\":\"OneClickTradeTicket_loadingContainer__3itA2\",\"submittedContainer\":\"OneClickTradeTicket_submittedContainer__1ex00\",\"loadingIcon\":\"OneClickTradeTicket_loadingIcon__MknEP\",\"submittedText\":\"OneClickTradeTicket_submittedText__2sohy\",\"wrongQuantityError\":\"OneClickTradeTicket_wrongQuantityError__13y7W\",\"modalRemoveWatchlist\":\"OneClickTradeTicket_modalRemoveWatchlist___dsuT\",\"modalTopHeader\":\"OneClickTradeTicket_modalTopHeader__ftt13\",\"modalTitle\":\"OneClickTradeTicket_modalTitle__4IwDf\",\"removeMessage\":\"OneClickTradeTicket_removeMessage__2JK_x\",\"modifyFooter\":\"OneClickTradeTicket_modifyFooter__28wXl\",\"actionButtons\":\"OneClickTradeTicket_actionButtons__3VtZH\"};","abstract class StringUtils {\n\tpublic static isString(value: any): value is string {\n\t\treturn value != null && (typeof value === 'string' || value instanceof String);\n\t}\n\n\tpublic static equalsIgnoreCase(value: string, compare: string): boolean;\n\tpublic static equalsIgnoreCase(value: string, ...compare: string[]): boolean;\n\tpublic static equalsIgnoreCase(value: string, compare: string | string[]): boolean {\n\t\treturn Array.isArray(compare)\n\t\t\t? compare.every(\n\t\t\t\t\t(compValue) =>\n\t\t\t\t\t\tvalue === compValue ||\n\t\t\t\t\t\t(value != null && compValue != null && value.toLowerCase() === compValue.toLowerCase())\n\t\t\t )\n\t\t\t: value === compare || (value != null && compare != null && value.toLowerCase() === compare.toLowerCase());\n\t}\n\n\tpublic static isNullOrEmpty(value: string | null | undefined): boolean {\n\t\treturn value == null || value === '';\n\t}\n\n\tpublic static isNullOrWhiteSpace(value: string | null | undefined): boolean {\n\t\treturn value == null || value.trim() === '';\n\t}\n\n\tpublic static evaluateTemplate(template: string, context: { [k: string]: any }): string {\n\t\tlet returnValue = template;\n\t\tif (!this.isNullOrWhiteSpace(returnValue)) {\n\t\t\t/* eslint no-template-curly-in-string: off */\n\t\t\tconst regex = new RegExp('{([^}]+)}', 'gm');\n\t\t\tlet match: ReturnType;\n\t\t\twhile ((match = regex.exec(returnValue)) !== null) {\n\t\t\t\t// This is necessary to avoid infinite loops with zero-width matches\n\t\t\t\tif (match.index === regex.lastIndex) {\n\t\t\t\t\tregex.lastIndex++;\n\t\t\t\t}\n\n\t\t\t\t//replace template variable if match is found\n\t\t\t\tif (match.length >= 2) {\n\t\t\t\t\tconst search = match[0];\n\t\t\t\t\tconst key = match[1];\n\t\t\t\t\tconst replace = context != null && context[key] != null ? `${context[key]}` : '';\n\t\t\t\t\treturnValue = returnValue.replace(search, replace);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn returnValue;\n\t}\n}\n\nexport default {\n\tisString: StringUtils.isString,\n\tequalsIgnoreCase: StringUtils.equalsIgnoreCase,\n\tisNullOrEmpty: StringUtils.isNullOrEmpty,\n\tisNullOrWhiteSpace: StringUtils.isNullOrWhiteSpace,\n\tevaluateTemplate: StringUtils.evaluateTemplate,\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"Header_header__SfXwj\",\"accountInfoContainer\":\"Header_accountInfoContainer__2Ohvx\",\"headerUnapprovedView\":\"Header_headerUnapprovedView__Up4Fs\",\"search\":\"Header_search__1Kvgc\",\"smallSearch\":\"Header_smallSearch__2_XBY\",\"type\":\"Header_type__3VqX5\",\"typeLive\":\"Header_typeLive__Gnb3J\",\"typeDemo\":\"Header_typeDemo__2zzww\",\"accountId\":\"Header_accountId__3ajTS\",\"unapprovedAccountId\":\"Header_unapprovedAccountId__39rZD\",\"modalSettings\":\"Header_modalSettings__3Cwc-\",\"modalContent\":\"Header_modalContent__2oAc-\",\"popupContainer\":\"Header_popupContainer__1sXz4\",\"accountStatus\":\"Header_accountStatus__3jXr7\",\"popupHeader\":\"Header_popupHeader__20qi-\",\"unapprovedPopupHeader\":\"Header_unapprovedPopupHeader__232eX\",\"faIcons\":\"Header_faIcons__2-QFx\",\"otherAccountsDiv\":\"Header_otherAccountsDiv__p078m\",\"addAccountContainer\":\"Header_addAccountContainer__1WoI-\",\"actionButtons\":\"Header_actionButtons__3yoYI\",\"saveButton\":\"Header_saveButton__6cUQ_\",\"cancelButton\":\"Header_cancelButton__OVeN3\",\"modalFooter\":\"Header_modalFooter__20DzH\",\"settingsModalHeader\":\"Header_settingsModalHeader__3XmeW\",\"modalTitle\":\"Header_modalTitle__2Qfqw\",\"settings\":\"Header_settings__1STSj\",\"closeIcon\":\"Header_closeIcon__2WIq-\",\"optionsContainer\":\"Header_optionsContainer__1hbr1\",\"profileContainer\":\"Header_profileContainer__2mGC7\",\"profileName\":\"Header_profileName__2Pgx5\",\"profileEmail\":\"Header_profileEmail__fIBRT\",\"profileImage\":\"Header_profileImage__3K8Uy\",\"defaultImage\":\"Header_defaultImage__2fpN9\",\"profileImageInfo\":\"Header_profileImageInfo__6qs3p\",\"profileSettingsBG\":\"Header_profileSettingsBG__36ZyG\",\"settingsTabContainer\":\"Header_settingsTabContainer__1WH0m\",\"iconContainer\":\"Header_iconContainer__2rTzs\",\"settingsTabContainerLabel\":\"Header_settingsTabContainerLabel__10SC8\",\"settingsTabOption\":\"Header_settingsTabOption__3X-Zi\",\"logout\":\"Header_logout__3wQXe\",\"menuSection\":\"Header_menuSection__3kajZ\",\"tradingAccounts\":\"Header_tradingAccounts__1uQvq\",\"faUsaFlag\":\"Header_faUsaFlag__TcaKp\",\"faUsaFlagLive\":\"Header_faUsaFlagLive__3zYOi\",\"faUsaFlagDemo\":\"Header_faUsaFlagDemo__1aRGx\",\"popupFlagIcon\":\"Header_popupFlagIcon__HNo66\",\"popupFlagIconLive\":\"Header_popupFlagIconLive__1FIk4\",\"popupFlagIconDemo\":\"Header_popupFlagIconDemo__KR37_\",\"flagLogoAccount\":\"Header_flagLogoAccount__1Mf2Z\",\"flagLogoAccountLive\":\"Header_flagLogoAccountLive__3kbMq\",\"flagLogoAccountDemo\":\"Header_flagLogoAccountDemo__3gYDZ\",\"withCurrency\":\"Header_withCurrency__Fpvay\",\"withoutCurrency\":\"Header_withoutCurrency__1OjmV\",\"dontMatch\":\"Header_dontMatch__2yEyP\",\"iconCircle\":\"Header_iconCircle__2vwrE\",\"otherAccounts\":\"Header_otherAccounts__3iNgd\",\"menuItemsContainer\":\"Header_menuItemsContainer__1cMtz\",\"menuItemIconContainer\":\"Header_menuItemIconContainer__2ERX1\",\"menuItemIcon\":\"Header_menuItemIcon__2_COG\",\"menuItemIconEnlarged\":\"Header_menuItemIconEnlarged__3FBd_\",\"menuItemText\":\"Header_menuItemText__3H5EQ\",\"logoContainer\":\"Header_logoContainer__2ss0P\",\"logo\":\"Header_logo__2Y86f\",\"accountStats\":\"Header_accountStats__1rBav\",\"disabledOption\":\"Header_disabledOption__1Q-sk\",\"accountContainer\":\"Header_accountContainer__3dzzr\",\"liveAddAccountContainer\":\"Header_liveAddAccountContainer__YjE0Z\",\"demoAddAccountContainer\":\"Header_demoAddAccountContainer__3B-il\",\"plusIcon\":\"Header_plusIcon__1g3jB\",\"instrumentSearchContainer\":\"Header_instrumentSearchContainer__pmHyz\",\"expandedInstrumentSearchContainer\":\"Header_expandedInstrumentSearchContainer__3u2Q7\",\"questionIcon\":\"Header_questionIcon__DqHsp\",\"passPopup\":\"Header_passPopup__3yhF-\",\"plusImage\":\"Header_plusImage__2XVAX\",\"popupDivLive\":\"Header_popupDivLive__9-a6q\",\"settingsMain\":\"Header_settingsMain__2x3-l\",\"settingsWrapper\":\"Header_settingsWrapper__2iBOi\",\"settingsNavigation\":\"Header_settingsNavigation__1oDaO\",\"tab\":\"Header_tab__3SYPl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"costInput\":\"WatchlistsDropDown_costInput__CjYBb\",\"lightErrorInput\":\"WatchlistsDropDown_lightErrorInput__2tJ50\",\"popup\":\"WatchlistsDropDown_popup__2U-QV\",\"watchlists\":\"WatchlistsDropDown_watchlists__1gl0E\",\"listContainer\":\"WatchlistsDropDown_listContainer__91A8h\",\"listContainerActive\":\"WatchlistsDropDown_listContainerActive__pHvmv\",\"itemContainer\":\"WatchlistsDropDown_itemContainer__3ex5j\",\"watchlistItem\":\"WatchlistsDropDown_watchlistItem__2avGt\",\"icon\":\"WatchlistsDropDown_icon__2Bnxx\",\"active\":\"WatchlistsDropDown_active__8uDWn\",\"iconPen\":\"WatchlistsDropDown_iconPen__1mDZH\",\"watchlistName\":\"WatchlistsDropDown_watchlistName__37ZQg\",\"createWLContainer\":\"WatchlistsDropDown_createWLContainer__165ig\",\"createWatchlistItems\":\"WatchlistsDropDown_createWatchlistItems__3eQsP\",\"createWatchlistTitle\":\"WatchlistsDropDown_createWatchlistTitle__RVtuU\",\"inputContainer\":\"WatchlistsDropDown_inputContainer__2uBPS\",\"inputTitle\":\"WatchlistsDropDown_inputTitle__17tS0\",\"inputBox\":\"WatchlistsDropDown_inputBox__2eZtr\",\"messageRow\":\"WatchlistsDropDown_messageRow__lXjok\",\"errorMessage\":\"WatchlistsDropDown_errorMessage__bfMZ0\",\"inputContainerText\":\"WatchlistsDropDown_inputContainerText__1AyoE\",\"popupFooter\":\"WatchlistsDropDown_popupFooter__3ddiU\",\"Title\":\"WatchlistsDropDown_Title__1P_Ws\",\"lightTitle\":\"WatchlistsDropDown_lightTitle__36zjV\",\"darkTitle\":\"WatchlistsDropDown_darkTitle__89Bu6\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"scrollableWrapper\":\"SignalsList_scrollableWrapper__1ppqk\",\"centerContent\":\"SignalsList_centerContent__2zgn3\",\"disableTextSelection\":\"SignalsList_disableTextSelection__1pXDz\",\"container\":\"SignalsList_container__22Djf\",\"signalsTable\":\"SignalsList_signalsTable__1nOCG\",\"tableHeadersRow\":\"SignalsList_tableHeadersRow__2-KUS\",\"header\":\"SignalsList_header__AeENm\",\"signalsItemWrapper\":\"SignalsList_signalsItemWrapper__1qmPy\",\"border\":\"SignalsList_border__3A6Ae\",\"headerContainer\":\"SignalsList_headerContainer__361Ow\",\"titleContainer\":\"SignalsList_titleContainer__eTCJQ\",\"title\":\"SignalsList_title__2p0dp\",\"filterIconHolder\":\"SignalsList_filterIconHolder__3TxhX\",\"hasFiltersIndicator\":\"SignalsList_hasFiltersIndicator__29Gct\",\"filterIcon\":\"SignalsList_filterIcon__2D5wq\",\"selected\":\"SignalsList_selected__Ds21G\",\"sortingChevtonsContainer\":\"SignalsList_sortingChevtonsContainer__1aq7m\",\"signalItem\":\"SignalsList_signalItem__8j9dO\",\"instrumentInfo\":\"SignalsList_instrumentInfo__1MGFG\",\"code\":\"SignalsList_code__9Ck6g\",\"description\":\"SignalsList_description__CeFLY\",\"confidencePercent\":\"SignalsList_confidencePercent__3lVUS\",\"orderStats\":\"SignalsList_orderStats__2OnBS\",\"orderType\":\"SignalsList_orderType__2Z92Y\",\"loader\":\"SignalsList_loader__2wYz5\",\"addSimulation\":\"SignalsList_addSimulation__QPZKv\",\"plusIcon\":\"SignalsList_plusIcon__2yjyb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"popup\":\"CommunityList_popup__1Xul3\",\"content\":\"CommunityList_content__yYU2A\",\"wrapperItems\":\"CommunityList_wrapperItems__2C9vB\",\"itemContent\":\"CommunityList_itemContent__xYG9T\",\"item\":\"CommunityList_item__3N9Mt\",\"itemNoBorder\":\"CommunityList_itemNoBorder__1C5M8\",\"iconWrapper\":\"CommunityList_iconWrapper__1yjeX\",\"icon\":\"CommunityList_icon__1Dg8b\",\"popupIsArabic\":\"CommunityList_popupIsArabic__2kKJx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"popup\":\"RemainingVolume_popup__16nES\",\"viewDetailsContainer\":\"RemainingVolume_viewDetailsContainer__35Fqy\",\"btnViewDetails\":\"RemainingVolume_btnViewDetails__7WW6K\",\"wrapper\":\"RemainingVolume_wrapper__jTad2\",\"isOpen\":\"RemainingVolume_isOpen__2cNAT\",\"green\":\"RemainingVolume_green__2TqmN\",\"statusIndicator\":\"RemainingVolume_statusIndicator__2uR6M\",\"orange\":\"RemainingVolume_orange__221Wo\",\"red\":\"RemainingVolume_red__2HiWD\",\"disabled\":\"RemainingVolume_disabled__3djlm\",\"statsLabel\":\"RemainingVolume_statsLabel__3iWzW\",\"marginPercent\":\"RemainingVolume_marginPercent__2hJaU\",\"valueContainer\":\"RemainingVolume_valueContainer__1-wzj\",\"toggleIcon\":\"RemainingVolume_toggleIcon__3tPSL\",\"progressBarContainer\":\"RemainingVolume_progressBarContainer__OIsTQ\",\"progressPercent\":\"RemainingVolume_progressPercent__1rzPn\",\"progressWrapper\":\"RemainingVolume_progressWrapper__qwYr4\",\"tieName\":\"RemainingVolume_tieName__2Klkq\",\"contentContainer\":\"RemainingVolume_contentContainer__3k4rS\",\"remainingVolume\":\"RemainingVolume_remainingVolume__nKhcK\",\"values\":\"RemainingVolume_values__19tLc\",\"dividerShort\":\"RemainingVolume_dividerShort__1H8rV\"};","import { formatNumberWithCommas } from '../../Watchlist/Instrument/formattedQuoteNumber';\nimport { DashboardContextProvider } from '../../../../../contexts/DashboardContext';\n\nexport const hidePopup = (isArabic: boolean) => {\n\tconst popup = document.getElementsByClassName(`ui popup transition visible`);\n\tif (popup && popup.length > 0) popup[0].className = `ui popup transition`;\n};\n\nexport const addCommas = (\n\tcurrent: number | string,\n\tlanguageSettings: string,\n\tdecPrec?: number | null,\n\tisPipsChange?: boolean | null\n) => {\n\tdecPrec = decPrec ? decPrec : current.toString().split('.')[1]?.length ?? 0;\n\n\tif (isPipsChange) decPrec = 2;\n\n\treturn formatNumberWithCommas(current, decPrec, languageSettings);\n};\n\nexport const closeAllTickets = (dashboardContext: DashboardContextProvider) => {\n\tdashboardContext.showOrderTicket = false;\n\tdashboardContext.showCloseTicket = false;\n\tdashboardContext.showCancelTicket = false;\n\tdashboardContext.modifyTicket = false;\n\tdashboardContext.showNewsFeed = false;\n\tdashboardContext.showConfirmTicket = false;\n\tdashboardContext.showOrderInformation = false;\n};\n\nexport const positionTableObj = {\n\tside: true,\n\tLots: true,\n\tAmount: true,\n\tonDate: true,\n\topen: true,\n\tchange: true,\n\tcurrent: true,\n\tnetPL: true,\n\tgrossPL: false,\n\ttime: false,\n\tswap: false,\n\tcomment: false,\n\tdividend: false,\n\tcomm: false,\n\tposId: false,\n\tpipsChange: false,\n};\n\nexport const orderTableObj = {\n\tside: true,\n\tLots: true,\n\tAmount: true,\n\tonDate: true,\n\topen: true,\n\texpiryOn: false,\n\tdistanceToMarket: true,\n\ttype: true,\n\tcurrent: true,\n\tcreatedOn: true,\n\ttime: false,\n\tposId: false,\n};\n\nexport const closedTableObj = {\n\tside: true,\n\tLots: true,\n\tAmount: true,\n\tonDate: true,\n\topen: true,\n\tclosed: true,\n\tchange: true,\n\topenDate: true,\n\tcloseOn: true,\n\tStopLoss: false,\n\tTakeProfit: false,\n\tnetPL: true,\n\tgrossPL: false,\n\ttime: false,\n\tclosedTime: false,\n\tswap: false,\n\tcomment: false,\n\tdividend: false,\n\tcomm: false,\n\tposId: false,\n\tpipsChange: true,\n};\n","/* eslint import/no-webpack-loader-syntax: off */\nimport { EventEmitter } from 'events';\n\nimport { Observable, Subscription } from 'observable-fns';\n\nimport { Optional } from '../../utils/functions/Nullable';\nimport { default as Lazy } from '../../utils/functions/Lazy';\n\nimport { TRfpDataMessageMap, TRfpMessages, TRfpSendParams } from './rfpConstants';\nimport {\n\tRFPConnectPayload,\n\tRFPConnectResult,\n\tPriceQuote,\n\tTimeScale,\n\tHistoryTick,\n\tPriceType,\n\tMarketItem,\n} from './rfp.types';\nimport { QuantityType } from '../../utils/functions/enums';\n\n//#region Config\n\nexport interface IRfpGatewayConfig {\n\tbaseUrl: string;\n\tdefaultFeedId?: string;\n\twebSocket: {\n\t\tconnectTimeout: number;\n\t\tfeedDelay?: number;\n\t\tsimulateQuotes?: boolean;\n\t\tmaxRequestsPerSecond?: Optional;\n\t\tautoReconnect:\n\t\t\t| false\n\t\t\t| {\n\t\t\t\t\tinterval: number;\n\t\t\t };\n\t};\n\tdebugHandler?: Optional<(...args: any) => void>;\n}\n\n//#endregion\n\n//#region DataObject\n\nexport interface IDataObjectSubscription {\n\tsubscribe(destination: T, callback: (data: TRfpDataMessageMap[T]) => any): string;\n\tunsubscribe(subId: any): void;\n}\n\n//#endregion\n\n//#region PriceSubscription\nexport interface IPriceQuoteSubscription {\n\tsubscribePriceQuote(feedId: string, codes: string[], callback: (data: PriceQuote) => any): string;\n\tunsubscribePriceQuote(subId: any): void;\n}\n\n//#endregion\n\n//#region PriceFeed\n\nexport interface IPriceFeedSubscription {\n\tfeedId: string;\n\tcode: string;\n}\n\nexport interface IPriceFeed {\n\treadonly id: string;\n\treadonly subscriptions: ReadonlyArray;\n\treadonly stream: Observable;\n\tsubscribe(subscription: IPriceFeedSubscription): Promise;\n\tsubscribe(subscriptions: IPriceFeedSubscription[]): Promise;\n\tunsubscribe(subscription: IPriceFeedSubscription): Promise;\n\tunsubscribe(subscriptions: IPriceFeedSubscription[]): Promise;\n\tunsubscribe(predicate: (subscription: IPriceFeedSubscription) => boolean): Promise;\n}\n\n//#endregion\n\n//#region HistoryFeed\n\nexport interface IHistoryFeedSubscription {\n\treqId: string;\n\tfeedId: string;\n\tcode: string;\n\tpriceType?: PriceType;\n\ttimescale: TimeScale;\n\ttickCount?: number;\n}\n\nexport interface IHistoryFeed {\n\treadonly id: string;\n\treadonly subscriptions: ReadonlyArray;\n\treadonly stream: Observable;\n\tfetchTicks(historyFeedSubscription: IHistoryFeedSubscription, timeoutDelay?: number): Promise;\n\tsubscribe(subscription: IHistoryFeedSubscription): Promise;\n\tunsubscribe(subscription: IHistoryFeedSubscription): Promise;\n\tunsubscribe(predicate: (subscription: IHistoryFeedSubscription) => boolean): Promise;\n}\n\n//#endregion\n\n//#region RfpGateway\n\nexport interface IRfpGatewayEventMap {\n\tconnected: () => any;\n\tdisconnected: () => any;\n\tsocketError: (error?: Error) => any;\n}\n\nexport interface IRfpConnectionInfo {\n\tusername: string;\n\tpassword: string;\n\ttfboSessionId: string;\n\ttfboToken: string;\n}\n\nexport default abstract class RfpGateway {\n\tprivate readonly m_eventEmitter: Lazy = new Lazy(() => new EventEmitter());\n\tprivate m_debugHandler: Optional<(...args: any) => void> = null;\n\tprotected readonly m_config: IRfpGatewayConfig;\n\tprotected m_connectionInfo: Optional = null;\n\n\tprotected get eventEmitter(): EventEmitter {\n\t\treturn this.m_eventEmitter.getValue();\n\t}\n\n\tpublic get debugHandler(): Optional<(...args: any) => void> {\n\t\treturn this.m_debugHandler;\n\t}\n\n\tpublic set debugHandler(value: Optional<(...args: any) => void>) {\n\t\tthis.m_debugHandler = value;\n\t}\n\n\tpublic get config(): Readonly {\n\t\treturn this.m_config;\n\t}\n\n\tpublic abstract get connected(): boolean;\n\n\tpublic abstract get isAppInBackgroundMode(): boolean;\n\tpublic abstract set setAppInBackgroundMode(value: boolean);\n\n\t/**\n\t * Key is feedId-code, values are PriceQuotes for the same feedId\n\t */\n\tpublic abstract get mapQuotesPrices(): ReadonlyMap;\n\n\t/**\n\t * Key is sub id, values are HistoryTick[]\n\t */\n\tpublic abstract get mapHistoryData(): ReadonlyMap;\n\tpublic abstract set setupHistoryData(reqId: string);\n\tpublic abstract set deleteMapHistoryData(reqId: string);\n\n\tpublic abstract get mapMarketItems(): ReadonlyMap;\n\tpublic abstract get priceFeeds(): ReadonlyArray;\n\n\tpublic abstract get historyFeeds(): ReadonlyArray;\n\n\tpublic abstract get dataObjectSubscriptions(): IDataObjectSubscription;\n\n\tpublic get connectionInfo(): Optional> {\n\t\treturn this.m_connectionInfo;\n\t}\n\n\tprotected constructor(config: IRfpGatewayConfig) {\n\t\tthis.m_config = config;\n\t\tif (config.debugHandler != null) {\n\t\t\tthis.debugHandler = config.debugHandler;\n\t\t}\n\t}\n\n\tpublic abstract connect(\n\t\tconnectPayloadProvider: () => RFPConnectPayload | Promise\n\t): Promise;\n\n\tpublic abstract createPriceFeed(id: string): IPriceFeed;\n\n\tpublic abstract requestTfboLogin(): this;\n\tpublic abstract requestTfboEndpoint(): this;\n\n\tpublic abstract deletePriceFeed(id: string): this;\n\tpublic abstract deletePriceFeed(priceFeed: IPriceFeed): this;\n\tpublic abstract deletePriceFeed(predicate: (priceFeed: IPriceFeed) => boolean): this;\n\n\tpublic abstract createHistoryFeed(id: string): IHistoryFeed;\n\n\tpublic abstract deleteHistoryFeed(id: string): this;\n\tpublic abstract deleteHistoryFeed(historyFeed: IHistoryFeed): this;\n\tpublic abstract deleteHistoryFeed(predicate: (historyFeed: IHistoryFeed) => boolean): this;\n\n\tpublic abstract fetchHistoryTicks(\n\t\thistoryFeedSubscription: IHistoryFeedSubscription,\n\t\ttimeoutDelay?: number,\n\t\thistoryFeed?: IHistoryFeed\n\t): Promise;\n\n\tpublic abstract updateQuantityType(accountId: number, quantityType: QuantityType): Promise;\n\n\tpublic abstract send(destination: T, ...args: TRfpSendParams): Promise;\n\n\tpublic abstract hasSubscription(destination: T): boolean;\n\n\tpublic abstract subscribeFor(\n\t\tdestination: T,\n\t\tcallback: (data: TRfpDataMessageMap[T]) => any\n\t): string;\n\tpublic abstract unsubscribeFor(subId: any): void;\n\n\tpublic abstract subscribePriceQuote(\n\t\tfeedId: string,\n\t\tcodes: string[],\n\t\tcallback: (priceQuote: PriceQuote) => any\n\t): string;\n\tpublic abstract unsubscribePriceQuote(subId: any): void;\n\n\tpublic abstract subscribe(\n\t\tdestination: T\n\t): Promise>;\n\tpublic abstract subscribe(\n\t\tdestination: T,\n\t\tcallback: (message: TRfpMessages['subscribe'][T]) => any\n\t): Promise>;\n\n\tpublic abstract unsubscribe(destination: T): Promise;\n\n\tpublic abstract disconnect(): Promise;\n\n\tpublic abstract getQuotePrices(feedId: string, code: string): PriceQuote | undefined;\n\tpublic abstract setPriceQuote(priceQuote: PriceQuote): void;\n\n\tpublic abstract getMarketItem(code: string, feedId?: string): MarketItem | undefined;\n\n\tpublic on(event: K, listener: IRfpGatewayEventMap[K]): this {\n\t\tthis.eventEmitter.on(event, listener);\n\t\treturn this;\n\t}\n\n\tpublic once(event: K, listener: IRfpGatewayEventMap[K]): this {\n\t\tthis.eventEmitter.once(event, listener);\n\t\treturn this;\n\t}\n\n\tpublic off(event: K, listener: IRfpGatewayEventMap[K]): this {\n\t\tthis.eventEmitter.off(event, listener);\n\t\treturn this;\n\t}\n\n\tpublic removeAllListeners(event?: K): this {\n\t\tthis.eventEmitter.removeAllListeners(event);\n\t\treturn this;\n\t}\n\n\tprotected emit(event: K, ...data: Parameters): this {\n\t\ttry {\n\t\t\tthis.eventEmitter.emit(event, ...data);\n\t\t} catch (err) {\n\t\t\tthis.debug(`Unhandled exception when emitting ${event}`, err);\n\t\t}\n\t\treturn this;\n\t}\n\n\tprotected debug(...args: any[]): void {\n\t\tif (this.debugHandler != null) {\n\t\t\ttry {\n\t\t\t\tthis.debugHandler(...args);\n\t\t\t} catch (err) {}\n\t\t}\n\t}\n}\n\n//#endregion\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"costInput\":\"MarketsGrid_costInput__AvLFl\",\"filterList\":\"MarketsGrid_filterList__2NT4z\",\"marketsList\":\"MarketsGrid_marketsList__1y3yw\",\"header\":\"MarketsGrid_header__2GSjQ\",\"filterOptionGroupWrapper\":\"MarketsGrid_filterOptionGroupWrapper__18GiT\",\"filterOptionGroup\":\"MarketsGrid_filterOptionGroup__2uCB2\",\"filterLabel\":\"MarketsGrid_filterLabel__3XgXX\",\"filterControl\":\"MarketsGrid_filterControl__3ra3Z\",\"label\":\"MarketsGrid_label__2x3L_\",\"dataGrid\":\"MarketsGrid_dataGrid__2C_w2\",\"DataGrid\":\"MarketsGrid_DataGrid__1QkZL\",\"content\":\"MarketsGrid_content__1uzCE\",\"badgeWrapper\":\"MarketsGrid_badgeWrapper__1lEEG\",\"contentSymbol\":\"MarketsGrid_contentSymbol__2HO7m\",\"button\":\"MarketsGrid_button__3IDgB\",\"typeButton\":\"MarketsGrid_typeButton__aQC8q\",\"testButton\":\"MarketsGrid_testButton__1FxPo\",\"typeValue\":\"MarketsGrid_typeValue__WoGLY\",\"testValue\":\"MarketsGrid_testValue__3n1Tg\",\"watchlistsListContainer\":\"MarketsGrid_watchlistsListContainer__1qtBC\",\"titleContainer\":\"MarketsGrid_titleContainer__115_W\",\"watchlistContainer\":\"MarketsGrid_watchlistContainer__MIIfE\",\"createWatchlist\":\"MarketsGrid_createWatchlist__2LA6Y\",\"icon\":\"MarketsGrid_icon__3G6cC\",\"existsInWatchlistIcon\":\"MarketsGrid_existsInWatchlistIcon__35Ttr\",\"addToWatchlistIcon\":\"MarketsGrid_addToWatchlistIcon__1Q4Eq\",\"addIcon\":\"MarketsGrid_addIcon__1lyGJ\",\"errorAddIcon\":\"MarketsGrid_errorAddIcon__1yHXI\",\"create\":\"MarketsGrid_create__puXAc\",\"errorCreateText\":\"MarketsGrid_errorCreateText__eukcn\",\"textContainer\":\"MarketsGrid_textContainer__3VEPk\",\"createErrorMessage\":\"MarketsGrid_createErrorMessage__2xzMS\",\"createWLContainer\":\"MarketsGrid_createWLContainer__2f_yN\",\"createWatchlistItems\":\"MarketsGrid_createWatchlistItems__kBKx7\",\"inputContainer\":\"MarketsGrid_inputContainer__1d5I6\",\"inputTitle\":\"MarketsGrid_inputTitle__1rvWI\",\"inputContainerText\":\"MarketsGrid_inputContainerText__1jatx\",\"popupFooter\":\"MarketsGrid_popupFooter__3-Z8N\",\"lightticketButton\":\"MarketsGrid_lightticketButton__3QV4P\",\"darkticketButton\":\"MarketsGrid_darkticketButton__UOhfw\",\"messageRow\":\"MarketsGrid_messageRow__1-DjO\",\"inputCount\":\"MarketsGrid_inputCount__1gN88\",\"disableButton\":\"MarketsGrid_disableButton__1ST9Y\",\"lightCostInput\":\"MarketsGrid_lightCostInput__4S-0u\",\"errorInput\":\"MarketsGrid_errorInput__1dUET\",\"lightErrorInput\":\"MarketsGrid_lightErrorInput__37K6X\",\"errorMessage\":\"MarketsGrid_errorMessage__2LAas\",\"btnCancel\":\"MarketsGrid_btnCancel__3c0lf\",\"resizedCancelBtn\":\"MarketsGrid_resizedCancelBtn__1Dy7U\",\"btnSave\":\"MarketsGrid_btnSave__1KuKg\",\"resizedSaveBtn\":\"MarketsGrid_resizedSaveBtn__3yNXI\",\"hidden\":\"MarketsGrid_hidden__1jJOH\",\"Popup\":\"MarketsGrid_Popup__18Aj1\",\"filterListWrapper\":\"MarketsGrid_filterListWrapper__3Sv6s\",\"listContainer\":\"MarketsGrid_listContainer__MevYy\",\"itemContainer\":\"MarketsGrid_itemContainer__35RPr\",\"item\":\"MarketsGrid_item__29CnM\",\"bold\":\"MarketsGrid_bold__39-rv\",\"progressBarContainer\":\"MarketsGrid_progressBarContainer__3BXbq\",\"progressBar\":\"MarketsGrid_progressBar__3gE7M\",\"positive\":\"MarketsGrid_positive__1-_eo\",\"negative\":\"MarketsGrid_negative__10_HF\",\"tooltipTimestamp\":\"MarketsGrid_tooltipTimestamp__3QsOd\",\"tooltipTitle\":\"MarketsGrid_tooltipTitle__1FuUB\",\"grid\":\"MarketsGrid_grid__3Qq3F\",\"padSm\":\"MarketsGrid_padSm__3jIN8\",\"star\":\"MarketsGrid_star__15EOE\",\"timeUpdate\":\"MarketsGrid_timeUpdate__1yogn\"};","import { useContext } from 'react';\n\nimport AppContext from '../../../contexts/AppContext';\nimport { TWatchlists } from '../../../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\nimport authStore, { AuthStore } from '../../../store/authStore';\nimport useSaveUserPreferences from '../../mutations/useSaveUserPreferences';\nimport tradingAccountStore from '../../../store/tradingAccountStore';\nimport { convertTWatchlistsToWatchListData } from '../../functions/WatchlistUtils';\nimport watchListStore from '../../../store/WatchListStore/watchListStore';\n\nconst useSaveWatchlistToPreferences = () => {\n\tconst appContext = useContext(AppContext);\n\tconst { mutate: savePreferences } = useSaveUserPreferences();\n\n\tconst setWatchlists = watchListStore.use.setWatchlists();\n\tconst tradingMode = authStore((store: AuthStore) => store.tradingMode);\n\tconst isSpreadBettingAccount = tradingAccountStore.use.isSpreadBetting();\n\tconst isJapanSpread = tradingAccountStore.use.isJapanSpread();\n\treturn (preference: TWatchlists[], isSpreadBettingWatchlist?: boolean) => {\n\t\tif (appContext.userPreferences) {\n\t\t\tconst accountToUpdate = appContext.userPreferences.user_prefs.watchlists.account.filter((accountType) => {\n\t\t\t\tif (isSpreadBettingAccount || isSpreadBettingWatchlist) {\n\t\t\t\t\treturn accountType.accountType === 'SpreadBetting';\n\t\t\t\t}\n\t\t\t\tif (isJapanSpread) {\n\t\t\t\t\treturn accountType.accountType === 'JapanSpread';\n\t\t\t\t} else {\n\t\t\t\t\treturn accountType.accountType === undefined;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\taccountToUpdate.forEach((account) => {\n\t\t\t\taccount.watchlist = preference;\n\t\t\t});\n\n\t\t\tsetWatchlists(tradingMode, convertTWatchlistsToWatchListData(preference));\n\t\t\tsavePreferences();\n\t\t}\n\t};\n};\n\nexport default useSaveWatchlistToPreferences;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tableSettingsPopup\":\"TableSettingsModal_tableSettingsPopup__2IUY-\",\"tableSettingsTitle\":\"TableSettingsModal_tableSettingsTitle__YFJgE\",\"tableSettingOptionsContainer\":\"TableSettingsModal_tableSettingOptionsContainer__1yzWt\",\"checkboxContainer\":\"TableSettingsModal_checkboxContainer__14aeh\",\"label\":\"TableSettingsModal_label__lXRPR\",\"tableSettingsPopupPosition\":\"TableSettingsModal_tableSettingsPopupPosition__367Bc\",\"container\":\"TableSettingsModal_container__37Tus\",\"optionText\":\"TableSettingsModal_optionText__3V5XH\",\"checkmark\":\"TableSettingsModal_checkmark__12YQm\",\"disabledCheckbox\":\"TableSettingsModal_disabledCheckbox__f3Zcv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Instrument_container__2_LGV\",\"TickerIcons\":\"Instrument_TickerIcons__3GsEY\",\"showActions\":\"Instrument_showActions__2kyEB\",\"equityField\":\"Instrument_equityField__3-6iA\",\"instrumentHeader\":\"Instrument_instrumentHeader__2pBgm\",\"rightHandContainer\":\"Instrument_rightHandContainer__2g-aF\",\"windowContainer\":\"Instrument_windowContainer__3xl_c\",\"invisible\":\"Instrument_invisible__160vQ\",\"nonHighlightSelected\":\"Instrument_nonHighlightSelected__2AhCR\",\"highlightSelected\":\"Instrument_highlightSelected__38QT6\",\"darkthighlightSelected\":\"Instrument_darkthighlightSelected__1WtRl\",\"lightContainer\":\"Instrument_lightContainer__2PFJl\",\"darkContainer\":\"Instrument_darkContainer__1Uz2j\",\"lighthighlightSelected\":\"Instrument_lighthighlightSelected__3JOot\",\"TickerInfo\":\"Instrument_TickerInfo__13x0K\",\"windowTickerInfo\":\"Instrument_windowTickerInfo__S92Cw\",\"tickerContainer\":\"Instrument_tickerContainer__2Q2QD\",\"DotContainer\":\"Instrument_DotContainer__3rZou\",\"iconContainer\":\"Instrument_iconContainer__nHceJ\",\"infoIcon\":\"Instrument_infoIcon__2Yyiu\",\"badge\":\"Instrument_badge__2ra5-\",\"TickerActions\":\"Instrument_TickerActions__2pM5x\",\"InstrumentButton\":\"Instrument_InstrumentButton__3z18-\",\"InstrumentGreen\":\"Instrument_InstrumentGreen__9FA8M\",\"InstrumentRed\":\"Instrument_InstrumentRed__plnSU\",\"InstrumentGrey\":\"Instrument_InstrumentGrey__2VlgX\",\"instrumentCodeAndSessionIconContainer\":\"Instrument_instrumentCodeAndSessionIconContainer__3I54a\",\"Symbol\":\"Instrument_Symbol__14AL6\",\"darkSymbol\":\"Instrument_darkSymbol__1kcOt\",\"Spread\":\"Instrument_Spread__3pA8e\",\"lightSpread\":\"Instrument_lightSpread__1sS2r\",\"darkSpread\":\"Instrument_darkSpread__3taRz\",\"tickerChart\":\"Instrument_tickerChart__LtSoN\",\"symbolDescription\":\"Instrument_symbolDescription__2T_5X\",\"darkTime\":\"Instrument_darkTime___-x-3\",\"TickerLowHigh\":\"Instrument_TickerLowHigh__3fz2E\",\"ColorRed\":\"Instrument_ColorRed__1dGoA\",\"ColorGreen\":\"Instrument_ColorGreen__1g6oc\",\"TickerFooter\":\"Instrument_TickerFooter__au_bo\",\"lighticonTheme\":\"Instrument_lighticonTheme__1Nbdt\",\"darkiconTheme\":\"Instrument_darkiconTheme__3mmzo\",\"iconClicked\":\"Instrument_iconClicked__1Vsd4\",\"informationContainer\":\"Instrument_informationContainer__3wyMu\",\"lightinformationContainer\":\"Instrument_lightinformationContainer__33AwA\",\"darkinformationContainer\":\"Instrument_darkinformationContainer__pDLtC\",\"detailHeader\":\"Instrument_detailHeader__2IDJc\",\"closeIcon\":\"Instrument_closeIcon__1ktNP\",\"detailContainer\":\"Instrument_detailContainer__1Rilp\",\"detailFieldName\":\"Instrument_detailFieldName__RD6ow\",\"fieldValue\":\"Instrument_fieldValue__JsVJw\",\"equityTickerFooter\":\"Instrument_equityTickerFooter__1cwym\",\"changeLabel\":\"Instrument_changeLabel__1U6-u\",\"selectedDot\":\"Instrument_selectedDot__3h-1f\",\"Dot\":\"Instrument_Dot__3sC4c\",\"instrumentInfo\":\"Instrument_instrumentInfo__UPdFM\",\"bidAskSpreadButtons\":\"Instrument_bidAskSpreadButtons__1qkFc\",\"watchlist\":\"Instrument_watchlist__24eml\"};","import { PipStoreTypes } from './pipStore.types';\n\nexport const initialState: PipStoreTypes = {\n\ttakeProfit: 30,\n\tstopLoss: 30,\n\tsetStopLossPips: (pips: number) => {},\n\tsetTakeProfitPips: (pips: number) => {},\n};\n","import { immer } from 'zustand/middleware/immer';\n\nimport { create } from '../create';\nimport createSelectors from '../createSelectors';\n\nimport { PipStoreTypes } from './pipStore.types';\nimport { initialState } from './pipStore.initial';\n\nconst pipStore = create()(\n\timmer((set) => ({\n\t\t...initialState,\n\t\tsetStopLossPips: (pips: number) => {\n\t\t\tset((state) => {\n\t\t\t\tstate.stopLoss = isNaN(pips) ? initialState.stopLoss : pips;\n\t\t\t});\n\t\t},\n\n\t\tsetTakeProfitPips: (pips: number) => {\n\t\t\tset((state) => {\n\t\t\t\tstate.takeProfit = isNaN(pips) ? initialState.takeProfit : pips;\n\t\t\t});\n\t\t},\n\t}))\n);\n\nexport default createSelectors(pipStore);\n","export const forceCloseModal = (className: string, show = false) => {\n\tconst modalBackdrop = document.getElementsByClassName(className);\n\tif (modalBackdrop) {\n\t\tArray.from(modalBackdrop).forEach((modal: any) => {\n\t\t\tmodal.style.display = show ? 'initial' : 'none';\n\t\t});\n\t}\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Dashboard_container__q2FSH\",\"leftPanel\":\"Dashboard_leftPanel__3EW0O\",\"rightPanel\":\"Dashboard_rightPanel__2K8sg\",\"rightTopPanel\":\"Dashboard_rightTopPanel__3gmPu\",\"positionsBottomPanel\":\"Dashboard_positionsBottomPanel__y6lrk\",\"positionsBottomPanelOpen\":\"Dashboard_positionsBottomPanelOpen__JlEd8\",\"positionsBottomPanelClose\":\"Dashboard_positionsBottomPanelClose__2qy8J\",\"rightSideTrade\":\"Dashboard_rightSideTrade__2mn5W\",\"tradeLeftPanel\":\"Dashboard_tradeLeftPanel__aHC73\",\"tradeLeftPanelOpen\":\"Dashboard_tradeLeftPanelOpen__q5Jsn\",\"tradeLeftPanelClose\":\"Dashboard_tradeLeftPanelClose__1_TpX\",\"rightNav\":\"Dashboard_rightNav__tUh0b\",\"ordersPanel\":\"Dashboard_ordersPanel__34YIW\",\"ticket\":\"Dashboard_ticket__Z72Hh\",\"showTicket\":\"Dashboard_showTicket__3vWPk\",\"ticketPanel\":\"Dashboard_ticketPanel__2uqfp\",\"flexLayout\":\"Dashboard_flexLayout__xRmtb\",\"updateFlexLayout\":\"Dashboard_updateFlexLayout__32OCY\",\"flexLayoutNav\":\"Dashboard_flexLayoutNav__1X4nC\",\"background\":\"Dashboard_background__3TFJP\",\"panelBackground\":\"Dashboard_panelBackground__2spDp\",\"chartPanel\":\"Dashboard_chartPanel__2Izjd\",\"Top\":\"Dashboard_Top__22Yea\",\"displayLoading\":\"Dashboard_displayLoading__3H_B3\",\"noLoading\":\"Dashboard_noLoading__O3151\",\"popoutLayout\":\"Dashboard_popoutLayout__SZraX\",\"ticketGlow\":\"Dashboard_ticketGlow__77gIA\",\"watchlistPanel\":\"Dashboard_watchlistPanel__2DlkM\",\"transition\":\"Dashboard_transition__1aPLm\",\"accountPanel\":\"Dashboard_accountPanel__1qmsP\",\"MainPanel\":\"Dashboard_MainPanel__1teXK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"liveChat\":\"LiveChat_liveChat__2uH0s\",\"container\":\"LiveChat_container__3iCUp\",\"zendesk\":\"LiveChat_zendesk__3F6H3\",\"expandCollapse\":\"LiveChat_expandCollapse__PC4ek\",\"icon\":\"LiveChat_icon__3vF8B\",\"iconLight\":\"LiveChat_iconLight__1re8p\",\"channels\":\"LiveChat_channels__39bYT\",\"isOpen\":\"LiveChat_isOpen__a4tLC\",\"horizontal\":\"LiveChat_horizontal__2XOP7\",\"buttons\":\"LiveChat_buttons__2GCxb\",\"triggerIcon\":\"LiveChat_triggerIcon__3VySu\"};","import { create } from 'zustand';\nimport { persist } from 'zustand/middleware';\nimport { immer } from 'zustand/middleware/immer';\n\nimport createSelectors from '../createSelectors';\n\nexport interface PositionsStoreActions {\n\tsetPositionTab: (tab: number) => void;\n\tsetWatchListPanelSize: (size: number) => void;\n\tsetGridHeight: (size: number) => void;\n\tsetShowPositionsBottomPanel: (show: boolean) => void;\n}\n\nexport interface PositionsStoreValues {\n\tpanelSize: number;\n\tpositionTab: number;\n\tgridHeight: number;\n\tpositionPanelHeight: number;\n\tshowPositionsBottomPanel: boolean;\n}\n\nexport const initialStatePositionsStore: PositionsStoreValues = {\n\tpanelSize: 0,\n\tpositionTab: 0,\n\tgridHeight: 0,\n\tpositionPanelHeight: 40,\n\tshowPositionsBottomPanel: true,\n};\nexport type PositionsStore = PositionsStoreValues & PositionsStoreActions;\n\nconst positionsStore = create()(\n\tpersist(\n\t\timmer((set: any) => ({\n\t\t\t...initialStatePositionsStore,\n\t\t\tsetPositionTab: (tab: number) => {\n\t\t\t\tset(() => ({\n\t\t\t\t\tpositionTab: tab,\n\t\t\t\t}));\n\t\t\t},\n\t\t\tsetWatchListPanelSize: (size: number) => {\n\t\t\t\tset(() => ({\n\t\t\t\t\tpanelSize: size,\n\t\t\t\t}));\n\t\t\t},\n\t\t\tsetGridHeight: (size: number) => {\n\t\t\t\tset(() => ({\n\t\t\t\t\tgridHeight: size,\n\t\t\t\t}));\n\t\t\t},\n\n\t\t\tsetShowPositionsBottomPanel: (show: boolean) => {\n\t\t\t\tset(() => ({\n\t\t\t\t\tshowPositionsBottomPanel: show,\n\t\t\t\t}));\n\t\t\t},\n\t\t})),\n\t\t{\n\t\t\tname: 'positions-store',\n\t\t}\n\t)\n);\n\nexport default createSelectors(positionsStore);\n","const uniqueId = () => {\n\treturn 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n\t\tconst r = (Math.random() * 16) | 0,\n\t\t\tv = c == 'x' ? r : (r & 0x3) | 0x8;\n\t\treturn v.toString(16);\n\t});\n};\n\nexport default uniqueId;\n","import { StoreApi, UseBoundStore } from 'zustand';\n\ntype WithSelectors = S extends { getState: () => infer T } ? S & { use: { [K in keyof T]: () => T[K] } } : never;\n\nconst createSelectors = >>(_store: S) => {\n\tlet store = _store as WithSelectors;\n\n\tstore.use = {};\n\tfor (let k of Object.keys(store.getState())) {\n\t\t(store.use as any)[k] = () => store((s) => s[k as keyof typeof s]);\n\t}\n\n\treturn store;\n};\n\nexport default createSelectors;\n","import { useContext } from 'react';\n\nimport AppContext from '../../contexts/AppContext';\nimport { defaultSubscriptionInfo, SubscriptionInfo } from '../functions/subscriptionUtils';\nimport usePromiseFactory from \"./usePromiseFactory\";\nimport useForceRerender from \"./useForceRerender\";\nimport useObservable from '../../utils/hooks/useObservable';\n\ntype useSubscriptionInfoInterface = [SubscriptionInfo, (updateProps: Partial) => void];\n\nconst useSubscriptionInfo = (): useSubscriptionInfoInterface => {\n\tconst appContext = useContext(AppContext);\n\tconst promiseFactory = usePromiseFactory();\n\tconst forceRerender = useForceRerender();\n\n\tuseObservable(appContext.getPropertyChangeStream('subscriptionInfo'), async () => {\n\t\tawait promiseFactory.throttle('appContext.propertyChanged', 100);\n\t\tforceRerender();\n\t});\n\n\tconst setSubscrInfoProps = (updateProps: Partial) => {\n\t\tappContext.subscriptionInfo = {\n\t\t\t...(appContext.subscriptionInfo || defaultSubscriptionInfo),\n\t\t\t...updateProps,\n\t\t};\n\t};\n\n\treturn [appContext.subscriptionInfo || defaultSubscriptionInfo, setSubscrInfoProps];\n};\n\nexport default useSubscriptionInfo;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"SignalPercentElement_container__12CpT\",\"containerHorizontalLayout\":\"SignalPercentElement_containerHorizontalLayout__2jlrI\",\"signalBars\":\"SignalPercentElement_signalBars__1mjEy\",\"percent\":\"SignalPercentElement_percent__3Qpel\",\"bar\":\"SignalPercentElement_bar__3Uk5H\",\"sizingBox\":\"SignalPercentElement_sizingBox__3fkRb\",\"firstBar\":\"SignalPercentElement_firstBar__22EEV\",\"secondBar\":\"SignalPercentElement_secondBar__hHk_n\",\"thirdBar\":\"SignalPercentElement_thirdBar__2akCW\",\"fourthBar\":\"SignalPercentElement_fourthBar__3ds19\",\"fifthBar\":\"SignalPercentElement_fifthBar__1OljO\",\"fourBars\":\"SignalPercentElement_fourBars__3PnNB\",\"threeBars\":\"SignalPercentElement_threeBars__ZwT6d\",\"oneBar\":\"SignalPercentElement_oneBar__24yze\",\"twoBars\":\"SignalPercentElement_twoBars__VaVaU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"CurrencyStats_container__2FvVD\",\"isOpen\":\"CurrencyStats_isOpen__390AY\",\"currencyIcon\":\"CurrencyStats_currencyIcon__1REcu\",\"live\":\"CurrencyStats_live__2hv7x\",\"demo\":\"CurrencyStats_demo__3fBKl\",\"exclamationIcon\":\"CurrencyStats_exclamationIcon__1ixVS\",\"accountTypeBadge\":\"CurrencyStats_accountTypeBadge__2ezR5\",\"stats\":\"CurrencyStats_stats__1V6xj\",\"accountIdAndType\":\"CurrencyStats_accountIdAndType__1yv-E\",\"accountTradingMode\":\"CurrencyStats_accountTradingMode__1gqOI\",\"accountBaseCurrency\":\"CurrencyStats_accountBaseCurrency__3kzk9\",\"toggleIcon\":\"CurrencyStats_toggleIcon__3pg-R\",\"popup\":\"CurrencyStats_popup__2D2Xc\",\"menuHeader\":\"CurrencyStats_menuHeader__J8rA_\",\"menuItem\":\"CurrencyStats_menuItem__3t9Ol\",\"active\":\"CurrencyStats_active__14qah\",\"activeLineIndicator\":\"CurrencyStats_activeLineIndicator__1THoF\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"OneClickTradeButtons_container__2F_3M\",\"containerSelected\":\"OneClickTradeButtons_containerSelected__3bgmK\",\"tradeButtonContainer\":\"OneClickTradeButtons_tradeButtonContainer__3Z-Xe\",\"priceContainer\":\"OneClickTradeButtons_priceContainer__3H__1\",\"labelContainer\":\"OneClickTradeButtons_labelContainer__2_Gm0\",\"sellLabelContainer\":\"OneClickTradeButtons_sellLabelContainer__1k4c8\",\"buyLabelContainer\":\"OneClickTradeButtons_buyLabelContainer__ju-pF\",\"upDownIcon\":\"OneClickTradeButtons_upDownIcon__1GIoS\",\"spread\":\"OneClickTradeButtons_spread__YYQxV\",\"tooltipTimestamp\":\"OneClickTradeButtons_tooltipTimestamp__2vIiz\",\"tooltipTitle\":\"OneClickTradeButtons_tooltipTitle__1X4UU\",\"closedMarketContainer\":\"OneClickTradeButtons_closedMarketContainer__3Vh9q\",\"closedMarket\":\"OneClickTradeButtons_closedMarket__2EQZL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"marketTabs\":\"Markets_marketTabs__1JDpN\",\"containerWrapper\":\"Markets_containerWrapper__3yJyB\",\"container\":\"Markets_container__2cDFP\",\"marketsWrapper\":\"Markets_marketsWrapper__1c5nh\",\"marketNews\":\"Markets_marketNews__1sMFa\",\"marketList\":\"Markets_marketList__3s50_\",\"jpNews\":\"Markets_jpNews__3nn7D\",\"newsAndSignals\":\"Markets_newsAndSignals__34ifr\",\"newsOrSignalsColumn\":\"Markets_newsOrSignalsColumn__1maDA\",\"insights\":\"Markets_insights__15jTx\",\"inline\":\"Markets_inline__2lgyq\",\"lightpositionType\":\"Markets_lightpositionType__2Ykny\",\"position\":\"Markets_position__1cPUc\",\"positionType\":\"Markets_positionType__3ZiVz\",\"positionTypeOption\":\"Markets_positionTypeOption__1pHJ6\",\"icon\":\"Markets_icon__3wDkI\",\"labelText\":\"Markets_labelText__Onx1e\",\"active\":\"Markets_active__1xDX-\",\"iconTier1\":\"Markets_iconTier1__a9BKV\",\"iconTier2\":\"Markets_iconTier2__2idAS\",\"iconTier3\":\"Markets_iconTier3__2NHfn\",\"categoryGroupContainer\":\"Markets_categoryGroupContainer__1rqaF\",\"selectedSearchCategory\":\"Markets_selectedSearchCategory__A_ASC\",\"hideSelectedSearchCategory\":\"Markets_hideSelectedSearchCategory__3yyrm\",\"risers\":\"Markets_risers__3CTwr\",\"fallers\":\"Markets_fallers__21md2\",\"news\":\"Markets_news__XlCr1\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalDialog\":\"FeedbackModal_modalDialog__2BO_Y\",\"modalBody\":\"FeedbackModal_modalBody__1KcP5\",\"footerContainer\":\"FeedbackModal_footerContainer__1-ExO\",\"feedbackHeader\":\"FeedbackModal_feedbackHeader__1Z1jH\",\"button\":\"FeedbackModal_button__1SZiJ\",\"ratingContainer\":\"FeedbackModal_ratingContainer__1CV-s\",\"feedbackContainer\":\"FeedbackModal_feedbackContainer__2aVGP\",\"questionText\":\"FeedbackModal_questionText__2_911\",\"textArea\":\"FeedbackModal_textArea__1WUcc\",\"submittedContainer\":\"FeedbackModal_submittedContainer__KzCYU\",\"thankYouMessage\":\"FeedbackModal_thankYouMessage__1tNdm\",\"appreciateMessage\":\"FeedbackModal_appreciateMessage__1Q4CU\",\"starContainer\":\"FeedbackModal_starContainer__tmTD0\",\"feedbackModalTitle\":\"FeedbackModal_feedbackModalTitle__R7ct8\",\"closeIcon\":\"FeedbackModal_closeIcon__3aktM\",\"starsImage\":\"FeedbackModal_starsImage__2nBwk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"icon\":\"TradingAccounts_icon__EhZYf\",\"accountsList\":\"TradingAccounts_accountsList__1gdph\",\"addAccountContainer\":\"TradingAccounts_addAccountContainer__296GZ\",\"plusIcon\":\"TradingAccounts_plusIcon__23_zH\",\"live\":\"TradingAccounts_live__1vmwo\",\"demo\":\"TradingAccounts_demo__3aCV_\",\"accountsListItem\":\"TradingAccounts_accountsListItem__2dOfZ\",\"noPadding\":\"TradingAccounts_noPadding__3AVCy\",\"active\":\"TradingAccounts_active__2Xj82\",\"accountInfo\":\"TradingAccounts_accountInfo__20IZd\",\"statsContainer\":\"TradingAccounts_statsContainer__1VS61\",\"stats\":\"TradingAccounts_stats__3z7yt\",\"selected\":\"TradingAccounts_selected__2XtLr\",\"baseCurrency\":\"TradingAccounts_baseCurrency__qZkbf\",\"accountName\":\"TradingAccounts_accountName__VUHNy\",\"accountType\":\"TradingAccounts_accountType__2Aq8J\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tileContainer\":\"TierTile_tileContainer__2YJaE\",\"selectedText\":\"TierTile_selectedText__KRJ4T\",\"defaultText\":\"TierTile_defaultText__2EKuF\",\"selectorTitle\":\"TierTile_selectorTitle__3heja\",\"selectorIndicator\":\"TierTile_selectorIndicator__12FJp\",\"tierIcon\":\"TierTile_tierIcon__3jJI1\",\"tierTitle\":\"TierTile_tierTitle__OKFQj\",\"tierName\":\"TierTile_tierName__2o7oY\",\"tileSection\":\"TierTile_tileSection__18uOF\",\"padded\":\"TierTile_padded__37Eox\",\"currencyPairs\":\"TierTile_currencyPairs__3xMa7\",\"tradableCurrencyPairs\":\"TierTile_tradableCurrencyPairs__3qa48\",\"price\":\"TierTile_price__2Q5IE\",\"selected\":\"TierTile_selected__3WJlV\"};","import { useContext, useMemo } from 'react';\n\nimport DashboardContext from '../../../contexts/DashboardContext';\n\nimport {\n createMarketItemCodeMap\n} from '../../../utils/functions/marketItems/marketItemGroupMapFormatter';\n\nexport const useMarketItemsMap = () => {\n const dashboardContext = useContext(DashboardContext);\n const marketItems = dashboardContext.marketItems;\n\n return useMemo(() => {\n if (marketItems.length === 0) {\n return {};\n }\n\n return createMarketItemCodeMap(marketItems);\n }, [marketItems.length]);\n};\n","import { useContext } from 'react';\n\nimport AppContext from '../../contexts/AppContext';\nimport statusStore, { StatusStore } from '../../store/accountStatusStore';\n\nimport { TradersGymContext, TradersGymContextType } from '../../pages/TradersGym/TradersGymContext';\n\nimport useSelectedTradingAccount from './useSelectedTradingAccount';\n\nconst useOrderTicketAccess = () => {\n\tconst setShowModal = statusStore((state: StatusStore) => state.setShowModal);\n\tconst setInfoMessage = statusStore((state: StatusStore) => state.setInfoMessage);\n\tconst tradeButtons = statusStore((state: StatusStore) => (state.permissions || {}).tradeButtons);\n\tconst appContext = useContext(AppContext);\n\tconst gymContext = useContext(TradersGymContext) as TradersGymContextType;\n\tconst { tradersGymContext } = gymContext;\n\n\tconst realTradingAccount = useSelectedTradingAccount();\n\tconst gymTradingAccount = tradersGymContext.gymTradingAccount;\n\n\treturn () => {\n\t\tif (tradeButtons === 'accountStatus') {\n\t\t\tsetShowModal(true);\n\t\t\tappContext.statusModal = true;\n\n\t\t\treturn false;\n\t\t}\n\n\t\tconst selectedTradingAccount = tradersGymContext.isActive ? gymTradingAccount : realTradingAccount;\n\n\t\tif (tradeButtons === 'orderTicket' && !selectedTradingAccount?.balance) {\n\t\t\tsetInfoMessage('INSUFFICIENT_FUNDS');\n\t\t\tsetShowModal(true);\n\t\t\tappContext.statusModal = true;\n\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t};\n};\n\nexport default useOrderTicketAccess;\n","import { createContext } from 'react';\nimport { EventEmitter } from 'events';\nimport { INewWindowProps } from 'react-new-window';\nimport { Resolver } from '../utils/functions/Ioc';\nimport { default as Nullable, Optional } from '../utils/functions/Nullable';\nimport { default as Lazy } from '../utils/functions/Lazy';\nimport { default as PromiseFactory } from '../utils/functions/PromiseFactory';\nimport { default as TypeUtils } from '../utils/functions/TypeUtils';\nimport { AppContextProvider } from './AppContext';\nimport { ChartContextProvider } from './ChartContext';\nimport { DashboardContextProvider } from './DashboardContext';\nimport { MarginRulesContextProvider } from './MarginRulesContext';\n\nexport interface IWindowContextEventMap {\n\tunload: (sender: WindowContextProvider, event: Event) => any;\n\tload: (sender: WindowContextProvider, event: Event) => any;\n\tbeforeUnload: (sender: WindowContextProvider, event: BeforeUnloadEvent) => any;\n}\n\ninterface IWindowEventListenerMap extends Map {\n\tset(key: K, value: (ev: WindowEventMap[K]) => any): this;\n\tget(key: K): Optional<(ev: WindowEventMap[K]) => any>;\n}\n\ntype TContextProviders = {\n\tapp: AppContextProvider;\n\tchart: ChartContextProvider;\n\tdashboard: DashboardContextProvider;\n\tmarginRules: MarginRulesContextProvider;\n};\n\ninterface IAppStateManager {\n\tcontexts(): TContextProviders;\n}\n\ntype TStateRequestEvent = {\n\tdata: {\n\t\tcallback: (appStateManager: IAppStateManager) => any;\n\t};\n};\n\ninterface IChildWindowProps {\n\turl: string;\n\twindowName?: string;\n\twindowFeatures?: string;\n}\n\nexport const MAIN_WINDOW_NAME = 'mainWindow';\nexport const DETACHED_WINDOW_TRADE = 'detachedTradeWindow';\n\n// export const DETACHED_WINDOW_ONE_CLICK_TRADE = 'detachedOneClickTradeWindow';\nexport const DETACHED_WINDOW_CHARTS = 'detachedChartsWindow';\nexport const DETACHED_WINDOW_WATCHLIST = 'detachedWatchlistWindow';\nexport const DETACHED_WINDOW_POSITIONS = 'detachedPositionsWindow';\n\nexport const WINDOW_NAMES = [\n\tMAIN_WINDOW_NAME,\n\tDETACHED_WINDOW_TRADE,\n\tDETACHED_WINDOW_CHARTS,\n\tDETACHED_WINDOW_WATCHLIST,\n\tDETACHED_WINDOW_POSITIONS,\n];\n\nexport type WTChildWindowType =\n\t| typeof DETACHED_WINDOW_TRADE\n\t| typeof DETACHED_WINDOW_CHARTS\n\t| typeof DETACHED_WINDOW_WATCHLIST\n\t| typeof DETACHED_WINDOW_POSITIONS\n\t// | typeof DETACHED_WINDOW_ONE_CLICK_TRADE;\n\nexport type WTWindowType = WTChildWindowType | typeof MAIN_WINDOW_NAME;\n\ntype IChildWindowTypeMap = Record;\n\n// interface IChildWindowTypeMap {\n// \twatchlist: IChildWindowProps;\n// \torders: IChildWindowProps;\n// \tnews: IChildWindowProps;\n// \taccount: IChildWindowProps;\n// }\n\nconst childWindowTypeMap: IChildWindowTypeMap = {\n\tdetachedChartsWindow: {\n\t\turl: `${window.location.origin}{Routes.detached}}/charts`,\n\t},\n\tdetachedTradeWindow: {\n\t\turl: `${window.location.origin}{Routes.detached}/trade`,\n\t},\n\t// detachedOneClickTradeWindow: {\n\t// \turl: `${window.location.origin}{Routes.detached}/one-cLick-trade`,\n\t// },\n\tdetachedPositionsWindow: {\n\t\turl: `${window.location.origin}{Routes.detached}/positions`,\n\t},\n\tdetachedWatchlistWindow: {\n\t\turl: `${window.location.origin}{Routes.detached}/watchlist`,\n\t},\n\t// watchlist: {\n\t// \turl: `${globalThis.window.location.origin}{Routes.newWindow}/watchlist`,\n\t// },\n\t// orders: {\n\t// \turl: `${window.location.origin}{Routes.trader.watchlist}/window-orders`,\n\t// },\n\t// news: {\n\t// \turl: `${window.location.origin}{Routes.trader.watchlist}/window-news`,\n\t// },\n\t// account: {\n\t// \turl: `${window.location.origin}{Routes.trader.watchlist}/window-account`,\n\t// },\n};\n\nexport class WindowContextProvider {\n\tprivate m_childWindows = new Set();\n\tprivate readonly m_window!: Window;\n\tprivate readonly m_children = new Set();\n\tprivate readonly m_eventEmitter = new Lazy(() => new EventEmitter());\n\tprivate readonly m_windowEventHandlers = new Lazy(() => {\n\t\treturn (new Map() as IWindowEventListenerMap)\n\t\t\t.set('load', (ev) => this.emit('load', this, ev))\n\t\t\t.set('unload', (ev) => this.emit('unload', this, ev))\n\t\t\t.set('beforeunload', (ev) => this.emit('beforeUnload', this, ev));\n\t});\n\tprivate m_type: 'main' | keyof IChildWindowTypeMap = 'main';\n\tprivate readonly childWindowSubscriptions: Set = new Set();\n\tprivate static readonly _default = new Lazy(() => new WindowContextProvider(globalThis.window));\n\tprivate static readonly _defaultWindowProps = new Lazy>(() => {\n\t\treturn {\n\t\t\tfeatures: {\n\t\t\t\twidth: 400,\n\t\t\t\theight: 150,\n\t\t\t\tleft: 0,\n\t\t\t\ttop: 0,\n\t\t\t\tmenubar: false,\n\t\t\t\ttoolbar: false,\n\t\t\t\tlocation: false,\n\t\t\t\tstatus: false,\n\t\t\t\tresizable: true,\n\t\t\t},\n\t\t};\n\t});\n\n\tprivate static get defaultWindowProperties(): Partial {\n\t\treturn this._defaultWindowProps.getValue();\n\t}\n\n\tpublic static get default(): WindowContextProvider {\n\t\treturn this._default.getValue();\n\t}\n\n\tpublic get window(): Window {\n\t\treturn this.m_window;\n\t}\n\n\tpublic get opener(): Optional {\n\t\treturn this.window.opener;\n\t}\n\n\tpublic get parent(): Optional {\n\t\treturn this.window.parent === this.window ? null : this.window.parent;\n\t}\n\n\tpublic get children(): ReadonlySet {\n\t\treturn this.m_children;\n\t}\n\tpublic get childWindows(): Set {\n\t\treturn this.m_childWindows;\n\t}\n\n\tpublic get childWindowSubscriptionsSet(): Set {\n\t\treturn this.childWindowSubscriptions;\n\t}\n\n\tpublic get isChildWindow(): boolean {\n\t\t//TODO: change this logic when references to opener are removed\n\t\treturn !!this.opener;\n\t}\n\n\tprivate get eventEmitter(): EventEmitter {\n\t\treturn this.m_eventEmitter.getValue();\n\t}\n\n\tprivate get windowEventHandlers(): IWindowEventListenerMap {\n\t\treturn this.m_windowEventHandlers.getValue();\n\t}\n\n\tpublic constructor();\n\tpublic constructor(window: Window);\n\tpublic constructor(window?: Window) {\n\t\t//ensure window is not null\n\t\tthis.m_window = Nullable.of(window)\n\t\t\t.orElseGetNullable(() => globalThis.window)\n\t\t\t.getOrThrow(() => new Error('window cannot be null or undefined'));\n\n\t\tif (this.m_window === globalThis.window) {\n\t\t\t//ensure window name is not null\n\t\t\tthis.m_window.name =\n\t\t\t\tthis.m_window.name && this.m_window.name.length > 0\n\t\t\t\t\t? this.m_window.name\n\t\t\t\t\t: (() => {\n\t\t\t\t\t\t\tconst name = `${Math.random()}`;\n\t\t\t\t\t\t\tlet parentName = name;\n\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t// To try to access to this.opener if it's safe, Same-Origin Policy\n\t\t\t\t\t\t\t\tif (this.opener && this.opener.location.origin === this.m_window.location.origin) {\n\t\t\t\t\t\t\t\t\tif (this.opener.hasOwnProperty('name') && this.opener.name) {\n\t\t\t\t\t\t\t\t\t\tparentName = `${this.opener.name}__${name}`;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\tconsole.error('Error accessing opener:', error);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn parentName;\n\t\t\t\t\t })();\n\n\t\t\t//attach event handlers to window\n\t\t\tArray.from(this.windowEventHandlers.keys()).forEach((eventName) => {\n\t\t\t\tNullable.of(this.windowEventHandlers.get(eventName)).run((handler) => {\n\t\t\t\t\tthis.window.removeEventListener(eventName, handler);\n\t\t\t\t\tthis.window.addEventListener(eventName, handler);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tfor (const key in childWindowTypeMap) {\n\t\t\t\tconst childWindowType = childWindowTypeMap[key as keyof typeof childWindowTypeMap];\n\t\t\t\tif (TypeUtils.is<{ url: string }>(childWindowType, (subject) => typeof subject.url !== 'undefined')) {\n\t\t\t\t\tif (this.m_window.location.href === childWindowType.url) {\n\t\t\t\t\t\tthis.m_type = key as keyof typeof childWindowTypeMap;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.window.addEventListener('stateRequest', (event: any) => {\n\t\t\t\tif (\n\t\t\t\t\tTypeUtils.is(\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\t(subject) => subject.data && typeof subject.data.callback === 'function'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tevent.data.callback(this.createAppStateManager());\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tpublic requestState(callback: TStateRequestEvent['data']['callback']): void {\n\t\tconst event: any = this.window.document.createEvent('Event');\n\t\tevent.initEvent('stateRequest', true, true);\n\t\tevent.data = { callback: callback };\n\t\tthis.window.dispatchEvent(event);\n\t}\n\n\tpublic openChildWindow(\n\t\ttype: K,\n\t\twindowProps: IChildWindowProps\n\t): Promise {\n\t\twindowProps.windowName = windowProps.windowName || `${Math.random()}`;\n\t\treturn PromiseFactory.default.promise((resolve, reject) => {\n\t\t\ttry {\n\t\t\t\tconst childWindow = this.window.open(windowProps.url, windowProps.windowName, windowProps.windowFeatures);\n\t\t\t\tthis.m_childWindows.add(childWindow?.window!);\n\t\t\t\tNullable.of(childWindow)\n\t\t\t\t\t.map((window) => new WindowContextProvider(window))\n\t\t\t\t\t.run((childContext) => {\n\t\t\t\t\t\tchildContext.once('unload', (sender, event) => this.m_children.delete(sender));\n\t\t\t\t\t\tthis.m_children.add(childContext);\n\t\t\t\t\t\tlet isResolved = false;\n\t\t\t\t\t\tchildContext.once('load', (sender, event) => {\n\t\t\t\t\t\t\tif (!isResolved) {\n\t\t\t\t\t\t\t\tisResolved = true;\n\t\t\t\t\t\t\t\tresolve(sender);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tif (!isResolved) {\n\t\t\t\t\t\t\t\tisResolved = true;\n\t\t\t\t\t\t\t\tresolve(childContext);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, 2000);\n\t\t\t\t\t})\n\t\t\t\t\t.orElseRun(() => {\n\t\t\t\t\t\treject('Unable to create child window');\n\t\t\t\t\t});\n\t\t\t} catch (err) {\n\t\t\t\treject(err);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate createAppStateManager(): IAppStateManager {\n\t\treturn {\n\t\t\tcontexts: () => {\n\t\t\t\treturn {\n\t\t\t\t\tapp:\n\t\t\t\t\t\tResolver.isSet && Resolver.isRegistered(AppContextProvider)\n\t\t\t\t\t\t\t? Resolver.resolve(AppContextProvider)\n\t\t\t\t\t\t\t: AppContextProvider.instance,\n\t\t\t\t\tchart:\n\t\t\t\t\t\tResolver.isSet && Resolver.isRegistered(ChartContextProvider)\n\t\t\t\t\t\t\t? Resolver.resolve(ChartContextProvider)\n\t\t\t\t\t\t\t: ChartContextProvider.instance,\n\t\t\t\t\tdashboard:\n\t\t\t\t\t\tResolver.isSet && Resolver.isRegistered(DashboardContextProvider)\n\t\t\t\t\t\t\t? Resolver.resolve(DashboardContextProvider)\n\t\t\t\t\t\t\t: DashboardContextProvider.instance,\n\t\t\t\t\tmarginRules:\n\t\t\t\t\t\tResolver.isSet && Resolver.isRegistered(MarginRulesContextProvider)\n\t\t\t\t\t\t\t? Resolver.resolve(MarginRulesContextProvider)\n\t\t\t\t\t\t\t: MarginRulesContextProvider.instance,\n\t\t\t\t};\n\t\t\t},\n\t\t};\n\t}\n\n\tpublic on(event: K, listener: IWindowContextEventMap[K]): this {\n\t\tthis.eventEmitter.on(event, listener);\n\t\treturn this;\n\t}\n\n\tpublic once(event: K, listener: IWindowContextEventMap[K]): this {\n\t\tthis.eventEmitter.once(event, listener);\n\t\treturn this;\n\t}\n\n\tpublic off(event: K, listener: IWindowContextEventMap[K]): this {\n\t\tthis.eventEmitter.off(event, listener);\n\t\treturn this;\n\t}\n\n\tprivate emit(event: K, ...data: Parameters): this {\n\t\ttry {\n\t\t\tthis.eventEmitter.emit(event, ...data);\n\t\t} catch (err) {}\n\t\treturn this;\n\t}\n}\n\nexport default createContext(\n\tResolver.isSet && Resolver.isRegistered(WindowContextProvider)\n\t\t? Resolver.resolve(WindowContextProvider)\n\t\t: WindowContextProvider.default\n);\n","import { useContext } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport AppContext from '../../contexts/AppContext';\nimport { getTierDisplayName } from '../functions/subscriptionUtils';\n\nconst useGetTranslatedWLName = () => {\n\tconst appContext = useContext(AppContext);\n\tconst { t } = useTranslation();\n\n\tconst getTranslatedWLName = (watchlistName: string | null | undefined) => {\n\t\tif (!watchlistName) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (watchlistName === 'Popular Markets') {\n\t\t\treturn t('wtr:POPULAR_MARKETS');\n\t\t} else if (watchlistName === 'My Watchlist') {\n\t\t\treturn t('wtr:MY_WATCHLIST');\n\t\t} else {\n\t\t\tconst tierId = watchlistName.replace(/\\s+/g, '');\n\t\t\tif (appContext.isJapanAccount) {\n\t\t\t\treturn getTierDisplayName(tierId) || watchlistName;\n\t\t\t}\n\n\t\t\treturn watchlistName;\n\t\t}\n\t};\n\n\treturn getTranslatedWLName;\n};\n\nexport default useGetTranslatedWLName;\n","const isWindowStyles = (styleClass: string, windowStyleClass: string, window?: boolean) => {\n\treturn !window ? styleClass : windowStyleClass;\n};\n\nexport default isWindowStyles;\n","import { createContext } from 'react';\nimport clone from 'clone';\nimport { Resolver } from '../utils/functions/Ioc';\nimport { default as Lazy } from '../utils/functions/Lazy';\nimport { ObservableObject } from '../utils/functions/Observables';\nimport { HistorySize } from '../gateways/RfpGateway/rfp.types';\n\nexport type TChart = {\n\tid: string;\n\tisEmpty?: boolean;\n\tsymbol?: string;\n\tlayout: {\n\t\t[key: string]: any;\n\t};\n\tchartParams?: any;\n};\n\nexport type TChartPeriodicity = {\n\tperiod: number;\n\tinterval?: number;\n\ttimeUnit: string;\n};\n\ntype TChartContextProperties = {\n\tactiveChart: string[];\n\tcharts: TChart[];\n\tperiodicityChartId: string;\n};\n\nconst defaultValues = new Lazy(() => {\n\treturn {\n\t\tactiveChart: [],\n\t\tcharts: [\n\t\t\t{\n\t\t\t\tlayout: {},\n\t\t\t\tid: '/',\n\t\t\t\tisEmpty: true,\n\t\t\t\tsymbol: '/',\n\t\t\t\tchartParams: {},\n\t\t\t},\n\t\t],\n\t\tperiodicityChartId: '',\n\t};\n});\n\ninterface IChartContext extends TChartContextProperties {\n\treset(): void;\n\taddChartPanelTab(tab: TChart): void;\n\tsetSingleActiveChart(value: string): void;\n\tsetActiveChart(value: string): void;\n\tresetActiveChart(): void;\n\tsetSymbol(value: string): void;\n\tsetLayout(value: TChart['layout']): void;\n}\n\nexport class ChartContextProvider\n\textends ObservableObject\n\timplements IChartContext\n{\n\tprivate m_propertyValues: TChartContextProperties;\n\tprivate historySizeRecords: Map = new Map();\n\n\tprivate static _instance = new Lazy(() => {\n\t\treturn new ChartContextProvider();\n\t});\n\n\tpublic static get instance(): ChartContextProvider {\n\t\treturn this._instance.getValue();\n\t}\n\n\tpublic getHistorySizeRecord(reqId: string) {\n\t\treturn this.historySizeRecords.get(reqId);\n\t}\n\n\tpublic setHistorySizeRecord(historySize: HistorySize) {\n\t\t// console.log(`Added HistorySize reqId=${historySize.reqId} code=${historySize.code}`);\n\t\treturn this.historySizeRecords.set(historySize.reqId, historySize);\n\t}\n\n\tpublic get activeChart(): any {\n\t\treturn this.m_propertyValues.activeChart;\n\t}\n\n\tpublic set activeChart(value: any) {\n\t\tthis.raiseAndSetIfChanged('activeChart', value, this.m_propertyValues.activeChart, (value) => {\n\t\t\tthis.m_propertyValues.activeChart = value;\n\t\t});\n\t}\n\n\tpublic get charts(): TChart[] {\n\t\treturn this.m_propertyValues.charts;\n\t}\n\n\tpublic set charts(value: TChart[]) {\n\t\tthis.raiseAndSetIfChanged('charts', value, this.m_propertyValues.charts, (value) => {\n\t\t\tthis.m_propertyValues.charts = value;\n\t\t});\n\t}\n\n\tpublic get periodicityChartId(): string {\n\t\treturn this.m_propertyValues.periodicityChartId;\n\t}\n\n\tpublic set periodicityChartId(value: string) {\n\t\tthis.raiseAndSetIfChanged('periodicityChartId', value, this.m_propertyValues.periodicityChartId, (value) => {\n\t\t\tthis.m_propertyValues.periodicityChartId = value;\n\t\t});\n\t}\n\n\tprivate constructor() {\n\t\tsuper();\n\t\tthis.m_propertyValues = clone(defaultValues.getValue());\n\t}\n\n\tpublic reset(): void {\n\t\tthis.m_propertyValues = clone(defaultValues.getValue());\n\t}\n\n\tpublic addChartPanelTab(tab: TChart): void {\n\t\tthis.charts = [...this.charts, tab];\n\t}\n\n\tpublic setSingleActiveChart(value: string): void {\n\t\tthis.activeChart = [value];\n\t}\n\n\tpublic setActiveChart(value: string): void {\n\t\tthis.activeChart = [...this.activeChart, value];\n\t}\n\n\tpublic resetActiveChart(): void {\n\t\tconst activeChart = [...this.activeChart];\n\t\tthis.activeChart = [...activeChart.slice(0, 1)];\n\t}\n\n\tpublic setSymbol(value: string): void {\n\t\tconst charts = [...this.charts];\n\t\tconst activeChart = [...this.activeChart];\n\t\tthis.charts = charts.map((chart) => {\n\t\t\treturn activeChart.indexOf(chart.id) >= 0 ? { ...chart, symbol: value } : chart;\n\t\t});\n\t}\n\n\tpublic setLayout(value: TChart['layout']): void {\n\t\tconst charts = [...this.charts];\n\t\tconst activeChart = [...this.activeChart];\n\t\tthis.charts = charts.map((chart) => {\n\t\t\treturn activeChart.indexOf(chart.id) >= 0 ? { ...chart, layout: value } : chart;\n\t\t});\n\t}\n}\n\nexport default createContext(\n\tResolver.isSet && Resolver.isRegistered(ChartContextProvider)\n\t\t? Resolver.resolve(ChartContextProvider)\n\t\t: ChartContextProvider.instance\n);\n","export default class TypeUtils {\n\tpublic static is(subject: unknown, evaluator: (subject: any) => boolean): subject is T {\n\t\treturn evaluator(subject);\n\t}\n\n\tpublic static propertyNames(object: T, inherited: boolean = false): string[] {\n\t\tconst propertyNames: string[] = Object.getOwnPropertyNames(object);\n\t\tconst prototype = inherited ? Object.getPrototypeOf(object) : null;\n\t\tif (prototype != null) {\n\t\t\tArray.prototype.push.apply(propertyNames, this.propertyNames(prototype));\n\t\t}\n\t\treturn prototype == null ? propertyNames : Array.from(new Set(propertyNames));\n\t}\n}\n\nexport type Optional = T | null | undefined;\n\nexport type Impossible = { [P in T]: never };\n\nexport type Sealed = U & Impossible>;\n\nexport type KeysOf = (keyof T)[];\n\nexport type ValuesOf = T[keyof T];\n\nexport type ArrayElementType = Exclude, undefined>;\n\nexport type PropertyIntersection = { [K in Extract]: U[K] extends T[K] ? K : never }[Extract<\n\tkeyof T,\n\tkeyof U\n>];\n\nexport type Intersection = {\n\t[K in PropertyIntersection]: T[K];\n};\n\nexport type ExcludeProperty = {\n\t[K in Exclude]: T[K];\n};\n\nexport type ExcludeProperties> = {\n\t[K in Exclude]: T[K];\n};\n\nexport type ExcludePropertiesOfType = {\n\t[K in PropertyIntersection<{ [K in keyof T]: T[K] extends U ? never : T[K] }, T>]: T[K];\n};\n\nexport type ImmutableMap = ExcludeProperty, 'set' | 'clear' | 'delete'>;\n\nexport type Comparator = (value1: T, value2: T) => boolean;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"TradeBoard_container__3CYoM\",\"marketTickerContainer\":\"TradeBoard_marketTickerContainer__15Jbl\",\"watchlistContainer\":\"TradeBoard_watchlistContainer__2tDg_\",\"watchlistContainerDetach\":\"TradeBoard_watchlistContainerDetach__1v6qU\",\"windowMarketTickerContainer\":\"TradeBoard_windowMarketTickerContainer__3xJTO\",\"noScrollBar\":\"TradeBoard_noScrollBar__3hosJ\",\"instrumentsContainer\":\"TradeBoard_instrumentsContainer__197_U\",\"addInstrumentContainer\":\"TradeBoard_addInstrumentContainer__1KDYR\",\"addInstrument\":\"TradeBoard_addInstrument__BO1yp\",\"centeredText\":\"TradeBoard_centeredText__aDi4v\",\"emptyContainer\":\"TradeBoard_emptyContainer__2M8gE\",\"iconC\":\"TradeBoard_iconC__auMGh\",\"emptyTitle\":\"TradeBoard_emptyTitle__252Aa\",\"addInstrumentIcon\":\"TradeBoard_addInstrumentIcon__2rOlR\",\"addInstrumentTitle\":\"TradeBoard_addInstrumentTitle__3K2aB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"CancelOrderTicket_header__8yhgE\",\"bal\":\"CancelOrderTicket_bal__Wpq28\",\"resizeHeaderText\":\"CancelOrderTicket_resizeHeaderText__1e-Qz\",\"closeContainer\":\"CancelOrderTicket_closeContainer__2nLOd\",\"lightcloseContainer\":\"CancelOrderTicket_lightcloseContainer__3VZV0\",\"closeContainerModal\":\"CancelOrderTicket_closeContainerModal__2n9C_\",\"closeFields\":\"CancelOrderTicket_closeFields__MJPLm\",\"orderModalFooter\":\"CancelOrderTicket_orderModalFooter__3burB\",\"modalPartialButtons\":\"CancelOrderTicket_modalPartialButtons__Cs0rZ\",\"lightticketButton\":\"CancelOrderTicket_lightticketButton__1gl06\",\"lightticketButtonClose\":\"CancelOrderTicket_lightticketButtonClose__32giB\",\"darkticketButton\":\"CancelOrderTicket_darkticketButton__1XQNS\",\"darkticketButtonClose\":\"CancelOrderTicket_darkticketButtonClose__3HYLi\",\"ticketInfo\":\"CancelOrderTicket_ticketInfo__3_moC\",\"closeButtonLocation\":\"CancelOrderTicket_closeButtonLocation__2yj1f\",\"date\":\"CancelOrderTicket_date__2J7b9\"};","import { useContext } from 'react';\n\nimport AppContext from '../../contexts/AppContext';\nimport {\n\tdefaultSubscriptionModalState,\n\tSubscriptionModalReason,\n\tSubscriptionModalState,\n} from '../functions/subscriptionUtils';\n\nconst useSubscriptionModal = () => {\n\tconst appContext = useContext(AppContext);\n\n\tconst setModalStateProps = (setProps: Partial) => {\n\t\tappContext.subscriptionModal = {\n\t\t\t...(appContext.subscriptionModal || defaultSubscriptionModalState),\n\t\t\t...setProps,\n\t\t};\n\t};\n\n\tconst setIsModalOpen = (isOpen: boolean) => {\n\t\tsetModalStateProps({ isOpen });\n\t};\n\n\tconst setModalReason = (reason: SubscriptionModalReason) => {\n\t\tsetModalStateProps({ reason });\n\t};\n\n\tconst resetModalStateProps = () => {\n\t\tsetModalStateProps({\n\t\t\treason: null,\n\t\t\tisOpen: false,\n\t\t\tinstrument: null,\n\t\t\ttext: null,\n\t\t});\n\t};\n\n\treturn {\n\t\tmodalState: appContext.subscriptionModal || defaultSubscriptionModalState,\n\t\tsetIsModalOpen,\n\t\tsetModalReason,\n\t\tsetModalStateProps,\n\t\tresetModalStateProps,\n\t};\n};\n\nexport default useSubscriptionModal;\n","import { createContext } from 'react';\n\nimport clone from 'clone';\n\nimport { Optional } from '../utils/functions/Nullable';\nimport { ObservableObject } from '../utils/functions/Observables';\nimport { PositionSide, TTMarginRuleItem } from '../gateways/RfpGateway/rfp.types';\n\nimport { Resolver } from '../utils/functions/Ioc';\n\nimport { default as Lazy } from '../utils/functions/Lazy';\nimport { TradingPositionSide } from '../utils/functions/enums';\n\ntype IMarginRulesContextProperties = {\n\taccountId?: Optional;\n\tmarginRules: TTMarginRuleItem[];\n\tfutureMarginReqId?: Optional;\n\tfutureMarginValue?: Optional;\n};\n\nconst defaultValues = new Lazy(() => {\n\treturn {\n\t\taccountId: null,\n\t\tmarginRules: [],\n\t\tfutureMarginReqId: null,\n\t\tfutureMarginValue: null,\n\t};\n});\n\ninterface IMarginRulesContext extends IMarginRulesContextProperties {\n\treset(): void;\n}\n\n// Had to implement it this way because the current architecture doesn't allow to use proper simple React Contexts,\n// or connect to Zustand store in the websocket subscriptions handler file\nexport class MarginRulesContextProvider\n\textends ObservableObject\n\timplements IMarginRulesContext\n{\n\tprivate m_propertyValues: IMarginRulesContextProperties;\n\tprivate static _instance = new Lazy(() => {\n\t\treturn new MarginRulesContextProvider();\n\t});\n\n\tpublic static get instance(): MarginRulesContextProvider {\n\t\treturn this._instance.getValue();\n\t}\n\n\tpublic get accountId(): Optional | undefined {\n\t\treturn this.m_propertyValues.accountId;\n\t}\n\n\tpublic set accountId(value: Optional | undefined) {\n\t\tthis.raiseAndSetIfChanged('accountId', value, this.m_propertyValues.accountId, (value) => {\n\t\t\tthis.m_propertyValues.accountId = value;\n\t\t});\n\t}\n\n\tpublic get marginRules(): TTMarginRuleItem[] {\n\t\treturn this.m_propertyValues.marginRules;\n\t}\n\n\tpublic set marginRules(value: TTMarginRuleItem[]) {\n\t\tthis.raiseAndSetIfChanged('marginRules', value, this.m_propertyValues.marginRules, (value) => {\n\t\t\tthis.m_propertyValues.marginRules = value;\n\t\t});\n\t}\n\n\tpublic get futureMarginReqId(): Optional | undefined {\n\t\treturn this.m_propertyValues.futureMarginReqId;\n\t}\n\n\tpublic set futureMarginReqId(value: Optional | undefined) {\n\t\tthis.raiseAndSetIfChanged('futureMarginReqId', value, this.m_propertyValues.futureMarginReqId, (value) => {\n\t\t\tthis.m_propertyValues.futureMarginReqId = value;\n\t\t});\n\t}\n\n\tpublic get futureMarginValue(): Optional | undefined {\n\t\treturn this.m_propertyValues.futureMarginValue;\n\t}\n\n\tpublic set futureMarginValue(value: Optional | undefined) {\n\t\tthis.raiseAndSetIfChanged('futureMarginValue', value, this.m_propertyValues.futureMarginValue, (value) => {\n\t\t\tthis.m_propertyValues.futureMarginValue = value;\n\t\t});\n\t}\n\n\tprivate constructor() {\n\t\tsuper();\n\t\tthis.m_propertyValues = clone(defaultValues.getValue());\n\t}\n\n\tpublic reset(): void {\n\t\tthis.m_propertyValues = {\n\t\t\t...clone(defaultValues.getValue()),\n\t\t};\n\t}\n\n\tpublic resetFutureMargin(): void {\n\t\tthis.m_propertyValues = {\n\t\t\t...clone(defaultValues.getValue()),\n\t\t\taccountId: this.accountId,\n\t\t\tmarginRules: this.marginRules,\n\t\t};\n\t}\n\t\n\tpublic getPositionSideValue(side?: TradingPositionSide): PositionSide {\n\t\tswitch (side) {\n\t\t\tcase TradingPositionSide.Buy:\n\t\t\t\treturn PositionSide.BUY;\n\t\t\tcase TradingPositionSide.Sell:\n\t\t\t\treturn PositionSide.SELL\n\t\t\tdefault:\n\t\t\t\treturn PositionSide.PSD_UNKNOWN;\n\t\t}\n\t}\n}\n\nexport default createContext(\n\tResolver.isSet && Resolver.isRegistered(MarginRulesContextProvider)\n\t\t? Resolver.resolve(MarginRulesContextProvider)\n\t\t: MarginRulesContextProvider.instance\n);\n","import * as ObservableFns from 'observable-fns';\nimport * as ThreadSafeObservableFns from 'threads/observable';\nimport { Comparator } from './TypeUtils';\n\nexport class Observable extends ObservableFns.Observable {}\n\nexport class Subject extends ObservableFns.Subject {}\n\nexport type Subscription = ObservableFns.Subscription;\n\ntype TObservableObjectKeys = Exclude>;\n\ntype TObservableObjectChange> = {\n\tpropertyName: U;\n\tnewValue: U extends keyof T ? T[U] : any;\n\toldValue: U extends keyof T ? T[U] : any;\n};\n\nexport interface IObservableObject {\n\tgetPropertyChangeStream>(\n\t\t...props: U[]\n\t): Observable>;\n}\n\nexport class ObservableObject, K = keyof T | unknown> implements IObservableObject {\n\tprotected readonly m_subject = new Subject>();\n\n\tprotected constructor() {}\n\n\tprotected raiseAndSetIfChanged & keyof T>(\n\t\tprop: U,\n\t\tnewValue: T[U],\n\t\toldValue: T[U],\n\t\tsetter: (value: T[U]) => void\n\t): void {\n\t\tif (newValue !== oldValue) {\n\t\t\tsetter(newValue);\n\t\t\tthis.m_subject.next({ propertyName: prop, newValue: newValue as any, oldValue: oldValue as any });\n\t\t}\n\t}\n\n\tpublic getPropertyChangeStream>(\n\t\t...props: U[]\n\t): Observable> {\n\t\tconst observable = Observable.from(this.m_subject) as unknown as Observable>;\n\t\treturn props == null || props.length < 1\n\t\t\t? observable\n\t\t\t: observable.filter((value) => props.indexOf(value.propertyName as U) >= 0);\n\t}\n\n\tpublic static for(object: T): T & IObservableObject {\n\t\tconst subject = new Subject>();\n\t\tconst proxy = new Proxy(object, {\n\t\t\tget: (target, prop, receiver) => {\n\t\t\t\tif (prop === 'getPropertyChangeStream') {\n\t\t\t\t\tconst getPropertyChangeStream = (...props: K[]) => {\n\t\t\t\t\t\tconst observable = Observable.from(subject);\n\t\t\t\t\t\treturn props == null || props.length < 1\n\t\t\t\t\t\t\t? observable\n\t\t\t\t\t\t\t: observable.filter((value) => props.indexOf(value.propertyName as K) >= 0);\n\t\t\t\t\t};\n\t\t\t\t\treturn getPropertyChangeStream.bind(target);\n\t\t\t\t} else {\n\t\t\t\t\tconst value = (target as any)[prop];\n\t\t\t\t\treturn typeof value === 'function' ? value.bind(target) : value;\n\t\t\t\t}\n\t\t\t},\n\t\t\tset: (target, prop, value, receiver) => {\n\t\t\t\tconst currentValue = (target as any)[prop];\n\t\t\t\tvalue = typeof value === 'function' ? value.bind(target) : value;\n\t\t\t\ttarget[prop as K] = value;\n\t\t\t\tif (currentValue !== value) {\n\t\t\t\t\tsubject.next({ propertyName: prop as any, newValue: value, oldValue: currentValue });\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t},\n\t\t});\n\t\treturn proxy as T & IObservableObject;\n\t}\n}\n\n//export namespace Collections {\n\nexport interface IObservableSetChange {\n\ttype: 'add' | 'delete' | 'clear';\n\tvalues: T[];\n}\n\nexport class ObservableSet extends Set {\n\tprivate readonly m_subject: Subject>;\n\tprivate readonly m_valueComparator?: Comparator | null | undefined;\n\n\tpublic get changeStream(): Observable> {\n\t\treturn Observable.from(this.m_subject);\n\t}\n\n\tpublic get valueComparator(): Comparator | null | undefined {\n\t\treturn this.m_valueComparator;\n\t}\n\n\tpublic constructor(values?: Iterable | null, comparator?: Comparator | null | undefined) {\n\t\tsuper(Array.from(values || []));\n\t\tthis.m_valueComparator = comparator;\n\t\tthis.m_subject = new Subject();\n\t}\n\n\tpublic has(value: T): boolean {\n\t\treturn this.m_valueComparator != null\n\t\t\t? Array.from(this.values()).some((currentValue) => this.m_valueComparator!(currentValue, value))\n\t\t\t: super.has(value);\n\t}\n\n\tpublic add(...values: T[]): this {\n\t\tconst additions: T[] = [];\n\t\tvalues.forEach((value) => {\n\t\t\tthis.has(value) || (super.add(value) && additions.push(value));\n\t\t});\n\t\tif (additions.length > 0 && this.m_subject != null) {\n\t\t\tthis.m_subject.next({ type: 'add', values: additions });\n\t\t}\n\t\treturn this;\n\t}\n\n\tpublic delete(...values: T[]): boolean {\n\t\tconst deletions: T[] = [];\n\t\tif (this.m_valueComparator != null) {\n\t\t\tArray.from(this).forEach((value) => {\n\t\t\t\tif (values.some((element) => this.m_valueComparator!(element, value))) {\n\t\t\t\t\tsuper.delete(value) && deletions.push(value);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tvalues.forEach((value) => {\n\t\t\t\tsuper.delete(value) && deletions.push(value);\n\t\t\t});\n\t\t}\n\t\tif (deletions.length > 0 && this.m_subject != null) {\n\t\t\tthis.m_subject.next({ type: 'delete', values: deletions });\n\t\t}\n\t\treturn deletions.length > 0;\n\t}\n\n\tpublic clear(): this {\n\t\tif (this.size > 0) {\n\t\t\tconst values = Array.from(this.values());\n\t\t\tsuper.clear();\n\t\t\tif (this.m_subject != null) {\n\t\t\t\tthis.m_subject.next({ type: 'clear', values: values });\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\tpublic find(predicate: (value: T) => boolean): T | undefined {\n\t\treturn Array.from(this).find(predicate);\n\t}\n\n\tpublic subscribe(\n\t\tonNext: (value: IObservableSetChange) => void,\n\t\tonError?: ((error: any) => void) | undefined,\n\t\tonComplete?: (() => void) | undefined\n\t): Subscription> {\n\t\treturn this.changeStream.subscribe(onNext);\n\t}\n\n\tpublic static from(\n\t\tvalues: Iterable,\n\t\tcomparator?: Comparator | null | undefined\n\t): ObservableSet {\n\t\treturn new ObservableSet(values, comparator);\n\t}\n}\n\nexport interface IObservableMapChange {\n\ttype: 'add' | 'update' | 'delete' | 'clear';\n\tvalues: { key: K; newValue?: V; oldValue?: V }[];\n}\n\nexport interface IObservableMapEntry {\n\tkey: K;\n\tvalue: V;\n}\n\nexport class ObservableMap extends Map {\n\tprivate readonly m_subject: Subject>;\n\tprivate readonly m_keyComparator?: Comparator | null | undefined;\n\n\tpublic get changeStream(): Observable> {\n\t\treturn Observable.from(this.m_subject);\n\t}\n\n\tpublic get keyComparator(): Comparator | null | undefined {\n\t\treturn this.m_keyComparator;\n\t}\n\n\tpublic constructor(\n\t\tentries?: Iterable | null | undefined,\n\t\tkeyComparator?: Comparator | null | undefined\n\t) {\n\t\tsuper(entries || []);\n\t\tthis.m_keyComparator = keyComparator;\n\t\tthis.m_subject = new Subject();\n\t}\n\n\tpublic has(key: K): boolean {\n\t\treturn super.has(this.getRealKey(key) as K);\n\t}\n\n\tpublic get(key: K): V | undefined {\n\t\treturn super.get(this.getRealKey(key) as K);\n\t}\n\n\tpublic set(key: K, value: V): this;\n\tpublic set(values: IObservableMapEntry[]): this;\n\tpublic set(key: K | IObservableMapEntry[], value?: V): this {\n\t\tconst values: IObservableMapEntry[] = Array.isArray(key) ? key : [{ key: key, value: value as V }];\n\t\tconst additions: Map = new Map();\n\t\tconst updates: Map = new Map();\n\t\tvalues.forEach((value) => {\n\t\t\tconst realKey = this.getRealKey(value.key) as K;\n\t\t\tif (super.has(realKey)) {\n\t\t\t\tconst currentValue = super.get(realKey);\n\t\t\t\tcurrentValue !== value.value &&\n\t\t\t\t\tupdates.set(realKey, { key: realKey, newValue: value.value, oldValue: currentValue as V });\n\t\t\t} else {\n\t\t\t\tadditions.set(value.key, { key: value.key, newValue: value.value });\n\t\t\t}\n\t\t});\n\n\t\tupdates.forEach((value) => super.set(value.key, value.newValue));\n\t\tadditions.forEach((value) => super.set(value.key, value.newValue));\n\n\t\tif (this.m_subject != null) {\n\t\t\tif (updates.size > 0) {\n\t\t\t\tthis.m_subject.next({ type: 'update', values: Array.from(updates.values()) });\n\t\t\t}\n\t\t\tif (additions.size > 0) {\n\t\t\t\tthis.m_subject.next({ type: 'add', values: Array.from(additions.values()) });\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tpublic delete(...keys: K[]): boolean {\n\t\tconst deletions: { key: K; oldValue: V }[] = [];\n\t\tkeys.forEach((key) => {\n\t\t\tconst realKey = this.getRealKey(key) as K;\n\t\t\tif (super.has(realKey)) {\n\t\t\t\tconst currentValue = super.get(realKey);\n\t\t\t\tsuper.delete(realKey) && deletions.push({ key: realKey, oldValue: currentValue as V });\n\t\t\t}\n\t\t});\n\t\tif (deletions.length > 0 && this.m_subject != null) {\n\t\t\tthis.m_subject.next({ type: 'delete', values: deletions });\n\t\t}\n\t\treturn deletions.length > 0;\n\t}\n\n\tpublic clear(): this {\n\t\tif (this.size > 0) {\n\t\t\tconst deletions: { key: K; oldValue: V }[] = [];\n\t\t\tthis.forEach((value, key) => deletions.push({ key: key, oldValue: value }));\n\t\t\tsuper.clear();\n\t\t\tif (this.m_subject != null) {\n\t\t\t\tthis.m_subject.next({ type: 'clear', values: deletions });\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\tpublic subscribe(onNext: (value: IObservableMapChange) => void): Subscription> {\n\t\treturn this.changeStream.subscribe(onNext);\n\t}\n\n\tprivate getRealKey(key: K): K | undefined {\n\t\treturn this.m_keyComparator != null\n\t\t\t? Array.from(this.keys()).find((value) => this.m_keyComparator!(key, value))\n\t\t\t: key;\n\t}\n\n\tpublic static from(\n\t\tvalues: Iterable,\n\t\tkeyComparator?: Comparator | null | undefined\n\t): ObservableMap {\n\t\treturn new ObservableMap(values, keyComparator);\n\t}\n}\n\nexport interface IObservableQueueChange {\n\ttype: 'enqueue' | 'dequeue' | 'delete' | 'clear';\n\tvalues: T[];\n}\n\nexport class ObservableQueue {\n\tprivate readonly m_items: T[];\n\tprivate readonly m_valueComparator?: Comparator | null | undefined;\n\tprivate readonly m_maxLength: number | null | undefined;\n\tprivate readonly m_subject: Subject>;\n\n\tpublic get maxLength(): number | null | undefined {\n\t\treturn this.m_maxLength;\n\t}\n\n\tpublic get length(): number {\n\t\treturn this.m_items.length;\n\t}\n\n\tpublic get changeStream(): Observable> {\n\t\treturn Observable.from(this.m_subject);\n\t}\n\n\tpublic get valueComparator(): Comparator | null | undefined {\n\t\treturn this.m_valueComparator;\n\t}\n\n\tpublic constructor(\n\t\tvalues?: Iterable | null,\n\t\tcomparator?: Comparator | null | undefined,\n\t\tmaxLength?: number | null | undefined\n\t) {\n\t\tthis.m_items = Array.from(values || []);\n\t\tthis.m_valueComparator = comparator;\n\t\tthis.m_maxLength = maxLength;\n\t\tthis.m_subject = new Subject();\n\t}\n\n\tpublic has(item: T): boolean {\n\t\tconst predicate =\n\t\t\tthis.m_valueComparator ||\n\t\t\t((val1: T, val2: T) => {\n\t\t\t\treturn val1 === val2;\n\t\t\t});\n\t\treturn this.m_items.some((currentValue) => predicate(currentValue, item));\n\t}\n\n\tpublic dequeue(): T | undefined {\n\t\tconst value = this.m_items.pop();\n\t\tif (this.m_subject != null && value !== undefined) {\n\t\t\tthis.m_subject.next({ type: 'dequeue', values: [value] });\n\t\t}\n\t\treturn value;\n\t}\n\n\tpublic enqueue(...items: T[]): T[] {\n\t\tconst enqueuedItems = items.filter((item) => !this.has(item));\n\t\tif (enqueuedItems.length > 0) {\n\t\t\tthis.m_items.unshift(...enqueuedItems);\n\t\t}\n\t\tconst removedItems =\n\t\t\tenqueuedItems.length > 0 && this.maxLength != null && this.length > this.maxLength\n\t\t\t\t? this.m_items.splice(this.maxLength)\n\t\t\t\t: [];\n\t\tif (this.m_subject != null && enqueuedItems.length > 0) {\n\t\t\tthis.m_subject.next({ type: 'enqueue', values: enqueuedItems });\n\t\t}\n\t\treturn removedItems;\n\t}\n\n\tpublic delete(...items: T[]): T[] {\n\t\tconst deletions: T[] = [];\n\t\tconst predicate =\n\t\t\tthis.m_valueComparator ||\n\t\t\t((val1: T, val2: T) => {\n\t\t\t\treturn val1 === val2;\n\t\t\t});\n\t\titems.forEach((item) => {\n\t\t\tconst index = this.m_items.findIndex((value) => predicate(value, item));\n\t\t\tif (index >= 0) {\n\t\t\t\tArray.prototype.push.apply(deletions, this.m_items.splice(index, 1));\n\t\t\t}\n\t\t});\n\t\tif (this.m_subject != null && deletions.length > 0) {\n\t\t\tthis.m_subject.next({ type: 'delete', values: deletions });\n\t\t}\n\t\treturn deletions;\n\t}\n\n\tpublic clear(): this {\n\t\tconst deletions =\n\t\t\tthis.m_items != null && this.m_items.length > 0 ? this.m_items.splice(0, this.m_items.length) : [];\n\t\tif (this.m_subject != null && deletions.length > 0) {\n\t\t\tthis.m_subject.next({ type: 'clear', values: deletions });\n\t\t}\n\t\treturn this;\n\t}\n\n\tpublic values(): IterableIterator {\n\t\treturn (this.m_items || []).values();\n\t}\n\n\tpublic subscribe(\n\t\tonNext: (value: IObservableQueueChange) => void,\n\t\tonError?: ((error: any) => void) | undefined,\n\t\tonComplete?: (() => void) | undefined\n\t): Subscription> {\n\t\treturn this.changeStream.subscribe(onNext);\n\t}\n\n\tpublic static from(\n\t\tvalues: Iterable,\n\t\tcomparator?: Comparator | null | undefined,\n\t\tmaxLength?: number | null | undefined\n\t): ObservableQueue {\n\t\treturn new ObservableQueue(values, comparator, maxLength);\n\t}\n}\n//}\n\n//export namespace Functions {\nexport const filter = ObservableFns.filter;\nexport const flatMap = ObservableFns.flatMap;\nexport const interval = ObservableFns.interval;\nexport const map = ObservableFns.map;\nexport const merge = ObservableFns.merge;\nexport const multicast = ObservableFns.multicast;\nexport const scan = ObservableFns.scan;\nexport const unsubscribe = ObservableFns.unsubscribe;\n//}\n\nexport { ThreadSafeObservableFns as ThreadSafe };\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modal\":\"DetachedModal_modal__OrA2M\",\"modalHeader\":\"DetachedModal_modalHeader__nRNjR\",\"modalTitle\":\"DetachedModal_modalTitle__nR6Rf\",\"noPadding\":\"DetachedModal_noPadding__38-j5\",\"modalBody\":\"DetachedModal_modalBody__2Pbfb\",\"iconContainer\":\"DetachedModal_iconContainer__prfAW\",\"icon\":\"DetachedModal_icon__1bxSQ\",\"modalFooter\":\"DetachedModal_modalFooter__1vm17\",\"modalButtons\":\"DetachedModal_modalButtons__2WcMC\",\"button\":\"DetachedModal_button__1y5A_\",\"cancelButton\":\"DetachedModal_cancelButton__x_UKX\",\"noBody\":\"DetachedModal_noBody__2Rrxg\"};","import React, { useContext } from 'react';\nimport { Popup as SemanticUiPopup } from 'semantic-ui-react';\n\nimport cn from 'classnames';\n\nimport AppContext from '../../contexts/AppContext';\n\nimport styles from './WtrTooltip.module.scss';\n\n/**\n * Wrapper component that allows you to stylize the Semantic UI React Popup Component and use it as a tooltip\n * If no position is specified the tooltip will default to position bottom center\n * Children should be wrapped in
in order to work properly\n */\nconst WtrTooltip = ({ children, position, ...rest }: any) => {\n\tconst { appTheme, isArabic } = useContext(AppContext);\n\n\trest.className = cn(rest.className, appTheme, styles.wtrTooltip);\n\n\t// be smarter about this\n\tif (position && isArabic) {\n\t\tif (position.includes('right')) {\n\t\t\tposition = position.replace('right', 'left');\n\t\t}\n\t}\n\n\trest.position = position || 'bottom center'; //if no position is specified the tooltip will default to position bottom center\n\n\treturn ;\n};\n\nexport default WtrTooltip;\n","import { create as _create } from 'zustand';\nimport type { StateCreator } from 'zustand';\n\nconst storeResetFns = new Set<() => void>();\n\nexport const resetAllStores = () => {\n\tstoreResetFns.forEach((resetFn) => {\n\t\tresetFn();\n\t});\n};\n\nexport const create = (() => {\n\treturn (stateCreator: StateCreator) => {\n\t\tconst store = _create(stateCreator);\n\t\tconst initialState = store.getState();\n\t\tstoreResetFns.add(() => {\n\t\t\tstore.setState(initialState, true);\n\t\t});\n\t\treturn store;\n\t};\n}) as typeof _create;\n","import React, { useContext } from 'react';\nimport AppContext from '../../../contexts/AppContext';\nimport { Tooltip as BootstrapTooltip, TooltipProps } from 'react-bootstrap';\nimport './Tooltip.module.scss';\n\n/**\n * Wrapper component that allows you to stylize the Bootstrap Tooltip Component\n */\nconst Tooltip = React.forwardRef(({ children, ...rest }: TooltipProps, ref) => {\n\tconst { appTheme } = useContext(AppContext);\n\trest.className = `${rest.className || ''} ${appTheme}`;\n\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n});\n\nexport default Tooltip;\n","import { ChartTimezone } from './enums';\n\nconst convertChartTimeZone = (value: string) => {\n\tif (value === ChartTimezone.NYT) {\n\t\treturn ChartTimezone.NYT;\n\t} else if (value === ChartTimezone.GMT) {\n\t\treturn ChartTimezone.GMT;\n\t}\n\treturn ChartTimezone.Local;\n};\n\nexport default convertChartTimeZone;\n","import clone from 'clone';\n\nimport { useContext } from 'react';\n\nimport AppContext from '../../../contexts/AppContext';\nimport DashboardContext from '../../../contexts/DashboardContext';\nimport {\n\tLastLoggedAct,\n\tTPreferenceResponse,\n\tTWatchlists,\n} from '../../../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\nimport authStore from '../../../store/authStore';\nimport convertChartTimeZone from '../../../utils/functions/chartIqTimeZone';\n\nimport { DEFAULT_FEED_ID } from '../../functions/WatchlistUtils';\n\nimport useSaveUserPreferences from '../../mutations/useSaveUserPreferences';\nimport { AccountMarketType } from '../../../gateways/RfpGateway/rfp.types';\nimport { useDynamicWatchLists } from '../useDynamicWatchLists';\nimport tradingAccountStore from '../../../store/tradingAccountStore';\n\n/**\n * Fills the contexts used by the model layer from the result recieved by the preferences API\n * @param {TPreferenceResponse} userPreference User preference API call result or default preference object\n * @param {AppContextProvider} appContext The app context state to be filled\n * @param {DashboardContextProvider} dashboardContext The dashboard context state to be filled\n * @since preference version 1.0\n */\n\nexport const useFillContextsFromPreferences = () => {\n\tconst tradingMode = authStore.use.tradingMode();\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst setAccountAvatar = authStore.use.setAccountAvatar();\n\tconst dynamicWatchLists = useDynamicWatchLists();\n\tconst setIsOneClickTradingActive = tradingAccountStore.use.setIsOneClickTradingActive();\n\n\tconst { mutate: savePreferences } = useSaveUserPreferences();\n\n\treturn (userPrefs: TPreferenceResponse, isFundedTrader?: any) => {\n\t\tif (!userPrefs) return;\n\t\tconst userPreferences = clone(userPrefs);\n\t\tconst { user_prefs: preferences } = userPreferences;\n\t\tconst accountType = dashboardContext.accountType;\n\n\t\tif (!preferences.platform.lastLoggedAct || typeof preferences.platform.lastLoggedAct !== 'object') {\n\t\t\tappContext.userPreferences!.user_prefs.platform.lastLoggedAct = { demo: '', live: '' };\n\t\t\tsavePreferences();\n\t\t}\n\n\t\tconst isLastLoggedAccountSpreadBetting =\n\t\t\tpreferences.platform?.accountTypes &&\n\t\t\tpreferences.platform?.accountTypes[\n\t\t\t\tpreferences.platform.lastLoggedAct[tradingMode.toLowerCase() as keyof LastLoggedAct]\n\t\t\t] === AccountMarketType.SpreadBetting;\n\n\t\tif (preferences.platform?.accountAvatar) {\n\t\t\tsetAccountAvatar(preferences.platform?.accountAvatar);\n\t\t}\n\t\tconst isLastLoggedAccountJapanSpread =\n\t\t\tpreferences.platform?.accountTypes &&\n\t\t\tpreferences.platform?.accountTypes[\n\t\t\t\tpreferences.platform.lastLoggedAct[tradingMode.toLowerCase() as keyof LastLoggedAct]\n\t\t\t] === AccountMarketType.JapanSpread;\n\n\t\t//Theme Preference\n\t\tif (preferences.platform?.theme !== null) {\n\t\t\t//Theme Preference\n\t\t\tif (preferences.platform.theme._type === 'Light') {\n\t\t\t\tappContext.appTheme = 'light';\n\t\t\t} else if (preferences.platform.theme._type === 'Dark') {\n\t\t\t\tappContext.appTheme = 'dark';\n\t\t\t} else if (preferences.platform.theme._type === 'System') {\n\t\t\t\tconst getCurrentTheme = () => window.matchMedia('(prefers-color-scheme: dark)').matches;\n\t\t\t\tif (getCurrentTheme()) {\n\t\t\t\t\tappContext.appTheme = 'dark';\n\t\t\t\t} else {\n\t\t\t\t\tappContext.appTheme = 'light';\n\t\t\t\t}\n\t\t\t}\n\t\t\tlocalStorage.setItem('wt-theme', appContext.appTheme);\n\t\t}\n\t\t//One-Click Trading Preference\n\t\tif (preferences.trading?.settings['cfd'] !== null) {\n\t\t\t// dashboardContext.oneClickTrading = preferences.trading.settings['cfd']?._mode === '1-Click';\n\t\t\tsetIsOneClickTradingActive(preferences.trading.settings['cfd']?._mode === '1-Click');\n\t\t}\n\t\t//Quantity Type Preference\n\t\tif (preferences.trading?.settings['cfd']?._quantityType !== null) {\n\t\t\tif (isLastLoggedAccountSpreadBetting) {\n\t\t\t\tdashboardContext.quantityType = 'Lots';\n\t\t\t} else {\n\t\t\t\tdashboardContext.quantityType = appContext.isJapanAccount\n\t\t\t\t\t? 'Amount'\n\t\t\t\t\t: preferences.trading?.settings['cfd']?._quantityType!;\n\t\t\t}\n\t\t}\n\n\t\t//Notification sound muted Preference\n\t\tif (preferences.trading?.settings['cfd']?._notificationSoundMuted !== undefined) {\n\t\t\tdashboardContext.notificationSoundMuted = preferences.trading?.settings['cfd']?._notificationSoundMuted;\n\t\t}\n\t\t//Notification sound volume Preference\n\t\tif (preferences.trading?.settings['cfd']?._notificationSoundVolume) {\n\t\t\tdashboardContext.notificationSoundVolume = preferences.trading?.settings['cfd']?._notificationSoundVolume;\n\t\t}\n\t\t//Trade From Chart Preference\n\t\tif (preferences.trading?.settings['cfd']?._tradeFromChartEnabled !== null) {\n\t\t\tdashboardContext.tradeFromChartEnabled = preferences.trading?.settings['cfd']?._tradeFromChartEnabled!;\n\t\t} else {\n\t\t\t// Persist the new setting for existing users\n\t\t\tif (appContext.userPreferences!.user_prefs.trading.settings[accountType]) {\n\t\t\t\tappContext.userPreferences!.user_prefs.trading.settings[accountType]!._tradeFromChartEnabled = true;\n\t\t\t\tsavePreferences();\n\t\t\t}\n\t\t}\n\t\t//Inactive Time Preference\n\t\tif (preferences.platform?.inactivity !== null) {\n\t\t\tdashboardContext.inactiveTime = preferences.platform.inactivity;\n\t\t}\n\n\t\tif (!preferences.trading.settings[accountType]!.amount) {\n\t\t\tappContext.userPreferences!.user_prefs.trading.settings[accountType]!.amount = {};\n\t\t\tsavePreferences();\n\t\t}\n\n\t\t//Watchlist Preference\n\t\tif (preferences.watchlists.account.length > 0) {\n\t\t\tlet cfdWatchlists: TWatchlists[] = [];\n\n\t\t\tconst filteredByModeWatchlists = preferences.watchlists.account.filter((accountType) => {\n\t\t\t\tif (isLastLoggedAccountSpreadBetting) {\n\t\t\t\t\treturn accountType.accountType === 'SpreadBetting';\n\t\t\t\t} else if (isLastLoggedAccountJapanSpread) {\n\t\t\t\t\treturn accountType.accountType === 'JapanSpread';\n\t\t\t\t} else {\n\t\t\t\t\treturn accountType.accountType === undefined;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Ensure Live account watchlists are prioritized\n\t\t\tfilteredByModeWatchlists.sort((a, b) => {\n\t\t\t\tif (a._type === 'Live' && b._type !== 'Live') return -1;\n\t\t\t\tif (a._type !== 'Live' && b._type === 'Live') return 1;\n\t\t\t\treturn 0;\n\t\t\t});\n\n\t\t\t// Filter out the watchlist but start with Live account\n\t\t\tfilteredByModeWatchlists.forEach((account) => {\n\t\t\t\taccount.watchlist.forEach((watchlist, index) => {\n\t\t\t\t\tif (watchlist._feedId === DEFAULT_FEED_ID) {\n\t\t\t\t\t\tif (!cfdWatchlists.some((existingWatchlist) => existingWatchlist._id === watchlist._id)) {\n\t\t\t\t\t\t\tcfdWatchlists.push(watchlist);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tdynamicWatchLists(cfdWatchlists, isFundedTrader, isLastLoggedAccountSpreadBetting || false, true);\n\t\t}\n\n\t\t//Timezone Preference - default Local if no time zone specified\n\t\tconst timezone = convertChartTimeZone(preferences.platform?.timezone ? preferences.platform.timezone._name : '');\n\t\tdashboardContext.initialTimezone = timezone;\n\t\tdashboardContext.chartTimezone = timezone;\n\n\t\tif (localStorage) {\n\t\t\tlocalStorage.setItem('charts-timezone', timezone);\n\t\t}\n\n\t\t// Language Preference\n\t\tif (\n\t\t\tpreferences.platform?.lang._code !== null &&\n\t\t\tappContext.languageSettings !== preferences?.platform?.lang._code\n\t\t) {\n\t\t\tappContext.languageSettings = preferences.platform.lang._code;\n\t\t}\n\t};\n};\n","import {\n\tHistoryTick,\n\tMarketItem,\n\tPriceQuote,\n\tRFPDataObjectType,\n\tTradingPosition,\n\tTradingPositionState,\n} from '../../../gateways/RfpGateway/rfp.types';\nimport { isMarketItemType, MarketItemType } from '../../../utils/functions/calculations';\nimport { TradingPositionSide, TradingPositionType } from '../../../utils/functions/enums';\nimport { GymTradingAccount } from '../Accounts/GymTradingAccount';\nimport { GymRefQuotesStore } from '../HistoryData/GymRefQuotesStore';\n\nimport { GymPositionUtils } from './GymPositionUtils';\n\nexport class GymTradingPosition implements TradingPosition {\n\taId: number;\n\tstate: TradingPositionState; // Default state is pending\n\tside: TradingPositionSide;\n\tcode: string;\n\tf: string;\n\ttype?: TradingPositionType | undefined;\n\toP: number = NaN;\n\tcP: number = NaN;\n\tprc: number = NaN;\n\tcomm?: number | undefined;\n\tswap?: number | undefined;\n\tqty: number = 0;\n\toT?: number | undefined;\n\tcT?: number | undefined;\n\teT?: number | undefined;\n\tsl: number = NaN;\n\ttp: number = NaN;\n\tposId: number | undefined;\n\tqCcy?: string | undefined;\n\tdec: number = -1;\n\topenAskPrice?: number;\n\topenBidPrice?: number;\n\tcloseAskPrice?: number;\n\tcloseBidPrice?: number;\n\tprivate _grossProfit: number = NaN;\n\tpublic get grossProfit(): number {\n\t\treturn this._grossProfit;\n\t}\n\tpublic set grossProfit(value: number) {\n\t\tif (!isNaN(value)) {\n\t\t\tthis._grossProfit = value;\n\t\t\tthis.netProfit = value;\n\t\t}\n\t}\n\tdividend?: number | undefined;\n\tmarketItem?: MarketItem | undefined;\n\tcurrentPrice?: number | undefined;\n\tpips?: number | undefined;\n\ttpInPips: number = NaN;\n\tslInPips: number = NaN;\n\tadditionalSubscriptionPair: Set = new Set();\n\tnetProfit: number = NaN;\n\tcomment?: string | undefined;\n\tdataObjectType = RFPDataObjectType.TradingPosition;\n\tbaseCurrency?: string | undefined;\n\tcancelRequestSent?: boolean | undefined;\n\ttrailingStop?: number = NaN;\n\t/*\n\t * Position will belong to specific simulation\n\t */\n\tprivate _simulationId: string;\n\tpublic get simulationId(): string {\n\t\treturn this._simulationId;\n\t}\n\tpublic set simulationId(value: string) {\n\t\tthis._simulationId = value;\n\t}\n\n\tprivate _lastDataClosePrice: number = 0;\n\tpublic get lastDataClosePrice(): number {\n\t\treturn this._lastDataClosePrice;\n\t}\n\tpublic set lastDataClosePrice(value: number) {\n\t\tthis._lastDataClosePrice = value;\n\t\tthis.currentPrice = this._lastDataClosePrice;\n\t}\n\tprivate _lastDataCloseTime: number = 0;\n\tpublic get lastDataCloseTime(): number {\n\t\treturn this._lastDataCloseTime;\n\t}\n\tpublic set lastDataCloseTime(value: number) {\n\t\tthis._lastDataCloseTime = value;\n\t}\n\n\tdeepCopy() {\n\t\tconst copyPos = new GymTradingPosition(\n\t\t\tthis.aId,\n\t\t\tthis.f,\n\t\t\tthis.code,\n\t\t\tthis.state,\n\t\t\tthis.side,\n\t\t\tthis.type ?? TradingPositionType.Market,\n\t\t\tthis._simulationId\n\t\t);\n\t\tObject.assign(copyPos, this);\n\n\t\treturn copyPos;\n\t}\n\n\tconstructor(\n\t\taccountId: number,\n\t\tfeedId: string,\n\t\tcode: string,\n\t\tstate: TradingPositionState,\n\t\tside: TradingPositionSide,\n\t\ttype: TradingPositionType,\n\t\tsimulationId: string\n\t) {\n\t\tthis.aId = accountId;\n\t\tthis.f = feedId;\n\t\tthis.code = code;\n\t\tthis.state = state;\n\t\tthis.side = side;\n\t\tthis.type = type;\n\t\tthis._simulationId = simulationId;\n\t}\n\n\tupdatePosition(account: GymTradingAccount, dataItem: HistoryTick, priceQuote: PriceQuote): boolean {\n\t\tconst accountCurrency = account.baseCurrency;\n\t\tthis.calcProfit(account, priceQuote, accountCurrency);\n\n\t\tif (this.lastDataCloseTime >= priceQuote.t) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.lastDataClosePrice = this.getCurrentPrice(priceQuote);\n\t\tthis.lastDataCloseTime = priceQuote.t;\n\n\t\tswitch (this.state) {\n\t\t\tcase TradingPositionState.open: {\n\t\t\t\treturn this.updateActivePosition(dataItem, accountCurrency);\n\t\t\t}\n\t\t\tcase TradingPositionState.pending: {\n\t\t\t\treturn this.updatePendingPosition(account, dataItem, priceQuote, accountCurrency);\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t\treturn false;\n\t}\n\n\tupdateActivePosition(dataItem: HistoryTick, accountCurrency: string): boolean {\n\t\tlet res = false;\n\t\tswitch (this.side) {\n\t\t\tcase TradingPositionSide.Buy: {\n\t\t\t\tif (this.hasStopLoss() && dataItem.low <= this.sl) {\n\t\t\t\t\tthis.cP = this.sl;\n\t\t\t\t\tthis.cT = dataItem.closeTime;\n\t\t\t\t\tthis.comment = 'Position was close by triggered stop loss';\n\t\t\t\t\tthis.setPositionInClosedState(accountCurrency);\n\t\t\t\t\tres = true;\n\t\t\t\t}\n\n\t\t\t\tif (this.hasTakeProfit() && dataItem.high >= this.tp) {\n\t\t\t\t\tthis.cP = this.tp;\n\t\t\t\t\tthis.cT = dataItem.closeTime;\n\t\t\t\t\tthis.comment = 'Position was close by triggered take profit';\n\t\t\t\t\tthis.setPositionInClosedState(accountCurrency);\n\t\t\t\t\tres = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TradingPositionSide.Sell: {\n\t\t\t\tif (this.hasStopLoss() && dataItem.high >= this.sl) {\n\t\t\t\t\tthis.cP = this.sl;\n\t\t\t\t\tthis.cT = dataItem.closeTime;\n\t\t\t\t\tthis.comment = 'Position was close by triggered stop loss';\n\t\t\t\t\tthis.setPositionInClosedState(accountCurrency);\n\t\t\t\t\tres = true;\n\t\t\t\t}\n\n\t\t\t\tif (this.hasTakeProfit() && dataItem.low <= this.tp) {\n\t\t\t\t\tthis.cP = this.tp;\n\t\t\t\t\tthis.cT = dataItem.closeTime;\n\t\t\t\t\tthis.comment = 'Position was close by triggered take profit';\n\t\t\t\t\tthis.setPositionInClosedState(accountCurrency);\n\t\t\t\t\tres = true;\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (res) {\n\t\t\tGymTradingPosition.storePosition(this);\n\t\t}\n\t\treturn res;\n\t}\n\n\tupdatePendingPosition(\n\t\taccount: GymTradingAccount,\n\t\tdataItem: HistoryTick,\n\t\tpriceQuote: PriceQuote,\n\t\taccountCurrency: string\n\t): boolean {\n\t\tlet shouldSetInOpenState = false;\n\n\t\tswitch (this.side) {\n\t\t\tcase TradingPositionSide.Buy: {\n\t\t\t\tswitch (this.type) {\n\t\t\t\t\tcase TradingPositionType.Limit: {\n\t\t\t\t\t\tif (dataItem.low <= this.prc) {\n\t\t\t\t\t\t\tshouldSetInOpenState = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase TradingPositionType.Stop: {\n\t\t\t\t\t\tif (dataItem.high >= this.prc) {\n\t\t\t\t\t\t\tshouldSetInOpenState = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TradingPositionSide.Sell: {\n\t\t\t\tswitch (this.type) {\n\t\t\t\t\tcase TradingPositionType.Limit: {\n\t\t\t\t\t\tif (dataItem.high >= this.prc) {\n\t\t\t\t\t\t\tshouldSetInOpenState = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase TradingPositionType.Stop: {\n\t\t\t\t\t\tif (dataItem.low <= this.prc) {\n\t\t\t\t\t\t\tshouldSetInOpenState = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (shouldSetInOpenState) {\n\t\t\tthis.oT = dataItem.closeTime;\n\t\t\tthis.oP = this.prc;\n\t\t\tthis.state = TradingPositionState.open;\n\t\t\tthis.type = TradingPositionType.Market;\n\n\t\t\tif (this.posId && !GymPositionUtils.validateMargin(account, this)) {\n\t\t\t\tGymTradingPosition.removePositionStore(this.simulationId, this.posId);\n\t\t\t\tthis.state = TradingPositionState.deleted;\n\n\t\t\t\tthrow new Error('Failed to open pending position. Insufficient Available Margin!');\n\t\t\t}\n\n\t\t\tthis.calcProfit(account, priceQuote, accountCurrency);\n\t\t}\n\n\t\tGymTradingPosition.storePosition(this);\n\n\t\treturn shouldSetInOpenState;\n\t}\n\n\tcalcUsedMargin(account: GymTradingAccount): number {\n\t\tif (this.aId !== account.id) {\n\t\t\tthrow Error('Trying to calcUsedMargin with wrong account data');\n\t\t}\n\n\t\tif (this.state !== TradingPositionState.open) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tlet usedMargin = 0.0;\n\t\tif (!isNaN(this.oP)) {\n\t\t\tif (this.marketItem) {\n\t\t\t\tconst quoteCurrency = this.qCcy ?? '';\n\t\t\t\tlet effectivePrice = GymRefQuotesStore.sharedInstance().getPrice(\n\t\t\t\t\tquoteCurrency,\n\t\t\t\t\taccount.baseCurrency,\n\t\t\t\t\tthis.lastDataCloseTime,\n\t\t\t\t\tthis.simulationId\n\t\t\t\t);\n\t\t\t\tif (isNaN(effectivePrice) || effectivePrice === 0) {\n\t\t\t\t\teffectivePrice = 1;\n\t\t\t\t}\n\n\t\t\t\tif (!isMarketItemType(this.marketItem, MarketItemType.FOREX)) {\n\t\t\t\t\teffectivePrice *= this.oP;\n\t\t\t\t}\n\n\t\t\t\tusedMargin = account.leverage * effectivePrice * this.qty;\n\t\t\t}\n\t\t}\n\n\t\treturn usedMargin;\n\t}\n\n\tmultiplayer() {\n\t\treturn this.side === TradingPositionSide.Buy ? 1 : -1;\n\t}\n\n\thasStopLoss() {\n\t\treturn !isNaN(this.sl) && this.sl > 0;\n\t}\n\n\thasTakeProfit() {\n\t\treturn !isNaN(this.tp) && this.tp > 0;\n\t}\n\n\tsetPositionInClosedState(accountCurrency: string) {\n\t\tthis.state = TradingPositionState.closed;\n\n\t\tthis.calcProfitOnClosedPositionWithAccountCurrency(accountCurrency);\n\t}\n\n\tgetCurrentPrice(priceQuote: PriceQuote) {\n\t\treturn this.side === TradingPositionSide.Buy ? priceQuote.b : priceQuote.a;\n\t}\n\n\tcalcInPips(priceQuote: PriceQuote) {\n\t\tif (this.dec !== -1) {\n\t\t\tconst currentPrice = this.getCurrentPrice(priceQuote);\n\t\t\tif (currentPrice !== 0 && !isNaN(currentPrice)) {\n\t\t\t\tif (this.tp !== 0.0 && !isNaN(this.tp)) {\n\t\t\t\t\tthis.tpInPips = Math.abs(currentPrice - this.tp) * this.multiplayer();\n\t\t\t\t}\n\n\t\t\t\tif (this.sl !== 0.0 && !isNaN(this.sl)) {\n\t\t\t\t\tthis.slInPips = Math.abs(currentPrice - this.sl) * this.multiplayer();\n\t\t\t\t}\n\n\t\t\t\tif (this.state === TradingPositionState.pending) {\n\t\t\t\t\tif (this.oP !== 0.0 && !isNaN(this.oP)) {\n\t\t\t\t\t\tthis.pips = Math.abs(this.oP - currentPrice) * this.multiplayer();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tcalcProfitOnClosedPositionWithAccountCurrency(accountCurrency: string) {\n\t\tconst closePrice = this.cP;\n\t\tconst openPrice = this.oP;\n\t\tconst digits = this.dec;\n\t\tconst amount = this.qty;\n\t\tconst quoteCurrency = this.qCcy;\n\t\tif (quoteCurrency && closePrice) {\n\t\t\tswitch (this.state) {\n\t\t\t\tcase TradingPositionState.canceled: {\n\t\t\t\t\tthis.pips = NaN;\n\t\t\t\t\tif (digits !== -1) {\n\t\t\t\t\t\tthis.pips =\n\t\t\t\t\t\t\t(closePrice - openPrice) * Math.pow(10, digits !== 0 ? digits - 1 : digits) * this.multiplayer();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!this.baseCurrency) {\n\t\t\t\t\t\tif (!this.marketItem) {\n\t\t\t\t\t\t\tthis.grossProfit = 0;\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.baseCurrency = this.marketItem.bCcy;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst plPositionCurrency = (closePrice - openPrice) * this.multiplayer() * amount;\n\n\t\t\t\t\tif (!(this.qCcy === accountCurrency)) {\n\t\t\t\t\t\tconst effectivePrice = GymRefQuotesStore.sharedInstance().getPrice(\n\t\t\t\t\t\t\tquoteCurrency,\n\t\t\t\t\t\t\taccountCurrency,\n\t\t\t\t\t\t\tthis.lastDataCloseTime,\n\t\t\t\t\t\t\tthis.simulationId\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (isNaN(effectivePrice)) {\n\t\t\t\t\t\t\tthis.grossProfit = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.grossProfit = plPositionCurrency * effectivePrice;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.grossProfit = plPositionCurrency;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tcalcProfit(account: GymTradingAccount, priceQuote: PriceQuote, accountCurrency: string) {\n\t\tswitch (this.state) {\n\t\t\tcase TradingPositionState.closed: {\n\t\t\t\tif (isNaN(this.grossProfit)) {\n\t\t\t\t\tthis.calcProfitOnClosedPositionWithAccountCurrency(accountCurrency);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TradingPositionState.open: {\n\t\t\t\tthis.calcInPips(priceQuote);\n\n\t\t\t\tif (isNaN(this.oP) || this.oP === 0) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst currentPrice = this.getCurrentPrice(priceQuote);\n\n\t\t\t\tthis.pips = NaN;\n\t\t\t\tconst digits = this.dec;\n\t\t\t\tif (digits !== -1) {\n\t\t\t\t\tthis.pips = (currentPrice - this.oP) * Math.pow(10, digits !== 0 ? digits - 1 : digits) * this.multiplayer();\n\t\t\t\t}\n\n\t\t\t\tif (!this.baseCurrency) {\n\t\t\t\t\tif (!this.marketItem) {\n\t\t\t\t\t\tthis.grossProfit = 0;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.baseCurrency = this.marketItem.bCcy;\n\t\t\t\t}\n\n\t\t\t\tconst amount = this.qty;\n\t\t\t\tconst plPositionCurrency = (currentPrice - this.oP) * this.multiplayer() * amount;\n\n\t\t\t\tconst basePositionCurrency = this.qCcy;\n\t\t\t\tif (this.marketItem && basePositionCurrency && basePositionCurrency !== accountCurrency) {\n\t\t\t\t\tthis.grossProfit = GymRefQuotesStore.sharedInstance().convertToBaseCurrency(\n\t\t\t\t\t\taccount,\n\t\t\t\t\t\tbasePositionCurrency,\n\t\t\t\t\t\tthis.marketItem.feedId,\n\t\t\t\t\t\tthis.marketItem.code,\n\t\t\t\t\t\tthis.side === TradingPositionSide.Buy,\n\t\t\t\t\t\tplPositionCurrency,\n\t\t\t\t\t\tcurrentPrice,\n\t\t\t\t\t\tthis.lastDataCloseTime,\n\t\t\t\t\t\tthis.simulationId\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tthis.grossProfit = plPositionCurrency;\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TradingPositionState.pending: {\n\t\t\t\tthis.calcInPips(priceQuote);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TradingPositionState.deleted: {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static buildKey(simulationId: string, posId: number | undefined) {\n\t\treturn `${simulationId}_${posId}`;\n\t}\n\n\tprivate static ignoreProps(this: any, key: any, value: any) {\n\t\tif (['marketItem'].indexOf(key) > -1) return undefined;\n\t\telse return value;\n\t}\n\n\tstatic storePosition(position: GymTradingPosition) {\n\t\tif (localStorage) {\n\t\t\tlocalStorage.setItem(\n\t\t\t\tGymTradingPosition.buildKey(position.simulationId, position.posId),\n\t\t\t\tJSON.stringify(position, GymTradingPosition.ignoreProps)\n\t\t\t);\n\t\t}\n\t}\n\n\tstatic restoreTradingPosition(simulationId: string, positionId: number): GymTradingPosition | undefined {\n\t\tif (localStorage) {\n\t\t\tconst positionData = localStorage.getItem(GymTradingPosition.buildKey(simulationId, positionId));\n\t\t\tif (positionData) {\n\t\t\t\tconst position = JSON.parse(positionData);\n\t\t\t\tif (position) {\n\t\t\t\t\tconst copyPos = new GymTradingPosition(\n\t\t\t\t\t\tposition.aId,\n\t\t\t\t\t\tposition.f,\n\t\t\t\t\t\tposition.code,\n\t\t\t\t\t\tposition.state,\n\t\t\t\t\t\tposition.side,\n\t\t\t\t\t\tposition.type ?? TradingPositionType.Market,\n\t\t\t\t\t\tposition._simulationId\n\t\t\t\t\t);\n\t\t\t\t\tObject.assign(copyPos, position);\n\n\t\t\t\t\tif (position.additionalSubscriptionPair.length > 0) {\n\t\t\t\t\t\tcopyPos.additionalSubscriptionPair = new Set(...position.additionalSubscriptionPair);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcopyPos.additionalSubscriptionPair = new Set();\n\t\t\t\t\t}\n\t\t\t\t\t// TODO: GYM set MarketItem prop\n\t\t\t\t\treturn copyPos;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tstatic removePositionStore(simulationId: string, posId: number) {\n\t\tif (localStorage) {\n\t\t\tlocalStorage.removeItem(GymTradingPosition.buildKey(simulationId, posId));\n\t\t}\n\t}\n}\n","import React, { useContext } from 'react';\n\nimport AppContext from '../../../contexts/AppContext';\nimport { defineBaseCurrencySymbol } from '../../../utils/functions/calculations';\nimport useSelectedTradingAccount from '../../../utils/hooks/useSelectedTradingAccount';\nimport { formatNumberWithCommas } from '../../features/Dashboard/Watchlist/Instrument/formattedQuoteNumber';\n\nconst MoneyFormatter = ({ money }: { money: number }) => {\n\tlet value = parseFloat(money!.toString());\n\n\tconst selectedTradingAccount = useSelectedTradingAccount();\n\tconst { languageSettings: language, isArabic, isJapanAccount } = useContext(AppContext);\n\n\tlet result = null;\n\n\tif (!isNaN(value) && selectedTradingAccount) {\n\t\tconst symbol = defineBaseCurrencySymbol(selectedTradingAccount!);\n\t\tconst decPrec = isJapanAccount ? 0 : 2;\n\t\t// all number related to Japan account must be rounding with floor function\n\t\tif (isJapanAccount) {\n\t\t\tvalue = Math.floor(value);\n\t\t}\n\n\t\tif (isArabic) {\n\t\t\tresult =\n\t\t\t\tvalue < 0\n\t\t\t\t\t? `${formatNumberWithCommas(Math.abs(value), decPrec, language)} ${symbol} -`\n\t\t\t\t\t: `${formatNumberWithCommas(value, decPrec, language)} ${symbol}`;\n\t\t} else {\n\t\t\tresult =\n\t\t\t\tvalue < 0\n\t\t\t\t\t? `- ${symbol} ${formatNumberWithCommas(Math.abs(value), decPrec, language)}`\n\t\t\t\t\t: `${symbol} ${formatNumberWithCommas(value, decPrec, language)}`;\n\t\t}\n\t}\n\n\treturn <>{result};\n};\n\nexport default MoneyFormatter;\n","import { MarketItem, MarketWatchItem } from '../../../gateways/RfpGateway/rfp.types';\n\n/**\n * Creates a map of market items grouped by groupCode\n * @param data {MarketItem} - Array of market items\n * @returns {Record} - Map of market items grouped by groupCode\n */\nexport const createMarketItemCodeMap = (data: MarketItem[]): Record =>\n\tdata.reduce((all, item) => {\n\t\tall[item.code] = item;\n\n\t\treturn all;\n\t}, {} as Record);\n\n/**\n * Creates a map of market items grouped by group for CFD\n * @param data {MarketItem[]} - Array of market items\n * @returns {Record} - Map of market items grouped by groupCode\n */\nexport const createMarketItemGroupMap = (data: MarketItem[]): Record =>\n\tdata.reduce((all, item) => {\n\t\tif (all[item.grp]) {\n\t\t\tall[item.grp].push(item);\n\t\t} else {\n\t\t\tall[item.grp] = [item];\n\t\t}\n\n\t\treturn all;\n\t}, {} as Record);\n\nexport interface TableMarketItem {\n\tsymbol: string;\n\tname: string;\n\tvolatility: number;\n\tcurrency: string;\n\tchange: number;\n\tlow: string;\n\thigh: string;\n\tsell: string;\n\tbuy: string;\n\tsettings: string;\n}\n\nexport interface PositionTableItem {\n\tsimulationId: string;\n\tinstrument: string;\n\tside: string;\n\tLots: number;\n\tAmount: number;\n\tquantityType: number;\n\tonDate: string;\n\topen: string;\n\tchange: number;\n\tcurrent: number;\n\tTakeProfit: number;\n\tStopLoss: number;\n\tnetPL: number;\n\tgrossPL: number;\n\tsettings: string;\n\tsubRows: any;\n\tclose: boolean;\n\ttime: string;\n\tcomment: string;\n\tcomm: string;\n\tdividend: string;\n\tswap: string;\n\tposId: string;\n\theadID: string;\n\tpipsChange: string;\n\tid: string;\n}\nexport interface CloseTableItem {\n\tsimulationId: string;\n\tinstrument: string;\n\theadID: string;\n\tside: string;\n\tLots: number;\n\tAmount: number;\n\tquantityType: number;\n\tonDate: string;\n\topen: string;\n\tcloseOn: string;\n\topenDate: string;\n\tchange: number;\n\tcurrent: number;\n\tTakeProfit: number;\n\tStopLoss: number;\n\tnetPL: number;\n\tgrossPL: number;\n\tsettings: string;\n\tsubRows: any;\n\tclose: boolean;\n\tclosed: boolean;\n\ttime: string;\n\tclosedTime: string;\n\tcomment: string;\n\tcomm: string;\n\tdividend: string;\n\tswap: string;\n\tposId: string;\n\tpipsChange: string;\n\tid: string;\n}\n\nexport interface OrderTableItem {\n\tsimulationId: string;\n\tinstrument: string;\n\tside: string;\n\tLots: number;\n\tAmount: number;\n\tquantityType: number;\n\tonDate: string;\n\topen: string;\n\tcreatedOn: string;\n\texpiryOn: string;\n\theadID: string;\n\tchange: number;\n\tcurrent: number;\n\tTakeProfit: number;\n\tStopLoss: number;\n\tdistanceToMarket: number;\n\ttype: string;\n\tsettings: string;\n\tsubRows: any;\n\tclose: boolean;\n\ttime: string;\n\tposId: string;\n}\n\ninterface CreateMarketItemGroupTableDataProps {\n\tmarketItems: MarketItem[];\n\tchangeMap?: Record;\n\tvolatilityMap?: Record;\n}\n\n/**\n * Creates a map of market items that is ready for the table\n * @param marketItems {MarketItem[]} - Array of market items\n * @param changeMap {Record} - Map of market items with change\n * @param volatilityMap {Record} - Map of market items with volatility\n * @returns {TableMarketItem[]} - Array of market items ready for the table\n */\nexport const createMarketItemGroupTableData = ({\n\tmarketItems,\n\tchangeMap = {},\n\tvolatilityMap = {},\n}: CreateMarketItemGroupTableDataProps): TableMarketItem[] =>\n\tmarketItems.reduce((all, item) => {\n\t\tconst tableItem: TableMarketItem = {\n\t\t\tsymbol: item.code,\n\t\t\tname: item.fullName,\n\t\t\tvolatility: volatilityMap[item.code] || 0,\n\t\t\tcurrency: item.ccy,\n\t\t\tchange: changeMap[item.code] || 0,\n\t\t\tlow: item.code,\n\t\t\thigh: item.code,\n\t\t\tsell: item.code,\n\t\t\tbuy: item.code,\n\t\t\tsettings: item.code,\n\t\t};\n\n\t\tall.push(tableItem);\n\t\treturn all;\n\t}, [] as TableMarketItem[]);\n\n/**\n * Creates an array with market item codes from Market Item Type\n * @param data {MarketItem[]} - Array of market items\n * @returns {string[]} - Array of market item codes\n */\nexport const createMarketItemCodes = (data: MarketItem[]): string[] =>\n\tdata.reduce((all, item) => {\n\t\tall.push(item.code);\n\t\treturn all;\n\t}, [] as string[]);\n\n/**\n * Creates an array with market item codes from Market Watch Item type\n * @param data {MarketItem[]} - Array of market items\n * @returns {string[]} - Array of market item codes\n */\nexport const createMarketWatchItemCodes = (data: MarketWatchItem[]): string[] =>\n\tdata.reduce((all, item) => {\n\t\tif (item.code) {\n\t\t\tall.push(item.code);\n\t\t}\n\n\t\treturn all;\n\t}, [] as string[]);\n\nenum Tier {\n\tTier1 = 'Tier1',\n\tTier2 = 'Tier2',\n\tTier3 = 'Tier3',\n}\n\n/**\n * Creates a map of market items grouped by tier for Japanese market\n * @param data {MarketItem[]} - Array of market items\n * @returns {Record} - Map of market items grouped by tier\n */\nexport const createMarketItemTierMap = (data: MarketItem[]): Record =>\n\tdata.reduce(\n\t\t(all, item) => {\n\t\t\tconst tier = item.minTier as number;\n\n\t\t\tif (tier === 1) {\n\t\t\t\tall[Tier.Tier1].push(item);\n\t\t\t\tall[Tier.Tier2].push(item);\n\t\t\t\tall[Tier.Tier3].push(item);\n\t\t\t}\n\n\t\t\tif (tier === 2) {\n\t\t\t\tall[Tier.Tier2].push(item);\n\t\t\t\tall[Tier.Tier3].push(item);\n\t\t\t}\n\n\t\t\tif (tier === 3) {\n\t\t\t\tall[Tier.Tier3].push(item);\n\t\t\t}\n\n\t\t\treturn all;\n\t\t},\n\t\t{\n\t\t\tTier1: [],\n\t\t\tTier2: [],\n\t\t\tTier3: [],\n\t\t} as Record\n\t);\n\ninterface CreateMarketItemsArrayFromCodesProps {\n\tcodes: string[];\n\tmarketsItemMap: Record;\n}\n\n/**\n * Creates an array with market items from Market Item Codes\n * @param codes {string[]} - Array of market item codes\n * @param marketsItemMap {Record} - Map of market items by Code\n * @returns {MarketItem[]} - Array of market items\n */\nexport const createMarketItemsArrayFromCodes = ({\n\tcodes,\n\tmarketsItemMap,\n}: CreateMarketItemsArrayFromCodesProps): MarketItem[] =>\n\tcodes.reduce((all, code) => {\n\t\tif (marketsItemMap[code]) {\n\t\t\tall.push(marketsItemMap[code]);\n\t\t}\n\n\t\treturn all;\n\t}, [] as MarketItem[]);\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalDialog\":\"SubscriptionSelector_modalDialog__2Tw_l\",\"modalHeader\":\"SubscriptionSelector_modalHeader__1in4r\",\"modalFooter\":\"SubscriptionSelector_modalFooter__2JnT9\",\"tierInfoContainer\":\"SubscriptionSelector_tierInfoContainer__2AWf_\",\"tierInfo\":\"SubscriptionSelector_tierInfo__29U8R\",\"viewDetails\":\"SubscriptionSelector_viewDetails__3jPTY\",\"detailsModalHeader\":\"SubscriptionSelector_detailsModalHeader__39Bad\",\"confirmModalHeader\":\"SubscriptionSelector_confirmModalHeader__2U6ir\",\"wrapper\":\"SubscriptionSelector_wrapper__2_2-t\",\"title\":\"SubscriptionSelector_title__1ZDQE\",\"backButton\":\"SubscriptionSelector_backButton__1ZJ7E\",\"ctaText\":\"SubscriptionSelector_ctaText__3m5W4\",\"modalBody\":\"SubscriptionSelector_modalBody__1jOtT\",\"confirmModalBody\":\"SubscriptionSelector_confirmModalBody__ztg4F\",\"detailsModalBody\":\"SubscriptionSelector_detailsModalBody__2Q4iB\",\"scroll\":\"SubscriptionSelector_scroll__s7rWD\",\"instrumentGroupContainer\":\"SubscriptionSelector_instrumentGroupContainer__L_83W\",\"groupName\":\"SubscriptionSelector_groupName__2esXk\",\"confitmTextWrapper\":\"SubscriptionSelector_confitmTextWrapper__3yKsP\",\"courseChangeTitle\":\"SubscriptionSelector_courseChangeTitle__2v8kV\",\"tilesContainer\":\"SubscriptionSelector_tilesContainer__lmJFH\"};","import { metals, forex, commodities, crypto, efts, stocks, indices, energy } from '../../images';\nimport { ResolutionString } from '../../charting_library';\n\nexport const BASE_DOCUMENT_TITLE = 'ThinkTrader';\n\nexport const timezoneProperties = {\n\tDEFAULT_TIMEZONE: '',\n};\n\nexport const instrumentGroupProps: {\n\t[key: string]: {\n\t\tname: string;\n\t\ticon: string;\n\t};\n} = {\n\tForex: {\n\t\tname: 'wtr:WTR_FOREX',\n\t\ticon: forex,\n\t},\n\tForexSB: {\n\t\tname: 'wtr:WTR_FOREX',\n\t\ticon: forex,\n\t},\n\tIndices: {\n\t\tname: 'wtr:WTR_INDICES',\n\t\ticon: indices,\n\t},\n\tIndicesSB: {\n\t\tname: 'wtr:WTR_INDICES',\n\t\ticon: indices,\n\t},\n\tStocks: {\n\t\tname: 'wtr:SHARE_CFDS',\n\t\ticon: stocks,\n\t},\n\tEnergy: {\n\t\tname: 'wtr:ENERGY',\n\t\ticon: energy,\n\t},\n\tEnergySB: {\n\t\tname: 'wtr:ENERGY',\n\t\ticon: energy,\n\t},\n\tCommodities: {\n\t\tname: 'wtr:WTR_COMMODITIES',\n\t\ticon: commodities,\n\t},\n\tCrypto: {\n\t\tname: 'wtr:CRYPTO',\n\t\ticon: crypto,\n\t},\n\tMetals: {\n\t\tname: 'wtr:METALS',\n\t\ticon: metals,\n\t},\n\tMetalsSB: {\n\t\tname: 'wtr:METALS',\n\t\ticon: metals,\n\t},\n\tShares: {\n\t\tname: 'wtr:SHARE_CFDS',\n\t\ticon: stocks,\n\t},\n\tCFD: {\n\t\tname: 'wtr:EQUITIES',\n\t\ticon: efts,\n\t},\n\tETFs: {\n\t\tname: 'wtr:EQUITIES',\n\t\ticon: efts,\n\t},\n};\n\nexport const SUPPORTED_RESOLUTIONS = [\n\t'1',\n\t'2',\n\t'3',\n\t'5',\n\t'10',\n\t'15',\n\t'30',\n\t'60',\n\t// '120',\n\t// '180',\n\t'240',\n\t// '480',\n\t'1D',\n\t'1W',\n\t'1M',\n] as ResolutionString[];\n\nexport const CALENDAR_MONTHS_SHORT_EN = [\n\t'Jan',\n\t'Feb',\n\t'Mar',\n\t'Apr',\n\t'May',\n\t'Jun',\n\t'Jul',\n\t'Aug',\n\t'Sept',\n\t'Oct',\n\t'Nov',\n\t'Dec',\n];\n","import React, { useContext } from 'react';\n\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { default as AppContext } from '../../../contexts/AppContext';\n\nimport styles from './CloseButton.module.scss';\n\ninterface CloseButtonProps {\n\tonClick?: () => void;\n\ttooltipID?: string;\n\tisItClosed?: boolean;\n\tbuttonPositioning?: string;\n}\n\nconst CloseButton: React.FC = ({ onClick, tooltipID, isItClosed=true, buttonPositioning=\"bottom\" }) => {\n\tconst appContext = useContext(AppContext);\n\tconst { t } = useTranslation();\n\n\tconst isArabic = appContext.isArabic;\n\n\tconst handleButtonClick = () => {\n\t\tif (typeof onClick === 'function') {\n\t\t\tonClick();\n\t\t}\n\t};\n\n\treturn (\n\t\t\n\t\t\t\t\t{isItClosed ? t('en:CHART_COLLAPSE') : t('en:CHART_EXPAND')}\n\t\t\t\t\n\t\t\t}\n\t\t>\n\t\t\t
handleButtonClick()}>\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default CloseButton;\n","import { Instrument, MarketItem, PriceQuote, TradingPosition } from '../../gateways/RfpGateway/rfp.types';\n\nimport { TradingPositionLimitType, TradingPositionSide, TradingPositionType } from '../../utils/functions/enums';\n\nexport interface IPriceInfo {\n\tprice?: number;\n\tisActive?: boolean;\n\tpotentialProfitLoss?: string;\n\terror?: string;\n\tisTriggered?: boolean;\n}\n\nexport interface IAmountInfo {\n\tamount?: number;\n\tmin?: number;\n\tmax?: number;\n\tstep?: number;\n\trndLot?: number; // TODO:use tradingInstrument\n\terror?: string;\n}\n\nexport interface ITradeObjProps {\n\tstopLevel: number | null;\n\tlimitLevel: number | null;\n\ttrailingStop: number | null;\n\treqId: number;\n\tacctId: number;\n}\n\nexport enum ActionType {\n\tunknown = 'UNKNOWN',\n\tconfirm = 'CONFIRM',\n\tcancel = 'CANCEL',\n\tclose = 'CLOSE',\n}\n\nexport interface Order {\n\taccountId?: number;\n\tside?: TradingPositionSide;\n\ttype?: TradingPositionType;\n\tisPreservedValue?: boolean;\n\n\t// Modify only Take Profit / Stop Loss prices\n\tlimitsOnly?: TradingPositionLimitType[];\n\tdate?: any;\n\n\t// TODO: - Remove quantity and replace with amountInfo\n\tquantity?: number;\n\n\tamountInfo?: IAmountInfo;\n\topenPriceInfo?: IPriceInfo;\n\tstopLossInfo?: IPriceInfo;\n\ttakeProfitInfo?: IPriceInfo;\n\tisPositionDraggingDisabled?: boolean;\n\tstopLossType?: string;\n}\n\nexport interface OrderStoreActions {\n\tsetAction: (action: ActionType) => void;\n\tsetTradingPosition: (position: TradingPosition | undefined) => void;\n\tsetTradingInstrument: (instrument: Instrument | undefined) => void;\n\tsetCurrentQuote: (priceQuote: PriceQuote | undefined) => void;\n\tsetMarketItem: (marketItem: MarketItem | undefined) => void;\n\tsetTradeProps: (values: Order) => void;\n\tsetAmountInfo: (values: IAmountInfo) => void;\n\tsetOpenPriceInfo: (values: IPriceInfo) => void;\n\tsetTakeProfitInfo: (values: IPriceInfo) => void;\n\tsetStopLossInfo: (values: IPriceInfo) => void;\n\tfillStoreFromPosition: (\n\t\tposition: TradingPosition,\n\t\tlimitsType?: TradingPositionLimitType[],\n\t\tisPositionDraggingDisabled?: boolean,\n\t\tpips?: { takeProfitPips: number; stopLossPips: number }\n\t) => void;\n\tcreateTradeRequestObject: (\n\t\tpips?: { takeProfitPips: number; stopLossPips: number },\n\t\tcurrentPriceQuote?: PriceQuote\n\t) => any;\n\tsetIsSignalOrder: (value: boolean) => any;\n\treset: () => void;\n\tresetExceptSide: () => void;\n}\n\nexport interface OrderStoreValues {\n\tcurrent: Order;\n\taction: ActionType;\n\t// Read only purposes\n\ttradingPosition?: TradingPosition;\n\ttradingInstrument?: Instrument;\n\tcurrentQuote?: PriceQuote;\n\tmarketItem?: MarketItem;\n\tisSignalOrder: boolean;\n}\n\nexport type OrderStore = OrderStoreValues & OrderStoreActions;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"mfaModal\":\"TwoFactorAuthModal_mfaModal__2b-6x\",\"header\":\"TwoFactorAuthModal_header__3W2Xn\",\"title\":\"TwoFactorAuthModal_title__2lLrw\",\"actions\":\"TwoFactorAuthModal_actions__3J8bB\",\"content\":\"TwoFactorAuthModal_content__3QCOi\",\"qrCode\":\"TwoFactorAuthModal_qrCode__1j_Ei\",\"key\":\"TwoFactorAuthModal_key__2krqi\",\"otpContainer\":\"TwoFactorAuthModal_otpContainer__3xD0a\",\"otpInput\":\"TwoFactorAuthModal_otpInput__1bOpC\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"resultItem\":\"SearchResult_resultItem__3Jaos\",\"resultItemContainer\":\"SearchResult_resultItemContainer__1dvMe\",\"instrumentIcon\":\"SearchResult_instrumentIcon__2zSfw\",\"textGroup\":\"SearchResult_textGroup__3mmsc\",\"resultCode\":\"SearchResult_resultCode__1gum6\",\"resultName\":\"SearchResult_resultName__1i89A\",\"matchName\":\"SearchResult_matchName__2ZrA_\",\"leftContainer\":\"SearchResult_leftContainer__k4zWe\",\"icon\":\"SearchResult_icon__3Qi-p\",\"addToWatchlistIcon\":\"SearchResult_addToWatchlistIcon__3nF_f\",\"existsIcon\":\"SearchResult_existsIcon__3DMf0\",\"code\":\"SearchResult_code__1XYJ2\",\"matchText\":\"SearchResult_matchText__1KJ0g\",\"watchlistIcon\":\"SearchResult_watchlistIcon__1CMfB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"watchlistAccordion\":\"WatchlistHeader_watchlistAccordion__11Ywb\",\"windowInstrument\":\"WatchlistHeader_windowInstrument__JRoge\",\"header\":\"WatchlistHeader_header__3Kbip\",\"headerEdit\":\"WatchlistHeader_headerEdit__Oh0Ok\",\"marketActions\":\"WatchlistHeader_marketActions__3U7Ca\",\"columnLabelContainer\":\"WatchlistHeader_columnLabelContainer__1zaW2\",\"lightMarketActions\":\"WatchlistHeader_lightMarketActions__27RmX\",\"darkMarketActions\":\"WatchlistHeader_darkMarketActions__2o5fv\",\"lightIconTheme\":\"WatchlistHeader_lightIconTheme__3Celn\",\"darkIconTheme\":\"WatchlistHeader_darkIconTheme__2rSMG\",\"instrument\":\"WatchlistHeader_instrument__2dSBo\",\"editInstrument\":\"WatchlistHeader_editInstrument__3Nw1A\",\"instrumentHeader\":\"WatchlistHeader_instrumentHeader__UfjN9\",\"delayedQuote\":\"WatchlistHeader_delayedQuote__fs8Em\",\"watchlistHeader\":\"WatchlistHeader_watchlistHeader__16yU2\",\"columnLabel\":\"WatchlistHeader_columnLabel__387tN\",\"instrumentChevron\":\"WatchlistHeader_instrumentChevron__2Cuhp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"WtrToggle_container__2CRg0\",\"checkbox\":\"WtrToggle_checkbox__3X2vv\",\"horizontal\":\"WtrToggle_horizontal__1c1Bh\",\"toggle\":\"WtrToggle_toggle__2hgnK\",\"active\":\"WtrToggle_active__1kW2l\",\"sm\":\"WtrToggle_sm__2HHtv\",\"md\":\"WtrToggle_md__1DDTI\",\"icon\":\"WtrToggle_icon__S3R87\",\"start\":\"WtrToggle_start__3kKwX\",\"end\":\"WtrToggle_end__1wjC-\",\"faIcon\":\"WtrToggle_faIcon__1_rEI\",\"modalActivate\":\"WtrToggle_modalActivate__1QCwn\",\"modalMessage\":\"WtrToggle_modalMessage__1i37k\",\"modalFooter\":\"WtrToggle_modalFooter__1Xwox\",\"modalActionButtons\":\"WtrToggle_modalActionButtons__17V6y\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"headerText\":\"ContactModal_headerText__35gfQ\",\"modalBody\":\"ContactModal_modalBody__10ByA\",\"optionContainer\":\"ContactModal_optionContainer__1I1D4\",\"option\":\"ContactModal_option__1o77x\",\"icon\":\"ContactModal_icon___ce1H\",\"location\":\"ContactModal_location__2h8fU\",\"email\":\"ContactModal_email__36NZO\",\"mailLink\":\"ContactModal_mailLink__3MpLt\"};","import React, { useContext } from 'react';\n\nimport { useTranslation } from 'react-i18next';\n\nimport cn from 'classnames';\n\nimport loaderSVG from '../../../images/loader.svg';\nimport { default as AppContext } from '../../../contexts/AppContext';\nimport { default as useForceRerender } from '../../../utils/hooks/useForceRerender';\nimport { default as useObservable } from '../../../utils/hooks/useObservable';\n\nimport styles from './Loading.module.scss';\n\ninterface LoadingProps {\n\tsize?: string;\n\tclassName?: string;\n}\n\nconst Loading: React.FC = ({ size, className }) => {\n\tconst appContext = useContext(AppContext);\n\tconst forceRerender = useForceRerender();\n\tconst theme = appContext.appTheme;\n\tconst { t } = useTranslation();\n\n\tuseObservable(appContext.getPropertyChangeStream('appTheme'), () => forceRerender());\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default Loading;\n","import React, { useEffect, useState } from 'react';\n\nimport { MarketItem } from '../../../gateways/RfpGateway/rfp.types';\nimport tradingAccountStore from '../../../store/tradingAccountStore';\nimport { IGridRecord } from '../../features/Markets/MarketsGrid';\n\nimport GroupBadge from './GroupBadge';\n\ninterface InstrumentIconProps {\n\tmarketItem: IGridRecord | MarketItem;\n}\nconst InstrumentIcon = ({ marketItem }: InstrumentIconProps) => {\n\tconst isJapanSubscriptionAccount = tradingAccountStore.use.isJapanSubscription();\n\n\tconst [iconSrc, setIconSrc] = useState('');\n\tconst [isRendered, setIsRendered] = useState(false);\n\tlet group = (isJapanSubscriptionAccount ? marketItem.minTier : marketItem.grp) || marketItem.category;\n\tlet name = marketItem.displayName || marketItem.code;\n\n\tif (name.endsWith('_SB')) {\n\t\tname = name.replace('_SB', '');\n\t}\n\tif (group && typeof group === 'string' && group.endsWith('SB')) {\n\t\tgroup = group.replace('SB', '');\n\t}\n\n\tuseEffect(() => {\n\t\tconst loadIcon = async () => {\n\t\t\ttry {\n\t\t\t\tconst iconModule = await import(`../../../images/${group}/${name}.svg`);\n\t\t\t\tsetIconSrc(iconModule.default);\n\t\t\t\tsetIsRendered(true);\n\t\t\t} catch (error) {\n\t\t\t\tconst defaultIcon = await import(`../../../images/default-icon.svg`);\n\t\t\t\tsetIconSrc(defaultIcon.default);\n\t\t\t\tsetIsRendered(true);\n\t\t\t}\n\t\t};\n\n\t\tloadIcon();\n\t}, [name, group]);\n\n\treturn <>{isRendered && (iconSrc ? \"badge\" : )};\n};\n\nexport default InstrumentIcon;\n","import { HistoryTick, PriceQuote, TradingPositionState } from '../../../gateways/RfpGateway/rfp.types';\n\nimport { GymTradingAccount } from './GymTradingAccount';\nimport { GymTradingPosition } from '../Positions/GymTradingPosition';\nimport { GymHistoryManager } from '../HistoryData/GymHistoryManager';\nimport { GymSimulation } from '../Simulations/GymSimulation';\n\nexport class GymTradingManager {\n\tprivate static instance: GymTradingManager;\n\n\t/**\n\t * The GymTradingManager's constructor should always be private to prevent direct\n\t * construction calls with the `new` operator.\n\t */\n\tprivate constructor() {}\n\n\t/**\n\t * The static method that controls the access to the singleton instance.\n\t */\n\tpublic static sharedInstance(): GymTradingManager {\n\t\tif (!GymTradingManager.instance) {\n\t\t\tGymTradingManager.instance = new GymTradingManager();\n\t\t}\n\t\treturn GymTradingManager.instance;\n\t}\n\n\trestorePosition(account: GymTradingAccount, position: GymTradingPosition, simulation: GymSimulation) {\n\t\taccount.positionManager.restorePosition(position);\n\n\t\tif (\n\t\t\t(position.state === TradingPositionState.open || position.state === TradingPositionState.pending) &&\n\t\t\tposition.marketItem\n\t\t) {\n\t\t\tGymHistoryManager.sharedInstance().requestRefQuotes(account, position.marketItem, simulation);\n\t\t}\n\t}\n\n\topenOrder(account: GymTradingAccount, position: GymTradingPosition, simulation: GymSimulation) {\n\t\tposition.aId = account.id;\n\t\taccount.positionManager.openOrder(position);\n\n\t\tif (position.marketItem) {\n\t\t\tGymHistoryManager.sharedInstance().requestRefQuotes(account, position.marketItem, simulation);\n\t\t}\n\t}\n\n\tmodifyPosition(account: GymTradingAccount, position: GymTradingPosition) {\n\t\taccount.positionManager.modifyPosition(position);\n\t}\n\n\tpartialClosePosition(\n\t\taccount: GymTradingAccount,\n\t\tposition: GymTradingPosition,\n\t\tamount: number,\n\t\tdataItem: HistoryTick,\n\t\tpriceQuote: PriceQuote\n\t) {\n\t\taccount.positionManager.partialClosePosition(position, amount, dataItem, priceQuote);\n\t}\n\n\tclosePosition(account: GymTradingAccount, position: GymTradingPosition) {\n\t\taccount.positionManager.closePosition(position);\n\t}\n\n\tdeletePosition(account: GymTradingAccount, position: GymTradingPosition) {\n\t\taccount.positionManager.deletePosition(position);\n\t}\n}\n","import { SubscriptionStatus, SubscriptionTier } from '../../utils/functions/subscriptionUtils';\n\nexport type TResponseStatus =\n\t| never\n\t| 'OK'\n\t| 'PENDING_APPROVAL'\n\t| 'SYS_ERR'\n\t| 'NOT_FOUND'\n\t| 'CHALLENGE'\n\t| 'VALIDATION_ERROR'\n\t| 'ALREADY_REGISTERED'\n\t| 'NOT_AUTHORIZED';\n\nexport type TLoginResponseStatus =\n\t| TResponseStatus\n\t| 'OK'\n\t| 'PENDING_APPROVAL'\n\t| 'PENDING_REVIEW'\n\t| 'PENDING_ID_ADDRESS'\n\t| 'PENDING_ID'\n\t| 'PENDING_ADDRESS'\n\t| 'NOT_AUTHORIZED';\n\nexport type TApplicationStatus =\n\t| never\n\t| 'APPROVED'\n\t| 'PENDING_REVIEW'\n\t| 'PENDING'\n\t| 'DENIED'\n\t| 'PENDING_ID_ADDRESS'\n\t| 'PENDING_ID'\n\t| 'PENDING_ADDRESS'\n\t| 'PENDING_APPROPRIATENESS_TEST'\n\t| 'PENDING_PROPER_DOCUMENTS'\n\t| 'PENDING_TRANSFER'\n\t| 'PENDING_NEW_TnC_ACCEPTANCE'\n\t| 'DUPLICATE'\n\t| 'INCOMPLETE'\n\t| 'INTERNAL_TESTING'\n\t| 'PENDING_TRANSLATION'\n\t| 'PENDING_RG227'\n\t| 'FAILED';\n\nexport type TUserAddress = {\n\taddress1: string;\n\tcity: string;\n\tpostalCode: string;\n\tstate: string;\n};\n\nexport type TOrganization = {\n\tguid: string;\n\tid: number;\n\tname: string;\n};\n\nexport type TPlatform = {\n\tid: number;\n\tname: string;\n\tcode: string;\n};\n\nexport type TCurrency = {\n\tcode: string;\n\tid: number;\n\tname: string;\n\tsymbol: string;\n};\n\nexport type TUserPhone = {\n\tmobile: string;\n\tmobileCountryCode: number;\n\tphone: string;\n\tphoneCountryCode: number;\n};\n\nexport type TLanguage = {\n\tid: number;\n\tlanguage_code: string;\n\tlanguage_name: string;\n};\n\nexport type TCountry = {\n\tcTraderCountryId: number;\n\tcode2: string;\n\tcode3: string;\n\tcurrency: TCurrency;\n\tdefaultLeverage: string;\n\tdemoBalance: number;\n\tdemoCurrency: TCurrency;\n\teVerificationStatus: boolean;\n\teVerificationType: {\n\t\ttype: string;\n\t\tid: number;\n\t};\n\teuropean: boolean;\n\tforceEmailValidate: boolean;\n\tid: number;\n\tisRequireEnglishNames: boolean;\n\tlegacyOrganization: TOrganization;\n\tliveCurrency: TCurrency;\n\tmaxLeverage: string;\n\tname: string;\n\torganization: TOrganization;\n\tphoneCode: number;\n\tpreKycFunds: number;\n\tregion: number;\n\triskProfile: string;\n\ttfaEnabled: boolean;\n\tused: boolean;\n};\n\nexport type TAccountExpiry = {\n\taccountExpirationDate: string;\n\tisExpired: boolean;\n\tnumberOfDaysRemaining: number;\n};\n\nexport type Account = {\n\tid: number;\n\taccountNumber: number;\n\ttype: 'LIVE' | 'DEMO' | 'GYM';\n\tcurrency: TCurrency;\n\texpires: TAccountExpiry;\n\torganization: TOrganization;\n\tplatform: TPlatform;\n};\nexport type TAccountStats = {\n\taccount: Account;\n\tarchived: boolean;\n\tbalanceInUSD: number;\n\tbalance: number;\n\tequity: number;\n\tmargin: number;\n\tmarginFree: number;\n\thasOpenPositions: boolean;\n\tplatformAccountType: TradingAccountType;\n};\n\nexport enum AccountBrand {\n\tThinkMarkets = 'ThinkMarkets',\n}\n\nexport enum PlatformCode {\n\tThinkTrader = 'ThinkTrader',\n}\n\nexport enum AccountTradingType {\n\tCFD = 'CFD',\n\tCE = 'CE',\n\tSpreadBetting = 'spreadBetting',\n}\n\nexport enum TradingAccountType {\n\tThinkTrader = 'ThinkTrader',\n\tSpreadBetting = 'spreadBetting',\n\tJapanSpread = 'JapanSpread',\n}\n\nexport type TTfboResponsePayload = {\n\tmodule: string;\n\taction: string;\n\tresult: TRESULT;\n\tstatus: TSTATUS;\n\tdetails?: any;\n};\n\nexport type TTfboRequestPayload = {\n\tmodule: string;\n\taction: string;\n\tparameters: T;\n};\n\ntype TTfboPayloadContent = {\n\t'account.addDemo': {\n\t\trequest: {\n\t\t\tfirst_name: string;\n\t\t\tlast_name: string;\n\t\t\temail: string;\n\t\t\tphone: string;\n\t\t\tphonecode: number;\n\t\t\tcountry: number;\n\t\t\tcurrency: string;\n\t\t\tbalance: number;\n\t\t\tleverage: number;\n\t\t\tplatformCode: PlatformCode;\n\t\t\tpassword: string;\n\t\t\tbrand: AccountBrand;\n\t\t\tplatformAccountType: TradingAccountType;\n\t\t\tpreferredLanguageId?: number | null | undefined;\n\t\t\tafs_aid?: string | null | undefined;\n\t\t\tafs_clickid?: string | null | undefined;\n\t\t\tcollection_policy_agreed?: boolean | null | undefined;\n\t\t\tvisitorId?: string | null | undefined;\n\t\t};\n\t\tresponse: any;\n\t};\n\t'account.stats': {\n\t\trequest: null | undefined | {};\n\t\tresponse: {\n\t\t\tdata: TAccountStats[];\n\t\t\tdraw: number;\n\t\t\trecordsFiltered: number;\n\t\t\trecordsTotal: number;\n\t\t};\n\t};\n\t'account.getUserAccounts': {\n\t\trequest: null | undefined | {};\n\t\tresponse: any;\n\t};\n\t'account.getSignalsList': {\n\t\trequest: null | undefined | {};\n\t\tresponse: [];\n\t};\n\t'application.checkApplicationStatus': {\n\t\trequest: null | undefined | {};\n\t\tresponse: {\n\t\t\tapplication_status: TApplicationStatus;\n\t\t\tappropriateness_level: string;\n\t\t\torganizationId: string;\n\t\t\tpreKycRequired: boolean;\n\t\t};\n\t};\n\t'application.getApplicationInfo': {\n\t\trequest: null | undefined | {};\n\t\tresponse: any;\n\t};\n\t'application.apps': {\n\t\trequest: null | undefined | {};\n\t\tresponse: any;\n\t};\n\t'authentication.generateSsoToken': {\n\t\trequest: {\n\t\t\temail: string;\n\t\t};\n\t\tresponse: {\n\t\t\tssoToken: string;\n\t\t};\n\t};\n\t'authentication.validatessotoken': {\n\t\trequest: {\n\t\t\temail: string;\n\t\t\tssoToken: string;\n\t\t};\n\t\tresponse: any;\n\t};\n\t'authentication.changePassword': {\n\t\trequest: {\n\t\t\tpassword: string;\n\t\t\tnew_password: string;\n\t\t};\n\t\tresponse: any;\n\t};\n\t'authentication.forgotPassword': {\n\t\trequest: {\n\t\t\temail_id: string;\n\t\t\tsource: string;\n\t\t};\n\t\tresponse: any;\n\t};\n\t'authentication.login': {\n\t\trequest: {\n\t\t\temail_id: string;\n\t\t\tpassword: string;\n\t\t};\n\t\tresponse: {\n\t\t\tlast_name: string;\n\t\t\tsession_life: number;\n\t\t\tid: number;\n\t\t\tfirst_name: string;\n\t\t\tlast_login_date: string;\n\t\t\ttoken: string;\n\t\t\tkeep_alive_interval: number;\n\t\t};\n\t};\n\t'authentication.logout': {\n\t\trequest: null | undefined | {};\n\t\tresponse: {};\n\t};\n\t'authentication.isSessionValid': {\n\t\trequest: null | undefined | {};\n\t\tresponse: {};\n\t};\n\t'emailValidation.isUserVerified': {\n\t\trequest: null | undefined | {};\n\t\tresponse: boolean;\n\t};\n\t'emailValidation.sendVerificationCode': {\n\t\trequest: {\n\t\t\toriginCountry: number;\n\t\t\taccountHolderFirstName: string;\n\t\t\taccountHolderLastName: string;\n\t\t\tpreferredLanguage: number;\n\t\t\taccountHolderEmail: string;\n\t\t};\n\t\tresponse: any;\n\t};\n\t'emailValidation.validateVerificationCode': {\n\t\trequest: {\n\t\t\totpValue: string;\n\t\t\taccountHolderEmail: string;\n\t\t};\n\t\tresponse: any;\n\t};\n\t'profile.feedback': {\n\t\trequest: {\n\t\t\temail?: string | null;\n\t\t\tcomments?: string;\n\t\t\tcontext?: string;\n\t\t\tscore: number;\n\t\t};\n\t\tresponse: any;\n\t};\n\t'profile.getUser': {\n\t\trequest: null | undefined | {};\n\t\tresponse: {\n\t\t\tadditionalAttributes: {};\n\t\t\taddress: TUserAddress;\n\t\t\tapproved: boolean;\n\t\t\tbrand: string;\n\t\t\tcif: string;\n\t\t\tclassification: string;\n\t\t\tcountry: TCountry;\n\t\t\tcurrentEquity: number;\n\t\t\tdateOfBirth: string;\n\t\t\temail: string;\n\t\t\temploymentStatus: string;\n\t\t\tfirstName: string;\n\t\t\tfirstNameEnglish: string;\n\t\t\tfullName: string;\n\t\t\tid: number;\n\t\t\tisProfessionalClient: boolean;\n\t\t\tlastName: string;\n\t\t\tlastNameEnglish: string;\n\t\t\tmaxDemoAccounts: number;\n\t\t\tmaxInterAccountTransfers: number;\n\t\t\tmaxLiveAccounts: number;\n\t\t\tnationality: {};\n\t\t\torganization: TOrganization;\n\t\t\tpartnerStatus: string;\n\t\t\tpassportId: string;\n\t\t\tphone: TUserPhone;\n\t\t\tpreferredLanguage: TLanguage;\n\t\t\tthinkTraderEULA: boolean;\n\t\t\ttitle: string;\n\t\t\ttwoFAenabled: boolean;\n\t\t\tvisitorId: string;\n\t\t};\n\t};\n\t'profile.checkAgreementStatus': {\n\t\trequest: null | undefined | {};\n\t\tresponse: {\n\t\t\tlatestVersion: string;\n\t\t\tcustomerVersion: string;\n\t\t};\n\t};\n\t'profile.confirmAgreement': {\n\t\trequest: {\n\t\t\tversionNumber: string;\n\t\t};\n\t\tresponse: {\n\t\t\tstatus: string;\n\t\t};\n\t};\n\n\t'utility.createHandshakeUrl': {\n\t\trequest: {\n\t\t\tusi: string;\n\t\t\tpage: string;\n\t\t\tlang: string;\n\t\t};\n\t\tresponse: string;\n\t};\n\t'utility.getCountries': {\n\t\trequest: null | undefined | {};\n\t\tresponse: TCountry[];\n\t};\n\t'utility.getUserIp': {\n\t\trequest: null | undefined | {};\n\t\tresponse: {\n\t\t\tcountry?: string | null | undefined;\n\t\t\tcountry_code?: string | null | undefined;\n\t\t};\n\t};\n\t'subscriptions.getSubscriptionStatus': {\n\t\trequest: {\n\t\t\tprovider: string;\n\t\t\taccountNumber: number;\n\t\t};\n\t\tresponse: {\n\t\t\tstatus: string;\n\t\t\tcurrentSubscriptionTier?: string | null | undefined;\n\t\t\tnextSubscriptionTier?: string | null | undefined;\n\t\t};\n\t};\n\t'subscriptions.subscribe': {\n\t\trequest: {\n\t\t\tprovider: string;\n\t\t\taccountNumber: number;\n\t\t\ttier: SubscriptionTier;\n\t\t\tsource: string;\n\t\t};\n\t\tresponse: {};\n\t};\n\t'subscriptions.changeTier': {\n\t\trequest: {\n\t\t\tprovider: string;\n\t\t\taccountNumber: number;\n\t\t\trequestedTier: SubscriptionTier;\n\t\t};\n\t\tresponse: {};\n\t};\n\t'subscriptions.stopSubscription': {\n\t\trequest: {\n\t\t\tprovider: string;\n\t\t\taccountNumber: number;\n\t\t};\n\t\tresponse: {};\n\t};\n\t'subscriptions.cancelSubscription': {\n\t\trequest: {\n\t\t\tprovider: string;\n\t\t\taccountNumber: number;\n\t\t};\n\t\tresponse: {};\n\t};\n\t'subscriptions.resumeSubscription': {\n\t\trequest: {\n\t\t\tprovider: string;\n\t\t\taccountNumber: number;\n\t\t};\n\t\tresponse: {};\n\t};\n};\n\nexport type TTfboGatewayRequestPayload<\n\tT extends Array,\n\tU extends 'requestPayload' | 'responsePayload'\n> = {\n\t[K in keyof T]: T[K] extends keyof typeof TfboApiMethodMeta ? (typeof TfboApiMethodMeta)[T[K]][U] : never;\n};\n\nexport type TTfboGatewayResponse> = {\n\tfilter?: any;\n\terror?: {\n\t\tcode?: any;\n\t\tdescription?: string;\n\t};\n\tvalidationErrors?: any;\n\tmessage?: string;\n\tid: number;\n\tprv_id: number;\n\ttransmission_time: number;\n\tsession_id: string;\n\ttoken: string;\n\tpayload: TTfboGatewayRequestPayload;\n};\n\nexport const TfboApiMethodMeta = {\n\t'account.addDemo': {\n\t\tmodule: 'account',\n\t\taction: 'adddemo',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload,\n\t\tauthRequired: false,\n\t},\n\t'account.stats': {\n\t\tmodule: 'account',\n\t\taction: 'stats',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload,\n\t\tauthRequired: true,\n\t},\n\t'account.getUserAccounts': {\n\t\tmodule: 'account',\n\t\taction: 'stats',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['account.getUserAccounts']['response']\n\t\t>,\n\t\tauthRequired: true,\n\t},\n\t'account.getSignalsList': {\n\t\tmodule: 'account',\n\t\taction: 'getSignalsList',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload,\n\t\tauthRequired: true,\n\t},\n\t'application.checkApplicationStatus': {\n\t\tmodule: 'application',\n\t\taction: 'check_application_status',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['application.checkApplicationStatus']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['application.checkApplicationStatus']['response']\n\t\t>,\n\t\tauthRequired: true,\n\t},\n\t'application.apps': {\n\t\tmodule: 'application',\n\t\taction: 'apps',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload,\n\t\tauthRequired: true,\n\t},\n\t'application.getApplicationInfo': {\n\t\tmodule: 'application',\n\t\taction: 'get_application_info',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['application.getApplicationInfo']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['application.getApplicationInfo']['response']\n\t\t>,\n\t\tauthRequired: true,\n\t},\n\t'authentication.generateSsoToken': {\n\t\tmodule: 'authentication',\n\t\taction: 'generateSsoToken',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['authentication.generateSsoToken']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['authentication.generateSsoToken']['response']\n\t\t>,\n\t\tauthRequired: false,\n\t},\n\t'authentication.validatessotoken': {\n\t\tmodule: 'authentication',\n\t\taction: 'validatessotoken',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['authentication.validatessotoken']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['authentication.validatessotoken']['response']\n\t\t>,\n\t\tauthRequired: false,\n\t},\n\t'authentication.changePassword': {\n\t\tmodule: 'authentication',\n\t\taction: 'change_password',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['authentication.changePassword']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['authentication.changePassword']['response']\n\t\t>,\n\t\tauthRequired: false,\n\t},\n\t'authentication.forgotPassword': {\n\t\tmodule: 'authentication',\n\t\taction: 'forgot_password',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['authentication.forgotPassword']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['authentication.forgotPassword']['response']\n\t\t>,\n\t\tauthRequired: false,\n\t},\n\t'authentication.login': {\n\t\tmodule: 'authentication',\n\t\taction: 'login',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload,\n\t\tauthRequired: false,\n\t},\n\t'authentication.logout': {\n\t\tmodule: 'authentication',\n\t\taction: 'logout',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload,\n\t\tauthRequired: true,\n\t},\n\t'authentication.isSessionValid': {\n\t\tmodule: 'authentication',\n\t\taction: 'is_valid',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['authentication.isSessionValid']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['authentication.isSessionValid']['response']\n\t\t>,\n\t\tauthRequired: true,\n\t},\n\t'emailValidation.isUserVerified': {\n\t\tmodule: 'emailvalidation',\n\t\taction: 'isuserverified',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['emailValidation.isUserVerified']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['emailValidation.isUserVerified']['response']\n\t\t>,\n\t\tauthRequired: true,\n\t},\n\t'emailValidation.sendVerificationCode': {\n\t\tmodule: 'emailvalidation',\n\t\taction: 'send_verification_code',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['emailValidation.sendVerificationCode']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['emailValidation.sendVerificationCode']['response']\n\t\t>,\n\t\tauthRequired: false,\n\t},\n\t'emailValidation.validateVerificationCode': {\n\t\tmodule: 'emailvalidation',\n\t\taction: 'verify_otp_code',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['emailValidation.validateVerificationCode']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['emailValidation.validateVerificationCode']['response']\n\t\t>,\n\t\tauthRequired: false,\n\t},\n\t'profile.feedback': {\n\t\tmodule: 'profile',\n\t\taction: 'feedback',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload,\n\t\tauthRequired: false,\n\t},\n\t'profile.getUser': {\n\t\tmodule: 'profile',\n\t\taction: 'get_user',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload,\n\t\tauthRequired: true,\n\t},\n\t'profile.checkAgreementStatus': {\n\t\tmodule: 'profile',\n\t\taction: 'checkUserTermsAndConditions',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['profile.checkAgreementStatus']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['profile.checkAgreementStatus']['response']\n\t\t>,\n\t\tauthRequired: true,\n\t},\n\t'profile.confirmAgreement': {\n\t\tmodule: 'profile',\n\t\taction: 'agreeToLatestTermsAndConditions',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['profile.confirmAgreement']['response']\n\t\t>,\n\t\tauthRequired: true,\n\t},\n\n\t'utility.createHandshakeUrl': {\n\t\tmodule: 'utility',\n\t\taction: 'createHandshakeURL',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['utility.createHandshakeUrl']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['utility.createHandshakeUrl']['response']\n\t\t>,\n\t\tauthRequired: false,\n\t},\n\t'utility.getCountries': {\n\t\tmodule: 'utility',\n\t\taction: 'getCountries',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload,\n\t\tauthRequired: false,\n\t},\n\t'utility.getUserIp': {\n\t\tmodule: 'utility',\n\t\taction: 'ip',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload,\n\t\tauthRequired: false,\n\t},\n\t'subscriptions.getSubscriptionStatus': {\n\t\tmodule: 'subscription',\n\t\taction: 'getSubscriptionStatus',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['subscriptions.getSubscriptionStatus']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['subscriptions.getSubscriptionStatus']['response']\n\t\t>,\n\t\tauthRequired: true,\n\t},\n\t'subscriptions.subscribe': {\n\t\tmodule: 'subscription',\n\t\taction: 'subscribe',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['subscriptions.subscribe']['response']\n\t\t>,\n\t\tauthRequired: true,\n\t},\n\t'subscriptions.changeTier': {\n\t\tmodule: 'subscription',\n\t\taction: 'changeTier',\n\t\trequestPayload: null as unknown as TTfboRequestPayload,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['subscriptions.changeTier']['response']\n\t\t>,\n\t\tauthRequired: true,\n\t},\n\t'subscriptions.stopSubscription': {\n\t\tmodule: 'subscription',\n\t\taction: 'stopSubscription',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['subscriptions.stopSubscription']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['subscriptions.stopSubscription']['response']\n\t\t>,\n\t\tauthRequired: true,\n\t},\n\t'subscriptions.cancelSubscription': {\n\t\tmodule: 'subscription',\n\t\taction: 'cancelSubscription',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['subscriptions.cancelSubscription']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['subscriptions.cancelSubscription']['response']\n\t\t>,\n\t\tauthRequired: true,\n\t},\n\t'subscriptions.resumeSubscription': {\n\t\tmodule: 'subscription',\n\t\taction: 'restartSubscription',\n\t\trequestPayload: null as unknown as TTfboRequestPayload<\n\t\t\tTTfboPayloadContent['subscriptions.resumeSubscription']['request']\n\t\t>,\n\t\tresponsePayload: null as unknown as TTfboResponsePayload<\n\t\t\tTTfboPayloadContent['subscriptions.resumeSubscription']['response']\n\t\t>,\n\t\tauthRequired: true,\n\t},\n} as const;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"options\":\"OneClickTradeDropdown_options__2-flt\",\"dropdown\":\"OneClickTradeDropdown_dropdown__15dy0\",\"dropdownError\":\"OneClickTradeDropdown_dropdownError__21bvZ\",\"dropdownIconWrapper\":\"OneClickTradeDropdown_dropdownIconWrapper__8BjLE\",\"active\":\"OneClickTradeDropdown_active__1MQvJ\",\"inputSkeleton\":\"OneClickTradeDropdown_inputSkeleton__2khOM\",\"option\":\"OneClickTradeDropdown_option__3Nu0S\",\"optionSelected\":\"OneClickTradeDropdown_optionSelected__CAide\",\"pound\":\"OneClickTradeDropdown_pound__1VNqF\",\"points\":\"OneClickTradeDropdown_points__3-Eki\"};","import { default as Lazy } from './Lazy';\nexport type DelayedPromise = Promise & { cancel: () => void };\n\nexport default class PromiseFactory {\n\tprivate static readonly _default = new Lazy(() => new PromiseFactory());\n\tprivate readonly m_singletonPromises = new Map>();\n\tprivate readonly m_thottledPromises = new Map>();\n\n\tpublic static get default(): PromiseFactory {\n\t\treturn this._default.getValue();\n\t}\n\n\tpublic promise(\n\t\texecutor: (resolve: (value: T | PromiseLike) => void, reject: (reason?: any) => void) => void\n\t): Promise {\n\t\treturn new Promise(executor);\n\t}\n\n\tpublic singleton(\n\t\tkey: string,\n\t\texecutor: (resolve: (value: T | PromiseLike) => void, reject: (reason?: any) => void) => void,\n\t\ttimeout?: number\n\t): Promise {\n\t\tlet promise = this.m_singletonPromises.get(key);\n\t\tif (promise == null) {\n\t\t\tpromise = this.promise(executor);\n\t\t\tpromise.finally(() => {\n\t\t\t\tthis.m_singletonPromises.delete(key);\n\t\t\t});\n\t\t\tthis.m_singletonPromises.set(key, promise);\n\t\t}\n\t\treturn promise;\n\t}\n\n\tpublic delay(delay: number): DelayedPromise;\n\tpublic delay(\n\t\tdelay: number,\n\t\texecutor: (resolve: (value: T | PromiseLike) => void, reject: (reason?: any) => void) => void\n\t): DelayedPromise;\n\tpublic delay(\n\t\tdelay: number,\n\t\texecutor?: (resolve: (value: T | PromiseLike) => void, reject: (reason?: any) => void) => void\n\t): DelayedPromise {\n\t\tlet interval: any = null;\n\t\tconst promise = new Promise((resolve, reject) => {\n\t\t\tinterval = setTimeout(() => {\n\t\t\t\tinterval = null;\n\t\t\t\texecutor != null ? executor(resolve, reject) : resolve();\n\t\t\t}, Math.round(Math.max(0, delay)));\n\t\t});\n\t\treturn new Proxy(promise, {\n\t\t\tget: (target, prop, receiver) => {\n\t\t\t\tif (prop == 'cancel') {\n\t\t\t\t\treturn () => {\n\t\t\t\t\t\tclearInterval(interval);\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tconst value = (target as any)[prop];\n\t\t\t\treturn typeof value == 'function' ? value.bind(target) : value;\n\t\t\t},\n\t\t}) as DelayedPromise;\n\t}\n\n\tpublic throttle(key: string, delay: number): DelayedPromise;\n\tpublic throttle(\n\t\tkey: string,\n\t\tdelay: number,\n\t\texecutor: (resolve: (value: T | PromiseLike) => void, reject: (reason?: any) => void) => void\n\t): DelayedPromise;\n\tpublic throttle(\n\t\tkey: string,\n\t\tdelay: number,\n\t\texecutor?: (resolve: (value: T | PromiseLike) => void, reject: (reason?: any) => void) => void\n\t): DelayedPromise {\n\t\tlet promise = this.m_thottledPromises.get(key);\n\t\tif (promise != null) {\n\t\t\tpromise.cancel();\n\t\t}\n\t\tpromise = executor != null ? this.delay(delay, executor) : this.delay(delay);\n\t\tpromise.finally(() => {\n\t\t\tthis.m_thottledPromises.delete(key);\n\t\t});\n\t\tthis.m_thottledPromises.set(key, promise);\n\t\treturn promise;\n\t}\n}\n","import React, { FC, useContext } from 'react';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { default as DashboardContext } from '../../../../../contexts/DashboardContext';\nimport { default as useForceRerender } from '../../../../../utils/hooks/useForceRerender';\nimport { default as useObservable } from '../../../../../utils/hooks/useObservable';\nimport { default as usePromiseFactory } from '../../../../../utils/hooks/usePromiseFactory';\nimport useSaveWatchlistToPreferences from '../../../../../utils/hooks/watchlist/useSaveWatchlistToPreferences';\nimport tradingAccountStore from '../../../../../store/tradingAccountStore';\nimport watchListStore from '../../../../../store/WatchListStore/watchListStore';\nimport authStore from '../../../../../store/authStore';\n\nimport styles from './AddToWatchlist.module.scss';\n\ninterface AddToWatchlistProps {\n\twatchlistName: string;\n\tmaxReached?: boolean;\n\t// TODO: - Use the action prop to handle the edit watchlist icon functionality\n\taction: 'ADD' | 'EDIT';\n}\n\nconst AddToWatchlist: FC = ({ watchlistName, maxReached }) => {\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst forceRerender = useForceRerender();\n\tconst promiseFactory = usePromiseFactory();\n\n\tconst selectedInstrument = dashboardContext.selectedInstrument;\n\tconst selectedTradingAccountWatchlist = dashboardContext.watchlist;\n\tconst isSpreadBettingAccount = tradingAccountStore.use.isSpreadBetting();\n\tconst tradingMode = authStore.use.tradingMode();\n\tconst getWatchlists = watchListStore.use.getWatchlists();\n\tconst isInstrumentExistsInWatchlist = watchListStore.use.isInstrumentExistsInWatchlist();\n\tconst addInstruments = watchListStore.use.addInstruments();\n\tconst removeInstruments = watchListStore.use.removeInstruments();\n\tconst allWatchlists = getWatchlists(tradingMode);\n\n\tconst saveWatchlistToPreferences = useSaveWatchlistToPreferences();\n\n\tuseObservable(\n\t\tdashboardContext.getPropertyChangeStream('selectedInstrument', 'tradingAccount', 'watchlist'),\n\t\t(change) => {\n\t\t\tpromiseFactory.throttle('dashboardContext.propertyChanged', 100).then(() => forceRerender());\n\t\t}\n\t);\n\n\tconst handleAddToWatchlist = () => {\n\t\tif (maxReached) return;\n\t\tif (!selectedInstrument) return;\n\n\t\tconst updatePreferenceObject = selectedTradingAccountWatchlist.find(\n\t\t\t(watchlist) => watchlist._name === watchlistName\n\t\t);\n\n\t\tif (updatePreferenceObject) {\n\t\t\tupdatePreferenceObject.instrument.push({ _code: selectedInstrument.code });\n\t\t\taddInstruments(tradingMode, watchlistName, [selectedInstrument.code]);\n\t\t}\n\n\t\tsaveWatchlistToPreferences(selectedTradingAccountWatchlist, isSpreadBettingAccount);\n\t};\n\n\tconst handleRemoveFromWatchlist = () => {\n\t\tif (allWatchlists && selectedInstrument) {\n\t\t\tconst updatePreferenceObject = selectedTradingAccountWatchlist.find(\n\t\t\t\t(watchlist) => watchlist._name === watchlistName\n\t\t\t);\n\n\t\t\tif (updatePreferenceObject) {\n\t\t\t\tconst removed = updatePreferenceObject.instrument.filter((item) => item._code !== selectedInstrument.code);\n\t\t\t\tupdatePreferenceObject.instrument = removed;\n\t\t\t\tremoveInstruments(tradingMode, watchlistName, [selectedInstrument.code]);\n\t\t\t}\n\t\t}\n\n\t\tsaveWatchlistToPreferences(selectedTradingAccountWatchlist, isSpreadBettingAccount);\n\t};\n\n\tconst exists = () => {\n\t\treturn selectedInstrument\n\t\t\t? isInstrumentExistsInWatchlist(tradingMode, watchlistName, selectedInstrument.code)\n\t\t\t: false;\n\t};\n\n\treturn (\n\t\t\n\t\t\t{exists() && (\n\t\t\t\t\n\t\t\t)}\n\t\t\t{!exists() && (\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default AddToWatchlist;\n","import React, { FC, useContext } from 'react';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\n\nimport { default as DashboardContext } from '../../../../../contexts/DashboardContext';\nimport {\n\tinstrumentExistsInDynamicWatchlists,\n\tMAX_INSTRUMENTS_ALLOWED,\n\tMAX_INSTRUMENTS_ALLOWED_JP,\n} from '../../../../../utils/functions/WatchlistUtils';\n\nimport AddToWatchlist from '../AddToWatchlist';\n\nimport useGetTranslatedWLName from '../../../../../utils/hooks/useGetTranslatedWLName';\nimport tradingAccountStore from '../../../../../store/tradingAccountStore';\nimport watchListStore from '../../../../../store/WatchListStore/watchListStore';\nimport authStore from '../../../../../store/authStore';\nimport AppContext from '../../../../../contexts/AppContext';\n\nimport styles from './WatchlistsList.module.scss';\n\ninterface WatchlistsListProps {\n\thasLeftIcon?: boolean;\n}\n\nconst WatchlistsList: FC = () => {\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst getTranslatedWLName = useGetTranslatedWLName();\n\tconst { t } = useTranslation();\n\tconst isSpreadBettingAccount = tradingAccountStore.use.isSpreadBetting();\n\tconst tradingMode = authStore.use.tradingMode();\n\tconst getWatchlists = watchListStore.use.getWatchlists();\n\tconst getSelectedWatchlist = watchListStore.use.getSelectedWatchlist();\n\tconst allWatchlists = getWatchlists(tradingMode);\n\tconst isChildWindow = appContext.isChildWindow || false;\n\tconst selectedWatchlist = getSelectedWatchlist(tradingMode, isChildWindow);\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t
{t('wtr:SELECT_WATCHLIST')}
\n\t\t\t
\n\t\t\t
\n\t\t\t\t{allWatchlists &&\n\t\t\t\t\tselectedWatchlist &&\n\t\t\t\t\tallWatchlists.map((watchlistData) => {\n\t\t\t\t\t\tconst watchlistName = watchlistData.name;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tinstrumentExistsInDynamicWatchlists(\n\t\t\t\t\t\t\t\twatchlistName,\n\t\t\t\t\t\t\t\tdashboardContext.defaultWatchLists,\n\t\t\t\t\t\t\t\tisSpreadBettingAccount\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst maxInstruments = appContext.isJapanAccount ? MAX_INSTRUMENTS_ALLOWED_JP : MAX_INSTRUMENTS_ALLOWED;\n\t\t\t\t\t\tconst maxReached = watchlistData.instruments.length >= maxInstruments;\n\t\t\t\t\t\tconst isInstrumentExistInWatchlist = dashboardContext.selectedInstrument\n\t\t\t\t\t\t\t? watchlistData.instruments.includes(dashboardContext.selectedInstrument.code)\n\t\t\t\t\t\t\t: false;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{getTranslatedWLName(watchlistName)}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t{getTranslatedWLName(watchlistName)}\n\t\t\t\t\t\t\t\t\t\t\t{maxReached &&
{t('wtr:MAX_INSTRUMENT_ERROR')}
}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default WatchlistsList;\n","import React, { useContext } from 'react';\n\nimport cn from 'classnames';\n\nimport DashboardContext from '../../../contexts/DashboardContext';\nimport { PriceQuote } from '../../../gateways/RfpGateway/rfp.types';\nimport { Optional } from '../../../utils/functions/Nullable';\n\nimport styles from './DailyPercent.module.scss';\n\ninterface DailyPercentProps {\n\tcurrentPriceQuote: Optional;\n\tdecimalPrecision?: number;\n}\n\nconst DailyPercent = ({ currentPriceQuote, decimalPrecision }: DailyPercentProps) => {\n\tconst dashboardContext = useContext(DashboardContext);\n\n\tlet dailyValue = 0;\n\tlet dailyPercent = 0;\n\n\tconst previousClosePrice = dashboardContext.selectedInstrument\n\t\t? dashboardContext.previousDayClosePrices[dashboardContext.selectedInstrument.code]\n\t\t: 0;\n\n\tif (!currentPriceQuote?.a || !currentPriceQuote?.b || !previousClosePrice) return null;\n\n\t// a - ask, b - bid\n\tconst averageCurrentPrice = (currentPriceQuote!.a + currentPriceQuote!.b) / 2;\n\n\tdailyValue = averageCurrentPrice - previousClosePrice;\n\n\tdailyPercent = (dailyValue! / previousClosePrice) * 100;\n\n\treturn (\n\t\t
\n\t\t\t 0 ? styles.positive : styles.negative)}>\n\t\t\t\t{`${dailyValue > 0 ? '+' : ''}${dailyValue.toFixed(decimalPrecision)}`}\n\t\t\t\n\t\t\t 0 ? styles.positive : styles.negative)}>\n\t\t\t\t{` (${dailyPercent > 0 ? '+' : ''}${dailyPercent?.toFixed(2)}%)`}\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default DailyPercent;\n","import React, { useState, useEffect, useContext, useRef, useMemo, useCallback } from 'react';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport cn from 'classnames';\n\nimport { default as RfpGatewayContext } from '../../../contexts/RfpGatewayContext';\nimport { default as AppContext } from '../../../contexts/AppContext';\nimport { default as DashboardContext } from '../../../contexts/DashboardContext';\n\nimport { RFP } from '../../../gateways/RfpGateway/rfpConstants';\nimport { MarketItem, PriceQuote } from '../../../gateways/RfpGateway/rfp.types';\nimport { default as usePromiseFactory } from '../../../utils/hooks/usePromiseFactory';\nimport { default as useObservable } from '../../../utils/hooks/useObservable';\nimport { default as useForceRerender } from '../../../utils/hooks/useForceRerender';\nimport { Optional } from '../../../utils/functions/Nullable';\n\nimport Button from '../../../shared/Button/Button';\nimport WtrPopup from '../WtrPopup/WtrPopup';\nimport Instrument from '../../features/Dashboard/Watchlist/Instrument/Instrument';\nimport { formatNumberWithCommas } from '../../features/Dashboard/Watchlist/Instrument/formattedQuoteNumber';\n\nimport { instrumentGroupProps } from '../../../utils/functions/constants';\n\nimport useShortTranslation from '../../../utils/hooks/useShortTranslation';\nimport {\n\tDEFAULT_FEED_ID,\n\tMAX_WATCHLISTS_ALLOWED,\n\tcreateNewWatchlist,\n\tMAX_INSTRUMENTS_ALLOWED_JP,\n\tMAX_INSTRUMENTS_ALLOWED,\n} from '../../../utils/functions/WatchlistUtils';\nimport usePreferredFeedId from '../../../utils/hooks/usePreferredFeedId';\nimport WatchlistsList from '../../features/Dashboard/Watchlist/Lists';\nimport CreateWatchlistButton from '../../features/Dashboard/Watchlist/CreateWatchlistButton';\nimport useGetTranslatedWLName from '../../../utils/hooks/useGetTranslatedWLName';\nimport DailyPercent from '../DailyPercent/DailyPercent';\nimport { TicketLayout, TradingPositionLimitType, TradingPositionType } from '../../../utils/functions/enums';\nimport { TradersGymContext, TradersGymContextType } from '../../../pages/TradersGym/TradersGymContext';\nimport useSaveWatchlistToPreferences from '../../../utils/hooks/watchlist/useSaveWatchlistToPreferences';\nimport useSelectedTradingAccount from '../../../utils/hooks/useSelectedTradingAccount';\nimport tradingAccountStore from '../../../store/tradingAccountStore';\nimport watchListStore from '../../../store/WatchListStore/watchListStore';\nimport InstrumentIcon from '../GroupBadge/InstrumentIcon';\nimport TradingSessionTooltip from '../Shared/TradingSessionTooltip';\nimport tradingViewStore from '../../../store/tradingViewStore';\nimport authStore from '../../../store/authStore';\nimport BidAskSpread from '../BidAskSpread/BidAskSpread';\nimport StringUtils from '../../../utils/functions/StringUtils';\n\nimport styles from './InstrumentHeader.module.scss';\n\ntype InstrumentHeaderProps = {\n\tshowButtons?: boolean;\n\tresizeHeader?: boolean;\n\theaderActions?: boolean;\n\tundock?: any;\n\tshowBidAskSpread?: boolean;\n\tbidAskSpreadData?: BidAskSpreadDataProps;\n\tonCloseButtonCLick?: () => void;\n\tredirectFromDashboard: boolean;\n};\ntype BidAskSpreadDataProps = {\n\tinstrument: PriceQuote | undefined;\n\tmarketItem: MarketItem | undefined;\n\torder: boolean;\n\ttypeOfOrder: TradingPositionType | undefined;\n\tisBidAskDisabled: boolean;\n\tticketLayout: string;\n\tcurrent: TradingPositionLimitType[] | undefined;\n};\n\nconst InstrumentHeader = React.memo(\n\t({\n\t\tshowButtons,\n\t\tresizeHeader,\n\t\theaderActions,\n\t\tundock,\n\t\tshowBidAskSpread,\n\t\tbidAskSpreadData,\n\t\tonCloseButtonCLick,\n\t\tredirectFromDashboard,\n\t}) => {\n\t\tconst saveWatchlistToPreferences = useSaveWatchlistToPreferences();\n\n\t\tconst appContext = useContext(AppContext);\n\t\tconst dashboardContext = useContext(DashboardContext);\n\t\tconst rfpGatewayContext = useContext(RfpGatewayContext);\n\t\tconst gymContext = useContext(TradersGymContext) as TradersGymContextType;\n\t\tconst { tradersGymContext } = gymContext;\n\n\t\tconst tradingMode = authStore.use.tradingMode();\n\n\t\tconst isChildWindow = appContext.isChildWindow || false;\n\t\tconst getCurrentWatchList = watchListStore.use.getCurrentWatchList();\n\t\tconst currentWatchList = getCurrentWatchList(isChildWindow);\n\t\tconst getWatchlists = watchListStore.use.getWatchlists();\n\t\tconst getSelectedWatchlist = watchListStore.use.getSelectedWatchlist();\n\t\tconst selectedWatchlist = getSelectedWatchlist(tradingMode, isChildWindow);\n\t\tconst allWatchlists = getWatchlists(tradingMode);\n\n\t\tconst promiseFactory = usePromiseFactory();\n\t\tconst forceRerender = useForceRerender();\n\t\tconst { t } = useTranslation();\n\t\tconst tt = useShortTranslation('en:');\n\n\t\tconst [openWatchlist, setOpenWatchlist] = useState(false);\n\t\tconst [create, setCreate] = useState(false);\n\t\tconst [listName, setListName] = useState('');\n\t\tconst [disabled, setDisabled] = useState(false);\n\t\tconst [currentPriceQuote, setCurrentPriceQuote] = useState>(undefined);\n\n\t\tconst subIdRef = useRef(undefined);\n\n\t\tconst [high, setHigh] = useState('0');\n\t\tconst [low, setLow] = useState('0');\n\n\t\tconst [nameError, setNameError] = useState('');\n\t\tconst [maxWatchlistsError, setMaxWatchlistsError] = useState(false);\n\t\tconst getTranslatedWLName = useGetTranslatedWLName();\n\n\t\tconst isArabic = appContext.isArabic;\n\t\tconst languageSettings = appContext.languageSettings;\n\t\tconst isSpreadBettingAccount = tradingAccountStore.use.isSpreadBetting();\n\t\tconst watchlist = dashboardContext.watchlist;\n\t\tconst marketItem = dashboardContext.selectedInstrument;\n\t\tconst marketItems = dashboardContext.marketItems;\n\t\tconst activeTradingAccount = useSelectedTradingAccount();\n\t\tconst preferredFeedId = usePreferredFeedId(activeTradingAccount);\n\t\tconst isTradersGymActive = tradersGymContext.isActive;\n\n\t\tconst traderGymPriceQuote = tradersGymContext.priceQuote;\n\t\tconst closedTicket = dashboardContext.modalToggle.closePosition;\n\t\tconst openOrderInformation = tradingViewStore.use.openOrderInformation();\n\t\tconst setOpenOrderInformation = tradingViewStore.use.setOpenOrderInformation();\n\t\tconst ticketLayout = tradingViewStore.use.ticketLayout();\n\t\tconst setDockStylesTicket = tradingViewStore.use.setDockStylesTicket();\n\n\t\tuseEffect(() => {\n\t\t\tsetDockStylesTicket(redirectFromDashboard);\n\t\t}, []);\n\n\t\tuseObservable(\n\t\t\tappContext.getPropertyChangeStream('appTheme', 'languageSettings', 'accountStats'),\n\t\t\tasync (_change) => {\n\t\t\t\tawait promiseFactory.throttle('appContext.propertyChanged', 100);\n\t\t\t\tforceRerender();\n\t\t\t}\n\t\t);\n\n\t\tuseObservable(\n\t\t\tdashboardContext.getPropertyChangeStream(\n\t\t\t\t'watchlist',\n\t\t\t\t'selectedPosition',\n\t\t\t\t'selectedInstrument',\n\t\t\t\t'marketItems',\n\t\t\t\t'tradingAccount',\n\t\t\t\t'previousDayClosePrices'\n\t\t\t),\n\t\t\tasync (_change) => {\n\t\t\t\tawait promiseFactory.throttle('dashboardContext.propertyChanged', 100);\n\t\t\t\tforceRerender();\n\t\t\t}\n\t\t);\n\n\t\tuseEffect(() => {\n\t\t\tlistName.trim().length === 0 && setNameError('');\n\t\t}, [listName]);\n\n\t\tuseEffect(() => {\n\t\t\tif (allWatchlists && allWatchlists.length >= MAX_WATCHLISTS_ALLOWED) {\n\t\t\t\treturn setDisabled(true);\n\t\t\t} else if (listName.trim().length === 0) {\n\t\t\t\treturn setDisabled(true);\n\t\t\t} else {\n\t\t\t\treturn setDisabled(false);\n\t\t\t}\n\t\t}, [listName, allWatchlists]);\n\n\t\tuseEffect(() => {\n\t\t\tif (allWatchlists && allWatchlists.length >= MAX_WATCHLISTS_ALLOWED) {\n\t\t\t\tsetMaxWatchlistsError(true);\n\t\t\t} else {\n\t\t\t\tsetMaxWatchlistsError(false);\n\t\t\t}\n\t\t}, [openWatchlist, allWatchlists]);\n\n\t\tuseEffect(() => {\n\t\t\tif (marketItem && rfpGatewayContext) {\n\t\t\t\trfpGatewayContext.send(RFP.queuePreviousDayClosePrice, { code: [marketItem.code] });\n\t\t\t}\n\t\t}, [marketItem, rfpGatewayContext]);\n\n\t\t/**\n\t\t * Checks if the instrument exists in a watchlist\n\t\t */\n\t\tconst existsInWatchlist = useCallback(() => {\n\t\t\tif (allWatchlists && marketItem) {\n\t\t\t\treturn allWatchlists.some((watchlist) => watchlist.instruments.includes(marketItem.code));\n\t\t\t}\n\t\t\treturn false;\n\t\t}, [allWatchlists, marketItem]);\n\n\t\tconst DisplayIcon = () => {\n\t\t\tconst instrumentExists = existsInWatchlist();\n\n\t\t\treturn (\n\t\t\t\t\n\t\t\t);\n\t\t};\n\n\t\tconst handleOpenWatchlistMenu = (_e: any) => {\n\t\t\t//If only 1 watchlist is present, then add or remove the instrument directly\n\t\t\tlet preferenceToUpdate = watchlist.find((list) => list._name === currentWatchList);\n\t\t\tif (allWatchlists && allWatchlists.length === 1 && marketItem && selectedWatchlist) {\n\t\t\t\tconst maxInstruments = appContext.isJapanAccount ? MAX_INSTRUMENTS_ALLOWED_JP : MAX_INSTRUMENTS_ALLOWED;\n\t\t\t\tconst isMaxedOut = selectedWatchlist.instruments.length >= maxInstruments;\n\t\t\t\tif (preferenceToUpdate) {\n\t\t\t\t\tconst isInstrumentExistsInWatchlist = selectedWatchlist.instruments.includes(marketItem.code);\n\t\t\t\t\tif (!isInstrumentExistsInWatchlist && !isMaxedOut) {\n\t\t\t\t\t\tpreferenceToUpdate.instrument = [...preferenceToUpdate.instrument, { _code: marketItem.code }];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpreferenceToUpdate.instrument = preferenceToUpdate.instrument.filter(\n\t\t\t\t\t\t\t(symbol) => symbol._code !== marketItem.code\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tdashboardContext.watchlist = watchlist;\n\t\t\t\t\tsaveWatchlistToPreferences(dashboardContext.watchlist, isSpreadBettingAccount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsetOpenWatchlist(!openWatchlist);\n\t\t\t\tsetCreate(false);\n\t\t\t}\n\t\t};\n\n\t\tconst handleCreateWatchlist = () => {\n\t\t\tif (!maxWatchlistsError) {\n\t\t\t\tsetCreate(!create);\n\t\t\t\tsetOpenWatchlist(!openWatchlist);\n\t\t\t}\n\t\t};\n\n\t\tconst handleInputChange = (e: any) => {\n\t\t\tsetListName(e.target.value);\n\t\t\tnameError && setNameError('');\n\t\t};\n\n\t\tconst handleCancelWatchlist = () => {\n\t\t\tsetCreate(false);\n\t\t\tsetNameError('');\n\t\t\tsetListName('');\n\t\t};\n\n\t\tconst verifyWatchlistName = () => {\n\t\t\tif (allWatchlists) {\n\t\t\t\tconst validateName = allWatchlists.some((watchlist) => watchlist.name === listName.trim());\n\t\t\t\tif (!validateName) {\n\t\t\t\t\tsetNameError('');\n\t\t\t\t\thandleAddNewWatchlist();\n\t\t\t\t} else {\n\t\t\t\t\tsetNameError(t('wtr:NAME_IN_USE'));\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tconst handleAddNewWatchlist = () => {\n\t\t\tif (listName.trim().length > 0 && allWatchlists && marketItem && allWatchlists.length < MAX_WATCHLISTS_ALLOWED) {\n\t\t\t\tconst feedId = StringUtils.isNullOrEmpty(preferredFeedId) ? DEFAULT_FEED_ID : preferredFeedId;\n\t\t\t\tconst newWatchlistEntry = createNewWatchlist(listName.trim(), feedId, [{ _code: marketItem.code }]);\n\t\t\t\tdashboardContext.watchlist.push(newWatchlistEntry);\n\t\t\t\tsaveWatchlistToPreferences(dashboardContext.watchlist);\n\t\t\t\tsetListName('');\n\t\t\t\tsetCreate(!create);\n\t\t\t\tsetOpenWatchlist(false);\n\t\t\t}\n\t\t};\n\n\t\tuseEffect(() => {\n\t\t\tif (traderGymPriceQuote) {\n\t\t\t\tsetCurrentPriceQuote(traderGymPriceQuote);\n\t\t\t}\n\t\t}, [traderGymPriceQuote]);\n\n\t\tuseEffect(() => {\n\t\t\tif (marketItem && rfpGatewayContext) {\n\t\t\t\t// unsubscribe previous quotes\n\t\t\t\tif (subIdRef.current) {\n\t\t\t\t\trfpGatewayContext.unsubscribePriceQuote(subIdRef.current);\n\t\t\t\t}\n\n\t\t\t\t// subscribe quotes\n\t\t\t\tsubIdRef.current = rfpGatewayContext.subscribePriceQuote(marketItem.feedId, [marketItem.code], (priceQuote) => {\n\t\t\t\t\tif (!isTradersGymActive) {\n\t\t\t\t\t\tsetCurrentPriceQuote(priceQuote);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn () => {\n\t\t\t\t// unsubscribe quotes on unmount\n\t\t\t\tif (rfpGatewayContext && subIdRef.current) {\n\t\t\t\t\trfpGatewayContext.unsubscribePriceQuote(subIdRef.current);\n\t\t\t\t\tsubIdRef.current = undefined;\n\t\t\t\t}\n\t\t\t};\n\t\t}, [marketItem, rfpGatewayContext]);\n\n\t\tuseEffect(() => {\n\t\t\tif (currentPriceQuote && marketItem) {\n\t\t\t\tsetHigh(currentPriceQuote.h.toFixed(marketItem.decPrec));\n\t\t\t\tsetLow(currentPriceQuote.l.toFixed(marketItem.decPrec));\n\t\t\t}\n\t\t}, [currentPriceQuote]);\n\n\t\tconst tooltip = useMemo(() => {\n\t\t\tlet watchlistsNames: string[] = [];\n\t\t\tlet inWatchlist: boolean = false;\n\t\t\tif (allWatchlists && marketItem) {\n\t\t\t\tinWatchlist = existsInWatchlist();\n\t\t\t\tif (inWatchlist) {\n\t\t\t\t\twatchlistsNames = [\n\t\t\t\t\t\t...allWatchlists\n\t\t\t\t\t\t\t.filter((watchlist) => watchlist.instruments.includes(marketItem.code))\n\t\t\t\t\t\t\t.map((watchlist) => watchlist.name),\n\t\t\t\t\t];\n\t\t\t\t\twatchlistsNames.forEach((watchlistName, index, thisArray) => {\n\t\t\t\t\t\tthisArray[index] = getTranslatedWLName(watchlistName);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn inWatchlist ? (\n\t\t\t\t
\n\t\t\t\t\t{t('wtr:EXISTS_IN')} {'\"' + watchlistsNames.join(' \", \" ') + '\"'}\n\t\t\t\t
\n\t\t\t) : (\n\t\t\t\t\n\t\t\t);\n\t\t}, [marketItem, allWatchlists]);\n\n\t\tconst handleOpenInfoClick = () => {\n\t\t\tsetOpenOrderInformation(!openOrderInformation);\n\t\t};\n\n\t\treturn (\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{ticketLayout === TicketLayout.Undock &&\n\t\t\t\t\t\tredirectFromDashboard &&\n\t\t\t\t\t\t!dashboardContext.newOrderModalToggle.confirmOrder &&\n\t\t\t\t\t\t!dashboardContext.showConfirmTicket &&\n\t\t\t\t\t\t!closedTicket && (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t\t\t{marketItem && (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{marketItem.grp && t(instrumentGroupProps[marketItem.grp]?.name)}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{marketItem && marketItem.displayName}\n\t\t\t\t\t\t\t\t{marketItem && }\n\n\t\t\t\t\t\t\t\t{!isTradersGymActive && (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{/* Full instrument name */}\n\t\t\t\t\t\t\t
{marketItem && marketItem.fullName}
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t{headerActions ? (\n\t\t\t\t\t\t!isTradersGymActive && (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t setOpenWatchlist(false)}\n\t\t\t\t\t\t\t\t\tclassName={styles.popupContainer}\n\t\t\t\t\t\t\t\t\ton=\"click\"\n\t\t\t\t\t\t\t\t\tposition=\"bottom right\"\n\t\t\t\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{tooltip}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)\n\t\t\t\t\t) : (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{!openOrderInformation &&\n\t\t\t\t\t\t\t\t!dashboardContext.newOrderModalToggle.confirmOrder &&\n\t\t\t\t\t\t\t\t!dashboardContext.showConfirmTicket && (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ticketLayout === TicketLayout.Undock ? t('en:ATTACH') : t('en:DETACH')}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t{ticketLayout === TicketLayout.Undock && (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\t{create && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{tt('CREATE_WATCHLIST')}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{t('wtr:WATCHLIST_NAME')}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{nameError.length > 0 &&
{nameError}
}\n\t\t\t\t\t\t\t\t\t{listName.trim().length}/20\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t{!openOrderInformation &&\n\t\t\t\t\tshowBidAskSpread &&\n\t\t\t\t\tbidAskSpreadData &&\n\t\t\t\t\tbidAskSpreadData.marketItem &&\n\t\t\t\t\t!bidAskSpreadData.current && (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{tt('LOW')}:{' '}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{isNaN(+low.toString()?.replaceAll(',', ''))\n\t\t\t\t\t\t\t\t? t('wtr:NA')\n\t\t\t\t\t\t\t\t: formatNumberWithCommas(parseFloat(low), marketItem?.decPrec || 0, languageSettings)}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{tt('HIGH')}:{' '}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{isNaN(+high.toString()?.replaceAll(',', ''))\n\t\t\t\t\t\t\t\t? t('wtr:NA')\n\t\t\t\t\t\t\t\t: formatNumberWithCommas(parseFloat(high), marketItem?.decPrec || 0, languageSettings)}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t{showButtons && marketItems && marketItem && (\n\t\t\t\t\t
\n\t\t\t\t\t\t console.log('clicked')}\n\t\t\t\t\t\t\tbuttonsClass={styles.bidAskSpreadButtons}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t\n\t\t);\n\t},\n\t(prevProps, nextProps) => {\n\t\tconst keys: Array = ['showButtons', 'resizeHeader', 'headerActions', 'undock'];\n\t\treturn keys.every((key) => prevProps[key] === nextProps[key]);\n\t}\n);\n\nexport default InstrumentHeader;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"infoElement\":\"InfoElement_infoElement__1J1Mw\",\"infoElementUndock\":\"InfoElement_infoElementUndock__L-LIx\",\"infoGroup\":\"InfoElement_infoGroup__3EhH3\",\"label\":\"InfoElement_label__cLFs6\",\"value\":\"InfoElement_value__Rv-mx\",\"red\":\"InfoElement_red__1FI2c\",\"green\":\"InfoElement_green__2ZQzZ\",\"popupText\":\"InfoElement_popupText__2LKeo\",\"icon\":\"InfoElement_icon__3V1ra\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"NotificationModal_container__1nnce\",\"backdrop\":\"NotificationModal_backdrop__JK8gO\",\"notificationModal\":\"NotificationModal_notificationModal__1Gkg0\",\"closeIconWrapper\":\"NotificationModal_closeIconWrapper__2nf90\",\"contentWrapper\":\"NotificationModal_contentWrapper__1jLcZ\",\"header\":\"NotificationModal_header__2QP4r\",\"content\":\"NotificationModal_content__26gOM\",\"footer\":\"NotificationModal_footer__3C9ik\",\"dialog\":\"NotificationModal_dialog__3H57d\",\"error\":\"NotificationModal_error__3-Gdr\",\"title\":\"NotificationModal_title__FFZWx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"reconnectModal\":\"ReconnectModal_reconnectModal__1aLVT\",\"modalHeader\":\"ReconnectModal_modalHeader__FwUup\",\"modalBody\":\"ReconnectModal_modalBody__3JMuD\",\"modalText\":\"ReconnectModal_modalText__yr6RI\",\"modalFooter\":\"ReconnectModal_modalFooter__3IcSx\",\"button\":\"ReconnectModal_button__1DjYD\",\"iconContainer\":\"ReconnectModal_iconContainer__1U8yp\",\"loadingIcon\":\"ReconnectModal_loadingIcon__1jOtF\",\"failedIcon\":\"ReconnectModal_failedIcon__1MpMd\"};","import React, { FC, CSSProperties } from 'react';\nimport cn from 'classnames';\nimport { CSS } from '@dnd-kit/utilities';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Header, flexRender, Table } from '@tanstack/react-table';\n\nimport {\n\tPositionTableItem,\n\tTableMarketItem,\n} from '../../../../../utils/functions/marketItems/marketItemGroupMapFormatter';\n\nimport styles from '../MarketsTable.module.scss';\n\ninterface DraggableTableHeaderProps {\n\theader: Header;\n\ttable: Table;\n}\n\nconst DraggableTableHeader: FC = ({ header, table }) => {\n\tconst { attributes, isDragging, listeners, transform } = useSortable({\n\t\tid: header.column.id,\n\t});\n\n\tconst style: CSSProperties = {\n\t\topacity: isDragging ? 0.8 : 1,\n\t\tposition: 'relative',\n\t\ttransform: CSS.Translate.toString(transform), // translate instead of transform to avoid squishing\n\t\ttransition: 'width transform 0.2s ease-in-out',\n\t\twhiteSpace: 'nowrap',\n\t\twidth: header.column.getSize(),\n\t\tzIndex: isDragging ? 1 : 0,\n\t};\n\n\tif (header.column.id === 'settings' || header.column.id === 'close') {\n\t\treturn (\n\t\t\t\n\t\t\t\t{header.isPlaceholder ? null : (\n\t\t\t\t\t
\n\t\t\t\t\t\t{flexRender(header.column.columnDef.header, header.getContext())}\n\t\t\t\t\t
\n\t\t\t\t)}\n\n\t\t\t\t header.column.resetSize(),\n\t\t\t\t\t\tonMouseDown: header.getResizeHandler(),\n\t\t\t\t\t\tonTouchStart: header.getResizeHandler(),\n\t\t\t\t\t\tclassName: `${styles.resizer} ${table.options.columnResizeDirection === 'ltr' ? styles.ltr : styles.rtl} ${\n\t\t\t\t\t\t\theader.column.getIsResizing() && styles.isResizing\n\t\t\t\t\t\t}`,\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\n\t\t);\n\t}\n\n\tconst columnSizingHandler = (thElem: HTMLTableCellElement | null, table: any, column: any) => {\n\t\tif (!thElem) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If you don't do that, there will be an infinite loop. We update the value in state only if the value has actually changed.\n\t\tif (Math.round(table.getState().columnSizing[column.id]) === Math.round(thElem.getBoundingClientRect().width)) {\n\t\t\treturn;\n\t\t}\n\n\t\ttable.setColumnSizing((prevSizes: any) => ({\n\t\t\t...prevSizes,\n\t\t\t// 100% accurate float-point width, even if table content is loaded async\n\t\t\t[column.id]: thElem.getBoundingClientRect().width,\n\t\t}));\n\t};\n\n\treturn (\n\t\t columnSizingHandler(thElem, table, header.column),\n\t\t\t\tcolSpan: header.colSpan,\n\t\t\t\tclassName: cn(styles.tableHeader),\n\t\t\t\tstyle: {\n\t\t\t\t\t...style,\n\t\t\t\t},\n\t\t\t}}\n\t\t>\n\t\t\t
\n\t\t\t\t{header.isPlaceholder ? null : (\n\t\t\t\t\t
\n\t\t\t\t\t\t{flexRender(header.column.columnDef.header, header.getContext())}\n\t\t\t\t\t\t \n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\tasc: ' ↑',\n\t\t\t\t\t\t\tdesc: ' ↓',\n\t\t\t\t\t\t}[header.column.getIsSorted() as string] ?? null}\n\t\t\t\t\t
\n\t\t\t\t)}\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\n\t\t\t header.column.resetSize(),\n\t\t\t\t\tonMouseDown: header.getResizeHandler(),\n\t\t\t\t\tonTouchStart: header.getResizeHandler(),\n\t\t\t\t\tclassName: `${styles.resizer} ${table.options.columnResizeDirection === 'ltr' ? styles.ltr : styles.rtl} ${\n\t\t\t\t\t\theader.column.getIsResizing() && styles.isResizing\n\t\t\t\t\t}`,\n\t\t\t\t}}\n\t\t\t/>\n\t\t\n\t);\n};\nexport default DraggableTableHeader;\n","import React, { FC, CSSProperties } from 'react';\nimport cn from 'classnames';\nimport { CSS } from '@dnd-kit/utilities';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { Cell, flexRender } from '@tanstack/react-table';\n\nimport { TableMarketItem } from '../../../../../utils/functions/marketItems/marketItemGroupMapFormatter';\n\nimport styles from '../MarketsTable.module.scss';\n\ninterface DragAlongCellProps {\n\tcell: Cell;\n\thandleSelectedInstrument: (cell: Cell) => void;\n}\n\nconst DragAlongCell: FC = ({ cell, handleSelectedInstrument }) => {\n\tconst { isDragging, setNodeRef, transform } = useSortable({\n\t\tid: cell.column.id,\n\t});\n\n\tconst style: CSSProperties = {\n\t\topacity: isDragging ? 0.8 : 1,\n\t\tposition: 'relative',\n\t\ttransform: CSS.Translate.toString(transform),\n\t\ttransition: 'width transform 0.2s ease-in-out',\n\t\twidth: cell.column.getSize(),\n\t\tzIndex: isDragging ? 1 : 0,\n\t\twhiteSpace: 'nowrap',\n\t\toverflow: 'hidden',\n\t\ttextOverflow: 'ellipsis',\n\t\tlineHeight: '1.5',\n\t};\n\n\treturn (\n\t\t handleSelectedInstrument(cell),\n\t\t\t}}\n\t\t>\n\t\t\t{flexRender(cell.column.columnDef.cell, cell.getContext())}\n\t\t\n\t);\n};\n\nexport default DragAlongCell;\n","export { default } from './WtrModal';\n","import React, { createContext, FC, ReactNode, useContext, useEffect, useState } from 'react';\n\nimport { TradersGymContext, TradersGymContextType } from '../pages/TradersGym/TradersGymContext';\nimport useSelectedTradingAccount from '../utils/hooks/useSelectedTradingAccount';\nimport { AccountMarketType, Instrument, TradingAccount, TTMarginRuleItem } from '../gateways/RfpGateway/rfp.types';\n\nimport usePromiseFactory from '../utils/hooks/usePromiseFactory';\nimport useForceRerender from '../utils/hooks/useForceRerender';\nimport useObservable from '../utils/hooks/useObservable';\n\nimport { RFP } from '../gateways/RfpGateway/rfpConstants';\n\nimport UniqueId from '../utils/functions/uniqueId';\nimport orderStore from '../store/OrderStore/orderStore';\n\nimport MarginRulesContext from './MarginRulesContext';\nimport DashboardContext from './DashboardContext';\nimport RfpGatewayContext from './RfpGatewayContext';\n\ninterface TTMarginRuleItemToApply extends TTMarginRuleItem {\n\trndLot: number;\n}\n\ninterface MarginRequirementsContextProps {\n\tselectedAccountNumber?: number;\n\tdoesRulesApply: boolean;\n\tmarginRequirementsToApply?: TTMarginRuleItemToApply;\n}\n\nconst ACCOUNT_MARKET_TYPES_NOT_ALLOWED = [AccountMarketType.Japan, AccountMarketType.JapanSpread];\nconst MarginRequirementsContext = createContext(undefined);\n\nexport const MarginRequirementsContextProvider: FC<{\n\tchildren: ReactNode;\n}> = ({ children }) => {\n\tconst gymContext = useContext(TradersGymContext) as TradersGymContextType;\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst rfpGatewayContext = useContext(RfpGatewayContext);\n\tconst marginRulesContext = useContext(MarginRulesContext);\n\tconst promiseFactory = usePromiseFactory();\n\tconst forceRerender = useForceRerender();\n\tconst { tradersGymContext } = gymContext;\n\tconst realTradingAccount = useSelectedTradingAccount();\n\tconst gymTradingAccount = tradersGymContext.gymTradingAccount;\n\tconst [selectedTradingAccount, setSelectedTradingAccount] = useState(realTradingAccount);\n\tconst [doesRulesApply, setDoesRulesApply] = useState(false);\n\tconst [marginRequirementsToApply, setMarginRequirementsToApply] = useState();\n\tconst { marginRules } = marginRulesContext;\n\tconst current = orderStore((state) => state.current);\n\n\tconst detailedInfo = dashboardContext.detailedInformation;\n\tconst selectedMarketItem = dashboardContext.selectedInstrument;\n\n\t// TODO: Refactor the following all over the application into the useSelectedTradingAccount hook\n\tuseEffect(() => {\n\t\tif (tradersGymContext.isActive && gymTradingAccount) {\n\t\t\tsetSelectedTradingAccount(gymTradingAccount);\n\t\t} else {\n\t\t\tsetSelectedTradingAccount(realTradingAccount);\n\t\t}\n\t}, [realTradingAccount, gymTradingAccount, tradersGymContext.isActive]);\n\n\tuseObservable(\n\t\tdashboardContext.getPropertyChangeStream('selectedInstrument', 'detailedInformation'),\n\t\tasync (_change) => {\n\t\t\tawait promiseFactory.throttle('dashboardContext.propertyChanged', 100);\n\t\t\tforceRerender();\n\t\t}\n\t);\n\n\t// Had to implement it this way because the current architecture doesn't allow to use proper simple React Contexts,\n\t// or connect to Zustand store in the websocket subscriptions handler file\n\tuseObservable(\n\t\tmarginRulesContext.getPropertyChangeStream('accountId', 'marginRules', 'futureMarginReqId', 'futureMarginValue'),\n\t\tasync () => {\n\t\t\tawait promiseFactory.throttle('marginRulesContext.propertyChanged', 100);\n\t\t\tforceRerender();\n\t\t}\n\t);\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tmarginRulesContext.resetFutureMargin();\n\t\t};\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (\n\t\t\tselectedTradingAccount?.accountType === 'GYM' ||\n\t\t\t(selectedTradingAccount &&\n\t\t\t\tselectedTradingAccount.accountMarketType &&\n\t\t\t\tACCOUNT_MARKET_TYPES_NOT_ALLOWED.includes(selectedTradingAccount.accountMarketType))\n\t\t) {\n\t\t\tsetDoesRulesApply(false);\n\t\t\tmarginRulesContext.reset();\n\t\t\treturn;\n\t\t}\n\n\t\tif (rfpGatewayContext && selectedTradingAccount?.accountNumber && selectedTradingAccount?.isLoggedIn) {\n\t\t\trfpGatewayContext.send(RFP.requestTTMarginRules, {\n\t\t\t\taccountId: selectedTradingAccount.accountNumber,\n\t\t\t});\n\t\t}\n\t}, [selectedTradingAccount, rfpGatewayContext]);\n\n\tuseEffect(() => {\n\t\tif (selectedTradingAccount?.id && selectedTradingAccount?.accountType !== 'GYM') {\n\t\t\tconst selectedAccountDetailedInformation = detailedInfo.find(\n\t\t\t\t({ account }) => account === selectedTradingAccount?.id\n\t\t\t);\n\n\t\t\tconst code = selectedMarketItem?.code;\n\t\t\tif (selectedAccountDetailedInformation && code) {\n\t\t\t\tconst matchingRule = marginRules.find((rule) => rule.instruments.includes(code));\n\t\t\t\tconst tradingInstrument: Instrument | undefined = selectedAccountDetailedInformation.instruments[code];\n\t\t\t\tconst rndLot = tradingInstrument?.rndLot || 0;\n\n\t\t\t\tsetDoesRulesApply(!!matchingRule);\n\t\t\t\tconst requirementsToApply = matchingRule && ({ ...matchingRule, rndLot } as TTMarginRuleItemToApply);\n\t\t\t\tsetMarginRequirementsToApply(requirementsToApply);\n\t\t\t}\n\t\t}\n\t}, [detailedInfo, selectedMarketItem?.code, marginRules]);\n\n\tuseEffect(() => {\n\t\tif (doesRulesApply) {\n\t\t\tif (\n\t\t\t\trfpGatewayContext &&\n\t\t\t\tselectedTradingAccount?.accountNumber &&\n\t\t\t\tselectedMarketItem?.code &&\n\t\t\t\tcurrent.amountInfo?.amount !== undefined\n\t\t\t) {\n\t\t\t\tconst payload = {\n\t\t\t\t\tacctId: selectedTradingAccount?.accountNumber,\n\t\t\t\t\tsymbol: selectedMarketItem?.code,\n\t\t\t\t\treqId: UniqueId(),\n\t\t\t\t\tamount: current.amountInfo?.amount,\n\t\t\t\t\tside: marginRulesContext.getPositionSideValue(current.side),\n\t\t\t\t};\n\n\t\t\t\trfpGatewayContext.send(RFP.requestFutureMargin, payload);\n\t\t\t}\n\t\t} else {\n\t\t\tmarginRulesContext.resetFutureMargin();\n\t\t}\n\t}, [doesRulesApply, current.amountInfo?.amount, current.side]);\n\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n\nexport default MarginRequirementsContext;\n","import {useEffect, useState} from 'react';\n\nimport {TradingAccount} from '../../gateways/RfpGateway/rfp.types';\n\nconst usePreferredFeedId = (account?: TradingAccount) => {\n const [preferredFeedId, setPreferredFeedId] = useState('');\n\n useEffect(() => {\n if (!account) return;\n setPreferredFeedId(account.preferredFeed);\n }, [account]);\n\n return preferredFeedId === 'TIFeed' ? 'VTFeed' : preferredFeedId;\n};\n\nexport default usePreferredFeedId;\n","import React from 'react';\n\nimport styles from './ToastNotificationContent.module.scss';\n\nexport type ToastNotificationType = 'success' | 'danger' | 'fatal' | undefined;\n\ninterface IToastNotificationContent {\n\ttype: ToastNotificationType;\n\tmessage: string;\n\ttitle?: string;\n}\n\nconst TYPE_TO_CLASS_SUFFIX_MAP = {\n\tsuccess: 'Info',\n\tdanger: 'Error',\n\tfatal: 'Fatal',\n};\n\nconst ToastNotificationContent = ({ type = 'success', title, message }: IToastNotificationContent) => (\n\t
\n\t\t
\n\t\t
\n\t\t\t{title && (\n\t\t\t\t
\n\t\t\t\t\t
{title}
\n\t\t\t\t
\n\t\t\t)}\n\t\t\t
\n\t\t\t\t

{message}

\n\t\t\t
\n\t\t
\n\t
\n);\n\nexport default ToastNotificationContent;\n","import React from 'react';\nimport { Store } from 'react-notifications-component';\n\nimport ToastNotificationContent, {\n\tToastNotificationType,\n} from '../../views/components/ToastNotificationContent/ToastNotificationContent';\n\nexport const addToastNotification = (\n\ttype: ToastNotificationType,\n\tmessage: string,\n\ttitle?: string,\n\tduration: number = 5000\n): string => {\n\tconst notificationId = Store.addNotification({\n\t\ttype: type === 'fatal' ? 'danger' : type,\n\t\tinsert: 'top',\n\t\tcontainer: 'top-right',\n\t\tcontent: ,\n\t\tanimationIn: ['animate__animated', 'animate__faster', 'animate__slideInRight'],\n\t\tanimationOut: ['animate__animated', 'animate__slideOutRight'],\n\t\tdismiss: {\n\t\t\tduration,\n\t\t\tshowIcon: true,\n\t\t},\n\t});\n\n\tsetTimeout(() => {\n\t\t// Make sure the notification disappears\n\t\tStore.removeNotification(notificationId);\n\t}, duration);\n\n\treturn notificationId;\n};\n\nexport const removeToastNotification = (toastNotificationId: string) => {\n\tStore.removeNotification(toastNotificationId);\n};\n","import React, { FC } from 'react';\n\nimport quoteStore from '../../../../../store/QuoteStore/quoteStore';\n\nexport enum LowOrHighType {\n\tLow = 'low',\n\tHigh = 'high',\n}\n\ninterface LowProps {\n\tmarketItemCode: string;\n\ttype: LowOrHighType;\n}\n\nconst LowOrHigh: FC = ({ marketItemCode, type }): JSX.Element => {\n\tconst quote = quoteStore((state) => state.quotes[marketItemCode]);\n\n\tif (!quote || !quote.currentQuote) {\n\t\treturn
0
;\n\t}\n\n\treturn (\n\t\t
\n\t\t\t{type === LowOrHighType.Low\n\t\t\t\t? isNaN(quote.currentQuote.l)\n\t\t\t\t\t? 'N/A'\n\t\t\t\t\t: String(quote.currentQuote.l)\n\t\t\t\t: isNaN(quote.currentQuote.h)\n\t\t\t\t? 'N/A'\n\t\t\t\t: String(quote.currentQuote.h)}\n\t\t
\n\t);\n};\n\nexport default LowOrHigh;\n","import React, { FC, useContext } from 'react';\nimport moment from 'moment/moment';\nimport { useTranslation } from 'react-i18next';\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\n\nimport AppContext from '../../../../../contexts/AppContext';\n\nimport quoteStore from '../../../../../store/QuoteStore/quoteStore';\n\nimport { formatNumberWithCommas } from '../../../Dashboard/Watchlist/Instrument/formattedQuoteNumber';\n\nimport { MarketItem } from '../../../../../gateways/RfpGateway/rfp.types';\n\nimport styles from '../MarketsTable.module.scss';\n\nexport enum SellOrBuyType {\n\tSell = 'sell',\n\tBuy = 'buy',\n}\n\ninterface SellOrBuyButtonProps {\n\tmarketItem: MarketItem;\n\ttype: SellOrBuyType;\n}\n\nconst SellOrBuyButton: FC = ({ marketItem, type }): JSX.Element => {\n\tconst appContext = useContext(AppContext);\n\tconst languageSettings = appContext.languageSettings;\n\tconst { t } = useTranslation();\n\tconst quote = quoteStore((state) => state.quotes[marketItem && marketItem.code]);\n\n\tconst addCommas = (current: number | string, decimalPrecision: number) => {\n\t\tconst decPrec = current === 0 ? 0 : decimalPrecision;\n\t\treturn formatNumberWithCommas(current, decPrec, languageSettings);\n\t};\n\n\tif (!marketItem) {\n\t\treturn
;\n\t}\n\n\treturn (\n\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(`en:${type === SellOrBuyType.Sell ? 'SELL_ACTION' : 'BUY_ACTION'}`)}{' '}\n\t\t\t\t\t\t\t{marketItem.code.replace('_SB', '')}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{quote && quote.currentQuote && quote.currentQuote.t\n\t\t\t\t\t\t\t\t? moment(quote.currentQuote.t).format('DD MMM YY H:mm:ss')\n\t\t\t\t\t\t\t\t: ''}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t}\n\t\t>\n\t\t\t{type === SellOrBuyType.Buy ? (\n\t\t\t\t
0 ? styles.typeButton : styles.testButton}>\n\t\t\t\t\t
\n\t\t\t\t\t\t{quote && quote.currentQuote ? addCommas(quote.currentQuote.a, marketItem.decPrec) : 0}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t) : (\n\t\t\t\t
0 ? styles.typeButton : styles.testButton}>\n\t\t\t\t\t
\n\t\t\t\t\t\t{quote && quote.currentQuote ? addCommas(quote.currentQuote.b, marketItem.decPrec) : 0}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default SellOrBuyButton;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalActivate\":\"Signals_modalActivate__3Y6-N\",\"modalFooter\":\"Signals_modalFooter__mMmVa\",\"modalActionButtons\":\"Signals_modalActionButtons__36GsH\",\"modalButton\":\"Signals_modalButton__rydJh\",\"buttonsContainer\":\"Signals_buttonsContainer__QPHTy\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"playerModal\":\"Tutorials_playerModal__1n1O3\",\"container\":\"Tutorials_container__1_IcP\",\"list\":\"Tutorials_list__1xRPC\",\"videoArticle\":\"Tutorials_videoArticle__113uG\",\"descriptionWrapper\":\"Tutorials_descriptionWrapper__1NF52\",\"image\":\"Tutorials_image__226UK\",\"headline\":\"Tutorials_headline__1qkgC\",\"date\":\"Tutorials_date__20ziJ\",\"description\":\"Tutorials_description__2AC3s\",\"loadingTutorials\":\"Tutorials_loadingTutorials__2bXq8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modal\":\"ClosedTicketModal_modal__MIvYL\",\"modalHeader\":\"ClosedTicketModal_modalHeader__3DbvK\",\"modalTitle\":\"ClosedTicketModal_modalTitle__v7_Yc\",\"modalBody\":\"ClosedTicketModal_modalBody__2l6OM\",\"closeIcon\":\"ClosedTicketModal_closeIcon__1L52i\",\"pL\":\"ClosedTicketModal_pL__Tqwxz\",\"date\":\"ClosedTicketModal_date__lvTuR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"SignalsFilter_container__1a9Hh\",\"easeInAnimation\":\"SignalsFilter_easeInAnimation__3iTh5\",\"inAnimation\":\"SignalsFilter_inAnimation__1MvOl\",\"easeOutAnimation\":\"SignalsFilter_easeOutAnimation__2N3zz\",\"outAnimation\":\"SignalsFilter_outAnimation__1iz5q\",\"label\":\"SignalsFilter_label__3n-ym\",\"padded\":\"SignalsFilter_padded__1GRet\",\"slider\":\"SignalsFilter_slider__4WlcG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"titleContainer\":\"NewWatchlistsList_titleContainer__2H8qN\",\"titleWatchlist\":\"NewWatchlistsList_titleWatchlist__2QMOw\",\"watchlistContainer\":\"NewWatchlistsList_watchlistContainer__221y3\",\"watchlistItem\":\"NewWatchlistsList_watchlistItem__1NhBC\",\"itemContainer\":\"NewWatchlistsList_itemContainer__1rUNR\",\"maxItemContainer\":\"NewWatchlistsList_maxItemContainer__1l5rk\",\"addInstrumentContainer\":\"NewWatchlistsList_addInstrumentContainer__1IRBn\",\"addToWatchlistIcon\":\"NewWatchlistsList_addToWatchlistIcon__nGDfk\",\"existsInWatchlistIcon\":\"NewWatchlistsList_existsInWatchlistIcon__2pN5G\",\"watchlistIcon\":\"NewWatchlistsList_watchlistIcon__22vwN\",\"maxErrorMessage\":\"NewWatchlistsList_maxErrorMessage__wgKc4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"AccountStatusCTA_button__4LQC4\",\"sm\":\"AccountStatusCTA_sm__28Qh-\",\"md\":\"AccountStatusCTA_md__IZr1n\",\"lg\":\"AccountStatusCTA_lg__1lcRL\",\"fluid\":\"AccountStatusCTA_fluid__aUDbG\",\"buttonLabel\":\"AccountStatusCTA_buttonLabel__2ArgJ\",\"primary\":\"AccountStatusCTA_primary__3hroN\",\"danger\":\"AccountStatusCTA_danger__G5Rwh\",\"outline\":\"AccountStatusCTA_outline__3nZjW\",\"secondary\":\"AccountStatusCTA_secondary__iNlPA\",\"disabled\":\"AccountStatusCTA_disabled__1xkvV\",\"outlineDisabled\":\"AccountStatusCTA_outlineDisabled__Z8_wq\",\"smallFont\":\"AccountStatusCTA_smallFont__3-G2e\",\"fullWidth\":\"AccountStatusCTA_fullWidth__2RkSr\",\"fullHeight\":\"AccountStatusCTA_fullHeight__30wbe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Item_container__3Tx51\",\"iconContainer\":\"Item_iconContainer__OqPBM\",\"itemDisabled\":\"Item_itemDisabled__3G0VV\",\"itemLoading\":\"Item_itemLoading__3ubgS\",\"icon\":\"Item_icon__3Ky6Z\",\"iconDisabled\":\"Item_iconDisabled__1czYm\",\"iconLoading\":\"Item_iconLoading__17xY-\",\"item\":\"Item_item__Sj8ax\",\"active\":\"Item_active__3yXTQ\",\"indicator\":\"Item_indicator__HSc2X\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Checkbox_container__sDrBs\",\"text\":\"Checkbox_text__2fCPa\",\"label\":\"Checkbox_label__vjtzO\",\"constrainedLabel\":\"Checkbox_constrainedLabel__2fpzD\",\"icon\":\"Checkbox_icon__23U6i\",\"input\":\"Checkbox_input__22VnQ\",\"unCheckedIcon\":\"Checkbox_unCheckedIcon__3oY2T\",\"checkedIcon\":\"Checkbox_checkedIcon__CWNEb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalDialog\":\"CurrencyDetails_modalDialog__1h3X6\",\"modalHeader\":\"CurrencyDetails_modalHeader__2fLSU\",\"modalFooter\":\"CurrencyDetails_modalFooter__-aPSe\",\"modalContent\":\"CurrencyDetails_modalContent__2sZPM\",\"tierInfoContainer\":\"CurrencyDetails_tierInfoContainer__GlXR-\",\"tierInfo\":\"CurrencyDetails_tierInfo__2IcVz\",\"viewDetails\":\"CurrencyDetails_viewDetails__BXSfm\",\"detailsModalHeader\":\"CurrencyDetails_detailsModalHeader__2ZFKD\",\"wrapper\":\"CurrencyDetails_wrapper__2x9nN\",\"title\":\"CurrencyDetails_title__xi2jn\",\"backButton\":\"CurrencyDetails_backButton__2kEYe\",\"confirmModalHeader\":\"CurrencyDetails_confirmModalHeader__37GYa\",\"modalBody\":\"CurrencyDetails_modalBody__3S--r\",\"detailsModalBody\":\"CurrencyDetails_detailsModalBody__RdKRZ\",\"scroll\":\"CurrencyDetails_scroll__2pjl0\",\"instrumentGroupContainer\":\"CurrencyDetails_instrumentGroupContainer__2NaF2\",\"groupName\":\"CurrencyDetails_groupName__IFhP0\",\"tilesContainer\":\"CurrencyDetails_tilesContainer__2eKAu\",\"tableContainer\":\"CurrencyDetails_tableContainer__1YABW\"};","import React, { useContext } from 'react';\nimport { Dropdown as SemanticUiDropdown } from 'semantic-ui-react';\n\nimport AppContext from '../../../contexts/AppContext';\nimport './WtrDropdown.module.scss';\n\nconst WtrDropdown = ({ ...rest }) => {\n\tconst { appTheme } = useContext(AppContext);\n\n\trest.className = `${rest.className || ''} ${appTheme}`;\n\n\treturn ;\n};\n\nexport default WtrDropdown;\n","import { useContext } from 'react';\n\nimport { useHistory } from 'react-router';\n\nimport AppContext from '../../contexts/AppContext';\nimport DashboardContext from '../../contexts/DashboardContext';\nimport ChartContext from '../../contexts/ChartContext';\nimport credentials from '../../setup/credentials';\nimport { closeChildWindows } from '../functions/closeChildWindows';\nimport WindowContext from '../../contexts/WindowContext';\nimport RfpGatewayContext from '../../contexts/RfpGatewayContext';\n\nimport { ACCESS_TOKEN_KEY, REFRESH_TOKEN_KEY, USER_EMAIL_KEY } from '../../setup/config';\nimport useSaveUserPreferences from '../mutations/useSaveUserPreferences';\nimport authStore from '../../store/authStore';\nimport Routes from '../../setup/routes';\nimport { resetAllStores } from '../../store/create';\n\nconst useLogout = () => {\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst chartContext = useContext(ChartContext);\n\tconst windowContext = useContext(WindowContext);\n\tconst rfpGateway = useContext(RfpGatewayContext);\n\n\tconst setIsAuthenticated = authStore.use.setIsAuthenticated();\n\tconst setIsJapanAccount = authStore.use.setIsJapanAccount();\n\tconst setIsSouthAfricaAccount = authStore.use.setIsSouthAfricaAccount();\n\n\tconst { mutate: saveUserPreference } = useSaveUserPreferences();\n\n\tconst history = useHistory();\n\n\tconst logOut = () => {\n\t\t//Close any open child windows\n\t\tcloseChildWindows(windowContext);\n\n\t\tconst promises: Promise[] = [];\n\t\t//disconnect RFP Gateway\n\t\tif (rfpGateway) {\n\t\t\tpromises.push(rfpGateway.disconnect());\n\t\t}\n\n\t\tif (appContext.userPreferences && appContext.email) {\n\t\t\tsaveUserPreference();\n\t\t}\n\n\t\t//logout user and reset session\n\t\tPromise.allSettled(promises).then(() => {\n\t\t\t// clear stored TFBO tokes as we are logging out we don't want to sign in the user again\n\t\t\tcredentials.clearCredentials();\n\t\t\t// reset contexts\n\t\t\tappContext.logout();\n\t\t\tappContext.reset();\n\t\t\tappContext.isJapanAccount = false;\n\t\t\tsetIsJapanAccount(false);\n\t\t\tsetIsSouthAfricaAccount(false);\n\t\t\tdashboardContext.reset();\n\t\t\tchartContext.reset();\n\t\t\t// reset session\n\t\t\tsessionStorage.clear();\n\t\t\tsetIsAuthenticated(false);\n\t\t\t// redirect to login\n\t\t\tlocalStorage.removeItem(ACCESS_TOKEN_KEY);\n\t\t\tlocalStorage.removeItem(REFRESH_TOKEN_KEY);\n\t\t\tlocalStorage.removeItem(USER_EMAIL_KEY);\n\n\t\t\tresetAllStores();\n\t\t\tdocument.title = 'ThinkTrader Web';\n\t\t\thistory.push(Routes.account.login);\n\t\t\t// we need to reload in order to reset zustand\n\t\t\t// https://docs.pmnd.rs/zustand/guides/how-to-reset-state\n\t\t});\n\t};\n\n\treturn logOut;\n};\n\nexport default useLogout;\n","import { useContext } from 'react';\n\nimport WindowContext from '../../../contexts/WindowContext';\nimport authStore, { AuthStore, TradingMode } from '../../../store/authStore';\nimport { closeChildWindows } from '../../functions/closeChildWindows';\n\nconst useSwitchMode = () => {\n\tconst setTradingMode = authStore((store: AuthStore) => store.setTradingMode);\n\tconst windowContext = useContext(WindowContext);\n\n\treturn (mode: TradingMode) => {\n\t\tcloseChildWindows(windowContext);\n\t\tsetTradingMode(mode);\n\t\twindow.location.reload();\n\t};\n};\n\nexport const useSwitchToDemo = () => {\n\tconst switchMode = useSwitchMode();\n\treturn () => {\n\t\tdocument.body.click();\n\t\tswitchMode(TradingMode.Demo);\n\t};\n};\n\nexport const useSwitchToLive = () => {\n\tconst switchMode = useSwitchMode();\n\treturn () => {\n\t\tdocument.body.click();\n\t\tswitchMode(TradingMode.Live);\n\t};\n};\n","import React, { useContext } from 'react';\nimport { NumericFormat } from 'react-number-format';\n\nimport { isCommaSeparator } from '../../../Watchlist/Instrument/formattedQuoteNumber';\nimport AppContext from '../../../../../../contexts/AppContext';\n\nimport styles from './FormattedNumberInput.module.scss';\n\ninterface FormattedNumberInputProps {\n\tvalue: any;\n\tonChange: (value: number) => void;\n\tdecimalPrecision?: number;\n\tdisabled?: boolean;\n\tisAllowed?: (value: number) => boolean;\n\tallowNegative?: boolean;\n}\n\nconst FormattedNumberInput = React.memo(\n\t({ value, decimalPrecision, disabled, onChange, isAllowed, allowNegative = false }: FormattedNumberInputProps) => {\n\t\tconst appContext = useContext(AppContext);\n\t\tconst { languageSettings } = appContext;\n\t\treturn (\n\t\t\t {\n\t\t\t\t\tif (!isAllowed) return true;\n\t\t\t\t\treturn isAllowed(floatValue!);\n\t\t\t\t}}\n\t\t\t\tonValueChange={({ floatValue }) => onChange(floatValue!)}\n\t\t\t/>\n\t\t);\n\t},\n\t(prevProps, nextProps) => {\n\t\treturn prevProps && nextProps && prevProps.value === nextProps.value;\n\t}\n);\n\nexport default FormattedNumberInput;\n","import React, { useState, useEffect, useContext } from 'react';\n\nimport FormattedNumberInput from '../FormattedNumberInput';\n\nimport { QuantityType } from '../../../../../../utils/functions/enums';\nimport { convertAmountToLot, convertLotToAmount } from '../../../../../../utils/functions/calculations';\nimport { MarketItem } from '../../../../../../gateways/RfpGateway/rfp.types';\nimport DashboardContext from '../../../../../../contexts/DashboardContext';\nimport orderStore from '../../../../../../store/OrderStore/orderStore';\n\ninterface LotsAwareInputProps {\n\tvalue: number;\n\tonChange: (value: number) => void;\n\troundLot?: number;\n\tmarketItem?: MarketItem;\n\tdisabled?: boolean;\n\tisAllowed?: (value: number) => boolean;\n}\n\nconst LotsAwareInput = ({ value, roundLot, disabled, onChange, isAllowed }: LotsAwareInputProps) => {\n\tconst dashboard = useContext(DashboardContext);\n\tconst quantityType = dashboard.quantityType === 'Amount' ? QuantityType.Amount : QuantityType.Lots;\n\tconst [formattedValue, setFormattedValue] = useState(value);\n\tconst [prevValue, setPrevValue] = useState(undefined);\n\tconst [prevQuantityType, setQuantityType] = useState(undefined);\n\tconst lot = orderStore((state) => state.current.amountInfo?.rndLot);\n\tconst rndLot = lot ?? roundLot;\n\n\tuseEffect(() => {\n\t\tif (prevValue !== value || prevQuantityType !== quantityType || rndLot !== undefined) {\n\t\t\tformatValue();\n\t\t\tsetPrevValue(value);\n\t\t\tsetQuantityType(quantityType);\n\t\t}\n\t}, [value, quantityType, rndLot]);\n\n\tconst formatValue = () => {\n\t\tif (quantityType && rndLot) {\n\t\t\tif (quantityType === QuantityType.Lots) {\n\t\t\t\tconst lotValue = convertAmountToLot(value, rndLot);\n\t\t\t\tsetFormattedValue(lotValue);\n\t\t\t} else {\n\t\t\t\tsetFormattedValue(value);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleChange = (value: number) => {\n\t\tif (quantityType && rndLot) {\n\t\t\tif (quantityType === QuantityType.Lots && rndLot) {\n\t\t\t\tconst amountValue = convertLotToAmount(value, rndLot);\n\t\t\t\tonChange(amountValue);\n\t\t\t} else {\n\t\t\t\tonChange(value);\n\t\t\t}\n\t\t}\n\t};\n\n\treturn (\n\t\t\n\t);\n};\n\nexport default LotsAwareInput;\n","import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport cn from 'classnames';\n\nimport { MarketItem } from '../../../../../gateways/RfpGateway/rfp.types';\n\nimport LotsAwareInput from './LotsAwareInput';\nimport styles from './NumberInput.module.scss';\nimport FormattedNumberInput from './FormattedNumberInput';\n\ninterface Incrementor {\n\tquantityValues?: number[];\n\tmin?: number;\n\tmax?: number;\n\tstep?: number;\n}\n\ninterface NumberInputProps {\n\tlotAware: boolean;\n\tincrementor: Incrementor;\n\troundLot?: number;\n\tmarketItem?: MarketItem;\n\tvalue: any;\n\tdisabled?: boolean;\n\tonChange: (value: number) => void;\n\tamountErrorClass?: boolean;\n\tdecimalPrecision?: number;\n\tallowNegativeValues?: boolean;\n}\n\nconst NumberInput = ({\n\tlotAware,\n\tincrementor,\n\tvalue,\n\troundLot,\n\tdecimalPrecision,\n\tmarketItem,\n\tdisabled,\n\tonChange,\n\tamountErrorClass,\n\tallowNegativeValues = false,\n}: NumberInputProps) => {\n\tconst incrementQuantity = () => {\n\t\tif (disabled) {\n\t\t\treturn;\n\t\t}\n\t\tconst { step } = incrementor;\n\t\tconst decPrec = marketItem?.decPrec;\n\t\tlet currentValue = 0;\n\t\tif (value && !isNaN(value)) {\n\t\t\tcurrentValue = value;\n\t\t}\n\t\tif (step) {\n\t\t\tcurrentValue = currentValue + step;\n\t\t\tonChange(+currentValue.toFixed(decPrec));\n\t\t} else {\n\t\t\tonChange(findNextValue(true, currentValue));\n\t\t}\n\t};\n\n\tconst decrementQuantity = () => {\n\t\tif (disabled) {\n\t\t\treturn;\n\t\t}\n\t\tconst { step } = incrementor;\n\t\tconst decPrec = marketItem?.decPrec;\n\t\tlet currentValue = 0;\n\t\tif (value && !isNaN(value)) {\n\t\t\tcurrentValue = value;\n\t\t}\n\t\tif (step && (allowNegativeValues || currentValue > step)) {\n\t\t\tcurrentValue = currentValue - step;\n\t\t\tonChange(+currentValue.toFixed(decPrec));\n\t\t} else {\n\t\t\tonChange(findNextValue(false, currentValue));\n\t\t}\n\t};\n\n\tconst handleIsAllowed = (value: number) => {\n\t\tif (value) {\n\t\t\tconst { max = Infinity } = incrementor;\n\t\t\treturn value >= 0 && value <= max * 10;\n\t\t}\n\t\treturn true;\n\t};\n\n\tconst findNextValue = (isIncrement: boolean, value: number) => {\n\t\tconst { quantityValues, min = -Infinity, max = Infinity } = incrementor;\n\n\t\tif (quantityValues) {\n\t\t\tif (value < min) {\n\t\t\t\treturn min;\n\t\t\t}\n\t\t\tif (value > max) {\n\t\t\t\treturn max;\n\t\t\t}\n\n\t\t\tif (isIncrement) {\n\t\t\t\treturn quantityValues.find((element) => element > value) ?? max;\n\t\t\t} else {\n\t\t\t\treturn (\n\t\t\t\t\tquantityValues\n\t\t\t\t\t\t.slice()\n\t\t\t\t\t\t.reverse()\n\t\t\t\t\t\t.find((element) => element < value) ?? min\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t};\n\n\treturn (\n\t\t {\n\t\t\t\te.stopPropagation();\n\t\t\t}}\n\t\t>\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t{lotAware ? (\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t\n\t\t\t)}\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default NumberInput;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"Button_button__CftuL\",\"sm\":\"Button_sm__34bkM\",\"md\":\"Button_md__2QS3e\",\"lg\":\"Button_lg__3_wBu\",\"fluid\":\"Button_fluid__aT5Xk\",\"buttonLabel\":\"Button_buttonLabel__3kVe6\",\"primary\":\"Button_primary__1oNRD\",\"danger\":\"Button_danger__2puv2\",\"outline\":\"Button_outline__1NkcI\",\"tertiary\":\"Button_tertiary__23kfq\",\"secondary\":\"Button_secondary__MC07q\",\"disabled\":\"Button_disabled__3scQp\",\"outlineDisabled\":\"Button_outlineDisabled__1KbCh\",\"smallFont\":\"Button_smallFont__1fzYG\",\"fullWidth\":\"Button_fullWidth__39LmF\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ttSessionInfoContainer\":\"TradingSessionTooltip_ttSessionInfoContainer__1hI63\",\"ttSessionMarketStatusInfo\":\"TradingSessionTooltip_ttSessionMarketStatusInfo__3NgPh\",\"open\":\"TradingSessionTooltip_open__1AarU\",\"closed\":\"TradingSessionTooltip_closed__2Kfqc\",\"gray\":\"TradingSessionTooltip_gray__1nJFS\",\"sessionIcon\":\"TradingSessionTooltip_sessionIcon__3aZWG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"createWatchList\":\"CreateWatchlistButton_createWatchList__3JXu7\",\"errorCreateWatchlist\":\"CreateWatchlistButton_errorCreateWatchlist__2lsGc\",\"iconContainer\":\"CreateWatchlistButton_iconContainer__sCYfh\",\"plusIcon\":\"CreateWatchlistButton_plusIcon__1fT4w\",\"createFooter\":\"CreateWatchlistButton_createFooter__1mk1W\",\"createErrorMessage\":\"CreateWatchlistButton_createErrorMessage__10a_1\",\"errorFooter\":\"CreateWatchlistButton_errorFooter__2XZyu\",\"bottomFooterTitle\":\"CreateWatchlistButton_bottomFooterTitle__1jkeN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"popup\":\"NotificationsList_popup__Vh4WE\",\"content\":\"NotificationsList_content__nA9WW\",\"header\":\"NotificationsList_header__ISnL3\",\"list\":\"NotificationsList_list__j3stU\",\"emptyList\":\"NotificationsList_emptyList__2288q\",\"emptyListIcon\":\"NotificationsList_emptyListIcon__1iTpi\",\"emptyText\":\"NotificationsList_emptyText__26Io4\",\"emptySubText\":\"NotificationsList_emptySubText__3A-8y\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"AccountMenuPopup_header__2Nr7U\",\"account\":\"AccountMenuPopup_account__2H6hU\",\"tierInfo\":\"AccountMenuPopup_tierInfo__YlAIq\",\"viewSubscriptionDetailsButton\":\"AccountMenuPopup_viewSubscriptionDetailsButton__33eJR\",\"userIconContainer\":\"AccountMenuPopup_userIconContainer__1sj44\",\"userIcon\":\"AccountMenuPopup_userIcon__3MLvz\",\"userIconContainerFullWidth\":\"AccountMenuPopup_userIconContainerFullWidth__LW7hU\",\"fullName\":\"AccountMenuPopup_fullName__aeIom\",\"fullNameJP\":\"AccountMenuPopup_fullNameJP__2je6l\",\"email\":\"AccountMenuPopup_email__3lXCB\",\"switchButtonContainer\":\"AccountMenuPopup_switchButtonContainer__2jQEB\",\"borderBottom\":\"AccountMenuPopup_borderBottom__-pLT7\",\"options\":\"AccountMenuPopup_options__1Xmzg\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Carousel_container__1-wGi\",\"details\":\"Carousel_details__I__ly\",\"viewDetails\":\"Carousel_viewDetails__32AsI\",\"noDetailsTopMargin\":\"Carousel_noDetailsTopMargin__3Zw6M\",\"caroucel\":\"Carousel_caroucel__1F8ID\",\"carouselDot\":\"Carousel_carouselDot__1W3bJ\",\"active\":\"Carousel_active__3MB5U\"};","import { useContext } from 'react';\nimport AppContext from '../../contexts/AppContext';\nimport positionsStore from '../../store/PositionsStore/positionsStore';\n\nconst useGridHeight = (rowVirtualizer: any, windowHeaderHeight: number = 50) => {\n\tconst appContext = useContext(AppContext);\n\tconst isChildWindow = appContext.isChildWindow;\n\n\tconst positionPanelHeight = positionsStore.use.positionPanelHeight();\n\tconst gridHeight = positionsStore.use.gridHeight();\n\n\tconst documentHeight = document.documentElement.clientHeight;\n\tconst isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\n\tif (isChildWindow) {\n\t\tif (!isSafari) {\n\t\t\treturn {};\n\t\t} else {\n\t\t\treturn { height: documentHeight - windowHeaderHeight }; // window height - header\n\t\t}\n\t} else if (rowVirtualizer.getTotalSize() + 25 > gridHeight - positionPanelHeight || isSafari) {\n\t\treturn {\n\t\t\theight: gridHeight - positionPanelHeight, //tells scrollbar how big the table is\n\t\t\tposition: 'relative',\n\t\t};\n\t} else {\n\t\treturn {};\n\t}\n};\n\nexport default useGridHeight;\n","import React, { Dispatch, FC, SetStateAction } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\ninterface SettingTriggerProps {\n\thandleShowColumnChooser: Dispatch>;\n}\n\nconst SettingTrigger: FC = ({ handleShowColumnChooser }) => {\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t\n\t\t\t\t\t{t('en:SETTINGS')}\n\t\t\t\t\n\t\t\t}\n\t\t>\n\t\t\t
handleShowColumnChooser((state) => !state)}>\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default SettingTrigger;\n","import { useCallback } from 'react';\nimport moment from 'moment';\nimport { formatDuration, intervalToDuration } from 'date-fns';\nimport { useTranslation } from 'react-i18next';\n\nimport { MarketItem, TradingSession } from '../../gateways/RfpGateway/rfp.types';\n\nconst useTimeSessions = () => {\n\tconst { t } = useTranslation();\n\n\tconst getNextOpenTradingSessions = useCallback((marketItem: MarketItem, day: number) => {\n\t\tif (marketItem.tradingSessions) {\n\t\t\tlet nextDay = day;\n\t\t\tfor (let i = 0; i < 7; i++) {\n\t\t\t\tnextDay = (nextDay + 1) % 7;\n\t\t\t\tlet tradingSessions = marketItem.tradingSessions.sessions[nextDay];\n\t\t\t\tif (tradingSessions) {\n\t\t\t\t\tfor (let j = 0; j < tradingSessions.length; j++) {\n\t\t\t\t\t\tif (tradingSessions[j].isOpen) {\n\t\t\t\t\t\t\tif (day > nextDay) {\n\t\t\t\t\t\t\t\t// If next day is less than current day, it means next day is in the next week\n\t\t\t\t\t\t\t\t// So we need to add 7 days to the open and close date\n\t\t\t\t\t\t\t\tconst newTradingSessions = tradingSessions.map((ts) => {\n\t\t\t\t\t\t\t\t\tconst openDate = new Date(ts.openDate);\n\t\t\t\t\t\t\t\t\topenDate.setDate(openDate.getDate() + 7);\n\t\t\t\t\t\t\t\t\tconst closeDate = new Date(ts.closeDate);\n\t\t\t\t\t\t\t\t\tcloseDate.setDate(closeDate.getDate() + 7);\n\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t...ts,\n\t\t\t\t\t\t\t\t\t\topenDate: openDate,\n\t\t\t\t\t\t\t\t\t\tcloseDate: closeDate,\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\treturn newTradingSessions;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn tradingSessions;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}, []);\n\n\tconst getOpenTime = useCallback((tradingSessions: TradingSession[], time: Date) => {\n\t\tfor (let i = 0; i < tradingSessions.length; i++) {\n\t\t\tconst tradingSession = tradingSessions[i];\n\t\t\tif (tradingSession.isOpen && tradingSession.openDate > time) {\n\t\t\t\tconst duration = intervalToDuration({ start: new Date(), end: tradingSession.openDate });\n\t\t\t\tconst formatted = formatDuration(duration, { format: ['hours', 'minutes'] });\n\n\t\t\t\t/*\n If the market opens in more than 2 days - present the exact day when the market will open\n If the market opens in 2 days (24h - 47h 59 m) - present: tomorrow\n If the market opens in a day (24 h) - present: countdown \n */\n\n\t\t\t\tif (duration.days !== undefined) {\n\t\t\t\t\tif (duration.days === 0) {\n\t\t\t\t\t\treturn t('wtr:TIME_SESSIONS_OPENS_IN', { formatted });\n\t\t\t\t\t} else if (duration.days === 1) {\n\t\t\t\t\t\treturn t('wtr:TIME_SESSIONS_OPENS_TOMORROW');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst timeFromNow = moment(tradingSession.openDate).fromNow();\n\t\t\t\t\t\treturn t('wtr:TIME_SESSIONS_OPENS', { timeFromNow });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}, []);\n\n\tconst findLastTradingSession = useCallback((marketItem: MarketItem, day: number) => {\n\t\tif (marketItem.tradingSessions) {\n\t\t\t// Find the last closes time\n\t\t\tconst tradingSessions = marketItem.tradingSessions.sessions[day];\n\t\t\tif (tradingSessions.length > 0) {\n\t\t\t\tconst closeDate = tradingSessions[tradingSessions.length - 1].closeDate;\n\t\t\t\tconst nextTradingSession = getNextOpenTradingSessions(marketItem, day);\n\t\t\t\tif (nextTradingSession && nextTradingSession.length > 0) {\n\t\t\t\t\tconst nextOpenTime = nextTradingSession[0].openDate;\n\t\t\t\t\tif (nextOpenTime !== closeDate) {\n\t\t\t\t\t\treturn tradingSessions;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}, []);\n\n\tconst getClosesTime = useCallback((marketItem: MarketItem, time: Date) => {\n\t\tif (marketItem.tradingSessions && isWorkingTime(marketItem, time)) {\n\t\t\tconst day = time.getDay();\n\t\t\tlet tradingSessions = undefined;\n\t\t\tfor (let index = day; index < 7; index++) {\n\t\t\t\ttradingSessions = findLastTradingSession(marketItem, index);\n\t\t\t\tif (tradingSessions) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (tradingSessions && tradingSessions.length > 0) {\n\t\t\t\tfor (let i = 0; i < tradingSessions.length; i++) {\n\t\t\t\t\tconst tradingSession = tradingSessions[i];\n\t\t\t\t\tif (tradingSession.isOpen && tradingSession.closeDate > time) {\n\t\t\t\t\t\tconst duration = intervalToDuration({ start: new Date(), end: tradingSession.closeDate });\n\t\t\t\t\t\tconst format = duration.days && duration.days > 0 ? ['days', 'hours', 'minutes'] : ['hours', 'minutes'];\n\t\t\t\t\t\tconst formatted = formatDuration(duration, { format: format });\n\n\t\t\t\t\t\t/*\n\t\t\t\t\t\tIf the market closes in more than 2 days - present the exact day when the market will close\n\t\t\t\t\t\tIf the market closes in 2 days (24h - 47h 59 m) - present: tomorrow\n\t\t\t\t\t\tIf the market closes in a day (24 h) - present: countdown \n\t\t\t\t\t\t*/\n\n\t\t\t\t\t\tif (duration.days !== undefined) {\n\t\t\t\t\t\t\tif (duration.days === 0) {\n\t\t\t\t\t\t\t\treturn t('wtr:TIME_SESSIONS_CLOSES_IN', { formatted });\n\t\t\t\t\t\t\t} else if (duration.days === 1) {\n\t\t\t\t\t\t\t\treturn t('wtr:TIME_SESSIONS_CLOSES_TOMORROW');\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tconst timeFromNow = moment(tradingSession.closeDate).fromNow();\n\t\t\t\t\t\t\t\treturn t('wtr:TIME_SESSIONS_CLOSES', { timeFromNow });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}, []);\n\n\tconst getNextOpenDate = useCallback((marketItem: MarketItem, time: Date): string | undefined => {\n\t\tif (marketItem.tradingSessions && !isWorkingTime(marketItem, time)) {\n\t\t\tconst day = time.getDay();\n\t\t\tconst tradingSessions = marketItem.tradingSessions.sessions[day];\n\t\t\tlet openTime = getOpenTime(tradingSessions, time);\n\t\t\tif (openTime) {\n\t\t\t\treturn openTime;\n\t\t\t}\n\t\t\tconst nextOpenTradingSessions = getNextOpenTradingSessions(marketItem, day);\n\t\t\tif (nextOpenTradingSessions) {\n\t\t\t\topenTime = getOpenTime(nextOpenTradingSessions, time);\n\t\t\t\tif (openTime) {\n\t\t\t\t\treturn openTime;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}, []);\n\n\tconst isWorkingTime = useCallback((marketItem: MarketItem, time: Date) => {\n\t\tif (marketItem.tradingSessions) {\n\t\t\tconst orgTime = new Date(time);\n\n\t\t\tconst day = time.getDay();\n\t\t\tconst tradingSessions = marketItem.tradingSessions.sessions[day];\n\t\t\tfor (let i = 0; i < tradingSessions.length; i++) {\n\t\t\t\tconst tradingSession = tradingSessions[i];\n\t\t\t\tif (tradingSession.isOpen) {\n\t\t\t\t\tconst currentTime = orgTime.getHours() * 60 + orgTime.getMinutes();\n\t\t\t\t\tconst openTime = tradingSession.openDate.getHours() * 60 + tradingSession.openDate.getMinutes();\n\t\t\t\t\tconst closeTime = (\n\t\t\t\t\t\topenTime +\n\t\t\t\t\t\t(tradingSession.closeDate.getTime() - tradingSession.openDate.getTime()) / 1000 / 60\n\t\t\t\t\t).toFixed(0);\n\n\t\t\t\t\tif (currentTime >= openTime && currentTime < +closeTime) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\treturn undefined;\n\t}, []);\n\n\treturn { getNextOpenDate, isWorkingTime, getClosesTime };\n};\n\nexport default useTimeSessions;\n","import React from 'react';\nimport MoneyFormatter from '../../../../../components/MoneyFormatter';\n\ninterface CalcSwapValueProps {\n\tdata: any;\n\ttype: string;\n}\nconst CalcSwapValue = ({ data, type }: CalcSwapValueProps) => {\n\tconst record = data.row.original;\n\treturn <>{!record.isGroupRow && };\n};\n\nexport default CalcSwapValue;\n","import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport React, { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport styles from './CreateWatchlistButton.module.scss';\n\ninterface CreateWatchlistButtonProps {\n\tmaxWatchlistsError: boolean;\n\thandleCreateWatchlist: () => void;\n}\n\nconst CreateWatchlistButton: FC = ({ maxWatchlistsError, handleCreateWatchlist }) => {\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t handleCreateWatchlist()}\n\t\t>\n\t\t\t
\n\t\t\t\t{!maxWatchlistsError && }\n\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t{t('en:CREATE_WATCHLIST')}\n\t\t\t\t\t\n\t\t\t\t\t{maxWatchlistsError &&
{t('wtr:MAX_WATCHLIST_ERROR')}
}\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default CreateWatchlistButton;\n","import {\n\tHistoryTick,\n\tMarketItem,\n\tPriceQuote,\n\tTradingAccount,\n\tTradingPositionState,\n} from '../../../gateways/RfpGateway/rfp.types';\nimport { TradingPositionSide, TradingPositionType } from '../../../utils/functions/enums';\nimport { GymTradingAccount } from '../Accounts/GymTradingAccount';\n\nimport { GymTradingPosition } from './GymTradingPosition';\n\nexport class GymPositionUtils {\n\tstatic generatePositionId(): number {\n\t\treturn Date.now();\n\t}\n\n\tstatic getDefaultAmount(account: TradingAccount, marketItem: MarketItem) {\n\t\tconst instrumentDetails = account.tradingInstruments?.instruments[marketItem.code];\n\t\tif (instrumentDetails) {\n\t\t\treturn instrumentDetails.minAmount;\n\t\t}\n\t\treturn 1;\n\t}\n\n\tstatic buildPosition(\n\t\taccount: TradingAccount,\n\t\tmarketItem: MarketItem,\n\t\tisBuy: boolean,\n\t\tpriceQuote: PriceQuote,\n\t\tsimulationId: string,\n\t\tstopLoss: number | undefined,\n\t\ttakeProfit: number | undefined,\n\t\tamount: number\n\t): GymTradingPosition {\n\t\tconst position = new GymTradingPosition(\n\t\t\taccount.id,\n\t\t\tmarketItem.feedId,\n\t\t\tmarketItem.code,\n\t\t\tTradingPositionState.open,\n\t\t\tisBuy ? TradingPositionSide.Buy : TradingPositionSide.Sell,\n\t\t\tTradingPositionType.Market,\n\t\t\tsimulationId\n\t\t);\n\n\t\tposition.marketItem = marketItem;\n\t\tposition.qCcy = marketItem.ccy;\n\t\tposition.dec = marketItem.decPrec;\n\t\tposition.qty = amount ?? GymPositionUtils.getDefaultAmount(account, marketItem);\n\t\tposition.posId = GymPositionUtils.generatePositionId();\n\t\tposition.lastDataCloseTime = priceQuote.t;\n\t\tposition.lastDataClosePrice = isBuy ? priceQuote.a : priceQuote.b;\n\t\tposition.oP = isBuy ? priceQuote.a : priceQuote.b;\n\t\tposition.oT = priceQuote.t;\n\t\tposition.grossProfit = 0;\n\t\tposition.tp = takeProfit ?? 0;\n\t\tposition.sl = stopLoss ?? 0;\n\n\t\treturn position;\n\t}\n\n\tstatic buildPendingPosition(\n\t\taccount: TradingAccount,\n\t\tmarketItem: MarketItem,\n\t\tprice: number,\n\t\tisBuy: boolean,\n\t\thistoryTick: HistoryTick,\n\t\tpositionType: TradingPositionType,\n\t\tsimulationId: string,\n\t\tstopLoss: number,\n\t\ttakeProfit: number,\n\t\tamount?: number\n\t) {\n\t\tconst position = new GymTradingPosition(\n\t\t\taccount.id,\n\t\t\tmarketItem.feedId,\n\t\t\tmarketItem.code,\n\t\t\tTradingPositionState.pending,\n\t\t\tisBuy ? TradingPositionSide.Buy : TradingPositionSide.Sell,\n\t\t\tpositionType,\n\t\t\tsimulationId\n\t\t);\n\n\t\tposition.oT = historyTick.closeTime;\n\t\tposition.marketItem = marketItem;\n\t\tposition.qCcy = marketItem.ccy;\n\t\tposition.prc = price;\n\t\tposition.dec = marketItem.decPrec;\n\t\tposition.qty = amount ?? GymPositionUtils.getDefaultAmount(account, marketItem);\n\t\tposition.posId = GymPositionUtils.generatePositionId();\n\t\tposition.lastDataCloseTime = historyTick.closeTime;\n\t\tposition.lastDataClosePrice = historyTick.close;\n\t\tposition.tp = takeProfit ?? 0;\n\t\tposition.sl = stopLoss ?? 0;\n\t\tposition.eT = 0;\n\n\t\treturn position;\n\t}\n\n\tstatic validateMargin(account: GymTradingAccount, position: GymTradingPosition): Boolean {\n\t\tconst posUsedMargin = position.calcUsedMargin(account);\n\t\treturn posUsedMargin < account.freeMargin;\n\t}\n}\n","import { octStoredValues } from '../../../../../../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\n\nexport const storeInstrumentsOCTValue = (obj: octStoredValues | null) => {\n\tlocalStorage.setItem('instrumentsOCTValue', JSON.stringify(obj));\n};\n\nexport const getSavedInstrumentsOCTValue = () => JSON.parse(localStorage.getItem('instrumentsOCTValue') ?? '{}');\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"titleContainer\":\"WatchlistsList_titleContainer__2ONtg\",\"titleWatchlist\":\"WatchlistsList_titleWatchlist__2QE6E\",\"watchlistContainer\":\"WatchlistsList_watchlistContainer__1Euhn\",\"watchlistItem\":\"WatchlistsList_watchlistItem__1RnIr\",\"itemContainer\":\"WatchlistsList_itemContainer__2ICBN\",\"maxItemContainer\":\"WatchlistsList_maxItemContainer__2u-T6\",\"addInstrumentContainer\":\"WatchlistsList_addInstrumentContainer__3w2rI\",\"addToWatchlistIcon\":\"WatchlistsList_addToWatchlistIcon__1c3rx\",\"existsInWatchlistIcon\":\"WatchlistsList_existsInWatchlistIcon__16SGu\",\"watchlistIcon\":\"WatchlistsList_watchlistIcon__3oBCU\",\"maxErrorMessage\":\"WatchlistsList_maxErrorMessage__1HOo7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"notificationInfo\":\"ToastNotificationContent_notificationInfo__w5GH3\",\"notificationError\":\"ToastNotificationContent_notificationError__2yplX\",\"notificationFatal\":\"ToastNotificationContent_notificationFatal__1BLmj\",\"title\":\"ToastNotificationContent_title__1f2Wg\",\"body\":\"ToastNotificationContent_body__1SxYo\",\"icon\":\"ToastNotificationContent_icon__34E99\",\"fa\":\"ToastNotificationContent_fa__2buQX\",\"messageContainer\":\"ToastNotificationContent_messageContainer__10vEb\",\"message\":\"ToastNotificationContent_message__2G0DF\",\"toastTitle\":\"ToastNotificationContent_toastTitle__24r1X\",\"closeIcon\":\"ToastNotificationContent_closeIcon__2bCKu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"NumberInput_container__1Y-dB\",\"disabled\":\"NumberInput_disabled__1Pygg\",\"hasError\":\"NumberInput_hasError__oi0IX\",\"button\":\"NumberInput_button__2gL80\",\"icon\":\"NumberInput_icon__19YJQ\",\"input\":\"NumberInput_input__8urD-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"WeekInformation_container__2o_vk\",\"dayAndTimeWrapper\":\"WeekInformation_dayAndTimeWrapper__3wI0q\",\"label\":\"WeekInformation_label__3tkbu\",\"valuesWrapper\":\"WeekInformation_valuesWrapper__U4Oou\",\"value\":\"WeekInformation_value__xgSPc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"AccountStats_container__1RwIk\",\"statsContainer\":\"AccountStats_statsContainer__1Ip7b\",\"statsLabel\":\"AccountStats_statsLabel__1uq6f\",\"value\":\"AccountStats_value__eS9-j\",\"divider\":\"AccountStats_divider__1aahZ\",\"default\":\"AccountStats_default__yC0m1\",\"green\":\"AccountStats_green__2HKTb\",\"orange\":\"AccountStats_orange__1nofm\",\"red\":\"AccountStats_red__2PBl9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalDialog\":\"SubscriptionAlert_modalDialog__1X7hs\",\"modalHeader\":\"SubscriptionAlert_modalHeader__1Slzx\",\"modalFooter\":\"SubscriptionAlert_modalFooter__1cETJ\",\"modalBody\":\"SubscriptionAlert_modalBody__aUnsl\",\"columnButtons\":\"SubscriptionAlert_columnButtons__3oRcm\",\"subscriptionDetailsContent\":\"SubscriptionAlert_subscriptionDetailsContent__29iV_\",\"detailsText\":\"SubscriptionAlert_detailsText__1I1XU\"};","import { HistoryTick, TimeScale } from '../../gateways/RfpGateway/rfp.types';\nimport Lazy from '../../utils/functions/Lazy';\nimport { Optional } from '../../utils/functions/Nullable';\nimport i18n from '../../setup/i18n';\nimport { GymSimulation } from '../../pages/TradersGym/Simulations/GymSimulation';\n\nexport type TChartTick = {\n\tDT?: Date;\n\tDate?: string;\n\tOpen: number;\n\tHigh: number;\n\tLow: number;\n\tClose: number;\n\tVolume: number;\n};\n\nexport type TChartPeriod = {\n\ttimeScale: TimeScale;\n\tinterval: number;\n\tperiod: number;\n\ttimeUnit: 'millisecond' | 'second' | 'minute' | 'day' | 'week' | 'month' | 'tick';\n\tminHistoryTicks: number;\n\tgetSelectionLabel: (translationProvider?: Optional<(str: string) => string>) => string;\n\tgetChartLabel: (translationProvider?: Optional<(str: string) => string>) => string;\n\tcreateChartTicks: (historyTicks: HistoryTick[], historicalOnly: boolean) => TChartTick[];\n};\n\nenum RFP_TIMING_INTERVAL {\n\tTICK = 0,\n\tONE_MIN = 1,\n\tFIVE_MIN = 2,\n\tFIFTEEN_MIN = 3,\n\tTHIRTY_MIN = 4,\n\tSIXTY_MIN = 5,\n\tTWO_HOURS = 6,\n\tTHREE_HOURS = 7,\n\tFOUR_HOURS = 8,\n\tONE_DAY = 9,\n\tONE_WEEK = 10,\n\tONE_MONTH = 11,\n\tEIGHT_HOURS = 12,\n\tTWO_MIN = 14,\n\tTHREE_MIN = 15,\n\tTEN_MIN = 16,\n}\n\nclass ChartUtils {\n\tstatic buildSymbol(symbol: string, priceType: string) {\n\t\treturn `${symbol}_#_${priceType}`;\n\t}\n\tstatic getPriceTypeLocalStorageKey(chartId: number) {\n\t\treturn `chart${chartId}_priceType`;\n\t}\n\n\tstatic extractValues = (input: string) => {\n\t\tconst regex = /([A-Z\\d_.]+)_#_([A-z]+)/;\n\t\tconst match = input.match(regex);\n\t\tif (match) {\n\t\t\tlet symbol = match[1];\n\t\t\tif (symbol.includes(':')) {\n\t\t\t\tsymbol = symbol.slice(1);\n\t\t\t}\n\t\t\tconst priceType = match[2];\n\t\t\treturn { symbol, priceType };\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t};\n\n\t/**\n\t * Builds a gym symbol based on the given simulation.\n\t * The gym symbol is constructed by concatenating the simulation code and ID with \"_#_\" separator.\n\t * @param simulation The gym simulation object.\n\t * @returns The gym symbol.\n\t */\n\tstatic buildGymSymbol(simulation: GymSimulation) {\n\t\treturn `${simulation.code}_#_${simulation.id}`;\n\t}\n\n\t/**\n\t * Splits a string value into symbol and subscription ID components.\n\t * @param value - The string value to split.\n\t * @returns An object containing the symbol and subscription ID components, or undefined if the value cannot be split.\n\t */\n\tstatic getGymSymbolComponents(value: string) {\n\t\tconst arr = value.split('_#_');\n\t\tif (arr.length > 1) {\n\t\t\treturn { symbol: arr[0], subscriptionId: arr[1] };\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tstatic fillErrorCenter(\n\t\tctx: CanvasRenderingContext2D,\n\t\terror: string,\n\t\tcolor: string,\n\t\twidth: number,\n\t\theight: number,\n\t\ttextHight: number\n\t) {\n\t\tctx.textAlign = 'center';\n\t\tctx.globalAlpha = 1;\n\t\tctx.fillStyle = color;\n\n\t\tlet y = (height - textHight) / 2;\n\t\tlet xL = width / 2;\n\t\tlet yL = y + textHight / 3;\n\n\t\t// Info text\n\t\tChartUtils.fitTextOnCanvas(ctx, error, 50, 'Helvetica, Arial', width * 0.7);\n\t\tctx.textBaseline = 'middle';\n\t\tctx.fillText(error, xL, yL);\n\t}\n\n\tstatic fillTextCenter(\n\t\tctx: CanvasRenderingContext2D,\n\t\ttext1: string,\n\t\ttext2: string,\n\t\tcolor: string,\n\t\twidth: number,\n\t\theight: number,\n\t\ttextHight: number\n\t) {\n\t\tctx.textAlign = 'center';\n\t\tctx.globalAlpha = 0.3;\n\t\tctx.fillStyle = color;\n\n\t\tlet y = (height - textHight) / 2;\n\t\tlet xL = width / 2;\n\t\tlet yL = y + textHight / 3;\n\n\t\t// Info text\n\t\tChartUtils.fitTextOnCanvas(ctx, text1, 50, 'Helvetica, Arial', width * 0.7);\n\t\tctx.textBaseline = 'top';\n\t\tctx.fillText(text1, xL, yL);\n\n\t\t// Details text\n\t\tif (height >= 120) {\n\t\t\tyL = y + (textHight / 3) * 2;\n\t\t\tChartUtils.fitTextOnCanvas(ctx, text2, 20, 'Helvetica, Arial', width * 0.8);\n\t\t\tctx.textBaseline = 'bottom';\n\t\t\tctx.fillText(text2, xL, yL);\n\t\t}\n\t}\n\n\tstatic fitTextOnCanvas(\n\t\tctx: CanvasRenderingContext2D,\n\t\ttext: string,\n\t\tfontsize: number,\n\t\tfontface: string,\n\t\twidth: number\n\t) {\n\t\t// lower the font size until the text fits the canvas\n\t\tdo {\n\t\t\tfontsize--;\n\t\t\tctx.font = fontsize + 'px ' + fontface;\n\t\t} while (ctx.measureText(text).width > width);\n\t}\n\n\tpublic static fitText(element: any, selectors: string, minFontSizeRange?: { min: number; max: number }): void {\n\t\t// max font size in pixels\n\t\tconst maxFontSize = minFontSizeRange?.max ?? 50;\n\t\tconst minFontSize = minFontSizeRange?.min ?? 10;\n\t\t// get the DOM output element by its selector\n\t\tconst outputDiv = element.querySelector(selectors);\n\t\tif (outputDiv) {\n\t\t\t// get element's width and height\n\t\t\tlet width = outputDiv.clientWidth;\n\t\t\tlet height = outputDiv.clientHeight;\n\t\t\t// get content's width\n\t\t\tlet textWidth = outputDiv.scrollWidth;\n\t\t\tlet textHeight = outputDiv.scrollHeight;\n\t\t\t// get fontSize\n\t\t\tlet fontSize = parseInt(window.getComputedStyle(outputDiv, null).getPropertyValue('font-size'), 10);\n\t\t\tif (!isNaN(fontSize)) {\n\t\t\t\tif (textWidth === width && textHeight === height) {\n\t\t\t\t\t// Need to increment font size\n\t\t\t\t\t// content is smaller than than width or height... let's resize in 1 px until it fits\n\t\t\t\t\tlet didIncrementFont = false;\n\t\t\t\t\twhile (textWidth === width && textHeight === height) {\n\t\t\t\t\t\tif (fontSize > maxFontSize) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfontSize = Math.ceil(fontSize) + 1;\n\t\t\t\t\t\toutputDiv.style.fontSize = fontSize + 'px';\n\n\t\t\t\t\t\t// update width and height\n\t\t\t\t\t\ttextWidth = outputDiv.scrollWidth;\n\t\t\t\t\t\ttextHeight = outputDiv.scrollHeight;\n\n\t\t\t\t\t\tdidIncrementFont = true;\n\t\t\t\t\t}\n\t\t\t\t\tif (didIncrementFont) {\n\t\t\t\t\t\tfontSize = Math.ceil(fontSize) - 1;\n\t\t\t\t\t\toutputDiv.style.fontSize = fontSize + 'px';\n\t\t\t\t\t}\n\t\t\t\t} else if (textWidth > width || textHeight > height) {\n\t\t\t\t\t// Need to decrement font size\n\t\t\t\t\t// content is bigger than width or height... let's resize in 1 px until it fits\n\t\t\t\t\twhile (textWidth > width || textHeight > height) {\n\t\t\t\t\t\tif (fontSize < minFontSize) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfontSize = Math.ceil(fontSize) - 1;\n\t\t\t\t\t\toutputDiv.style.fontSize = fontSize + 'px';\n\n\t\t\t\t\t\t// update width and height\n\t\t\t\t\t\ttextWidth = outputDiv.scrollWidth;\n\t\t\t\t\t\ttextHeight = outputDiv.scrollHeight;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static readonly _chartPeriods = new Lazy(() => [\n\t\t{\n\t\t\ttimeScale: 'TS_1MIN',\n\t\t\tinterval: 1,\n\t\t\tperiod: 1,\n\t\t\ttimeUnit: 'minute',\n\t\t\tminHistoryTicks: 500,\n\t\t\tgetSelectionLabel: () => i18n.t('en:TIMING_INTERVAL_ONE_MIN'),\n\t\t\tgetChartLabel: () => i18n.t('en:TIMING_INTERVAL_ONE_MIN'),\n\t\t\tcreateChartTicks: (historyTicks, historicalOnly) => {\n\t\t\t\treturn historyTicks.map((historyTick) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tDT: new Date(historyTick.openTime),\n\t\t\t\t\t\tOpen: historyTick.open,\n\t\t\t\t\t\tHigh: historyTick.high,\n\t\t\t\t\t\tLow: historyTick.low,\n\t\t\t\t\t\tClose: historyTick.close,\n\t\t\t\t\t\tVolume: historyTick.volume,\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttimeScale: 'TS_5MIN',\n\t\t\tinterval: 5,\n\t\t\tperiod: 1,\n\t\t\ttimeUnit: 'minute',\n\t\t\tminHistoryTicks: 999,\n\t\t\tgetSelectionLabel: () => i18n.t('en:TIMING_INTERVAL_FIVE_MIN'),\n\t\t\tgetChartLabel: () => i18n.t('en:TIMING_INTERVAL_FIVE_MIN'),\n\t\t\tcreateChartTicks: (historyTicks, historicalOnly) => {\n\t\t\t\treturn historyTicks.map((historyTick) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tDT: new Date(historyTick.openTime),\n\t\t\t\t\t\tOpen: historyTick.open,\n\t\t\t\t\t\tHigh: historyTick.high,\n\t\t\t\t\t\tLow: historyTick.low,\n\t\t\t\t\t\tClose: historyTick.close,\n\t\t\t\t\t\tVolume: historyTick.volume,\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttimeScale: 'TS_10MIN',\n\t\t\tinterval: 10,\n\t\t\tperiod: 1,\n\t\t\ttimeUnit: 'minute',\n\t\t\tminHistoryTicks: 999,\n\t\t\tgetSelectionLabel: () => i18n.t('en:TIMING_INTERVAL_TEN_MIN'),\n\t\t\tgetChartLabel: () => i18n.t('en:TIMING_INTERVAL_TEN_MIN'),\n\t\t\tcreateChartTicks: (historyTicks, historicalOnly) => {\n\t\t\t\treturn historyTicks.map((historyTick) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tDT: new Date(historyTick.openTime),\n\t\t\t\t\t\tOpen: historyTick.open,\n\t\t\t\t\t\tHigh: historyTick.high,\n\t\t\t\t\t\tLow: historyTick.low,\n\t\t\t\t\t\tClose: historyTick.close,\n\t\t\t\t\t\tVolume: historyTick.volume,\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttimeScale: 'TS_15MIN',\n\t\t\tinterval: 15,\n\t\t\tperiod: 1,\n\t\t\ttimeUnit: 'minute',\n\t\t\tminHistoryTicks: 999,\n\t\t\tgetSelectionLabel: () => i18n.t('en:TIMING_INTERVAL_FIFTEEN_MIN'),\n\t\t\tgetChartLabel: () => i18n.t('en:TIMING_INTERVAL_FIFTEEN_MIN'),\n\t\t\tcreateChartTicks: (historyTicks, historicalOnly) => {\n\t\t\t\treturn historyTicks.map((historyTick) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tDT: new Date(historyTick.openTime),\n\t\t\t\t\t\tOpen: historyTick.open,\n\t\t\t\t\t\tHigh: historyTick.high,\n\t\t\t\t\t\tLow: historyTick.low,\n\t\t\t\t\t\tClose: historyTick.close,\n\t\t\t\t\t\tVolume: historyTick.volume,\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttimeScale: 'TS_30MIN',\n\t\t\tinterval: 30,\n\t\t\tperiod: 1,\n\t\t\ttimeUnit: 'minute',\n\t\t\tminHistoryTicks: 999,\n\t\t\tgetSelectionLabel: () => i18n.t('en:TIMING_INTERVAL_THIRTY_MIN'),\n\t\t\tgetChartLabel: () => i18n.t('en:TIMING_INTERVAL_THIRTY_MIN'),\n\t\t\tcreateChartTicks: (historyTicks, historicalOnly) => {\n\t\t\t\treturn historyTicks.map((historyTick) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tDT: new Date(historyTick.openTime),\n\t\t\t\t\t\tOpen: historyTick.open,\n\t\t\t\t\t\tHigh: historyTick.high,\n\t\t\t\t\t\tLow: historyTick.low,\n\t\t\t\t\t\tClose: historyTick.close,\n\t\t\t\t\t\tVolume: historyTick.volume,\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttimeScale: 'TS_1HOUR',\n\t\t\tinterval: 60,\n\t\t\tperiod: 1,\n\t\t\ttimeUnit: 'minute',\n\t\t\tminHistoryTicks: 999,\n\t\t\tgetSelectionLabel: () => i18n.t('en:TIMING_INTERVAL_SIXTY_MIN'),\n\t\t\tgetChartLabel: () => i18n.t('en:TIMING_INTERVAL_SIXTY_MIN'),\n\t\t\tcreateChartTicks: (historyTicks, historicalOnly) => {\n\t\t\t\treturn historyTicks.map((historyTick) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tDT: new Date(historyTick.openTime),\n\t\t\t\t\t\tOpen: historyTick.open,\n\t\t\t\t\t\tHigh: historyTick.high,\n\t\t\t\t\t\tLow: historyTick.low,\n\t\t\t\t\t\tClose: historyTick.close,\n\t\t\t\t\t\tVolume: historyTick.volume,\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttimeScale: 'TS_4HOUR',\n\t\t\tinterval: 240,\n\t\t\tperiod: 1,\n\t\t\ttimeUnit: 'minute',\n\t\t\tminHistoryTicks: 999,\n\t\t\tgetSelectionLabel: () => i18n.t('en:TIMING_INTERVAL_FOUR_HOURS'),\n\t\t\tgetChartLabel: () => i18n.t('en:TIMING_INTERVAL_FOUR_HOURS'),\n\t\t\tcreateChartTicks: (historyTicks, historicalOnly) => {\n\t\t\t\treturn historyTicks.map((historyTick) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tDT: new Date(historyTick.openTime),\n\t\t\t\t\t\tOpen: historyTick.open,\n\t\t\t\t\t\tHigh: historyTick.high,\n\t\t\t\t\t\tLow: historyTick.low,\n\t\t\t\t\t\tClose: historyTick.close,\n\t\t\t\t\t\tVolume: historyTick.volume,\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttimeScale: 'TS_1DAY',\n\t\t\tinterval: 1,\n\t\t\tperiod: 1,\n\t\t\ttimeUnit: 'day',\n\t\t\tminHistoryTicks: 500,\n\t\t\tgetSelectionLabel: () => i18n.t('en:TIMING_INTERVAL_ONE_DAY'),\n\t\t\tgetChartLabel: () => i18n.t('en:TIMING_INTERVAL_ONE_DAY'),\n\t\t\tcreateChartTicks: (historyTicks, historicalOnly) => {\n\t\t\t\tconst chartTicks: TChartTick[] = [];\n\t\t\t\thistoryTicks.forEach((historyTick) => {\n\t\t\t\t\tconst date = new Date(historyTick.closeTime);\n\t\t\t\t\t// There is no way to define the open time, so we are using close time minus 1 min\n\t\t\t\t\tdate.setUTCMinutes(date.getUTCMinutes() - 1);\n\n\t\t\t\t\tconst dateString = `${date.getUTCFullYear()}-${(date.getUTCMonth() + 1).toString().padStart(2, '0')}-${date\n\t\t\t\t\t\t.getUTCDate()\n\t\t\t\t\t\t.toString()\n\t\t\t\t\t\t.padStart(2, '0')}`;\n\t\t\t\t\t//console.log(`One day: dateString=${dateString}, openTime=${openTime}, closeTime=${historyTick.t}`)\n\t\t\t\t\tif (!(historicalOnly && chartTicks.some((tick) => tick.Date === dateString))) {\n\t\t\t\t\t\tconst chartTick = {\n\t\t\t\t\t\t\tDate: dateString,\n\t\t\t\t\t\t\tOpen: historyTick.open,\n\t\t\t\t\t\t\tHigh: historyTick.high,\n\t\t\t\t\t\t\tLow: historyTick.low,\n\t\t\t\t\t\t\tClose: historyTick.close,\n\t\t\t\t\t\t\tVolume: historyTick.volume,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tchartTicks.push(chartTick);\n\t\t\t\t\t\t//console.debug(`TS_1DAY: dateString: ${dateString}, date: ${date}, utcDate: ${date.toUTCString()}, ts: ${historyTick.t}, dateTS: ${date.getTime()}, tzOffset: ${date.getTimezoneOffset()}`)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn chartTicks;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttimeScale: 'TS_1WEEK',\n\t\t\tinterval: 1,\n\t\t\tperiod: 1,\n\t\t\ttimeUnit: 'week',\n\t\t\tminHistoryTicks: 500,\n\t\t\tgetSelectionLabel: () => i18n.t('wtr:1_WEEK_TP'),\n\t\t\tgetChartLabel: () => i18n.t('wtr:1_WEEK_TP'),\n\t\t\tcreateChartTicks: (historyTicks, historicalOnly) => {\n\t\t\t\tconst chartTicks: TChartTick[] = [];\n\t\t\t\thistoryTicks.forEach((historyTick) => {\n\t\t\t\t\tconst date = new Date(historyTick.openTime);\n\n\t\t\t\t\tconst dateString = `${date.getUTCFullYear()}-${(date.getUTCMonth() + 1).toString().padStart(2, '0')}-${date\n\t\t\t\t\t\t.getUTCDate()\n\t\t\t\t\t\t.toString()\n\t\t\t\t\t\t.padStart(2, '0')}`;\n\t\t\t\t\tif (!(historicalOnly && chartTicks.some((tick) => tick.Date === dateString))) {\n\t\t\t\t\t\tconst chartTick = {\n\t\t\t\t\t\t\tDate: dateString,\n\t\t\t\t\t\t\tOpen: historyTick.open,\n\t\t\t\t\t\t\tHigh: historyTick.high,\n\t\t\t\t\t\t\tLow: historyTick.low,\n\t\t\t\t\t\t\tClose: historyTick.close,\n\t\t\t\t\t\t\tVolume: historyTick.volume,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tchartTicks.push(chartTick);\n\t\t\t\t\t\t//console.debug(`TS_1WEEK: dateString: ${dateString}, date: ${date}, utcDate: ${date.toUTCString()}, ts: ${historyTick.t}, dateTS: ${date.getTime()}, tzOffset: ${date.getTimezoneOffset()}`)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn chartTicks;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttimeScale: 'TS_1MONTH',\n\t\t\tinterval: 1,\n\t\t\tperiod: 1,\n\t\t\ttimeUnit: 'month',\n\t\t\tminHistoryTicks: 500,\n\t\t\tgetSelectionLabel: () => i18n.t('wtr:1_MONTH_TP'),\n\t\t\tgetChartLabel: () => i18n.t('wtr:1_MONTH_TP'),\n\t\t\tcreateChartTicks: (historyTicks, historicalOnly) => {\n\t\t\t\tconst chartTicks: TChartTick[] = [];\n\t\t\t\thistoryTicks.forEach((historyTick) => {\n\t\t\t\t\tconst date = new Date(historyTick.openTime);\n\t\t\t\t\tconst dateString = `${date.getUTCFullYear()}-${(date.getUTCMonth() + 1).toString().padStart(2, '0')}-${date\n\t\t\t\t\t\t.getUTCDate()\n\t\t\t\t\t\t.toString()\n\t\t\t\t\t\t.padStart(2, '0')}`;\n\t\t\t\t\tif (!(historicalOnly && chartTicks.some((tick) => tick.Date === dateString))) {\n\t\t\t\t\t\tconst chartTick = {\n\t\t\t\t\t\t\tDate: dateString,\n\t\t\t\t\t\t\tOpen: historyTick.open,\n\t\t\t\t\t\t\tHigh: historyTick.high,\n\t\t\t\t\t\t\tLow: historyTick.low,\n\t\t\t\t\t\t\tClose: historyTick.close,\n\t\t\t\t\t\t\tVolume: historyTick.volume,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tchartTicks.push(chartTick);\n\t\t\t\t\t\t//console.debug(`TS_1MONTH: dateString: ${dateString}, date: ${date}, utcDate: ${date.toUTCString()}, ts: ${historyTick.t}, dateTS: ${date.getTime()}, tzOffset: ${date.getTimezoneOffset()}`)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn chartTicks;\n\t\t\t},\n\t\t},\n\t]);\n\n\tpublic static get chartPeriods(): ReadonlyArray> {\n\t\treturn this._chartPeriods.getValue();\n\t}\n\n\tstatic getSecondsFromTimeScale(timeScale: TimeScale) {\n\t\tconst rfpTimeInterval = ChartUtils.getRFPTimingInterval(timeScale);\n\t\treturn ChartUtils.getSecondsFromTimeInterval(rfpTimeInterval);\n\t}\n\n\tpublic static getChartPeriodAt(timeScale: TimeScale): Readonly | undefined {\n\t\tconst item = this.chartPeriods.find((value) => {\n\t\t\treturn value.timeScale === timeScale;\n\t\t});\n\t\treturn item;\n\t}\n\n\tprivate constructor() {}\n\n\tpublic static formatChartData(\n\t\tvalues: HistoryTick[],\n\t\tchartPeriod: TChartPeriod,\n\t\thistoricalOnly: boolean = false\n\t): TChartTick[] {\n\t\treturn values.length > 0 && chartPeriod !== null ? chartPeriod.createChartTicks(values, historicalOnly) : [];\n\t}\n\n\tpublic static getChartPeriod(predicate: (chartPeriod: TChartPeriod) => boolean): Optional {\n\t\tconst chartPeriods = this.chartPeriods.filter(predicate);\n\t\treturn chartPeriods.length > 0 ? chartPeriods[0] : null;\n\t}\n\n\tstatic keyShowPositions = 'chart_setting_show_positions';\n\tstatic keyShowOrders = 'chart_setting_show_orders';\n\n\tpublic static getOpenTime(historyTick: HistoryTick, interval: RFP_TIMING_INTERVAL) {\n\t\tif (interval === RFP_TIMING_INTERVAL.ONE_MONTH) {\n\t\t\tconst date = new Date(historyTick.closeTime);\n\t\t\tdate.setUTCMinutes(date.getUTCMinutes() - 1);\n\t\t\tdate.setUTCDate(date.getUTCDate() - 7);\n\t\t\tdate.setHours(23, 59, 59, 999);\n\t\t\treturn date.getTime();\n\t\t}\n\n\t\tif (historyTick.openTime) {\n\t\t\treturn historyTick.openTime;\n\t\t}\n\t\tconst closeTime = historyTick.closeTime;\n\t\tconst openTime = closeTime - ChartUtils.getSecondsFromTimeInterval(interval) * 1000;\n\t\treturn openTime;\n\t}\n\n\tpublic static getIntervalAndPeriodicity(timeScale: TimeScale) {\n\t\tswitch (timeScale) {\n\t\t\tcase 'TS_1MIN':\n\t\t\t\treturn { interval: 'minute', periodicity: 1 };\n\t\t\tcase 'TS_2MIN':\n\t\t\t\treturn { interval: 'minute', periodicity: 2 };\n\t\t\tcase 'TS_3MIN':\n\t\t\t\treturn { interval: 'minute', periodicity: 3 };\n\t\t\tcase 'TS_5MIN':\n\t\t\t\treturn { interval: 'minute', periodicity: 5 };\n\t\t\tcase 'TS_10MIN':\n\t\t\t\treturn { interval: 'minute', periodicity: 10 };\n\t\t\tcase 'TS_15MIN':\n\t\t\t\treturn { interval: 'minute', periodicity: 15 };\n\t\t\tcase 'TS_30MIN':\n\t\t\t\treturn { interval: 'minute', periodicity: 30 };\n\t\t\tcase 'TS_1HOUR':\n\t\t\t\treturn { interval: 'minute', periodicity: 60 };\n\t\t\tcase 'TS_2HOUR':\n\t\t\t\treturn { interval: 'minute', periodicity: 120 };\n\t\t\tcase 'TS_3HOUR':\n\t\t\t\treturn { interval: 'minute', periodicity: 180 };\n\t\t\tcase 'TS_4HOUR':\n\t\t\t\treturn { interval: 'minute', periodicity: 240 };\n\t\t\tcase 'TS_6HOUR':\n\t\t\t\treturn { interval: 'minute', periodicity: 360 };\n\t\t\tcase 'TS_8HOUR':\n\t\t\t\treturn { interval: 'minute', periodicity: 480 };\n\t\t\tcase 'TS_12HOUR':\n\t\t\t\treturn { interval: 'minute', periodicity: 720 };\n\t\t\tcase 'TS_1DAY':\n\t\t\t\treturn { interval: 'day', periodicity: 1 };\n\t\t\tcase 'TS_1WEEK':\n\t\t\t\treturn { interval: 'week', periodicity: 1 };\n\t\t\tcase 'TS_1MONTH':\n\t\t\t\treturn { interval: 'month', periodicity: 1 };\n\t\t}\n\t}\n\n\tpublic static getSecondsFromTimeInterval(interval: RFP_TIMING_INTERVAL) {\n\t\tswitch (interval) {\n\t\t\tcase RFP_TIMING_INTERVAL.ONE_MIN:\n\t\t\t\treturn 60;\n\t\t\tcase RFP_TIMING_INTERVAL.TWO_MIN:\n\t\t\t\treturn 120;\n\t\t\tcase RFP_TIMING_INTERVAL.THREE_MIN:\n\t\t\t\treturn 180;\n\t\t\tcase RFP_TIMING_INTERVAL.FIVE_MIN:\n\t\t\t\treturn 300;\n\t\t\tcase RFP_TIMING_INTERVAL.TEN_MIN:\n\t\t\t\treturn 600;\n\t\t\tcase RFP_TIMING_INTERVAL.FIFTEEN_MIN:\n\t\t\t\treturn 900;\n\t\t\tcase RFP_TIMING_INTERVAL.THIRTY_MIN:\n\t\t\t\treturn 1800;\n\t\t\tcase RFP_TIMING_INTERVAL.SIXTY_MIN:\n\t\t\t\treturn 3600;\n\t\t\tcase RFP_TIMING_INTERVAL.TWO_HOURS:\n\t\t\t\treturn 7200;\n\t\t\tcase RFP_TIMING_INTERVAL.THREE_HOURS:\n\t\t\t\treturn 10800;\n\t\t\tcase RFP_TIMING_INTERVAL.FOUR_HOURS:\n\t\t\t\treturn 14400;\n\t\t\tcase RFP_TIMING_INTERVAL.EIGHT_HOURS:\n\t\t\t\treturn 28800;\n\t\t\tcase RFP_TIMING_INTERVAL.ONE_DAY:\n\t\t\t\treturn 86400;\n\t\t\tcase RFP_TIMING_INTERVAL.ONE_WEEK:\n\t\t\t\treturn 604800;\n\t\t\tcase RFP_TIMING_INTERVAL.ONE_MONTH:\n\t\t\t\treturn 40320 * 60;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tpublic static getRFPTimingInterval(timeScale: TimeScale) {\n\t\tswitch (timeScale) {\n\t\t\tcase 'TS_1MIN':\n\t\t\t\treturn RFP_TIMING_INTERVAL.ONE_MIN;\n\t\t\tcase 'TS_2MIN':\n\t\t\t\treturn RFP_TIMING_INTERVAL.TWO_MIN;\n\t\t\tcase 'TS_3MIN':\n\t\t\t\treturn RFP_TIMING_INTERVAL.THREE_MIN;\n\t\t\tcase 'TS_5MIN':\n\t\t\t\treturn RFP_TIMING_INTERVAL.FIVE_MIN;\n\t\t\tcase 'TS_10MIN':\n\t\t\t\treturn RFP_TIMING_INTERVAL.TEN_MIN;\n\t\t\tcase 'TS_15MIN':\n\t\t\t\treturn RFP_TIMING_INTERVAL.FIFTEEN_MIN;\n\t\t\tcase 'TS_30MIN':\n\t\t\t\treturn RFP_TIMING_INTERVAL.THIRTY_MIN;\n\t\t\tcase 'TS_1HOUR':\n\t\t\t\treturn RFP_TIMING_INTERVAL.SIXTY_MIN;\n\t\t\tcase 'TS_2HOUR':\n\t\t\t\treturn RFP_TIMING_INTERVAL.TWO_HOURS;\n\t\t\tcase 'TS_3HOUR':\n\t\t\t\treturn RFP_TIMING_INTERVAL.THREE_HOURS;\n\t\t\tcase 'TS_4HOUR':\n\t\t\t\treturn RFP_TIMING_INTERVAL.FOUR_HOURS;\n\t\t\tcase 'TS_8HOUR':\n\t\t\t\treturn RFP_TIMING_INTERVAL.EIGHT_HOURS;\n\t\t\tcase 'TS_1DAY':\n\t\t\t\treturn RFP_TIMING_INTERVAL.ONE_DAY;\n\t\t\tcase 'TS_1WEEK':\n\t\t\t\treturn RFP_TIMING_INTERVAL.ONE_WEEK;\n\t\t\tcase 'TS_1MONTH':\n\t\t\t\treturn RFP_TIMING_INTERVAL.ONE_MONTH;\n\t\t}\n\t\treturn 0;\n\t}\n}\n\nexport default ChartUtils;\n","import { PriceQuote, PriceType, TimeScale, TradingAccount, TradingPosition } from '../../gateways/RfpGateway/rfp.types';\nimport RfpGateway, { IPriceFeed } from '../../gateways/RfpGateway/RfpGateway';\n\nimport { findCommonMarketItem, getTradingInstrument } from './calculations';\nimport { Resolver } from './Ioc';\nimport Lazy from './Lazy';\nimport { Optional } from './Nullable';\n\nclass TTSubscriptionManager {\n\tprivate static _instance = new Lazy(() => {\n\t\treturn new TTSubscriptionManager();\n\t});\n\n\tpublic static get instance(): TTSubscriptionManager {\n\t\treturn this._instance.getValue();\n\t}\n\n\t//private readonly currentPrices: Map = new Map()\n\n\t/**\n\t * The Singleton's constructor should always be private to prevent direct\n\t * construction calls with the `new` operator.\n\t */\n\tprivate constructor() {}\n\n\tprivate priceFeed: IPriceFeed | undefined;\n\n\t// set rfpGateway(value: RfpGateway) {\n\t// if (!this._rfpGateway) {\n\t// this._rfpGateway = value\n\n\t// this._rfpGateway.subscribe(RFP.queueQuotes).then((observable) => {\n\t// //observable.filter\n\t// const subscription = observable.subscribe((priceQuote) => {\n\t// //this._rfpGateway?.currentPrices\n\t// this.currentPrices.set(`${priceQuote.f}-${priceQuote.c}`, priceQuote)\n\t// console.log(priceQuote)\n\t// })\n\t// this.subscription = subscription\n\t// })\n\t// }\n\t// }\n\n\tpublic getHistoryRequestId(code: string, timescale: TimeScale, priceType: PriceType | undefined) {\n\t\treturn `reqHS_${code}_${timescale}_${priceType}`;\n\t}\n\n\tpublic watchPriceQuote(\n\t\tfeedId: string,\n\t\tcode: string,\n\t\t_rfpGateway: Optional = undefined\n\t): PriceQuote | undefined {\n\t\tconst rfpGateway = _rfpGateway ?? Resolver.resolve(RfpGateway);\n\t\tif (rfpGateway) {\n\t\t\t//console.log(\"watchSecurityInfo code=\" + code)\n\t\t\tconst priceQuote = rfpGateway.getQuotePrices(feedId, code);\n\t\t\tthis.subscribeForPriceQuotes(rfpGateway, feedId, code);\n\t\t\treturn priceQuote;\n\t\t}\n\t}\n\n\tpublic unwatchPriceQuote(feedId: string, code: string) {\n\t\t//console.log(\"unwatchSecurityInfo code=\" + code)\n\t\tif (this.priceFeed) {\n\t\t\tthis.priceFeed.unsubscribe({ feedId: feedId, code: code });\n\t\t}\n\t}\n\n\tprivate subscribeForPriceQuotes(rfpGateway: RfpGateway, feedId: string, code: string) {\n\t\tthis.priceFeed = rfpGateway.createPriceFeed(feedId);\n\t\tif (this.priceFeed) {\n\t\t\tthis.priceFeed.subscribe({ feedId: feedId, code: code });\n\t\t}\n\t}\n\n\t/**\n\t * This will subscribe or unsubscribe all instruments required for calculations of the provided position\n\t */\n\tpublic updatePositionSubscriptions(\n\t\ttradingAccount: TradingAccount,\n\t\tposition: TradingPosition,\n\t\tsubscribe: boolean,\n\t\t_rfpGateway: Optional\n\t) {\n\t\tconst rfpGateway =\n\t\t\t_rfpGateway ?? (Resolver.isSet && Resolver.isRegistered(RfpGateway)) ? Resolver.resolve(RfpGateway) : undefined;\n\t\tif (rfpGateway) {\n\t\t\tif (subscribe) {\n\t\t\t\tthis.watchPriceQuote(position.f, position.code, rfpGateway);\n\t\t\t} else {\n\t\t\t\tthis.unwatchPriceQuote(position.f, position.code);\n\t\t\t}\n\n\t\t\tconst baseCcyPos = position.marketItem?.qCcy;\n\t\t\tif (!baseCcyPos) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet baseCcyAcct = tradingAccount.baseCurrency;\n\t\t\tif (!baseCcyAcct) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet mt = rfpGateway.getMarketItem(position.code, position.f);\n\t\t\tif (mt === undefined) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (baseCcyPos !== baseCcyAcct) {\n\t\t\t\tlet pair = baseCcyPos + baseCcyAcct;\n\n\t\t\t\tlet info = getTradingInstrument(tradingAccount, pair);\n\t\t\t\tif (!info) {\n\t\t\t\t\tpair = baseCcyAcct + baseCcyPos;\n\t\t\t\t\tinfo = getTradingInstrument(tradingAccount, pair);\n\t\t\t\t}\n\n\t\t\t\tif (!info) {\n\t\t\t\t\tpair = baseCcyAcct + mt.bCcy;\n\n\t\t\t\t\tinfo = getTradingInstrument(tradingAccount, pair);\n\t\t\t\t\tif (!info) {\n\t\t\t\t\t\tpair = mt.bCcy + baseCcyAcct;\n\t\t\t\t\t\tinfo = getTradingInstrument(tradingAccount, pair);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!info) {\n\t\t\t\t\t// Find cross symbol\n\t\t\t\t\tlet mtPair: any = findCommonMarketItem(baseCcyPos, baseCcyAcct, rfpGateway);\n\t\t\t\t\tif (mtPair) {\n\t\t\t\t\t\tpair = mtPair.first.code;\n\n\t\t\t\t\t\tif (pair) {\n\t\t\t\t\t\t\tif (subscribe) {\n\t\t\t\t\t\t\t\tposition.additionalSubscriptionPair.add(pair);\n\t\t\t\t\t\t\t\tthis.watchPriceQuote(position.f, pair, rfpGateway);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tposition.additionalSubscriptionPair.delete(pair);\n\t\t\t\t\t\t\t\tthis.unwatchPriceQuote(position.f, pair);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinfo = getTradingInstrument(tradingAccount, mtPair.second.code);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (info) {\n\t\t\t\t\tpair = info.code;\n\n\t\t\t\t\tif (subscribe) {\n\t\t\t\t\t\tposition.additionalSubscriptionPair.add(pair);\n\t\t\t\t\t\tthis.watchPriceQuote(position.f, pair, rfpGateway);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tposition.additionalSubscriptionPair.delete(pair);\n\t\t\t\t\t\tthis.unwatchPriceQuote(position.f, pair);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.log('Missing context');\n\t\t}\n\t}\n}\n\nexport default TTSubscriptionManager;\n","import React, { useContext, useEffect, useRef, useState } from 'react';\nimport { NumberSize, Resizable as ReResizable, ResizableProps } from 're-resizable';\nimport { Direction } from 're-resizable/lib/resizer';\n\nimport AppContext from '../../../contexts/AppContext';\n\nimport { getWtrResizableConfig, WtrResizableConfigItem } from './config';\n\nimport './WtrResizable.module.scss';\nimport positionsStore from '../../../store/PositionsStore/positionsStore';\n\nconst LOCAL_STORAGE_KEY = 'wtrResizableWidths';\n\nconst getStoredSizes = () => {\n\tconst storedString = localStorage.getItem(LOCAL_STORAGE_KEY);\n\n\tif (storedString) {\n\t\ttry {\n\t\t\treturn JSON.parse(storedString);\n\t\t} catch (e) {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\treturn {};\n};\n\nconst storeDimensions = (panelName: string, width: number | undefined, height: number | undefined) => {\n\tconst initialObject = getStoredSizes();\n\tconst newObject = {\n\t\t...initialObject,\n\t\t[panelName]: {\n\t\t\twidth: Number(width) || null,\n\t\t\theight: Number(height) || null,\n\t\t},\n\t};\n\n\tlet newStoredString = null;\n\ttry {\n\t\tnewStoredString = JSON.stringify(newObject, (_, v) => (v === undefined ? null : v));\n\t} catch (e) {\n\t\treturn;\n\t}\n\n\tlocalStorage.setItem(LOCAL_STORAGE_KEY, newStoredString);\n};\n\nconst getEnabledResizeDirection = (config: WtrResizableConfigItem) => {\n\tconst settings = config.enable;\n\tconst hasEnabledX = !settings || settings.right || settings.left;\n\tconst hasEnabledY = !settings || settings.top || settings.bottom;\n\treturn { x: hasEnabledX, y: hasEnabledY };\n};\n\ninterface WtrPanelSize {\n\twidth?: number;\n\theight?: number;\n}\n\ninterface WtrResizableProps extends ResizableProps {\n\tpanelName:\n\t\t| 'watchlist'\n\t\t| 'tradeBoard'\n\t\t| 'positionsGrid'\n\t\t| 'tradeTicket'\n\t\t| 'marketsGroups'\n\t\t| 'marketsNews'\n\t\t| 'simulationsList'\n\t\t| 'simulationsGrid'\n\t\t| 'signalsList'\n\t\t| 'signalsOverview';\n\t//Used by new design currently not implemented\n\t/* | 'marketsNewsRight'\n | 'marketSignals'\n | 'fallers'\n | 'risers'; */\n\tenableResizing?: boolean;\n\tsetSidePanelWidth?: React.Dispatch>;\n\tsetNewsPanelHeight?: React.Dispatch>;\n}\n\n/**\n * This is a wrapper component to the Re-resizable component, used for storing the container sizing data.\n */\nconst WtrResizable = ({\n\tpanelName,\n\tenableResizing,\n\tsize,\n\tchildren,\n\tsetSidePanelWidth,\n\tsetNewsPanelHeight,\n\t...rest\n}: WtrResizableProps) => {\n\tconst isInitialMount = useRef(true);\n\tconst appContext = useContext(AppContext);\n\tconst config = getWtrResizableConfig(panelName, appContext.isArabic);\n\n\tconst enabledDirections = config ? getEnabledResizeDirection(config) : { x: true, y: true };\n\n\tconst setWatchListPanelSize = positionsStore.use.setWatchListPanelSize();\n\tconst setGridHeight = positionsStore.use.setGridHeight();\n\n\tconst defaultSize: WtrPanelSize = {};\n\tif (enabledDirections.x) {\n\t\tdefaultSize.width = config?.minWidth || 0;\n\t}\n\n\tif (enabledDirections.y) {\n\t\tdefaultSize.height = config?.minHeight || 0;\n\t}\n\n\tconst [panelSize, setPanelSize] = useState(defaultSize);\n\n\tconst handleResizeStop = (_e: MouseEvent | TouchEvent, _direction: Direction, _ref: HTMLElement, d: NumberSize) => {\n\t\tsetPanelSize((prevSize) => {\n\t\t\tconst newSize = {\n\t\t\t\t...prevSize,\n\t\t\t};\n\t\t\tif (enabledDirections.x && prevSize.width) {\n\t\t\t\tnewSize.width = prevSize.width + d.width;\n\t\t\t}\n\t\t\tif (enabledDirections.y && prevSize.height) {\n\t\t\t\tnewSize.height = prevSize.height + d.height;\n\t\t\t}\n\t\t\treturn newSize;\n\t\t});\n\n\t\tif (panelName === 'positionsGrid') {\n\t\t\tif (panelSize.height) {\n\t\t\t\tsetGridHeight(panelSize.height + d.height);\n\t\t\t}\n\t\t}\n\n\t\tif (panelName === 'watchlist') {\n\t\t\tsetWatchListPanelSize(panelSize?.width || 0);\n\t\t}\n\n\t\tif (setSidePanelWidth) {\n\t\t\tsetSidePanelWidth((state) => state + 1);\n\t\t}\n\n\t\tif (setNewsPanelHeight && panelSize.height) {\n\t\t\tsetNewsPanelHeight(panelSize.height + d.height);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (!panelName) return;\n\n\t\tconst size = getStoredSizes()?.[panelName];\n\t\tconst newSize: WtrPanelSize = {};\n\t\tlet newWidth = null;\n\n\t\tif (enabledDirections.x) {\n\t\t\tnewWidth = size?.width || rest.defaultSize?.width || defaultSize.width || null;\n\t\t}\n\n\t\tlet newHeight = null;\n\t\tif (enabledDirections.y) {\n\t\t\tnewHeight = size?.height || rest.defaultSize?.height || defaultSize.height || null;\n\t\t\tif (panelName === 'positionsGrid') {\n\t\t\t\tsetGridHeight(newHeight);\n\t\t\t}\n\t\t}\n\n\t\tif (newWidth) {\n\t\t\tnewSize.width = newWidth;\n\t\t}\n\t\tif (newHeight) {\n\t\t\tnewSize.height = newHeight;\n\t\t}\n\n\t\tsetPanelSize(newSize);\n\t\tif (setNewsPanelHeight) {\n\t\t\tsetNewsPanelHeight(newHeight);\n\t\t}\n\t}, [panelName, setNewsPanelHeight]);\n\n\tuseEffect(() => {\n\t\tif (!panelName) {\n\t\t\treturn;\n\t\t}\n\t\tif (isInitialMount.current) {\n\t\t\tisInitialMount.current = false;\n\t\t\treturn;\n\t\t}\n\t\tstoreDimensions(panelName, panelSize.width, panelSize.height);\n\t}, [panelName, panelSize.width, panelSize.height]);\n\n\tif (panelName === 'tradeTicket' && !enableResizing) return <>{children};\n\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n\nexport default WtrResizable;\n","export interface WtrResizableConfigItem {\n\tminWidth?: number;\n\tminHeight?: number;\n\tmaxWidth?: string | number; // this value can handle percentages\n\tmaxHeight?: string | number;\n\twidth?: string;\n\theight?: string;\n\tenable?: any;\n\thandleClasses?: any;\n}\n\nexport interface WtrResizableConfig {\n\t[key: string]: WtrResizableConfigItem;\n}\n\nexport const getWtrResizableConfig = (panelName: string | undefined, isArabic: boolean) => {\n\tif (!panelName) {\n\t\treturn null;\n\t}\n\n\tconst config: WtrResizableConfig = {\n\t\twatchlist: {\n\t\t\tminWidth: 330,\n\t\t\tmaxWidth: '45%',\n\t\t\theight: '100%',\n\t\t\tenable: {\n\t\t\t\ttop: false,\n\t\t\t\tright: !isArabic,\n\t\t\t\tbottom: false,\n\t\t\t\tleft: isArabic,\n\t\t\t\ttopRight: false,\n\t\t\t\tbottomRight: false,\n\t\t\t\tbottomLeft: false,\n\t\t\t\ttopLeft: false,\n\t\t\t},\n\t\t\thandleClasses: {\n\t\t\t\tleft: 'resizableHandle',\n\t\t\t\tright: 'resizableHandle',\n\t\t\t},\n\t\t},\n\t\tpositionsGrid: {\n\t\t\tminHeight: 200,\n\t\t\tmaxHeight: '60%',\n\t\t\twidth: '100%',\n\t\t\tenable: {\n\t\t\t\ttop: true,\n\t\t\t\tright: false,\n\t\t\t\tbottom: false,\n\t\t\t\tleft: false,\n\t\t\t\ttopRight: false,\n\t\t\t\tbottomRight: false,\n\t\t\t\tbottomLeft: false,\n\t\t\t\ttopLeft: false,\n\t\t\t},\n\t\t\thandleClasses: {\n\t\t\t\ttop: 'resizableHandle',\n\t\t\t},\n\t\t},\n\t\ttradeTicket: {\n\t\t\tminWidth: 320,\n\t\t\tmaxWidth: 460,\n\t\t\theight: '100%',\n\t\t\tenable: {\n\t\t\t\ttop: true,\n\t\t\t\tright: isArabic,\n\t\t\t\tbottom: false,\n\t\t\t\tleft: !isArabic,\n\t\t\t\ttopRight: false,\n\t\t\t\tbottomRight: false,\n\t\t\t\tbottomLeft: false,\n\t\t\t\ttopLeft: false,\n\t\t\t},\n\t\t\thandleClasses: {\n\t\t\t\tleft: 'resizableHandle',\n\t\t\t\tright: 'resizableHandle',\n\t\t\t},\n\t\t},\n\t\tmarketsGroups: {\n\t\t\tminWidth: 140,\n\t\t\tmaxWidth: isArabic ? 300 : 240,\n\t\t\theight: '100%',\n\t\t\tenable: {\n\t\t\t\ttop: false,\n\t\t\t\tright: !isArabic,\n\t\t\t\tbottom: false,\n\t\t\t\tleft: isArabic,\n\t\t\t\ttopRight: false,\n\t\t\t\tbottomRight: false,\n\t\t\t\tbottomLeft: false,\n\t\t\t\ttopLeft: false,\n\t\t\t},\n\t\t\thandleClasses: {\n\t\t\t\tleft: 'resizableHandle',\n\t\t\t\tright: 'resizableHandle',\n\t\t\t},\n\t\t},\n\t\tmarketsNews: {\n\t\t\tminHeight: 340,\n\t\t\tmaxHeight: '80%',\n\t\t\twidth: '100%',\n\t\t\tenable: {\n\t\t\t\ttop: true,\n\t\t\t\tright: false,\n\t\t\t\tbottom: false,\n\t\t\t\tleft: false,\n\t\t\t\ttopRight: false,\n\t\t\t\tbottomRight: false,\n\t\t\t\tbottomLeft: false,\n\t\t\t\ttopLeft: false,\n\t\t\t},\n\t\t\thandleClasses: {\n\t\t\t\ttop: 'resizableHandle',\n\t\t\t},\n\t\t},\n\t\tsimulationsList: {\n\t\t\tminWidth: 290,\n\t\t\tmaxWidth: '45%',\n\t\t\theight: '100%',\n\t\t\tenable: {\n\t\t\t\ttop: false,\n\t\t\t\tright: !isArabic,\n\t\t\t\tbottom: false,\n\t\t\t\tleft: isArabic,\n\t\t\t\ttopRight: false,\n\t\t\t\tbottomRight: false,\n\t\t\t\tbottomLeft: false,\n\t\t\t\ttopLeft: false,\n\t\t\t},\n\t\t\thandleClasses: {\n\t\t\t\tleft: 'resizableHandle',\n\t\t\t\tright: 'resizableHandle',\n\t\t\t},\n\t\t},\n\t\tsimulationsGrid: {\n\t\t\tminHeight: 200,\n\t\t\tmaxHeight: '60%',\n\t\t\twidth: '100%',\n\t\t\tenable: {\n\t\t\t\ttop: true,\n\t\t\t\tright: false,\n\t\t\t\tbottom: false,\n\t\t\t\tleft: false,\n\t\t\t\ttopRight: false,\n\t\t\t\tbottomRight: false,\n\t\t\t\tbottomLeft: false,\n\t\t\t\ttopLeft: false,\n\t\t\t},\n\t\t\thandleClasses: {\n\t\t\t\ttop: 'resizableHandle',\n\t\t\t},\n\t\t},\n\t\tsignalsList: {\n\t\t\tminWidth: 290,\n\t\t\tmaxWidth: '45%',\n\t\t\theight: '100%',\n\t\t\tenable: {\n\t\t\t\ttop: false,\n\t\t\t\tright: !isArabic,\n\t\t\t\tbottom: false,\n\t\t\t\tleft: isArabic,\n\t\t\t\ttopRight: false,\n\t\t\t\tbottomRight: false,\n\t\t\t\tbottomLeft: false,\n\t\t\t\ttopLeft: false,\n\t\t\t},\n\t\t\thandleClasses: {\n\t\t\t\tleft: 'resizableHandle',\n\t\t\t\tright: 'resizableHandle',\n\t\t\t},\n\t\t},\n\t\tsignalsOverview: {\n\t\t\tminHeight: 328,\n\t\t\tmaxHeight: 400,\n\t\t\twidth: '100%',\n\t\t\tenable: {\n\t\t\t\ttop: true,\n\t\t\t\tright: false,\n\t\t\t\tbottom: false,\n\t\t\t\tleft: false,\n\t\t\t\ttopRight: false,\n\t\t\t\tbottomRight: false,\n\t\t\t\tbottomLeft: false,\n\t\t\t\ttopLeft: false,\n\t\t\t},\n\t\t\thandleClasses: {\n\t\t\t\ttop: 'resizableHandle',\n\t\t\t},\n\t\t},\n\t\t//This is used by the new design which currently isn`t implemented\n\t\t/* marketsNewsRight: {\n\t\t\t\tminWidth: 275,\n\t\t\t\tmaxWidth: 370,\n\t\t\t\theight: '100%',\n\t\t\t\tenable: {\n\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\tright: isArabic ? true : false,\n\t\t\t\t\t\tbottom: false,\n\t\t\t\t\t\tleft: isArabic ? false : true,\n\t\t\t\t\t\ttopRight: false,\n\t\t\t\t\t\tbottomRight: false,\n\t\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\t\ttopLeft: false,\n\t\t\t\t},\n\t\t\t\thandleClasses: {\n\t\t\t\t\t\tleft: 'resizableHandle',\n\t\t\t\t\t\tright: 'resizableHandle',\n\t\t\t\t},\n\t\t},\n\t\tmarketSignals: {\n\t\t\t\tminWidth: 500,\n\t\t\t\tmaxWidth: '40%',\n\t\t\t\theight: '100%',\n\t\t\t\tenable: {\n\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\tright: isArabic ? false : true,\n\t\t\t\t\t\tbottom: false,\n\t\t\t\t\t\tleft: isArabic ? true : false,\n\t\t\t\t\t\ttopRight: false,\n\t\t\t\t\t\tbottomRight: false,\n\t\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\t\ttopLeft: false,\n\t\t\t\t},\n\t\t\t\thandleClasses: {\n\t\t\t\t\t\tleft: 'resizableHandle',\n\t\t\t\t\t\tright: 'resizableHandle',\n\t\t\t\t},\n\t\t},\n\t\trisers: {\n\t\t\t\tminWidth: 500,\n\t\t\t\tmaxWidth: '40%',\n\t\t\t\theight: '100%',\n\t\t\t\tenable: {\n\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\tright: true,\n\t\t\t\t\t\tbottom: false,\n\t\t\t\t\t\tleft: true,\n\t\t\t\t\t\ttopRight: false,\n\t\t\t\t\t\tbottomRight: false,\n\t\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\t\ttopLeft: false,\n\t\t\t\t},\n\t\t\t\thandleClasses: {\n\t\t\t\t\t\tleft: 'resizableHandle',\n\t\t\t\t\t\tright: 'resizableHandle',\n\t\t\t\t},\n\t\t},\n\t\tfallers: {\n\t\t\t\tminWidth: 500,\n\t\t\t\tmaxWidth: '40%',\n\t\t\t\theight: '100%',\n\t\t\t\tenable: {\n\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\tright: isArabic ? true : false,\n\t\t\t\t\t\tbottom: false,\n\t\t\t\t\t\tleft: isArabic ? false : true,\n\t\t\t\t\t\ttopRight: false,\n\t\t\t\t\t\tbottomRight: false,\n\t\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\t\ttopLeft: false,\n\t\t\t\t},\n\t\t\t\thandleClasses: {\n\t\t\t\t\t\tleft: 'resizableHandle',\n\t\t\t\t\t\tright: 'resizableHandle',\n\t\t\t\t},\n\t\t}, */\n\t};\n\n\tconst keyToFetch = Object.keys(config).find((panelKey) => panelKey.toLowerCase() === panelName.toLowerCase());\n\treturn keyToFetch ? config[keyToFetch] : null;\n};\n","import { ChartTimezone } from '../../utils/functions/enums';\n\nimport { TPreferenceResponse } from './UserPreferencesGateway.types';\n\nexport const defaultCFDPreference = (tradingMode: 'Live' | 'Demo'): TPreferenceResponse => {\n\tconst userPreferences: TPreferenceResponse = {\n\t\tuser_prefs: {\n\t\t\tmeta: {\n\t\t\t\tid: 'tt_web',\n\t\t\t\tapp_version: '1.0',\n\t\t\t\tlastModified: new Date().getMilliseconds().toString(),\n\t\t\t},\n\t\t\tplatform: {\n\t\t\t\taccountType: {\n\t\t\t\t\t_name: tradingMode,\n\t\t\t\t},\n\t\t\t\taccountTypes: {},\n\t\t\t\tlang: {\n\t\t\t\t\t_code: 'en',\n\t\t\t\t\t_name: 'English',\n\t\t\t\t},\n\t\t\t\ttheme: {\n\t\t\t\t\t_type: 'Light',\n\t\t\t\t},\n\t\t\t\ttimezone: {\n\t\t\t\t\t_name: ChartTimezone.Local,\n\t\t\t\t\t_gmtOffset: '',\n\t\t\t\t},\n\t\t\t\tlastLoggedAct: {\n\t\t\t\t\tlive: '',\n\t\t\t\t\tdemo: '',\n\t\t\t\t},\n\t\t\t\tinactivity: 21600,\n\t\t\t\tos: {\n\t\t\t\t\tname: 'Web',\n\t\t\t\t\tversion: '1.0',\n\t\t\t\t},\n\t\t\t},\n\t\t\ttrading: {\n\t\t\t\tsettings: {\n\t\t\t\t\tcfd: {\n\t\t\t\t\t\t_mode: 'Regular',\n\t\t\t\t\t\t_quantityType: 'Amount',\n\t\t\t\t\t\t_tradeFromChartEnabled: true,\n\t\t\t\t\t\t_notificationSoundMuted: false,\n\t\t\t\t\t\t_notificationSoundVolume: 50,\n\t\t\t\t\t},\n\t\t\t\t\tequity: {\n\t\t\t\t\t\t_mode: 'Regular',\n\t\t\t\t\t\t_quantityType: 'Amount',\n\t\t\t\t\t\t_tradeFromChartEnabled: true,\n\t\t\t\t\t\t_notificationSoundMuted: false,\n\t\t\t\t\t\t_notificationSoundVolume: 50,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tcalendar: {},\n\t\t\tcharts: { templates: [], studyTemplates: [], layout: {}, drawingTemplates: [], settingsTemplate: {} },\n\t\t\tsearch: {},\n\t\t\twatchlists: {\n\t\t\t\taccount: [\n\t\t\t\t\t{\n\t\t\t\t\t\twatchlist: [],\n\t\t\t\t\t\t_type: 'Demo',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\twatchlist: [],\n\t\t\t\t\t\t_type: 'Live',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\twatchlist: [],\n\t\t\t\t\t\t_type: 'Demo',\n\t\t\t\t\t\taccountType: 'SpreadBetting',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\twatchlist: [],\n\t\t\t\t\t\t_type: 'Live',\n\t\t\t\t\t\taccountType: 'SpreadBetting',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t};\n\n\treturn userPreferences;\n};\n","import { AppContextProvider } from '../../contexts/AppContext';\nimport { defaultCFDPreference } from '../../gateways/UserPreferencesGateway/defaultCFDPreference';\nimport { TPreferenceResponse } from '../../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\n\nexport const storeUserPreferences = (appContext: AppContextProvider) => {\n\tconst convertUserPref = JSON.stringify(appContext.userPreferences);\n\n\tif (convertUserPref !== null && convertUserPref !== 'null') {\n\t\tlocalStorage.setItem(`userPref-${appContext.email}`, convertUserPref);\n\t}\n};\n\nexport const getSavedPreferencesForUser = (appContext: AppContextProvider) => {\n\ttry {\n\t\treturn JSON.parse(localStorage.getItem(`userPref-${appContext.email}`) ?? '{}');\n\t} catch (error) {\n\t\tconsole.error('Error getting saved preferences for user', error);\n\t}\n\n\treturn undefined;\n};\n\nexport const fillUserPrefLocally = (appContext: AppContextProvider, isLiveMode: boolean) => {\n\ttry {\n\t\tconst localUserPref = localStorage.getItem(`userPref-${appContext.email}`);\n\t\tif (localUserPref !== null && localUserPref !== 'null') {\n\t\t\tconst parsedUserPref: TPreferenceResponse = JSON.parse(localUserPref);\n\t\t\tappContext.userPreferences = parsedUserPref;\n\t\t} else {\n\t\t\tappContext.userPreferences = defaultCFDPreference(isLiveMode ? 'Live' : 'Demo');\n\t\t\tappContext.userPreferenceError = true;\n\t\t}\n\t} catch (error) {\n\t\tconsole.error('Error filling user preferences locally', error);\n\t}\n};\n\nexport const loadUserPrefLocally = (appContext: AppContextProvider) => {\n\ttry {\n\t\tif (localStorage.getItem(`userPref-${appContext.email}`)) {\n\t\t\tconst localUserPref = localStorage.getItem(`userPref-${appContext.email}`)!;\n\t\t\tconst parsedUserPref: TPreferenceResponse = JSON.parse(localUserPref);\n\t\t\tif (parsedUserPref) {\n\t\t\t\tappContext.userPreferences = parsedUserPref;\n\t\t\t}\n\t\t}\n\t} catch (error) {\n\t\tconsole.error('Error loading user preferences locally', error);\n\t}\n};\n","import React from 'react';\nimport { Modal as SemanticUiModal } from 'semantic-ui-react';\n\nimport cn from 'classnames';\n\nimport styles from './WtrModal.module.scss';\n\nconst WtrModal = ({ children, ...rest }: any) => {\n\trest.className = cn(rest.className, styles.wtrModal);\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n\nWtrModal.Header = SemanticUiModal.Header;\nWtrModal.Content = SemanticUiModal.Content;\nWtrModal.Description = SemanticUiModal.Description;\nWtrModal.Actions = SemanticUiModal.Actions;\n\nexport default WtrModal;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"newsfeedContainer\":\"Newsfeed_newsfeedContainer__uFyzH\",\"closeButtonLocation\":\"Newsfeed_closeButtonLocation__HQhXR\",\"empty\":\"Newsfeed_empty__3xH27\",\"emptyIcon\":\"Newsfeed_emptyIcon__3lRpJ\",\"message\":\"Newsfeed_message__3bDJI\",\"contentsAndDisclaimer\":\"Newsfeed_contentsAndDisclaimer__3SUEo\"};","import { HistoryTick, Instrument, PriceQuote } from '../../../gateways/RfpGateway/rfp.types';\nimport { findCommonMarketItem, getMarketItem } from '../../../utils/functions/calculations';\n\nimport { GymTradingAccount } from '../Accounts/GymTradingAccount';\n\nimport { GymHistoryManager } from './GymHistoryManager';\n\n/**\n * The TPRefQuotesStore class defines the `sharedInstance` method that lets clients access\n * the unique singleton instance.\n */\nclass GymRefQuotesStore {\n\tprivate static instance: GymRefQuotesStore;\n\tprivate refQuotes = new Map();\n\n\t/**\n\t * The TPRefQuotesStore's constructor should always be private to prevent direct\n\t * construction calls with the `new` operator.\n\t */\n\tprivate constructor() {}\n\n\t/**\n\t * The static method that controls the access to the singleton instance.\n\t */\n\tpublic static sharedInstance(): GymRefQuotesStore {\n\t\tif (!GymRefQuotesStore.instance) {\n\t\t\tGymRefQuotesStore.instance = new GymRefQuotesStore();\n\t\t}\n\t\treturn GymRefQuotesStore.instance;\n\t}\n\n\tpublic addTicks(historyTicks: HistoryTick[], reqId: string) {\n\t\tthis.refQuotes.set(reqId, historyTicks);\n\t}\n\n\tpublic getPrice(baseCurrency: string, accountCurrency: string, closeTime: number, reqId: string) {\n\t\tif (baseCurrency === accountCurrency) {\n\t\t\treturn 1.0;\n\t\t}\n\n\t\tconst key = `${GymHistoryManager.buildRefQuoteKey(reqId)}_${accountCurrency}`;\n\t\tconst dataItems = this.refQuotes.get(key);\n\t\tif (dataItems) {\n\t\t\tconst dataItem = this.searchDataItem(dataItems, closeTime);\n\t\t\tif (dataItem) {\n\t\t\t\tif (baseCurrency === 'JPY') {\n\t\t\t\t\treturn 1 / dataItem.close;\n\t\t\t\t}\n\t\t\t\treturn dataItem.close;\n\t\t\t}\n\t\t}\n\n\t\treturn NaN;\n\t}\n\n\tpublic getTradingInstrument(account: GymTradingAccount, code: string): Instrument | undefined {\n\t\treturn account.tradingInstruments?.instruments[code];\n\t}\n\n\tprivate convertHistoryTickToPriceQuote = (historyTick: HistoryTick) => {\n\t\treturn {\n\t\t\ta: historyTick.close,\n\t\t\tb: historyTick.close,\n\t\t\tc: historyTick.code,\n\t\t\tf: historyTick.feedId,\n\t\t\th: historyTick.high,\n\t\t\tl: historyTick.low,\n\t\t\tt: historyTick.openTime,\n\t\t} as PriceQuote;\n\t};\n\n\tpublic getQuotePrices(code: string, reqId: string, closeTime: number): PriceQuote | undefined {\n\t\tconst key = `${GymHistoryManager.buildRefQuoteKey(reqId)}_${code}`;\n\t\tconst historyTicks = this.refQuotes.get(key);\n\t\tif (historyTicks) {\n\t\t\tconst historyTick = this.searchDataItem(historyTicks, closeTime);\n\t\t\tif (historyTick) {\n\t\t\t\treturn this.convertHistoryTickToPriceQuote(historyTick);\n\t\t\t}\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tpublic convertToBaseCurrency = (\n\t\taccount: GymTradingAccount,\n\t\tquoteCurrency: string,\n\t\tfeedId: string,\n\t\tsymbol: string,\n\t\tisBuy: boolean,\n\t\tpl: number,\n\t\tclosePrice: number,\n\t\tcloseTime: number,\n\t\treqId: string\n\t) => {\n\t\tconst baseAccountCurrency = account.baseCurrency;\n\t\tif (quoteCurrency === baseAccountCurrency) {\n\t\t\treturn pl;\n\t\t}\n\n\t\tlet pair = quoteCurrency + baseAccountCurrency;\n\t\tlet inverse = false;\n\t\tlet homeCurrencyConversionRate;\n\n\t\tlet info = this.getTradingInstrument(account, pair);\n\n\t\tif (!info) {\n\t\t\tpair = baseAccountCurrency + quoteCurrency;\n\t\t\tinfo = this.getTradingInstrument(account, pair);\n\t\t\tinverse = true;\n\t\t}\n\n\t\tlet lastQuoteBaseCcy;\n\t\tif (info) {\n\t\t\tlastQuoteBaseCcy = this.getQuotePrices(info.code, reqId, closeTime);\n\t\t}\n\n\t\t//no luck...keep digging for a path\n\t\tif (!lastQuoteBaseCcy) {\n\t\t\tinverse = false;\n\t\t\tpl = pl / closePrice;\n\n\t\t\tlet mt = getMarketItem(feedId, symbol);\n\t\t\tif (mt) {\n\t\t\t\tpair = mt.bCcy + baseAccountCurrency;\n\t\t\t\tinfo = this.getTradingInstrument(account, pair);\n\n\t\t\t\tif (!info) {\n\t\t\t\t\tpair = baseAccountCurrency + mt.bCcy;\n\t\t\t\t\tinfo = this.getTradingInstrument(account, pair);\n\t\t\t\t\tinverse = true;\n\t\t\t\t}\n\n\t\t\t\tif (!info) {\n\t\t\t\t\tlet mtPair: any = findCommonMarketItem(quoteCurrency, baseAccountCurrency, null);\n\t\t\t\t\tif (mtPair) {\n\t\t\t\t\t\tpl = pl * closePrice;\n\t\t\t\t\t\tlastQuoteBaseCcy = this.getQuotePrices(mtPair.first.code, reqId, closeTime);\n\n\t\t\t\t\t\tif (lastQuoteBaseCcy) {\n\t\t\t\t\t\t\tinverse = !(mtPair.first.bCcy === quoteCurrency);\n\t\t\t\t\t\t\tif (inverse) {\n\t\t\t\t\t\t\t\thomeCurrencyConversionRate = isBuy ? lastQuoteBaseCcy.b : lastQuoteBaseCcy.a;\n\t\t\t\t\t\t\t\tpl = pl / homeCurrencyConversionRate;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\thomeCurrencyConversionRate = isBuy ? lastQuoteBaseCcy.a : lastQuoteBaseCcy.b;\n\t\t\t\t\t\t\t\tpl = pl * homeCurrencyConversionRate;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tinfo = this.getTradingInstrument(account, mtPair.second.code);\n\t\t\t\t\t\t\tinverse = mtPair.second.bCcy === baseAccountCurrency;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn NaN;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn NaN;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!info) {\n\t\t\t\treturn NaN;\n\t\t\t}\n\n\t\t\tlastQuoteBaseCcy = this.getQuotePrices(info.code, reqId, closeTime);\n\n\t\t\tif (lastQuoteBaseCcy) {\n\t\t\t\tif (inverse) {\n\t\t\t\t\thomeCurrencyConversionRate = isBuy ? lastQuoteBaseCcy.b : lastQuoteBaseCcy.a;\n\t\t\t\t\tpl = pl / homeCurrencyConversionRate;\n\t\t\t\t} else {\n\t\t\t\t\thomeCurrencyConversionRate = isBuy ? lastQuoteBaseCcy.a : lastQuoteBaseCcy.b;\n\t\t\t\t\tpl = pl * homeCurrencyConversionRate;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn NaN;\n\t\t\t}\n\n\t\t\treturn pl;\n\t\t}\n\n\t\tif (inverse) {\n\t\t\thomeCurrencyConversionRate = isBuy ? lastQuoteBaseCcy.b : lastQuoteBaseCcy.a;\n\t\t\tpl = pl / homeCurrencyConversionRate;\n\t\t} else {\n\t\t\thomeCurrencyConversionRate = isBuy ? lastQuoteBaseCcy.a : lastQuoteBaseCcy.b;\n\t\t\tpl = pl * homeCurrencyConversionRate;\n\t\t}\n\n\t\treturn pl;\n\t};\n\n\tpublic searchDataItem(a: HistoryTick[], closeTime: number): HistoryTick | undefined {\n\t\tlet low = 0;\n\t\tlet high = a.length - 1;\n\t\tlet mid = 0;\n\n\t\twhile (low <= high) {\n\t\t\tmid = parseInt(`${(low + high) / 2}`);\n\t\t\t//mid = (low + high) / 2;\n\t\t\tconst midVal = a[mid].closeTime;\n\t\t\tif (midVal < closeTime) low = mid + 1;\n\t\t\telse if (midVal > closeTime) high = mid - 1;\n\t\t\telse return a[mid];\n\t\t}\n\n\t\tconst index = Math.min(low, high);\n\t\tif (index < 0 && a.length > 0) {\n\t\t\treturn a[0];\n\t\t}\n\t\tif (index >= a.length && a.length > 0) {\n\t\t\treturn a[a.length - 1];\n\t\t}\n\t\treturn a[Math.min(low, high)];\n\t}\n}\n\nexport { GymRefQuotesStore };\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tier\":\"GroupBadge_tier__23Mqs\",\"groupIcon\":\"GroupBadge_groupIcon__30m4r\",\"commodities\":\"GroupBadge_commodities__2NlTk\",\"crypto\":\"GroupBadge_crypto__2EwNh\",\"cfd\":\"GroupBadge_cfd__1QFAp\",\"etf\":\"GroupBadge_etf__LONgs\",\"energy\":\"GroupBadge_energy__1kr5K\",\"forex\":\"GroupBadge_forex__jFTCx\",\"indices\":\"GroupBadge_indices__30_Wj\",\"metals\":\"GroupBadge_metals__3b691\",\"stocks\":\"GroupBadge_stocks__bPd48\",\"equities\":\"GroupBadge_equities__3P9YP\",\"tier1\":\"GroupBadge_tier1__1nsgY\",\"tier2\":\"GroupBadge_tier2__21mpz\",\"tier3\":\"GroupBadge_tier3__2BgU7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dailyPercentage\":\"DailyPercent_dailyPercentage__34t5S\",\"positive\":\"DailyPercent_positive__3y3Gi\",\"negative\":\"DailyPercent_negative__1dKvn\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"item\":\"NotificationsItem_item__3WR2W\",\"alert\":\"NotificationsItem_alert__1iED1\",\"icon\":\"NotificationsItem_icon__3VVg7\",\"iconContainer\":\"NotificationsItem_iconContainer__1AjZu\",\"content\":\"NotificationsItem_content__2hrop\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"AccountPanel_container__3NU2y\",\"accountPanelButton\":\"AccountPanel_accountPanelButton__2xQN6\",\"accountStatsWrapper\":\"AccountPanel_accountStatsWrapper__2oJ7T\",\"iconPlusEqual\":\"AccountPanel_iconPlusEqual__M6lZ5\",\"buttonToggleIcon\":\"AccountPanel_buttonToggleIcon__MTu2_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"infoModalWrapper\":\"InfoModal_infoModalWrapper__3_qZf\",\"contentWrapper\":\"InfoModal_contentWrapper__GAALs\",\"left\":\"InfoModal_left__1W_cg\",\"right\":\"InfoModal_right__1oixJ\",\"top\":\"InfoModal_top__2NsGG\",\"bottom\":\"InfoModal_bottom__2ZqGR\",\"header\":\"InfoModal_header__3Ybi3\",\"content\":\"InfoModal_content__25aO-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"popupContainer\":\"SignalsPopup_popupContainer__1LXzp\",\"title\":\"SignalsPopup_title__2xQYt\",\"content\":\"SignalsPopup_content__2Yb1l\",\"buttonsContainer\":\"SignalsPopup_buttonsContainer__39DhS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"AuthLayout_container__2Fzzv\",\"detachContainer\":\"AuthLayout_detachContainer__2Zndd\",\"detachContainerScroll\":\"AuthLayout_detachContainerScroll__1ljq8\",\"header\":\"AuthLayout_header__1O2GZ\",\"navigation\":\"AuthLayout_navigation__2_Wyj\",\"content\":\"AuthLayout_content__3wD8n\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"calendar\":\"Calendar_calendar__3CLj-\",\"displayNone\":\"Calendar_displayNone__3_EIv\",\"loader\":\"Calendar_loader__2mXLP\",\"fallBackCalendar\":\"Calendar_fallBackCalendar__1GgMf\",\"calendarContainer\":\"Calendar_calendarContainer__30Qrk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"fullWidthHeight\":\"DashboardContainerComponent_fullWidthHeight__2i397\"};","import React, { Dispatch, SetStateAction, useContext, useMemo, useRef } from 'react';\nimport cn from 'classnames';\nimport { useTranslation } from 'react-i18next';\n\nimport styles from '../../../../Markets/MarketsGridNew/components/TableSettingsModal.module.scss';\nimport { useClickOutside } from '../../../../Markets/MarketsGridNew/hooks/useClickOutside';\nimport AppContext from '../../../../../../contexts/AppContext';\nimport tradingAccountStore from '../../../../../../store/tradingAccountStore';\nimport DashboardContext from '../../../../../../contexts/DashboardContext';\nimport { TradingPositionState } from '../../../../../../gateways/RfpGateway/rfp.types';\n\ninterface SettingGridProps {\n\ttable: any;\n\tsetShowSettingsModal: Dispatch>;\n\ttype?: TradingPositionState;\n\tname: string;\n}\n\nconst SettingGrid = ({ table, setShowSettingsModal, type = TradingPositionState.open, name }: SettingGridProps) => {\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst columns = table.getAllLeafColumns();\n\n\tconst isChildWindow = appContext.isChildWindow ?? false;\n\n\tconst isSpreadBettingAccount = tradingAccountStore.use.isSpreadBetting();\n\n\tconst { t } = useTranslation();\n\n\tconst settingsRef = useRef(null);\n\tconst quantityType = dashboardContext.quantityType;\n\n\t// Click outside or escape key press hook\n\tuseClickOutside(settingsRef, () => setShowSettingsModal(false));\n\n\tconst changeCaption = useMemo(() => {\n\t\tconst caption = t('wtr:CHANGE');\n\t\treturn caption[caption.length - 1] === ':' ? caption.slice(0, -1) : caption;\n\t}, []);\n\n\tconst translations: { [key: string]: string } = useMemo(() => {\n\t\treturn {\n\t\t\tinstrument: t('en:INSTRUMENT'),\n\t\t\tsimulationId: t('wtr:SIMULATION'),\n\t\t\tside: t('en:SIDE'),\n\t\t\ttype: t('en:Type'),\n\t\t\tquantityType: quantityType === 'Lots' ? t(`en:QT_LOTS`) : t(`en:QT_AMOUNT`),\n\t\t\tamount: t(`en:QT_AMOUNT`),\n\t\t\tlots: t(`en:QT_LOTS`),\n\t\t\tonDate: t('wtr:ON_DATE'),\n\t\t\topenDate: t('en:OPEN_DATE'),\n\t\t\tcloseOn: t('wtr:WTR_CLOSED_ON'),\n\t\t\topen: t('en:OPEN_AT'),\n\t\t\tclosed: t('en:CLOSE_AT'),\n\t\t\tchange: changeCaption,\n\t\t\tcurrent: t('en:CURRENT'),\n\t\t\tTakeProfit: t('en:TAKE_PROFIT'),\n\t\t\tStopLoss: t('en:STOP_LOSS'),\n\t\t\tnetPL: t('en:NET_PL'),\n\t\t\tcreatedOn: t('wtr:CREATED_ON'),\n\t\t\tdistanceToMarket: t('wtr:DISTANCE_TO_MARKET'),\n\t\t\tgrossPL: t('en:GROSS_PL'),\n\t\t\ttime: t('en:OPEN_TIME'),\n\t\t\texpiryOn: t('en:EXPIRY_ON'),\n\t\t\tswap: t('en:SWAP'),\n\t\t\tclose: t('en:CLOSE'),\n\t\t\tclosedTime: t('en:Close Time'),\n\t\t\tpipsChange: t(`wtr:WTR_PL_IN_${isSpreadBettingAccount ? 'POINTS' : 'PIPS'}`),\n\t\t\tcomm: t('en:COMMISSION'),\n\t\t\tposId: type === TradingPositionState.pending ? t('en:ORDER_ID') : t('en:POSITION_ID'),\n\t\t\tcomment: t('en:POSITION_COMMENT'),\n\t\t\tdividend: t('en:DIVIDEND'),\n\t\t\tsettings: t('en:SETTINGS'),\n\t\t};\n\t}, []);\n\n\tconst onToggleChange = (column: any) => {\n\t\tlocalStorage.setItem(name, JSON.stringify(table.getState().columnVisibility));\n\t\treturn column.getToggleVisibilityHandler();\n\t};\n\n\treturn (\n\t\t\n\t\t\t
{t('wtr:COLUMN_CHOOSER')}
\n\n\t\t\t
\n\t\t\t\t{columns.map((column: any) => {\n\t\t\t\t\tconst isDisabledJapan = appContext.isJapanAccount && (column.id === 'dividend' || column.id === 'comm');\n\t\t\t\t\tconst isDisabled =\n\t\t\t\t\t\tcolumn.id === 'instrument' ||\n\t\t\t\t\t\tcolumn.id === 'close' ||\n\t\t\t\t\t\tcolumn.id === 'settings' ||\n\t\t\t\t\t\tcolumn.id === 'simulationId';\n\n\t\t\t\t\tif (isDisabled || isDisabledJapan) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default SettingGrid;\n","import React, { useContext, useState, useEffect } from 'react';\nimport styles from '../../PositionGrid/PositionGrid.module.scss';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { ColumnFiltersState, OnChangeFn } from '@tanstack/react-table';\nimport { useTranslation } from 'react-i18next';\nimport AppContext from '../../../../../../contexts/AppContext';\nimport DashboardContext from '../../../../../../contexts/DashboardContext';\nimport { TicketLayout } from '../../../../../../utils/functions/enums';\nimport getTimeFrameTranslation from '../../../../../../utils/functions/getTimeFrameTranslation';\nimport InstrumentContext from '../../../../../../contexts/InstrumentContext';\nimport useOrderTicketAccess from '../../../../../../utils/hooks/useOrderTicketAccess';\nimport tradingViewStore from '../../../../../../store/tradingViewStore';\nimport positionsStore from '../../../../../../store/PositionsStore/positionsStore';\nimport Button from '../../../../../../shared/Button';\nimport { TradingPositionState } from '../../../../../../gateways/RfpGateway/rfp.types';\nimport { IconName } from '@fortawesome/free-brands-svg-icons';\nimport { TradersGymContext, TradersGymContextType } from '../../../../../../pages/TradersGym/TradersGymContext';\n\nconst RenderClearFilters = ({\n\tcolumnFilters,\n\tsetColumnFilters,\n\ttype,\n\tperiodDropdownRef,\n}: {\n\tcolumnFilters: ColumnFiltersState;\n\tsetColumnFilters: OnChangeFn;\n\ttype: TradingPositionState;\n\tperiodDropdownRef?: any;\n}) => {\n\tconst { t } = useTranslation();\n\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst instrumentContext = useContext(InstrumentContext);\n\n\tconst orderTicketAccess = useOrderTicketAccess();\n\tconst setTicketLayout = tradingViewStore.use.setTicketLayout();\n\tconst [iconValue, setIconValue] = React.useState();\n\tconst positionTab = positionsStore.use.positionTab();\n\n\tlet emptyFilteredStateMessage = t('wtr:NO_OPEN_POSITIONS_FOUND');\n\tlet emptyStateMessage = appContext.isJapanAccount ? t('wtr:JP_NO_OPEN_POSITIONS') : t('en:NO_OPEN_POSITIONS');\n\t\n\tconst closeTrade = dashboardContext.closeTrade;\n\n\tconst gymContext = useContext(TradersGymContext) as TradersGymContextType;\n\tconst { tradersGymContext } = gymContext;\n\n\tif (type === TradingPositionState.pending) {\n\t\temptyFilteredStateMessage = t('wtr:NO_NAMED_PENDING_ORDERS');\n\t\temptyStateMessage = t('wtr:NO_PENDING_ORDERS');\n\t} else if (type === TradingPositionState.closed) {\n\t\temptyFilteredStateMessage = t('wtr:NO_POSITIONS_FOUND');\n\t\temptyStateMessage = t('wtr:WTR_NO_CLOSED_POSITIONS');\n\t}\n\n\tconst handleStartTrading = (event: any) => {\n\t\tevent.stopPropagation();\n\t\tif (orderTicketAccess()) {\n\t\t\tsetTicketLayout(TicketLayout.Dock);\n\t\t\tdashboardContext.closeAllOtherTabs();\n\t\t\tdashboardContext.showOrderTicket = true;\n\t\t\tinstrumentContext.focusInstrumentSearchInput();\n\t\t\tdashboardContext.startTradingNow = true;\n\t\t}\n\t\treturn false;\n\t};\n\t\n\tconst openPeriodDropdown = (event: React.MouseEvent) => {\n\t\tconst opener: any = event.target;\n\t\tconst periodDropDownComponent = periodDropdownRef.current;\n\n\t\tif (!periodDropDownComponent) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst hasOpenedDropDown = opener.dataset.hasOpenedDropDown === 'true';\n\t\tif (!hasOpenedDropDown) {\n\t\t\tperiodDropDownComponent.open();\n\t\t\topener.dataset.hasOpenedDropDown = 'true';\n\t\t} else {\n\t\t\tperiodDropDownComponent.close();\n\t\t\topener.dataset.hasOpenedDropDown = 'false';\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (positionTab === 0) {\n\t\t\tsetIconValue(['fal', 'chart-pie']);\n\t\t}\n\n\t\tif (positionTab === 1) {\n\t\t\tsetIconValue(['fal', 'tasks']);\n\t\t}\n\n\t\tif (positionTab === 2) {\n\t\t\tsetIconValue(['fal', 'clock-rotate-left']);\n\t\t}\n\t}, [positionTab, columnFilters.length]);\n\n\treturn columnFilters.length > 0 ? (\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t{emptyStateMessage}\n\t\t\t\t{positionTab === 2 && !tradersGymContext.isActive ? (\n\t\t\t\t\t\n\t\t\t\t\t\t{getTimeFrameTranslation(closeTrade, t)}\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t)}\n\t\t\t
\n\t\t\t{positionTab !== 2 && (\n\t\t\t\t\n\t\t\t)}\n\t\t
\n\t) : (\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t{emptyStateMessage}\n\t\t\t\t{positionTab === 2 && !tradersGymContext.isActive ? (\n\t\t\t\t\t\n\t\t\t\t\t\t{getTimeFrameTranslation(closeTrade, t)}\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t)}\n\t\t\t
\n\t\t\t{positionTab !== 2 && (\n\t\t\t\t\n\t\t\t)}\n\t\t
\n\t);\n};\n\nexport default RenderClearFilters;\n","import { useContext } from 'react';\n\nimport AppContext from '../../contexts/AppContext';\nimport { formatNumberWithCommas } from '../../views/features/Dashboard/Watchlist/Instrument/formattedQuoteNumber';\nimport { defineBaseCurrencySymbol } from '../functions/calculations';\n\n/**\n * formats the incoming data to a string containing the currency symbol and the value\n * @param accountId The selected trading account\n * @returns the formatted values ready for displaying with the corresponding symbols\n */\nconst useMoneyFormatter = (accountId: any) => {\n\tconst appContext = useContext(AppContext);\n\tconst symbol = defineBaseCurrencySymbol(accountId);\n\n\treturn (value: number) : string => {\n\t\tconst formattedValue = formatNumberWithCommas(Math.floor(value), 0, appContext.languageSettings);\n\t\tif (accountId?.isJapanAccount) return `${symbol} ${formattedValue}`;\n\n\t\treturn `${symbol} ${formatNumberWithCommas(value, 2, appContext.languageSettings)}`;\n\t};\n};\n\nexport default useMoneyFormatter;\n","module.exports = __webpack_public_path__ + \"static/media/metals.fcf62e92.svg\";","module.exports = __webpack_public_path__ + \"static/media/forex.94ae5d13.svg\";","module.exports = __webpack_public_path__ + \"static/media/crypto.a05a0401.svg\";","module.exports = __webpack_public_path__ + \"static/media/energy.ba3dc84e.svg\";","module.exports = __webpack_public_path__ + \"static/media/indices.4b656e22.svg\";","import React, { useContext } from 'react';\nimport { OverlayTrigger } from 'react-bootstrap';\nimport Tooltip from '../../../../../components/Tooltip/Tooltip';\nimport styles from '../../PositionGrid/PositionGrid.module.scss';\nimport { Button } from 'semantic-ui-react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { formatNumberWithCommas } from '../../../Watchlist/Instrument/formattedQuoteNumber';\nimport { useTranslation } from 'react-i18next';\nimport {\n\tGridType,\n\tstopLossTypes,\n\tTicketLayout,\n\tTradingPositionLimitType,\n} from '../../../../../../utils/functions/enums';\nimport { TradingPosition, TradingPositionState } from '../../../../../../gateways/RfpGateway/rfp.types';\nimport InstrumentContext from '../../../../../../contexts/InstrumentContext';\nimport AppContext from '../../../../../../contexts/AppContext';\nimport DashboardContext from '../../../../../../contexts/DashboardContext';\nimport pipStore from '../../../../../../store/PipsStore/pipStore';\nimport orderStore from '../../../../../../store/OrderStore/orderStore';\nimport useSelectedTradingAccount from '../../../../../../utils/hooks/useSelectedTradingAccount';\nimport { hidePopup } from '../helpers';\nimport tradingViewStore from '../../../../../../store/tradingViewStore';\n\ninterface LimitProfitLossButtonProps {\n\tinfo: any;\n\ttype: string;\n\tgridType: GridType;\n}\n\nconst LimitProfitLossButton = ({ info, type, gridType }: LimitProfitLossButtonProps) => {\n\tconst { t } = useTranslation();\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst languageSettings = appContext.languageSettings;\n\tconst isArabic = appContext.isArabic;\n\tconst ticketLayout = tradingViewStore.use.ticketLayout();\n\n\tconst setTradeProps = orderStore.use.setTradeProps();\n\tconst stopLossPips = pipStore.use.stopLoss();\n\tconst takeProfitPips = pipStore.use.takeProfit();\n\tconst fillStoreFromPosition = orderStore.use.fillStoreFromPosition();\n\tconst tradingPositions = dashboardContext.getTradingPositions();\n\tconst activeTradingAccount = useSelectedTradingAccount();\n\n\tconst openTicket = (e: any) => {\n\t\thidePopup(isArabic);\n\t\tdashboardContext.closeAllOtherTabs();\n\n\t\tconst name = e.column.id;\n\t\tconst record = e.row.original;\n\n\t\tlet tradingPositionState = TradingPositionState.open;\n\n\t\tif (gridType === GridType.Order) {\n\t\t\ttradingPositionState = TradingPositionState.pending;\n\t\t}\n\n\t\tlet limitsType: TradingPositionLimitType[] = [];\n\t\tif (name === TradingPositionLimitType.StopLoss) {\n\t\t\tlimitsType.push(TradingPositionLimitType.StopLoss);\n\t\t} else if (name === TradingPositionLimitType.TakeProfit) {\n\t\t\tlimitsType.push(TradingPositionLimitType.TakeProfit);\n\t\t} else if (name !== 'NaN' && record.TakeProfit !== 'NaN') {\n\t\t\tlimitsType.push(TradingPositionLimitType.TakeProfit, TradingPositionLimitType.StopLoss);\n\t\t}\n\n\t\tif (gridType === GridType.Position) {\n\t\t\tfillStoreFromPosition(record.position, limitsType, true, { takeProfitPips, stopLossPips });\n\t\t\tsetTradeProps({\n\t\t\t\tisPreservedValue: true,\n\t\t\t});\n\t\t} else if (gridType === GridType.Order) {\n\t\t\tfillStoreFromPosition(record.position, limitsType, true);\n\t\t}\n\n\t\tsetTradeProps({\n\t\t\tstopLossType:\n\t\t\t\t!!record?.position?.trailingStop && record?.position?.trailingStop > 0\n\t\t\t\t\t? stopLossTypes.Trailing\n\t\t\t\t\t: stopLossTypes.Normal,\n\t\t});\n\n\t\tif (ticketLayout === TicketLayout.Dock) {\n\t\t\tdashboardContext.showOrderTicket = true;\n\n\t\t\tif (name === TradingPositionLimitType.StopLoss || name === TradingPositionLimitType.TakeProfit) {\n\t\t\t\tdashboardContext.gridButton =\n\t\t\t\t\tname === TradingPositionLimitType.StopLoss\n\t\t\t\t\t\t? TradingPositionLimitType.StopLoss\n\t\t\t\t\t\t: TradingPositionLimitType.TakeProfit;\n\t\t\t} else if (name) {\n\t\t\t\tdashboardContext.gridButton = name;\n\t\t\t} else {\n\t\t\t\tdashboardContext.gridButton = 'Menu Item';\n\t\t\t}\n\n\t\t\tif (record) {\n\t\t\t\tconst positions: any = tradingPositions.filter(\n\t\t\t\t\t(t) =>\n\t\t\t\t\t\tt.code === record.code &&\n\t\t\t\t\t\tt.state === tradingPositionState &&\n\t\t\t\t\t\tt.aId === activeTradingAccount?.id &&\n\t\t\t\t\t\t(record.isGroupRow || record.posId === t.posId)\n\t\t\t\t);\n\n\t\t\t\tdashboardContext.selectedPosition = positions;\n\t\t\t\tdashboardContext.selectedInstrument = record.position.marketItem;\n\t\t\t}\n\t\t} else {\n\t\t\tdashboardContext.newOrderModalToggle = {\n\t\t\t\torderTicket: true,\n\t\t\t\tconfirmOrder: false,\n\t\t\t};\n\n\t\t\tif (record) {\n\t\t\t\tconst positions = tradingPositions.filter(\n\t\t\t\t\t(t: TradingPosition) =>\n\t\t\t\t\t\tt.code === record.code &&\n\t\t\t\t\t\tt.state === tradingPositionState &&\n\t\t\t\t\t\tt.aId === activeTradingAccount?.id &&\n\t\t\t\t\t\t(record.isGroupRow || record.posId === t.posId)\n\t\t\t\t);\n\n\t\t\t\tdashboardContext.selectedPosition = positions;\n\t\t\t\tdashboardContext.selectedInstrument = record.position.marketItem;\n\t\t\t}\n\n\t\t\tif (name === TradingPositionLimitType.StopLoss || name === TradingPositionLimitType.TakeProfit) {\n\t\t\t\tdashboardContext.gridButton =\n\t\t\t\t\tname === TradingPositionLimitType.StopLoss\n\t\t\t\t\t\t? TradingPositionLimitType.StopLoss\n\t\t\t\t\t\t: TradingPositionLimitType.TakeProfit;\n\t\t\t} else if (name) {\n\t\t\t\tdashboardContext.gridButton = name;\n\t\t\t} else {\n\t\t\t\tdashboardContext.gridButton = 'Menu Item';\n\t\t\t}\n\t\t}\n\t};\n\n\tconst record = info.row.original;\n\n\tconst value = type === 'stopLoss' ? record.StopLoss : record.TakeProfit;\n\n\tconst isEmptyTrailingLoss = !!record?.position?.trailingStop && record?.position?.trailingStop > 0;\n\n\tif ((record && record.StopLoss !== 'Head') || record.TakeProfit !== 'Head') {\n\t\treturn (\n\t\t\t\n\t\t\t\t\t\t{type === 'stopLoss'\n\t\t\t\t\t\t\t? isEmptyTrailingLoss\n\t\t\t\t\t\t\t\t? t('en:WTR_SET_TRAILING_STOP_LOSS')\n\t\t\t\t\t\t\t\t: record?.StopLoss > 0\n\t\t\t\t\t\t\t\t? t('wtr:SET_STOP_LOSS_TOOLTIP')\n\t\t\t\t\t\t\t\t: t('wtr:WTR_SET_STOP_LOSS')\n\t\t\t\t\t\t\t: record?.TakeProfit > 0\n\t\t\t\t\t\t\t? t('wtr:SET_TAKE_PROFIT_TOOLTIP')\n\t\t\t\t\t\t\t: t('wtr:WTR_SET_TAKE_PROFIT')}{' '}\n\t\t\t\t\t\t{type === 'stopLoss'\n\t\t\t\t\t\t\t? !isNaN(record?.StopLoss) && record?.StopLoss > 0 && record?.StopLoss\n\t\t\t\t\t\t\t: !isNaN(record?.TakeProfit) && record?.TakeProfit > 0 && record?.TakeProfit}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t);\n\t} else return <>;\n};\n\nexport default LimitProfitLossButton;\n","import React, { useContext } from 'react';\nimport { OverlayTrigger } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport Tooltip from '../../../../../components/Tooltip/Tooltip';\nimport AppContext from '../../../../../../contexts/AppContext';\nimport { GridType, TicketLayout } from '../../../../../../utils/functions/enums';\nimport { TradingPosition, TradingPositionState } from '../../../../../../gateways/RfpGateway/rfp.types';\nimport DashboardContext from '../../../../../../contexts/DashboardContext';\nimport useSelectedTradingAccount from '../../../../../../utils/hooks/useSelectedTradingAccount';\n\nimport styles from '../../../../Markets/MarketsGridNew/MarketsTable.module.scss';\nimport { TradersGymContext, TradersGymContextType } from '../../../../../../pages/TradersGym/TradersGymContext';\nimport tradingViewStore from '../../../../../../store/tradingViewStore';\n\ninterface CloseIconProps {\n\tinfo: any;\n\theader?: boolean;\n\tgridType: GridType;\n\tgym?: boolean;\n}\nconst CloseIcon = ({ info, header = false, gridType, gym = false }: CloseIconProps) => {\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\n\tconst tradingPositions = dashboardContext.getTradingPositions();\n\tconst gymContext = useContext(TradersGymContext) as TradersGymContextType;\n\tconst { getPositions } = gymContext;\n\tconst isArabic = appContext.isArabic;\n\tconst ticketLayout = tradingViewStore.use.ticketLayout();\n\n\tconst activeTradingAccount = useSelectedTradingAccount();\n\n\tconst { t } = useTranslation();\n\n\tlet tooltip = header ? t('en:TRADES_CLOSE_ALL_POSITIONS') : t('en:TRADES_CLOSE_POSITION');\n\n\tif (gridType === GridType.Order) {\n\t\ttooltip = header ? t('en:TRADES_CANCEL_ALL_ORDERS') : t('en:TRADES_CANCEL_ORDER');\n\t}\n\n\tconst orderIconsSize = '20px';\n\tconst record = info?.row?.original;\n\n\tconst iconStyle = isArabic\n\t\t? {\n\t\t\t\tfontSize: orderIconsSize,\n\t\t\t\tmarginRight: '0',\n\t\t }\n\t\t: {\n\t\t\t\tfontSize: orderIconsSize,\n\t\t\t\tmarginLeft: '0',\n\t\t };\n\n\tconst showClose = () => {\n\t\tif (ticketLayout === TicketLayout.Dock) {\n\t\t\tif (header || (record && record.current > 0)) {\n\t\t\t\tdashboardContext.closeAllOtherTabs();\n\t\t\t\tif (gridType === GridType.Position) {\n\t\t\t\t\tdashboardContext.showCloseTicket = true;\n\t\t\t\t} else if (gridType === GridType.Order) {\n\t\t\t\t\tdashboardContext.showCancelTicket = true;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (gridType === GridType.Position) {\n\t\t\t\tdashboardContext.modalToggle = { closePosition: true, closeOrder: false };\n\t\t\t} else if (gridType === GridType.Order) {\n\t\t\t\tdashboardContext.modalToggle = { closePosition: false, closeOrder: true };\n\t\t\t}\n\t\t}\n\n\t\tlet tradingPositionState = TradingPositionState.open;\n\n\t\tif (gridType === GridType.Order) {\n\t\t\ttradingPositionState = TradingPositionState.pending;\n\t\t}\n\n\t\tif (header) {\n\t\t\tif (gym) {\n\t\t\t\tconst tradingPositions = getPositions(tradingPositionState);\n\t\t\t\tdashboardContext.selectedPosition = tradingPositions;\n\t\t\t} else {\n\t\t\t\tconst allPositions = tradingPositions.filter(\n\t\t\t\t\t(open: TradingPosition) => open.state === tradingPositionState && open.aId === activeTradingAccount?.id\n\t\t\t\t);\n\t\t\t\tdashboardContext.selectedPosition = allPositions;\n\t\t\t}\n\n\t\t\tdashboardContext.headerSelected = true;\n\t\t} else {\n\t\t\tdashboardContext.headerSelected = false;\n\t\t\tif (!gym) {\n\t\t\t\tconst positions: any = tradingPositions.filter(\n\t\t\t\t\t(t) =>\n\t\t\t\t\t\tt.code === record.code &&\n\t\t\t\t\t\tt.state === tradingPositionState &&\n\t\t\t\t\t\tt.aId === activeTradingAccount?.id &&\n\t\t\t\t\t\t(record.isGroupRow || record.posId === t.posId)\n\t\t\t\t);\n\n\t\t\t\tdashboardContext.selectedPosition = positions;\n\t\t\t} else {\n\t\t\t\tconst tradingPositions = getPositions(tradingPositionState);\n\t\t\t\tconst positions: any = tradingPositions.filter(\n\t\t\t\t\t(t) =>\n\t\t\t\t\t\tt.code === record.code &&\n\t\t\t\t\t\tt.state === tradingPositionState &&\n\t\t\t\t\t\t(record.isGroupRow || record.posId === t.posId)\n\t\t\t\t);\n\t\t\t\tdashboardContext.selectedPosition = positions;\n\t\t\t}\n\t\t}\n\t};\n\n\treturn (\n\t\t\n\t\t\t\t\t{tooltip}\n\t\t\t\t\n\t\t\t}\n\t\t>\n\t\t\t
showClose()}>\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default CloseIcon;\n","import React, {useContext} from 'react';\n\nimport cn from 'classnames';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {IconProp} from '@fortawesome/fontawesome-svg-core';\nimport {useTranslation} from 'react-i18next';\n\nimport statusStore, {StatusStore} from '../../store/accountStatusStore';\n\nimport {TradersGymContext, TradersGymContextType} from '../../pages/TradersGym/TradersGymContext';\n\nimport styles from './AccountStatusCTA.module.scss';\n\ninterface AccountStatusCTAProps {\n className?: string;\n labelClass?: string;\n disabled?: boolean;\n onClick?: (event: React.MouseEvent) => void;\n icon?: IconProp;\n size?: 'sm' | 'md' | 'lg' | 'fluid';\n type?: 'submit';\n variant?: 'primary' | 'secondary' | 'danger' | 'outline';\n smallFont?: boolean;\n isFullWidth?: boolean;\n isFullHeight?: boolean;\n label?: string;\n}\n\nconst AccountStatusCTA: React.FC = (\n {\n className,\n labelClass,\n disabled = false,\n onClick,\n icon,\n size = 'md',\n type,\n variant = 'primary',\n smallFont = false,\n isFullWidth = false,\n isFullHeight = false,\n label,\n }\n) => {\n const _className = cn(\n smallFont ? styles.smallFont : '',\n className,\n styles.button,\n styles[size],\n styles[variant],\n {\n [styles.disabled]: disabled,\n [styles.outlineDisabled]: disabled && variant === 'outline',\n },\n isFullWidth ? styles.fullWidth : '',\n isFullHeight ? styles.fullHeight : ''\n );\n\n const {t} = useTranslation();\n const permissions = statusStore((state: StatusStore) => state.permissions);\n const accountMenuAction = permissions?.accountMenuAction;\n\n const gymContext = useContext(TradersGymContext);\n const {tradersGymContext} = gymContext as TradersGymContextType;\n\n const handleButtonClick = (event: React.MouseEvent) => {\n if (tradersGymContext.isActive) {\n tradersGymContext.isActive = false;\n }\n\n if (!disabled && typeof onClick === 'function') {\n onClick(event);\n }\n };\n\n if (!accountMenuAction || !label) return null;\n\n return (\n \n );\n};\n\nexport default AccountStatusCTA;\n","import { TradingMode } from '../gateways/RfpGateway/rfp.types';\n\nconst OBFUSCATION_ITERATIONS = 3;\nconst TOKEN_KEY = 'uToken';\n\ntype TCredentials = {\n\tusername?: string | null | undefined;\n\tpassword?: string | null | undefined;\n\ttfboSessionId?: string | null | undefined;\n\ttfboToken?: string | null | undefined;\n\ttradingMode?: TradingMode | null | undefined;\n\tenableSSO?: boolean;\n\tsso_token?: string;\n\tcreatedAt?: number;\n};\n\nconst prepareAndEncodeData = (value: TCredentials): string => {\n\tconst creds = { ...value };\n\tdelete creds.password;\n\tcreds.createdAt = Date.now();\n\n\tlet result = JSON.stringify(creds);\n\t// for maximum security (he he) Base64 the data 3 times; no way to break this\n\t// tried to implement a Caesar shift but was not working and thought this is secure enough\n\tfor (let i = 0; i <= OBFUSCATION_ITERATIONS; i++) {\n\t\tresult = Buffer.from(result).toString('base64');\n\t}\n\n\treturn result;\n};\n\nconst decodeData = (value: string | null): object => {\n\tif (!value) return {};\n\t// if for some reason decoding fails we fallback to an empty object\n\ttry {\n\t\tlet result = value;\n\t\tfor (let i = 0; i <= OBFUSCATION_ITERATIONS; i++) {\n\t\t\tresult = Buffer.from(result, 'base64').toString('utf8');\n\t\t}\n\t\treturn JSON.parse(result.toString());\n\t} catch {\n\t\treturn {};\n\t}\n};\n\nclass CredentialsManager {\n\tprivate static _credentials: TCredentials = {};\n\n\tprivate constructor() {}\n\n\tpublic static getCredentials(): Readonly {\n\t\tconst creds = decodeData(localStorage.getItem(TOKEN_KEY));\n\n\t\treturn { ...creds, ...this._credentials };\n\t}\n\n\tpublic static setCredentials(value: TCredentials): void {\n\t\tthis._credentials = { ...this._credentials, ...value };\n\t\tlocalStorage.setItem(TOKEN_KEY, prepareAndEncodeData(this._credentials));\n\t}\n\n\tpublic static clearCredentials(): void {\n\t\tlocalStorage.removeItem(TOKEN_KEY);\n\t}\n}\n\nexport default {\n\tgetCredentials: CredentialsManager.getCredentials.bind(CredentialsManager),\n\tsetCredentials: CredentialsManager.setCredentials.bind(CredentialsManager),\n\tclearCredentials: CredentialsManager.clearCredentials.bind(CredentialsManager),\n};\n","import { useContext } from 'react';\n\nimport DashboardContext from '../../contexts/DashboardContext';\nimport {\n\tconvertTWatchlistsToWatchListData,\n\tDEFAULT_FEED_ID,\n\tdynamicWatchlistPreference,\n} from '../functions/WatchlistUtils';\nimport { TWatchlists } from '../../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\nimport AppContext from '../../contexts/AppContext';\nimport { TradingAccountType } from '../functions/enums';\nimport watchListStore from '../../store/WatchListStore/watchListStore';\n\nexport const useDynamicWatchLists = () => {\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst appContext = useContext(AppContext);\n\n\tconst setCurrentWatchList = watchListStore.use.setCurrentWatchList();\n\tconst isChildWindow = appContext.isChildWindow || false;\n\tconst getCurrentWatchList = watchListStore.use.getCurrentWatchList();\n\tconst currentWatchList = getCurrentWatchList(isChildWindow);\n\tconst setWatchlistsForAllTradingModes = watchListStore.use.setWatchlistsForAllTradingModes();\n\n\treturn (\n\t\tcfdWatchlists: TWatchlists[],\n\t\tisFundedTrader: boolean,\n\t\tisSpreadBettingAcc: boolean,\n\t\tcomingFromPreferences?: boolean\n\t) => {\n\t\tlet dynamicWatchlists: any = [];\n\t\tif (dashboardContext.defaultWatchLists.length > 0 && !isFundedTrader) {\n\t\t\tfor (let watchList of dashboardContext.defaultWatchLists) {\n\t\t\t\tconst currentDynamicWatchlists = watchList?.items.map((item) => {\n\t\t\t\t\treturn dynamicWatchlistPreference(DEFAULT_FEED_ID, item.title, item.codes_csv, item.order);\n\t\t\t\t});\n\t\t\t\tdynamicWatchlists = [...dynamicWatchlists, ...currentDynamicWatchlists];\n\t\t\t}\n\t\t}\n\n\t\tif (dynamicWatchlists.length > 0 && !isSpreadBettingAcc && !isFundedTrader) {\n\t\t\tdashboardContext.watchlist = [...dynamicWatchlists, ...cfdWatchlists];\n\t\t} else {\n\t\t\tdashboardContext.watchlist = [...cfdWatchlists];\n\t\t}\n\n\t\tif (isFundedTrader && dynamicWatchlists.length) {\n\t\t\tdashboardContext.watchlist = dashboardContext.watchlist.slice(dynamicWatchlists.length);\n\t\t}\n\n\t\tlet watchListName: string | undefined = currentWatchList;\n\t\tif (appContext.isJapanAccount && !isChildWindow) {\n\t\t\tconst liveCFDWatchlist = appContext.userPreferences?.user_prefs?.watchlists?.account.find((account) => {\n\t\t\t\treturn account && account._type.toUpperCase() === TradingAccountType.LIVE && !account.accountType;\n\t\t\t});\n\n\t\t\tconst watchlistNames = [\n\t\t\t\tcurrentWatchList,\n\t\t\t\tliveCFDWatchlist?._lastUsedWatchlist || '',\n\t\t\t\tdashboardContext.watchlist[0]?._name,\n\t\t\t];\n\t\t\twatchListName = watchlistNames.find((name) =>\n\t\t\t\tdashboardContext.watchlist.find((watchList) => watchList._name === name)\n\t\t\t);\n\n\t\t\tsetCurrentWatchList(watchListName, isChildWindow);\n\t\t} else if (dashboardContext.watchlist.length > 0) {\n\t\t\twatchListName = [currentWatchList, dashboardContext.watchlist[0]._name].find((name) =>\n\t\t\t\tdashboardContext.watchlist.some((watchList) => watchList._name === name)\n\t\t\t);\n\t\t}\n\t\tsetWatchlistsForAllTradingModes(convertTWatchlistsToWatchListData(dashboardContext.watchlist));\n\t\tif (!comingFromPreferences || watchListName !== currentWatchList) {\n\t\t\tsetCurrentWatchList(watchListName, isChildWindow);\n\t\t}\n\t};\n};\n","import React, { FC } from 'react';\nimport cn from 'classnames';\nimport { useTranslation } from 'react-i18next';\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { MarketItem } from '../../../gateways/RfpGateway/rfp.types';\nimport authStore from '../../../store/authStore';\nimport useTimeSessions from '../../../utils/hooks/useTimeSessions';\n\nimport styles from './TradingSessionTooltip.module.scss';\n\ninterface TradingSessionTooltipProps {\n\tmarketItem: MarketItem;\n}\n\nconst TradingSessionTooltip: FC = ({ marketItem }): JSX.Element | null => {\n\tconst { t } = useTranslation();\n\tconst { getNextOpenDate, isWorkingTime, getClosesTime } = useTimeSessions();\n\tconst isJapanAccount = authStore.use.isJapanAccount();\n\n\tconst minutesFromCurrentTime = new Date().getMinutes();\n\n\tconst workingTime = React.useMemo(() => {\n\t\treturn isJapanAccount ? undefined : isWorkingTime(marketItem, new Date());\n\t}, [isJapanAccount, marketItem, marketItem.tradingSessions, minutesFromCurrentTime]);\n\n\tconst workingTimeText = React.useMemo(() => {\n\t\treturn workingTime ? t('en:MARKET_IS_OPEN') : `${t('en:202')}`;\n\t}, [marketItem, marketItem.tradingSessions, minutesFromCurrentTime]);\n\n\tconst nextOpenDateText = React.useMemo(() => {\n\t\treturn workingTime ? '' : getNextOpenDate(marketItem, new Date());\n\t}, [marketItem, marketItem.tradingSessions, minutesFromCurrentTime]);\n\n\tconst nextClosesDateText = React.useMemo(() => {\n\t\treturn workingTime ? getClosesTime(marketItem, new Date()) : '';\n\t}, [marketItem, marketItem.tradingSessions, minutesFromCurrentTime]);\n\n\tconst nextDateText = React.useMemo(() => {\n\t\treturn workingTime !== undefined ? (workingTime ? nextClosesDateText : nextOpenDateText) : '';\n\t}, [marketItem, marketItem.tradingSessions, minutesFromCurrentTime]);\n\n\treturn (\n\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{workingTimeText}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{nextDateText && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{nextDateText}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t}\n\t\t>\n\t\t\t
\n\t\t\t\t{workingTime !== undefined && workingTime && (\n\t\t\t\t\t\n\t\t\t\t)}\n\n\t\t\t\t{workingTime !== undefined && !workingTime && (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default TradingSessionTooltip;\n","import { WindowContextProvider } from '../../contexts/WindowContext';\n\nexport const closeChildWindows = (context: WindowContextProvider) => {\n\tconst childWindows = context.childWindows;\n\tif (childWindows.size > 0) {\n\t\tchildWindows.forEach((childWindow: Window | null) => {\n\t\t\tif (childWindow !== null) {\n\t\t\t\tchildWindow.close();\n\t\t\t}\n\t\t});\n\t}\n};\n","import { IMarketItemRecord } from '../../views/features/Dashboard/InstrumentSearch/InstrumentSearch';\nimport { MarketItem } from '../../gateways/RfpGateway/rfp.types';\n\nexport function sortSearchResults(instruments: IMarketItemRecord[] | MarketItem[], searchString: string) {\n\treturn instruments.sort((instrumentA, instrumentB) => {\n\t\tfunction instrumentScore(instrument: IMarketItemRecord | MarketItem) {\n\t\t\tconst exchangeTickerOrCode =\n\t\t\t\tinstrument.exchangeTicker && instrument.exchangeTicker !== '' ? instrument.exchangeTicker : instrument.code;\n\t\t\tif (exchangeTickerOrCode.substring(0, searchString?.length).toUpperCase() === searchString?.toUpperCase())\n\t\t\t\treturn 2;\n\t\t\tif (instrument.fullName.substring(0, searchString?.length).toUpperCase() === searchString?.toUpperCase())\n\t\t\t\treturn 1;\n\t\t\treturn 0;\n\t\t}\n\t\tif (instrumentScore(instrumentA) === 2 && instrumentScore(instrumentB) === 2) {\n\t\t\tconst codeA =\n\t\t\t\tinstrumentA.exchangeTicker && instrumentA.exchangeTicker !== '' ? instrumentA.exchangeTicker : instrumentA.code;\n\t\t\tconst codeB =\n\t\t\t\tinstrumentB.exchangeTicker && instrumentB.exchangeTicker !== '' ? instrumentB.exchangeTicker : instrumentB.code;\n\t\t\treturn codeA.localeCompare(codeB);\n\t\t} else if (instrumentScore(instrumentA) === 1 && instrumentScore(instrumentB) === 1) {\n\t\t\treturn instrumentA.fullName.localeCompare(instrumentB.fullName);\n\t\t}\n\t\treturn instrumentScore(instrumentA) > instrumentScore(instrumentB) ? -1 : 1;\n\t});\n}\n","import React, { useContext, useMemo } from 'react';\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { useTranslation } from 'react-i18next';\n\nimport WindowContext, { WTChildWindowType } from '../../../contexts/WindowContext';\nimport AppContext from '../../../contexts/AppContext';\n\nimport accountStatusStore from '../../../store/accountStatusStore';\n\nimport styles from './DetachIcon.module.scss';\nimport { ApplicationStatus } from '../../../utils/functions/enums';\nimport authStore, { AuthStore } from '../../../store/authStore';\n\nconst DetachIcon = ({ url, windowType }: { url: string; windowType: WTChildWindowType }) => {\n\tconst windowContext = useContext(WindowContext);\n\tconst appContext = useContext(AppContext);\n\n\tconst isChildWindow = appContext.isChildWindow;\n\tconst isArabic = appContext.isArabic;\n\n\tconst setShowModal = accountStatusStore.use.setShowModal();\n\tconst status = accountStatusStore.use.status();\n\tconst isDemoMode = authStore((store: AuthStore) => store.isDemoMode);\n\n\tconst { t } = useTranslation();\n\n\tconst detachWatchlistHandler = useMemo(() => {\n\t\treturn () => {\n\t\t\tif (isChildWindow) {\n\t\t\t\twindowContext.window.close();\n\t\t\t} else if (\n\t\t\t\tstatus === ApplicationStatus.APPROVED ||\n\t\t\t\tstatus === ApplicationStatus.LEVEL1_APPROVED ||\n\t\t\t\tstatus === ApplicationStatus.FUNDED_TRADER ||\n\t\t\t\tisDemoMode\n\t\t\t) {\n\t\t\t\tconst window = windowContext.window;\n\t\t\t\twindowContext.openChildWindow(windowType, {\n\t\t\t\t\turl,\n\t\t\t\t\twindowName: windowType,\n\t\t\t\t\twindowFeatures: `height=${window.innerHeight},width=${window.innerWidth}`,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tsetShowModal(true);\n\t\t\t}\n\t\t};\n\t}, [isDemoMode, status]);\n\n\t// Hide temporarily the ATTACH icon from Child Windows until the state of the window is saved\n\treturn isChildWindow ? (\n\t\t<>\n\t) : (\n\t\t
\n\t\t\t\n\t\t\t\t\t\t{isChildWindow ? t('en:ATTACH') : t('en:DETACH')}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default DetachIcon;\n","import { AppContextProvider } from '../../contexts/AppContext';\nimport { DashboardContextProvider } from '../../contexts/DashboardContext';\nimport { TAccountStats } from '../../gateways/TfboGateway/TfboGateway.types';\n\nimport { ApplicationStatus } from './enums';\n\nexport const hasThinkTraderLiveAccount = (appContext: AppContextProvider) => {\n\tif (appContext.accountStats) {\n\t\tconst accountPlatform = appContext.accountStats.find(\n\t\t\t(data: TAccountStats) => data.account.type === 'LIVE' && data.account.platform.name === 'ThinkTrader'\n\t\t);\n\t\tif (accountPlatform) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\nexport const fetchedAccountStats = (appContext: AppContextProvider) => {\n\treturn appContext.accountStats && appContext.accountStats.length > 0;\n};\n\nexport const fetchedApplicationStatus = (dashboardContext: DashboardContextProvider) => {\n\treturn dashboardContext.applicationStatus;\n};\n\nexport const hasApprovedLiveAccount = (appContext: AppContextProvider, dashboardContext: DashboardContextProvider) => {\n\tif (appContext.accountStats) {\n\t\tconst hasLiveAccount = appContext.accountStats.find((data: TAccountStats) => data.account.type === 'LIVE');\n\t\tconst isApproved = dashboardContext.applicationStatus === ApplicationStatus.APPROVED;\n\t\tif (hasLiveAccount && isApproved && hasThinkTraderLiveAccount(appContext)) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\nexport const unapprovedLiveApplication = (dashboardContext: DashboardContextProvider) => {\n\t// Live application status is undefined\n\treturn !dashboardContext.applicationStatus;\n};\n\nexport const incompleteLiveApplication = (\n\tappContext: AppContextProvider,\n\tdashboardContext: DashboardContextProvider\n) => {\n\treturn (\n\t\tdashboardContext.applicationStatus &&\n\t\tdashboardContext.applicationStatus.includes(ApplicationStatus.INCOMPLETE) &&\n\t\thasThinkTraderLiveAccount(appContext)\n\t);\n};\n\nexport const underReviewLiveApplication = (\n\tappContext: AppContextProvider,\n\tdashboardContext: DashboardContextProvider\n) => {\n\treturn (\n\t\tdashboardContext.applicationStatus &&\n\t\t// dashboardContext.applicationStatus.includes(ApplicationStatus.PENDING) &&\n\t\thasThinkTraderLiveAccount(appContext)\n\t);\n};\n\nexport const underReviewWithoutTTLiveAccount = (dashboardContext: DashboardContextProvider) => {\n\treturn true;\n\t// return dashboardContext.applicationStatus && dashboardContext.applicationStatus.includes(ApplicationStatus.PENDING);\n};\n\nexport const approvedLiveApplication = (appContext: AppContextProvider, dashboardContext: DashboardContextProvider) => {\n\treturn (\n\t\tdashboardContext.applicationStatus &&\n\t\tdashboardContext.applicationStatus.includes(ApplicationStatus.APPROVED) &&\n\t\tdashboardContext.applicationStatus !== ApplicationStatus.LEVEL1_APPROVED &&\n\t\thasThinkTraderLiveAccount(appContext)\n\t);\n};\n\nexport const printAccountName = ({\n\tt,\n\tisLiveAccount,\n\tisSpreadBettingAccount,\n\tisJapanSpreadAccount,\n\tisJapanSubscriptionAccount,\n\tdefaultName,\n}: {\n\tt: any;\n\tisLiveAccount: boolean;\n\tisSpreadBettingAccount: boolean;\n\tisJapanSpreadAccount: boolean;\n\tisJapanSubscriptionAccount: boolean;\n\tdefaultName: string;\n}) => {\n\tif (!isLiveAccount && !isSpreadBettingAccount) {\n\t\treturn defaultName;\n\t}\n\n\tif (isSpreadBettingAccount) {\n\t\treturn t('en:SPREAD_BETTING_PRODUCT');\n\t} else if (isJapanSpreadAccount) {\n\t\treturn t('wtr:JP_FX_SPREAD');\n\t} else if (isJapanSubscriptionAccount) {\n\t\treturn t('wtr:JP_FX_SUBSCRIPTION');\n\t} else {\n\t\treturn defaultName;\n\t}\n};\n","import { useContext } from 'react';\n\nimport DashboardContext from '../../contexts/DashboardContext';\nimport { MarketItem } from '../../gateways/RfpGateway/rfp.types';\nimport { Optional } from '../functions/Nullable';\nimport { getSubscriptionConstraints, UserOperationType } from '../functions/subscriptionUtils';\n\nimport authStore, { AuthStore } from '../../store/authStore';\n\nimport useSubscriptionInfo from './useSubscriptionInfo';\n\nconst useSubscriptionConstraints = () => {\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst [subscriptionInfo] = useSubscriptionInfo();\n\tconst isDemoMode = authStore((store: AuthStore) => store.isDemoMode);\n\n\tconst getConstraints = (marketItem?: Optional, operation?: UserOperationType) => {\n\t\tif (isDemoMode) return null;\n\t\treturn getSubscriptionConstraints(\n\t\t\tsubscriptionInfo || null,\n\t\t\tmarketItem?.code || null,\n\t\t\tdashboardContext.marketItems,\n\t\t\toperation\n\t\t);\n\t};\n\n\treturn getConstraints;\n};\n\nexport default useSubscriptionConstraints;\n","import { MarketItem } from '../../gateways/RfpGateway/rfp.types';\nimport { Optional } from '../functions/Nullable';\nimport { UserOperationType } from '../functions/subscriptionUtils';\n\nimport useSubscriptionConstraints from './useSubscriptionConstraints';\nimport useSubscriptionModal from './useSubscriptionModal';\n\nconst useHandleSubscriptionConstraints = () => {\n\tconst getSubscriptionConstraints = useSubscriptionConstraints();\n\tconst { setModalStateProps } = useSubscriptionModal();\n\n\tconst handleSubscriptionsConstraints = (marketItem?: Optional, operation?: UserOperationType) => {\n\t\tconst constraint = getSubscriptionConstraints(marketItem, operation);\n\t\tif (!constraint) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetModalStateProps({\n\t\t\treason: constraint,\n\t\t\tisOpen: true,\n\t\t\tinstrument: marketItem,\n\t\t});\n\n\t\treturn constraint;\n\t};\n\n\treturn handleSubscriptionsConstraints;\n};\n\nexport default useHandleSubscriptionConstraints;\n","export class OrderedSet extends Array {\n\tprivate equalsFn: (a: T, b: T) => boolean;\n\n\t/**\n\t * @param values: values to insert after set creation\n\t */\n\tconstructor(values?: Array) {\n\t\tsuper();\n\n\t\tthis.equalsFn = (a: T, b: T) => a === b;\n\n\t\tif (values) {\n\t\t\tthis.addAll(values);\n\t\t}\n\t}\n\n\tadd(value: T): OrderedSet {\n\t\tif (!value) {\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.push(value);\n\t\treturn this;\n\t}\n\n\tpush(value: T): number {\n\t\tif (!value) {\n\t\t\treturn this.size();\n\t\t}\n\n\t\tif (this.has(value) === false) {\n\t\t\treturn super.push(value);\n\t\t} else {\n\t\t\treturn this.size();\n\t\t}\n\t}\n\n\thas(value: T): boolean {\n\t\tif (!value) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet found = false;\n\n\t\tsuper.forEach((item) => {\n\t\t\tif (this.equalsFn(value, item) === true) {\n\t\t\t\tfound = true;\n\t\t\t}\n\t\t});\n\n\t\treturn found;\n\t}\n\n\thasAll(values: Array): boolean {\n\t\tif (!values || values.length === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn values.every((item) => this.has(item));\n\t}\n\n\taddAll(values: Array): void {\n\t\tif (!values || values.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tvalues.forEach((item) => this.push(item));\n\t}\n\n\tsize(): number {\n\t\treturn this.length;\n\t}\n\n\tremove(value: T): boolean {\n\t\tif (!value) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Find item in the list\n\t\tlet foundIdx = -1;\n\t\tsuper.forEach((item, index) => {\n\t\t\tif (this.equalsFn(value, item) === true) {\n\t\t\t\tfoundIdx = index;\n\t\t\t}\n\t\t});\n\n\t\t// If item has been found => remove it from the list\n\t\tif (foundIdx !== -1) {\n\t\t\tsuper.splice(foundIdx, 1);\n\t\t\treturn true;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tremoveAll(values: Array): boolean {\n\t\tif (!values || values.length === 0) {\n\t\t\treturn false;\n\t\t}\n\t\treturn values.every((item) => this.remove(item));\n\t}\n\n\tclear(): void {\n\t\tsuper.splice(0, this.size());\n\t}\n\n\ttoArray(): Array {\n\t\tlet result: Array = [];\n\t\tsuper.forEach((item) => result.push(item));\n\t\treturn result;\n\t}\n\n\tequals(other: OrderedSet): boolean {\n\t\tif (!other) {\n\t\t\treturn false;\n\t\t}\n\t\treturn other.size() === this.size() && this.every((item) => other.has(item));\n\t}\n}\n","import { HistoryTick } from '../../../gateways/RfpGateway/rfp.types';\n\nimport { GymHistoryRequest } from './GymHistoryRequest';\n\nexport class GymHistoryDataStore {\n\trequest: GymHistoryRequest;\n\tdataItems: HistoryTick[] = [];\n\n\tconstructor(request: GymHistoryRequest) {\n\t\tthis.request = request;\n\t}\n\n\taddDataItems(items: HistoryTick[]) {\n\t\tthis.dataItems.push(...items);\n\n\t\t//BOOL shouldLogRemove = true;\n\t\t// Filter for bad data\n\t\twhile (this.dataItems.length > 0) {\n\t\t\tconst item = this.dataItems[this.dataItems.length - 1];\n\t\t\tif (item.closeTime > this.request.endTime) {\n\t\t\t\t// if(shouldLogRemove) {\n\t\t\t\t// shouldLogRemove = false;\n\t\t\t\t// _logINFO(@\"Remove dataItem: %@\", item);\n\t\t\t\t// }\n\t\t\t\tthis.dataItems.pop();\n\t\t\t} else {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n","import {\n\tHistoryRequest,\n\tHistorySize,\n\tHistorySubscription,\n\tHistoryTick,\n\tHistoryTickItems,\n\tMarketItem,\n\tRFPDataObjectType,\n\tSubscriptionAction,\n\tTradingAccount,\n} from '../../../gateways/RfpGateway/rfp.types';\nimport { RFP } from '../../../gateways/RfpGateway/rfpConstants';\nimport RfpGateway from '../../../gateways/RfpGateway/RfpGateway';\nimport { getAdditionalSubscriptionPairs, getMarketItem } from '../../../utils/functions/calculations';\nimport { Resolver } from '../../../utils/functions/Ioc';\nimport { OrderedSet } from '../../../utils/functions/OrderedSet';\n\nimport { GymHistoryDataStore } from './GymHistoryDataStore';\nimport { GymHistoryRequest } from './GymHistoryRequest';\nimport { GymRefQuotesStore } from './GymRefQuotesStore';\nimport { GymSimulation } from '../Simulations/GymSimulation';\n\ninterface GymHistoryManagerDelegate {\n\t// All functions are optional\n\thistoryDataUpdated?(dataItems: HistoryTick[], reqId: string): void;\n\thistoryDataRejected?(reqId: string): void;\n\trefQuotesUpdated?(): void;\n}\n\n/**\n * The GymHistoryManager class defines the `sharedInstance` method that lets clients access\n * the unique singleton instance.\n */\nclass GymHistoryManager {\n\tprivate static instance: GymHistoryManager;\n\tprivate delegates = new OrderedSet();\n\tprivate subDataId: string | undefined = undefined;\n\tprivate subSizeId: string | undefined = undefined;\n\tprivate data = new Map();\n\n\tstatic kTPRefQuotes = 'kRQ';\n\n\t/**\n\t * The GymHistoryManager's constructor should always be private to prevent direct\n\t * construction calls with the `new` operator.\n\t */\n\tprivate constructor() {\n\t\tconst rfpGateway = Resolver.resolve(RfpGateway);\n\t\tif (rfpGateway) {\n\t\t\tthis.subDataId = rfpGateway.subscribeFor(RFPDataObjectType.HistoryTickItems, (message) => {\n\t\t\t\tthis.historyTicksReceived(message);\n\t\t\t});\n\t\t\tthis.subSizeId = rfpGateway.subscribeFor(RFPDataObjectType.HistorySize, (message) => {\n\t\t\t\tthis.historySizeReceived(message);\n\t\t\t});\n\t\t}\n\t}\n\n\taddDelegate(delegate: GymHistoryManagerDelegate) {\n\t\tthis.delegates.add(delegate);\n\t}\n\n\tremoveDelegate(delegate: GymHistoryManagerDelegate) {\n\t\tthis.delegates.remove(delegate);\n\t}\n\n\tprivate sendHistoryRequest(historyRequest: GymHistoryRequest) {\n\t\tconst rfpGateway = Resolver.resolve(RfpGateway);\n\t\tif (rfpGateway) {\n\t\t\tconst historySubscription: HistorySubscription = { ...historyRequest, action: SubscriptionAction.Snapshot };\n\t\t\trfpGateway.send(RFP.manageHistory, historySubscription);\n\t\t}\n\t}\n\n\trequestHistoryData(request: GymHistoryRequest) {\n\t\tif (!this.data.has(request.reqId)) {\n\t\t\tconst dataStore = new GymHistoryDataStore(request);\n\t\t\tthis.data.set(request.reqId, dataStore);\n\t\t}\n\n\t\tthis.sendHistoryRequest(request);\n\t}\n\n\tgetHistoryRequest(reqId: string) {\n\t\treturn this.data.get(reqId)?.request;\n\t}\n\n\tprivate historySizeReceived(historySize: HistorySize) {\n\t\tif (!historySize.reqId.startsWith(GymHistoryManager.kTPRefQuotes)) {\n\t\t\tif (historySize.size === 0) {\n\t\t\t\tconsole.debug(`ERROR: historySize size=0, ${historySize.code}`);\n\t\t\t\tthis.delegates.forEach((element) => {\n\t\t\t\t\tif (element.historyDataRejected) {\n\t\t\t\t\t\telement.historyDataRejected(historySize.reqId);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate historyTicksReceived(historyTickItems: HistoryTickItems) {\n\t\tif (historyTickItems.reqId.startsWith(GymHistoryManager.kTPRefQuotes)) {\n\t\t\tGymRefQuotesStore.sharedInstance().addTicks(historyTickItems.historyTicks, historyTickItems.reqId);\n\t\t} else {\n\t\t\tconst dataStore = this.data.get(historyTickItems.reqId);\n\t\t\tif (dataStore) {\n\t\t\t\tdataStore.addDataItems(historyTickItems.historyTicks);\n\n\t\t\t\tthis.delegates.forEach((delegate) => {\n\t\t\t\t\tif (historyTickItems.reqId.startsWith(GymHistoryManager.kTPRefQuotes)) {\n\t\t\t\t\t\tGymRefQuotesStore.sharedInstance().addTicks(historyTickItems.historyTicks, historyTickItems.reqId);\n\t\t\t\t\t\tif (delegate.refQuotesUpdated) {\n\t\t\t\t\t\t\tdelegate.refQuotesUpdated();\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (delegate.historyDataUpdated) {\n\t\t\t\t\t\t\tdelegate.historyDataUpdated(historyTickItems.historyTicks, historyTickItems.reqId);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\trequestRefQuotes(account: TradingAccount, marketItem: MarketItem, simulation: GymSimulation) {\n\t\tconst feedId = simulation.feedId;\n\t\tconst baseCcyPos = marketItem.qCcy;\n\n\t\tif (!baseCcyPos) return;\n\n\t\tconst pairs = getAdditionalSubscriptionPairs(account, marketItem, null);\n\t\tif (pairs) {\n\t\t\tpairs.forEach((pair) => {\n\t\t\t\tconst info = getMarketItem(feedId, pair);\n\t\t\t\tif (info) {\n\t\t\t\t\tthis.makeRefQuoteRequest(simulation, info);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate makeRefQuoteRequest(simulation: GymSimulation, marketItem: MarketItem) {\n\t\tconst historyRequest = {\n\t\t\treqId: `${simulation.id}_${marketItem.code}`,\n\t\t\tfeedId: simulation.feedId,\n\t\t\tcode: simulation.code,\n\t\t\tpriceType: simulation.priceType,\n\t\t\ttimescale: simulation.timescale,\n\t\t\tstartTime: simulation.startTime,\n\t\t\tendTime: simulation.tradeTime,\n\t\t} as HistoryRequest;\n\t\tconst request = new GymHistoryRequest(historyRequest);\n\t\trequest.reqId = GymHistoryManager.buildRefQuoteKey(historyRequest.reqId);\n\t\trequest.code = marketItem.code;\n\t\trequest.feedId = marketItem.feedId;\n\t\tif (request.timescale !== 'TS_1WEEK' && request.timescale !== 'TS_1MONTH') {\n\t\t\trequest.timescale = 'TS_1DAY';\n\t\t}\n\n\t\tif (!this.data.has(request.reqId)) {\n\t\t\tconsole.debug(`Request Ref Quotes - ${request.reqId}`);\n\t\t\tthis.requestHistoryData(request);\n\t\t}\n\t}\n\n\t/**\n\t * The static method that controls the access to the singleton instance.\n\t */\n\tpublic static sharedInstance(): GymHistoryManager {\n\t\tif (!GymHistoryManager.instance) {\n\t\t\tGymHistoryManager.instance = new GymHistoryManager();\n\t\t}\n\t\treturn GymHistoryManager.instance;\n\t}\n\n\tpublic static buildRefQuoteKey(reqId: string) {\n\t\treturn `${GymHistoryManager.kTPRefQuotes}_${reqId}`;\n\t}\n\n\tdestructor() {\n\t\tconst rfpGateway = Resolver.resolve(RfpGateway);\n\t\tif (rfpGateway) {\n\t\t\tif (this.subDataId) {\n\t\t\t\trfpGateway.unsubscribeFor(this.subDataId);\n\t\t\t}\n\t\t\tif (this.subSizeId) {\n\t\t\t\trfpGateway.unsubscribeFor(this.subSizeId);\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport { GymHistoryManager };\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"emptyStateContainer\":\"EmptySearch_emptyStateContainer__18NbW\",\"emptyIcon\":\"EmptySearch_emptyIcon__1Svf5\",\"noMatch\":\"EmptySearch_noMatch__1hP-R\",\"tickerMessage\":\"EmptySearch_tickerMessage__3Rcei\",\"searchTerm\":\"EmptySearch_searchTerm__2KnGk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"MarketSignalsGate_content__8e8rd\",\"container\":\"MarketSignalsGate_container__22lDh\",\"title\":\"MarketSignalsGate_title__2YikP\",\"unlockIcon\":\"MarketSignalsGate_unlockIcon__3uZTi\",\"ctaButton\":\"MarketSignalsGate_ctaButton__1UyHN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"MarketSignals_container__3uT17\",\"header\":\"MarketSignals_header__1Lu9o\",\"gateContainer\":\"MarketSignals_gateContainer__2RzFG\",\"fakeList\":\"MarketSignals_fakeList__2G9q8\",\"gate\":\"MarketSignals_gate__2Lfwy\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"imageWrapper\":\"AccountIconAndTier_imageWrapper__3k-ia\",\"imageNoOutline\":\"AccountIconAndTier_imageNoOutline__135NZ\",\"imageOutline\":\"AccountIconAndTier_imageOutline__1CfDL\",\"small\":\"AccountIconAndTier_small__2UZ28\",\"large\":\"AccountIconAndTier_large__A30dC\",\"loader\":\"AccountIconAndTier_loader__1kcZJ\"};","module.exports = __webpack_public_path__ + \"static/media/commodities.bd26afab.svg\";","module.exports = __webpack_public_path__ + \"static/media/et-fs.5442d1f6.svg\";","module.exports = __webpack_public_path__ + \"static/media/stocks.a63cd2c7.svg\";","import { RFPNews } from '../../gateways/RfpGateway/rfp.types';\n\nexport const uniqueRecord = (recordsArray: RFPNews[] | any) => {\n\tconst uniqueArticles: any[] = [...new Map(recordsArray.map((item: any) => [JSON.stringify(item), item])).values()];\n\treturn uniqueArticles;\n};\n","interface NewsKeywords {\n\t[key: string]: string[];\n}\n\nexport const newsKeywords: NewsKeywords = {\n\tLCO: ['BRENT'],\n\tNGAS: ['NATURAL GAS'],\n\tWTC: ['WEST TEXAS'],\n\tWTI: ['WEST TEXAS'],\n\tAUS200: ['ASX 200'],\n\tES: ['S&P 500'],\n\tSPX500: ['S&P 500'],\n\tUS30: ['DOW JONES'],\n\tYM: ['DOW JONES'],\n\tNAS100: ['NASDAQ'],\n\tNQ: ['NASDAQ'],\n\tESTX50: ['EURO STOXX 50'],\n\tFD: ['DAX'],\n\tGER30: ['DAX'],\n\tUK100: ['FTSE 100'],\n\tFRA40: ['CAC'],\n\tUS2000: ['RUSSELL MID CAP'],\n\tZAR40: ['SOUTH AFRICA 40'],\n\tJPN225: ['NIKKEI'],\n\tHK50: ['HONG KONG 50'],\n\tCHINA50: ['CHINA 50'],\n\tXAUUSD: ['GOLD'],\n\tXAGUSD: ['SILVER'],\n\tXPTUSD: ['PLATINUM'],\n\tBTCUSD: ['BITCOIN'],\n\tETHUSD: ['ETHEREUM'],\n};\n\nexport function getKeywords(code: string) {\n\treturn [\n\t\t...(newsKeywords[code] ?? []),\n\t\t...(newsKeywords[code.slice(0, 2)] ?? []),\n\t\t...(newsKeywords[code.slice(0, 3)] ?? []),\n\t];\n}\n","module.exports = __webpack_public_path__ + \"static/media/loader_dark.7bb0cf17.svg\";","module.exports = __webpack_public_path__ + \"static/media/loader_light.9ec4b892.svg\";","\nconst getTimeFrameTranslation = (closeTrade: any, t: any) => {\n\n switch (closeTrade) {\n case '1 Month':\n return t('wtr:1_MONTH');\n case '3 Months':\n return t('wtr:3_MONTHS');\n case 'YTD':\n return t('wtr:WTR_YTD');\n case '1 Year':\n return t('wtr:1_YEAR');\n case '1 Week':\n return t('wtr:1_WEEK');\n case 'Today':\n return t('wtr:WTR_TODAY');\n case 'All':\n return t('All');\n }\n};\n\nexport default getTimeFrameTranslation;","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"MarginRequirements_wrapper__3r1kX\",\"title\":\"MarginRequirements_title__kRGZV\",\"infoTooltip\":\"MarginRequirements_infoTooltip__3GVM-\",\"header\":\"MarginRequirements_header__1VJH4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"iconContainer\":\"Item_iconContainer__10Rq0\",\"selected\":\"Item_selected__3aDll\",\"icon\":\"Item_icon__2QeRI\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"SignalsEmptyState_container__1u1gb\",\"hasBorder\":\"SignalsEmptyState_hasBorder__2FRCT\",\"fullHeight\":\"SignalsEmptyState_fullHeight__WqyvF\",\"noSignalIcon\":\"SignalsEmptyState_noSignalIcon__1BMUx\",\"clearFilterText\":\"SignalsEmptyState_clearFilterText__2VGaw\",\"message\":\"SignalsEmptyState_message__38THT\",\"emptyGridContainer\":\"SignalsEmptyState_emptyGridContainer__2nBhm\",\"emptyIcon\":\"SignalsEmptyState_emptyIcon__jfNHm\",\"emptyStateMessage\":\"SignalsEmptyState_emptyStateMessage__3k5Ht\",\"startTrading_Inactive\":\"SignalsEmptyState_startTrading_Inactive__2lOlO\",\"startTrading_Active\":\"SignalsEmptyState_startTrading_Active__26Ia9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"MarketsEmptyState_container__2XB6k\",\"fullHeight\":\"MarketsEmptyState_fullHeight__3lHmi\",\"noResultsIcon\":\"MarketsEmptyState_noResultsIcon__1ua41\",\"message\":\"MarketsEmptyState_message__RAOpk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"searchInputContainer\":\"SearchableList_searchInputContainer__1mevM\",\"searchInput\":\"SearchableList_searchInput__2Jnwc\",\"searchIcon\":\"SearchableList_searchIcon__2Qm0f\",\"closeIcon\":\"SearchableList_closeIcon__2p5rq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"iconContainerClicked\":\"NotificationsIcon_iconContainerClicked__3-bVR\",\"iconContainer\":\"NotificationsIcon_iconContainer__38N0x\",\"notificationIcon\":\"NotificationsIcon_notificationIcon__3pDEH\",\"newMessageBadge\":\"NotificationsIcon_newMessageBadge__1uSDi\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"containter\":\"Notifications_containter__28rE0\",\"notificationHeader\":\"Notifications_notificationHeader__3fIUb\",\"completeAppBtn\":\"Notifications_completeAppBtn__3l4kR\",\"marginRight\":\"Notifications_marginRight__3Q5Xc\",\"marginRightSafari\":\"Notifications_marginRightSafari__1sEWj\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"itemWrapper\":\"LangSelect_itemWrapper__232Tw\",\"dropdownIcon\":\"LangSelect_dropdownIcon__W3avl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"navContainer\":\"Navigation_navContainer__1RIDJ\",\"navMenuItemsContainer\":\"Navigation_navMenuItemsContainer__2Mwbp\",\"mainMenu\":\"Navigation_mainMenu__Y3Bpd\",\"toggles\":\"Navigation_toggles__2Es-C\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalActivate\":\"OneClickTradingToggle_modalActivate__1DBXL\",\"modalMessage\":\"OneClickTradingToggle_modalMessage__3SmhX\",\"modalFooter\":\"OneClickTradingToggle_modalFooter__Tq21w\",\"modalActionButtons\":\"OneClickTradingToggle_modalActionButtons__3GSqt\",\"modalButton\":\"OneClickTradingToggle_modalButton__PKfrO\",\"buttonsContainer\":\"OneClickTradingToggle_buttonsContainer__34jZ-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"divider\":\"OrHzDivider_divider__3kwGc\",\"text\":\"OrHzDivider_text__2cWCd\",\"line\":\"OrHzDivider_line__2JTac\"};","import React, { useContext, useEffect, useState } from 'react';\nimport cn from 'classnames';\nimport styles from '../../../../Markets/MarketsGridNew/MarketsTable.module.scss';\nimport { useTranslation } from 'react-i18next';\nimport { addCommas } from '../helpers';\nimport AppContext from '../../../../../../contexts/AppContext';\nimport { getCurrentPrice } from '../../../../../../utils/functions/calculations';\nimport positionsStore from '../../../../../../store/PositionsStore/positionsStore';\nimport quoteStore from '../../../../../../store/QuoteStore/quoteStore';\nimport RfpGatewayContext from '../../../../../../contexts/RfpGatewayContext';\n\ninterface CurrentPriceProps {\n\tdata: any;\n\tgym?: boolean;\n}\nconst CurrentPrice = ({ data, gym = false }: CurrentPriceProps) => {\n\tconst appContext = useContext(AppContext);\n\tconst rfpGatewayContext = useContext(RfpGatewayContext);\n\tconst languageSettings = appContext.languageSettings;\n\n\tconst { t } = useTranslation();\n\n\tconst quotes = quoteStore.use.quotes();\n\n\tconst [prevState, setPrevState] = useState(0);\n\n\tconst record = data.row.original;\n\n\tif (!record.position) {\n\t\trecord.position = record.subRows?.[0].position;\n\t}\n\n\tlet current = record.current;\n\n\tif (!gym) {\n\t\tconst currentPrice = getCurrentPrice(record.position?.f, record.position?.code, rfpGatewayContext);\n\t\tcurrent =\n\t\t\t(record.side === 'SELL' ? currentPrice?.a.toFixed(record.decPrec) : currentPrice?.b.toFixed(record.decPrec)) ||\n\t\t\trecord.current;\n\n\t\trecord.current = current;\n\t}\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tif (current !== prevState) {\n\t\t\t\tsetPrevState(current);\n\t\t\t}\n\t\t};\n\t}, [current]);\n\n\tconst colorValue = current && prevState && current >= prevState ? 'green' : 'red';\n\treturn (\n\t\t
\n\t\t\t{isNaN(current) ? t('wtr:NA') : addCommas(current, languageSettings, record?.decPrec)}\n\t\t
\n\t);\n};\n\nexport default CurrentPrice;\n","import React from 'react';\nimport cn from 'classnames';\nimport styles from '../../../../Markets/MarketsGridNew/MarketsTable.module.scss';\nimport MoneyFormatter from '../../../../../components/MoneyFormatter';\nimport positionsStore from '../../../../../../store/PositionsStore/positionsStore';\nimport quoteStore from '../../../../../../store/QuoteStore/quoteStore';\n\ninterface CalcGrossPlProps {\n\tdata: any;\n\tclosed?: boolean;\n}\n\nconst CalcGrossPl = ({ data, closed = false }: CalcGrossPlProps) => {\n\tconst quotes = quoteStore.use.quotes();\n\n\tconst record = data.row.original;\n\n\tif (closed) {\n\t\treturn (\n\t\t\t
0 ? styles.greenCurrent : styles.redCurrent)}>\n\t\t\t\t\n\t\t\t
\n\t\t);\n\t}\n\n\tif (record.isGroupRow) {\n\t\trecord.grossPL = record.subRows.reduce((totalPl: number, gridRecord: any) => {\n\t\t\treturn (\n\t\t\t\t+totalPl +\n\t\t\t\t(isNaN((gridRecord.position?.grossProfit || Number.NaN) as number) ? 0 : +gridRecord?.position?.grossProfit!)\n\t\t\t);\n\t\t}, 0);\n\t} else {\n\t\trecord.grossPL = (record.position?.grossProfit || Number.NaN).toFixed(2);\n\t}\n\n\tconst grossPLValue = isNaN((record.grossPL || Number.NaN) as number) ? 0 : (record.grossPL as number);\n\n\treturn (\n\t\t 0 ? styles.greenCurrent : styles.redCurrent)}\n\t\t>\n\t\t\t\n\t\t\n\t);\n};\n\nexport default CalcGrossPl;\n","import React from 'react';\nimport cn from 'classnames';\nimport styles from '../../../../Markets/MarketsGridNew/MarketsTable.module.scss';\nimport MoneyFormatter from '../../../../../components/MoneyFormatter';\nimport positionsStore from '../../../../../../store/PositionsStore/positionsStore';\nimport quoteStore from '../../../../../../store/QuoteStore/quoteStore';\n\ninterface CalcNetPlProps {\n\tdata: any;\n\tclosed?: boolean;\n}\n\nconst CalcNetPl = ({ data, closed = false }: CalcNetPlProps) => {\n\tconst quotes = quoteStore.use.quotes();\n\n\tconst record = data.row.original;\n\n\tif (closed) {\n\t\treturn (\n\t\t\t
0 ? styles.greenCurrent : styles.redCurrent)}>\n\t\t\t\t\n\t\t\t
\n\t\t);\n\t}\n\n\tif (record.isGroupRow) {\n\t\trecord.netPL = record.subRows.reduce((totalPl: number, gridRecord: any) => {\n\t\t\treturn (\n\t\t\t\t+totalPl +\n\t\t\t\t(isNaN((gridRecord.position?.netProfit || Number.NaN) as number) ? 0 : +gridRecord?.position?.netProfit!)\n\t\t\t);\n\t\t}, 0);\n\t} else {\n\t\trecord.netPL = (record.position?.netProfit || Number.NaN).toFixed(2);\n\t}\n\n\tconst netPLValue = isNaN((record.netPL || Number.NaN) as number) ? 0 : (record.netPL as number);\n\n\treturn (\n\t\t
0 ? styles.greenCurrent : styles.redCurrent)}>\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default CalcNetPl;\n","import React, { useContext } from 'react';\nimport styles from '../../PositionGrid/PositionGrid.module.scss';\nimport { addCommas } from '../helpers';\nimport AppContext from '../../../../../../contexts/AppContext';\nimport positionsStore from '../../../../../../store/PositionsStore/positionsStore';\nimport quoteStore from '../../../../../../store/QuoteStore/quoteStore';\n\ninterface CalcPLPipsProps {\n\tdata: any;\n\tclosed?: boolean;\n}\n\nconst CalcPLPips = ({ data, closed = false }: CalcPLPipsProps) => {\n\tconst appContext = useContext(AppContext);\n\tconst languageSettings = appContext.languageSettings;\n\n\tconst quotes = quoteStore.use.quotes();\n\n\tconst record = data.row.original;\n\n\tif (closed) {\n\t\tconst profitLossPipsValue = isNaN((record.pipsChange || Number.NaN) as number) ? 0 : (record.pipsChange as number);\n\t\treturn (\n\t\t\t
0 ? styles.greenCurrent : styles.redCurrent}>\n\t\t\t\t{addCommas(profitLossPipsValue?.toFixed(2), languageSettings)}\n\t\t\t
\n\t\t);\n\t}\n\n\tif (record.isGroupRow) {\n\t\trecord.pipsChange = record.subRows.reduce((totalPl: number, gridRecord: any) => {\n\t\t\treturn +totalPl + (isNaN((gridRecord.position?.pips || Number.NaN) as number) ? 0 : +gridRecord?.position?.pips!);\n\t\t}, 0);\n\t} else {\n\t\trecord.pipsChange = isNaN((record.position?.pips || Number.NaN) as number) ? 0 : (record.position?.pips as number);\n\t}\n\n\treturn (\n\t\t
0 ? styles.greenCurrent : styles.redCurrent}>\n\t\t\t{addCommas(record.pipsChange, languageSettings, record.decPrec || 2, true)}\n\t\t
\n\t);\n};\n\nexport default CalcPLPips;\n","import React from 'react';\nimport StringUtils from '../../../../../../utils/functions/StringUtils';\nimport { useTranslation } from 'react-i18next';\n\ninterface CalcCommentProps {\n\tdata: any;\n}\nconst CalcComment = ({ data }: CalcCommentProps) => {\n\tconst { t } = useTranslation();\n\n\tconst record = data.row.original;\n\tconst comment = StringUtils.isNullOrEmpty(record.comment?.toString()) ? t('wtr:NA') : record.comment;\n\treturn
{!record.isGroupRow && comment}
;\n};\n\nexport default CalcComment;\n","import React, { useContext, useState } from 'react';\nimport { OverlayTrigger } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport Tooltip from '../../../../../components/Tooltip/Tooltip';\nimport WtrPopup from '../../../../../components/WtrPopup/WtrPopup';\nimport styles from '../../PositionGrid/PositionGrid.module.scss';\nimport AppContext from '../../../../../../contexts/AppContext';\nimport DashboardContext from '../../../../../../contexts/DashboardContext';\nimport { getInstrumentDetails } from '../../../../../../utils/functions/calculations';\nimport useSelectedTradingAccount from '../../../../../../utils/hooks/useSelectedTradingAccount';\nimport RfpGatewayContext from '../../../../../../contexts/RfpGatewayContext';\nimport { TradersGymContext, TradersGymContextType } from '../../../../../../pages/TradersGym/TradersGymContext';\nimport { hidePopup } from '../helpers';\nimport { TicketLayout, TradingPositionLimitType } from '../../../../../../utils/functions/enums';\nimport { TradingPositionState } from '../../../../../../gateways/RfpGateway/rfp.types';\nimport pipStore from '../../../../../../store/PipsStore/pipStore';\nimport orderStore from '../../../../../../store/OrderStore/orderStore';\nimport tradingViewStore from '../../../../../../store/tradingViewStore';\n\nimport GymRemoveModal from './GymRemoveModal';\n\ninterface EditIcon {\n\tinfo: any;\n\tgym?: boolean;\n\ttype: string;\n}\n\nconst EditIcon = ({ info, gym = false, type }: EditIcon) => {\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\n\tconst isArabic = appContext.isArabic;\n\tconst ticketLayout = tradingViewStore.use.ticketLayout();\n\tconst detailedInformation = dashboardContext.detailedInformation;\n\tconst rfpGatewayContext = useContext(RfpGatewayContext);\n\n\tconst stopLossPips = pipStore.use.stopLoss();\n\tconst takeProfitPips = pipStore.use.takeProfit();\n\tconst fillStoreFromPosition = orderStore.use.fillStoreFromPosition();\n\tconst setTradeProps = orderStore.use.setTradeProps();\n\n\tconst activeTradingAccount = useSelectedTradingAccount();\n\tconst tradingPositions = dashboardContext.getTradingPositions();\n\tconst gymContext = useContext(TradersGymContext) as TradersGymContextType;\n\tconst { tradersGymContext } = gymContext;\n\n\tconst { t } = useTranslation();\n\n\tconst [openRemoveModal, setOpenRemoveModal] = useState(false);\n\n\tconst record = info.row.original;\n\n\tconst iconStyle = {\n\t\tfontSize: '20px',\n\t\tmargin: 0,\n\t};\n\n\tconst openPositionInformation = (code: string) => {\n\t\thidePopup(isArabic);\n\t\tif (detailedInformation) {\n\t\t\tconst instrumentDetail = getInstrumentDetails(\n\t\t\t\tdetailedInformation,\n\t\t\t\tactiveTradingAccount ? [activeTradingAccount] : [],\n\t\t\t\tcode\n\t\t\t);\n\n\t\t\tif (instrumentDetail) {\n\t\t\t\tlet marketItem = rfpGatewayContext?.getMarketItem(instrumentDetail.code);\n\t\t\t\tif (marketItem) {\n\t\t\t\t\tconst positions: any = tradingPositions.filter(\n\t\t\t\t\t\t(t) =>\n\t\t\t\t\t\t\tt.code === record.code &&\n\t\t\t\t\t\t\tt.state === TradingPositionState.open &&\n\t\t\t\t\t\t\tt.aId === activeTradingAccount?.id &&\n\t\t\t\t\t\t\t(record.isGroupRow || record.posId === t.posId)\n\t\t\t\t\t);\n\n\t\t\t\t\tdashboardContext.selectedPosition = positions;\n\t\t\t\t\tdashboardContext.selectedInstrument = marketItem;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdashboardContext.closeAllOtherTabs();\n\t\t\tdashboardContext.toggleAccordionMenu = '1';\n\t\t\tdashboardContext.showOrderInformation = true;\n\t\t}\n\t};\n\n\tconst openOrderDetails = (code: string) => {\n\t\thidePopup(isArabic);\n\t\tif (detailedInformation) {\n\t\t\tconst instrumentDetail = getInstrumentDetails(\n\t\t\t\tdetailedInformation,\n\t\t\t\tactiveTradingAccount ? [activeTradingAccount] : [],\n\t\t\t\tcode\n\t\t\t);\n\t\t\tif (instrumentDetail) {\n\t\t\t\tlet marketItem = rfpGatewayContext?.getMarketItem(instrumentDetail.code);\n\t\t\t\tif (marketItem) {\n\t\t\t\t\tdashboardContext.selectedInstrument = marketItem;\n\t\t\t\t}\n\t\t\t}\n\t\t\tdashboardContext.closeAllOtherTabs();\n\t\t\tdashboardContext.toggleAccordionMenu = '2';\n\t\t\tdashboardContext.showOrderInformation = true;\n\t\t}\n\t};\n\n\tconst openMarketInformation = (code: string) => {\n\t\thidePopup(isArabic);\n\t\tif (detailedInformation) {\n\t\t\tconst instrumentDetail = getInstrumentDetails(\n\t\t\t\tdetailedInformation,\n\t\t\t\tactiveTradingAccount ? [activeTradingAccount] : [],\n\t\t\t\tcode\n\t\t\t);\n\t\t\tif (instrumentDetail) {\n\t\t\t\tlet marketItem = rfpGatewayContext?.getMarketItem(instrumentDetail.code);\n\t\t\t\tif (marketItem) {\n\t\t\t\t\tif (type === TradingPositionState.open) {\n\t\t\t\t\t\tconst positions: any = tradingPositions.filter(\n\t\t\t\t\t\t\t(t) =>\n\t\t\t\t\t\t\t\tt.code === record.code &&\n\t\t\t\t\t\t\t\tt.state === TradingPositionState.open &&\n\t\t\t\t\t\t\t\tt.aId === activeTradingAccount?.id &&\n\t\t\t\t\t\t\t\t(record.isGroupRow || record.posId === t.posId)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tdashboardContext.selectedPosition = positions;\n\t\t\t\t\t}\n\n\t\t\t\t\tdashboardContext.selectedInstrument = marketItem;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdashboardContext.closeAllOtherTabs();\n\t\t\tdashboardContext.toggleAccordionMenu = '0';\n\t\t\tdashboardContext.showOrderInformation = true;\n\t\t}\n\t};\n\n\tconst openModifyTicket = (e: any) => {\n\t\thidePopup(isArabic);\n\t\tdashboardContext.closeAllOtherTabs();\n\t\tdashboardContext.tradeInformation = undefined;\n\n\t\tconst record = e.row.original;\n\n\t\tif (record.position && record.position.marketItem) {\n\t\t\tdashboardContext.selectedInstrument = record.position.marketItem;\n\n\t\t\tif (gym && record.position.simulationId) {\n\t\t\t\tconst currentSimulationId = tradersGymContext.simulation?.id;\n\t\t\t\tconst simulation = tradersGymContext.simulationsManager?.getSimulationWithId(record.position.simulationId);\n\t\t\t\tif (simulation && currentSimulationId !== simulation.id) {\n\t\t\t\t\tgymContext.setGymProps({ simulation: simulation });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// change the Trade context state to 'pending' and fill the trade context with the selected position (needed for the TradeTicket.tsx)\n\t\tfillStoreFromPosition(record.position);\n\n\t\tif (ticketLayout === TicketLayout.Dock) {\n\t\t\tdashboardContext.showOrderTicket = true;\n\t\t} else {\n\t\t\tdashboardContext.newOrderModalToggle = {\n\t\t\t\torderTicket: true,\n\t\t\t\tconfirmOrder: false,\n\t\t\t};\n\t\t\tdashboardContext.showOrderTicket = false;\n\t\t}\n\t};\n\n\tconst openTicket = (e: any) => {\n\t\thidePopup(isArabic);\n\t\tdashboardContext.closeAllOtherTabs();\n\n\t\tconst name = e.column.id;\n\t\tconst record = e.row.original;\n\n\t\tif (record) {\n\t\t\tconst positions: any = tradingPositions.filter(\n\t\t\t\t(t) =>\n\t\t\t\t\tt.code === record.code &&\n\t\t\t\t\tt.state === TradingPositionState.open &&\n\t\t\t\t\tt.aId === activeTradingAccount?.id &&\n\t\t\t\t\t(record.isGroupRow || record.posId === t.posId)\n\t\t\t);\n\n\t\t\tdashboardContext.selectedPosition = positions;\n\t\t\tdashboardContext.selectedInstrument = record.position.marketItem;\n\t\t}\n\n\t\tlet limitsType: TradingPositionLimitType[] = [];\n\t\tif (name === TradingPositionLimitType.StopLoss) {\n\t\t\tlimitsType.push(TradingPositionLimitType.StopLoss);\n\t\t} else if (name === TradingPositionLimitType.TakeProfit) {\n\t\t\tlimitsType.push(TradingPositionLimitType.TakeProfit);\n\t\t} else if (name !== 'NaN' && record.TakeProfit !== 'NaN') {\n\t\t\tlimitsType.push(TradingPositionLimitType.TakeProfit, TradingPositionLimitType.StopLoss);\n\t\t}\n\n\t\tfillStoreFromPosition(record.position, limitsType, true, { takeProfitPips, stopLossPips });\n\n\t\tsetTradeProps({\n\t\t\tisPreservedValue: true,\n\t\t});\n\n\t\tif (ticketLayout === TicketLayout.Dock) {\n\t\t\tdashboardContext.showOrderTicket = true;\n\n\t\t\tif (name === TradingPositionLimitType.StopLoss || name === TradingPositionLimitType.TakeProfit) {\n\t\t\t\tdashboardContext.gridButton =\n\t\t\t\t\tname === TradingPositionLimitType.StopLoss\n\t\t\t\t\t\t? TradingPositionLimitType.StopLoss\n\t\t\t\t\t\t: TradingPositionLimitType.TakeProfit;\n\t\t\t} else if (name) {\n\t\t\t\tdashboardContext.gridButton = name;\n\t\t\t} else {\n\t\t\t\tdashboardContext.gridButton = 'Menu Item';\n\t\t\t}\n\t\t} else {\n\t\t\tdashboardContext.newOrderModalToggle = {\n\t\t\t\torderTicket: true,\n\t\t\t\tconfirmOrder: false,\n\t\t\t};\n\n\t\t\tif (name === TradingPositionLimitType.StopLoss || name === TradingPositionLimitType.TakeProfit) {\n\t\t\t\tdashboardContext.gridButton =\n\t\t\t\t\tname === TradingPositionLimitType.StopLoss\n\t\t\t\t\t\t? TradingPositionLimitType.StopLoss\n\t\t\t\t\t\t: TradingPositionLimitType.TakeProfit;\n\t\t\t} else if (name) {\n\t\t\t\tdashboardContext.gridButton = name;\n\t\t\t} else {\n\t\t\t\tdashboardContext.gridButton = 'Menu Item';\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleRemoveButtonClick = () => {\n\t\tsetOpenRemoveModal(true);\n\t\thidePopup(isArabic);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t{t('en:NAVIGATION_MORE')}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\ttype === TradingPositionState.open\n\t\t\t\t\t\t\t\t\t\t\t? openPositionInformation(record.code)\n\t\t\t\t\t\t\t\t\t\t\t: openOrderDetails(record.code)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{type === TradingPositionState.open\n\t\t\t\t\t\t\t\t\t\t\t? t('en:TRADES_POSITION_DETAILS')\n\t\t\t\t\t\t\t\t\t\t\t: t('en:TRADES_ORDER_DETAILS')}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\topenMarketInformation(record.code);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{t('wtr:MARKET_INFO')}
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{!record.isGroupRow && type === TradingPositionState.open && (\n\t\t\t\t\t\t\t\t\t
openTicket(info)}>\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{!record.isGroupRow && type === TradingPositionState.pending && (\n\t\t\t\t\t\t\t\t\t
openModifyTicket(info)}>\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
{t('en:TRADES_MODIFY_ORDER')}
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{gym && type !== TradingPositionState.pending && (\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\thandleRemoveButtonClick();\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t{' '}\n\t\t\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\t\t
{t('en:REMOVE')}
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\ton={['click']}\n\t\t\t\t\t\tpinned\n\t\t\t\t\t\tposition={isArabic ? 'right center' : 'left center'}\n\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default EditIcon;\n","import React, { useState, useEffect, useContext } from 'react';\n\nimport Modal from '../../../../shared/Modal/Modal';\n\nimport { RFPNews } from '../../../../gateways/RfpGateway/rfp.types';\n\nimport { default as useForceRerender } from '../../../../utils/hooks/useForceRerender';\nimport { default as usePromiseFactory } from '../../../../utils/hooks/usePromiseFactory';\nimport { default as useObservable } from '../../../../utils/hooks/useObservable';\nimport { default as DashboardContext } from '../../../../contexts/DashboardContext';\n\nimport styles from './NewsWidgetStyles.module.scss';\n\nconst NewsPopup = () => {\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst promiseFactory = usePromiseFactory();\n\tconst forceRerender = useForceRerender();\n\n\tconst [open, setOpen] = useState(true);\n\tconst [article, setArticle] = useState([]);\n\n\tconst id = dashboardContext.selectedNewsContent;\n\tconst tradeNews = dashboardContext.tradeNews;\n\n\tuseObservable(dashboardContext.getPropertyChangeStream('selectedNewsContent', 'tradeNews'), () => {\n\t\tpromiseFactory.throttle('dashboardContext.propertyChanged', 100).then(() => {\n\t\t\tforceRerender();\n\t\t});\n\t});\n\n\tconst handleClose = (): void => {\n\t\tsetOpen(!open);\n\t\tdashboardContext.selectedNewsContent = -1;\n\t};\n\n\tuseEffect(() => {\n\t\tconst news = tradeNews.filter((article: RFPNews) => article.id === id);\n\t\tsetArticle(news[0]);\n\t}, []);\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
{article.headline}
\n\t\t\t\t
\n\t\t\t\t{article && (\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default NewsPopup;\n","import React from 'react';\n\nimport cn from 'classnames';\n\nimport Slider from 'rc-slider';\n\nimport styles from './WtrSlider.module.scss';\n\n/**\n * Wrapper component that allows you to stylize the rc-slider library\n */\nconst WtrSlider = ({ ...rest }: any) => {\n\trest.className = cn(rest.className, styles.wtrSlider);\n\n\treturn ;\n};\n\nexport default WtrSlider;\n","import { useMutation } from '@tanstack/react-query';\nimport axios from 'axios';\n\nexport interface ITokenPair {\n\taccessToken: string;\n\trefreshToken: string;\n}\n\nconst useRefreshJWTToken = () => {\n\tconst mutationFn = async (tokenPair: ITokenPair) => {\n\t\tconst response = await axios({\n\t\t\turl: `/auth/refresh`,\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t},\n\t\t\tdata: tokenPair,\n\t\t});\n\n\t\tlocalStorage.setItem('accessToken', response.data.accessToken);\n\t\tlocalStorage.setItem('refreshToken', response.data.refreshToken);\n\n\t\treturn response.data;\n\t};\n\n\treturn useMutation({\n\t\tmutationKey: ['useRefreshJWTToken'],\n\t\tmutationFn,\n\t\tuseErrorBoundary: (error: any) => error.response?.status >= 500,\n\t});\n};\n\nexport default useRefreshJWTToken;\n","import { Mutate, StoreApi } from 'zustand';\n\nexport type StoreWithPersist = Mutate, [['zustand/persist', unknown]]>;\n\nexport const useStorageDOMEvents = (store: StoreWithPersist) => {\n\tconst storageEventCallback = (e: StorageEvent) => {\n\t\tif (e.key === store.persist.getOptions().name && e.newValue) {\n\t\t\tstore.persist.rehydrate();\n\t\t}\n\t};\n\n\twindow.addEventListener('storage', storageEventCallback);\n\n\treturn () => {\n\t\twindow.removeEventListener('storage', storageEventCallback);\n\t};\n};\n","import { limitProfitLossValues } from '../../../../../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\n\nexport const storeInstrumentsPipsValue = (obj: limitProfitLossValues | null) => {\n\tlocalStorage.setItem('instrumentsPipsValue', JSON.stringify(obj));\n};\n\nexport const getSavedInstrumentsPipsValue = () => JSON.parse(localStorage.getItem('instrumentsPipsValue') ?? '{}');\n","import React, { useEffect, useState, useContext, useRef } from 'react';\n\nimport cn from 'classnames';\n\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\n\nimport isWindowStyles from '../../../../../utils/functions/isWindowStyles';\nimport { MarketItem, PriceQuote, RFPDataObjectType } from '../../../../../gateways/RfpGateway/rfp.types';\nimport BidAskSpread from '../../../../components/BidAskSpread/BidAskSpread';\nimport { Optional } from '../../../../../utils/functions/Nullable';\n\nimport { default as usePromiseFactory } from '../../../../../utils/hooks/usePromiseFactory';\nimport { default as useObservable } from '../../../../../utils/hooks/useObservable';\nimport { default as useForceRerender } from '../../../../../utils/hooks/useForceRerender';\n\nimport { default as AppContext } from '../../../../../contexts/AppContext';\nimport { default as DashboardContext } from '../../../../../contexts/DashboardContext';\n\nimport RfpGatewayContext from '../../../../../contexts/RfpGatewayContext';\nimport { TradersGymContext, TradersGymContextType } from '../../../../../pages/TradersGym/TradersGymContext';\n\nimport useIsInViewport from '../../../../../utils/hooks/useIsInViewport';\nimport { instrumentGroupProps } from '../../../../../utils/functions/constants';\nimport InstrumentIcon from '../../../../components/GroupBadge/InstrumentIcon';\nimport TradingSessionTooltip from '../../../../components/Shared/TradingSessionTooltip';\nimport tradingViewStore from '../../../../../store/tradingViewStore';\n\nimport styles from './Instrument.module.scss';\n\ninterface InstrumentProps {\n\tindex: number;\n\twindows?: boolean;\n\tmarketItem: MarketItem;\n\tonRemovalFromWatchlist?: () => void;\n\tonChartClick: () => void;\n\tshowPriceStats?: boolean; //Optional prop to display Low/High values underneath buy/sell buttons\n\tspreadPosition?: boolean; //Optional prop to toggle shifting class of spread display\n\tresizeButton?: boolean; //Optional prop to toggle resized buttons class\n\tshowButtonText?: boolean; //Optional prop to display \"Buy\" \"Sell\" words within buttons\n\tshowInstrumentName?: boolean; //Optional prop to toggle display full instrument name next to button\n\tparent?: string; //Parent element\n\tbuttonsClass?: string;\n}\n\nconst Instrument = React.memo(\n\t({\n\t\tindex,\n\t\tmarketItem,\n\t\twindows,\n\t\tonChartClick,\n\t\tshowInstrumentName,\n\t\tshowPriceStats,\n\t\tspreadPosition,\n\t\tresizeButton,\n\t\tshowButtonText,\n\t\tparent,\n\t\tbuttonsClass,\n\t}) => {\n\t\tconst appContext = useContext(AppContext);\n\t\tconst dashboardContext = useContext(DashboardContext);\n\t\tconst promiseFactory = usePromiseFactory();\n\n\t\tconst forceRerender = useForceRerender();\n\t\tconst rfpGatewayContext = useContext(RfpGatewayContext);\n\n\t\tconst subIdRef = useRef(undefined);\n\t\tconst [currentPriceQuote, setCurrentPriceQuote] = useState>();\n\n\t\tconst accountType = dashboardContext.accountType;\n\t\tconst selectedInstrument = dashboardContext.selectedInstrument;\n\t\tconst selectedPosition = dashboardContext.selectedPosition;\n\t\tconst selectedType = dashboardContext.selectedType;\n\t\tconst ticketLayout = tradingViewStore.use.ticketLayout();\n\t\tconst gymContext = useContext(TradersGymContext) as TradersGymContextType;\n\t\tconst { tradersGymContext } = gymContext;\n\n\t\tconst { t } = useTranslation();\n\n\t\tconst item = useRef(null);\n\t\tconst isInViewport = useIsInViewport(item);\n\n\t\tuseObservable(appContext.getPropertyChangeStream('appTheme', 'email'), () => {\n\t\t\tpromiseFactory.throttle('appContext.propertyChanged', 100).then(() => {\n\t\t\t\tforceRerender();\n\t\t\t});\n\t\t});\n\n\t\tuseObservable(\n\t\t\tdashboardContext.getPropertyChangeStream(\n\t\t\t\t'accountType',\n\t\t\t\t'detailedInformation',\n\t\t\t\t'selectedInstrument',\n\t\t\t\t'selectedPosition',\n\t\t\t\t'selectedType',\n\t\t\t\t'tradingAccount'\n\t\t\t),\n\t\t\t() => {\n\t\t\t\tpromiseFactory.throttle('dashboardContext.propertyChanged', 100).then(() => {\n\t\t\t\t\tforceRerender();\n\t\t\t\t});\n\t\t\t}\n\t\t);\n\n\t\tconst handleChartClick = () => {\n\t\t\tdashboardContext.closeAllOtherTabs();\n\t\t\tdashboardContext.selectedType = 'Instrument';\n\t\t\tdashboardContext.isEdit = false;\n\t\t\tonChartClick && onChartClick();\n\t\t};\n\n\t\tconst isSelected = selectedPosition && selectedPosition[0] ? selectedPosition[0] : '';\n\t\tconst isInstrument = selectedInstrument ? selectedInstrument?.code === marketItem?.code : false;\n\t\tconst isGrid = isSelected?.code === marketItem?.code;\n\n\t\t//Function to dynamically select which container to size the trading buttons with (watchlist vs right hand panels)\n\t\tconst containerSelector = () => {\n\t\t\tif (resizeButton) {\n\t\t\t\treturn cn(\n\t\t\t\t\tisWindowStyles(styles.rightHandContainer, styles.windowContainer, windows),\n\t\t\t\t\tselectStyle,\n\t\t\t\t\tindex === -1 ? styles.showActions : null\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\treturn cn(\n\t\t\t\t\tisWindowStyles(styles.container, styles.windowContainer, windows),\n\t\t\t\t\tselectStyle,\n\t\t\t\t\tindex === -1 ? styles.showActions : null,\n\t\t\t\t\tparent && styles[parent]\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\n\t\t//Function to display the highlight on a selected instrument. When \"resizeButton\", no highlight shown (right hand panel)\n\t\tconst displayHighlight = () => {\n\t\t\tif (resizeButton) {\n\t\t\t\treturn isInstrument && selectedType === 'Instrument'\n\t\t\t\t\t? ''\n\t\t\t\t\t: isGrid && selectedType === 'Grid'\n\t\t\t\t\t? ''\n\t\t\t\t\t: styles.nonHighlightSelected;\n\t\t\t} else {\n\t\t\t\treturn isInstrument\n\t\t\t\t\t? styles.highlightSelected\n\t\t\t\t\t: isGrid && selectedType === 'Grid'\n\t\t\t\t\t? styles.highlightSelected\n\t\t\t\t\t: styles.nonHighlightSelected;\n\t\t\t}\n\t\t};\n\n\t\tconst selectStyle = displayHighlight();\n\n\t\tconst renderTooltip = (props: any) => (\n\t\t\t\n\t\t\t\t{marketItem!.fullName}\n\t\t\t\n\t\t);\n\n\t\tuseEffect(() => {\n\t\t\tif (tradersGymContext.priceQuote) {\n\t\t\t\tsetCurrentPriceQuote(tradersGymContext.priceQuote);\n\t\t\t}\n\t\t}, [tradersGymContext.priceQuote]);\n\n\t\tuseEffect(() => {\n\t\t\t// Walk around to the race condition for Quote subscription while InstrumentHeader rendering,\n\t\t\t// and the check isInViewport is getting false from time to time.\n\t\t\tconst shouldSubscribe = isInViewport || parent === 'instrumentHeader';\n\n\t\t\tif (rfpGatewayContext && marketItem && shouldSubscribe && !tradersGymContext.isActive) {\n\t\t\t\t// Unsubscribe existing subscription\n\t\t\t\tif (subIdRef.current) {\n\t\t\t\t\trfpGatewayContext.unsubscribeFor(subIdRef.current);\n\t\t\t\t\tsubIdRef.current = undefined;\n\t\t\t\t}\n\n\t\t\t\tsubIdRef.current = rfpGatewayContext.subscribeFor(RFPDataObjectType.PriceQuote, (priceQuote) => {\n\t\t\t\t\tif (priceQuote.c === marketItem.code) {\n\t\t\t\t\t\tsetCurrentPriceQuote(priceQuote);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t//console.log(`✅︎ Subscribe instruments subId=${subIdRef.current} symbol=${marketItem.code}`);\n\n\t\t\t\t// Get latest price snapshot\n\t\t\t\tconst priceQuote = rfpGatewayContext.getQuotePrices(marketItem.feedId, marketItem.code);\n\t\t\t\tif (priceQuote) {\n\t\t\t\t\tsetCurrentPriceQuote(priceQuote);\n\t\t\t\t}\n\n\t\t\t\t// unsubscribe price quote on unmount\n\t\t\t\treturn () => {\n\t\t\t\t\tif (rfpGatewayContext && subIdRef.current) {\n\t\t\t\t\t\trfpGatewayContext.unsubscribeFor(subIdRef.current);\n\t\t\t\t\t\t//console.log(`❌ Unsubscribe instruments subId=${subIdRef.current}`);\n\t\t\t\t\t\tsubIdRef.current = undefined;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t}, [marketItem, rfpGatewayContext, isInViewport]);\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{parent !== 'instrumentHeader' && (\n\t\t\t\t\t\t
handleChartClick()}>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{marketItem.grp && t(instrumentGroupProps[marketItem.grp]?.name)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\t{parent !== 'instrumentHeader' && (\n\t\t\t\t\t\t handleChartClick()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{showInstrumentName && marketItem && (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
{marketItem.displayName}
\n\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{accountType !== 'equity' && showInstrumentName && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t{marketItem?.fullName}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t\t\t onChartClick()}\n\t\t\t\t\t\t\tid={index}\n\t\t\t\t\t\t\tticketLayout={ticketLayout}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\n\t\t);\n\t},\n\t(prevProps, nextProps) => {\n\t\treturn (\n\t\t\tprevProps === nextProps ||\n\t\t\t(prevProps &&\n\t\t\t\tnextProps &&\n\t\t\t\t(\n\t\t\t\t\t['index', 'ticker', 'marketItem', 'windows', 'onRemovalFromWatchlist', 'onChartClick'] as Array<\n\t\t\t\t\t\tkeyof typeof prevProps\n\t\t\t\t\t>\n\t\t\t\t).every((key) => prevProps[key] === nextProps[key]))\n\t\t);\n\t}\n);\n\nexport default Instrument;\n","import React, { useContext, useMemo, useState } from 'react';\n\nimport cn from 'classnames';\n\nimport { OverlayTrigger } from 'react-bootstrap';\nimport { useTranslation } from 'react-i18next';\nimport moment from 'moment';\n\nimport {\n\tformatNumberWithCommas,\n\tformattedNumber,\n} from '../../features/Dashboard/Watchlist/Instrument/formattedQuoteNumber';\nimport {\n\tcalculateInitialStopLossValue,\n\tcalculateInitialTakeProfitValue,\n\tgetFormattedSpreadValue,\n} from '../../../utils/functions/calculations';\nimport { InitialStopLossTakeProfitValues } from '../../features/Dashboard/ChartPanel/NewOrderModals/OrderTicketModal/OrderTicketModal';\nimport { MarketItem, PriceQuote } from '../../../gateways/RfpGateway/rfp.types';\n\nimport { default as AppContext } from '../../../contexts/AppContext';\nimport { default as DashboardContext } from '../../../contexts/DashboardContext';\n\nimport orderStore from '../../../store/OrderStore/orderStore';\nimport { default as usePromiseFactory } from '../../../utils/hooks/usePromiseFactory';\nimport { default as useObservable } from '../../../utils/hooks/useObservable';\nimport { default as useForceRerender } from '../../../utils/hooks/useForceRerender';\nimport { default as Nullable } from '../../../utils/functions/Nullable';\nimport { TicketLayout, TradingPositionSide } from '../../../utils/functions/enums';\nimport uniqueId from '../../../utils/functions/uniqueId';\nimport useShortTranslation from '../../../utils/hooks/useShortTranslation';\nimport useHandleOrderConstraint from '../../../utils/hooks/useHandleOrderConstraint';\nimport useHandleSubscriptionConstraints from '../../../utils/hooks/useHandleSubscriptionConstraints';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { getGeneralFormatDate } from '../../../utils/functions/subscriptionUtils';\n\nimport authStore from '../../../store/authStore';\n\nimport tradingAccountStore from '../../../store/tradingAccountStore';\n\nimport accountStatusStore, { StatusStore } from '../../../store/accountStatusStore';\nimport tradingViewStore from '../../../store/tradingViewStore';\nimport useTimeSessions from '../../../utils/hooks/useTimeSessions';\n\nimport Tooltip from './../Tooltip/Tooltip';\n\nimport styles from './BidAskSpread.module.scss';\n\ninterface BidAskSpreadProps {\n\tmarketItem: MarketItem;\n\torder?: boolean;\n\ttypeOfOrder?: string | undefined;\n\tstopLoss?: boolean;\n\ttakeProfit?: boolean;\n\ttradeMeasure?: string;\n\tprofitTradeMeasure?: string;\n\tdispatcher?: any;\n\tlimitPrice?: string;\n\tisBidAskDisabled?: boolean;\n\tgridChartMenu?: boolean;\n\tinstrument?: PriceQuote | null;\n\tid?: any;\n\tonChartClick?: () => void;\n\tshowPriceStats?: boolean;\n\tspreadPosition?: boolean;\n\tresizeButton?: boolean;\n\tshowButtonText?: boolean;\n\theaderSpreadPosition?: boolean;\n\tticketLayout: string | null;\n}\n\nconst BidAskSpread = React.memo(\n\t({\n\t\tmarketItem,\n\t\torder,\n\t\ttypeOfOrder,\n\t\tstopLoss,\n\t\ttakeProfit,\n\t\ttradeMeasure,\n\t\tprofitTradeMeasure,\n\t\tdispatcher,\n\t\tlimitPrice,\n\t\tisBidAskDisabled,\n\t\tgridChartMenu,\n\t\tinstrument,\n\t\tonChartClick,\n\t\tshowPriceStats,\n\t\tspreadPosition,\n\t\tresizeButton,\n\t\tshowButtonText,\n\t\theaderSpreadPosition,\n\t\tticketLayout,\n\t}) => {\n\t\tconst appContext = useContext(AppContext);\n\t\tconst dashboardContext = useContext(DashboardContext);\n\n\t\t//is we use `use.current().side` every change in the order will trigger a re-render; this is more optimal\n\t\tconst tradingPositionSide = orderStore((state) => state.current.side);\n\t\t//using OrderStore callback because use break typescript\n\t\tconst storeMarketItem = orderStore((state) => state.marketItem);\n\t\tconst setTradeProps = orderStore.use.setTradeProps();\n\t\tconst resetOrderStore = orderStore.use.reset();\n\t\tconst setTradingPosition = orderStore.use.setTradingPosition();\n\t\tconst setMarketItem = orderStore.use.setMarketItem();\n\t\tconst isLiveMode = authStore.use.isLiveMode();\n\n\t\tconst forceRerender = useForceRerender();\n\t\tconst promiseFactory = usePromiseFactory();\n\t\tconst { t } = useTranslation();\n\t\tconst tt = useShortTranslation('en:');\n\n\t\tconst languageSettings = appContext.languageSettings;\n\t\tconst isSpreadBettingAccount = tradingAccountStore.use.isSpreadBetting();\n\t\tconst isJapanSubscriptionAccount = tradingAccountStore.use.isJapanSubscription();\n\n\t\tconst selectedInstrument = dashboardContext.selectedInstrument;\n\t\tconst setTicketLayout = tradingViewStore.use.setTicketLayout();\n\t\tconst modifyTicket = dashboardContext.modifyTicket;\n\t\tconst tradingAccount = dashboardContext.tradingAccount;\n\t\tconst selectedPosition = dashboardContext.selectedPosition;\n\t\tconst selectedType = dashboardContext.selectedType;\n\t\tconst handleSubscriptionsConstraints = useHandleSubscriptionConstraints();\n\t\tconst handleOrderConstraint = useHandleOrderConstraint();\n\n\t\tconst [prevBid, setPrevBid] = useState(0);\n\t\tconst [previousBid, setPreviousBid] = useState(0);\n\t\tconst [prevAsk, setPrevAsk] = useState(0);\n\t\tconst [previousAsk, setPreviousAsk] = useState(0);\n\t\tconst [selectedQuantity] = useState(undefined);\n\n\t\tconst isSelected = selectedPosition && selectedPosition[0] ? selectedPosition[0] : '';\n\t\tconst isInstrument = selectedInstrument && marketItem ? selectedInstrument?.code === marketItem?.code : false;\n\t\tconst isGrid = isSelected.code === marketItem?.code;\n\n\t\t// Maximum length for short high/low strings used to apply different styling for longer strings\n\t\tconst maxHighLowStringsLength = 12;\n\t\tconst displayPriceA = instrument ? instrument.a : 0;\n\t\tconst displayPriceB = instrument ? instrument.b : 0;\n\t\tconst instrumentZero: string = Number(0).toFixed(marketItem?.decPrec);\n\t\tconst INITIAL_VALUE: number = 0.25;\n\t\tconst INITIAL_TAKEPROFIT_VALUE = 30;\n\t\tconst getPathname = window.location.pathname === '/web-trader/watchlist/ticker';\n\t\tconst tradeButtons = accountStatusStore((state: StatusStore) => (state.permissions || {}).tradeButtons);\n\t\tconst setShowModal = accountStatusStore((state: StatusStore) => state.setShowModal);\n\n\t\tconst { isWorkingTime } = useTimeSessions();\n\n\t\tconst bidNumber = useMemo(\n\t\t\t() =>\n\t\t\t\tformattedNumber(\n\t\t\t\t\tinstrument ? instrument.b : instrumentZero,\n\t\t\t\t\tmarketItem,\n\t\t\t\t\tisSpreadBettingAccount,\n\t\t\t\t\torder,\n\t\t\t\t\tgridChartMenu,\n\t\t\t\t\tlanguageSettings,\n\t\t\t\t\tundefined\n\t\t\t\t),\n\t\t\t[instrument, marketItem, order, instrumentZero, gridChartMenu]\n\t\t);\n\t\tconst askNumber = useMemo(\n\t\t\t() =>\n\t\t\t\tformattedNumber(\n\t\t\t\t\tinstrument ? instrument.a : instrumentZero,\n\t\t\t\t\tmarketItem,\n\t\t\t\t\tisSpreadBettingAccount,\n\t\t\t\t\torder,\n\t\t\t\t\tgridChartMenu,\n\t\t\t\t\tlanguageSettings,\n\t\t\t\t\tundefined\n\t\t\t\t),\n\t\t\t[instrument, marketItem, order, instrumentZero, gridChartMenu]\n\t\t);\n\n\t\tconst highNumber = useMemo(\n\t\t\t() => formatNumberWithCommas(instrument ? instrument.h : +instrumentZero, marketItem?.decPrec, languageSettings),\n\t\t\t[marketItem, instrument, instrumentZero]\n\t\t);\n\t\tconst lowNumber = useMemo(\n\t\t\t() => formatNumberWithCommas(instrument ? instrument.l : +instrumentZero, marketItem?.decPrec, languageSettings),\n\t\t\t[marketItem, instrument, instrumentZero]\n\t\t);\n\n\t\tconst timeUpdate = useMemo(\n\t\t\t() => instrument && getGeneralFormatDate(moment(instrument.t).toDate(), true, appContext.isJapanAccount),\n\t\t\t[instrument, marketItem]\n\t\t);\n\n\t\tconst instrumentColor = (left: number, right: number) => {\n\t\t\treturn {\n\t\t\t\t[styles.instrumentGrey]: left === 0 && right === 0,\n\t\t\t\t[isInstrument ? styles.instrumentRedHighlighted : styles.instrumentRed]: left <= right,\n\t\t\t\t[isInstrument ? styles.instrumentGreenHighlighted : styles.instrumentGreen]: left >= right,\n\t\t\t};\n\t\t};\n\n\t\tuseObservable(appContext.getPropertyChangeStream('isChildWindow'), async () => {\n\t\t\tawait promiseFactory.throttle('appContext.propertyChanged', 100);\n\t\t\tforceRerender();\n\t\t});\n\n\t\tuseObservable(\n\t\t\tdashboardContext.getPropertyChangeStream(\n\t\t\t\t'detailedInformation',\n\t\t\t\t'selectedInstrument',\n\t\t\t\t'quantityType',\n\t\t\t\t'orderModalOpenedFrom',\n\n\t\t\t\t'modifyTicket',\n\t\t\t\t'tradingAccount',\n\t\t\t\t'selectedPosition',\n\t\t\t\t'selectedType',\n\t\t\t\t'applicationStatus',\n\t\t\t\t'accountValues'\n\t\t\t),\n\t\t\tasync () => {\n\t\t\t\tawait promiseFactory.throttle('dashboardContext.propertyChanged', 100);\n\t\t\t\tforceRerender();\n\t\t\t}\n\t\t);\n\n\t\tNullable.of(instrument).run((instrument) => {\n\t\t\tif (previousBid !== instrument.b) {\n\t\t\t\tsetPreviousBid(instrument.b);\n\t\t\t}\n\t\t\tif (previousAsk !== instrument.a) {\n\t\t\t\tsetPreviousAsk(instrument.a);\n\t\t\t}\n\t\t\tif (previousBid !== instrument.b) {\n\t\t\t\tsetPrevBid(previousBid);\n\t\t\t}\n\t\t\tif (previousAsk !== instrument.a) {\n\t\t\t\tsetPrevAsk(previousAsk);\n\t\t\t}\n\t\t});\n\n\t\tconst buttonStyles = (left: number, right: number) => {\n\t\t\tif (resizeButton && !gridChartMenu) {\n\t\t\t\treturn cn(styles.resizedButton, order ? styles.orderButton : '', instrumentColor(left, right));\n\t\t\t}\n\t\t\t//\n\t\t\treturn cn(\n\t\t\t\t!order\n\t\t\t\t\t? !getPathname\n\t\t\t\t\t\t? gridChartMenu\n\t\t\t\t\t\t\t? styles.gridChartInstrumentButton\n\t\t\t\t\t\t\t: styles.instrumentButton\n\t\t\t\t\t\t: styles.windowInstrumentButton\n\t\t\t\t\t: styles.orderButton,\n\t\t\t\tinstrumentColor(left, right),\n\t\t\t\t'bidAskSpreadButton' // be able to address the buttons in the current instrument\n\t\t\t);\n\t\t};\n\n\t\tconst orderButtonStyles = (left: number, right: number, button: any) => {\n\t\t\treturn !button\n\t\t\t\t? cn(ticketLayout === TicketLayout.Dock ? styles.orderButton : styles.orderButtonModal, styles.borderButton, {\n\t\t\t\t\t\t[styles.orderGrey]: left === 0 && right === 0,\n\t\t\t\t\t\t[styles.orderRed]: left <= right,\n\t\t\t\t\t\t[styles.orderGreen]: left >= right,\n\t\t\t\t })\n\t\t\t\t: cn(\n\t\t\t\t\t\tticketLayout === TicketLayout.Dock ? styles.orderButton : styles.orderButtonModal,\n\t\t\t\t\t\tinstrumentColor(left, right)\n\t\t\t\t );\n\t\t};\n\n\t\tconst spreadIndicatorPosition = () => {\n\t\t\tif (spreadPosition && !getPathname) {\n\t\t\t\treturn styles.rightHandSpread;\n\t\t\t} else if (headerSpreadPosition && !getPathname) {\n\t\t\t\treturn styles.headerTickerButtons;\n\t\t\t} else if (!getPathname) {\n\t\t\t\treturn styles.instrumentPosition;\n\t\t\t} else {\n\t\t\t\treturn styles.windowInstrumentPosition;\n\t\t\t}\n\t\t};\n\n\t\tconst spreadButtonStyles = () => {\n\t\t\treturn cn(\n\t\t\t\tticketLayout === TicketLayout.Dock ? styles.orderPosition : styles.orderPositionModal,\n\t\t\t\tstyles.spreadButton\n\t\t\t);\n\t\t};\n\n\t\tconst displayHighlight = () => {\n\t\t\treturn isInstrument ? styles.highlightSpread : styles.spread;\n\t\t};\n\n\t\tconst handleButtonClick = (side: TradingPositionSide) => {\n\t\t\tif (!instrument) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (tradeButtons === 'accountStatus') {\n\t\t\t\tsetShowModal(true);\n\t\t\t\tappContext.statusModal = true;\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Want to one-click-trade? Not so fast!\n\t\t\t// Is this a Japan account with some sort of constraint?\n\t\t\tif (isJapanSubscriptionAccount && isLiveMode) {\n\t\t\t\tconst nonVolumeConstraint = handleSubscriptionsConstraints(marketItem);\n\t\t\t\tif (nonVolumeConstraint) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst orderSizeConstraint = handleOrderConstraint(parseInt(selectedQuantity!));\n\t\t\t\tif (orderSizeConstraint) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tonChartClick && onChartClick();\n\t\t\tdashboardContext.modifyTicket = false;\n\t\t\tdashboardContext.showConfirmTicket = false;\n\n\t\t\t// Open up Order modal\n\t\t\tdashboardContext.orderModalOpenedFrom = 'watchlist';\n\t\t\t// dashboardContext.orderType = orderType;\n\n\t\t\tdashboardContext.selectedInstrument = marketItem;\n\t\t\tdashboardContext.isEdit = false;\n\n\t\t\tif (tradingAccount.length > 0) {\n\t\t\t\tif (storeMarketItem && storeMarketItem.code !== marketItem.code) {\n\t\t\t\t\tresetOrderStore();\n\t\t\t\t}\n\n\t\t\t\tsetTradingPosition(undefined);\n\t\t\t\tsetMarketItem(undefined);\n\t\t\t\tsetTradeProps({ side: side });\n\t\t\t\tif (ticketLayout === TicketLayout.Dock || !ticketLayout) {\n\t\t\t\t\tsetTicketLayout(TicketLayout.Dock);\n\t\t\t\t\tdashboardContext.showOrderTicket = true;\n\t\t\t\t\tdashboardContext.showNewsFeed = false;\n\t\t\t\t\tdashboardContext.showOrderInformation = false;\n\t\t\t\t\tdashboardContext.showCloseTicket = false;\n\t\t\t\t\tdashboardContext.showCancelTicket = false;\n\t\t\t\t} else {\n\t\t\t\t\tdashboardContext.newOrderModalToggle = {\n\t\t\t\t\t\torderTicket: true,\n\t\t\t\t\t\tconfirmOrder: false,\n\t\t\t\t\t};\n\t\t\t\t\tdashboardContext.showOrderTicket = false;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/* Clicking on Trade side Buy or Sell should set Initial values to Stoploss and take profit if the checkbox is enabled*/\n\t\tconst handleTradeSideClick = (value: TradingPositionSide) => {\n\t\t\tif (!isBidAskDisabled) {\n\t\t\t\t/* setTradingPositionSide(value); */\n\t\t\t\tsetTradeProps({ side: value });\n\n\t\t\t\tconst initialStopLossTakeProfitObj: InitialStopLossTakeProfitValues = {\n\t\t\t\t\tinstrument:\n\t\t\t\t\t\tvalue === TradingPositionSide.Buy ? (instrument ? instrument.a : 0) : instrument ? instrument.b : 0,\n\t\t\t\t\tinitialValue: INITIAL_VALUE,\n\t\t\t\t\tside: tradingPositionSide,\n\t\t\t\t\tdecimalPrecision: selectedInstrument?.decPrec ?? 0,\n\t\t\t\t\ttypeOfOrder: typeOfOrder!,\n\t\t\t\t\tlimitPrice: typeOfOrder === 'stop' || typeOfOrder === 'limit' ? limitPrice! : '0',\n\t\t\t\t};\n\n\t\t\t\tif (value === TradingPositionSide.Sell && stopLoss) {\n\t\t\t\t\tdispatcher({\n\t\t\t\t\t\ttype: 'setStopLossValues',\n\t\t\t\t\t\tpayload:\n\t\t\t\t\t\t\ttradeMeasure === 'stopLoss_Price'\n\t\t\t\t\t\t\t\t? calculateInitialStopLossValue(initialStopLossTakeProfitObj)\n\t\t\t\t\t\t\t\t: INITIAL_TAKEPROFIT_VALUE,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (value === TradingPositionSide.Buy && stopLoss) {\n\t\t\t\t\tdispatcher({\n\t\t\t\t\t\ttype: 'setStopLossValues',\n\t\t\t\t\t\tpayload:\n\t\t\t\t\t\t\ttradeMeasure === 'stopLoss_Price'\n\t\t\t\t\t\t\t\t? calculateInitialStopLossValue(initialStopLossTakeProfitObj)\n\t\t\t\t\t\t\t\t: INITIAL_TAKEPROFIT_VALUE,\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (value === TradingPositionSide.Sell && takeProfit) {\n\t\t\t\t\tdispatcher({\n\t\t\t\t\t\ttype: 'setProfitValues',\n\t\t\t\t\t\tpayload:\n\t\t\t\t\t\t\tprofitTradeMeasure === 'profit_Price'\n\t\t\t\t\t\t\t\t? calculateInitialTakeProfitValue(initialStopLossTakeProfitObj)\n\t\t\t\t\t\t\t\t: INITIAL_TAKEPROFIT_VALUE,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (value === TradingPositionSide.Buy && takeProfit) {\n\t\t\t\t\tdispatcher({\n\t\t\t\t\t\ttype: 'setProfitValues',\n\t\t\t\t\t\tpayload:\n\t\t\t\t\t\t\tprofitTradeMeasure === 'profit_Price'\n\t\t\t\t\t\t\t\t? calculateInitialTakeProfitValue(initialStopLossTakeProfitObj)\n\t\t\t\t\t\t\t\t: INITIAL_TAKEPROFIT_VALUE,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tconst spreadButton = (side: TradingPositionSide) => {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t{order && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
{side === TradingPositionSide.Buy ? askNumber : bidNumber}
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t
{side === TradingPositionSide.Buy ? askNumber : bidNumber}
\n\t\t\t\t\n\t\t\t);\n\t\t};\n\n\t\tconst buttonToolTip = (side: TradingPositionSide) => {\n\t\t\tconst isOpenMarket = appContext.isJapanAccount ? undefined : isWorkingTime(marketItem, new Date());\n\n\t\t\treturn (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{tt(`${side}_ACTION`)}{' '}\n\t\t\t\t\t\t{marketItem?.exchangeTicker && marketItem?.exchangeTicker !== ''\n\t\t\t\t\t\t\t? marketItem?.exchangeTicker\n\t\t\t\t\t\t\t: marketItem?.displayName}\n\t\t\t\t\t\t{/* {isOpenMarket !== undefined && !isOpenMarket && (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t•\n\t\t\t\t\t\t\t\t
{t('en:202')}
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)} */}\n\t\t\t\t\t
\n\n\t\t\t\t\t{isOpenMarket &&
{timeUpdate}
}\n\t\t\t\t
\n\t\t\t);\n\t\t};\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t{buttonToolTip(TradingPositionSide.Sell)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t!order ? handleButtonClick(TradingPositionSide.Sell) : handleTradeSideClick(TradingPositionSide.Sell);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{showButtonText &&
{tt('SELL_ACTION')}
}\n\t\t\t\t\t\t\t\t{spreadButton(TradingPositionSide.Sell)}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{/* {!order && !gridChartMenu && showPriceStats && (\n\t\t\t\t\t\t\t\t maxHighLowStringsLength\n\t\t\t\t\t\t\t\t\t\t\t? styles.tickerLowLong\n\t\t\t\t\t\t\t\t\t\t\t: styles.tickerLow\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{tt('LOW')}{' '}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{isNaN(+lowNumber?.replaceAll(',', '')) ? t('wtr:NA') : lowNumber}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)} */}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t{getFormattedSpreadValue(marketItem, displayPriceA, displayPriceB, languageSettings)}\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t{buttonToolTip(TradingPositionSide.Buy)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t!order ? handleButtonClick(TradingPositionSide.Buy) : handleTradeSideClick(TradingPositionSide.Buy)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{showButtonText &&
{tt('BUY_ACTION')}
}\n\t\t\t\t\t\t\t\t{spreadButton(TradingPositionSide.Buy)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/* {!order && !gridChartMenu && showPriceStats && (\n\t\t\t\t\t\t\t\t maxHighLowStringsLength\n\t\t\t\t\t\t\t\t\t\t\t? styles.tickerHighLong\n\t\t\t\t\t\t\t\t\t\t\t: styles.tickerHigh\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{tt('HIGH')}{' '}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{isNaN(+highNumber?.replaceAll(',', '')) ? t('wtr:NA') : highNumber}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)} */}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t},\n\t(prevProps, nextProps) => {\n\t\treturn (\n\t\t\tprevProps === nextProps ||\n\t\t\t(prevProps &&\n\t\t\t\tnextProps &&\n\t\t\t\t(\n\t\t\t\t\t[\n\t\t\t\t\t\t'marketItem',\n\t\t\t\t\t\t'order',\n\t\t\t\t\t\t'typeOfOrder',\n\t\t\t\t\t\t'stopLoss',\n\t\t\t\t\t\t'takeProfit',\n\t\t\t\t\t\t'tradeMeasure',\n\t\t\t\t\t\t'profitTradeMeasure',\n\t\t\t\t\t\t'dispatcher',\n\t\t\t\t\t\t'limitPrice',\n\t\t\t\t\t\t'isBidAskDisabled',\n\t\t\t\t\t\t'gridChartMenu',\n\t\t\t\t\t\t'instrument',\n\t\t\t\t\t\t'ticketLayout',\n\t\t\t\t\t] as Array\n\t\t\t\t).every((key) => prevProps[key] === nextProps[key]))\n\t\t);\n\t}\n);\n\nexport default BidAskSpread;\n","import {\n\tcheckIsGlobalOrderSizeExceeded,\n\tcheckIsTierOrderSizeExceeded,\n\tcheckIsVolumeExceeded,\n\tSubscriptionModalReason,\n} from '../functions/subscriptionUtils';\n\nimport useSubscriptionInfo from './useSubscriptionInfo';\n\nimport useSubscriptionModal from './useSubscriptionModal';\n\nconst useHandleOrderConstraint = () => {\n\tconst [subscriptionInfo] = useSubscriptionInfo();\n\tconst { setModalStateProps } = useSubscriptionModal();\n\n\tconst handleOrderLimit = (orderSize: number) => {\n\t\tif (\n\t\t\tsubscriptionInfo.maxVolume !== null &&\n\t\t\tsubscriptionInfo.remainingVolume !== null &&\n\t\t\tcheckIsVolumeExceeded(subscriptionInfo)\n\t\t) {\n\t\t\tsetModalStateProps({\n\t\t\t\treason: SubscriptionModalReason.Volume,\n\t\t\t\tisOpen: true,\n\t\t\t});\n\t\t\treturn SubscriptionModalReason.Volume;\n\t\t}\n\t\tif (checkIsGlobalOrderSizeExceeded(orderSize)) {\n\t\t\tsetModalStateProps({\n\t\t\t\treason: SubscriptionModalReason.OrderSizeGlobal,\n\t\t\t\tisOpen: true,\n\t\t\t});\n\t\t\treturn SubscriptionModalReason.OrderSizeGlobal;\n\t\t}\n\t\tif (checkIsTierOrderSizeExceeded(orderSize, subscriptionInfo)) {\n\t\t\tsetModalStateProps({\n\t\t\t\treason: SubscriptionModalReason.OrderSizeUpgradable,\n\t\t\t\tisOpen: true,\n\t\t\t});\n\t\t\treturn SubscriptionModalReason.OrderSizeUpgradable;\n\t\t}\n\n\t\treturn null;\n\t};\n\n\treturn handleOrderLimit;\n};\n\nexport default useHandleOrderConstraint;\n","import { useEffect, useMemo, useState } from 'react';\n\nconst useIsInViewport = (ref: any) => {\n\tconst [isIntersecting, setIsIntersecting] = useState(false);\n\n\tconst observer = useMemo(() => new IntersectionObserver(([entry]) => setIsIntersecting(entry.isIntersecting)), []);\n\n\tuseEffect(() => {\n\t\tif (ref.current) {\n\t\t\tobserver.observe(ref.current);\n\t\t}\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [ref, observer]);\n\n\treturn isIntersecting;\n};\n\nexport default useIsInViewport;\n","import React, { useContext } from 'react';\n\nimport cn from 'classnames';\n\nimport { tierIcons } from '../../../setup/subscriptionsConfig';\n\nimport { instrumentGroupProps } from '../../../utils/functions/constants';\n\nimport styles from './GroupBadge.module.scss';\nimport StringUtils from '../../../utils/functions/StringUtils';\nimport tradingAccountStore from '../../../store/tradingAccountStore';\n\ninterface TierBadgeProps {\n\tgroupName: any;\n\thideIconForNonJapan?: boolean;\n}\n\nconst GroupBadge = ({ groupName, hideIconForNonJapan }: TierBadgeProps) => {\n\tconst isJapanSubscriptionAccount = tradingAccountStore.use.isJapanSubscription();\n\n\tif (hideIconForNonJapan) return null;\n\tif (!groupName) return null;\n\tif (StringUtils.isString(groupName) && groupName?.endsWith('SB')) return null;\n\n\tif (isJapanSubscriptionAccount) {\n\t\tconst tier: string = `tier${groupName}`;\n\t\tif (groupName !== 0)\n\t\t\treturn  ;\n\n\t\treturn \"Tier\";\n\t}\n\n\treturn {groupName.toString()};\n};\n\nexport default GroupBadge;\n","import React, { useContext, CSSProperties } from 'react';\nimport cn from 'classnames';\n\nimport { Long } from 'long';\n\nimport { default as DashboardContext } from '../../../../contexts/DashboardContext';\nimport AppContext from '../../../../contexts/AppContext';\nimport { JAPAN_DATETIME_FORMAT } from '../../../../setup/config';\nimport { getFormattedDateHelper } from '../../../../utils/functions/subscriptionUtils';\n\nimport styles from './NewsWidgetStyles.module.scss';\n\nconst getFormattedNewsArticleTime = (datetime: number, isJapanAccount = false) => {\n\tconst formatString = isJapanAccount ? JAPAN_DATETIME_FORMAT : 'ddd, MMMM Do YYYY, H:mm';\n\treturn getFormattedDateHelper(datetime, formatString);\n};\n\ntype TNewsArticleProps = {\n\theadline?: string;\n\ttime: Long;\n\tid: number;\n\tcustomWidth?: CSSProperties;\n\tclassName?: string;\n\tonClick?: () => void;\n};\n\nconst NewsArticle = ({ headline, time, id, className, customWidth, onClick }: TNewsArticleProps) => {\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst appContext = useContext(AppContext);\n\n\tconst handleClickedArticle = (id: number) => {\n\t\tif (onClick) {\n\t\t\tonClick();\n\t\t\treturn;\n\t\t}\n\t\tdashboardContext.selectedNewsContent = id;\n\t};\n\n\t// One hour added as it was removed before in order to format it. Hour 24 was giving invalid date\n\treturn (\n\t\t handleClickedArticle(id)}\n\t\t>\n\t\t\t
\n\t\t\t\t
{headline}
\n\t\t\t\t
\n\t\t\t\t\t{getFormattedNewsArticleTime(time as unknown as number, appContext.isJapanAccount)}\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\nexport default NewsArticle;\n","import React, { useState, useContext } from 'react';\n\nimport WtrModal from '../../../shared/WtrModal/WtrModal';\n\nimport AppContext from '../../../contexts/AppContext';\n\nimport styles from './JapanNewsDisclaimer.module.scss';\n\nconst JapanNewsDisclaimer = () => {\n\tconst [openDisclaimerMessage, setOpenDisclaimerMessage] = useState(false);\n\tconst appContext = useContext(AppContext);\n\n\tif (!appContext.isJapanAccount) return null;\n\treturn (\n\t\t<>\n\t\t\t
setOpenDisclaimerMessage(true)} className={styles.disclaimerMessage}>\n\t\t\t\tニュース配信に関する免責事項は+こちら+をご確認ください。\n\t\t\t
\n\n\t\t\t setOpenDisclaimerMessage(false)}>\n\t\t\t\t{'MarketWinニュース'}\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\tTF Global Markets\n\t\t\t\t\t\t\tJapan株式会社は、株式会社ジャパンエコノミックパルスから配信されたMarketWin24(本サービス)についてThinkTrader取引システムを通じて提供しておりますが、当社はその情報の正確性、配信の確実性などを保証するものではなく、本サービスに基づいて被ったいかなる損失・損害についても、一切の責任を負いません。\n\t\t\t\t\t\t\t・また、本サービスは、情報提供を目的としたものであり、売買の勧誘を目的としたものではありません。投資に関する最終決定はお客さまご自身の判断でなさいますようお願い致します。・なお、本サービスに記載されている情報は、株式会社ジャパンエコノミックパルスが情報提供を目的として作成したものであり、売買の勧誘を目的としたものではなく、本サービスに基づいて被ったいかなる損失・損害についても、株式会社ジャパンエコノミックパルスは一切の責任を負いません。また、本サービスの著作権は全て株式会社ジャパンエコノミックパルスに帰属します。無断の複製、転載、転送、販売、出版、配布等は法的に罰せられますのでご注意ください。\n\t\t\t\t\t\t

\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default JapanNewsDisclaimer;\n","import { useContext } from 'react';\n\nimport DashboardContext from '../../contexts/DashboardContext';\nimport RfpGatewayContext from '../../contexts/RfpGatewayContext';\nimport { MarketItem } from '../../gateways/RfpGateway/rfp.types';\nimport tradingAccountStore from '../../store/tradingAccountStore';\nimport { TWatchlistInstrument } from '../../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\n\nimport useSaveWatchlistToPreferences from './watchlist/useSaveWatchlistToPreferences';\n\nexport const useUpdateSBWatchlistInstruments = () => {\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst rfpGatewayContext = useContext(RfpGatewayContext);\n\tconst saveWatchlistToPreferences = useSaveWatchlistToPreferences();\n\tconst isSpreadBettingAccount = tradingAccountStore.use.isSpreadBetting();\n\n\treturn (marketItems: MarketItem[]) => {\n\t\tif (\n\t\t\tisSpreadBettingAccount &&\n\t\t\trfpGatewayContext &&\n\t\t\tmarketItems.length > 0 &&\n\t\t\tdashboardContext.watchlist.length > 0\n\t\t) {\n\t\t\tlet shouldUpdate = false;\n\t\t\tconst watchlists = dashboardContext.watchlist.map((watchlist) => {\n\t\t\t\tconst instruments = watchlist.instrument.map((instrument) => {\n\t\t\t\t\tif (instrument._code.endsWith('_SB')) {\n\t\t\t\t\t\treturn instrument;\n\t\t\t\t\t}\n\n\t\t\t\t\tshouldUpdate = true;\n\t\t\t\t\tconst code = `${instrument._code}_SB`;\n\t\t\t\t\tconst marketItem = rfpGatewayContext.getMarketItem(code);\n\t\t\t\t\treturn marketItem ? { ...instrument, _code: marketItem.code } : null;\n\t\t\t\t});\n\t\t\t\tconst wlInstruments = instruments.filter((instrument) => instrument !== null);\n\t\t\t\tif (wlInstruments) {\n\t\t\t\t\twatchlist.instrument = wlInstruments as TWatchlistInstrument[];\n\t\t\t\t}\n\t\t\t\treturn watchlist;\n\t\t\t});\n\n\t\t\tif (shouldUpdate) {\n\t\t\t\tconsole.log('Updating watchlist' + watchlists);\n\t\t\t\tdashboardContext.watchlist = watchlists;\n\t\t\t\tsaveWatchlistToPreferences(dashboardContext.watchlist, isSpreadBettingAccount);\n\t\t\t}\n\t\t}\n\t};\n};\n","import React, { useContext, useMemo } from 'react';\n\nimport styles from './SearchResult.module.scss';\nimport { MarketItem } from '../../../../../gateways/RfpGateway/rfp.types';\nimport { useTranslation } from 'react-i18next';\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport AppContext from '../../../../../contexts/AppContext';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport useGetTranslatedWLName from '../../../../../utils/hooks/useGetTranslatedWLName';\nimport InstrumentIcons from '../../../../../shared/InstrumentIcons/InstrumentIcons';\nimport InstrumentIcon from '../../../../components/GroupBadge/InstrumentIcon';\n\ntype TSearchResultProps = {\n\tresult: MarketItem;\n\texistsInWatchlist: boolean;\n\tonUpdateWatchlist: any;\n\tsearchTerm: string;\n\twatchlists: string[];\n};\n\nconst SearchResult = React.memo(\n\t({ result, existsInWatchlist, onUpdateWatchlist, searchTerm, watchlists }: TSearchResultProps) => {\n\t\tconst { t } = useTranslation();\n\t\tconst getTranslatedWLName = useGetTranslatedWLName();\n\n\t\twatchlists.forEach((watchlistName, index, thisArray) => {\n\t\t\tthisArray[index] = getTranslatedWLName(watchlistName);\n\t\t});\n\n\t\t// //Translate Popular Markets\n\t\t// useEffect(() => {\n\t\t// \twatchlists.forEach((watchlistName, index, thisArray) => {\n\t\t// \t\tthisArray[index] = getTranslatedWLName(watchlistName);\n\t\t// \t});\n\t\t// }, [watchlists]);\n\n\t\tconst resultContainer = useMemo(() => {\n\t\t\tconst renderMatchingName = () => {\n\t\t\t\tconst upperName = result.fullName.toUpperCase();\n\t\t\t\tconst searchString = searchTerm.toUpperCase();\n\t\t\t\tlet match = {result.fullName};\n\n\t\t\t\tif (upperName.includes(searchString)) {\n\t\t\t\t\tconst startIndex = upperName.indexOf(searchString);\n\t\t\t\t\tconst endIndex = startIndex + searchString.length;\n\t\t\t\t\tconst highlighted = (\n\t\t\t\t\t\t{result.fullName.substring(startIndex, endIndex)}\n\t\t\t\t\t);\n\t\t\t\t\tmatch = (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{result.fullName.substring(0, startIndex)}\n\t\t\t\t\t\t\t{highlighted}\n\t\t\t\t\t\t\t{result.fullName.substring(endIndex, result.fullName.length)}\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t};\n\n\t\t\tconst renderMatchingCode = () => {\n\t\t\t\tconst code = result.exchangeTicker ? result.exchangeTicker : result.code;\n\t\t\t\tconst searchString = searchTerm.toUpperCase();\n\t\t\t\tlet match = {code};\n\t\t\t\tif (code.includes(searchString)) {\n\t\t\t\t\tconst unhighlighted = code.split(searchString);\n\t\t\t\t\tconst highlighted = {searchString};\n\t\t\t\t\tmatch = (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{unhighlighted[0]}\n\t\t\t\t\t\t\t{highlighted}\n\t\t\t\t\t\t\t{unhighlighted[1]}\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn match;\n\t\t\t};\n\n\t\t\treturn (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{renderMatchingCode()}\n\t\t\t\t\t\t{renderMatchingName()}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t);\n\t\t}, []);\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{result.fullName.length >= 45 ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{result.fullName}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{resultContainer}\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\tresultContainer\n\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t{existsInWatchlist ? (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{t('wtr:EXISTS_IN')} {'\"' + watchlists.join(' \", \" ') + '\"'}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t);\n\t},\n\t(prevProps, nextProps) => {\n\t\tconst keys: Array = ['result', 'existsInWatchlist', 'searchTerm'];\n\t\treturn keys.every((key) => prevProps[key] == nextProps[key]);\n\t}\n);\n\nexport default SearchResult;\n","import React from 'react';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { useTranslation } from 'react-i18next';\n\nimport styles from './EmptySearch.module.scss';\n\ntype TEmptySearchProps = {\n\tinvalidSearchTerm: string;\n};\n\nconst EmptySearch = React.memo(\n\t({ invalidSearchTerm }: TEmptySearchProps) => {\n\t\tconst { t } = useTranslation();\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{t('wtr:NO_MATCHES')} {`'${invalidSearchTerm}'`}\n\t\t\t\t
\n\t\t\t\t{t('wtr:MODIFY_SEARCH')}\n\t\t\t
\n\t\t);\n\t},\n\t(prevProps, nextProps) => {\n\t\tconst keys: Array = ['invalidSearchTerm'];\n\t\treturn keys.every((key) => prevProps[key] == nextProps[key]);\n\t}\n);\n\nexport default EmptySearch;\n","import { MarketItem } from '../../gateways/RfpGateway/rfp.types';\n\nexport function getSearchResults(marketItems: MarketItem[], value: string) {\n\treturn marketItems.filter((marketItem: MarketItem) => {\n\t\tconst isTicker =\n\t\t\tmarketItem.exchangeTicker && marketItem.exchangeTicker.toLowerCase().indexOf(value.toLowerCase()) > -1;\n\t\tconst isCode = marketItem.code.toLowerCase().indexOf(value.toLowerCase()) > -1;\n\t\tconst isName = value.length > 1 && marketItem.fullName.toLowerCase().indexOf(value.toLowerCase()) > -1;\n\t\treturn isCode || isName || isTicker;\n\t});\n}\n","import React, { FC, useContext } from 'react';\nimport cn from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { useTranslation } from 'react-i18next';\n\nimport WtrPopup from '../../../../components/WtrPopup/WtrPopup';\nimport CreateWatchlistButton from '../CreateWatchlistButton';\nimport Button from '../../../../../shared/Button/Button';\nimport useGetTranslatedWLName from '../../../../../utils/hooks/useGetTranslatedWLName';\nimport DashboardContext from '../../../../../contexts/DashboardContext';\nimport tradingAccountStore from '../../../../../store/tradingAccountStore';\nimport useShortTranslation from '../../../../../utils/hooks/useShortTranslation';\nimport { instrumentExistsInDynamicWatchlists } from '../../../../../utils/functions/WatchlistUtils';\nimport watchListStore from '../../../../../store/WatchListStore/watchListStore';\nimport AppContext from '../../../../../contexts/AppContext';\nimport authStore from '../../../../../store/authStore';\nimport StringUtils from '../../../../../utils/functions/StringUtils';\nimport { TicketLayout } from '../../../../../utils/functions/enums';\nimport tradingViewStore from '../../../../../store/tradingViewStore';\n\nimport styles from './WatchlistsDropDown.module.scss';\n\ninterface WatchlistsDropDownProps {\n\tisOpen: boolean;\n\tcreateWatchList: boolean;\n\tmaxWatchlistsError: boolean;\n\tnameError: string;\n\ttypedValue: string;\n\tchangeValue: (e: any) => void;\n\tsetIsOpen: (a: boolean) => void;\n\thandleModify: (item: string) => void;\n\tverifyWatchlist: () => void;\n\tsetCurrentItemWatchList: (item: any) => void;\n\thandleCreateWatchlist: () => void;\n\thandleCreateWatchListClose: () => void;\n}\n\nconst WatchlistsDropDown: FC = ({\n\tisOpen,\n\tcreateWatchList,\n\tmaxWatchlistsError,\n\tnameError,\n\ttypedValue,\n\tchangeValue,\n\tsetIsOpen,\n\thandleModify,\n\tverifyWatchlist,\n\tsetCurrentItemWatchList,\n\thandleCreateWatchlist,\n\thandleCreateWatchListClose,\n}) => {\n\tconst appContext = useContext(AppContext);\n\tconst isChildWindow = appContext.isChildWindow || false;\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst getTranslatedWLName = useGetTranslatedWLName();\n\tconst { t } = useTranslation();\n\tconst tt = useShortTranslation('en:');\n\tconst isSpreadBettingAccount = tradingAccountStore.use.isSpreadBetting();\n\tconst getCurrentWatchList = watchListStore.use.getCurrentWatchList();\n\tconst currentWatchList = getCurrentWatchList(isChildWindow);\n\tconst getWatchlists = watchListStore.use.getWatchlists();\n\tconst tradingMode = authStore.use.tradingMode();\n\tconst allWatchlists = getWatchlists(tradingMode);\n\tconst theme = appContext.appTheme;\n\tconst ticketLayout = tradingViewStore.use.ticketLayout();\n\n\tconst inputStyleSelector = () => {\n\t\treturn !StringUtils.isNullOrEmpty(nameError)\n\t\t\t? styles.lightErrorInput\n\t\t\t: ticketLayout === TicketLayout.Dock\n\t\t\t? styles.costInput\n\t\t\t: styles.costInputModal;\n\t};\n\n\tconst closeWatchlistPopup = (e: any) => {\n\t\tif (\n\t\t\te.target.classList[0] !== undefined ||\n\t\t\te.target.classList.length === 0 ||\n\t\t\t(Array.isArray(e.target.classList) && !e.target.classList[0].includes('Watchlist'))\n\t\t) {\n\t\t\tsetIsOpen(false);\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{allWatchlists &&\n\t\t\t\t\t\t\t\t\tallWatchlists.map((item, index: number) => {\n\t\t\t\t\t\t\t\t\t\tconst tierName = getTranslatedWLName(item.name);\n\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetCurrentItemWatchList(item.name);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{tierName}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{!instrumentExistsInDynamicWatchlists(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\titem.name,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdashboardContext.defaultWatchLists,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisSpreadBettingAccount\n\t\t\t\t\t\t\t\t\t\t\t\t\t) && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t handleModify(item.name)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {tt('CREATE_WATCHLIST')}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{t('wtr:WATCHLIST_NAME')}
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{nameError.length !== 0 &&
{nameError}
}\n\t\t\t\t\t\t\t\t\t\t{
{typedValue.trim().length}/20
}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\ton={['click']}\n\t\t\t\tpinned\n\t\t\t\tposition=\"bottom center\"\n\t\t\t\ttrigger={\n\t\t\t\t\tcurrentWatchList && (\n\t\t\t\t\t\t
setIsOpen(true)}>\n\t\t\t\t\t\t\t{getTranslatedWLName(currentWatchList)}  \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t/>\n\t\t\n\t);\n};\n\nexport default WatchlistsDropDown;\n","import React, { useContext, useMemo } from 'react';\n\nimport AppContext from '../../../contexts/AppContext';\n\nimport tradingAccountStore from '../../../store/tradingAccountStore';\n\nimport { tierIcons } from '../../../setup/subscriptionsConfig';\n\nimport { IGridRecord } from '../../features/Markets/MarketsGrid';\nimport { MarketItem } from '../../../gateways/RfpGateway/rfp.types';\n\ninterface InstrumentIcon {\n\tmarketItem: IGridRecord | MarketItem;\n}\n\nconst images: {\n\t[key: string]: {\n\t\tdefault: string;\n\t\t[key: string]: string;\n\t};\n} = {\n\tunknown: {\n\t\tdefault: '/images/unknown.svg',\n\t},\n\tetf: {\n\t\tdefault: '/images/etf.svg',\n\t},\n\tcommodities: {\n\t\tdefault: '/images/commodities.svg',\n\t\tCORN: '/images/commodities/CORN.svg',\n\t\tSOYBEAN: '/images/commodities/SOYBEAN.svg',\n\t\tWHEAT: '/images/commodities/WHEAT.svg',\n\t},\n\tcrypto: {\n\t\tdefault: '/images/crypto.svg',\n\t\tADAUSD: '/images/crypto/ADAUSD.svg',\n\t\tALGOUSD: '/images/crypto/ALGOUSD.svg',\n\t\tATOMUSD: '/images/crypto/ATOMUSD.svg',\n\t\tAVAXUSD: '/images/crypto/AVAXUSD.svg',\n\t\tBATUSD: '/images/crypto/BATUSD.svg',\n\t\tBCHUSD: '/images/crypto/BCHUSD.svg',\n\t\tBNBUSD: '/images/crypto/BNBUSD.svg',\n\t\tBTCUSD: '/images/crypto/BTCUSD.svg',\n\t\tDASHUSD: '/images/crypto/DASHUSD.svg',\n\t\tDOGEUSD: '/images/crypto/DOGEUSD.svg',\n\t\tDOTUSD: '/images/crypto/DOTUSD.svg',\n\t\tEOSUSD: '/images/crypto/EOSUSD.svg',\n\t\tETHUSD: '/images/crypto/ETHUSD.svg',\n\t\tLINKUSD: '/images/crypto/LINKUSD.svg',\n\t\tLTCUSD: '/images/crypto/LTCUSD.svg',\n\t\tMANAUSD: '/images/crypto/MANAUSD.svg',\n\t\tMATICUSD: '/images/crypto/MATICUSD.svg',\n\t\tOMGUSD: '/images/crypto/OMGUSD.svg',\n\t\tSANDUSD: '/images/crypto/SANDUSD.svg',\n\t\tSHIBUSD: '/images/crypto/SHIBUSD.svg',\n\t\tSOLUSD: '/images/crypto/SOLUSD.svg',\n\t\tUNIUSD: '/images/crypto/UNIUSD.svg',\n\t\tUSDC: '/images/crypto/USDC.svg',\n\t\tUSDT: '/images/crypto/USDT.svg',\n\t\tXLMUSD: '/images/crypto/XLMUSD.svg',\n\t\tXMRUSD: '/images/crypto/XMRUSD.svg',\n\t\tXRPUSD: '/images/crypto/XRPUSD.svg',\n\t\tXTZUSD: '/images/crypto/XTZUSD.svg',\n\t\tZECUSD: '/images/crypto/ZECUSD.svg',\n\t},\n\tenergy: {\n\t\tdefault: '/images/energy.svg',\n\t\tBRENT: '/images/energy/BRENT.svg',\n\t\tNGAS: '/images/energy/NGAS.svg',\n\t\tWTI: '/images/energy/WTI.svg',\n\t},\n\tequities: {\n\t\tdefault: '/images/equities.svg',\n\t\tAAPL: '/images/equities/AAPL.svg',\n\t\tABNB: '/images/equities/ABNB.svg',\n\t\tAMZN: '/images/equities/AMZN.svg',\n\t\tBABA: '/images/equities/BABA.svg',\n\t\tGOOG: '/images/equities/GOOG.svg',\n\t\tGS: '/images/equities/GS.svg',\n\t\tMETA: '/images/equities/META.svg',\n\t\tMSFT: '/images/equities/MSFT.svg',\n\t\tTSLA: '/images/equities/TSLA.svg',\n\t\tUBER: '/images/equities/UBER.svg',\n\t\tV: '/images/equities/V.svg',\n\t},\n\tforex: {\n\t\tdefault: '/images/forex.svg',\n\t\tAUDCAD: '/images/forex/AUDCAD.svg',\n\t\tAUDCHF: '/images/forex/AUDCHF.svg',\n\t\tAUDJPY: '/images/forex/AUDJPY.svg',\n\t\tAUDNZD: '/images/forex/AUDNZD.svg',\n\t\tAUDUSD: '/images/forex/AUDUSD.svg',\n\t\tCADCHF: '/images/forex/CADCHF.svg',\n\t\tCADJPY: '/images/forex/CADJPY.svg',\n\t\tCHFJPY: '/images/forex/CHFJPY.svg',\n\t\tEURAUD: '/images/forex/EURAUD.svg',\n\t\tEURCAD: '/images/forex/EURCAD.svg',\n\t\tEURCHF: '/images/forex/EURCHF.svg',\n\t\tEURCZK: '/images/forex/EURCZK.svg',\n\t\tEURGBP: '/images/forex/EURGBP.svg',\n\t\tEURHUF: '/images/forex/EURHUF.svg',\n\t\tEURJPY: '/images/forex/EURJPY.svg',\n\t\tEURNOK: '/images/forex/EURNOK.svg',\n\t\tEURNZD: '/images/forex/EURNZD.svg',\n\t\tEURPLN: '/images/forex/EURPLN.svg',\n\t\tEURSEK: '/images/forex/EURSEK.svg',\n\t\tEURSGD: '/images/forex/EURSGD.svg',\n\t\tEURTRY: '/images/forex/EURTRY.svg',\n\t\tEURUSD: '/images/forex/EURUSD.svg',\n\t\tEURZAR: '/images/forex/EURZAR.svg',\n\t\tGBPAUD: '/images/forex/GBPAUD.svg',\n\t\tGBPCAD: '/images/forex/GBPCAD.svg',\n\t\tGBPCHF: '/images/forex/GBPCHF.svg',\n\t\tGBPHUF: '/images/forex/GBPHUF.svg',\n\t\tGBPJPY: '/images/forex/GBPJPY.svg',\n\t\tGBPNZD: '/images/forex/GBPNZD.svg',\n\t\tGBPUSD: '/images/forex/GBPUSD.svg',\n\t\tGBPZAR: '/images/forex/GBPZAR.svg',\n\t\tNZDCAD: '/images/forex/NZDCAD.svg',\n\t\tNZDCHF: '/images/forex/NZDCHF.svg',\n\t\tNZDJPY: '/images/forex/NZDJPY.svg',\n\t\tNZDUSD: '/images/forex/NZDUSD.svg',\n\t\tUSDBRL: '/images/forex/USDBRL.svg',\n\t\tUSDCAD: '/images/forex/USDCAD.svg',\n\t\tUSDCHF: '/images/forex/USDCHF.svg',\n\t\tUSDCNH: '/images/forex/USDCNH.svg',\n\t\tUSDHKD: '/images/forex/USDHKD.svg',\n\t\tUSDHUF: '/images/forex/USDHUF.svg',\n\t\tUSDJPY: '/images/forex/USDJPY.svg',\n\t\tUSDMXN: '/images/forex/USDMXN.svg',\n\t\tUSDNOK: '/images/forex/USDNOK.svg',\n\t\tUSDSEK: '/images/forex/USDSEK.svg',\n\t\tUSDSGD: '/images/forex/USDSGD.svg',\n\t\tUSDTRY: '/images/forex/USDTRY.svg',\n\t\tUSDZAR: '/images/forex/USDZAR.svg',\n\t},\n\tindices: {\n\t\tdefault: '/images/indices.svg',\n\t\tAUS200: '/images/indices/AUS200.svg',\n\t\tCHINA50: '/images/indices/CHINA50.svg',\n\t\tESH24: '/images/indices/ESH24.svg',\n\t\tESTX50: '/images/indices/ESTX50.svg',\n\t\tFDXH4: '/images/indices/FDXH4.svg',\n\t\tFFIH4: '/images/indices/FFIH4.svg',\n\t\tFRA40: '/images/indices/FRA40.svg',\n\t\tGER40: '/images/indices/GER40.svg',\n\t\tHK50: '/images/indices/HK50.svg',\n\t\tJPN225: '/images/indices/JPN225.svg',\n\t\tNAS100: '/images/indices/NAS100.svg',\n\t\tNQH24: '/images/indices/NQH24.svg',\n\t\tSPAIN35: '/images/indices/SPAIN35.svg',\n\t\tSPX500: '/images/indices/SPX500.svg',\n\t\tTAIEX: '/images/indices/TAIEX.svg',\n\t\tUK100: '/images/indices/UK100.svg',\n\t\tUS30: '/images/indices/US30.svg',\n\t\tUS2000: '/images/indices/US2000.svg',\n\t\tUSDINDEX: '/images/indices/USDINDEX.svg',\n\t\tVIX: '/images/indices/VIX.svg',\n\t\tYMH24: '/images/indices/YMH24.svg',\n\t},\n\tmetals: {\n\t\tdefault: '/images/metals.svg',\n\t\tCOOPER: '/images/metals/COOPER.svg',\n\t\tXAGUSD: '/images/metals/XAGUSD.svg',\n\t\tXAUEUR: '/images/metals/XAUEUR.svg',\n\t\tXAUUSD: '/images/metals/XAUUSD.svg',\n\t\tXPTUSD: '/images/metals/XPTUSD.svg',\n\t},\n};\n\nconst MarketInstrumentIcon = ({ marketItem }: InstrumentIcon) => {\n\tconst isJapanSubscriptionAccount = tradingAccountStore.use.isJapanSubscription();\n\n\tlet group = (isJapanSubscriptionAccount ? marketItem?.minTier : marketItem?.grp) || marketItem?.category;\n\tlet name = marketItem?.displayName || marketItem?.code;\n\tconst isSpreadBettingAcc = tradingAccountStore.use.isSpreadBetting();\n\n\tif (isSpreadBettingAcc) {\n\t\tif (name.endsWith('_SB')) {\n\t\t\tname = name.replace('_SB', '');\n\t\t}\n\t\tif (group && typeof group === 'string' && group.endsWith('SB')) {\n\t\t\tgroup = group.replace('SB', '');\n\t\t}\n\t}\n\n\treturn useMemo(() => {\n\t\tif (isJapanSubscriptionAccount) {\n\t\t\treturn \"badge\";\n\t\t}\n\n\t\tconst groupLowerCased = String(group).toLowerCase();\n\n\t\tif (images[groupLowerCased] && Object.keys(images[groupLowerCased]).includes(name)) {\n\t\t\treturn \"badge\";\n\t\t}\n\n\t\tif (!images[groupLowerCased]) {\n\t\t\treturn \"badge\";\n\t\t}\n\n\t\treturn \"badge\";\n\t}, [group, name, isJapanSubscriptionAccount]);\n};\n\nexport default MarketInstrumentIcon;\n","import React, { useContext } from 'react';\nimport cn from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { useTranslation } from 'react-i18next';\n\nimport Modal from '../../../../../../shared/Modal/Modal';\nimport Button from '../../../../../../shared/Button/Button';\n\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport AppContext from '../../../../../../contexts/AppContext';\nimport { TicketLayout } from '../../../../../../utils/functions/enums';\nimport tradingViewStore from '../../../../../../store/tradingViewStore';\nimport DashboardContext from '../../../../../../contexts/DashboardContext';\n\nimport styles from './DetachedModal.module.scss';\nimport orderStore from '../../../../../../store/OrderStore/orderStore';\ninterface DetachedModalProps {\n\ttitle: string | JSX.Element;\n\tbody: string | JSX.Element | undefined;\n\thideAction: () => void;\n\tsuccessTitle: string;\n\tsuccessAction: any;\n\tshow: boolean;\n\tdockAction?: any;\n\twithPadding?: boolean;\n\tbuttonDisabledClass?: string;\n\tisError?: boolean;\n}\n\nconst DetachedModal = ({\n\ttitle,\n\tbody,\n\tsuccessTitle,\n\tsuccessAction,\n\thideAction,\n\tshow,\n\tdockAction,\n\twithPadding = true,\n\tbuttonDisabledClass,\n\tisError = false,\n}: DetachedModalProps) => {\n\tconst { t } = useTranslation();\n\tconst appContext = useContext(AppContext);\n\tconst ticketLayout = tradingViewStore.use.ticketLayout();\n\tconst setTicketLayout = tradingViewStore.use.setTicketLayout();\n\tconst current = orderStore((state) => state.current);\n\tconst dashboardContext = useContext(DashboardContext);\n\n\tconst isArabic = appContext.isArabic;\n\n\tconst undockTicketLayout = () => {\n\t\tsetTicketLayout(TicketLayout.Undock);\n\t\tdashboardContext.showCloseTicket = false;\n\t\tdashboardContext.modalToggle = { closePosition: true, closeOrder: false };\n\t};\n\n\tconst dockTicketLayout = () => {\n\t\tsetTicketLayout(TicketLayout.Dock);\n\t\tdashboardContext.showCloseTicket = true;\n\t\tdashboardContext.modalToggle = { closePosition: false, closeOrder: false };\n\t};\n\n\tconst undock = () => {\n\t\tif (ticketLayout === TicketLayout.Undock) {\n\t\t\tdockTicketLayout();\n\t\t} else {\n\t\t\tundockTicketLayout();\n\t\t}\n\t};\n\n\tconst hideClosePosition = () => {\n\t\tif (ticketLayout === TicketLayout.Dock) {\n\t\t\tdashboardContext.showCloseTicket = false;\n\t\t} else {\n\t\t\tdashboardContext.modalToggle = { closePosition: false, closeOrder: false };\n\t\t}\n\t};\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{title}\n\t\t\t\t\t\n\t\t\t\t\t{dockAction && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{ticketLayout === TicketLayout.Undock ? t('en:ATTACH') : t('en:DETACH')}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t{ticketLayout === TicketLayout.Undock && (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t{body && {body}}\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\n\t\t\t setIsHover(true)}\n\t\t\t\tonMouseLeave={() => setIsHover(false)}\n\t\t\t\tclassName={styles.triggerIcon}\n\t\t\t>\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Horizontal;\n","import React, { useEffect, useRef } from 'react';\n\nimport cn from 'classnames';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport styles from './LiveChat.module.scss';\nimport { useTranslation } from 'react-i18next';\nimport WtrTooltip from '../WtrTooltip/WtrTooltip';\n\nconst Vertical = ({\n\tisOpen,\n\tonZDClick,\n\tonToggle,\n\tchannels,\n}: {\n\tisOpen: boolean;\n\tonZDClick: () => void;\n\tonToggle: () => void;\n\tchannels: [any];\n}) => {\n\tconst liveChatRef = useRef(null);\n\tconst { t } = useTranslation();\n\tconst mouseDown = (event: MouseEvent): void => {\n\t\tif (isOpen && liveChatRef.current && !liveChatRef.current.contains(event.target as any)) {\n\t\t\tonToggle();\n\t\t}\n\t};\n\tuseEffect(() => {\n\t\tdocument.addEventListener('mousedown', mouseDown);\n\t\treturn () => document.removeEventListener('mousedown', mouseDown);\n\t}, []);\n\n\tinterface tooltipTranslationsProps {\n\t\tline: string;\n\t\ttelegram: string;\n\t\ttwitter: string;\n\t}\n\tconst tooltipTranslations = {\n\t\tline: t('wtr:CONTACT_US_ON_LINE'),\n\t\ttelegram: t('wtr:CONTACT_US_ON_TELEGRAM'),\n\t\ttwitter: t('wtr:CONTACT_US_ON_X'),\n\t};\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{channels.map(({ icon, href }) => (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t))}\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default Vertical;\n","import React, { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport AppContext from '../../contexts/AppContext';\n\nimport i18n from '../../setup/i18n';\n\nimport Horizontal from './Horizontal';\nimport Vertical from './Vertical';\n\nimport styles from './LiveChat.module.scss';\n\nimport { getConfig } from './';\n\ninterface w extends Window {\n\tzEACLoaded?: boolean;\n\tzEWebpackACJsonp?: [];\n\tzEmbed?: () => void;\n}\n\nconst LiveChat = ({\n\tonToggle,\n\tmenuStyle = 'horizontal',\n}: {\n\tonToggle?: (state: boolean) => void;\n\tmenuStyle?: 'horizontal' | 'vertical';\n}) => {\n\tconst [isOpen, setIsOpen] = useState(false);\n\tconst zdOpen = useRef(false);\n\tconst container = useRef(null);\n\tconst { languageSettings } = useContext(AppContext);\n\tconst { t } = useTranslation();\n\n\tconst languageToUse = useMemo(() => languageSettings || i18n.language, [languageSettings, i18n.language]);\n\n\tconst handleZDCleanup = () => {\n\t\tif (window.zE) {\n\t\t\tdelete window.zE;\n\t\t}\n\t\tif ((window as unknown as w).zEACLoaded) {\n\t\t\tdelete (window as unknown as w).zEACLoaded;\n\t\t}\n\t\tif ((window as unknown as w).zEWebpackACJsonp) {\n\t\t\tdelete (window as unknown as w).zEWebpackACJsonp;\n\t\t}\n\t\tif ((window as unknown as w).zEmbed) {\n\t\t\tdelete (window as unknown as w).zEmbed;\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (container.current && languageToUse) {\n\t\t\tconst config = getConfig(languageToUse);\n\t\t\twindow.zE && window.zE('messenger', 'close');\n\n\t\t\tconst oldScript = document.getElementById('ze-snippet');\n\t\t\toldScript && oldScript.remove();\n\n\t\t\thandleZDCleanup();\n\n\t\t\tconst script = document.createElement('script');\n\t\t\tscript.id = 'ze-snippet';\n\t\t\tscript.src = `https://static.zdassets.com/ekr/snippet.js?key=${config.key}`;\n\t\t\tscript.onload = () => {\n\t\t\t\twindow.zE('messenger', 'close');\n\t\t\t\twindow.zE('messenger:set', 'locale', config.locale);\n\n\t\t\t\t// Reload the widget\n\t\t\t\twindow.zE('messenger:on', 'open', () => {\n\t\t\t\t\tsetIsOpen(false);\n\t\t\t\t\tonToggle && onToggle(false);\n\t\t\t\t\tzdOpen.current = true;\n\t\t\t\t});\n\t\t\t\twindow.zE('messenger:on', 'close', () => {\n\t\t\t\t\tsetIsOpen(false);\n\t\t\t\t\tonToggle && onToggle(false);\n\t\t\t\t\tzdOpen.current = false;\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tcontainer.current.appendChild(script);\n\t\t}\n\t}, [languageToUse]);\n\n\tconst toggleState = () => {\n\t\tsetIsOpen(!isOpen);\n\t\tonToggle && onToggle(!isOpen);\n\t};\n\n\tconst handleZDClick = () => {\n\t\tsetIsOpen(false);\n\t\twindow.zE && window.zE('messenger', zdOpen.current ? 'close' : 'open');\n\t};\n\n\tconst horizontal = menuStyle === 'horizontal';\n\tconst channels = useMemo(() => getConfig(languageToUse).channels, [languageToUse]);\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t{horizontal ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default LiveChat;\n","import React from 'react';\n\nimport cn from 'classnames';\n\nimport styles from './InputError.module.scss';\n\ninterface InputErrorProps {\n\tcontent?: string;\n\terror: boolean;\n\tclassName?: string;\n\tchildren?: React.ReactNode;\n}\n\nconst InputError: React.FC = ({ content, error, className, children }) => {\n\tconst errorMessage = content || children;\n\treturn
{error && <>{errorMessage}}
;\n};\n\nexport default InputError;\n","import { useState, useEffect, useCallback } from 'react';\n\ninterface ResizableContainersWidthProps {\n\tresizableContainersWidthRestriction: (panelName: 'watchlist' | 'tradeTicket' | 'tradeBoard') => number | string;\n}\nconst useResizableContainersWidth = (hasModal: boolean): ResizableContainersWidthProps => {\n\tconst [windowWidth, setWindowWidth] = useState(window.innerWidth);\n\n\tuseEffect(() => {\n\t\tconst handleWindowResize = () => setWindowWidth(window.innerWidth);\n\n\t\twindow.addEventListener('resize', handleWindowResize);\n\t\treturn () => window.removeEventListener('resize', handleWindowResize);\n\t}, []);\n\n\tconst resizableContainersWidthRestriction = useCallback(\n\t\t(panelName: 'watchlist' | 'tradeTicket' | 'tradeBoard') => {\n\t\t\tif (panelName === 'watchlist') {\n\t\t\t\tif (windowWidth < 1240) return 330;\n\t\t\t\tif (windowWidth >= 1240) return hasModal ? '33%' : '45%';\n\t\t\t} else if (panelName === 'tradeTicket') {\n\t\t\t\tif (windowWidth < 1240) return 320;\n\t\t\t\tif (windowWidth >= 1240) return '33%';\n\t\t\t} else if (panelName === 'tradeBoard') {\n\t\t\t\treturn '100%';\n\t\t\t}\n\t\t\treturn 0;\n\t\t},\n\t\t[windowWidth, hasModal]\n\t);\n\n\treturn { resizableContainersWidthRestriction };\n};\n\nexport default useResizableContainersWidth;\n","import React, { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport cn from 'classnames';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport moment from 'moment';\n\nimport { useTranslation } from 'react-i18next';\n\nimport useShortTranslation from '../../../../../../../utils/hooks/useShortTranslation';\nimport InstrumentHeader from '../../../../../../components/InstrumentSummary/InstrumentHeader';\nimport {\n\tMarketItem,\n\tPriceQuote,\n\tTradingPosition,\n\tTradingPositionState,\n} from '../../../../../../../gateways/RfpGateway/rfp.types';\n\nimport { default as AppContext } from '../../../../../../../contexts/AppContext';\nimport { default as DashboardContext } from '../../../../../../../contexts/DashboardContext';\nimport { default as RfpGatewayContext } from '../../../../../../../contexts/RfpGatewayContext';\nimport InstrumentContext from '../../../../../../../contexts/InstrumentContext';\nimport { default as usePromiseFactory } from '../../../../../../../utils/hooks/usePromiseFactory';\nimport { default as useForceRerender } from '../../../../../../../utils/hooks/useForceRerender';\nimport { default as useObservable } from '../../../../../../../utils/hooks/useObservable';\nimport { formatNumberWithCommas } from '../../../../Watchlist/Instrument/formattedQuoteNumber';\nimport { MarginAccountType, QUANTITY_TYPE, TradingPositionSide } from '../../../../../../../utils/functions/enums';\nimport CloseButton from '../../../../../../components/CloseButton/CloseButton';\nimport Button from '../../../../../../../shared/Button';\nimport StringUtils from '../../../../../../../utils/functions/StringUtils';\nimport { TradersGymContext, TradersGymContextType } from '../../../../../../../pages/TradersGym/TradersGymContext';\nimport {\n\tcalcPercentChange,\n\tconvertAmountToLot,\n\tconvertToBaseCurrency,\n\tformatNumberAsMoney,\n\tgetAdditionalSubscriptionPairs,\n\tgetEffectiveSize,\n\tgetMarginCalculationType,\n\tgetMarginImpact,\n} from '../../../../../../../utils/functions/calculations';\nimport { getGeneralFormatDate } from '../../../../../../../utils/functions/subscriptionUtils';\n\nimport accountStatusStore, { StatusStore } from '../../../../../../../store/accountStatusStore';\n\nimport useSelectedTradingAccount from '../../../../../../../utils/hooks/useSelectedTradingAccount';\n\nimport tradingAccountStore from '../../../../../../../store/tradingAccountStore';\n\nimport ModalOrderInformation from './ModalOrderInformation';\nimport InfoElement from './InfoElement';\n\nimport MarginRequirementsContext from '../../../../../../../contexts/MarginRequirementsContext';\nimport orderStore from '../../../../../../../store/OrderStore/orderStore';\nimport styles from './OrderInformation.module.scss';\nimport tradingViewStore from '../../../../../../../store/tradingViewStore';\nimport useOrderTicketAccess from '../../../../../../../utils/hooks/useOrderTicketAccess';\n\ninterface OrderInformationProps {\n\tredirectFromDashboard: boolean;\n}\n\nconst OrderInformation = React.memo(\n\t({ redirectFromDashboard }: OrderInformationProps) => {\n\t\tconst dashboardContext = useContext(DashboardContext);\n\t\tconst rfpGatewayContext = useContext(RfpGatewayContext);\n\t\tconst appContext = useContext(AppContext);\n\t\tconst promiseFactory = usePromiseFactory();\n\t\tconst forceRerender = useForceRerender();\n\t\tconst languageSettings = appContext.languageSettings;\n\t\tconst setDockStylesTicket = tradingViewStore.use.setDockStylesTicket();\n\n\t\tconst subIdRef = useRef(undefined);\n\n\t\tconst gymContext = useContext(TradersGymContext) as TradersGymContextType;\n\t\tconst isChildWindow = appContext.isChildWindow;\n\t\tconst { tradersGymContext } = gymContext;\n\n\t\tconst quantityType = dashboardContext.quantityType;\n\t\tconst selectedPosition = dashboardContext.selectedPosition;\n\t\tconst detailedInformation = dashboardContext.detailedInformation;\n\t\tconst selectedMarketItem = dashboardContext.selectedInstrument;\n\t\tconst showOrderInformation = dashboardContext.showOrderInformation;\n\t\tconst activeState = dashboardContext.toggleAccordionMenu;\n\t\tconst marginRequirementsContext = useContext(MarginRequirementsContext);\n\n\t\tconst tradingPositions = tradersGymContext.isActive\n\t\t\t? tradersGymContext.gymTradingAccount?.activePositions ?? []\n\t\t\t: dashboardContext.getTradingPositions();\n\n\t\tconst selectedTradingAccount = tradersGymContext.isActive\n\t\t\t? tradersGymContext.gymTradingAccount\n\t\t\t: useSelectedTradingAccount();\n\t\tconst isSpreadBettingAccount = tradingAccountStore.use.isSpreadBetting();\n\t\tconst [additionalSubscriptionPairValue, setAdditionalSubscriptionPairValue] = useState(\n\t\t\tundefined\n\t\t);\n\n\t\t// const showTradeButton = tradingViewStore.use.showTradeButton();\n\t\t// const setShowTradeButton = tradingViewStore.use.setShowTradeButton();\n\n\t\tuseEffect(() => {\n\t\t\tsetDockStylesTicket(redirectFromDashboard);\n\t\t}, []);\n\n\t\tuseObservable(appContext.getPropertyChangeStream('appTheme'), async () => {\n\t\t\tawait promiseFactory.throttle('appContext.propertyChanged', 100);\n\t\t\tforceRerender();\n\t\t});\n\n\t\tuseObservable(\n\t\t\tdashboardContext.getPropertyChangeStream(\n\t\t\t\t'quantityType',\n\t\t\t\t'selectedPosition',\n\t\t\t\t'selectedInstrument',\n\t\t\t\t'marketItems',\n\t\t\t\t'marketItemsInfo',\n\t\t\t\t'detailedInformation',\n\t\t\t\t'showOrderInformation',\n\t\t\t\t'toggleAccordionMenu',\n\t\t\t\t'tradingAccount',\n\t\t\t\t'tradingPositions',\n\t\t\t\t'accountValues'\n\t\t\t),\n\t\t\tasync () => {\n\t\t\t\tawait promiseFactory.throttle('dashboardContext.propertyChanged', 100);\n\t\t\t\tforceRerender();\n\t\t\t}\n\t\t);\n\n\t\tconst [currentPriceQuote, setCurrentPriceQuote] = useState(undefined);\n\n\t\tconst tt = useShortTranslation('en:');\n\t\tconst { t } = useTranslation();\n\n\t\tconst [pipPL, setPipPL] = useState(0);\n\t\tconst [percentageChange, setPercentageChange] = useState('0%');\n\t\tconst [red, setRed] = useState(false);\n\t\tconst [redPip, setRedPip] = useState(false);\n\t\tconst [pendingAmountLot, setPendingAmountLot] = useState(0);\n\t\tconst [matchedAmountLot, setMatchedAmountLot] = useState(0);\n\t\tconst [matchedPendingOrder, setMatchedPendingOrder] = useState([]);\n\t\tconst [matchedOpenPosition, setMatchedOpenPosition] = useState([]);\n\t\tconst [active, setActive] = useState(activeState);\n\n\t\tconst [usedMargin, setUsedMargin] = useState(0);\n\t\tconst [comment, setComment] = useState();\n\t\tconst current = orderStore.use.current();\n\n\t\tconst tradeButtons = accountStatusStore((store: StatusStore) => (store.permissions || {}).tradeButtons);\n\t\tconst setShowModal = accountStatusStore((store: StatusStore) => store.setShowModal);\n\t\tconst orderTicketAccess = useOrderTicketAccess();\n\t\tconst instrumentContext = useContext(InstrumentContext);\n\n\t\t//If Accordion is updated via charts or other external component, open the appropriate menu.\n\t\tuseEffect(() => {\n\t\t\tif (activeState === '0') {\n\t\t\t\tsetActive('0');\n\t\t\t} else if (activeState === '1') {\n\t\t\t\tsetActive('1');\n\t\t\t} else if (activeState === '2') {\n\t\t\t\tsetActive('2');\n\t\t\t}\n\t\t}, [activeState]);\n\n\t\t//State to manage which accordion is open\n\t\tconst openMarketInfo = () => {\n\t\t\tif (active === '0') {\n\t\t\t\tsetActive(undefined);\n\t\t\t} else {\n\t\t\t\tsetActive('0');\n\t\t\t}\n\t\t};\n\n\t\tconst openPositionInfo = () => {\n\t\t\tif (active === '1') {\n\t\t\t\tsetActive(undefined);\n\t\t\t} else {\n\t\t\t\tsetActive('1');\n\t\t\t}\n\t\t};\n\n\t\tconst openOrderInfo = () => {\n\t\t\tif (active === '2') {\n\t\t\t\tsetActive(undefined);\n\t\t\t} else {\n\t\t\t\tsetActive('2');\n\t\t\t}\n\t\t};\n\n\t\tconst calculateUsedMargin = () => {\n\t\t\tlet instrumentMarginReq = 0;\n\t\t\tif (selectedTradingAccount) {\n\t\t\t\tconst openPositions = [];\n\t\t\t\tfor (const positionId in selectedTradingAccount.activePositions) {\n\t\t\t\t\tconst position = selectedTradingAccount.activePositions[positionId];\n\t\t\t\t\tif (position.state === TradingPositionState.open) {\n\t\t\t\t\t\topenPositions.push(position);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (matchedOpenPosition.length > 0) {\n\t\t\t\t\tconst pos = matchedOpenPosition[0];\n\t\t\t\t\tconst marketItem: MarketItem | undefined = pos.marketItem;\n\t\t\t\t\tconst marginIdentifier = getMarginCalculationType(selectedTradingAccount);\n\t\t\t\t\tconst size = getEffectiveSize(marginIdentifier, pos.code, +selectedTradingAccount.id, matchedOpenPosition);\n\t\t\t\t\tconst instrument = selectedTradingAccount.tradingInstruments?.instruments[pos.code];\n\n\t\t\t\t\tif (instrument && instrument.marginReq) {\n\t\t\t\t\t\tinstrumentMarginReq = instrument.marginReq;\n\t\t\t\t\t}\n\t\t\t\t\tif (marketItem && currentPriceQuote) {\n\t\t\t\t\t\tconst impact = getMarginImpact(instrumentMarginReq, size.val, currentPriceQuote.a);\n\t\t\t\t\t\tconst convertedToBase = convertToBaseCurrency(\n\t\t\t\t\t\t\tselectedTradingAccount,\n\t\t\t\t\t\t\timpact,\n\t\t\t\t\t\t\tcurrentPriceQuote.a,\n\t\t\t\t\t\t\tmarketItem.qCcy,\n\t\t\t\t\t\t\tmarketItem.feedId,\n\t\t\t\t\t\t\tmarketItem.code,\n\t\t\t\t\t\t\tpos.side === 'BUY',\n\t\t\t\t\t\t\trfpGatewayContext\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst hedged = convertedToBase !== null ? convertedToBase : impact;\n\t\t\t\t\t\tsetUsedMargin(selectedTradingAccount.isJapanAccount ? Math.ceil(hedged) : hedged);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t//Update the state of menus to reflect changes in grid or watchlist\n\t\tuseEffect(() => {\n\t\t\torderMenuState();\n\t\t\tpositionMenuState();\n\t\t}, [\n\t\t\tdashboardContext.selectedInstrument,\n\t\t\tdashboardContext.selectedPosition,\n\t\t\ttradingPositions,\n\t\t\tmatchedAmountLot,\n\t\t\tpendingAmountLot,\n\t\t\tdetailedInformation,\n\t\t]);\n\n\t\tuseEffect(() => {\n\t\t\tcalculateUsedMargin();\n\t\t\tupdateCommentValue();\n\t\t}, [matchedOpenPosition]);\n\n\t\tuseEffect(() => {\n\t\t\tconst matchedPosition = [...matchedOpenPosition, ...matchedPendingOrder];\n\t\t\tif (matchedPosition.length > 0) {\n\t\t\t\tlet percentChange = calcPercentChange(matchedPosition[0]);\n\t\t\t\tif (isNaN(percentChange)) {\n\t\t\t\t\tsetRed(false);\n\t\t\t\t\tsetPercentageChange(`N/A`);\n\t\t\t\t} else {\n\t\t\t\t\tpercentChange < 0 ? setRed(true) : setRed(false);\n\t\t\t\t\tsetPercentageChange(`${formatNumberWithCommas(percentChange, 2, languageSettings)}%`);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (matchedOpenPosition.length > 0) {\n\t\t\t\tif (matchedOpenPosition.length === 1 && selectedMarketItem) {\n\t\t\t\t\tconst position = matchedOpenPosition[0] as TradingPosition;\n\t\t\t\t\tif (position) {\n\t\t\t\t\t\tconst pipPlVal = position.pips ?? NaN;\n\t\t\t\t\t\tsetPipPL(formatNumberWithCommas(pipPlVal, 2, languageSettings));\n\t\t\t\t\t\tpipPlVal < 0 ? setRedPip(true) : setRedPip(false);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}, [currentPriceQuote, matchedOpenPosition, matchedPendingOrder, additionalSubscriptionPairValue]);\n\n\t\tconst addAdditionalSubPairsCodes = (subCodes: string[]): void => {\n\t\t\tif (selectedTradingAccount && selectedMarketItem) {\n\t\t\t\tlet pairs = getAdditionalSubscriptionPairs(selectedTradingAccount, selectedMarketItem, rfpGatewayContext);\n\t\t\t\tif (pairs) {\n\t\t\t\t\tpairs.forEach((pair) => {\n\t\t\t\t\t\tsubCodes.push(pair);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tuseEffect(() => {\n\t\t\tif (rfpGatewayContext && selectedMarketItem) {\n\t\t\t\t// unsubscribe previous quotes\n\t\t\t\tif (subIdRef.current) {\n\t\t\t\t\trfpGatewayContext.unsubscribePriceQuote(subIdRef.current);\n\t\t\t\t}\n\n\t\t\t\tconst feedId = selectedMarketItem.feedId;\n\t\t\t\tconst code = selectedMarketItem.code;\n\t\t\t\tlet subCodes: string[] = [code];\n\n\t\t\t\taddAdditionalSubPairsCodes(subCodes);\n\n\t\t\t\t// subscribe for price quote\n\t\t\t\tsubIdRef.current = rfpGatewayContext.subscribePriceQuote(feedId, subCodes, (priceQuote) => {\n\t\t\t\t\tif (!tradersGymContext.isActive) {\n\t\t\t\t\t\tif (priceQuote.c === selectedMarketItem.code) {\n\t\t\t\t\t\t\tsetCurrentPriceQuote(priceQuote);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetAdditionalSubscriptionPairValue(priceQuote);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// unsubscribe price quote on unmount\n\t\t\treturn () => {\n\t\t\t\tif (rfpGatewayContext && subIdRef.current) {\n\t\t\t\t\trfpGatewayContext.unsubscribePriceQuote(subIdRef.current);\n\t\t\t\t\tsubIdRef.current = undefined;\n\t\t\t\t}\n\t\t\t};\n\t\t}, [\n\t\t\ttradingPositions,\n\t\t\tselectedPosition,\n\t\t\tselectedMarketItem,\n\t\t\trfpGatewayContext,\n\t\t\tmatchedOpenPosition,\n\t\t\tmatchedPendingOrder,\n\t\t]);\n\n\t\tuseEffect(() => {\n\t\t\tif (tradersGymContext.priceQuote) {\n\t\t\t\tsetCurrentPriceQuote(tradersGymContext.priceQuote);\n\t\t\t}\n\t\t}, [tradersGymContext.priceQuote]);\n\n\t\tuseEffect(() => {\n\t\t\tif (matchedOpenPosition.length > 0) {\n\t\t\t\tconst pos = matchedOpenPosition[0];\n\t\t\t\tlet instrument = selectedTradingAccount?.tradingInstruments?.instruments[pos.code];\n\t\t\t\tconst instrumentRndLot = (instrument && instrument.rndLot) || 0;\n\t\t\t\tconst amountLot = quantityType === QUANTITY_TYPE.LOTS ? convertAmountToLot(pos.qty, instrumentRndLot) : pos.qty;\n\t\t\t\tsetMatchedAmountLot(amountLot);\n\t\t\t}\n\t\t\tif (matchedPendingOrder.length > 0) {\n\t\t\t\tconst pos = matchedPendingOrder[0];\n\t\t\t\tlet instrument = selectedTradingAccount?.tradingInstruments?.instruments[pos.code];\n\t\t\t\tconst instrumentRndLot = (instrument && instrument.rndLot) || 0;\n\t\t\t\tconst amountLot = quantityType === QUANTITY_TYPE.LOTS ? convertAmountToLot(pos.qty, instrumentRndLot) : pos.qty;\n\t\t\t\tsetPendingAmountLot(amountLot);\n\t\t\t}\n\t\t}, [quantityType, matchedPendingOrder, matchedOpenPosition]);\n\n\t\tuseEffect(() => {\n\t\t\t//Isolate the pending orders and open positions\n\t\t\tif (\n\t\t\t\t(selectedMarketItem && Object.keys(selectedMarketItem).length > 0) ||\n\t\t\t\t(Array.isArray(selectedPosition) && selectedPosition.length > 0)\n\t\t\t) {\n\t\t\t\tconst pendingOrders = tradingPositions.filter(\n\t\t\t\t\t(position: TradingPosition) =>\n\t\t\t\t\t\tposition.state === TradingPositionState.pending && position.aId === selectedTradingAccount?.id\n\t\t\t\t);\n\t\t\t\tconst openPositions = tradingPositions.filter(\n\t\t\t\t\t(position: TradingPosition) =>\n\t\t\t\t\t\tposition.state === TradingPositionState.open && position.aId === selectedTradingAccount?.id\n\t\t\t\t);\n\t\t\t\tconst code = selectedMarketItem\n\t\t\t\t\t? selectedMarketItem.code ?? selectedPosition[0].code\n\t\t\t\t\t: selectedPosition[0].code;\n\n\t\t\t\tlet openedInstrument = openPositions?.filter((position: TradingPosition) => code === position.code);\n\t\t\t\tlet pendingInstrument = pendingOrders?.filter((position: TradingPosition) => code === position.code);\n\n\t\t\t\tif (\n\t\t\t\t\topenedInstrument?.length > 1 &&\n\t\t\t\t\tselectedPosition?.length === 1 &&\n\t\t\t\t\tselectedPosition[0].state === TradingPositionState.open &&\n\t\t\t\t\tselectedMarketItem &&\n\t\t\t\t\tselectedPosition[0].code === selectedMarketItem.code\n\t\t\t\t) {\n\t\t\t\t\topenedInstrument = openedInstrument.filter(\n\t\t\t\t\t\t(instrument: TradingPosition) => instrument.posId === selectedPosition[0].posId\n\t\t\t\t\t);\n\t\t\t\t} else if (\n\t\t\t\t\tpendingInstrument?.length > 1 &&\n\t\t\t\t\tselectedPosition?.length === 1 &&\n\t\t\t\t\tselectedPosition[0].state === TradingPositionState.pending &&\n\t\t\t\t\tselectedMarketItem &&\n\t\t\t\t\tselectedPosition[0].code === selectedMarketItem.code\n\t\t\t\t) {\n\t\t\t\t\tpendingInstrument = pendingInstrument.filter(\n\t\t\t\t\t\t(instrument: TradingPosition) => instrument.posId === selectedPosition[0].posId\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (openedInstrument.length > 0) {\n\t\t\t\t\tsetMatchedOpenPosition(openedInstrument);\n\t\t\t\t} else {\n\t\t\t\t\tsetMatchedOpenPosition([]);\n\t\t\t\t}\n\t\t\t\tif (pendingInstrument.length > 0) {\n\t\t\t\t\tsetMatchedPendingOrder(pendingInstrument);\n\t\t\t\t} else {\n\t\t\t\t\tsetMatchedPendingOrder([]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsetMatchedOpenPosition([]);\n\t\t\t\tsetMatchedPendingOrder([]);\n\t\t\t}\n\t\t}, [selectedPosition, selectedMarketItem, tradingPositions, selectedTradingAccount]);\n\n\t\tconst formatValueAsMoney = (value: number) => {\n\t\t\treturn selectedTradingAccount\n\t\t\t\t? formatNumberAsMoney(\n\t\t\t\t\t\tselectedTradingAccount.baseCurrency,\n\t\t\t\t\t\t!isNaN(value) ? value : 0,\n\t\t\t\t\t\tlanguageSettings,\n\t\t\t\t\t\tselectedTradingAccount.isJapanAccount\n\t\t\t\t )\n\t\t\t\t: 0;\n\t\t};\n\n\t\tconst commission = useMemo(\n\t\t\t() => formatValueAsMoney(matchedOpenPosition[0]?.comm ?? 0),\n\t\t\t[selectedTradingAccount, matchedOpenPosition, rfpGatewayContext]\n\t\t);\n\n\t\tconst swap = useMemo(\n\t\t\t() => formatValueAsMoney(matchedOpenPosition[0]?.swap ?? 0),\n\t\t\t[selectedTradingAccount, matchedOpenPosition, rfpGatewayContext]\n\t\t);\n\n\t\tconst dividend = useMemo(\n\t\t\t() => formatValueAsMoney(matchedOpenPosition[0]?.dividend ?? 0),\n\t\t\t[selectedTradingAccount, matchedOpenPosition, rfpGatewayContext]\n\t\t);\n\n\t\tconst updateCommentValue = () => {\n\t\t\tlet commandValue = matchedOpenPosition[0]?.comment;\n\t\t\tif (StringUtils.isNullOrEmpty(commandValue)) {\n\t\t\t\tcommandValue = t('wtr:NA');\n\t\t\t}\n\t\t\tsetComment(commandValue);\n\t\t};\n\t\tconst handleStartTrading = (event: any) => {\n\t\t\tevent.stopPropagation();\n\t\t\tif(isChildWindow){\n\t\t\t\tdashboardContext.showOrderInformation = false;\n\t\t\t\tdashboardContext.showOrderTicket = true;\n\t\t\t} else {\n\t\t\t\tif (orderTicketAccess()) {\n\t\t\t\t\tdashboardContext.closeAllOtherTabs();\n\t\t\t\t\tinstrumentContext.focusInstrumentSearchInput();\n\t\t\t\t\tdashboardContext.startTradingNow = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t\t//Display state of position menu depending on if position(s) are selected\n\t\tconst positionMenuState = () => {\n\t\t\tif (matchedOpenPosition.length > 1) {\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{matchedOpenPosition.length}{' '}\n\t\t\t\t\t\t\t{t('wtr:OPEN_CODE_ORDERS', { code: matchedOpenPosition[0].marketItem.displayName })}\n\t\t\t\t\t\t\t{!marginRequirementsContext?.doesRulesApply && !marginRequirementsContext?.marginRequirementsToApply ? (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{t('wtr:MARGIN_USED')}\n\t\t\t\t\t\t\t\t\t{`${formatValueAsMoney(usedMargin)}`}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t} else if (matchedOpenPosition.length === 1) {\n\t\t\t\tconst pos: TradingPosition = matchedOpenPosition[0];\n\t\t\t\tconst decPrec = pos.marketItem?.decPrec ?? 2;\n\n\t\t\t\tconst onDate = appContext.isJapanAccount\n\t\t\t\t\t? getGeneralFormatDate(pos.oT, false, true)\n\t\t\t\t\t: moment(pos.oT).format('D/MMM/YYYY').toLocaleUpperCase();\n\n\t\t\t\tconst openPrice =\n\t\t\t\t\tappContext.isJapanAccount || !(pos.openAskPrice && pos.openBidPrice)\n\t\t\t\t\t\t? `${formatNumberWithCommas(pos.prc ?? 0, decPrec, languageSettings)}`\n\t\t\t\t\t\t: `${formatNumberWithCommas(pos.prc ?? 0, decPrec, languageSettings)} (${formatNumberWithCommas(\n\t\t\t\t\t\t\t\tpos.openBidPrice ?? 0,\n\t\t\t\t\t\t\t\tdecPrec,\n\t\t\t\t\t\t\t\tlanguageSettings\n\t\t\t\t\t\t )}/${formatNumberWithCommas(pos.openAskPrice ?? 0, decPrec, languageSettings)})`;\n\t\t\t\treturn (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{pos?.trailingStop ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t{!appContext.isJapanAccount && }\n\t\t\t\t\t\t\n\t\t\t\t\t\t{!appContext.isJapanAccount && }\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t);\n\t\t\t} else if (matchedOpenPosition.length === 0) {\n\t\t\t\treturn (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
{appContext.isJapanAccount ? t('wtr:JP_NO_OPEN_POSITIONS') : t('en:NO_OPEN_POSITIONS')}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\n\t\t//Display state of order menu depending on if position(s) are selected\n\t\tconst orderMenuState = () => {\n\t\t\tif (matchedPendingOrder.length === 0) {\n\t\t\t\treturn (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
{t('wtr:NO_PENDING_ORDERS')}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t);\n\t\t\t}\n\t\t\t//Check if there's any matched pending orders to be displayed\n\t\t\tif (matchedPendingOrder.length === 1) {\n\t\t\t\tconst pos = matchedPendingOrder[0];\n\t\t\t\tconst decPrec = pos.marketItem?.decPrec ?? 2;\n\t\t\t\tconst createdOnDate = appContext.isJapanAccount\n\t\t\t\t\t? getGeneralFormatDate(pos.oT, false, true)\n\t\t\t\t\t: moment(pos.oT).format('D/MMM/YYYY').toLocaleUpperCase();\n\t\t\t\tlet expiryDate;\n\t\t\t\tif (pos.eT === 0) {\n\t\t\t\t\texpiryDate = t('wtr:GTC');\n\t\t\t\t} else {\n\t\t\t\t\texpiryDate = appContext.isJapanAccount\n\t\t\t\t\t\t? getGeneralFormatDate(pos.eT, false, true)\n\t\t\t\t\t\t: moment(pos.eT).format('D/MMM/YYYY').toUpperCase();\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{/* */}\n\t\t\t\t\t
\n\t\t\t\t);\n\t\t\t} else if (matchedPendingOrder.length > 1) {\n\t\t\t\treturn (\n\t\t\t\t\t
\n\t\t\t\t\t\t{matchedPendingOrder.length}{' '}\n\t\t\t\t\t\t{t('wtr:PENDING_CODE_ORDERS', { code: matchedPendingOrder[0].marketItem.displayName })}\n\t\t\t\t\t
\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\n\t\t//Accordion Title formatting\n\t\tconst formatOrderDetailHeader = () => {\n\t\t\tif (matchedPendingOrder.length > 1) {\n\t\t\t\treturn `${t('en:TRADES_ORDER_DETAILS')} (${matchedPendingOrder.length})`;\n\t\t\t} else {\n\t\t\t\treturn `${t('en:TRADES_ORDER_DETAILS')}`;\n\t\t\t}\n\t\t};\n\n\t\tconst formatPositionDetailsHeader = () => {\n\t\t\tif (matchedOpenPosition.length > 1) {\n\t\t\t\treturn `${t('en:TRADES_POSITION_DETAILS')} (${matchedOpenPosition.length})`;\n\t\t\t} else {\n\t\t\t\treturn `${t('en:TRADES_POSITION_DETAILS')}`;\n\t\t\t}\n\t\t};\n\n\t\tif (!showOrderInformation) return null;\n\n\t\tif (tradeButtons === 'accountStatus') {\n\t\t\tdashboardContext.showOrderInformation = !dashboardContext.showOrderInformation;\n\t\t\tsetShowModal(true);\n\t\t\tappContext.statusModal = true;\n\n\t\t\treturn null;\n\t\t}\n\n\t\tconst handleClickTrade = () => {\n\t\t\tdashboardContext.showOrderInformation = false;\n\t\t\t// setShowTradeButton(!dashboardContext.showOrderInformation);\n\t\t}\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t('wtr:MARKET_INFO')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{formatPositionDetailsHeader()}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
{positionMenuState()}
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{formatOrderDetailHeader()}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
{orderMenuState()}
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t {\n\t\t\t\t\t\t// \tdashboardContext.showOrderInformation = false;\n\t\t\t\t\t\t// }}\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\thandleClickTrade()\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t},\n\t(prevProps, nextProps) => {\n\t\treturn true;\n\t}\n);\n\nexport default OrderInformation;\n","import moment from 'moment';\nimport { useContext } from 'react';\nimport { useQuery, useQueryClient } from '@tanstack/react-query';\n\nimport axios from 'axios';\n\nimport AppContext from '../../contexts/AppContext';\n\nimport { SignalsListType } from '../../pages/Signals/Signals';\nimport productMap from '../../pages/Signals/productsMap.json';\nimport { SignalsLangMap, signalsLangMap } from '../../views/features/Dashboard/Settings/settingsOptions';\nimport authStore, { AuthStore } from '../../store/authStore';\nimport tradingAccountStore from '../../store/tradingAccountStore';\nimport RfpGatewayContext from '../../contexts/RfpGatewayContext';\n\ninterface IMappedData {\n\tsymbol: string;\n\tdecPrec: number;\n\tdescription: string;\n\ticon: string;\n\tslug?: string;\n\tsbSymbol?: string;\n}\n\nconst useSignals = () => {\n\tconst queryKey = ['signalsList'];\n\tconst appContext = useContext(AppContext);\n\tconst rfpGateway = useContext(RfpGatewayContext);\n\tconst userProfile = authStore((store: AuthStore) => store.userProfile);\n\tconst isSpreadBettingAccount = tradingAccountStore.use.isSpreadBetting();\n\tconst fetchSignalsList = async () => {\n\t\t// Code that help expand productsMap\n\t\t// //@ts-ignore\n\t\t// const filteredSignals = {}\n\t\t//\n\t\t// const convertData = [add your objects]\n\t\t//\n\t\t// //@ts-ignore\n\t\t// instrumentContext.instruments.forEach(instrument => {\n\t\t// \tconvertData.forEach(item => {\n\t\t// \t\tif (instrument.displayName === item['ThinkMarkets']) {\n\t\t// \t\t\t//@ts-ignore\n\t\t// \t\t\tfilteredSignals[item['Signal Centre Product Name']] = {\n\t\t// \t\t\t\t\"symbol\": instrument.code,\n\t\t// \t\t\t\t\"assetId\": item[\"Acuity Asset ID\"],\n\t\t// \t\t\t\t\"decPrec\": instrument.decPrec,\n\t\t// \t\t\t\t\"description\": instrument.fullName,\n\t\t// \t\t\t\t\"icon\": instrument.grp\n\t\t// \t\t\t}\n\t\t// \t\t}\n\t\t// \t})\n\t\t// })\n\t\t//\n\t\t// //@ts-ignore\n\t\t// console.log(filteredSignals)\n\n\t\tconst productsMap = Object.values(productMap);\n\n\t\tconst filteredProductMap = productsMap.reduce((acc: any[], product: any) => {\n\t\t\tif (isSpreadBettingAccount && product?.sbSymbol) {\n\t\t\t\tacc.push(product.assetId);\n\t\t\t} else if (!isSpreadBettingAccount) {\n\t\t\t\tacc.push(product.assetId);\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\n\t\tconst { data: response } = await axios(\n\t\t\t`${process.env.REACT_APP_SIGNALS_URL}/signal-centre-reports/${userProfile.email}`,\n\t\t\t{\n\t\t\t\tmethod: 'POST',\n\t\t\t\tdata: {\n\t\t\t\t\tStartDate: moment().subtract(3, 'day').startOf('day').format(),\n\t\t\t\t\tEndDate: moment().endOf('day').format(),\n\t\t\t\t\tLanguageCode: signalsLangMap[appContext.languageSettings as SignalsLangMap],\n\t\t\t\t\tAssetIds: filteredProductMap,\n\t\t\t\t\tIncludeExpired: false,\n\t\t\t\t\tPeriod: 'intraday',\n\t\t\t\t\tCount: 1000,\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\n\t\tconst data = response?.data\n\t\t\t?.map((signal: SignalsListType) => {\n\t\t\t\tconst mapped: IMappedData = productMap[signal.Product.name as keyof typeof productMap];\n\t\t\t\tif (mapped) {\n\t\t\t\t\tsignal.marketItem = rfpGateway?.getMarketItem(\n\t\t\t\t\t\tisSpreadBettingAccount ? (mapped.sbSymbol as string) : mapped.symbol\n\t\t\t\t\t);\n\t\t\t\t\tsignal.Product.name = isSpreadBettingAccount ? (mapped.sbSymbol as string) : mapped.symbol;\n\t\t\t\t\tsignal.Product.description = mapped.description;\n\t\t\t\t\tsignal.Product.decPrec = mapped.decPrec;\n\t\t\t\t\tsignal.Product.icon = mapped.icon;\n\t\t\t\t\tmapped.slug && (signal.Group.Category.slug = mapped.slug);\n\t\t\t\t}\n\n\t\t\t\treturn signal;\n\t\t\t})\n\t\t\t.filter((signal: SignalsListType) => signal.marketItem)\n\t\t\t.filter((signal: SignalsListType) =>\n\t\t\t\t['Buy Limit', 'Sell Limit', 'Live Trade', 'Buy Stop', 'Sell Stop'].includes(signal.Report.status_text)\n\t\t\t)\n\t\t\t.sort((a: any, b: any) => {\n\t\t\t\tif (a.Report.confidence === b.Report.confidence) return 0;\n\t\t\t\treturn a.Report.confidence > b.Report.confidence ? -1 : 1;\n\t\t\t});\n\n\t\treturn data;\n\t};\n\n\tconst getNextExpiry = (data: SignalsListType[]): moment.Moment | null => {\n\t\tlet closestExpiry: moment.Moment | null = null;\n\n\t\tdata.forEach((signal) => {\n\t\t\tconst expiry = moment(signal.Report.expiry);\n\t\t\tif (!closestExpiry || expiry.isBefore(closestExpiry)) {\n\t\t\t\tclosestExpiry = expiry;\n\t\t\t}\n\t\t});\n\n\t\treturn closestExpiry;\n\t};\n\n\tconst queryClient = useQueryClient();\n\n\tconst closestExpiry = getNextExpiry(queryClient.getQueryData(queryKey) || []);\n\tconst staleTime = closestExpiry ? closestExpiry.diff(moment()) : 0;\n\n\treturn useQuery(queryKey, fetchSignalsList, {\n\t\tcacheTime: 0,\n\t\tstaleTime,\n\t\tenabled: false,\n\t});\n};\n\nexport default useSignals;\n","import { useMutation } from '@tanstack/react-query';\nimport axios from 'axios';\n\ninterface FeedbackParameters {\n\temail?: string;\n\tscore: number;\n\tcomments: string;\n}\n\nconst useSubmitFeedback = () => {\n\tconst mutationFn = async (parameters: FeedbackParameters) => {\n\t\ttry {\n\t\t\tconst response = await axios({\n\t\t\t\turl: '',\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t},\n\t\t\t\tdata: {\n\t\t\t\t\tpayload: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmodule: 'profile',\n\t\t\t\t\t\t\taction: 'feedback',\n\t\t\t\t\t\t\tparameters: {\n\t\t\t\t\t\t\t\tcontext: 'webtrader:app-feedback',\n\t\t\t\t\t\t\t\t...parameters,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn response.data.payload[0].result.data;\n\t\t} catch (e) {}\n\t};\n\n\treturn useMutation({\n\t\tmutationKey: ['useSubmitFeedback'],\n\t\tmutationFn,\n\t});\n};\n\nexport default useSubmitFeedback;\n","import React, { useState, useContext } from 'react';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { IconDefinition } from '@fortawesome/fontawesome-common-types';\nimport { faStar as emptyStar } from '@fortawesome/free-regular-svg-icons';\nimport { faStar as fullStar } from '@fortawesome/free-solid-svg-icons';\n\nimport { useTranslation } from 'react-i18next';\n\nimport commentIcon from '../../../images/comment.svg';\nimport Modal from '../../../shared/Modal/Modal';\nimport useShortTranslation from '../../../utils/hooks/useShortTranslation';\nimport { default as useObservable } from '../../../utils/hooks/useObservable';\nimport { default as AppContext } from '../../../contexts/AppContext';\nimport { default as useForceRerender } from '../../../utils/hooks/useForceRerender';\n\nimport Button from '../../../shared/Button/Button';\n\nimport oneStar from '../../../images/feedbackStars/oneStar.png';\nimport twoStars from '../../../images/feedbackStars/twoStars.png';\nimport threeStars from '../../../images/feedbackStars/threeStars.png';\nimport fourStars from '../../../images/feedbackStars/fourStars.png';\nimport fiveStars from '../../../images/feedbackStars/fiveStars.png';\n\nimport useSubmitFeedback from '../../../utils/mutations/useSubmitFeedback';\nimport authStore, { AuthStore } from '../../../store/authStore';\n\nimport styles from './FeedbackModal.module.scss';\n\nconst FeedbackModal = () => {\n\tconst appContext = useContext(AppContext);\n\n\tconst forceRerender = useForceRerender();\n\tconst { t } = useTranslation();\n\tconst tt = useShortTranslation('wtr:');\n\n\tconst showFeedbackModal = appContext.feedbackModal;\n\n\tconst [feedbackInput, setFeedbackInput] = useState('');\n\tconst [ratingStars, setRatingStars] = useState(Array(5).fill(emptyStar));\n\tconst [showFeedbackSubmitScreen, setShowFeedbackSubmitScreen] = useState(false);\n\tconst [starsImage, setStarsImage] = useState(null);\n\n\tconst { email } = authStore((store: AuthStore) => store.userProfile);\n\tconst { mutate: submitFeedback } = useSubmitFeedback();\n\n\tconst mapFeedbackScore = (score: number): number => {\n\t\t//TODO: OPTIMISE ME\n\t\tswitch (score) {\n\t\t\tcase 1:\n\t\t\t\treturn 0;\n\t\t\tcase 2:\n\t\t\t\treturn 0.25;\n\t\t\tcase 3:\n\t\t\t\treturn 0.5;\n\t\t\tcase 4:\n\t\t\t\treturn 0.75;\n\t\t\tcase 5:\n\t\t\t\treturn 1;\n\t\t\tdefault:\n\t\t\t\treturn 0;\n\t\t}\n\t};\n\n\tconst handleFeedbackInput = ({ target: { value } }: React.ChangeEvent) => {\n\t\tsetFeedbackInput(value);\n\t};\n\n\tconst handleCancelFeedback = () => {\n\t\tsetFeedbackInput('');\n\t\tsetShowFeedbackSubmitScreen(false);\n\t\tsetRatingStars(Array(5).fill(emptyStar));\n\t\tsetStarsImage(null);\n\t\tappContext.feedbackModal = false;\n\t};\n\n\tconst handleFeedbackSubmit = () => {\n\t\tsetShowFeedbackSubmitScreen(true);\n\t\tconst score = mapFeedbackScore(ratingStars.filter((star: IconDefinition) => star.prefix === 'fas').length);\n\t\tconst requestPayload = {\n\t\t\temail,\n\t\t\tscore: score,\n\t\t\tcomments: feedbackInput,\n\t\t};\n\t\tsubmitFeedback(requestPayload, {\n\t\t\tonSuccess: () => setFeedbackInput(''),\n\t\t\tonError: (err) => console.debug('Error retrieving profile feedback from TFBO gateway. Exception: ', err),\n\t\t});\n\t};\n\n\tconst handleRatingClick = (idx: number) => {\n\t\tswitch (idx) {\n\t\t\tcase 0:\n\t\t\t\tsetStarsImage(oneStar);\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\t\tsetStarsImage(twoStars);\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tsetStarsImage(threeStars);\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tsetStarsImage(fourStars);\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\tsetStarsImage(fiveStars);\n\t\t\t\tbreak;\n\t\t}\n\t\tratingStars.forEach((star: IconDefinition, index: number) => {\n\t\t\tif (index <= idx) {\n\t\t\t\tratingStars[index] = fullStar;\n\t\t\t} else {\n\t\t\t\tratingStars[index] = emptyStar;\n\t\t\t}\n\t\t});\n\t\tsetRatingStars([...ratingStars]);\n\t};\n\n\tuseObservable(appContext.getPropertyChangeStream('feedbackModal'), async (change) => {\n\t\tforceRerender();\n\t});\n\n\tconst handleClose = (): void => {\n\t\tif (showFeedbackModal) {\n\t\t\tappContext.feedbackModal = false;\n\t\t\thandleCancelFeedback();\n\t\t}\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t

{t('wtr:WTR_NAVIGATION_FEEDBACK')}

\n\t\t\t\t\n\t\t\t
\n\n\t\t\t{showFeedbackSubmitScreen && (\n\t\t\t\t
\n\t\t\t\t\t
{tt('FEEDBACK_THANKS')}
\n\t\t\t\t\t\"commentIcon\"\n\t\t\t\t\t
{tt('APPRECIATE_MSG')}
\n\t\t\t\t
\n\t\t\t)}\n\n\t\t\t{!showFeedbackSubmitScreen && (\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
{t('en:FEEDBACK_STAR_TITLE')}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{ratingStars.map((star: IconDefinition, idx: number) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t handleRatingClick(idx)} key={idx}>\n\t\t\t\t\t\t\t\t\t\t{starsImage && idx === 0 && \"star\"}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t
{t('en:FEEDBACK_HINT')}
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\t\t\t{!showFeedbackSubmitScreen && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t star.prefix === 'fas').length === 0}\n\t\t\t\t\t\tonClick={handleFeedbackSubmit}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default FeedbackModal;\n","import React, { useEffect, useRef, useState } from 'react';\nimport { Subscription, Observable, Subject } from 'observable-fns';\nimport { FontAwesomeIcon, FontAwesomeIconProps } from '@fortawesome/react-fontawesome';\nimport { faSearch, faTimes } from '@fortawesome/free-solid-svg-icons';\nimport { default as Nullable, Optional } from '../../../utils/functions/Nullable';\nimport { default as PromiseFactory } from '../../../utils/functions/PromiseFactory';\nimport styles from './SearchableList.module.scss';\n\n//#region SearchableListInput\ninterface ISearchableListInputProps {\n\tinputContainerAttributes?: Optional & React.ClassAttributes>;\n\tinputAttributes?: Optional & React.ClassAttributes>;\n\tsearchIconAttributes?: Optional>;\n\tclearIconAttributes?: Optional>;\n\tinputThrottling?: Optional;\n\tonOpen: () => any;\n}\n\nconst SearchableListInput = React.memo(\n\t(props) => {\n\t\tconst promiseFactoryRef = React.useRef(new PromiseFactory());\n\t\tlet searchInputElementRef = useRef();\n\t\tconst [inputHasValue, setInputHasValue] = useState(false);\n\n\t\tasync function onInputElementChange(value: string, delay?: Optional): Promise {\n\t\t\tif (delay != null && delay > 0) {\n\t\t\t\treturn promiseFactoryRef.current.throttle('onInputElementChange', delay, async (resolve, reject) => {\n\t\t\t\t\tresolve(await onInputElementChange(value));\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (value.length > 0 != inputHasValue) {\n\t\t\t\tsetInputHasValue(value.length > 0);\n\t\t\t}\n\t\t\treturn Promise.resolve();\n\t\t}\n\n\t\tconst inputElementAttributes = Nullable.of(props.inputAttributes)\n\t\t\t.mapNullable((attributes) => {\n\t\t\t\tconst classNames = [styles.searchInput, attributes?.className].filter((item) => item != null).join(' ');\n\t\t\t\treturn { type: 'text', ...(attributes || {}), ...{ className: classNames } };\n\t\t\t})\n\t\t\t.map((attributes) => {\n\t\t\t\tconst onInputChange = attributes.onChange;\n\t\t\t\tattributes.onChange = (event) => {\n\t\t\t\t\tconst evnt = { ...event };\n\t\t\t\t\tonInputElementChange(evnt.target.value, props.inputThrottling).then(() => {\n\t\t\t\t\t\tif (onInputChange != null && evnt != null) {\n\t\t\t\t\t\t\tonInputChange(evnt);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t\tattributes.onBlur = () => {\n\t\t\t\t\tsetInputHasValue(false);\n\t\t\t\t};\n\t\t\t\treturn attributes;\n\t\t\t})\n\t\t\t.get();\n\n\t\tsearchInputElementRef = (inputElementAttributes.ref as typeof searchInputElementRef) || searchInputElementRef;\n\n\t\tconst inputContainerElementAttributes = Nullable.of(props.inputContainerAttributes)\n\t\t\t.mapNullable((attributes) => {\n\t\t\t\tconst classNames = [styles.searchInputContainer, attributes?.className]\n\t\t\t\t\t.filter((item) => item != null)\n\t\t\t\t\t.join(' ');\n\t\t\t\treturn { ...(attributes || {}), ...{ className: classNames } };\n\t\t\t})\n\t\t\t.map((attributes) => {\n\t\t\t\tattributes.onClick = () => {\n\t\t\t\t\tNullable.of(searchInputElementRef.current).run((element: HTMLInputElement) => {\n\t\t\t\t\t\telement.focus();\n\t\t\t\t\t\tprops.onOpen();\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t\treturn attributes;\n\t\t\t})\n\t\t\t.get();\n\n\t\tconst searchIconAttributes = Nullable.of(props.searchIconAttributes)\n\t\t\t.mapNullable((attributes) => {\n\t\t\t\tconst classNames = [styles.searchIcon, attributes?.className].filter((item) => item != null).join(' ');\n\t\t\t\treturn { icon: faSearch, ...(attributes || {}), ...{ className: classNames } } as FontAwesomeIconProps;\n\t\t\t})\n\t\t\t.get();\n\n\t\tconst clearIconAttributes = Nullable.of(props.clearIconAttributes)\n\t\t\t.mapNullable((attributes) => {\n\t\t\t\tconst classNames = [styles.closeIcon, attributes?.className].filter((item) => item != null).join(' ');\n\t\t\t\tattributes = { icon: faTimes, ...(attributes || {}), ...{ className: classNames } };\n\t\t\t\tconst onMouseDown = attributes.onMouseDown;\n\t\t\t\tattributes.onMouseDown = (event) => {\n\t\t\t\t\tif (onMouseDown != null) {\n\t\t\t\t\t\tonMouseDown(event);\n\t\t\t\t\t}\n\t\t\t\t\tif (searchInputElementRef.current != null) {\n\t\t\t\t\t\tconst element = searchInputElementRef.current as unknown as HTMLInputElement;\n\t\t\t\t\t\telement.value = '';\n\t\t\t\t\t\tif (typeof inputElementAttributes.onChange == 'function') {\n\t\t\t\t\t\t\tinputElementAttributes.onChange({ target: element } as React.ChangeEvent);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\treturn attributes as FontAwesomeIconProps;\n\t\t\t})\n\t\t\t.get();\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t
\n\t\t\t\t\t{}\n\t\t\t\t\t\n\t\t\t\t\t{inputHasValue && }\n\t\t\t\t
\n\t\t\t\n\t\t);\n\t},\n\t(prevProps, nextProps) => {\n\t\treturn (\n\t\t\tprevProps == nextProps ||\n\t\t\t(prevProps != null &&\n\t\t\t\tnextProps != null &&\n\t\t\t\t(['inputAttributes', 'inputContainerAttributes'] as Array).every(\n\t\t\t\t\t(key) => prevProps[key] == nextProps[key]\n\t\t\t\t))\n\t\t);\n\t}\n);\n\n//#endregion\n\n//#region SearchableListResult\n\nconst SearchableListResult = React.memo<{ observable: Observable }>(({ observable }) => {\n\tconst subscriptionRef = useRef>>();\n\tconst [renderedResults, setRenderedResults] = useState();\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tif (subscriptionRef.current != null) {\n\t\t\t\tsubscriptionRef.current.unsubscribe();\n\t\t\t\tsubscriptionRef.current = null;\n\t\t\t}\n\t\t};\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (subscriptionRef.current != null) {\n\t\t\tsubscriptionRef.current.unsubscribe();\n\t\t\tsubscriptionRef.current = null;\n\t\t}\n\t\tsubscriptionRef.current = observable.subscribe((value) => setRenderedResults(value));\n\t}, [observable]);\n\n\treturn <>{renderedResults !== null && renderedResults};\n});\n\n//#endregion\n\n//#region SearchableList\n\ninterface ISearchableListProps {\n\tdata: T[] | (() => T[]);\n\tfilter: (item: T, searchString: string) => boolean;\n\trender: (matches: T[], searchString?: Optional) => JSX.Element;\n\tonClose: () => any;\n\tthrottle?: Optional;\n\tinputAttributes?: Optional | Optional<() => ISearchableListInputProps>;\n}\n\nexport default function SearchableList(props: React.PropsWithChildren>): JSX.Element {\n\tconst renderedResultsSubjectRef = React.useRef(new Subject());\n\tconst formElementRef = useRef(null);\n\n\tuseEffect(() => {\n\t\treturn Nullable.of(globalThis.window)\n\t\t\t.map((window) => window.document)\n\t\t\t.map((document) => {\n\t\t\t\tconst clickHandler = (event: MouseEvent): void => {\n\t\t\t\t\tconst element = formElementRef.current as unknown as HTMLElement;\n\t\t\t\t\tif (!(element === null || element.contains(event.target as any))) {\n\t\t\t\t\t\t(props.inputAttributes as any).inputAttributes.ref.current.value = '';\n\t\t\t\t\t\tprops.onClose();\n\t\t\t\t\t\trenderedResultsSubjectRef.current.next(<>);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tdocument.addEventListener('mousedown', clickHandler);\n\t\t\t\treturn () => document.removeEventListener('mousedown', clickHandler);\n\t\t\t})\n\t\t\t.orElseGet(() => () => {});\n\t}, []);\n\n\tfunction filterData(searchString: string): T[] {\n\t\treturn Nullable.of(props.data)\n\t\t\t.map((data) => (typeof data === 'function' ? data() : data))\n\t\t\t.map((data) => data.filter((item) => props.filter(item, searchString)))\n\t\t\t.orElseGet(() => []);\n\t}\n\n\tconst searchableInputAttributes = Nullable.of(props.inputAttributes)\n\t\t.mapNullable((attributes) => (attributes != null && typeof attributes === 'function' ? attributes() : attributes))\n\t\t.mapNullable((attributes) => {\n\t\t\treturn { ...(attributes || {}), ...{ inputAttributes: attributes?.inputAttributes || {} } };\n\t\t})\n\t\t.map((attributes) => {\n\t\t\tconst onInputFocus = attributes.inputAttributes.onFocus;\n\t\t\tattributes.inputAttributes.onFocus = (event) => {\n\t\t\t\tconst searchString = event?.target?.value;\n\t\t\t\tconst filteredData = filterData(searchString);\n\t\t\t\trenderedResultsSubjectRef.current.next(props.render(filteredData, searchString));\n\t\t\t\tif (onInputFocus != null) {\n\t\t\t\t\tonInputFocus(event);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst onInputChange = attributes.inputAttributes.onChange;\n\t\t\tattributes.inputAttributes.onChange = (event) => {\n\t\t\t\tconst searchString = event?.target?.value;\n\t\t\t\tconst filteredData = filterData(searchString);\n\t\t\t\trenderedResultsSubjectRef.current.next(props.render(filteredData, searchString));\n\t\t\t\tif (onInputChange != null) {\n\t\t\t\t\tonInputChange(event);\n\t\t\t\t}\n\t\t\t};\n\t\t\treturn attributes;\n\t\t})\n\t\t.get();\n\n\tfunction onFormSubmitted(event: React.FormEvent): void {\n\t\tif (event != null) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t}\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\n//#endregion\n","import React from 'react';\n\nconst Fragment: (props: { render: () => JSX.Element }) => JSX.Element = ({ render }) => {\n\treturn <>{render()};\n};\nexport default Fragment;\n","export const simulateMouseEvent = function (element: any, eventName: any, coordX: any, coordY: any) {\n\telement.dispatchEvent(\n\t\tnew MouseEvent(eventName, {\n\t\t\tview: window,\n\t\t\tbubbles: true,\n\t\t\tcancelable: true,\n\t\t\tclientX: coordX,\n\t\t\tclientY: coordY,\n\t\t\tbutton: 0,\n\t\t})\n\t);\n};\n","import React, { useContext, useEffect, useRef, useMemo, useCallback, useState } from 'react';\n\nimport { default as cn } from 'classnames';\n\nimport { default as ReactMegaMenu } from 'react-mega-menu/lib';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { default as ArrayStore } from 'devextreme/data/array_store';\n\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\n\nimport 'devextreme/dist/css/dx.common.css';\nimport 'devextreme/dist/css/dx.light.css';\n\nimport { ColumnDef, createColumnHelper, flexRender, getCoreRowModel, Row, useReactTable } from '@tanstack/react-table';\nimport { useVirtualizer } from '@tanstack/react-virtual';\n\nimport { default as Nullable, Optional } from '../../../../utils/functions/Nullable';\nimport { ArrayElementType } from '../../../../utils/functions/TypeUtils';\nimport { ObservableObject } from '../../../../utils/functions/Observables';\nimport { MarketItem } from '../../../../gateways/RfpGateway/rfp.types';\nimport { default as InstrumentContext } from '../../../../contexts/InstrumentContext';\nimport { default as SearchableList } from '../../../components/SearchableList/SearchableList';\nimport { default as Fragment } from '../../../components/Fragment';\n\nimport useShortTranslation from '../../../../utils/hooks/useShortTranslation';\n\nimport { default as useForceRerender } from '../../../../utils/hooks/useForceRerender';\n\nimport { default as useObservable } from '../../../../utils/hooks/useObservable';\n\nimport { default as usePromiseFactory } from '../../../../utils/hooks/usePromiseFactory';\n\nimport { default as AppContext } from '../../../../contexts/AppContext';\n\nimport { default as DashboardContext } from '../../../../contexts/DashboardContext';\nimport {\n\tDEFAULT_FEED_ID,\n\tinstrumentExistsInDynamicWatchlists,\n\tMAX_WATCHLISTS_ALLOWED,\n\tMAX_INSTRUMENTS_ALLOWED_JP,\n\tMAX_INSTRUMENTS_ALLOWED,\n} from '../../../../utils/functions/WatchlistUtils';\nimport { TWatchlists } from '../../../../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\nimport usePreferredFeedId from '../../../../utils/hooks/usePreferredFeedId';\nimport { sortSearchResults } from '../../../../utils/functions/sortSearchResults';\nimport { TradersGymContext, TradersGymContextType } from '../../../../pages/TradersGym/TradersGymContext';\n\nimport GroupBadge from '../../../components/GroupBadge/GroupBadge';\nimport CreateWatchlistButton from '../Watchlist/CreateWatchlistButton';\n\nimport useGetTranslatedWLName from '../../../../utils/hooks/useGetTranslatedWLName';\nimport {\n\tgetMinReqTierDisplayText,\n\tgetTierDisplayName,\n\tgetTierNameByNumber,\n} from '../../../../utils/functions/subscriptionUtils';\n\nimport WtrPopup from '../../../components/WtrPopup/WtrPopup';\n\nimport useSaveWatchlistToPreferences from '../../../../utils/hooks/watchlist/useSaveWatchlistToPreferences';\nimport { AccountMarketType } from '../../../../gateways/RfpGateway/rfp.types';\nimport useSelectedTradingAccount from '../../../../utils/hooks/useSelectedTradingAccount';\nimport tradingAccountStore from '../../../../store/tradingAccountStore';\nimport watchListStore from '../../../../store/WatchListStore/watchListStore';\nimport tradingViewStore from '../../../../store/tradingViewStore';\nimport authStore from '../../../../store/authStore';\n\nimport InstrumentIcon from '../../../components/GroupBadge/InstrumentIcon';\nimport { simulateMouseEvent } from '../../../../utils/functions/simulateClick';\n\nimport styles from './InstrumentSearch.module.scss';\n\ninterface IMegaMenuController {\n\tgetSections(): ReadonlyArray>>;\n\tsetActiveSection(key: string | number): void;\n}\n\ntype TMegaMenuProps = ReactMegaMenu['props'] & {\n\tcontrollerRef?: React.MutableRefObject;\n};\n\nclass MegaMenu extends ReactMegaMenu {\n\tprivate m_activeRowKey: Optional = null;\n\n\tpublic constructor(props: TMegaMenuProps | Readonly) {\n\t\tsuper(props);\n\t\tthis.mouseLeave = () => {};\n\t\tthis.activate = (row: number) => {\n\t\t\tif (row < this.props.data.length) {\n\t\t\t\tthis.m_activeRowKey = Nullable.of(this.props.data[row])\n\t\t\t\t\t.map((section) => section.key)\n\t\t\t\t\t.get();\n\t\t\t\tsuper.activate.bind(this)(row);\n\t\t\t}\n\t\t};\n\t\tNullable.of(props.controllerRef).run((controllerRef) => {\n\t\t\tcontrollerRef.current = {\n\t\t\t\tgetSections: () => this.props.data,\n\t\t\t\tsetActiveSection: (key) => this.activateItemByKey(key),\n\t\t\t};\n\t\t});\n\t}\n\n\tprivate activateItemByKey(key: string | number): void {\n\t\tNullable.of(this.props.data.findIndex((value) => value.key === key))\n\t\t\t.filter((index) => index >= 0)\n\t\t\t.run((index) => this.activate(index));\n\t}\n\n\tpublic render(): JSX.Element {\n\t\ttry {\n\t\t\tif (this.state.activeRow >= this.props.data.length && this.m_activeRowKey) {\n\t\t\t\tthis.state.activeRow = this.props.data.findIndex((value) => value.key === this.m_activeRowKey);\n\t\t\t}\n\t\t\treturn super.render();\n\t\t} catch (err) {\n\t\t\treturn <>;\n\t\t}\n\t}\n}\n\nexport interface IMarketItemRecord extends MarketItem {\n\texistsInWatchlist: boolean;\n\twatchlists: string[];\n\tsearchMatch: boolean;\n}\n\ninterface IInstrumentSearchProps {\n\tthrottle?: Optional;\n\tmaxWatchlistNameLength?: Optional;\n\tfilter?: Optional<(instrument: MarketItem, searchString: string) => boolean>;\n\tviewInstrument?: Optional<(instrument: MarketItem) => any>;\n\tonOpen: () => any;\n\tonClose: () => any;\n}\n\nconst InstrumentSearch = React.memo((props) => {\n\tconst saveWatchlistToPreferences = useSaveWatchlistToPreferences();\n\tconst instrumentContext = useContext(InstrumentContext);\n\tconst isSpreadBettingAccount = tradingAccountStore.use.isSpreadBetting();\n\n\tconst instruments = Array.from(instrumentContext.instruments).filter((value: MarketItem) =>\n\t\tisSpreadBettingAccount\n\t\t\t? value.accountMarketType === AccountMarketType.SpreadBetting\n\t\t\t: value.accountMarketType !== AccountMarketType.SpreadBetting\n\t);\n\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst promiseFactory = usePromiseFactory();\n\tconst { t } = useTranslation();\n\tconst tt = useShortTranslation('en:');\n\tconst searchInputElementRef = useRef();\n\tconst forceRerender = useForceRerender();\n\n\tconst tradingMode = authStore.use.tradingMode();\n\tconst getWatchlists = watchListStore.use.getWatchlists();\n\tconst getSelectedWatchlist = watchListStore.use.getSelectedWatchlist();\n\tconst getWatchlistsContainsInstrument = watchListStore.use.getWatchlistsContainsInstrument();\n\tconst addInstruments = watchListStore.use.addInstruments();\n\tconst removeInstruments = watchListStore.use.removeInstruments();\n\tconst isWatchlistNameExists = watchListStore.use.isWatchlistNameExists();\n\tconst isInstrumentExistsInWatchlist = watchListStore.use.isInstrumentExistsInWatchlist();\n\tconst allWatchlists = getWatchlists(tradingMode);\n\tconst isChildWindow = appContext.isChildWindow || false;\n\tconst getCurrentWatchList = watchListStore.use.getCurrentWatchList();\n\tconst currentWatchList = getCurrentWatchList(isChildWindow);\n\tconst selectedWatchlist = getSelectedWatchlist(tradingMode, isChildWindow);\n\n\tconst activeTradingAccount = useSelectedTradingAccount();\n\n\tconst selectedTradingAccountWatchlists = dashboardContext.watchlist;\n\n\tconst instrumentGroups = Array.from(instrumentContext.groups);\n\n\tconst isJapanSubscriptionAccount = tradingAccountStore.use.isJapanSubscription();\n\tconst isArabic = appContext.isArabic;\n\tconst maxWatchlistLimit = useRef(false);\n\tconst displayStateRef = useRef<'select' | 'create' | ''>('');\n\tconst preferredFeedId = usePreferredFeedId(activeTradingAccount);\n\tconst getTranslatedWLName = useGetTranslatedWLName();\n\tconst isSearchbarOpen = tradingViewStore.use.isSearchOpen();\n\tconst isCompSymbolMode = tradingViewStore.use.isCompSymbolMode();\n\tconst firstPressedButton = tradingViewStore.use.firstPressedButton();\n\tconst setFirstPressedButton = tradingViewStore.use.setFirstPressedButton();\n\tconst setCompSymbol = tradingViewStore.use.setCompSymbol();\n\tconst setIsCompSymbolMode = tradingViewStore.use.setIsCompSymbolMode();\n\n\tconst gymContext = useContext(TradersGymContext) as TradersGymContextType;\n\tconst isGymActive = gymContext.tradersGymContext.isActive;\n\n\tuseObservable(appContext.getPropertyChangeStream('accountStats'), () => forceRerender());\n\tuseObservable(dashboardContext.getPropertyChangeStream('watchlist', 'tradingAccount'), async () => {\n\t\tawait promiseFactory.throttle('dashboardContext.propertyChanged', 100);\n\t\tforceRerender();\n\t});\n\t// useObservable(instrumentContext.getPropertyChangeStream('instruments'), (_) => forceRerender());\n\n\tuseEffect(() => {\n\t\tif (searchInputElementRef.current && firstPressedButton) {\n\t\t\tif (isSearchbarOpen) {\n\t\t\t\tsearchInputElementRef.current.focus();\n\t\t\t\tsearchInputElementRef.current.value = firstPressedButton?.toLowerCase();\n\t\t\t}\n\t\t}\n\t\treturn () => {\n\t\t\tsetFirstPressedButton('');\n\t\t};\n\t}, [firstPressedButton]);\n\n\tuseEffect(() => {\n\t\tif (searchInputElementRef.current && isSearchbarOpen) {\n\t\t\tsearchInputElementRef.current.focus();\n\t\t}\n\n\t\treturn () => {\n\t\t\tsetCompSymbol('');\n\t\t};\n\t}, [isSearchbarOpen]);\n\n\tconst focusSearch = useCallback((event) => {\n\t\tif (\n\t\t\tevent.target.tagName === 'INPUT' ||\n\t\t\tevent.code !== `Key${event.key.toUpperCase()}` ||\n\t\t\tappContext.contactModal ||\n\t\t\tappContext.feedbackModal ||\n\t\t\tappContext.openSettings ||\n\t\t\tappContext.reconnectModal ||\n\t\t\tappContext.subscriptionModal ||\n\t\t\tappContext.statusModal\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tprops.onOpen();\n\t\tsearchInputElementRef.current.focus();\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (\n\t\t\tsearchInputElementRef.current &&\n\t\t\t!appContext.contactModal &&\n\t\t\t!appContext.feedbackModal &&\n\t\t\t!appContext.openSettings &&\n\t\t\t!appContext.reconnectModal &&\n\t\t\t!appContext.subscriptionModal &&\n\t\t\t!appContext.statusModal\n\t\t) {\n\t\t\twindow.addEventListener('keypress', focusSearch, true);\n\n\t\t\treturn () => {\n\t\t\t\twindow.removeEventListener('keypress', focusSearch, true);\n\t\t\t};\n\t\t}\n\t}, [searchInputElementRef.current, isSearchbarOpen]);\n\n\tconst groupTranslations: any = {\n\t\tForex: t('wtr:WTR_FOREX'),\n\t\tForexSB: t('wtr:WTR_FOREX'),\n\t\tIndices: t('wtr:WTR_INDICES'),\n\t\tIndicesSB: t('wtr:WTR_INDICES'),\n\t\tStocks: t('wtr:SHARE_CFDS'),\n\t\tEnergy: t('wtr:ENERGY'),\n\t\tEnergySB: t('wtr:ENERGY'),\n\t\tCommodities: t('wtr:WTR_COMMODITIES'),\n\t\tCrypto: t('wtr:CRYPTO'),\n\t\tCryptoSB: t('wtr:CRYPTO'),\n\t\tMetals: t('wtr:METALS'),\n\t\tMetalsSB: t('wtr:METALS'),\n\t\tShares: t('wtr:SHARE_CFDS'),\n\t\tCFD: t('wtr:ETFS'),\n\t\tETFs: t('wtr:ETFS'),\n\t\tAll: t('en:All'),\n\t\tTier1: getTierDisplayName('Tier1'),\n\t\tTier2: getTierDisplayName('Tier2'),\n\t\tTier3: getTierDisplayName('Tier3'),\n\t};\n\n\tuseEffect(() => {\n\t\tpromiseFactory.throttle('instrumentContextChanged', 100).then(() => {\n\t\t\tforceRerender();\n\t\t});\n\t}, [instrumentContext.instruments, instrumentContext.watchlists]);\n\n\tuseEffect(() => {\n\t\tif (allWatchlists) {\n\t\t\tmaxWatchlistLimit.current = allWatchlists.length >= MAX_WATCHLISTS_ALLOWED;\n\t\t}\n\t}, [allWatchlists]);\n\n\tconst controller = ObservableObject.for({\n\t\tselectedGroup: 'All',\n\t\tselectedWatchlistManagementInstrument: null as Optional,\n\t\tmaxWatchlistNameLength: Math.max(1, props.maxWatchlistNameLength || 20),\n\t});\n\n\tconst searchListFilter = useMemo(() => {\n\t\treturn props.filter\n\t\t\t? props.filter\n\t\t\t: (instrument: MarketItem, searchString: string): boolean => {\n\t\t\t\t\tsearchString = (searchString || '').trim().toLowerCase();\n\t\t\t\t\treturn (\n\t\t\t\t\t\tsearchString === '' ||\n\t\t\t\t\t\tinstrument.code?.toLowerCase().includes(searchString) ||\n\t\t\t\t\t\tinstrument.fullName?.toLowerCase().includes(searchString) ||\n\t\t\t\t\t\tinstrument.grp?.toLowerCase().includes(searchString) ||\n\t\t\t\t\t\t(instrument.exchangeTicker ?? '')?.toLowerCase().includes(searchString)\n\t\t\t\t\t);\n\t\t\t };\n\t}, [props.filter]);\n\n\tconst viewInstrument = useMemo(() => {\n\t\treturn props.viewInstrument ? props.viewInstrument : (_: MarketItem) => {};\n\t}, [props.viewInstrument]);\n\n\tinstrumentContext.instrumentSearchInputFocusDelegate = () => {\n\t\tNullable.of(searchInputElementRef.current).run((element: HTMLInputElement) => {\n\t\t\tprops.onOpen();\n\t\t\telement.focus();\n\t\t});\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{/*
showSkipWaitingPrompt()}>HAPPY X5
*/}\n\t\t\t {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tconst megaMenuControllerRef = useRef();\n\t\t\t\t\t\t\t\t\tconst forceRerender = useForceRerender();\n\t\t\t\t\t\t\t\t\tconst instrumentSearchController = controller;\n\t\t\t\t\t\t\t\t\tinstrumentSearchController.selectedWatchlistManagementInstrument = null;\n\t\t\t\t\t\t\t\t\tconst tableContainerRef = React.useRef(null);\n\n\t\t\t\t\t\t\t\t\tuseObservable(instrumentSearchController.getPropertyChangeStream('selectedGroup'), () => {\n\t\t\t\t\t\t\t\t\t\tforceRerender();\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t//create map of IMarketItemRecord arrays, indexed by group\n\t\t\t\t\t\t\t\t\tconst instrumentsByGroup = useMemo(() => Nullable.of(searchMatches)\n\t\t\t\t\t\t\t\t\t\t// .filter((matches) => matches.length > 0)\n\t\t\t\t\t\t\t\t\t\t.map((matches) => {\n\t\t\t\t\t\t\t\t\t\t\treturn matches.map((instruments) => {\n\t\t\t\t\t\t\t\t\t\t\t\tconst instrument: MarketItem = {\n\t\t\t\t\t\t\t\t\t\t\t\t\t...instruments,\n\t\t\t\t\t\t\t\t\t\t\t\t\tgrp: instruments.grp,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplayName: instruments.displayName,\n\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t\tlet watchlistsNames: string[] = [];\n\t\t\t\t\t\t\t\t\t\t\t\tif (allWatchlists) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst watchlists = getWatchlistsContainsInstrument(tradingMode, instrument.code);\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (watchlists) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twatchlistsNames = watchlists.map((watchlist) => watchlist.name);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tconst record: IMarketItemRecord = {\n\t\t\t\t\t\t\t\t\t\t\t\t\t...instrument,\n\t\t\t\t\t\t\t\t\t\t\t\t\texistsInWatchlist: watchlistsNames.length > 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\twatchlists: watchlistsNames,\n\t\t\t\t\t\t\t\t\t\t\t\t\tsearchMatch: searchMatches.length > 0,\n\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t\treturn record;\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t.map((matches) => {\n\t\t\t\t\t\t\t\t\t\t\tconst groups = new Map(Array.of(['All', matches]));\n\n\t\t\t\t\t\t\t\t\t\t\tinstrumentGroups\n\t\t\t\t\t\t\t\t\t\t\t\t.sort((left: any, right: any) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn (groupTranslations[left] || left || '').localeCompare(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tgroupTranslations[right] || right || ''\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t\t.forEach((group: any) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tgroups.set(group as string, []);\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tif (isJapanSubscriptionAccount) {\n\t\t\t\t\t\t\t\t\t\t\t\tmatches.forEach((instrument) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t// obviously this is not great but will do for now\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (instrument.minTier) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor (let i = instrument.minTier; i <= 3; i++) groups.get(i.toString())!.push(instrument);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tmatches.forEach((instrument) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tinstrument.grp && groups.get(instrument.grp)!.push(instrument);\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\treturn groups;\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t.orElseGet(() => new Map()),[searchMatches]);\n\t\t\t\t\t\t\t\t\t//create instruments panel\n\t\t\t\t\t\t\t\t\tconst instrumentsPanel = Nullable.of(instrumentsByGroup.get(instrumentSearchController.selectedGroup))\n\t\t\t\t\t\t\t\t\t\t.map((instruments) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst [lastClickedCell, setLastClickedCell] = useState<{ rowId: string; columnId: string } | null>(null);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst forceRerender = useForceRerender();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet newInstruments = instruments;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst selectedGroup = instrumentSearchController.selectedGroup;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst recentlyViewedInstruments = instrumentContext.recentlyViewedInstruments;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst isShowRecentlyViewed =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(searchString || '').length < 1 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectedGroup === 'All' &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trecentlyViewedInstruments.length > 0;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (isShowRecentlyViewed) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewInstruments = Array.from(recentlyViewedInstruments.values())\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.map((instrument) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst valueComparator =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrumentContext.recentlyViewedInstruments.valueComparator ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t((val1, val2) => val1.displayName === val2.displayName);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn instruments.find((value) => valueComparator(instrument, value));\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.filter((value) => value) as IMarketItemRecord[];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewInstruments = instruments\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.filter((instrument) => instrument.searchMatch)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.sort((val1, val2) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tval1.displayName === searchString && val2.displayName !== searchString\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? -1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: val2.displayName === searchString && val1.displayName !== searchString\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: val1.displayName.localeCompare(val2.displayName)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewInstruments =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearchString && searchString.length > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? (sortSearchResults(instruments, searchString) as IMarketItemRecord[])\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: instruments;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst dataStore = new ArrayStore({ key: 'code', data: instruments });\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst showEmptyState = instruments.length < 1;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction renderSymbolColumn(target: any): React.ReactNode {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst record = target.original as IMarketItemRecord;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst displayName =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trecord.exchangeTicker && record.exchangeTicker !== ''\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? record.exchangeTicker\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: record.displayName;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst upperSearch = searchString?.toUpperCase();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet match = {displayName};\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (upperSearch && displayName.includes(upperSearch)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst notHighlighted = displayName.split(upperSearch);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst highlighted = {upperSearch};\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmatch = (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{notHighlighted[0]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{highlighted}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{notHighlighted[1]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{isJapanSubscriptionAccount ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{record?.minTier && getMinReqTierDisplayText(record.minTier)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
{match}
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
{renderNameColumn(target)}
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction renderNameColumn(record: any): React.ReactNode {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst fullName = record.original.fullName;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst upperName = fullName?.toUpperCase();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst upperSearch = searchString?.toUpperCase();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst showTooltipLength = 40;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet match =
{fullName}
;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (upperSearch && upperSearch !== ' ' && upperName.includes(upperSearch)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst startIndex = upperName.indexOf(upperSearch);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst endIndex = startIndex + upperSearch.length;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst highlighted = (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{fullName.substring(startIndex, endIndex)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmatch = (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{fullName.substring(0, startIndex)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{highlighted}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{fullName.substring(endIndex, fullName.length)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn fullName.length >= showTooltipLength ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{fullName}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
{match}
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
{match}
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction renderWatchlistColumn(target: any, column: any): React.ReactNode {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst record: IMarketItemRecord = target.original;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst existsInWatchlist = record.existsInWatchlist;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst watchlistNames = record.watchlists.map((watchlistName) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgetTranslatedWLName(watchlistName)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst isSelected = Nullable.of(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrumentSearchController.selectedWatchlistManagementInstrument\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.map((instrument) => instrument.code === record.code)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.orElse(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst handleCellClick = (rowId: string, columnId: string) => setLastClickedCell({rowId, columnId});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t handleCellClick(target.id, column.id)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{existsInWatchlist ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t('wtr:EXISTS_IN')} {'\"' + watchlistNames.join(' \", \" ') + '\"'}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ton={['hover']}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpinned\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"tiny\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tposition=\"left center\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst triggerLastClickedCell = () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (lastClickedCell) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst cellSelector = `[data-rowid=\"${lastClickedCell.rowId}\"][data-colid=\"${lastClickedCell.columnId}\"]`;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst cell = document.querySelector(cellSelector) as HTMLDivElement;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (cell) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcell.click();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction onCellClick(target: any, name: string | undefined): void {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNullable.of(target)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.run((target) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst record: IMarketItemRecord = target;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (isGymActive) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tviewInstrument(record);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (isCompSymbolMode) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsCompSymbolMode(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetCompSymbol(record.code);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsimulateMouseEvent(document, 'mousedown', 0, 0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname === 'watchlists' &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tallWatchlists &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectedWatchlist\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWatchlistLimit.current = allWatchlists.length >= MAX_WATCHLISTS_ALLOWED;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrumentSearchController.selectedWatchlistManagementInstrument = record;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst maxInstruments = appContext.isJapanAccount\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MAX_INSTRUMENTS_ALLOWED_JP\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: MAX_INSTRUMENTS_ALLOWED;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst maxInstrumentsPerWatchlist =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectedWatchlist.instruments.length >= maxInstruments;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (allWatchlists.length === 1 && !maxInstrumentsPerWatchlist) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplayStateRef.current = '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst instrumentExists = selectedWatchlist.instruments.includes(record.code);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst preferenceToUpdate = selectedTradingAccountWatchlists.find(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(watchlist) => watchlist._name === currentWatchList\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (preferenceToUpdate) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!instrumentExists) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpreferenceToUpdate.instrument = [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...preferenceToUpdate.instrument,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ _code: record.code },\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpreferenceToUpdate.instrument = preferenceToUpdate.instrument.filter(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(instrument) => instrument._code !== record.code\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdashboardContext.watchlist = selectedTradingAccountWatchlists;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsaveWatchlistToPreferences(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdashboardContext.watchlist,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisSpreadBettingAccount\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplayStateRef.current = 'select';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tforceRerender();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrumentSearchController.selectedWatchlistManagementInstrument = null;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNullable.of(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrumentContext.instruments.find((value) => value.code === record.code)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t).run((instrument) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!isShowRecentlyViewed) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrumentContext.recentlyViewedInstruments.delete(instrument);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrumentContext.recentlyViewedInstruments.enqueue(instrument);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tviewInstrument(record);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst gridHeight = useMemo(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (isShowRecentlyViewed) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn isArabic ? 446 : 376;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn isArabic ? 490 : 357;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}, [isArabic, isShowRecentlyViewed]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst columnHelper = createColumnHelper();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst columns: ColumnDef[] = useMemo(() => [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumnHelper.accessor('code', {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid: 'code',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theader: () => <>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcell: ({ row }) =>
onCellClick(row.original, row.getValue('id'))}>{renderSymbolColumn(row)}
,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tenableHiding: false,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tminSize: 300,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumnHelper.accessor((row) => 'watchlists', {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid: 'watchlists',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theader: () => <>,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcell: ({row, column}) =>
onCellClick(row.original, \"watchlists\")} className={cn(styles.watchlistCell)}>{renderWatchlistColumn(row, column)}
,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tminSize: 50,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tenableHiding: true\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t],[Object.keys(newInstruments).length]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst columnVisibility = {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twatchlists: !isGymActive,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcode: true,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst table = useReactTable({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata: newInstruments,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumns,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgetCoreRowModel: getCoreRowModel(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t columnVisibility, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst rows = useMemo(() => table.getRowModel().rows, [table.getRowModel()]);\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst rowVirtualizer = useVirtualizer({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcount: rows.length,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\testimateSize: useCallback(() => 40, []), //estimate row height for accurate scrollbar dragging\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgetScrollElement: () => tableContainerRef.current,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toverscan: 10,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst virtualRows = rowVirtualizer.getVirtualItems();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn showEmptyState ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t('wtr:NO_MATCHES')} '\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{searchString}'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
{t('wtr:MODIFY_SEARCH')}
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{virtualRows.map(virtualRow => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst row = rows[virtualRow.index] as Row;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn row ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{row.getVisibleCells().map(cell => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : null;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
{flexRender(cell.column.columnDef.cell, cell.getContext())}
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst forceRerender = useForceRerender();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst newWatchlistNameRef = useRef('');\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst watchlistNameElementRef = useRef(null);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst maxWatchlistNameLength =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrumentSearchController.maxWatchlistNameLength;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst selectedInstrument =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrumentSearchController.selectedWatchlistManagementInstrument;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst duplicateWatchlistNameRef = useRef(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst allWatchlistsLocal = getWatchlists(tradingMode);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tuseObservable(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrumentSearchController.getPropertyChangeStream(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'selectedGroup',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'selectedWatchlistManagementInstrument',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'maxWatchlistNameLength'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplayStateRef.current = '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tforceRerender();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction updateWatchlist(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrument: IMarketItemRecord,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twatchlist: string,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\taction: 'add' | 'remove',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trerender: boolean = true,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisWatchlistMaxed: boolean,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttriggerLastClickedCell: () => void\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t): void {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (allWatchlists) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst watchlistName = watchlist.trim();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst updatePreferenceObject = selectedTradingAccountWatchlists.find(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(entry) => entry._name === watchlistName\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!isWatchlistMaxed && action === 'add') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (updatePreferenceObject) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdatePreferenceObject.instrument.push({ _code: instrument.code });\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\taddInstruments(tradingMode, watchlistName, [instrument.code]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else if (action === 'remove') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (updatePreferenceObject) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdatePreferenceObject.instrument =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdatePreferenceObject.instrument.filter(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(entry) => entry._code !== instrument.code\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tremoveInstruments(tradingMode, watchlistName, [instrument.code]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst watchlists = getWatchlistsContainsInstrument(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttradingMode,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrument.code\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst watchlistsNames = watchlists\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? watchlists.map((watchlist) => watchlist.name)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: [];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrument = {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...instrument,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twatchlists: watchlistsNames,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\texistsInWatchlist: watchlistsNames.length > 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdataStore.push([\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype: 'update',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey: instrument.code,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata: instrument,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (rerender) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsaveWatchlistToPreferences(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectedTradingAccountWatchlists,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisSpreadBettingAccount\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tforceRerender();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttriggerLastClickedCell();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction onCreateWatchlistCancelClick(): void {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplayStateRef.current = 'select';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tduplicateWatchlistNameRef.current = false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewWatchlistNameRef.current = '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNullable.of(watchlistNameElementRef.current).run(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(element: HTMLInputElement) => (element.value = '')\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tforceRerender();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction onCreateWatchlistSaveClick(): void {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst watchlistName = newWatchlistNameRef.current.trim();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (allWatchlists && isWatchlistNameExists(tradingMode, watchlistName)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tduplicateWatchlistNameRef.current = true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWatchlistLimit.current = allWatchlists.length >= MAX_WATCHLISTS_ALLOWED;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tforceRerender();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else if (allWatchlists) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet instrument = selectedInstrument as IMarketItemRecord;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst newWatchlistEntry: TWatchlists = {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrument: [{ _code: instrument.code }],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_name: watchlistName,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_id: watchlistName,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_feedId: preferredFeedId !== '' ? preferredFeedId : DEFAULT_FEED_ID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_sortOrder: 'None',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_sortValue: 'Instrument',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdashboardContext.watchlist.push(newWatchlistEntry);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsaveWatchlistToPreferences(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdashboardContext.watchlist,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisSpreadBettingAccount\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplayStateRef.current = 'select';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewWatchlistNameRef.current = '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tduplicateWatchlistNameRef.current = false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWatchlistLimit.current = allWatchlists.length >= MAX_WATCHLISTS_ALLOWED;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst watchlists = getWatchlistsContainsInstrument(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttradingMode,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrument.code\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst watchlistsNames = watchlists\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? watchlists.map((watchlist) => watchlist.name)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: [];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrument = {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...instrument,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twatchlists: watchlistsNames,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\texistsInWatchlist: watchlistsNames.length > 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdataStore.push([\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype: 'update',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey: instrument.code,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata: instrument,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNullable.of(watchlistNameElementRef.current).run(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(element: HTMLInputElement) => (element.value = '')\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tforceRerender();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttriggerLastClickedCell();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction onCreateWatchlistClick(): void {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (allWatchlists) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWatchlistLimit.current = allWatchlists.length >= MAX_WATCHLISTS_ALLOWED;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!maxWatchlistLimit.current) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplayStateRef.current = 'create';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewWatchlistNameRef.current = '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNullable.of(watchlistNameElementRef.current).run(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(element: HTMLInputElement) => (element.value = '')\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tforceRerender();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction onNewWatchlistNameChange(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent: React.ChangeEvent\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t): void {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNullable.of(event)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.map((event) => event.target)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.map((target) => target.value)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.run((value) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewWatchlistNameRef.current = value.trim();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tduplicateWatchlistNameRef.current = false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpromiseFactory\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.throttle('newWatchlistNameChange', 50)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.then(() => forceRerender());\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t('wtr:SELECT_WATCHLIST')}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{allWatchlistsLocal &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectedInstrument &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tallWatchlistsLocal.map((watchlist) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrumentExistsInDynamicWatchlists(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twatchlist.name,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdashboardContext.defaultWatchLists,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisSpreadBettingAccount\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst existsInWatchlist = isInstrumentExistsInWatchlist(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttradingMode,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twatchlist.name,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectedInstrument.code\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst maxInstruments = appContext.isJapanAccount\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? MAX_INSTRUMENTS_ALLOWED_JP\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: MAX_INSTRUMENTS_ALLOWED;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst isWatchlistMaxed =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twatchlist.instruments.length >= maxInstruments;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst disableIcon =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisWatchlistMaxed && selectedInstrument && !existsInWatchlist\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? styles.disabledIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: styles.addToWatchlistIcon;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdateWatchlist(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectedInstrument as IMarketItemRecord,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twatchlist.name,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\texistsInWatchlist ? 'remove' : 'add',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisWatchlistMaxed,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttriggerLastClickedCell\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{getTranslatedWLName(watchlist.name)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{isWatchlistMaxed &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectedInstrument &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!isInstrumentExistsInWatchlist(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttradingMode,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twatchlist.name,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectedInstrument.code\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t('wtr:MAX_INSTRUMENT_ERROR')}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{tt('CREATE_WATCHLIST')}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t onNewWatchlistNameChange(event)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/*
*/}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* { `${newWatchlistNameRef.current.length}/${maxWatchlistNameLength}` }\n
*/}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{duplicateWatchlistNameRef.current && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{duplicateWatchlistNameRef.current && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t('wtr:NAME_IN_USE')}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{maxWatchlistLimit.current && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{maxWatchlistLimit.current && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t('wtr:MAX_WATCHLIST_ERROR')}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{!duplicateWatchlistNameRef.current && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t onCreateWatchlistCancelClick()}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{tt('CANCEL')}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t onCreateWatchlistSaveClick()}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={newWatchlistNameRef.current.length < 1}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{tt('CREATE')}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t.get();\n\t\t\t\t\t\t\t\t\t//create array of mega menu data items\n\t\t\t\t\t\t\t\t\tconst megaMenuItems = Nullable.of(instrumentsByGroup)\n\t\t\t\t\t\t\t\t\t\t.map((instrumentsByGroup) => {\n\t\t\t\t\t\t\t\t\t\t\treturn Array.from(instrumentsByGroup)\n\t\t\t\t\t\t\t\t\t\t\t\t.filter(([group, instruments]) => instruments.length !== 0)\n\t\t\t\t\t\t\t\t\t\t\t\t.map(([group, instruments]) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst isSelected = group === instrumentSearchController.selectedGroup;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet selectedStyling = '';\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (isSelected) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// if (isJapanAccount) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (isJapanSubscriptionAccount) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectedStyling = styles.selectedTier;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselectedStyling = styles.selected;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t// const isTier = group === '1' || group === '2' || group === '3';\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst isTier =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisJapanSubscriptionAccount && (group === '1' || group === '2' || group === '3');\n\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel: (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tinstrumentSearchController.selectedGroup = group;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tforceRerender();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{isTier ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{getTierNameByNumber(parseInt(group))}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{groupTranslations[isTier ? `Tier${group}` : group]} ({instruments.length})\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey: group,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\titems: instrumentsPanel,\n\t\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t.orElseGet(() => []);\n\n\t\t\t\t\t\t\t\t\t//set active menu section based on selected group\n\t\t\t\t\t\t\t\t\tuseEffect(() => {\n\t\t\t\t\t\t\t\t\t\tif (megaMenuItems.length > 0) {\n\t\t\t\t\t\t\t\t\t\t\tNullable.of(megaMenuControllerRef.current).run((controller) => {\n\t\t\t\t\t\t\t\t\t\t\t\tcontroller.setActiveSection(instrumentSearchController.selectedGroup || 'All');\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}, [megaMenuItems, instrumentSearchController.selectedGroup]);\n\n\t\t\t\t\t\t\t\t\t//create mega menu props and render mega menu\n\t\t\t\t\t\t\t\t\tconst megaMenuProps = {\n\t\t\t\t\t\t\t\t\t\tcontrollerRef: megaMenuControllerRef,\n\t\t\t\t\t\t\t\t\t\tstyleConfig: {\n\t\t\t\t\t\t\t\t\t\t\tcontainerProps: {\n\t\t\t\t\t\t\t\t\t\t\t\tclassName: cn(styles.menuPanel),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tmenuProps: {\n\t\t\t\t\t\t\t\t\t\t\t\tclassName: cn(styles.groupPanel),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tmenuItemProps: {\n\t\t\t\t\t\t\t\t\t\t\t\t//className: cn(styles.groupItem)\n\t\t\t\t\t\t\t\t\t\t\t\tclassName: cn(styles.itemContainer),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tmenuItemSelectedProps: {\n\t\t\t\t\t\t\t\t\t\t\t\t//className: cn(styles.groupItemSelected)\n\t\t\t\t\t\t\t\t\t\t\t\tclassName: cn(styles.itemContainer),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tcontentProps: {\n\t\t\t\t\t\t\t\t\t\t\t\tclassName: cn(styles.instrumentPanel),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tdata: megaMenuItems as unknown as MegaMenu['props']['data'],\n\t\t\t\t\t\t\t\t\t} as unknown as MegaMenu['props'];\n\t\t\t\t\t\t\t\t\treturn <>{megaMenuItems.length > 0 && };\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\n\t);\n});\n\nexport default InstrumentSearch;\n","import React, { useState, createContext } from 'react';\n\nexport enum NotificationType {\n\talert = 'ALERT',\n\tinfo = 'INFO',\n}\n\nexport interface INotification {\n\ttimestamp: string;\n\ttype: NotificationType;\n\tcontent: JSX.Element | JSX.Element[] | string | any;\n\taction: any;\n}\nexport interface IComunnityItem {\n\ttimestamp: string;\n\ttype: NotificationType;\n\tcontent: JSX.Element | JSX.Element[] | string | any;\n\taction: any;\n}\n\ninterface INotificationsContext {\n\tnotifications: INotification[];\n\taddNotifications: (newValues: INotification[]) => void;\n\tresetNotifications: () => void;\n}\n\ninterface IProviderProps {\n\tchildren?: React.ReactNode;\n\t// children?: JSX.Element | JSX.Element[] | null | boolean;\n}\n\nconst defaultContext: INotificationsContext = {\n\tnotifications: [],\n\taddNotifications: (_: INotification[]) => {},\n\tresetNotifications: () => {},\n};\n\nexport const NotificationsContext = createContext(defaultContext);\n\nconst NotificationsContextProvider = ({ children }: IProviderProps) => {\n\tconst [notifications, setNotifications] = useState(defaultContext.notifications);\n\n\tconst addNotifications = (newValues: INotification[]) => {\n\t\tsetNotifications((prevValues) => [...prevValues, ...newValues]);\n\t};\n\n\tconst resetNotifications = () => {\n\t\tsetNotifications([]);\n\t};\n\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n\nexport default NotificationsContextProvider;\n","import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport cn from 'classnames';\n\nimport styles from './NotificationsIcon.module.scss';\n\ninterface NotificationsIconProps {\n\topen: boolean;\n\tmessageCount: number;\n}\n\nconst NotificationsIcon = ({ open, messageCount }: NotificationsIconProps) => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t{messageCount > 0 &&
{messageCount}
}\n\t\t\n\t);\n};\n\nexport default NotificationsIcon;\n","import React from 'react';\n\nimport cn from 'classnames';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { IconProp } from '@fortawesome/fontawesome-svg-core';\n\nimport { INotification, NotificationType } from '../../../../../contexts/NotificationsContext';\n\nimport styles from './NotificationsItem.module.scss';\n\nconst NotificationsItem = ({ notification }: { notification: INotification }) => {\n\tconst IconMap: Record = {\n\t\t[NotificationType.alert]: ['far', 'exclamation-triangle'],\n\t\t[NotificationType.info]: ['far', 'sparkles'],\n\t};\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
{notification.content}
\n\t\t\t
\n\t\t\t{notification.action}\n\t\t
\n\t);\n};\n\nexport default NotificationsItem;\n","import React, { useEffect, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { INotification } from '../../../../../contexts/NotificationsContext';\n// import cn from 'classnames';\nimport uniqueId from '../../../../../utils/functions/uniqueId';\n\nimport emptyListIcon from '../../../../../images/empty-notification-list.svg';\nimport NotificationsItem from '../NotificationsItem';\n\nimport styles from './NotificationsList.module.scss';\n\ninterface INotificationsList {\n\tnotifications: INotification[];\n}\n\nconst NotificationsList = ({ notifications }: INotificationsList) => {\n\tconst { t } = useTranslation();\n\tconst hasNotifications = notifications.length > 0;\n\tconst notificationRef = useRef(null);\n\n\tuseEffect(() => {\n\t\tif (!notificationRef.current) return;\n\t}, [notificationRef]);\n\n\treturn (\n\t\t
\n\t\t\t
{t('wtr:NOTIFICATION_POPUP_TITLE')}
\n\t\t\t
\n\t\t\t\t{!hasNotifications && (\n\t\t\t\t\t
\n\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t

{t('wtr:NOTIFICATION_POPUP_EMPTY_TEXT')}

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

{t('wtr:NOTIFICATION_POPUP_EMPTY_SUBTEXT')}

\n\t\t\t\t\t
\n\t\t\t\t)}\n\n\t\t\t\t{hasNotifications && (\n\t\t\t\t\t
\n\t\t\t\t\t\t{notifications.map((notification) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default NotificationsList;\n","import React, { useContext, useEffect, useState } from 'react';\n\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport { useHistory } from 'react-router-dom';\n\nimport AppContext from '../../../contexts/AppContext';\nimport { NotificationsContext, NotificationType } from '../../../contexts/NotificationsContext';\n\nimport WtrPopup from '../WtrPopup/WtrPopup';\n\nimport DashboardContext from '../../../contexts/DashboardContext';\n\nimport { AppComponentType, ApplicationStatus } from '../../../utils/functions/enums';\n\nimport Button from '../../../shared/Button/Button';\n\nimport Routes from '../../../setup/routes';\n\nimport accountStatusStore from '../../../store/accountStatusStore';\n\nimport authStore from '../../../store/authStore';\n\nimport UserNotificationsIcon from './components/NotificationsIcon/NotificationsIcon';\nimport UserNotificationsList from './components/NotificationsList/NotificationsList';\nimport styles from './Notifications.module.scss';\nimport cn from 'classnames';\n\ninterface NotificationsProps {\n\topenNotifications: boolean;\n\tsetOpenNotifications: (accountPopup: boolean) => void;\n}\n\nconst Notifications: React.FC = ({ openNotifications, setOpenNotifications }) => {\n\tconst { notifications, addNotifications } = useContext(NotificationsContext);\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst { isArabic } = appContext;\n\tconst { t } = useTranslation();\n\tconst history = useHistory();\n\n\tconst isLiveMode = authStore.use.isLiveMode();\n\tconst isJapanAccount = authStore.use.isJapanAccount();\n\n\tconst hasLiveAccount = accountStatusStore.use.hasLiveAccount();\n\tconst permissions = accountStatusStore.use.permissions();\n\tconst applicationStatus = accountStatusStore.use.checkApplicationStatus();\n\n\tconst notificationBell = permissions?.notificationBell;\n\n\tconst isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\n\tconst shouldDisplayNotifications =\n\t\t!isJapanAccount &&\n\t\tisLiveMode &&\n\t\thasLiveAccount &&\n\t\tapplicationStatus !== ApplicationStatus.APPROVED &&\n\t\tapplicationStatus !== ApplicationStatus.PENDING_REVIEW;\n\n\tconst handleRedirect = () => {\n\t\tsetOpenNotifications(false);\n\t\tdashboardContext.presentComponentType = AppComponentType.OpenAccount;\n\t\thistory.push(Routes.trader.openAccount, { from: window.location.pathname });\n\t};\n\tuseEffect(() => {\n\t\tif (shouldDisplayNotifications) {\n\t\t\taddNotifications([\n\t\t\t\t{\n\t\t\t\t\ttimestamp: '',\n\t\t\t\t\ttype: NotificationType.alert,\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t),\n\t\t\t\t\taction: (\n\t\t\t\t\t\t\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t]);\n\t\t}\n\t}, [shouldDisplayNotifications]);\n\n\tif (!notificationBell && !isJapanAccount) return null;\n\n\treturn (\n\t\t<>\n\t\t\t setOpenNotifications(true)}\n\t\t\t\tonClose={() => setOpenNotifications(false)}\n\t\t\t\tclassName={cn(styles.marginRight, isSafari && styles.marginRightSafari)}\n\t\t\t\tposition={isArabic ? 'bottom right' : 'bottom left'}\n\t\t\t\tbasic\n\t\t\t\ttrigger={\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t}\n\t\t\t\tcontent={}\n\t\t\t/>\n\t\t\n\t);\n};\n\nexport default Notifications;\n","import React, { useContext, useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { useHistory } from 'react-router-dom';\nimport jwt from 'jsonwebtoken';\n\nimport cn from 'classnames';\n\nimport AppContext from '../../../../../contexts/AppContext';\nimport Routes from '../../../../../setup/routes';\n\nimport authStore from '../../../../../store/authStore';\n\nimport DashboardContext from '../../../../../contexts/DashboardContext';\nimport { AppComponentType } from '../../../../../utils/functions/enums';\n\nimport { useCountryPrivacyPolicy } from '../../../../../utils/hooks/useCountryPrivacyPolicy';\n\nimport styles from './CommunityList.module.scss';\n\ninterface ICommunityList {\n\thandleToggleOpen: (e?: React.PointerEvent) => void;\n}\n\nconst CommunityList = ({ handleToggleOpen }: ICommunityList) => {\n\tconst appContext = useContext(AppContext);\n\tconst { t } = useTranslation();\n\tconst history = useHistory();\n\tconst upvoty = useRef();\n\tconst communityRef = useRef(null);\n\tconst dashboardContext = useContext(DashboardContext);\n\n\tconst [upvotyLink, setUpvotyLink] = useState('');\n\tconst userProfile = authStore.use.userProfile();\n\t\n\tconst isJapanAccount = authStore.use.isJapanAccount();\n\n\tconst privacyPolicyLink = useCountryPrivacyPolicy();\n\tconst accountAvatar = authStore.use.accountAvatar();\n\t\n\tconst privateKey = process.env.REACT_APP_UPVOTY_URL_PUBLICKEY ? process.env.REACT_APP_UPVOTY_URL_PUBLICKEY.toString() : '';\n\n\tuseEffect(() => {\n\t\tconst payload = {\n\t\t\tid: `${userProfile.id}`,\n\t\t\tname: `${userProfile.fullName}`,\n\t\t\temail: `${userProfile.email}`,\n\t\t\tavatar: `${process.env.REACT_APP_UPVOTY_URL_IMAGE_PATH}${accountAvatar}.svg`\n\t\t};\n\t\t\n\t\tconst token = jwt.sign(payload, privateKey, {\n\t\t\t'issuer': `${process.env.REACT_APP_UPVOTY_URL_ISSUER?.toString()}`,\n\t\t\t'audience': `${process.env.REACT_APP_UPVOTY_URL_AUDIENCE?.toString()}`,\n\t\t\t'algorithm': \"HS256\"\n\t\t});\n\t\t\n\t\tconst redirectUri = `${process.env.REACT_APP_UPVOTY_URL_REDIRECT?.toString()}`;\n\t\tsetUpvotyLink(`${redirectUri}/?custom_sso_token=${token}`);\n\t\t\n\t}, [userProfile, privateKey]);\n\n\tconst handleClickOutside = (event: any) => {\n\t\tif (communityRef.current && !communityRef.current.contains(event.target)) {\n\t\t\thandleToggleOpen();\n\t\t}\n\t};\n\n\tconst handleKeyPress = (event: KeyboardEvent) => {\n\t\tif (event.key === 'Escape') {\n\t\t\thandleToggleOpen();\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tdocument.addEventListener('click', handleClickOutside);\n\t\tdocument.addEventListener('keydown', handleKeyPress);\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('click', handleClickOutside);\n\t\t\tdocument.removeEventListener('keydown', handleKeyPress);\n\t\t};\n\t}, []);\n\n\tconst handleAcademyClick = () => {\n\t\thandleToggleOpen();\n\t\tif (isJapanAccount) {\n\t\t\tdashboardContext.userGuide = true;\n\t\t\treturn;\n\t\t}\n\t\tdashboardContext.presentComponentType = AppComponentType.Tutorials;\n\t\thistory.push(Routes.trader.tutorials);\n\t};\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{isJapanAccount ? t('en:USER_GUIDE') : 'Think Academy'}

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\n\t\t\t\t\t{!isJapanAccount && (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\twindow.open(upvotyLink, '_blank');\n\t\t\t\t\t\t\t\thandleToggleOpen();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

{t('en:COMMUNITY_TITLE')}

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tappContext.feedbackModal = true;\n\t\t\t\t\t\t\thandleToggleOpen();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{t('wtr:WTR_NAVIGATION_FEEDBACK')}

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t {\n\t\t\t\t\t\t\tappContext.contactModal = true;\n\t\t\t\t\t\t\thandleToggleOpen();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{t('en:NAVIGATION_CONTACTUS')}

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t {\n\t\t\t\t\t\t\twindow.open(privacyPolicyLink, '_blank', 'noopener,noreferrer');\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{t('en:PRIVACY_POLICY')}

\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default CommunityList;","import { useContext } from 'react';\n\nimport AppContext from '../../contexts/AppContext';\nimport DashboardContext from '../../contexts/DashboardContext';\nimport { TAccountStats } from '../../gateways/TfboGateway/TfboGateway.types';\n\nimport useSelectedTradingAccount from './useSelectedTradingAccount';\n\nexport const useCountryPrivacyPolicy = (): string => {\n\tlet organizationName: string = '';\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\n\tconst account = useSelectedTradingAccount();\n\t// Define the organization name\n\tif (appContext && dashboardContext && account) {\n\t\tlet result = appContext.accountStats.find(\n\t\t\t(data: TAccountStats) => data.account.accountNumber === +account.providerAccountId\n\t\t);\n\t\torganizationName = result?.account?.organization?.name ?? '';\n\t}\n\n\tswitch (organizationName) {\n\t\tcase 'AU':\n\t\t\treturn 'https://www.thinkmarkets.com/au/support/legal-and-regulation/privacy-policy/';\n\t\tcase 'UK':\n\t\t\treturn 'https://www.thinkmarkets.com/uk/support/legal-and-regulation/privacy-policy/';\n\t\tcase 'TMCY':\n\t\t\treturn 'https://www.thinkmarkets.com/eu/support/legal-and-regulation/privacy-policy/';\n\t\tcase 'TFSA':\n\t\t\treturn 'https://www.thinkmarkets.com/za/support/legal-and-regulation/privacy-policy/';\n\t\tcase 'TMJP':\n\t\t\treturn 'https://www.thinkmarkets.jp/support/legal-and-regulation/pip/';\n\t\tcase 'TMNZ':\n\t\t\treturn 'https://www.thinkmarkets.com/nz/support/legal-and-regulation/privacy-policy/';\n\t\tdefault:\n\t\t\treturn 'https://www.thinkmarkets.com/en/support/legal-and-regulation/privacy-policy/';\n\t}\n};\n","import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport cn from 'classnames';\n\nimport styles from './CommunityIcon.module.scss';\n\ninterface CommunityIconProps {\n\topen: boolean;\n\tonClick: (e?: React.PointerEvent) => void;\n}\n\nconst CommunityIcon = ({ open, onClick }: CommunityIconProps) => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default CommunityIcon;\n","import React, {useCallback, useContext, useState} from 'react';\n\nimport AppContext from '../../../contexts/AppContext';\n\nimport WtrPopup from '../WtrPopup/WtrPopup';\n\nimport CommunityList from './components/CommunityList/CommunityList';\nimport CommunityIcon from './components/CommunityIcon/CommunityIcon';\n\nconst Community = () => {\n\tconst appContext = useContext(AppContext);\n\tconst { isArabic } = appContext;\n\n\tconst [open, setOpen] = useState(false);\n\n\tconst handleToggleOpen = useCallback((e?: React.PointerEvent) => {\n\t\tif (e) {\n\t\t\te.stopPropagation();\n\t\t}\n\t\tsetOpen(!open);\n\t}, [open]);\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tcontent={}\n\t\t\t/>\n\t\t\n\t);\n};\n\nexport default Community;\n","import React, { useContext, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { DropdownProps } from 'semantic-ui-react';\n\nimport cn from 'classnames';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { getEnabledLangOptions } from '../../../Settings/settingsOptions';\nimport { isProduction } from '../../../../../../setup/config';\nimport LangSelect from '../../../../../components/LangSelect/LangSelect';\n\nimport authStore from '../../../../../../store/authStore';\n\nimport AppContext from '../../../../../../contexts/AppContext';\n\nimport { TThemeSetting } from '../../../../../../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\nimport useSaveUserPreferences from '../../../../../../utils/mutations/useSaveUserPreferences';\nimport { useFillContextsFromPreferences } from '../../../../../../utils/hooks/preferences/useFillContextsFromPreferences';\n\nimport styles from './SettingsModule.module.scss';\n\ninterface platformSettingsProps {\n\tsettings: any;\n\tsetOpenSettings: (v: boolean) => void;\n\thandleCloseModal: (v: boolean) => void;\n}\n\nconst PlatformSettings: React.FC = ({ settings, setOpenSettings, handleCloseModal }) => {\n\tconst { t } = useTranslation();\n\tconst appContext = useContext(AppContext);\n\tconst { mutate: savePreferences } = useSaveUserPreferences();\n\tconst [theme, setTheme] = useState(appContext.userPreferences!.user_prefs.platform.theme._type);\n\tconst fillContextsFromPreferences = useFillContextsFromPreferences();\n\n\tconst isJapanAccount = authStore.use.isJapanAccount();\n\n\tconst enabledLangOptions = getEnabledLangOptions(isProduction && isJapanAccount ? ['ja'] : []);\n\n\tconst handleLanguage = async (_event: React.SyntheticEvent, { value }: DropdownProps) => {\n\t\tconst initialSettingLanguage = appContext.userPreferences!.user_prefs.platform.lang;\n\t\tif (typeof value === 'string') {\n\t\t\tlocalStorage.setItem('language', value);\n\t\t\tawait savePreferences();\n\n\t\t\tif (initialSettingLanguage._name !== value) {\n\t\t\t\twindow.location.reload();\n\t\t\t}\n\n\t\t\tfillContextsFromPreferences(appContext.userPreferences!);\n\t\t}\n\t};\n\n\tconst handleThemeSwitch = async (value: string) => {\n\t\tlet invertedSetting: TThemeSetting;\n\n\t\tswitch (value) {\n\t\t\tcase 'Light':\n\t\t\t\tappContext.userPreferences!.user_prefs.platform.theme = { _type: 'Light' };\n\n\t\t\t\tsetTheme('Light');\n\t\t\t\tinvertedSetting = { _type: 'Light' };\n\t\t\t\tbreak;\n\t\t\tcase 'System':\n\t\t\t\tappContext.userPreferences!.user_prefs.platform.theme = { _type: 'System' };\n\t\t\t\tsetTheme('System');\n\n\t\t\t\tinvertedSetting = { _type: 'System' };\n\t\t\t\tbreak;\n\t\t\tcase 'Dark':\n\t\t\tdefault:\n\t\t\t\tappContext.userPreferences!.user_prefs.platform.theme = { _type: 'Dark' };\n\n\t\t\t\tsetTheme('Dark');\n\t\t\t\tinvertedSetting = { _type: 'Dark' };\n\t\t\t\tbreak;\n\t\t}\n\t\tawait savePreferences();\n\t\tfillContextsFromPreferences(appContext.userPreferences!);\n\t\tappContext.userPreferences!.user_prefs.platform.theme = invertedSetting;\n\t\tsavePreferences();\n\t};\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t
{t('wtr:PLATFORM')}
\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
{t('en:LANGUAGE')}
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
{t('en:THEME')}
\n\t\t\t\t\t
\n\t\t\t\t\t\t handleThemeSwitch('Light')}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t {}} />\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t handleThemeSwitch('Dark')}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t {}} />\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t handleThemeSwitch('System')}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t {}} />\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\n\n\t\t\t\t
\n\t\t\t\t\t
{t('wtr:CURRENT_VERSION')}
\n\t\t\t\t\t
{process.env.REACT_APP_VERSION}
\n\t\t\t\t
\n\t\t\t\n\t\t\n\t);\n};\n\nexport default PlatformSettings;\n","export const isPasswordSingleDigit = (value: string) => /\\d/.test(value) && !!value?.length;\nexport const isPasswordValidLength = (value: string) => value?.length >= 8 && value?.length <= 30;\nexport const isPasswordSingleLetter = (value: string) => /[a-z]/.test(value) && !!value?.length;\nexport const isPasswordSingleUpperLetter = (value: string) => /[A-Z]/.test(value) && !!value?.length;\nexport const isPasswordSpecialCharacters = (value: string) =>\n\t/[(@!?~`\"&',/:;<>#\\$%\\^\\&*\\)\\|\\{\\}\\\\\\[\\]\\(+=._-]{1,}/.test(value);\nexport const isPasswordLowercaseLetter = (value: string) => /[a-z]/.test(value) && !!value?.length;\n\nexport const isPasswordValid = (value: string) =>\n\tisPasswordSingleDigit(value) &&\n\tisPasswordValidLength(value) &&\n\tisPasswordSingleLetter(value) &&\n\tisPasswordSingleUpperLetter(value) &&\n\tisPasswordSpecialCharacters(value) &&\n\tisPasswordLowercaseLetter(value);\n// /[a-zA-Z0-9!\"#$%&'()*+,-./:;<=>?@[\\\\\\]_`{|}~]*$/\n","import { useQuery } from '@tanstack/react-query';\nimport axios from 'axios';\n\nconst useGetMFAEnabled = () => {\n\tconst queryKey = ['useGetMFAEnabled'];\n\n\tconst queryFn = async () => {\n\t\ttry {\n\t\t\tconst response = await axios({\n\t\t\t\turl: '/user/tfa/status',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn response.data.status === 'ENABLED'\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\treturn useQuery({ queryKey, queryFn });\n};\n\nexport default useGetMFAEnabled;\n","import React from 'react';\nimport { Radio } from 'semantic-ui-react';\n\nimport authStore, { AuthStore } from '../../../../../../store/authStore';\n\nimport useGetMFAEnabled from '../../../../../../utils/queries/useGetMFAEnabled';\n\nconst MFAManagement = ({ setOpenSettings }: { setOpenSettings: (open: boolean) => void }) => {\n\tconst { isLoading, data: isMFAEnabled } = useGetMFAEnabled();\n\n\tconst setSetupMFA = authStore((store: AuthStore) => store.setSetupMFA);\n\n\tconst setDisableMFA = authStore((store: AuthStore) => store.setDisableMFA);\n\n\tconst toggleMFA = () => {\n\t\tif (isMFAEnabled) {\n\t\t\tsetDisableMFA(true);\n\t\t} else {\n\t\t\tsetSetupMFA(true);\n\t\t}\n\n\t\tsetOpenSettings(false);\n\t};\n\n\tif (isLoading) return null;\n\treturn ;\n\n};\n\nexport default MFAManagement;\n","import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { DropdownProps } from 'semantic-ui-react';\n\nimport { useTranslation } from 'react-i18next';\n\nimport cn from 'classnames';\n\nimport AppContext from '../../../../../../contexts/AppContext';\nimport {\n\tisPasswordValidLength,\n\tisPasswordLowercaseLetter,\n\tisPasswordSpecialCharacters,\n\tisPasswordSingleUpperLetter,\n\tisPasswordSingleDigit,\n} from '../../../../../../utils/functions/passwordValidation';\n\nimport WtrDropdown from '../../../../../components/WtrDropdown/WtrDropdown';\nimport { getInactivityLogoutOptions } from '../../../Settings/settingsOptions';\nimport { useFillContextsFromPreferences } from '../../../../../../utils/hooks/preferences/useFillContextsFromPreferences';\nimport useSaveUserPreferences from '../../../../../../utils/mutations/useSaveUserPreferences';\n\nimport MFAManagement from './MFAManagement';\nimport styles from './SettingsModule.module.scss';\nimport LangSelect from '../../../../../components/LangSelect/LangSelect';\nimport useGetMFAEnabled from '../../../../../../utils/queries/useGetMFAEnabled';\n\ninterface paswordValidations {\n\tvalidSatisfied: boolean;\n\tlowercaseSatisfied: boolean;\n\tuppercaseSatisfied: boolean;\n\tdigitSatisfied: boolean;\n\tspecialSatisfied: boolean;\n}\ninterface securitySettingsProps {\n\thandleUpdatePasswordSettings: (values: Record) => void;\n\tsetDisabled: (value: boolean) => void;\n\thandleCloseModal: (value: boolean) => void;\n\tsetOpenSettings: (value: boolean) => void;\n\tisMFAEnabled: boolean;\n}\n\nconst SecuritySettings: React.FC = ({\n\thandleCloseModal,\n\tsetDisabled,\n\tsetOpenSettings,\n\thandleUpdatePasswordSettings,\n\tisMFAEnabled,\n}) => {\n\tconst appContext = useContext(AppContext);\n\t// const { isLoading, data: isMFAEnabled } = useGetMFAEnabled();\n\n\tconst { t } = useTranslation();\n\n\tconst [invalid, setInvalid] = useState(false);\n\tconst [dontMatch, setDontMatch] = useState(false);\n\tconst [errorMessage, setErrorMessage] = useState(false);\n\tconst [inactivityLogout, setInactivityLogout] = useState(\n\t\tappContext.userPreferences!.user_prefs.platform.inactivity.toString() || ''\n\t);\n\tconst [showPasswordPopup, setShowPasswordPopup] = useState(false);\n\tconst [currentPassword, setCurrentPassword] = useState('');\n\tconst [newPassword, setNewPassword] = useState('');\n\tconst [confirmPassword, setConfirmPassword] = useState('');\n\tconst [passwordValidations, setPasswordValidations] = useState({\n\t\tvalidSatisfied: false,\n\t\tlowercaseSatisfied: false,\n\t\tuppercaseSatisfied: false,\n\t\tdigitSatisfied: false,\n\t\tspecialSatisfied: false,\n\t});\n\tconst fillContextsFromPreferences = useFillContextsFromPreferences();\n\tconst { mutate: savePreferences } = useSaveUserPreferences();\n\n\tconst isNewPasswordValid = (value: string) => {\n\t\tvalue !== '' &&\n\t\t\tsetPasswordValidations({\n\t\t\t\t...passwordValidations,\n\t\t\t\tvalidSatisfied: isPasswordValidLength(value),\n\t\t\t\tlowercaseSatisfied: isPasswordLowercaseLetter(value),\n\t\t\t\tuppercaseSatisfied: isPasswordSingleUpperLetter(value),\n\t\t\t\tdigitSatisfied: isPasswordSingleDigit(value),\n\t\t\t\tspecialSatisfied: isPasswordSpecialCharacters(value),\n\t\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tif (confirmPassword === newPassword && newPassword !== '' && confirmPassword !== '') {\n\t\t\tsetDontMatch(false);\n\n\t\t\tif (\n\t\t\t\t!passwordValidations.validSatisfied ||\n\t\t\t\t!passwordValidations.lowercaseSatisfied ||\n\t\t\t\t!passwordValidations.uppercaseSatisfied ||\n\t\t\t\t!passwordValidations.digitSatisfied ||\n\t\t\t\t!passwordValidations.specialSatisfied\n\t\t\t) {\n\t\t\t\tsetErrorMessage(true);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t!passwordValidations.validSatisfied &&\n\t\t\t\t!passwordValidations.lowercaseSatisfied &&\n\t\t\t\t!passwordValidations.uppercaseSatisfied &&\n\t\t\t\t!passwordValidations.digitSatisfied &&\n\t\t\t\t!passwordValidations.specialSatisfied\n\t\t\t) {\n\t\t\t\tsetInvalid(true);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tpasswordValidations.validSatisfied &&\n\t\t\t\tpasswordValidations.lowercaseSatisfied &&\n\t\t\t\tpasswordValidations.uppercaseSatisfied &&\n\t\t\t\tpasswordValidations.digitSatisfied &&\n\t\t\t\tpasswordValidations.specialSatisfied &&\n\t\t\t\tconfirmPassword === newPassword\n\t\t\t) {\n\t\t\t\tsetDontMatch(false);\n\t\t\t\tsetInvalid(false);\n\t\t\t\tsetErrorMessage(false);\n\t\t\t\tsetDisabled(false);\n\n\t\t\t\thandleUpdatePasswordSettings({\n\t\t\t\t\tcurrentPassword: currentPassword,\n\t\t\t\t\tnewPassword: newPassword,\n\t\t\t\t\tconfirmPassword: confirmPassword,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (confirmPassword !== newPassword) {\n\t\t\tsetDontMatch(true);\n\t\t}\n\n\t\thandleUpdatePasswordSettings({\n\t\t\tcurrentPassword: '',\n\t\t\tnewPassword: '',\n\t\t\tconfirmPassword: '',\n\t\t});\n\t}, [newPassword, currentPassword, confirmPassword]);\n\n\tconst handleInactivityLogout = async (_event: React.SyntheticEvent, { value }: DropdownProps) => {\n\t\tconst intactivityValue = parseInt(`${value}`);\n\t\tif (!isNaN(intactivityValue) && intactivityValue > 0) {\n\t\t\tappContext.userPreferences!.user_prefs.platform.inactivity = intactivityValue;\n\n\t\t\tawait savePreferences();\n\t\t\tfillContextsFromPreferences(appContext.userPreferences!);\n\t\t}\n\t};\n\n\tconst findDefaultInactivity = (value: string) => {\n\t\tconst defaultValue = getInactivityLogoutOptions(t).find((inactivityLogout) => inactivityLogout.value === value);\n\t\treturn defaultValue?.value || '';\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
{t('en:SETTINGS_SECURITY')}
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
{t('wtr:TWO_FACTOR_AUTHENTICATION')}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
{t('wtr:INACTIVITY_LOGOUT')}
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default SecuritySettings;\n","import React, { useContext, useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Radio } from 'semantic-ui-react';\nimport cn from 'classnames';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport AppContext from '../../../../../../contexts/AppContext';\n\nimport DashboardContext from '../../../../../../contexts/DashboardContext';\nimport { TradersGymContext, TradersGymContextType } from '../../../../../../pages/TradersGym/TradersGymContext';\n\nimport WtrSlider from '../../../../../../shared/WtrSlider/WtrSlider';\nimport usePlayNotificationSound from '../../../../../../utils/hooks/usePlayNotificationSound';\n\nimport tradingAccountStore from '../../../../../../store/tradingAccountStore';\n\nimport styles from './SettingsModule.module.scss';\nimport WtrToggle from '../../../../../../shared/WtrToggle/WtrToggle';\nimport useSaveUserPreferences from '../../../../../../utils/mutations/useSaveUserPreferences';\nimport { Resolver } from '../../../../../../utils/functions/Ioc';\nimport RfpGateway from '../../../../../../gateways/RfpGateway/RfpGateway';\nimport { useFillContextsFromPreferences } from '../../../../../../utils/hooks/preferences/useFillContextsFromPreferences';\nimport { QUANTITY_TYPE, QuantityType } from '../../../../../../utils/functions/enums';\nimport Button from '../../../../../../shared/Button';\n\ninterface tradingSettingsProps {\n\tsetSettings: (settings: any) => void;\n\thandleCloseModal: (settings: any) => void;\n\tsetShowInfoModalBackground: (settings: any) => void;\n\tshowInfoModalBackground: boolean;\n\tsettings: any;\n}\n\nconst TradingSettings: React.FC = ({\n\tsettings,\n\tsetSettings,\n\thandleCloseModal,\n\tsetShowInfoModalBackground,\n\tshowInfoModalBackground,\n}) => {\n\tconst { t } = useTranslation();\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst playSound = usePlayNotificationSound();\n\tconst gymContext = useContext(TradersGymContext) as TradersGymContextType;\n\tconst { tradersGymContext } = gymContext;\n\tconst isTradersGymActive = tradersGymContext.isActive;\n\tconst isArabic = appContext.isArabic;\n\tconst isSpreadBettingAccount = tradingAccountStore.use.isSpreadBetting();\n\tconst isOneClickTradingActive = tradingAccountStore.use.isOneClickTradingActive();\n\n\tconst [volumeScale, setVolumeScale] = useState(\n\t\tsettings.notificationSoundVolume || dashboardContext.notificationSoundVolume\n\t);\n\tconst [soundMuted, setSoundMuted] = useState(\n\t\tsettings.notificationSoundMuted === undefined\n\t\t\t? dashboardContext.notificationSoundMuted\n\t\t\t: settings.notificationSoundMuted\n\t);\n\tconst oneClickTrading = dashboardContext.oneClickTrading;\n\tconst divRefArrow = useRef(null);\n\n\tuseEffect(() => {\n\t\tconst handleClickOutside = (event: MouseEvent) => {\n\t\t\tif (divRefArrow.current && !divRefArrow.current.contains(event.target as Node)) {\n\t\t\t\tsetShowInfoModalBackground(false);\n\t\t\t}\n\t\t};\n\t\tdocument.addEventListener('mousedown', handleClickOutside);\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('mousedown', handleClickOutside);\n\t\t};\n\t}, []);\n\n\tconst { mutate: savePreferences } = useSaveUserPreferences();\n\tconst fillContextsFromPreferences = useFillContextsFromPreferences();\n\tconst accountType = dashboardContext.accountType;\n\tconst qunatityTypeButton = appContext.userPreferences!.user_prefs.trading.settings[accountType]!._quantityType;\n\n\tconst handleQuantityTypeChange = (quantityType: string) => {\n\t\tconst RFPConnection = Resolver.resolve(RfpGateway);\n\t\tconst tradingAccount = dashboardContext.tradingAccount;\n\t\tlet updatedQuantityType = 'Amount';\n\n\t\tif (appContext.isJapanAccount) {\n\t\t\tupdatedQuantityType = 'Amount';\n\t\t\tappContext.userPreferences!.user_prefs.trading.settings[accountType]!._quantityType = 'Amount';\n\t\t} else if (quantityType === 'Amount') {\n\t\t\tdashboardContext.quantityType = 'Amount';\n\t\t\tappContext.userPreferences!.user_prefs.trading.settings[accountType]!._quantityType = 'Amount';\n\t\t\tupdatedQuantityType = 'Amount';\n\t\t\tdashboardContext.quantityType = 'Amount';\n\t\t} else if (quantityType === 'Lots') {\n\t\t\tappContext.userPreferences!.user_prefs.trading.settings[accountType]!._quantityType = 'Lots';\n\t\t\tupdatedQuantityType = 'Lots';\n\t\t\tdashboardContext.quantityType = 'Lots';\n\t\t} else {\n\t\t}\n\n\t\tif (tradingAccount.length > 0) {\n\t\t\tlet updatedQuantityType: number;\n\t\t\tif (appContext.isJapanAccount || quantityType === 'Amount') {\n\t\t\t\tupdatedQuantityType = QuantityType.Amount;\n\t\t\t} else {\n\t\t\t\tupdatedQuantityType = QuantityType.Lots;\n\t\t\t}\n\t\t\ttradingAccount.forEach((account) => {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t// Skip gym accounts\n\t\t\t\t\tif (account.accountType === 'GYM') {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tRFPConnection.updateQuantityType(account.id, updatedQuantityType);\n\t\t\t\t}, 1000);\n\t\t\t});\n\t\t}\n\t\tsavePreferences();\n\t\tfillContextsFromPreferences(appContext.userPreferences!);\n\t};\n\n\tconst handleOneClickTradingChange = () => {\n\t\tconst updatedSettings = {\n\t\t\t...settings,\n\t\t\toneClickTrading: !settings.oneClickTrading,\n\t\t};\n\n\t\tappContext.userPreferences!.user_prefs.trading.settings[accountType]!._mode = updatedSettings.oneClickTrading\n\t\t\t? '1-Click'\n\t\t\t: 'Regular';\n\n\t\tsavePreferences();\n\n\t\tfillContextsFromPreferences(appContext.userPreferences!);\n\n\t\tsetSettings(updatedSettings);\n\t\tsetShowInfoModalBackground(false);\n\t};\n\tconst handleTradeFromChart = () => {\n\t\tconst newStateTradeFromChart = !settings.tradeFromChartEnabled;\n\t\tappContext.userPreferences!.user_prefs.trading.settings[accountType]!._tradeFromChartEnabled =\n\t\t\tnewStateTradeFromChart;\n\n\t\tconst updatedSettings = {\n\t\t\t...settings,\n\t\t\ttradeFromChartEnabled: newStateTradeFromChart,\n\t\t};\n\n\t\tdashboardContext.tradeFromChartEnabled = newStateTradeFromChart;\n\n\t\tsavePreferences();\n\n\t\tfillContextsFromPreferences(appContext.userPreferences!);\n\n\t\tsetSettings(updatedSettings);\n\t};\n\n\tconst handleSliderAfterChange = (value: number) => {\n\t\tconst isMuted = value > 0 ? false : true;\n\t\tsetSoundMuted(isMuted);\n\t\tsetVolumeScale(value);\n\t\tappContext.userPreferences!.user_prefs.trading.settings[accountType]!._notificationSoundVolume = value;\n\t\tappContext.userPreferences!.user_prefs.trading.settings[accountType]!._notificationSoundMuted = isMuted;\n\t\tsetSettings({ ...settings, notificationSoundVolume: value, notificationSoundMuted: isMuted });\n\t\tplaySound(isMuted, value);\n\n\t\tsavePreferences();\n\t\tfillContextsFromPreferences(appContext.userPreferences!);\n\t};\n\n\tconst handleSliderChange = (value: number) => {\n\t\tconst isMuted = value > 0 ? false : true;\n\t\tsetSoundMuted(isMuted);\n\t\tsetVolumeScale(value);\n\t\tappContext.userPreferences!.user_prefs.trading.settings[accountType]!._notificationSoundVolume = value;\n\t\tappContext.userPreferences!.user_prefs.trading.settings[accountType]!._notificationSoundMuted = isMuted;\n\n\t\tsavePreferences();\n\t\tfillContextsFromPreferences(appContext.userPreferences!);\n\t};\n\n\tconst handleChangeMute = () => {\n\t\tconst newMuted = !soundMuted;\n\t\tsetSoundMuted(newMuted);\n\t\tappContext.userPreferences!.user_prefs.trading.settings[accountType]!._notificationSoundMuted = newMuted;\n\n\t\tsavePreferences();\n\t\tfillContextsFromPreferences(appContext.userPreferences!);\n\n\t\tplaySound(newMuted, volumeScale);\n\t};\n\n\tconst showConfirmModal = () => {\n\t\tif (settings.oneClickTrading) {\n\t\t\thandleOneClickTradingChange();\n\t\t} else {\n\t\t\tsetShowInfoModalBackground(true);\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t{showInfoModalBackground && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{t('en:ONE_CLICK_TRADING_CONFIG_ACTIVE')}

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tsetShowInfoModalBackground(false);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\t\t\t\t\tisFullWidth={true}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
{t('en:TRADING')}
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{!appContext.isJapanAccount && !isSpreadBettingAccount && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
{t('en:QUANTITY_TYPE')}
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t handleQuantityTypeChange('Amount')}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{t('en:QT_AMOUNT')}
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t handleQuantityTypeChange('Lots')}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\tstyles.quantityButton,\n\t\t\t\t\t\t\t\t\t\tqunatityTypeButton === 'Lots' ? styles.quantityButtonSelected : ''\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{t('en:QT_LOTS')}
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\n\t\t\t\t\t
\n\t\t\t\t\t\t
{t('wtr:ONE_CLICK_TRADING')}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
{t('wtr:CHARTIQ_CHART_TRADE')}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
{t('wtr:NOTIFICATION_SOUND_VOLUME')}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
handleChangeMute()}>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default TradingSettings;\n","import React from 'react';\nimport { getAccountIconOptions } from '../../../Settings/settingsOptions';\nimport authStore from '../../../../../../store/authStore';\n\nconst images: {\n\t[avatar: string]: {\n\t\t[key: string]: string;\n\t};\n} = {\n\tavatars: {\n\t\tavatar1: '/avatars/1.svg',\n\t\tavatar2: '/avatars/2.svg',\n\t},\n};\n\nconst AvatarIcons: React.FC<{ avatarPath: string }> = ({ avatarPath }) => {\n\tconst accountAvatar = authStore.use.accountAvatar();\n\n\tconst findImage = () => {\n\t\tconst currentImage = getAccountIconOptions().find((image) => image.value === accountAvatar);\n\n\t\tif (currentImage) {\n\t\t\treturn currentImage.image.src;\n\t\t}\n\n\t\treturn getAccountIconOptions()[0].image.src;\n\t};\n\treturn \"Avatar\";\n};\n\nexport default AvatarIcons;\n","import { useMutation } from '@tanstack/react-query';\nimport axios from 'axios';\n\nconst useGetPhoneCodesAndFlags = () => {\n\tconst mutationFn = async () => {\n\t\tconst response = await axios({\n\t\t\turl: '',\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t},\n\t\t\tdata: {\n\t\t\t\tpayload: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmodule: 'Utility',\n\t\t\t\t\t\taction: 'getCountries',\n\t\t\t\t\t\tparameters: {\n\t\t\t\t\t\t\tshowUnused: false,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t});\n\t\treturn response.data.payload[0];\n\t};\n\n\treturn useMutation({\n\t\tmutationKey: ['useGetPhoneCodesAndFlags'],\n\t\tmutationFn,\n\t});\n};\n\nexport default useGetPhoneCodesAndFlags;\n","import React, { useContext, useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport cn from 'classnames';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { getAccountIconOptions } from '../../../Settings/settingsOptions';\n\nimport authStore, { UserPhoneNumbersProps, UserProfile } from '../../../../../../store/authStore';\n\nimport AppContext from '../../../../../../contexts/AppContext';\n\nimport useSaveUserPreferences from '../../../../../../utils/mutations/useSaveUserPreferences';\n\nimport { useFillContextsFromPreferences } from '../../../../../../utils/hooks/preferences/useFillContextsFromPreferences';\n\nimport PhoneCodeDropdown from './PhoneCodeDropdown/PhoneCodeDropdown';\n\nimport AvatarIcons from './AvatarIcons';\n\nimport styles from './SettingsModule.module.scss';\nimport useUpdateUserProfile from '../../../../../../utils/queries/useUpdateUserProfile';\nimport useUserProfile from '../../../../../../utils/queries/useUserProfile';\nimport { Resolver } from '../../../../../../utils/functions/Ioc';\nimport RfpGatewayContext from '../../../../../../contexts/RfpGatewayContext';\nimport RfpGateway from '../../../../../../gateways/RfpGateway/RfpGateway';\nimport { RFP } from '../../../../../../gateways/RfpGateway/rfpConstants';\nimport useGetPhoneCodesAndFlags from '../../../../../../utils/mutations/useGetPhoneCodesAndFlags';\n\ninterface platformSettingsProps {\n\tsettings: any;\n\tsetOpenSettings: (v: boolean) => void;\n\thandleCloseModal: (v: boolean) => void;\n}\n\nenum HandleChangeTypes {\n\tAccountAvatar = 'accountAvatar',\n\tPhoneNumber = 'phoneNumber',\n\tSecondPhoneNumber = 'SecondPhoneNumber',\n}\n\ninterface ChangePhoneState extends Partial {\n\tphone: string;\n\tphoneCountryCode: number;\n\tmobile: string;\n\tmobileCountryCode: number;\n\tpage?: string;\n}\n\ntype WithdrawCryptoState = {\n\tquery: string;\n\tamount: string;\n\tcryptoId: number;\n\tprocessorName: string;\n\taddress: string;\n};\n\nconst ProfileSettings: React.FC = ({ settings, setOpenSettings, handleCloseModal }) => {\n\tconst { t } = useTranslation();\n\tconst userProfile = authStore.use.userProfile();\n\t// const setPhoneNumbers = authStore.use.setPhoneNumbers();\n\t// const userPhoneNumbers = authStore.use.userPhoneNumbers();\n\tconst dropdownOptionsRef = useRef(null);\n\tconst [openImgModal, setOpenImgModal] = useState(false);\n\tconst [imgModal, setImgModal] = useState(0);\n\tconst setAccountAvatar = authStore.use.setAccountAvatar();\n\tconst accountAvatar = authStore.use.accountAvatar();\n\tconst setUserProfile = authStore.use.setUserProfile();\n\tconst isDemoMode = authStore.use.isDemoMode();\n\tconst [errorMessage, setErrorMessage] = useState(false);\n\tconst [changeInPhone, setChangeInPhone] = useState(false);\n\tconst [changeInPhoneSecond, setChangeInPhoneSecond] = useState(false);\n\tconst [isLoadingSaveData, setIsLoadingSaveData] = useState(false);\n\tconst restOfTheWorldCode = 'XX';\n\tconst rfpGatewayConnection = Resolver.resolve(RfpGateway);\n\tconst appContext = useContext(AppContext);\n\tconst fillContextsFromPreferences = useFillContextsFromPreferences();\n\tconst avatarFromPrefs = appContext.userPreferences!.user_prefs.platform.accountAvatar;\n\n\t// const [phoneNumber, setPhoneNumber] = useState('');\n\t// const [phoneCode, setPhoneCode] = useState('');\n\t// const [phoneNumberSecond, setPhoneNumberSecond] = useState('');\n\t// const [phoneCodeSecond, setPhoneCodeSecond] = useState('');\n\n\t// const { mutate: updateProfile } = useUpdateUserProfile();\n\tconst { mutate: savePreferences } = useSaveUserPreferences();\n\tconst {\n\t\tdata,\n\t\tisLoading: isLoadingFlagsAndCodes,\n\t\tisError,\n\t\tmutate: fetchPhoneCodesAndFlags,\n\t} = useGetPhoneCodesAndFlags();\n\n\t// const handleSavePhoneCode = (phoneCodeType: string, phoneCode: string) => {\n\t// \t// Create a new object based on the current userPhoneNumbers state\n\t// \tconst updatedPhoneNumbers: UserPhoneNumbersProps = {\n\t// \t\t...userPhoneNumbers,\n\t// \t\tphoneCountryCode: phoneCodeType === 'phoneCode' ? phoneCode : userPhoneNumbers.phoneCountryCode,\n\t// \t\tmobileCountryCode: phoneCodeType === 'phoneCodeSecond' ? phoneCode : userPhoneNumbers.mobileCountryCode,\n\t// \t};\n\n\t// \tsetPhoneNumbers(updatedPhoneNumbers);\n\n\t// \thandleUploadPhoneNumber(updatedPhoneNumbers, true);\n\t// };\n\n\t// useEffect(() => {\n\t// \tsetPhoneNumber(userPhoneNumbers.phone || userProfile?.phone?.phone || '');\n\t// \tsetPhoneCode(userPhoneNumbers.phoneCountryCode || userProfile?.phone?.phoneCountryCode || '');\n\t// \tsetPhoneNumberSecond(userPhoneNumbers.mobile || userProfile?.phone?.mobile || '');\n\t// \tsetPhoneCodeSecond(userPhoneNumbers.mobileCountryCode || userProfile?.phone?.mobileCountryCode || '');\n\t// }, [userPhoneNumbers, userProfile.phone]);\n\n\tuseEffect(() => {\n\t\tfetchPhoneCodesAndFlags();\n\t}, [fetchPhoneCodesAndFlags]);\n\n\tconst handleUpdateSettings = async (type: string, value: any) => {\n\t\tif (type === 'accountAvatar') {\n\t\t\tsetImgModal(value);\n\t\t\tsetAccountAvatar(value);\n\t\t\tsetOpenImgModal(false);\n\n\t\t\tappContext.userPreferences!.user_prefs.platform.accountAvatar = value;\n\n\t\t\tawait savePreferences();\n\t\t\tfillContextsFromPreferences(appContext.userPreferences!);\n\t\t}\n\n\t\tif (type === HandleChangeTypes.PhoneNumber) {\n\t\t\tconst phoneNumberState: ChangePhoneState = {\n\t\t\t\tphone: value.phone.number || '',\n\t\t\t\tphoneCountryCode: value.phone.code || 0,\n\t\t\t\tmobile: value.mobile.number || '',\n\t\t\t\tmobileCountryCode: value.mobile.code || 0,\n\t\t\t};\n\t\t}\n\t};\n\n\tconst onClickOpenImgModal = () => {\n\t\tsetOpenImgModal(!openImgModal);\n\t};\n\n\tconst findImage = () => {\n\t\tconst currentImage = getAccountIconOptions().find((image) => image.value === accountAvatar);\n\n\t\tif (currentImage) {\n\t\t\treturn currentImage.image.src;\n\t\t}\n\n\t\treturn getAccountIconOptions()[0].image.src;\n\t};\n\n\t// const handleUploadPhoneNumber = (updatedNumbers: any, phoneCodes?: boolean, dropdownId?: string) => {\n\t// \tsetIsLoadingSaveData(true);\n\n\t// \tlet phone = {};\n\t// \tif (phoneCodes) {\n\t// \t\tphone = {\n\t// \t\t\tphone: updatedNumbers.phone !== '' ? updatedNumbers.phone : phoneNumber,\n\t// \t\t\tphoneCountryCode: updatedNumbers.phoneCountryCode !== '' ? updatedNumbers.phoneCountryCode : phoneCode,\n\t// \t\t\tmobile: updatedNumbers.mobile !== '' ? updatedNumbers.mobile : phoneNumberSecond,\n\t// \t\t\tmobileCountryCode: updatedNumbers.mobileCountryCode !== '' ? updatedNumbers.mobileCountryCode : phoneCodeSecond,\n\t// \t\t};\n\t// \t} else {\n\t// \t\tphone = {\n\t// \t\t\tphone: phoneNumber,\n\t// \t\t\tphoneCountryCode: phoneCode,\n\t// \t\t\tmobile: phoneNumberSecond,\n\t// \t\t\tmobileCountryCode: phoneCodeSecond,\n\t// \t\t};\n\t// \t}\n\n\t// \tconsole.log('phone', phone);\n\n\t// \tupdateProfile(\n\t// \t\t{\n\t// \t\t\tid: userProfile.id,\n\t// \t\t\tfirstName: userProfile.firstName,\n\t// \t\t\tlastName: userProfile.lastName,\n\t// \t\t\tfullName: userProfile.fullName,\n\t// \t\t\temail: userProfile.email,\n\t// \t\t\tcif: userProfile.cif,\n\t// \t\t\ttitle: userProfile.title,\n\t// \t\t\tbrand: userProfile.brand,\n\t// \t\t\tdateOfBirth: userProfile.dateOfBirth,\n\t// \t\t\temploymentStatus: userProfile.employmentStatus,\n\t// \t\t\tcountry: {\n\t// \t\t\t\tid: userProfile.country.id,\n\t// \t\t\t\tname: userProfile.name,\n\t// \t\t\t\tcode2: userProfile.country.code2,\n\t// \t\t\t\tcode3: userProfile.countrycode3,\n\t// \t\t\t\tphoneCode: phoneCode,\n\t// \t\t\t\torganization: {\n\t// \t\t\t\t\tid: userProfile.organization.id,\n\t// \t\t\t\t\tname: userProfile.organization.name,\n\t// \t\t\t\t\tguid: userProfile.organization.guid,\n\t// \t\t\t\t\tdefaultLeverage: userProfile.organization.defaultLeverage,\n\t// \t\t\t\t},\n\t// \t\t\t\tlegacyOrganization: {\n\t// \t\t\t\t\tid: userProfile.country.legacyOrganization.id,\n\t// \t\t\t\t\tname: userProfile.country.legacyOrganization.name,\n\t// \t\t\t\t\tguid: userProfile.country.legacyOrganization.guid,\n\t// \t\t\t\t\tdefaultLeverage: userProfile.country.legacyOrganization.defaultLeverage,\n\t// \t\t\t\t},\n\t// \t\t\t\tcTraderCountryId: userProfile.country.cTraderCountryId,\n\t// \t\t\t\tused: userProfile.country.used,\n\t// \t\t\t\teuropean: userProfile.country.european,\n\t// \t\t\t\tisRequireEnglishNames: userProfile.country.isRequireEnglishNames,\n\t// \t\t\t},\n\n\t// \t\t\taddress: userProfile.address,\n\t// \t\t\tphone: {\n\t// \t\t\t\t...phone,\n\t// \t\t\t},\n\t// \t\t\tclassification: userProfile.classification,\n\t// \t\t\tpartnerStatus: userProfile.partnerStatus,\n\t// \t\t\tthinkTraderEULA: userProfile.thinkTraderEULA,\n\t// \t\t\tapproved: userProfile.approved,\n\t// \t\t\tidNumber: userProfile.idNumber,\n\t// \t\t\tnationality: {\n\t// \t\t\t\tid: userProfile.nationality.id,\n\t// \t\t\t\tname: userProfile.nationality.name,\n\t// \t\t\t\tcode2: userProfile.nationality.code2,\n\t// \t\t\t\tcode3: userProfile.nationality.code3,\n\t// \t\t\t\tphoneCode: phoneCode,\n\t// \t\t\t\torganization: {\n\t// \t\t\t\t\tid: userProfile.nationality.organization.id,\n\t// \t\t\t\t\tname: userProfile.nationality.organization.name,\n\t// \t\t\t\t\tguid: userProfile.nationality.organization.guid,\n\t// \t\t\t\t\tdefaultLeverage: userProfile.nationality.organization.defaultLeverage,\n\t// \t\t\t\t},\n\t// \t\t\t},\n\n\t// \t\t\tvisitorId: userProfile.visitorId,\n\t// \t\t\tmaxDemoAccounts: userProfile.maxDemoAccounts,\n\t// \t\t\ttwoFAenabled: userProfile.twoFAenabled,\n\t// \t\t\tadditionalAttributes: userProfile.additionalAttributes,\n\t// \t\t\tadditionalTaxInfo: userProfile.additionalTaxInfo,\n\t// \t\t\tphoneVerified: userProfile.phoneVerified,\n\t// \t\t\tisADemoAccount: isDemoMode,\n\t// \t\t},\n\t// \t\t{\n\t// \t\t\tonSuccess: async (data: any) => {\n\t// \t\t\t\tsetIsLoadingSaveData(false);\n\n\t// \t\t\t\tif (data.data?.payload[0].status !== 'OK') {\n\t// \t\t\t\t\tsetErrorMessage(true);\n\t// \t\t\t\t} else {\n\t// \t\t\t\t\tsetChangeInPhone(false);\n\t// \t\t\t\t\tsetChangeInPhoneSecond(false);\n\t// \t\t\t\t\tif (phoneCodes) {\n\t// \t\t\t\t\t\tsetPhoneNumbers({\n\t// \t\t\t\t\t\t\tphone: updatedNumbers.phone !== '' ? updatedNumbers.phone : phoneNumber,\n\t// \t\t\t\t\t\t\tphoneCountryCode: updatedNumbers.phoneCountryCode !== '' ? updatedNumbers.phoneCountryCode : phoneCode,\n\t// \t\t\t\t\t\t\tmobile: updatedNumbers.mobile !== '' ? updatedNumbers.mobile : phoneNumberSecond,\n\t// \t\t\t\t\t\t\tmobileCountryCode:\n\t// \t\t\t\t\t\t\t\tupdatedNumbers.mobileCountryCode !== '' ? updatedNumbers.mobileCountryCode : phoneCodeSecond,\n\t// \t\t\t\t\t\t});\n\t// \t\t\t\t\t} else {\n\t// \t\t\t\t\t\tsetPhoneNumbers({\n\t// \t\t\t\t\t\t\tphone: phoneNumber,\n\t// \t\t\t\t\t\t\tphoneCountryCode: phoneCode,\n\t// \t\t\t\t\t\t\tmobile: phoneNumberSecond,\n\t// \t\t\t\t\t\t\tmobileCountryCode: phoneCodeSecond,\n\t// \t\t\t\t\t\t});\n\t// \t\t\t\t\t}\n\t// \t\t\t\t}\n\t// \t\t\t},\n\t// \t\t\tonError: (err) => {\n\t// \t\t\t\tsetIsLoadingSaveData(false);\n\n\t// \t\t\t\tsetErrorMessage(true);\n\t// \t\t\t},\n\t// \t\t}\n\t// \t);\n\t// };\n\n\t// const handleInputChangePhoneNumber = (event: React.ChangeEvent) => {\n\t// \tsetErrorMessage(false);\n\t// \tsetChangeInPhone(true);\n\t// \tlet { value } = event.target;\n\t// \tvalue = value.replace(/\\D/g, '');\n\t// \tsetPhoneNumber(value.toString());\n\t// };\n\n\t// const handleInputChangePhoneNumberSecond = (event: React.ChangeEvent) => {\n\t// \tsetErrorMessage(false);\n\t// \tsetChangeInPhoneSecond(true);\n\t// \tlet { value } = event.target;\n\t// \tvalue = value.replace(/\\D/g, '');\n\t// \tsetPhoneNumberSecond(value.toString());\n\t// };\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t
{t('en:PERSONAL_DETAILS')}
\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
{t('wtr:SETTINGS_PROFILE_PICTURE')}
\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{avatarFromPrefs ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t{openImgModal && (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{getAccountIconOptions().map((icon, index) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleUpdateSettings(HandleChangeTypes.AccountAvatar, icon.value);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
{t('en:NAME')}
\n\t\t\t\t\t
{userProfile.fullName}
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
{t('en:Email')}
\n\t\t\t\t\t
{userProfile.email}
\n\t\t\t\t
\n\t\t\t\t{/* \n\t\t\t\t\t
{t('en:PHONE')}
\n\t\t\t\t\t{userProfile?.phone && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{errorMessage && changeInPhone && (\n\t\t\t\t\t\t\t\t
{t('en:SETTINGS_INVALID_PHONE_NUMBER')}
\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t
*/}\n\t\t\t\t{/* \n\t\t\t\t\t
{t('en:PHONE')} 2
\n\t\t\t\t\t{userProfile?.phone && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{errorMessage && changeInPhoneSecond && (\n\t\t\t\t\t\t\t\t
{t('en:SETTINGS_INVALID_PHONE_NUMBER')}
\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t */}\n\t\t\t\n\t\t\n\t);\n};\n\nexport default ProfileSettings;\n","import { useMutation } from '@tanstack/react-query';\nimport axios from 'axios';\n\ninterface ChangePasswordParameters {\n\tcurrentPassword: string;\n\tnewPassword: string;\n}\n\nconst useChangePassword = () => {\n\tconst mutationFn = async (parameters: ChangePasswordParameters) => {\n\t\t\tconst response = await axios({\n\t\t\t\turl: '',\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t},\n\t\t\t\tdata: {\n\t\t\t\t\tpayload: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmodule: 'authentication',\n\t\t\t\t\t\t\taction: 'change_password',\n\t\t\t\t\t\t\tparameters: {\n\t\t\t\t\t\t\t\tpassword: parameters.currentPassword,\n\t\t\t\t\t\t\t\tnew_password: parameters.newPassword\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn response.data.payload[0].result;\n\t};\n\n\treturn useMutation({\n\t\tmutationKey: ['useChangePassword'],\n\t\tmutationFn,\n\t});\n};\n\nexport default useChangePassword;\n","import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport React, { useEffect, useState } from 'react';\n\nimport { useTranslation } from 'react-i18next';\n\nimport cn from 'classnames';\n\nimport useShortTranslation from '../../../../../../utils/hooks/useShortTranslation';\nimport Button from '../../../../../../shared/Button';\n\nimport {\n\tisPasswordValidLength,\n\tisPasswordLowercaseLetter,\n\tisPasswordSpecialCharacters,\n\tisPasswordSingleUpperLetter,\n\tisPasswordSingleDigit,\n} from '../../../../../../utils/functions/passwordValidation';\n\nimport useChangePassword from '../../../../../../utils/mutations/useChangePassword';\n\nimport styles from './SettingsModule.module.scss';\n\ninterface passwordValidations {\n\tvalidSatisfied: boolean;\n\tlowercaseSatisfied: boolean;\n\tuppercaseSatisfied: boolean;\n\tdigitSatisfied: boolean;\n\tspecialSatisfied: boolean;\n}\n\ninterface securitySettingsProps {\n\thandleUpdatePasswordSettings: (values: Record) => void;\n\tsetDisabled: (value: boolean) => void;\n\thandleCloseModal: (value: boolean) => void;\n}\n\nconst PasswordSettings: React.FC = ({\n\thandleCloseModal,\n\tsetDisabled,\n\thandleUpdatePasswordSettings,\n}) => {\n\tconst { mutate: changePassword } = useChangePassword();\n\n\tconst tt = useShortTranslation('wtr:');\n\n\tconst [inputTypeCurrentPassword, setInputTypeCurrentPassword] = useState('password');\n\tconst [inputTypeNewPassword, setInputTypeNewPassword] = useState('password');\n\tconst [uppercaseCheck, setUppercaseCheck] = useState(false);\n\tconst [lowercaseCheck, setLowercaseCheck] = useState(false);\n\tconst [numberCheck, setNumberCheck] = useState(false);\n\tconst [specialCheck, setSpecialCheck] = useState(false);\n\tconst [passwordLenghtCheck, setPasswordLenghtCheck] = useState(false);\n\tconst [isDisabled, setIsDisabled] = useState(true);\n\n\tconst [invalid, setInvalid] = useState(false);\n\tconst [dontMatch, setDontMatch] = useState(false);\n\tconst [errorMessage, setErrorMessage] = useState(false);\n\tconst [showPasswordPopup, setShowPasswordPopup] = useState(false);\n\tconst [currentPassword, setCurrentPassword] = useState('');\n\tconst [newPassword, setNewPassword] = useState('');\n\n\tconst [passwordValidations, setPasswordValidations] = useState({\n\t\tvalidSatisfied: false,\n\t\tlowercaseSatisfied: false,\n\t\tuppercaseSatisfied: false,\n\t\tdigitSatisfied: false,\n\t\tspecialSatisfied: false,\n\t});\n\tconst { t } = useTranslation();\n\n\tconst showCurrentPassword = () => {\n\t\tif (inputTypeCurrentPassword === 'password') {\n\t\t\tsetInputTypeCurrentPassword('text');\n\t\t} else {\n\t\t\tsetInputTypeCurrentPassword('password');\n\t\t}\n\t};\n\tconst showNewPassword = () => {\n\t\tif (inputTypeNewPassword === 'password') {\n\t\t\tsetInputTypeNewPassword('text');\n\t\t} else {\n\t\t\tsetInputTypeNewPassword('password');\n\t\t}\n\t};\n\n\tconst isNewPasswordValid = (value: string) => {\n\t\tif (value !== '') {\n\t\t\tconst isLengthValid = isPasswordValidLength(value);\n\t\t\tconst isLowercaseValid = isPasswordLowercaseLetter(value);\n\t\t\tconst isUppercaseValid = isPasswordSingleUpperLetter(value);\n\t\t\tconst isDigitValid = isPasswordSingleDigit(value);\n\t\t\tconst isSpecialCharValid = isPasswordSpecialCharacters(value);\n\n\t\t\tsetPasswordValidations({\n\t\t\t\tvalidSatisfied: isLengthValid,\n\t\t\t\tlowercaseSatisfied: isLowercaseValid,\n\t\t\t\tuppercaseSatisfied: isUppercaseValid,\n\t\t\t\tdigitSatisfied: isDigitValid,\n\t\t\t\tspecialSatisfied: isSpecialCharValid,\n\t\t\t});\n\n\t\t\tsetPasswordLenghtCheck(isLengthValid);\n\t\t\tsetLowercaseCheck(isLowercaseValid);\n\t\t\tsetUppercaseCheck(isUppercaseValid);\n\t\t\tsetNumberCheck(isDigitValid);\n\t\t\tsetSpecialCheck(isSpecialCharValid);\n\t\t}\n\t};\n\n\tconst handleChangeInput = (event: React.ChangeEvent, key: string) => {\n\t\tconst value = event.target.value;\n\n\t\tsetShowPasswordPopup(key === 'newPassword');\n\n\t\tif (key === 'newPassword' && event.target.value.length < 15) {\n\t\t\tsetNewPassword(value);\n\t\t\tisNewPasswordValid(value);\n\n\t\t\tif (newPassword.trim() !== '') {\n\t\t\t\tsetErrorMessage(false);\n\t\t\t} else {\n\t\t\t\tsetErrorMessage(false);\n\t\t\t}\n\t\t}\n\n\t\tswitch (key) {\n\t\t\tcase 'currentPassword':\n\t\t\t\tsetCurrentPassword(value);\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (currentPassword.trim() !== '' || newPassword.trim() !== '') {\n\t\t\tsetDontMatch(false);\n\t\t\tsetIsDisabled(true);\n\t\t\tconst validationFailed =\n\t\t\t\t!passwordValidations.validSatisfied ||\n\t\t\t\t!passwordValidations.lowercaseSatisfied ||\n\t\t\t\t!passwordValidations.uppercaseSatisfied ||\n\t\t\t\t!passwordValidations.digitSatisfied ||\n\t\t\t\t!passwordValidations.specialSatisfied;\n\n\t\t\tconst validationSucceed =\n\t\t\t\tpasswordValidations.validSatisfied &&\n\t\t\t\tpasswordValidations.lowercaseSatisfied &&\n\t\t\t\tpasswordValidations.uppercaseSatisfied &&\n\t\t\t\tpasswordValidations.digitSatisfied &&\n\t\t\t\tpasswordValidations.specialSatisfied;\n\n\t\t\tif (validationFailed) {\n\t\t\t\tsetInvalid(true);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (validationSucceed && currentPassword.trim() !== '') {\n\t\t\t\tsetDontMatch(false);\n\t\t\t\tsetInvalid(false);\n\t\t\t\tsetErrorMessage(false);\n\t\t\t\tsetDisabled(false);\n\t\t\t\tsetIsDisabled(false);\n\n\t\t\t\thandleUpdatePasswordSettings({\n\t\t\t\t\tcurrentPassword: currentPassword,\n\t\t\t\t\tnewPassword: newPassword,\n\t\t\t\t\tconfirmPassword: newPassword,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\thandleUpdatePasswordSettings({\n\t\t\tcurrentPassword: '',\n\t\t\tnewPassword: '',\n\t\t});\n\t}, [newPassword, currentPassword]);\n\n\tconst handleUpdatePassword = () => {\n\t\tif (\n\t\t\t!passwordValidations.validSatisfied ||\n\t\t\t!passwordValidations.lowercaseSatisfied ||\n\t\t\t!passwordValidations.uppercaseSatisfied ||\n\t\t\t!passwordValidations.digitSatisfied ||\n\t\t\t!passwordValidations.specialSatisfied\n\t\t) {\n\t\t\treturn null;\n\t\t}\n\n\t\tchangePassword(\n\t\t\t{\n\t\t\t\tcurrentPassword: currentPassword,\n\t\t\t\tnewPassword: newPassword,\n\t\t\t},\n\t\t\t{\n\t\t\t\tonSuccess: (result) => {\n\t\t\t\t\tif (result === 'FAIL') {\n\t\t\t\t\t\tsetErrorMessage(true);\n\t\t\t\t\t} else if (result === 'OK') {\n\t\t\t\t\t\tsetCurrentPassword('');\n\t\t\t\t\t\tsetNewPassword('');\n\t\t\t\t\t\tsetUppercaseCheck(false);\n\t\t\t\t\t\tsetLowercaseCheck(false);\n\t\t\t\t\t\tsetNumberCheck(false);\n\t\t\t\t\t\tsetSpecialCheck(false);\n\t\t\t\t\t\tsetPasswordLenghtCheck(false);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tonError: (err) => {\n\t\t\t\t\tsetErrorMessage(true);\n\n\t\t\t\t\tconsole.debug('Error retrieving changePassword from TFBO gateway. Exception: ', err);\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
{t('wtr:CHANGE_PASS')}
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t handleChangeInput(event, 'currentPassword')}\n\t\t\t\t\t\t\tautoComplete=\"current-password\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{errorMessage &&
{tt('WTR_INVALID_PASSWORD')}
}\n\t\t\t\t\t
\n\t\t\t\t\t\t handleChangeInput(event, 'newPassword')}\n\t\t\t\t\t\t\tautoComplete=\"new-password\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('wtr:SETTINGS_UPPERCASE_LETTER')}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('en:SETTINGS_LOWERCASE_LETTER')}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('en:SETTINGS_NUMBER')}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('en:SETTINGS_SPECIAL')}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('en:SETTINGS_CHARACTERS_LENGTH')}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t handleCloseModal(false)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t handleUpdatePassword()}\n\t\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default PasswordSettings;\n","import React, { Dispatch, SetStateAction, useContext, useEffect, useState } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { useTranslation } from 'react-i18next';\n\nimport cn from 'classnames';\n\nimport AppContext from '../../../../../../contexts/AppContext';\nimport Modal from '../../../../../../shared/Modal';\nimport { ChartTimezone } from '../../../../../../utils/functions/enums';\n\nimport authStore from '../../../../../../store/authStore';\n\nimport { getAccountIconOptions } from '../../../Settings/settingsOptions';\n\nimport { getActiveTier } from '../../../../../../utils/functions/subscriptionUtils';\n\nimport { tierIcons } from '../../../../../../setup/subscriptionsConfig';\n\nimport styles from '../../Header.module.scss';\n\nimport PlatformSettings from './PlatformSettings';\nimport SecuritySettings from './SecuritySettings';\nimport TradingSettings from './TradingSettings';\nimport AvatarIcons from './AvatarIcons';\n\nimport ProfileSettings from './ProfileSettings';\nimport PasswordSettings from './PasswordSettings';\nimport useGetMFAEnabled from '../../../../../../utils/queries/useGetMFAEnabled';\ninterface settingsModalProps {\n\topenSettings: boolean;\n\tsetOpenSettings: (openSettings: boolean) => void;\n\tsetResetIdleTimer: Dispatch>;\n}\n\ninterface passwordSettings {\n\tcurrentPassword: string;\n\tnewPassword: string;\n\tconfirmPassword: string;\n}\n\ninterface settings {\n\t// quantityType: 'Amount' | 'Lots';\n\ttradeFromChartEnabled: boolean;\n\toneClickTrading: boolean;\n\tnotificationSoundMuted: boolean;\n\tnotificationSoundVolume: number;\n\tlanguage: string;\n\ttheme: string;\n\ttimezone: string;\n\tinactivityLogout: number;\n\taccountAvatar?: number;\n}\n\ninterface tabs {\n\tplatformSettings: { name: string; icon: string };\n\ttradingSettings: { name: string; icon: string };\n\tpasswordSettings: { name: string; icon: string };\n\tsecuritySettings: { name: string; icon: string };\n\t// uploadDocuments: { name: string; icon: string };\n}\nconst TabsEnum = {\n\tprofileSettings: 'profileSettings',\n\tplatformSettings: 'platformSettings',\n\ttradingSettings: 'tradingSettings',\n\tpasswordSettings: 'passwordSettings',\n\tsecuritySettings: 'securitySettings',\n\t// uploadDocuments: 'uploadDocuments',\n} as const;\n\n// convert the UserPreferences object from the _fuzzy_ format stored in the BE\n// to something easy to use and back\nconst parseSettings = (preferences: any = {}): settings => ({\n\t// quantityType: preferences.trading.settings.cfd._quantityType.replace('mm', 'm'),\n\ttradeFromChartEnabled: preferences.trading.settings.cfd._tradeFromChartEnabled,\n\toneClickTrading: preferences.trading.settings.cfd._mode === '1-Click',\n\tnotificationSoundMuted: preferences.trading.settings.cfd._notificationSoundMuted,\n\tnotificationSoundVolume: preferences.trading.settings.cfd._notificationSoundVolume,\n\tlanguage: preferences.platform.lang._code,\n\ttheme: preferences.platform.theme._type,\n\t// for some reason we've not added a default value for the timezone, it's there now but we\n\t// should keep this for now; if no value is preset the dashboard uses Local - check fullContextFromPreferences\n\ttimezone: preferences.platform.timezone._name || ChartTimezone.Local,\n\tinactivityLogout: preferences.platform.inactivity,\n\taccountAvatar: preferences.platform.accountAvatar,\n});\n\nconst encodeSettings = (currentSettings: any, parsedSettings: any) => {\n\t// currentSettings.trading.settings.cfd._quantityType = parsedSettings.quantityType;\n\tcurrentSettings.trading.settings.cfd._tradeFromChartEnabled = parsedSettings.tradeFromChartEnabled;\n\tcurrentSettings.trading.settings.cfd._notificationSoundMuted = parsedSettings.notificationSoundMuted;\n\tcurrentSettings.trading.settings.cfd._notificationSoundVolume = parsedSettings.notificationSoundVolume;\n\tcurrentSettings.trading.settings.cfd._mode = parsedSettings.oneClickTrading ? '1-Click' : 'Regular';\n\tcurrentSettings.platform.lang._code = parsedSettings.language;\n\tcurrentSettings.platform.theme._type = parsedSettings.theme;\n\tcurrentSettings.platform.timezone._name = parsedSettings.timezone;\n\tcurrentSettings.platform.inactivity = parsedSettings.inactivityLogout;\n\tcurrentSettings.platform.accountAvatar = parsedSettings.accountAvatar;\n\n\treturn currentSettings;\n};\n\nconst SettingsModal: React.FC = ({ openSettings, setOpenSettings, setResetIdleTimer }) => {\n\tconst { t } = useTranslation();\n\tconst { isLoading, data: isMFAEnabled } = useGetMFAEnabled();\n\n\tconst appContext = useContext(AppContext);\n\tconst accountAvatar = authStore.use.accountAvatar();\n\tconst userProfile = authStore.use.userProfile();\n\tconst [fullName, setFullname] = useState('');\n\tconst [email, setEmail] = useState('');\n\tconst [showInfoModalBackground, setShowInfoModalBackground] = useState(false);\n\n\tuseEffect(() => {\n\t\tsetFullname(userProfile?.fullName);\n\t\tsetEmail(userProfile?.email || '');\n\t}, [userProfile, showInfoModalBackground]);\n\n\tconst [disabled, setDisabled] = useState(true);\n\n\t// override stored language with the one from the login form\n\tconst initialSettings: settings = parseSettings(appContext.userPreferences!.user_prefs);\n\tinitialSettings.language = appContext.languageSettings;\n\n\tconst [settings, setSettings] = useState(initialSettings);\n\tconst [activeTab, setActiveTab] = useState(TabsEnum.profileSettings);\n\tconst [passwordSettings, setPasswordSettings] = useState({\n\t\tcurrentPassword: '',\n\t\tnewPassword: '',\n\t\tconfirmPassword: '',\n\t});\n\n\tconst handleUpdatePasswordSettings = (values: Record) => {\n\t\tsetPasswordSettings({ ...passwordSettings, ...values });\n\t};\n\n\tuseEffect(() => {\n\t\tfor (const item in initialSettings) {\n\t\t\tconst key = item as keyof typeof settings;\n\t\t\tif (settings[key] !== initialSettings[key]) {\n\t\t\t\tsetDisabled(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tsetDisabled(true);\n\t}, [settings, userProfile]);\n\n\tuseEffect(() => {\n\t\tfor (const item in initialSettings) {\n\t\t\tconst key = item as keyof typeof settings;\n\t\t\tif (settings[key] !== initialSettings[key]) {\n\t\t\t\tsetDisabled(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t// setDisabled(true);\n\t}, [settings]);\n\n\tconst handleCloseModal = () => {\n\t\tsetOpenSettings(false);\n\t\tappContext.openSettings = false;\n\t\tsetDisabled(true);\n\t};\n\n\tconst tabs: tabs = {\n\t\tplatformSettings: { name: t('wtr:PLATFORM'), icon: 'desktop' },\n\t\ttradingSettings: { name: t('wtr:WTR_TRADING'), icon: 'chart-candlestick' },\n\t\tpasswordSettings: { name: t('wtr:CHANGE_PASS'), icon: 'key' },\n\t\tsecuritySettings: { name: t('en:SETTINGS_SECURITY'), icon: 'shield-keyhole' },\n\t\t// uploadDocuments: { name: t('en:UPLOAD_DOCUMENTS_BUTTON_TYPE_TITLE'), icon: 'file-arrow-up' },\n\t};\n\tconst isLiveMode = authStore.use.isLiveMode();\n\tconst isJapanAccount = authStore.use.isJapanAccount();\n\tconst activeTier = isJapanAccount && isLiveMode && getActiveTier(appContext.subscriptionInfo);\n\n\tconst findImage = () => {\n\t\tconst currentImage = getAccountIconOptions().find((image) => image.value === accountAvatar);\n\n\t\tif (currentImage && !activeTier && accountAvatar !== 0) {\n\t\t\treturn currentImage.image.src;\n\t\t}\n\n\t\tif (activeTier && !accountAvatar) {\n\t\t\treturn tierIcons[activeTier.toLowerCase()];\n\t\t}\n\n\t\treturn '';\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tsetSettings(initialSettings);\n\t\t\t\t\t\t\t\t\t\tsetActiveTab(TabsEnum.profileSettings);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{findImage() ? (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
{fullName}
\n\t\t\t\t\t\t\t\t\t\t
{email}
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{Object.entries(tabs).map(\n\t\t\t\t\t\t\t\t\t([tabName, tabDisplayText]: [string, { name: string; icon: any }]) =>\n\t\t\t\t\t\t\t\t\t\ttabDisplayText && (\n\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetSettings(initialSettings);\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetActiveTab(tabName);\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{activeTab === TabsEnum.profileSettings && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{activeTab === TabsEnum.platformSettings && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{activeTab === TabsEnum.tradingSettings && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{activeTab === TabsEnum.passwordSettings && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{activeTab === TabsEnum.securitySettings && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{/* {activeTab === TabsEnum.uploadDocuments && } */}\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default SettingsModal;\n","import React, { useContext } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport cn from 'classnames';\n\nimport AppContext from '../../../../../contexts/AppContext';\nimport statusStore from '../../../../../store/accountStatusStore';\nimport useObservable from '../../../../../utils/hooks/useObservable';\nimport useForceRerender from '../../../../../utils/hooks/useForceRerender';\nimport authStore, { AuthStore } from '../../../../../store/authStore';\nimport { useSwitchToDemo, useSwitchToLive } from '../../../../../utils/hooks/system/useSwitchMode';\n\nimport styles from './AccountMenuPopupSection.module.scss';\n\ninterface SettingsOptionsProps {\n\tsetAccountPopupIsOpen: (a: boolean) => void;\n\tsetOpenSettings: (a: boolean) => void;\n\thandleTpRedirectReports: (a: string) => void;\n\thandleTpRedirectManageFunds: (a: string) => void;\n}\n\nconst SettingsOptions = ({\n\tsetAccountPopupIsOpen,\n\tsetOpenSettings,\n\thandleTpRedirectReports,\n\thandleTpRedirectManageFunds,\n}: SettingsOptionsProps) => {\n\tconst { t } = useTranslation();\n\tconst appContext = useContext(AppContext);\n\tconst permissions = statusStore.use.permissions();\n\n\tconst reports = permissions?.reports;\n\tconst manageFunds = permissions?.manageFunds;\n\tconst { isLiveMode, isDemoMode } = authStore((store: AuthStore) => ({\n\t\tisLiveMode: store.isLiveMode,\n\t\tisDemoMode: store.isDemoMode,\n\t}));\n\n\tconst switchToLive = useSwitchToLive();\n\tconst switchToDemo = useSwitchToDemo();\n\n\tconst forceRerender = useForceRerender();\n\tuseObservable(appContext.getPropertyChangeStream('subscriptionInfo'), () => forceRerender());\n\n\tconst logoutAccount = () => {\n\t\tappContext.modalId = 'logout';\n\t\tsetAccountPopupIsOpen(false);\n\t};\n\n\tconst handleOnClickSettings = () => {\n\t\tsetAccountPopupIsOpen(false);\n\t\tsetOpenSettings(true);\n\t\tappContext.openSettings = true;\n\t};\n\n\treturn (\n\t\t
\n\t\t\t{isDemoMode && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{t('en:SWITCH_TO_REAL')}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\t\t\t{isLiveMode && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{t('en:MORE_SWITCH_TO_DEMO')}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\n\t\t\t<>\n\t\t\t\t{reports && (\n\t\t\t\t\t
handleTpRedirectReports(reports as string)}>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t('en:REPORTS')}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t\t{manageFunds && (\n\t\t\t\t\t
handleTpRedirectManageFunds(manageFunds as string)}>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t('wtr:WTR_MANAGE_FUNDS')}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t\n\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t{t('en:SETTINGS')}\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t{t('en:MORE_LOGOUT')}\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default SettingsOptions;\n","import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport styles from './AccountUserIcon.module.scss';\nimport authStore from '../../../../../../store/authStore';\nimport { getAccountIconOptions } from '../../../Settings/settingsOptions';\n\ninterface IAccountUserIconProps {\n\taccountPopupIsOpen?: boolean;\n\tsize?: 'small' | 'large';\n}\n\nconst AccountUserIcon = ({ accountPopupIsOpen, size = 'small' }: IAccountUserIconProps) => {\n\tconst accountAvatar = authStore.use.accountAvatar();\n\tconst findImage = () => {\n\t\tconst currentImage = getAccountIconOptions().find((image) => image.value === accountAvatar);\n\n\t\tif (currentImage) {\n\t\t\treturn currentImage.image.src;\n\t\t}\n\n\t\treturn getAccountIconOptions()[0].image.src;\n\t};\n\n\tif (accountAvatar) {\n\t\treturn \"Avatar\";\n\t}\n\treturn ;\n};\n\nexport default AccountUserIcon;\n","import React, { useContext, useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\n\nimport cn from 'classnames';\n\nimport AppContext from '../../../../../contexts/AppContext';\nimport DashboardContext from '../../../../../contexts/DashboardContext';\n\nimport { AppComponentType } from '../../../../../utils/functions/enums';\nimport { IStatusConfigEnum } from '../../../../components/Permissions/config.types';\n\nimport Routes from '../../../../../setup/routes';\n\nimport AccountStatusCTA from '../../../../../shared/AccountStatusCTA/AccountStatusCTA';\n\nimport statusStore, { StatusStore } from '../../../../../store/accountStatusStore';\n\nimport authStore from '../../../../../store/authStore';\n\nimport { useSwitchToLive } from '../../../../../utils/hooks/system/useSwitchMode';\n\nimport SettingsOptions from './SettingsOptions';\n\nimport AccountUserIcon from './AccountUserIcon/AccountUserIcon';\n\nimport styles from './AccountMenuPopup.module.scss';\n\ninterface IAccountMenuPopupProps {\n\tsetAccountPopupIsOpen: (a: boolean) => void;\n\tsetOpenSettings: (a: boolean) => void;\n}\n\nconst AccountMenuPopup = ({ setAccountPopupIsOpen, setOpenSettings }: IAccountMenuPopupProps) => {\n\tconst history = useHistory();\n\tconst setShowAccountStatus = statusStore((state: any) => state.setShowAccountStatus);\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst permissions = statusStore((store: StatusStore) => store.permissions);\n\tconst accountMenuAction = permissions?.accountMenuAction;\n\tconst accountMenuLabel = permissions?.accountMenuLabel;\n\tconst { email } = appContext;\n\tconst userProfile = authStore.use.userProfile();\n\tconst [fullName, setFullname] = useState(userProfile?.fullName || '');\n\tconst switchToLive = useSwitchToLive();\n\n\tuseEffect(() => {\n\t\tsetFullname(userProfile?.fullName);\n\t}, [userProfile?.fullName]);\n\n\tconst handleTpRedirectButton = (e: any) => {\n\t\tdocument.body.click();\n\t\tif (accountMenuAction === IStatusConfigEnum.switchToRealMoney) {\n\t\t\tswitchToLive();\n\t\t} else if (accountMenuAction === IStatusConfigEnum.fund) {\n\t\t\tdashboardContext.presentComponentType = AppComponentType.Deposits;\n\t\t\thistory.push(Routes.trader.funds, { from: window.location.pathname });\n\t\t} else if (accountMenuAction === IStatusConfigEnum.accountStatus) {\n\t\t\tsetShowAccountStatus();\n\t\t}\n\t};\n\t// TODO: - Rewrite conditions in order to keep them consistent and don't mix UI button text with Context logic\n\n\tconst handleTpRedirectReports = (action: string = '') => {\n\t\tdocument.body.click();\n\t\tif (action === IStatusConfigEnum.reports) {\n\t\t\tdashboardContext.presentComponentType = AppComponentType.Reports;\n\t\t\thistory.push(Routes.trader.reports, { from: window.location.pathname });\n\t\t}\n\t\tif (action === IStatusConfigEnum.accountStatus) {\n\t\t\tsetShowAccountStatus();\n\t\t}\n\n\t\treturn;\n\t};\n\n\tconst handleTpRedirectManageFunds = (action: string = '') => {\n\t\tdocument.body.click();\n\t\tif (action === IStatusConfigEnum.fund) {\n\t\t\tdashboardContext.presentComponentType = AppComponentType.Funds;\n\t\t\thistory.push(Routes.trader.funds, { from: window.location.pathname });\n\t\t}\n\t\tif (action === IStatusConfigEnum.accountStatus) {\n\t\t\tsetShowAccountStatus();\n\t\t}\n\n\t\treturn;\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t{fullName &&
{fullName}
}\n\t\t\t\t\t
{email}
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{accountMenuAction && (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default AccountMenuPopup;\n","import React, { Dispatch, SetStateAction, useContext, useState } from 'react';\n\nimport cn from 'classnames';\n\nimport AppContext from '../../../../../contexts/AppContext';\nimport WtrPopup from '../../../../components/WtrPopup/WtrPopup';\n\nimport SettingsModal from './SettingsModal';\nimport AccountMenuPopup from './AccountMenuPopup';\n\nimport AccountUserIcon from './AccountUserIcon/AccountUserIcon';\n\nimport styles from './AccountMenu.module.scss';\n\ninterface accountMenuProps {\n\taccountPopupIsOpen: boolean;\n\tsetAccountPopupIsOpen: (accountPopup: boolean) => void;\n\tsetResetIdleTimer: Dispatch>;\n}\n\nconst AccountMenu: React.FC = ({ accountPopupIsOpen, setAccountPopupIsOpen, setResetIdleTimer }) => {\n\tconst appContext = useContext(AppContext);\n\tconst [openSettings, setOpenSettings] = useState(false);\n\n\treturn (\n\t\t<>\n\t\t\t setAccountPopupIsOpen(true)}\n\t\t\t\tonClose={() => setAccountPopupIsOpen(false)}\n\t\t\t\ton={['click']}\n\t\t\t\tpinned\n\t\t\t\tposition={appContext.isArabic ? 'bottom left' : 'bottom right'}\n\t\t\t\ttrigger={\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tbasic\n\t\t\t\tcontent={}\n\t\t\t/>\n\t\t\t{openSettings && appContext.userPreferences?.user_prefs && (\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default AccountMenu;\n","import React from 'react';\nimport cn from 'classnames';\n\nimport styles from './AccountStats.module.scss';\n\ninterface AccountPanelProps {\n\tlabel: string;\n\tvalue: string;\n\thideDivider?: boolean;\n\tdividerSymbol?: string;\n\tvalueColoring?: boolean;\n}\n\nconst AccountStats: React.FC = ({ label, value, valueColoring }) => {\n\tlet coloring = styles.default;\n\tconst parsedValue = parseFloat(value.substring(value.indexOf(' ') + 1));\n\n\tif (valueColoring) {\n\t\tif (parsedValue < 0) {\n\t\t\tcoloring = styles.red;\n\t\t}\n\n\t\tif (parsedValue > 0) {\n\t\t\tcoloring = styles.green;\n\t\t}\n\t}\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
{value || 0}
\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default AccountStats;\n","import React, { useContext, useMemo, useState } from 'react';\nimport cn from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { IconName } from '@fortawesome/fontawesome-svg-core';\nimport { useTranslation } from 'react-i18next';\n\nimport { Progress } from 'semantic-ui-react';\n\nimport Button from '../../../../../shared/Button';\nimport AppContext from '../../../../../contexts/AppContext';\n\nimport useSubscriptionInfo from '../../../../../utils/hooks/useSubscriptionInfo';\nimport { totalNumberOfTiers } from '../../../../../setup/subscriptionsConfig';\nimport useSubscriptionModal from '../../../../../utils/hooks/useSubscriptionModal';\nimport {\n\tcanSeeSubscriptionDetails,\n\tgetTierDisplayName,\n\tSubscriptionModalReason,\n} from '../../../../../utils/functions/subscriptionUtils';\nimport { formatNumberWithCommas } from '../../Watchlist/Instrument/formattedQuoteNumber';\nimport WtrPopup from '../../../../components/WtrPopup/WtrPopup';\n\nimport AccountIconAndTier from '../components/AccountIconAndTier';\n\nimport styles from './RemainingVolume.module.scss';\n\ninterface RemainingVolumeProps {\n\tbaseCurrency?: string;\n}\n\nconst RemainingVolume: React.FC = ({ baseCurrency }) => {\n\tconst [subscriptionInfo] = useSubscriptionInfo();\n\tconst { setModalStateProps } = useSubscriptionModal();\n\tconst { t } = useTranslation();\n\tconst [isOpen, setIsOpen] = useState(false);\n\tconst appContext = useContext(AppContext);\n\n\tconst remainingVolume = subscriptionInfo.remainingVolume !== null\n\t\t? formatNumberWithCommas(subscriptionInfo.remainingVolume, 0, appContext.languageSettings)\n\t\t: null;\n\n\tconst iconButton: IconName = isOpen ? 'caret-up' : 'caret-down';\n\n\tconst remainVolPercent =\n\t\tsubscriptionInfo.remainingVolume && subscriptionInfo.maxVolume\n\t\t\t? Math.round((subscriptionInfo.remainingVolume / subscriptionInfo.maxVolume) * 100)\n\t\t\t: null;\n\n\tconst colorStatusIndicator = useMemo(() => {\n\t\tif (!remainVolPercent && remainVolPercent !== 0) return styles.disabled;\n\n\t\tif (remainVolPercent >= 60) return styles.green;\n\t\tif (remainVolPercent >= 20 && remainVolPercent < 60) return styles.orange;\n\t\tif (remainVolPercent < 20) return styles.red;\n\t}, [remainVolPercent]);\n\n\tconst hasUpgradeButton = !!(subscriptionInfo?.tierNum && subscriptionInfo?.tierNum < totalNumberOfTiers);\n\n\tconst handleShowDetails = () => {\n\t\tsetIsOpen(false);\n\t\tsetModalStateProps({\n\t\t\treason: SubscriptionModalReason.SubscriptionDetails,\n\t\t\tisOpen: true,\n\t\t});\n\t};\n\n\tconst handleUpgradeClick = () => {\n\t\tsetIsOpen(false);\n\t\tsetModalStateProps({\n\t\t\treason: SubscriptionModalReason.UpgradeSubscription,\n\t\t\tisOpen: true,\n\t\t});\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{appContext.isJapanAccount && (\n\t\t\t\t setIsOpen(true)}\n\t\t\t\t\tonClose={() => setIsOpen(false)}\n\t\t\t\t\ttrigger={\n\t\t\t\t\t\t
setIsOpen(!isOpen)}>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{remainingVolume === '-1' ? '-' : remainingVolume}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t\tcontent={\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{/**/}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{subscriptionInfo.tier && canSeeSubscriptionDetails(subscriptionInfo.status) && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{getTierDisplayName(subscriptionInfo.tier)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{t('wtr:REMAINING_VOLUME')}:\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{remainingVolume === '-1' ? '-' : remainingVolume}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{t('wtr:VOLUME_LIMIT')}:\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{subscriptionInfo.maxVolume &&\n\t\t\t\t\t\t\t\t\t\tformatNumberWithCommas(\n\t\t\t\t\t\t\t\t\t\t\tsubscriptionInfo.maxVolume === -1 ? 0 : subscriptionInfo.maxVolume,\n\t\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\t\tappContext.languageSettings\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{t('wtr:USED_VOLUME')}:\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{subscriptionInfo.usedVolume &&\n\t\t\t\t\t\t\t\t\t\tformatNumberWithCommas(subscriptionInfo.usedVolume, 0, appContext.languageSettings)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t{hasUpgradeButton && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default RemainingVolume;\n","import EUR from './eur.svg';\nimport GBP from './gbp.svg';\nimport AUD from './aud.svg';\nimport CAD from './cad.svg';\nimport CHF from './chf.svg';\nimport NZD from './nzd.svg';\nimport SGD from './sgd.svg';\nimport ZAR from './zar.svg';\nimport USD from './usd.svg';\nimport JPY from './jpy.svg';\n\nexport type CurrencyFlag = 'EUR' | 'GBP' | 'AUD' | 'CAD' | 'CHF' | 'NZD' | 'SGD' | 'ZAR' | 'USD' | 'JPY' | string;\n\nconst flags: { [key in CurrencyFlag]: any } = {\n\tEUR,\n\tGBP,\n\tAUD,\n\tCAD,\n\tCHF,\n\tNZD,\n\tSGD,\n\tZAR,\n\tUSD,\n\tJPY,\n};\n\nexport default (code: CurrencyFlag): string => flags[code];\n","import React from 'react';\n\nimport getCurrencyFlag, { CurrencyFlag } from '../../../../../images/flags';\n\nimport styles from './AccountCurrency.module.scss';\n\ninterface IAccountCurrencyProps {\n\tcode: CurrencyFlag;\n}\n\nconst AccountCurrency = ({ code }: IAccountCurrencyProps) => (\n\t\"Flag\n);\n\nexport default AccountCurrency;\n","import React, { useContext, useMemo } from 'react';\nimport cn from 'classnames';\n\nimport { Loader } from 'semantic-ui-react';\n\nimport { tierIcons } from '../../../../../setup/subscriptionsConfig';\n\nimport { getActiveTier, shouldShowTierIcon } from '../../../../../utils/functions/subscriptionUtils';\n\nimport authStore from '../../../../../store/authStore';\n\nimport AppContext from '../../../../../contexts/AppContext';\n\nimport useForceRerender from '../../../../../utils/hooks/useForceRerender';\nimport useObservable from '../../../../../utils/hooks/useObservable';\n\nimport { getAccountIconOptions } from '../../Settings/settingsOptions';\nimport useSelectedTradingAccount from '../../../../../utils/hooks/useSelectedTradingAccount';\n\nimport AccountCurrency from './AccountCurrency';\n\nimport styles from './AccountIconAndTier.module.scss';\n\ninterface AccountIconAndTierProps {\n\taccountPopupIsOpen?: boolean;\n\tsize?: 'small' | 'large';\n\toutline?: boolean;\n\tcustomCurrency?: string;\n\tisForJapanSubscriptionAccount?: boolean;\n\tisNotListOfSelectedTradingMode?: boolean;\n}\n\nconst AccountIconAndTier = ({\n\taccountPopupIsOpen,\n\tsize = 'small',\n\toutline = false,\n\tcustomCurrency,\n\tisForJapanSubscriptionAccount = false,\n\tisNotListOfSelectedTradingMode = false,\n}: AccountIconAndTierProps) => {\n\tconst isJapanAccount = authStore.use.isJapanAccount();\n\tconst appContext = useContext(AppContext);\n\tconst accountAvatar = authStore.use.accountAvatar();\n\tconst selectedTradingAccount = useSelectedTradingAccount();\n\n\tconst forceRerender = useForceRerender();\n\tconst iconStyle = accountPopupIsOpen ? 'fas' : 'fal';\n\n\tuseObservable(appContext.getPropertyChangeStream('subscriptionInfo'), () => {\n\t\tforceRerender();\n\t});\n\n\tconst icon = useMemo(() => {\n\t\tif (selectedTradingAccount || (!selectedTradingAccount && isNotListOfSelectedTradingMode)) {\n\t\t\tif (isJapanAccount && isForJapanSubscriptionAccount) {\n\t\t\t\tif (appContext.subscriptionInfo && !shouldShowTierIcon(appContext.subscriptionInfo)) {\n\t\t\t\t\treturn ;\n\t\t\t\t}\n\n\t\t\t\tconst activeTier = getActiveTier(appContext.subscriptionInfo);\n\n\t\t\t\treturn activeTier ? (\n\t\t\t\t\t\"Tier\"\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\treturn ;\n\t\t\t}\n\t\t} else {\n\t\t\treturn ;\n\t\t}\n\t}, [\n\t\tcustomCurrency,\n\t\ticonStyle,\n\t\tisJapanAccount,\n\t\tselectedTradingAccount,\n\t\tsize,\n\t\tisForJapanSubscriptionAccount,\n\t\tappContext.subscriptionInfo,\n\t]);\n\n\tif (!outline) return icon;\n\n\treturn (\n\t\t
\n\t\t\t
{icon}
\n\t\t
\n\t);\n};\n\nexport default AccountIconAndTier;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport useSubscriptionModal from '../../../../../../utils/hooks/useSubscriptionModal';\nimport { SubscriptionModalReason, SubscriptionStatus } from '../../../../../../utils/functions/subscriptionUtils';\nimport useSubscriptionInfo from '../../../../../../utils/hooks/useSubscriptionInfo';\n\nimport styles from './SubscriptionOptions.module.scss';\n\nconst SubscriptionOptions = ({ setAccountPopupIsOpen }: { setAccountPopupIsOpen: (a: boolean) => void }) => {\n\tconst { t } = useTranslation();\n\tconst [subscriptionInfo] = useSubscriptionInfo();\n\tconst { setModalStateProps } = useSubscriptionModal();\n\n\tconst handleManageClick = () => {\n\t\tsetAccountPopupIsOpen(false);\n\t\tsetModalStateProps({\n\t\t\treason: SubscriptionModalReason.ManageSubscription,\n\t\t\tisOpen: true,\n\t\t});\n\t};\n\n\tconst handleStopClick = () => {\n\t\tsetAccountPopupIsOpen(false);\n\t\tsetModalStateProps({\n\t\t\treason: SubscriptionModalReason.ConfirmStop,\n\t\t\tisOpen: true,\n\t\t\ttext: null,\n\t\t});\n\t};\n\n\t// const handleCancelClick = () => {\n\t// \tsetAccountPopupIsOpen(false);\n\t// \tsetModalStateProps({\n\t// \t\treason: SubscriptionModalReason.ConfirmCancel,\n\t// \t\tisOpen: true,\n\t// \t\ttext: null,\n\t// \t});\n\t// };\n\n\tconst hasManageSubscriptionOption = [SubscriptionStatus.Active, SubscriptionStatus.Unpaid].includes(\n\t\tsubscriptionInfo.status!\n\t);\n\n\treturn (\n\t\t
\n\t\t\t{hasManageSubscriptionOption && (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t{t('wtr:MANAGE_SUBSCRIPTIONS')}\n\t\t\t\t
\n\t\t\t)}\n\t\t\t{subscriptionInfo.status === SubscriptionStatus.Active ? (\n\t\t\t\t<>\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t{t('wtr:SUSPEND_SUBSCRIPTION')}\n\t\t\t\t\t
\n\t\t\t\t\t{/*
*/}\n\t\t\t\t\t{/*\t*/}\n\t\t\t\t\t{/*\t{t('wtr:CANCEL_SUBSCRIPTION')}*/}\n\t\t\t\t\t{/*
*/}\n\t\t\t\t\n\t\t\t) : null}\n\t\t
\n\t);\n};\n\nexport default SubscriptionOptions;\n","import { useContext } from 'react';\n\nimport { AccountMarketType } from '../../../gateways/RfpGateway/rfp.types';\nimport authStore, { TradingMode } from '../../../store/authStore';\nimport { LastLoggedAct } from '../../../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\nimport { RFP } from '../../../gateways/RfpGateway/rfpConstants';\nimport useSaveUserPreferences from '../../mutations/useSaveUserPreferences';\nimport DashboardContext from '../../../contexts/DashboardContext';\nimport AppContext from '../../../contexts/AppContext';\nimport { useFillContextsFromPreferences } from '../preferences/useFillContextsFromPreferences';\nimport tradingAccountStore from '../../../store/tradingAccountStore';\nimport useSelectedTradingAccount from '../useSelectedTradingAccount';\nimport { Account } from '../../../gateways/TfboGateway/TfboGateway.types';\nimport RfpGatewayContext from '../../../contexts/RfpGatewayContext';\nimport { TradingAccountType } from '../../functions/enums';\n\nconst useSwitchAccount = () => {\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst rfpGateway = useContext(RfpGatewayContext);\n\tconst setTradingMode = authStore.use.setTradingMode();\n\tconst setSelected = tradingAccountStore.use.setSelected();\n\tconst setAccountMarketType = tradingAccountStore.use.setAccountMarketType();\n\tconst isFundedTrader = tradingAccountStore.use.isFundedTrader();\n\tconst selectedTradingAccount = useSelectedTradingAccount();\n\tconst selectedTradingMode = authStore.use.tradingMode();\n\n\tconst { mutateAsync: savePreferences } = useSaveUserPreferences();\n\tconst fillContextsFromPreferences = useFillContextsFromPreferences();\n\n\tconst switchAccounts = async (account: Account) => {\n\t\tdashboardContext.closeAllOtherTabs();\n\n\t\tif (!account) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (account.type !== selectedTradingMode.toLowerCase()) {\n\t\t\tsetTradingMode(account.type as TradingMode);\n\t\t}\n\n\t\tconst selectedIndex = dashboardContext.tradingAccount.findIndex((acc) => {\n\t\t\treturn acc.accountNumber === account.accountNumber;\n\t\t});\n\n\t\tif (selectedIndex !== -1) {\n\t\t\tconst newAccount = dashboardContext.tradingAccount[selectedIndex];\n\n\t\t\tsetAccountMarketType({\n\t\t\t\tisJapanSpread: newAccount?.accountMarketType === AccountMarketType.JapanSpread,\n\t\t\t\tisJapanSubscription:\n\t\t\t\t\tnewAccount?.accountMarketType === AccountMarketType.Japan &&\n\t\t\t\t\tnewAccount?.accountType === TradingAccountType.LIVE,\n\t\t\t\tisSpreadBetting: newAccount?.accountMarketType === AccountMarketType.SpreadBetting,\n\t\t\t});\n\t\t\tsetSelected(selectedIndex);\n\n\t\t\tif (selectedTradingAccount && rfpGateway) {\n\t\t\t\trfpGateway.send(RFP.tradingAccountLogout, { acct_id: selectedTradingAccount.id });\n\t\t\t}\n\t\t}\n\n\t\tif (appContext.userPreferences) {\n\t\t\tif (account.accountNumber) {\n\t\t\t\tappContext.userPreferences.user_prefs.platform.lastLoggedAct[\n\t\t\t\t\taccount.type.toLowerCase() as keyof LastLoggedAct\n\t\t\t\t] = account.accountNumber.toString();\n\t\t\t}\n\n\t\t\tfillContextsFromPreferences(appContext.userPreferences, isFundedTrader);\n\t\t\tawait savePreferences();\n\t\t}\n\t};\n\n\treturn [switchAccounts];\n};\n\nexport default useSwitchAccount;\n","import React, { useContext, useMemo } from 'react';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { useHistory } from 'react-router-dom';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport cn from 'classnames';\n\nimport Routes from '../../../../../../setup/routes';\n\nimport { AppComponentType, TradingAccountType } from '../../../../../../utils/functions/enums';\nimport AppContext, { TTradingMode } from '../../../../../../contexts/AppContext';\nimport DashboardContext from '../../../../../../contexts/DashboardContext';\n\nimport useShortTranslation from '../../../../../../utils/hooks/useShortTranslation';\n\nimport accountStatusStore from '../../../../../../store/accountStatusStore';\n\nimport { IStatusConfigEnum } from '../../../../../components/Permissions/config.types';\n\nimport authStore, { TradingMode } from '../../../../../../store/authStore';\nimport tradingAccountStore from '../../../../../../store/tradingAccountStore';\n\nimport {\n\tAccount,\n\tTradingAccountType as PlatformAccountType,\n} from '../../../../../../gateways/TfboGateway/TfboGateway.types';\n\nimport { checkHasSubscriptionOptions } from '../../../../../../utils/functions/subscriptionUtils';\nimport useSubscriptionInfo from '../../../../../../utils/hooks/useSubscriptionInfo';\n\nimport AccountIconAndTier from '../../components/AccountIconAndTier';\n\nimport SubscriptionOptions from './SubscriptionOptions';\n\nimport { printAccountName } from '../../../../../../utils/functions/getAccountStats';\nimport useSwitchAccount from '../../../../../../utils/hooks/system/useSwitchAccount';\nimport useSelectedTradingAccount from '../../../../../../utils/hooks/useSelectedTradingAccount';\n\nimport styles from './TradingAccounts.module.scss';\nimport { LastLoggedAct } from '../../../../../../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\nimport useSaveUserPreferences from '../../../../../../utils/mutations/useSaveUserPreferences';\n\ninterface ITradingAccountsProps {\n\tactiveMenuItem: 'live' | 'demo' | TTradingMode;\n\tsetAccountPopupIsOpen: (isOpen: boolean) => void;\n}\n\nconst TradingAccounts = ({ setAccountPopupIsOpen, activeMenuItem }: ITradingAccountsProps) => {\n\tconst { t } = useTranslation();\n\tconst tt = useShortTranslation('wtr:');\n\tconst history = useHistory();\n\tconst [subscriptionInfo] = useSubscriptionInfo();\n\tconst [switchAccounts] = useSwitchAccount();\n\tconst selectedTradingAccount = useSelectedTradingAccount();\n\tconst setTradingMode = authStore.use.setTradingMode();\n\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst permissions = accountStatusStore.use.permissions();\n\tconst setShowModal = accountStatusStore.use.setShowModal();\n\tconst hasLiveAccount = accountStatusStore.use.hasLiveAccount();\n\tconst selectedTradingMode = authStore.use.tradingMode();\n\tconst addAccount = permissions.addAccount;\n\tconst accountStats = tradingAccountStore.use.accountStats();\n\tconst currentAccountUrl = tradingAccountStore.use.currentAccountUrl();\n\tconst userProfile = authStore.use.userProfile();\n\n\tconst { mutate: saveUserPreferences } = useSaveUserPreferences();\n\n\tconst email = appContext.email ?? userProfile.email!;\n\n\tconst accountsList = useMemo(\n\t\t() => accountStats.filter((account) => account.account.type.toLowerCase() === activeMenuItem?.toLowerCase()),\n\t\t[activeMenuItem, accountStats]\n\t);\n\n\tconst handleSwitchAccounts = (account: Account) => {\n\t\tif (selectedTradingAccount?.accountNumber !== account.accountNumber) {\n\t\t\tswitchAccounts(account);\n\t\t}\n\n\t\tif (account && account.accountNumber) {\n\t\t\tconst currentAcc = dashboardContext.rfpServerNames.find(\n\t\t\t\t(item) => item.ttAccountId === account.accountNumber!.toString()\n\t\t\t);\n\t\t\tif (currentAcc?.rfpDnsName && currentAcc?.rfpDnsName !== currentAccountUrl) {\n\t\t\t\tconst rfpUrlStorage = JSON.parse(localStorage.getItem('rfpUrl') || '{}');\n\t\t\t\tconst rfpUrlsObj = {\n\t\t\t\t\t...rfpUrlStorage,\n\t\t\t\t\t[email]: {\n\t\t\t\t\t\turl: currentAcc?.rfpDnsName,\n\t\t\t\t\t\tmode: account.type,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\tlocalStorage.setItem('rfpUrl', JSON.stringify(rfpUrlsObj));\n\n\t\t\t\tif (account.accountNumber && appContext.userPreferences) {\n\t\t\t\t\tappContext.userPreferences.user_prefs.platform.lastLoggedAct[\n\t\t\t\t\t\taccount.type.toLowerCase() as keyof LastLoggedAct\n\t\t\t\t\t] = account.accountNumber.toString();\n\t\t\t\t}\n\n\t\t\t\tsaveUserPreferences();\n\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\twindow.location.reload();\n\t\t\t\t}, 1000);\n\t\t\t}\n\t\t}\n\n\t\tsetAccountPopupIsOpen(false);\n\t};\n\n\tconst handleAddAccountClick = () => {\n\t\tif (hasNoDemoAccount) {\n\t\t\t// When login in DEMO mode, if there is no account a default one will be created\n\t\t\t// this is achieved by the setTradingMode\n\t\t\tdashboardContext.closeAllOtherTabs();\n\t\t\tif (activeMenuItem !== selectedTradingMode.toLowerCase()) {\n\t\t\t\tsetTradingMode(activeMenuItem.toUpperCase() as TradingMode);\n\t\t\t}\n\t\t\tsetAccountPopupIsOpen(false);\n\t\t\treturn;\n\t\t}\n\n\t\tif (addAccount === IStatusConfigEnum.addLiveAccount || addAccount === IStatusConfigEnum.addDemoAccount) {\n\t\t\tdashboardContext.presentComponentType = AppComponentType.OpenAccount;\n\t\t\thistory.push(Routes.trader.openAccount, { from: window.location.pathname });\n\t\t} else {\n\t\t\tsetShowModal(true);\n\t\t\tappContext.statusModal = true;\n\t\t}\n\n\t\tsetAccountPopupIsOpen(false);\n\t};\n\n\tconst isLiveMenu = activeMenuItem.toLowerCase() === 'live';\n\tconst showAddAccount =\n\t\t(!appContext.isJapanAccount &&\n\t\t\tpermissions?.addAccount &&\n\t\t\tselectedTradingMode.toLowerCase() === activeMenuItem.toLowerCase()) ||\n\t\t(isLiveMenu && !hasLiveAccount);\n\n\t// this is a temporary update for https://thinkmarkets.atlassian.net/browse/WTR-5012\n\t// >>> Temporarily remove the option to onboard on the Subscription account\n\t// const showAddJapanAccount = appContext.isJapanAccount && isLiveMenu && accountsList.length && accountsList.length < 2;\n\t// const hasJapanSpread = showAddJapanAccount && !!accountsList.find(({ platformAccountType }) => platformAccountType === PlatformAccountType.JapanSpread);\n\tconst hasJapanSpread = !!accountsList.find(({ platformAccountType }) => platformAccountType === PlatformAccountType.JapanSpread);\n\tconst showAddJapanAccount = appContext.isJapanAccount && isLiveMenu && !hasJapanSpread;\n\n\tconst hasNoDemoAccount = activeMenuItem.toLowerCase() === 'demo' && accountsList.length === 0;\n\n\treturn (\n\t\t
\n\t\t\t{accountsList.map(({ account, platformAccountType }: any) => {\n\t\t\t\tconst isLiveAccount = account.type === TradingAccountType.LIVE;\n\t\t\t\tconst isSpreadBettingAccount = platformAccountType === PlatformAccountType.SpreadBetting;\n\t\t\t\tconst isJapanSpreadAccount = platformAccountType === PlatformAccountType.JapanSpread;\n\t\t\t\tconst isJapanSubscriptionAccount = appContext.isJapanAccount && isLiveAccount && !isJapanSpreadAccount;\n\t\t\t\tconst hasSubscriptionOptions =\n\t\t\t\t\tisJapanSubscriptionAccount && checkHasSubscriptionOptions(subscriptionInfo.status);\n\t\t\t\tconst isCurrentAccount = account.accountNumber.toString() === selectedTradingAccount?.providerAccountId;\n\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t
handleSwitchAccounts(account)}>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{t(`en:LOGIN_VIEW_${account.type.toUpperCase()}`)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t{account.accountNumber}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{printAccountName({\n\t\t\t\t\t\t\t\t\t\tt,\n\t\t\t\t\t\t\t\t\t\tisLiveAccount,\n\t\t\t\t\t\t\t\t\t\tisSpreadBettingAccount,\n\t\t\t\t\t\t\t\t\t\tisJapanSpreadAccount,\n\t\t\t\t\t\t\t\t\t\tisJapanSubscriptionAccount,\n\t\t\t\t\t\t\t\t\t\tdefaultName: `${account.currency.code} • ${t('wtr:CFD')}`,\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{isCurrentAccount && hasSubscriptionOptions && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t);\n\t\t\t})}\n\n\t\t\t{(showAddAccount || hasNoDemoAccount || showAddJapanAccount) && (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default React.memo(TradingAccounts);\n","import React, { useContext, useEffect, useMemo, useRef, useState } from 'react';\n\nimport cn from 'classnames';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { IconName } from '@fortawesome/fontawesome-svg-core';\n\nimport DashboardContext from '../../../../../contexts/DashboardContext';\nimport RfpGatewayContext from '../../../../../contexts/RfpGatewayContext';\nimport { RFPDataObjectType } from '../../../../../gateways/RfpGateway/rfp.types';\nimport accountStatusStore from '../../../../../store/accountStatusStore';\nimport { TTradingMode } from '../../../../../contexts/AppContext';\n\nimport WtrPopup from '../../../../components/WtrPopup/WtrPopup';\n\nimport authStore from '../../../../../store/authStore';\nimport useSelectedTradingAccount from '../../../../../utils/hooks/useSelectedTradingAccount';\n\nimport tradingAccountStore from '../../../../../store/tradingAccountStore';\n\nimport AccountIconAndTier from '../components/AccountIconAndTier';\n\nimport TradingAccounts from './TradingAccounts/TradingAccounts';\n\nimport {printAccountName} from \"../../../../../utils/functions/getAccountStats\";\nimport {TradingAccountType} from \"../../../../../utils/functions/enums\";\n\nimport styles from './CurrencyStats.module.scss';\n\nconst TRADING_ACCOUNTS_TYPES = ['LIVE', 'DEMO'];\n\nconst CurrencyStats = () => {\n\tconst { t } = useTranslation();\n\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst rfpGateway = useContext(RfpGatewayContext);\n\n\tconst [isOpen, setIsOpen] = useState(false);\n\n\tconst hasLiveAccount = accountStatusStore.use.hasLiveAccount();\n\tconst hasDemoAccount = accountStatusStore.use.hasDemoAccount();\n\n\tconst isLiveMode = authStore.use.isLiveMode();\n\tconst isDemoMode = authStore.use.isDemoMode();\n\n\tconst tradingMode = authStore.use.tradingMode();\n\n\tconst isSpreadBettingAccount = tradingAccountStore.use.isSpreadBetting();\n\tconst isJapanSpreadAccount = tradingAccountStore.use.isJapanSpread();\n\tconst isJapanSubscriptionAccount = tradingAccountStore.use.isJapanSubscription();\n\n\tconst [activeMenuItem, setActiveMenuItem] = useState(\n\t\ttradingMode.toLowerCase() as TTradingMode | 'live' | 'demo'\n\t);\n\n\tconst selectedTradingAccount = useSelectedTradingAccount();\n\tconst iconButton: IconName = isOpen ? 'caret-up' : 'caret-down';\n\tconst accountTypeStyling = tradingMode === 'LIVE' ? styles.live : styles.demo;\n\tconst subIdRef = useRef(undefined);\n\tconst [hasTradingAccountsError, setHasTradingAccountsError] = useState(false);\n\n\tuseEffect(() => {\n\t\tif (dashboardContext.showOrderTicket) {\n\t\t\tsetIsOpen(false);\n\t\t}\n\t}, [dashboardContext.showOrderTicket]);\n\n\tuseEffect(() => {\n\t\tif (rfpGateway) {\n\t\t\tsubIdRef.current = rfpGateway.subscribeFor(RFPDataObjectType.TradingAccountsError, (message) => {\n\t\t\t\t// TODO: handle error\n\n\t\t\t\tsetHasTradingAccountsError(true);\n\t\t\t});\n\t\t}\n\t\treturn () => {\n\t\t\tif (rfpGateway && subIdRef.current) {\n\t\t\t\trfpGateway.unsubscribeFor(subIdRef.current);\n\t\t\t\tsubIdRef.current = undefined;\n\n\t\t\t\tsetHasTradingAccountsError(false);\n\t\t\t}\n\t\t};\n\t}, []);\n\n\t// We need accountFlag conditions because TFBO and RFP get information about selectedTradingAccount at different times\n\t// and this causes problems with displaying loader and icons for the AccountCurrency component\n\tconst accountFlag = useMemo(() => {\n\t\tif (\n\t\t\thasTradingAccountsError ||\n\t\t\t(isLiveMode && hasLiveAccount === false) ||\n\t\t\t(isDemoMode && hasDemoAccount === false)\n\t\t) {\n\t\t\treturn ;\n\t\t}\n\n\t\treturn ;\n\t}, [selectedTradingAccount, hasLiveAccount, hasDemoAccount, hasTradingAccountsError, isLiveMode, isDemoMode, isJapanSubscriptionAccount]);\n\n\tuseEffect(() => {\n\t\tif (!isOpen && TRADING_ACCOUNTS_TYPES.includes(tradingMode)) {\n\t\t\tsetActiveMenuItem(tradingMode.toLowerCase() as TTradingMode);\n\t\t}\n\t}, [isOpen, tradingMode]);\n\n\t// {hasTierInfo && canSeeSubscriptionDetails(subscriptionInfo.status) ? (\n\t// \t
\n\t// \t\t
\n\t// \t\t\t{getTierDisplayName(subscriptionInfo.tier)}\n\t//\n\t// \t\t\t
\n\t// \t\t\t\t\n\t// \t\t\t
\n\t// \t\t
\n\t//\n\t// \t\t{subscriptionInfo.tier !== subscriptionInfo.nextTier && (\n\t// \t\t\t
\n\t// \t\t\t\t{t('wtr:NEXT_MONTH')}: {getTierDisplayName(subscriptionInfo.nextTier)}\n\t// \t\t\t
\n\t// \t\t)}\n\t// \t
\n\n\treturn (\n\t\t setIsOpen(true)}\n\t\t\tonClose={() => setIsOpen(false)}\n\t\t\ttrigger={\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{accountFlag}\n\t\t\t\t\t\t{!isSpreadBettingAccount ? {t('wtr:CFD')} : null}\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t(`wtr:${tradingMode}`).toUpperCase()}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t{selectedTradingAccount?.accountNumber || 'N/A'}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{printAccountName({\n\t\t\t\t\t\t\t\tt,\n\t\t\t\t\t\t\t\tisLiveAccount: selectedTradingAccount?.accountType === TradingAccountType.LIVE,\n\t\t\t\t\t\t\t\tisSpreadBettingAccount,\n\t\t\t\t\t\t\t\tisJapanSpreadAccount,\n\t\t\t\t\t\t\t\tisJapanSubscriptionAccount,\n\t\t\t\t\t\t\t\tdefaultName: `${selectedTradingAccount?.baseCurrency || ''} • ${t('wtr:CFD')}`,\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t}\n\t\t\tcontent={\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t setActiveMenuItem('live')}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{t('en:LOGIN_VIEW_LIVE')}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t setActiveMenuItem('demo')}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{t('en:LOGIN_VIEW_DEMO')}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t}\n\t\t/>\n\t);\n};\n\nexport default CurrencyStats;\n","import { IconName } from '@fortawesome/fontawesome-svg-core';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport React, { useContext, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport AppContext from '../../../../../contexts/AppContext';\nimport DashboardContext from '../../../../../contexts/DashboardContext';\nimport useMoneyFormatter from '../../../../../utils/hooks/useMoneyFormatter';\nimport useShortTranslation from '../../../../../utils/hooks/useShortTranslation';\nimport useForceRerender from '../../../../../utils/hooks/useForceRerender';\nimport { formatNumberWithCommas } from '../../Watchlist/Instrument/formattedQuoteNumber';\n\nimport useObservable from '../../../../../utils/hooks/useObservable';\n\nimport { checkIsVolumeUnlimited } from '../../../../../utils/functions/subscriptionUtils';\n\nimport authStore, { AuthStore } from '../../../../../store/authStore';\n\nimport useSelectedTradingAccount from '../../../../../utils/hooks/useSelectedTradingAccount';\n\nimport {\n\tcalculateEquity,\n\tcalculateFreeMargin,\n\tcalculateMarginLevel,\n} from '../../../../../utils/functions/calculations';\n\nimport AccountStats from './AccountStats';\nimport MarginLevel from './MarginLevel';\nimport RemainingVolume from './RemainingVolume';\nimport CurrencyStats from './CurrencyStats';\n\nimport styles from './AccountPanel.module.scss';\nimport tradingAccountStore from '../../../../../store/tradingAccountStore';\n\ninterface IAccountPanelProps {\n\tisSearchBarOpen: boolean;\n}\n\nconst AccountPanel = ({ isSearchBarOpen }: IAccountPanelProps) => {\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst appContext = useContext(AppContext);\n\tconst tt = useShortTranslation('en:');\n\tconst { t } = useTranslation();\n\tconst forceRerender = useForceRerender();\n\tconst isJapanSubscriptionAccount = tradingAccountStore.use.isJapanSubscription();\n\n\tconst isLiveMode = authStore((store: AuthStore) => store.isLiveMode);\n\n\tconst [isMenuOpen, setIsMenuOpen] = useState(true);\n\n\tuseObservable(appContext.getPropertyChangeStream('subscriptionInfo'), () => {\n\t\tforceRerender();\n\t});\n\n\tconst selectedTradingAccount = useSelectedTradingAccount();\n\n\t// The variable accountMcLevel is used to determine the margin level for each account.\n\t// Ideally, this value should be retrieved from the backend service, based on the account settings.\n\t// However, for the time being, we will hardcode this value as a temporary workaround.\n\tconst accountMcLevel = useMemo(() => (appContext.isJapanAccount ? 1.2 : 1.0), [appContext.isJapanAccount]);\n\n\t// const selectedAccountStats = tradingAccountStore.use.selectedAccountStats();\n\t// what follows is potentially one of the worst snippets of code I've written; ever\n\t// unfortuantely at the moment we don't have a better solution\n\t// what happens is that every time a tick for an instrument the user has an opened\n\t// position for the profit/loss is calculated inside websocket.ts using the calculations\n\t// utils and put on the dashbaordContext.tradingAccount[INDEX].netProfit\n\t// unfortunately with the observable contexts we are not notified for that change as it relies\n\t// on some quirks of JS so forceRerender on dashboardCtx.tradingaAccount change won't work\n\t// for the same reason we chan't use useMemo for selectedTradingAccount - we always need a fresh\n\t// value as the new data is inside the array;\n\t//\n\t// the solutions is: forceRerender every 1.5 seconds (this was used in the previous AccountPanel as well),\n\t// triggering the setTimeout on mount\n\t//\n\t// this is one of the first things that need to go once we have proper AccountContext :)\n\t//\n\t// self-invoking forceRerender function\n\tconst rerender = () => {\n\t\tforceRerender();\n\t\tsetTimeout(rerender, 1500);\n\t};\n\t// start the force-rerendering\n\tuseEffect(rerender, []);\n\n\tconst formatAsMoney = useMoneyFormatter(selectedTradingAccount);\n\n\tdashboardContext.accountValues.balance = selectedTradingAccount?.balance || 0;\n\tdashboardContext.accountValues.margin = selectedTradingAccount?.usedMargin || 0;\n\n\tconst accountProfitLoss = selectedTradingAccount?.netProfit || 0;\n\tconst calculatedEquity = calculateEquity({\n\t\tbalance: dashboardContext.accountValues?.balance,\n\t\tprofitLoss: accountProfitLoss,\n\t});\n\tconst calculatedFreeMargin = parseFloat(\n\t\tcalculateFreeMargin({\n\t\t\tequity: calculatedEquity,\n\t\t\taccountMcLevel,\n\t\t\tusedMargin: dashboardContext.accountValues.margin,\n\t\t}).toFixed(2)\n\t);\n\tconst calculatedMarginLevel = calculateMarginLevel({\n\t\tequity: calculatedEquity,\n\t\tusedMargin: dashboardContext.accountValues.margin,\n\t});\n\n\tdashboardContext.accountValues.pl = +accountProfitLoss.toFixed(2);\n\tdashboardContext.accountValues.equity = parseFloat(calculatedEquity.toFixed(2));\n\tdashboardContext.accountValues.freeMargin = calculatedFreeMargin;\n\tdashboardContext.accountValues.marginLevel = parseFloat(calculatedMarginLevel.toFixed(2));\n\n\tif (selectedTradingAccount) {\n\t\tselectedTradingAccount.freeMargin = calculatedFreeMargin;\n\t}\n\n\tuseEffect(() => {\n\t\tconst isAccountPanelOpen = localStorage.getItem('isAccountPanelOpen');\n\n\t\tif (isAccountPanelOpen === 'true') {\n\t\t\tsetIsMenuOpen(true);\n\t\t} else if (isAccountPanelOpen === 'false') {\n\t\t\tsetIsMenuOpen(false);\n\t\t} else {\n\t\t\tlocalStorage.setItem('isAccountPanelOpen', 'true');\n\t\t\tsetIsMenuOpen(true);\n\t\t}\n\t}, []);\n\n\tconst balance = formatAsMoney(dashboardContext.accountValues.balance);\n\tconst profitLoss = formatAsMoney(dashboardContext.accountValues.pl);\n\tconst equity = formatAsMoney(dashboardContext.accountValues.equity);\n\tconst marginValue = formatAsMoney(dashboardContext.accountValues.margin);\n\tconst availableMargin = formatAsMoney(dashboardContext.accountValues.freeMargin);\n\n\tconst marginLevel = formatNumberWithCommas(\n\t\tisNaN(dashboardContext.accountValues.marginLevel) ? 0 : dashboardContext.accountValues.marginLevel,\n\t\t2,\n\t\tappContext.languageSettings\n\t);\n\n\tconst handleToggleAccountPanel = () => {\n\t\tlocalStorage.setItem('isAccountPanelOpen', (!isMenuOpen).toString());\n\t\tsetIsMenuOpen(!isMenuOpen);\n\t};\n\n\tconst mustShowRemainingVolume =\n\t\tisJapanSubscriptionAccount &&\n\t\tisLiveMode &&\n\t\tappContext.subscriptionInfo?.maxVolume &&\n\t\t!checkIsVolumeUnlimited(appContext.subscriptionInfo);\n\n\tlet triggerAccountBalance = window.innerWidth <= 1680 ? isMenuOpen && !isSearchBarOpen : isMenuOpen;\n\tlet iconButton: IconName = isMenuOpen && triggerAccountBalance ? 'caret-right' : 'caret-left';\n\n\tif (appContext.isArabic) {\n\t\ticonButton = isMenuOpen && triggerAccountBalance ? 'caret-left' : 'caret-right';\n\t}\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\n\t\t\t{triggerAccountBalance && (\n\t\t\t\t<>\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\n\t\t\t\t\t\n\n\t\t\t\t\t{mustShowRemainingVolume && }\n\t\t\t\t\n\t\t\t)}\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default AccountPanel;\n","import React, { useContext, useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { useIdleTimer } from 'react-idle-timer';\n\nimport Routes from '../../../../setup/routes';\nimport { MarketItem, SelectedSymbol } from '../../../../gateways/RfpGateway/rfp.types';\nimport InstrumentSearch from '../InstrumentSearch/InstrumentSearch';\nimport uniqueId from '../../../../utils/functions/uniqueId';\n\nimport useLogout from '../../../../utils/hooks/useLogout';\nimport useObservable from '../../../../utils/hooks/useObservable';\nimport usePromiseFactory from '../../../../utils/hooks/usePromiseFactory';\nimport useForceRerender from '../../../../utils/hooks/useForceRerender';\n\nimport AppContext from '../../../../contexts/AppContext';\nimport ChartContext from '../../../../contexts/ChartContext';\nimport DashboardContext from '../../../../contexts/DashboardContext';\nimport { simulateMouseEvent } from '../../../../utils/functions/simulateClick';\nimport { AppComponentType } from '../../../../utils/functions/enums';\nimport { TradersGymContext, TradersGymContextType } from '../../../../pages/TradersGym/TradersGymContext';\n\nimport Notifications from '../../../components/Notifications';\n\nimport Community from '../../../components/Community';\n\nimport authStore from '../../../../store/authStore';\nimport TradingViewStore from '../../../../store/tradingViewStore';\n\nimport tradingAccountStore from '../../../../store/tradingAccountStore';\n\nimport AccountMenu from './components/AccountMenu';\nimport AccountPanel from './AccountPanel/AccountPanel';\n\nimport styles from './Header.module.scss';\n\ninterface HeaderProps {\n\tshowSearch: boolean;\n}\n\nconst Header: React.FC = ({ showSearch }) => {\n\tconst appContext = useContext(AppContext);\n\tconst chartContext = useContext(ChartContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst gymContext = useContext(TradersGymContext) as TradersGymContextType;\n\tconst { tradersGymContext, setGymProps } = gymContext;\n\n\tconst promiseFactory = usePromiseFactory();\n\tconst forceRerender = useForceRerender();\n\tconst history = useHistory();\n\n\tconst isChildWindow = appContext.isChildWindow;\n\tconst isInTradersGymMode = tradersGymContext.isActive;\n\n\tconst tradingAccount = dashboardContext.tradingAccount;\n\n\tconst [accountPopupIsOpen, setAccountPopupIsOpen] = useState(false);\n\tconst [openNotifications, setOpenNotifications] = useState(false);\n\n\tconst [resetIdleTimer, setResetIdleTimer] = useState(false);\n\tconst userProfile = authStore.use.userProfile();\n\tconst isFundedTrader = tradingAccountStore.use.isFundedTrader();\n\tconst isSearchbarOpen = TradingViewStore.use.isSearchOpen();\n\tconst setIsSearchbarOpen = TradingViewStore.use.setIsSearchOpen();\n\tconst setIsCompSymbolMode = TradingViewStore.use.setIsCompSymbolMode();\n\tconst isCompSymbolMode = TradingViewStore.use.isCompSymbolMode();\n\n\tconst { start } = useIdleTimer({\n\t\ttimeout: 1000 * dashboardContext.inactiveTime,\n\t\tonIdle: useLogout(),\n\t\tdebounce: 500,\n\t\tstartManually: true,\n\t});\n\n\tuseEffect(() => {\n\t\tstart();\n\t}, [resetIdleTimer]);\n\n\tuseObservable(appContext.getPropertyChangeStream('appTheme'), () => forceRerender());\n\n\tuseObservable(\n\t\tdashboardContext.getPropertyChangeStream(\n\t\t\t'tradingAccount',\n\t\t\t'accountType',\n\t\t\t'inactiveTime',\n\t\t\t'quantityType',\n\t\t\t'selectedSymbol',\n\t\t\t'applicationStatus',\n\t\t\t'showNewsFeed',\n\t\t\t'initialTimezone',\n\t\t\t'showOrderInformation',\n\t\t\t'showOrderTicket',\n\t\t\t'showCloseTicket',\n\t\t\t'twoFactorAuthModalToggle',\n\t\t\t'accountValues',\n\t\t\t'accountPopupToggle'\n\t\t),\n\t\t(_) => {\n\t\t\tpromiseFactory.throttle('dashboardContext.propertyChanged', 100).then(() => {\n\t\t\t\tforceRerender();\n\t\t\t});\n\t\t}\n\t);\n\n\tfunction filterInstruments(instrument: MarketItem, searchString: string): boolean {\n\t\tsearchString = (searchString || '').trim().toLowerCase();\n\t\treturn (\n\t\t\tsearchString === '' ||\n\t\t\tinstrument.code?.toLowerCase().includes(searchString) ||\n\t\t\tinstrument.fullName?.toLowerCase().includes(searchString) ||\n\t\t\tinstrument.grp?.toLowerCase().includes(searchString) ||\n\t\t\t(instrument.exchangeTicker ?? '')?.toLowerCase().includes(searchString)\n\t\t);\n\t}\n\n\tfunction viewInstrument(marketItem: MarketItem, gridViewCharts?: boolean) {\n\t\tif (isInTradersGymMode) {\n\t\t\t// Simulate chart click to close the search.\n\t\t\tsimulateMouseEvent(document, 'mousedown', 0, 0);\n\n\t\t\tsetGymProps({ searchInstrumentSelected: marketItem, isOpenCreateSimulationModal: true });\n\t\t\treturn;\n\t\t}\n\n\t\tif (!gridViewCharts) {\n\t\t\tif (isChildWindow) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (window.innerWidth < 1024) {\n\t\t\t\thistory.push(Routes.trader.charts);\n\t\t\t}\n\n\t\t\tdashboardContext.historicalData = [];\n\t\t\tdashboardContext.selectedInstrument = marketItem;\n\t\t\tdashboardContext.selectedType = 'Instrument';\n\n\t\t\tconst newChartId = uniqueId();\n\t\t\tlet selectedSymbols: SelectedSymbol = {};\n\t\t\tfor (let i = 0; i < 2; i++) {\n\t\t\t\tselectedSymbols[newChartId] = marketItem;\n\t\t\t}\n\n\t\t\tdashboardContext.selectedSymbol = {\n\t\t\t\t...Object.entries(dashboardContext.selectedSymbol).slice(0, 0),\n\t\t\t\t...selectedSymbols,\n\t\t\t};\n\t\t\tdashboardContext.newChart = true;\n\t\t\tchartContext.setSingleActiveChart(newChartId);\n\t\t} else {\n\t\t\tconst onTradePage =\n\t\t\t\twindow.location.pathname.split('/')[window.location.pathname.split('/').length - 1] === 'watchlist';\n\t\t\t// Case for Markets page\n\t\t\tif (!onTradePage) {\n\t\t\t\tconst getChartSymbol = JSON.parse(localStorage.getItem(`myChartLayoutchart0`)!);\n\t\t\t\tconst updateSymbol = { ...getChartSymbol, symbols: [marketItem] };\n\t\t\t\tlocalStorage.setItem(`myChartLayoutchart0`, JSON.stringify(updateSymbol));\n\t\t\t}\n\t\t\tdashboardContext.selectedInstrument = marketItem;\n\n\t\t\tdashboardContext.toggleAccordionMenu = '0';\n\t\t\tdashboardContext.showCancelTicket = false;\n\t\t\tdashboardContext.showCloseTicket = false;\n\t\t\tif (dashboardContext.showConfirmTicket) {\n\t\t\t\tdashboardContext.showConfirmTicket = false;\n\t\t\t\tdashboardContext.showOrderTicket = false;\n\t\t\t}\n\t\t\tif (!onTradePage) {\n\t\t\t\tdashboardContext.showNewsFeed = false;\n\t\t\t\tdashboardContext.modifyTicket = false;\n\t\t\t\tdashboardContext.showOrderTicket = false;\n\n\t\t\t\tif (tradingAccount.length > 0) {\n\t\t\t\t\tdashboardContext.showOrderInformation = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tdashboardContext.selectedType = 'Instrument';\n\t\t\tdashboardContext.gridChartsChanged = true;\n\n\t\t\tif (!isChildWindow) {\n\t\t\t\thistory.push(Routes.trader.watchlist, { from: window.location.pathname });\n\t\t\t\tdashboardContext.presentComponentType = AppComponentType.Watchlist;\n\t\t\t}\n\n\t\t\tsimulateMouseEvent(document, 'mousedown', 0, 0);\n\t\t}\n\t}\n\n\tconst handleCloseClick = () => {\n\t\tif (isCompSymbolMode) {\n\t\t\tsetIsCompSymbolMode(false);\n\t\t}\n\t\tsetIsSearchbarOpen(false);\n\t};\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\n\t\t\t\t{showSearch && (\n\t\t\t\t\t\n\t\t\t\t\t\t setIsSearchbarOpen(true)}\n\t\t\t\t\t\t\tonClose={handleCloseClick}\n\t\t\t\t\t\t\tthrottle={100}\n\t\t\t\t\t\t\tmaxWatchlistNameLength={20}\n\t\t\t\t\t\t\tfilter={filterInstruments}\n\t\t\t\t\t\t\tviewInstrument={(instrument) => viewInstrument(instrument, true)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t\n\t\t\t\t{userProfile.id && !isFundedTrader && }\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default Header;\n","import { IconName } from '@fortawesome/fontawesome-svg-core';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport React, { RefObject, useContext, useRef } from 'react';\n\nimport cn from 'classnames';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router';\n\nimport WtrTooltip from '../../../../../shared/WtrTooltip/WtrTooltip';\n\nimport { AppComponentType } from '../../../../../utils/functions/enums';\nimport DashboardContext from '../../../../../contexts/DashboardContext';\n\nimport { TradersGymContext, TradersGymContextType } from '../../../../../pages/TradersGym/TradersGymContext';\n\nimport styles from './Item.module.scss';\nconst noop = () => {};\ninterface ItemProps {\n\ticon: IconName;\n\troute: string;\n\ttooltip: string;\n\tcomponent?: AppComponentType;\n\tpreClick?: () => boolean | Promise;\n\tskipIndicator?: boolean;\n\titemClass?: string;\n\ticonClass?: string;\n\tcontainerClass?: string;\n\tdisableTooltip?: boolean;\n\tdisabled?: boolean;\n\tisLoading?: boolean;\n\trefNeeded?: boolean;\n\tsetParentRef?: (ref: RefObject) => void;\n}\n\nconst Item = ({\n\ticon,\n\troute,\n\tcomponent,\n\ttooltip,\n\tskipIndicator = false,\n\titemClass,\n\tcontainerClass,\n\ticonClass,\n\tpreClick = () => true,\n\tdisableTooltip = false,\n\tdisabled = false,\n\tisLoading = false,\n\trefNeeded,\n\tsetParentRef = noop,\n}: ItemProps) => {\n\tconst { t } = useTranslation();\n\tconst gymContext = useContext(TradersGymContext);\n\tconst { tradersGymContext } = gymContext as TradersGymContextType;\n\tconst parentRef: RefObject = useRef(null);\n\n\tif (refNeeded) setParentRef(parentRef);\n\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst history = useHistory();\n\n\tconst handleItemClick = async () => {\n\t\tif (disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (tradersGymContext.isActive) {\n\t\t\ttradersGymContext.isActive = false;\n\t\t}\n\n\t\tconst preclickResult = await preClick();\n\t\tif (preclickResult) {\n\t\t\tdashboardContext.closeAllOtherTabs();\n\t\t\thistory.push(route);\n\t\t\tif (component !== undefined) dashboardContext.presentComponentType = component;\n\t\t}\n\t};\n\n\tconst active = history.location.pathname === route;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default Item;\n","import React from 'react';\n\nimport Routes from '../../../../../setup/routes';\nimport { AppComponentType } from '../../../../../utils/functions/enums';\n\nimport { Item } from './';\n\nconst Trade = () => {\n\treturn (\n\t\t\n\t);\n};\n\nexport default Trade;\n","import React from 'react';\n\nimport Routes from '../../../../../setup/routes';\nimport { AppComponentType } from '../../../../../utils/functions/enums';\n\nimport { Item } from './';\n\nconst Markets = () => {\n\treturn (\n\t\t\n\t);\n};\n\nexport default Markets;\n","import React, { useEffect } from 'react';\n\nconst useOutsideAlerter = (ref: React.MutableRefObject, callback: Function) => {\n\tuseEffect(() => {\n\t\tconst handleClickOutside = (event: MouseEvent) => {\n\t\t\tif (ref.current && !ref.current.contains(event.target)) {\n\t\t\t\tcallback();\n\t\t\t}\n\t\t};\n\n\t\t// Bind the event listener\n\t\tdocument.addEventListener('mousedown', handleClickOutside);\n\t\treturn () => {\n\t\t\t// Unbind the event listener on clean up\n\t\t\tdocument.removeEventListener('mousedown', handleClickOutside);\n\t\t};\n\t}, [ref]);\n};\n\nexport default useOutsideAlerter;\n","import React, { useState, useEffect, useRef, createRef, Ref, RefObject, useContext } from 'react';\n\nimport AppContext from '../../contexts/AppContext';\nimport useOutsideAlerter from '../../views/components/SearchInput/useOutsideAlerter';\n\nimport styles from './InfoModal.module.scss';\n\ntype Arrow = 'left' | 'right' | 'top' | 'bottom';\n\ninterface InfoModalProps {\n\tarrow?: Arrow;\n\theader?: React.ReactNode;\n\tcontent?: React.ReactNode;\n\tfooter?: React.ReactNode;\n\tcloseInfoModal: () => void;\n\tparentRef: RefObject;\n\tadditionalPositioning?: { x: number; y: number };\n}\n\nconst InfoModal: React.FC = ({\n\tarrow,\n\theader,\n\tcontent,\n\tfooter,\n\tcloseInfoModal,\n\tparentRef,\n\tadditionalPositioning,\n}) => {\n\tconst childRef: RefObject = useRef(null);\n\tconst divRefArrow = useRef(null);\n\tconst [parentPosition, setParentPosition] = useState({ x: 0, y: 0 });\n\tconst appContext = useContext(AppContext);\n\n\tconst isArabic = !!appContext.isArabic || !!(localStorage.getItem('language') === 'ar-SA');\n\tconst calculateParentPosition = () => {\n\t\tif (parentRef?.current) {\n\t\t\tconst { x, y } = parentRef.current.getBoundingClientRect();\n\n\t\t\tsetParentPosition({ x, y });\n\t\t}\n\t};\n\tuseOutsideAlerter(childRef, () => closeInfoModal());\n\n\tuseEffect(() => {\n\t\tcalculateParentPosition();\n\t\twindow.addEventListener('resize', calculateParentPosition);\n\t\treturn () => {\n\t\t\twindow.removeEventListener('resize', calculateParentPosition);\n\t\t};\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (parentRef.current && childRef.current) {\n\t\t\tconst parentCenterY = parentPosition.y + parentRef.current.offsetHeight / 2;\n\t\t\tconst childHeight = childRef.current.offsetHeight;\n\t\t\tconst childwidth = childRef.current.offsetWidth;\n\n\t\t\tif (isArabic) {\n\t\t\t\tchildRef.current.style.left = `${parentRef.current.getBoundingClientRect().right - childwidth - 50}px`;\n\t\t\t\tchildRef.current.style.top = `${parentCenterY - childHeight / 2 + 15}px`;\n\t\t\t} else {\n\t\t\t\tchildRef.current.style.left = `${parentRef.current.getBoundingClientRect().right + 15}px`;\n\t\t\t\tchildRef.current.style.top = `${parentCenterY - childHeight / 2}px`;\n\t\t\t}\n\n\t\t\tif (additionalPositioning) {\n\t\t\t\tif (additionalPositioning.x !== 0) {\n\t\t\t\t\tchildRef.current.style.left = `${parseInt(childRef.current.style.left, 10) + additionalPositioning.x}px`;\n\t\t\t\t}\n\t\t\t\tif (additionalPositioning.y !== 0) {\n\t\t\t\t\tchildRef.current.style.top = `${parseInt(childRef.current.style.top, 10) + additionalPositioning.y}px`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [parentPosition, additionalPositioning, isArabic]);\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
{header}
\n\t\t\t\t\t{content ?
{content}
: null}\n\t\t\t\t
\n\t\t\t\t
{footer}
\n\t\t\t\t{arrow &&
}\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default InfoModal;\n","import React, { useContext, useRef, useState, useEffect, RefObject, createRef } from 'react';\n\nimport { useHistory } from 'react-router';\n\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport AppContext from '../../../../../contexts/AppContext';\n\nimport Routes from '../../../../../setup/routes';\nimport { AppComponentType } from '../../../../../utils/functions/enums';\nimport WtrPopup from '../../../../components/WtrPopup/WtrPopup';\n\nimport DashboardContext from '../../../../../contexts/DashboardContext';\n\nimport useSignalsAccessRestriction from '../../../../../utils/hooks/useSignalsAccessRestriction';\n\nimport statusStore from '../../../../../store/accountStatusStore';\n\nimport { IStatusConfigEnum } from '../../../../components/Permissions/config.types';\n\nimport { signalsBpKey, signalsBpVal } from '../../../../../setup/config';\n\nimport authStore from '../../../../../store/authStore';\n\nimport Button from '../../../../../shared/Button';\n\nimport InfoModal from '../../../../../components/InfoModal/InfoModal';\n\nimport Item from './Item';\n\nimport tradingAccountStore from '../../../../../store/tradingAccountStore';\n\nimport styles from './Signals.module.scss';\n\nconst Signals = () => {\n\tconst signalPopupRef = useRef(null);\n\tconst [openSignalPopup, setOpenSignalPopup] = useState(false);\n\tconst [parentRef, setParentRef] = useState>(createRef());\n\tconst { t } = useTranslation();\n\n\tconst permissions = statusStore((state: any) => state.permissions);\n\tconst hasLiveAccount = statusStore.use.hasLiveAccount();\n\n\tconst isJapanAccount = authStore.use.isJapanAccount();\n\tconst isSouthAfricaAccount = authStore.use.isSouthAfricaAccount();\n\tconst isFundedTrader = tradingAccountStore.use.isFundedTrader();\n\n\tconst signalsAction = permissions?.signalsAction;\n\tconst appContext = useContext(AppContext);\n\tconst isArabic = !!appContext.isArabic || !!(localStorage.getItem('language') === 'ar-SA');\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst history = useHistory();\n\n\tconst { data: isUserAllowedToAccessSignals, refetch } = useSignalsAccessRestriction({ enabled: false });\n\n\tuseEffect(() => {\n\t\tif (dashboardContext.marketItems !== undefined && dashboardContext.marketItems.length > 0) {\n\t\t\trefetch();\n\t\t}\n\t}, [dashboardContext.marketItems]);\n\n\tconst handlePreClick = async (): Promise => {\n\t\t// this is here so QA team can check the signals page on production\n\t\t// apparently we can't simulate transactions on Prod and whitelisting on the BE\n\t\t// is too hard\n\n\t\tif (signalsAction === undefined) {\n\t\t\tif (isUserAllowedToAccessSignals) return true;\n\t\t\treturn false;\n\t\t}\n\n\t\tif (localStorage.getItem(signalsBpKey) === signalsBpVal) return true;\n\n\t\tif (signalsAction === IStatusConfigEnum.balanceCheck) {\n\t\t\tif (isUserAllowedToAccessSignals) return true;\n\n\t\t\tconst { data: signalsAccessSecondCheck } = await refetch();\n\n\t\t\tif (signalsAccessSecondCheck) return true;\n\t\t}\n\n\t\tsetOpenSignalPopup(true);\n\t\tdocument.body.addEventListener('mousedown', (event: MouseEvent): void => {\n\t\t\tif (signalPopupRef.current && !signalPopupRef.current.contains(event.target as any)) {\n\t\t\t\tsetOpenSignalPopup(false);\n\t\t\t}\n\t\t});\n\n\t\treturn false;\n\t};\n\n\tconst handleSignalPopupCta = () => {\n\t\tif (signalsAction === undefined) {\n\t\t\tif (isUserAllowedToAccessSignals) return true;\n\t\t\treturn false;\n\t\t}\n\n\t\tif (signalsAction === IStatusConfigEnum.balanceCheck) {\n\t\t\tdashboardContext.presentComponentType = AppComponentType.Deposits;\n\t\t\thistory.push(Routes.trader.funds, { from: window.location.pathname });\n\t\t} else {\n\t\t\tdashboardContext.presentComponentType = AppComponentType.OpenAccount;\n\t\t\thistory.push(Routes.trader.openAccount, { from: window.location.pathname });\n\t\t}\n\t\tsetOpenSignalPopup(false);\n\t};\n\n\tif (isJapanAccount || isSouthAfricaAccount || isFundedTrader) return null;\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t}\n\t\t\t\tpinned\n\t\t\t\ton=\"click\"\n\t\t\t\topen={openSignalPopup}\n\t\t\t\tposition={`${appContext.isArabic ? 'left' : 'right'} center`}\n\t\t\t\tcontent={<>}\n\t\t\t/>\n\t\t\t{openSignalPopup && (\n\t\t\t\t setOpenSignalPopup(false)}\n\t\t\t\t\tadditionalPositioning={{ x: -12.5, y: -5 }}\n\t\t\t\t\tarrow={isArabic ? 'right' : 'left'}\n\t\t\t\t\tparentRef={parentRef}\n\t\t\t\t\theader={\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{hasLiveAccount ? t('wtr:UNLOCK_SIGNALS_TITLE_LIVE') : t('wtr:UNLOCK_SIGNALS_TITLE_DEMO')}

\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t\tcontent={\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t\tfooter={\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t setOpenSignalPopup(false)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t)}\n\t\t
\n\t);\n};\n\nexport default Signals;\n","import React from 'react';\n\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport Button from '../../../../../shared/Button/Button';\n\nimport statusStore from '../../../../../store/accountStatusStore';\n\nimport { IStatusConfigEnum } from '../../../../components/Permissions/config.types';\n\nimport styles from './SignalsPopup.module.scss';\n\ninterface SignalsPopupProps {\n\thandleSignalPopupCta: () => void;\n\tsetOpenSignalPopup: (open: boolean) => void;\n\tsignalsAction: string;\n}\n\nconst SignalsPopup = React.forwardRef(\n\t({ setOpenSignalPopup, handleSignalPopupCta, signalsAction }: SignalsPopupProps, ref) => {\n\t\tconst { t } = useTranslation();\n\n\t\tconst hasLiveAccount = statusStore.use.hasLiveAccount();\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{hasLiveAccount ? t('wtr:UNLOCK_SIGNALS_TITLE_LIVE') : t('wtr:UNLOCK_SIGNALS_TITLE_DEMO')}\n\t\t\t\t\n\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t setOpenSignalPopup(false)}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n);\n\nexport default SignalsPopup;\n","import React from 'react';\n\nimport Routes from '../../../../../setup/routes';\nimport { AppComponentType } from '../../../../../utils/functions/enums';\n\nimport { Item } from './';\n\nconst Calendar = () => {\n\treturn (\n\t\t\n\t);\n};\n\nexport default Calendar;\n","import React, { useContext } from 'react';\n\nimport AppContext from '../../../../../contexts/AppContext';\n\nimport useObservable from '../../../../../utils/hooks/useObservable';\nimport authStore, { AuthStore } from '../../../../../store/authStore';\nimport useForceRerender from '../../../../../utils/hooks/useForceRerender';\n\nimport { AppComponentType } from '../../../../../utils/functions/enums';\n\nimport accountStatusStore, { StatusStore } from '../../../../../store/accountStatusStore';\n\nimport Routes from '../../../../../setup/routes';\nimport { IStatusConfigEnum } from '../../../../components/Permissions/config.types';\n\nimport { Item } from './';\n\nconst Management = () => {\n\tconst appContext = useContext(AppContext);\n\tconst { isJapanAccount } = useContext(AppContext);\n\n\tconst permissions = accountStatusStore((store: StatusStore) => store.permissions);\n\tconst mainMenuAction = permissions?.mainMenuAction;\n\tconst portalPage = permissions?.portalPage;\n\tconst setShowAccountStatus = accountStatusStore((store: StatusStore) => store.setShowAccountStatus);\n\tconst isDemoMode = authStore((store: AuthStore) => store.isDemoMode);\n\tconst hasLiveAccount = accountStatusStore((store: StatusStore) => store.hasLiveAccount);\n\n\tlet component;\n\tlet route = Routes.trader.funds;\n\tconst forceRerender = useForceRerender();\n\tuseObservable(appContext.getPropertyChangeStream('accountStats'), () => forceRerender());\n\n\t// in case of JAPAN where should lead ???\n\n\tif (portalPage === IStatusConfigEnum.deposits) {\n\t\tcomponent = AppComponentType.Funds;\n\t\troute = Routes.trader.funds;\n\t} else if (portalPage === IStatusConfigEnum.fork) {\n\t\tcomponent = AppComponentType.CompleteOnboarding;\n\t\troute = Routes.trader.openAccount;\n\t} else if (portalPage === IStatusConfigEnum.relevantStep) {\n\t\tcomponent = AppComponentType.UploadDocuments;\n\t\troute = Routes.trader.uploadDocuments;\n\t} else if (portalPage === IStatusConfigEnum.statusPage) {\n\t\tcomponent = AppComponentType.Status;\n\t\troute = Routes.trader.status;\n\t} else if (isJapanAccount) {\n\t\tcomponent = AppComponentType.OpenAccount;\n\t\troute = Routes.trader.openAccount;\n\t}\n\n\tconst handleAccountClick = () => {\n\t\tif (portalPage === IStatusConfigEnum.accountStatus) {\n\t\t\tsetShowAccountStatus();\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t};\n\n\tif (isDemoMode) return null;\n\tif (isDemoMode && appContext.isJapanAccount && hasLiveAccount) return null;\n\n\treturn (\n\t\t\n\t);\n};\n\nexport default Management;\n","import React, { useContext } from 'react';\n\nimport DashboardContext from '../../../../../contexts/DashboardContext';\nimport Routes from '../../../../../setup/routes';\nimport AppContext from '../../../../../contexts/AppContext';\n\nimport { AppComponentType } from '../../../../../utils/functions/enums';\n\nimport { Item } from './';\nimport authStore from '../../../../../store/authStore';\n\nconst Guide = () => {\n\tconst isJapanAccount = authStore.use.isJapanAccount();\n\n\tconst dashboardContext = useContext(DashboardContext);\n\n\tconst handleClick = () => {\n\t\tif (isJapanAccount) {\n\t\t\tdashboardContext.userGuide = true;\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t};\n\n\treturn (\n\t\t\n\t);\n};\n\nexport default Guide;\n","import { HistoryTick, PriceQuote, TradingPositionState } from '../../../gateways/RfpGateway/rfp.types';\nimport { TradingPositionSide, TradingPositionType } from '../../../utils/functions/enums';\nimport { GymTradingAccount } from '../Accounts/GymTradingAccount';\nimport { GymDataItemPlayer } from '../Player/GymDataItemPlayer';\n\nimport { GymPositionUtils } from './GymPositionUtils';\n\nimport { GymTradingPosition } from './GymTradingPosition';\n\nexport interface GymPositionManagerDelegate {\n\tpositionClosed?(sender: GymPositionManager, position: GymTradingPosition): void;\n\tpositionOpened?(sender: GymPositionManager, position: GymTradingPosition): void;\n\tpositionModified?(sender: GymPositionManager, position: GymTradingPosition, prevPosition: GymTradingPosition): void;\n\tpositionUpdated?(sender: GymPositionManager, position: GymTradingPosition): void;\n\tpositionDeleted?(sender: GymPositionManager, position: GymTradingPosition): void;\n\tpositionRestored?(sender: GymPositionManager, position: GymTradingPosition): void;\n\tpositionManagerMarginCall?(sender: GymPositionManager): void;\n}\n\nexport class GymPositionManager {\n\tprivate readonly account: GymTradingAccount;\n\tprivate player: GymDataItemPlayer;\n\tprivate delegates: Set = new Set();\n\n\tconstructor(account: GymTradingAccount, player: GymDataItemPlayer) {\n\t\tthis.account = account;\n\t\tthis.player = player;\n\t}\n\n\taddDelegate(delegate: GymPositionManagerDelegate) {\n\t\tthis.delegates.add(delegate);\n\t}\n\n\tremoveDelegate(delegate: GymPositionManagerDelegate) {\n\t\tthis.delegates.delete(delegate);\n\t}\n\n\t// private removeActivePositionWithId(positionId: number | undefined) {\n\t// \tconst index = this.account.activePositions.findIndex((position) => {\n\t// \t\treturn position.posId === positionId;\n\t// \t});\n\t// \tif (index) {\n\t// \t\tthis.account.activePositions.splice(index, 1);\n\t// \t}\n\t// }\n\n\t// removeActivePositionsAfterHistoryTick(dataItem: HistoryTick, priceQuote: PriceQuote, simulationId: string) {\n\t// \tconst feedId = dataItem.feedId;\n\t// \tconst code = dataItem.code;\n\t// \tconst shouldStoreAccountData = this.account.activePositions.length > 0;\n\t//\n\t// \tthis.account.activePositions.forEach((position) => {\n\t// \t\tif (position.posId && position.f === feedId && position.code === code && position.simulationId === simulationId) {\n\t// \t\t\tconst openTimeInMillis = position.oT ?? 0 * 1000;\n\t// \t\t\tif (openTimeInMillis > dataItem.closeTime) {\n\t// \t\t\t\tGymTradingPosition.removePositionStore(position.simulationId, position.posId);\n\t// \t\t\t\tthis.removeActivePositionWithId(position.posId);\n\t//\n\t// \t\t\t\tthis.account.calcUsedMargin();\n\t// \t\t\t\tthis.account.grossProfit = this.calcGrossProfit();\n\t//\n\t// \t\t\t\t// Notify delegate\n\t// \t\t\t\tthis.delegates.forEach((delegate) => {\n\t// \t\t\t\t\tdelegate.positionDeleted && delegate.positionDeleted(this, position);\n\t// \t\t\t\t});\n\t// \t\t\t} else {\n\t// \t\t\t\tposition.lastDataCloseTime = dataItem.closeTime;\n\t// \t\t\t\tposition.lastDataClosePrice = dataItem.close;\n\t//\n\t// \t\t\t\tposition.calcProfit(this.account, priceQuote, this.account.baseCurrency);\n\t//\n\t// \t\t\t\tGymTradingPosition.storePosition(position);\n\t//\n\t// \t\t\t\tthis.account.grossProfit = this.calcGrossProfit();\n\t//\n\t// \t\t\t\t//Notify delegate\n\t// \t\t\t\tthis.delegates.forEach((delegate) => {\n\t// \t\t\t\t\tdelegate.positionUpdated && delegate.positionUpdated(this, position);\n\t// \t\t\t\t});\n\t// \t\t\t}\n\t// \t\t}\n\t// \t});\n\t//\n\t// \tif (shouldStoreAccountData) {\n\t// \t\tthis.account.storeAccount();\n\t// \t}\n\t// }\n\n\tupdatePositions(dataItem: HistoryTick, priceQuote: PriceQuote, simulationId: string) {\n\t\tconst feedId = dataItem.feedId;\n\t\tconst code = dataItem.code;\n\n\t\tfor (let i = 0; i < this.account.activePositions.length; i++) {\n\t\t\tconst position = this.account.activePositions[i];\n\t\t\tif (position.f === feedId && position.code === code && position.simulationId === simulationId) {\n\t\t\t\tconst oldPosState = position.state;\n\n\t\t\t\tlet changed = false;\n\t\t\t\ttry {\n\t\t\t\t\tchanged = position.updatePosition(this.account, dataItem, priceQuote);\n\t\t\t\t} catch (e) {\n\t\t\t\t\tif (position.state === TradingPositionState.deleted) {\n\t\t\t\t\t\tthis.account.activePositions.splice(i, 1);\n\n\t\t\t\t\t\t// Move back with one index\n\t\t\t\t\t\ti--;\n\n\t\t\t\t\t\t// Notify delegate\n\t\t\t\t\t\tthis.delegates.forEach((delegate) => {\n\t\t\t\t\t\t\tdelegate.positionDeleted && delegate.positionDeleted(this, position);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t// TODO GYM - present Alert\n\t\t\t\t\t\t//[Utilities showAlertView:getLocalizedString(@\"WARNING\", nil) message:exception.reason];\n\n\t\t\t\t\t\tthis.player.pause();\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (changed) {\n\t\t\t\t\tif (position.state === TradingPositionState.closed) {\n\t\t\t\t\t\tthis.account.closedPositions.push(position);\n\t\t\t\t\t\tthis.account.activePositions.splice(i, 1);\n\n\t\t\t\t\t\t// Move back with one index\n\t\t\t\t\t\ti--;\n\n\t\t\t\t\t\tthis.account.calcUsedMargin();\n\t\t\t\t\t\tthis.account.balance += position.grossProfit;\n\t\t\t\t\t\tthis.account.grossProfit = this.calcGrossProfit();\n\n\t\t\t\t\t\tthis.account.storeAccount();\n\n\t\t\t\t\t\t// Notify delegate\n\t\t\t\t\t\tthis.delegates.forEach((delegate) => {\n\t\t\t\t\t\t\tdelegate.positionClosed && delegate.positionClosed(this, position);\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (oldPosState === TradingPositionState.pending && position.state === TradingPositionState.open) {\n\t\t\t\t\t\tthis.account.calcUsedMargin();\n\n\t\t\t\t\t\t// Notify delegate\n\t\t\t\t\t\tthis.delegates.forEach((delegate) => {\n\t\t\t\t\t\t\tdelegate.positionOpened && delegate.positionOpened(this, position);\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Notify delegate\n\t\t\t\t\t\tthis.delegates.forEach((delegate) => {\n\t\t\t\t\t\t\tdelegate.positionUpdated && delegate.positionUpdated(this, position);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tGymTradingPosition.storePosition(position);\n\t\t\t\t\t// Notify delegate\n\t\t\t\t\tthis.delegates.forEach((delegate) => {\n\t\t\t\t\t\tdelegate.positionUpdated && delegate.positionUpdated(this, position);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst grossProfit = this.calcGrossProfit();\n\t\tif (this.account.grossProfit !== grossProfit) {\n\t\t\tthis.account.grossProfit = grossProfit;\n\t\t\tthis.account.notifyAccountUpdate();\n\t\t}\n\t}\n\n\tvalidatePendingPosition(position: GymTradingPosition): boolean {\n\t\tif (isNaN(position.qty) || position.qty <= 0) {\n\t\t\tthrow Error('Position Amount is invalid!');\n\t\t}\n\n\t\tconst openPrice = position.prc;\n\t\tswitch (position.side) {\n\t\t\tcase TradingPositionSide.Buy: {\n\t\t\t\t// Check the position open price\n\t\t\t\tswitch (position.type) {\n\t\t\t\t\tcase TradingPositionType.Limit: {\n\t\t\t\t\t\tif (openPrice >= position.lastDataClosePrice) {\n\t\t\t\t\t\t\tthrow Error('Pending BUY LIMIT position - Open Price is invalid!');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase TradingPositionType.Stop: {\n\t\t\t\t\t\tif (openPrice <= position.lastDataClosePrice) {\n\t\t\t\t\t\t\tthrow Error('Pending BUY STOP position - Open Price is invalid!');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthrow Error('Pending position - tradeType is invalid!');\n\t\t\t\t}\n\n\t\t\t\t// Stop Loss must be lower than position price\n\t\t\t\tif (position.hasStopLoss() && position.sl >= openPrice) {\n\t\t\t\t\tthrow Error('Position Stop Loss is invalid!');\n\t\t\t\t}\n\n\t\t\t\t// Take Profit must be bigger than position price\n\t\t\t\tif (position.hasTakeProfit() && position.tp <= openPrice) {\n\t\t\t\t\tthrow Error('Position Take Profit is invalid!');\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TradingPositionSide.Sell: {\n\t\t\t\t// Check the position open price\n\t\t\t\tswitch (position.type) {\n\t\t\t\t\tcase TradingPositionType.Limit: {\n\t\t\t\t\t\tif (openPrice <= position.lastDataClosePrice) {\n\t\t\t\t\t\t\tthrow Error('Pending SELL LIMIT position - Open Price is invalid!');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase TradingPositionType.Stop: {\n\t\t\t\t\t\tif (openPrice >= position.lastDataClosePrice) {\n\t\t\t\t\t\t\tthrow Error('Pending SELL STOP position - Open Price is invalid!');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthrow Error('Pending position - Trade Type is invalid!');\n\t\t\t\t}\n\n\t\t\t\t// Stop Loss must be bigger than position price\n\t\t\t\tif (position.hasStopLoss() && position.sl <= openPrice) {\n\t\t\t\t\tthrow Error('Position Stop Loss is invalid!');\n\t\t\t\t}\n\n\t\t\t\t// Take Profit must be lower than position price\n\t\t\t\tif (position.hasTakeProfit() && position.tp >= openPrice) {\n\t\t\t\t\tthrow Error('Position Take Profit is invalid!');\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tvalidateOpenPosition(position: GymTradingPosition): boolean {\n\t\tif (isNaN(position.qty) || position.qty <= 0) {\n\t\t\tthrow Error('Position Amount is invalid!');\n\t\t}\n\n\t\tswitch (position.side) {\n\t\t\tcase TradingPositionSide.Buy: {\n\t\t\t\t// Stop Loss must be lower than current price\n\t\t\t\tif (position.hasStopLoss() && position.sl >= position.lastDataClosePrice) {\n\t\t\t\t\tthrow Error('Position Stop Loss is invalid!');\n\t\t\t\t}\n\n\t\t\t\t// Take Profit must be bigger than current price\n\t\t\t\tif (position.hasTakeProfit() && position.tp <= position.lastDataClosePrice) {\n\t\t\t\t\tthrow Error('Position Take Profit is invalid!');\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TradingPositionSide.Sell: {\n\t\t\t\t// Stop Loss must be bigger than current price\n\t\t\t\tif (position.hasStopLoss() && position.sl <= position.lastDataClosePrice) {\n\t\t\t\t\tthrow Error('Position Stop Loss is invalid!');\n\t\t\t\t}\n\n\t\t\t\t// Take Profit must be lower than current price\n\t\t\t\tif (position.hasTakeProfit() && position.tp >= position.lastDataClosePrice) {\n\t\t\t\t\tthrow Error('Position Take Profit is invalid!');\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (!GymPositionUtils.validateMargin(this.account, position)) {\n\t\t\tthrow Error('Position rejected. Insufficient Available Margin!');\n\t\t}\n\n\t\treturn true;\n\t}\n\n\trestorePosition(position: GymTradingPosition) {\n\t\tswitch (position.state) {\n\t\t\tcase TradingPositionState.pending:\n\t\t\tcase TradingPositionState.open: {\n\t\t\t\t// Add it in active positions\n\t\t\t\tthis.account.activePositions.push(position);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TradingPositionState.closed: {\n\t\t\t\t// Add in closed positions\n\t\t\t\tthis.account.closedPositions.push(position);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t\t// Notify delegate\n\t\tthis.delegates.forEach((delegate) => {\n\t\t\tdelegate.positionRestored && delegate.positionRestored(this, position);\n\t\t});\n\t}\n\n\topenOrder(position: GymTradingPosition) {\n\t\t// Validation\n\t\tif (this.account.activePositions.findIndex((pos) => pos.posId === position.posId) !== -1) {\n\t\t\tthrow Error('Position is already opened');\n\t\t}\n\n\t\tswitch (position.state) {\n\t\t\tcase TradingPositionState.pending: {\n\t\t\t\tthis.validatePendingPosition(position);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TradingPositionState.open: {\n\t\t\t\t// Set open price\n\t\t\t\tif (this.validateOpenPosition(position)) {\n\t\t\t\t\tposition.oT = position.lastDataCloseTime;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tthrow Error('Invalid state for open position');\n\t\t}\n\n\t\t// Add it in active positions\n\t\tthis.account.activePositions.push(position);\n\n\t\tthis.account.calcUsedMargin();\n\n\t\tthis.account.grossProfit = this.calcGrossProfit();\n\n\t\tthis.account.storeAccount();\n\t\tGymTradingPosition.storePosition(position);\n\n\t\t// Notify delegate\n\t\tthis.delegates.forEach((delegate) => {\n\t\t\tdelegate.positionOpened && delegate.positionOpened(this, position);\n\t\t});\n\t}\n\n\tmodifyPosition(position: GymTradingPosition) {\n\t\tconst index = this.account.activePositions.findIndex((pos) => pos.posId === position.posId);\n\t\tif (index !== -1) {\n\t\t\tconst prevPosition = this.account.activePositions[index];\n\t\t\t// Validate\n\t\t\tswitch (position.state) {\n\t\t\t\tcase TradingPositionState.pending: {\n\t\t\t\t\tthis.validatePendingPosition(position);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase TradingPositionState.open: {\n\t\t\t\t\tthis.validateOpenPosition(position);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tthrow Error('Position has invalid state');\n\t\t\t}\n\n\t\t\tthis.account.activePositions[index] = position;\n\n\t\t\t// Notify delegate\n\t\t\tthis.delegates.forEach((delegate) => {\n\t\t\t\tdelegate.positionModified && delegate.positionModified(this, position, prevPosition);\n\t\t\t});\n\n\t\t\tGymTradingPosition.storePosition(position);\n\t\t} else {\n\t\t\tthrow Error('Position is not active');\n\t\t}\n\t}\n\n\tpartialClosePosition(position: GymTradingPosition, quantity: number, dataItem: HistoryTick, priceQuote: PriceQuote) {\n\t\tif (position.posId) {\n\t\t\t// Create a copy of position with reduced quantity and close it\n\t\t\tconst posCopy = GymTradingPosition.restoreTradingPosition(position.simulationId, position.posId);\n\t\t\tif (posCopy) {\n\t\t\t\tposCopy.marketItem = position.marketItem;\n\t\t\t\tposCopy.posId = GymPositionUtils.generatePositionId();\n\t\t\t\tposCopy.qty = quantity;\n\n\t\t\t\tposCopy.updatePosition(this.account, dataItem, priceQuote);\n\n\t\t\t\t// reduce position quantity\n\t\t\t\tposition.qty -= quantity;\n\t\t\t\tposition.updatePosition(this.account, dataItem, priceQuote);\n\t\t\t\tGymTradingPosition.storePosition(position);\n\n\t\t\t\t//Notify delegate\n\t\t\t\tthis.delegates.forEach((delegate) => {\n\t\t\t\t\tdelegate.positionOpened && delegate.positionOpened(this, position);\n\t\t\t\t});\n\n\t\t\t\tthis.closePosition(posCopy);\n\t\t\t}\n\t\t}\n\t}\n\n\tclosePosition(position: GymTradingPosition) {\n\t\t// Remove from active positions\n\t\tconst index = this.account.activePositions.findIndex((pos) => pos.posId === position.posId);\n\t\tif (index !== -1) {\n\t\t\tthis.account.activePositions.splice(index, 1);\n\t\t}\n\n\t\tswitch (position.state) {\n\t\t\tcase TradingPositionState.pending: {\n\t\t\t\tif(position.posId) {\n\t\t\t\t\tGymTradingPosition.removePositionStore(position.simulationId, position.posId);\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase TradingPositionState.open: {\n\t\t\t\t// Marked as closed\n\t\t\t\tposition.cT = position.lastDataCloseTime;\n\t\t\t\tposition.cP = position.lastDataClosePrice;\n\t\t\t\tposition.setPositionInClosedState(this.account.baseCurrency);\n\t\t\t\tposition.state = TradingPositionState.closed;\n\t\t\t\t// Add in closed positions\n\t\t\t\tthis.account.closedPositions.push(position);\n\t\t\t\tGymTradingPosition.storePosition(position);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tconsole.log('Position has invalid state');\n\t\t\t\tbreak;\n\t\t}\n\n\t\tthis.account.calcUsedMargin();\n\n\t\tthis.account.grossProfit = this.calcGrossProfit();\n\n\t\tif (position.state === TradingPositionState.closed) {\n\t\t\tthis.account.balance += position.grossProfit;\n\t\t}\n\n\t\tthis.account.storeAccount();\n\n\t\t// Notify delegate\n\t\tthis.delegates.forEach((delegate) => {\n\t\t\tdelegate.positionClosed && delegate.positionClosed(this, position);\n\t\t});\n\t}\n\n\tdeletePositionById(posId: number) {\n\t\tlet pos =\n\t\t\tthis.account.activePositions.find((pos) => pos.posId === posId) ??\n\t\t\tthis.account.closedPositions.find((pos) => pos.posId === posId);\n\t\tif (pos) {\n\t\t\tthis.deletePosition(pos);\n\t\t}\n\t}\n\n\tdeletePosition(position: GymTradingPosition) {\n\t\tif (position.posId) {\n\t\t\tif (position.state === TradingPositionState.closed) {\n\t\t\t\tconst index = this.account.closedPositions.findIndex((pos) => pos.posId === position.posId);\n\t\t\t\tif (index === -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.account.closedPositions.splice(index, 1);\n\t\t\t} else {\n\t\t\t\tconst index = this.account.activePositions.findIndex((pos) => pos.posId === position.posId);\n\t\t\t\tif (index === -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.account.activePositions.splice(index, 1);\n\t\t\t}\n\n\t\t\tthis.account.calcUsedMargin();\n\n\t\t\tif (!isNaN(position.grossProfit)) {\n\t\t\t\tif (position.state === TradingPositionState.closed) {\n\t\t\t\t\tthis.account.balance -= position.grossProfit;\n\t\t\t\t}\n\n\t\t\t\tthis.account.grossProfit = this.calcGrossProfit();\n\t\t\t}\n\n\t\t\tthis.account.storeAccount();\n\n\t\t\tGymTradingPosition.removePositionStore(position.simulationId, position.posId);\n\n\t\t\t// Notify delegate\n\t\t\tthis.delegates.forEach((delegate) => {\n\t\t\t\tdelegate.positionDeleted && delegate.positionDeleted(this, position);\n\t\t\t});\n\t\t}\n\t}\n\n\tdeleteAllPositionsWithSimulationId(simulationId: string) {\n\t\tconst allPosition = [\n\t\t\t...this.account.activePositions.filter((value) => value.simulationId === simulationId),\n\t\t\t...this.account.closedPositions.filter((value) => value.simulationId === simulationId),\n\t\t];\n\t\tfor (let i = 0; i < allPosition.length; i++) {\n\t\t\tthis.deletePosition(allPosition[i]);\n\t\t}\n\t}\n\n\tdeleteAllPositions() {\n\t\tconst allPosition = [...this.account.activePositions, ...this.account.closedPositions];\n\t\tfor (let i = 0; i < allPosition.length; i++) {\n\t\t\tthis.deletePosition(allPosition[i]);\n\t\t}\n\t}\n\n\tcalcGrossProfit() {\n\t\tlet grossProfit = 0.0;\n\n\t\tthis.account.activePositions.forEach((position) => {\n\t\t\tif (position.grossProfit) {\n\t\t\t\tgrossProfit += position.grossProfit;\n\t\t\t}\n\t\t});\n\n\t\treturn grossProfit;\n\t}\n\n\tmarginCall() {\n\t\tconst shouldPresentLiquidationMsg = this.account.activePositions.length > 0;\n\t\tfor (let i = 0; i < this.account.activePositions.length; i++) {\n\t\t\tconst position = this.account.activePositions[i];\n\t\t\tif (position.state === TradingPositionState.open) {\n\t\t\t\tthis.closePosition(position);\n\t\t\t\tposition.comment = 'Margin Call';\n\t\t\t} else {\n\t\t\t\tthis.deletePosition(position);\n\t\t\t}\n\t\t\ti--;\n\t\t}\n\n\t\tthis.player.pause();\n\n\t\tif (shouldPresentLiquidationMsg) {\n\t\t\t// Notify delegate\n\t\t\tthis.delegates.forEach((delegate) => {\n\t\t\t\tdelegate.positionManagerMarginCall && delegate.positionManagerMarginCall(this);\n\t\t\t});\n\t\t}\n\t}\n}\n","import {\n AccountMarketType,\n\tHistoryTick,\n\tMarketItem,\n\tPriceQuote,\n\tRFPDataObjectType,\n\tTradingAccount,\n\tTradingInstruments,\n\tTradingPositionState,\n} from '../../../gateways/RfpGateway/rfp.types';\nimport { MarginAccountType, TradingAccountType } from '../../../utils/functions/enums';\nimport { ITradersGymContext } from '../TradersGymContext';\nimport { GymPositionManager } from '../Positions/GymPositionManager';\nimport { GymTradingPosition } from '../Positions/GymTradingPosition';\nimport { GymDataItemPlayer } from '../Player/GymDataItemPlayer';\nimport {calculateMarginLevel} from \"../../../utils/functions/calculations\";\n\nexport class GymTradingAccount implements TradingAccount {\n\tid: number;\n\taccountType: TradingAccountType = TradingAccountType.GYM;\n\tbaseCurrency: string;\n\tcredit: number = 0;\n\tnetProfit: number = 0; // Not be used for GYM\n\tleverage: number;\n\tpreferredFeed: string = 'VTFeed';\n\tproviderAccountId: string = '';\n\taccountNumber?: number = undefined;\n\tproviderId: number = 0;\n\tisLoggedIn: boolean = true;\n\tusedMargin: number = 0;\n\tmarginCalculationType?: number | undefined;\n\tval?: MarketItem | undefined;\n\ttradingInstruments?: TradingInstruments | undefined;\n\taccountMarketType: AccountMarketType;\n\n\tprivate _balance: number = NaN;\n\tprivate _grossProfit: number = 0;\n\n\t// in the rest of the application the trading positions were reworked to\n\t// be dicts with position.postId used as keys;\n\t// this is not needed to be done here right now but would be nice to be done here as well\n\t// for consistency\n\tactivePositions: GymTradingPosition[] = [];\n\tclosedPositions: GymTradingPosition[] = [];\n\n\tisJapanAccount: boolean = false;\n\tenabled: boolean = true;\n\tdataObjectType = RFPDataObjectType.TradingAccount;\n\n\tpositionManager: GymPositionManager;\n\n\tconstructor(\n\t\tid: number,\n\t\tbaseCurrency: string,\n\t\tdeposit: number,\n\t\tleverage: number,\n\t\ttradingInstruments: TradingInstruments | undefined,\n\t\taccountMarketType: AccountMarketType,\n\t) {\n\t\tthis.id = id;\n\t\tthis.providerAccountId = `${id}`;\n\t\tthis.accountNumber = +id;\n\t\tthis.baseCurrency = baseCurrency;\n\t\tthis.balance = deposit;\n\t\tthis.leverage = leverage;\n\t\tthis.tradingInstruments = tradingInstruments;\n\t\tthis.accountMarketType = accountMarketType;\n\n\t\tif (baseCurrency === 'JPY') {\n\t\t\tthis.isJapanAccount = true;\n\t\t\tthis.marginCalculationType = MarginAccountType.Japan;\n\t\t} else {\n\t\t\tthis.marginCalculationType = MarginAccountType.Unhedged;\n\t\t}\n\n\t\tthis.positionManager = new GymPositionManager(this, GymDataItemPlayer.sharedInstance());\n\t}\n\n\tpublic get balance(): number {\n\t\treturn this._balance;\n\t}\n\n\tpublic set balance(value: number) {\n\t\tthis._balance = value < 0 ? 0 : value;\n\t}\n\n\tpublic get equity(): number {\n\t\treturn this.grossProfit + this.balance;\n\t}\n\n\tpublic get freeMargin(): number {\n\t\treturn this.equity - this.usedMargin;\n\t}\n\n\tpublic get grossProfit(): number {\n\t\treturn this._grossProfit;\n\t}\n\n\tpublic set grossProfit(value: number) {\n\t\tthis._grossProfit = value;\n\t\tthis.netProfit = value;\n\t}\n\n\tpublic get marginLevel(): number {\n\t\treturn calculateMarginLevel({equity: this.equity, usedMargin: this.usedMargin});\n\t}\n\n\tupdatePositions(dataItem: HistoryTick, priceQuote: PriceQuote, simulationId: string) {\n\t\tthis.positionManager.updatePositions(dataItem, priceQuote, simulationId);\n\t\tthis.checkForMarginCall();\n\t}\n\n\tcheckForMarginCall() {\n\t\tif (this.freeMargin <= 0) {\n\t\t\tthis.positionManager.marginCall();\n\t\t}\n\t}\n\n\tnotifyAccountUpdate() {\n\t\t// Send event to remove all components from presenter\n\t\tconst event = new CustomEvent('gymTradingAccountUpdated');\n\t\tdocument.dispatchEvent(event);\n\n\t\tthis.storeAccount();\n\t}\n\n\tcalcUsedMargin() {\n\t\tlet marginSum = 0;\n\t\tthis.activePositions.forEach((position) => {\n\t\t\tif (position.state === TradingPositionState.open) {\n\t\t\t\tif (position.oP && !isNaN(position.oP)) {\n\t\t\t\t\tconst positionUsedMargin = position.calcUsedMargin(this);\n\t\t\t\t\tif (!isNaN(positionUsedMargin)) {\n\t\t\t\t\t\tmarginSum += positionUsedMargin;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis.usedMargin = marginSum;\n\t}\n\n\tprivate static buildKey(id: number, accountMarketType: AccountMarketType) {\n\t\treturn `tradersGym_account_${id}_${accountMarketType}`;\n\t}\n\n\tprivate static ignoreProps(this: any, key: any, value: any) {\n\t\treturn (['tradingInstruments', 'activePositions', 'closedPositions', 'positionManager'].indexOf(key) > -1) ? undefined : value;\n\t}\n\n\tstoreAccount() {\n\t\tif (localStorage) {\n\t\t\tlocalStorage.setItem(GymTradingAccount.buildKey(this.id, this.accountMarketType), JSON.stringify(this, GymTradingAccount.ignoreProps));\n\t\t}\n\t}\n\n\tstatic restoreAccount(id: number, accountMarketType: AccountMarketType): GymTradingAccount | undefined {\n\t\tif (localStorage) {\n\t\t\tconst accountData = localStorage.getItem(GymTradingAccount.buildKey(id, accountMarketType));\n\t\t\tif (accountData) {\n\t\t\t\tconst account = JSON.parse(accountData);\n\t\t\t\tif (account) {\n\t\t\t\t\tconst copyAccount = new GymTradingAccount(\n\t\t\t\t\t\taccount.id,\n\t\t\t\t\t\taccount.baseCurrency,\n\t\t\t\t\t\taccount.deposit,\n\t\t\t\t\t\taccount.leverage,\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\taccount.accountMarketType\n\t\t\t\t\t);\n\t\t\t\t\tObject.assign(copyAccount, account);\n\n\t\t\t\t\treturn copyAccount;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Will remove all simulations and positions\n\t * @param tradersGymContext Gym context\n\t */\n\tresetAccount(tradersGymContext: ITradersGymContext) {\n\t\tif (localStorage) {\n\t\t\t// Remove simulations\n\t\t\tif (tradersGymContext.simulationsManager) {\n\t\t\t\ttradersGymContext.simulationsManager.removeAllSimulations();\n\t\t\t}\n\n\t\t\t// Remove selected simulation\n\t\t\ttradersGymContext.lastHistoryTick = undefined;\n\t\t\ttradersGymContext.priceQuote = undefined;\n\t\t\ttradersGymContext.simulation = undefined;\n\n\t\t\t// Delete all positions\n\t\t\tthis.positionManager.deleteAllPositions();\n\t\t}\n\t}\n\n\t// Memory management\n\tdestroy() {}\n}\n","import {AccountMarketType, TradingInstruments} from '../../../gateways/RfpGateway/rfp.types';\n\nimport { GymTradingAccount } from './GymTradingAccount';\n\nexport class GymAccountUtils {\n\tprivate static defaultLeverage = 0.0025; // Leverage: value:0.0025 code:@\"1:400\"\n\n\tstatic createAccount(\n\t\temailId: number,\n\t\tcurrency: string,\n\t\tdeposit: number,\n\t\ttradingInstruments: TradingInstruments | undefined,\n\t\taccountMarketType: AccountMarketType,\n\t\tleverage: number = this.defaultLeverage,\n\t) {\n\n\t\treturn new GymTradingAccount(emailId, currency, deposit, leverage, tradingInstruments, accountMarketType);\n\t}\n\n\tstatic convertEmailToId(email: string) {\n\t\tvar emailId = 0,\n\t\t\ti,\n\t\t\tchr;\n\t\tif (email.length === 0) return emailId;\n\t\tfor (i = 0; i < email.length; i++) {\n\t\t\tchr = email.charCodeAt(i);\n\t\t\temailId = (emailId << 5) - emailId + chr;\n\t\t\temailId |= 0; // Convert to 32bit integer\n\t\t}\n\t\treturn emailId;\n\t}\n}\n","import { useContext, useEffect, useMemo } from 'react';\n\nimport statusStore, { StatusStore } from '../../store/accountStatusStore';\n\nimport AppContext from '../../contexts/AppContext';\nimport { TIERS_WITH_GYM_ACCESS } from '../../setup/subscriptionsConfig';\nimport { SubscriptionTier } from '../functions/subscriptionUtils';\n\nimport { GymAccountUtils } from '../../pages/TradersGym/Accounts/GymAccountUtils';\nimport { GymTradingAccount } from '../../pages/TradersGym/Accounts/GymTradingAccount';\n\nimport DashboardContext from '../../contexts/DashboardContext';\nimport { TradersGymContext, TradersGymContextType } from '../../pages/TradersGym/TradersGymContext';\nimport authStore from '../../store/authStore';\nimport tradingAccountStore from '../../store/tradingAccountStore';\nimport useSelectedTradingAccount from \"./useSelectedTradingAccount\";\n\nconst useEnableTradersGym = () => {\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst appContext = useContext(AppContext);\n\tconst gymContext = useContext(TradersGymContext) as TradersGymContextType;\n\tconst permissions = statusStore((state: StatusStore) => state.permissions);\n\tconst tradersGym = permissions?.tradersGym;\n\tconst { setGymProps } = gymContext;\n\tconst setIsTradeGymActive = statusStore.use.setIsTraderGymActive();\n\tconst setUnlockGym = statusStore.use.setUnlockGym();\n\tconst userProfile = authStore.use.userProfile();\n\tconst email = appContext.email ?? userProfile.email;\n\tconst isFundedTrader = tradingAccountStore.use.isFundedTrader();\n\tconst isJapanSubscriptionAccount = tradingAccountStore.use.isJapanSubscription();\n\tconst selectedTradingAccount = useSelectedTradingAccount();\n\tconst { tradersGymContext } = gymContext;\n\n\tuseEffect(() => {\n\t\tif (tradersGymContext.isActive) {\n\t\t\tcanEnableTradersGym(true);\n\t\t}\n\t}, [selectedTradingAccount?.id]);\n\n\t// skipJapanTierValidation when the Gym is already active, because the access was granted by the Spread Account,\n\t// but not for the right navigation menu, this behavior will be updated once Japan team decide\n\t// https://thinkmarkets.atlassian.net/browse/WTR-4914\n\tconst canEnableTradersGym = (skipJapanTierValidation?: boolean) => {\n\t\tif (!email || !selectedTradingAccount) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst account = dashboardContext.tradingAccount.find(acc => acc.id === selectedTradingAccount.id);\n\n\t\tif (account && (isFundedTrader || tradersGym === true)) {\n\t\t\tif (!skipJapanTierValidation && isJapanSubscriptionAccount && !TIERS_WITH_GYM_ACCESS.includes(appContext.subscriptionInfo?.tier as SubscriptionTier)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst emailId = GymAccountUtils.convertEmailToId(`${email}_${account.accountMarketType}`);\n\t\t\tlet gymAccount = GymTradingAccount.restoreAccount(emailId, account.accountMarketType);\n\n\t\t\tif (!gymAccount) {\n\t\t\t\tconst accountBalance = userProfile?.country?.demoBalance ?? 30000;\n\t\t\t\tgymAccount = GymAccountUtils.createAccount(\n\t\t\t\t\temailId,\n\t\t\t\t\taccount.baseCurrency,\n\t\t\t\t\taccountBalance,\n\t\t\t\t\taccount.tradingInstruments,\n\t\t\t\t\taccount.accountMarketType\n\t\t\t\t);\n\n\t\t\t\tgymAccount.storeAccount();\n\t\t\t} else {\n\t\t\t\t// If you click too early on the gym button,\n\t\t\t\t// the account is not yet created and the app throws the following error - undefined tradingInstruments\n\t\t\t\t// So we need to check if the account is created and then set the tradingInstruments\n\t\t\t\tif (account) {\n\t\t\t\t\tgymAccount.tradingInstruments = account.tradingInstruments;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsetGymProps({ isActive: true, gymTradingAccount: gymAccount });\n\t\t\tsetIsTradeGymActive(true);\n\t\t\treturn true;\n\t\t} else {\n\t\t\tsetUnlockGym(true);\n\t\t\treturn false;\n\t\t}\n\t};\n\n\treturn canEnableTradersGym;\n};\n\nexport default useEnableTradersGym;\n","import React, { useContext, useRef, useState, RefObject, createRef } from 'react';\n\nimport { useHistory } from 'react-router-dom';\n\nimport { useTranslation, Trans } from 'react-i18next';\n\nimport Routes from '../../../../../setup/routes';\nimport { AppComponentType } from '../../../../../utils/functions/enums';\nimport WtrPopup from '../../../../components/WtrPopup/WtrPopup';\nimport AppContext from '../../../../../contexts/AppContext';\n\nimport useEnableTradersGym from '../../../../../utils/hooks/useEnableTradersGym';\n\nimport DashboardContext from '../../../../../contexts/DashboardContext';\n\nimport Button from '../../../../../shared/Button';\n\nimport InfoModal from '../../../../../components/InfoModal/InfoModal';\n\nimport styles from './Signals.module.scss';\n\nimport { Item } from './';\nimport accountStatusStore from '../../../../../store/accountStatusStore';\n\nconst TradersGym = () => {\n\tconst appContext = useContext(AppContext);\n\tconst traderGymPopupRef = useRef(null);\n\tconst [openTradersGymPopup, setOpenTradersGymPopup] = useState(false);\n\tconst enableTradersGym = useEnableTradersGym();\n\tconst setUnlockGym = accountStatusStore.use.setUnlockGym();\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst history = useHistory();\n\tconst [parentRef, setParentRef] = useState>(createRef());\n\tconst { t } = useTranslation();\n\tconst isArabic = appContext.isArabic || localStorage.getItem('language') === 'ar-SA';\n\n\tconst handlePreClick = (): boolean => {\n\t\t// wait until live application status is read:\n\t\t// undefined = nodata, false - has incomplete application; true - has live account\n\n\t\tif (enableTradersGym()) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\tsetOpenTradersGymPopup(true);\n\t\t\tdocument.body.addEventListener('mousedown', (event: MouseEvent): void => {\n\t\t\t\tif (traderGymPopupRef.current && !traderGymPopupRef.current.contains(event.target as any)) {\n\t\t\t\t\tcloseTradersGymPopup();\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tconst handleTradersGymPopupCta = () => {\n\t\tdashboardContext.presentComponentType = AppComponentType.OpenAccount;\n\t\thistory.push(Routes.trader.openAccount, { from: window.location.pathname });\n\t\tsetOpenTradersGymPopup(false);\n\t};\n\n\tconst closeTradersGymPopup = () => {\n\t\tsetOpenTradersGymPopup(false);\n\t\tsetUnlockGym(false);\n\t};\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t}\n\t\t\t\topen={openTradersGymPopup}\n\t\t\t\tcontent={<>}\n\t\t\t/>\n\t\t\t{openTradersGymPopup && (\n\t\t\t\t{t('wtr:UNLOCK_TRADERS_GYM')}}\n\t\t\t\t\tcontent={}\n\t\t\t\t\tfooter={\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t)}\n\t\t
\n\t);\n};\n\nexport default TradersGym;\n","import React from 'react';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { IconProp } from '@fortawesome/fontawesome-svg-core';\nimport cn from 'classnames';\n\nimport styles from './WtrToggle.module.scss';\n\ninterface WtrToggleProps {\n\tonChange: () => void;\n\ticon: IconProp;\n\tisActive: boolean;\n\tid: string;\n\tactiveBackgroundStyling?: boolean;\n\tposition?: 'vertical' | 'horizontal';\n\tsize?: 'sm' | 'md';\n}\n\n/**\n * Custom toggle component :)\n * @param onChange onChange event\n * @param icon Semantic ui icon array\n * @param activeBackgroundStyling Color the toggle with the main color (topaz)\n * @param position The layout of the toggle - if no position is specified it will fallback to vertical\n * @param size Sizing of the toggle - sm / md (if no size is specified it will fallback to md)\n */\nconst WtrToggle = ({\n\tonChange,\n\ticon,\n\tisActive,\n\tid,\n\tactiveBackgroundStyling = false,\n\tposition = 'vertical',\n\tsize = 'md',\n}: WtrToggleProps) => {\n\tconst horizontalStyling = position === 'horizontal' && styles.horizontal;\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default WtrToggle;\n","import React, { useState, useContext } from 'react';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { TThemeSetting } from '../../../../../gateways/UserPreferencesGateway/UserPreferencesGateway.types';\n\nimport AppContext from '../../../../../contexts/AppContext';\n\nimport useObservable from '../../../../../utils/hooks/useObservable';\n\nimport WtrTooltip from '../../../../../shared/WtrTooltip/WtrTooltip';\n\nimport WtrToggle from '../../../../../shared/WtrToggle/WtrToggle';\nimport useSaveUserPreferences from '../../../../../utils/mutations/useSaveUserPreferences';\n\nconst ThemeToggle = () => {\n\tconst appContext = useContext(AppContext);\n\tconst { t } = useTranslation();\n\n\tconst { mutate: savePreferences } = useSaveUserPreferences();\n\n\tuseObservable(appContext.getPropertyChangeStream('appTheme'), () => {\n\t\tsetTheme(appContext.appTheme);\n\t});\n\n\tconst [theme, setTheme] = useState(appContext.appTheme);\n\tconst isDarkTheme = theme === 'dark';\n\n\tconst handleClick = async () => {\n\t\tlet inverted = 'dark';\n\t\tlet invertedSetting: TThemeSetting = { _type: 'Dark' };\n\n\t\tif (isDarkTheme) {\n\t\t\tinverted = 'light';\n\t\t\tinvertedSetting = { _type: 'Light' };\n\t\t}\n\t\tsetTheme(inverted);\n\t\tappContext.appTheme = inverted;\n\t\tappContext.userPreferences!.user_prefs.platform.theme = invertedSetting;\n\n\t\tsavePreferences();\n\t};\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default ThemeToggle;\n","import React, { RefObject, useCallback, useContext, useRef, useState } from 'react';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { forceCloseModal } from '../../../../../utils/hooks/useForceCloseModal';\n\nimport AppContext from '../../../../../contexts/AppContext';\n// import DashboardContext from '../../../../../contexts/DashboardContext';\n// import usePromiseFactory from '../../../../../utils/hooks/usePromiseFactory';\n// import useForceRerender from '../../../../../utils/hooks/useForceRerender';\n// import useObservable from '../../../../../utils/hooks/useObservable';\nimport Button from '../../../../../shared/Button';\n\nimport WtrTooltip from '../../../../../shared/WtrTooltip/WtrTooltip';\n\nimport WtrToggle from '../../../../../shared/WtrToggle/WtrToggle';\n\nimport useSaveUserPreferences from '../../../../../utils/mutations/useSaveUserPreferences';\n\nimport InfoModal from '../../../../../components/InfoModal/InfoModal';\n\nimport tradingAccountStore from '../../../../../store/tradingAccountStore';\n\nimport styles from './OneClickTradingToggle.module.scss';\n\nconst OneClickTradingToggle = () => {\n\tconst appContext = useContext(AppContext);\n\t// const dashboardContext = useContext(DashboardContext);\n\tconst parentRef: RefObject = useRef(null);\n\tconst isArabic = appContext.isArabic || localStorage.getItem('language') === 'ar-SA';\n\t// const promiseFactory = usePromiseFactory();\n\t// const forceRerender = useForceRerender();\n\n\tconst isOneClickTradingActive = tradingAccountStore.use.isOneClickTradingActive();\n\tconst setIsOneClickTradingActive = tradingAccountStore.use.setIsOneClickTradingActive();\n\n\tconst { mutate: savePreferences } = useSaveUserPreferences();\n\tconst { t } = useTranslation();\n\n\tconst [openActivateModal, setOpenActivateModal] = useState(false);\n\n\t// const oneClickTrading = dashboardContext.oneClickTrading;\n\n\t// useObservable(dashboardContext.getPropertyChangeStream('oneClickTrading'), () => {\n\t// \tpromiseFactory.throttle('dashboardContext.propertyChanged', 100).then(() => {\n\t// \t\tforceRerender();\n\t// \t});\n\t// });\n\n\tconst handleClick = () => {\n\t\tif (!isOneClickTradingActive) {\n\t\t\tsetOpenActivateModal(true);\n\t\t} else {\n\t\t\tupdateOneClickTrading();\n\t\t}\n\t};\n\n\tconst handleCancel = () => {\n\t\tsetOpenActivateModal(false);\n\t\tforceCloseModal('fade modal');\n\t};\n\n\tconst handleActivate = () => {\n\t\tupdateOneClickTrading();\n\t\tsetOpenActivateModal(false);\n\t\tforceCloseModal('fade modal');\n\t};\n\n\tconst updateOneClickTrading = useCallback(() => {\n\t\tappContext.userPreferences!.user_prefs.trading.settings.cfd!._mode = !isOneClickTradingActive\n\t\t\t? '1-Click'\n\t\t\t: 'Regular';\n\n\t\tsetIsOneClickTradingActive(!isOneClickTradingActive);\n\t\tsavePreferences();\n\t}, [setIsOneClickTradingActive, isOneClickTradingActive, savePreferences]);\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t{openActivateModal && (\n\t\t\t\t setOpenActivateModal(false)}\n\t\t\t\t\tarrow={isArabic ? 'right' : 'left'}\n\t\t\t\t\tparentRef={parentRef}\n\t\t\t\t\theader={\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{t('en:ONE_CLICK_TRADING_CONFIG_ACTIVE')}

\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t\tfooter={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default OneClickTradingToggle;\n","import React, { useContext, useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nimport AppContext from '../../../../contexts/AppContext';\nimport DashboardContext from '../../../../contexts/DashboardContext';\nimport useForceRerender from '../../../../utils/hooks/useForceRerender';\nimport useObservable from '../../../../utils/hooks/useObservable';\n\nimport useWindowSize from '../../../../utils/hooks/useWindowSize';\nimport Routes from '../../../../setup/routes';\nimport LiveChat from '../../../../shared/LiveChat';\nimport { TradersGymContext, TradersGymContextType } from '../../../../pages/TradersGym/TradersGymContext';\nimport { AppComponentType, ApplicationStatus } from '../../../../utils/functions/enums';\nimport { IStatusConfigEnum } from '../../../components/Permissions/config.types';\nimport authStore from '../../../../store/authStore';\nimport accountStatusStore, { StatusStore } from '../../../../store/accountStatusStore';\nimport { updateDocumentTitle } from '../../../../utils/functions/documentUtils';\n\nimport { Calendar, Guide, Management, Markets, Signals, Trade, TradersGym } from './Items';\nimport styles from './Navigation.module.scss';\nimport { OneClickTradingToggle, ThemeToggle } from './IconToggles';\nimport tradingAccountStore from '../../../../store/tradingAccountStore';\n\nconst Navigation = () => {\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst gymContext = useContext(TradersGymContext);\n\tconst { tradersGymContext, setGymProps } = gymContext as TradersGymContextType;\n\tconst permissions = accountStatusStore((store: StatusStore) => store.permissions);\n\tconst hasLiveAccount = accountStatusStore.use.hasLiveAccount();\n\tconst status = accountStatusStore.use.status();\n\tconst portalPage = permissions?.portalPage;\n\tconst isJapanAccount = authStore.use.isJapanAccount();\n\tconst isFundedTrader = tradingAccountStore.use.isFundedTrader();\n\n\tconst forceRerender = useForceRerender();\n\tconst windowSize = useWindowSize();\n\tconst history = useHistory();\n\tconst location = history.location;\n\tconst [helpOpen, setHelpOpen] = useState(false);\n\tconst { t } = useTranslation();\n\n\tconst isDemoMode = authStore.use.isDemoMode();\n\tconst isLiveMode = authStore.use.isLiveMode();\n\n\tuseObservable(appContext.getPropertyChangeStream('appTheme'), () => forceRerender());\n\tuseObservable(\n\t\tdashboardContext.getPropertyChangeStream('presentComponentType'),\n\t\t() => windowSize.height <= 620 && forceRerender()\n\t);\n\n\tuseEffect(() => {\n\t\tif (location.pathname === Routes.trader.charts && windowSize.width >= 1024) {\n\t\t\thistory.push(Routes.trader.watchlist);\n\t\t}\n\t}, [windowSize]);\n\n\t// Updated only to change the page title temporal\n\t// UNFORTUNATELY, In order for the back and forward browser buttons to work we need to implement this useEffect\n\t// Should refactor this in the future!!!\n\tuseEffect(() => {\n\t\tif (portalPage === undefined) return;\n\t\tconst location = window.location.pathname;\n\t\tlet pageTitlePrefix = '';\n\t\tdashboardContext.closeAllOtherTabs();\n\n\t\tif (location !== Routes.trader.tradersGym) {\n\t\t\tsetGymProps({ isActive: false });\n\t\t}\n\n\t\tswitch (location) {\n\t\t\tcase Routes.trader.watchlist:\n\t\t\t\tpageTitlePrefix = 'en:Trade';\n\n\t\t\t\tdashboardContext.presentComponentType = AppComponentType.Watchlist;\n\t\t\t\tbreak;\n\t\t\tcase Routes.trader.markets:\n\t\t\t\tpageTitlePrefix = 'wtr:MARKETS';\n\n\t\t\t\tdashboardContext.presentComponentType = AppComponentType.Markets;\n\t\t\t\tbreak;\n\t\t\tcase Routes.trader.signals:\n\t\t\t\tpageTitlePrefix = 'wtr:SIGNALS';\n\n\t\t\t\tdashboardContext.presentComponentType = AppComponentType.Signals;\n\t\t\t\tbreak;\n\t\t\tcase Routes.trader.calendar:\n\t\t\t\tpageTitlePrefix = 'en:NAVIGATION_CALENDAR';\n\n\t\t\t\tdashboardContext.presentComponentType = AppComponentType.Calendar;\n\t\t\t\tbreak;\n\t\t\tcase Routes.trader.openAccount:\n\t\t\t\tpageTitlePrefix = 'en:OPEN_LIVE_ACCOUNT';\n\n\t\t\t\tif (isDemoMode || isJapanAccount || (hasLiveAccount && status === ApplicationStatus.APPROVED) || (isLiveMode && !hasLiveAccount)) {\n\t\t\t\t\tdashboardContext.presentComponentType = AppComponentType.OpenAccount;\n\t\t\t\t} else {\n\t\t\t\t\tdashboardContext.presentComponentType = AppComponentType.CompleteOnboarding;\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase Routes.trader.funds:\n\t\t\t\tpageTitlePrefix = 'wtr:LEFT_NAV_FUNDS';\n\n\t\t\t\tlet route = Routes.trader.funds;\n\n\t\t\t\tif (portalPage === IStatusConfigEnum.deposits) {\n\t\t\t\t\tdashboardContext.presentComponentType = AppComponentType.Funds;\n\t\t\t\t\troute = Routes.trader.funds;\n\t\t\t\t} else if (portalPage === IStatusConfigEnum.fork) {\n\t\t\t\t\tdashboardContext.presentComponentType = AppComponentType.CompleteOnboarding;\n\t\t\t\t\troute = Routes.trader.openAccount;\n\t\t\t\t} else if (portalPage === IStatusConfigEnum.relevantStep) {\n\t\t\t\t\tdashboardContext.presentComponentType = AppComponentType.UploadDocuments;\n\t\t\t\t\troute = Routes.trader.uploadDocuments;\n\t\t\t\t} else if (portalPage === IStatusConfigEnum.statusPage) {\n\t\t\t\t\tdashboardContext.presentComponentType = AppComponentType.Status;\n\t\t\t\t\troute = Routes.trader.status;\n\t\t\t\t} else if (isJapanAccount) {\n\t\t\t\t\tdashboardContext.presentComponentType = AppComponentType.OpenAccount;\n\t\t\t\t\troute = Routes.trader.openAccount;\n\t\t\t\t}\n\n\t\t\t\thistory.replace(route);\n\t\t\t\tbreak;\n\t\t\tcase Routes.trader.tradersGym:\n\t\t\t\tpageTitlePrefix = 'en:MORE_SWITCH_GYM';\n\n\t\t\t\tsetGymProps({ isActive: true });\n\t\t\t\tdashboardContext.presentComponentType = AppComponentType.TradersGym;\n\t\t\t\tbreak;\n\t\t\tcase Routes.trader.tutorials:\n\t\t\t\tpageTitlePrefix = appContext.isJapanAccount ? 'en:USER_GUIDE' : 'Think Academy';\n\t\t\t\tdashboardContext.presentComponentType = AppComponentType.Tutorials;\n\t\t\t\tbreak;\n\t\t\tcase Routes.trader.reports:\n\t\t\t\tpageTitlePrefix = 'en:REPORTS';\n\n\t\t\t\tdashboardContext.presentComponentType = AppComponentType.Reports;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tpageTitlePrefix = 'en:Trade';\n\n\t\t\t\tdashboardContext.presentComponentType = AppComponentType.Watchlist;\n\t\t}\n\n\t\tupdateDocumentTitle(t(pageTitlePrefix));\n\t}, [window.location.pathname, portalPage]);\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t<>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{!helpOpen && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{!tradersGymContext.isActive && }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\t{!isFundedTrader && setHelpOpen(isOpen)} menuStyle=\"vertical\" />}\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default Navigation;\n","import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport cn from 'classnames';\nimport React from 'react';\n\nimport { Optional } from '../../utils/functions/Nullable';\nimport { stripHtmlTags } from '../../utils/functions/stripHtmlTags';\nimport uniqueId from '../../utils/functions/uniqueId';\n\nimport styles from './Checkbox.module.scss';\n\ninterface CheckboxProps {\n\tisChecked: boolean;\n\tonChange: (e: React.ChangeEvent) => void;\n\tlabelContents?: Optional;\n\tisLabelContentsInteractive?: boolean;\n\tcheckedValue?: Optional;\n\tid?: Optional;\n}\n\nconst Checkbox = ({\n\tisChecked,\n\tonChange,\n\tlabelContents,\n\tcheckedValue,\n\tisLabelContentsInteractive,\n\tid,\n}: CheckboxProps) => {\n\tconst checkboxId = id || uniqueId();\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default Checkbox;\n","export const stripHtmlTags = (htmlString: string) => htmlString.replace(/(<([^>]+)>)/gi, '');\n","import React, { useContext, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styles from './Carousel.module.scss';\nimport cn from 'classnames';\nimport { formatNumberWithCommas } from '../../../views/features/Dashboard/Watchlist/Instrument/formattedQuoteNumber';\nimport AppContext from '../../../contexts/AppContext';\n\ninterface CarouselProps {\n\tselectedTierInfo: any;\n\tonMoreDetails: () => void;\n}\n\nconst Carousel = ({ selectedTierInfo, onMoreDetails }: CarouselProps) => {\n\tconst { t } = useTranslation();\n\tconst appContext = useContext(AppContext);\n\n\tconst [currentIndex, setCurrentIndex] = useState(0);\n\n\tconst tierPerks = ['currencyPairs', 'monthlyAmount', 'minPerOrder', 'maxPerOrder', 'maxPosition'];\n\tconst tierPerksTranslations = [\n\t\tt('wtr:TIER_CURRENCY_PAIRS'),\n\t\tt('wtr:TIER_MONTHLY_AMOUNT'),\n\t\tt('wtr:TIER_MIN_PER_ORDER'),\n\t\tt('wtr:TIER_MAX_PER_ORDER'),\n\t\tt('wtr:TIER_MAX_POSITION'),\n\t];\n\n\tconst CURRENCY_INDEX_IN_ARRAY = 0;\n\tconst carouselData = tierPerks.map((item) => selectedTierInfo[item]);\n\tconst isCurrencySlide = currentIndex === CURRENCY_INDEX_IN_ARRAY;\n\n\tconst scrollCarousel = () => {\n\t\tif (currentIndex === carouselData.length - 1) {\n\t\t\treturn setCurrentIndex(0);\n\t\t}\n\t\treturn setCurrentIndex((prevState) => prevState + 1);\n\t};\n\n\tuseEffect(() => {\n\t\tconst interval = setInterval(() => scrollCarousel(), 5000);\n\n\t\treturn () => clearInterval(interval);\n\t});\n\n\tconst handleCarouselClick = (key: number) => {\n\t\tif (key === currentIndex) return;\n\n\t\tsetCurrentIndex(key);\n\t};\n\n\tconst perkValue = carouselData[currentIndex];\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t{isNaN(parseInt(perkValue)) ? perkValue : formatNumberWithCommas(perkValue, 0, appContext.languageSettings)}{' '}\n\t\t\t\t{tierPerksTranslations[currentIndex]}\n\t\t\t\n\t\t\t{isCurrencySlide &&\n\t\t\t\t(selectedTierInfo.id !== 'Tier1' ? (\n\t\t\t\t\t\n\t\t\t\t\t\t{t('wtr:VIEW_DETAILS')}\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t
{selectedTierInfo.instruments.join('、')}
\n\t\t\t\t))}\n\t\t\t
\n\t\t\t\t{carouselData.map((_item, key) => (\n\t\t\t\t\t handleCarouselClick(key)}\n\t\t\t\t\t\tclassName={cn(styles.carouselDot, currentIndex === key && styles.active)}\n\t\t\t\t\t>
\n\t\t\t\t))}\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default Carousel;\n","import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport React, { useContext } from 'react';\nimport Modal from '../../../shared/Modal';\nimport styles from './CurrencyDetails.module.scss';\nimport cn from 'classnames';\nimport { Tier } from '../../../utils/functions/subscriptionUtils';\nimport { useTranslation } from 'react-i18next';\nimport { generateFXMaxPositionTable, generateFXMaxPositionArray } from '../../../utils/functions/currencyPairsUtils';\n\nimport AppContext from '../../../contexts/AppContext';\n\ninterface ICurrencyDetails {\n\tisOpen: boolean;\n\tonGoBack: () => void;\n\tselectedTierInfo: Tier;\n\ttiers: Tier[];\n\t// children: React.ReactNode;\n}\n\nconst CurrencyDetails = ({ isOpen, onGoBack, selectedTierInfo, tiers }: ICurrencyDetails) => {\n\tconst appContext = useContext(AppContext);\n\tconst { t } = useTranslation();\n\n\tlet result: Record = {};\n\tif (selectedTierInfo) {\n\t\tselectedTierInfo.instruments.forEach((item: string) => {\n\t\t\tlet prefix = item.substring(0, item.indexOf('/'));\n\t\t\tif (!result[prefix]) {\n\t\t\t\tresult[prefix] = [];\n\t\t\t}\n\n\t\t\tresult[prefix].push(item);\n\t\t});\n\t}\n\n\tconst tableHTML = () => {\n\t\tconst inputData = selectedTierInfo.maxOpenInstrumentPosition;\n\t\treturn generateFXMaxPositionTable(generateFXMaxPositionArray(inputData), t, appContext.languageSettings);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t onGoBack()} />\n\t\t\t\t\t
\n\t\t\t\t\t
{`${t(`wtr:${selectedTierInfo?.key}`)} ${t(\n\t\t\t\t\t\t'wtr:TRADABLE_CURRENCY_PAIRS'\n\t\t\t\t\t)}`}
\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default CurrencyDetails;\n","import { formatNumberWithCommas } from '../../views/features/Dashboard/Watchlist/Instrument/formattedQuoteNumber';\n\nexport const generateFXMaxPositionArray = (inputData: any) => {\n\tif (!inputData) {\n\t\treturn null;\n\t}\n\n\tconst arr: any = [];\n\tObject.entries(inputData).forEach(([fxPair, value]) => {\n\t\tconst [leadCurrency, secondaryCurrency] = fxPair.split('/');\n\t\tconst pairLimit = [leadCurrency + secondaryCurrency, value];\n\n\t\tconst existingLeadEntry = arr.find((element: any) => element.leadCurrency === leadCurrency);\n\t\tif (existingLeadEntry) {\n\t\t\texistingLeadEntry.limits.push(pairLimit);\n\t\t} else {\n\t\t\tarr.push({ leadCurrency: leadCurrency, limits: [pairLimit] });\n\t\t}\n\t});\n\n\treturn arr;\n};\n\nexport const generateFXMaxPositionTable = (array: any, translationFunc: any, language: string) => {\n\tif (!array) {\n\t\treturn '';\n\t}\n\n\tlet tableContent = `\n\t\t\n\t`;\n\tarray.forEach((entry: any) => {\n\t\tconst rows = entry.limits.length;\n\t\tentry.limits.forEach((limitEntry: string, index: number) => {\n\t\t\ttableContent += ``;\n\t\t\tif (index === 0) {\n\t\t\t\ttableContent += ``;\n\t\t\t}\n\t\t\ttableContent += `\n \n \n `;\n\t\t});\n\t\ttableContent += '\\n';\n\t});\n\ttableContent += '
${translationFunc('wtr:TRADING_CURRENCY_PAIRS')}${translationFunc(\n\t\t'en:REPORT_BASE_CURRENCY'\n\t)}${translationFunc('wtr:TIER_MAX_POSITION')}
${entry.leadCurrency}${limitEntry[0]}${formatNumberWithCommas(limitEntry[1], 0, language)}
';\n\n\treturn tableContent;\n};\n","import { useMutation } from '@tanstack/react-query';\nimport axios from 'axios';\n\nimport { SUBSCR_MGMT_PROV, tfboSourceParam } from '../../setup/config';\n\nconst useSubscribe = (accountNumber?: null | string) => {\n\tconst mutationKey = ['useSubscribe', accountNumber];\n\n\tconst mutationFn = async (requestedTier: string) => {\n\t\ttry {\n\t\t\tconst response = await axios({\n\t\t\t\turl: '',\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t},\n\t\t\t\tdata: {\n\t\t\t\t\tpayload: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmodule: 'subscription',\n\t\t\t\t\t\t\taction: 'subscribe',\n\t\t\t\t\t\t\tparameters: {\n\t\t\t\t\t\t\t\taccountNumber,\n\t\t\t\t\t\t\t\tprovider: SUBSCR_MGMT_PROV,\n\t\t\t\t\t\t\t\ttier: requestedTier,\n\t\t\t\t\t\t\t\tsource: tfboSourceParam,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn response.data.payload[0].result;\n\t\t} catch (e) {}\n\t};\n\n\treturn useMutation({ mutationKey, mutationFn });\n};\n\nexport default useSubscribe;\n","import { useMutation} from '@tanstack/react-query';\nimport axios from 'axios';\n\nimport { SUBSCR_MGMT_PROV } from '../../setup/config';\n\n\nconst useChangeTier = (accountNumber?: null | string) => {\n\tconst mutationKey = ['useChangeTier', accountNumber];\n\n\tconst mutationFn = async (requestedTier: string) => {\n\t\ttry {\n\t\t\tconst response = await axios({\n\t\t\t\turl: '',\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t},\n\t\t\t\tdata: {\n\t\t\t\t\tpayload: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmodule: 'subscription',\n\t\t\t\t\t\t\taction: 'changeTier',\n\t\t\t\t\t\t\tparameters: {\n\t\t\t\t\t\t\t\taccountNumber,\n\t\t\t\t\t\t\t\tprovider: SUBSCR_MGMT_PROV,\n\t\t\t\t\t\t\t\trequestedTier,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn response.data.payload[0].result.result;\n\t\t} catch (e) {}\n\t};\n\n\treturn useMutation({ mutationKey, mutationFn});\n};\n\nexport default useChangeTier;\n","import React, { useContext } from 'react';\n\nimport cn from 'classnames';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { tierIcons } from '../../../setup/subscriptionsConfig';\nimport {\n\tgetTierDisplayName,\n\tSubscriptionModalReason,\n\tSubscriptionTier,\n\tTier,\n} from '../../../utils/functions/subscriptionUtils';\nimport useMoneyFormatter from '../../../utils/hooks/useMoneyFormatter';\nimport useSelectedTradingAccount from '../../../utils/hooks/useSelectedTradingAccount';\nimport { formatNumberWithCommas } from '../../../views/features/Dashboard/Watchlist/Instrument/formattedQuoteNumber';\nimport AppContext from '../../../contexts/AppContext';\n\nimport styles from './TierTile.module.scss';\n\ninterface TierTileProps {\n\ttier: Tier;\n\tonSelectTier: (tierId: SubscriptionTier) => void;\n\tisSelected: boolean;\n\ttitle: string | null;\n\treason: SubscriptionModalReason;\n\tisNewUser: boolean;\n}\n\nconst TierTile = ({ tier, onSelectTier, isSelected, title, reason, isNewUser }: TierTileProps) => {\n\tconst { t } = useTranslation();\n\tconst selectedTradingAccount = useSelectedTradingAccount();\n\tconst formatAsMoney = useMoneyFormatter(selectedTradingAccount);\n\tconst appContext = useContext(AppContext);\n\n\tconst showCurrencyPairs = [\n\t\tSubscriptionModalReason.Renewal,\n\t\tSubscriptionModalReason.SubscriptionForNewUser,\n\t\tSubscriptionModalReason.SubscriptionForExistingUser,\n\t\tSubscriptionModalReason.SubscribeFromAlert,\n\t\tSubscriptionModalReason.ManageSubscription,\n\t\tSubscriptionModalReason.UpgradeSubscription,\n\t\tSubscriptionModalReason.Instrument,\n\t].includes(reason);\n\n\tconst showMaxVolume = reason === SubscriptionModalReason.Volume;\n\n\tconst showOrderSize = reason === SubscriptionModalReason.OrderSizeUpgradable;\n\n\treturn (\n\t\t
onSelectTier(tier.id)}>\n\t\t\t{!isNewUser && title && (\n\t\t\t\t<>\n\t\t\t\t\t
\n\t\t\t\t\t
{title}
\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t
\n\t\t\t\t{tier.id}\n\t\t\t\t

{getTierDisplayName(tier.id)}

\n\t\t\t
\n\t\t\t
\n\t\t\t\t{showCurrencyPairs && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t
{tier.currencyPairs}
\n\t\t\t\t\t\t{t('wtr:TIER_CURRENCY_PAIRS')}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t{showMaxVolume && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{isNaN(parseInt(tier.monthlyAmount))\n\t\t\t\t\t\t\t\t? tier.monthlyAmount\n\t\t\t\t\t\t\t\t: formatNumberWithCommas(tier.monthlyAmount, 0, appContext.languageSettings)}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{t('wtr:MAXIMUM_MOTHNLY_TRADING_VOLUME')}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t{showOrderSize && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{formatNumberWithCommas(tier.maxPerOrder, 0, appContext.languageSettings)}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{t('wtr:TIER_MAX_PER_ORDER')}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
\n\n\t\t\t{`${formatAsMoney(tier.pricePerMonth)}/${t('wtr:PER_MONTH')}`}\n\t\t
\n\t);\n};\n\nexport default TierTile;\n","import React, { useState, useContext } from 'react';\n\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport AppContext from '../../../contexts/AppContext';\nimport { tiers } from '../../../setup/subscriptionsConfig';\nimport Modal from '../../../shared/Modal';\nimport Button from '../../../shared/Button/Button';\nimport {\n\tgetActiveTier,\n\tgetTierDisplayName,\n\tSubscriptionStatus,\n\tSubscriptionTier,\n\tTier,\n} from '../../../utils/functions/subscriptionUtils';\nimport { SubscriptionModalReason } from '../../../utils/functions/subscriptionUtils';\n\nimport useSubscriptionModal from '../../../utils/hooks/useSubscriptionModal';\nimport Checkbox from '../../../shared/Checkbox/Checkbox';\n\nimport Carousel from '../Carousel/Carousel';\n\nimport useSubscriptionInfo from '../../../utils/hooks/useSubscriptionInfo';\nimport CurrencyDetails from '../CurrencyDetails/CurrencyDetails';\n\nimport authStore, { AuthStore } from '../../../store/authStore';\n\nimport useSubscribe from '../../../utils/subscriptions/useSubscribe';\nimport useChangeTier from '../../../utils/subscriptions/useChangeTier';\nimport { submitDynamicForm } from '../../../utils/functions/submitDynamicForm';\n\nimport styles from './SubscriptionSelector.module.scss';\nimport TierTile from './TierTile';\n\ninterface SubscriptionSelectorProps {\n\tisOpen: boolean;\n\treason: SubscriptionModalReason;\n\tpreselectedTier: SubscriptionTier;\n\taccountId: string;\n\tstartFromTierNum?: number;\n\tonCancel: () => void;\n}\n\ntype ModalView = 'selector' | 'confirm' | 'details';\n\nconst providerAcceptCharset = 'Shift-JIS';\n/**\n * Japan Tier selection modal\n * @param isOpen If the modal is open\n * @param reason Subscription-related circumstance that makes modal necessary\n * @param preselectedTier Current subscription tier\n */\nconst SubscriptionSelector = ({\n\tisOpen,\n\treason,\n\tpreselectedTier,\n\taccountId,\n\tstartFromTierNum,\n\tonCancel,\n}: SubscriptionSelectorProps) => {\n\tconst [modalView, setModalView] = useState('selector');\n\tconst [hasUserAgreement, setHasUserAgreement] = useState(false);\n\tconst [selectedTier, setSelectedTier] = useState(preselectedTier);\n\tconst [isRequesting, setIsRequesting] = useState(false);\n\tconst [subscriptionInfo] = useSubscriptionInfo();\n\tconst { setModalStateProps } = useSubscriptionModal();\n\tconst { t } = useTranslation();\n\tconst appContext = useContext(AppContext);\n\tconst isLiveMode = authStore((store: AuthStore) => store.isLiveMode);\n\n\tlet disabledTierId: SubscriptionTier | null = null;\n\tif (reason === SubscriptionModalReason.ManageSubscription) {\n\t\tdisabledTierId = preselectedTier;\n\t}\n\tconst isConfirmDisabled = !selectedTier || selectedTier === disabledTierId;\n\tconst selectedTierInfo = tiers.find((tier: Tier) => tier.id === selectedTier);\n\n\tconst { mutate: subscribe } = useSubscribe(accountId);\n\tconst { mutate: changeTier } = useChangeTier(accountId);\n\n\tconst handleSelectTier = (tierId: SubscriptionTier): void => {\n\t\tsetSelectedTier(tierId);\n\t};\n\n\tconst handleCancel = () => {\n\t\tsetModalView('selector');\n\t\tonCancel();\n\n\t\tif (\n\t\t\t![SubscriptionStatus.Active, SubscriptionStatus.Existing, SubscriptionStatus.Unpaid].includes(\n\t\t\t\tsubscriptionInfo.status!\n\t\t\t)\n\t\t) {\n\t\t\tappContext.canFetchSubscrInfo = true;\n\t\t}\n\t};\n\n\tconst handleSubscribe = () => {\n\t\tsetModalView('confirm');\n\t};\n\n\tconst handleMoreDetails = () => {\n\t\tsetModalView('details');\n\t};\n\n\tconst handleConfirmSubscribe = () => {\n\t\tif (!accountId || !selectedTier || selectedTier === disabledTierId) {\n\t\t\tconsole.debug('===>>> Unexpected failure to proceed with `subscribe/manage subscription!`');\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\t[\n\t\t\t\tSubscriptionModalReason.SubscriptionForNewUser,\n\t\t\t\tSubscriptionModalReason.SubscribeFromAlert,\n\t\t\t\tSubscriptionModalReason.SubscriptionForExistingUser,\n\t\t\t].includes(reason)\n\t\t) {\n\t\t\tsubscribe(selectedTier, {\n\t\t\t\tonSuccess: (data) => {\n\t\t\t\t\tif (!data.action?.type || !data.action?.url || !data.action?.fields) {\n\t\t\t\t\t\tappContext.subscriptionModal = {\n\t\t\t\t\t\t\tisOpen: true,\n\t\t\t\t\t\t\treason: SubscriptionModalReason.IncorrectParamsForBJP,\n\t\t\t\t\t\t\ttext: null,\n\t\t\t\t\t\t};\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tsubmitDynamicForm(\n\t\t\t\t\t\tdata.action.type,\n\t\t\t\t\t\tdata.action.url,\n\t\t\t\t\t\tdata.action.fields,\n\t\t\t\t\t\tdata.acceptCharset || providerAcceptCharset\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tif (\n\t\t\t[\n\t\t\t\tSubscriptionModalReason.ManageSubscription,\n\t\t\t\tSubscriptionModalReason.UpgradeSubscription,\n\t\t\t\tSubscriptionModalReason.Instrument,\n\t\t\t\tSubscriptionModalReason.Volume,\n\t\t\t\tSubscriptionModalReason.OrderSizeUpgradable,\n\t\t\t\tSubscriptionModalReason.UpgradeToAccessGym,\n\t\t\t].includes(reason)\n\t\t) {\n\t\t\tconst onSuccess = (result: string) => {\n\t\t\t\tconsole.debug('===>>> onSuccess callback for ManageSubscription/UpgradeSubscription called!`');\n\n\t\t\t\tsetModalStateProps({\n\t\t\t\t\treason: SubscriptionModalReason.ChangeTierResponse,\n\t\t\t\t\tisOpen: true,\n\t\t\t\t\ttext: t(`wtr:SUBSCRIPTION_OP_RESPONSE_${result.toUpperCase()}`),\n\t\t\t\t});\n\n\t\t\t\tsetIsRequesting(false);\n\n\t\t\t\tappContext.canFetchSubscrInfo = false;\n\t\t\t\tappContext.canFetchSubscrInfo = true;\n\t\t\t};\n\n\t\t\tchangeTier(selectedTier, { onSuccess });\n\t\t}\n\n\t\tsetIsRequesting(true);\n\t};\n\n\tconst handleClickAgreementBox = (e: React.ChangeEvent) => {\n\t\tsetHasUserAgreement((e.target as HTMLInputElement).checked);\n\t};\n\n\tconst isDowngrade = getActiveTier(subscriptionInfo) && selectedTier < subscriptionInfo.nextTier!;\n\tconst isUpgrade = getActiveTier(subscriptionInfo) && selectedTier !== subscriptionInfo.nextTier && !isDowngrade;\n\t// const isFirstSubscription = !isDowngrade && !isUpgrade;\n\n\tif (modalView === 'selector') {\n\t\tlet subscribeButtonText = t('wtr:MODIFY_TEXT');\n\t\tif (isDowngrade) {\n\t\t\tsubscribeButtonText = t('wtr:DOWNGRADE');\n\t\t} else if (isUpgrade) {\n\t\t\tsubscribeButtonText = t('wtr:UPGRADE');\n\t\t}\n\n\t\tconst modalTitle =\n\t\t\treason === SubscriptionModalReason.ManageSubscription\n\t\t\t\t? t('wtr:MANAGE_SUBSCRIPTIONS')\n\t\t\t\t: t('wtr:TIER_SELECTOR_MODAL_TITLE', { courseName: getTierDisplayName(selectedTier) });\n\n\t\tconst CTA_TRANS_TEXTS: Partial> = {\n\t\t\t[SubscriptionModalReason.UpgradeToAccessGym]: isLiveMode ? 'wtr:UPGRADE_TIER_TO_ACCESS_GYM_TEXT' : undefined,\n\t\t};\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{modalTitle}\n\t\t\t\t{CTA_TRANS_TEXTS[reason] && (\n\t\t\t\t\t

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

\n\t\t\t\t)}\n\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{tiers.map((tier, index) => {\n\t\t\t\t\t\t\tconst tierNum = index + 1;\n\t\t\t\t\t\t\tif (startFromTierNum && tierNum < startFromTierNum) {\n\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst isSelected = tier.id === selectedTier;\n\t\t\t\t\t\t\tconst isCurrentTier = tier.id === subscriptionInfo.tier;\n\n\t\t\t\t\t\t\tlet titleText = null;\n\t\t\t\t\t\t\tif (isDowngrade) {\n\t\t\t\t\t\t\t\tif (isSelected && !isCurrentTier) {\n\t\t\t\t\t\t\t\t\ttitleText = t('wtr:NEXT_MONTH');\n\t\t\t\t\t\t\t\t} else if (isCurrentTier) {\n\t\t\t\t\t\t\t\t\ttitleText = t('wtr:CURRENT_TIER');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\n\t);\n\n\t// keeping commented code below as I think it might be needed soon\n\t// const nextTierInfo = tiers.find((tier) => tier.id === subscriptionInfo.nextTier);\n\t// const nextPaymentAmount = formatAsMoney(selectedTierInfo.pricePerMonth) || null;\n\n\tconst detailsRows = [\n\t\t[t('wtr:TIER'), tierName],\n\t\t[t('wtr:SUBSCRIPTION_STATUS'), subscriptionStatus],\n\t\t[t('wtr:SUBCRIPTION_TERM'), subscriptionTerm],\n\t\t[\n\t\t\tt('wtr:MINIMUM_TRADING_UNIT'),\n\t\t\tformatNumberWithCommas(selectedTierInfo.minPerOrder, 0, appContext.languageSettings),\n\t\t],\n\t\t[\n\t\t\tt('wtr:MAXIMUM_TRADING_UNIT'),\n\t\t\tformatNumberWithCommas(selectedTierInfo.maxPerOrder, 0, appContext.languageSettings),\n\t\t],\n\t\t[t('wtr:MAXIMUM_MOTHNLY_TRADING_VOLUME'), displayVolumeInfo(subscriptionInfo.maxVolume)],\n\t\t[t('wtr:TIER_MAX_POSITION'), formatNumberWithCommas(selectedTierInfo.maxPosition, 0, appContext.languageSettings)],\n\t\t[t('wtr:TRADING_CURRENCIES'), currencyValueCell],\n\t\t// keeping commented code below as I think it might be needed soon\n\t\t// [t('wtr:NEXT_WITHDRAWAL_DATE'), '?'],\n\t\t// [t('wtr:NEXT_PAYMENT_AMOUNT'), nextPaymentAmount],\n\t];\n\n\tif (modalView === 'tier') {\n\t\treturn (\n\t\t\t\n\t\t\t\t{detailsRows.map((row) => (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t))}\n\t\t\t
{row[0]}{row[1]}
\n\t\t);\n\t}\n\n\tif (modalView === 'currencies') {\n\t\treturn ;\n\t}\n\n\treturn null;\n};\n\nexport default SubscriptionDetails;\n","import { useMutation} from '@tanstack/react-query';\nimport axios from 'axios';\n\nimport { SUBSCR_MGMT_PROV } from '../../setup/config';\n\n\nconst useCancelSubscription = (accountNumber?: null | string) => {\n\tconst mutationKey = ['useCancelSubscription', accountNumber];\n\n\tconst mutationFn = async (_: any) => {\n\t\ttry {\n\t\t\tconst response = await axios({\n\t\t\t\turl: '',\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t},\n\t\t\t\tdata: {\n\t\t\t\t\tpayload: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmodule: 'subscription',\n\t\t\t\t\t\t\taction: 'cancelSubscription',\n\t\t\t\t\t\t\tparameters: {\n\t\t\t\t\t\t\t\taccountNumber,\n\t\t\t\t\t\t\t\tprovider: SUBSCR_MGMT_PROV,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn response.data.payload[0].result;\n\t\t} catch (e) {}\n\t};\n\n\treturn useMutation({ mutationKey, mutationFn});\n};\n\nexport default useCancelSubscription;\n","import { useMutation } from '@tanstack/react-query';\nimport axios from 'axios';\n\nimport { SUBSCR_MGMT_PROV } from '../../setup/config';\n\nconst useStopSubscription = (accountNumber?: null | string) => {\n\tconst mutationKey = ['useStopSubscription', accountNumber];\n\n\tconst mutationFn = async (_: any) => {\n\t\ttry {\n\t\t\tconst response = await axios({\n\t\t\t\turl: '',\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t},\n\t\t\t\tdata: {\n\t\t\t\t\tpayload: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmodule: 'subscription',\n\t\t\t\t\t\t\taction: 'stopSubscription',\n\t\t\t\t\t\t\tparameters: {\n\t\t\t\t\t\t\t\taccountNumber,\n\t\t\t\t\t\t\t\tprovider: SUBSCR_MGMT_PROV,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn response.data.payload[0].result;\n\t\t} catch (e) {}\n\t};\n\n\treturn useMutation({ mutationKey, mutationFn });\n};\n\nexport default useStopSubscription;\n","import { useMutation} from '@tanstack/react-query';\nimport axios from 'axios';\n\nimport { SUBSCR_MGMT_PROV } from '../../setup/config';\n\n\nconst useResumeSubscription = (accountNumber?: null | string) => { const mutationKey = ['useResumeSubscription', accountNumber];\n\tconst mutationFn = async (_:any) => {\n\t\ttry {\n\t\t\tconst response = await axios({\n\t\t\t\turl: '',\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t},\n\t\t\t\tdata: {\n\t\t\t\t\tpayload: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmodule: 'subscription',\n\t\t\t\t\t\t\taction: 'restartSubscription',\n\t\t\t\t\t\t\tparameters: {\n\t\t\t\t\t\t\t\taccountNumber,\n\t\t\t\t\t\t\t\tprovider: SUBSCR_MGMT_PROV,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn response.data.payload[0].result;\n\t\t} catch (e) {}\n\t};\n\n\treturn useMutation({ mutationKey, mutationFn});\n};\n\nexport default useResumeSubscription;\n","import React, { FC } from 'react';\nimport styles from './OrHzDivider.module.scss';\n\nconst OrHzDivider: FC<{ text: string }> = ({ text }) => (\n\t
\n\t\t
\n\t\t{text}\n\t\t
\n\t
\n);\n\nexport default OrHzDivider;\n","import React, { useContext, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {useHistory} from \"react-router-dom\";\n\nimport Modal from '../../../shared/Modal';\nimport Button from '../../../shared/Button/Button';\nimport { SubscriptionModalReason } from '../../../utils/functions/subscriptionUtils';\n\nimport AppContext from '../../../contexts/AppContext';\nimport useSubscriptionModal from '../../../utils/hooks/useSubscriptionModal';\n\nimport SubscriptionDetails from '../SubscriptionDetails';\nimport DashboardContext from '../../../contexts/DashboardContext';\n\nimport useLogout from '../../../utils/hooks/useLogout';\n\nimport useCancelSubscription from '../../../utils/subscriptions/useCancelSubscription';\n\nimport useStopSubscription from '../../../utils/subscriptions/useStopSubscription';\nimport useResumeSubscription from '../../../utils/subscriptions/useResumeSubscription';\n\nimport { AccountMarketType } from '../../../gateways/RfpGateway/rfp.types';\nimport { Account } from '../../../gateways/TfboGateway/TfboGateway.types';\nimport useSwitchAccount from '../../../utils/hooks/system/useSwitchAccount';\nimport tradingAccountStore from '../../../store/tradingAccountStore'; // import tradingAccountStore from \"../../../store/tradingAccountStore\";\nimport OrHzDivider from './OrHzDivider/OrHzDivider';\n\nimport { AppComponentType } from '../../../utils/functions/enums';\nimport Routes from '../../../setup/routes';\n\nimport styles from './SubscriptionAlert.module.scss';\n\n\ninterface SubscriptionAlertProps {\n\tisOpen: boolean;\n\treason: SubscriptionModalReason;\n\ttext?: string | null;\n\taccountId: string;\n\tonCancel: () => void;\n\tonConfirm?: () => void;\n}\n\n/**\n *\n * @param isOpen if modal is open\n * @param reason subscription-related circumstance that makes modal necessary\n * @param onCancel callback executed on pressing cancel button\n * @param onConfirm callback executed on pressing confirm button\n */\n\nconst SubscriptionAlert = ({ isOpen, reason, text, accountId, onCancel, onConfirm }: SubscriptionAlertProps) => {\n\tconst { t } = useTranslation();\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst { tradingAccount } = dashboardContext;\n\tconst accountStats = tradingAccountStore.use.accountStats();\n\tconst [switchAccounts] = useSwitchAccount();\n\tconst history = useHistory();\n\n\tconst logOut = useLogout();\n\tconst [hasUserAgreement, setHasUserAgreement] = useState(false);\n\n\tconst { setModalStateProps, resetModalStateProps } = useSubscriptionModal();\n\n\tconst RESPONSE_TITLE_MAP = useMemo<{ [key: string]: string }>(\n\t\t() => ({\n\t\t\tstopped: t('wtr:SUBSCRIPTION_PAUSED_TITLE'),\n\t\t\tnotAllowed: t('wtr:OPERATION_NOT_ALLOWED_TITLE'),\n\t\t\tnoRecord: t('wtr:OPERATION_NOT_ALLOWED_TITLE'),\n\t\t\topenPositions: t('wtr:OPERATION_NOT_ALLOWED_OPEN_POSITIONS_TITLE'),\n\t\t\tpendingOrders: t('wtr:OPERATION_NOT_ALLOWED_OPEN_ORDERS_TITLE'),\n\t\t\trestarted: t('wtr:SUBSCRIPTION_RESUMED_TITLE'),\n\t\t\tcanceled: t('wtr:SUBSCRIPTION_CANCELED_TITLE'),\n\t\t\tremainingBalance: t('wtr:OPERATION_NOT_ALLOWED_REMANING_BALANCE_TITLE'),\n\t\t}),\n\t\t[]\n\t);\n\n\tconst RESPONSE_MESSAGE_MAP = useMemo<{ [key: string]: string }>(\n\t\t() => ({\n\t\t\tstopped: t('wtr:SUBSCRIPTION_PAUSED'),\n\t\t\tnotAllowed: t('wtr:OPERATION_NOT_ALLOWED'),\n\t\t\tnoRecord: t('wtr:OPERATION_NOT_ALLOWED'),\n\t\t\topenPositions: t('wtr:OPERATION_NOT_ALLOWED_OPEN_POSITIONS'),\n\t\t\tpendingOrders: t('wtr:OPERATION_NOT_ALLOWED_OPEN_ORDERS'),\n\t\t\trestarted: t('wtr:SUBSCRIPTION_RESUMED_TITLE'),\n\t\t\tcanceled: t('wtr:SUBSCRIPTION_CANCELED'),\n\t\t\tremainingBalance: t('wtr:OPERATION_NOT_ALLOWED_REMANING_BALANCE'),\n\t\t}),\n\t\t[]\n\t);\n\n\tconst STATUS_MESSAGE_MAP = useMemo>>(\n\t\t() => ({\n\t\t\t[SubscriptionModalReason.SubscriptionForNewUser]: t('wtr:SUBSCRIPTION_NEW_NEEDED_TEXT'),\n\t\t\t[SubscriptionModalReason.SubscriptionForUnpaidUser]: t('wtr:SUBSCRIPTON_UNPAID_NEEDED_TEXT'),\n\t\t\t[SubscriptionModalReason.Renewal]: t('wtr:SUBSCRIPTION_RENEWAL_NEEDED_MODAL_TEXT'),\n\t\t\t[SubscriptionModalReason.Cancelled]: t('wtr:SUBSCRIPTION_CANCELED_MODAL_TEXT'),\n\t\t\t[SubscriptionModalReason.Terminated]: t('wtr:SUBSCRIPTION_TERMINATED_MODAL_TEXT'),\n\t\t\t[SubscriptionModalReason.ConfirmStop]: t('wtr:SUSPEND_SUBSCRIPTION_MODAL_TEXT'),\n\t\t\t[SubscriptionModalReason.ConfirmRestart]: t('wtr:SUBSCRIPTION_RESUME_CONFIRM_TEXT'),\n\t\t\t// [SubscriptionModalReason.ConfirmCancel]: t('wtr:CANCEL_SUBSCRIPTION_MODAL_TEXT'),\n\t\t\t[SubscriptionModalReason.NoSuperiorTiers]: t('wtr:NO_SUPPERIOR_TIERS_MODAL_TEXT'),\n\t\t\t[SubscriptionModalReason.SubscribeResponse]: t('wtr:NEW_SUBSCRIPTION_STATUS_RESPONSE_TEXT'),\n\t\t\t[SubscriptionModalReason.ChangeTierResponse]: t('wtr:TIER_CHANGE_RESPONSE_TEXT'),\n\t\t\t[SubscriptionModalReason.SystemError]: t('wtr:SYSTEM_ERROR_MODAL_TEXT'),\n\t\t\t[SubscriptionModalReason.OrderSizeGlobal]: t('wtr:MAX_ORDER_SIZE_EXCEEDED_MODAL_TEXT'),\n\t\t\t[SubscriptionModalReason.NotAuthorized]: t('wtr:OPERATION_FAILED_NOTAUTHORIZED_MODAL_TEXT'),\n\t\t\t[SubscriptionModalReason.IncorrectParamsForBJP]: t('wtr:INCORRECT_PARAMS_FOR_BJP_MODAL_TEXT'),\n\t\t\t[SubscriptionModalReason.GymNotAccessibleForTier]: t('wtr:UPGRADE_TIER_TO_ACCESS_GYM_TEXT'),\n\t\t\t[SubscriptionModalReason.JapanAccountEmptyApplicationStatus]: t('wtr:OBTAINING_LOGIN_INFORMATION_ACTION_MESSAGE'),\n\t\t}),\n\t\t[]\n\t);\n\n\tconst STATUS_TITLE_MAP = useMemo>>(\n\t\t() => ({\n\t\t\t[SubscriptionModalReason.SubscriptionForNewUser]: t('wtr:SUBSCRIPTION_NEW_NEEDED_TITLE'),\n\t\t\t[SubscriptionModalReason.SubscriptionForUnpaidUser]: t('wtr:SUBSCRIPTON_UNPAID_NEEDED_TITLE'),\n\t\t\t[SubscriptionModalReason.Renewal]: t('wtr:SUBSCRIPTION_RENEWAL_NEEDED_MODAL_TITLE'),\n\t\t\t[SubscriptionModalReason.Cancelled]: t('wtr:SUBSCRIPTION_CANCELED_MODAL_TITLE'),\n\t\t\t[SubscriptionModalReason.Terminated]: t('wtr:SUBSCRIPTION_TERMINATED_MODAL_TITLE'),\n\t\t\t[SubscriptionModalReason.ConfirmStop]: t('wtr:SUSPEND_SUBSCRIPTION_MODAL_TITLE'),\n\t\t\t[SubscriptionModalReason.ConfirmRestart]: t('wtr:SUBSCRIPTION_RESUME_CONFIRM_TITLE'),\n\t\t\t// [SubscriptionModalReason.ConfirmCancel]: t('wtr:CANCEL_SUBSCRIPTION_MODAL_TITLE'),\n\t\t\t[SubscriptionModalReason.NoSuperiorTiers]: t('wtr:NO_SUPPERIOR_TIERS_MODAL_TITLE'),\n\t\t\t[SubscriptionModalReason.SubscriptionDetails]: t('wtr:SUBSCRIPTION_DETAILS_MODAL_TITLE'),\n\t\t\t[SubscriptionModalReason.SubscribeResponse]: t('wtr:NEW_SUBSCRIPTION_STATUS_RESPONSE_TITLE'),\n\t\t\t[SubscriptionModalReason.ChangeTierResponse]: t('wtr:TIER_CHANGE_RESPONSE_TITLE'),\n\t\t\t[SubscriptionModalReason.SystemError]: t('wtr:SYSTEM_ERROR_MODAL_TITLE'),\n\t\t\t[SubscriptionModalReason.OrderSizeGlobal]: t('wtr:MAX_ORDER_SIZE_EXCEEDED_MODAL_TITLE'),\n\t\t\t[SubscriptionModalReason.NotAuthorized]: t('wtr:OPERATION_FAILED_NOTAUTHORIZED_MODAL_TITLE'),\n\t\t\t[SubscriptionModalReason.IncorrectParamsForBJP]: t('wtr:INCORRECT_PARAMS_FOR_BJP_MODAL_TITLE'),\n\t\t\t[SubscriptionModalReason.GymNotAccessibleForTier]: t('wtr:UPGRADE_TIER_TO_ACCESS_GYM_TITLE'),\n\t\t\t[SubscriptionModalReason.JapanAccountEmptyApplicationStatus]: t(' '),\n\t\t}),\n\t\t[]\n\t);\n\n\tconst [message, setMessage] = useState(STATUS_MESSAGE_MAP[reason]);\n\tconst [title, setTitle] = useState(STATUS_TITLE_MAP[reason] || reason);\n\n\tconst { mutate: cancelSubscription } = useCancelSubscription(accountId);\n\tconst { mutate: stopSubscription } = useStopSubscription(accountId);\n\tconst { mutate: resumeSubscription } = useResumeSubscription(accountId);\n\n\tconst japanSpreadAccount = useMemo(() => {\n\t\t// TODO: fix incompatibility type between tradingAccount (RFP) in DashboardContext and account value for accountStats (TFBO) in tradingAccountStore\n\t\t// Unify Types and refactor in favor of the Zustand store\n\t\tconst japanSpreadAccount = tradingAccount.find((ta) => ta.accountMarketType === AccountMarketType.JapanSpread);\n\t\treturn (\n\t\t\tjapanSpreadAccount &&\n\t\t\t(accountStats.find(({ account }) => account.accountNumber === japanSpreadAccount.accountNumber)\n\t\t\t\t?.account as Account)\n\t\t);\n\t}, [tradingAccount, accountStats]);\n\n\tconst handleResumeClick = () => {\n\t\tconst onSuccess = ({ result }: { result: string }) => {\n\t\t\tsetMessage(RESPONSE_MESSAGE_MAP[result]);\n\t\t\tsetTitle(RESPONSE_TITLE_MAP[result]);\n\t\t\tsetModalStateProps({\n\t\t\t\treason: SubscriptionModalReason.RestartSubscriptionResponse,\n\t\t\t\tisOpen: true,\n\t\t\t\ttext: t(`wtr:SUBSCRIPTION_OP_RESPONSE_${result.toUpperCase()}`),\n\t\t\t\tinstrument: null,\n\t\t\t});\n\t\t};\n\n\t\tresumeSubscription({}, { onSuccess });\n\t};\n\n\tconst handleConfirm = () => {\n\t\tif (reason === SubscriptionModalReason.ConfirmStop) {\n\t\t\tconst onSuccess = ({ result }: { result: string }) => {\n\t\t\t\tsetMessage(RESPONSE_MESSAGE_MAP[result]);\n\t\t\t\tsetTitle(RESPONSE_TITLE_MAP[result]);\n\t\t\t\tsetModalStateProps({\n\t\t\t\t\treason: SubscriptionModalReason.StopSubscriptionResponse,\n\t\t\t\t\tisOpen: true,\n\t\t\t\t\ttext: t(`wtr:SUBSCRIPTION_OP_RESPONSE_${result.toUpperCase()}`),\n\t\t\t\t\tinstrument: null,\n\t\t\t\t});\n\t\t\t};\n\t\t\tstopSubscription({}, { onSuccess });\n\t\t}\n\n\t\t// if (reason === SubscriptionModalReason.ConfirmCancel) {\n\t\t// \tconst onSuccess = ({ result }: { result: string }) => {\n\t\t// \t\tsetMessage(RESPONSE_MESSAGE_MAP[result]);\n\t\t// \t\tsetTitle(RESPONSE_TITLE_MAP[result]);\n\t\t// \t\tsetModalStateProps({\n\t\t// \t\t\treason: SubscriptionModalReason.CancelSubscriptionResponse,\n\t\t// \t\t\tisOpen: true,\n\t\t// \t\t\ttext: t(`wtr:SUBSCRIPTION_OP_RESPONSE_${result.toUpperCase()}`),\n\t\t// \t\t\tinstrument: null,\n\t\t// \t\t});\n\t\t// \t\t//FIXME double check if we need this here\n\t\t// \t\tappContext.canFetchSubscrInfo = true;\n\t\t// \t};\n\t\t// \tcancelSubscription({}, { onSuccess });\n\t\t// }\n\n\t\tif (reason === SubscriptionModalReason.ConfirmRestart) {\n\t\t\thandleResumeClick();\n\t\t}\n\t};\n\n\tconst handleSubscribeClick = (reason: SubscriptionModalReason) => {\n\t\tsetModalStateProps({\n\t\t\treason: reason,\n\t\t\tisOpen: true,\n\t\t\ttext: null,\n\t\t\tinstrument: null,\n\t\t});\n\t};\n\n\tconst handleResumeConfirm = () => {\n\t\tsetModalStateProps({ reason: SubscriptionModalReason.ConfirmRestart, isOpen: true });\n\t\tsetMessage(STATUS_MESSAGE_MAP[SubscriptionModalReason.ConfirmRestart]);\n\t\tsetTitle(STATUS_TITLE_MAP[SubscriptionModalReason.ConfirmRestart]!);\n\t};\n\n\tconst handleOpenLiveAccountClick = () => {\n\t\tresetModalStateProps();\n\n\t\tdashboardContext.presentComponentType = AppComponentType.OpenAccount;\n\t\thistory.push(Routes.trader.openAccount, { from: window.location.pathname });\n\t};\n\n\tconst handleLogoutClick = () => {\n\t\tresetModalStateProps();\n\t\tlogOut();\n\t};\n\n\tconst handleCancel = () => {\n\t\tresetModalStateProps();\n\t\tonCancel();\n\t\tappContext.canFetchSubscrInfo = true;\n\t};\n\n\tconst handleNotNowClick = (japanSpreadAccount: Account) => {\n\t\tresetModalStateProps();\n\n\t\tswitchAccounts(japanSpreadAccount).then(() => {\n\t\t\tappContext.canFetchSubscrInfo = true;\n\t\t});\n\t};\n\n\tconst handleClickAgreementBox = (e: React.ChangeEvent) => {\n\t\tsetHasUserAgreement((e.target as HTMLInputElement).checked);\n\t};\n\n\tlet buttons =
\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default NotificationModal;\n","import React, { useContext } from 'react';\n\nimport { Modal } from 'react-bootstrap';\n\nimport { default as useObservable } from '../../../utils/hooks/useObservable';\nimport { default as AppContext } from '../../../contexts/AppContext';\nimport { default as DashboardContext } from '../../../contexts/DashboardContext';\nimport { default as useForceRerender } from '../../../utils/hooks/useForceRerender';\n\nimport userGuideGeneralPDF from '../../../docs/Web-User-Guide.pdf';\nimport userGuideJapanPDF from '../../../docs/Web-User-Guide-Japan.pdf';\n\nimport styles from './UserGuideModal.module.scss';\n\nconst UserGuide = () => {\n\tconst appContext = useContext(AppContext);\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst forceRerender = useForceRerender();\n\n\tuseObservable(appContext.getPropertyChangeStream('isJapanAccount'), async (change) => {\n\t\tforceRerender();\n\t});\n\n\tuseObservable(dashboardContext.getPropertyChangeStream('userGuide'), async (change) => {\n\t\tforceRerender();\n\t});\n\n\tif (!dashboardContext.userGuide) {\n\t\treturn null;\n\t}\n\tconst fileSrc = appContext.isJapanAccount ? userGuideJapanPDF : null;\n\n\treturn (\n\t\t (dashboardContext.userGuide = false)}\n\t\t>\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default IframeThinkPortal;\n","import { useQuery } from '@tanstack/react-query';\nimport axios from 'axios';\n\ninterface CalendarParams {\n\tusi: string;\n\tlang: string;\n}\n\nconst useCalendarToken = (parameters: CalendarParams) => {\n\tconst queryKey = ['calendarToken', parameters];\n\tconst queryFn = async () => {\n\t\ttry {\n\t\t\tconst response = await axios({\n\t\t\t\turl: '',\n\t\t\t\tdata: {\n\t\t\t\t\tpayload: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmodule: 'utility',\n\t\t\t\t\t\t\taction: 'createHandshakeUrl',\n\t\t\t\t\t\t\tparameters: { page: 'economic_calendar', ...parameters },\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn response.data.payload[0].result;\n\t\t} catch (e) {\n\t\t\treturn e\n\t\t}\n\t};\n\n\treturn useQuery({ queryKey, queryFn });\n};\n\nexport default useCalendarToken;\n","import React, { useContext, useEffect, useState, useRef } from 'react';\n\nimport AppContext from '../../contexts/AppContext';\nimport DashboardContext from '../../contexts/DashboardContext';\nimport useForceRerender from '../../utils/hooks/useForceRerender';\nimport useObservable from '../../utils/hooks/useObservable';\nimport usePromiseFactory from '../../utils/hooks/usePromiseFactory';\nimport { AppComponentType } from '../../utils/functions/enums';\n\nimport { CalendarLangMap, calendarLangMap } from '../../views/features/Dashboard/Settings/settingsOptions';\n\nimport useCalendarToken from '../../utils/queries/useCalendarToken';\nimport StringUtils from '../../utils/functions/StringUtils';\nimport authStore, { AuthStore } from '../../store/authStore';\n\nimport i18n from \"../../setup/i18n\";\n\nimport styles from './Insights.module.scss';\n\nconst Insights = () => {\n\tconst [url, setUrl] = useState('');\n\tconst iframeContainerRef = useRef(null);\n\n\tconst appContext = useContext(AppContext);\n\tconst theme = appContext.appTheme;\n\tconst dashboardContext = useContext(DashboardContext);\n\tconst promiseFactory = usePromiseFactory();\n\tconst forceRerender = useForceRerender();\n\n\tconst userProfile = authStore((store: AuthStore) => store.userProfile);\n\n\tconst { data: token } = useCalendarToken({\n\t\tusi: userProfile.email!,\n\t\tlang: calendarLangMap[(appContext.languageSettings || i18n.language) as CalendarLangMap],\n\t});\n\n\tuseObservable(dashboardContext.getPropertyChangeStream('presentComponentType'), () => {\n\t\tpromiseFactory.throttle('dashboardContext.propertyChanged', 100).then(() => {\n\t\t\tif (dashboardContext.presentComponentType !== AppComponentType.Watchlist) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tforceRerender();\n\t\t});\n\t});\n\n\tuseObservable(appContext.getPropertyChangeStream('appTheme'), () => {\n\t\tforceRerender();\n\t});\n\n\tuseEffect(() => {\n\t\tif (token && StringUtils.isString(token)) {\n\t\t\tsetUrl(token.replace('thinkmarkets', `thinkmarkets${theme === 'dark' ? '_dark' : ''}`));\n\t\t}\n\t}, [theme, token]);\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t{url && (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
\n\t\t
\n\t);\n};\nexport default Insights;\n","import cn from 'classnames';\nimport React, { useContext, useEffect, useRef, useState } from 'react';\n\nimport AppContext from '../../contexts/AppContext';\nimport Loading from '../../views/components/Loading/Loading';\n\nimport styles from './Calendar.module.scss';\nimport Insights from './Insights';\n\n// keep this guy here as it's a temporary (I hope) patch :))))))))))))))))))))))))))))))))))))))\nconst FallBackCalendar = ({ language }: { language: string }) => {\n\tconst containerRef = useRef();\n\n\tconst languageMap: { [key: string]: string } = {\n\t\tit: 'it-IT',\n\t\tja: 'ja-JP',\n\t\tth: 'th-TH',\n\t\t'pt-BR': 'pt-PT',\n\t};\n\n\tuseEffect(() => {\n\t\tif (containerRef.current) {\n\t\t\tconst config = document.createElement('script');\n\t\t\tconfig.type = 'text/javascript';\n\t\t\tconfig.innerHTML = `var fxcalendar_config = {\n gridselector: \"#fxst_grid\",\n filterselector: \"#fxst_filter\",\n columns: \"None\",\n showeventlink: \"0\", // if you want to disable event link, put a \"0\"\n showcountrylink: \"0\", // if you want to disable country link, put a \"0\"\n culture: \"${languageMap[language]}\"\n };`;\n\t\t\tcontainerRef.current.appendChild(config);\n\n\t\t\tconst script = document.createElement('script');\n\t\t\tscript.type = 'text/javascript';\n\t\t\tscript.src = 'https://calendar.fxstreet.com/scripts/main/?version=0.0.2';\n\t\t\tcontainerRef.current.appendChild(script);\n\t\t}\n\t}, []);\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nconst Calendar = () => {\n\tconst calRef = useRef();\n\tconst [showLoader, setShowLoader] = useState(true);\n\n\tconst { languageSettings } = useContext(AppContext);\n\n\tconst languageMap: { [key: string]: string } = {\n\t\tar: 'ar-SA',\n\t\t'zh-Hans': 'zh-CN',\n\t\t'zh-Hant': 'zh-CHT',\n\t};\n\n\tuseEffect(() => {\n\t\tif (calRef.current) {\n\t\t\tcalRef.current.toggleAttribute('fxs-widget', true);\n\n\t\t\tconst script = document.createElement('script');\n\t\t\tscript.src = 'https://staticcontent.fxstreet.com/widgets-v2/stable/fxs-widgets.js';\n\t\t\tscript.async = true;\n\t\t\tscript.defer = true;\n\t\t\tcalRef.current.parentNode!.appendChild(script);\n\t\t}\n\t}, []);\n\n\tuseEffect(() => {\n\t\tsetTimeout(() => setShowLoader(false), 1000);\n\t}, []);\n\n\tif (!localStorage.getItem('fxStreet')) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{showLoader && }\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t);\n\t}\n\n\t// fallback to the previous implementation of FXStreet calendar for the following languages\n\tconst missingLanguge = ['it', 'ja', 'th', 'pt-BR'].includes(languageSettings);\n\tif (missingLanguge) return ;\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default Calendar;\n","import { useMutation } from '@tanstack/react-query';\nimport axios from 'axios';\n\n\nconst useGenerateSSOToken = () => {\n\tconst mutationFn = async (_: any) => {\n\t\ttry {\n\t\t\tconst response = await axios({\n\t\t\t\turl: `/internal/sso`,\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn response.data;\n\t\t} catch (e) {\n\t\t\treturn e.response.data;\n\t\t}\n\t};\n\n\treturn useMutation({\n\t\tmutationKey: ['useGenerateSSOToken'],\n\t\tmutationFn,\n\t});\n};\n\nexport default useGenerateSSOToken;\n","import { useQuery, UseQueryOptions } from '@tanstack/react-query';\n\n// import axios from 'axios';\n\nconst useFetchDataFromYoutube = () => {\n\t// const queryKey = ['useFetchDataFromYoutube'];\n\t// const queryFn = async (): Promise[]> => {\n\t// \ttry {\n\t// \t\tconst response = await axios({\n\t// \t\t\turl: `${process.env.REACT_APP_YOUTUBE_PLAYLIST_ITEMS_API_URL}?part=snippet&playlistId=PLKC_I3Bz7HZTzR4vJnDTNVHBqmk5Zdwur&maxResults=50&key=${process.env.REACT_APP_YOUTUBE_PLAYLIST_ITEMS_API_KEYS}`,\n\t// \t\t\tmethod: 'GET',\n\t// \t\t});\n\t// \t\treturn response.data.items;\n\t// \t} catch (e) {}\n\t// \treturn [];\n\t// };\n\t// return useQuery[]>(queryKey, queryFn);\n\tconst queryKey = ['useFetchDataFromYoutube'];\n\tconst queryFn = async (): Promise[]> => {\n\t\ttry {\n\t\t\tconst response = await fetch(\n\t\t\t\t`${process.env.REACT_APP_YOUTUBE_PLAYLIST_ITEMS_API_URL}?part=snippet&playlistId=PLKC_I3Bz7HZTzR4vJnDTNVHBqmk5Zdwur&maxResults=50&key=${process.env.REACT_APP_YOUTUBE_PLAYLIST_ITEMS_API_KEYS}`\n\t\t\t);\n\t\t\tconst data = await response.json();\n\t\t\tconst items = data.items;\n\t\t\treturn items;\n\t\t} catch (e) {}\n\t\treturn [];\n\t};\n\treturn useQuery[]>(queryKey, queryFn);\n};\n\nexport default useFetchDataFromYoutube;\n","import React from 'react';\n\nimport styles from './Tutorials.module.scss';\n\ninterface SingleTutorialType {\n\tid: string;\n\turl: string;\n\ttitle: string;\n\topenVideo: (id: string, placeholder: string) => void;\n}\n\nconst SingleTutorial: React.FC = ({ id, url, title, openVideo }) => {\n\treturn (\n\t\t
openVideo(id, url)}>\n\t\t\t
\n\t\t\t\t{title}\n\t\t\t
\n\t\t\t
\n\t\t\t\t

{title}

\n\t\t\t
\n\t\t
\n\t);\n};\nexport default SingleTutorial;\n","import React, { useState } from 'react';\n\nimport Loading from '../../views/components/Loading/Loading';\nimport useFetchDataFromYoutube from '../../utils/hooks/useFetchDataFromYoutube';\nimport WtrModal from '../../shared/WtrModal';\nimport ServiceIssuesModal from '../TradersGym/Accounts/ServiceIssuesModal/ServiceIssuesModal';\n\nimport SingleTutorial from './SingleTutorial';\n\nimport styles from './Tutorials.module.scss';\n\nconst Tutorials = () => {\n\tconst [videoId, setVideoId] = useState('');\n\tlet { data: items, isLoading: loading, isError: errorFromYoutube, refetch } = useFetchDataFromYoutube();\n\n\tconst handleOpenVideo = (id: string) => {\n\t\tsetVideoId(id);\n\t};\n\tconst handleCloseVideo = () => {\n\t\tsetVideoId('');\n\t};\n\n\tconst setIsOpenServiceIssuesModal = () => {\n\t\trefetch();\n\t};\n\n\treturn (\n\t\t
\n\t\t\t{videoId && (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t\t{/* this is the only way I found in order to get the video to autoplay and to be well positioned */}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{loading && (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t)}\n\n\t\t\t{errorFromYoutube && }\n\n\t\t\t{items && (\n\t\t\t\t
\n\t\t\t\t\t{items\n\t\t\t\t\t\t.filter((item) => item.title !== 'Private video')\n\t\t\t\t\t\t.map((video) => (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t))}\n\t\t\t\t
\n\t\t\t)}\n\t\t
\n\t);\n};\n\nexport default Tutorials;\n","import React, { useContext, useEffect, useRef, useState } from 'react';\n\nimport { useLocation } from 'react-router';\n\nimport AppContext from '../../../contexts/AppContext';\nimport { default as InstrumentContext, InstrumentContextProvider } from '../../../contexts/InstrumentContext';\nimport DashboardContext from '../../../contexts/DashboardContext';\nimport { changeLangForPortal } from '../../../utils/functions/changeLanguageForPortal';\nimport { AppComponentType } from '../../../utils/functions/enums';\nimport { Resolver } from '../../../utils/functions/Ioc';\nimport useForceRerender from '../../../utils/hooks/useForceRerender';\nimport useObservable from '../../../utils/hooks/useObservable';\nimport usePromiseFactory from '../../../utils/hooks/usePromiseFactory';\nimport Dashboard from '../Dashboard/Dashboard';\nimport Markets from '../Markets/Markets';\nimport IframeThinkPortal from '../ThinkPortal/IframeThinkPortal';\n\nimport AuthLayout from '../../../layouts/AuthLayout';\n\nimport { Calendar } from '../../../pages/Calendar';\n\nimport useGenerateSSOToken from '../../../utils/mutations/useGenerateSSOToken';\n\nimport { Tutorials } from '../../../pages/Tutorials';\n\nimport styles from './DashboardContainerComponent.module.scss';\n\nconst DashboardContainerComponent = React.memo(() => {\n const appContext = useContext(AppContext);\n const dashboardContext = useContext(DashboardContext);\n const promiseFactory = usePromiseFactory();\n const forceRerender = useForceRerender();\n const email = appContext.email;\n const [url, setUrl] = useState('');\n\n const { mutate: generateSSOToken } = useGenerateSSOToken();\n const location = useLocation();\n\n const renderDisplayInit: { [key in AppComponentType]?: boolean } = {\n [AppComponentType.Markets]: false,\n [AppComponentType.Watchlist]: false,\n [AppComponentType.Calendar]: false,\n [AppComponentType.Portal]: false,\n [AppComponentType.Tutorials]: false\n };\n const toRender = useRef<{ [key in AppComponentType]?: boolean }>({\n ...renderDisplayInit\n // [AppComponentType.Watchlist]: true,\n });\n\n const toDisplay = useRef<{ [key in AppComponentType]?: boolean }>({\n ...renderDisplayInit\n // [AppComponentType.Watchlist]: true,\n });\n\n if (dashboardContext.presentComponentType) {\n toRender.current[dashboardContext.presentComponentType] = true;\n toDisplay.current[dashboardContext.presentComponentType] = true;\n }\n\n const instrumentContextProvider = Resolver.resolve(InstrumentContextProvider);\n\n const portalIframeComponents = [\n AppComponentType.Funds,\n AppComponentType.OpenAccount,\n AppComponentType.Reports,\n AppComponentType.Status,\n AppComponentType.Deposits,\n AppComponentType.UploadDocuments,\n AppComponentType.CompleteOnboarding\n ];\n\n useEffect(() => {\n if (!dashboardContext.presentComponentType) return;\n toDisplay.current = renderDisplayInit;\n\n if (portalIframeComponents.includes(dashboardContext.presentComponentType)) {\n if (!toRender.current[AppComponentType.Portal]) {\n thinkPortalAuth();\n }\n\n toRender.current[AppComponentType.Portal] = true;\n toDisplay.current[AppComponentType.Portal] = true;\n return;\n }\n // unmount markets page explicitly as potential performance optimisation\n toRender.current[AppComponentType.Markets] = false;\n\n toRender.current[dashboardContext.presentComponentType] = true;\n toDisplay.current[dashboardContext.presentComponentType] = true;\n }, [dashboardContext.presentComponentType, location]);\n\n useObservable(dashboardContext.getPropertyChangeStream('presentComponentType'), () => {\n promiseFactory.throttle('dashboardContext.propertyChanged', 100).then(() => {\n forceRerender();\n });\n });\n\n const thinkPortalAuth = () => {\n generateSSOToken(\n {},\n {\n onSuccess: (data) => {\n setUrl(\n `${process.env.REACT_APP_THINK_PORTAL}/dashboard?ssoToken=${\n data.ssoCode\n }&email=${email}&lang=${changeLangForPortal(appContext.languageSettings)}&keepmesignedin=yes&referrer=wtr`\n );\n }\n }\n );\n };\n\n return (\n
\n \n \n \n {/* {tfboConnectionError && } */}\n {toRender.current[AppComponentType.Portal] && }\n
\n\n \n {toRender.current[AppComponentType.Markets] && }\n \n\n \n {toRender.current[AppComponentType.Calendar] && }\n \n\n \n {toRender.current[AppComponentType.Tutorials] && }\n \n {/*
*/}\n {/* \t{toDisplay.current[AppComponentType.Signals] && toRender.current[AppComponentType.Signals] && } */}\n {/*
*/}\n\n {/* Important: Use visibility:'hidden' instead of display:'none' to prevent charts from reseting their scaling.\n\t\t\t\t\t\tThis div should be below other divs to prioritize the active tab in the document. */}\n \n {toRender.current[AppComponentType.Watchlist] && }\n \n \n \n \n );\n});\n\nexport default DashboardContainerComponent;\n","import React, { lazy, Suspense, useContext, useEffect } from 'react';\nimport { Redirect, Switch } from 'react-router-dom';\n\nimport { ApmRoute } from '@elastic/apm-rum-react';\n\nimport './App.scss';\n\nimport Routes, { webTraderPath } from './setup/routes';\n\nimport './setup/registerIcons';\nimport './setup/monitoring';\nimport './setup/axios';\n\nimport 'react-notifications-component/dist/theme.css';\nimport 'animate.css/animate.min.css';\nimport { Resolver } from './utils/functions/Ioc';\nimport AppContext from './contexts/AppContext';\nimport usePromiseFactory from './utils/hooks/usePromiseFactory';\nimport useObservable from './utils/hooks/useObservable';\nimport useForceRerender from './utils/hooks/useForceRerender';\nimport ThemeWrapper from './views/components/ThemeWrapper';\nimport { subscribeOpsPersistHelper } from './utils/functions/subscrOpParamsPersistHelper';\nimport TradersGymContextProvider from './pages/TradersGym/TradersGymContext';\nimport InstrumentContext, { InstrumentContextProvider } from './contexts/InstrumentContext';\n\nimport useInitialize from './utils/hooks/system/useInitialize';\nimport AccountStatusHandler from './views/components/Permissions/AccountStatusHandler';\n\nimport TwoFactorAuthModal from './views/features/Dashboard/Header/components/SettingsModal/TwoFactorAuthentication/TwoFactorAuthModal';\n\nimport DashboardContainerComponent from './views/features/DashboardContainerComponent/DashboardContainerComponent'; // import useWindowSize from './utils/hooks/useWindowSize';\nimport MarginRulesContext, { MarginRulesContextProvider } from './contexts/MarginRulesContext';\nimport { MarginRequirementsContextProvider } from './contexts/MarginRequirementsContext';\nimport lazyRetry from './utils/functions/lazyRetry';\n\nconst Login = lazy(() => lazyRetry(() => import('./pages/Login/Login')));\nconst MobileView = lazy(() => lazyRetry(() => import('./pages/Mobile/MobileView')));\nconst ForgotPassword = lazy(() => lazyRetry(() => import('./pages/ForgotPassword/ForgotPassword')));\nconst TwoFactorAuthentication = lazy(() =>\n\tlazyRetry(() => import('./pages/TwoFactorAuthentication/TwoFactorAuthentication'))\n);\nconst Agreement = lazy(() => lazyRetry(() => import('./views/features/Agreement')));\nconst NewTraderWindow = lazy(() => lazyRetry(() => import('./views/components/NewTraderWindow/NewTraderWindow')));\nconst TradersGym = lazy(() => lazyRetry(() => import('./pages/TradersGym/TradersGym')));\nconst Signals = lazy(() => lazyRetry(() => import('./pages/Signals/Signals')));\n// const NewUpdateNotification = lazy(() => import('./shared/NewUpdateNotification/NewUpdateNotification'));\nconst AccountStatusModal = lazy(() =>\n\tlazyRetry(() => import('./views/components/AccountStatusModal/AccountStatusModal'))\n);\n\nconst App: React.FC = () => {\n\tconst appContext = useContext(AppContext);\n\tconst promiseFactory = usePromiseFactory();\n\tconst forceRerender = useForceRerender();\n\n\tconst instrumentContextProvider = Resolver.resolve(InstrumentContextProvider);\n\tconst marginRulesProvider = Resolver.resolve(MarginRulesContextProvider);\n\n\tconst queryPersistAppendix = subscribeOpsPersistHelper('status', 'providerStatus');\n\n\tuseObservable(appContext.getPropertyChangeStream('isArabic'), () => {\n\t\tpromiseFactory.throttle('appContext.propertyChanged', 100).then(() => {\n\t\t\tforceRerender();\n\t\t});\n\t});\n\n\tuseEffect(() => {\n\t\tif (appContext.isArabic) {\n\t\t\tdocument.documentElement.setAttribute('dir', 'rtl');\n\t\t} else {\n\t\t\tdocument.documentElement.removeAttribute('dir');\n\t\t}\n\t}, [appContext.isArabic]);\n\n\tuseInitialize();\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default App;\n","import { useState, useEffect } from 'react';\n\ntype Hidden = keyof Pick;\ntype VisibilityChange = keyof Pick<\n\tDocumentEventMap,\n\t'visibilitychange' | 'msvisibilitychange' | 'webkitvisibilitychange'\n>;\nlet hidden: Hidden | undefined;\nlet visibilityChange: VisibilityChange | undefined;\n\nexport default function usePageVisibility() {\n\tif (typeof document?.hidden !== 'undefined') {\n\t\thidden = 'hidden';\n\t\tvisibilityChange = 'visibilitychange';\n\t} else if (typeof document?.msHidden !== 'undefined') {\n\t\thidden = 'msHidden';\n\t\tvisibilityChange = 'msvisibilitychange';\n\t} else if (typeof document?.webkitHidden !== 'undefined') {\n\t\thidden = 'webkitHidden';\n\t\tvisibilityChange = 'webkitvisibilitychange';\n\t}\n\tconst initialHidden = hidden ? document[hidden] : false;\n\tconst [hiddenStatus, setHiddenStatus] = useState(initialHidden);\n\n\tuseEffect(() => {\n\t\tconst handleVisibilityChange = () => {\n\t\t\tif (hidden) setHiddenStatus(document[hidden]);\n\t\t};\n\t\tif (visibilityChange) document.addEventListener(visibilityChange, handleVisibilityChange, false);\n\t\treturn () => {\n\t\t\tif (visibilityChange) document.removeEventListener(visibilityChange, handleVisibilityChange);\n\t\t};\n\t}, []);\n\n\treturn hiddenStatus;\n}\n","import React, { useEffect } from 'react';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport * as reactDeviceDetect from 'react-device-detect';\n\nimport Content from './Content';\nimport RfpGatewayContext from './contexts/RfpGatewayContext';\nimport RfpGateway from './gateways/RfpGateway/RfpGateway';\nimport { Resolver } from './utils/functions/Ioc';\nimport usePageVisibility from './utils/hooks/usePageVisibility';\nimport Routes from './setup/routes';\nimport useWindowSize from \"./utils/hooks/useWindowSize\";\n\nconst queryClient = new QueryClient();\n\nconst ROUTES_ALLOWED_ON_MOBILE = [Routes.account.forgotPassword]\n\nconst App = () => {\n\tconst history = useHistory();\n\tconst location = useLocation();\n\tconst { width, height } = useWindowSize();\n\n\tconst rfpGateway = Resolver.resolve(RfpGateway);\n\t// the \"Content\" component was created because the caching didn't work due to the renders of the app component.\n\t// It will also be used for future refactoring.\n\n\t// Workaround until WTR-4682 get fixed\n\tuseEffect(() => {\n\t\tif (location.pathname === Routes.account.forgotPassword) {\n\t\t\thistory.push(Routes.account.forgotPassword + location.search);\n\t\t}\n\t}, []);\n\n\tconst pageHiddenStatus = usePageVisibility();\n\tuseEffect(() => {\n\t\tif (rfpGateway) {\n\t\t\tif (pageHiddenStatus) {\n\t\t\t\tconsole.log('App is in background');\n\t\t\t\trfpGateway.setAppInBackgroundMode = true;\n\t\t\t} else {\n\t\t\t\tconsole.log('App is visible');\n\t\t\t\trfpGateway.setAppInBackgroundMode = false;\n\t\t\t}\n\t\t}\n\t}, [pageHiddenStatus]);\n\n\tconst isMobile =\n\t\treactDeviceDetect.isMobile ||\n\t\treactDeviceDetect.isAndroid ||\n\t\treactDeviceDetect.isTablet ||\n\t\t'ontouchstart' in document.documentElement;\n\n\tuseEffect(() => {\n\t\tif (isMobile && !ROUTES_ALLOWED_ON_MOBILE.includes(location.pathname)) history.push(Routes.account.mobile);\n\t}, [width, height, isMobile, reactDeviceDetect, location.pathname]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n\twindow.location.hostname === 'localhost'\n\t// [::1] is the IPv6 localhost address.\n\t// window.location.hostname === '[::1]' ||\n\t// 127.0.0.0/8 are considered localhost for IPv4.\n\t// window.location.hostname.match(\n\t// /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n\t// )\n);\n\ntype Config = {\n\tonSuccess?: (registration: ServiceWorkerRegistration) => void;\n\tonUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n\t// console.info(\"process.env.NODE_ENV: \", process.env.NODE_ENV, process.env.NODE_ENV === 'production');\n\t// console.info(\"'serviceWorker' in navigator: \", 'serviceWorker' in navigator);\n\tif (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n\t\t// The URL constructor is available in all browsers that support SW.\n\t\tconst publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n\t\tif (publicUrl.origin !== window.location.origin) {\n\t\t\t// Our service worker won't work if PUBLIC_URL is on a different origin\n\t\t\t// from what our page is served on. This might happen if a CDN is used to\n\t\t\t// serve assets; see https://github.com/facebook/create-react-app/issues/2374\n\t\t\treturn;\n\t\t}\n\n\t\twindow.addEventListener('load', () => {\n\t\t\tconst swUrl = `${process.env.PUBLIC_URL}/sw.js`;\n\n\t\t\tif (isLocalhost) {\n\t\t\t\t// This is running on localhost. Let's check if a service worker still exists or not.\n\t\t\t\tcheckValidServiceWorker(swUrl, config);\n\n\t\t\t\t// Add some additional logging to localhost, pointing developers to the\n\t\t\t\t// service worker/PWA documentation.\n\t\t\t\tnavigator.serviceWorker.ready.then(() => {\n\t\t\t\t\tconsole.log(\n\t\t\t\t\t\t'This web app is being served cache-first by a service ' +\n\t\t\t\t\t\t\t'worker. To learn more, visit https://bit.ly/CRA-PWA'\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// Is not localhost. Just register service worker\n\t\t\t\tregisterValidSW(swUrl, config);\n\t\t\t}\n\t\t});\n\t}\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n\tnavigator.serviceWorker\n\t\t.register(swUrl)\n\t\t.then((registration) => {\n\t\t\tregistration.onupdatefound = () => {\n\t\t\t\tconst installingWorker = registration.installing;\n\t\t\t\tif (installingWorker == null) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tinstallingWorker.onstatechange = () => {\n\n\t\t\t\t\tif (installingWorker.state === 'installed') {\n\t\t\t\t\t\tif (navigator.serviceWorker.controller) {\n\t\t\t\t\t\t\t// At this point, the updated precached content has been fetched,\n\t\t\t\t\t\t\t// but the previous service worker will still serve the older\n\t\t\t\t\t\t\t// content until all client tabs are closed.\n\n\t\t\t\t\t\t\t// Execute callback\n\t\t\t\t\t\t\tif (config && config.onUpdate) {\n\t\t\t\t\t\t\t\tconfig.onUpdate(registration);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// At this point, everything has been precached.\n\t\t\t\t\t\t\t// It's the perfect time to display a\n\t\t\t\t\t\t\t// \"Content is cached for offline use.\" message.\n\n\t\t\t\t\t\t\t// Execute callback\n\t\t\t\t\t\t\tif (config && config.onSuccess) {\n\t\t\t\t\t\t\t\tconfig.onSuccess(registration);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\t\t})\n\t\t.catch((error) => {\n\t\t\tconsole.error('Error during service worker registration:', error);\n\t\t});\n}\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n\t// Check if the service worker can be found. If it can't reload the page.\n\tfetch(swUrl, {\n\t\theaders: { 'Service-Worker': 'script' },\n\t})\n\t\t.then((response) => {\n\t\t\t// Ensure service worker exists, and that we really are getting a JS file.\n\t\t\tconst contentType = response.headers.get('content-type');\n\t\t\tif (response.status === 404 || (contentType != null && contentType.indexOf('javascript') === -1)) {\n\t\t\t\t// No service worker found. Probably a different app. Reload the page.\n\t\t\t\tnavigator.serviceWorker.ready.then((registration) => {\n\t\t\t\t\tregistration.unregister().then(() => {\n\t\t\t\t\t\twindow.location.reload();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// Service worker found. Proceed as normal.\n\t\t\t\tregisterValidSW(swUrl, config);\n\t\t\t}\n\t\t})\n\t\t.catch(() => {\n\t\t\tconsole.log('No internet connection found. App is running in offline mode.');\n\t\t});\n}\n\nexport function unregister() {\n\tif ('serviceWorker' in navigator) {\n\t\tnavigator.serviceWorker.ready\n\t\t\t.then((registration) => {\n\t\t\t\tregistration.unregister();\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tconsole.error(error.message);\n\t\t\t});\n\t}\n}\n\nexport function handleSkipWaiting() {\n\tconsole.info(\"handleSkipWaiting\")\n\tif ('serviceWorker' in navigator) {\n\t\tnavigator.serviceWorker.getRegistration()\n\t\t\t.then((registration) => {\n\t\t\t\tif (registration?.waiting) {\n\t\t\t\t\tregistration.waiting.postMessage({action: 'SKIP_WAITING'});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tconsole.error(error.message);\n\t\t\t});\n\t}\n}\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { BrowserRouter as Router } from 'react-router-dom';\n\n// must be imported before \nimport 'semantic-ui-css/semantic.min.css';\nimport './index.scss';\n\nimport './setup/i18n';\nimport './setup/gtm';\nimport { DependencyContainer, IResolver, Resolver } from './utils/functions/Ioc';\nimport { WindowContextProvider } from './contexts/WindowContext';\nimport { default as RfpGateway } from './gateways/RfpGateway/RfpGateway';\nimport { default as BinaryRfpGateway } from './gateways/RfpGateway/BinaryRfpGateway';\nimport { InstrumentContextProvider } from './contexts/InstrumentContext';\nimport { AppContextProvider } from './contexts/AppContext';\nimport { DashboardContextProvider } from './contexts/DashboardContext';\nimport { ChartContextProvider } from './contexts/ChartContext';\nimport { showSkipWaitingPrompt } from './shared/NewUpdateNotification/utils';\nimport { MarginRulesContextProvider } from './contexts/MarginRulesContext';\n//import { isProduction, isPreviewProduction } from './setup/config';\nimport App from './App';\nimport * as serviceWorkerContainer from './workers/serviceWorkerContainer';\n\nconst dependencyContainer = new DependencyContainer()\n\t.registerSingle(RfpGateway, (resolver: IResolver) => {\n\t\tconst instance = new BinaryRfpGateway({\n\t\t\tdefaultFeedId: 'VTFeed',\n\t\t\tbaseUrl: `${process.env.REACT_APP_RFP_BINARY_WEBPROXY}`,\n\t\t\twebSocket: {\n\t\t\t\tconnectTimeout: 15000,\n\t\t\t\tfeedDelay: 0,\n\t\t\t\tautoReconnect: false, // (isProduction || isPreviewProduction) ? { interval: 1000 } : false,\n\t\t\t\tsimulateQuotes: false,\n\t\t\t},\n\t\t});\n\n\t\tif (\n\t\t\tprocess.env &&\n\t\t\tprocess.env.REACT_APP_ENV === 'development--' &&\n\t\t\tconsole &&\n\t\t\ttypeof console.debug === 'function'\n\t\t) {\n\t\t\tinstance.debugHandler = (...args: any[]) => {\n\t\t\t\tif (args.length > 0 && (args[0] as string).indexOf('MarketWatch') >= 0) {\n\t\t\t\t\tconsole.log(`[${new Date()}]: RfpGateway:`, args);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\treturn instance;\n\t})\n\t.registerSingle(InstrumentContextProvider, (resolver: IResolver) => {\n\t\treturn new InstrumentContextProvider();\n\t})\n\t.registerSingle(AppContextProvider, (resolver: IResolver) => {\n\t\treturn AppContextProvider.instance;\n\t})\n\t.registerSingle(DashboardContextProvider, (resolver: IResolver) => {\n\t\treturn DashboardContextProvider.instance;\n\t})\n\t.registerSingle(MarginRulesContextProvider, (resolver: IResolver) => {\n\t\treturn MarginRulesContextProvider.instance;\n\t})\n\t.registerSingle(ChartContextProvider, (resolver: IResolver) => {\n\t\treturn ChartContextProvider.instance;\n\t})\n\t.register(WindowContextProvider, new WindowContextProvider(globalThis.window));\n\nResolver.setResolver(dependencyContainer.resolver);\n\nconst container = document.getElementById('root');\nconst root = createRoot(container!);\nroot.render(\n\t\n\t\t\n\t\n);\n\n// const onUpdate = () => {\n// \tshowSkipWaitingPrompt();\n// };\n\nwindow.addEventListener('load', async () => {\n\t// When the user asks to refresh the UI, we'll need to reload the window\n\tif (navigator.serviceWorker) {\n\t\tconst registration = await navigator.serviceWorker.getRegistration();\n\n\t\t// ensure the case when the updatefound event was missed is also handled\n\t\t// by re-invoking the prompt when there's a waiting Service Worker\n\t\tif (registration?.waiting) {\n\t\t\tshowSkipWaitingPrompt();\n\t\t}\n\n\t\tif (registration?.active) {\n\t\t\tsetInterval(() => {\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (registration) {\n\t\t\t\t\tconsole.info('registration -> check for updates');\n\t\t\t\t\tregistration\n\t\t\t\t\t\t.update()\n\t\t\t\t\t\t.then((r) => {})\n\t\t\t\t\t\t.catch((e) => {});\n\t\t\t\t}\n\t\t\t}, 600000);\n\t\t}\n\n\t\tlet refreshing = false;\n\n\t\t// detect controller change and refresh the page\n\t\tnavigator.serviceWorker.addEventListener('controllerchange', () => {\n\t\t\tif (!refreshing) {\n\t\t\t\twindow.location.reload();\n\t\t\t\trefreshing = true;\n\t\t\t}\n\t\t});\n\t}\n});\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorkerContainer.unregister();\n// serviceWorkerContainer.register({onUpdate});\n\n//close child windows when this window closes\nResolver.resolve(WindowContextProvider).once('beforeUnload', (sender, event) => {\n\tsender.children.forEach((child) => {\n\t\tchild.window.close();\n\t});\n});\n","export const SW_UPDATE_NOTIFICATION_DIALOG_ID = 'sw-update-notification';\nexport const IS_VISIBLE_DIALOG_CLASS = 'isDialogVisible';\n\nexport const showSkipWaitingPrompt = () => {\n console.info(\"showSkipWaitingPrompt\")\n const notificationDialog = document.getElementById(SW_UPDATE_NOTIFICATION_DIALOG_ID);\n if (notificationDialog) {\n notificationDialog.classList.add(IS_VISIBLE_DIALOG_CLASS);\n }\n};\n\nexport const hideSkipWaitingPrompt = () => {\n console.info(\"hideSkipWaitingPrompt\")\n\n const notificationDialog = document.getElementById(SW_UPDATE_NOTIFICATION_DIALOG_ID);\n if (notificationDialog) {\n notificationDialog.classList.remove(IS_VISIBLE_DIALOG_CLASS);\n }\n};\n"],"sourceRoot":""}