{"version":3,"file":"search-box.js","mappings":"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","sources":["webpack://frontend-starter/./src/scripts/search-box/index.js","webpack://frontend-starter/./src/scripts/search-box/search-box.js"],"sourcesContent":["import SearchBox from './search-box';\r\n\r\nwindow.WartsilaSearchBox = SearchBox;","class SearchBox {\r\n constructor(containerId) {\r\n this.container = document.getElementById(containerId);\r\n this.uiSearch = this.container.querySelector('.ui-search');\r\n\r\n this.initServerData();\r\n\r\n if (this.serverData.searchTextBoxSelector) {\r\n this.searchTextBox = document.getElementById(this.serverData.searchTextBoxSelector);\r\n this.mobileSearchTextBox = document.getElementById('mobile-' + this.serverData.searchTextBoxSelector);\r\n }\r\n\r\n if (!this.searchTextBox) {\r\n return;\r\n }\r\n\r\n this.attachEvents();\r\n\r\n var searchQuery = window.QueryStringHelper.getQueryStringParameter('searchQuery');\r\n if (searchQuery) {\r\n this.searchTextBox.value = searchQuery;\r\n this.container.querySelector('#filter-search-button').style.display = 'none';\r\n this.container.querySelector('#filter-search-clear').style.display = 'block';\r\n }\r\n }\r\n\r\n initServerData() {\r\n this.serverData = {\r\n resultsUrl: this.container.querySelector('[data-sf-role=\"resultsUrl\"]').value,\r\n indexCatalogue: this.container.querySelector('[data-sf-role=\"indexCatalogue\"]').value,\r\n wordsMode: this.container.querySelector('[data-sf-role=\"wordsMode\"]').value,\r\n disableSuggestions: JSON.parse(this.container.querySelector('[data-sf-role=\"disableSuggestions\"]').value),\r\n minSuggestionLength: this.container.querySelector('[data-sf-role=\"minSuggestionLength\"]').value,\r\n suggestionFields: this.container.querySelector('[data-sf-role=\"suggestionFields\"]').value,\r\n language: this.container.querySelector('[data-sf-role=\"language\"]').value,\r\n suggestionsRoute: this.container.querySelector('[data-sf-role=\"suggestionsRoute\"]').value,\r\n searchTextBoxSelector: this.container.querySelector('[data-sf-role=\"searchTextBoxId\"]').value,\r\n };\r\n }\r\n\r\n attachEvents() {\r\n if (this.container.querySelector('.expand')) {\r\n this.container.getElementsByClassName('expand')[0].addEventListener('click', (e) => {\r\n this.openSearch(e);\r\n });\r\n\r\n this.container.getElementsByClassName('close')[0].addEventListener('click', (e) => {\r\n this.closeSearch();\r\n });\r\n } else {\r\n if(this.container.querySelector('button')) {\r\n this.container.getElementsByTagName('button')[0].addEventListener('click', (e) => {\r\n this.navigateToResults(e);\r\n });\r\n }\r\n else {\r\n this.container.querySelector('#filter-search-button').addEventListener('click', (e) => {\r\n this.navigateToResults(e);\r\n });\r\n\r\n this.container.querySelector('#filter-search-clear').addEventListener('click', (e) => {\r\n this.container.querySelector('#filter-search-clear').style.display = 'none';\r\n this.container.querySelector('#filter-search-button').style.display = 'block';\r\n this.searchTextBox.value = '';\r\n this.navigateToResults(e);\r\n });\r\n }\r\n }\r\n\r\n if(this.container.querySelector('.mobile-search')) {\r\n this.container.getElementsByClassName('mobile-search')[0].addEventListener('click', (e) => {\r\n this.navigateToResults(e);\r\n }); \r\n }\r\n\r\n this.searchTextBox.addEventListener('keypress', (ev) => {\r\n this.keypressHandler(ev);\r\n });\r\n }\r\n\r\n openSearch(e) {\r\n if (DomHelper.hasClass('expanded', this.uiSearch)) {\r\n this.navigateToResults(e);\r\n } else {\r\n this.uiSearch.classList.add('expanded');\r\n }\r\n }\r\n\r\n closeSearch() {\r\n this.uiSearch.classList.remove('expanded');\r\n }\r\n\r\n keypressHandler(e) {\r\n if (!e)\r\n e = window.event;\r\n\r\n var keyCode = null;\r\n if (e.keyCode) {\r\n keyCode = e.keyCode;\r\n }\r\n else {\r\n keyCode = e.charCode;\r\n }\r\n\r\n if (keyCode == 13) {\r\n this.navigateToResults(e);\r\n }\r\n }\r\n\r\n navigateToResults(e) {\r\n if (!e)\r\n e = window.event;\r\n\r\n if (e.stopPropagation) {\r\n e.stopPropagation();\r\n }\r\n else {\r\n e.cancelBubble = true;\r\n }\r\n if (e.preventDefault) {\r\n e.preventDefault();\r\n }\r\n else {\r\n e.returnValue = false;\r\n }\r\n\r\n var query = this.searchTextBox.value;\r\n\r\n if (query && query.trim() && this.serverData.indexCatalogue) {\r\n this.sendSentence();\r\n window.location = this.getLocation();\r\n } else {\r\n window.location = this.getLocation();\r\n }\r\n }\r\n\r\n getLocation() {\r\n var query = this.searchTextBox.value.trim();\r\n\r\n var separator = (this.serverData.resultsUrl.indexOf(\"?\") == -1) ? \"?\" : \"&\";\r\n\r\n var catalogueParam = separator + \"indexCatalogue=\" + encodeURIComponent(this.serverData.indexCatalogue),\r\n searchQueryParam = \"&searchQuery=\" + encodeURIComponent(query),\r\n wordsModeParam = \"&wordsMode=\" + this.serverData.wordsMode;\r\n\r\n var url = this.serverData.resultsUrl + catalogueParam + searchQueryParam + wordsModeParam;\r\n\r\n // Check if filter parameters exist, if so retain them in the URL\r\n var currentUrlParams = new URLSearchParams(window.location.search);\r\n if (currentUrlParams.has('filter')) {\r\n currentUrlParams.delete('page');\r\n url = url + \"&filter=\" + currentUrlParams.get('filter');\r\n }\r\n\r\n return url;\r\n }\r\n\r\n sendSentence() {\r\n if (window.DataIntelligenceSubmitScript) {\r\n DataIntelligenceSubmitScript._client.sentenceClient.writeSentence({\r\n predicate: \"Search for\",\r\n object: this.searchTextBox.value,\r\n objectMetadata: [{\r\n 'K': 'PageUrl',\r\n 'V': location.href\r\n }]\r\n });\r\n }\r\n }\r\n}\r\n\r\nexport default SearchBox;"],"names":["window","WartsilaSearchBox","constructor","containerId","this","container","document","getElementById","uiSearch","querySelector","initServerData","serverData","searchTextBoxSelector","searchTextBox","mobileSearchTextBox","attachEvents","searchQuery","QueryStringHelper","getQueryStringParameter","value","style","display","resultsUrl","indexCatalogue","wordsMode","disableSuggestions","JSON","parse","minSuggestionLength","suggestionFields","language","suggestionsRoute","getElementsByClassName","addEventListener","e","openSearch","closeSearch","getElementsByTagName","navigateToResults","ev","keypressHandler","DomHelper","hasClass","classList","add","remove","event","keyCode","charCode","stopPropagation","cancelBubble","preventDefault","returnValue","query","trim","sendSentence","location","getLocation","catalogueParam","indexOf","encodeURIComponent","searchQueryParam","wordsModeParam","url","currentUrlParams","URLSearchParams","search","has","delete","get","DataIntelligenceSubmitScript","_client","sentenceClient","writeSentence","predicate","object","objectMetadata","href"],"sourceRoot":""}