@vuu-ui/vuu-table 0.7.0 → 0.7.1
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 +1 -1
- package/cjs/index.js.map +4 -4
- package/esm/index.js +1 -1
- package/esm/index.js.map +4 -4
- package/package.json +5 -5
- package/types/Table.d.ts +1 -1
- package/types/context-menu/index.d.ts +1 -1
- package/types/context-menu/{useContextMenu.d.ts → useTableContextMenu.d.ts} +1 -1
- package/types/index.d.ts +3 -0
- package/types/useMeasuredContainer.d.ts +5 -0
- package/types/useTable.d.ts +2 -2
package/cjs/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var On=Object.create;var Ee=Object.defineProperty;var $n=Object.getOwnPropertyDescriptor;var Gn=Object.getOwnPropertyNames;var Bn=Object.getPrototypeOf,Un=Object.prototype.hasOwnProperty;var _n=(e,t)=>{for(var n in t)Ee(e,n,{get:t[n],enumerable:!0})},ct=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Gn(t))!Un.call(e,r)&&r!==n&&Ee(e,r,{get:()=>t[r],enumerable:!(o=$n(t,r))||o.enumerable});return e};var Z=(e,t,n)=>(n=e!=null?On(Bn(e)):{},ct(t||!e||!e.__esModule?Ee(n,"default",{value:e,enumerable:!0}):n,e)),Jn=e=>ct(Ee({},"__esModule",{value:!0}),e);var jo={};_n(jo,{Table:()=>_o,useMeasuredContainer:()=>nt});module.exports=Jn(jo);var Cn=require("@vuu-ui/vuu-popups"),Fe=require("@salt-ds/core");var ut=require("@vuu-ui/vuu-utils"),mt=e=>(t,n)=>{let o=[];if(e===void 0)return o;if(t==="header")o.push(...Xn(n,e)),o.push(...jn(n,e)),o.push(...Yn(n,e)),o.push(...Qn(n));else if(t==="filter"){let{column:r,filter:i}=n,s=(i==null?void 0:i.column)===(r==null?void 0:r.name);o.push({label:"Edit filter",action:"filter-edit",options:n}),o.push({label:"Remove filter",action:"filter-remove-column",options:n}),r&&!s&&o.push({label:"Remove all filters",action:"remove-filters",options:n})}return o};function Xn(e,{sort:{sortDefs:t}}){let{column:n}=e,o=[];if(n===void 0)return o;let r=t.length>0;return n.sorted==="A"?o.push({label:"Reverse Sort (DSC)",action:"sort-dsc",options:e}):n.sorted==="D"?o.push({label:"Reverse Sort (ASC)",action:"sort-asc",options:e}):typeof n.sorted=="number"?(n.sorted>0?o.push({label:"Reverse Sort (DSC)",action:"sort-add-dsc",options:e}):o.push({label:"Reverse Sort (ASC)",action:"sort-add-asc",options:e}),r&&Math.abs(n.sorted)<t.length&&o.push({label:"Remove from sort",action:"sort-remove",options:e}),o.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]})):r?(o.push({label:"Add to sort",children:[{label:"Ascending",action:"sort-add-asc",options:e},{label:"Descending",action:"sort-add-dsc",options:e}]}),o.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]})):o.push({label:"Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]}),o}function Yn(e,t){let{column:n}=e;if(n===void 0||t.groupBy.length===0)return[];let{name:o,label:r=o}=n;return[{label:`Aggregate ${r}`,children:[{label:"Count",action:"agg-count",options:e}].concat((0,ut.isNumericColumn)(n)?[{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 $e=(e,t)=>({label:`Pin ${t}`,action:`column-pin-${t}`,options:e}),Ie=e=>$e(e,"left"),We=e=>$e(e,"floating"),Oe=e=>$e(e,"right");function Qn(e){let{column:t}=e;if(t===void 0)return[];let{pin:n}=t,o=[{label:"Hide column",action:"column-hide",options:e},{label:"Remove column",action:"column-remove",options:e}];return n===void 0?o.push({label:"Pin column",children:[Ie(e),We(e),Oe(e)]}):n==="left"?o.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[We(e),Oe(e)]}):n==="right"?o.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[Ie(e),We(e)]}):n==="floating"&&o.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[Ie(e),Oe(e)]}),o}function jn(e,{groupBy:t}){let{column:n}=e,o=[];if(n===void 0)return o;let{name:r,label:i=r}=n;return t.length===0?o.push({label:`Group by ${i}`,action:"group",options:e}):o.push({label:`Add ${i} to group by`,action:"group-add",options:e}),o}var dt=require("@vuu-ui/vuu-filters"),F=require("@vuu-ui/vuu-utils"),Zn=(e,t)=>{if(e.filterStruct&&t){let[n,o]=(0,dt.removeColumnFromFilter)(t,e.filterStruct);return{filter:o,filterStruct:n}}else return e},{Average:qn,Count:eo,High:to,Low:no,Sum:oo}=F.AggregationType,pt=({dataSource:e,onPersistentColumnOperation:t})=>(o,r)=>{let i=r;if(i.column&&e){let{column:s}=i;switch(o){case"sort-asc":return e.sort=(0,F.setSortColumn)(e.sort,s,"A"),!0;case"sort-dsc":return e.sort=(0,F.setSortColumn)(e.sort,s,"D"),!0;case"sort-add-asc":return e.sort=(0,F.addSortColumn)(e.sort,s,"A"),!0;case"sort-add-dsc":return e.sort=(0,F.addSortColumn)(e.sort,s,"D"),!0;case"group":return e.groupBy=(0,F.addGroupColumn)(e.groupBy,s),!0;case"group-add":return e.groupBy=(0,F.addGroupColumn)(e.groupBy,s),!0;case"column-hide":return t({type:"hideColumns",columns:[s]}),!0;case"column-remove":return e.columns=e.columns.filter(l=>l!==s.name),!0;case"filter-remove-column":return e.filter=Zn(e.filter,s),!0;case"remove-filters":return e.filter={filter:""},!0;case"agg-avg":return e.aggregations=(0,F.setAggregations)(e.aggregations,s,qn),!0;case"agg-high":return e.aggregations=(0,F.setAggregations)(e.aggregations,s,to),!0;case"agg-low":return e.aggregations=(0,F.setAggregations)(e.aggregations,s,no),!0;case"agg-count":return e.aggregations=(0,F.setAggregations)(e.aggregations,s,eo),!0;case"agg-sum":return e.aggregations=(0,F.setAggregations)(e.aggregations,s,oo),!0;case"column-pin-floating":return t({type:"pinColumn",column:s,pin:"floating"}),!0;case"column-pin-left":return t({type:"pinColumn",column:s,pin:"left"}),!0;case"column-pin-right":return t({type:"pinColumn",column:s,pin:"right"}),!0;case"column-unpin":return t({type:"pinColumn",column:s,pin:void 0}),!0;default:}}return!1};var $=require("@vuu-ui/vuu-utils"),de=require("react");var G=require("@vuu-ui/vuu-utils"),yt=Z(require("classnames")),we=require("react");var Se=require("@vuu-ui/vuu-utils"),gt=require("@heswell/salt-lab"),Ct=Z(require("classnames")),Y=require("react");var ye=require("react/jsx-runtime"),{KEY:ft}=Se.metadataKeys,Ge=(0,Y.memo)(({className:e,column:t,columnMap:n,onClick:o,row:r})=>{let i=(0,Y.useRef)(null),{align:s,CellRenderer:l,key:a,pin:u,editable:c,resizing:d,valueFormatter:p}=t,[h,b]=(0,Y.useState)(!1),g=p(r[a]),[x,y]=(0,Y.useState)(g),m=()=>{var E;(E=i.current)==null||E.focus()},C=E=>{E.key==="Enter"&&b(!0)},T=(0,Y.useCallback)(()=>{o==null||o(t)},[t,o]),w=()=>{b(!0)},v=(E="",f="",M=!0,S=!1)=>{var R;b(!1),S?y(E):f!==E&&y(f),M===!1&&((R=i.current)==null||R.focus())},P=(0,Ct.default)(e,{vuuAlignRight:s==="right",vuuPinFloating:u==="floating",vuuPinLeft:u==="left",vuuPinRight:u==="right","vuuTableCell-resizing":d})||void 0,A=(0,Se.getColumnStyle)(t);return c?(0,ye.jsx)("div",{className:P,"data-editable":!0,role:"cell",style:A,onKeyDown:C,children:(0,ye.jsx)(gt.EditableLabel,{editing:h,value:x,onChange:y,onMouseDownCapture:m,onEnterEditMode:w,onExitEditMode:v,onKeyDown:C,ref:i,tabIndex:0},"title")}):(0,ye.jsx)("div",{className:P,role:"cell",style:A,onClick:T,children:l?(0,ye.jsx)(l,{column:t,columnMap:n,row:r}):g})},ro);Ge.displayName="TableCell";function ro(e,t){return e.column===t.column&&e.onClick===t.onClick&&e.row[ft]===t.row[ft]&&e.row[e.column.key]===t.row[t.column.key]}var Ae=require("@vuu-ui/vuu-utils"),bt=require("react");var ue=require("react/jsx-runtime"),{DEPTH:so,IS_LEAF:ht}=Ae.metadataKeys,io=(e,t)=>{let{[so]:n,[ht]:o}=t;if(o||n>e.length)return[null,n===null?0:n-1];if(n===0)return["$root",0];{let{key:r,valueFormatter:i}=e[n-1];return[i(t[r]),n-1]}},vt=({column:e,onClick:t,row:n})=>{let{columns:o}=e,[r,i]=io(o,n),s=(0,bt.useCallback)(()=>{t==null||t(e)},[e,t]),l=(0,Ae.getColumnStyle)(e),a=n[ht],u=Array(i).fill(0).map((c,d)=>(0,ue.jsx)("span",{className:"vuuTableGroupCell-spacer"},d));return(0,ue.jsxs)("div",{className:"vuuTableGroupCell vuuPinLeft",onClick:a?void 0:s,role:"cell",style:l,children:[u,a?null:(0,ue.jsx)("span",{className:"vuuTableGroupCell-toggle","data-icon":"triangle-right"}),(0,ue.jsx)("span",{children:r})]})};var Me=require("react/jsx-runtime"),{IDX:lo,IS_EXPANDED:ao,SELECTED:co}=G.metadataKeys,Le="vuuTableRow",wt=(0,we.memo)(function({columnMap:t,columns:n,offset:o,onClick:r,onToggleGroup:i,virtualColSpan:s=0,row:l}){let{[lo]:a,[ao]:u,[co]:c}=l,d=(0,yt.default)(Le,{[`${Le}-even`]:a%2===0,[`${Le}-expanded`]:u,[`${Le}-preSelected`]:c===2}),p=(0,we.useCallback)(b=>{let g=b.shiftKey,x=b.ctrlKey||b.metaKey;r==null||r(l,g,x)},[r,l]),h=(0,we.useCallback)(b=>{((0,G.isGroupColumn)(b)||(0,G.isJsonGroup)(b,l))&&(i==null||i(l,b))},[i,l]);return(0,Me.jsxs)("div",{"aria-selected":c===1?!0:void 0,"aria-rowindex":a,className:d,onClick:p,role:"row",style:{transform:`translate3d(0px, ${o}px, 0px)`},children:[s>0?(0,Me.jsx)("div",{role:"cell",style:{width:s}}):null,n.filter(G.notHidden).map(b=>{let g=(0,G.isGroupColumn)(b),x=(0,G.isJsonColumn)(b);return(0,Me.jsx)(g?vt:Ge,{column:b,columnMap:t,onClick:g||x?h:void 0,row:l},b.name)})]})});var Be=Z(require("classnames")),Dt=require("react");var me=require("react");var Rt=require("react/jsx-runtime"),Mt=()=>{},uo="vuuColumnResizer",ke=({onDrag:e,onDragEnd:t=Mt,onDragStart:n=Mt})=>{let o=(0,me.useRef)(0),r=(0,me.useCallback)(l=>{l.stopPropagation&&l.stopPropagation(),l.preventDefault&&l.preventDefault();let a=Math.round(l.clientX),u=a-o.current;o.current=a,u!==0&&e(l,u)},[e]),i=(0,me.useCallback)(l=>{window.removeEventListener("mouseup",i),window.removeEventListener("mousemove",r),t(l)},[t,r]),s=(0,me.useCallback)(l=>{n(l),o.current=Math.round(l.clientX),window.addEventListener("mouseup",i),window.addEventListener("mousemove",r),l.stopPropagation&&l.stopPropagation(),l.preventDefault&&l.preventDefault()},[n,r,i]);return(0,Rt.jsx)("div",{className:uo,"data-align":"end",onMouseDown:s})};var oe=require("react"),Ke=({column:e,onResize:t,rootRef:n})=>{let o=(0,oe.useRef)(0),r=(0,oe.useRef)(!1),{name:i}=e,s=(0,oe.useCallback)(()=>{if(t&&n.current){let{width:u}=n.current.getBoundingClientRect();o.current=Math.round(u),r.current=!0,t==null||t("begin",i)}},[i,t,n]),l=(0,oe.useCallback)((u,c)=>{if(n.current&&t){let{width:d}=n.current.getBoundingClientRect(),p=Math.round(d)+c;p!==o.current&&p>0&&(t("resize",i,p),o.current=p)}},[i,t,n]),a=(0,oe.useCallback)(()=>{t&&(t("end",i,o.current),setTimeout(()=>{r.current=!1},100))},[i,t]);return{isResizing:r.current,onDrag:l,onDragStart:s,onDragEnd:a}};var B=require("react/jsx-runtime"),q="vuuTable-groupHeaderCell",Tt=({column:e,onClick:t,...n})=>(0,B.jsx)("span",{...n,className:`${q}-close`,"data-icon":"close-circle",onClick:()=>t==null?void 0:t(e)}),mo=e=>{let{children:t,column:n,className:o}=e;return(0,B.jsxs)("div",{className:(0,Be.default)(`${q}-col`,o),role:"columnheader",children:[(0,B.jsx)("span",{className:`${q}-label`,children:n.name}),t]})},xt=({column:e,className:t,onRemoveColumn:n,onResize:o,...r})=>{let i=(0,Dt.useRef)(null),{isResizing:s,...l}=Ke({column:e,onResize:o,rootRef:i}),a=(0,Be.default)(q,t,{vuuPinLeft:e.pin==="left",[`${q}-right`]:e.align==="right",[`${q}-resizing`]:e.resizing,[`${q}-pending`]:e.groupConfirmed===!1}),{columns:u}=e;return(0,B.jsx)("div",{className:a,ref:i,...r,children:(0,B.jsxs)("div",{className:`${q}-inner`,children:[u.map(c=>(0,B.jsx)(mo,{column:c,children:u.length>1?(0,B.jsx)(Tt,{column:c,onClick:n}):null},c.key)),(0,B.jsx)(Tt,{"data-align":"end",onClick:n}),e.resizeable!==!1?(0,B.jsx)(ke,{...l}):null]})})};var Kt=Z(require("classnames")),se=require("react");var Ue=Z(require("classnames"));var re=require("react/jsx-runtime"),Ht="vuuSortIndicator",Pt=({sorted:e})=>{if(!e)return null;let t=typeof e=="number"?e<0?"dsc":"asc":e==="A"?"asc":"dsc";return typeof e=="number"?(0,re.jsxs)("div",{className:(0,Ue.default)(Ht,"multi-col",t),children:[(0,re.jsx)("span",{"data-icon":`sorted-${t}`}),(0,re.jsx)("span",{className:"vuuSortPosition",children:Math.abs(e)})]}):(0,re.jsx)("div",{className:(0,Ue.default)(Ht,"single-col"),children:(0,re.jsx)("span",{"data-icon":`sorted-${t}`})})};var zt=require("@vuu-ui/vuu-popups");var Et=require("@vuu-ui/vuu-popups"),St=Z(require("classnames")),At=require("react");var kt=require("react/jsx-runtime");var Lt=({column:e,filter:t})=>{let n=(0,Et.useContextMenu)(),o=(0,At.useCallback)(r=>{r.stopPropagation(),n(r,"filter",{column:e,filter:t})},[e,t,n]);return e.filter?(0,kt.jsx)("div",{className:(0,St.default)("vuuFilterIndicator"),"data-icon":"filter",onClick:o}):null};var ee=require("react/jsx-runtime"),Re="vuuTable-headerCell",Nt=({column:e,className:t,onClick:n,onDragStart:o,onResize:r,...i})=>{let s=(0,se.useRef)(null),{isResizing:l,...a}=Ke({column:e,onResize:r,rootRef:s}),u=(0,zt.useContextMenu)(),c=(0,se.useRef)(null),d=x=>{u(x,"header",{column:e})},p=(0,se.useCallback)(x=>!l&&(n==null?void 0:n(x)),[l,n]),h=(0,se.useCallback)(x=>{c.current=window.setTimeout(()=>{o==null||o(x),c.current=null},500)},[o]),b=(0,se.useCallback)(()=>{c.current!==null&&(window.clearTimeout(c.current),c.current=null)},[]),g=(0,Kt.default)(Re,t,{vuuPinFloating:e.pin==="floating",vuuPinLeft:e.pin==="left",vuuPinRight:e.pin==="right",vuuEndPin:e.endPin,[`${Re}-resizing`]:e.resizing,[`${Re}-right`]:e.align==="right"});return(0,ee.jsx)("div",{className:g,...i,onClick:p,onContextMenu:d,onMouseDown:h,onMouseUp:b,ref:s,children:(0,ee.jsxs)("div",{className:`${Re}-inner`,children:[(0,ee.jsx)(Lt,{column:e}),(0,ee.jsx)("div",{className:`${Re}-label`,children:e.label}),(0,ee.jsx)(Pt,{sorted:e.sorted}),e.resizeable!==!1?(0,ee.jsx)(ke,{...a}):null]})})};var U=require("react/jsx-runtime"),_e="vuuTable",{RENDER_IDX:po}=$.metadataKeys,Ft=({columns:e,columnsWithinViewport:t,data:n,getRowOffset:o,headings:r,onColumnResize:i,onHeaderCellDragStart:s,onContextMenu:l,onRemoveColumnFromGroupBy:a,onRowClick:u,onSort:c,onToggleGroup:d,tableId:p,virtualColSpan:h=0,rowCount:b})=>{let g=(0,de.useCallback)(C=>{s==null||s(C)},[s]),x=(0,de.useMemo)(()=>e.filter($.notHidden),[e]),y=(0,de.useMemo)(()=>(0,$.buildColumnMap)(e),[e]),m=(0,de.useCallback)(C=>{var E;let w=C.target.closest(".vuuTable-headerCell"),v=parseInt((E=w==null?void 0:w.dataset.idx)!=null?E:"-1"),P=(0,$.visibleColumnAtIndex)(e,v),A=C.shiftKey;P&&c(P,A)},[e,c]);return(0,U.jsxs)("div",{"aria-rowcount":b,className:`${_e}-table`,role:"table",children:[(0,U.jsxs)("div",{className:`${_e}-headers`,role:"rowGroup",children:[r.map((C,T)=>(0,U.jsx)("div",{className:"vuuTable-heading",children:C.map(({label:w,width:v},P)=>(0,U.jsx)("div",{className:"vuuTable-headingCell",style:{width:v},children:w},P))},T)),(0,U.jsx)("div",{role:"row",children:x.map((C,T)=>{let w=(0,$.getColumnStyle)(C);return(0,$.isGroupColumn)(C)?(0,U.jsx)(xt,{column:C,"data-idx":T,onRemoveColumn:a,onResize:i,role:"columnHeader",style:w},T):(0,U.jsx)(Nt,{column:C,"data-idx":T,id:`${p}-${T}`,onClick:m,onDragStart:g,onResize:i,role:"columnHeader",style:w},T)})})]}),(0,U.jsx)("div",{className:`${_e}-body`,onContextMenu:l,role:"rowGroup",children:n==null?void 0:n.map(C=>(0,U.jsx)(wt,{columnMap:y,columns:t,offset:o(C),onClick:u,virtualColSpan:h,onToggleGroup:d,row:C},C[po]))})]})};var fn=require("@vuu-ui/vuu-popups"),_=require("@vuu-ui/vuu-utils"),L=require("react");var ze=require("@vuu-ui/vuu-data"),te=require("@vuu-ui/vuu-utils"),k=require("react"),{SELECTED:Te}=te.metadataKeys;function Vt({dataSource:e,onConfigChange:t,onFeatureEnabled:n,onFeatureInvocation:o,onSizeChange:r,onSubscribed:i,range:s={from:0,to:0},renderBufferSize:l=0,viewportRowCount:a}){let[,u]=(0,k.useState)(null),c=(0,k.useRef)(!0),d=(0,k.useRef)(!1),p=(0,k.useRef)({from:0,to:0}),h=(0,k.useRef)(null),b=(0,k.useRef)([]),g=(0,k.useMemo)(()=>new Je((0,te.getFullRange)(s)),[]),x=(0,k.useCallback)(v=>{for(let P of v)g.add(P);b.current=g.data,d.current=!0},[g]),y=(0,k.useCallback)(v=>{v.type==="subscribed"?i==null||i(v):v.type==="viewport-update"?(typeof v.size=="number"&&(r==null||r(v.size),g.setRowCount(v.size)),v.rows?x(v.rows):typeof v.size=="number"&&(b.current=g.data,d.current=!0)):(0,ze.isVuuFeatureAction)(v)?n==null||n(v):(0,ze.isVuuFeatureInvocation)(v)?o==null||o(v):console.log(`useDataSource unexpected message ${v.type}`)},[g,n,o,r,i,x]);(0,k.useEffect)(()=>()=>{h.current&&(cancelAnimationFrame(h.current),h.current=null),c.current=!1},[]);let m=(0,k.useCallback)(()=>{c.current&&(d.current&&(u({}),d.current=!1),h.current=requestAnimationFrame(m))},[u]);(0,k.useEffect)(()=>{h.current=requestAnimationFrame(m)},[m]);let C=(0,k.useCallback)(v=>{let{from:P}=e.range,A={from:P,to:P+v},E=(0,te.getFullRange)(A,l);g.setRange(E),e.range=p.current=E,e.emit("range",A)},[e,g,l]),T=(0,k.useCallback)(v=>{let P=(0,te.getFullRange)(v,l);g.setRange(P),e.range=p.current=P,e.emit("range",v)},[e,g,l]),w=(0,k.useCallback)(()=>g.getSelectedRows(),[g]);return(0,k.useEffect)(()=>{e==null||e.subscribe({range:p.current},y)},[e,y,t]),(0,k.useEffect)(()=>{C(a)},[C,a]),{data:b.current,getSelectedRows:w,range:p.current,setRange:T,dataSource:e}}var Je=class{constructor({from:t,to:n}){this.rowCount=0;this.setRowCount=t=>{t<this.data.length&&(this.data.length=t),this.rowCount=t};this.range=new te.WindowRange(t,n),this.data=new Array(n-t),this.rowCount=0}add(t){var o;let[n]=t;if(this.isWithinRange(n)){let r=n-this.range.from;this.data[r]=t;let i=t[Te],s=(o=this.data[r-1])==null?void 0:o[Te];s===0&&i?this.data[r-1][Te]=2:s===2&&!i&&(this.data[r-1][Te]=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:n}){if(t!==this.range.from||n!==this.range.to){let[o,r]=this.range.overlap(t,n),i=new Array(Math.max(0,n-t));for(let s=o;s<r;s++){let l=this.getAtIndex(s);if(l){let a=s-t;i[a]=l}}this.data=i,this.range.from=t,this.range.to=n}}getSelectedRows(){return this.data.filter(t=>t[Te]===1)}};var It=require("@heswell/salt-lab"),pe=require("react"),Wt=({onDrop:e})=>{let t=(0,pe.useRef)(),n=(0,pe.useRef)(null),o=(0,pe.useCallback)(()=>{console.log("handleDropSettle"),t.current=void 0,n.current=null},[]),{draggable:r,draggedItemIndex:i,onMouseDown:s}=(0,It.useDragDrop)({allowDragDrop:!0,draggableClassName:"vuuTable-headerCell",orientation:"horizontal",containerRef:n,itemQuery:".vuuTable-headerCell",onDrop:e,onDropSettle:o}),l=(0,pe.useCallback)(a=>{let{clientX:u,clientY:c}=a;console.log("useDraggableColumn handleHeaderCellDragStart means mouseDown fired on a column in RowBasedTable");let p=a.target.closest(".vuuTable-headerCell");n.current=p==null?void 0:p.closest("[role='row']");let{dataset:{idx:h="-1"}}=p;t.current={clientX:u,clientY:c,idx:h},s==null||s(a)},[s]);return{draggable:r,draggedItemIndex:i,onHeaderCellDragStart:l}};var Ut=require("@vuu-ui/vuu-utils"),z=require("react");function fo(e,...t){let n=new Set(e);for(let o of t)for(let r of o)n.add(r);return n}var Xe="ArrowUp",Ye="ArrowDown",Qe="ArrowLeft",je="ArrowRight";var Ze="Home",qe="End",et="PageUp",tt="PageDown";var go=new Set(["Enter","Delete"," "]),Co=new Set(["Tab"]),bo=new Set(["ArrowRight","ArrowLeft"]),Ot=new Set([Ze,qe,et,tt,Ye,Qe,je,Xe]),ho=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),hs=fo(go,Ot,bo,ho,Co);var vo=["Home","End","PageUp","PageDown"],$t=e=>vo.includes(e),Gt=e=>Ot.has(e);var Bt=e=>`.vuuTable-headers .vuuTable-headerCell:nth-child(${e+1})`,yo=(e,t)=>`.vuuTable-body > [aria-rowindex='${e}'] > [role='cell']:nth-child(${t+1})`,wo=[-1,-1];function Mo(e,[t,n],o,r){return e===Xe?t>-1?[t-1,n]:[t,n]:e===Ye?t===-1?[0,n]:t===r-1?[t,n]:[t+1,n]:e===je?n<o-1?[t,n+1]:[t,n]:e===Qe?n>0?[t,n-1]:[t,n]:[t,n]}var _t=({columnCount:e=0,containerRef:t,disableHighlightOnFocus:n,data:o,requestScroll:r,rowCount:i=0,viewportRange:s})=>{var E;let{from:l,to:a}=s,u=(0,z.useRef)([-1,-1]),c=(0,z.useRef)(),d=(0,z.useRef)([-1,0]),p=(0,z.useCallback)(([f,M])=>{var R;let S=f===-1?Bt(M):yo(f,M);return(R=t.current)==null?void 0:R.querySelector(S)},[t]),h=f=>f==null?void 0:f.closest("[role='columnHeader'],[role='cell']"),b=f=>{var M,S;if(f.role==="columnHeader")return[-1,parseInt((M=f.dataset.idx)!=null?M:"-1",10)];{let R=f.closest("[role='row']");if(R){let I=parseInt((S=R.ariaRowIndex)!=null?S:"-1",10),ve=Array.from(R.childNodes).indexOf(f);return[I,ve]}}return wo},g=(0,z.useCallback)(f=>{var M;if(t.current){let S=p(f);S?(S!==c.current&&((M=c.current)==null||M.setAttribute("tabindex",""),c.current=S,S.setAttribute("tabindex","0")),S.focus()):(0,Ut.withinRange)(f[0],s)||(c.current=void 0,r==null||r({type:"scroll-page",direction:"up"}))}},[t,p,r,s]),x=(0,z.useCallback)((f,M,S=!1)=>{let R=[f,M];d.current=R,g(R),S&&(u.current=R)},[g]),y=(0,z.useCallback)(()=>{var f;(f=c.current)==null||f.setAttribute("tabindex",""),c.current=void 0},[]),m=(0,z.useCallback)(async(f,M)=>{switch(f){case tt:r==null||r({type:"scroll-page",direction:"down"});break;case et:r==null||r({type:"scroll-page",direction:"up"});break;case Ze:r==null||r({type:"scroll-end",direction:"home"});break;case qe:r==null||r({type:"scroll-end",direction:"end"});break}return M},[r]),C=(0,z.useCallback)(()=>{var f;if(n!==!0&&(f=t.current)!=null&&f.contains(document.activeElement)){let M=h(document.activeElement);M&&(u.current=b(M))}},[n,t]),T=(0,z.useCallback)(async f=>{let[M,S]=$t(f)?await m(f,d.current):Mo(f,d.current,e,i),[R,I]=d.current;(M!==R||S!==I)&&x(M,S,!0)},[e,m,i,x]),w=(0,z.useCallback)(f=>{o.length>0&&Gt(f.key)&&(f.preventDefault(),f.stopPropagation(),T(f.key))},[o,T]),v=(0,z.useCallback)(f=>{let M=f.target,S=h(M);if(S){let[R,I]=b(S);x(R,I)}},[x]),P=(0,z.useMemo)(()=>({onClick:v,onFocus:C,onKeyDown:w}),[v,C,w]);(0,z.useLayoutEffect)(()=>{let{current:f}=d,M=f[0]>=l&&f[0]<=a;c.current&&!M?y():!c.current&&M&&g(f)},[g,l,a,y]);let A=((E=t.current)==null?void 0:E.firstChild)!=null;return(0,z.useEffect)(()=>{var f;if(A&&c.current===void 0){let M=(f=t.current)==null?void 0:f.querySelector(Bt(0));M&&(M.setAttribute("tabindex","0"),c.current=M)}},[t,A]),P};var fe=require("react");var le=require("react");var ie=new Map,Xt=(e,t,n)=>{switch(n){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}},Jt=new ResizeObserver(e=>{for(let t of e){let{target:n,borderBoxSize:o,contentBoxSize:r}=t,i=ie.get(n);if(i){let[{blockSize:s,inlineSize:l}]=o,[{blockSize:a,inlineSize:u}]=r,{onResize:c,measurements:d}=i,p=!1;for(let[h,b]of Object.entries(d)){let g=Xt(n,{height:s,width:l,contentHeight:a,contentWidth:u},h);g!==b&&(p=!0,d[h]=g)}p&&c&&c(d)}}});function Yt(e,t,n,o=!1){let r=(0,le.useRef)(t),i=(0,le.useCallback)(s=>{let{width:l,height:a}=s.getBoundingClientRect(),{clientWidth:u,clientHeight:c}=s;return r.current.reduce((d,p)=>(d[p]=Xt(s,{width:l,height:a,contentHeight:c,contentWidth:u},p),d),{})},[]);(0,le.useEffect)(()=>{let s=e.current;async function l(){ie.set(s,{measurements:{}}),await document.fonts.ready;let a=ie.get(s);if(a){let u=i(s);a.measurements=u,Jt.observe(s),o&&n(u)}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(ie.has(s))throw Error("useResizeObserver attemping to observe same element twice");l()}return()=>{s&&ie.has(s)&&(Jt.unobserve(s),ie.delete(s))}},[i,e]),(0,le.useEffect)(()=>{let s=e.current,l=ie.get(s);if(l){if(r.current!==t){r.current=t;let a=i(s);l.measurements=a}l.onResize=n}},[t,i,e,n])}var Ro=["clientHeight","clientWidth"],Qt=e=>Number.isFinite(e),nt=({defaultHeight:e=0,defaultWidth:t=0,height:n,width:o})=>{let r=(0,fe.useRef)(null),[i,s]=(0,fe.useState)({outer:{height:n!=null?n:"100%",width:o!=null?o:"100%"}}),l=(0,fe.useCallback)(({clientWidth:a,clientHeight:u})=>{console.log(`Resize ${u}`),s(c=>{let{inner:d,outer:p}=c;return Qt(u)&&Qt(a)&&(a!==(d==null?void 0:d.width)||u!==(d==null?void 0:d.height))?{outer:p,inner:{width:Math.floor(a)||t,height:Math.floor(u)||e}}:c})},[e,t]);return Yt(r,Ro,l,!0),{containerRef:r,outerSize:i.outer,innerSize:i.inner}};var ge=require("@vuu-ui/vuu-utils"),De=require("react"),{IDX:To,SELECTED:Do}=ge.metadataKeys,xo=[],jt=({selectionModel:e,onSelectionChange:t})=>{let n=(0,De.useRef)(-1),o=(0,De.useRef)(xo);return(0,De.useCallback)((i,s,l)=>{let{[To]:a,[Do]:u}=i,{current:c}=n,{current:d}=o,h=(u?ge.deselectItem:ge.selectItem)(e,d,a,s,l,c);o.current=h,n.current=a,t&&t(h)},[t,e])};var Zt=require("@heswell/salt-lab"),D=require("@vuu-ui/vuu-utils"),qt=require("react"),{info:ot}=(0,D.logger)("useTableModel"),Ho=100,en=D.metadataKeys.count,Po=({serverDataType:e})=>e===void 0,Eo=e=>{var t;if((0,D.isTypeDescriptor)(e.type))return(0,D.getCellRenderer)((t=e.type)==null?void 0:t.renderer)},So=(e,t,n)=>{var r;let o=t.indexOf(e.name);return o!==-1&&n[o]?n[o]:(r=e.serverDataType)!=null?r:"string"},Ao=["int","long","double"],tn=e=>e===void 0?void 0:Ao.includes(e)?"right":"left",Lo=(e,t)=>{switch(ot==null||ot(`GridModelReducer ${t.type}`),t.type){case"init":return on(t);case"moveColumn":return Ko(e,t);case"resizeColumn":return Fo(e,t);case"setTypes":return Vo(e,t);case"hideColumns":return zo(e,t);case"showColumns":return No(e,t);case"pinColumn":return Io(e,t);case"updateColumnProp":return xe(e,t);case"tableConfig":return sn(e,t);default:return console.log(`unhandled action ${t.type}`),e}},nn=(e,t)=>{let[n,o]=(0,qt.useReducer)(Lo,{tableConfig:e,dataSourceConfig:t},on);return{columns:n.columns,dispatchColumnAction:o,headings:n.headings}};function on({dataSourceConfig:e,tableConfig:t}){let n=t.columns.map(rn(t)),o=n.some(D.isPinned)?(0,D.sortPinnedColumns)(n):n,r={columns:o,headings:(0,D.getTableHeadings)(o)};if(e){let{columns:i,...s}=e;return sn(r,{type:"tableConfig",...s})}else return r}var ko=(e,t)=>t==="uppercase"?e.toUpperCase():t==="capitalize"?e[0].toUpperCase()+e.slice(1).toLowerCase():e,rn=e=>(t,n)=>{let{columnDefaultWidth:o=Ho,columnFormatHeader:r}=e,{align:i=tn(t.serverDataType),key:s,name:l,label:a=l,width:u=o,...c}=t,d={...c,align:i,CellRenderer:Eo(t),label:ko(a,r),key:s!=null?s:n+en,name:l,originalIdx:n,valueFormatter:(0,D.getValueFormatter)(t),width:u};return(0,D.isGroupColumn)(d)&&(d.columns=d.columns.map(p=>rn(e)(p,p.key))),d};function Ko(e,{column:t,moveBy:n,moveTo:o}){let{columns:r}=e;if(typeof n=="number"){let i=r.indexOf(t),s=r.slice(),[l]=s.splice(i,1);return s.splice(i+n,0,l),{...e,columns:s}}else if(typeof o=="number"){let i=r.indexOf(t);return{...e,columns:(0,Zt.moveItem)(r,i,o)}}return e}function zo(e,{columns:t}){return t.some(n=>n.hidden!==!0)?t.reduce((n,o)=>o.hidden!==!0?xe(n,{type:"updateColumnProp",column:o,hidden:!0}):n,e):e}function No(e,{columns:t}){return t.some(n=>n.hidden)?t.reduce((n,o)=>o.hidden?xe(n,{type:"updateColumnProp",column:o,hidden:!1}):n,e):e}function Fo(e,{column:t,phase:n,width:o}){let r="updateColumnProp",i=n!=="end";switch(n){case"begin":case"end":return xe(e,{type:r,column:t,resizing:i});case"resize":return xe(e,{type:r,column:t,width:o});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${n}`)}}function Vo(e,{columnNames:t,serverDataTypes:n}){let{columns:o}=e;if(o.some(Po)){let r=o.map(i=>{var l;let s=So(i,t,n);return{...i,align:(l=i.align)!=null?l:tn(s),serverDataType:s}});return{...e,columns:r}}else return e}function Io(e,t){let{columns:n}=e,{column:o,pin:r}=t,i=n.find(s=>s.name===o.name);return i?(n=Ce(n,{...i,pin:r}),n=(0,D.sortPinnedColumns)(n),{...e,columns:n}):e}function xe(e,t){let{columns:n}=e,{align:o,column:r,hidden:i,label:s,resizing:l,width:a}=t,u=n.find(c=>c.name===r.name);return u&&((o==="left"||o==="right")&&(n=Ce(n,{...u,align:o})),typeof s=="string"&&(n=Ce(n,{...u,label:s})),typeof l=="boolean"&&(n=Ce(n,{...u,resizing:l})),typeof i=="boolean"&&(n=Ce(n,{...u,hidden:i})),typeof a=="number"&&(n=Ce(n,{...u,width:a}))),{...e,columns:n}}function sn(e,{columns:t,confirmed:n,filter:o,groupBy:r,sort:i}){let s=t&&t.length>0,l=r!==void 0,a=typeof(o==null?void 0:o.filter)=="string",u=i&&i.sortDefs.length>0,c=e;return s&&(c={...e,columns:t.map((d,p)=>{let h=(0,D.getColumnName)(d),b=p+en,g=(0,D.findColumn)(c.columns,h);if(g)return g.key===b?g:{...g,key:b};throw Error(`useTableModel column ${d} not found`)})}),l&&(c={...e,columns:(0,D.applyGroupByToColumns)(c.columns,r,n)}),u&&(c={...e,columns:(0,D.applySortToColumns)(c.columns,i)}),a?c={...e,columns:(0,D.applyFilterToColumns)(c.columns,o)}:c.columns.some(D.isFilteredColumn)&&(c={...e,columns:(0,D.stripFilterFromColumns)(c.columns)}),c}function Ce(e,t){return e.map(n=>n.name===t.name?t:n)}var V=require("react"),ln=e=>{let{scrollLeft:t,scrollTop:n}=e,{clientHeight:o,clientWidth:r,scrollHeight:i,scrollWidth:s}=e,l=t/(s-r),a=n/(i-o);return[l,a]},Wo=e=>{let{clientHeight:t,clientWidth:n,scrollHeight:o,scrollWidth:r}=e;return[r-n,o-t]},an=({onAttach:e,onDetach:t})=>{let n=(0,V.useRef)(null);return(0,V.useCallback)(r=>{if(r)n.current=r,e==null||e(r);else if(n.current){let{current:i}=n;n.current=r,t==null||t(i)}},[e,t])},cn=({onHorizontalScroll:e,onVerticalScroll:t,viewport:n})=>{let o=(0,V.useRef)(!1),r=(0,V.useRef)({scrollTop:0,scrollLeft:0}),i=(0,V.useRef)(null),s=(0,V.useRef)(null),{maxScrollContainerScrollHorizontal:l,maxScrollContainerScrollVertical:a}=n,u=(0,V.useCallback)(()=>{let{current:m}=s,{current:C}=i,{current:T}=o;if(T)o.current=!1;else if(m&&C){let[w,v]=ln(C),[P,A]=Wo(m),E=Math.round(w*P),f=Math.round(v*A);m.scrollTo({left:E,top:f,behavior:"auto"})}},[]),c=(0,V.useCallback)(()=>{let{current:m}=s,{current:C}=i,{current:T}=r;if(m&&C){let{scrollLeft:w,scrollTop:v}=m,[P,A]=ln(m);o.current=!0,C.scrollLeft=Math.round(P*l),C.scrollTop=Math.round(A*a),T.scrollTop!==v&&(T.scrollTop=v,t==null||t(v,A)),T.scrollLeft!==w&&(T.scrollLeft=w,e==null||e(w))}},[l,a,e,t]),d=(0,V.useCallback)(m=>{i.current=m,m.addEventListener("scroll",u,{passive:!0})},[u]),p=(0,V.useCallback)(m=>{i.current=null,m.removeEventListener("scroll",u)},[u]),h=(0,V.useCallback)(m=>{s.current=m,m.addEventListener("scroll",c,{passive:!0})},[c]),b=(0,V.useCallback)(m=>{s.current=null,m.removeEventListener("scroll",c)},[c]),g=an({onAttach:h,onDetach:b}),x=an({onAttach:d,onDetach:p}),y=(0,V.useCallback)(m=>{let{current:C}=s;if(C){if(o.current=!1,m.type==="scroll-page"){let{clientHeight:T,scrollLeft:w,scrollTop:v}=C,{direction:P}=m,A=P==="down"?T:-T,E=Math.min(Math.max(0,v+A),a);C.scrollTo({top:E,left:w,behavior:"auto"})}else if(m.type==="scroll-end"){let{direction:T}=m,w=T==="end"?a:0;C.scrollTo({top:w,left:C.scrollLeft,behavior:"auto"})}}},[a]);return{scrollbarContainerRef:x,contentContainerRef:g,requestScroll:y}};var Q=require("react"),Ne=require("@vuu-ui/vuu-utils"),Oo=15e5,$o={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},Go=e=>{let t=0,n=0,o=0;for(let r of e){let{hidden:i,pin:s,width:l}=r,a=i?0:l;s==="left"?t+=a:s==="right"?n+=a:o+=a}return{pinnedWidthLeft:t,pinnedWidthRight:n,unpinnedWidth:o}},un=({columns:e,headerHeight:t,headings:n,rowCount:o,rowHeight:r,size:i})=>{let s=(0,Q.useRef)(0),a=Math.min(o,Oo)*r,c=o*r-a,{pinnedWidthLeft:d,pinnedWidthRight:p,unpinnedWidth:h}=(0,Q.useMemo)(()=>Go(e),[e]),[b,g]=(0,Q.useMemo)(()=>(0,Ne.actualRowPositioning)(r),[r]),[x,y]=(0,Q.useMemo)(()=>c?(0,Ne.virtualRowPositioning)(r,c,s):[b,g],[g,b,c,r]),m=(0,Q.useCallback)(C=>{s.current=C},[]);return(0,Q.useMemo)(()=>{var C;if(i){let T=n.length,w=15,v=d+h+p,P=v>i.width?w:0,A=t*(1+T),E=a-(((C=i==null?void 0:i.height)!=null?C:0)-P)+A,f=v-i.width+d,M=(i.height-t)/r,S=Number.isInteger(M)?M+1:Math.ceil(M),R=i.height-A,I=a>R?w:0;return{contentHeight:a,getRowAtPosition:y,getRowOffset:x,horizontalScrollbarHeight:P,maxScrollContainerScrollHorizontal:f,maxScrollContainerScrollVertical:E,pinnedWidthLeft:d,pinnedWidthRight:p,rowCount:S,contentWidth:v,setPctScrollTop:m,totalHeaderHeight:A,verticalScrollbarWidth:I,viewportBodyHeight:R}}else return $o},[i,n.length,d,h,p,a,t,r,y,x,m])};var He=require("@vuu-ui/vuu-utils"),O=require("react"),mn=({columns:e,getRowAtPosition:t,setRange:n,viewportMeasurements:o})=>{let r=(0,O.useRef)(-1),{rowCount:i,contentWidth:s,maxScrollContainerScrollHorizontal:l}=o,a=s-l,u=(0,O.useRef)(0),[c,d]=(0,O.useMemo)(()=>(0,He.getColumnsInViewport)(e,u.current,u.current+a),[a,e]),p=(0,O.useRef)(d);(0,O.useEffect)(()=>{b(c)},[c]);let[h,b]=(0,O.useState)(c),g=(0,O.useCallback)(y=>{u.current=y;let[m,C]=(0,He.getColumnsInViewport)(e,y,y+a);(0,He.itemsChanged)(h,m)&&(p.current=C,b(m))},[a,e,h]),x=(0,O.useCallback)(y=>{let m=t(y);m!==r.current&&(r.current=m,n({from:m,to:m+i}))},[t,n,i]);return{columnsWithinViewport:h,onHorizontalScroll:g,onVerticalScroll:x,virtualColSpan:p.current}};var Bo=[],{KEY:Uo,IS_EXPANDED:dn,IS_LEAF:pn}=_.metadataKeys,gn=({config:e,dataSource:t,headerHeight:n,onConfigChange:o,onFeatureEnabled:r,onFeatureInvocation:i,onSelectionChange:s,renderBufferSize:l=0,rowHeight:a,selectionModel:u,...c})=>{var lt,at;let[d,p]=(0,L.useState)(0),h=(0,L.useRef)(!1),b=(0,L.useRef)();if(b.current=t,t===void 0)throw Error("no data source provided to DataTable");let g=nt(c),x=(0,L.useCallback)(H=>{p(H)},[]),{columns:y,dispatchColumnAction:m,headings:C}=nn(e,t.config),T=(0,L.useCallback)(H=>{h.current=!0,m(H)},[m]),w=pt({dataSource:t,onPersistentColumnOperation:T}),{getRowAtPosition:v,getRowOffset:P,setPctScrollTop:A,...E}=un({columns:y,headerHeight:n,headings:C,rowCount:d,rowHeight:a,size:g.innerSize}),f=(0,L.useCallback)(H=>{if(H.tableMeta){let{columns:K,dataTypes:W}=H.tableMeta;h.current=!0,m({type:"setTypes",columnNames:K,serverDataTypes:W})}},[m]),M=(0,L.useCallback)(H=>{t.select(H),s==null||s(H)},[t,s]),S=jt({onSelectionChange:M,selectionModel:u}),{data:R,getSelectedRows:I,range:ve,setRange:Ve}=Vt({dataSource:t,onFeatureEnabled:r,onFeatureInvocation:i,onSubscribed:f,onSizeChange:x,renderBufferSize:l,viewportRowCount:E.rowCount}),rt=(0,L.useRef)();rt.current=R;let yn=(0,L.useCallback)((H,K=!1,W)=>{t&&(t.sort=(0,_.applySort)(t.sort,H,K,W))},[t]),wn=(0,L.useCallback)((H,K,W)=>{let N=y.find(J=>J.name===K);if(N)H==="end"&&(h.current=!0),m({type:"resizeColumn",phase:H,column:N,width:W});else throw Error(`useDataTable.handleColumnResize, column ${K} not found`)},[y,m]),Mn=(0,L.useCallback)((H,K)=>{let W=(0,_.isJsonGroup)(K,H),N=H[Uo];if(H[dn]){if(t.closeTreeNode(N,!0),W){let J=y.indexOf(K);t.getRowsAtDepth(J+1).some(X=>X[dn]||X[pn])||m({type:"hideColumns",columns:y.slice(J+2)})}}else if(t.openTreeNode(N),W){let J=t.getChildRows(N),ne=y.indexOf(K)+1,X=[y[ne]];J.some(ce=>ce[pn])&&X.push(y[ne+1]),X.some(ce=>ce.hidden)&&m({type:"showColumns",columns:X})}},[y,t,m]),{onVerticalScroll:st,onHorizontalScroll:Rn,columnsWithinViewport:Tn,virtualColSpan:Dn}=mn({columns:y,getRowAtPosition:v,setRange:Ve,viewportMeasurements:E}),xn=(0,L.useCallback)((H,K)=>{A(K),st(H)},[st,A]),{requestScroll:Hn,...Pn}=cn({onHorizontalScroll:Rn,onVerticalScroll:xn,viewport:E,viewportHeight:((at=(lt=g.innerSize)==null?void 0:lt.height)!=null?at:0)-n}),En=_t({columnCount:y.length,containerRef:g.containerRef,data:R,requestScroll:Hn,rowCount:t==null?void 0:t.size,viewportRange:ve}),Sn=(0,L.useCallback)(H=>{H?t&&t.groupBy.includes(H.name)&&(t.groupBy=t.groupBy.filter(K=>K!==H.name)):t.groupBy=[]},[t]),An=(0,L.useCallback)((H,K)=>{let W=t.columns[H],N=(0,_.moveItem)(t.columns,W,K);N!==t.columns&&(t.columns=N,m({type:"tableConfig",columns:N}))},[t,m]),Ln=Wt({onDrop:An});(0,L.useEffect)(()=>{b.current&&(h.current=!0,m({type:"init",tableConfig:e,dataSourceConfig:b.current.config}))},[e,m]),(0,L.useEffect)(()=>{t.on("config",(H,K)=>{h.current=!0,m({type:"tableConfig",...H,confirmed:K})})},[t,m]),(0,L.useMemo)(()=>{h.current&&(o==null||o({...e,columns:y}),h.current=!1)},[y,e,o]);let it=(0,fn.useContextMenu)(),kn=(0,L.useCallback)(H=>{var X;let{current:K}=rt,{current:W}=b,N=H.target,J=N==null?void 0:N.closest("div[role='cell']"),ne=N==null?void 0:N.closest(".vuuTableRow");if(J&&ne&&K&&W){let{columns:ce,selectedRowsCount:Kn}=W,zn=(0,_.buildColumnMap)(ce),Nn=parseInt((X=ne.ariaRowIndex)!=null?X:"-1"),Fn=Array.from(ne.childNodes).indexOf(J),Vn=K.find(([Wn])=>Wn===Nn),In=ce[Fn];it(H,"grid",{columnMap:zn,columnName:In,row:Vn,selectedRows:Kn===0?Bo:I(),viewport:t==null?void 0:t.viewport})}},[t==null?void 0:t.viewport,I,it]);return{containerMeasurements:g,containerProps:En,columns:y,columnsWithinViewport:Tn,data:R,dispatchColumnAction:m,getRowOffset:P,handleContextMenuAction:w,headings:C,onColumnResize:wn,onContextMenu:kn,onRemoveColumnFromGroupBy:Sn,onRowClick:S,onSort:yn,onToggleGroup:Mn,virtualColSpan:Dn,scrollProps:Pn,rowCount:d,viewportMeasurements:E,...Ln}};var bn=Z(require("classnames"));var hn=require("@vuu-ui/vuu-utils"),j=require("react/jsx-runtime"),ae="vuuTable",_o=({allowConfigEditing:e=!1,className:t,config:n,dataSource:o,headerHeight:r=25,height:i,id:s,onConfigChange:l,onFeatureEnabled:a,onFeatureInvocation:u,onSelectionChange:c,onShowConfigEditor:d,renderBufferSize:p=0,rowHeight:h=20,selectionModel:b="extended",style:g,width:x,zebraStripes:y=!1,...m})=>{let C=(0,Fe.useIdMemo)(s),{containerMeasurements:{containerRef:T,innerSize:w,outerSize:v},containerProps:P,dispatchColumnAction:A,draggable:E,draggedItemIndex:f,handleContextMenuAction:M,scrollProps:S,viewportMeasurements:R,...I}=gn({config:n,dataSource:o,renderBufferSize:p,headerHeight:r,height:i,onConfigChange:l,onFeatureEnabled:a,onFeatureInvocation:u,onSelectionChange:c,rowHeight:h,selectionModel:b,width:x}),ve={...v,"--content-height":`${R.contentHeight}px`,"--horizontal-scrollbar-height":`${R.horizontalScrollbarHeight}px`,"--content-width":`${R.contentWidth}px`,"--pinned-width-left":`${R.pinnedWidthLeft}px`,"--pinned-width-right":`${R.pinnedWidthRight}px`,"--header-height":`${r}px`,"--row-height":`${h}px`,"--table-height":`${w==null?void 0:w.height}px`,"--table-width":`${w==null?void 0:w.width}px`,"--total-header-height":`${R.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${R.verticalScrollbarWidth}px`,"--viewport-body-height":`${R.viewportBodyHeight}px`},Ve=(0,bn.default)(ae,t,{[`${ae}-zebra`]:y,[`${ae}-loading`]:(0,hn.isDataLoading)(I.columns)});return(0,j.jsx)(Cn.ContextMenuProvider,{menuActionHandler:M,menuBuilder:mt(o),children:(0,j.jsxs)("div",{...m,...P,className:Ve,id:C,ref:T,style:ve,tabIndex:-1,children:[w?(0,j.jsx)("div",{className:`${ae}-scrollbarContainer`,ref:S.scrollbarContainerRef,children:(0,j.jsx)("div",{className:`${ae}-scrollbarContent`})}):null,w?(0,j.jsxs)("div",{className:`${ae}-contentContainer`,ref:S.contentContainerRef,children:[(0,j.jsx)(Ft,{...I,headerHeight:r,tableId:C}),E]}):null,e&&w?(0,j.jsx)(Fe.Button,{className:`${ae}-settings`,"data-icon":"settings",onClick:d,variant:"secondary"}):null]})})};var vn=Z(require("classnames")),he=require("@vuu-ui/vuu-utils");var be=require("react/jsx-runtime"),Pe="vuuJsonCell",{IS_EXPANDED:Jo,KEY:Xo}=he.metadataKeys,Yo=e=>{let t=e.lastIndexOf("|");return t===-1?"":e.slice(t+1)},Qo=({column:e,row:t})=>{let{key:n}=e,o=t[n],r=!1;(0,he.isJsonAttribute)(o)&&(o=o.slice(0,-1),r=!0);let i=Yo(t[Xo]),s=(0,vn.default)({[`${Pe}-name`]:i===o,[`${Pe}-value`]:i!==o,[`${Pe}-group`]:r});if(r){let l=t[Jo]?"minus-box":"plus-box";return(0,be.jsxs)("span",{className:s,children:[(0,be.jsx)("span",{className:`${Pe}-value`,children:o}),(0,be.jsx)("span",{className:`${Pe}-toggle`,"data-icon":l})]})}else return o?(0,be.jsx)("span",{className:s,children:o}):null};(0,he.registerComponent)("json",Qo,"cell-renderer",{});
|
|
1
|
+
"use strict";var On=Object.create;var Se=Object.defineProperty;var Gn=Object.getOwnPropertyDescriptor;var Bn=Object.getOwnPropertyNames;var Un=Object.getPrototypeOf,_n=Object.prototype.hasOwnProperty;var Jn=(e,t)=>{for(var n in t)Se(e,n,{get:t[n],enumerable:!0})},pt=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Bn(t))!_n.call(e,r)&&r!==n&&Se(e,r,{get:()=>t[r],enumerable:!(o=Gn(t,r))||o.enumerable});return e};var q=(e,t,n)=>(n=e!=null?On(Un(e)):{},pt(t||!e||!e.__esModule?Se(n,"default",{value:e,enumerable:!0}):n,e)),Xn=e=>pt(Se({},"__esModule",{value:!0}),e);var tr={};Jn(tr,{Table:()=>Qo,buildContextMenuDescriptors:()=>Ge,useMeasuredContainer:()=>st,useTableContextMenu:()=>Ue,useTableModel:()=>lt,useTableViewport:()=>ct});module.exports=Xn(tr);var ft=require("@vuu-ui/vuu-utils"),Ge=e=>(t,n)=>{let o=[];if(e===void 0)return o;if(t==="header")o.push(...Yn(n,e)),o.push(...jn(n,e)),o.push(...Qn(n,e)),o.push(...Zn(n));else if(t==="filter"){let{column:r,filter:i}=n,s=(i==null?void 0:i.column)===(r==null?void 0:r.name);o.push({label:"Edit filter",action:"filter-edit",options:n}),o.push({label:"Remove filter",action:"filter-remove-column",options:n}),r&&!s&&o.push({label:"Remove all filters",action:"remove-filters",options:n})}return o};function Yn(e,{sort:{sortDefs:t}}){let{column:n}=e,o=[];if(n===void 0)return o;let r=t.length>0;return n.sorted==="A"?o.push({label:"Reverse Sort (DSC)",action:"sort-dsc",options:e}):n.sorted==="D"?o.push({label:"Reverse Sort (ASC)",action:"sort-asc",options:e}):typeof n.sorted=="number"?(n.sorted>0?o.push({label:"Reverse Sort (DSC)",action:"sort-add-dsc",options:e}):o.push({label:"Reverse Sort (ASC)",action:"sort-add-asc",options:e}),r&&Math.abs(n.sorted)<t.length&&o.push({label:"Remove from sort",action:"sort-remove",options:e}),o.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]})):r?(o.push({label:"Add to sort",children:[{label:"Ascending",action:"sort-add-asc",options:e},{label:"Descending",action:"sort-add-dsc",options:e}]}),o.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]})):o.push({label:"Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]}),o}function Qn(e,t){let{column:n}=e;if(n===void 0||t.groupBy.length===0)return[];let{name:o,label:r=o}=n;return[{label:`Aggregate ${r}`,children:[{label:"Count",action:"agg-count",options:e}].concat((0,ft.isNumericColumn)(n)?[{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 Be=(e,t)=>({label:`Pin ${t}`,action:`column-pin-${t}`,options:e}),We=e=>Be(e,"left"),$e=e=>Be(e,"floating"),Oe=e=>Be(e,"right");function Zn(e){let{column:t}=e;if(t===void 0)return[];let{pin:n}=t,o=[{label:"Hide column",action:"column-hide",options:e},{label:"Remove column",action:"column-remove",options:e}];return n===void 0?o.push({label:"Pin column",children:[We(e),$e(e),Oe(e)]}):n==="left"?o.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[$e(e),Oe(e)]}):n==="right"?o.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[We(e),$e(e)]}):n==="floating"&&o.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[We(e),Oe(e)]}),o}function jn(e,{groupBy:t}){let{column:n}=e,o=[];if(n===void 0)return o;let{name:r,label:i=r}=n;return t.length===0?o.push({label:`Group by ${i}`,action:"group",options:e}):o.push({label:`Add ${i} to group by`,action:"group-add",options:e}),o}var gt=require("@vuu-ui/vuu-filters"),I=require("@vuu-ui/vuu-utils"),qn=(e,t)=>{if(e.filterStruct&&t){let[n,o]=(0,gt.removeColumnFromFilter)(t,e.filterStruct);return{filter:o,filterStruct:n}}else return e},{Average:eo,Count:to,High:no,Low:oo,Sum:ro}=I.AggregationType,Ue=({dataSource:e,onPersistentColumnOperation:t})=>(o,r)=>{let i=r;if(i.column&&e){let{column:s}=i;switch(o){case"sort-asc":return e.sort=(0,I.setSortColumn)(e.sort,s,"A"),!0;case"sort-dsc":return e.sort=(0,I.setSortColumn)(e.sort,s,"D"),!0;case"sort-add-asc":return e.sort=(0,I.addSortColumn)(e.sort,s,"A"),!0;case"sort-add-dsc":return e.sort=(0,I.addSortColumn)(e.sort,s,"D"),!0;case"group":return e.groupBy=(0,I.addGroupColumn)(e.groupBy,s),!0;case"group-add":return e.groupBy=(0,I.addGroupColumn)(e.groupBy,s),!0;case"column-hide":return t({type:"hideColumns",columns:[s]}),!0;case"column-remove":return e.columns=e.columns.filter(l=>l!==s.name),!0;case"filter-remove-column":return e.filter=qn(e.filter,s),!0;case"remove-filters":return e.filter={filter:""},!0;case"agg-avg":return e.aggregations=(0,I.setAggregations)(e.aggregations,s,eo),!0;case"agg-high":return e.aggregations=(0,I.setAggregations)(e.aggregations,s,no),!0;case"agg-low":return e.aggregations=(0,I.setAggregations)(e.aggregations,s,oo),!0;case"agg-count":return e.aggregations=(0,I.setAggregations)(e.aggregations,s,to),!0;case"agg-sum":return e.aggregations=(0,I.setAggregations)(e.aggregations,s,ro),!0;case"column-pin-floating":return t({type:"pinColumn",column:s,pin:"floating"}),!0;case"column-pin-left":return t({type:"pinColumn",column:s,pin:"left"}),!0;case"column-pin-right":return t({type:"pinColumn",column:s,pin:"right"}),!0;case"column-unpin":return t({type:"pinColumn",column:s,pin:void 0}),!0;default:}}return!1};var Cn=require("@vuu-ui/vuu-popups"),Fe=require("@salt-ds/core");var O=require("@vuu-ui/vuu-utils"),ge=require("react");var G=require("@vuu-ui/vuu-utils"),Mt=q(require("classnames")),Me=require("react");var Ae=require("@vuu-ui/vuu-utils"),bt=require("@heswell/salt-lab"),ht=q(require("classnames")),Y=require("react");var we=require("react/jsx-runtime"),{KEY:Ct}=Ae.metadataKeys,_e=(0,Y.memo)(({className:e,column:t,columnMap:n,onClick:o,row:r})=>{let i=(0,Y.useRef)(null),{align:s,CellRenderer:l,key:a,pin:u,editable:c,resizing:p,valueFormatter:d}=t,[g,h]=(0,Y.useState)(!1),f=d(r[a]),[R,y]=(0,Y.useState)(f),m=()=>{var E;(E=i.current)==null||E.focus()},b=E=>{E.key==="Enter"&&h(!0)},T=(0,Y.useCallback)(E=>{o==null||o(E,t)},[t,o]),w=()=>{h(!0)},v=(E="",C="",M=!0,S=!1)=>{var H;h(!1),S?y(E):C!==E&&y(C),M===!1&&((H=i.current)==null||H.focus())},D=(0,ht.default)(e,{vuuAlignRight:s==="right",vuuPinFloating:u==="floating",vuuPinLeft:u==="left",vuuPinRight:u==="right","vuuTableCell-resizing":p})||void 0,A=(0,Ae.getColumnStyle)(t);return c?(0,we.jsx)("div",{className:D,"data-editable":!0,role:"cell",style:A,onKeyDown:b,children:(0,we.jsx)(bt.EditableLabel,{editing:g,value:R,onChange:y,onMouseDownCapture:m,onEnterEditMode:w,onExitEditMode:v,onKeyDown:b,ref:i,tabIndex:0},"title")}):(0,we.jsx)("div",{className:D,role:"cell",style:A,onClick:T,children:l?(0,we.jsx)(l,{column:t,columnMap:n,row:r}):f})},so);_e.displayName="TableCell";function so(e,t){return e.column===t.column&&e.onClick===t.onClick&&e.row[Ct]===t.row[Ct]&&e.row[e.column.key]===t.row[t.column.key]}var Le=require("@vuu-ui/vuu-utils"),vt=require("react");var pe=require("react/jsx-runtime"),{DEPTH:io,IS_LEAF:yt}=Le.metadataKeys,lo=(e,t)=>{let{[io]:n,[yt]:o}=t;if(o||n>e.length)return[null,n===null?0:n-1];if(n===0)return["$root",0];{let{key:r,valueFormatter:i}=e[n-1];return[i(t[r]),n-1]}},wt=({column:e,onClick:t,row:n})=>{let{columns:o}=e,[r,i]=lo(o,n),s=(0,vt.useCallback)(c=>{t==null||t(c,e)},[e,t]),l=(0,Le.getColumnStyle)(e),a=n[yt],u=Array(i).fill(0).map((c,p)=>(0,pe.jsx)("span",{className:"vuuTableGroupCell-spacer"},p));return(0,pe.jsxs)("div",{className:"vuuTableGroupCell vuuPinLeft",onClick:a?void 0:s,role:"cell",style:l,children:[u,a?null:(0,pe.jsx)("span",{className:"vuuTableGroupCell-toggle","data-icon":"triangle-right"}),(0,pe.jsx)("span",{children:r})]})};var Re=require("react/jsx-runtime"),{IDX:co,IS_EXPANDED:ao,SELECTED:uo}=G.metadataKeys,ke="vuuTableRow",Rt=(0,Me.memo)(function({columnMap:t,columns:n,offset:o,onClick:r,onToggleGroup:i,virtualColSpan:s=0,row:l}){let{[co]:a,[ao]:u,[uo]:c}=l,p=(0,Mt.default)(ke,{[`${ke}-even`]:a%2===0,[`${ke}-expanded`]:u,[`${ke}-preSelected`]:c===2}),d=(0,Me.useCallback)(h=>{let f=h.shiftKey,R=h.ctrlKey||h.metaKey;r==null||r(l,f,R)},[r,l]),g=(0,Me.useCallback)((h,f)=>{((0,G.isGroupColumn)(f)||(0,G.isJsonGroup)(f,l))&&(h.stopPropagation(),i==null||i(l,f))},[i,l]);return(0,Re.jsxs)("div",{"aria-selected":c===1?!0:void 0,"aria-rowindex":a,className:p,onClick:d,role:"row",style:{transform:`translate3d(0px, ${o}px, 0px)`},children:[s>0?(0,Re.jsx)("div",{role:"cell",style:{width:s}}):null,n.filter(G.notHidden).map(h=>{let f=(0,G.isGroupColumn)(h),R=(0,G.isJsonColumn)(h);return(0,Re.jsx)(f?wt:_e,{column:h,columnMap:t,onClick:f||R?g:void 0,row:l},h.name)})]})});var Je=q(require("classnames")),Ht=require("react");var fe=require("react");var Dt=require("react/jsx-runtime"),Tt=()=>{},mo="vuuColumnResizer",Ke=({onDrag:e,onDragEnd:t=Tt,onDragStart:n=Tt})=>{let o=(0,fe.useRef)(0),r=(0,fe.useCallback)(l=>{l.stopPropagation&&l.stopPropagation(),l.preventDefault&&l.preventDefault();let a=Math.round(l.clientX),u=a-o.current;o.current=a,u!==0&&e(l,u)},[e]),i=(0,fe.useCallback)(l=>{window.removeEventListener("mouseup",i),window.removeEventListener("mousemove",r),t(l)},[t,r]),s=(0,fe.useCallback)(l=>{n(l),o.current=Math.round(l.clientX),window.addEventListener("mouseup",i),window.addEventListener("mousemove",r),l.stopPropagation&&l.stopPropagation(),l.preventDefault&&l.preventDefault()},[n,r,i]);return(0,Dt.jsx)("div",{className:mo,"data-align":"end",onMouseDown:s})};var se=require("react"),ze=({column:e,onResize:t,rootRef:n})=>{let o=(0,se.useRef)(0),r=(0,se.useRef)(!1),{name:i}=e,s=(0,se.useCallback)(()=>{if(t&&n.current){let{width:u}=n.current.getBoundingClientRect();o.current=Math.round(u),r.current=!0,t==null||t("begin",i)}},[i,t,n]),l=(0,se.useCallback)((u,c)=>{if(n.current&&t){let{width:p}=n.current.getBoundingClientRect(),d=Math.round(p)+c;d!==o.current&&d>0&&(t("resize",i,d),o.current=d)}},[i,t,n]),a=(0,se.useCallback)(()=>{t&&(t("end",i,o.current),setTimeout(()=>{r.current=!1},100))},[i,t]);return{isResizing:r.current,onDrag:l,onDragStart:s,onDragEnd:a}};var B=require("react/jsx-runtime"),ee="vuuTable-groupHeaderCell",xt=({column:e,onClick:t,...n})=>(0,B.jsx)("span",{...n,className:`${ee}-close`,"data-icon":"close-circle",onClick:()=>t==null?void 0:t(e)}),po=e=>{let{children:t,column:n,className:o}=e;return(0,B.jsxs)("div",{className:(0,Je.default)(`${ee}-col`,o),role:"columnheader",children:[(0,B.jsx)("span",{className:`${ee}-label`,children:n.name}),t]})},Pt=({column:e,className:t,onRemoveColumn:n,onResize:o,...r})=>{let i=(0,Ht.useRef)(null),{isResizing:s,...l}=ze({column:e,onResize:o,rootRef:i}),a=(0,Je.default)(ee,t,{vuuPinLeft:e.pin==="left",[`${ee}-right`]:e.align==="right",[`${ee}-resizing`]:e.resizing,[`${ee}-pending`]:e.groupConfirmed===!1}),{columns:u}=e;return(0,B.jsx)("div",{className:a,ref:i,...r,children:(0,B.jsxs)("div",{className:`${ee}-inner`,children:[u.map(c=>(0,B.jsx)(po,{column:c,children:u.length>1?(0,B.jsx)(xt,{column:c,onClick:n}):null},c.key)),(0,B.jsx)(xt,{"data-align":"end",onClick:n}),e.resizeable!==!1?(0,B.jsx)(Ke,{...l}):null]})})};var Nt=q(require("classnames")),le=require("react");var Xe=q(require("classnames"));var ie=require("react/jsx-runtime"),Et="vuuSortIndicator",St=({sorted:e})=>{if(!e)return null;let t=typeof e=="number"?e<0?"dsc":"asc":e==="A"?"asc":"dsc";return typeof e=="number"?(0,ie.jsxs)("div",{className:(0,Xe.default)(Et,"multi-col",t),children:[(0,ie.jsx)("span",{"data-icon":`sorted-${t}`}),(0,ie.jsx)("span",{className:"vuuSortPosition",children:Math.abs(e)})]}):(0,ie.jsx)("div",{className:(0,Xe.default)(Et,"single-col"),children:(0,ie.jsx)("span",{"data-icon":`sorted-${t}`})})};var It=require("@vuu-ui/vuu-popups");var At=require("@vuu-ui/vuu-popups"),Lt=q(require("classnames")),kt=require("react");var zt=require("react/jsx-runtime");var Kt=({column:e,filter:t})=>{let n=(0,At.useContextMenu)(),o=(0,kt.useCallback)(r=>{r.stopPropagation(),n(r,"filter",{column:e,filter:t})},[e,t,n]);return e.filter?(0,zt.jsx)("div",{className:(0,Lt.default)("vuuFilterIndicator"),"data-icon":"filter",onClick:o}):null};var te=require("react/jsx-runtime"),Te="vuuTable-headerCell",Ft=({column:e,className:t,onClick:n,onDragStart:o,onResize:r,...i})=>{let s=(0,le.useRef)(null),{isResizing:l,...a}=ze({column:e,onResize:r,rootRef:s}),u=(0,It.useContextMenu)(),c=(0,le.useRef)(null),p=R=>{u(R,"header",{column:e})},d=(0,le.useCallback)(R=>!l&&(n==null?void 0:n(R)),[l,n]),g=(0,le.useCallback)(R=>{c.current=window.setTimeout(()=>{o==null||o(R),c.current=null},500)},[o]),h=(0,le.useCallback)(()=>{c.current!==null&&(window.clearTimeout(c.current),c.current=null)},[]),f=(0,Nt.default)(Te,t,{vuuPinFloating:e.pin==="floating",vuuPinLeft:e.pin==="left",vuuPinRight:e.pin==="right",vuuEndPin:e.endPin,[`${Te}-resizing`]:e.resizing,[`${Te}-right`]:e.align==="right"});return(0,te.jsx)("div",{className:f,...i,onClick:d,onContextMenu:p,onMouseDown:g,onMouseUp:h,ref:s,children:(0,te.jsxs)("div",{className:`${Te}-inner`,children:[(0,te.jsx)(Kt,{column:e}),(0,te.jsx)("div",{className:`${Te}-label`,children:e.label}),(0,te.jsx)(St,{sorted:e.sorted}),e.resizeable!==!1?(0,te.jsx)(Ke,{...a}):null]})})};var U=require("react/jsx-runtime"),Ye="vuuTable",{RENDER_IDX:fo}=O.metadataKeys,Vt=({columns:e,columnsWithinViewport:t,data:n,getRowOffset:o,headings:r,onColumnResize:i,onHeaderCellDragStart:s,onContextMenu:l,onRemoveColumnFromGroupBy:a,onRowClick:u,onSort:c,onToggleGroup:p,tableId:d,virtualColSpan:g=0,rowCount:h})=>{let f=(0,ge.useCallback)(b=>{s==null||s(b)},[s]),R=(0,ge.useMemo)(()=>e.filter(O.notHidden),[e]),y=(0,ge.useMemo)(()=>(0,O.buildColumnMap)(e),[e]),m=(0,ge.useCallback)(b=>{var E;let w=b.target.closest(".vuuTable-headerCell"),v=parseInt((E=w==null?void 0:w.dataset.idx)!=null?E:"-1"),D=(0,O.visibleColumnAtIndex)(e,v),A=b.shiftKey;D&&c(D,A)},[e,c]);return(0,U.jsxs)("div",{"aria-rowcount":h,className:`${Ye}-table`,role:"table",children:[(0,U.jsxs)("div",{className:`${Ye}-headers`,role:"rowGroup",children:[r.map((b,T)=>(0,U.jsx)("div",{className:"vuuTable-heading",children:b.map(({label:w,width:v},D)=>(0,U.jsx)("div",{className:"vuuTable-headingCell",style:{width:v},children:w},D))},T)),(0,U.jsx)("div",{role:"row",children:R.map((b,T)=>{let w=(0,O.getColumnStyle)(b);return(0,O.isGroupColumn)(b)?(0,U.jsx)(Pt,{column:b,"data-idx":T,onRemoveColumn:a,onResize:i,role:"columnHeader",style:w},T):(0,U.jsx)(Ft,{column:b,"data-idx":T,id:`${d}-${T}`,onClick:m,onDragStart:f,onResize:i,role:"columnHeader",style:w},T)})})]}),(0,U.jsx)("div",{className:`${Ye}-body`,onContextMenu:l,role:"rowGroup",children:n==null?void 0:n.map(b=>(0,U.jsx)(Rt,{columnMap:y,columns:t,offset:o(b),onClick:u,virtualColSpan:g,onToggleGroup:p,row:b},b[fo]))})]})};var fn=require("@vuu-ui/vuu-popups"),_=require("@vuu-ui/vuu-utils"),L=require("react");var Ne=require("@vuu-ui/vuu-data"),ne=require("@vuu-ui/vuu-utils"),k=require("react"),{SELECTED:De}=ne.metadataKeys;function Wt({dataSource:e,onConfigChange:t,onFeatureEnabled:n,onFeatureInvocation:o,onSizeChange:r,onSubscribed:i,range:s={from:0,to:0},renderBufferSize:l=0,viewportRowCount:a}){let[,u]=(0,k.useState)(null),c=(0,k.useRef)(!0),p=(0,k.useRef)(!1),d=(0,k.useRef)({from:0,to:0}),g=(0,k.useRef)(null),h=(0,k.useRef)([]),f=(0,k.useMemo)(()=>new Qe((0,ne.getFullRange)(s)),[]),R=(0,k.useCallback)(v=>{for(let D of v)f.add(D);h.current=f.data,p.current=!0},[f]),y=(0,k.useCallback)(v=>{v.type==="subscribed"?i==null||i(v):v.type==="viewport-update"?(typeof v.size=="number"&&(r==null||r(v.size),f.setRowCount(v.size)),v.rows?R(v.rows):typeof v.size=="number"&&(h.current=f.data,p.current=!0)):(0,Ne.isVuuFeatureAction)(v)?n==null||n(v):(0,Ne.isVuuFeatureInvocation)(v)?o==null||o(v):console.log(`useDataSource unexpected message ${v.type}`)},[f,n,o,r,i,R]);(0,k.useEffect)(()=>()=>{g.current&&(cancelAnimationFrame(g.current),g.current=null),c.current=!1},[]);let m=(0,k.useCallback)(()=>{c.current&&(p.current&&(u({}),p.current=!1),g.current=requestAnimationFrame(m))},[u]);(0,k.useEffect)(()=>{g.current=requestAnimationFrame(m)},[m]);let b=(0,k.useCallback)(v=>{let{from:D}=e.range,A={from:D,to:D+v},E=(0,ne.getFullRange)(A,l);f.setRange(E),e.range=d.current=E,e.emit("range",A)},[e,f,l]),T=(0,k.useCallback)(v=>{let D=(0,ne.getFullRange)(v,l);f.setRange(D),e.range=d.current=D,e.emit("range",v)},[e,f,l]),w=(0,k.useCallback)(()=>f.getSelectedRows(),[f]);return(0,k.useEffect)(()=>{e==null||e.subscribe({range:d.current},y)},[e,y,t]),(0,k.useEffect)(()=>{b(a)},[b,a]),{data:h.current,getSelectedRows:w,range:d.current,setRange:T,dataSource:e}}var Qe=class{constructor({from:t,to:n}){this.rowCount=0;this.setRowCount=t=>{t<this.data.length&&(this.data.length=t),this.rowCount=t};this.range=new ne.WindowRange(t,n),this.data=new Array(n-t),this.rowCount=0}add(t){var o;let[n]=t;if(this.isWithinRange(n)){let r=n-this.range.from;this.data[r]=t;let i=t[De],s=(o=this.data[r-1])==null?void 0:o[De];s===0&&i?this.data[r-1][De]=2:s===2&&!i&&(this.data[r-1][De]=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:n}){if(t!==this.range.from||n!==this.range.to){let[o,r]=this.range.overlap(t,n),i=new Array(Math.max(0,n-t));for(let s=o;s<r;s++){let l=this.getAtIndex(s);if(l){let a=s-t;i[a]=l}}this.data=i,this.range.from=t,this.range.to=n}}getSelectedRows(){return this.data.filter(t=>t[De]===1)}};var $t=require("@heswell/salt-lab"),Ce=require("react"),Ot=({onDrop:e})=>{let t=(0,Ce.useRef)(),n=(0,Ce.useRef)(null),o=(0,Ce.useCallback)(()=>{console.log("handleDropSettle"),t.current=void 0,n.current=null},[]),{draggable:r,draggedItemIndex:i,onMouseDown:s}=(0,$t.useDragDrop)({allowDragDrop:!0,draggableClassName:"vuuTable-headerCell",orientation:"horizontal",containerRef:n,itemQuery:".vuuTable-headerCell",onDrop:e,onDropSettle:o}),l=(0,Ce.useCallback)(a=>{let{clientX:u,clientY:c}=a;console.log("useDraggableColumn handleHeaderCellDragStart means mouseDown fired on a column in RowBasedTable");let d=a.target.closest(".vuuTable-headerCell");n.current=d==null?void 0:d.closest("[role='row']");let{dataset:{idx:g="-1"}}=d;t.current={clientX:u,clientY:c,idx:g},s==null||s(a)},[s]);return{draggable:r,draggedItemIndex:i,onHeaderCellDragStart:l}};var Jt=require("@vuu-ui/vuu-utils"),z=require("react");function go(e,...t){let n=new Set(e);for(let o of t)for(let r of o)n.add(r);return n}var Ze="ArrowUp",je="ArrowDown",qe="ArrowLeft",et="ArrowRight";var tt="Home",nt="End",ot="PageUp",rt="PageDown";var Co=new Set(["Enter","Delete"," "]),bo=new Set(["Tab"]),ho=new Set(["ArrowRight","ArrowLeft"]),Gt=new Set([tt,nt,ot,rt,je,qe,et,Ze]),vo=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),Ts=go(Co,Gt,ho,vo,bo);var yo=["Home","End","PageUp","PageDown"],Bt=e=>yo.includes(e),Ut=e=>Gt.has(e);var _t=e=>`.vuuTable-headers .vuuTable-headerCell:nth-child(${e+1})`,wo=(e,t)=>`.vuuTable-body > [aria-rowindex='${e}'] > [role='cell']:nth-child(${t+1})`,Mo=[-1,-1];function Ro(e,[t,n],o,r){return e===Ze?t>-1?[t-1,n]:[t,n]:e===je?t===-1?[0,n]:t===r-1?[t,n]:[t+1,n]:e===et?n<o-1?[t,n+1]:[t,n]:e===qe?n>0?[t,n-1]:[t,n]:[t,n]}var Xt=({columnCount:e=0,containerRef:t,disableHighlightOnFocus:n,data:o,requestScroll:r,rowCount:i=0,viewportRange:s})=>{var E;let{from:l,to:a}=s,u=(0,z.useRef)([-1,-1]),c=(0,z.useRef)(),p=(0,z.useRef)([-1,0]),d=(0,z.useCallback)(([C,M])=>{var H;let S=C===-1?_t(M):wo(C,M);return(H=t.current)==null?void 0:H.querySelector(S)},[t]),g=C=>C==null?void 0:C.closest("[role='columnHeader'],[role='cell']"),h=C=>{var M,S;if(C.role==="columnHeader")return[-1,parseInt((M=C.dataset.idx)!=null?M:"-1",10)];{let H=C.closest("[role='row']");if(H){let $=parseInt((S=H.ariaRowIndex)!=null?S:"-1",10),me=Array.from(H.childNodes).indexOf(C);return[$,me]}}return Mo},f=(0,z.useCallback)(C=>{var M;if(t.current){let S=d(C);S?(S!==c.current&&((M=c.current)==null||M.setAttribute("tabindex",""),c.current=S,S.setAttribute("tabindex","0")),S.focus()):(0,Jt.withinRange)(C[0],s)||(c.current=void 0,r==null||r({type:"scroll-page",direction:"up"}))}},[t,d,r,s]),R=(0,z.useCallback)((C,M,S=!1)=>{let H=[C,M];p.current=H,f(H),S&&(u.current=H)},[f]),y=(0,z.useCallback)(()=>{var C;(C=c.current)==null||C.setAttribute("tabindex",""),c.current=void 0},[]),m=(0,z.useCallback)(async(C,M)=>{switch(C){case rt:r==null||r({type:"scroll-page",direction:"down"});break;case ot:r==null||r({type:"scroll-page",direction:"up"});break;case tt:r==null||r({type:"scroll-end",direction:"home"});break;case nt:r==null||r({type:"scroll-end",direction:"end"});break}return M},[r]),b=(0,z.useCallback)(()=>{var C;if(n!==!0&&(C=t.current)!=null&&C.contains(document.activeElement)){let M=g(document.activeElement);M&&(u.current=h(M))}},[n,t]),T=(0,z.useCallback)(async C=>{let[M,S]=Bt(C)?await m(C,p.current):Ro(C,p.current,e,i),[H,$]=p.current;(M!==H||S!==$)&&R(M,S,!0)},[e,m,i,R]),w=(0,z.useCallback)(C=>{o.length>0&&Ut(C.key)&&(C.preventDefault(),C.stopPropagation(),T(C.key))},[o,T]),v=(0,z.useCallback)(C=>{let M=C.target,S=g(M);if(S){let[H,$]=h(S);R(H,$)}},[R]),D=(0,z.useMemo)(()=>({onClick:v,onFocus:b,onKeyDown:w}),[v,b,w]);(0,z.useLayoutEffect)(()=>{let{current:C}=p,M=C[0]>=l&&C[0]<=a;c.current&&!M?y():!c.current&&M&&f(C)},[f,l,a,y]);let A=((E=t.current)==null?void 0:E.firstChild)!=null;return(0,z.useEffect)(()=>{var C;if(A&&c.current===void 0){let M=(C=t.current)==null?void 0:C.querySelector(_t(0));M&&(M.setAttribute("tabindex","0"),c.current=M)}},[t,A]),D};var Q=require("@vuu-ui/vuu-utils"),oe=require("react");var ae=require("react");var ce=new Map,Qt=(e,t,n)=>{switch(n){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}},Yt=new ResizeObserver(e=>{for(let t of e){let{target:n,borderBoxSize:o,contentBoxSize:r}=t,i=ce.get(n);if(i){let[{blockSize:s,inlineSize:l}]=o,[{blockSize:a,inlineSize:u}]=r,{onResize:c,measurements:p}=i,d=!1;for(let[g,h]of Object.entries(p)){let f=Qt(n,{height:s,width:l,contentHeight:a,contentWidth:u},g);f!==h&&(d=!0,p[g]=f)}d&&c&&c(p)}}});function Zt(e,t,n,o=!1){let r=(0,ae.useRef)(t),i=(0,ae.useCallback)(s=>{let{width:l,height:a}=s.getBoundingClientRect(),{clientWidth:u,clientHeight:c}=s;return r.current.reduce((p,d)=>(p[d]=Qt(s,{width:l,height:a,contentHeight:c,contentWidth:u},d),p),{})},[]);(0,ae.useEffect)(()=>{let s=e.current;async function l(){ce.set(s,{measurements:{}}),await document.fonts.ready;let a=ce.get(s);if(a){let u=i(s);a.measurements=u,Yt.observe(s),o&&n(u)}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(ce.has(s))throw Error("useResizeObserver attemping to observe same element twice");l()}return()=>{s&&ce.has(s)&&(Yt.unobserve(s),ce.delete(s))}},[i,e]),(0,ae.useEffect)(()=>{let s=e.current,l=ce.get(s);if(l){if(r.current!==t){r.current=t;let a=i(s);l.measurements=a}l.onResize=n}},[t,i,e,n])}var To=["clientHeight","clientWidth"],jt=e=>Number.isFinite(e),Do={height:"100%",width:"100%"},xo=(e,t)=>(0,Q.isValidNumber)(e)&&(0,Q.isValidNumber)(t)?{height:`${e}px`,width:`${t}px`}:Do,Ho=(e,t)=>{if((0,Q.isValidNumber)(e)&&(0,Q.isValidNumber)(t))return{height:e,width:t}},st=({defaultHeight:e=0,defaultWidth:t=0,height:n,width:o})=>{let r=(0,oe.useRef)(null),[i,s]=(0,oe.useState)({css:xo(n,o),inner:Ho(n,o),outer:{height:n!=null?n:"100%",width:o!=null?o:"100%"}});(0,oe.useMemo)(()=>{s(a=>{let{inner:u,outer:c}=a;if((0,Q.isValidNumber)(n)&&(0,Q.isValidNumber)(o)&&u&&c){let{height:p,width:d}=u,{height:g,width:h}=c;if(g!==n||h!==o){let f=(0,Q.isValidNumber)(g)?g-p:0,R=(0,Q.isValidNumber)(h)?h-d:0;return{...a,outer:{height:n,width:o},inner:{height:n-f,width:o-R}}}}return a})},[n,o]);let l=(0,oe.useCallback)(({clientWidth:a,clientHeight:u})=>{s(c=>{let{css:p,inner:d,outer:g}=c;return jt(u)&&jt(a)&&(a!==(d==null?void 0:d.width)||u!==(d==null?void 0:d.height))?{css:p,outer:g,inner:{width:Math.floor(a)||t,height:Math.floor(u)||e}}:c})},[e,t]);return Zt(r,To,l,!0),{containerRef:r,cssSize:i.css,outerSize:i.outer,innerSize:i.inner}};var be=require("@vuu-ui/vuu-utils"),xe=require("react"),{IDX:Po,SELECTED:Eo}=be.metadataKeys,So=[],qt=({selectionModel:e,onSelectionChange:t})=>{let n=(0,xe.useRef)(-1),o=(0,xe.useRef)(So);return(0,xe.useCallback)((i,s,l)=>{let{[Po]:a,[Eo]:u}=i,{current:c}=n,{current:p}=o,g=(u?be.deselectItem:be.selectItem)(e,p,a,s,l,c);o.current=g,n.current=a,t&&t(g)},[t,e])};var en=require("@heswell/salt-lab"),x=require("@vuu-ui/vuu-utils"),tn=require("react"),{info:it}=(0,x.logger)("useTableModel"),Ao=100,nn=x.metadataKeys.count,Lo=({serverDataType:e})=>e===void 0,ko=e=>{var t;if((0,x.isTypeDescriptor)(e.type))return(0,x.getCellRenderer)((t=e.type)==null?void 0:t.renderer)},Ko=(e,t,n)=>{var r;let o=t.indexOf(e.name);return o!==-1&&n[o]?n[o]:(r=e.serverDataType)!=null?r:"string"},zo=["int","long","double"],on=e=>e===void 0?void 0:zo.includes(e)?"right":"left",No=(e,t)=>{switch(it==null||it(`GridModelReducer ${t.type}`),t.type){case"init":return rn(t);case"moveColumn":return Fo(e,t);case"resizeColumn":return $o(e,t);case"setTypes":return Oo(e,t);case"hideColumns":return Vo(e,t);case"showColumns":return Wo(e,t);case"pinColumn":return Go(e,t);case"updateColumnProp":return He(e,t);case"tableConfig":return ln(e,t);default:return console.log(`unhandled action ${t.type}`),e}},lt=(e,t)=>{let[n,o]=(0,tn.useReducer)(No,{tableConfig:e,dataSourceConfig:t},rn);return{columns:n.columns,dispatchColumnAction:o,headings:n.headings}};function rn({dataSourceConfig:e,tableConfig:t}){let n=t.columns.map(sn(t)),o=n.some(x.isPinned)?(0,x.sortPinnedColumns)(n):n,r={columns:o,headings:(0,x.getTableHeadings)(o)};if(e){let{columns:i,...s}=e;return ln(r,{type:"tableConfig",...s})}else return r}var Io=(e,t)=>t==="uppercase"?e.toUpperCase():t==="capitalize"?e[0].toUpperCase()+e.slice(1).toLowerCase():e,sn=e=>(t,n)=>{let{columnDefaultWidth:o=Ao,columnFormatHeader:r}=e,{align:i=on(t.serverDataType),key:s,name:l,label:a=l,width:u=o,...c}=t,p={...c,align:i,CellRenderer:ko(t),label:Io(a,r),key:s!=null?s:n+nn,name:l,originalIdx:n,valueFormatter:(0,x.getValueFormatter)(t),width:u};return(0,x.isGroupColumn)(p)&&(p.columns=p.columns.map(d=>sn(e)(d,d.key))),p};function Fo(e,{column:t,moveBy:n,moveTo:o}){let{columns:r}=e;if(typeof n=="number"){let i=r.indexOf(t),s=r.slice(),[l]=s.splice(i,1);return s.splice(i+n,0,l),{...e,columns:s}}else if(typeof o=="number"){let i=r.indexOf(t);return{...e,columns:(0,en.moveItem)(r,i,o)}}return e}function Vo(e,{columns:t}){return t.some(n=>n.hidden!==!0)?t.reduce((n,o)=>o.hidden!==!0?He(n,{type:"updateColumnProp",column:o,hidden:!0}):n,e):e}function Wo(e,{columns:t}){return t.some(n=>n.hidden)?t.reduce((n,o)=>o.hidden?He(n,{type:"updateColumnProp",column:o,hidden:!1}):n,e):e}function $o(e,{column:t,phase:n,width:o}){let r="updateColumnProp",i=n!=="end";switch(n){case"begin":case"end":return He(e,{type:r,column:t,resizing:i});case"resize":return He(e,{type:r,column:t,width:o});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${n}`)}}function Oo(e,{columnNames:t,serverDataTypes:n}){let{columns:o}=e;if(o.some(Lo)){let r=o.map(i=>{var l;let s=Ko(i,t,n);return{...i,align:(l=i.align)!=null?l:on(s),serverDataType:s}});return{...e,columns:r}}else return e}function Go(e,t){let{columns:n}=e,{column:o,pin:r}=t,i=n.find(s=>s.name===o.name);return i?(n=he(n,{...i,pin:r}),n=(0,x.sortPinnedColumns)(n),{...e,columns:n}):e}function He(e,t){let{columns:n}=e,{align:o,column:r,hidden:i,label:s,resizing:l,width:a}=t,u=n.find(c=>c.name===r.name);return u&&((o==="left"||o==="right")&&(n=he(n,{...u,align:o})),typeof s=="string"&&(n=he(n,{...u,label:s})),typeof l=="boolean"&&(n=he(n,{...u,resizing:l})),typeof i=="boolean"&&(n=he(n,{...u,hidden:i})),typeof a=="number"&&(n=he(n,{...u,width:a}))),{...e,columns:n}}function ln(e,{columns:t,confirmed:n,filter:o,groupBy:r,sort:i}){let s=t&&t.length>0,l=r!==void 0,a=typeof(o==null?void 0:o.filter)=="string",u=i&&i.sortDefs.length>0,c=e;return s&&(c={...e,columns:t.map((p,d)=>{let g=(0,x.getColumnName)(p),h=d+nn,f=(0,x.findColumn)(c.columns,g);if(f)return f.key===h?f:{...f,key:h};throw Error(`useTableModel column ${p} not found`)})}),l&&(c={...e,columns:(0,x.applyGroupByToColumns)(c.columns,r,n)}),u&&(c={...e,columns:(0,x.applySortToColumns)(c.columns,i)}),a?c={...e,columns:(0,x.applyFilterToColumns)(c.columns,o)}:c.columns.some(x.isFilteredColumn)&&(c={...e,columns:(0,x.stripFilterFromColumns)(c.columns)}),c}function he(e,t){return e.map(n=>n.name===t.name?t:n)}var F=require("react"),cn=e=>{let{scrollLeft:t,scrollTop:n}=e,{clientHeight:o,clientWidth:r,scrollHeight:i,scrollWidth:s}=e,l=t/(s-r),a=n/(i-o);return[l,a]},Bo=e=>{let{clientHeight:t,clientWidth:n,scrollHeight:o,scrollWidth:r}=e;return[r-n,o-t]},an=({onAttach:e,onDetach:t})=>{let n=(0,F.useRef)(null);return(0,F.useCallback)(r=>{if(r)n.current=r,e==null||e(r);else if(n.current){let{current:i}=n;n.current=r,t==null||t(i)}},[e,t])},un=({onHorizontalScroll:e,onVerticalScroll:t,viewport:n})=>{let o=(0,F.useRef)(!1),r=(0,F.useRef)({scrollTop:0,scrollLeft:0}),i=(0,F.useRef)(null),s=(0,F.useRef)(null),{maxScrollContainerScrollHorizontal:l,maxScrollContainerScrollVertical:a}=n,u=(0,F.useCallback)(()=>{let{current:m}=s,{current:b}=i,{current:T}=o;if(T)o.current=!1;else if(m&&b){let[w,v]=cn(b),[D,A]=Bo(m),E=Math.round(w*D),C=Math.round(v*A);m.scrollTo({left:E,top:C,behavior:"auto"})}},[]),c=(0,F.useCallback)(()=>{let{current:m}=s,{current:b}=i,{current:T}=r;if(m&&b){let{scrollLeft:w,scrollTop:v}=m,[D,A]=cn(m);o.current=!0,b.scrollLeft=Math.round(D*l),b.scrollTop=Math.round(A*a),T.scrollTop!==v&&(T.scrollTop=v,t==null||t(v,A)),T.scrollLeft!==w&&(T.scrollLeft=w,e==null||e(w))}},[l,a,e,t]),p=(0,F.useCallback)(m=>{i.current=m,m.addEventListener("scroll",u,{passive:!0})},[u]),d=(0,F.useCallback)(m=>{i.current=null,m.removeEventListener("scroll",u)},[u]),g=(0,F.useCallback)(m=>{s.current=m,m.addEventListener("scroll",c,{passive:!0})},[c]),h=(0,F.useCallback)(m=>{s.current=null,m.removeEventListener("scroll",c)},[c]),f=an({onAttach:g,onDetach:h}),R=an({onAttach:p,onDetach:d}),y=(0,F.useCallback)(m=>{let{current:b}=s;if(b){if(o.current=!1,m.type==="scroll-page"){let{clientHeight:T,scrollLeft:w,scrollTop:v}=b,{direction:D}=m,A=D==="down"?T:-T,E=Math.min(Math.max(0,v+A),a);b.scrollTo({top:E,left:w,behavior:"auto"})}else if(m.type==="scroll-end"){let{direction:T}=m,w=T==="end"?a:0;b.scrollTo({top:w,left:b.scrollLeft,behavior:"auto"})}}},[a]);return{scrollbarContainerRef:R,contentContainerRef:f,requestScroll:y}};var Z=require("react"),Ie=require("@vuu-ui/vuu-utils"),Uo=15e5,_o={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},Jo=e=>{let t=0,n=0,o=0;for(let r of e){let{hidden:i,pin:s,width:l}=r,a=i?0:l;s==="left"?t+=a:s==="right"?n+=a:o+=a}return{pinnedWidthLeft:t,pinnedWidthRight:n,unpinnedWidth:o}},ct=({columns:e,headerHeight:t,headings:n,rowCount:o,rowHeight:r,size:i})=>{let s=(0,Z.useRef)(0),a=Math.min(o,Uo)*r,c=o*r-a,{pinnedWidthLeft:p,pinnedWidthRight:d,unpinnedWidth:g}=(0,Z.useMemo)(()=>Jo(e),[e]),[h,f]=(0,Z.useMemo)(()=>(0,Ie.actualRowPositioning)(r),[r]),[R,y]=(0,Z.useMemo)(()=>c?(0,Ie.virtualRowPositioning)(r,c,s):[h,f],[f,h,c,r]),m=(0,Z.useCallback)(b=>{s.current=b},[]);return(0,Z.useMemo)(()=>{var b;if(i){let T=n.length,w=15,v=p+g+d,D=v>i.width?w:0,A=t*(1+T),E=a-(((b=i==null?void 0:i.height)!=null?b:0)-D)+A,C=v-i.width+p,M=(i.height-t)/r,S=Number.isInteger(M)?M+1:Math.ceil(M),H=i.height-A,$=a>H?w:0;return{contentHeight:a,getRowAtPosition:y,getRowOffset:R,horizontalScrollbarHeight:D,maxScrollContainerScrollHorizontal:C,maxScrollContainerScrollVertical:E,pinnedWidthLeft:p,pinnedWidthRight:d,rowCount:S,contentWidth:v,setPctScrollTop:m,totalHeaderHeight:A,verticalScrollbarWidth:$,viewportBodyHeight:H}}else return _o},[i,n.length,p,g,d,a,t,r,y,R,m])};var Pe=require("@vuu-ui/vuu-utils"),W=require("react"),mn=({columns:e,getRowAtPosition:t,setRange:n,viewportMeasurements:o})=>{let r=(0,W.useRef)(-1),{rowCount:i,contentWidth:s,maxScrollContainerScrollHorizontal:l}=o,a=s-l,u=(0,W.useRef)(0),[c,p]=(0,W.useMemo)(()=>(0,Pe.getColumnsInViewport)(e,u.current,u.current+a),[a,e]),d=(0,W.useRef)(p);(0,W.useEffect)(()=>{h(c)},[c]);let[g,h]=(0,W.useState)(c),f=(0,W.useCallback)(y=>{u.current=y;let[m,b]=(0,Pe.getColumnsInViewport)(e,y,y+a);(0,Pe.itemsChanged)(g,m)&&(d.current=b,h(m))},[a,e,g]),R=(0,W.useCallback)(y=>{let m=t(y);m!==r.current&&(r.current=m,n({from:m,to:m+i}))},[t,n,i]);return{columnsWithinViewport:g,onHorizontalScroll:f,onVerticalScroll:R,virtualColSpan:d.current}};var Xo=[],{KEY:Yo,IS_EXPANDED:dn,IS_LEAF:pn}=_.metadataKeys,gn=({config:e,dataSource:t,headerHeight:n,onConfigChange:o,onFeatureEnabled:r,onFeatureInvocation:i,onSelectionChange:s,renderBufferSize:l=0,rowHeight:a,selectionModel:u,...c})=>{var mt,dt;let[p,d]=(0,L.useState)(t.size),g=(0,L.useRef)(!1),h=(0,L.useRef)();if(h.current=t,t===void 0)throw Error("no data source provided to Vuu Table");let f=st(c),R=(0,L.useCallback)(P=>{d(P)},[]),{columns:y,dispatchColumnAction:m,headings:b}=lt(e,t.config),{getRowAtPosition:T,getRowOffset:w,setPctScrollTop:v,...D}=ct({columns:y,headerHeight:n,headings:b,rowCount:p,rowHeight:a,size:f.innerSize}),A=(0,L.useCallback)(P=>{if(P.tableMeta){let{columns:K,dataTypes:V}=P.tableMeta;g.current=!0,m({type:"setTypes",columnNames:K,serverDataTypes:V})}},[m]),E=(0,L.useCallback)(P=>{t.select(P),s==null||s(P)},[t,s]),C=qt({onSelectionChange:E,selectionModel:u}),{data:M,getSelectedRows:S,range:H,setRange:$}=Wt({dataSource:t,onFeatureEnabled:r,onFeatureInvocation:i,onSubscribed:A,onSizeChange:R,renderBufferSize:l,viewportRowCount:D.rowCount}),me=(0,L.useRef)();me.current=M;let Ve=(0,L.useCallback)(P=>{g.current=!0,m(P)},[m]),yn=Ue({dataSource:t,onPersistentColumnOperation:Ve}),wn=(0,L.useCallback)((P,K=!1,V)=>{t&&(t.sort=(0,_.applySort)(t.sort,P,K,V))},[t]),Mn=(0,L.useCallback)((P,K,V)=>{let N=y.find(J=>J.name===K);if(N)P==="end"&&(g.current=!0),m({type:"resizeColumn",phase:P,column:N,width:V});else throw Error(`useDataTable.handleColumnResize, column ${K} not found`)},[y,m]),Rn=(0,L.useCallback)((P,K)=>{let V=(0,_.isJsonGroup)(K,P),N=P[Yo];if(P[dn]){if(t.closeTreeNode(N,!0),V){let J=y.indexOf(K);t.getRowsAtDepth(J+1).some(X=>X[dn]||X[pn])||m({type:"hideColumns",columns:y.slice(J+2)})}}else if(t.openTreeNode(N),V){let J=t.getChildRows(N),re=y.indexOf(K)+1,X=[y[re]];J.some(de=>de[pn])&&X.push(y[re+1]),X.some(de=>de.hidden)&&m({type:"showColumns",columns:X})}},[y,t,m]),{onVerticalScroll:at,onHorizontalScroll:Tn,columnsWithinViewport:Dn,virtualColSpan:xn}=mn({columns:y,getRowAtPosition:T,setRange:$,viewportMeasurements:D}),Hn=(0,L.useCallback)((P,K)=>{v(K),at(P)},[at,v]),{requestScroll:Pn,...En}=un({onHorizontalScroll:Tn,onVerticalScroll:Hn,viewport:D,viewportHeight:((dt=(mt=f.innerSize)==null?void 0:mt.height)!=null?dt:0)-n}),Sn=Xt({columnCount:y.length,containerRef:f.containerRef,data:M,requestScroll:Pn,rowCount:t==null?void 0:t.size,viewportRange:H}),An=(0,L.useCallback)(P=>{P?t&&t.groupBy.includes(P.name)&&(t.groupBy=t.groupBy.filter(K=>K!==P.name)):t.groupBy=[]},[t]),Ln=(0,L.useCallback)((P,K)=>{let V=t.columns[P],N=(0,_.moveItem)(t.columns,V,K);N!==t.columns&&(t.columns=N,m({type:"tableConfig",columns:N}))},[t,m]),kn=Ot({onDrop:Ln});(0,L.useEffect)(()=>{h.current&&(g.current=!0,m({type:"init",tableConfig:e,dataSourceConfig:h.current.config}))},[e,m]),(0,L.useEffect)(()=>{t.on("config",(P,K)=>{g.current=!0,m({type:"tableConfig",...P,confirmed:K})})},[t,m]),(0,L.useMemo)(()=>{g.current&&(o==null||o({...e,columns:y}),g.current=!1)},[y,e,o]);let ut=(0,fn.useContextMenu)(),Kn=(0,L.useCallback)(P=>{var X;let{current:K}=me,{current:V}=h,N=P.target,J=N==null?void 0:N.closest("div[role='cell']"),re=N==null?void 0:N.closest(".vuuTableRow");if(J&&re&&K&&V){let{columns:de,selectedRowsCount:zn}=V,Nn=(0,_.buildColumnMap)(de),In=parseInt((X=re.ariaRowIndex)!=null?X:"-1"),Fn=Array.from(re.childNodes).indexOf(J),Vn=K.find(([$n])=>$n===In),Wn=de[Fn];ut(P,"grid",{columnMap:Nn,columnName:Wn,row:Vn,selectedRows:zn===0?Xo:S(),viewport:t==null?void 0:t.viewport})}},[t==null?void 0:t.viewport,S,ut]);return{columns:y,columnsWithinViewport:Dn,containerMeasurements:f,containerProps:Sn,data:M,dispatchColumnAction:m,getRowOffset:w,handleContextMenuAction:yn,headings:b,onColumnResize:Mn,onContextMenu:Kn,onRemoveColumnFromGroupBy:An,onRowClick:C,onSort:wn,onToggleGroup:Rn,virtualColSpan:xn,scrollProps:En,rowCount:p,viewportMeasurements:D,...kn}};var bn=q(require("classnames"));var hn=require("@vuu-ui/vuu-utils"),j=require("react/jsx-runtime"),ue="vuuTable",Qo=({allowConfigEditing:e=!1,className:t,config:n,dataSource:o,headerHeight:r=25,height:i,id:s,onConfigChange:l,onFeatureEnabled:a,onFeatureInvocation:u,onSelectionChange:c,onShowConfigEditor:p,renderBufferSize:d=0,rowHeight:g=20,selectionModel:h="extended",style:f,width:R,zebraStripes:y=!1,...m})=>{let b=(0,Fe.useIdMemo)(s),{containerMeasurements:{containerRef:T,innerSize:w,outerSize:v},containerProps:D,dispatchColumnAction:A,draggable:E,draggedItemIndex:C,handleContextMenuAction:M,scrollProps:S,viewportMeasurements:H,...$}=gn({config:n,dataSource:o,renderBufferSize:d,headerHeight:r,height:i,onConfigChange:l,onFeatureEnabled:a,onFeatureInvocation:u,onSelectionChange:c,rowHeight:g,selectionModel:h,width:R}),me={...v,"--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":`${g}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`},Ve=(0,bn.default)(ue,t,{[`${ue}-zebra`]:y,[`${ue}-loading`]:(0,hn.isDataLoading)($.columns)});return(0,j.jsx)(Cn.ContextMenuProvider,{menuActionHandler:M,menuBuilder:Ge(o),children:(0,j.jsxs)("div",{...m,...D,className:Ve,id:b,ref:T,style:me,tabIndex:-1,children:[w?(0,j.jsx)("div",{className:`${ue}-scrollbarContainer`,ref:S.scrollbarContainerRef,children:(0,j.jsx)("div",{className:`${ue}-scrollbarContent`})}):null,w?(0,j.jsxs)("div",{className:`${ue}-contentContainer`,ref:S.contentContainerRef,children:[(0,j.jsx)(Vt,{...$,headerHeight:r,tableId:b}),E]}):null,e&&w?(0,j.jsx)(Fe.Button,{className:`${ue}-settings`,"data-icon":"settings",onClick:p,variant:"secondary"}):null]})})};var vn=q(require("classnames")),ye=require("@vuu-ui/vuu-utils");var ve=require("react/jsx-runtime"),Ee="vuuJsonCell",{IS_EXPANDED:Zo,KEY:jo}=ye.metadataKeys,qo=e=>{let t=e.lastIndexOf("|");return t===-1?"":e.slice(t+1)},er=({column:e,row:t})=>{let{key:n}=e,o=t[n],r=!1;(0,ye.isJsonAttribute)(o)&&(o=o.slice(0,-1),r=!0);let i=qo(t[jo]),s=(0,vn.default)({[`${Ee}-name`]:i===o,[`${Ee}-value`]:i!==o,[`${Ee}-group`]:r});if(r){let l=t[Zo]?"minus-box":"plus-box";return(0,ve.jsxs)("span",{className:s,children:[(0,ve.jsx)("span",{className:`${Ee}-value`,children:o}),(0,ve.jsx)("span",{className:`${Ee}-toggle`,"data-icon":l})]})}else return o?(0,ve.jsx)("span",{className:s,children:o}):null};(0,ye.registerComponent)("json",er,"cell-renderer",{});
|
|
2
2
|
//# sourceMappingURL=index.js.map
|