@vuu-ui/vuu-table 0.8.5 → 0.8.6

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.
Files changed (56) hide show
  1. package/LICENSE +201 -0
  2. package/cjs/index.js +5 -2
  3. package/cjs/index.js.map +4 -4
  4. package/esm/index.js +5 -2
  5. package/esm/index.js.map +4 -4
  6. package/index.css +1 -1
  7. package/index.css.map +3 -3
  8. package/package.json +8 -8
  9. package/types/index.d.ts +2 -10
  10. package/types/table/index.d.ts +10 -0
  11. package/types/{useTableModel.d.ts → table/useTableModel.d.ts} +6 -2
  12. package/types/table-next/ColumnMenu.d.ts +7 -0
  13. package/types/table-next/HeaderCell.d.ts +11 -0
  14. package/types/table-next/Row.d.ts +17 -0
  15. package/types/table-next/TableCell.d.ts +9 -0
  16. package/types/table-next/TableGroupCell.d.ts +9 -0
  17. package/types/table-next/TableNext.d.ts +4 -0
  18. package/types/table-next/index.d.ts +1 -0
  19. package/types/table-next/useCell.d.ts +6 -0
  20. package/types/table-next/useDataSource.d.ts +10 -0
  21. package/types/table-next/useInitialValue.d.ts +1 -0
  22. package/types/table-next/useTableModel.d.ts +70 -0
  23. package/types/table-next/useTableNext.d.ts +49 -0
  24. package/types/table-next/useTableScroll.d.ts +28 -0
  25. package/types/table-next/useVirtualViewport.d.ts +13 -0
  26. /package/types/{ColumnResizer.d.ts → table/ColumnResizer.d.ts} +0 -0
  27. /package/types/{DragVisualizer.d.ts → table/DragVisualizer.d.ts} +0 -0
  28. /package/types/{RowBasedTable.d.ts → table/RowBasedTable.d.ts} +0 -0
  29. /package/types/{SortIndicator.d.ts → table/SortIndicator.d.ts} +0 -0
  30. /package/types/{Table.d.ts → table/Table.d.ts} +0 -0
  31. /package/types/{TableCell.d.ts → table/TableCell.d.ts} +0 -0
  32. /package/types/{TableGroupCell.d.ts → table/TableGroupCell.d.ts} +0 -0
  33. /package/types/{TableGroupHeaderCell.d.ts → table/TableGroupHeaderCell.d.ts} +0 -0
  34. /package/types/{TableHeaderCell.d.ts → table/TableHeaderCell.d.ts} +0 -0
  35. /package/types/{TableRow.d.ts → table/TableRow.d.ts} +0 -0
  36. /package/types/{cell-renderers → table/cell-renderers}/index.d.ts +0 -0
  37. /package/types/{cell-renderers → table/cell-renderers}/json-cell/JsonCell.d.ts +0 -0
  38. /package/types/{cell-renderers → table/cell-renderers}/json-cell/index.d.ts +0 -0
  39. /package/types/{context-menu → table/context-menu}/buildContextMenuDescriptors.d.ts +0 -0
  40. /package/types/{context-menu → table/context-menu}/index.d.ts +0 -0
  41. /package/types/{context-menu → table/context-menu}/useTableContextMenu.d.ts +0 -0
  42. /package/types/{dataTableTypes.d.ts → table/dataTableTypes.d.ts} +0 -0
  43. /package/types/{filter-indicator.d.ts → table/filter-indicator.d.ts} +0 -0
  44. /package/types/{keyUtils.d.ts → table/keyUtils.d.ts} +0 -0
  45. /package/types/{useDataSource.d.ts → table/useDataSource.d.ts} +0 -0
  46. /package/types/{useDraggableColumn.d.ts → table/useDraggableColumn.d.ts} +0 -0
  47. /package/types/{useKeyboardNavigation.d.ts → table/useKeyboardNavigation.d.ts} +0 -0
  48. /package/types/{useMeasuredContainer.d.ts → table/useMeasuredContainer.d.ts} +0 -0
  49. /package/types/{useMeasuredSize.d.ts → table/useMeasuredSize.d.ts} +0 -0
  50. /package/types/{useResizeObserver.d.ts → table/useResizeObserver.d.ts} +0 -0
  51. /package/types/{useSelection.d.ts → table/useSelection.d.ts} +0 -0
  52. /package/types/{useTable.d.ts → table/useTable.d.ts} +0 -0
  53. /package/types/{useTableColumnResize.d.ts → table/useTableColumnResize.d.ts} +0 -0
  54. /package/types/{useTableScroll.d.ts → table/useTableScroll.d.ts} +0 -0
  55. /package/types/{useTableViewport.d.ts → table/useTableViewport.d.ts} +0 -0
  56. /package/types/{useVirtualViewport.d.ts → table/useVirtualViewport.d.ts} +0 -0
package/esm/index.js CHANGED
@@ -1,4 +1,4 @@
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=`
1
+ var _o=(n,e,t)=>{if(!e.has(n))throw TypeError("Cannot "+t)};var Se=(n,e,t)=>(_o(n,e,"read from private field"),t?t.call(n):e.get(n)),Go=(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)},sr=(n,e,t,r)=>(_o(n,e,"write to private field"),r?r.call(n,t):e.set(n,t),t);import{useCallback as ir,useRef as Rc}from"react";import{jsx as Mc}from"react/jsx-runtime";var Uo=()=>{},Dc="vuuColumnResizer",at=({onDrag:n,onDragEnd:e=Uo,onDragStart:t=Uo})=>{let r=Rc(0),o=ir(l=>{l.stopPropagation&&l.stopPropagation(),l.preventDefault&&l.preventDefault();let a=Math.round(l.clientX),c=a-r.current;r.current=a,c!==0&&n(l,c)},[n]),s=ir(l=>{window.removeEventListener("mouseup",s),window.removeEventListener("mousemove",o),e(l)},[e,o]),i=ir(l=>{t(l),r.current=Math.round(l.clientX),window.addEventListener("mouseup",s),window.addEventListener("mousemove",o),l.stopPropagation&&l.stopPropagation(),l.preventDefault&&l.preventDefault()},[t,o,s]);return Mc("div",{className:Dc,"data-align":"end",onMouseDown:i})};import{isNumericColumn as Pc}from"@vuu-ui/vuu-utils";var mn=n=>(e,t)=>{let r=[];if(n===void 0)return r;if(e==="header"||e==="column-menu")r.push(...Lc(t,n)),r.push(...Ac(t,n)),r.push(...kc(t,n)),r.push(...Ic(t)),r.push({action:"column-settings",icon:"cog",label:"Column Settings",options:t}),r.push({action:"table-settings",icon:"cog",label:"DataGrid 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 Lc(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 kc(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(Pc(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 ur=(n,e)=>({label:`Pin ${e}`,action:`column-pin-${e}`,options:n}),lr=n=>ur(n,"left"),ar=n=>ur(n,"floating"),cr=n=>ur(n,"right");function Ic(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:[lr(n),ar(n),cr(n)]}):t==="left"?r.push({label:"Unpin column",action:"column-unpin",options:n},{label:"Pin column",children:[ar(n),cr(n)]}):t==="right"?r.push({label:"Unpin column",action:"column-unpin",options:n},{label:"Pin column",children:[lr(n),ar(n)]}):t==="floating"&&r.push({label:"Unpin column",action:"column-unpin",options:n},{label:"Pin column",children:[lr(n),cr(n)]}),r}function Ac(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 Oc}from"@vuu-ui/vuu-utils";import{addGroupColumn as Xo,addSortColumn as Qo,AggregationType as Hc,setAggregations as ct,setSortColumn as Zo}from"@vuu-ui/vuu-utils";var Nc=(n,e)=>{if(n.filterStruct&&e){let[t,r]=Oc(e,n.filterStruct);return{filter:r,filterStruct:t}}else return n},{Average:zc,Count:Fc,Distinct:$c,High:Vc,Low:Bc,Sum:Kc}=Hc,hn=({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=Zo(n.sort,s,"A"),!0;case"sort-dsc":return n.sort=Zo(n.sort,s,"D"),!0;case"sort-add-asc":return n.sort=Qo(n.sort,s,"A"),!0;case"sort-add-dsc":return n.sort=Qo(n.sort,s,"D"),!0;case"group":return n.groupBy=Xo(n.groupBy,s),!0;case"group-add":return n.groupBy=Xo(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=Nc(n.filter,s),!0;case"remove-filters":return n.filter={filter:""},!0;case"agg-avg":return n.aggregations=ct(n.aggregations,s,zc),!0;case"agg-high":return n.aggregations=ct(n.aggregations,s,Vc),!0;case"agg-low":return n.aggregations=ct(n.aggregations,s,Bc),!0;case"agg-count":return n.aggregations=ct(n.aggregations,s,Fc),!0;case"agg-distinct":return n.aggregations=ct(n.aggregations,s,$c),!0;case"agg-sum":return n.aggregations=ct(n.aggregations,s,Kc),!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;case"table-settings":return e({type:"tableSettings"}),!0;default:}}return!1};import{ContextMenuProvider as sb}from"@vuu-ui/vuu-popups";import{Button as ib,useIdMemo as lb}from"@salt-ds/core";import{buildColumnMap as ah,getColumnStyle as ch,isGroupColumn as uh,metadataKeys as dh,notHidden as ph,visibleColumnAtIndex as fh}from"@vuu-ui/vuu-utils";import{useCallback as ea,useMemo as ta}from"react";import{isGroupColumn as Vl,isJsonColumn as Wm,isJsonGroup as _m,metadataKeys as Gm,notHidden as Um}from"@vuu-ui/vuu-utils";import Xm from"classnames";import{memo as Qm,useCallback as Bl}from"react";import{getColumnStyle as Lm,metadataKeys as km}from"@vuu-ui/vuu-utils";import{createContext as Wc,useCallback as ox,useContext as _c,useMemo as sx}from"react";import{jsx as lx}from"react/jsx-runtime";var Gc={isDragSource:!1,isDropTarget:!1,register:()=>{}},Uc=()=>console.log("have you forgotten to provide a DragDrop Provider ?"),Xc=Wc({registerDragDropParty:Uc});var Yo=n=>{var o,s;let{dragSources:e,dropTargets:t,registerDragDropParty:r}=_c(Xc);if(n){let i=(o=e==null?void 0:e.has(n))!=null?o:!1,l=(s=t==null?void 0:t.has(n))!=null?s:!1;return{isDragSource:i,isDropTarget:l,register:r}}else return Gc};import{useCallback as Nt,useMemo as ou,useRef as Qe,useState as su}from"react";import{useCallback as Ht,useMemo as ru,useRef as ls}from"react";var Qc=["left","right"],Zc=["top","bottom"],gn=":not(.wrapped)",jo=':not([aria-hidden="true"])',qo=n=>{let e=n.cloneNode(!0);return e.removeAttribute("id"),e.dataset.index="-1",e},Yc=(n,e="width",t=!1)=>{let r=e==="width"?"left":"top",{[e]:o,[r]:s}=n.getBoundingClientRect(),{padEnd:i=!1,padStart:l=!1}=n.dataset,a=getComputedStyle(n),[c,u]=e==="width"?Qc:Zc,p=l&&!t?0:parseInt(a.getPropertyValue(`margin-${c}`),10),d=i&&!t?0:parseInt(a.getPropertyValue(`margin-${u}`),10),f=o;if(parseInt(a.getPropertyValue("flex-shrink"),10)>0){let h=parseInt(a.getPropertyValue("flex-basis"),10);!isNaN(h)&&h>0&&(f=h)}return[s,p+f+d]},jc={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"}},fe=n=>jc[n],Jo=(n,e)=>{let t=n.find(r=>r.id===e);if(t)return t},es=(n,e)=>{n.splice(e,1);for(let t=e;t<n.length;t++)n[t].currentIndex-=1},ut=(n,e,t,r,o)=>{var p;let s=[],{DIMENSION:i}=fe(e),l=Array.from(t?n.querySelectorAll(t):n.children),a=l.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,a-1):a-1;for(let d=c;d<=u;d++){let f=l[d],[m,h]=Yc(f,i),x=d===a-1,v=f.id,C=parseInt((p=f.dataset.index)!=null?p:"-1");s.push({currentIndex:d,dataIndex:isNaN(C)?-1:C,id:v,index:d,isDraggedItem:o===v,isLast:x,isOverflowIndicator:f.dataset.index==="overflow",element:f,start:m,end:m+h,size:h,mid:m+h/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 l=s.start+i,a=s.end,c={...o,start:l,mid:Math.floor(l+(a-l)/2),end:a},u=o.start,p=o.end+i,d={...s,start:u,mid:Math.floor(u+(p-u)/2),end:p};n.splice(t,2,d,c)}else{let l=s.start,a=s.end-i,c={...o,start:l,mid:Math.floor(l+(a-l)/2),end:a},u=o.start-i,p=o.end,d={...s,start:u,mid:Math.floor(u+(p-u)/2),end:p};n.splice(r,2,c,d)}},dt=(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 l=r-1;l>=0;l--){let a=n[l];if(i>a.mid)return l<o?s:a}}else{let i=Math.round(e);for(let l=0;l<r;l++){let a=n[l];if(i<a.mid)return l>o?s:a}}throw Error("no dropTraget identified")};function ts(n,e){let{height:t,left:r,top:o,width:s}=n,{height:i,width:l}=e;return{height:Math.min(t,i),left:r,top:o,width:Math.min(s,l)}}var ns=(n,e,t)=>{if(e===t)return n;{let r=n.slice(),[o]=r.splice(e,1);if(t===-1)return r.concat(o);{let s=(t>e,0);return r.splice(t+s,0,o),r}}};import{useForkRef as qc}from"@salt-ds/core";function rs(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=rs(n[e]))&&(r&&(r+=" "),r+=t);else for(e in n)n[e]&&(r&&(r+=" "),r+=e);return r}function bn(){for(var n,e,t=0,r="";t<arguments.length;)(n=arguments[t++])&&(e=rs(n))&&(r&&(r+=" "),r+=e);return r}import{forwardRef as Jc,useCallback as eu}from"react";import{Portal as tu}from"@vuu-ui/vuu-popups";import{jsx as os}from"react/jsx-runtime";var nu=n=>n.split(" ").map(e=>`vuuDraggable-${e}`),yn=Jc(function({wrapperClassName:e,element:t,onTransitionEnd:r,style:o,scale:s=1},i){let l=eu(c=>{c&&(c.innerHTML="",c.appendChild(t),s!==1&&(c.style.transform=`scale(${s},${s})`))},[t,s]),a=qc(i,l);return os(tu,{children:os("div",{className:bn("vuuDraggable",...nu(e)),ref:a,onTransitionEnd:r,style:o})})}),pr=n=>{let e=document.createElement("div");return e.className="vuuDraggable-spacer",n&&e.addEventListener("transitionend",()=>{n.current=!1}),e},ss=()=>{let n=document.createElement("div");return n.className="vuuDraggable-dropIndicatorPosition",n},is=n=>{let e=document.createElement("div");return e.className="vuuDraggable-dropIndicator",n&&e.addEventListener("transitionend",()=>{n.current=!1}),e};var as=()=>{let n=ls(0),e=ls(!1),t=ru(()=>[pr(e),pr()],[]),r=Ht(()=>t.forEach(a=>a.remove()),[t]),o=Ht((a,c="width")=>{let[u,p]=t;n.current=requestAnimationFrame(()=>{e.current=!0,u.style.cssText=`${c}: 0px`,p.style.cssText=`${c}: ${a}px`,t[0]=p,t[1]=u})},[t]),s=Ht(()=>{n.current&&(cancelAnimationFrame(n.current),n.current=0)},[]),i=Ht((a,c,u,p=!1,d="static",f="horizontal")=>{if(c){let m=f==="horizontal"?"width":"height",[h,x]=t;if(s(),p)e.current?(r(),h.style.cssText=`${m}: ${u}px`,x.style.cssText=`${m}: 0px`,d==="fwd"?(c.element.before(h),c.element.after(x)):(c.element.after(h),c.element.before(x))):d==="fwd"?c.element.after(x):c.element.before(x),o(u,m);else if(d==="static")h.style.cssText=`${m}: ${u}px`,c.element.before(h);else throw Error("useDragDisplacers currently only supports noTransition for static displacement");d!=="static"&&dr(a,d)}},[o,s,r,t]),l=Ht((a,c,u,p=!1,d="static",f="horizontal")=>{let m=f==="horizontal"?"width":"height",[h,x]=t;s(),p?(e.current?(r(),h.style.cssText=`${m}: ${u}px`,x.style.cssText=`${m}: 0px`,c.element.before(h),c.element.after(x)):d==="fwd"?c.element.after(x):c.element.before(x),o(u,m)):(h.style.cssText=`${m}: ${u}px`,c.element.after(h)),d!=="static"&&dr(a,d)},[o,s,r,t]);return{displaceItem:i,displaceLastItem:l,clearSpacers:r}};var cs=({draggableRef:n,onDrop:e,orientation:t="horizontal",containerRef:r,itemQuery:o="*",selected:s,viewportRange:i})=>{let l=Qe(),a=Qe(!1),c=Qe(-1),u=Qe([]),p=Qe(!1),[d,f]=su(!1),{clearSpacers:m,displaceItem:h,displaceLastItem:x}=as(),v=Qe(),C=`:is(${o}${gn}${jo},.vuuOverflowContainer-OverflowIndicator)`,y=S=>u.current.findIndex(M=>M.id===S.id),b=Qe();b.current=i;let T=Nt(()=>{m()},[m]),g=Nt((S,M,I)=>{let{current:L}=r,{current:k}=v;if(L&&k){u.current=ut(L,t,C,b.current);let{size:O}=k,N=c.current+O/2,{current:H}=u,V=dt(H,N,"fwd");if(V){let B=y(V),W=H[B];I&&S==="fwd"?x(H,H[H.length-1],O,!1,"static",t):h(H,W,O,!0,"static",t)}}},[r,h,x,C,t]),w=Nt(S=>{let I=S.target.closest(o);I.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&&I){let{SCROLL_SIZE:k,CLIENT_SIZE:O}=fe(t),{id:A}=I,{[k]:N,[O]:H}=L;a.current=N>H;let V=u.current=ut(L,t,C,i,A);console.log({dropTargets:V});let z=Ot(V),B=V[z];B&&L&&(v.current=B,(B.isLast?x:h)(V,B,B.size,!1,"static",t))}},[r,h,x,C,o,t,s,i]),[D,P]=ou(()=>{let S=!1;return[L=>{if(!S){S=!0;let k=L.element.querySelector(".vuuPopupMenu");if(k){let O=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});k.dispatchEvent(O)}}},L=>{if(S){S=!1;let k=L.element.querySelector(".vuuPopupMenu");if(k){let O=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});k.dispatchEvent(O)}}}]},[]),E=Nt((S,M)=>{let{current:I}=v;if(I&&n.current&&r.current){c.current=S;let{current:L}=u,k=dt(L,S,M);if(k&&!k.isDraggedItem)if(k.isOverflowIndicator)f(p.current=!0),D(k);else{let{size:O}=I;(y(k)===L.length-1?x:h)(L,k,O,!0,M,t);let H=L.at(-1);P(H),f(p.current=!1)}l.current=M}},[r,h,x,n,P,t,D]),R=Nt(()=>{var L;m();let{current:S}=u,M=Ot(S),I=S[M];if(I&&(l.current=void 0,p.current?e(I.index,-1):e(I.index,M)),f(!1),r.current){let k=(L=r.current)==null?void 0:L.scrollTop;M<S.length&&(r.current.scrollTop=k)}},[m,r,e]);return{beginDrag:w,drag:E,drop:R,handleScrollStart:T,handleScrollStop:g,revealOverflowedItems:d}};import{useCallback as zt,useRef as Ee,useState as ps}from"react";import{useCallback as us,useMemo as iu}from"react";var ds=()=>{let n=iu(()=>ss(),[]),e=us(()=>n.remove(),[n]);return{positionDropIndicator:us((r,o="end")=>(o==="end"?r.element.after(n):r.element.before(n),n),[n]),clearSpacer:e}};import{jsx as cu}from"react/jsx-runtime";var lu=':not([data-overflowed="true"])',au=':not([aria-hidden="true"])',fs=({draggableRef:n,onDrop:e,orientation:t="horizontal",containerRef:r,itemQuery:o="*",selected:s,viewportRange:i})=>{let l=Ee(),a=Ee(null),c=Ee(null),u=Ee(""),p=Ee(!1),d=Ee(-1),f=Ee([]),m=Ee(!1),[h,x]=ps(!1),[v,C]=ps(),{clearSpacer:y,positionDropIndicator:b}=ds(),T=Ee(),g=`:is(${o}${lu}${au},[data-overflow-indicator])`,w=L=>f.current.findIndex(k=>k.id===L.id),D=(L,k,O)=>{L.start+=k,L.mid+=k,L.end+=k,typeof O=="number"&&(L.currentIndex+=O)},P=Ee();P.current=i;let E=zt(()=>{y()},[y]),R=zt((L,k,O)=>{let{current:A}=r,{current:N}=T;if(A&&N){f.current=ut(A,t,g,P.current);let{size:H}=N,z=d.current+H/2,{current:B}=f,W=dt(B,z,"fwd");W&&b(O&&L==="fwd"?B[B.length-1]:W,"start")}},[r,b,g,t]),S=zt(L=>{let O=L.target.closest(o);O.ariaSelected&&Array.isArray(s)&&s.length>1&&console.log("its a selected element, and we have a multi select");let{current:A}=r;if(A&&O){let{SCROLL_SIZE:N,CLIENT_SIZE:H}=fe(t),{id:V}=O,{[N]:z,[H]:B}=A;p.current=z>B;let W=f.current=ut(A,t,g,i),Q=Jo(W,V);if(Q&&A){let F=w(Q);es(W,F),T.current=Q;let{current:$}=P;if($!=null&&$.atEnd)for(let Z=0;Z<W.length;Z++)D(W[Z],Q.size);for(let Z=F;Z<W.length;Z++)D(W[Z],-Q.size,-1);let[G,oe]=Q.isLast?[W[W.length-1],"end"]:[W[F],"start"];c.current=G,u.current=oe;let we=b(G,oe),{top:_,left:U,width:J}=we.getBoundingClientRect(),q={top:Q.isLast?$!=null&&$.atEnd&&!$.atStart?_+Q.size-2:_-2:_-Q.size-2,left:U,width:J,height:2};C(cu(yn,{wrapperClassName:"dropIndicatorContainer",style:q,ref:a,element:is()}))}}},[o,s,r,t,g,i,b]),M=zt((L,k)=>{let{current:O}=c,{current:A}=T;if(A&&n.current&&r.current){let N=t==="horizontal"?"left":"top";d.current=L;let{current:H}=f,V=dt(H,L,k);if(V&&V.index!==(O==null?void 0:O.index)){if(V.isOverflowIndicator)x(m.current=!0);else if(a.current){if(w(V)===H.length-1){let B=H[H.length-1],Q=b(B,"start").getBoundingClientRect();a.current.style[N]=`${Q.top}px`}else{let W=b(V,"start").getBoundingClientRect();a.current.style[N]=`${W.top}px`}x(m.current=!1)}c.current=V,l.current=k}}},[n,r,t,b]),I=zt(()=>{y();let{current:L}=T,{current:k}=c,{current:O}=u,{current:A}=P;if(L&&A&&k){let{index:N}=L,H=O==="start",{index:V,currentIndex:z}=k;c.current=null,l.current=void 0,m.current?e(N,-1):N<V?e(N,H?z:z+1):e(N,H?V:V+1),C(void 0)}x(!1)},[y,e]);return{beginDrag:S,drag:M,drop:I,dropIndicator:v,handleScrollStart:E,handleScrollStop:R,revealOverflowedItems:h}};import{useCallback as Re,useLayoutEffect as uu,useRef as me,useState as du}from"react";import{useCallback as ms,useRef as xn}from"react";var hs=({containerRef:n,onScrollingStopped:e,orientation:t="vertical"})=>{let r=xn(null),o=xn(!1),s=xn(0),i=xn("fwd"),l=ms((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]),a=ms((c,u,p=30)=>{let{current:d}=n;if(d){let{SCROLL_POS:f,SCROLL_SIZE:m,CLIENT_SIZE:h}=fe(t),{[f]:x,[m]:v,[h]:C}=d,y=c==="fwd"?v-C-x:x,b=Math.min(y,p);c==="fwd"?(i.current="fwd",d[f]=s.current=x+b):(i.current="bwd",d[f]=s.current=x-b),b===y?l(!0):(o.current=!0,r.current=window.setTimeout(()=>{a(c,u,p)},100))}},[n,t,l]);return{isScrolling:o,startScrolling:a,stopScrolling:l}};import{jsx as yu}from"react/jsx-runtime";var pu={beginDrag:()=>{},drag:()=>{},draggableRef:{current:null},drop:()=>{},isDragging:!1,isScrolling:!1,handleScrollStart:()=>{},handleScrollStop:()=>{},revealOverflowedItems:!1},gs={start:0,end:1e3,contraStart:0,contraEnd:1e3},fu=()=>pu,mu=3,hu=(n,e)=>n.closest(e),gu=n=>n.dataset.index==="overflow"&&n.parentElement!==null&&n.parentElement.classList.contains("overflowed"),bu=(n,e)=>{let t=`:is(${e}${gn},.vuuOverflowContainer-OverflowIndicator)`,o=Array.from(n.querySelectorAll(t)).pop();return[o,gu(o)]},vn=({allowDragDrop:n,containerRef:e,draggableClassName:t,itemQuery:r="*",onDragStart:o,onDrop:s,onDropSettle:i,orientation:l,...a})=>{let c=me({start:0,end:0,contraStart:0,contraEnd:0}),[u,p]=du({draggable:void 0,draggedItemIndex:-1,isDragging:!1}),d=me(null),f=me(),m=me(null),h=me(!1),x=me({x:0,y:0}),v=me({x:0,y:0}),C=me({x:0,y:0}),y=me(null),b=me(-1),T=me(-1),g=me(),{isDragSource:w,isDropTarget:D,register:P}=Yo(a.id);a.id&&(w||D)&&P(a.id);let E=Re(()=>{var J;let{current:_}=T,U=(J=e.current)==null?void 0:J.querySelector(`${r}[data-index="${_}"]`);U&&U.classList.remove("vuuDropTarget-settling"),T.current=-1,i==null||i(_),p(q=>({...q,draggable:void 0}))},[e,r,i]),R=Re(_=>{if(e.current){let{POS:U,SCROLL_POS:J,SCROLL_SIZE:q,CLIENT_SIZE:Z}=fe(l),{[J]:K,[q]:Y,[Z]:ee}=e.current,j=Y-ee,se=K<j,ue=c.current.end,ie=K>0&&_-x.current[U]<=c.current.start,de=se&&_-x.current[U]>=ue;return ie?"bwd":de?"fwd":""}},[e,l]),S=n===!0||n==="natural-movement"?cs:n==="drop-indicator"?fs:fu,M=Re((_,U,J)=>{var q;(q=g.current)==null||q.call(g,_,U,J)},[]),{isScrolling:I,startScrolling:L,stopScrolling:k}=hs({containerRef:e,onScrollingStopped:M,orientation:l}),O=Re((_,U)=>{b.current=U,s==null||s(_,U),T.current=U},[s]),{beginDrag:A,drag:N,drop:H,handleScrollStart:V,handleScrollStop:z,...B}=S({...a,containerRef:e,draggableRef:d,isDragSource:w,isDropTarget:D,itemQuery:r,onDrop:O,orientation:l});g.current=z;let W=Re(_=>{let{CLIENT_POS:U,CONTRA_CLIENT_POS:J,CONTRA_POS:q,POS:Z}=fe(l),{clientX:K,clientY:Y}=_,{[U]:ee,[J]:j}=_,se=v.current[Z],ue=v.current[q],ie=Math.abs(se-ee);if((w?Math.abs(ue-j):0)-ie>5&&(c.current=gs),v.current.x=K,v.current.y=Y,c.current===gs&&d.current){let Xe=v.current.x-x.current.x,ke=v.current.y-x.current.y;d.current.style.top=`${ke}px`,d.current.style.left=`${Xe}px`}else if(ie>0&&d.current){let Xe=se<ee?"fwd":"bwd",ke=R(ee),It=v.current[Z]-x.current[Z];if(ke&&h.current&&!I.current?(V(),L(ke,1)):!ke&&I.current&&k(),!I.current){let it=Math.round(Math.max(c.current.start,Math.min(c.current.end,It))),ye=l==="horizontal"?"left":"top";d.current.style[ye]=`${it}px`,N(it,Xe)}}},[N,d,R,V,w,I,l,L,k]),Q=Re(()=>{document.removeEventListener("mousemove",W,!1),document.removeEventListener("mouseup",Q,!1),y.current=d.current,H(),p(_=>({..._,draggedItemIndex:-1,isDragging:!1})),f.current=void 0},[W,d,H]),F=Re(_=>{let{clientX:U,clientY:J,target:q}=_,Z=hu(q,r),{current:K}=e;if(K&&Z){let{CONTRA:Y,CONTRA_END:ee,DIMENSION:j,END:se,SCROLL_SIZE:ue,CLIENT_SIZE:ie,START:de}=fe(l);f.current=Z;let{[ue]:Xe,[ie]:ke}=K;h.current=Xe>ke;let[It,it]=bu(K,r),ye=K.getBoundingClientRect(),lt=Z.getBoundingClientRect(),At=lt[j],{[de]:wc,[se]:Sc}=It.getBoundingClientRect();x.current.x=U-lt.left,x.current.y=J-lt.top,c.current.start=ye[de],c.current.end=it?Math.max(wc,ye.right-At):h.current?ye[de]+ye[j]-At:Sc-At,c.current.contraStart=ye[Y],c.current.contraEnd=ye[ee],A(_);let{dataset:{index:Ec="-1"}}=Z;p({isDragging:!0,draggable:yu(yn,{element:qo(Z),onTransitionEnd:E,ref:d,style:ts(lt,ye),wrapperClassName:t}),draggedItemIndex:parseInt(Ec)}),o==null||o(),document.addEventListener("mousemove",W,!1),document.addEventListener("mouseup",Q,!1)}},[A,e,W,Q,t,d,r,o,l,E]),$=Re(_=>{let{CLIENT_POS:U,POS:J}=fe(l),{[U]:q}=_;Math.abs(q-C.current[J])>mu&&e.current&&(m.current&&(window.clearTimeout(m.current),m.current=null),document.removeEventListener("mousemove",$),document.removeEventListener("mouseup",G,!1),F(_))},[e,A,l]),G=Re(()=>{m.current&&(window.clearTimeout(m.current),m.current=null),document.removeEventListener("mousemove",$,!1),document.removeEventListener("mouseup",G,!1)},[$]),oe=Re(_=>{console.log("useDragDropNext onMouseDown");let{current:U}=e;if(U&&!_.defaultPrevented){let{clientX:J,clientY:q}=_;v.current.x=C.current.x=J,v.current.y=C.current.y=q,document.addEventListener("mousemove",$,!1),document.addEventListener("mouseup",G,!1),_.persist(),m.current=window.setTimeout(()=>{document.removeEventListener("mousemove",$,!1),document.removeEventListener("mouseup",G,!1),F(_.nativeEvent)},500)}},[e,F,$,G]),{current:we}=y;return uu(()=>{if(we&&e.current){let _=b.current,U=e.current.querySelector(`${r}[data-index="${_}"]`);U?(U.classList.add("vuuDropTarget-settling"),requestAnimationFrame(()=>{let{top:J,left:q}=U.getBoundingClientRect(),{top:Z,left:K}=we.getBoundingClientRect();K!==q||Z!==J?(we.classList.add("vuuDraggable-settling"),we.style.top=`${J}px`,we.style.left=`${q}px`):E()})):console.log(`dont have the dropped item (at ${_})`),y.current=null}},[e,r,we,E]),{...B,...u,isScrolling:I,onMouseDown:n?oe:void 0}};import{useCallback as bs,useLayoutEffect as xu,forwardRef as vu,useRef as fr}from"react";import{Input as Cu,useControlled as ys}from"@salt-ds/core";import{jsx as xs}from"react/jsx-runtime";var mr="vuuEditableLabel",pt=vu(function({className:e,defaultEditing:t,defaultValue:r,editing:o,onChange:s,onEnterEditMode:i,onExitEditMode:l,value:a,...c},u){let p=fr(null),d=fr(!1),[f,m]=ys({controlled:a,default:r!=null?r:"",name:"EditableLabel",state:"value"}),[h,x]=ys({controlled:o,default:t!=null?t:!1,name:"EditableLabel",state:"editing"}),v=bs(E=>{x(d.current=E)},[]),C=fr(f);xu(()=>{h&&p.current!==null&&(p.current.select(),p.current.focus())},[h,p]);let y=bs(()=>{v(!0),i&&i()},[i,v]),b=({cancelEdit:E=!1,allowDeactivation:R=!1}={})=>{v(!1);let S=C.current;S!==f&&(E?m(S):C.current=f),l&&l(S,f,R,E)},T=E=>{let{value:R}=E.target;m(R),s&&s(R)},g=()=>{y()},w=()=>{d.current&&b({allowDeactivation:!0})},D=E=>{h&&E.key==="Enter"?(E.stopPropagation(),b()):E.key==="ArrowRight"||E.key==="ArrowLeft"?E.stopPropagation():E.key==="Escape"&&b({cancelEdit:!0})},P=bn(mr,e,{[`${mr}-editing`]:h});return xs("div",{...c,className:P,onDoubleClick:g,"data-text":f,ref:u,children:h?xs(Cu,{inputProps:{className:`${mr}-input`},value:f,onBlur:w,onChange:T,onKeyDown:D,inputRef:p,style:{padding:0},textAlign:"left",variant:"secondary"}):f})});import{partition as Ss}from"@vuu-ui/vuu-utils";import Mu from"classnames";var Tu={},wu={},Cn={};function te(n,e,t="component"){Cn[n]=e,t==="container"?Tu[n]=!0:t==="view"&&(wu[n]=!0)}import{Button as vs,useControlled as Su}from"@salt-ds/core";import Cs from"classnames";import{useCallback as Eu}from"react";import{jsx as Ft,jsxs as Du}from"react/jsx-runtime";var ze="vuuDrawer",Ts=n=>typeof n=="string"?n:n+"px",Ru=(n,e,t)=>{let r=e!==void 0,o=t!==void 0;if(!(!n&&!o&&!r))return!o&&!r?n:{...n,"--drawer-size":r?Ts(e):void 0,"--drawer-peek-size":o?Ts(t):void 0}},ws=({children:n,className:e,clickToOpen:t,defaultOpen:r,sizeOpen:o,sizeClosed:s,style:i,open:l,position:a="left",inline:c,onClick:u,peekaboo:p=!1,toggleButton:d,...f})=>{let[m,h]=Su({controlled:l,default:r!=null?r:!1,name:"Drawer",state:"open"}),x=Cs(ze,e,`${ze}-${a}`,{[`${ze}-open`]:m,[`${ze}-inline`]:c,[`${ze}-over`]:!c,[`${ze}-peekaboo`]:p}),v=Eu(()=>{h(!m)},[m,h]),C=Ru(i,o,s),y=t?v:u,b=()=>Ft("div",{className:Cs("vuuToggleButton-container"),children:m?Ft(vs,{"aria-label":"close",onClick:v,"data-icon":"close",variant:"secondary"}):Ft(vs,{"aria-label":"open",onClick:v,"data-icon":"close",variant:"secondary"})});return Du("div",{...f,className:x,onClick:y,style:C,children:[d=="start"?b():null,Ft("div",{className:`${ze}-liner`,children:Ft("div",{className:`${ze}-content`,children:n})}),d=="end"?b():null]})};ws.displayName="Drawer";var hr=ws;import{jsx as ku,jsxs as Iu}from"react/jsx-runtime";var Pu=n=>n.type===hr,Lu=({props:{position:n="left"}})=>n.match(/top|bottom/),Es=n=>{let{children:e,className:t,id:r,style:o}=n,s="vuuDockLayout",[i,l]=Ss(e,Pu),[a,c]=Ss(i,Lu),u=a.length===0?"horizontal":c.length===0?"vertical":"both",p=Mu(s,t,`${s}-${u}`);return Iu("div",{className:p,id:r,style:o,children:[i,ku("div",{className:`${s}-content`,children:l})]})};Es.displayName="DockLayout";te("DockLayout",Es,"container");import{forwardRef as Au}from"react";import{jsx as Ou}from"react/jsx-runtime";var gr=Au(function({resizeable:e,...t},r){return Ou("div",{...t,className:"Component",ref:r})});gr.displayName="Component";var br=gr;te("Component",gr);import iC,{isValidElement as lC}from"react";var Hu={},Ie=(n,e)=>{var r;let t=le(n);return(r=t[e])!=null?r:t[`data-${e}`]},le=n=>(n==null?void 0:n.props)||n||Hu;import{Children as Nu,isValidElement as Rs,useLayoutEffect as zu,useMemo as Fu,useRef as $u}from"react";var Vu=[],Bu=0,ft=n=>{let e=Array.isArray(n),t=e?n.length:Nu.count(n);return e&&n.every(Rs)?n:t===1&&!e&&Rs(n)?[n]:t>1?n:Vu},Ds=(n,e)=>{let t=$u(!1);zu(()=>{t.current?n():t.current=!0},e)},Tn=n=>Fu(()=>n!=null?n:`vuu-${++Bu}`,[n]);var xr={north:1,east:2,south:4,west:8,header:16,centre:32,absolute:64},vr={AFTER:"after",BEFORE:"before"},Fe=Object.freeze({North:Ze("north"),East:Ze("east"),South:Ze("south"),West:Ze("west"),Header:Ze("header"),Centre:Ze("centre"),Absolute:Ze("absolute")});function Ze(n){return Object.freeze({offset:n==="north"||n==="west"?0:n==="south"||n==="east"?1:NaN,valueOf:function(){return xr[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 LC=Fe.North,kC=Fe.South,IC=Fe.East,AC=Fe.West,OC=Fe.Header,HC=Fe.Centre;var{north:Wu,south:_u,east:Gu,west:Uu}=xr,_C=Gu+Uu,GC=Wu+_u;import{PopupService as Tr}from"@vuu-ui/vuu-popups";import Xu from"classnames";import{jsx as Ms}from"react/jsx-runtime";function Ps(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 Cr="vuuDropMenu",Ls=({className:n,dropTarget:e,onHover:t,orientation:r})=>{let o=e.toArray();return Ms("div",{className:Xu(Cr,n,`${Cr}-${r}`),onMouseLeave:()=>t(null),children:o.map((s,i)=>Ms("div",{className:`${Cr}-item`,"data-icon":i===0?"column-2A":"column-2B",onMouseEnter:()=>t(s)},i))})};import{jsx as ed}from"react/jsx-runtime";var wr=!1,$t=null,xe=null,Qu=n=>$t=n,Zu=([n,e])=>`M${n},${e}`,Yu=([n,e])=>`L${n},${e}`,ks=([n,...e])=>`${Zu(n)} ${e.map(Yu)}Z`,ju=n=>{if(n){let[e,t,r,o,s,i,l,a]=n;return`M${e},${t} L${r},${o} M${s},${i} L${l},${a}`}else return""};function qu(){if(document.getElementById("hw-drag-canvas")===null){let n=document.getElementById("root"),e=document.createElement("div");e.id="hw-drag-canvas",e.innerHTML=`
2
2
  <svg width="100%" height="100%">
3
3
  <path id="hw-drop-guides" />
4
4
  <path
@@ -14,5 +14,8 @@ var qr=(n,e,t)=>{if(!e.has(n))throw TypeError("Cannot "+t)};var Ee=(n,e,t)=>(qr(
14
14
  />
15
15
  </path>
16
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};
17
+ `,document.body.insertBefore(e,n)}}var Vt=class{constructor(){this.currentPath=null;this.tabMode=null;qu()}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=ks(r),s=document.getElementById("vuu-drop-outline");s==null||s.setAttribute("d",o),this.currentPath=o}clear(){$t=null,wn(),document.body.classList.remove("drawing"),Tr.hidePopup()}get hoverDropTarget(){return $t}getPoints(e,t,r,o,s=0,i=0,l=0){let a=this.tabMode==="tab-only";if(i===0)return[[e,t+l],[e,t+l],[e,t],[e+i,t],[e+i,t],[e+r,t],[e+r,t+o],[e,t+o]];if(a){let c=s;return[[c,t],[c,t],[c+i,t],[c+i,t],[c+i,t+l],[c+i,t+l],[c,t+l],[c,t+l]]}else return s===0?[[e,t+l],[e,t+l],[e,t],[e+i,t],[e+i,t+l],[e+r,t+l],[e+r,t+o],[e,t+o]]:[[e,t+l],[e+s,t+l],[e+s,t],[e+s,t],[e+s,t+l],[e+r,t+l],[e+r,t+o],[e,t+o]]}draw(e,t){let o=wr;if($t!==null)this.drawTarget($t);else if(wr=e.nextDropTarget!=null,e.pos.tab?Ju(e):xe&&wn(),this.drawTarget(e,t),wr){let[s,i,l]=Ps(e);{let a=ed(Ls,{dropTarget:e,onHover:Qu,orientation:l});Tr.showPopup({left:s,top:i,component:a})}}else Tr.hidePopup()}drawTarget(e,t){let o=e.getTargetDropOutline(6,t);if(o){let{l:s,t:i,r:l,b:a,tabLeft:c,tabWidth:u,tabHeight:p,guideLines:d}=o,f=l-s,m=a-i;if(this.currentPath){let y=document.getElementById("vuu-drop-outline");y==null||y.setAttribute("d",this.currentPath)}let h=this.getPoints(s,i,f,m,c,u,p),x=ks(h),v=document.getElementById("hw-drop-outline-animate");v==null||v.setAttribute("to",x),v==null||v.beginElement(),this.currentPath=x;let C=document.getElementById("hw-drop-guides");C==null||C.setAttribute("d",ju(d))}}},Is="transition:margin-left .4s ease-out;margin-left: 63px",As="transition:margin-left .4s ease-out;margin-left: 0px";function Ju(n){var l,a;let{AFTER:e,BEFORE:t}=vr,{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=(l=document.getElementById(s))==null?void 0:l.querySelector(u),i?(xe===null||xe!==i)&&(i.style.cssText=Is,xe&&(xe.style.cssText=As),xe=i):wn()}else if((o==null?void 0:o.positionRelativeToTab)===t){if(xe===null){let c=".vuuHeader-title";i=(a=document.getElementById(s))==null?void 0:a.querySelector(c),i.style.cssText=Is,xe=i}}else wn()}function wn(){xe&&(xe.style.cssText=As,xe=null)}var bT=new Vt;import td from"classnames";import{forwardRef as nd}from"react";import{jsx as rd}from"react/jsx-runtime";var Hs=nd(function({children:e,className:t,dropTarget:r,resizeable:o,...s},i){let l=td("DraggableLayout",t);return rd("div",{className:l,ref:i,...s,children:e})}),Ns="DraggableLayout";Hs.displayName=Ns;te(Ns,Hs,"container");import{useForkRef as Td}from"@salt-ds/core";import wd from"classnames";import{forwardRef as Sd}from"react";import{getUniqueId as hd}from"@vuu-ui/vuu-utils";import Gt,{useCallback as Dn,useMemo as Us,useRef as Mn,useState as gd}from"react";import od from"classnames";import{jsx as sd}from"react/jsx-runtime";var zs="vuuPlaceholder",Sn=({className:n,closeable:e,flexFill:t,resizeable:r,shim:o,...s})=>sd("div",{className:od(zs,n,{[`${zs}-shim`]:o}),...s,"data-placeholder":!0,"data-resizeable":!0});Sn.displayName="Placeholder";te("Placeholder",Sn);import id from"classnames";import ld,{useCallback as Kt,useRef as En,useState as ad}from"react";import{jsx as Fs}from"react/jsx-runtime";var $s=ld.memo(function({column:e,index:t,onDrag:r,onDragEnd:o,onDragStart:s,style:i}){let l=En(),a=En(null),c=En(0),[u,p]=ad(!1),d=Kt(({key:g,shiftKey:w})=>{let D=w?10:1;e&&g==="ArrowDown"?r(t,D):e&&g==="ArrowUp"||!e&&g==="ArrowLeft"?r(t,-D):!e&&g==="ArrowRight"&&r(t,D)},[e,t,r]),f=Kt(g=>{let{key:w}=g;(e&&(w==="ArrowUp"||w==="ArrowDown")||!e&&(w==="ArrowLeft"||w==="ArrowRIght"))&&(s(t),d(g),m.current=d)},[e,d,t,s]),m=En(f),h=g=>m.current(g),x=Kt(g=>{l.current=!0;let w=g[e?"clientY":"clientX"],D=w-c.current;w&&w!==c.current&&r(t,D),c.current=w},[e,t,r]),v=Kt(()=>{var g;window.removeEventListener("mousemove",x,!1),window.removeEventListener("mouseup",v,!1),o(),p(!1),(g=a.current)==null||g.focus()},[x,o,p]),C=Kt(g=>{c.current=e?g.clientY:g.clientX,s(t),window.addEventListener("mousemove",x,!1),window.addEventListener("mouseup",v,!1),g.preventDefault(),p(!0)},[e,x,v,t,s,p]),y=()=>{var g;l.current?l.current=!1:(g=a.current)==null||g.focus()},b=()=>{m.current=f},T=id("Splitter","focusable",{active:u,column:e});return Fs("div",{className:T,"data-splitter":!0,ref:a,role:"separator",style:i,onBlur:b,onClick:y,onKeyDown:h,onMouseDown:C,tabIndex:0,children:Fs("div",{className:"grab-zone"})})});import{uuid as JT}from"@vuu-ui/vuu-utils";import tw from"react";var Bs={},Vs="auto";var mt=n=>{let{style:{width:e=Vs,height:t=Vs}=Bs}=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 Ks(n){let{style:{flex:e,flexGrow:t,flexShrink:r,flexBasis:o}=Bs}=n.props;return typeof e=="number"||o===0&&t===1&&r===1?!0:typeof o!="number"}var cd={},Wt=1,_t=2,ud=n=>typeof n.intrinsicSize=="number",dd=(n,e)=>{let t={};return n.forEach(r=>{t[r]=Ie(e,r)}),t},Rn=(n,e,t)=>n.map((r,o)=>{var a;let s=Ie(r,"resizeable"),{[e]:i}=(a=mt(r))!=null?a:cd,l=Ks(r);return t?{index:o,flexOpen:l,intrinsicSize:i,resizeable:s,...dd(t,r)}:{index:o,flexOpen:l,intrinsicSize:i,resizeable:s}}),Ws=n=>{let e=n.length,t=n.every(ud),r=Array(e).fill(0);if(t&&e>0&&(r[0]=_t,r[e-1]=_t),e<2)return r;for(let o=0,s=0;o<e-1;o++)n[o].resizeable&&!s&&(s=Wt),r[o]+=s;for(let o=e-1;o>0&&(r[o]&Wt&&(r[o]-=Wt),!n[o].resizeable);o--);return r},_s=(n,e)=>{let t=fd(n,e),r=md(n,e),o=t!==-1&&r!==-1?[t,r]:void 0,s=pd(n,o);return[o,s]};function pd(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 fd(n,e){let t=e,r=!1;for(;t>=1&&!r;)t=t-1,r=Gs(n,t);return t}function md(n,e){let t=e,r=!1,o=n.length;for(;t<o-1&&!r;)t=t+1,r=Gs(n,t);return t===o?-1:t}function Gs(n,e){let{placeholder:t,splitter:r,resizeable:o,intrinsicSize:s}=n[e];return!!(!r&&!s&&(t||o))}var bd=n=>!n.splitter&&!n.placeholder,Qs=({children:n,onSplitterMoved:e,style:t})=>{let r=Mn(null),o=Mn(),s=Mn(),i=Mn([]),[,l]=gd({}),a=x=>{s.current=x,l({})},c=(t==null?void 0:t.flexDirection)==="column",u=c?"height":"width",p=Us(()=>Array.isArray(n)?n:Gt.isValidElement(n)?[n]:[],[n]),d=Dn(x=>{let{current:v}=o;if(v){let[C,y]=_s(v,x);C&&(C.forEach(b=>{var g;let T=(g=r.current)==null?void 0:g.childNodes[b];if(T){let{size:w,minSize:D}=Cd(T,u);v[b].currentSize=w,v[b].minSize=D}}),y&&y.forEach(b=>{var g;let T=(g=r.current)==null?void 0:g.childNodes[b];if(T){let{[u]:w}=T.getBoundingClientRect();v[b].flexBasis=w}}))}},[u]),f=Dn((x,v)=>{s.current&&o.current&&a(xd(s.current,o.current,v,u))},[u]),m=Dn(()=>{let x=o.current;x&&(e==null||e(x.filter(bd))),x==null||x.forEach(v=>{v.currentSize=void 0,v.flexBasis=void 0,v.flexOpen=!1})},[e]),h=Dn(x=>Gt.createElement($s,{column:c,index:x,key:`splitter-${x}`,onDrag:f,onDragEnd:m,onDragStart:d}),[f,m,d,c]);return Us(()=>{let[x,v]=yd(p,u,h,i.current);o.current=v,s.current=x},[p,h,u]),{content:s.current||[],rootRef:r}};function yd(n,e,t,r){let o=Rn(n,e),s=Ws(o),i=[],l=[];for(let a=0;a<n.length;a++){let c=n[a];if(a===0&&s[a]&_t&&(i.push(Xs(a)),l.push({placeholder:!0,shim:!0})),c.key==null){let u=r[a]||(r[a]=hd());i.push(Gt.cloneElement(c,{key:u}))}else i.push(c);l.push(o[a]),a>0&&s[a]&_t?(i.push(Xs(a)),l.push({placeholder:!0})):s[a]&Wt&&(i.push(t(i.length)),l.push({splitter:!0}))}return[i,l]}function xd(n,e,t,r){return vd(e,t)?n.map((s,i)=>{let l=e[i],{currentSize:a,flexOpen:c,flexBasis:u}=l,p=a!==void 0;if(p||c){let{flexBasis:d}=s.props.style||{},f=p?l.currentSize:u;return f!==d?Gt.cloneElement(s,{style:{...s.props.style,flexBasis:f,[r]:"auto"}}):s}else return s}):n}function vd(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:l=0}=i;i.currentSize=l+e;let a=n[t[1]],{currentSize:c=0}=a;return a.currentSize=c-e,!0}function Xs(n){return Gt.createElement(Sn,{shim:n===0,key:`placeholder-${n}`})}function Cd(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 Ed}from"react/jsx-runtime";var Er="hwFlexbox",Zs=Sd(function(e,t){let{breakPoints:r,children:o,column:s,className:i,flexFill:l,gap:a,fullPage:c,id:u,onSplitterMoved:p,resizeable:d,row:f,spacing:m,splitterSize:h,style:x,...v}=e,{content:C,rootRef:y}=Qs({children:o,onSplitterMoved:p,style:x}),b=wd(Er,i,{[`${Er}-column`]:s,[`${Er}-row`]:f,"flex-fill":l,"full-page":c});return Ed("div",{...v,className:b,"data-resizeable":d||void 0,id:u,ref:Td(y,t),style:{...x,gap:a,"--spacing":m},children:C})});Zs.displayName="Flexbox";var Rr=Zs;import{useCallback as Ad}from"react";var Pn={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 sR,useContext as Id,useEffect as iR,useRef as lR,useState as aR}from"react";import cE from"react";import{uuid as Jw}from"@vuu-ui/vuu-utils";import tS from"react";import{uuid as Fw}from"@vuu-ui/vuu-utils";import Vw,{cloneElement as Bw}from"react";import{useCallback as ht}from"react";var he=new Map,ge=new Map;var gt=()=>{let n=ht((i,l)=>{let a=ge.get(i);if(a)return l!==void 0&&a[l]!==void 0?a[l]:l!==void 0?void 0:a},[]),e=ht((i,l,a)=>{if(l===void 0)ge.set(i,a);else if(ge.has(i)){let c=ge.get(i);ge.set(i,{...c,[l]:a})}else ge.set(i,{[l]:a})},[]),t=ht((i,l)=>{if(ge.has(i)){if(l===void 0)ge.delete(i);else if(ge.get(i)[l]){let{[l]:c,...u}=ge.get(i);Object.keys(u).length>0?ge.set(i,u):ge.delete(i)}}},[]),r=ht((i,l)=>{let a=he.get(i);if(a)return l!==void 0?a[l]:a},[]),o=ht((i,l,a)=>{if(l===void 0)he.set(i,a);else if(he.has(i)){let c=he.get(i);he.set(i,{...c,[l]:a})}else he.set(i,{[l]:a})},[]),s=ht((i,l)=>{if(he.has(i)){if(l===void 0)he.delete(i);else if(he.get(i)[l]){let{[l]:c,...u}=he.get(i);Object.keys(u).length>0?he.set(i,u):he.delete(i)}}},[]);return{loadSessionState:n,loadState:r,saveSessionState:e,saveState:o,purgeState:s,purgeSessionState:t}};import{cloneElement as yS}from"react";import uS from"react";import ES from"react";import IS from"react";import{uuid as BS}from"@vuu-ui/vuu-utils";import WS from"react";import{createContext as Ld}from"react";var kd=n=>console.log(`dispatch ${n.type}, have you forgotten to provide a LayoutProvider ?`),js=Ld({dispatchLayoutProvider:kd,version:-1});import{useCallback as BE,useRef as KE}from"react";import{jsx as bR}from"react/jsx-runtime";var be=()=>{let{dispatchLayoutProvider:n}=Id(js);return n};import{jsx as Od}from"react/jsx-runtime";var qs=function(e){let{path:t}=e,r=be(),o=Ad(s=>{r({type:Pn.SPLITTER_RESIZE,path:t,sizes:s})},[r,t]);return Od(Rr,{...e,onSplitterMoved:o})};qs.displayName="Flexbox";te("Flexbox",qs,"container");import{useForkRef as Yd}from"@salt-ds/core";import jd from"classnames";import{forwardRef as qd,useMemo as Jd}from"react";import{useCallback as oi,useEffect as Vd,useRef as kr,useState as Bd}from"react";import{useCallback as Hd,useLayoutEffect as Js,useRef as Nd}from"react";var ti=["height","width"];var Ye=new WeakMap,ni=(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}},ei=new ResizeObserver(n=>{for(let e of n){let{target:t,contentRect:r}=e,o=Ye.get(t);if(o){let{onResize:s,measurements:i}=o,l=!1;for(let[a,c]of Object.entries(i)){let u=ni(t,r,a);u!==c&&(l=!0,i[a]=u)}l&&s&&s(i)}}});function Ln(n,e,t,r=!1){console.log("resizeObserver container",{ref:n.current});let o=Nd(e),s=Hd(i=>{let l=i.getBoundingClientRect();return o.current.reduce((a,c)=>(a[c]=ni(i,l,c),a),{})},[]);Js(()=>{let i=n.current,l=!1;async function a(){Ye.set(i,{measurements:{}}),l=!1;let{fonts:c}=document;if(c&&await c.ready,!l){let u=Ye.get(i);if(u){let p=s(i);u.measurements=p,ei.observe(i),r&&t(p)}}}if(i){if(Ye.has(i))throw Error("useResizeObserver attemping to observe same element twice");a()}return()=>{i&&Ye.has(i)&&(ei.unobserve(i),Ye.delete(i),l=!0)}},[n,s,r,t]),Js(()=>{let i=n.current,l=Ye.get(i);if(l){if(o.current!==e){o.current=e;let a=s(i);l.measurements=a}l.onResize=t}},[e,s,n,t])}function zd(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 Fd=([,n],[,e])=>e-n,Lr=n=>Object.entries(n).sort(Fd).map(([e,t],r,o)=>[e,t,r<o.length-1?o[r+1][1]:9999]),Pr=null,$d=(n="salt")=>{let{xs:e,sm:t,md:r,lg:o,xl:s}=zd(n);return Lr({xs:e,sm:t,md:r,lg:o,xl:s})},ri=n=>(Pr===null&&(Pr=$d(n)),Pr);var Kd=[],si=({breakPoints:n,smallerThan:e},t)=>{let[r,o]=Bd(e?!1:"lg"),s=kr(document.body),i=kr(n?Lr(n):ri()),l=kr("lg"),a=oi(u=>{if(i.current){for(let[p,d]of i.current)if(u>=d)return p}},[i]),c=oi(u=>{if(e){let p=i.current.find(([d])=>d===e);if(p){let[,,d]=p;return u<d}}else return a(u);return u},[e,a]);return Ln(t||s,i.current?["width"]:Kd,({width:u})=>{let p=c(u);p!==l.current&&(l.current=p,o(p))},!0),Vd(()=>{let u=t||s;if(u.current){let p=l.current;if(i.current){let{clientWidth:d}=u.current,f=c(d);l.current=f,f!==p&&o(f)}}},[o,c,t]),r};var Wd="data-collapsible",$R={[Wd]:!0,"data-pad-start":!0,"data-pad-end":!0};import{getUniqueId as _d}from"@vuu-ui/vuu-utils";import{cloneElement as Gd,isValidElement as Ud,useCallback as Xd,useMemo as ii,useRef as Ir}from"react";var Qd=["xs","sm","md","lg","xl"],Zd=12,li=({children:n,cols:e,style:t})=>{let r=Ir(null),o=Ir(null),s=Ir(),i=e!=null?e:Zd,a=(t==null?void 0:t.flexDirection)==="column"?"height":"width",c=ii(()=>Array.isArray(n)?n:Ud(n)?[n]:[],[n]),u=Xd((p,d)=>{let f=Rn(p,d,Qd),m=[],h=[];for(let x=0;x<p.length;x++){let v=p[x],{style:{flex:C,...y}}=v.props;m.push(Gd(v,{key:_d(),style:{...y,"--parent-col-count":i}})),h.push(f[x])}return[m,h]},[i]);return ii(()=>{let[p,d]=u(c,a);o.current=d,s.current=p},[u,c,a]),{cols:i,content:s.current,rootRef:r}};import{jsx as ep}from"react/jsx-runtime";var kn="hwFluidGrid",Ar=qd(function(e,t){let{breakPoints:r,children:o,column:s,cols:i=12,className:l,flexFill:a,gap:c=3,fullPage:u,id:p,onSplitterMoved:d,resizeable:f,row:m,showGrid:h,spacing:x,splitterSize:v,style:C,...y}=e,b=Jd(()=>ft(o),[o]),{cols:T,content:g,rootRef:w}=li({children:b,cols:i,style:C}),D=si({breakPoints:r},w),P=jd(kn,l,{[`${kn}-column`]:s,[`${kn}-row`]:m,[`${kn}-show-grid`]:h,"flex-fill":a,"full-page":u}),E={...C,"--spacing":x,"--grid-col-count":T,"--grid-gap":c};return ep("div",{...y,className:P,"data-breakpoint":D,"data-cols":T,"data-resizeable":f||void 0,id:p,ref:Yd(w,t),style:E,children:g})});Ar.displayName="FluidGrid";import{jsx as tp}from"react/jsx-runtime";var ai=function(e){return tp(Ar,{...e})};ai.displayName="FluidGrid";te("FluidGrid",ai,"container");import{Button as gp}from"@salt-ds/core";import{default as bp,default as yp}from"classnames";import yi,{useRef as xp,useState as xi}from"react";import{useCallback as Ut,useState as np}from"react";var In=(n,e,t,r)=>{var x;let{loadSessionState:o,purgeSessionState:s,purgeState:i,saveSessionState:l}=gt(),[a,c]=np((x=o(n,"contributions"))!=null?x:[]),u=be(),p=Ut((v,C)=>{let y=a.concat([{location:v,content:C}]);l(n,"contributions",y),c(y)},[a,n,l]),d=Ut(()=>{s(n,"contributions"),c([])},[n,s]),f=Ut(()=>{let v=o(n,"data-source");v&&v.unsubscribe(),s(n),i(n),u({type:"remove",path:t})},[u,n,o,s,i,t]),m=Ut(async(v,C,y)=>{var T;v.stopPropagation();let b=(T=e.current)==null?void 0:T.getBoundingClientRect();return new Promise((g,w)=>{u({type:"drag-start",evt:v,path:C===void 0?t:`${t}.${C}`,dragRect:b,preDragActivity:y,dropTargets:r,resolveDragStart:g,rejectDragStart:w})})},[e,u,t,r]);return[Ut(async(v,C)=>{var b;let{type:y}=v;switch(y){case"maximize":case"minimize":case"restore":return u({type:y,path:(b=v.path)!=null?b:t});case"remove":return f();case"mousedown":return m(C,v.index,v.preDragActivity);case"add-toolbar-contribution":return p(v.location,v.content);case"remove-toolbar-contribution":return d();default:return}},[u,t,f,m,p,d]),a]};import{useForkRef as lp,useIdMemo as ap}from"@salt-ds/core";import cp from"classnames";import Nr,{forwardRef as up,useCallback as dp,useMemo as pp,useRef as hi,useState as fp}from"react";import{useCallback as je,useMemo as ci}from"react";var ui=({id:n,rootRef:e,path:t,dropTargets:r,title:o})=>{let s=be(),{loadState:i,loadSessionState:l,purgeState:a,saveState:c,saveSessionState:u}=gt(),[p,d]=In(n,e,t,r),f=ci(()=>{var g;return(g=i("view-title"))!=null?g:o},[i,o]),m=je(g=>{t&&s({type:"set-title",path:t,title:g})},[s,t]),h=ci(()=>i(n),[n,i]),x=je(g=>i(n,g),[n,i]),v=je(g=>{a(n,g),s({type:"save"})},[n,s,a]),C=je((g,w)=>{c(n,w,g),s({type:"save"})},[n,s,c]),y=je(g=>l(n,g),[n,l]),b=je((g,w)=>u(n,w,g),[n,u]),T=je(({type:g,...w})=>{let{[g]:D}=w;C(D,g)},[C]);return{contributions:d,dispatchViewAction:p,load:x,loadSession:y,onConfigChange:T,onEditTitle:m,purge:v,restoredState:h,save:C,saveSession:b,title:f}};import{useCallback as di,useRef as pi}from"react";var rp=[],fi=({mainRef:n,resize:e="responsive",rootRef:t})=>{let r=e==="defer",o=pi({}),s=pi(),i=di(()=>{n.current&&(n.current.style.height=o.current.height+"px",n.current.style.width=o.current.width+"px"),s.current=void 0},[n]),l=di(({height:a,width:c})=>{o.current.height=a,o.current.width=c,s.current!==null&&clearTimeout(s.current),s.current=window.setTimeout(i,40)},[i]);Ln(t,r?ti:rp,l,r)};import op,{useContext as sp}from"react";var ip={dispatch:null},Or=op.createContext(ip),mi=()=>{var e;let n=sp(Or);return(e=n==null?void 0:n.dispatch)!=null?e:null};import{jsx as Hr,jsxs as hp}from"react/jsx-runtime";var Xt="vuuView",mp=(n,e)=>n&&e?{...n,...e}:n||e,gi=up(function(e,t){let{Header:r=bi,children:o,className:s,collapsed:i,closeable:l,"data-path":a,"data-resizeable":c,dropTargets:u,expanded:p,flexFill:d,id:f,header:m,orientation:h="horizontal",path:x=a,resize:v="responsive",resizeable:C=c,tearOut:y,style:b={},title:T,...g}=e,w=ap(f),D=hi(null),P=hi(null),[E,R]=fp(),{contributions:S,dispatchViewAction:M,load:I,loadSession:L,onConfigChange:k,onEditTitle:O,purge:A,restoredState:N,save:H,saveSession:V,title:z}=ui({id:w,rootRef:D,path:x,dropTargets:u,title:T});fi({mainRef:P,resize:v,rootRef:D});let B=dp($=>{R($)},[]),W=()=>Nr.isValidElement(o)&&(N||E)?Nr.cloneElement(o,mp(N,E)):o,Q=pp(()=>({dispatch:M,id:w,path:x,title:z,load:I,loadSession:L,onConfigChange:k,purge:A,save:H,saveSession:V,setComponentProps:B}),[M,w,I,L,k,x,A,H,V,B,z]),F=typeof m=="object"?m:{};return Hr("div",{...g,className:cp(Xt,s,{[`${Xt}-collapsed`]:i,[`${Xt}-expanded`]:p,[`${Xt}-resize-defer`]:v==="defer"}),"data-resizeable":C,id:w,ref:lp(t,D),style:b,tabIndex:-1,children:hp(Or.Provider,{value:Q,children:[m?Hr(r,{...F,collapsed:i,contributions:S,expanded:p,closeable:l,onEditTitle:O,orientation:h,tearOut:y,title:z}):null,Hr("div",{className:`${Xt}-main`,ref:P,children:W()})]})})});gi.displayName="View";var bt=Nr.memo(gi);bt.displayName="View";te("View",bt,"view");import{jsx as Qt}from"react/jsx-runtime";var bi=({className:n,contributions:e,collapsed:t,closeable:r,onEditTitle:o,orientation:s="horizontal",style:i,title:l="Untitled"})=>{let a=xp(null),[c,u]=xi(l),[p,d]=xi(!1),f=mi(),m=R=>f==null?void 0:f({type:"remove"},R),h="vuuHeader",x=()=>{var R;(R=a.current)==null||R.focus()},v=R=>{R.stopPropagation()},y=bp(h,n,`${h}-${t||s}`),b=()=>{d(!0)},T=R=>{R.key==="Enter"&&d(!0)},g=(R="",S="",M=!0,I=!1)=>{var L;d(!1),I?u(R):S!==R&&(u(S),o==null||o(S)),M===!1&&((L=a.current)==null||L.focus())},w=R=>{f==null||f({type:"mousedown"},R)},D=[],P=[],E=[];return e==null||e.forEach((R,S)=>{switch(R.location){case"pre-title":D.push(yi.cloneElement(R.content,{key:S}));break;default:P.push(yi.cloneElement(R.content,{key:S}))}}),l&&D.push(Qt(pt,{editing:p,value:c,onChange:u,onMouseDownCapture:x,onEnterEditMode:b,onExitEditMode:g,onKeyDown:T,ref:a,tabIndex:0},"title")),r&&E.push(Qt(gp,{"data-icon":"close",onClick:m,onMouseDown:v,variant:"secondary"},"close")),P.length>0&&D.push(Qt("div",{className:"vuuTooltrayProxy","data-align":"end",children:P},"contributions")),E.length>0&&D.push(Qt("div",{className:"vuuTooltrayProxy","data-align":"end",children:E},"actions")),Qt("div",{className:yp("vuuToolbarProxy",y),style:i,onMouseDown:w,children:D})};import{PopupMenu as zp}from"@vuu-ui/vuu-popups";import On from"classnames";import Fp,{forwardRef as $p}from"react";import{isValidNumber as Ap,MEASURES as Op}from"@vuu-ui/vuu-utils";import{useCallback as Pi,useMemo as $r,useRef as Hp,useState as Np}from"react";var vp=".vuuOverflowContainer-item:not(.wrapped)",Cp=n=>n.sort((e,t)=>{let{dataset:{index:r="?"}}=e,{dataset:{index:o="?"}}=t,s=e.classList.contains("wrapped"),i=t.classList.contains("wrapped"),l=r==="overflow",a=o==="overflow";return s&&!i?1:!s&&i?-1:l?1:a?-1:parseInt(r)>parseInt(o)?1:-1}),zr=[],Zt=(n,e="horizontal")=>{let t=[],r=[],o=-1,s=!1,i=Cp(Array.from(n.children)),l=e==="vertical"?"top":"left";for(let a of i){let c=a,{dataset:{index:u="?",label:p="?",overflowPriority:d="0"}}=c,{[l]:f}=c.getBoundingClientRect();f<=o?(u==="overflow"?r.push(t.pop()):r.push({index:u,label:p,overflowPriority:d}),s=!0):s?r.push({index:u,label:p,overflowPriority:d}):t.push({index:u,label:p,overflowPriority:d}),o=f}return[t,r]},vi=(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")}},Tp=(n,{overflowPriority:e})=>Math.max(n,parseInt(e)),wp=(n,{overflowPriority:e})=>Math.min(n,parseInt(e)),Ci=n=>{var e;return n.length>1&&((e=n.at(-1))==null?void 0:e.index)==="overflow"},Sp=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},Ti=(n,e)=>{var o;let t=n.reduce(wp,Number.MAX_SAFE_INTEGER);return e.reduce(Tp,0)>t?!0:e.length>1&&((o=e.at(-1))==null?void 0:o.index)==="overflow"},wi=(n,e)=>new Promise(t=>{requestAnimationFrame(()=>{let[,r]=Zt(n);Dp(e,r).forEach(s=>Ep(n,s)),t(r)})}),Si=(n,e,t)=>new Promise(r=>{requestAnimationFrame(()=>{let[,o]=Zt(n),s=Sp(o);if(s){let[i,l]=Fr(n,s);r([i,l])}else r([e,t])})}),Ei=(n,e)=>n.querySelector(`[data-index="${e.index}"]`),Ep=(n,e)=>{let t=Ei(n,e);if(t)t.classList.add("wrapped");else throw Error(`markElementAsWrapped element item with index ${e.index} not found`)},Rp=n=>Array.from(n.querySelectorAll(".wrapped")),Dp=(n,e)=>{let t=[];for(let r of e)n.find(({index:o})=>o===r.index)||t.push(r);return t},Mp=(n,e)=>{Rp(n).forEach(r=>{let{dataset:{index:o="?"}}=r;e.find(s=>s.index===o)||r.classList.remove("wrapped")})},Ri=n=>n.querySelector('[data-index="overflow"]'),Pp=n=>n.querySelector(".wrapped"),An=n=>parseInt(getComputedStyle(n).getPropertyValue("width")),Di=(n,e)=>{let{right:t}=n.getBoundingClientRect(),r=parseInt(getComputedStyle(n).getPropertyValue("padding-right")),{right:o}=e.getBoundingClientRect();return t-r-o},Mi=n=>{let e=Ri(n),t=Di(n,e),r=An(e),o=Pp(n);return An(o)<=t+r?(n.classList.remove("overflowed"),o.classList.remove("wrapped"),!0):!1},Lp=(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)},kp=n=>Array.from(n.querySelectorAll(vp)).sort(Lp),Fr=(n,e)=>{let t=kp(n),r=Ei(n,e),o=-1,s=t.at(o),i=An(s),l=An(r),a=Ri(n),c=Di(n,a)+i;if(c>=l)Ip(r,s);else{let{left:d}=s.getBoundingClientRect(),f=c,m=[s];for(;c<l;){o-=1,s=t.at(o),m.push(s);let{left:h}=s.getBoundingClientRect(),x=d-h;c=f+x}r==null||r.classList.remove("wrapped"),m.forEach(h=>{h.classList.add("wrapped")})}let[u,p]=Zt(n);return Mp(n,p),[u,p]},Ip=(n,e)=>{if(!n||!e)throw Error("switchWrapOnElements, element undefined");n.classList.remove("wrapped"),e.classList.add("wrapped")};var Li=({itemCount:n,onSwitchWrappedItemIntoView:e,orientation:t="horizontal"})=>{let[r,o]=Np(null),s=Hp(zr),i=Pi(async()=>{if(r){let[d,f]=Zt(r,t);for(console.log({nonWrapped:d,wrapped:f}),vi(r,f),Ci(f)&&(f=await wi(r,f));Ti(d,f);)[d,f]=await Si(r,d,f);f.length===1&&Mi(r)&&(f=zr),s.current=f}},[r,t]),l=d=>typeof d=="object"&&d!==null&&"overflowItem"in d,[a,c]=$r(()=>[()=>{let{current:d}=s;return d.map(f=>({label:f.label,action:`activate-item-${f.index}`,options:{overflowItem:f}}))},({options:d})=>{if(r&&l(d)){let[,f]=Fr(r,d.overflowItem);s.current=f,e==null||e(d.overflowItem)}return!0}],[r,e]),u=$r(()=>{let{sizeProp:d}=Op[t],f=0;return new ResizeObserver(m=>{for(let h of m){let{[d]:x}=h.contentRect;Ap(x)&&f!==x&&(f=x,i())}})},[i,t]);Ds(()=>{i()},[i,n]),$r(()=>{r&&u.observe(r)},[r,u]);let p=Pi(d=>{o(d)},[]);return{menuActionHandler:c,menuBuilder:a,rootRef:p}};import{jsx as Yt,jsxs as Vp}from"react/jsx-runtime";var yt="vuuOverflowContainer",ki=Fp.memo(({children:n,className:e,height:t,onSwitchWrappedItemIntoView:r,orientation:o="horizontal",overflowIcon:s})=>{let i=ft(n),{menuActionHandler:l,menuBuilder:a,rootRef:c}=Li({itemCount:i.length,onSwitchWrappedItemIntoView:r,orientation:o}),p={"--overflow-container-height":`${o==="vertical"?"100%":`${t}px`}`},d=On(`${yt}-wrapContainer`,e,{[`${yt}-horizontal`]:o==="horizontal",[`${yt}-vertical`]:o==="vertical"});return Vp("div",{className:d,ref:c,style:p,children:[i.map((f,m)=>{let{"data-overflow-priority":h="0",id:x,label:v=`Item ${m+1}`}=f.props;return Yt("div",{className:On(`${yt}-item`),"data-index":m,"data-label":v,"data-overflow-priority":h,id:`${x}-wrapper`,children:f},m)}),Yt("div",{className:`${yt}-OverflowIndicator`,"data-index":"overflow",children:Yt(zp,{icon:s,menuBuilder:a,menuActionHandler:l})})]})});ki.displayName="OverflowContainer.InnerContainer";var Ii=$p(function({children:e,className:t,height:r=44,onSwitchWrappedItemIntoView:o,orientation:s,overflowIcon:i,...l},a){return Yt("div",{...l,className:On(On(yt,t)),ref:a,children:Yt(ki,{height:r,orientation:s,overflowIcon:i,onSwitchWrappedItemIntoView:o,children:e})})});import{uuid as Bp}from"@vuu-ui/vuu-utils";import{List as Kp,ListItem as Wp}from"@salt-ds/lab";import Ai from"classnames";import{cloneElement as _p,memo as Gp}from"react";import{jsx as Vr}from"react/jsx-runtime";var Up=n=>{let e=n.cloneNode(!0);return e.id="",delete e.dataset.idx,e},Oi=Gp(({className:n,children:e,idx:t,resizeable:r,header:o,closeable:s,...i})=>Vr(Wp,{className:Ai("vuuPaletteItem",n),"data-draggable":!0,...i}));Oi.displayName="PaletteItem";var Xp=({children:n,className:e,orientation:t="horizontal",ViewProps:r,...o})=>{let s=be(),i="vuuPalette";function l(a){var w;let u=a.target.closest(".vuuPaletteItem"),p=parseInt((w=u.dataset.idx)!=null?w:"-1");p!==-1&&console.log({children:n,idx:p,listItemElement:u});let{props:{caption:d,children:f,template:m,...h}}=n[p],{height:x,left:v,top:C,width:y}=u.getBoundingClientRect(),b=Bp(),g=m?f:Vr(bt,{...r,...{id:b,key:b},...h,title:h.label,children:f});s({dragRect:{left:v,top:C,right:v+y,bottom:C+150,width:y,height:x},dragElement:Up(u),evt:a.nativeEvent,instructions:{DoNotRemove:!0,DoNotTransform:!0,RemoveDraggableOnDragEnd:!0,dragThreshold:10},path:"*",payload:g,type:"drag-start"})}return Vr(Kp,{...o,borderless:!0,className:Ai(i,e,`${i}-${t}`),maxHeight:800,selected:null,children:n.map((a,c)=>a.type===Oi?_p(a,{key:c,onMouseDown:l}):a)})};te("Palette",Xp,"view");import Qp from"classnames";import Br,{forwardRef as Zp,useCallback as Yp}from"react";import{jsx as Ni,jsxs as tf}from"react/jsx-runtime";var Hi="Tabs",jp=()=>{},qp=(n,e)=>{var t,r;return(r=(t=n.props)==null?void 0:t.title)!=null?r:`Tab ${e+1}`},Jp=n=>{let e=[];return Br.Children.forEach(n,t=>{Br.isValidElement(t)?e.push(t):console.warn("Stack has unexpected child element type")}),e},ef={allowAddTab:!1,allowCloseTab:!1,allowRenameTab:!1},Kr=Zp(function({active:e=0,children:t,className:r,getTabIcon:o=jp,getTabLabel:s=qp,id:i,keyBoardActivation:l="manual",onAddTab:a,onMoveTab:c,onTabClose:u,onTabEdit:p,onTabSelectionChanged:d,showTabs:f="top",style:m,TabstripProps:h=ef},x){var E;let v=Tn(i),{allowCloseTab:C,allowRenameTab:y}=h,b=Yp((R,S,M,I)=>{p==null||p(I,S)},[p]),T=()=>{var R;return Br.isValidElement(t)?t:Array.isArray(t)&&(R=t[e])!=null?R:null},g=()=>Jp(t).map((R,S)=>{let M=`${v}-${S}`,{closeable:I=C,id:L}=R.props;return Ni(Fi,{ariaControls:`${M}-tab`,"data-icon":o(R,S),id:M,index:S,label:s(R,S),closeable:I,editable:y},L!=null?L:S)}),w=T(),D=f==="left"||f==="right",P=D?"vertical":"horizontal";return tf("div",{className:Qp(Hi,r,{[`${Hi}-horizontal`]:D}),style:m,id:v,ref:x,children:[f?Ni(zi,{...h,activeTabIndex:(E=h==null?void 0:h.activeTabIndex)!=null?E:w===null?-1:e,allowDragDrop:h.allowDragDrop!==!1,animateSelectionThumb:!0,className:"vuuTabHeader",keyBoardActivation:l,onActiveChange:d,onAddTab:a,onCloseTab:u,onExitEditMode:b,onMoveTab:c,orientation:P,children:g()}):null,w]})});Kr.displayName="Stack";import{useIdMemo as nf}from"@salt-ds/core";import rf,{useCallback as Wr,useRef as of}from"react";import{jsx as _r}from"react/jsx-runtime";var sf=n=>_r(bt,{resizeable:!0,title:`Tab ${n}`,style:{flexGrow:1,flexShrink:0,flexBasis:0},header:!0,closeable:!0,children:_r(br,{style:{flex:1}})}),$i=n=>{let e=of(null),t=be(),{loadState:r}=gt(),{createNewChild:o=sf,id:s,onTabSelectionChanged:i,path:l,...a}=n,{children:c}=n,u=nf(s),[p]=In(u,e,l),d=y=>{l&&(t({type:"switch-tab",path:l,nextIdx:y}),i==null||i(y))},f=Wr(y=>{if(Array.isArray(c)){let{props:{"data-path":b,path:T=b}}=c[y];t({type:"remove",path:T})}},[c,t]),m=Wr(()=>{if(l){let y=rf.Children.count(c),b=o(y);t({type:"add",path:l,component:b})}},[c,o,t,l]),h=Wr((y,b)=>{l&&t({fromIndex:y,toIndex:b,path:l,type:"move-child"})},[t,l]);return _r(Kr,{...a,id:u,getTabLabel:(y,b)=>{let{id:T,title:g}=y.props;return r(T,"view-title")||g||`Tab ${b+1}`},onMouseDown:async(y,b)=>{let T;await p({type:"mousedown",index:b,preDragActivity:async()=>new Promise(D=>{console.log("preDragActivity: Ok, gonna release the drag"),T=D})},y)&&(T==null||T(void 0))},onMoveTab:h,onAddTab:m,onTabClose:f,onTabEdit:(y,b)=>{t({type:"set-title",path:`${l}.${y}`,title:b})},onTabSelectionChanged:d,ref:e})};$i.displayName="Stack";te("Stack",$i,"container");import GP,{useState as UP}from"react";import{jsx as YP,jsxs as jP}from"react/jsx-runtime";import{FormField as lL,Input as aL}from"@salt-ds/core";import{jsx as dL,jsxs as pL}from"react/jsx-runtime";var Hn="(\\d+)(?:px)?",lf=`^(?:${Hn}(?:\\s${Hn}(?:\\s${Hn}(?:\\s${Hn})?)?)?)$`,cL=new RegExp(lf);import bL from"react";import xL from"classnames";import{jsx as SL}from"react/jsx-runtime";import{Button as Df}from"@salt-ds/core";import Mf from"classnames";import Pf,{useMemo as Lf,useRef as kf}from"react";import{useCallback as pe,useRef as wf}from"react";var Vi=n=>typeof n=="object"&&n!==null&&"tabIndex"in n&&typeof n.tabIndex=="number",Bi=n=>({label:"Close",location:"tab",action:"close-tab",options:n}),Ki=n=>({label:"Rename",location:"tab",action:"rename-tab",options:n});var cf=n=>{if(n){let e=parseInt(n.dataset.index||"");if(!isNaN(e))return e}return-1},Wi=(n,e)=>{if(n){let t=n.querySelector(`[data-index]:has(${e})`);return cf(t)}return-1},Gr=n=>Wi(n,'[aria-selected="true"]'),_i=n=>Wi(n,".vuuEditableLabel-editing");import{isValidNumber as Ur,MEASURES as uf}from"@vuu-ui/vuu-utils";import{useCallback as Xr,useMemo as df,useRef as Gi}from"react";var Ui=(n,e,t="horizontal")=>{let r=Gi(!1),o=Xr(()=>{r.current=!0},[]),s=Xr(()=>{r.current=!1},[]),i=Xr(()=>{var a,c;(a=n.current)==null||a.style.setProperty("--tab-thumb-transition","none"),(c=n.current)==null||c.removeEventListener("transitionend",i)},[n]),l=Gi(-1);return df(()=>{var u,p;let a=0,c=0;if(l.current!==-1){let d=(u=n.current)==null?void 0:u.querySelector(".vuuTab-selected"),f=(p=n.current)==null?void 0:p.querySelector(`[data-index="${e}"] .vuuTab`),{positionProp:m,sizeProp:h}=uf[t];if(d&&f&&!r.current){let{[m]:x,[h]:v}=d.getBoundingClientRect(),{[m]:C}=f.getBoundingClientRect();if(Ur(x)&&Ur(C)&&Ur(v)){console.log({orientation:t,positionProp:m,oldPosition:x,newPosition:C}),a=x-C,c=v;let b=Math.abs(a/(t==="horizontal"?1100:700));requestAnimationFrame(()=>{var T,g,w,D;(T=n.current)==null||T.style.setProperty("--tab-thumb-offset","0px"),(g=n.current)==null||g.style.setProperty("--tab-thumb-size","100%"),(w=n.current)==null||w.style.setProperty("--tab-thumb-transition",`all ${b}s ease`),(D=n.current)==null||D.addEventListener("transitionend",i)})}}}return l.current=e,r.current?{containerStyle:{"--tab-thumb-offset":"0px","--tab-thumb-size":"100%"},resumeAnimation:s,suspendAnimation:o}:{containerStyle:{"--tab-thumb-offset":`${a}px`,"--tab-thumb-size":c?`${c}px`:void 0},resumeAnimation:s,suspendAnimation:o}},[e,n,t,i,s,o])};import{useControlled as pf}from"@salt-ds/core";import{getFocusableElement as ff}from"@vuu-ui/vuu-utils";import{useCallback as De,useRef as Qr,useState as Xi}from"react";import{ArrowDown as ji,ArrowUp as mf,ArrowLeft as hf,ArrowRight as gf,Home as Qi,End as Zi}from"@vuu-ui/vuu-utils";var qi={horizontal:{[Qi]:"start",[Zi]:"end",[hf]:"bwd",[gf]:"fwd"},vertical:{[Qi]:"start",[Zi]:"end",[mf]:"bwd",[ji]:"fwd"}},bf=(n,e="horizontal")=>qi[e][n]!==void 0,yf=n=>n===ji;function Yi(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 xf=n=>n!==null&&!n.classList.contains("wrapped"),Nn=(n,e)=>n?n.querySelector(`[data-index="${e}"]`):null,Ji=({containerRef:n,defaultHighlightedIdx:e=-1,highlightedIdx:t,keyBoardActivation:r,orientation:o,selectedIndex:s=0})=>{let i=r==="manual",l=Qr(!1),a=Qr(-1),[c,u]=Xi(!1),[,p]=Xi({}),[d,f]=pf({controlled:t,default:e,name:"UseKeyboardNavigation"}),m=De(S=>{f(a.current=S)},[f]),h=Qr(!1),x=De((S,M=!1,I,L=70)=>{m(S),I===!0&&!h.current&&(h.current=!0);let k=()=>{let O=Nn(n.current,S);if(O){let A=ff(O);A==null||A.focus()}};M?k():setTimeout(k,L)},[n,m]),v=S=>{if(a.current===-1&&S.target.tabIndex!==-1){let M=_i(n.current);M!==-1?requestAnimationFrame(()=>{m(M)}):setTimeout(()=>{a.current===-1&&s!==null&&m(s)},200)}},C=De(()=>{var S,M;return(M=(S=n.current)==null?void 0:S.querySelectorAll("[data-index]").length)!=null?M:0},[n]),y=De((S="fwd",M)=>{let I=C(),k=Yi(I,S,typeof M=="number"?M:I),O=S==="start"?"fwd":S==="end"?"bwd":S;for(;(O==="fwd"&&k<I||O==="bwd"&&k>0)&&!xf(Nn(n.current,k));){let A=Yi(I,O,k);if(A===k)break;k=A}return k},[n,C]),b=De((S,M=!1)=>{let I=qi[o][S.key],L=y(I,d);L!==d?i&&x(L,!0):M&&p({})},[d,i,y,x,o]),T=De(()=>{let S=Nn(n.current,d);return S?S.querySelector(".vuuPopupMenu")!=null:!1},[n,d]),g=De(()=>{let S=Nn(n.current,d),M=S==null?void 0:S.querySelector(".vuuPopupMenu");if(M){let I=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});M.dispatchEvent(I)}return!1},[n,d]),w=De(S=>{C()>0&&bf(S.key,o)?(S.preventDefault(),h.current?b(S):(h.current=!0,b(S,!0))):yf(S.key)&&T()&&g()},[g,C,T,b,o]),D=(S,M)=>{m(M)},P=De(()=>{c||(u(!0),l.current?l.current=!1:h.current=!0)},[c]),E=De(()=>{c||(l.current=!0),h.current=!1},[c]);return{containerProps:{onBlur:S=>{let M=S.target.closest(".vuuTabstrip"),I=S.relatedTarget;M&&!(M!=null&&M.contains(I))&&(m(-1),u(!1))},onMouseDownCapture:E,onFocus:P,onMouseLeave:()=>{h.current=!0,m(-1),l.current=!1}},focusVisible:h.current?d:-1,focusIsWithinComponent:c,highlightedIdx:d,focusTab:x,onClick:D,onFocus:v,onKeyDown:w,setHighlightedIdx:m}};import{useControlled as vf}from"@salt-ds/core";import{useCallback as zn}from"react";var Cf=["Enter"," "],Tf=n=>n&&n.matches('[class*="vuuTab "]'),el=({defaultSelected:n,highlightedIdx:e,onSelectionChange:t,selected:r})=>{let[o,s,i]=vf({controlled:r,default:n!=null?n:0,name:"Tabstrip",state:"value"}),l=zn(p=>Cf.includes(p.key),[]),a=zn(p=>{s(p),t==null||t(p)},[t,s]),c=zn(p=>{let d=p.target;l(p)&&e!==o&&Tf(d)&&(p.stopPropagation(),p.preventDefault(),a(e))},[l,e,o,a]),u=zn((p,d)=>{d!==o&&a(d)},[a,o]);return{activateTab:a,isControlled:i,onClick:u,onKeyDown:c,selected:o}};var Sf=new Set(["Enter"," "]),Ef=n=>Sf.has(n),Rf=(n,e)=>n?n.querySelector(`[data-index="${e}"]`):null,tl=({activeTabIndex:n,allowDragDrop:e,animateSelectionThumb:t,containerRef:r,onActiveChange:o,onAddTab:s,onCloseTab:i,onExitEditMode:l,onMoveTab:a,orientation:c,keyBoardActivation:u})=>{let p=wf(n),{focusTab:d,highlightedIdx:f,onClick:m,onKeyDown:h,setHighlightedIdx:x,...v}=Ji({containerRef:r,keyBoardActivation:u,orientation:c,selectedIndex:p.current}),{activateTab:C,onClick:y,onKeyDown:b,selected:T}=el({highlightedIdx:f,onSelectionChange:o,selected:n});p.current=T;let{containerStyle:g,resumeAnimation:w,suspendAnimation:D}=Ui(r,t?T:-1,c),P=pe((F,$)=>{let{current:G}=p;console.log(`useTabstrip handleDrop ${F} - ${$} ${G}`),a==null||a(F,$);let oe=-1;$!==-1&&(G===F?oe=$:F>G&&$<=G?oe=G+1:F<G&&$>=G&&(oe=G-1),oe!==-1&&(D(),C(oe),requestAnimationFrame(w)),d($,!1,!1,350))},[d,a,w,C,D]),{onMouseDown:E,...R}=vn({allowDragDrop:e,containerRef:r,draggableClassName:`tabstrip-${c}`,onDrop:P,orientation:"horizontal",itemQuery:".vuuOverflowContainer-item"}),S=pe((F,$,G,oe)=>{console.log(`handleExitEditMode ${F} ${$} ${G} ${oe}`),l==null||l(F,$,G,oe),G||d(oe,!1,!0)},[d,l]),M=pe((F,$)=>{m(F,$),y(F,$)},[m,y]),I=pe((F=f)=>{let $=Rf(r.current,F);if($)return $.querySelector(".vuuEditableLabel")},[r,f]),L=pe((F=f)=>{let $=I(F);return $?$.classList.contains("vuuEditableLabel-editing"):!1},[I,f]),k=pe((F=f)=>{let $=I(F);if($){let G=new MouseEvent("dblclick",{view:window,bubbles:!0,cancelable:!0});$.dispatchEvent(G)}},[I,f]),O=pe(F=>{h(F),F.defaultPrevented||b(F),!F.defaultPrevented&&Ef(F.key)&&k()},[k,h,b]),A=pe(F=>{let $=Gr(r.current),G=$>F?$-1:$===F?0:$;return D(),i==null||i(F,G),setTimeout(()=>{w()},200),!0},[r,i,w,D]),N=pe(F=>(k(F),!0),[k]),H=pe(F=>{if(Vi(F.options))switch(F.menuId){case"close-tab":return A(F.options.tabIndex);case"rename-tab":return N(F.options.tabIndex);default:console.log(`tab menu action ${F.menuId}`)}return!1},[A,N]),V=pe(()=>{L()?x(f):d(f)},[f,d,x,L]),z=pe(F=>{let $=parseInt(F.index);isNaN($)||C($)},[C]),B={onFocus:v.onFocus,onKeyDown:O},W=pe(()=>{s==null||s(),requestAnimationFrame(()=>{let F=Gr(r.current);F!==-1&&d(F)})},[r,d,s]),Q={onClick:M,onKeyDown:O,onExitEditMode:S,onMenuAction:H,onMenuClose:V,onMouseDown:E};return{activeTabIndex:T,containerStyle:g,focusVisible:v.focusVisible,containerProps:{...v.containerProps,onSwitchWrappedItemIntoView:z},navigationProps:B,onClickAddTab:W,tabProps:Q,...R}};import{Fragment as Of,jsx as Af,jsxs as Hf}from"react/jsx-runtime";import{createElement as If}from"react";var Zr="vuuTabstrip",zi=({activeTabIndex:n,allowAddTab:e,allowCloseTab:t,allowDragDrop:r=!1,allowRenameTab:o=!1,animateSelectionThumb:s=!1,children:i,className:l,id:a,keyBoardActivation:c="manual",location:u,onActiveChange:p,onAddTab:d,onCloseTab:f,onExitEditMode:m,onMoveTab:h,orientation:x="horizontal",showTabMenuButton:v,style:C,...y})=>{let b=kf(null),{activeTabIndex:T,focusVisible:g,containerStyle:w,draggedItemIndex:D,onClickAddTab:P,tabProps:E,...R}=tl({activeTabIndex:n,allowDragDrop:r,animateSelectionThumb:s,containerRef:b,keyBoardActivation:c,onActiveChange:p,onAddTab:d,onCloseTab:f,onExitEditMode:m,onMoveTab:h,orientation:x}),S=Tn(a),M=Mf(Zr,`${Zr}-${x}`,l),I=C||w?{...C,...w}:void 0,L=Lf(()=>ft(i).map((k,O)=>{let{id:A=`${S}-tab-${O}`,closeable:N=t,editable:H=o,showMenuButton:V=v}=k.props,z=O===T;return Pf.cloneElement(k,{...E,...R.navigationProps,closeable:N,"data-overflow-priority":z?"1":void 0,dragging:D===O,editable:H,focusVisible:g===O,id:A,index:O,key:O,location:u,selected:z,showMenuButton:V,tabIndex:z?0:-1})}).concat(e?If(Df,{...R.navigationProps,"aria-label":"Create Tab",className:`${Zr}-addTabButton`,"data-icon":"add","data-overflow-priority":"1",key:"addButton",onClick:P,variant:"secondary",tabIndex:-1}):[]),[T,e,t,o,i,g,S,u,P,v,E,D,R.navigationProps]);return Hf(Of,{children:[Af(Ii,{...y,...R.containerProps,className:M,height:28,id:S,orientation:x,overflowIcon:"more-horiz",ref:b,style:I,children:L}),R.draggable]})};import{useForkRef as Bf}from"@salt-ds/core";import Kf from"classnames";import{forwardRef as Wf,useCallback as _f,useRef as rl}from"react";import{PopupMenu as Nf}from"@vuu-ui/vuu-popups";import{useMemo as zf}from"react";import Ff from"classnames";import{jsx as Vf}from"react/jsx-runtime";var $f="vuuTabMenu",nl=({allowClose:n,allowRename:e,location:t,onMenuAction:r,onMenuClose:o,index:s})=>{let[i,l]=zf(()=>[(a,c)=>{let u=[];return e&&u.push(Ki(c)),n&&u.push(Bi(c)),u},{tabIndex:s}],[n,e,s]);return Vf(Nf,{className:$f,menuBuilder:i,menuActionHandler:r,menuLocation:Ff("tab",t),menuOptions:l,onMenuClose:o,tabIndex:-1})};import{jsx as Fn,jsxs as Gf}from"react/jsx-runtime";var qe="vuuTab",ol=()=>{},Fi=Wf(function({ariaControls:e,children:t,className:r,closeable:o=!1,dragging:s,editable:i=!1,editing:l,focusVisible:a,index:c=-1,label:u,location:p,onClick:d,onClose:f,onEnterEditMode:m=ol,onExitEditMode:h=ol,onFocus:x,onKeyUp:v,onMenuAction:C,onMenuClose:y,orientation:b,selected:T,showMenuButton:g=o||i,tabIndex:w,...D},P){if(g&&typeof C!="function")throw Error("Tab onMenuAction must be provided if showMenuButton is set");let E=rl(null),R=rl(null),S=Bf(P,E),M=_f(A=>{l||(A.preventDefault(),d==null||d(A,c))},[l,c,d]),I=(A="",N="",H=!0)=>h(A,N,H,c),L=A=>{switch(A.key){case"Backspace":case"Delete":o&&(A.stopPropagation(),f&&f(c));break;default:v&&v(A,c)}},k=()=>i?Fn(pt,{editing:l,defaultValue:u,onEnterEditMode:m,onExitEditMode:I,ref:R},u):u,O=A=>{if(R.current){let H=R.current.querySelector(".vuuEditableLabel-input");H==null||H.focus()}x==null||x(A)};return Gf("div",{...D,"aria-controls":e,"aria-selected":T,className:Kf(qe,{[`${qe}-closeable`]:o,"vuuDraggable-dragAway":s,[`${qe}-editing`]:l,[`${qe}-selected`]:T||void 0,[`${qe}-vertical`]:b==="vertical",vuuFocusVisible:a}),onClick:M,onFocus:O,onKeyUp:L,ref:S,role:"tab",tabIndex:w,children:[Fn("div",{className:`${qe}-main`,children:Fn("span",{className:`${qe}-text`,"data-text":i?void 0:u,children:t!=null?t:k()})}),g?Fn(nl,{allowClose:o,allowRename:i,location:p,onMenuAction:C,onMenuClose:y,index:c}):null]})});import{useForkRef as wm,useIdMemo as Sm}from"@salt-ds/core";import oo from"classnames";import{forwardRef as Em,useRef as Rm}from"react";function Uf(n){var e;if(n){let t=n.dataset.idx;if(t)return parseInt(t,10);if(t=(e=n.ariaPosInSet)!=null?e:"-1")return parseInt(t,10)-1}}var Yr=n=>n.closest("[data-idx],[aria-posinset]");var sl=n=>Uf(Yr(n));import{useCallback as jr,useMemo as Xf}from"react";var Qf=new Set(["/","-","."]),Zf=n=>Qf.has(n),il=(n,e)=>e.startsWith(n)&&Zf(e[n.length]),ll=(n,e="root",{collapsibleHeaders:t=void 0,defaultExpanded:r=!1,revealSelected:o=!1}={})=>{let s=(d,f,m)=>{if(d.childNodes)return d.childNodes.length;if(d.header){let h=m+1,x=0;for(;h<f.length&&!f[h].header;)x++,h++;return x}else return 0},i=jr(d=>Array.isArray(o)?o.some(f=>il(d,f)):r,[r,o]),l=jr((d,f,m=1,h="",x=[],v=[])=>{let C=0;return d.forEach((y,b,T)=>{var I;let g=y.header&&t,w=y.childNodes&&t===!1,D=!y.childNodes||y.childNodes.length===0,P=w||D&&!g,E=h?`${h}.${b}`:`${b}`,R=(I=y.id)!=null?I:`${e}-${E}`,S=P?void 0:i(R),M={...y,childNodes:void 0,id:R,count:!w&&S===void 0?0:s(y,T,b),expanded:S,index:f.index,level:m};if(x.push(M),v.push(d[b]),C+=1,f.index+=1,y.childNodes){let[L,k]=l(y.childNodes,f,m+1,E,[],v);M.childNodes=k,(S===!0||w)&&(C+=L)}}),[C,x,v]},[t,e,i]),[a,c,u]=Xf(()=>l(n,{index:0}),[l,n]),p=jr((d,f=c)=>{let m=f.find(h=>{var x;return h.id===d||((x=h==null?void 0:h.childNodes)==null?void 0:x.length)&&il(h.id,d)});if((m==null?void 0:m.id)===d)return u[m.index];if(m)return p(d,m.childNodes)},[u,c]);return[a,c,p]};import{useCallback as jt,useRef as Yf}from"react";import{useControlled as jf}from"@salt-ds/core";var al="single",qf="checkbox",Jf="multi",em="extended",tm=["Enter"," "],cl={},nm=n=>n.expanded!==void 0,ul=n=>n&&n!=="none",dl=({defaultSelected:n,highlightedIdx:e,treeNodes:t,onChange:r,selected:o,selection:s=al,selectionKeys:i=tm})=>{let l=s===al,a=s===Jf||s.startsWith(qf),c=s===em,u=Yf(-1),p=jt(b=>i.includes(b.key),[i]),[d,f]=jf({controlled:o,default:n!=null?n:[],name:"selected"}),m=jt((b,T,g,w,D=!1)=>{let{current:P}=u,E=d==null?void 0:d.includes(g),S=l||c&&!D&&(!w||P===-1),M=a||c&&D&&!w,I=[];if(S&&E)I=[];else if(S)I=[g];else if(M&&E)I=d.filter(L=>L!==g);else if(M)I=d.concat(g);else if(c){let[L,k]=T>P?[P,T]:[T,P];I=d.slice();for(let O=L;O<=k;O++){let{id:A}=t[O];d.includes(A)||I.push(A)}}f(I),r&&r(b,I)},[c,t,a,r,d,f,l]),h=jt(b=>{if(~e&&p(b)){b.preventDefault();let T=t[e];m(b,e,T.id,!1,b.ctrlKey||b.metaKey),c&&(u.current=e)}},[c,e,t,p,m]),x=jt((b,T)=>{if(c&&b.shiftKey){let g=t[T];m(b,T,g.id,!0)}},[c,t,m]),v=s==="none"?cl:{onKeyDown:h,onKeyboardNavigation:x},C=jt(b=>{if(e!==-1){let T=t[e];nm(T)||(b.preventDefault(),b.stopPropagation(),m(b,e,T.id,b.shiftKey,b.ctrlKey||b.metaKey),c&&(u.current=e))}},[c,e,t,m]);return{listHandlers:v,listItemHandlers:s==="none"?cl:{onClick:C},selected:d,setSelected:f}};import{useCallback as qr,useEffect as gl,useLayoutEffect as sm,useRef as $n}from"react";import{useCallback as rm,useEffect as pl,useRef as om}from"react";var Je=new Map,ml=(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}};var fl=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:l}]=r,[{blockSize:a,inlineSize:c}]=o,{onResize:u,measurements:p}=s,d=!1;for(let[f,m]of Object.entries(p)){let h=ml(t,{height:i,width:l,contentHeight:a,contentWidth:c},f);h!==m&&(d=!0,p[f]=h)}d&&u&&u(p)}}});function hl(n,e,t,r=!1){let o=om(e),s=rm(i=>{let{width:l,height:a}=i.getBoundingClientRect(),{clientWidth:c,clientHeight:u}=i;return o.current.reduce((p,d)=>(p[d]=ml(i,{width:l,height:a,contentHeight:u,contentWidth:c},d),p),{})},[]);pl(()=>{let i=n.current;async function l(){Je.set(i,{measurements:{}}),await document.fonts.ready;let a=Je.get(i);if(a){let c=s(i);a.measurements=c,fl.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");l()}return()=>{i&&Je.has(i)&&(fl.unobserve(i),Je.delete(i))}},[s,n]),pl(()=>{let i=n.current,l=Je.get(i);if(l){if(o.current!==e){o.current=e;let a=s(i);l.measurements=a}l.onResize=t}},[e,s,n,t])}var im=["height","scrollHeight"],bl=(n,e,t=!1)=>{let r=$n(0),o=$n(!1),s=$n(0),i=$n(0),l=qr(u=>{let p=u.ariaExpanded?u.firstChild:u,d=t?30:0,f=p.offsetTop,m=p.offsetHeight,h=r.current+d,x=h+s.current-d;(f+m>x||f<h)&&(r.current=f+m>x?r.current+(f+m)-x:f-d,o.current=!0,n.current&&(n.current.scrollTop=r.current),setTimeout(()=>{o.current=!1}))},[n,t]),a=qr(u=>{r.current=u.target.scrollTop},[]);gl(()=>{let{current:u}=n;return u&&u.addEventListener("scroll",a),()=>{u&&u.removeEventListener("scroll",a)}},[n,a]),sm(()=>{if(e!==-1&&i.current>s.current&&n.current){let u=n.current.querySelector(`
18
+ [data-idx='${e}'],
19
+ [aria-posinset='${e+1}']
20
+ `);u===null?console.log("[useViewportTracking], is this virtualised ? we're going to have to know rowHeight"):l(u)}},[e,n,l]),gl(()=>{},[t]);let c=qr(({height:u,scrollHeight:p})=>{s.current=u,i.current=p},[]);return hl(n,im,c,!0),o};import{useCallback as Ol,useRef as Cm}from"react";import{useCallback as qt,useMemo as Rl,useRef as Dl}from"react";var yl=({id:n})=>{let e=n.lastIndexOf("-");if(e!==-1){let r=n.slice(e+1).split(".");return r.length===1?null:(r.pop(),`${n.slice(0,e)}-${r.join(".")}`)}else if((e=n.lastIndexOf("/"))!==-1)return n.slice(0,e)},xl=n=>n.childNodes!==void 0;var Jr=n=>n.header===!0,lm=new Set([".","/"]),vl=(n,e)=>e.startsWith(n.id)?lm.has(e.charAt(n.id.length)):!1,et=(n,e)=>{for(let t of n){if(t.id===e)return t;if(vl(t,e))return et(t.childNodes,e)}},Vn=(n,e)=>{let t=typeof e=="string"?e:e.id;for(let r=0;r<n.length;r++)if(n[r].id===t)return r},Bn=(n,e,t)=>{let r;return n.map(s=>s.id===e?{...s,...t}:vl(s,e)?(r=Bn(s.childNodes,e,t),{...s,childNodes:r}):s)};import{useControlled as mm}from"@salt-ds/core";function am(n,...e){let t=new Set(n);for(let r of e)for(let o of r)t.add(o);return t}var eo="ArrowUp",Cl="ArrowDown",xt="ArrowLeft";var Tl="ArrowRight",Kn="Enter";var cm="Delete",um=new Set([Kn,cm]),dm=new Set(["Tab"]),pm=new Set(["ArrowRight","ArrowLeft"]),wl=new Set(["Home","End","ArrowDown","ArrowUp"]),Sl=new Set(["Home","End","ArrowRight","ArrowLeft"]),fm=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),$k=am(um,Sl,wl,pm,fm,dm);var El=({key:n},e="vertical")=>(e==="vertical"?wl:Sl).has(n);function Ml(n,e,t){return e===eo||e===xt?t>0?t-1:t:t===null?0:t===n-1?t:t+1}var hm=n=>!n.header&&!n.childNodes,gm=n=>hm(n)||n.expanded!==void 0,Pl=({defaultHighlightedIdx:n=-1,highlightedIdx:e,treeNodes:t,onHighlight:r,onKeyboardNavigation:o,selected:s=[]})=>{let{bwd:i,fwd:l}=Rl(()=>({bwd:eo,fwd:Cl}),[]),[a,c,u]=mm({controlled:e,default:n,name:"highlightedIdx"}),p=qt(b=>{r==null||r(b),c(b)},[r,c]),d=qt((b=l,T=b===l?-1:t.length)=>{let g=Ml(t.length,b,T);for(;g!==-1&&(b===l&&g<t.length||b===i&&g>0)&&!gm(t[g]);)g=Ml(t.length,b,g);return g},[i,l,t]),f=Dl(!0),m=Dl(!1),h=b=>m.current=b,x=qt(()=>{if(m.current)m.current=!1;else if(s.length>0){let b=et(t,s[0]);if(b){let T=Vn(t,b);p(T)}}else p(d())},[t,d,s,p]),v=qt(b=>{let T=d(b.key,a);T!==a&&(p(T),o==null||o(b,T))},[a,d,o,p]),C=qt(b=>{t.length>0&&El(b,"vertical")&&(b.preventDefault(),b.stopPropagation(),f.current=!0,v(b))},[t,v]),y=Rl(()=>({onBlur:()=>{p(-1)},onFocus:x,onKeyDown:C,onMouseDownCapture:()=>{f.current=!1,h(!0)},onMouseMove:()=>{f.current&&(f.current=!1)},onMouseLeave:()=>{f.current=!0,h(!1),p(-1)}}),[x,C,p]);return{focusVisible:f.current?a:-1,controlledHighlighting:u,highlightedIdx:a,hiliteItemAtIndex:p,keyBoardNavigation:f,listProps:y,setIgnoreFocus:h}};import{useRef as to,useState as bm}from"react";var Wn=(n,e=[],t={value:0})=>{let r=!1;for(let o of n)r&&!Jr(o)||(e[t.value]=o,t.value+=1,r=!1,Jr(o)&&o.expanded===!1?r=!0:xl(o)&&no(o)&&Wn(o.childNodes,e,t));return e},Ll=n=>{let e=to(n),t=to(n),r=to(Wn(n)),[,o]=bm({});n!==e.current&&(e.current=n,t.current=n,r.current=Wn(n));let s=i=>{t.current=i,r.current=Wn(i),o({})};return{data:t.current,indexPositions:r.current,setData:s}};import{useCallback as Jt,useRef as kl}from"react";var ym={},xm=n=>n&&n.hasAttribute("aria-expanded"),Il=({collapsibleHeaders:n,highlightedIdx:e,treeNodes:t,setVisibleData:r,source:o})=>{let s=kl(o),i=kl(s.current),l=Jt(m=>{r(i.current=m)},[r]),a=Jt((m,{id:h})=>Bn(m,h,{expanded:!0}),[]),c=Jt((m,{id:h})=>Bn(m,h,{expanded:!1}),[]),u=Jt(m=>{if(m.key===Tl||m.key===Kn){let h=t[e];h&&h.expanded===!1&&(m.preventDefault(),l(a(i.current,h)))}if(m.key===xt||m.key===Kn){let h=t[e];h&&h.expanded&&(m.preventDefault(),l(c(i.current,h)))}},[c,a,e,t,l]),p=n?{onKeyDown:u}:ym,f={onClick:Jt(m=>{let h=Yr(m.target);if(xm(h)){m.stopPropagation(),m.preventDefault();let x=et(o,h.id);(x==null?void 0:x.expanded)===!1?l(a(o,x)):(x==null?void 0:x.expanded)===!0&&l(c(o,x))}},[c,a,l,o])};return{listHandlers:p,listItemHandlers:f}};import{useCallback as vm}from"react";var Al=({highlightedIdx:n,hiliteItemAtIndex:e,indexPositions:t,source:r})=>({listHandlers:{onKeyDown:vm(i=>{if(i.key===xt){let l=t[n],a=yl(l);if(a){i.preventDefault();let c=et(r,a);if(c){let u=Vn(t,c);u!==void 0&&e(u)}}}},[n,e,t,r])}});var Tm=[],Hl=({defaultSelected:n,sourceWithIds:e,onChange:t,onHighlight:r,selected:o,selection:s})=>{let i=Cm(Tm),l=Ll(e),a=(y,b)=>{var T,g;(g=(T=d.listHandlers).onKeyboardNavigation)==null||g.call(T,y,b)},{highlightedIdx:c,...u}=Pl({treeNodes:l.indexPositions,onHighlight:r,onKeyboardNavigation:a,selected:i.current}),p=Il({collapsibleHeaders:!0,highlightedIdx:c,treeNodes:l.indexPositions,setVisibleData:l.setData,source:l.data}),d=dl({defaultSelected:n,highlightedIdx:c,treeNodes:l.indexPositions,onChange:t,selected:o,selection:s}),f=Al({source:l.data,highlightedIdx:c,hiliteItemAtIndex:u.hiliteItemAtIndex,indexPositions:l.indexPositions}),m=Ol(y=>{var b,T,g;(b=p.listItemHandlers)==null||b.onClick(y),y.defaultPrevented||(g=(T=d.listItemHandlers)==null?void 0:T.onClick)==null||g.call(T,y)},[p,d]),h=Ol(y=>{var b,T,g,w,D,P,E,R;(T=(b=u.listProps).onKeyDown)==null||T.call(b,y),y.defaultPrevented||(w=(g=d.listHandlers).onKeyDown)==null||w.call(g,y),y.defaultPrevented||(P=(D=p.listHandlers).onKeyDown)==null||P.call(D,y),y.defaultPrevented||(R=(E=f.listHandlers).onKeyDown)==null||R.call(E,y)},[p.listHandlers,u.listProps,d.listHandlers,f.listHandlers]),x=()=>{var y;return c===void 0||c===-1||(y=l.indexPositions[c])==null?void 0:y.id};i.current=d.selected;let v={"aria-activedescendant":x(),onBlur:u.listProps.onBlur,onFocus:u.listProps.onFocus,onKeyDown:h,onMouseDownCapture:u.listProps.onMouseDownCapture,onMouseLeave:u.listProps.onMouseLeave,onMouseMove:u.listProps.onMouseMove},C={onClick:m};return{focusVisible:u.focusVisible,highlightedIdx:c,hiliteItemAtIndex:u.hiliteItemAtIndex,listProps:v,listItemHandlers:C,selected:d.selected,visibleData:l.data}};import{jsx as Ve,jsxs as ro}from"react/jsx-runtime";import{createElement as Pm}from"react";var $e="vuuTree",no=n=>n.expanded===!0,Nl=({children:n,idx:e,...t})=>Ve("li",{...t,children:n}),Dm=Em(function({allowDragDrop:e,className:t,defaultSelected:r,groupSelection:o="none",id:s,onHighlight:i,onSelectionChange:l,revealSelected:a,selected:c,selection:u="single",source:p,...d},f){var k;let m=Sm(s),h=Rm(null),[,x,v]=ll(p,m,{revealSelected:a?(k=c!=null?c:r)!=null?k:!1:void 0}),C=(O,A)=>{if(l){let N=A.map(H=>v(H)).filter(H=>H!==void 0);l(N)}},{focusVisible:y,highlightedIdx:b,hiliteItemAtIndex:T,listProps:g,listItemHandlers:w,selected:D,visibleData:P}=Hl({defaultSelected:r,groupSelection:o,onChange:C,onHighlight:i,selected:c,selection:u,sourceWithIds:x});bl(h,b);let R={...{onMouseEnter:O=>{let A=O.target,N=sl(A);T(N)}},...w,role:"treeitem"},S=ul(o);function M(O,A,N){O.push(ro(Nl,{...R,...Mm(A,N,b,D,y),children:[A.icon?Ve("span",{className:`${$e}Node-icon`,"data-icon":A.icon}):null,Ve("span",{children:A.label})]})),N.value+=1}function I(O,A,N,H,V){let{value:z}=N;N.value+=1,O.push(Pm(Nl,{...w,"aria-expanded":A.expanded,"aria-level":A.level,"aria-selected":D.includes(H)||void 0,className:oo(`${$e}Node`,{focusVisible:y===z,[`${$e}Node-toggle`]:!S}),"data-idx":z,"data-highlighted":z===b||void 0,"data-selectable":!0,id:H,key:`header-${z}`},S?ro("div",{className:`${$e}Node-label`,children:[Ve("span",{className:`${$e}Node-toggle`}),V]}):ro("div",{className:`${$e}Node-label`,children:[A.icon?Ve("span",{className:`${$e}Node-icon`,"data-icon":A.icon}):null,Ve("span",{children:V})]}),Ve("ul",{role:"group",children:no(A)?L(A.childNodes,N):""})))}function L(O,A={value:0}){if((O==null?void 0:O.length)>0){let N=[];for(let H of O)H.childNodes?I(N,H,A,H.id,H.label):M(N,H,A);return N}}return Ve("ul",{...d,...g,className:oo($e,t),id:`Tree-${m}`,ref:wm(h,f),role:"tree",tabIndex:0,children:L(P)})}),Mm=(n,e,t,r,o,s)=>({id:n.id,key:n.id,"aria-level":n.level,"aria-selected":r.includes(n.id)||void 0,"data-idx":e.value,"data-highlighted":e.value===t||void 0,className:oo("vuuTreeNode",s,{focusVisible:o===e.value})});Dm.displayName="Tree";import Im from"classnames";import{memo as Am,useCallback as Om,useRef as Hm,useState as zl}from"react";import{jsx as _n}from"react/jsx-runtime";var{KEY:Fl}=km,so=Am(({className:n,column:e,columnMap:t,onClick:r,row:o})=>{let s=Hm(null),{align:i,CellRenderer:l,key:a,pin:c,editable:u,resizing:p,valueFormatter:d}=e,[f,m]=zl(!1),h=d(o[a]),[x,v]=zl(h),C=()=>{var P;(P=s.current)==null||P.focus()},y=P=>{P.key==="Enter"&&m(!0)},b=Om(P=>{r==null||r(P,e)},[e,r]),T=()=>{m(!0)},g=(P="",E="",R=!0,S=!1)=>{var M;m(!1),S?v(P):E!==P&&v(E),R===!1&&((M=s.current)==null||M.focus())},w=Im(n,{vuuAlignRight:i==="right",vuuPinFloating:c==="floating",vuuPinLeft:c==="left",vuuPinRight:c==="right","vuuTableCell-resizing":p})||void 0,D=Lm(e);return u?_n("div",{className:w,"data-editable":!0,role:"cell",style:D,onKeyDown:y,children:_n(pt,{editing:f,value:x,onChange:v,onMouseDownCapture:C,onEnterEditMode:T,onExitEditMode:g,onKeyDown:y,ref:s,tabIndex:0},"title")}):_n("div",{className:w,role:"cell",style:D,onClick:b,children:l?_n(l,{column:e,columnMap:t,row:o}):h})},Nm);so.displayName="TableCell";function Nm(n,e){return n.column===e.column&&n.onClick===e.onClick&&n.row[Fl]===e.row[Fl]&&n.row[n.column.key]===e.row[e.column.key]}import{getColumnStyle as zm,getGroupValueAndOffset as Fm,metadataKeys as $m}from"@vuu-ui/vuu-utils";import{useCallback as Vm}from"react";import{jsx as io,jsxs as Km}from"react/jsx-runtime";var{IS_LEAF:Bm}=$m,$l=({column:n,onClick:e,row:t})=>{let{columns:r}=n,[o,s]=Fm(r,t),i=Vm(u=>{e==null||e(u,n)},[n,e]),l=zm(n),a=t[Bm],c=Array(s).fill(0).map((u,p)=>io("span",{className:"vuuTableGroupCell-spacer"},p));return Km("div",{className:"vuuTableGroupCell vuuPinLeft",onClick:a?void 0:i,role:"cell",style:l,children:[c,a?null:io("span",{className:"vuuTableGroupCell-toggle","data-icon":"triangle-right"}),io("span",{children:o})]})};import{jsx as Kl,jsxs as qm}from"react/jsx-runtime";var{IDX:Zm,IS_EXPANDED:Ym,SELECTED:jm}=Gm,Gn="vuuTableRow",Wl=Qm(function({columnMap:e,columns:t,offset:r,onClick:o,onToggleGroup:s,virtualColSpan:i=0,row:l}){let{[Zm]:a,[Ym]:c,[jm]:u}=l,p=Xm(Gn,{[`${Gn}-even`]:a%2===0,[`${Gn}-expanded`]:c,[`${Gn}-preSelected`]:u===2}),d=Bl(m=>{let h=m.shiftKey,x=m.ctrlKey||m.metaKey;o==null||o(l,h,x)},[o,l]),f=Bl((m,h)=>{(Vl(h)||_m(h,l))&&(m.stopPropagation(),s==null||s(l,h))},[s,l]);return qm("div",{"aria-selected":u===1?!0:void 0,"aria-rowindex":a,className:p,onClick:d,role:"row",style:{transform:`translate3d(0px, ${r}px, 0px)`},children:[i>0?Kl("div",{role:"cell",style:{width:i}}):null,t.filter(Um).map(m=>{let h=Vl(m),x=Wm(m);return Kl(h?$l:so,{column:m,columnMap:e,onClick:h||x?f:void 0,row:l},m.name)})]})});import Ul from"classnames";import{useRef as Jm}from"react";import{useCallback as lo,useRef as _l}from"react";var vt=({column:n,onResize:e,rootRef:t})=>{let r=_l(0),o=_l(!1),{name:s}=n,i=lo(()=>{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]),l=lo((c,u)=>{if(t.current&&e){let{width:p}=t.current.getBoundingClientRect(),d=Math.round(p)+u;d!==r.current&&d>0&&(e("resize",s,d),r.current=d)}},[s,e,t]),a=lo(()=>{e&&(e("end",s,r.current),setTimeout(()=>{o.current=!1},100))},[s,e]);return{isResizing:o.current,onDrag:l,onDragStart:i,onDragEnd:a}};import{jsx as tt,jsxs as Ql}from"react/jsx-runtime";var Be="vuuTable-groupHeaderCell",Gl=({column:n,onClick:e,...t})=>tt("span",{...t,className:`${Be}-close`,"data-icon":"close-circle",onClick:()=>e==null?void 0:e(n)}),eh=n=>{let{children:e,column:t,className:r}=n;return Ql("div",{className:Ul(`${Be}-col`,r),role:"columnheader",children:[tt("span",{className:`${Be}-label`,children:t.name}),e]})},Xl=({column:n,className:e,onRemoveColumn:t,onResize:r,...o})=>{let s=Jm(null),{isResizing:i,...l}=vt({column:n,onResize:r,rootRef:s}),a=Ul(Be,e,{vuuPinLeft:n.pin==="left",[`${Be}-right`]:n.align==="right",[`${Be}-resizing`]:n.resizing,[`${Be}-pending`]:n.groupConfirmed===!1}),{columns:c}=n;return tt("div",{className:a,ref:s,...o,children:Ql("div",{className:`${Be}-inner`,children:[c.map(u=>tt(eh,{column:u,children:c.length>1?tt(Gl,{column:u,onClick:t}):null},u.key)),tt(Gl,{"data-align":"end",onClick:t}),n.resizeable!==!1?tt(at,{...l}):null]})})};import sh from"classnames";import{useCallback as ao,useRef as ql}from"react";import Zl from"classnames";var Yl="vuuSortIndicator",Un=({sorted:n})=>{if(!n)return null;let e=typeof n=="number"?n<0?"dsc":"asc":n==="A"?"asc":"dsc";return typeof n=="number"?React.createElement("div",{className:Zl(Yl,"multi-col",e)},React.createElement("span",{"data-icon":`sorted-${e}`}),React.createElement("span",{className:"vuuSortPosition"},Math.abs(n))):React.createElement("div",{className:Zl(Yl,"single-col")},React.createElement("span",{"data-icon":`sorted-${e}`}))};import{useContextMenu as ih}from"@vuu-ui/vuu-popups";import{useContextMenu as th}from"@vuu-ui/vuu-popups";import nh from"classnames";import{useCallback as rh}from"react";import{jsx as oh}from"react/jsx-runtime";var jl=({column:n,filter:e})=>{let[t]=th(),r=rh(o=>{o.stopPropagation(),t(o,"filter",{column:n,filter:e})},[n,e,t]);return n.filter?oh("div",{className:nh("vuuFilterIndicator"),"data-icon":"filter",onClick:r}):null};import{jsx as tn,jsxs as lh}from"react/jsx-runtime";var en="vuuTable-headerCell",Jl=({column:n,className:e,onClick:t,onDragStart:r,onResize:o,...s})=>{let i=ql(null),{isResizing:l,...a}=vt({column:n,onResize:o,rootRef:i}),[c]=ih(),u=ql(null),p=x=>{c(x,"header",{column:n})},d=ao(x=>!l&&(t==null?void 0:t(x)),[l,t]),f=ao(x=>{u.current=window.setTimeout(()=>{r==null||r(x),u.current=null},500)},[r]),m=ao(()=>{u.current!==null&&(window.clearTimeout(u.current),u.current=null)},[]),h=sh(en,e,{vuuPinFloating:n.pin==="floating",vuuPinLeft:n.pin==="left",vuuPinRight:n.pin==="right",vuuEndPin:n.endPin,[`${en}-resizing`]:n.resizing,[`${en}-right`]:n.align==="right"});return tn("div",{className:h,...s,onClick:d,onContextMenu:p,onMouseDown:f,onMouseUp:m,ref:i,children:lh("div",{className:`${en}-inner`,children:[tn(jl,{column:n}),tn("div",{className:`${en}-label`,children:n.label}),tn(Un,{sorted:n.sorted}),n.resizeable!==!1?tn(at,{...a}):null]})})};import{jsx as nt,jsxs as na}from"react/jsx-runtime";var co="vuuTable",{RENDER_IDX:mh}=dh,ra=({columns:n,columnsWithinViewport:e,data:t,getRowOffset:r,headings:o,onColumnResize:s,onHeaderCellDragStart:i,onContextMenu:l,onRemoveColumnFromGroupBy:a,onRowClick:c,onSort:u,onToggleGroup:p,tableId:d,virtualColSpan:f=0,rowCount:m})=>{let h=ea(y=>{i==null||i(y)},[i]),x=ta(()=>n.filter(ph),[n]),v=ta(()=>ah(n),[n]),C=ea(y=>{var P;let T=y.target.closest(".vuuTable-headerCell"),g=parseInt((P=T==null?void 0:T.dataset.idx)!=null?P:"-1"),w=fh(n,g),D=y.shiftKey;w&&u(w,D)},[n,u]);return na("div",{"aria-rowcount":m,className:`${co}-table`,role:"table",children:[na("div",{className:`${co}-headers`,role:"rowGroup",children:[o.map((y,b)=>nt("div",{className:"vuuTable-heading",children:y.map(({label:T,width:g},w)=>nt("div",{className:"vuuTable-headingCell",style:{width:g},children:T},w))},b)),nt("div",{role:"row",children:x.map((y,b)=>{let T=ch(y);return uh(y)?nt(Xl,{column:y,"data-idx":b,onRemoveColumn:a,onResize:s,role:"columnHeader",style:T},b):nt(Jl,{column:y,"data-idx":b,id:`${d}-${b}`,onClick:C,onDragStart:h,onResize:s,role:"columnHeader",style:T},b)})})]}),nt("div",{className:`${co}-body`,onContextMenu:l,role:"rowGroup",children:t==null?void 0:t.map(y=>nt(Wl,{columnMap:v,columns:e,offset:r(y),onClick:c,virtualColSpan:f,onToggleGroup:p,row:y},y[mh]))})]})};import{useContextMenu as Zg}from"@vuu-ui/vuu-popups";import{applySort as Yg,buildColumnMap as jg,isJsonGroup as qg,metadataKeys as Jg,moveItem as eb}from"@vuu-ui/vuu-utils";import{useCallback as Te,useEffect as ja,useMemo as tb,useRef as zo,useState as nb}from"react";import{getFullRange as RO,metadataKeys as hh,WindowRange as DO}from"@vuu-ui/vuu-utils";import{useCallback as PO,useEffect as LO,useMemo as kO,useRef as IO,useState as AO}from"react";var{SELECTED:OO}=hh;import{useCallback as zO,useEffect as FO,useState as $O}from"react";import{ConnectionManager as BO}from"@vuu-ui/vuu-data";import{useCallback as GO,useEffect as UO,useState as XO}from"react";import{ConnectionManager as ZO}from"@vuu-ui/vuu-data";import{useCallback as qO}from"react";import{makeRpcCall as eH}from"@vuu-ui/vuu-data";var gh=0,nn=class{constructor(e,t){this.from=e,this.to=t}},X=class{constructor(e={}){this.id=gh++,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=ae.match(e)),t=>{let r=e(t);return r===void 0?null:[this,r]}}};X.closedBy=new X({deserialize:n=>n.split(" ")});X.openedBy=new X({deserialize:n=>n.split(" ")});X.group=new X({deserialize:n=>n.split(" ")});X.contextHash=new X({perNode:!0});X.lookAhead=new X({perNode:!0});X.mounted=new X({perNode:!0});var bh=Object.create(null),ae=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):bh,r=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),o=new ae(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(X.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(X.group),s=-1;s<(o?o.length:0);s++){let i=t[s<0?r.name:o[s]];if(i)return i}}}};ae.none=new ae("",Object.create(null),0,8);var Ct=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 ae(r.name,o,r.id,r.flags):r)}return new Ct(t)}},Xn=new WeakMap,oa=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,l]of s)this.props[typeof i=="number"?i:i.id]=l}}toString(){let e=this.prop(X.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 wt(this.topNode,e)}cursorAt(e,t=0,r=0){let o=Xn.get(this)||this.topNode,s=new wt(o);return s.moveTo(e,t),Xn.set(this,s._tree),s}get topNode(){return new ve(this,0,0,null)}resolve(e,t=0){let r=Tt(Xn.get(this)||this.topNode,e,t,!1);return Xn.set(this,r),r}resolveInner(e,t=0){let r=Tt(oa.get(this)||this.topNode,e,t,!0);return oa.set(this,r),r}iterate(e){let{enter:t,leave:r,from:o=0,to:s=this.length}=e,i=e.mode||0,l=(i&ne.IncludeAnonymous)>0;for(let a=this.cursor(i|ne.IncludeAnonymous);;){let c=!1;if(a.from<=s&&a.to>=o&&(!l&&a.type.isAnonymous||t(a)!==!1)){if(a.firstChild())continue;c=!0}for(;c&&r&&(l||!a.type.isAnonymous)&&r(a),!a.nextSibling();){if(!a.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:mo(ae.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(ae.none,t,r,o)))}static build(e){return yh(e)}};re.empty=new re(ae.none,[],[],0);var rn=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 rn(this.buffer,this.index)}},Oe=class{constructor(e,t,r){this.buffer=e,this.length=t,this.set=r}get type(){return ae.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,l=-1;for(let a=e;a!=t&&!(ia(s,o,i[a+1],i[a+2])&&(l=a,r>0));a=i[a+3]);return l}slice(e,t,r){let o=this.buffer,s=new Uint16Array(t-e),i=0;for(let l=e,a=0;l<t;){s[a++]=o[l++],s[a++]=o[l++]-r;let c=s[a++]=o[l++]-r;s[a++]=o[l++]-e,i=Math.max(i,c)}return new Oe(s,i,this.set)}};function ia(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 la(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 Tt(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,l=i.parent;l;i=l,l=i.parent)i instanceof ve&&i.index<0&&((o=l.enter(e,t,s))===null||o===void 0?void 0:o.from)!=i.from&&(n=l);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:l,positions:a}=i._tree,c=t>0?l.length:-1;e!=c;e+=t){let u=l[e],p=a[e]+i.from;if(ia(o,r,p,p+u.length)){if(u instanceof Oe){if(s&ne.ExcludeBuffers)continue;let d=u.findChild(0,u.buffer.length,t,r-p,o);if(d>-1)return new Me(new uo(i,u,e,p),null,d)}else if(s&ne.IncludeAnonymous||!u.type.isAnonymous||fo(u)){let d;if(!(s&ne.IgnoreMounts)&&u.props&&(d=u.prop(X.mounted))&&!d.overlay)return new ve(d.tree,p,e,i);let f=new ve(u,p,e,i);return s&ne.IncludeAnonymous||!f.type.isAnonymous?f:f.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(X.mounted))&&o.overlay){let s=e-this.from;for(let{from:i,to:l}of o.overlay)if((t>0?i<=s:i<s)&&(t<0?l>=s:l>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 wt(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return Tt(this,e,t,!1)}resolveInner(e,t=0){return Tt(this,e,t,!0)}enterUnfinishedNodesBefore(e){return la(this,e)}getChild(e,t=null,r=null){let o=Zn(this,e,t,r);return o.length?o[0]:null}getChildren(e,t=null,r=null){return Zn(this,e,t,r)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return Yn(this,e)}};function Zn(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 Yn(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 uo=class{constructor(e,t,r,o){this.parent=e,this.buffer=t,this.index=r,this.start=o}},Me=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 Me(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 Me(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 Me(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 Me(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new wt(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 Tt(this,e,t,!1)}resolveInner(e,t=0){return Tt(this,e,t,!0)}enterUnfinishedNodesBefore(e){return la(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,r=null){let o=Zn(this,e,t,r);return o.length?o[0]:null}getChildren(e,t=null,r=null){return Zn(this,e,t,r)}get node(){return this}matchContext(e){return Yn(this,e)}},wt=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 l=r._tree.children[s];if(this.mode&ne.IncludeAnonymous||l instanceof Oe||!l.type.isAnonymous||fo(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,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 Me(this.buffer,t,this.stack[o]);return this.bufferNode=new Me(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 Yn(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 Yn(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 fo(n){return n.children.some(e=>e instanceof Oe||!e.type.isAnonymous||fo(e))}function yh(n){var e;let{buffer:t,nodeSet:r,maxBufferLength:o=1024,reused:s=[],minRepeatType:i=r.types.length}=n,l=Array.isArray(t)?new rn(t,t.length):t,a=r.types,c=0,u=0;function p(b,T,g,w,D){let{id:P,start:E,end:R,size:S}=l,M=u;for(;S<0;)if(l.next(),S==-1){let A=s[P];g.push(A),w.push(E-b);return}else if(S==-3){c=P;return}else if(S==-4){u=P;return}else throw new RangeError(`Unrecognized record size: ${S}`);let I=a[P],L,k,O=E-b;if(R-E<=o&&(k=h(l.pos-T,D))){let A=new Uint16Array(k.size-k.skip),N=l.pos-k.size,H=A.length;for(;l.pos>N;)H=x(k.start,A,H);L=new Oe(A,R-k.start,r),O=k.start-b}else{let A=l.pos-S;l.next();let N=[],H=[],V=P>=i?P:-1,z=0,B=R;for(;l.pos>A;)V>=0&&l.id==V&&l.size>=0?(l.end<=B-o&&(f(N,H,E,z,l.end,B,V,M),z=N.length,B=l.end),l.next()):p(E,A,N,H,V);if(V>=0&&z>0&&z<N.length&&f(N,H,E,z,E,B,V,M),N.reverse(),H.reverse(),V>-1&&z>0){let W=d(I);L=mo(I,N,H,0,N.length,0,R-E,W,W)}else L=m(I,N,H,R-E,M-R)}g.push(L),w.push(O)}function d(b){return(T,g,w)=>{let D=0,P=T.length-1,E,R;if(P>=0&&(E=T[P])instanceof re){if(!P&&E.type==b&&E.length==w)return E;(R=E.prop(X.lookAhead))&&(D=g[P]+E.length+R)}return m(b,T,g,w,D)}}function f(b,T,g,w,D,P,E,R){let S=[],M=[];for(;b.length>w;)S.push(b.pop()),M.push(T.pop()+g-D);b.push(m(r.types[E],S,M,P-D,R-P)),T.push(D-g)}function m(b,T,g,w,D=0,P){if(c){let E=[X.contextHash,c];P=P?[E].concat(P):[E]}if(D>25){let E=[X.lookAhead,D];P=P?[E].concat(P):[E]}return new re(b,T,g,w,P)}function h(b,T){let g=l.fork(),w=0,D=0,P=0,E=g.end-o,R={size:0,start:0,skip:0};e:for(let S=g.pos-b;g.pos>S;){let M=g.size;if(g.id==T&&M>=0){R.size=w,R.start=D,R.skip=P,P+=4,w+=4,g.next();continue}let I=g.pos-M;if(M<0||I<S||g.start<E)break;let L=g.id>=i?4:0,k=g.start;for(g.next();g.pos>I;){if(g.size<0)if(g.size==-3)L+=4;else break e;else g.id>=i&&(L+=4);g.next()}D=k,w+=M,P+=L}return(T<0||w==b)&&(R.size=w,R.start=D,R.skip=P),R.size>4?R:void 0}function x(b,T,g){let{id:w,start:D,end:P,size:E}=l;if(l.next(),E>=0&&w<i){let R=g;if(E>4){let S=l.pos-(E-4);for(;l.pos>S;)g=x(b,T,g)}T[--g]=R,T[--g]=P-b,T[--g]=D-b,T[--g]=w}else E==-3?c=w:E==-4&&(u=w);return g}let v=[],C=[];for(;l.pos>0;)p(n.start||0,n.bufferStart||0,v,C,-1);let y=(e=n.length)!==null&&e!==void 0?e:v.length?C[0]+v[0].length:0;return new re(a[n.topID],v.reverse(),C.reverse(),y)}var sa=new WeakMap;function Qn(n,e){if(!n.isAnonymous||e instanceof Oe||e.type!=n)return 1;let t=sa.get(e);if(t==null){t=1;for(let r of e.children){if(r.type!=n||!(r instanceof re)){t=1;break}t+=Qn(n,r)}sa.set(e,t)}return t}function mo(n,e,t,r,o,s,i,l,a){let c=0;for(let m=r;m<o;m++)c+=Qn(n,e[m]);let u=Math.ceil(c*1.5/8),p=[],d=[];function f(m,h,x,v,C){for(let y=x;y<v;){let b=y,T=h[y],g=Qn(n,m[y]);for(y++;y<v;y++){let w=Qn(n,m[y]);if(g+w>=u)break;g+=w}if(y==b+1){if(g>u){let w=m[b];f(w.children,w.positions,0,w.children.length,h[b]+C);continue}p.push(m[b])}else{let w=h[y-1]+m[y-1].length-T;p.push(mo(n,m,h,b,y,T,w,null,a))}d.push(T+C-s)}}return f(e,t,r,o,0),(l||a)(p,d,i)}var jn=class{startParse(e,t,r){return typeof e=="string"&&(e=new po(e)),r=r?r.length?r.map(o=>new nn(o.from,o.to)):[new nn(0,0)]:[new nn(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}}},po=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 nH=new X({perNode:!0});var Et=class{constructor(e,t,r,o,s,i,l,a,c,u=0,p){this.p=e,this.stack=t,this.state=r,this.reducePos=o,this.pos=s,this.score=i,this.buffer=l,this.bufferBase=a,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 Et(e,[],t,r,r,0,[],0,o?new qn(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 l=this.stack.length-(r-1)*3-(e&262144?6:0),a=l?this.stack[l-2]:this.p.ranges[0].from,c=this.reducePos-a;c>=2e3&&!(!((t=this.p.parser.nodeSet.types[o])===null||t===void 0)&&t.isAnonymous)&&(a==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=c):this.p.lastBigReductionSize<c&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=a,this.p.lastBigReductionSize=c));let u=l?this.stack[l-1]:0,p=this.bufferBase+this.buffer.length-u;if(o<s.minRepeatTerm||e&131072){let d=s.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(o,a,d,p+4,!0)}if(e&262144)this.state=this.stack[l];else{let d=this.stack[l-3];this.state=s.getGoto(d,o,!0)}for(;this.stack.length>l;)this.stack.pop();this.reduceContext(o,a)}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,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==r)return;if(i.buffer[l-2]>=t){i.buffer[l-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 Et(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 go(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((l,a)=>a&1&&l==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 l=(i>>19)-s;if(l>1){let a=i&65535,c=this.stack.length-l*3;if(c>=0&&e.getGoto(this.stack[c],a,!1)>=0)return l<<19|65536|a}}else{let l=r(i,s+1);if(l!=null)return l}})};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 qn(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()}},qn=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},aa;(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"})(aa||(aa={}));var go=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}},Rt=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 Rt(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 Rt(this.stack,this.pos,this.index)}};function on(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++),l=!1;if(i==126){s=65535;break}i>=92&&i--,i>=34&&i--;let a=i-32;if(a>=46&&(a-=46,l=!0),s+=a,l)break;s*=46}t?t[o++]=s:t=new e(s)}return t}var St=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},ca=new St,bo=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=ca,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,l=this.range;for(;l.to<=r;)l=this.ranges[++i];this.chunk2=this.input.chunk(this.chunk2Pos=r),r+this.chunk2.length>l.to&&(this.chunk2=this.chunk2.slice(0,l.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=ca,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}},Ke=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:r}=t.p;ga(this.data,e,t,this.id,r.data,r.tokenPrecTable)}};Ke.prototype.contextual=Ke.prototype.fallback=Ke.prototype.extend=!1;var yo=class{constructor(e,t,r){this.precTable=t,this.elseToken=r,this.data=typeof e=="string"?on(e):e}token(e,t){let r=e.pos,o=0;for(;;){let s=e.next<0,i=e.resolveOffset(1,1);if(ga(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))}};yo.prototype.contextual=Ke.prototype.fallback=Ke.prototype.extend=!1;function ga(n,e,t,r,o,s){let i=0,l=1<<r,{dialect:a}=t.p.parser;e:for(;l&n[i];){let c=n[i+1];for(let f=i+3;f<c;f+=2)if((n[f+1]&l)>0){let m=n[f];if(a.allows(m)&&(e.token.value==-1||e.token.value==m||vh(m,e.token.value,o,s))){e.acceptToken(m);break}}let u=e.next,p=0,d=n[i+2];if(e.next<0&&d>p&&n[c+d*3-3]==65535&&n[c+d*3-3]==65535){i=n[c+d*3-1];continue e}for(;p<d;){let f=p+d>>1,m=c+f+(f<<1),h=n[m],x=n[m+1]||65536;if(u<h)d=f;else if(u>=x)p=f+1;else{i=n[m+2],e.advance();continue e}}break}}function ua(n,e,t){for(let r=e,o;(o=n[r])!=65535;r++)if(o==t)return r-e;return-1}function vh(n,e,t,r){let o=ua(t,r,e);return o<0||ua(t,r,n)<o}var Ce=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),ho=null,da;(function(n){n[n.Margin=25]="Margin"})(da||(da={}));function pa(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 xo=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?pa(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?pa(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 l=i+s.length;if(l<=this.safeTo){let a=s.prop(X.lookAhead);if(!a||l+a<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}}},vo=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(r=>new St)}getActions(e){let t=0,r=null,{parser:o}=e.p,{tokenizers:s}=o,i=o.stateSlot(e.state,3),l=e.curContext?e.curContext.hash:0,a=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!=l)&&(this.updateCachedToken(p,u,e),p.mask=i,p.context=l),p.lookAhead>p.end+25&&(a=Math.max(p.lookAhead,a)),p.value!=0)){let d=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>d))break}}for(;this.actions.length>t;)this.actions.pop();return a&&e.setLookAhead(a),!r&&e.pos==this.stream.end&&(r=new St,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 St,{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 l=s.specializers[i](this.stream.read(e.start,e.end),r);if(l>=0&&r.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(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:l}=i;for(let a=0;a<2;a++)for(let c=i.stateSlot(s,a?2:1);;c+=3){if(l[c]==65535)if(l[c+1]==1)c=He(l,c+2);else{o==0&&l[c+1]==2&&(o=this.putAction(He(l,c+2),t,r,o));break}l[c]==t&&(o=this.putAction(He(l,c+1),t,r,o))}return o}},fa;(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"})(fa||(fa={}));var Co=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 bo(t,o),this.tokens=new vo(e,this.stream),this.topTerm=e.top[1];let{from:s}=o[0];this.stacks=[Et.start(this,e.top[0],s)],this.fragments=r.length&&this.stream.end-s>e.bufferLength*4?new xo(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 l=e[i];for(;;){if(this.tokens.mainToken=null,l.pos>t)r.push(l);else{if(this.advanceStack(l,r,e))continue;{o||(o=[],s=[]),o.push(l);let a=this.tokens.getMainToken(l);s.push(a.value,a.end)}}break}}if(!r.length){let i=o&&Ch(o);if(i)return this.stackToTree(i);if(this.parser.strict)throw Ce&&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((l,a)=>a.score-l.score);r.length>i;)r.pop();r.some(l=>l.reducePos>t)&&this.recovering--}else if(r.length>1){e:for(let i=0;i<r.length-1;i++){let l=r[i];for(let a=i+1;a<r.length;a++){let c=r[a];if(l.sameState(c)||l.buffer.length>500&&c.buffer.length>500)if((l.score-c.score||l.buffer.length-c.buffer.length)>0)r.splice(a--,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=Ce?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 d=this.parser.nodeSet.types[p.type.id]==p.type?s.getGoto(e.state,p.type.id):-1;if(d>-1&&p.length&&(!c||(p.prop(X.contextHash)||0)==u))return e.useNode(p,d),Ce&&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 f=p.children[0];if(f instanceof re&&p.positions[0]==0)p=f;else break}}let l=s.stateSlot(e.state,4);if(l>0)return e.reduce(l),Ce&&console.log(i+this.stackID(e)+` (via always-reduce ${s.getName(l&65535)})`),!0;if(e.stack.length>=15e3)for(;e.stack.length>9e3&&e.forceReduce(););let a=this.tokens.getActions(e);for(let c=0;c<a.length;){let u=a[c++],p=a[c++],d=a[c++],f=c==a.length||!r,m=f?e:e.split();if(m.apply(u,p,d),Ce&&console.log(i+this.stackID(m)+` (via ${u&65536?`reduce of ${s.getName(u&65535)}`:"shift"} for ${s.getName(p)} @ ${o}${m==e?"":", split"})`),f)return!0;m.pos>o?t.push(m):r.push(m)}return!1}advanceFully(e,t){let r=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>r)return ma(e,t),!0}}runRecovery(e,t,r){let o=null,s=!1;for(let i=0;i<e.length;i++){let l=e[i],a=t[i<<1],c=t[(i<<1)+1],u=Ce?this.stackID(l)+" -> ":"";if(l.deadEnd&&(s||(s=!0,l.restart(),Ce&&console.log(u+this.stackID(l)+" (restarted)"),this.advanceFully(l,r))))continue;let p=l.split(),d=u;for(let f=0;p.forceReduce()&&f<10&&(Ce&&console.log(d+this.stackID(p)+" (via force-reduce)"),!this.advanceFully(p,r));f++)Ce&&(d=this.stackID(p)+" -> ");for(let f of l.recoverByInsert(a))Ce&&console.log(u+this.stackID(f)+" (via recover-insert)"),this.advanceFully(f,r);this.stream.end>l.pos?(c==l.pos&&(c++,a=0),l.recoverByDelete(a,c),Ce&&console.log(u+this.stackID(l)+` (via recover-delete ${this.parser.getName(a)})`),ma(l,r)):(!o||o.score<l.score)&&(o=l)}return o}stackToTree(e){return e.close(),re.build({buffer:Rt.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=(ho||(ho=new WeakMap)).get(e);return t||ho.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function ma(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 To=class{constructor(e,t,r){this.source=e,this.flags=t,this.disabled=r}allows(e){return!this.disabled||this.disabled[e]==0}};var rt=class extends jn{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 r=Object.keys(e.topRules).map(l=>e.topRules[l][1]),o=[];for(let l=0;l<t.length;l++)o.push([]);function s(l,a,c){o[l].push([a,a.deserialize(String(c))])}if(e.nodeProps)for(let l of e.nodeProps){let a=l[0];typeof a=="string"&&(a=X[a]);for(let c=1;c<l.length;){let u=l[c++];if(u>=0)s(u,a,l[c++]);else{let p=l[c+-u];for(let d=-u;d>0;d--)s(l[c++],a,p);c++}}}this.nodeSet=new Ct(t.map((l,a)=>ae.define({name:a>=this.minRepeatTerm?void 0:l,id:a,props:o[a],top:r.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=on(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(ha),this.states=on(e.states,Uint32Array),this.data=on(e.stateData),this.goto=on(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(l=>typeof l=="number"?new Ke(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,r){let o=new Co(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++],l=i&1,a=o[s++];if(l&&r)return a;for(let c=s+(i>>1);s<c;s++)if(o[s]==e)return a;if(l)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=He(r,s+2)];else{if(r[s+1]==2)return He(r,s+2);break}if(i==t||i==0)return He(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=He(this.data,s+2);else break;o=t(He(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=He(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(rt.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(l=>l.from==r.external);if(!s)return r;let i=Object.assign(Object.assign({},r),{external:s.to});return t.specializers[o]=ha(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]],l;(l=this.data[i++])!=65535;)(o||(o=new Uint8Array(this.maxTerm+1)))[l]=1;return new To(e,r,o)}static deserialize(e){return new rt(e)}};function He(n,e){return n[e]|n[e+1]<<16}function Ch(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 ha(n){if(n.external){let e=n.extend?1:0;return(t,r)=>n.external(t,r)<<1|e}return n.get}var wo=rt.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 sn,isMultiValueFilter as Th,isSingleValueFilter as wh}from"@vuu-ui/vuu-utils";var ce,ba=class{constructor(){Go(this,ce,void 0)}setFilterCombinatorOp(e,t=Se(this,ce)){sn(t)&&t.op===e||sr(this,ce,{op:e,filters:[Se(this,ce)]})}add(e){if(Se(this,ce)===void 0)sr(this,ce,e);else if(sn(Se(this,ce)))Se(this,ce).filters.push(e);else throw Error("Invalid filter passed to FilterExpression")}setColumn(e,t=Se(this,ce)){if(sn(t)){let r=t.filters.at(-1);r&&this.setColumn(e,r)}else t&&(t.column=e)}setOp(e,t=Se(this,ce)){if(sn(t)){let r=t.filters.at(-1);r&&this.setOp(e,r)}else t&&(t.op=e)}setValue(e,t=Se(this,ce)){var r;if(sn(t)){let o=t.filters.at(-1);o&&this.setValue(e,o)}else Th(t)?((r=t.values)!=null||(t.values=[]),t.values.push(e)):wh(t)&&(t.value=e)}toJSON(e=Se(this,ce)){return this.name?{...e,name:this.name}:e}};ce=new WeakMap;var fH=wo.configure({strict:!0});import{getRowRecord as RH,isGroupMenuItemDescriptor as DH,metadataKeys as Rh}from"@vuu-ui/vuu-utils";import{useCallback as PH}from"react";var{KEY:LH}=Rh;var Dh=n=>n.type==="vuu-links";var Mh=n=>n.type==="vuu-menu",ya=n=>Mh(n)||Dh(n),xa=n=>n.type==="vuu-link-created"||n.type==="vuu-link-removed";import{useCallback as AH,useEffect as OH,useState as HH}from"react";import{getServerAPI as zH}from"@vuu-ui/vuu-data";import{getFullRange as So,metadataKeys as Ph,WindowRange as Lh}from"@vuu-ui/vuu-utils";import{useCallback as Dt,useEffect as Jn,useMemo as kh,useRef as ln,useState as Ih}from"react";var{SELECTED:an}=Ph;function va({dataSource:n,onConfigChange:e,onFeatureEnabled:t,onFeatureInvocation:r,onSizeChange:o,onSubscribed:s,range:i={from:0,to:0},renderBufferSize:l=0,viewportRowCount:a}){let[,c]=Ih(null),u=ln(!0),p=ln(!1),d=ln({from:0,to:0}),f=ln(null),m=ln([]),h=kh(()=>new Eo(So(i)),[]),x=Dt(g=>{for(let w of g)h.add(w);m.current=h.data,p.current=!0},[h]),v=Dt(g=>{g.type==="subscribed"?s==null||s(g):g.type==="viewport-update"?(typeof g.size=="number"&&(o==null||o(g.size),h.setRowCount(g.size)),g.rows?x(g.rows):typeof g.size=="number"&&(m.current=h.data,p.current=!0)):ya(g)?t==null||t(g):xa(g)?r==null||r(g):console.log(`useDataSource unexpected message ${g.type}`)},[h,t,r,o,s,x]);Jn(()=>()=>{f.current&&(cancelAnimationFrame(f.current),f.current=null),u.current=!1},[]);let C=Dt(()=>{u.current&&(p.current&&(c({}),p.current=!1),f.current=requestAnimationFrame(C))},[c]);Jn(()=>{f.current=requestAnimationFrame(C)},[C]);let y=Dt(g=>{let{from:w}=n.range,D={from:w,to:w+g},P=So(D,l);h.setRange(P),n.range=d.current=P,n.emit("range",D)},[n,h,l]),b=Dt(g=>{let w=So(g,l);h.setRange(w),n.range=d.current=w,n.emit("range",g)},[n,h,l]),T=Dt(()=>h.getSelectedRows(),[h]);return Jn(()=>{n==null||n.subscribe({range:d.current},v)},[n,v,e]),Jn(()=>{y(a)},[y,a]),{data:m.current,getSelectedRows:T,range:d.current,setRange:b,dataSource:n}}var Eo=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 Lh(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[an],i=(r=this.data[o-1])==null?void 0:r[an];i===0&&s?this.data[o-1][an]=2:i===2&&!s&&(this.data[o-1][an]=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 l=this.getAtIndex(i);if(l){let a=i-e;s[a]=l}}this.data=s,this.range.from=e,this.range.to=t}}getSelectedRows(){return this.data.filter(e=>e[an]===1)}};import{useCallback as Ca,useRef as Ta}from"react";var wa=({onDrop:n})=>{let e=Ta(),t=Ta(null),r=Ca(()=>{console.log("handleDropSettle"),e.current=void 0,t.current=null},[]),{draggable:o,draggedItemIndex:s,onMouseDown:i}=vn({allowDragDrop:!0,draggableClassName:"vuuTable-headerCell",orientation:"horizontal",containerRef:t,itemQuery:".vuuTable-headerCell",onDrop:n,onDropSettle:r}),l=Ca(a=>{let{clientX:c,clientY:u}=a;console.log("useDraggableColumn handleHeaderCellDragStart means mouseDown fired on a column in RowBasedTable");let d=a.target.closest(".vuuTable-headerCell");t.current=d==null?void 0:d.closest("[role='row']");let{dataset:{idx:f="-1"}}=d;e.current={clientX:c,clientY:u,idx:f},i==null||i(a)},[i]);return{draggable:o,draggedItemIndex:s,onHeaderCellDragStart:l}};import{withinRange as $h}from"@vuu-ui/vuu-utils";import{useCallback as Ne,useEffect as Vh,useLayoutEffect as Bh,useMemo as Kh,useRef as Oo}from"react";function Ah(n,...e){let t=new Set(n);for(let r of e)for(let o of r)t.add(o);return t}var Ro="ArrowUp",Do="ArrowDown",Mo="ArrowLeft",Po="ArrowRight";var Lo="Home",ko="End",Io="PageUp",Ao="PageDown";var Oh=new Set(["Enter","Delete"," "]),Hh=new Set(["Tab"]),Nh=new Set(["ArrowRight","ArrowLeft"]),Sa=new Set([Lo,ko,Io,Ao,Do,Mo,Po,Ro]),zh=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),rN=Ah(Oh,Sa,Nh,zh,Hh);var Fh=["Home","End","PageUp","PageDown"],Ea=n=>Fh.includes(n),Ra=n=>Sa.has(n);var Da=n=>`.vuuTable-headers .vuuTable-headerCell:nth-child(${n+1})`,Wh=(n,e)=>`.vuuTable-body > [aria-rowindex='${n}'] > [role='cell']:nth-child(${e+1})`,_h=[-1,-1];function Gh(n,[e,t],r,o){return n===Ro?e>-1?[e-1,t]:[e,t]:n===Do?e===-1?[0,t]:e===o-1?[e,t]:[e+1,t]:n===Po?t<r-1?[e,t+1]:[e,t]:n===Mo?t>0?[e,t-1]:[e,t]:[e,t]}var Ma=({columnCount:n=0,containerRef:e,disableHighlightOnFocus:t,data:r,requestScroll:o,rowCount:s=0,viewportRange:i})=>{var P;let{from:l,to:a}=i,c=Oo([-1,-1]),u=Oo(),p=Oo([-1,0]),d=Ne(([E,R])=>{var M;let S=E===-1?Da(R):Wh(E,R);return(M=e.current)==null?void 0:M.querySelector(S)},[e]),f=E=>E==null?void 0:E.closest("[role='columnHeader'],[role='cell']"),m=E=>{var R,S;if(E.role==="columnHeader")return[-1,parseInt((R=E.dataset.idx)!=null?R:"-1",10)];{let M=E.closest("[role='row']");if(M){let I=parseInt((S=M.ariaRowIndex)!=null?S:"-1",10),L=Array.from(M.childNodes).indexOf(E);return[I,L]}}return _h},h=Ne(E=>{var R;if(e.current){let S=d(E);S?(S!==u.current&&((R=u.current)==null||R.setAttribute("tabindex",""),u.current=S,S.setAttribute("tabindex","0")),S.focus()):$h(E[0],i)||(u.current=void 0,o==null||o({type:"scroll-page",direction:"up"}))}},[e,d,o,i]),x=Ne((E,R,S=!1)=>{let M=[E,R];p.current=M,h(M),S&&(c.current=M)},[h]),v=Ne(()=>{var E;(E=u.current)==null||E.setAttribute("tabindex",""),u.current=void 0},[]),C=Ne(async(E,R)=>{switch(E){case Ao:o==null||o({type:"scroll-page",direction:"down"});break;case Io:o==null||o({type:"scroll-page",direction:"up"});break;case Lo:o==null||o({type:"scroll-end",direction:"home"});break;case ko:o==null||o({type:"scroll-end",direction:"end"});break}return R},[o]),y=Ne(()=>{var E;if(t!==!0&&(E=e.current)!=null&&E.contains(document.activeElement)){let R=f(document.activeElement);R&&(c.current=m(R))}},[t,e]),b=Ne(async E=>{let[R,S]=Ea(E)?await C(E,p.current):Gh(E,p.current,n,s),[M,I]=p.current;(R!==M||S!==I)&&x(R,S,!0)},[n,C,s,x]),T=Ne(E=>{r.length>0&&Ra(E.key)&&(E.preventDefault(),E.stopPropagation(),b(E.key))},[r,b]),g=Ne(E=>{let R=E.target,S=f(R);if(S){let[M,I]=m(S);x(M,I)}},[x]),w=Kh(()=>({onClick:g,onFocus:y,onKeyDown:T}),[g,y,T]);Bh(()=>{let{current:E}=p,R=E[0]>=l&&E[0]<=a;u.current&&!R?v():!u.current&&R&&h(E)},[h,l,a,v]);let D=((P=e.current)==null?void 0:P.firstChild)!=null;return Vh(()=>{var E;if(D&&u.current===void 0){let R=(E=e.current)==null?void 0:E.querySelector(Da(0));R&&(R.setAttribute("tabindex","0"),u.current=R)}},[e,D]),w};import{isValidNumber as We}from"@vuu-ui/vuu-utils";import{useCallback as Qh,useMemo as Zh,useRef as Yh,useState as jh}from"react";import{useCallback as Uh,useEffect as Pa,useRef as Xh}from"react";var ot=new Map,ka=(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}},La=new ResizeObserver(n=>{for(let e of n){let{target:t,borderBoxSize:r,contentBoxSize:o}=e,s=ot.get(t);if(s){let[{blockSize:i,inlineSize:l}]=r,[{blockSize:a,inlineSize:c}]=o,{onResize:u,measurements:p}=s,d=!1;for(let[f,m]of Object.entries(p)){let h=ka(t,{height:i,width:l,contentHeight:a,contentWidth:c},f);h!==m&&(d=!0,p[f]=h)}d&&u&&u(p)}}});function Ia(n,e,t,r=!1){let o=Xh(e),s=Uh(i=>{let{width:l,height:a}=i.getBoundingClientRect(),{clientWidth:c,clientHeight:u}=i;return o.current.reduce((p,d)=>(p[d]=ka(i,{width:l,height:a,contentHeight:u,contentWidth:c},d),p),{})},[]);Pa(()=>{let i=n.current;async function l(){ot.set(i,{measurements:{}}),await document.fonts.ready;let a=ot.get(i);if(a){let c=s(i);a.measurements=c,La.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(ot.has(i))throw Error("useResizeObserver attemping to observe same element twice");l()}return()=>{i&&ot.has(i)&&(La.unobserve(i),ot.delete(i))}},[s,n]),Pa(()=>{let i=n.current,l=ot.get(i);if(l){if(o.current!==e){o.current=e;let a=s(i);l.measurements=a}l.onResize=t}},[e,s,n,t])}var qh=["clientHeight","clientWidth"],Aa=n=>Number.isFinite(n),Jh={height:"100%",width:"100%"},eg=(n,e)=>We(n)&&We(e)?{height:`${n}px`,width:`${e}px`}:Jh,tg=(n,e)=>{if(We(n)&&We(e))return{height:n,width:e}},er=({defaultHeight:n=0,defaultWidth:e=0,height:t,width:r})=>{let o=Yh(null),[s,i]=jh({css:eg(t,r),inner:tg(t,r),outer:{height:t!=null?t:"100%",width:r!=null?r:"100%"}});Zh(()=>{i(a=>{let{inner:c,outer:u}=a;if(We(t)&&We(r)&&c&&u){let{height:p,width:d}=c,{height:f,width:m}=u;if(f!==t||m!==r){let h=We(f)?f-p:0,x=We(m)?m-d:0;return{...a,outer:{height:t,width:r},inner:{height:t-h,width:r-x}}}}return a})},[t,r]);let l=Qh(({clientWidth:a,clientHeight:c})=>{i(u=>{let{css:p,inner:d,outer:f}=u;return Aa(c)&&Aa(a)&&(a!==(d==null?void 0:d.width)||c!==(d==null?void 0:d.height))?{css:p,outer:f,inner:{width:Math.floor(a)||e,height:Math.floor(c)||n}}:u})},[n,e]);return Ia(o,qh,l,!0),{containerRef:o,cssSize:s.css,outerSize:s.outer,innerSize:s.inner}};import{deselectItem as ng,isRowSelected as rg,metadataKeys as og,selectItem as sg}from"@vuu-ui/vuu-utils";import{useCallback as ig,useRef as Oa}from"react";var{IDX:lg}=og,ag=[],tr=({selectionModel:n,onSelectionChange:e})=>{let t=Oa(-1),r=Oa(ag);return ig((s,i,l)=>{let{[lg]:a}=s,{current:c}=t,{current:u}=r,d=(rg(s)?ng:sg)(n,u,a,i,l,c);r.current=d,t.current=a,e&&e(d)},[e,n])};import{applyFilterToColumns as cg,applyGroupByToColumns as ug,applySortToColumns as dg,findColumn as pg,getCellRenderer as fg,getColumnName as mg,getTableHeadings as hg,getValueFormatter as gg,isFilteredColumn as bg,isGroupColumn as yg,isPinned as xg,isTypeDescriptor as vg,metadataKeys as Cg,updateColumn as Ha,sortPinnedColumns as Na,stripFilterFromColumns as Tg,moveItem as wg}from"@vuu-ui/vuu-utils";import{useReducer as Sg}from"react";var Eg=100,za=Cg.count,Rg=({serverDataType:n})=>n===void 0,Dg=n=>{var e;if(vg(n.type))return fg((e=n.type)==null?void 0:e.renderer)},Fa=(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"},Mg=["int","long","double"],$a=n=>n===void 0?void 0:Mg.includes(n)?"right":"left",Va=n=>n.type==="columnSettings",Ba=n=>n.type==="tableSettings",Pg=(n,e)=>{switch(e.type){case"init":return Wa(e);case"moveColumn":return kg(n,e);case"resizeColumn":return Og(n,e);case"setTableSchema":return Hg(n,e);case"hideColumns":return Ig(n,e);case"showColumns":return Ag(n,e);case"pinColumn":return Ng(n,e);case"updateColumnProp":return Mt(n,e);case"tableConfig":return _a(n,e);default:return console.log(`unhandled action ${e.type}`),n}},Ka=(n,e)=>{let[t,r]=Sg(Pg,{tableConfig:n,dataSourceConfig:e},Wa);return{columns:t.columns,dispatchColumnAction:r,headings:t.headings}};function Wa({dataSourceConfig:n,tableConfig:e}){let t=e.columns.map(Ho(e)),r=t.some(xg)?Na(t):t,o={columns:r,headings:hg(r)};if(n){let{columns:s,...i}=n;return _a(o,{type:"tableConfig",...i})}else return o}var Lg=(n,e)=>e==="uppercase"?n.toUpperCase():e==="capitalize"?n[0].toUpperCase()+n.slice(1).toLowerCase():n,Ho=n=>(e,t)=>{let r=Fa(e,n.tableSchema),{columnDefaultWidth:o=Eg,columnFormatHeader:s}=n,{align:i=$a(r),key:l,name:a,label:c=a,width:u=o,...p}=e,d={...p,align:i,CellRenderer:Dg(e),label:Lg(c,s),key:l!=null?l:t+za,name:a,originalIdx:t,serverDataType:r,valueFormatter:gg(e),width:u};return yg(d)&&(d.columns=d.columns.map(f=>Ho(n)(f,f.key))),d};function kg(n,{column:e,moveBy:t,moveTo:r}){let{columns:o}=n;if(typeof t=="number"){let s=o.indexOf(e),i=o.slice(),[l]=i.splice(s,1);return i.splice(s+t,0,l),{...n,columns:i}}else if(typeof r=="number")return{...n,columns:wg(o,e,r)};return n}function Ig(n,{columns:e}){return e.some(t=>t.hidden!==!0)?e.reduce((t,r)=>r.hidden!==!0?Mt(t,{type:"updateColumnProp",column:r,hidden:!0}):t,n):n}function Ag(n,{columns:e}){return e.some(t=>t.hidden)?e.reduce((t,r)=>r.hidden?Mt(t,{type:"updateColumnProp",column:r,hidden:!1}):t,n):n}function Og(n,{column:e,phase:t,width:r}){let o="updateColumnProp",s=t!=="end";switch(t){case"begin":return Mt(n,{type:o,column:e,resizing:s});case"end":return Mt(n,{type:o,column:e,resizing:s,width:r});case"resize":return Mt(n,{type:o,column:e,width:r});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${t}`)}}function Hg(n,{tableSchema:e}){let{columns:t}=n;if(t.some(Rg)){let r=t.map(o=>{var i;let s=Fa(o,e);return{...o,align:(i=o.align)!=null?i:$a(s),serverDataType:s}});return{...n,columns:r,tableSchema:e}}else return{...n,tableSchema:e}}function Ng(n,e){let{columns:t}=n,{column:r,pin:o}=e;return t=Ha(t,r.name,{pin:o}),t=Na(t),console.log({withPins:t}),{...n,columns:t}}function Mt(n,e){let{columns:t}=n,{align:r,column:o,hidden:s,label:i,resizing:l,width:a}=e,c={};return(r==="left"||r==="right")&&(c.align=r),typeof i=="string"&&(c.label=i),typeof l=="boolean"&&(c.resizing=l),typeof s=="boolean"&&(c.hidden=s),typeof a=="number"&&(c.width=a),t=Ha(t,o.name,c),{...n,columns:t}}function _a(n,{columns:e,confirmed:t,filter:r,groupBy:o,sort:s}){let i=e&&e.length>0,l=o!==void 0,a=typeof(r==null?void 0:r.filter)=="string",c=s&&s.sortDefs.length>0,u=n;return i&&(u={...n,columns:e.map((p,d)=>{let f=mg(p),m=d+za,h=pg(u.columns,f);return h?h.key===m?h:{...h,key:m}:Ho(n)({name:p},d)})}),l&&(u={...n,columns:ug(u.columns,o,t)}),c&&(u={...n,columns:dg(u.columns,s)}),a?u={...n,columns:cg(u.columns,r)}:u.columns.some(bg)&&(u={...n,columns:Tg(u.columns)}),u}import{useCallback as _e,useRef as cn}from"react";var Ga=n=>{let{scrollLeft:e,scrollTop:t}=n,{clientHeight:r,clientWidth:o,scrollHeight:s,scrollWidth:i}=n,l=e/(i-o),a=t/(s-r);return[l,a]},zg=n=>{let{clientHeight:e,clientWidth:t,scrollHeight:r,scrollWidth:o}=n;return[o-t,r-e]},Ua=({onAttach:n,onDetach:e})=>{let t=cn(null);return _e(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])},Xa=({onHorizontalScroll:n,onVerticalScroll:e,viewport:t})=>{let r=cn(!1),o=cn({scrollTop:0,scrollLeft:0}),s=cn(null),i=cn(null),{maxScrollContainerScrollHorizontal:l,maxScrollContainerScrollVertical:a}=t,c=_e(()=>{let{current:C}=i,{current:y}=s,{current:b}=r;if(b)r.current=!1;else if(C&&y){let[T,g]=Ga(y),[w,D]=zg(C),P=Math.round(T*w),E=Math.round(g*D);console.log(`pctScrollTop ${g}, maxScrollTop ${D} rootScrollTop ${E}`),C.scrollTo({left:P,top:E,behavior:"auto"})}},[]),u=_e(()=>{let{current:C}=i,{current:y}=s,{current:b}=o;if(C&&y){let{scrollLeft:T,scrollTop:g}=C,[w,D]=Ga(C);r.current=!0,y.scrollLeft=Math.round(w*l),y.scrollTop=Math.round(D*a),b.scrollTop!==g&&(b.scrollTop=g,e==null||e(g,D)),b.scrollLeft!==T&&(b.scrollLeft=T,n==null||n(T))}},[l,a,n,e]),p=_e(C=>{s.current=C,C.addEventListener("scroll",c,{passive:!0})},[c]),d=_e(C=>{s.current=null,C.removeEventListener("scroll",c)},[c]),f=_e(C=>{i.current=C,C.addEventListener("scroll",u,{passive:!0})},[u]),m=_e(C=>{i.current=null,C.removeEventListener("scroll",u)},[u]),h=Ua({onAttach:f,onDetach:m}),x=Ua({onAttach:p,onDetach:d}),v=_e(C=>{let{current:y}=i;if(y){if(r.current=!1,C.type==="scroll-page"){let{clientHeight:b,scrollLeft:T,scrollTop:g}=y,{direction:w}=C,D=w==="down"?b:-b,P=Math.min(Math.max(0,g+D),a);y.scrollTo({top:P,left:T,behavior:"auto"})}else if(C.type==="scroll-end"){let{direction:b}=C,T=b==="end"?a:0;y.scrollTo({top:T,left:y.scrollLeft,behavior:"auto"})}}},[a]);return{scrollbarContainerRef:x,contentContainerRef:h,requestScroll:v}};import{useCallback as Fg,useMemo as nr,useRef as $g}from"react";import{actualRowPositioning as Vg,virtualRowPositioning as Bg}from"@vuu-ui/vuu-utils";var Kg=15e5,Wg={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},_g=n=>{let e=0,t=0,r=0;for(let o of n){let{hidden:s,pin:i,width:l}=o,a=s?0:l;i==="left"?e+=a:i==="right"?t+=a:r+=a}return{pinnedWidthLeft:e+4,pinnedWidthRight:t+4,unpinnedWidth:r}},rr=({columns:n,headerHeight:e,headings:t,rowCount:r,rowHeight:o,size:s})=>{let i=$g(0),a=Math.min(r,Kg)*o,u=r*o-a,{pinnedWidthLeft:p,pinnedWidthRight:d,unpinnedWidth:f}=nr(()=>_g(n),[n]),[m,h]=nr(()=>Vg(o),[o]),[x,v]=nr(()=>u?Bg(o,u,i):[m,h],[h,m,u,o]),C=Fg(y=>{i.current=y},[]);return nr(()=>{var y;if(s){let b=t.length,T=15,g=p+f+d,w=g>s.width?T:0,D=e*(1+b),P=a-(((y=s==null?void 0:s.height)!=null?y:0)-w)+D,E=g-s.width+p,R=(s.height-e)/o,S=Number.isInteger(R)?R+1:Math.ceil(R),M=s.height-D,I=a>M?T:0;return{contentHeight:a,getRowAtPosition:v,getRowOffset:x,horizontalScrollbarHeight:w,maxScrollContainerScrollHorizontal:E,maxScrollContainerScrollVertical:P,pinnedWidthLeft:p,pinnedWidthRight:d,rowCount:S,contentWidth:g,setPctScrollTop:C,totalHeaderHeight:D,verticalScrollbarWidth:I,viewportBodyHeight:M}}else return Wg},[s,t.length,p,f,d,a,e,o,v,x,C])};import{getColumnsInViewport as Qa,itemsChanged as Gg}from"@vuu-ui/vuu-utils";import{useCallback as Za,useEffect as Ug,useMemo as Xg,useRef as No,useState as Qg}from"react";var Ya=({columns:n,getRowAtPosition:e,setRange:t,viewportMeasurements:r})=>{let o=No(-1),{rowCount:s,contentWidth:i,maxScrollContainerScrollHorizontal:l}=r,a=i-l,c=No(0),[u,p]=Xg(()=>Qa(n,c.current,c.current+a),[a,n]),d=No(p);Ug(()=>{m(u)},[u]);let[f,m]=Qg(u),h=Za(v=>{c.current=v;let[C,y]=Qa(n,v,v+a);Gg(f,C)&&(d.current=y,m(C))},[a,n,f]),x=Za(v=>{let C=e(v);C!==o.current&&(o.current=C,t({from:C,to:C+s}))},[e,t,s]);return{columnsWithinViewport:f,onHorizontalScroll:h,onVerticalScroll:x,virtualColSpan:d.current}};var rb=[],{KEY:ob,IS_EXPANDED:qa,IS_LEAF:Ja}=Jg,ec=({config:n,dataSource:e,headerHeight:t,onConfigChange:r,onFeatureEnabled:o,onFeatureInvocation:s,onSelectionChange:i,renderBufferSize:l=0,rowHeight:a,selectionModel:c,...u})=>{var q,Z;let[p,d]=nb(e.size),f=zo(!1),m=zo();if(m.current=e,e===void 0)throw Error("no data source provided to Vuu Table");let h=er(u),x=Te(K=>{d(K)},[]),{columns:v,dispatchColumnAction:C,headings:y}=Ka(n,e.config),{getRowAtPosition:b,getRowOffset:T,setPctScrollTop:g,...w}=rr({columns:v,headerHeight:t,headings:y,rowCount:p,rowHeight:a,size:h.innerSize}),D=Te(({tableSchema:K})=>{K?(f.current=!0,C({type:"setTableSchema",tableSchema:K})):console.log("usbscription message with no schema")},[C]),P=Te(K=>{e.select(K),i==null||i(K)},[e,i]),E=tr({onSelectionChange:P,selectionModel:c}),{data:R,getSelectedRows:S,range:M,setRange:I}=va({dataSource:e,onFeatureEnabled:o,onFeatureInvocation:s,onSubscribed:D,onSizeChange:x,renderBufferSize:l,viewportRowCount:w.rowCount}),L=zo();L.current=R;let k=Te(K=>{f.current=!0,console.log("onPersistentColumnOperation, dispatchColumnAction",{action:K}),C(K)},[C]),O=hn({dataSource:e,onPersistentColumnOperation:k}),A=Te((K,Y=!1,ee)=>{e&&(e.sort=Yg(e.sort,K,Y,ee))},[e]),N=Te((K,Y,ee)=>{let j=v.find(se=>se.name===Y);if(j)K==="end"&&(f.current=!0),C({type:"resizeColumn",phase:K,column:j,width:ee});else throw Error(`useDataTable.handleColumnResize, column ${Y} not found`)},[v,C]),H=Te((K,Y)=>{let ee=qg(Y,K),j=K[ob];if(K[qa]){if(e.closeTreeNode(j,!0),ee){let se=v.indexOf(Y);e.getRowsAtDepth(se+1).some(ie=>ie[qa]||ie[Ja])||C({type:"hideColumns",columns:v.slice(se+2)})}}else if(e.openTreeNode(j),ee){let se=e.getChildRows(j),ue=v.indexOf(Y)+1,ie=[v[ue]];se.some(de=>de[Ja])&&ie.push(v[ue+1]),ie.some(de=>de.hidden)&&C({type:"showColumns",columns:ie})}},[v,e,C]),{onVerticalScroll:V,onHorizontalScroll:z,columnsWithinViewport:B,virtualColSpan:W}=Ya({columns:v,getRowAtPosition:b,setRange:I,viewportMeasurements:w}),Q=Te((K,Y)=>{g(Y),V(K)},[V,g]),{requestScroll:F,...$}=Xa({onHorizontalScroll:z,onVerticalScroll:Q,viewport:w,viewportHeight:((Z=(q=h.innerSize)==null?void 0:q.height)!=null?Z:0)-t}),G=Ma({columnCount:v.length,containerRef:h.containerRef,data:R,requestScroll:F,rowCount:e==null?void 0:e.size,viewportRange:M}),oe=Te(K=>{K?e&&e.groupBy.includes(K.name)&&(e.groupBy=e.groupBy.filter(Y=>Y!==K.name)):e.groupBy=[]},[e]),we=Te((K,Y)=>{let ee=e.columns[K],j=eb(e.columns,ee,Y);j!==e.columns&&(e.columns=j,C({type:"tableConfig",columns:j}))},[e,C]),_=wa({onDrop:we});ja(()=>{m.current&&(f.current=!0,C({type:"init",tableConfig:n,dataSourceConfig:m.current.config}))},[n,C]),ja(()=>{e.on("config",(K,Y)=>{f.current=!0,C({type:"tableConfig",...K,confirmed:Y})})},[e,C]),tb(()=>{f.current&&(r==null||r({...n,columns:v}),f.current=!1)},[v,n,r]);let[U]=Zg(),J=Te(K=>{var ie;let{current:Y}=L,{current:ee}=m,j=K.target,se=j==null?void 0:j.closest("div[role='cell']"),ue=j==null?void 0:j.closest(".vuuTableRow");if(se&&ue&&Y&&ee){let{columns:de,selectedRowsCount:Xe}=ee,ke=jg(de),It=parseInt((ie=ue.ariaRowIndex)!=null?ie:"-1"),it=Array.from(ue.childNodes).indexOf(se),ye=Y.find(([At])=>At===It),lt=de[it];U(K,"grid",{columnMap:ke,columnName:lt,row:ye,selectedRows:Xe===0?rb:S(),viewport:e==null?void 0:e.viewport})}},[e==null?void 0:e.viewport,S,U]);return{columns:v,columnsWithinViewport:B,containerMeasurements:h,containerProps:G,data:R,dispatchColumnAction:C,getRowOffset:T,handleContextMenuAction:O,headings:y,onColumnResize:N,onContextMenu:J,onRemoveColumnFromGroupBy:oe,onRowClick:E,onSort:A,onToggleGroup:H,virtualColSpan:W,scrollProps:$,rowCount:p,viewportMeasurements:w,..._}};import ab from"classnames";import{isDataLoading as cb}from"@vuu-ui/vuu-utils";import{jsx as un,jsxs as tc}from"react/jsx-runtime";var st="vuuTable",y1=({allowConfigEditing:n=!1,className:e,config:t,dataSource:r,headerHeight:o=25,height:s,id:i,onConfigChange:l,onFeatureEnabled:a,onFeatureInvocation:c,onSelectionChange:u,onShowConfigEditor:p,renderBufferSize:d=0,rowHeight:f=20,selectionModel:m="extended",style:h,width:x,zebraStripes:v=!1,...C})=>{let y=lb(i),{containerMeasurements:{containerRef:b,innerSize:T,outerSize:g},containerProps:w,dispatchColumnAction:D,draggable:P,draggedItemIndex:E,handleContextMenuAction:R,scrollProps:S,viewportMeasurements:M,...I}=ec({config:t,dataSource:r,renderBufferSize:d,headerHeight:o,height:s,onConfigChange:l,onFeatureEnabled:a,onFeatureInvocation:c,onSelectionChange:u,rowHeight:f,selectionModel:m,width:x}),L={...g,"--content-height":`${M.contentHeight}px`,"--horizontal-scrollbar-height":`${M.horizontalScrollbarHeight}px`,"--content-width":`${M.contentWidth}px`,"--pinned-width-left":`${M.pinnedWidthLeft}px`,"--pinned-width-right":`${M.pinnedWidthRight}px`,"--header-height":`${o}px`,"--row-height":`${f}px`,"--table-height":`${T==null?void 0:T.height}px`,"--table-width":`${T==null?void 0:T.width}px`,"--total-header-height":`${M.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${M.verticalScrollbarWidth}px`,"--viewport-body-height":`${M.viewportBodyHeight}px`},k=ab(st,e,{[`${st}-zebra`]:v,[`${st}-loading`]:cb(I.columns)});return un(sb,{menuActionHandler:R,menuBuilder:mn(r),children:tc("div",{...C,...w,className:k,id:y,ref:b,style:L,tabIndex:-1,children:[T?un("div",{className:`${st}-scrollbarContainer`,ref:S.scrollbarContainerRef,children:un("div",{className:`${st}-scrollbarContent`})}):null,T?tc("div",{className:`${st}-contentContainer`,ref:S.contentContainerRef,children:[un(ra,{...I,headerHeight:o,tableId:y}),P]}):null,n&&T?un(ib,{className:`${st}-settings`,"data-icon":"settings",onClick:p,variant:"secondary"}):null]})})};import ub from"classnames";import{isJsonAttribute as db,metadataKeys as pb,registerComponent as fb}from"@vuu-ui/vuu-utils";import{jsx as Fo,jsxs as yb}from"react/jsx-runtime";var dn="vuuJsonCell",{IS_EXPANDED:mb,KEY:hb}=pb,gb=n=>{let e=n.lastIndexOf("|");return e===-1?"":n.slice(e+1)},bb=({column:n,row:e})=>{let{key:t}=n,r=e[t],o=!1;db(r)&&(r=r.slice(0,-1),o=!0);let s=gb(e[hb]),i=ub({[`${dn}-name`]:s===r,[`${dn}-value`]:s!==r,[`${dn}-group`]:o});if(o){let l=e[mb]?"minus-box":"plus-box";return yb("span",{className:i,children:[Fo("span",{className:`${dn}-value`,children:r}),Fo("span",{className:`${dn}-toggle`,"data-icon":l})]})}else return r?Fo("span",{className:i,children:r}):null};fb("json",bb,"cell-renderer",{});import{ContextMenuProvider as Oy}from"@vuu-ui/vuu-popups";import{metadataKeys as Hy}from"@vuu-ui/vuu-utils";import{useEffect as Ny}from"react";import{useCallback as Mb,useRef as Pb}from"react";import{getColumnStyle as xb}from"@vuu-ui/vuu-utils";import vb from"classnames";import{useMemo as Cb}from"react";var Pt=(n,e,t)=>Cb(()=>{let r=vb(e,{vuuPinFloating:n.pin==="floating",vuuPinLeft:n.pin==="left",vuuPinRight:n.pin==="right",vuuEndPin:t&&n.endPin,[`${e}-resizing`]:n.resizing,[`${e}-right`]:n.align==="right"}),o=xb(n);return{className:r,style:o}},[n,e,t]);import{useContextMenu as Tb}from"@vuu-ui/vuu-popups";import wb from"classnames";import{useCallback as nc,useRef as Sb,useState as Eb}from"react";import{jsx as Db}from"react/jsx-runtime";var Rb=n=>{if(n){let{bottom:e,left:t}=n.getBoundingClientRect();return{x:t,y:e+6}}},rc=({className:n,column:e,...t})=>{let r=Sb(null),[o,s]=Eb(!1),[i]=Tb(),l=nc(()=>{s(!1)},[]),a=nc(c=>{s(!0),i(c,"column-menu",{column:e,ContextMenuProps:{onClose:l,position:Rb(r.current)}})},[e,l,i]);return Db("span",{...t,className:wb("vuuTable-columnMenu",n,{"vuuTable-columnMenu-open":o}),"data-icon":"more-vert",onClick:a,ref:r})};import{jsx as or,jsxs as Lb}from"react/jsx-runtime";var oc=({classBase:n,column:e,onClick:t,onResize:r,idx:o})=>{let s=Pb(null),{isResizing:i,...l}=vt({column:e,onResize:r,rootRef:s}),a=`${n}-col-header`,c=Mb(d=>!i&&(t==null?void 0:t(d)),[i,t]),{className:u,style:p}=Pt(e,a,!0);return Lb("div",{className:u,"data-idx":o,onClick:c,ref:s,role:"cell",style:p,children:[or(rc,{column:e}),or("div",{className:`${a}-label`,children:e.name}),or(Un,{sorted:e.sorted}),e.resizeable!==!1?or(at,{...l}):null]})};import{isGroupColumn as zb,metadataKeys as Fb,RowSelected as $b}from"@vuu-ui/vuu-utils";import Vb from"classnames";import{memo as Bb,useCallback as Kb}from"react";import{jsx as kb}from"react/jsx-runtime";var sc=({column:n,row:e})=>{let{className:t,style:r}=Pt(n,"vuuTableNextCell");return kb("div",{className:t,role:"cell",style:r,children:e[n.key]})};import{getGroupValueAndOffset as Ib,metadataKeys as Ab}from"@vuu-ui/vuu-utils";import{useCallback as Ob}from"react";import{jsx as $o,jsxs as Nb}from"react/jsx-runtime";var{IS_LEAF:Hb}=Ab,ic=({column:n,onClick:e,row:t})=>{let{columns:r}=n,[o,s]=Ib(r,t),{className:i,style:l}=Pt(n,"vuuTable2-groupCell"),a=Ob(p=>{e==null||e(p,n)},[n,e]),c=t[Hb],u=Array(s).fill(0).map((p,d)=>$o("span",{className:"vuuTable2-groupCell-spacer"},d));return Nb("div",{className:i,role:"cell",style:l,onClick:c?void 0:a,children:[u,c?null:$o("span",{className:"vuuTable2-groupCell-toggle","data-icon":"vuu-triangle-right"}),$o("span",{children:o})]})};import{jsx as Vo}from"react/jsx-runtime";import{createElement as Ub}from"react";var{IDX:Wb,IS_EXPANDED:_b,SELECTED:Gb}=Fb,Ge="vuuTableNextRow",Bo=Bb(({className:n,columnMap:e,columns:t,row:r,offset:o,onClick:s,onToggleGroup:i,...l})=>{let{[Wb]:a,[_b]:c,[Gb]:u}=r,p=Kb(v=>{let C=v.shiftKey,y=v.ctrlKey||v.metaKey;s==null||s(r,C,y)},[s,r]),{True:d,First:f,Last:m}=$b,h=Vb(Ge,n,{[`${Ge}-even`]:a%2===0,[`${Ge}-expanded`]:c,[`${Ge}-selected`]:u&d,[`${Ge}-selectedStart`]:u&f,[`${Ge}-selectedEnd`]:u&m}),x=typeof o=="number"?{transform:`translate3d(0px, ${o}px, 0px)`}:void 0;return Ub("div",{...l,key:`row-${r[0]}`,role:"row",className:h,onClick:p,style:x},Vo("span",{className:`${Ge}-selectionDecorator vuuStickyLeft`}),t.map(v=>{let y=zb(v)?ic:sc;return Vo(y,{column:v,row:r},v.key)}),Vo("span",{className:`${Ge}-selectionDecorator vuuStickyRight`}))});Bo.displayName="Row";import{useContextMenu as Py}from"@vuu-ui/vuu-popups";import{applySort as Ly,buildColumnMap as vc,visibleColumnAtIndex as ky}from"@vuu-ui/vuu-utils";import{useCallback as kt,useEffect as Iy,useMemo as Wo,useState as Ay}from"react";import{useCallback as Xb,useMemo as Qb,useState as Zb}from"react";var lc=({dataSource:n,initialRange:e})=>{let[t,r]=Zb([]);Qb(()=>{n==null||n.subscribe({range:e},s=>{s.type==="viewport-update"&&s.rows&&r(s.rows)})},[n,e]);let o=Xb(s=>{n.range=s},[n]);return{data:t,setRange:o}};import{useMemo as Yb,useRef as jb}from"react";var ac=n=>{let e=jb(n);return Yb(()=>e.current,[])};import{applyFilterToColumns as qb,applyGroupByToColumns as Jb,applySortToColumns as ey,findColumn as ty,getCellRenderer as ny,getColumnName as ry,getTableHeadings as oy,getValueFormatter as sy,isFilteredColumn as iy,isGroupColumn as ly,isPinned as ay,isTypeDescriptor as cy,logger as uy,metadataKeys as dy,sortPinnedColumns as cc,stripFilterFromColumns as py}from"@vuu-ui/vuu-utils";import{useReducer as fy}from"react";var{info:Ko}=uy("useTableModel"),my=100,uc=dy.count,hy=({serverDataType:n})=>n===void 0,gy=n=>{var e;if(cy(n.type))return ny((e=n.type)==null?void 0:e.renderer)},by=(n,e)=>{var r;let t=e.columns.find(({name:o})=>o===n.name);return t?t.serverDataType:(r=n.serverDataType)!=null?r:"string"},yy=["int","long","double"],dc=n=>n===void 0?void 0:yy.includes(n)?"right":"left",xy=(n,e)=>{switch(Ko==null||Ko(`GridModelReducer ${e.type}`),e.type){case"init":return fc(e);case"moveColumn":return Cy(n,e);case"resizeColumn":return Sy(n,e);case"setTableSchema":return Ey(n,e);case"hideColumns":return Ty(n,e);case"showColumns":return wy(n,e);case"pinColumn":return Ry(n,e);case"updateColumnProp":return pn(n,e);case"tableConfig":return hc(n,e);default:return console.log(`unhandled action ${e.type}`),n}},pc=(n,e)=>{let[t,r]=fy(xy,{tableConfig:n,dataSourceConfig:e},fc);return{columns:t.columns,dispatchColumnAction:r,headings:t.headings}};function fc({dataSourceConfig:n,tableConfig:e}){let t=e.columns.map(mc(e)),r=t.some(ay)?cc(t):t,o={columns:r,headings:oy(r)};if(n){let{columns:s,...i}=n;return hc(o,{type:"tableConfig",...i})}else return o}var vy=(n,e)=>e==="uppercase"?n.toUpperCase():e==="capitalize"?n[0].toUpperCase()+n.slice(1).toLowerCase():n,mc=n=>(e,t)=>{let{columnDefaultWidth:r=my,columnFormatHeader:o}=n,{align:s=dc(e.serverDataType),key:i,name:l,label:a=l,width:c=r,...u}=e,p={...u,align:s,CellRenderer:gy(e),label:vy(a,o),key:i!=null?i:t+uc,name:l,originalIdx:t,valueFormatter:sy(e),width:c};return ly(p)&&(p.columns=p.columns.map(d=>mc(n)(d,d.key))),p};function Cy(n,{column:e,moveBy:t,moveTo:r}){let{columns:o}=n;if(typeof t=="number"){let s=o.indexOf(e),i=o.slice(),[l]=i.splice(s,1);return i.splice(s+t,0,l),{...n,columns:i}}else if(typeof r=="number"){let s=o.indexOf(e);return{...n,columns:ns(o,s,r)}}return n}function Ty(n,{columns:e}){return e.some(t=>t.hidden!==!0)?e.reduce((t,r)=>r.hidden!==!0?pn(t,{type:"updateColumnProp",column:r,hidden:!0}):t,n):n}function wy(n,{columns:e}){return e.some(t=>t.hidden)?e.reduce((t,r)=>r.hidden?pn(t,{type:"updateColumnProp",column:r,hidden:!1}):t,n):n}function Sy(n,{column:e,phase:t,width:r}){let o="updateColumnProp",s=t!=="end";switch(t){case"begin":case"end":return pn(n,{type:o,column:e,resizing:s});case"resize":return pn(n,{type:o,column:e,width:r});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${t}`)}}function Ey(n,{tableSchema:e}){let{columns:t}=n;if(t.some(hy)){let r=t.map(o=>{var i;let s=by(o,e);return{...o,align:(i=o.align)!=null?i:dc(s),serverDataType:s}});return{...n,columns:r}}else return n}function Ry(n,e){let{columns:t}=n,{column:r,pin:o}=e,s=t.find(i=>i.name===r.name);return s?(t=Lt(t,{...s,pin:o}),t=cc(t),{...n,columns:t}):n}function pn(n,e){let{columns:t}=n,{align:r,column:o,hidden:s,label:i,resizing:l,width:a}=e,c=t.find(u=>u.name===o.name);return c&&((r==="left"||r==="right")&&(t=Lt(t,{...c,align:r})),typeof i=="string"&&(t=Lt(t,{...c,label:i})),typeof l=="boolean"&&(t=Lt(t,{...c,resizing:l})),typeof s=="boolean"&&(t=Lt(t,{...c,hidden:s})),typeof a=="number"&&(t=Lt(t,{...c,width:a}))),{...n,columns:t}}function hc(n,{columns:e,confirmed:t,filter:r,groupBy:o,sort:s}){let i=e&&e.length>0,l=o!==void 0,a=typeof(r==null?void 0:r.filter)=="string",c=s&&s.sortDefs.length>0,u=n;return i&&(u={...n,columns:e.map((p,d)=>{let f=ry(p),m=d+uc,h=ty(u.columns,f);if(h)return h.key===m?h:{...h,key:m};throw Error(`useTableModel column ${p} not found`)})}),l&&(u={...n,columns:Jb(u.columns,o,t)}),c&&(u={...n,columns:ey(u.columns,s)}),a?u={...n,columns:qb(u.columns,r)}:u.columns.some(iy)&&(u={...n,columns:py(u.columns)}),u}function Lt(n,e){return n.map(t=>t.name===e.name?e:t)}import{useCallback as Ue,useRef as fn}from"react";var gc=n=>{let{scrollLeft:e,scrollTop:t}=n,{clientHeight:r,clientWidth:o,scrollHeight:s,scrollWidth:i}=n,l=e/(i-o),a=t/(s-r);return[l,a]},bc=({onAttach:n,onDetach:e})=>{let t=fn(null);return Ue(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])},yc=({maxScrollLeft:n,maxScrollTop:e,onHorizontalScroll:t,onVerticalScroll:r})=>{let o=fn(!1),s=fn({scrollTop:0,scrollLeft:0}),i=fn(null),l=fn(null),a=Ue(()=>{let{current:v}=l,{current:C}=i,{current:y}=o;if(y)o.current=!1;else if(v&&C){let[b,T]=gc(C),g=Math.round(b*n),w=Math.round(T*e);v.scrollTo({left:g,top:w,behavior:"auto"})}},[n,e]),c=Ue(()=>{let{current:v}=l,{current:C}=i,{current:y}=s;if(v&&C){let{scrollLeft:b,scrollTop:T}=v,[g,w]=gc(v);o.current=!0,C.scrollLeft=Math.round(g*n),C.scrollTop=Math.round(w*e),y.scrollTop!==T&&(y.scrollTop=T,r==null||r(T,w)),y.scrollLeft!==b&&(y.scrollLeft=b,t==null||t(b))}},[n,e,t,r]),u=Ue(v=>{i.current=v,v.addEventListener("scroll",a,{passive:!0})},[a]),p=Ue(v=>{i.current=null,v.removeEventListener("scroll",a)},[a]),d=Ue(v=>{l.current=v,v.addEventListener("scroll",c,{passive:!0})},[c]),f=Ue(v=>{l.current=null,v.removeEventListener("scroll",c)},[c]),m=bc({onAttach:d,onDetach:f}),h=bc({onAttach:u,onDetach:p}),x=Ue(v=>{let{current:C}=l;if(C){if(o.current=!1,v.type==="scroll-page"){let{clientHeight:y,scrollLeft:b,scrollTop:T}=C,{direction:g}=v,w=g==="down"?y:-y,D=Math.min(Math.max(0,T+w),e);C.scrollTo({top:D,left:b,behavior:"auto"})}else if(v.type==="scroll-end"){let{direction:y}=v,b=y==="end"?e:0;C.scrollTo({top:b,left:C.scrollLeft,behavior:"auto"})}}},[]);return{scrollbarContainerRef:h,contentContainerRef:m,requestScroll:x}};import{useCallback as Dy,useRef as My}from"react";var xc=({columns:n,getRowAtPosition:e,setRange:t,viewportMeasurements:r})=>{let o=My(-1),{contentWidth:s,rowCount:i}=r;return{onVerticalScroll:Dy(a=>{let c=e(a);c!==o.current&&(o.current=c,t({from:c,to:c+i}))},[e,t,i])}};var Cc=({config:n,dataSource:e,headerHeight:t,onConfigChange:r,onFeatureEnabled:o,onFeatureInvocation:s,onSelectionChange:i,rowHeight:l,selectionModel:a,...c})=>{let[u]=Ay(e.size),p=be();if(console.log({dispatchLayoutAction:p.toString()}),e===void 0)throw Error("no data source provided to Vuu Table");let d=Wo(()=>mn(e),[e]),{containerRef:f,...m}=er(c),{columns:h,dispatchColumnAction:x,headings:v}=pc(n,e.config),C=Wo(()=>vc(n.columns.map(z=>z.name)),[n.columns]);Iy(()=>{e.on("config",(z,B)=>{x({type:"tableConfig",...z,confirmed:B})})},[e,x]);let{getRowAtPosition:y,getRowOffset:b,setPctScrollTop:T,...g}=rr({columns:h,headerHeight:t,headings:v,rowCount:u,rowHeight:l,size:m.innerSize});console.log(`useTable ${g.maxScrollContainerScrollHorizontal}, ${g.maxScrollContainerScrollVertical}`);let w=ac({from:0,to:g.rowCount+1}),{data:D,setRange:P}=lc({dataSource:e,initialRange:w});Wo(()=>{let{range:{from:z,to:B}}=e;g.rowCount!==B-1-z&&(e.range={from:z,to:z+g.rowCount+1})},[e,g.rowCount]);let E=kt(z=>{Va(z)?p({type:"set-props",path:"#context-panel",props:{expanded:!0,context:"column-settings",column:z.column,title:"Column Settings"}}):Ba(z)?p({type:"set-props",path:"#context-panel",props:{expanded:!0,context:"table-settings",title:"DataGrid Settings"}}):x(z)},[x,p]),R=hn({dataSource:e,onPersistentColumnOperation:E}),{onVerticalScroll:S}=xc({columns:h,getRowAtPosition:y,setRange:P,viewportMeasurements:g}),M=kt(z=>{S(z)},[S]),{requestScroll:I,...L}=yc({maxScrollLeft:g.maxScrollContainerScrollHorizontal,maxScrollTop:g.maxScrollContainerScrollVertical,onVerticalScroll:M}),[k]=Py(),O=kt(z=>{let B=z.target,W=B==null?void 0:B.closest("div[role='cell']"),Q=B==null?void 0:B.closest("div[role='row']");if(W&&Q){let F=vc(h),$=Array.from(Q.childNodes).indexOf(W),G=h[$];k(z,"grid",{columnMap:F,columnName:G})}},[h,k]),A=kt((z,B=!1,W)=>{e&&(e.sort=Ly(e.sort,z,B,W))},[e]),N=kt(z=>{var G;let W=z.target.closest(".TableNext-col-header"),Q=parseInt((G=W==null?void 0:W.dataset.idx)!=null?G:"-1"),F=ky(h,Q),$=z.shiftKey;F&&A(F,$)},[h,A]),H=kt(z=>{e.select(z),i==null||i(z)},[e,i]),V=tr({onSelectionChange:H,selectionModel:a});return{columnMap:C,columns:h,containerRef:f,containerMeasurements:m,data:D,handleContextMenuAction:R,menuBuilder:d,onContextMenu:O,onHeaderClick:N,onRowClick:V,scrollProps:L,viewportMeasurements:g}};import{jsx as Le,jsxs as Tc}from"react/jsx-runtime";var Pe="vuuTableNext",{IDX:zy,RENDER_IDX:Fy}=Hy,$y=({className:n,config:e,dataSource:t,headerHeight:r=25,height:o,id:s,onConfigChange:i,onFeatureEnabled:l,onFeatureInvocation:a,onSelectionChange:c,onShowConfigEditor:u,renderBufferSize:p=0,rowHeight:d=20,selectionModel:f="extended",style:m,width:h,...x})=>{let{columnMap:v,columns:C,containerMeasurements:{cssSize:y,innerSize:b},containerRef:T,data:g,handleContextMenuAction:w,onHeaderClick:D,onRowClick:P,menuBuilder:E,scrollProps:R,viewportMeasurements:S,...M}=Cc({config:e,dataSource:t,renderBufferSize:p,headerHeight:r,height:o,onConfigChange:i,onFeatureEnabled:l,onFeatureInvocation:a,onSelectionChange:c,rowHeight:d,selectionModel:f,width:h}),I=b===void 0,L=()=>I?{"--table-css-height":`${y.height}`,"--table-css-width":`${y.width}`}:{...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":`${r}px`,"--row-height":`${d}px`,"--table-css-height":`${y==null?void 0:y.height}`,"--table-css-width":`${y==null?void 0:y.width}`,"--table-height":`${b==null?void 0:b.height}px`,"--table-width":`${b==null?void 0:b.width}px`,"--total-header-height":`${S.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${S.verticalScrollbarWidth}px`,"--viewport-body-height":`${S.viewportBodyHeight}px`};return console.log("%cTableNext render","color:red;font-weight:bold;"),Ny(()=>{console.log("%cTableNext actual render","background-color:red;color: white;font-weight:bold;")}),Le(Oy,{menuActionHandler:w,menuBuilder:E,children:I?Le("div",{...x,className:Pe,style:L(),ref:T}):Tc("div",{...x,className:Pe,style:L(),ref:T,children:[Le("div",{className:`${Pe}-scrollbarContainer`,ref:R.scrollbarContainerRef,children:Le("div",{className:`${Pe}-scrollbarContent`})}),Le("div",{className:`${Pe}-contentContainer`,ref:R.contentContainerRef,children:Tc("div",{...M,className:`${Pe}-table`,children:[Le("div",{className:`${Pe}-col-headings`,children:Le("div",{className:`${Pe}-col-headers`,role:"row",children:C.map((k,O)=>Le(oc,{classBase:Pe,column:k,idx:O,onClick:D},k.name))})}),Le("div",{className:`${Pe}-body`,children:g.map(k=>Le(Bo,{columnMap:v,columns:C,onClick:P,row:k,offset:d*k[zy]+r},k[Fy]))})]})})]})})};export{at as ColumnResizer,y1 as Table,$y as TableNext,mn as buildContextMenuDescriptors,Va as isShowColumnSettings,Ba as isShowTableSettings,er as useMeasuredContainer,tr as useSelection,vt as useTableColumnResize,hn as useTableContextMenu,Ka as useTableModel,rr as useTableViewport};
18
21
  //# sourceMappingURL=index.js.map