{"version":3,"file":"search-box.legacy.js","mappings":"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","sources":["webpack://frontend-starter/./src/scripts/search-box/search-box.js","webpack://frontend-starter/./src/scripts/search-box/index.js"],"sourcesContent":["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;","import SearchBox from './search-box';\r\n\r\nwindow.WartsilaSearchBox = SearchBox;"],"names":["containerId","this","container","document","getElementById","uiSearch","querySelector","initServerData","serverData","searchTextBoxSelector","searchTextBox","mobileSearchTextBox","attachEvents","searchQuery","window","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","get","DataIntelligenceSubmitScript","_client","sentenceClient","writeSentence","predicate","object","objectMetadata","href","WartsilaSearchBox","SearchBox"],"sourceRoot":""}