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