{"version":3,"file":"/scripts/ajax-filter.js","mappings":"8EACA,MAAMA,EAAcC,KAAAA,MAAWC,eAA/B,UACMC,EAAgBD,eAAtB,WAMME,EAAiBC,SAAAA,eAAvB,eAEA,KAAmB,CAGf,IAAIC,EAAWF,EAAAA,QAAf,KACIG,EAAUH,EAAAA,QAJC,IAQXI,EAAeJ,EAAAA,qBARJ,MAWf,GAAGI,EAAAA,OAAH,EAA4B,CAGvB,IAAIC,EAAM,CACPC,OADO,yBAEPC,MAFO,EAGPC,UAHO,EAIPC,SAAUN,GAIdH,EAAAA,iBAAAA,SAAyC,YAErC,IAAIU,EAASC,EAFwC,OAKrD,UAAKD,EAAAA,QALgD,OASrD,IAAK,IAAL,OACIE,EAAAA,UAAAA,OAAAA,UAIJF,EAAAA,UAAAA,IAdqD,UAiBrDL,EAAAA,UAAgBK,EAAAA,QAjBqC,KAoBrD,IAAIG,EAAcC,OAAA,aAAqB,YACnC,OAAOC,EAAAA,IAAYC,mBAAmBX,EAAtC,OADc,KApBmC,KAyBrD,MAAMY,EAAuBhB,SAAAA,cAA7B,gBAEA,KAAyB,CAGrB,MAAMiB,EAAQ,IAHO,eAMrBA,EAAAA,mBAA2B,WAGvB,IAAGC,KAAKC,YAGJH,EAAAA,UAAAA,OAHsB,WAMH,KAAfE,KAAKE,QAAiBF,KAAKE,OAA/B,IAGIJ,EAAAA,UAAiCE,KAHQ,aAOzCF,EAAAA,UAAAA,+EAMJA,EAAAA,UAAAA,IAFG,WAKHA,EAAAA,UAAAA,gCAIRC,EAAAA,KAAAA,OAAAA,GAAAA,GACAA,EAAAA,iBAAAA,eAAAA,oDACAA,EAAAA,KAAAA,W","sources":["webpack://sage/./resources/scripts/components/ajax-filter.js"],"sourcesContent":["/*global karoAjaxObject */\nconst karoAjaxUrl = JSON.parse(karoAjaxObject.ajax_url);\nconst karoAjaxNonce = karoAjaxObject.ajax_nonce;\n\n\n//POST FILTER\n//*************\n//Filter container\nconst karoPostFilter = document.getElementById('post-filter');\n\nif(karoPostFilter) {\n\n    //Get query varaibles\n    let postType = karoPostFilter.dataset.type;\n    let postTax = karoPostFilter.dataset.tax;\n\n\n    //Get all categories in container\n    let categorylist = karoPostFilter.getElementsByTagName('li');\n\n    //Only add addEventListener if we have categories\n    if(categorylist.length > 0) {\n\n         //POST data\n         let obj = {\n            action: 'karopharma_post_filter',\n            nonce: karoAjaxNonce,\n            post_type: postType,\n            post_tax: postTax,\n        };\n\n        //addEventListener to container\n        karoPostFilter.addEventListener('click', function(event) {\n\n            var target = event.target;\n\n            //Stop fireing on both child & parent\n            if ( target.tagName !== 'LI' )\n                return;\n\n             //Remove active class\n            for (let item of categorylist) {\n                item.classList.remove('active');\n            }\n\n            //Add active class\n            target.classList.add('active');\n\n            //Add clicked term to object\n            obj.post_term = target.dataset.term;\n\n            //Convert object to url query string\n            let queryString = Object.keys(obj).map(function(key) {\n                return key + '=' + encodeURIComponent(obj[key])\n            }).join('&');\n\n            //Target container\n            const postArchiveContainer = document.querySelector('ul.post-list');\n\n            if(postArchiveContainer) {\n\n                //Creat object\n                const xhttp = new XMLHttpRequest();\n\n                //Status\n                xhttp.onreadystatechange = function () {\n\n                    //4 = Response from server has been completely loaded.\n                    if(this.readyState === 4) {\n\n                        //Remove a loading class on container\n                        postArchiveContainer.classList.remove('loading');\n\n                        //http status between 200 to 299 are all successful\n                        if (this.status == 200 && this.status < 300) {\n\n                            //Replace list with filtered result\n                            postArchiveContainer.innerHTML = this.responseText;\n                            \n                        //Something whent wrong\n                        } else {\n                            postArchiveContainer.innerHTML = '<p>Something whent wrong. Please contact us so that we can correct it.</p>';\n                        } \n\n                    //While waiting response from server\n                    } else {\n                        //Add a loading class on container\n                        postArchiveContainer.classList.add('loading');\n\n                        //Add a spinner icon\n                        postArchiveContainer.innerHTML = '<div class=\"spinner\"></div>';\n                    }\n                }\n\n                xhttp.open('POST', karoAjaxUrl, true);\n                xhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n                xhttp.send(queryString);\n\n            }\n\n            \n        });\n\n    }\n\n}\n\n"],"names":["karoAjaxUrl","JSON","karoAjaxObject","karoAjaxNonce","karoPostFilter","document","postType","postTax","categorylist","obj","action","nonce","post_type","post_tax","target","event","item","queryString","Object","key","encodeURIComponent","postArchiveContainer","xhttp","this","readyState","status"],"sourceRoot":""}