{"version":3,"file":"posts_controller-CCg4Lg2b.js","sources":["../../../app/javascript/entrypoints/controllers/posts_controller.js"],"sourcesContent":["import { Controller } from \"@hotwired/stimulus\";\nimport _ from \"lodash\";\nimport Fuse from \"fuse.js\";\n\nexport default class extends Controller {\n static targets = [\n \"input\",\n \"options\",\n \"item\",\n \"postTitle\",\n \"checkmark\",\n \"postId\",\n ];\n\n static values = {\n list: Array,\n };\n\n connect() {\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 this.giveInputFocus();\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\") ||\n event.relatedTarget.classList.contains(\"post-toggle-button\") ||\n event.relatedTarget.classList.contains(\"sortable-ghost\"))\n )\n return;\n\n if (event.target && event.target.classList.contains(\"sortable-ghost\"))\n return;\n\n this.optionsTarget.classList.add(\"hidden\");\n };\n\n select = (event) => {\n [...this.checkmarkTargets].map((checkmark) =>\n checkmark.classList.add(\"hidden\")\n );\n this.checkmarkTargets[event.params.index].classList.toggle(\"hidden\");\n\n this.inputTarget.value = event.params.title;\n this.postIdTarget.value = event.params.id;\n\n this.toggle();\n event.currentTarget.parentElement.parentElement.parentElement.parentElement\n .closest(\"form\")\n .requestSubmit();\n };\n\n search = (event) => {\n if (event.target.value.length > 0) {\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.itemTargets].map((post) => {\n const postTitle = post.getAttribute(\"data-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.itemTargets].map((post) => {\n post.classList.remove(\"hidden\");\n });\n }\n };\n\n giveInputFocus() {\n this.inputTarget.focus();\n }\n}\n"],"names":["posts_controller","Controller","__publicField","event","checkmark","resultArray","Fuse","post","postTitle","item"],"mappings":"kUAIe,MAAKA,UAASC,CAAW,CAAzB,kCAkCbC,EAAA,eAAU,IAAM,CACd,KAAK,cAAc,UAAU,OAAO,QAAQ,CAChD,GAEEA,EAAA,cAAS,IAAM,CACb,KAAK,cAAc,UAAU,OAAO,QAAQ,CAChD,GAEEA,EAAA,cAAUC,GAAU,CAEhBA,EAAM,gBACLA,EAAM,cAAc,UAAU,SAAS,WAAW,GACjDA,EAAM,cAAc,UAAU,SAAS,oBAAoB,GAC3DA,EAAM,cAAc,UAAU,SAAS,gBAAgB,IAIvDA,EAAM,QAAUA,EAAM,OAAO,UAAU,SAAS,gBAAgB,GAGpE,KAAK,cAAc,UAAU,IAAI,QAAQ,CAC7C,GAEED,EAAA,cAAUC,GAAU,CAClB,CAAC,GAAG,KAAK,gBAAgB,EAAE,IAAKC,GAC9BA,EAAU,UAAU,IAAI,QAAQ,CACtC,EACI,KAAK,iBAAiBD,EAAM,OAAO,KAAK,EAAE,UAAU,OAAO,QAAQ,EAEnE,KAAK,YAAY,MAAQA,EAAM,OAAO,MACtC,KAAK,aAAa,MAAQA,EAAM,OAAO,GAEvC,KAAK,OAAM,EACXA,EAAM,cAAc,cAAc,cAAc,cAAc,cAC3D,QAAQ,MAAM,EACd,eACP,GAEED,EAAA,cAAUC,GAAU,CAClB,GAAIA,EAAM,OAAO,MAAM,OAAS,EAAG,CAGjC,MAAME,EAFO,IAAIC,EAAK,KAAK,UAAW,CAAE,UAAW,EAAG,CAAE,EACpC,OAAOH,EAAM,OAAO,KAAK,EAClB,IAAK,GACvB,EAAE,IACV,EAED,CAAC,GAAG,KAAK,WAAW,EAAE,IAAKI,GAAS,CAClC,MAAMC,EAAYD,EAAK,aAAa,YAAY,EAE5CF,EAAY,SAASG,CAAS,EAChCD,EAAK,UAAU,OAAO,QAAQ,EAE9BA,EAAK,UAAU,IAAI,QAAQ,CAErC,CAAO,CACF,CAEGJ,EAAM,OAAO,OAAS,IACxB,CAAC,GAAG,KAAK,WAAW,EAAE,IAAKI,GAAS,CAClCA,EAAK,UAAU,OAAO,QAAQ,CACtC,CAAO,CAEP,GAlFE,SAAU,CACR,KAAK,YAAY,iBAAiB,QAAS,KAAK,OAAO,EACvD,KAAK,YAAY,iBAAiB,OAAQ,KAAK,MAAM,EAErD,CAAC,GAAG,KAAK,WAAW,EAAE,IAAKE,GAAS,CAClCA,EAAK,iBAAiB,OAAQ,KAAK,MAAM,CAC/C,CAAK,EAED,KAAK,eAAc,CACpB,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,CAkED,gBAAiB,CACf,KAAK,YAAY,OAClB,CACH,CApGEP,EADkBF,EACX,UAAU,CACf,QACA,UACA,OACA,YACA,YACA,QACJ,GAEEE,EAVkBF,EAUX,SAAS,CACd,KAAM,KACV"}