vue-amazing-ui
Version:
An Amazing Vue3 UI Components Library, Using TypeScript.
17 lines (16 loc) • 5.97 kB
JavaScript
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),C=require("../utils/index.cjs"),n=require("swiper/vue"),a=require("swiper/modules");;/* empty css */;/* empty css */;/* empty css */;/* empty css */;/* empty css */;/* empty css */;/* empty css */;/* empty css */const b=["src","alt"],E=["src","alt"],$=["src","alt"],z=e.defineComponent({__name:"Swiper",props:{images:{default:()=>[]},width:{default:"100%"},height:{default:"100%"},mode:{default:"banner"},navigation:{type:Boolean,default:!1},effect:{default:"slide"},delay:{default:3e3},speed:{default:300},loop:{type:Boolean,default:!0},pauseOnMouseEnter:{type:Boolean,default:!1},swipe:{type:Boolean,default:!0},preloaderColor:{default:"theme"}},emits:["swiper","change"],setup(t,{emit:y}){const o=t,h=e.ref({delay:o.delay,disableOnInteraction:!1,pauseOnMouseEnter:o.pauseOnMouseEnter}),g=e.ref([a.Autoplay]),k=e.ref({delay:0,disableOnInteraction:!1}),v=e.ref([a.Navigation,a.Pagination,a.Mousewheel]),{colorPalettes:u}=C.useInject("Swiper"),w=y,c=e.computed(()=>typeof o.width=="number"?`${o.width}px`:o.width),d=e.computed(()=>typeof o.height=="number"?`${o.height}px`:o.height),B=e.computed(()=>{const r=[a.Navigation,a.Pagination,a.Autoplay],i={fade:a.EffectFade,cube:a.EffectCube,flip:a.EffectFlip,coverflow:a.EffectCoverflow,cards:a.EffectCards,creative:a.EffectCreative};return o.effect!=="slide"&&r.push(i[o.effect]),r});function p(r){w("swiper",r),o.mode==="carousel"&&o.pauseOnMouseEnter&&(r.el.onmouseenter=()=>{r.autoplay.stop()},r.el.onmouseleave=()=>{r.autoplay.start()})}function f(r){w("change",r)}function m(r){if(r.name)return r.name;{const i=r.src.split("?")[0].split("/");return i[i.length-1]}}return(r,i)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[t.mode==="banner"?(e.openBlock(),e.createBlock(e.unref(n.Swiper),e.mergeProps({key:0,class:["swiper-banner",{"swiper-no-swiping":!t.swipe}],style:`
--swiper-width: ${c.value};
--swiper-height: ${d.value};
--swiper-primary-color: ${e.unref(u)[5]};
--swiper-timing-function: cubic-bezier(0.65, 0, 0.35, 1);
`,modules:B.value,navigation:t.navigation,"slides-per-view":1,autoplay:h.value,effect:t.effect,speed:t.speed,loop:t.loop,lazy:"",onSwiper:p,onSlideChange:f},r.$attrs),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.images,(l,s)=>(e.openBlock(),e.createBlock(e.unref(n.SwiperSlide),{key:s},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.link?"a":"div"),{class:"swiper-link",href:l.link,target:l.target?l.target:"_blank"},{default:e.withCtx(()=>[e.createElementVNode("img",{class:"swiper-image",src:l.src,alt:m(l),loading:"lazy"},null,8,b)]),_:2},1032,["href","target"])),e.createElementVNode("div",{class:e.normalizeClass(`swiper-lazy-preloader swiper-lazy-preloader-${t.preloaderColor}`)},null,2)]),_:2},1024))),128))]),_:1},16,["class","style","modules","navigation","autoplay","effect","speed","loop"])):e.createCommentVNode("",!0),t.mode==="carousel"?(e.openBlock(),e.createBlock(e.unref(n.Swiper),e.mergeProps({key:1,class:"swiper-carousel swiper-no-swiping",style:`
--swiper-width: ${c.value};
--swiper-height: ${d.value};
--swiper-primary-color: ${e.unref(u)[5]};
--swiper-timing-function: linear;
`,modules:g.value,autoplay:k.value,speed:t.speed,loop:t.loop,lazy:"",onSwiper:p,onSlideChange:f},r.$attrs),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.images,(l,s)=>(e.openBlock(),e.createBlock(e.unref(n.SwiperSlide),{key:s},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.link?"a":"div"),{class:"swiper-link",href:l.link,target:l.target?l.target:"_blank"},{default:e.withCtx(()=>[e.createElementVNode("img",{class:"swiper-image",src:l.src,alt:m(l),loading:"lazy"},null,8,E)]),_:2},1032,["href","target"])),e.createElementVNode("div",{class:e.normalizeClass(`swiper-lazy-preloader swiper-lazy-preloader-${t.preloaderColor}`)},null,2)]),_:2},1024))),128))]),_:1},16,["style","modules","autoplay","speed","loop"])):e.createCommentVNode("",!0),t.mode==="broadcast"?(e.openBlock(),e.createBlock(e.unref(n.Swiper),e.mergeProps({key:2,class:"swiper-broadcast",style:`
--swiper-width: ${c.value};
--swiper-height: ${d.value};
--swiper-primary-color: ${e.unref(u)[5]};
--swiper-timing-function: cubic-bezier(0.65, 0, 0.35, 1);
`,modules:v.value,navigation:t.navigation,speed:t.speed,loop:t.loop,lazy:"",onSwiper:p,onSlideChange:f},r.$attrs),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.images,(l,s)=>(e.openBlock(),e.createBlock(e.unref(n.SwiperSlide),{key:s},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.link?"a":"div"),{class:"swiper-link",href:l.link,target:l.target?l.target:"_blank"},{default:e.withCtx(()=>[e.createElementVNode("img",{class:"swiper-image",src:l.src,alt:m(l),loading:"lazy"},null,8,$)]),_:2},1032,["href","target"])),e.createElementVNode("div",{class:e.normalizeClass(`swiper-lazy-preloader swiper-lazy-preloader-${t.preloaderColor}`)},null,2)]),_:2},1024))),128))]),_:1},16,["style","modules","navigation","speed","loop"])):e.createCommentVNode("",!0)],64))}});exports.default=z;