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