{"version":3,"file":"chunks/d066a8e6655fc7.js","mappings":"6xBAA4C,IAEvBA,EAAiB,WAQpC,SAAAA,EAAYC,EAAsBC,I,4FAAaC,CAAA,KAAAH,GAC7CI,KAAKH,QAAUA,EACfG,KAAKC,iBAAmBJ,EAAQK,SAAS,GACzCF,KAAKG,YAAcL,EAAOK,YAC1BH,KAAKI,gBAAiB,EACtBJ,KAAKK,aAAc,EACnBL,KAAKM,UAAY,EACjBN,KAAKO,MACP,C,QA2FC,O,EA3FAX,G,EAAA,EAAAY,IAAA,OAAAC,MAED,WAAO,IAAAC,EAAA,KACLV,KAAKH,QAAQc,iBAAiB,SAAS,SAACC,GAClCA,EAAEC,OAAOC,UAAUC,SAAS,WAAaL,EAAKN,gBAChDM,EAAKM,cAAcJ,EAAEC,OAAOI,aAAa,aAEvCL,EAAEC,SAAWH,EAAKT,kBACpBS,EAAKQ,QAAQN,EAEjB,IAEAZ,KAAKC,iBAAiBkB,aAAe,SAACP,GAGpC,OAFAA,EAAEQ,iBACFV,EAAKW,UAAUT,IACR,CACT,EACAZ,KAAKC,iBAAiBqB,YAAc,SAACV,GACnCF,EAAKa,KAAKX,EACZ,EACAZ,KAAKC,iBAAiBuB,WAAa,SAACZ,GAGlC,OAFAA,EAAEQ,iBACFV,EAAKQ,QAAQN,IACN,CACT,EAEAZ,KAAKC,iBAAiBwB,YAAc,SAACb,GAAoBF,EAAKW,UAAUT,EAAG,EAC3EZ,KAAKC,iBAAiByB,UAAY,SAACd,GAAoBF,EAAKQ,QAAQN,EAAG,EACvEZ,KAAKC,iBAAiB0B,YAAc,SAACf,GAAoBF,EAAKa,KAAKX,EAAG,CACxE,GAAC,CAAAJ,IAAA,YAAAC,MAED,SAAUG,GACRZ,KAAKM,UAAYM,EAAEgB,QAAUhB,EAAEgB,QAAUhB,EAAEiB,cAAc,GAAGC,MAC5D9B,KAAKK,aAAc,CACrB,GAAC,CAAAG,IAAA,OAAAC,MAED,SAAKG,GACH,IAAIgB,EAAUhB,EAAEgB,QAAUhB,EAAEgB,QAAUhB,EAAEiB,cAAc,GAAGC,MACzD,GAAI9B,KAAKK,aAAeL,KAAKM,YAAcsB,EAAS,CAClD,IAAIG,EAAa/B,KAAKM,UAAYsB,EAC9BI,EAAaJ,EAAU5B,KAAKM,UAChCN,KAAKC,iBAAiBgC,MAAMC,UAAY,aAAHC,OAAiBJ,EAAa,IAAM,GAAE,OACvEK,KAAKC,IAAIL,GAAc,KACzBhC,KAAKkB,QAAQN,GACbZ,KAAKgB,cAAce,EAAa,OAAS,SAAS,GAEtD,CACF,GAAC,CAAAvB,IAAA,UAAAC,MAED,SAAQ6B,GAA+B,IAAAC,EAAA,KACrCC,YAAW,WACTD,EAAKtC,iBAAiBgC,MAAMC,UAAY,cAC1C,GAAG,KACHlC,KAAKK,aAAc,CACrB,GAAC,CAAAG,IAAA,gBAAAC,MAED,SAAcgC,EAAmBC,GAAmB,IAAAC,EAAA,KAClD3C,KAAKI,gBAAiB,EACtB,IAAIwC,EAAW5C,KAAKC,iBAAiBC,SACjC2C,EAA0B,QAAbJ,EAAsB,GAAK,EACxCK,EAA4B,QAAbL,EAAsBG,EAAS,GAAKA,EAASA,EAASG,OAAS,GAC9EC,EAA6B,QAAbP,EAAsBG,EAASA,EAASG,OAAS,GAAKH,EAAS,GAC/EK,EAAYC,OAAOF,EAAc/B,aAAa,eAAiB4B,EAC/DI,EAAY,EACdA,EAAYjD,KAAKG,YAAY4C,OAAS,EAC7BE,GAAajD,KAAKG,YAAY4C,SACvCE,EAAY,GAEd,IAAIE,EAAUC,SAASC,cAAc,OACrCF,EAAQG,UAAY,kBACpBH,EAAQI,aAAa,aAAcN,GACnCE,EAAQK,UAAY,wCAAHrB,OACHnC,KAAKG,YAAY8C,GAAWQ,MAAK,WAAAtB,OAAUnC,KAAKG,YAAY8C,GAAWS,MAAK,4BAAAvB,OAEpFnC,KAAKG,YAAY8C,GAAWS,MAAK,SAEvCZ,EAAahC,UAAU6C,IAAI,QACV,QAAblB,EACFzC,KAAKC,iBAAiB2D,YAAYT,GAElCnD,KAAKC,iBAAiB4D,aAAaV,EAASH,GAG9Cc,EAAAA,EAAAA,WAAoB,YAAcrB,EAAY,KAAOC,EAAU,SAAW,SAAU,CAAC,GAErFF,YAAW,WACLG,EAAK1C,iBAAiBc,SAAS+B,KACjCH,EAAK1C,iBAAiB8D,YAAYjB,GAClCH,EAAKvC,gBAAiB,EAE1B,GAAG,IACL,M,oEAACR,CAAA,CA3GmC,E","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":""}