{"version":3,"sources":["webpack:///./src/shared/utilities/screenSize.js","webpack:///./node_modules/process/browser.js","webpack:///./src/shared/utilities/repaint-fix.js","webpack:///./src/components/templates/navigation/navigation.js","webpack:///./src/shared/utilities/debounce.js","webpack:///./src/shared/utilities/pubsub.js","webpack:///./src/framework/base/base.js","webpack:///./src/shared/utilities/case.ts","webpack:///./src/shared/utilities/id.js","webpack:///./src/shared/utilities/show-hide.ts","webpack:///./src/shared/utilities/addListenerOnce.js","webpack:///./src/shared/utilities/effectsEndEventHandler.js","webpack:///./src/shared/utilities/objectToQueryString.js","webpack:///./src/shared/utilities/filterQuery.js","webpack:///./src/shared/utilities/search-tracking/search-tracking.js","webpack:///./src/shared/utilities/search-provider/google-search.js","webpack:///./src/shared/utilities/search-provider/bing-search.js","webpack:///./src/shared/utilities/search-provider/searchProvider.js"],"names":["defaultWidths","sm","md","lg","xl","getBreakpoint","window","getComputedStyle","document","querySelector","getPropertyValue","replace","screenSmallerThan","size","widths","arguments","length","undefined","Object","prototype","hasOwnProperty","call","Error","concat","keys","join","innerWidth","screenGreatOrEqualTo","cachedSetTimeout","cachedClearTimeout","process","module","exports","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","e","this","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","len","run","marker","runClearTimeout","Item","array","noop","nextTick","args","Array","i","push","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","name","binding","cwd","chdir","dir","umask","repaint","dom","style","display","offsetHeight","addEventListener","toRepaint","querySelectorAll","a","Navigation","_BaseBehavior","element","_this$dom$searchConta","_this","_classCallCheck","_callSuper","initDomCache","selectedNav","isSearchActive","fetching","internal","external","lastValidQuery","addEventListeners","config","breakpoint","desktopHeaderHeight","mobileHeaderHeight","setNavigationPosition","bind","subscribe","addEventListenerOnce","searchContainer","hasAttribute","setupSearchSuggestions","_inherits","_createClass","key","value","header","cookieHeight","getBoundingClientRect","height","navHeight","navDropdownTop","top","navDropdown","dropdownHeight","innerHeight","dropdownSearchContainer","classList","remove","nextElementSibling","searchFormInput","focus","onEffectEndEvent","stopPropagation","navLink","target","closest","contains","handleCloseNavMenu","add","focusSearchInput","_ref","from","to","noresults","switchSearchContainers","results","quicklinks","evt","trigger","navItemsContainer","innerHTML","nextTarget","dataset","toggle","body","handleSearch","txt","test","encodeURIComponent","trim","toLowerCase","item","getMarkup","wrapper","createElement","markup","listItem","url","htmlTitle","firstElementChild","link","snippet","htmlSnippet","query","_this2","externalResults","externalResultsList","provider","reset","updateLoader","request","getRequest","option","getOptions","fetch","then","response","json","data","parseResponse","list","queries","nextPage","showElement","showMoreWrapper","items","fragment","createDocumentFragment","forEach","appendChild","generateSuggestionItemElement","noResults","totalResults","searchInformation","trackSearchResult","childElementCount","externalViewAll","href","searchCategoryUrl","catch","console","error","finally","_this3","_this$dom$internalRes","internalResults","serviceurl","culture","queryParameters","objectToQueryString","keywords","internalResultsList","buildInstrumentMarkup","internalViewAll","spinner","map","icon","HasAssetIcon","IconName","CountryCode","InstrumentName","InstrumentDescription","_ref2","_slicedToArray","minChars","eraseIcon","_this$validateInput","validateInput","triggerExternalSuggestions","triggerInternalSuggestions","JSON","parse","searchConfig","searchProvider","initProvider","debounce","handleSearchSuggestions","closeSearch","filterQuery","regEx","INSTRUMENT_SEARCH","GOOGLE_SEARCH","sessionStorage","scrollY","setItem","documentElement","removeItem","_this$dom$searchConta2","_this4","delayApplyShadow","checkAndApplyShadowOnScroll","navListContainer","openMobileSubNav","resetToInitialState","iconsContainer","handleIconClick","navMenu","handleOpenNavMenu","clearSearch","handleCloseNav","forms","_this4$validateInput","preventDefault","BaseBehavior","func","wait","immediate","_len","_key","later","callNow","pubsub","PubSub","subscriptions","topic","_step","_iterator","_createForOfIteratorHelper","s","n","done","fn","err","f","index","splice","state","events","behaviorName","camelCaseToDashCase","getAttribute","instanceId","generateId","attachInstanceId","partialState","_objectSpread","setAttribute","removeAttribute","filter","el","ref","dashCaseToCamelCase","split","delay","publish","debouncedGetBreakpoint","newBreakPoint","event","useCapture","removeEventListener","obj","unsubscribe","navigation","bottom","scroll","reason","promise","log","str","x","chr","toUpperCase","alphabet","id","charAt","Math","floor","random","hideElement","type","listener","effects","transition","endEvent","endEventsList","OTransition","MozTransition","WebkitTransition","animation","OAnimation","MozAnimation","WebkitAnimation","whichEffectEndEvent","reduce","c","callback","queryString","text","resultsCount","adobeDataLayer","searchInfo","searchQuery","searchHits","searchCategory","message","GoogleSearch","start","options","params","cx","q","sort","sortType","num","lr","BingSearch","_options$lr","customconfig","customConfig","mkt","market","count","offset","setLang","mode","headers","_data$webPages","_data$queryContext","_data$webPages2","resultObj","totalCount","webPages","totalEstimatedMatches","correctedQuery","queryContext","alteredQuery","spelling","kind","formattedUrl","displayUrl","isArray","searchResult","transformData"],"mappings":"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","file":"7-6dc2bbd9.js","sourcesContent":["export const defaultWidths = {\r\n\tsm: 768,\r\n\tmd: 1024,\r\n\tlg: 1280,\r\n\txl: 1400\r\n};\r\n\r\n// getBreakpoint :: Void -> String\r\nexport const getBreakpoint = () =>\r\n\twindow\r\n\t\t.getComputedStyle(document.querySelector('body'), ':before')\r\n\t\t.getPropertyValue('content')\r\n\t\t.replace(/\"/g, '');\r\n\r\n// function :: String -> ?Object -> Boolean\r\nexport function screenSmallerThan(size, widths = defaultWidths) {\r\n\tif (!Object.prototype.hasOwnProperty.call(widths, size)) {\r\n\t\tthrow new Error(`size must be one of: ${Object.keys(widths).join(', ')}`);\r\n\t}\r\n\treturn window.innerWidth < widths[size];\r\n}\r\n\r\nexport function screenGreatOrEqualTo(size, widths = defaultWidths) {\r\n\tif (!Object.prototype.hasOwnProperty.call(widths, size)) {\r\n\t\tthrow new Error(`size must be one of: ${Object.keys(widths).join(', ')}`);\r\n\t}\r\n\treturn window.innerWidth >= widths[size];\r\n}\r\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/* eslint-disable */\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n\tconst toRepaint = document.querySelectorAll('.v2-js-repaint');\r\n\r\n\tfor (let a = 0; a < toRepaint.length; a++) {\r\n\t\trepaint(toRepaint[a]);\r\n\t}\r\n});\r\n\r\n\r\nexport function repaint(dom) {\r\n\tdom.style.display = 'none';\r\n\tdom.offsetHeight;\r\n\tdom.style.display = '';\r\n}","import BaseBehavior from '../../../framework/base/base';\r\nimport { debounce } from '../../../shared/utilities/debounce';\r\nimport { filterQuery, regEx } from '../../../shared/utilities/filterQuery';\r\nimport { onEffectEndEvent } from '../../../shared/utilities/effectsEndEventHandler';\r\nimport { objectToQueryString } from '../../../shared/utilities/objectToQueryString';\r\nimport { repaint } from '../../../shared/utilities/repaint-fix';\r\nimport { screenSmallerThan } from '../../../shared/utilities/screenSize';\r\nimport { addEventListenerOnce } from '../../../shared/utilities/addListenerOnce';\r\nimport { initProvider } from '../../../shared/utilities/search-provider/searchProvider';\r\nimport { showElement } from '../../../shared/utilities/show-hide';\r\nimport trackSearchResult from '../../../shared/utilities/search-tracking/search-tracking';\r\n\r\nexport default class Navigation extends BaseBehavior {\r\n\tconstructor(element) {\r\n\t\tsuper(element);\r\n\t\tthis.initDomCache();\r\n\t\tthis.selectedNav = null;\r\n\t\tthis.isSearchActive = false;\r\n\t\tthis.fetching = { internal: false, external: false };\r\n\t\tthis.lastValidQuery = '';\r\n\t\tthis.addEventListeners();\r\n\t\tthis.config = {\r\n\t\t\tbreakpoint: 1024,\r\n\t\t\tdesktopHeaderHeight: 76,\r\n\t\t\tmobileHeaderHeight: 62\r\n\t\t};\r\n\r\n\t\tif (document.querySelector('.v2-cookie-disclaimer--top')) {\r\n\t\t\tconst setNavigationPosition = this.setNavigationPosition.bind(this);\r\n\t\t\tsetNavigationPosition();\r\n\t\t\tthis.subscribe('cookie/height/change', setNavigationPosition);\r\n\t\t\taddEventListenerOnce(window, 'load', setNavigationPosition);\r\n\t\t}\r\n\r\n\t\tif (this.dom.searchContainer?.hasAttribute('data-suggestions')) {\r\n\t\t\tthis.setupSearchSuggestions();\r\n\t\t}\r\n\t}\r\n\r\n\tsetNavigationPosition() {\r\n\t\trepaint(this.dom.header);\r\n\t\tconst cookieHeight = document.querySelector('.v2-cookie-disclaimer').getBoundingClientRect()\r\n\t\t\t.height;\r\n\t\tlet navHeight = cookieHeight;\r\n\t\tlet navDropdownTop = cookieHeight;\r\n\t\tif (window.innerWidth < this.config.breakpoint) {\r\n\t\t\tnavHeight += this.config.mobileHeaderHeight;\r\n\t\t\tnavDropdownTop += this.config.mobileHeaderHeight;\r\n\t\t} else {\r\n\t\t\tnavHeight += this.config.desktopHeaderHeight;\r\n\t\t}\r\n\t\tthis.dom.header && (this.dom.header.style.top = cookieHeight + 'px');\r\n\t\tthis.dom.navDropdown && (this.dom.navDropdown.style.top = navDropdownTop + 'px');\r\n\t\tconst dropdownHeight = window.innerHeight - navDropdownTop;\r\n\t\tthis.dom.navDropdown.style.height = dropdownHeight + 'px';\r\n\t\tif (screenSmallerThan('md'))\r\n\t\t\tthis.dom.dropdownSearchContainer &&\r\n\t\t\t\t(this.dom.dropdownSearchContainer.style.height = dropdownHeight + 'px');\r\n\t\tthis.element.style.height = navHeight + 'px';\r\n\t}\r\n\r\n\thandleCloseNavMenu() {\r\n\t\tthis.element.classList.remove('navigation--open');\r\n\t\tif (this.selectedNav) {\r\n\t\t\tthis.selectedNav.classList.remove('active');\r\n\t\t\tthis.selectedNav.nextElementSibling.classList.remove('no-transition');\r\n\t\t\tthis.selectedNav = null;\r\n\t\t}\r\n\t}\r\n\r\n\tfocusSearchInput() {\r\n\t\tconst { searchFormInput } = this.dom;\r\n\t\tsearchFormInput.focus();\r\n\t\t// retry focus in-case transition has yet to end.\r\n\t\tonEffectEndEvent(searchFormInput, () => searchFormInput.focus());\r\n\t}\r\n\r\n\thandleOpenNavMenu(e) {\r\n\t\te.stopPropagation();\r\n\t\tconst navLink = e.target.closest('label.nav__link');\r\n\t\tif (navLink) {\r\n\t\t\tconst isSelected = navLink.classList.contains('active');\r\n\t\t\tif (!isSelected) {\r\n\t\t\t\tthis.element.classList.add('navigation--open');\r\n\t\t\t\tif (this.selectedNav) {\r\n\t\t\t\t\tthis.selectedNav.classList.remove('active');\r\n\t\t\t\t\tthis.selectedNav.nextElementSibling.classList.remove('no-transition'); // for animation when switching between two active elements\r\n\t\t\t\t\tnavLink.nextElementSibling.classList.add('no-transition');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.selectedNav = navLink;\r\n\t\t\t\tthis.selectedNav.classList.add('active');\r\n\t\t\t\tthis.focusSearchInput();\r\n\t\t\t} else {\r\n\t\t\t\tthis.handleCloseNavMenu();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// hide fromSearch and show toSearch;\r\n\tswitchSearchContainers({ from, to }) {\r\n\t\tfrom && from.classList.add('v2-hidden');\r\n\t\tto && to.classList.remove('v2-hidden');\r\n\t}\r\n\r\n\thandleSearch(e) {\r\n\t\te.stopPropagation();\r\n\t\tthis.element.classList.add('navigation--open');\r\n\t\tthis.selectedNav && this.handleCloseNavMenu();\r\n\t\tthis.dom.searchContainer.classList.add('active');\r\n\t\tthis.isSearchActive = true;\r\n\t\tthis.dom.noresults.classList.add('v2-hidden');\r\n\t\tthis.switchSearchContainers({ from: this.dom.results, to: this.dom.quicklinks });\r\n\t\tthis.focusSearchInput();\r\n\t}\r\n\r\n\topenMobileSubNav(evt) {\r\n\t\tconst element = evt.target.closest('.nav-trigger');\r\n\t\tif (element && !element.classList.contains('nav-link')) {\r\n\t\t\tconst trigger = evt.target.closest('.nav-trigger');\r\n\t\t\tthis.dom.navItemsContainer.innerHTML = '';\r\n\t\t\tconst nextTarget = this.element.querySelector('#' + trigger.dataset.target);\r\n\t\t\tthis.dom.navItemsContainer.innerHTML = nextTarget.innerHTML;\r\n\t\t\tthis.dom.navDropdown.classList.add('show');\r\n\t\t\tthis.dom.navDropdown.classList.remove('hide');\r\n\t\t}\r\n\t}\r\n\r\n\tresetToInitialState(evt) {\r\n\t\tif (evt.target.closest('.navigate-back')) {\r\n\t\t\tthis.dom.navDropdown.classList.remove('show');\r\n\t\t\tthis.dom.navDropdown.classList.add('hide');\r\n\t\t}\r\n\t}\r\n\r\n\thandleIconClick(e) {\r\n\t\tif (e.target.closest('.icon--menu')) {\r\n\t\t\tthis.element.classList.toggle('mobile-nav');\r\n\t\t\tthis.dom.navDropdown.classList.remove('show');\r\n\t\t\tdocument.body.classList.toggle('v2-overflow-hidden'); // to stop scrolling main page behind navigation dropdown\r\n\t\t}\r\n\t\tif (e.target.closest('.icon--search')) {\r\n\t\t\tthis.handleSearch(e);\r\n\t\t}\r\n\t}\r\n\r\n\tfilterExternalQuery(txt) {\r\n\t\t// eslint-disable-next-line\r\n\t\tconst regEx = /^[\\p{Letter}.,\\s&0-9]*$/u;\r\n\t\t// Regex will allow only alphanumeric and special chars: -&)(.% in between\r\n\t\tif (!regEx.test(txt)) {\r\n\t\t\treturn '';\r\n\t\t}\r\n\t\tconst query = encodeURIComponent(txt.trim());\r\n\t\treturn query.toLowerCase();\r\n\t}\r\n\r\n\tfilterInternalQuery(txt) {\r\n\t\t// eslint-disable-next-line\r\n\t\tconst regEx = /^(?!\\d+$)(?:[a-zA-Z0-9][a-zA-Z0-9 \\-\\&\\.\\(\\)\\%]*)?$/;\r\n\t\t// Regex will allow only alphanumeric and special chars: -&)(.% in between\r\n\t\tif (!regEx.test(txt)) {\r\n\t\t\treturn '';\r\n\t\t}\r\n\t\tconst query = encodeURIComponent(txt.trim());\r\n\t\treturn query.toLowerCase();\r\n\t}\r\n\r\n\tgenerateSuggestionItemElement(item, getMarkup) {\r\n\t\tconst wrapper = document.createElement('div');\r\n\t\tconst markup = getMarkup(item);\r\n\t\tconst listItem = `
  • ${markup.htmlTitle}
  • `;\r\n\t\twrapper.innerHTML = listItem;\r\n\t\treturn wrapper.firstElementChild;\r\n\t}\r\n\r\n\tgetMarkup(item) {\r\n\t\treturn {\r\n\t\t\turl: item.link,\r\n\t\t\ttitle: item.title,\r\n\t\t\thtmlTitle: item.htmlTitle,\r\n\t\t\tsnippet: item.htmlSnippet\r\n\t\t};\r\n\t}\r\n\r\n\ttriggerExternalSuggestions(query) {\r\n\t\tthis.dom.externalResults.classList.add('v2-hidden');\r\n\t\tthis.dom.externalResultsList.innerHTML = '';\r\n\t\tthis.provider.reset();\r\n\t\tthis.fetching.external = true;\r\n\t\tthis.updateLoader();\r\n\t\tconst request = this.provider.getRequest({ query });\r\n\r\n\t\tconst option = this.provider.getOptions();\r\n\t\tfetch(request.url, option)\r\n\t\t\t.then(response => response.json())\r\n\t\t\t.then(data => {\r\n\t\t\t\tconst response = this.provider.parseResponse(data);\r\n\t\t\t\t// assign external results DOM ref to provider compatible DOM(list)\r\n\t\t\t\tthis.dom.list = this.dom.externalResultsList;\r\n\r\n\t\t\t\tif (response.queries.nextPage) {\r\n\t\t\t\t\tshowElement(this.dom.showMoreWrapper);\r\n\t\t\t\t}\r\n\t\t\t\tif (response.items) {\r\n\t\t\t\t\tconst fragment = document.createDocumentFragment();\r\n\t\t\t\t\tresponse.items.forEach(item =>\r\n\t\t\t\t\t\tfragment.appendChild(this.generateSuggestionItemElement(item, this.getMarkup))\r\n\t\t\t\t\t);\r\n\t\t\t\t\tthis.dom.list.appendChild(fragment);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tshowElement(this.dom.noResults);\r\n\t\t\t\t}\r\n\t\t\t\tconst totalResults = response.searchInformation.totalResults\r\n\t\t\t\t\t? +response.searchInformation.totalResults\r\n\t\t\t\t\t: 0;\r\n\t\t\t\ttrackSearchResult(query, totalResults, 'All');\r\n\t\t\t\tthis.dom.externalResultsList.childElementCount &&\r\n\t\t\t\t\tthis.dom.externalResults.classList.remove('v2-hidden');\r\n\t\t\t\t// add input query param to view all link(we are expecting category query param to be present already)\r\n\t\t\t\tthis.dom.externalViewAll.href = `${this.dom.externalViewAll.dataset.searchCategoryUrl}&q=${query}`;\r\n\t\t\t})\r\n\t\t\t.catch(e => {\r\n\t\t\t\t// eslint-disable-next-line no-console\r\n\t\t\t\tconsole.error(e);\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tthis.fetching.external = false;\r\n\t\t\t\tthis.updateLoader();\r\n\t\t\t\trepaint(this.dom.results); // trigger reflow to solve IE bug\r\n\t\t\t});\r\n\t}\r\n\r\n\ttriggerInternalSuggestions(query) {\r\n\t\tconst { serviceurl, top, culture } = this.dom.internalResults.dataset;\r\n\t\tconst queryParameters = objectToQueryString({ keywords: query, top, culture });\r\n\t\tthis.dom.internalResultsList.innerHTML = '';\r\n\t\tthis.fetching.internal = true;\r\n\r\n\t\tthis.updateLoader();\r\n\t\tthis.dom.internalResults.classList.add('v2-hidden');\r\n\r\n\t\tfetch(`${serviceurl}?${queryParameters}`)\r\n\t\t\t.then(response => response.json())\r\n\t\t\t.then(response => {\r\n\t\t\t\tif (!response.length) return;\r\n\t\t\t\tthis.dom.internalResultsList.innerHTML = this.buildInstrumentMarkup(response);\r\n\t\t\t\tthis.dom.internalViewAll.href = `${this.dom.internalViewAll.dataset.searchCategoryUrl}&q=${query}`;\r\n\t\t\t\tthis.dom.internalResults.classList.remove('v2-hidden');\r\n\t\t\t\ttrackSearchResult(query, response.length, 'Instruments');\r\n\t\t\t})\r\n\t\t\t.catch(e => {\r\n\t\t\t\t// eslint-disable-next-line no-console\r\n\t\t\t\tconsole.error(e);\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tthis.fetching.internal = false;\r\n\t\t\t\tthis.updateLoader();\r\n\t\t\t\trepaint(this.dom.results); // trigger reflow to solve IE bug\r\n\t\t\t});\r\n\t}\r\n\r\n\tupdateLoader() {\r\n\t\tif (!this.fetching.internal && !this.fetching.external) {\r\n\t\t\tthis.dom.spinner.classList.add('v2-hidden');\r\n\t\t\tif (\r\n\t\t\t\tthis.dom.externalResultsList.childElementCount +\r\n\t\t\t\t\tthis.dom.internalResultsList.childElementCount ===\r\n\t\t\t\t0\r\n\t\t\t) {\r\n\t\t\t\tthis.dom.noresults.classList.remove('v2-hidden');\r\n\t\t\t\tthis.switchSearchContainers({ from: this.dom.results, to: this.dom.quicklinks });\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.dom.spinner.classList.remove('v2-hidden');\r\n\t\t}\r\n\t}\r\n\r\n\tbuildInstrumentMarkup(data) {\r\n\t\treturn data\r\n\t\t\t.map(item => {\r\n\t\t\t\tconst icon = item.HasAssetIcon\r\n\t\t\t\t\t? ``\r\n\t\t\t\t\t: ``;\r\n\r\n\t\t\t\treturn `
  • \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t${icon}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t${item.InstrumentName}\r\n\t\t\t\t\t\t\t\t\t${item.InstrumentDescription}\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
  • `;\r\n\t\t\t})\r\n\t\t\t.join('');\r\n\t}\r\n\r\n\thandleSearchSuggestions([{ target }]) {\r\n\t\tif (target.value === this.lastValidQuery) return;\r\n\r\n\t\tif (target.value.trim().length >= target.dataset.minChars) {\r\n\t\t\tthis.dom.eraseIcon.classList.remove('v2-hidden');\r\n\t\t\tconst { internal, external } = this.validateInput(target.value);\r\n\r\n\t\t\tif (internal || external) {\r\n\t\t\t\tthis.switchSearchContainers({ from: this.dom.quicklinks, to: this.dom.results });\r\n\t\t\t\tthis.dom.noresults.classList.add('v2-hidden');\r\n\t\t\t\tthis.lastValidQuery = target.value;\r\n\t\t\t\t!this.fetching.external && external && this.triggerExternalSuggestions(external);\r\n\t\t\t\t!this.fetching.internal && internal && this.triggerInternalSuggestions(internal);\r\n\t\t\t} else {\r\n\t\t\t\tthis.switchSearchContainers({ from: this.dom.results, to: this.dom.quicklinks });\r\n\t\t\t\tthis.dom.noresults.classList.remove('v2-hidden');\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.lastValidQuery = '';\r\n\t\t\tthis.dom.eraseIcon.classList.add('v2-hidden');\r\n\t\t\tthis.switchSearchContainers({ from: this.dom.results, to: this.dom.quicklinks });\r\n\t\t}\r\n\t}\r\n\r\n\tsetupSearchSuggestions() {\r\n\t\t// need to pick google / bing search config\r\n\t\tconst config = JSON.parse(this.dom.searchConfig.innerHTML);\r\n\t\tthis.searchConfig = config;\r\n\t\tthis.searchProvider = config.provider;\r\n\t\tthis.provider = initProvider(config);\r\n\r\n\t\tthis.addEventListener(\r\n\t\t\tthis.dom.searchFormInput,\r\n\t\t\t'keyup',\r\n\t\t\tdebounce(this.handleSearchSuggestions.bind(this), 500)\r\n\t\t);\r\n\t}\r\n\r\n\tclearSearch() {\r\n\t\tthis.lastValidQuery = '';\r\n\t\tthis.dom.searchFormInput.value = '';\r\n\t\tthis.dom.eraseIcon.classList.add('v2-hidden');\r\n\t\tthis.switchSearchContainers({ from: this.dom.results, to: this.dom.quicklinks });\r\n\t}\r\n\r\n\thandleCloseNav(e) {\r\n\t\t// close search bar [only if it's navigation--open] only when clicked on outside of search and quicklinks container or 'X' icon\r\n\t\tconst closeSearch = this.isSearchActive\r\n\t\t\t? e.target.closest('.navigation__search') && !e.target.closest('.navigation__search-close')\r\n\t\t\t: true;\r\n\r\n\t\t// close Nav bar [only if it's navigation--open] only when clicked outside of Navigation and Navigation\r\n\t\tif (this.selectedNav && !e.target.closest('.header')) {\r\n\t\t\tthis.handleCloseNavMenu();\r\n\t\t}\r\n\r\n\t\tif (!closeSearch) {\r\n\t\t\tthis.isSearchActive = false;\r\n\t\t\tthis.dom.searchContainer.classList.remove('active');\r\n\t\t\tthis.dom.searchFormInput.value = '';\r\n\t\t\tthis.lastValidQuery = '';\r\n\t\t\tthis.handleCloseNavMenu();\r\n\t\t}\r\n\t}\r\n\r\n\tvalidateInput(value) {\r\n\t\treturn {\r\n\t\t\tinternal: filterQuery(value, regEx.INSTRUMENT_SEARCH),\r\n\t\t\texternal: filterQuery(value, regEx.GOOGLE_SEARCH)\r\n\t\t};\r\n\t}\r\n\r\n\tcheckAndApplyShadowOnScroll() {\r\n\t\tconst { sessionStorage } = window;\r\n\t\tif (window.scrollY > 0) {\r\n\t\t\tsessionStorage?.setItem('isScrolled', 'true');\r\n\t\t\tdocument.documentElement.classList.add('isScrolled');\r\n\t\t} else {\r\n\t\t\tsessionStorage?.removeItem('isScrolled');\r\n\t\t\tdocument.documentElement.classList.remove('isScrolled');\r\n\t\t}\r\n\t}\r\n\r\n\taddEventListeners() {\r\n\t\tconst delayApplyShadow = debounce(this.checkAndApplyShadowOnScroll.bind(this), 100, false);\r\n\t\tthis.addEventListener(this.dom.navListContainer, 'click', this.openMobileSubNav.bind(this));\r\n\t\tthis.addEventListener(this.dom.navItemsContainer, 'click', this.resetToInitialState.bind(this));\r\n\t\tthis.addEventListener(this.dom.iconsContainer, 'click', this.handleIconClick.bind(this));\r\n\t\tthis.addEventListener(this.dom.navMenu, 'click', this.handleOpenNavMenu.bind(this));\r\n\t\t// search related\r\n\t\tthis.addEventListener(this.dom.eraseIcon, 'click', this.clearSearch.bind(this));\r\n\t\tthis.addEventListener(document, 'click', this.handleCloseNav.bind(this));\r\n\t\tthis.addEventListener(document.forms[0], 'submit', e => {\r\n\t\t\tconst { internal, external } = this.validateInput(this.dom.searchFormInput.value);\r\n\t\t\tif (!internal && !external) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (this.dom.searchContainer?.hasAttribute('data-suggestions')) {\r\n\t\t\tthis.addEventListener(this.dom.searchFormInput, 'keyup', () => {\r\n\t\t\t\tdebounce(this.handleSearchSuggestions.bind(this), 500);\r\n\t\t\t});\r\n\t\t}\r\n\t\twindow.addEventListener('scroll', () => {\r\n\t\t\tdelayApplyShadow();\r\n\t\t});\r\n\t}\r\n}\r\n","// debounce :: Function, Number, Bool -> (Any -> Void)\r\nexport function debounce(func, wait, immediate) {\r\n\tlet timeout;\r\n\treturn function debounced(...args) {\r\n\t\tconst later = () => {\r\n\t\t\ttimeout = null;\r\n\t\t\tif (!immediate) func(args);\r\n\t\t};\r\n\t\tconst callNow = immediate && !timeout;\r\n\t\tclearTimeout(timeout);\r\n\t\ttimeout = setTimeout(later, wait);\r\n\t\tif (callNow) func(args);\r\n\t};\r\n}\r\n","class PubSub {\r\n\tconstructor() {\r\n\t\tthis.subscriptions = {};\r\n\t}\r\n\r\n\tpublish(topic, ...args) {\r\n\t\tif (this.subscriptions[topic]) {\r\n\t\t\t// eslint-disable-next-line no-restricted-syntax\r\n\t\t\tfor (const fn of this.subscriptions[topic]) {\r\n\t\t\t\tfn(...args);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tsubscribe(topic, fn) {\r\n\t\tthis.subscriptions[topic] = this.subscriptions[topic] || [];\r\n\t\tthis.subscriptions[topic].push(fn);\r\n\t}\r\n\r\n\tunsubscribe(topic, fn) {\r\n\t\tif (this.subscriptions[topic]) {\r\n\t\t\tthis.subscriptions[topic].forEach((value, index) => {\r\n\t\t\t\tif (value === fn) {\r\n\t\t\t\t\tthis.subscriptions[topic].splice(index, 1);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n\r\nconst pubsub = new PubSub();\r\n\r\nexport default pubsub;\r\n","import pubsub from '../../shared/utilities/pubsub';\r\nimport { generateId } from '../../shared/utilities/id';\r\nimport { camelCaseToDashCase, dashCaseToCamelCase } from '../../shared/utilities/case';\r\nimport { getBreakpoint } from '../../shared/utilities/screenSize';\r\nimport { debounce } from '../../shared/utilities/debounce';\r\n\r\nexport default class BaseBehavior {\r\n\tconstructor(element) {\r\n\t\tthis.element = element;\r\n\t\tthis.state = undefined;\r\n\t\tthis.events = {};\r\n\t\tthis.subscriptions = {};\r\n\t\tthis.behaviorName = camelCaseToDashCase(element.getAttribute('data-behavior'));\r\n\t\tthis.instanceId = generateId();\r\n\t\tthis.attachInstanceId();\r\n\t}\r\n\r\n\tsetState(partialState) {\r\n\t\tObject.keys(partialState).forEach(key => {\r\n\t\t\tif (!{}.hasOwnProperty.call(this.state, key)) {\r\n\t\t\t\tthrow new Error(\r\n\t\t\t\t\t`${this.behaviorName} does not have ${key} on the state object,\r\n\t\t\t\t\tmake sure to define all state properties in the constructor.`\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.state = { ...(this.state || {}), ...partialState };\r\n\t}\r\n\r\n\tattachInstanceId() {\r\n\t\tthis.element.setAttribute('data-instance', `${this.behaviorName}__${this.instanceId}`);\r\n\t\tthis.element.removeAttribute('data-instance-init');\r\n\t}\r\n\r\n\tinitDomCache() {\r\n\t\tthis.dom = {};\r\n\r\n\t\t// Filter out ref's that embedded in another instance of the same behavior.\r\n\t\tArray.from(this.element.querySelectorAll(`[data-ref^=${this.behaviorName}]`))\r\n\t\t\t.filter(el => el.closest(`[data-behavior*=\"${this.behaviorName}\"]`) === this.element)\r\n\t\t\t.forEach(element => {\r\n\t\t\t\tconst ref = element.getAttribute('data-ref');\r\n\t\t\t\tconst key = dashCaseToCamelCase(ref).split('__')[1];\r\n\r\n\t\t\t\tif (key) {\r\n\t\t\t\t\tthis.dom[key] = element;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.error(\r\n\t\t\t\t\t\t`Element cannot be cached. Reference \"${ref}\" should have the format \"behavior-name__element-name\"`\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tpublishBreakpointOnResize(delay = 250) {\r\n\t\tif (this.breakpoint) return;\r\n\r\n\t\tthis.breakpoint = getBreakpoint();\r\n\t\tthis.publish('SITE.BREAKPOINT', this.breakpoint);\r\n\r\n\t\tconst debouncedGetBreakpoint = debounce(() => {\r\n\t\t\tconst newBreakPoint = getBreakpoint();\r\n\t\t\tif (this.breakpoint !== newBreakPoint) {\r\n\t\t\t\tthis.publish('SITE.BREAKPOINT', newBreakPoint);\r\n\t\t\t\tthis.breakpoint = newBreakPoint;\r\n\t\t\t}\r\n\t\t}, delay);\r\n\r\n\t\twindow.addEventListener('resize', debouncedGetBreakpoint);\r\n\t}\r\n\r\n\taddEventListener(element, event, fn, useCapture = false) {\r\n\t\tif (element) {\r\n\t\t\tthis.events[event] = fn;\r\n\t\t\telement.addEventListener(event.split('.')[0], this.events[event], useCapture);\r\n\t\t}\r\n\t}\r\n\r\n\tremoveEventListener(element, event) {\r\n\t\telement.removeEventListener(event.split('.')[0], this.events[event]);\r\n\t\tthis.events[event] = null;\r\n\t\tdelete this.events[event];\r\n\t}\r\n\r\n\t// eslint-disable-next-line class-methods-use-this\r\n\tpublish(topic, obj) {\r\n\t\tpubsub.publish(topic, obj);\r\n\t}\r\n\r\n\tsubscribe(topic, fn) {\r\n\t\tthis.subscriptions[topic] = fn;\r\n\t\tpubsub.subscribe(topic, fn);\r\n\t}\r\n\r\n\tunsubscribe(topic) {\r\n\t\tpubsub.unsubscribe(topic, this.subscriptions[topic]);\r\n\t\tthis.subscriptions[topic] = null;\r\n\t\tdelete this.subscriptions[topic];\r\n\t}\r\n}\r\n\r\n// Below code is added for fixing scrolling issue on page refresh.\r\nwindow.addEventListener('load', () => {\r\n\tsetTimeout(() => {\r\n\t\tconst navigation = document.querySelector('#navigation');\r\n\t\t// eslint-disable-next-line\r\n\t\tif (navigation && navigation.getBoundingClientRect().bottom === scrollY) {\r\n\t\t\twindow.scroll(0, 0);\r\n\t\t}\r\n\t}, 0);\r\n});\r\n\r\nprocess.on('unhandledRejection', (reason, promise) => {\r\n\t// eslint-disable-next-line no-console\r\n\tconsole.log('Reason for this failure is : ', reason);\r\n\t// eslint-disable-next-line no-console\r\n\tconsole.log('promise is', promise);\r\n\t// Application specific logging, throwing an error, or other logic here\r\n});\r\n","export function camelCaseToDashCase(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\nexport function dashCaseToCamelCase(str) {\n return str.replace(/\\W+(.)/g, (x, chr) => chr.toUpperCase());\n}\n","const alphabet = '23456789ABDEGJKMNPQRVWXYZ';\r\n\r\nexport function generateId(length = 6) {\r\n\tlet id = '';\r\n\r\n\tfor (let i = 0; i < length; i++) {\r\n\t\tid += alphabet.charAt(Math.floor(Math.random() * alphabet.length));\r\n\t}\r\n\r\n\treturn id;\r\n}\r\n","const hiddenClass = 'v2-hidden';\nexport const hideElement = (element) => element && element.classList.add(hiddenClass);\nexport const showElement = (element) => element && element.classList.remove(hiddenClass);\n","export const addEventListenerOnce = (element, type, listener) => {\r\n\telement.addEventListener(type, function fn(event) {\r\n\t\telement.removeEventListener(type, fn);\r\n\t\tlistener(event);\r\n\t});\r\n};\r\n","import { addEventListenerOnce } from './addListenerOnce';\r\n\r\nconst TRANSITION_END_EVENTS = {\r\n\ttransition: 'transitionend',\r\n\tOTransition: 'oTransitionEnd',\r\n\tMozTransition: 'transitionend',\r\n\tWebkitTransition: 'webkitTransitionEnd'\r\n};\r\n\r\nconst ANIMATION_END_EVENTS = {\r\n\tanimation: 'animationend',\r\n\tOAnimation: 'oAnimationEnd',\r\n\tMozAnimation: 'animationend',\r\n\tWebkitAnimation: 'webkitAnimationEnd'\r\n};\r\n\r\nexport const effects = {\r\n\ttransition: {\r\n\t\tendEvent: null,\r\n\t\tendEventsList: TRANSITION_END_EVENTS\r\n\t},\r\n\tanimation: {\r\n\t\tendEvent: null,\r\n\t\tendEventsList: ANIMATION_END_EVENTS\r\n\t}\r\n};\r\n\r\nexport const whichEffectEndEvent = (type = 'transition') => {\r\n\tif (effects[type].endEvent !== null) {\r\n\t\treturn effects[type].endEvent;\r\n\t}\r\n\tconst el = document.createElement('fakeelement');\r\n\teffects[type].endEvent = Object.keys(effects[type].endEventsList).reduce(\r\n\t\t(a, c) => a || (typeof el.style[c] !== 'undefined' ? effects[type].endEventsList[c] : a),\r\n\t\tfalse\r\n\t);\r\n\treturn effects[type].endEvent;\r\n};\r\n\r\nexport const onEffectEndEvent = (element, callback, type = 'transition', delay = 300) => {\r\n\tconst endEvent = whichEffectEndEvent(type);\r\n\tif (endEvent) {\r\n\t\taddEventListenerOnce(element, endEvent, callback);\r\n\t\treturn;\r\n\t}\r\n\tsetTimeout(callback, delay);\r\n};\r\n","export function objectToQueryString(data) {\r\n\t// Convert an object to a query string\r\n\treturn Object.keys(data)\r\n\t\t.reduce((queryString, key) => {\r\n\t\t\tconst value = data[key];\r\n\t\t\tif (value !== null && typeof value !== 'undefined') {\r\n\t\t\t\treturn queryString.concat(`${encodeURIComponent(key)}=${encodeURIComponent(data[key])}`);\r\n\t\t\t}\r\n\t\t\treturn queryString;\r\n\t\t}, [])\r\n\t\t.join('&');\r\n}\r\n","export function filterQuery(text, regEx) {\r\n\t// Regex will allow only alphanumeric and special chars: -&)(.% in between\r\n\tif (!regEx.test(text)) {\r\n\t\treturn '';\r\n\t}\r\n\r\n\treturn text.trim().toLowerCase();\r\n}\r\nexport const regEx = {\r\n\t/* eslint-disable */\r\n\tGOOGLE_SEARCH: /.*/,\r\n\tINSTRUMENT_SEARCH: /^(?!\\d+$)(?:[a-zA-Z0-9][a-zA-Z0-9 \\-\\&\\.\\(\\)\\%]*)?$/\r\n};\r\n","export default function trackSearchResult(query, resultsCount, type) {\r\n\ttry {\r\n\t\tconst { adobeDataLayer } = window;\r\n\t\tif (adobeDataLayer) {\r\n\t\t\tadobeDataLayer.push({\r\n\t\t\t\tevent: 'searched',\r\n\t\t\t\tsearchInfo: {\r\n\t\t\t\t\tsearchQuery: query,\r\n\t\t\t\t\tsearchHits: resultsCount,\r\n\t\t\t\t\tsearchCategory: type\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t} catch (error) {\r\n\t\t// eslint-disable-next-line no-console\r\n\t\tconsole.error(`This is issue in this operation : ${error.name} : ${error.message}`);\r\n\t}\r\n}\r\n","import { objectToQueryString } from '../objectToQueryString';\r\n\r\nconst numberOfItems = 10;\r\nexport default class GoogleSearch {\r\n\tconstructor(config) {\r\n\t\tthis.config = config;\r\n\t\tthis.start = 1;\r\n\t}\r\n\r\n\treset() {\r\n\t\tthis.start = 0;\r\n\t}\r\n\r\n\tgetOptions() {\r\n\t\treturn {};\r\n\t}\r\n\r\n\tgetRequest(options) {\r\n\t\tconst params = {\r\n\t\t\tcx: this.config.cx,\r\n\t\t\tkey: this.config.key,\r\n\t\t\tq: options.query,\r\n\t\t\tsort: options.sortType || this.config.sort,\r\n\t\t\tnum: this.config.num || numberOfItems,\r\n\t\t\tstart: options.start || this.start,\r\n\t\t\tlr: options.lr || ''\r\n\t\t};\r\n\t\tconst url = `${this.config.url}?${objectToQueryString(params)}`;\r\n\t\treturn { params, url };\r\n\t}\r\n\r\n\tparseResponse(data) {\r\n\t\treturn data;\r\n\t}\r\n}\r\n","import { objectToQueryString } from '../objectToQueryString';\r\n\r\nexport default class BingSearch {\r\n\tconstructor(config) {\r\n\t\tthis.config = config;\r\n\t\tthis.start = 0;\r\n\t}\r\n\r\n\treset() {\r\n\t\tthis.start = 0;\r\n\t}\r\n\r\n\t/* Bing Specific Search Configs */\r\n\tgetRequest(options) {\r\n\t\tconst params = {\r\n\t\t\tq: options.query,\r\n\t\t\tcustomconfig: this.config.customConfig,\r\n\t\t\tmkt: this.config.market,\r\n\t\t\tcount: this.config.count,\r\n\t\t\toffset: options.start || this.start, // < (totalEstimatedMatches - count).\r\n\t\t\tsetLang: options?.lr?.split('_')[1] || 'EN'\r\n\t\t};\r\n\r\n\t\tconst url = `${this.config.url}?${objectToQueryString(params)}`;\r\n\t\treturn { params, url };\r\n\t}\r\n\r\n\tgetOptions() {\r\n\t\treturn {\r\n\t\t\tmode: 'cors',\r\n\t\t\theaders: {\r\n\t\t\t\t'Ocp-Apim-Subscription-Key': this.config.key\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\ttransformData(data) {\r\n\t\t// object - nextpage,item,corrected query,\r\n\t\tconst resultObj = {\r\n\t\t\titems: [],\r\n\t\t\tsearchInformation: {},\r\n\t\t\tqueries: {}\r\n\t\t};\r\n\t\tconst totalCount = data?.webPages?.totalEstimatedMatches || 0;\r\n\t\t// setting corrected\r\n\t\tconst correctedQuery = data.queryContext?.alteredQuery || null;\r\n\t\tif (correctedQuery) {\r\n\t\t\tresultObj.spelling = {\r\n\t\t\t\tcorrectedQuery: correctedQuery + ' bingCorrected'\r\n\t\t\t};\r\n\t\t}\r\n\t\tresultObj.searchInformation.totalResults = totalCount;\r\n\t\t// transforming results items\r\n\t\tresultObj.items =\r\n\t\t\tdata?.webPages?.value.map(item => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tkind: 'customsearch#result', // non promoted content\r\n\t\t\t\t\ttitle: item.name || '',\r\n\t\t\t\t\thtmlSnippet: item.snippet || '',\r\n\t\t\t\t\tlink: item.url,\r\n\t\t\t\t\tformattedUrl: item.displayUrl,\r\n\t\t\t\t\thtmlTitle: item.name\r\n\t\t\t\t};\r\n\t\t\t}) || [];\r\n\t\treturn resultObj;\r\n\t}\r\n\r\n\tparseResponse(data) {\r\n\t\tif (Array.isArray(data)) {\r\n\t\t\treturn data.map(searchResult => this.transformData(searchResult));\r\n\t\t}\r\n\t\treturn this.transformData(data);\r\n\t}\r\n}\r\n","import GoogleSearch from './google-search';\r\nimport BingSearch from './bing-search';\r\n\r\nexport function initProvider(config) {\r\n\tconst searchProvider = config.provider;\r\n\tswitch (searchProvider) {\r\n\t\tcase 'bing':\r\n\t\t\treturn new BingSearch(config);\r\n\t\tdefault:\r\n\t\t\treturn new GoogleSearch(config);\r\n\t}\r\n}\r\n"],"sourceRoot":""}