{"version":3,"file":"pages-looking-for-work-openings-js-BPTDB0PL.js","sources":["../src/entries/pages/looking-for-work-openings.js"],"sourcesContent":["import delegate from \"delegate-it\";\nimport easydropdown from \"easydropdown-a11y\";\nimport ajax from \"@/scripts/common/ajax\";\nimport { scrollToIfNeeded } from \"@/scripts/common/scroll-to\";\nimport { generateQueryString } from \"@/scripts/common/util\";\nimport { updateQueryParams } from \"@/scripts/common/util\";\nimport \"@/styles/components/dropdown.css\";\n\nconst form = document.querySelector(\".filter-form\");\n\nconst setupDropdown = (el) => {\n if (el.tagName !== \"SELECT\") {\n return;\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 handleSortChange = (e) => {\n e.target.closest(\"button\").disabled = true;\n\n const dir = e.detail.dir !== \"\" ? e.detail.dir : false;\n const url = updateQueryParams([[\"sort\", dir]]);\n\n window.history.replaceState({}, \"\", url);\n\n updateResults();\n};\n\nconst handleFilterChange = (e) => {\n e && e.preventDefault();\n\n const currentUrl = new URL(window.location.href);\n const currentParams = new URLSearchParams(currentUrl.search);\n const currentView = currentParams.get(\"view\");\n\n const params = new FormData(form);\n const queryString = generateQueryString(params);\n const url = queryString.size ? `${form.action}?${queryString}` : form.action;\n\n window.history.replaceState({}, \"\", url);\n\n if (currentView) {\n const url = updateQueryParams([[\"view\", currentView]]);\n\n window.history.replaceState({}, \"\", url);\n }\n\n updateResults();\n};\n\nconst handleFilterClear = () => {\n const currentUrl = new URL(window.location.href);\n const currentParams = new URLSearchParams(currentUrl.search);\n const currentView = currentParams.get(\"view\");\n\n form.reset();\n form.querySelectorAll('input[type=\"search\"]').forEach((x) => (x.value = null));\n form.querySelectorAll(\"select\").forEach((x) => (x.value = \"\"));\n\n window.history.replaceState({}, \"\", form.action);\n\n if (currentView) {\n const url = updateQueryParams([[\"view\", currentView]]);\n\n window.history.replaceState({}, \"\", url);\n }\n\n updateResults();\n};\n\nconst updateResults = async () => {\n const pageContent = document.querySelector(\"[data-page-content]\");\n\n pageContent.classList.add(\"is-loading\");\n\n const res = await ajax.get(window.location.href).json();\n\n pageContent.innerHTML = res.page;\n pageContent.classList.remove(\"is-loading\");\n\n if (res.isFiltered) {\n scrollToIfNeeded(pageContent, 24);\n }\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n if (form) {\n form.querySelectorAll(\"select:not([multiple])\").forEach((el) => setupDropdown(el));\n\n delegate(\".filter-form select\", \"change\", handleFilterChange);\n delegate(\".filter-form\", \"submit\", handleFilterChange);\n delegate(\".filter-form-clear\", \"click\", handleFilterClear);\n }\n\n delegate(\"html\", \"sort:change\", handleSortChange);\n});\n"],"names":["form","setupDropdown","el","easydropdown","handleSortChange","dir","url","updateQueryParams","updateResults","handleFilterChange","currentUrl","currentView","params","queryString","generateQueryString","handleFilterClear","x","pageContent","res","ajax","scrollToIfNeeded","delegate"],"mappings":"6RAQA,MAAMA,EAAO,SAAS,cAAc,cAAc,EAE5CC,EAAiBC,GAAO,CAC5B,GAAIA,EAAG,UAAY,SACjB,OAYFC,EAAaD,EATA,CACX,SAAU,CACR,YAAa,GACb,gBAAiB,GACjB,YAAa,GACb,oBAAqB,EACtB,CACL,CAEuB,CACvB,EAEME,EAAoB,GAAM,CAC9B,EAAE,OAAO,QAAQ,QAAQ,EAAE,SAAW,GAEtC,MAAMC,EAAM,EAAE,OAAO,MAAQ,GAAK,EAAE,OAAO,IAAM,GAC3CC,EAAMC,EAAkB,CAAC,CAAC,OAAQF,CAAG,CAAC,CAAC,EAE7C,OAAO,QAAQ,aAAa,CAAE,EAAE,GAAIC,CAAG,EAEvCE,GACF,EAEMC,EAAsB,GAAM,CAChC,GAAK,EAAE,iBAEP,MAAMC,EAAa,IAAI,IAAI,OAAO,SAAS,IAAI,EAEzCC,EADgB,IAAI,gBAAgBD,EAAW,MAAM,EACzB,IAAI,MAAM,EAEtCE,EAAS,IAAI,SAASZ,CAAI,EAC1Ba,EAAcC,EAAoBF,CAAM,EACxCN,EAAMO,EAAY,KAAO,GAAGb,EAAK,MAAM,IAAIa,CAAW,GAAKb,EAAK,OAItE,GAFA,OAAO,QAAQ,aAAa,CAAE,EAAE,GAAIM,CAAG,EAEnCK,EAAa,CACf,MAAML,EAAMC,EAAkB,CAAC,CAAC,OAAQI,CAAW,CAAC,CAAC,EAErD,OAAO,QAAQ,aAAa,CAAE,EAAE,GAAIL,CAAG,CACxC,CAEDE,GACF,EAEMO,EAAoB,IAAM,CAC9B,MAAML,EAAa,IAAI,IAAI,OAAO,SAAS,IAAI,EAEzCC,EADgB,IAAI,gBAAgBD,EAAW,MAAM,EACzB,IAAI,MAAM,EAQ5C,GANAV,EAAK,MAAK,EACVA,EAAK,iBAAiB,sBAAsB,EAAE,QAASgB,GAAOA,EAAE,MAAQ,IAAK,EAC7EhB,EAAK,iBAAiB,QAAQ,EAAE,QAASgB,GAAOA,EAAE,MAAQ,EAAG,EAE7D,OAAO,QAAQ,aAAa,CAAA,EAAI,GAAIhB,EAAK,MAAM,EAE3CW,EAAa,CACf,MAAML,EAAMC,EAAkB,CAAC,CAAC,OAAQI,CAAW,CAAC,CAAC,EAErD,OAAO,QAAQ,aAAa,CAAE,EAAE,GAAIL,CAAG,CACxC,CAEDE,GACF,EAEMA,EAAgB,SAAY,CAChC,MAAMS,EAAc,SAAS,cAAc,qBAAqB,EAEhEA,EAAY,UAAU,IAAI,YAAY,EAEtC,MAAMC,EAAM,MAAMC,EAAK,IAAI,OAAO,SAAS,IAAI,EAAE,OAEjDF,EAAY,UAAYC,EAAI,KAC5BD,EAAY,UAAU,OAAO,YAAY,EAErCC,EAAI,YACNE,EAAiBH,EAAa,EAAE,CAEpC,EAEA,SAAS,iBAAiB,mBAAoB,IAAM,CAC9CjB,IACFA,EAAK,iBAAiB,wBAAwB,EAAE,QAASE,GAAOD,EAAcC,CAAE,CAAC,EAEjFmB,EAAS,sBAAuB,SAAUZ,CAAkB,EAC5DY,EAAS,eAAgB,SAAUZ,CAAkB,EACrDY,EAAS,qBAAsB,QAASN,CAAiB,GAG3DM,EAAS,OAAQ,cAAejB,CAAgB,CAClD,CAAC"}