{"version":3,"file":"work_filter_controller-DNLBnHoD.js","names":[],"sources":["../../../app/javascript/entrypoints/site_controllers/work_filter_controller.js"],"sourcesContent":["import { Controller } from \"@hotwired/stimulus\"\n\n// Work page filters: a pill shows the cards whose data-filters list contains its key.\n// Groups with no visible card are hidden; the counter and the empty message follow.\nexport default class extends Controller {\n static targets = [\"card\", \"group\", \"count\", \"empty\"]\n\n connect() {\n this.apply(\"all\")\n }\n\n select(event) {\n const button = event.currentTarget\n this.element.querySelectorAll(\"[data-filter]\").forEach((pill) => {\n pill.setAttribute(\"aria-pressed\", String(pill === button))\n })\n this.apply(button.dataset.filter)\n }\n\n apply(filter) {\n let shown = 0\n this.cardTargets.forEach((card) => {\n const keys = (card.dataset.filters || \"\").split(\" \")\n const match = filter === \"all\" || keys.includes(filter)\n card.hidden = !match\n if (match) shown++\n })\n this.groupTargets.forEach((group) => {\n group.hidden = !group.querySelector(\"[data-work-filter-target='card']:not([hidden])\")\n })\n if (this.hasCountTarget) {\n const label = shown > 1 ? this.countTarget.dataset.other : this.countTarget.dataset.one\n this.countTarget.textContent = `${shown} ${label}`\n }\n if (this.hasEmptyTarget) this.emptyTarget.hidden = shown > 0\n }\n}\n"],"mappings":"4GAIA,EAAA,cAA6B,CAAW,CACtC,OAAO,QAAU,CAAC,OAAQ,QAAS,QAAS,QAAQ,CAEpD,SAAU,CACR,KAAK,MAAM,MAAM,CAGnB,OAAO,EAAO,CACZ,IAAM,EAAS,EAAM,cACrB,KAAK,QAAQ,iBAAiB,gBAAgB,CAAC,QAAS,GAAS,CAC/D,EAAK,aAAa,eAAgB,OAAO,IAAS,EAAO,CAAC,EAC1D,CACF,KAAK,MAAM,EAAO,QAAQ,OAAO,CAGnC,MAAM,EAAQ,CACZ,IAAI,EAAQ,EAUZ,GATA,KAAK,YAAY,QAAS,GAAS,CACjC,IAAM,GAAQ,EAAK,QAAQ,SAAW,IAAI,MAAM,IAAI,CAC9C,EAAQ,IAAW,OAAS,EAAK,SAAS,EAAO,CACvD,EAAK,OAAS,CAAC,EACX,GAAO,KACX,CACF,KAAK,aAAa,QAAS,GAAU,CACnC,EAAM,OAAS,CAAC,EAAM,cAAc,iDAAiD,EACrF,CACE,KAAK,eAAgB,CACvB,IAAM,EAAQ,EAAQ,EAAI,KAAK,YAAY,QAAQ,MAAQ,KAAK,YAAY,QAAQ,IACpF,KAAK,YAAY,YAAc,GAAG,EAAM,GAAG,IAEzC,KAAK,iBAAgB,KAAK,YAAY,OAAS,EAAQ"}