{"version":3,"sources":["webpack:///./node_modules/vue3-carousel/dist/carousel.es.js","webpack:///./src/components/partials/p-img.vue","webpack:///./src/components/partials/p-img.vue?0211","webpack:///./src/components/partials/p-img.vue?279e"],"names":["defaultConfigs","itemsToShow","itemsToScroll","modelValue","transition","autoplay","snapAlign","wrapAround","pauseAutoplayOnHover","mouseDrag","touchDrag","dir","breakpoints","undefined","debounce","fn","delay","timerId","args","clearTimeout","setTimeout","throttle","limit","inThrottle","self","this","apply","getSlidesVNodes","vNode","_a","_b","_c","type","name","children","getMaxSlideIndex","config","slidesCount","Math","ceil","getMinSlideIndex","floor","getCurrentSlideIndex","val","max","min","getSlidesToScroll","slidesBuffer","currentSlide","output","indexOf","Carousel","props","default","Number","Boolean","value","includes","Object","settings","slots","emit","expose","root","slides","slideWidth","autoplayTimer","transitionTimer","__defaultConfig","assign","currentSlideIndex","prevSlideIndex","middleSlideIndex","maxSlideIndex","minSlideIndex","initDefaultConfigs","mergedConfigs","bindConfigs","updateBreakpointsConfigs","breakpointsArray","keys","map","key","sort","a","b","newConfig","some","breakpoint","isMatched","window","matchMedia","matches","handleWindowResize","updateSlidesData","updateSlideWidth","rect","getBoundingClientRect","width","length","updateSlidesBuffer","slidesArray","Array","shouldShiftSlides","buffer","round","shifts","i","push","shift","unshift","pop","initializeAutoplay","addEventListener","passive","resetAutoplayTimer","isTouch","startPosition","x","y","endPosition","dragged","isDragging","isHover","handleMouseEnter","handleMouseLeave","handleDragStart","event","button","isSliding","touches","clientX","clientY","document","handleDragging","handleDragEnd","deltaX","deltaY","direction","tolerance","sign","draggedSlides","newSlide","captureClick","e","stopPropagation","removeEventListener","slideTo","setInterval","next","restart","clearInterval","slideIndex","mute","console","log","abs","Infinity","lastSlideIndex","nextSlide","prev","prevSlide","nav","slidesToScroll","trackStyle","xScroll","transform","initCarousel","restartCarousel","updateCarousel","values","needToUpdate","currentSlideUpdated","data","maxSlide","minSlide","middleSlide","slotSlides","slotAddons","addons","slotsProps","slidesElements","addonsElements","forEach","el","index","trackEl","class","style","onMousedown","onTouchstart","viewPortEl","ref","carousel","onMouseenter","onMouseleave","icons","arrowUp","arrowDown","arrowRight","arrowLeft","Icon","iconName","path","pathEl","d","iconTitle","title","titleEl","viewBox","role","ariaLabel","String","Navigation","attrs","slotNext","slotPrev","isRTL","prevButton","onClick","nextButton","Slide","wrapOrder","updateOrder","slideStyle","items","order","toString","isActive","isVisible","current","slice","isPrev","isNext","carousel__slide","call","visible","imgModel","modal","dismissableMask","modalTitle","fnClose","returnTo","allImages","currentIndex","items-to-show","language","item","slide","img","imgPath","openModal","components","emites","plugins","__","mounted","findIndex","watchCurrentIndex","methods","$emit","imgSubject","computed","sessionToken","state","api","local","watch","render","__scopeId"],"mappings":"oJAAA;;;;;GAOA,MAAMA,EAAiB,CACnBC,YAAa,EACbC,cAAe,EACfC,WAAY,EACZC,WAAY,IACZC,SAAU,EACVC,UAAW,SACXC,YAAY,EACZC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,IAAK,MACLC,iBAAaC,GASjB,SAASC,EAASC,EAAIC,GAClB,IAAIC,EACJ,OAAO,YAAaC,GACZD,GACAE,aAAaF,GAEjBA,EAAUG,WAAW,KACjBL,KAAMG,GACND,EAAU,MACXD,IASX,SAASK,EAASN,EAAIO,GAClB,IAAIC,EACJ,OAAO,YAAaL,GAChB,MAAMM,EAAOC,KACRF,IACDR,EAAGW,MAAMF,EAAMN,GACfK,GAAa,EACbH,WAAW,IAAOG,GAAa,EAAQD,KAInD,SAASK,EAAgBC,GACrB,IAAIC,EAAIC,EAAIC,EAEZ,OAAKH,EAGsH,mBAA9C,QAAvEE,EAAyB,QAAnBD,EAAKD,EAAM,UAAuB,IAAPC,OAAgB,EAASA,EAAGG,YAAyB,IAAPF,OAAgB,EAASA,EAAGG,MACtGL,GACiB,QAAnBG,EAAKH,EAAM,UAAuB,IAAPG,OAAgB,EAASA,EAAGG,WAAa,GAJlE,GAMf,SAASC,EAAiBC,EAAQC,GAC9B,GAAID,EAAO7B,WACP,OAAO8B,EAAc,EAEzB,OAAQD,EAAO9B,WACX,IAAK,QACD,OAAO+B,EAAcD,EAAOnC,YAChC,IAAK,MACD,OAAOoC,EAAc,EACzB,IAAK,SACL,IAAK,aACD,OAAOA,EAAcC,KAAKC,KAAKH,EAAOnC,YAAc,GACxD,IAAK,cACD,OAAOoC,EAAcC,KAAKC,KAAKH,EAAOnC,YAAc,GACxD,QACI,OAAO,GAGnB,SAASuC,EAAiBJ,GACtB,GAAIA,EAAO7B,WACP,OAAO,EAEX,OAAQ6B,EAAO9B,WACX,IAAK,QACD,OAAO,EACX,IAAK,MACD,OAAO8B,EAAOnC,YAAc,EAChC,IAAK,SACL,IAAK,aACD,OAAOqC,KAAKG,OAAOL,EAAOnC,YAAc,GAAK,GACjD,IAAK,cACD,OAAOqC,KAAKG,OAAOL,EAAOnC,YAAc,GAAK,GACjD,QACI,OAAO,GAGnB,SAASyC,EAAqBN,EAAQO,EAAKC,EAAKC,GAC5C,OAAIT,EAAO7B,WACAoC,EAEJL,KAAKO,IAAIP,KAAKM,IAAID,EAAKE,GAAMD,GAExC,SAASE,GAAkB,aAAEC,EAAY,aAAEC,EAAY,UAAE1C,EAAS,YAAEL,EAAW,WAAEM,EAAU,YAAE8B,IACzF,IAAIY,EAASF,EAAaG,QAAQF,GAalC,IAZgB,IAAZC,IACAA,EAASF,EAAaG,QAAQZ,KAAKC,KAAKS,KAE1B,WAAd1C,GAAwC,eAAdA,EAC1B2C,IAAWhD,EAAc,GAAK,EAEX,gBAAdK,EACL2C,IAAWhD,EAAc,GAAK,EAEX,QAAdK,IACL2C,GAAUhD,EAAc,IAEvBM,EAAY,CACb,MAAMqC,EAAMP,EAAcpC,EACpB4C,EAAM,EACZI,EAASX,KAAKM,IAAIN,KAAKO,IAAII,EAAQL,GAAMC,GAE7C,OAAOI,EAGX,IAAIE,EAAW,eAAgB,CAC3BlB,KAAM,WACNmB,MAAO,CAEHnD,YAAa,CACToD,QAASrD,EAAeC,YACxB+B,KAAMsB,QAGVpD,cAAe,CACXmD,QAASrD,EAAeE,cACxB8B,KAAMsB,QAGV/C,WAAY,CACR8C,QAASrD,EAAeO,WACxByB,KAAMuB,SAGVjD,UAAW,CACP+C,QAASrD,EAAeM,UACxB,UAAUkD,GAEN,MAAO,CAAC,QAAS,MAAO,SAAU,cAAe,cAAcC,SAASD,KAIhFpD,WAAY,CACRiD,QAASrD,EAAeI,WACxB4B,KAAMsB,QAGV1C,YAAa,CACTyC,QAASrD,EAAeY,YACxBoB,KAAM0B,QAGVrD,SAAU,CACNgD,QAASrD,EAAeK,SACxB2B,KAAMsB,QAGV9C,qBAAsB,CAClB6C,QAASrD,EAAeQ,qBACxBwB,KAAMuB,SAGVpD,WAAY,CACRkD,aAASxC,EACTmB,KAAMsB,QAGV7C,UAAW,CACP4C,QAASrD,EAAeS,UACxBuB,KAAMuB,SAGV7C,UAAW,CACP2C,QAASrD,EAAeU,UACxBsB,KAAMuB,SAGV5C,IAAK,CACD0C,QAASrD,EAAeW,IACxB,UAAU6C,GAEN,MAAO,CAAC,MAAO,OAAOC,SAASD,KAIvCG,SAAU,CACN,UACI,MAAO,IAEX3B,KAAM0B,SAGd,MAAMN,GAAO,MAAEQ,EAAK,KAAEC,EAAI,OAAEC,IACxB,IAAIjC,EACJ,MAAMkC,EAAO,eAAI,MACXC,EAAS,eAAI,IACbjB,EAAe,eAAI,IACnBkB,EAAa,eAAI,GACjB5B,EAAc,eAAI,GAClB6B,EAAgB,eAAI,MACpBC,EAAkB,eAAI,MAC5B,IAAIvD,EAAc,eAAI,IAElBwD,EAAkBV,OAAOW,OAAO,GAAIrE,GAExC,MAAMoC,EAAS,eAASsB,OAAOW,OAAO,GAAID,IAEpCE,EAAoB,eAAiC,QAA5BzC,EAAKO,EAAOjC,kBAA+B,IAAP0B,EAAgBA,EAAK,GAClF0C,EAAiB,eAAI,GACrBC,EAAmB,eAAI,GACvBC,EAAgB,eAAI,GACpBC,EAAgB,eAAI,GAU1B,SAASC,IAEL,MAAMC,EAAgBlB,OAAOW,OAAOX,OAAOW,OAAO,GAAIjB,GAAQA,EAAMO,UAEpE/C,EAAc,eAAI8C,OAAOW,OAAO,GAAIO,EAAchE,cAElDwD,EAAkBV,OAAOW,OAAOX,OAAOW,OAAO,GAAIO,GAAgB,CAAEjB,cAAU9C,EAAWD,iBAAaC,IACtGgE,EAAYT,GAEhB,SAASU,IACL,MAAMC,EAAmBrB,OAAOsB,KAAKpE,EAAY4C,OAC5CyB,IAAKC,GAAQ5B,OAAO4B,IACpBC,KAAK,CAACC,EAAGC,KAAOA,GAAKD,GAC1B,IAAIE,EAAY5B,OAAOW,OAAO,GAAID,GAClCW,EAAiBQ,KAAMC,IACnB,MAAMC,EAAYC,OAAOC,WAAW,eAAeH,QAAiBI,QACpE,QAAIH,IACAH,EAAY5B,OAAOW,OAAOX,OAAOW,OAAO,GAAIiB,GAAY1E,EAAY4C,MAAMgC,KACnE,KAIfX,EAAYS,GAEhB,SAAST,EAAYS,GACjB,IAAK,IAAIJ,KAAOI,EAEZlD,EAAO8C,GAAOI,EAAUJ,GApChC,eAAQ,SAAU9C,GAClB,eAAQ,eAAgBW,GACxB,eAAQ,cAAeV,GACvB,eAAQ,eAAgBiC,GACxB,eAAQ,WAAYG,GACpB,eAAQ,WAAYC,GAkCpB,MAAMmB,EAAqB/E,EAAS,KAC5BF,EAAY4C,QACZsB,IACAgB,KAEJC,KACD,IAIH,SAASA,IACL,IAAKhC,EAAKP,MACN,OACJ,MAAMwC,EAAOjC,EAAKP,MAAMyC,wBACxBhC,EAAWT,MAAQwC,EAAKE,MAAQ9D,EAAOnC,YAE3C,SAAS6F,IACLzD,EAAYmB,MAAQlB,KAAKM,IAAIoB,EAAOR,MAAM2C,OAAQ,GAC9C9D,EAAYmB,OAAS,IAEzBgB,EAAiBhB,MAAQlB,KAAKC,MAAMF,EAAYmB,MAAQ,GAAK,GAC7DiB,EAAcjB,MAAQrB,EAAiBC,EAAQC,EAAYmB,OAC3DkB,EAAclB,MAAQhB,EAAiBJ,GACvCkC,EAAkBd,MAAQd,EAAqBN,EAAQkC,EAAkBd,MAAOiB,EAAcjB,MAAOkB,EAAclB,QAEvH,SAAS4C,IACL,MAAMC,EAAc,IAAIC,MAAMjE,EAAYmB,OAAOwB,QAC3CuB,EAAoBnE,EAAO7B,YAAc6B,EAAOnC,YAAc,GAAKoC,EAAYmB,MACrF,GAAI+C,EAAmB,CACnB,MAAMC,EAAgC,IAAvBpE,EAAOnC,YAChBqC,KAAKmE,OAAOpE,EAAYmB,MAAQpB,EAAOnC,aAAe,GACtD,EACN,IAAIyG,EAASF,EAASlC,EAAkBd,MAQxC,GAPyB,QAArBpB,EAAO9B,UACPoG,GAAUpE,KAAKG,MAAML,EAAOnC,YAAc,GAEhB,WAArBmC,EAAO9B,WAA+C,eAArB8B,EAAO9B,WAC7CoG,IAGAA,EAAS,EACT,IAAK,IAAIC,EAAID,EAAQC,EAAI,EAAGA,IACxBN,EAAYO,KAAKtD,OAAO+C,EAAYQ,eAIxC,IAAK,IAAIF,EAAI,EAAGA,EAAID,EAAQC,IACxBN,EAAYS,QAAQxD,OAAO+C,EAAYU,QAInDhE,EAAaS,MAAQ6C,EAEzB,eAAU,KACFzF,EAAY4C,QACZsB,IACAgB,KAEJ,eAAS,IAAM1E,WAAW2E,EAAkB,KACxC3D,EAAO/B,UAAY+B,EAAO/B,SAAW,GACrC2G,IAEJtB,OAAOuB,iBAAiB,SAAUpB,EAAoB,CAAEqB,SAAS,MAErE,eAAY,KACJ/C,EAAgBX,OAChBrC,aAAagD,EAAgBX,OAEjC2D,GAAmB,KAKvB,IAAIC,GAAU,EACd,MAAMC,EAAgB,CAAEC,EAAG,EAAGC,EAAG,GAC3BC,EAAc,CAAEF,EAAG,EAAGC,EAAG,GACzBE,EAAU,eAAS,CAAEH,EAAG,EAAGC,EAAG,IAC9BG,EAAa,gBAAI,GACjBC,EAAU,gBAAI,GACdC,EAAmB,KACrBD,EAAQnE,OAAQ,GAEdqE,EAAmB,KACrBF,EAAQnE,OAAQ,GAEpB,SAASsE,EAAgBC,GACrBX,EAAyB,eAAfW,EAAM/F,MACVoF,GAA4B,IAAjBW,EAAMC,QAAiBC,EAAUzE,QAGlDkE,EAAWlE,OAAQ,EACnB6D,EAAcC,EAAIF,EAAUW,EAAMG,QAAQ,GAAGC,QAAUJ,EAAMI,QAC7Dd,EAAcE,EAAIH,EAAUW,EAAMG,QAAQ,GAAGE,QAAUL,EAAMK,QAC7DC,SAASpB,iBAAiBG,EAAU,YAAc,YAAakB,GAAgB,GAC/ED,SAASpB,iBAAiBG,EAAU,WAAa,UAAWmB,GAAe,IAE/E,MAAMD,EAAiBjH,EAAU0G,IAC7BP,EAAYF,EAAIF,EAAUW,EAAMG,QAAQ,GAAGC,QAAUJ,EAAMI,QAC3DX,EAAYD,EAAIH,EAAUW,EAAMG,QAAQ,GAAGE,QAAUL,EAAMK,QAC3D,MAAMI,EAAShB,EAAYF,EAAID,EAAcC,EACvCmB,EAASjB,EAAYD,EAAIF,EAAcE,EAC7CE,EAAQF,EAAIkB,EACZhB,EAAQH,EAAIkB,GACb,IACH,SAASD,IACLb,EAAWlE,OAAQ,EACnB,MAAMkF,EAA2B,QAAftG,EAAOzB,KAAiB,EAAI,EACxCgI,EAAmC,GAAvBrG,KAAKsG,KAAKnB,EAAQH,GAC9BuB,EAAgBvG,KAAKmE,MAAMgB,EAAQH,EAAIrD,EAAWT,MAAQmF,GAAaD,EAC7E,IAAII,EAAWpG,EAAqBN,EAAQkC,EAAkBd,MAAQqF,EAAepE,EAAcjB,MAAOkB,EAAclB,OAExH,GAAIqF,EAAe,CACf,MAAME,EAAgBC,IAClBA,EAAEC,kBACFvD,OAAOwD,oBAAoB,QAASH,GAAc,IAEtDrD,OAAOuB,iBAAiB,QAAS8B,GAAc,GAEnDI,EAAQL,GACRrB,EAAQH,EAAI,EACZG,EAAQF,EAAI,EACZc,SAASa,oBAAoB9B,EAAU,YAAc,YAAakB,GAAgB,GAClFD,SAASa,oBAAoB9B,EAAU,WAAa,UAAWmB,GAAe,GAKlF,SAASvB,IACL9C,EAAcV,MAAQ4F,YAAY,KAC1BhH,EAAO5B,sBAAwBmH,EAAQnE,OAG3C6F,KACDjH,EAAO/B,UAEd,SAAS8G,EAAmBmC,GAAU,GAC7BpF,EAAcV,QAGnB+F,cAAcrF,EAAcV,OACxB8F,GACAtC,KAMR,MAAMiB,EAAY,gBAAI,GACtB,SAASkB,EAAQK,EAAYC,GAAO,GAChC,IAAKD,GAA4B,IAAdA,EAEf,YADAE,QAAQC,IAAI,eAKhB,GADAxC,IACI7C,EAAkBd,QAAUgG,GAAcvB,EAAUzE,MACpD,OAEJ,GAAIlB,KAAKsH,IAAIJ,KAAgBK,IACzB,OACJ,MAAMC,EAAiBzH,EAAYmB,MAAQ,EAC3C,OAAIgG,EAAaM,EACNX,EAAQK,EAAanH,EAAYmB,OAExCgG,EAAa,EACNL,EAAQK,EAAanH,EAAYmB,QAE5CyE,EAAUzE,OAAQ,EAClBe,EAAef,MAAQc,EAAkBd,MACzCc,EAAkBd,MAAQgG,EACrBC,GACD5F,EAAK,oBAAqBS,EAAkBd,YAEhDW,EAAgBX,MAAQpC,WAAW,KAC3BgB,EAAO7B,YACP6F,IACJ6B,EAAUzE,OAAQ,GACnBpB,EAAOhC,cAEd,SAASiJ,IACL,IAAIU,EAAYzF,EAAkBd,MAAQpB,EAAOlC,cAC5CkC,EAAO7B,aACRwJ,EAAYzH,KAAKO,IAAIkH,EAAWtF,EAAcjB,QAElD2F,EAAQY,GAEZ,SAASC,IACL,IAAIC,EAAY3F,EAAkBd,MAAQpB,EAAOlC,cAC5CkC,EAAO7B,aACR0J,EAAY3H,KAAKM,IAAIqH,EAAWvF,EAAclB,QAElD2F,EAAQc,GAEZ,MAAMC,EAAM,CAAEf,UAASE,OAAMW,QAC7B,eAAQ,MAAOE,GAIf,MAAMC,GAAiB,eAAS,IAAMrH,EAAkB,CACpDC,aAAcA,EAAaS,MAC3BvD,YAAamC,EAAOnC,YACpBK,UAAW8B,EAAO9B,UAClBC,WAAYgD,QAAQnB,EAAO7B,YAC3ByC,aAAcsB,EAAkBd,MAChCnB,YAAaA,EAAYmB,SAE7B,eAAQ,iBAAkB2G,IAC1B,MAAMC,GAAa,eAAS,KACxB,MAAM1B,EAA2B,QAAftG,EAAOzB,KAAiB,EAAI,EACxC0J,EAAUF,GAAe3G,MAAQS,EAAWT,MAAQkF,EAC1D,MAAO,CACH4B,UAAW,cAAc7C,EAAQH,EAAI+C,OACrCjK,YAAe6H,EAAUzE,MAAQpB,EAAOhC,WAAa,GAAzC,QAGpB,SAASmK,KACL5F,IAEJ,SAAS6F,KACL7F,IACAG,IACAgB,IACAM,IACAL,IAEJ,SAAS0E,KACL3E,IACAM,IAGJ,eAAM,IAAM1C,OAAOgH,OAAOtH,GAAQoH,IAElCD,KACA,eAAY,KAER,MAAMI,EAAetI,EAAYmB,QAAUQ,EAAOR,MAAM2C,OAElDyE,OAA2C/J,IAArBuC,EAAMjD,YAA4BmE,EAAkBd,QAAUJ,EAAMjD,WAC5FyK,GACAzB,EAAQ7F,OAAOF,EAAMjD,aAAa,GAElCwK,GACAF,OAGR,MAAMI,GAAO,CACTzI,SACAW,eACAV,cACA4B,aACAjB,aAAcsB,EACdwG,SAAUrG,EACVsG,SAAUrG,EACVsG,YAAaxG,GAEjBV,EAAO,CACHgB,2BACAgB,mBACAC,mBACAK,qBACAmE,gBACAC,mBACAC,kBACAtB,UACAE,OACAW,OACAE,MACAW,UAEJ,MAAMI,GAAarH,EAAMP,SAAWO,EAAMI,OACpCkH,GAAatH,EAAMuH,OACnBC,GAAa,eAASP,IAC5B,MAAO,KACH,MAAMQ,EAAiB1J,EAA+B,OAAfsJ,SAAsC,IAAfA,QAAwB,EAASA,GAAWG,KACpGE,GAAiC,OAAfJ,SAAsC,IAAfA,QAAwB,EAASA,GAAWE,MAAgB,GAC3GpH,EAAOR,MAAQ6H,EAEfA,EAAeE,QAAQ,CAACC,EAAIC,IAAWD,EAAGpI,MAAMqI,MAAQA,GACxD,MAAMC,EAAU,eAAE,KAAM,CACpBC,MAAO,kBACPC,MAAOxB,GAAW5G,MAClBqI,YAAazJ,EAAO3B,UAAYqH,EAAkB,KAClDgE,aAAc1J,EAAO1B,UAAYoH,EAAkB,MACpDuD,GACGU,EAAa,eAAE,MAAO,CAAEJ,MAAO,sBAAwBD,GAC7D,OAAO,eAAE,UAAW,CAChBM,IAAKjI,EACL4H,MAAO,CACHM,UAAU,EACV,gBAAgC,QAAf7J,EAAOzB,KAE5BA,IAAKyB,EAAOzB,IACZ,aAAc,UACduL,aAActE,EACduE,aAActE,GACf,CAACkE,EAAYT,QAK5B,MAAMc,EAAQ,CACVC,QAAS,iDACTC,UAAW,0DACXC,WAAY,yDACZC,UAAW,4DAGTC,EAAQrJ,IACV,MAAMsJ,EAAWtJ,EAAMnB,KACvB,IAAKyK,GAAgC,kBAAbA,EACpB,OAEJ,MAAMC,EAAOP,EAAMM,GACbE,EAAS,eAAE,OAAQ,CAAEC,EAAGF,IACxBG,EAAY1J,EAAM2J,OAASL,EAC3BM,EAAU,eAAE,QAAS,KAAMN,GACjC,OAAO,eAAE,MAAO,CACZf,MAAO,iBACPsB,QAAS,YACTC,KAAM,MACNC,UAAWL,GACZ,CAACE,EAASJ,KAEjBH,EAAKrJ,MAAQ,CAAEnB,KAAMmL,OAAQL,MAAOK,QAEpC,MAAMC,EAAa,CAACjK,GAASQ,QAAO0J,YAChC,MAAQjE,KAAMkE,EAAUvD,KAAMwD,GAAa5J,EACrCxB,EAAS,eAAO,SAAU,eAASsB,OAAOW,OAAO,GAAIrE,KACrD8K,EAAW,eAAO,WAAY,eAAI,IAClCC,EAAW,eAAO,WAAY,eAAI,IAClC/H,EAAe,eAAO,eAAgB,eAAI,IAC1CkH,EAAM,eAAO,MAAO,IACpBuD,EAAuB,QAAfrL,EAAOzB,IACf+M,EAAa,eAAE,SAAU,CAC3B1L,KAAM,SACN2J,MAAO,CACH,kBACCvJ,EAAO7B,YACRyC,EAAaQ,OAASuH,EAASvH,OAC/B,4BACU,OAAV8J,QAA4B,IAAVA,OAAmB,EAASA,EAAM3B,OAExD,aAAc,6BACdgC,QAASzD,EAAIF,OACA,OAAbwD,QAAkC,IAAbA,OAAsB,EAASA,MAAe,eAAEf,EAAM,CAAExK,KAAMwL,EAAQ,aAAe,eACxGG,EAAa,eAAE,SAAU,CAC3B5L,KAAM,SACN2J,MAAO,CACH,kBACCvJ,EAAO7B,YACRyC,EAAaQ,OAASsH,EAAStH,OAC/B,4BACU,OAAV8J,QAA4B,IAAVA,OAAmB,EAASA,EAAM3B,OAExD,aAAc,yBACdgC,QAASzD,EAAIb,OACA,OAAbkE,QAAkC,IAAbA,OAAsB,EAASA,MAAe,eAAEd,EAAM,CAAExK,KAAMwL,EAAQ,YAAc,gBAC7G,MAAO,CAACC,EAAYE,IAGxB,IAAIC,EAAQ,eAAgB,CACxB5L,KAAM,gBACNmB,MAAO,CACHqI,MAAO,CACHzJ,KAAMsB,OACND,QAAS,IAGjB,MAAMD,GAAO,MAAEQ,IACX,MAAMxB,EAAS,eAAO,SAAU,eAASsB,OAAOW,OAAO,GAAIrE,KACrD+C,EAAe,eAAO,eAAgB,eAAI,KAC1CC,EAAe,eAAO,eAAgB,eAAI,IAC1CmH,EAAiB,eAAO,iBAAkB,eAAI,IAC9C2D,EAAY,eAAI1K,EAAMqI,OAK5B,SAASsC,IACLD,EAAUtK,MAAQT,EAAaS,MAAMN,QAAQE,EAAMqI,OALnDrJ,EAAO7B,aACPwN,IACA,eAAMhL,EAAcgL,IAKxB,MAAMC,EAAa,eAAS,KACxB,MAAMC,EAAQ7L,EAAOnC,YACfiG,EAAY,EAAI+H,EAAS,IAAjB,IACd,MAAO,CACH/H,QACAgI,MAAOJ,EAAUtK,MAAM2K,cAGzBC,EAAW,IAAMhL,EAAMqI,QAAUzI,EAAaQ,MAC9C6K,EAAY,KACd,MAAMxL,EAAMP,KAAKC,KAAK4H,EAAe3G,OAC/BZ,EAAMN,KAAKG,MAAM0H,EAAe3G,MAAQpB,EAAOnC,aAC/CqO,EAAUvL,EAAaS,MAAM+K,MAAM1L,EAAKD,GAC9C,OAAO0L,EAAQ7K,SAASL,EAAMqI,QAE5B+C,EAAS,IAAMpL,EAAMqI,QAAU1I,EAAaS,MAAMlB,KAAKC,KAAK4H,EAAe3G,OAAS,GACpFiL,EAAS,IAAMrL,EAAMqI,QACvB1I,EAAaS,MAAMlB,KAAKG,MAAM0H,EAAe3G,MAAQpB,EAAOnC,cAChE,MAAO,KACH,IAAI4B,EACJ,OAAO,eAAE,KAAM,CACX+J,MAAOoC,EAAWxK,MAClBmI,MAAO,CACH+C,iBAAiB,EACjB,0BAA2BN,IAC3B,2BAA4BC,IAC5B,wBAAyBG,IACzB,wBAAyBC,MAEL,QAAxB5M,EAAK+B,EAAMP,eAA4B,IAAPxB,OAAgB,EAASA,EAAG8M,KAAK/K,S,kFCzpB5C+H,MAAM,qB,GAGlCA,MAAM,U,gPAdb,eAkCoB,GAjCViD,QAAS,EAAAC,S,kDAAA,EAAAA,SAAQ,IACxBjD,MAAK,eAAE,C,6CAIRkD,MAAA,GACAC,gBAAA,GACChC,MAAO,EAAAiC,WACPC,QAAO,kBAAQ,EAAAC,a,yBAEhB,iBAEM,CAFK,EAAAC,UAAUhJ,OAAM,G,iBAA3B,eAEM,MAFN,EAEM,eADD,EAAAiJ,aAAY,GAAO,IAAC,eAAG,EAAAD,UAAUhJ,QAAM,I,sBAE5C,eAmBM,MAnBN,EAmBM,CAbI,EAAAgJ,UAAUhJ,OAAM,G,iBALxB,eAgBW,G,MAfTwF,MAAM,gBACL0D,gBAAe,EAChBrD,IAAI,a,WACK,EAAAoD,a,qDAAA,EAAAA,aAAY,IAEpB7O,YAAY,EACZI,IAAK,EAAA2O,SAAS3O,K,CAMJwK,OAAM,gBACf,gBADmB9I,EACnB,EADmBA,YACnB,MAD8B,CACZA,EAAc,G,iBAAhC,eAAqC,Y,kDALhC,iBAAkC,E,mBAAzC,eAGQ,2BAHuB,EAAA8M,WAAS,SAAzBI,EAAMC,G,wBAArB,eAGQ,GAHmCtK,IAAKsK,GAAK,C,wBAEnD,iBAAmC,CAAnC,eAAmC,GAA3BC,IAAKF,EAAKG,S,4FAMtB,eAAqC,G,MAAtBD,IAAK,EAAAC,S,qEAIZ,EAAAC,U,wCAAZ,eAqBM,SApBJ,eAkBM,YAZI,EAAAR,UAAUhJ,OAAM,G,iBALxB,eAeW,G,MAdTwF,MAAM,gBACL0D,gBAAe,EAChBrD,IAAI,a,WACK,EAAAoD,a,qDAAA,EAAAA,aAAY,IAEpB7O,YAAY,EACZI,IAAK,EAAA2O,SAAS3O,K,CAKJwK,OAAM,gBACf,gBADmB9I,EACnB,EADmBA,YACnB,MAD8B,CACZA,EAAc,G,iBAAhC,eAAqC,Y,kDAJhC,iBAAkC,E,mBAAzC,eAEQ,2BAFuB,EAAA8M,WAAS,SAAzBI,EAAMC,G,wBAArB,eAEQ,GAFmCtK,IAAKsK,GAAK,C,wBACnD,iBAA6D,CAA7D,eAA6D,GAArDC,IAAKF,EAAKG,QAAS/D,MAAM,qB,4FAMrC,eAAqC,G,MAAtB8D,IAAK,EAAAC,S,uGAWX,GACbE,WAAY,CACVzM,SAAA,OACA0K,MAAA,OACAR,WAAA,QAEFjK,MAAO,CAAC,YAAa,UAAW,aAChCyM,OAAQ,CAAC,UACTC,QAAS,CAAEC,GAAA,QACXlF,KATa,WAUX,MAAO,CACLgE,UAAU,EACVO,aAAc,KACdJ,WAAY,KAGhBgB,QAhBa,WAgBH,WACRvO,KAAKoN,SAAWpN,KAAKkO,UAErBvO,YAAW,WACT,EAAKgO,aAAe,EAAKD,UAAUc,WACjC,SAACtJ,GAAD,OAAOA,EAAE+I,SAAW,EAAKA,WAE3B,EAAKQ,sBACJ,MAELC,QAAS,CACPjB,SADO,WAGLzN,KAAK2O,MAAM,UAAU,IAEvBF,kBALO,WAMLzO,KAAKuN,WACH,eAAG,WAAa,IAAMvN,KAAK0N,UAAU1N,KAAK2N,cAAciB,aAG9DC,SAAU,kBACL,eAAS,CACVC,aAAc,SAACC,GAAD,OAAWA,EAAMC,IAAIF,cACnCjB,SAAU,SAACkB,GAAD,OAAWA,EAAME,UAG/BC,MAAO,CACLvB,aADK,WAEH3N,KAAKyO,qBAEPrB,SAJK,WAKEpN,KAAKoN,UAAUpN,KAAKyN,c,UC5G/B,EAAO0B,OAASA,EAChB,EAAOC,UAAY,kBAEJ,U,yDCRf","file":"js/chunk-e8709bba.c22d50f2.js","sourcesContent":["/**\r\n * Vue 3 Carousel 0.1.40\r\n * (c) 2022\r\n * @license MIT\r\n */\r\nimport { defineComponent, ref, reactive, provide, onMounted, nextTick, onUnmounted, computed, watch, watchEffect, h, inject } from 'vue';\r\n\r\nconst defaultConfigs = {\r\n itemsToShow: 1,\r\n itemsToScroll: 1,\r\n modelValue: 0,\r\n transition: 300,\r\n autoplay: 0,\r\n snapAlign: 'center',\r\n wrapAround: false,\r\n pauseAutoplayOnHover: false,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n dir: 'ltr',\r\n breakpoints: undefined,\r\n};\r\n\r\n/**\r\n * return a debounced version of the function\r\n * @param fn\r\n * @param delay\r\n */\r\n// eslint-disable-next-line no-unused-vars\r\nfunction debounce(fn, delay) {\r\n let timerId;\r\n return function (...args) {\r\n if (timerId) {\r\n clearTimeout(timerId);\r\n }\r\n timerId = setTimeout(() => {\r\n fn(...args);\r\n timerId = null;\r\n }, delay);\r\n };\r\n}\r\n/**\r\n * return a throttle version of the function\r\n * Throttling\r\n *\r\n */\r\n// eslint-disable-next-line no-unused-vars\r\nfunction throttle(fn, limit) {\r\n let inThrottle;\r\n return function (...args) {\r\n const self = this;\r\n if (!inThrottle) {\r\n fn.apply(self, args);\r\n inThrottle = true;\r\n setTimeout(() => (inThrottle = false), limit);\r\n }\r\n };\r\n}\r\nfunction getSlidesVNodes(vNode) {\r\n var _a, _b, _c;\r\n // Return empty array if there's any node\r\n if (!vNode)\r\n return [];\r\n // Check if the Slides components are added directly without v-for (#72)\r\n if (((_b = (_a = vNode[0]) === null || _a === void 0 ? void 0 : _a.type) === null || _b === void 0 ? void 0 : _b.name) === 'CarouselSlide')\r\n return vNode;\r\n return ((_c = vNode[0]) === null || _c === void 0 ? void 0 : _c.children) || [];\r\n}\r\nfunction getMaxSlideIndex(config, slidesCount) {\r\n if (config.wrapAround) {\r\n return slidesCount - 1;\r\n }\r\n switch (config.snapAlign) {\r\n case 'start':\r\n return slidesCount - config.itemsToShow;\r\n case 'end':\r\n return slidesCount - 1;\r\n case 'center':\r\n case 'center-odd':\r\n return slidesCount - Math.ceil(config.itemsToShow / 2);\r\n case 'center-even':\r\n return slidesCount - Math.ceil(config.itemsToShow / 2);\r\n default:\r\n return 0;\r\n }\r\n}\r\nfunction getMinSlideIndex(config) {\r\n if (config.wrapAround) {\r\n return 0;\r\n }\r\n switch (config.snapAlign) {\r\n case 'start':\r\n return 0;\r\n case 'end':\r\n return config.itemsToShow - 1;\r\n case 'center':\r\n case 'center-odd':\r\n return Math.floor((config.itemsToShow - 1) / 2);\r\n case 'center-even':\r\n return Math.floor((config.itemsToShow - 2) / 2);\r\n default:\r\n return 0;\r\n }\r\n}\r\nfunction getCurrentSlideIndex(config, val, max, min) {\r\n if (config.wrapAround) {\r\n return val;\r\n }\r\n return Math.min(Math.max(val, min), max);\r\n}\r\nfunction getSlidesToScroll({ slidesBuffer, currentSlide, snapAlign, itemsToShow, wrapAround, slidesCount, }) {\r\n let output = slidesBuffer.indexOf(currentSlide);\r\n if (output === -1) {\r\n output = slidesBuffer.indexOf(Math.ceil(currentSlide));\r\n }\r\n if (snapAlign === 'center' || snapAlign === 'center-odd') {\r\n output -= (itemsToShow - 1) / 2;\r\n }\r\n else if (snapAlign === 'center-even') {\r\n output -= (itemsToShow - 2) / 2;\r\n }\r\n else if (snapAlign === 'end') {\r\n output -= itemsToShow - 1;\r\n }\r\n if (!wrapAround) {\r\n const max = slidesCount - itemsToShow;\r\n const min = 0;\r\n output = Math.max(Math.min(output, max), min);\r\n }\r\n return output;\r\n}\r\n\r\nvar Carousel = defineComponent({\r\n name: 'Carousel',\r\n props: {\r\n // count of items to showed per view\r\n itemsToShow: {\r\n default: defaultConfigs.itemsToShow,\r\n type: Number,\r\n },\r\n // count of items to be scrolled\r\n itemsToScroll: {\r\n default: defaultConfigs.itemsToScroll,\r\n type: Number,\r\n },\r\n // control infinite scrolling mode\r\n wrapAround: {\r\n default: defaultConfigs.wrapAround,\r\n type: Boolean,\r\n },\r\n // control snap position alignment\r\n snapAlign: {\r\n default: defaultConfigs.snapAlign,\r\n validator(value) {\r\n // The value must match one of these strings\r\n return ['start', 'end', 'center', 'center-even', 'center-odd'].includes(value);\r\n },\r\n },\r\n // sliding transition time in ms\r\n transition: {\r\n default: defaultConfigs.transition,\r\n type: Number,\r\n },\r\n // an object to store breakpoints\r\n breakpoints: {\r\n default: defaultConfigs.breakpoints,\r\n type: Object,\r\n },\r\n // time to auto advance slides in ms\r\n autoplay: {\r\n default: defaultConfigs.autoplay,\r\n type: Number,\r\n },\r\n // pause autoplay when mouse hover over the carousel\r\n pauseAutoplayOnHover: {\r\n default: defaultConfigs.pauseAutoplayOnHover,\r\n type: Boolean,\r\n },\r\n // slide number number of initial slide\r\n modelValue: {\r\n default: undefined,\r\n type: Number,\r\n },\r\n // toggle mouse dragging.\r\n mouseDrag: {\r\n default: defaultConfigs.mouseDrag,\r\n type: Boolean,\r\n },\r\n // toggle mouse dragging.\r\n touchDrag: {\r\n default: defaultConfigs.touchDrag,\r\n type: Boolean,\r\n },\r\n // control snap position alignment\r\n dir: {\r\n default: defaultConfigs.dir,\r\n validator(value) {\r\n // The value must match one of these strings\r\n return ['rtl', 'ltr'].includes(value);\r\n },\r\n },\r\n // an object to pass all settings\r\n settings: {\r\n default() {\r\n return {};\r\n },\r\n type: Object,\r\n },\r\n },\r\n setup(props, { slots, emit, expose }) {\r\n var _a;\r\n const root = ref(null);\r\n const slides = ref([]);\r\n const slidesBuffer = ref([]);\r\n const slideWidth = ref(0);\r\n const slidesCount = ref(1);\r\n const autoplayTimer = ref(null);\r\n const transitionTimer = ref(null);\r\n let breakpoints = ref({});\r\n // generate carousel configs\r\n let __defaultConfig = Object.assign({}, defaultConfigs);\r\n // current config\r\n const config = reactive(Object.assign({}, __defaultConfig));\r\n // slides\r\n const currentSlideIndex = ref((_a = config.modelValue) !== null && _a !== void 0 ? _a : 0);\r\n const prevSlideIndex = ref(0);\r\n const middleSlideIndex = ref(0);\r\n const maxSlideIndex = ref(0);\r\n const minSlideIndex = ref(0);\r\n provide('config', config);\r\n provide('slidesBuffer', slidesBuffer);\r\n provide('slidesCount', slidesCount);\r\n provide('currentSlide', currentSlideIndex);\r\n provide('maxSlide', maxSlideIndex);\r\n provide('minSlide', minSlideIndex);\r\n /**\r\n * Configs\r\n */\r\n function initDefaultConfigs() {\r\n // generate carousel configs\r\n const mergedConfigs = Object.assign(Object.assign({}, props), props.settings);\r\n // Set breakpoints\r\n breakpoints = ref(Object.assign({}, mergedConfigs.breakpoints));\r\n // remove extra values\r\n __defaultConfig = Object.assign(Object.assign({}, mergedConfigs), { settings: undefined, breakpoints: undefined });\r\n bindConfigs(__defaultConfig);\r\n }\r\n function updateBreakpointsConfigs() {\r\n const breakpointsArray = Object.keys(breakpoints.value)\r\n .map((key) => Number(key))\r\n .sort((a, b) => +b - +a);\r\n let newConfig = Object.assign({}, __defaultConfig);\r\n breakpointsArray.some((breakpoint) => {\r\n const isMatched = window.matchMedia(`(min-width: ${breakpoint}px)`).matches;\r\n if (isMatched) {\r\n newConfig = Object.assign(Object.assign({}, newConfig), breakpoints.value[breakpoint]);\r\n return true;\r\n }\r\n return false;\r\n });\r\n bindConfigs(newConfig);\r\n }\r\n function bindConfigs(newConfig) {\r\n for (let key in newConfig) {\r\n // @ts-ignore\r\n config[key] = newConfig[key];\r\n }\r\n }\r\n const handleWindowResize = debounce(() => {\r\n if (breakpoints.value) {\r\n updateBreakpointsConfigs();\r\n updateSlidesData();\r\n }\r\n updateSlideWidth();\r\n }, 16);\r\n /**\r\n * Setup functions\r\n */\r\n function updateSlideWidth() {\r\n if (!root.value)\r\n return;\r\n const rect = root.value.getBoundingClientRect();\r\n slideWidth.value = rect.width / config.itemsToShow;\r\n }\r\n function updateSlidesData() {\r\n slidesCount.value = Math.max(slides.value.length, 1);\r\n if (slidesCount.value <= 0)\r\n return;\r\n middleSlideIndex.value = Math.ceil((slidesCount.value - 1) / 2);\r\n maxSlideIndex.value = getMaxSlideIndex(config, slidesCount.value);\r\n minSlideIndex.value = getMinSlideIndex(config);\r\n currentSlideIndex.value = getCurrentSlideIndex(config, currentSlideIndex.value, maxSlideIndex.value, minSlideIndex.value);\r\n }\r\n function updateSlidesBuffer() {\r\n const slidesArray = [...Array(slidesCount.value).keys()];\r\n const shouldShiftSlides = config.wrapAround && config.itemsToShow + 1 <= slidesCount.value;\r\n if (shouldShiftSlides) {\r\n const buffer = config.itemsToShow !== 1\r\n ? Math.round((slidesCount.value - config.itemsToShow) / 2)\r\n : 0;\r\n let shifts = buffer - currentSlideIndex.value;\r\n if (config.snapAlign === 'end') {\r\n shifts += Math.floor(config.itemsToShow - 1);\r\n }\r\n else if (config.snapAlign === 'center' || config.snapAlign === 'center-odd') {\r\n shifts++;\r\n }\r\n // Check shifting directions\r\n if (shifts < 0) {\r\n for (let i = shifts; i < 0; i++) {\r\n slidesArray.push(Number(slidesArray.shift()));\r\n }\r\n }\r\n else {\r\n for (let i = 0; i < shifts; i++) {\r\n slidesArray.unshift(Number(slidesArray.pop()));\r\n }\r\n }\r\n }\r\n slidesBuffer.value = slidesArray;\r\n }\r\n onMounted(() => {\r\n if (breakpoints.value) {\r\n updateBreakpointsConfigs();\r\n updateSlidesData();\r\n }\r\n nextTick(() => setTimeout(updateSlideWidth, 16));\r\n if (config.autoplay && config.autoplay > 0) {\r\n initializeAutoplay();\r\n }\r\n window.addEventListener('resize', handleWindowResize, { passive: true });\r\n });\r\n onUnmounted(() => {\r\n if (transitionTimer.value) {\r\n clearTimeout(transitionTimer.value);\r\n }\r\n resetAutoplayTimer(false);\r\n });\r\n /**\r\n * Carousel Event listeners\r\n */\r\n let isTouch = false;\r\n const startPosition = { x: 0, y: 0 };\r\n const endPosition = { x: 0, y: 0 };\r\n const dragged = reactive({ x: 0, y: 0 });\r\n const isDragging = ref(false);\r\n const isHover = ref(false);\r\n const handleMouseEnter = () => {\r\n isHover.value = true;\r\n };\r\n const handleMouseLeave = () => {\r\n isHover.value = false;\r\n };\r\n function handleDragStart(event) {\r\n isTouch = event.type === 'touchstart';\r\n if ((!isTouch && event.button !== 0) || isSliding.value) {\r\n return;\r\n }\r\n isDragging.value = true;\r\n startPosition.x = isTouch ? event.touches[0].clientX : event.clientX;\r\n startPosition.y = isTouch ? event.touches[0].clientY : event.clientY;\r\n document.addEventListener(isTouch ? 'touchmove' : 'mousemove', handleDragging, true);\r\n document.addEventListener(isTouch ? 'touchend' : 'mouseup', handleDragEnd, true);\r\n }\r\n const handleDragging = throttle((event) => {\r\n endPosition.x = isTouch ? event.touches[0].clientX : event.clientX;\r\n endPosition.y = isTouch ? event.touches[0].clientY : event.clientY;\r\n const deltaX = endPosition.x - startPosition.x;\r\n const deltaY = endPosition.y - startPosition.y;\r\n dragged.y = deltaY;\r\n dragged.x = deltaX;\r\n }, 16);\r\n function handleDragEnd() {\r\n isDragging.value = false;\r\n const direction = config.dir === 'rtl' ? -1 : 1;\r\n const tolerance = Math.sign(dragged.x) * 0.4;\r\n const draggedSlides = Math.round(dragged.x / slideWidth.value + tolerance) * direction;\r\n let newSlide = getCurrentSlideIndex(config, currentSlideIndex.value - draggedSlides, maxSlideIndex.value, minSlideIndex.value);\r\n // Prevent clicking if there is clicked slides\r\n if (draggedSlides) {\r\n const captureClick = (e) => {\r\n e.stopPropagation();\r\n window.removeEventListener('click', captureClick, true);\r\n };\r\n window.addEventListener('click', captureClick, true);\r\n }\r\n slideTo(newSlide);\r\n dragged.x = 0;\r\n dragged.y = 0;\r\n document.removeEventListener(isTouch ? 'touchmove' : 'mousemove', handleDragging, true);\r\n document.removeEventListener(isTouch ? 'touchend' : 'mouseup', handleDragEnd, true);\r\n }\r\n /**\r\n * Autoplay\r\n */\r\n function initializeAutoplay() {\r\n autoplayTimer.value = setInterval(() => {\r\n if (config.pauseAutoplayOnHover && isHover.value) {\r\n return;\r\n }\r\n next();\r\n }, config.autoplay);\r\n }\r\n function resetAutoplayTimer(restart = true) {\r\n if (!autoplayTimer.value) {\r\n return;\r\n }\r\n clearInterval(autoplayTimer.value);\r\n if (restart) {\r\n initializeAutoplay();\r\n }\r\n }\r\n /**\r\n * Navigation function\r\n */\r\n const isSliding = ref(false);\r\n function slideTo(slideIndex, mute = false) {\r\n if (!slideIndex && slideIndex !==0) {\r\n console.log(\"!slideIndex\");\r\n return;\r\n }\r\n // console.log(\"slideTo\", slideIndex, slidesCount.value, currentSlideIndex.value);\r\n resetAutoplayTimer();\r\n if (currentSlideIndex.value === slideIndex || isSliding.value) {\r\n return;\r\n }\r\n if (Math.abs(slideIndex) === Infinity)\r\n return;\r\n const lastSlideIndex = slidesCount.value - 1;\r\n if (slideIndex > lastSlideIndex) {\r\n return slideTo(slideIndex - slidesCount.value);\r\n }\r\n if (slideIndex < 0) {\r\n return slideTo(slideIndex + slidesCount.value);\r\n }\r\n isSliding.value = true;\r\n prevSlideIndex.value = currentSlideIndex.value;\r\n currentSlideIndex.value = slideIndex;\r\n if (!mute) {\r\n emit('update:modelValue', currentSlideIndex.value);\r\n }\r\n transitionTimer.value = setTimeout(() => {\r\n if (config.wrapAround)\r\n updateSlidesBuffer();\r\n isSliding.value = false;\r\n }, config.transition);\r\n }\r\n function next() {\r\n let nextSlide = currentSlideIndex.value + config.itemsToScroll;\r\n if (!config.wrapAround) {\r\n nextSlide = Math.min(nextSlide, maxSlideIndex.value);\r\n }\r\n slideTo(nextSlide);\r\n }\r\n function prev() {\r\n let prevSlide = currentSlideIndex.value - config.itemsToScroll;\r\n if (!config.wrapAround) {\r\n prevSlide = Math.max(prevSlide, minSlideIndex.value);\r\n }\r\n slideTo(prevSlide);\r\n }\r\n const nav = { slideTo, next, prev };\r\n provide('nav', nav);\r\n /**\r\n * Track style\r\n */\r\n const slidesToScroll = computed(() => getSlidesToScroll({\r\n slidesBuffer: slidesBuffer.value,\r\n itemsToShow: config.itemsToShow,\r\n snapAlign: config.snapAlign,\r\n wrapAround: Boolean(config.wrapAround),\r\n currentSlide: currentSlideIndex.value,\r\n slidesCount: slidesCount.value,\r\n }));\r\n provide('slidesToScroll', slidesToScroll);\r\n const trackStyle = computed(() => {\r\n const direction = config.dir === 'rtl' ? -1 : 1;\r\n const xScroll = slidesToScroll.value * slideWidth.value * direction;\r\n return {\r\n transform: `translateX(${dragged.x - xScroll}px)`,\r\n transition: `${isSliding.value ? config.transition : 0}ms`,\r\n };\r\n });\r\n function initCarousel() {\r\n initDefaultConfigs();\r\n }\r\n function restartCarousel() {\r\n initDefaultConfigs();\r\n updateBreakpointsConfigs();\r\n updateSlidesData();\r\n updateSlidesBuffer();\r\n updateSlideWidth();\r\n }\r\n function updateCarousel() {\r\n updateSlidesData();\r\n updateSlidesBuffer();\r\n }\r\n // Update the carousel on props change\r\n watch(() => Object.values(props), restartCarousel);\r\n // Init carousel\r\n initCarousel();\r\n watchEffect(() => {\r\n // Handel when slides added/removed\r\n const needToUpdate = slidesCount.value !== slides.value.length;\r\n // const currentSlideUpdated = props.modelValue && props.modelValue !== 0 && props.modelValue !== undefined && currentSlideIndex.value !== props.modelValue;\r\n const currentSlideUpdated = props.modelValue !== undefined && currentSlideIndex.value !== props.modelValue;\r\n if (currentSlideUpdated) {\r\n slideTo(Number(props.modelValue), true);\r\n }\r\n if (needToUpdate) {\r\n updateCarousel();\r\n }\r\n });\r\n const data = {\r\n config,\r\n slidesBuffer,\r\n slidesCount,\r\n slideWidth,\r\n currentSlide: currentSlideIndex,\r\n maxSlide: maxSlideIndex,\r\n minSlide: minSlideIndex,\r\n middleSlide: middleSlideIndex,\r\n };\r\n expose({\r\n updateBreakpointsConfigs,\r\n updateSlidesData,\r\n updateSlideWidth,\r\n updateSlidesBuffer,\r\n initCarousel,\r\n restartCarousel,\r\n updateCarousel,\r\n slideTo,\r\n next,\r\n prev,\r\n nav,\r\n data,\r\n });\r\n const slotSlides = slots.default || slots.slides;\r\n const slotAddons = slots.addons;\r\n const slotsProps = reactive(data);\r\n return () => {\r\n const slidesElements = getSlidesVNodes(slotSlides === null || slotSlides === void 0 ? void 0 : slotSlides(slotsProps));\r\n const addonsElements = (slotAddons === null || slotAddons === void 0 ? void 0 : slotAddons(slotsProps)) || [];\r\n slides.value = slidesElements;\r\n // Bind slide order\r\n slidesElements.forEach((el, index) => (el.props.index = index));\r\n const trackEl = h('ol', {\r\n class: 'carousel__track',\r\n style: trackStyle.value,\r\n onMousedown: config.mouseDrag ? handleDragStart : null,\r\n onTouchstart: config.touchDrag ? handleDragStart : null,\r\n }, slidesElements);\r\n const viewPortEl = h('div', { class: 'carousel__viewport' }, trackEl);\r\n return h('section', {\r\n ref: root,\r\n class: {\r\n carousel: true,\r\n 'carousel--rtl': config.dir === 'rtl',\r\n },\r\n dir: config.dir,\r\n 'aria-label': 'Gallery',\r\n onMouseenter: handleMouseEnter,\r\n onMouseleave: handleMouseLeave,\r\n }, [viewPortEl, addonsElements]);\r\n };\r\n },\r\n});\r\n\r\nconst icons = {\r\n arrowUp: 'M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z',\r\n arrowDown: 'M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z',\r\n arrowRight: 'M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z',\r\n arrowLeft: 'M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z',\r\n};\r\n\r\nconst Icon = (props) => {\r\n const iconName = props.name;\r\n if (!iconName || typeof iconName !== 'string') {\r\n return;\r\n }\r\n const path = icons[iconName];\r\n const pathEl = h('path', { d: path });\r\n const iconTitle = props.title || iconName;\r\n const titleEl = h('title', null, iconName);\r\n return h('svg', {\r\n class: 'carousel__icon',\r\n viewBox: '0 0 24 24',\r\n role: 'img',\r\n ariaLabel: iconTitle,\r\n }, [titleEl, pathEl]);\r\n};\r\nIcon.props = { name: String, title: String };\r\n\r\nconst Navigation = (props, { slots, attrs }) => {\r\n const { next: slotNext, prev: slotPrev } = slots;\r\n const config = inject('config', reactive(Object.assign({}, defaultConfigs)));\r\n const maxSlide = inject('maxSlide', ref(1));\r\n const minSlide = inject('minSlide', ref(1));\r\n const currentSlide = inject('currentSlide', ref(1));\r\n const nav = inject('nav', {});\r\n const isRTL = config.dir === 'rtl';\r\n const prevButton = h('button', {\r\n type: 'button',\r\n class: [\r\n 'carousel__prev',\r\n !config.wrapAround &&\r\n currentSlide.value <= minSlide.value &&\r\n 'carousel__prev--in-active',\r\n attrs === null || attrs === void 0 ? void 0 : attrs.class,\r\n ],\r\n 'aria-label': `Navigate to previous slide`,\r\n onClick: nav.prev,\r\n }, (slotPrev === null || slotPrev === void 0 ? void 0 : slotPrev()) || h(Icon, { name: isRTL ? 'arrowRight' : 'arrowLeft' }));\r\n const nextButton = h('button', {\r\n type: 'button',\r\n class: [\r\n 'carousel__next',\r\n !config.wrapAround &&\r\n currentSlide.value >= maxSlide.value &&\r\n 'carousel__next--in-active',\r\n attrs === null || attrs === void 0 ? void 0 : attrs.class,\r\n ],\r\n 'aria-label': `Navigate to next slide`,\r\n onClick: nav.next,\r\n }, (slotNext === null || slotNext === void 0 ? void 0 : slotNext()) || h(Icon, { name: isRTL ? 'arrowLeft' : 'arrowRight' }));\r\n return [prevButton, nextButton];\r\n};\r\n\r\nvar Slide = defineComponent({\r\n name: 'CarouselSlide',\r\n props: {\r\n index: {\r\n type: Number,\r\n default: 1,\r\n },\r\n },\r\n setup(props, { slots }) {\r\n const config = inject('config', reactive(Object.assign({}, defaultConfigs)));\r\n const slidesBuffer = inject('slidesBuffer', ref([]));\r\n const currentSlide = inject('currentSlide', ref(0));\r\n const slidesToScroll = inject('slidesToScroll', ref(0));\r\n const wrapOrder = ref(props.index);\r\n if (config.wrapAround) {\r\n updateOrder();\r\n watch(slidesBuffer, updateOrder);\r\n }\r\n function updateOrder() {\r\n wrapOrder.value = slidesBuffer.value.indexOf(props.index);\r\n }\r\n const slideStyle = computed(() => {\r\n const items = config.itemsToShow;\r\n const width = `${(1 / items) * 100}%`;\r\n return {\r\n width,\r\n order: wrapOrder.value.toString(),\r\n };\r\n });\r\n const isActive = () => props.index === currentSlide.value;\r\n const isVisible = () => {\r\n const min = Math.ceil(slidesToScroll.value);\r\n const max = Math.floor(slidesToScroll.value + config.itemsToShow);\r\n const current = slidesBuffer.value.slice(min, max);\r\n return current.includes(props.index);\r\n };\r\n const isPrev = () => props.index === slidesBuffer.value[Math.ceil(slidesToScroll.value) - 1];\r\n const isNext = () => props.index ===\r\n slidesBuffer.value[Math.floor(slidesToScroll.value + config.itemsToShow)];\r\n return () => {\r\n var _a;\r\n return h('li', {\r\n style: slideStyle.value,\r\n class: {\r\n carousel__slide: true,\r\n 'carousel__slide--active': isActive(),\r\n 'carousel__slide--visible': isVisible(),\r\n 'carousel__slide--prev': isPrev(),\r\n 'carousel__slide--next': isNext(),\r\n },\r\n }, (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots));\r\n };\r\n },\r\n});\r\n\r\nconst Pagination = () => {\r\n const maxSlide = inject('maxSlide', ref(1));\r\n const minSlide = inject('minSlide', ref(1));\r\n const currentSlide = inject('currentSlide', ref(1));\r\n const nav = inject('nav', {});\r\n function handleButtonClick(slideNumber) {\r\n nav.slideTo(slideNumber);\r\n }\r\n const isActive = (slide) => {\r\n const val = currentSlide.value;\r\n return (val === slide ||\r\n (val > maxSlide.value && slide >= maxSlide.value) ||\r\n (val < minSlide.value && slide <= minSlide.value));\r\n };\r\n const children = [];\r\n for (let slide = minSlide.value; slide < maxSlide.value + 1; slide++) {\r\n const button = h('button', {\r\n type: 'button',\r\n class: {\r\n 'carousel__pagination-button': true,\r\n 'carousel__pagination-button--active': isActive(slide),\r\n },\r\n 'aria-label': `Navigate to slide ${slide + 1}`,\r\n onClick: () => handleButtonClick(slide),\r\n });\r\n const item = h('li', { class: 'carousel__pagination-item', key: slide }, button);\r\n children.push(item);\r\n }\r\n return h('ol', { class: 'carousel__pagination' }, children);\r\n};\r\n\r\nexport { Carousel, Icon, Navigation, Pagination, Slide };\r\n","\r\n\r\n\r\n\r\n\r\n","import { render } from \"./p-img.vue?vue&type=template&id=78569df0&scoped=true\"\nimport script from \"./p-img.vue?vue&type=script&lang=js\"\nexport * from \"./p-img.vue?vue&type=script&lang=js\"\n\nimport \"./p-img.vue?vue&type=style&index=0&id=78569df0&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-78569df0\"\n\nexport default script","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./p-img.vue?vue&type=style&index=0&id=78569df0&scoped=true&lang=css\""],"sourceRoot":""}