{"version":3,"file":"SiteSearch.bundle.js","mappings":"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","sources":["webpack://advfnweb/webpack/runtime/chunk loaded","webpack://advfnweb/./advfn3/content/_common/site-search/src/app.js","webpack://advfnweb/./advfn3/content/_common/site-search/src/js/AnalyticsTagger.js","webpack://advfnweb/./advfn3/content/_common/site-search/src/js/RecentStocks.js","webpack://advfnweb/./advfn3/content/_common/site-search/src/js/ResultsBox.js","webpack://advfnweb/./advfn3/content/_common/site-search/src/js/SearchBox.js","webpack://advfnweb/./advfn3/content/_common/site-search/src/js/Sidebar.js","webpack://advfnweb/./advfn3/content/_common/site-search/src/js/SiteSearch.js","webpack://advfnweb/./advfn3/content/_common/site-search/src/js/ToplistList.js","webpack://advfnweb/./advfn3/content/_common/site-search/src/js/results-box/SearchResults.js","webpack://advfnweb/./advfn3/content/_common/site-search/src/js/results-box/SearchResultsTable.js","webpack://advfnweb/./advfn3/content/_common/site-search/src/js/results-box/SearchResultsTableRow.js","webpack://advfnweb/./advfn3/content/_common/site-search/src/js/results-box/TrendingNow.js","webpack://advfnweb/./advfn3/content/_common/site-search/src/js/sidebar/GeneralCreative.js","webpack://advfnweb/./advfn3/content/_common/site-search/src/js/sidebar/TopBrokers.js","webpack://advfnweb/./advfn3/content/_common/site-search/src/scss/main.scss?1350","webpack://advfnweb/webpack/bootstrap","webpack://advfnweb/webpack/runtime/compat get default export","webpack://advfnweb/webpack/runtime/define property getters","webpack://advfnweb/webpack/runtime/global","webpack://advfnweb/webpack/runtime/hasOwnProperty shorthand","webpack://advfnweb/webpack/runtime/make namespace object","webpack://advfnweb/webpack/runtime/node module decorator","webpack://advfnweb/webpack/runtime/runtimeId","webpack://advfnweb/webpack/runtime/jsonp chunk loading","webpack://advfnweb/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// Main Classes\nimport SiteSearch from './js/SiteSearch';\n\n// Styles\nimport './scss/main.scss';\n\ndocument.addEventListener('DOMContentLoaded', () =>\n{\n const searchElement = document.querySelector('[data-app=\"site-search-global\"]');\n if (searchElement)\n {\n new SiteSearch(searchElement, document.getElementById('header-searchbar'));\n }\n});\n","class AnalyticsTagger\n{\n constructor(eventName, location, symbol = null)\n {\n [this.site] = window.location.host.split('.');\n this.eventName = eventName;\n this.location = location;\n this.symbol = symbol;\n\n this.amplitudeObject = {\n event: `${this.eventName}`,\n location: `${this.location}`,\n view: `${this.site}`,\n };\n\n if (this.symbol)\n {\n this.amplitudeObject.symbol = this.symbol;\n }\n\n this._pushEvent();\n }\n\n _pushEvent()\n {\n window.dataLayer.push(this.amplitudeObject);\n }\n}\n\nmodule.exports = AnalyticsTagger;\n","const axios = require('axios');\n\nconst API_ENDPOINT = '/common/api/recent-stocks/GetForUser';\nconst MAX_STOCKS = 5;\n\nclass RecentStocks\n{\n /**\n * @param {HTMLDivElement} element\n * @param {SiteSearch} siteSearch\n */\n constructor(element, siteSearch)\n {\n /** @type {HTMLDivElement} */\n this._element = element;\n\n /** @type {SiteSearch} */\n this._siteSearch = siteSearch;\n\n /** @type {HTMLDivElement} */\n this._stocksContainer = this._element.querySelector('.recent-stocks-container');\n\n this._loaded = false;\n }\n\n load()\n {\n if (!this._loaded)\n {\n this._loadRecentStocks();\n this._loaded = true;\n }\n }\n\n _loadRecentStocks()\n {\n axios.get(API_ENDPOINT)\n .then(({ status, data }) =>\n {\n if (status === 200)\n {\n if (data.status === 'success')\n {\n this._loadRecentStocksItems(data.result.recent_stocks);\n }\n }\n })\n .catch(() => {});\n }\n\n _loadRecentStocksItems(recentStocks)\n {\n if (recentStocks.length === 0) return;\n\n recentStocks = recentStocks.slice(0, MAX_STOCKS);\n\n this._stocksContainer.innerHTML = '';\n recentStocks.forEach((stock) =>\n {\n const anchor = document.createElement('a');\n anchor.href = stock.links.quote;\n\n /** @type {HTMLDivElement} */\n const stockElement = document.createElement('div');\n stockElement.classList.add('recent-stock');\n\n /** @type {HTMLDivElement} */\n const marketElement = document.createElement('div');\n marketElement.classList.add('market');\n marketElement.innerText = stock.market.symbol;\n stockElement.appendChild(marketElement);\n\n /** @type {HTMLDivElement} */\n const symbolElement = document.createElement('div');\n symbolElement.classList.add('symbol');\n symbolElement.innerText = stock.symbol;\n stockElement.appendChild(symbolElement);\n\n /** @type {HTMLDivElement} */\n const companyElement = document.createElement('div');\n companyElement.classList.add('company');\n companyElement.innerText = stock.short_name;\n stockElement.appendChild(companyElement);\n\n anchor.appendChild(stockElement);\n\n this._stocksContainer.appendChild(anchor);\n });\n }\n}\n\nmodule.exports = RecentStocks;\n","const SearchResults = require('./results-box/SearchResults');\nconst TrendingNow = require('./results-box/TrendingNow');\n\nclass ResultsBox\n{\n /**\n * @param {HTMLDivElement} element\n * @param {SiteSearch} siteSearch\n */\n constructor(element, searchBox, siteSearch)\n {\n /** @type {HTMLDivElement} */\n this._element = element;\n\n /** @type {SearchBox} */\n this._searchBox = searchBox;\n this._searchBox.setResultsBox(this);\n\n /** @type {SiteSearch} */\n this._siteSearch = siteSearch;\n\n /** @type {SearchResults} */\n this._searchResults = new SearchResults(\n this._element.querySelector('[data-app=\"search-results\"]'),\n this,\n this._siteSearch,\n );\n\n /** @type {TrendingNow} */\n this._trendingNow = new TrendingNow(\n this._element.querySelector('[data-app=\"trending-now\"]'),\n this,\n this._siteSearch,\n );\n\n this._searchResults.hide();\n this._trendingNow.show();\n }\n\n load()\n {\n this._searchResults.load();\n this._trendingNow.load();\n }\n\n displayTrendingNow()\n {\n this._searchResults.hide();\n this._trendingNow.show();\n }\n\n clearSearchBox()\n {\n this._searchBox.clearInputValue();\n }\n\n /**\n * @param {string} term\n * @returns {boolean}\n */\n hasSearchResults(term)\n {\n return !this._searchResults.isEmpty(term);\n }\n\n /**\n * @param {string} term\n * @param {number} index\n */\n clickSearchResult(term, index = 0)\n {\n this._searchResults.clickSearchResult(term, index);\n }\n\n focusSearchResults()\n {\n this._searchResults.focusSearchResults();\n }\n\n /**\n * @param {string} inputValue\n */\n displaySearchResults(inputValue)\n {\n this._searchResults.displaySearchFor(inputValue);\n\n this._trendingNow.hide();\n this._searchResults.show();\n }\n}\n\nmodule.exports = ResultsBox;\n","class SearchBox\n{\n /**\n * @param {HTMLDivElement} element\n * @param {SiteSearch} siteSearch\n */\n constructor(element, siteSearch)\n {\n /** @type {HTMLDivElement} */\n this._element = element;\n\n /** @type {SiteSearch} */\n this._siteSearch = siteSearch;\n\n /** @type {HTMLInputElement} */\n this._searchInputBox = this._element.querySelector('[data-app=\"search-input\"]');\n this._searchInputBox.addEventListener('keydown', (event) =>\n {\n this._onSearchInputBoxKeydown(event);\n });\n\n /** @type {HTMLButtonElement} */\n this._buttonClear = this._element.querySelector('[data-app=\"search-clear\"]');\n this._buttonClear.style.visibility = 'hidden';\n this._buttonClear.addEventListener('click', (event) =>\n {\n this._onButtonClearClick(event);\n });\n\n /** @type {ResultsBox} */\n this._resultsBox = null;\n\n this._inputCheckInvertal = setInterval(() =>\n {\n this._checkInput();\n }, 150);\n }\n\n setValue(value)\n {\n this._searchInputBox.value = value;\n }\n\n requestFocus()\n {\n this._searchInputBox.focus();\n }\n\n /**\n * @param {ResultsBox} resultsBox\n */\n setResultsBox(resultsBox)\n {\n this._resultsBox = resultsBox;\n }\n\n /**\n * @private\n * @param {KeyboardEvent} event\n */\n _onSearchInputBoxKeydown(event)\n {\n if (event.key === 'Escape')\n {\n this._siteSearch.close();\n }\n\n if (event.key === 'Enter')\n {\n event.preventDefault();\n this._performSearch();\n }\n\n if (event.key === 'ArrowDown' || event.key === 'Tab')\n {\n event.preventDefault();\n this._goIntoSearchResults();\n }\n }\n\n /**\n * @private\n */\n _performSearch()\n {\n const searchValue = this._getInputValue();\n if (this._resultsBox.hasSearchResults(searchValue))\n {\n this._resultsBox.clickSearchResult(searchValue);\n }\n }\n\n /**\n * @private\n */\n _checkInput()\n {\n const inputValue = this._getInputValue();\n\n if (inputValue.length === 0)\n {\n this._resultsBox.displayTrendingNow();\n this._buttonClear.style.visibility = 'hidden';\n return;\n }\n\n this._buttonClear.style.visibility = 'visible';\n this._resultsBox.displaySearchResults(inputValue);\n }\n\n /**\n * @private\n * @returns {string}\n */\n _getInputValue()\n {\n return this._searchInputBox.value.trim();\n }\n\n /**\n * @private\n * @param {MouseEvent} event\n */\n _onButtonClearClick()\n {\n this.clearInputValue();\n }\n\n clearInputValue()\n {\n this._searchInputBox.value = '';\n }\n\n /**\n * @private\n */\n _goIntoSearchResults()\n {\n const inputValue = this._getInputValue();\n if (inputValue === '') return;\n\n if (!this._resultsBox.hasSearchResults(inputValue)) return;\n\n this._resultsBox.focusSearchResults();\n }\n}\n\nmodule.exports = SearchBox;\n","const GeneralCreative = require('./sidebar/GeneralCreative');\nconst TopBrokers = require('./sidebar/TopBrokers');\n\nclass Sidebar\n{\n /**\n *\n * @param {HTMLElement} element\n * @param {SiteSearch} siteSearch\n */\n constructor(element, siteSearch)\n {\n this._element = element;\n this._siteSearch = siteSearch;\n\n this._sideBarType = this._siteSearch.getInitialData('sidebar');\n\n this._content = null;\n switch (this._sideBarType)\n {\n case 'top_brokers':\n case 'top_brokers_mx':\n this._content = new TopBrokers(\n this._element.querySelector('[data-app=\"sidebar-top-brokers\"]'),\n this._siteSearch.getInitialData('site'),\n );\n break;\n case 'creative_232x595':\n this._content = new GeneralCreative(this._element.querySelector('[data-app=\"sidebar-general-creative\"]'));\n break;\n }\n\n this._loaded = false;\n }\n\n load()\n {\n if (!this._loaded && this._content !== null)\n {\n this._content.load();\n }\n\n this._loaded = true;\n }\n}\n\nmodule.exports = Sidebar;\n","require('./types');\n\nconst RecentStocks = require('./RecentStocks');\nconst ResultsBox = require('./ResultsBox');\nconst SearchBox = require('./SearchBox');\nconst Sidebar = require('./Sidebar');\nconst ToplistList = require('./ToplistList');\nconst AnalyticsTagger = require('./AnalyticsTagger');\n\nclass SiteSearch\n{\n /**\n * @param {HTMLDivElement} element\n * @param {HTMLElement} triggerElement\n */\n constructor(element, triggerElement)\n {\n /** @type {HTMLDivElement} */\n this._element = element;\n\n /** @type {HTMLDivElement} */\n this._searchModal = this._element.querySelector('.site-search-modal');\n\n /** @type {HTMLDivElement} */\n this._searchContainer = this._element.querySelector('.search-container');\n\n /** @type {HTMLButtonElement} */\n this._searchCloseButton = this._searchContainer.querySelector('[data-app=search-close]');\n\n /** @type {HTMLDivElement} */\n this._mainContainer = this._searchContainer.querySelector('.main-container');\n\n /** @type {HTMLElement} */\n this._triggerElement = triggerElement;\n\n /** @type {SiteSearchInitialData} */\n this._initialData = {};\n this._loadInitialData();\n\n /** @type {SearchBox} */\n this._searchBox = new SearchBox(this._element.querySelector('[data-app=\"search-box\"]'), this);\n\n /** @type {ResultsBox} */\n this._resultsBox = new ResultsBox(\n this._element.querySelector('[data-app=\"results-box\"]'),\n this._searchBox,\n this,\n );\n\n /** @type {ToplistList} */\n this._toplistList = new ToplistList(this._element.querySelector('[data-app=\"toplists-list\"]'), this);\n\n if (this.isLoggedIn())\n {\n /** @type {RecentStocks} */\n this._recentStocks = new RecentStocks(this._element.querySelector('[data-app=\"recent-stocks\"]'), this);\n }\n\n /** @type {Sidebar} */\n this._sidebar = new Sidebar(this._searchContainer.querySelector('.sidebar-container'), this);\n\n /** @type {boolean} */\n this._open = false;\n\n this._attachDocumentEvents();\n\n this._verifyInitialState();\n }\n\n open()\n {\n this._open = true;\n\n this._handleContainerPosition();\n\n this._fetchTriggerValue();\n\n document.body.style.overflow = 'hidden';\n document.body.style.marginRight = `${window.innerWidth - document.body.clientWidth}px`;\n\n this._element.style.display = 'block';\n\n new AnalyticsTagger('search_box_open', 'header');\n\n this._loadElementData();\n }\n\n close()\n {\n this._open = false;\n\n document.body.style.overflow = '';\n document.body.style.marginRight = '';\n\n this._element.style.display = 'none';\n }\n\n /**\n * @param {string} key\n * @returns {*}\n */\n getInitialData(key)\n {\n if (key in this._initialData)\n {\n return this._initialData[key];\n }\n\n return null;\n }\n\n /**\n * @private\n */\n _attachDocumentEvents()\n {\n document.addEventListener('keyup', (event) =>\n {\n if (event.key === 'Escape')\n {\n this.close();\n }\n\n if (event.key === '/')\n {\n // Do not open search if user is typing in an input\n if (event.target instanceof HTMLInputElement) return;\n if (event.target instanceof HTMLTextAreaElement) return;\n\n this.open();\n }\n });\n\n window.addEventListener('resize', () => this._handleContainerPosition());\n\n this._searchCloseButton.addEventListener('click', () =>\n {\n this.close();\n });\n\n this._triggerElement.addEventListener('focus', () =>\n {\n this.open();\n });\n\n this._searchModal.addEventListener('click', () =>\n {\n this.close();\n });\n\n this._searchContainer.addEventListener('click', (event) =>\n {\n event.stopPropagation();\n });\n }\n\n /**\n * Verifies the state of the trigger element on first run.\n * This is for users who have clicked the search box before the page loads.\n *\n * @private\n */\n _verifyInitialState()\n {\n if (this._triggerElement === document.activeElement)\n {\n this.open();\n }\n }\n\n /**\n * @param {bool} isRetry Stops retrying more than once.\n * @private\n */\n _handleContainerPosition(isRetry = false)\n {\n if (!this._open) return;\n\n this._element.style.visibility = 'hidden';\n\n this._searchContainer.style.margin = '';\n this._searchContainer.style.position = '';\n\n const triggerElementPosition = this._triggerElement.getBoundingClientRect();\n\n const screenWidth = window.innerWidth > window.screen.width\n ? window.screen.width : window.innerWidth;\n const screenHeight = window.innerHeight > window.screen.height\n ? window.screen.height : window.innerHeight;\n\n const containerWidth = parseInt(window.getComputedStyle(this._searchContainer).width, 10);\n const containerHeight = this._searchContainer.getBoundingClientRect().height;\n\n const yOffset = (screenHeight - containerHeight) / 2; // Center vertically\n\n // Retry positioning after container has properly loaded\n if ((containerHeight === 0) && !isRetry)\n {\n setTimeout(() => this._handleContainerPosition(true), 50);\n return;\n }\n\n if ((containerWidth + triggerElementPosition.x) > screenWidth)\n {\n this._positionWithWindow(0, yOffset);\n this._searchContainer.style.margin = '0 auto';\n this._searchContainer.style.position = 'relative';\n return;\n }\n\n if ((containerHeight + triggerElementPosition.y) > screenHeight)\n {\n this._positionWithWindow(triggerElementPosition.x, yOffset);\n return;\n }\n\n this._positionWithTriggerElement();\n }\n\n /**\n * @private\n */\n _positionWithTriggerElement()\n {\n const padding = parseInt(window.getComputedStyle(this._mainContainer).paddingLeft, 10);\n const inputHeight = this._triggerElement.offsetHeight;\n\n let { bottom, left } = this._triggerElement.getBoundingClientRect();\n\n left -= padding;\n bottom -= padding + inputHeight;\n\n this._positionWithWindow(left, bottom);\n }\n\n /**\n * @param {number} xOffset\n * @param {number} yOffset\n */\n _positionWithWindow(xOffset, yOffset)\n {\n if (yOffset < 0) yOffset = 0;\n if (xOffset < 0) xOffset = 0;\n\n xOffset = parseInt(xOffset, 10);\n yOffset = parseInt(yOffset, 10);\n\n this._searchContainer.style.top = `${yOffset}px`;\n this._searchContainer.style.left = `${xOffset}px`;\n\n this._element.style.visibility = 'visible';\n\n this._searchBox.requestFocus();\n }\n\n /**\n * @returns {boolean}\n */\n isLoggedIn()\n {\n return !!this.getInitialData('loggedIn');\n }\n\n /**\n * @private\n */\n _loadInitialData()\n {\n this._initialData = JSON.parse(atob(this._element.dataset.initial));\n }\n\n /**\n * @private\n */\n _loadElementData()\n {\n this._resultsBox.load();\n this._toplistList.load();\n\n if (this.isLoggedIn())\n {\n this._recentStocks.load();\n }\n\n this._sidebar.load();\n }\n\n /**\n * @private\n */\n _fetchTriggerValue()\n {\n if (this._triggerElement.value)\n {\n this._searchBox.setValue(this._triggerElement.value);\n this._triggerElement.value = '';\n }\n }\n}\n\nmodule.exports = SiteSearch;\n","const axios = require('axios');\n\nconst { Glide } = window;\n\nconst API_ENDPOINT = '/common/api/markets/GetDefault';\n\nclass ToplistList\n{\n /**\n * @param {HTMLDivElement} element\n * @param {SiteSearch} siteSearch\n */\n constructor(element, siteSearch)\n {\n /** @type {HTMLDivElement} */\n this._element = element;\n this._element.classList.add('glide');\n\n /** @type {SiteSearch} */\n this._siteSearch = siteSearch;\n\n /** @type {HTMLDivElement} */\n this._listContainer = this._element.querySelector('.toplists-container');\n this._listContainer.classList.add('glide__track');\n this._listContainer.dataset.glideEl = 'track';\n\n this._loaded = false;\n }\n\n load()\n {\n if (!this._loaded)\n {\n this._loadToplists();\n this._loaded = true;\n }\n }\n\n _loadToplists()\n {\n axios.get(`${API_ENDPOINT}?site=${this._siteSearch.getInitialData('site')}`)\n .then(({ status, data }) =>\n {\n if (status === 200)\n {\n if (data.status === 'success')\n {\n const allToplists = data.result.toplists.main.concat(data.result.toplists.other);\n this._loadToplistItems(allToplists);\n }\n }\n })\n .catch(() => {});\n }\n\n _loadToplistItems(toplists)\n {\n this._listContainer.innerHTML = '';\n\n const listSlides = document.createElement('ul');\n listSlides.classList.add('glide__slides');\n\n toplists.forEach((toplist) =>\n {\n /** @type {HTMLLIElement} */\n const listItem = document.createElement('li');\n listItem.classList.add('glide__slide');\n\n /** @type {HTMLAnchorElement} */\n const item = document.createElement('a');\n item.classList.add('toplist-item');\n item.href = toplist.link;\n\n /** @type {HTMLSpanElement} */\n const flagSpan = document.createElement('span');\n flagSpan.classList.add('flag');\n flagSpan.dataset.market = toplist.symbol;\n item.appendChild(flagSpan);\n\n /** @type {HTMLSpanElement} */\n const marketSpan = document.createElement('span');\n marketSpan.classList.add('market');\n marketSpan.innerText = toplist.symbol;\n item.appendChild(marketSpan);\n\n listItem.appendChild(item);\n listSlides.appendChild(listItem);\n });\n\n this._listContainer.appendChild(listSlides);\n\n this._initGlide();\n }\n\n _initGlide()\n {\n // Create the Glide Arrows\n const glideArrows = document.createElement('div');\n glideArrows.classList.add('glide__arrows');\n glideArrows.dataset.glideEl = 'controls';\n\n const glideArrowLeft = document.createElement('button');\n glideArrowLeft.type = 'button';\n glideArrowLeft.classList.add('glide__arrow');\n glideArrowLeft.classList.add('glide__arrow--left');\n glideArrowLeft.dataset.glideDir = '<';\n glideArrowLeft.innerHTML = '<';\n glideArrows.appendChild(glideArrowLeft);\n\n const glideArrowRight = document.createElement('button');\n glideArrowRight.type = 'button';\n glideArrowRight.classList.add('glide__arrow');\n glideArrowRight.classList.add('glide__arrow--right');\n glideArrowRight.dataset.glideDir = '>';\n glideArrowRight.innerHTML = '>';\n glideArrows.appendChild(glideArrowRight);\n\n this._element.appendChild(glideArrows);\n\n new Glide(this._element, {\n type: 'carousel',\n perView: 5,\n startAt: 0,\n }).mount();\n }\n}\n\nmodule.exports = ToplistList;\n","const md5 = require('md5');\nconst axios = require('axios');\nconst SearchResultsTable = require('./SearchResultsTable');\n\nconst API_ENDPOINT = '/common/api/search/SymbolLookup';\n\nclass SearchResults\n{\n /**\n * @param {HTMLDivElement} element\n * @param {ResultsBox} resultsBox\n * @param {SiteSearch} siteSearch\n */\n constructor(element, resultsBox, siteSearch)\n {\n /** @type {HTMLDivElement} */\n this._element = element;\n\n /** @type {ResultsBox} */\n this._resultsBox = resultsBox;\n\n /** @type {SiteSearch} */\n this._siteSearch = siteSearch;\n\n /** @type {HTMLDivElement} */\n this._tableContainer = this._element.querySelector('.table-container');\n\n /** @type {SearchResultsTable} */\n this._resultsTable = new SearchResultsTable(\n this._element.querySelector('.search-results-table'),\n this._tableContainer,\n );\n\n /** @type {boolean} */\n this._loaded = false;\n\n /** @type {string} */\n this._currentSearch = '';\n\n /** @type {Object} */\n this._searchResults = {};\n\n this._setUpNoResultsBox();\n }\n\n show()\n {\n this._element.style.display = 'block';\n }\n\n hide()\n {\n this._element.style.display = 'none';\n }\n\n load()\n {\n if (!this._loaded)\n {\n this._loaded = true;\n }\n }\n\n /**\n * @param {string} term\n * @returns {SymbolSearchResult[]}\n */\n getCurrentSearchResults(term)\n {\n term = this._cleanSearchTerm(term);\n const searchKey = this._getSearchKey(term);\n if (this._searchResults[searchKey])\n {\n return this._searchResults[searchKey];\n }\n return [];\n }\n\n /**\n * @param {string} term\n * @returns {boolean}\n */\n isEmpty(term)\n {\n return this.getCurrentSearchResults(term).length === 0;\n }\n\n /**\n * @param {string} term\n * @param {number} index\n */\n clickSearchResult(term, index)\n {\n const results = this.getCurrentSearchResults(term);\n if (index < 0 || index >= results.length) return;\n\n const result = results[index];\n this._resultsTable.onResultRowClick({\n feedSymbol: result.feed_symbol,\n });\n }\n\n /**\n * @param {string} inputValue\n */\n displaySearchFor(inputValue)\n {\n if (this._currentSearch === inputValue) return;\n\n this._getSearchResults(inputValue)\n .then(({ search, results }) =>\n {\n if (results.length === 0)\n {\n this.showNoResults(search);\n }\n else\n {\n this.hideNoResults();\n this._displayResultRows(results);\n }\n\n this._currentSearch = inputValue;\n })\n .catch(() => { });\n }\n\n /**\n * @param {SymbolSearchResult[]} results\n */\n _displayResultRows(results)\n {\n this._resultsTable.setResults(results);\n }\n\n /**\n * @param {string} term\n * @returns {string}\n */\n _cleanSearchTerm(term)\n {\n if (typeof term !== 'string') return '';\n\n if (term.length === 0) return '';\n\n return term.trim().toLowerCase();\n }\n\n /**\n * @param {string} term\n * @returns {Promise<{search: string, results: Object}>}\n */\n _getSearchResults(term)\n {\n term = this._cleanSearchTerm(term);\n\n return new Promise((resolve, reject) =>\n {\n if (term.length === 0)\n {\n resolve({\n search: term,\n results: [],\n });\n return;\n }\n\n const searchKey = this._getSearchKey(term);\n if (this._searchResults[searchKey])\n {\n resolve({\n search: term,\n results: this._searchResults[searchKey],\n });\n return;\n }\n\n axios.get(`${API_ENDPOINT}?term=${term}`)\n .then(({ status, data }) =>\n {\n if (status === 200)\n {\n if (data.status === 'success')\n {\n this._searchResults[searchKey] = data.result.results;\n resolve({\n search: term,\n results: this._searchResults[searchKey],\n });\n return;\n }\n if (data.status === 'fail')\n {\n if (data.result.errorCode === 602)\n {\n this._searchResults[searchKey] = [];\n resolve({\n search: term,\n results: this._searchResults[searchKey],\n });\n }\n }\n }\n reject([]);\n })\n .catch(() => { reject([]); });\n });\n }\n\n /**\n * @param {string} term\n * @returns {string}\n */\n _getSearchKey(term)\n {\n term = this._cleanSearchTerm(term);\n return `SiteSearch::${md5(term)}`;\n }\n\n focusSearchResults()\n {\n this._resultsTable.focus();\n }\n\n /**\n * @param {string} term\n */\n showNoResults(term)\n {\n this._tableContainer.style.display = 'none';\n this._noResultsSearchQuery.innerText = term;\n this._noResultsElement.style.display = '';\n }\n\n hideNoResults()\n {\n this._tableContainer.style.display = '';\n this._noResultsElement.style.display = 'none';\n }\n\n /**\n * @private\n */\n _setUpNoResultsBox()\n {\n /** @type {HTMLDivElement} */\n this._noResultsElement = this._element.querySelector('.no-results');\n this._noResultsElement.style.display = 'none';\n\n /** @type {HTMLSpanElement} */\n this._noResultsSearchQuery = this._noResultsElement.querySelector('.search-query');\n\n this._clearSearchButton = this._noResultsElement.querySelector('[data-app=\"clear-search-box\"]');\n\n this._clearSearchButton.addEventListener('click', () =>\n {\n this._resultsBox.clearSearchBox();\n });\n }\n}\n\nmodule.exports = SearchResults;\n","const SearchResultsTableRow = require('./SearchResultsTableRow');\n\nclass SearchResultsTable\n{\n /**\n * @param {HTMLTableElement} element\n * @param {HTMLDivElement} tableContainer\n */\n constructor(element, tableContainer)\n {\n /** @type {HTMLTableElement} */\n this._element = element;\n\n /** @type {HTMLDivElement} */\n this._tableContainer = tableContainer;\n\n this._element.tabIndex = 1;\n\n /** @type {Object} */\n this._rows = {};\n\n this._currentRow = null;\n }\n\n /**\n * @returns {HTMLTableElement}\n */\n getElement()\n {\n return this._element;\n }\n\n focus()\n {\n this._element.focus();\n this._currentRow = -1;\n\n this.focusNextRow();\n }\n\n focusNextRow()\n {\n const numResults = Object.keys(this._rows).length;\n\n this._currentRow += 1;\n\n if (this._currentRow >= numResults)\n {\n this._currentRow = 0;\n }\n\n this._focusRow(this._currentRow);\n }\n\n focusPreviousRow()\n {\n const numResults = Object.keys(this._rows).length;\n\n this._currentRow -= 1;\n\n if (this._currentRow < 0)\n {\n this._currentRow = numResults - 1;\n }\n\n this._focusRow(this._currentRow);\n }\n\n /**\n * @param {number} index\n * @private\n */\n _focusRow(index)\n {\n const numRows = Object.keys(this._rows).length;\n\n const selectedRow = this._rows[Object.keys(this._rows)[index]];\n selectedRow.focus();\n\n let scrolling = 0;\n\n if (index > 0)\n {\n const rowOffset = selectedRow.getElement().offsetTop;\n const rowHeight = selectedRow.getElement().offsetHeight;\n\n if (index === numRows - 1)\n {\n scrolling = rowHeight * numRows * 100;\n }\n else\n {\n scrolling = rowOffset - (rowHeight * 2);\n }\n }\n\n if (scrolling < 0) scrolling = 0;\n\n this._tableContainer.scrollTop = scrolling;\n }\n\n /**\n * @param {SymbolSearchResult[]} results\n */\n setResults(results)\n {\n this._element.innerHTML = '';\n this._rows = {};\n\n results.forEach((result) =>\n {\n const row = new SearchResultsTableRow(result, this);\n this._rows[result.feed_symbol] = row;\n this._element.appendChild(row.getElement());\n });\n }\n\n /**\n * @param {{feedSymbol: string}} param0\n */\n onResultRowClick({ feedSymbol })\n {\n if (!this._rows[feedSymbol]) return;\n\n this._rows[feedSymbol].click();\n }\n}\n\nmodule.exports = SearchResultsTable;\n","const AnalyticsTagger = require('../AnalyticsTagger');\n\nclass SearchResultsTableRow\n{\n /**\n * @param {SymbolSearchResult} result\n * @param {SearchResultsTable} resultsTable\n */\n constructor(result, resultsTable)\n {\n /** @type {HTMLTableRowElement} */\n this._element = document.createElement('tr');\n this._element.classList.add('results-row');\n\n /** @type {SymbolSearchResult} */\n this._result = result;\n\n /** @type {SearchResultsTable} */\n this._resultsTable = resultsTable;\n\n this._element.tabIndex = this._resultsTable.getElement().tabIndex + 1;\n\n this._buildRow(result);\n\n this._attachEvents();\n }\n\n /**\n * @returns {HTMLTableRowElement}\n */\n getElement()\n {\n return this._element;\n }\n\n click()\n {\n this._onClick();\n }\n\n focus()\n {\n this._element.focus();\n }\n\n /**\n * @private\n */\n _attachEvents()\n {\n this._element.addEventListener('click', () =>\n {\n this._onClick();\n });\n\n this._element.addEventListener('keydown', (event) =>\n {\n if (event.key === 'Enter')\n {\n this._onClick();\n }\n\n if (event.key === 'ArrowDown')\n {\n event.preventDefault();\n event.stopPropagation();\n this._resultsTable.focusNextRow();\n }\n\n if (event.key === 'ArrowUp')\n {\n event.preventDefault();\n event.stopPropagation();\n this._resultsTable.focusPreviousRow();\n }\n });\n\n this._element.addEventListener('keyup', (event) =>\n {\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp')\n {\n event.preventDefault();\n event.stopPropagation();\n }\n });\n }\n\n /**\n * @private\n */\n _onClick()\n {\n new AnalyticsTagger('search_box_click_result', 'header', {\n display_symbol: this._result.display_symbol,\n feed_symbol: this._result.feed_symbol,\n market: this._result.market,\n symbol: this._result.symbol,\n name: this._result.name,\n });\n\n const redirectUrl = new URL(window.location.href);\n redirectUrl.pathname = '/common/redirector';\n redirectUrl.search = '';\n redirectUrl.searchParams.append('symbol', this._result.feed_symbol);\n window.location = redirectUrl.href;\n }\n\n /**\n * @param {SymbolSearchResult} result\n * @private\n */\n _buildRow(result)\n {\n const symbolCell = document.createElement('td');\n symbolCell.classList.add('col-symbol');\n symbolCell.innerText = result.symbol;\n\n this._element.appendChild(symbolCell);\n\n const companyCell = document.createElement('td');\n companyCell.classList.add('col-company');\n companyCell.innerText = result.name;\n\n this._element.appendChild(companyCell);\n\n const marketCell = document.createElement('td');\n marketCell.classList.add('col-market');\n\n const marketCellContainer = document.createElement('div');\n\n const flagSpan = document.createElement('span');\n flagSpan.classList.add('flag');\n flagSpan.dataset.market = result.market;\n marketCellContainer.appendChild(flagSpan);\n\n const marketNameSpan = document.createElement('span');\n marketNameSpan.classList.add('market');\n marketNameSpan.innerText = result.market;\n marketCellContainer.appendChild(marketNameSpan);\n marketCell.appendChild(marketCellContainer);\n\n this._element.appendChild(marketCell);\n }\n}\n\nmodule.exports = SearchResultsTableRow;\n","const axios = require('axios');\nconst AnalyticsTagger = require('../AnalyticsTagger');\n\nconst API_ENDPOINT = '/common/api/trending/GetForSite';\n\nclass TrendingNow\n{\n /**\n * @param {HTMLDivElement} element\n * @param {ResultsBox} resultsBox\n * @param {SiteSearch} siteSearch\n */\n constructor(element, resultsBox, siteSearch)\n {\n /** @type {HTMLDivElement} */\n this._element = element;\n\n /** @type {ResultsBox} */\n this._resultsBox = resultsBox;\n\n /** @type {SiteSearch} */\n this._siteSearch = siteSearch;\n\n /** @type {HTMLTableElement} */\n this._resultsTable = this._element.querySelector('.search-results-table');\n\n /** @type {boolean} */\n this._loaded = false;\n }\n\n show()\n {\n this._element.style.display = 'block';\n }\n\n hide()\n {\n this._element.style.display = 'none';\n }\n\n load()\n {\n if (!this._loaded)\n {\n this._loadTrendingStocks();\n this._loaded = true;\n }\n }\n\n _loadTrendingStocks()\n {\n axios.get(`${API_ENDPOINT}?site=${this._siteSearch.getInitialData('site')}`)\n .then(({ status, data }) =>\n {\n if (status === 200)\n {\n if (data.status === 'success')\n {\n this._loadTrendingStocksElements(data.result.trending_stocks);\n }\n }\n })\n .catch(() => { });\n }\n\n _loadTrendingStocksElements(trendingStocks)\n {\n this._resultsTable.innerHTML = '';\n\n trendingStocks.forEach((stock) =>\n {\n const row = document.createElement('tr');\n row.classList.add('results-row');\n\n const symbolCell = document.createElement('td');\n symbolCell.classList.add('col-symbol');\n symbolCell.innerText = stock.symbol;\n row.appendChild(symbolCell);\n\n const companyCell = document.createElement('td');\n companyCell.classList.add('col-company');\n companyCell.innerText = stock.name;\n row.appendChild(companyCell);\n\n const marketCell = document.createElement('td');\n marketCell.classList.add('col-market');\n const marketCellContainer = document.createElement('div');\n const flagSpan = document.createElement('span');\n flagSpan.classList.add('flag');\n flagSpan.dataset.market = stock.market.symbol;\n marketCellContainer.appendChild(flagSpan);\n const marketNameSpan = document.createElement('span');\n marketNameSpan.classList.add('market');\n marketNameSpan.innerText = stock.market.symbol;\n marketCellContainer.appendChild(marketNameSpan);\n marketCell.appendChild(marketCellContainer);\n row.appendChild(marketCell);\n\n row.addEventListener('click', () =>\n {\n new AnalyticsTagger('search_box_click_trending', 'header', {\n display_symbol: stock.display_symbol,\n feed_symbol: stock.feed_symbol,\n market: stock.market.symbol,\n symbol: stock.symbol,\n name: stock.name,\n });\n\n window.location = stock.links.quote;\n });\n\n this._resultsTable.appendChild(row);\n });\n }\n}\n\nmodule.exports = TrendingNow;\n","class GeneralCreative\n{\n /**\n * @param {HTMLElement} element\n */\n constructor(element)\n {\n this._element = element;\n this._loaded = false;\n }\n\n load()\n {\n if (!this._loaded)\n {\n this._loadUTMLink();\n this._loaded = true;\n }\n }\n\n _loadUTMLink()\n {\n const dataUTM = this._element.dataset.utm;\n const utmLink = atob(dataUTM);\n\n /** @type {NodeListOf} */\n const utmLinkElements = this._element.querySelectorAll('a[data-app=\"utm-anchor\"]');\n utmLinkElements.forEach((element) =>\n {\n element.href = utmLink;\n });\n }\n}\n\nmodule.exports = GeneralCreative;\n","const axios = require('axios');\n\nconst API_ENDPOINT = '/common/commercial/top-broker-api';\n\nclass TopBrokers\n{\n /**\n * @param {HTMLElement} element\n * @param {string} site\n */\n constructor(element, site)\n {\n this._element = element;\n this._site = site;\n\n this._cardsContainer = this._element.querySelector('[data-app=\"cards-container\"]');\n\n this._loaded = false;\n }\n\n load()\n {\n if (!this._loaded)\n {\n this._loadTopBrokersCards();\n this._loaded = true;\n }\n }\n\n _loadTopBrokersCards()\n {\n axios.get(`${API_ENDPOINT}?site=${this._site}`)\n .then(({ status, data }) =>\n {\n if (status === 200)\n {\n if (data.status === 'ok')\n {\n const brokerItems = data.items;\n this._loadTopBrokersCardsItems(brokerItems);\n }\n }\n })\n .catch(() => {});\n }\n\n _loadTopBrokersCardsItems(brokerItems)\n {\n this._cardsContainer.innerHTML = '';\n\n brokerItems.forEach((item) =>\n {\n /** @type {HTMLDivElement} */\n const card = document.createElement('div');\n card.classList.add('top-broker-card');\n\n /** @type {HTMLDivElement} */\n const cardLogo = document.createElement('div');\n cardLogo.classList.add('card-logo');\n\n /** @type {HTMLAnchorElement} */\n const cardLogoLink = document.createElement('a');\n cardLogoLink.href = item.url;\n cardLogoLink.target = '_blank';\n cardLogoLink.rel = 'nofollow';\n\n /** @type {HTMLImageElement} */\n const cardLogoImage = document.createElement('img');\n cardLogoImage.src = item.logo_url;\n\n cardLogoLink.appendChild(cardLogoImage);\n cardLogo.appendChild(cardLogoLink);\n\n /** @type {HTMLDivElement} */\n const cardTags = document.createElement('div');\n cardTags.classList.add('card-tags');\n cardTags.innerText = this._getTagsForItem(item).join(' ยท ');\n\n /** @type {HTMLDivElement} */\n const cardAnchor = document.createElement('div');\n cardAnchor.classList.add('card-anchor');\n\n /** @type {HTMLAnchorElement} */\n const cardAnchorLink = document.createElement('a');\n cardAnchorLink.href = item.url;\n cardAnchorLink.target = '_blank';\n cardAnchorLink.rel = 'nofollow';\n cardAnchorLink.innerHTML = `${item.company_display_name} `;\n\n cardAnchor.appendChild(cardAnchorLink);\n\n /** @type {HTMLDivElement} */\n const cardDisclaimer = document.createElement('div');\n cardDisclaimer.classList.add('card-disclaimer');\n cardDisclaimer.innerText = item.disclaimer;\n\n card.appendChild(cardLogo);\n card.appendChild(cardTags);\n card.appendChild(cardAnchor);\n card.appendChild(cardDisclaimer);\n\n this._cardsContainer.appendChild(card);\n });\n }\n\n /**\n * @param {object} item\n * @returns {string[]}\n */\n _getTagsForItem(item)\n {\n const tags = [];\n\n if (item.stocks === 'on')\n {\n tags.push('Stocks');\n }\n\n if (item.spread_betting === 'on')\n {\n tags.push('Spread Betting');\n }\n\n if (item.cfd_trading === 'on')\n {\n tags.push('CFDs');\n }\n\n if (item.indices === 'on')\n {\n tags.push('Indices');\n }\n\n if (item.currencies === 'on')\n {\n tags.push('Currencies');\n }\n\n if (item.forex_trading === 'on')\n {\n tags.push('Forex');\n }\n\n if (item.share_dealing === 'on')\n {\n tags.push('Share Dealing');\n }\n\n return tags;\n }\n}\n\nmodule.exports = TopBrokers;\n","// style-loader: Adds some css to the DOM by adding a