{"version":3,"sources":["_310-grid-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"],"mappings":"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","file":"310-grid-with-filter.min.js","sourcesContent":["var $ = require('jquery');\r\n\r\n$(function () {\r\n $('[data-new-grid-table]').each(function () {\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 // settings\r\n var dateDesc = true;\r\n var apiUrlGetGrid = '/api/sitecore/FilteredGrid/GetGrid';\r\n // end settings\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 var $this = $(this);\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 gridContainer = $this.find('[data-filtered-grid]');\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 currentPage = $this.find('.pagination .current').attr('data-page');\r\n\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 $('html, body').animate({\r\n scrollTop: $this.find('.grid-table-scrollTop').offset().top - 100\r\n }, 500);\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 var loadingElement = $this.find('.loading');\r\n loadingElement.addClass('show');\r\n $.ajax({\r\n type: 'GET',\r\n url: apiUrlGetGrid,\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 gridContainer.empty();\r\n gridContainer.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 loadingElement.removeClass('show');\r\n },\r\n error: function () {\r\n },\r\n complete: function () {\r\n }\r\n });\r\n };\r\n\r\n gridContainer.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 //Enable when ready to use loading icon\r\n makeRequest(servicesFilters, industriesFilters, publicationsFilters, insightsSubjectsFilters, itemTypesFilters, locationsFilters, authorCategorizationFilters, targetPage, dateDesc);\r\n }\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\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), industriesFilters, publicationsFilters, insightsSubjectsFilters, 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 uncheckAllFilterCheckboxes();\r\n makeRequest(getFilterValues(filterDropdownCheckboxes.services), getFilterValues(filterDropdownCheckboxes.industries), getFilterValues(filterDropdownCheckboxes.publications), getFilterValues(filterDropdownCheckboxes.insightsSubjects), getFilterValues(filterDropdownCheckboxes.itemTypes), getFilterValues(filterDropdownCheckboxes.locations), getFilterValues(filterDropdownCheckboxes.authorCategorization), 0, dateDesc);\r\n toggleClearLinkVisibility();\r\n });\r\n\r\n init();\r\n });\r\n});"]}