{"version":3,"sources":["common/js/components/public/framework/pageHeaderSearch.js"],"names":["dataSourceQuickLinks","bindAutoCompleteEvents","$","typeahead","classNames","input","hint","menu","dataset","suggestion","empty","open","cursor","highlight","minLength","matcher","limit","source","ttAdapter","displayKey","templates","data","result","Url","ImageUrl","Title","Description","length","push","join","on","evt","item","triggerPageView","SearchUrl","preventDefault","createQuicklinksDataSource","Bloodhound","datumTokenizer","datum","tokenizers","whitespace","value","queryTokenizer","remote","url","wildcard","filter","map","replaceInvalidChars","initialize","escaped","replace","searchPageUrl","redirectToUrl","contentGroups","getSearchPageContentGroups","gtag","gaCode","page_path","content_group1","content_group2","content_group3","dataLayer","dimension2","event_callback","loadPage","splittedSearchPageUrl","split","contentGroup1","contentGroup2","contentGroup3","window","location","assign"],"mappings":"AAAA,IAAIA,qBAAuB,KAK3B,SAASC,yBAEPC,EAAE,yCAAyCC,WACzCC,YACEC,MAAO,uCACPC,KAAM,sCACNC,KAAM,sCACNC,QAAS,2EACTC,WAAY,4CACZC,MAAO,uCACPC,KAAM,sCACNC,OAAQ,wCACRC,UAAW,4CAEbP,MAAM,EACNO,WAAW,EACXC,UAAW,EACXC,QAAS,SAASA,UAChB,OAAO,KAGTC,MAAO,EACPC,OAAQjB,qBAAqBkB,YAC7BC,WAAY,QACZC,WACEX,WAAY,SAASA,WAAWY,MAC9B,IAAIC,QAAU,6CAA8C,iDAAmDD,KAAKE,IAAM,KAAM,kBAAoBF,KAAKG,SAAW,iDAAkD,QAAS,+CAAiDH,KAAKI,MAAQ,UAK7R,OAJwB,MAApBJ,KAAKK,aAAuBL,KAAKK,YAAYC,OAAS,GAAKN,KAAKI,OAASJ,KAAKK,aAChFJ,OAAOM,KAAK,6CAA+CP,KAAKK,YAAc,UAEhFJ,OAAOM,KAAK,oBACLN,OAAOO,KAAK,UAIzB3B,EAAE,yCAAyC4B,GAAG,qBAAsB,SAAUC,IAAKC,MAC7EA,KAAKT,MACPU,gBAAgBD,KAAKE,UAAWF,KAAKT,KACrCQ,IAAII,oBAIV,SAASC,6BACP,IAAIpC,qBAAuB,IAAIqC,YAC7BC,eAAgB,SAASA,eAAeC,OACtC,OAAOF,WAAWG,WAAWC,WAAWF,MAAMG,QAEhDC,eAAgBN,WAAWG,WAAWC,WACtCG,QACEC,IAAK,uCAAyC3C,EAAE,QAAQmB,KAAK,WAAa,aAAenB,EAAE,QAAQmB,KAAK,eACxGyB,SAAU,SACVC,OAAQ,SAASA,OAAO1B,MAEtB,OAAOnB,EAAE8C,IAAI3B,KAAM,SAAUW,MAC3B,OACEP,MAAOO,KAAKP,MACZF,IAAK0B,oBAAoBjB,KAAKT,KAC9BC,SAAUQ,KAAKR,SACfU,UAAWF,KAAKE,UAChBR,YAAaM,KAAKN,mBAQ5B,OADA1B,qBAAqBkD,aACdlD,qBAET,SAASiD,oBAAoBP,OAE3B,IAAIS,QACJ,OADcT,MAAMU,QAAQ,OAAQ,KAAKA,QAAQ,IAAK,SAGxD,SAASnB,gBAAgBoB,cAAeC,eACtC,IAAIC,cAAgBC,2BAA2BH,eAC/CI,KAAK,SAAUC,QACbC,UAAaN,cACbO,eAAkBL,cAAc,GAChCM,eAAkBN,cAAc,GAChCO,eAAkBP,cAAc,UAEL,IAAlBD,eAAsD,oBAAdS,WACjDA,UAAUnC,KAAK,QAAS,UACtBoC,WAAc,YACdC,eAAkBC,SAASZ,iBAIjC,SAASE,2BAA2BH,eAClC,IAAIc,sBAAwBd,cAAce,MAAM,KAChD,GAAID,sBAAsBxC,OAAS,EAAG,OAAQ,GAAI,GAAI,IACtD,IAAI0C,cACAC,cAAgB,cAChBC,cAAgB,SACpB,OAHoBJ,sBAAsB,GAAK,IAAMA,sBAAsB,GACvD,cACA,UAGtB,SAASD,SAASZ,eAChBkB,OAAOC,SAASC,OAAOpB,eAtGzBpD,EAAE,WACAF,qBAAuBoC,6BACvBnC","file":"../../../../../../common/js/components/public/framework/pageHeaderSearch-93b899acdc.js","sourcesContent":["var dataSourceQuickLinks = null;\n$(function () {\n dataSourceQuickLinks = createQuicklinksDataSource();\n bindAutoCompleteEvents();\n});\nfunction bindAutoCompleteEvents() {\n // Instantiate the Typeahead UI\n $('.SearchBoxAutocomplete-typeaheadInput').typeahead({\n classNames: {\n input: 'SearchBoxAutocomplete-typeaheadInput',\n hint: 'SearchBoxAutocomplete-typeaheadHint',\n menu: 'SearchBoxAutocomplete-typeaheadMenu',\n dataset: 'SearchBoxAutocomplete-typeaheadDataset pageHeader-searchResultsContainer',\n suggestion: 'SearchBoxAutocomplete-typeaheadSuggestion',\n empty: 'SearchBoxAutocomplete-typeaheadEmpty',\n open: 'SearchBoxAutocomplete-typeaheadOpen',\n cursor: 'SearchBoxAutocomplete-typeaheadCursor',\n highlight: 'SearchBoxAutocomplete-typeaheadHighlight'\n },\n hint: false,\n highlight: true,\n minLength: 3,\n matcher: function matcher() {\n return true;\n } //server is responsible to match\n }, {\n limit: 8,\n source: dataSourceQuickLinks.ttAdapter(),\n displayKey: 'Title',\n templates: {\n suggestion: function suggestion(data) {\n var result = [\"
\", \"\", \"
\", \"
\", \"
\" + data.Title + \"
\"];\n if (data.Description != null && data.Description.length > 0 && data.Title != data.Description) {\n result.push(\"
\" + data.Description + \"
\");\n }\n result.push(\"
\");\n return result.join(\"\\n\");\n }\n }\n });\n $('.SearchBoxAutocomplete-typeaheadInput').on('typeahead:selected', function (evt, item) {\n if (item.Url) {\n triggerPageView(item.SearchUrl, item.Url);\n evt.preventDefault();\n }\n });\n}\nfunction createQuicklinksDataSource() {\n var dataSourceQuickLinks = new Bloodhound({\n datumTokenizer: function datumTokenizer(datum) {\n return Bloodhound.tokenizers.whitespace(datum.value);\n },\n queryTokenizer: Bloodhound.tokenizers.whitespace,\n remote: {\n url: \"/get-quicklinks?query=%QUERY&itemid=\" + $(\"body\").data(\"sc-item\") + \"&language=\" + $('body').data(\"sc-language\"),\n wildcard: '%QUERY',\n filter: function filter(data) {\n // Map the remote source JSON array to a JavaScript object array\n return $.map(data, function (item) {\n return {\n Title: item.Title,\n Url: replaceInvalidChars(item.Url),\n ImageUrl: item.ImageUrl,\n SearchUrl: item.SearchUrl,\n Description: item.Description\n };\n });\n }\n }\n });\n // Initialize the Bloodhound suggestion engine\n dataSourceQuickLinks.initialize();\n return dataSourceQuickLinks;\n}\nfunction replaceInvalidChars(value) {\n // escape characters to handle url with \"'\".\n var escaped = value.replace(/%20/g, \" \").replace(\"'\", ''');\n return escaped;\n}\nfunction triggerPageView(searchPageUrl, redirectToUrl) {\n var contentGroups = getSearchPageContentGroups(searchPageUrl);\n gtag('config', gaCode, {\n 'page_path': searchPageUrl,\n 'content_group1': contentGroups[0],\n 'content_group2': contentGroups[1],\n 'content_group3': contentGroups[2]\n });\n if (typeof redirectToUrl !== \"undefined\" && typeof dataLayer !== \"undefined\") {\n dataLayer.push('event', 'search', {\n 'dimension2': 'quicklink',\n 'event_callback': loadPage(redirectToUrl)\n });\n }\n}\nfunction getSearchPageContentGroups(searchPageUrl) {\n var splittedSearchPageUrl = searchPageUrl.split(\"/\");\n if (splittedSearchPageUrl.length < 3) return [\"\", \"\", \"\"];\n var contentGroup1 = splittedSearchPageUrl[1] + \"/\" + splittedSearchPageUrl[2];\n var contentGroup2 = \"search page\";\n var contentGroup3 = \"search\";\n return [contentGroup1, contentGroup2, contentGroup3];\n}\nfunction loadPage(redirectToUrl) {\n window.location.assign(redirectToUrl);\n}"]}