{"version":3,"file":"chunks/d066a8e6655fc7.js","mappings":"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","sources":["webpack:///./resources/js/components/generic/image-merry-go-round.ts"],"sourcesContent":["import tracking from '../../utils/tracking';\n\nexport default class ImageMerryGoRound {\n domRoot: any;\n galleryContainer: any;\n imagesArray: any;\n disableButtons: boolean;\n startedDrag: boolean;\n startingX: number;\n\n constructor(domRoot: HTMLElement, params: any) {\n this.domRoot = domRoot;\n this.galleryContainer = domRoot.children[0];\n this.imagesArray = params.imagesArray;\n this.disableButtons = false;\n this.startedDrag = false;\n this.startingX = 0;\n this.init();\n }\n\n init() {\n this.domRoot.addEventListener(\"click\", (e: MouseEvent) => {\n if (e.target.classList.contains(\"arrow\") && !this.disableButtons) {\n this.advanceImages(e.target.getAttribute(\"data-dir\"));\n }\n if (e.target !== this.galleryContainer) {\n this.dragEnd(e);\n }\n });\n\n this.galleryContainer.ontouchstart = (e: PointerEvent) => {\n e.preventDefault();\n this.dragStart(e);\n return false;\n };\n this.galleryContainer.ontouchmove = (e: PointerEvent) => {\n this.drag(e);\n };\n this.galleryContainer.ontouchend = (e: PointerEvent) => {\n e.preventDefault();\n this.dragEnd(e);\n return false;\n };\n\n this.galleryContainer.onmousedown = (e: MouseEvent) => { this.dragStart(e) };\n this.galleryContainer.onmouseup = (e: MouseEvent) => { this.dragEnd(e) };\n this.galleryContainer.onmousemove = (e: MouseEvent) => { this.drag(e) };\n }\n\n dragStart(e: MouseEvent | PointerEvent) {\n this.startingX = e.screenX ? e.screenX : e.targetTouches[0].pageX;\n this.startedDrag = true;\n }\n\n drag(e: MouseEvent | PointerEvent) {\n let screenX = e.screenX ? e.screenX : e.targetTouches[0].pageX;\n if (this.startedDrag && this.startingX !== screenX) {\n let isNegative = this.startingX > screenX;\n let difference = screenX - this.startingX;\n this.galleryContainer.style.transform = `translate(${(isNegative ? \"-\" : \"\")}3%)`;\n if (Math.abs(difference) > 50) {\n this.dragEnd(e);\n this.advanceImages(isNegative ? \"left\" : \"right\", true)\n }\n }\n }\n\n dragEnd(_e: MouseEvent | PointerEvent) {\n setTimeout(() => {\n this.galleryContainer.style.transform = 'translate(0)';\n }, 1000)\n this.startedDrag = false;\n }\n\n advanceImages(direction: string, dragged?: boolean) {\n this.disableButtons = true;\n let domItems = this.galleryContainer.children;\n let arithmetic = direction == \"left\" ? 1 : -1;\n let itemToRemove = direction == \"left\" ? domItems[0] : domItems[domItems.length - 1];\n let newAddSibling = direction == \"left\" ? domItems[domItems.length - 1] : domItems[0];\n let itemToAdd = Number(newAddSibling.getAttribute(\"data-index\")) + arithmetic;\n if (itemToAdd < 0) {\n itemToAdd = this.imagesArray.length - 1;\n } else if (itemToAdd >= this.imagesArray.length) {\n itemToAdd = 0;\n }\n let newItem = document.createElement(\"div\");\n newItem.className = \"image-item show\";\n newItem.setAttribute(\"data-index\", itemToAdd);\n newItem.innerHTML = `<div class=\"inner\">\n <img src=\"${this.imagesArray[itemToAdd].image}\" alt=\"${this.imagesArray[itemToAdd].title}\">\n </div>\n <h4>${this.imagesArray[itemToAdd].title}</h4>`;\n\n itemToRemove.classList.add(\"hide\");\n if (direction == \"left\") {\n this.galleryContainer.appendChild(newItem);\n } else {\n this.galleryContainer.insertBefore(newItem, newAddSibling);\n }\n\n tracking.trackEvent(\"carousel_\" + direction + \"_\" + (dragged ? \"scroll\" : \"arrow\"), {});\n\n setTimeout(() => {\n if (this.galleryContainer.contains(itemToRemove)) {\n this.galleryContainer.removeChild(itemToRemove);\n this.disableButtons = false;\n }\n }, 150)\n }\n}\n"],"names":["ImageMerryGoRound","domRoot","params","_classCallCheck","this","galleryContainer","children","imagesArray","disableButtons","startedDrag","startingX","init","key","value","_this","addEventListener","e","target","classList","contains","advanceImages","getAttribute","dragEnd","ontouchstart","preventDefault","dragStart","ontouchmove","drag","ontouchend","onmousedown","onmouseup","onmousemove","screenX","targetTouches","pageX","isNegative","difference","style","transform","concat","Math","abs","_e","_this2","setTimeout","direction","dragged","_this3","domItems","arithmetic","itemToRemove","length","newAddSibling","itemToAdd","Number","newItem","document","createElement","className","setAttribute","innerHTML","image","title","add","appendChild","insertBefore","tracking","removeChild"],"sourceRoot":""}