{"version":3,"file":"components-page-filters.05d9398ba70a3d8f127c.js","mappings":"uMAQA,MAAMA,EACS,sBAIf,IAAIC,GAAa,EAEjB,MAAMC,EAAaC,IACjBA,EAAKC,iBAAiB,SAASC,SAASC,GAAWA,EAAMC,MAAQ,OACjEJ,EAAKC,iBAAiB,UAAUC,SAASG,GAAYA,EAAOC,eAAiB,GAAG,EAG5EC,EAAeC,IACnBA,EAAEC,iBAEF,MAAMC,EAAUF,EAAEG,OAAOC,QAAQf,GAEjCa,EAAQT,iBAAiB,QAAQC,SAASF,GAASD,EAAUC,KAE7Da,OAAOC,QAAQC,aAAa,CAAC,EAAG,GAAIP,EAAEG,OAAOK,OAE7CC,EAAAA,EAAAA,GAAKC,SAASC,gBAAiB,qBAAsB,CAAEC,UAAWV,EAASW,IAAKR,OAAOS,SAASN,KAAMO,KAAM,UAE5Gb,EAAQc,UAAUC,OAAO,eAEzBC,YAAW,KACT5B,GAAa,CAAK,GACjB,IAAI,EAGH6B,EAAoBnB,IACxB,MAAMR,EAAOQ,EAAEG,OAAOC,QAAQ,QACxBF,EAAUV,EAAKY,QAAQf,GA2B7B,GAxBoC,WAAhCa,EAAQkB,QAAQC,aAClBC,MAAMC,KAAKrB,EAAQT,iBAAiB,SACjC+B,QAAQC,GAAMA,IAAMjC,IACpBE,SAASF,GAASD,EAAUC,KAIG,iBAAhCU,EAAQkB,QAAQC,aAClBC,MAAMC,KAAKrB,EAAQT,iBAAiB,SACjC+B,QAAQC,GAAMA,IAAMjC,IACpBE,SAASgC,IACJlC,EAAK4B,QAAQO,QAAkC,WAAxBnC,EAAK4B,QAAQO,QACvBL,MAAMC,KAAK,IAAIK,SAASF,GAAWG,UAAUL,QAAQC,GAAMA,IAE9DK,QAIZvC,EAAUmC,EACZ,IAKFlC,EAAK4B,QAAQO,QAAkC,YAAxBnC,EAAK4B,QAAQO,OAAsB,CAC5D3B,EAAEC,iBAEF,MAAM8B,EAAQvC,EAAK,GAEfuC,IACF1B,OAAOC,QAAQC,aAAa,CAAC,EAAG,GAAIwB,EAAMnC,QAE1Ca,EAAAA,EAAAA,GAAKC,SAASC,gBAAiB,qBAAsB,CACnDC,UAAWV,EACXW,IAAKR,OAAOS,SAASN,KACrBO,KAAM,UACNiB,KAAM,IAAIJ,SAASpC,KAGzB,CAGA,GAAIA,EAAK4B,QAAQO,QAAkC,QAAxBnC,EAAK4B,QAAQO,OAAkB,CACxD3B,EAAEC,iBAEF,MAAM+B,EAAO,IAAIJ,SAASpC,GACpBqB,GAAMoB,EAAAA,EAAAA,IAAUzC,EAAK0C,OAAQF,GAEnC3B,OAAOC,QAAQC,aAAa,CAAC,EAAG,GAAIM,IAEpCJ,EAAAA,EAAAA,GAAKC,SAASC,gBAAiB,qBAAsB,CAAEC,UAAWV,EAASW,IAAKR,OAAOS,SAASN,KAAMO,KAAM,OAC9G,CAGA,GAAIvB,EAAK4B,QAAQO,QAAkC,SAAxBnC,EAAK4B,QAAQO,OAAmB,CACzD3B,EAAEC,iBAEF,MACMkC,EAAQ,IADD,IAAIP,SAASpC,GACH4C,WAAWC,QAAO,CAACC,EAAKN,KAC7B,KAAZA,EAAK,KACPM,EAAIN,EAAK,IAAMA,EAAK,IAGfM,IACN,CAAC,GAEEC,EAAS,IAAIC,gBAAgBL,GAC7BM,EAAY,IAAIF,EAAOH,WAAWN,OAAS,EAE3CjB,EAAM4B,EAAY,IAAIC,IAAK,GAAElD,EAAK0C,UAAUK,KAAY,IAAIG,IAAK,GAAElD,EAAK0C,UAgB9E,OAdA7B,OAAOC,QAAQC,aAAa,CAAC,EAAG,GAAIM,IAEpCJ,EAAAA,EAAAA,GAAKC,SAASC,gBAAiB,qBAAsB,CACnDC,UAAWV,EACXW,IAAKR,OAAOS,SAASN,KACrBO,KAAM,cAGJ0B,EACFvC,EAAQc,UAAU2B,IAAI,eAEtBzC,EAAQc,UAAUC,OAAO,eAI7B,CAGA,GAAIzB,EAAK4B,QAAQO,QAAkC,WAAxBnC,EAAK4B,QAAQO,OAAxC,CACE3B,EAAEC,iBAEF,MAAM+B,EAAO,IAAIJ,SAASpC,GACpBqB,GAAMoB,EAAAA,EAAAA,IAAU5B,OAAOS,SAAUkB,GAAM,GAE7C3B,OAAOC,QAAQC,aAAa,CAAC,EAAG,GAAIM,IAEpCJ,EAAAA,EAAAA,GAAKC,SAASC,gBAAiB,qBAAsB,CACnDC,UAAWV,EACXW,IAAKR,OAAOS,SAASN,KACrBO,KAAM,WAGU,IAAIF,EAAI+B,aAAaR,WAAWN,OAAS,EAGzD5B,EAAQc,UAAU2B,IAAI,eAEtBzC,EAAQc,UAAUC,OAAO,cAI7B,KAvBA,CA0BA,GAAIzB,EAAK4B,QAAQO,QAAkC,aAAxBnC,EAAK4B,QAAQO,OAAuB,CAC7D3B,EAAEC,iBAEF,MAAM8B,EAAQvC,EAAK,GAEnB,GAAIuC,EAAO,CACT,MAAM5B,EAAS,IAAIuC,IAAIX,EAAMnC,OAU7B,YARIS,OAAOS,SAAS+B,SAAW1C,EAAO0C,OACpCxC,OAAOS,SAASN,KAAOuB,EAAMnC,OAE7BS,OAAOyC,KAAKf,EAAMnC,MAAO,UAEzBmC,EAAMjC,eAAiB,GAI3B,CACF,CAEAI,EAAQc,UAAU2B,IAAI,gBACtBI,EAAAA,EAAAA,GAAS7C,EAAS,GAxBlB,CAwBqB,EAGjB8C,EAAwBhD,IAC5B,MAAMiD,EAAajD,EAAEG,OAAOC,QAAQ,QAEhC6C,IACEA,EAAWC,cACbD,EAAWC,gBAEXD,EAAWE,cAAc,IAAIC,MAAM,WAEvC,EAGIC,EAAeC,UACnB,MAAM1C,EAAYZ,EAAEuD,OAAO3C,UAE3B,GAA4C,YAAxCA,EAAUQ,QAAQoC,kBAAiC,CACrD,MAAMC,EAAc/C,SAASgD,cAAc,uBAE3C,GAAID,EAAa,CACfA,EAAYzC,UAAU2B,IAAI,cAE1B,MAAMgB,QAAYC,EAAAA,EAAAA,IAAS5D,EAAEuD,OAAO1C,KAAKgD,OAEzCJ,EAAYK,UAAYH,EACxBF,EAAYzC,UAAUC,OAAO,eAE7BR,EAAAA,EAAAA,GAAKC,SAASC,gBAAiB,sBACjC,CAEA,QAA6CoD,IAAzCnD,EAAUQ,QAAQ4C,mBAAkC,CACtD,MAAMC,GAA2C,IAA/BjE,EAAEuD,OAAO1C,IAAIqD,QAAQ,KAAc,IAAM,IACrDP,QAAYC,EAAAA,EAAAA,IAAU,GAAE5D,EAAEuD,OAAO1C,MAAMoD,uBAA+BJ,OAEtEM,EAAiBvD,EAAU8C,cAAc,iBAE3CS,IACFA,EAAeL,UAAYH,EAE3BS,GAAM,GAEV,CAEApE,EAAEqE,iBACJ,GA8BID,EAASE,IACb,MAAMC,EAAM7D,SAASjB,iBAAiBJ,GAEhCmF,EAAa,CACjB,SACC,GAAEnF,mCACH8B,EACA,CAAEsD,SAAS,IAEPC,EAAU,CACd,QACC,GAAErF,6BACHsF,KAAU3E,GAAMmB,EAAiBnB,IAAI,KACrC,CAAEyE,SAAS,IAEPG,EAAa,CAAC,SAAW,GAAEvF,WAAgC2D,GAC3D6B,EAAY,CAAC,QArQD,4BAqQsC9E,GAClD+E,EAAa,CAAC,qBAAsB,OAAQzB,GAG9CiB,KACFS,EAAAA,EAAAA,MAAOP,IACPO,EAAAA,EAAAA,MAAOL,IACPK,EAAAA,EAAAA,MAAOH,IACPG,EAAAA,EAAAA,MAAOF,IACPE,EAAAA,EAAAA,MAAOD,KAGTE,EAAAA,EAAAA,OAAMR,IACNQ,EAAAA,EAAAA,OAAMN,IACNM,EAAAA,EAAAA,OAAMJ,IACNI,EAAAA,EAAAA,OAAMH,IACNG,EAAAA,EAAAA,OAAMF,GAENP,EAAI7E,SAASuF,GAtCWA,KACxBA,EAAGxF,iBAAiB,0BAA0BC,SAASuF,GAxBlCA,KACrB,GAAmB,WAAfA,EAAGC,QACL,OAGF,MAAMC,EAAcF,EAAGvB,cAAc,oBAEjCyB,IAAgBA,EAAYC,aAAa,qBAC3CD,EAAYE,aAAa,oBAAoB,IAY/CC,EAAAA,EAAAA,SAAaL,EATA,CACXM,SAAU,CACRC,aAAa,EACbC,gBAAiB,GACjBC,aAAa,EACbC,qBAAqB,IAIH,EAIwCC,CAAcX,IAAI,EAqC5DY,CAAiBZ,IAAI,EAG3Cb,KAEAY,EAAAA,EAAAA,IAAG,qBAAsB,QAAQ,IAAMZ,GAAM,I,0DCnS7C0B,EAAAA,EAAAA,QAAe,CACbC,QAAS,CAAE,mBAAoB,oBAGjC,SAAeD,EAAAA,EAAAA,KAASE,MAAMC,EAAAA,E,gDCL9B,MAoCA,EAdiB,SAAC9F,GAAiC,IAAzB+F,EAAgBC,UAAArE,OAAA,QAAAiC,IAAAoC,UAAA,GAAAA,UAAA,GAAG,EAC3C,MAAMC,GAAgC,EAvBlBC,MACpB,IAAIC,EAAS,EAIb,GAFmB5F,SAASgD,cAAc,gBAE1B,CACd,IAAI6C,EAAoB,GAEpBlG,OAAOmG,WAAW,sBAAsBC,UAC1CF,EAAoB,IAGlBlG,OAAOmG,WAAW,uBAAuBC,UAC3CF,EAAoB,KAGtBD,GAAUC,CACZ,CAEA,OAAOD,CAAM,EAIMD,GAEflG,EAAOiB,QAAQsF,eACjBR,EAAmBS,SAASxG,EAAOiB,QAAQsF,eAG7C,IAAIJ,EAASF,EAAaF,EAE1B,OAAO,IAAIU,SAASC,KAClBC,EAAAA,EAAAA,GAAK3G,EAAQ,CAAE4G,SAAU,IAAKT,SAAQU,SAAUH,GAAU,GAE9D,C,2CCpC+CnG,SAASC,gBAGtD,mBAAmBsG,KAAKC,UAAUC,WAAqC,aAAvBD,UAAUC,UAA2BD,UAAUE,eAH1F,MAKMnF,EAAY,SAACoF,GAAwC,IAAlCC,EAAQnB,UAAArE,OAAA,QAAAiC,IAAAoC,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAGoB,EAAMpB,UAAArE,OAAA,QAAAiC,IAAAoC,UAAA,IAAAA,UAAA,GAC/CnE,EAAOsF,EAEX,GAAIA,aAAoB1F,UAAa,EAAO,CAC1CI,EAAO,IAAIJ,SAEX,IAAK,MAAO4F,EAAK5H,KAAU6H,OAAOrF,QAAQkF,GACxCtF,EAAKuF,OAAOC,EAAK5H,EAErB,CAEA,GAAoB,iBAATyH,EAAmB,CAC5B,MAAMK,EAAU,IAAIhF,IAAI2E,GAExB,GAAIE,EAAQ,CACV,MAAM3E,EAAe8E,EAAQ9E,aAEvBL,EAAS,CAAC,EAEhB,IAAK,MAAOiF,EAAK5H,KAAUoC,EAAM,CAC/B,MAAM2F,EAAgBH,EAAII,QAAQ,KAAM,IAEpCD,KAAiBpF,EACnBA,EAAOoF,GAAeE,KAAKjI,GAE3B2C,EAAOoF,GAAiB,CAAC/H,EAE7B,CAEA,IAAK,MAAO4H,EAAK5H,KAAU6H,OAAOrF,QAAQG,GAAS,CACjD,MAAMuF,EAASlI,EAAM4B,QAAQC,GAAMA,IAEb,IAAlBqG,EAAOhG,OACTc,EAAamF,OAAOP,GAEpB5E,EAAaoF,IAAIR,EAAKM,EAAOG,KAAK,KAEtC,CAEA,OAAOP,CACT,CAAO,CACL,MAAMnF,EAAS,IAAIC,gBAAgBR,GAEnC,OAAO,IAAIU,IAAK,GAAE2E,KAAQ9E,IAC5B,CACF,CAEA,GAAoB,iBAAT8E,EAAmB,CAC5B,MAAM9E,EAAS,IAAIC,gBAAgB8E,GAGnC,OAFY,IAAI5E,IAAK,GAAE2E,KAAQ9E,IAGjC,CACF,EAEa2F,EAAwBC,IAC/B9H,OAAO+H,WACT/H,OAAO+H,UAAUP,KAAKM,EACxB,C","sources":["webpack://silverstripe-base/./themes/app/src/components/page-filters.js","webpack://silverstripe-base/./themes/app/src/scripts/common/ajax.js","webpack://silverstripe-base/./themes/app/src/scripts/common/scroll-to.js","webpack://silverstripe-base/./themes/app/src/scripts/common/util.js"],"sourcesContent":["import '@styles/components/dropdown.css'\nimport easydropdown from 'easydropdown-a11y'\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 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 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 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 setupPageFilters = (el) => {\n el.querySelectorAll('select:not([multiple])').forEach((el) => setupDropdown(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 let stuckHeaderHeight = 80\n\n if (window.matchMedia('(min-width: 768px)').matches) {\n stuckHeaderHeight = 88\n }\n\n if (window.matchMedia('(min-width: 1024px)').matches) {\n stuckHeaderHeight = 102\n }\n\n offset += stuckHeaderHeight\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","isClearing","resetForm","form","querySelectorAll","forEach","input","value","select","selectedIndex","handleClear","e","preventDefault","filters","target","closest","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","reInit","els","submitArgs","capture","keyArgs","throttle","changeArgs","clearArgs","updateArgs","off","on","el","tagName","placeholder","hasAttribute","setAttribute","easydropdown","behavior","openOnFocus","maxVisibleItems","liveUpdates","useNativeUiOnMobile","setupDropdown","setupPageFilters","wretch","headers","addon","QueryStringAddon","additionalOffset","arguments","pageOffset","getPageOffset","offset","stuckHeaderHeight","matchMedia","matches","scrollOffset","parseInt","Promise","resolve","jump","duration","callback","test","navigator","platform","maxTouchPoints","base","formData","append","key","Object","baseUrl","normalizedKey","replace","push","_value","delete","set","join","trackGoogleAnalytics","event","dataLayer"],"sourceRoot":""}