ant-design-x-vue-next
Version:
Ant Design X for Vue — community continuation aligned with @ant-design/x
2 lines (1 loc) • 2.38 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),u=require("../chunks/module-chunk.js"),$=require("ant-design-vue"),N=e.defineComponent({name:"AXSourcesCarouselCard",__name:"CarouselCard",props:{prefixCls:null,items:null,activeKey:null,className:null,style:null,onClick:{type:Function}},setup(v){const n=v,t=e.computed(()=>`${n.prefixCls}-carousel`),d=e.computed(()=>{var l;const a=((l=n.items)==null?void 0:l.findIndex(({key:s})=>s===n.activeKey))??0;return Math.max(0,a)}),c=e.ref(d.value),r=e.ref(null);e.watch(d,a=>{var l,s;c.value=a,(s=(l=r.value)==null?void 0:l.goTo)==null||s.call(l,a,!1)},{immediate:!0});const f=a=>{var l;a.url&&window.open(a.url,"_blank","noopener,noreferrer"),(l=n.onClick)==null||l.call(n,a)},p=()=>{var a,l;if(c.value>0){const s=c.value-1;c.value=s,(l=(a=r.value)==null?void 0:a.goTo)==null||l.call(a,s,!1)}},m=()=>{var l,s,o;const a=(((l=n.items)==null?void 0:l.length)||1)-1;if(c.value<a){const i=c.value+1;c.value=i,(o=(s=r.value)==null?void 0:s.goTo)==null||o.call(s,i,!1)}};return()=>{var a,l;return e.createVNode("div",{style:n.style,class:u.classnames(`${t.value}-wrapper`,n.className)},[e.createVNode("div",{class:`${t.value}-title`},[e.createVNode("div",{class:`${t.value}-btn-wrapper`},[e.createVNode("span",{class:u.classnames(`${t.value}-btn`,`${t.value}-left-btn`,{[`${t.value}-btn-disabled`]:c.value===0}),onClick:p},[e.createVNode(u.LeftOutlined,null,null)]),e.createVNode("span",{class:u.classnames(`${t.value}-btn`,`${t.value}-right-btn`,{[`${t.value}-btn-disabled`]:c.value===(((a=n.items)==null?void 0:a.length)||1)-1}),onClick:m},[e.createVNode(u.RightOutlined,null,null)])]),e.createVNode("div",{class:`${t.value}-page`},[`${c.value+1}/${((l=n.items)==null?void 0:l.length)||1}`])]),e.createVNode($.Carousel,{class:t.value,ref:r,arrows:!1,infinite:!1,dots:!1,afterChange:s=>{c.value=s}},{default:()=>{var s;return[(s=n.items)==null?void 0:s.map((o,i)=>e.createVNode("div",{key:o.key??i,class:`${t.value}-item`,onClick:()=>f(o)},[e.createVNode("div",{class:`${t.value}-item-title-wrapper`},[o.icon&&e.createVNode("span",{class:`${t.value}-item-icon`},[o.icon]),e.createVNode("span",{class:`${t.value}-item-title`},[o.title])]),o.description&&e.createVNode("div",{class:`${t.value}-item-description`},[o.description])]))]}})])}}});exports.default=N;