@shumai-one/shumai 0.3.2 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/{chunk-qmtvy2j4.js → chunk-03pw611p.js} +2 -2
- package/bin/{chunk-1nh6xgek.js → chunk-05m8w09t.js} +1 -1
- package/bin/chunk-0ark0qrm.js +1 -0
- package/bin/{chunk-arpna31w.js → chunk-1apsnd7e.js} +1 -1
- package/bin/{chunk-g2dk56e7.js → chunk-1bfrnc6b.js} +1 -1
- package/bin/chunk-21h9kgp5.js +1 -0
- package/bin/{chunk-na2nympm.js → chunk-2967rnmn.js} +1 -1
- package/bin/chunk-2errtbmb.js +2 -0
- package/bin/{chunk-hrzm70wg.js → chunk-2jnyk045.js} +1 -1
- package/bin/{chunk-etces6ff.js → chunk-2mr99scd.js} +2 -2
- package/bin/chunk-2pxev94x.js +2 -0
- package/bin/chunk-2y9t0qxp.js +45 -0
- package/bin/{chunk-s7qpj715.js → chunk-2ydhnafa.js} +2 -2
- package/bin/chunk-38hp9gfh.js +2 -0
- package/bin/chunk-3t7v2de9.js +307 -0
- package/bin/{chunk-20y3wte3.js → chunk-3vbx3x11.js} +2 -2
- package/bin/{chunk-d3s00sn0.js → chunk-3xfhbvar.js} +2 -2
- package/bin/chunk-4153rke8.js +12 -0
- package/bin/{chunk-7jjc175m.js → chunk-4a185tez.js} +3 -3
- package/bin/{chunk-zxpef55w.js → chunk-4rexdetz.js} +3 -3
- package/bin/{chunk-1dawjfk8.js → chunk-58y9bagr.js} +2 -2
- package/bin/chunk-5dqn7egd.js +11 -0
- package/bin/{chunk-9p2d0mk1.js → chunk-5e48saab.js} +1 -1
- package/bin/{chunk-vnfmh5ke.js → chunk-5qwzveck.js} +2 -2
- package/bin/chunk-61hfhfce.js +2 -0
- package/bin/chunk-6ab9eftx.js +3 -0
- package/bin/chunk-6b0f3d07.js +2 -0
- package/bin/chunk-6gjn8trh.js +3 -0
- package/bin/{chunk-gn8snrnk.js → chunk-75x3w5hx.js} +1 -1
- package/bin/chunk-7e39zmss.js +1 -0
- package/bin/chunk-7h1m1e0b.js +1 -0
- package/bin/chunk-7kdz1eng.js +3 -0
- package/bin/chunk-7pcba64w.js +1 -0
- package/bin/{chunk-s05f0v9t.js → chunk-7xfx7741.js} +1 -1
- package/bin/chunk-898hrxwq.js +2 -0
- package/bin/{chunk-ph3e1bpp.js → chunk-89chaa11.js} +2 -2
- package/bin/chunk-8btfb5g6.js +2 -0
- package/bin/{chunk-gvn079hy.js → chunk-8pa1n500.js} +2 -2
- package/bin/{chunk-vy24ncn2.js → chunk-8qe7cpbr.js} +1 -1
- package/bin/{chunk-ws07a9kv.js → chunk-8tnq43k9.js} +1 -1
- package/bin/{chunk-1d22tysv.js → chunk-8wzepzp3.js} +2 -2
- package/bin/chunk-9deae0n7.js +3 -0
- package/bin/{chunk-3rcc5s99.js → chunk-ankkm2wz.js} +2 -2
- package/bin/chunk-ardp3pze.js +2 -0
- package/bin/chunk-axe5rq99.js +7 -0
- package/bin/chunk-bagxeg82.js +2 -0
- package/bin/{chunk-ss45w8ks.js → chunk-bhqrqt97.js} +2 -2
- package/bin/chunk-bn1sts8x.js +3 -0
- package/bin/{chunk-31mjcykb.js → chunk-bpb0szs5.js} +2 -2
- package/bin/{chunk-tsncwscz.js → chunk-c1j58ekb.js} +2 -2
- package/bin/chunk-c4nenmry.js +2 -0
- package/bin/chunk-c9f6n4sf.js +3 -0
- package/bin/chunk-cwh21vfb.js +2 -0
- package/bin/chunk-cwpmf8tx.js +2 -0
- package/bin/{chunk-ejfmxjw6.js → chunk-d2xrh0vv.js} +2 -2
- package/bin/chunk-d4sg0z3y.js +2 -0
- package/bin/chunk-d4sjezbk.js +8 -0
- package/bin/{chunk-vgb8bzcg.js → chunk-ddfx823h.js} +2 -2
- package/bin/chunk-dtjx1097.js +2 -0
- package/bin/chunk-e32bzfza.js +1 -0
- package/bin/chunk-e6rmqgzv.js +2 -0
- package/bin/chunk-ersxsrz8.js +62 -0
- package/bin/chunk-gg1wfpm8.js +3 -0
- package/bin/{chunk-qc6dmzn0.js → chunk-gg8dmkwd.js} +2 -2
- package/bin/chunk-gnx9g8px.js +2 -0
- package/bin/{chunk-xawwxdq9.js → chunk-h0k9zw29.js} +2 -2
- package/bin/chunk-htrzgs2a.css +1 -0
- package/bin/chunk-j2jdrmaa.js +2 -0
- package/bin/{chunk-v2kfr8fx.js → chunk-j5dejr3e.js} +2 -2
- package/bin/{chunk-wap08p4j.js → chunk-j5q3t199.js} +2 -2
- package/bin/chunk-jgxhv36z.js +3 -0
- package/bin/{chunk-dwswqq3g.js → chunk-jnx8p6kj.js} +1 -1
- package/bin/chunk-k41vt2gq.js +1 -0
- package/bin/chunk-k78m3rar.js +2 -0
- package/bin/chunk-kfbztymc.js +4 -0
- package/bin/chunk-kgr3ytpb.js +5 -0
- package/bin/chunk-khc3dydj.js +2 -0
- package/bin/chunk-krpr6g8a.js +1 -0
- package/bin/chunk-m8tnsds1.js +2 -0
- package/bin/chunk-mfmcsdd7.js +1 -0
- package/bin/chunk-msjv1ykh.js +2 -0
- package/bin/chunk-n73dbqps.js +1 -0
- package/bin/{chunk-5vqan9c4.js → chunk-n7cmya8k.js} +2 -2
- package/bin/{chunk-hfp4hpca.js → chunk-nabagpah.js} +2 -2
- package/bin/chunk-nn5qpr0q.js +1 -0
- package/bin/{chunk-ve7v8wtv.js → chunk-pew69nxg.js} +2 -2
- package/bin/{chunk-7eycsyk6.js → chunk-q2shr586.js} +1 -1
- package/bin/chunk-q7v8sj72.js +1 -0
- package/bin/chunk-q9tm2d21.js +8 -0
- package/bin/{chunk-mcxsk75h.js → chunk-qw5yjhab.js} +3 -3
- package/bin/{chunk-j0p1peav.js → chunk-r9thyg31.js} +2 -2
- package/bin/{chunk-h2wsm7h3.js → chunk-s584wxzj.js} +2 -2
- package/bin/{chunk-wr5byz6r.js → chunk-s5s1rk4n.js} +1 -1
- package/bin/{chunk-zs9b0f3z.js → chunk-scfbmsy7.js} +2 -2
- package/bin/{chunk-k20bhxed.js → chunk-sddrv3ep.js} +1 -1
- package/bin/{chunk-amsb41z5.js → chunk-sfmhbk59.js} +1 -1
- package/bin/chunk-tbdgkpgw.js +2 -0
- package/bin/chunk-twhj7h73.js +1 -0
- package/bin/{chunk-mahxw48e.js → chunk-v5zdafv4.js} +2 -2
- package/bin/{chunk-3t7mjvdv.js → chunk-vzx1r87y.js} +2 -2
- package/bin/{chunk-a76c5r3c.js → chunk-w3xzd86e.js} +2 -2
- package/bin/{chunk-nzy3pjjm.js → chunk-xkh6b42h.js} +2 -2
- package/bin/chunk-yn7mxpmb.js +7 -0
- package/bin/{chunk-yahb7wan.js → chunk-z544s59c.js} +2 -2
- package/bin/{chunk-f8cn9m28.js → chunk-zned6mj8.js} +1 -1
- package/bin/{chunk-08mxv0sm.js → chunk-zpq34g0w.js} +2 -2
- package/bin/shumai-app.html +1 -1
- package/bin/shumai-app.js +495 -372
- package/package.json +7 -7
- package/prisma/migrations/20260801065040_add_audit_log/migration.sql +33 -0
- package/prisma/migrations/20260805021613_add_asset_autofill_context/migration.sql +2 -0
- package/prisma/migrations/20260806082136_add_sharelink_watermark/migration.sql +69 -0
- package/prisma/migrations/20260806085643_add_watermark_file_status/migration.sql +7 -0
- package/prisma/migrations/20260807140837_clean_media_remove_raw_transcodes_and_original_download_url/migration.sql +86 -0
- package/prisma/migrations/20260808014542_add_sharelink_allow_download/migration.sql +2 -0
- package/prisma/schema.prisma +93 -0
- package/bin/chunk-08dr94gp.js +0 -2
- package/bin/chunk-0t4z17qr.js +0 -2
- package/bin/chunk-2ynx0den.js +0 -8
- package/bin/chunk-31a3k77j.js +0 -2
- package/bin/chunk-3jdef7n4.js +0 -6
- package/bin/chunk-4ahve1nf.js +0 -2
- package/bin/chunk-4hdnrwh1.js +0 -1
- package/bin/chunk-4hdx2tv0.js +0 -2
- package/bin/chunk-4htdb0xp.js +0 -1
- package/bin/chunk-4p7xpfey.js +0 -2
- package/bin/chunk-5f81c951.js +0 -1
- package/bin/chunk-5zntjzxw.js +0 -3
- package/bin/chunk-6a2eb3b5.js +0 -3
- package/bin/chunk-6t3gdd7e.js +0 -2
- package/bin/chunk-7d5kep8c.js +0 -2
- package/bin/chunk-7kzqkp5z.js +0 -1
- package/bin/chunk-7sh6409h.js +0 -1
- package/bin/chunk-7y8dng8t.js +0 -2
- package/bin/chunk-8e5zvy88.js +0 -307
- package/bin/chunk-8m6zg15c.js +0 -4
- package/bin/chunk-8qyke29r.js +0 -7
- package/bin/chunk-90et6bwm.js +0 -3
- package/bin/chunk-9c7fxjej.js +0 -2
- package/bin/chunk-a10tf0d8.js +0 -3
- package/bin/chunk-b10meywb.js +0 -2
- package/bin/chunk-b1e3tec3.js +0 -62
- package/bin/chunk-bdjhb77e.js +0 -2
- package/bin/chunk-beay9amy.js +0 -1
- package/bin/chunk-c3fvs0bv.js +0 -4
- package/bin/chunk-c5my1b3k.js +0 -7
- package/bin/chunk-dhekxndw.js +0 -3
- package/bin/chunk-dwaj1yn4.js +0 -2
- package/bin/chunk-er1rb6yj.js +0 -1
- package/bin/chunk-etqpzc9e.js +0 -3
- package/bin/chunk-fdpjw17x.js +0 -7
- package/bin/chunk-gqh4ttjh.js +0 -3
- package/bin/chunk-hz31j0hk.js +0 -4
- package/bin/chunk-jm6bxtzt.js +0 -41
- package/bin/chunk-jstc7pka.js +0 -2
- package/bin/chunk-k0a35mg9.js +0 -2
- package/bin/chunk-k9w6mk9d.js +0 -3
- package/bin/chunk-kgb16ggd.css +0 -1
- package/bin/chunk-m4py21f3.js +0 -2
- package/bin/chunk-mm1j72a8.js +0 -7
- package/bin/chunk-nr89225z.js +0 -2
- package/bin/chunk-nrf5r23d.js +0 -1
- package/bin/chunk-nt9tfjx6.js +0 -12
- package/bin/chunk-p396vw9h.js +0 -8
- package/bin/chunk-p9xfyqh1.js +0 -2
- package/bin/chunk-pj0fgb2x.js +0 -6
- package/bin/chunk-pp072ksj.js +0 -2
- package/bin/chunk-q5cdjzbv.js +0 -3
- package/bin/chunk-qn96vbke.js +0 -2
- package/bin/chunk-qvgc9e08.js +0 -3
- package/bin/chunk-rrxjvewm.js +0 -2
- package/bin/chunk-s5rfya1p.js +0 -1
- package/bin/chunk-scsy69bp.js +0 -1
- package/bin/chunk-sf6fwvrs.js +0 -8
- package/bin/chunk-t2txvzkp.js +0 -3
- package/bin/chunk-td54rdfj.js +0 -8
- package/bin/chunk-vb9m47z9.js +0 -1
- package/bin/chunk-vf066xwh.js +0 -3
- package/bin/chunk-w3a50kz8.js +0 -3
- package/bin/chunk-w9w5301f.js +0 -4
- package/bin/chunk-wny0qagx.js +0 -3
- package/bin/chunk-wqhk76de.js +0 -14
- package/bin/chunk-wrz9e73c.js +0 -2
- package/bin/chunk-x5dcgk62.js +0 -6
- package/bin/chunk-xwmsxg5x.js +0 -1
- package/bin/chunk-y2nw8rbx.js +0 -4
- package/bin/chunk-y9ttm07y.js +0 -3
- package/bin/chunk-z0ej44ak.js +0 -3
- package/bin/chunk-zemgtnk0.js +0 -1
- package/bin/chunk-zg0vm233.js +0 -2
- package/bin/chunk-zhd2mkbr.js +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{e as RA}from"./chunk-2errtbmb.js";import{f as yA,g as DA}from"./chunk-3xfhbvar.js";import{l as xA}from"./chunk-3t7v2de9.js";import{o as wA}from"./chunk-yn7mxpmb.js";import{I as NA,w as OA}from"./chunk-8btfb5g6.js";import{U as MA}from"./chunk-m8tnsds1.js";import{Da as qA,Ga as kA,Ia as i,qa as y,ta as QA,ua as UA}from"./chunk-bpb0szs5.js";import{sf as WA,tf as l}from"./chunk-gg1wfpm8.js";import{uf as EA}from"./chunk-2mr99scd.js";import{cg as LA}from"./chunk-gg8dmkwd.js";import{wg as zA}from"./chunk-38hp9gfh.js";import{Ag as c,Bg as B,Cg as U,Dg as VA,Fj as TA,Gg as o,Ig as $A,Jg as r,Og as HA,dh as H,xj as KA,zg as J1}from"./chunk-ersxsrz8.js";import{Jk as G1}from"./chunk-8tnq43k9.js";var X=G1(J1(),1);function BA(Y,J,q,Z,E,K){let h=Y.type==="folder",T=J.type==="folder";if(h!==T)return null;let L=T?Z:E,k=L.findIndex(($)=>$.id===q),O=L.findIndex(($)=>$.id===J.id);if(k===-1||O===-1)return null;let C=Math.min(k,O),F=Math.max(k,O),M=L.slice(C,F+1),_=new Set(K);return M.forEach(($)=>{if($.id)_.add($.id)}),_}function X1({teamId:Y,projectId:J,projectName:q,assetId:Z,rootFolderId:E,collection:K,onUpdateCollection:h}){let T=HA(),L=VA(),{canEdit:k}=zA(J),{setFields:O}=OA(),C=H.api.files[":fileId"].metadata.$patch,{mutate:F}=$A({mutationFn:async(A)=>{if(!(await C(A)).ok)throw Error("Failed to patch metadata");return null}}),{data:M}=o({queryKey:["fields",J],queryFn:async()=>{let A=await H.api.projects[":projectId"].fields.$get({param:{projectId:J}});if(!A.ok)throw Error("Failed to fetch fields");return await A.json()},enabled:!!J});X.useEffect(()=>{if(M)O(M,J)},[M,J,O]);let _=Z==="recently-deleted",[$,g]=X.useState(null),[W,D]=X.useState(new Set),[u,a]=X.useState(null),[PA,vA]=X.useState(240),[bA,hA]=X.useState(360),{isChatbotOpen:f}=l(),{members:CA,fetchMembers:d}=NA(),{metadata:FA,fetchMetadata:s,setMetadata:gA}=LA();X.useEffect(()=>{if(Y)d(Y),s(Y)},[Y,d,s]);let S=X.useMemo(()=>{return K?.filter?.searchFilter?.conditions||[]},[K]),[N,j]=X.useState(S);X.useEffect(()=>{j(S)},[S]);let t=`project:${J}:sort`,w=FA[t]||{field:"custom",order:"asc"},uA=(A)=>{if(A)gA(Y,t,A)},z=!!K,p=N.length>0||z,{fileListLeftSidebarCollapsed:e,setFileListLeftSidebarCollapsed:fA,fileListRightSidebarCollapsed:AA,setFileListRightSidebarCollapsed:SA,viewModes:jA}=EA(),GA=jA[J]??"card",pA=X.useRef(null),{data:P}=_?{data:void 0}:o({queryKey:["folders",Z],queryFn:async()=>{let A=await H.api.folders[":folderId"].$get({param:{folderId:Z}});if(!A.ok)throw Error("failed to fetch folder");return await A.json()}}),{setProjectState:JA,clearProjectState:XA}=WA();X.useEffect(()=>{return JA({teamId:Y,projectId:J,projectName:q,ancestorFolders:P?.ancestorFolders??[],currentAsset:_?{name:"Recently Deleted",type:"folder"}:z?{name:K.name,type:"folder"}:{name:P?.name,type:"folder"},isRootFolder:!_&&!z&&Z===E,onFolderClick:(A)=>{T({to:"/projects/$projectId/folders/$folderId",params:{projectId:J,folderId:A}})}}),()=>XA()},[Y,J,q,P,_,Z,E,JA,XA,T]);let{data:m,fetchNextPage:mA,hasNextPage:nA,isFetchingNextPage:IA}=r({queryKey:_?["projects",J,"recently-deleted","folder"]:["search",Y,Z,"folder",N,w,z],queryFn:async({pageParam:A})=>{if(_||z){if(_){let V=await H.api.projects[":projectId"]["recently-deleted"].$get({param:{projectId:J},query:{assetType:"folder",after:A}});if(!V.ok)throw Error("failed to fetch recently deleted folders");return await V.json()}return{data:[],pageInfo:{total:0}}}if(p)return{data:[],pageInfo:{total:0}};let G=await H.api.folders[":folderId"].search.$post({param:{folderId:Z},json:{assetType:"folder",after:A,recursively:!1,sort:w,conditions:[]}});if(!G.ok)throw Error("failed to search folders");return await G.json()},enabled:!p,initialPageParam:"",getNextPageParam:(A)=>{return A.pageInfo?.cursor||void 0}}),{data:n,fetchNextPage:cA,hasNextPage:oA,isFetchingNextPage:rA}=r({queryKey:_?["projects",J,"recently-deleted","file"]:["search",Y,Z,"file",N,w,z],queryFn:async({pageParam:A})=>{if(_){let V=await H.api.projects[":projectId"]["recently-deleted"].$get({param:{projectId:J},query:{assetType:"file",after:A}});if(!V.ok)throw Error("failed to fetch recently deleted files");return await V.json()}let G=await H.api.folders[":folderId"].search.$post({param:{folderId:Z},json:{assetType:"file",after:A,recursively:p||z,conditions:N,sort:w}});if(!G.ok)throw Error("failed to search files");return await G.json()},initialPageParam:"",getNextPageParam:(A)=>{return A.pageInfo?.cursor||void 0}}),v=m?.pages.flatMap((A)=>A.data??[])??[],Q=n?.pages.flatMap((A)=>A.data??[])??[],lA=m?.pages[0]?.pageInfo?.total,iA=n?.pages[0]?.pageInfo?.total,aA=m?.pages[0]?.pageInfo?.totalSize,dA=n?.pages[0]?.pageInfo?.totalSize,YA=()=>{D(new Set),g(null),a(null)},{dragState:x,handleDragStart:sA,handleDragEnd:tA}=DA({teamId:Y,projectId:J,assetId:Z,folders:v,files:Q,selectedIds:W,onClearSelection:YA}),I=X.useMemo(()=>{if(W.size!==1)return null;let A=Array.from(W)[0];return Q.find((V)=>V.id===A)||null},[W,Q]),eA=(A)=>{if(_)return;if(A.type==="folder")j([]),T({to:"/projects/$projectId/folders/$folderId",params:{projectId:J,folderId:A.id}});else T({to:"/projects/$projectId/files/$fileId",params:{projectId:J,fileId:A.versionStack?A.versionStack.id:A.id},search:{version:void 0}})},A1=(A,G)=>{let V=G.metaKey||G.ctrlKey;if(G.shiftKey&&u){let _A=[...v,...Q].find((b)=>b.id===u);if(_A){let b=BA(_A,A,u,v,Q,W);if(b){D(b),g(A);return}}}if(V){let R=new Set(W);if(R.has(A.id))R.delete(A.id);else R.add(A.id);D(R)}else D(new Set([A.id]));a(A.id),g(A)},ZA=(A,G,V)=>{F({param:{fileId:A},json:[{key:G,value:V}]},{onSuccess:()=>{L.invalidateQueries({queryKey:["folders",Z,"children",{assetType:"file"}]}),L.invalidateQueries({queryKey:["search",Y,Z]})}})};return U(qA,{modifiers:[yA.configure({anchor:{x:0,y:0}})],plugins:(A)=>A.map((G)=>{if(G===y)return y.configure({dropAnimation:null});if(typeof G==="object"&&G!==null&&"plugin"in G&&G.plugin===y)return y.configure({dropAnimation:null});return G}),sensors:_||!k?[]:[UA.configure({activationConstraints:[new QA.Distance({value:10})]})],onDragStart:sA,onDragEnd:tA,children:[B("div",{className:"flex flex-1 flex-col bg-background min-h-0",children:U("div",{ref:pA,className:"flex flex-1 overflow-hidden relative",children:[!e&&B("div",{className:"md:hidden fixed inset-0 bg-black/50 z-40",onClick:()=>fA(!0)}),(!AA||f)&&B("div",{className:"md:hidden fixed inset-0 bg-black/50 z-40",onClick:()=>{SA(!0),l.getState().setIsChatbotOpen(!1)}}),!e&&U(c,{children:[B("div",{className:"bg-background",style:{width:PA},children:B(MA,{teamId:Y,projectId:J,projectName:q,rootFolderId:E,dragState:x,ancestorFolders:P?.ancestorFolders??[]})}),B(i,{onResize:(A)=>{vA((G)=>Math.max(180,Math.min(400,G+A)))},className:"hidden md:block"})]}),B(wA,{teamId:Y,projectId:J,assetId:Z,folders:v,files:Q,totalFolders:lA,totalFiles:iA,totalFoldersSize:aA,totalFilesSize:dA,selectedItem:$,selectedIds:W,onItemSelect:A1,onItemDoubleClick:eA,onSaveField:ZA,displayStyle:GA,onClearSelection:YA,fetchNextFoldersPage:mA,hasNextFoldersPage:nA||!1,isFetchingNextFoldersPage:IA,fetchNextFilesPage:cA,hasNextFilesPage:oA||!1,isFetchingNextFilesPage:rA,isRecentlyDeleted:_,filterConditions:N,onFilterChange:j,sort:w,onSortChange:uA,dragState:x,collection:K,onUpdateCollection:h,rootFolderId:E}),(!AA||f)&&U(c,{children:[B(i,{onResize:(A)=>{hA((G)=>Math.max(240,Math.min(600,G-A)))},className:"hidden md:block"}),B("div",{style:{width:bA},className:"bg-background flex flex-col flex-shrink-0",children:f?B(RA,{projectId:J,contextAssetId:Z}):I?B(xA,{teamId:Y,projectId:J,file:I,onSaveField:(A,G)=>ZA(I.id,A,G),members:CA,hideAnnotationControl:!0}):B("div",{className:"flex h-full items-center justify-center p-4 text-center text-sm text-muted-foreground",children:TA.select_asset_to_view_details()})})]})]})}),B(kA,{children:x?.isActive?B("div",{className:KA("flex items-center gap-2 rounded-md bg-popover px-3 py-2 text-sm font-medium text-popover-foreground shadow-md ring-1 ring-border cursor-grabbing",GA==="list"&&"w-30 h-[40px] px-0 flex-none overflow-hidden justify-center"),style:{transform:"translate(0px, 0px)"},children:U("span",{children:["Moving ",x.itemCount," item",x.itemCount!==1?"s":""]})}):null})]})}
|
|
2
|
+
export{X1 as d};
|