{"version":3,"sources":["intelligenceLanding.js"],"names":["$","Object","Array","undefined","router","intelligenceRouter","KeywordFilterManager","searchBox","this","prototype","updateUi","val","value","getSearchTerms","searchTerms","replace","setSearchTerms","removeSearchTerm","breadcrumb","breadcrumbValue","children","text","index","indexOf","splice","DropdownFilterManager","dropdown","isType","resultsMap","Map","typeMap","textElement","prev","length","setValues","values","isUUID","size","forEach","x","addToMap","getDropdownByText","find","removeFromMap","addValue","dropdownValue","dropdownGuid","has","set","setType","clear","addType","typeValue","typeGuid","removeValue","delete","uuid","s","match","key","keys","includes","selector","filter","BreadcrumbManager","breadcrumbContainer","updateBreadcrumbs","filterType","i","typeContainer","breadcrumbs","bound","eq","remove","additional","slice","append","getBreadcrumbs","css","clearAll","FilterManager","bm","kfm","ifm","pfm","tfm","page","init","filteredNewsUrl","callback","filters","bindEvents","keywords","industries","practices","type","handlePopstate","isEmptySearch","getRecentIntelligence","console","log","from","next","getFilteredIntelligence","reset","getState","loadAllUpToPage","readState","beforeNewSearch","handleSearch","isProgrammatic","state","push","ajax","url","data","JSON","stringify","contentType","success","_this","on","keyword","e","which","parent","attr","extend","filterManager","jQuery"],"mappings":"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","file":"intelligenceLanding.js","sourcesContent":["; (function ($, Object, Array, undefined) {\r\n router = intelligenceRouter;\r\n\r\n var KeywordFilterManager = function (searchBox) {\r\n this.searchBox = searchBox;\r\n };\r\n\r\n KeywordFilterManager.prototype = {\r\n updateUi: function () {\r\n this.searchBox.val(this.value);\r\n },\r\n getSearchTerms: function () {\r\n var searchTerms = this.searchBox.val();\r\n searchTerms = searchTerms.replace(\"‘\", \"'\");\r\n searchTerms = searchTerms.replace(\"’\", \"'\");\r\n\r\n if (searchTerms !== \"\" && searchTerms !== \"Keywords\") {\r\n this.value = searchTerms;\r\n }\r\n else {\r\n this.value = \"\";\r\n }\r\n },\r\n setSearchTerms: function (searchTerms) {\r\n this.value = searchTerms;\r\n this.updateUi();\r\n },\r\n removeSearchTerm: function (breadcrumb) {\r\n var breadcrumbValue = breadcrumb.children(\".text\").text(),\r\n index = this.value.indexOf(breadcrumbValue);\r\n\r\n this.value.splice(index, 1);\r\n this.updateUi();\r\n }\r\n };\r\n\r\n var DropdownFilterManager = function (dropdown, isType) {\r\n this.dropdown = dropdown;\r\n this.isType = isType;\r\n this.resultsMap = new Map();\r\n this.typeMap = new Map();\r\n };\r\n\r\n DropdownFilterManager.prototype = {\r\n updateUi: function (value) {\r\n this.dropdown.val(\"\");\r\n let textElement = this.dropdown.prev();\r\n\r\n if (this.isType)\r\n textElement = textElement.prev();\r\n\r\n if (value && value.length > 0 && this.isType)\r\n textElement.text(value);\r\n else\r\n textElement.text(this.dropdown.children(\"[value='']\").text());\r\n },\r\n setValues: function (values) {\r\n if (values.length !== 0 && !this.isUUID(...values)) {\r\n if (values.length > this.resultsMap.size) {\r\n values.forEach(x => this.addToMap(x, this.getDropdownByText(this.dropdown.find('option'), x).val()));\r\n }\r\n else {\r\n this.removeFromMap(values);\r\n }\r\n\r\n this.value = this.resultsMap;\r\n }\r\n else {\r\n this.value = values;\r\n }\r\n\r\n this.updateUi();\r\n },\r\n addValue: function (dropdownValue, dropdownGuid) {\r\n if (!this.resultsMap.has(dropdownValue)) {\r\n this.resultsMap.set(dropdownValue, dropdownGuid);\r\n }\r\n\r\n this.value = this.resultsMap;\r\n this.updateUi();\r\n },\r\n setType: function (value) {\r\n if (value && !this.isUUID(value)) {\r\n this.typeMap.clear();\r\n this.typeMap.set(value, this.getDropdownByText(this.dropdown.find('option'), value).val());\r\n this.value = this.typeMap;\r\n }\r\n else {\r\n this.typeMap.clear();\r\n this.value = '';\r\n }\r\n\r\n this.updateUi(value);\r\n },\r\n addType: function (typeValue, typeGuid) {\r\n this.typeMap.clear();\r\n this.typeMap.set(typeValue, typeGuid);\r\n\r\n this.value = this.typeMap;\r\n this.updateUi(typeValue);\r\n },\r\n removeValue: function (breadcrumb) {\r\n var breadcrumbValue = breadcrumb.children(\".text\").text();\r\n\r\n this.value.delete(breadcrumbValue);\r\n this.updateUi();\r\n },\r\n isUUID: function (uuid) {\r\n let s = \"\" + uuid;\r\n s = s.match('^[0-9a-fA-F]{32}$');\r\n\r\n return s === null ? false : true;\r\n },\r\n addToMap: function (dropdownValue, dropdownGuid) {\r\n if (!this.resultsMap.has(dropdownValue)) {\r\n this.resultsMap.set(dropdownValue, dropdownGuid);\r\n }\r\n },\r\n removeFromMap: function (values) {\r\n for (var key of this.resultsMap.keys()) {\r\n if (!values.includes(key)) {\r\n this.value.delete(key);\r\n }\r\n }\r\n },\r\n getDropdownByText: function (selector, value) {\r\n return $(selector).filter(function () { return $(this).text() == value });\r\n }\r\n };\r\n\r\n var BreadcrumbManager = function (breadcrumbContainer) {\r\n this.breadcrumbContainer = breadcrumbContainer;\r\n };\r\n\r\n BreadcrumbManager.prototype = {\r\n updateBreadcrumbs: function (filterType, values) {\r\n var typeContainer = this.breadcrumbContainer.children(\"[data-type='\" + filterType + \"']\"),\r\n breadcrumbs = typeContainer.children(),\r\n bound = breadcrumbs.length,\r\n i;\r\n\r\n if (values.length < bound) {\r\n bound = values.length;\r\n\r\n for (i = breadcrumbs.length - 1; i >= bound; i--) {\r\n breadcrumbs.eq(i).remove();\r\n }\r\n }\r\n else if (values.length > bound) {\r\n var additional = values.slice(bound - values.length);\r\n\r\n for (i = 0; i < additional.length; i++) {\r\n if (additional[i] !== \"\") {\r\n typeContainer.append(\"\");\r\n }\r\n }\r\n }\r\n\r\n for (i = 0; i < bound; i++) {\r\n if (values[i] !== \"\") {\r\n breadcrumbs.eq(i).children(\".text\").text(values[i]);\r\n }\r\n }\r\n\r\n if (this.getBreadcrumbs().length > 0) {\r\n this.breadcrumbContainer.css(\"visibility\", \"visible\");\r\n }\r\n else {\r\n this.breadcrumbContainer.css(\"visibility\", \"hidden\");\r\n }\r\n },\r\n getBreadcrumbs: function () {\r\n return this.breadcrumbContainer.find(\".search-criteria-item\");\r\n },\r\n clearAll: function () {\r\n this.getBreadcrumbs().remove();\r\n this.breadcrumbContainer.css(\"visibility\", \"hidden\");\r\n }\r\n };\r\n\r\n var FilterManager = function () {\r\n this.bm = new BreadcrumbManager($(\".search-criteria-breadcrumbs\"));\r\n this.kfm = new KeywordFilterManager($(\".search-box input[type='text']\"));\r\n this.ifm = new DropdownFilterManager($(\".filter-dropdown.industries select\"));\r\n this.pfm = new DropdownFilterManager($(\".filter-dropdown.practices select\"));\r\n this.tfm = new DropdownFilterManager($(\".select-dropdown.types select\"), true);\r\n this.page = 0;\r\n };\r\n\r\n FilterManager.prototype = {\r\n init: function (filteredNewsUrl, callback, filters) {\r\n // init manager\r\n this.filteredNewsUrl = filteredNewsUrl;\r\n this.callback = callback;\r\n this.bindEvents();\r\n\r\n // init keywords\r\n this.kfm.setSearchTerms(filters.keywords);\r\n if (filters.keywords !== \"Keywords\") {\r\n this.bm.updateBreadcrumbs(\"keyword\", [this.kfm.value]);\r\n }\r\n\r\n // init industries\r\n this.ifm.setValues(filters.industries);\r\n this.bm.updateBreadcrumbs(\"industry\", this.ifm.value);\r\n\r\n // init practices\r\n this.pfm.setValues(filters.practices);\r\n this.bm.updateBreadcrumbs(\"practice\", this.pfm.value);\r\n\r\n // init types\r\n this.tfm.setType(filters.type);\r\n this.bm.updateBreadcrumbs(\"type\", this.tfm.value);\r\n },\r\n handlePopstate: function (filters, isEmptySearch) {\r\n //empty search? getRecentIntelligence, otherwise getFilteredIntelligence\r\n if (isEmptySearch) {\r\n this.clearAll(true);\r\n this.getRecentIntelligence(true);\r\n console.log('popstate triggered empty search:');\r\n }\r\n else {\r\n this.page = filters.page;\r\n this.kfm.setSearchTerms(filters.keywords);\r\n\r\n if (filters.keywords !== \"Keywords\") {\r\n this.bm.updateBreadcrumbs(\"keyword\", [this.kfm.value]);\r\n }\r\n\r\n // init industries\r\n this.ifm.setValues(filters.industries);\r\n this.bm.updateBreadcrumbs(\"industry\", Array.from(this.ifm.value.keys()));\r\n\r\n // init practices\r\n this.pfm.setValues(filters.practices);\r\n this.bm.updateBreadcrumbs(\"practice\", Array.from(this.pfm.value.keys()));\r\n\r\n // init types\r\n this.tfm.setType(filters.type);\r\n this.bm.updateBreadcrumbs(\"type\", this.tfm.value?.size == undefined ? this.tfm.value : [this.tfm.value.keys().next().value]);\r\n\r\n this.getFilteredIntelligence(false);\r\n console.log('popstate triggered search:');\r\n console.log(filters);\r\n }\r\n },\r\n reset: function () {\r\n this.page = -1;\r\n },\r\n getState: function (loadAllUpToPage) {\r\n this.page++;\r\n if (this.kfm.value == \"Keywords\")\r\n this.kfm.value = null;\r\n return {\r\n keywords: this.kfm.value,\r\n industries: Array.from(this.ifm.value.values()),\r\n practices: Array.from(this.pfm.value.values()),\r\n type: this.tfm.value?.size == undefined ? this.tfm.value : this.tfm.value.values().next().value,\r\n page: this.page,\r\n loadAllUpToPage: loadAllUpToPage,\r\n };\r\n },\r\n readState: function (isEmptySearch) {\r\n return {\r\n keywords: this.kfm.value,\r\n industries: Array.from(this.ifm.value.keys()),\r\n practices: Array.from(this.pfm.value.keys()),\r\n type: this.tfm.value?.size == undefined ? this.tfm.value : this.tfm.value.keys().next().value,\r\n page: this.page,\r\n loadAllUpToPage: !isEmptySearch\r\n };\r\n },\r\n clearAll: function (beforeNewSearch) {\r\n this.bm.clearAll();\r\n this.kfm.setSearchTerms(\"\");\r\n this.ifm.resultsMap.clear();\r\n this.pfm.resultsMap.clear();\r\n this.tfm.typeMap.clear();\r\n this.tfm.setValues('');\r\n this.reset();\r\n\r\n if (!beforeNewSearch) {\r\n this.getRecentIntelligence();\r\n }\r\n },\r\n handleSearch: function (isProgrammatic) {\r\n this.kfm.getSearchTerms();\r\n this.bm.updateBreadcrumbs(\"keyword\", [this.kfm.value]);\r\n this.reset();\r\n this.getFilteredIntelligence(isProgrammatic);\r\n },\r\n getRecentIntelligence: function (isProgrammatic) {\r\n if (!isProgrammatic) {\r\n router.state = this.readState();\r\n router.push();\r\n }\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: this.filteredNewsUrl,\r\n data: JSON.stringify(this.getState(false)),\r\n contentType: \"application/json\",\r\n success: this.callback\r\n });\r\n\r\n this.reset();\r\n },\r\n getFilteredIntelligence: function (isProgrammatic) {\r\n if (!isProgrammatic) {\r\n router.state = this.readState();\r\n router.push();\r\n }\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: this.filteredNewsUrl,\r\n data: JSON.stringify(this.getState(isProgrammatic)),\r\n contentType: \"application/json\",\r\n success: this.callback\r\n });\r\n },\r\n bindEvents: function () {\r\n var _this = this;\r\n\r\n $(\".search-box button\").on(\"click\", function () {\r\n var keyword = $(\".search-box input[type='text']\").val();\r\n if (keyword != \"\" && keyword != \"Keywords\") {\r\n _this.clearAll(true);\r\n $(\".search-box input[type='text']\").val(keyword);\r\n _this.handleSearch();\r\n }\r\n });\r\n\r\n _this.kfm.searchBox.on(\"keydown\", function (e) {\r\n if (e.which === 13) {\r\n var keyword = $(\".search-box input[type='text']\").val();\r\n if (keyword != \"\" && keyword != \"Keywords\") {\r\n _this.clearAll(true);\r\n $(\".search-box input[type='text']\").val(keyword);\r\n _this.handleSearch();\r\n }\r\n return false;\r\n }\r\n });\r\n\r\n _this.ifm.dropdown.on(\"change\", function () {\r\n _this.ifm.addValue($(this).children(\":selected\").text(), $(this).children(\":selected\").val());\r\n _this.bm.updateBreadcrumbs(\"industry\", Array.from(_this.ifm.value.keys()));\r\n _this.reset();\r\n _this.getFilteredIntelligence();\r\n });\r\n\r\n _this.pfm.dropdown.on(\"change\", function () {\r\n _this.pfm.addValue($(this).children(\":selected\").text(), $(this).children(\":selected\").val());\r\n _this.bm.updateBreadcrumbs(\"practice\", Array.from(_this.pfm.value.keys()));\r\n _this.reset();\r\n _this.getFilteredIntelligence();\r\n });\r\n\r\n _this.tfm.dropdown.on(\"change\", function () {\r\n _this.tfm.addType($(this).children(\":selected\").text(), $(this).children(\":selected\").val());\r\n _this.bm.updateBreadcrumbs(\"type\", Array.from(_this.tfm.value.keys()));\r\n _this.reset();\r\n _this.getFilteredIntelligence();\r\n });\r\n\r\n _this.bm.breadcrumbContainer.on(\"click\", \".search-criteria-item\", function () {\r\n if (_this.bm.getBreadcrumbs().length === 1) {\r\n _this.clearAll(false);\r\n }\r\n else {\r\n var filterType = $(this).parent().attr(\"data-type\");\r\n\r\n switch (filterType) {\r\n case \"keyword\":\r\n _this.kfm.removeSearchTerm($(this));\r\n break;\r\n case \"industry\":\r\n _this.ifm.removeValue($(this));\r\n break;\r\n case \"practice\":\r\n _this.pfm.removeValue($(this));\r\n break;\r\n case \"type\":\r\n _this.tfm.removeValue($(this));\r\n break;\r\n }\r\n\r\n $(this).remove();\r\n _this.reset();\r\n _this.getFilteredIntelligence();\r\n }\r\n });\r\n\r\n _this.bm.breadcrumbContainer.on(\"click\", \".btn-clear\", function () {\r\n _this.clearAll(false);\r\n });\r\n },\r\n };\r\n\r\n $.extend({\r\n filterManager: new FilterManager()\r\n });\r\n\r\n router.init();\r\n\r\n})(jQuery, Object, Array);"]}