ant-design-x-vue
Version:
Craft AI-driven interfaces effortlessly
2 lines (1 loc) • 2.31 kB
JavaScript
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),s=require("../../chunks/module-chunk.js"),o=require("ant-design-vue"),i=require("../../_util/hooks/use-state.js"),w=require("../context.js"),V=require("../SilentUploader.js"),b=require("./FileListCard.js"),v=1,L=e.defineComponent({name:"AXAttachmentsFileList",__name:"FileList",props:{prefixCls:{},items:{},onRemove:{},overflow:{},upload:{},imageProps:{},listClassName:{},listStyle:{},itemClassName:{},itemStyle:{}},setup(t){const n=e.computed(()=>`${t.prefixCls}-list`),c=e.useTemplateRef("file-list-container"),[x,r]=i.default(!1),h=w.useAttachmentContextInject();e.watchEffect(()=>{r(!0),e.onWatcherCleanup(()=>{r(!1)})});const[g,u]=i.default(!1),[C,f]=i.default(!1),d=()=>{const l=c.value;l&&(t.overflow==="scrollX"?(u(Math.abs(l.scrollLeft)>=v),f(l.scrollWidth-l.clientWidth-Math.abs(l.scrollLeft)>=v)):t.overflow==="scrollY"&&(u(l.scrollTop!==0),f(l.scrollHeight-l.clientHeight!==l.scrollTop)))};e.watch([()=>t.overflow,()=>t.items.length],()=>{e.nextTick(()=>{d()})},{immediate:!0});const m=l=>{const a=c.value;a&&a.scrollTo({left:a.scrollLeft+l*a.clientWidth,behavior:"smooth"})},N=()=>{m(-1)},S=()=>{m(1)};return()=>e.createVNode("div",{class:s.classnames(n.value,{[`${n.value}-overflow-${t.overflow}`]:t.overflow,[`${n.value}-overflow-ping-start`]:g.value,[`${n.value}-overflow-ping-end`]:C.value},t.listClassName),ref:"file-list-container",onScroll:d,style:t.listStyle},[t.items.map(l=>e.createVNode(b.default,{key:l.uid,prefixCls:t.prefixCls,item:l,onRemove:t.onRemove,className:s.classnames(t.itemClassName),imageProps:t.imageProps,style:{...t.itemStyle}},null)),!h.value.disabled&&e.createVNode(V.default,{upload:t.upload,children:e.createVNode(o.Button,{class:`${n.value}-upload-btn`,type:"dashed"},{default:()=>[e.createVNode(s.PlusOutlined,{class:`${n.value}-upload-btn-icon`},null)]})},null),t.overflow==="scrollX"&&e.createVNode(e.Fragment,null,[e.createVNode(o.Button,{size:"small",shape:"circle",class:`${n.value}-prev-btn`,icon:e.createVNode(s.LeftOutlined,null,null),onClick:N},null),e.createVNode(o.Button,{size:"small",shape:"circle",class:`${n.value}-next-btn`,icon:e.createVNode(s.RightOutlined,null,null),onClick:S},null)])])}});exports.default=L;