{"version":3,"file":"Src_Scripts_components_shop-facets_js.693487a4e4bed3328531.js","sources":["webpack://haveselskabet/./Src/Scripts/components/shop-facets.js"],"sourcesContent":["export default class ShopFacets {\n constructor(elm, args) {\n\n const backdrop = elm.querySelector('.filterable-map__backdrop');\n if (backdrop) {\n backdrop.addEventListener('click', () => {\n const activeDropdown = document.querySelector('.generic-dropdown--active');\n if (activeDropdown) {\n backdrop.classList.remove('filterable-map__backdrop--active');\n activeDropdown.classList.remove('generic-dropdown--active');\n }\n })\n }\n\n var container = elm.querySelector('[data-shopfacets-container]');\n\n if (!container)\n return;\n\n applyFacets(container);\n\n // Uncheck all disabled checkboxes\n var disabledCheckboxes = container.querySelectorAll('input[type=\"checkbox\"]:disabled, input[type=\"radio\"]:disabled');\n disabledCheckboxes.forEach(item => { item.checked = '' });\n\n var enabledCheckboxes = container.querySelectorAll('input[type=\"checkbox\"]:enabled, input[type=\"radio\"]');\n enabledCheckboxes.forEach(item => {\n item.addEventListener('click', e => {\n applyUrl();\n })}); \n\n function applyUrl() {\n var queryStrings = {};\n var baseUrl = window.location.href.split('?')[0] + '?';\n var params = getQueryParams();\n\n var facets = Array.from(container.querySelectorAll('input[type=\"checkbox\"]:checked, input[type=\"radio\"]:checked'));\n facets.forEach(item => {\n var key = item.getAttribute('key');\n if (queryStrings[key] == null) {\n queryStrings[key] = encodeURIComponent(item.getAttribute('value'));\n }\n else {\n queryStrings[key] += '|' + encodeURIComponent(item.getAttribute('value'));\n }\n }); \n\n for (var propertName in queryStrings) {\n baseUrl += propertName + '=' + queryStrings[propertName] + '&';\n }\n\n //if (params.hasOwnProperty('sortBy')) {\n // baseUrl += 'sortBy=' + encodeURIComponent(params['sortBy']) + '&';\n //}\n\n var newUrl = baseUrl.substring(0, baseUrl.length - 1);\n //window.location.href = newUrl;\n history.pushState({}, null, newUrl);\n }\n\n function applyFacets(facetcontainer) {\n var params = getQueryParams();// result;\n\n for (var propertyName in params) {\n var value = params[propertyName].split('|');\n\n for (var i = 0; i < value.length ; i++) {\n if (facetcontainer.querySelectorAll('.filter[key=\"' + propertyName + '\"][value=\"' + value[i] + '\"]').length) {\n facetcontainer.querySelectorAll('.filter[key=\"' + propertyName + '\"][value=\"' + value[i] + '\"]')[0].setAttribute('checked', 'checked');\n }\n }\n }\n }\n\n function getQueryParams() {\n var result = {};\n var queryString = location.search.slice(1);\n var regex = /([^&=]+)=([^&]*)/g, m;\n\n while (m = regex.exec(queryString)) {\n result[decodeURIComponent(m[1])] = decodeURIComponent(m[2]);\n }\n\n return result;\n }\n }\n \n}\n\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAGA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAAA;;A;;A","sourceRoot":""}