{"version":3,"file":"scripts.min.js","mappings":"uPACMA,EAAUC,OA0BhB,SAASC,EAAWC,EAAgBC,GACpB,IAAVD,IAAcA,EAAS,YAC3BC,EAAQC,SAAQ,SAACC,GACf,GAAIA,EAAOC,aAAa,qBAAuBJ,EAG7C,OAFAG,EAAOE,UAAUC,OAAO,4BACxBH,EAAOE,UAAUE,IAAI,eAGvBJ,EAAOE,UAAUC,OAAO,eACxBH,EAAOE,UAAUE,IAAI,0BAlCV,QAAf,EAAAV,EAAOW,gBAAQ,QAAfX,EAAOW,SAAa,IACA,QAApB,KAAAX,EAAOW,UAASC,YAAI,UAAJA,KAEhB,SAAc,G,IAAEC,EAAY,eAAEC,EAAe,kBACrCC,EAAaC,SAASC,cAAc,WAAIJ,EAAY,MACpDK,EAAkBH,EAAWI,iBAAiB,+BAC9CC,EAAsC,IAAnBN,EACzBZ,EAAWY,EAAiBI,GAE5BA,EAAgBb,SAAQ,SAACgB,GACvB,OAAAA,EAAeC,iBAAiB,SAAS,SAAEC,GACzC,IAAMpB,EAASkB,EAAed,aAAa,oBAEvCa,IACFG,EAAEC,iBACFvB,OAAOwB,QAAQC,UAAU,KAAMV,SAASW,MAAON,EAAed,aAAa,UAG7EL,EAAWC,EAAQe,GAqBzB,SAAqBU,EAAwBb,GAC3CA,EAAWI,iBAAiB,0BAA0Bd,SAAQ,SAACwB,GACtC,aAAnBD,GAAiC,KAAIE,KAAKC,MAAMF,EAAWtB,aAAa,0BAAwB,GAAEyB,MAAK,SAAA7B,GAAU,OAAAA,GAAUyB,KAC7HC,EAAWI,MAAMC,QAAU,QAG7BL,EAAWI,MAAMC,QAAU,UA1BzBC,CAAYhC,EAAQY,cCjBN","sources":["webpack://app-jobs/./src/ts/index.ts","webpack://app-jobs/webpack/startup"],"sourcesContent":["// so it can be called from the HTML when content re-initializes dynamically\r\nconst winAny = (window as any)\r\nwinAny.appJobs2 ??= {}\r\nwinAny.appJobs2.init ??= init\r\n\r\nfunction init({ domAttribute, currentCategory }: { domAttribute: string, currentCategory: string }) {\r\n const appWrapper = document.querySelector(`[${domAttribute}]`)\r\n const categoryButtons = appWrapper.querySelectorAll(`[app-jobs2-category-button]`)\r\n const noReloadRequired = currentCategory == \"\"\r\n setPrimary(currentCategory, categoryButtons)\r\n\r\n categoryButtons.forEach((categoryButton: HTMLElement) =>\r\n categoryButton.addEventListener('click', ((e) => {\r\n const filter = categoryButton.getAttribute('app-jobs2-filter');\r\n\r\n if (noReloadRequired) {\r\n e.preventDefault()\r\n window.history.pushState(null, document.title, categoryButton.getAttribute('href'));\r\n }\r\n\r\n setPrimary(filter, categoryButtons)\r\n filterItems(filter, appWrapper)\r\n }))\r\n )\r\n}\r\n\r\n// match category button to filter and add/remove primary class\r\nfunction setPrimary(filter: string, buttons: NodeListOf) {\r\n if (filter == \"\") filter = \"nofilter\"\r\n buttons.forEach((button) => {\r\n if (button.getAttribute('app-jobs2-filter') == filter) {\r\n button.classList.remove('btn-outline-primary')\r\n button.classList.add('btn-primary')\r\n return\r\n }\r\n button.classList.remove('btn-primary')\r\n button.classList.add('btn-outline-primary')\r\n })\r\n}\r\n\r\n// filter shown items by selected Filter\r\nfunction filterItems(selectedFilter: string, appWrapper: Element) {\r\n appWrapper.querySelectorAll(`[app-jobs2-filterelem]`).forEach((jobElement: HTMLElement) => {\r\n if (selectedFilter === \"nofilter\" || [...JSON.parse(jobElement.getAttribute('app-jobs2-filterelem'))].find(filter => filter == selectedFilter)) {\r\n jobElement.style.display = \"block\"\r\n return\r\n }\r\n jobElement.style.display = \"none\"\r\n })\r\n}","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = {};\n__webpack_modules__[294]();\n"],"names":["winAny","window","setPrimary","filter","buttons","forEach","button","getAttribute","classList","remove","add","appJobs2","init","domAttribute","currentCategory","appWrapper","document","querySelector","categoryButtons","querySelectorAll","noReloadRequired","categoryButton","addEventListener","e","preventDefault","history","pushState","title","selectedFilter","jobElement","JSON","parse","find","style","display","filterItems"],"sourceRoot":""}