{"version":3,"sources":["webpack:///./js/PFF/controllers/partsAndSupport.ts"],"names":["PFF","$","__webpack_require__","translationsService_1","region_helper_1","controllers","partsAndSupport","translationsService","default","getInstance","translationStrings","JSON","parse","html","saytStrings","init","supportSearchApi","query","$viewAll","$viewAllButton","$alertDanger","$dropdown","get","done","result","empty","searchResult","data","removeClass","length","searchPrefix","translate","off","on","window","dataLayer","push","searchText","event","trackViewAllResults","attr","RegionHelper","localizedUrl","each","this","ContentTypeId","urlSelect","Url","_HighlightResult","Title","Value","appendTo","addClass","find","text","scrollTo","fail","response","console","log","$saytInput","$saytButton","$submit","$formTrigger","$partSearchForm","$partSearchInput","keypress","keyCode","which","trackPartSearch","val","simulateClick","elem","evt","MouseEvent","bubbles","cancelable","view","dispatchEvent","closeMenu","trackSupportSearchSubmit","inputText","inputValue","slugValue","replace","setTimeout","document","querySelector","trim","e","hasClass","preventDefault"],"mappings":"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","file":"controllers/partsAndSupport.js","sourcesContent":["import * as $ from 'jquery';\r\nimport {debounce} from \"throttle-debounce\";\r\nimport TranslationsService from '../services/translationsService';\r\nimport {RegionHelper} from \"../angular-modules/common/helpers/region.helper\";\r\n\r\nnamespace PFF.controllers.partsAndSupport {\r\n\tlet translationsService = TranslationsService.getInstance();\r\n\tlet translationStrings = JSON.parse($(\"#translations\").html());\r\n\tlet saytStrings = JSON.parse($(\"#sayt-translations\").html());\r\n\ttranslationsService.init(translationStrings);\r\n\ttranslationsService.init(saytStrings);\r\n\r\n\tlet lastSearchTerm = '';\r\n\r\n\tfunction trackViewAllResults(query){\r\n\t\twindow.dataLayer = window.dataLayer || [];\r\n\t\twindow.dataLayer.push({\r\n\t\t\t'searchText' : query, //Insert the text that was searched\r\n\t\t\t'event' : 'support_searched_viewall'\r\n\t\t});\r\n\t}\r\n\r\n\tfunction supportSearchApi(query){\r\n\t\tlet $viewAll = $('.js-sayt-view-all');\r\n\t\tlet $viewAllButton = $('.js-sayt-view-all-button');\r\n\t\tlet $alertDanger = $('.js-alert-danger');\r\n\t\tlet $dropdown = $('.js-sayt-dropdown');\r\n\r\n\t\t$.get(\"/api/pff/support-search?query=\"+query)\r\n\t\t\t.done(function (result) {\r\n\t\t\t\t$('.js-sayt-menu').empty();\r\n\r\n\t\t\t\tif (result) {\r\n\t\t\t\t\tlet searchResult = result.data;\r\n\t\t\t\t\t$viewAll.removeClass('hidden');\r\n\r\n\t\t\t\t\tif(searchResult.length) {\r\n\t\t\t\t\t\t$dropdown.removeClass('hidden');\r\n\t\t\t\t\t\tlet searchPrefix = `${translationsService.translate('Forms.Search')}`;\r\n\r\n\t\t\t\t\t\t//viewall search button tracking for GA\r\n\t\t\t\t\t\t$('body').off('click.viewall').on('click.viewall', '.js-sayt-view-all-button', function(){\r\n\t\t\t\t\t\t\ttrackViewAllResults(query);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t//set our View All Link to take you to the approppriate area on the search results pages\r\n\t\t\t\t\t\t$viewAllButton.attr('href', `${RegionHelper.localizedUrl('')}/${searchPrefix}?FilterCriteria.Query=${query}&FilterCriteria.Tab=support` );\r\n\r\n\t\t\t\t\t\t//Loop through each product in the results and return the values\r\n\t\t\t\t\t\t$.each(searchResult, function () {\r\n\t\t\t\t\t\t\tvar videoType = this.ContentTypeId == \"Videos\" ? \"js-video\" : \"\";\r\n\t\t\t\t\t\t\tvar urlSelect = this.ContentTypeId == \"Videos\" ? \"https://www.youtube.com/watch?v=\" + this.Url : this.Url;\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t$(`<li class=\"v-support__sayt-menu-item\">\r\n\t\t\t\t\t\t\t\t<a href=\"${urlSelect}\" class=\"v-support__sayt-menu-link\" target=\"_blank\">${this._HighlightResult.Title.Value}</a>\r\n\t\t\t\t\t\t\t</li>`).appendTo('.js-sayt-menu');\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t$viewAllButton.removeClass('hidden');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$(`<li class=\"v-support__sayt-menu-item state-no-results\">\r\n\t\t\t\t\t\t\t<em>${translationsService.translate('No')} <strong>${translationsService.translate('Support')} </strong> ${translationsService.translate('ResultsFor')} \"${query}\"</em>\r\n\t\t\t\t\t\t</li>`).appendTo('.js-sayt-menu');\r\n\r\n\t\t\t\t\t\t//hide the view all link if there are no results\r\n\t\t\t\t\t\t$viewAllButton.addClass('hidden');\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$alertDanger\r\n\t\t\t\t\t\t.removeClass('hidden')\r\n\t\t\t\t\t\t.find('.js-alert-text')\r\n\t\t\t\t\t\t.text(translationsService.translate('NoData'));\r\n\r\n\t\t\t\t\twindow.scrollTo(0, 0);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.fail(function (response) {\r\n\t\t\t\tconsole.log('fail:' + response);\r\n\t\t\t});\r\n\t}\r\n\r\n\texport function init() {\r\n\t\tvar $saytInput = $('.js-sayt-input');\r\n\t\tvar $saytButton = $('.js-sayt-button');\r\n\t\tvar $submit = $('.js-sayt-submit');\r\n\t\tlet $dropdown = $('.js-sayt-dropdown');\r\n\t\tlet $formTrigger = $('.js-sayt-trigger');\r\n\t\tlet $partSearchForm = $('.js-part-search');\r\n\t\tlet $partSearchInput = $('.js-part-search-input');\r\n\r\n\t\tfunction openMenu() {\r\n\t\t\t$dropdown.removeClass('hidden');\r\n\t\t\t$saytButton.addClass('state-open');\r\n\t\t}\r\n\r\n\t\t//GA TRACKING\r\n\t\t$partSearchInput.keypress(function(event){\r\n\t\t\tvar keycode = (event.keyCode ? event.keyCode : event.which);\r\n\r\n\t\t\tif(keycode == '13'){\r\n\t\t\t\ttrackPartSearch($partSearchInput.val());\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tvar simulateClick = function (elem) {\r\n\t\t\t// Create our event (with options)\r\n\t\t\tvar evt = new MouseEvent('click', {\r\n\t\t\t\tbubbles: true,\r\n\t\t\t\tcancelable: true,\r\n\t\t\t\tview: window\r\n\t\t\t});\r\n\t\t\t// If cancelled, don't dispatch our event\r\n\t\t\tvar canceled = !elem.dispatchEvent(evt);\r\n\t\t};\r\n\r\n\t\tfunction closeMenu() {\r\n\t\t\t$dropdown.addClass('hidden');\r\n\t\t\t$saytButton.removeClass('state-open');\r\n\t\t}\r\n\r\n\t\t$saytInput.on('keyup', function (evt) {\r\n\t\t\tif (evt.keyCode != 13) { //enter button\r\n\t\t\t\tlet inputValue = $(this).val();\r\n\t\t\t\tlet slugValue = inputValue.replace(' ', '+');\r\n\t\t\t\tlet searchPrefix = `${translationsService.translate('Forms.Search')}`;\r\n\t\t\t\tif (inputValue.length) {\r\n\t\t\t\t\topenMenu();\r\n\t\t\t\t\t$formTrigger.attr('href', `${RegionHelper.localizedUrl('')}/${searchPrefix}?FilterCriteria.Query=${slugValue}&FilterCriteria.Tab=support`);\r\n\t\t\t\t\tsupportSearchApi(inputValue);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$formTrigger.attr('href', `${RegionHelper.localizedUrl('')}/${searchPrefix}?FilterCriteria.Query=${slugValue}&FilterCriteria.Tab=support`);\r\n\t\t\t\t\tcloseMenu();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlastSearchTerm = inputValue;\r\n\t\t\t} else {\r\n\t\t\t\tconsole.log('it is enter');\r\n\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\tsimulateClick(document.querySelector('.js-sayt-trigger'));\r\n\t\t\t\t}, 25);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t$('body').on('click.saytdropdown', '.js-sayt-dropdown a:not(.js-sayt-view-all-button)', function(){\r\n\t\t\tlet $this = $(this);\r\n\t\t\ttrackSupportSearchSubmit($this.text().trim());\r\n\t\t});\r\n\r\n\t\t$saytButton.on('click', function(e){\r\n\t\t\tif ( !$(this).hasClass('state-open') ) {\r\n\t\t\t\tcloseMenu();\r\n\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\ttrackSupportSearchSubmit($saytInput.val());\r\n\t\t\t\t\tsimulateClick(document.querySelector('.js-sayt-trigger'));\r\n\t\t\t\t}, 25);\r\n\t\t\t} else {\r\n\t\t\t\tcloseMenu();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t//METRICS TRACKING\r\n\t\tfunction trackSupportSearchSubmit(inputText){\r\n\t\t\twindow.dataLayer = window.dataLayer || [];\r\n\t\t\twindow.dataLayer.push({\r\n\t\t\t\t'searchText' : inputText, //Insert the text that was searched\r\n\t\t\t\t'event' : 'support_searched'\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t$submit.on('submit', function(e){\r\n\t\t\te.preventDefault();\r\n\t\t});\r\n\r\n\t\t//on press enter track search item\r\n\t\t$saytInput.keypress(function(event){\r\n\t\t\tvar keycode = (event.keyCode ? event.keyCode : event.which);\r\n\r\n\t\t\tif(keycode == '13'){\r\n\t\t\t\ttrackSupportSearchSubmit($saytInput.val());\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t//METRICS TRACKING\r\n\t\tfunction trackPartSearch(inputText){\r\n\t\t\twindow.dataLayer = window.dataLayer || [];\r\n\t\t\twindow.dataLayer.push({\r\n\t\t\t\t'searchText' : inputText, //Insert the model number that was searched\r\n\t\t\t\t'event' : 'modelnum_searched_parts'\r\n\t\t\t});\r\n\t\t\tconsole.log(window.dataLayer.event);\r\n\t\t}\r\n\r\n\t\t$partSearchForm.on('submit', function(){\r\n\t\t\tlet inputValue = $partSearchInput.val();\r\n\t\t\ttrackPartSearch(inputValue);\r\n\t\t});\r\n\t}\r\n}\r\n\r\nPFF.controllers.partsAndSupport.init();\r\n\n\n\n// WEBPACK FOOTER //\n// ./js/PFF/controllers/partsAndSupport.ts"],"sourceRoot":""}