ll-package
Version:
2 lines (1 loc) • 2.83 kB
JavaScript
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const b=require("../../../../@babel/runtime/helpers/esm/objectSpread2.js"),t=require("vue"),_=require("./Image.js"),U=require("./Preview.js"),q=require("../../_util/hooks/useMergedState.js");var I=function(n,a){var l={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&a.indexOf(r)<0&&(l[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(n);o<r.length;o++)a.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(n,r[o])&&(l[r[o]]=n[r[o]]);return l};const C=Symbol("previewGroupContext"),h={provide:n=>{t.provide(C,n)},inject:()=>t.inject(C,{isPreviewGroup:t.shallowRef(!1),previewUrls:t.computed(()=>new Map),setPreviewUrls:()=>{},current:t.ref(null),setCurrent:()=>{},setShowPreview:()=>{},setMousePosition:()=>{},registerImage:null,rootClassName:""})},y=()=>({previewPrefixCls:String,preview:{type:[Boolean,Object],default:!0},icons:{type:Object,default:()=>({})}}),A=t.defineComponent({compatConfig:{MODE:3},name:"PreviewGroup",inheritAttrs:!1,props:y(),setup(n,a){let{slots:l}=a;const r=t.computed(()=>{const e={visible:void 0,onVisibleChange:()=>{},getContainer:void 0,current:0};return typeof n.preview=="object"?_.mergeDefaultValue(n.preview,e):e}),o=t.reactive(new Map),c=t.ref(),v=t.computed(()=>r.value.visible),O=t.computed(()=>r.value.getContainer),j=(e,u)=>{var i,s;(s=(i=r.value).onVisibleChange)===null||s===void 0||s.call(i,e,u)},[p,f]=q.default(!!v.value,{value:v,onChange:j}),w=t.ref(null),S=t.computed(()=>v.value!==void 0),x=t.computed(()=>Array.from(o.keys())),g=t.computed(()=>x.value[r.value.current]),m=t.computed(()=>new Map(Array.from(o).filter(e=>{let[,{canPreview:u}]=e;return!!u}).map(e=>{let[u,{url:i}]=e;return[u,i]}))),G=function(e,u){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;o.set(e,{url:u,canPreview:i})},d=e=>{c.value=e},P=e=>{w.value=e},M=function(e,u){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;const s=()=>{o.delete(e)};return o.set(e,{url:u,canPreview:i}),s},V=e=>{e==null||e.stopPropagation(),f(!1),P(null)};return t.watch(g,e=>{d(e)},{immediate:!0,flush:"post"}),t.watchEffect(()=>{p.value&&S.value&&d(g.value)},{flush:"post"}),h.provide({isPreviewGroup:t.shallowRef(!0),previewUrls:m,setPreviewUrls:G,current:c,setCurrent:d,setShowPreview:f,setMousePosition:P,registerImage:M}),()=>{const e=I(r.value,[]);return t.createVNode(t.Fragment,null,[l.default&&l.default(),t.createVNode(U.default,b.default(b.default({},e),{},{"ria-hidden":!p.value,visible:p.value,prefixCls:n.previewPrefixCls,onClose:V,mousePosition:w.value,src:m.value.get(c.value),icons:n.icons,getContainer:O.value}),null)])}}}),E=A;exports.context=h;exports.default=E;exports.imageGroupProps=y;
;