@vuu-ui/vuu-table 0.7.6 → 0.8.0
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/TableGroupCell.d.ts +1 -3
- package/types/TableGroupHeaderCell.d.ts +1 -1
- package/types/TableRow.d.ts +1 -1
- package/types/dataTableTypes.d.ts +8 -2
- package/types/index.d.ts +3 -0
- package/types/useDataSource.d.ts +2 -1
- package/types/useKeyboardNavigation.d.ts +1 -1
- package/types/useTable.d.ts +2 -1
- package/types/useTableModel.d.ts +7 -2
package/cjs/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var Gn=Object.create;var Se=Object.defineProperty;var Bn=Object.getOwnPropertyDescriptor;var Un=Object.getOwnPropertyNames;var _n=Object.getPrototypeOf,Jn=Object.prototype.hasOwnProperty;var Xn=(e,t)=>{for(var n in t)Se(e,n,{get:t[n],enumerable:!0})},ft=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Un(t))!Jn.call(e,r)&&r!==n&&Se(e,r,{get:()=>t[r],enumerable:!(o=Bn(t,r))||o.enumerable});return e};var q=(e,t,n)=>(n=e!=null?Gn(_n(e)):{},ft(t||!e||!e.__esModule?Se(n,"default",{value:e,enumerable:!0}):n,e)),Yn=e=>ft(Se({},"__esModule",{value:!0}),e);var nr={};Xn(nr,{Table:()=>Zo,buildContextMenuDescriptors:()=>Ge,useMeasuredContainer:()=>st,useTableContextMenu:()=>Ue,useTableModel:()=>lt,useTableViewport:()=>ct});module.exports=Yn(nr);var gt=require("@vuu-ui/vuu-utils"),Ge=e=>(t,n)=>{let o=[];if(e===void 0)return o;if(t==="header")o.push(...Qn(n,e)),o.push(...qn(n,e)),o.push(...Zn(n,e)),o.push(...jn(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 Qn(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 Zn(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},{label:"Distinct",action:"agg-distinct",options:e}].concat((0,gt.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 jn(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 qn(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 bt=require("@vuu-ui/vuu-filters"),N=require("@vuu-ui/vuu-utils"),eo=(e,t)=>{if(e.filterStruct&&t){let[n,o]=(0,bt.removeColumnFromFilter)(t,e.filterStruct);return{filter:o,filterStruct:n}}else return e},{Average:to,Count:no,Distinct:oo,High:ro,Low:so,Sum:io}=N.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,N.setSortColumn)(e.sort,s,"A"),!0;case"sort-dsc":return e.sort=(0,N.setSortColumn)(e.sort,s,"D"),!0;case"sort-add-asc":return e.sort=(0,N.addSortColumn)(e.sort,s,"A"),!0;case"sort-add-dsc":return e.sort=(0,N.addSortColumn)(e.sort,s,"D"),!0;case"group":return e.groupBy=(0,N.addGroupColumn)(e.groupBy,s),!0;case"group-add":return e.groupBy=(0,N.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=eo(e.filter,s),!0;case"remove-filters":return e.filter={filter:""},!0;case"agg-avg":return e.aggregations=(0,N.setAggregations)(e.aggregations,s,to),!0;case"agg-high":return e.aggregations=(0,N.setAggregations)(e.aggregations,s,ro),!0;case"agg-low":return e.aggregations=(0,N.setAggregations)(e.aggregations,s,so),!0;case"agg-count":return e.aggregations=(0,N.setAggregations)(e.aggregations,s,no),!0;case"agg-distinct":return e.aggregations=(0,N.setAggregations)(e.aggregations,s,oo),!0;case"agg-sum":return e.aggregations=(0,N.setAggregations)(e.aggregations,s,io),!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"),Ie=require("@salt-ds/core");var $=require("@vuu-ui/vuu-utils"),ge=require("react");var G=require("@vuu-ui/vuu-utils"),Tt=q(require("classnames")),Me=require("react");var Ae=require("@vuu-ui/vuu-utils"),ht=require("@heswell/salt-lab"),vt=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]),[T,y]=(0,Y.useState)(f),m=()=>{var E;(E=i.current)==null||E.focus()},C=E=>{E.key==="Enter"&&h(!0)},R=(0,Y.useCallback)(E=>{o==null||o(E,t)},[t,o]),w=()=>{h(!0)},v=(E="",b="",M=!0,S=!1)=>{var H;h(!1),S?y(E):b!==E&&y(b),M===!1&&((H=i.current)==null||H.focus())},D=(0,vt.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:C,children:(0,we.jsx)(ht.EditableLabel,{editing:g,value:T,onChange:y,onMouseDownCapture:m,onEnterEditMode:w,onExitEditMode:v,onKeyDown:C,ref:i,tabIndex:0},"title")}):(0,we.jsx)("div",{className:D,role:"cell",style:A,onClick:R,children:l?(0,we.jsx)(l,{column:t,columnMap:n,row:r}):f})},lo);_e.displayName="TableCell";function lo(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"),yt=require("react");var pe=require("react/jsx-runtime"),{DEPTH:ao,IS_LEAF:wt}=Le.metadataKeys,co=(e,t)=>{let{[ao]:n,[wt]:o}=t;if(o||n>e.length)return[null,n===null?0:Math.max(0,n-1)];if(n===0)return["$root",0];{let{key:r,valueFormatter:i}=e[n-1];return[i(t[r]),n-1]}},Mt=({column:e,onClick:t,row:n})=>{let{columns:o}=e,[r,i]=co(o,n),s=(0,yt.useCallback)(c=>{t==null||t(c,e)},[e,t]),l=(0,Le.getColumnStyle)(e),a=n[wt],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 Te=require("react/jsx-runtime"),{IDX:uo,IS_EXPANDED:mo,SELECTED:po}=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{[uo]:a,[mo]:u,[po]:c}=l,p=(0,Tt.default)(ke,{[`${ke}-even`]:a%2===0,[`${ke}-expanded`]:u,[`${ke}-preSelected`]:c===2}),d=(0,Me.useCallback)(h=>{let f=h.shiftKey,T=h.ctrlKey||h.metaKey;r==null||r(l,f,T)},[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,Te.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,Te.jsx)("div",{role:"cell",style:{width:s}}):null,n.filter(G.notHidden).map(h=>{let f=(0,G.isGroupColumn)(h),T=(0,G.isJsonColumn)(h);return(0,Te.jsx)(f?Mt:_e,{column:h,columnMap:t,onClick:f||T?g:void 0,row:l},h.name)})]})});var Je=q(require("classnames")),Pt=require("react");var fe=require("react");var xt=require("react/jsx-runtime"),Dt=()=>{},fo="vuuColumnResizer",Ke=({onDrag:e,onDragEnd:t=Dt,onDragStart:n=Dt})=>{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,xt.jsx)("div",{className:fo,"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",Ht=({column:e,onClick:t,...n})=>(0,B.jsx)("span",{...n,className:`${ee}-close`,"data-icon":"close-circle",onClick:()=>t==null?void 0:t(e)}),go=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]})},Et=({column:e,className:t,onRemoveColumn:n,onResize:o,...r})=>{let i=(0,Pt.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)(go,{column:c,children:u.length>1?(0,B.jsx)(Ht,{column:c,onClick:n}):null},c.key)),(0,B.jsx)(Ht,{"data-align":"end",onClick:n}),e.resizeable!==!1?(0,B.jsx)(Ke,{...l}):null]})})};var Ft=q(require("classnames")),le=require("react");var Xe=q(require("classnames"));var ie=require("react/jsx-runtime"),St="vuuSortIndicator",At=({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)(St,"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)(St,"single-col"),children:(0,ie.jsx)("span",{"data-icon":`sorted-${t}`})})};var It=require("@vuu-ui/vuu-popups");var Lt=require("@vuu-ui/vuu-popups"),kt=q(require("classnames")),Kt=require("react");var Nt=require("react/jsx-runtime");var zt=({column:e,filter:t})=>{let n=(0,Lt.useContextMenu)(),o=(0,Kt.useCallback)(r=>{r.stopPropagation(),n(r,"filter",{column:e,filter:t})},[e,t,n]);return e.filter?(0,Nt.jsx)("div",{className:(0,kt.default)("vuuFilterIndicator"),"data-icon":"filter",onClick:o}):null};var te=require("react/jsx-runtime"),Re="vuuTable-headerCell",Vt=({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=T=>{u(T,"header",{column:e})},d=(0,le.useCallback)(T=>!l&&(n==null?void 0:n(T)),[l,n]),g=(0,le.useCallback)(T=>{c.current=window.setTimeout(()=>{o==null||o(T),c.current=null},500)},[o]),h=(0,le.useCallback)(()=>{c.current!==null&&(window.clearTimeout(c.current),c.current=null)},[]),f=(0,Ft.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,te.jsx)("div",{className:f,...i,onClick:d,onContextMenu:p,onMouseDown:g,onMouseUp:h,ref:s,children:(0,te.jsxs)("div",{className:`${Re}-inner`,children:[(0,te.jsx)(zt,{column:e}),(0,te.jsx)("div",{className:`${Re}-label`,children:e.label}),(0,te.jsx)(At,{sorted:e.sorted}),e.resizeable!==!1?(0,te.jsx)(Ke,{...a}):null]})})};var U=require("react/jsx-runtime"),Ye="vuuTable",{RENDER_IDX:bo}=$.metadataKeys,Wt=({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)(C=>{s==null||s(C)},[s]),T=(0,ge.useMemo)(()=>e.filter($.notHidden),[e]),y=(0,ge.useMemo)(()=>(0,$.buildColumnMap)(e),[e]),m=(0,ge.useCallback)(C=>{var E;let w=C.target.closest(".vuuTable-headerCell"),v=parseInt((E=w==null?void 0:w.dataset.idx)!=null?E:"-1"),D=(0,$.visibleColumnAtIndex)(e,v),A=C.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((C,R)=>(0,U.jsx)("div",{className:"vuuTable-heading",children:C.map(({label:w,width:v},D)=>(0,U.jsx)("div",{className:"vuuTable-headingCell",style:{width:v},children:w},D))},R)),(0,U.jsx)("div",{role:"row",children:T.map((C,R)=>{let w=(0,$.getColumnStyle)(C);return(0,$.isGroupColumn)(C)?(0,U.jsx)(Et,{column:C,"data-idx":R,onRemoveColumn:a,onResize:i,role:"columnHeader",style:w},R):(0,U.jsx)(Vt,{column:C,"data-idx":R,id:`${d}-${R}`,onClick:m,onDragStart:f,onResize:i,role:"columnHeader",style:w},R)})})]}),(0,U.jsx)("div",{className:`${Ye}-body`,onContextMenu:l,role:"rowGroup",children:n==null?void 0:n.map(C=>(0,U.jsx)(Rt,{columnMap:y,columns:t,offset:o(C),onClick:u,virtualColSpan:g,onToggleGroup:p,row:C},C[bo]))})]})};var gn=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 $t({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)),[]),T=(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?T(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,T]);(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 C=(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]),R=(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)(()=>{C(a)},[C,a]),{data:h.current,getSelectedRows:w,range:d.current,setRange:R,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 Ot=require("@heswell/salt-lab"),be=require("react"),Gt=({onDrop:e})=>{let t=(0,be.useRef)(),n=(0,be.useRef)(null),o=(0,be.useCallback)(()=>{console.log("handleDropSettle"),t.current=void 0,n.current=null},[]),{draggable:r,draggedItemIndex:i,onMouseDown:s}=(0,Ot.useDragDrop)({allowDragDrop:!0,draggableClassName:"vuuTable-headerCell",orientation:"horizontal",containerRef:n,itemQuery:".vuuTable-headerCell",onDrop:e,onDropSettle:o}),l=(0,be.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 Xt=require("@vuu-ui/vuu-utils"),K=require("react");function Co(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 ho=new Set(["Enter","Delete"," "]),vo=new Set(["Tab"]),yo=new Set(["ArrowRight","ArrowLeft"]),Bt=new Set([tt,nt,ot,rt,je,qe,et,Ze]),wo=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),Ds=Co(ho,Bt,yo,wo,vo);var Mo=["Home","End","PageUp","PageDown"],Ut=e=>Mo.includes(e),_t=e=>Bt.has(e);var Jt=e=>`.vuuTable-headers .vuuTable-headerCell:nth-child(${e+1})`,To=(e,t)=>`.vuuTable-body > [aria-rowindex='${e}'] > [role='cell']:nth-child(${t+1})`,Ro=[-1,-1];function Do(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 Yt=({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,K.useRef)([-1,-1]),c=(0,K.useRef)(),p=(0,K.useRef)([-1,0]),d=(0,K.useCallback)(([b,M])=>{var H;let S=b===-1?Jt(M):To(b,M);return(H=t.current)==null?void 0:H.querySelector(S)},[t]),g=b=>b==null?void 0:b.closest("[role='columnHeader'],[role='cell']"),h=b=>{var M,S;if(b.role==="columnHeader")return[-1,parseInt((M=b.dataset.idx)!=null?M:"-1",10)];{let H=b.closest("[role='row']");if(H){let W=parseInt((S=H.ariaRowIndex)!=null?S:"-1",10),me=Array.from(H.childNodes).indexOf(b);return[W,me]}}return Ro},f=(0,K.useCallback)(b=>{var M;if(t.current){let S=d(b);S?(S!==c.current&&((M=c.current)==null||M.setAttribute("tabindex",""),c.current=S,S.setAttribute("tabindex","0")),S.focus()):(0,Xt.withinRange)(b[0],s)||(c.current=void 0,r==null||r({type:"scroll-page",direction:"up"}))}},[t,d,r,s]),T=(0,K.useCallback)((b,M,S=!1)=>{let H=[b,M];p.current=H,f(H),S&&(u.current=H)},[f]),y=(0,K.useCallback)(()=>{var b;(b=c.current)==null||b.setAttribute("tabindex",""),c.current=void 0},[]),m=(0,K.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]),C=(0,K.useCallback)(()=>{var b;if(n!==!0&&(b=t.current)!=null&&b.contains(document.activeElement)){let M=g(document.activeElement);M&&(u.current=h(M))}},[n,t]),R=(0,K.useCallback)(async b=>{let[M,S]=Ut(b)?await m(b,p.current):Do(b,p.current,e,i),[H,W]=p.current;(M!==H||S!==W)&&T(M,S,!0)},[e,m,i,T]),w=(0,K.useCallback)(b=>{o.length>0&&_t(b.key)&&(b.preventDefault(),b.stopPropagation(),R(b.key))},[o,R]),v=(0,K.useCallback)(b=>{let M=b.target,S=g(M);if(S){let[H,W]=h(S);T(H,W)}},[T]),D=(0,K.useMemo)(()=>({onClick:v,onFocus:C,onKeyDown:w}),[v,C,w]);(0,K.useLayoutEffect)(()=>{let{current:b}=p,M=b[0]>=l&&b[0]<=a;c.current&&!M?y():!c.current&&M&&f(b)},[f,l,a,y]);let A=((E=t.current)==null?void 0:E.firstChild)!=null;return(0,K.useEffect)(()=>{var b;if(A&&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,A]),D};var Q=require("@vuu-ui/vuu-utils"),oe=require("react");var ce=require("react");var ae=new Map,Zt=(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}},Qt=new ResizeObserver(e=>{for(let t of e){let{target:n,borderBoxSize:o,contentBoxSize:r}=t,i=ae.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=Zt(n,{height:s,width:l,contentHeight:a,contentWidth:u},g);f!==h&&(d=!0,p[g]=f)}d&&c&&c(p)}}});function jt(e,t,n,o=!1){let r=(0,ce.useRef)(t),i=(0,ce.useCallback)(s=>{let{width:l,height:a}=s.getBoundingClientRect(),{clientWidth:u,clientHeight:c}=s;return r.current.reduce((p,d)=>(p[d]=Zt(s,{width:l,height:a,contentHeight:c,contentWidth:u},d),p),{})},[]);(0,ce.useEffect)(()=>{let s=e.current;async function l(){ae.set(s,{measurements:{}}),await document.fonts.ready;let a=ae.get(s);if(a){let u=i(s);a.measurements=u,Qt.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(ae.has(s))throw Error("useResizeObserver attemping to observe same element twice");l()}return()=>{s&&ae.has(s)&&(Qt.unobserve(s),ae.delete(s))}},[i,e]),(0,ce.useEffect)(()=>{let s=e.current,l=ae.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 xo=["clientHeight","clientWidth"],qt=e=>Number.isFinite(e),Ho={height:"100%",width:"100%"},Po=(e,t)=>(0,Q.isValidNumber)(e)&&(0,Q.isValidNumber)(t)?{height:`${e}px`,width:`${t}px`}:Ho,Eo=(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:Po(n,o),inner:Eo(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,T=(0,Q.isValidNumber)(h)?h-d:0;return{...a,outer:{height:n,width:o},inner:{height:n-f,width:o-T}}}}return a})},[n,o]);let l=(0,oe.useCallback)(({clientWidth:a,clientHeight:u})=>{s(c=>{let{css:p,inner:d,outer:g}=c;return qt(u)&&qt(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 jt(r,xo,l,!0),{containerRef:r,cssSize:i.css,outerSize:i.outer,innerSize:i.inner}};var Ce=require("@vuu-ui/vuu-utils"),xe=require("react"),{IDX:So,SELECTED:Ao}=Ce.metadataKeys,Lo=[],en=({selectionModel:e,onSelectionChange:t})=>{let n=(0,xe.useRef)(-1),o=(0,xe.useRef)(Lo);return(0,xe.useCallback)((i,s,l)=>{let{[So]:a,[Ao]:u}=i,{current:c}=n,{current:p}=o,g=(u?Ce.deselectItem:Ce.selectItem)(e,p,a,s,l,c);o.current=g,n.current=a,t&&t(g)},[t,e])};var tn=require("@heswell/salt-lab"),x=require("@vuu-ui/vuu-utils"),nn=require("react"),{info:it}=(0,x.logger)("useTableModel"),ko=100,on=x.metadataKeys.count,Ko=({serverDataType:e})=>e===void 0,zo=e=>{var t;if((0,x.isTypeDescriptor)(e.type))return(0,x.getCellRenderer)((t=e.type)==null?void 0:t.renderer)},rn=(e,t)=>{if(e.serverDataType)return e.serverDataType;if(t){let n=t.columns.find(o=>o.name===e.name);if(n)return n.serverDataType}return"string"},No=["int","long","double"],sn=e=>e===void 0?void 0:No.includes(e)?"right":"left",Fo=(e,t)=>{switch(it==null||it(`GridModelReducer ${t.type}`),t.type){case"init":return ln(t);case"moveColumn":return Vo(e,t);case"resizeColumn":return Oo(e,t);case"setTableSchema":return Go(e,t);case"hideColumns":return Wo(e,t);case"showColumns":return $o(e,t);case"pinColumn":return Bo(e,t);case"updateColumnProp":return He(e,t);case"tableConfig":return an(e,t);default:return console.log(`unhandled action ${t.type}`),e}},lt=(e,t)=>{let[n,o]=(0,nn.useReducer)(Fo,{tableConfig:e,dataSourceConfig:t},ln);return{columns:n.columns,dispatchColumnAction:o,headings:n.headings}};function ln({dataSourceConfig:e,tableConfig:t}){let n=t.columns.map(at(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 an(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,at=e=>(t,n)=>{let o=rn(t,e.tableSchema),{columnDefaultWidth:r=ko,columnFormatHeader:i}=e,{align:s=sn(o),key:l,name:a,label:u=a,width:c=r,...p}=t,d={...p,align:s,CellRenderer:zo(t),label:Io(u,i),key:l!=null?l:n+on,name:a,originalIdx:n,serverDataType:o,valueFormatter:(0,x.getValueFormatter)(t),width:c};return(0,x.isGroupColumn)(d)&&(d.columns=d.columns.map(g=>at(e)(g,g.key))),d};function Vo(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,tn.moveItem)(r,i,o)}}return e}function Wo(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 $o(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 Oo(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 Go(e,{tableSchema:t}){let{columns:n}=e;if(n.some(Ko)){let o=n.map(r=>{var s;let i=rn(r,t);return{...r,align:(s=r.align)!=null?s:sn(i),serverDataType:i}});return{...e,columns:o,tableSchema:t}}else return{...e,tableSchema:t}}function Bo(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 an(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+on,f=(0,x.findColumn)(c.columns,g);return f?f.key===h?f:{...f,key:h}:at(e)({name:p},d)})}),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 I=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]},Uo=e=>{let{clientHeight:t,clientWidth:n,scrollHeight:o,scrollWidth:r}=e;return[r-n,o-t]},un=({onAttach:e,onDetach:t})=>{let n=(0,I.useRef)(null);return(0,I.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])},mn=({onHorizontalScroll:e,onVerticalScroll:t,viewport:n})=>{let o=(0,I.useRef)(!1),r=(0,I.useRef)({scrollTop:0,scrollLeft:0}),i=(0,I.useRef)(null),s=(0,I.useRef)(null),{maxScrollContainerScrollHorizontal:l,maxScrollContainerScrollVertical:a}=n,u=(0,I.useCallback)(()=>{let{current:m}=s,{current:C}=i,{current:R}=o;if(R)o.current=!1;else if(m&&C){let[w,v]=cn(C),[D,A]=Uo(m),E=Math.round(w*D),b=Math.round(v*A);m.scrollTo({left:E,top:b,behavior:"auto"})}},[]),c=(0,I.useCallback)(()=>{let{current:m}=s,{current:C}=i,{current:R}=r;if(m&&C){let{scrollLeft:w,scrollTop:v}=m,[D,A]=cn(m);o.current=!0,C.scrollLeft=Math.round(D*l),C.scrollTop=Math.round(A*a),R.scrollTop!==v&&(R.scrollTop=v,t==null||t(v,A)),R.scrollLeft!==w&&(R.scrollLeft=w,e==null||e(w))}},[l,a,e,t]),p=(0,I.useCallback)(m=>{i.current=m,m.addEventListener("scroll",u,{passive:!0})},[u]),d=(0,I.useCallback)(m=>{i.current=null,m.removeEventListener("scroll",u)},[u]),g=(0,I.useCallback)(m=>{s.current=m,m.addEventListener("scroll",c,{passive:!0})},[c]),h=(0,I.useCallback)(m=>{s.current=null,m.removeEventListener("scroll",c)},[c]),f=un({onAttach:g,onDetach:h}),T=un({onAttach:p,onDetach:d}),y=(0,I.useCallback)(m=>{let{current:C}=s;if(C){if(o.current=!1,m.type==="scroll-page"){let{clientHeight:R,scrollLeft:w,scrollTop:v}=C,{direction:D}=m,A=D==="down"?R:-R,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:R}=m,w=R==="end"?a:0;C.scrollTo({top:w,left:C.scrollLeft,behavior:"auto"})}}},[a]);return{scrollbarContainerRef:T,contentContainerRef:f,requestScroll:y}};var Z=require("react"),Fe=require("@vuu-ui/vuu-utils"),_o=15e5,Jo={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},Xo=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,_o)*r,c=o*r-a,{pinnedWidthLeft:p,pinnedWidthRight:d,unpinnedWidth:g}=(0,Z.useMemo)(()=>Xo(e),[e]),[h,f]=(0,Z.useMemo)(()=>(0,Fe.actualRowPositioning)(r),[r]),[T,y]=(0,Z.useMemo)(()=>c?(0,Fe.virtualRowPositioning)(r,c,s):[h,f],[f,h,c,r]),m=(0,Z.useCallback)(C=>{s.current=C},[]);return(0,Z.useMemo)(()=>{var C;if(i){let R=n.length,w=15,v=p+g+d,D=v>i.width?w:0,A=t*(1+R),E=a-(((C=i==null?void 0:i.height)!=null?C:0)-D)+A,b=v-i.width+p,M=(i.height-t)/r,S=Number.isInteger(M)?M+1:Math.ceil(M),H=i.height-A,W=a>H?w:0;return{contentHeight:a,getRowAtPosition:y,getRowOffset:T,horizontalScrollbarHeight:D,maxScrollContainerScrollHorizontal:b,maxScrollContainerScrollVertical:E,pinnedWidthLeft:p,pinnedWidthRight:d,rowCount:S,contentWidth:v,setPctScrollTop:m,totalHeaderHeight:A,verticalScrollbarWidth:W,viewportBodyHeight:H}}else return Jo},[i,n.length,p,g,d,a,t,r,y,T,m])};var Pe=require("@vuu-ui/vuu-utils"),V=require("react"),dn=({columns:e,getRowAtPosition:t,setRange:n,viewportMeasurements:o})=>{let r=(0,V.useRef)(-1),{rowCount:i,contentWidth:s,maxScrollContainerScrollHorizontal:l}=o,a=s-l,u=(0,V.useRef)(0),[c,p]=(0,V.useMemo)(()=>(0,Pe.getColumnsInViewport)(e,u.current,u.current+a),[a,e]),d=(0,V.useRef)(p);(0,V.useEffect)(()=>{h(c)},[c]);let[g,h]=(0,V.useState)(c),f=(0,V.useCallback)(y=>{u.current=y;let[m,C]=(0,Pe.getColumnsInViewport)(e,y,y+a);(0,Pe.itemsChanged)(g,m)&&(d.current=C,h(m))},[a,e,g]),T=(0,V.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:T,virtualColSpan:d.current}};var Yo=[],{KEY:Qo,IS_EXPANDED:pn,IS_LEAF:fn}=_.metadataKeys,bn=({config:e,dataSource:t,headerHeight:n,onConfigChange:o,onFeatureEnabled:r,onFeatureInvocation:i,onSelectionChange:s,renderBufferSize:l=0,rowHeight:a,selectionModel:u,...c})=>{var dt,pt;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),T=(0,L.useCallback)(P=>{d(P)},[]),{columns:y,dispatchColumnAction:m,headings:C}=lt(e,t.config),{getRowAtPosition:R,getRowOffset:w,setPctScrollTop:v,...D}=ct({columns:y,headerHeight:n,headings:C,rowCount:p,rowHeight:a,size:f.innerSize}),A=(0,L.useCallback)(({tableSchema:P})=>{P?(g.current=!0,m({type:"setTableSchema",tableSchema:P})):console.log("usbscription message with no schema")},[m]),E=(0,L.useCallback)(P=>{t.select(P),s==null||s(P)},[t,s]),b=en({onSelectionChange:E,selectionModel:u}),{data:M,getSelectedRows:S,range:H,setRange:W}=$t({dataSource:t,onFeatureEnabled:r,onFeatureInvocation:i,onSubscribed:A,onSizeChange:T,renderBufferSize:l,viewportRowCount:D.rowCount}),me=(0,L.useRef)();me.current=M;let Ve=(0,L.useCallback)(P=>{g.current=!0,m(P)},[m]),wn=Ue({dataSource:t,onPersistentColumnOperation:Ve}),Mn=(0,L.useCallback)((P,z=!1,O)=>{t&&(t.sort=(0,_.applySort)(t.sort,P,z,O))},[t]),Tn=(0,L.useCallback)((P,z,O)=>{let F=y.find(J=>J.name===z);if(F)P==="end"&&(g.current=!0),m({type:"resizeColumn",phase:P,column:F,width:O});else throw Error(`useDataTable.handleColumnResize, column ${z} not found`)},[y,m]),Rn=(0,L.useCallback)((P,z)=>{let O=(0,_.isJsonGroup)(z,P),F=P[Qo];if(P[pn]){if(t.closeTreeNode(F,!0),O){let J=y.indexOf(z);t.getRowsAtDepth(J+1).some(X=>X[pn]||X[fn])||m({type:"hideColumns",columns:y.slice(J+2)})}}else if(t.openTreeNode(F),O){let J=t.getChildRows(F),re=y.indexOf(z)+1,X=[y[re]];J.some(de=>de[fn])&&X.push(y[re+1]),X.some(de=>de.hidden)&&m({type:"showColumns",columns:X})}},[y,t,m]),{onVerticalScroll:ut,onHorizontalScroll:Dn,columnsWithinViewport:xn,virtualColSpan:Hn}=dn({columns:y,getRowAtPosition:R,setRange:W,viewportMeasurements:D}),Pn=(0,L.useCallback)((P,z)=>{v(z),ut(P)},[ut,v]),{requestScroll:En,...Sn}=mn({onHorizontalScroll:Dn,onVerticalScroll:Pn,viewport:D,viewportHeight:((pt=(dt=f.innerSize)==null?void 0:dt.height)!=null?pt:0)-n}),An=Yt({columnCount:y.length,containerRef:f.containerRef,data:M,requestScroll:En,rowCount:t==null?void 0:t.size,viewportRange:H}),Ln=(0,L.useCallback)(P=>{P?t&&t.groupBy.includes(P.name)&&(t.groupBy=t.groupBy.filter(z=>z!==P.name)):t.groupBy=[]},[t]),kn=(0,L.useCallback)((P,z)=>{let O=t.columns[P],F=(0,_.moveItem)(t.columns,O,z);F!==t.columns&&(t.columns=F,m({type:"tableConfig",columns:F}))},[t,m]),Kn=Gt({onDrop:kn});(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,z)=>{g.current=!0,m({type:"tableConfig",...P,confirmed:z})})},[t,m]),(0,L.useMemo)(()=>{g.current&&(o==null||o({...e,columns:y}),g.current=!1)},[y,e,o]);let mt=(0,gn.useContextMenu)(),zn=(0,L.useCallback)(P=>{var X;let{current:z}=me,{current:O}=h,F=P.target,J=F==null?void 0:F.closest("div[role='cell']"),re=F==null?void 0:F.closest(".vuuTableRow");if(J&&re&&z&&O){let{columns:de,selectedRowsCount:Nn}=O,Fn=(0,_.buildColumnMap)(de),In=parseInt((X=re.ariaRowIndex)!=null?X:"-1"),Vn=Array.from(re.childNodes).indexOf(J),Wn=z.find(([On])=>On===In),$n=de[Vn];mt(P,"grid",{columnMap:Fn,columnName:$n,row:Wn,selectedRows:Nn===0?Yo:S(),viewport:t==null?void 0:t.viewport})}},[t==null?void 0:t.viewport,S,mt]);return{columns:y,columnsWithinViewport:xn,containerMeasurements:f,containerProps:An,data:M,dispatchColumnAction:m,getRowOffset:w,handleContextMenuAction:wn,headings:C,onColumnResize:Tn,onContextMenu:zn,onRemoveColumnFromGroupBy:Ln,onRowClick:b,onSort:Mn,onToggleGroup:Rn,virtualColSpan:Hn,scrollProps:Sn,rowCount:p,viewportMeasurements:D,...Kn}};var hn=q(require("classnames"));var vn=require("@vuu-ui/vuu-utils"),j=require("react/jsx-runtime"),ue="vuuTable",Zo=({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:T,zebraStripes:y=!1,...m})=>{let C=(0,Ie.useIdMemo)(s),{containerMeasurements:{containerRef:R,innerSize:w,outerSize:v},containerProps:D,dispatchColumnAction:A,draggable:E,draggedItemIndex:b,handleContextMenuAction:M,scrollProps:S,viewportMeasurements:H,...W}=bn({config:n,dataSource:o,renderBufferSize:d,headerHeight:r,height:i,onConfigChange:l,onFeatureEnabled:a,onFeatureInvocation:u,onSelectionChange:c,rowHeight:g,selectionModel:h,width:T}),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,hn.default)(ue,t,{[`${ue}-zebra`]:y,[`${ue}-loading`]:(0,vn.isDataLoading)(W.columns)});return(0,j.jsx)(Cn.ContextMenuProvider,{menuActionHandler:M,menuBuilder:Ge(o),children:(0,j.jsxs)("div",{...m,...D,className:Ve,id:C,ref:R,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)(Wt,{...W,headerHeight:r,tableId:C}),E]}):null,e&&w?(0,j.jsx)(Ie.Button,{className:`${ue}-settings`,"data-icon":"settings",onClick:p,variant:"secondary"}):null]})})};var yn=q(require("classnames")),ye=require("@vuu-ui/vuu-utils");var ve=require("react/jsx-runtime"),Ee="vuuJsonCell",{IS_EXPANDED:jo,KEY:qo}=ye.metadataKeys,er=e=>{let t=e.lastIndexOf("|");return t===-1?"":e.slice(t+1)},tr=({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=er(t[qo]),s=(0,yn.default)({[`${Ee}-name`]:i===o,[`${Ee}-value`]:i!==o,[`${Ee}-group`]:r});if(r){let l=t[jo]?"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",tr,"cell-renderer",{});
|
|
1
|
+
"use strict";var Zr=Object.create;var ht=Object.defineProperty;var qr=Object.getOwnPropertyDescriptor;var es=Object.getOwnPropertyNames;var ts=Object.getPrototypeOf,ns=Object.prototype.hasOwnProperty;var rs=(r,e)=>{for(var t in e)ht(r,t,{get:e[t],enumerable:!0})},mn=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of es(e))!ns.call(r,s)&&s!==t&&ht(r,s,{get:()=>e[s],enumerable:!(n=qr(e,s))||n.enumerable});return r};var Ce=(r,e,t)=>(t=r!=null?Zr(ts(r)):{},mn(e||!r||!r.__esModule?ht(t,"default",{value:r,enumerable:!0}):t,r)),ss=r=>mn(ht({},"__esModule",{value:!0}),r);var gn=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)};var ie=(r,e,t)=>(gn(r,e,"read from private field"),t?t.call(r):e.get(r)),bn=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},Mt=(r,e,t,n)=>(gn(r,e,"write to private field"),n?n.call(r,t):e.set(r,t),t);var Ri={};rs(Ri,{ColumnResizer:()=>Xe,Table:()=>wi,buildContextMenuDescriptors:()=>Tt,isShowSettings:()=>ii,useMeasuredContainer:()=>ln,useSelection:()=>an,useTableColumnResize:()=>qe,useTableContextMenu:()=>Ot,useTableModel:()=>un,useTableViewport:()=>hn});module.exports=ss(Ri);var Ie=require("react");var xn=require("react/jsx-runtime"),Cn=()=>{},is="vuuColumnResizer",Xe=({onDrag:r,onDragEnd:e=Cn,onDragStart:t=Cn})=>{let n=(0,Ie.useRef)(0),s=(0,Ie.useCallback)(l=>{l.stopPropagation&&l.stopPropagation(),l.preventDefault&&l.preventDefault();let a=Math.round(l.clientX),u=a-n.current;n.current=a,u!==0&&r(l,u)},[r]),o=(0,Ie.useCallback)(l=>{window.removeEventListener("mouseup",o),window.removeEventListener("mousemove",s),e(l)},[e,s]),i=(0,Ie.useCallback)(l=>{t(l),n.current=Math.round(l.clientX),window.addEventListener("mouseup",o),window.addEventListener("mousemove",s),l.stopPropagation&&l.stopPropagation(),l.preventDefault&&l.preventDefault()},[t,s,o]);return(0,xn.jsx)("div",{className:is,"data-align":"end",onMouseDown:i})};var wn=require("@vuu-ui/vuu-utils"),Tt=r=>(e,t)=>{let n=[];if(r===void 0)return n;if(e==="header")n.push(...os(t,r)),n.push(...us(t,r)),n.push(...ls(t,r)),n.push(...as(t)),n.push({action:"column-settings",icon:"cog",label:"Column Settings",options:t});else if(e==="filter"){let{column:s,filter:o}=t,i=(o==null?void 0:o.column)===(s==null?void 0:s.name);n.push({label:"Edit filter",action:"filter-edit",options:t}),n.push({label:"Remove filter",action:"filter-remove-column",options:t}),s&&!i&&n.push({label:"Remove all filters",action:"remove-filters",options:t})}return n};function os(r,{sort:{sortDefs:e}}){let{column:t}=r,n=[];if(t===void 0)return n;let s=e.length>0;return t.sorted==="A"?n.push({label:"Reverse Sort (DSC)",action:"sort-dsc",options:r}):t.sorted==="D"?n.push({label:"Reverse Sort (ASC)",action:"sort-asc",options:r}):typeof t.sorted=="number"?(t.sorted>0?n.push({label:"Reverse Sort (DSC)",action:"sort-add-dsc",options:r}):n.push({label:"Reverse Sort (ASC)",action:"sort-add-asc",options:r}),s&&Math.abs(t.sorted)<e.length&&n.push({label:"Remove from sort",action:"sort-remove",options:r}),n.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:r},{label:"Descending",action:"sort-dsc",options:r}]})):s?(n.push({label:"Add to sort",children:[{label:"Ascending",action:"sort-add-asc",options:r},{label:"Descending",action:"sort-add-dsc",options:r}]}),n.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:r},{label:"Descending",action:"sort-dsc",options:r}]})):n.push({label:"Sort",children:[{label:"Ascending",action:"sort-asc",options:r},{label:"Descending",action:"sort-dsc",options:r}]}),n}function ls(r,e){let{column:t}=r;if(t===void 0||e.groupBy.length===0)return[];let{name:n,label:s=n}=t;return[{label:`Aggregate ${s}`,children:[{label:"Count",action:"agg-count",options:r},{label:"Distinct",action:"agg-distinct",options:r}].concat((0,wn.isNumericColumn)(t)?[{label:"Sum",action:"agg-sum",options:r},{label:"Avg",action:"agg-avg",options:r},{label:"High",action:"agg-high",options:r},{label:"Low",action:"agg-low",options:r}]:[])}]}var Dt=(r,e)=>({label:`Pin ${e}`,action:`column-pin-${e}`,options:r}),Rt=r=>Dt(r,"left"),kt=r=>Dt(r,"floating"),St=r=>Dt(r,"right");function as(r){let{column:e}=r;if(e===void 0)return[];let{pin:t}=e,n=[{label:"Hide column",action:"column-hide",options:r},{label:"Remove column",action:"column-remove",options:r}];return t===void 0?n.push({label:"Pin column",children:[Rt(r),kt(r),St(r)]}):t==="left"?n.push({label:"Unpin column",action:"column-unpin",options:r},{label:"Pin column",children:[kt(r),St(r)]}):t==="right"?n.push({label:"Unpin column",action:"column-unpin",options:r},{label:"Pin column",children:[Rt(r),kt(r)]}):t==="floating"&&n.push({label:"Unpin column",action:"column-unpin",options:r},{label:"Pin column",children:[Rt(r),St(r)]}),n}function us(r,{groupBy:e}){let{column:t}=r,n=[];if(t===void 0)return n;let{name:s,label:o=s}=t;return e.length===0?n.push({label:`Group by ${o}`,action:"group",options:r}):n.push({label:`Add ${o} to group by`,action:"group-add",options:r}),n}var yn=require("@vuu-ui/vuu-utils"),F=require("@vuu-ui/vuu-utils"),cs=(r,e)=>{if(r.filterStruct&&e){let[t,n]=(0,yn.removeColumnFromFilter)(e,r.filterStruct);return{filter:n,filterStruct:t}}else return r},{Average:hs,Count:fs,Distinct:ps,High:ds,Low:ms,Sum:gs}=F.AggregationType,Ot=({dataSource:r,onPersistentColumnOperation:e})=>(n,s)=>{let o=s;if(o.column&&r){let{column:i}=o;switch(n){case"sort-asc":return r.sort=(0,F.setSortColumn)(r.sort,i,"A"),!0;case"sort-dsc":return r.sort=(0,F.setSortColumn)(r.sort,i,"D"),!0;case"sort-add-asc":return r.sort=(0,F.addSortColumn)(r.sort,i,"A"),!0;case"sort-add-dsc":return r.sort=(0,F.addSortColumn)(r.sort,i,"D"),!0;case"group":return r.groupBy=(0,F.addGroupColumn)(r.groupBy,i),!0;case"group-add":return r.groupBy=(0,F.addGroupColumn)(r.groupBy,i),!0;case"column-hide":return e({type:"hideColumns",columns:[i]}),!0;case"column-remove":return r.columns=r.columns.filter(l=>l!==i.name),!0;case"filter-remove-column":return r.filter=cs(r.filter,i),!0;case"remove-filters":return r.filter={filter:""},!0;case"agg-avg":return r.aggregations=(0,F.setAggregations)(r.aggregations,i,hs),!0;case"agg-high":return r.aggregations=(0,F.setAggregations)(r.aggregations,i,ds),!0;case"agg-low":return r.aggregations=(0,F.setAggregations)(r.aggregations,i,ms),!0;case"agg-count":return r.aggregations=(0,F.setAggregations)(r.aggregations,i,fs),!0;case"agg-distinct":return r.aggregations=(0,F.setAggregations)(r.aggregations,i,ps),!0;case"agg-sum":return r.aggregations=(0,F.setAggregations)(r.aggregations,i,gs),!0;case"column-pin-floating":return e({type:"pinColumn",column:i,pin:"floating"}),!0;case"column-pin-left":return e({type:"pinColumn",column:i,pin:"left"}),!0;case"column-pin-right":return e({type:"pinColumn",column:i,pin:"right"}),!0;case"column-unpin":return e({type:"pinColumn",column:i,pin:void 0}),!0;case"column-settings":return e({type:"columnSettings",column:i}),!0;default:}}return!1};var Hr=require("@vuu-ui/vuu-popups"),Pt=require("@salt-ds/core");var X=require("@vuu-ui/vuu-utils"),Fe=require("react");var Z=require("@vuu-ui/vuu-utils"),Sn=Ce(require("classnames")),Je=require("react");var ft=require("@vuu-ui/vuu-utils"),Pn=require("@heswell/salt-lab"),Mn=Ce(require("classnames")),he=require("react");var Ye=require("react/jsx-runtime"),{KEY:vn}=ft.metadataKeys,At=(0,he.memo)(({className:r,column:e,columnMap:t,onClick:n,row:s})=>{let o=(0,he.useRef)(null),{align:i,CellRenderer:l,key:a,pin:u,editable:c,resizing:h,valueFormatter:f}=e,[m,g]=(0,he.useState)(!1),C=f(s[a]),[D,R]=(0,he.useState)(C),b=()=>{var M;(M=o.current)==null||M.focus()},x=M=>{M.key==="Enter"&&g(!0)},P=(0,he.useCallback)(M=>{n==null||n(M,e)},[e,n]),w=()=>{g(!0)},p=(M="",d="",v=!0,T=!1)=>{var k;g(!1),T?R(M):d!==M&&R(d),v===!1&&((k=o.current)==null||k.focus())},y=(0,Mn.default)(r,{vuuAlignRight:i==="right",vuuPinFloating:u==="floating",vuuPinLeft:u==="left",vuuPinRight:u==="right","vuuTableCell-resizing":h})||void 0,S=(0,ft.getColumnStyle)(e);return c?(0,Ye.jsx)("div",{className:y,"data-editable":!0,role:"cell",style:S,onKeyDown:x,children:(0,Ye.jsx)(Pn.EditableLabel,{editing:m,value:D,onChange:R,onMouseDownCapture:b,onEnterEditMode:w,onExitEditMode:p,onKeyDown:x,ref:o,tabIndex:0},"title")}):(0,Ye.jsx)("div",{className:y,role:"cell",style:S,onClick:P,children:l?(0,Ye.jsx)(l,{column:e,columnMap:t,row:s}):C})},bs);At.displayName="TableCell";function bs(r,e){return r.column===e.column&&r.onClick===e.onClick&&r.row[vn]===e.row[vn]&&r.row[r.column.key]===e.row[e.column.key]}var Ne=require("@vuu-ui/vuu-utils"),Rn=require("react");var Le=require("react/jsx-runtime"),{IS_LEAF:Cs}=Ne.metadataKeys,kn=({column:r,onClick:e,row:t})=>{let{columns:n}=r,[s,o]=(0,Ne.getGroupValueAndOffset)(n,t),i=(0,Rn.useCallback)(c=>{e==null||e(c,r)},[r,e]),l=(0,Ne.getColumnStyle)(r),a=t[Cs],u=Array(o).fill(0).map((c,h)=>(0,Le.jsx)("span",{className:"vuuTableGroupCell-spacer"},h));return(0,Le.jsxs)("div",{className:"vuuTableGroupCell vuuPinLeft",onClick:a?void 0:i,role:"cell",style:l,children:[u,a?null:(0,Le.jsx)("span",{className:"vuuTableGroupCell-toggle","data-icon":"triangle-right"}),(0,Le.jsx)("span",{children:s})]})};var Ze=require("react/jsx-runtime"),{IDX:xs,IS_EXPANDED:ws,SELECTED:ys}=Z.metadataKeys,pt="vuuTableRow",Tn=(0,Je.memo)(function({columnMap:e,columns:t,offset:n,onClick:s,onToggleGroup:o,virtualColSpan:i=0,row:l}){let{[xs]:a,[ws]:u,[ys]:c}=l,h=(0,Sn.default)(pt,{[`${pt}-even`]:a%2===0,[`${pt}-expanded`]:u,[`${pt}-preSelected`]:c===2}),f=(0,Je.useCallback)(g=>{let C=g.shiftKey,D=g.ctrlKey||g.metaKey;s==null||s(l,C,D)},[s,l]),m=(0,Je.useCallback)((g,C)=>{((0,Z.isGroupColumn)(C)||(0,Z.isJsonGroup)(C,l))&&(g.stopPropagation(),o==null||o(l,C))},[o,l]);return(0,Ze.jsxs)("div",{"aria-selected":c===1?!0:void 0,"aria-rowindex":a,className:h,onClick:f,role:"row",style:{transform:`translate3d(0px, ${n}px, 0px)`},children:[i>0?(0,Ze.jsx)("div",{role:"cell",style:{width:i}}):null,t.filter(Z.notHidden).map(g=>{let C=(0,Z.isGroupColumn)(g),D=(0,Z.isJsonColumn)(g);return(0,Ze.jsx)(C?kn:At,{column:g,columnMap:e,onClick:C||D?m:void 0,row:l},g.name)})]})});var Et=Ce(require("classnames")),On=require("react");var ke=require("react"),qe=({column:r,onResize:e,rootRef:t})=>{let n=(0,ke.useRef)(0),s=(0,ke.useRef)(!1),{name:o}=r,i=(0,ke.useCallback)(()=>{if(e&&t.current){console.log("handleResizeStart");let{width:u}=t.current.getBoundingClientRect();n.current=Math.round(u),s.current=!0,e==null||e("begin",o)}},[o,e,t]),l=(0,ke.useCallback)((u,c)=>{if(t.current&&e){let{width:h}=t.current.getBoundingClientRect(),f=Math.round(h)+c;f!==n.current&&f>0&&(e("resize",o,f),n.current=f)}},[o,e,t]),a=(0,ke.useCallback)(()=>{e&&(e("end",o,n.current),setTimeout(()=>{s.current=!1},100))},[o,e]);return{isResizing:s.current,onDrag:l,onDragStart:i,onDragEnd:a}};var q=require("react/jsx-runtime"),xe="vuuTable-groupHeaderCell",Dn=({column:r,onClick:e,...t})=>(0,q.jsx)("span",{...t,className:`${xe}-close`,"data-icon":"close-circle",onClick:()=>e==null?void 0:e(r)}),vs=r=>{let{children:e,column:t,className:n}=r;return(0,q.jsxs)("div",{className:(0,Et.default)(`${xe}-col`,n),role:"columnheader",children:[(0,q.jsx)("span",{className:`${xe}-label`,children:t.name}),e]})},An=({column:r,className:e,onRemoveColumn:t,onResize:n,...s})=>{let o=(0,On.useRef)(null),{isResizing:i,...l}=qe({column:r,onResize:n,rootRef:o}),a=(0,Et.default)(xe,e,{vuuPinLeft:r.pin==="left",[`${xe}-right`]:r.align==="right",[`${xe}-resizing`]:r.resizing,[`${xe}-pending`]:r.groupConfirmed===!1}),{columns:u}=r;return(0,q.jsx)("div",{className:a,ref:o,...s,children:(0,q.jsxs)("div",{className:`${xe}-inner`,children:[u.map(c=>(0,q.jsx)(vs,{column:c,children:u.length>1?(0,q.jsx)(Dn,{column:c,onClick:t}):null},c.key)),(0,q.jsx)(Dn,{"data-align":"end",onClick:t}),r.resizeable!==!1?(0,q.jsx)(Xe,{...l}):null]})})};var zn=Ce(require("classnames")),Te=require("react");var Ht=Ce(require("classnames"));var Se=require("react/jsx-runtime"),En="vuuSortIndicator",Hn=({sorted:r})=>{if(!r)return null;let e=typeof r=="number"?r<0?"dsc":"asc":r==="A"?"asc":"dsc";return typeof r=="number"?(0,Se.jsxs)("div",{className:(0,Ht.default)(En,"multi-col",e),children:[(0,Se.jsx)("span",{"data-icon":`sorted-${e}`}),(0,Se.jsx)("span",{className:"vuuSortPosition",children:Math.abs(r)})]}):(0,Se.jsx)("div",{className:(0,Ht.default)(En,"single-col"),children:(0,Se.jsx)("span",{"data-icon":`sorted-${e}`})})};var Wn=require("@vuu-ui/vuu-popups");var Vn=require("@vuu-ui/vuu-popups"),In=Ce(require("classnames")),Ln=require("react");var Fn=require("react/jsx-runtime");var Nn=({column:r,filter:e})=>{let t=(0,Vn.useContextMenu)(),n=(0,Ln.useCallback)(s=>{s.stopPropagation(),t(s,"filter",{column:r,filter:e})},[r,e,t]);return r.filter?(0,Fn.jsx)("div",{className:(0,In.default)("vuuFilterIndicator"),"data-icon":"filter",onClick:n}):null};var we=require("react/jsx-runtime"),et="vuuTable-headerCell",Kn=({column:r,className:e,onClick:t,onDragStart:n,onResize:s,...o})=>{let i=(0,Te.useRef)(null),{isResizing:l,...a}=qe({column:r,onResize:s,rootRef:i}),u=(0,Wn.useContextMenu)(),c=(0,Te.useRef)(null),h=D=>{u(D,"header",{column:r})},f=(0,Te.useCallback)(D=>!l&&(t==null?void 0:t(D)),[l,t]),m=(0,Te.useCallback)(D=>{c.current=window.setTimeout(()=>{n==null||n(D),c.current=null},500)},[n]),g=(0,Te.useCallback)(()=>{c.current!==null&&(window.clearTimeout(c.current),c.current=null)},[]),C=(0,zn.default)(et,e,{vuuPinFloating:r.pin==="floating",vuuPinLeft:r.pin==="left",vuuPinRight:r.pin==="right",vuuEndPin:r.endPin,[`${et}-resizing`]:r.resizing,[`${et}-right`]:r.align==="right"});return(0,we.jsx)("div",{className:C,...o,onClick:f,onContextMenu:h,onMouseDown:m,onMouseUp:g,ref:i,children:(0,we.jsxs)("div",{className:`${et}-inner`,children:[(0,we.jsx)(Nn,{column:r}),(0,we.jsx)("div",{className:`${et}-label`,children:r.label}),(0,we.jsx)(Hn,{sorted:r.sorted}),r.resizeable!==!1?(0,we.jsx)(Xe,{...a}):null]})})};var ee=require("react/jsx-runtime"),Vt="vuuTable",{RENDER_IDX:Ps}=X.metadataKeys,Bn=({columns:r,columnsWithinViewport:e,data:t,getRowOffset:n,headings:s,onColumnResize:o,onHeaderCellDragStart:i,onContextMenu:l,onRemoveColumnFromGroupBy:a,onRowClick:u,onSort:c,onToggleGroup:h,tableId:f,virtualColSpan:m=0,rowCount:g})=>{let C=(0,Fe.useCallback)(x=>{i==null||i(x)},[i]),D=(0,Fe.useMemo)(()=>r.filter(X.notHidden),[r]),R=(0,Fe.useMemo)(()=>(0,X.buildColumnMap)(r),[r]),b=(0,Fe.useCallback)(x=>{var M;let w=x.target.closest(".vuuTable-headerCell"),p=parseInt((M=w==null?void 0:w.dataset.idx)!=null?M:"-1"),y=(0,X.visibleColumnAtIndex)(r,p),S=x.shiftKey;y&&c(y,S)},[r,c]);return(0,ee.jsxs)("div",{"aria-rowcount":g,className:`${Vt}-table`,role:"table",children:[(0,ee.jsxs)("div",{className:`${Vt}-headers`,role:"rowGroup",children:[s.map((x,P)=>(0,ee.jsx)("div",{className:"vuuTable-heading",children:x.map(({label:w,width:p},y)=>(0,ee.jsx)("div",{className:"vuuTable-headingCell",style:{width:p},children:w},y))},P)),(0,ee.jsx)("div",{role:"row",children:D.map((x,P)=>{let w=(0,X.getColumnStyle)(x);return(0,X.isGroupColumn)(x)?(0,ee.jsx)(An,{column:x,"data-idx":P,onRemoveColumn:a,onResize:o,role:"columnHeader",style:w},P):(0,ee.jsx)(Kn,{column:x,"data-idx":P,id:`${f}-${P}`,onClick:b,onDragStart:C,onResize:o,role:"columnHeader",style:w},P)})})]}),(0,ee.jsx)("div",{className:`${Vt}-body`,onContextMenu:l,role:"rowGroup",children:t==null?void 0:t.map(x=>(0,ee.jsx)(Tn,{columnMap:R,columns:e,offset:n(x),onClick:u,virtualColSpan:m,onToggleGroup:h,row:x},x[Ps]))})]})};var Ar=require("@vuu-ui/vuu-popups"),ae=require("@vuu-ui/vuu-utils"),H=require("react");var dt=require("@vuu-ui/vuu-utils"),tt=require("react"),{SELECTED:zo}=dt.metadataKeys;var It=require("react"),Ms=require("@vuu-ui/vuu-data");var Lt=require("react"),Rs=require("@vuu-ui/vuu-data");var ks=require("react"),Ss=require("@vuu-ui/vuu-data");var Ts=0,nt=class{constructor(e,t){this.from=e,this.to=t}},E=class{constructor(e={}){this.id=Ts++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=$.match(e)),t=>{let n=e(t);return n===void 0?null:[this,n]}}};E.closedBy=new E({deserialize:r=>r.split(" ")});E.openedBy=new E({deserialize:r=>r.split(" ")});E.group=new E({deserialize:r=>r.split(" ")});E.contextHash=new E({perNode:!0});E.lookAhead=new E({perNode:!0});E.mounted=new E({perNode:!0});var Ds=Object.create(null),$=class{constructor(e,t,n,s=0){this.name=e,this.props=t,this.id=n,this.flags=s}static define(e){let t=e.props&&e.props.length?Object.create(null):Ds,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),s=new $(e.name||"",t,e.id,n);if(e.props){for(let o of e.props)if(Array.isArray(o)||(o=o(s)),o){if(o[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[o[0].id]=o[1]}}return s}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(E.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let n in e)for(let s of n.split(" "))t[s]=e[n];return n=>{for(let s=n.prop(E.group),o=-1;o<(s?s.length:0);o++){let i=t[o<0?n.name:s[o]];if(i)return i}}}};$.none=new $("",Object.create(null),0,8);var ze=class{constructor(e){this.types=e;for(let t=0;t<e.length;t++)if(e[t].id!=t)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...e){let t=[];for(let n of this.types){let s=null;for(let o of e){let i=o(n);i&&(s||(s=Object.assign({},n.props)),s[i[0].id]=i[1])}t.push(s?new $(n.name,s,n.id,n.flags):n)}return new ze(t)}},mt=new WeakMap,_n=new WeakMap,z;(function(r){r[r.ExcludeBuffers=1]="ExcludeBuffers",r[r.IncludeAnonymous=2]="IncludeAnonymous",r[r.IgnoreMounts=4]="IgnoreMounts",r[r.IgnoreOverlays=8]="IgnoreOverlays"})(z||(z={}));var K=class{constructor(e,t,n,s,o){if(this.type=e,this.children=t,this.positions=n,this.length=s,this.props=null,o&&o.length){this.props=Object.create(null);for(let[i,l]of o)this.props[typeof i=="number"?i:i.id]=l}}toString(){let e=this.prop(E.mounted);if(e&&!e.overlay)return e.tree.toString();let t="";for(let n of this.children){let s=n.toString();s&&(t&&(t+=","),t+=s)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(t.length?"("+t+")":""):t}cursor(e=0){return new Ke(this.topNode,e)}cursorAt(e,t=0,n=0){let s=mt.get(this)||this.topNode,o=new Ke(s);return o.moveTo(e,t),mt.set(this,o._tree),o}get topNode(){return new te(this,0,0,null)}resolve(e,t=0){let n=We(mt.get(this)||this.topNode,e,t,!1);return mt.set(this,n),n}resolveInner(e,t=0){let n=We(_n.get(this)||this.topNode,e,t,!0);return _n.set(this,n),n}iterate(e){let{enter:t,leave:n,from:s=0,to:o=this.length}=e,i=e.mode||0,l=(i&z.IncludeAnonymous)>0;for(let a=this.cursor(i|z.IncludeAnonymous);;){let u=!1;if(a.from<=o&&a.to>=s&&(!l&&a.type.isAnonymous||t(a)!==!1)){if(a.firstChild())continue;u=!0}for(;u&&n&&(l||!a.type.isAnonymous)&&n(a),!a.nextSibling();){if(!a.parent())return;u=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:Wt($.none,this.children,this.positions,0,this.children.length,0,this.length,(t,n,s)=>new K(this.type,t,n,s,this.propValues),e.makeTree||((t,n,s)=>new K($.none,t,n,s)))}static build(e){return Os(e)}};K.empty=new K($.none,[],[],0);var rt=class{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new rt(this.buffer,this.index)}},fe=class{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return $.none}toString(){let e=[];for(let t=0;t<this.buffer.length;)e.push(this.childString(t)),t=this.buffer[t+3];return e.join(",")}childString(e){let t=this.buffer[e],n=this.buffer[e+3],s=this.set.types[t],o=s.name;if(/\W/.test(o)&&!s.isError&&(o=JSON.stringify(o)),e+=4,n==e)return o;let i=[];for(;e<n;)i.push(this.childString(e)),e=this.buffer[e+3];return o+"("+i.join(",")+")"}findChild(e,t,n,s,o){let{buffer:i}=this,l=-1;for(let a=e;a!=t&&!(Qn(o,s,i[a+1],i[a+2])&&(l=a,n>0));a=i[a+3]);return l}slice(e,t,n){let s=this.buffer,o=new Uint16Array(t-e),i=0;for(let l=e,a=0;l<t;){o[a++]=s[l++],o[a++]=s[l++]-n;let u=o[a++]=s[l++]-n;o[a++]=s[l++]-e,i=Math.max(i,u)}return new fe(o,i,this.set)}};function Qn(r,e,t,n){switch(r){case-2:return t<e;case-1:return n>=e&&t<e;case 0:return t<e&&n>e;case 1:return t<=e&&n>e;case 2:return n>e;case 4:return!0}}function Un(r,e){let t=r.childBefore(e);for(;t;){let n=t.lastChild;if(!n||n.to!=t.to)break;n.type.isError&&n.from==n.to?(r=t,t=n.prevSibling):t=n}return r}function We(r,e,t,n){for(var s;r.from==r.to||(t<1?r.from>=e:r.from>e)||(t>-1?r.to<=e:r.to<e);){let i=!n&&r instanceof te&&r.index<0?null:r.parent;if(!i)return r;r=i}let o=n?0:z.IgnoreOverlays;if(n)for(let i=r,l=i.parent;l;i=l,l=i.parent)i instanceof te&&i.index<0&&((s=l.enter(e,t,o))===null||s===void 0?void 0:s.from)!=i.from&&(r=l);for(;;){let i=r.enter(e,t,o);if(!i)return r;r=i}}var te=class{constructor(e,t,n,s){this._tree=e,this.from=t,this.index=n,this._parent=s}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(e,t,n,s,o=0){for(let i=this;;){for(let{children:l,positions:a}=i._tree,u=t>0?l.length:-1;e!=u;e+=t){let c=l[e],h=a[e]+i.from;if(Qn(s,n,h,h+c.length)){if(c instanceof fe){if(o&z.ExcludeBuffers)continue;let f=c.findChild(0,c.buffer.length,t,n-h,s);if(f>-1)return new oe(new Nt(i,c,e,h),null,f)}else if(o&z.IncludeAnonymous||!c.type.isAnonymous||zt(c)){let f;if(!(o&z.IgnoreMounts)&&c.props&&(f=c.prop(E.mounted))&&!f.overlay)return new te(f.tree,h,e,i);let m=new te(c,h,e,i);return o&z.IncludeAnonymous||!m.type.isAnonymous?m:m.nextChild(t<0?c.children.length-1:0,t,n,s)}}}if(o&z.IncludeAnonymous||!i.type.isAnonymous||(i.index>=0?e=i.index+t:e=t<0?-1:i._parent._tree.children.length,i=i._parent,!i))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,t,n=0){let s;if(!(n&z.IgnoreOverlays)&&(s=this._tree.prop(E.mounted))&&s.overlay){let o=e-this.from;for(let{from:i,to:l}of s.overlay)if((t>0?i<=o:i<o)&&(t<0?l>=o:l>o))return new te(s.tree,s.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,n)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}cursor(e=0){return new Ke(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return We(this,e,t,!1)}resolveInner(e,t=0){return We(this,e,t,!0)}enterUnfinishedNodesBefore(e){return Un(this,e)}getChild(e,t=null,n=null){let s=bt(this,e,t,n);return s.length?s[0]:null}getChildren(e,t=null,n=null){return bt(this,e,t,n)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return Ct(this,e)}};function bt(r,e,t,n){let s=r.cursor(),o=[];if(!s.firstChild())return o;if(t!=null){for(;!s.type.is(t);)if(!s.nextSibling())return o}for(;;){if(n!=null&&s.type.is(n))return o;if(s.type.is(e)&&o.push(s.node),!s.nextSibling())return n==null?o:[]}}function Ct(r,e,t=e.length-1){for(let n=r.parent;t>=0;n=n.parent){if(!n)return!1;if(!n.type.isAnonymous){if(e[t]&&e[t]!=n.name)return!1;t--}}return!0}var Nt=class{constructor(e,t,n,s){this.parent=e,this.buffer=t,this.index=n,this.start=s}},oe=class{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,n){this.context=e,this._parent=t,this.index=n,this.type=e.buffer.set.types[e.buffer.buffer[n]]}child(e,t,n){let{buffer:s}=this.context,o=s.findChild(this.index+4,s.buffer[this.index+3],e,t-this.context.start,n);return o<0?null:new oe(this.context,this,o)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,t,n=0){if(n&z.ExcludeBuffers)return null;let{buffer:s}=this.context,o=s.findChild(this.index+4,s.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return o<0?null:new oe(this.context,this,o)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new oe(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new oe(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new Ke(this,e)}get tree(){return null}toTree(){let e=[],t=[],{buffer:n}=this.context,s=this.index+4,o=n.buffer[this.index+3];if(o>s){let i=n.buffer[this.index+1];e.push(n.slice(s,o,i)),t.push(0)}return new K(this.type,e,t,this.to-this.from)}resolve(e,t=0){return We(this,e,t,!1)}resolveInner(e,t=0){return We(this,e,t,!0)}enterUnfinishedNodesBefore(e){return Un(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,n=null){let s=bt(this,e,t,n);return s.length?s[0]:null}getChildren(e,t=null,n=null){return bt(this,e,t,n)}get node(){return this}matchContext(e){return Ct(this,e)}},Ke=class{get name(){return this.type.name}constructor(e,t=0){if(this.mode=t,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof te)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let n=e._parent;n;n=n._parent)this.stack.unshift(n.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:n,buffer:s}=this.buffer;return this.type=t||s.set.types[s.buffer[e]],this.from=n+s.buffer[e+1],this.to=n+s.buffer[e+2],!0}yield(e){return e?e instanceof te?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,n){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,n,this.mode));let{buffer:s}=this.buffer,o=s.findChild(this.index+4,s.buffer[this.index+3],e,t-this.buffer.start,n);return o<0?!1:(this.stack.push(this.index),this.yieldBuf(o))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,n=this.mode){return this.buffer?n&z.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&z.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&z.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,n=this.stack.length-1;if(e<0){let s=n<0?0:this.stack[n]+4;if(this.index!=s)return this.yieldBuf(t.findChild(s,this.index,-1,0,4))}else{let s=t.buffer[this.index+3];if(s<(n<0?t.buffer.length:t.buffer[this.stack[n]+3]))return this.yieldBuf(s)}return n<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,n,{buffer:s}=this;if(s){if(e>0){if(this.index<s.buffer.buffer.length)return!1}else for(let o=0;o<this.index;o++)if(s.buffer.buffer[o+3]<this.index)return!1;({index:t,parent:n}=s)}else({index:t,_parent:n}=this._tree);for(;n;{index:t,_parent:n}=n)if(t>-1)for(let o=t+e,i=e<0?-1:n._tree.children.length;o!=i;o+=e){let l=n._tree.children[o];if(this.mode&z.IncludeAnonymous||l instanceof fe||!l.type.isAnonymous||zt(l))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to<e))&&this.parent(););for(;this.enterChild(1,e,t););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,t=null,n=0;if(e&&e.context==this.buffer)e:for(let s=this.index,o=this.stack.length;o>=0;){for(let i=e;i;i=i._parent)if(i.index==s){if(s==this.index)return i;t=i,n=o+1;break e}s=this.stack[--o]}for(let s=n;s<this.stack.length;s++)t=new oe(this.buffer,t,this.stack[s]);return this.bufferNode=new oe(this.buffer,t,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,t){for(let n=0;;){let s=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){n++;continue}this.type.isAnonymous||(s=!0)}for(;s&&t&&t(this),s=this.type.isAnonymous,!this.nextSibling();){if(!n)return;this.parent(),n--,s=!0}}}matchContext(e){if(!this.buffer)return Ct(this.node,e);let{buffer:t}=this.buffer,{types:n}=t.set;for(let s=e.length-1,o=this.stack.length-1;s>=0;o--){if(o<0)return Ct(this.node,e,s);let i=n[t.buffer[this.stack[o]]];if(!i.isAnonymous){if(e[s]&&e[s]!=i.name)return!1;s--}}return!0}};function zt(r){return r.children.some(e=>e instanceof fe||!e.type.isAnonymous||zt(e))}function Os(r){var e;let{buffer:t,nodeSet:n,maxBufferLength:s=1024,reused:o=[],minRepeatType:i=n.types.length}=r,l=Array.isArray(t)?new rt(t,t.length):t,a=n.types,u=0,c=0;function h(P,w,p,y,S){let{id:M,start:d,end:v,size:T}=l,k=c;for(;T<0;)if(l.next(),T==-1){let re=o[M];p.push(re),y.push(d-P);return}else if(T==-3){u=M;return}else if(T==-4){c=M;return}else throw new RangeError(`Unrecognized record size: ${T}`);let L=a[M],B,U,ut=d-P;if(v-d<=s&&(U=C(l.pos-w,S))){let re=new Uint16Array(U.size-U.skip),G=l.pos-U.size,Y=re.length;for(;l.pos>G;)Y=D(U.start,re,Y);B=new fe(re,v-U.start,n),ut=U.start-P}else{let re=l.pos-T;l.next();let G=[],Y=[],se=M>=i?M:-1,be=0,He=v;for(;l.pos>re;)se>=0&&l.id==se&&l.size>=0?(l.end<=He-s&&(m(G,Y,d,be,l.end,He,se,k),be=G.length,He=l.end),l.next()):h(d,re,G,Y,se);if(se>=0&&be>0&&be<G.length&&m(G,Y,d,be,d,He,se,k),G.reverse(),Y.reverse(),se>-1&&be>0){let ct=f(L);B=Wt(L,G,Y,0,G.length,0,v-d,ct,ct)}else B=g(L,G,Y,v-d,k-v)}p.push(B),y.push(ut)}function f(P){return(w,p,y)=>{let S=0,M=w.length-1,d,v;if(M>=0&&(d=w[M])instanceof K){if(!M&&d.type==P&&d.length==y)return d;(v=d.prop(E.lookAhead))&&(S=p[M]+d.length+v)}return g(P,w,p,y,S)}}function m(P,w,p,y,S,M,d,v){let T=[],k=[];for(;P.length>y;)T.push(P.pop()),k.push(w.pop()+p-S);P.push(g(n.types[d],T,k,M-S,v-M)),w.push(S-p)}function g(P,w,p,y,S=0,M){if(u){let d=[E.contextHash,u];M=M?[d].concat(M):[d]}if(S>25){let d=[E.lookAhead,S];M=M?[d].concat(M):[d]}return new K(P,w,p,y,M)}function C(P,w){let p=l.fork(),y=0,S=0,M=0,d=p.end-s,v={size:0,start:0,skip:0};e:for(let T=p.pos-P;p.pos>T;){let k=p.size;if(p.id==w&&k>=0){v.size=y,v.start=S,v.skip=M,M+=4,y+=4,p.next();continue}let L=p.pos-k;if(k<0||L<T||p.start<d)break;let B=p.id>=i?4:0,U=p.start;for(p.next();p.pos>L;){if(p.size<0)if(p.size==-3)B+=4;else break e;else p.id>=i&&(B+=4);p.next()}S=U,y+=k,M+=B}return(w<0||y==P)&&(v.size=y,v.start=S,v.skip=M),v.size>4?v:void 0}function D(P,w,p){let{id:y,start:S,end:M,size:d}=l;if(l.next(),d>=0&&y<i){let v=p;if(d>4){let T=l.pos-(d-4);for(;l.pos>T;)p=D(P,w,p)}w[--p]=v,w[--p]=M-P,w[--p]=S-P,w[--p]=y}else d==-3?u=y:d==-4&&(c=y);return p}let R=[],b=[];for(;l.pos>0;)h(r.start||0,r.bufferStart||0,R,b,-1);let x=(e=r.length)!==null&&e!==void 0?e:R.length?b[0]+R[0].length:0;return new K(a[r.topID],R.reverse(),b.reverse(),x)}var $n=new WeakMap;function gt(r,e){if(!r.isAnonymous||e instanceof fe||e.type!=r)return 1;let t=$n.get(e);if(t==null){t=1;for(let n of e.children){if(n.type!=r||!(n instanceof K)){t=1;break}t+=gt(r,n)}$n.set(e,t)}return t}function Wt(r,e,t,n,s,o,i,l,a){let u=0;for(let g=n;g<s;g++)u+=gt(r,e[g]);let c=Math.ceil(u*1.5/8),h=[],f=[];function m(g,C,D,R,b){for(let x=D;x<R;){let P=x,w=C[x],p=gt(r,g[x]);for(x++;x<R;x++){let y=gt(r,g[x]);if(p+y>=c)break;p+=y}if(x==P+1){if(p>c){let y=g[P];m(y.children,y.positions,0,y.children.length,C[P]+b);continue}h.push(g[P])}else{let y=C[x-1]+g[x-1].length-w;h.push(Wt(r,g,C,P,x,w,y,null,a))}f.push(w+b-o)}}return m(e,t,n,s,0),(l||a)(h,f,i)}var xt=class{startParse(e,t,n){return typeof e=="string"&&(e=new Ft(e)),n=n?n.length?n.map(s=>new nt(s.from,s.to)):[new nt(0,0)]:[new nt(0,e.length)],this.createParse(e,t||[],n)}parse(e,t,n){let s=this.startParse(e,t,n);for(;;){let o=s.advance();if(o)return o}}},Ft=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}};var Qo=new E({perNode:!0});var _e=class{constructor(e,t,n,s,o,i,l,a,u,c=0,h){this.p=e,this.stack=t,this.state=n,this.reducePos=s,this.pos=o,this.score=i,this.buffer=l,this.bufferBase=a,this.curContext=u,this.lookAhead=c,this.parent=h}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,n=0){let s=e.parser.context;return new _e(e,[],t,n,n,0,[],0,s?new wt(s,s.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let n=e>>19,s=e&65535,{parser:o}=this.p,i=o.dynamicPrecedence(s);if(i&&(this.score+=i),n==0){this.pushState(o.getGoto(this.state,s,!0),this.reducePos),s<o.minRepeatTerm&&this.storeNode(s,this.reducePos,this.reducePos,4,!0),this.reduceContext(s,this.reducePos);return}let l=this.stack.length-(n-1)*3-(e&262144?6:0),a=l?this.stack[l-2]:this.p.ranges[0].from,u=this.reducePos-a;u>=2e3&&!(!((t=this.p.parser.nodeSet.types[s])===null||t===void 0)&&t.isAnonymous)&&(a==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=u):this.p.lastBigReductionSize<u&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=a,this.p.lastBigReductionSize=u));let c=l?this.stack[l-1]:0,h=this.bufferBase+this.buffer.length-c;if(s<o.minRepeatTerm||e&131072){let f=o.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(s,a,f,h+4,!0)}if(e&262144)this.state=this.stack[l];else{let f=this.stack[l-3];this.state=o.getGoto(f,s,!0)}for(;this.stack.length>l;)this.stack.pop();this.reduceContext(s,a)}storeNode(e,t,n,s=4,o=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let i=this,l=this.buffer.length;if(l==0&&i.parent&&(l=i.bufferBase-i.parent.bufferBase,i=i.parent),l>0&&i.buffer[l-4]==0&&i.buffer[l-1]>-1){if(t==n)return;if(i.buffer[l-2]>=t){i.buffer[l-2]=n;return}}}if(!o||this.pos==n)this.buffer.push(e,t,n,s);else{let i=this.buffer.length;if(i>0&&this.buffer[i-4]!=0)for(;i>0&&this.buffer[i-2]>n;)this.buffer[i]=this.buffer[i-4],this.buffer[i+1]=this.buffer[i-3],this.buffer[i+2]=this.buffer[i-2],this.buffer[i+3]=this.buffer[i-1],i-=4,s>4&&(s-=4);this.buffer[i]=e,this.buffer[i+1]=t,this.buffer[i+2]=n,this.buffer[i+3]=s}}shift(e,t,n){let s=this.pos;if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=n,this.shiftContext(t,s),t<=this.p.parser.maxNode&&this.buffer.push(t,s,n,4);else{let o=e,{parser:i}=this.p;(n>this.pos||t<=i.maxNode)&&(this.pos=n,i.stateFlag(o,1)||(this.reducePos=n)),this.pushState(o,s),this.shiftContext(t,s),t<=i.maxNode&&this.buffer.push(t,s,n,4)}}apply(e,t,n){e&65536?this.reduce(e):this.shift(e,t,n)}useNode(e,t){let n=this.p.reused.length-1;(n<0||this.p.reused[n]!=e)&&(this.p.reused.push(e),n++);let s=this.pos;this.reducePos=this.pos=s+e.length,this.pushState(t,s),this.buffer.push(n,s,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let n=e.buffer.slice(t),s=e.bufferBase+t;for(;e&&s==e.bufferBase;)e=e.parent;return new _e(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,n,s,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let n=e<=this.p.parser.maxNode;n&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,n?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new Bt(this);;){let n=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(n==0)return!1;if(!(n&65536))return!0;t.reduce(n)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>4<<1||this.stack.length>=120){let s=[];for(let o=0,i;o<t.length;o+=2)(i=t[o+1])!=this.state&&this.p.parser.hasAction(i,e)&&s.push(t[o],i);if(this.stack.length<120)for(let o=0;s.length<4<<1&&o<t.length;o+=2){let i=t[o+1];s.some((l,a)=>a&1&&l==i)||s.push(t[o],i)}t=s}let n=[];for(let s=0;s<t.length&&n.length<4;s+=2){let o=t[s+1];if(o==this.state)continue;let i=this.split();i.pushState(o,this.pos),i.storeNode(0,i.pos,i.pos,4,!0),i.shiftContext(t[s],this.pos),i.score-=200,n.push(i)}return n}forceReduce(){let e=this.p.parser.stateSlot(this.state,5);if(!(e&65536))return!1;let{parser:t}=this.p;if(!t.validAction(this.state,e)){let n=e>>19,s=e&65535,o=this.stack.length-n*3;if(o<0||t.getGoto(this.stack[o],s,!1)<0)return!1;this.storeNode(0,this.reducePos,this.reducePos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(e),!0}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t<this.stack.length;t+=3)if(this.stack[t]!=e.stack[t])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(e){return this.p.parser.dialect.flags[e]}shiftContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,e,this,this.p.stream.reset(t)))}reduceContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,e,this,this.p.stream.reset(t)))}emitContext(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-3)&&this.buffer.push(this.curContext.hash,this.reducePos,this.reducePos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.reducePos,this.reducePos,-4)}updateContext(e){if(e!=this.curContext.context){let t=new wt(this.curContext.tracker,e);t.hash!=this.curContext.hash&&this.emitContext(),this.curContext=t}}setLookAhead(e){e>this.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},wt=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},Gn;(function(r){r[r.Insert=200]="Insert",r[r.Delete=190]="Delete",r[r.Reduce=100]="Reduce",r[r.MaxNext=4]="MaxNext",r[r.MaxInsertStackDepth=300]="MaxInsertStackDepth",r[r.DampenInsertStackDepth=120]="DampenInsertStackDepth",r[r.MinBigReduction=2e3]="MinBigReduction"})(Gn||(Gn={}));var Bt=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,n=e>>19;n==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(n-1)*3;let s=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=s}},$e=class{constructor(e,t,n){this.stack=e,this.pos=t,this.index=n,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new $e(e,t,t-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new $e(this.stack,this.pos,this.index)}};function st(r,e=Uint16Array){if(typeof r!="string")return r;let t=null;for(let n=0,s=0;n<r.length;){let o=0;for(;;){let i=r.charCodeAt(n++),l=!1;if(i==126){o=65535;break}i>=92&&i--,i>=34&&i--;let a=i-32;if(a>=46&&(a-=46,l=!0),o+=a,l)break;o*=46}t?t[s++]=o:t=new e(o)}return t}var Be=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},jn=new Be,_t=class{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=jn,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let n=this.range,s=this.rangeIndex,o=this.pos+e;for(;o<n.from;){if(!s)return null;let i=this.ranges[--s];o-=n.from-i.to,n=i}for(;t<0?o>n.to:o>=n.to;){if(s==this.ranges.length-1)return null;let i=this.ranges[++s];o+=i.from-n.to,n=i}return o}clipPos(e){if(e>=this.range.from&&e<this.range.to)return e;for(let t of this.ranges)if(t.to>e)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,n,s;if(t>=0&&t<this.chunk.length)n=this.pos+e,s=this.chunk.charCodeAt(t);else{let o=this.resolveOffset(e,1);if(o==null)return-1;if(n=o,n>=this.chunk2Pos&&n<this.chunk2Pos+this.chunk2.length)s=this.chunk2.charCodeAt(n-this.chunk2Pos);else{let i=this.rangeIndex,l=this.range;for(;l.to<=n;)l=this.ranges[++i];this.chunk2=this.input.chunk(this.chunk2Pos=n),n+this.chunk2.length>l.to&&(this.chunk2=this.chunk2.slice(0,l.to-n)),s=this.chunk2.charCodeAt(0)}}return n>=this.token.lookAhead&&(this.token.lookAhead=n+1),s}acceptToken(e,t=0){let n=t?this.resolveOffset(t,-1):this.pos;if(n==null||n<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=e,this.token.end=n}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:e,chunkPos:t}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=e,this.chunk2Pos=t,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let e=this.input.chunk(this.pos),t=this.pos+e.length;this.chunk=t>this.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=jn,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;e>=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e<this.chunkPos+this.chunk.length?this.chunkOff=e-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(e,t){if(e>=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let n="";for(let s of this.ranges){if(s.from>=t)break;s.to>e&&(n+=this.input.read(Math.max(s.from,e),Math.min(s.to,t)))}return n}},ye=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:n}=t.p;tr(this.data,e,t,this.id,n.data,n.tokenPrecTable)}};ye.prototype.contextual=ye.prototype.fallback=ye.prototype.extend=!1;var $t=class{constructor(e,t,n){this.precTable=t,this.elseToken=n,this.data=typeof e=="string"?st(e):e}token(e,t){let n=e.pos,s=0;for(;tr(this.data,e,t,0,this.data,this.precTable),!(e.token.value>-1);){if(this.elseToken==null)return;if(e.next<0)break;e.advance(),e.reset(e.pos,e.token),s++}s&&(e.reset(n,e.token),e.acceptToken(this.elseToken,s))}};$t.prototype.contextual=ye.prototype.fallback=ye.prototype.extend=!1;function tr(r,e,t,n,s,o){let i=0,l=1<<n,{dialect:a}=t.p.parser;e:for(;l&r[i];){let u=r[i+1];for(let m=i+3;m<u;m+=2)if((r[m+1]&l)>0){let g=r[m];if(a.allows(g)&&(e.token.value==-1||e.token.value==g||Es(g,e.token.value,s,o))){e.acceptToken(g);break}}let c=e.next,h=0,f=r[i+2];if(e.next<0&&f>h&&r[u+f*3-3]==65535&&r[u+f*3-3]==65535){i=r[u+f*3-1];continue e}for(;h<f;){let m=h+f>>1,g=u+m+(m<<1),C=r[g],D=r[g+1]||65536;if(c<C)f=m;else if(c>=D)h=m+1;else{i=r[g+2],e.advance();continue e}}break}}function Xn(r,e,t){for(let n=e,s;(s=r[n])!=65535;n++)if(s==t)return n-e;return-1}function Es(r,e,t,n){let s=Xn(t,n,e);return s<0||Xn(t,n,r)<s}var ne=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),Kt=null,Yn;(function(r){r[r.Margin=25]="Margin"})(Yn||(Yn={}));function Jn(r,e,t){let n=r.cursor(z.IncludeAnonymous);for(n.moveTo(e);;)if(!(t<0?n.childBefore(e):n.childAfter(e)))for(;;){if((t<0?n.to<e:n.from>e)&&!n.type.isError)return t<0?Math.max(0,Math.min(n.to-1,e-25)):Math.min(r.length,Math.max(n.from+1,e+25));if(t<0?n.prevSibling():n.nextSibling())break;if(!n.parent())return t<0?0:r.length}}var Qt=class{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?Jn(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?Jn(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e<this.nextStart)return null;for(;this.fragment&&this.safeTo<=e;)this.nextFragment();if(!this.fragment)return null;for(;;){let t=this.trees.length-1;if(t<0)return this.nextFragment(),null;let n=this.trees[t],s=this.index[t];if(s==n.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let o=n.children[s],i=this.start[t]+n.positions[s];if(i>e)return this.nextStart=i,null;if(o instanceof K){if(i==e){if(i<this.safeFrom)return null;let l=i+o.length;if(l<=this.safeTo){let a=o.prop(E.lookAhead);if(!a||l+a<this.fragment.to)return o}}this.index[t]++,i+o.length>=Math.max(this.safeFrom,e)&&(this.trees.push(o),this.start.push(i),this.index.push(0))}else this.index[t]++,this.nextStart=i+o.length}}},Ut=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(n=>new Be)}getActions(e){let t=0,n=null,{parser:s}=e.p,{tokenizers:o}=s,i=s.stateSlot(e.state,3),l=e.curContext?e.curContext.hash:0,a=0;for(let u=0;u<o.length;u++){if(!(1<<u&i))continue;let c=o[u],h=this.tokens[u];if(!(n&&!c.fallback)&&((c.contextual||h.start!=e.pos||h.mask!=i||h.context!=l)&&(this.updateCachedToken(h,c,e),h.mask=i,h.context=l),h.lookAhead>h.end+25&&(a=Math.max(h.lookAhead,a)),h.value!=0)){let f=t;if(h.extended>-1&&(t=this.addActions(e,h.extended,h.end,t)),t=this.addActions(e,h.value,h.end,t),!c.extend&&(n=h,t>f))break}}for(;this.actions.length>t;)this.actions.pop();return a&&e.setLookAhead(a),!n&&e.pos==this.stream.end&&(n=new Be,n.value=e.p.parser.eofTerm,n.start=n.end=e.pos,t=this.addActions(e,n.value,n.end,t)),this.mainToken=n,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new Be,{pos:n,p:s}=e;return t.start=n,t.end=Math.min(n+1,s.stream.end),t.value=n==s.stream.end?s.parser.eofTerm:0,t}updateCachedToken(e,t,n){let s=this.stream.clipPos(n.pos);if(t.token(this.stream.reset(s,e),n),e.value>-1){let{parser:o}=n.p;for(let i=0;i<o.specialized.length;i++)if(o.specialized[i]==e.value){let l=o.specializers[i](this.stream.read(e.start,e.end),n);if(l>=0&&n.p.parser.dialect.allows(l>>1)){l&1?e.extended=l>>1:e.value=l>>1;break}}}else e.value=0,e.end=this.stream.clipPos(s+1)}putAction(e,t,n,s){for(let o=0;o<s;o+=3)if(this.actions[o]==e)return s;return this.actions[s++]=e,this.actions[s++]=t,this.actions[s++]=n,s}addActions(e,t,n,s){let{state:o}=e,{parser:i}=e.p,{data:l}=i;for(let a=0;a<2;a++)for(let u=i.stateSlot(o,a?2:1);;u+=3){if(l[u]==65535)if(l[u+1]==1)u=pe(l,u+2);else{s==0&&l[u+1]==2&&(s=this.putAction(pe(l,u+2),t,n,s));break}l[u]==t&&(s=this.putAction(pe(l,u+1),t,n,s))}return s}},Zn;(function(r){r[r.Distance=5]="Distance",r[r.MaxRemainingPerStep=3]="MaxRemainingPerStep",r[r.MinBufferLengthPrune=500]="MinBufferLengthPrune",r[r.ForceReduceLimit=10]="ForceReduceLimit",r[r.CutDepth=15e3]="CutDepth",r[r.CutTo=9e3]="CutTo",r[r.MaxLeftAssociativeReductionCount=300]="MaxLeftAssociativeReductionCount",r[r.MaxStackCount=12]="MaxStackCount"})(Zn||(Zn={}));var Gt=class{constructor(e,t,n,s){this.parser=e,this.input=t,this.ranges=s,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new _t(t,s),this.tokens=new Ut(e,this.stream),this.topTerm=e.top[1];let{from:o}=s[0];this.stacks=[_e.start(this,e.top[0],o)],this.fragments=n.length&&this.stream.end-o>e.bufferLength*4?new Qt(n,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,n=this.stacks=[],s,o;if(this.bigReductionCount>300&&e.length==1){let[i]=e;for(;i.forceReduce()&&i.stack.length&&i.stack[i.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let i=0;i<e.length;i++){let l=e[i];for(;;){if(this.tokens.mainToken=null,l.pos>t)n.push(l);else{if(this.advanceStack(l,n,e))continue;{s||(s=[],o=[]),s.push(l);let a=this.tokens.getMainToken(l);o.push(a.value,a.end)}}break}}if(!n.length){let i=s&&Hs(s);if(i)return this.stackToTree(i);if(this.parser.strict)throw ne&&s&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+t);this.recovering||(this.recovering=5)}if(this.recovering&&s){let i=this.stoppedAt!=null&&s[0].pos>this.stoppedAt?s[0]:this.runRecovery(s,o,n);if(i)return this.stackToTree(i.forceAll())}if(this.recovering){let i=this.recovering==1?1:this.recovering*3;if(n.length>i)for(n.sort((l,a)=>a.score-l.score);n.length>i;)n.pop();n.some(l=>l.reducePos>t)&&this.recovering--}else if(n.length>1){e:for(let i=0;i<n.length-1;i++){let l=n[i];for(let a=i+1;a<n.length;a++){let u=n[a];if(l.sameState(u)||l.buffer.length>500&&u.buffer.length>500)if((l.score-u.score||l.buffer.length-u.buffer.length)>0)n.splice(a--,1);else{n.splice(i--,1);continue e}}}n.length>12&&n.splice(12,n.length-12)}this.minStackPos=n[0].pos;for(let i=1;i<n.length;i++)n[i].pos<this.minStackPos&&(this.minStackPos=n[i].pos);return null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}advanceStack(e,t,n){let s=e.pos,{parser:o}=this,i=ne?this.stackID(e)+" -> ":"";if(this.stoppedAt!=null&&s>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let u=e.curContext&&e.curContext.tracker.strict,c=u?e.curContext.hash:0;for(let h=this.fragments.nodeAt(s);h;){let f=this.parser.nodeSet.types[h.type.id]==h.type?o.getGoto(e.state,h.type.id):-1;if(f>-1&&h.length&&(!u||(h.prop(E.contextHash)||0)==c))return e.useNode(h,f),ne&&console.log(i+this.stackID(e)+` (via reuse of ${o.getName(h.type.id)})`),!0;if(!(h instanceof K)||h.children.length==0||h.positions[0]>0)break;let m=h.children[0];if(m instanceof K&&h.positions[0]==0)h=m;else break}}let l=o.stateSlot(e.state,4);if(l>0)return e.reduce(l),ne&&console.log(i+this.stackID(e)+` (via always-reduce ${o.getName(l&65535)})`),!0;if(e.stack.length>=15e3)for(;e.stack.length>9e3&&e.forceReduce(););let a=this.tokens.getActions(e);for(let u=0;u<a.length;){let c=a[u++],h=a[u++],f=a[u++],m=u==a.length||!n,g=m?e:e.split();if(g.apply(c,h,f),ne&&console.log(i+this.stackID(g)+` (via ${c&65536?`reduce of ${o.getName(c&65535)}`:"shift"} for ${o.getName(h)} @ ${s}${g==e?"":", split"})`),m)return!0;g.pos>s?t.push(g):n.push(g)}return!1}advanceFully(e,t){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return qn(e,t),!0}}runRecovery(e,t,n){let s=null,o=!1;for(let i=0;i<e.length;i++){let l=e[i],a=t[i<<1],u=t[(i<<1)+1],c=ne?this.stackID(l)+" -> ":"";if(l.deadEnd&&(o||(o=!0,l.restart(),ne&&console.log(c+this.stackID(l)+" (restarted)"),this.advanceFully(l,n))))continue;let h=l.split(),f=c;for(let m=0;h.forceReduce()&&m<10&&(ne&&console.log(f+this.stackID(h)+" (via force-reduce)"),!this.advanceFully(h,n));m++)ne&&(f=this.stackID(h)+" -> ");for(let m of l.recoverByInsert(a))ne&&console.log(c+this.stackID(m)+" (via recover-insert)"),this.advanceFully(m,n);this.stream.end>l.pos?(u==l.pos&&(u++,a=0),l.recoverByDelete(a,u),ne&&console.log(c+this.stackID(l)+` (via recover-delete ${this.parser.getName(a)})`),qn(l,n)):(!s||s.score<l.score)&&(s=l)}return s}stackToTree(e){return e.close(),K.build({buffer:$e.create(e),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:e.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(e){let t=(Kt||(Kt=new WeakMap)).get(e);return t||Kt.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function qn(r,e){for(let t=0;t<e.length;t++){let n=e[t];if(n.pos==r.pos&&n.sameState(r)){e[t].score<r.score&&(e[t]=r);return}}e.push(r)}var jt=class{constructor(e,t,n){this.source=e,this.flags=t,this.disabled=n}allows(e){return!this.disabled||this.disabled[e]==0}};var De=class extends xt{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let l=0;l<e.repeatNodeCount;l++)t.push("");let n=Object.keys(e.topRules).map(l=>e.topRules[l][1]),s=[];for(let l=0;l<t.length;l++)s.push([]);function o(l,a,u){s[l].push([a,a.deserialize(String(u))])}if(e.nodeProps)for(let l of e.nodeProps){let a=l[0];typeof a=="string"&&(a=E[a]);for(let u=1;u<l.length;){let c=l[u++];if(c>=0)o(c,a,l[u++]);else{let h=l[u+-c];for(let f=-c;f>0;f--)o(l[u++],a,h);u++}}}this.nodeSet=new ze(t.map((l,a)=>$.define({name:a>=this.minRepeatTerm?void 0:l,id:a,props:s[a],top:n.indexOf(a)>-1,error:a==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(a)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let i=st(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let l=0;l<this.specializerSpecs.length;l++)this.specialized[l]=this.specializerSpecs[l].term;this.specializers=this.specializerSpecs.map(er),this.states=st(e.states,Uint32Array),this.data=st(e.stateData),this.goto=st(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(l=>typeof l=="number"?new ye(i,l):l),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,n){let s=new Gt(this,e,t,n);for(let o of this.wrappers)s=o(s,e,t,n);return s}getGoto(e,t,n=!1){let s=this.goto;if(t>=s[0])return-1;for(let o=s[t+1];;){let i=s[o++],l=i&1,a=s[o++];if(l&&n)return a;for(let u=o+(i>>1);o<u;o++)if(s[o]==e)return a;if(l)return-1}}hasAction(e,t){let n=this.data;for(let s=0;s<2;s++)for(let o=this.stateSlot(e,s?2:1),i;;o+=3){if((i=n[o])==65535)if(n[o+1]==1)i=n[o=pe(n,o+2)];else{if(n[o+1]==2)return pe(n,o+2);break}if(i==t||i==0)return pe(n,o+1)}return 0}stateSlot(e,t){return this.states[e*6+t]}stateFlag(e,t){return(this.stateSlot(e,0)&t)>0}validAction(e,t){if(t==this.stateSlot(e,4))return!0;for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=pe(this.data,n+2);else return!1;if(t==pe(this.data,n+1))return!0}}nextStates(e){let t=[];for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=pe(this.data,n+2);else break;if(!(this.data[n+2]&1)){let s=this.data[n+1];t.some((o,i)=>i&1&&o==s)||t.push(this.data[n],s)}}return t}configure(e){let t=Object.assign(Object.create(De.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let n=this.topRules[e.top];if(!n)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=n}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(n=>{let s=e.tokenizers.find(o=>o.from==n);return s?s.to:n})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((n,s)=>{let o=e.specializers.find(l=>l.from==n.external);if(!o)return n;let i=Object.assign(Object.assign({},n),{external:o.to});return t.specializers[s]=er(i),i})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),n=t.map(()=>!1);if(e)for(let o of e.split(" ")){let i=t.indexOf(o);i>=0&&(n[i]=!0)}let s=null;for(let o=0;o<t.length;o++)if(!n[o])for(let i=this.dialects[t[o]],l;(l=this.data[i++])!=65535;)(s||(s=new Uint8Array(this.maxTerm+1)))[l]=1;return new jt(e,n,s)}static deserialize(e){return new De(e)}};function pe(r,e){return r[e]|r[e+1]<<16}function Hs(r){let e=null;for(let t of r){let n=t.p.stoppedAt;(t.pos==t.p.stream.end||n!=null&&t.pos>n)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.score<t.score)&&(e=t)}return e}function er(r){if(r.external){let e=r.extend?1:0;return(t,n)=>r.external(t,n)<<1|e}return r.get}var Xt=De.deserialize({version:14,states:"%QOVQPOOOOQO'#C_'#C_O_QQO'#C^OOQO'#DO'#DOOvQQO'#C|OOQO'#DR'#DROVQPO'#CuOOQO'#C}'#C}QOQPOOOOQO'#C`'#C`O!UQQO,58xO!dQPO,59VOVQPO,59]OVQPO,59_O!iQPO,59hO!nQQO,59aOOQO'#DQ'#DQOOQO1G.d1G.dO!UQQO1G.qO!yQQO1G.wOOQO1G.y1G.yOOQO'#Cw'#CwOOQO1G/S1G/SOOQO1G.{1G.{O#[QPO'#CnO#dQPO7+$]O!UQQO'#CxO#iQPO,59YOOQO<<Gw<<GwOOQO,59d,59dOOQO-E6v-E6v",stateData:"#q~OoOS~OsPOvUO~OTXOUXOVXOWXOXXOYXO`ZO~Of[Oh]Oj^OmpX~OZ`O[`O]`O^`O~OabO~OseO~Of[Oh]OwgO~Oh]Ofeijeimeiwei~OcjOdbX~OdlO~OcjOdba~O",goto:"#YvPPw}!TPPPPPPPPPPwPP!WPP!ZP!ZP!aP!g!jPPP!p!s!aP#P!aXROU[]XQOU[]RYQRibXTOU[]XVOU[]Rf^QkhRnkRWOQSOQ_UQc[Rd]QaYQhbRmj",nodeNames:"\u26A0 Filter ColumnValueExpression Column Operator Eq NotEq Gt Lt Starts Ends Number String True False ColumnSetExpression In LBrack Values Comma RBrack AndExpression And OrExpression Or ParenthesizedExpression As FilterName",maxTerm:39,skippedNodes:[0],repeatNodeCount:1,tokenData:"6p~RnXY#PYZ#P]^#Ppq#Pqr#brs#mxy$eyz$j|}$o!O!P$t!Q![%S!^!_%_!_!`%d!`!a%i!c!}%n!}#O&V#P#Q&[#R#S%n#T#U&a#U#X%n#X#Y(w#Y#Z+]#Z#]%n#]#^.]#^#c%n#c#d/e#d#g%n#g#h0m#h#i4[#i#o%n~#USo~XY#PYZ#P]^#Ppq#P~#eP!_!`#h~#mOU~~#pWOX#mZ]#m^r#mrs$Ys#O#m#P;'S#m;'S;=`$_<%lO#m~$_O[~~$bP;=`<%l#m~$jOv~~$oOw~~$tOc~~$wP!Q![$z~%PPZ~!Q![$z~%XQZ~!O!P$t!Q![%S~%dOW~~%iOT~~%nOV~P%sUsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%n~&[Oa~~&aOd~R&fYsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c'U#c#g%n#g#h(^#h#o%nR'ZWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#W%n#W#X's#X#o%nR'zUfQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR(eUjQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR(|WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c)f#c#o%nR)kWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#W%n#W#X*T#X#o%nR*YWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h*r#h#o%nR*yUYQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR+bVsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#U+w#U#o%nR+|WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#`%n#`#a,f#a#o%nR,kWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h-T#h#o%nR-YWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#X%n#X#Y-r#Y#o%nR-yU^QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR.bWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c.z#c#o%nR/RU`QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR/jWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g0S#g#o%nR0ZUhQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR0rWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#h%n#h#i1[#i#o%nR1aVsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#U1v#U#o%nR1{WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g2e#g#o%nR2jWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#h%n#h#i3S#i#o%nR3XWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h3q#h#o%nR3xUXQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR4aWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g4y#g#o%nR5OWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#i%n#i#j5h#j#o%nR5mWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#X%n#X#Y6V#Y#o%nR6^U]QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%n",tokenizers:[0,1],topRules:{Filter:[0,1]},tokenPrec:0});var le=require("@vuu-ui/vuu-utils");var Q,nr=class{constructor(){bn(this,Q,void 0)}setFilterCombinatorOp(e,t=ie(this,Q)){(0,le.isMultiClauseFilter)(t)&&t.op===e||Mt(this,Q,{op:e,filters:[ie(this,Q)]})}add(e){if(ie(this,Q)===void 0)Mt(this,Q,e);else if((0,le.isMultiClauseFilter)(ie(this,Q)))ie(this,Q).filters.push(e);else throw Error("Invalid filter passed to FilterExpression")}setColumn(e,t=ie(this,Q)){if((0,le.isMultiClauseFilter)(t)){let n=t.filters.at(-1);n&&this.setColumn(e,n)}else t&&(t.column=e)}setOp(e,t=ie(this,Q)){if((0,le.isMultiClauseFilter)(t)){let n=t.filters.at(-1);n&&this.setOp(e,n)}else t&&(t.op=e)}setValue(e,t=ie(this,Q)){var n;if((0,le.isMultiClauseFilter)(t)){let s=t.filters.at(-1);s&&this.setValue(e,s)}else(0,le.isMultiValueFilter)(t)?((n=t.values)!=null||(t.values=[]),t.values.push(e)):(0,le.isSingleValueFilter)(t)&&(t.value=e)}toJSON(e=ie(this,Q)){return this.name?{...e,name:this.name}:e}};Q=new WeakMap;var tl=Xt.configure({strict:!0});var yt=require("@vuu-ui/vuu-utils"),Ls=require("react");var{KEY:pl}=yt.metadataKeys;var Ns=r=>r.type==="vuu-links";var Fs=r=>r.type==="vuu-menu",rr=r=>Fs(r)||Ns(r),sr=r=>r.type==="vuu-link-created"||r.type==="vuu-link-removed";var Yt=require("react"),zs=require("@vuu-ui/vuu-data");var ve=require("@vuu-ui/vuu-utils"),V=require("react"),{SELECTED:it}=ve.metadataKeys;function ir({dataSource:r,onConfigChange:e,onFeatureEnabled:t,onFeatureInvocation:n,onSizeChange:s,onSubscribed:o,range:i={from:0,to:0},renderBufferSize:l=0,viewportRowCount:a}){let[,u]=(0,V.useState)(null),c=(0,V.useRef)(!0),h=(0,V.useRef)(!1),f=(0,V.useRef)({from:0,to:0}),m=(0,V.useRef)(null),g=(0,V.useRef)([]),C=(0,V.useMemo)(()=>new Jt((0,ve.getFullRange)(i)),[]),D=(0,V.useCallback)(p=>{for(let y of p)C.add(y);g.current=C.data,h.current=!0},[C]),R=(0,V.useCallback)(p=>{p.type==="subscribed"?o==null||o(p):p.type==="viewport-update"?(typeof p.size=="number"&&(s==null||s(p.size),C.setRowCount(p.size)),p.rows?D(p.rows):typeof p.size=="number"&&(g.current=C.data,h.current=!0)):rr(p)?t==null||t(p):sr(p)?n==null||n(p):console.log(`useDataSource unexpected message ${p.type}`)},[C,t,n,s,o,D]);(0,V.useEffect)(()=>()=>{m.current&&(cancelAnimationFrame(m.current),m.current=null),c.current=!1},[]);let b=(0,V.useCallback)(()=>{c.current&&(h.current&&(u({}),h.current=!1),m.current=requestAnimationFrame(b))},[u]);(0,V.useEffect)(()=>{m.current=requestAnimationFrame(b)},[b]);let x=(0,V.useCallback)(p=>{let{from:y}=r.range,S={from:y,to:y+p},M=(0,ve.getFullRange)(S,l);C.setRange(M),r.range=f.current=M,r.emit("range",S)},[r,C,l]),P=(0,V.useCallback)(p=>{let y=(0,ve.getFullRange)(p,l);C.setRange(y),r.range=f.current=y,r.emit("range",p)},[r,C,l]),w=(0,V.useCallback)(()=>C.getSelectedRows(),[C]);return(0,V.useEffect)(()=>{r==null||r.subscribe({range:f.current},R)},[r,R,e]),(0,V.useEffect)(()=>{x(a)},[x,a]),{data:g.current,getSelectedRows:w,range:f.current,setRange:P,dataSource:r}}var Jt=class{constructor({from:e,to:t}){this.rowCount=0;this.setRowCount=e=>{e<this.data.length&&(this.data.length=e),this.rowCount=e};this.range=new ve.WindowRange(e,t),this.data=new Array(t-e),this.rowCount=0}add(e){var n;let[t]=e;if(this.isWithinRange(t)){let s=t-this.range.from;this.data[s]=e;let o=e[it],i=(n=this.data[s-1])==null?void 0:n[it];i===0&&o?this.data[s-1][it]=2:i===2&&!o&&(this.data[s-1][it]=0)}}getAtIndex(e){return this.range.isWithin(e)&&this.data[e-this.range.from]!=null?this.data[e-this.range.from]:void 0}isWithinRange(e){return this.range.isWithin(e)}setRange({from:e,to:t}){if(e!==this.range.from||t!==this.range.to){let[n,s]=this.range.overlap(e,t),o=new Array(Math.max(0,t-e));for(let i=n;i<s;i++){let l=this.getAtIndex(i);if(l){let a=i-e;o[a]=l}}this.data=o,this.range.from=e,this.range.to=t}}getSelectedRows(){return this.data.filter(e=>e[it]===1)}};var or=require("@heswell/salt-lab"),Qe=require("react"),lr=({onDrop:r})=>{let e=(0,Qe.useRef)(),t=(0,Qe.useRef)(null),n=(0,Qe.useCallback)(()=>{console.log("handleDropSettle"),e.current=void 0,t.current=null},[]),{draggable:s,draggedItemIndex:o,onMouseDown:i}=(0,or.useDragDrop)({allowDragDrop:!0,draggableClassName:"vuuTable-headerCell",orientation:"horizontal",containerRef:t,itemQuery:".vuuTable-headerCell",onDrop:r,onDropSettle:n}),l=(0,Qe.useCallback)(a=>{let{clientX:u,clientY:c}=a;console.log("useDraggableColumn handleHeaderCellDragStart means mouseDown fired on a column in RowBasedTable");let f=a.target.closest(".vuuTable-headerCell");t.current=f==null?void 0:f.closest("[role='row']");let{dataset:{idx:m="-1"}}=f;e.current={clientX:u,clientY:c,idx:m},i==null||i(a)},[i]);return{draggable:s,draggedItemIndex:o,onHeaderCellDragStart:l}};var fr=require("@vuu-ui/vuu-utils"),I=require("react");function Ws(r,...e){let t=new Set(r);for(let n of e)for(let s of n)t.add(s);return t}var Zt="ArrowUp",qt="ArrowDown",en="ArrowLeft",tn="ArrowRight";var nn="Home",rn="End",sn="PageUp",on="PageDown";var Ks=new Set(["Enter","Delete"," "]),Bs=new Set(["Tab"]),_s=new Set(["ArrowRight","ArrowLeft"]),ar=new Set([nn,rn,sn,on,qt,en,tn,Zt]),$s=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),Ol=Ws(Ks,ar,_s,$s,Bs);var Qs=["Home","End","PageUp","PageDown"],ur=r=>Qs.includes(r),cr=r=>ar.has(r);var hr=r=>`.vuuTable-headers .vuuTable-headerCell:nth-child(${r+1})`,Us=(r,e)=>`.vuuTable-body > [aria-rowindex='${r}'] > [role='cell']:nth-child(${e+1})`,Gs=[-1,-1];function js(r,[e,t],n,s){return r===Zt?e>-1?[e-1,t]:[e,t]:r===qt?e===-1?[0,t]:e===s-1?[e,t]:[e+1,t]:r===tn?t<n-1?[e,t+1]:[e,t]:r===en?t>0?[e,t-1]:[e,t]:[e,t]}var pr=({columnCount:r=0,containerRef:e,disableHighlightOnFocus:t,data:n,requestScroll:s,rowCount:o=0,viewportRange:i})=>{var M;let{from:l,to:a}=i,u=(0,I.useRef)([-1,-1]),c=(0,I.useRef)(),h=(0,I.useRef)([-1,0]),f=(0,I.useCallback)(([d,v])=>{var k;let T=d===-1?hr(v):Us(d,v);return(k=e.current)==null?void 0:k.querySelector(T)},[e]),m=d=>d==null?void 0:d.closest("[role='columnHeader'],[role='cell']"),g=d=>{var v,T;if(d.role==="columnHeader")return[-1,parseInt((v=d.dataset.idx)!=null?v:"-1",10)];{let k=d.closest("[role='row']");if(k){let L=parseInt((T=k.ariaRowIndex)!=null?T:"-1",10),B=Array.from(k.childNodes).indexOf(d);return[L,B]}}return Gs},C=(0,I.useCallback)(d=>{var v;if(e.current){let T=f(d);T?(T!==c.current&&((v=c.current)==null||v.setAttribute("tabindex",""),c.current=T,T.setAttribute("tabindex","0")),T.focus()):(0,fr.withinRange)(d[0],i)||(c.current=void 0,s==null||s({type:"scroll-page",direction:"up"}))}},[e,f,s,i]),D=(0,I.useCallback)((d,v,T=!1)=>{let k=[d,v];h.current=k,C(k),T&&(u.current=k)},[C]),R=(0,I.useCallback)(()=>{var d;(d=c.current)==null||d.setAttribute("tabindex",""),c.current=void 0},[]),b=(0,I.useCallback)(async(d,v)=>{switch(d){case on:s==null||s({type:"scroll-page",direction:"down"});break;case sn:s==null||s({type:"scroll-page",direction:"up"});break;case nn:s==null||s({type:"scroll-end",direction:"home"});break;case rn:s==null||s({type:"scroll-end",direction:"end"});break}return v},[s]),x=(0,I.useCallback)(()=>{var d;if(t!==!0&&(d=e.current)!=null&&d.contains(document.activeElement)){let v=m(document.activeElement);v&&(u.current=g(v))}},[t,e]),P=(0,I.useCallback)(async d=>{let[v,T]=ur(d)?await b(d,h.current):js(d,h.current,r,o),[k,L]=h.current;(v!==k||T!==L)&&D(v,T,!0)},[r,b,o,D]),w=(0,I.useCallback)(d=>{n.length>0&&cr(d.key)&&(d.preventDefault(),d.stopPropagation(),P(d.key))},[n,P]),p=(0,I.useCallback)(d=>{let v=d.target,T=m(v);if(T){let[k,L]=g(T);D(k,L)}},[D]),y=(0,I.useMemo)(()=>({onClick:p,onFocus:x,onKeyDown:w}),[p,x,w]);(0,I.useLayoutEffect)(()=>{let{current:d}=h,v=d[0]>=l&&d[0]<=a;c.current&&!v?R():!c.current&&v&&C(d)},[C,l,a,R]);let S=((M=e.current)==null?void 0:M.firstChild)!=null;return(0,I.useEffect)(()=>{var d;if(S&&c.current===void 0){let v=(d=e.current)==null?void 0:d.querySelector(hr(0));v&&(v.setAttribute("tabindex","0"),c.current=v)}},[e,S]),y};var de=require("@vuu-ui/vuu-utils"),Pe=require("react");var Ae=require("react");var Oe=new Map,mr=(r,e,t)=>{switch(t){case"height":return e.height;case"clientHeight":return r.clientHeight;case"clientWidth":return r.clientWidth;case"contentHeight":return e.contentHeight;case"contentWidth":return e.contentWidth;case"scrollHeight":return Math.ceil(r.scrollHeight);case"scrollWidth":return Math.ceil(r.scrollWidth);case"width":return e.width;default:return 0}},dr=new ResizeObserver(r=>{for(let e of r){let{target:t,borderBoxSize:n,contentBoxSize:s}=e,o=Oe.get(t);if(o){let[{blockSize:i,inlineSize:l}]=n,[{blockSize:a,inlineSize:u}]=s,{onResize:c,measurements:h}=o,f=!1;for(let[m,g]of Object.entries(h)){let C=mr(t,{height:i,width:l,contentHeight:a,contentWidth:u},m);C!==g&&(f=!0,h[m]=C)}f&&c&&c(h)}}});function gr(r,e,t,n=!1){let s=(0,Ae.useRef)(e),o=(0,Ae.useCallback)(i=>{let{width:l,height:a}=i.getBoundingClientRect(),{clientWidth:u,clientHeight:c}=i;return s.current.reduce((h,f)=>(h[f]=mr(i,{width:l,height:a,contentHeight:c,contentWidth:u},f),h),{})},[]);(0,Ae.useEffect)(()=>{let i=r.current;async function l(){Oe.set(i,{measurements:{}}),await document.fonts.ready;let a=Oe.get(i);if(a){let u=o(i);a.measurements=u,dr.observe(i),n&&t(u)}else console.log("%cuseResizeObserver an target expected to be under observation wa snot found. This warrants investigation","font-weight:bold; color:red;")}if(i){if(Oe.has(i))throw Error("useResizeObserver attemping to observe same element twice");l()}return()=>{i&&Oe.has(i)&&(dr.unobserve(i),Oe.delete(i))}},[o,r]),(0,Ae.useEffect)(()=>{let i=r.current,l=Oe.get(i);if(l){if(s.current!==e){s.current=e;let a=o(i);l.measurements=a}l.onResize=t}},[e,o,r,t])}var Xs=["clientHeight","clientWidth"],br=r=>Number.isFinite(r),Ys={height:"100%",width:"100%"},Js=(r,e)=>(0,de.isValidNumber)(r)&&(0,de.isValidNumber)(e)?{height:`${r}px`,width:`${e}px`}:Ys,Zs=(r,e)=>{if((0,de.isValidNumber)(r)&&(0,de.isValidNumber)(e))return{height:r,width:e}},ln=({defaultHeight:r=0,defaultWidth:e=0,height:t,width:n})=>{let s=(0,Pe.useRef)(null),[o,i]=(0,Pe.useState)({css:Js(t,n),inner:Zs(t,n),outer:{height:t!=null?t:"100%",width:n!=null?n:"100%"}});(0,Pe.useMemo)(()=>{i(a=>{let{inner:u,outer:c}=a;if((0,de.isValidNumber)(t)&&(0,de.isValidNumber)(n)&&u&&c){let{height:h,width:f}=u,{height:m,width:g}=c;if(m!==t||g!==n){let C=(0,de.isValidNumber)(m)?m-h:0,D=(0,de.isValidNumber)(g)?g-f:0;return{...a,outer:{height:t,width:n},inner:{height:t-C,width:n-D}}}}return a})},[t,n]);let l=(0,Pe.useCallback)(({clientWidth:a,clientHeight:u})=>{i(c=>{let{css:h,inner:f,outer:m}=c;return br(u)&&br(a)&&(a!==(f==null?void 0:f.width)||u!==(f==null?void 0:f.height))?{css:h,outer:m,inner:{width:Math.floor(a)||e,height:Math.floor(u)||r}}:c})},[r,e]);return gr(s,Xs,l,!0),{containerRef:s,cssSize:o.css,outerSize:o.outer,innerSize:o.inner}};var Me=require("@vuu-ui/vuu-utils"),ot=require("react"),{IDX:qs}=Me.metadataKeys,ei=[],an=({selectionModel:r,onSelectionChange:e})=>{let t=(0,ot.useRef)(-1),n=(0,ot.useRef)(ei);return(0,ot.useCallback)((o,i,l)=>{let{[qs]:a}=o,{current:u}=t,{current:c}=n,f=((0,Me.isRowSelected)(o)?Me.deselectItem:Me.selectItem)(r,c,a,i,l,u);n.current=f,t.current=a,e&&e(f)},[e,r])};var Cr=require("@heswell/salt-lab"),O=require("@vuu-ui/vuu-utils"),xr=require("react"),{info:Gl}=(0,O.logger)("useTableModel"),ti=100,wr=O.metadataKeys.count,ni=({serverDataType:r})=>r===void 0,ri=r=>{var e;if((0,O.isTypeDescriptor)(r.type))return(0,O.getCellRenderer)((e=r.type)==null?void 0:e.renderer)},yr=(r,e)=>{if(r.serverDataType)return r.serverDataType;if(e){let t=e.columns.find(n=>n.name===r.name);if(t)return t.serverDataType}return"string"},si=["int","long","double"],vr=r=>r===void 0?void 0:si.includes(r)?"right":"left",ii=r=>r.type==="columnSettings",oi=(r,e)=>{switch(e.type){case"init":return Pr(e);case"moveColumn":return ai(r,e);case"resizeColumn":return hi(r,e);case"setTableSchema":return fi(r,e);case"hideColumns":return ui(r,e);case"showColumns":return ci(r,e);case"pinColumn":return pi(r,e);case"updateColumnProp":return Ue(r,e);case"tableConfig":return Mr(r,e);default:return console.log(`unhandled action ${e.type}`),r}},un=(r,e)=>{let[t,n]=(0,xr.useReducer)(oi,{tableConfig:r,dataSourceConfig:e},Pr);return{columns:t.columns,dispatchColumnAction:n,headings:t.headings}};function Pr({dataSourceConfig:r,tableConfig:e}){let t=e.columns.map(cn(e)),n=t.some(O.isPinned)?(0,O.sortPinnedColumns)(t):t,s={columns:n,headings:(0,O.getTableHeadings)(n)};if(r){let{columns:o,...i}=r;return Mr(s,{type:"tableConfig",...i})}else return s}var li=(r,e)=>e==="uppercase"?r.toUpperCase():e==="capitalize"?r[0].toUpperCase()+r.slice(1).toLowerCase():r,cn=r=>(e,t)=>{let n=yr(e,r.tableSchema),{columnDefaultWidth:s=ti,columnFormatHeader:o}=r,{align:i=vr(n),key:l,name:a,label:u=a,width:c=s,...h}=e,f={...h,align:i,CellRenderer:ri(e),label:li(u,o),key:l!=null?l:t+wr,name:a,originalIdx:t,serverDataType:n,valueFormatter:(0,O.getValueFormatter)(e),width:c};return(0,O.isGroupColumn)(f)&&(f.columns=f.columns.map(m=>cn(r)(m,m.key))),f};function ai(r,{column:e,moveBy:t,moveTo:n}){let{columns:s}=r;if(typeof t=="number"){let o=s.indexOf(e),i=s.slice(),[l]=i.splice(o,1);return i.splice(o+t,0,l),{...r,columns:i}}else if(typeof n=="number"){let o=s.indexOf(e);return{...r,columns:(0,Cr.moveItem)(s,o,n)}}return r}function ui(r,{columns:e}){return e.some(t=>t.hidden!==!0)?e.reduce((t,n)=>n.hidden!==!0?Ue(t,{type:"updateColumnProp",column:n,hidden:!0}):t,r):r}function ci(r,{columns:e}){return e.some(t=>t.hidden)?e.reduce((t,n)=>n.hidden?Ue(t,{type:"updateColumnProp",column:n,hidden:!1}):t,r):r}function hi(r,{column:e,phase:t,width:n}){let s="updateColumnProp",o=t!=="end";switch(t){case"begin":return Ue(r,{type:s,column:e,resizing:o});case"end":return Ue(r,{type:s,column:e,resizing:o,width:n});case"resize":return Ue(r,{type:s,column:e,width:n});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${t}`)}}function fi(r,{tableSchema:e}){let{columns:t}=r;if(t.some(ni)){let n=t.map(s=>{var i;let o=yr(s,e);return{...s,align:(i=s.align)!=null?i:vr(o),serverDataType:o}});return{...r,columns:n,tableSchema:e}}else return{...r,tableSchema:e}}function pi(r,e){let{columns:t}=r,{column:n,pin:s}=e;return t=(0,O.updateColumn)(t,n.name,{pin:s}),t=(0,O.sortPinnedColumns)(t),console.log({withPins:t}),{...r,columns:t}}function Ue(r,e){let{columns:t}=r,{align:n,column:s,hidden:o,label:i,resizing:l,width:a}=e,u={};return(n==="left"||n==="right")&&(u.align=n),typeof i=="string"&&(u.label=i),typeof l=="boolean"&&(u.resizing=l),typeof o=="boolean"&&(u.hidden=o),typeof a=="number"&&(u.width=a),t=(0,O.updateColumn)(t,s.name,u),{...r,columns:t}}function Mr(r,{columns:e,confirmed:t,filter:n,groupBy:s,sort:o}){let i=e&&e.length>0,l=s!==void 0,a=typeof(n==null?void 0:n.filter)=="string",u=o&&o.sortDefs.length>0,c=r;return i&&(c={...r,columns:e.map((h,f)=>{let m=(0,O.getColumnName)(h),g=f+wr,C=(0,O.findColumn)(c.columns,m);return C?C.key===g?C:{...C,key:g}:cn(r)({name:h},f)})}),l&&(c={...r,columns:(0,O.applyGroupByToColumns)(c.columns,s,t)}),u&&(c={...r,columns:(0,O.applySortToColumns)(c.columns,o)}),a?c={...r,columns:(0,O.applyFilterToColumns)(c.columns,n)}:c.columns.some(O.isFilteredColumn)&&(c={...r,columns:(0,O.stripFilterFromColumns)(c.columns)}),c}var _=require("react"),Rr=r=>{let{scrollLeft:e,scrollTop:t}=r,{clientHeight:n,clientWidth:s,scrollHeight:o,scrollWidth:i}=r,l=e/(i-s),a=t/(o-n);return[l,a]},di=r=>{let{clientHeight:e,clientWidth:t,scrollHeight:n,scrollWidth:s}=r;return[s-t,n-e]},kr=({onAttach:r,onDetach:e})=>{let t=(0,_.useRef)(null);return(0,_.useCallback)(s=>{if(s)t.current=s,r==null||r(s);else if(t.current){let{current:o}=t;t.current=s,e==null||e(o)}},[r,e])},Sr=({onHorizontalScroll:r,onVerticalScroll:e,viewport:t})=>{let n=(0,_.useRef)(!1),s=(0,_.useRef)({scrollTop:0,scrollLeft:0}),o=(0,_.useRef)(null),i=(0,_.useRef)(null),{maxScrollContainerScrollHorizontal:l,maxScrollContainerScrollVertical:a}=t,u=(0,_.useCallback)(()=>{let{current:b}=i,{current:x}=o,{current:P}=n;if(P)n.current=!1;else if(b&&x){let[w,p]=Rr(x),[y,S]=di(b),M=Math.round(w*y),d=Math.round(p*S);console.log(`pctScrollTop ${p}, maxScrollTop ${S} rootScrollTop ${d}`),b.scrollTo({left:M,top:d,behavior:"auto"})}},[]),c=(0,_.useCallback)(()=>{let{current:b}=i,{current:x}=o,{current:P}=s;if(b&&x){let{scrollLeft:w,scrollTop:p}=b,[y,S]=Rr(b);n.current=!0,x.scrollLeft=Math.round(y*l),x.scrollTop=Math.round(S*a),P.scrollTop!==p&&(P.scrollTop=p,e==null||e(p,S)),P.scrollLeft!==w&&(P.scrollLeft=w,r==null||r(w))}},[l,a,r,e]),h=(0,_.useCallback)(b=>{o.current=b,b.addEventListener("scroll",u,{passive:!0})},[u]),f=(0,_.useCallback)(b=>{o.current=null,b.removeEventListener("scroll",u)},[u]),m=(0,_.useCallback)(b=>{i.current=b,b.addEventListener("scroll",c,{passive:!0})},[c]),g=(0,_.useCallback)(b=>{i.current=null,b.removeEventListener("scroll",c)},[c]),C=kr({onAttach:m,onDetach:g}),D=kr({onAttach:h,onDetach:f}),R=(0,_.useCallback)(b=>{let{current:x}=i;if(x){if(n.current=!1,b.type==="scroll-page"){let{clientHeight:P,scrollLeft:w,scrollTop:p}=x,{direction:y}=b,S=y==="down"?P:-P,M=Math.min(Math.max(0,p+S),a);x.scrollTo({top:M,left:w,behavior:"auto"})}else if(b.type==="scroll-end"){let{direction:P}=b,w=P==="end"?a:0;x.scrollTo({top:w,left:x.scrollLeft,behavior:"auto"})}}},[a]);return{scrollbarContainerRef:D,contentContainerRef:C,requestScroll:R}};var me=require("react"),vt=require("@vuu-ui/vuu-utils"),mi=15e5,gi={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},bi=r=>{let e=0,t=0,n=0;for(let s of r){let{hidden:o,pin:i,width:l}=s,a=o?0:l;i==="left"?e+=a:i==="right"?t+=a:n+=a}return{pinnedWidthLeft:e+4,pinnedWidthRight:t+4,unpinnedWidth:n}},hn=({columns:r,headerHeight:e,headings:t,rowCount:n,rowHeight:s,size:o})=>{let i=(0,me.useRef)(0),a=Math.min(n,mi)*s,c=n*s-a,{pinnedWidthLeft:h,pinnedWidthRight:f,unpinnedWidth:m}=(0,me.useMemo)(()=>bi(r),[r]),[g,C]=(0,me.useMemo)(()=>(0,vt.actualRowPositioning)(s),[s]),[D,R]=(0,me.useMemo)(()=>c?(0,vt.virtualRowPositioning)(s,c,i):[g,C],[C,g,c,s]),b=(0,me.useCallback)(x=>{i.current=x},[]);return(0,me.useMemo)(()=>{var x;if(o){let P=t.length,w=15,p=h+m+f,y=p>o.width?w:0,S=e*(1+P),M=a-(((x=o==null?void 0:o.height)!=null?x:0)-y)+S,d=p-o.width+h,v=(o.height-e)/s,T=Number.isInteger(v)?v+1:Math.ceil(v),k=o.height-S,L=a>k?w:0;return{contentHeight:a,getRowAtPosition:R,getRowOffset:D,horizontalScrollbarHeight:y,maxScrollContainerScrollHorizontal:d,maxScrollContainerScrollVertical:M,pinnedWidthLeft:h,pinnedWidthRight:f,rowCount:T,contentWidth:p,setPctScrollTop:b,totalHeaderHeight:S,verticalScrollbarWidth:L,viewportBodyHeight:k}}else return gi},[o,t.length,h,m,f,a,e,s,R,D,b])};var lt=require("@vuu-ui/vuu-utils"),j=require("react"),Tr=({columns:r,getRowAtPosition:e,setRange:t,viewportMeasurements:n})=>{let s=(0,j.useRef)(-1),{rowCount:o,contentWidth:i,maxScrollContainerScrollHorizontal:l}=n,a=i-l,u=(0,j.useRef)(0),[c,h]=(0,j.useMemo)(()=>(0,lt.getColumnsInViewport)(r,u.current,u.current+a),[a,r]),f=(0,j.useRef)(h);(0,j.useEffect)(()=>{g(c)},[c]);let[m,g]=(0,j.useState)(c),C=(0,j.useCallback)(R=>{u.current=R;let[b,x]=(0,lt.getColumnsInViewport)(r,R,R+a);(0,lt.itemsChanged)(m,b)&&(f.current=x,g(b))},[a,r,m]),D=(0,j.useCallback)(R=>{let b=e(R);b!==s.current&&(s.current=b,t({from:b,to:b+o}))},[e,t,o]);return{columnsWithinViewport:m,onHorizontalScroll:C,onVerticalScroll:D,virtualColSpan:f.current}};var Ci=[],{KEY:xi,IS_EXPANDED:Dr,IS_LEAF:Or}=ae.metadataKeys,Er=({config:r,dataSource:e,headerHeight:t,onConfigChange:n,onFeatureEnabled:s,onFeatureInvocation:o,onSelectionChange:i,renderBufferSize:l=0,rowHeight:a,selectionModel:u,...c})=>{var pn,dn;let[h,f]=(0,H.useState)(e.size),m=(0,H.useRef)(!1),g=(0,H.useRef)();if(g.current=e,e===void 0)throw Error("no data source provided to Vuu Table");let C=ln(c),D=(0,H.useCallback)(A=>{f(A)},[]),{columns:R,dispatchColumnAction:b,headings:x}=un(r,e.config),{getRowAtPosition:P,getRowOffset:w,setPctScrollTop:p,...y}=hn({columns:R,headerHeight:t,headings:x,rowCount:h,rowHeight:a,size:C.innerSize}),S=(0,H.useCallback)(({tableSchema:A})=>{A?(m.current=!0,b({type:"setTableSchema",tableSchema:A})):console.log("usbscription message with no schema")},[b]),M=(0,H.useCallback)(A=>{e.select(A),i==null||i(A)},[e,i]),d=an({onSelectionChange:M,selectionModel:u}),{data:v,getSelectedRows:T,range:k,setRange:L}=ir({dataSource:e,onFeatureEnabled:s,onFeatureInvocation:o,onSubscribed:S,onSizeChange:D,renderBufferSize:l,viewportRowCount:y.rowCount}),B=(0,H.useRef)();B.current=v;let U=(0,H.useCallback)(A=>{m.current=!0,b(A)},[b]),ut=Ot({dataSource:e,onPersistentColumnOperation:U}),re=(0,H.useCallback)((A,N=!1,J)=>{e&&(e.sort=(0,ae.applySort)(e.sort,A,N,J))},[e]),G=(0,H.useCallback)((A,N,J)=>{let W=R.find(ue=>ue.name===N);if(W)A==="end"&&(m.current=!0),b({type:"resizeColumn",phase:A,column:W,width:J});else throw Error(`useDataTable.handleColumnResize, column ${N} not found`)},[R,b]),Y=(0,H.useCallback)((A,N)=>{let J=(0,ae.isJsonGroup)(N,A),W=A[xi];if(A[Dr]){if(e.closeTreeNode(W,!0),J){let ue=R.indexOf(N);e.getRowsAtDepth(ue+1).some(ce=>ce[Dr]||ce[Or])||b({type:"hideColumns",columns:R.slice(ue+2)})}}else if(e.openTreeNode(W),J){let ue=e.getChildRows(W),Re=R.indexOf(N)+1,ce=[R[Re]];ue.some(Ve=>Ve[Or])&&ce.push(R[Re+1]),ce.some(Ve=>Ve.hidden)&&b({type:"showColumns",columns:ce})}},[R,e,b]),{onVerticalScroll:se,onHorizontalScroll:be,columnsWithinViewport:He,virtualColSpan:ct}=Tr({columns:R,getRowAtPosition:P,setRange:L,viewportMeasurements:y}),Nr=(0,H.useCallback)((A,N)=>{p(N),se(A)},[se,p]),{requestScroll:Fr,...zr}=Sr({onHorizontalScroll:be,onVerticalScroll:Nr,viewport:y,viewportHeight:((dn=(pn=C.innerSize)==null?void 0:pn.height)!=null?dn:0)-t}),Wr=pr({columnCount:R.length,containerRef:C.containerRef,data:v,requestScroll:Fr,rowCount:e==null?void 0:e.size,viewportRange:k}),Kr=(0,H.useCallback)(A=>{A?e&&e.groupBy.includes(A.name)&&(e.groupBy=e.groupBy.filter(N=>N!==A.name)):e.groupBy=[]},[e]),Br=(0,H.useCallback)((A,N)=>{let J=e.columns[A],W=(0,ae.moveItem)(e.columns,J,N);W!==e.columns&&(e.columns=W,b({type:"tableConfig",columns:W}))},[e,b]),_r=lr({onDrop:Br});(0,H.useEffect)(()=>{g.current&&(m.current=!0,b({type:"init",tableConfig:r,dataSourceConfig:g.current.config}))},[r,b]),(0,H.useEffect)(()=>{e.on("config",(A,N)=>{m.current=!0,b({type:"tableConfig",...A,confirmed:N})})},[e,b]),(0,H.useMemo)(()=>{m.current&&(n==null||n({...r,columns:R}),m.current=!1)},[R,r,n]);let fn=(0,Ar.useContextMenu)(),$r=(0,H.useCallback)(A=>{var ce;let{current:N}=B,{current:J}=g,W=A.target,ue=W==null?void 0:W.closest("div[role='cell']"),Re=W==null?void 0:W.closest(".vuuTableRow");if(ue&&Re&&N&&J){let{columns:Ve,selectedRowsCount:Qr}=J,Ur=(0,ae.buildColumnMap)(Ve),Gr=parseInt((ce=Re.ariaRowIndex)!=null?ce:"-1"),jr=Array.from(Re.childNodes).indexOf(ue),Xr=N.find(([Jr])=>Jr===Gr),Yr=Ve[jr];fn(A,"grid",{columnMap:Ur,columnName:Yr,row:Xr,selectedRows:Qr===0?Ci:T(),viewport:e==null?void 0:e.viewport})}},[e==null?void 0:e.viewport,T,fn]);return{columns:R,columnsWithinViewport:He,containerMeasurements:C,containerProps:Wr,data:v,dispatchColumnAction:b,getRowOffset:w,handleContextMenuAction:ut,headings:x,onColumnResize:G,onContextMenu:$r,onRemoveColumnFromGroupBy:Kr,onRowClick:d,onSort:re,onToggleGroup:Y,virtualColSpan:ct,scrollProps:zr,rowCount:h,viewportMeasurements:y,..._r}};var Vr=Ce(require("classnames"));var Ir=require("@vuu-ui/vuu-utils"),ge=require("react/jsx-runtime"),Ee="vuuTable",wi=({allowConfigEditing:r=!1,className:e,config:t,dataSource:n,headerHeight:s=25,height:o,id:i,onConfigChange:l,onFeatureEnabled:a,onFeatureInvocation:u,onSelectionChange:c,onShowConfigEditor:h,renderBufferSize:f=0,rowHeight:m=20,selectionModel:g="extended",style:C,width:D,zebraStripes:R=!1,...b})=>{let x=(0,Pt.useIdMemo)(i),{containerMeasurements:{containerRef:P,innerSize:w,outerSize:p},containerProps:y,dispatchColumnAction:S,draggable:M,draggedItemIndex:d,handleContextMenuAction:v,scrollProps:T,viewportMeasurements:k,...L}=Er({config:t,dataSource:n,renderBufferSize:f,headerHeight:s,height:o,onConfigChange:l,onFeatureEnabled:a,onFeatureInvocation:u,onSelectionChange:c,rowHeight:m,selectionModel:g,width:D}),B={...p,"--content-height":`${k.contentHeight}px`,"--horizontal-scrollbar-height":`${k.horizontalScrollbarHeight}px`,"--content-width":`${k.contentWidth}px`,"--pinned-width-left":`${k.pinnedWidthLeft}px`,"--pinned-width-right":`${k.pinnedWidthRight}px`,"--header-height":`${s}px`,"--row-height":`${m}px`,"--table-height":`${w==null?void 0:w.height}px`,"--table-width":`${w==null?void 0:w.width}px`,"--total-header-height":`${k.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${k.verticalScrollbarWidth}px`,"--viewport-body-height":`${k.viewportBodyHeight}px`},U=(0,Vr.default)(Ee,e,{[`${Ee}-zebra`]:R,[`${Ee}-loading`]:(0,Ir.isDataLoading)(L.columns)});return(0,ge.jsx)(Hr.ContextMenuProvider,{menuActionHandler:v,menuBuilder:Tt(n),children:(0,ge.jsxs)("div",{...b,...y,className:U,id:x,ref:P,style:B,tabIndex:-1,children:[w?(0,ge.jsx)("div",{className:`${Ee}-scrollbarContainer`,ref:T.scrollbarContainerRef,children:(0,ge.jsx)("div",{className:`${Ee}-scrollbarContent`})}):null,w?(0,ge.jsxs)("div",{className:`${Ee}-contentContainer`,ref:T.contentContainerRef,children:[(0,ge.jsx)(Bn,{...L,headerHeight:s,tableId:x}),M]}):null,r&&w?(0,ge.jsx)(Pt.Button,{className:`${Ee}-settings`,"data-icon":"settings",onClick:h,variant:"secondary"}):null]})})};var Lr=Ce(require("classnames")),je=require("@vuu-ui/vuu-utils");var Ge=require("react/jsx-runtime"),at="vuuJsonCell",{IS_EXPANDED:yi,KEY:vi}=je.metadataKeys,Pi=r=>{let e=r.lastIndexOf("|");return e===-1?"":r.slice(e+1)},Mi=({column:r,row:e})=>{let{key:t}=r,n=e[t],s=!1;(0,je.isJsonAttribute)(n)&&(n=n.slice(0,-1),s=!0);let o=Pi(e[vi]),i=(0,Lr.default)({[`${at}-name`]:o===n,[`${at}-value`]:o!==n,[`${at}-group`]:s});if(s){let l=e[yi]?"minus-box":"plus-box";return(0,Ge.jsxs)("span",{className:i,children:[(0,Ge.jsx)("span",{className:`${at}-value`,children:n}),(0,Ge.jsx)("span",{className:`${at}-toggle`,"data-icon":l})]})}else return n?(0,Ge.jsx)("span",{className:i,children:n}):null};(0,je.registerComponent)("json",Mi,"cell-renderer",{});
|
|
2
2
|
//# sourceMappingURL=index.js.map
|