{"version":3,"file":"components-page-filters.9b1b6b432387b25db0b8.js","mappings":"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","sources":["webpack://kelberman.org/./themes/app/src/components/page-filters.js","webpack://kelberman.org/./themes/app/src/scripts/common/ajax.js","webpack://kelberman.org/./themes/app/src/scripts/common/scroll-to.js","webpack://kelberman.org/./themes/app/src/scripts/common/util.js"],"sourcesContent":["import '@styles/components/dropdown.css'\nimport easydropdown from 'easydropdown-a11y'\nimport SlimSelect from 'slim-select/dist/slimselect.es.js'\nimport 'slim-select/dist/slimselect.css'\nimport { on, off, fire } from 'delegated-events'\nimport throttle from 'lodash/throttle'\nimport { createUrl } from '@common/util'\nimport scrollTo from '@common/scroll-to'\nimport ajax from '@common/ajax'\n\nconst selectors = {\n pageFilters: '[data-page-filters]',\n pageFiltersClear: '[data-page-filters-clear]',\n}\n\nlet multiSelects = []\nlet isClearing = false\n\nconst resetForm = (form) => {\n form.querySelectorAll('input').forEach((input) => (input.value = null))\n form.querySelectorAll('select').forEach((select) => (select.selectedIndex = -1))\n}\n\nconst handleClear = (e) => {\n e.preventDefault()\n\n const filters = e.target.closest(selectors.pageFilters)\n\n filters.querySelectorAll('form').forEach((form) => resetForm(form))\n\n multiSelects.forEach((select) => {\n isClearing = true\n select.setSelected([])\n })\n\n window.history.replaceState({}, '', e.target.href)\n\n fire(document.documentElement, 'pagefilters:update', { filtersEl: filters, url: window.location.href, type: 'clear' })\n\n filters.classList.remove('is-filtered')\n\n setTimeout(() => {\n isClearing = false\n }, 500)\n}\n\nconst handleFormSubmit = (e) => {\n const form = e.target.closest('form')\n const filters = form.closest(selectors.pageFilters)\n\n // Only one of the filters is active at a time, so clear all the other ones\n if (filters.dataset.pageFilters === 'single') {\n Array.from(filters.querySelectorAll('form'))\n .filter((x) => x !== form)\n .forEach((form) => resetForm(form))\n }\n\n // Allow one of the filters active along with search\n if (filters.dataset.pageFilters === 'singlesearch') {\n Array.from(filters.querySelectorAll('form'))\n .filter((x) => x !== form)\n .forEach((otherForm) => {\n if (form.dataset.submit && form.dataset.submit === 'append') {\n const values = Array.from(new FormData(otherForm).values()).filter((x) => x)\n\n if (!values.length) {\n resetForm(otherForm)\n }\n } else {\n resetForm(otherForm)\n }\n })\n }\n\n // Fully replace the url with the given value\n if (form.dataset.submit && form.dataset.submit === 'replace') {\n e.preventDefault()\n\n const field = form[0]\n\n if (field) {\n window.history.replaceState({}, '', field.value)\n\n fire(document.documentElement, 'pagefilters:update', {\n filtersEl: filters,\n url: window.location.href,\n type: 'replace',\n data: new FormData(form),\n })\n }\n }\n\n // Fully replace the url with the given value, but as a query param\n if (form.dataset.submit && form.dataset.submit === 'get') {\n e.preventDefault()\n\n const data = new FormData(form)\n const url = createUrl(form.action, data)\n\n window.history.replaceState({}, '', url)\n\n fire(document.documentElement, 'pagefilters:update', { filtersEl: filters, url: window.location.href, type: 'get' })\n }\n\n // Fully replace the url with the given value, but as a query param, fired by keyup\n if (form.dataset.submit && form.dataset.submit === 'live') {\n e.preventDefault()\n\n const data = new FormData(form)\n const query = [...data.entries()].reduce((acc, data) => {\n if (data[1] !== '') {\n acc[data[0]] = data[1]\n }\n\n return acc\n }, {})\n\n const params = new URLSearchParams(query)\n const hasParams = [...params.entries()].length > 0\n\n const url = hasParams ? new URL(`${form.action}?${params}`) : new URL(`${form.action}`)\n\n window.history.replaceState({}, '', url)\n\n fire(document.documentElement, 'pagefilters:update', {\n filtersEl: filters,\n url: window.location.href,\n type: 'live',\n })\n\n if (hasParams) {\n filters.classList.add('is-filtered')\n } else {\n filters.classList.remove('is-filtered')\n }\n\n return\n }\n\n // Use the current url and update the query params\n if (form.dataset.submit && form.dataset.submit === 'append') {\n e.preventDefault()\n\n const data = new FormData(form)\n const url = createUrl(window.location, data, true)\n\n window.history.replaceState({}, '', url)\n\n fire(document.documentElement, 'pagefilters:update', {\n filtersEl: filters,\n url: window.location.href,\n type: 'append',\n })\n\n const hasParams = [...url.searchParams.entries()].length > 0\n\n if (hasParams) {\n filters.classList.add('is-filtered')\n } else {\n filters.classList.remove('is-filtered')\n }\n\n return\n }\n\n // Use the given value to navigate somewhere\n if (form.dataset.submit && form.dataset.submit === 'navigate') {\n e.preventDefault()\n\n const field = form[0]\n\n if (field) {\n const target = new URL(field.value)\n\n if (window.location.origin === target.origin) {\n window.location.href = field.value\n } else {\n window.open(field.value, '_blank')\n\n field.selectedIndex = -1\n }\n\n return\n }\n }\n\n filters.classList.add('is-filtered')\n scrollTo(filters, 48)\n}\n\nconst handleDropdownChange = (e) => {\n const parentForm = e.target.closest('form')\n\n if (parentForm) {\n if (parentForm.requestSubmit) {\n parentForm.requestSubmit()\n } else {\n parentForm.dispatchEvent(new Event('submit'))\n }\n }\n}\n\nconst handleMultiSelectChange = (el) => {\n const parentForm = el.closest('form')\n\n if (parentForm) {\n if (parentForm.requestSubmit) {\n parentForm.requestSubmit()\n } else {\n parentForm.dispatchEvent(new Event('submit'))\n }\n }\n}\n\nconst handleUpdate = async (e) => {\n const filtersEl = e.detail.filtersEl\n\n if (filtersEl.dataset.pageFiltersUpdate === 'replace') {\n const pageContent = document.querySelector('[data-page-content]')\n\n if (pageContent) {\n pageContent.classList.add('is-loading')\n\n const res = await ajax.get(e.detail.url).text()\n\n pageContent.innerHTML = res\n pageContent.classList.remove('is-loading')\n\n fire(document.documentElement, 'pagecontent:replace')\n }\n\n if (filtersEl.dataset.pageFiltersRefetch !== undefined) {\n const queryType = e.detail.url.indexOf('?') === -1 ? '?' : '&'\n const res = await ajax.get(`${e.detail.url}${queryType}fetchPageFilters=1`).text()\n\n const filtersContent = filtersEl.querySelector('#page-filters')\n\n if (filtersContent) {\n filtersContent.innerHTML = res\n\n setup(true)\n }\n }\n\n e.stopPropagation()\n }\n}\n\nconst setupDropdown = (el) => {\n if (el.tagName !== 'SELECT') {\n return\n }\n\n const placeholder = el.querySelector('option[value=\"\"]')\n\n if (placeholder && !placeholder.hasAttribute('data-placeholder')) {\n placeholder.setAttribute('data-placeholder', true)\n }\n\n const opts = {\n behavior: {\n openOnFocus: true,\n maxVisibleItems: 10,\n liveUpdates: true,\n useNativeUiOnMobile: false,\n },\n }\n\n easydropdown(el, opts)\n}\n\nconst setupMultiSelect = (el) => {\n const select = new SlimSelect({\n select: el,\n settings: {\n allowDeselect: true,\n closeOnSelect: false,\n showSearch: false,\n maxValuesShown: 1,\n maxValuesMessage: '{number} selected',\n },\n events: {\n afterChange: (val) => {\n if (!isClearing) {\n if (val.length === 0) {\n el.value = ''\n }\n\n handleMultiSelectChange(el)\n }\n },\n },\n })\n\n multiSelects.push(select)\n}\n\nconst setupPageFilters = (el) => {\n multiSelects = []\n\n el.querySelectorAll('select:not([multiple])').forEach((el) => setupDropdown(el))\n el.querySelectorAll('select[multiple]').forEach((el) => setupMultiSelect(el))\n}\n\nconst setup = (reInit) => {\n const els = document.querySelectorAll(selectors.pageFilters)\n\n const submitArgs = [\n 'submit',\n `${selectors.pageFilters} form:not([data-submit=\"live\"])`,\n handleFormSubmit,\n { capture: true },\n ]\n const keyArgs = [\n 'keyup',\n `${selectors.pageFilters} form[data-submit=\"live\"]`,\n throttle((e) => handleFormSubmit(e), 350),\n { capture: true },\n ]\n const changeArgs = ['change', `${selectors.pageFilters} select`, handleDropdownChange]\n const clearArgs = ['click', selectors.pageFiltersClear, handleClear]\n const updateArgs = ['pagefilters:update', 'html', handleUpdate]\n\n // Sometimes we refresh the html and need to remove the old listeners before adding them again\n if (reInit) {\n off(...submitArgs)\n off(...keyArgs)\n off(...changeArgs)\n off(...clearArgs)\n off(...updateArgs)\n }\n\n on(...submitArgs)\n on(...keyArgs)\n on(...changeArgs)\n on(...clearArgs)\n on(...updateArgs)\n\n els.forEach((el) => setupPageFilters(el))\n}\n\nsetup()\n\non('pagefilters:reinit', 'html', () => setup(true))\n","import wretch from 'wretch'\nimport QueryStringAddon from 'wretch/addons/queryString'\n\nwretch.options({\n headers: { 'X-Requested-With': 'XMLHttpRequest' },\n})\n\nexport default wretch().addon(QueryStringAddon)\n","import jump from 'jump.js'\n\nconst getPageOffset = () => {\n let offset = 0\n\n const siteHeader = document.querySelector('.site-header')\n\n if (siteHeader) {\n offset += siteHeader.offsetHeight\n }\n\n return offset\n}\n\nconst scrollTo = (target, additionalOffset = 0) => {\n const pageOffset = getPageOffset() * -1\n\n if (target.dataset.scrollOffset) {\n additionalOffset = parseInt(target.dataset.scrollOffset)\n }\n\n let offset = pageOffset - additionalOffset\n\n return new Promise((resolve) => {\n jump(target, { duration: 600, offset, callback: resolve })\n })\n}\n\nexport default scrollTo\n","export const isTouchDevice = 'ontouchstart' in document.documentElement\n\nexport const isIos =\n /iPad|iPhone|iPod/.test(navigator.platform) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)\n\nexport const createUrl = (base, formData = {}, append = false) => {\n let data = formData\n\n if (formData instanceof FormData === false) {\n data = new FormData()\n\n for (const [key, value] of Object.entries(formData)) {\n data.append(key, value)\n }\n }\n\n if (typeof base === 'object') {\n const baseUrl = new URL(base)\n\n if (append) {\n const searchParams = baseUrl.searchParams\n\n const params = {}\n\n for (const [key, value] of data) {\n const normalizedKey = key.replace('[]', '')\n\n if (normalizedKey in params) {\n params[normalizedKey].push(value)\n } else {\n params[normalizedKey] = [value]\n }\n }\n\n for (const [key, value] of Object.entries(params)) {\n const _value = value.filter((x) => x)\n\n if (_value.length === 0) {\n searchParams.delete(key)\n } else {\n searchParams.set(key, _value.join(','))\n }\n }\n\n return baseUrl\n } else {\n const params = new URLSearchParams(data)\n\n return new URL(`${base}?${params}`)\n }\n }\n\n if (typeof base === 'string') {\n const params = new URLSearchParams(formData)\n const url = new URL(`${base}?${params}`)\n\n return url\n }\n}\n\nexport const trackGoogleAnalytics = (event) => {\n if (window.dataLayer) {\n window.dataLayer.push(event)\n }\n}\n"],"names":["selectors","multiSelects","isClearing","resetForm","form","querySelectorAll","forEach","input","value","select","selectedIndex","handleClear","e","preventDefault","filters","target","closest","setSelected","window","history","replaceState","href","fire","document","documentElement","filtersEl","url","location","type","classList","remove","setTimeout","handleFormSubmit","dataset","pageFilters","Array","from","filter","x","otherForm","submit","FormData","values","length","field","data","createUrl","action","query","entries","reduce","acc","params","URLSearchParams","hasParams","URL","add","searchParams","origin","open","scrollTo","handleDropdownChange","parentForm","requestSubmit","dispatchEvent","Event","handleUpdate","async","detail","pageFiltersUpdate","pageContent","querySelector","res","ajax","text","innerHTML","undefined","pageFiltersRefetch","queryType","indexOf","filtersContent","setup","stopPropagation","setupPageFilters","el","tagName","placeholder","hasAttribute","setAttribute","easydropdown","behavior","openOnFocus","maxVisibleItems","liveUpdates","useNativeUiOnMobile","setupDropdown","SlimSelect","settings","allowDeselect","closeOnSelect","showSearch","maxValuesShown","maxValuesMessage","events","afterChange","val","handleMultiSelectChange","push","setupMultiSelect","reInit","els","submitArgs","capture","keyArgs","throttle","changeArgs","clearArgs","updateArgs","off","on","wretch","headers","addon","QueryStringAddon","getPageOffset","offset","siteHeader","offsetHeight","additionalOffset","pageOffset","scrollOffset","parseInt","Promise","resolve","jump","duration","callback","test","navigator","platform","maxTouchPoints","base","formData","append","key","Object","baseUrl","normalizedKey","replace","_value","delete","set","join","trackGoogleAnalytics","event","dataLayer"],"sourceRoot":""}