{"version":3,"file":"TEKsystems.SitecoreXP.SearchFilter.js","names":["define","$","eventManager","bootstrap","Common","searchQuery","searchFilterNames","solrFilterMapping","solution","service","industry","ctype","searchFilters","GenerateUrlQuery","query","filters","param","i","length","filterName","concatenateFilterArray","filterUrlParameters","filterArray","output","getSearchQuery","URL","GetParameterByName","getFilters","filterString","values","split","updateSearch","url","window","location","origin","pathname","history","pushState","UpdateUrl","trigger","document","on","event","is","hasClass","addClass","attr","removeClass","this","GetUrlQuery","UpdateSearch","search","addFilter","value","name","toLowerCase","v","indexOf","push","filter","splice","remove","toString","clearAll","searchAndFilter","AddParamToUrl","GetSearchQuery","GetFilters","GetFilterNames","SearchCompleted","GetFilterValues","filterValues","grep","e","Name","SetupBrowserHistoryRefresh","onpopstate","val","undefined","state"],"sources":["site/TEKsystems.SitecoreXP.SearchFilter.js"],"mappings":"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","sourcesContent":["define([\"jquery\", \"eventManager\", \"bootstrap\", \"site/TEKsystems.SitecoreXP.Common\"], function ($, eventManager, bootstrap, Common) {\r\n\r\n\tvar searchQuery = \"\";\r\n\tvar searchFilterNames = [\"solution\", \"service\", \"industry\", \"ctype\"];\r\n var solrFilterMapping = {\"solution\": \"solution_sm\", \"service\": \"service_sm\", \"industry\": \"industry_sm\", \"ctype\":\"contenttype2_sm\" };\r\n\tvar searchFilters = { solution: [], service: [], industry: [], ctype: [] };\r\n\r\n\tfunction GenerateUrlQuery(query, filters) {\r\n\t\treturn \"?q=\" + query + filterUrlParameters(filters);\r\n\t} \r\n\r\n\tfunction UpdateUrl(query, filters) {\r\n\t\tvar path = window.location.origin + window.location.pathname;\r\n\t\tvar url = path + GenerateUrlQuery(query, filters);\r\n\t\twindow.history.pushState({ url: url, query: query, filters: filters }, \"\", url);\r\n\t}\r\n\r\n\tfunction filterUrlParameters(filters) {\r\n\t\tvar param = \"\";\r\n\r\n\t\tfor (i = 0; i < searchFilterNames.length; i++) {\r\n\t\t\tvar filterName = searchFilterNames[i];\r\n\r\n\t\t\tif (filters[filterName].length > 0) {\r\n\t\t\t\tparam = param + \"&\" + filterName + \"=\" + concatenateFilterArray(filters[filterName]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn param;\r\n\t}\r\n\r\n\tfunction concatenateFilterArray(filterArray) {\r\n\t\tvar output = \"\";\r\n\t\tfor (var i = 0; i < filterArray.length; i++) {\r\n\t\t\tif (output.length > 0) {\r\n\t\t\t\toutput = output + \",\";\r\n\t\t\t}\r\n\r\n\t\t\toutput = output + filterArray[i];\r\n\t\t}\r\n\r\n\t\treturn output;\r\n\t}\r\n\r\n\tfunction splitFilterString(filterString) {\r\n\t\tvar values = filterString.split(\",\");\r\n\r\n\t\tif (values.length > 0) {\r\n\t\t\tif (values[0].length > 0) {\r\n\t\t\t\treturn values;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn [];\r\n\t}\r\n\r\n\tfunction getSearchQuery() {\r\n\t\tsearchQuery = Common.URL.GetParameterByName(\"q\");\r\n\t\treturn searchQuery;\r\n\t}\r\n\r\n\tfunction getFilters() {\r\n\t\tfor (i = 0; i < searchFilterNames.length; i++) {\r\n\t\t\tvar filterName = searchFilterNames[i];\r\n\t\t\tsearchFilters[filterName] = splitFilterString(Common.URL.GetParameterByName(filterName));\r\n\t\t}\r\n\t\treturn searchFilters;\r\n\t}\r\n\r\n\tfunction getSolrMapping(filterName) {\r\n return solrFilterMapping[filterName];\r\n\t}\r\n\r\n\tfunction updateSearch() {\r\n\t\tvar query = searchQuery;\r\n\t\tvar filters = searchFilters;\r\n\r\n\t\tUpdateUrl(query, filters);\r\n\t\teventManager.trigger(\"search:update\", query, filters);\r\n\t}\r\n\r\n\tfunction setupMobileFilterPanel() {\r\n\t\t$(document).on(\"click\", function (event) {\r\n\t\t\tif ($(\".score-accordion-panel .panel-heading\").is(\":visible\")) { // Accordion panel shown on mobile only\r\n\t\t\t\tif ($(\".score-accordion-panel .panel-collapse\").hasClass(\"in\")) { // If the accordion panel is opened\r\n\t\t\t\t\t$(\".score-accordion-panel .panel-heading a\").addClass(\"collapsed\");\r\n\t\t\t\t\t$(\".score-accordion-panel .panel-heading a\").attr(\"aria-expanded\", false);\r\n\t\t\t\t\t$(\".score-accordion-panel .panel-collapse\").removeClass(\"in\");\r\n\t\t\t\t\t$(\".score-accordion-panel .panel-collapse\").attr(\"aria-expanded\", false);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tfunction SearchFilter() {\r\n\r\n getSearchQuery();\r\n\r\n getFilters();\r\n\r\n\t\tsetupMobileFilterPanel();\r\n\r\n\t\tthis.GetUrlQuery = function() {\r\n\t\t\treturn GenerateUrlQuery(searchQuery, searchFilters);\r\n\t\t}\r\n\r\n\t\tthis.UpdateSearch = function () {\r\n\t updateSearch();\r\n\t }\r\n\r\n\t\tthis.search = function search(query) {\r\n\t\t\tsearchQuery = query;\r\n\t\t\tupdateSearch();\r\n\t\t}\r\n\r\n\t\tthis.addFilter = function (filterName, value) {\r\n\t\t\tif (filterName && filterName.length > 0) {\r\n\t\t\t\tvar name = filterName.toLowerCase();\r\n\t\t\t\tvar v = searchFilters[name];\r\n\t\t\t\tvar i = v.indexOf(value);\r\n\t\t\t\tif (i === -1) {\r\n\t\t\t\t\tv.push(value);\r\n\t\t\t\t}\r\n\t\t\t\tsearchFilters[name] = v;\r\n\t\t\t\tupdateSearch();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.filter = function filter(filterName, value) {\r\n\t\t\tif (filterName && filterName.length > 0) {\r\n\t\t\t\tvar name = filterName.toLowerCase();\r\n\t\t\t\tvar v = searchFilters[name];\r\n\t\t\t\tvar i = v.indexOf(value);\r\n\t\t\t\tif (i === -1) {\r\n\t\t\t\t v.push(value);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tv.splice(i, 1);\r\n\t\t\t\t}\r\n\t\t\t\tsearchFilters[name] = v;\r\n\t\t\t\tupdateSearch();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.remove = function remove(filterName, value) {\r\n\t\t\tif (filterName && filterName.length > 0) {\r\n\t\t\t\tvar name = filterName.toLowerCase();\r\n\t\t\t\tvar v = searchFilters[name];\r\n\t\t\t\tvar i = v.indexOf(value.toString());\r\n\t\t\t\tif (i != -1) {\r\n\t\t\t\t v.splice(i, 1);\r\n\t\t\t\t}\r\n\t\t\t\tsearchFilters[name] = v;\r\n\t\t\t\tupdateSearch();\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.clearAll = function clearAll()\r\n\t\t{\r\n searchFilters = { solution: [], service: [], industry: [], ctype: [] };\r\n\t\t updateSearch();\r\n }\r\n\r\n\t\tthis.searchAndFilter = function searchAndFilter(query, filter, value) {\r\n\t\t\tsearchQuery = query;\r\n\t\t\tthis.filter(filter, value);\r\n\t\t};\r\n\r\n\t\tthis.AddParamToUrl = function (url, name, value) {\r\n\t\t\tif (value == null || value.length == 0) {\r\n\t\t\t\treturn url;\r\n\t\t\t}\r\n\r\n\t\t\tif (url[url.length - 1] != \"?\") {\r\n\t\t\t\turl = url + \"&\";\r\n\t\t\t}\r\n\r\n\t\t\treturn url + name + \"=\" + value;\r\n\t\t}\r\n\r\n\t\tthis.GetSearchQuery = function () {\r\n\t\t\treturn getSearchQuery();\r\n\t\t}\r\n\r\n\t\tthis.GetFilters = function () {\r\n\t\t\treturn getFilters();\r\n\t\t}\r\n\r\n\t\tthis.GetFilterNames = function() {\r\n\t\t\treturn searchFilterNames;\r\n\t\t}\r\n\r\n\t\tthis.SearchCompleted = function (values) {\r\n\r\n\t\t eventManager.trigger(\"search:completed\", values);\r\n\t\t}\r\n\r\n\t\tthis.GetFilterValues = function (filterName, filterValues) {\r\n\r\n\t\t if (filterValues == null) { return []; }\r\n\t\t return $.grep(filterValues, function (e) { return e.Name == solrFilterMapping[filterName]; })[0];\r\n\t\t}\r\n\r\n this.SetupBrowserHistoryRefresh = function () {\r\n window.onpopstate = function (event)\r\n {\r\n \t$('input:text').val(\"\");\r\n \tvar query = null;\r\n \tvar filters = null;\r\n \tif (event.state != undefined && event.state) {\r\n \t\tquery = event.state.query;\r\n \t\tfilters = event.state.filters;\r\n \t}\r\n\r\n \teventManager.trigger(\"search:update\", query, filters);\r\n }\r\n }\r\n\t}\r\n\r\n\treturn new SearchFilter();\r\n});"]}