@vuu-ui/vuu-table 0.8.4 → 0.8.5

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/esm/index.js CHANGED
@@ -1,2 +1,18 @@
1
- var Nt=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)};var X=(r,e,t)=>(Nt(r,e,"read from private field"),t?t.call(r):e.get(r)),zt=(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)},Ye=(r,e,t,n)=>(Nt(r,e,"write to private field"),n?n.call(r,t):e.set(r,t),t);import{useCallback as Je,useRef as Dr}from"react";import{jsx as Ar}from"react/jsx-runtime";var Wt=()=>{},Or="vuuColumnResizer",Fe=({onDrag:r,onDragEnd:e=Wt,onDragStart:t=Wt})=>{let n=Dr(0),s=Je(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=Je(l=>{window.removeEventListener("mouseup",o),window.removeEventListener("mousemove",s),e(l)},[e,s]),i=Je(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 Ar("div",{className:Or,"data-align":"end",onMouseDown:i})};import{isNumericColumn as Er}from"@vuu-ui/vuu-utils";var Kt=r=>(e,t)=>{let n=[];if(r===void 0)return n;if(e==="header")n.push(...Hr(t,r)),n.push(...Lr(t,r)),n.push(...Vr(t,r)),n.push(...Ir(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 Hr(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 Vr(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(Er(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 tt=(r,e)=>({label:`Pin ${e}`,action:`column-pin-${e}`,options:r}),Ze=r=>tt(r,"left"),qe=r=>tt(r,"floating"),et=r=>tt(r,"right");function Ir(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:[Ze(r),qe(r),et(r)]}):t==="left"?n.push({label:"Unpin column",action:"column-unpin",options:r},{label:"Pin column",children:[qe(r),et(r)]}):t==="right"?n.push({label:"Unpin column",action:"column-unpin",options:r},{label:"Pin column",children:[Ze(r),qe(r)]}):t==="floating"&&n.push({label:"Unpin column",action:"column-unpin",options:r},{label:"Pin column",children:[Ze(r),et(r)]}),n}function Lr(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}import{removeColumnFromFilter as Fr}from"@vuu-ui/vuu-utils";import{addGroupColumn as Bt,addSortColumn as _t,AggregationType as Nr,setAggregations as me,setSortColumn as $t}from"@vuu-ui/vuu-utils";var zr=(r,e)=>{if(r.filterStruct&&e){let[t,n]=Fr(e,r.filterStruct);return{filter:n,filterStruct:t}}else return r},{Average:Wr,Count:Kr,Distinct:Br,High:_r,Low:$r,Sum:Qr}=Nr,Qt=({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=$t(r.sort,i,"A"),!0;case"sort-dsc":return r.sort=$t(r.sort,i,"D"),!0;case"sort-add-asc":return r.sort=_t(r.sort,i,"A"),!0;case"sort-add-dsc":return r.sort=_t(r.sort,i,"D"),!0;case"group":return r.groupBy=Bt(r.groupBy,i),!0;case"group-add":return r.groupBy=Bt(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=zr(r.filter,i),!0;case"remove-filters":return r.filter={filter:""},!0;case"agg-avg":return r.aggregations=me(r.aggregations,i,Wr),!0;case"agg-high":return r.aggregations=me(r.aggregations,i,_r),!0;case"agg-low":return r.aggregations=me(r.aggregations,i,$r),!0;case"agg-count":return r.aggregations=me(r.aggregations,i,Kr),!0;case"agg-distinct":return r.aggregations=me(r.aggregations,i,Br),!0;case"agg-sum":return r.aggregations=me(r.aggregations,i,Qr),!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};import{ContextMenuProvider as ko}from"@vuu-ui/vuu-popups";import{Button as So,useIdMemo as To}from"@salt-ds/core";import{buildColumnMap as ks,getColumnStyle as Ss,isGroupColumn as Ts,metadataKeys as Ds,notHidden as Os,visibleColumnAtIndex as As}from"@vuu-ui/vuu-utils";import{useCallback as hn,useMemo as fn}from"react";import{isGroupColumn as Xt,isJsonColumn as os,isJsonGroup as ls,metadataKeys as as,notHidden as us}from"@vuu-ui/vuu-utils";import cs from"classnames";import{memo as hs,useCallback as Yt}from"react";import{getColumnStyle as Ur,metadataKeys as Gr}from"@vuu-ui/vuu-utils";import{EditableLabel as jr}from"@heswell/salt-lab";import Xr from"classnames";import{memo as Yr,useCallback as Jr,useRef as Zr,useState as Ut}from"react";import{jsx as Ne}from"react/jsx-runtime";var{KEY:Gt}=Gr,nt=Yr(({className:r,column:e,columnMap:t,onClick:n,row:s})=>{let o=Zr(null),{align:i,CellRenderer:l,key:a,pin:u,editable:c,resizing:h,valueFormatter:f}=e,[m,g]=Ut(!1),C=f(s[a]),[D,R]=Ut(C),b=()=>{var M;(M=o.current)==null||M.focus()},x=M=>{M.key==="Enter"&&g(!0)},P=Jr(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=Xr(r,{vuuAlignRight:i==="right",vuuPinFloating:u==="floating",vuuPinLeft:u==="left",vuuPinRight:u==="right","vuuTableCell-resizing":h})||void 0,S=Ur(e);return c?Ne("div",{className:y,"data-editable":!0,role:"cell",style:S,onKeyDown:x,children:Ne(jr,{editing:m,value:D,onChange:R,onMouseDownCapture:b,onEnterEditMode:w,onExitEditMode:p,onKeyDown:x,ref:o,tabIndex:0},"title")}):Ne("div",{className:y,role:"cell",style:S,onClick:P,children:l?Ne(l,{column:e,columnMap:t,row:s}):C})},qr);nt.displayName="TableCell";function qr(r,e){return r.column===e.column&&r.onClick===e.onClick&&r.row[Gt]===e.row[Gt]&&r.row[r.column.key]===e.row[e.column.key]}import{getColumnStyle as es,getGroupValueAndOffset as ts,metadataKeys as ns}from"@vuu-ui/vuu-utils";import{useCallback as rs}from"react";import{jsx as rt,jsxs as is}from"react/jsx-runtime";var{IS_LEAF:ss}=ns,jt=({column:r,onClick:e,row:t})=>{let{columns:n}=r,[s,o]=ts(n,t),i=rs(c=>{e==null||e(c,r)},[r,e]),l=es(r),a=t[ss],u=Array(o).fill(0).map((c,h)=>rt("span",{className:"vuuTableGroupCell-spacer"},h));return is("div",{className:"vuuTableGroupCell vuuPinLeft",onClick:a?void 0:i,role:"cell",style:l,children:[u,a?null:rt("span",{className:"vuuTableGroupCell-toggle","data-icon":"triangle-right"}),rt("span",{children:s})]})};import{jsx as Jt,jsxs as ms}from"react/jsx-runtime";var{IDX:fs,IS_EXPANDED:ps,SELECTED:ds}=as,ze="vuuTableRow",Zt=hs(function({columnMap:e,columns:t,offset:n,onClick:s,onToggleGroup:o,virtualColSpan:i=0,row:l}){let{[fs]:a,[ps]:u,[ds]:c}=l,h=cs(ze,{[`${ze}-even`]:a%2===0,[`${ze}-expanded`]:u,[`${ze}-preSelected`]:c===2}),f=Yt(g=>{let C=g.shiftKey,D=g.ctrlKey||g.metaKey;s==null||s(l,C,D)},[s,l]),m=Yt((g,C)=>{(Xt(C)||ls(C,l))&&(g.stopPropagation(),o==null||o(l,C))},[o,l]);return ms("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?Jt("div",{role:"cell",style:{width:i}}):null,t.filter(us).map(g=>{let C=Xt(g),D=os(g);return Jt(C?jt:nt,{column:g,columnMap:e,onClick:C||D?m:void 0,row:l},g.name)})]})});import tn from"classnames";import{useRef as gs}from"react";import{useCallback as st,useRef as qt}from"react";var We=({column:r,onResize:e,rootRef:t})=>{let n=qt(0),s=qt(!1),{name:o}=r,i=st(()=>{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=st((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=st(()=>{e&&(e("end",o,n.current),setTimeout(()=>{s.current=!1},100))},[o,e]);return{isResizing:s.current,onDrag:l,onDragStart:i,onDragEnd:a}};import{jsx as ae,jsxs as rn}from"react/jsx-runtime";var re="vuuTable-groupHeaderCell",en=({column:r,onClick:e,...t})=>ae("span",{...t,className:`${re}-close`,"data-icon":"close-circle",onClick:()=>e==null?void 0:e(r)}),bs=r=>{let{children:e,column:t,className:n}=r;return rn("div",{className:tn(`${re}-col`,n),role:"columnheader",children:[ae("span",{className:`${re}-label`,children:t.name}),e]})},nn=({column:r,className:e,onRemoveColumn:t,onResize:n,...s})=>{let o=gs(null),{isResizing:i,...l}=We({column:r,onResize:n,rootRef:o}),a=tn(re,e,{vuuPinLeft:r.pin==="left",[`${re}-right`]:r.align==="right",[`${re}-resizing`]:r.resizing,[`${re}-pending`]:r.groupConfirmed===!1}),{columns:u}=r;return ae("div",{className:a,ref:o,...s,children:rn("div",{className:`${re}-inner`,children:[u.map(c=>ae(bs,{column:c,children:u.length>1?ae(en,{column:c,onClick:t}):null},c.key)),ae(en,{"data-align":"end",onClick:t}),r.resizeable!==!1?ae(Fe,{...l}):null]})})};import Ps from"classnames";import{useCallback as it,useRef as un}from"react";import sn from"classnames";import{jsx as Ke,jsxs as Cs}from"react/jsx-runtime";var on="vuuSortIndicator",ln=({sorted:r})=>{if(!r)return null;let e=typeof r=="number"?r<0?"dsc":"asc":r==="A"?"asc":"dsc";return typeof r=="number"?Cs("div",{className:sn(on,"multi-col",e),children:[Ke("span",{"data-icon":`sorted-${e}`}),Ke("span",{className:"vuuSortPosition",children:Math.abs(r)})]}):Ke("div",{className:sn(on,"single-col"),children:Ke("span",{"data-icon":`sorted-${e}`})})};import{useContextMenu as Ms}from"@vuu-ui/vuu-popups";import{useContextMenu as xs}from"@vuu-ui/vuu-popups";import ws from"classnames";import{useCallback as ys}from"react";import{jsx as vs}from"react/jsx-runtime";var an=({column:r,filter:e})=>{let t=xs(),n=ys(s=>{s.stopPropagation(),t(s,"filter",{column:r,filter:e})},[r,e,t]);return r.filter?vs("div",{className:ws("vuuFilterIndicator"),"data-icon":"filter",onClick:n}):null};import{jsx as Re,jsxs as Rs}from"react/jsx-runtime";var Me="vuuTable-headerCell",cn=({column:r,className:e,onClick:t,onDragStart:n,onResize:s,...o})=>{let i=un(null),{isResizing:l,...a}=We({column:r,onResize:s,rootRef:i}),u=Ms(),c=un(null),h=D=>{u(D,"header",{column:r})},f=it(D=>!l&&(t==null?void 0:t(D)),[l,t]),m=it(D=>{c.current=window.setTimeout(()=>{n==null||n(D),c.current=null},500)},[n]),g=it(()=>{c.current!==null&&(window.clearTimeout(c.current),c.current=null)},[]),C=Ps(Me,e,{vuuPinFloating:r.pin==="floating",vuuPinLeft:r.pin==="left",vuuPinRight:r.pin==="right",vuuEndPin:r.endPin,[`${Me}-resizing`]:r.resizing,[`${Me}-right`]:r.align==="right"});return Re("div",{className:C,...o,onClick:f,onContextMenu:h,onMouseDown:m,onMouseUp:g,ref:i,children:Rs("div",{className:`${Me}-inner`,children:[Re(an,{column:r}),Re("div",{className:`${Me}-label`,children:r.label}),Re(ln,{sorted:r.sorted}),r.resizeable!==!1?Re(Fe,{...a}):null]})})};import{jsx as ue,jsxs as pn}from"react/jsx-runtime";var ot="vuuTable",{RENDER_IDX:Es}=Ds,dn=({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=hn(x=>{i==null||i(x)},[i]),D=fn(()=>r.filter(Os),[r]),R=fn(()=>ks(r),[r]),b=hn(x=>{var M;let w=x.target.closest(".vuuTable-headerCell"),p=parseInt((M=w==null?void 0:w.dataset.idx)!=null?M:"-1"),y=As(r,p),S=x.shiftKey;y&&c(y,S)},[r,c]);return pn("div",{"aria-rowcount":g,className:`${ot}-table`,role:"table",children:[pn("div",{className:`${ot}-headers`,role:"rowGroup",children:[s.map((x,P)=>ue("div",{className:"vuuTable-heading",children:x.map(({label:w,width:p},y)=>ue("div",{className:"vuuTable-headingCell",style:{width:p},children:w},y))},P)),ue("div",{role:"row",children:D.map((x,P)=>{let w=Ss(x);return Ts(x)?ue(nn,{column:x,"data-idx":P,onRemoveColumn:a,onResize:o,role:"columnHeader",style:w},P):ue(cn,{column:x,"data-idx":P,id:`${f}-${P}`,onClick:b,onDragStart:C,onResize:o,role:"columnHeader",style:w},P)})})]}),ue("div",{className:`${ot}-body`,onContextMenu:l,role:"rowGroup",children:t==null?void 0:t.map(x=>ue(Zt,{columnMap:R,columns:e,offset:n(x),onClick:u,virtualColSpan:m,onToggleGroup:h,row:x},x[Es]))})]})};import{useContextMenu as go}from"@vuu-ui/vuu-popups";import{applySort as bo,buildColumnMap as Co,isJsonGroup as xo,metadataKeys as wo,moveItem as yo}from"@vuu-ui/vuu-utils";import{useCallback as U,useEffect as ur,useMemo as vo,useRef as Ht,useState as Po}from"react";import{getFullRange as Ha,metadataKeys as Hs,WindowRange as Va}from"@vuu-ui/vuu-utils";import{useCallback as La,useEffect as Fa,useMemo as Na,useRef as za,useState as Wa}from"react";var{SELECTED:Ka}=Hs;import{useCallback as $a,useEffect as Qa,useState as Ua}from"react";import{ConnectionManager as ja}from"@vuu-ui/vuu-data";import{useCallback as Za,useEffect as qa,useState as eu}from"react";import{ConnectionManager as nu}from"@vuu-ui/vuu-data";import{useCallback as iu}from"react";import{makeRpcCall as lu}from"@vuu-ui/vuu-data";var Vs=0,ke=class{constructor(e,t){this.from=e,this.to=t}},A=class{constructor(e={}){this.id=Vs++,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=N.match(e)),t=>{let n=e(t);return n===void 0?null:[this,n]}}};A.closedBy=new A({deserialize:r=>r.split(" ")});A.openedBy=new A({deserialize:r=>r.split(" ")});A.group=new A({deserialize:r=>r.split(" ")});A.contextHash=new A({perNode:!0});A.lookAhead=new A({perNode:!0});A.mounted=new A({perNode:!0});var Is=Object.create(null),N=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):Is,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),s=new N(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(A.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(A.group),o=-1;o<(s?s.length:0);o++){let i=t[o<0?n.name:s[o]];if(i)return i}}}};N.none=new N("",Object.create(null),0,8);var ge=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(n.name,s,n.id,n.flags):n)}return new ge(t)}},Be=new WeakMap,mn=new WeakMap,V;(function(r){r[r.ExcludeBuffers=1]="ExcludeBuffers",r[r.IncludeAnonymous=2]="IncludeAnonymous",r[r.IgnoreMounts=4]="IgnoreMounts",r[r.IgnoreOverlays=8]="IgnoreOverlays"})(V||(V={}));var L=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(A.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 Ce(this.topNode,e)}cursorAt(e,t=0,n=0){let s=Be.get(this)||this.topNode,o=new Ce(s);return o.moveTo(e,t),Be.set(this,o._tree),o}get topNode(){return new $(this,0,0,null)}resolve(e,t=0){let n=be(Be.get(this)||this.topNode,e,t,!1);return Be.set(this,n),n}resolveInner(e,t=0){let n=be(mn.get(this)||this.topNode,e,t,!0);return mn.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&V.IncludeAnonymous)>0;for(let a=this.cursor(i|V.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:ct(N.none,this.children,this.positions,0,this.children.length,0,this.length,(t,n,s)=>new L(this.type,t,n,s,this.propValues),e.makeTree||((t,n,s)=>new L(N.none,t,n,s)))}static build(e){return Ls(e)}};L.empty=new L(N.none,[],[],0);var Se=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 Se(this.buffer,this.index)}},q=class{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return N.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&&!(bn(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 q(o,i,this.set)}};function bn(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 Cn(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 be(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 $&&r.index<0?null:r.parent;if(!i)return r;r=i}let o=n?0:V.IgnoreOverlays;if(n)for(let i=r,l=i.parent;l;i=l,l=i.parent)i instanceof $&&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 $=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(bn(s,n,h,h+c.length)){if(c instanceof q){if(o&V.ExcludeBuffers)continue;let f=c.findChild(0,c.buffer.length,t,n-h,s);if(f>-1)return new Y(new lt(i,c,e,h),null,f)}else if(o&V.IncludeAnonymous||!c.type.isAnonymous||ut(c)){let f;if(!(o&V.IgnoreMounts)&&c.props&&(f=c.prop(A.mounted))&&!f.overlay)return new $(f.tree,h,e,i);let m=new $(c,h,e,i);return o&V.IncludeAnonymous||!m.type.isAnonymous?m:m.nextChild(t<0?c.children.length-1:0,t,n,s)}}}if(o&V.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&V.IgnoreOverlays)&&(s=this._tree.prop(A.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 $(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 Ce(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return be(this,e,t,!1)}resolveInner(e,t=0){return be(this,e,t,!0)}enterUnfinishedNodesBefore(e){return Cn(this,e)}getChild(e,t=null,n=null){let s=$e(this,e,t,n);return s.length?s[0]:null}getChildren(e,t=null,n=null){return $e(this,e,t,n)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return Qe(this,e)}};function $e(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 Qe(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 lt=class{constructor(e,t,n,s){this.parent=e,this.buffer=t,this.index=n,this.start=s}},Y=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 Y(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&V.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 Y(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 Y(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 Y(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new Ce(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 L(this.type,e,t,this.to-this.from)}resolve(e,t=0){return be(this,e,t,!1)}resolveInner(e,t=0){return be(this,e,t,!0)}enterUnfinishedNodesBefore(e){return Cn(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,n=null){let s=$e(this,e,t,n);return s.length?s[0]:null}getChildren(e,t=null,n=null){return $e(this,e,t,n)}get node(){return this}matchContext(e){return Qe(this,e)}},Ce=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 $)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 $?(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&V.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&V.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&V.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&V.IncludeAnonymous||l instanceof q||!l.type.isAnonymous||ut(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 Y(this.buffer,t,this.stack[s]);return this.bufferNode=new Y(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 Qe(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 Qe(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 ut(r){return r.children.some(e=>e instanceof q||!e.type.isAnonymous||ut(e))}function Ls(r){var e;let{buffer:t,nodeSet:n,maxBufferLength:s=1024,reused:o=[],minRepeatType:i=n.types.length}=r,l=Array.isArray(t)?new Se(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 G=o[M];p.push(G),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 E=a[M],F,W,Ie=d-P;if(v-d<=s&&(W=C(l.pos-w,S))){let G=new Uint16Array(W.size-W.skip),K=l.pos-W.size,B=G.length;for(;l.pos>K;)B=D(W.start,G,B);F=new q(G,v-W.start,n),Ie=W.start-P}else{let G=l.pos-T;l.next();let K=[],B=[],j=M>=i?M:-1,ne=0,pe=v;for(;l.pos>G;)j>=0&&l.id==j&&l.size>=0?(l.end<=pe-s&&(m(K,B,d,ne,l.end,pe,j,k),ne=K.length,pe=l.end),l.next()):h(d,G,K,B,j);if(j>=0&&ne>0&&ne<K.length&&m(K,B,d,ne,d,pe,j,k),K.reverse(),B.reverse(),j>-1&&ne>0){let Le=f(E);F=ct(E,K,B,0,K.length,0,v-d,Le,Le)}else F=g(E,K,B,v-d,k-v)}p.push(F),y.push(Ie)}function f(P){return(w,p,y)=>{let S=0,M=w.length-1,d,v;if(M>=0&&(d=w[M])instanceof L){if(!M&&d.type==P&&d.length==y)return d;(v=d.prop(A.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=[A.contextHash,u];M=M?[d].concat(M):[d]}if(S>25){let d=[A.lookAhead,S];M=M?[d].concat(M):[d]}return new L(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 E=p.pos-k;if(k<0||E<T||p.start<d)break;let F=p.id>=i?4:0,W=p.start;for(p.next();p.pos>E;){if(p.size<0)if(p.size==-3)F+=4;else break e;else p.id>=i&&(F+=4);p.next()}S=W,y+=k,M+=F}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 L(a[r.topID],R.reverse(),b.reverse(),x)}var gn=new WeakMap;function _e(r,e){if(!r.isAnonymous||e instanceof q||e.type!=r)return 1;let t=gn.get(e);if(t==null){t=1;for(let n of e.children){if(n.type!=r||!(n instanceof L)){t=1;break}t+=_e(r,n)}gn.set(e,t)}return t}function ct(r,e,t,n,s,o,i,l,a){let u=0;for(let g=n;g<s;g++)u+=_e(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=_e(r,g[x]);for(x++;x<R;x++){let y=_e(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(ct(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 Ue=class{startParse(e,t,n){return typeof e=="string"&&(e=new at(e)),n=n?n.length?n.map(s=>new ke(s.from,s.to)):[new ke(0,0)]:[new ke(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}}},at=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 uu=new A({perNode:!0});var we=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 we(e,[],t,n,n,0,[],0,s?new Ge(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 we(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 ft(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{parser:e}=this.p,t=e.stateSlot(this.state,5);if(!(t&65536))return!1;if(!e.validAction(this.state,t)){let n=t>>19,s=t&65535,o=this.stack.length-n*3;if(o<0||e.getGoto(this.stack[o],s,!1)<0){let i=this.findForcedReduction();if(i==null)return!1;t=i}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],n=(s,o)=>{if(!t.includes(s))return t.push(s),e.allActions(s,i=>{if(!(i&393216))if(i&65536){let l=(i>>19)-o;if(l>1){let a=i&65535,u=this.stack.length-l*3;if(u>=0&&e.getGoto(this.stack[u],a,!1)>=0)return l<<19|65536|a}}else{let l=n(i,o+1);if(l!=null)return l}})};return n(this.state,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.pos,this.pos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(e){if(e!=this.curContext.context){let t=new Ge(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()}},Ge=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},xn;(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"})(xn||(xn={}));var ft=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}},ye=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 ye(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 ye(this.stack,this.pos,this.index)}};function Te(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 xe=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},wn=new xe,pt=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=wn,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=wn,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}},se=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:n}=t.p;Sn(this.data,e,t,this.id,n.data,n.tokenPrecTable)}};se.prototype.contextual=se.prototype.fallback=se.prototype.extend=!1;var dt=class{constructor(e,t,n){this.precTable=t,this.elseToken=n,this.data=typeof e=="string"?Te(e):e}token(e,t){let n=e.pos,s=0;for(;;){let o=e.next<0,i=e.resolveOffset(1,1);if(Sn(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(o||s++,i==null)break;e.reset(i,e.token)}s&&(e.reset(n,e.token),e.acceptToken(this.elseToken,s))}};dt.prototype.contextual=se.prototype.fallback=se.prototype.extend=!1;function Sn(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||Ns(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 yn(r,e,t){for(let n=e,s;(s=r[n])!=65535;n++)if(s==t)return n-e;return-1}function Ns(r,e,t,n){let s=yn(t,n,e);return s<0||yn(t,n,r)<s}var Q=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),ht=null,vn;(function(r){r[r.Margin=25]="Margin"})(vn||(vn={}));function Pn(r,e,t){let n=r.cursor(V.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 mt=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?Pn(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?Pn(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 L){if(i==e){if(i<this.safeFrom)return null;let l=i+o.length;if(l<=this.safeTo){let a=o.prop(A.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}}},gt=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(n=>new xe)}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 xe,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 xe,{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=ee(l,u+2);else{s==0&&l[u+1]==2&&(s=this.putAction(ee(l,u+2),t,n,s));break}l[u]==t&&(s=this.putAction(ee(l,u+1),t,n,s))}return s}},Mn;(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"})(Mn||(Mn={}));var bt=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 pt(t,s),this.tokens=new gt(e,this.stream),this.topTerm=e.top[1];let{from:o}=s[0];this.stacks=[we.start(this,e.top[0],o)],this.fragments=n.length&&this.stream.end-o>e.bufferLength*4?new mt(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&&zs(s);if(i)return this.stackToTree(i);if(this.parser.strict)throw Q&&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=Q?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(A.contextHash)||0)==c))return e.useNode(h,f),Q&&console.log(i+this.stackID(e)+` (via reuse of ${o.getName(h.type.id)})`),!0;if(!(h instanceof L)||h.children.length==0||h.positions[0]>0)break;let m=h.children[0];if(m instanceof L&&h.positions[0]==0)h=m;else break}}let l=o.stateSlot(e.state,4);if(l>0)return e.reduce(l),Q&&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),Q&&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 Rn(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=Q?this.stackID(l)+" -> ":"";if(l.deadEnd&&(o||(o=!0,l.restart(),Q&&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&&(Q&&console.log(f+this.stackID(h)+" (via force-reduce)"),!this.advanceFully(h,n));m++)Q&&(f=this.stackID(h)+" -> ");for(let m of l.recoverByInsert(a))Q&&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),Q&&console.log(c+this.stackID(l)+` (via recover-delete ${this.parser.getName(a)})`),Rn(l,n)):(!s||s.score<l.score)&&(s=l)}return s}stackToTree(e){return e.close(),L.build({buffer:ye.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=(ht||(ht=new WeakMap)).get(e);return t||ht.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function Rn(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 Ct=class{constructor(e,t,n){this.source=e,this.flags=t,this.disabled=n}allows(e){return!this.disabled||this.disabled[e]==0}};var ce=class extends Ue{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=A[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 ge(t.map((l,a)=>N.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=Te(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(kn),this.states=Te(e.states,Uint32Array),this.data=Te(e.stateData),this.goto=Te(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(l=>typeof l=="number"?new se(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 bt(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=ee(n,o+2)];else{if(n[o+1]==2)return ee(n,o+2);break}if(i==t||i==0)return ee(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){return!!this.allActions(e,n=>n==t?!0:null)}allActions(e,t){let n=this.stateSlot(e,4),s=n?t(n):void 0;for(let o=this.stateSlot(e,1);s==null;o+=3){if(this.data[o]==65535)if(this.data[o+1]==1)o=ee(this.data,o+2);else break;s=t(ee(this.data,o+1))}return s}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=ee(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(ce.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]=kn(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 Ct(e,n,s)}static deserialize(e){return new ce(e)}};function ee(r,e){return r[e]|r[e+1]<<16}function zs(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 kn(r){if(r.external){let e=r.extend?1:0;return(t,n)=>r.external(t,n)<<1|e}return r.get}var xt=ce.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});import{isMultiClauseFilter as De,isMultiValueFilter as Ws,isSingleValueFilter as Ks}from"@vuu-ui/vuu-utils";var z,Tn=class{constructor(){zt(this,z,void 0)}setFilterCombinatorOp(e,t=X(this,z)){De(t)&&t.op===e||Ye(this,z,{op:e,filters:[X(this,z)]})}add(e){if(X(this,z)===void 0)Ye(this,z,e);else if(De(X(this,z)))X(this,z).filters.push(e);else throw Error("Invalid filter passed to FilterExpression")}setColumn(e,t=X(this,z)){if(De(t)){let n=t.filters.at(-1);n&&this.setColumn(e,n)}else t&&(t.column=e)}setOp(e,t=X(this,z)){if(De(t)){let n=t.filters.at(-1);n&&this.setOp(e,n)}else t&&(t.op=e)}setValue(e,t=X(this,z)){var n;if(De(t)){let s=t.filters.at(-1);s&&this.setValue(e,s)}else Ws(t)?((n=t.values)!=null||(t.values=[]),t.values.push(e)):Ks(t)&&(t.value=e)}toJSON(e=X(this,z)){return this.name?{...e,name:this.name}:e}};z=new WeakMap;var wu=xt.configure({strict:!0});import{getRowRecord as Hu,isGroupMenuItemDescriptor as Vu,metadataKeys as $s}from"@vuu-ui/vuu-utils";import{useCallback as Lu}from"react";var{KEY:Fu}=$s;var Qs=r=>r.type==="vuu-links";var Us=r=>r.type==="vuu-menu",Dn=r=>Us(r)||Qs(r),On=r=>r.type==="vuu-link-created"||r.type==="vuu-link-removed";import{useCallback as Wu,useEffect as Ku,useState as Bu}from"react";import{getServerAPI as $u}from"@vuu-ui/vuu-data";import{getFullRange as wt,metadataKeys as Gs,WindowRange as js}from"@vuu-ui/vuu-utils";import{useCallback as ve,useEffect as je,useMemo as Xs,useRef as Oe,useState as Ys}from"react";var{SELECTED:Ae}=Gs;function An({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]=Ys(null),c=Oe(!0),h=Oe(!1),f=Oe({from:0,to:0}),m=Oe(null),g=Oe([]),C=Xs(()=>new yt(wt(i)),[]),D=ve(p=>{for(let y of p)C.add(y);g.current=C.data,h.current=!0},[C]),R=ve(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)):Dn(p)?t==null||t(p):On(p)?n==null||n(p):console.log(`useDataSource unexpected message ${p.type}`)},[C,t,n,s,o,D]);je(()=>()=>{m.current&&(cancelAnimationFrame(m.current),m.current=null),c.current=!1},[]);let b=ve(()=>{c.current&&(h.current&&(u({}),h.current=!1),m.current=requestAnimationFrame(b))},[u]);je(()=>{m.current=requestAnimationFrame(b)},[b]);let x=ve(p=>{let{from:y}=r.range,S={from:y,to:y+p},M=wt(S,l);C.setRange(M),r.range=f.current=M,r.emit("range",S)},[r,C,l]),P=ve(p=>{let y=wt(p,l);C.setRange(y),r.range=f.current=y,r.emit("range",p)},[r,C,l]),w=ve(()=>C.getSelectedRows(),[C]);return je(()=>{r==null||r.subscribe({range:f.current},R)},[r,R,e]),je(()=>{x(a)},[x,a]),{data:g.current,getSelectedRows:w,range:f.current,setRange:P,dataSource:r}}var yt=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 js(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[Ae],i=(n=this.data[s-1])==null?void 0:n[Ae];i===0&&o?this.data[s-1][Ae]=2:i===2&&!o&&(this.data[s-1][Ae]=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[Ae]===1)}};import{useDragDrop as Js}from"@heswell/salt-lab";import{useCallback as En,useRef as Hn}from"react";var Vn=({onDrop:r})=>{let e=Hn(),t=Hn(null),n=En(()=>{console.log("handleDropSettle"),e.current=void 0,t.current=null},[]),{draggable:s,draggedItemIndex:o,onMouseDown:i}=Js({allowDragDrop:!0,draggableClassName:"vuuTable-headerCell",orientation:"horizontal",containerRef:t,itemQuery:".vuuTable-headerCell",onDrop:r,onDropSettle:n}),l=En(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}};import{withinRange as si}from"@vuu-ui/vuu-utils";import{useCallback as te,useEffect as ii,useLayoutEffect as oi,useMemo as li,useRef as Ot}from"react";function Zs(r,...e){let t=new Set(r);for(let n of e)for(let s of n)t.add(s);return t}var vt="ArrowUp",Pt="ArrowDown",Mt="ArrowLeft",Rt="ArrowRight";var kt="Home",St="End",Tt="PageUp",Dt="PageDown";var qs=new Set(["Enter","Delete"," "]),ei=new Set(["Tab"]),ti=new Set(["ArrowRight","ArrowLeft"]),In=new Set([kt,St,Tt,Dt,Pt,Mt,Rt,vt]),ni=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),cc=Zs(qs,In,ti,ni,ei);var ri=["Home","End","PageUp","PageDown"],Ln=r=>ri.includes(r),Fn=r=>In.has(r);var Nn=r=>`.vuuTable-headers .vuuTable-headerCell:nth-child(${r+1})`,ai=(r,e)=>`.vuuTable-body > [aria-rowindex='${r}'] > [role='cell']:nth-child(${e+1})`,ui=[-1,-1];function ci(r,[e,t],n,s){return r===vt?e>-1?[e-1,t]:[e,t]:r===Pt?e===-1?[0,t]:e===s-1?[e,t]:[e+1,t]:r===Rt?t<n-1?[e,t+1]:[e,t]:r===Mt?t>0?[e,t-1]:[e,t]:[e,t]}var zn=({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=Ot([-1,-1]),c=Ot(),h=Ot([-1,0]),f=te(([d,v])=>{var k;let T=d===-1?Nn(v):ai(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 E=parseInt((T=k.ariaRowIndex)!=null?T:"-1",10),F=Array.from(k.childNodes).indexOf(d);return[E,F]}}return ui},C=te(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()):si(d[0],i)||(c.current=void 0,s==null||s({type:"scroll-page",direction:"up"}))}},[e,f,s,i]),D=te((d,v,T=!1)=>{let k=[d,v];h.current=k,C(k),T&&(u.current=k)},[C]),R=te(()=>{var d;(d=c.current)==null||d.setAttribute("tabindex",""),c.current=void 0},[]),b=te(async(d,v)=>{switch(d){case Dt:s==null||s({type:"scroll-page",direction:"down"});break;case Tt:s==null||s({type:"scroll-page",direction:"up"});break;case kt:s==null||s({type:"scroll-end",direction:"home"});break;case St:s==null||s({type:"scroll-end",direction:"end"});break}return v},[s]),x=te(()=>{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=te(async d=>{let[v,T]=Ln(d)?await b(d,h.current):ci(d,h.current,r,o),[k,E]=h.current;(v!==k||T!==E)&&D(v,T,!0)},[r,b,o,D]),w=te(d=>{n.length>0&&Fn(d.key)&&(d.preventDefault(),d.stopPropagation(),P(d.key))},[n,P]),p=te(d=>{let v=d.target,T=m(v);if(T){let[k,E]=g(T);D(k,E)}},[D]),y=li(()=>({onClick:p,onFocus:x,onKeyDown:w}),[p,x,w]);oi(()=>{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 ii(()=>{var d;if(S&&c.current===void 0){let v=(d=e.current)==null?void 0:d.querySelector(Nn(0));v&&(v.setAttribute("tabindex","0"),c.current=v)}},[e,S]),y};import{isValidNumber as ie}from"@vuu-ui/vuu-utils";import{useCallback as pi,useMemo as di,useRef as mi,useState as gi}from"react";import{useCallback as hi,useEffect as Wn,useRef as fi}from"react";var he=new Map,Bn=(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}},Kn=new ResizeObserver(r=>{for(let e of r){let{target:t,borderBoxSize:n,contentBoxSize:s}=e,o=he.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=Bn(t,{height:i,width:l,contentHeight:a,contentWidth:u},m);C!==g&&(f=!0,h[m]=C)}f&&c&&c(h)}}});function _n(r,e,t,n=!1){let s=fi(e),o=hi(i=>{let{width:l,height:a}=i.getBoundingClientRect(),{clientWidth:u,clientHeight:c}=i;return s.current.reduce((h,f)=>(h[f]=Bn(i,{width:l,height:a,contentHeight:c,contentWidth:u},f),h),{})},[]);Wn(()=>{let i=r.current;async function l(){he.set(i,{measurements:{}}),await document.fonts.ready;let a=he.get(i);if(a){let u=o(i);a.measurements=u,Kn.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(he.has(i))throw Error("useResizeObserver attemping to observe same element twice");l()}return()=>{i&&he.has(i)&&(Kn.unobserve(i),he.delete(i))}},[o,r]),Wn(()=>{let i=r.current,l=he.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 bi=["clientHeight","clientWidth"],$n=r=>Number.isFinite(r),Ci={height:"100%",width:"100%"},xi=(r,e)=>ie(r)&&ie(e)?{height:`${r}px`,width:`${e}px`}:Ci,wi=(r,e)=>{if(ie(r)&&ie(e))return{height:r,width:e}},Qn=({defaultHeight:r=0,defaultWidth:e=0,height:t,width:n})=>{let s=mi(null),[o,i]=gi({css:xi(t,n),inner:wi(t,n),outer:{height:t!=null?t:"100%",width:n!=null?n:"100%"}});di(()=>{i(a=>{let{inner:u,outer:c}=a;if(ie(t)&&ie(n)&&u&&c){let{height:h,width:f}=u,{height:m,width:g}=c;if(m!==t||g!==n){let C=ie(m)?m-h:0,D=ie(g)?g-f:0;return{...a,outer:{height:t,width:n},inner:{height:t-C,width:n-D}}}}return a})},[t,n]);let l=pi(({clientWidth:a,clientHeight:u})=>{i(c=>{let{css:h,inner:f,outer:m}=c;return $n(u)&&$n(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 _n(s,bi,l,!0),{containerRef:s,cssSize:o.css,outerSize:o.outer,innerSize:o.inner}};import{deselectItem as yi,isRowSelected as vi,metadataKeys as Pi,selectItem as Mi}from"@vuu-ui/vuu-utils";import{useCallback as Ri,useRef as Un}from"react";var{IDX:ki}=Pi,Si=[],Gn=({selectionModel:r,onSelectionChange:e})=>{let t=Un(-1),n=Un(Si);return Ri((o,i,l)=>{let{[ki]:a}=o,{current:u}=t,{current:c}=n,f=(vi(o)?yi:Mi)(r,c,a,i,l,u);n.current=f,t.current=a,e&&e(f)},[e,r])};import{moveItem as Ti}from"@heswell/salt-lab";import{applyFilterToColumns as Di,applyGroupByToColumns as Oi,applySortToColumns as Ai,findColumn as Ei,getCellRenderer as Hi,getColumnName as Vi,getTableHeadings as Ii,getValueFormatter as Li,isFilteredColumn as Fi,isGroupColumn as Ni,isPinned as zi,isTypeDescriptor as Wi,logger as Ki,metadataKeys as Bi,updateColumn as jn,sortPinnedColumns as Xn,stripFilterFromColumns as _i}from"@vuu-ui/vuu-utils";import{useReducer as $i}from"react";var{info:Fc}=Ki("useTableModel"),Qi=100,Yn=Bi.count,Ui=({serverDataType:r})=>r===void 0,Gi=r=>{var e;if(Wi(r.type))return Hi((e=r.type)==null?void 0:e.renderer)},Jn=(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"},ji=["int","long","double"],Zn=r=>r===void 0?void 0:ji.includes(r)?"right":"left",Nc=r=>r.type==="columnSettings",Xi=(r,e)=>{switch(e.type){case"init":return er(e);case"moveColumn":return Ji(r,e);case"resizeColumn":return eo(r,e);case"setTableSchema":return to(r,e);case"hideColumns":return Zi(r,e);case"showColumns":return qi(r,e);case"pinColumn":return no(r,e);case"updateColumnProp":return Pe(r,e);case"tableConfig":return tr(r,e);default:return console.log(`unhandled action ${e.type}`),r}},qn=(r,e)=>{let[t,n]=$i(Xi,{tableConfig:r,dataSourceConfig:e},er);return{columns:t.columns,dispatchColumnAction:n,headings:t.headings}};function er({dataSourceConfig:r,tableConfig:e}){let t=e.columns.map(At(e)),n=t.some(zi)?Xn(t):t,s={columns:n,headings:Ii(n)};if(r){let{columns:o,...i}=r;return tr(s,{type:"tableConfig",...i})}else return s}var Yi=(r,e)=>e==="uppercase"?r.toUpperCase():e==="capitalize"?r[0].toUpperCase()+r.slice(1).toLowerCase():r,At=r=>(e,t)=>{let n=Jn(e,r.tableSchema),{columnDefaultWidth:s=Qi,columnFormatHeader:o}=r,{align:i=Zn(n),key:l,name:a,label:u=a,width:c=s,...h}=e,f={...h,align:i,CellRenderer:Gi(e),label:Yi(u,o),key:l!=null?l:t+Yn,name:a,originalIdx:t,serverDataType:n,valueFormatter:Li(e),width:c};return Ni(f)&&(f.columns=f.columns.map(m=>At(r)(m,m.key))),f};function Ji(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:Ti(s,o,n)}}return r}function Zi(r,{columns:e}){return e.some(t=>t.hidden!==!0)?e.reduce((t,n)=>n.hidden!==!0?Pe(t,{type:"updateColumnProp",column:n,hidden:!0}):t,r):r}function qi(r,{columns:e}){return e.some(t=>t.hidden)?e.reduce((t,n)=>n.hidden?Pe(t,{type:"updateColumnProp",column:n,hidden:!1}):t,r):r}function eo(r,{column:e,phase:t,width:n}){let s="updateColumnProp",o=t!=="end";switch(t){case"begin":return Pe(r,{type:s,column:e,resizing:o});case"end":return Pe(r,{type:s,column:e,resizing:o,width:n});case"resize":return Pe(r,{type:s,column:e,width:n});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${t}`)}}function to(r,{tableSchema:e}){let{columns:t}=r;if(t.some(Ui)){let n=t.map(s=>{var i;let o=Jn(s,e);return{...s,align:(i=s.align)!=null?i:Zn(o),serverDataType:o}});return{...r,columns:n,tableSchema:e}}else return{...r,tableSchema:e}}function no(r,e){let{columns:t}=r,{column:n,pin:s}=e;return t=jn(t,n.name,{pin:s}),t=Xn(t),console.log({withPins:t}),{...r,columns:t}}function Pe(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=jn(t,s.name,u),{...r,columns:t}}function tr(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=Vi(h),g=f+Yn,C=Ei(c.columns,m);return C?C.key===g?C:{...C,key:g}:At(r)({name:h},f)})}),l&&(c={...r,columns:Oi(c.columns,s,t)}),u&&(c={...r,columns:Ai(c.columns,o)}),a?c={...r,columns:Di(c.columns,n)}:c.columns.some(Fi)&&(c={...r,columns:_i(c.columns)}),c}import{useCallback as oe,useRef as Ee}from"react";var nr=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]},ro=r=>{let{clientHeight:e,clientWidth:t,scrollHeight:n,scrollWidth:s}=r;return[s-t,n-e]},rr=({onAttach:r,onDetach:e})=>{let t=Ee(null);return oe(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=Ee(!1),s=Ee({scrollTop:0,scrollLeft:0}),o=Ee(null),i=Ee(null),{maxScrollContainerScrollHorizontal:l,maxScrollContainerScrollVertical:a}=t,u=oe(()=>{let{current:b}=i,{current:x}=o,{current:P}=n;if(P)n.current=!1;else if(b&&x){let[w,p]=nr(x),[y,S]=ro(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=oe(()=>{let{current:b}=i,{current:x}=o,{current:P}=s;if(b&&x){let{scrollLeft:w,scrollTop:p}=b,[y,S]=nr(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=oe(b=>{o.current=b,b.addEventListener("scroll",u,{passive:!0})},[u]),f=oe(b=>{o.current=null,b.removeEventListener("scroll",u)},[u]),m=oe(b=>{i.current=b,b.addEventListener("scroll",c,{passive:!0})},[c]),g=oe(b=>{i.current=null,b.removeEventListener("scroll",c)},[c]),C=rr({onAttach:m,onDetach:g}),D=rr({onAttach:h,onDetach:f}),R=oe(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}};import{useCallback as so,useMemo as Xe,useRef as io}from"react";import{actualRowPositioning as oo,virtualRowPositioning as lo}from"@vuu-ui/vuu-utils";var ao=15e5,uo={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},co=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}},ir=({columns:r,headerHeight:e,headings:t,rowCount:n,rowHeight:s,size:o})=>{let i=io(0),a=Math.min(n,ao)*s,c=n*s-a,{pinnedWidthLeft:h,pinnedWidthRight:f,unpinnedWidth:m}=Xe(()=>co(r),[r]),[g,C]=Xe(()=>oo(s),[s]),[D,R]=Xe(()=>c?lo(s,c,i):[g,C],[C,g,c,s]),b=so(x=>{i.current=x},[]);return Xe(()=>{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,E=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:E,viewportBodyHeight:k}}else return uo},[o,t.length,h,m,f,a,e,s,R,D,b])};import{getColumnsInViewport as or,itemsChanged as ho}from"@vuu-ui/vuu-utils";import{useCallback as lr,useEffect as fo,useMemo as po,useRef as Et,useState as mo}from"react";var ar=({columns:r,getRowAtPosition:e,setRange:t,viewportMeasurements:n})=>{let s=Et(-1),{rowCount:o,contentWidth:i,maxScrollContainerScrollHorizontal:l}=n,a=i-l,u=Et(0),[c,h]=po(()=>or(r,u.current,u.current+a),[a,r]),f=Et(h);fo(()=>{g(c)},[c]);let[m,g]=mo(c),C=lr(R=>{u.current=R;let[b,x]=or(r,R,R+a);ho(m,b)&&(f.current=x,g(b))},[a,r,m]),D=lr(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 Mo=[],{KEY:Ro,IS_EXPANDED:cr,IS_LEAF:hr}=wo,fr=({config:r,dataSource:e,headerHeight:t,onConfigChange:n,onFeatureEnabled:s,onFeatureInvocation:o,onSelectionChange:i,renderBufferSize:l=0,rowHeight:a,selectionModel:u,...c})=>{var Lt,Ft;let[h,f]=Po(e.size),m=Ht(!1),g=Ht();if(g.current=e,e===void 0)throw Error("no data source provided to Vuu Table");let C=Qn(c),D=U(O=>{f(O)},[]),{columns:R,dispatchColumnAction:b,headings:x}=qn(r,e.config),{getRowAtPosition:P,getRowOffset:w,setPctScrollTop:p,...y}=ir({columns:R,headerHeight:t,headings:x,rowCount:h,rowHeight:a,size:C.innerSize}),S=U(({tableSchema:O})=>{O?(m.current=!0,b({type:"setTableSchema",tableSchema:O})):console.log("usbscription message with no schema")},[b]),M=U(O=>{e.select(O),i==null||i(O)},[e,i]),d=Gn({onSelectionChange:M,selectionModel:u}),{data:v,getSelectedRows:T,range:k,setRange:E}=An({dataSource:e,onFeatureEnabled:s,onFeatureInvocation:o,onSubscribed:S,onSizeChange:D,renderBufferSize:l,viewportRowCount:y.rowCount}),F=Ht();F.current=v;let W=U(O=>{m.current=!0,b(O)},[b]),Ie=Qt({dataSource:e,onPersistentColumnOperation:W}),G=U((O,H=!1,_)=>{e&&(e.sort=bo(e.sort,O,H,_))},[e]),K=U((O,H,_)=>{let I=R.find(J=>J.name===H);if(I)O==="end"&&(m.current=!0),b({type:"resizeColumn",phase:O,column:I,width:_});else throw Error(`useDataTable.handleColumnResize, column ${H} not found`)},[R,b]),B=U((O,H)=>{let _=xo(H,O),I=O[Ro];if(O[cr]){if(e.closeTreeNode(I,!0),_){let J=R.indexOf(H);e.getRowsAtDepth(J+1).some(Z=>Z[cr]||Z[hr])||b({type:"hideColumns",columns:R.slice(J+2)})}}else if(e.openTreeNode(I),_){let J=e.getChildRows(I),le=R.indexOf(H)+1,Z=[R[le]];J.some(de=>de[hr])&&Z.push(R[le+1]),Z.some(de=>de.hidden)&&b({type:"showColumns",columns:Z})}},[R,e,b]),{onVerticalScroll:j,onHorizontalScroll:ne,columnsWithinViewport:pe,virtualColSpan:Le}=ar({columns:R,getRowAtPosition:P,setRange:E,viewportMeasurements:y}),dr=U((O,H)=>{p(H),j(O)},[j,p]),{requestScroll:mr,...gr}=sr({onHorizontalScroll:ne,onVerticalScroll:dr,viewport:y,viewportHeight:((Ft=(Lt=C.innerSize)==null?void 0:Lt.height)!=null?Ft:0)-t}),br=zn({columnCount:R.length,containerRef:C.containerRef,data:v,requestScroll:mr,rowCount:e==null?void 0:e.size,viewportRange:k}),Cr=U(O=>{O?e&&e.groupBy.includes(O.name)&&(e.groupBy=e.groupBy.filter(H=>H!==O.name)):e.groupBy=[]},[e]),xr=U((O,H)=>{let _=e.columns[O],I=yo(e.columns,_,H);I!==e.columns&&(e.columns=I,b({type:"tableConfig",columns:I}))},[e,b]),wr=Vn({onDrop:xr});ur(()=>{g.current&&(m.current=!0,b({type:"init",tableConfig:r,dataSourceConfig:g.current.config}))},[r,b]),ur(()=>{e.on("config",(O,H)=>{m.current=!0,b({type:"tableConfig",...O,confirmed:H})})},[e,b]),vo(()=>{m.current&&(n==null||n({...r,columns:R}),m.current=!1)},[R,r,n]);let It=go(),yr=U(O=>{var Z;let{current:H}=F,{current:_}=g,I=O.target,J=I==null?void 0:I.closest("div[role='cell']"),le=I==null?void 0:I.closest(".vuuTableRow");if(J&&le&&H&&_){let{columns:de,selectedRowsCount:vr}=_,Pr=Co(de),Mr=parseInt((Z=le.ariaRowIndex)!=null?Z:"-1"),Rr=Array.from(le.childNodes).indexOf(J),kr=H.find(([Tr])=>Tr===Mr),Sr=de[Rr];It(O,"grid",{columnMap:Pr,columnName:Sr,row:kr,selectedRows:vr===0?Mo:T(),viewport:e==null?void 0:e.viewport})}},[e==null?void 0:e.viewport,T,It]);return{columns:R,columnsWithinViewport:pe,containerMeasurements:C,containerProps:br,data:v,dispatchColumnAction:b,getRowOffset:w,handleContextMenuAction:Ie,headings:x,onColumnResize:K,onContextMenu:yr,onRemoveColumnFromGroupBy:Cr,onRowClick:d,onSort:G,onToggleGroup:B,virtualColSpan:Le,scrollProps:gr,rowCount:h,viewportMeasurements:y,...wr}};import Do from"classnames";import{isDataLoading as Oo}from"@vuu-ui/vuu-utils";import{jsx as He,jsxs as pr}from"react/jsx-runtime";var fe="vuuTable",Th=({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=To(i),{containerMeasurements:{containerRef:P,innerSize:w,outerSize:p},containerProps:y,dispatchColumnAction:S,draggable:M,draggedItemIndex:d,handleContextMenuAction:v,scrollProps:T,viewportMeasurements:k,...E}=fr({config:t,dataSource:n,renderBufferSize:f,headerHeight:s,height:o,onConfigChange:l,onFeatureEnabled:a,onFeatureInvocation:u,onSelectionChange:c,rowHeight:m,selectionModel:g,width:D}),F={...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`},W=Do(fe,e,{[`${fe}-zebra`]:R,[`${fe}-loading`]:Oo(E.columns)});return He(ko,{menuActionHandler:v,menuBuilder:Kt(n),children:pr("div",{...b,...y,className:W,id:x,ref:P,style:F,tabIndex:-1,children:[w?He("div",{className:`${fe}-scrollbarContainer`,ref:T.scrollbarContainerRef,children:He("div",{className:`${fe}-scrollbarContent`})}):null,w?pr("div",{className:`${fe}-contentContainer`,ref:T.contentContainerRef,children:[He(dn,{...E,headerHeight:s,tableId:x}),M]}):null,r&&w?He(So,{className:`${fe}-settings`,"data-icon":"settings",onClick:h,variant:"secondary"}):null]})})};import Ao from"classnames";import{isJsonAttribute as Eo,metadataKeys as Ho,registerComponent as Vo}from"@vuu-ui/vuu-utils";import{jsx as Vt,jsxs as zo}from"react/jsx-runtime";var Ve="vuuJsonCell",{IS_EXPANDED:Io,KEY:Lo}=Ho,Fo=r=>{let e=r.lastIndexOf("|");return e===-1?"":r.slice(e+1)},No=({column:r,row:e})=>{let{key:t}=r,n=e[t],s=!1;Eo(n)&&(n=n.slice(0,-1),s=!0);let o=Fo(e[Lo]),i=Ao({[`${Ve}-name`]:o===n,[`${Ve}-value`]:o!==n,[`${Ve}-group`]:s});if(s){let l=e[Io]?"minus-box":"plus-box";return zo("span",{className:i,children:[Vt("span",{className:`${Ve}-value`,children:n}),Vt("span",{className:`${Ve}-toggle`,"data-icon":l})]})}else return n?Vt("span",{className:i,children:n}):null};Vo("json",No,"cell-renderer",{});export{Fe as ColumnResizer,Th as Table,Kt as buildContextMenuDescriptors,Nc as isShowSettings,Qn as useMeasuredContainer,Gn as useSelection,We as useTableColumnResize,Qt as useTableContextMenu,qn as useTableModel,ir as useTableViewport};
1
+ var qr=(n,e,t)=>{if(!e.has(n))throw TypeError("Cannot "+t)};var Ee=(n,e,t)=>(qr(n,e,"read from private field"),t?t.call(n):e.get(n)),Jr=(n,e,t)=>{if(e.has(n))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(n):e.set(n,t)},Pn=(n,e,t,r)=>(qr(n,e,"write to private field"),r?r.call(n,t):e.set(n,t),t);import{useCallback as Mn,useRef as $a}from"react";import{jsx as Wa}from"react/jsx-runtime";var eo=()=>{},_a="vuuColumnResizer",Qt=({onDrag:n,onDragEnd:e=eo,onDragStart:t=eo})=>{let r=$a(0),o=Mn(a=>{a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault();let l=Math.round(a.clientX),c=l-r.current;r.current=l,c!==0&&n(a,c)},[n]),s=Mn(a=>{window.removeEventListener("mouseup",s),window.removeEventListener("mousemove",o),e(a)},[e,o]),i=Mn(a=>{t(a),r.current=Math.round(a.clientX),window.addEventListener("mouseup",s),window.addEventListener("mousemove",o),a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault()},[t,o,s]);return Wa("div",{className:_a,"data-align":"end",onMouseDown:i})};import{isNumericColumn as Ka}from"@vuu-ui/vuu-utils";var to=n=>(e,t)=>{let r=[];if(n===void 0)return r;if(e==="header")r.push(...Ga(t,n)),r.push(...Xa(t,n)),r.push(...Ua(t,n)),r.push(...Qa(t)),r.push({action:"column-settings",icon:"cog",label:"Column Settings",options:t});else if(e==="filter"){let{column:o,filter:s}=t,i=(s==null?void 0:s.column)===(o==null?void 0:o.name);r.push({label:"Edit filter",action:"filter-edit",options:t}),r.push({label:"Remove filter",action:"filter-remove-column",options:t}),o&&!i&&r.push({label:"Remove all filters",action:"remove-filters",options:t})}return r};function Ga(n,{sort:{sortDefs:e}}){let{column:t}=n,r=[];if(t===void 0)return r;let o=e.length>0;return t.sorted==="A"?r.push({label:"Reverse Sort (DSC)",action:"sort-dsc",options:n}):t.sorted==="D"?r.push({label:"Reverse Sort (ASC)",action:"sort-asc",options:n}):typeof t.sorted=="number"?(t.sorted>0?r.push({label:"Reverse Sort (DSC)",action:"sort-add-dsc",options:n}):r.push({label:"Reverse Sort (ASC)",action:"sort-add-asc",options:n}),o&&Math.abs(t.sorted)<e.length&&r.push({label:"Remove from sort",action:"sort-remove",options:n}),r.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:n},{label:"Descending",action:"sort-dsc",options:n}]})):o?(r.push({label:"Add to sort",children:[{label:"Ascending",action:"sort-add-asc",options:n},{label:"Descending",action:"sort-add-dsc",options:n}]}),r.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:n},{label:"Descending",action:"sort-dsc",options:n}]})):r.push({label:"Sort",children:[{label:"Ascending",action:"sort-asc",options:n},{label:"Descending",action:"sort-dsc",options:n}]}),r}function Ua(n,e){let{column:t}=n;if(t===void 0||e.groupBy.length===0)return[];let{name:r,label:o=r}=t;return[{label:`Aggregate ${o}`,children:[{label:"Count",action:"agg-count",options:n},{label:"Distinct",action:"agg-distinct",options:n}].concat(Ka(t)?[{label:"Sum",action:"agg-sum",options:n},{label:"Avg",action:"agg-avg",options:n},{label:"High",action:"agg-high",options:n},{label:"Low",action:"agg-low",options:n}]:[])}]}var On=(n,e)=>({label:`Pin ${e}`,action:`column-pin-${e}`,options:n}),Ln=n=>On(n,"left"),kn=n=>On(n,"floating"),In=n=>On(n,"right");function Qa(n){let{column:e}=n;if(e===void 0)return[];let{pin:t}=e,r=[{label:"Hide column",action:"column-hide",options:n},{label:"Remove column",action:"column-remove",options:n}];return t===void 0?r.push({label:"Pin column",children:[Ln(n),kn(n),In(n)]}):t==="left"?r.push({label:"Unpin column",action:"column-unpin",options:n},{label:"Pin column",children:[kn(n),In(n)]}):t==="right"?r.push({label:"Unpin column",action:"column-unpin",options:n},{label:"Pin column",children:[Ln(n),kn(n)]}):t==="floating"&&r.push({label:"Unpin column",action:"column-unpin",options:n},{label:"Pin column",children:[Ln(n),In(n)]}),r}function Xa(n,{groupBy:e}){let{column:t}=n,r=[];if(t===void 0)return r;let{name:o,label:s=o}=t;return e.length===0?r.push({label:`Group by ${s}`,action:"group",options:n}):r.push({label:`Add ${s} to group by`,action:"group-add",options:n}),r}import{removeColumnFromFilter as Za}from"@vuu-ui/vuu-utils";import{addGroupColumn as no,addSortColumn as ro,AggregationType as Ya,setAggregations as tt,setSortColumn as oo}from"@vuu-ui/vuu-utils";var ja=(n,e)=>{if(n.filterStruct&&e){let[t,r]=Za(e,n.filterStruct);return{filter:r,filterStruct:t}}else return n},{Average:qa,Count:Ja,Distinct:el,High:tl,Low:nl,Sum:rl}=Ya,so=({dataSource:n,onPersistentColumnOperation:e})=>r=>{let o=r.options;if(o.column&&n){let{column:s}=o;switch(r.menuId){case"sort-asc":return n.sort=oo(n.sort,s,"A"),!0;case"sort-dsc":return n.sort=oo(n.sort,s,"D"),!0;case"sort-add-asc":return n.sort=ro(n.sort,s,"A"),!0;case"sort-add-dsc":return n.sort=ro(n.sort,s,"D"),!0;case"group":return n.groupBy=no(n.groupBy,s),!0;case"group-add":return n.groupBy=no(n.groupBy,s),!0;case"column-hide":return e({type:"hideColumns",columns:[s]}),!0;case"column-remove":return n.columns=n.columns.filter(i=>i!==s.name),!0;case"filter-remove-column":return n.filter=ja(n.filter,s),!0;case"remove-filters":return n.filter={filter:""},!0;case"agg-avg":return n.aggregations=tt(n.aggregations,s,qa),!0;case"agg-high":return n.aggregations=tt(n.aggregations,s,tl),!0;case"agg-low":return n.aggregations=tt(n.aggregations,s,nl),!0;case"agg-count":return n.aggregations=tt(n.aggregations,s,Ja),!0;case"agg-distinct":return n.aggregations=tt(n.aggregations,s,el),!0;case"agg-sum":return n.aggregations=tt(n.aggregations,s,rl),!0;case"column-pin-floating":return e({type:"pinColumn",column:s,pin:"floating"}),!0;case"column-pin-left":return e({type:"pinColumn",column:s,pin:"left"}),!0;case"column-pin-right":return e({type:"pinColumn",column:s,pin:"right"}),!0;case"column-unpin":return e({type:"pinColumn",column:s,pin:void 0}),!0;case"column-settings":return e({type:"columnSettings",column:s}),!0;default:}}return!1};import{ContextMenuProvider as Gm}from"@vuu-ui/vuu-popups";import{Button as Um,useIdMemo as Qm}from"@salt-ds/core";import{buildColumnMap as Uf,getColumnStyle as Qf,isGroupColumn as Xf,metadataKeys as Zf,notHidden as Yf,visibleColumnAtIndex as jf}from"@vuu-ui/vuu-utils";import{useCallback as Hi,useMemo as Ni}from"react";import{isGroupColumn as vi,isJsonColumn as Df,isJsonGroup as Sf,metadataKeys as Pf,notHidden as Mf}from"@vuu-ui/vuu-utils";import Lf from"classnames";import{memo as kf,useCallback as wi}from"react";import{getColumnStyle as df,metadataKeys as mf}from"@vuu-ui/vuu-utils";function io(n){var e,t,r="";if(typeof n=="string"||typeof n=="number")r+=n;else if(typeof n=="object")if(Array.isArray(n))for(e=0;e<n.length;e++)n[e]&&(t=io(n[e]))&&(r&&(r+=" "),r+=t);else for(e in n)n[e]&&(r&&(r+=" "),r+=e);return r}function Xt(){for(var n,e,t=0,r="";t<arguments.length;)(n=arguments[t++])&&(e=io(n))&&(r&&(r+=" "),r+=e);return r}import{useCallback as ao,useLayoutEffect as ol,forwardRef as sl,useRef as An}from"react";import{useControlled as lo}from"@salt-ds/core";import{Input as il}from"@heswell/salt-lab";import{jsx as co}from"react/jsx-runtime";var Hn="vuuEditableLabel",nt=sl(function({className:e,defaultEditing:t,defaultValue:r,editing:o,onChange:s,onEnterEditMode:i,onExitEditMode:a,value:l,...c},u){let p=An(null),f=An(!1),[d,h]=lo({controlled:l,default:r!=null?r:"",name:"EditableLabel",state:"value"}),[b,y]=lo({controlled:o,default:t!=null?t:!1,name:"EditableLabel",state:"editing"}),g=ao(T=>{y(f.current=T)},[]),v=An(d);ol(()=>{b&&p.current!==null&&(p.current.select(),p.current.focus())},[b,p]);let x=ao(()=>{g(!0),i&&i()},[i,g]),w=({cancelEdit:T=!1,allowDeactivation:R=!1}={})=>{g(!1);let D=v.current;D!==d&&(T?h(D):v.current=d),a&&a(D,d,R,T)},E=T=>{let{value:R}=T.target;h(R),s&&s(R)},m=()=>{x()},C=()=>{f.current&&w({allowDeactivation:!0})},M=T=>{b&&T.key==="Enter"?(T.stopPropagation(),w()):T.key==="ArrowRight"||T.key==="ArrowLeft"?T.stopPropagation():T.key==="Escape"&&w({cancelEdit:!0})},P=Xt(Hn,e,{[`${Hn}-editing`]:b});return co("div",{...c,className:P,onDoubleClick:m,"data-text":d,ref:u,children:b?co(il,{inputProps:{className:`${Hn}-input`},value:d,onBlur:C,onChange:E,onKeyDown:M,ref:p,style:{padding:0},textAlign:"left"}):d})});import{partition as ho}from"@vuu-ui/vuu-utils";import dl from"classnames";var al={},ll={},Zt={};function ee(n,e,t="component"){Zt[n]=e,t==="container"?al[n]=!0:t==="view"&&(ll[n]=!0)}import{Button as uo,useControlled as cl}from"@salt-ds/core";import po from"classnames";import{useCallback as ul}from"react";import{jsx as wt,jsxs as fl}from"react/jsx-runtime";var He="vuuDrawer",fo=n=>typeof n=="string"?n:n+"px",pl=(n,e,t)=>{let r=e!==void 0,o=t!==void 0;if(!(!n&&!o&&!r))return!o&&!r?n:{...n,"--drawer-size":r?fo(e):void 0,"--drawer-peek-size":o?fo(t):void 0}},mo=({children:n,className:e,clickToOpen:t,defaultOpen:r,sizeOpen:o,sizeClosed:s,style:i,open:a,position:l="left",inline:c,onClick:u,peekaboo:p=!1,toggleButton:f,...d})=>{let[h,b]=cl({controlled:a,default:r!=null?r:!1,name:"Drawer",state:"open"}),y=po(He,e,`${He}-${l}`,{[`${He}-open`]:h,[`${He}-inline`]:c,[`${He}-over`]:!c,[`${He}-peekaboo`]:p}),g=ul(()=>{b(!h)},[h,b]),v=pl(i,o,s),x=t?g:u,w=()=>wt("div",{className:po("vuuToggleButton-container"),children:h?wt(uo,{"aria-label":"close",onClick:g,"data-icon":"close",variant:"secondary"}):wt(uo,{"aria-label":"open",onClick:g,"data-icon":"close",variant:"secondary"})});return fl("div",{...d,className:y,onClick:x,style:v,children:[f=="start"?w():null,wt("div",{className:`${He}-liner`,children:wt("div",{className:`${He}-content`,children:n})}),f=="end"?w():null]})};mo.displayName="Drawer";var Nn=mo;import{jsx as gl,jsxs as bl}from"react/jsx-runtime";var ml=n=>n.type===Nn,hl=({props:{position:n="left"}})=>n.match(/top|bottom/),go=n=>{let{children:e,className:t,id:r,style:o}=n,s="vuuDockLayout",[i,a]=ho(e,ml),[l,c]=ho(i,hl),u=l.length===0?"horizontal":c.length===0?"vertical":"both",p=dl(s,t,`${s}-${u}`);return bl("div",{className:p,id:r,style:o,children:[i,gl("div",{className:`${s}-content`,children:a})]})};go.displayName="DockLayout";ee("DockLayout",go,"container");import{forwardRef as yl}from"react";import{jsx as xl}from"react/jsx-runtime";var zn=yl(function({resizeable:e,...t},r){return xl("div",{...t,className:"Component",ref:r})});zn.displayName="Component";var Fn=zn;ee("Component",zn);import xg,{isValidElement as vg}from"react";var vl={},Le=(n,e)=>{var r;let t=ae(n);return(r=t[e])!=null?r:t[`data-${e}`]},ae=n=>(n==null?void 0:n.props)||n||vl;import{Children as wl,isValidElement as bo,useLayoutEffect as Tl,useMemo as Cl,useRef as El}from"react";var Rl=[],Dl=0,rt=n=>{let e=Array.isArray(n),t=e?n.length:wl.count(n);return e&&n.every(bo)?n:t===1&&!e&&bo(n)?[n]:t>1?n:Rl},yo=(n,e)=>{let t=El(!1);Tl(()=>{t.current?n():t.current=!0},e)},Yt=n=>Cl(()=>n!=null?n:`vuu-${++Dl}`,[n]);var Vn={north:1,east:2,south:4,west:8,header:16,centre:32,absolute:64},$n={AFTER:"after",BEFORE:"before"},Ne=Object.freeze({North:_e("north"),East:_e("east"),South:_e("south"),West:_e("west"),Header:_e("header"),Centre:_e("centre"),Absolute:_e("absolute")});function _e(n){return Object.freeze({offset:n==="north"||n==="west"?0:n==="south"||n==="east"?1:NaN,valueOf:function(){return Vn[n]},toString:function(){return n},North:n==="north",South:n==="south",East:n==="east",West:n==="west",Header:n==="header",Centre:n==="centre",NorthOrSouth:n==="north"||n==="south",EastOrWest:n==="east"||n==="west",NorthOrWest:n==="north"||n==="west",SouthOrEast:n==="east"||n==="south",Absolute:n==="absolute"})}var Wg=Ne.North,Kg=Ne.South,Gg=Ne.East,Ug=Ne.West,Qg=Ne.Header,Xg=Ne.Centre;var{north:Pl,south:Ml,east:Ll,west:kl}=Vn,rb=Ll+kl,ob=Pl+Ml;import{PopupService as Wn}from"@vuu-ui/vuu-popups";import Il from"classnames";import{jsx as xo}from"react/jsx-runtime";function vo(n,e=0,t=0){let{pos:r,clientRect:o}=n,s=20;return r.position.West?[o.left-t+s,r.y-e,"left"]:r.position.South?[r.x-t,o.bottom-e-s,"bottom"]:r.position.East?[o.right-t-s,r.y-e,"right"]:[r.x-t,o.top-e+s,"top"]}var _n="vuuDropMenu",wo=({className:n,dropTarget:e,onHover:t,orientation:r})=>{let o=e.toArray();return xo("div",{className:Il(_n,n,`${_n}-${r}`),onMouseLeave:()=>t(null),children:o.map((s,i)=>xo("div",{className:`${_n}-item`,"data-icon":i===0?"column-2A":"column-2B",onMouseEnter:()=>t(s)},i))})};import{jsx as Bl}from"react/jsx-runtime";var Kn=!1,Tt=null,ye=null,Ol=n=>Tt=n,Al=([n,e])=>`M${n},${e}`,Hl=([n,e])=>`L${n},${e}`,To=([n,...e])=>`${Al(n)} ${e.map(Hl)}Z`,Nl=n=>{if(n){let[e,t,r,o,s,i,a,l]=n;return`M${e},${t} L${r},${o} M${s},${i} L${a},${l}`}else return""};function zl(){if(document.getElementById("hw-drag-canvas")===null){let n=document.getElementById("root"),e=document.createElement("div");e.id="hw-drag-canvas",e.innerHTML=`
2
+ <svg width="100%" height="100%">
3
+ <path id="hw-drop-guides" />
4
+ <path
5
+ id="vuu-drop-outline"
6
+ d="M300,132 L380,132 L380,100 L460,100 L460,132, L550,132 L550,350 L300,350z">
7
+ <animate
8
+ attributeName="d"
9
+ id="hw-drop-outline-animate"
10
+ begin="indefinite"
11
+ dur="300ms"
12
+ fill="freeze"
13
+ to="M255,33 L255,33,L255,1,L315,1,L315,1,L794,1,L794,164,L255,164Z"
14
+ />
15
+ </path>
16
+ </svg>
17
+ `,document.body.insertBefore(e,n)}}var Ct=class{constructor(){this.currentPath=null;this.tabMode=null;zl()}prepare(e,t="full-view"){document.body.classList.add("drawing"),this.currentPath=null,this.tabMode=t;let r=this.getPoints(0,0,0,0),o=To(r),s=document.getElementById("vuu-drop-outline");s==null||s.setAttribute("d",o),this.currentPath=o}clear(){Tt=null,jt(),document.body.classList.remove("drawing"),Wn.hidePopup()}get hoverDropTarget(){return Tt}getPoints(e,t,r,o,s=0,i=0,a=0){let l=this.tabMode==="tab-only";if(i===0)return[[e,t+a],[e,t+a],[e,t],[e+i,t],[e+i,t],[e+r,t],[e+r,t+o],[e,t+o]];if(l){let c=s;return[[c,t],[c,t],[c+i,t],[c+i,t],[c+i,t+a],[c+i,t+a],[c,t+a],[c,t+a]]}else return s===0?[[e,t+a],[e,t+a],[e,t],[e+i,t],[e+i,t+a],[e+r,t+a],[e+r,t+o],[e,t+o]]:[[e,t+a],[e+s,t+a],[e+s,t],[e+s,t],[e+s,t+a],[e+r,t+a],[e+r,t+o],[e,t+o]]}draw(e,t){let o=Kn;if(Tt!==null)this.drawTarget(Tt);else if(Kn=e.nextDropTarget!=null,e.pos.tab?Fl(e):ye&&jt(),this.drawTarget(e,t),Kn){let[s,i,a]=vo(e);{let l=Bl(wo,{dropTarget:e,onHover:Ol,orientation:a});Wn.showPopup({left:s,top:i,component:l})}}else Wn.hidePopup()}drawTarget(e,t){let o=e.getTargetDropOutline(6,t);if(o){let{l:s,t:i,r:a,b:l,tabLeft:c,tabWidth:u,tabHeight:p,guideLines:f}=o,d=a-s,h=l-i;if(this.currentPath){let x=document.getElementById("vuu-drop-outline");x==null||x.setAttribute("d",this.currentPath)}let b=this.getPoints(s,i,d,h,c,u,p),y=To(b),g=document.getElementById("hw-drop-outline-animate");g==null||g.setAttribute("to",y),g==null||g.beginElement(),this.currentPath=y;let v=document.getElementById("hw-drop-guides");v==null||v.setAttribute("d",Nl(f))}}},Co="transition:margin-left .4s ease-out;margin-left: 63px",Eo="transition:margin-left .4s ease-out;margin-left: 0px";function Fl(n){var a,l;let{AFTER:e,BEFORE:t}=$n,{clientRect:{Stack:r},pos:{tab:o}}=n,{id:s}=n.component.props,i=null;if(r&&o&&o.positionRelativeToTab!==e){let c=o.positionRelativeToTab===t?1:2,u=`:scope .hwTabstrip > .hwTabstrip-inner > .hwTab:nth-child(${o.index+c})`;i=(a=document.getElementById(s))==null?void 0:a.querySelector(u),i?(ye===null||ye!==i)&&(i.style.cssText=Co,ye&&(ye.style.cssText=Eo),ye=i):jt()}else if((o==null?void 0:o.positionRelativeToTab)===t){if(ye===null){let c=".vuuHeader-title";i=(l=document.getElementById(s))==null?void 0:l.querySelector(c),i.style.cssText=Co,ye=i}}else jt()}function jt(){ye&&(ye.style.cssText=Eo,ye=null)}var Lb=new Ct;import Vl from"classnames";import{forwardRef as $l}from"react";import{jsx as _l}from"react/jsx-runtime";var Do=$l(function({children:e,className:t,dropTarget:r,resizeable:o,...s},i){let a=Vl("DraggableLayout",t);return _l("div",{className:a,ref:i,...s,children:e})}),So="DraggableLayout";Do.displayName=So;ee(So,Do,"container");import{useForkRef as ac}from"@salt-ds/core";import lc from"classnames";import{forwardRef as cc}from"react";import{getUniqueId as ec}from"@vuu-ui/vuu-utils";import Pt,{useCallback as tn,useMemo as zo,useRef as nn,useState as tc}from"react";import Wl from"classnames";import{jsx as Kl}from"react/jsx-runtime";var Po="vuuPlaceholder",qt=({className:n,closeable:e,flexFill:t,resizeable:r,shim:o,...s})=>Kl("div",{className:Wl(Po,n,{[`${Po}-shim`]:o}),...s,"data-placeholder":!0,"data-resizeable":!0});qt.displayName="Placeholder";ee("Placeholder",qt);import Gl from"classnames";import Ul,{useCallback as Rt,useRef as Jt,useState as Ql}from"react";import{jsx as Mo}from"react/jsx-runtime";var Lo=Ul.memo(function({column:e,index:t,onDrag:r,onDragEnd:o,onDragStart:s,style:i}){let a=Jt(),l=Jt(null),c=Jt(0),[u,p]=Ql(!1),f=Rt(({key:m,shiftKey:C})=>{let M=C?10:1;e&&m==="ArrowDown"?r(t,M):e&&m==="ArrowUp"||!e&&m==="ArrowLeft"?r(t,-M):!e&&m==="ArrowRight"&&r(t,M)},[e,t,r]),d=Rt(m=>{let{key:C}=m;(e&&(C==="ArrowUp"||C==="ArrowDown")||!e&&(C==="ArrowLeft"||C==="ArrowRIght"))&&(s(t),f(m),h.current=f)},[e,f,t,s]),h=Jt(d),b=m=>h.current(m),y=Rt(m=>{a.current=!0;let C=m[e?"clientY":"clientX"],M=C-c.current;C&&C!==c.current&&r(t,M),c.current=C},[e,t,r]),g=Rt(()=>{var m;window.removeEventListener("mousemove",y,!1),window.removeEventListener("mouseup",g,!1),o(),p(!1),(m=l.current)==null||m.focus()},[y,o,p]),v=Rt(m=>{c.current=e?m.clientY:m.clientX,s(t),window.addEventListener("mousemove",y,!1),window.addEventListener("mouseup",g,!1),m.preventDefault(),p(!0)},[e,y,g,t,s,p]),x=()=>{var m;a.current?a.current=!1:(m=l.current)==null||m.focus()},w=()=>{h.current=d},E=Gl("Splitter","focusable",{active:u,column:e});return Mo("div",{className:E,"data-splitter":!0,ref:l,role:"separator",style:i,onBlur:w,onClick:x,onKeyDown:b,onMouseDown:v,tabIndex:0,children:Mo("div",{className:"grab-zone"})})});import{uuid as fy}from"@vuu-ui/vuu-utils";import my from"react";var Io={},ko="auto";var ot=n=>{let{style:{width:e=ko,height:t=ko}=Io}=n.props,r=typeof t=="number",o=typeof e=="number";return r&&o?{height:t,width:e}:r?{height:t}:o?{width:e}:void 0};function Oo(n){let{style:{flex:e,flexGrow:t,flexShrink:r,flexBasis:o}=Io}=n.props;return typeof e=="number"||o===0&&t===1&&r===1?!0:typeof o!="number"}var Xl={},Dt=1,St=2,Zl=n=>typeof n.intrinsicSize=="number",Yl=(n,e)=>{let t={};return n.forEach(r=>{t[r]=Le(e,r)}),t},en=(n,e,t)=>n.map((r,o)=>{var l;let s=Le(r,"resizeable"),{[e]:i}=(l=ot(r))!=null?l:Xl,a=Oo(r);return t?{index:o,flexOpen:a,intrinsicSize:i,resizeable:s,...Yl(t,r)}:{index:o,flexOpen:a,intrinsicSize:i,resizeable:s}}),Ao=n=>{let e=n.length,t=n.every(Zl),r=Array(e).fill(0);if(t&&e>0&&(r[0]=St,r[e-1]=St),e<2)return r;for(let o=0,s=0;o<e-1;o++)n[o].resizeable&&!s&&(s=Dt),r[o]+=s;for(let o=e-1;o>0&&(r[o]&Dt&&(r[o]-=Dt),!n[o].resizeable);o--);return r},Ho=(n,e)=>{let t=ql(n,e),r=Jl(n,e),o=t!==-1&&r!==-1?[t,r]:void 0,s=jl(n,o);return[o,s]};function jl(n,e){if(e){let t=[];for(let r=0;r<n.length;r++)n[r].flexOpen&&!e.includes(r)&&t.push(r);return t}}function ql(n,e){let t=e,r=!1;for(;t>=1&&!r;)t=t-1,r=No(n,t);return t}function Jl(n,e){let t=e,r=!1,o=n.length;for(;t<o-1&&!r;)t=t+1,r=No(n,t);return t===o?-1:t}function No(n,e){let{placeholder:t,splitter:r,resizeable:o,intrinsicSize:s}=n[e];return!!(!r&&!s&&(t||o))}var nc=n=>!n.splitter&&!n.placeholder,Bo=({children:n,onSplitterMoved:e,style:t})=>{let r=nn(null),o=nn(),s=nn(),i=nn([]),[,a]=tc({}),l=y=>{s.current=y,a({})},c=(t==null?void 0:t.flexDirection)==="column",u=c?"height":"width",p=zo(()=>Array.isArray(n)?n:Pt.isValidElement(n)?[n]:[],[n]),f=tn(y=>{let{current:g}=o;if(g){let[v,x]=Ho(g,y);v&&(v.forEach(w=>{var m;let E=(m=r.current)==null?void 0:m.childNodes[w];if(E){let{size:C,minSize:M}=ic(E,u);g[w].currentSize=C,g[w].minSize=M}}),x&&x.forEach(w=>{var m;let E=(m=r.current)==null?void 0:m.childNodes[w];if(E){let{[u]:C}=E.getBoundingClientRect();g[w].flexBasis=C}}))}},[u]),d=tn((y,g)=>{s.current&&o.current&&l(oc(s.current,o.current,g,u))},[u]),h=tn(()=>{let y=o.current;y&&(e==null||e(y.filter(nc))),y==null||y.forEach(g=>{g.currentSize=void 0,g.flexBasis=void 0,g.flexOpen=!1})},[e]),b=tn(y=>Pt.createElement(Lo,{column:c,index:y,key:`splitter-${y}`,onDrag:d,onDragEnd:h,onDragStart:f}),[d,h,f,c]);return zo(()=>{let[y,g]=rc(p,u,b,i.current);o.current=g,s.current=y},[p,b,u]),{content:s.current||[],rootRef:r}};function rc(n,e,t,r){let o=en(n,e),s=Ao(o),i=[],a=[];for(let l=0;l<n.length;l++){let c=n[l];if(l===0&&s[l]&St&&(i.push(Fo(l)),a.push({placeholder:!0,shim:!0})),c.key==null){let u=r[l]||(r[l]=ec());i.push(Pt.cloneElement(c,{key:u}))}else i.push(c);a.push(o[l]),l>0&&s[l]&St?(i.push(Fo(l)),a.push({placeholder:!0})):s[l]&Dt&&(i.push(t(i.length)),a.push({splitter:!0}))}return[i,a]}function oc(n,e,t,r){return sc(e,t)?n.map((s,i)=>{let a=e[i],{currentSize:l,flexOpen:c,flexBasis:u}=a,p=l!==void 0;if(p||c){let{flexBasis:f}=s.props.style||{},d=p?a.currentSize:u;return d!==f?Pt.cloneElement(s,{style:{...s.props.style,flexBasis:d,[r]:"auto"}}):s}else return s}):n}function sc(n,e){let t=[];n.forEach((u,p)=>{u.currentSize!==void 0&&t.push(p)});let r=e<0?t[0]:t[1],{currentSize:o=0,minSize:s=0}=n[r];if(o===s)return!1;if(Math.abs(e)>o-s){let u=e<0?-1:1;e=Math.max(0,o-s)*u}let i=n[t[0]],{currentSize:a=0}=i;i.currentSize=a+e;let l=n[t[1]],{currentSize:c=0}=l;return l.currentSize=c-e,!0}function Fo(n){return Pt.createElement(qt,{shim:n===0,key:`placeholder-${n}`})}function ic(n,e){let{[e]:t}=n.getBoundingClientRect(),o=getComputedStyle(n).getPropertyValue(`min-${e}`),s=o.endsWith("px")?parseInt(o,10):0;return{size:t,minSize:s}}import{jsx as uc}from"react/jsx-runtime";var Un="hwFlexbox",Vo=cc(function(e,t){let{breakPoints:r,children:o,column:s,className:i,flexFill:a,gap:l,fullPage:c,id:u,onSplitterMoved:p,resizeable:f,row:d,spacing:h,splitterSize:b,style:y,...g}=e,{content:v,rootRef:x}=Bo({children:o,onSplitterMoved:p,style:y}),w=lc(Un,i,{[`${Un}-column`]:s,[`${Un}-row`]:d,"flex-fill":a,"full-page":c});return uc("div",{...g,className:w,"data-resizeable":f||void 0,id:u,ref:ac(x,t),style:{...y,gap:l,"--spacing":h},children:v})});Vo.displayName="Flexbox";var Qn=Vo;import{useCallback as yc}from"react";var rn={ADD:"add",BLUR:"blur",BLUR_SPLITTER:"blur-splitter",DRAG_START:"drag-start",DRAG_STARTED:"drag-started",DRAG_DROP:"drag-drop",FOCUS:"focus",FOCUS_SPLITTER:"focus-splitter",INITIALIZE:"initialize",LAYOUT_RESIZE:"layout-resize",MAXIMIZE:"maximize",MINIMIZE:"minimize",REMOVE:"remove",REPLACE:"replace",RESTORE:"restore",SAVE:"save",SET_TITLE:"set-title",SPLITTER_RESIZE:"splitter-resize",SWITCH_TAB:"switch-tab",TEAR_OUT:"tear-out"};import{useCallback as yw,useContext as bc,useEffect as xw,useRef as vw,useState as ww}from"react";import Tv from"react";import{uuid as fx}from"@vuu-ui/vuu-utils";import mx from"react";import{uuid as jy}from"@vuu-ui/vuu-utils";import Jy,{cloneElement as ex}from"react";import{useCallback as st}from"react";var de=new Map,me=new Map;var it=()=>{let n=st((i,a)=>{let l=me.get(i);if(l)return a!==void 0&&l[a]!==void 0?l[a]:a!==void 0?void 0:l},[]),e=st((i,a,l)=>{if(a===void 0)me.set(i,l);else if(me.has(i)){let c=me.get(i);me.set(i,{...c,[a]:l})}else me.set(i,{[a]:l})},[]),t=st((i,a)=>{if(me.has(i)){if(a===void 0)me.delete(i);else if(me.get(i)[a]){let{[a]:c,...u}=me.get(i);Object.keys(u).length>0?me.set(i,u):me.delete(i)}}},[]),r=st((i,a)=>{let l=de.get(i);if(l)return a!==void 0?l[a]:l},[]),o=st((i,a,l)=>{if(a===void 0)de.set(i,l);else if(de.has(i)){let c=de.get(i);de.set(i,{...c,[a]:l})}else de.set(i,{[a]:l})},[]),s=st((i,a)=>{if(de.has(i)){if(a===void 0)de.delete(i);else if(de.get(i)[a]){let{[a]:c,...u}=de.get(i);Object.keys(u).length>0?de.set(i,u):de.delete(i)}}},[]);return{loadSessionState:n,loadState:r,saveSessionState:e,saveState:o,purgeState:s,purgeSessionState:t}};import{cloneElement as kx}from"react";import Cx from"react";import Fx from"react";import Gx from"react";import{uuid as ev}from"@vuu-ui/vuu-utils";import nv from"react";import{createContext as hc}from"react";var gc=n=>console.log(`dispatch ${n.type}, have you forgotten to provide a LayoutProvider ?`),_o=hc({dispatchLayoutProvider:gc,version:-1});import{useCallback as ew,useRef as tw}from"react";import{jsx as Lw}from"react/jsx-runtime";var xe=()=>{let{dispatchLayoutProvider:n}=bc(_o);return n};import{jsx as xc}from"react/jsx-runtime";var Wo=function(e){let{path:t}=e,r=xe(),o=yc(s=>{r({type:rn.SPLITTER_RESIZE,path:t,sizes:s})},[r,t]);return xc(Qn,{...e,onSplitterMoved:o})};Wo.displayName="Flexbox";ee("Flexbox",Wo,"container");import{useForkRef as Hc}from"@salt-ds/core";import Nc from"classnames";import{forwardRef as zc,useMemo as Fc}from"react";import{useCallback as Zo,useEffect as Rc,useRef as qn,useState as Dc}from"react";import{useCallback as vc,useLayoutEffect as Ko,useRef as wc}from"react";var We=new WeakMap,Uo=(n,e,t)=>{switch(t){case"height":return e.height;case"scrollHeight":return n.scrollHeight;case"scrollWidth":return n.scrollWidth;case"width":return e.width;default:return 0}},Go=new ResizeObserver(n=>{for(let e of n){let{target:t,contentRect:r}=e,o=We.get(t);if(o){let{onResize:s,measurements:i}=o,a=!1;for(let[l,c]of Object.entries(i)){let u=Uo(t,r,l);u!==c&&(a=!0,i[l]=u)}a&&s&&s(i)}}});function Qo(n,e,t,r=!1){console.log("resizeObserver container",{ref:n.current});let o=wc(e),s=vc(i=>{let a=i.getBoundingClientRect();return o.current.reduce((l,c)=>(l[c]=Uo(i,a,c),l),{})},[]);Ko(()=>{let i=n.current,a=!1;async function l(){We.set(i,{measurements:{}}),a=!1;let{fonts:c}=document;if(c&&await c.ready,!a){let u=We.get(i);if(u){let p=s(i);u.measurements=p,Go.observe(i),r&&t(p)}}}if(i){if(We.has(i))throw Error("useResizeObserver attemping to observe same element twice");l()}return()=>{i&&We.has(i)&&(Go.unobserve(i),We.delete(i),a=!0)}},[n,s,r,t]),Ko(()=>{let i=n.current,a=We.get(i);if(a){if(o.current!==e){o.current=e;let l=s(i);a.measurements=l}a.onResize=t}},[e,s,n,t])}function Tc(n,e){let t=document.body.querySelector(`.${n}`),r={get:function(o,s){let i=o.getPropertyValue(`--${n}-breakpoint-${s}`);return i?parseInt(i):void 0}};return t?new Proxy(getComputedStyle(t),r):e!=null?e:{}}var Cc=([,n],[,e])=>e-n,jn=n=>Object.entries(n).sort(Cc).map(([e,t],r,o)=>[e,t,r<o.length-1?o[r+1][1]:9999]),Yn=null,Ec=(n="salt")=>{let{xs:e,sm:t,md:r,lg:o,xl:s}=Tc(n);return jn({xs:e,sm:t,md:r,lg:o,xl:s})},Xo=n=>(Yn===null&&(Yn=Ec(n)),Yn);var Sc=[],Yo=({breakPoints:n,smallerThan:e},t)=>{let[r,o]=Dc(e?!1:"lg"),s=qn(document.body),i=qn(n?jn(n):Xo()),a=qn("lg"),l=Zo(u=>{if(i.current){for(let[p,f]of i.current)if(u>=f)return p}},[i]),c=Zo(u=>{if(e){let p=i.current.find(([f])=>f===e);if(p){let[,,f]=p;return u<f}}else return l(u);return u},[e,l]);return Qo(t||s,i.current?["width"]:Sc,({width:u})=>{let p=c(u);p!==a.current&&(a.current=p,o(p))},!0),Rc(()=>{let u=t||s;if(u.current){let p=a.current;if(i.current){let{clientWidth:f}=u.current,d=c(f);a.current=d,d!==p&&o(d)}}},[o,c,t]),r};var Pc="data-collapsible",qw={[Pc]:!0,"data-pad-start":!0,"data-pad-end":!0};import{getUniqueId as Mc}from"@vuu-ui/vuu-utils";import{cloneElement as Lc,isValidElement as kc,useCallback as Ic,useMemo as jo,useRef as Jn}from"react";var Oc=["xs","sm","md","lg","xl"],Ac=12,qo=({children:n,cols:e,style:t})=>{let r=Jn(null),o=Jn(null),s=Jn(),i=e!=null?e:Ac,l=(t==null?void 0:t.flexDirection)==="column"?"height":"width",c=jo(()=>Array.isArray(n)?n:kc(n)?[n]:[],[n]),u=Ic((p,f)=>{let d=en(p,f,Oc),h=[],b=[];for(let y=0;y<p.length;y++){let g=p[y],{style:{flex:v,...x}}=g.props;h.push(Lc(g,{key:Mc(),style:{...x,"--parent-col-count":i}})),b.push(d[y])}return[h,b]},[i]);return jo(()=>{let[p,f]=u(c,l);o.current=f,s.current=p},[u,c,l]),{cols:i,content:s.current,rootRef:r}};import{jsx as Bc}from"react/jsx-runtime";var on="hwFluidGrid",er=zc(function(e,t){let{breakPoints:r,children:o,column:s,cols:i=12,className:a,flexFill:l,gap:c=3,fullPage:u,id:p,onSplitterMoved:f,resizeable:d,row:h,showGrid:b,spacing:y,splitterSize:g,style:v,...x}=e,w=Fc(()=>rt(o),[o]),{cols:E,content:m,rootRef:C}=qo({children:w,cols:i,style:v}),M=Yo({breakPoints:r},C),P=Nc(on,a,{[`${on}-column`]:s,[`${on}-row`]:h,[`${on}-show-grid`]:b,"flex-fill":l,"full-page":u}),T={...v,"--spacing":y,"--grid-col-count":E,"--grid-gap":c};return Bc("div",{...x,className:P,"data-breakpoint":M,"data-cols":E,"data-resizeable":d||void 0,id:p,ref:Hc(C,t),style:T,children:m})});er.displayName="FluidGrid";import{jsx as Vc}from"react/jsx-runtime";var Jo=function(e){return Vc(er,{...e})};Jo.displayName="FluidGrid";ee("FluidGrid",Jo,"container");import ru from"classnames";import cs,{useRef as ou,useState as us}from"react";import{useCallback as Mt,useState as $c}from"react";var sn=(n,e,t,r)=>{var y;let{loadSessionState:o,purgeSessionState:s,purgeState:i,saveSessionState:a}=it(),[l,c]=$c((y=o(n,"contributions"))!=null?y:[]),u=xe(),p=Mt((g,v)=>{let x=l.concat([{location:g,content:v}]);a(n,"contributions",x),c(x)},[l,n,a]),f=Mt(()=>{s(n,"contributions"),c([])},[n,s]),d=Mt(()=>{let g=o(n,"data-source");g&&g.unsubscribe(),s(n),i(n),u({type:"remove",path:t})},[u,n,o,s,i,t]),h=Mt(async(g,v,x)=>{var E;g.stopPropagation();let w=(E=e.current)==null?void 0:E.getBoundingClientRect();return new Promise((m,C)=>{u({type:"drag-start",evt:g,path:v===void 0?t:`${t}.${v}`,dragRect:w,preDragActivity:x,dropTargets:r,resolveDragStart:m,rejectDragStart:C})})},[e,u,t,r]);return[Mt(async(g,v)=>{var w;let{type:x}=g;switch(x){case"maximize":case"minimize":case"restore":return u({type:x,path:(w=g.path)!=null?w:t});case"remove":return d();case"mousedown":return h(v,g.index,g.preDragActivity);case"add-toolbar-contribution":return p(g.location,g.content);case"remove-toolbar-contribution":return f();default:return}},[u,t,d,h,p,f]),l]};import{useForkRef as Xc,useIdMemo as Zc}from"@salt-ds/core";import Yc from"classnames";import rr,{forwardRef as jc,useCallback as qc,useMemo as Jc,useRef as is,useState as eu}from"react";import{useCallback as Ke,useMemo as es}from"react";var ts=({id:n,rootRef:e,path:t,dropTargets:r,title:o})=>{let s=xe(),{loadState:i,loadSessionState:a,purgeState:l,saveState:c,saveSessionState:u}=it(),[p,f]=sn(n,e,t,r),d=es(()=>{var m;return(m=i("view-title"))!=null?m:o},[i,o]),h=Ke(m=>{t&&s({type:"set-title",path:t,title:m})},[s,t]),b=es(()=>i(n),[n,i]),y=Ke(m=>i(n,m),[n,i]),g=Ke(m=>{l(n,m),s({type:"save"})},[n,s,l]),v=Ke((m,C)=>{c(n,C,m),s({type:"save"})},[n,s,c]),x=Ke(m=>a(n,m),[n,a]),w=Ke((m,C)=>u(n,C,m),[n,u]),E=Ke(({type:m,...C})=>{let{[m]:M}=C;v(M,m)},[v]);return{contributions:f,dispatchViewAction:p,load:y,loadSession:x,onConfigChange:E,onEditTitle:h,purge:g,restoredState:b,save:v,saveSession:w,title:d}};import{useResizeObserver as _c,WidthHeight as Wc}from"@heswell/salt-lab";import{useCallback as ns,useRef as rs}from"react";var Kc=[],os=({mainRef:n,resize:e="responsive",rootRef:t})=>{let r=e==="defer",o=rs({}),s=rs(),i=ns(()=>{n.current&&(n.current.style.height=o.current.height+"px",n.current.style.width=o.current.width+"px"),s.current=void 0},[n]),a=ns(({height:l,width:c})=>{o.current.height=l,o.current.width=c,s.current!==null&&clearTimeout(s.current),s.current=window.setTimeout(i,40)},[i]);_c(t,r?Wc:Kc,a,r)};import Gc,{useContext as Uc}from"react";var Qc={dispatch:null},tr=Gc.createContext(Qc),ss=()=>{var e;let n=Uc(tr);return(e=n==null?void 0:n.dispatch)!=null?e:null};import{jsx as nr,jsxs as nu}from"react/jsx-runtime";var Lt="vuuView",tu=(n,e)=>n&&e?{...n,...e}:n||e,as=jc(function(e,t){let{Header:r=ls,children:o,className:s,collapsed:i,closeable:a,"data-path":l,"data-resizeable":c,dropTargets:u,expanded:p,flexFill:f,id:d,header:h,orientation:b="horizontal",path:y=l,resize:g="responsive",resizeable:v=c,tearOut:x,style:w={},title:E,...m}=e,C=Zc(d),M=is(null),P=is(null),[T,R]=eu(),{contributions:D,dispatchViewAction:S,load:I,loadSession:k,onConfigChange:L,onEditTitle:A,purge:O,restoredState:F,save:B,saveSession:z,title:_}=ts({id:C,rootRef:M,path:y,dropTargets:u,title:E});os({mainRef:P,resize:g,rootRef:M});let Q=qc(N=>{R(N)},[]),$=()=>rr.isValidElement(o)&&(F||T)?rr.cloneElement(o,tu(F,T)):o,Y=Jc(()=>({dispatch:S,id:C,path:y,title:_,load:I,loadSession:k,onConfigChange:L,purge:O,save:B,saveSession:z,setComponentProps:Q}),[S,C,I,k,L,y,O,B,z,Q,_]),H=typeof h=="object"?h:{};return nr("div",{...m,className:Yc(Lt,s,{[`${Lt}-collapsed`]:i,[`${Lt}-expanded`]:p,[`${Lt}-resize-defer`]:g==="defer"}),"data-resizeable":v,id:C,ref:Xc(t,M),style:w,tabIndex:-1,children:nu(tr.Provider,{value:Y,children:[h?nr(r,{...H,collapsed:i,contributions:D,expanded:p,closeable:a,onEditTitle:A,orientation:b,tearOut:x,title:_}):null,nr("div",{className:`${Lt}-main`,ref:P,children:$()})]})})});as.displayName="View";var Ge=rr.memo(as);Ge.displayName="View";ee("View",Ge,"view");import{Toolbar as su,ToolbarButton as iu,ToolbarField as au,Tooltray as ps}from"@heswell/salt-lab";import{CloseIcon as lu}from"@salt-ds/icons";import{jsx as at,jsxs as cu}from"react/jsx-runtime";var ls=({className:n,contributions:e,collapsed:t,closeable:r,onEditTitle:o,orientation:s="horizontal",style:i,title:a="Untitled"})=>{let l=ou(null),[c,u]=us(a),[p,f]=us(!1),d=ss(),h=R=>d==null?void 0:d({type:"remove"},R),b="vuuHeader",y=()=>{var R;(R=l.current)==null||R.focus()},g=R=>{R.stopPropagation()},x=ru(b,n,`${b}-${t||s}`),w=()=>{f(!0)},E=R=>{R.key==="Enter"&&f(!0)},m=(R="",D="",S=!0,I=!1)=>{var k;f(!1),I?u(R):D!==R&&(u(D),o==null||o(D)),S===!1&&((k=l.current)==null||k.focus())},C=R=>{d==null||d({type:"mousedown"},R)},M=[],P=[],T=[];return e==null||e.forEach((R,D)=>{switch(R.location){case"pre-title":M.push(cs.cloneElement(R.content,{key:D}));break;default:P.push(cs.cloneElement(R.content,{key:D}))}}),a&&M.push(at(au,{className:"vuuHeader-title",children:at(nt,{editing:p,value:c,onChange:u,onMouseDownCapture:y,onEnterEditMode:w,onExitEditMode:m,onKeyDown:E,ref:l,tabIndex:0},"title")},"title")),r&&T.push(cu(iu,{onClick:h,onMouseDown:g,children:[at(lu,{})," Close"]},"close")),P.length>0&&M.push(at(ps,{"data-align-end":!0,children:P},"contributions")),T.length>0&&M.push(at(ps,{"data-align-end":!0,children:T},"actions")),at(su,{className:x,orientation:s,style:i,onMouseDown:C,children:M})};import Ru,{forwardRef as Du}from"react";import ar from"classnames";import{PopupMenu as Su}from"@vuu-ui/vuu-popups";import{useCallback as ws,useMemo as ir,useRef as Cu,useState as Eu}from"react";var uu=".vuuOverflowContainer-item:not(.wrapped)",pu=n=>n.sort((e,t)=>{let{dataset:{index:r="?"}}=e,{dataset:{index:o="?"}}=t,s=e.classList.contains("wrapped"),i=t.classList.contains("wrapped"),a=r==="overflow",l=o==="overflow";return s&&!i?1:!s&&i?-1:a?1:l?-1:parseInt(r)>parseInt(o)?1:-1}),or=[],kt=n=>{let e=[],t=[],r=-1,o=!1,s=pu(Array.from(n.children));for(let i of s){let a=i,{dataset:{index:l="?",label:c="?",overflowPriority:u="0"}}=a,{left:p}=a.getBoundingClientRect();p<=r?(l==="overflow"?t.push(e.pop()):t.push({index:l,label:c,overflowPriority:u}),o=!0):o?t.push({index:l,label:c,overflowPriority:u}):e.push({index:l,label:c,overflowPriority:u}),r=p}return[e,t]},fs=(n,e)=>{let t=!1;e.find(({index:r})=>r==="overflow")&&e.length===1&&(t=!0);for(let r of n.children){let{dataset:{index:o="?"}}=r;e.length===0||t?n.classList.remove("overflowed"):n.classList.add("overflowed"),o!=="overflow"&&e.find(s=>s.index===o)?r.classList.add("wrapped"):r.classList.remove("wrapped")}},fu=(n,{overflowPriority:e})=>Math.max(n,parseInt(e)),du=(n,{overflowPriority:e})=>Math.min(n,parseInt(e)),ds=n=>{var e;return n.length>1&&((e=n.at(-1))==null?void 0:e.index)==="overflow"},mu=n=>{let[e]=n;for(let t=1;t<n.length;t++){let r=n[t];parseInt(r.overflowPriority)>parseInt(e.overflowPriority)&&(e=r)}return e},ms=(n,e)=>{var o;let t=n.reduce(du,Number.MAX_SAFE_INTEGER);return e.reduce(fu,0)>t?!0:e.length>1&&((o=e.at(-1))==null?void 0:o.index)==="overflow"},hs=(n,e)=>new Promise(t=>{requestAnimationFrame(()=>{let[,r]=kt(n);bu(e,r).forEach(s=>hu(n,s)),t(r)})}),gs=(n,e,t)=>new Promise(r=>{requestAnimationFrame(()=>{let[,o]=kt(n),s=mu(o);if(s){let[i,a]=sr(n,s);r([i,a])}else r([e,t])})}),bs=(n,e)=>n.querySelector(`[data-index="${e.index}"]`),hu=(n,e)=>{let t=bs(n,e);if(t)t.classList.add("wrapped");else throw Error(`markElementAsWrapped element item with index ${e.index} not found`)},gu=n=>Array.from(n.querySelectorAll(".wrapped")),bu=(n,e)=>{let t=[];for(let r of e)n.find(({index:o})=>o===r.index)||t.push(r);return t},yu=(n,e)=>{gu(n).forEach(r=>{let{dataset:{index:o="?"}}=r;e.find(s=>s.index===o)||r.classList.remove("wrapped")})},ys=n=>n.querySelector('[data-index="overflow"]'),xu=n=>n.querySelector(".wrapped"),an=n=>parseInt(getComputedStyle(n).getPropertyValue("width")),xs=(n,e)=>{let{right:t}=n.getBoundingClientRect(),r=parseInt(getComputedStyle(n).getPropertyValue("padding-right")),{right:o}=e.getBoundingClientRect();return t-r-o},vs=n=>{let e=ys(n),t=xs(n,e),r=an(e),o=xu(n);return an(o)<=t+r?(n.classList.remove("overflowed"),o.classList.remove("wrapped"),!0):!1},vu=(n,e)=>{let{dataset:{index:t="0",overflowPriority:r="0"}}=n,{dataset:{index:o="0",overflowPriority:s="0"}}=e;return r>s?-1:r<s?1:parseInt(t)-parseInt(o)},wu=n=>Array.from(n.querySelectorAll(uu)).sort(vu),sr=(n,e)=>{let t=wu(n),r=bs(n,e),o=-1,s=t.at(o),i=an(s),a=an(r),l=ys(n),c=xs(n,l)+i;if(c>=a)Tu(r,s);else{let{left:f}=s.getBoundingClientRect(),d=c,h=[s];for(;c<a;){o-=1,s=t.at(o),h.push(s);let{left:b}=s.getBoundingClientRect(),y=f-b;c=d+y}r==null||r.classList.remove("wrapped"),h.forEach(b=>{b.classList.add("wrapped")})}let[u,p]=kt(n);return yu(n,p),[u,p]},Tu=(n,e)=>{if(!n||!e)throw Error("switchWrapOnElements, element undefined");n.classList.remove("wrapped"),e.classList.add("wrapped")};var Ts=({itemCount:n,onSwitchWrappedItemIntoView:e})=>{let[t,r]=Eu(null),o=Cu(or),s=ws(async()=>{if(t){let[p,f]=kt(t);for(fs(t,f),ds(f)&&(f=await hs(t,f));ms(p,f);)[p,f]=await gs(t,p,f);f.length===1&&vs(t)&&(f=or),o.current=f}},[t]),i=p=>typeof p=="object"&&p!==null&&"overflowItem"in p,[a,l]=ir(()=>[()=>{let{current:p}=o;return p.map(f=>({label:f.label,action:`activate-item-${f.index}`,options:{overflowItem:f}}))},({options:p})=>{if(t&&i(p)){let[,f]=sr(t,p.overflowItem);o.current=f,e==null||e(p.overflowItem)}return!0}],[t,e]),c=ir(()=>{let p=0;return new ResizeObserver(f=>{for(let d of f){let{width:h}=d.contentRect;p!==h&&(p=h,s())}})},[s]);yo(()=>{s()},[s,n]),ir(()=>{t&&c.observe(t)},[t,c]);let u=ws(p=>{r(p)},[]);return{menuActionHandler:l,menuBuilder:a,rootRef:u}};import{jsx as It,jsxs as Pu}from"react/jsx-runtime";var ln="vuuOverflowContainer",Cs=Ru.memo(({children:n,height:e,onSwitchWrappedItemIntoView:t,overflowIcon:r})=>{let o=rt(n),{menuActionHandler:s,menuBuilder:i,rootRef:a}=Ts({itemCount:o.length,onSwitchWrappedItemIntoView:t}),l={"--overflow-container-height":`${e}px`};return Pu("div",{className:`${ln}-wrapContainer`,ref:a,style:l,children:[o.map((c,u)=>{let{"data-overflow-priority":p="0",id:f,label:d=`Item ${u+1}`}=c.props;return It("div",{className:ar(`${ln}-item`),"data-index":u,"data-label":d,"data-overflow-priority":p,id:`${f}-wrapper`,children:c},u)}),It("div",{className:`${ln}-OverflowIndicator`,"data-index":"overflow",children:It(Su,{icon:r,menuBuilder:i,menuActionHandler:s})})]})});Cs.displayName="OverflowContainer.InnerContainer";var Es=Du(function({children:e,className:t,height:r=44,onSwitchWrappedItemIntoView:o,overflowIcon:s,...i},a){return It("div",{...i,className:ar(ar(ln,t)),ref:a,children:It(Cs,{height:r,overflowIcon:s,onSwitchWrappedItemIntoView:o,children:e})})});import{uuid as Mu}from"@vuu-ui/vuu-utils";import{List as Lu,ListItem as ku}from"@heswell/salt-lab";import Rs from"classnames";import{cloneElement as Iu,memo as Ou}from"react";import{jsx as lr}from"react/jsx-runtime";var Au=n=>{let e=n.cloneNode(!0);return e.id="",delete e.dataset.idx,e},Ds=Ou(({className:n,children:e,idx:t,resizeable:r,header:o,closeable:s,...i})=>lr(ku,{className:Rs("vuuPaletteItem",n),"data-draggable":!0,...i}));Ds.displayName="PaletteItem";var Hu=({children:n,className:e,orientation:t="horizontal",ViewProps:r,...o})=>{let s=xe(),i="vuuPalette";function a(l){var C;let u=l.target.closest(".vuuPaletteItem"),p=parseInt((C=u.dataset.idx)!=null?C:"-1");p!==-1&&console.log({children:n,idx:p,listItemElement:u});let{props:{caption:f,children:d,template:h,...b}}=n[p],{height:y,left:g,top:v,width:x}=u.getBoundingClientRect(),w=Mu(),m=h?d:lr(Ge,{...r,...{id:w,key:w},...b,title:b.label,children:d});s({dragRect:{left:g,top:v,right:g+x,bottom:v+150,width:x,height:y},dragElement:Au(u),evt:l.nativeEvent,instructions:{DoNotRemove:!0,DoNotTransform:!0,RemoveDraggableOnDragEnd:!0,dragThreshold:10},path:"*",payload:m,type:"drag-start"})}return lr(Lu,{...o,borderless:!0,className:Rs(i,e,`${i}-${t}`),maxHeight:800,selected:null,children:n.map((l,c)=>l.type===Ds?Iu(l,{key:c,onMouseDown:a}):l)})};ee("Palette",Hu,"view");import{uuid as RE}from"@vuu-ui/vuu-utils";import{List as Nu,ListItem as SE}from"@heswell/salt-lab";import zu from"classnames";import{jsx as Vu}from"react/jsx-runtime";var Fu="vuuPalette";var Bu=({className:n,...e})=>Vu(Nu,{...e,className:zu(Fu,n),height:"100%",selectionStrategy:"none"});ee("PaletteSalt",Bu,"view");import $u from"classnames";import cr,{forwardRef as _u,useCallback as Wu}from"react";import{jsx as Ps,jsxs as Xu}from"react/jsx-runtime";var Ss="Tabs",Ku=()=>{},Gu=(n,e)=>{var t,r;return(r=(t=n.props)==null?void 0:t.title)!=null?r:`Tab ${e+1}`},Uu=n=>{let e=[];return cr.Children.forEach(n,t=>{cr.isValidElement(t)?e.push(t):console.warn("Stack has unexpected child element type")}),e},Qu={allowAddTab:!1,allowCloseTab:!1,allowRenameTab:!1},ur=_u(function({active:e=0,children:t,className:r,getTabIcon:o=Ku,getTabLabel:s=Gu,id:i,keyBoardActivation:a="manual",onAddTab:l,onMoveTab:c,onTabClose:u,onTabEdit:p,onTabSelectionChanged:f,showTabs:d=!0,style:h,TabstripProps:b=Qu},y){var M;let g=Yt(i),{allowCloseTab:v,allowRenameTab:x}=b,w=Wu((P,T,R,D)=>{p==null||p(D,T)},[p]),E=()=>{var P;return cr.isValidElement(t)?t:Array.isArray(t)&&(P=t[e])!=null?P:null},m=()=>Uu(t).map((P,T)=>{let R=`${g}-${T}`,{closeable:D=v,id:S}=P.props;return Ps(Ls,{ariaControls:`${R}-tab`,"data-icon":o(P,T),id:R,index:T,label:s(P,T),closeable:D,editable:x},S!=null?S:T)}),C=E();return Xu("div",{className:$u(Ss,r,{[`${Ss}-horizontal`]:(b==null?void 0:b.orientation)==="vertical"}),style:h,id:g,ref:y,children:[d?Ps(Ms,{...b,activeTabIndex:(M=b==null?void 0:b.activeTabIndex)!=null?M:C===null?-1:e,allowDragDrop:b.allowDragDrop!==!1,animateSelectionThumb:!0,className:"vuuTabHeader",keyBoardActivation:a,onActiveChange:f,onAddTab:l,onCloseTab:u,onExitEditMode:w,onMoveTab:c,children:m()}):null,C]})});ur.displayName="Stack";import{useIdMemo as Zu}from"@salt-ds/core";import Yu,{useCallback as pr,useRef as ju}from"react";import{jsx as fr}from"react/jsx-runtime";var qu=n=>fr(Ge,{resizeable:!0,title:`Tab ${n}`,style:{flexGrow:1,flexShrink:0,flexBasis:0},header:!0,closeable:!0,children:fr(Fn,{style:{flex:1}})}),ks=n=>{let e=ju(null),t=xe(),{loadState:r}=it(),{createNewChild:o=qu,id:s,onTabSelectionChanged:i,path:a,...l}=n,{children:c}=n,u=Zu(s),[p]=sn(u,e,a),f=x=>{a&&(t({type:"switch-tab",path:a,nextIdx:x}),i==null||i(x))},d=pr(x=>{if(Array.isArray(c)){let{props:{"data-path":w,path:E=w}}=c[x];t({type:"remove",path:E})}},[c,t]),h=pr(()=>{if(a){let x=Yu.Children.count(c),w=o(x);t({type:"add",path:a,component:w})}},[c,o,t,a]),b=pr((x,w)=>{a&&t({fromIndex:x,toIndex:w,path:a,type:"move-child"})},[t,a]);return fr(ur,{...l,id:u,getTabLabel:(x,w)=>{let{id:E,title:m}=x.props;return r(E,"view-title")||m||`Tab ${w+1}`},onMouseDown:async(x,w)=>{let E;await p({type:"mousedown",index:w,preDragActivity:async()=>new Promise(M=>{console.log("preDragActivity: Ok, gonna release the drag"),E=M})},x)&&(E==null||E(void 0))},onMoveTab:b,onAddTab:h,onTabClose:d,onTabEdit:(x,w)=>{t({type:"set-title",path:`${a}.${x}`,title:w})},onTabSelectionChanged:f,ref:e})};ks.displayName="Stack";ee("Stack",ks,"container");import xR,{useState as vR}from"react";import{jsx as ER,jsxs as RR}from"react/jsx-runtime";import{FormField as HR,Input as NR}from"@heswell/salt-lab";import{jsx as BR,jsxs as VR}from"react/jsx-runtime";var cn="(\\d+)(?:px)?",Ju=`^(?:${cn}(?:\\s${cn}(?:\\s${cn}(?:\\s${cn})?)?)?)$`,zR=new RegExp(Ju);import GR from"react";import QR from"classnames";import{Tree as jR}from"@heswell/salt-lab";import{jsx as JR}from"react/jsx-runtime";import{Button as Qp}from"@salt-ds/core";import Xp from"classnames";import Zp,{useMemo as Yp,useRef as jp}from"react";import{useCallback as fe,useRef as Wp}from"react";import{createContext as ep,useCallback as PD,useContext as tp,useMemo as MD}from"react";import{jsx as kD}from"react/jsx-runtime";var np={isDragSource:!1,isDropTarget:!1,register:()=>{}},rp=()=>console.log("have you forgotten to provide a DragDrop Provider ?"),op=ep({registerDragDropParty:rp});var Is=n=>{var o,s;let{dragSources:e,dropTargets:t,registerDragDropParty:r}=tp(op);if(n){let i=(o=e==null?void 0:e.has(n))!=null?o:!1,a=(s=t==null?void 0:t.has(n))!=null?s:!1;return{isDragSource:i,isDropTarget:a,register:r}}else return np};import{useCallback as At,useMemo as hp,useRef as Ue,useState as gp}from"react";import{useCallback as ut,useMemo as mp,useRef as $s}from"react";var sp=["left","right"],ip=["top","bottom"],un=":not(.wrapped)",Os=':not([aria-hidden="true"])',As=n=>{let e=n.cloneNode(!0);return e.removeAttribute("id"),e.dataset.index="-1",e},ap=(n,e="width",t=!1)=>{let r=e==="width"?"left":"top",{[e]:o,[r]:s}=n.getBoundingClientRect(),{padEnd:i=!1,padStart:a=!1}=n.dataset,l=getComputedStyle(n),[c,u]=e==="width"?sp:ip,p=a&&!t?0:parseInt(l.getPropertyValue(`margin-${c}`),10),f=i&&!t?0:parseInt(l.getPropertyValue(`margin-${u}`),10),d=o;if(parseInt(l.getPropertyValue("flex-shrink"),10)>0){let b=parseInt(l.getPropertyValue("flex-basis"),10);!isNaN(b)&&b>0&&(d=b)}return[s,p+d+f]},lp={horizontal:{CLIENT_POS:"clientX",CLIENT_SIZE:"clientWidth",CONTRA:"top",CONTRA_CLIENT_POS:"clientY",CONTRA_END:"bottom",CONTRA_POS:"y",DIMENSION:"width",END:"right",POS:"x",SCROLL_POS:"scrollLeft",SCROLL_SIZE:"scrollWidth",START:"left"},vertical:{CLIENT_POS:"clientY",CLIENT_SIZE:"clientHeight",CONTRA:"left",CONTRA_CLIENT_POS:"clientX",CONTRA_END:"right",CONTRA_POS:"x",DIMENSION:"height",END:"bottom",POS:"y",SCROLL_POS:"scrollTop",SCROLL_SIZE:"scrollHeight",START:"top"}},he=n=>lp[n],Hs=(n,e)=>{let t=n.find(r=>r.id===e);if(t)return t},Ns=(n,e)=>{n.splice(e,1);for(let t=e;t<n.length;t++)n[t].currentIndex-=1},lt=(n,e,t,r,o)=>{var p;let s=[],{DIMENSION:i}=he(e),a=Array.from(t?n.querySelectorAll(t):n.children),l=a.length,c=typeof(r==null?void 0:r.from)=="number"?r.atEnd?Math.max(0,r.from-1):r.from:0,u=typeof(r==null?void 0:r.to)=="number"?Math.min(r.to+2,l-1):l-1;for(let f=c;f<=u;f++){let d=a[f],[h,b]=ap(d,i),y=f===l-1,g=d.id,v=parseInt((p=d.dataset.index)!=null?p:"-1");s.push({currentIndex:f,dataIndex:isNaN(v)?-1:v,id:g,index:f,isDraggedItem:o===g,isLast:y,isOverflowIndicator:d.dataset.index==="overflow",element:d,start:h,end:h+b,size:b,mid:h+b/2})}return s},Ot=n=>n.findIndex(e=>e.isDraggedItem),dr=(n,e)=>{let t=Ot(n),r=e==="fwd"?t+1:t-1;if(r<0||r>=n.length)throw Error("switchDropTargetPosition index out of range");let o=n.at(t),s=n.at(r),i=s.size-o.size;if(e==="fwd"){let a=s.start+i,l=s.end,c={...o,start:a,mid:Math.floor(a+(l-a)/2),end:l},u=o.start,p=o.end+i,f={...s,start:u,mid:Math.floor(u+(p-u)/2),end:p};n.splice(t,2,f,c)}else{let a=s.start,l=s.end-i,c={...o,start:a,mid:Math.floor(a+(l-a)/2),end:l},u=o.start-i,p=o.end,f={...s,start:u,mid:Math.floor(u+(p-u)/2),end:p};n.splice(r,2,c,f)}},ct=(n,e,t)=>{let r=n.length,o=Ot(n),s=n[o];if(t==="fwd"){let i=Math.round(e+s.size);for(let a=r-1;a>=0;a--){let l=n[a];if(i>l.mid)return a<o?s:l}}else{let i=Math.round(e);for(let a=0;a<r;a++){let l=n[a];if(i<l.mid)return a>o?s:l}}throw Error("no dropTraget identified")};function zs(n,e){let{height:t,left:r,top:o,width:s}=n,{height:i,width:a}=e;return{height:Math.min(t,i),left:r,top:o,width:Math.min(s,a)}}import{useForkRef as cp}from"@salt-ds/core";import{forwardRef as up,useCallback as pp}from"react";import{Portal as fp}from"@vuu-ui/vuu-popups";import{jsx as Fs}from"react/jsx-runtime";var dp=n=>n.split(" ").map(e=>`vuuDraggable-${e}`),pn=up(function({wrapperClassName:e,element:t,onTransitionEnd:r,style:o,scale:s=1},i){let a=pp(c=>{c&&(c.innerHTML="",c.appendChild(t),s!==1&&(c.style.transform=`scale(${s},${s})`))},[t,s]),l=cp(i,a);return Fs(fp,{children:Fs("div",{className:Xt("vuuDraggable",...dp(e)),ref:l,onTransitionEnd:r,style:o})})}),mr=n=>{let e=document.createElement("div");return e.className="vuuDraggable-spacer",n&&e.addEventListener("transitionend",()=>{n.current=!1}),e},Bs=()=>{let n=document.createElement("div");return n.className="vuuDraggable-dropIndicatorPosition",n},Vs=n=>{let e=document.createElement("div");return e.className="vuuDraggable-dropIndicator",n&&e.addEventListener("transitionend",()=>{n.current=!1}),e};var _s=()=>{let n=$s(0),e=$s(!1),t=mp(()=>[mr(e),mr()],[]),r=ut(()=>t.forEach(c=>c.remove()),[t]),o=ut((c,u="width")=>{let[p,f]=t;n.current=requestAnimationFrame(()=>{e.current=!0,p.style.cssText=`${u}: 0px`,f.style.cssText=`${u}: ${c}px`,t[0]=f,t[1]=p})},[t]),s=ut(()=>{n.current&&(cancelAnimationFrame(n.current),n.current=0)},[]),i=ut(()=>{r()},[r]),a=ut((c,u,p,f=!1,d="static",h="horizontal")=>{if(u){let b=h==="horizontal"?"width":"height",[y,g]=t;if(s(),f)e.current?(r(),y.style.cssText=`${b}: ${p}px`,g.style.cssText=`${b}: 0px`,d==="fwd"?(u.element.before(y),u.element.after(g)):(u.element.after(y),u.element.before(g))):d==="fwd"?u.element.after(g):u.element.before(g),o(p,b);else if(d==="static")y.style.cssText=`${b}: ${p}px`,u.element.before(y);else throw Error("useDragDisplacers currently only supports noTransition for static displacement");d!=="static"&&dr(c,d)}},[o,s,r,t]),l=ut((c,u,p,f=!1,d="static",h="horizontal")=>{let b=h==="horizontal"?"width":"height",[y,g]=t;s(),f?(e.current?(r(),y.style.cssText=`${b}: ${p}px`,g.style.cssText=`${b}: 0px`,u.element.before(y),u.element.after(g)):d==="fwd"?u.element.after(g):u.element.before(g),o(p,b)):(y.style.cssText=`${b}: ${p}px`,u.element.after(y)),d!=="static"&&dr(c,d)},[o,s,r,t]);return{clearDisplacedItem:i,displaceItem:a,displaceLastItem:l,clearSpacers:r}};var Ws=({draggableRef:n,onDrop:e,orientation:t="horizontal",containerRef:r,itemQuery:o="*",selected:s,viewportRange:i})=>{let a=Ue(),l=Ue(!1),c=Ue(-1),u=Ue([]),p=Ue(!1),[f,d]=gp(!1),{clearDisplacedItem:h,clearSpacers:b,displaceItem:y,displaceLastItem:g}=_s(),v=Ue(),x=`:is(${o}${un}${Os},.vuuOverflowContainer-OverflowIndicator)`,w=S=>u.current.findIndex(I=>I.id===S.id),E=Ue();E.current=i;let m=At(()=>{h()},[h]),C=At((S,I,k)=>{let{current:L}=r,{current:A}=v;if(L&&A){u.current=lt(L,t,x,E.current);let{size:O}=A,B=c.current+O/2,{current:z}=u,_=ct(z,B,"fwd");if(_){let $=w(_),Y=z[$];k&&S==="fwd"?g(z,z[z.length-1],O,!1,"static",t):y(z,Y,O,!0,"static",t)}}},[r,y,g,x,t]),M=At(S=>{let k=S.target.closest(o);k.ariaSelected&&Array.isArray(s)&&s.length>1&&console.log("its a selected element, and we have a multi select");let{current:L}=r;if(L&&k){let{SCROLL_SIZE:A,CLIENT_SIZE:O}=he(t),{id:F}=k,{[A]:B,[O]:z}=L;l.current=B>z;let _=u.current=lt(L,t,x,i,F);console.log({dropTargets:_});let Q=Ot(_),$=_[Q];$&&L&&(v.current=$,($.isLast?g:y)(_,$,$.size,!1,"static",t))}},[r,y,g,x,o,t,s,i]),[P,T]=hp(()=>{let S=!1;return[L=>{if(!S){S=!0;let A=L.element.querySelector(".vuuPopupMenu");if(A){let O=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});A.dispatchEvent(O)}}},L=>{if(S){S=!1;let A=L.element.querySelector(".vuuPopupMenu");if(A){let O=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});A.dispatchEvent(O)}}}]},[]),R=At((S,I)=>{let{current:k}=v;if(k&&n.current&&r.current){c.current=S;let{current:L}=u,A=ct(L,S,I);if(A&&!A.isDraggedItem)if(A.isOverflowIndicator)d(p.current=!0),P(A);else{let{size:O}=k;(w(A)===L.length-1?g:y)(L,A,O,!0,I,t);let z=L.at(-1);T(z),d(p.current=!1)}a.current=I}},[r,y,g,n,T,t,P]),D=At(()=>{var L;b();let{current:S}=u,I=Ot(S),k=S[I];if(k&&(a.current=void 0,p.current?e(k.index,-1):e(k.index,I)),d(!1),r.current){let A=(L=r.current)==null?void 0:L.scrollTop;I<S.length&&(r.current.scrollTop=A)}},[b,r,e]);return{beginDrag:M,drag:R,drop:D,handleScrollStart:m,handleScrollStop:C,revealOverflowedItems:f}};import{useCallback as Ht,useRef as Re,useState as Us}from"react";import{useCallback as Ks,useMemo as bp}from"react";var Gs=()=>{let n=bp(()=>Bs(),[]),e=Ks(()=>n.remove(),[n]);return{positionDropIndicator:Ks((r,o="end")=>(o==="end"?r.element.after(n):r.element.before(n),n),[n]),clearSpacer:e}};import{jsx as vp}from"react/jsx-runtime";var yp=':not([data-overflowed="true"])',xp=':not([aria-hidden="true"])',Qs=({draggableRef:n,onDrop:e,orientation:t="horizontal",containerRef:r,itemQuery:o="*",selected:s,viewportRange:i})=>{let a=Re(),l=Re(null),c=Re(null),u=Re(""),p=Re(!1),f=Re(-1),d=Re([]),h=Re(!1),[b,y]=Us(!1),[g,v]=Us(),{clearSpacer:x,positionDropIndicator:w}=Gs(),E=Re(),m=`:is(${o}${yp}${xp},[data-overflow-indicator])`,C=k=>d.current.findIndex(L=>L.id===k.id),M=(k,L,A)=>{k.start+=L,k.mid+=L,k.end+=L,typeof A=="number"&&(k.currentIndex+=A)},P=Re();P.current=i;let T=Ht(()=>{x()},[x]),R=Ht((k,L,A)=>{let{current:O}=r,{current:F}=E;if(O&&F){d.current=lt(O,t,m,P.current);let{size:B}=F,_=f.current+B/2,{current:Q}=d,$=ct(Q,_,"fwd");$&&w(A&&k==="fwd"?Q[Q.length-1]:$,"start")}},[r,w,m,t]),D=Ht(k=>{let A=k.target.closest(o);A.ariaSelected&&Array.isArray(s)&&s.length>1&&console.log("its a selected element, and we have a multi select");let{current:O}=r;if(O&&A){let{SCROLL_SIZE:F,CLIENT_SIZE:B}=he(t),{id:z}=A,{[F]:_,[B]:Q}=O;p.current=_>Q;let $=d.current=lt(O,t,m,i),Y=Hs($,z);if(Y&&O){let H=C(Y);Ns($,H),E.current=Y;let{current:N}=P;if(N!=null&&N.atEnd)for(let X=0;X<$.length;X++)M($[X],Y.size);for(let X=H;X<$.length;X++)M($[X],-Y.size,-1);let[G,oe]=Y.isLast?[$[$.length-1],"end"]:[$[H],"start"];c.current=G,u.current=oe;let Ce=w(G,oe),{top:W,left:K,width:J}=Ce.getBoundingClientRect(),q={top:Y.isLast?N!=null&&N.atEnd&&!N.atStart?W+Y.size-2:W-2:W-Y.size-2,left:K,width:J,height:2};v(vp(pn,{wrapperClassName:"dropIndicatorContainer",style:q,ref:l,element:Vs()}))}}},[o,s,r,t,m,i,w]),S=Ht((k,L)=>{let{current:A}=c,{current:O}=E;if(O&&n.current&&r.current){let F=t==="horizontal"?"left":"top";f.current=k;let{current:B}=d,z=ct(B,k,L);if(z&&z.index!==(A==null?void 0:A.index)){if(z.isOverflowIndicator)y(h.current=!0);else if(l.current){if(C(z)===B.length-1){let Q=B[B.length-1],Y=w(Q,"start").getBoundingClientRect();l.current.style[F]=`${Y.top}px`}else{let $=w(z,"start").getBoundingClientRect();l.current.style[F]=`${$.top}px`}y(h.current=!1)}c.current=z,a.current=L}}},[n,r,t,w]),I=Ht(()=>{x();let{current:k}=E,{current:L}=c,{current:A}=u,{current:O}=P;if(k&&O&&L){let{index:F}=k,B=A==="start",{index:z,currentIndex:_}=L;c.current=null,a.current=void 0,h.current?e(F,-1):F<z?e(F,B?_:_+1):e(F,B?z:z+1),v(void 0)}y(!1)},[x,e]);return{beginDrag:D,drag:S,drop:I,dropIndicator:g,handleScrollStart:T,handleScrollStop:R,revealOverflowedItems:b}};import{useCallback as De,useLayoutEffect as wp,useRef as ge,useState as Tp}from"react";import{useCallback as Xs,useRef as fn}from"react";var Zs=({containerRef:n,onScrollingStopped:e,orientation:t="vertical"})=>{let r=fn(null),o=fn(!1),s=fn(0),i=fn("fwd"),a=Xs((c=!1)=>{console.log("[useAutoScroll] stopScrolling"),r.current!==null&&(clearTimeout(r.current),r.current=null),o.current=!1,e==null||e(i.current,s.current,c)},[e]),l=Xs((c,u,p=30)=>{let{current:f}=n;if(f){let{SCROLL_POS:d,SCROLL_SIZE:h,CLIENT_SIZE:b}=he(t),{[d]:y,[h]:g,[b]:v}=f,x=c==="fwd"?g-v-y:y,w=Math.min(x,p);c==="fwd"?(i.current="fwd",f[d]=s.current=y+w):(i.current="bwd",f[d]=s.current=y-w),w===x?a(!0):(o.current=!0,r.current=window.setTimeout(()=>{l(c,u,p)},100))}},[n,t,a]);return{isScrolling:o,startScrolling:l,stopScrolling:a}};import{jsx as Mp}from"react/jsx-runtime";var Cp={beginDrag:()=>{},drag:()=>{},draggableRef:{current:null},drop:()=>{},isDragging:!1,isScrolling:!1,handleScrollStart:()=>{},handleScrollStop:()=>{},revealOverflowedItems:!1},Ys={start:0,end:1e3,contraStart:0,contraEnd:1e3},Ep=()=>Cp,Rp=3,Dp=(n,e)=>n.closest(e),Sp=n=>n.dataset.index==="overflow"&&n.parentElement!==null&&n.parentElement.classList.contains("overflowed"),Pp=(n,e)=>{let t=`:is(${e}${un},.vuuOverflowContainer-OverflowIndicator)`,o=Array.from(n.querySelectorAll(t)).pop();return[o,Sp(o)]},js=({allowDragDrop:n,containerRef:e,draggableClassName:t,itemQuery:r="*",onDragStart:o,onDrop:s,onDropSettle:i,orientation:a,...l})=>{let c=ge({start:0,end:0,contraStart:0,contraEnd:0}),[u,p]=Tp({draggable:void 0,draggedItemIndex:-1,isDragging:!1}),f=ge(null),d=ge(),h=ge(null),b=ge(!1),y=ge({x:0,y:0}),g=ge({x:0,y:0}),v=ge({x:0,y:0}),x=ge(null),w=ge(-1),E=ge(-1),m=ge(),{isDragSource:C,isDropTarget:M,register:P}=Is(l.id);l.id&&(C||M)&&P(l.id);let T=De(()=>{var J;let{current:W}=E,K=(J=e.current)==null?void 0:J.querySelector(`${r}[data-index="${W}"]`);K&&K.classList.remove("vuuDropTarget-settling"),E.current=-1,i==null||i(W),p(q=>({...q,draggable:void 0}))},[e,r,i]),R=De(W=>{if(e.current){let{POS:K,SCROLL_POS:J,SCROLL_SIZE:q,CLIENT_SIZE:X}=he(a),{[J]:V,[q]:Z,[X]:te}=e.current,j=Z-te,se=V<j,ue=c.current.end,ie=V>0&&W-y.current[K]<=c.current.start,pe=se&&W-y.current[K]>=ue;return ie?"bwd":pe?"fwd":""}},[e,a]),D=n===!0||n==="natural-movement"?Ws:n==="drop-indicator"?Qs:Ep,S=De((W,K,J)=>{var q;(q=m.current)==null||q.call(m,W,K,J)},[]),{isScrolling:I,startScrolling:k,stopScrolling:L}=Zs({containerRef:e,onScrollingStopped:S,orientation:a}),A=De((W,K)=>{w.current=K,s==null||s(W,K),E.current=K},[s]),{beginDrag:O,drag:F,drop:B,handleScrollStart:z,handleScrollStop:_,...Q}=D({...l,containerRef:e,draggableRef:f,isDragSource:C,isDropTarget:M,itemQuery:r,onDrop:A,orientation:a});m.current=_;let $=De(W=>{let{CLIENT_POS:K,CONTRA_CLIENT_POS:J,CONTRA_POS:q,POS:X}=he(a),{clientX:V,clientY:Z}=W,{[K]:te,[J]:j}=W,se=g.current[X],ue=g.current[q],ie=Math.abs(se-te);if((C?Math.abs(ue-j):0)-ie>5&&(c.current=Ys),g.current.x=V,g.current.y=Z,c.current===Ys&&f.current){let $e=g.current.x-y.current.x,Me=g.current.y-y.current.y;f.current.style.top=`${Me}px`,f.current.style.left=`${$e}px`}else if(ie>0&&f.current){let $e=se<te?"fwd":"bwd",Me=R(te),xt=g.current[X]-y.current[X];if(Me&&b.current&&!I.current?(z(),k(Me,1)):!Me&&I.current&&L(),!I.current){let Je=Math.round(Math.max(c.current.start,Math.min(c.current.end,xt))),be=a==="horizontal"?"left":"top";f.current.style[be]=`${Je}px`,F(Je,$e)}}},[F,f,R,z,C,I,a,k,L]),Y=De(()=>{document.removeEventListener("mousemove",$,!1),document.removeEventListener("mouseup",Y,!1),x.current=f.current,B(),p(W=>({...W,draggedItemIndex:-1,isDragging:!1})),d.current=void 0},[$,f,B]),H=De(W=>{let{clientX:K,clientY:J,target:q}=W,X=Dp(q,r),{current:V}=e;if(V&&X){let{CONTRA:Z,CONTRA_END:te,DIMENSION:j,END:se,SCROLL_SIZE:ue,CLIENT_SIZE:ie,START:pe}=he(a);d.current=X;let{[ue]:$e,[ie]:Me}=V;b.current=$e>Me;let[xt,Je]=Pp(V,r),be=V.getBoundingClientRect(),et=X.getBoundingClientRect(),vt=et[j],{[pe]:Fa,[se]:Ba}=xt.getBoundingClientRect();y.current.x=K-et.left,y.current.y=J-et.top,c.current.start=be[pe],c.current.end=Je?Math.max(Fa,be.right-vt):b.current?be[pe]+be[j]-vt:Ba-vt,c.current.contraStart=be[Z],c.current.contraEnd=be[te],O(W);let{dataset:{index:Va="-1"}}=X;p({isDragging:!0,draggable:Mp(pn,{element:As(X),onTransitionEnd:T,ref:f,style:zs(et,be),wrapperClassName:t}),draggedItemIndex:parseInt(Va)}),o==null||o(),document.addEventListener("mousemove",$,!1),document.addEventListener("mouseup",Y,!1)}},[O,e,$,Y,t,f,r,o,a,T]),N=De(W=>{let{CLIENT_POS:K,POS:J}=he(a),{[K]:q}=W;Math.abs(q-v.current[J])>Rp&&e.current&&(h.current&&(window.clearTimeout(h.current),h.current=null),document.removeEventListener("mousemove",N),document.removeEventListener("mouseup",G,!1),H(W))},[e,O,a]),G=De(()=>{h.current&&(window.clearTimeout(h.current),h.current=null),document.removeEventListener("mousemove",N,!1),document.removeEventListener("mouseup",G,!1)},[N]),oe=De(W=>{console.log("useDragDropNext onMouseDown");let{current:K}=e;if(K&&!W.defaultPrevented){let{clientX:J,clientY:q}=W;g.current.x=v.current.x=J,g.current.y=v.current.y=q,document.addEventListener("mousemove",N,!1),document.addEventListener("mouseup",G,!1),W.persist(),h.current=window.setTimeout(()=>{document.removeEventListener("mousemove",N,!1),document.removeEventListener("mouseup",G,!1),H(W.nativeEvent)},500)}},[e,H,N,G]),{current:Ce}=x;return wp(()=>{if(Ce&&e.current){let W=w.current,K=e.current.querySelector(`${r}[data-index="${W}"]`);K?(K.classList.add("vuuDropTarget-settling"),requestAnimationFrame(()=>{let{top:J,left:q}=K.getBoundingClientRect(),{top:X,left:V}=Ce.getBoundingClientRect();V!==q||X!==J?(Ce.classList.add("vuuDraggable-settling"),Ce.style.top=`${J}px`,Ce.style.left=`${q}px`):T()})):console.log(`dont have the dropped item (at ${W})`),x.current=null}},[e,r,Ce,T]),{...Q,...u,isScrolling:I,onMouseDown:n?oe:void 0}};var qs=n=>typeof n=="object"&&n!==null&&"tabIndex"in n&&typeof n.tabIndex=="number",Js=n=>({label:"Close",location:"tab",action:"close-tab",options:n}),ei=n=>({label:"Rename",location:"tab",action:"rename-tab",options:n});var Lp=n=>{if(n){let e=parseInt(n.dataset.index||"");if(!isNaN(e))return e}return-1},ti=(n,e)=>{if(n){let t=n.querySelector(`[data-index]:has(${e})`);return Lp(t)}return-1},hr=n=>ti(n,'[aria-selected="true"]'),ni=n=>ti(n,".vuuEditableLabel-editing");import{useCallback as gr,useMemo as kp,useRef as ri}from"react";var oi=(n,e)=>{let t=ri(!1),r=gr(()=>{t.current=!0},[]),o=gr(()=>{t.current=!1},[]),s=gr(()=>{var a,l;(a=n.current)==null||a.style.setProperty("--tab-thumb-transition","none"),(l=n.current)==null||l.removeEventListener("transitionend",s)},[n]),i=ri(-1);return kp(()=>{var c,u;let a=0,l=0;if(i.current!==-1){let p=(c=n.current)==null?void 0:c.querySelector(".vuuTab-selected"),f=(u=n.current)==null?void 0:u.querySelector(`[data-index="${e}"] .vuuTab`);if(p&&f&&!t.current){let{left:d,width:h}=p.getBoundingClientRect(),{left:b}=f.getBoundingClientRect();a=d-b,l=h;let y=Math.abs(a/1100);requestAnimationFrame(()=>{var g,v,x,w;(g=n.current)==null||g.style.setProperty("--tab-thumb-offset","0px"),(v=n.current)==null||v.style.setProperty("--tab-thumb-width","100%"),(x=n.current)==null||x.style.setProperty("--tab-thumb-transition",`all ${y}s ease`),(w=n.current)==null||w.addEventListener("transitionend",s)})}}return i.current=e,t.current?{containerStyle:{"--tab-thumb-offset":"0px","--tab-thumb-width":"100%"},resumeAnimation:o,suspendAnimation:r}:{containerStyle:{"--tab-thumb-offset":`${a}px`,"--tab-thumb-width":l?`${l}px`:void 0},resumeAnimation:o,suspendAnimation:r}},[e,o,r,n,s])};import{useControlled as Ip}from"@salt-ds/core";import{getFocusableElement as Op}from"@vuu-ui/vuu-utils";import{useCallback as Se,useRef as br,useState as si}from"react";import{ArrowDown as ci,ArrowUp as Ap,ArrowLeft as Hp,ArrowRight as Np,Home as ii,End as ai}from"@vuu-ui/vuu-utils";var ui={horizontal:{[ii]:"start",[ai]:"end",[Hp]:"bwd",[Np]:"fwd"},vertical:{[ii]:"start",[ai]:"end",[Ap]:"bwd",[ci]:"fwd"}},zp=(n,e="horizontal")=>ui[e][n]!==void 0,Fp=n=>n===ci;function li(n,e,t){return e==="start"?0:e==="end"?n-1:e==="bwd"?t>0?t-1:t:t===null?0:t===n-1?t:t+1}var Bp=n=>n!==null&&!n.classList.contains("wrapped"),dn=(n,e)=>n?n.querySelector(`[data-index="${e}"]`):null,pi=({containerRef:n,defaultHighlightedIdx:e=-1,highlightedIdx:t,keyBoardActivation:r,orientation:o,selectedIndex:s=0})=>{let i=r==="manual",a=br(!1),l=br(-1),[c,u]=si(!1),[,p]=si({}),[f,d]=Ip({controlled:t,default:e,name:"UseKeyboardNavigation"}),h=Se(D=>{d(l.current=D)},[d]),b=br(!1),y=Se((D,S=!1,I,k=70)=>{h(D),I===!0&&!b.current&&(b.current=!0);let L=()=>{let A=dn(n.current,D);if(A){let O=Op(A);O==null||O.focus()}};S?L():setTimeout(L,k)},[n,h]),g=D=>{if(console.log("ONFOCUS"),l.current===-1&&D.target.tabIndex!==-1){let S=ni(n.current);S!==-1?requestAnimationFrame(()=>{h(S)}):setTimeout(()=>{l.current===-1&&s!==null&&h(s)},200)}},v=Se(()=>{var D,S;return(S=(D=n.current)==null?void 0:D.querySelectorAll("[data-index]").length)!=null?S:0},[n]),x=Se((D="fwd",S)=>{let I=v(),L=li(I,D,typeof S=="number"?S:I),A=D==="start"?"fwd":D==="end"?"bwd":D;for(;(A==="fwd"&&L<I||A==="bwd"&&L>0)&&!Bp(dn(n.current,L));){let O=li(I,A,L);if(O===L)break;L=O}return L},[n,v]),w=Se((D,S=!1)=>{let I=ui[o][D.key],k=x(I,f);k!==f?i&&y(k,!0):S&&p({})},[f,i,x,y,o]),E=Se(()=>{let D=dn(n.current,f);return D?D.querySelector(".vuuPopupMenu")!=null:!1},[n,f]),m=Se(()=>{let D=dn(n.current,f),S=D==null?void 0:D.querySelector(".vuuPopupMenu");if(S){let I=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});S.dispatchEvent(I)}return!1},[n,f]),C=Se(D=>{v()>0&&zp(D.key,o)?(D.preventDefault(),b.current?w(D):(b.current=!0,w(D,!0))):Fp(D.key)&&E()&&m()},[m,v,E,w,o]),M=(D,S)=>{h(S)},P=Se(()=>{c||(u(!0),a.current?a.current=!1:b.current=!0)},[c]),T=Se(()=>{c||(a.current=!0),b.current=!1},[c]);return{containerProps:{onBlur:D=>{let S=D.target.closest(".vuuTabstrip"),I=D.relatedTarget;S&&!(S!=null&&S.contains(I))&&(h(-1),u(!1))},onMouseDownCapture:T,onFocus:P,onMouseLeave:()=>{b.current=!0,h(-1),a.current=!1}},focusVisible:b.current?f:-1,focusIsWithinComponent:c,highlightedIdx:f,focusTab:y,onClick:M,onFocus:g,onKeyDown:C,setHighlightedIdx:h}};import{useControlled as Vp}from"@salt-ds/core";import{useCallback as mn}from"react";var $p=["Enter"," "],_p=n=>n&&n.matches('[class*="vuuTab "]'),fi=({defaultSelected:n,highlightedIdx:e,onSelectionChange:t,selected:r})=>{let[o,s,i]=Vp({controlled:r,default:n!=null?n:0,name:"Tabstrip",state:"value"}),a=mn(p=>$p.includes(p.key),[]),l=mn(p=>{s(p),t==null||t(p)},[t,s]),c=mn(p=>{let f=p.target;a(p)&&e!==o&&_p(f)&&(p.stopPropagation(),p.preventDefault(),l(e))},[a,e,o,l]),u=mn((p,f)=>{f!==o&&l(f)},[l,o]);return{activateTab:l,isControlled:i,onClick:u,onKeyDown:c,selected:o}};var Kp=new Set(["Enter"," "]),Gp=n=>Kp.has(n),Up=(n,e)=>n?n.querySelector(`[data-index="${e}"]`):null,di=({activeTabIndex:n,allowDragDrop:e,animateSelectionThumb:t,containerRef:r,onActiveChange:o,onAddTab:s,onCloseTab:i,onExitEditMode:a,onMoveTab:l,orientation:c,keyBoardActivation:u})=>{let p=Wp(n),{focusTab:f,highlightedIdx:d,onClick:h,onKeyDown:b,setHighlightedIdx:y,...g}=pi({containerRef:r,keyBoardActivation:u,orientation:c,selectedIndex:p.current}),{activateTab:v,onClick:x,onKeyDown:w,selected:E}=fi({highlightedIdx:d,onSelectionChange:o,selected:n});p.current=E;let{containerStyle:m,resumeAnimation:C,suspendAnimation:M}=oi(r,t?E:-1),P=fe((H,N)=>{let{current:G}=p;console.log(`useTabstrip handleDrop ${H} - ${N} ${G}`),l==null||l(H,N);let oe=-1;N!==-1&&(G===H?oe=N:H>G&&N<=G?oe=G+1:H<G&&N>=G&&(oe=G-1),oe!==-1&&(M(),v(oe),requestAnimationFrame(C)),f(N,!1,!1,350))},[f,l,C,v,M]),{onMouseDown:T,...R}=js({allowDragDrop:e,containerRef:r,draggableClassName:`tabstrip-${c}`,onDrop:P,orientation:"horizontal",itemQuery:".vuuOverflowContainer-item"}),D=fe((H,N,G,oe)=>{console.log(`handleExitEditMode ${H} ${N} ${G} ${oe}`),a==null||a(H,N,G,oe),G||f(oe,!1,!0)},[f,a]),S=fe((H,N)=>{h(H,N),x(H,N)},[h,x]),I=fe((H=d)=>{let N=Up(r.current,H);if(N)return N.querySelector(".vuuEditableLabel")},[r,d]),k=fe((H=d)=>{let N=I(H);return N?N.classList.contains("vuuEditableLabel-editing"):!1},[I,d]),L=fe((H=d)=>{let N=I(H);if(N){let G=new MouseEvent("dblclick",{view:window,bubbles:!0,cancelable:!0});N.dispatchEvent(G)}},[I,d]),A=fe(H=>{b(H),H.defaultPrevented||w(H),!H.defaultPrevented&&Gp(H.key)&&L()},[L,b,w]),O=fe(H=>{let N=hr(r.current),G=N>H?N-1:N===H?0:N;return M(),i==null||i(H,G),setTimeout(()=>{C()},200),!0},[r,i,C,M]),F=fe(H=>(L(H),!0),[L]),B=fe(H=>{if(qs(H.options))switch(H.menuId){case"close-tab":return O(H.options.tabIndex);case"rename-tab":return F(H.options.tabIndex);default:console.log(`tab menu action ${H.menuId}`)}return!1},[O,F]),z=fe(()=>{k()?y(d):f(d)},[d,f,y,k]),_=fe(H=>{let N=parseInt(H.index);isNaN(N)||v(N)},[v]),Q={onFocus:g.onFocus,onKeyDown:A},$=fe(()=>{s==null||s(),requestAnimationFrame(()=>{let H=hr(r.current);H!==-1&&f(H)})},[r,f,s]),Y={onClick:S,onKeyDown:A,onExitEditMode:D,onMenuAction:B,onMenuClose:z,onMouseDown:T};return{activeTabIndex:E,containerStyle:m,focusVisible:g.focusVisible,containerProps:{...g.containerProps,onSwitchWrappedItemIntoView:_},navigationProps:Q,onClickAddTab:$,tabProps:Y,...R}};import{Fragment as ef,jsx as Jp,jsxs as tf}from"react/jsx-runtime";import{createElement as qp}from"react";var yr="vuuTabstrip",Ms=({activeTabIndex:n,allowAddTab:e,allowCloseTab:t,allowDragDrop:r=!1,allowRenameTab:o=!1,animateSelectionThumb:s=!1,children:i,className:a,id:l,keyBoardActivation:c="manual",location:u,onActiveChange:p,onAddTab:f,onCloseTab:d,onExitEditMode:h,onMoveTab:b,orientation:y="horizontal",showTabMenuButton:g,style:v,...x})=>{let w=jp(null),{activeTabIndex:E,focusVisible:m,containerStyle:C,draggedItemIndex:M,onClickAddTab:P,tabProps:T,...R}=di({activeTabIndex:n,allowDragDrop:r,animateSelectionThumb:s,containerRef:w,keyBoardActivation:c,onActiveChange:p,onAddTab:f,onCloseTab:d,onExitEditMode:h,onMoveTab:b,orientation:y}),D=Yt(l),S=Xp(yr,`${yr}-${y}`,a),I=v||C?{...v,...C}:void 0,k=Yp(()=>rt(i).map((L,A)=>{let{id:O=`${D}-tab-${A}`,closeable:F=t,editable:B=o,showMenuButton:z=g}=L.props,_=A===E;return Zp.cloneElement(L,{...T,...R.navigationProps,closeable:F,"data-overflow-priority":_?"1":void 0,dragging:M===A,editable:B,focusVisible:m===A,id:O,index:A,location:u,selected:_,showMenuButton:z,tabIndex:_?0:-1})}).concat(e?qp(Qp,{...R.navigationProps,"aria-label":"Create Tab",className:`${yr}-addTabButton`,"data-icon":"add","data-overflow-priority":"1",key:"addButton",onClick:P,variant:"secondary",tabIndex:-1}):[]),[E,e,t,o,i,m,D,u,P,g,T,M,R.navigationProps]);return tf(ef,{children:[Jp(Es,{...x,...R.containerProps,className:S,height:28,id:D,overflowIcon:"more-horiz",ref:w,style:I,children:k}),R.draggable]})};import{useForkRef as lf}from"@salt-ds/core";import cf from"classnames";import{forwardRef as uf,useCallback as pf,useRef as hi}from"react";import{PopupMenu as nf}from"@vuu-ui/vuu-popups";import{useMemo as rf}from"react";import of from"classnames";import{jsx as af}from"react/jsx-runtime";var sf="vuuTabMenu",mi=({allowClose:n,allowRename:e,location:t,onMenuAction:r,onMenuClose:o,index:s})=>{let[i,a]=rf(()=>[(l,c)=>{let u=[];return e&&u.push(ei(c)),n&&u.push(Js(c)),u},{tabIndex:s}],[n,e,s]);return af(nf,{className:sf,menuBuilder:i,menuActionHandler:r,menuLocation:of("tab",t),menuOptions:a,onMenuClose:o,tabIndex:-1})};import{jsx as hn,jsxs as ff}from"react/jsx-runtime";var Qe="vuuTab",gi=()=>{},Ls=uf(function({ariaControls:e,children:t,className:r,closeable:o=!1,dragging:s,editable:i=!1,editing:a,focusVisible:l,index:c,label:u,location:p,onClick:f,onClose:d,onEnterEditMode:h=gi,onExitEditMode:b=gi,onFocus:y,onKeyUp:g,onMenuAction:v,onMenuClose:x,orientation:w,selected:E,showMenuButton:m=o||i,tabIndex:C,...M},P){if(m&&typeof v!="function")throw Error("Tab onMenuAction must be provided if showMenuButton is set");let T=hi(null),R=hi(null),D=lf(P,T),S=pf(O=>{a||(O.preventDefault(),f==null||f(O,c))},[a,c,f]),I=(O="",F="",B=!0)=>b(O,F,B,c),k=O=>{switch(O.key){case"Backspace":case"Delete":o&&(O.stopPropagation(),d&&d(c));break;default:g&&g(O,c)}},L=()=>i?hn(nt,{editing:a,defaultValue:u,onEnterEditMode:h,onExitEditMode:I,ref:R},u):u,A=O=>{if(R.current){let B=R.current.querySelector(".vuuEditableLabel-input");B==null||B.focus()}y==null||y(O)};return ff("div",{...M,"aria-controls":e,"aria-selected":E,className:cf(Qe,{[`${Qe}-closeable`]:o,"vuuDraggable-dragAway":s,[`${Qe}-editing`]:a,[`${Qe}-selected`]:E||void 0,[`${Qe}-vertical`]:w==="vertical",saltFocusVisible:l}),onClick:S,onFocus:A,onKeyUp:k,ref:D,role:"tab",tabIndex:C,children:[hn("div",{className:`${Qe}-main`,children:hn("span",{className:`${Qe}-text`,"data-text":i?void 0:u,children:t!=null?t:L()})}),m?hn(mi,{allowClose:o,allowRename:i,location:p,onMenuAction:v,onMenuClose:x,index:c}):null]})});import hf from"classnames";import{memo as gf,useCallback as bf,useRef as yf,useState as bi}from"react";import{jsx as gn}from"react/jsx-runtime";var{KEY:yi}=mf,xr=gf(({className:n,column:e,columnMap:t,onClick:r,row:o})=>{let s=yf(null),{align:i,CellRenderer:a,key:l,pin:c,editable:u,resizing:p,valueFormatter:f}=e,[d,h]=bi(!1),b=f(o[l]),[y,g]=bi(b),v=()=>{var P;(P=s.current)==null||P.focus()},x=P=>{P.key==="Enter"&&h(!0)},w=bf(P=>{r==null||r(P,e)},[e,r]),E=()=>{h(!0)},m=(P="",T="",R=!0,D=!1)=>{var S;h(!1),D?g(P):T!==P&&g(T),R===!1&&((S=s.current)==null||S.focus())},C=hf(n,{vuuAlignRight:i==="right",vuuPinFloating:c==="floating",vuuPinLeft:c==="left",vuuPinRight:c==="right","vuuTableCell-resizing":p})||void 0,M=df(e);return u?gn("div",{className:C,"data-editable":!0,role:"cell",style:M,onKeyDown:x,children:gn(nt,{editing:d,value:y,onChange:g,onMouseDownCapture:v,onEnterEditMode:E,onExitEditMode:m,onKeyDown:x,ref:s,tabIndex:0},"title")}):gn("div",{className:C,role:"cell",style:M,onClick:w,children:a?gn(a,{column:e,columnMap:t,row:o}):b})},xf);xr.displayName="TableCell";function xf(n,e){return n.column===e.column&&n.onClick===e.onClick&&n.row[yi]===e.row[yi]&&n.row[n.column.key]===e.row[e.column.key]}import{getColumnStyle as vf,getGroupValueAndOffset as wf,metadataKeys as Tf}from"@vuu-ui/vuu-utils";import{useCallback as Cf}from"react";import{jsx as vr,jsxs as Rf}from"react/jsx-runtime";var{IS_LEAF:Ef}=Tf,xi=({column:n,onClick:e,row:t})=>{let{columns:r}=n,[o,s]=wf(r,t),i=Cf(u=>{e==null||e(u,n)},[n,e]),a=vf(n),l=t[Ef],c=Array(s).fill(0).map((u,p)=>vr("span",{className:"vuuTableGroupCell-spacer"},p));return Rf("div",{className:"vuuTableGroupCell vuuPinLeft",onClick:l?void 0:i,role:"cell",style:a,children:[c,l?null:vr("span",{className:"vuuTableGroupCell-toggle","data-icon":"triangle-right"}),vr("span",{children:o})]})};import{jsx as Ti,jsxs as Hf}from"react/jsx-runtime";var{IDX:If,IS_EXPANDED:Of,SELECTED:Af}=Pf,bn="vuuTableRow",Ci=kf(function({columnMap:e,columns:t,offset:r,onClick:o,onToggleGroup:s,virtualColSpan:i=0,row:a}){let{[If]:l,[Of]:c,[Af]:u}=a,p=Lf(bn,{[`${bn}-even`]:l%2===0,[`${bn}-expanded`]:c,[`${bn}-preSelected`]:u===2}),f=wi(h=>{let b=h.shiftKey,y=h.ctrlKey||h.metaKey;o==null||o(a,b,y)},[o,a]),d=wi((h,b)=>{(vi(b)||Sf(b,a))&&(h.stopPropagation(),s==null||s(a,b))},[s,a]);return Hf("div",{"aria-selected":u===1?!0:void 0,"aria-rowindex":l,className:p,onClick:f,role:"row",style:{transform:`translate3d(0px, ${r}px, 0px)`},children:[i>0?Ti("div",{role:"cell",style:{width:i}}):null,t.filter(Mf).map(h=>{let b=vi(h),y=Df(h);return Ti(b?xi:xr,{column:h,columnMap:e,onClick:b||y?d:void 0,row:a},h.name)})]})});import Di from"classnames";import{useRef as Nf}from"react";import{useCallback as wr,useRef as Ei}from"react";var yn=({column:n,onResize:e,rootRef:t})=>{let r=Ei(0),o=Ei(!1),{name:s}=n,i=wr(()=>{if(e&&t.current){console.log("handleResizeStart");let{width:c}=t.current.getBoundingClientRect();r.current=Math.round(c),o.current=!0,e==null||e("begin",s)}},[s,e,t]),a=wr((c,u)=>{if(t.current&&e){let{width:p}=t.current.getBoundingClientRect(),f=Math.round(p)+u;f!==r.current&&f>0&&(e("resize",s,f),r.current=f)}},[s,e,t]),l=wr(()=>{e&&(e("end",s,r.current),setTimeout(()=>{o.current=!1},100))},[s,e]);return{isResizing:o.current,onDrag:a,onDragStart:i,onDragEnd:l}};import{jsx as Xe,jsxs as Pi}from"react/jsx-runtime";var ze="vuuTable-groupHeaderCell",Ri=({column:n,onClick:e,...t})=>Xe("span",{...t,className:`${ze}-close`,"data-icon":"close-circle",onClick:()=>e==null?void 0:e(n)}),zf=n=>{let{children:e,column:t,className:r}=n;return Pi("div",{className:Di(`${ze}-col`,r),role:"columnheader",children:[Xe("span",{className:`${ze}-label`,children:t.name}),e]})},Si=({column:n,className:e,onRemoveColumn:t,onResize:r,...o})=>{let s=Nf(null),{isResizing:i,...a}=yn({column:n,onResize:r,rootRef:s}),l=Di(ze,e,{vuuPinLeft:n.pin==="left",[`${ze}-right`]:n.align==="right",[`${ze}-resizing`]:n.resizing,[`${ze}-pending`]:n.groupConfirmed===!1}),{columns:c}=n;return Xe("div",{className:l,ref:s,...o,children:Pi("div",{className:`${ze}-inner`,children:[c.map(u=>Xe(zf,{column:u,children:c.length>1?Xe(Ri,{column:u,onClick:t}):null},u.key)),Xe(Ri,{"data-align":"end",onClick:t}),n.resizeable!==!1?Xe(Qt,{...a}):null]})})};import Wf from"classnames";import{useCallback as Tr,useRef as Oi}from"react";import Mi from"classnames";import{jsx as xn,jsxs as Ff}from"react/jsx-runtime";var Li="vuuSortIndicator",ki=({sorted:n})=>{if(!n)return null;let e=typeof n=="number"?n<0?"dsc":"asc":n==="A"?"asc":"dsc";return typeof n=="number"?Ff("div",{className:Mi(Li,"multi-col",e),children:[xn("span",{"data-icon":`sorted-${e}`}),xn("span",{className:"vuuSortPosition",children:Math.abs(n)})]}):xn("div",{className:Mi(Li,"single-col"),children:xn("span",{"data-icon":`sorted-${e}`})})};import{useContextMenu as Kf}from"@vuu-ui/vuu-popups";import{useContextMenu as Bf}from"@vuu-ui/vuu-popups";import Vf from"classnames";import{useCallback as $f}from"react";import{jsx as _f}from"react/jsx-runtime";var Ii=({column:n,filter:e})=>{let[t]=Bf(),r=$f(o=>{o.stopPropagation(),t(o,"filter",{column:n,filter:e})},[n,e,t]);return n.filter?_f("div",{className:Vf("vuuFilterIndicator"),"data-icon":"filter",onClick:r}):null};import{jsx as zt,jsxs as Gf}from"react/jsx-runtime";var Nt="vuuTable-headerCell",Ai=({column:n,className:e,onClick:t,onDragStart:r,onResize:o,...s})=>{let i=Oi(null),{isResizing:a,...l}=yn({column:n,onResize:o,rootRef:i}),[c]=Kf(),u=Oi(null),p=y=>{c(y,"header",{column:n})},f=Tr(y=>!a&&(t==null?void 0:t(y)),[a,t]),d=Tr(y=>{u.current=window.setTimeout(()=>{r==null||r(y),u.current=null},500)},[r]),h=Tr(()=>{u.current!==null&&(window.clearTimeout(u.current),u.current=null)},[]),b=Wf(Nt,e,{vuuPinFloating:n.pin==="floating",vuuPinLeft:n.pin==="left",vuuPinRight:n.pin==="right",vuuEndPin:n.endPin,[`${Nt}-resizing`]:n.resizing,[`${Nt}-right`]:n.align==="right"});return zt("div",{className:b,...s,onClick:f,onContextMenu:p,onMouseDown:d,onMouseUp:h,ref:i,children:Gf("div",{className:`${Nt}-inner`,children:[zt(Ii,{column:n}),zt("div",{className:`${Nt}-label`,children:n.label}),zt(ki,{sorted:n.sorted}),n.resizeable!==!1?zt(Qt,{...l}):null]})})};import{jsx as Ze,jsxs as zi}from"react/jsx-runtime";var Cr="vuuTable",{RENDER_IDX:qf}=Zf,Fi=({columns:n,columnsWithinViewport:e,data:t,getRowOffset:r,headings:o,onColumnResize:s,onHeaderCellDragStart:i,onContextMenu:a,onRemoveColumnFromGroupBy:l,onRowClick:c,onSort:u,onToggleGroup:p,tableId:f,virtualColSpan:d=0,rowCount:h})=>{let b=Hi(x=>{i==null||i(x)},[i]),y=Ni(()=>n.filter(Yf),[n]),g=Ni(()=>Uf(n),[n]),v=Hi(x=>{var P;let E=x.target.closest(".vuuTable-headerCell"),m=parseInt((P=E==null?void 0:E.dataset.idx)!=null?P:"-1"),C=jf(n,m),M=x.shiftKey;C&&u(C,M)},[n,u]);return zi("div",{"aria-rowcount":h,className:`${Cr}-table`,role:"table",children:[zi("div",{className:`${Cr}-headers`,role:"rowGroup",children:[o.map((x,w)=>Ze("div",{className:"vuuTable-heading",children:x.map(({label:E,width:m},C)=>Ze("div",{className:"vuuTable-headingCell",style:{width:m},children:E},C))},w)),Ze("div",{role:"row",children:y.map((x,w)=>{let E=Qf(x);return Xf(x)?Ze(Si,{column:x,"data-idx":w,onRemoveColumn:l,onResize:s,role:"columnHeader",style:E},w):Ze(Ai,{column:x,"data-idx":w,id:`${f}-${w}`,onClick:v,onDragStart:b,onResize:s,role:"columnHeader",style:E},w)})})]}),Ze("div",{className:`${Cr}-body`,onContextMenu:a,role:"rowGroup",children:t==null?void 0:t.map(x=>Ze(Ci,{columnMap:g,columns:e,offset:r(x),onClick:c,virtualColSpan:d,onToggleGroup:p,row:x},x[qf]))})]})};import{useContextMenu as Hm}from"@vuu-ui/vuu-popups";import{applySort as Nm,buildColumnMap as zm,isJsonGroup as Fm,metadataKeys as Bm,moveItem as Vm}from"@vuu-ui/vuu-utils";import{useCallback as Te,useEffect as Oa,useMemo as $m,useRef as Yr,useState as _m}from"react";import{getFullRange as A0,metadataKeys as Jf,WindowRange as H0}from"@vuu-ui/vuu-utils";import{useCallback as z0,useEffect as F0,useMemo as B0,useRef as V0,useState as $0}from"react";var{SELECTED:_0}=Jf;import{useCallback as G0,useEffect as U0,useState as Q0}from"react";import{ConnectionManager as Z0}from"@vuu-ui/vuu-data";import{useCallback as J0,useEffect as eL,useState as tL}from"react";import{ConnectionManager as rL}from"@vuu-ui/vuu-data";import{useCallback as iL}from"react";import{makeRpcCall as lL}from"@vuu-ui/vuu-data";var ed=0,Ft=class{constructor(e,t){this.from=e,this.to=t}},U=class{constructor(e={}){this.id=ed++,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=le.match(e)),t=>{let r=e(t);return r===void 0?null:[this,r]}}};U.closedBy=new U({deserialize:n=>n.split(" ")});U.openedBy=new U({deserialize:n=>n.split(" ")});U.group=new U({deserialize:n=>n.split(" ")});U.contextHash=new U({perNode:!0});U.lookAhead=new U({perNode:!0});U.mounted=new U({perNode:!0});var td=Object.create(null),le=class{constructor(e,t,r,o=0){this.name=e,this.props=t,this.id=r,this.flags=o}static define(e){let t=e.props&&e.props.length?Object.create(null):td,r=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),o=new le(e.name||"",t,e.id,r);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(o)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[s[0].id]=s[1]}}return o}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(U.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let r in e)for(let o of r.split(" "))t[o]=e[r];return r=>{for(let o=r.prop(U.group),s=-1;s<(o?o.length:0);s++){let i=t[s<0?r.name:o[s]];if(i)return i}}}};le.none=new le("",Object.create(null),0,8);var pt=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 r of this.types){let o=null;for(let s of e){let i=s(r);i&&(o||(o=Object.assign({},r.props)),o[i[0].id]=i[1])}t.push(o?new le(r.name,o,r.id,r.flags):r)}return new pt(t)}},vn=new WeakMap,Bi=new WeakMap,ne;(function(n){n[n.ExcludeBuffers=1]="ExcludeBuffers",n[n.IncludeAnonymous=2]="IncludeAnonymous",n[n.IgnoreMounts=4]="IgnoreMounts",n[n.IgnoreOverlays=8]="IgnoreOverlays"})(ne||(ne={}));var re=class{constructor(e,t,r,o,s){if(this.type=e,this.children=t,this.positions=r,this.length=o,this.props=null,s&&s.length){this.props=Object.create(null);for(let[i,a]of s)this.props[typeof i=="number"?i:i.id]=a}}toString(){let e=this.prop(U.mounted);if(e&&!e.overlay)return e.tree.toString();let t="";for(let r of this.children){let o=r.toString();o&&(t&&(t+=","),t+=o)}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 dt(this.topNode,e)}cursorAt(e,t=0,r=0){let o=vn.get(this)||this.topNode,s=new dt(o);return s.moveTo(e,t),vn.set(this,s._tree),s}get topNode(){return new ve(this,0,0,null)}resolve(e,t=0){let r=ft(vn.get(this)||this.topNode,e,t,!1);return vn.set(this,r),r}resolveInner(e,t=0){let r=ft(Bi.get(this)||this.topNode,e,t,!0);return Bi.set(this,r),r}iterate(e){let{enter:t,leave:r,from:o=0,to:s=this.length}=e,i=e.mode||0,a=(i&ne.IncludeAnonymous)>0;for(let l=this.cursor(i|ne.IncludeAnonymous);;){let c=!1;if(l.from<=s&&l.to>=o&&(!a&&l.type.isAnonymous||t(l)!==!1)){if(l.firstChild())continue;c=!0}for(;c&&r&&(a||!l.type.isAnonymous)&&r(l),!l.nextSibling();){if(!l.parent())return;c=!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:Sr(le.none,this.children,this.positions,0,this.children.length,0,this.length,(t,r,o)=>new re(this.type,t,r,o,this.propValues),e.makeTree||((t,r,o)=>new re(le.none,t,r,o)))}static build(e){return nd(e)}};re.empty=new re(le.none,[],[],0);var Bt=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 Bt(this.buffer,this.index)}},Ie=class{constructor(e,t,r){this.buffer=e,this.length=t,this.set=r}get type(){return le.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],r=this.buffer[e+3],o=this.set.types[t],s=o.name;if(/\W/.test(s)&&!o.isError&&(s=JSON.stringify(s)),e+=4,r==e)return s;let i=[];for(;e<r;)i.push(this.childString(e)),e=this.buffer[e+3];return s+"("+i.join(",")+")"}findChild(e,t,r,o,s){let{buffer:i}=this,a=-1;for(let l=e;l!=t&&!($i(s,o,i[l+1],i[l+2])&&(a=l,r>0));l=i[l+3]);return a}slice(e,t,r){let o=this.buffer,s=new Uint16Array(t-e),i=0;for(let a=e,l=0;a<t;){s[l++]=o[a++],s[l++]=o[a++]-r;let c=s[l++]=o[a++]-r;s[l++]=o[a++]-e,i=Math.max(i,c)}return new Ie(s,i,this.set)}};function $i(n,e,t,r){switch(n){case-2:return t<e;case-1:return r>=e&&t<e;case 0:return t<e&&r>e;case 1:return t<=e&&r>e;case 2:return r>e;case 4:return!0}}function _i(n,e){let t=n.childBefore(e);for(;t;){let r=t.lastChild;if(!r||r.to!=t.to)break;r.type.isError&&r.from==r.to?(n=t,t=r.prevSibling):t=r}return n}function ft(n,e,t,r){for(var o;n.from==n.to||(t<1?n.from>=e:n.from>e)||(t>-1?n.to<=e:n.to<e);){let i=!r&&n instanceof ve&&n.index<0?null:n.parent;if(!i)return n;n=i}let s=r?0:ne.IgnoreOverlays;if(r)for(let i=n,a=i.parent;a;i=a,a=i.parent)i instanceof ve&&i.index<0&&((o=a.enter(e,t,s))===null||o===void 0?void 0:o.from)!=i.from&&(n=a);for(;;){let i=n.enter(e,t,s);if(!i)return n;n=i}}var ve=class{constructor(e,t,r,o){this._tree=e,this.from=t,this.index=r,this._parent=o}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(e,t,r,o,s=0){for(let i=this;;){for(let{children:a,positions:l}=i._tree,c=t>0?a.length:-1;e!=c;e+=t){let u=a[e],p=l[e]+i.from;if($i(o,r,p,p+u.length)){if(u instanceof Ie){if(s&ne.ExcludeBuffers)continue;let f=u.findChild(0,u.buffer.length,t,r-p,o);if(f>-1)return new Pe(new Er(i,u,e,p),null,f)}else if(s&ne.IncludeAnonymous||!u.type.isAnonymous||Dr(u)){let f;if(!(s&ne.IgnoreMounts)&&u.props&&(f=u.prop(U.mounted))&&!f.overlay)return new ve(f.tree,p,e,i);let d=new ve(u,p,e,i);return s&ne.IncludeAnonymous||!d.type.isAnonymous?d:d.nextChild(t<0?u.children.length-1:0,t,r,o)}}}if(s&ne.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,r=0){let o;if(!(r&ne.IgnoreOverlays)&&(o=this._tree.prop(U.mounted))&&o.overlay){let s=e-this.from;for(let{from:i,to:a}of o.overlay)if((t>0?i<=s:i<s)&&(t<0?a>=s:a>s))return new ve(o.tree,o.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,r)}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 dt(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return ft(this,e,t,!1)}resolveInner(e,t=0){return ft(this,e,t,!0)}enterUnfinishedNodesBefore(e){return _i(this,e)}getChild(e,t=null,r=null){let o=Tn(this,e,t,r);return o.length?o[0]:null}getChildren(e,t=null,r=null){return Tn(this,e,t,r)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return Cn(this,e)}};function Tn(n,e,t,r){let o=n.cursor(),s=[];if(!o.firstChild())return s;if(t!=null){for(;!o.type.is(t);)if(!o.nextSibling())return s}for(;;){if(r!=null&&o.type.is(r))return s;if(o.type.is(e)&&s.push(o.node),!o.nextSibling())return r==null?s:[]}}function Cn(n,e,t=e.length-1){for(let r=n.parent;t>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(e[t]&&e[t]!=r.name)return!1;t--}}return!0}var Er=class{constructor(e,t,r,o){this.parent=e,this.buffer=t,this.index=r,this.start=o}},Pe=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,r){this.context=e,this._parent=t,this.index=r,this.type=e.buffer.set.types[e.buffer.buffer[r]]}child(e,t,r){let{buffer:o}=this.context,s=o.findChild(this.index+4,o.buffer[this.index+3],e,t-this.context.start,r);return s<0?null:new Pe(this.context,this,s)}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,r=0){if(r&ne.ExcludeBuffers)return null;let{buffer:o}=this.context,s=o.findChild(this.index+4,o.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return s<0?null:new Pe(this.context,this,s)}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 Pe(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 Pe(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new dt(this,e)}get tree(){return null}toTree(){let e=[],t=[],{buffer:r}=this.context,o=this.index+4,s=r.buffer[this.index+3];if(s>o){let i=r.buffer[this.index+1];e.push(r.slice(o,s,i)),t.push(0)}return new re(this.type,e,t,this.to-this.from)}resolve(e,t=0){return ft(this,e,t,!1)}resolveInner(e,t=0){return ft(this,e,t,!0)}enterUnfinishedNodesBefore(e){return _i(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,r=null){let o=Tn(this,e,t,r);return o.length?o[0]:null}getChildren(e,t=null,r=null){return Tn(this,e,t,r)}get node(){return this}matchContext(e){return Cn(this,e)}},dt=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 ve)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let r=e._parent;r;r=r._parent)this.stack.unshift(r.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:r,buffer:o}=this.buffer;return this.type=t||o.set.types[o.buffer[e]],this.from=r+o.buffer[e+1],this.to=r+o.buffer[e+2],!0}yield(e){return e?e instanceof ve?(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,r){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,r,this.mode));let{buffer:o}=this.buffer,s=o.findChild(this.index+4,o.buffer[this.index+3],e,t-this.buffer.start,r);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}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,r=this.mode){return this.buffer?r&ne.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&ne.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&ne.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,r=this.stack.length-1;if(e<0){let o=r<0?0:this.stack[r]+4;if(this.index!=o)return this.yieldBuf(t.findChild(o,this.index,-1,0,4))}else{let o=t.buffer[this.index+3];if(o<(r<0?t.buffer.length:t.buffer[this.stack[r]+3]))return this.yieldBuf(o)}return r<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,r,{buffer:o}=this;if(o){if(e>0){if(this.index<o.buffer.buffer.length)return!1}else for(let s=0;s<this.index;s++)if(o.buffer.buffer[s+3]<this.index)return!1;({index:t,parent:r}=o)}else({index:t,_parent:r}=this._tree);for(;r;{index:t,_parent:r}=r)if(t>-1)for(let s=t+e,i=e<0?-1:r._tree.children.length;s!=i;s+=e){let a=r._tree.children[s];if(this.mode&ne.IncludeAnonymous||a instanceof Ie||!a.type.isAnonymous||Dr(a))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,r=0;if(e&&e.context==this.buffer)e:for(let o=this.index,s=this.stack.length;s>=0;){for(let i=e;i;i=i._parent)if(i.index==o){if(o==this.index)return i;t=i,r=s+1;break e}o=this.stack[--s]}for(let o=r;o<this.stack.length;o++)t=new Pe(this.buffer,t,this.stack[o]);return this.bufferNode=new Pe(this.buffer,t,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,t){for(let r=0;;){let o=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){r++;continue}this.type.isAnonymous||(o=!0)}for(;o&&t&&t(this),o=this.type.isAnonymous,!this.nextSibling();){if(!r)return;this.parent(),r--,o=!0}}}matchContext(e){if(!this.buffer)return Cn(this.node,e);let{buffer:t}=this.buffer,{types:r}=t.set;for(let o=e.length-1,s=this.stack.length-1;o>=0;s--){if(s<0)return Cn(this.node,e,o);let i=r[t.buffer[this.stack[s]]];if(!i.isAnonymous){if(e[o]&&e[o]!=i.name)return!1;o--}}return!0}};function Dr(n){return n.children.some(e=>e instanceof Ie||!e.type.isAnonymous||Dr(e))}function nd(n){var e;let{buffer:t,nodeSet:r,maxBufferLength:o=1024,reused:s=[],minRepeatType:i=r.types.length}=n,a=Array.isArray(t)?new Bt(t,t.length):t,l=r.types,c=0,u=0;function p(w,E,m,C,M){let{id:P,start:T,end:R,size:D}=a,S=u;for(;D<0;)if(a.next(),D==-1){let O=s[P];m.push(O),C.push(T-w);return}else if(D==-3){c=P;return}else if(D==-4){u=P;return}else throw new RangeError(`Unrecognized record size: ${D}`);let I=l[P],k,L,A=T-w;if(R-T<=o&&(L=b(a.pos-E,M))){let O=new Uint16Array(L.size-L.skip),F=a.pos-L.size,B=O.length;for(;a.pos>F;)B=y(L.start,O,B);k=new Ie(O,R-L.start,r),A=L.start-w}else{let O=a.pos-D;a.next();let F=[],B=[],z=P>=i?P:-1,_=0,Q=R;for(;a.pos>O;)z>=0&&a.id==z&&a.size>=0?(a.end<=Q-o&&(d(F,B,T,_,a.end,Q,z,S),_=F.length,Q=a.end),a.next()):p(T,O,F,B,z);if(z>=0&&_>0&&_<F.length&&d(F,B,T,_,T,Q,z,S),F.reverse(),B.reverse(),z>-1&&_>0){let $=f(I);k=Sr(I,F,B,0,F.length,0,R-T,$,$)}else k=h(I,F,B,R-T,S-R)}m.push(k),C.push(A)}function f(w){return(E,m,C)=>{let M=0,P=E.length-1,T,R;if(P>=0&&(T=E[P])instanceof re){if(!P&&T.type==w&&T.length==C)return T;(R=T.prop(U.lookAhead))&&(M=m[P]+T.length+R)}return h(w,E,m,C,M)}}function d(w,E,m,C,M,P,T,R){let D=[],S=[];for(;w.length>C;)D.push(w.pop()),S.push(E.pop()+m-M);w.push(h(r.types[T],D,S,P-M,R-P)),E.push(M-m)}function h(w,E,m,C,M=0,P){if(c){let T=[U.contextHash,c];P=P?[T].concat(P):[T]}if(M>25){let T=[U.lookAhead,M];P=P?[T].concat(P):[T]}return new re(w,E,m,C,P)}function b(w,E){let m=a.fork(),C=0,M=0,P=0,T=m.end-o,R={size:0,start:0,skip:0};e:for(let D=m.pos-w;m.pos>D;){let S=m.size;if(m.id==E&&S>=0){R.size=C,R.start=M,R.skip=P,P+=4,C+=4,m.next();continue}let I=m.pos-S;if(S<0||I<D||m.start<T)break;let k=m.id>=i?4:0,L=m.start;for(m.next();m.pos>I;){if(m.size<0)if(m.size==-3)k+=4;else break e;else m.id>=i&&(k+=4);m.next()}M=L,C+=S,P+=k}return(E<0||C==w)&&(R.size=C,R.start=M,R.skip=P),R.size>4?R:void 0}function y(w,E,m){let{id:C,start:M,end:P,size:T}=a;if(a.next(),T>=0&&C<i){let R=m;if(T>4){let D=a.pos-(T-4);for(;a.pos>D;)m=y(w,E,m)}E[--m]=R,E[--m]=P-w,E[--m]=M-w,E[--m]=C}else T==-3?c=C:T==-4&&(u=C);return m}let g=[],v=[];for(;a.pos>0;)p(n.start||0,n.bufferStart||0,g,v,-1);let x=(e=n.length)!==null&&e!==void 0?e:g.length?v[0]+g[0].length:0;return new re(l[n.topID],g.reverse(),v.reverse(),x)}var Vi=new WeakMap;function wn(n,e){if(!n.isAnonymous||e instanceof Ie||e.type!=n)return 1;let t=Vi.get(e);if(t==null){t=1;for(let r of e.children){if(r.type!=n||!(r instanceof re)){t=1;break}t+=wn(n,r)}Vi.set(e,t)}return t}function Sr(n,e,t,r,o,s,i,a,l){let c=0;for(let h=r;h<o;h++)c+=wn(n,e[h]);let u=Math.ceil(c*1.5/8),p=[],f=[];function d(h,b,y,g,v){for(let x=y;x<g;){let w=x,E=b[x],m=wn(n,h[x]);for(x++;x<g;x++){let C=wn(n,h[x]);if(m+C>=u)break;m+=C}if(x==w+1){if(m>u){let C=h[w];d(C.children,C.positions,0,C.children.length,b[w]+v);continue}p.push(h[w])}else{let C=b[x-1]+h[x-1].length-E;p.push(Sr(n,h,b,w,x,E,C,null,l))}f.push(E+v-s)}}return d(e,t,r,o,0),(a||l)(p,f,i)}var En=class{startParse(e,t,r){return typeof e=="string"&&(e=new Rr(e)),r=r?r.length?r.map(o=>new Ft(o.from,o.to)):[new Ft(0,0)]:[new Ft(0,e.length)],this.createParse(e,t||[],r)}parse(e,t,r){let o=this.startParse(e,t,r);for(;;){let s=o.advance();if(s)return s}}},Rr=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 uL=new U({perNode:!0});var ht=class{constructor(e,t,r,o,s,i,a,l,c,u=0,p){this.p=e,this.stack=t,this.state=r,this.reducePos=o,this.pos=s,this.score=i,this.buffer=a,this.bufferBase=l,this.curContext=c,this.lookAhead=u,this.parent=p}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,r=0){let o=e.parser.context;return new ht(e,[],t,r,r,0,[],0,o?new Rn(o,o.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 r=e>>19,o=e&65535,{parser:s}=this.p,i=s.dynamicPrecedence(o);if(i&&(this.score+=i),r==0){this.pushState(s.getGoto(this.state,o,!0),this.reducePos),o<s.minRepeatTerm&&this.storeNode(o,this.reducePos,this.reducePos,4,!0),this.reduceContext(o,this.reducePos);return}let a=this.stack.length-(r-1)*3-(e&262144?6:0),l=a?this.stack[a-2]:this.p.ranges[0].from,c=this.reducePos-l;c>=2e3&&!(!((t=this.p.parser.nodeSet.types[o])===null||t===void 0)&&t.isAnonymous)&&(l==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=c):this.p.lastBigReductionSize<c&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=l,this.p.lastBigReductionSize=c));let u=a?this.stack[a-1]:0,p=this.bufferBase+this.buffer.length-u;if(o<s.minRepeatTerm||e&131072){let f=s.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(o,l,f,p+4,!0)}if(e&262144)this.state=this.stack[a];else{let f=this.stack[a-3];this.state=s.getGoto(f,o,!0)}for(;this.stack.length>a;)this.stack.pop();this.reduceContext(o,l)}storeNode(e,t,r,o=4,s=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let i=this,a=this.buffer.length;if(a==0&&i.parent&&(a=i.bufferBase-i.parent.bufferBase,i=i.parent),a>0&&i.buffer[a-4]==0&&i.buffer[a-1]>-1){if(t==r)return;if(i.buffer[a-2]>=t){i.buffer[a-2]=r;return}}}if(!s||this.pos==r)this.buffer.push(e,t,r,o);else{let i=this.buffer.length;if(i>0&&this.buffer[i-4]!=0)for(;i>0&&this.buffer[i-2]>r;)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,o>4&&(o-=4);this.buffer[i]=e,this.buffer[i+1]=t,this.buffer[i+2]=r,this.buffer[i+3]=o}}shift(e,t,r){let o=this.pos;if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=r,this.shiftContext(t,o),t<=this.p.parser.maxNode&&this.buffer.push(t,o,r,4);else{let s=e,{parser:i}=this.p;(r>this.pos||t<=i.maxNode)&&(this.pos=r,i.stateFlag(s,1)||(this.reducePos=r)),this.pushState(s,o),this.shiftContext(t,o),t<=i.maxNode&&this.buffer.push(t,o,r,4)}}apply(e,t,r){e&65536?this.reduce(e):this.shift(e,t,r)}useNode(e,t){let r=this.p.reused.length-1;(r<0||this.p.reused[r]!=e)&&(this.p.reused.push(e),r++);let o=this.pos;this.reducePos=this.pos=o+e.length,this.pushState(t,o),this.buffer.push(r,o,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 r=e.buffer.slice(t),o=e.bufferBase+t;for(;e&&o==e.bufferBase;)e=e.parent;return new ht(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,r,o,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let r=e<=this.p.parser.maxNode;r&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,r?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new Mr(this);;){let r=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(r==0)return!1;if(!(r&65536))return!0;t.reduce(r)}}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 o=[];for(let s=0,i;s<t.length;s+=2)(i=t[s+1])!=this.state&&this.p.parser.hasAction(i,e)&&o.push(t[s],i);if(this.stack.length<120)for(let s=0;o.length<4<<1&&s<t.length;s+=2){let i=t[s+1];o.some((a,l)=>l&1&&a==i)||o.push(t[s],i)}t=o}let r=[];for(let o=0;o<t.length&&r.length<4;o+=2){let s=t[o+1];if(s==this.state)continue;let i=this.split();i.pushState(s,this.pos),i.storeNode(0,i.pos,i.pos,4,!0),i.shiftContext(t[o],this.pos),i.score-=200,r.push(i)}return r}forceReduce(){let{parser:e}=this.p,t=e.stateSlot(this.state,5);if(!(t&65536))return!1;if(!e.validAction(this.state,t)){let r=t>>19,o=t&65535,s=this.stack.length-r*3;if(s<0||e.getGoto(this.stack[s],o,!1)<0){let i=this.findForcedReduction();if(i==null)return!1;t=i}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],r=(o,s)=>{if(!t.includes(o))return t.push(o),e.allActions(o,i=>{if(!(i&393216))if(i&65536){let a=(i>>19)-s;if(a>1){let l=i&65535,c=this.stack.length-a*3;if(c>=0&&e.getGoto(this.stack[c],l,!1)>=0)return a<<19|65536|l}}else{let a=r(i,s+1);if(a!=null)return a}})};return r(this.state,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.pos,this.pos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(e){if(e!=this.curContext.context){let t=new Rn(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()}},Rn=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},Wi;(function(n){n[n.Insert=200]="Insert",n[n.Delete=190]="Delete",n[n.Reduce=100]="Reduce",n[n.MaxNext=4]="MaxNext",n[n.MaxInsertStackDepth=300]="MaxInsertStackDepth",n[n.DampenInsertStackDepth=120]="DampenInsertStackDepth",n[n.MinBigReduction=2e3]="MinBigReduction"})(Wi||(Wi={}));var Mr=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,r=e>>19;r==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(r-1)*3;let o=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=o}},gt=class{constructor(e,t,r){this.stack=e,this.pos=t,this.index=r,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new gt(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 gt(this.stack,this.pos,this.index)}};function Vt(n,e=Uint16Array){if(typeof n!="string")return n;let t=null;for(let r=0,o=0;r<n.length;){let s=0;for(;;){let i=n.charCodeAt(r++),a=!1;if(i==126){s=65535;break}i>=92&&i--,i>=34&&i--;let l=i-32;if(l>=46&&(l-=46,a=!0),s+=l,a)break;s*=46}t?t[o++]=s:t=new e(s)}return t}var mt=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},Ki=new mt,Lr=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=Ki,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 r=this.range,o=this.rangeIndex,s=this.pos+e;for(;s<r.from;){if(!o)return null;let i=this.ranges[--o];s-=r.from-i.to,r=i}for(;t<0?s>r.to:s>=r.to;){if(o==this.ranges.length-1)return null;let i=this.ranges[++o];s+=i.from-r.to,r=i}return s}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,r,o;if(t>=0&&t<this.chunk.length)r=this.pos+e,o=this.chunk.charCodeAt(t);else{let s=this.resolveOffset(e,1);if(s==null)return-1;if(r=s,r>=this.chunk2Pos&&r<this.chunk2Pos+this.chunk2.length)o=this.chunk2.charCodeAt(r-this.chunk2Pos);else{let i=this.rangeIndex,a=this.range;for(;a.to<=r;)a=this.ranges[++i];this.chunk2=this.input.chunk(this.chunk2Pos=r),r+this.chunk2.length>a.to&&(this.chunk2=this.chunk2.slice(0,a.to-r)),o=this.chunk2.charCodeAt(0)}}return r>=this.token.lookAhead&&(this.token.lookAhead=r+1),o}acceptToken(e,t=0){let r=t?this.resolveOffset(t,-1):this.pos;if(r==null||r<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=e,this.token.end=r}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=Ki,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 r="";for(let o of this.ranges){if(o.from>=t)break;o.to>e&&(r+=this.input.read(Math.max(o.from,e),Math.min(o.to,t)))}return r}},Fe=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:r}=t.p;ji(this.data,e,t,this.id,r.data,r.tokenPrecTable)}};Fe.prototype.contextual=Fe.prototype.fallback=Fe.prototype.extend=!1;var kr=class{constructor(e,t,r){this.precTable=t,this.elseToken=r,this.data=typeof e=="string"?Vt(e):e}token(e,t){let r=e.pos,o=0;for(;;){let s=e.next<0,i=e.resolveOffset(1,1);if(ji(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(s||o++,i==null)break;e.reset(i,e.token)}o&&(e.reset(r,e.token),e.acceptToken(this.elseToken,o))}};kr.prototype.contextual=Fe.prototype.fallback=Fe.prototype.extend=!1;function ji(n,e,t,r,o,s){let i=0,a=1<<r,{dialect:l}=t.p.parser;e:for(;a&n[i];){let c=n[i+1];for(let d=i+3;d<c;d+=2)if((n[d+1]&a)>0){let h=n[d];if(l.allows(h)&&(e.token.value==-1||e.token.value==h||od(h,e.token.value,o,s))){e.acceptToken(h);break}}let u=e.next,p=0,f=n[i+2];if(e.next<0&&f>p&&n[c+f*3-3]==65535&&n[c+f*3-3]==65535){i=n[c+f*3-1];continue e}for(;p<f;){let d=p+f>>1,h=c+d+(d<<1),b=n[h],y=n[h+1]||65536;if(u<b)f=d;else if(u>=y)p=d+1;else{i=n[h+2],e.advance();continue e}}break}}function Gi(n,e,t){for(let r=e,o;(o=n[r])!=65535;r++)if(o==t)return r-e;return-1}function od(n,e,t,r){let o=Gi(t,r,e);return o<0||Gi(t,r,n)<o}var we=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),Pr=null,Ui;(function(n){n[n.Margin=25]="Margin"})(Ui||(Ui={}));function Qi(n,e,t){let r=n.cursor(ne.IncludeAnonymous);for(r.moveTo(e);;)if(!(t<0?r.childBefore(e):r.childAfter(e)))for(;;){if((t<0?r.to<e:r.from>e)&&!r.type.isError)return t<0?Math.max(0,Math.min(r.to-1,e-25)):Math.min(n.length,Math.max(r.from+1,e+25));if(t<0?r.prevSibling():r.nextSibling())break;if(!r.parent())return t<0?0:n.length}}var Ir=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?Qi(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?Qi(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 r=this.trees[t],o=this.index[t];if(o==r.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let s=r.children[o],i=this.start[t]+r.positions[o];if(i>e)return this.nextStart=i,null;if(s instanceof re){if(i==e){if(i<this.safeFrom)return null;let a=i+s.length;if(a<=this.safeTo){let l=s.prop(U.lookAhead);if(!l||a+l<this.fragment.to)return s}}this.index[t]++,i+s.length>=Math.max(this.safeFrom,e)&&(this.trees.push(s),this.start.push(i),this.index.push(0))}else this.index[t]++,this.nextStart=i+s.length}}},Or=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(r=>new mt)}getActions(e){let t=0,r=null,{parser:o}=e.p,{tokenizers:s}=o,i=o.stateSlot(e.state,3),a=e.curContext?e.curContext.hash:0,l=0;for(let c=0;c<s.length;c++){if(!(1<<c&i))continue;let u=s[c],p=this.tokens[c];if(!(r&&!u.fallback)&&((u.contextual||p.start!=e.pos||p.mask!=i||p.context!=a)&&(this.updateCachedToken(p,u,e),p.mask=i,p.context=a),p.lookAhead>p.end+25&&(l=Math.max(p.lookAhead,l)),p.value!=0)){let f=t;if(p.extended>-1&&(t=this.addActions(e,p.extended,p.end,t)),t=this.addActions(e,p.value,p.end,t),!u.extend&&(r=p,t>f))break}}for(;this.actions.length>t;)this.actions.pop();return l&&e.setLookAhead(l),!r&&e.pos==this.stream.end&&(r=new mt,r.value=e.p.parser.eofTerm,r.start=r.end=e.pos,t=this.addActions(e,r.value,r.end,t)),this.mainToken=r,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new mt,{pos:r,p:o}=e;return t.start=r,t.end=Math.min(r+1,o.stream.end),t.value=r==o.stream.end?o.parser.eofTerm:0,t}updateCachedToken(e,t,r){let o=this.stream.clipPos(r.pos);if(t.token(this.stream.reset(o,e),r),e.value>-1){let{parser:s}=r.p;for(let i=0;i<s.specialized.length;i++)if(s.specialized[i]==e.value){let a=s.specializers[i](this.stream.read(e.start,e.end),r);if(a>=0&&r.p.parser.dialect.allows(a>>1)){a&1?e.extended=a>>1:e.value=a>>1;break}}}else e.value=0,e.end=this.stream.clipPos(o+1)}putAction(e,t,r,o){for(let s=0;s<o;s+=3)if(this.actions[s]==e)return o;return this.actions[o++]=e,this.actions[o++]=t,this.actions[o++]=r,o}addActions(e,t,r,o){let{state:s}=e,{parser:i}=e.p,{data:a}=i;for(let l=0;l<2;l++)for(let c=i.stateSlot(s,l?2:1);;c+=3){if(a[c]==65535)if(a[c+1]==1)c=Oe(a,c+2);else{o==0&&a[c+1]==2&&(o=this.putAction(Oe(a,c+2),t,r,o));break}a[c]==t&&(o=this.putAction(Oe(a,c+1),t,r,o))}return o}},Xi;(function(n){n[n.Distance=5]="Distance",n[n.MaxRemainingPerStep=3]="MaxRemainingPerStep",n[n.MinBufferLengthPrune=500]="MinBufferLengthPrune",n[n.ForceReduceLimit=10]="ForceReduceLimit",n[n.CutDepth=15e3]="CutDepth",n[n.CutTo=9e3]="CutTo",n[n.MaxLeftAssociativeReductionCount=300]="MaxLeftAssociativeReductionCount",n[n.MaxStackCount=12]="MaxStackCount"})(Xi||(Xi={}));var Ar=class{constructor(e,t,r,o){this.parser=e,this.input=t,this.ranges=o,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 Lr(t,o),this.tokens=new Or(e,this.stream),this.topTerm=e.top[1];let{from:s}=o[0];this.stacks=[ht.start(this,e.top[0],s)],this.fragments=r.length&&this.stream.end-s>e.bufferLength*4?new Ir(r,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,r=this.stacks=[],o,s;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 a=e[i];for(;;){if(this.tokens.mainToken=null,a.pos>t)r.push(a);else{if(this.advanceStack(a,r,e))continue;{o||(o=[],s=[]),o.push(a);let l=this.tokens.getMainToken(a);s.push(l.value,l.end)}}break}}if(!r.length){let i=o&&sd(o);if(i)return this.stackToTree(i);if(this.parser.strict)throw we&&o&&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&&o){let i=this.stoppedAt!=null&&o[0].pos>this.stoppedAt?o[0]:this.runRecovery(o,s,r);if(i)return this.stackToTree(i.forceAll())}if(this.recovering){let i=this.recovering==1?1:this.recovering*3;if(r.length>i)for(r.sort((a,l)=>l.score-a.score);r.length>i;)r.pop();r.some(a=>a.reducePos>t)&&this.recovering--}else if(r.length>1){e:for(let i=0;i<r.length-1;i++){let a=r[i];for(let l=i+1;l<r.length;l++){let c=r[l];if(a.sameState(c)||a.buffer.length>500&&c.buffer.length>500)if((a.score-c.score||a.buffer.length-c.buffer.length)>0)r.splice(l--,1);else{r.splice(i--,1);continue e}}}r.length>12&&r.splice(12,r.length-12)}this.minStackPos=r[0].pos;for(let i=1;i<r.length;i++)r[i].pos<this.minStackPos&&(this.minStackPos=r[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,r){let o=e.pos,{parser:s}=this,i=we?this.stackID(e)+" -> ":"";if(this.stoppedAt!=null&&o>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let c=e.curContext&&e.curContext.tracker.strict,u=c?e.curContext.hash:0;for(let p=this.fragments.nodeAt(o);p;){let f=this.parser.nodeSet.types[p.type.id]==p.type?s.getGoto(e.state,p.type.id):-1;if(f>-1&&p.length&&(!c||(p.prop(U.contextHash)||0)==u))return e.useNode(p,f),we&&console.log(i+this.stackID(e)+` (via reuse of ${s.getName(p.type.id)})`),!0;if(!(p instanceof re)||p.children.length==0||p.positions[0]>0)break;let d=p.children[0];if(d instanceof re&&p.positions[0]==0)p=d;else break}}let a=s.stateSlot(e.state,4);if(a>0)return e.reduce(a),we&&console.log(i+this.stackID(e)+` (via always-reduce ${s.getName(a&65535)})`),!0;if(e.stack.length>=15e3)for(;e.stack.length>9e3&&e.forceReduce(););let l=this.tokens.getActions(e);for(let c=0;c<l.length;){let u=l[c++],p=l[c++],f=l[c++],d=c==l.length||!r,h=d?e:e.split();if(h.apply(u,p,f),we&&console.log(i+this.stackID(h)+` (via ${u&65536?`reduce of ${s.getName(u&65535)}`:"shift"} for ${s.getName(p)} @ ${o}${h==e?"":", split"})`),d)return!0;h.pos>o?t.push(h):r.push(h)}return!1}advanceFully(e,t){let r=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>r)return Zi(e,t),!0}}runRecovery(e,t,r){let o=null,s=!1;for(let i=0;i<e.length;i++){let a=e[i],l=t[i<<1],c=t[(i<<1)+1],u=we?this.stackID(a)+" -> ":"";if(a.deadEnd&&(s||(s=!0,a.restart(),we&&console.log(u+this.stackID(a)+" (restarted)"),this.advanceFully(a,r))))continue;let p=a.split(),f=u;for(let d=0;p.forceReduce()&&d<10&&(we&&console.log(f+this.stackID(p)+" (via force-reduce)"),!this.advanceFully(p,r));d++)we&&(f=this.stackID(p)+" -> ");for(let d of a.recoverByInsert(l))we&&console.log(u+this.stackID(d)+" (via recover-insert)"),this.advanceFully(d,r);this.stream.end>a.pos?(c==a.pos&&(c++,l=0),a.recoverByDelete(l,c),we&&console.log(u+this.stackID(a)+` (via recover-delete ${this.parser.getName(l)})`),Zi(a,r)):(!o||o.score<a.score)&&(o=a)}return o}stackToTree(e){return e.close(),re.build({buffer:gt.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=(Pr||(Pr=new WeakMap)).get(e);return t||Pr.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function Zi(n,e){for(let t=0;t<e.length;t++){let r=e[t];if(r.pos==n.pos&&r.sameState(n)){e[t].score<n.score&&(e[t]=n);return}}e.push(n)}var Hr=class{constructor(e,t,r){this.source=e,this.flags=t,this.disabled=r}allows(e){return!this.disabled||this.disabled[e]==0}};var Ye=class extends En{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 a=0;a<e.repeatNodeCount;a++)t.push("");let r=Object.keys(e.topRules).map(a=>e.topRules[a][1]),o=[];for(let a=0;a<t.length;a++)o.push([]);function s(a,l,c){o[a].push([l,l.deserialize(String(c))])}if(e.nodeProps)for(let a of e.nodeProps){let l=a[0];typeof l=="string"&&(l=U[l]);for(let c=1;c<a.length;){let u=a[c++];if(u>=0)s(u,l,a[c++]);else{let p=a[c+-u];for(let f=-u;f>0;f--)s(a[c++],l,p);c++}}}this.nodeSet=new pt(t.map((a,l)=>le.define({name:l>=this.minRepeatTerm?void 0:a,id:l,props:o[l],top:r.indexOf(l)>-1,error:l==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(l)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let i=Vt(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let a=0;a<this.specializerSpecs.length;a++)this.specialized[a]=this.specializerSpecs[a].term;this.specializers=this.specializerSpecs.map(Yi),this.states=Vt(e.states,Uint32Array),this.data=Vt(e.stateData),this.goto=Vt(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(a=>typeof a=="number"?new Fe(i,a):a),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,r){let o=new Ar(this,e,t,r);for(let s of this.wrappers)o=s(o,e,t,r);return o}getGoto(e,t,r=!1){let o=this.goto;if(t>=o[0])return-1;for(let s=o[t+1];;){let i=o[s++],a=i&1,l=o[s++];if(a&&r)return l;for(let c=s+(i>>1);s<c;s++)if(o[s]==e)return l;if(a)return-1}}hasAction(e,t){let r=this.data;for(let o=0;o<2;o++)for(let s=this.stateSlot(e,o?2:1),i;;s+=3){if((i=r[s])==65535)if(r[s+1]==1)i=r[s=Oe(r,s+2)];else{if(r[s+1]==2)return Oe(r,s+2);break}if(i==t||i==0)return Oe(r,s+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){return!!this.allActions(e,r=>r==t?!0:null)}allActions(e,t){let r=this.stateSlot(e,4),o=r?t(r):void 0;for(let s=this.stateSlot(e,1);o==null;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=Oe(this.data,s+2);else break;o=t(Oe(this.data,s+1))}return o}nextStates(e){let t=[];for(let r=this.stateSlot(e,1);;r+=3){if(this.data[r]==65535)if(this.data[r+1]==1)r=Oe(this.data,r+2);else break;if(!(this.data[r+2]&1)){let o=this.data[r+1];t.some((s,i)=>i&1&&s==o)||t.push(this.data[r],o)}}return t}configure(e){let t=Object.assign(Object.create(Ye.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let r=this.topRules[e.top];if(!r)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=r}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(r=>{let o=e.tokenizers.find(s=>s.from==r);return o?o.to:r})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((r,o)=>{let s=e.specializers.find(a=>a.from==r.external);if(!s)return r;let i=Object.assign(Object.assign({},r),{external:s.to});return t.specializers[o]=Yi(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),r=t.map(()=>!1);if(e)for(let s of e.split(" ")){let i=t.indexOf(s);i>=0&&(r[i]=!0)}let o=null;for(let s=0;s<t.length;s++)if(!r[s])for(let i=this.dialects[t[s]],a;(a=this.data[i++])!=65535;)(o||(o=new Uint8Array(this.maxTerm+1)))[a]=1;return new Hr(e,r,o)}static deserialize(e){return new Ye(e)}};function Oe(n,e){return n[e]|n[e+1]<<16}function sd(n){let e=null;for(let t of n){let r=t.p.stoppedAt;(t.pos==t.p.stream.end||r!=null&&t.pos>r)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.score<t.score)&&(e=t)}return e}function Yi(n){if(n.external){let e=n.extend?1:0;return(t,r)=>n.external(t,r)<<1|e}return n.get}var Nr=Ye.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});import{isMultiClauseFilter as $t,isMultiValueFilter as id,isSingleValueFilter as ad}from"@vuu-ui/vuu-utils";var ce,qi=class{constructor(){Jr(this,ce,void 0)}setFilterCombinatorOp(e,t=Ee(this,ce)){$t(t)&&t.op===e||Pn(this,ce,{op:e,filters:[Ee(this,ce)]})}add(e){if(Ee(this,ce)===void 0)Pn(this,ce,e);else if($t(Ee(this,ce)))Ee(this,ce).filters.push(e);else throw Error("Invalid filter passed to FilterExpression")}setColumn(e,t=Ee(this,ce)){if($t(t)){let r=t.filters.at(-1);r&&this.setColumn(e,r)}else t&&(t.column=e)}setOp(e,t=Ee(this,ce)){if($t(t)){let r=t.filters.at(-1);r&&this.setOp(e,r)}else t&&(t.op=e)}setValue(e,t=Ee(this,ce)){var r;if($t(t)){let o=t.filters.at(-1);o&&this.setValue(e,o)}else id(t)?((r=t.values)!=null||(t.values=[]),t.values.push(e)):ad(t)&&(t.value=e)}toJSON(e=Ee(this,ce)){return this.name?{...e,name:this.name}:e}};ce=new WeakMap;var wL=Nr.configure({strict:!0});import{getRowRecord as AL,isGroupMenuItemDescriptor as HL,metadataKeys as ud}from"@vuu-ui/vuu-utils";import{useCallback as zL}from"react";var{KEY:FL}=ud;var pd=n=>n.type==="vuu-links";var fd=n=>n.type==="vuu-menu",Ji=n=>fd(n)||pd(n),ea=n=>n.type==="vuu-link-created"||n.type==="vuu-link-removed";import{useCallback as $L,useEffect as _L,useState as WL}from"react";import{getServerAPI as GL}from"@vuu-ui/vuu-data";import{getFullRange as zr,metadataKeys as dd,WindowRange as md}from"@vuu-ui/vuu-utils";import{useCallback as bt,useEffect as Dn,useMemo as hd,useRef as _t,useState as gd}from"react";var{SELECTED:Wt}=dd;function ta({dataSource:n,onConfigChange:e,onFeatureEnabled:t,onFeatureInvocation:r,onSizeChange:o,onSubscribed:s,range:i={from:0,to:0},renderBufferSize:a=0,viewportRowCount:l}){let[,c]=gd(null),u=_t(!0),p=_t(!1),f=_t({from:0,to:0}),d=_t(null),h=_t([]),b=hd(()=>new Fr(zr(i)),[]),y=bt(m=>{for(let C of m)b.add(C);h.current=b.data,p.current=!0},[b]),g=bt(m=>{m.type==="subscribed"?s==null||s(m):m.type==="viewport-update"?(typeof m.size=="number"&&(o==null||o(m.size),b.setRowCount(m.size)),m.rows?y(m.rows):typeof m.size=="number"&&(h.current=b.data,p.current=!0)):Ji(m)?t==null||t(m):ea(m)?r==null||r(m):console.log(`useDataSource unexpected message ${m.type}`)},[b,t,r,o,s,y]);Dn(()=>()=>{d.current&&(cancelAnimationFrame(d.current),d.current=null),u.current=!1},[]);let v=bt(()=>{u.current&&(p.current&&(c({}),p.current=!1),d.current=requestAnimationFrame(v))},[c]);Dn(()=>{d.current=requestAnimationFrame(v)},[v]);let x=bt(m=>{let{from:C}=n.range,M={from:C,to:C+m},P=zr(M,a);b.setRange(P),n.range=f.current=P,n.emit("range",M)},[n,b,a]),w=bt(m=>{let C=zr(m,a);b.setRange(C),n.range=f.current=C,n.emit("range",m)},[n,b,a]),E=bt(()=>b.getSelectedRows(),[b]);return Dn(()=>{n==null||n.subscribe({range:f.current},g)},[n,g,e]),Dn(()=>{x(l)},[x,l]),{data:h.current,getSelectedRows:E,range:f.current,setRange:w,dataSource:n}}var Fr=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 md(e,t),this.data=new Array(t-e),this.rowCount=0}add(e){var r;let[t]=e;if(this.isWithinRange(t)){let o=t-this.range.from;this.data[o]=e;let s=e[Wt],i=(r=this.data[o-1])==null?void 0:r[Wt];i===0&&s?this.data[o-1][Wt]=2:i===2&&!s&&(this.data[o-1][Wt]=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[r,o]=this.range.overlap(e,t),s=new Array(Math.max(0,t-e));for(let i=r;i<o;i++){let a=this.getAtIndex(i);if(a){let l=i-e;s[l]=a}}this.data=s,this.range.from=e,this.range.to=t}}getSelectedRows(){return this.data.filter(e=>e[Wt]===1)}};import{useDragDrop as bd}from"@heswell/salt-lab";import{useCallback as na,useRef as ra}from"react";var oa=({onDrop:n})=>{let e=ra(),t=ra(null),r=na(()=>{console.log("handleDropSettle"),e.current=void 0,t.current=null},[]),{draggable:o,draggedItemIndex:s,onMouseDown:i}=bd({allowDragDrop:!0,draggableClassName:"vuuTable-headerCell",orientation:"horizontal",containerRef:t,itemQuery:".vuuTable-headerCell",onDrop:n,onDropSettle:r}),a=na(l=>{let{clientX:c,clientY:u}=l;console.log("useDraggableColumn handleHeaderCellDragStart means mouseDown fired on a column in RowBasedTable");let f=l.target.closest(".vuuTable-headerCell");t.current=f==null?void 0:f.closest("[role='row']");let{dataset:{idx:d="-1"}}=f;e.current={clientX:c,clientY:u,idx:d},i==null||i(l)},[i]);return{draggable:o,draggedItemIndex:s,onHeaderCellDragStart:a}};import{withinRange as Ed}from"@vuu-ui/vuu-utils";import{useCallback as Ae,useEffect as Rd,useLayoutEffect as Dd,useMemo as Sd,useRef as Qr}from"react";function yd(n,...e){let t=new Set(n);for(let r of e)for(let o of r)t.add(o);return t}var Br="ArrowUp",Vr="ArrowDown",$r="ArrowLeft",_r="ArrowRight";var Wr="Home",Kr="End",Gr="PageUp",Ur="PageDown";var xd=new Set(["Enter","Delete"," "]),vd=new Set(["Tab"]),wd=new Set(["ArrowRight","ArrowLeft"]),sa=new Set([Wr,Kr,Gr,Ur,Vr,$r,_r,Br]),Td=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),pk=yd(xd,sa,wd,Td,vd);var Cd=["Home","End","PageUp","PageDown"],ia=n=>Cd.includes(n),aa=n=>sa.has(n);var la=n=>`.vuuTable-headers .vuuTable-headerCell:nth-child(${n+1})`,Pd=(n,e)=>`.vuuTable-body > [aria-rowindex='${n}'] > [role='cell']:nth-child(${e+1})`,Md=[-1,-1];function Ld(n,[e,t],r,o){return n===Br?e>-1?[e-1,t]:[e,t]:n===Vr?e===-1?[0,t]:e===o-1?[e,t]:[e+1,t]:n===_r?t<r-1?[e,t+1]:[e,t]:n===$r?t>0?[e,t-1]:[e,t]:[e,t]}var ca=({columnCount:n=0,containerRef:e,disableHighlightOnFocus:t,data:r,requestScroll:o,rowCount:s=0,viewportRange:i})=>{var P;let{from:a,to:l}=i,c=Qr([-1,-1]),u=Qr(),p=Qr([-1,0]),f=Ae(([T,R])=>{var S;let D=T===-1?la(R):Pd(T,R);return(S=e.current)==null?void 0:S.querySelector(D)},[e]),d=T=>T==null?void 0:T.closest("[role='columnHeader'],[role='cell']"),h=T=>{var R,D;if(T.role==="columnHeader")return[-1,parseInt((R=T.dataset.idx)!=null?R:"-1",10)];{let S=T.closest("[role='row']");if(S){let I=parseInt((D=S.ariaRowIndex)!=null?D:"-1",10),k=Array.from(S.childNodes).indexOf(T);return[I,k]}}return Md},b=Ae(T=>{var R;if(e.current){let D=f(T);D?(D!==u.current&&((R=u.current)==null||R.setAttribute("tabindex",""),u.current=D,D.setAttribute("tabindex","0")),D.focus()):Ed(T[0],i)||(u.current=void 0,o==null||o({type:"scroll-page",direction:"up"}))}},[e,f,o,i]),y=Ae((T,R,D=!1)=>{let S=[T,R];p.current=S,b(S),D&&(c.current=S)},[b]),g=Ae(()=>{var T;(T=u.current)==null||T.setAttribute("tabindex",""),u.current=void 0},[]),v=Ae(async(T,R)=>{switch(T){case Ur:o==null||o({type:"scroll-page",direction:"down"});break;case Gr:o==null||o({type:"scroll-page",direction:"up"});break;case Wr:o==null||o({type:"scroll-end",direction:"home"});break;case Kr:o==null||o({type:"scroll-end",direction:"end"});break}return R},[o]),x=Ae(()=>{var T;if(t!==!0&&(T=e.current)!=null&&T.contains(document.activeElement)){let R=d(document.activeElement);R&&(c.current=h(R))}},[t,e]),w=Ae(async T=>{let[R,D]=ia(T)?await v(T,p.current):Ld(T,p.current,n,s),[S,I]=p.current;(R!==S||D!==I)&&y(R,D,!0)},[n,v,s,y]),E=Ae(T=>{r.length>0&&aa(T.key)&&(T.preventDefault(),T.stopPropagation(),w(T.key))},[r,w]),m=Ae(T=>{let R=T.target,D=d(R);if(D){let[S,I]=h(D);y(S,I)}},[y]),C=Sd(()=>({onClick:m,onFocus:x,onKeyDown:E}),[m,x,E]);Dd(()=>{let{current:T}=p,R=T[0]>=a&&T[0]<=l;u.current&&!R?g():!u.current&&R&&b(T)},[b,a,l,g]);let M=((P=e.current)==null?void 0:P.firstChild)!=null;return Rd(()=>{var T;if(M&&u.current===void 0){let R=(T=e.current)==null?void 0:T.querySelector(la(0));R&&(R.setAttribute("tabindex","0"),u.current=R)}},[e,M]),C};import{isValidNumber as Be}from"@vuu-ui/vuu-utils";import{useCallback as Od,useMemo as Ad,useRef as Hd,useState as Nd}from"react";import{useCallback as kd,useEffect as ua,useRef as Id}from"react";var je=new Map,fa=(n,e,t)=>{switch(t){case"height":return e.height;case"clientHeight":return n.clientHeight;case"clientWidth":return n.clientWidth;case"contentHeight":return e.contentHeight;case"contentWidth":return e.contentWidth;case"scrollHeight":return Math.ceil(n.scrollHeight);case"scrollWidth":return Math.ceil(n.scrollWidth);case"width":return e.width;default:return 0}},pa=new ResizeObserver(n=>{for(let e of n){let{target:t,borderBoxSize:r,contentBoxSize:o}=e,s=je.get(t);if(s){let[{blockSize:i,inlineSize:a}]=r,[{blockSize:l,inlineSize:c}]=o,{onResize:u,measurements:p}=s,f=!1;for(let[d,h]of Object.entries(p)){let b=fa(t,{height:i,width:a,contentHeight:l,contentWidth:c},d);b!==h&&(f=!0,p[d]=b)}f&&u&&u(p)}}});function da(n,e,t,r=!1){let o=Id(e),s=kd(i=>{let{width:a,height:l}=i.getBoundingClientRect(),{clientWidth:c,clientHeight:u}=i;return o.current.reduce((p,f)=>(p[f]=fa(i,{width:a,height:l,contentHeight:u,contentWidth:c},f),p),{})},[]);ua(()=>{let i=n.current;async function a(){je.set(i,{measurements:{}}),await document.fonts.ready;let l=je.get(i);if(l){let c=s(i);l.measurements=c,pa.observe(i),r&&t(c)}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(je.has(i))throw Error("useResizeObserver attemping to observe same element twice");a()}return()=>{i&&je.has(i)&&(pa.unobserve(i),je.delete(i))}},[s,n]),ua(()=>{let i=n.current,a=je.get(i);if(a){if(o.current!==e){o.current=e;let l=s(i);a.measurements=l}a.onResize=t}},[e,s,n,t])}var zd=["clientHeight","clientWidth"],ma=n=>Number.isFinite(n),Fd={height:"100%",width:"100%"},Bd=(n,e)=>Be(n)&&Be(e)?{height:`${n}px`,width:`${e}px`}:Fd,Vd=(n,e)=>{if(Be(n)&&Be(e))return{height:n,width:e}},ha=({defaultHeight:n=0,defaultWidth:e=0,height:t,width:r})=>{let o=Hd(null),[s,i]=Nd({css:Bd(t,r),inner:Vd(t,r),outer:{height:t!=null?t:"100%",width:r!=null?r:"100%"}});Ad(()=>{i(l=>{let{inner:c,outer:u}=l;if(Be(t)&&Be(r)&&c&&u){let{height:p,width:f}=c,{height:d,width:h}=u;if(d!==t||h!==r){let b=Be(d)?d-p:0,y=Be(h)?h-f:0;return{...l,outer:{height:t,width:r},inner:{height:t-b,width:r-y}}}}return l})},[t,r]);let a=Od(({clientWidth:l,clientHeight:c})=>{i(u=>{let{css:p,inner:f,outer:d}=u;return ma(c)&&ma(l)&&(l!==(f==null?void 0:f.width)||c!==(f==null?void 0:f.height))?{css:p,outer:d,inner:{width:Math.floor(l)||e,height:Math.floor(c)||n}}:u})},[n,e]);return da(o,zd,a,!0),{containerRef:o,cssSize:s.css,outerSize:s.outer,innerSize:s.inner}};import{deselectItem as $d,isRowSelected as _d,metadataKeys as Wd,selectItem as Kd}from"@vuu-ui/vuu-utils";import{useCallback as Gd,useRef as ga}from"react";var{IDX:Ud}=Wd,Qd=[],ba=({selectionModel:n,onSelectionChange:e})=>{let t=ga(-1),r=ga(Qd);return Gd((s,i,a)=>{let{[Ud]:l}=s,{current:c}=t,{current:u}=r,f=(_d(s)?$d:Kd)(n,u,l,i,a,c);r.current=f,t.current=l,e&&e(f)},[e,n])};import{moveItem as Xd}from"@heswell/salt-lab";import{applyFilterToColumns as Zd,applyGroupByToColumns as Yd,applySortToColumns as jd,findColumn as qd,getCellRenderer as Jd,getColumnName as em,getTableHeadings as tm,getValueFormatter as nm,isFilteredColumn as rm,isGroupColumn as om,isPinned as sm,isTypeDescriptor as im,logger as am,metadataKeys as lm,updateColumn as ya,sortPinnedColumns as xa,stripFilterFromColumns as cm}from"@vuu-ui/vuu-utils";import{useReducer as um}from"react";var{info:Fk}=am("useTableModel"),pm=100,va=lm.count,fm=({serverDataType:n})=>n===void 0,dm=n=>{var e;if(im(n.type))return Jd((e=n.type)==null?void 0:e.renderer)},wa=(n,e)=>{if(n.serverDataType)return n.serverDataType;if(e){let t=e.columns.find(r=>r.name===n.name);if(t)return t.serverDataType}return"string"},mm=["int","long","double"],Ta=n=>n===void 0?void 0:mm.includes(n)?"right":"left",Bk=n=>n.type==="columnSettings",hm=(n,e)=>{switch(e.type){case"init":return Ea(e);case"moveColumn":return bm(n,e);case"resizeColumn":return vm(n,e);case"setTableSchema":return wm(n,e);case"hideColumns":return ym(n,e);case"showColumns":return xm(n,e);case"pinColumn":return Tm(n,e);case"updateColumnProp":return yt(n,e);case"tableConfig":return Ra(n,e);default:return console.log(`unhandled action ${e.type}`),n}},Ca=(n,e)=>{let[t,r]=um(hm,{tableConfig:n,dataSourceConfig:e},Ea);return{columns:t.columns,dispatchColumnAction:r,headings:t.headings}};function Ea({dataSourceConfig:n,tableConfig:e}){let t=e.columns.map(Xr(e)),r=t.some(sm)?xa(t):t,o={columns:r,headings:tm(r)};if(n){let{columns:s,...i}=n;return Ra(o,{type:"tableConfig",...i})}else return o}var gm=(n,e)=>e==="uppercase"?n.toUpperCase():e==="capitalize"?n[0].toUpperCase()+n.slice(1).toLowerCase():n,Xr=n=>(e,t)=>{let r=wa(e,n.tableSchema),{columnDefaultWidth:o=pm,columnFormatHeader:s}=n,{align:i=Ta(r),key:a,name:l,label:c=l,width:u=o,...p}=e,f={...p,align:i,CellRenderer:dm(e),label:gm(c,s),key:a!=null?a:t+va,name:l,originalIdx:t,serverDataType:r,valueFormatter:nm(e),width:u};return om(f)&&(f.columns=f.columns.map(d=>Xr(n)(d,d.key))),f};function bm(n,{column:e,moveBy:t,moveTo:r}){let{columns:o}=n;if(typeof t=="number"){let s=o.indexOf(e),i=o.slice(),[a]=i.splice(s,1);return i.splice(s+t,0,a),{...n,columns:i}}else if(typeof r=="number"){let s=o.indexOf(e);return{...n,columns:Xd(o,s,r)}}return n}function ym(n,{columns:e}){return e.some(t=>t.hidden!==!0)?e.reduce((t,r)=>r.hidden!==!0?yt(t,{type:"updateColumnProp",column:r,hidden:!0}):t,n):n}function xm(n,{columns:e}){return e.some(t=>t.hidden)?e.reduce((t,r)=>r.hidden?yt(t,{type:"updateColumnProp",column:r,hidden:!1}):t,n):n}function vm(n,{column:e,phase:t,width:r}){let o="updateColumnProp",s=t!=="end";switch(t){case"begin":return yt(n,{type:o,column:e,resizing:s});case"end":return yt(n,{type:o,column:e,resizing:s,width:r});case"resize":return yt(n,{type:o,column:e,width:r});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${t}`)}}function wm(n,{tableSchema:e}){let{columns:t}=n;if(t.some(fm)){let r=t.map(o=>{var i;let s=wa(o,e);return{...o,align:(i=o.align)!=null?i:Ta(s),serverDataType:s}});return{...n,columns:r,tableSchema:e}}else return{...n,tableSchema:e}}function Tm(n,e){let{columns:t}=n,{column:r,pin:o}=e;return t=ya(t,r.name,{pin:o}),t=xa(t),console.log({withPins:t}),{...n,columns:t}}function yt(n,e){let{columns:t}=n,{align:r,column:o,hidden:s,label:i,resizing:a,width:l}=e,c={};return(r==="left"||r==="right")&&(c.align=r),typeof i=="string"&&(c.label=i),typeof a=="boolean"&&(c.resizing=a),typeof s=="boolean"&&(c.hidden=s),typeof l=="number"&&(c.width=l),t=ya(t,o.name,c),{...n,columns:t}}function Ra(n,{columns:e,confirmed:t,filter:r,groupBy:o,sort:s}){let i=e&&e.length>0,a=o!==void 0,l=typeof(r==null?void 0:r.filter)=="string",c=s&&s.sortDefs.length>0,u=n;return i&&(u={...n,columns:e.map((p,f)=>{let d=em(p),h=f+va,b=qd(u.columns,d);return b?b.key===h?b:{...b,key:h}:Xr(n)({name:p},f)})}),a&&(u={...n,columns:Yd(u.columns,o,t)}),c&&(u={...n,columns:jd(u.columns,s)}),l?u={...n,columns:Zd(u.columns,r)}:u.columns.some(rm)&&(u={...n,columns:cm(u.columns)}),u}import{useCallback as Ve,useRef as Kt}from"react";var Da=n=>{let{scrollLeft:e,scrollTop:t}=n,{clientHeight:r,clientWidth:o,scrollHeight:s,scrollWidth:i}=n,a=e/(i-o),l=t/(s-r);return[a,l]},Cm=n=>{let{clientHeight:e,clientWidth:t,scrollHeight:r,scrollWidth:o}=n;return[o-t,r-e]},Sa=({onAttach:n,onDetach:e})=>{let t=Kt(null);return Ve(o=>{if(o)t.current=o,n==null||n(o);else if(t.current){let{current:s}=t;t.current=o,e==null||e(s)}},[n,e])},Pa=({onHorizontalScroll:n,onVerticalScroll:e,viewport:t})=>{let r=Kt(!1),o=Kt({scrollTop:0,scrollLeft:0}),s=Kt(null),i=Kt(null),{maxScrollContainerScrollHorizontal:a,maxScrollContainerScrollVertical:l}=t,c=Ve(()=>{let{current:v}=i,{current:x}=s,{current:w}=r;if(w)r.current=!1;else if(v&&x){let[E,m]=Da(x),[C,M]=Cm(v),P=Math.round(E*C),T=Math.round(m*M);console.log(`pctScrollTop ${m}, maxScrollTop ${M} rootScrollTop ${T}`),v.scrollTo({left:P,top:T,behavior:"auto"})}},[]),u=Ve(()=>{let{current:v}=i,{current:x}=s,{current:w}=o;if(v&&x){let{scrollLeft:E,scrollTop:m}=v,[C,M]=Da(v);r.current=!0,x.scrollLeft=Math.round(C*a),x.scrollTop=Math.round(M*l),w.scrollTop!==m&&(w.scrollTop=m,e==null||e(m,M)),w.scrollLeft!==E&&(w.scrollLeft=E,n==null||n(E))}},[a,l,n,e]),p=Ve(v=>{s.current=v,v.addEventListener("scroll",c,{passive:!0})},[c]),f=Ve(v=>{s.current=null,v.removeEventListener("scroll",c)},[c]),d=Ve(v=>{i.current=v,v.addEventListener("scroll",u,{passive:!0})},[u]),h=Ve(v=>{i.current=null,v.removeEventListener("scroll",u)},[u]),b=Sa({onAttach:d,onDetach:h}),y=Sa({onAttach:p,onDetach:f}),g=Ve(v=>{let{current:x}=i;if(x){if(r.current=!1,v.type==="scroll-page"){let{clientHeight:w,scrollLeft:E,scrollTop:m}=x,{direction:C}=v,M=C==="down"?w:-w,P=Math.min(Math.max(0,m+M),l);x.scrollTo({top:P,left:E,behavior:"auto"})}else if(v.type==="scroll-end"){let{direction:w}=v,E=w==="end"?l:0;x.scrollTo({top:E,left:x.scrollLeft,behavior:"auto"})}}},[l]);return{scrollbarContainerRef:y,contentContainerRef:b,requestScroll:g}};import{useCallback as Em,useMemo as Sn,useRef as Rm}from"react";import{actualRowPositioning as Dm,virtualRowPositioning as Sm}from"@vuu-ui/vuu-utils";var Pm=15e5,Mm={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},Lm=n=>{let e=0,t=0,r=0;for(let o of n){let{hidden:s,pin:i,width:a}=o,l=s?0:a;i==="left"?e+=l:i==="right"?t+=l:r+=l}return{pinnedWidthLeft:e+4,pinnedWidthRight:t+4,unpinnedWidth:r}},Ma=({columns:n,headerHeight:e,headings:t,rowCount:r,rowHeight:o,size:s})=>{let i=Rm(0),l=Math.min(r,Pm)*o,u=r*o-l,{pinnedWidthLeft:p,pinnedWidthRight:f,unpinnedWidth:d}=Sn(()=>Lm(n),[n]),[h,b]=Sn(()=>Dm(o),[o]),[y,g]=Sn(()=>u?Sm(o,u,i):[h,b],[b,h,u,o]),v=Em(x=>{i.current=x},[]);return Sn(()=>{var x;if(s){let w=t.length,E=15,m=p+d+f,C=m>s.width?E:0,M=e*(1+w),P=l-(((x=s==null?void 0:s.height)!=null?x:0)-C)+M,T=m-s.width+p,R=(s.height-e)/o,D=Number.isInteger(R)?R+1:Math.ceil(R),S=s.height-M,I=l>S?E:0;return{contentHeight:l,getRowAtPosition:g,getRowOffset:y,horizontalScrollbarHeight:C,maxScrollContainerScrollHorizontal:T,maxScrollContainerScrollVertical:P,pinnedWidthLeft:p,pinnedWidthRight:f,rowCount:D,contentWidth:m,setPctScrollTop:v,totalHeaderHeight:M,verticalScrollbarWidth:I,viewportBodyHeight:S}}else return Mm},[s,t.length,p,d,f,l,e,o,g,y,v])};import{getColumnsInViewport as La,itemsChanged as km}from"@vuu-ui/vuu-utils";import{useCallback as ka,useEffect as Im,useMemo as Om,useRef as Zr,useState as Am}from"react";var Ia=({columns:n,getRowAtPosition:e,setRange:t,viewportMeasurements:r})=>{let o=Zr(-1),{rowCount:s,contentWidth:i,maxScrollContainerScrollHorizontal:a}=r,l=i-a,c=Zr(0),[u,p]=Om(()=>La(n,c.current,c.current+l),[l,n]),f=Zr(p);Im(()=>{h(u)},[u]);let[d,h]=Am(u),b=ka(g=>{c.current=g;let[v,x]=La(n,g,g+l);km(d,v)&&(f.current=x,h(v))},[l,n,d]),y=ka(g=>{let v=e(g);v!==o.current&&(o.current=v,t({from:v,to:v+s}))},[e,t,s]);return{columnsWithinViewport:d,onHorizontalScroll:b,onVerticalScroll:y,virtualColSpan:f.current}};var Wm=[],{KEY:Km,IS_EXPANDED:Aa,IS_LEAF:Ha}=Bm,Na=({config:n,dataSource:e,headerHeight:t,onConfigChange:r,onFeatureEnabled:o,onFeatureInvocation:s,onSelectionChange:i,renderBufferSize:a=0,rowHeight:l,selectionModel:c,...u})=>{var q,X;let[p,f]=_m(e.size),d=Yr(!1),h=Yr();if(h.current=e,e===void 0)throw Error("no data source provided to Vuu Table");let b=ha(u),y=Te(V=>{f(V)},[]),{columns:g,dispatchColumnAction:v,headings:x}=Ca(n,e.config),{getRowAtPosition:w,getRowOffset:E,setPctScrollTop:m,...C}=Ma({columns:g,headerHeight:t,headings:x,rowCount:p,rowHeight:l,size:b.innerSize}),M=Te(({tableSchema:V})=>{V?(d.current=!0,v({type:"setTableSchema",tableSchema:V})):console.log("usbscription message with no schema")},[v]),P=Te(V=>{e.select(V),i==null||i(V)},[e,i]),T=ba({onSelectionChange:P,selectionModel:c}),{data:R,getSelectedRows:D,range:S,setRange:I}=ta({dataSource:e,onFeatureEnabled:o,onFeatureInvocation:s,onSubscribed:M,onSizeChange:y,renderBufferSize:a,viewportRowCount:C.rowCount}),k=Yr();k.current=R;let L=Te(V=>{d.current=!0,v(V)},[v]),A=so({dataSource:e,onPersistentColumnOperation:L}),O=Te((V,Z=!1,te)=>{e&&(e.sort=Nm(e.sort,V,Z,te))},[e]),F=Te((V,Z,te)=>{let j=g.find(se=>se.name===Z);if(j)V==="end"&&(d.current=!0),v({type:"resizeColumn",phase:V,column:j,width:te});else throw Error(`useDataTable.handleColumnResize, column ${Z} not found`)},[g,v]),B=Te((V,Z)=>{let te=Fm(Z,V),j=V[Km];if(V[Aa]){if(e.closeTreeNode(j,!0),te){let se=g.indexOf(Z);e.getRowsAtDepth(se+1).some(ie=>ie[Aa]||ie[Ha])||v({type:"hideColumns",columns:g.slice(se+2)})}}else if(e.openTreeNode(j),te){let se=e.getChildRows(j),ue=g.indexOf(Z)+1,ie=[g[ue]];se.some(pe=>pe[Ha])&&ie.push(g[ue+1]),ie.some(pe=>pe.hidden)&&v({type:"showColumns",columns:ie})}},[g,e,v]),{onVerticalScroll:z,onHorizontalScroll:_,columnsWithinViewport:Q,virtualColSpan:$}=Ia({columns:g,getRowAtPosition:w,setRange:I,viewportMeasurements:C}),Y=Te((V,Z)=>{m(Z),z(V)},[z,m]),{requestScroll:H,...N}=Pa({onHorizontalScroll:_,onVerticalScroll:Y,viewport:C,viewportHeight:((X=(q=b.innerSize)==null?void 0:q.height)!=null?X:0)-t}),G=ca({columnCount:g.length,containerRef:b.containerRef,data:R,requestScroll:H,rowCount:e==null?void 0:e.size,viewportRange:S}),oe=Te(V=>{V?e&&e.groupBy.includes(V.name)&&(e.groupBy=e.groupBy.filter(Z=>Z!==V.name)):e.groupBy=[]},[e]),Ce=Te((V,Z)=>{let te=e.columns[V],j=Vm(e.columns,te,Z);j!==e.columns&&(e.columns=j,v({type:"tableConfig",columns:j}))},[e,v]),W=oa({onDrop:Ce});Oa(()=>{h.current&&(d.current=!0,v({type:"init",tableConfig:n,dataSourceConfig:h.current.config}))},[n,v]),Oa(()=>{e.on("config",(V,Z)=>{d.current=!0,v({type:"tableConfig",...V,confirmed:Z})})},[e,v]),$m(()=>{d.current&&(r==null||r({...n,columns:g}),d.current=!1)},[g,n,r]);let[K]=Hm(),J=Te(V=>{var ie;let{current:Z}=k,{current:te}=h,j=V.target,se=j==null?void 0:j.closest("div[role='cell']"),ue=j==null?void 0:j.closest(".vuuTableRow");if(se&&ue&&Z&&te){let{columns:pe,selectedRowsCount:$e}=te,Me=zm(pe),xt=parseInt((ie=ue.ariaRowIndex)!=null?ie:"-1"),Je=Array.from(ue.childNodes).indexOf(se),be=Z.find(([vt])=>vt===xt),et=pe[Je];K(V,"grid",{columnMap:Me,columnName:et,row:be,selectedRows:$e===0?Wm:D(),viewport:e==null?void 0:e.viewport})}},[e==null?void 0:e.viewport,D,K]);return{columns:g,columnsWithinViewport:Q,containerMeasurements:b,containerProps:G,data:R,dispatchColumnAction:v,getRowOffset:E,handleContextMenuAction:A,headings:x,onColumnResize:F,onContextMenu:J,onRemoveColumnFromGroupBy:oe,onRowClick:T,onSort:O,onToggleGroup:B,virtualColSpan:$,scrollProps:N,rowCount:p,viewportMeasurements:C,...W}};import Xm from"classnames";import{isDataLoading as Zm}from"@vuu-ui/vuu-utils";import{jsx as Gt,jsxs as za}from"react/jsx-runtime";var qe="vuuTable",MI=({allowConfigEditing:n=!1,className:e,config:t,dataSource:r,headerHeight:o=25,height:s,id:i,onConfigChange:a,onFeatureEnabled:l,onFeatureInvocation:c,onSelectionChange:u,onShowConfigEditor:p,renderBufferSize:f=0,rowHeight:d=20,selectionModel:h="extended",style:b,width:y,zebraStripes:g=!1,...v})=>{let x=Qm(i),{containerMeasurements:{containerRef:w,innerSize:E,outerSize:m},containerProps:C,dispatchColumnAction:M,draggable:P,draggedItemIndex:T,handleContextMenuAction:R,scrollProps:D,viewportMeasurements:S,...I}=Na({config:t,dataSource:r,renderBufferSize:f,headerHeight:o,height:s,onConfigChange:a,onFeatureEnabled:l,onFeatureInvocation:c,onSelectionChange:u,rowHeight:d,selectionModel:h,width:y}),k={...m,"--content-height":`${S.contentHeight}px`,"--horizontal-scrollbar-height":`${S.horizontalScrollbarHeight}px`,"--content-width":`${S.contentWidth}px`,"--pinned-width-left":`${S.pinnedWidthLeft}px`,"--pinned-width-right":`${S.pinnedWidthRight}px`,"--header-height":`${o}px`,"--row-height":`${d}px`,"--table-height":`${E==null?void 0:E.height}px`,"--table-width":`${E==null?void 0:E.width}px`,"--total-header-height":`${S.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${S.verticalScrollbarWidth}px`,"--viewport-body-height":`${S.viewportBodyHeight}px`},L=Xm(qe,e,{[`${qe}-zebra`]:g,[`${qe}-loading`]:Zm(I.columns)});return Gt(Gm,{menuActionHandler:R,menuBuilder:to(r),children:za("div",{...v,...C,className:L,id:x,ref:w,style:k,tabIndex:-1,children:[E?Gt("div",{className:`${qe}-scrollbarContainer`,ref:D.scrollbarContainerRef,children:Gt("div",{className:`${qe}-scrollbarContent`})}):null,E?za("div",{className:`${qe}-contentContainer`,ref:D.contentContainerRef,children:[Gt(Fi,{...I,headerHeight:o,tableId:x}),P]}):null,n&&E?Gt(Um,{className:`${qe}-settings`,"data-icon":"settings",onClick:p,variant:"secondary"}):null]})})};import Ym from"classnames";import{isJsonAttribute as jm,metadataKeys as qm,registerComponent as Jm}from"@vuu-ui/vuu-utils";import{jsx as jr,jsxs as oh}from"react/jsx-runtime";var Ut="vuuJsonCell",{IS_EXPANDED:eh,KEY:th}=qm,nh=n=>{let e=n.lastIndexOf("|");return e===-1?"":n.slice(e+1)},rh=({column:n,row:e})=>{let{key:t}=n,r=e[t],o=!1;jm(r)&&(r=r.slice(0,-1),o=!0);let s=nh(e[th]),i=Ym({[`${Ut}-name`]:s===r,[`${Ut}-value`]:s!==r,[`${Ut}-group`]:o});if(o){let a=e[eh]?"minus-box":"plus-box";return oh("span",{className:i,children:[jr("span",{className:`${Ut}-value`,children:r}),jr("span",{className:`${Ut}-toggle`,"data-icon":a})]})}else return r?jr("span",{className:i,children:r}):null};Jm("json",rh,"cell-renderer",{});export{Qt as ColumnResizer,MI as Table,to as buildContextMenuDescriptors,Bk as isShowSettings,ha as useMeasuredContainer,ba as useSelection,yn as useTableColumnResize,so as useTableContextMenu,Ca as useTableModel,Ma as useTableViewport};
2
18
  //# sourceMappingURL=index.js.map