{"version":3,"file":"single_line_controller-DUWv9_1v.js","sources":["../../../app/javascript/entrypoints/controllers/single_line_controller.js"],"sourcesContent":["import { Controller } from \"@hotwired/stimulus\";\nimport _ from \"lodash\";\nimport { useWindowResize } from \"stimulus-use\";\n\nexport default class extends Controller {\n static targets = [\"item\"];\n\n hiddenElem = [];\n windowResizeTimeout = null;\n\n connect() {\n this.handleTags();\n }\n\n handleTags = () => {\n if (this.itemTargets.length === 0) {\n return;\n }\n\n const firstItemTop = this.itemTargets[0].getBoundingClientRect().top;\n this.itemTargets.forEach((item) => {\n if (item.getBoundingClientRect().top !== firstItemTop) {\n item.classList.add(\"hidden\");\n this.hiddenElem.push(item);\n }\n });\n\n // add +x text where x is the amount of hidden items\n const hiddenItems = this.itemTargets.filter((item) =>\n item.classList.contains(\"hidden\")\n );\n\n if (this.hiddenElem.length > 0) {\n const hiddenItemsText = document.createElement(\"div\");\n if (hiddenItems.length > 0) {\n hiddenItemsText.classList.add(\n \"hidden-items-text\",\n \"inline-flex\",\n \"items-center\",\n \"px-2.5\",\n \"py-0.5\",\n \"rounded-md\",\n \"text-sm\",\n \"font-bold\",\n \"bg-white\",\n \"border-gray-300\",\n \"text-gray-600\",\n \"border-2\",\n \"border-dashed\",\n \"mr-2\"\n );\n hiddenItemsText.innerText = `+${hiddenItems.length}`;\n this.itemTargets[0].parentElement.appendChild(hiddenItemsText);\n }\n\n if (hiddenItemsText.getBoundingClientRect().top !== firstItemTop) {\n const lastItem = _.last(\n this.itemTargets.filter((item) => !item.classList.contains(\"hidden\"))\n );\n lastItem.classList.add(\"hidden\");\n this.hiddenElem.push(lastItem);\n hiddenItemsText.innerText = `+${hiddenItems.length + 1}`;\n }\n }\n\n this.itemTargets[0].parentElement.classList.remove(\"collapse\");\n\n this.itemTargets[0].parentElement.addEventListener(\"mouseover\", () => {\n const hiddenItemsText =\n this.itemTargets[0].parentElement.querySelector(\".hidden-items-text\");\n if (hiddenItemsText) {\n hiddenItemsText.classList.add(\"hidden\");\n }\n\n this.itemTargets.forEach((item) => {\n if (item.classList.contains(\"hidden\")) {\n item.classList.remove(\"hidden\");\n }\n });\n });\n\n this.itemTargets[0].parentElement.addEventListener(\"mouseout\", () => {\n const hiddenItemsText =\n this.itemTargets[0].parentElement.querySelector(\".hidden-items-text\");\n if (hiddenItemsText) {\n hiddenItemsText.classList.remove(\"hidden\");\n }\n\n this.hiddenElem.forEach(function (item) {\n item.classList.add(\"hidden\");\n });\n });\n };\n}\n"],"names":["single_line_controller","Controller","__publicField","firstItemTop","item","hiddenItems","hiddenItemsText","lastItem","_"],"mappings":"mSAIe,MAAKA,UAASC,CAAW,CAAzB,kCAGbC,EAAA,kBAAa,CAAA,GACbA,EAAA,2BAAsB,MAMtBA,EAAA,kBAAa,IAAM,CACjB,GAAI,KAAK,YAAY,SAAW,EAC9B,OAGF,MAAMC,EAAe,KAAK,YAAY,CAAC,EAAE,sBAAuB,EAAC,IACjE,KAAK,YAAY,QAASC,GAAS,CAC7BA,EAAK,wBAAwB,MAAQD,IACvCC,EAAK,UAAU,IAAI,QAAQ,EAC3B,KAAK,WAAW,KAAKA,CAAI,EAEjC,CAAK,EAGD,MAAMC,EAAc,KAAK,YAAY,OAAQD,GAC3CA,EAAK,UAAU,SAAS,QAAQ,CACtC,EAEI,GAAI,KAAK,WAAW,OAAS,EAAG,CAC9B,MAAME,EAAkB,SAAS,cAAc,KAAK,EAsBpD,GArBID,EAAY,OAAS,IACvBC,EAAgB,UAAU,IACxB,oBACA,cACA,eACA,SACA,SACA,aACA,UACA,YACA,WACA,kBACA,gBACA,WACA,gBACA,MACV,EACQA,EAAgB,UAAY,IAAID,EAAY,MAAM,GAClD,KAAK,YAAY,CAAC,EAAE,cAAc,YAAYC,CAAe,GAG3DA,EAAgB,wBAAwB,MAAQH,EAAc,CAChE,MAAMI,EAAWC,EAAE,KACjB,KAAK,YAAY,OAAQJ,GAAS,CAACA,EAAK,UAAU,SAAS,QAAQ,CAAC,CAC9E,EACQG,EAAS,UAAU,IAAI,QAAQ,EAC/B,KAAK,WAAW,KAAKA,CAAQ,EAC7BD,EAAgB,UAAY,IAAID,EAAY,OAAS,CAAC,EACvD,CACF,CAED,KAAK,YAAY,CAAC,EAAE,cAAc,UAAU,OAAO,UAAU,EAE7D,KAAK,YAAY,CAAC,EAAE,cAAc,iBAAiB,YAAa,IAAM,CACpE,MAAMC,EACJ,KAAK,YAAY,CAAC,EAAE,cAAc,cAAc,oBAAoB,EAClEA,GACFA,EAAgB,UAAU,IAAI,QAAQ,EAGxC,KAAK,YAAY,QAASF,GAAS,CAC7BA,EAAK,UAAU,SAAS,QAAQ,GAClCA,EAAK,UAAU,OAAO,QAAQ,CAExC,CAAO,CACP,CAAK,EAED,KAAK,YAAY,CAAC,EAAE,cAAc,iBAAiB,WAAY,IAAM,CACnE,MAAME,EACJ,KAAK,YAAY,CAAC,EAAE,cAAc,cAAc,oBAAoB,EAClEA,GACFA,EAAgB,UAAU,OAAO,QAAQ,EAG3C,KAAK,WAAW,QAAQ,SAAUF,EAAM,CACtCA,EAAK,UAAU,IAAI,QAAQ,CACnC,CAAO,CACP,CAAK,CACL,GAlFE,SAAU,CACR,KAAK,WAAU,CAChB,CAiFH,CAxFEF,EADkBF,EACX,UAAU,CAAC,MAAM"}