{"version":3,"sources":["_301-list-with-filter.js"],"names":["e","t","n","r","s","o","u","a","require","i","Error","f","exports","call","length","1","module","global","factory","document","w","window","this","noGlobal","isFunction","obj","nodeType","item","isWindow","arr","getProto","Object","getPrototypeOf","slice","flat","array","concat","apply","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","fnToString","ObjectFunctionString","support","preservedScriptAttributes","type","src","nonce","noModule","DOMEval","code","node","doc","val","script","createElement","text","getAttribute","setAttribute","head","appendChild","parentNode","removeChild","toType","version","rhtmlSuffix","jQuery","selector","context","fn","init","prototype","jquery","constructor","toArray","get","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","arguments","first","eq","last","even","grep","_elem","odd","len","j","end","sort","splice","extend","options","name","copy","copyIsArray","clone","target","deep"],"mappings":"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","file":"301-list-with-filter.min.js","sourcesContent":["var $ = require('jquery');\r\n\r\n$(function () {\r\n $('[data-new-list-table]').each(function () {\r\n\r\n var currentPage,\r\n servicesFilters,\r\n industriesFilters,\r\n publicationsFilters,\r\n insightsSubjectsFilters,\r\n itemTypesFilters,\r\n locationsFilters,\r\n authorCategorizationFilters,\r\n makeRequest,\r\n getFilterValues,\r\n dateDesc,\r\n toggleClearLinkVisibility,\r\n clearLink,\r\n scrollToTop,\r\n uncheckAllFilterCheckboxes,\r\n clearAllFilters,\r\n filterDropdownCheckboxes;\r\n\r\n var $this = $(this);\r\n var FilterCheckboxCollection = function () {\r\n return {\r\n services: null,\r\n industries: null,\r\n publications: null,\r\n insightsSubjects: null,\r\n itemTypes: null,\r\n locations: null,\r\n authorCategorization: null\r\n };\r\n }\r\n\r\n filterDropdownCheckboxes = new FilterCheckboxCollection();\r\n filterDropdownCheckboxes.services = $this.find('[data-services]');\r\n filterDropdownCheckboxes.industries = $this.find('[data-industries]');\r\n filterDropdownCheckboxes.publications = $this.find('[data-publications]');\r\n filterDropdownCheckboxes.insightsSubjects = $this.find('[data-insightssubjects]');\r\n filterDropdownCheckboxes.itemTypes = $this.find('[data-itemtypes]');\r\n filterDropdownCheckboxes.locations = $this.find('[data-locations]');\r\n filterDropdownCheckboxes.authorCategorization = $this.find('[data-authorcategorization]');\r\n\r\n var listContainer = $this.find('[data-filtered-list]');\r\n var datasourceId = $this.attr('data-context-item');\r\n var language = $this.attr('data-language');\r\n var isNormal = $this.attr('data-is-normal');\r\n\r\n clearLink = $this.find('[data-clear-filters]');\r\n\r\n // url for GetTable\r\n var apiUrlGetTable = \"/api/sitecore/ListWithFilter/GetTable\"\r\n\r\n var getQueryString = new URLSearchParams(location.search);\r\n\r\n if (getQueryString.get('tagname')) {\r\n // value to check in QS and append to Get URL\r\n var tagName = 'tagname';\r\n var authorId = 'author';\r\n //page tagname querystring\r\n var tagNameQs = $.QueryString[tagName];\r\n var authorIdQs = $.QueryString[authorId];\r\n // if tagNameQS is not empty or no value append it to the path of the url\r\n if (tagNameQs && tagNameQs != '') {\r\n apiUrlGetTable = apiUrlGetTable + '?' + tagName + '=' + tagNameQs;\r\n } else if (authorIdQs && authorIdQs != '') {\r\n apiUrlGetTable = apiUrlGetTable + '?' + authorId + '=' + authorIdQs;\r\n }\r\n }\r\n\r\n currentPage = $this.find('.pagination .current').attr('data-page');\r\n var init = function () {\r\n servicesFilters = getFilterValues(filterDropdownCheckboxes.services);\r\n industriesFilters = getFilterValues(filterDropdownCheckboxes.industries);\r\n publicationsFilters = getFilterValues(filterDropdownCheckboxes.publications);\r\n insightsSubjectsFilters = getFilterValues(filterDropdownCheckboxes.insightsSubjects);\r\n itemTypesFilters = getFilterValues(filterDropdownCheckboxes.itemTypes);\r\n locationsFilters = getFilterValues(filterDropdownCheckboxes.locations);\r\n authorCategorizationFilters = getFilterValues(filterDropdownCheckboxes.authorCategorization);\r\n\r\n // Firefox preserves checkbox state on reload.\r\n uncheckAllFilterCheckboxes();\r\n clearAllFilters();\r\n\r\n clearLink.hide();\r\n }\r\n\r\n uncheckAllFilterCheckboxes = function () {\r\n $this.find('input[type=checkbox]:checked').each(function () {\r\n var $this = $(this);\r\n $this.removeAttr('checked');\r\n $this.prop('checked', false);\r\n });\r\n }\r\n clearAllFilters = function () {\r\n servicesFilters = [];\r\n industriesFilters = [];\r\n publicationsFilters = [];\r\n insightsSubjectsFilters = [];\r\n itemTypesFilters = [];\r\n locationsFilters = [];\r\n authorCategorizationFilters = [];\r\n }\r\n\r\n scrollToTop = function () {\r\n // if there is no title do not try to scroll to it\r\n if ($this.find(\".news-list-table__intro-bar__title\").length > 0) {\r\n $('html, body').animate({\r\n scrollTop: $this.find(\".news-list-table__intro-bar__title\").offset().top\r\n }, 500);\r\n }\r\n else if ($this.find(\".news-list-table__table\").length > 0) {\r\n $('html, body').animate({\r\n scrollTop: $this.offset().top\r\n }, 500);\r\n }\r\n };\r\n\r\n makeRequest = function (targetServicesFilters,\r\n targetIndustriesFilters,\r\n targetPublicationsFilters,\r\n targetInsightsSubjectsFilters,\r\n targetItemTypesFilters,\r\n targetLocationsFilters,\r\n targetAuthorCategorizationFilters,\r\n targetPage, dateSortDesc) {\r\n $.ajax({\r\n type: 'GET',\r\n url: apiUrlGetTable,\r\n traditional: true,\r\n data: {\r\n id: datasourceId,\r\n languageName: language,\r\n servicesFilters: targetServicesFilters,\r\n industriesFilters: targetIndustriesFilters,\r\n publicationsFilters: targetPublicationsFilters,\r\n insightsSubjectsFilters: targetInsightsSubjectsFilters,\r\n itemTypesFilters: targetItemTypesFilters,\r\n locationsFilters: targetLocationsFilters,\r\n authorCategorizationFilters: targetAuthorCategorizationFilters,\r\n page: targetPage,\r\n isDateDesc: dateSortDesc,\r\n enforceNormal: isNormal\r\n },\r\n success: function (data) {\r\n listContainer.empty();\r\n listContainer.html(data);\r\n\r\n servicesFilters = targetServicesFilters;\r\n industriesFilters = targetIndustriesFilters;\r\n publicationsFilters = targetPublicationsFilters;\r\n insightsSubjectsFilters = targetInsightsSubjectsFilters;\r\n itemTypesFilters = targetItemTypesFilters;\r\n locationsFilters = targetLocationsFilters;\r\n authorCategorizationFilters = targetAuthorCategorizationFilters;\r\n\r\n currentPage = targetPage;\r\n dateDesc = dateSortDesc;\r\n scrollToTop();\r\n },\r\n error: function () {\r\n },\r\n complete: function () {\r\n }\r\n });\r\n };\r\n\r\n listContainer.on('click', '.pagination', function (e) {\r\n const targetPage = $(e.target).closest('[data-page]').data('page');\r\n if (Number.isInteger(targetPage) && targetPage !== currentPage) {\r\n $(e.target).closest('.news-list-table').find('.loading').addClass('show');\r\n makeRequest(servicesFilters, industriesFilters, publicationsFilters, insightsSubjectsFilters, itemTypesFilters, locationsFilters, authorCategorizationFilters, targetPage, dateDesc);\r\n }\r\n });\r\n\r\n dateDesc = true;\r\n listContainer.on('click', '.sort', function (e) {\r\n makeRequest(servicesFilters, industriesFilters, publicationsFilters, insightsSubjectsFilters, itemTypesFilters, locationsFilters, authorCategorizationFilters, 0, !dateDesc);\r\n listContainer.addClass('sort-selected');\r\n });\r\n\r\n getFilterValues = function (element) {\r\n const checkboxes = element.find('input[type=\"checkbox\"]');\r\n const filteredCheckboxes = checkboxes.filter(':checked');\r\n\r\n var ids = [];\r\n filteredCheckboxes.each(function () {\r\n ids.push($(this).attr('data-id'));\r\n });\r\n\r\n return ids;\r\n };\r\n\r\n toggleClearLinkVisibility = function () {\r\n if (!!getFilterValues(filterDropdownCheckboxes.services).length ||\r\n !!getFilterValues(filterDropdownCheckboxes.industries).length ||\r\n !!getFilterValues(filterDropdownCheckboxes.publications).length ||\r\n !!getFilterValues(filterDropdownCheckboxes.insightsSubjects).length ||\r\n !!getFilterValues(filterDropdownCheckboxes.itemTypes).length ||\r\n !!getFilterValues(filterDropdownCheckboxes.locations).length ||\r\n !!getFilterValues(filterDropdownCheckboxes.authorCategorization).length) {\r\n clearLink.show();\r\n } else {\r\n clearLink.hide();\r\n }\r\n };\r\n\r\n filterDropdownCheckboxes.services.on('click', 'input[type=\"checkbox\"]', function () {\r\n makeRequest(getFilterValues(filterDropdownCheckboxes.services),\r\n industriesFilters, publicationsFilters, insightsSubjectsFilters,\r\n itemTypesFilters, locationsFilters, authorCategorizationFilters, 0, dateDesc);\r\n toggleClearLinkVisibility();\r\n });\r\n\r\n filterDropdownCheckboxes.industries.on('click', 'input[type=\"checkbox\"]', function () {\r\n makeRequest(servicesFilters, getFilterValues(filterDropdownCheckboxes.industries), publicationsFilters, insightsSubjectsFilters, itemTypesFilters, locationsFilters, authorCategorizationFilters, 0, dateDesc);\r\n toggleClearLinkVisibility();\r\n });\r\n\r\n filterDropdownCheckboxes.publications.on('click', 'input[type=\"checkbox\"]', function () {\r\n makeRequest(servicesFilters, industriesFilters, getFilterValues(filterDropdownCheckboxes.publications), insightsSubjectsFilters, itemTypesFilters, locationsFilters, authorCategorizationFilters, 0, dateDesc);\r\n toggleClearLinkVisibility();\r\n });\r\n\r\n filterDropdownCheckboxes.insightsSubjects.on('click', 'input[type=\"checkbox\"]', function () {\r\n makeRequest(servicesFilters, industriesFilters, publicationsFilters, getFilterValues(filterDropdownCheckboxes.insightsSubjects), itemTypesFilters, locationsFilters, authorCategorizationFilters, 0, dateDesc);\r\n toggleClearLinkVisibility();\r\n });\r\n\r\n filterDropdownCheckboxes.itemTypes.on('click', 'input[type=\"checkbox\"]', function () {\r\n makeRequest(servicesFilters, industriesFilters, publicationsFilters, insightsSubjectsFilters, getFilterValues(filterDropdownCheckboxes.itemTypes), locationsFilters, authorCategorizationFilters, 0, dateDesc);\r\n toggleClearLinkVisibility();\r\n });\r\n\r\n filterDropdownCheckboxes.locations.on('click', 'input[type=\"checkbox\"]', function () {\r\n makeRequest(servicesFilters, industriesFilters, publicationsFilters, insightsSubjectsFilters, itemTypesFilters, getFilterValues(filterDropdownCheckboxes.locations), authorCategorizationFilters, 0, dateDesc);\r\n toggleClearLinkVisibility();\r\n });\r\n\r\n filterDropdownCheckboxes.authorCategorization.on('click', 'input[type=\"checkbox\"]', function () {\r\n makeRequest(servicesFilters, industriesFilters, publicationsFilters, insightsSubjectsFilters, itemTypesFilters, locationsFilters, getFilterValues(filterDropdownCheckboxes.authorCategorization), 0, dateDesc);\r\n toggleClearLinkVisibility();\r\n });\r\n\r\n clearLink.on('click', function () {\r\n\r\n uncheckAllFilterCheckboxes();\r\n makeRequest(\r\n getFilterValues(filterDropdownCheckboxes.services),\r\n getFilterValues(filterDropdownCheckboxes.industries),\r\n getFilterValues(filterDropdownCheckboxes.publications),\r\n getFilterValues(filterDropdownCheckboxes.insightsSubjects),\r\n getFilterValues(filterDropdownCheckboxes.itemTypes),\r\n getFilterValues(filterDropdownCheckboxes.locations),\r\n getFilterValues(filterDropdownCheckboxes.authorCategorization), 0, dateDesc);\r\n toggleClearLinkVisibility();\r\n });\r\n\r\n init();\r\n });\r\n});"]}