{"version":3,"file":"posts_dropdown_controller-BbKkwnha.js","sources":["../../../app/javascript/entrypoints/controllers/posts_dropdown_controller.js"],"sourcesContent":["import { Controller } from '@hotwired/stimulus';\nimport _ from 'lodash';\nimport Fuse from 'fuse.js';\n\nexport default class extends Controller {\n posts = [];\n\n static targets = ['input', 'options', 'item', 'checkmark'];\n\n static values = {\n list: Array,\n };\n\n select(event) {\n [...this.checkmarkTargets].map((checkmark) => {\n checkmark.classList.add('hidden');\n });\n\n this.checkmarkTargets[event.params.index].classList.remove('hidden');\n }\n\n connect() {\n this.posts = document.querySelectorAll('[data-post-title]');\n\n this.inputTarget.addEventListener(\"focus\", this.onFocus);\n this.inputTarget.addEventListener(\"blur\", this.onBlur);\n\n [...this.itemTargets].map((item) => {\n item.addEventListener(\"blur\", this.onBlur);\n });\n }\n\n disconnect() {\n this.inputTarget.removeEventListener(\"focus\", this.onFocus);\n this.inputTarget.removeEventListener(\"blur\", this.onBlur);\n\n [...this.itemTargets].map((item) => {\n item.removeEventListener(\"blur\", this.onBlur);\n });\n }\n\n onFocus = () => {\n this.optionsTarget.classList.remove(\"hidden\");\n };\n\n toggle = () => {\n this.optionsTarget.classList.toggle(\"hidden\");\n }\n\n onBlur = (event) => {\n if (\n event.relatedTarget &&\n (event.relatedTarget.classList.contains(\"post-item\") || event.relatedTarget.classList.contains(\"post-toggle-button\"))\n ) {\n return;\n }\n\n this.optionsTarget.classList.add(\"hidden\");\n };\n\n search = (event) => {\n if (event.target.value.length > 0) {\n\n const fuse = new Fuse(this.listValue, { threshold: 0.3 });\n const result = fuse.search(event.target.value);\n const resultArray = result.map((r) => {\n return r.item;\n });\n\n [...this.posts].map((post) => {\n const postTitle = post.getAttribute('data-post-title');\n\n if (resultArray.includes(postTitle)) {\n post.classList.remove('hidden');\n } else {\n post.classList.add('hidden');\n }\n });\n }\n\n if (event.target.value == '') {\n [...this.posts].map((post) => {\n post.classList.remove('hidden');\n });\n }\n };\n\n setInputValue(event) {\n this.inputTarget.value = event.currentTarget.getAttribute('data-post-title');\n }\n\n giveInputFocus() {\n this.inputTarget.scrollIntoView();\n this.inputTarget.focus();\n }\n}\n"],"names":["posts_dropdown_controller","Controller","__publicField","event","resultArray","Fuse","post","postTitle","checkmark","item"],"mappings":"kUAIe,MAAKA,UAASC,CAAW,CAAzB,kCACbC,EAAA,aAAQ,CAAA,GAoCRA,EAAA,eAAU,IAAM,CACd,KAAK,cAAc,UAAU,OAAO,QAAQ,CAChD,GAEEA,EAAA,cAAS,IAAM,CACb,KAAK,cAAc,UAAU,OAAO,QAAQ,CAC7C,GAEDA,EAAA,cAAUC,GAAU,CAEhBA,EAAM,gBACLA,EAAM,cAAc,UAAU,SAAS,WAAW,GAAKA,EAAM,cAAc,UAAU,SAAS,oBAAoB,IAKrH,KAAK,cAAc,UAAU,IAAI,QAAQ,CAC7C,GAEED,EAAA,cAAUC,GAAU,CAClB,GAAIA,EAAM,OAAO,MAAM,OAAS,EAAG,CAIjC,MAAMC,EAFO,IAAIC,EAAK,KAAK,UAAW,CAAE,UAAW,EAAG,CAAE,EACpC,OAAOF,EAAM,OAAO,KAAK,EAClB,IAAK,GACvB,EAAE,IACV,EAED,CAAC,GAAG,KAAK,KAAK,EAAE,IAAKG,GAAS,CAC5B,MAAMC,EAAYD,EAAK,aAAa,iBAAiB,EAEjDF,EAAY,SAASG,CAAS,EAChCD,EAAK,UAAU,OAAO,QAAQ,EAE9BA,EAAK,UAAU,IAAI,QAAQ,CAErC,CAAO,CACF,CAEGH,EAAM,OAAO,OAAS,IACxB,CAAC,GAAG,KAAK,KAAK,EAAE,IAAKG,GAAS,CAC5BA,EAAK,UAAU,OAAO,QAAQ,CACtC,CAAO,CAEP,GAxEE,OAAOH,EAAO,CACZ,CAAC,GAAG,KAAK,gBAAgB,EAAE,IAAKK,GAAc,CAC5CA,EAAU,UAAU,IAAI,QAAQ,CACtC,CAAK,EAED,KAAK,iBAAiBL,EAAM,OAAO,KAAK,EAAE,UAAU,OAAO,QAAQ,CACpE,CAED,SAAU,CACR,KAAK,MAAQ,SAAS,iBAAiB,mBAAmB,EAE1D,KAAK,YAAY,iBAAiB,QAAS,KAAK,OAAO,EACvD,KAAK,YAAY,iBAAiB,OAAQ,KAAK,MAAM,EAErD,CAAC,GAAG,KAAK,WAAW,EAAE,IAAKM,GAAS,CAClCA,EAAK,iBAAiB,OAAQ,KAAK,MAAM,CAC/C,CAAK,CACF,CAED,YAAa,CACX,KAAK,YAAY,oBAAoB,QAAS,KAAK,OAAO,EAC1D,KAAK,YAAY,oBAAoB,OAAQ,KAAK,MAAM,EAExD,CAAC,GAAG,KAAK,WAAW,EAAE,IAAKA,GAAS,CAClCA,EAAK,oBAAoB,OAAQ,KAAK,MAAM,CAClD,CAAK,CACF,CAgDD,cAAcN,EAAO,CACnB,KAAK,YAAY,MAAQA,EAAM,cAAc,aAAa,iBAAiB,CAC5E,CAED,gBAAiB,CACf,KAAK,YAAY,iBACjB,KAAK,YAAY,OAClB,CACH,CAxFED,EAHkBF,EAGX,UAAU,CAAC,QAAS,UAAW,OAAQ,WAAW,GAEzDE,EALkBF,EAKX,SAAS,CACd,KAAM,KACV"}