{"version":3,"sources":["findYourRouteItem.js"],"names":["findYourRoute","container","resultsSections","querySelectorAll","resetCategories","dataNoResults","document","querySelector","forEach","section","resultsContainer","dataset","categoryTarget","count","filter","x","show","length","textContent","classList","remove","add","hasAttribute","sliderControls","all","allCount","style","display","filterResults","searchTerm","selectedGroups","arguments","undefined","some","categoryContent","map","showHideSections","title","result","reduce","acc","includes","toLowerCase","showResults","push","hideResults","setAttribute","contains","initBlock","el","input","addEventListener","debounce","value","active","ControlBinders","register"],"mappings":"AAAA,MAAMA,cAAgB,MACpB,IAAIC,EAEJ,MAAMC,EAAkB,IAAM,IAAID,EAAUE,iBAAiB,4BAiBvDC,EAAkB,KACtB,MAAMC,EAAgBC,SAASC,cAAc,qBAC7C,IAAIN,EAAUE,iBAAiB,2BAA2BK,QAAQC,IAChE,MAAMC,EAAmBT,EAAUM,yCAAyCE,EAAQE,QAAQC,oBACtFC,EAAQ,IAAIH,EAAiBP,iBAAiB,kBAAkBW,OAAOC,GAAwB,SAAnBA,EAAEJ,QAAQK,OAAoB,GAAOC,OASvH,GARAR,EAAQS,YAAcT,EAAQE,QAAQC,oBAAsBC,KAExDA,EAAQ,EACVJ,EAAQU,UAAUC,OAAO,UAEzBX,EAAQU,UAAUE,IAAI,UAGpBX,EAAiBY,aAAa,wBAAyB,CACzD,MAAMC,EAAiBb,EAAiBH,cAAc,0BAElDM,GAAS,EACXU,EAAeJ,UAAUE,IAAI,UAE7BE,EAAeJ,UAAUC,OAAO,aAItC,MAAMI,EAAMvB,EAAUM,cAAc,uBACpC,IAAIkB,EAAW,EACfxB,EAAUE,iBAAiB,iBAAiBK,QAAQO,IAC3B,SAAnBA,EAAEJ,QAAQK,OAAoB,GAChCS,MAGJD,EAAIN,yBAA2BO,KAG7BpB,EAAcqB,MAAMC,QADlBF,EAAW,EACiB,OAEA,SAI5BG,EAAgB,SAAUC,GAC9B,IAAIC,EAAiBC,UAAUd,OAAS,QAAsBe,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GACzF7B,IAAkBM,QAAQC,KACY,IAAhCqB,EAAeG,KAAKlB,GAAKA,IAAgBe,EAAeG,KAAKlB,GAAKA,IAAMN,EAAQE,QAAQuB,iBAC1FzB,EAAQU,UAAUC,OAAO,UAEzBX,EAAQU,UAAUE,IAAI,YAGTnB,IAAkBiC,IAAI1B,IACrC,MAMM2B,EANU,IAAI3B,EAAQN,iBAAiB,kBAAkBgC,IAAI1B,IAC1D,CACLA,QAASA,EACT4B,MAAO5B,EAAQE,QAAQ2B,UAGMC,OAAO,CAACC,EAAK/B,KACxCA,EAAQ4B,MAAMI,SAASZ,EAAWa,eACpCF,EAAIG,YAAYC,KAAKnC,GAErB+B,EAAIK,YAAYD,KAAKnC,GAGhB+B,GACN,CACDG,YAAa,GACbE,YAAa,KAEfT,EAAiBO,YAAYR,IAAIG,IAC/BA,EAAO7B,QAAQE,QAAQK,KAAO,OAC9BsB,EAAO7B,QAAQqC,aAAa,cAAe,SACpCR,EAAO7B,QAAQiB,MAAMC,QAAU,UAExCS,EAAiBS,YAAYV,IAAIG,IAC/BA,EAAO7B,QAAQE,QAAQK,KAAO,QAC9BsB,EAAO7B,QAAQqC,aAAa,cAAe,QACpCR,EAAO7B,QAAQiB,MAAMC,QAAU,UAGU,IAA9CS,EAAiBO,YAAYV,KAAKlB,GAAKA,GACzCN,EAAQU,UAAUE,IAAI,WAEuB,IAAzCZ,EAAQU,UAAU4B,SAAS,WAC7BtC,EAAQU,UAAUC,OAAO,aAMjC,MAAO,CACL4B,UAxGgBC,IAChBhD,EAAYgD,EACZ,MAAMC,EAAQD,EAAG1C,cAAc,SACf0C,EAAG1C,cAAc,kBAClB0C,EAAG9C,iBAAiB,gBACnC+C,EAAMC,iBAAiB,QAASC,SAAS,KACvC,IAAIC,EAAQH,EAAMG,MAClB,MAAMvB,EAAiB,IAAI7B,EAAUE,iBAAiB,2BAA2BW,OAAOC,GAA0B,SAArBA,EAAEJ,QAAQ2C,QAAmBnB,IAAIpB,GAAKA,EAAEJ,QAAQC,gBAC7IgB,EAAcyB,EAAOvB,GACrB1B,KACC,MACHwB,EAAcsB,EAAMG,OACpBjD,OAjBkB,GAiHtBmD,eAAeC,SAAS,yBAA0BP,GAAMjD,cAAcgD,UAAUC","sourcesContent":["const findYourRoute = (() => {\r\n let container;\r\n const resultsSections = () => [...container.querySelectorAll(\"[data-category-content]\")]\r\n const initBlock = el => {\r\n container = el\r\n const input = el.querySelector(\"input\");\r\n const results = el.querySelector('[data-results]');\r\n const groups = el.querySelectorAll('[data-group]');\r\n input.addEventListener('keyup',\r\n debounce(() => {\r\n let value = input.value;\r\n const selectedGroups = [...container.querySelectorAll(\"[data-category-target]\")]\r\n .filter(x => x.dataset.active === \"true\")\r\n .map(x => x.dataset.categoryTarget);\r\n filterResults(value, selectedGroups);\r\n resetCategories()\r\n }, 500));\r\n filterResults(input.value)\r\n resetCategories()\r\n };\r\n \r\n const resetCategories = () => {\r\n const dataNoResults = document.querySelector(\"[data-no-results]\");\r\n \r\n [...container.querySelectorAll(\"[data-category-target]\")]\r\n .forEach(section => {\r\n const resultsContainer = container.querySelector(`[data-category-content='${section.dataset.categoryTarget}']`);\r\n const count = [...resultsContainer.querySelectorAll(\"[data-result]\")]\r\n .filter(x => x.dataset.show !== \"true\" === false)\r\n .length;\r\n section.textContent = section.dataset.categoryTarget + ` (${count})`; \r\n \r\n if(count > 0)\r\n {\r\n section.classList.remove(\"hidden\");\r\n }\r\n else\r\n {\r\n section.classList.add(\"hidden\");\r\n }\r\n if (resultsContainer.hasAttribute('data-teaser-carousel')){\r\n const sliderControls = resultsContainer.querySelector('[data-slider-controls]');\r\n if (count <= 3){\r\n sliderControls.classList.add('hidden');\r\n }else{\r\n sliderControls.classList.remove('hidden');\r\n }\r\n }\r\n })\r\n const all = container.querySelector('[data-category-all]');\r\n let allCount = 0;\r\n container.querySelectorAll(\"[data-result]\").forEach((x) => {\r\n if (x.dataset.show !== \"true\" === false){\r\n allCount++;\r\n }\r\n })\r\n all.textContent = `SHOW ALL (${allCount})`;\r\n \r\n if(allCount > 0)\r\n {\r\n dataNoResults.style.display = \"none\"\r\n }\r\n else\r\n {\r\n dataNoResults.style.display = \"block\"\r\n }\r\n }\r\n\r\n const filterResults = (searchTerm, selectedGroups = []) => {\r\n resultsSections().forEach(section => {\r\n if (selectedGroups.some(x => x) === false || selectedGroups.some(x => x === section.dataset.categoryContent)) {\r\n section.classList.remove(\"hidden\");\r\n } else {\r\n section.classList.add(\"hidden\");\r\n }\r\n })\r\n\r\n const sections = resultsSections()\r\n .map(section => {\r\n const results = [...section.querySelectorAll(\"[data-result]\")]\r\n .map(section => {\r\n return {section: section, title: section.dataset.result}\r\n });\r\n\r\n const showHideSections = results.reduce((acc, section) => {\r\n if (section.title.includes(searchTerm.toLowerCase())) {\r\n acc.showResults.push(section)\r\n } else {\r\n acc.hideResults.push(section)\r\n }\r\n\r\n return acc;\r\n }, {showResults: [], hideResults: []})\r\n\r\n showHideSections.showResults.map(result => {\r\n result.section.dataset.show = \"true\";\r\n result.section.setAttribute(\"aria-hidden\",\"false\");\r\n return result.section.style.display = \"block\";\r\n });\r\n showHideSections.hideResults.map(result => {\r\n result.section.dataset.show = \"false\";\r\n result.section.setAttribute(\"aria-hidden\",\"true\");\r\n return result.section.style.display = \"none\";\r\n });\r\n\r\n if (showHideSections.showResults.some(x => x) === false) {\r\n section.classList.add(\"hidden\")\r\n } else {\r\n if (section.classList.contains(\"hidden\") === false) {\r\n section.classList.remove(\"hidden\")\r\n }\r\n }\r\n });\r\n }\r\n\r\n return {initBlock};\r\n})();\r\n\r\nControlBinders.register(`[data-find-your-route]`, el => findYourRoute.initBlock(el));"],"file":"findYourRouteItem-min.js"}