{"version":3,"file":"js-article-filter.js","sources":["js-article-filter.js"],"sourcesContent":["'use strict';function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}(function initArticleFilter() {\n var elArticleFilterForm = document.querySelector('[data-js=\"js-article-filter-form\"]');\n var elArticleSearchForm = document.querySelector('[data-js=\"js-article-search-form\"]');\n var elArticleSearchInput = document.querySelector('[data-js=\"js-article-search-input\"]');\n var arrFilterCheckboxes = elArticleFilterForm && Array.prototype.slice.call(elArticleFilterForm.querySelectorAll('input[type=\"checkbox\"]'));\n\n var baseUrl = window.location.href.split('?')[0];\n var urlDelimiter = ',';\n\n var params = new URLSearchParams(window.location.search);\n var objUrlParams = {};\n\n params.forEach(function (value, key) {\n objUrlParams[key] = value;\n });\n\n var sortPairs = Object.keys(objUrlParams).\n filter(function (key) {return key.includes('SortAscending') || key.includes('SortField');}).\n reduce(function (obj, key) {\n return Object.assign(obj, _defineProperty({},\n key, objUrlParams[key]));\n\n }, {});\n\n var sortString = new URLSearchParams(sortPairs).toString();\n var paramString = '&' + sortString;\n if (sortString.length < 1) {\n paramString = '';\n }\n\n function getArticleSearchValue() {\n if (!elArticleSearchInput || !elArticleSearchInput.value) return '';\n return 'query=' + elArticleSearchInput.value + '&';\n }\n\n function getFilterTags() {\n if (!arrFilterCheckboxes) return '';\n var objCheckedFilterValues = {};\n var lastCategory = '';\n\n function addNewCategory(currentCategory) {\n if (lastCategory !== currentCategory) {\n lastCategory = currentCategory;\n objCheckedFilterValues[lastCategory] = [];\n }\n }\n\n for (var i = 0; i < arrFilterCheckboxes.length; i++) {\n if (arrFilterCheckboxes[i].checked === true) {\n var currentCategory = arrFilterCheckboxes[i].getAttribute('data-js');\n //if category is missing skip input altogether\n if (currentCategory) {\n addNewCategory(currentCategory);\n objCheckedFilterValues[lastCategory].push(arrFilterCheckboxes[i].name);\n }\n }\n }\n\n var arrCategories = Object.keys(objCheckedFilterValues);\n if (arrCategories.length < 1) {\n // nothing valid is checked return nothing\n return '';\n }\n\n var queryString = '';\n for (var j = 0; j < arrCategories.length; j++) {\n var category = arrCategories[j];\n queryString += '&' + category + '=' + objCheckedFilterValues[category].join(urlDelimiter);\n }\n return queryString;\n }\n\n function resetFilters() {\n for (var i = 0; i < arrFilterCheckboxes.length; i++) {\n arrFilterCheckboxes[i].removeAttribute('checked');\n arrFilterCheckboxes[i].checked = false;\n }\n }\n\n function handlerResetForm(e) {\n elArticleSearchForm && resetFilters();\n }\n\n function handlerSubmitFilters(e) {\n e.preventDefault();\n var url = baseUrl + '?' + (getArticleSearchValue() + getFilterTags() + paramString);\n window.location = url;\n }\n\n function init() {\n if (elArticleFilterForm) {\n elArticleFilterForm.addEventListener('reset', handlerResetForm);\n elArticleFilterForm.addEventListener('submit', handlerSubmitFilters);\n }\n if (elArticleSearchForm) {\n elArticleSearchForm.addEventListener('submit', handlerSubmitFilters);\n }\n }\n\n init();\n})();"],"names":["_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","elArticleFilterForm","document","querySelector","elArticleSearchForm","elArticleSearchInput","arrFilterCheckboxes","Array","prototype","slice","call","querySelectorAll","baseUrl","window","location","href","split","urlDelimiter","params","URLSearchParams","search","objUrlParams","sortPairs","forEach","keys","filter","includes","reduce","assign","sortString","toString","paramString","getFilterTags","objCheckedFilterValues","lastCategory","currentCategory","i","length","checked","getAttribute","push","name","arrCategories","queryString","j","category","join","handlerResetForm","e","removeAttribute","handlerSubmitFilters","preventDefault","url","addEventListener"],"mappings":"AAAA,aAAa,SAASA,gBAAgBC,EAAKC,EAAKC,GAA2J,OAA/ID,KAAOD,EAAMG,OAAOC,eAAeJ,EAAKC,EAAK,CAAEC,MAAOA,EAAOG,WAAY,CAAA,EAAMC,aAAc,CAAA,EAAMC,SAAU,CAAA,CAAK,CAAC,EAAUP,EAAIC,GAAOC,EAAcF,CAAI,CAAC,CAAA,WACrN,IAAIQ,EAAsBC,SAASC,cAAc,oCAAoC,EACjFC,EAAsBF,SAASC,cAAc,oCAAoC,EACjFE,EAAuBH,SAASC,cAAc,qCAAqC,EACnFG,EAAsBL,GAAuBM,MAAMC,UAAUC,MAAMC,KAAKT,EAAoBU,iBAAiB,wBAAwB,CAAC,EAEtIC,EAAUC,OAAOC,SAASC,KAAKC,MAAM,GAAG,EAAE,GAC1CC,EAAe,IAEfC,EAAS,IAAIC,gBAAgBN,OAAOC,SAASM,MAAM,EACnDC,EAAe,GAMfC,GAJJJ,EAAOK,QAAQ,SAAU5B,EAAOD,GAC9B2B,EAAa3B,GAAOC,CACtB,CAAC,EAEeC,OAAO4B,KAAKH,CAAY,EACxCI,OAAO,SAAU/B,GAAM,OAAOA,EAAIgC,SAAS,eAAe,GAAKhC,EAAIgC,SAAS,WAAW,CAAE,CAAC,EAC1FC,OAAO,SAAUlC,EAAKC,GACpB,OAAOE,OAAOgC,OAAOnC,EAAKD,gBAAgB,GAC1CE,EAAK2B,EAAa3B,EAAI,CAAC,CAEzB,EAAG,EAAE,GAEDmC,EAAa,IAAIV,gBAAgBG,CAAS,EAAEQ,SAAS,EACrDC,EAAc,IAAMF,EAUxB,SAASG,IACP,GAAI,CAAC1B,EAAqB,MAAO,GACjC,IAAI2B,EAAyB,GACzBC,EAAe,GASnB,IAAK,IAPmBC,EAOfC,EAAI,EAAGA,EAAI9B,EAAoB+B,OAAQD,CAAC,GACR,CAAA,IAAnC9B,EAAoB8B,GAAGE,UACrBH,EAAkB7B,EAAoB8B,GAAGG,aAAa,SAAS,KARjEL,KADkBC,EAYHA,KATjBF,EADAC,EAAeC,GACwB,IAUrCF,EAAuBC,GAAcM,KAAKlC,EAAoB8B,GAAGK,IAAI,GAK3E,IAAIC,EAAgB9C,OAAO4B,KAAKS,CAAsB,EACtD,GAAIS,EAAcL,OAAS,EAEzB,MAAO,GAIT,IADA,IAAIM,EAAc,GACTC,EAAI,EAAGA,EAAIF,EAAcL,OAAQO,CAAC,GAAI,CAC7C,IAAIC,EAAWH,EAAcE,GAC7BD,GAAe,IAAME,EAAW,IAAMZ,EAAuBY,GAAUC,KAAK7B,CAAY,CAC1F,CACA,OAAO0B,CACT,CASA,SAASI,EAAiBC,GACxB5C,GAAAA,EAPA,IAAK,IAAIgC,EAAI,EAAGA,EAAI9B,EAAoB+B,OAAQD,CAAC,GAC/C9B,EAAoB8B,GAAGa,gBAAgB,SAAS,EAChD3C,EAAoB8B,GAAGE,QAAU,CAAA,CAMrC,CAEA,SAASY,EAAqBF,GAC5BA,EAAEG,eAAe,EACbC,EAAMxC,EAAU,KAtDfP,GAAyBA,EAAqBV,MAC5C,SAAWU,EAAqBV,MAAQ,IADkB,IAsDZqC,EAAc,EAAID,EACvElB,OAAOC,SAAWsC,CACpB,CA7DIvB,EAAWQ,OAAS,IACtBN,EAAc,IA+DV9B,IACFA,EAAoBoD,iBAAiB,QAASN,CAAgB,EAC9D9C,EAAoBoD,iBAAiB,SAAUH,CAAoB,GAEjE9C,GACFA,EAAoBiD,iBAAiB,SAAUH,CAAoB,CAKxE,EAAE"}