{"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","_typeof","obj","Symbol","iterator","constructor","prototype","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","_createClass","protoProps","staticProps","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","Number","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","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","entityType","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","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","rebateBrokers","premiumBrokers","superPremiumBrokers","sortedSymbol","order","scrollLeft","scrollTop","scrolling","topScrolling","charAt","slice","data","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","tempSpread","index","tsymbol","tspreads","tempSymbolSpread","array","randomIndex","currentIndex","Math","floor","random","_ref","dir","screen","spreadInfo","logo","link","tooltipStr","body","CbfBrokerId","TableBodyContent","each","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","__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 _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(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, _toPropertyKey(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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\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.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 this.entityType = \"ForexBroker\";\n }\n _createClass(ForexSpreads, [{\n key: \"Url\",\n value: function Url(key) {\n return this.spreadsRoot + this.urls[key];\n }\n }, {\n key: \"ToLowerFirstLetter\",\n value: function ToLowerFirstLetter(str) {\n if (!str) return str; // Handle empty or null strings\n return str.charAt(0).toLowerCase() + str.slice(1);\n }\n }, {\n key: \"InitializePage\",\n value: function InitializePage(entityType) {\n var myThis = this;\n $.ajax({\n url: myThis.Url('InitialSpreads'),\n data: {\n entityType: entityType\n },\n type: \"GET\",\n success: function success(res) {\n myThis.entityType = entityType;\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(entityType) {\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, 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 && myThis.sortedSymbol.order * (receivingSpreads[myThis.selectedSpread] < prevViewTempSpread || receivingSpreads[myThis.selectedSpread] > nextViewTempSpread && nextViewTempSpread >= 0) > 0;\n if (f == true) {\n if (viewTempSpreads.symbol.name == \"XAGUSD\") {\n f = viewTempSpreads[myThis.selectedSpread].toFixed(3) != receivingSpreads[myThis.selectedSpread].toFixed(3);\n } else f = viewTempSpreads[myThis.selectedSpread].toFixed(2) != receivingSpreads[myThis.selectedSpread].toFixed(2);\n }\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 if (f == true) {\n if (viewTempSpreads.symbol.name == \"XAGUSD\") {\n f = (viewTempSpreads[myThis.selectedSpread] + commission).toFixed(3) != (receivingSpreads[myThis.selectedSpread] + commission).toFixed(3);\n } else f = (viewTempSpreads[myThis.selectedSpread] + commission).toFixed(2) != (receivingSpreads[myThis.selectedSpread] + commission).toFixed(2);\n }\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 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 && viewTempSpreads) {\n if (myThis.isCommission == false) {\n $(td).children(\"label\").html(usingSpread < -1e-7 ? \"-\" : viewTempSpreads.symbol.name == \"XAGUSD\" ? usingSpread.toFixed(3) : usingSpread.toFixed(2));\n } else {\n $(td).children(\"label\").html(usingSpread < -1e-7 ? \"-\" : viewTempSpreads.symbol.name == \"XAGUSD\" ? (usingSpread + commission).toFixed(3) : (usingSpread + commission).toFixed(2));\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.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 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 $('#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 _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(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, _toPropertyKey(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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\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"]}