{"version":3,"sources":["spreads.min.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","prototype","value","ForexBrokerSpreads","spreadsRoot","this","urls","GetBrokerSpreads","SpreadsUpdateHub","selectedSymbols","rawSpreads","standardSpreads","symbols","selectedSpread","brokerId","isCommission","broker","tabName","accountType","symbolId","locale","spreadTypes","name","str","id","symbolName","tab","myThis","$","ajax","url","Url","replace","type","success","res","find","x","spreads","forEach","symbolSpread","push","symbol","removeClass","addClass","css","title","desc","brokerName","window","spreadsString","chargedCommissionAccountType","notChargedCommissionAccountType","description","attr","html","show","UpdateChartBreadcrumb","CURRENT_LANG","CURRENT_CULTURE","InitializeTable","InitializeScrollTable","InitializeTableBody","error","console","log","text","langSlug","replaceWith","lastItem","append","breadcrumbSchema","JSON","parse","Array","isArray","items","@type","position","item","location","href","stringify","on","reload","document","currentTarget","classList","add","history","pushState","b","toLowerCase","includes","val","timeVal","checked","hide","substring","textContent","spreadsConnection","signalR","HubConnectionBuilder","withUrl","configureLogging","LogLevel","Warning","withAutomaticReconnect","build","start","receivingSpreads","receivingMXIds","receivingMNIds","commission","td","usingSpread","children","toLocaleString","maximumFractionDigits","currentSpread","fourHourAverageSpread","oneDayAverageSpread","oneWeekAverageSpread","sydneySessionAverageSpread","tokyoSessionAverageSpread","londonSessionAverageSpread","newyorkSessionAverageSpread","undefined","rawSpread","rawSpreadVal","cbfBrokerId","sp","standardSpread","standardSpreadVal","symbolType","commissionUSD","spread","spreadVal","remove","jQuery","clone","appendTo","width","tooltip","boundary","_default","2","ForexSpreads","jwtToken","tableId","InitialSpreads","initialSymbolNames","initialSelectedSymbols","ids","className","label","selectedBrokers","viewSpreads","brokers","maxSpreads","minSpreads","rebateBrokers","premiumBrokers","superPremiumBrokers","sortedSymbol","order","scrollLeft","scrollTop","scrolling","topScrolling","GetViewSpreads","ShuffleArray","sort","compA","compB","aSpread","bSpread","MakeFixedHeaderVisible","bros","BrokerName","inVal","s","Name","typeSymbol","Type","Id","typeSymbols","filter","spid","findIndex","syid","vspid","vsyid","viewTempSpreads","prevViewTempSpread","prevCommission","prevAvgViewTempSpread","prevAvgCommission","prevViewTempSpreads","prevAvgTempSpreads","nextViewTempSpread","nextCommission","nextAvgViewTempSpread","nextAvgCommission","nextViewTempSpreads","nextAvgTempSpreads","toFixed","currentAvgTempSpreads","typeSpreads","newAvgTempSpread","newAvgCommission","tempsymbolspread","typespreads","reduce","total","next","avgtd","avgId","mxids","mnids","currentIds","currentCommissionIds","fourHourIds","fourHourCommissionIds","oneDayIds","oneDayCommissionIds","oneWeekIds","oneWeekCommissionIds","sydneyIds","sydneyCommissionIds","tokyoIds","tokyoCommissionIds","londonIds","londonCommissionIds","newyorkIds","newyorkCommissionIds","each","match","Number","hasClass","tempSpread","index","tsymbol","tspreads","tempSymbolSpread","array","randomIndex","currentIndex","Math","floor","random","_ref","dir","screen","spreadInfo","logo","link","compSpread","BrokerId","AccountType","tooltipStr","body","CbfBrokerId","TableBodyContent","v","brokerIdStr","split","localStorage","setItem","modal","stickyTop","offset","top","stickyBottom","height","topOffsetElement","getElementById","offsetHeight","3","SymbolSpreads","refresh","APIHelper","SafeServiceAPICall","spreadA","spreadB","toggle","contains","4","_interopRequireDefault","obj","__esModule","default","_ForexSpreads","_ForexBrokerSpreads","_SymbolSpreads","../../includes/ForexBrokerSpreads.js","../../includes/ForexSpreads.js","../../includes/SymbolSpreads.js"],"mappings":"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","file":"../spreads.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\");\n $('#symbol-spreads-link').show();\n }\n } else {\n if (tab == \"Commissions\") {\n $(\"#broker-spread-spread-select\").css('display', 'none');\n $(\"#broker-spread-session-select\").css('display', 'none');\n $(\"#commission-checkbox\").css('display', 'none');\n }\n title = myThis.broker.brokerName + \" \" + window.spreadsString[tab];\n desc = window.spreadsString[\"BrokerDetail\" + tab + \"Description\"].replace(\"{0}\", myThis.broker.brokerName);\n }\n $(\"title\").html(title);\n $(\"#broker-spread-name\").html(title);\n $(\"#broker-spread-description\").html(desc);\n myThis.UpdateChartBreadcrumb();\n if (window.CURRENT_LANG != \"ar\") myThis.locale = window.CURRENT_CULTURE;\n myThis.InitializeTable();\n InitializeScrollTable(\"#broker-spread-table\");\n myThis.InitializeTableBody();\n },\n error: function error() {\n console.log(\"Error occured\");\n }\n });\n }\n }, {\n key: \"UpdateChartBreadcrumb\",\n value: function UpdateChartBreadcrumb() {\n var myThis = this;\n var title = $(\"h1\").text();\n var langSlug = \"/\";\n if (window.CURRENT_LANG != 'en') langSlug = \"/\" + window.CURRENT_LANG + \"/\";\n $(\"#site-breadcrumb>.breadcrumb-item:nth-child(4)\").replaceWith('' + $(\"#site-breadcrumb>.breadcrumb-item:nth-child(4)\").text() + '');\n var lastItem = '';\n lastItem += title;\n lastItem += '';\n if ($(\"#site-breadcrumb>.breadcrumb-item:nth-child(5)\").length > 0) {\n $(\"#site-breadcrumb>.breadcrumb-item:nth-child(5)\").replaceWith(lastItem);\n } else {\n $(\"#site-breadcrumb\").append(lastItem);\n }\n if ($('script[type=\"application/ld+json\"]').length == 0) return;\n var breadcrumbSchema = JSON.parse($('script[type=\"application/ld+json\"]').html());\n if (breadcrumbSchema['itemListElement'] && Array.isArray(breadcrumbSchema['itemListElement'])) {\n var items = breadcrumbSchema['itemListElement'];\n if (items.length == 4) {\n items.push({\n '@type': 'ListItem',\n position: 5,\n name: title,\n item: window.location.href\n });\n } else if (items.length > 4) {\n items[4] = {\n '@type': 'ListItem',\n position: 5,\n name: title,\n item: window.location.href\n };\n }\n breadcrumbSchema['name'] = title;\n breadcrumbSchema['numberOfItems'] = 5;\n $('script[type=\"application/ld+json\"]').html(JSON.stringify(breadcrumbSchema));\n }\n }\n }, {\n key: \"InitializeEventTriggers\",\n value: function InitializeEventTriggers() {\n var myThis = this;\n $(window).on('popstate', function (e) {\n location.reload();\n });\n $(document).on('click', '#brokerSpreadsTab div', function (e) {\n $(\"#brokerSpreadsTab div\").removeClass('frn-tab-active');\n e.currentTarget.classList.add('frn-tab-active');\n var tabName = e.currentTarget.id;\n var title = \"\";\n if (tabName == \"spreads-tab\") {\n title = myThis.broker.brokerName + \" \" + window.spreadsString[\"Spreads\"];\n $(\"#broker-spread-name\").html(myThis.broker.brokerName + \" \" + window.spreadsString[\"Spreads\"]);\n $(\"#broker-spread-spread-select\").css('display', 'block');\n $(\"#broker-spread-session-select\").css('display', 'block');\n $(\"#commission-checkbox\").css('display', 'block');\n myThis.tabName = \"Spreads\";\n history.pushState({}, \"\", \"?tab=Spreads\");\n } else if (tabName == \"commissions-tab\") {\n title = myThis.broker.brokerName + \" \" + window.spreadsString[\"Commissions\"];\n $(\"#broker-spread-name\").html(myThis.broker.brokerName + \" \" + window.spreadsString[\"Commissions\"]);\n $(\"#broker-spread-spread-select\").css('display', 'none');\n $(\"#broker-spread-session-select\").css('display', 'none');\n $(\"#commission-checkbox\").css('display', 'none');\n myThis.tabName = \"Commissions\";\n history.pushState({}, \"\", \"?tab=Commissions\");\n } else {\n title = myThis.broker.brokerName + \" Overnight Fees (Swap Rates)\";\n $(\"#broker-spread-name\").html(myThis.broker.brokerName + \" Overnight Fees (Swap Rates)\");\n $(\"#broker-spread-spread-select\").css('display', 'none');\n $(\"#broker-spread-session-select\").css('display', 'none');\n $(\"#commission-checkbox\").css('display', 'none');\n myThis.tabName = \"Swap Rates\";\n history.pushState({}, \"\", \"?tab=SwapRates\");\n }\n $(\"title\").html(title);\n $(\"#broker-spread-description\").html(window.spreadsString[\"BrokerDetail\" + myThis.tabName + \"Description\"].replace(\"{0}\", myThis.broker.brokerName));\n myThis.UpdateChartBreadcrumb();\n myThis.InitializeTableBody();\n });\n $(document).on('change', 'input[name=query]', function (e) {\n myThis.selectedSymbols = [];\n myThis.symbols.forEach(function (b) {\n if (b.name.toLowerCase().includes(e.target.value.toLowerCase())) {\n myThis.selectedSymbols.push(b);\n }\n });\n if (e.target.value == \"\") {\n myThis.selectedSymbols = myThis.symbols;\n }\n myThis.InitializeTableBody();\n });\n $(document).on('change', 'select[name=time]', function (e) {\n var val = e.target.value;\n myThis.selectedSpread = val;\n myThis.InitializeTableBody();\n });\n $(document).on('change', 'select[name=session]', function (e) {\n var val = e.target.value;\n if (val == \"noSession\") {\n var timeVal = $(\"select[name=time]\").val();\n myThis.selectedSpread = timeVal;\n } else myThis.selectedSpread = val;\n myThis.InitializeTableBody();\n });\n $(document).on('change', '#commission', function (e) {\n myThis.isCommission = e.target.checked;\n myThis.InitializeTableBody();\n });\n $(document).on('click', '#GoToRaw', function (e) {\n history.pushState({}, \"\", \"?typ=1\");\n $('#meta-div').removeClass('bg-for-brokerspread');\n $('#brokerSpreadsTab').hide();\n $('#broker-spread-name').html(myThis.broker.brokerName + \" \" + (myThis.broker.chargedCommissionAccountType != null ? myThis.broker.chargedCommissionAccountType : \"Raw\") + \" \" + window.spreadsString[\"Spreads\"]);\n $(\"title\").html(myThis.broker.brokerName + \" \" + (myThis.broker.chargedCommissionAccountType != null ? myThis.broker.chargedCommissionAccountType : \"Raw\") + \" \" + window.spreadsString[\"Spreads\"]);\n $('#broker-spread-spread-select').show();\n $('#broker-spread-session-select').show();\n $('#symbol-spreads-link').hide();\n var type = myThis.broker.chargedCommissionAccountType != null ? myThis.broker.chargedCommissionAccountType : \"Raw\";\n var description = \"\";\n if (type != \"Raw\") {\n description = window.spreadsString[\"BrokerSpreadsDescription\"].replace(\"{0}\", myThis.broker.brokerName).replace(\"{1}\", type);\n } else description = window.spreadsString[\"BrokerRawSpreadsDescription\"].replace(\"{0}\", myThis.broker.brokerName);\n $(\"#broker-spread-description\").html(description);\n myThis.accountType = 1;\n myThis.UpdateChartBreadcrumb();\n myThis.InitializeTable();\n myThis.InitializeTableBody();\n });\n $(document).on('click', '#GoToStandard', function (e) {\n history.pushState({}, \"\", \"?typ=0\");\n $('#meta-div').removeClass('bg-for-brokerspread');\n $('#brokerSpreadsTab').hide();\n $('#broker-spread-name').html(myThis.broker.brokerName + \" \" + (myThis.broker.notChargedCommissionAccountType != null ? myThis.broker.notChargedCommissionAccountType : \"Standard\") + \" \" + window.spreadsString[\"Spreads\"]);\n $(\"title\").html(myThis.broker.brokerName + \" \" + (myThis.broker.notChargedCommissionAccountType != null ? myThis.broker.notChargedCommissionAccountType : \"Standard\") + \" \" + window.spreadsString[\"Spreads\"]);\n $('#broker-spread-spread-select').show();\n $('#broker-spread-session-select').show();\n $('#symbol-spreads-link').hide();\n var type = myThis.broker.notChargedCommissionAccountType != null ? myThis.broker.notChargedCommissionAccountType : \"Raw\";\n var description = \"\";\n if (type != \"Raw\") {\n description = window.spreadsString[\"BrokerSpreadsDescription\"].replace(\"{0}\", myThis.broker.brokerName).replace(\"{1}\", type);\n } else description = window.spreadsString[\"BrokerStandardSpreadsDescription\"].replace(\"{0}\", myThis.broker.brokerName);\n $(\"#broker-spread-description\").html(description);\n myThis.accountType = 0;\n myThis.UpdateChartBreadcrumb();\n myThis.InitializeTable();\n myThis.InitializeTableBody();\n });\n $(document).on('click', '[id^=\"symbol-link\"]', function (e) {\n var symbolId = e.target.id.substring(12);\n var symbolName = e.target.textContent;\n history.pushState({}, \"\", \"?sym=\" + symbolName);\n myThis.symbolId = symbolId;\n myThis.accountType = 2;\n $('#meta-div').removeClass('bg-for-brokerspread');\n $('#brokerSpreadsTab').hide();\n $('#broker-spread-name').html(myThis.broker.brokerName + \" \" + symbolName + \" \" + window.spreadsString[\"Spreads\"]);\n $(\"title\").html(myThis.broker.brokerName + \" \" + symbolName + \" \" + window.spreadsString[\"Spreads\"]);\n $('#broker-spread-spread-select').hide();\n $('#broker-spread-session-select').hide();\n $('#symbol-spreads-link a').attr('href', '/tools/forex-broker-spreads/' + symbolName);\n $('#symbol-spreads-link a').html(\"View all \" + symbolName + \" spreads >\");\n $('#symbol-spreads-link').show();\n $(\"#broker-spread-description\").html(window.spreadsString[\"BrokerSymbolSpreadsDescription\"].replace(\"{0}\", myThis.broker.brokerName).replace(\"{1}\", symbolName));\n myThis.UpdateChartBreadcrumb();\n myThis.InitializeTable();\n myThis.InitializeTableBody();\n });\n var spreadsConnection = new signalR.HubConnectionBuilder().withUrl(myThis.Url('SpreadsUpdateHub')).configureLogging(signalR.LogLevel.Warning).withAutomaticReconnect().build();\n spreadsConnection.start();\n spreadsConnection.on(\"UpdateSpread\", function (brokerId, accountType, symbolId, receivingSpreads, receivingMXIds, receivingMNIds, commission) {\n if (myThis.brokerId == brokerId) {\n if (myThis.symbolId > 0) {\n if (myThis.symbolId == symbolId) {\n myThis.spreadTypes.forEach(function (type) {\n if (type.name != \"\") {\n var td = $('#Broker' + brokerId + '-' + accountType + 'Symbol' + symbolId + type.name);\n var usingSpread = receivingSpreads[type.name];\n if (td != null) {\n $(td).children(\"label\").html(usingSpread < -1e-7 ? \"-\" : myThis.isCommission == false ? usingSpread.toLocaleString(myThis.locale, {\n maximumFractionDigits: 2\n }) : (usingSpread + commission).toLocaleString(myThis.locale, {\n maximumFractionDigits: 2\n }));\n }\n }\n });\n }\n } else {\n var td = $('#Broker' + brokerId + '-' + accountType + 'Symbol' + symbolId);\n var usingSpread = receivingSpreads.currentSpread;\n switch (myThis.selectedSpread) {\n case \"currentSpread\":\n usingSpread = receivingSpreads.currentSpread;\n break;\n case \"fourHourAverageSpread\":\n usingSpread = receivingSpreads.fourHourAverageSpread;\n break;\n case \"oneDayAverageSpread\":\n usingSpread = receivingSpreads.oneDayAverageSpread;\n break;\n case \"oneWeekAverageSpread\":\n usingSpread = receivingSpreads.oneWeekAverageSpread;\n break;\n case \"sydneySessionAverageSpread\":\n usingSpread = receivingSpreads.sydneySessionAverageSpread;\n break;\n case \"tokyoSessionAverageSpread\":\n usingSpread = receivingSpreads.tokyoSessionAverageSpread;\n break;\n case \"londonSessionAverageSpread\":\n usingSpread = receivingSpreads.londonSessionAverageSpread;\n break;\n case \"newyorkSessionAverageSpread\":\n usingSpread = receivingSpreads.newyorkSessionAverageSpread;\n break;\n default:\n usingSpread = receivingSpreads.currentSpread;\n break;\n }\n if (td != null && myThis.tabName == \"Spreads\") {\n $(td).children(\"label\").html(usingSpread < -1e-7 ? \"-\" : myThis.isCommission == false ? usingSpread.toLocaleString(myThis.locale, {\n maximumFractionDigits: 2\n }) : (usingSpread + commission).toLocaleString(myThis.locale, {\n maximumFractionDigits: 2\n }));\n }\n }\n }\n });\n }\n }, {\n key: \"InitializeTable\",\n value: function InitializeTable() {\n var myThis = this;\n var html = '';\n html += '';\n if (myThis.accountType == 2) {\n if (myThis.symbolId == 0) {\n html += '';\n if (myThis.rawSpreads != undefined) html += \"\";\n if (myThis.standardSpreads != undefined) html += \"\";\n } else {\n html += \"\";\n if (myThis.rawSpreads != undefined) html += \"\";\n if (myThis.standardSpreads != undefined) html += \"\";\n }\n } else {\n html += \"\\n \\n \";\n //html += `\n // \n // `;\n }\n\n html += '';\n html += \"\";\n html += '
' + window.spreadsString[\"Symbol\"] + '\" + (myThis.broker.chargedCommissionAccountType != null ? window.spreadsString[\"SpreadAccount\"].replace(\"{0}\", myThis.broker.chargedCommissionAccountType) : window.spreadsString[\"RawSpreadAccount\"]) + \"\" + (myThis.broker.notChargedCommissionAccountType != null ? window.spreadsString[\"SpreadAccount\"].replace(\"{0}\", myThis.broker.notChargedCommissionAccountType) : window.spreadsString[\"StandardAccount\"]) + \"\" + window.spreadsString[\"Timeframe\"] + \"\" + (myThis.broker.chargedCommissionAccountType != null ? window.spreadsString[\"SpreadAccount\"].replace(\"{0}\", myThis.broker.chargedCommissionAccountType) : window.spreadsString[\"RawSpreadAccount\"]) + \"\" + (myThis.broker.notChargedCommissionAccountType != null ? window.spreadsString[\"SpreadAccount\"].replace(\"{0}\", myThis.broker.notChargedCommissionAccountType) : window.spreadsString[\"StandardAccount\"]) + \"\" + window.spreadsString[\"Symbol\"] + \"\" + window.spreadsString[\"Spread\"] + \"\" + window.spreadsString[\"Commission\"] + \"Swap LongSwap ShortSwap Type
';\n $(\"#broker-spread-table-div\").html(html);\n }\n }, {\n key: \"InitializeTableBody\",\n value: function InitializeTableBody() {\n var myThis = this;\n var html = '';\n if (myThis.symbolId == 0) {\n if (myThis.tabName == \"Swap Rates\" && myThis.accountType == 2) {\n $(\".broker-spread-table thead tr th:not(:first-child)\").attr('colspan', 5);\n $(\"#broker-spread-table-body\").addClass(\"swap-rates-body\");\n html += \"Swap LongSwap ShortSwap Type\";\n html += \"Swap LongSwap ShortSwap Type\";\n } else {\n $(\".broker-spread-table thead tr th:not(:first-child)\").attr('colspan', 1);\n $(\"#broker-spread-table-body\").removeClass(\"swap-rates-body\");\n }\n myThis.selectedSymbols.forEach(function (symbol) {\n var rawSpread = null;\n var rawSpreadVal = -1;\n var brokerId = 0;\n if (myThis.rawSpreads != undefined) {\n brokerId = myThis.rawSpreads.broker.cbfBrokerId;\n var sp = myThis.rawSpreads.spreads.find(function (x) {\n return x.symbol.name == symbol.name;\n });\n rawSpread = sp;\n rawSpreadVal = sp[myThis.selectedSpread];\n }\n var standardSpread = null;\n var standardSpreadVal = -1;\n if (myThis.standardSpreads != undefined) {\n brokerId = myThis.standardSpreads.broker.cbfBrokerId;\n var sp = myThis.standardSpreads.spreads.find(function (x) {\n return x.symbol.name == symbol.name;\n });\n standardSpread = sp;\n standardSpreadVal = sp[myThis.selectedSpread];\n }\n if (standardSpreadVal < 0 && rawSpreadVal < 0) return;\n if (myThis.accountType == 0 && standardSpreadVal < 0) return;\n if (myThis.accountType == 1 && rawSpreadVal < 0) return;\n html += \"\";\n html += \"\" + symbol.name + \"\";\n if (myThis.accountType == 2) {\n if (myThis.tabName != \"Swap Rates\") {\n if (rawSpreadVal < 0) {\n if (myThis.rawSpreads != undefined) html += \"-\";\n } else {\n html += \"\";\n if (myThis.tabName == \"Spreads\") {\n html += \"\";\n } else if (myThis.tabName == \"Commissions\") {\n html += rawSpread.commissionUSD.toLocaleString(myThis.locale, {\n maximumFractionDigits: 2\n }) + \" USD\";\n }\n html += \"\";\n }\n if (standardSpreadVal < 0) {\n if (myThis.standardSpreads != undefined) html += \"-\";\n } else {\n html += \"\";\n if (myThis.tabName == \"Spreads\") {\n html += \"\";\n } else if (myThis.tabName == \"Commissions\") {\n html += \"0\";\n }\n html += \"\";\n }\n } else {\n html += \"---\";\n html += \"---\";\n }\n } else {\n var spread = null;\n var spreadVal = -1;\n if (myThis.accountType == 0) {\n spread = standardSpread;\n spreadVal = standardSpreadVal;\n } else if (myThis.accountType == 1) {\n spread = rawSpread;\n spreadVal = rawSpreadVal;\n }\n if (spreadVal < 0) {\n html += \"--\";\n /*html += `---`;*/\n } else {\n html += \"\";\n html += \"\";\n html += \"\";\n html += \"\" + spread.commissionUSD.toLocaleString(myThis.locale, {\n maximumFractionDigits: 2\n }) + \" USD\";\n /*html += `---`;*/\n }\n }\n\n html += \"\";\n });\n } else {\n var rawSpread = null;\n var brokerId = 0;\n if (myThis.rawSpreads != undefined) {\n brokerId = myThis.rawSpreads.broker.cbfBrokerId;\n var sp = myThis.rawSpreads.spreads.find(function (x) {\n return x.symbol.id == myThis.symbolId;\n });\n rawSpread = sp;\n }\n var standardSpread = null;\n if (myThis.standardSpreads != undefined) {\n brokerId = myThis.standardSpreads.broker.cbfBrokerId;\n var sp = myThis.standardSpreads.spreads.find(function (x) {\n return x.symbol.id == myThis.symbolId;\n });\n standardSpread = sp;\n }\n myThis.spreadTypes.forEach(function (type) {\n if (type.str == \"\" && type.name == \"\") {\n html += \"\";\n } else {\n html += \"\";\n html += '';\n if (type.code != \"\") {\n html += \"\";\n }\n html += type.str + '';\n if (rawSpread == null) {\n if (myThis.rawSpreads != undefined) html += \"-\";\n } else {\n html += \"\";\n html += \"\";\n html += \"\";\n }\n if (standardSpread == null) {\n if (myThis.standardSpreads != undefined) html += \"-\";\n } else {\n html += \"\";\n html += \"\";\n html += \"\";\n }\n html += \"\";\n }\n });\n }\n InitializeScrollTable(\"#broker-spread-table\");\n $('#broker-spread-table-body').html(html);\n $(\".clone\").remove();\n $(\".fixed-header\").remove();\n jQuery(\"#broker-spread-table\").clone(true).appendTo('.tablescroll').addClass('clone');\n $('.tablescroll').append('
');\n $('#broker-spread-table').clone(true).appendTo('.fixed-header').addClass('clone');\n $('.fixed-header').css('max-width', $('.tablescroll-wrap').width());\n $(\"#broker-spread-table-body [data-toggle=tooltip]\").tooltip('dispose').tooltip({\n boundary: 'window'\n });\n }\n }]);\n return ForexBrokerSpreads;\n}();\nvar _default = ForexBrokerSpreads;\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 ForexSpreads = /*#__PURE__*/function () {\n function ForexSpreads(spreadsRoot, jwtToken, tableId) {\n _classCallCheck(this, ForexSpreads);\n this.jwtToken = jwtToken;\n this.spreadsRoot = spreadsRoot;\n this.tableId = tableId;\n this.urls = {\n InitialSpreads: \"/api/initialspreads\",\n GetBrokerSpreads: \"/api/spreads/{id}\",\n SpreadsUpdateHub: \"/spreadsUpdateHub\"\n };\n this.initialSymbolNames = [\"EURUSD\", \"USDJPY\", \"GBPJPY\", \"EURGBP\", \"AUDNZD\", \"CADCHF\", \"BTCUSD\", \"ETHUSD\", \"XAUUSD\", \"XAGUSD\"];\n this.initialSelectedSymbols = [{\n type: \"Crypto\",\n ids: [],\n className: \"crypto-header\",\n label: \"Crypto\"\n }, {\n type: \"Forex\",\n ids: [],\n className: \"forex-header\",\n label: \"Forex\"\n }, {\n type: \"Index\",\n ids: [],\n className: \"index-header\",\n label: \"Indices\"\n }, {\n type: \"Commodity\",\n ids: [],\n className: \"commodity-header\",\n label: \"Commodities\"\n }];\n this.selectedSymbols = [{\n type: \"Crypto\",\n ids: [],\n className: \"crypto-header\",\n label: \"Crypto\"\n }, {\n type: \"Forex\",\n ids: [],\n className: \"forex-header\",\n label: \"Forex\"\n }, {\n type: \"Index\",\n ids: [],\n className: \"index-header\",\n label: \"Indices\"\n }, {\n type: \"Commodity\",\n ids: [],\n className: \"commodity-header\",\n label: \"Commodities\"\n }];\n this.selectedBrokers = [];\n this.spreads = [];\n this.viewSpreads = [];\n this.symbols = [];\n this.brokers = {};\n this.maxSpreads = [];\n this.minSpreads = [];\n this.rebateBrokers = [];\n this.premiumBrokers = [];\n this.superPremiumBrokers = [];\n this.selectedSpread = \"oneDayAverageSpread\";\n this.isCommission = true;\n this.sortedSymbol = {\n symbolId: -5,\n order: 1\n };\n this.scrollLeft = 0;\n this.scrollTop = 0;\n this.scrolling = false;\n this.topScrolling = false;\n }\n _createClass(ForexSpreads, [{\n key: \"Url\",\n value: function Url(key) {\n return this.spreadsRoot + this.urls[key];\n }\n }, {\n key: \"InitializePage\",\n value: function InitializePage() {\n var myThis = this;\n $.ajax({\n url: myThis.Url('InitialSpreads'),\n type: \"GET\",\n success: function success(res) {\n myThis.spreads = res;\n if ($('#spreads-table-body-' + myThis.tableId) && myThis.spreads.length > 0) {\n InitializeScrollTable(\"#spreads-table-\" + myThis.tableId);\n myThis.GetViewSpreads();\n if (myThis.sortedSymbol[\"symbolId\"] == -5) {\n myThis.ShuffleArray(myThis.viewSpreads);\n } else {\n myThis.viewSpreads.sort(function (a, b) {\n var compA = a.broker.brokerName;\n var compB = b.broker.brokerName;\n if (myThis.sortedSymbol[\"symbolId\"] != 0) {\n var aSpread = a.spreads.find(function (x) {\n return x.symbol.id == myThis.sortedSymbol[\"symbolId\"];\n });\n var bSpread = b.spreads.find(function (x) {\n return x.symbol.id == myThis.sortedSymbol[\"symbolId\"];\n });\n compA = aSpread[myThis.selectedSpread];\n compB = bSpread[myThis.selectedSpread];\n if (myThis.sortedSymbol[\"order\"] == 1) {\n if (compA < 0) compA = 10000000;\n if (compB < 0) compB = 10000000;\n }\n if (myThis.isCommission == true) {\n compA += aSpread.commission;\n compB += bSpread.commission;\n }\n }\n if (compA < compB) {\n return -1 * myThis.sortedSymbol[\"order\"];\n }\n if (compA > compB) {\n return 1 * myThis.sortedSymbol[\"order\"];\n }\n return 0;\n });\n }\n myThis.InitializeTableBody(myThis.viewSpreads);\n jQuery(\"#spreads-table-\" + myThis.tableId).clone(true).appendTo('#spreads-table-div-' + myThis.tableId + ' .tablescroll').addClass('clone');\n $('#spreads-table-div-' + myThis.tableId + ' .tablescroll').append('
');\n $('#spreads-table-' + myThis.tableId).clone(true).appendTo('#spreads-table-div-' + myThis.tableId + ' .fixed-header').addClass('clone');\n $('#spreads-table-div-' + myThis.tableId + ' .fixed-header').css('max-width', $('#spreads-table-div-' + myThis.tableId + ' .tablescroll-wrap').width());\n $('#spreads-table-div-' + myThis.tableId + ' .tablescroll').append('
');\n $('#spreads-table-' + myThis.tableId).clone(true).appendTo('#spreads-table-div-' + myThis.tableId + ' .scroll-fixed-header').addClass('clone');\n $('#spreads-table-div-' + myThis.tableId + ' .scroll-fixed-header').css('max-width', $('#spreads-table-div-' + myThis.tableId + ' .tablescroll-wrap').width());\n myThis.MakeFixedHeaderVisible();\n }\n },\n error: function error() {\n console.log(\"Error occured\");\n }\n });\n }\n }, {\n key: \"InitializeEventTriggers\",\n value: function InitializeEventTriggers() {\n var myThis = this;\n $(document).on('change', '#spreads-query-form-' + myThis.tableId + ' input[name=search]', function (e) {\n var val = $(\"#spreads-query-form-\" + myThis.tableId + \" select[name=brokertype\").val();\n var bros = [];\n if (val == 0) bros = myThis.brokers;else bros = myThis.rebateBrokers;\n myThis.selectedBrokers = [];\n bros.forEach(function (b) {\n if (b.BrokerName.toLowerCase().includes(e.target.value.toLowerCase())) {\n myThis.selectedBrokers.push(b);\n }\n });\n if (e.target.value == \"\") {\n myThis.selectedBrokers = bros;\n }\n myThis.InitializeTable();\n });\n $(document).on('change', '#spreads-query-form-' + myThis.tableId + ' select[name=brokertype]', function (e) {\n var val = e.target.value;\n var bros = [];\n if (val == 0) bros = myThis.brokers;else bros = myThis.rebateBrokers;\n var inVal = $('#spreads-query-form-' + myThis.tableId + ' input[name=search]').val();\n if (inVal == \"\") {\n myThis.selectedBrokers = bros;\n } else {\n myThis.selectedBrokers = [];\n bros.forEach(function (b) {\n if (b.BrokerName.toLowerCase().includes(inVal.toLowerCase())) {\n myThis.selectedBrokers.push(b);\n }\n });\n }\n myThis.InitializeTable();\n });\n $(document).on('change', '#spreads-query-form-' + myThis.tableId + ' select[name=time]', function (e) {\n var val = e.target.value;\n myThis.selectedSpread = val;\n myThis.InitializeTable();\n });\n $(document).on('change', '#spreads-query-form-' + myThis.tableId + ' select[name=session]', function (e) {\n var val = e.target.value;\n if (val == \"noSession\") {\n var timeVal = $('#spreads-query-form-' + myThis.tableId + ' select[name=time]').val();\n myThis.selectedSpread = timeVal;\n } else myThis.selectedSpread = val;\n myThis.InitializeTable();\n });\n $(document).on('change', '#spreads-filter-dialog-' + myThis.tableId + ' #symbol-ul-' + myThis.tableId + ' li input[type=checkbox]', function (e) {\n if (e.target.checked == true) {\n var symbol = myThis.symbols.find(function (s) {\n return s.Name == e.target.name;\n });\n var typeSymbol = myThis.selectedSymbols.find(function (x) {\n return x.type == symbol.Type;\n });\n if (!typeSymbol.ids.includes(symbol.Id)) typeSymbol.ids.push(symbol.Id);\n } else {\n var symbol = myThis.symbols.find(function (s) {\n return s.Name == e.target.name;\n });\n var typeSymbols = myThis.selectedSymbols.find(function (x) {\n return x.type == symbol.Type;\n });\n typeSymbols.ids = typeSymbols.ids.filter(function (x) {\n return x != symbol.Id;\n });\n }\n });\n $(document).on('change', '#commission-' + myThis.tableId, function (e) {\n myThis.isCommission = e.target.checked;\n myThis.InitializeTable();\n });\n $(document).on('scroll', function (e) {\n myThis.MakeFixedHeaderVisible();\n });\n var spreadsConnection = new signalR.HubConnectionBuilder().withUrl(myThis.Url('SpreadsUpdateHub')).configureLogging(signalR.LogLevel.Warning).withAutomaticReconnect().build();\n spreadsConnection.start();\n spreadsConnection.on(\"UpdateSpread\", function (brokerId, accountType, symbolId, receivingSpreads, receivingMXIds, receivingMNIds, commission) {\n var spid = myThis.spreads.findIndex(function (spread) {\n return spread.broker.cbfBrokerId == brokerId && spread.accountType == accountType;\n });\n if (spid != -1) {\n var syid = myThis.spreads[spid].spreads.findIndex(function (spread) {\n return spread.symbol.id == symbolId;\n });\n var vspid = myThis.viewSpreads.findIndex(function (spread) {\n return spread.broker.cbfBrokerId == brokerId && spread.accountType == accountType;\n });\n var vsyid = myThis.viewSpreads[vspid].spreads.findIndex(function (spread) {\n return spread.symbol.id == symbolId;\n });\n var viewTempSpreads = myThis.viewSpreads[vspid].spreads[vsyid];\n var prevViewTempSpread = -1;\n var prevCommission = 0;\n var prevAvgViewTempSpread = -1;\n var prevAvgCommission = 0;\n if (vspid > 0 && vsyid >= 0) {\n var prevViewTempSpreads = myThis.viewSpreads[vspid - 1].spreads[vsyid];\n prevViewTempSpread = prevViewTempSpreads[myThis.selectedSpread];\n prevCommission = prevViewTempSpreads.commission;\n var prevAvgTempSpreads = myThis.viewSpreads[vspid - 1].spreads.find(function (value) {\n return value.symbol.name == prevViewTempSpreads.symbol.type + \"Avg\";\n });\n prevAvgViewTempSpread = prevAvgTempSpreads[myThis.selectedSpread];\n prevAvgCommission = prevAvgTempSpreads.commission;\n }\n var nextViewTempSpread = 1000000;\n var nextCommission = 0;\n var nextAvgViewTempSpread = 1000000;\n var nextAvgCommission = 0;\n if (vspid < myThis.viewSpreads.length - 1 && vsyid >= 0) {\n var nextViewTempSpreads = myThis.viewSpreads[vspid + 1].spreads[vsyid];\n nextViewTempSpread = nextViewTempSpreads[myThis.selectedSpread];\n nextCommission = nextViewTempSpreads.commission;\n var nextAvgTempSpreads = myThis.viewSpreads[vspid + 1].spreads.find(function (value) {\n return value.symbol.name == nextViewTempSpreads.symbol.type + \"Avg\";\n });\n nextAvgViewTempSpread = nextAvgTempSpreads[myThis.selectedSpread];\n nextAvgCommission = nextAvgTempSpreads.commission;\n }\n var f = false;\n if (myThis.selectedSpread != \"currentSpread\" && viewTempSpreads && myThis.sortedSymbol.symbolId != -5) {\n if (myThis.isCommission == false) {\n if (myThis.sortedSymbol.symbolId >= 0) {\n f = symbolId == myThis.sortedSymbol.symbolId && viewTempSpreads[myThis.selectedSpread].toFixed(2) != receivingSpreads[myThis.selectedSpread].toFixed(2) && myThis.sortedSymbol.order * (receivingSpreads[myThis.selectedSpread] < prevViewTempSpread || receivingSpreads[myThis.selectedSpread] > nextViewTempSpread && nextViewTempSpread >= 0) > 0;\n } else {\n var currentAvgTempSpreads = myThis.viewSpreads[vspid].spreads.find(function (value) {\n return value.symbol.name == viewTempSpreads.symbol.type + \"Avg\";\n });\n var typeSpreads = myThis.viewSpreads[vspid].spreads.filter(function (value) {\n return value.symbol.type == viewTempSpreads.symbol.type;\n });\n var newAvgTempSpread = (currentAvgTempSpreads[myThis.selectedSpread] * (typeSpreads.length - 1) - viewTempSpreads[myThis.selectedSpread] + receivingSpreads[myThis.selectedSpread]) / (typeSpreads.length - 1);\n f = viewTempSpreads.symbol.type == myThis.selectedSymbols[-1 * (myThis.sortedSymbol.symbolId + 1)].type && viewTempSpreads[myThis.selectedSpread].toFixed(2) != receivingSpreads[myThis.selectedSpread].toFixed(2) && newAvgTempSpread > 0 && myThis.sortedSymbol.order * (newAvgTempSpread < prevAvgViewTempSpread || newAvgTempSpread > nextAvgViewTempSpread && nextAvgViewTempSpread >= 0) > 0;\n }\n } else {\n if (myThis.sortedSymbol.symbolId >= 0) {\n f = symbolId == myThis.sortedSymbol.symbolId && (viewTempSpreads[myThis.selectedSpread] + commission).toFixed(2) != (receivingSpreads[myThis.selectedSpread] + commission).toFixed(2) && myThis.sortedSymbol.order * (receivingSpreads[myThis.selectedSpread] + commission < prevViewTempSpread + prevCommission || receivingSpreads[myThis.selectedSpread] > nextViewTempSpread + nextCommission && nextViewTempSpread >= 0) > 0;\n } else {\n var currentAvgTempSpreads = myThis.viewSpreads[vspid].spreads.find(function (value) {\n return value.symbol.name == viewTempSpreads.symbol.type + \"Avg\";\n });\n var typeSpreads = myThis.viewSpreads[vspid].spreads.filter(function (value) {\n return value.symbol.type == viewTempSpreads.symbol.type;\n });\n var newAvgTempSpread = (currentAvgTempSpreads[myThis.selectedSpread] * (typeSpreads.length - 1) - viewTempSpreads[myThis.selectedSpread] + receivingSpreads[myThis.selectedSpread]) / (typeSpreads.length - 1);\n var newAvgCommission = (currentAvgTempSpreads.commission * (typeSpreads.length - 1) - viewTempSpreads.commission + commission) / (typeSpreads.length - 1);\n f = viewTempSpreads.symbol.type == myThis.selectedSymbols[-1 * (myThis.sortedSymbol.symbolId + 1)].type && viewTempSpreads[myThis.selectedSpread].toFixed(2) != receivingSpreads[myThis.selectedSpread].toFixed(2) && newAvgTempSpread > 0 && myThis.sortedSymbol.order * (newAvgTempSpread + newAvgCommission < prevAvgViewTempSpread + prevAvgCommission || newAvgTempSpread + newAvgCommission > nextAvgViewTempSpread + nextAvgCommission && nextAvgViewTempSpread >= 0) > 0;\n }\n }\n }\n myThis.spreads[spid].spreads[syid].currentSpread = receivingSpreads.currentSpread;\n myThis.spreads[spid].spreads[syid].fourHourAverageSpread = receivingSpreads.fourHourAverageSpread;\n myThis.spreads[spid].spreads[syid].oneDayAverageSpread = receivingSpreads.oneDayAverageSpread;\n myThis.spreads[spid].spreads[syid].oneWeekAverageSpread = receivingSpreads.oneWeekAverageSpread;\n myThis.spreads[spid].spreads[syid].sydneySessionAverageSpread = receivingSpreads.sydneySessionAverageSpread;\n myThis.spreads[spid].spreads[syid].tokyoSessionAverageSpread = receivingSpreads.tokyoSessionAverageSpread;\n myThis.spreads[spid].spreads[syid].londonSessionAverageSpread = receivingSpreads.londonSessionAverageSpread;\n myThis.spreads[spid].spreads[syid].newyorkSessionAverageSpread = receivingSpreads.newyorkSessionAverageSpread;\n myThis.spreads[spid].spreads[syid].commission = commission;\n var tempsymbolspread = null;\n if (vsyid >= 0 && viewTempSpreads) {\n myThis.viewSpreads[vspid].spreads[vsyid].currentSpread = receivingSpreads.currentSpread;\n myThis.viewSpreads[vspid].spreads[vsyid].fourHourAverageSpread = receivingSpreads.fourHourAverageSpread;\n myThis.viewSpreads[vspid].spreads[vsyid].oneDayAverageSpread = receivingSpreads.oneDayAverageSpread;\n myThis.viewSpreads[vspid].spreads[vsyid].oneWeekAverageSpread = receivingSpreads.oneWeekAverageSpread;\n myThis.viewSpreads[vspid].spreads[vsyid].sydneySessionAverageSpread = receivingSpreads.sydneySessionAverageSpread;\n myThis.viewSpreads[vspid].spreads[vsyid].tokyoSessionAverageSpread = receivingSpreads.tokyoSessionAverageSpread;\n myThis.viewSpreads[vspid].spreads[vsyid].londonSessionAverageSpread = receivingSpreads.londonSessionAverageSpread;\n myThis.viewSpreads[vspid].spreads[vsyid].newyorkSessionAverageSpread = receivingSpreads.newyorkSessionAverageSpread;\n myThis.viewSpreads[vspid].spreads[vsyid].commission = commission;\n tempsymbolspread = myThis.viewSpreads[vspid].spreads.find(function (x) {\n return x.symbol.name == viewTempSpreads.symbol.type + \"Avg\";\n });\n var typespreads = myThis.viewSpreads[vspid].spreads.filter(function (sp) {\n return sp.symbolType == viewTempSpreads.symbol.type && sp.oneDayAverageSpread >= 0;\n });\n if (typespreads.length == myThis.viewSpreads[vspid].spreads.filter(function (sp) {\n return sp.symbolType == viewTempSpreads.symbol.type;\n }).length) {\n tempsymbolspread.commission = typespreads.reduce(function (total, next) {\n return total + next.commission;\n }, 0) / typespreads.length;\n tempsymbolspread.commissionUSD = typespreads.reduce(function (total, next) {\n return total + next.commissionUSD;\n }, 0) / typespreads.length;\n tempsymbolspread.currentSpread = typespreads.reduce(function (total, next) {\n return total + next.currentSpread;\n }, 0) / typespreads.length;\n tempsymbolspread.fourHourAverageSpread = typespreads.reduce(function (total, next) {\n return total + next.fourHourAverageSpread;\n }, 0) / typespreads.length;\n tempsymbolspread.londonSessionAverageSpread = typespreads.reduce(function (total, next) {\n return total + next.londonSessionAverageSpread;\n }, 0) / typespreads.length;\n tempsymbolspread.newyorkSessionAverageSpread = typespreads.reduce(function (total, next) {\n return total + next.newyorkSessionAverageSpread;\n }, 0) / typespreads.length;\n tempsymbolspread.oneDayAverageSpread = typespreads.reduce(function (total, next) {\n return total + next.oneDayAverageSpread;\n }, 0) / typespreads.length;\n tempsymbolspread.oneWeekAverageSpread = typespreads.reduce(function (total, next) {\n return total + next.oneWeekAverageSpread;\n }, 0) / typespreads.length;\n tempsymbolspread.sydneySessionAverageSpread = typespreads.reduce(function (total, next) {\n return total + next.sydneySessionAverageSpread;\n }, 0) / typespreads.length;\n tempsymbolspread.tokyoSessionAverageSpread = typespreads.reduce(function (total, next) {\n return total + next.tokyoSessionAverageSpread;\n }, 0) / typespreads.length;\n }\n }\n if (f == true) {\n myThis.scrolling = true;\n myThis.scrollLeft = $(\"#spreads-table-div-\" + myThis.tableId + \" .tablescroll-wrap\").scrollLeft();\n myThis.topScrolling = true;\n myThis.scrollTop = $(document).scrollTop();\n myThis.InitializeTable(myThis.tableId);\n } else {\n var td = $(\"#Broker\" + brokerId + '-' + accountType + 'Symbol' + symbolId);\n var avgtd = null;\n if (viewTempSpreads) {\n var avgId = myThis.selectedSymbols.findIndex(function (x) {\n return x.type == viewTempSpreads.symbol.type;\n });\n avgtd = $(\"#Broker\" + brokerId + '-' + accountType + 'Symbol' + (avgId + 1) * -1);\n }\n var usingSpread = receivingSpreads.currentSpread;\n var mxids = [];\n var mnids = [];\n switch (myThis.selectedSpread) {\n case \"currentSpread\":\n usingSpread = receivingSpreads.currentSpread;\n if (myThis.isCommission == false) {\n mxids = receivingMXIds.currentIds;\n mnids = receivingMNIds.currentIds;\n } else {\n mxids = receivingMXIds.currentCommissionIds;\n mnids = receivingMNIds.currentCommissionIds;\n }\n break;\n case \"fourHourAverageSpread\":\n usingSpread = receivingSpreads.fourHourAverageSpread;\n if (myThis.isCommission == false) {\n mxids = receivingMXIds.fourHourIds;\n mnids = receivingMNIds.fourHourIds;\n } else {\n mxids = receivingMXIds.fourHourCommissionIds;\n mnids = receivingMNIds.fourHourCommissionIds;\n }\n break;\n case \"oneDayAverageSpread\":\n usingSpread = receivingSpreads.oneDayAverageSpread;\n if (myThis.isCommission == false) {\n mxids = receivingMXIds.oneDayIds;\n mnids = receivingMNIds.oneDayIds;\n } else {\n mxids = receivingMXIds.oneDayCommissionIds;\n mnids = receivingMNIds.oneDayCommissionIds;\n }\n break;\n case \"oneWeekAverageSpread\":\n usingSpread = receivingSpreads.oneWeekAverageSpread;\n if (myThis.isCommission == false) {\n mxids = receivingMXIds.oneWeekIds;\n mnids = receivingMNIds.oneWeekIds;\n } else {\n mxids = receivingMXIds.oneWeekCommissionIds;\n mnids = receivingMNIds.oneWeekCommissionIds;\n }\n break;\n case \"sydneySessionAverageSpread\":\n usingSpread = receivingSpreads.sydneySessionAverageSpread;\n if (myThis.isCommission == false) {\n mxids = receivingMXIds.sydneyIds;\n mnids = receivingMNIds.sydneyIds;\n } else {\n mxids = receivingMXIds.sydneyCommissionIds;\n mnids = receivingMNIds.sydneyCommissionIds;\n }\n break;\n case \"tokyoSessionAverageSpread\":\n usingSpread = receivingSpreads.tokyoSessionAverageSpread;\n if (myThis.isCommission == false) {\n mxids = receivingMXIds.tokyoIds;\n mnids = receivingMNIds.tokyoIds;\n } else {\n mxids = receivingMXIds.tokyoCommissionIds;\n mnids = receivingMNIds.tokyoCommissionIds;\n }\n break;\n case \"londonSessionAverageSpread\":\n usingSpread = receivingSpreads.londonSessionAverageSpread;\n if (myThis.isCommission == false) {\n mxids = receivingMXIds.londonIds;\n mnids = receivingMNIds.londonIds;\n } else {\n mxids = receivingMXIds.londonCommissionIds;\n mnids = receivingMNIds.londonCommissionIds;\n }\n break;\n case \"newyorkSessionAverageSpread\":\n usingSpread = receivingSpreads.newyorkSessionAverageSpread;\n if (myThis.isCommission == false) {\n mxids = receivingMXIds.newyorkIds;\n mnids = receivingMNIds.newyorkIds;\n } else {\n mxids = receivingMXIds.newyorkCommissionIds;\n mnids = receivingMNIds.newyorkCommissionIds;\n }\n break;\n default:\n usingSpread = receivingSpreads.currentSpread;\n if (myThis.isCommission == false) {\n mxids = receivingMXIds.currentIds;\n mnids = receivingMNIds.currentIds;\n } else {\n mxids = receivingMXIds.currentCommissionIds;\n mnids = receivingMNIds.currentCommissionIds;\n }\n break;\n }\n if (td != null) {\n if (myThis.isCommission == false) {\n $(td).children(\"label\").html(usingSpread < -1e-7 ? \"-\" : usingSpread.toFixed(2));\n } else {\n $(td).children(\"label\").html(usingSpread < -1e-7 ? \"-\" : (usingSpread + commission).toFixed(2));\n }\n $(\"td[id$=Symbol\" + symbolId + \"]\").each(function () {\n var id = $(this).attr('id');\n var brokerId = id.match(/Broker(.*?)Symbol/i)[1];\n if (!mxids.includes(Number(brokerId))) $(this).removeClass('background-red');\n if (!mnids.includes(Number(brokerId))) $(this).removeClass('background-green');\n });\n mxids.forEach(function (id) {\n if (!$('#Broker' + id.brokerId + '-' + id.accountType + 'Symbol' + symbolId).hasClass('background-red')) $('#Broker' + id.brokerId + '-' + id.accountType + 'Symbol' + symbolId).addClass('background-red');\n });\n mnids.forEach(function (id) {\n if (!$('#Broker' + id.brokerId + '-' + id.accountType + 'Symbol' + symbolId).hasClass('background-green')) $('#Broker' + id.brokerId + '-' + id.accountType + 'Symbol' + symbolId).addClass('background-green');\n });\n }\n if (avgtd != null && tempsymbolspread != null) {\n if (myThis.isCommission == false) {\n $(avgtd).children(\"label\").html(tempsymbolspread[myThis.selectedSpread] < 0 ? \"-\" : tempsymbolspread[myThis.selectedSpread].toFixed(2));\n } else {\n $(avgtd).children(\"label\").html(tempsymbolspread[myThis.selectedSpread] < 0 ? \"-\" : (tempsymbolspread[myThis.selectedSpread] + tempsymbolspread.commission).toFixed(2));\n }\n }\n }\n }\n });\n }\n }, {\n key: \"GetViewSpreads\",\n value: function GetViewSpreads() {\n var myThis = this;\n myThis.viewSpreads = [];\n myThis.spreads.forEach(function (spread) {\n var tempSpread = {};\n tempSpread.accountType = spread.accountType;\n tempSpread.broker = spread.broker;\n tempSpread.spreads = [];\n myThis.selectedSymbols.forEach(function (typeSymbols, index) {\n typeSymbols.ids.forEach(function (tsymbol) {\n var symbolSpread = spread.spreads.find(function (x) {\n return x.symbol.id == tsymbol;\n });\n if (symbolSpread) tempSpread.spreads.push(symbolSpread);\n });\n var symbolType = typeSymbols.type;\n var tspreads = tempSpread.spreads.filter(function (sp) {\n return sp.symbolType == symbolType;\n });\n if (tspreads.length == 0) return;\n var typeSpreads = tempSpread.spreads.filter(function (sp) {\n return sp.symbolType == symbolType && sp.oneDayAverageSpread >= 0;\n });\n var tempSymbolSpread = {\n accountType: spread.spreads[0].accountType,\n commission: -1,\n commissionUSD: -1,\n currentSpread: -1,\n fourHourAverageSpread: -1,\n londonSessionAverageSpread: -1,\n newyorkSessionAverageSpread: -1,\n oneDayAverageSpread: -1,\n oneWeekAverageSpread: -1,\n sydneySessionAverageSpread: -1,\n tokyoSessionAverageSpread: -1,\n symbol: {\n id: -1 * (index + 1),\n name: symbolType + \"Avg\",\n description: \"Average of \" + symbolType + \"s\",\n type: symbolType + \"Avg\"\n },\n symbolType: symbolType + \"Avg\"\n };\n if (typeSpreads.length == tspreads.length) {\n tempSymbolSpread = {\n accountType: spread.spreads[0].accountType,\n commission: typeSpreads.reduce(function (total, next) {\n return total + next.commission;\n }, 0) / typeSpreads.length,\n commissionUSD: typeSpreads.reduce(function (total, next) {\n return total + next.commissionUSD;\n }, 0) / typeSpreads.length,\n currentSpread: typeSpreads.reduce(function (total, next) {\n return total + next.currentSpread;\n }, 0) / typeSpreads.length,\n fourHourAverageSpread: typeSpreads.reduce(function (total, next) {\n return total + next.fourHourAverageSpread;\n }, 0) / typeSpreads.length,\n londonSessionAverageSpread: typeSpreads.reduce(function (total, next) {\n return total + next.londonSessionAverageSpread;\n }, 0) / typeSpreads.length,\n newyorkSessionAverageSpread: typeSpreads.reduce(function (total, next) {\n return total + next.newyorkSessionAverageSpread;\n }, 0) / typeSpreads.length,\n oneDayAverageSpread: typeSpreads.reduce(function (total, next) {\n return total + next.oneDayAverageSpread;\n }, 0) / typeSpreads.length,\n oneWeekAverageSpread: typeSpreads.reduce(function (total, next) {\n return total + next.oneWeekAverageSpread;\n }, 0) / typeSpreads.length,\n sydneySessionAverageSpread: typeSpreads.reduce(function (total, next) {\n return total + next.sydneySessionAverageSpread;\n }, 0) / typeSpreads.length,\n tokyoSessionAverageSpread: typeSpreads.reduce(function (total, next) {\n return total + next.tokyoSessionAverageSpread;\n }, 0) / typeSpreads.length,\n symbol: {\n id: -1 * (index + 1),\n name: symbolType + \"Avg\",\n description: \"Average of \" + symbolType + \"s\",\n type: symbolType + \"Avg\"\n },\n symbolType: symbolType + \"Avg\"\n };\n }\n tempSpread.spreads.push(tempSymbolSpread);\n });\n myThis.viewSpreads.push(tempSpread);\n });\n }\n }, {\n key: \"ShuffleArray\",\n value: function ShuffleArray(array) {\n var currentIndex = array.length,\n randomIndex;\n\n // While there remain elements to shuffle.\n while (currentIndex > 0) {\n // Pick a remaining element.\n randomIndex = Math.floor(Math.random() * currentIndex);\n currentIndex--;\n\n // And swap it with the current element.\n var _ref = [array[randomIndex], array[currentIndex]];\n array[currentIndex] = _ref[0];\n array[randomIndex] = _ref[1];\n }\n return array;\n }\n }, {\n key: \"InitializeTable\",\n value: function InitializeTable() {\n var dir = $('html').attr(\"dir\");\n var myThis = this;\n var html = \"\";\n html += \"\";\n myThis.selectedSymbols.forEach(function (typeSymbols, index) {\n if (typeSymbols.ids.length > 0) {\n html += \"\";\n }\n });\n html += \"\";\n myThis.selectedSymbols.forEach(function (typeSymbols, index) {\n typeSymbols.ids.forEach(function (tsymbol) {\n var symbol = myThis.symbols.find(function (x) {\n return x.Id == tsymbol;\n });\n html += \"\";\n });\n if (typeSymbols.ids.length > 0) html += \"\";\n });\n html += \"\";\n html += \"\";\n html += \"\";\n html += \"
\" + window.spreadsString[\"Brokers\"] + (myThis.sortedSymbol[\"symbolId\"] == 0 ? myThis.sortedSymbol[\"order\"] == 1 ? \"\" : \"\" : \"\") + \"\" + window.spreadsString[typeSymbols.label] + \"
\" + symbol.Name + (symbol.Id == myThis.sortedSymbol[\"symbolId\"] ? myThis.sortedSymbol[\"order\"] == 1 ? \"\" : \"\" : \"\") + \"\" + window.spreadsString[\"Average\"] + (-1 * (index + 1) == myThis.sortedSymbol[\"symbolId\"] ? myThis.sortedSymbol[\"order\"] == 1 ? \"\" : \"\" : \"\") + \"
\";\n $('#spreads-table-div-' + myThis.tableId).html(html);\n $('#spreads-table-loader-' + myThis.tableId).css('display', 'flex');\n if (myThis.spreads.length > 0) {\n myThis.maxSpreads = [];\n myThis.minSpreads = [];\n myThis.GetViewSpreads();\n if (myThis.sortedSymbol[\"symbolId\"] == -5) {\n myThis.ShuffleArray(myThis.viewSpreads);\n } else {\n myThis.viewSpreads.sort(function (a, b) {\n var compA = a.broker.brokerName;\n var compB = b.broker.brokerName;\n if (myThis.sortedSymbol[\"symbolId\"] != 0) {\n var aSpread = a.spreads.find(function (x) {\n return x.symbol.id == myThis.sortedSymbol[\"symbolId\"];\n });\n var bSpread = b.spreads.find(function (x) {\n return x.symbol.id == myThis.sortedSymbol[\"symbolId\"];\n });\n compA = aSpread[myThis.selectedSpread];\n compB = bSpread[myThis.selectedSpread];\n if (myThis.sortedSymbol[\"order\"] == 1) {\n if (compA < 0) compA = 10000000;\n if (compB < 0) compB = 10000000;\n }\n if (myThis.isCommission == true) {\n compA += aSpread.commission;\n compB += bSpread.commission;\n }\n }\n if (compA < compB) {\n return -1 * myThis.sortedSymbol[\"order\"];\n }\n if (compA > compB) {\n return 1 * myThis.sortedSymbol[\"order\"];\n }\n return 0;\n });\n }\n InitializeScrollTable(\"#spreads-table-\" + myThis.tableId);\n myThis.InitializeTableBody(myThis.viewSpreads);\n jQuery(\"#spreads-table-\" + myThis.tableId).clone(true).appendTo('#spreads-table-div-' + myThis.tableId + ' .tablescroll').addClass('clone');\n $('#spreads-table-div-' + myThis.tableId + ' .tablescroll').append('
');\n $('#spreads-table-' + myThis.tableId).clone(true).appendTo('#spreads-table-div-' + myThis.tableId + ' .fixed-header').addClass('clone');\n $('#spreads-table-div-' + myThis.tableId + ' .fixed-header').css('max-width', $('#spreads-table-div-' + myThis.tableId + ' .tablescroll-wrap').width());\n $('#spreads-table-div-' + myThis.tableId + ' .tablescroll').append('
');\n $('#spreads-table-' + myThis.tableId).clone(true).appendTo('#spreads-table-div-' + myThis.tableId + ' .scroll-fixed-header').addClass('clone');\n $('#spreads-table-div-' + myThis.tableId + ' .scroll-fixed-header').css('max-width', $('#spreads-table-div-' + myThis.tableId + ' .tablescroll-wrap').width());\n var dir = $(\"html\").attr(\"dir\");\n if (dir == \"rtl\" && screen.width < 425) {\n $('#spreads-table-div-' + myThis.tableId + ' .clone').css('right', $('#spreads-table-div-' + myThis.tableId + ' .clone').width() - $('#spreads-table-div-' + myThis.tableId + ' .tablescroll-wrap').width());\n }\n if (myThis.scrolling == true) {\n $('#spreads-table-div-' + myThis.tableId + ' .tablescroll-wrap').scrollLeft(myThis.scrollLeft);\n $('#spreads-table-div-' + myThis.tableId + ' .scroll-fixed-header').scrollLeft(myThis.scrollLeft);\n myThis.scrolling = false;\n }\n myThis.MakeFixedHeaderVisible();\n }\n }\n }, {\n key: \"TableBodyContent\",\n value: function TableBodyContent(brokerId, spreadInfo, className) {\n var dir = $(\"html\").attr(\"dir\");\n var langSlug = window.CURRENT_LANG == \"en\" ? \"\" : \"/\" + window.CURRENT_LANG;\n var myThis = this;\n var html = \"\";\n html += \"\";\n spreadInfo.spreads.forEach(function (symbolSpread) {\n if (myThis.maxSpreads[symbolSpread.symbol.id] == null) {\n myThis.maxSpreads[symbolSpread.symbol.id] = new Object();\n myThis.maxSpreads[symbolSpread.symbol.id].spread = 0;\n myThis.maxSpreads[symbolSpread.symbol.id].brokers = [];\n }\n var compSpread = myThis.isCommission == false ? symbolSpread[myThis.selectedSpread].toFixed(2) : (symbolSpread[myThis.selectedSpread] + symbolSpread.commission).toFixed(2);\n if (myThis.maxSpreads[symbolSpread.symbol.id].spread <= compSpread) {\n if (myThis.maxSpreads[symbolSpread.symbol.id].spread == compSpread) {\n myThis.maxSpreads[symbolSpread.symbol.id].brokers.push({\n BrokerId: brokerId,\n AccountType: spreadInfo.accountType\n });\n } else {\n myThis.maxSpreads[symbolSpread.symbol.id].brokers = [];\n myThis.maxSpreads[symbolSpread.symbol.id].brokers.push({\n BrokerId: brokerId,\n AccountType: spreadInfo.accountType\n });\n }\n myThis.maxSpreads[symbolSpread.symbol.id].spread = compSpread;\n }\n if (myThis.minSpreads[symbolSpread.symbol.id] == null) {\n myThis.minSpreads[symbolSpread.symbol.id] = new Object();\n myThis.minSpreads[symbolSpread.symbol.id].spread = 1000000;\n myThis.minSpreads[symbolSpread.symbol.id].brokers = [];\n }\n if (myThis.minSpreads[symbolSpread.symbol.id].spread >= compSpread && compSpread > 0) {\n if (myThis.minSpreads[symbolSpread.symbol.id].spread == compSpread) {\n myThis.minSpreads[symbolSpread.symbol.id].brokers.push({\n BrokerId: brokerId,\n AccountType: spreadInfo.accountType\n });\n } else {\n myThis.minSpreads[symbolSpread.symbol.id].brokers = [];\n myThis.minSpreads[symbolSpread.symbol.id].brokers.push({\n BrokerId: brokerId,\n AccountType: spreadInfo.accountType\n });\n }\n myThis.minSpreads[symbolSpread.symbol.id].spread = compSpread;\n }\n var spread = symbolSpread[myThis.selectedSpread];\n var className = myThis.isCommission == true && symbolSpread.commission > 0 && spread >= 0 ? \"dotted-border-bottom\" : \"\";\n var tooltipStr = myThis.isCommission == true && symbolSpread.commission > 0 && spread >= 0 ? window.spreadsString[\"HasCommission\"].replace(\"{0}\", symbolSpread.commissionUSD.toFixed(2)) : window.spreadsString[\"NoCommission\"];\n html += \"\";\n html += \"\";\n });\n html += \"\";\n return html;\n }\n }, {\n key: \"InitializeTableBody\",\n value: function InitializeTableBody(body) {\n var myThis = this;\n $('#spreads-table-loader-' + myThis.tableId).css('display', 'none');\n var html = '';\n body.forEach(function (spreadInfo) {\n var brokerId = spreadInfo.broker.cbfBrokerId;\n if (myThis.selectedBrokers.findIndex(function (x) {\n return x.CbfBrokerId == brokerId;\n }) >= 0 && myThis.superPremiumBrokers.findIndex(function (x) {\n return x.CbfBrokerId == brokerId;\n }) >= 0) {\n html += myThis.TableBodyContent(brokerId, spreadInfo, \"superpremium\");\n }\n });\n body.forEach(function (spreadInfo) {\n var brokerId = spreadInfo.broker.cbfBrokerId;\n if (myThis.selectedBrokers.findIndex(function (x) {\n return x.CbfBrokerId == brokerId;\n }) >= 0 && myThis.superPremiumBrokers.findIndex(function (x) {\n return x.CbfBrokerId == brokerId;\n }) < 0 && myThis.premiumBrokers.findIndex(function (x) {\n return x.CbfBrokerId == brokerId;\n }) >= 0) {\n html += myThis.TableBodyContent(brokerId, spreadInfo, \"premium\");\n }\n });\n body.forEach(function (spreadInfo) {\n var brokerId = spreadInfo.broker.cbfBrokerId;\n if (myThis.selectedBrokers.findIndex(function (x) {\n return x.CbfBrokerId == brokerId;\n }) >= 0 && myThis.superPremiumBrokers.findIndex(function (x) {\n return x.CbfBrokerId == brokerId;\n }) < 0 && myThis.premiumBrokers.findIndex(function (x) {\n return x.CbfBrokerId == brokerId;\n }) < 0) {\n html += myThis.TableBodyContent(brokerId, spreadInfo, \"\");\n }\n });\n $('#spreads-table-body-' + myThis.tableId).html(html);\n if (myThis.maxSpreads.length > 0) {\n myThis.selectedSymbols.forEach(function (typeSymbols, index) {\n typeSymbols.ids.forEach(function (id) {\n myThis.maxSpreads[id].brokers.forEach(function (broker) {\n $(\"#Broker\" + broker.BrokerId + \"-\" + broker.AccountType + \"Symbol\" + id).addClass(\"background-red\");\n });\n myThis.minSpreads[id].brokers.forEach(function (broker) {\n $(\"#Broker\" + broker.BrokerId + \"-\" + broker.AccountType + \"Symbol\" + id).addClass(\"background-green\");\n });\n });\n });\n }\n $('#spreads-table-div-' + myThis.tableId + ' [data-toggle=tooltip]').tooltip('dispose').tooltip({\n boundary: 'window'\n });\n if (myThis.topScrolling == true) {\n $(document).scrollTop(myThis.scrollTop);\n myThis.topScrolling = false;\n }\n }\n }, {\n key: \"ApplySpreadsFilter\",\n value: function ApplySpreadsFilter(type) {\n var myThis = this;\n myThis.selectedBrokers = [];\n var brokers = $(\"#spreads-filter-dialog-\" + myThis.tableId + \" #broker-ul-\" + myThis.tableId + \" li input:checked\");\n brokers.each(function (i, v) {\n var b = {};\n var brokerIdStr = v.id.split('-');\n var cbfBrokerId = brokerIdStr[1];\n b[\"CbfBrokerId\"] = Number(cbfBrokerId);\n b[\"BrokerName\"] = v.name;\n myThis.selectedBrokers.push(b);\n });\n if (type == 'tool') {\n var uncheckedBrokers = $(\"#spreads-filter-dialog-\" + myThis.tableId + \" #broker-ul-\" + myThis.tableId + \" li input:not(:checked)\");\n if (uncheckedBrokers.length == 0) localStorage.setItem('selectedBrokers', 'All');else localStorage.setItem('selectedBrokers', JSON.stringify(myThis.selectedBrokers));\n localStorage.setItem('selectedSymbols', JSON.stringify(myThis.selectedSymbols));\n }\n myThis.InitializeTable();\n $('#spreads-filter-dialog-' + myThis.tableId).modal('hide');\n }\n }, {\n key: \"MakeFixedHeaderVisible\",\n value: function MakeFixedHeaderVisible() {\n var myThis = this;\n var scrollTop = $(document).scrollTop();\n if ($(\"#spreads-table-div-\" + myThis.tableId + \" .tablescroll-wrap\").length > 0) {\n var stickyTop = $(\"#spreads-table-div-\" + myThis.tableId + \" .tablescroll-wrap\").offset().top;\n var stickyBottom = $(\"#spreads-table-div-\" + myThis.tableId + \" .tablescroll-wrap\").offset().top + $(\"#spreads-table-div-\" + myThis.tableId + \" .tablescroll-wrap\").height();\n if (scrollTop > stickyTop + 42) {\n $(\"#spreads-table-div-\" + myThis.tableId + \" .fixed-header\").css('display', 'block');\n $(\"#spreads-table-div-\" + myThis.tableId + \" .scroll-fixed-header\").css('display', 'block');\n var topOffsetElement = document.getElementById('topmenu-logo');\n if (topOffsetElement !== null) {\n $(\"#spreads-table-div-\" + myThis.tableId + \" .fixed-header\").css('top', topOffsetElement.offsetHeight);\n $(\"#spreads-table-div-\" + myThis.tableId + \" .scroll-fixed-header\").css('top', topOffsetElement.offsetHeight);\n }\n $(\"#spreads-table-div-\" + myThis.tableId + \" .scroll-fixed-header table thead tr:first-child th:not(:first-child)\").addClass('visible');\n $(\"#spreads-table-div-\" + myThis.tableId + \" .scroll-fixed-header table thead tr:not(:first-child) th\").addClass('visible');\n $(\"#spreads-table-div-\" + myThis.tableId + \" .scroll-fixed-header\").scrollLeft($(\"#spreads-table-div-\" + myThis.tableId + \" .tablescroll-wrap\").scrollLeft());\n } else {\n $(\"#spreads-table-div-\" + myThis.tableId + \" .fixed-header\").css('display', 'none');\n $(\"#spreads-table-div-\" + myThis.tableId + \" .scroll-fixed-header\").css('display', 'none');\n $(\"#spreads-table-div-\" + myThis.tableId + \" .scroll-fixed-header table thead tr:first-child th:not(:first-child)\").removeClass('visible');\n $(\"#spreads-table-div-\" + myThis.tableId + \" .scroll-fixed-header table thead tr:not(:first-child) th\").removeClass('visible');\n }\n if (scrollTop > stickyBottom - 42) {\n $(\"#spreads-table-div-\" + myThis.tableId + \" .fixed-header\").css('display', 'none');\n $(\"#spreads-table-div-\" + myThis.tableId + \" .scroll-fixed-header\").css('display', 'none');\n $(\"#spreads-table-div-\" + myThis.tableId + \" .scroll-fixed-header table thead tr:first-child th:not(:first-child)\").removeClass('visible');\n $(\"#spreads-table-div-\" + myThis.tableId + \" .scroll-fixed-header table thead tr:not(:first-child) th\").removeClass('visible');\n }\n }\n }\n }]);\n return ForexSpreads;\n}();\nvar _default = ForexSpreads;\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 _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 SymbolSpreads = /*#__PURE__*/function () {\n function SymbolSpreads(spreadsRoot, symbolId) {\n _classCallCheck(this, SymbolSpreads);\n this.spreadsRoot = spreadsRoot;\n this.urls = {\n InitialSpreads: \"/api/initialspreads\",\n SpreadsUpdateHub: \"/spreadsUpdateHub\"\n };\n this.spreads = [];\n this.brokers = [];\n this.selectedSpread = \"oneDayAverageSpread\";\n this.isCommission = true;\n this.selectedBrokers = [];\n this.symbolId = symbolId;\n this.sort = -1;\n }\n _createClass(SymbolSpreads, [{\n key: \"Url\",\n value: function Url(key) {\n return this.spreadsRoot + this.urls[key];\n }\n }, {\n key: \"InitializePage\",\n value: function InitializePage(refresh) {\n var myThis = this;\n window.APIHelper.SafeServiceAPICall({\n url: myThis.Url('InitialSpreads'),\n type: \"GET\",\n success: function success(res) {\n myThis.spreads = res;\n res.forEach(function (spread) {\n myThis.brokers.push(spread.broker);\n });\n myThis.selectedBrokers = myThis.brokers;\n myThis.spreads.sort(function (a, b) {\n var spreadA = a.spreads.find(function (x) {\n return x.symbol.id == myThis.symbolId;\n });\n var spreadB = b.spreads.find(function (x) {\n return x.symbol.id == myThis.symbolId;\n });\n var compA = myThis.isCommission == false ? spreadA[myThis.selectedSpread] : spreadA[myThis.selectedSpread] + spreadA.commission;\n var compB = myThis.isCommission == false ? spreadB[myThis.selectedSpread] : spreadB[myThis.selectedSpread] + spreadB.commission;\n if (compA < compB) return 1 * myThis.sort;else if (compA > compB) return -1 * myThis.sort;\n return 0;\n });\n myThis.InitializeTableBody();\n },\n error: function error() {\n console.log(\"Error occured\");\n }\n });\n }\n }, {\n key: \"InitializeEventTriggers\",\n value: function InitializeEventTriggers() {\n var myThis = this;\n $(document).on('change', 'input[name=search]', function (e) {\n var bros = myThis.brokers;\n myThis.selectedBrokers = [];\n bros.forEach(function (b) {\n if (b.BrokerName.toLowerCase().includes(e.target.value.toLowerCase())) {\n myThis.selectedBrokers.push(b);\n }\n });\n if (e.target.value == \"\") {\n myThis.selectedBrokers = bros;\n }\n myThis.InitializeTableBody();\n });\n $(document).on('change', 'select[name=time]', function (e) {\n var val = e.target.value;\n myThis.selectedSpread = val;\n myThis.InitializeTableBody();\n });\n $(document).on('change', 'select[name=session]', function (e) {\n var val = e.target.value;\n if (val == \"noSession\") {\n var timeVal = $(\"select[name=time]\").val();\n myThis.selectedSpread = timeVal;\n } else myThis.selectedSpread = val;\n myThis.InitializeTableBody();\n });\n $(document).on('change', '#commission', function (e) {\n myThis.isCommission = e.target.checked;\n myThis.InitializeTableBody();\n });\n $(document).on('click', '#spreadTh', function (e) {\n if (e.target.classList.length == 1) {\n e.target.classList.add(\"asce\");\n myThis.sort = -1;\n } else {\n e.target.classList.toggle(\"desc\");\n e.target.classList.toggle(\"asce\");\n if (e.target.classList.contains(\"desc\")) myThis.sort = 1;else myThis.sort = -1;\n }\n myThis.spreads.sort(function (a, b) {\n var spreadA = a.spreads.find(function (x) {\n return x.symbol.id == myThis.symbolId;\n });\n var spreadB = b.spreads.find(function (x) {\n return x.symbol.id == myThis.symbolId;\n });\n var compA = myThis.isCommission == false ? spreadA[myThis.selectedSpread] : spreadA[myThis.selectedSpread] + spreadA.commission;\n var compB = myThis.isCommission == false ? spreadB[myThis.selectedSpread] : spreadB[myThis.selectedSpread] + spreadB.commission;\n if (compA < compB) return 1 * myThis.sort;else if (compA > compB) return -1 * myThis.sort;\n return 0;\n });\n myThis.InitializeTableBody();\n });\n var spreadsConnection = new signalR.HubConnectionBuilder().withUrl(myThis.Url('SpreadsUpdateHub')).configureLogging(signalR.LogLevel.Warning).withAutomaticReconnect().build();\n spreadsConnection.start();\n spreadsConnection.on(\"UpdateSpread\", function (brokerId, accountType, symbolId, receivingSpreads, receivingMXIds, receivingMNIds, commission) {\n if (myThis.symbolId == symbolId) {\n var td = $('#Broker' + brokerId + '-' + accountType + 'Symbol' + symbolId);\n var usingSpread = receivingSpreads.currentSpread;\n switch (myThis.selectedSpread) {\n case \"currentSpread\":\n usingSpread = receivingSpreads.currentSpread;\n break;\n case \"fourHourAverageSpread\":\n usingSpread = receivingSpreads.fourHourAverageSpread;\n break;\n case \"oneDayAverageSpread\":\n usingSpread = receivingSpreads.oneDayAverageSpread;\n break;\n case \"oneWeekAverageSpread\":\n usingSpread = receivingSpreads.oneWeekAverageSpread;\n break;\n case \"sydneySessionAverageSpread\":\n usingSpread = receivingSpreads.sydneySessionAverageSpread;\n break;\n case \"tokyoSessionAverageSpread\":\n usingSpread = receivingSpreads.tokyoSessionAverageSpread;\n break;\n case \"londonSessionAverageSpread\":\n usingSpread = receivingSpreads.londonSessionAverageSpread;\n break;\n case \"newyorkSessionAverageSpread\":\n usingSpread = receivingSpreads.newyorkSessionAverageSpread;\n break;\n default:\n usingSpread = receivingSpreads.currentSpread;\n break;\n }\n if (td != null) {\n $(td).children(\"label\").html(usingSpread < 0 ? \"-\" : myThis.isCommission == false ? usingSpread.toFixed(2) : (usingSpread + commission).toFixed(2));\n }\n }\n });\n }\n }, {\n key: \"InitializeTableBody\",\n value: function InitializeTableBody() {\n $('#spreads-table-loader').css('display', 'none');\n var myThis = this;\n var html = '';\n myThis.spreads.forEach(function (spreadInfo) {\n var brokerId = spreadInfo.broker.cbfBrokerId;\n if (myThis.selectedBrokers.findIndex(function (x) {\n return x.cbfBrokerId == brokerId;\n }) >= 0) {\n var spread = spreadInfo.spreads.find(function (x) {\n return x.symbol.id == myThis.symbolId;\n });\n html += \"\";\n html += \"
\" + spreadInfo.broker.brokerName + \"\" + \"
\";\n html += \"\";\n html += \"\";\n html += \"\";\n html += \"\";\n }\n });\n $('#symbol-spread-table-body').html(html);\n $(\"#spreads-table-div [data-toggle=tooltip]\").tooltip('dispose').tooltip({\n boundary: 'window'\n });\n }\n }]);\n return SymbolSpreads;\n}();\nvar _default = SymbolSpreads;\nexports[\"default\"] = _default;\n\n},{}],4:[function(require,module,exports){\n'use strict';\n\nvar _ForexSpreads = _interopRequireDefault(require(\"../../includes/ForexSpreads.js\"));\nvar _ForexBrokerSpreads = _interopRequireDefault(require(\"../../includes/ForexBrokerSpreads.js\"));\nvar _SymbolSpreads = _interopRequireDefault(require(\"../../includes/SymbolSpreads.js\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nwindow.ForexSpreads = _ForexSpreads[\"default\"];\nwindow.ForexBrokerSpreads = _ForexBrokerSpreads[\"default\"];\nwindow.SymbolSpreads = _SymbolSpreads[\"default\"];\n\n},{\"../../includes/ForexBrokerSpreads.js\":1,\"../../includes/ForexSpreads.js\":2,\"../../includes/SymbolSpreads.js\":3}]},{},[4]);\n"]}