@vuu-ui/vuu-table 0.8.10 → 0.8.11

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/cjs/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var ul=Object.create;var $t=Object.defineProperty;var ml=Object.getOwnPropertyDescriptor;var pl=Object.getOwnPropertyNames;var dl=Object.getPrototypeOf,fl=Object.prototype.hasOwnProperty;var Cl=(e,t)=>{for(var o in t)$t(e,o,{get:t[o],enumerable:!0})},Jo=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of pl(t))!fl.call(e,r)&&r!==o&&$t(e,r,{get:()=>t[r],enumerable:!(n=ml(t,r))||n.enumerable});return e};var G=(e,t,o)=>(o=e!=null?ul(dl(e)):{},Jo(t||!e||!e.__esModule?$t(o,"default",{value:e,enumerable:!0}):o,e)),bl=e=>Jo($t({},"__esModule",{value:!0}),e);var fi={};Cl(fi,{ColumnResizer:()=>mt,GroupHeaderCellNext:()=>Ht,Table:()=>hs,TableNext:()=>tl,buildContextMenuDescriptors:()=>pt,isShowColumnSettings:()=>os,isShowTableSettings:()=>ns,updateTableConfig:()=>Qt,useMeasuredContainer:()=>ko,useSelection:()=>Tt,useTableColumnResize:()=>gt,useTableContextMenu:()=>dt,useTableModel:()=>Ko,useTableViewport:()=>wt});module.exports=bl(fi);var Ge=require("react");var Qo=require("react/jsx-runtime"),Xo=()=>{},gl="vuuColumnResizer",mt=({onDrag:e,onDragEnd:t=Xo,onDragStart:o=Xo})=>{let n=(0,Ge.useRef)(0),r=(0,Ge.useCallback)(i=>{i.stopPropagation&&i.stopPropagation(),i.preventDefault&&i.preventDefault();let a=Math.round(i.clientX),c=a-n.current;n.current=a,c!==0&&e(i,c)},[e]),l=(0,Ge.useCallback)(i=>{window.removeEventListener("mouseup",l),window.removeEventListener("mousemove",r),t(i)},[t,r]),s=(0,Ge.useCallback)(i=>{o(i),n.current=Math.round(i.clientX),window.addEventListener("mouseup",l),window.addEventListener("mousemove",r),i.stopPropagation&&i.stopPropagation(),i.preventDefault&&i.preventDefault()},[o,r,l]);return(0,Qo.jsx)("div",{className:gl,"data-align":"end",onMouseDown:s})};var Yo=require("@vuu-ui/vuu-utils"),pt=e=>(t,o)=>{let n=[];if(e===void 0)return n;if(t==="header"||t==="column-menu")n.push(...hl(o,e)),n.push(...Tl(o,e)),n.push(...vl(o,e)),n.push(...yl(o)),n.push({action:"column-settings",icon:"cog",label:"Column Settings",options:o}),n.push({action:"table-settings",icon:"cog",label:"DataGrid Settings",options:o});else if(t==="filter"){let{column:r,filter:l}=o,s=(l==null?void 0:l.column)===(r==null?void 0:r.name);n.push({label:"Edit filter",action:"filter-edit",options:o}),n.push({label:"Remove filter",action:"filter-remove-column",options:o}),r&&!s&&n.push({label:"Remove all filters",action:"remove-filters",options:o})}return n};function hl(e,{sort:{sortDefs:t}}){let{column:o}=e,n=[];if(o===void 0)return n;let r=t.length>0;return o.sorted==="A"?n.push({label:"Reverse Sort (DSC)",action:"sort-dsc",options:e}):o.sorted==="D"?n.push({label:"Reverse Sort (ASC)",action:"sort-asc",options:e}):typeof o.sorted=="number"?(o.sorted>0?n.push({label:"Reverse Sort (DSC)",action:"sort-add-dsc",options:e}):n.push({label:"Reverse Sort (ASC)",action:"sort-add-asc",options:e}),r&&Math.abs(o.sorted)<t.length&&n.push({label:"Remove from sort",action:"sort-remove",options:e}),n.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]})):r?(n.push({label:"Add to sort",children:[{label:"Ascending",action:"sort-add-asc",options:e},{label:"Descending",action:"sort-add-dsc",options:e}]}),n.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]})):n.push({label:"Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]}),n}function vl(e,t){let{column:o}=e;if(o===void 0||t.groupBy.length===0)return[];let{name:n,label:r=n}=o;return[{label:`Aggregate ${r}`,children:[{label:"Count",action:"agg-count",options:e},{label:"Distinct",action:"agg-distinct",options:e}].concat((0,Yo.isNumericColumn)(o)?[{label:"Sum",action:"agg-sum",options:e},{label:"Avg",action:"agg-avg",options:e},{label:"High",action:"agg-high",options:e},{label:"Low",action:"agg-low",options:e}]:[])}]}var vo=(e,t)=>({label:`Pin ${t}`,action:`column-pin-${t}`,options:e}),bo=e=>vo(e,"left"),go=e=>vo(e,"floating"),ho=e=>vo(e,"right");function yl(e){let{column:t}=e;if(t===void 0)return[];let{pin:o}=t,n=[{label:"Hide column",action:"column-hide",options:e},{label:"Remove column",action:"column-remove",options:e}];return o===void 0?n.push({label:"Pin column",children:[bo(e),go(e),ho(e)]}):o==="left"?n.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[go(e),ho(e)]}):o==="right"?n.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[bo(e),go(e)]}):o==="floating"&&n.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[bo(e),ho(e)]}),n}function Tl(e,{groupBy:t}){let{column:o}=e,n=[];if(o===void 0)return n;let{name:r,label:l=r}=o;return t.length===0?n.push({label:`Group by ${l}`,action:"group",options:e}):n.push({label:`Add ${l} to group by`,action:"group-add",options:e}),n}var Zo=require("@vuu-ui/vuu-utils"),W=require("@vuu-ui/vuu-utils"),wl=(e,t)=>{if(e.filterStruct&&t){let[o,n]=(0,Zo.removeColumnFromFilter)(t,e.filterStruct);return{filter:n,filterStruct:o}}else return e},{Average:Dl,Count:Ml,Distinct:Rl,High:xl,Low:Pl,Sum:Hl}=W.AggregationType,dt=({dataSource:e,onPersistentColumnOperation:t})=>n=>{let r=n.options;if(r.column&&e){let{column:l}=r;switch(n.menuId){case"sort-asc":return e.sort=(0,W.setSortColumn)(e.sort,l,"A"),!0;case"sort-dsc":return e.sort=(0,W.setSortColumn)(e.sort,l,"D"),!0;case"sort-add-asc":return e.sort=(0,W.addSortColumn)(e.sort,l,"A"),!0;case"sort-add-dsc":return e.sort=(0,W.addSortColumn)(e.sort,l,"D"),!0;case"group":return e.groupBy=(0,W.addGroupColumn)(e.groupBy,l),!0;case"group-add":return e.groupBy=(0,W.addGroupColumn)(e.groupBy,l),!0;case"column-hide":return t({type:"hideColumns",columns:[l]}),!0;case"column-remove":return e.columns=e.columns.filter(s=>s!==l.name),!0;case"filter-remove-column":return e.filter=wl(e.filter,l),!0;case"remove-filters":return e.filter={filter:""},!0;case"agg-avg":return e.aggregations=(0,W.setAggregations)(e.aggregations,l,Dl),!0;case"agg-high":return e.aggregations=(0,W.setAggregations)(e.aggregations,l,xl),!0;case"agg-low":return e.aggregations=(0,W.setAggregations)(e.aggregations,l,Pl),!0;case"agg-count":return e.aggregations=(0,W.setAggregations)(e.aggregations,l,Ml),!0;case"agg-distinct":return e.aggregations=(0,W.setAggregations)(e.aggregations,l,Rl),!0;case"agg-sum":return e.aggregations=(0,W.setAggregations)(e.aggregations,l,Hl),!0;case"column-pin-floating":return t({type:"pinColumn",column:l,pin:"floating"}),!0;case"column-pin-left":return t({type:"pinColumn",column:l,pin:"left"}),!0;case"column-pin-right":return t({type:"pinColumn",column:l,pin:"right"}),!0;case"column-unpin":return t({type:"pinColumn",column:l,pin:void 0}),!0;case"column-settings":return t({type:"columnSettings",column:l}),!0;case"table-settings":return t({type:"tableSettings"}),!0;default:}}return!1};var Jn=require("@vuu-ui/vuu-popups"),Wt=require("@salt-ds/core");var re=require("@vuu-ui/vuu-utils"),_e=require("react");var j=require("@vuu-ui/vuu-utils"),rn=G(require("classnames")),Ct=require("react");var Ft=require("@vuu-ui/vuu-utils"),qo=require("@vuu-ui/vuu-ui-controls"),en=G(require("classnames")),be=require("react");var ft=require("react/jsx-runtime"),{KEY:jo}=Ft.metadataKeys,yo=(0,be.memo)(({className:e,column:t,columnMap:o,onClick:n,row:r})=>{let l=(0,be.useRef)(null),{align:s,CellRenderer:i,key:a,pin:c,editable:u,resizing:d,valueFormatter:p}=t,[C,v]=(0,be.useState)(!1),h=p(r[a]),[w,R]=(0,be.useState)(h),b=()=>{var M;(M=l.current)==null||M.focus()},f=M=>{M.key==="Enter"&&v(!0)},T=(0,be.useCallback)(M=>{n==null||n(M,t)},[t,n]),x=()=>{v(!0)},m=(M="",y="",E=!0,H=!1)=>{var k;v(!1),H?R(M):y!==M&&R(y),E===!1&&((k=l.current)==null||k.focus())},g=(0,en.default)(e,{vuuAlignRight:s==="right",vuuPinFloating:c==="floating",vuuPinLeft:c==="left",vuuPinRight:c==="right","vuuTableCell-resizing":d})||void 0,P=(0,Ft.getColumnStyle)(t);return u?(0,ft.jsx)("div",{className:g,"data-editable":!0,role:"cell",style:P,onKeyDown:f,children:(0,ft.jsx)(qo.EditableLabel,{editing:C,value:w,onChange:R,onMouseDownCapture:b,onEnterEditMode:x,onExitEditMode:m,onKeyDown:f,ref:l,tabIndex:0},"title")}):(0,ft.jsx)("div",{className:g,role:"cell",style:P,onClick:T,children:i?(0,ft.jsx)(i,{column:t,columnMap:o,row:r}):h})},El);yo.displayName="TableCell";function El(e,t){return e.column===t.column&&e.onClick===t.onClick&&e.row[jo]===t.row[jo]&&e.row[e.column.key]===t.row[t.column.key]}var Be=require("@vuu-ui/vuu-utils"),tn=require("react");var We=require("react/jsx-runtime"),{IS_LEAF:Sl}=Be.metadataKeys,on=({column:e,onClick:t,row:o})=>{let{columns:n}=e,[r,l]=(0,Be.getGroupValueAndOffset)(n,o),s=(0,tn.useCallback)(u=>{t==null||t(u,e)},[e,t]),i=(0,Be.getColumnStyle)(e),a=o[Sl],c=Array(l).fill(0).map((u,d)=>(0,We.jsx)("span",{className:"vuuTableGroupCell-spacer"},d));return(0,We.jsxs)("div",{className:"vuuTableGroupCell vuuPinLeft",onClick:a?void 0:s,role:"cell",style:i,children:[c,a?null:(0,We.jsx)("span",{className:"vuuTableGroupCell-toggle","data-icon":"triangle-right"}),(0,We.jsx)("span",{children:r})]})};var bt=require("react/jsx-runtime"),{IDX:Al,IS_EXPANDED:Ll,SELECTED:kl}=j.metadataKeys,{True:nn,First:Kl,Last:Nl}=j.RowSelected,Ue="vuuTableRow",ln=(0,Ct.memo)(function({columnMap:t,columns:o,offset:n,onClick:r,onToggleGroup:l,virtualColSpan:s=0,row:i}){let{[Al]:a,[Ll]:c,[kl]:u}=i,d=(0,rn.default)(Ue,{[`${Ue}-even`]:a%2===0,[`${Ue}-expanded`]:c,[`${Ue}-selected`]:u&nn,[`${Ue}-selectedStart`]:u&Kl,[`${Ue}-selectedEnd`]:u&Nl}),p=(0,Ct.useCallback)(v=>{let h=v.shiftKey,w=v.ctrlKey||v.metaKey;r==null||r(i,h,w)},[r,i]),C=(0,Ct.useCallback)((v,h)=>{((0,j.isGroupColumn)(h)||(0,j.isJsonGroup)(h,i))&&(v.stopPropagation(),l==null||l(i,h))},[l,i]);return(0,bt.jsxs)("div",{"aria-selected":u&nn?!0:void 0,"aria-rowindex":a,className:d,onClick:p,role:"row",style:{transform:`translate3d(0px, ${n}px, 0px)`},children:[s>0?(0,bt.jsx)("div",{role:"cell",style:{width:s}}):null,o.filter(j.notHidden).map(v=>{let h=(0,j.isGroupColumn)(v),w=(0,j.isJsonColumn)(v);return(0,bt.jsx)(h?on:yo,{column:v,columnMap:t,onClick:h||w?C:void 0,row:i},v.name)})]})});var To=G(require("classnames")),an=require("react");var Le=require("react"),gt=({column:e,onResize:t,rootRef:o})=>{let n=(0,Le.useRef)(0),r=(0,Le.useRef)(!1),{name:l}=e,s=(0,Le.useCallback)(()=>{if(t&&o.current){console.log("handleResizeStart");let{width:c}=o.current.getBoundingClientRect();n.current=Math.round(c),r.current=!0,t==null||t("begin",l)}},[l,t,o]),i=(0,Le.useCallback)((c,u)=>{if(o.current&&t){let{width:d}=o.current.getBoundingClientRect(),p=Math.round(d)+u;p!==n.current&&p>0&&(t("resize",l,p),n.current=p)}},[l,t,o]),a=(0,Le.useCallback)(()=>{t&&(t("end",l,n.current),setTimeout(()=>{r.current=!1},100))},[l,t]);return{isResizing:r.current,onDrag:i,onDragStart:s,onDragEnd:a}};var ae=require("react/jsx-runtime"),Me="vuuTable-groupHeaderCell",sn=({column:e,onClick:t,...o})=>(0,ae.jsx)("span",{...o,className:`${Me}-close`,"data-icon":"close-circle",onClick:()=>t==null?void 0:t(e)}),zl=e=>{let{children:t,column:o,className:n}=e;return(0,ae.jsxs)("div",{className:(0,To.default)(`${Me}-col`,n),role:"columnheader",children:[(0,ae.jsx)("span",{className:`${Me}-label`,children:o.name}),t]})},cn=({column:e,className:t,onRemoveColumn:o,onResize:n,...r})=>{let l=(0,an.useRef)(null),{isResizing:s,...i}=gt({column:e,onResize:n,rootRef:l}),a=(0,To.default)(Me,t,{vuuPinLeft:e.pin==="left",[`${Me}-right`]:e.align==="right",[`${Me}-resizing`]:e.resizing,[`${Me}-pending`]:e.groupConfirmed===!1}),{columns:c}=e;return(0,ae.jsx)("div",{className:a,ref:l,...r,children:(0,ae.jsxs)("div",{className:`${Me}-inner`,children:[c.map(u=>(0,ae.jsx)(zl,{column:u,children:c.length>1?(0,ae.jsx)(sn,{column:u,onClick:o}):null},u.key)),(0,ae.jsx)(sn,{"data-align":"end",onClick:o}),e.resizeable!==!1?(0,ae.jsx)(mt,{...i}):null]})})};var gn=G(require("classnames")),Ke=require("react");var wo=G(require("classnames"));var ke=require("react/jsx-runtime"),un="vuuSortIndicator",mn=({sorted:e})=>{if(!e)return null;let t=typeof e=="number"?e<0?"dsc":"asc":e==="A"?"asc":"dsc";return typeof e=="number"?(0,ke.jsxs)("div",{className:(0,wo.default)(un,"multi-col",t),children:[(0,ke.jsx)("span",{"data-icon":`sorted-${t}`}),(0,ke.jsx)("span",{className:"vuuSortPosition",children:Math.abs(e)})]}):(0,ke.jsx)("div",{className:(0,wo.default)(un,"single-col"),children:(0,ke.jsx)("span",{"data-icon":`sorted-${t}`})})};var hn=require("@vuu-ui/vuu-popups");var pn=require("@vuu-ui/vuu-popups"),dn=G(require("classnames")),fn=require("react");var bn=require("react/jsx-runtime");var Cn=({column:e,filter:t})=>{let[o]=(0,pn.useContextMenu)(),n=(0,fn.useCallback)(r=>{r.stopPropagation(),o(r,"filter",{column:e,filter:t})},[e,t,o]);return e.filter?(0,bn.jsx)("div",{className:(0,dn.default)("vuuFilterIndicator"),"data-icon":"filter",onClick:n}):null};var Re=require("react/jsx-runtime"),ht="vuuTable-headerCell",vn=({column:e,className:t,onClick:o,onDragStart:n,onResize:r,...l})=>{let s=(0,Ke.useRef)(null),{isResizing:i,...a}=gt({column:e,onResize:r,rootRef:s}),[c]=(0,hn.useContextMenu)(),u=(0,Ke.useRef)(null),d=w=>{c(w,"header",{column:e})},p=(0,Ke.useCallback)(w=>!i&&(o==null?void 0:o(w)),[i,o]),C=(0,Ke.useCallback)(w=>{u.current=window.setTimeout(()=>{n==null||n(w),u.current=null},500)},[n]),v=(0,Ke.useCallback)(()=>{u.current!==null&&(window.clearTimeout(u.current),u.current=null)},[]),h=(0,gn.default)(ht,t,{vuuPinFloating:e.pin==="floating",vuuPinLeft:e.pin==="left",vuuPinRight:e.pin==="right",vuuEndPin:e.endPin,[`${ht}-resizing`]:e.resizing,[`${ht}-right`]:e.align==="right"});return(0,Re.jsx)("div",{className:h,...l,onClick:p,onContextMenu:d,onMouseDown:C,onMouseUp:v,ref:s,children:(0,Re.jsxs)("div",{className:`${ht}-inner`,children:[(0,Re.jsx)(Cn,{column:e}),(0,Re.jsx)("div",{className:`${ht}-label`,children:e.label}),(0,Re.jsx)(mn,{sorted:e.sorted}),e.resizeable!==!1?(0,Re.jsx)(mt,{...a}):null]})})};var ce=require("react/jsx-runtime"),Do="vuuTable",{RENDER_IDX:Il}=re.metadataKeys,yn=({columns:e,columnsWithinViewport:t,data:o,getRowOffset:n,headings:r,onColumnResize:l,onHeaderCellDragStart:s,onContextMenu:i,onRemoveColumnFromGroupBy:a,onRowClick:c,onSort:u,onToggleGroup:d,tableId:p,virtualColSpan:C=0,rowCount:v})=>{let h=(0,_e.useCallback)(f=>{s==null||s(f)},[s]),w=(0,_e.useMemo)(()=>e.filter(re.notHidden),[e]),R=(0,_e.useMemo)(()=>(0,re.buildColumnMap)(e),[e]),b=(0,_e.useCallback)(f=>{var M;let x=f.target.closest(".vuuTable-headerCell"),m=parseInt((M=x==null?void 0:x.dataset.idx)!=null?M:"-1"),g=(0,re.visibleColumnAtIndex)(e,m),P=f.shiftKey;g&&u(g,P)},[e,u]);return(0,ce.jsxs)("div",{"aria-rowcount":v,className:`${Do}-table`,role:"table",children:[(0,ce.jsxs)("div",{className:`${Do}-headers`,role:"rowGroup",children:[r.map((f,T)=>(0,ce.jsx)("div",{className:"vuuTable-heading",children:f.map(({label:x,width:m},g)=>(0,ce.jsx)("div",{className:"vuuTable-headingCell",style:{width:m},children:x},g))},T)),(0,ce.jsx)("div",{role:"row",children:w.map((f,T)=>{let x=(0,re.getColumnStyle)(f);return(0,re.isGroupColumn)(f)?(0,ce.jsx)(cn,{column:f,"data-idx":T,onRemoveColumn:a,onResize:l,role:"columnHeader",style:x},T):(0,ce.jsx)(vn,{column:f,"data-idx":T,id:`${p}-${T}`,onClick:b,onDragStart:h,onResize:l,role:"columnHeader",style:x},T)})})]}),(0,ce.jsx)("div",{className:`${Do}-body`,onContextMenu:i,role:"rowGroup",children:o==null?void 0:o.map(f=>(0,ce.jsx)(ln,{columnMap:R,columns:t,offset:n(f),onClick:c,virtualColSpan:C,onToggleGroup:d,row:f},f[Il]))})]})};var Un=require("@vuu-ui/vuu-popups"),de=require("@vuu-ui/vuu-utils"),I=require("react");var Ot=require("@vuu-ui/vuu-data-react"),xe=require("@vuu-ui/vuu-utils"),V=require("react"),{SELECTED:vt}=xe.metadataKeys;function Tn({dataSource:e,onConfigChange:t,onFeatureEnabled:o,onFeatureInvocation:n,onSizeChange:r,onSubscribed:l,range:s={from:0,to:0},renderBufferSize:i=0,viewportRowCount:a}){let[,c]=(0,V.useState)(null),u=(0,V.useRef)(!0),d=(0,V.useRef)(!1),p=(0,V.useRef)({from:0,to:0}),C=(0,V.useRef)(null),v=(0,V.useRef)([]),h=(0,V.useMemo)(()=>new Mo((0,xe.getFullRange)(s)),[]),w=(0,V.useCallback)(m=>{for(let g of m)h.add(g);v.current=h.data,d.current=!0},[h]),R=(0,V.useCallback)(m=>{m.type==="subscribed"?l==null||l(m):m.type==="viewport-update"?(typeof m.size=="number"&&(r==null||r(m.size),h.setRowCount(m.size)),m.rows?w(m.rows):typeof m.size=="number"&&(v.current=h.data,d.current=!0)):(0,Ot.isVuuFeatureAction)(m)?o==null||o(m):(0,Ot.isVuuFeatureInvocation)(m)?n==null||n(m):console.log(`useDataSource unexpected message ${m.type}`)},[h,o,n,r,l,w]);(0,V.useEffect)(()=>()=>{C.current&&(cancelAnimationFrame(C.current),C.current=null),u.current=!1},[]);let b=(0,V.useCallback)(()=>{u.current&&(d.current&&(c({}),d.current=!1),C.current=requestAnimationFrame(b))},[c]);(0,V.useEffect)(()=>{C.current=requestAnimationFrame(b)},[b]);let f=(0,V.useCallback)(m=>{let{from:g}=e.range,P={from:g,to:g+m},M=(0,xe.getFullRange)(P,i);h.setRange(M),e.range=p.current=M,e.emit("range",P)},[e,h,i]),T=(0,V.useCallback)(m=>{let g=(0,xe.getFullRange)(m,i);h.setRange(g),e.range=p.current=g,e.emit("range",m)},[e,h,i]),x=(0,V.useCallback)(()=>h.getSelectedRows(),[h]);return(0,V.useEffect)(()=>{e==null||e.subscribe({range:p.current},R)},[e,R,t]),(0,V.useEffect)(()=>{console.log(`adjust range as rowCount chnaged ${a}`),f(a)},[f,a]),{data:v.current,getSelectedRows:x,range:p.current,setRange:T,dataSource:e}}var Mo=class{constructor({from:t,to:o}){this.rowCount=0;this.setRowCount=t=>{t<this.data.length&&(this.data.length=t),this.rowCount=t};this.range=new xe.WindowRange(t,o),this.data=new Array(o-t),this.rowCount=0}add(t){var n;let[o]=t;if(this.isWithinRange(o)){let r=o-this.range.from;this.data[r]=t;let l=t[vt],s=(n=this.data[r-1])==null?void 0:n[vt];s===0&&l?this.data[r-1][vt]=2:s===2&&!l&&(this.data[r-1][vt]=0)}}getAtIndex(t){return this.range.isWithin(t)&&this.data[t-this.range.from]!=null?this.data[t-this.range.from]:void 0}isWithinRange(t){return this.range.isWithin(t)}setRange({from:t,to:o}){if(t!==this.range.from||o!==this.range.to){let[n,r]=this.range.overlap(t,o),l=new Array(Math.max(0,o-t));for(let s=n;s<r;s++){let i=this.getAtIndex(s);if(i){let a=s-t;l[a]=i}}this.data=l,this.range.from=t,this.range.to=o}}getSelectedRows(){return this.data.filter(t=>t[vt]===1)}};var wn=require("@vuu-ui/vuu-ui-controls"),Je=require("react"),Dn=({onDrop:e})=>{let t=(0,Je.useRef)(),o=(0,Je.useRef)(null),n=(0,Je.useCallback)(()=>{console.log("handleDropSettle"),t.current=void 0,o.current=null},[]),{draggable:r,draggedItemIndex:l,onMouseDown:s}=(0,wn.useDragDropNext)({allowDragDrop:!0,draggableClassName:"vuuTable-headerCell",orientation:"horizontal",containerRef:o,itemQuery:".vuuTable-headerCell",onDrop:e,onDropSettle:n}),i=(0,Je.useCallback)(a=>{let{clientX:c,clientY:u}=a;console.log("useDraggableColumn handleHeaderCellDragStart means mouseDown fired on a column in RowBasedTable");let p=a.target.closest(".vuuTable-headerCell");o.current=p==null?void 0:p.closest("[role='row']");let{dataset:{idx:C="-1"}}=p;t.current={clientX:c,clientY:u,idx:C},s==null||s(a)},[s]);return{draggable:r,draggedItemIndex:l,onHeaderCellDragStart:i}};var Hn=require("@vuu-ui/vuu-utils"),O=require("react");function Vl(e,...t){let o=new Set(e);for(let n of t)for(let r of n)o.add(r);return o}var Ro="ArrowUp",xo="ArrowDown",Po="ArrowLeft",Ho="ArrowRight";var Eo="Home",So="End",Ao="PageUp",Lo="PageDown";var $l=new Set(["Enter","Delete"," "]),Fl=new Set(["Tab"]),Ol=new Set(["ArrowRight","ArrowLeft"]),Mn=new Set([Eo,So,Ao,Lo,xo,Po,Ho,Ro]),Gl=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),Aa=Vl($l,Mn,Ol,Gl,Fl);var Wl=["Home","End","PageUp","PageDown"],Rn=e=>Wl.includes(e),xn=e=>Mn.has(e);var Pn=e=>`.vuuTable-headers .vuuTable-headerCell:nth-child(${e+1})`,Bl=(e,t)=>`.vuuTable-body > [aria-rowindex='${e}'] > [role='cell']:nth-child(${t+1})`,Ul=[-1,-1];function _l(e,[t,o],n,r){return e===Ro?t>-1?[t-1,o]:[t,o]:e===xo?t===-1?[0,o]:t===r-1?[t,o]:[t+1,o]:e===Ho?o<n-1?[t,o+1]:[t,o]:e===Po?o>0?[t,o-1]:[t,o]:[t,o]}var En=({columnCount:e=0,containerRef:t,disableHighlightOnFocus:o,data:n,requestScroll:r,rowCount:l=0,viewportRange:s})=>{var M;let{from:i,to:a}=s,c=(0,O.useRef)([-1,-1]),u=(0,O.useRef)(),d=(0,O.useRef)([-1,0]),p=(0,O.useCallback)(([y,E])=>{var k;let H=y===-1?Pn(E):Bl(y,E);return(k=t.current)==null?void 0:k.querySelector(H)},[t]),C=y=>y==null?void 0:y.closest("[role='columnHeader'],[role='cell']"),v=y=>{var E,H;if(y.role==="columnHeader")return[-1,parseInt((E=y.dataset.idx)!=null?E:"-1",10)];{let k=y.closest("[role='row']");if(k){let J=parseInt((H=k.ariaRowIndex)!=null?H:"-1",10),me=Array.from(k.childNodes).indexOf(y);return[J,me]}}return Ul},h=(0,O.useCallback)(y=>{var E;if(t.current){let H=p(y);H?(H!==u.current&&((E=u.current)==null||E.setAttribute("tabindex",""),u.current=H,H.setAttribute("tabindex","0")),H.focus()):(0,Hn.withinRange)(y[0],s)||(u.current=void 0,r==null||r({type:"scroll-page",direction:"up"}))}},[t,p,r,s]),w=(0,O.useCallback)((y,E,H=!1)=>{let k=[y,E];d.current=k,h(k),H&&(c.current=k)},[h]),R=(0,O.useCallback)(()=>{var y;(y=u.current)==null||y.setAttribute("tabindex",""),u.current=void 0},[]),b=(0,O.useCallback)(async(y,E)=>{switch(y){case Lo:r==null||r({type:"scroll-page",direction:"down"});break;case Ao:r==null||r({type:"scroll-page",direction:"up"});break;case Eo:r==null||r({type:"scroll-end",direction:"home"});break;case So:r==null||r({type:"scroll-end",direction:"end"});break}return E},[r]),f=(0,O.useCallback)(()=>{var y;if(o!==!0&&(y=t.current)!=null&&y.contains(document.activeElement)){let E=C(document.activeElement);E&&(c.current=v(E))}},[o,t]),T=(0,O.useCallback)(async y=>{let[E,H]=Rn(y)?await b(y,d.current):_l(y,d.current,e,l),[k,J]=d.current;(E!==k||H!==J)&&w(E,H,!0)},[e,b,l,w]),x=(0,O.useCallback)(y=>{n.length>0&&xn(y.key)&&(y.preventDefault(),y.stopPropagation(),T(y.key))},[n,T]),m=(0,O.useCallback)(y=>{let E=y.target,H=C(E);if(H){let[k,J]=v(H);w(k,J)}},[w]),g=(0,O.useMemo)(()=>({onClick:m,onFocus:f,onKeyDown:x}),[m,f,x]);(0,O.useLayoutEffect)(()=>{let{current:y}=d,E=y[0]>=i&&y[0]<=a;u.current&&!E?R():!u.current&&E&&h(y)},[h,i,a,R]);let P=((M=t.current)==null?void 0:M.firstChild)!=null;return(0,O.useEffect)(()=>{var y;if(P&&u.current===void 0){let E=(y=t.current)==null?void 0:y.querySelector(Pn(0));E&&(E.setAttribute("tabindex","0"),u.current=E)}},[t,P]),g};var ge=require("@vuu-ui/vuu-utils"),Pe=require("react");var ze=require("react");var Ne=new Map,An=(e,t,o)=>{switch(o){case"height":return t.height;case"clientHeight":return e.clientHeight;case"clientWidth":return e.clientWidth;case"contentHeight":return t.contentHeight;case"contentWidth":return t.contentWidth;case"scrollHeight":return Math.ceil(e.scrollHeight);case"scrollWidth":return Math.ceil(e.scrollWidth);case"width":return t.width;default:return 0}},Sn=new ResizeObserver(e=>{for(let t of e){let{target:o,borderBoxSize:n,contentBoxSize:r}=t,l=Ne.get(o);if(l){let[{blockSize:s,inlineSize:i}]=n,[{blockSize:a,inlineSize:c}]=r,{onResize:u,measurements:d}=l,p=!1;for(let[C,v]of Object.entries(d)){let h=An(o,{height:s,width:i,contentHeight:a,contentWidth:c},C);h!==v&&(p=!0,d[C]=h)}p&&u&&u(d)}}});function Ln(e,t,o,n=!1){let r=(0,ze.useRef)(t),l=(0,ze.useCallback)(s=>{let{width:i,height:a}=s.getBoundingClientRect(),{clientWidth:c,clientHeight:u}=s;return r.current.reduce((d,p)=>(d[p]=An(s,{width:i,height:a,contentHeight:u,contentWidth:c},p),d),{})},[]);(0,ze.useEffect)(()=>{let s=e.current;async function i(){Ne.set(s,{measurements:{}}),await document.fonts.ready;let a=Ne.get(s);if(a){let c=l(s);a.measurements=c,Sn.observe(s),n&&o(c)}else console.log("%cuseResizeObserver an target expected to be under observation wa snot found. This warrants investigation","font-weight:bold; color:red;")}if(s){if(Ne.has(s))throw Error("useResizeObserver attemping to observe same element twice");i()}return()=>{s&&Ne.has(s)&&(Sn.unobserve(s),Ne.delete(s))}},[l,e]),(0,ze.useEffect)(()=>{let s=e.current,i=Ne.get(s);if(i){if(r.current!==t){r.current=t;let a=l(s);i.measurements=a}i.onResize=o}},[t,l,e,o])}var Jl=["clientHeight","clientWidth"],kn=e=>Number.isFinite(e),Xl={height:"100%",width:"100%"},Ql=(e,t)=>(0,ge.isValidNumber)(e)&&(0,ge.isValidNumber)(t)?{height:`${e}px`,width:`${t}px`}:Xl,Yl=(e,t)=>{if((0,ge.isValidNumber)(e)&&(0,ge.isValidNumber)(t))return{height:e,width:t}},ko=({defaultHeight:e=0,defaultWidth:t=0,height:o,width:n})=>{let r=(0,Pe.useRef)(null),[l,s]=(0,Pe.useState)({css:Ql(o,n),inner:Yl(o,n),outer:{height:o!=null?o:"100%",width:n!=null?n:"100%"}});(0,Pe.useMemo)(()=>{s(a=>{let{inner:c,outer:u}=a;if((0,ge.isValidNumber)(o)&&(0,ge.isValidNumber)(n)&&c&&u){let{height:d,width:p}=c,{height:C,width:v}=u;if(C!==o||v!==n){let h=(0,ge.isValidNumber)(C)?C-d:0,w=(0,ge.isValidNumber)(v)?v-p:0;return{...a,outer:{height:o,width:n},inner:{height:o-h,width:n-w}}}}return a})},[o,n]);let i=(0,Pe.useCallback)(({clientWidth:a,clientHeight:c})=>{s(u=>{let{css:d,inner:p,outer:C}=u;return kn(c)&&kn(a)&&(a!==(p==null?void 0:p.width)||c!==(p==null?void 0:p.height))?{css:d,outer:C,inner:{width:Math.floor(a)||t,height:Math.floor(c)||e}}:u})},[e,t]);return Ln(r,Jl,i,!0),{containerRef:r,cssSize:l.css,outerSize:l.outer,innerSize:l.inner}};var He=require("@vuu-ui/vuu-utils"),yt=require("react"),{IDX:Zl}=He.metadataKeys,jl=[],Tt=({selectionModel:e,onSelectionChange:t})=>{let o=(0,yt.useRef)(-1),n=(0,yt.useRef)(jl);return(0,yt.useCallback)((l,s,i)=>{let{[Zl]:a}=l,{current:c}=o,{current:u}=n,p=((0,He.isRowSelected)(l)?He.deselectItem:He.selectItem)(e,u,a,s,i,c);n.current=p,o.current=a,t&&t(p)},[t,e])};var S=require("@vuu-ui/vuu-utils"),Kn=require("react"),ql=100,Nn=S.metadataKeys.count,es=({serverDataType:e})=>e===void 0,ts=e=>{var t;if((0,S.isTypeDescriptor)(e.type))return(0,S.getCellRenderer)((t=e.type)==null?void 0:t.renderer)},zn=(e,t)=>{if(e.serverDataType)return e.serverDataType;if(t){let o=t.columns.find(n=>n.name===e.name);if(o)return o.serverDataType}return"string"},os=e=>e.type==="columnSettings",ns=e=>e.type==="tableSettings",rs=(e,t)=>{switch(t.type){case"init":return In(t);case"moveColumn":return ss(e,t);case"resizeColumn":return cs(e,t);case"setTableSchema":return us(e,t);case"hideColumns":return is(e,t);case"showColumns":return as(e,t);case"pinColumn":return ms(e,t);case"updateColumnProp":return Xe(e,t);case"tableConfig":return Vn(e,t);default:return console.log(`unhandled action ${t.type}`),e}},Ko=(e,t)=>{let[o,n]=(0,Kn.useReducer)(rs,{tableConfig:e,dataSourceConfig:t},In);return{columns:o.columns,dispatchColumnAction:n,headings:o.headings}};function In({dataSourceConfig:e,tableConfig:t}){let o=t.columns.map(No(t)),n=o.some(S.isPinned)?(0,S.sortPinnedColumns)(o):o,r={columns:n,headings:(0,S.getTableHeadings)(n)};if(e){let{columns:l,...s}=e;return Vn(r,{type:"tableConfig",...s})}else return r}var ls=(e,t)=>t==="uppercase"?e.toUpperCase():t==="capitalize"?e[0].toUpperCase()+e.slice(1).toLowerCase():e,No=e=>(t,o)=>{let n=zn(t,e.tableSchema),{columnDefaultWidth:r=ql,columnFormatHeader:l}=e,{align:s=(0,S.getDefaultAlignment)(n),key:i,name:a,label:c=a,width:u=r,...d}=t,p={...d,align:s,CellRenderer:ts(t),label:ls(c,l),key:i!=null?i:o+Nn,name:a,originalIdx:o,serverDataType:n,valueFormatter:(0,S.getValueFormatter)(t),width:u};return(0,S.isGroupColumn)(p)&&(p.columns=p.columns.map(C=>No(e)(C,C.key))),p};function ss(e,{column:t,moveBy:o,moveTo:n}){let{columns:r}=e;if(typeof o=="number"){let l=r.indexOf(t),s=r.slice(),[i]=s.splice(l,1);return s.splice(l+o,0,i),{...e,columns:s}}else if(typeof n=="number")return{...e,columns:(0,S.moveItemDeprecated)(r,t,n)};return e}function is(e,{columns:t}){return t.some(o=>o.hidden!==!0)?t.reduce((o,n)=>n.hidden!==!0?Xe(o,{type:"updateColumnProp",column:n,hidden:!0}):o,e):e}function as(e,{columns:t}){return t.some(o=>o.hidden)?t.reduce((o,n)=>n.hidden?Xe(o,{type:"updateColumnProp",column:n,hidden:!1}):o,e):e}function cs(e,{column:t,phase:o,width:n}){let r="updateColumnProp",l=o!=="end";switch(o){case"begin":return Xe(e,{type:r,column:t,resizing:l});case"end":return Xe(e,{type:r,column:t,resizing:l,width:n});case"resize":return Xe(e,{type:r,column:t,width:n});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${o}`)}}function us(e,{tableSchema:t}){let{columns:o}=e;if(o.some(es)){let n=o.map(r=>{var s;let l=zn(r,t);return{...r,align:(s=r.align)!=null?s:(0,S.getDefaultAlignment)(l),serverDataType:l}});return{...e,columns:n,tableSchema:t}}else return{...e,tableSchema:t}}function ms(e,t){let{columns:o}=e,{column:n,pin:r}=t;return o=(0,S.updateColumn)(o,n.name,{pin:r}),o=(0,S.sortPinnedColumns)(o),console.log({withPins:o}),{...e,columns:o}}function Xe(e,t){let{columns:o}=e,{align:n,column:r,hidden:l,label:s,resizing:i,width:a}=t,c={};return(n==="left"||n==="right")&&(c.align=n),typeof s=="string"&&(c.label=s),typeof i=="boolean"&&(c.resizing=i),typeof l=="boolean"&&(c.hidden=l),typeof a=="number"&&(c.width=a),o=(0,S.updateColumn)(o,r.name,c),{...e,columns:o}}function Vn(e,{columns:t,confirmed:o,filter:n,groupBy:r,sort:l}){let s=t&&t.length>0,i=r!==void 0,a=typeof(n==null?void 0:n.filter)=="string",c=l&&l.sortDefs.length>0,u=e;return s&&(u={...e,columns:t.map((d,p)=>{let C=(0,S.getColumnName)(d),v=p+Nn,h=(0,S.findColumn)(u.columns,C);return h?h.key===v?h:{...h,key:v}:No(e)({name:d},p)})}),i&&(u={...e,columns:(0,S.applyGroupByToColumns)(u.columns,r,o)}),c&&(u={...e,columns:(0,S.applySortToColumns)(u.columns,l)}),a?u={...e,columns:(0,S.applyFilterToColumns)(u.columns,n)}:u.columns.some(S.isFilteredColumn)&&(u={...e,columns:(0,S.stripFilterFromColumns)(u.columns)}),u}var X=require("react"),$n=e=>{let{scrollLeft:t,scrollTop:o}=e,{clientHeight:n,clientWidth:r,scrollHeight:l,scrollWidth:s}=e,i=t/(s-r),a=o/(l-n);return[i,a]},ps=e=>{let{clientHeight:t,clientWidth:o,scrollHeight:n,scrollWidth:r}=e;return[r-o,n-t]},Fn=({onAttach:e,onDetach:t})=>{let o=(0,X.useRef)(null);return(0,X.useCallback)(r=>{if(r)o.current=r,e==null||e(r);else if(o.current){let{current:l}=o;o.current=r,t==null||t(l)}},[e,t])},On=({onHorizontalScroll:e,onVerticalScroll:t,viewport:o})=>{let n=(0,X.useRef)(!1),r=(0,X.useRef)({scrollTop:0,scrollLeft:0}),l=(0,X.useRef)(null),s=(0,X.useRef)(null),{maxScrollContainerScrollHorizontal:i,maxScrollContainerScrollVertical:a}=o,c=(0,X.useCallback)(()=>{let{current:b}=s,{current:f}=l,{current:T}=n;if(T)n.current=!1;else if(b&&f){let[x,m]=$n(f),[g,P]=ps(b),M=Math.round(x*g),y=Math.round(m*P);console.log(`pctScrollTop ${m}, maxScrollTop ${P} rootScrollTop ${y}`),b.scrollTo({left:M,top:y,behavior:"auto"})}},[]),u=(0,X.useCallback)(()=>{let{current:b}=s,{current:f}=l,{current:T}=r;if(b&&f){let{scrollLeft:x,scrollTop:m}=b,[g,P]=$n(b);n.current=!0,f.scrollLeft=Math.round(g*i),f.scrollTop=Math.round(P*a),T.scrollTop!==m&&(T.scrollTop=m,t==null||t(m,P)),T.scrollLeft!==x&&(T.scrollLeft=x,e==null||e(x))}},[i,a,e,t]),d=(0,X.useCallback)(b=>{l.current=b,b.addEventListener("scroll",c,{passive:!0})},[c]),p=(0,X.useCallback)(b=>{l.current=null,b.removeEventListener("scroll",c)},[c]),C=(0,X.useCallback)(b=>{s.current=b,b.addEventListener("scroll",u,{passive:!0})},[u]),v=(0,X.useCallback)(b=>{s.current=null,b.removeEventListener("scroll",u)},[u]),h=Fn({onAttach:C,onDetach:v}),w=Fn({onAttach:d,onDetach:p}),R=(0,X.useCallback)(b=>{let{current:f}=s;if(f){if(n.current=!1,b.type==="scroll-page"){let{clientHeight:T,scrollLeft:x,scrollTop:m}=f,{direction:g}=b,P=g==="down"?T:-T,M=Math.min(Math.max(0,m+P),a);f.scrollTo({top:M,left:x,behavior:"auto"})}else if(b.type==="scroll-end"){let{direction:T}=b,x=T==="end"?a:0;f.scrollTo({top:x,left:f.scrollLeft,behavior:"auto"})}}},[a]);return{scrollbarContainerRef:w,contentContainerRef:h,requestScroll:R}};var he=require("react"),Gt=require("@vuu-ui/vuu-utils"),ds=15e5,fs={contentHeight:0,contentWidth:0,getRowAtPosition:()=>-1,getRowOffset:()=>-1,horizontalScrollbarHeight:0,maxScrollContainerScrollHorizontal:0,maxScrollContainerScrollVertical:0,pinnedWidthLeft:0,pinnedWidthRight:0,rowCount:0,setPctScrollTop:()=>{},totalHeaderHeight:0,verticalScrollbarWidth:0,viewportBodyHeight:0},Cs=e=>{let t=0,o=0,n=0;for(let r of e){let{hidden:l,pin:s,width:i}=r,a=l?0:i;s==="left"?t+=a:s==="right"?o+=a:n+=a}return{pinnedWidthLeft:t+4,pinnedWidthRight:o+4,unpinnedWidth:n}},wt=({columns:e,headerHeight:t,headings:o,rowCount:n,rowHeight:r,size:l})=>{let s=(0,he.useRef)(0),a=Math.min(n,ds)*r,u=n*r-a,{pinnedWidthLeft:d,pinnedWidthRight:p,unpinnedWidth:C}=(0,he.useMemo)(()=>Cs(e),[e]),[v,h]=(0,he.useMemo)(()=>(0,Gt.actualRowPositioning)(r),[r]),[w,R]=(0,he.useMemo)(()=>u?(0,Gt.virtualRowPositioning)(r,u,s):[v,h],[h,v,u,r]),b=(0,he.useCallback)(f=>{s.current=f},[]);return(0,he.useMemo)(()=>{var f;if(l){let T=o.length,x=15,m=d+C+p,g=m>l.width?x:0,P=t*(1+T),M=a-(((f=l==null?void 0:l.height)!=null?f:0)-g)+P,y=m-l.width+d,E=(l.height-t)/r,H=Number.isInteger(E)?E+1:Math.ceil(E),k=l.height-P,J=a>k?x:0;return{contentHeight:a,getRowAtPosition:R,getRowOffset:w,horizontalScrollbarHeight:g,maxScrollContainerScrollHorizontal:y,maxScrollContainerScrollVertical:M,pinnedWidthLeft:d,pinnedWidthRight:p,rowCount:H,contentWidth:m,setPctScrollTop:b,totalHeaderHeight:P,verticalScrollbarWidth:J,viewportBodyHeight:k}}else return fs},[l,o.length,d,C,p,a,t,r,R,w,b])};var Dt=require("@vuu-ui/vuu-utils"),q=require("react"),Gn=({columns:e,getRowAtPosition:t,setRange:o,viewportMeasurements:n})=>{let r=(0,q.useRef)(-1),{rowCount:l,contentWidth:s,maxScrollContainerScrollHorizontal:i}=n,a=s-i,c=(0,q.useRef)(0),[u,d]=(0,q.useMemo)(()=>(0,Dt.getColumnsInViewport)(e,c.current,c.current+a),[a,e]),p=(0,q.useRef)(d);(0,q.useEffect)(()=>{v(u)},[u]);let[C,v]=(0,q.useState)(u),h=(0,q.useCallback)(R=>{c.current=R;let[b,f]=(0,Dt.getColumnsInViewport)(e,R,R+a);(0,Dt.itemsChanged)(C,b)&&(p.current=f,v(b))},[a,e,C]),w=(0,q.useCallback)(R=>{let b=t(R);b!==r.current&&(r.current=b,console.log("setRange from handleVerticalScroll"),o({from:b,to:b+l}))},[t,o,l]);return{columnsWithinViewport:C,onHorizontalScroll:h,onVerticalScroll:w,virtualColSpan:p.current}};var bs=[],{KEY:gs,IS_EXPANDED:Wn,IS_LEAF:Bn}=de.metadataKeys,_n=({config:e,dataSource:t,headerHeight:o,onConfigChange:n,onFeatureEnabled:r,onFeatureInvocation:l,onSelectionChange:s,renderBufferSize:i=0,rowHeight:a,selectionModel:c,...u})=>{var ct,It;let[d,p]=(0,I.useState)(t.size),C=(0,I.useRef)(!1),v=(0,I.useRef)();if(v.current=t,t===void 0)throw Error("no data source provided to Vuu Table");let h=ko(u),w=(0,I.useCallback)(L=>{p(L)},[]),{columns:R,dispatchColumnAction:b,headings:f}=Ko(e,t.config),{getRowAtPosition:T,getRowOffset:x,setPctScrollTop:m,...g}=wt({columns:R,headerHeight:o,headings:f,rowCount:d,rowHeight:a,size:h.innerSize});console.log(`rowCount from viewportMeasurements ${g.rowCount}`);let P=(0,I.useCallback)(({tableSchema:L})=>{L?(C.current=!0,b({type:"setTableSchema",tableSchema:L})):console.log("usbscription message with no schema")},[b]),M=(0,I.useCallback)(L=>{t.select(L),s==null||s(L)},[t,s]),y=Tt({onSelectionChange:M,selectionModel:c}),{data:E,getSelectedRows:H,range:k,setRange:J}=Tn({dataSource:t,onFeatureEnabled:r,onFeatureInvocation:l,onSubscribed:P,onSizeChange:w,renderBufferSize:i,viewportRowCount:g.rowCount}),me=(0,I.useRef)();me.current=E;let At=(0,I.useCallback)(L=>{C.current=!0,console.log("onPersistentColumnOperation, dispatchColumnAction",{action:L}),b(L)},[b]),Lt=dt({dataSource:t,onPersistentColumnOperation:At}),te=(0,I.useCallback)((L,$=!1,Z)=>{t&&(t.sort=(0,de.applySort)(t.sort,L,$,Z))},[t]),Te=(0,I.useCallback)((L,$,Z)=>{let F=R.find(se=>se.name===$);if(F)L==="end"&&(C.current=!0),b({type:"resizeColumn",phase:L,column:F,width:Z});else throw Error(`useDataTable.handleColumnResize, column ${$} not found`)},[R,b]),oe=(0,I.useCallback)((L,$)=>{let Z=(0,de.isJsonGroup)($,L),F=L[gs];if(L[Wn]){if(t.closeTreeNode(F,!0),Z){let se=R.indexOf($);t.getRowsAtDepth(se+1).some(ie=>ie[Wn]||ie[Bn])||b({type:"hideColumns",columns:R.slice(se+2)})}}else if(t.openTreeNode(F),Z){let se=t.getChildRows(F),pe=R.indexOf($)+1,ie=[R[pe]];se.some(De=>De[Bn])&&ie.push(R[pe+1]),ie.some(De=>De.hidden)&&b({type:"showColumns",columns:ie})}},[R,t,b]),{onVerticalScroll:Ae,onHorizontalScroll:it,columnsWithinViewport:at,virtualColSpan:Y}=Gn({columns:R,getRowAtPosition:T,setRange:J,viewportMeasurements:g}),we=(0,I.useCallback)((L,$)=>{m($),Ae(L)},[Ae,m]),{requestScroll:ro,...kt}=On({onHorizontalScroll:it,onVerticalScroll:we,viewport:g,viewportHeight:((It=(ct=h.innerSize)==null?void 0:ct.height)!=null?It:0)-o}),Kt=En({columnCount:R.length,containerRef:h.containerRef,data:E,requestScroll:ro,rowCount:t==null?void 0:t.size,viewportRange:k}),lo=(0,I.useCallback)(L=>{L?t&&t.groupBy.includes(L.name)&&(t.groupBy=t.groupBy.filter($=>$!==L.name)):t.groupBy=[]},[t]),so=(0,I.useCallback)((L,$)=>{let Z=t.columns[L],F=(0,de.moveItemDeprecated)(t.columns,Z,$);F!==t.columns&&(t.columns=F,b({type:"tableConfig",columns:F}))},[t,b]),Nt=Dn({onDrop:so});(0,I.useEffect)(()=>{v.current&&(C.current=!0,b({type:"init",tableConfig:e,dataSourceConfig:v.current.config}))},[e,b]),(0,I.useEffect)(()=>{t.on("config",(L,$)=>{C.current=!0,b({type:"tableConfig",...L,confirmed:$})})},[t,b]),(0,I.useMemo)(()=>{C.current&&(n==null||n({...e,columns:R}),C.current=!1)},[R,e,n]);let[zt]=(0,Un.useContextMenu)(),io=(0,I.useCallback)(L=>{var ie;let{current:$}=me,{current:Z}=v,F=L.target,se=F==null?void 0:F.closest("div[role='cell']"),pe=F==null?void 0:F.closest(".vuuTableRow");if(se&&pe&&$&&Z){let{columns:De,selectedRowsCount:ao}=Z,co=(0,de.buildColumnMap)(De),uo=parseInt((ie=pe.ariaRowIndex)!=null?ie:"-1"),Vt=Array.from(pe.childNodes).indexOf(se),mo=$.find(([fo])=>fo===uo),po=De[Vt];zt(L,"grid",{columnMap:co,columnName:po,row:mo,selectedRows:ao===0?bs:H(),viewport:t==null?void 0:t.viewport})}},[t==null?void 0:t.viewport,H,zt]);return{columns:R,columnsWithinViewport:at,containerMeasurements:h,containerProps:Kt,data:E,dispatchColumnAction:b,getRowOffset:x,handleContextMenuAction:Lt,headings:f,onColumnResize:Te,onContextMenu:io,onRemoveColumnFromGroupBy:lo,onRowClick:y,onSort:te,onToggleGroup:oe,virtualColSpan:Y,scrollProps:kt,rowCount:d,viewportMeasurements:g,...Nt}};var Xn=G(require("classnames"));var Qn=require("@vuu-ui/vuu-utils"),ve=require("react/jsx-runtime"),Ie="vuuTable",hs=({allowConfigEditing:e=!1,className:t,config:o,dataSource:n,headerHeight:r=25,height:l,id:s,onConfigChange:i,onFeatureEnabled:a,onFeatureInvocation:c,onSelectionChange:u,onShowConfigEditor:d,renderBufferSize:p=0,rowHeight:C=20,selectionModel:v="extended",style:h,width:w,...R})=>{let b=(0,Wt.useIdMemo)(s),{containerMeasurements:{containerRef:f,innerSize:T,outerSize:x},containerProps:m,dispatchColumnAction:g,draggable:P,draggedItemIndex:M,handleContextMenuAction:y,scrollProps:E,viewportMeasurements:H,...k}=_n({config:o,dataSource:n,renderBufferSize:p,headerHeight:r,height:l,onConfigChange:i,onFeatureEnabled:a,onFeatureInvocation:c,onSelectionChange:u,rowHeight:C,selectionModel:v,width:w}),J={...x,"--content-height":`${H.contentHeight}px`,"--horizontal-scrollbar-height":`${H.horizontalScrollbarHeight}px`,"--content-width":`${H.contentWidth}px`,"--pinned-width-left":`${H.pinnedWidthLeft}px`,"--pinned-width-right":`${H.pinnedWidthRight}px`,"--header-height":`${r}px`,"--row-height":`${C}px`,"--table-height":`${T==null?void 0:T.height}px`,"--table-width":`${T==null?void 0:T.width}px`,"--total-header-height":`${H.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${H.verticalScrollbarWidth}px`,"--viewport-body-height":`${H.viewportBodyHeight}px`},me=(0,Xn.default)(Ie,t,{[`${Ie}-zebra`]:o.zebraStripes,[`${Ie}-loading`]:(0,Qn.isDataLoading)(k.columns)});return(0,ve.jsx)(Jn.ContextMenuProvider,{menuActionHandler:y,menuBuilder:pt(n),children:(0,ve.jsxs)("div",{...R,...m,className:me,id:b,ref:f,style:J,tabIndex:-1,children:[T?(0,ve.jsx)("div",{className:`${Ie}-scrollbarContainer`,ref:E.scrollbarContainerRef,children:(0,ve.jsx)("div",{className:`${Ie}-scrollbarContent`})}):null,T?(0,ve.jsxs)("div",{className:`${Ie}-contentContainer`,ref:E.contentContainerRef,children:[(0,ve.jsx)(yn,{...k,headerHeight:r,tableId:b}),P]}):null,e&&T?(0,ve.jsx)(Wt.Button,{className:`${Ie}-settings`,"data-icon":"settings",onClick:d,variant:"secondary"}):null]})})};var Yn=G(require("classnames")),Ye=require("@vuu-ui/vuu-utils");var Qe=require("react/jsx-runtime"),Mt="vuuJsonCell",{IS_EXPANDED:vs,KEY:ys}=Ye.metadataKeys,Ts=e=>{let t=e.lastIndexOf("|");return t===-1?"":e.slice(t+1)},ws=({column:e,row:t})=>{let{key:o}=e,n=t[o],r=!1;(0,Ye.isJsonAttribute)(n)&&(n=n.slice(0,-1),r=!0);let l=Ts(t[ys]),s=(0,Yn.default)({[`${Mt}-name`]:l===n,[`${Mt}-value`]:l!==n,[`${Mt}-group`]:r});if(r){let i=t[vs]?"minus-box":"plus-box";return(0,Qe.jsxs)("span",{className:s,children:[(0,Qe.jsx)("span",{className:`${Mt}-value`,children:n}),(0,Qe.jsx)("span",{className:`${Mt}-toggle`,"data-icon":i})]})}else return n?(0,Qe.jsx)("span",{className:s,children:n}):null};(0,Ye.registerComponent)("json",ws,"cell-renderer",{description:"JSON formatter",label:"JSON formatter",serverDataType:"json"});var Ms=G(require("classnames")),Rs=require("react");var Ze=require("react");var jn=require("react/jsx-runtime"),Zn=()=>{},Ds="vuuColumnResizerNext",Rt=({onDrag:e,onDragEnd:t=Zn,onDragStart:o=Zn})=>{let n=(0,Ze.useRef)(0),r=(0,Ze.useCallback)(i=>{i.stopPropagation&&i.stopPropagation(),i.preventDefault&&i.preventDefault();let a=Math.round(i.clientX),c=a-n.current;n.current=a,c!==0&&e(i,c)},[e]),l=(0,Ze.useCallback)(i=>{window.removeEventListener("mouseup",l),window.removeEventListener("mousemove",r),t(i)},[t,r]),s=(0,Ze.useCallback)(i=>{o(i),n.current=Math.round(i.clientX),window.addEventListener("mouseup",l),window.addEventListener("mousemove",r),i.stopPropagation&&i.stopPropagation(),i.preventDefault&&i.preventDefault()},[o,r,l]);return(0,jn.jsx)("div",{className:Ds,onMouseDown:s})};var Ee=require("react"),xt=({column:e,onResize:t,rootRef:o})=>{let n=(0,Ee.useRef)(0),[r,l]=(0,Ee.useState)(!1),{name:s}=e,i=(0,Ee.useCallback)(()=>{if(console.log("onResizeStart"),t&&o.current){console.log("handleResizeStart");let{width:u}=o.current.getBoundingClientRect();n.current=Math.round(u),l(!0),t==null||t("begin",s)}},[s,t,o]),a=(0,Ee.useCallback)((u,d)=>{if(o.current&&t){let{width:p}=o.current.getBoundingClientRect(),C=Math.round(p)+d;C!==n.current&&C>0&&(t("resize",s,C),n.current=C)}},[s,t,o]),c=(0,Ee.useCallback)(()=>{t&&(t("end",s,n.current),setTimeout(()=>{l(!1)},80))},[s,t]);return{isResizing:r,onDrag:a,onDragStart:i,onDragEnd:c}};var qn=require("@vuu-ui/vuu-utils"),er=G(require("classnames")),tr=require("react"),ye=(e,t,o)=>(0,tr.useMemo)(()=>{let n=(0,er.default)(t,{vuuPinFloating:e.pin==="floating",vuuPinLeft:e.pin==="left",vuuPinRight:e.pin==="right",vuuEndPin:o&&e.endPin,[`${t}-editable`]:e.editable,[`${t}-right`]:e.align==="right"}),r=(0,qn.getColumnStyle)(e);return{className:n,style:r}},[e,t,o]);var nr=G(require("classnames")),rr=require("react");var Bt=require("react/jsx-runtime"),or="vuuColumnHeaderPill",Ve=({children:e,className:t,column:o,onRemove:n,removable:r,...l})=>{if(r&&typeof n!="function")throw Error("ColumnHeaderPill onRemove prop must be provided if Pill is removable");let s=(0,rr.useCallback)(i=>{i.preventDefault(),i.stopPropagation(),n==null||n(o)},[o,n]);return(0,Bt.jsxs)("div",{...l,className:(0,nr.default)(or,t),children:[e,r?(0,Bt.jsx)("span",{className:`${or}-removeButton`,role:"button","data-icon":"cross",onClick:s}):null]})};var je=require("react/jsx-runtime"),zo=({column:e,...t})=>{let{name:o,sorted:n}=e,r=typeof n=="number"?n<0?"arrow-down":"arrow-up":n==="A"?"arrow-up":n==="D"?"arrow-down":void 0;return(0,je.jsxs)(Ve,{...t,column:e,children:[(0,je.jsx)("span",{className:"vuuGroupColumnPill-label",children:o}),r!==void 0?(0,je.jsx)("span",{"data-icon":r}):null,typeof n=="number"?(0,je.jsx)("span",{className:"vuuSortPosition",children:Math.abs(n)}):null]})};var Pt=require("react/jsx-runtime"),lr=({column:e})=>{if(!e.sorted)return null;let t=typeof e.sorted=="number"?e.sorted<0?"arrow-down":"arrow-up":e.sorted==="A"?"arrow-up":"arrow-down";return(0,Pt.jsxs)(Ve,{column:e,children:[(0,Pt.jsx)("span",{"data-icon":t}),typeof e.sorted=="number"?(0,Pt.jsx)("span",{className:"vuuSortPosition",children:Math.abs(e.sorted)}):null]})};var sr=require("react/jsx-runtime"),xs=require("react");var ir=G(require("classnames")),et=require("react");var Ut=require("@vuu-ui/vuu-layout");var qe=require("react/jsx-runtime"),ar=require("react"),Io="vuuTableNextGroupHeaderCell",Ps=(e,t)=>e===t?e:t,Ht=({column:e,className:t,onRemoveColumn:o,onResize:n,...r})=>{let l=(0,et.useRef)(null),{isResizing:s,...i}=xt({column:e,onResize:n,rootRef:l}),[a,c]=(0,et.useState)(e.columns),{className:u,style:d}=ye(e,Io,!0),p=a.length>1?{removable:!0,onRemove:o}:void 0,C=(0,et.useCallback)((v,h)=>{c(w=>{let R=w.slice(),[b]=R.splice(v,1);return h===-1?R.concat(b):(R.splice(h,0,b),R)})},[]);return(0,Ut.useLayoutEffectSkipFirst)(()=>{c(v=>Ps(v,e.columns))},[e.columns]),(0,qe.jsxs)("div",{...r,className:(0,ir.default)(u,"vuuTableNextHeaderCell",t,{[`${Io}-pending`]:e.groupConfirmed===!1}),ref:l,role:"columnheader",style:d,children:[(0,qe.jsx)(Ut.OverflowContainer,{allowDragDrop:!0,className:`${Io}-inner`,height:24,onMoveItem:C,overflowPosition:"start",children:a.map(v=>(0,ar.createElement)(zo,{...p,column:v,key:v.key}))}),(0,qe.jsx)(Ve,{column:e,removable:!0,onRemove:o}),e.resizeable!==!1?(0,qe.jsx)(Rt,{...i}):null]})};var _t=require("react");var cr=require("@vuu-ui/vuu-popups"),ur=G(require("classnames")),$e=require("react");var pr=require("react/jsx-runtime"),Hs=e=>{if(e){let{bottom:t,left:o}=e.getBoundingClientRect();return{x:o,y:t+6}}},mr=({className:e,column:t,...o})=>{let n=(0,$e.useRef)(null),[r,l]=(0,$e.useState)(!1),[s]=(0,cr.useContextMenu)(),i=(0,$e.useCallback)(()=>{l(!1)},[]),a=(0,$e.useCallback)(c=>{l(!0),s(c,"column-menu",{column:t,ContextMenuProps:{className:"vuuColumnMenuList",onClose:i,position:Hs(n.current)}})},[t,i,s]);return(0,pr.jsx)("span",{...o,className:(0,ur.default)("vuuTable-columnMenu",e,{"vuuTable-columnMenu-open":r}),"data-icon":"more-vert",onClick:a,ref:n})};var dr=G(require("classnames"));var Fe=require("react/jsx-runtime"),Vo="vuuTableNextHeaderCell",fr=({className:e,column:t,onClick:o,onResize:n,...r})=>{var h;let l=(0,_t.useRef)(null),{isResizing:s,...i}=xt({column:t,onResize:n,rootRef:l}),a=(0,_t.useCallback)(w=>{console.log(`click isResizing ${s}`),!s&&(o==null||o(w))},[s,o]),{className:c,style:u}=ye(t,Vo,!0),d=(0,Fe.jsx)(mr,{column:t}),p=(0,Fe.jsx)("div",{className:`${Vo}-label`,children:(h=t.label)!=null?h:t.name}),C=(0,Fe.jsx)(lr,{column:t}),v=t.align==="right"?[C,p,d]:[d,p,C];return(0,Fe.jsxs)("div",{...r,className:(0,dr.default)(c,e,{[`${Vo}-resizing`]:s}),onClick:a,ref:l,role:"columnheader",style:u,children:[...v,t.resizeable!==!1?(0,Fe.jsx)(Rt,{...i}):null]})};var qr=require("@vuu-ui/vuu-popups"),lt=require("@vuu-ui/vuu-utils"),Uo=G(require("classnames")),el=require("react");var ee=require("@vuu-ui/vuu-utils"),Tr=G(require("classnames")),Et=require("react");var Cr=require("@vuu-ui/vuu-utils"),br=require("react");var $o=require("react/jsx-runtime"),{IDX:Es}=Cr.metadataKeys,Ss="vuuTableNextCell",gr=({column:e,columnMap:t,onDataEdited:o,row:n})=>{let{className:r,style:l}=ye(e,Ss),{CellRenderer:s,name:i,valueFormatter:a}=e,c=t[i],u=(0,br.useCallback)(d=>(o==null||o(n[Es],i,d),!0),[i,o,n]);return(0,$o.jsx)("div",{className:r,role:"cell",style:l,children:s?(0,$o.jsx)(s,{column:e,columnMap:t,onCommit:u,row:n}):a(n[c])})};var Jt=require("@vuu-ui/vuu-utils"),hr=require("react");var vr=G(require("classnames"));var tt=require("react/jsx-runtime"),{IS_LEAF:As}=Jt.metadataKeys,Fo="vuuTableNextGroupCell",yr=({column:e,onClick:t,row:o})=>{let{columns:n}=e,[r,l]=(0,Jt.getGroupValueAndOffset)(n,o),{className:s,style:i}=ye(e,Fo),a=(0,hr.useCallback)(d=>{t==null||t(d,e)},[e,t]),c=o[As],u=Array(l).fill(0).map((d,p)=>(0,tt.jsx)("span",{className:`${Fo}-spacer`},p));return(0,tt.jsxs)("div",{className:(0,vr.default)(s,"vuuTableNextCell"),role:"cell",style:i,onClick:c?void 0:a,children:[u,c?null:(0,tt.jsx)("span",{className:`${Fo}-toggle`,"data-icon":"triangle-right"}),(0,tt.jsx)("span",{children:r})]})};var Xt=require("react/jsx-runtime"),wr=require("react"),{IDX:Ls,IS_EXPANDED:ks,SELECTED:Ks}=ee.metadataKeys,Se="vuuTableNextRow",Oo=(0,Et.memo)(({className:e,columnMap:t,columns:o,row:n,offset:r,onClick:l,onDataEdited:s,onToggleGroup:i,zebraStripes:a=!1,...c})=>{let{[Ls]:u,[ks]:d,[Ks]:p}=n,C=(0,Et.useCallback)(T=>{let x=T.shiftKey,m=T.ctrlKey||T.metaKey;l==null||l(n,x,m)},[l,n]),{True:v,First:h,Last:w}=ee.RowSelected,R=(0,Tr.default)(Se,e,{[`${Se}-even`]:a&&u%2===0,[`${Se}-expanded`]:d,[`${Se}-selected`]:p&v,[`${Se}-selectedStart`]:p&h,[`${Se}-selectedEnd`]:p&w}),b={transform:`translate3d(0px, ${r}px, 0px)`},f=(0,Et.useCallback)((T,x)=>{((0,ee.isGroupColumn)(x)||(0,ee.isJsonGroup)(x,n))&&(T.stopPropagation(),i==null||i(n,x))},[i,n]);return(0,wr.createElement)("div",{...c,"aria-rowindex":n[0],key:`row-${n[0]}`,role:"row",className:R,onClick:C,style:b},(0,Xt.jsx)("span",{className:`${Se}-selectionDecorator vuuStickyLeft`}),o.filter(ee.notHidden).map(T=>{let x=(0,ee.isGroupColumn)(T),m=(0,ee.isJsonColumn)(T);return(0,Xt.jsx)(x?yr:gr,{column:T,columnMap:t,onClick:x||m?f:void 0,onDataEdited:s,row:n},T.key)}),(0,Xt.jsx)("span",{className:`${Se}-selectionDecorator vuuStickyRight`}))});Oo.displayName="Row";var Qr=require("@vuu-ui/vuu-layout"),Yr=require("@vuu-ui/vuu-table-extras"),Zr=require("@vuu-ui/vuu-ui-controls");var B=require("react");var Go=e=>`.vuuTableNext-col-headers .vuuTableNextHeaderCell:nth-child(${e})`,Wo=(e,t)=>`.vuuTableNext-body > [aria-rowindex='${e}'] > [role='cell']:nth-child(${t+1})`,Dr=(e,[t,o])=>{var l;let n=t===-1?Go(o):Wo(t,o),r=(l=e.current)==null?void 0:l.querySelector(n);return Ns(r)&&r.querySelector("button")||r},Ns=e=>e.classList.contains("vuuTableNextCell-editable"),Mr=e=>e.querySelector(".vuuTableInputCell")!==null;var zs=new Set(["Home","End","PageUp","PageDown","ArrowDown","ArrowLeft","ArrowRight","ArrowUp"]),Is=e=>zs.has(e),Vs=["Home","End","PageUp","PageDown"],$s=e=>Vs.includes(e),Fs=[-1,-1],Os=[void 0,void 0],Gs=e=>{var o,n;let t=(o=e.closest(".vuuTableNext"))==null?void 0:o.querySelector(".vuuTableNext-scrollbarContainer");if(t){let r=t==null?void 0:t.getBoundingClientRect(),l=(n=e.closest(".vuuTableNextCell"))==null?void 0:n.getBoundingClientRect();if(l)return l.bottom>r.bottom?["down",l.bottom-r.bottom]:l.top<r.top?["up",l.top-r.top]:l.right<r.right?["right",l.right-r.right]:l.left<r.left?["left",l.left-r.left]:Os;throw Error("Whats going on, cell not found")}else throw Error("Whats going on, scrollbar container not found")};function Ws(e,[t,o],n,r){return e==="ArrowUp"?t>-1?[t-1,o]:[t,o]:e==="ArrowDown"?t===-1?[0,o]:t===r-1?[t,o]:[t+1,o]:e==="ArrowRight"?o<n-1?[t,o+1]:[t,o]:e==="ArrowLeft"?o>1?[t,o-1]:[t,o]:[t,o]}var Rr=({columnCount:e=0,containerRef:t,disableHighlightOnFocus:o,requestScroll:n,rowCount:r=0,viewportRowCount:l})=>{var x;let s=(0,B.useRef)([-1,-1]),i=(0,B.useRef)(),a=(0,B.useRef)([-1,0]),c=m=>m==null?void 0:m.closest("[role='columnHeader'],[role='cell']"),u=m=>{var g,P;if(m.role==="columnHeader")return[-1,parseInt((g=m.dataset.idx)!=null?g:"-1",10)];{let M=m.closest("[role='row']");if(M){let y=parseInt((P=M.ariaRowIndex)!=null?P:"-1",10),E=Array.from(M.childNodes).indexOf(m);return[y,E]}}return Fs},d=(0,B.useCallback)(m=>{var g;if(t.current){let P=Dr(t,m);if(P){P!==i.current&&((g=i.current)==null||g.removeAttribute("tabindex"),i.current=P,P.setAttribute("tabindex","0"));let[M,y]=Gs(P);M&&y&&(n==null||n({type:"scroll-distance",distance:y,direction:M})),P.focus()}}},[t,n]),p=(0,B.useCallback)((m,g,P=!1)=>{let M=[m,g];a.current=M,d(M),P&&(s.current=M)},[d]),C=(0,B.useCallback)((m,[g,P])=>new Promise(M=>{let y=g;switch(m){case"PageDown":y=Math.min(r-1,g+l),n==null||n({type:"scroll-page",direction:"down"});break;case"PageUp":y=Math.max(0,g-l),n==null||n({type:"scroll-page",direction:"up"});break;case"Home":y=0,n==null||n({type:"scroll-end",direction:"home"});break;case"End":y=r-1,n==null||n({type:"scroll-end",direction:"end"});break}setTimeout(()=>{M([y,P])},90)}),[n,r,l]),v=(0,B.useCallback)(()=>{var m;if(o!==!0&&(m=t.current)!=null&&m.contains(document.activeElement)){let g=c(document.activeElement);g&&(console.log({focusedCell:g}),s.current=u(g))}},[o,t]),h=(0,B.useCallback)(async m=>{console.log(`navigate child items ${m}`);let[g,P]=$s(m)?await C(m,a.current):Ws(m,a.current,e,r);console.log(`nextRowIdx ${g} nextColIdx ${P}`);let[M,y]=a.current;(g!==M||P!==y)&&p(g,P,!0)},[e,C,r,p]),w=(0,B.useCallback)(m=>{r>0&&Is(m.key)&&(m.preventDefault(),m.stopPropagation(),h(m.key))},[r,h]),R=(0,B.useCallback)(m=>{let g=m.target,P=c(g);if(P){let[M,y]=u(P);p(M,y)}},[p]),b=(0,B.useCallback)(()=>{h("ArrowDown")},[h]),f=(0,B.useMemo)(()=>({navigate:b,onClick:R,onFocus:v,onKeyDown:w}),[R,v,w,b]),T=((x=t.current)==null?void 0:x.firstChild)!=null;return(0,B.useEffect)(()=>{if(T&&i.current===void 0){let{current:m}=t,g=(m==null?void 0:m.querySelector(Go(0)))||(m==null?void 0:m.querySelector(Wo(0,0)));g&&(g.setAttribute("tabindex","0"),i.current=g)}},[t,T]),f};var U=require("@vuu-ui/vuu-utils"),K=require("react");var Qt=(e,t)=>{switch(t.type){case"col-size":return{...e,columns:e.columns.map(o=>o.name===t.column.name?{...o,width:t.width}:o)};case"column-prop":return{...e,columns:e.columns.map(o=>o.name===t.column.name?{...o,[t.property]:t.value}:o)};default:return e}};var jt=require("@vuu-ui/vuu-data-react/src"),Oe=require("@vuu-ui/vuu-utils"),_=require("react");var Zt=require("@vuu-ui/vuu-utils"),{SELECTED:Bs}=Zt.metadataKeys,Yt=class{constructor({from:t,to:o}){this.rowCount=0;this.setRowCount=t=>{t<this.data.length&&(this.data.length=t),this.rowCount=t};this.range=new Zt.WindowRange(t,o),this.data=new Array(o-t),this.rowCount=0}add(t){let[o]=t;if(this.isWithinRange(o)){let n=o-this.range.from;this.data[n]=t}}getAtIndex(t){return this.range.isWithin(t)&&this.data[t-this.range.from]!=null?this.data[t-this.range.from]:void 0}isWithinRange(t){return this.range.isWithin(t)}setRange({from:t,to:o}){if(t!==this.range.from||o!==this.range.to){let[n,r]=this.range.overlap(t,o),l=new Array(Math.max(0,o-t));for(let s=n;s<r;s++){let i=this.getAtIndex(s);if(i){let a=s-t;l[a]=i}}this.data=l,this.range.from=t,this.range.to=o}}getSelectedRows(){return this.data.filter(t=>t[Bs]===1)}};var xr=({dataSource:e,onFeatureEnabled:t,onFeatureInvocation:o,onSizeChange:n,onSubscribed:r,range:l=Oe.NULL_RANGE,renderBufferSize:s=0})=>{let[,i]=(0,_.useState)(null),a=(0,_.useRef)([]),c=(0,_.useRef)(!0),u=(0,_.useRef)(!1),d=(0,_.useRef)(Oe.NULL_RANGE),p=(0,_.useMemo)(()=>new Yt((0,Oe.getFullRange)(l,s)),[]),C=(0,_.useCallback)(w=>{for(let R of w)p.add(R);a.current=p.data,c.current&&i({})},[p]),v=(0,_.useCallback)(w=>{w.type==="subscribed"?r==null||r(w):w.type==="viewport-update"?(typeof w.size=="number"&&(n==null||n(w.size),p.setRowCount(w.size)),w.rows?C(w.rows):typeof w.size=="number"&&(a.current=p.data,u.current=!0)):(0,jt.isVuuFeatureAction)(w)?t==null||t(w):(0,jt.isVuuFeatureInvocation)(w)?o==null||o(w):console.log(`useDataSource unexpected message ${w.type}`)},[p,t,o,n,r,C]);(0,_.useEffect)(()=>()=>{c.current=!0,c.current=!1},[]),(0,_.useEffect)(()=>{e==null||e.subscribe({range:(0,Oe.getFullRange)(l,s)},v)},[e,v,l,s]);let h=(0,_.useCallback)(w=>{let R=(0,Oe.getFullRange)(w,s);p.setRange(R),e.range=d.current=R,e.emit("range",w)},[e,p,s]);return{data:a.current,range:d.current,setRange:h}};var qt=require("react"),Pr=e=>{let t=(0,qt.useRef)(e);return(0,qt.useMemo)(()=>t.current,[])};var Hr=require("@vuu-ui/vuu-utils"),Er=require("react"),Sr=require("@vuu-ui/vuu-popups"),Ar=({columns:e,data:t})=>{let[o]=(0,Sr.useContextMenu)();return(0,Er.useCallback)(r=>{var a;let l=r.target,s=l==null?void 0:l.closest("div[role='cell']"),i=l==null?void 0:l.closest("div[role='row']");if(s&&i){let c=(0,Hr.buildColumnMap)(e),u=parseInt((a=i.ariaRowIndex)!=null?a:"-1"),d=Array.from(i.childNodes).indexOf(s),p=t.find(([v])=>v===u),C=e[d];o(r,"grid",{columnMap:c,columnName:C,row:p})}},[e,t,o])};var Lr=require("@vuu-ui/vuu-utils"),St=require("react");var kr=({navigate:e})=>{let t=(0,St.useCallback)(()=>{e()},[e]),o=(0,St.useCallback)(l=>{let s=l.target,i=s.querySelector("input");i&&(i.focus(),i.select()),s.addEventListener("vuu-commit",t,!0)},[t]),n=(0,St.useCallback)(l=>{let s=l.target,i=s.querySelector("input");i&&(i.focus(),i.select()),s.addEventListener("vuu-commit",t,!0)},[t]);return{onKeyDown:(0,St.useCallback)(l=>{Mr(l.target)&&((0,Lr.isCharacterKey)(l.key)?o(l):l.key==="Enter"&&n(l))},[o,n])}};var A=require("@vuu-ui/vuu-utils"),Kr=require("@vuu-ui/vuu-ui-controls"),Nr=require("react"),{info:Bo}=(0,A.logger)("useTableModel"),Us=100,_s=A.metadataKeys.count,Js=({serverDataType:e})=>e===void 0,Xs=e=>{var t;if((0,A.isTypeDescriptor)(e.type))return(0,A.getCellRenderer)((t=e.type)==null?void 0:t.renderer)},Qs=(e,t)=>{var n;let o=t.columns.find(({name:r})=>r===e.name);return o?o.serverDataType:(n=e.serverDataType)!=null?n:"string"},Ys=["int","long","double"],zr=e=>e===void 0?void 0:Ys.includes(e)?"right":"left",Ir=e=>e.type==="columnSettings",Vr=e=>e.type==="tableSettings",Zs=(e,t)=>{switch(Bo==null||Bo(`TableModelReducer ${t.type}`),console.log(`TableModelReducer ${t.type}`),t.type){case"init":return console.log({init:t}),Fr(t);case"moveColumn":return qs(e,t);case"resizeColumn":return oi(e,t);case"setTableSchema":return ni(e,t);case"hideColumns":return ei(e,t);case"showColumns":return ti(e,t);case"pinColumn":return ri(e,t);case"updateColumnProp":return nt(e,t);case"tableConfig":return Gr(e,t);default:return console.log(`unhandled action ${t.type}`),e}},$r=(e,t)=>{let[o,n]=(0,Nr.useReducer)(Zs,{tableConfig:e,dataSourceConfig:t},Fr),{columns:r,headings:l,tableConfig:s,...i}=o;return{columns:r,dispatchColumnAction:n,headings:l,tableAttributes:i,tableConfig:s}};function Fr({dataSourceConfig:e,tableConfig:t}){let{columns:o,...n}=t,r=o.filter((0,A.subscribedOnly)(e==null?void 0:e.columns)).map(Or(n)),l=r.some(A.isPinned)?(0,A.sortPinnedColumns)(r):r,s={columns:l,headings:(0,A.getTableHeadings)(l),tableConfig:t,...n};if(e){let{columns:i,...a}=e;s=Gr(s,{type:"tableConfig",...a})}return s}var js=(e,t)=>t==="uppercase"?e.toUpperCase():t==="capitalize"?e[0].toUpperCase()+e.slice(1).toLowerCase():e,Or=e=>(t,o)=>{let{columnDefaultWidth:n=Us,columnFormatHeader:r}=e,{align:l=zr(t.serverDataType),key:s,name:i,label:a=i,width:c=n,...u}=t,d={...u,align:l,CellRenderer:Xs(t),clientSideEditValidationCheck:(0,A.hasValidationRules)(t.type)?(0,Kr.buildValidationChecker)(t.type.renderer.rules):void 0,label:js(a,r),key:s!=null?s:o+_s,name:i,originalIdx:o,valueFormatter:(0,A.getValueFormatter)(t),width:c};return(0,A.isGroupColumn)(d)&&(d.columns=d.columns.map(p=>Or(e)(p,p.key))),d};function qs(e,{column:t,moveBy:o,moveTo:n}){let{columns:r}=e;if(typeof o=="number"){let l=r.indexOf(t),s=r.slice(),[i]=s.splice(l,1);return s.splice(l+o,0,i),{...e,columns:s}}else if(typeof n=="number"){let l=r.indexOf(t);return{...e,columns:(0,A.moveItem)(r,l,n)}}return e}function ei(e,{columns:t}){return t.some(o=>o.hidden!==!0)?t.reduce((o,n)=>n.hidden!==!0?nt(o,{type:"updateColumnProp",column:n,hidden:!0}):o,e):e}function ti(e,{columns:t}){return t.some(o=>o.hidden)?t.reduce((o,n)=>n.hidden?nt(o,{type:"updateColumnProp",column:n,hidden:!1}):o,e):e}function oi(e,{column:t,phase:o,width:n}){let r="updateColumnProp",l=o!=="end";switch(o){case"begin":return nt(e,{type:r,column:t,resizing:l});case"end":return nt(e,{type:r,column:t,resizing:l,width:n});case"resize":return nt(e,{type:r,column:t,width:n});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${o}`)}}function ni(e,{tableSchema:t}){let{columns:o}=e;if(o.some(Js)){let n=o.map(r=>{var s;let l=Qs(r,t);return{...r,align:(s=r.align)!=null?s:zr(l),serverDataType:l}});return{...e,columns:n}}else return e}function ri(e,t){let{columns:o}=e,{column:n,pin:r}=t,l=o.find(s=>s.name===n.name);return l?(o=ot(o,{...l,pin:r}),o=(0,A.sortPinnedColumns)(o),{...e,columns:o}):e}function nt(e,t){let{columns:o}=e,{align:n,column:r,hidden:l,label:s,resizing:i,width:a}=t,c=o.find(u=>u.name===r.name);return c&&((n==="left"||n==="right")&&(o=ot(o,{...c,align:n})),typeof s=="string"&&(o=ot(o,{...c,label:s})),typeof i=="boolean"&&(o=ot(o,{...c,resizing:i})),typeof l=="boolean"&&(o=ot(o,{...c,hidden:l})),typeof a=="number"&&(o=ot(o,{...c,width:a}))),{...e,columns:o}}function Gr(e,{confirmed:t,filter:o,groupBy:n,sort:r}){let l=n!==void 0,s=typeof(o==null?void 0:o.filter)=="string",i=r&&r.sortDefs.length>0,a=e;return l&&(a={...e,columns:(0,A.applyGroupByToColumns)(a.columns,n,t)}),i&&(a={...e,columns:(0,A.applySortToColumns)(a.columns,r)}),s?a={...e,columns:(0,A.applyFilterToColumns)(a.columns,o)}:a.columns.some(A.isFilteredColumn)&&(a={...e,columns:(0,A.stripFilterFromColumns)(a.columns)}),a}function ot(e,t){return e.map(o=>o.name===t.name?t:o)}var Q=require("react"),Wr=e=>{let{scrollLeft:t,scrollTop:o}=e,{clientHeight:n,clientWidth:r,scrollHeight:l,scrollWidth:s}=e,i=t/(s-r),a=o/(l-n);return[i,a]},Br=({onAttach:e,onDetach:t})=>{let o=(0,Q.useRef)(null);return(0,Q.useCallback)(r=>{if(r)o.current=r,e==null||e(r);else if(o.current){let{current:l}=o;o.current=r,t==null||t(l)}},[e,t])},Ur=({maxScrollLeft:e,maxScrollTop:t,onHorizontalScroll:o,onVerticalScroll:n,rowHeight:r,viewportRowCount:l})=>{let s=(0,Q.useRef)(!1),i=(0,Q.useRef)({scrollTop:0,scrollLeft:0}),a=(0,Q.useRef)(null),c=(0,Q.useRef)(null),u=(0,Q.useCallback)(()=>{let{current:f}=c,{current:T}=a,{current:x}=s;if(x)s.current=!1;else if(f&&T){let[m,g]=Wr(T),P=Math.round(m*e),M=Math.round(g*t);f.scrollTo({left:P,top:M,behavior:"auto"})}},[e,t]),d=(0,Q.useCallback)(()=>{let{current:f}=c,{current:T}=a,{current:x}=i;if(f&&T){let{scrollLeft:m,scrollTop:g}=f,[P,M]=Wr(f);s.current=!0,T.scrollLeft=Math.round(P*e),T.scrollTop=Math.round(M*t),x.scrollTop!==g&&(x.scrollTop=g,n==null||n(g,M)),x.scrollLeft!==m&&(x.scrollLeft=m,o==null||o(m))}},[e,t,o,n]),p=(0,Q.useCallback)(f=>{a.current=f,f.addEventListener("scroll",u,{passive:!0})},[u]),C=(0,Q.useCallback)(f=>{a.current=null,f.removeEventListener("scroll",u)},[u]),v=(0,Q.useCallback)(f=>{c.current=f,f.addEventListener("scroll",d,{passive:!0})},[d]),h=(0,Q.useCallback)(f=>{c.current=null,f.removeEventListener("scroll",d)},[d]),w=Br({onAttach:v,onDetach:h}),R=Br({onAttach:p,onDetach:C}),b=(0,Q.useCallback)(f=>{let{current:T}=c;if(T){let{scrollLeft:x,scrollTop:m}=T;if(s.current=!1,f.type==="scroll-distance"){let g=x,P=m;f.direction==="up"||f.direction==="down"?P=Math.min(Math.max(0,m+f.distance),t):g=Math.min(Math.max(0,x+f.distance),e),T.scrollTo({top:P,left:g,behavior:"auto"})}else if(f.type==="scroll-page"){let{direction:g}=f,P=l*(g==="down"?r:-r),M=Math.min(Math.max(0,m+P),t);T.scrollTo({top:M,left:x,behavior:"auto"})}else if(f.type==="scroll-end"){let{direction:g}=f,P=g==="end"?t:0;T.scrollTo({top:P,left:T.scrollLeft,behavior:"auto"})}}},[e,t,r,l]);return{scrollbarContainerRef:R,contentContainerRef:w,requestScroll:b}};var rt=require("react"),_r=({columns:e,getRowAtPosition:t,setRange:o,viewportMeasurements:n})=>{let r=(0,rt.useRef)(0),{contentWidth:l,rowCount:s}=n,i=(0,rt.useCallback)(a=>{let c=t(a);c!==r.current&&(r.current=c,o({from:c,to:c+s}))},[t,o,s]);return(0,rt.useEffect)(()=>{let{current:a}=r,c={from:a,to:a+s};o(c)},[o,s]),{onVerticalScroll:i}};var{KEY:li,IS_EXPANDED:Jr,IS_LEAF:Xr}=U.metadataKeys,si=(e,t)=>({...e,columns:e.columns.concat(t)}),jr=({availableColumns:e,config:t,containerRef:o,dataSource:n,headerHeight:r=25,onAvailableColumnsChange:l,onConfigChange:s,onFeatureEnabled:i,onFeatureInvocation:a,onRowClick:c,onSelectionChange:u,renderBufferSize:d=0,rowHeight:p=20,selectionModel:C})=>{let[v,h]=(0,K.useState)(n.size);if(n===void 0)throw Error("no data source provided to Vuu Table");let[w,R]=(0,K.useState)(),b=(0,K.useCallback)(D=>{R(D)},[]),f=(0,K.useMemo)(()=>pt(n),[n]),T=(0,K.useCallback)(D=>{h(D)},[]),{columns:x,dispatchColumnAction:m,headings:g,tableAttributes:P,tableConfig:M}=$r(t,n.config);(0,Qr.useLayoutEffectSkipFirst)(()=>{m({type:"init",dataSourceConfig:n.config,tableConfig:M})},[M,n.config,m]);let[y,E]=(0,K.useState)(),[H,k]=(0,K.useMemo)(()=>{let D=(N,z)=>{let ne=(0,U.updateColumn)(x,N,{width:z});E(ne)};return[y!=null?y:x,D]},[x,y]),J=(0,K.useMemo)(()=>(0,U.buildColumnMap)(n.columns),[n.columns]),{getRowAtPosition:me,getRowOffset:At,setPctScrollTop:Lt,...te}=wt({columns:H,headerHeight:r,headings:g,rowCount:v,rowHeight:p,size:w}),Te=Pr({from:0,to:te.rowCount}),oe=(0,K.useCallback)(({tableSchema:D})=>{D||console.log("usbscription message with no schema")},[]),{data:Ae,range:it,setRange:at}=xr({dataSource:n,onFeatureEnabled:i,onFeatureInvocation:a,renderBufferSize:d,onSizeChange:T,onSubscribed:oe,range:Te}),Y=(0,K.useCallback)(D=>{console.log("useTableNext handleConfigChanged",{tableConfig:D}),m({type:"init",tableConfig:D,dataSourceConfig:n.config}),s==null||s(D)},[n.config,m,s]),we=(0,K.useCallback)(D=>{console.log("config changed",{dataSourceConfig:D}),n.config={...n.config,...D}},[n]),ro=(0,K.useCallback)(D=>{console.log("useTableNext handleCreateCalculatedColumn",{column:D}),n.columns=n.columns.concat(D.name);let N=si(M,D);m({type:"init",tableConfig:N,dataSourceConfig:n.config}),s==null||s(N)},[n,m,s,M]);(0,K.useEffect)(()=>{n.on("config",(D,N)=>{m({type:"tableConfig",...D,confirmed:N})})},[n,m]);let{showColumnSettingsPanel:kt,showTableSettingsPanel:Kt}=(0,Yr.useTableAndColumnSettings)({availableColumns:e!=null?e:M.columns.map(({name:D,serverDataType:N="string"})=>({name:D,serverDataType:N})),onAvailableColumnsChange:l,onConfigChange:Y,onCreateCalculatedColumn:ro,onDataSourceConfigChange:we,tableConfig:M}),lo=(0,K.useCallback)(D=>{Ir(D)?kt(D):Vr(D)?Kt():m(D)},[m,kt,Kt]),so=dt({dataSource:n,onPersistentColumnOperation:lo}),Nt=(0,K.useCallback)((D,N=!1,z)=>{n&&(n.sort=(0,U.applySort)(n.sort,D,N,z))},[n]),zt=(0,K.useCallback)((D,N,z)=>{let ne=H.find(fe=>fe.name===N);if(ne)D==="resize"?(0,U.isValidNumber)(z)&&k(N,z):D==="end"?(0,U.isValidNumber)(z)&&(m({type:"resizeColumn",phase:D,column:ne,width:z}),s==null||s(Qt(M,{type:"col-size",column:ne,width:z}))):(E(void 0),m({type:"resizeColumn",phase:D,column:ne,width:z}));else throw Error(`useDataTable.handleColumnResize, column ${N} not found`)},[H,M,m,s,k]),io=(0,K.useCallback)((D,N)=>{let z=(0,U.isJsonGroup)(N,D),ne=D[li];if(D[Jr]){if(n.closeTreeNode(ne,!0),z){let fe=H.indexOf(N);n.getRowsAtDepth(fe+1).some(Ce=>Ce[Jr]||Ce[Xr])||m({type:"hideColumns",columns:H.slice(fe+2)})}}else if(n.openTreeNode(ne),z){let fe=n.getChildRows(ne),ut=H.indexOf(N)+1,Ce=[H[ut]];fe.some(Co=>Co[Xr])&&Ce.push(H[ut+1]),Ce.some(Co=>Co.hidden)&&m({type:"showColumns",columns:Ce})}},[H,n,m]),{onVerticalScroll:ct}=_r({columns:H,getRowAtPosition:me,setRange:at,viewportMeasurements:te}),It=(0,K.useCallback)(D=>{ct(D)},[ct]),{requestScroll:L,...$}=Ur({maxScrollLeft:te.maxScrollContainerScrollHorizontal,maxScrollTop:te.maxScrollContainerScrollVertical,rowHeight:p,onVerticalScroll:It,viewportRowCount:te.rowCount}),{navigate:Z,onKeyDown:F,...se}=Rr({columnCount:H.filter(D=>D.hidden!==!0).length,containerRef:o,requestScroll:L,rowCount:n==null?void 0:n.size,viewportRange:it,viewportRowCount:te.rowCount}),{onKeyDown:pe}=kr({navigate:Z}),ie=(0,K.useCallback)(D=>{F(D),D.defaultPrevented||pe(D)},[F,pe]),De=Ar({columns:H,data:Ae}),ao=(0,K.useCallback)(D=>{var Ce;let z=D.target.closest(".vuuTableNextHeaderCell"),ne=parseInt((Ce=z==null?void 0:z.dataset.index)!=null?Ce:"-1"),fe=(0,U.visibleColumnAtIndex)(H,ne),ut=D.shiftKey;fe&&Nt(fe,ut)},[H,Nt]),co=(0,K.useCallback)(D=>{(0,U.isGroupColumn)(D)?n.groupBy=[]:n&&n.groupBy.includes(D.name)&&(n.groupBy=n.groupBy.filter(N=>N!==D.name))},[n]),uo=(0,K.useCallback)(D=>{n.select(D),u==null||u(D)},[n,u]),Vt=Tt({onSelectionChange:uo,selectionModel:C}),mo=(0,K.useCallback)((D,N,z)=>{Vt(D,N,z),c==null||c(D)},[c,Vt]);(0,K.useEffect)(()=>{n.on("config",(D,N)=>{m({type:"tableConfig",...D,confirmed:N})})},[n,m]);let po=(0,K.useCallback)((D,N)=>{let z=H[D];m({type:"moveColumn",column:z,moveTo:N})},[H,m]),fo=(0,K.useCallback)((D,N,z)=>n.applyEdit(D,N,z),[n]),{onMouseDown:al,...cl}=(0,Zr.useDragDropNext)({allowDragDrop:!0,containerRef:o,draggableClassName:"vuuTableNext",onDrop:po,orientation:"horizontal",itemQuery:".vuuTableNextHeaderCell"});return{...se,onKeyDown:ie,columnMap:J,columns:H,data:Ae,handleContextMenuAction:so,headerProps:{onClick:ao,onMouseDown:al,onResize:zt},menuBuilder:f,onContextMenu:De,onDataEdited:fo,onRemoveGroupColumn:co,onResize:b,onRowClick:mo,onToggleGroup:io,scrollProps:$,tableAttributes:P,viewportMeasurements:te,dragDropHook:cl}};var eo=require("@vuu-ui/vuu-layout");var le=require("react/jsx-runtime"),_o=require("react"),ue="vuuTableNext",{IDX:ii,RENDER_IDX:ai}=lt.metadataKeys,tl=({Row:e=Oo,availableColumns:t,className:o,config:n,dataSource:r,id:l,onAvailableColumnsChange:s,onConfigChange:i,onFeatureEnabled:a,onFeatureInvocation:c,onRowClick:u,onSelectionChange:d,onShowConfigEditor:p,renderBufferSize:C=0,rowHeight:v=20,selectionModel:h="extended",showColumnHeaders:w=!0,headerHeight:R=w?25:0,style:b,...f})=>{let T=(0,eo.useId)(l),x=(0,el.useRef)(null),{columnMap:m,columns:g,data:P,dragDropHook:M,handleContextMenuAction:y,headerProps:E,onDataEdited:H,onRemoveGroupColumn:k,onResize:J,onRowClick:me,onToggleGroup:At,menuBuilder:Lt,scrollProps:te,tableAttributes:Te,viewportMeasurements:oe,...Ae}=jr({availableColumns:t,config:n,containerRef:x,dataSource:r,headerHeight:R,onAvailableColumnsChange:s,onConfigChange:i,onFeatureEnabled:a,onFeatureInvocation:c,onRowClick:u,onSelectionChange:d,renderBufferSize:C,rowHeight:v,selectionModel:h}),it=()=>({...b,"--content-height":`${oe.contentHeight}px`,"--horizontal-scrollbar-height":`${oe.horizontalScrollbarHeight}px`,"--content-width":`${oe.contentWidth}px`,"--pinned-width-left":`${oe.pinnedWidthLeft}px`,"--pinned-width-right":`${oe.pinnedWidthRight}px`,"--header-height":`${R}px`,"--row-height":`${v}px`,"--total-header-height":`${oe.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${oe.verticalScrollbarWidth}px`,"--viewport-body-height":`${oe.viewportBodyHeight}px`}),at=(0,Uo.default)(ue,o,{[`${ue}-colLines`]:Te.columnSeparators,[`${ue}-rowLines`]:Te.rowSeparators,[`${ue}-zebra`]:Te.zebraStripes});return(0,le.jsx)(qr.ContextMenuProvider,{menuActionHandler:y,menuBuilder:Lt,children:(0,le.jsxs)(eo.MeasuredContainer,{...f,className:at,onResize:J,ref:x,style:it(),children:[(0,le.jsx)("div",{className:`${ue}-scrollbarContainer`,ref:te.scrollbarContainerRef,children:(0,le.jsx)("div",{className:`${ue}-scrollbarContent`})}),(0,le.jsx)("div",{className:`${ue}-contentContainer`,ref:te.contentContainerRef,children:(0,le.jsxs)("div",{...Ae,className:`${ue}-table`,tabIndex:-1,children:[w?(0,le.jsx)("div",{className:`${ue}-col-headings`,children:(0,le.jsxs)("div",{className:`${ue}-col-headers`,role:"row",children:[g.filter(lt.notHidden).map((Y,we)=>(0,lt.isGroupColumn)(Y)?(0,_o.createElement)(Ht,{...E,column:Y,"data-index":we,key:Y.name,onRemoveColumn:k}):(0,_o.createElement)(fr,{...E,className:(0,Uo.default)({"vuuDraggable-dragAway":we===M.draggedItemIndex}),column:Y,"data-index":we,id:`${T}-col-${we}`,key:Y.name})),M.draggable]})}):null,(0,le.jsx)("div",{className:`${ue}-body`,children:P.map(Y=>(0,le.jsx)(e,{columnMap:m,columns:g,onClick:me,onDataEdited:H,row:Y,offset:v*Y[ii]+R,onToggleGroup:At,zebraStripes:Te.zebraStripes},Y[ai]))})]})})]})})};var ol=require("@vuu-ui/vuu-ui-controls"),st=require("@vuu-ui/vuu-utils");var to=require("react"),nl=require("react/jsx-runtime"),ci="vuuTableDropdownCell",ui=["Enter"," "],mi=({column:e,columnMap:t,row:o})=>{var a,c,u;let n=(0,st.isTypeDescriptor)(e.type)&&(0,st.isColumnTypeRenderer)((a=e.type)==null?void 0:a.renderer)?(u=(c=e.type)==null?void 0:c.renderer)==null?void 0:u.values:[],r=t[e.name],[l,s]=(0,to.useState)(o[r]),i=(0,to.useCallback)((d,p)=>{p&&s(p)},[]);return(0,nl.jsx)(ol.Dropdown,{className:ci,onSelectionChange:i,openKeys:ui,selected:l,source:n,width:e.width-17})};(0,st.registerComponent)("dropdown-cell",mi,"cell-renderer",{});var rl=require("@vuu-ui/vuu-utils"),ll=require("@salt-ds/core"),sl=require("@vuu-ui/vuu-ui-controls"),il=G(require("classnames"));var no=require("react/jsx-runtime"),oo="vuuTableInputCell",pi=()=>(console.warn("onCommit handler has not been provided to InputCell cell renderer"),!0),di=({column:e,columnMap:t,onCommit:o=pi,row:n})=>{let r=t[e.name],{align:l="left",clientSideEditValidationCheck:s,valueFormatter:i}=e,{warningMessage:a,...c}=(0,sl.useEditableText)({initialValue:i(n[r]),onCommit:o,clientSideEditValidationCheck:s}),u=a&&l==="left"?(0,no.jsx)("span",{className:`${oo}-icon`,"data-icon":"error"}):void 0,d=a&&l==="right"?(0,no.jsx)("span",{className:`${oo}-icon`,"data-icon":"error"}):void 0;return(0,no.jsx)(ll.Input,{...c,className:(0,il.default)(oo,{[`${oo}-error`]:a!==void 0}),endAdornment:u,startAdornment:d})};(0,rl.registerComponent)("input-cell",di,"cell-renderer",{});
1
+ "use strict";var pl=Object.create;var Ft=Object.defineProperty;var dl=Object.getOwnPropertyDescriptor;var fl=Object.getOwnPropertyNames;var Cl=Object.getPrototypeOf,bl=Object.prototype.hasOwnProperty;var gl=(e,t)=>{for(var o in t)Ft(e,o,{get:t[o],enumerable:!0})},Qo=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of fl(t))!bl.call(e,r)&&r!==o&&Ft(e,r,{get:()=>t[r],enumerable:!(n=dl(t,r))||n.enumerable});return e};var W=(e,t,o)=>(o=e!=null?pl(Cl(e)):{},Qo(t||!e||!e.__esModule?Ft(o,"default",{value:e,enumerable:!0}):o,e)),hl=e=>Qo(Ft({},"__esModule",{value:!0}),e);var bi={};gl(bi,{ColumnResizer:()=>Ct,GroupHeaderCellNext:()=>Lt,Table:()=>ys,TableNext:()=>ol,buildContextMenuDescriptors:()=>bt,isShowColumnSettings:()=>rs,isShowTableSettings:()=>ls,updateTableConfig:()=>Yt,useMeasuredContainer:()=>ko,useSelection:()=>Rt,useTableColumnResize:()=>Tt,useTableContextMenu:()=>gt,useTableModel:()=>No,useTableViewport:()=>xt});module.exports=hl(bi);var We=require("react");var Zo=require("react/jsx-runtime"),Yo=()=>{},vl="vuuColumnResizer",Ct=({onDrag:e,onDragEnd:t=Yo,onDragStart:o=Yo})=>{let n=(0,We.useRef)(0),r=(0,We.useCallback)(i=>{i.stopPropagation&&i.stopPropagation(),i.preventDefault&&i.preventDefault();let a=Math.round(i.clientX),c=a-n.current;n.current=a,c!==0&&e(i,c)},[e]),l=(0,We.useCallback)(i=>{window.removeEventListener("mouseup",l),window.removeEventListener("mousemove",r),t(i)},[t,r]),s=(0,We.useCallback)(i=>{o(i),n.current=Math.round(i.clientX),window.addEventListener("mouseup",l),window.addEventListener("mousemove",r),i.stopPropagation&&i.stopPropagation(),i.preventDefault&&i.preventDefault()},[o,r,l]);return(0,Zo.jsx)("div",{className:vl,"data-align":"end",onMouseDown:s})};var jo=require("@vuu-ui/vuu-utils"),bt=e=>(t,o)=>{let n=[];if(e===void 0)return n;if(t==="header"||t==="column-menu")n.push(...yl(o,e)),n.push(...Dl(o,e)),n.push(...Tl(o,e)),n.push(...wl(o)),n.push({action:"column-settings",icon:"cog",label:"Column Settings",options:o}),n.push({action:"table-settings",icon:"cog",label:"DataGrid Settings",options:o});else if(t==="filter"){let{column:r,filter:l}=o,s=(l==null?void 0:l.column)===(r==null?void 0:r.name);n.push({label:"Edit filter",action:"filter-edit",options:o}),n.push({label:"Remove filter",action:"filter-remove-column",options:o}),r&&!s&&n.push({label:"Remove all filters",action:"remove-filters",options:o})}return n};function yl(e,{sort:{sortDefs:t}}){let{column:o}=e,n=[];if(o===void 0)return n;let r=t.length>0;return o.sorted==="A"?n.push({label:"Reverse Sort (DSC)",action:"sort-dsc",options:e}):o.sorted==="D"?n.push({label:"Reverse Sort (ASC)",action:"sort-asc",options:e}):typeof o.sorted=="number"?(o.sorted>0?n.push({label:"Reverse Sort (DSC)",action:"sort-add-dsc",options:e}):n.push({label:"Reverse Sort (ASC)",action:"sort-add-asc",options:e}),r&&Math.abs(o.sorted)<t.length&&n.push({label:"Remove from sort",action:"sort-remove",options:e}),n.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]})):r?(n.push({label:"Add to sort",children:[{label:"Ascending",action:"sort-add-asc",options:e},{label:"Descending",action:"sort-add-dsc",options:e}]}),n.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]})):n.push({label:"Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]}),n}function Tl(e,t){let{column:o}=e;if(o===void 0||t.groupBy.length===0)return[];let{name:n,label:r=n}=o;return[{label:`Aggregate ${r}`,children:[{label:"Count",action:"agg-count",options:e},{label:"Distinct",action:"agg-distinct",options:e}].concat((0,jo.isNumericColumn)(o)?[{label:"Sum",action:"agg-sum",options:e},{label:"Avg",action:"agg-avg",options:e},{label:"High",action:"agg-high",options:e},{label:"Low",action:"agg-low",options:e}]:[])}]}var yo=(e,t)=>({label:`Pin ${t}`,action:`column-pin-${t}`,options:e}),go=e=>yo(e,"left"),ho=e=>yo(e,"floating"),vo=e=>yo(e,"right");function wl(e){let{column:t}=e;if(t===void 0)return[];let{pin:o}=t,n=[{label:"Hide column",action:"column-hide",options:e},{label:"Remove column",action:"column-remove",options:e}];return o===void 0?n.push({label:"Pin column",children:[go(e),ho(e),vo(e)]}):o==="left"?n.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[ho(e),vo(e)]}):o==="right"?n.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[go(e),ho(e)]}):o==="floating"&&n.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[go(e),vo(e)]}),n}function Dl(e,{groupBy:t}){let{column:o}=e,n=[];if(o===void 0)return n;let{name:r,label:l=r}=o;return t.length===0?n.push({label:`Group by ${l}`,action:"group",options:e}):n.push({label:`Add ${l} to group by`,action:"group-add",options:e}),n}var qo=require("@vuu-ui/vuu-utils"),B=require("@vuu-ui/vuu-utils"),Ml=(e,t)=>{if(e.filterStruct&&t){let[o,n]=(0,qo.removeColumnFromFilter)(t,e.filterStruct);return{filter:n,filterStruct:o}}else return e},{Average:Rl,Count:xl,Distinct:Pl,High:Hl,Low:El,Sum:Sl}=B.AggregationType,gt=({dataSource:e,onPersistentColumnOperation:t})=>n=>{let r=n.options;if(r.column&&e){let{column:l}=r;switch(n.menuId){case"sort-asc":return e.sort=(0,B.setSortColumn)(e.sort,l,"A"),!0;case"sort-dsc":return e.sort=(0,B.setSortColumn)(e.sort,l,"D"),!0;case"sort-add-asc":return e.sort=(0,B.addSortColumn)(e.sort,l,"A"),!0;case"sort-add-dsc":return e.sort=(0,B.addSortColumn)(e.sort,l,"D"),!0;case"group":return e.groupBy=(0,B.addGroupColumn)(e.groupBy,l),!0;case"group-add":return e.groupBy=(0,B.addGroupColumn)(e.groupBy,l),!0;case"column-hide":return t({type:"hideColumns",columns:[l]}),!0;case"column-remove":return e.columns=e.columns.filter(s=>s!==l.name),!0;case"filter-remove-column":return e.filter=Ml(e.filter,l),!0;case"remove-filters":return e.filter={filter:""},!0;case"agg-avg":return e.aggregations=(0,B.setAggregations)(e.aggregations,l,Rl),!0;case"agg-high":return e.aggregations=(0,B.setAggregations)(e.aggregations,l,Hl),!0;case"agg-low":return e.aggregations=(0,B.setAggregations)(e.aggregations,l,El),!0;case"agg-count":return e.aggregations=(0,B.setAggregations)(e.aggregations,l,xl),!0;case"agg-distinct":return e.aggregations=(0,B.setAggregations)(e.aggregations,l,Pl),!0;case"agg-sum":return e.aggregations=(0,B.setAggregations)(e.aggregations,l,Sl),!0;case"column-pin-floating":return t({type:"pinColumn",column:l,pin:"floating"}),!0;case"column-pin-left":return t({type:"pinColumn",column:l,pin:"left"}),!0;case"column-pin-right":return t({type:"pinColumn",column:l,pin:"right"}),!0;case"column-unpin":return t({type:"pinColumn",column:l,pin:void 0}),!0;case"column-settings":return t({type:"columnSettings",column:l}),!0;case"table-settings":return t({type:"tableSettings"}),!0;default:}}return!1};var Qn=require("@vuu-ui/vuu-popups"),Bt=require("@salt-ds/core");var le=require("@vuu-ui/vuu-utils"),Je=require("react");var j=require("@vuu-ui/vuu-utils"),sn=W(require("classnames")),vt=require("react");var Ot=require("@vuu-ui/vuu-utils"),tn=require("@vuu-ui/vuu-ui-controls"),on=W(require("classnames")),he=require("react");var ht=require("react/jsx-runtime"),{KEY:en}=Ot.metadataKeys,To=(0,he.memo)(({className:e,column:t,columnMap:o,onClick:n,row:r})=>{let l=(0,he.useRef)(null),{align:s,CellRenderer:i,key:a,pin:c,editable:u,resizing:d,valueFormatter:m}=t,[b,y]=(0,he.useState)(!1),h=m(r[a]),[T,x]=(0,he.useState)(h),v=()=>{var P;(P=l.current)==null||P.focus()},C=P=>{P.key==="Enter"&&y(!0)},D=(0,he.useCallback)(P=>{n==null||n(P,t)},[t,n]),w=()=>{y(!0)},p=(P="",g="",E=!0,L=!1)=>{var H;y(!1),L?x(P):g!==P&&x(g),E===!1&&((H=l.current)==null||H.focus())},f=(0,on.default)(e,{vuuAlignRight:s==="right",vuuPinFloating:c==="floating",vuuPinLeft:c==="left",vuuPinRight:c==="right","vuuTableCell-resizing":d})||void 0,M=(0,Ot.getColumnStyle)(t);return u?(0,ht.jsx)("div",{className:f,"data-editable":!0,role:"cell",style:M,onKeyDown:C,children:(0,ht.jsx)(tn.EditableLabel,{editing:b,value:T,onChange:x,onMouseDownCapture:v,onEnterEditMode:w,onExitEditMode:p,onKeyDown:C,ref:l,tabIndex:0},"title")}):(0,ht.jsx)("div",{className:f,role:"cell",style:M,onClick:D,children:i?(0,ht.jsx)(i,{column:t,columnMap:o,row:r}):h})},Al);To.displayName="TableCell";function Al(e,t){return e.column===t.column&&e.onClick===t.onClick&&e.row[en]===t.row[en]&&e.row[e.column.key]===t.row[t.column.key]}var Ue=require("@vuu-ui/vuu-utils"),nn=require("react");var Be=require("react/jsx-runtime"),{IS_LEAF:Ll}=Ue.metadataKeys,rn=({column:e,onClick:t,row:o})=>{let{columns:n}=e,[r,l]=(0,Ue.getGroupValueAndOffset)(n,o),s=(0,nn.useCallback)(u=>{t==null||t(u,e)},[e,t]),i=(0,Ue.getColumnStyle)(e),a=o[Ll],c=Array(l).fill(0).map((u,d)=>(0,Be.jsx)("span",{className:"vuuTableGroupCell-spacer"},d));return(0,Be.jsxs)("div",{className:"vuuTableGroupCell vuuPinLeft",onClick:a?void 0:s,role:"cell",style:i,children:[c,a?null:(0,Be.jsx)("span",{className:"vuuTableGroupCell-toggle","data-icon":"triangle-right"}),(0,Be.jsx)("span",{children:r})]})};var yt=require("react/jsx-runtime"),{IDX:Kl,IS_EXPANDED:kl,SELECTED:Nl}=j.metadataKeys,{True:ln,First:zl,Last:Il}=j.RowSelected,_e="vuuTableRow",an=(0,vt.memo)(function({columnMap:t,columns:o,offset:n,onClick:r,onToggleGroup:l,virtualColSpan:s=0,row:i}){let{[Kl]:a,[kl]:c,[Nl]:u}=i,d=(0,sn.default)(_e,{[`${_e}-even`]:a%2===0,[`${_e}-expanded`]:c,[`${_e}-selected`]:u&ln,[`${_e}-selectedStart`]:u&zl,[`${_e}-selectedEnd`]:u&Il}),m=(0,vt.useCallback)(y=>{let h=y.shiftKey,T=y.ctrlKey||y.metaKey;r==null||r(i,h,T)},[r,i]),b=(0,vt.useCallback)((y,h)=>{((0,j.isGroupColumn)(h)||(0,j.isJsonGroup)(h,i))&&(y.stopPropagation(),l==null||l(i,h))},[l,i]);return(0,yt.jsxs)("div",{"aria-selected":u&ln?!0:void 0,"aria-rowindex":a,className:d,onClick:m,role:"row",style:{transform:`translate3d(0px, ${n}px, 0px)`},children:[s>0?(0,yt.jsx)("div",{role:"cell",style:{width:s}}):null,o.filter(j.notHidden).map(y=>{let h=(0,j.isGroupColumn)(y),T=(0,j.isJsonColumn)(y);return(0,yt.jsx)(h?rn:To,{column:y,columnMap:t,onClick:h||T?b:void 0,row:i},y.name)})]})});var wo=W(require("classnames")),un=require("react");var Ke=require("react"),Tt=({column:e,onResize:t,rootRef:o})=>{let n=(0,Ke.useRef)(0),r=(0,Ke.useRef)(!1),{name:l}=e,s=(0,Ke.useCallback)(()=>{if(t&&o.current){console.log("handleResizeStart");let{width:c}=o.current.getBoundingClientRect();n.current=Math.round(c),r.current=!0,t==null||t("begin",l)}},[l,t,o]),i=(0,Ke.useCallback)((c,u)=>{if(o.current&&t){let{width:d}=o.current.getBoundingClientRect(),m=Math.round(d)+u;m!==n.current&&m>0&&(t("resize",l,m),n.current=m)}},[l,t,o]),a=(0,Ke.useCallback)(()=>{t&&(t("end",l,n.current),setTimeout(()=>{r.current=!1},100))},[l,t]);return{isResizing:r.current,onDrag:i,onDragStart:s,onDragEnd:a}};var ae=require("react/jsx-runtime"),Me="vuuTable-groupHeaderCell",cn=({column:e,onClick:t,...o})=>(0,ae.jsx)("span",{...o,className:`${Me}-close`,"data-icon":"close-circle",onClick:()=>t==null?void 0:t(e)}),Vl=e=>{let{children:t,column:o,className:n}=e;return(0,ae.jsxs)("div",{className:(0,wo.default)(`${Me}-col`,n),role:"columnheader",children:[(0,ae.jsx)("span",{className:`${Me}-label`,children:o.name}),t]})},mn=({column:e,className:t,onRemoveColumn:o,onResize:n,...r})=>{let l=(0,un.useRef)(null),{isResizing:s,...i}=Tt({column:e,onResize:n,rootRef:l}),a=(0,wo.default)(Me,t,{vuuPinLeft:e.pin==="left",[`${Me}-right`]:e.align==="right",[`${Me}-resizing`]:e.resizing,[`${Me}-pending`]:e.groupConfirmed===!1}),{columns:c}=e;return(0,ae.jsx)("div",{className:a,ref:l,...r,children:(0,ae.jsxs)("div",{className:`${Me}-inner`,children:[c.map(u=>(0,ae.jsx)(Vl,{column:u,children:c.length>1?(0,ae.jsx)(cn,{column:u,onClick:o}):null},u.key)),(0,ae.jsx)(cn,{"data-align":"end",onClick:o}),e.resizeable!==!1?(0,ae.jsx)(Ct,{...i}):null]})})};var vn=W(require("classnames")),Ne=require("react");var Do=W(require("classnames"));var ke=require("react/jsx-runtime"),pn="vuuSortIndicator",dn=({sorted:e})=>{if(!e)return null;let t=typeof e=="number"?e<0?"dsc":"asc":e==="A"?"asc":"dsc";return typeof e=="number"?(0,ke.jsxs)("div",{className:(0,Do.default)(pn,"multi-col",t),children:[(0,ke.jsx)("span",{"data-icon":`sorted-${t}`}),(0,ke.jsx)("span",{className:"vuuSortPosition",children:Math.abs(e)})]}):(0,ke.jsx)("div",{className:(0,Do.default)(pn,"single-col"),children:(0,ke.jsx)("span",{"data-icon":`sorted-${t}`})})};var yn=require("@vuu-ui/vuu-popups");var fn=require("@vuu-ui/vuu-popups"),Cn=W(require("classnames")),bn=require("react");var hn=require("react/jsx-runtime");var gn=({column:e,filter:t})=>{let[o]=(0,fn.useContextMenu)(),n=(0,bn.useCallback)(r=>{r.stopPropagation(),o(r,"filter",{column:e,filter:t})},[e,t,o]);return e.filter?(0,hn.jsx)("div",{className:(0,Cn.default)("vuuFilterIndicator"),"data-icon":"filter",onClick:n}):null};var Re=require("react/jsx-runtime"),wt="vuuTable-headerCell",Tn=({column:e,className:t,onClick:o,onDragStart:n,onResize:r,...l})=>{let s=(0,Ne.useRef)(null),{isResizing:i,...a}=Tt({column:e,onResize:r,rootRef:s}),[c]=(0,yn.useContextMenu)(),u=(0,Ne.useRef)(null),d=T=>{c(T,"header",{column:e})},m=(0,Ne.useCallback)(T=>!i&&(o==null?void 0:o(T)),[i,o]),b=(0,Ne.useCallback)(T=>{u.current=window.setTimeout(()=>{n==null||n(T),u.current=null},500)},[n]),y=(0,Ne.useCallback)(()=>{u.current!==null&&(window.clearTimeout(u.current),u.current=null)},[]),h=(0,vn.default)(wt,t,{vuuPinFloating:e.pin==="floating",vuuPinLeft:e.pin==="left",vuuPinRight:e.pin==="right",vuuEndPin:e.endPin,[`${wt}-resizing`]:e.resizing,[`${wt}-right`]:e.align==="right"});return(0,Re.jsx)("div",{className:h,...l,onClick:m,onContextMenu:d,onMouseDown:b,onMouseUp:y,ref:s,children:(0,Re.jsxs)("div",{className:`${wt}-inner`,children:[(0,Re.jsx)(gn,{column:e}),(0,Re.jsx)("div",{className:`${wt}-label`,children:e.label}),(0,Re.jsx)(dn,{sorted:e.sorted}),e.resizeable!==!1?(0,Re.jsx)(Ct,{...a}):null]})})};var ce=require("react/jsx-runtime"),Mo="vuuTable",{RENDER_IDX:$l}=le.metadataKeys,wn=({columns:e,columnsWithinViewport:t,data:o,getRowOffset:n,headings:r,onColumnResize:l,onHeaderCellDragStart:s,onContextMenu:i,onRemoveColumnFromGroupBy:a,onRowClick:c,onSort:u,onToggleGroup:d,tableId:m,virtualColSpan:b=0,rowCount:y})=>{let h=(0,Je.useCallback)(C=>{s==null||s(C)},[s]),T=(0,Je.useMemo)(()=>e.filter(le.notHidden),[e]),x=(0,Je.useMemo)(()=>(0,le.buildColumnMap)(e),[e]),v=(0,Je.useCallback)(C=>{var P;let w=C.target.closest(".vuuTable-headerCell"),p=parseInt((P=w==null?void 0:w.dataset.idx)!=null?P:"-1"),f=(0,le.visibleColumnAtIndex)(e,p),M=C.shiftKey;f&&u(f,M)},[e,u]);return(0,ce.jsxs)("div",{"aria-rowcount":y,className:`${Mo}-table`,role:"table",children:[(0,ce.jsxs)("div",{className:`${Mo}-headers`,role:"rowGroup",children:[r.map((C,D)=>(0,ce.jsx)("div",{className:"vuuTable-heading",children:C.map(({label:w,width:p},f)=>(0,ce.jsx)("div",{className:"vuuTable-headingCell",style:{width:p},children:w},f))},D)),(0,ce.jsx)("div",{role:"row",children:T.map((C,D)=>{let w=(0,le.getColumnStyle)(C);return(0,le.isGroupColumn)(C)?(0,ce.jsx)(mn,{column:C,"data-idx":D,onRemoveColumn:a,onResize:l,role:"columnHeader",style:w},D):(0,ce.jsx)(Tn,{column:C,"data-idx":D,id:`${m}-${D}`,onClick:v,onDragStart:h,onResize:l,role:"columnHeader",style:w},D)})})]}),(0,ce.jsx)("div",{className:`${Mo}-body`,onContextMenu:i,role:"rowGroup",children:o==null?void 0:o.map(C=>(0,ce.jsx)(an,{columnMap:x,columns:t,offset:n(C),onClick:c,virtualColSpan:b,onToggleGroup:d,row:C},C[$l]))})]})};var Jn=require("@vuu-ui/vuu-popups"),pe=require("@vuu-ui/vuu-utils"),I=require("react");var Gt=require("@vuu-ui/vuu-data-react"),xe=require("@vuu-ui/vuu-utils"),V=require("react"),{SELECTED:Dt}=xe.metadataKeys;function Dn({dataSource:e,onConfigChange:t,onFeatureEnabled:o,onFeatureInvocation:n,onSizeChange:r,onSubscribed:l,range:s={from:0,to:0},renderBufferSize:i=0,viewportRowCount:a}){let[,c]=(0,V.useState)(null),u=(0,V.useRef)(!0),d=(0,V.useRef)(!1),m=(0,V.useRef)({from:0,to:0}),b=(0,V.useRef)(null),y=(0,V.useRef)([]),h=(0,V.useMemo)(()=>new Ro((0,xe.getFullRange)(s)),[]),T=(0,V.useCallback)(p=>{for(let f of p)h.add(f);y.current=h.data,d.current=!0},[h]),x=(0,V.useCallback)(p=>{p.type==="subscribed"?l==null||l(p):p.type==="viewport-update"?(typeof p.size=="number"&&(r==null||r(p.size),h.setRowCount(p.size)),p.rows?T(p.rows):typeof p.size=="number"&&(y.current=h.data,d.current=!0)):(0,Gt.isVuuFeatureAction)(p)?o==null||o(p):(0,Gt.isVuuFeatureInvocation)(p)?n==null||n(p):console.log(`useDataSource unexpected message ${p.type}`)},[h,o,n,r,l,T]);(0,V.useEffect)(()=>()=>{b.current&&(cancelAnimationFrame(b.current),b.current=null),u.current=!1},[]);let v=(0,V.useCallback)(()=>{u.current&&(d.current&&(c({}),d.current=!1),b.current=requestAnimationFrame(v))},[c]);(0,V.useEffect)(()=>{b.current=requestAnimationFrame(v)},[v]);let C=(0,V.useCallback)(p=>{let{from:f}=e.range,M={from:f,to:f+p},P=(0,xe.getFullRange)(M,i);h.setRange(P),e.range=m.current=P,e.emit("range",M)},[e,h,i]),D=(0,V.useCallback)(p=>{let f=(0,xe.getFullRange)(p,i);h.setRange(f),e.range=m.current=f,e.emit("range",p)},[e,h,i]),w=(0,V.useCallback)(()=>h.getSelectedRows(),[h]);return(0,V.useEffect)(()=>{e==null||e.subscribe({range:m.current},x)},[e,x,t]),(0,V.useEffect)(()=>{console.log(`adjust range as rowCount chnaged ${a}`),C(a)},[C,a]),{data:y.current,getSelectedRows:w,range:m.current,setRange:D,dataSource:e}}var Ro=class{constructor({from:t,to:o}){this.rowCount=0;this.setRowCount=t=>{t<this.data.length&&(this.data.length=t),this.rowCount=t};this.range=new xe.WindowRange(t,o),this.data=new Array(o-t),this.rowCount=0}add(t){var n;let[o]=t;if(this.isWithinRange(o)){let r=o-this.range.from;this.data[r]=t;let l=t[Dt],s=(n=this.data[r-1])==null?void 0:n[Dt];s===0&&l?this.data[r-1][Dt]=2:s===2&&!l&&(this.data[r-1][Dt]=0)}}getAtIndex(t){return this.range.isWithin(t)&&this.data[t-this.range.from]!=null?this.data[t-this.range.from]:void 0}isWithinRange(t){return this.range.isWithin(t)}setRange({from:t,to:o}){if(t!==this.range.from||o!==this.range.to){let[n,r]=this.range.overlap(t,o),l=new Array(Math.max(0,o-t));for(let s=n;s<r;s++){let i=this.getAtIndex(s);if(i){let a=s-t;l[a]=i}}this.data=l,this.range.from=t,this.range.to=o}}getSelectedRows(){return this.data.filter(t=>t[Dt]!==0)}};var Mn=require("@vuu-ui/vuu-ui-controls"),Xe=require("react"),Rn=({onDrop:e})=>{let t=(0,Xe.useRef)(),o=(0,Xe.useRef)(null),n=(0,Xe.useCallback)(()=>{console.log("handleDropSettle"),t.current=void 0,o.current=null},[]),{draggable:r,draggedItemIndex:l,onMouseDown:s}=(0,Mn.useDragDropNext)({allowDragDrop:!0,draggableClassName:"vuuTable-headerCell",orientation:"horizontal",containerRef:o,itemQuery:".vuuTable-headerCell",onDrop:e,onDropSettle:n}),i=(0,Xe.useCallback)(a=>{let{clientX:c,clientY:u}=a;console.log("useDraggableColumn handleHeaderCellDragStart means mouseDown fired on a column in RowBasedTable");let m=a.target.closest(".vuuTable-headerCell");o.current=m==null?void 0:m.closest("[role='row']");let{dataset:{idx:b="-1"}}=m;t.current={clientX:c,clientY:u,idx:b},s==null||s(a)},[s]);return{draggable:r,draggedItemIndex:l,onHeaderCellDragStart:i}};var Sn=require("@vuu-ui/vuu-utils"),F=require("react");function Fl(e,...t){let o=new Set(e);for(let n of t)for(let r of n)o.add(r);return o}var xo="ArrowUp",Po="ArrowDown",Ho="ArrowLeft",Eo="ArrowRight";var So="Home",Ao="End",Lo="PageUp",Ko="PageDown";var Ol=new Set(["Enter","Delete"," "]),Gl=new Set(["Tab"]),Wl=new Set(["ArrowRight","ArrowLeft"]),xn=new Set([So,Ao,Lo,Ko,Po,Ho,Eo,xo]),Bl=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),Ka=Fl(Ol,xn,Wl,Bl,Gl);var Ul=["Home","End","PageUp","PageDown"],Pn=e=>Ul.includes(e),Hn=e=>xn.has(e);var En=e=>`.vuuTable-headers .vuuTable-headerCell:nth-child(${e+1})`,_l=(e,t)=>`.vuuTable-body > [aria-rowindex='${e}'] > [role='cell']:nth-child(${t+1})`,Jl=[-1,-1];function Xl(e,[t,o],n,r){return e===xo?t>-1?[t-1,o]:[t,o]:e===Po?t===-1?[0,o]:t===r-1?[t,o]:[t+1,o]:e===Eo?o<n-1?[t,o+1]:[t,o]:e===Ho?o>0?[t,o-1]:[t,o]:[t,o]}var An=({columnCount:e=0,containerRef:t,disableHighlightOnFocus:o,data:n,requestScroll:r,rowCount:l=0,viewportRange:s})=>{var P;let{from:i,to:a}=s,c=(0,F.useRef)([-1,-1]),u=(0,F.useRef)(),d=(0,F.useRef)([-1,0]),m=(0,F.useCallback)(([g,E])=>{var H;let L=g===-1?En(E):_l(g,E);return(H=t.current)==null?void 0:H.querySelector(L)},[t]),b=g=>g==null?void 0:g.closest("[role='columnHeader'],[role='cell']"),y=g=>{var E,L;if(g.role==="columnHeader")return[-1,parseInt((E=g.dataset.idx)!=null?E:"-1",10)];{let H=g.closest("[role='row']");if(H){let O=parseInt((L=H.ariaRowIndex)!=null?L:"-1",10),me=Array.from(H.childNodes).indexOf(g);return[O,me]}}return Jl},h=(0,F.useCallback)(g=>{var E;if(t.current){let L=m(g);L?(L!==u.current&&((E=u.current)==null||E.setAttribute("tabindex",""),u.current=L,L.setAttribute("tabindex","0")),L.focus()):(0,Sn.withinRange)(g[0],s)||(u.current=void 0,r==null||r({type:"scroll-page",direction:"up"}))}},[t,m,r,s]),T=(0,F.useCallback)((g,E,L=!1)=>{let H=[g,E];d.current=H,h(H),L&&(c.current=H)},[h]),x=(0,F.useCallback)(()=>{var g;(g=u.current)==null||g.setAttribute("tabindex",""),u.current=void 0},[]),v=(0,F.useCallback)(async(g,E)=>{switch(g){case Ko:r==null||r({type:"scroll-page",direction:"down"});break;case Lo:r==null||r({type:"scroll-page",direction:"up"});break;case So:r==null||r({type:"scroll-end",direction:"home"});break;case Ao:r==null||r({type:"scroll-end",direction:"end"});break}return E},[r]),C=(0,F.useCallback)(()=>{var g;if(o!==!0&&(g=t.current)!=null&&g.contains(document.activeElement)){let E=b(document.activeElement);E&&(c.current=y(E))}},[o,t]),D=(0,F.useCallback)(async g=>{let[E,L]=Pn(g)?await v(g,d.current):Xl(g,d.current,e,l),[H,O]=d.current;(E!==H||L!==O)&&T(E,L,!0)},[e,v,l,T]),w=(0,F.useCallback)(g=>{n.length>0&&Hn(g.key)&&(g.preventDefault(),g.stopPropagation(),D(g.key))},[n,D]),p=(0,F.useCallback)(g=>{let E=g.target,L=b(E);if(L){let[H,O]=y(L);T(H,O)}},[T]),f=(0,F.useMemo)(()=>({onClick:p,onFocus:C,onKeyDown:w}),[p,C,w]);(0,F.useLayoutEffect)(()=>{let{current:g}=d,E=g[0]>=i&&g[0]<=a;u.current&&!E?x():!u.current&&E&&h(g)},[h,i,a,x]);let M=((P=t.current)==null?void 0:P.firstChild)!=null;return(0,F.useEffect)(()=>{var g;if(M&&u.current===void 0){let E=(g=t.current)==null?void 0:g.querySelector(En(0));E&&(E.setAttribute("tabindex","0"),u.current=E)}},[t,M]),f};var ve=require("@vuu-ui/vuu-utils"),Pe=require("react");var Ie=require("react");var ze=new Map,Kn=(e,t,o)=>{switch(o){case"height":return t.height;case"clientHeight":return e.clientHeight;case"clientWidth":return e.clientWidth;case"contentHeight":return t.contentHeight;case"contentWidth":return t.contentWidth;case"scrollHeight":return Math.ceil(e.scrollHeight);case"scrollWidth":return Math.ceil(e.scrollWidth);case"width":return t.width;default:return 0}},Ln=new ResizeObserver(e=>{for(let t of e){let{target:o,borderBoxSize:n,contentBoxSize:r}=t,l=ze.get(o);if(l){let[{blockSize:s,inlineSize:i}]=n,[{blockSize:a,inlineSize:c}]=r,{onResize:u,measurements:d}=l,m=!1;for(let[b,y]of Object.entries(d)){let h=Kn(o,{height:s,width:i,contentHeight:a,contentWidth:c},b);h!==y&&(m=!0,d[b]=h)}m&&u&&u(d)}}});function kn(e,t,o,n=!1){let r=(0,Ie.useRef)(t),l=(0,Ie.useCallback)(s=>{let{width:i,height:a}=s.getBoundingClientRect(),{clientWidth:c,clientHeight:u}=s;return r.current.reduce((d,m)=>(d[m]=Kn(s,{width:i,height:a,contentHeight:u,contentWidth:c},m),d),{})},[]);(0,Ie.useEffect)(()=>{let s=e.current;async function i(){ze.set(s,{measurements:{}}),await document.fonts.ready;let a=ze.get(s);if(a){let c=l(s);a.measurements=c,Ln.observe(s),n&&o(c)}else console.log("%cuseResizeObserver an target expected to be under observation wa snot found. This warrants investigation","font-weight:bold; color:red;")}if(s){if(ze.has(s))throw Error("useResizeObserver attemping to observe same element twice");i()}return()=>{s&&ze.has(s)&&(Ln.unobserve(s),ze.delete(s))}},[l,e]),(0,Ie.useEffect)(()=>{let s=e.current,i=ze.get(s);if(i){if(r.current!==t){r.current=t;let a=l(s);i.measurements=a}i.onResize=o}},[t,l,e,o])}var Ql=["clientHeight","clientWidth"],Nn=e=>Number.isFinite(e),Yl={height:"100%",width:"100%"},Zl=(e,t)=>(0,ve.isValidNumber)(e)&&(0,ve.isValidNumber)(t)?{height:`${e}px`,width:`${t}px`}:Yl,jl=(e,t)=>{if((0,ve.isValidNumber)(e)&&(0,ve.isValidNumber)(t))return{height:e,width:t}},ko=({defaultHeight:e=0,defaultWidth:t=0,height:o,width:n})=>{let r=(0,Pe.useRef)(null),[l,s]=(0,Pe.useState)({css:Zl(o,n),inner:jl(o,n),outer:{height:o!=null?o:"100%",width:n!=null?n:"100%"}});(0,Pe.useMemo)(()=>{s(a=>{let{inner:c,outer:u}=a;if((0,ve.isValidNumber)(o)&&(0,ve.isValidNumber)(n)&&c&&u){let{height:d,width:m}=c,{height:b,width:y}=u;if(b!==o||y!==n){let h=(0,ve.isValidNumber)(b)?b-d:0,T=(0,ve.isValidNumber)(y)?y-m:0;return{...a,outer:{height:o,width:n},inner:{height:o-h,width:n-T}}}}return a})},[o,n]);let i=(0,Pe.useCallback)(({clientWidth:a,clientHeight:c})=>{s(u=>{let{css:d,inner:m,outer:b}=u;return Nn(c)&&Nn(a)&&(a!==(m==null?void 0:m.width)||c!==(m==null?void 0:m.height))?{css:d,outer:b,inner:{width:Math.floor(a)||t,height:Math.floor(c)||e}}:u})},[e,t]);return kn(r,Ql,i,!0),{containerRef:r,cssSize:l.css,outerSize:l.outer,innerSize:l.inner}};var He=require("@vuu-ui/vuu-utils"),Mt=require("react"),{IDX:ql}=He.metadataKeys,es=[],Rt=({selectionModel:e,onSelect:t,onSelectionChange:o})=>{let n=(0,Mt.useRef)(-1),r=(0,Mt.useRef)(es);return(0,Mt.useCallback)((s,i,a)=>{let{[ql]:c}=s,{current:u}=n,{current:d}=r,b=((0,He.isRowSelected)(s)?He.deselectItem:He.selectItem)(e,d,c,i,a,u);r.current=b,n.current=c,t==null||t(s),o==null||o(b)},[t,o,e])};var S=require("@vuu-ui/vuu-utils"),zn=require("react"),ts=100,In=S.metadataKeys.count,os=({serverDataType:e})=>e===void 0,ns=e=>{var t;if((0,S.isTypeDescriptor)(e.type))return(0,S.getCellRenderer)((t=e.type)==null?void 0:t.renderer)},Vn=(e,t)=>{if(e.serverDataType)return e.serverDataType;if(t){let o=t.columns.find(n=>n.name===e.name);if(o)return o.serverDataType}return"string"},rs=e=>e.type==="columnSettings",ls=e=>e.type==="tableSettings",ss=(e,t)=>{switch(t.type){case"init":return $n(t);case"moveColumn":return as(e,t);case"resizeColumn":return ms(e,t);case"setTableSchema":return ps(e,t);case"hideColumns":return cs(e,t);case"showColumns":return us(e,t);case"pinColumn":return ds(e,t);case"updateColumnProp":return Qe(e,t);case"tableConfig":return Fn(e,t);default:return console.log(`unhandled action ${t.type}`),e}},No=(e,t)=>{let[o,n]=(0,zn.useReducer)(ss,{tableConfig:e,dataSourceConfig:t},$n);return{columns:o.columns,dispatchColumnAction:n,headings:o.headings}};function $n({dataSourceConfig:e,tableConfig:t}){let o=t.columns.map(zo(t)),n=o.some(S.isPinned)?(0,S.sortPinnedColumns)(o):o,r={columns:n,headings:(0,S.getTableHeadings)(n)};if(e){let{columns:l,...s}=e;return Fn(r,{type:"tableConfig",...s})}else return r}var is=(e,t)=>t==="uppercase"?e.toUpperCase():t==="capitalize"?e[0].toUpperCase()+e.slice(1).toLowerCase():e,zo=e=>(t,o)=>{let n=Vn(t,e.tableSchema),{columnDefaultWidth:r=ts,columnFormatHeader:l}=e,{align:s=(0,S.getDefaultAlignment)(n),key:i,name:a,label:c=a,width:u=r,...d}=t,m={...d,align:s,CellRenderer:ns(t),label:is(c,l),key:i!=null?i:o+In,name:a,originalIdx:o,serverDataType:n,valueFormatter:(0,S.getValueFormatter)(t),width:u};return(0,S.isGroupColumn)(m)&&(m.columns=m.columns.map(b=>zo(e)(b,b.key))),m};function as(e,{column:t,moveBy:o,moveTo:n}){let{columns:r}=e;if(typeof o=="number"){let l=r.indexOf(t),s=r.slice(),[i]=s.splice(l,1);return s.splice(l+o,0,i),{...e,columns:s}}else if(typeof n=="number")return{...e,columns:(0,S.moveItemDeprecated)(r,t,n)};return e}function cs(e,{columns:t}){return t.some(o=>o.hidden!==!0)?t.reduce((o,n)=>n.hidden!==!0?Qe(o,{type:"updateColumnProp",column:n,hidden:!0}):o,e):e}function us(e,{columns:t}){return t.some(o=>o.hidden)?t.reduce((o,n)=>n.hidden?Qe(o,{type:"updateColumnProp",column:n,hidden:!1}):o,e):e}function ms(e,{column:t,phase:o,width:n}){let r="updateColumnProp",l=o!=="end";switch(o){case"begin":return Qe(e,{type:r,column:t,resizing:l});case"end":return Qe(e,{type:r,column:t,resizing:l,width:n});case"resize":return Qe(e,{type:r,column:t,width:n});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${o}`)}}function ps(e,{tableSchema:t}){let{columns:o}=e;if(o.some(os)){let n=o.map(r=>{var s;let l=Vn(r,t);return{...r,align:(s=r.align)!=null?s:(0,S.getDefaultAlignment)(l),serverDataType:l}});return{...e,columns:n,tableSchema:t}}else return{...e,tableSchema:t}}function ds(e,t){let{columns:o}=e,{column:n,pin:r}=t;return o=(0,S.updateColumn)(o,n.name,{pin:r}),o=(0,S.sortPinnedColumns)(o),console.log({withPins:o}),{...e,columns:o}}function Qe(e,t){let{columns:o}=e,{align:n,column:r,hidden:l,label:s,resizing:i,width:a}=t,c={};return(n==="left"||n==="right")&&(c.align=n),typeof s=="string"&&(c.label=s),typeof i=="boolean"&&(c.resizing=i),typeof l=="boolean"&&(c.hidden=l),typeof a=="number"&&(c.width=a),o=(0,S.updateColumn)(o,r.name,c),{...e,columns:o}}function Fn(e,{columns:t,confirmed:o,filter:n,groupBy:r,sort:l}){let s=t&&t.length>0,i=r!==void 0,a=typeof(n==null?void 0:n.filter)=="string",c=l&&l.sortDefs.length>0,u=e;return s&&(u={...e,columns:t.map((d,m)=>{let b=(0,S.getColumnName)(d),y=m+In,h=(0,S.findColumn)(u.columns,b);return h?h.key===y?h:{...h,key:y}:zo(e)({name:d},m)})}),i&&(u={...e,columns:(0,S.applyGroupByToColumns)(u.columns,r,o)}),c&&(u={...e,columns:(0,S.applySortToColumns)(u.columns,l)}),a?u={...e,columns:(0,S.applyFilterToColumns)(u.columns,n)}:u.columns.some(S.isFilteredColumn)&&(u={...e,columns:(0,S.stripFilterFromColumns)(u.columns)}),u}var X=require("react"),On=e=>{let{scrollLeft:t,scrollTop:o}=e,{clientHeight:n,clientWidth:r,scrollHeight:l,scrollWidth:s}=e,i=t/(s-r),a=o/(l-n);return[i,a]},fs=e=>{let{clientHeight:t,clientWidth:o,scrollHeight:n,scrollWidth:r}=e;return[r-o,n-t]},Gn=({onAttach:e,onDetach:t})=>{let o=(0,X.useRef)(null);return(0,X.useCallback)(r=>{if(r)o.current=r,e==null||e(r);else if(o.current){let{current:l}=o;o.current=r,t==null||t(l)}},[e,t])},Wn=({onHorizontalScroll:e,onVerticalScroll:t,viewport:o})=>{let n=(0,X.useRef)(!1),r=(0,X.useRef)({scrollTop:0,scrollLeft:0}),l=(0,X.useRef)(null),s=(0,X.useRef)(null),{maxScrollContainerScrollHorizontal:i,maxScrollContainerScrollVertical:a}=o,c=(0,X.useCallback)(()=>{let{current:v}=s,{current:C}=l,{current:D}=n;if(D)n.current=!1;else if(v&&C){let[w,p]=On(C),[f,M]=fs(v),P=Math.round(w*f),g=Math.round(p*M);console.log(`pctScrollTop ${p}, maxScrollTop ${M} rootScrollTop ${g}`),v.scrollTo({left:P,top:g,behavior:"auto"})}},[]),u=(0,X.useCallback)(()=>{let{current:v}=s,{current:C}=l,{current:D}=r;if(v&&C){let{scrollLeft:w,scrollTop:p}=v,[f,M]=On(v);n.current=!0,C.scrollLeft=Math.round(f*i),C.scrollTop=Math.round(M*a),D.scrollTop!==p&&(D.scrollTop=p,t==null||t(p,M)),D.scrollLeft!==w&&(D.scrollLeft=w,e==null||e(w))}},[i,a,e,t]),d=(0,X.useCallback)(v=>{l.current=v,v.addEventListener("scroll",c,{passive:!0})},[c]),m=(0,X.useCallback)(v=>{l.current=null,v.removeEventListener("scroll",c)},[c]),b=(0,X.useCallback)(v=>{s.current=v,v.addEventListener("scroll",u,{passive:!0})},[u]),y=(0,X.useCallback)(v=>{s.current=null,v.removeEventListener("scroll",u)},[u]),h=Gn({onAttach:b,onDetach:y}),T=Gn({onAttach:d,onDetach:m}),x=(0,X.useCallback)(v=>{let{current:C}=s;if(C){if(n.current=!1,v.type==="scroll-page"){let{clientHeight:D,scrollLeft:w,scrollTop:p}=C,{direction:f}=v,M=f==="down"?D:-D,P=Math.min(Math.max(0,p+M),a);C.scrollTo({top:P,left:w,behavior:"auto"})}else if(v.type==="scroll-end"){let{direction:D}=v,w=D==="end"?a:0;C.scrollTo({top:w,left:C.scrollLeft,behavior:"auto"})}}},[a]);return{scrollbarContainerRef:T,contentContainerRef:h,requestScroll:x}};var ye=require("react"),Wt=require("@vuu-ui/vuu-utils"),Cs=15e5,bs={contentHeight:0,contentWidth:0,getRowAtPosition:()=>-1,getRowOffset:()=>-1,horizontalScrollbarHeight:0,maxScrollContainerScrollHorizontal:0,maxScrollContainerScrollVertical:0,pinnedWidthLeft:0,pinnedWidthRight:0,rowCount:0,setPctScrollTop:()=>{},totalHeaderHeight:0,verticalScrollbarWidth:0,viewportBodyHeight:0},gs=e=>{let t=0,o=0,n=0;for(let r of e){let{hidden:l,pin:s,width:i}=r,a=l?0:i;s==="left"?t+=a:s==="right"?o+=a:n+=a}return{pinnedWidthLeft:t+4,pinnedWidthRight:o+4,unpinnedWidth:n}},xt=({columns:e,headerHeight:t,headings:o,rowCount:n,rowHeight:r,size:l})=>{let s=(0,ye.useRef)(0),a=Math.min(n,Cs)*r,u=n*r-a,{pinnedWidthLeft:d,pinnedWidthRight:m,unpinnedWidth:b}=(0,ye.useMemo)(()=>gs(e),[e]),[y,h]=(0,ye.useMemo)(()=>(0,Wt.actualRowPositioning)(r),[r]),[T,x]=(0,ye.useMemo)(()=>u?(0,Wt.virtualRowPositioning)(r,u,s):[y,h],[h,y,u,r]),v=(0,ye.useCallback)(C=>{s.current=C},[]);return(0,ye.useMemo)(()=>{var C;if(l){let D=o.length,w=15,p=d+b+m,f=p>l.width?w:0,M=t*(1+D),P=a-(((C=l==null?void 0:l.height)!=null?C:0)-f)+M,g=p-l.width+d,E=(l.height-t)/r,L=Number.isInteger(E)?E+1:Math.ceil(E),H=l.height-M,O=a>H?w:0;return{contentHeight:a,getRowAtPosition:x,getRowOffset:T,horizontalScrollbarHeight:f,maxScrollContainerScrollHorizontal:g,maxScrollContainerScrollVertical:P,pinnedWidthLeft:d,pinnedWidthRight:m,rowCount:L,contentWidth:p,setPctScrollTop:v,totalHeaderHeight:M,verticalScrollbarWidth:O,viewportBodyHeight:H}}else return bs},[l,o.length,d,b,m,a,t,r,x,T,v])};var Pt=require("@vuu-ui/vuu-utils"),q=require("react"),Bn=({columns:e,getRowAtPosition:t,setRange:o,viewportMeasurements:n})=>{let r=(0,q.useRef)(-1),{rowCount:l,contentWidth:s,maxScrollContainerScrollHorizontal:i}=n,a=s-i,c=(0,q.useRef)(0),[u,d]=(0,q.useMemo)(()=>(0,Pt.getColumnsInViewport)(e,c.current,c.current+a),[a,e]),m=(0,q.useRef)(d);(0,q.useEffect)(()=>{y(u)},[u]);let[b,y]=(0,q.useState)(u),h=(0,q.useCallback)(x=>{c.current=x;let[v,C]=(0,Pt.getColumnsInViewport)(e,x,x+a);(0,Pt.itemsChanged)(b,v)&&(m.current=C,y(v))},[a,e,b]),T=(0,q.useCallback)(x=>{let v=t(x);v!==r.current&&(r.current=v,console.log("setRange from handleVerticalScroll"),o({from:v,to:v+l}))},[t,o,l]);return{columnsWithinViewport:b,onHorizontalScroll:h,onVerticalScroll:T,virtualColSpan:m.current}};var hs=[],{KEY:vs,IS_EXPANDED:Un,IS_LEAF:_n}=pe.metadataKeys,Xn=({config:e,dataSource:t,headerHeight:o,onConfigChange:n,onFeatureEnabled:r,onFeatureInvocation:l,onSelectionChange:s,renderBufferSize:i=0,rowHeight:a,selectionModel:c,...u})=>{var Vt,dt;let[d,m]=(0,I.useState)(t.size),b=(0,I.useRef)(!1),y=(0,I.useRef)();if(y.current=t,t===void 0)throw Error("no data source provided to Vuu Table");let h=ko(u),T=(0,I.useCallback)(K=>{m(K)},[]),{columns:x,dispatchColumnAction:v,headings:C}=No(e,t.config),{getRowAtPosition:D,getRowOffset:w,setPctScrollTop:p,...f}=xt({columns:x,headerHeight:o,headings:C,rowCount:d,rowHeight:a,size:h.innerSize}),M=(0,I.useCallback)(({tableSchema:K})=>{K?(b.current=!0,v({type:"setTableSchema",tableSchema:K})):console.log("usbscription message with no schema")},[v]),P=(0,I.useCallback)(K=>{t.select(K),s==null||s(K)},[t,s]),g=Rt({onSelectionChange:P,selectionModel:c}),{data:E,getSelectedRows:L,range:H,setRange:O}=Dn({dataSource:t,onFeatureEnabled:r,onFeatureInvocation:l,onSubscribed:M,onSizeChange:T,renderBufferSize:i,viewportRowCount:f.rowCount}),me=(0,I.useRef)();me.current=E;let Ae=(0,I.useCallback)(K=>{b.current=!0,console.log("onPersistentColumnOperation, dispatchColumnAction",{action:K}),v(K)},[v]),Nt=gt({dataSource:t,onPersistentColumnOperation:Ae}),zt=(0,I.useCallback)((K,$=!1,Z)=>{t&&(t.sort=(0,pe.applySort)(t.sort,K,$,Z))},[t]),ie=(0,I.useCallback)((K,$,Z)=>{let G=x.find(oe=>oe.name===$);if(G)K==="end"&&(b.current=!0),v({type:"resizeColumn",phase:K,column:G,width:Z});else throw Error(`useDataTable.handleColumnResize, column ${$} not found`)},[x,v]),at=(0,I.useCallback)((K,$)=>{let Z=(0,pe.isJsonGroup)($,K),G=K[vs];if(K[Un]){if(t.closeTreeNode(G,!0),Z){let oe=x.indexOf($);t.getRowsAtDepth(oe+1).some(ne=>ne[Un]||ne[_n])||v({type:"hideColumns",columns:x.slice(oe+2)})}}else if(t.openTreeNode(G),Z){let oe=t.getChildRows(G),Ce=x.indexOf($)+1,ne=[x[Ce]];oe.some(De=>De[_n])&&ne.push(x[Ce+1]),ne.some(De=>De.hidden)&&v({type:"showColumns",columns:ne})}},[x,t,v]),{onVerticalScroll:Le,onHorizontalScroll:de,columnsWithinViewport:te,virtualColSpan:ct}=Bn({columns:x,getRowAtPosition:D,setRange:O,viewportMeasurements:f}),ut=(0,I.useCallback)((K,$)=>{p($),Le(K)},[Le,p]),{requestScroll:mt,...Y}=Wn({onHorizontalScroll:de,onVerticalScroll:ut,viewport:f,viewportHeight:((dt=(Vt=h.innerSize)==null?void 0:Vt.height)!=null?dt:0)-o}),fe=An({columnCount:x.length,containerRef:h.containerRef,data:E,requestScroll:mt,rowCount:t==null?void 0:t.size,viewportRange:H}),It=(0,I.useCallback)(K=>{K?t&&t.groupBy.includes(K.name)&&(t.groupBy=t.groupBy.filter($=>$!==K.name)):t.groupBy=[]},[t]),so=(0,I.useCallback)((K,$)=>{let Z=t.columns[K],G=(0,pe.moveItemDeprecated)(t.columns,Z,$);G!==t.columns&&(t.columns=G,v({type:"tableConfig",columns:G}))},[t,v]),io=Rn({onDrop:so});(0,I.useEffect)(()=>{y.current&&(b.current=!0,v({type:"init",tableConfig:e,dataSourceConfig:y.current.config}))},[e,v]),(0,I.useEffect)(()=>{t.on("config",(K,$)=>{b.current=!0,v({type:"tableConfig",...K,confirmed:$})})},[t,v]),(0,I.useMemo)(()=>{b.current&&(n==null||n({...e,columns:x}),b.current=!1)},[x,e,n]);let[pt]=(0,Jn.useContextMenu)(),ao=(0,I.useCallback)(K=>{var ne;let{current:$}=me,{current:Z}=y,G=K.target,oe=G==null?void 0:G.closest("div[role='cell']"),Ce=G==null?void 0:G.closest(".vuuTableRow");if(oe&&Ce&&$&&Z){let{columns:De,selectedRowsCount:co}=Z,uo=(0,pe.buildColumnMap)(De),mo=parseInt((ne=Ce.ariaRowIndex)!=null?ne:"-1"),po=Array.from(Ce.childNodes).indexOf(oe),$t=$.find(([Co])=>Co===mo),fo=De[po];pt(K,"grid",{columnMap:uo,columnName:fo,row:$t,selectedRows:co===0?hs:L(),viewport:t==null?void 0:t.viewport})}},[t==null?void 0:t.viewport,L,pt]);return{columns:x,columnsWithinViewport:te,containerMeasurements:h,containerProps:fe,data:E,dispatchColumnAction:v,getRowOffset:w,handleContextMenuAction:Nt,headings:C,onColumnResize:ie,onContextMenu:ao,onRemoveColumnFromGroupBy:It,onRowClick:g,onSort:zt,onToggleGroup:at,virtualColSpan:ct,scrollProps:Y,rowCount:d,viewportMeasurements:f,...io}};var Yn=W(require("classnames"));var Zn=require("@vuu-ui/vuu-utils"),Te=require("react/jsx-runtime"),Ve="vuuTable",ys=({allowConfigEditing:e=!1,className:t,config:o,dataSource:n,headerHeight:r=25,height:l,id:s,onConfigChange:i,onFeatureEnabled:a,onFeatureInvocation:c,onSelect:u,onSelectionChange:d,onShowConfigEditor:m,renderBufferSize:b=0,rowHeight:y=20,selectionModel:h="extended",style:T,width:x,...v})=>{let C=(0,Bt.useIdMemo)(s),{containerMeasurements:{containerRef:D,innerSize:w,outerSize:p},containerProps:f,dispatchColumnAction:M,draggable:P,draggedItemIndex:g,handleContextMenuAction:E,scrollProps:L,viewportMeasurements:H,...O}=Xn({config:o,dataSource:n,renderBufferSize:b,headerHeight:r,height:l,onConfigChange:i,onFeatureEnabled:a,onFeatureInvocation:c,onSelectionChange:d,rowHeight:y,selectionModel:h,width:x});console.log({tableProps:O});let me={...p,"--content-height":`${H.contentHeight}px`,"--horizontal-scrollbar-height":`${H.horizontalScrollbarHeight}px`,"--content-width":`${H.contentWidth}px`,"--pinned-width-left":`${H.pinnedWidthLeft}px`,"--pinned-width-right":`${H.pinnedWidthRight}px`,"--header-height":`${r}px`,"--row-height":`${y}px`,"--table-height":`${w==null?void 0:w.height}px`,"--table-width":`${w==null?void 0:w.width}px`,"--total-header-height":`${H.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${H.verticalScrollbarWidth}px`,"--viewport-body-height":`${H.viewportBodyHeight}px`},Ae=(0,Yn.default)(Ve,t,{[`${Ve}-zebra`]:o.zebraStripes,[`${Ve}-loading`]:(0,Zn.isDataLoading)(O.columns)});return(0,Te.jsx)(Qn.ContextMenuProvider,{menuActionHandler:E,menuBuilder:bt(n),children:(0,Te.jsxs)("div",{...v,...f,className:Ae,id:C,ref:D,style:me,tabIndex:-1,children:[w?(0,Te.jsx)("div",{className:`${Ve}-scrollbarContainer`,ref:L.scrollbarContainerRef,children:(0,Te.jsx)("div",{className:`${Ve}-scrollbarContent`})}):null,w?(0,Te.jsxs)("div",{className:`${Ve}-contentContainer`,ref:L.contentContainerRef,children:[(0,Te.jsx)(wn,{...O,headerHeight:r,tableId:C}),P]}):null,e&&w?(0,Te.jsx)(Bt.Button,{className:`${Ve}-settings`,"data-icon":"settings",onClick:m,variant:"secondary"}):null]})})};var jn=W(require("classnames")),Ze=require("@vuu-ui/vuu-utils");var Ye=require("react/jsx-runtime"),Ht="vuuJsonCell",{IS_EXPANDED:Ts,KEY:ws}=Ze.metadataKeys,Ds=e=>{let t=e.lastIndexOf("|");return t===-1?"":e.slice(t+1)},Ms=({column:e,row:t})=>{let{key:o}=e,n=t[o],r=!1;(0,Ze.isJsonAttribute)(n)&&(n=n.slice(0,-1),r=!0);let l=Ds(t[ws]),s=(0,jn.default)({[`${Ht}-name`]:l===n,[`${Ht}-value`]:l!==n,[`${Ht}-group`]:r});if(r){let i=t[Ts]?"minus-box":"plus-box";return(0,Ye.jsxs)("span",{className:s,children:[(0,Ye.jsx)("span",{className:`${Ht}-value`,children:n}),(0,Ye.jsx)("span",{className:`${Ht}-toggle`,"data-icon":i})]})}else return n?(0,Ye.jsx)("span",{className:s,children:n}):null};console.log("register JsonCell");(0,Ze.registerComponent)("json",Ms,"cell-renderer",{description:"JSON formatter",label:"JSON formatter",serverDataType:"json"});var xs=W(require("classnames")),Ps=require("react");var je=require("react");var er=require("react/jsx-runtime"),qn=()=>{},Rs="vuuColumnResizerNext",Et=({onDrag:e,onDragEnd:t=qn,onDragStart:o=qn})=>{let n=(0,je.useRef)(0),r=(0,je.useCallback)(i=>{i.stopPropagation&&i.stopPropagation(),i.preventDefault&&i.preventDefault();let a=Math.round(i.clientX),c=a-n.current;n.current=a,c!==0&&e(i,c)},[e]),l=(0,je.useCallback)(i=>{window.removeEventListener("mouseup",l),window.removeEventListener("mousemove",r),t(i)},[t,r]),s=(0,je.useCallback)(i=>{o(i),n.current=Math.round(i.clientX),window.addEventListener("mouseup",l),window.addEventListener("mousemove",r),i.stopPropagation&&i.stopPropagation(),i.preventDefault&&i.preventDefault()},[o,r,l]);return(0,er.jsx)("div",{className:Rs,onMouseDown:s})};var Ee=require("react"),St=({column:e,onResize:t,rootRef:o})=>{let n=(0,Ee.useRef)(0),[r,l]=(0,Ee.useState)(!1),{name:s}=e,i=(0,Ee.useCallback)(()=>{if(console.log("onResizeStart"),t&&o.current){console.log("handleResizeStart");let{width:u}=o.current.getBoundingClientRect();n.current=Math.round(u),l(!0),t==null||t("begin",s)}},[s,t,o]),a=(0,Ee.useCallback)((u,d)=>{if(o.current&&t){let{width:m}=o.current.getBoundingClientRect(),b=Math.round(m)+d;b!==n.current&&b>0&&(t("resize",s,b),n.current=b)}},[s,t,o]),c=(0,Ee.useCallback)(()=>{t&&(t("end",s,n.current),setTimeout(()=>{l(!1)},80))},[s,t]);return{isResizing:r,onDrag:a,onDragStart:i,onDragEnd:c}};var tr=require("@vuu-ui/vuu-utils"),or=W(require("classnames")),nr=require("react"),we=(e,t,o)=>(0,nr.useMemo)(()=>{let n=(0,or.default)(t,{vuuPinFloating:e.pin==="floating",vuuPinLeft:e.pin==="left",vuuPinRight:e.pin==="right",vuuEndPin:o&&e.endPin,[`${t}-editable`]:e.editable,[`${t}-right`]:e.align==="right"}),r=(0,tr.getColumnStyle)(e);return{className:n,style:r}},[e,t,o]);var lr=W(require("classnames")),sr=require("react");var Ut=require("react/jsx-runtime"),rr="vuuColumnHeaderPill",$e=({children:e,className:t,column:o,onRemove:n,removable:r,...l})=>{if(r&&typeof n!="function")throw Error("ColumnHeaderPill onRemove prop must be provided if Pill is removable");let s=(0,sr.useCallback)(i=>{i.preventDefault(),i.stopPropagation(),n==null||n(o)},[o,n]);return(0,Ut.jsxs)("div",{...l,className:(0,lr.default)(rr,t),children:[e,r?(0,Ut.jsx)("span",{className:`${rr}-removeButton`,role:"button","data-icon":"cross",onClick:s}):null]})};var qe=require("react/jsx-runtime"),Io=({column:e,...t})=>{let{name:o,sorted:n}=e,r=typeof n=="number"?n<0?"arrow-down":"arrow-up":n==="A"?"arrow-up":n==="D"?"arrow-down":void 0;return(0,qe.jsxs)($e,{...t,column:e,children:[(0,qe.jsx)("span",{className:"vuuGroupColumnPill-label",children:o}),r!==void 0?(0,qe.jsx)("span",{"data-icon":r}):null,typeof n=="number"?(0,qe.jsx)("span",{className:"vuuSortPosition",children:Math.abs(n)}):null]})};var At=require("react/jsx-runtime"),ir=({column:e})=>{if(!e.sorted)return null;let t=typeof e.sorted=="number"?e.sorted<0?"arrow-down":"arrow-up":e.sorted==="A"?"arrow-up":"arrow-down";return(0,At.jsxs)($e,{column:e,children:[(0,At.jsx)("span",{"data-icon":t}),typeof e.sorted=="number"?(0,At.jsx)("span",{className:"vuuSortPosition",children:Math.abs(e.sorted)}):null]})};var ar=require("react/jsx-runtime"),Hs=require("react");var cr=W(require("classnames")),tt=require("react");var _t=require("@vuu-ui/vuu-layout");var et=require("react/jsx-runtime"),ur=require("react"),Vo="vuuTableNextGroupHeaderCell",Es=(e,t)=>e===t?e:t,Lt=({column:e,className:t,onRemoveColumn:o,onResize:n,...r})=>{let l=(0,tt.useRef)(null),{isResizing:s,...i}=St({column:e,onResize:n,rootRef:l}),[a,c]=(0,tt.useState)(e.columns),{className:u,style:d}=we(e,Vo,!0),m=a.length>1?{removable:!0,onRemove:o}:void 0,b=(0,tt.useCallback)((y,h)=>{c(T=>{let x=T.slice(),[v]=x.splice(y,1);return h===-1?x.concat(v):(x.splice(h,0,v),x)})},[]);return(0,_t.useLayoutEffectSkipFirst)(()=>{c(y=>Es(y,e.columns))},[e.columns]),(0,et.jsxs)("div",{...r,className:(0,cr.default)(u,"vuuTableNextHeaderCell",t,{[`${Vo}-pending`]:e.groupConfirmed===!1}),ref:l,role:"columnheader",style:d,children:[(0,et.jsx)(_t.OverflowContainer,{allowDragDrop:!0,className:`${Vo}-inner`,height:24,onMoveItem:b,overflowPosition:"start",children:a.map(y=>(0,ur.createElement)(Io,{...m,column:y,key:y.key}))}),(0,et.jsx)($e,{column:e,removable:!0,onRemove:o}),e.resizeable!==!1?(0,et.jsx)(Et,{...i}):null]})};var Jt=require("react");var mr=require("@vuu-ui/vuu-popups"),pr=W(require("classnames")),Fe=require("react");var fr=require("react/jsx-runtime"),Ss=e=>{if(e){let{bottom:t,left:o}=e.getBoundingClientRect();return{x:o,y:t+6}}},dr=({className:e,column:t,...o})=>{let n=(0,Fe.useRef)(null),[r,l]=(0,Fe.useState)(!1),[s]=(0,mr.useContextMenu)(),i=(0,Fe.useCallback)(()=>{l(!1)},[]),a=(0,Fe.useCallback)(c=>{l(!0),s(c,"column-menu",{column:t,ContextMenuProps:{onClose:i,position:Ss(n.current)}})},[t,i,s]);return(0,fr.jsx)("span",{...o,className:(0,pr.default)("vuuTable-columnMenu",e,{"vuuTable-columnMenu-open":r}),"data-icon":"more-vert",onClick:a,ref:n})};var Cr=W(require("classnames"));var Oe=require("react/jsx-runtime"),$o="vuuTableNextHeaderCell",br=({className:e,column:t,onClick:o,onResize:n,...r})=>{var h;let l=(0,Jt.useRef)(null),{isResizing:s,...i}=St({column:t,onResize:n,rootRef:l}),a=(0,Jt.useCallback)(T=>{console.log(`click isResizing ${s}`),!s&&(o==null||o(T))},[s,o]),{className:c,style:u}=we(t,$o,!0),d=(0,Oe.jsx)(dr,{column:t}),m=(0,Oe.jsx)("div",{className:`${$o}-label`,children:(h=t.label)!=null?h:t.name}),b=(0,Oe.jsx)(ir,{column:t}),y=t.align==="right"?[b,m,d]:[d,m,b];return(0,Oe.jsxs)("div",{...r,className:(0,Cr.default)(c,e,{[`${$o}-resizing`]:s}),onClick:a,ref:l,role:"columnheader",style:u,children:[...y,t.resizeable!==!1?(0,Oe.jsx)(Et,{...i}):null]})};var el=require("@vuu-ui/vuu-popups"),st=require("@vuu-ui/vuu-utils"),Jo=W(require("classnames")),to=require("react");var ee=require("@vuu-ui/vuu-utils"),wr=W(require("classnames")),Kt=require("react");var gr=require("@vuu-ui/vuu-utils"),Fo=require("react");var Oo=require("react/jsx-runtime"),{IDX:As}=gr.metadataKeys,Ls="vuuTableNextCell",hr=({column:e,columnMap:t,onClick:o,onDataEdited:n,row:r})=>{let{className:l,style:s}=we(e,Ls),{CellRenderer:i,name:a,valueFormatter:c}=e,u=t[a],d=(0,Fo.useCallback)(b=>(n==null||n(r[As],a,b),!0),[a,n,r]),m=(0,Fo.useCallback)(b=>{o==null||o(b,e)},[e,o]);return(0,Oo.jsx)("div",{className:l,onClick:o?m:void 0,role:"cell",style:s,children:i?(0,Oo.jsx)(i,{column:e,columnMap:t,onCommit:d,row:r}):c(r[u])})};var Xt=require("@vuu-ui/vuu-utils"),vr=require("react");var yr=W(require("classnames"));var ot=require("react/jsx-runtime"),{IS_LEAF:Ks}=Xt.metadataKeys,Go="vuuTableNextGroupCell",Tr=({column:e,onClick:t,row:o})=>{let{columns:n}=e,[r,l]=(0,Xt.getGroupValueAndOffset)(n,o),{className:s,style:i}=we(e,Go),a=(0,vr.useCallback)(d=>{t==null||t(d,e)},[e,t]),c=o[Ks],u=Array(l).fill(0).map((d,m)=>(0,ot.jsx)("span",{className:`${Go}-spacer`},m));return(0,ot.jsxs)("div",{className:(0,yr.default)(s,"vuuTableNextCell"),role:"cell",style:i,onClick:c?void 0:a,children:[u,c?null:(0,ot.jsx)("span",{className:`${Go}-toggle`,"data-icon":"triangle-right"}),(0,ot.jsx)("span",{children:r})]})};var Qt=require("react/jsx-runtime"),Dr=require("react"),{IDX:ks,IS_EXPANDED:Ns,SELECTED:zs}=ee.metadataKeys,Se="vuuTableNextRow",Wo=(0,Kt.memo)(({className:e,columnMap:t,columns:o,row:n,offset:r,onClick:l,onDataEdited:s,onToggleGroup:i,zebraStripes:a=!1,...c})=>{let{[ks]:u,[Ns]:d,[zs]:m}=n,b=(0,Kt.useCallback)(D=>{let w=D.shiftKey,p=D.ctrlKey||D.metaKey;l==null||l(n,w,p)},[l,n]),{True:y,First:h,Last:T}=ee.RowSelected,x=(0,wr.default)(Se,e,{[`${Se}-even`]:a&&u%2===0,[`${Se}-expanded`]:d,[`${Se}-selected`]:m&y,[`${Se}-selectedStart`]:m&h,[`${Se}-selectedEnd`]:m&T}),v={transform:`translate3d(0px, ${r}px, 0px)`},C=(0,Kt.useCallback)((D,w)=>{((0,ee.isGroupColumn)(w)||(0,ee.isJsonGroup)(w,n))&&(D.stopPropagation(),i==null||i(n,w))},[i,n]);return(0,Dr.createElement)("div",{...c,"aria-rowindex":n[0],key:`row-${n[0]}`,role:"row",className:x,onClick:b,style:v},(0,Qt.jsx)("span",{className:`${Se}-selectionDecorator vuuStickyLeft`}),o.filter(ee.notHidden).map(D=>{let w=(0,ee.isGroupColumn)(D),p=(0,ee.isJsonColumn)(D);return(0,Qt.jsx)(w?Tr:hr,{column:D,columnMap:t,onClick:w||p?C:void 0,onDataEdited:s,row:n},D.key)}),(0,Qt.jsx)("span",{className:`${Se}-selectionDecorator vuuStickyRight`}))});Wo.displayName="Row";var Yr=require("@vuu-ui/vuu-layout"),Zr=require("@vuu-ui/vuu-table-extras"),jr=require("@vuu-ui/vuu-ui-controls");var U=require("react");var Bo=e=>`.vuuTableNext-col-headers .vuuTableNextHeaderCell:nth-child(${e})`,Uo=(e,t)=>`.vuuTableNext-body > [aria-rowindex='${e}'] > [role='cell']:nth-child(${t+1})`,Mr=(e,[t,o])=>{var l;let n=t===-1?Bo(o):Uo(t,o),r=(l=e.current)==null?void 0:l.querySelector(n);return Is(r)&&r.querySelector("button")||r},Is=e=>e.classList.contains("vuuTableNextCell-editable"),Rr=e=>e.querySelector(".vuuTableInputCell")!==null;var Vs=new Set(["Home","End","PageUp","PageDown","ArrowDown","ArrowLeft","ArrowRight","ArrowUp"]),$s=e=>Vs.has(e),Fs=["Home","End","PageUp","PageDown"],Os=e=>Fs.includes(e),Gs=[-1,-1],Ws=[void 0,void 0],Bs=e=>{var o,n;let t=(o=e.closest(".vuuTableNext"))==null?void 0:o.querySelector(".vuuTableNext-scrollbarContainer");if(t){let r=t==null?void 0:t.getBoundingClientRect(),l=(n=e.closest(".vuuTableNextCell"))==null?void 0:n.getBoundingClientRect();if(l)return l.bottom>r.bottom?["down",l.bottom-r.bottom]:l.top<r.top?["up",l.top-r.top]:l.right<r.right?["right",l.right-r.right]:l.left<r.left?["left",l.left-r.left]:Ws;throw Error("Whats going on, cell not found")}else throw Error("Whats going on, scrollbar container not found")};function Us(e,[t,o],n,r){return e==="ArrowUp"?t>-1?[t-1,o]:[t,o]:e==="ArrowDown"?t===-1?[0,o]:t===r-1?[t,o]:[t+1,o]:e==="ArrowRight"?o<n-1?[t,o+1]:[t,o]:e==="ArrowLeft"?o>1?[t,o-1]:[t,o]:[t,o]}var xr=({columnCount:e=0,containerRef:t,disableHighlightOnFocus:o,requestScroll:n,rowCount:r=0,viewportRowCount:l})=>{var w;let s=(0,U.useRef)([-1,-1]),i=(0,U.useRef)(),a=(0,U.useRef)([-1,0]),c=p=>p==null?void 0:p.closest("[role='columnHeader'],[role='cell']"),u=p=>{var f,M;if(p.role==="columnHeader")return[-1,parseInt((f=p.dataset.idx)!=null?f:"-1",10)];{let P=p.closest("[role='row']");if(P){let g=parseInt((M=P.ariaRowIndex)!=null?M:"-1",10),E=Array.from(P.childNodes).indexOf(p);return[g,E]}}return Gs},d=(0,U.useCallback)(p=>{var f;if(t.current){let M=Mr(t,p);if(M){M!==i.current&&((f=i.current)==null||f.removeAttribute("tabindex"),i.current=M,M.setAttribute("tabindex","0"));let[P,g]=Bs(M);P&&g&&(n==null||n({type:"scroll-distance",distance:g,direction:P})),M.focus()}}},[t,n]),m=(0,U.useCallback)((p,f,M=!1)=>{let P=[p,f];a.current=P,d(P),M&&(s.current=P)},[d]),b=(0,U.useCallback)((p,[f,M])=>new Promise(P=>{let g=f;switch(p){case"PageDown":g=Math.min(r-1,f+l),n==null||n({type:"scroll-page",direction:"down"});break;case"PageUp":g=Math.max(0,f-l),n==null||n({type:"scroll-page",direction:"up"});break;case"Home":g=0,n==null||n({type:"scroll-end",direction:"home"});break;case"End":g=r-1,n==null||n({type:"scroll-end",direction:"end"});break}setTimeout(()=>{P([g,M])},90)}),[n,r,l]),y=(0,U.useCallback)(()=>{var p;if(o!==!0&&(p=t.current)!=null&&p.contains(document.activeElement)){let f=c(document.activeElement);f&&(console.log({focusedCell:f}),s.current=u(f))}},[o,t]),h=(0,U.useCallback)(async p=>{console.log(`navigate child items ${p}`);let[f,M]=Os(p)?await b(p,a.current):Us(p,a.current,e,r);console.log(`nextRowIdx ${f} nextColIdx ${M}`);let[P,g]=a.current;(f!==P||M!==g)&&m(f,M,!0)},[e,b,r,m]),T=(0,U.useCallback)(p=>{r>0&&$s(p.key)&&(p.preventDefault(),p.stopPropagation(),h(p.key))},[r,h]),x=(0,U.useCallback)(p=>{let f=p.target,M=c(f);if(M){let[P,g]=u(M);m(P,g)}},[m]),v=(0,U.useCallback)(()=>{h("ArrowDown")},[h]),C=(0,U.useMemo)(()=>({navigate:v,onClick:x,onFocus:y,onKeyDown:T}),[x,y,T,v]),D=((w=t.current)==null?void 0:w.firstChild)!=null;return(0,U.useEffect)(()=>{if(D&&i.current===void 0){let{current:p}=t,f=(p==null?void 0:p.querySelector(Bo(0)))||(p==null?void 0:p.querySelector(Uo(0,0)));f&&(f.setAttribute("tabindex","0"),i.current=f)}},[t,D]),C};var _=require("@vuu-ui/vuu-utils"),k=require("react");var Yt=(e,t)=>{switch(t.type){case"col-size":return{...e,columns:e.columns.map(o=>o.name===t.column.name?{...o,width:t.width}:o)};case"column-prop":return{...e,columns:e.columns.map(o=>o.name===t.column.name?{...o,[t.property]:t.value}:o)};default:return e}};var qt=require("@vuu-ui/vuu-data-react/src"),Ge=require("@vuu-ui/vuu-utils"),J=require("react");var jt=require("@vuu-ui/vuu-utils"),{SELECTED:_s}=jt.metadataKeys,Zt=class{constructor({from:t,to:o}){this.rowCount=0;this.setRowCount=t=>{t<this.data.length&&(this.data.length=t),this.rowCount=t};this.range=new jt.WindowRange(t,o),this.data=new Array(o-t),this.rowCount=0}add(t){let[o]=t;if(this.isWithinRange(o)){let n=o-this.range.from;this.data[n]=t}}getAtIndex(t){return this.range.isWithin(t)&&this.data[t-this.range.from]!=null?this.data[t-this.range.from]:void 0}isWithinRange(t){return this.range.isWithin(t)}setRange({from:t,to:o}){if(t!==this.range.from||o!==this.range.to){let[n,r]=this.range.overlap(t,o),l=new Array(Math.max(0,o-t));for(let s=n;s<r;s++){let i=this.getAtIndex(s);if(i){let a=s-t;l[a]=i}}this.data=l,this.range.from=t,this.range.to=o}}getSelectedRows(){return this.data.filter(t=>t[_s]!==0)}};var Pr=({dataSource:e,onFeatureEnabled:t,onFeatureInvocation:o,onSizeChange:n,onSubscribed:r,range:l=Ge.NULL_RANGE,renderBufferSize:s=0})=>{let[,i]=(0,J.useState)(null),a=(0,J.useRef)([]),c=(0,J.useRef)(!0),u=(0,J.useRef)(!1),d=(0,J.useRef)(Ge.NULL_RANGE),m=(0,J.useMemo)(()=>new Zt((0,Ge.getFullRange)(l,s)),[]),b=(0,J.useCallback)(T=>{for(let x of T)m.add(x);a.current=m.data,c.current&&i({})},[m]),y=(0,J.useCallback)(T=>{T.type==="subscribed"?r==null||r(T):T.type==="viewport-update"?(typeof T.size=="number"&&(n==null||n(T.size),m.setRowCount(T.size)),T.rows?b(T.rows):typeof T.size=="number"&&(a.current=m.data,u.current=!0)):(0,qt.isVuuFeatureAction)(T)?t==null||t(T):(0,qt.isVuuFeatureInvocation)(T)?o==null||o(T):console.log(`useDataSource unexpected message ${T.type}`)},[m,t,o,n,r,b]);(0,J.useEffect)(()=>()=>{c.current=!0,c.current=!1},[]),(0,J.useEffect)(()=>{e==null||e.subscribe({range:(0,Ge.getFullRange)(l,s)},y)},[e,y,l,s]);let h=(0,J.useCallback)(T=>{let x=(0,Ge.getFullRange)(T,s);m.setRange(x),e.range=d.current=x,e.emit("range",T)},[e,m,s]);return{data:a.current,range:d.current,setRange:h}};var eo=require("react"),Hr=e=>{let t=(0,eo.useRef)(e);return(0,eo.useMemo)(()=>t.current,[])};var Er=require("@vuu-ui/vuu-utils"),Sr=require("react"),Ar=require("@vuu-ui/vuu-popups"),Lr=({columns:e,data:t})=>{let[o]=(0,Ar.useContextMenu)();return(0,Sr.useCallback)(r=>{var a;let l=r.target,s=l==null?void 0:l.closest("div[role='cell']"),i=l==null?void 0:l.closest("div[role='row']");if(s&&i){let c=(0,Er.buildColumnMap)(e),u=parseInt((a=i.ariaRowIndex)!=null?a:"-1"),d=Array.from(i.childNodes).indexOf(s),m=t.find(([y])=>y===u),b=e[d];o(r,"grid",{columnMap:c,columnName:b,row:m})}},[e,t,o])};var Kr=require("@vuu-ui/vuu-utils"),kt=require("react");var kr=({navigate:e})=>{let t=(0,kt.useCallback)(()=>{e()},[e]),o=(0,kt.useCallback)(l=>{let s=l.target,i=s.querySelector("input");i&&(i.focus(),i.select()),s.addEventListener("vuu-commit",t,!0)},[t]),n=(0,kt.useCallback)(l=>{let s=l.target,i=s.querySelector("input");i&&(i.focus(),i.select()),s.addEventListener("vuu-commit",t,!0)},[t]);return{onKeyDown:(0,kt.useCallback)(l=>{Rr(l.target)&&((0,Kr.isCharacterKey)(l.key)?o(l):l.key==="Enter"&&n(l))},[o,n])}};var A=require("@vuu-ui/vuu-utils"),Nr=require("@vuu-ui/vuu-ui-controls"),zr=require("react"),{info:_o}=(0,A.logger)("useTableModel"),Js=100,Xs=A.metadataKeys.count,Qs=({serverDataType:e})=>e===void 0,Ys=e=>{var t;if((0,A.isTypeDescriptor)(e.type))return(0,A.getCellRenderer)((t=e.type)==null?void 0:t.renderer)},Zs=(e,t)=>{var n;let o=t.columns.find(({name:r})=>r===e.name);return o?o.serverDataType:(n=e.serverDataType)!=null?n:"string"},js=["int","long","double"],Ir=e=>e===void 0?void 0:js.includes(e)?"right":"left",Vr=e=>e.type==="columnSettings",$r=e=>e.type==="tableSettings",qs=(e,t)=>{switch(_o==null||_o(`TableModelReducer ${t.type}`),console.log(`TableModelReducer ${t.type}`),t.type){case"init":return console.log({init:t}),Or(t);case"moveColumn":return ti(e,t);case"resizeColumn":return ri(e,t);case"setTableSchema":return li(e,t);case"hideColumns":return oi(e,t);case"showColumns":return ni(e,t);case"pinColumn":return si(e,t);case"updateColumnProp":return rt(e,t);case"tableConfig":return Wr(e,t);default:return console.log(`unhandled action ${t.type}`),e}},Fr=(e,t)=>{let[o,n]=(0,zr.useReducer)(qs,{tableConfig:e,dataSourceConfig:t},Or),{columns:r,headings:l,tableConfig:s,...i}=o;return{columns:r,dispatchColumnAction:n,headings:l,tableAttributes:i,tableConfig:s}};function Or({dataSourceConfig:e,tableConfig:t}){let{columns:o,...n}=t,r=o.filter((0,A.subscribedOnly)(e==null?void 0:e.columns)).map(Gr(n)),l=r.some(A.isPinned)?(0,A.sortPinnedColumns)(r):r,s={columns:l,headings:(0,A.getTableHeadings)(l),tableConfig:t,...n};if(e){let{columns:i,...a}=e;s=Wr(s,{type:"tableConfig",...a})}return s}var ei=(e,t)=>t==="uppercase"?e.toUpperCase():t==="capitalize"?e[0].toUpperCase()+e.slice(1).toLowerCase():e,Gr=e=>(t,o)=>{let{columnDefaultWidth:n=Js,columnFormatHeader:r}=e,{align:l=Ir(t.serverDataType),key:s,name:i,label:a=i,width:c=n,...u}=t,d={...u,align:l,CellRenderer:Ys(t),clientSideEditValidationCheck:(0,A.hasValidationRules)(t.type)?(0,Nr.buildValidationChecker)(t.type.renderer.rules):void 0,label:ei(a,r),key:s!=null?s:o+Xs,name:i,originalIdx:o,valueFormatter:(0,A.getValueFormatter)(t),width:c};return(0,A.isGroupColumn)(d)&&(d.columns=d.columns.map(m=>Gr(e)(m,m.key))),d};function ti(e,{column:t,moveBy:o,moveTo:n}){let{columns:r}=e;if(typeof o=="number"){let l=r.indexOf(t),s=r.slice(),[i]=s.splice(l,1);return s.splice(l+o,0,i),{...e,columns:s}}else if(typeof n=="number"){let l=r.indexOf(t);return{...e,columns:(0,A.moveItem)(r,l,n)}}return e}function oi(e,{columns:t}){return t.some(o=>o.hidden!==!0)?t.reduce((o,n)=>n.hidden!==!0?rt(o,{type:"updateColumnProp",column:n,hidden:!0}):o,e):e}function ni(e,{columns:t}){return t.some(o=>o.hidden)?t.reduce((o,n)=>n.hidden?rt(o,{type:"updateColumnProp",column:n,hidden:!1}):o,e):e}function ri(e,{column:t,phase:o,width:n}){let r="updateColumnProp",l=o!=="end";switch(o){case"begin":return rt(e,{type:r,column:t,resizing:l});case"end":return rt(e,{type:r,column:t,resizing:l,width:n});case"resize":return rt(e,{type:r,column:t,width:n});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${o}`)}}function li(e,{tableSchema:t}){let{columns:o}=e;if(o.some(Qs)){let n=o.map(r=>{var s;let l=Zs(r,t);return{...r,align:(s=r.align)!=null?s:Ir(l),serverDataType:l}});return{...e,columns:n}}else return e}function si(e,t){let{columns:o}=e,{column:n,pin:r}=t,l=o.find(s=>s.name===n.name);return l?(o=nt(o,{...l,pin:r}),o=(0,A.sortPinnedColumns)(o),{...e,columns:o}):e}function rt(e,t){let{columns:o}=e,{align:n,column:r,hidden:l,label:s,resizing:i,width:a}=t,c=o.find(u=>u.name===r.name);return c&&((n==="left"||n==="right")&&(o=nt(o,{...c,align:n})),typeof s=="string"&&(o=nt(o,{...c,label:s})),typeof i=="boolean"&&(o=nt(o,{...c,resizing:i})),typeof l=="boolean"&&(o=nt(o,{...c,hidden:l})),typeof a=="number"&&(o=nt(o,{...c,width:a}))),{...e,columns:o}}function Wr(e,{confirmed:t,filter:o,groupBy:n,sort:r}){let l=n!==void 0,s=typeof(o==null?void 0:o.filter)=="string",i=r&&r.sortDefs.length>0,a=e;return l&&(a={...e,columns:(0,A.applyGroupByToColumns)(a.columns,n,t)}),i&&(a={...e,columns:(0,A.applySortToColumns)(a.columns,r)}),s?a={...e,columns:(0,A.applyFilterToColumns)(a.columns,o)}:a.columns.some(A.isFilteredColumn)&&(a={...e,columns:(0,A.stripFilterFromColumns)(a.columns)}),a}function nt(e,t){return e.map(o=>o.name===t.name?t:o)}var Q=require("react"),Br=e=>{let{scrollLeft:t,scrollTop:o}=e,{clientHeight:n,clientWidth:r,scrollHeight:l,scrollWidth:s}=e,i=t/(s-r),a=o/(l-n);return[i,a]},Ur=({onAttach:e,onDetach:t})=>{let o=(0,Q.useRef)(null);return(0,Q.useCallback)(r=>{if(r)o.current=r,e==null||e(r);else if(o.current){let{current:l}=o;o.current=r,t==null||t(l)}},[e,t])},_r=({maxScrollLeft:e,maxScrollTop:t,onHorizontalScroll:o,onVerticalScroll:n,rowHeight:r,viewportRowCount:l})=>{let s=(0,Q.useRef)(!1),i=(0,Q.useRef)({scrollTop:0,scrollLeft:0}),a=(0,Q.useRef)(null),c=(0,Q.useRef)(null),u=(0,Q.useCallback)(()=>{let{current:C}=c,{current:D}=a,{current:w}=s;if(w)s.current=!1;else if(C&&D){let[p,f]=Br(D),M=Math.round(p*e),P=Math.round(f*t);C.scrollTo({left:M,top:P,behavior:"auto"})}},[e,t]),d=(0,Q.useCallback)(()=>{let{current:C}=c,{current:D}=a,{current:w}=i;if(C&&D){let{scrollLeft:p,scrollTop:f}=C,[M,P]=Br(C);s.current=!0,D.scrollLeft=Math.round(M*e),D.scrollTop=Math.round(P*t),w.scrollTop!==f&&(w.scrollTop=f,n==null||n(f,P)),w.scrollLeft!==p&&(w.scrollLeft=p,o==null||o(p))}},[e,t,o,n]),m=(0,Q.useCallback)(C=>{a.current=C,C.addEventListener("scroll",u,{passive:!0})},[u]),b=(0,Q.useCallback)(C=>{a.current=null,C.removeEventListener("scroll",u)},[u]),y=(0,Q.useCallback)(C=>{c.current=C,C.addEventListener("scroll",d,{passive:!0})},[d]),h=(0,Q.useCallback)(C=>{c.current=null,C.removeEventListener("scroll",d)},[d]),T=Ur({onAttach:y,onDetach:h}),x=Ur({onAttach:m,onDetach:b}),v=(0,Q.useCallback)(C=>{let{current:D}=c;if(D){let{scrollLeft:w,scrollTop:p}=D;if(s.current=!1,C.type==="scroll-distance"){let f=w,M=p;C.direction==="up"||C.direction==="down"?M=Math.min(Math.max(0,p+C.distance),t):f=Math.min(Math.max(0,w+C.distance),e),D.scrollTo({top:M,left:f,behavior:"auto"})}else if(C.type==="scroll-page"){let{direction:f}=C,M=l*(f==="down"?r:-r),P=Math.min(Math.max(0,p+M),t);D.scrollTo({top:P,left:w,behavior:"auto"})}else if(C.type==="scroll-end"){let{direction:f}=C,M=f==="end"?t:0;D.scrollTo({top:M,left:D.scrollLeft,behavior:"auto"})}}},[e,t,r,l]);return{scrollbarContainerRef:x,contentContainerRef:T,requestScroll:v}};var lt=require("react"),Jr=({columns:e,getRowAtPosition:t,setRange:o,viewportMeasurements:n})=>{let r=(0,lt.useRef)(0),{contentWidth:l,rowCount:s}=n,i=(0,lt.useCallback)(a=>{let c=t(a);c!==r.current&&(r.current=c,o({from:c,to:c+s}))},[t,o,s]);return(0,lt.useEffect)(()=>{let{current:a}=r,c={from:a,to:a+s};o(c)},[o,s]),{onVerticalScroll:i}};var{KEY:ii,IS_EXPANDED:Xr,IS_LEAF:Qr}=_.metadataKeys,ai=(e,t)=>({...e,columns:e.columns.concat(t)}),qr=({availableColumns:e,config:t,containerRef:o,dataSource:n,headerHeight:r=25,onAvailableColumnsChange:l,onConfigChange:s,onFeatureEnabled:i,onFeatureInvocation:a,onRowClick:c,onSelect:u,onSelectionChange:d,renderBufferSize:m=0,rowHeight:b=20,selectionModel:y})=>{let[h,T]=(0,k.useState)(n.size);if(n===void 0)throw Error("no data source provided to Vuu Table");let[x,v]=(0,k.useState)(),C=(0,k.useCallback)(R=>{v(R)},[]),D=(0,k.useMemo)(()=>bt(n),[n]),w=(0,k.useCallback)(R=>{T(R)},[]),{columns:p,dispatchColumnAction:f,headings:M,tableAttributes:P,tableConfig:g}=Fr(t,n.config);(0,Yr.useLayoutEffectSkipFirst)(()=>{f({type:"init",dataSourceConfig:n.config,tableConfig:g})},[g,n.config,f]);let[E,L]=(0,k.useState)(),[H,O]=(0,k.useMemo)(()=>{let R=(N,z)=>{let re=(0,_.updateColumn)(p,N,{width:z});L(re)};return[E!=null?E:p,R]},[p,E]),me=(0,k.useMemo)(()=>(0,_.buildColumnMap)(n.columns),[n.columns]),{getRowAtPosition:Ae,getRowOffset:Nt,setPctScrollTop:zt,...ie}=xt({columns:H,headerHeight:r,headings:M,rowCount:h,rowHeight:b,size:x}),at=Hr({from:0,to:ie.rowCount}),Le=(0,k.useCallback)(({tableSchema:R})=>{R||console.log("usbscription message with no schema")},[]),{data:de,range:te,setRange:ct}=Pr({dataSource:n,onFeatureEnabled:i,onFeatureInvocation:a,renderBufferSize:m,onSizeChange:w,onSubscribed:Le,range:at}),ut=(0,k.useCallback)(R=>{f({type:"init",tableConfig:R,dataSourceConfig:n.config}),s==null||s(R)},[n.config,f,s]),mt=(0,k.useCallback)(R=>{n.config={...n.config,...R}},[n]),Y=(0,k.useCallback)(R=>{n.columns=n.columns.concat(R.name);let N=ai(g,R);f({type:"init",tableConfig:N,dataSourceConfig:n.config}),s==null||s(N)},[n,f,s,g]);(0,k.useEffect)(()=>{n.on("config",(R,N)=>{f({type:"tableConfig",...R,confirmed:N})})},[n,f]);let{showColumnSettingsPanel:fe,showTableSettingsPanel:It}=(0,Zr.useTableAndColumnSettings)({availableColumns:e!=null?e:g.columns.map(({name:R,serverDataType:N="string"})=>({name:R,serverDataType:N})),onAvailableColumnsChange:l,onConfigChange:ut,onCreateCalculatedColumn:Y,onDataSourceConfigChange:mt,tableConfig:g}),so=(0,k.useCallback)(R=>{Vr(R)?fe(R):$r(R)?It():f(R)},[f,fe,It]),io=gt({dataSource:n,onPersistentColumnOperation:so}),pt=(0,k.useCallback)((R,N=!1,z)=>{n&&(n.sort=(0,_.applySort)(n.sort,R,N,z))},[n]),ao=(0,k.useCallback)((R,N,z)=>{let re=H.find(be=>be.name===N);if(re)R==="resize"?(0,_.isValidNumber)(z)&&O(N,z):R==="end"?(0,_.isValidNumber)(z)&&(f({type:"resizeColumn",phase:R,column:re,width:z}),s==null||s(Yt(g,{type:"col-size",column:re,width:z}))):(L(void 0),f({type:"resizeColumn",phase:R,column:re,width:z}));else throw Error(`useDataTable.handleColumnResize, column ${N} not found`)},[H,g,f,s,O]),Vt=(0,k.useCallback)((R,N)=>{let z=(0,_.isJsonGroup)(N,R),re=R[ii];if(R[Xr]){if(n.closeTreeNode(re,!0),z){let be=H.indexOf(N);n.getRowsAtDepth(be+1).some(ge=>ge[Xr]||ge[Qr])||f({type:"hideColumns",columns:H.slice(be+2)})}}else if(n.openTreeNode(re),z){let be=n.getChildRows(re),ft=H.indexOf(N)+1,ge=[H[ft]];be.some(bo=>bo[Qr])&&ge.push(H[ft+1]),ge.some(bo=>bo.hidden)&&f({type:"showColumns",columns:ge})}},[H,n,f]),{onVerticalScroll:dt}=Jr({columns:H,getRowAtPosition:Ae,setRange:ct,viewportMeasurements:ie}),K=(0,k.useCallback)(R=>{dt(R)},[dt]),{requestScroll:$,...Z}=_r({maxScrollLeft:ie.maxScrollContainerScrollHorizontal,maxScrollTop:ie.maxScrollContainerScrollVertical,rowHeight:b,onVerticalScroll:K,viewportRowCount:ie.rowCount}),{navigate:G,onKeyDown:oe,...Ce}=xr({columnCount:H.filter(R=>R.hidden!==!0).length,containerRef:o,requestScroll:$,rowCount:n==null?void 0:n.size,viewportRange:te,viewportRowCount:ie.rowCount}),{onKeyDown:ne}=kr({navigate:G}),De=(0,k.useCallback)(R=>{oe(R),R.defaultPrevented||ne(R)},[oe,ne]),co=Lr({columns:H,data:de}),uo=(0,k.useCallback)(R=>{var ge;let z=R.target.closest(".vuuTableNextHeaderCell"),re=parseInt((ge=z==null?void 0:z.dataset.index)!=null?ge:"-1"),be=(0,_.visibleColumnAtIndex)(H,re),ft=R.shiftKey;be&&pt(be,ft)},[H,pt]),mo=(0,k.useCallback)(R=>{(0,_.isGroupColumn)(R)?n.groupBy=[]:n&&n.groupBy.includes(R.name)&&(n.groupBy=n.groupBy.filter(N=>N!==R.name))},[n]),po=(0,k.useCallback)(R=>{n.select(R),d==null||d(R)},[n,d]),$t=Rt({onSelect:u,onSelectionChange:po,selectionModel:y}),fo=(0,k.useCallback)((R,N,z)=>{$t(R,N,z),c==null||c(R)},[c,$t]);(0,k.useEffect)(()=>{n.on("config",(R,N)=>{f({type:"tableConfig",...R,confirmed:N})})},[n,f]);let Co=(0,k.useCallback)((R,N)=>{let z=H[R];f({type:"moveColumn",column:z,moveTo:N})},[H,f]),cl=(0,k.useCallback)((R,N,z)=>n.applyEdit(R,N,z),[n]),{onMouseDown:ul,...ml}=(0,jr.useDragDropNext)({allowDragDrop:!0,containerRef:o,draggableClassName:"vuuTableNext",onDrop:Co,orientation:"horizontal",itemQuery:".vuuTableNextHeaderCell"});return{...Ce,onKeyDown:De,columnMap:me,columns:H,data:de,handleContextMenuAction:io,headerProps:{onClick:uo,onMouseDown:ul,onResize:ao},menuBuilder:D,onContextMenu:co,onDataEdited:cl,onRemoveGroupColumn:mo,onResize:C,onRowClick:fo,onToggleGroup:Vt,scrollProps:Z,tableAttributes:P,viewportMeasurements:ie,dragDropHook:ml}};var oo=require("@vuu-ui/vuu-layout"),tl=require("@salt-ds/core");var se=require("react/jsx-runtime"),Xo=require("react"),ue="vuuTableNext",{IDX:ci,RENDER_IDX:ui}=st.metadataKeys,ol=(0,to.forwardRef)(function({Row:t=Wo,availableColumns:o,className:n,config:r,dataSource:l,id:s,onAvailableColumnsChange:i,onConfigChange:a,onFeatureEnabled:c,onFeatureInvocation:u,onRowClick:d,onSelect:m,onSelectionChange:b,onShowConfigEditor:y,renderBufferSize:h=0,rowHeight:T=20,selectionModel:x="extended",showColumnHeaders:v=!0,headerHeight:C=v?25:0,style:D,...w},p){let f=(0,oo.useId)(s),M=(0,to.useRef)(null),{columnMap:P,columns:g,data:E,dragDropHook:L,handleContextMenuAction:H,headerProps:O,onDataEdited:me,onRemoveGroupColumn:Ae,onResize:Nt,onRowClick:zt,onToggleGroup:ie,menuBuilder:at,scrollProps:Le,tableAttributes:de,viewportMeasurements:te,...ct}=qr({availableColumns:o,config:r,containerRef:M,dataSource:l,headerHeight:C,onAvailableColumnsChange:i,onConfigChange:a,onFeatureEnabled:c,onFeatureInvocation:u,onRowClick:d,onSelect:m,onSelectionChange:b,renderBufferSize:h,rowHeight:T,selectionModel:x}),ut=()=>({...D,"--content-height":`${te.contentHeight}px`,"--horizontal-scrollbar-height":`${te.horizontalScrollbarHeight}px`,"--content-width":`${te.contentWidth}px`,"--pinned-width-left":`${te.pinnedWidthLeft}px`,"--pinned-width-right":`${te.pinnedWidthRight}px`,"--header-height":`${C}px`,"--row-height":`${T}px`,"--total-header-height":`${te.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${te.verticalScrollbarWidth}px`,"--viewport-body-height":`${te.viewportBodyHeight}px`}),mt=(0,Jo.default)(ue,n,{[`${ue}-colLines`]:de.columnSeparators,[`${ue}-rowLines`]:de.rowSeparators,[`${ue}-zebra`]:de.zebraStripes});return(0,se.jsx)(el.ContextMenuProvider,{menuActionHandler:H,menuBuilder:at,children:(0,se.jsxs)(oo.MeasuredContainer,{...w,className:mt,onResize:Nt,ref:(0,tl.useForkRef)(M,p),style:ut(),children:[(0,se.jsx)("div",{className:`${ue}-scrollbarContainer`,ref:Le.scrollbarContainerRef,children:(0,se.jsx)("div",{className:`${ue}-scrollbarContent`})}),(0,se.jsx)("div",{className:`${ue}-contentContainer`,ref:Le.contentContainerRef,children:(0,se.jsxs)("div",{...ct,className:`${ue}-table`,tabIndex:-1,children:[v?(0,se.jsx)("div",{className:`${ue}-col-headings`,children:(0,se.jsxs)("div",{className:`${ue}-col-headers`,role:"row",children:[g.filter(st.notHidden).map((Y,fe)=>(0,st.isGroupColumn)(Y)?(0,Xo.createElement)(Lt,{...O,column:Y,"data-index":fe,key:Y.name,onRemoveColumn:Ae}):(0,Xo.createElement)(br,{...O,className:(0,Jo.default)({"vuuDraggable-dragAway":fe===L.draggedItemIndex}),column:Y,"data-index":fe,id:`${f}-col-${fe}`,key:Y.name})),L.draggable]})}):null,(0,se.jsx)("div",{className:`${ue}-body`,children:E.map(Y=>(0,se.jsx)(t,{columnMap:P,columns:g,onClick:zt,onDataEdited:me,row:Y,offset:T*Y[ci]+C,onToggleGroup:ie,zebraStripes:de.zebraStripes},Y[ui]))})]})})]})})});var nl=require("@vuu-ui/vuu-ui-controls"),it=require("@vuu-ui/vuu-utils");var no=require("react"),rl=require("react/jsx-runtime"),mi="vuuTableDropdownCell",pi=["Enter"," "],di=({column:e,columnMap:t,row:o})=>{var a,c,u;let n=(0,it.isTypeDescriptor)(e.type)&&(0,it.isColumnTypeRenderer)((a=e.type)==null?void 0:a.renderer)?(u=(c=e.type)==null?void 0:c.renderer)==null?void 0:u.values:[],r=t[e.name],[l,s]=(0,no.useState)(o[r]),i=(0,no.useCallback)((d,m)=>{m&&s(m)},[]);return(0,rl.jsx)(nl.Dropdown,{className:mi,onSelectionChange:i,openKeys:pi,selected:l,source:n,width:e.width-17})};(0,it.registerComponent)("dropdown-cell",di,"cell-renderer",{});var ll=require("@vuu-ui/vuu-utils"),sl=require("@salt-ds/core"),il=require("@vuu-ui/vuu-ui-controls"),al=W(require("classnames"));var lo=require("react/jsx-runtime"),ro="vuuTableInputCell",fi=()=>(console.warn("onCommit handler has not been provided to InputCell cell renderer"),!0),Ci=({column:e,columnMap:t,onCommit:o=fi,row:n})=>{let r=t[e.name],{align:l="left",clientSideEditValidationCheck:s,valueFormatter:i}=e,{warningMessage:a,...c}=(0,il.useEditableText)({initialValue:i(n[r]),onCommit:o,clientSideEditValidationCheck:s}),u=a&&l==="left"?(0,lo.jsx)("span",{className:`${ro}-icon`,"data-icon":"error"}):void 0,d=a&&l==="right"?(0,lo.jsx)("span",{className:`${ro}-icon`,"data-icon":"error"}):void 0;return(0,lo.jsx)(sl.Input,{...c,className:(0,al.default)(ro,{[`${ro}-error`]:a!==void 0}),endAdornment:u,startAdornment:d})};(0,ll.registerComponent)("input-cell",Ci,"cell-renderer",{});
2
2
  //# sourceMappingURL=index.js.map