{"version":3,"file":"carousel-BL0nW7G9.js","sources":["../../../app/resources/javascript/components/carousel.js"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\n\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { Carousel } from 'bootstrap'\nimport { Swipe } from '../helpers/swipe'\n\ndocument.querySelectorAll('.carousel').forEach(carousel => {\n Swipe.useForCarousel(Carousel.getOrCreateInstance(carousel))\n\n const carouselIndicators = () =>\n document.querySelectorAll(\n `.carousel-indicators button[data-bs-target='#${carousel.id}']`\n )\n\n const currentCarouselIndicatorCount = () =>\n document.querySelector(\n `.carousel-indicator-count[data-bs-target='#${carousel.id}'] .current`\n )\n\n carousel.addEventListener('slide.bs.carousel', event => {\n carouselIndicators().forEach((button, index) => {\n if (index <= event.to) {\n button.classList.add('active')\n } else {\n button.classList.remove('active')\n }\n })\n\n const indicatorCount = currentCarouselIndicatorCount()\n if (indicatorCount) {\n indicatorCount.innerHTML = `${event.to + 1} `\n }\n })\n})\n\nconst parseStyleToNumber = style => parseInt(style.replace('px', ''), 10)\n\nconst CONTENT_GUTTER_X = 16\n\ndocument.querySelectorAll('.carousel.show-neighbours').forEach(carousel => {\n const carouselItemCount = () =>\n carousel.querySelectorAll('.carousel-item').length\n\n const carouselPushSize = to => {\n if (to === 0) {\n return 0\n }\n\n const columnGapStyle = getComputedStyle(\n carousel.querySelector('.carousel-inner').firstElementChild\n ).getPropertyValue('column-gap')\n\n const gapSize = columnGapStyle ? parseStyleToNumber(columnGapStyle) : 0\n const carouselItemSize = carousel.querySelector('.carousel-item')\n .clientWidth\n const screenSize = window.innerWidth\n\n if (to === carouselItemCount() - 1) {\n return (\n carousel.querySelector('.carousel-inner').scrollWidth -\n screenSize +\n CONTENT_GUTTER_X * 2\n )\n }\n\n const occupiedSpace = carouselItemSize + gapSize\n const remainingSpace = screenSize - occupiedSpace - CONTENT_GUTTER_X / 2\n\n return occupiedSpace * to - remainingSpace / 2\n }\n\n carousel.addEventListener('slide.bs.carousel', event => {\n const carouselInner = carousel.querySelector('.carousel-inner')\n carouselInner.style.transform = `translateX(-${carouselPushSize(\n event.to\n )}px)`\n })\n})\n"],"names":["carousel","Swipe","Carousel","carouselIndicators","currentCarouselIndicatorCount","event","button","index","indicatorCount","parseStyleToNumber","style","CONTENT_GUTTER_X","carouselItemCount","carouselPushSize","to","columnGapStyle","gapSize","carouselItemSize","screenSize","occupiedSpace","remainingSpace","carouselInner"],"mappings":"kIAMA,SAAS,iBAAiB,WAAW,EAAE,QAAQA,GAAY,CACzDC,EAAM,eAAeC,EAAS,oBAAoBF,CAAQ,CAAC,EAE3D,MAAMG,EAAqB,IACzB,SAAS,iBACP,gDAAgDH,EAAS,EAAE,IACjE,EAEQI,EAAgC,IACpC,SAAS,cACP,8CAA8CJ,EAAS,EAAE,aAC/D,EAEEA,EAAS,iBAAiB,oBAAqBK,GAAS,CACtDF,IAAqB,QAAQ,CAACG,EAAQC,IAAU,CAC1CA,GAASF,EAAM,GACjBC,EAAO,UAAU,IAAI,QAAQ,EAE7BA,EAAO,UAAU,OAAO,QAAQ,CAEnC,CAAA,EAED,MAAME,EAAiBJ,EAA6B,EAChDI,IACFA,EAAe,UAAY,GAAGH,EAAM,GAAK,CAAC,SAE7C,CAAA,CACH,CAAC,EAED,MAAMI,EAAqBC,GAAS,SAASA,EAAM,QAAQ,KAAM,EAAE,EAAG,EAAE,EAElEC,EAAmB,GAEzB,SAAS,iBAAiB,2BAA2B,EAAE,QAAQX,GAAY,CACzE,MAAMY,EAAoB,IACxBZ,EAAS,iBAAiB,gBAAgB,EAAE,OAExCa,EAAmBC,GAAM,CAC7B,GAAIA,IAAO,EACT,MAAO,GAGT,MAAMC,EAAiB,iBACrBf,EAAS,cAAc,iBAAiB,EAAE,iBAC3C,EAAC,iBAAiB,YAAY,EAEzBgB,EAAUD,EAAiBN,EAAmBM,CAAc,EAAI,EAChEE,EAAmBjB,EAAS,cAAc,gBAAgB,EAC7D,YACGkB,EAAa,OAAO,WAE1B,GAAIJ,IAAOF,EAAmB,EAAG,EAC/B,OACEZ,EAAS,cAAc,iBAAiB,EAAE,YAC1CkB,EACAP,EAAmB,EAIvB,MAAMQ,EAAgBF,EAAmBD,EACnCI,EAAiBF,EAAaC,EAAgBR,EAAmB,EAEvE,OAAOQ,EAAgBL,EAAKM,EAAiB,CACjD,EAEEpB,EAAS,iBAAiB,oBAAqBK,GAAS,CACtD,MAAMgB,EAAgBrB,EAAS,cAAc,iBAAiB,EAC9DqB,EAAc,MAAM,UAAY,eAAeR,EAC7CR,EAAM,EACZ,CAAK,KACF,CAAA,CACH,CAAC"}