{"version":3,"sources":["portfolio.min.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_createForOfIteratorHelper","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","F","s","done","value","_e","TypeError","err","normalCompletion","didErr","step","next","_e2","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","enumerable","configurable","writable","defineProperty","key","_createClass","protoProps","staticProps","AISContest","settings","this","helper","AISHelper","contestId","aisContestId","aisRoot","startTime","Date","startTimeUtc","endTime","endTimeUtc","winnerCount","pageSize","myRank","cbfProfileId","clientProfileId","myPosition","tableSortParam","sortParam","sortOrder","maximumDrawdown","newAccountRequiredContest","isFinalContest","qualifiersTable","page","myThis","$","document","on","removeClass","keyCode","prev","val","focus","VerifyPhoneNumber","select","$this","selector","dir","hasClass","addClass","data","pagination","currentTime","seconds","LoadMyLoginCredential","InitializeContestEndTimer","html","window","contestStrings","days","parseInt","toLocaleString","timeStr","replace","hours","minimumIntegerDigits","minutes","concat","pwdStr","setTimeout","InitializeContestStartTimer","urls","InitContestPageInfo","InitRankingTable","InitQualifiersTable","joinModalPayload","InitializePhoneInputField","modal","phoneNumber","mid","displayPhoneNumber","substring","login","password","instagram","tiktok","facebook","OpenSocialMediaLinksDialog","location","reload","VerificationLoading","ajax","url","type","cache","success","res","status","show","hide","complete","phoneInput","destroy","phoneInputField","querySelector","intlTelInput","initialCountry","InitialCountryCode","autoHideDialCode","utilsScript","channel","number","message","error","isValidNumber","getNumber","OpenVerifyCodeDialog","rebateAccountId","CallContestBrokerAPI","OpenSuccessDialog","OpenCreationQueuedDialog","toastr","inputs","load","APIHelper","SafeServiceAPICall","_res$myRank","autoSuggestions","mdb_autocomplete","_error","console","log","query","link","dataSource","locator","pageRange","beforeSend","jqXHR","undefined","afterRender","append","clone","totalNumberLocator","response","TotalCount","callback","toLowerCase","header","langSlug","CURRENT_LANG","_step","_iterator","element","cls","row","ClientProfileId","ClientProfileName","CountryCode","AISAccountId","ContestId","ContestName","InitializeScrollTable","InitializeCountryCodeTooltip","ajaxFunction","_response$myPosition","totalCount","_step2","_iterator2","rank","peakDrawdown","manualDisqualified","cbfClientName","country","aisAccountId","hasStats","_element$excludedTrad","ToDecimal","equity","openProfit","ToPercent","profit","deposits","peak","peakTime","valley","valleyTime","ToShortDateTime","ToIntNumber","calculatedTrades","excludedTrades","excludedByLimit","excludedByMinTradeDuration","InitializeRankingTableTooltips","Tabs","LoadTab","order","elem","animate","scrollTop","offset","top","contestBrokerAPIEnabled","ContestBrokerAPI","GetCorrectedHtml","linkLiveAccountModalPayload","newHtml","contestBrokerName","contestBrokerJurisidiction","accountNumber","id","NewAccountLoginLoading","submitNewLiveAccountUrl","brokerId","contestSponsorBrokerId","async","OpenNewAccountSuccessDialog","OpenNewAccountPendingDialog","OpenNewAccountFailDialog","_default","2","hasStyle","strWhenZero","parseFloat","Number","isNaN","localeCode","CURRENT_CULTURE","includes","DEFAULT_CULTURE","str","style","maximumFractionDigits","currency","minimumFractionDigits","digits","t1","t2","span","timezone","date","yearType","getFullYear","toLocaleDateString","weekday","year","month","day","timeZone","hour","minute","lastUpdated","hasError","desc","getTime","GetDuraction","Math","abs","toFixed","each","ele","_window$contestString","_window$contestString2","tooltip","boundary","popover","displayNames","Intl","DisplayNames","countryCode","of","currencyCode","langCode","regionCode","3","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","AISPerformances","performancesQuery","PerformancesLink","search","UpdateFormByQuery","PerformanceFormStateUpdated","InitialzePerformancesTableSort","LoadMorePerformances","scroll","NeedLoadMorePerformances","targetPage","Url","pageNumber","items","_res$items$i","_res$items$i4","cbfClientId","clientName","_res$items$i2","_res$items$i3","profitPercent","monthlyProfitPercent","broker","hasNext","currentPage","remove","silience","searchForm","filterForm","serializeArray","v","splitOne","lastIndexOf","splitTwo","indexOf","string","currentEntry","newEntry","history","pushState","ReloadPerformancesTable","params","URLSearchParams","param","selectpicker","$elem","elementPos","viewportTop","viewportBottom","height","tradingPlatform","brokerServers","brokers","filter","x","platformType","uniqueBrokers","Set","map","item","sort","thSorts","querySelectorAll","addEventListener","OnPerformancesTableSortUpdated","matches","4","AISPortfolio","aisDataRoot","urlParam","get","portfolioId","portfolioInfo","currentRiskFactor","currencyRates","totalsCurrency","ProfileStatisticsLink","ProfilePeriodStatisticsLink","ProfileGrowthChartLink","ProfileStatsHubLink","AddStatsHubLink","PortfoliosLink","profileConnection","signalR","HubConnectionBuilder","withUrl","SignalRUrl","configureLogging","LogLevel","Warning","withAutomaticReconnect","build","start","cbfId","state","InitializePage","addMt4Connection","accountId","portfolioStrings","OpenEditMt4AccontDialog","ApplyRiskFactor","infiniteselect","types","option","text","placeholder","showDescription","culture","btnClass","getElementById","targetCurrency","UpdateAllValuesByRiskFactorAndCurrency","InitProfilePortfolio","InitProfileGrowthChartSection","InitPorfilePeriods","DrawProfileGrowthChart","options","chart","series","xaxis","stroke","width","curve","markers","size","yaxis","forceNiceScale","labels","formatter","growthChart","updateOptions","ApexCharts","render","textStatus","xhr","PopulateBasicInfo","PopulateAccountStatsSummary","InitPorfilePeriodsStatsSection","css","PopulatePeriodsStatsSummary","riskFactor","isPortfolio","portfolioName","publicName","owner","isPublic","breadcrumb","defaultTotalCurrency","default","table","showTotal","totalSummary","realTotalSummary","demoTotalSummary","accountCurrency","withdrawals","balance","drawDown","monthlyProfit","accountStatsSummaries","realAccountStatSummaries","demoAccountStatSummaries","portfolios","forEach","ToStatus","_stat$today","_stat$today2","_stat$today$gainTWR","_stat$today3","_stat$today4","_stat$today$gainTWR2","_stat$today5","_stat$today6","_stat$today7","_stat$today8","_stat$today9","_stat$today10","_stat$today11","_stat$today12","_stat$thisWeek","_stat$thisWeek2","_stat$thisWeek$gainTW","_stat$thisWeek3","_stat$thisWeek4","_stat$thisWeek$gainTW2","_stat$thisWeek5","_stat$thisWeek6","_stat$thisWeek7","_stat$thisWeek8","_stat$thisWeek9","_stat$thisWeek10","_stat$thisWeek11","_stat$thisWeek12","_stat$thisMonth","_stat$thisMonth2","_stat$thisMonth$gainT","_stat$thisMonth3","_stat$thisMonth4","_stat$thisMonth$gainT2","_stat$thisMonth5","_stat$thisMonth6","_stat$thisMonth7","_stat$thisMonth8","_stat$thisMonth9","_stat$thisMonth10","_stat$thisMonth11","_stat$thisMonth12","_stat$thisYear","_stat$thisYear2","_stat$thisYear$gainTW","_stat$thisYear3","_stat$thisYear4","_stat$thisYear$gainTW2","_stat$thisYear5","_stat$thisYear6","_stat$thisYear7","_stat$thisYear8","_stat$thisYear9","_stat$thisYear10","_stat$thisYear11","_stat$thisYear12","stat","today","gain","gainTWR","winPercentage","trades","lots","thisWeek","thisMonth","thisYear","_stat$yearlyStats","yearlyStats","getUTCFullYear","gainPercent","gainPercentTWR","winTradeCount","tradeCount","prop","showBalance","GetDataFromPortfolioSettingForm","JSON","stringify","contentType","dataType","pathname","endsWith","newUrl","substr","replaceState","path","currencies","index","add","promises","promise","CalculatorHelper","GetExchangeRateAsync","then","rate","push","Promise","all","newValue","format","zeroStr","5","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","apply","_objectSpread","arguments","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","_AISHelper","__esModule","AISStatistics","statistics","equityChartZoomed","StatisticsLink","StatsHub","ProfitChartLink","EquityChartLink","EquityDetailChartLink","OpenProfitChartLink","OpenProfitPercentChartLink","ProfileDrawdownChartLink","ProfileBalanceChartLink","ProfileMonthlyChartLink","ProfileAdvancedSummaryChartLink","ProfileAdvancedPeriodChartLink","ProfileAdvancedDurationChartLink","ProfileAdvancedMAEMFEChartLink","ProfileTradingActivityOpenTradesLink","ProfileTradingActivityOpenOrdersLink","ProfileTradingActivityHistoryLink","ProfileTradingActivityExcludedLink","ProfileTradingActivityExposureLink","ProfileMonthlyAnalyticsLink","ProfileMonthlyAnalyticsDetailLink","customUrls","UpdateCustomOptionsLink","usingUrls","currentChart","defaultChart","apexCharts","tradingActivitySortParam","accountInfo","customOptions","timeOffset","chartOptionHtmls","advanced-hourly","statsStrings","monthly-profit","monthly-profit-twr","closed-monthly-profit-twr","closed-monthly-profit","drawdown","advanced-maemfe","profit-percent","closed-profit","open-profit","open-profit-percent","profit-percent-twr","closed-profit-percent-twr","ajaxNum","customAnalysisLoaded","DrawSummaryChart","UpdateSummaryChart","tr","closest","symbol","split","DrawAdvancedStatSummaryChart","DrawMonthlyAnalyticsChart","checked","_myThis$statistics","_myThis$statistics2","PopulateTradingPeriods","balanceBasicStats","_myThis$statistics3","_myThis$statistics4","equityBasicStats","leftOffset","scrollLeft","GetAccessTokenAsync","addHook","is","parents","toggle","attr","ChangeCustomAnalysisOptionContent","parent","currentDate","setDate","getDate","startDate","tradeStartDate","datetimepicker","getMonth","stDate","enDate","num","charAt","setMonth","setFullYear","container","has","customDeposit","statsConnection","aisId","weekdays","analyzeBy","find","tradeTypes","d","join","getHours","getMinutes","prepend","spinInitialTop","innerWidth","screen","ShowLoadingSpin","GetCustomOptions","IsInitialCustomOptions","ResetAnalysis","_this$accountInfo","DateToString","method","reset","click","periodRequest","ApplyCustomAnalysis","statusText","tradeEndDate","customStDate","customEnDate","customSymbolLen","refresh","InitializeStatsWidget","InitAccountSummary","InitializeTradingActivityTable","href","trigger","_myThis$accountInfo","parse","flag","cDate","tradeType","traditional","_res$statistics","_res$statistics2","_res$statistics3","_res$statistics4","_res$statistics5","_res$statistics6","_res$statistics7","_res$statistics8","_advancedStat","HideLoadingSpin","_res$accountInfo","SetPartialAccountHistory","hasIncompleteData","profitPercentTWR","monthlyProfitTWR","closedProfitPercentTWR","closedProfitPercent","InitializePermission","PopualteAccountSummary","PullAdditionalAccountInfo","basicStat","advancedStat","_res$statistics9","_res$statistics10","equityAdvancedStats","_myThis$statistics5","_myThis$statistics6","_myThis$statistics7","_myThis$statistics8","PopulateAdvancedTradesStats","PopulateAdvancedSummaryStats","summary","_myThis$accountInfo2","InitializeSummaryChartOptions","duration","requestData","clientId","cbfClientProfileId","brokerName","brokerServerName","isContestAccountStatistics","_data$contestStatisti","contestStatistics","_data$accountInfo","_data$accountInfo2","_data$accountInfo3","_data$statistics2","_data$statistics3","_data$statistics4","_data$accountInfo4","accountInfoHtml","_data$statistics","popoverHtml","accountType","BrokerLink","ToShortDate","added","ContestStarted","accountLeverage","CurrencyName","_data$statistics5","useGrouping","_data$statistics6","_data$statistics7","withdrawls","_this$accountInfo2","_this$accountInfo3","_this$accountInfo4","showVolume","_data$accountInfo5","_data$accountInfo6","_data$statistics$mont","_data$statistics24","_data$statistics25","_data$statistics$mont2","_data$statistics26","_data$statistics27","_data$statistics$clos","_data$statistics28","_data$statistics29","_stat","_data$accountInfo8","profitType","_data$statistics8","_data$statistics9","cbfClientPublicName","accountName","comment","_data$accountInfo7","shorten","showChars","ellipsesText","moreText","lessText","_data$contestStatisti2","_data$contestStatisti3","_data$contestStatisti4","_data$contestStatisti5","_data$contestStatisti6","_data$statistics10","_data$contestStatisti7","_data$statistics11","_data$statistics12","_data$statistics13","_data$contestStatisti8","openProfitPercent","closedProfit","maxAllowedDD","_data$contestStatisti9","_data$statistics14","_data$statistics15","_data$statistics16","_data$statistics17","_data$statistics18","_data$statistics19","_data$statistics20","_data$statistics21","_data$statistics22","_data$statistics23","accountEquity","accountBalance","accountProfit","closedMonthlyProfitTWR","closedMonthlyProfit","isVerified","_stat$today$gain","_stat$thisWeek$gain","_stat$thisMonth$gain","_stat$thisYear$gain","yearlyStatsHtml","_yearlyStats$i$gainPe","stats","_stats$closedMonthlyP","ToTimeSpan","_data$i","_data$i2","_data$i3","_data$i4","_data$i5","_data$i6","_data$i7","_data$i8","_data$i9","_data$i10","_data$i11","_data$i12","_data$i13","_data$i14","_data$i15","_data$i16","_data$i17","_data$i18","longTrades","longPips","longProfits","shortTrades","shortPips","shortProfits","totalTrades","totalPips","totalProfits","winTrades","lossTrades","probabilityOfLoss","consecutiveLossingTrades","hover","$el","children","chartType","xaxisType","foreColor","background","toolbar","zoom","enabled","colors","theme","mode","dataLabels","categories","axisTicks","grid","borderColor","strokeDashArray","lines","opacity","column","fill","gradient","shadeIntensity","opacityFrom","opacityTo","stops","tickAmount","datetimeUTC","twr","containerId","chartParams","customParams","sendParams","GetDefaultChartOption","ToChartMoney","events","beforeZoom","DrawProfileEquityChart","beforeResetZoom","period","updateDetail","UnitType","years","event","chartContext","config","dataPointIndex","DrawMonthlyAnalyticsDetailCharts","rewardChart","stacked","plotOptions","bar","horizontal","innerHTML","currenciesOptions","currenciesPopularityChart","holidingTimeOptions","averageHoldingTimeChart","y","dataSourceLink","formatAjaxError","errorThrown","closePriceLabel","curDate","ToLongDate","openTime","closeTime","ToDigitsDecimal","openPrice","closePrice","stopLoss","takeProfit","pips","swap","commission","matchMedia","DrawProfileProfitChart","DrawProfileOpenProfitChart","DrawProfileBalanceChart","DrawProfileOpenProfitPercentChart","DrawProfileDrawdownChart","DrawProfileMonthlyChart","DrawAdvancedPeriodChart","DrawAdvancedDurationChart","DrawAdvancedMAEMFEChart","removeAttr","display","./AISHelper","6","_interopRequireDefault","_AISStatistics","_AISPortfolio","_AISContest","_AISPerformances","fn","extend","off","content","h","jQuery","../../includes/AISContest.js","../../includes/AISHelper.js","../../includes/AISPerformances.js","../../includes/AISPortfolio.js","../../includes/AISStatistics.js"],"mappings":"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","file":"../portfolio.min.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nvar AISContest = /*#__PURE__*/function () {\n function AISContest(settings) {\n _classCallCheck(this, AISContest);\n this.helper = new AISHelper();\n this.contestId = settings.contestId;\n this.aisContestId = settings.aisContestId;\n this.aisRoot = settings.aisRoot;\n this.startTime = new Date(settings.startTimeUtc);\n this.endTime = new Date(settings.endTimeUtc);\n this.winnerCount = settings.winnerCount;\n this.pageSize = 100;\n this.myRank = -1;\n this.cbfProfileId = settings.clientProfileId;\n this.myPosition = -1;\n this.tableSortParam = {\n sortParam: \"rank\",\n sortOrder: \"asce\"\n };\n this.maximumDrawdown = settings.maximumDrawdown;\n this.newAccountRequiredContest = settings.newAccountRequiredContest;\n this.isFinalContest = settings.isFinalContest;\n this.qualifiersTable = {\n pageSize: 100,\n page: 1,\n tableSortParam: {\n sortParam: \"user\",\n sortOrder: \"asce\"\n }\n };\n }\n _createClass(AISContest, [{\n key: \"SetMaximumDrawdown\",\n value: function SetMaximumDrawdown(maximumDrawdown) {\n this.maximumDrawdown = maximumDrawdown;\n }\n }, {\n key: \"InitializeEventTriggers\",\n value: function InitializeEventTriggers() {\n var myThis = this;\n $(document).on('keyup', '.phone-number-input', function () {\n $(\".phone-number-input-box\").removeClass(\"has-error\");\n });\n $(document).on('keyup', '.verification-code-group input', function (e) {\n if (e.keyCode === 8) {\n $(this).prev('input').val('');\n $(this).prev('input').focus();\n }\n });\n $(document).on('input', '.verification-code-group input', function (e) {\n if (e.keyCode != 8) {\n $(this).next('input').focus();\n $(\"#verification-code-message\").removeClass(\"has-error\");\n if ($(this).next('input').length == 0) {\n myThis.VerifyPhoneNumber();\n }\n }\n });\n $(document).on('focus', '.verification-code-group input', function (e) {\n $(this).select();\n });\n $(document).on('click', '#contest-ranking-table-container th.sort[data-sort-param]', function (e) {\n var $this = $(this);\n var selector = \"#contest-ranking-table-container\";\n var dir = \"asce\";\n if ($this.hasClass(\"asce\")) dir = \"desc\";else dir = \"asce\";\n $(selector + \" td.sort[data-sort-param]\").removeClass(\"asce\");\n $(selector + \" td.sort[data-sort-param]\").removeClass(\"desc\");\n $this.addClass(dir);\n myThis.tableSortParam = {\n sortParam: $this.data(\"sort-param\"),\n sortOrder: dir\n };\n $(selector).pagination($(selector).pagination('getSelectedPageNum'));\n });\n $(document).on('click', '#qualifiers-table-container th.sort[data-sort-param]', function (e) {\n var $this = $(this);\n var selector = \"#qualifiers-table-container\";\n var dir = \"asce\";\n if ($this.hasClass(\"asce\")) dir = \"desc\";else dir = \"asce\";\n $(selector + \" td.sort[data-sort-param]\").removeClass(\"asce\");\n $(selector + \" td.sort[data-sort-param]\").removeClass(\"desc\");\n $this.addClass(dir);\n myThis.qualifiersTable.tableSortParam = {\n sortParam: $this.data(\"sort-param\"),\n sortOrder: dir\n };\n $(selector).pagination($(selector).pagination('getSelectedPageNum'));\n });\n }\n }, {\n key: \"InitializeContestStartTimer\",\n value: function InitializeContestStartTimer() {\n var myThis = this;\n var currentTime = new Date();\n var seconds = (myThis.startTime - currentTime) / 1000;\n if (seconds <= 0) {\n myThis.LoadMyLoginCredential();\n myThis.InitializeContestEndTimer();\n } else {\n $('[data-elem=\"contest-start-timer-text\"]').html(window.contestStrings[\"ThisContestStartsIn\"] + \":\");\n var days = parseInt(seconds / 86400).toLocaleString(\"en\");\n var timeStr = \"\";\n if (seconds >= 86400) {\n // days\n timeStr += window.contestStrings['_0Days'].replace(\"{0}\", parseInt(seconds / 86400)) + \" \";\n seconds %= 86400;\n }\n var hours = parseInt(seconds / 3600).toLocaleString(\"en\", {\n minimumIntegerDigits: 2\n });\n seconds %= 3600;\n var minutes = parseInt(seconds / 60).toLocaleString(\"en\", {\n minimumIntegerDigits: 2\n });\n seconds %= 60;\n seconds = parseInt(seconds).toLocaleString(\"en\", {\n minimumIntegerDigits: 2\n });\n timeStr += \"\".concat(hours, \":\").concat(minutes, \":\").concat(seconds);\n var pwdStr = window.contestStrings[\"PasswordShowsAtContestStart0\"].replace(\"{0}\", timeStr);\n $(\".contest-timer-item[data-elem=day] span:first-child\").html(days);\n $(\".contest-timer-item[data-elem=hour] span:first-child\").html(hours);\n $(\".contest-timer-item[data-elem=minute] span:first-child\").html(minutes);\n $(\".contest-timer-item[data-elem=second] span:first-child\").html(seconds);\n $(\"[data-id=login-password]\").html(pwdStr);\n setTimeout(function () {\n myThis.InitializeContestStartTimer();\n }, 1000);\n }\n }\n }, {\n key: \"InitializeContestEndTimer\",\n value: function InitializeContestEndTimer() {\n var myThis = this;\n var currentTime = new Date();\n var seconds = (myThis.endTime - currentTime) / 1000;\n if (seconds <= 0) {\n $('[data-elem=\"contest-start-timer-text\"]').html(window.contestStrings['ThisContestIsEnded']);\n } else {\n $('[data-elem=\"contest-start-timer-text\"]').html(window.contestStrings[\"ThisContestEndsIn\"] + \":\");\n var days = parseInt(seconds / 86400).toLocaleString(\"en\");\n seconds %= 86400;\n var hours = parseInt(seconds / 3600).toLocaleString(\"en\", {\n minimumIntegerDigits: 2\n });\n seconds %= 3600;\n var minutes = parseInt(seconds / 60).toLocaleString(\"en\", {\n minimumIntegerDigits: 2\n });\n seconds %= 60;\n seconds = parseInt(seconds).toLocaleString(\"en\", {\n minimumIntegerDigits: 2\n });\n $(\".contest-timer-item[data-elem=day] span:first-child\").html(days);\n $(\".contest-timer-item[data-elem=hour] span:first-child\").html(hours);\n $(\".contest-timer-item[data-elem=minute] span:first-child\").html(minutes);\n $(\".contest-timer-item[data-elem=second] span:first-child\").html(seconds);\n setTimeout(function () {\n myThis.InitializeContestEndTimer();\n }, 1000);\n }\n }\n }, {\n key: \"Url\",\n value: function Url(key) {\n return this.aisRoot + (this.urls || {})[key];\n }\n }, {\n key: \"InitializePage\",\n value: function InitializePage() {\n var myThis = this;\n myThis.InitContestPageInfo();\n myThis.InitRankingTable();\n myThis.InitQualifiersTable();\n myThis.InitializeContestStartTimer();\n }\n }, {\n key: \"OpenContestJoinDialog\",\n value: function OpenContestJoinDialog() {\n var myThis = this;\n $(\"#join-modal-payload\").html(window.joinModalPayload['phone-verification']);\n myThis.InitializePhoneInputField();\n $(\"#contest-join-dialog\").modal('show');\n }\n }, {\n key: \"OpenVerifyCodeDialog\",\n value: function OpenVerifyCodeDialog(phoneNumber) {\n var myThis = this;\n $(\"#join-modal-payload\").html(window.joinModalPayload['verify-code']);\n $(\"#phone-number\").val(phoneNumber);\n var mid = '';\n for (var i = 0; i < phoneNumber.length - 4; i++) {\n mid += '*';\n }\n var displayPhoneNumber = phoneNumber.substring(0, 2) + mid + phoneNumber.substring(phoneNumber.length - 2, phoneNumber.length);\n $(\"#code-sent-info\").html(window.contestStrings['WeSentConfirmation6SymbolsCodeToTheNumber0'].replace(\"{0}\", displayPhoneNumber));\n $(\"#contest-join-dialog\").modal('show');\n }\n }, {\n key: \"OpenSuccessDialog\",\n value: function OpenSuccessDialog(login, password, instagram, tiktok, facebook) {\n var myThis = this;\n $(\"#join-modal-payload\").html(window.joinModalPayload['success']);\n $(\"#join-modal-payload [data-id=login-number]\").html(login);\n $(\"#join-modal-payload [data-id=login-password]\").html(password);\n $(\"#contest-join-dialog\").modal('show');\n $('#contest-join-dialog').on('hidden.bs.modal', function () {\n myThis.OpenSocialMediaLinksDialog(instagram, tiktok, facebook);\n });\n }\n }, {\n key: \"OpenCreationQueuedDialog\",\n value: function OpenCreationQueuedDialog() {\n var myThis = this;\n $(\"#join-modal-payload\").html(window.joinModalPayload['queued']);\n $(\"#contest-join-dialog\").modal('show');\n $('#contest-join-dialog').on('hidden.bs.modal', function () {\n window.location.reload();\n });\n }\n }, {\n key: \"OpenSocialMediaLinksDialog\",\n value: function OpenSocialMediaLinksDialog(instagram, tiktok, facebook) {\n $(\"#join-modal-payload\").html(window.joinModalPayload['social-media-links']);\n $('#join-modal-payload input[name=\"social-instagram\"]').val(instagram);\n $('#join-modal-payload input[name=\"social-tiktok\"]').val(tiktok);\n $('#join-modal-payload input[name=\"social-facebook\"]').val(facebook);\n $(\"#contest-join-dialog\").modal('show');\n $('#contest-join-dialog').on('hidden.bs.modal', function () {\n window.location.reload();\n });\n }\n }, {\n key: \"OpenMyLoginCredentialDialog\",\n value: function OpenMyLoginCredentialDialog() {\n var myThis = this;\n $(\"#join-modal-payload\").html(window.joinModalPayload['my-login-credential']);\n $(\"#contest-join-dialog\").modal('show');\n myThis.LoadMyLoginCredential();\n }\n }, {\n key: \"LoadMyLoginCredential\",\n value: function LoadMyLoginCredential() {\n var myThis = this;\n myThis.VerificationLoading(true);\n $.ajax({\n url: '/contests/' + myThis.contestId + '/my-login-credential',\n type: 'POST',\n cache: false,\n success: function success(res) {\n if (res.status != \"error\") {\n if (res.status === \"queued\") {\n $(\"#join-modal-payload [data-id=queued-message]\").show();\n } else {\n $(\"#join-modal-payload [data-id=queued-message]\").hide();\n }\n $(\"#join-modal-payload [data-id=login-number]\").html(res.login);\n $(\"#join-modal-payload [data-id=login-password]\").html(res.password);\n $('#join-modal-payload input[name=\"social-instagram\"]').val(res.instagram);\n $('#join-modal-payload input[name=\"social-tiktok\"]').val(res.tiktok);\n $('#join-modal-payload input[name=\"social-facebook\"]').val(res.facebook);\n }\n },\n complete: function complete() {\n myThis.VerificationLoading(false);\n }\n });\n }\n }, {\n key: \"InitializePhoneInputField\",\n value: function InitializePhoneInputField() {\n var myThis = this;\n if (!!myThis.phoneInput) {\n myThis.phoneInput.destroy();\n myThis.phoneInput = null;\n }\n myThis.phoneInputField = document.querySelector(\"#phone-input\");\n myThis.phoneInput = window.intlTelInput(myThis.phoneInputField, {\n initialCountry: window.InitialCountryCode,\n autoHideDialCode: false,\n utilsScript: \"https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/21.2.4/js/utils.js\"\n });\n }\n }, {\n key: \"ResendVerificationCode\",\n value: function ResendVerificationCode(channel) {\n var myThis = this;\n var number = $(\"#phone-number\").val();\n myThis.VerificationLoading(true);\n $.ajax({\n url: '/contests/' + myThis.contestId + '/send-verification-code',\n data: {\n phoneNumber: number,\n channel: channel\n },\n type: 'POST',\n cache: false,\n success: function success(res) {\n if (res.status == \"pending\") {\n $(\"#verification-code-message\").removeClass(\"has-error\");\n } else if (res.status == \"twilio-error\") {\n $(\"#verification-code-message\").addClass(\"has-error\");\n $(\"#verification-code-message span.validation-message\").html(res.message);\n } else {\n $(\"#verification-code-message\").addClass(\"has-error\");\n $(\"#verification-code-message span.validation-message\").html(window.contestStrings['FailedToResendVerificationCode']);\n }\n },\n error: function error() {\n $(\"#verification-code-message\").addClass(\"has-error\");\n $(\"#verification-code-message span.validation-message\").html(window.contestStrings['FailedToResendVerificationCode']);\n },\n complete: function complete() {\n myThis.VerificationLoading(false);\n }\n });\n }\n }, {\n key: \"SendVerificationCode\",\n value: function SendVerificationCode() {\n var myThis = this;\n if (!myThis.phoneInput || !myThis.phoneInput.isValidNumber()) {\n $(\".phone-number-input-box\").addClass('has-error');\n $(\".phone-number-input-box .validation-message\").html(window.contestStrings['TheMobileNumberYouEnteredIsInvalid']);\n return;\n }\n var number = myThis.phoneInput.getNumber();\n myThis.VerificationLoading(true);\n $.ajax({\n url: '/contests/' + myThis.contestId + '/send-verification-code',\n data: {\n phoneNumber: number,\n channel: 'sms'\n },\n type: 'POST',\n cache: false,\n success: function success(res) {\n if (res.status == \"pending\") {\n myThis.OpenVerifyCodeDialog(number);\n } else if (res.status == \"error\") {\n $(\".phone-number-input-box\").addClass('has-error');\n $(\".phone-number-input-box .validation-message\").html(res.message);\n } else if (res.status == \"phone-number\") {\n $(\".phone-number-input-box\").addClass('has-error');\n $(\".phone-number-input-box .validation-message\").html(res.message);\n } else {\n $(\".phone-number-input-box\").addClass('has-error');\n $(\".phone-number-input-box .validation-message\").html(window.contestStrings['TheMobileNumberYouEnteredIsInvalid']);\n }\n },\n error: function error() {\n $(\".phone-number-input-box\").addClass('has-error');\n $(\".phone-number-input-box .validation-message\").html(window.contestStrings['TheMobileNumberYouEnteredIsInvalid']);\n },\n complete: function complete() {\n myThis.VerificationLoading(false);\n }\n });\n }\n }, {\n key: \"JoinWithPhoneNumber\",\n value: function JoinWithPhoneNumber() {\n var myThis = this;\n if (!myThis.phoneInput || !myThis.phoneInput.isValidNumber()) {\n $(\".phone-number-input-box\").addClass('has-error');\n $(\".phone-number-input-box .validation-message\").html(window.contestStrings['TheMobileNumberYouEnteredIsInvalid']);\n return;\n }\n var rebateAccountId;\n if ($(\"#validation-rebate-account-id\").length > 0) rebateAccountId = $(\"#validation-rebate-account-id\").val();\n var number = myThis.phoneInput.getNumber();\n myThis.VerificationLoading(true);\n $.ajax({\n url: '/contests/' + myThis.contestId + '/join-with-phone-number',\n data: {\n phoneNumber: number,\n rebateAccountId: rebateAccountId\n },\n type: 'POST',\n cache: false,\n success: function success(res) {\n if (res.status == \"created\") {\n myThis.CallContestBrokerAPI();\n myThis.OpenSuccessDialog(res.login, res.password, res.instagram, res.tiktok, res.facebook);\n } else if (res.status == \"queued\") {\n myThis.OpenCreationQueuedDialog();\n } else if (res.status == \"error\") {\n $(\"#contest-join-dialog #validation-summary\").html(res.message);\n } else {\n $(\"#verification-code-message\").addClass(\"has-error\");\n $(\"#verification-code-message span.validation-message\").html(window.contestStrings['FailedToCreateADemoAccountPleaseTryAgainLater']);\n toastr.error(window.contestStrings['FailedToCreateADemoAccountPleaseTryAgainLater']);\n }\n },\n error: function error() {\n $(\".phone-number-input-box\").addClass('has-error');\n $(\".phone-number-input-box .validation-message\").html(window.contestStrings['FailedToCreateADemoAccountPleaseTryAgainLater']);\n toastr.error(window.contestStrings['FailedToCreateADemoAccountPleaseTryAgainLater']);\n },\n complete: function complete() {\n myThis.VerificationLoading(false);\n }\n });\n }\n }, {\n key: \"VerifyPhoneNumber\",\n value: function VerifyPhoneNumber() {\n var myThis = this;\n var inputs = $(\".verification-code-group input\");\n var code = '';\n for (var i = 0; i < inputs.length; i++) {\n code += $(inputs[i]).val();\n }\n if (code.length < 6) return;\n var number = $(\"#phone-number\").val();\n myThis.VerificationLoading(true);\n $.ajax({\n url: '/contests/' + myThis.contestId + '/join-with-verification-code',\n data: {\n phoneNumber: number,\n code: code\n },\n type: 'POST',\n cache: false,\n success: function success(res) {\n if (res.status == \"created\") {\n myThis.CallContestBrokerAPI();\n myThis.OpenSuccessDialog(res.login, res.password, res.instagram, res.tiktok, res.facebook);\n } else if (res.status == \"queued\") {\n myThis.OpenCreationQueuedDialog();\n } else if (res.status == \"expired\") {\n $(\"#verification-code-message\").addClass(\"has-error\");\n $(\"#verification-code-message span.validation-message\").html(window.contestStrings['Expired']);\n } else if (res.status == \"pending\") {\n $(\"#verification-code-message\").addClass(\"has-error\");\n $(\"#verification-code-message span.validation-message\").html(window.contestStrings['InvalidVerificationCode']);\n } else if (res.status == \"twilio-error\") {\n $(\"#verification-code-message\").addClass(\"has-error\");\n $(\"#verification-code-message span.validation-message\").html(window.contestStrings['InvalidVerificationCode']);\n } else if (res.status == \"error\") {\n $(\"#verification-code-message\").addClass(\"has-error\");\n $(\"#verification-code-message span.validation-message\").html(res.message);\n } else {\n $(\"#verification-code-message\").addClass(\"has-error\");\n $(\"#verification-code-message span.validation-message\").html(window.contestStrings['FailedToCreateADemoAccountPleaseTryAgainLater']);\n }\n },\n error: function error() {\n $(\"#verification-code-message\").addClass(\"has-error\");\n $(\"#verification-code-message span.validation-message\").html(window.contestStrings['FailedToCreateADemoAccountPleaseTryAgainLater']);\n toastr.error(window.contestStrings['FailedToCreateADemoAccountPleaseTryAgainLater']);\n },\n complete: function complete() {\n for (var i = 0; i < inputs.length; i++) {\n $(inputs[i]).val('');\n }\n $(\".verification-code-group input:first-child\").focus();\n myThis.VerificationLoading(false);\n }\n });\n }\n }, {\n key: \"VerificationLoading\",\n value: function VerificationLoading(load) {\n if (load) {\n $(\"#join-modal-payload [data-trigger=loading]\").addClass(\"loading\");\n } else {\n $(\"#join-modal-payload [data-trigger=loading]\").removeClass(\"loading\");\n }\n }\n }, {\n key: \"InitContestPageInfo\",\n value: function InitContestPageInfo() {\n var myThis = this;\n window.APIHelper.SafeServiceAPICall({\n url: myThis.aisRoot + '/api/v1/mt4/contests/' + myThis.aisContestId + '/info',\n type: \"GET\",\n success: function success(res) {\n var _res$myRank;\n if (!res) return;\n myThis.myRank = (_res$myRank = res === null || res === void 0 ? void 0 : res.myRank) !== null && _res$myRank !== void 0 ? _res$myRank : -1;\n if (res.myRank != -1) {\n $(\"#my-rank\").html(\"\".concat(window.contestStrings[\"MyRank0\"].replace(\"{0}\", res.myRank + 1)));\n $(\"#my-rank\").show();\n }\n if (res.autoSuggestions.length > 0) {\n $(\"#contestants-search\").mdb_autocomplete({\n data: res.autoSuggestions\n });\n }\n },\n error: function error(_error) {\n console.log(_error);\n }\n });\n }\n }, {\n key: \"InitQualifiersTable\",\n value: function InitQualifiersTable(query) {\n var myThis = this;\n var selector = '#qualifiers-table-container';\n if ($(selector).length == 0) return;\n var link = '/api/contests/' + myThis.contestId + '/qualifiers';\n if (!!query) link += '?query=' + query;\n $(selector).pagination({\n dataSource: link,\n locator: 'Items',\n pageSize: myThis.qualifiersTable.pageSize,\n pageRange: 1,\n ajax: {\n beforeSend: function beforeSend(jqXHR, settings) {\n if (myThis.qualifiersTable.tableSortParam != undefined) {\n settings.url += '&sortParam=' + myThis.qualifiersTable.tableSortParam.sortParam + '&sortOrder=' + myThis.qualifiersTable.tableSortParam.sortOrder;\n }\n return true;\n }\n },\n afterRender: function afterRender() {\n $(\"#qualifiers-table-paginater\").html('');\n $(\"#qualifiers-table-paginater\").append($('#qualifiers-table-container .paginationjs').clone(true));\n },\n totalNumberLocator: function totalNumberLocator(response) {\n if (!response) return 0;\n return response.TotalCount;\n },\n callback: function callback(data, pagination) {\n var sortParam = \"user\",\n sortOrder = \"asce\";\n if (!!myThis.qualifiersTable.tableSortParam) {\n sortParam = myThis.qualifiersTable.tableSortParam.sortParam;\n sortOrder = myThis.qualifiersTable.tableSortParam.sortOrder.toLowerCase();\n }\n var html = '';\n var header = '';\n if (sortParam == \"user\") header += \"\");else header += \"\");\n\n // hide country column\n if (sortParam == \"country\") header += \"\");else header += \"\");\n if (sortParam == \"account\") header += \"\");else header += \"\");\n if (sortParam == \"contest\") header += \"\");else header += \"\");\n header += '';\n html += header;\n var langSlug = \"\";\n if (window.CURRENT_LANG != 'en') langSlug += '/' + window.CURRENT_LANG;\n var _iterator = _createForOfIteratorHelper(data),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var element = _step.value;\n var cls = '';\n var row = '';\n if (element.ClientProfileId == myThis.cbfProfileId) {\n cls += ' mine';\n }\n if (cls != '') {\n row += '';\n } else {\n row = '';\n }\n row += \"\");\n\n // hide country column\n if (!!(element !== null && element !== void 0 && element.CountryCode)) {\n row += \"\");\n } else {\n row += \"\";\n }\n row += \"\");\n row += \"\");\n row += '';\n html += row;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n html += '
\").concat(window.contestStrings['User'], \"\".concat(window.contestStrings['User'], \"\").concat(window.contestStrings['Country'], \"\".concat(window.contestStrings['Country'], \"\").concat(window.contestStrings['ContestAccount'], \"\".concat(window.contestStrings['ContestAccount'], \"\").concat(window.contestStrings['Contest'], \"\".concat(window.contestStrings['Contest'], \"
\").concat(element === null || element === void 0 ? void 0 : element.ClientProfileName, \"\").concat(element.AISAccountId, \"\").concat(element === null || element === void 0 ? void 0 : element.ContestName, \"
';\n html = '
' + html + '
';\n $(selector + \" .table-wrapper\").html(html);\n InitializeScrollTable(selector + \" .table-wrapper .section-tab-body table\");\n myThis.helper.InitializeCountryCodeTooltip();\n }\n });\n }\n }, {\n key: \"SearchQualifiers\",\n value: function SearchQualifiers() {\n var query = $(\"#qualifiers-search\").val();\n this.InitQualifiersTable(query);\n return false;\n }\n }, {\n key: \"InitRankingTable\",\n value: function InitRankingTable(query) {\n var myThis = this;\n var selector = '#contest-ranking-table-container';\n var link = myThis.aisRoot + '/api/v1/mt4/contests/' + myThis.aisContestId + '/ranking' + '?cbfProfileId=' + myThis.cbfProfileId;\n if (!!query) link += '&query=' + query;\n $(selector).pagination({\n dataSource: link,\n ajaxFunction: function ajaxFunction(t) {\n return window.APIHelper.SafeServiceAPICall(t);\n },\n locator: 'items',\n pageSize: myThis.pageSize,\n pageRange: 1,\n ajax: {\n beforeSend: function beforeSend(jqXHR, settings) {\n if (myThis.tableSortParam != undefined) {\n settings.url += '&sortParam=' + myThis.tableSortParam.sortParam + '&sortOrder=' + myThis.tableSortParam.sortOrder;\n }\n return true;\n }\n },\n afterRender: function afterRender() {\n $(\"#ranking-table-paginater\").html('');\n $(\"#ranking-table-paginater\").append($('#contest-ranking-table-container .paginationjs').clone(true));\n },\n totalNumberLocator: function totalNumberLocator(response) {\n var _response$myPosition;\n if (!response) return 0;\n myThis.myPosition = (_response$myPosition = response === null || response === void 0 ? void 0 : response.myPosition) !== null && _response$myPosition !== void 0 ? _response$myPosition : -1;\n return response.totalCount;\n },\n callback: function callback(data, pagination) {\n var sortParam = \"rank\",\n sortOrder = \"asce\";\n if (!!myThis.tableSortParam) {\n sortParam = myThis.tableSortParam.sortParam;\n sortOrder = myThis.tableSortParam.sortOrder.toLowerCase();\n }\n var html = '';\n var header = '';\n if (sortParam == \"rank\") header += \"\");else header += \"\";\n if (sortParam == \"user\") header += \"\");else header += \"\");\n\n // hide country column\n if (sortParam == \"country\") header += \"\");else header += \"\");\n if (sortParam == \"account\") header += \"\");else header += \"\");\n if (sortParam == \"equity\") header += \"\");else header += \"\");\n if (sortParam == \"open-profit\") header += \"\");else header += \"\");\n if (sortParam == \"profit-percent\") header += \"\");else header += \"\");\n if (sortParam == \"peak-drawdown\") header += \"\");else header += \"\");\n if (sortParam == \"calculated-trades\") header += \"\");else header += \"\");\n if (sortParam == \"excluded-trades\") header += \"\");else header += \"\");\n header += '';\n html += header;\n var langSlug = \"\";\n if (window.CURRENT_LANG != 'en') langSlug += '/' + window.CURRENT_LANG;\n var _iterator2 = _createForOfIteratorHelper(data),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var element = _step2.value;\n var cls = '';\n var row = '';\n if (element.rank < myThis.winnerCount) {\n cls += 'winner';\n }\n if (element.cbfProfileId == myThis.cbfProfileId) {\n cls += ' mine';\n }\n if (cls != '') {\n row += '';\n } else {\n row = '';\n }\n if (!!myThis.maximumDrawdown && myThis.maximumDrawdown > 0 && element.peakDrawdown > myThis.maximumDrawdown) {\n row += '';\n } else if (element.manualDisqualified) {\n row += '';\n } else {\n row += '';\n }\n row += \"\");\n\n // hide country column\n if (!!(element !== null && element !== void 0 && element.country)) {\n row += \"\");\n } else {\n row += \"\");\n if (element.hasStats) {\n var _element$excludedTrad;\n row += '';\n row += '';\n row += '';\n if (element.peak != null && element.peakTime != null && element.valley != null && element.valleyTime != null) {\n var popoverContent = \"
##\").concat(window.contestStrings['User'], \"\".concat(window.contestStrings['User'], \"\").concat(window.contestStrings['Country'], \"\".concat(window.contestStrings['Country'], \"\").concat(window.contestStrings['Account'], \"\".concat(window.contestStrings['Account'], \"\").concat(window.contestStrings['Equity'], \"\".concat(window.contestStrings['Equity'], \"\").concat(window.contestStrings['OpenProfit'], \"\".concat(window.contestStrings['OpenProfit'], \"\").concat(window.contestStrings['ProfitPercent'], \"\".concat(window.contestStrings['ProfitPercent'], \"\").concat(window.contestStrings['PeakDrawdown'], \"\".concat(window.contestStrings['PeakDrawdown'], \"\").concat(window.contestStrings['CalculatedTrades'], \"\".concat(window.contestStrings['CalculatedTrades'], \"\").concat(window.contestStrings['ExcludedTrades'], \"\".concat(window.contestStrings['ExcludedTrades'], \"
!
!
' + (element.rank + 1) + '
\").concat(element === null || element === void 0 ? void 0 : element.cbfClientName, \"\";\n }\n row += \"\").concat(element === null || element === void 0 ? void 0 : element.name, \"' + myThis.helper.ToDecimal(element.equity) + '' + myThis.helper.ToDecimal(element.openProfit) + '' + myThis.helper.ToPercent(element.profit / element.deposits) + '
\".concat(window.contestStrings[\"EquityHigh\"], \":
\").concat(myThis.helper.ToDecimal(element.peak), \"
\").concat(myThis.helper.ToShortDateTime(element.peakTime, 'short', 'UTC'), \"
\").concat(window.contestStrings[\"SubsequentEquityLow\"], \":
\").concat(myThis.helper.ToDecimal(element.valley), \"
\").concat(myThis.helper.ToShortDateTime(element.valleyTime, 'short', 'UTC'), \"
\");\n var peakHtml = \"\").concat(myThis.helper.ToPercent(element.peakDrawdown), \"\");\n row += '' + peakHtml + '';\n } else {\n row += '' + myThis.helper.ToPercent(element.peakDrawdown) + '';\n }\n row += '' + myThis.helper.ToIntNumber(element.calculatedTrades) + '';\n row += '' + myThis.helper.ToIntNumber((_element$excludedTrad = element.excludedTrades) !== null && _element$excludedTrad !== void 0 ? _element$excludedTrad : element.excludedByLimit + element.excludedByMinTradeDuration) + '';\n } else {\n row += ' - ';\n row += ' - ';\n row += ' - ';\n row += ' - ';\n row += ' - ';\n row += ' - ';\n }\n row += '';\n html += row;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n html += '';\n html = '
' + html + '
';\n $(selector + \" .table-wrapper\").html(html);\n InitializeScrollTable(selector + \" .table-wrapper .section-tab-body table\");\n myThis.helper.InitializeRankingTableTooltips();\n }\n });\n }\n }, {\n key: \"SearchContestants\",\n value: function SearchContestants() {\n var query = $(\"#contestants-search\").val();\n this.InitRankingTable(query);\n return false;\n }\n }, {\n key: \"GoToMyPosition\",\n value: function GoToMyPosition() {\n var myThis = this;\n if (myThis.myPosition != -1) {\n window.Tabs.LoadTab($(\"#tab-contest-rankings\"));\n var page = parseInt(myThis.myPosition / myThis.pageSize);\n var order = myThis.myPosition - page * myThis.pageSize + 1;\n $(\"#contest-ranking-table-container\").pagination('go', page + 1);\n var elem = $(\"#contest-ranking-table-container table tr:nth-child(\" + order + \")\");\n if (elem.length > 0) {\n $('html, body').animate({\n scrollTop: elem.offset().top\n }, 500);\n }\n }\n }\n }, {\n key: \"UpdateSocialMediaLinks\",\n value: function UpdateSocialMediaLinks() {\n var instagram = $('#contest-join-dialog input[name=\"social-instagram\"]').val();\n var tiktok = $('#contest-join-dialog input[name=\"social-tiktok\"]').val();\n var facebook = $('#contest-join-dialog input[name=\"social-facebook\"]').val();\n $('#contest-join-dialog').modal('hide');\n $.ajax({\n url: '/api/settings/update-social-links',\n type: 'post',\n data: {\n instagram: instagram,\n tiktok: tiktok,\n facebook: facebook\n },\n success: function success() {\n toastr.success(window.contestStrings[\"YourSocialMediaUsernamesHaveBeenSavedSuccessfully\"]);\n },\n error: function error() {\n toastr.error(window.contestStrings[\"SomethingWentWrongFailedToSaveYourSocialMediaUsernames\"]);\n }\n });\n }\n }, {\n key: \"CallContestBrokerAPI\",\n value: function CallContestBrokerAPI() {\n if (window.contestBrokerAPIEnabled) {\n ContestBrokerAPI();\n }\n }\n }, {\n key: \"OpenNewLiveAccountLinkDialog\",\n value: function OpenNewLiveAccountLinkDialog() {\n $(\"#link-new-live-account-modal-payload\").html(this.GetCorrectedHtml(window.linkLiveAccountModalPayload[\"submit-live-account\"]));\n this.InitializePhoneInputField();\n $(\"#link-new-live-account-dialog\").modal('show');\n }\n }, {\n key: \"OpenRestrictedCountryDialog\",\n value: function OpenRestrictedCountryDialog() {\n $(\"#link-new-live-account-modal-payload\").html(this.GetCorrectedHtml(window.linkLiveAccountModalPayload[\"restricted-country\"]));\n $(\"#link-new-live-account-dialog\").modal('show');\n }\n }, {\n key: \"GetCorrectedHtml\",\n value: function GetCorrectedHtml(html) {\n var newHtml = html;\n if (window.contestBrokerName) {\n newHtml = newHtml.replace(\"{{brokerName}}\", window.contestBrokerName);\n }\n if (window.contestBrokerJurisidiction) {\n newHtml = newHtml.replace(\"{{brokerJurisidiction}}\", window.contestBrokerJurisidiction);\n }\n return newHtml;\n }\n }, {\n key: \"SubmitLiveAccount\",\n value: function SubmitLiveAccount() {\n var myThis = this;\n var accountNumber = $('#link-new-live-account-modal-payload input[name=\"new-account-login\"]').val();\n if (!accountNumber) {\n $(\"#new-account-login-validation-message\").addClass(\"has-error\");\n $(\"#new-account-login-validation-message span.validation-message\").html(window.contestStrings['PleaseEnterYourAccountNumber']);\n return;\n }\n if (!myThis.phoneInput || !myThis.phoneInput.isValidNumber()) {\n $(\".phone-number-input-box\").addClass('has-error');\n $(\".phone-number-input-box .validation-message\").html(window.contestStrings['TheMobileNumberYouEnteredIsInvalid']);\n return;\n }\n var number = myThis.phoneInput.getNumber();\n var id = myThis.contestId;\n myThis.NewAccountLoginLoading(true);\n $.ajax({\n url: window.submitNewLiveAccountUrl,\n type: 'POST',\n data: {\n accountNumber: accountNumber,\n id: id,\n brokerId: window.contestSponsorBrokerId,\n phoneNumber: number\n },\n cache: false,\n async: true,\n success: function success(res) {\n if (res.status == \"ok\") {\n myThis.OpenNewAccountSuccessDialog();\n } else if (res.status == \"pending\") {\n myThis.OpenNewAccountPendingDialog();\n } else if (res.status == \"invalid\") {\n $(\"#new-account-login-validation-message\").addClass(\"has-error\");\n $(\"#new-account-login-validation-message span.validation-message\").html(myThis.GetCorrectedHtml(res.message));\n } else if (res.status == \"existing\") {\n $(\"#new-account-login-validation-message\").addClass(\"has-error\");\n $(\"#new-account-login-validation-message span.validation-message\").html(myThis.GetCorrectedHtml(res.message));\n } else {\n myThis.OpenNewAccountFailDialog();\n }\n },\n error: function error() {\n myThis.OpenNewAccountFailDialog();\n },\n complete: function complete() {\n myThis.NewAccountLoginLoading(false);\n }\n });\n }\n }, {\n key: \"OpenNewAccountSuccessDialog\",\n value: function OpenNewAccountSuccessDialog() {\n $(\"#link-new-live-account-modal-payload\").html(this.GetCorrectedHtml(window.linkLiveAccountModalPayload['live-account-found']));\n $(\"#link-new-live-account-dialog\").modal('show');\n }\n }, {\n key: \"OpenNewAccountPendingDialog\",\n value: function OpenNewAccountPendingDialog() {\n $(\"#link-new-live-account-modal-payload\").html(this.GetCorrectedHtml(window.linkLiveAccountModalPayload['live-account-pending']));\n $(\"#link-new-live-account-dialog\").modal('show');\n }\n }, {\n key: \"OpenNewAccountFailDialog\",\n value: function OpenNewAccountFailDialog() {\n $(\"#link-new-live-account-modal-payload\").html(this.GetCorrectedHtml(window.linkLiveAccountModalPayload['live-account-not-found']));\n $(\"#link-new-live-account-dialog\").modal('show');\n }\n }, {\n key: \"NewAccountLoginLoading\",\n value: function NewAccountLoginLoading(load) {\n if (load) {\n $(\"#link-new-live-account-modal-payload [data-trigger=loading]\").addClass(\"loading\");\n } else {\n $(\"#link-new-live-account-modal-payload [data-trigger=loading]\").removeClass(\"loading\");\n }\n }\n }]);\n return AISContest;\n}();\nvar _default = AISContest;\nexports[\"default\"] = _default;\n\n},{}],2:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nvar AISHelper = /*#__PURE__*/function () {\n function AISHelper() {\n _classCallCheck(this, AISHelper);\n }\n _createClass(AISHelper, [{\n key: \"ToPercent\",\n value: function ToPercent(val, hasStyle, strWhenZero) {\n if (val == null) return '-';\n val = parseFloat(val);\n if (Number.isNaN(val)) return '';\n if (!!strWhenZero && val == 0) return strWhenZero;\n var localeCode = window.CURRENT_CULTURE;\n if (!localeCode || localeCode.includes(\"ar\") || localeCode.includes(\"fa\")) localeCode = window.DEFAULT_CULTURE;\n if (!localeCode) localeCode = \"en-GB\";\n var str = val.toLocaleString(localeCode, {\n style: 'percent',\n maximumFractionDigits: 2\n });\n if (hasStyle === true) {\n if (val >= 0) return '' + str + '';else return '' + str + '';\n }\n return str;\n }\n }, {\n key: \"ToCurrency\",\n value: function ToCurrency(val, hasStyle) {\n if (val == null) return '-';\n val = parseFloat(val);\n if (Number.isNaN(val)) return '';\n var localeCode = window.CURRENT_CULTURE;\n if (!localeCode || localeCode.includes(\"ar\") || localeCode.includes(\"fa\")) localeCode = window.DEFAULT_CULTURE;\n if (!localeCode) localeCode = \"en-GB\";\n var str = val.toLocaleString(localeCode, {\n style: 'currency',\n maximumFractionDigits: 2,\n currency: 'USD'\n });\n if (hasStyle === true) {\n if (val >= 0) return '' + str + '';else return '' + str + '';\n }\n return str;\n }\n }, {\n key: \"ToDecimal\",\n value: function ToDecimal(val, hasStyle) {\n if (val == null) return '-';\n val = parseFloat(val);\n if (Number.isNaN(val)) return '';\n var localeCode = window.CURRENT_CULTURE;\n if (!localeCode || localeCode.includes(\"ar\") || localeCode.includes(\"fa\")) localeCode = window.DEFAULT_CULTURE;\n if (!localeCode) localeCode = \"en-GB\";\n var str = val.toLocaleString(localeCode, {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n });\n if (hasStyle === true) {\n if (val >= 0) return '' + str + '';else return '' + str + '';\n }\n return str;\n }\n }, {\n key: \"ToDigitsDecimal\",\n value: function ToDigitsDecimal(val, digits) {\n if (val == null) return '-';\n val = parseFloat(val);\n if (Number.isNaN(val)) return '-';\n var localeCode = window.CURRENT_CULTURE;\n if (!localeCode || localeCode.includes(\"ar\") || localeCode.includes(\"fa\")) localeCode = window.DEFAULT_CULTURE;\n if (!localeCode) localeCode = \"en-GB\";\n var str = '';\n if (digits == null || digits == undefined) str = val.toLocaleString(localeCode);else str = val.toLocaleString(localeCode, {\n minimumFractionDigits: digits,\n maximumFractionDigits: digits\n });\n return str;\n }\n }, {\n key: \"ToIntNumber\",\n value: function ToIntNumber(val, hasStyle) {\n if (val == null) return '-';\n val = parseFloat(val);\n if (Number.isNaN(val)) return '';\n var localeCode = window.CURRENT_CULTURE;\n if (!localeCode || localeCode.includes(\"ar\") || localeCode.includes(\"fa\")) localeCode = window.DEFAULT_CULTURE;\n if (!localeCode) localeCode = \"en-GB\";\n var str = val.toLocaleString(localeCode, {\n maximumFractionDigits: 0\n });\n if (hasStyle === true) {\n if (val >= 0) return '' + str + '';else return '' + str + '';\n }\n return str;\n }\n }, {\n key: \"ToTimeSpan\",\n value: function ToTimeSpan(val) {\n var res = '';\n if (val.days > 0) res += val.days + 'd';\n if (val.hours > 0) res += ' ' + val.hours + 'h';\n if (val.minutes > 0) res += ' ' + val.minutes + 'm';\n return res;\n }\n }, {\n key: \"GetDuraction\",\n value: function GetDuraction(t1, t2) {\n t1 = new Date(t1);\n t2 = new Date(t2);\n var res = '';\n var span = (t2 - t1) / 1000;\n if (span > 24 * 3600) {\n res += parseInt(span / (24 * 3600)) + \"d\";\n span = span % (24 * 3600);\n }\n if (span > 3600) {\n res += ' ' + parseInt(span / 3600) + 'h';\n span = span % 3600;\n }\n if (span > 60) {\n res += ' ' + parseInt(span / 60) + 'm';\n span = span % 60;\n }\n if (res == '') res = parseInt(span) + 's';\n return res;\n }\n }, {\n key: \"ToShortDate\",\n value: function ToShortDate(val, type, timezone) {\n var date = new Date(val);\n var yearType = 'numeric';\n if (date.getFullYear() == new Date().getFullYear()) yearType = undefined;\n var localeCode = window.CURRENT_CULTURE;\n if (!localeCode || localeCode.includes(\"ar\") || localeCode.includes(\"fa\")) localeCode = window.DEFAULT_CULTURE;\n if (!localeCode) localeCode = \"en-GB\";\n if (!type) type = \"short\";\n return date.toLocaleDateString(localeCode, {\n weekday: undefined,\n year: yearType,\n month: type,\n day: 'numeric',\n timeZone: timezone\n });\n }\n }, {\n key: \"ToShortDateTime\",\n value: function ToShortDateTime(val, type, timezone) {\n var date = new Date(val);\n var yearType = 'numeric';\n if (date.getFullYear() == new Date().getFullYear()) yearType = undefined;\n var localeCode = window.CURRENT_CULTURE;\n if (!localeCode || localeCode.includes(\"ar\") || localeCode.includes(\"fa\")) localeCode = window.DEFAULT_CULTURE;\n if (!localeCode) localeCode = \"en-GB\";\n if (!type) type = \"short\";\n return date.toLocaleDateString(localeCode, {\n weekday: undefined,\n year: yearType,\n month: type,\n day: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n timeZone: timezone\n });\n }\n }, {\n key: \"ToLongDate\",\n value: function ToLongDate(val, timezone) {\n var date = new Date(val);\n var localeCode = window.CURRENT_CULTURE;\n if (!localeCode || localeCode.includes(\"ar\") || localeCode.includes(\"fa\")) localeCode = window.DEFAULT_CULTURE;\n if (!localeCode) localeCode = \"en-GB\";\n return date.toLocaleString(localeCode, {\n weekday: undefined,\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n timeZone: timezone\n });\n }\n }, {\n key: \"ToStatus\",\n value: function ToStatus(lastUpdated, hasError) {\n var desc = '';\n if (new Date(lastUpdated).getTime() < 0) {\n desc = 'never';\n } else {\n desc = this.GetDuraction(lastUpdated, new Date()) + ' ago';\n }\n var res = '';\n if (hasError == false) {\n res += ' (' + desc + ')';\n } else {\n res += ' (' + desc + ')';\n }\n return res;\n }\n }, {\n key: \"ToChartMoney\",\n value: function ToChartMoney(value) {\n if (Math.abs(value) >= 1000000) {\n return (value / 1000000).toFixed(1) + \"M\";\n } else if (Math.abs(value) >= 1000) {\n return (value / 1000).toFixed(1) + \"K\";\n } else return value.toFixed(2);\n }\n }, {\n key: \"InitializeRankingTableTooltips\",\n value: function InitializeRankingTableTooltips() {\n this.InitializeCountryCodeTooltip();\n $(\"[data-action=drawdown-disqualified-tooltip]\").each(function (i, ele) {\n $(ele).data('toggle', 'tooltip');\n if ($(ele).data('reason') == 'manual') {\n var _window$contestString;\n $(ele).data('title', (_window$contestString = window.contestStrings[\"DisqualifiedDueToAViolation\"]) !== null && _window$contestString !== void 0 ? _window$contestString : \"Disqualified due to a violation\");\n } else {\n var _window$contestString2;\n $(ele).data('title', (_window$contestString2 = window.contestStrings[\"DisqualfiedDueToDrawdown\"]) !== null && _window$contestString2 !== void 0 ? _window$contestString2 : \"Disqualified due to drawdown\");\n }\n $(ele).tooltip('dispose').tooltip({\n boundary: 'window'\n });\n });\n $(\"[data-toggle='drawdown-popover']\").popover();\n }\n }, {\n key: \"InitializeCountryCodeTooltip\",\n value: function InitializeCountryCodeTooltip() {\n var displayNames = new Intl.DisplayNames(window.CURRENT_LANG, {\n type: 'region'\n });\n $(\"[data-action=country]\").each(function (i, ele) {\n try {\n var countryCode = $(ele).data('country');\n $(ele).data('toggle', 'tooltip');\n $(ele).data('title', displayNames.of(countryCode));\n $(ele).tooltip('dispose').tooltip({\n boundary: 'window'\n });\n } catch (err) {}\n });\n }\n }, {\n key: \"GetLocalizedCurrencyName\",\n value: function GetLocalizedCurrencyName(currencyCode) {\n var currencyNames = new Intl.DisplayNames(window.CURRENT_LANG, {\n type: 'currency'\n });\n // Get currency names\n return currencyNames.of(currencyCode);\n }\n }, {\n key: \"GetLocalizedLanguageName\",\n value: function GetLocalizedLanguageName(langCode) {\n var languageNames = new Intl.DisplayNames(window.CURRENT_LANG, {\n type: 'language'\n });\n return languageNames.of(langCode);\n }\n }, {\n key: \"GetLocalizedRegionName\",\n value: function GetLocalizedRegionName(regionCode) {\n var regionNames = new Intl.DisplayNames(window.CURRENT_LANG, {\n type: 'region'\n });\n return regionNames.of(regionCode);\n }\n }]);\n return AISHelper;\n}();\nvar _default = AISHelper;\nexports[\"default\"] = _default;\n\n},{}],3:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nvar AISPerformances = /*#__PURE__*/function () {\n function AISPerformances(aisRoot) {\n _classCallCheck(this, AISPerformances);\n this.aisRoot = aisRoot;\n this.helper = new AISHelper();\n this.performancesQuery = '';\n this.urls = {\n PerformancesLink: '/api/v1/mt/performances'\n };\n }\n _createClass(AISPerformances, [{\n key: \"InitializePage\",\n value: function InitializePage() {\n var myThis = this;\n InitializeScrollTable('#performances-table');\n myThis.performancesQuery = window.location.search;\n myThis.UpdateFormByQuery();\n myThis.PerformanceFormStateUpdated(true);\n myThis.InitialzePerformancesTableSort();\n myThis.LoadMorePerformances();\n $(document).scroll(function () {\n if (myThis.NeedLoadMorePerformances() && $('#performances-table tfoot tr[data-trigger=\"load-more\"]').data(\"loading\") === false) {\n myThis.LoadMorePerformances();\n }\n });\n $(\"#performances-query-form input\").on('change', function () {\n myThis.PerformanceFormStateUpdated();\n });\n }\n }, {\n key: \"Url\",\n value: function Url(key) {\n return this.aisRoot + (this.urls || {})[key];\n }\n }, {\n key: \"LoadMorePerformances\",\n value: function LoadMorePerformances(replace) {\n var myThis = this;\n $('#performances-table tfoot tr[data-trigger=\"load-more\"]').data(\"loading\", true);\n var targetPage = $('#performances-table tfoot tr[data-trigger=\"load-more\"]').data(\"next-page\");\n $(\"#broker-list-loading\").show();\n window.APIHelper.SafeServiceAPICall({\n type: \"GET\",\n cache: false,\n url: myThis.Url('PerformancesLink') + myThis.performancesQuery,\n data: {\n pageNumber: targetPage,\n pageSize: 50\n },\n success: function success(res) {\n var html = '';\n var langSlug = \"\";\n if (window.CURRENT_LANG != 'en') langSlug = \"/\" + window.CURRENT_LANG;\n for (var i = 0; i < res.items.length; i++) {\n var _res$items$i, _res$items$i4;\n html += '';\n html += \"\").concat((_res$items$i = res.items[i]) === null || _res$items$i === void 0 ? void 0 : _res$items$i.clientName, \"\");\n if (!!res.items[i].country) {\n var _res$items$i2, _res$items$i3;\n if (res.items[i].country.toLowerCase() == 'us') res.items[i].country = 'GB';\n html += \"\");\n } else {\n html += \"\";\n }\n html += \"\").concat((_res$items$i4 = res.items[i]) === null || _res$items$i4 === void 0 ? void 0 : _res$items$i4.name, \"\");\n html += \"\".concat(myThis.helper.ToDecimal(res.items[i].equity), \"\");\n html += \"\".concat(myThis.helper.ToDecimal(res.items[i].profit), \"\");\n html += \"\".concat(myThis.helper.ToPercent(res.items[i].profitPercent), \"\");\n if (res.items[i].peakDrawdown < 0) res.items[i].peakDrawdown = 0;\n html += \"\".concat(myThis.helper.ToPercent(res.items[i].peakDrawdown), \"\");\n html += \"\".concat(myThis.helper.ToPercent(res.items[i].monthlyProfitPercent), \"\");\n html += \"\".concat(res.items[i].broker, \"\");\n html += \"\";\n }\n if (replace === true) {\n $(\"#performances-table tbody\").html(html);\n } else {\n $(\"#performances-table tbody\").append(html);\n }\n myThis.helper.InitializeCountryCodeTooltip();\n if (res.hasNext == true) {\n $('#performances-table tfoot tr[data-trigger=\"load-more\"]').data(\"next-page\", res.currentPage + 1);\n } else {\n $('#performances-table tfoot tr[data-trigger=\"load-more\"]').remove();\n }\n },\n complete: function complete() {\n $(\"#broker-list-loading\").hide();\n $('#performances-table tfoot tr[data-trigger=\"load-more\"]').data(\"loading\", false);\n }\n });\n }\n }, {\n key: \"PerformanceFormStateUpdated\",\n value: function PerformanceFormStateUpdated(silience) {\n var myThis = this;\n var searchForm = $(\"#performances-query-form\");\n var filterForm = $(\"#performances-filter-form\");\n var data = searchForm.serializeArray().concat(filterForm.serializeArray());\n var query = '?';\n $.each(data, function (i, v) {\n if (query.includes(v.name + \"=\")) {\n var splitOne = query.lastIndexOf(v.name + \"=\");\n var splitTwo = query.substring(splitOne).indexOf(\"&\") + 1;\n splitTwo = splitTwo === 0 ? string.length : splitTwo;\n var currentEntry = query.substring(splitOne, splitTwo);\n var newEntry = currentEntry + \",\" + v.value;\n query = query.replace(currentEntry, newEntry);\n } else if (v.value != '') {\n if (query !== \"?\") {\n query += \"&\";\n }\n query += v.name + \"=\" + v.value;\n }\n });\n myThis.performancesQuery = query;\n if (!silience) window.history.pushState(\"\", \"\", myThis.performancesQuery);\n myThis.ReloadPerformancesTable();\n }\n }, {\n key: \"UpdateFormByQuery\",\n value: function UpdateFormByQuery() {\n var params = new URLSearchParams(window.location.search);\n var _iterator = _createForOfIteratorHelper(params),\n _step;\n try {\n var _loop = function _loop() {\n var param = _step.value;\n $(\"#performances-query-form [name=\\\"\".concat(param[0].toLowerCase(), \"\\\"]\")).val(param[1]);\n $(\"#performances-filter-form [name=\\\"\".concat(param[0].toLowerCase(), \"\\\"]\")).val(param[1]);\n if (param[0].toLowerCase() == \"broker\") {\n setTimeout(function () {\n $(\"#performances-filter-form [name=\\\"\".concat(param[0].toLowerCase(), \"\\\"]\")).selectpicker('val', param[1]);\n }, 2000);\n }\n };\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n _loop();\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }, {\n key: \"ReloadPerformancesTable\",\n value: function ReloadPerformancesTable() {\n $('#performances-table tfoot').html('');\n this.LoadMorePerformances(true);\n }\n }, {\n key: \"NeedLoadMorePerformances\",\n value: function NeedLoadMorePerformances() {\n var $elem = $('#performances-table tfoot tr[data-trigger=\"load-more\"]');\n if ($elem.length == 0) return false;\n var elementPos = $elem.offset().top;\n var viewportTop = $(window).scrollTop();\n var viewportBottom = viewportTop + $(window).height();\n var height = $(window).height();\n return viewportTop < elementPos && elementPos < viewportBottom + height;\n }\n }, {\n key: \"ResetPerformancesFilter\",\n value: function ResetPerformancesFilter() {\n $.each($(\"#performances-filter-form [name]\"), function (i, elem) {\n if ($(elem).data('default') !== undefined) {\n if ($(elem).hasClass(\"selectpicker\")) {\n $(elem).selectpicker('val', $(elem).data('default'));\n } else {\n $(elem).val($(elem).data('default'));\n }\n }\n });\n this.PerformanceFormStateUpdated();\n }\n }, {\n key: \"OnPerformancePageTradingPlatformUpdated\",\n value: function OnPerformancePageTradingPlatformUpdated() {\n var tradingPlatform = $(\"#trading-platform-type\").val();\n if (window.brokerServers == undefined) return;\n var brokers;\n if (tradingPlatform == 'MT4' || tradingPlatform == 'MT5') brokers = window.brokerServers.filter(function (x) {\n return x.platformType == tradingPlatform;\n });else brokers = window.brokerServers;\n var uniqueBrokers = _toConsumableArray(new Set(brokers.map(function (item) {\n return item.broker;\n }))).sort();\n var html = '';\n for (var i = 0; i < uniqueBrokers.length; i++) {\n html += '';\n }\n $(\"#filter-broker\").html(html);\n $(\"#filter-broker\").selectpicker('refresh');\n }\n }, {\n key: \"InitialzePerformancesTableSort\",\n value: function InitialzePerformancesTableSort() {\n var myThis = this;\n var sortParam = $(\"#performances-query-form [name=sortparam]\").val().toLowerCase();\n var sortOrder = $(\"#performances-query-form [name=sortorder]\").val().toLowerCase();\n if (!sortParam) sortParam = 'profit-percent';\n if (!sortOrder) sortOrder = 'desc';\n $(\"#performances-table th.sort\").removeClass('desc');\n $(\"#performances-table th.sort\").removeClass('asce');\n $(\"#performances-table th.sort[data-sort-param=\\\"\".concat(sortParam, \"\\\"]\")).addClass(sortOrder);\n var thSorts = document.querySelectorAll('th.sort');\n for (var i = 0; i < thSorts.length; i++) {\n thSorts[i].addEventListener('click', function (e) {\n myThis.OnPerformancesTableSortUpdated(e);\n myThis.PerformanceFormStateUpdated();\n }, false);\n }\n }\n }, {\n key: \"OnPerformancesTableSortUpdated\",\n value: function OnPerformancesTableSortUpdated(e) {\n if (!e.target.matches(\"th.sort\")) return;\n var sortParam = $(e.target).data('sort-param');\n var sortOrder = 'desc';\n if ($(e.target).hasClass('desc')) sortOrder = 'asce';else sortOrder = 'desc';\n $(\"#performances-table th.sort\").removeClass('asce');\n $(\"#performances-table th.sort\").removeClass('desc');\n $(e.target).addClass(sortOrder);\n $(\"#performances-query-form [name=sortparam]\").val(sortParam);\n $(\"#performances-query-form [name=sortorder]\").val(sortOrder);\n }\n }]);\n return AISPerformances;\n}();\nvar _default = AISPerformances;\nexports[\"default\"] = _default;\n\n},{}],4:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nvar AISPortfolio = /*#__PURE__*/function () {\n function AISPortfolio(aisRoot, aisDataRoot) {\n _classCallCheck(this, AISPortfolio);\n var urlParam = new URLSearchParams(location.search);\n if (urlParam.get('scid')) this.cbfProfileId = urlParam.get('scid');\n if (urlParam.get('spid')) this.portfolioId = urlParam.get('spid');else this.portfolioId = 0;\n this.aisRoot = aisRoot;\n this.aisDataRoot = aisDataRoot;\n this.helper = new AISHelper();\n this.portfolioInfo = {};\n this.currentRiskFactor = null;\n this.currencyRates = {};\n this.totalsCurrency = null;\n this.urls = {\n ProfileStatisticsLink: '/api/v1/mt/statistics',\n ProfilePeriodStatisticsLink: '/api/v1/mt/statistics/historical-stats',\n ProfileGrowthChartLink: '/api/v1/mt/statistics/chart/profile-growth',\n ProfileStatsHubLink: '/profile-stats-hub',\n AddStatsHubLink: '/add-stats-hub',\n PortfoliosLink: '/api/v1/mt/cbf-profile/portfolios'\n };\n }\n _createClass(AISPortfolio, [{\n key: \"InitializeEventTriggers\",\n value: function InitializeEventTriggers() {\n var myThis = this;\n var profileConnection = new signalR.HubConnectionBuilder().withUrl(myThis.SignalRUrl('ProfileStatsHubLink')).configureLogging(signalR.LogLevel.Warning).withAutomaticReconnect().build();\n profileConnection.start();\n profileConnection.on(\"UpdateCbfProfileStats\", function (cbfId, state) {\n if (state == \"updated\" && cbfId == myThis.cbfProfileId) {\n console.log('Refresh cbf profile page');\n myThis.InitializePage();\n }\n });\n var addMt4Connection = new signalR.HubConnectionBuilder().withUrl(myThis.SignalRUrl('AddStatsHubLink')).configureLogging(signalR.LogLevel.Warning).withAutomaticReconnect().build();\n addMt4Connection.start();\n addMt4Connection.on(\"AddMT4Account\", function (accountId, state, message) {\n if (state == \"finish\") {\n myThis.InitializePage();\n } else if (state == \"error\") {\n myThis.InitializePage();\n }\n });\n addMt4Connection.on(\"VerifyMT4Account\", function (accountId, state, message) {\n if (state == \"finish\") {\n toastr.success(window.portfolioStrings['YourAccountHasBeenSuccessfullyVerified']);\n OpenEditMt4AccontDialog(accountId);\n } else if (state == \"error\") {\n $(\"#verificaton-process[data-id=\" + accountId + \"]\").html(window.portfolioStrings['FailedToVerify']);\n $(\"#verificaton-process[data-id=\" + accountId + \"]\").removeClass(\"processing\");\n $(\"#verificaton-process[data-id=\" + accountId + \"]\").addClass(\"error\");\n } else {\n $(\"#verificaton-process[data-id=\" + accountId + \"]\").removeClass(\"error\");\n $(\"#verificaton-process[data-id=\" + accountId + \"]\").removeClass(\"finish\");\n $(\"#verificaton-process[data-id=\" + accountId + \"]\").addClass(\"processing\");\n $(\"#verificaton-process[data-id=\" + accountId + \"]\").html(window.portfolioStrings['ConnectingToAccount']);\n }\n });\n $(document).on('input', \"#risk-factor\", function () {\n myThis.ApplyRiskFactor($(this).val());\n });\n $(document).on('input', \"#PortfolioRiskFactor\", function () {\n myThis.ApplyRiskFactor($(this).val());\n });\n $(\"#PortfolioDefaultCurreny\").infiniteselect({\n types: [{\n option: 'all',\n text: window.portfolioStrings['All']\n }, {\n option: 'forex',\n text: window.portfolioStrings['Forex']\n }, {\n option: 'crypto',\n text: window.portfolioStrings['Crypto']\n }],\n url: '/api/widgets/currencies',\n placeholder: 'Select a default totals currency',\n showDescription: true,\n culture: window.CURRENT_LANG,\n btnClass: 'browser-default frn-override'\n });\n document.getElementById('PortfolioDefaultCurreny').addEventListener('change', function () {\n var targetCurrency = $(\"#PortfolioDefaultCurreny\").infiniteselect('val');\n myThis.totalsCurrency = targetCurrency;\n myThis.UpdateAllValuesByRiskFactorAndCurrency(myThis);\n });\n }\n }, {\n key: \"Url\",\n value: function Url(key) {\n return this.aisRoot + (this.urls || {})[key];\n }\n }, {\n key: \"SignalRUrl\",\n value: function SignalRUrl(key) {\n return this.aisDataRoot + (this.urls || {})[key];\n }\n }, {\n key: \"InitializePage\",\n value: function InitializePage() {\n var myThis = this;\n myThis.InitProfilePortfolio();\n myThis.InitProfileGrowthChartSection();\n }\n }, {\n key: \"InitPorfilePeriodsStatsSection\",\n value: function InitPorfilePeriodsStatsSection() {\n var type = $(\"#periods-stats-account-type-select\").val();\n this.InitPorfilePeriods(type);\n }\n }, {\n key: \"InitProfileGrowthChartSection\",\n value: function InitProfileGrowthChartSection() {\n var type = $(\"#profit-chart-account-type-select\").val();\n this.DrawProfileGrowthChart(type);\n }\n }, {\n key: \"DrawProfileGrowthChart\",\n value: function DrawProfileGrowthChart(type) {\n var myThis = this;\n window.APIHelper.SafeServiceAPICall({\n url: myThis.Url('ProfileGrowthChartLink') + '?id=' + myThis.cbfProfileId + '&portfolioId=' + myThis.portfolioId,\n type: \"GET\",\n data: {\n type: type\n },\n success: function success(res) {\n var options = {\n chart: {\n type: 'line',\n height: 400\n },\n series: res.series,\n xaxis: {\n type: 'datetime'\n },\n stroke: {\n width: 1,\n curve: 'smooth'\n },\n markers: {\n size: 0\n },\n yaxis: {\n forceNiceScale: false,\n labels: {\n formatter: function formatter(value) {\n return myThis.helper.ToPercent(value);\n }\n }\n }\n };\n if (!myThis.growthChart) {\n myThis.growthChart = new ApexCharts(document.querySelector(\"#cbf-profile-growth-chart\"), options);\n myThis.growthChart.render();\n } else {\n myThis.growthChart.updateOptions(options);\n }\n }\n });\n }\n }, {\n key: \"InitProfilePortfolio\",\n value: function InitProfilePortfolio() {\n var myThis = this;\n window.APIHelper.SafeServiceAPICall({\n url: myThis.Url('ProfileStatisticsLink') + '?id=' + myThis.cbfProfileId + '&portfolioId=' + myThis.portfolioId,\n type: \"GET\",\n success: function success(res, textStatus, xhr) {\n if (xhr.status == 204) {\n $(\"#cbf-portfolio-account-stats-summary\").html(window.portfolioStrings['NoAccounts']);\n $(\"#cbf-portfolio-period-stats\").html(window.portfolioStrings['NoData']);\n } else {\n myThis.portfolioInfo = res;\n myThis.PopulateBasicInfo(res);\n myThis.PopulateAccountStatsSummary(res, 'real');\n myThis.PopulateAccountStatsSummary(res, 'demo');\n myThis.InitPorfilePeriodsStatsSection();\n }\n },\n error: function error(e) {\n $(\".portfolio-pane\").html(\"\".concat(window.portfolioStrings['OopsThatPageCanTBeFound'], \"\"));\n }\n });\n }\n }, {\n key: \"InitPorfilePeriods\",\n value: function InitPorfilePeriods(type) {\n var myThis = this;\n window.APIHelper.SafeServiceAPICall({\n url: myThis.Url('ProfilePeriodStatisticsLink') + '?id=' + myThis.cbfProfileId + '&portfolioId=' + myThis.portfolioId,\n type: \"GET\",\n data: {\n type: type\n },\n success: function success(res, textStatus, xhr) {\n if (xhr.status == 204) {\n $(\"#cbf-portfolio-period-stats\").html('');\n $(\"#cbf-portfolio-period-stats-section\").css('display', 'none');\n } else {\n myThis.PopulatePeriodsStatsSummary(res);\n myThis.UpdateAllValuesByRiskFactorAndCurrency(myThis);\n }\n },\n error: function error(e) {\n $(\".portfolio-pane\").html(\"\".concat(window.portfolioStrings['OopsThatPageCanTBeFound'], \"\"));\n }\n });\n }\n }, {\n key: \"PopulateBasicInfo\",\n value: function PopulateBasicInfo(res) {\n var myThis = this;\n if (this.currentRiskFactor == null) {\n this.currentRiskFactor = res.riskFactor;\n if (!this.currentRiskFactor) this.currentRiskFactor = 1;\n $(\"#risk-factor\").val(this.currentRiskFactor);\n } else {\n this.currentRiskFactor = $(\"#risk-factor\").val();\n }\n if (!res.isPortfolio && !res.portfolioName) {\n res.portfolioName = res.publicName;\n }\n $(\"#trading-accounts-page-title\").html(res.portfolioName);\n $(\"head title\").html(res.portfolioName);\n if (res !== null && res !== void 0 && res.owner) {\n $(\"#portfolio-setting\").css(\"display\", \"flex\");\n if ((res === null || res === void 0 ? void 0 : res.isPublic) === false) $(\"#portfolio-private\").css(\"visibility\", \"visible\");else $(\"#portfolio-private\").css(\"visibility\", \"hidden\");\n $(\"#add-trading-account-link\").css(\"display\", \"block\");\n } else {\n $(\"#portfolio-setting\").css(\"display\", \"none\");\n }\n // if (res.isPortfolio) {\n var langSlug = \"\";\n if (window.CURRENT_LANG != 'en') langSlug += \"/\" + window.CURRENT_LANG;\n var breadcrumb = \"\").concat(window.portfolioStrings['Home'], \"\");\n breadcrumb += \"\").concat(window.portfolioStrings['Performances'], \"\");\n if (res.owner) {\n breadcrumb += \"\").concat(window.portfolioStrings['MyPerformances'], \"\");\n } else {\n breadcrumb += \"\").concat(res.publicName, \"\");\n }\n if (res.portfolioName != res.publicName) breadcrumb += \"\".concat(res.portfolioName, \"\");\n $(\"#site-breadcrumb\").html(breadcrumb);\n //} else {\n // $(\"#site-breadcrumb\").html('');\n //}\n\n if (myThis.totalsCurrency == null) {\n myThis.totalsCurrency = res.defaultTotalCurrency;\n if (!myThis.totalsCurrency) myThis.totalsCurrency = \"USD\";\n if ($(\".infinite-select-wrap #periods-currency-select-list\").length > 0) {\n $(\"#periods-currency-select-list\").infiniteselect('val', myThis.totalsCurrency);\n } else {\n $(\"#periods-currency-select-list\").infiniteselect({\n types: [{\n option: 'all',\n text: window.portfolioStrings['All']\n }, {\n option: 'forex',\n text: window.portfolioStrings['Forex']\n }, {\n option: 'crypto',\n text: window.portfolioStrings['Crypto']\n }],\n url: '/api/widgets/currencies',\n placeholder: 'Select a currency',\n \"default\": res.defaultTotalCurrency,\n showDescription: true,\n culture: window.CURRENT_LANG,\n btnClass: 'browser-default frn-override'\n });\n document.getElementById('periods-currency-select-list').addEventListener('change', function () {\n var targetCurrency = $(\"#periods-currency-select-list\").infiniteselect('val');\n myThis.totalsCurrency = targetCurrency;\n myThis.UpdateAllValuesByRiskFactorAndCurrency(myThis);\n });\n }\n }\n }\n }, {\n key: \"PopulateAccountStatsSummary\",\n value: function PopulateAccountStatsSummary(data, type) {\n var myThis = this;\n var table = '';\n table += '';\n if (data.owner) {\n table += '';\n }\n table += \"\");\n table += \"\");\n if (data.owner) {\n table += \"\");\n }\n if (data.owner) {\n table += \"\");\n }\n table += \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + \"\";\n if (data.showTotal) {\n var totalSummary = data.realTotalSummary;\n if (type == \"demo\") totalSummary = data.demoTotalSummary;\n if (!!totalSummary && !!totalSummary.accountCurrency) {\n table += '';\n if (data.owner) {\n table += \"\";\n }\n table += \"\") + '';\n if (data.owner) {\n table += '' + '';\n }\n table += '' + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + '' + '' + '' + '';\n }\n }\n var accountStatsSummaries = [];\n if (type == 'real') accountStatsSummaries = data.realAccountStatSummaries;else accountStatsSummaries = data.demoAccountStatSummaries;\n var langSlug = '';\n if (window.CURRENT_LANG != 'en') langSlug = '/' + window.CURRENT_LANG;\n var _iterator = _createForOfIteratorHelper(accountStatsSummaries),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var element = _step.value;\n table += '';\n if (data.owner) {\n table += '';\n }\n table += \"\");\n table += '';\n if (data.owner) {\n table += '';\n }\n if (data.owner) {\n table += '';\n }\n table += '' + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + '';\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n table += '
\".concat(window.portfolioStrings['Name'], \"\".concat(window.portfolioStrings['Portfolios'], \"\".concat(window.portfolioStrings['AccountNumber'], \"\".concat(window.portfolioStrings['Private'], \"\".concat(window.portfolioStrings['Connected'], \"\".concat(window.portfolioStrings['Equity'], \"\".concat(window.portfolioStrings['OpenProfit'], \"\".concat(window.portfolioStrings['Balance'], \"\".concat(window.portfolioStrings['Profit'], \"\".concat(window.portfolioStrings['ProfitPercent'], \"\".concat(window.portfolioStrings['PeakDrawdown'], \"\".concat(window.portfolioStrings['MonthlyProfitPercent'], \"\".concat(window.portfolioStrings['Currency'], \"\".concat(window.portfolioStrings['BrokerString'], \"\".concat(window.portfolioStrings['TradingPlatform'], \"
\".concat(window.portfolioStrings['Total'], \"' + '\").concat(myThis.helper.ToDecimal(totalSummary.equity), \"\").concat(myThis.helper.ToDecimal(totalSummary.openProfit), \"\").concat(myThis.helper.ToDecimal(totalSummary.balance), \"\").concat(myThis.helper.ToDecimal(totalSummary.profit), \"\").concat(myThis.helper.ToPercent(totalSummary.profitPercent), \"\").concat(myThis.helper.ToPercent(totalSummary.drawDown, false, '--'), \"\").concat(myThis.helper.ToPercent(totalSummary.monthlyProfit), \"' + totalSummary.accountCurrency + '' + '' + '
' + '' + '\").concat(element === null || element === void 0 ? void 0 : element.name, \"
';\n if (!!(element !== null && element !== void 0 && element.portfolios) && Array.isArray(element === null || element === void 0 ? void 0 : element.portfolios)) {\n element.portfolios.forEach(function (x) {\n return table += \"\").concat(x.portfolioName, \"\");\n });\n }\n table += '
' + element.accountNumber + '' + (element !== null && element !== void 0 && element.isPublic ? '' : '') + '' + myThis.helper.ToStatus(element.lastUpdated, element.hasError) + '\").concat(myThis.helper.ToDecimal(element.equity), \"\").concat(myThis.helper.ToDecimal(element.openProfit), \"\").concat(myThis.helper.ToDecimal(element.balance), \"\").concat(myThis.helper.ToDecimal(element.profit), \"\").concat(myThis.helper.ToPercent(element.profitPercent), \"\").concat(myThis.helper.ToPercent(element.drawDown), \"\").concat(myThis.helper.ToPercent(element.monthlyProfit), \"\".concat(element.accountCurrency, \"\".concat(element.broker, \"\".concat(element.platformType, \"
';\n $(\"#cbf-portfolio-account-stats-summary-\" + type).html(table);\n InitializeScrollTable(\"#cbf-portfolio-account-stats-summary-\" + type + \" table\");\n $('[data-toggle=\"tooltip\"]').tooltip('dispose').tooltip({\n boundary: 'window'\n });\n }\n }, {\n key: \"PopulatePeriodsStatsSummary\",\n value: function PopulatePeriodsStatsSummary(data) {\n var _stat$today, _stat$today2, _stat$today$gainTWR, _stat$today3, _stat$today4, _stat$today$gainTWR2, _stat$today5, _stat$today6, _stat$today7, _stat$today8, _stat$today9, _stat$today10, _stat$today11, _stat$today12, _stat$thisWeek, _stat$thisWeek2, _stat$thisWeek$gainTW, _stat$thisWeek3, _stat$thisWeek4, _stat$thisWeek$gainTW2, _stat$thisWeek5, _stat$thisWeek6, _stat$thisWeek7, _stat$thisWeek8, _stat$thisWeek9, _stat$thisWeek10, _stat$thisWeek11, _stat$thisWeek12, _stat$thisMonth, _stat$thisMonth2, _stat$thisMonth$gainT, _stat$thisMonth3, _stat$thisMonth4, _stat$thisMonth$gainT2, _stat$thisMonth5, _stat$thisMonth6, _stat$thisMonth7, _stat$thisMonth8, _stat$thisMonth9, _stat$thisMonth10, _stat$thisMonth11, _stat$thisMonth12, _stat$thisYear, _stat$thisYear2, _stat$thisYear$gainTW, _stat$thisYear3, _stat$thisYear4, _stat$thisYear$gainTW2, _stat$thisYear5, _stat$thisYear6, _stat$thisYear7, _stat$thisYear8, _stat$thisYear9, _stat$thisYear10, _stat$thisYear11, _stat$thisYear12;\n var myThis = this;\n var stat = data;\n var table = '';\n table += '' + '' + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + '';\n table += '' + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + \"\";\n table += '' + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + '';\n table += '' + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + '';\n table += '' + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + '';\n for (var i = (stat === null || stat === void 0 ? void 0 : (_stat$yearlyStats = stat.yearlyStats) === null || _stat$yearlyStats === void 0 ? void 0 : _stat$yearlyStats.length) - 1; i >= 0; i--) {\n var _stat$yearlyStats;\n if (new Date(stat === null || stat === void 0 ? void 0 : stat.yearlyStats[i].date).getUTCFullYear() != new Date().getUTCFullYear()) {\n table += '' + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + \"\") + '';\n }\n }\n table += '
\".concat(window.portfolioStrings['ProfitPercent'], \"\").concat(window.portfolioStrings['ProfitPercent'], \", \".concat(window.portfolioStrings['Profit'], \"\".concat(window.portfolioStrings['WinPercent'], \"\".concat(window.portfolioStrings['Trades'], \"\".concat(window.portfolioStrings['Volume'], \"\".concat(window.portfolioStrings['Currency'], \"
\".concat(window.portfolioStrings['Today'], \"\").concat(myThis.helper.ToPercent((_stat$today2 = stat.today) === null || _stat$today2 === void 0 ? void 0 : _stat$today2.gain, true), \"\").concat(myThis.helper.ToPercent((_stat$today$gainTWR2 = (_stat$today5 = stat.today) === null || _stat$today5 === void 0 ? void 0 : _stat$today5.gainTWR) !== null && _stat$today$gainTWR2 !== void 0 ? _stat$today$gainTWR2 : (_stat$today6 = stat.today) === null || _stat$today6 === void 0 ? void 0 : _stat$today6.gain, true), \"\").concat(myThis.helper.ToDecimal((_stat$today8 = stat.today) === null || _stat$today8 === void 0 ? void 0 : _stat$today8.profit, true), \"\".concat(myThis.helper.ToPercent((_stat$today9 = stat.today) === null || _stat$today9 === void 0 ? void 0 : _stat$today9.winPercentage), \"\".concat(myThis.helper.ToIntNumber((_stat$today10 = stat.today) === null || _stat$today10 === void 0 ? void 0 : _stat$today10.trades), \"\").concat(myThis.helper.ToDecimal((_stat$today12 = stat.today) === null || _stat$today12 === void 0 ? void 0 : _stat$today12.lots), \"\".concat(stat.currency, \"
\".concat(window.portfolioStrings['ThisWeek'], \"\").concat(myThis.helper.ToPercent((_stat$thisWeek2 = stat.thisWeek) === null || _stat$thisWeek2 === void 0 ? void 0 : _stat$thisWeek2.gain, true), \"\").concat(myThis.helper.ToPercent((_stat$thisWeek$gainTW2 = (_stat$thisWeek5 = stat.thisWeek) === null || _stat$thisWeek5 === void 0 ? void 0 : _stat$thisWeek5.gainTWR) !== null && _stat$thisWeek$gainTW2 !== void 0 ? _stat$thisWeek$gainTW2 : (_stat$thisWeek6 = stat.thisWeek) === null || _stat$thisWeek6 === void 0 ? void 0 : _stat$thisWeek6.gain, true), \"\").concat(myThis.helper.ToDecimal((_stat$thisWeek8 = stat.thisWeek) === null || _stat$thisWeek8 === void 0 ? void 0 : _stat$thisWeek8.profit, true), \"\".concat(myThis.helper.ToPercent((_stat$thisWeek9 = stat.thisWeek) === null || _stat$thisWeek9 === void 0 ? void 0 : _stat$thisWeek9.winPercentage), \"\".concat(myThis.helper.ToIntNumber((_stat$thisWeek10 = stat.thisWeek) === null || _stat$thisWeek10 === void 0 ? void 0 : _stat$thisWeek10.trades), \"\").concat(myThis.helper.ToDecimal((_stat$thisWeek12 = stat.thisWeek) === null || _stat$thisWeek12 === void 0 ? void 0 : _stat$thisWeek12.lots), \"\".concat(stat.currency, \"
\".concat(window.portfolioStrings['ThisMonth'], \"\").concat(myThis.helper.ToPercent((_stat$thisMonth2 = stat.thisMonth) === null || _stat$thisMonth2 === void 0 ? void 0 : _stat$thisMonth2.gain, true), \"\").concat(myThis.helper.ToPercent((_stat$thisMonth$gainT2 = (_stat$thisMonth5 = stat.thisMonth) === null || _stat$thisMonth5 === void 0 ? void 0 : _stat$thisMonth5.gainTWR) !== null && _stat$thisMonth$gainT2 !== void 0 ? _stat$thisMonth$gainT2 : (_stat$thisMonth6 = stat.thisMonth) === null || _stat$thisMonth6 === void 0 ? void 0 : _stat$thisMonth6.gain, true), \"\").concat(myThis.helper.ToDecimal((_stat$thisMonth8 = stat.thisMonth) === null || _stat$thisMonth8 === void 0 ? void 0 : _stat$thisMonth8.profit, true), \"\".concat(myThis.helper.ToPercent(stat === null || stat === void 0 ? void 0 : (_stat$thisMonth9 = stat.thisMonth) === null || _stat$thisMonth9 === void 0 ? void 0 : _stat$thisMonth9.winPercentage), \"\".concat(myThis.helper.ToIntNumber(stat === null || stat === void 0 ? void 0 : (_stat$thisMonth10 = stat.thisMonth) === null || _stat$thisMonth10 === void 0 ? void 0 : _stat$thisMonth10.trades), \"\").concat(myThis.helper.ToDecimal((_stat$thisMonth12 = stat.thisMonth) === null || _stat$thisMonth12 === void 0 ? void 0 : _stat$thisMonth12.lots), \"\".concat(stat.currency, \"
\".concat(window.portfolioStrings['ThisYear'], \"\").concat(myThis.helper.ToPercent((_stat$thisYear2 = stat.thisYear) === null || _stat$thisYear2 === void 0 ? void 0 : _stat$thisYear2.gain, true), \"\").concat(myThis.helper.ToPercent((_stat$thisYear$gainTW2 = (_stat$thisYear5 = stat.thisYear) === null || _stat$thisYear5 === void 0 ? void 0 : _stat$thisYear5.gainTWR) !== null && _stat$thisYear$gainTW2 !== void 0 ? _stat$thisYear$gainTW2 : (_stat$thisYear6 = stat.thisYear) === null || _stat$thisYear6 === void 0 ? void 0 : _stat$thisYear6.gain, true), \"\").concat(myThis.helper.ToDecimal((_stat$thisYear8 = stat.thisYear) === null || _stat$thisYear8 === void 0 ? void 0 : _stat$thisYear8.profit, true), \"\".concat(myThis.helper.ToPercent((_stat$thisYear9 = stat.thisYear) === null || _stat$thisYear9 === void 0 ? void 0 : _stat$thisYear9.winPercentage), \"\".concat(myThis.helper.ToIntNumber((_stat$thisYear10 = stat.thisYear) === null || _stat$thisYear10 === void 0 ? void 0 : _stat$thisYear10.trades), \"\").concat(myThis.helper.ToDecimal((_stat$thisYear12 = stat.thisYear) === null || _stat$thisYear12 === void 0 ? void 0 : _stat$thisYear12.lots), \"\".concat(stat.currency, \"
\".concat(new Date(stat === null || stat === void 0 ? void 0 : stat.yearlyStats[i].date).getUTCFullYear(), \"\").concat(myThis.helper.ToPercent(stat.yearlyStats[i].gainPercent, true), \"\").concat(myThis.helper.ToPercent(stat.yearlyStats[i].gainPercentTWR, true), \"\").concat(myThis.helper.ToDecimal(stat.yearlyStats[i].profit, true), \"\".concat(myThis.helper.ToPercent((stat === null || stat === void 0 ? void 0 : stat.yearlyStats[i].winTradeCount) / (stat === null || stat === void 0 ? void 0 : stat.yearlyStats[i].tradeCount)), \"\".concat(myThis.helper.ToIntNumber(stat === null || stat === void 0 ? void 0 : stat.yearlyStats[i].tradeCount), \"\").concat(myThis.helper.ToDecimal(stat.yearlyStats[i].lots), \"\".concat(stat.currency, \"
';\n $(\"#cbf-portfolio-period-stats\").html(table);\n $(\"#cbf-portfolio-period-stats-section\").css('display', 'block');\n InitializeScrollTable(\"#cbf-portfolio-period-stats table\");\n }\n }, {\n key: \"OpenPortfolioSettingsDialog\",\n value: function OpenPortfolioSettingsDialog() {\n $(\"#PortfolioName\").val(this.portfolioInfo.portfolioName);\n $(\"#PortfolioRiskFactor\").val(this.portfolioInfo.riskFactor);\n $(\"#PortfolioDefaultCurreny\").infiniteselect('val', this.portfolioInfo.defaultTotalCurrency);\n if (this.portfolioId == 0) {\n $(\"#PortfolioIsPublic\").prop('checked', true);\n $(\"#PortfolioIsPublic\").prop('disabled', true);\n $(\"#edit-portfolio-dialog-delete-button\").hide();\n } else {\n $(\"#PortfolioIsPublic\").prop('checked', this.portfolioInfo.isPublic);\n $(\"#PortfolioIsPublic\").prop('disabled', false);\n $(\"#edit-portfolio-dialog-delete-button\").show();\n }\n $(\"#PortfolioBalance\").prop('checked', this.portfolioInfo.showBalance);\n $(\"#PortfolioTotal\").prop('checked', this.portfolioInfo.showTotal);\n $(\"#edit-portfolio-dialog-add-control\").hide();\n $(\"#edit-portfolio-dialog-update-control\").show();\n $(\"#portfolio-setting-dialog\").modal('show');\n }\n }, {\n key: \"OpenCreatePortfolioDialog\",\n value: function OpenCreatePortfolioDialog() {\n $(\"#PortfolioName\").val('');\n $(\"#PortfolioRiskFactor\").val(1);\n $(\"#PortfolioDefaultCurreny\").infiniteselect('val', '');\n $(\"#PortfolioIsPublic\").prop('checked', false);\n $(\"#PortfolioIsPublic\").prop('disabled', false);\n $(\"#PortfolioBalance\").prop('checked', false);\n $(\"#PortfolioTotal\").prop('checked', false);\n $(\"#edit-portfolio-dialog-update-control\").hide();\n $(\"#edit-portfolio-dialog-add-control\").show();\n $(\"#portfolio-setting-dialog\").modal('show');\n }\n }, {\n key: \"GetDataFromPortfolioSettingForm\",\n value: function GetDataFromPortfolioSettingForm() {\n var data = {};\n data['Id'] = this.portfolioId;\n data['PortfolioName'] = $(\"#PortfolioName\").val();\n data['IsPublic'] = $(\"#PortfolioIsPublic\").prop('checked');\n data['ShowBalance'] = $(\"#PortfolioBalance\").prop('checked');\n data['ShowTotals'] = $(\"#PortfolioTotal\").prop('checked');\n data['RiskFactor'] = $(\"#PortfolioRiskFactor\").val();\n data['DefaultTotalCurrency'] = $(\"#PortfolioDefaultCurreny\").val();\n return data;\n }\n }, {\n key: \"UpdatePortfolio\",\n value: function UpdatePortfolio() {\n var myThis = this;\n var data = myThis.GetDataFromPortfolioSettingForm();\n $(\"#portfolio-setting-dialog-progress\").show();\n $(\"#broker-list-loading\").show();\n myThis.currentRiskFactor = null;\n myThis.totalsCurrency = null;\n window.APIHelper.SafeServiceAPICall({\n url: myThis.Url('PortfoliosLink') + '/' + myThis.portfolioId,\n type: 'PUT',\n data: JSON.stringify(data),\n contentType: 'application/json; charset=utf-8',\n dataType: 'json',\n success: function success(res) {\n myThis.InitializePage();\n toastr.success(\"Your portfolio is successfully updated!\");\n },\n error: function error() {\n toastr.error(\"Failed to save portfolio settings! Please try again later.\");\n },\n complete: function complete() {\n $(\"#portfolio-setting-dialog-progress\").hide();\n $(\"#portfolio-setting-dialog\").modal('hide');\n $(\"#broker-list-loading\").hide();\n }\n });\n }\n }, {\n key: \"CreatePortfolio\",\n value: function CreatePortfolio() {\n var myThis = this;\n var data = myThis.GetDataFromPortfolioSettingForm();\n $(\"#portfolio-setting-dialog-progress\").show();\n $(\"#broker-list-loading\").show();\n window.APIHelper.SafeServiceAPICall({\n url: myThis.Url('PortfoliosLink'),\n type: 'POST',\n data: JSON.stringify(data),\n contentType: 'application/json; charset=utf-8',\n dataType: 'json',\n success: function success() {\n toastr.success(\"Your portfolio is successfully created!\");\n },\n error: function error() {\n toastr.error(\"Failed to create your portfolio! Please try again later.\");\n },\n complete: function complete() {\n $(\"#portfolio-setting-dialog-progress\").hide();\n $(\"#portfolio-setting-dialog\").modal('hide');\n $(\"#broker-list-loading\").hide();\n }\n });\n }\n }, {\n key: \"OpenDeletePortfolioDialog\",\n value: function OpenDeletePortfolioDialog() {\n $(\"#delete-portfolio-confirm-dialog\").modal('show');\n }\n }, {\n key: \"DeletePortfolio\",\n value: function DeletePortfolio() {\n var myThis = this;\n $(\"#broker-list-loading\").show();\n window.APIHelper.SafeServiceAPICall({\n url: myThis.Url('PortfoliosLink') + '/' + myThis.portfolioId,\n type: 'DELETE',\n success: function success() {\n toastr.success(\"Your portfolio is successfully deleted!\");\n if (window.location.pathname.endsWith(\"/\" + myThis.portfolioId)) {\n var newUrl = window.location.pathname.substr(0, window.location.pathname.length - (\"/\" + myThis.portfolioId).length);\n window.history.replaceState({\n path: newUrl\n }, '', newUrl);\n }\n myThis.portfolioId = 0;\n myThis.InitializePage();\n },\n error: function error() {\n toastr.error(\"Failed to delete your portfolio! Please try again later.\");\n },\n complete: function complete() {\n $(\"#broker-list-loading\").hide();\n }\n });\n }\n }, {\n key: \"ApplyRiskFactor\",\n value: function ApplyRiskFactor(riskFactor) {\n var myThis = this;\n riskFactor = parseFloat(riskFactor);\n if (!!riskFactor) {\n myThis.currentRiskFactor = riskFactor;\n myThis.UpdateAllValuesByRiskFactorAndCurrency(myThis);\n }\n }\n }, {\n key: \"UpdateAllValuesByRiskFactorAndCurrency\",\n value: function UpdateAllValuesByRiskFactorAndCurrency(myThis) {\n var currencies = new Set();\n $('[data-currency]').each(function (index, item) {\n if (!!$(item).data('currency')) {\n currencies.add($(item).data('currency'));\n }\n });\n var promises = [];\n $(\"#broker-list-loading\").show();\n currencies.forEach(function (x) {\n if (!myThis.currencyRates[x]) myThis.currencyRates[x] = new Object();\n if (!myThis.currencyRates[x][myThis.totalsCurrency]) {\n var promise = window.CalculatorHelper.GetExchangeRateAsync(x, myThis.totalsCurrency);\n promise.then(function (res) {\n myThis.currencyRates[x][myThis.totalsCurrency] = res.rate;\n });\n promises.push(promise);\n }\n });\n Promise.all(promises).then(function () {\n $(\"#broker-list-loading\").hide();\n $('[data-update=\"risk-factor\"]').each(function (index, item) {\n var newValue;\n if ($(item).data('mul') == \"undefined\") {\n newValue = undefined;\n } else {\n newValue = $(item).data('sum') + $(item).data('mul') * myThis.currentRiskFactor;\n }\n if (!!$(item).data(\"currency\")) {\n newValue = newValue * myThis.currencyRates[$(item).data(\"currency\")][myThis.totalsCurrency];\n }\n var format = $(item).data(\"format\") !== undefined;\n var zeroStr = $(item).data(\"zerostr\");\n if ($(item).data('type') == \"percent\") {\n if (zeroStr) $(item).html(myThis.helper.ToPercent(newValue, format, zeroStr));else $(item).html(myThis.helper.ToPercent(newValue, format));\n } else {\n if (zeroStr) $(item).html(myThis.helper.ToDecimal(newValue, format, zeroStr));else $(item).html(myThis.helper.ToDecimal(newValue, format));\n }\n });\n $('[data-update=\"currency\"]').html(myThis.totalsCurrency);\n });\n }\n }]);\n return AISPortfolio;\n}();\nvar _default = AISPortfolio;\nexports[\"default\"] = _default;\n\n},{}],5:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _AISHelper = _interopRequireDefault(require(\"./AISHelper\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nvar AISStatistics = /*#__PURE__*/function () {\n function AISStatistics(aisRoot, aisDataRoot) {\n _classCallCheck(this, AISStatistics);\n var urlParam = new URLSearchParams(location.search);\n if (urlParam.get('said')) this.aisAccountId = urlParam.get('said');\n this.aisRoot = aisRoot;\n this.aisDataRoot = aisDataRoot;\n this.statistics = {};\n this.equityChartZoomed = false;\n this.urls = {\n StatisticsLink: '/api/v1/mt/statistics',\n StatsHub: '/stats-hub',\n AddStatsHubLink: '/add-stats-hub',\n ProfitChartLink: '/api/v1/mt/statistics/chart/profit',\n EquityChartLink: '/api/v1/mt/statistics/chart/equity',\n EquityDetailChartLink: '/api/v1/mt/statistics/chart/equity-exact',\n OpenProfitChartLink: '/api/v1/mt/statistics/chart/open-profit',\n OpenProfitPercentChartLink: '/api/v1/mt/statistics/chart/open-profit-percent',\n ProfileDrawdownChartLink: '/api/v1/mt/statistics/chart/drawdown',\n ProfileBalanceChartLink: '/api/v1/mt/statistics/chart/balance',\n ProfileGrowthChartLink: '/api/v1/mt/statistics/chart/profit-percent',\n ProfileMonthlyChartLink: '/api/v1/mt/statistics/monthly-analytics-chart',\n ProfileAdvancedSummaryChartLink: '/api/v1/mt/statistics/advanced-symbol-chart',\n ProfileAdvancedPeriodChartLink: '/api/v1/mt/statistics/advanced-period-chart',\n ProfileAdvancedDurationChartLink: '/api/v1/mt/statistics/advanced-duration-chart',\n ProfileAdvancedMAEMFEChartLink: '/api/v1/mt/statistics/advanced-mae-mfe-chart',\n ProfileTradingActivityOpenTradesLink: '/api/v1/mt/trades/open',\n ProfileTradingActivityOpenOrdersLink: '/api/v1/mt/trades/open-order',\n ProfileTradingActivityHistoryLink: '/api/v1/mt/trades/history',\n ProfileTradingActivityExcludedLink: '/api/v1/mt/trades/excluded',\n ProfileTradingActivityExposureLink: '/api/v1/mt/trades/exposure',\n ProfileMonthlyAnalyticsLink: '/api/v1/mt/statistics/monthly-analytics-chart',\n ProfileMonthlyAnalyticsDetailLink: '/api/v1/mt/statistics/monthly-analytics-detail-chart'\n };\n this.customUrls = {\n StatisticsLink: '/api/v1/mt/custom/statistics',\n StatsHub: '/stats-hub',\n AddStatsHubLink: '/add-stats-hub',\n ProfitChartLink: '/api/v1/mt/custom/statistics/chart/profit',\n EquityChartLink: '/api/v1/mt/custom/statistics/chart/equity',\n OpenProfitChartLink: '/api/v1/mt/custom/statistics/chart/open-profit',\n OpenProfitPercentChartLink: '/api/v1/mt/custom/statistics/chart/open-profit-percent',\n ProfileDrawdownChartLink: '/api/v1/mt/custom/statistics/chart/drawdown',\n ProfileBalanceChartLink: '/api/v1/mt/custom/statistics/chart/balance',\n ProfileGrowthChartLink: '/api/v1/mt/custom/statistics/chart/profit-percent',\n ProfileMonthlyChartLink: '/api/v1/mt/custom/statistics/monthly-analytics-chart',\n ProfileAdvancedSummaryChartLink: '/api/v1/mt/custom/statistics/advanced-symbol-chart',\n ProfileAdvancedPeriodChartLink: '/api/v1/mt/custom/statistics/advanced-period-chart',\n ProfileAdvancedDurationChartLink: '/api/v1/mt/custom/statistics/advanced-duration-chart',\n ProfileAdvancedMAEMFEChartLink: '/api/v1/mt/custom/statistics/advanced-mae-mfe-chart',\n ProfileTradingActivityOpenTradesLink: '/api/v1/mt/custom/trades/open',\n ProfileTradingActivityOpenOrdersLink: '/api/v1/mt/custom/trades/open-order',\n ProfileTradingActivityHistoryLink: '/api/v1/mt/custom/trades/history',\n ProfileTradingActivityExcludedLink: '/api/v1/mt/custom/trades/excluded',\n ProfileTradingActivityExposureLink: '/api/v1/mt/custom/trades/exposure',\n ProfileMonthlyAnalyticsLink: '/api/v1/mt/custom/statistics/monthly-analytics-chart',\n ProfileMonthlyAnalyticsDetailLink: '/api/v1/mt/custom/statistics/monthly-analytics-detail-chart',\n UpdateCustomOptionsLink: '/api/v1/mt/custom/statistics/update-custom-options'\n };\n this.usingUrls = this.urls;\n this.currentChart = 'profit-percent';\n this.defaultChart = 'profit-percent';\n this.helper = new _AISHelper[\"default\"]();\n this.apexCharts = {};\n this.tradingActivitySortParam = {};\n this.accountInfo = {};\n this.customOptions = {};\n this.timeOffset = 0;\n this.chartOptionHtmls = {\n 'advanced-hourly': \"
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n \").concat(window.statsStrings['CalculatedBasedOnClosedTrades'], \"\"),\n 'monthly-profit': \"
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \").concat(window.statsStrings['CalculatedBasedOnEquityWhenEquityDataIsAvailable'], \"\"),\n 'monthly-profit-twr': \"
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \").concat(window.statsStrings['CalculatedBasedOnEquityWhenEquityDataIsAvailable'], \"\"),\n 'closed-monthly-profit-twr': \"
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \").concat(window.statsStrings['CalculatedBasedOnClosedTrades'], \"\"),\n 'closed-monthly-profit': \"
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \").concat(window.statsStrings['CalculatedBasedOnClosedTrades'], \"\"),\n 'drawdown': \"
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \").concat(window.statsStrings['CalculatedBasedOnEquityWhenEquityDataIsAvailable'], \"\"),\n 'balance': \"\".concat(window.statsStrings['BalanceCalculatedBasedOnClosedTrades'], \"\"),\n 'advanced-maemfe': \"
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n \").concat(window.statsStrings['CalculatedBasedOnClosedTrades'], \"\"),\n 'profit-percent': \"\".concat(window.statsStrings['CalculatedBasedOnEquityWhenEquityDataIsAvailable'], \"\"),\n 'profit': \"\".concat(window.statsStrings['CalculatedBasedOnEquityWhenEquityDataIsAvailable'], \"\"),\n 'closed-profit': \"\".concat(window.statsStrings['CalculatedBasedOnClosedTrades'], \"\"),\n 'equity': \"\".concat(window.statsStrings['EquityChartMessage'], \"\"),\n 'open-profit': \"\".concat(window.statsStrings['CalculatedBasedOnEquityWhenEquityDataIsAvailable'], \"\"),\n 'open-profit-percent': \"\".concat(window.statsStrings['CalculatedBasedOnEquityWhenEquityDataIsAvailable'], \"\"),\n 'profit-percent-twr': \"\".concat(window.statsStrings['CalculatedBasedOnEquityWhenEquityDataIsAvailable'], \"\"),\n 'closed-profit-percent-twr': \"\".concat(window.statsStrings['CalculatedBasedOnClosedTrades'], \"\")\n };\n this.chartOptionHtmls['advanced-daily'] = this.chartOptionHtmls['advanced-hourly'];\n this.chartOptionHtmls['advanced-duration'] = this.chartOptionHtmls['monthly-profit'];\n this.ajaxNum = 0;\n this.customAnalysisLoaded = false;\n }\n _createClass(AISStatistics, [{\n key: \"InitializeEventTriggers\",\n value: function InitializeEventTriggers() {\n var myThis = this;\n $(document).on('click', '[data-trigger=drawchart]', function () {\n var $this = $(this);\n var chart = $this.data(\"chart\");\n myThis.DrawSummaryChart($this, chart);\n });\n $(document).on('change', '#profile-summary-chart-options input', function () {\n myThis.UpdateSummaryChart();\n });\n $(document).on(\"change\", \"input[data-trigger=draw-symbol-summary-chart]\", function (e) {\n var tr = $(this).closest('tr');\n var symbol = $(tr).data('id').split('-')[1];\n myThis.DrawAdvancedStatSummaryChart(symbol);\n });\n $(document).on('click', \"#monthly-analytics-tablist li a\", function () {\n var $this = $(this);\n var year = $this.data('year');\n var type = $(\"input[name=monthly-analytics-chart-type]:checked\").val();\n myThis.DrawMonthlyAnalyticsChart('monthly-analytics-chart', type, year, true);\n });\n $(document).on('change', \"input[name=monthly-analytics-chart-type]\", function (e) {\n var type = $(\"input[name=monthly-analytics-chart-type]:checked\").val();\n var year = $(\"#monthly-analytics-tablist li a.active\").data('year');\n myThis.DrawMonthlyAnalyticsChart('monthly-analytics-chart', type, year, false);\n });\n $(document).on('change', 'input#periodEquitySwitch', function () {\n if (document.querySelector(\"#periodEquitySwitch\").checked) {\n var _myThis$statistics, _myThis$statistics2;\n myThis.PopulateTradingPeriods((_myThis$statistics = myThis.statistics) === null || _myThis$statistics === void 0 ? void 0 : _myThis$statistics.balanceBasicStats, (_myThis$statistics2 = myThis.statistics) === null || _myThis$statistics2 === void 0 ? void 0 : _myThis$statistics2.yearlyStats);\n $(\"#periodStatDescription\").html(window.statsStrings['CalculatedBasedOnClosedTrades']);\n } else {\n var _myThis$statistics3, _myThis$statistics4;\n myThis.PopulateTradingPeriods((_myThis$statistics3 = myThis.statistics) === null || _myThis$statistics3 === void 0 ? void 0 : _myThis$statistics3.equityBasicStats, (_myThis$statistics4 = myThis.statistics) === null || _myThis$statistics4 === void 0 ? void 0 : _myThis$statistics4.yearlyStats);\n $(\"#periodStatDescription\").html(window.statsStrings['CalculatedBasedOnClosedAndOpenTrades']);\n }\n });\n $(document).on('click', 'td.sort[data-sort-param]', function (e) {\n var $this = $(this);\n var selector = $this.data(\"id\");\n var leftOffset = $(selector + \" .tablescroll-wrap\").scrollLeft();\n var dir = \"asce\";\n if ($this.hasClass(\"asce\")) dir = \"desc\";else dir = \"asce\";\n $(selector + \" td.sort[data-sort-param]\").removeClass(\"asce\");\n $(selector + \" td.sort[data-sort-param]\").removeClass(\"desc\");\n $this.addClass(dir);\n myThis.tradingActivitySortParam[selector] = {\n sortParam: $this.data(\"sort-param\"),\n sortOrder: dir\n };\n window.APIHelper.GetAccessTokenAsync().then(function () {\n $(selector).pagination($(selector).pagination('getSelectedPageNum'));\n $(selector).addHook('afterPaging', function () {\n $(selector + \" .tablescroll-wrap\").scrollLeft(leftOffset);\n });\n });\n });\n $(document).on('click', '[data-toggle=\"summary-chart\"]', function () {\n var symbol = $(this).data('symbol');\n if (!$('#advanced-stats-summary-tab tr[data-id=\"' + myThis.aisAccountId + '-' + symbol + '\"]').is(\":hidden\")) {\n $('#advanced-stats-summary-tab tr[data-id=\"' + myThis.aisAccountId + '-' + symbol + '\"] td div.advanced-summary-chart').html(window.statsStrings['LoadingData']);\n }\n if ($('#advanced-stats-summary-tab tr[data-id=\"' + myThis.aisAccountId + '-' + symbol + '\"]').is(\":hidden\")) {\n myThis.DrawAdvancedStatSummaryChart(symbol);\n }\n $(this).parents().next('.summary-chart-row').toggle();\n });\n $(document).on('click', '#custom-analysis-option-list button', function (e) {\n var $this = $(this);\n var id = $this.attr('id');\n myThis.ChangeCustomAnalysisOptionContent($this, id);\n });\n $(document).on('click', '#custom-analysis-period a', function (e) {\n var $this = $(this);\n $('#custom-analysis-period li').removeClass('active');\n $this.parent().addClass('active');\n var val = $this.attr('name');\n if (val == \"-1\") {\n var currentDate = new Date();\n currentDate.setDate(currentDate.getDate() + 1);\n var startDate = window.tradeStartDate;\n $('#StartDate').datetimepicker('format', 'YYYY-MM-DD HH:mm');\n $('#StartDate').datetimepicker('date', new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate() - 1, 12, 0));\n $('#EndDate').val(\"\");\n } else {\n var stDate = new Date();\n var enDate = new Date();\n enDate.setDate(enDate.getDate() + 1);\n var num = parseInt(val.charAt(0));\n var unit = val.charAt(1);\n switch (unit) {\n case 'D':\n stDate.setDate(stDate.getDate() - num);\n break;\n case 'W':\n stDate.setDate(stDate.getDate() - num * 7);\n break;\n case 'M':\n stDate.setMonth(stDate.getMonth() - num);\n break;\n case 'Y':\n stDate.setFullYear(stDate.getFullYear() - num);\n break;\n }\n $('#StartDate').datetimepicker('format', 'YYYY-MM-DD HH:mm');\n $('#StartDate').datetimepicker('date', stDate);\n $(\"#EndDate\").val(\"\");\n }\n });\n $(document).on('change', '#DurationUnit', function (e) {\n var val = e.target.value;\n $('#DurationUnitSpan').html(\" (\" + val + \")\");\n });\n $(document).on('mouseup touchend', function (e) {\n var container = $('.bootstrap-datetimepicker-widget');\n if (!container.is(e.target) && container.has(e.target).length === 0) {\n container.prev().datetimepicker('hide');\n }\n });\n $(document).on('change', '#custom-analysis-form input[name=CustomDeposit]', function (e) {\n var customDeposit = e.target.value;\n if (customDeposit > 10000000 && $('#CustomDepositErrorMessage').hasClass('hide')) {\n $('#CustomDepositErrorMessage').removeClass('hide');\n }\n if (customDeposit <= 10000000 && !$('#CustomDepositErrorMessage').hasClass('hide')) {\n $('#CustomDepositErrorMessage').addClass('hide');\n }\n });\n $(document).on('change', '#custom-analysis-form input[name=RiskFactor]', function (e) {\n var riskFactor = e.target.value;\n if (riskFactor == \"\") {\n if ($('#RiskFactorEmptyErrorMessage').hasClass('hide')) $('#RiskFactorEmptyErrorMessage').removeClass('hide');\n } else {\n if (!$('#RiskFactorEmptyErrorMessage').hasClass('hide')) $('#RiskFactorEmptyErrorMessage').addClass('hide');\n if (riskFactor == 0 && $('#RiskFactorGreaterThanZeroErrorMessage').hasClass('hide')) {\n $('#RiskFactorGreaterThanZeroErrorMessage').removeClass('hide');\n }\n if (riskFactor > 0 && !$('#RiskFactorGreaterThanZeroErrorMessage').hasClass('hide')) {\n $('#RiskFactorGreaterThanZeroErrorMessage').addClass('hide');\n }\n }\n });\n var statsConnection = new signalR.HubConnectionBuilder().withUrl(myThis.SignalRUrl('StatsHub')).configureLogging(signalR.LogLevel.Warning).withAutomaticReconnect().build();\n statsConnection.start();\n statsConnection.on(\"UpdateMt4UserStats\", function (aisId, state) {\n if (state == \"updated\" && aisId == myThis.aisAccountId) {\n console.log('Refresh stats page');\n myThis.InitializePage(true);\n }\n });\n var addMt4Connection = new signalR.HubConnectionBuilder().withUrl(myThis.SignalRUrl('AddStatsHubLink')).configureLogging(signalR.LogLevel.Warning).withAutomaticReconnect().build();\n addMt4Connection.start();\n addMt4Connection.on(\"VerifyMT4Account\", function (accountId, state, message) {\n if (accountId == myThis.aisAccountId) {\n if (state == \"finish\") {\n myThis.InitializePage(true);\n toastr.success(window.statsStrings['YourAccountHasBeenSuccessfullyVerified']);\n $(\"#edit-trading-account-dialog\").modal('hide');\n } else if (state == \"error\") {\n $(\"#verificaton-process[data-id=\" + accountId + \"]\").html(window.statsStrings['FailedToVerify']);\n $(\"#verificaton-process[data-id=\" + accountId + \"]\").removeClass(\"processing\");\n $(\"#verificaton-process[data-id=\" + accountId + \"]\").addClass(\"error\");\n toastr.error(window.statsStrings['FailedToVerify']);\n } else {\n $(\"#verificaton-process[data-id=\" + accountId + \"]\").removeClass(\"error\");\n $(\"#verificaton-process[data-id=\" + accountId + \"]\").removeClass(\"finish\");\n $(\"#verificaton-process[data-id=\" + accountId + \"]\").addClass(\"processing\");\n $(\"#verificaton-process[data-id=\" + accountId + \"]\").html(window.statsStrings['ConnectingToAccount']);\n }\n }\n });\n }\n }, {\n key: \"Url\",\n value: function Url(key) {\n return this.aisRoot + (this.usingUrls || {})[key];\n }\n }, {\n key: \"SignalRUrl\",\n value: function SignalRUrl(key) {\n return this.aisDataRoot + (this.urls || {})[key];\n }\n }, {\n key: \"GetCustomOptions\",\n value: function GetCustomOptions() {\n this.customOptions[\"StartDate\"] = $(\"#custom-analysis-form input[name=StartDate]\").val();\n this.customOptions[\"EndDate\"] = $(\"#custom-analysis-form input[name=EndDate]\").val();\n var symbols = new Array();\n $(\"li[id^=symbols-bool]\").each(function (i, v) {\n if (v.querySelector(\"input\").checked) {\n symbols.push(v.querySelector(\"input\").name);\n }\n });\n this.customOptions[\"Symbols\"] = symbols;\n var weekdays = new Array();\n $(\"li[id^=weekdays-bool]\").each(function (i, v) {\n if (v.querySelector(\"input\").checked) {\n weekdays.push(i);\n }\n });\n this.customOptions[\"Weekdays\"] = weekdays;\n var hours = new Array();\n $(\"li[id^=hours-bool]\").each(function (i, v) {\n if (v.querySelector(\"input\").checked) {\n hours.push(i);\n }\n });\n this.customOptions[\"Hours\"] = hours;\n var analyzeBy = new Array();\n $(\"li[id^=analyzeby-bool]\").each(function (i, v) {\n if (v.querySelector(\"input\").checked) {\n analyzeBy.push(v.querySelector(\"input\").name);\n }\n });\n this.customOptions[\"AnalyzeBy\"] = analyzeBy;\n this.customOptions[\"GainMin\"] = $(\"#custom-analysis-form input[name=gain-min]\").val();\n this.customOptions[\"GainMax\"] = $(\"#custom-analysis-form input[name=gain-max]\").val();\n this.customOptions[\"ProfitMin\"] = $(\"#custom-analysis-form input[name=profit-min]\").val();\n this.customOptions[\"ProfitMax\"] = $(\"#custom-analysis-form input[name=profit-max]\").val();\n this.customOptions[\"DurationMin\"] = $(\"#custom-analysis-form input[name=duration-min]\").val();\n this.customOptions[\"DurationMax\"] = $(\"#custom-analysis-form input[name=duration-max]\").val();\n this.customOptions[\"DurationUnit\"] = $(\"#custom-analysis-form select[name=DurationUnit]\").find(\":selected\").val();\n this.customOptions[\"PipsMin\"] = $(\"#custom-analysis-form input[name=pips-min]\").val();\n this.customOptions[\"PipsMax\"] = $(\"#custom-analysis-form input[name=pips-max]\").val();\n this.customOptions[\"LotsMin\"] = $(\"#custom-analysis-form input[name=lots-min]\").val();\n this.customOptions[\"LotsMax\"] = $(\"#custom-analysis-form input[name=lots-max]\").val();\n var tradeTypes = new Array();\n $(\"li[id^=tradetypes-bool]\").each(function (i, v) {\n if (v.querySelector(\"input\").checked) {\n tradeTypes.push(v.querySelector(\"input\").name);\n }\n });\n this.customOptions[\"TradeTypes\"] = tradeTypes;\n this.customOptions[\"CustomDeposit\"] = $(\"#custom-analysis-form input[name=CustomDeposit]\").val();\n this.customOptions[\"RiskFactor\"] = $(\"#custom-analysis-form input[name=RiskFactor]\").val();\n }\n }, {\n key: \"DateToString\",\n value: function DateToString(d) {\n var dformat = [d.getFullYear(), d.getMonth() + 1, d.getDate()].join('-') + ' ' + [d.getHours(), d.getMinutes()].join(':');\n return dformat;\n }\n }, {\n key: \"ShowLoadingSpin\",\n value: function ShowLoadingSpin() {\n if ($(\"#stat-spinner\").length) {\n $(\".stat-spinner\").show();\n } else {\n $(\".main-content-pane\").prepend(\"
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n \".concat(window.statsStrings['LoadingSpinText'], \"\\n
\\n
\\n
\"));\n window.spinInitialTop = $(\"#stat-spinner\").height() * 9 / 100;\n var screenwidth = window.innerWidth > 0 ? window.innerWidth : screen.width;\n if (screenwidth < 768) {\n window.spinInitialTop = $(\"#stat-spinner\").height() * 4 / 100;\n }\n }\n var top = window.spinInitialTop + $(document).scrollTop();\n if ($(document).scrollTop() > $('header').height()) {\n top -= $('header').height() - 50;\n }\n $('#loading-spin').css('top', top);\n var screenwidth = window.innerWidth > 0 ? window.innerWidth : screen.width;\n $('body').addClass(\"stop-scrolling\");\n }\n }, {\n key: \"HideLoadingSpin\",\n value: function HideLoadingSpin() {\n $('body').removeClass('stop-scrolling');\n $('.stat-spinner').hide();\n }\n }, {\n key: \"ApplyCustomAnalysis\",\n value: function ApplyCustomAnalysis() {\n this.ShowLoadingSpin();\n this.usingUrls = this.customUrls;\n this.GetCustomOptions();\n $(\"#custom-analysis-dialog\").modal('hide');\n if (this.IsInitialCustomOptions()) {\n this.ResetAnalysis();\n } else {\n var _this$accountInfo;\n if (this.customOptions[\"StartDate\"] == \"\" || this.customOptions[\"StartDate\"] == null) {\n this.customOptions[\"StartDate\"] = this.DateToString(window.tradeStartDate);\n }\n if (this.customOptions[\"EndDate\"] == \"\" || this.customOptions[\"EndDate\"] == null) {\n this.customOptions[\"EndDate\"] = this.DateToString(new Date());\n }\n this.InitializePage();\n $(\"#periodStatDescription\").html(window.statsStrings['CalculatedBasedOnClosedTrades']);\n $('#periodStatDescription').next().hide();\n $('#advancedStatDescription').html(window.statsStrings['CalculatedBasedOnClosedTrades']);\n $(\"#reset-analysis\").removeClass('hide');\n if (!((_this$accountInfo = this.accountInfo) !== null && _this$accountInfo !== void 0 && _this$accountInfo.owner)) {\n $('#partial-history-description').hide();\n }\n }\n }\n }, {\n key: \"ClearDate\",\n value: function ClearDate(id) {\n $('#' + id).val('');\n }\n }, {\n key: \"PinState\",\n value: function PinState(method) {\n $(\"#custom-analysis-dialog\").modal('hide');\n $(\"#broker-list-loading\").show();\n if (method == 0) {\n $(\"#custom-analysis-form\")[0].reset();\n $(\"#custom-analysis-period li a[name=-1]\").click();\n if (!$('#unsave-default').hasClass('hide')) $('#unsave-default').addClass(\"hide\");\n if ($('#save-default').hasClass('hide')) $('#save-default').removeClass('hide');\n }\n if (method == 1) {\n if ($('#unsave-default').hasClass('hide')) $('#unsave-default').removeClass(\"hide\");\n if (!$('#save-default').hasClass('hide')) $('#save-default').addClass('hide');\n }\n this.GetCustomOptions();\n this.usingUrls = this.customUrls;\n var myThis = this;\n myThis.customOptions[\"Period\"] = null;\n if (myThis.customOptions[\"EndDate\"] == \"\") {\n myThis.customOptions[\"Period\"] = $('#custom-analysis-period li.active').text();\n }\n for (var key in myThis.customOptions) {\n if (myThis.customOptions[key] == \"\") myThis.customOptions[key] = null;\n }\n if (myThis.customOptions[\"StartDate\"] != null) myThis.customOptions[\"StartDate\"] = new Date(myThis.customOptions[\"StartDate\"]);\n if (myThis.customOptions[\"EndDate\"] != null) myThis.customOptions[\"EndDate\"] = new Date(myThis.customOptions[\"EndDate\"]);\n var periodRequest = JSON.stringify(myThis.customOptions);\n if (myThis.IsInitialCustomOptions()) {\n periodRequest = null;\n }\n window.APIHelper.SafeServiceAPICall({\n url: myThis.Url('UpdateCustomOptionsLink') + \"/\" + myThis.aisAccountId,\n type: \"POST\",\n contentType: \"application/json\",\n data: periodRequest,\n success: function success(res) {\n myThis.ApplyCustomAnalysis();\n },\n error: function error(xhr, statusText) {}\n });\n }\n }, {\n key: \"IsInitialCustomOptions\",\n value: function IsInitialCustomOptions() {\n var stDate = window.tradeStartDate;\n var enDate = window.tradeEndDate;\n var customStDate = new Date(this.customOptions[\"StartDate\"]);\n var customEnDate = new Date(this.customOptions[\"EndDate\"]);\n if (this.customOptions[\"StartDate\"] == null || this.customOptions[\"StartDate\"] == \"\") {\n customStDate = stDate;\n }\n if (this.customOptions[\"EndDate\"] == null || this.customOptions[\"EndDate\"] == \"\") {\n customEnDate = new Date();\n }\n var customSymbolLen = $(\"#symbol-ul li\").length;\n if (customStDate <= stDate && customEnDate >= enDate && (this.customOptions[\"CustomDeposit\"] == \"\" || this.customOptions[\"CustomDeposit\"] == 0 || this.customOptions[\"CustomDeposit\"] == null) && (this.customOptions[\"Period\"] == null || this.customOptions[\"Period\"] == \"All\") && this.customOptions[\"RiskFactor\"] == 1 && (this.customOptions[\"Symbols\"] == null || this.customOptions[\"Symbols\"].length == 0 || this.customOptions[\"Symbols\"].length == customSymbolLen) && (this.customOptions[\"Weekdays\"] == null || this.customOptions[\"Weekdays\"].length == 0 || this.customOptions[\"Weekdays\"].length == 7) && (this.customOptions[\"Hours\"] == null || this.customOptions[\"Hours\"].length == 0 || this.customOptions[\"Hours\"].length == 24) && (this.customOptions[\"GainMin\"] == \"\" || this.customOptions[\"GainMin\"] == null) && (this.customOptions[\"GainMax\"] == \"\" || this.customOptions[\"GainMax\"] == null) && (this.customOptions[\"ProfitMin\"] == \"\" || this.customOptions[\"ProfitMin\"] == null) && (this.customOptions[\"ProfitMax\"] == \"\" || this.customOptions[\"ProfitMax\"] == null) && (this.customOptions[\"DurationMin\"] == \"\" || this.customOptions[\"DurationMin\"] == null) && (this.customOptions[\"DurationMax\"] == \"\" || this.customOptions[\"DurationMax\"] == null) && (this.customOptions[\"PipsMin\"] == \"\" || this.customOptions[\"PipsMin\"] == null) && (this.customOptions[\"PipsMax\"] == \"\" || this.customOptions[\"PipsMin\"] == null) && (this.customOptions[\"LotsMin\"] == \"\" || this.customOptions[\"LotsMin\"] == null) && (this.customOptions[\"LotsMax\"] == \"\" || this.customOptions[\"LotsMax\"] == null) && (this.customOptions[\"TradeTypes\"] == null || this.customOptions[\"TradeTypes\"].length == 0)) {\n return true;\n }\n return false;\n }\n }, {\n key: \"ResetAnalysis\",\n value: function ResetAnalysis() {\n this.ShowLoadingSpin();\n $(\"#custom-analysis-form\")[0].reset();\n $(\"#custom-analysis-period li a[name=-1]\").click();\n this.customOptions = {};\n this.usingUrls = this.urls;\n this.InitializePage();\n $(\"#periodStatDescription\").html(window.statsStrings['CalculatedBasedOnClosedAndOpenTrades']);\n $('#periodStatDescription').next().show();\n $('#advancedStatDescription').html(window.statsStrings['CalculatedBasedOnClosedAndOpenTrades']);\n $(\"#reset-analysis\").addClass('hide');\n }\n }, {\n key: \"InitializePage\",\n value: function InitializePage(refresh) {\n var myThis = this;\n InitializeStatsWidget(myThis.aisRoot);\n myThis.InitAccountSummary(refresh);\n if (!refresh) {\n myThis.DrawMonthlyAnalyticsChart('monthly-analytics-chart', 'percent', new Date().getUTCFullYear(), true);\n } else {\n var type = $(\"input[name=monthly-analytics-chart-type]:checked\").val();\n var year = $(\"#monthly-analytics-tablist li a.active\").data('year');\n myThis.DrawMonthlyAnalyticsChart('monthly-analytics-chart', type, year, false);\n }\n myThis.InitializeTradingActivityTable(\"#trading-activity-history\", myThis.Url('ProfileTradingActivityHistoryLink'));\n myThis.InitializeTradingActivityTable(\"#trading-activity-excluded\", myThis.Url('ProfileTradingActivityExcludedLink'));\n $('.nav-pills a').on('shown.bs.tab', function (e) {\n var href = $(this).attr(\"href\");\n $(href + \" table\").trigger('scroll');\n });\n }\n }, {\n key: \"SetPartialAccountHistory\",\n value: function SetPartialAccountHistory() {\n var _myThis$accountInfo;\n var myThis = this;\n myThis.customOptions = JSON.parse((_myThis$accountInfo = myThis.accountInfo) === null || _myThis$accountInfo === void 0 ? void 0 : _myThis$accountInfo.customOptions);\n if (!$('#trade-filter').hasClass('hide')) $('#trade-filter').addClass(\"hide\");\n if ($('#partial-history-alert').hasClass('hide')) $('#partial-history-alert').removeClass(\"hide\");\n if ($('#unsave-default').hasClass('hide')) $('#unsave-default').removeClass(\"hide\");\n if (!$('#save-default').hasClass('hide')) $('#save-default').addClass('hide');\n if (myThis.customOptions[\"Period\"] != null && myThis.customOptions[\"Period\"] != \"All\") {\n var val = myThis.customOptions[\"Period\"];\n $(\"#custom-analysis-period li a[name=\" + val + \"]\").click();\n } else {\n var flag = 0;\n if (myThis.customOptions[\"EndDate\"] == null) {\n var cDate = new Date();\n cDate.setDate(cDate.getDate() + 1);\n myThis.customOptions[\"EndDate\"] = cDate;\n flag = 1;\n }\n if (myThis.customOptions[\"StartDate\"] == null) {\n myThis.customOptions[\"StartDate\"] = window.tradeStartDate;\n }\n $('#StartDate').datetimepicker('format', 'YYYY-MM-DD HH:mm');\n $('#StartDate').datetimepicker('date', myThis.customOptions[\"StartDate\"]);\n $('#EndDate').datetimepicker('format', 'YYYY-MM-DD HH:mm');\n $('#EndDate').datetimepicker('date', myThis.customOptions[\"EndDate\"]);\n if (flag == 1) $(\"#EndDate\").val(\"\");\n }\n if (myThis.customOptions[\"Symbols\"] == null) myThis.customOptions[\"Symbols\"] = [];\n if (myThis.customOptions[\"Weekdays\"] == null) myThis.customOptions[\"Weekdays\"] = [];\n if (myThis.customOptions[\"Hours\"] == null) myThis.customOptions[\"Hours\"] = [];\n if (myThis.customOptions[\"AnalyzeBy\"] == null) myThis.customOptions[\"AnalyzeBy\"] = [];\n if (myThis.customOptions[\"TradeTypes\"] == null) myThis.customOptions[\"TradeTypes\"] = [];\n myThis.customOptions[\"Symbols\"].forEach(function (symbol) {\n return $(\"li[id=symbols-bool-\" + symbol + \"] input[type=checkbox]\").prop(\"checked\", true);\n });\n myThis.customOptions[\"Weekdays\"].forEach(function (weekday) {\n return $(\"li[id=weekdays-bool-\" + weekday + \"] input[type=checkbox]\").prop(\"checked\", true);\n });\n myThis.customOptions[\"Hours\"].forEach(function (hour) {\n return $(\"li[id=hours-bool-\" + hour + \"] input[type=checkbox]\").prop(\"checked\", true);\n });\n myThis.customOptions[\"AnalyzeBy\"].forEach(function (analyzeBy) {\n return $(\"li[id=analyzeby-bool-\" + analyzeBy + \"] input[type=checkbox]\").prop(\"checked\", true);\n });\n $(\"#custom-analysis-form input[name=gain-min]\").val(myThis.customOptions[\"GainMin\"]);\n $(\"#custom-analysis-form input[name=gain-max]\").val(myThis.customOptions[\"GainMax\"]);\n $(\"#custom-analysis-form input[name=profit-min]\").val(myThis.customOptions[\"ProfitMin\"]);\n $(\"#custom-analysis-form input[name=profit-max]\").val(myThis.customOptions[\"ProfitMax\"]);\n $(\"#custom-analysis-form input[name=duration-min]\").val(myThis.customOptions[\"DurationMin\"]);\n $(\"#custom-analysis-form input[name=duration-max]\").val(myThis.customOptions[\"DurationMax\"]);\n $(\"#custom-analysis-form select[name=DurationUnit] option[value=\" + myThis.customOptions[\"DurationUnit\"] + \"]\").prop(\"selected\", true);\n $(\"#custom-analysis-form input[name=pips-min]\").val(myThis.customOptions[\"PipsMin\"]);\n $(\"#custom-analysis-form input[name=pips-max]\").val(myThis.customOptions[\"PipsMax\"]);\n $(\"#custom-analysis-form input[name=lots-min]\").val(myThis.customOptions[\"LotsMin\"]);\n $(\"#custom-analysis-form input[name=lots-max]\").val(myThis.customOptions[\"LotsMax\"]);\n myThis.customOptions[\"TradeTypes\"].forEach(function (tradeType) {\n return $(\"li[id=tradetypes-bool-\" + tradeType + \"] input[type=checkbox]\").prop(\"checked\", true);\n });\n $(\"#custom-analysis-form input[name=CustomDeposit]\").val(myThis.customOptions[\"CustomDeposit\"]);\n $(\"#custom-analysis-form input[name=RiskFactor]\").val(myThis.customOptions[\"RiskFactor\"]);\n myThis.customOptions[\"StartDate\"] = $(\"#custom-analysis-form input[name=StartDate]\").val();\n myThis.customOptions[\"EndDate\"] = $(\"#custom-analysis-form input[name=EndDate]\").val();\n myThis.ajaxNum++;\n myThis.usingUrls = myThis.customUrls;\n myThis.InitializePage();\n $(\"#periodStatDescription\").html(window.statsStrings['CalculatedBasedOnClosedTrades']);\n $('#periodStatDescription').next().hide();\n $('#advancedStatDescription').html(window.statsStrings['CalculatedBasedOnClosedTrades']);\n $(\"#reset-analysis\").removeClass('hide');\n }\n }, {\n key: \"InitAccountSummary\",\n value: function InitAccountSummary(refresh) {\n var myThis = this;\n window.APIHelper.SafeServiceAPICall({\n url: myThis.Url('StatisticsLink') + '/' + myThis.aisAccountId,\n type: \"GET\",\n data: this.customOptions,\n traditional: true,\n success: function success(res) {\n var _res$statistics, _res$statistics2, _res$statistics3, _res$statistics4, _res$statistics5, _res$statistics6, _res$statistics7, _res$statistics8, _advancedStat;\n myThis.accountInfo = res.accountInfo;\n myThis.HideLoadingSpin();\n if (refresh) {\n var _res$accountInfo;\n if (((_res$accountInfo = res.accountInfo) === null || _res$accountInfo === void 0 ? void 0 : _res$accountInfo.customOptions) != null) {\n if (myThis.customAnalysisLoaded == true) {\n myThis.SetPartialAccountHistory();\n return;\n }\n }\n }\n if ((_res$statistics = res.statistics) !== null && _res$statistics !== void 0 && _res$statistics.hasIncompleteData) {\n $(\"#incomplete-data-alert\").removeClass(\"hide\");\n }\n if (myThis.customAnalysisLoaded == true) {\n if (myThis.IsInitialCustomOptions() == false && Object.keys(myThis.customOptions).length > 0) {\n if (!$('#trade-filter').hasClass('hide')) $('#trade-filter').addClass(\"hide\");\n if ($('#partial-history-alert').hasClass('hide')) $('#partial-history-alert').removeClass(\"hide\");\n } else {\n if ($('#trade-filter').hasClass('hide')) $('#trade-filter').removeClass(\"hide\");\n if (!$('#partial-history-alert').hasClass('hide')) $('#partial-history-alert').addClass(\"hide\");\n }\n }\n if (Math.abs(((_res$statistics2 = res.statistics) === null || _res$statistics2 === void 0 ? void 0 : _res$statistics2.profitPercent) - ((_res$statistics3 = res.statistics) === null || _res$statistics3 === void 0 ? void 0 : _res$statistics3.profitPercentTWR)) <= 1e-7) {\n $(\".profile-summary-info .profile-summary-button[data-chart=profit-percent-twr]\").remove();\n $('#statistics-charts-dropdown-menu ul li[data-chart=profit-percent-twr]').remove();\n }\n if (Math.abs(((_res$statistics4 = res.statistics) === null || _res$statistics4 === void 0 ? void 0 : _res$statistics4.monthlyProfit) - ((_res$statistics5 = res.statistics) === null || _res$statistics5 === void 0 ? void 0 : _res$statistics5.monthlyProfitTWR)) <= 1e-7) {\n $(\".profile-summary-info .profile-summary-button[data-chart=monthly-profit-twr]\").remove();\n $('#statistics-charts-dropdown-menu ul li[data-chart=monthly-profit-twr]').remove();\n }\n if (Math.abs(((_res$statistics6 = res.statistics) === null || _res$statistics6 === void 0 ? void 0 : _res$statistics6.closedProfitPercentTWR) - ((_res$statistics7 = res.statistics) === null || _res$statistics7 === void 0 ? void 0 : _res$statistics7.closedProfitPercent)) <= 1e-7) {\n $(\".profile-summary-info .profile-summary-button[data-chart=closed-profit-percent-twr]\").remove();\n $('#statistics-charts-dropdown-menu ul li[data-chart=closed-profit-percent-twr]').remove();\n }\n if (Object.keys(myThis.customOptions).length > 0 && !myThis.IsInitialCustomOptions()) {\n $(\".profile-summary-info .profile-summary-button[data-chart=equity]\").hide();\n $('#statistics-charts-dropdown-menu ul li[data-chart=equity]').hide();\n $(\".profile-summary-info .profile-summary-button[data-chart=open-profit]\").hide();\n $('#statistics-charts-dropdown-menu ul li[data-chart=open-profit]').hide();\n $(\".profile-summary-info .profile-summary-button[data-chart=open-profit-percent]\").hide();\n $('#statistics-charts-dropdown-menu ul li[data-chart=open-profit-percent]').hide();\n } else {\n $(\".profile-summary-info .profile-summary-button[data-chart=equity]\").show();\n $('#statistics-charts-dropdown-menu ul li[data-chart=equity]').show();\n $(\".profile-summary-info .profile-summary-button[data-chart=open-profit]\").show();\n $('#statistics-charts-dropdown-menu ul li[data-chart=open-profit]').show();\n $(\".profile-summary-info .profile-summary-button[data-chart=open-profit-percent]\").show();\n $('#statistics-charts-dropdown-menu ul li[data-chart=open-profit-percent]').show();\n }\n myThis.timeOffset = ((_res$statistics8 = res.statistics) === null || _res$statistics8 === void 0 ? void 0 : _res$statistics8.timezone) * 60;\n myThis.statistics = res.statistics;\n myThis.InitializeTradingActivityTable(\"#trading-activity-open-trades\", myThis.Url('ProfileTradingActivityOpenTradesLink'));\n myThis.InitializeTradingActivityTable(\"#trading-activity-open-orders\", myThis.Url('ProfileTradingActivityOpenOrdersLink'));\n myThis.InitializePermission();\n myThis.PopualteAccountSummary(res);\n myThis.PullAdditionalAccountInfo(res);\n var profitType = 'equity';\n var basicStat, advancedStat;\n if (profitType == \"equity\") {\n var _res$statistics9, _res$statistics10;\n basicStat = res === null || res === void 0 ? void 0 : (_res$statistics9 = res.statistics) === null || _res$statistics9 === void 0 ? void 0 : _res$statistics9.equityBasicStats;\n advancedStat = res === null || res === void 0 ? void 0 : (_res$statistics10 = res.statistics) === null || _res$statistics10 === void 0 ? void 0 : _res$statistics10.equityAdvancedStats;\n } else {\n var _res$statistics11, _res$statistics12;\n basicStat = res === null || res === void 0 ? void 0 : (_res$statistics11 = res.statistics) === null || _res$statistics11 === void 0 ? void 0 : _res$statistics11.balanceBasicStats;\n advancedStat = res === null || res === void 0 ? void 0 : (_res$statistics12 = res.statistics) === null || _res$statistics12 === void 0 ? void 0 : _res$statistics12.balanceAdvancedStats;\n }\n if (document.querySelector(\"#periodEquitySwitch\").checked) {\n var _myThis$statistics5, _myThis$statistics6;\n myThis.PopulateTradingPeriods((_myThis$statistics5 = myThis.statistics) === null || _myThis$statistics5 === void 0 ? void 0 : _myThis$statistics5.balanceBasicStats, (_myThis$statistics6 = myThis.statistics) === null || _myThis$statistics6 === void 0 ? void 0 : _myThis$statistics6.yearlyStats);\n } else {\n var _myThis$statistics7, _myThis$statistics8;\n myThis.PopulateTradingPeriods((_myThis$statistics7 = myThis.statistics) === null || _myThis$statistics7 === void 0 ? void 0 : _myThis$statistics7.equityBasicStats, (_myThis$statistics8 = myThis.statistics) === null || _myThis$statistics8 === void 0 ? void 0 : _myThis$statistics8.yearlyStats);\n }\n myThis.PopulateAdvancedTradesStats(res === null || res === void 0 ? void 0 : res.statistics, basicStat);\n myThis.PopulateAdvancedSummaryStats((_advancedStat = advancedStat) === null || _advancedStat === void 0 ? void 0 : _advancedStat.summary);\n if (!refresh) {\n var _myThis$accountInfo2;\n if ((_myThis$accountInfo2 = myThis.accountInfo) !== null && _myThis$accountInfo2 !== void 0 && _myThis$accountInfo2.owner) {\n myThis.defaultChart = 'profit';\n }\n $(\".profile-summary-info .profile-summary-button\").removeClass(\"active\");\n $(\".profile-summary-info .profile-summary-button[data-chart=\".concat(myThis.defaultChart, \"]\")).addClass(\"active\");\n $('#statistics-charts-dropdown-menu ul li').removeClass(\"active\");\n $(\"#statistics-charts-dropdown-menu ul li[data-chart=\".concat(myThis.defaultChart, \"]\")).addClass(\"active\");\n $(\"#statistics-charts-dropdown-menu a[data-toggle=dropdown]\").html($(\"#statistics-charts-dropdown-menu ul li[data-chart=\".concat(myThis.defaultChart, \"]\")).html());\n myThis.currentChart = myThis.defaultChart;\n myThis.InitializeSummaryChartOptions(myThis.defaultChart);\n }\n myThis.UpdateSummaryChart();\n },\n error: function error(e) {\n $(\".portfolio-profile-detail-pane\").html(\"\".concat(window.statsStrings['OopsThatPageCanTBeFound'], \"\"));\n },\n complete: function complete() {\n $(\"#broker-list-loading\").hide();\n }\n });\n }\n }, {\n key: \"PullAdditionalAccountInfo\",\n value: function PullAdditionalAccountInfo(data) {\n var myThis = this;\n var duration = this.helper.GetDuraction(data.statistics.lastUpdated, new Date());\n var requestData = {\n clientId: data.accountInfo.cbfClientProfileId,\n brokerName: data.accountInfo.brokerServerName,\n currency: data.statistics.accountCurrency\n };\n if (data.isContestAccountStatistics) {\n var _data$contestStatisti;\n requestData.contestId = (_data$contestStatisti = data.contestStatistics) === null || _data$contestStatisti === void 0 ? void 0 : _data$contestStatisti.contestId;\n } else {\n $(\"#bug-report-alert\").show();\n }\n $.ajax({\n url: \"/\".concat(window.CURRENT_LANG, \"/api/trading-account/accountInfo\"),\n type: 'GET',\n data: requestData,\n success: function success(res) {\n var _data$accountInfo, _data$accountInfo2, _data$accountInfo3, _data$statistics2, _data$statistics3, _data$statistics4, _data$accountInfo4;\n var accountInfoHtml = '';\n if (data.isContestAccountStatistics) {\n var contestHtml = \"\").concat(window.statsStrings[\"Contest\"], \"\");\n accountInfoHtml += \"
\".concat(contestHtml, \"
\");\n } else {\n var _data$statistics;\n var popoverHtml = '';\n if (((_data$statistics = data.statistics) === null || _data$statistics === void 0 ? void 0 : _data$statistics.accountType) == \"Real\") {\n popoverHtml = \"\").concat(window.statsStrings['Real'], \"\");\n } else {\n popoverHtml = \"\").concat(window.statsStrings['Demo'], \"\");\n }\n accountInfoHtml += \"
\".concat(popoverHtml, \"
\");\n }\n accountInfoHtml += \"\").concat((_data$accountInfo = data.accountInfo) === null || _data$accountInfo === void 0 ? void 0 : _data$accountInfo.brokerServerName, \"\");\n accountInfoHtml += \"\".concat(window.statsStrings[\"LastSync0Ago\"].replace(\"{0}\", duration), \"\");\n accountInfoHtml += \"\".concat(window.statsStrings[\"Added0\"].replace(\"{0}\", myThis.helper.ToShortDate((_data$accountInfo2 = data.accountInfo) === null || _data$accountInfo2 === void 0 ? void 0 : _data$accountInfo2.added, \"short\")), \"\");\n if (data.isContestAccountStatistics) accountInfoHtml += \"\".concat(window.statsStrings[\"Started0\"].replace(\"{0}\", myThis.helper.ToShortDate(res.ContestStarted, \"short\")), \"\");\n accountInfoHtml += \"
1 : \").concat(data.statistics.accountLeverage, \"
\");\n accountInfoHtml += \"
\").concat((_data$accountInfo3 = data.accountInfo) === null || _data$accountInfo3 === void 0 ? void 0 : _data$accountInfo3.platformType, \"
\");\n accountInfoHtml += \"
\").concat((_data$statistics2 = data.statistics) === null || _data$statistics2 === void 0 ? void 0 : _data$statistics2.accountCurrency, \"
\");\n if (!!((_data$statistics3 = data.statistics) !== null && _data$statistics3 !== void 0 && _data$statistics3.timezone) && !isNaN(parseInt((_data$statistics4 = data.statistics) === null || _data$statistics4 === void 0 ? void 0 : _data$statistics4.timezone))) {\n var _data$statistics5;\n if (((_data$statistics5 = data.statistics) === null || _data$statistics5 === void 0 ? void 0 : _data$statistics5.timezone) >= 0) accountInfoHtml += \"
GMT +\").concat(data.statistics.timezone.toLocaleString(\"en-US\", {\n minimumIntegerDigits: 2,\n useGrouping: false\n }), \":00
\");else accountInfoHtml += \"
GMT \").concat(data.statistics.timezone.toLocaleString(\"en-US\", {\n minimumIntegerDigits: 2,\n useGrouping: false\n }), \":00
\");\n }\n if ((_data$accountInfo4 = data.accountInfo) !== null && _data$accountInfo4 !== void 0 && _data$accountInfo4.showBalance) {\n var _data$statistics6, _data$statistics7;\n accountInfoHtml += \"\".concat(window.statsStrings['Deposits'], \": \").concat(myThis.helper.ToDecimal((_data$statistics6 = data.statistics) === null || _data$statistics6 === void 0 ? void 0 : _data$statistics6.deposits), \"\");\n accountInfoHtml += \"\".concat(window.statsStrings['Withdrawls'], \": \").concat(myThis.helper.ToDecimal((_data$statistics7 = data.statistics) === null || _data$statistics7 === void 0 ? void 0 : _data$statistics7.withdrawls), \"\");\n }\n $(\"#account-info\").html(accountInfoHtml);\n $(\"#account-info [data-toggle=tooltip]\").tooltip('dispose').tooltip({\n boundary: 'window'\n });\n }\n });\n }\n }, {\n key: \"InitializePermission\",\n value: function InitializePermission() {\n var _this$accountInfo2, _this$accountInfo3, _this$accountInfo4;\n if (!((_this$accountInfo2 = this.accountInfo) !== null && _this$accountInfo2 !== void 0 && _this$accountInfo2.showBalance)) {\n $(\"input[name=UnitType][value=profit]\").attr(\"disabled\", true);\n $(\"input[data-trigger=draw-symbol-summary-chart]\").attr(\"disabled\", true);\n }\n if (!((_this$accountInfo3 = this.accountInfo) !== null && _this$accountInfo3 !== void 0 && _this$accountInfo3.showVolume)) {\n $(\"input[name=UnitType][value=lots]\").attr(\"disabled\", true);\n }\n if ((_this$accountInfo4 = this.accountInfo) !== null && _this$accountInfo4 !== void 0 && _this$accountInfo4.owner) {\n $(\"#account-edit-icon\").show();\n $(\"#save-default\").show();\n $(\"#unsave-default\").show();\n $(\"a[data-id=embed-script-copy]\").show();\n $(\"#tab-widgets\").show();\n $(\"#tab-widgets-box\").show();\n } else {\n $(\"#tab-widgets\").remove();\n $(\"#tab-widgets-box\").remove();\n }\n }\n }, {\n key: \"PopualteAccountSummary\",\n value: function PopualteAccountSummary(data) {\n var _data$accountInfo5, _data$accountInfo6, _data$statistics$mont, _data$statistics24, _data$statistics25, _data$statistics$mont2, _data$statistics26, _data$statistics27, _data$statistics$clos, _data$statistics28, _data$statistics29, _stat, _data$accountInfo8;\n var profitType = Object.keys(this.customOptions).length > 0 ? 'balance' : 'equity';\n var stat;\n if (profitType == \"equity\") {\n var _data$statistics8;\n stat = data === null || data === void 0 ? void 0 : (_data$statistics8 = data.statistics) === null || _data$statistics8 === void 0 ? void 0 : _data$statistics8.equityBasicStats;\n } else {\n var _data$statistics9;\n stat = data === null || data === void 0 ? void 0 : (_data$statistics9 = data.statistics) === null || _data$statistics9 === void 0 ? void 0 : _data$statistics9.balanceBasicStats;\n }\n var langSlug = \"\";\n if (window.CURRENT_LANG != 'en') langSlug += \"/\" + window.CURRENT_LANG;\n var breadcrumb = \"\").concat(window.statsStrings['Home'], \"\");\n breadcrumb += \"\").concat(window.statsStrings['Performances'], \"\");\n breadcrumb += \"\").concat(data.accountInfo.cbfClientPublicName, \"\");\n breadcrumb += \" \".concat(data.accountInfo.accountName, \"\");\n $(\"#site-breadcrumb\").html(breadcrumb);\n $(\"head title\").html(((_data$accountInfo5 = data.accountInfo) === null || _data$accountInfo5 === void 0 ? void 0 : _data$accountInfo5.accountName) + ' ' + window.statsStrings['Statistics']);\n $(\"#account-name\").html((_data$accountInfo6 = data.accountInfo) === null || _data$accountInfo6 === void 0 ? void 0 : _data$accountInfo6.accountName);\n if (!!data.accountInfo.comment) {\n var _data$accountInfo7;\n $(\"#contest-description\").html((_data$accountInfo7 = data.accountInfo) === null || _data$accountInfo7 === void 0 ? void 0 : _data$accountInfo7.comment);\n $(\"#contest-description\").shorten({\n showChars: 200,\n ellipsesText: \"...\",\n moreText: window.statsStrings[\"More\"],\n lessText: window.statsStrings[\"Less\"]\n });\n } else {\n $(\"#contest-description\").remove();\n }\n if (data.isContestAccountStatistics) {\n var _data$contestStatisti2, _data$contestStatisti3, _data$contestStatisti4, _data$contestStatisti5, _data$contestStatisti6, _data$statistics10, _data$contestStatisti7, _data$statistics11, _data$statistics12, _data$statistics13, _data$contestStatisti8;\n $(\"#summary-equity\").html(this.helper.ToDecimal((_data$contestStatisti2 = data.contestStatistics) === null || _data$contestStatisti2 === void 0 ? void 0 : _data$contestStatisti2.equity));\n $(\"#summary-balance\").html(this.helper.ToDecimal((_data$contestStatisti3 = data.contestStatistics) === null || _data$contestStatisti3 === void 0 ? void 0 : _data$contestStatisti3.balance));\n $(\"#summary-open-profit\").html(this.helper.ToDecimal((_data$contestStatisti4 = data.contestStatistics) === null || _data$contestStatisti4 === void 0 ? void 0 : _data$contestStatisti4.openProfit));\n $(\"#summary-open-profit-percent\").html(this.helper.ToPercent((_data$contestStatisti5 = data.contestStatistics) === null || _data$contestStatisti5 === void 0 ? void 0 : _data$contestStatisti5.openProfitPercent));\n $(\"#summary-profit\").html(this.helper.ToDecimal((_data$contestStatisti6 = data.contestStatistics) === null || _data$contestStatisti6 === void 0 ? void 0 : _data$contestStatisti6.profit));\n $(\"#summary-closed-profit\").html(this.helper.ToDecimal((_data$statistics10 = data.statistics) === null || _data$statistics10 === void 0 ? void 0 : _data$statistics10.closedProfit));\n $(\"#summary-profit-percent\").html(this.helper.ToPercent((_data$contestStatisti7 = data.contestStatistics) === null || _data$contestStatisti7 === void 0 ? void 0 : _data$contestStatisti7.profitPercent));\n $(\"#summary-closed-profit-percent\").html(this.helper.ToPercent((_data$statistics11 = data.statistics) === null || _data$statistics11 === void 0 ? void 0 : _data$statistics11.closedProfitPercent));\n $(\"#summary-profit-percent-twr\").html(this.helper.ToPercent((_data$statistics12 = data.statistics) === null || _data$statistics12 === void 0 ? void 0 : _data$statistics12.profitPercentTWR));\n $(\"#summary-closed-profit-percent-twr\").html(this.helper.ToPercent((_data$statistics13 = data.statistics) === null || _data$statistics13 === void 0 ? void 0 : _data$statistics13.closedProfitPercentTWR));\n if (!!((_data$contestStatisti8 = data.contestStatistics) !== null && _data$contestStatisti8 !== void 0 && _data$contestStatisti8.maxAllowedDD)) {\n var _data$contestStatisti9;\n $(\"#summary-max-allowed-dd\").html(this.helper.ToDecimal((_data$contestStatisti9 = data.contestStatistics) === null || _data$contestStatisti9 === void 0 ? void 0 : _data$contestStatisti9.maxAllowedDD));\n $(\"#summary-max-allowed-dd-button\").show();\n } else {\n $(\"#summary-max-allowed-dd-button\").hide();\n }\n } else {\n var _data$statistics14, _data$statistics15, _data$statistics16, _data$statistics17, _data$statistics18, _data$statistics19, _data$statistics20, _data$statistics21, _data$statistics22, _data$statistics23;\n $(\"#summary-equity\").html(this.helper.ToDecimal((_data$statistics14 = data.statistics) === null || _data$statistics14 === void 0 ? void 0 : _data$statistics14.accountEquity));\n $(\"#summary-balance\").html(this.helper.ToDecimal((_data$statistics15 = data.statistics) === null || _data$statistics15 === void 0 ? void 0 : _data$statistics15.accountBalance));\n $(\"#summary-open-profit\").html(this.helper.ToDecimal((_data$statistics16 = data.statistics) === null || _data$statistics16 === void 0 ? void 0 : _data$statistics16.accountProfit));\n $(\"#summary-open-profit-percent\").html(this.helper.ToPercent((_data$statistics17 = data.statistics) === null || _data$statistics17 === void 0 ? void 0 : _data$statistics17.openProfitPercent));\n $(\"#summary-profit\").html(this.helper.ToDecimal((_data$statistics18 = data.statistics) === null || _data$statistics18 === void 0 ? void 0 : _data$statistics18.profit));\n $(\"#summary-closed-profit\").html(this.helper.ToDecimal((_data$statistics19 = data.statistics) === null || _data$statistics19 === void 0 ? void 0 : _data$statistics19.closedProfit));\n $(\"#summary-profit-percent\").html(this.helper.ToPercent((_data$statistics20 = data.statistics) === null || _data$statistics20 === void 0 ? void 0 : _data$statistics20.profitPercent));\n $(\"#summary-closed-profit-percent\").html(this.helper.ToPercent((_data$statistics21 = data.statistics) === null || _data$statistics21 === void 0 ? void 0 : _data$statistics21.closedProfitPercent));\n $(\"#summary-profit-percent-twr\").html(this.helper.ToPercent((_data$statistics22 = data.statistics) === null || _data$statistics22 === void 0 ? void 0 : _data$statistics22.profitPercentTWR));\n $(\"#summary-closed-profit-percent-twr\").html(this.helper.ToPercent((_data$statistics23 = data.statistics) === null || _data$statistics23 === void 0 ? void 0 : _data$statistics23.closedProfitPercentTWR));\n }\n $(\"#summary-monthly-percent\").html(this.helper.ToPercent((_data$statistics$mont = data === null || data === void 0 ? void 0 : (_data$statistics24 = data.statistics) === null || _data$statistics24 === void 0 ? void 0 : _data$statistics24.monthlyProfit) !== null && _data$statistics$mont !== void 0 ? _data$statistics$mont : data === null || data === void 0 ? void 0 : (_data$statistics25 = data.statistics) === null || _data$statistics25 === void 0 ? void 0 : _data$statistics25.monthlyProfitTWR));\n $(\"#summary-monthly-percent-twr\").html(this.helper.ToPercent((_data$statistics$mont2 = data === null || data === void 0 ? void 0 : (_data$statistics26 = data.statistics) === null || _data$statistics26 === void 0 ? void 0 : _data$statistics26.monthlyProfitTWR) !== null && _data$statistics$mont2 !== void 0 ? _data$statistics$mont2 : data === null || data === void 0 ? void 0 : (_data$statistics27 = data.statistics) === null || _data$statistics27 === void 0 ? void 0 : _data$statistics27.monthlyProfit));\n $(\"#summary-closed-monthly-percent\").html(this.helper.ToPercent((_data$statistics$clos = data === null || data === void 0 ? void 0 : (_data$statistics28 = data.statistics) === null || _data$statistics28 === void 0 ? void 0 : _data$statistics28.closedMonthlyProfitTWR) !== null && _data$statistics$clos !== void 0 ? _data$statistics$clos : data === null || data === void 0 ? void 0 : (_data$statistics29 = data.statistics) === null || _data$statistics29 === void 0 ? void 0 : _data$statistics29.closedMonthlyProfit));\n $(\"#summary-drawdown\").html(this.helper.ToPercent((_stat = stat) === null || _stat === void 0 ? void 0 : _stat.drawDown));\n if ((data === null || data === void 0 ? void 0 : (_data$accountInfo8 = data.accountInfo) === null || _data$accountInfo8 === void 0 ? void 0 : _data$accountInfo8.isVerified) === true) {\n $(\"#trade-authority-verify-badge\").removeClass(\"not-verified\");\n $(\"#trade-authority-verify-badge\").find('span:first-child').html(window.statsStrings['Verified'] + ' ' + window.statsStrings['TradeAuthority']);\n $(\"#trade-authority-verify-badge\").tooltip('dispose');\n $(\"#trade-authority-verify-badge\").data('title', window.statsStrings[\"TheUserProvedTheyHaveAuthorityToPlaceTradesOnTheAccount\"]);\n $(\"#trade-authority-verify-badge\").tooltip();\n }\n $(\"#trade-authority-verify-badge\").css('visibility', 'visible');\n }\n }, {\n key: \"PopulateTradingPeriods\",\n value: function PopulateTradingPeriods(stat, yearlyStats) {\n var _stat$today$gainTWR, _stat$today, _stat$today2, _stat$today$gain, _stat$today3, _stat$today4, _stat$today5, _stat$today6, _stat$today7, _stat$today8, _stat$thisWeek$gain, _stat$thisWeek, _stat$thisWeek2, _stat$thisWeek$gainTW, _stat$thisWeek3, _stat$thisWeek4, _stat$thisWeek5, _stat$thisWeek6, _stat$thisWeek7, _stat$thisWeek8, _stat$thisMonth$gain, _stat$thisMonth, _stat$thisMonth2, _stat$thisMonth$gainT, _stat$thisMonth3, _stat$thisMonth4, _stat$thisMonth5, _stat$thisMonth6, _stat$thisMonth7, _stat$thisMonth8, _stat$thisYear$gain, _stat$thisYear, _stat$thisYear2, _stat$thisYear$gainTW, _stat$thisYear3, _stat$thisYear4, _stat$thisYear5, _stat$thisYear6, _stat$thisYear7, _stat$thisYear8;\n $('#trading-periods-tab [data-key=\"today-profit-percentage\"]').html(this.helper.ToPercent((_stat$today$gainTWR = stat === null || stat === void 0 ? void 0 : (_stat$today = stat.today) === null || _stat$today === void 0 ? void 0 : _stat$today.gainTWR) !== null && _stat$today$gainTWR !== void 0 ? _stat$today$gainTWR : stat === null || stat === void 0 ? void 0 : (_stat$today2 = stat.today) === null || _stat$today2 === void 0 ? void 0 : _stat$today2.gain));\n $('#trading-periods-tab [data-key=\"today-profit-percentage-twr\"]').html(this.helper.ToPercent((_stat$today$gain = stat === null || stat === void 0 ? void 0 : (_stat$today3 = stat.today) === null || _stat$today3 === void 0 ? void 0 : _stat$today3.gain) !== null && _stat$today$gain !== void 0 ? _stat$today$gain : stat === null || stat === void 0 ? void 0 : (_stat$today4 = stat.today) === null || _stat$today4 === void 0 ? void 0 : _stat$today4.gainTWR));\n $('#trading-periods-tab [data-key=\"today-profit\"]').html(this.helper.ToDecimal(stat === null || stat === void 0 ? void 0 : (_stat$today5 = stat.today) === null || _stat$today5 === void 0 ? void 0 : _stat$today5.profit));\n $('#trading-periods-tab [data-key=\"today-win-percentage\"]').html(this.helper.ToPercent(stat === null || stat === void 0 ? void 0 : (_stat$today6 = stat.today) === null || _stat$today6 === void 0 ? void 0 : _stat$today6.winPercentage));\n $('#trading-periods-tab [data-key=\"today-trades\"]').html(this.helper.ToIntNumber(stat === null || stat === void 0 ? void 0 : (_stat$today7 = stat.today) === null || _stat$today7 === void 0 ? void 0 : _stat$today7.trades));\n $('#trading-periods-tab [data-key=\"today-lots\"]').html(this.helper.ToDecimal(stat === null || stat === void 0 ? void 0 : (_stat$today8 = stat.today) === null || _stat$today8 === void 0 ? void 0 : _stat$today8.lots));\n $('#trading-periods-tab [data-key=\"week-profit-percentage\"]').html(this.helper.ToPercent((_stat$thisWeek$gain = stat === null || stat === void 0 ? void 0 : (_stat$thisWeek = stat.thisWeek) === null || _stat$thisWeek === void 0 ? void 0 : _stat$thisWeek.gain) !== null && _stat$thisWeek$gain !== void 0 ? _stat$thisWeek$gain : stat === null || stat === void 0 ? void 0 : (_stat$thisWeek2 = stat.thisWeek) === null || _stat$thisWeek2 === void 0 ? void 0 : _stat$thisWeek2.gainTWR));\n $('#trading-periods-tab [data-key=\"week-profit-percentage-twr\"]').html(this.helper.ToPercent((_stat$thisWeek$gainTW = stat === null || stat === void 0 ? void 0 : (_stat$thisWeek3 = stat.thisWeek) === null || _stat$thisWeek3 === void 0 ? void 0 : _stat$thisWeek3.gainTWR) !== null && _stat$thisWeek$gainTW !== void 0 ? _stat$thisWeek$gainTW : stat === null || stat === void 0 ? void 0 : (_stat$thisWeek4 = stat.thisWeek) === null || _stat$thisWeek4 === void 0 ? void 0 : _stat$thisWeek4.gain));\n $('#trading-periods-tab [data-key=\"week-profit\"]').html(this.helper.ToDecimal(stat === null || stat === void 0 ? void 0 : (_stat$thisWeek5 = stat.thisWeek) === null || _stat$thisWeek5 === void 0 ? void 0 : _stat$thisWeek5.profit));\n $('#trading-periods-tab [data-key=\"week-win-percentage\"]').html(this.helper.ToPercent(stat === null || stat === void 0 ? void 0 : (_stat$thisWeek6 = stat.thisWeek) === null || _stat$thisWeek6 === void 0 ? void 0 : _stat$thisWeek6.winPercentage));\n $('#trading-periods-tab [data-key=\"week-trades\"]').html(this.helper.ToIntNumber(stat === null || stat === void 0 ? void 0 : (_stat$thisWeek7 = stat.thisWeek) === null || _stat$thisWeek7 === void 0 ? void 0 : _stat$thisWeek7.trades));\n $('#trading-periods-tab [data-key=\"week-lots\"]').html(this.helper.ToDecimal(stat === null || stat === void 0 ? void 0 : (_stat$thisWeek8 = stat.thisWeek) === null || _stat$thisWeek8 === void 0 ? void 0 : _stat$thisWeek8.lots));\n $('#trading-periods-tab [data-key=\"month-profit-percentage\"]').html(this.helper.ToPercent((_stat$thisMonth$gain = stat === null || stat === void 0 ? void 0 : (_stat$thisMonth = stat.thisMonth) === null || _stat$thisMonth === void 0 ? void 0 : _stat$thisMonth.gain) !== null && _stat$thisMonth$gain !== void 0 ? _stat$thisMonth$gain : stat === null || stat === void 0 ? void 0 : (_stat$thisMonth2 = stat.thisMonth) === null || _stat$thisMonth2 === void 0 ? void 0 : _stat$thisMonth2.gainTWR));\n $('#trading-periods-tab [data-key=\"month-profit-percentage-twr\"]').html(this.helper.ToPercent((_stat$thisMonth$gainT = stat === null || stat === void 0 ? void 0 : (_stat$thisMonth3 = stat.thisMonth) === null || _stat$thisMonth3 === void 0 ? void 0 : _stat$thisMonth3.gainTWR) !== null && _stat$thisMonth$gainT !== void 0 ? _stat$thisMonth$gainT : stat === null || stat === void 0 ? void 0 : (_stat$thisMonth4 = stat.thisMonth) === null || _stat$thisMonth4 === void 0 ? void 0 : _stat$thisMonth4.gain));\n $('#trading-periods-tab [data-key=\"month-profit\"]').html(this.helper.ToDecimal(stat === null || stat === void 0 ? void 0 : (_stat$thisMonth5 = stat.thisMonth) === null || _stat$thisMonth5 === void 0 ? void 0 : _stat$thisMonth5.profit));\n $('#trading-periods-tab [data-key=\"month-win-percentage\"]').html(this.helper.ToPercent(stat === null || stat === void 0 ? void 0 : (_stat$thisMonth6 = stat.thisMonth) === null || _stat$thisMonth6 === void 0 ? void 0 : _stat$thisMonth6.winPercentage));\n $('#trading-periods-tab [data-key=\"month-trades\"]').html(this.helper.ToIntNumber(stat === null || stat === void 0 ? void 0 : (_stat$thisMonth7 = stat.thisMonth) === null || _stat$thisMonth7 === void 0 ? void 0 : _stat$thisMonth7.trades));\n $('#trading-periods-tab [data-key=\"month-lots\"]').html(this.helper.ToDecimal(stat === null || stat === void 0 ? void 0 : (_stat$thisMonth8 = stat.thisMonth) === null || _stat$thisMonth8 === void 0 ? void 0 : _stat$thisMonth8.lots));\n $('#trading-periods-tab [data-key=\"year-profit-percentage\"]').html(this.helper.ToPercent((_stat$thisYear$gain = stat === null || stat === void 0 ? void 0 : (_stat$thisYear = stat.thisYear) === null || _stat$thisYear === void 0 ? void 0 : _stat$thisYear.gain) !== null && _stat$thisYear$gain !== void 0 ? _stat$thisYear$gain : stat === null || stat === void 0 ? void 0 : (_stat$thisYear2 = stat.thisYear) === null || _stat$thisYear2 === void 0 ? void 0 : _stat$thisYear2.gainTWR));\n $('#trading-periods-tab [data-key=\"year-profit-percentage-twr\"]').html(this.helper.ToPercent((_stat$thisYear$gainTW = stat === null || stat === void 0 ? void 0 : (_stat$thisYear3 = stat.thisYear) === null || _stat$thisYear3 === void 0 ? void 0 : _stat$thisYear3.gainTWR) !== null && _stat$thisYear$gainTW !== void 0 ? _stat$thisYear$gainTW : stat === null || stat === void 0 ? void 0 : (_stat$thisYear4 = stat.thisYear) === null || _stat$thisYear4 === void 0 ? void 0 : _stat$thisYear4.gain));\n $('#trading-periods-tab [data-key=\"year-profit\"]').html(this.helper.ToDecimal(stat === null || stat === void 0 ? void 0 : (_stat$thisYear5 = stat.thisYear) === null || _stat$thisYear5 === void 0 ? void 0 : _stat$thisYear5.profit));\n $('#trading-periods-tab [data-key=\"year-win-percentage\"]').html(this.helper.ToPercent(stat === null || stat === void 0 ? void 0 : (_stat$thisYear6 = stat.thisYear) === null || _stat$thisYear6 === void 0 ? void 0 : _stat$thisYear6.winPercentage));\n $('#trading-periods-tab [data-key=\"year-trades\"]').html(this.helper.ToIntNumber(stat === null || stat === void 0 ? void 0 : (_stat$thisYear7 = stat.thisYear) === null || _stat$thisYear7 === void 0 ? void 0 : _stat$thisYear7.trades));\n $('#trading-periods-tab [data-key=\"year-lots\"]').html(this.helper.ToDecimal(stat === null || stat === void 0 ? void 0 : (_stat$thisYear8 = stat.thisYear) === null || _stat$thisYear8 === void 0 ? void 0 : _stat$thisYear8.lots));\n $(\"#trading-periods-tab table tr:nth-child(n+6)\").remove();\n var yearlyStatsHtml = '';\n for (var i = 0; i < yearlyStats.length; i++) {\n if (new Date(yearlyStats[i].date).getUTCFullYear() != new Date().getUTCFullYear()) {\n var _yearlyStats$i$gainPe;\n yearlyStatsHtml += '';\n yearlyStatsHtml += '' + new Date(yearlyStats[i].date).getUTCFullYear() + '';\n yearlyStatsHtml += '' + this.helper.ToPercent(yearlyStats[i].gainPercent) + '';\n yearlyStatsHtml += '' + this.helper.ToPercent((_yearlyStats$i$gainPe = yearlyStats[i].gainPercentTWR) !== null && _yearlyStats$i$gainPe !== void 0 ? _yearlyStats$i$gainPe : yearlyStats[i].gainPercent) + '';\n yearlyStatsHtml += '' + this.helper.ToDecimal(yearlyStats[i].profit) + '';\n yearlyStatsHtml += '' + this.helper.ToPercent(yearlyStats[i].winTradeCount / yearlyStats[i].tradeCount) + '';\n yearlyStatsHtml += '' + this.helper.ToIntNumber(yearlyStats[i].tradeCount) + '';\n yearlyStatsHtml += '' + this.helper.ToDecimal(yearlyStats[i].lots) + '';\n yearlyStatsHtml += '';\n }\n }\n $(\"#trading-periods-tab table tbody\").append(yearlyStatsHtml);\n }\n }, {\n key: \"PopulateAdvancedTradesStats\",\n value: function PopulateAdvancedTradesStats(stats, data) {\n var _stats$closedMonthlyP;\n if (!data) return;\n var myThis = this;\n $('#advanced-stats-trades-tab [data-key=\"trades\"]').html(data[\"trades\"]);\n if (data[\"trades\"] == 0) $('#advanced-stats-trades-tab [data-key=\"profitability\"]').html(myThis.helper.ToPercent(0));else $('#advanced-stats-trades-tab [data-key=\"profitability\"]').html(myThis.helper.ToPercent(data[\"winTrades\"] / data[\"trades\"]));\n $('#advanced-stats-trades-tab [data-key=\"pips\"]').html(myThis.helper.ToDecimal(data[\"pips\"]));\n $('#advanced-stats-trades-tab [data-key=\"averageWin\"]').html('' + myThis.helper.ToDecimal(data[\"averageWinPips\"]) + ' pips ' + myThis.helper.ToDecimal(data[\"averageWin\"]));\n $('#advanced-stats-trades-tab [data-key=\"averageLoss\"]').html('' + myThis.helper.ToDecimal(data[\"averageLossPips\"]) + ' pips ' + myThis.helper.ToDecimal(data[\"averageLoss\"]));\n $('#advanced-stats-trades-tab [data-key=\"lots\"]').html(myThis.helper.ToDecimal(data[\"lots\"]));\n $('#advanced-stats-trades-tab [data-key=\"commissions\"]').html(myThis.helper.ToDecimal(data[\"commissions\"]));\n if (data[\"longs\"] == 0) $('#advanced-stats-trades-tab [data-key=\"longsWon\"]').html('' + data[\"longsWon\"] + '/' + data[\"longs\"] + ' ' + myThis.helper.ToPercent(0));else $('#advanced-stats-trades-tab [data-key=\"longsWon\"]').html('' + data[\"longsWon\"] + '/' + data[\"longs\"] + ' ' + myThis.helper.ToPercent(data[\"longsWon\"] / data[\"longs\"]));\n if (data[\"shorts\"] == 0) $('#advanced-stats-trades-tab [data-key=\"shortsWon\"]').html('' + data[\"shortsWon\"] + '/' + data[\"shorts\"] + ' ' + myThis.helper.ToPercent(0));else $('#advanced-stats-trades-tab [data-key=\"shortsWon\"]').html('' + data[\"shortsWon\"] + '/' + data[\"shorts\"] + ' ' + myThis.helper.ToPercent(data[\"shortsWon\"] / data[\"shorts\"]));\n $('#advanced-stats-trades-tab [data-key=\"bestTrade\"]').html('' + myThis.helper.ToShortDate(data[\"bestTradeDate\"], \"short\") + ' ' + myThis.helper.ToDecimal(data[\"bestTrade\"]));\n $('#advanced-stats-trades-tab [data-key=\"worstTrade\"]').html('' + myThis.helper.ToShortDate(data[\"worstTradeDate\"], \"short\") + ' ' + myThis.helper.ToDecimal(data[\"worstTrade\"]));\n $('#advanced-stats-trades-tab [data-key=\"bestTradePips\"]').html('' + myThis.helper.ToShortDate(data[\"bestTradePipsDate\"], \"short\") + ' ' + myThis.helper.ToDecimal(data[\"bestTradePips\"]));\n $('#advanced-stats-trades-tab [data-key=\"worstTradePips\"]').html('' + myThis.helper.ToShortDate(data[\"worstTradePipsDate\"], \"short\") + ' ' + myThis.helper.ToDecimal(data[\"worstTradePips\"]));\n $('#advanced-stats-trades-tab [data-key=\"avgTradeLength\"]').html(myThis.helper.ToTimeSpan(data[\"avgTradeLength\"]));\n $('#advanced-stats-trades-tab [data-key=\"profitFactor\"]').html(myThis.helper.ToDecimal(data[\"profitFactor\"]));\n $('#advanced-stats-trades-tab [data-key=\"standardDeviation\"]').html(myThis.helper.ToDecimal(data[\"standardDeviation\"]));\n $('#advanced-stats-trades-tab [data-key=\"sharpeRatio\"]').html(myThis.helper.ToDecimal(data[\"sharpeRatio\"]));\n $('#advanced-stats-trades-tab [data-key=\"zScore\"]').html(myThis.helper.ToPercent(data[\"zScore\"]));\n $('#advanced-stats-trades-tab [data-key=\"expectancy\"]').html('' + myThis.helper.ToDecimal(data[\"expectancyPips\"]) + ' pips ' + myThis.helper.ToDecimal(data[\"expectancy\"]));\n $('#advanced-stats-trades-tab [data-key=\"ahpr\"]').html(myThis.helper.ToPercent(data[\"ahpr\"]));\n $('#advanced-stats-trades-tab [data-key=\"ghpr\"]').html(myThis.helper.ToPercent(data[\"ghpr\"]));\n $('#advanced-stats-trades-tab [data-key=\"closed-profit\"]').html(myThis.helper.ToDecimal(stats[\"closedProfit\"]));\n $('#advanced-stats-trades-tab [data-key=\"closed-profit-percent\"]').html(myThis.helper.ToPercent(stats[\"closedProfitPercent\"]));\n $('#advanced-stats-trades-tab [data-key=\"closed-profit-percent-twr\"]').html(myThis.helper.ToPercent(stats[\"closedProfitPercentTWR\"]));\n $('#advanced-stats-trades-tab [data-key=\"closed-monthly-profit\"]').html(myThis.helper.ToPercent((_stats$closedMonthlyP = stats[\"closedMonthlyProfitTWR\"]) !== null && _stats$closedMonthlyP !== void 0 ? _stats$closedMonthlyP : stats[\"closedMonthlyProfit\"]));\n }\n }, {\n key: \"PopulateAdvancedSummaryStats\",\n value: function PopulateAdvancedSummaryStats(data) {\n var myThis = this;\n $('#advanced-stats-summary-tab table tr:nth-child(n + 3)').remove();\n if (!data) return;\n var html = '';\n for (var i = 0; i < data.length; i++) {\n var _data$i, _data$i2, _data$i3, _data$i4, _data$i5, _data$i6, _data$i7, _data$i8, _data$i9, _data$i10, _data$i11, _data$i12, _data$i13, _data$i14, _data$i15, _data$i16, _data$i17, _data$i18;\n var row = '';\n row += '' + ((_data$i = data[i]) === null || _data$i === void 0 ? void 0 : _data$i.symbol) + '';\n row += '' + ((_data$i2 = data[i]) === null || _data$i2 === void 0 ? void 0 : _data$i2.longTrades) + '';\n row += '' + this.helper.ToDecimal((_data$i3 = data[i]) === null || _data$i3 === void 0 ? void 0 : _data$i3.longPips, true) + '';\n row += '' + this.helper.ToDecimal((_data$i4 = data[i]) === null || _data$i4 === void 0 ? void 0 : _data$i4.longProfits, true) + \"\";\n row += '' + ((_data$i5 = data[i]) === null || _data$i5 === void 0 ? void 0 : _data$i5.shortTrades) + '';\n row += '' + this.helper.ToDecimal((_data$i6 = data[i]) === null || _data$i6 === void 0 ? void 0 : _data$i6.shortPips, true) + '';\n row += '' + this.helper.ToDecimal((_data$i7 = data[i]) === null || _data$i7 === void 0 ? void 0 : _data$i7.shortProfits, true) + '';\n row += '' + ((_data$i8 = data[i]) === null || _data$i8 === void 0 ? void 0 : _data$i8.totalTrades) + '';\n row += '' + this.helper.ToDecimal((_data$i9 = data[i]) === null || _data$i9 === void 0 ? void 0 : _data$i9.totalPips, true) + '';\n row += '' + this.helper.ToDecimal((_data$i10 = data[i]) === null || _data$i10 === void 0 ? void 0 : _data$i10.totalProfits, true) + '';\n row += '' + ((_data$i11 = data[i]) === null || _data$i11 === void 0 ? void 0 : _data$i11.winTrades) + '(' + this.helper.ToPercent(((_data$i12 = data[i]) === null || _data$i12 === void 0 ? void 0 : _data$i12.winTrades) / ((_data$i13 = data[i]) === null || _data$i13 === void 0 ? void 0 : _data$i13.totalTrades)) + ')' + '';\n row += '' + ((_data$i14 = data[i]) === null || _data$i14 === void 0 ? void 0 : _data$i14.lossTrades) + '(' + this.helper.ToPercent(((_data$i15 = data[i]) === null || _data$i15 === void 0 ? void 0 : _data$i15.lossTrades) / ((_data$i16 = data[i]) === null || _data$i16 === void 0 ? void 0 : _data$i16.totalTrades)) + ')' + '';\n row += '';\n row += '';\n row += '
Loading data
';\n row += \"
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\");\n row += ' ';\n html += row;\n }\n $('#advanced-stats-summary-tab table').append(html);\n }\n }, {\n key: \"PopulateAdvancedRiskOfRuin\",\n value: function PopulateAdvancedRiskOfRuin(data) {\n if (!data) return;\n for (var i = 0; i < data.length; i++) {\n if (data[i].probabilityOfLoss > 1e-4) $('#advanced-stats-riskofruin-tab tr:nth-child(2) td:nth-child(' + (i + 2) + ')').html(this.helper.ToPercent(data[i].probabilityOfLoss));\n if (data[i].consecutiveLossingTrades > 0) $('#advanced-stats-riskofruin-tab tr:nth-child(3) td:nth-child(' + (i + 2) + ')').html(data[i].consecutiveLossingTrades);\n }\n $(\"#advanced-stats-riskofruin-tab tr td:nth-child(n+2)\").hover(function () {\n var $el = $(this);\n var index = $el.parent().children().index($el);\n $('#advanced-stats-riskofruin-tab tr td:nth-child(' + (index + 1) + ')').addClass(\"hover\");\n $('#advanced-stats-riskofruin-tab tr:last-child td').html(window.statsStrings['ThereIsA0ChanceOfLosing1OfTheAccountThisWillRequire2ConsecutiveLosingTrades'].replace(\"{0}\", $('#advanced-stats-riskofruin-tab tr:nth-child(1) td:nth-child(' + (index + 1) + ')').text()).replace('{1}', $('#advanced-stats-riskofruin-tab tr:nth-child(2) td:nth-child(' + (index + 1) + ')').text()).replace(\"{2}\", $('#advanced-stats-riskofruin-tab tr:nth-child(3) td:nth-child(' + (index + 1) + ')').text()));\n }, function () {\n $('#advanced-stats-riskofruin-tab td').removeClass(\"hover\");\n $('#advanced-stats-riskofruin-tab tr:last-child td').html(window.statsStrings['HoverOverTheDesiredColumnForADetailedExplanation']);\n });\n }\n }, {\n key: \"GetDefaultChartOption\",\n value: function GetDefaultChartOption(chartType, xaxisType, res) {\n // chartType: line, area, bar | res: data | xaxisType: category, datetime\n\n if (!res.series || res.series.length == 0 || !res.series[0].data || res.series[0].data.length == 0) return null;\n var options = {\n chart: {\n type: chartType,\n height: '100%',\n foreColor: 'rgba(255, 255, 255, 0.7)',\n background: 'transparent',\n toolbar: {\n show: true\n },\n zoom: {\n enabled: true\n }\n },\n colors: ['#44a2f8', '#26E7A6', '#FEBC3B'],\n theme: {\n mode: 'dark'\n },\n dataLabels: {\n enabled: false\n },\n series: res.series,\n xaxis: {\n categories: res.categories,\n type: xaxisType,\n axisTicks: {\n show: true\n }\n },\n stroke: {\n width: 2,\n curve: 'smooth'\n },\n markers: {\n size: 0\n },\n grid: {\n show: true,\n borderColor: 'rgba(255, 255, 255, 0.22)',\n strokeDashArray: 0,\n xaxis: {\n lines: {\n show: true\n }\n },\n yaxis: {\n lines: {\n show: true\n }\n },\n row: {\n opacity: 0.3\n },\n column: {\n opacity: 0.3\n }\n }\n };\n if (chartType == \"area\") {\n options.fill = {\n type: ['gradient', 'solid'],\n colors: ['#44a2f8', '#343540'],\n gradient: {\n shadeIntensity: .4,\n opacityFrom: .6,\n opacityTo: 0,\n stops: [0, 100]\n },\n opacity: 1\n };\n }\n if (!!res.categories && res.categories.length > 20) {\n options.xaxis.tickAmount = 20;\n }\n if (xaxisType == 'datetime') {\n options.xaxis.labels = {\n datetimeUTC: false\n };\n }\n for (var i = 0; i < options.series.length; i++) {\n var twr = false;\n if (options.series[i].name.includes(\"-twr\")) {\n options.series[i].name = options.series[i].name.replace(\"-twr\", \"\");\n twr = true;\n }\n if (!!window.statsStrings[options.series[i].name]) options.series[i].name = window.statsStrings[options.series[i].name];\n if (twr) {\n options.series[i].name += ',';\n }\n }\n return options;\n }\n }, {\n key: \"DrawProfileProfitChart\",\n value: function DrawProfileProfitChart(containerId, chartParams) {\n var myThis = this;\n var customParams = myThis.customOptions;\n var sendParams = _objectSpread(_objectSpread({}, chartParams), customParams);\n window.APIHelper.SafeServiceAPICall({\n url: myThis.Url('ProfitChartLink') + '?AisAccountId=' + myThis.aisAccountId,\n type: \"GET\",\n data: sendParams,\n traditional: true,\n success: function success(res) {\n $('.chart-spinner').hide();\n var options = myThis.GetDefaultChartOption('line', 'datetime', res);\n if (options == null) {\n if (myThis.apexCharts[containerId]) {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = null;\n }\n $(\"#\" + containerId).html(\"\".concat(window.statsStrings['NoData'], \"\"));\n } else {\n options.yaxis = [{\n forceNiceScale: false,\n labels: {\n formatter: function formatter(val) {\n return myThis.helper.ToChartMoney(val);\n }\n }\n }];\n if (!myThis.apexCharts[containerId]) {\n $(\"#\" + containerId).html('');\n myThis.apexCharts[containerId] = new ApexCharts(document.querySelector(\"#\" + containerId), options);\n myThis.apexCharts[containerId].render();\n } else {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = new ApexCharts(document.querySelector(\"#\" + containerId), options);\n myThis.apexCharts[containerId].render();\n }\n }\n },\n error: function error(xhr, statusText) {\n if (xhr.status == 423) {\n if (myThis.apexCharts[containerId]) {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = null;\n }\n $(\"#\" + containerId).html(\"\");\n }\n }\n });\n }\n }, {\n key: \"DrawProfileEquityChart\",\n value: function DrawProfileEquityChart(containerId) {\n var myThis = this;\n var customParams = myThis.customOptions;\n var url = myThis.Url('EquityChartLink') + '?AisAccountId=' + myThis.aisAccountId;\n if (myThis.equityChartZoomed) {\n url = myThis.Url('EquityDetailChartLink') + '?AisAccountId=' + myThis.aisAccountId;\n }\n window.APIHelper.SafeServiceAPICall({\n url: url,\n type: \"GET\",\n traditional: true,\n data: customParams,\n success: function success(res) {\n $('.chart-spinner').hide();\n var options = myThis.GetDefaultChartOption('line', 'datetime', res);\n if (options == null) {\n if (myThis.apexCharts[containerId]) {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = null;\n }\n $(\"#\" + containerId).html(\"\".concat(window.statsStrings['NoData'], \"\"));\n } else {\n options.chart.events = {\n beforeZoom: function beforeZoom() {\n if (!myThis.equityChartZoomed) {\n $('.chart-spinner').show();\n myThis.equityChartZoomed = true;\n myThis.DrawProfileEquityChart(containerId);\n }\n },\n beforeResetZoom: function beforeResetZoom() {\n $('.chart-spinner').show();\n myThis.equityChartZoomed = false;\n myThis.DrawProfileEquityChart(containerId);\n }\n };\n if (myThis.equityChartZoomed) {\n options.tooltip = {\n x: {\n formatter: function formatter(x) {\n return new Date(x).toLocaleString('en-GB', {\n timeZone: 'UTC'\n });\n }\n }\n };\n }\n options.yaxis = [{\n forceNiceScale: false,\n labels: {\n formatter: function formatter(val) {\n return myThis.helper.ToChartMoney(val);\n }\n }\n }];\n if (!myThis.apexCharts[containerId]) {\n $(\"#\" + containerId).html('');\n myThis.apexCharts[containerId] = new ApexCharts(document.querySelector(\"#\" + containerId), options);\n myThis.apexCharts[containerId].render();\n } else {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = new ApexCharts(document.querySelector(\"#\" + containerId), options);\n myThis.apexCharts[containerId].render();\n }\n }\n },\n error: function error(xhr, statusText) {\n if (xhr.status == 423) {\n if (myThis.apexCharts[containerId]) {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = null;\n }\n $(\"#\" + containerId).html(\"\");\n }\n }\n });\n }\n }, {\n key: \"DrawProfileOpenProfitChart\",\n value: function DrawProfileOpenProfitChart(containerId) {\n var myThis = this;\n window.APIHelper.SafeServiceAPICall({\n url: myThis.Url('OpenProfitChartLink') + '?AisAccountId=' + myThis.aisAccountId,\n type: \"GET\",\n traditional: true,\n data: myThis.customOptions,\n success: function success(res) {\n $('.chart-spinner').hide();\n var options = myThis.GetDefaultChartOption('line', 'datetime', res);\n if (options == null) {\n if (myThis.apexCharts[containerId]) {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = null;\n }\n $(\"#\" + containerId).html(\"\".concat(window.statsStrings['NoData'], \"\"));\n } else {\n options.yaxis = [{\n forceNiceScale: false,\n labels: {\n formatter: function formatter(val) {\n return myThis.helper.ToChartMoney(val);\n }\n }\n }];\n if (!myThis.apexCharts[containerId]) {\n $(\"#\" + containerId).html('');\n myThis.apexCharts[containerId] = new ApexCharts(document.querySelector(\"#\" + containerId), options);\n myThis.apexCharts[containerId].render();\n } else {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = new ApexCharts(document.querySelector(\"#\" + containerId), options);\n myThis.apexCharts[containerId].render();\n }\n }\n },\n error: function error(xhr, statusText) {\n if (xhr.status == 423) {\n if (myThis.apexCharts[containerId]) {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = null;\n }\n $(\"#\" + containerId).html(\"\");\n }\n }\n });\n }\n }, {\n key: \"DrawProfileOpenProfitPercentChart\",\n value: function DrawProfileOpenProfitPercentChart(containerId) {\n var myThis = this;\n window.APIHelper.SafeServiceAPICall({\n url: myThis.Url('OpenProfitPercentChartLink') + '?AisAccountId=' + myThis.aisAccountId,\n type: \"GET\",\n data: myThis.customOptions,\n traditional: true,\n success: function success(res) {\n $('.chart-spinner').hide();\n var options = myThis.GetDefaultChartOption('line', 'datetime', res);\n if (options == null) {\n if (myThis.apexCharts[containerId]) {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = null;\n }\n $(\"#\" + containerId).html(\"\".concat(window.statsStrings['NoData'], \"\"));\n } else {\n options.yaxis = [{\n forceNiceScale: false,\n labels: {\n formatter: function formatter(val) {\n return myThis.helper.ToPercent(val);\n }\n }\n }];\n if (!myThis.apexCharts[containerId]) {\n $(\"#\" + containerId).html('');\n myThis.apexCharts[containerId] = new ApexCharts(document.querySelector(\"#\" + containerId), options);\n myThis.apexCharts[containerId].render();\n } else {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = new ApexCharts(document.querySelector(\"#\" + containerId), options);\n myThis.apexCharts[containerId].render();\n }\n }\n },\n error: function error(xhr, statusText) {\n if (xhr.status == 423) {\n if (myThis.apexCharts[containerId]) {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = null;\n }\n $(\"#\" + containerId).html(\"\");\n }\n }\n });\n }\n }, {\n key: \"DrawProfileDrawdownChart\",\n value: function DrawProfileDrawdownChart(containerId, chartParams) {\n var myThis = this;\n var customParams = myThis.customOptions;\n var sendParams = _objectSpread(_objectSpread({}, chartParams), customParams);\n window.APIHelper.SafeServiceAPICall({\n url: myThis.Url('ProfileDrawdownChartLink') + '?AisAccountId=' + myThis.aisAccountId,\n type: \"GET\",\n data: sendParams,\n traditional: true,\n success: function success(res) {\n $('.chart-spinner').hide();\n var options = myThis.GetDefaultChartOption('line', 'datetime', res);\n if (options == null) {\n if (myThis.apexCharts[containerId]) {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = null;\n }\n $(\"#\" + containerId).html(\"\".concat(window.statsStrings['NoData'], \"\"));\n } else {\n if (chartParams[\"UnitType\"].toLowerCase() != \"percent\") {\n options.yaxis = {\n forceNiceScale: false,\n labels: {\n formatter: function formatter(val) {\n return myThis.helper.ToChartMoney(val);\n }\n }\n };\n } else {\n options.yaxis = {\n forceNiceScale: false,\n labels: {\n formatter: function formatter(value) {\n return myThis.helper.ToPercent(value);\n }\n }\n };\n }\n if (!myThis.apexCharts[containerId]) {\n $(\"#\" + containerId).html('');\n myThis.apexCharts[containerId] = new ApexCharts(document.querySelector(\"#\" + containerId), options);\n myThis.apexCharts[containerId].render();\n } else {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = new ApexCharts(document.querySelector(\"#\" + containerId), options);\n myThis.apexCharts[containerId].render();\n }\n }\n },\n error: function error(xhr, statusText) {\n if (xhr.status == 423) {\n if (myThis.apexCharts[containerId]) {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = null;\n }\n $(\"#\" + containerId).html(\"\");\n }\n }\n });\n }\n }, {\n key: \"DrawProfileBalanceChart\",\n value: function DrawProfileBalanceChart(containerId, chartParams) {\n var myThis = this;\n var customParams = this.customOptions;\n var sendParams = _objectSpread(_objectSpread({}, chartParams), customParams);\n window.APIHelper.SafeServiceAPICall({\n url: myThis.Url('ProfileBalanceChartLink') + '?AisAccountId=' + myThis.aisAccountId,\n type: \"GET\",\n data: sendParams,\n traditional: true,\n success: function success(res) {\n $('.chart-spinner').hide();\n var options = myThis.GetDefaultChartOption('line', 'datetime', res);\n if (options == null) {\n if (myThis.apexCharts[containerId]) {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = null;\n }\n $(\"#\" + containerId).html(\"\".concat(window.statsStrings['NoData'], \"\"));\n } else {\n options.yaxis = [{\n forceNiceScale: false,\n labels: {\n formatter: function formatter(val) {\n return myThis.helper.ToChartMoney(val);\n }\n }\n }];\n if (!myThis.apexCharts[containerId]) {\n $(\"#\" + containerId).html('');\n myThis.apexCharts[containerId] = new ApexCharts(document.querySelector(\"#\" + containerId), options);\n myThis.apexCharts[containerId].render();\n } else {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = new ApexCharts(document.querySelector(\"#\" + containerId), options);\n myThis.apexCharts[containerId].render();\n }\n }\n },\n error: function error(xhr, statusText) {\n if (xhr.status == 423) {\n if (myThis.apexCharts[containerId]) {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = null;\n }\n $(\"#\" + containerId).html(\"\");\n }\n }\n });\n }\n }, {\n key: \"DrawProfileGrowthChart\",\n value: function DrawProfileGrowthChart(containerId, chartParams) {\n var myThis = this;\n var customParams = this.customOptions;\n var sendParams = _objectSpread(_objectSpread({}, chartParams), customParams);\n window.APIHelper.SafeServiceAPICall({\n url: myThis.Url('ProfileGrowthChartLink') + '?AisAccountId=' + myThis.aisAccountId,\n type: \"GET\",\n data: sendParams,\n traditional: true,\n success: function success(res) {\n $('.chart-spinner').hide();\n var options = myThis.GetDefaultChartOption('line', 'datetime', res);\n if (options == null) {\n if (myThis.apexCharts[containerId]) {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = null;\n }\n $(\"#\" + containerId).html(\"\".concat(window.statsStrings['NoData'], \"\"));\n } else {\n options.yaxis = {\n forceNiceScale: false,\n labels: {\n formatter: function formatter(value) {\n return myThis.helper.ToPercent(value);\n }\n }\n };\n if (!myThis.apexCharts[containerId]) {\n $(\"#\" + containerId).html('');\n myThis.apexCharts[containerId] = new ApexCharts(document.querySelector(\"#\" + containerId), options);\n myThis.apexCharts[containerId].render();\n } else {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = new ApexCharts(document.querySelector(\"#\" + containerId), options);\n myThis.apexCharts[containerId].render();\n }\n }\n },\n error: function error(xhr, statusText) {\n if (xhr.status == 423) {\n if (myThis.apexCharts[containerId]) {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = null;\n }\n $(\"#\" + containerId).html(\"\");\n }\n }\n });\n }\n }, {\n key: \"DrawProfileMonthlyChart\",\n value: function DrawProfileMonthlyChart(containerId, chartParams) {\n var myThis = this;\n var customParams = this.customOptions;\n var sendParams = _objectSpread(_objectSpread({}, chartParams), customParams);\n window.APIHelper.SafeServiceAPICall({\n url: myThis.Url('ProfileMonthlyChartLink') + '?AisAccountId=' + myThis.aisAccountId,\n type: \"GET\",\n data: sendParams,\n traditional: true,\n success: function success(res) {\n $('.chart-spinner').hide();\n var options = myThis.GetDefaultChartOption('line', 'category', res);\n if (options == null) {\n if (myThis.apexCharts[containerId]) {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = null;\n }\n $(\"#\" + containerId).html(\"\".concat(window.statsStrings['NoData'], \"\"));\n } else {\n if (chartParams[\"UnitType\"].toLowerCase().includes(\"percent\")) {\n options.yaxis = {\n forceNiceScale: false,\n labels: {\n formatter: function formatter(value) {\n return myThis.helper.ToPercent(value);\n }\n }\n };\n } else {\n options.yaxis = {\n forceNiceScale: false,\n labels: {\n formatter: function formatter(val) {\n return myThis.helper.ToChartMoney(val);\n }\n }\n };\n }\n if (!myThis.apexCharts[containerId]) {\n $(\"#\" + containerId).html('');\n myThis.apexCharts[containerId] = new ApexCharts(document.querySelector(\"#\" + containerId), options);\n myThis.apexCharts[containerId].render();\n } else {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = new ApexCharts(document.querySelector(\"#\" + containerId), options);\n myThis.apexCharts[containerId].render();\n }\n }\n },\n error: function error(xhr, statusText) {\n if (xhr.status == 423) {\n if (myThis.apexCharts[containerId]) {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = null;\n }\n $(\"#\" + containerId).html(\"\");\n }\n }\n });\n }\n }, {\n key: \"DrawAdvancedPeriodChart\",\n value: function DrawAdvancedPeriodChart(containerId, period, chartParams) {\n var myThis = this;\n var customParams = this.customOptions;\n var sendParams = _objectSpread(_objectSpread({}, chartParams), customParams);\n window.APIHelper.SafeServiceAPICall({\n url: myThis.Url('ProfileAdvancedPeriodChartLink') + '?AisAccountId=' + myThis.aisAccountId + '&period=' + period,\n type: \"GET\",\n data: sendParams,\n traditional: true,\n success: function success(res) {\n $('.chart-spinner').hide();\n var options = myThis.GetDefaultChartOption('line', 'category', res);\n if (options == null) {\n if (myThis.apexCharts[containerId]) {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = null;\n }\n $(\"#\" + containerId).html(\"\".concat(window.statsStrings['NoData'], \"\"));\n } else {\n if (chartParams[\"VsType\"] == \"winvslos\" || chartParams[\"VsType\"] == \"longvsshort\") {\n options.yaxis = {\n forceNiceScale: false,\n labels: {\n formatter: function formatter(value) {\n return value.toFixed(0);\n }\n }\n };\n } else {\n if (chartParams[\"UnitType\"] == \"gain\") {\n options.yaxis = {\n forceNiceScale: false,\n labels: {\n formatter: function formatter(value) {\n return myThis.helper.ToPercent(value);\n }\n }\n };\n } else {\n options.yaxis = {\n forceNiceScale: false,\n labels: {\n formatter: function formatter(val) {\n return myThis.helper.ToChartMoney(val);\n }\n }\n };\n }\n }\n if (!myThis.apexCharts[containerId]) {\n $(\"#\" + containerId).html('');\n myThis.apexCharts[containerId] = new ApexCharts(document.querySelector(\"#\" + containerId), options);\n myThis.apexCharts[containerId].render();\n } else {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = new ApexCharts(document.querySelector(\"#\" + containerId), options);\n myThis.apexCharts[containerId].render();\n }\n }\n },\n error: function error(xhr, statusText) {\n if (xhr.status == 423) {\n if (myThis.apexCharts[containerId]) {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = null;\n }\n $(\"#\" + containerId).html(\"\");\n }\n }\n });\n }\n }, {\n key: \"DrawAdvancedDurationChart\",\n value: function DrawAdvancedDurationChart(containerId, chartParams) {\n var myThis = this;\n var customParams = this.customOptions;\n var sendParams = _objectSpread(_objectSpread({}, chartParams), customParams);\n window.APIHelper.SafeServiceAPICall({\n url: myThis.Url('ProfileAdvancedDurationChartLink') + '?AisAccountId=' + myThis.aisAccountId + '&tradescount=' + 200,\n type: \"GET\",\n data: sendParams,\n traditional: true,\n success: function success(res) {\n $('.chart-spinner').hide();\n var options = myThis.GetDefaultChartOption('scatter', 'category', res);\n if (options == null) {\n if (myThis.apexCharts[containerId]) {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = null;\n }\n $(\"#\" + containerId).html(\"\".concat(window.statsStrings['NoData'], \"\"));\n } else {\n options.markers = {};\n options.xaxis = {\n labels: {\n formatter: function formatter(value) {\n var d = value / 24;\n if (value < 24) return value.toFixed(0) + \"h\";else return d - d % 1 + \"d \" + (value % 24).toFixed(0) + \" h\";\n }\n },\n tickAmount: 20\n };\n if (chartParams[\"UnitType\"].toLowerCase() == \"growth\") {\n options.yaxis = {\n labels: {\n formatter: function formatter(val) {\n return myThis.helper.ToPercent(val);\n }\n }\n };\n } else {\n options.yaxis = {\n labels: {\n formatter: function formatter(val) {\n return myThis.helper.ToChartMoney(val);\n }\n }\n };\n }\n if (!myThis.apexCharts[containerId]) {\n $(\"#\" + containerId).html('');\n myThis.apexCharts[containerId] = new ApexCharts(document.querySelector(\"#\" + containerId), options);\n myThis.apexCharts[containerId].render();\n } else {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = new ApexCharts(document.querySelector(\"#\" + containerId), options);\n myThis.apexCharts[containerId].render();\n }\n }\n },\n error: function error(xhr, statusText) {\n if (xhr.status == 423) {\n if (myThis.apexCharts[containerId]) {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = null;\n }\n $(\"#\" + containerId).html(\"\");\n }\n }\n });\n }\n }, {\n key: \"DrawAdvancedMAEMFEChart\",\n value: function DrawAdvancedMAEMFEChart(containerId, chartParams) {\n var myThis = this;\n var customParams = this.customOptions;\n var sendParams = _objectSpread(_objectSpread({}, chartParams), customParams);\n window.APIHelper.SafeServiceAPICall({\n url: myThis.Url('ProfileAdvancedMAEMFEChartLink') + '?AisAccountId=' + myThis.aisAccountId + '&tradescount=' + 200,\n type: \"GET\",\n data: sendParams,\n traditional: true,\n success: function success(res) {\n $('.chart-spinner').hide();\n var options = myThis.GetDefaultChartOption('scatter', 'category', res);\n if (options == null) {\n if (myThis.apexCharts[containerId]) {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = null;\n }\n $(\"#\" + containerId).html(\"\".concat(window.statsStrings['NoData'], \"\"));\n } else {\n options.markers = {};\n if (chartParams[\"UnitType\"] == \"gain\") {\n options.yaxis = {\n labels: {\n formatter: function formatter(val) {\n return myThis.helper.ToPercent(val);\n }\n }\n };\n options.xaxis = {\n labels: {\n formatter: function formatter(val) {\n return myThis.helper.ToPercent(val);\n }\n },\n tickAmount: 20\n };\n } else {\n options.yaxis = {\n labels: {\n formatter: function formatter(val) {\n return myThis.helper.ToChartMoney(val);\n }\n }\n };\n options.xaxis = {\n labels: {\n formatter: function formatter(val) {\n return myThis.helper.ToChartMoney(val);\n }\n },\n tickAmount: 20\n };\n }\n if (!myThis.apexCharts[containerId]) {\n $(\"#\" + containerId).html('');\n myThis.apexCharts[containerId] = new ApexCharts(document.querySelector(\"#\" + containerId), options);\n myThis.apexCharts[containerId].render();\n } else {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = new ApexCharts(document.querySelector(\"#\" + containerId), options);\n myThis.apexCharts[containerId].render();\n }\n }\n },\n error: function error(xhr, statusText) {\n if (xhr.status == 423) {\n if (myThis.apexCharts[containerId]) {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = null;\n }\n $(\"#\" + containerId).html(\"\");\n }\n }\n });\n }\n }, {\n key: \"DrawMonthlyAnalyticsChart\",\n value: function DrawMonthlyAnalyticsChart(containerId, type, year, updateDetail) {\n var myThis = this;\n var profitType = 'equity';\n var customParams = this.customOptions;\n window.APIHelper.SafeServiceAPICall({\n url: myThis.Url('ProfileMonthlyAnalyticsLink') + '?AisAccountId=' + myThis.aisAccountId,\n data: _objectSpread({\n UnitType: type,\n year: year,\n profitType: profitType\n }, customParams),\n type: \"GET\",\n traditional: true,\n success: function success(res) {\n $('.chart-spinner').hide();\n var html = '';\n for (var i = 0; i < res.years.length; i++) {\n if (res.years[i] == year) {\n html += '
  • ' + res.years[i] + '
  • ';\n } else {\n html += '
  • ' + res.years[i] + '
  • ';\n }\n }\n $(\"#monthly-analytics-tablist\").html(html);\n var options = myThis.GetDefaultChartOption('bar', 'category', res);\n if (options == null) {\n if (myThis.apexCharts[containerId]) {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = null;\n }\n $(\"#\" + containerId).html(\"\".concat(window.statsStrings['NoData'], \"\"));\n } else {\n options.chart.events = {\n click: function click(event, chartContext, config) {\n if (config.dataPointIndex >= 0) {\n console.log(config.config.xaxis.categories[config.dataPointIndex]);\n myThis.DrawMonthlyAnalyticsDetailCharts(config.config.xaxis.categories[config.dataPointIndex]);\n }\n }\n };\n if (type != \"percent\") {\n options.yaxis = {\n forceNiceScale: false,\n labels: {\n formatter: function formatter(val) {\n return myThis.helper.ToChartMoney(val);\n }\n }\n };\n } else {\n options.yaxis = {\n forceNiceScale: false,\n labels: {\n formatter: function formatter(value) {\n return myThis.helper.ToPercent(value);\n }\n }\n };\n }\n if (!myThis.apexCharts[containerId]) {\n $(\"#\" + containerId).html('');\n myThis.apexCharts[containerId] = new ApexCharts(document.querySelector(\"#\" + containerId), options);\n myThis.apexCharts[containerId].render();\n } else {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = new ApexCharts(document.querySelector(\"#\" + containerId), options);\n myThis.apexCharts[containerId].render();\n }\n }\n if (updateDetail) {\n if (myThis.apexCharts['monthly-analytics-reward-chart']) {\n myThis.apexCharts['monthly-analytics-reward-chart'].destroy();\n myThis.apexCharts['monthly-analytics-reward-chart'] = null;\n }\n if (myThis.apexCharts['monthly-analytics-currencies-chart']) {\n myThis.apexCharts['monthly-analytics-currencies-chart'].destroy();\n myThis.apexCharts['monthly-analytics-currencies-chart'] = null;\n }\n if (myThis.apexCharts['monthly-analytics-avgholding-chart']) {\n myThis.apexCharts['monthly-analytics-avgholding-chart'].destroy();\n myThis.apexCharts['monthly-analytics-avgholding-chart'] = null;\n }\n $(\"#monthly-analytics-reward-chart\").html(\"\".concat(window.statsStrings['PleaseSelectAMonth'], \"\"));\n $(\"#monthly-analytics-reward-chart\").parent().find('div.resize-triggers').remove();\n $(\"#monthly-analytics-currencies-chart\").html(\"\".concat(window.statsStrings['PleaseSelectAMonth'], \"\"));\n $(\"#monthly-analytics-currencies-chart\").parent().find('div.resize-triggers').remove();\n $(\"#monthly-analytics-avgholding-chart\").html(\"\".concat(window.statsStrings['PleaseSelectAMonth'], \"\"));\n $(\"#monthly-analytics-avgholding-chart\").parent().find('div.resize-triggers').remove();\n }\n },\n error: function error(xhr, statusText) {\n if (xhr.status == 423) {\n if (myThis.apexCharts[containerId]) {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = null;\n }\n $(\"#\" + containerId).html(\"\");\n }\n }\n });\n }\n }, {\n key: \"DrawMonthlyAnalyticsDetailCharts\",\n value: function DrawMonthlyAnalyticsDetailCharts(month) {\n var myThis = this;\n var profitType = 'equity';\n var customParams = this.customOptions;\n window.APIHelper.SafeServiceAPICall({\n url: myThis.Url('ProfileMonthlyAnalyticsDetailLink') + '?AisAccountId=' + myThis.aisAccountId + '&month=' + month + '&profitType=' + profitType,\n type: \"GET\",\n data: customParams,\n traditional: true,\n success: function success(res) {\n $('.chart-spinner').hide();\n var options = myThis.GetDefaultChartOption('bar', 'category', res.rewardChart);\n options.chart.stacked = true;\n options.plotOptions = {\n bar: {\n horizontal: true\n }\n };\n document.querySelector(\"#monthly-analytics-reward-chart\").innerHTML = '';\n if (!myThis.apexCharts['monthly-analytics-reward-chart']) {\n myThis.apexCharts['monthly-analytics-reward-chart'] = new ApexCharts(document.querySelector(\"#monthly-analytics-reward-chart\"), options);\n myThis.apexCharts['monthly-analytics-reward-chart'].render();\n } else {\n myThis.apexCharts['monthly-analytics-reward-chart'].destroy();\n myThis.apexCharts['monthly-analytics-reward-chart'] = new ApexCharts(document.querySelector(\"#monthly-analytics-reward-chart\"), options);\n myThis.apexCharts['monthly-analytics-reward-chart'].render();\n }\n var currenciesOptions = {\n chart: {\n type: 'pie',\n height: '100%',\n foreColor: 'rgba(255, 255, 255, 0.7)',\n background: 'transparent',\n stacked: true\n },\n series: res.currenciesPopularityChart.series[0].data,\n labels: res.currenciesPopularityChart.categories\n };\n document.querySelector(\"#monthly-analytics-currencies-chart\").innerHTML = '';\n if (!myThis.apexCharts['monthly-analytics-currencies-chart']) {\n myThis.apexCharts['monthly-analytics-currencies-chart'] = new ApexCharts(document.querySelector(\"#monthly-analytics-currencies-chart\"), currenciesOptions);\n myThis.apexCharts['monthly-analytics-currencies-chart'].render();\n } else {\n myThis.apexCharts['monthly-analytics-currencies-chart'].destroy();\n myThis.apexCharts['monthly-analytics-currencies-chart'] = new ApexCharts(document.querySelector(\"#monthly-analytics-currencies-chart\"), currenciesOptions);\n myThis.apexCharts['monthly-analytics-currencies-chart'].render();\n }\n var holidingTimeOptions = myThis.GetDefaultChartOption('bar', 'category', res.averageHoldingTimeChart);\n holidingTimeOptions.chart.stacked = true;\n holidingTimeOptions.xaxis = {\n labels: {\n formatter: function formatter(value) {\n var d = value / 24;\n if (value < 24) return value.toFixed(0) + \"h\";else return d - d % 1 + \"d \" + (value % 24).toFixed(0) + \" h\";\n }\n },\n categories: res.averageHoldingTimeChart.categories\n };\n holidingTimeOptions.tooltip = {\n y: {\n formatter: function formatter(value) {\n var d = value / 24;\n if (value < 24) return value.toFixed(0) + \"h\";else return d - d % 1 + \"d \" + (value % 24).toFixed(0) + \" h\";\n }\n }\n };\n holidingTimeOptions.dataLabels = {\n enabled: false\n };\n holidingTimeOptions.plotOptions = {\n bar: {\n horizontal: true\n }\n };\n document.querySelector(\"#monthly-analytics-avgholding-chart\").innerHTML = '';\n if (!myThis.apexCharts['monthly-analytics-avgholding-chart']) {\n myThis.apexCharts['monthly-analytics-avgholding-chart'] = new ApexCharts(document.querySelector(\"#monthly-analytics-avgholding-chart\"), holidingTimeOptions);\n myThis.apexCharts['monthly-analytics-avgholding-chart'].render();\n } else {\n myThis.apexCharts['monthly-analytics-avgholding-chart'].destroy();\n myThis.apexCharts['monthly-analytics-avgholding-chart'] = new ApexCharts(document.querySelector(\"#monthly-analytics-avgholding-chart\"), holidingTimeOptions);\n myThis.apexCharts['monthly-analytics-avgholding-chart'].render();\n }\n },\n error: function error(xhr, statusText) {\n if (xhr.status == 423) {\n if (myThis.apexCharts[containerId]) {\n myThis.apexCharts[containerId].destroy();\n myThis.apexCharts[containerId] = null;\n }\n $(\"#\" + containerId).html(\"\");\n }\n }\n });\n }\n }, {\n key: \"InitializeTradingActivityTable\",\n value: function InitializeTradingActivityTable(selector, dataSourceLink) {\n var myThis = this;\n var container = $(selector).pagination({\n dataSource: dataSourceLink + \"?aisAccountId=\" + myThis.aisAccountId,\n ajaxFunction: function ajaxFunction(t) {\n return window.APIHelper.SafeServiceAPICall(t);\n },\n locator: 'items',\n pageSize: 20,\n pageRange: 1,\n totalNumberLocator: function totalNumberLocator(response) {\n return response.totalCount;\n },\n ajax: {\n data: myThis.customOptions,\n traditional: true,\n beforeSend: function beforeSend(jqXHR, settings) {\n if (myThis.tradingActivitySortParam[selector] != undefined) {\n settings.url += '&sortParam=' + myThis.tradingActivitySortParam[selector].sortParam + '&sortOrder=' + myThis.tradingActivitySortParam[selector].sortOrder;\n }\n return true;\n }\n },\n formatAjaxError: function formatAjaxError(jqXHR, textStatus, errorThrown) {\n var $this = this;\n if (jqXHR.status == 401) {\n window.APIHelper.GetAccessTokenAsync().then(function () {\n $(selector).pagination($this.pageNumber);\n });\n } else if (jqXHR.status == 423) {\n $(selector).html(\"
    \");\n }\n if (selector == \"#trading-activity-excluded\") {\n $(\"a[href='\".concat(selector, \"']\")).hide();\n }\n },\n callback: function callback(data, pagination) {\n if (selector == \"#trading-activity-excluded\") {\n if (data.length == 0) $(\"a[href='\".concat(selector, \"']\")).hide();else $(\"a[href='\".concat(selector, \"']\")).show();\n }\n if (data.length == 0) {\n $(selector).html(\"
    \".concat(window.statsStrings['NoData'], \"
    \"));\n } else {\n var sortParam = \"closeTime\",\n sortOrder = \"desc\";\n if (!!myThis.tradingActivitySortParam[selector]) {\n sortParam = myThis.tradingActivitySortParam[selector].sortParam;\n sortOrder = myThis.tradingActivitySortParam[selector].sortOrder.toLowerCase();\n }\n var html = '';\n var header = '';\n if (sortParam == \"openTime\") header += \"\");else header += \"\");\n if (selector == '#trading-activity-history' || selector == \"#trading-activity-excluded\") {\n if (sortParam == \"closeTime\") header += \"\");else header += \"\");\n }\n if (sortParam == \"symbol\") header += \"\");else header += \"\");\n if (sortParam == \"type\") header += \"\");else header += \"\");\n if (sortParam == \"lots\") header += \"\");else header += \"\");\n if (sortParam == \"openPrice\") header += \"\");else header += \"\");\n var closePriceLabel = window.statsStrings['ClosePrice'];\n if (selector == '#trading-activity-open-trades' || selector == \"#trading-activity-open-orders\") {\n closePriceLabel = window.statsStrings['CurrentPrice'];\n }\n if (sortParam == \"closePrice\") header += \"\");else header += \"\");\n if (sortParam == \"stopLoss\") header += \"\");else header += \"\");\n if (sortParam == \"takeProfit\") header += \"\");else header += \"\");\n if (sortParam == \"pips\") header += \"\");else header += \"\");\n header += \"\");\n header += \"\");\n if (sortParam == \"profit\") header += \"\");else header += \"\");\n if (sortParam == \"duration\") header += \"\");else header += \"\");\n if (sortParam == \"gain\") header += \"\");else header += \"\");\n header += \"\");\n header += '';\n html += header;\n var curDate = new Date(new Date().getTime() + myThis.timeOffset * 60 * 1000);\n for (var i = 0; i < data.length; i++) {\n var row = '';\n row += '';\n if (selector == '#trading-activity-history' || selector == \"#trading-activity-excluded\") {\n row += '';\n }\n row += '';\n row += '';\n row += '';\n row += '';\n row += '';\n if (data[i].stopLoss == 0) row += '';else row += '';\n if (data[i].takeProfit == 0) row += '';else row += '';\n if (data[i].type == \"Balance\" || data[i].type == \"Credit\") {\n row += '';\n } else {\n row += '';\n }\n row += '';\n row += '';\n row += '';\n if (selector == '#trading-activity-history' || selector == \"#trading-activity-excluded\") {\n row += '';\n } else {\n row += '';\n }\n row += '';\n if (data[i].comment) {\n row += '';\n } else {\n row += '';\n }\n row += '';\n html += row;\n }\n html += '
    \").concat(window.statsStrings['OpenDate'], \"\").concat(window.statsStrings['OpenDate'], \"\").concat(window.statsStrings['CloseDate'], \"\").concat(window.statsStrings['CloseDate'], \"\").concat(window.statsStrings['Symbol'], \"\").concat(window.statsStrings['Symbol'], \"\").concat(window.statsStrings['Action'], \"\").concat(window.statsStrings['Action'], \"\").concat(window.statsStrings['Volume'], \"\").concat(window.statsStrings['Volume'], \"\").concat(window.statsStrings['OpenPrice'], \"\").concat(window.statsStrings['OpenPrice'], \"\").concat(closePriceLabel, \"\").concat(closePriceLabel, \"SLSLTPTP\").concat(window.statsStrings['Pips'], \"\").concat(window.statsStrings['Pips'], \"\").concat(window.statsStrings['Swap'], \"\").concat(window.statsStrings['Commission'], \"\").concat(window.statsStrings['Profit'], \"\").concat(window.statsStrings['Profit'], \"\").concat(window.statsStrings['Duration'], \"\").concat(window.statsStrings['Duration'], \"\").concat(window.statsStrings['ProfitPercent'], \"\").concat(window.statsStrings['ProfitPercent'], \"\").concat(window.statsStrings['Comment'], \"
    ' + myThis.helper.ToLongDate(data[i].openTime, 'UTC') + '' + myThis.helper.ToLongDate(data[i].closeTime, 'UTC') + '' + data[i].symbol + '' + window.statsStrings[data[i].type] + '' + myThis.helper.ToDecimal(data[i].lots) + '' + myThis.helper.ToDigitsDecimal(data[i].openPrice, data[i].digits) + '' + myThis.helper.ToDigitsDecimal(data[i].closePrice, data[i].digits) + '-' + myThis.helper.ToDigitsDecimal(data[i].stopLoss, data[i].digits) + '-' + myThis.helper.ToDigitsDecimal(data[i].takeProfit, data[i].digits) + '' + myThis.helper.ToDecimal(data[i].pips, true) + '' + myThis.helper.ToDecimal(data[i].swap) + '' + myThis.helper.ToDecimal(data[i].commission) + '' + myThis.helper.ToDecimal(data[i].profit + data[i].swap + data[i].commission, true) + '' + myThis.helper.GetDuraction(data[i].openTime, data[i].closeTime) + '' + myThis.helper.GetDuraction(data[i].openTime, curDate) + '' + myThis.helper.ToPercent(data[i].gain) + '' + data[i].comment + '
    ';\n $(selector + \" .section-tab-body\").html(html);\n InitializeScrollTable(selector + \" .section-tab-body table\");\n }\n }\n });\n container.addHook('beforePaging', function () {\n window.APIHelper.GetAccessTokenAsync();\n });\n }\n }, {\n key: \"DrawAdvancedStatSummaryChart\",\n value: function DrawAdvancedStatSummaryChart(symbol) {\n var myThis = this;\n var type = $(\"input[name=advanced-summary-chart-type-\".concat(symbol, \"]:checked\")).val();\n var profitType = 'equity';\n var customParams = this.customOptions;\n window.APIHelper.SafeServiceAPICall({\n url: myThis.Url('ProfileAdvancedSummaryChartLink') + '?AisAccountId=' + myThis.aisAccountId + '&Symbol=' + symbol + '&UnitType=' + type + '&profitType=' + profitType,\n type: \"GET\",\n data: customParams,\n success: function success(res) {\n var options = myThis.GetDefaultChartOption('line', 'datetime', res);\n if (options == null) {\n $('#advanced-stats-summary-tab tr[data-id=\"' + myThis.aisAccountId + '-' + symbol + '\"] td div.advanced-summary-chart').html('No data');\n } else {\n options.stroke = {\n width: [2, 2, 0]\n };\n options.yaxis = {\n forceNiceScale: false,\n labels: {\n formatter: function formatter(val) {\n return myThis.helper.ToChartMoney(val);\n }\n }\n };\n if (myThis.apexCharts[\"symbol-summary-chart-\".concat(symbol)]) {\n myThis.apexCharts[\"symbol-summary-chart-\".concat(symbol)].destroy();\n }\n $('#advanced-stats-summary-tab tr[data-id=\"' + myThis.aisAccountId + '-' + symbol + '\"] td div.advanced-summary-chart').html('');\n myThis.apexCharts[\"symbol-summary-chart-\".concat(symbol)] = new ApexCharts(document.querySelector('#advanced-stats-summary-tab tr[data-id=\"' + myThis.aisAccountId + '-' + symbol + '\"] td div.advanced-summary-chart'), options);\n myThis.apexCharts[\"symbol-summary-chart-\".concat(symbol)].render();\n }\n },\n error: function error(xhr, statusText) {\n if (xhr.status == 423) {\n $('#advanced-stats-summary-tab tr[data-id=\"' + myThis.aisAccountId + '-' + symbol + '\"] td div.advanced-summary-chart').html('');\n }\n }\n });\n }\n }, {\n key: \"DrawSummaryChart\",\n value: function DrawSummaryChart($el, chart) {\n var myThis = this;\n $('#statistics-charts-dropdown-menu li[data-trigger=drawchart]').removeClass('active');\n $(\"button.profile-summary-button[data-trigger=drawchart]\").removeClass('active');\n $(\"[data-trigger=drawchart][data-chart=\".concat(chart, \"]\")).addClass('active');\n $(\"#statistics-charts-dropdown-menu a[data-toggle=dropdown]\").html($('#statistics-charts-dropdown-menu ul li[data-chart=' + chart + ']').html());\n if ($el.hasClass(\"profile-summary-button\")) {\n if (window.matchMedia('screen and (max-width: 767px)').matches) {\n $('html, body').animate({\n scrollTop: $('.profile-summary .profile-chart-box').offset().top - 64\n }, 100);\n }\n }\n if (myThis.currentChart == chart) return;\n myThis.currentChart = chart;\n myThis.InitializeSummaryChartOptions(chart);\n myThis.InitializePermission();\n var chartParams = {};\n chartParams[\"ProfitType\"] = 'equity';\n $('.chart-spinner').show();\n switch (chart) {\n case 'equity':\n myThis.DrawProfileEquityChart('profile-summary-chart');\n break;\n case 'profit':\n myThis.DrawProfileProfitChart('profile-summary-chart');\n break;\n case 'closed-profit':\n chartParams[\"ProfitType\"] = \"balance\";\n myThis.DrawProfileProfitChart('profile-summary-chart', chartParams);\n break;\n case 'open-profit':\n myThis.DrawProfileOpenProfitChart('profile-summary-chart', chartParams);\n break;\n case 'balance':\n chartParams[\"UnitType\"] = \"lots\";\n myThis.DrawProfileBalanceChart('profile-summary-chart', chartParams);\n break;\n case 'open-profit-percent':\n myThis.DrawProfileOpenProfitPercentChart('profile-summary-chart');\n break;\n case 'profit-percent':\n chartParams[\"ProfitType\"] = \"equity\";\n myThis.DrawProfileGrowthChart('profile-summary-chart', chartParams);\n break;\n case 'closed-profit-percent':\n chartParams[\"ProfitType\"] = \"balance\";\n myThis.DrawProfileGrowthChart('profile-summary-chart', chartParams);\n break;\n case 'profit-percent-twr':\n chartParams[\"ProfitType\"] = \"equity-twr\";\n myThis.DrawProfileGrowthChart('profile-summary-chart', chartParams);\n break;\n case 'closed-profit-percent-twr':\n chartParams[\"ProfitType\"] = \"balance-twr\";\n myThis.DrawProfileGrowthChart('profile-summary-chart', chartParams);\n break;\n case 'drawdown':\n chartParams[\"UnitType\"] = \"percent\";\n myThis.DrawProfileDrawdownChart('profile-summary-chart', chartParams);\n break;\n case 'monthly-profit':\n chartParams[\"ProfitType\"] = 'equity';\n chartParams[\"UnitType\"] = \"percent\";\n myThis.DrawProfileMonthlyChart('profile-summary-chart', chartParams);\n break;\n case 'monthly-profit-twr':\n chartParams[\"ProfitType\"] = 'equity';\n chartParams[\"UnitType\"] = \"percent-twr\";\n myThis.DrawProfileMonthlyChart('profile-summary-chart', chartParams);\n break;\n case 'closed-monthly-profit':\n chartParams[\"ProfitType\"] = \"balance\";\n chartParams[\"UnitType\"] = \"percent\";\n myThis.DrawProfileMonthlyChart('profile-summary-chart', chartParams);\n break;\n case 'closed-monthly-profit-twr':\n chartParams[\"ProfitType\"] = \"balance\";\n chartParams[\"UnitType\"] = \"percent-twr\";\n myThis.DrawProfileMonthlyChart('profile-summary-chart', chartParams);\n break;\n case 'advanced-hourly':\n chartParams[\"VsType\"] = \"winvslos\";\n myThis.DrawAdvancedPeriodChart(\"profile-summary-chart\", 0, chartParams);\n break;\n case 'advanced-daily':\n chartParams[\"VsType\"] = \"winvslos\";\n myThis.DrawAdvancedPeriodChart(\"profile-summary-chart\", 1, chartParams);\n break;\n case 'advanced-duration':\n chartParams[\"UnitType\"] = \"percent\";\n myThis.DrawAdvancedDurationChart(\"profile-summary-chart\", chartParams);\n break;\n case 'advanced-maemfe':\n chartParams['VsType'] = 'maevsoutcome';\n chartParams['UnitType'] = 'pips';\n myThis.DrawAdvancedMAEMFEChart(\"profile-summary-chart\", chartParams);\n break;\n }\n }\n }, {\n key: \"UpdateSummaryChart\",\n value: function UpdateSummaryChart() {\n var myThis = this;\n var chartParams = {};\n $(\"#profile-summary-chart-options input:checked\").each(function () {\n chartParams[this.name] = this.value;\n });\n var profitType = 'equity';\n chartParams[\"ProfitType\"] = profitType;\n if (myThis.currentChart == \"advanced-hourly\" || myThis.currentChart == \"advanced-daily\") {\n if (chartParams[\"VsType\"] == 'winvslos' || chartParams[\"VsType\"] == 'longvsshort') {\n $(\"#profile-summary-chart-options input[name=UnitType]\").attr(\"disabled\", true);\n chartParams[\"UnitType\"] = undefined;\n } else {\n $(\"#profile-summary-chart-options input[name=UnitType]\").removeAttr(\"disabled\");\n myThis.InitializePermission();\n }\n }\n switch (myThis.currentChart) {\n case 'equity':\n myThis.DrawProfileEquityChart('profile-summary-chart');\n break;\n case 'profit':\n myThis.DrawProfileProfitChart('profile-summary-chart');\n break;\n case 'closed-profit':\n chartParams[\"ProfitType\"] = \"balance\";\n myThis.DrawProfileProfitChart('profile-summary-chart');\n break;\n case 'open-profit':\n myThis.DrawProfileOpenProfitChart('profile-summary-chart');\n break;\n case 'balance':\n myThis.DrawProfileBalanceChart('profile-summary-chart', chartParams);\n break;\n case 'open-profit-percent':\n myThis.DrawProfileOpenProfitPercentChart('profile-summary-chart');\n break;\n case 'profit-percent':\n chartParams[\"ProfitType\"] = \"equity\";\n myThis.DrawProfileGrowthChart('profile-summary-chart', chartParams);\n break;\n case 'closed-profit-percent':\n chartParams[\"ProfitType\"] = \"balance\";\n myThis.DrawProfileGrowthChart('profile-summary-chart', chartParams);\n break;\n case 'profit-percent-twr':\n chartParams[\"ProfitType\"] = \"equity-twr\";\n myThis.DrawProfileGrowthChart('profile-summary-chart', chartParams);\n break;\n case 'closed-profit-percent-twr':\n chartParams[\"ProfitType\"] = \"balance-twr\";\n myThis.DrawProfileGrowthChart('profile-summary-chart', chartParams);\n break;\n case 'drawdown':\n myThis.DrawProfileDrawdownChart('profile-summary-chart', chartParams);\n break;\n case 'monthly-profit':\n case 'monthly-profit-twr':\n chartParams[\"ProfitType\"] = \"equity\";\n myThis.DrawProfileMonthlyChart('profile-summary-chart', chartParams);\n break;\n case 'closed-monthly-profit':\n case 'closed-monthly-profit-twr':\n chartParams[\"ProfitType\"] = \"balance\";\n myThis.DrawProfileMonthlyChart('profile-summary-chart', chartParams);\n break;\n case 'advanced-hourly':\n myThis.DrawAdvancedPeriodChart(\"profile-summary-chart\", 0, chartParams);\n break;\n case 'advanced-daily':\n myThis.DrawAdvancedPeriodChart(\"profile-summary-chart\", 1, chartParams);\n break;\n case 'advanced-duration':\n myThis.DrawAdvancedDurationChart(\"profile-summary-chart\", chartParams);\n break;\n case 'advanced-maemfe':\n myThis.DrawAdvancedMAEMFEChart(\"profile-summary-chart\", chartParams);\n break;\n }\n }\n }, {\n key: \"InitializeSummaryChartOptions\",\n value: function InitializeSummaryChartOptions(chart) {\n $(\"#profile-summary-chart-options\").html(this.chartOptionHtmls[chart] || '');\n }\n }, {\n key: \"ChangeCustomAnalysisOptionContent\",\n value: function ChangeCustomAnalysisOptionContent($el, id) {\n var myThis = this;\n $(\"#custom-analysis-option-list button\").removeClass('active');\n $el.addClass('active');\n $(\"#custom-analysis-option-content\").children().css({\n \"display\": \"none\"\n });\n $(\"#custom-analysis-\" + id).css({\n \"display\": \"block\"\n });\n }\n }]);\n return AISStatistics;\n}();\nvar _default = AISStatistics;\nexports[\"default\"] = _default;\n\n},{\"./AISHelper\":2}],6:[function(require,module,exports){\n'use strict';\n\nvar _AISHelper = _interopRequireDefault(require(\"../../includes/AISHelper.js\"));\nvar _AISStatistics = _interopRequireDefault(require(\"../../includes/AISStatistics.js\"));\nvar _AISPortfolio = _interopRequireDefault(require(\"../../includes/AISPortfolio.js\"));\nvar _AISContest = _interopRequireDefault(require(\"../../includes/AISContest.js\"));\nvar _AISPerformances = _interopRequireDefault(require(\"../../includes/AISPerformances.js\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nwindow.AISHelper = _AISHelper[\"default\"];\nwindow.AISStatistics = _AISStatistics[\"default\"];\nwindow.AISPortfolio = _AISPortfolio[\"default\"];\nwindow.AISContest = _AISContest[\"default\"];\nwindow.AISPerformances = _AISPerformances[\"default\"];\n(function ($) {\n $.fn.shorten = function (settings) {\n var config = {\n showChars: 100,\n ellipsesText: \"...\",\n moreText: \"more\",\n lessText: \"less\"\n };\n if (settings) {\n $.extend(config, settings);\n }\n $(document).off(\"click\", '.morelink');\n $(document).on({\n click: function click() {\n var $this = $(this);\n if ($this.hasClass('less')) {\n $this.removeClass('less');\n $this.html(config.moreText);\n } else {\n $this.addClass('less');\n $this.html(config.lessText);\n }\n $this.parent().prev().toggle();\n $this.prev().toggle();\n return false;\n }\n }, '.morelink');\n return this.each(function () {\n var $this = $(this);\n if ($this.hasClass(\"shortened\")) return;\n $this.addClass(\"shortened\");\n var content = $this.html();\n if (content.length > config.showChars) {\n var c = content.substr(0, config.showChars);\n var h = content.substr(config.showChars, content.length - config.showChars);\n var html = c + '' + config.ellipsesText + ' ' + h + ' ' + config.moreText + '';\n $this.html(html);\n $(\".morecontent span\").hide();\n }\n });\n };\n})(jQuery);\n\n},{\"../../includes/AISContest.js\":1,\"../../includes/AISHelper.js\":2,\"../../includes/AISPerformances.js\":3,\"../../includes/AISPortfolio.js\":4,\"../../includes/AISStatistics.js\":5}]},{},[6]);\n"]}