@marimo-team/frontend 0.18.5-dev194 → 0.18.5-dev199
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/dist/assets/{panel-context-DUUPei-R.js → cell-editor-B-NH54Cv.js} +13 -13
- package/dist/assets/{edit-page-BINKtkcO.js → edit-page-DIpr3pNk.js} +6 -6
- package/dist/assets/{glide-data-editor-DqvrqciP.js → glide-data-editor-Brckuic5.js} +1 -1
- package/dist/assets/index-BQNCH-dG.css +2 -0
- package/dist/assets/{index-CRAfQZSQ.js → index-MoQWZ3Gl.js} +3 -3
- package/dist/assets/kiosk-mode-lhqhA8En.js +1 -0
- package/dist/assets/scratchpad-panel-DWsu0wnU.js +1 -0
- package/dist/assets/snippets-panel-Dv7eGWsB.js +1 -0
- package/dist/index.html +2 -2
- package/package.json +1 -1
- package/src/components/editor/chrome/panels/snippets-panel.tsx +54 -39
- package/src/css/app/Cell.css +4 -0
- package/src/plugins/impl/data-editor/glide-data-editor.tsx +1 -0
- package/dist/assets/index-CoU35QpZ.css +0 -2
- package/dist/assets/kiosk-mode-C23fjW_G.js +0 -1
- package/dist/assets/scratchpad-panel-fzQUjA3o.js +0 -1
- package/dist/assets/snippets-panel-DW6lWuPh.js +0 -1
- /package/dist/assets/{panel-context-Iey559K_.css → cell-editor-Iey559K_.css} +0 -0
|
@@ -129,4 +129,4 @@ var C0=Object.defineProperty;var S0=(Kr,Cr,Yr)=>Cr in Kr?C0(Kr,Cr,{enumerable:!0
|
|
|
129
129
|
`),rawValue:we});return Je===void 0?void 0:(Zt(Je.kind===G.kind),{location:ge,value:Je})}}}let z=A.columns,N=A.rows,W=(($=dt.current)==null?void 0:$.contains(document.activeElement))===!0||((V=a.current)==null?void 0:V.contains(document.activeElement))===!0,Y;if(A.current===void 0?z.length===1?Y=[z.first()??0,0]:N.length===1&&(Y=[B,N.first()??0]):Y=[A.current.range.x,A.current.range.y],W&&Y!==void 0){let G,ge,we="text/plain",ie="text/html";if(navigator.clipboard.read!==void 0){let Te=await navigator.clipboard.read();for(let Se of Te){if(Se.types.includes(ie)){let Je=na(await(await Se.getType(ie)).text());if(Je!==void 0){G=Je;break}}Se.types.includes(we)&&(ge=await(await Se.getType(we)).text())}}else if(navigator.clipboard.readText!==void 0)ge=await navigator.clipboard.readText();else if(g!==void 0&&(g==null?void 0:g.clipboardData)!==null)g.clipboardData.types.includes(ie)&&(G=na(g.clipboardData.getData(ie))),G===void 0&&g.clipboardData.types.includes(we)&&(ge=g.clipboardData.getData(we));else return;let[Ce,ze]=Y,Ze=[];do{if(Ue===void 0){let Te=qt(Y),Se=ge??(G==null?void 0:G.map(Yt=>Yt.map(Lt=>Lt.rawValue).join(" ")).join(" "))??"",Je=D(Te,Y,Se,void 0);Je!==void 0&&Ze.push(Je);break}if(G===void 0){if(ge===void 0)return;G=Dd(ge)}if(Ue===!1||typeof Ue=="function"&&(Ue==null?void 0:Ue([Y[0]-B,Y[1]],G.map(Te=>Te.map(Se=>{var Je;return((Je=Se.rawValue)==null?void 0:Je.toString())??""}))))!==!0)return;for(let[Te,Se]of G.entries()){if(Te+ze>=Ie)break;for(let[Je,Yt]of Se.entries()){let Lt=[Je+Ce,Te+ze],[hr,xr]=Lt;if(hr>=ot.length||xr>=Wt)continue;let nr=D(qt(Lt),Lt,Yt.rawValue,Yt.formatted);nr!==void 0&&Ze.push(nr)}}}while(!1);tr(Ze),(Z=Kt.current)==null||Z.damage(Ze.map(Te=>({cell:Te.location})))}},[F,Ht,qt,A,yr.paste,dt,ot.length,tr,Wt,Ue,B,Ie]);jt("paste",_i,f,!1,!0);let uo=d.useCallback(async(g,D)=>{var $,V;if(!yr.copy)return;let z=D===!0||(($=dt.current)==null?void 0:$.contains(document.activeElement))===!0||((V=a.current)==null?void 0:V.contains(document.activeElement))===!0,N=A.columns,W=A.rows,Y=(Z,G)=>{zd(me?[G.map(ge=>({kind:pe.Text,data:M[ge].title,displayData:M[ge].title,allowOverlay:!1})),...Z]:Z,G,g)};if(z&&ve!==void 0){if(A.current!==void 0){let Z=ve(A.current.range,ce.current.signal);typeof Z!="object"&&(Z=await Z()),Y(Z,(0,bn.default)(A.current.range.x-B,A.current.range.x+A.current.range.width-B))}else if(W!==void 0&&W.length>0){let Z=[...W].map(G=>{let ge=ve({x:B,y:G,width:M.length,height:1},ce.current.signal);return typeof ge=="object"?ge[0]:ge().then(we=>we[0])});Z.some(G=>G instanceof Promise)?Y(await Promise.all(Z),(0,bn.default)(M.length)):Y(Z,(0,bn.default)(M.length))}else if(N.length>0){let Z=[],G=[];for(let ge of N){let we=ve({x:ge,y:0,width:1,height:Ie},ce.current.signal);typeof we!="object"&&(we=await we()),Z.push(we),G.push(ge-B)}Z.length===1?Y(Z[0],G):Y(Z.reduce((ge,we)=>ge.map((ie,Ce)=>[...ie,...we[Ce]])),G)}}},[M,ve,A,yr.copy,B,dt,Ie,me]);jt("copy",uo,f,!1,!1),jt("cut",d.useCallback(async g=>{var D,z;if(yr.cut&&(((D=dt.current)==null?void 0:D.contains(document.activeElement))===!0||((z=a.current)==null?void 0:z.contains(document.activeElement))===!0)&&(await uo(g),A.current!==void 0)){let N={current:{cell:A.current.cell,range:A.current.range,rangeStack:[]},rows:nt.empty(),columns:nt.empty()},W=lt==null?void 0:lt(N);if(W===!1||(N=W===!0?N:W,N.current===void 0))return;hn(N.current.range)}},[hn,A,yr.cut,uo,dt,lt]),f,!1,!1);let c0=d.useCallback((g,D)=>{if(de!==void 0){B!==0&&(g=g.map(W=>[W[0]-B,W[1]])),de(g,D);return}if(g.length===0||D===-1)return;let[z,N]=g[D];u.current!==void 0&&u.current[0]===z&&u.current[1]===N||(u.current=[z,N],Br(z,N,!1,!1))},[de,B,Br]),[Vo,Ko]=(($a=wt==null?void 0:wt.current)==null?void 0:$a.cell)??[],Yo=d.useRef(It);Yo.current=It,d.useLayoutEffect(()=>{var g,D,z,N;Fi.current&&!Ao.current&&Vo!==void 0&&Ko!==void 0&&(Vo!==((D=(g=st.current)==null?void 0:g.current)==null?void 0:D.cell[0])||Ko!==((N=(z=st.current)==null?void 0:z.current)==null?void 0:N.cell[1]))&&Yo.current(Vo,Ko),Ao.current=!1},[Vo,Ko]);let ja=A.current!==void 0&&(A.current.cell[0]>=ot.length||A.current.cell[1]>=Wt);d.useLayoutEffect(()=>{ja&&he(Ro,!1)},[ja,he]);let u0=d.useMemo(()=>bt===!0&&(Re==null?void 0:Re.tint)===!0?nt.fromSingleSelection(Wt-1):nt.empty(),[Wt,bt,Re==null?void 0:Re.tint]),d0=d.useCallback(g=>typeof $e=="boolean"?$e:($e==null?void 0:$e(g-B))??!0,[B,$e]),h0=d.useMemo(()=>{if(Hi===void 0||a.current===null)return null;let{bounds:g,group:D}=Hi,z=a.current.getBoundingClientRect();return d.createElement(Cd,{bounds:g,group:D,canvasBounds:z,onClose:()=>Di(void 0),onFinish:N=>{Di(void 0),se==null||se(D,N)}})},[se,Hi]),f0=Math.min(ot.length,be+(er?1:0));d.useImperativeHandle(t,()=>({appendRow:(g,D)=>On(g+B,D),updateCells:g=>{var D;return B!==0&&(g=g.map(z=>({cell:[z.cell[0]+B,z.cell[1]]}))),(D=Kt.current)==null?void 0:D.damage(g)},getBounds:(g,D)=>{var z;if(!((a==null?void 0:a.current)===null||(dt==null?void 0:dt.current)===null)){if(g===void 0&&D===void 0){let N=a.current.getBoundingClientRect(),W=N.width/dt.current.clientWidth;return{x:N.x-dt.current.scrollLeft*W,y:N.y-dt.current.scrollTop*W,width:dt.current.scrollWidth*W,height:dt.current.scrollHeight*W}}return(z=Kt.current)==null?void 0:z.getBounds((g??0)+B,D)}},focus:()=>{var g;return(g=Kt.current)==null?void 0:g.focus()},emit:async g=>{switch(g){case"delete":co({bounds:void 0,cancel:()=>{},stopPropagation:()=>{},preventDefault:()=>{},ctrlKey:!1,key:"Delete",keyCode:46,metaKey:!1,shiftKey:!1,altKey:!1,rawEvent:void 0,location:void 0});break;case"fill-right":co({bounds:void 0,cancel:()=>{},stopPropagation:()=>{},preventDefault:()=>{},ctrlKey:!0,key:"r",keyCode:82,metaKey:!1,shiftKey:!1,altKey:!1,rawEvent:void 0,location:void 0});break;case"fill-down":co({bounds:void 0,cancel:()=>{},stopPropagation:()=>{},preventDefault:()=>{},ctrlKey:!0,key:"d",keyCode:68,metaKey:!1,shiftKey:!1,altKey:!1,rawEvent:void 0,location:void 0});break;case"copy":await uo(void 0,!0);break;case"paste":await _i();break}},scrollTo:It,remeasureColumns:g=>{for(let D of g)Bo(D+B)}}),[On,Bo,dt,uo,co,_i,B,It]);let[Fa,_a]=br??[],g0=d.useCallback(g=>{let[D,z]=g;if(z===-1){Qe!=="none"&&(Pe(nt.fromSingleSelection(D),void 0,!1),Bt());return}Fa===D&&_a===z||(gt({cell:g,range:{x:D,y:z,width:1,height:1}},!0,!1,"keyboard-nav"),It(D,z))},[Qe,Bt,It,Fa,_a,gt,Pe]),[p0,m0]=d.useState(!1),Na=d.useRef((0,qd.default)(g=>{m0(g)},5)),v0=d.useCallback(()=>{Na.current(!0),A.current===void 0&&A.columns.length===0&&A.rows.length===0&&s===void 0&>({cell:[B,Lo],range:{x:B,y:Lo,width:1,height:1}},!0,!1,"keyboard-select")},[Lo,A,s,B,gt]),w0=d.useCallback(()=>{Na.current(!1)},[]),[y0,b0]=d.useMemo(()=>{let g,D=(Ct==null?void 0:Ct.scrollbarWidthOverride)??oi(),z=Ie+(bt?1:0);if(typeof wr=="number")g=oo+z*wr;else{let W=0,Y=Math.min(z,10);for(let $=0;$<Y;$++)W+=wr($);W=Math.floor(W/Y),g=oo+z*W}g+=D;let N=ot.reduce((W,Y)=>Y.width+W,0)+D;return[`${Math.min(1e5,N)}px`,`${Math.min(1e5,g)}px`]},[ot,Ct==null?void 0:Ct.scrollbarWidthOverride,wr,Ie,bt,oo]),x0=d.useMemo(()=>ef(at),[at]);return d.createElement(tf.Provider,{value:at},d.createElement(Fd,{style:x0,className:_,inWidth:v??y0,inHeight:S??b0},d.createElement(yd,{fillHandle:Et,drawFocusRing:Jn,experimental:Ct,fixedShadowX:Tt,fixedShadowY:At,getRowThemeOverride:ar,headerIcons:Mr,imageWindowLoader:Eo,initialSize:jr,isDraggable:Rr,onDragLeave:Er,onRowMoved:vr,overscrollX:ro,overscrollY:no,preventDiagonalScrolling:Cn,rightElement:Sn,rightElementProps:kn,smoothScrollX:Qr,smoothScrollY:Fr,className:_,enableGroups:Ii,onCanvasFocused:v0,onCanvasBlur:w0,canvasRef:a,onContextMenu:s0,theme:at,cellXOffset:Uh,cellYOffset:Lo,accessibilityHeight:sn.height,onDragEnd:i0,columns:ot,nonGrowWidth:Sa,drawHeader:Ot,onColumnProposeMove:w,drawCell:Ut,disabledRows:u0,freezeColumns:f0,lockColumns:B,firstColAccessible:B===0,getCellContent:qt,minColumnWidth:Or,maxColumnWidth:rn,searchInputRef:l,showSearch:ye,onSearchClose:fe,highlightRegions:Xh,getCellsForSelection:ve,getGroupDetails:Oi,headerHeight:nn,isFocused:p0,groupHeaderHeight:Ii?to:0,freezeTrailingRows:yt+(bt&&(Re==null?void 0:Re.sticky)===!0?1:0),hasAppendRow:bt,onColumnResize:Le,onColumnResizeEnd:Ye,onColumnResizeStart:it,onCellFocused:g0,onColumnMoved:n0,onDragStart:o0,onHeaderMenuClick:e0,onHeaderIndicatorClick:t0,onItemHovered:ji,isFilling:(s==null?void 0:s.fillHandle)===!0,onMouseMove:Qh,onKeyDown:co,onKeyUp:le,onMouseDown:qh,onMouseUp:Jh,onDragOverCell:xt,onDrop:Mt,onSearchResultsChanged:c0,onVisibleRegionChanged:r0,clientSize:_t,rowHeight:wr,searchResults:X,searchValue:te,onSearchValueChange:q,rows:Wt,scrollRef:dt,selection:A,translateX:sn.tx,translateY:sn.ty,verticalBorder:d0,gridRef:Kt,getCellRenderer:Ht,resizeIndicator:Ho}),h0,o!==void 0&&d.createElement(d.Suspense,{fallback:null},d.createElement(Zd,{...o,validateCell:ke,bloom:L,id:a0,getCellRenderer:Ht,className:(Ct==null?void 0:Ct.isSubGrid)===!0?"click-outside-ignore":void 0,provideEditor:ir,imageEditorOverride:p,onFinishEditing:l0,markdownDivCreateNode:h,isOutsideClick:Ri,customEventTarget:Ct==null?void 0:Ct.eventTarget}))))});var da=20;function ha(e){let{cell:t,posX:r,posY:n,bounds:o,theme:i}=e,{width:l,height:a,x:s,y:c}=o,u=t.maxSize??da,f=Math.floor(o.y+a/2),p=rl(u,a,i.cellVerticalPadding),m=el(tl(t.contentAlign??"center",s,l,i.cellHorizontalPadding,p),f,p),h=nl(s+r,c+n,m);return Ki(t)&&h}const th={getAccessibilityString:e=>{var t;return((t=e.data)==null?void 0:t.toString())??"false"},kind:pe.Boolean,needsHover:!0,useLabel:!1,needsHoverPosition:!0,measure:()=>50,draw:e=>rh(e,e.cell.data,Ki(e.cell),e.cell.maxSize??da,e.cell.hoverEffectIntensity??.35),onDelete:e=>({...e,data:!1}),onSelect:e=>{ha(e)&&e.preventDefault()},onClick:e=>{if(ha(e))return{...e.cell,data:ia(e.cell.data)}},onPaste:(e,t)=>{let r=null;return e.toLowerCase()==="true"?r=!0:e.toLowerCase()==="false"?r=!1:e.toLowerCase()==="indeterminate"&&(r=void 0),r===t.data?void 0:{...t,data:r}}};function rh(e,t,r,n,o){if(!r&&t===null)return;let{ctx:i,hoverAmount:l,theme:a,rect:s,highlighted:c,hoverX:u,hoverY:f,cell:{contentAlign:p}}=e,{x:m,y:h,width:v,height:S}=s,M=!1;if(o>0){let y=r?1-o+o*l:.4;if(t===null&&(y*=l),y===0)return;y<1&&(M=!0,i.globalAlpha=y)}mi(i,a,t,m,h,v,S,c,u,f,n,p),M&&(i.globalAlpha=1)}const nh=Jt("div")({name:"BubblesOverlayEditorStyle",class:"gdg-b1ygi5by",propsAsIs:!1});var oh=e=>{let{bubbles:t}=e;return d.createElement(nh,null,t.map((r,n)=>d.createElement("div",{key:n,className:"boe-bubble"},r)),d.createElement("textarea",{className:"gdg-input",autoFocus:!0}))};const ih={getAccessibilityString:e=>ol(e.data),kind:pe.Bubble,needsHover:!1,useLabel:!1,needsHoverPosition:!1,measure:(e,t,r)=>t.data.reduce((n,o)=>e.measureText(o).width+n+20,0)+2*r.cellHorizontalPadding-4,draw:e=>ah(e,e.cell.data),provideEditor:()=>e=>{let{value:t}=e;return d.createElement(oh,{bubbles:t.data})},onPaste:()=>{}};var lh=4;function ah(e,t){let{rect:r,theme:n,ctx:o,highlighted:i}=e,{x:l,y:a,width:s,height:c}=r,u=lh,f=l+n.cellHorizontalPadding,p=[];for(let m of t){if(f>l+s)break;let h=wn(m,o,n.baseFontFull).width;p.push({x:f,width:h}),f+=h+16+u}o.beginPath();for(let m of p)gr(o,m.x,a+(c-20)/2,m.width+16,20,n.roundingRadius??20/2);o.fillStyle=i?n.bgBubbleSelected:n.bgBubble,o.fill();for(let[m,h]of p.entries())o.beginPath(),o.fillStyle=n.textBubble,o.fillText(t[m],h.x+8,a+c/2+Hr(o,n))}var sh=Jt("div")({name:"DrilldownOverlayEditorStyle",class:"gdg-d4zsq0x",propsAsIs:!1}),ch=e=>{let{drilldowns:t}=e;return d.createElement(sh,null,t.map((r,n)=>d.createElement("div",{key:n,className:"doe-bubble"},r.img!==void 0&&d.createElement("img",{src:r.img}),d.createElement("div",null,r.text))))};const uh={getAccessibilityString:e=>ol(e.data.map(t=>t.text)),kind:pe.Drilldown,needsHover:!1,useLabel:!1,needsHoverPosition:!1,measure:(e,t,r)=>t.data.reduce((n,o)=>e.measureText(o.text).width+n+20+(o.img===void 0?0:18),0)+2*r.cellHorizontalPadding-4,draw:e=>fh(e,e.cell.data),provideEditor:()=>e=>{let{value:t}=e;return d.createElement(ch,{drilldowns:t.data})},onPaste:()=>{}};var dh=4,Ci={};function hh(e,t,r,n){let o=Math.ceil(window.devicePixelRatio),i=r-10,l=r*o,a=n+5,s=n*3,c=(s+10)*o,u=`${e},${t},${o},${r}`;if(Ci[u]!==void 0)return{el:Ci[u],height:l,width:c,middleWidth:4*o,sideWidth:a*o,padding:5*o,dpr:o};let f=document.createElement("canvas"),p=f.getContext("2d");return p===null?null:(f.width=c,f.height=l,p.scale(o,o),Ci[u]=f,p.beginPath(),gr(p,5,5,s,i,n),p.shadowColor="rgba(24, 25, 34, 0.4)",p.shadowBlur=1,p.fillStyle=e,p.fill(),p.shadowColor="rgba(24, 25, 34, 0.3)",p.shadowOffsetY=1,p.shadowBlur=5,p.fillStyle=e,p.fill(),p.shadowOffsetY=0,p.shadowBlur=0,p.shadowBlur=0,p.beginPath(),gr(p,5.5,5.5,s,i,n),p.strokeStyle=t,p.lineWidth=1,p.stroke(),{el:f,height:l,width:c,sideWidth:a*o,middleWidth:n*o,padding:5*o,dpr:o})}function fh(e,t){let{rect:r,theme:n,ctx:o,imageLoader:i,col:l,row:a}=e,{x:s,width:c}=r,u=n.baseFontFull,f=pl(o,u),p=Math.min(r.height,Math.max(16,Math.ceil(f*n.lineHeight)*2)),m=Math.floor(r.y+(r.height-p)/2),h=p-10,v=dh,S=s+n.cellHorizontalPadding,M=n.roundingRadius??6,y=hh(n.bgCell,n.drilldownBorder,p,M),k=[];for(let I of t){if(S>s+c)break;let P=wn(I.text,o,u).width,E=0;I.img!==void 0&&i.loadOrGetImage(I.img,l,a)!==void 0&&(E=h-8+4);let O=P+E+16;k.push({x:S,width:O}),S+=O+v}if(y!==null){let{el:I,height:P,middleWidth:E,sideWidth:O,width:F,dpr:C,padding:R}=y,L=O/C,x=R/C;for(let w of k){let T=Math.floor(w.x),H=Math.floor(w.width),b=H-(L-x)*2;o.imageSmoothingEnabled=!1,o.drawImage(I,0,0,O,P,T-x,m,L,p),b>0&&o.drawImage(I,O,0,E,P,T+(L-x),m,b,p),o.drawImage(I,F-O,0,O,P,T+H-(L-x),m,L,p),o.imageSmoothingEnabled=!0}}o.beginPath();for(let[I,P]of k.entries()){let E=t[I],O=P.x+8;if(E.img!==void 0){let F=i.loadOrGetImage(E.img,l,a);if(F!==void 0){let C=h-8,R=0,L=0,x=F.width,w=F.height;x>w?(R+=(x-w)/2,x=w):w>x&&(L+=(w-x)/2,w=x),o.beginPath(),gr(o,O,m+p/2-C/2,C,C,n.roundingRadius??3),o.save(),o.clip(),o.drawImage(F,R,L,x,w,O,m+p/2-C/2,C,C),o.restore(),O+=C+4}}o.beginPath(),o.fillStyle=n.textBubble,o.fillText(E.text,O,m+p/2+Hr(o,n))}}const gh={getAccessibilityString:e=>e.data.join(", "),kind:pe.Image,needsHover:!1,useLabel:!1,needsHoverPosition:!1,draw:e=>ph(e,e.cell.displayData??e.cell.data,e.cell.rounding??e.theme.roundingRadius??4,e.cell.contentAlign),measure:(e,t)=>t.data.length*50,onDelete:e=>({...e,data:[]}),provideEditor:()=>e=>{let{value:t,onFinishedEditing:r,imageEditorOverride:n}=e,o=n??Hs;return d.createElement(o,{urls:t.data,canWrite:t.readonly!==!0,onCancel:r,onChange:i=>{r({...t,data:[i]})}})},onPaste:(e,t)=>{e=e.trim();let r=e.split(",").map(n=>{try{return new URL(n),n}catch{return}}).filter(n=>n!==void 0);if(!(r.length===t.data.length&&r.every((n,o)=>n===t.data[o])))return{...t,data:r}}};var Si=4;function ph(e,t,r,n){let{rect:o,col:i,row:l,theme:a,ctx:s,imageLoader:c}=e,{x:u,y:f,height:p,width:m}=o,h=p-a.cellVerticalPadding*2,v=[],S=0;for(let y=0;y<t.length;y++){let k=t[y];if(k.length===0)continue;let I=c.loadOrGetImage(k,i,l);if(I!==void 0){v[y]=I;let P=I.width*(h/I.height);S+=P+Si}}if(S===0)return;S-=Si;let M=u+a.cellHorizontalPadding;n==="right"?M=Math.floor(u+m-a.cellHorizontalPadding-S):n==="center"&&(M=Math.floor(u+m/2-S/2));for(let y of v){if(y===void 0)continue;let k=y.width*(h/y.height);r>0&&(s.beginPath(),gr(s,M,f+a.cellVerticalPadding,k,h,r),s.save(),s.clip()),s.drawImage(y,M,f+a.cellVerticalPadding,k,h),r>0&&s.restore(),M+=k+Si}}function mh(e,t){let r=e*49632+t*325176;return r^=r<<13,r^=r>>17,r^=r<<5,r/4294967295*2}const vh={getAccessibilityString:()=>"",kind:pe.Loading,needsHover:!1,useLabel:!1,needsHoverPosition:!1,measure:()=>120,draw:e=>{let{cell:t,col:r,row:n,ctx:o,rect:i,theme:l}=e;if(t.skeletonWidth===void 0||t.skeletonWidth===0)return;let a=t.skeletonWidth;t.skeletonWidthVariability!==void 0&&t.skeletonWidthVariability>0&&(a+=Math.round(mh(r,n)*t.skeletonWidthVariability));let s=l.cellHorizontalPadding;a+s*2>=i.width&&(a=i.width-s*2-1);let c=t.skeletonHeight??Math.min(18,i.height-2*l.cellVerticalPadding);gr(o,i.x+s,i.y+(i.height-c)/2,a,c,l.roundingRadius??3),o.fillStyle=gn(l.textDark,.1),o.fill()},onPaste:()=>{}};var wh=()=>e=>e.targetWidth;const fa=Jt("div")({name:"MarkdownOverlayEditorStyle",class:"gdg-m1pnx84e",propsAsIs:!1,vars:{"m1pnx84e-0":[wh(),"px"]}}),yh=e=>{let{value:t,onChange:r,forceEditMode:n,createNode:o,targetRect:i,onFinish:l,validatedSelection:a}=e,s=t.data,c=t.readonly===!0,[u,f]=d.useState(s===""||n),p=d.useCallback(()=>{f(h=>!h)},[]),m=s?"gdg-ml-6":"";return u?d.createElement(fa,{targetWidth:i.width-20},d.createElement(vo,{autoFocus:!0,highlight:!1,validatedSelection:a,value:s,onKeyDown:h=>{h.key==="Enter"&&h.stopPropagation()},onChange:r}),d.createElement("div",{className:`gdg-edit-icon gdg-checkmark-hover ${m}`,onClick:()=>l(t)},d.createElement(Rs,null))):d.createElement(fa,{targetWidth:i.width},d.createElement(zs,{contents:s,createNode:o}),!c&&d.createElement(d.Fragment,null,d.createElement("div",{className:"spacer"}),d.createElement("div",{className:`gdg-edit-icon gdg-edit-hover ${m}`,onClick:p},d.createElement(ri,null))),d.createElement("textarea",{className:"gdg-md-edit-textarea gdg-input",autoFocus:!0}))},bh={getAccessibilityString:e=>{var t;return((t=e.data)==null?void 0:t.toString())??""},kind:pe.Markdown,needsHover:!1,needsHoverPosition:!1,drawPrep:Bn,measure:(e,t,r)=>{let n=t.data.split(`
|
|
130
130
|
`)[0];return e.measureText(n).width+2*r.cellHorizontalPadding},draw:e=>Sr(e,e.cell.data,e.cell.contentAlign),onDelete:e=>({...e,data:""}),provideEditor:()=>e=>{let{onChange:t,value:r,target:n,onFinishedEditing:o,markdownDivCreateNode:i,forceEditMode:l,validatedSelection:a}=e;return d.createElement(yh,{onFinish:o,targetRect:n,value:r,validatedSelection:a,onChange:s=>t({...r,data:s.target.value}),forceEditMode:l,createNode:i})},onPaste:(e,t)=>e===t.data?void 0:{...t,data:e}},xh={getAccessibilityString:e=>e.row.toString(),kind:$r.Marker,needsHover:!0,needsHoverPosition:!1,drawPrep:Ch,measure:()=>44,draw:e=>kh(e,e.cell.row,e.cell.checked,e.cell.markerKind,e.cell.drawHandle,e.cell.checkboxStyle),onClick:e=>{let{bounds:t,cell:r,posX:n,posY:o}=e,{width:i,height:l}=t,a=r.drawHandle?7+(i-7)/2:i/2,s=l/2;if(Math.abs(n-a)<=10&&Math.abs(o-s)<=10)return{...r,checked:!r.checked}},onPaste:()=>{}};function Ch(e,t){let{ctx:r,theme:n}=e,o=n.markerFontFull,i=t??{};return(i==null?void 0:i.font)!==o&&(r.font=o,i.font=o),i.deprep=Sh,r.textAlign="center",i}function Sh(e){let{ctx:t}=e;t.textAlign="start"}function kh(e,t,r,n,o,i){let{ctx:l,rect:a,hoverAmount:s,theme:c}=e,{x:u,y:f,width:p,height:m}=a,h=r?1:n==="checkbox-visible"?.6+.4*s:s;if(n!=="number"&&h>0){l.globalAlpha=h;let v=7*(r?s:1);if(mi(l,c,r,o?u+v:u,f,o?p-v:p,m,!0,void 0,void 0,18,"center",i),o){l.globalAlpha=s,l.beginPath();for(let S of[3,6])for(let M of[-5,-1,3])l.rect(u+S,f+m/2+M,2,2);l.fillStyle=c.textLight,l.fill(),l.beginPath()}l.globalAlpha=1}if(n==="number"||n==="both"&&!r){let v=t.toString(),S=c.markerFontFull,M=u+p/2;n==="both"&&s!==0&&(l.globalAlpha=1-s),l.fillStyle=c.textLight,l.font=S,l.fillText(v,M,f+m/2+Hr(l,S)),s!==0&&(l.globalAlpha=1)}}const Mh={getAccessibilityString:()=>"",kind:$r.NewRow,needsHover:!0,needsHoverPosition:!1,measure:()=>200,draw:e=>Rh(e,e.cell.hint,e.cell.icon),onPaste:()=>{}};function Rh(e,t,r){let{ctx:n,rect:o,hoverAmount:i,theme:l,spriteManager:a}=e,{x:s,y:c,width:u,height:f}=o;n.beginPath(),n.globalAlpha=i,n.rect(s+1,c+1,u,f-2),n.fillStyle=l.bgHeaderHovered,n.fill(),n.globalAlpha=1,n.beginPath();let p=t!=="",m=0;if(r!==void 0){let h=f-8,v=s+8/2,S=c+8/2;a.drawSprite(r,"normal",n,v,S,h,l,p?1:i),m=h}else{m=24;let h=p?12:i*12,v=p?0:(1-i)*12*.5,S=l.cellHorizontalPadding+4;h>0&&(n.moveTo(s+S+v,c+f/2),n.lineTo(s+S+v+h,c+f/2),n.moveTo(s+S+v+h*.5,c+f/2-h*.5),n.lineTo(s+S+v+h*.5,c+f/2+h*.5),n.lineWidth=2,n.strokeStyle=l.bgIconHeader,n.lineCap="round",n.stroke())}n.fillStyle=l.textMedium,n.fillText(t,m+s+l.cellHorizontalPadding+.5,c+f/2+Hr(n,l)),n.beginPath()}function ga(e,t,r,n,o,i,l){e.textBaseline="alphabetic";let a=Eh(e,o,n,t,(r==null?void 0:r.fullSize)??!1);e.beginPath(),gr(e,a.x,a.y,a.width,a.height,t.roundingRadius??4),e.globalAlpha=i,e.fillStyle=(r==null?void 0:r.bgColor)??gn(t.textDark,.1),e.fill(),e.globalAlpha=1,e.fillStyle=t.textDark,e.textBaseline="middle",l==null||l("text")}function Eh(e,t,r,n,o){let i=n.cellHorizontalPadding,l=n.cellVerticalPadding;if(o)return{x:t.x+i/2,y:t.y+l/2+1,width:t.width-i,height:t.height-l-1};let a=wn(r,e,n.baseFontFull,"alphabetic"),s=t.height-l,c=Math.min(s,a.actualBoundingBoxAscent*2.5);return{x:t.x+i/2,y:t.y+(t.height-c)/2+1,width:a.width+i*3,height:c-1}}var Ih=d.lazy(async()=>await Ja(()=>import("./number-overlay-editor-QP1aGrq9.js").then(async e=>(await e.__tla,e)),__vite__mapDeps([7,4,5,2,3]),import.meta.url));const Th={getAccessibilityString:e=>{var t;return((t=e.data)==null?void 0:t.toString())??""},kind:pe.Number,needsHover:e=>e.hoverEffect===!0,needsHoverPosition:!1,useLabel:!0,drawPrep:Bn,draw:e=>{let{hoverAmount:t,cell:r,ctx:n,theme:o,rect:i,overrideCursor:l}=e,{hoverEffect:a,displayData:s,hoverEffectTheme:c}=r;a===!0&&t>0&&ga(n,o,c,s,i,t,l),Sr(e,e.cell.displayData,e.cell.contentAlign)},measure:(e,t,r)=>e.measureText(t.displayData).width+r.cellHorizontalPadding*2,onDelete:e=>({...e,data:void 0}),provideEditor:()=>e=>{let{isHighlighted:t,onChange:r,value:n,validatedSelection:o}=e;return d.createElement(d.Suspense,{fallback:null},d.createElement(Ih,{highlight:t,disabled:n.readonly===!0,value:n.data,fixedDecimals:n.fixedDecimals,allowNegative:n.allowNegative,thousandSeparator:n.thousandSeparator,decimalSeparator:n.decimalSeparator,validatedSelection:o,onChange:i=>r({...n,data:Number.isNaN(i.floatValue??0)?0:i.floatValue})}))},onPaste:(e,t,r)=>{let n=typeof r.rawValue=="number"?r.rawValue:Number.parseFloat(typeof r.rawValue=="string"?r.rawValue:e);if(!(Number.isNaN(n)||t.data===n))return{...t,data:n,displayData:r.formattedString??t.displayData}}},Oh={getAccessibilityString:()=>"",measure:()=>108,kind:pe.Protected,needsHover:!1,needsHoverPosition:!1,draw:Ph,onPaste:()=>{}};function Ph(e){let{ctx:t,theme:r,rect:n}=e,{x:o,y:i,height:l}=n;t.beginPath();let a=2.5,s=o+r.cellHorizontalPadding+a,c=i+l/2,u=Math.cos(Qi(30))*a,f=Math.sin(Qi(30))*a;for(let p=0;p<12;p++)t.moveTo(s,c-a),t.lineTo(s,c+a),t.moveTo(s+u,c-f),t.lineTo(s-u,c+f),t.moveTo(s-u,c-f),t.lineTo(s+u,c+f),s+=8;t.lineWidth=1.1,t.lineCap="square",t.strokeStyle=r.textLight,t.stroke()}const Hh={getAccessibilityString:e=>{var t;return((t=e.data)==null?void 0:t.toString())??""},kind:pe.RowID,needsHover:!1,needsHoverPosition:!1,drawPrep:(e,t)=>Bn(e,t,e.theme.textLight),draw:e=>Sr(e,e.cell.data,e.cell.contentAlign),measure:(e,t,r)=>e.measureText(t.data).width+r.cellHorizontalPadding*2,provideEditor:()=>e=>{let{isHighlighted:t,onChange:r,value:n,validatedSelection:o}=e;return d.createElement(vo,{highlight:t,autoFocus:n.readonly!==!0,disabled:n.readonly!==!1,value:n.data,validatedSelection:o,onChange:i=>r({...n,data:i.target.value})})},onPaste:()=>{}},Dh={getAccessibilityString:e=>{var t;return((t=e.data)==null?void 0:t.toString())??""},kind:pe.Text,needsHover:e=>e.hoverEffect===!0,needsHoverPosition:!1,drawPrep:Bn,useLabel:!0,draw:e=>{let{cell:t,hoverAmount:r,hyperWrapping:n,ctx:o,rect:i,theme:l,overrideCursor:a}=e,{displayData:s,contentAlign:c,hoverEffect:u,allowWrapping:f,hoverEffectTheme:p}=t;u===!0&&r>0&&ga(o,l,p,s,i,r,a),Sr(e,s,c,f,n)},measure:(e,t,r)=>{let n=t.displayData.split(`
|
|
131
131
|
`,t.allowWrapping===!0?void 0:1),o=0;for(let i of n)o=Math.max(o,e.measureText(i).width);return o+2*r.cellHorizontalPadding},onDelete:e=>({...e,data:""}),provideEditor:e=>({disablePadding:e.allowWrapping===!0,editor:t=>{let{isHighlighted:r,onChange:n,value:o,validatedSelection:i}=t;return d.createElement(vo,{style:e.allowWrapping===!0?{padding:"3px 8.5px"}:void 0,highlight:r,autoFocus:o.readonly!==!0,disabled:o.readonly===!0,altNewline:!0,value:o.data,validatedSelection:i,onChange:l=>n({...o,data:l.target.value})})}}),onPaste:(e,t,r)=>e===t.data?void 0:{...t,data:e,displayData:r.formattedString??t.displayData}},zh=Jt("div")({name:"UriOverlayEditorStyle",class:"gdg-u1rrojo",propsAsIs:!1});var Ah=e=>{let{uri:t,onChange:r,forceEditMode:n,readonly:o,validatedSelection:i,preview:l}=e,[a,s]=d.useState(!o&&(t===""||n)),c=d.useCallback(()=>{s(!0)},[]);return a?d.createElement(vo,{validatedSelection:i,highlight:!0,autoFocus:!0,value:t,onChange:r}):d.createElement(zh,null,d.createElement("a",{className:"gdg-link-area",href:t,target:"_blank",rel:"noopener noreferrer"},l),!o&&d.createElement("div",{className:"gdg-edit-icon",onClick:c},d.createElement(ri,null)),d.createElement("textarea",{className:"gdg-input",autoFocus:!0}))};function pa(e,t,r,n){let o=r.cellHorizontalPadding,i=t.height/2-e.actualBoundingBoxAscent/2,l=e.width,a=e.actualBoundingBoxAscent;return n==="right"?o=t.width-l-r.cellHorizontalPadding:n==="center"&&(o=t.width/2-l/2),{x:o,y:i,width:l,height:a}}function ma(e){let{cell:t,bounds:r,posX:n,posY:o,theme:i}=e,l=t.displayData??t.data;if(t.hoverEffect!==!0||t.onClickUri===void 0)return!1;let a=dl(l,i.baseFontFull);if(a===void 0)return!1;let s=pa(a,r,i,t.contentAlign);return qr({x:s.x-4,y:s.y-4,width:s.width+8,height:s.height+8},n,o)}const Lh=[xh,Mh,th,ih,uh,gh,vh,bh,Th,Oh,Hh,Dh,{getAccessibilityString:e=>{var t;return((t=e.data)==null?void 0:t.toString())??""},kind:pe.Uri,needsHover:e=>e.hoverEffect===!0,needsHoverPosition:!0,useLabel:!0,drawPrep:Bn,draw:e=>{let{cell:t,theme:r,overrideCursor:n,hoverX:o,hoverY:i,rect:l,ctx:a}=e,s=t.displayData??t.data,c=t.hoverEffect===!0;if(n!==void 0&&c&&o!==void 0&&i!==void 0){let{x:u,y:f,width:p,height:m}=pa(wn(s,a,r.baseFontFull),l,r,t.contentAlign);if(o>=u-4&&o<=u-4+p+8&&i>=f-4&&i<=f-4+m+8){let h=Hr(a,r.baseFontFull);n("pointer");let v=f-h;a.beginPath(),a.moveTo(l.x+u,Math.floor(l.y+v+m+5)+.5),a.lineTo(l.x+u+p,Math.floor(l.y+v+m+5)+.5),a.strokeStyle=r.linkColor,a.stroke(),a.save(),a.fillStyle=e.cellFillColor,Sr({...e,rect:{...l,x:l.x-1}},s,t.contentAlign),Sr({...e,rect:{...l,x:l.x-2}},s,t.contentAlign),Sr({...e,rect:{...l,x:l.x+1}},s,t.contentAlign),Sr({...e,rect:{...l,x:l.x+2}},s,t.contentAlign),a.restore()}}a.fillStyle=c?r.linkColor:r.textDark,Sr(e,s,t.contentAlign)},onSelect:e=>{ma(e)&&e.preventDefault()},onClick:e=>{var r;let{cell:t}=e;ma(e)&&((r=t.onClickUri)==null||r.call(t,e))},measure:(e,t,r)=>e.measureText(t.displayData??t.data).width+r.cellHorizontalPadding*2,onDelete:e=>({...e,data:""}),provideEditor:e=>t=>{let{onChange:r,value:n,forceEditMode:o,validatedSelection:i}=t;return d.createElement(Ah,{forceEditMode:n.readonly!==!0&&(o||e.hoverEffect===!0&&e.onClickUri!==void 0),uri:n.data,preview:n.displayData??n.data,validatedSelection:i,readonly:n.readonly===!0,onChange:l=>r({...n,data:l.target.value})})},onPaste:(e,t,r)=>e===t.data?void 0:{...t,data:e,displayData:r.formattedString??t.displayData}}];var jh=Gt(U(((e,t)=>{var r=ti(),n=ho(),o="Expected a function";function i(l,a,s){var c=!0,u=!0;if(typeof l!="function")throw TypeError(o);return n(s)&&(c="leading"in s?!!s.leading:c,u="trailing"in s?!!s.trailing:u),r(l,a,{leading:c,maxWait:a,trailing:u})}t.exports=i}))(),1),ki=[],Fh=class extends vl{constructor(){super(...arguments);tt(this,"imageLoaded",()=>{});tt(this,"loadedLocations",[]);tt(this,"cache",{});tt(this,"sendLoaded",(0,jh.default)(()=>{this.imageLoaded(new $n(this.loadedLocations)),this.loadedLocations=[]},20));tt(this,"clearOutOfWindow",()=>{let t=Object.keys(this.cache);for(let r of t){let n=this.cache[r],o=!1;for(let i=0;i<n.cells.length;i++){let l=n.cells[i];if(this.isInWindow(l)){o=!0;break}}o?n.cells=n.cells.filter(this.isInWindow):(n.cancel(),delete this.cache[r])}})}setCallback(t){this.imageLoaded=t}loadImage(t,r,n,o){let i=!1,l=ki.pop()??new Image,a=!1,s={img:void 0,cells:[or(r,n)],url:t,cancel:()=>{a||(a=!0,ki.length<12?ki.unshift(l):i||(l.src=""))}},c=new Promise(u=>l.addEventListener("load",()=>u(null)));requestAnimationFrame(async()=>{try{l.src=t,await c,await l.decode();let u=this.cache[o];if(u!==void 0&&!a){u.img=l;for(let f of u.cells)this.loadedLocations.push(ui(f));i=!0,this.sendLoaded()}}catch{s.cancel()}}),this.cache[o]=s}loadOrGetImage(t,r,n){let o=t,i=this.cache[o];if(i!==void 0){let l=or(r,n);return i.cells.includes(l)||i.cells.push(l),i.img}else this.loadImage(t,r,n,o)}};const _h=d.forwardRef((e,t)=>{let r=d.useMemo(()=>({...Pc,...e.headerIcons}),[e.headerIcons]),n=d.useMemo(()=>e.imageWindowLoader??new Fh,[e.imageWindowLoader]);return d.createElement(eh,{...e,renderers:Lh,headerIcons:r,ref:t,imageWindowLoader:n})});function Nh(e){switch(e){case"string":return pe.Text;case"number":return pe.Number;case"boolean":return pe.Boolean;default:return pe.Text}}function Wh(e){switch(e){case"string":return Vr.HeaderString;case"number":case"integer":return Vr.HeaderNumber;case"boolean":return Vr.HeaderBoolean;case"date":case"datetime":return Vr.HeaderDate;case"time":return Vr.HeaderTime;case"unknown":return Vr.HeaderString;default:return Va(e),Vr.HeaderString}}function va(e){return"rowIdx"in e&&"columnId"in e&&"value"in e}function Bh(e){return"rowIdx"in e&&"type"in e}function $h(e){return"columnIdx"in e&&"type"in e}function Vh(e){let{selection:t,data:r,setData:n,onAddEdits:o,columns:i,editableColumns:l}=e;if(!t.current)return;let{range:a}=t.current,{x:s,y:c}=a;navigator.clipboard.readText().then(u=>{if(!u.trim())return;let f=u.split(`
|
|
132
|
-
`).filter(h=>h.trim()),p=[];for(let h of f){let v=h.split(" ");p.push(v)}if(p.length===0)return;let m=[];for(let[h,v]of p.entries()){if(!v)continue;let S=c+h;if(S>=r.length)break;for(let[M,y]of v.entries()){if(y===void 0)continue;let k=s+M;if(!i||k>=i.length)break;let I=i[k],P=I.dataType;if(!(l==="all"||l.includes(I.title)))continue;let E=y;switch(P){case"integer":case"number":{let F=Number(y);if(Number.isNaN(F))continue;E=F;break}case"boolean":{let F=y.toLowerCase();E=F==="true"||F==="1";break}}let O=i[k].title;m.push({rowIdx:S,columnId:O,value:E})}}m.length>0&&(o(m),n(h=>{let v=[...h];for(let S of m)if(va(S)){let M=S.rowIdx,y=S.columnId;if(M<v.length){let k=v[M];y in k&&(k[y]=S.value)}}return v}))}).catch(u=>{Wi.error("Failed to read clipboard data",u)})}function Kh(e){return e==="light"?{lineHeight:1.25}:{lineHeight:1.25,accentColor:"#7c3aed",accentLight:"rgba(124, 58, 237, 0.15)",textDark:"#f4f4f5",textMedium:"#a1a1aa",textLight:"#71717a",textBubble:"#f4f4f5",bgIconHeader:"#a1a1aa",fgIconHeader:"#18181b",textHeader:"#d4d4d8",textHeaderSelected:"#18181b",bgCell:"#18181b",bgCellMedium:"#27272a",bgHeader:"#27272a",bgHeaderHasFocus:"#3f3f46",bgHeaderHovered:"#3f3f46",bgBubble:"#27272a",bgBubbleSelected:"#7c3aed",bgSearchResult:"#312e81",borderColor:"#27272a",drilldownBorder:"#7c3aed",linkColor:"#818cf8",headerFontStyle:"bold 14px",baseFontStyle:"13px"}}var wa=M0(),Ae=Gt(T0(),1);const Yh=e=>{let t=(0,wa.c)(19),{currentColumnName:r,onRename:n,onCancel:o}=e,[i,l]=(0,d.useState)(""),a;t[0]!==r||t[1]!==i||t[2]!==n?(a=()=>{i.trim()&&(n(i.trim()),l(r))},t[0]=r,t[1]=i,t[2]=n,t[3]=a):a=t[3];let s=a,c;t[4]!==s||t[5]!==o?(c=y=>{y.key==="Enter"?s():y.key==="Escape"&&o()},t[4]=s,t[5]=o,t[6]=c):c=t[6];let u=c,f;t[7]===Symbol.for("react.memo_cache_sentinel")?(f=(0,Ae.jsxs)(Ua,{children:[(0,Ae.jsx)(N0,{className:"mr-2 h-3.5 w-3.5"}),"Rename column"]}),t[7]=f):f=t[7];let p;t[8]===Symbol.for("react.memo_cache_sentinel")?(p=(0,Ae.jsx)(Vi,{htmlFor:"rename-input",children:"Column name"}),t[8]=p):p=t[8];let m;t[9]===Symbol.for("react.memo_cache_sentinel")?(m=y=>l(y.target.value),t[9]=m):m=t[9];let h;t[10]!==u||t[11]!==i?(h=(0,Ae.jsxs)("div",{children:[p,(0,Ae.jsx)(Za,{value:i,onChange:m,placeholder:"Enter new column name",className:"mt-1",onKeyDown:u})]}),t[10]=u,t[11]=i,t[12]=h):h=t[12];let v=!i.trim(),S;t[13]!==s||t[14]!==v?(S=(0,Ae.jsx)($i,{onClick:s,disabled:v,size:"sm",className:"w-full",children:"Rename"}),t[13]=s,t[14]=v,t[15]=S):S=t[15];let M;return t[16]!==h||t[17]!==S?(M=(0,Ae.jsxs)(qa,{children:[f,(0,Ae.jsx)(Xa,{children:(0,Ae.jsx)(Ga,{className:"w-64 p-4",children:(0,Ae.jsxs)("div",{className:"space-y-3",children:[h,S]})})})]}),t[16]=h,t[17]=S,t[18]=M):M=t[18],M},ya=e=>{let t=(0,wa.c)(77),{direction:r,onAdd:n,onCancel:o}=e,[i,l]=(0,d.useState)(""),[a,s]=(0,d.useState)("string"),c,u,f,p,m,h,v,S,M,y,k,I,P,E,O;if(t[0]!==i||t[1]!==a||t[2]!==r||t[3]!==n||t[4]!==o){let J=["string","number","boolean","datetime"],_;t[20]!==i||t[21]!==a||t[22]!==n?(_=()=>{i.trim()&&(n(i.trim(),a),l(""),s("string"))},t[20]=i,t[21]=a,t[22]=n,t[23]=_):_=t[23],h=_;let Q;t[24]!==h||t[25]!==o?(Q=le=>{le.key==="Enter"?h():le.key==="Escape"&&o()},t[24]=h,t[25]=o,t[26]=Q):Q=t[26];let ee=Q;m=qa;let K;t[27]===Symbol.for("react.memo_cache_sentinel")?(K=(0,Ae.jsx)(W0,{className:"mr-2 h-3.5 w-3.5"}),t[27]=K):K=t[27],t[28]===r?O=t[29]:(O=(0,Ae.jsxs)(Ua,{children:[K,"Add column to the ",r]}),t[28]=r,t[29]=O),p=Xa,f=Ga,E="w-64 p-4",I="space-y-3";let se=`add-column-input-${r}`,oe;t[30]===se?oe=t[31]:(oe=(0,Ae.jsx)(Vi,{htmlFor:se,children:"Column name"}),t[30]=se,t[31]=oe);let ue=`add-column-input-${r}`,de;t[32]===Symbol.for("react.memo_cache_sentinel")?(de=le=>l(le.target.value),t[32]=de):de=t[32];let X;t[33]!==i||t[34]!==ee||t[35]!==ue?(X=(0,Ae.jsx)(Za,{id:ue,value:i,onChange:de,placeholder:"Enter column name",className:"mt-1",onKeyDown:ee}),t[33]=i,t[34]=ee,t[35]=ue,t[36]=X):X=t[36],t[37]!==oe||t[38]!==X?(P=(0,Ae.jsxs)("div",{children:[oe,X]}),t[37]=oe,t[38]=X,t[39]=P):P=t[39];let q=`add-column-type-${r}`;t[40]===q?k=t[41]:(k=(0,Ae.jsx)(Vi,{htmlFor:q,children:"Data type"}),t[40]=q,t[41]=k),u=L0,S=a,t[42]===Symbol.for("react.memo_cache_sentinel")?(M=le=>s(le),t[42]=M):M=t[42];let te=`add-column-type-${r}`,ne;t[43]===Symbol.for("react.memo_cache_sentinel")?(ne=(0,Ae.jsx)(H0,{}),t[43]=ne):ne=t[43],t[44]===te?y=t[45]:(y=(0,Ae.jsx)(A0,{id:te,className:"mt-1",children:ne}),t[44]=te,t[45]=y),c=z0,v=J.map(Gh),t[0]=i,t[1]=a,t[2]=r,t[3]=n,t[4]=o,t[5]=c,t[6]=u,t[7]=f,t[8]=p,t[9]=m,t[10]=h,t[11]=v,t[12]=S,t[13]=M,t[14]=y,t[15]=k,t[16]=I,t[17]=P,t[18]=E,t[19]=O}else c=t[5],u=t[6],f=t[7],p=t[8],m=t[9],h=t[10],v=t[11],S=t[12],M=t[13],y=t[14],k=t[15],I=t[16],P=t[17],E=t[18],O=t[19];let F;t[46]!==c||t[47]!==v?(F=(0,Ae.jsx)(c,{children:v}),t[46]=c,t[47]=v,t[48]=F):F=t[48];let C;t[49]!==u||t[50]!==F||t[51]!==S||t[52]!==M||t[53]!==y?(C=(0,Ae.jsxs)(u,{value:S,onValueChange:M,children:[y,F]}),t[49]=u,t[50]=F,t[51]=S,t[52]=M,t[53]=y,t[54]=C):C=t[54];let R;t[55]!==C||t[56]!==k?(R=(0,Ae.jsxs)("div",{children:[k,C]}),t[55]=C,t[56]=k,t[57]=R):R=t[57];let L=!i.trim(),x;t[58]!==h||t[59]!==L?(x=(0,Ae.jsx)($i,{onClick:h,disabled:L,size:"sm",className:"w-full",children:"Add"}),t[58]=h,t[59]=L,t[60]=x):x=t[60];let w;t[61]!==R||t[62]!==x||t[63]!==I||t[64]!==P?(w=(0,Ae.jsxs)("div",{className:I,children:[P,R,x]}),t[61]=R,t[62]=x,t[63]=I,t[64]=P,t[65]=w):w=t[65];let T;t[66]!==f||t[67]!==w||t[68]!==E?(T=(0,Ae.jsx)(f,{className:E,children:w}),t[66]=f,t[67]=w,t[68]=E,t[69]=T):T=t[69];let H;t[70]!==p||t[71]!==T?(H=(0,Ae.jsx)(p,{children:T}),t[70]=p,t[71]=T,t[72]=H):H=t[72];let b;return t[73]!==m||t[74]!==H||t[75]!==O?(b=(0,Ae.jsxs)(m,{children:[O,H]}),t[73]=m,t[74]=H,t[75]=O,t[76]=b):b=t[76],b};function Gh(e){return(0,Ae.jsx)(D0,{value:e,children:E0(e)},e)}function ba(e,t){return e.map(r=>{let n=r,o=Object.keys(n);if(t<0||t>=o.length)return n;let i=o[t],{[i]:l,...a}=n;return a})}function xa(e,t){return t?e.map(r=>({...r,[t]:""})):e}function Ca(e,t,r){return!t||!r||t===r?e:e.map(n=>{let o=n,{[t]:i,...l}=o;return{...l,[r]:o[t]}})}function xn(e){var l;let{columnFields:t,columnIdx:r,type:n,dataType:o,newColumnName:i}=e;switch(n){case"insert":{if(!i)return Wi.error("newName is required for insert"),t;let a=Object.entries(t),s=[...a.slice(0,r),[i,o||"string"],...a.slice(r)];return Object.fromEntries(s)}case"remove":{if(r<0||r>=Object.keys(t).length)return t;let a=(l=Object.entries(t)[r])==null?void 0:l[0];if(a){let{[a]:s,...c}=t;return c}return t}case"rename":{if(!i)return Wi.error("newName is required for rename"),t;if(r<0||r>=Object.keys(t).length)return t;let a=Object.entries(t),s=[...a.slice(0,r),[i,o||"string"],...a.slice(r+1)];return Object.fromEntries(s)}}}Ui=({data:e,setData:t,columnFields:r,setColumnFields:n,editableColumns:o,edits:i,onAddEdits:l,onAddRows:a,onDeleteRows:s,onRenameColumn:c,onDeleteColumn:u,onAddColumn:f})=>{let{theme:p}=V0(),m=(0,d.useRef)(null),[h,v]=(0,d.useState)(),[S,M]=(0,d.useState)(!1),[y,k]=d.useState({columns:nt.empty(),rows:nt.empty()}),[I,P]=(0,d.useState)({}),E=P0();R0(()=>{if(i.length===0)return;let q=new Map;for(let ne of i)if(va(ne))if(ne.rowIdx>=e.length){q.has(ne.rowIdx)||q.set(ne.rowIdx,{});let le=q.get(ne.rowIdx);le&&(le[ne.columnId]=ne.value)}else t(le=>{let Fe=[...le];return Fe[ne.rowIdx][ne.columnId]=ne.value,Fe});else if(Bh(ne)&&ne.type===Xo.Remove)t(le=>le.filter((Fe,Oe)=>Oe!==ne.rowIdx));else if($h(ne))switch(ne.type){case Xo.Remove:t(le=>ba(le,ne.columnIdx)),n(le=>xn({columnFields:le,columnIdx:ne.columnIdx,type:"remove"}));break;case Xo.Insert:n(le=>xn({columnFields:le,columnIdx:ne.columnIdx,type:"insert",newColumnName:ne.newName})),t(le=>xa(le,ne.newName));break;case Xo.Rename:{let le=O[ne.columnIdx].title,Fe=ne.newName;if(!le||!Fe)return;n(Oe=>xn({columnFields:Oe,columnIdx:ne.columnIdx,type:"rename",newColumnName:Fe})),t(Oe=>Ca(Oe,le,Fe));break}}let te=[...q.entries()].sort(([ne],[le])=>ne-le).map(([,ne])=>ne);te.length>0&&t(ne=>[...ne,...te]),E()});let O=(0,d.useMemo)(()=>{let q=[];for(let[te,ne]of Object.entries(r)){let le=o==="all"||o.includes(te);q.push({id:te,title:te,width:I[te],icon:le?Wh(ne):Vr.ProtectedColumnOverlay,style:"normal",kind:Nh(ne),dataType:ne,hasMenu:!0,themeOverride:le?void 0:{bgCell:p==="light"?"#F9F9FA":"#1e1e21"}})}return q},[r,I,o,p]),F=(0,d.useCallback)(q=>{let[te,ne]=q,le=e[ne][O[te].title],Fe=O[te].kind,Oe=o==="all"||o.includes(O[te].title);if(Fe===pe.Boolean){let Ee=!!le;return{kind:pe.Boolean,allowOverlay:!1,readonly:!Oe,data:Ee}}return Fe===pe.Number&&typeof le=="number"?{kind:pe.Number,allowOverlay:Oe,readonly:!Oe,displayData:String(le),data:le}:{kind:pe.Text,allowOverlay:Oe,readonly:!Oe,displayData:String(le),data:String(le)}},[O,e,o]),C=(0,d.useCallback)((q,te)=>{let[ne,le]=q,Fe=O[ne],Oe=Fe.title,Ee=te.data;(Fe.dataType==="number"||Fe.dataType==="integer")&&(te.data===void 0||te.data==="")&&(Ee=null),t(Ge=>{let Me=[...Ge];return Me[le][Oe]=Ee,Me}),l([{rowIdx:le,columnId:Oe,value:Ee}])},[O,l,t]),R=(0,d.useCallback)((q,te)=>{P(ne=>({...ne,[q.title]:te}))},[]),L=(0,d.useCallback)((q,te,ne)=>{let[le,Fe]=q;switch(r[O[le].title]){case"number":case"integer":if(Number.isNaN(Number(te.data)))return!1;break;case"boolean":if(typeof te.data!="boolean")return!1;break}return!0},[r,O]),x=(0,d.useCallback)(q=>{if(m.current){if(Bi.isMetaOrCtrl(q)&&q.key==="c"){m.current.emit("copy");return}if(Bi.isMetaOrCtrl(q)&&q.key==="v"){Vh({selection:y,data:e,setData:t,columns:O,editableColumns:o,onAddEdits:l});return}if(Bi.isMetaOrCtrl(q)&&q.key==="f"){M(te=>!te),q.stopPropagation(),q.preventDefault();return}if(q.key==="Escape"){M(!1);return}}},[O,e,o,l,y,t]),w=(0,d.useCallback)(()=>{let q=Object.fromEntries(O.map(te=>{let ne=te.dataType;switch(ne){case"boolean":return[te.title,!1];case"number":case"integer":return[te.title,null];case"date":case"datetime":case"time":return[te.title,new Date];case"string":case"unknown":return[te.title,""];default:return Va(ne),[te.title,""]}}));a([q]),t(te=>[...te,q])},[O,a,t]),T=()=>{let q=y.rows.toArray();s(q);let te=0;for(let ne of q){let le=ne-te;t(Fe=>Fe.filter((Oe,Ee)=>Ee!==le)),te++}k({columns:nt.empty(),rows:nt.empty()})},H=k0((q,te)=>{v({col:q,bounds:te})}),b=async()=>{if(h){let q=O[h.col].title;await K0(q),v(void 0)}};function J(q){$0({title:`Column '${q}' already exists`,description:"Please enter a different column name",variant:"danger"})}let _=q=>{if(h){let te=O[h.col].title;if(r[q]){J(q);return}let ne=O[h.col].dataType;c(h.col,q),n(le=>xn({columnFields:le,columnIdx:h.col,type:"rename",dataType:ne,newColumnName:q})),t(le=>Ca(le,te,q)),v(void 0)}},Q=()=>{h&&(u(h.col),n(q=>xn({columnFields:q,columnIdx:h.col,type:"remove"})),t(q=>ba(q,h.col)),v(void 0))},ee=q=>{let{direction:te,columnName:ne,dataType:le}=q;if(h){let Fe=h.col+(te==="left"?0:1),Oe=Math.max(0,Math.min(Fe,O.length));if(r[ne]){J(ne);return}f(Oe,ne),n(Ee=>xn({columnFields:Ee,columnIdx:Oe,type:"insert",dataType:le,newColumnName:ne})),t(Ee=>xa(Ee,ne)),v(void 0)}},K=(h==null?void 0:h.col)===O.length-1,se=h!==void 0,oe="mr-2 h-3.5 w-3.5",ue={hint:"New row",sticky:!0,tint:!0},de=e.length>1e5,X=o==="all";return(0,Ae.jsxs)("div",{className:"relative",children:[(0,Ae.jsx)(I0,{children:(0,Ae.jsx)(_h,{ref:m,getCellContent:F,columns:O,gridSelection:y,onGridSelectionChange:k,rows:e.length,overscrollX:50,smoothScrollX:!de,smoothScrollY:!de,validateCell:L,getCellsForSelection:!0,onPaste:!0,showSearch:S,fillHandle:!0,allowedFillDirections:"vertical",onKeyDown:x,height:e.length>10?450:void 0,rowMarkers:{kind:"both"},rowSelectionMode:"multi",onCellEdited:C,onColumnResize:R,onHeaderMenuClick:H,theme:Kh(p),trailingRowOptions:ue,onRowAppended:w,maxColumnAutoWidth:600,maxColumnWidth:600})}),(()=>{if(!se)return;let q=(0,Ae.jsxs)(Ae.Fragment,{children:[X&&(0,Ae.jsx)(Yh,{currentColumnName:O[h.col].title,onRename:_,onCancel:()=>v(void 0)}),(0,Ae.jsx)(Ya,{}),(0,Ae.jsx)(ya,{direction:"left",onAdd:(te,ne)=>ee({direction:"left",columnName:te,dataType:ne}),onCancel:()=>v(void 0)}),(0,Ae.jsx)(ya,{direction:"right",onAdd:(te,ne)=>ee({direction:"right",columnName:te,dataType:ne}),onCancel:()=>v(void 0)}),(0,Ae.jsx)(Ya,{}),!K&&X&&(0,Ae.jsxs)(Ka,{onClick:Q,className:"text-destructive focus:text-destructive",children:[(0,Ae.jsx)(B0,{className:oe}),"Delete column"]})]});return(0,Ae.jsx)(F0,{open:se,onOpenChange:te=>!te&&v(void 0),children:(0,Ae.jsxs)(j0,{style:{left:(h==null?void 0:h.bounds.x)??0,top:((h==null?void 0:h.bounds.y)??0)+((h==null?void 0:h.bounds.height)??0)},className:"fixed w-52",children:[(0,Ae.jsxs)(Ka,{onClick:b,children:[(0,Ae.jsx)(_0,{className:oe}),"Copy column name"]}),!de&&q]})})})(),(0,Ae.jsx)("div",{className:"absolute bottom-1 right-2 w-26",children:(0,Ae.jsx)($i,{variant:"destructive",size:"sm",disabled:y.rows.length===0,className:"right-2 h-7",onClick:T,children:y.rows.length<=1?"Delete row":"Delete rows"})})]})},fs=Ui})();export{Ui as GlideDataEditor,of as __tla,fs as default};
|
|
132
|
+
`).filter(h=>h.trim()),p=[];for(let h of f){let v=h.split(" ");p.push(v)}if(p.length===0)return;let m=[];for(let[h,v]of p.entries()){if(!v)continue;let S=c+h;if(S>=r.length)break;for(let[M,y]of v.entries()){if(y===void 0)continue;let k=s+M;if(!i||k>=i.length)break;let I=i[k],P=I.dataType;if(!(l==="all"||l.includes(I.title)))continue;let E=y;switch(P){case"integer":case"number":{let F=Number(y);if(Number.isNaN(F))continue;E=F;break}case"boolean":{let F=y.toLowerCase();E=F==="true"||F==="1";break}}let O=i[k].title;m.push({rowIdx:S,columnId:O,value:E})}}m.length>0&&(o(m),n(h=>{let v=[...h];for(let S of m)if(va(S)){let M=S.rowIdx,y=S.columnId;if(M<v.length){let k=v[M];y in k&&(k[y]=S.value)}}return v}))}).catch(u=>{Wi.error("Failed to read clipboard data",u)})}function Kh(e){return e==="light"?{lineHeight:1.25}:{lineHeight:1.25,accentColor:"#7c3aed",accentLight:"rgba(124, 58, 237, 0.15)",textDark:"#f4f4f5",textMedium:"#a1a1aa",textLight:"#71717a",textBubble:"#f4f4f5",bgIconHeader:"#a1a1aa",fgIconHeader:"#18181b",textHeader:"#d4d4d8",textHeaderSelected:"#18181b",bgCell:"#18181b",bgCellMedium:"#27272a",bgHeader:"#27272a",bgHeaderHasFocus:"#3f3f46",bgHeaderHovered:"#3f3f46",bgBubble:"#27272a",bgBubbleSelected:"#7c3aed",bgSearchResult:"#312e81",borderColor:"#27272a",drilldownBorder:"#7c3aed",linkColor:"#818cf8",headerFontStyle:"bold 14px",baseFontStyle:"13px"}}var wa=M0(),Ae=Gt(T0(),1);const Yh=e=>{let t=(0,wa.c)(19),{currentColumnName:r,onRename:n,onCancel:o}=e,[i,l]=(0,d.useState)(""),a;t[0]!==r||t[1]!==i||t[2]!==n?(a=()=>{i.trim()&&(n(i.trim()),l(r))},t[0]=r,t[1]=i,t[2]=n,t[3]=a):a=t[3];let s=a,c;t[4]!==s||t[5]!==o?(c=y=>{y.key==="Enter"?s():y.key==="Escape"&&o()},t[4]=s,t[5]=o,t[6]=c):c=t[6];let u=c,f;t[7]===Symbol.for("react.memo_cache_sentinel")?(f=(0,Ae.jsxs)(Ua,{children:[(0,Ae.jsx)(N0,{className:"mr-2 h-3.5 w-3.5"}),"Rename column"]}),t[7]=f):f=t[7];let p;t[8]===Symbol.for("react.memo_cache_sentinel")?(p=(0,Ae.jsx)(Vi,{htmlFor:"rename-input",children:"Column name"}),t[8]=p):p=t[8];let m;t[9]===Symbol.for("react.memo_cache_sentinel")?(m=y=>l(y.target.value),t[9]=m):m=t[9];let h;t[10]!==u||t[11]!==i?(h=(0,Ae.jsxs)("div",{children:[p,(0,Ae.jsx)(Za,{value:i,onChange:m,placeholder:"Enter new column name",className:"mt-1",onKeyDown:u})]}),t[10]=u,t[11]=i,t[12]=h):h=t[12];let v=!i.trim(),S;t[13]!==s||t[14]!==v?(S=(0,Ae.jsx)($i,{onClick:s,disabled:v,size:"sm",className:"w-full",children:"Rename"}),t[13]=s,t[14]=v,t[15]=S):S=t[15];let M;return t[16]!==h||t[17]!==S?(M=(0,Ae.jsxs)(qa,{children:[f,(0,Ae.jsx)(Xa,{children:(0,Ae.jsx)(Ga,{className:"w-64 p-4",children:(0,Ae.jsxs)("div",{className:"space-y-3",children:[h,S]})})})]}),t[16]=h,t[17]=S,t[18]=M):M=t[18],M},ya=e=>{let t=(0,wa.c)(77),{direction:r,onAdd:n,onCancel:o}=e,[i,l]=(0,d.useState)(""),[a,s]=(0,d.useState)("string"),c,u,f,p,m,h,v,S,M,y,k,I,P,E,O;if(t[0]!==i||t[1]!==a||t[2]!==r||t[3]!==n||t[4]!==o){let J=["string","number","boolean","datetime"],_;t[20]!==i||t[21]!==a||t[22]!==n?(_=()=>{i.trim()&&(n(i.trim(),a),l(""),s("string"))},t[20]=i,t[21]=a,t[22]=n,t[23]=_):_=t[23],h=_;let Q;t[24]!==h||t[25]!==o?(Q=le=>{le.key==="Enter"?h():le.key==="Escape"&&o()},t[24]=h,t[25]=o,t[26]=Q):Q=t[26];let ee=Q;m=qa;let K;t[27]===Symbol.for("react.memo_cache_sentinel")?(K=(0,Ae.jsx)(W0,{className:"mr-2 h-3.5 w-3.5"}),t[27]=K):K=t[27],t[28]===r?O=t[29]:(O=(0,Ae.jsxs)(Ua,{children:[K,"Add column to the ",r]}),t[28]=r,t[29]=O),p=Xa,f=Ga,E="w-64 p-4",I="space-y-3";let se=`add-column-input-${r}`,oe;t[30]===se?oe=t[31]:(oe=(0,Ae.jsx)(Vi,{htmlFor:se,children:"Column name"}),t[30]=se,t[31]=oe);let ue=`add-column-input-${r}`,de;t[32]===Symbol.for("react.memo_cache_sentinel")?(de=le=>l(le.target.value),t[32]=de):de=t[32];let X;t[33]!==i||t[34]!==ee||t[35]!==ue?(X=(0,Ae.jsx)(Za,{id:ue,value:i,onChange:de,placeholder:"Enter column name",className:"mt-1",onKeyDown:ee}),t[33]=i,t[34]=ee,t[35]=ue,t[36]=X):X=t[36],t[37]!==oe||t[38]!==X?(P=(0,Ae.jsxs)("div",{children:[oe,X]}),t[37]=oe,t[38]=X,t[39]=P):P=t[39];let q=`add-column-type-${r}`;t[40]===q?k=t[41]:(k=(0,Ae.jsx)(Vi,{htmlFor:q,children:"Data type"}),t[40]=q,t[41]=k),u=L0,S=a,t[42]===Symbol.for("react.memo_cache_sentinel")?(M=le=>s(le),t[42]=M):M=t[42];let te=`add-column-type-${r}`,ne;t[43]===Symbol.for("react.memo_cache_sentinel")?(ne=(0,Ae.jsx)(H0,{}),t[43]=ne):ne=t[43],t[44]===te?y=t[45]:(y=(0,Ae.jsx)(A0,{id:te,className:"mt-1",children:ne}),t[44]=te,t[45]=y),c=z0,v=J.map(Gh),t[0]=i,t[1]=a,t[2]=r,t[3]=n,t[4]=o,t[5]=c,t[6]=u,t[7]=f,t[8]=p,t[9]=m,t[10]=h,t[11]=v,t[12]=S,t[13]=M,t[14]=y,t[15]=k,t[16]=I,t[17]=P,t[18]=E,t[19]=O}else c=t[5],u=t[6],f=t[7],p=t[8],m=t[9],h=t[10],v=t[11],S=t[12],M=t[13],y=t[14],k=t[15],I=t[16],P=t[17],E=t[18],O=t[19];let F;t[46]!==c||t[47]!==v?(F=(0,Ae.jsx)(c,{children:v}),t[46]=c,t[47]=v,t[48]=F):F=t[48];let C;t[49]!==u||t[50]!==F||t[51]!==S||t[52]!==M||t[53]!==y?(C=(0,Ae.jsxs)(u,{value:S,onValueChange:M,children:[y,F]}),t[49]=u,t[50]=F,t[51]=S,t[52]=M,t[53]=y,t[54]=C):C=t[54];let R;t[55]!==C||t[56]!==k?(R=(0,Ae.jsxs)("div",{children:[k,C]}),t[55]=C,t[56]=k,t[57]=R):R=t[57];let L=!i.trim(),x;t[58]!==h||t[59]!==L?(x=(0,Ae.jsx)($i,{onClick:h,disabled:L,size:"sm",className:"w-full",children:"Add"}),t[58]=h,t[59]=L,t[60]=x):x=t[60];let w;t[61]!==R||t[62]!==x||t[63]!==I||t[64]!==P?(w=(0,Ae.jsxs)("div",{className:I,children:[P,R,x]}),t[61]=R,t[62]=x,t[63]=I,t[64]=P,t[65]=w):w=t[65];let T;t[66]!==f||t[67]!==w||t[68]!==E?(T=(0,Ae.jsx)(f,{className:E,children:w}),t[66]=f,t[67]=w,t[68]=E,t[69]=T):T=t[69];let H;t[70]!==p||t[71]!==T?(H=(0,Ae.jsx)(p,{children:T}),t[70]=p,t[71]=T,t[72]=H):H=t[72];let b;return t[73]!==m||t[74]!==H||t[75]!==O?(b=(0,Ae.jsxs)(m,{children:[O,H]}),t[73]=m,t[74]=H,t[75]=O,t[76]=b):b=t[76],b};function Gh(e){return(0,Ae.jsx)(D0,{value:e,children:E0(e)},e)}function ba(e,t){return e.map(r=>{let n=r,o=Object.keys(n);if(t<0||t>=o.length)return n;let i=o[t],{[i]:l,...a}=n;return a})}function xa(e,t){return t?e.map(r=>({...r,[t]:""})):e}function Ca(e,t,r){return!t||!r||t===r?e:e.map(n=>{let o=n,{[t]:i,...l}=o;return{...l,[r]:o[t]}})}function xn(e){var l;let{columnFields:t,columnIdx:r,type:n,dataType:o,newColumnName:i}=e;switch(n){case"insert":{if(!i)return Wi.error("newName is required for insert"),t;let a=Object.entries(t),s=[...a.slice(0,r),[i,o||"string"],...a.slice(r)];return Object.fromEntries(s)}case"remove":{if(r<0||r>=Object.keys(t).length)return t;let a=(l=Object.entries(t)[r])==null?void 0:l[0];if(a){let{[a]:s,...c}=t;return c}return t}case"rename":{if(!i)return Wi.error("newName is required for rename"),t;if(r<0||r>=Object.keys(t).length)return t;let a=Object.entries(t),s=[...a.slice(0,r),[i,o||"string"],...a.slice(r+1)];return Object.fromEntries(s)}}}Ui=({data:e,setData:t,columnFields:r,setColumnFields:n,editableColumns:o,edits:i,onAddEdits:l,onAddRows:a,onDeleteRows:s,onRenameColumn:c,onDeleteColumn:u,onAddColumn:f})=>{let{theme:p}=V0(),m=(0,d.useRef)(null),[h,v]=(0,d.useState)(),[S,M]=(0,d.useState)(!1),[y,k]=d.useState({columns:nt.empty(),rows:nt.empty()}),[I,P]=(0,d.useState)({}),E=P0();R0(()=>{if(i.length===0)return;let q=new Map;for(let ne of i)if(va(ne))if(ne.rowIdx>=e.length){q.has(ne.rowIdx)||q.set(ne.rowIdx,{});let le=q.get(ne.rowIdx);le&&(le[ne.columnId]=ne.value)}else t(le=>{let Fe=[...le];return Fe[ne.rowIdx][ne.columnId]=ne.value,Fe});else if(Bh(ne)&&ne.type===Xo.Remove)t(le=>le.filter((Fe,Oe)=>Oe!==ne.rowIdx));else if($h(ne))switch(ne.type){case Xo.Remove:t(le=>ba(le,ne.columnIdx)),n(le=>xn({columnFields:le,columnIdx:ne.columnIdx,type:"remove"}));break;case Xo.Insert:n(le=>xn({columnFields:le,columnIdx:ne.columnIdx,type:"insert",newColumnName:ne.newName})),t(le=>xa(le,ne.newName));break;case Xo.Rename:{let le=O[ne.columnIdx].title,Fe=ne.newName;if(!le||!Fe)return;n(Oe=>xn({columnFields:Oe,columnIdx:ne.columnIdx,type:"rename",newColumnName:Fe})),t(Oe=>Ca(Oe,le,Fe));break}}let te=[...q.entries()].sort(([ne],[le])=>ne-le).map(([,ne])=>ne);te.length>0&&t(ne=>[...ne,...te]),E()});let O=(0,d.useMemo)(()=>{let q=[];for(let[te,ne]of Object.entries(r)){let le=o==="all"||o.includes(te);q.push({id:te,title:te,width:I[te],icon:le?Wh(ne):Vr.ProtectedColumnOverlay,style:"normal",kind:Nh(ne),dataType:ne,hasMenu:!0,themeOverride:le?void 0:{bgCell:p==="light"?"#F9F9FA":"#1e1e21"}})}return q},[r,I,o,p]),F=(0,d.useCallback)(q=>{let[te,ne]=q,le=e[ne][O[te].title],Fe=O[te].kind,Oe=o==="all"||o.includes(O[te].title);if(Fe===pe.Boolean){let Ee=!!le;return{kind:pe.Boolean,allowOverlay:!1,readonly:!Oe,data:Ee}}return Fe===pe.Number&&typeof le=="number"?{kind:pe.Number,allowOverlay:Oe,readonly:!Oe,displayData:String(le),data:le}:{kind:pe.Text,allowOverlay:Oe,readonly:!Oe,displayData:String(le),data:String(le)}},[O,e,o]),C=(0,d.useCallback)((q,te)=>{let[ne,le]=q,Fe=O[ne],Oe=Fe.title,Ee=te.data;(Fe.dataType==="number"||Fe.dataType==="integer")&&(te.data===void 0||te.data==="")&&(Ee=null),t(Ge=>{let Me=[...Ge];return Me[le][Oe]=Ee,Me}),l([{rowIdx:le,columnId:Oe,value:Ee}])},[O,l,t]),R=(0,d.useCallback)((q,te)=>{P(ne=>({...ne,[q.title]:te}))},[]),L=(0,d.useCallback)((q,te,ne)=>{let[le,Fe]=q;switch(r[O[le].title]){case"number":case"integer":if(Number.isNaN(Number(te.data)))return!1;break;case"boolean":if(typeof te.data!="boolean")return!1;break}return!0},[r,O]),x=(0,d.useCallback)(q=>{if(m.current){if(Bi.isMetaOrCtrl(q)&&q.key==="c"){m.current.emit("copy");return}if(Bi.isMetaOrCtrl(q)&&q.key==="v"){Vh({selection:y,data:e,setData:t,columns:O,editableColumns:o,onAddEdits:l});return}if(Bi.isMetaOrCtrl(q)&&q.key==="f"){M(te=>!te),q.stopPropagation(),q.preventDefault();return}if(q.key==="Escape"){M(!1);return}}},[O,e,o,l,y,t]),w=(0,d.useCallback)(()=>{let q=Object.fromEntries(O.map(te=>{let ne=te.dataType;switch(ne){case"boolean":return[te.title,!1];case"number":case"integer":return[te.title,null];case"date":case"datetime":case"time":return[te.title,new Date];case"string":case"unknown":return[te.title,""];default:return Va(ne),[te.title,""]}}));a([q]),t(te=>[...te,q])},[O,a,t]),T=()=>{let q=y.rows.toArray();s(q);let te=0;for(let ne of q){let le=ne-te;t(Fe=>Fe.filter((Oe,Ee)=>Ee!==le)),te++}k({columns:nt.empty(),rows:nt.empty()})},H=k0((q,te)=>{v({col:q,bounds:te})}),b=async()=>{if(h){let q=O[h.col].title;await K0(q),v(void 0)}};function J(q){$0({title:`Column '${q}' already exists`,description:"Please enter a different column name",variant:"danger"})}let _=q=>{if(h){let te=O[h.col].title;if(r[q]){J(q);return}let ne=O[h.col].dataType;c(h.col,q),n(le=>xn({columnFields:le,columnIdx:h.col,type:"rename",dataType:ne,newColumnName:q})),t(le=>Ca(le,te,q)),v(void 0)}},Q=()=>{h&&(u(h.col),n(q=>xn({columnFields:q,columnIdx:h.col,type:"remove"})),t(q=>ba(q,h.col)),v(void 0))},ee=q=>{let{direction:te,columnName:ne,dataType:le}=q;if(h){let Fe=h.col+(te==="left"?0:1),Oe=Math.max(0,Math.min(Fe,O.length));if(r[ne]){J(ne);return}f(Oe,ne),n(Ee=>xn({columnFields:Ee,columnIdx:Oe,type:"insert",dataType:le,newColumnName:ne})),t(Ee=>xa(Ee,ne)),v(void 0)}},K=(h==null?void 0:h.col)===O.length-1,se=h!==void 0,oe="mr-2 h-3.5 w-3.5",ue={hint:"New row",sticky:!0,tint:!0},de=e.length>1e5,X=o==="all";return(0,Ae.jsxs)("div",{className:"relative",children:[(0,Ae.jsx)(I0,{children:(0,Ae.jsx)(_h,{ref:m,getCellContent:F,columns:O,gridSelection:y,onGridSelectionChange:k,rows:e.length,overscrollX:50,smoothScrollX:!de,smoothScrollY:!de,validateCell:L,getCellsForSelection:!0,onPaste:!0,showSearch:S,fillHandle:!0,allowedFillDirections:"vertical",onKeyDown:x,height:e.length>10?450:void 0,width:"100%",rowMarkers:{kind:"both"},rowSelectionMode:"multi",onCellEdited:C,onColumnResize:R,onHeaderMenuClick:H,theme:Kh(p),trailingRowOptions:ue,onRowAppended:w,maxColumnAutoWidth:600,maxColumnWidth:600})}),(()=>{if(!se)return;let q=(0,Ae.jsxs)(Ae.Fragment,{children:[X&&(0,Ae.jsx)(Yh,{currentColumnName:O[h.col].title,onRename:_,onCancel:()=>v(void 0)}),(0,Ae.jsx)(Ya,{}),(0,Ae.jsx)(ya,{direction:"left",onAdd:(te,ne)=>ee({direction:"left",columnName:te,dataType:ne}),onCancel:()=>v(void 0)}),(0,Ae.jsx)(ya,{direction:"right",onAdd:(te,ne)=>ee({direction:"right",columnName:te,dataType:ne}),onCancel:()=>v(void 0)}),(0,Ae.jsx)(Ya,{}),!K&&X&&(0,Ae.jsxs)(Ka,{onClick:Q,className:"text-destructive focus:text-destructive",children:[(0,Ae.jsx)(B0,{className:oe}),"Delete column"]})]});return(0,Ae.jsx)(F0,{open:se,onOpenChange:te=>!te&&v(void 0),children:(0,Ae.jsxs)(j0,{style:{left:(h==null?void 0:h.bounds.x)??0,top:((h==null?void 0:h.bounds.y)??0)+((h==null?void 0:h.bounds.height)??0)},className:"fixed w-52",children:[(0,Ae.jsxs)(Ka,{onClick:b,children:[(0,Ae.jsx)(_0,{className:oe}),"Copy column name"]}),!de&&q]})})})(),(0,Ae.jsx)("div",{className:"absolute bottom-1 right-2 w-26",children:(0,Ae.jsx)($i,{variant:"destructive",size:"sm",disabled:y.rows.length===0,className:"right-2 h-7",onClick:T,children:y.rows.length<=1?"Delete row":"Delete rows"})})]})},fs=Ui})();export{Ui as GlideDataEditor,of as __tla,fs as default};
|