UNPKG

@visitscotland/component-library

Version:
1 lines 7.66 kB
(self.webpackChunk_visitscotland_component_library=self.webpackChunk_visitscotland_component_library||[]).push([[680],{5021:function(e,t,i){"use strict";i(6033)},6033:function(e,t,i){"use strict";var s=i(85072),r=i.n(s),n=i(97825),a=i.n(n),l=i(77659),c=i.n(l),u=i(55056),o=i.n(u),d=i(10540),h=i.n(d),f=i(41113),v=i.n(f),g=i(98155),P=i.n(g),p={};p.styleTagTransform=v(),p.setAttributes=o(),p.insert=c().bind(null,"head"),p.domAPI=a(),p.insertStyleElement=h(),r()(P(),p),P()&&P().locals&&P().locals},9931:function(e,t,i){"use strict";i.d(t,{X:function(){return s.X}});var s=i(54907)},27884:function(e,t,i){"use strict";var s=i(43990),r=i(11438);t.A={name:"VsCarousel",status:"prototype",release:"0.0.1",components:{VsContainer:r.T$,VsRow:r.AQ,VsCol:r.Il,VsButton:s.A},provide:function(){var e=this,t={},i=this.activeSlides;return Object.keys(this.slidesPerPage).forEach((function(i){var s=12/e.slidesPerPage[i];t[i]=s})),{slideCols:t,visibleSlides:i}},props:{prevText:{type:String,default:"Previous slide"},nextText:{type:String,default:"Next slide"},slidesXs:{type:Number,default:1},slidesSm:{type:Number,default:2},slidesMd:{type:Number,default:3},slidesLg:{type:Number,default:4}},data:function(){return{totalSlides:null,currentPage:0,maxPages:1,nextDisabled:!1,prevDisabled:!0,currentWidth:"lg",activeSlides:[],remainderOffset:0,navigating:!1}},computed:{slidesPerPage:function(){var e={};return e.lg=this.slidesLg,e.md=this.slidesMd,e.sm=this.slidesSm,e.xs=this.slidesXs,e},trackOffset:function(){return this.remainderOffset?"-".concat(100*(this.currentPage-1)+this.remainderOffset,"%"):"-".concat(100*this.currentPage,"%")}},mounted:function(){var e=this;window.addEventListener("resize",(function(){e.setActivePage(),e.sliderNavigate(null,e.currentPage)})),this.defineActiveSlides(),this.initNavigation()},methods:{defineActiveSlides:function(e){var t=this;this.calcViewport(),this.activeSlides.length=0;var i=this.$refs.carousel.getElementsByClassName("vs-carousel-slide__card"),s=0;i.length>0&&Array.from(i).forEach((function(i,r){var n=t.currentPage*t.slidesPerPage[t.currentWidth],a=parseInt(t.currentPage*t.slidesPerPage[t.currentWidth],10)+parseInt(t.slidesPerPage[t.currentWidth],10);e&&void 0!==e?r>=t.totalSlides-t.slidesPerPage[t.currentWidth]&&t.activeSlides.push(r):r>=n&&r<a&&t.activeSlides.push(r),s+=1})),this.totalSlides=s,this.maxPages=Math.ceil(s/this.slidesPerPage[this.currentWidth])},calcViewport:function(){window.matchMedia("(min-width: 1200px)").matches?this.currentWidth="lg":window.matchMedia("(min-width: 992px)").matches?this.currentWidth="md":window.matchMedia("(min-width: 576px)").matches?this.currentWidth="sm":this.currentWidth="xs"},setActivePage:function(){var e,t;e="xs"===this.currentWidth&&1===this.slidesXs?this.currentPage+1:this.currentPage*this.slidesPerPage[this.currentWidth]+1,this.calcViewport(),t="xs"===this.currentWidth&&1===this.slidesXs?e:Math.ceil(e/this.slidesPerPage[this.currentWidth]),this.currentPage=t-1,this.sliderNavigate(null,this.currentPage)},sliderNavigate:function(e,t){var i=this,s=this.activeSlides[0];if(e&&e.preventDefault(),!this.navigating){this.navigating=!0,setTimeout((function(){i.navigating=!1}),250),"next"===t?this.currentPage+1<this.maxPages&&(this.currentPage+=1):"prev"===t?this.currentPage>0&&(this.currentPage-=1):this.currentPage=t,this.initNavigation();var r=this.slidesPerPage[this.currentWidth]*(this.currentPage+1),n=!1;if(r>this.totalSlides?(this.remainderOffset=this.checkRemainder(r),n=!0):this.remainderOffset=0,this.defineActiveSlides(n),"next"===t){var a=this.getFirstActiveSlide();if(a){var l=a.querySelectorAll("a")[0];setTimeout((function(){l.focus()}),250)}}else if("prev"===t&&this.currentPage>=0){var c=this.$refs.carousel.querySelectorAll(".card")[s-1];if(c){var u=c.querySelectorAll("a")[0];setTimeout((function(){u.focus()}),250)}}}},getFirstActiveSlide:function(){return this.$refs.carousel.querySelectorAll(".card")[this.currentPage*this.slidesPerPage[this.currentWidth]]},getLastActiveSlide:function(){return this.$refs.carousel.querySelectorAll(".card")[this.currentPage*this.slidesPerPage[this.currentWidth]+this.slidesPerPage[this.currentWidth]-1]},initNavigation:function(){this.currentPage+1>=this.totalSlides/this.slidesPerPage[this.currentWidth]?this.nextDisabled=!0:this.nextDisabled=!1,this.currentPage>0?this.prevDisabled=!1:this.prevDisabled=!0},checkRemainder:function(e){var t=this.slidesPerPage[this.currentWidth]-(e-this.totalSlides);return 100/this.slidesPerPage[this.currentWidth]*t}}}},54907:function(e,t,i){"use strict";i.d(t,{X:function(){return f}});var s=i(20641),r=i(90033),n=i(53751),a={class:"vs-carousel","data-test":"vs-carousel",ref:"carousel"},l={class:"slider"},c={key:2,class:"vs-carousel__navigation"},u=["onClick","onKeypress","data-test"],o={class:"visually-hidden"},d={key:0,class:"vs-carousel__mobile-pagination-wrapper"},h={class:"vs-carousel__mobile-pagination","data-test":"vs-carousel__mobile-pagination"};function f(e,t,i,f,v,g){var P=(0,s.g2)("VsButton"),p=(0,s.g2)("VsRow"),m=(0,s.g2)("VsCol"),y=(0,s.g2)("VsContainer");return(0,s.uX)(),(0,s.CE)("section",a,[(0,s.bF)(y,null,{default:(0,s.k6)((function(){return[(0,s.bF)(p,null,{default:(0,s.k6)((function(){return[(0,s.bF)(m,{cols:"10",offset:"1",sm:"12","offset-sm":"0",class:"position-relative"},{default:(0,s.k6)((function(){return[(0,s.Lk)("div",l,[v.prevDisabled?(0,s.Q3)("",!0):((0,s.uX)(),(0,s.Wv)(P,{key:0,"icon-only":"",class:"vs-carousel__control vs-carousel__control--prev",onClick:t[0]||(t[0]=function(e){return g.sliderNavigate(e,"prev")}),onKeypress:t[1]||(t[1]=function(e){return g.sliderNavigate(e,"prev",!0)}),icon:"fa-regular fa-arrow-left",ref:"prevButton"},{default:(0,s.k6)((function(){return[(0,s.eW)((0,r.toDisplayString)(i.prevText),1)]})),_:1},512)),(0,s.bF)(p,{class:"vs-carousel__track",style:(0,r.normalizeStyle)({transform:"translateX(".concat(g.trackOffset,")")})},{default:(0,s.k6)((function(){return[(0,s.RG)(e.$slots,"default")]})),_:3},8,["style"]),v.nextDisabled?(0,s.Q3)("",!0):((0,s.uX)(),(0,s.Wv)(P,{key:1,"icon-only":"",class:"vs-carousel__control vs-carousel__control--next",onKeypress:t[2]||(t[2]=function(e){return g.sliderNavigate(e,"next",!0)}),onClick:t[3]||(t[3]=function(e){return g.sliderNavigate(e,"next")}),icon:"fa-regular fa-arrow-right",ref:"nextButton"},{default:(0,s.k6)((function(){return[(0,s.eW)((0,r.toDisplayString)(i.nextText),1)]})),_:1},512)),v.totalSlides>g.slidesPerPage[v.currentWidth]?((0,s.uX)(),(0,s.CE)("ul",c,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(v.maxPages,(function(t){return(0,s.uX)(),(0,s.CE)("li",{key:t},[(0,s.Lk)("button",{type:"button",class:(0,r.normalizeClass)(["vs-carousel__navigation-item",t===v.currentPage+1?"vs-carousel__navigation-item--active":""]),onClick:(0,n.withModifiers)((function(e){return g.sliderNavigate(e,t-1)}),["prevent"]),onKeypress:(0,n.withModifiers)((function(e){return g.sliderNavigate(e,t-1,!0)}),["prevent"]),tabindex:"0","data-test":"vs-carousel__nav-".concat(t)},[(0,s.Lk)("span",o,[(0,s.RG)(e.$slots,"vs-carousel-navigate"),(0,s.eW)(" "+(0,r.toDisplayString)(t),1)])],42,u)])})),128))])):(0,s.Q3)("",!0)]),v.totalSlides>g.slidesPerPage[v.currentWidth]?((0,s.uX)(),(0,s.CE)("div",d,[(0,s.Lk)("p",h,[(0,s.eW)((0,r.toDisplayString)(v.currentPage+1)+" ",1),(0,s.RG)(e.$slots,"vs-carousel-of"),(0,s.eW)(" "+(0,r.toDisplayString)(v.totalSlides),1)])])):(0,s.Q3)("",!0)]})),_:3})]})),_:3})]})),_:3})],512)}},70680:function(e,t,i){"use strict";i.r(t);var s=i(9931),r=i(75568);i(5021);const n=(0,i(66262).A)(r.A,[["render",s.X]]);t.default=n},75568:function(e,t,i){"use strict";i.d(t,{A:function(){return s.A}});var s=i(27884)},98155:function(){}}]);