{"version":3,"sources":["Feature/Search/code/ui/scripts/Search/SearchBoxAutocomplete.js"],"names":["searchComponent","searchTypeIds","dataSources","setupSearchTypeDatasources","$","data","split","document","getElementsByTagName","searchTypeId","getAttribute","datumTokenizer","each","i","dataSource","Bloodhound","queryTokenizer","tokenizers","whitespace","datum","value","wildcard","remote","searchResultArray","SearchResult","lang","Heading","item","initialize","map","ImageUrl","length","TotalNumberOfHits","SubHeading","NumberOfHits","heading","searchTypeInfo","noHitsText","linkText","push","limit","hitsText","linkUrl","typeahead","classNames","input","menu","templates","urlMarkup","headingMarkup","subHeadingMarkup","displayKey","imageUrl","imageMarkup","suggestion","Url","html","newDataset","header","showAllUrl","query","showAllLink","suggestions","empty","dataSets","dataset","hint","highlight","on","evt","window","location","href","val","setFocusToDropDownSearchInput","this","parent","find","focus","init","initTypeahead"],"mappings":"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","file":"../../../scripts/Search/SearchBoxAutocomplete-6f1b8e8a8f.js","sourcesContent":["var searchComponent = {\r\n searchTypeIds: [],\r\n dataSources: [],\r\n setupSearchTypeDatasources: function () {\r\n var searchTypeIds = $('.SearchBoxAutocomplete-q').data('searchtypes').split('|');\r\n searchComponent.searchTypeIds = searchTypeIds;\r\n searchComponent.dataSources = [];\r\n\r\n let lang = document.getElementsByTagName('body')[0].getAttribute('data-ctxlanguage');\r\n\r\n $(searchTypeIds).each(function (i, searchTypeId) {\r\n\r\n var dataSource = new Bloodhound({\r\n datumTokenizer: function (datum) {\r\n return Bloodhound.tokenizers.whitespace(datum.value);\r\n },\r\n queryTokenizer: Bloodhound.tokenizers.whitespace,\r\n remote: {\r\n url: \"/api/search/category/\" + encodeURIComponent(searchTypeId) + \"?q=%QUERY&lang=\" + lang,\r\n wildcard: '%QUERY',\r\n filter: function (data) {\r\n var searchResultArray = $.map(data.SearchResult,\r\n function (item) {\r\n return {\r\n Heading: item.Heading,\r\n Url: item.Url,\r\n ImageUrl: item.ImageUrl,\r\n SubHeading: item.SubHeading,\r\n NumberOfHits: data.SearchResult.length,\r\n TotalNumberOfHits: data.TotalNumberOfHits\r\n };\r\n });\r\n return searchResultArray;\r\n }\r\n }\r\n });\r\n dataSource.initialize();\r\n\r\n var searchTypeInfo = $(\"input[data-id='\" + searchTypeId + \"']\");\r\n\r\n searchComponent.dataSources.push({\r\n searchTypeId: searchTypeId,\r\n heading: searchTypeInfo.data('label'),\r\n limit: 'Infinity',\r\n noHitsText: searchTypeInfo.data('nohits-text'),\r\n hitsText: searchTypeInfo.data('hits-text'),\r\n linkText: searchTypeInfo.data('link-text'),\r\n linkUrl: searchTypeInfo.data('link-url'),\r\n dataSource: dataSource\r\n });\r\n });\r\n },\r\n initTypeahead: function () {\r\n $('.SearchBoxAutocomplete-q').typeahead('destroy'); // Typeahead adds markup for each time the plugin is initialized, so have to destroy it first.\r\n\r\n var options = {\r\n hint: false,\r\n minLength: 2,\r\n classNames: {\r\n input: 'SearchBoxAutocomplete-typeaheadInput',\r\n hint: 'SearchBoxAutocomplete-typeaheadHint',\r\n menu: 'SearchBoxAutocomplete-typeaheadMenu',\r\n dataset: 'SearchBoxAutocomplete-typeaheadDataset',\r\n suggestion: 'SearchBoxAutocomplete-typeaheadSuggestion',\r\n empty: 'SearchBoxAutocomplete-typeaheadEmpty',\r\n open: 'SearchBoxAutocomplete-typeaheadOpen',\r\n cursor: 'SearchBoxAutocomplete-typeaheadCursor',\r\n highlight: 'SearchBoxAutocomplete-typeaheadHighlight'\r\n }\r\n };\r\n\r\n var dataSets = [];\r\n\r\n $(searchComponent.dataSources).each(function (i, item) {\r\n\r\n var newDataset = {\r\n name: i,\r\n limit: item.limit,\r\n displayKey: 'Heading',\r\n source: item.dataSource.ttAdapter(),\r\n templates: {\r\n suggestion: function (data) {\r\n var imageUrl = data.ImageUrl;\r\n var imageMarkup = \"\";\r\n var urlMarkup = \"\";\r\n var headingMarkup = \"\";\r\n var subHeadingMarkup = \"\";\r\n\r\n if (imageUrl && imageUrl.length > 0) {\r\n imageMarkup =\r\n '