{ "version": 3, "sources": ["event_navigation_controller-2afd90171b3f4270a68a2e59f7314a10a5ac7ef399f2f3e6a0ed8738866f0f2c.js"], "sourcesContent": ["import { Controller } from \"@hotwired/stimulus\";\n\n// Connects to data-controller=\"event-navigation\"\nexport default class extends Controller {\n connect() {\n document.body.addEventListener(\"keydown\", this.keydown);\n document.body.addEventListener(\"touchstart\", this.touchstart);\n document.body.addEventListener(\"touchend\", this.touchend);\n }\n\n disconnect() {\n document.body.removeEventListener(\"keydown\", this.keydown);\n document.body.removeEventListener(\"touchstart\", this.touchstart);\n document.body.removeEventListener(\"touchend\", this.touchend);\n }\n\n keydown = event => {\n if (event.key == \"ArrowRight\") {\n let link = document.querySelector(\"a[rel=next]\");\n if (link) link.click();\n } else if (event.key == \"ArrowLeft\") {\n let link = document.querySelector(\"a[rel=prev]\");\n if (link) link.click();\n } else if (event.key == \"ArrowUp\") {\n let link = document.querySelector(\"a[rel=up]\");\n if (link) link.click();\n }\n };\n\n touchstart = event => {\n this.touchStart = event.touches[0];\n };\n\n touchend = event => {\n let direction = this.swipe(event);\n\n if (direction == \"right\") {\n let link = document.querySelector(\"a[rel=prev]\");\n if (link) link.click();\n } else if (direction == \"left\") {\n let link = document.querySelector(\"a[rel=next]\");\n if (link) link.click();\n } else if (direction == \"up\") {\n let link = document.querySelector(\"a[rel=up]\");\n if (link) link.click();\n }\n };\n\n swipe(event) {\n if (!this.touchStart) return false;\n let stop = event.changedTouches[0];\n if (stop.identifier != this.touchStart.identifier) return false;\n\n let deltaX = stop.clientX - this.touchStart.clientX;\n let deltaY = stop.clientY - this.touchStart.clientY;\n\n let height = document.documentElement.clientHeight;\n let width = document.documentElement.clientWidth;\n\n if (Math.abs(deltaX) > width/2 && Math.abs(deltaY) < height/4) {\n return deltaX > 0 ? \"right\" : \"left\"; \n } else if (Math.abs(deltaY) > height/2 && Math.abs(deltaX) < width/4) {\n return deltaY > 0 ? \"down\" : \"up\";\n } else {\n return false;\n }\n }\n\n};\n"], "mappings": "oKAAA,OAAS,cAAAA,MAAkB,qBAG3B,6BAA6BA,CAAW,CAAxC,kCAaEC,EAAA,eAAUC,GAAS,CACjB,GAAIA,EAAM,KAAO,aAAc,CAC7B,IAAIC,EAAO,SAAS,cAAc,aAAa,EAC3CA,GAAMA,EAAK,MAAM,CACvB,SAAWD,EAAM,KAAO,YAAa,CACnC,IAAIC,EAAO,SAAS,cAAc,aAAa,EAC3CA,GAAMA,EAAK,MAAM,CACvB,SAAWD,EAAM,KAAO,UAAW,CACjC,IAAIC,EAAO,SAAS,cAAc,WAAW,EACzCA,GAAMA,EAAK,MAAM,CACvB,CACF,GAEAF,EAAA,kBAAaC,GAAS,CACpB,KAAK,WAAaA,EAAM,QAAQ,CAAC,CACnC,GAEAD,EAAA,gBAAWC,GAAS,CAClB,IAAIE,EAAY,KAAK,MAAMF,CAAK,EAEhC,GAAIE,GAAa,QAAS,CACxB,IAAID,EAAO,SAAS,cAAc,aAAa,EAC3CA,GAAMA,EAAK,MAAM,CACvB,SAAWC,GAAa,OAAQ,CAC9B,IAAID,EAAO,SAAS,cAAc,aAAa,EAC3CA,GAAMA,EAAK,MAAM,CACvB,SAAWC,GAAa,KAAM,CAC5B,IAAID,EAAO,SAAS,cAAc,WAAW,EACzCA,GAAMA,EAAK,MAAM,CACvB,CACF,GA1CA,SAAU,CACR,SAAS,KAAK,iBAAiB,UAAW,KAAK,OAAO,EACtD,SAAS,KAAK,iBAAiB,aAAc,KAAK,UAAU,EAC5D,SAAS,KAAK,iBAAiB,WAAY,KAAK,QAAQ,CAC1D,CAEA,YAAa,CACX,SAAS,KAAK,oBAAoB,UAAW,KAAK,OAAO,EACzD,SAAS,KAAK,oBAAoB,aAAc,KAAK,UAAU,EAC/D,SAAS,KAAK,oBAAoB,WAAY,KAAK,QAAQ,CAC7D,CAkCA,MAAMD,EAAO,CACX,GAAI,CAAC,KAAK,WAAY,MAAO,GAC7B,IAAIG,EAAOH,EAAM,eAAe,CAAC,EACjC,GAAIG,EAAK,YAAc,KAAK,WAAW,WAAY,MAAO,GAE1D,IAAIC,EAASD,EAAK,QAAU,KAAK,WAAW,QACxCE,EAASF,EAAK,QAAU,KAAK,WAAW,QAExCG,EAAS,SAAS,gBAAgB,aAClCC,EAAQ,SAAS,gBAAgB,YAErC,OAAI,KAAK,IAAIH,CAAM,EAAIG,EAAM,GAAK,KAAK,IAAIF,CAAM,EAAIC,EAAO,EACnDF,EAAS,EAAI,QAAU,OACrB,KAAK,IAAIC,CAAM,EAAIC,EAAO,GAAK,KAAK,IAAIF,CAAM,EAAIG,EAAM,EAC1DF,EAAS,EAAI,OAAS,KAEtB,EAEX,CAEF", "names": ["Controller", "__publicField", "event", "link", "direction", "stop", "deltaX", "deltaY", "height", "width"] }