@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/cjs/index.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var oc=Object.create;var Gn=Object.defineProperty;var sc=Object.getOwnPropertyDescriptor;var ic=Object.getOwnPropertyNames;var ac=Object.getPrototypeOf,lc=Object.prototype.hasOwnProperty;var cc=(n,e)=>{for(var t in e)Gn(n,t,{get:e[t],enumerable:!0})},es=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of ic(e))!lc.call(n,o)&&o!==t&&Gn(n,o,{get:()=>e[o],enumerable:!(r=sc(e,o))||r.enumerable});return n};var z=(n,e,t)=>(t=n!=null?oc(ac(n)):{},es(e||!n||!n.__esModule?Gn(t,"default",{value:n,enumerable:!0}):t,n)),uc=n=>es(Gn({},"__esModule",{value:!0}),n);var ts=(n,e,t)=>{if(!e.has(n))throw TypeError("Cannot "+t)};var Ze=(n,e,t)=>(ts(n,e,"read from private field"),t?t.call(n):e.get(n)),ns=(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)},Ir=(n,e,t,r)=>(ts(n,e,"write to private field"),r?r.call(n,t):e.set(n,t),t);var zf={};cc(zf,{ColumnResizer:()=>xn,Table:()=>If,buildContextMenuDescriptors:()=>Nr,isShowSettings:()=>bf,useMeasuredContainer:()=>Zo,useSelection:()=>Yo,useTableColumnResize:()=>Hn,useTableContextMenu:()=>Fr,useTableModel:()=>jo,useTableViewport:()=>Jo});module.exports=uc(zf);var Kt=require("react");var os=require("react/jsx-runtime"),rs=()=>{},pc="vuuColumnResizer",xn=({onDrag:n,onDragEnd:e=rs,onDragStart:t=rs})=>{let r=(0,Kt.useRef)(0),o=(0,Kt.useCallback)(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=(0,Kt.useCallback)(a=>{window.removeEventListener("mouseup",s),window.removeEventListener("mousemove",o),e(a)},[e,o]),i=(0,Kt.useCallback)(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(0,os.jsx)("div",{className:pc,"data-align":"end",onMouseDown:i})};var ss=require("@vuu-ui/vuu-utils"),Nr=n=>(e,t)=>{let r=[];if(n===void 0)return r;if(e==="header")r.push(...fc(t,n)),r.push(...hc(t,n)),r.push(...dc(t,n)),r.push(...mc(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 fc(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 dc(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((0,ss.isNumericColumn)(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 zr=(n,e)=>({label:`Pin ${e}`,action:`column-pin-${e}`,options:n}),Or=n=>zr(n,"left"),Ar=n=>zr(n,"floating"),Hr=n=>zr(n,"right");function mc(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:[Or(n),Ar(n),Hr(n)]}):t==="left"?r.push({label:"Unpin column",action:"column-unpin",options:n},{label:"Pin column",children:[Ar(n),Hr(n)]}):t==="right"?r.push({label:"Unpin column",action:"column-unpin",options:n},{label:"Pin column",children:[Or(n),Ar(n)]}):t==="floating"&&r.push({label:"Unpin column",action:"column-unpin",options:n},{label:"Pin column",children:[Or(n),Hr(n)]}),r}function hc(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}var is=require("@vuu-ui/vuu-utils"),ue=require("@vuu-ui/vuu-utils"),gc=(n,e)=>{if(n.filterStruct&&e){let[t,r]=(0,is.removeColumnFromFilter)(e,n.filterStruct);return{filter:r,filterStruct:t}}else return n},{Average:bc,Count:yc,Distinct:xc,High:vc,Low:wc,Sum:Tc}=ue.AggregationType,Fr=({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=(0,ue.setSortColumn)(n.sort,s,"A"),!0;case"sort-dsc":return n.sort=(0,ue.setSortColumn)(n.sort,s,"D"),!0;case"sort-add-asc":return n.sort=(0,ue.addSortColumn)(n.sort,s,"A"),!0;case"sort-add-dsc":return n.sort=(0,ue.addSortColumn)(n.sort,s,"D"),!0;case"group":return n.groupBy=(0,ue.addGroupColumn)(n.groupBy,s),!0;case"group-add":return n.groupBy=(0,ue.addGroupColumn)(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=gc(n.filter,s),!0;case"remove-filters":return n.filter={filter:""},!0;case"agg-avg":return n.aggregations=(0,ue.setAggregations)(n.aggregations,s,bc),!0;case"agg-high":return n.aggregations=(0,ue.setAggregations)(n.aggregations,s,vc),!0;case"agg-low":return n.aggregations=(0,ue.setAggregations)(n.aggregations,s,wc),!0;case"agg-count":return n.aggregations=(0,ue.setAggregations)(n.aggregations,s,yc),!0;case"agg-distinct":return n.aggregations=(0,ue.setAggregations)(n.aggregations,s,xc),!0;case"agg-sum":return n.aggregations=(0,ue.setAggregations)(n.aggregations,s,Tc),!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};var jl=require("@vuu-ui/vuu-popups"),kr=require("@salt-ds/core");var Ae=require("@vuu-ui/vuu-utils"),sn=require("react");var We=require("@vuu-ui/vuu-utils"),Ga=z(require("classnames")),On=require("react");var vr=require("@vuu-ui/vuu-utils");function as(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=as(n[e]))&&(r&&(r+=" "),r+=t);else for(e in n)n[e]&&(r&&(r+=" "),r+=e);return r}function Un(){for(var n,e,t=0,r="";t<arguments.length;)(n=arguments[t++])&&(e=as(n))&&(r&&(r+=" "),r+=e);return r}var Ne=require("react"),Vr=require("@salt-ds/core"),ls=require("@heswell/salt-lab");var $r=require("react/jsx-runtime"),Br="vuuEditableLabel",Gt=(0,Ne.forwardRef)(function({className:e,defaultEditing:t,defaultValue:r,editing:o,onChange:s,onEnterEditMode:i,onExitEditMode:a,value:l,...c},u){let p=(0,Ne.useRef)(null),f=(0,Ne.useRef)(!1),[d,h]=(0,Vr.useControlled)({controlled:l,default:r!=null?r:"",name:"EditableLabel",state:"value"}),[b,y]=(0,Vr.useControlled)({controlled:o,default:t!=null?t:!1,name:"EditableLabel",state:"editing"}),g=(0,Ne.useCallback)(T=>{y(f.current=T)},[]),v=(0,Ne.useRef)(d);(0,Ne.useLayoutEffect)(()=>{b&&p.current!==null&&(p.current.select(),p.current.focus())},[b,p]);let x=(0,Ne.useCallback)(()=>{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=Un(Br,e,{[`${Br}-editing`]:b});return(0,$r.jsx)("div",{...c,className:P,onDoubleClick:m,"data-text":d,ref:u,children:b?(0,$r.jsx)(ls.Input,{inputProps:{className:`${Br}-input`},value:d,onBlur:C,onChange:E,onKeyDown:M,ref:p,style:{padding:0},textAlign:"left"}):d})});var Kr=require("@vuu-ui/vuu-utils"),fs=z(require("classnames"));var Cc={},Ec={},Qn={};function ie(n,e,t="component"){Qn[n]=e,t==="container"?Cc[n]=!0:t==="view"&&(Ec[n]=!0)}var vn=require("@salt-ds/core"),_r=z(require("classnames")),us=require("react");var ft=require("react/jsx-runtime"),pt="vuuDrawer",cs=n=>typeof n=="string"?n:n+"px",Rc=(n,e,t)=>{let r=e!==void 0,o=t!==void 0;if(!(!n&&!o&&!r))return!o&&!r?n:{...n,"--drawer-size":r?cs(e):void 0,"--drawer-peek-size":o?cs(t):void 0}},ps=({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]=(0,vn.useControlled)({controlled:a,default:r!=null?r:!1,name:"Drawer",state:"open"}),y=(0,_r.default)(pt,e,`${pt}-${l}`,{[`${pt}-open`]:h,[`${pt}-inline`]:c,[`${pt}-over`]:!c,[`${pt}-peekaboo`]:p}),g=(0,us.useCallback)(()=>{b(!h)},[h,b]),v=Rc(i,o,s),x=t?g:u,w=()=>(0,ft.jsx)("div",{className:(0,_r.default)("vuuToggleButton-container"),children:h?(0,ft.jsx)(vn.Button,{"aria-label":"close",onClick:g,"data-icon":"close",variant:"secondary"}):(0,ft.jsx)(vn.Button,{"aria-label":"open",onClick:g,"data-icon":"close",variant:"secondary"})});return(0,ft.jsxs)("div",{...d,className:y,onClick:x,style:v,children:[f=="start"?w():null,(0,ft.jsx)("div",{className:`${pt}-liner`,children:(0,ft.jsx)("div",{className:`${pt}-content`,children:n})}),f=="end"?w():null]})};ps.displayName="Drawer";var Wr=ps;var Xn=require("react/jsx-runtime"),Dc=n=>n.type===Wr,Sc=({props:{position:n="left"}})=>n.match(/top|bottom/),ds=n=>{let{children:e,className:t,id:r,style:o}=n,s="vuuDockLayout",[i,a]=(0,Kr.partition)(e,Dc),[l,c]=(0,Kr.partition)(i,Sc),u=l.length===0?"horizontal":c.length===0?"vertical":"both",p=(0,fs.default)(s,t,`${s}-${u}`);return(0,Xn.jsxs)("div",{className:p,id:r,style:o,children:[i,(0,Xn.jsx)("div",{className:`${s}-content`,children:a})]})};ds.displayName="DockLayout";ie("DockLayout",ds,"container");var ms=require("react");var hs=require("react/jsx-runtime"),Gr=(0,ms.forwardRef)(function({resizeable:e,...t},r){return(0,hs.jsx)("div",{...t,className:"Component",ref:r})});Gr.displayName="Component";var Ur=Gr;ie("Component",Gr);var gs=z(require("react"));var Pc={},et=(n,e)=>{var r;let t=xe(n);return(r=t[e])!=null?r:t[`data-${e}`]},xe=n=>(n==null?void 0:n.props)||n||Pc;var ze=require("react"),Mc=[],Lc=0,Ut=n=>{let e=Array.isArray(n),t=e?n.length:ze.Children.count(n);return e&&n.every(ze.isValidElement)?n:t===1&&!e&&(0,ze.isValidElement)(n)?[n]:t>1?n:Mc},bs=(n,e)=>{let t=(0,ze.useRef)(!1);(0,ze.useLayoutEffect)(()=>{t.current?n():t.current=!0},e)},Zn=n=>(0,ze.useMemo)(()=>n!=null?n:`vuu-${++Lc}`,[n]);var Xr={north:1,east:2,south:4,west:8,header:16,centre:32,absolute:64},Zr={AFTER:"after",BEFORE:"before"},dt=Object.freeze({North:St("north"),East:St("east"),South:St("south"),West:St("west"),Header:St("header"),Centre:St("centre"),Absolute:St("absolute")});function St(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 em=dt.North,tm=dt.South,nm=dt.East,rm=dt.West,om=dt.Header,sm=dt.Centre;var{north:Ic,south:Oc,east:Ac,west:Hc}=Xr,mm=Ac+Hc,hm=Ic+Oc;var Yn=require("@vuu-ui/vuu-popups");var ys=z(require("classnames"));var jr=require("react/jsx-runtime");function xs(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 Yr="vuuDropMenu",vs=({className:n,dropTarget:e,onHover:t,orientation:r})=>{let o=e.toArray();return(0,jr.jsx)("div",{className:(0,ys.default)(Yr,n,`${Yr}-${r}`),onMouseLeave:()=>t(null),children:o.map((s,i)=>(0,jr.jsx)("div",{className:`${Yr}-item`,"data-icon":i===0?"column-2A":"column-2B",onMouseEnter:()=>t(s)},i))})};var Es=require("react/jsx-runtime"),qr=!1,wn=null,Fe=null,Nc=n=>wn=n,zc=([n,e])=>`M${n},${e}`,Fc=([n,e])=>`L${n},${e}`,ws=([n,...e])=>`${zc(n)} ${e.map(Fc)}Z`,Bc=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 Vc(){if(document.getElementById("hw-drag-canvas")===null){let n=document.getElementById("root"),e=document.createElement("div");e.id="hw-drag-canvas",e.innerHTML=`
1
+ "use strict";var rd=Object.create;var Rr=Object.defineProperty;var od=Object.getOwnPropertyDescriptor;var sd=Object.getOwnPropertyNames;var id=Object.getPrototypeOf,ld=Object.prototype.hasOwnProperty;var ad=(n,e)=>{for(var t in e)Rr(n,t,{get:e[t],enumerable:!0})},js=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of sd(e))!ld.call(n,o)&&o!==t&&Rr(n,o,{get:()=>e[o],enumerable:!(r=od(e,o))||r.enumerable});return n};var V=(n,e,t)=>(t=n!=null?rd(id(n)):{},js(e||!n||!n.__esModule?Rr(t,"default",{value:n,enumerable:!0}):t,n)),cd=n=>js(Rr({},"__esModule",{value:!0}),n);var qs=(n,e,t)=>{if(!e.has(n))throw TypeError("Cannot "+t)};var nt=(n,e,t)=>(qs(n,e,"read from private field"),t?t.call(n):e.get(n)),Js=(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)},Po=(n,e,t,r)=>(qs(n,e,"write to private field"),r?r.call(n,t):e.set(n,t),t);var Ch={};ad(Ch,{ColumnResizer:()=>zt,Table:()=>Ym,TableNext:()=>Ju,buildContextMenuDescriptors:()=>Xn,isShowColumnSettings:()=>Gs,isShowTableSettings:()=>Us,useMeasuredContainer:()=>xr,useSelection:()=>Cr,useTableColumnResize:()=>Zt,useTableContextMenu:()=>Qn,useTableModel:()=>Xs,useTableViewport:()=>Tr});module.exports=cd(Ch);var ln=require("react");var ti=require("react/jsx-runtime"),ei=()=>{},ud="vuuColumnResizer",zt=({onDrag:n,onDragEnd:e=ei,onDragStart:t=ei})=>{let r=(0,ln.useRef)(0),o=(0,ln.useCallback)(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=(0,ln.useCallback)(l=>{window.removeEventListener("mouseup",s),window.removeEventListener("mousemove",o),e(l)},[e,o]),i=(0,ln.useCallback)(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(0,ti.jsx)("div",{className:ud,"data-align":"end",onMouseDown:i})};var ni=require("@vuu-ui/vuu-utils"),Xn=n=>(e,t)=>{let r=[];if(n===void 0)return r;if(e==="header"||e==="column-menu")r.push(...dd(t,n)),r.push(...md(t,n)),r.push(...pd(t,n)),r.push(...fd(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 dd(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 pd(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((0,ni.isNumericColumn)(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 Ao=(n,e)=>({label:`Pin ${e}`,action:`column-pin-${e}`,options:n}),Lo=n=>Ao(n,"left"),ko=n=>Ao(n,"floating"),Io=n=>Ao(n,"right");function fd(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:[Lo(n),ko(n),Io(n)]}):t==="left"?r.push({label:"Unpin column",action:"column-unpin",options:n},{label:"Pin column",children:[ko(n),Io(n)]}):t==="right"?r.push({label:"Unpin column",action:"column-unpin",options:n},{label:"Pin column",children:[Lo(n),ko(n)]}):t==="floating"&&r.push({label:"Unpin column",action:"column-unpin",options:n},{label:"Pin column",children:[Lo(n),Io(n)]}),r}function md(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}var ri=require("@vuu-ui/vuu-utils"),ue=require("@vuu-ui/vuu-utils"),hd=(n,e)=>{if(n.filterStruct&&e){let[t,r]=(0,ri.removeColumnFromFilter)(e,n.filterStruct);return{filter:r,filterStruct:t}}else return n},{Average:gd,Count:bd,Distinct:yd,High:xd,Low:vd,Sum:Cd}=ue.AggregationType,Qn=({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=(0,ue.setSortColumn)(n.sort,s,"A"),!0;case"sort-dsc":return n.sort=(0,ue.setSortColumn)(n.sort,s,"D"),!0;case"sort-add-asc":return n.sort=(0,ue.addSortColumn)(n.sort,s,"A"),!0;case"sort-add-dsc":return n.sort=(0,ue.addSortColumn)(n.sort,s,"D"),!0;case"group":return n.groupBy=(0,ue.addGroupColumn)(n.groupBy,s),!0;case"group-add":return n.groupBy=(0,ue.addGroupColumn)(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=hd(n.filter,s),!0;case"remove-filters":return n.filter={filter:""},!0;case"agg-avg":return n.aggregations=(0,ue.setAggregations)(n.aggregations,s,gd),!0;case"agg-high":return n.aggregations=(0,ue.setAggregations)(n.aggregations,s,xd),!0;case"agg-low":return n.aggregations=(0,ue.setAggregations)(n.aggregations,s,vd),!0;case"agg-count":return n.aggregations=(0,ue.setAggregations)(n.aggregations,s,bd),!0;case"agg-distinct":return n.aggregations=(0,ue.setAggregations)(n.aggregations,s,yd),!0;case"agg-sum":return n.aggregations=(0,ue.setAggregations)(n.aggregations,s,Cd),!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};var bu=require("@vuu-ui/vuu-popups"),To=require("@salt-ds/core");var Be=require("@vuu-ui/vuu-utils"),Pn=require("react");var Ye=require("@vuu-ui/vuu-utils"),mc=V(require("classnames")),dr=require("react");var co=require("@vuu-ui/vuu-utils");var an=require("react"),Ed=require("react/jsx-runtime"),Td={isDragSource:!1,isDropTarget:!1,register:()=>{}},wd=()=>console.log("have you forgotten to provide a DragDrop Provider ?"),Sd=(0,an.createContext)({registerDragDropParty:wd});var oi=n=>{var o,s;let{dragSources:e,dropTargets:t,registerDragDropParty:r}=(0,an.useContext)(Sd);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 Td};var de=require("react");var We=require("react");var Rd=["left","right"],Dd=["top","bottom"],Dr=":not(.wrapped)",si=':not([aria-hidden="true"])',ii=n=>{let e=n.cloneNode(!0);return e.removeAttribute("id"),e.dataset.index="-1",e},Md=(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"?Rd:Dd,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]},Pd={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"}},Ne=n=>Pd[n],li=(n,e)=>{let t=n.find(r=>r.id===e);if(t)return t},ai=(n,e)=>{n.splice(e,1);for(let t=e;t<n.length;t++)n[t].currentIndex-=1},cn=(n,e,t,r,o)=>{var p;let s=[],{DIMENSION:i}=Ne(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]=Md(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},Zn=n=>n.findIndex(e=>e.isDraggedItem),Oo=(n,e)=>{let t=Zn(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)}},un=(n,e,t)=>{let r=n.length,o=Zn(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 ci(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 ui=(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}}};var pi=require("@salt-ds/core");function di(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=di(n[e]))&&(r&&(r+=" "),r+=t);else for(e in n)n[e]&&(r&&(r+=" "),r+=e);return r}function Mr(){for(var n,e,t=0,r="";t<arguments.length;)(n=arguments[t++])&&(e=di(n))&&(r&&(r+=" "),r+=e);return r}var Pr=require("react"),fi=require("@vuu-ui/vuu-popups");var Ho=require("react/jsx-runtime"),Ld=n=>n.split(" ").map(e=>`vuuDraggable-${e}`),Lr=(0,Pr.forwardRef)(function({wrapperClassName:e,element:t,onTransitionEnd:r,style:o,scale:s=1},i){let l=(0,Pr.useCallback)(c=>{c&&(c.innerHTML="",c.appendChild(t),s!==1&&(c.style.transform=`scale(${s},${s})`))},[t,s]),a=(0,pi.useForkRef)(i,l);return(0,Ho.jsx)(fi.Portal,{children:(0,Ho.jsx)("div",{className:Mr("vuuDraggable",...Ld(e)),ref:a,onTransitionEnd:r,style:o})})}),No=n=>{let e=document.createElement("div");return e.className="vuuDraggable-spacer",n&&e.addEventListener("transitionend",()=>{n.current=!1}),e},mi=()=>{let n=document.createElement("div");return n.className="vuuDraggable-dropIndicatorPosition",n},hi=n=>{let e=document.createElement("div");return e.className="vuuDraggable-dropIndicator",n&&e.addEventListener("transitionend",()=>{n.current=!1}),e};var gi=()=>{let n=(0,We.useRef)(0),e=(0,We.useRef)(!1),t=(0,We.useMemo)(()=>[No(e),No()],[]),r=(0,We.useCallback)(()=>t.forEach(a=>a.remove()),[t]),o=(0,We.useCallback)((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=(0,We.useCallback)(()=>{n.current&&(cancelAnimationFrame(n.current),n.current=0)},[]),i=(0,We.useCallback)((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"&&Oo(a,d)}},[o,s,r,t]),l=(0,We.useCallback)((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"&&Oo(a,d)},[o,s,r,t]);return{displaceItem:i,displaceLastItem:l,clearSpacers:r}};var bi=({draggableRef:n,onDrop:e,orientation:t="horizontal",containerRef:r,itemQuery:o="*",selected:s,viewportRange:i})=>{let l=(0,de.useRef)(),a=(0,de.useRef)(!1),c=(0,de.useRef)(-1),u=(0,de.useRef)([]),p=(0,de.useRef)(!1),[d,f]=(0,de.useState)(!1),{clearSpacers:m,displaceItem:h,displaceLastItem:x}=gi(),v=(0,de.useRef)(),C=`:is(${o}${Dr}${si},.vuuOverflowContainer-OverflowIndicator)`,y=S=>u.current.findIndex(M=>M.id===S.id),b=(0,de.useRef)();b.current=i;let T=(0,de.useCallback)(()=>{m()},[m]),g=(0,de.useCallback)((S,M,I)=>{let{current:L}=r,{current:k}=v;if(L&&k){u.current=cn(L,t,C,b.current);let{size:O}=k,N=c.current+O/2,{current:H}=u,B=un(H,N,"fwd");if(B){let K=y(B),_=H[K];I&&S==="fwd"?x(H,H[H.length-1],O,!1,"static",t):h(H,_,O,!0,"static",t)}}},[r,h,x,C,t]),w=(0,de.useCallback)(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}=Ne(t),{id:A}=I,{[k]:N,[O]:H}=L;a.current=N>H;let B=u.current=cn(L,t,C,i,A);console.log({dropTargets:B});let z=Zn(B),K=B[z];K&&L&&(v.current=K,(K.isLast?x:h)(B,K,K.size,!1,"static",t))}},[r,h,x,C,o,t,s,i]),[D,P]=(0,de.useMemo)(()=>{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=(0,de.useCallback)((S,M)=>{let{current:I}=v;if(I&&n.current&&r.current){c.current=S;let{current:L}=u,k=un(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=(0,de.useCallback)(()=>{var L;m();let{current:S}=u,M=Zn(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}};var le=require("react");var Yn=require("react");var yi=()=>{let n=(0,Yn.useMemo)(()=>mi(),[]),e=(0,Yn.useCallback)(()=>n.remove(),[n]);return{positionDropIndicator:(0,Yn.useCallback)((r,o="end")=>(o==="end"?r.element.after(n):r.element.before(n),n),[n]),clearSpacer:e}};var vi=require("react/jsx-runtime"),kd=':not([data-overflowed="true"])',Id=':not([aria-hidden="true"])',xi=({draggableRef:n,onDrop:e,orientation:t="horizontal",containerRef:r,itemQuery:o="*",selected:s,viewportRange:i})=>{let l=(0,le.useRef)(),a=(0,le.useRef)(null),c=(0,le.useRef)(null),u=(0,le.useRef)(""),p=(0,le.useRef)(!1),d=(0,le.useRef)(-1),f=(0,le.useRef)([]),m=(0,le.useRef)(!1),[h,x]=(0,le.useState)(!1),[v,C]=(0,le.useState)(),{clearSpacer:y,positionDropIndicator:b}=yi(),T=(0,le.useRef)(),g=`:is(${o}${kd}${Id},[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=(0,le.useRef)();P.current=i;let E=(0,le.useCallback)(()=>{y()},[y]),R=(0,le.useCallback)((L,k,O)=>{let{current:A}=r,{current:N}=T;if(A&&N){f.current=cn(A,t,g,P.current);let{size:H}=N,z=d.current+H/2,{current:K}=f,_=un(K,z,"fwd");_&&b(O&&L==="fwd"?K[K.length-1]:_,"start")}},[r,b,g,t]),S=(0,le.useCallback)(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}=Ne(t),{id:B}=O,{[N]:z,[H]:K}=A;p.current=z>K;let _=f.current=cn(A,t,g,i),q=li(_,B);if(q&&A){let F=w(q);ai(_,F),T.current=q;let{current:$}=P;if($!=null&&$.atEnd)for(let J=0;J<_.length;J++)D(_[J],q.size);for(let J=F;J<_.length;J++)D(_[J],-q.size,-1);let[Q,ge]=q.isLast?[_[_.length-1],"end"]:[_[F],"start"];c.current=Q,u.current=ge;let tt=b(Q,ge),{top:U,left:Z,width:se}=tt.getBoundingClientRect(),re={top:q.isLast?$!=null&&$.atEnd&&!$.atStart?U+q.size-2:U-2:U-q.size-2,left:Z,width:se,height:2};C((0,vi.jsx)(Lr,{wrapperClassName:"dropIndicatorContainer",style:re,ref:a,element:hi()}))}}},[o,s,r,t,g,i,b]),M=(0,le.useCallback)((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,B=un(H,L,k);if(B&&B.index!==(O==null?void 0:O.index)){if(B.isOverflowIndicator)x(m.current=!0);else if(a.current){if(w(B)===H.length-1){let K=H[H.length-1],q=b(K,"start").getBoundingClientRect();a.current.style[N]=`${q.top}px`}else{let _=b(B,"start").getBoundingClientRect();a.current.style[N]=`${_.top}px`}x(m.current=!1)}c.current=B,l.current=k}}},[n,r,t,b]),I=(0,le.useCallback)(()=>{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:B,currentIndex:z}=k;c.current=null,l.current=void 0,m.current?e(N,-1):N<B?e(N,H?z:z+1):e(N,H?B:B+1),C(void 0)}x(!1)},[y,e]);return{beginDrag:S,drag:M,drop:I,dropIndicator:v,handleScrollStart:E,handleScrollStop:R,revealOverflowedItems:h}};var Y=require("react");var yt=require("react");var Ci=({containerRef:n,onScrollingStopped:e,orientation:t="vertical"})=>{let r=(0,yt.useRef)(null),o=(0,yt.useRef)(!1),s=(0,yt.useRef)(0),i=(0,yt.useRef)("fwd"),l=(0,yt.useCallback)((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=(0,yt.useCallback)((c,u,p=30)=>{let{current:d}=n;if(d){let{SCROLL_POS:f,SCROLL_SIZE:m,CLIENT_SIZE:h}=Ne(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}};var wi=require("react/jsx-runtime"),Ad={beginDrag:()=>{},drag:()=>{},draggableRef:{current:null},drop:()=>{},isDragging:!1,isScrolling:!1,handleScrollStart:()=>{},handleScrollStop:()=>{},revealOverflowedItems:!1},Ti={start:0,end:1e3,contraStart:0,contraEnd:1e3},Od=()=>Ad,Hd=3,Nd=(n,e)=>n.closest(e),zd=n=>n.dataset.index==="overflow"&&n.parentElement!==null&&n.parentElement.classList.contains("overflowed"),Fd=(n,e)=>{let t=`:is(${e}${Dr},.vuuOverflowContainer-OverflowIndicator)`,o=Array.from(n.querySelectorAll(t)).pop();return[o,zd(o)]},kr=({allowDragDrop:n,containerRef:e,draggableClassName:t,itemQuery:r="*",onDragStart:o,onDrop:s,onDropSettle:i,orientation:l,...a})=>{let c=(0,Y.useRef)({start:0,end:0,contraStart:0,contraEnd:0}),[u,p]=(0,Y.useState)({draggable:void 0,draggedItemIndex:-1,isDragging:!1}),d=(0,Y.useRef)(null),f=(0,Y.useRef)(),m=(0,Y.useRef)(null),h=(0,Y.useRef)(!1),x=(0,Y.useRef)({x:0,y:0}),v=(0,Y.useRef)({x:0,y:0}),C=(0,Y.useRef)({x:0,y:0}),y=(0,Y.useRef)(null),b=(0,Y.useRef)(-1),T=(0,Y.useRef)(-1),g=(0,Y.useRef)(),{isDragSource:w,isDropTarget:D,register:P}=oi(a.id);a.id&&(w||D)&&P(a.id);let E=(0,Y.useCallback)(()=>{var se;let{current:U}=T,Z=(se=e.current)==null?void 0:se.querySelector(`${r}[data-index="${U}"]`);Z&&Z.classList.remove("vuuDropTarget-settling"),T.current=-1,i==null||i(U),p(re=>({...re,draggable:void 0}))},[e,r,i]),R=(0,Y.useCallback)(U=>{if(e.current){let{POS:Z,SCROLL_POS:se,SCROLL_SIZE:re,CLIENT_SIZE:J}=Ne(l),{[se]:W,[re]:ee,[J]:ce}=e.current,te=ee-ce,be=W<te,ke=c.current.end,ye=W>0&&U-x.current[Z]<=c.current.start,Ie=be&&U-x.current[Z]>=ke;return ye?"bwd":Ie?"fwd":""}},[e,l]),S=n===!0||n==="natural-movement"?bi:n==="drop-indicator"?xi:Od,M=(0,Y.useCallback)((U,Z,se)=>{var re;(re=g.current)==null||re.call(g,U,Z,se)},[]),{isScrolling:I,startScrolling:L,stopScrolling:k}=Ci({containerRef:e,onScrollingStopped:M,orientation:l}),O=(0,Y.useCallback)((U,Z)=>{b.current=Z,s==null||s(U,Z),T.current=Z},[s]),{beginDrag:A,drag:N,drop:H,handleScrollStart:B,handleScrollStop:z,...K}=S({...a,containerRef:e,draggableRef:d,isDragSource:w,isDropTarget:D,itemQuery:r,onDrop:O,orientation:l});g.current=z;let _=(0,Y.useCallback)(U=>{let{CLIENT_POS:Z,CONTRA_CLIENT_POS:se,CONTRA_POS:re,POS:J}=Ne(l),{clientX:W,clientY:ee}=U,{[Z]:ce,[se]:te}=U,be=v.current[J],ke=v.current[re],ye=Math.abs(be-ce);if((w?Math.abs(ke-te):0)-ye>5&&(c.current=Ti),v.current.x=W,v.current.y=ee,c.current===Ti&&d.current){let Nt=v.current.x-x.current.x,lt=v.current.y-x.current.y;d.current.style.top=`${lt}px`,d.current.style.left=`${Nt}px`}else if(ye>0&&d.current){let Nt=be<ce?"fwd":"bwd",lt=R(ce),Gn=v.current[J]-x.current[J];if(lt&&h.current&&!I.current?(B(),L(lt,1)):!lt&&I.current&&k(),!I.current){let on=Math.round(Math.max(c.current.start,Math.min(c.current.end,Gn))),Ke=l==="horizontal"?"left":"top";d.current.style[Ke]=`${on}px`,N(on,Nt)}}},[N,d,R,B,w,I,l,L,k]),q=(0,Y.useCallback)(()=>{document.removeEventListener("mousemove",_,!1),document.removeEventListener("mouseup",q,!1),y.current=d.current,H(),p(U=>({...U,draggedItemIndex:-1,isDragging:!1})),f.current=void 0},[_,d,H]),F=(0,Y.useCallback)(U=>{let{clientX:Z,clientY:se,target:re}=U,J=Nd(re,r),{current:W}=e;if(W&&J){let{CONTRA:ee,CONTRA_END:ce,DIMENSION:te,END:be,SCROLL_SIZE:ke,CLIENT_SIZE:ye,START:Ie}=Ne(l);f.current=J;let{[ke]:Nt,[ye]:lt}=W;h.current=Nt>lt;let[Gn,on]=Fd(W,r),Ke=W.getBoundingClientRect(),sn=J.getBoundingClientRect(),Un=sn[te],{[Ie]:ed,[be]:td}=Gn.getBoundingClientRect();x.current.x=Z-sn.left,x.current.y=se-sn.top,c.current.start=Ke[Ie],c.current.end=on?Math.max(ed,Ke.right-Un):h.current?Ke[Ie]+Ke[te]-Un:td-Un,c.current.contraStart=Ke[ee],c.current.contraEnd=Ke[ce],A(U);let{dataset:{index:nd="-1"}}=J;p({isDragging:!0,draggable:(0,wi.jsx)(Lr,{element:ii(J),onTransitionEnd:E,ref:d,style:ci(sn,Ke),wrapperClassName:t}),draggedItemIndex:parseInt(nd)}),o==null||o(),document.addEventListener("mousemove",_,!1),document.addEventListener("mouseup",q,!1)}},[A,e,_,q,t,d,r,o,l,E]),$=(0,Y.useCallback)(U=>{let{CLIENT_POS:Z,POS:se}=Ne(l),{[Z]:re}=U;Math.abs(re-C.current[se])>Hd&&e.current&&(m.current&&(window.clearTimeout(m.current),m.current=null),document.removeEventListener("mousemove",$),document.removeEventListener("mouseup",Q,!1),F(U))},[e,A,l]),Q=(0,Y.useCallback)(()=>{m.current&&(window.clearTimeout(m.current),m.current=null),document.removeEventListener("mousemove",$,!1),document.removeEventListener("mouseup",Q,!1)},[$]),ge=(0,Y.useCallback)(U=>{console.log("useDragDropNext onMouseDown");let{current:Z}=e;if(Z&&!U.defaultPrevented){let{clientX:se,clientY:re}=U;v.current.x=C.current.x=se,v.current.y=C.current.y=re,document.addEventListener("mousemove",$,!1),document.addEventListener("mouseup",Q,!1),U.persist(),m.current=window.setTimeout(()=>{document.removeEventListener("mousemove",$,!1),document.removeEventListener("mouseup",Q,!1),F(U.nativeEvent)},500)}},[e,F,$,Q]),{current:tt}=y;return(0,Y.useLayoutEffect)(()=>{if(tt&&e.current){let U=b.current,Z=e.current.querySelector(`${r}[data-index="${U}"]`);Z?(Z.classList.add("vuuDropTarget-settling"),requestAnimationFrame(()=>{let{top:se,left:re}=Z.getBoundingClientRect(),{top:J,left:W}=tt.getBoundingClientRect();W!==re||J!==se?(tt.classList.add("vuuDraggable-settling"),tt.style.top=`${se}px`,tt.style.left=`${re}px`):E()})):console.log(`dont have the dropped item (at ${U})`),y.current=null}},[e,r,tt,E]),{...K,...u,isScrolling:I,onMouseDown:n?ge:void 0}};var _e=require("react"),jn=require("@salt-ds/core");var Fo=require("react/jsx-runtime"),zo="vuuEditableLabel",dn=(0,_e.forwardRef)(function({className:e,defaultEditing:t,defaultValue:r,editing:o,onChange:s,onEnterEditMode:i,onExitEditMode:l,value:a,...c},u){let p=(0,_e.useRef)(null),d=(0,_e.useRef)(!1),[f,m]=(0,jn.useControlled)({controlled:a,default:r!=null?r:"",name:"EditableLabel",state:"value"}),[h,x]=(0,jn.useControlled)({controlled:o,default:t!=null?t:!1,name:"EditableLabel",state:"editing"}),v=(0,_e.useCallback)(E=>{x(d.current=E)},[]),C=(0,_e.useRef)(f);(0,_e.useLayoutEffect)(()=>{h&&p.current!==null&&(p.current.select(),p.current.focus())},[h,p]);let y=(0,_e.useCallback)(()=>{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=Mr(zo,e,{[`${zo}-editing`]:h});return(0,Fo.jsx)("div",{...c,className:P,onDoubleClick:g,"data-text":f,ref:u,children:h?(0,Fo.jsx)(jn.Input,{inputProps:{className:`${zo}-input`},value:f,onBlur:w,onChange:T,onKeyDown:D,inputRef:p,style:{padding:0},textAlign:"left",variant:"secondary"}):f})});var Bo=require("@vuu-ui/vuu-utils"),Di=V(require("classnames"));var $d={},Vd={},Ir={};function pe(n,e,t="component"){Ir[n]=e,t==="container"?$d[n]=!0:t==="view"&&(Vd[n]=!0)}var qn=require("@salt-ds/core"),$o=V(require("classnames")),Ei=require("react");var vt=require("react/jsx-runtime"),xt="vuuDrawer",Si=n=>typeof n=="string"?n:n+"px",Bd=(n,e,t)=>{let r=e!==void 0,o=t!==void 0;if(!(!n&&!o&&!r))return!o&&!r?n:{...n,"--drawer-size":r?Si(e):void 0,"--drawer-peek-size":o?Si(t):void 0}},Ri=({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]=(0,qn.useControlled)({controlled:l,default:r!=null?r:!1,name:"Drawer",state:"open"}),x=(0,$o.default)(xt,e,`${xt}-${a}`,{[`${xt}-open`]:m,[`${xt}-inline`]:c,[`${xt}-over`]:!c,[`${xt}-peekaboo`]:p}),v=(0,Ei.useCallback)(()=>{h(!m)},[m,h]),C=Bd(i,o,s),y=t?v:u,b=()=>(0,vt.jsx)("div",{className:(0,$o.default)("vuuToggleButton-container"),children:m?(0,vt.jsx)(qn.Button,{"aria-label":"close",onClick:v,"data-icon":"close",variant:"secondary"}):(0,vt.jsx)(qn.Button,{"aria-label":"open",onClick:v,"data-icon":"close",variant:"secondary"})});return(0,vt.jsxs)("div",{...f,className:x,onClick:y,style:C,children:[d=="start"?b():null,(0,vt.jsx)("div",{className:`${xt}-liner`,children:(0,vt.jsx)("div",{className:`${xt}-content`,children:n})}),d=="end"?b():null]})};Ri.displayName="Drawer";var Vo=Ri;var Ar=require("react/jsx-runtime"),Kd=n=>n.type===Vo,Wd=({props:{position:n="left"}})=>n.match(/top|bottom/),Mi=n=>{let{children:e,className:t,id:r,style:o}=n,s="vuuDockLayout",[i,l]=(0,Bo.partition)(e,Kd),[a,c]=(0,Bo.partition)(i,Wd),u=a.length===0?"horizontal":c.length===0?"vertical":"both",p=(0,Di.default)(s,t,`${s}-${u}`);return(0,Ar.jsxs)("div",{className:p,id:r,style:o,children:[i,(0,Ar.jsx)("div",{className:`${s}-content`,children:l})]})};Mi.displayName="DockLayout";pe("DockLayout",Mi,"container");var Pi=require("react");var Li=require("react/jsx-runtime"),Ko=(0,Pi.forwardRef)(function({resizeable:e,...t},r){return(0,Li.jsx)("div",{...t,className:"Component",ref:r})});Ko.displayName="Component";var Wo=Ko;pe("Component",Ko);var ki=V(require("react"));var _d={},at=(n,e)=>{var r;let t=ve(n);return(r=t[e])!=null?r:t[`data-${e}`]},ve=n=>(n==null?void 0:n.props)||n||_d;var Ge=require("react"),Gd=[],Ud=0,pn=n=>{let e=Array.isArray(n),t=e?n.length:Ge.Children.count(n);return e&&n.every(Ge.isValidElement)?n:t===1&&!e&&(0,Ge.isValidElement)(n)?[n]:t>1?n:Gd},Ii=(n,e)=>{let t=(0,Ge.useRef)(!1);(0,Ge.useLayoutEffect)(()=>{t.current?n():t.current=!0},e)},Or=n=>(0,Ge.useMemo)(()=>n!=null?n:`vuu-${++Ud}`,[n]);var Go={north:1,east:2,south:4,west:8,header:16,centre:32,absolute:64},Uo={AFTER:"after",BEFORE:"before"},Ct=Object.freeze({North:Ft("north"),East:Ft("east"),South:Ft("south"),West:Ft("west"),Header:Ft("header"),Centre:Ft("centre"),Absolute:Ft("absolute")});function Ft(n){return Object.freeze({offset:n==="north"||n==="west"?0:n==="south"||n==="east"?1:NaN,valueOf:function(){return Go[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 Mb=Ct.North,Pb=Ct.South,Lb=Ct.East,kb=Ct.West,Ib=Ct.Header,Ab=Ct.Centre;var{north:Qd,south:Zd,east:Yd,west:jd}=Go,Kb=Yd+jd,Wb=Qd+Zd;var Hr=require("@vuu-ui/vuu-popups");var Ai=V(require("classnames"));var Qo=require("react/jsx-runtime");function Oi(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 Xo="vuuDropMenu",Hi=({className:n,dropTarget:e,onHover:t,orientation:r})=>{let o=e.toArray();return(0,Qo.jsx)("div",{className:(0,Ai.default)(Xo,n,`${Xo}-${r}`),onMouseLeave:()=>t(null),children:o.map((s,i)=>(0,Qo.jsx)("div",{className:`${Xo}-item`,"data-icon":i===0?"column-2A":"column-2B",onMouseEnter:()=>t(s)},i))})};var $i=require("react/jsx-runtime"),Zo=!1,Jn=null,Ue=null,qd=n=>Jn=n,Jd=([n,e])=>`M${n},${e}`,ep=([n,e])=>`L${n},${e}`,Ni=([n,...e])=>`${Jd(n)} ${e.map(ep)}Z`,tp=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 np(){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 @@
14
14
  />
15
15
  </path>
16
16
  </svg>
17
- `,document.body.insertBefore(e,n)}}var Tn=class{constructor(){this.currentPath=null;this.tabMode=null;Vc()}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=ws(r),s=document.getElementById("vuu-drop-outline");s==null||s.setAttribute("d",o),this.currentPath=o}clear(){wn=null,jn(),document.body.classList.remove("drawing"),Yn.PopupService.hidePopup()}get hoverDropTarget(){return wn}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=qr;if(wn!==null)this.drawTarget(wn);else if(qr=e.nextDropTarget!=null,e.pos.tab?$c(e):Fe&&jn(),this.drawTarget(e,t),qr){let[s,i,a]=xs(e);{let l=(0,Es.jsx)(vs,{dropTarget:e,onHover:Nc,orientation:a});Yn.PopupService.showPopup({left:s,top:i,component:l})}}else Yn.PopupService.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=ws(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",Bc(f))}}},Ts="transition:margin-left .4s ease-out;margin-left: 63px",Cs="transition:margin-left .4s ease-out;margin-left: 0px";function $c(n){var a,l;let{AFTER:e,BEFORE:t}=Zr,{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?(Fe===null||Fe!==i)&&(i.style.cssText=Ts,Fe&&(Fe.style.cssText=Cs),Fe=i):jn()}else if((o==null?void 0:o.positionRelativeToTab)===t){if(Fe===null){let c=".vuuHeader-title";i=(l=document.getElementById(s))==null?void 0:l.querySelector(c),i.style.cssText=Ts,Fe=i}}else jn()}function jn(){Fe&&(Fe.style.cssText=Cs,Fe=null)}var zm=new Tn;var Ds=z(require("classnames")),Ss=require("react");var Ls=require("react/jsx-runtime"),Ps=(0,Ss.forwardRef)(function({children:e,className:t,dropTarget:r,resizeable:o,...s},i){let a=(0,Ds.default)("DraggableLayout",t);return(0,Ls.jsx)("div",{className:a,ref:i,...s,children:e})}),Ms="DraggableLayout";Ps.displayName=Ms;ie(Ms,Ps,"container");var Gs=require("@salt-ds/core"),Us=z(require("classnames")),Qs=require("react");var Ws=require("@vuu-ui/vuu-utils"),se=z(require("react"));var Is=z(require("classnames"));var Os=require("react/jsx-runtime"),ks="vuuPlaceholder",qn=({className:n,closeable:e,flexFill:t,resizeable:r,shim:o,...s})=>(0,Os.jsx)("div",{className:(0,Is.default)(ks,n,{[`${ks}-shim`]:o}),...s,"data-placeholder":!0,"data-resizeable":!0});qn.displayName="Placeholder";ie("Placeholder",qn);var As=z(require("classnames")),ve=z(require("react"));var Jr=require("react/jsx-runtime"),Hs=ve.default.memo(function({column:e,index:t,onDrag:r,onDragEnd:o,onDragStart:s,style:i}){let a=(0,ve.useRef)(),l=(0,ve.useRef)(null),c=(0,ve.useRef)(0),[u,p]=(0,ve.useState)(!1),f=(0,ve.useCallback)(({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=(0,ve.useCallback)(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=(0,ve.useRef)(d),b=m=>h.current(m),y=(0,ve.useCallback)(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=(0,ve.useCallback)(()=>{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=(0,ve.useCallback)(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=(0,As.default)("Splitter","focusable",{active:u,column:e});return(0,Jr.jsx)("div",{className:E,"data-splitter":!0,ref:l,role:"separator",style:i,onBlur:w,onClick:x,onKeyDown:b,onMouseDown:v,tabIndex:0,children:(0,Jr.jsx)("div",{className:"grab-zone"})})});var _c=require("@vuu-ui/vuu-utils"),Wc=z(require("react"));var zs={},Ns="auto";var Qt=n=>{let{style:{width:e=Ns,height:t=Ns}=zs}=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 Fs(n){let{style:{flex:e,flexGrow:t,flexShrink:r,flexBasis:o}=zs}=n.props;return typeof e=="number"||o===0&&t===1&&r===1?!0:typeof o!="number"}var Kc={},En=1,Rn=2,Gc=n=>typeof n.intrinsicSize=="number",Uc=(n,e)=>{let t={};return n.forEach(r=>{t[r]=et(e,r)}),t},Jn=(n,e,t)=>n.map((r,o)=>{var l;let s=et(r,"resizeable"),{[e]:i}=(l=Qt(r))!=null?l:Kc,a=Fs(r);return t?{index:o,flexOpen:a,intrinsicSize:i,resizeable:s,...Uc(t,r)}:{index:o,flexOpen:a,intrinsicSize:i,resizeable:s}}),Bs=n=>{let e=n.length,t=n.every(Gc),r=Array(e).fill(0);if(t&&e>0&&(r[0]=Rn,r[e-1]=Rn),e<2)return r;for(let o=0,s=0;o<e-1;o++)n[o].resizeable&&!s&&(s=En),r[o]+=s;for(let o=e-1;o>0&&(r[o]&En&&(r[o]-=En),!n[o].resizeable);o--);return r},Vs=(n,e)=>{let t=Xc(n,e),r=Zc(n,e),o=t!==-1&&r!==-1?[t,r]:void 0,s=Qc(n,o);return[o,s]};function Qc(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 Xc(n,e){let t=e,r=!1;for(;t>=1&&!r;)t=t-1,r=$s(n,t);return t}function Zc(n,e){let t=e,r=!1,o=n.length;for(;t<o-1&&!r;)t=t+1,r=$s(n,t);return t===o?-1:t}function $s(n,e){let{placeholder:t,splitter:r,resizeable:o,intrinsicSize:s}=n[e];return!!(!r&&!s&&(t||o))}var Yc=n=>!n.splitter&&!n.placeholder,Ks=({children:n,onSplitterMoved:e,style:t})=>{let r=(0,se.useRef)(null),o=(0,se.useRef)(),s=(0,se.useRef)(),i=(0,se.useRef)([]),[,a]=(0,se.useState)({}),l=y=>{s.current=y,a({})},c=(t==null?void 0:t.flexDirection)==="column",u=c?"height":"width",p=(0,se.useMemo)(()=>Array.isArray(n)?n:se.default.isValidElement(n)?[n]:[],[n]),f=(0,se.useCallback)(y=>{let{current:g}=o;if(g){let[v,x]=Vs(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}=eu(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=(0,se.useCallback)((y,g)=>{s.current&&o.current&&l(qc(s.current,o.current,g,u))},[u]),h=(0,se.useCallback)(()=>{let y=o.current;y&&(e==null||e(y.filter(Yc))),y==null||y.forEach(g=>{g.currentSize=void 0,g.flexBasis=void 0,g.flexOpen=!1})},[e]),b=(0,se.useCallback)(y=>se.default.createElement(Hs,{column:c,index:y,key:`splitter-${y}`,onDrag:d,onDragEnd:h,onDragStart:f}),[d,h,f,c]);return(0,se.useMemo)(()=>{let[y,g]=jc(p,u,b,i.current);o.current=g,s.current=y},[p,b,u]),{content:s.current||[],rootRef:r}};function jc(n,e,t,r){let o=Jn(n,e),s=Bs(o),i=[],a=[];for(let l=0;l<n.length;l++){let c=n[l];if(l===0&&s[l]&Rn&&(i.push(_s(l)),a.push({placeholder:!0,shim:!0})),c.key==null){let u=r[l]||(r[l]=(0,Ws.getUniqueId)());i.push(se.default.cloneElement(c,{key:u}))}else i.push(c);a.push(o[l]),l>0&&s[l]&Rn?(i.push(_s(l)),a.push({placeholder:!0})):s[l]&En&&(i.push(t(i.length)),a.push({splitter:!0}))}return[i,a]}function qc(n,e,t,r){return Jc(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?se.default.cloneElement(s,{style:{...s.props.style,flexBasis:d,[r]:"auto"}}):s}else return s}):n}function Jc(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 _s(n){return se.default.createElement(qn,{shim:n===0,key:`placeholder-${n}`})}function eu(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}}var Zs=require("react/jsx-runtime"),to="hwFlexbox",Xs=(0,Qs.forwardRef)(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}=Ks({children:o,onSplitterMoved:p,style:y}),w=(0,Us.default)(to,i,{[`${to}-column`]:s,[`${to}-row`]:d,"flex-fill":a,"full-page":c});return(0,Zs.jsx)("div",{...g,className:w,"data-resizeable":f||void 0,id:u,ref:(0,Gs.useForkRef)(x,t),style:{...y,gap:l,"--spacing":h},children:v})});Xs.displayName="Flexbox";var no=Xs;var ti=require("react");var er={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"};var Zt=require("react");var mu=z(require("react"));var ru=require("@vuu-ui/vuu-utils"),ou=z(require("react"));var tu=require("@vuu-ui/vuu-utils"),Ys=z(require("react"));var Pt=require("react"),Le=new Map,ke=new Map;var Xt=()=>{let n=(0,Pt.useCallback)((i,a)=>{let l=ke.get(i);if(l)return a!==void 0&&l[a]!==void 0?l[a]:a!==void 0?void 0:l},[]),e=(0,Pt.useCallback)((i,a,l)=>{if(a===void 0)ke.set(i,l);else if(ke.has(i)){let c=ke.get(i);ke.set(i,{...c,[a]:l})}else ke.set(i,{[a]:l})},[]),t=(0,Pt.useCallback)((i,a)=>{if(ke.has(i)){if(a===void 0)ke.delete(i);else if(ke.get(i)[a]){let{[a]:c,...u}=ke.get(i);Object.keys(u).length>0?ke.set(i,u):ke.delete(i)}}},[]),r=(0,Pt.useCallback)((i,a)=>{let l=Le.get(i);if(l)return a!==void 0?l[a]:l},[]),o=(0,Pt.useCallback)((i,a,l)=>{if(a===void 0)Le.set(i,l);else if(Le.has(i)){let c=Le.get(i);Le.set(i,{...c,[a]:l})}else Le.set(i,{[a]:l})},[]),s=(0,Pt.useCallback)((i,a)=>{if(Le.has(i)){if(a===void 0)Le.delete(i);else if(Le.get(i)[a]){let{[a]:c,...u}=Le.get(i);Object.keys(u).length>0?Le.set(i,u):Le.delete(i)}}},[]);return{loadSessionState:n,loadState:r,saveSessionState:e,saveState:o,purgeState:s,purgeSessionState:t}};var au=require("react");var iu=z(require("react"));var cu=z(require("react"));var uu=z(require("react"));var pu=require("@vuu-ui/vuu-utils"),fu=z(require("react"));var qs=require("react"),hu=n=>console.log(`dispatch ${n.type}, have you forgotten to provide a LayoutProvider ?`),Js=(0,qs.createContext)({dispatchLayoutProvider:hu,version:-1});var ei=require("react");var gu=require("react/jsx-runtime");var Be=()=>{let{dispatchLayoutProvider:n}=(0,Zt.useContext)(Js);return n};var ri=require("react/jsx-runtime"),ni=function(e){let{path:t}=e,r=Be(),o=(0,ti.useCallback)(s=>{r({type:er.SPLITTER_RESIZE,path:t,sizes:s})},[r,t]);return(0,ri.jsx)(no,{...e,onSplitterMoved:o})};ni.displayName="Flexbox";ie("Flexbox",ni,"container");var pi=require("@salt-ds/core"),fi=z(require("classnames")),nr=require("react");var Ve=require("react");var Lt=require("react");var Mt=new WeakMap,si=(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}},oi=new ResizeObserver(n=>{for(let e of n){let{target:t,contentRect:r}=e,o=Mt.get(t);if(o){let{onResize:s,measurements:i}=o,a=!1;for(let[l,c]of Object.entries(i)){let u=si(t,r,l);u!==c&&(a=!0,i[l]=u)}a&&s&&s(i)}}});function ii(n,e,t,r=!1){console.log("resizeObserver container",{ref:n.current});let o=(0,Lt.useRef)(e),s=(0,Lt.useCallback)(i=>{let a=i.getBoundingClientRect();return o.current.reduce((l,c)=>(l[c]=si(i,a,c),l),{})},[]);(0,Lt.useLayoutEffect)(()=>{let i=n.current,a=!1;async function l(){Mt.set(i,{measurements:{}}),a=!1;let{fonts:c}=document;if(c&&await c.ready,!a){let u=Mt.get(i);if(u){let p=s(i);u.measurements=p,oi.observe(i),r&&t(p)}}}if(i){if(Mt.has(i))throw Error("useResizeObserver attemping to observe same element twice");l()}return()=>{i&&Mt.has(i)&&(oi.unobserve(i),Mt.delete(i),a=!0)}},[n,s,r,t]),(0,Lt.useLayoutEffect)(()=>{let i=n.current,a=Mt.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 bu(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 yu=([,n],[,e])=>e-n,io=n=>Object.entries(n).sort(yu).map(([e,t],r,o)=>[e,t,r<o.length-1?o[r+1][1]:9999]),so=null,xu=(n="salt")=>{let{xs:e,sm:t,md:r,lg:o,xl:s}=bu(n);return io({xs:e,sm:t,md:r,lg:o,xl:s})},ai=n=>(so===null&&(so=xu(n)),so);var vu=[],li=({breakPoints:n,smallerThan:e},t)=>{let[r,o]=(0,Ve.useState)(e?!1:"lg"),s=(0,Ve.useRef)(document.body),i=(0,Ve.useRef)(n?io(n):ai()),a=(0,Ve.useRef)("lg"),l=(0,Ve.useCallback)(u=>{if(i.current){for(let[p,f]of i.current)if(u>=f)return p}},[i]),c=(0,Ve.useCallback)(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 ii(t||s,i.current?["width"]:vu,({width:u})=>{let p=c(u);p!==a.current&&(a.current=p,o(p))},!0),(0,Ve.useEffect)(()=>{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 wu="data-collapsible",ny={[wu]:!0,"data-pad-start":!0,"data-pad-end":!0};var ci=require("@vuu-ui/vuu-utils"),Pe=require("react");var Tu=["xs","sm","md","lg","xl"],Cu=12,ui=({children:n,cols:e,style:t})=>{let r=(0,Pe.useRef)(null),o=(0,Pe.useRef)(null),s=(0,Pe.useRef)(),i=e!=null?e:Cu,l=(t==null?void 0:t.flexDirection)==="column"?"height":"width",c=(0,Pe.useMemo)(()=>Array.isArray(n)?n:(0,Pe.isValidElement)(n)?[n]:[],[n]),u=(0,Pe.useCallback)((p,f)=>{let d=Jn(p,f,Tu),h=[],b=[];for(let y=0;y<p.length;y++){let g=p[y],{style:{flex:v,...x}}=g.props;h.push((0,Pe.cloneElement)(g,{key:(0,ci.getUniqueId)(),style:{...x,"--parent-col-count":i}})),b.push(d[y])}return[h,b]},[i]);return(0,Pe.useMemo)(()=>{let[p,f]=u(c,l);o.current=f,s.current=p},[u,c,l]),{cols:i,content:s.current,rootRef:r}};var di=require("react/jsx-runtime"),tr="hwFluidGrid",ao=(0,nr.forwardRef)(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=(0,nr.useMemo)(()=>Ut(o),[o]),{cols:E,content:m,rootRef:C}=ui({children:w,cols:i,style:v}),M=li({breakPoints:r},C),P=(0,fi.default)(tr,a,{[`${tr}-column`]:s,[`${tr}-row`]:h,[`${tr}-show-grid`]:b,"flex-fill":l,"full-page":u}),T={...v,"--spacing":y,"--grid-col-count":E,"--grid-gap":c};return(0,di.jsx)("div",{...x,className:P,"data-breakpoint":M,"data-cols":E,"data-resizeable":d||void 0,id:p,ref:(0,pi.useForkRef)(C,t),style:T,children:m})});ao.displayName="FluidGrid";var hi=require("react/jsx-runtime"),mi=function(e){return(0,hi.jsx)(ao,{...e})};mi.displayName="FluidGrid";ie("FluidGrid",mi,"container");var Ti=z(require("classnames")),ht=z(require("react"));var mt=require("react");var rr=(n,e,t,r)=>{var y;let{loadSessionState:o,purgeSessionState:s,purgeState:i,saveSessionState:a}=Xt(),[l,c]=(0,mt.useState)((y=o(n,"contributions"))!=null?y:[]),u=Be(),p=(0,mt.useCallback)((g,v)=>{let x=l.concat([{location:g,content:v}]);a(n,"contributions",x),c(x)},[l,n,a]),f=(0,mt.useCallback)(()=>{s(n,"contributions"),c([])},[n,s]),d=(0,mt.useCallback)(()=>{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=(0,mt.useCallback)(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[(0,mt.useCallback)(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]};var ir=require("@salt-ds/core"),xi=z(require("classnames")),we=z(require("react"));var $e=require("react");var gi=({id:n,rootRef:e,path:t,dropTargets:r,title:o})=>{let s=Be(),{loadState:i,loadSessionState:a,purgeState:l,saveState:c,saveSessionState:u}=Xt(),[p,f]=rr(n,e,t,r),d=(0,$e.useMemo)(()=>{var m;return(m=i("view-title"))!=null?m:o},[i,o]),h=(0,$e.useCallback)(m=>{t&&s({type:"set-title",path:t,title:m})},[s,t]),b=(0,$e.useMemo)(()=>i(n),[n,i]),y=(0,$e.useCallback)(m=>i(n,m),[n,i]),g=(0,$e.useCallback)(m=>{l(n,m),s({type:"save"})},[n,s,l]),v=(0,$e.useCallback)((m,C)=>{c(n,C,m),s({type:"save"})},[n,s,c]),x=(0,$e.useCallback)(m=>a(n,m),[n,a]),w=(0,$e.useCallback)((m,C)=>u(n,C,m),[n,u]),E=(0,$e.useCallback)(({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}};var or=require("@heswell/salt-lab"),Yt=require("react"),Eu=[],bi=({mainRef:n,resize:e="responsive",rootRef:t})=>{let r=e==="defer",o=(0,Yt.useRef)({}),s=(0,Yt.useRef)(),i=(0,Yt.useCallback)(()=>{n.current&&(n.current.style.height=o.current.height+"px",n.current.style.width=o.current.width+"px"),s.current=void 0},[n]),a=(0,Yt.useCallback)(({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]);(0,or.useResizeObserver)(t,r?or.WidthHeight:Eu,a,r)};var sr=z(require("react")),Ru={dispatch:null},lo=sr.default.createContext(Ru),yi=()=>{var e;let n=(0,sr.useContext)(lo);return(e=n==null?void 0:n.dispatch)!=null?e:null};var jt=require("react/jsx-runtime"),Dn="vuuView",Du=(n,e)=>n&&e?{...n,...e}:n||e,vi=(0,we.forwardRef)(function(e,t){let{Header:r=wi,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=(0,ir.useIdMemo)(d),M=(0,we.useRef)(null),P=(0,we.useRef)(null),[T,R]=(0,we.useState)(),{contributions:D,dispatchViewAction:S,load:I,loadSession:k,onConfigChange:L,onEditTitle:A,purge:O,restoredState:B,save:V,saveSession:F,title:W}=gi({id:C,rootRef:M,path:y,dropTargets:u,title:E});bi({mainRef:P,resize:g,rootRef:M});let Y=(0,we.useCallback)(N=>{R(N)},[]),_=()=>we.default.isValidElement(o)&&(B||T)?we.default.cloneElement(o,Du(B,T)):o,J=(0,we.useMemo)(()=>({dispatch:S,id:C,path:y,title:W,load:I,loadSession:k,onConfigChange:L,purge:O,save:V,saveSession:F,setComponentProps:Y}),[S,C,I,k,L,y,O,V,F,Y,W]),H=typeof h=="object"?h:{};return(0,jt.jsx)("div",{...m,className:(0,xi.default)(Dn,s,{[`${Dn}-collapsed`]:i,[`${Dn}-expanded`]:p,[`${Dn}-resize-defer`]:g==="defer"}),"data-resizeable":v,id:C,ref:(0,ir.useForkRef)(t,M),style:w,tabIndex:-1,children:(0,jt.jsxs)(lo.Provider,{value:J,children:[h?(0,jt.jsx)(r,{...H,collapsed:i,contributions:D,expanded:p,closeable:a,onEditTitle:A,orientation:b,tearOut:x,title:W}):null,(0,jt.jsx)("div",{className:`${Dn}-main`,ref:P,children:_()})]})})});vi.displayName="View";var kt=we.default.memo(vi);kt.displayName="View";ie("View",kt,"view");var rt=require("@heswell/salt-lab"),Ci=require("@salt-ds/icons");var nt=require("react/jsx-runtime"),wi=({className:n,contributions:e,collapsed:t,closeable:r,onEditTitle:o,orientation:s="horizontal",style:i,title:a="Untitled"})=>{let l=(0,ht.useRef)(null),[c,u]=(0,ht.useState)(a),[p,f]=(0,ht.useState)(!1),d=yi(),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=(0,Ti.default)(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(ht.default.cloneElement(R.content,{key:D}));break;default:P.push(ht.default.cloneElement(R.content,{key:D}))}}),a&&M.push((0,nt.jsx)(rt.ToolbarField,{className:"vuuHeader-title",children:(0,nt.jsx)(Gt,{editing:p,value:c,onChange:u,onMouseDownCapture:y,onEnterEditMode:w,onExitEditMode:m,onKeyDown:E,ref:l,tabIndex:0},"title")},"title")),r&&T.push((0,nt.jsxs)(rt.ToolbarButton,{onClick:h,onMouseDown:g,children:[(0,nt.jsx)(Ci.CloseIcon,{})," Close"]},"close")),P.length>0&&M.push((0,nt.jsx)(rt.Tooltray,{"data-align-end":!0,children:P},"contributions")),T.length>0&&M.push((0,nt.jsx)(rt.Tooltray,{"data-align-end":!0,children:T},"actions")),(0,nt.jsx)(rt.Toolbar,{className:x,orientation:s,style:i,onMouseDown:C,children:M})};var ur=z(require("react")),cr=z(require("classnames")),Ai=require("@vuu-ui/vuu-popups");var _e=require("react");var Su=".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}),co=[],Sn=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]},Ei=(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")}},Mu=(n,{overflowPriority:e})=>Math.max(n,parseInt(e)),Lu=(n,{overflowPriority:e})=>Math.min(n,parseInt(e)),Ri=n=>{var e;return n.length>1&&((e=n.at(-1))==null?void 0:e.index)==="overflow"},ku=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},Di=(n,e)=>{var o;let t=n.reduce(Lu,Number.MAX_SAFE_INTEGER);return e.reduce(Mu,0)>t?!0:e.length>1&&((o=e.at(-1))==null?void 0:o.index)==="overflow"},Si=(n,e)=>new Promise(t=>{requestAnimationFrame(()=>{let[,r]=Sn(n);Au(e,r).forEach(s=>Iu(n,s)),t(r)})}),Pi=(n,e,t)=>new Promise(r=>{requestAnimationFrame(()=>{let[,o]=Sn(n),s=ku(o);if(s){let[i,a]=uo(n,s);r([i,a])}else r([e,t])})}),Mi=(n,e)=>n.querySelector(`[data-index="${e.index}"]`),Iu=(n,e)=>{let t=Mi(n,e);if(t)t.classList.add("wrapped");else throw Error(`markElementAsWrapped element item with index ${e.index} not found`)},Ou=n=>Array.from(n.querySelectorAll(".wrapped")),Au=(n,e)=>{let t=[];for(let r of e)n.find(({index:o})=>o===r.index)||t.push(r);return t},Hu=(n,e)=>{Ou(n).forEach(r=>{let{dataset:{index:o="?"}}=r;e.find(s=>s.index===o)||r.classList.remove("wrapped")})},Li=n=>n.querySelector('[data-index="overflow"]'),Nu=n=>n.querySelector(".wrapped"),ar=n=>parseInt(getComputedStyle(n).getPropertyValue("width")),ki=(n,e)=>{let{right:t}=n.getBoundingClientRect(),r=parseInt(getComputedStyle(n).getPropertyValue("padding-right")),{right:o}=e.getBoundingClientRect();return t-r-o},Ii=n=>{let e=Li(n),t=ki(n,e),r=ar(e),o=Nu(n);return ar(o)<=t+r?(n.classList.remove("overflowed"),o.classList.remove("wrapped"),!0):!1},zu=(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)},Fu=n=>Array.from(n.querySelectorAll(Su)).sort(zu),uo=(n,e)=>{let t=Fu(n),r=Mi(n,e),o=-1,s=t.at(o),i=ar(s),a=ar(r),l=Li(n),c=ki(n,l)+i;if(c>=a)Bu(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]=Sn(n);return Hu(n,p),[u,p]},Bu=(n,e)=>{if(!n||!e)throw Error("switchWrapOnElements, element undefined");n.classList.remove("wrapped"),e.classList.add("wrapped")};var Oi=({itemCount:n,onSwitchWrappedItemIntoView:e})=>{let[t,r]=(0,_e.useState)(null),o=(0,_e.useRef)(co),s=(0,_e.useCallback)(async()=>{if(t){let[p,f]=Sn(t);for(Ei(t,f),Ri(f)&&(f=await Si(t,f));Di(p,f);)[p,f]=await Pi(t,p,f);f.length===1&&Ii(t)&&(f=co),o.current=f}},[t]),i=p=>typeof p=="object"&&p!==null&&"overflowItem"in p,[a,l]=(0,_e.useMemo)(()=>[()=>{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]=uo(t,p.overflowItem);o.current=f,e==null||e(p.overflowItem)}return!0}],[t,e]),c=(0,_e.useMemo)(()=>{let p=0;return new ResizeObserver(f=>{for(let d of f){let{width:h}=d.contentRect;p!==h&&(p=h,s())}})},[s]);bs(()=>{s()},[s,n]),(0,_e.useMemo)(()=>{t&&c.observe(t)},[t,c]);let u=(0,_e.useCallback)(p=>{r(p)},[]);return{menuActionHandler:l,menuBuilder:a,rootRef:u}};var gt=require("react/jsx-runtime"),lr="vuuOverflowContainer",Hi=ur.default.memo(({children:n,height:e,onSwitchWrappedItemIntoView:t,overflowIcon:r})=>{let o=Ut(n),{menuActionHandler:s,menuBuilder:i,rootRef:a}=Oi({itemCount:o.length,onSwitchWrappedItemIntoView:t}),l={"--overflow-container-height":`${e}px`};return(0,gt.jsxs)("div",{className:`${lr}-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(0,gt.jsx)("div",{className:(0,cr.default)(`${lr}-item`),"data-index":u,"data-label":d,"data-overflow-priority":p,id:`${f}-wrapper`,children:c},u)}),(0,gt.jsx)("div",{className:`${lr}-OverflowIndicator`,"data-index":"overflow",children:(0,gt.jsx)(Ai.PopupMenu,{icon:r,menuBuilder:i,menuActionHandler:s})})]})});Hi.displayName="OverflowContainer.InnerContainer";var Ni=(0,ur.forwardRef)(function({children:e,className:t,height:r=44,onSwitchWrappedItemIntoView:o,overflowIcon:s,...i},a){return(0,gt.jsx)("div",{...i,className:(0,cr.default)((0,cr.default)(lr,t)),ref:a,children:(0,gt.jsx)(Hi,{height:r,overflowIcon:s,onSwitchWrappedItemIntoView:o,children:e})})});var zi=require("@vuu-ui/vuu-utils"),fr=require("@heswell/salt-lab"),po=z(require("classnames")),dr=require("react");var pr=require("react/jsx-runtime"),Vu=n=>{let e=n.cloneNode(!0);return e.id="",delete e.dataset.idx,e},Fi=(0,dr.memo)(({className:n,children:e,idx:t,resizeable:r,header:o,closeable:s,...i})=>(0,pr.jsx)(fr.ListItem,{className:(0,po.default)("vuuPaletteItem",n),"data-draggable":!0,...i}));Fi.displayName="PaletteItem";var $u=({children:n,className:e,orientation:t="horizontal",ViewProps:r,...o})=>{let s=Be(),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=(0,zi.uuid)(),m=h?d:(0,pr.jsx)(kt,{...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:Vu(u),evt:l.nativeEvent,instructions:{DoNotRemove:!0,DoNotTransform:!0,RemoveDraggableOnDragEnd:!0,dragThreshold:10},path:"*",payload:m,type:"drag-start"})}return(0,pr.jsx)(fr.List,{...o,borderless:!0,className:(0,po.default)(i,e,`${i}-${t}`),maxHeight:800,selected:null,children:n.map((l,c)=>l.type===Fi?(0,dr.cloneElement)(l,{key:c,onMouseDown:a}):l)})};ie("Palette",$u,"view");var _u=require("@vuu-ui/vuu-utils"),fo=require("@heswell/salt-lab"),Bi=z(require("classnames"));var Vi=require("react/jsx-runtime"),Wu="vuuPalette";var Ku=({className:n,...e})=>(0,Vi.jsx)(fo.List,{...e,className:(0,Bi.default)(Wu,n),height:"100%",selectionStrategy:"none"});ie("PaletteSalt",Ku,"view");var _i=z(require("classnames")),bt=z(require("react"));var Pn=require("react/jsx-runtime"),$i="Tabs",Gu=()=>{},Uu=(n,e)=>{var t,r;return(r=(t=n.props)==null?void 0:t.title)!=null?r:`Tab ${e+1}`},Qu=n=>{let e=[];return bt.default.Children.forEach(n,t=>{bt.default.isValidElement(t)?e.push(t):console.warn("Stack has unexpected child element type")}),e},Xu={allowAddTab:!1,allowCloseTab:!1,allowRenameTab:!1},mo=(0,bt.forwardRef)(function({active:e=0,children:t,className:r,getTabIcon:o=Gu,getTabLabel:s=Uu,id:i,keyBoardActivation:a="manual",onAddTab:l,onMoveTab:c,onTabClose:u,onTabEdit:p,onTabSelectionChanged:f,showTabs:d=!0,style:h,TabstripProps:b=Xu},y){var M;let g=Zn(i),{allowCloseTab:v,allowRenameTab:x}=b,w=(0,bt.useCallback)((P,T,R,D)=>{p==null||p(D,T)},[p]),E=()=>{var P;return bt.default.isValidElement(t)?t:Array.isArray(t)&&(P=t[e])!=null?P:null},m=()=>Qu(t).map((P,T)=>{let R=`${g}-${T}`,{closeable:D=v,id:S}=P.props;return(0,Pn.jsx)(Ki,{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(0,Pn.jsxs)("div",{className:(0,_i.default)($i,r,{[`${$i}-horizontal`]:(b==null?void 0:b.orientation)==="vertical"}),style:h,id:g,ref:y,children:[d?(0,Pn.jsx)(Wi,{...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]})});mo.displayName="Stack";var Gi=require("@salt-ds/core"),yt=z(require("react"));var mr=require("react/jsx-runtime"),Zu=n=>(0,mr.jsx)(kt,{resizeable:!0,title:`Tab ${n}`,style:{flexGrow:1,flexShrink:0,flexBasis:0},header:!0,closeable:!0,children:(0,mr.jsx)(Ur,{style:{flex:1}})}),Ui=n=>{let e=(0,yt.useRef)(null),t=Be(),{loadState:r}=Xt(),{createNewChild:o=Zu,id:s,onTabSelectionChanged:i,path:a,...l}=n,{children:c}=n,u=(0,Gi.useIdMemo)(s),[p]=rr(u,e,a),f=x=>{a&&(t({type:"switch-tab",path:a,nextIdx:x}),i==null||i(x))},d=(0,yt.useCallback)(x=>{if(Array.isArray(c)){let{props:{"data-path":w,path:E=w}}=c[x];t({type:"remove",path:E})}},[c,t]),h=(0,yt.useCallback)(()=>{if(a){let x=yt.default.Children.count(c),w=o(x);t({type:"add",path:a,component:w})}},[c,o,t,a]),b=(0,yt.useCallback)((x,w)=>{a&&t({fromIndex:x,toIndex:w,path:a,type:"move-child"})},[t,a]);return(0,mr.jsx)(mo,{...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})};Ui.displayName="Stack";ie("Stack",Ui,"container");var Qi=z(require("react"));var Xi=require("react/jsx-runtime");var Zi=require("@heswell/salt-lab"),Yi=require("react/jsx-runtime");var hr="(\\d+)(?:px)?",Yu=`^(?:${hr}(?:\\s${hr}(?:\\s${hr}(?:\\s${hr})?)?)?)$`,Wv=new RegExp(Yu);var ju=z(require("react")),qu=z(require("classnames"));var Ju=require("@heswell/salt-lab"),ep=require("react/jsx-runtime");var La=require("@salt-ds/core"),ka=z(require("classnames")),tn=z(require("react"));var ye=require("react");var qt=require("react"),op=require("react/jsx-runtime"),tp={isDragSource:!1,isDropTarget:!1,register:()=>{}},np=()=>console.log("have you forgotten to provide a DragDrop Provider ?"),rp=(0,qt.createContext)({registerDragDropParty:np});var ji=n=>{var o,s;let{dragSources:e,dropTargets:t,registerDragDropParty:r}=(0,qt.useContext)(rp);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 tp};var pe=require("react");var Oe=require("react");var sp=["left","right"],ip=["top","bottom"],gr=":not(.wrapped)",qi=':not([aria-hidden="true"])',Ji=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"}},Ie=n=>lp[n],ea=(n,e)=>{let t=n.find(r=>r.id===e);if(t)return t},ta=(n,e)=>{n.splice(e,1);for(let t=e;t<n.length;t++)n[t].currentIndex-=1},Jt=(n,e,t,r,o)=>{var p;let s=[],{DIMENSION:i}=Ie(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},Mn=n=>n.findIndex(e=>e.isDraggedItem),ho=(n,e)=>{let t=Mn(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)}},en=(n,e,t)=>{let r=n.length,o=Mn(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 na(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)}}var ra=require("@salt-ds/core");var br=require("react"),oa=require("@vuu-ui/vuu-popups");var go=require("react/jsx-runtime"),cp=n=>n.split(" ").map(e=>`vuuDraggable-${e}`),yr=(0,br.forwardRef)(function({wrapperClassName:e,element:t,onTransitionEnd:r,style:o,scale:s=1},i){let a=(0,br.useCallback)(c=>{c&&(c.innerHTML="",c.appendChild(t),s!==1&&(c.style.transform=`scale(${s},${s})`))},[t,s]),l=(0,ra.useForkRef)(i,a);return(0,go.jsx)(oa.Portal,{children:(0,go.jsx)("div",{className:Un("vuuDraggable",...cp(e)),ref:l,onTransitionEnd:r,style:o})})}),bo=n=>{let e=document.createElement("div");return e.className="vuuDraggable-spacer",n&&e.addEventListener("transitionend",()=>{n.current=!1}),e},sa=()=>{let n=document.createElement("div");return n.className="vuuDraggable-dropIndicatorPosition",n},ia=n=>{let e=document.createElement("div");return e.className="vuuDraggable-dropIndicator",n&&e.addEventListener("transitionend",()=>{n.current=!1}),e};var aa=()=>{let n=(0,Oe.useRef)(0),e=(0,Oe.useRef)(!1),t=(0,Oe.useMemo)(()=>[bo(e),bo()],[]),r=(0,Oe.useCallback)(()=>t.forEach(c=>c.remove()),[t]),o=(0,Oe.useCallback)((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=(0,Oe.useCallback)(()=>{n.current&&(cancelAnimationFrame(n.current),n.current=0)},[]),i=(0,Oe.useCallback)(()=>{r()},[r]),a=(0,Oe.useCallback)((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"&&ho(c,d)}},[o,s,r,t]),l=(0,Oe.useCallback)((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"&&ho(c,d)},[o,s,r,t]);return{clearDisplacedItem:i,displaceItem:a,displaceLastItem:l,clearSpacers:r}};var la=({draggableRef:n,onDrop:e,orientation:t="horizontal",containerRef:r,itemQuery:o="*",selected:s,viewportRange:i})=>{let a=(0,pe.useRef)(),l=(0,pe.useRef)(!1),c=(0,pe.useRef)(-1),u=(0,pe.useRef)([]),p=(0,pe.useRef)(!1),[f,d]=(0,pe.useState)(!1),{clearDisplacedItem:h,clearSpacers:b,displaceItem:y,displaceLastItem:g}=aa(),v=(0,pe.useRef)(),x=`:is(${o}${gr}${qi},.vuuOverflowContainer-OverflowIndicator)`,w=S=>u.current.findIndex(I=>I.id===S.id),E=(0,pe.useRef)();E.current=i;let m=(0,pe.useCallback)(()=>{h()},[h]),C=(0,pe.useCallback)((S,I,k)=>{let{current:L}=r,{current:A}=v;if(L&&A){u.current=Jt(L,t,x,E.current);let{size:O}=A,V=c.current+O/2,{current:F}=u,W=en(F,V,"fwd");if(W){let _=w(W),J=F[_];k&&S==="fwd"?g(F,F[F.length-1],O,!1,"static",t):y(F,J,O,!0,"static",t)}}},[r,y,g,x,t]),M=(0,pe.useCallback)(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}=Ie(t),{id:B}=k,{[A]:V,[O]:F}=L;l.current=V>F;let W=u.current=Jt(L,t,x,i,B);console.log({dropTargets:W});let Y=Mn(W),_=W[Y];_&&L&&(v.current=_,(_.isLast?g:y)(W,_,_.size,!1,"static",t))}},[r,y,g,x,o,t,s,i]),[P,T]=(0,pe.useMemo)(()=>{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=(0,pe.useCallback)((S,I)=>{let{current:k}=v;if(k&&n.current&&r.current){c.current=S;let{current:L}=u,A=en(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 F=L.at(-1);T(F),d(p.current=!1)}a.current=I}},[r,y,g,n,T,t,P]),D=(0,pe.useCallback)(()=>{var L;b();let{current:S}=u,I=Mn(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}};var ae=require("react");var Ln=require("react");var ca=()=>{let n=(0,Ln.useMemo)(()=>sa(),[]),e=(0,Ln.useCallback)(()=>n.remove(),[n]);return{positionDropIndicator:(0,Ln.useCallback)((r,o="end")=>(o==="end"?r.element.after(n):r.element.before(n),n),[n]),clearSpacer:e}};var pa=require("react/jsx-runtime"),up=':not([data-overflowed="true"])',pp=':not([aria-hidden="true"])',ua=({draggableRef:n,onDrop:e,orientation:t="horizontal",containerRef:r,itemQuery:o="*",selected:s,viewportRange:i})=>{let a=(0,ae.useRef)(),l=(0,ae.useRef)(null),c=(0,ae.useRef)(null),u=(0,ae.useRef)(""),p=(0,ae.useRef)(!1),f=(0,ae.useRef)(-1),d=(0,ae.useRef)([]),h=(0,ae.useRef)(!1),[b,y]=(0,ae.useState)(!1),[g,v]=(0,ae.useState)(),{clearSpacer:x,positionDropIndicator:w}=ca(),E=(0,ae.useRef)(),m=`:is(${o}${up}${pp},[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=(0,ae.useRef)();P.current=i;let T=(0,ae.useCallback)(()=>{x()},[x]),R=(0,ae.useCallback)((k,L,A)=>{let{current:O}=r,{current:B}=E;if(O&&B){d.current=Jt(O,t,m,P.current);let{size:V}=B,W=f.current+V/2,{current:Y}=d,_=en(Y,W,"fwd");_&&w(A&&k==="fwd"?Y[Y.length-1]:_,"start")}},[r,w,m,t]),D=(0,ae.useCallback)(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:B,CLIENT_SIZE:V}=Ie(t),{id:F}=A,{[B]:W,[V]:Y}=O;p.current=W>Y;let _=d.current=Jt(O,t,m,i),J=ea(_,F);if(J&&O){let H=C(J);ta(_,H),E.current=J;let{current:N}=P;if(N!=null&&N.atEnd)for(let j=0;j<_.length;j++)M(_[j],J.size);for(let j=H;j<_.length;j++)M(_[j],-J.size,-1);let[X,he]=J.isLast?[_[_.length-1],"end"]:[_[H],"start"];c.current=X,u.current=he;let Xe=w(X,he),{top:G,left:U,width:oe}=Xe.getBoundingClientRect(),ne={top:J.isLast?N!=null&&N.atEnd&&!N.atStart?G+J.size-2:G-2:G-J.size-2,left:U,width:oe,height:2};v((0,pa.jsx)(yr,{wrapperClassName:"dropIndicatorContainer",style:ne,ref:l,element:ia()}))}}},[o,s,r,t,m,i,w]),S=(0,ae.useCallback)((k,L)=>{let{current:A}=c,{current:O}=E;if(O&&n.current&&r.current){let B=t==="horizontal"?"left":"top";f.current=k;let{current:V}=d,F=en(V,k,L);if(F&&F.index!==(A==null?void 0:A.index)){if(F.isOverflowIndicator)y(h.current=!0);else if(l.current){if(C(F)===V.length-1){let Y=V[V.length-1],J=w(Y,"start").getBoundingClientRect();l.current.style[B]=`${J.top}px`}else{let _=w(F,"start").getBoundingClientRect();l.current.style[B]=`${_.top}px`}y(h.current=!1)}c.current=F,a.current=L}}},[n,r,t,w]),I=(0,ae.useCallback)(()=>{x();let{current:k}=E,{current:L}=c,{current:A}=u,{current:O}=P;if(k&&O&&L){let{index:B}=k,V=A==="start",{index:F,currentIndex:W}=L;c.current=null,a.current=void 0,h.current?e(B,-1):B<F?e(B,V?W:W+1):e(B,V?F:F+1),v(void 0)}y(!1)},[x,e]);return{beginDrag:D,drag:S,drop:I,dropIndicator:g,handleScrollStart:T,handleScrollStop:R,revealOverflowedItems:b}};var Q=require("react");var xt=require("react");var fa=({containerRef:n,onScrollingStopped:e,orientation:t="vertical"})=>{let r=(0,xt.useRef)(null),o=(0,xt.useRef)(!1),s=(0,xt.useRef)(0),i=(0,xt.useRef)("fwd"),a=(0,xt.useCallback)((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=(0,xt.useCallback)((c,u,p=30)=>{let{current:f}=n;if(f){let{SCROLL_POS:d,SCROLL_SIZE:h,CLIENT_SIZE:b}=Ie(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}};var ha=require("react/jsx-runtime"),fp={beginDrag:()=>{},drag:()=>{},draggableRef:{current:null},drop:()=>{},isDragging:!1,isScrolling:!1,handleScrollStart:()=>{},handleScrollStop:()=>{},revealOverflowedItems:!1},da={start:0,end:1e3,contraStart:0,contraEnd:1e3},dp=()=>fp,mp=3,hp=(n,e)=>n.closest(e),gp=n=>n.dataset.index==="overflow"&&n.parentElement!==null&&n.parentElement.classList.contains("overflowed"),bp=(n,e)=>{let t=`:is(${e}${gr},.vuuOverflowContainer-OverflowIndicator)`,o=Array.from(n.querySelectorAll(t)).pop();return[o,gp(o)]},ma=({allowDragDrop:n,containerRef:e,draggableClassName:t,itemQuery:r="*",onDragStart:o,onDrop:s,onDropSettle:i,orientation:a,...l})=>{let c=(0,Q.useRef)({start:0,end:0,contraStart:0,contraEnd:0}),[u,p]=(0,Q.useState)({draggable:void 0,draggedItemIndex:-1,isDragging:!1}),f=(0,Q.useRef)(null),d=(0,Q.useRef)(),h=(0,Q.useRef)(null),b=(0,Q.useRef)(!1),y=(0,Q.useRef)({x:0,y:0}),g=(0,Q.useRef)({x:0,y:0}),v=(0,Q.useRef)({x:0,y:0}),x=(0,Q.useRef)(null),w=(0,Q.useRef)(-1),E=(0,Q.useRef)(-1),m=(0,Q.useRef)(),{isDragSource:C,isDropTarget:M,register:P}=ji(l.id);l.id&&(C||M)&&P(l.id);let T=(0,Q.useCallback)(()=>{var oe;let{current:G}=E,U=(oe=e.current)==null?void 0:oe.querySelector(`${r}[data-index="${G}"]`);U&&U.classList.remove("vuuDropTarget-settling"),E.current=-1,i==null||i(G),p(ne=>({...ne,draggable:void 0}))},[e,r,i]),R=(0,Q.useCallback)(G=>{if(e.current){let{POS:U,SCROLL_POS:oe,SCROLL_SIZE:ne,CLIENT_SIZE:j}=Ie(a),{[oe]:$,[ne]:q,[j]:ce}=e.current,ee=q-ce,ge=$<ee,De=c.current.end,be=$>0&&G-y.current[U]<=c.current.start,Se=ge&&G-y.current[U]>=De;return be?"bwd":Se?"fwd":""}},[e,a]),D=n===!0||n==="natural-movement"?la:n==="drop-indicator"?ua:dp,S=(0,Q.useCallback)((G,U,oe)=>{var ne;(ne=m.current)==null||ne.call(m,G,U,oe)},[]),{isScrolling:I,startScrolling:k,stopScrolling:L}=fa({containerRef:e,onScrollingStopped:S,orientation:a}),A=(0,Q.useCallback)((G,U)=>{w.current=U,s==null||s(G,U),E.current=U},[s]),{beginDrag:O,drag:B,drop:V,handleScrollStart:F,handleScrollStop:W,...Y}=D({...l,containerRef:e,draggableRef:f,isDragSource:C,isDropTarget:M,itemQuery:r,onDrop:A,orientation:a});m.current=W;let _=(0,Q.useCallback)(G=>{let{CLIENT_POS:U,CONTRA_CLIENT_POS:oe,CONTRA_POS:ne,POS:j}=Ie(a),{clientX:$,clientY:q}=G,{[U]:ce,[oe]:ee}=G,ge=g.current[j],De=g.current[ne],be=Math.abs(ge-ce);if((C?Math.abs(De-ee):0)-be>5&&(c.current=da),g.current.x=$,g.current.y=q,c.current===da&&f.current){let Dt=g.current.x-y.current.x,Je=g.current.y-y.current.y;f.current.style.top=`${Je}px`,f.current.style.left=`${Dt}px`}else if(be>0&&f.current){let Dt=ge<ce?"fwd":"bwd",Je=R(ce),bn=g.current[j]-y.current[j];if(Je&&b.current&&!I.current?(F(),k(Je,1)):!Je&&I.current&&L(),!I.current){let _t=Math.round(Math.max(c.current.start,Math.min(c.current.end,bn))),He=a==="horizontal"?"left":"top";f.current.style[He]=`${_t}px`,B(_t,Dt)}}},[B,f,R,F,C,I,a,k,L]),J=(0,Q.useCallback)(()=>{document.removeEventListener("mousemove",_,!1),document.removeEventListener("mouseup",J,!1),x.current=f.current,V(),p(G=>({...G,draggedItemIndex:-1,isDragging:!1})),d.current=void 0},[_,f,V]),H=(0,Q.useCallback)(G=>{let{clientX:U,clientY:oe,target:ne}=G,j=hp(ne,r),{current:$}=e;if($&&j){let{CONTRA:q,CONTRA_END:ce,DIMENSION:ee,END:ge,SCROLL_SIZE:De,CLIENT_SIZE:be,START:Se}=Ie(a);d.current=j;let{[De]:Dt,[be]:Je}=$;b.current=Dt>Je;let[bn,_t]=bp($,r),He=$.getBoundingClientRect(),Wt=j.getBoundingClientRect(),yn=Wt[ee],{[Se]:tc,[ge]:nc}=bn.getBoundingClientRect();y.current.x=U-Wt.left,y.current.y=oe-Wt.top,c.current.start=He[Se],c.current.end=_t?Math.max(tc,He.right-yn):b.current?He[Se]+He[ee]-yn:nc-yn,c.current.contraStart=He[q],c.current.contraEnd=He[ce],O(G);let{dataset:{index:rc="-1"}}=j;p({isDragging:!0,draggable:(0,ha.jsx)(yr,{element:Ji(j),onTransitionEnd:T,ref:f,style:na(Wt,He),wrapperClassName:t}),draggedItemIndex:parseInt(rc)}),o==null||o(),document.addEventListener("mousemove",_,!1),document.addEventListener("mouseup",J,!1)}},[O,e,_,J,t,f,r,o,a,T]),N=(0,Q.useCallback)(G=>{let{CLIENT_POS:U,POS:oe}=Ie(a),{[U]:ne}=G;Math.abs(ne-v.current[oe])>mp&&e.current&&(h.current&&(window.clearTimeout(h.current),h.current=null),document.removeEventListener("mousemove",N),document.removeEventListener("mouseup",X,!1),H(G))},[e,O,a]),X=(0,Q.useCallback)(()=>{h.current&&(window.clearTimeout(h.current),h.current=null),document.removeEventListener("mousemove",N,!1),document.removeEventListener("mouseup",X,!1)},[N]),he=(0,Q.useCallback)(G=>{console.log("useDragDropNext onMouseDown");let{current:U}=e;if(U&&!G.defaultPrevented){let{clientX:oe,clientY:ne}=G;g.current.x=v.current.x=oe,g.current.y=v.current.y=ne,document.addEventListener("mousemove",N,!1),document.addEventListener("mouseup",X,!1),G.persist(),h.current=window.setTimeout(()=>{document.removeEventListener("mousemove",N,!1),document.removeEventListener("mouseup",X,!1),H(G.nativeEvent)},500)}},[e,H,N,X]),{current:Xe}=x;return(0,Q.useLayoutEffect)(()=>{if(Xe&&e.current){let G=w.current,U=e.current.querySelector(`${r}[data-index="${G}"]`);U?(U.classList.add("vuuDropTarget-settling"),requestAnimationFrame(()=>{let{top:oe,left:ne}=U.getBoundingClientRect(),{top:j,left:$}=Xe.getBoundingClientRect();$!==ne||j!==oe?(Xe.classList.add("vuuDraggable-settling"),Xe.style.top=`${oe}px`,Xe.style.left=`${ne}px`):T()})):console.log(`dont have the dropped item (at ${G})`),x.current=null}},[e,r,Xe,T]),{...Y,...u,isScrolling:I,onMouseDown:n?he:void 0}};var ga=n=>typeof n=="object"&&n!==null&&"tabIndex"in n&&typeof n.tabIndex=="number",ba=n=>({label:"Close",location:"tab",action:"close-tab",options:n}),ya=n=>({label:"Rename",location:"tab",action:"rename-tab",options:n});var yp=n=>{if(n){let e=parseInt(n.dataset.index||"");if(!isNaN(e))return e}return-1},xa=(n,e)=>{if(n){let t=n.querySelector(`[data-index]:has(${e})`);return yp(t)}return-1},yo=n=>xa(n,'[aria-selected="true"]'),va=n=>xa(n,".vuuEditableLabel-editing");var ot=require("react"),wa=(n,e)=>{let t=(0,ot.useRef)(!1),r=(0,ot.useCallback)(()=>{t.current=!0},[]),o=(0,ot.useCallback)(()=>{t.current=!1},[]),s=(0,ot.useCallback)(()=>{var a,l;(a=n.current)==null||a.style.setProperty("--tab-thumb-transition","none"),(l=n.current)==null||l.removeEventListener("transitionend",s)},[n]),i=(0,ot.useRef)(-1);return(0,ot.useMemo)(()=>{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])};var Ca=require("@salt-ds/core"),Ea=require("@vuu-ui/vuu-utils"),fe=require("react"),Te=require("@vuu-ui/vuu-utils");var Ra={horizontal:{[Te.Home]:"start",[Te.End]:"end",[Te.ArrowLeft]:"bwd",[Te.ArrowRight]:"fwd"},vertical:{[Te.Home]:"start",[Te.End]:"end",[Te.ArrowUp]:"bwd",[Te.ArrowDown]:"fwd"}},xp=(n,e="horizontal")=>Ra[e][n]!==void 0,vp=n=>n===Te.ArrowDown;function Ta(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 wp=n=>n!==null&&!n.classList.contains("wrapped"),xr=(n,e)=>n?n.querySelector(`[data-index="${e}"]`):null,Da=({containerRef:n,defaultHighlightedIdx:e=-1,highlightedIdx:t,keyBoardActivation:r,orientation:o,selectedIndex:s=0})=>{let i=r==="manual",a=(0,fe.useRef)(!1),l=(0,fe.useRef)(-1),[c,u]=(0,fe.useState)(!1),[,p]=(0,fe.useState)({}),[f,d]=(0,Ca.useControlled)({controlled:t,default:e,name:"UseKeyboardNavigation"}),h=(0,fe.useCallback)(D=>{d(l.current=D)},[d]),b=(0,fe.useRef)(!1),y=(0,fe.useCallback)((D,S=!1,I,k=70)=>{h(D),I===!0&&!b.current&&(b.current=!0);let L=()=>{let A=xr(n.current,D);if(A){let O=(0,Ea.getFocusableElement)(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=va(n.current);S!==-1?requestAnimationFrame(()=>{h(S)}):setTimeout(()=>{l.current===-1&&s!==null&&h(s)},200)}},v=(0,fe.useCallback)(()=>{var D,S;return(S=(D=n.current)==null?void 0:D.querySelectorAll("[data-index]").length)!=null?S:0},[n]),x=(0,fe.useCallback)((D="fwd",S)=>{let I=v(),L=Ta(I,D,typeof S=="number"?S:I),A=D==="start"?"fwd":D==="end"?"bwd":D;for(;(A==="fwd"&&L<I||A==="bwd"&&L>0)&&!wp(xr(n.current,L));){let O=Ta(I,A,L);if(O===L)break;L=O}return L},[n,v]),w=(0,fe.useCallback)((D,S=!1)=>{let I=Ra[o][D.key],k=x(I,f);k!==f?i&&y(k,!0):S&&p({})},[f,i,x,y,o]),E=(0,fe.useCallback)(()=>{let D=xr(n.current,f);return D?D.querySelector(".vuuPopupMenu")!=null:!1},[n,f]),m=(0,fe.useCallback)(()=>{let D=xr(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=(0,fe.useCallback)(D=>{v()>0&&xp(D.key,o)?(D.preventDefault(),b.current?w(D):(b.current=!0,w(D,!0))):vp(D.key)&&E()&&m()},[m,v,E,w,o]),M=(D,S)=>{h(S)},P=(0,fe.useCallback)(()=>{c||(u(!0),a.current?a.current=!1:b.current=!0)},[c]),T=(0,fe.useCallback)(()=>{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}};var Sa=require("@salt-ds/core"),kn=require("react"),Tp=["Enter"," "],Cp=n=>n&&n.matches('[class*="vuuTab "]'),Pa=({defaultSelected:n,highlightedIdx:e,onSelectionChange:t,selected:r})=>{let[o,s,i]=(0,Sa.useControlled)({controlled:r,default:n!=null?n:0,name:"Tabstrip",state:"value"}),a=(0,kn.useCallback)(p=>Tp.includes(p.key),[]),l=(0,kn.useCallback)(p=>{s(p),t==null||t(p)},[t,s]),c=(0,kn.useCallback)(p=>{let f=p.target;a(p)&&e!==o&&Cp(f)&&(p.stopPropagation(),p.preventDefault(),l(e))},[a,e,o,l]),u=(0,kn.useCallback)((p,f)=>{f!==o&&l(f)},[l,o]);return{activateTab:l,isControlled:i,onClick:u,onKeyDown:c,selected:o}};var Ep=new Set(["Enter"," "]),Rp=n=>Ep.has(n),Dp=(n,e)=>n?n.querySelector(`[data-index="${e}"]`):null,Ma=({activeTabIndex:n,allowDragDrop:e,animateSelectionThumb:t,containerRef:r,onActiveChange:o,onAddTab:s,onCloseTab:i,onExitEditMode:a,onMoveTab:l,orientation:c,keyBoardActivation:u})=>{let p=(0,ye.useRef)(n),{focusTab:f,highlightedIdx:d,onClick:h,onKeyDown:b,setHighlightedIdx:y,...g}=Da({containerRef:r,keyBoardActivation:u,orientation:c,selectedIndex:p.current}),{activateTab:v,onClick:x,onKeyDown:w,selected:E}=Pa({highlightedIdx:d,onSelectionChange:o,selected:n});p.current=E;let{containerStyle:m,resumeAnimation:C,suspendAnimation:M}=wa(r,t?E:-1),P=(0,ye.useCallback)((H,N)=>{let{current:X}=p;console.log(`useTabstrip handleDrop ${H} - ${N} ${X}`),l==null||l(H,N);let he=-1;N!==-1&&(X===H?he=N:H>X&&N<=X?he=X+1:H<X&&N>=X&&(he=X-1),he!==-1&&(M(),v(he),requestAnimationFrame(C)),f(N,!1,!1,350))},[f,l,C,v,M]),{onMouseDown:T,...R}=ma({allowDragDrop:e,containerRef:r,draggableClassName:`tabstrip-${c}`,onDrop:P,orientation:"horizontal",itemQuery:".vuuOverflowContainer-item"}),D=(0,ye.useCallback)((H,N,X,he)=>{console.log(`handleExitEditMode ${H} ${N} ${X} ${he}`),a==null||a(H,N,X,he),X||f(he,!1,!0)},[f,a]),S=(0,ye.useCallback)((H,N)=>{h(H,N),x(H,N)},[h,x]),I=(0,ye.useCallback)((H=d)=>{let N=Dp(r.current,H);if(N)return N.querySelector(".vuuEditableLabel")},[r,d]),k=(0,ye.useCallback)((H=d)=>{let N=I(H);return N?N.classList.contains("vuuEditableLabel-editing"):!1},[I,d]),L=(0,ye.useCallback)((H=d)=>{let N=I(H);if(N){let X=new MouseEvent("dblclick",{view:window,bubbles:!0,cancelable:!0});N.dispatchEvent(X)}},[I,d]),A=(0,ye.useCallback)(H=>{b(H),H.defaultPrevented||w(H),!H.defaultPrevented&&Rp(H.key)&&L()},[L,b,w]),O=(0,ye.useCallback)(H=>{let N=yo(r.current),X=N>H?N-1:N===H?0:N;return M(),i==null||i(H,X),setTimeout(()=>{C()},200),!0},[r,i,C,M]),B=(0,ye.useCallback)(H=>(L(H),!0),[L]),V=(0,ye.useCallback)(H=>{if(ga(H.options))switch(H.menuId){case"close-tab":return O(H.options.tabIndex);case"rename-tab":return B(H.options.tabIndex);default:console.log(`tab menu action ${H.menuId}`)}return!1},[O,B]),F=(0,ye.useCallback)(()=>{k()?y(d):f(d)},[d,f,y,k]),W=(0,ye.useCallback)(H=>{let N=parseInt(H.index);isNaN(N)||v(N)},[v]),Y={onFocus:g.onFocus,onKeyDown:A},_=(0,ye.useCallback)(()=>{s==null||s(),requestAnimationFrame(()=>{let H=yo(r.current);H!==-1&&f(H)})},[r,f,s]),J={onClick:S,onKeyDown:A,onExitEditMode:D,onMenuAction:V,onMenuClose:F,onMouseDown:T};return{activeTabIndex:E,containerStyle:m,focusVisible:g.focusVisible,containerProps:{...g.containerProps,onSwitchWrappedItemIntoView:W},navigationProps:Y,onClickAddTab:_,tabProps:J,...R}};var nn=require("react/jsx-runtime"),Ia=require("react"),xo="vuuTabstrip",Wi=({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=(0,tn.useRef)(null),{activeTabIndex:E,focusVisible:m,containerStyle:C,draggedItemIndex:M,onClickAddTab:P,tabProps:T,...R}=Ma({activeTabIndex:n,allowDragDrop:r,animateSelectionThumb:s,containerRef:w,keyBoardActivation:c,onActiveChange:p,onAddTab:f,onCloseTab:d,onExitEditMode:h,onMoveTab:b,orientation:y}),D=Zn(l),S=(0,ka.default)(xo,`${xo}-${y}`,a),I=v||C?{...v,...C}:void 0,k=(0,tn.useMemo)(()=>Ut(i).map((L,A)=>{let{id:O=`${D}-tab-${A}`,closeable:B=t,editable:V=o,showMenuButton:F=g}=L.props,W=A===E;return tn.default.cloneElement(L,{...T,...R.navigationProps,closeable:B,"data-overflow-priority":W?"1":void 0,dragging:M===A,editable:V,focusVisible:m===A,id:O,index:A,location:u,selected:W,showMenuButton:F,tabIndex:W?0:-1})}).concat(e?(0,Ia.createElement)(La.Button,{...R.navigationProps,"aria-label":"Create Tab",className:`${xo}-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(0,nn.jsxs)(nn.Fragment,{children:[(0,nn.jsx)(Ni,{...x,...R.containerProps,className:S,height:28,id:D,overflowIcon:"more-horiz",ref:w,style:I,children:k}),R.draggable]})};var Ba=require("@salt-ds/core"),Va=z(require("classnames")),At=require("react");var Oa=require("@vuu-ui/vuu-popups"),Aa=require("react"),Ha=z(require("classnames"));var za=require("react/jsx-runtime"),Sp="vuuTabMenu",Na=({allowClose:n,allowRename:e,location:t,onMenuAction:r,onMenuClose:o,index:s})=>{let[i,a]=(0,Aa.useMemo)(()=>[(l,c)=>{let u=[];return e&&u.push(ya(c)),n&&u.push(ba(c)),u},{tabIndex:s}],[n,e,s]);return(0,za.jsx)(Oa.PopupMenu,{className:Sp,menuBuilder:i,menuActionHandler:r,menuLocation:(0,Ha.default)("tab",t),menuOptions:a,onMenuClose:o,tabIndex:-1})};var Ot=require("react/jsx-runtime"),It="vuuTab",Fa=()=>{},Ki=(0,At.forwardRef)(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=Fa,onExitEditMode:b=Fa,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=(0,At.useRef)(null),R=(0,At.useRef)(null),D=(0,Ba.useForkRef)(P,T),S=(0,At.useCallback)(O=>{a||(O.preventDefault(),f==null||f(O,c))},[a,c,f]),I=(O="",B="",V=!0)=>b(O,B,V,c),k=O=>{switch(O.key){case"Backspace":case"Delete":o&&(O.stopPropagation(),d&&d(c));break;default:g&&g(O,c)}},L=()=>i?(0,Ot.jsx)(Gt,{editing:a,defaultValue:u,onEnterEditMode:h,onExitEditMode:I,ref:R},u):u,A=O=>{if(R.current){let V=R.current.querySelector(".vuuEditableLabel-input");V==null||V.focus()}y==null||y(O)};return(0,Ot.jsxs)("div",{...M,"aria-controls":e,"aria-selected":E,className:(0,Va.default)(It,{[`${It}-closeable`]:o,"vuuDraggable-dragAway":s,[`${It}-editing`]:a,[`${It}-selected`]:E||void 0,[`${It}-vertical`]:w==="vertical",saltFocusVisible:l}),onClick:S,onFocus:A,onKeyUp:k,ref:D,role:"tab",tabIndex:C,children:[(0,Ot.jsx)("div",{className:`${It}-main`,children:(0,Ot.jsx)("span",{className:`${It}-text`,"data-text":i?void 0:u,children:t!=null?t:L()})}),m?(0,Ot.jsx)(Na,{allowClose:o,allowRename:i,location:p,onMenuAction:v,onMenuClose:x,index:c}):null]})});var _a=z(require("classnames")),st=require("react");var In=require("react/jsx-runtime"),{KEY:$a}=vr.metadataKeys,vo=(0,st.memo)(({className:n,column:e,columnMap:t,onClick:r,row:o})=>{let s=(0,st.useRef)(null),{align:i,CellRenderer:a,key:l,pin:c,editable:u,resizing:p,valueFormatter:f}=e,[d,h]=(0,st.useState)(!1),b=f(o[l]),[y,g]=(0,st.useState)(b),v=()=>{var P;(P=s.current)==null||P.focus()},x=P=>{P.key==="Enter"&&h(!0)},w=(0,st.useCallback)(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=(0,_a.default)(n,{vuuAlignRight:i==="right",vuuPinFloating:c==="floating",vuuPinLeft:c==="left",vuuPinRight:c==="right","vuuTableCell-resizing":p})||void 0,M=(0,vr.getColumnStyle)(e);return u?(0,In.jsx)("div",{className:C,"data-editable":!0,role:"cell",style:M,onKeyDown:x,children:(0,In.jsx)(Gt,{editing:d,value:y,onChange:g,onMouseDownCapture:v,onEnterEditMode:E,onExitEditMode:m,onKeyDown:x,ref:s,tabIndex:0},"title")}):(0,In.jsx)("div",{className:C,role:"cell",style:M,onClick:w,children:a?(0,In.jsx)(a,{column:e,columnMap:t,row:o}):b})},Pp);vo.displayName="TableCell";function Pp(n,e){return n.column===e.column&&n.onClick===e.onClick&&n.row[$a]===e.row[$a]&&n.row[n.column.key]===e.row[e.column.key]}var on=require("@vuu-ui/vuu-utils"),Wa=require("react");var rn=require("react/jsx-runtime"),{IS_LEAF:Mp}=on.metadataKeys,Ka=({column:n,onClick:e,row:t})=>{let{columns:r}=n,[o,s]=(0,on.getGroupValueAndOffset)(r,t),i=(0,Wa.useCallback)(u=>{e==null||e(u,n)},[n,e]),a=(0,on.getColumnStyle)(n),l=t[Mp],c=Array(s).fill(0).map((u,p)=>(0,rn.jsx)("span",{className:"vuuTableGroupCell-spacer"},p));return(0,rn.jsxs)("div",{className:"vuuTableGroupCell vuuPinLeft",onClick:l?void 0:i,role:"cell",style:a,children:[c,l?null:(0,rn.jsx)("span",{className:"vuuTableGroupCell-toggle","data-icon":"triangle-right"}),(0,rn.jsx)("span",{children:o})]})};var An=require("react/jsx-runtime"),{IDX:Lp,IS_EXPANDED:kp,SELECTED:Ip}=We.metadataKeys,wr="vuuTableRow",Ua=(0,On.memo)(function({columnMap:e,columns:t,offset:r,onClick:o,onToggleGroup:s,virtualColSpan:i=0,row:a}){let{[Lp]:l,[kp]:c,[Ip]:u}=a,p=(0,Ga.default)(wr,{[`${wr}-even`]:l%2===0,[`${wr}-expanded`]:c,[`${wr}-preSelected`]:u===2}),f=(0,On.useCallback)(h=>{let b=h.shiftKey,y=h.ctrlKey||h.metaKey;o==null||o(a,b,y)},[o,a]),d=(0,On.useCallback)((h,b)=>{((0,We.isGroupColumn)(b)||(0,We.isJsonGroup)(b,a))&&(h.stopPropagation(),s==null||s(a,b))},[s,a]);return(0,An.jsxs)("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?(0,An.jsx)("div",{role:"cell",style:{width:i}}):null,t.filter(We.notHidden).map(h=>{let b=(0,We.isGroupColumn)(h),y=(0,We.isJsonColumn)(h);return(0,An.jsx)(b?Ka:vo,{column:h,columnMap:e,onClick:b||y?d:void 0,row:a},h.name)})]})});var wo=z(require("classnames")),Xa=require("react");var Ht=require("react"),Hn=({column:n,onResize:e,rootRef:t})=>{let r=(0,Ht.useRef)(0),o=(0,Ht.useRef)(!1),{name:s}=n,i=(0,Ht.useCallback)(()=>{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=(0,Ht.useCallback)((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=(0,Ht.useCallback)(()=>{e&&(e("end",s,r.current),setTimeout(()=>{o.current=!1},100))},[s,e]);return{isResizing:o.current,onDrag:a,onDragStart:i,onDragEnd:l}};var Ke=require("react/jsx-runtime"),vt="vuuTable-groupHeaderCell",Qa=({column:n,onClick:e,...t})=>(0,Ke.jsx)("span",{...t,className:`${vt}-close`,"data-icon":"close-circle",onClick:()=>e==null?void 0:e(n)}),Op=n=>{let{children:e,column:t,className:r}=n;return(0,Ke.jsxs)("div",{className:(0,wo.default)(`${vt}-col`,r),role:"columnheader",children:[(0,Ke.jsx)("span",{className:`${vt}-label`,children:t.name}),e]})},Za=({column:n,className:e,onRemoveColumn:t,onResize:r,...o})=>{let s=(0,Xa.useRef)(null),{isResizing:i,...a}=Hn({column:n,onResize:r,rootRef:s}),l=(0,wo.default)(vt,e,{vuuPinLeft:n.pin==="left",[`${vt}-right`]:n.align==="right",[`${vt}-resizing`]:n.resizing,[`${vt}-pending`]:n.groupConfirmed===!1}),{columns:c}=n;return(0,Ke.jsx)("div",{className:l,ref:s,...o,children:(0,Ke.jsxs)("div",{className:`${vt}-inner`,children:[c.map(u=>(0,Ke.jsx)(Op,{column:u,children:c.length>1?(0,Ke.jsx)(Qa,{column:u,onClick:t}):null},u.key)),(0,Ke.jsx)(Qa,{"data-align":"end",onClick:t}),n.resizeable!==!1?(0,Ke.jsx)(xn,{...a}):null]})})};var rl=z(require("classnames")),zt=require("react");var To=z(require("classnames"));var Nt=require("react/jsx-runtime"),Ya="vuuSortIndicator",ja=({sorted:n})=>{if(!n)return null;let e=typeof n=="number"?n<0?"dsc":"asc":n==="A"?"asc":"dsc";return typeof n=="number"?(0,Nt.jsxs)("div",{className:(0,To.default)(Ya,"multi-col",e),children:[(0,Nt.jsx)("span",{"data-icon":`sorted-${e}`}),(0,Nt.jsx)("span",{className:"vuuSortPosition",children:Math.abs(n)})]}):(0,Nt.jsx)("div",{className:(0,To.default)(Ya,"single-col"),children:(0,Nt.jsx)("span",{"data-icon":`sorted-${e}`})})};var ol=require("@vuu-ui/vuu-popups");var qa=require("@vuu-ui/vuu-popups"),Ja=z(require("classnames")),el=require("react");var nl=require("react/jsx-runtime");var tl=({column:n,filter:e})=>{let[t]=(0,qa.useContextMenu)(),r=(0,el.useCallback)(o=>{o.stopPropagation(),t(o,"filter",{column:n,filter:e})},[n,e,t]);return n.filter?(0,nl.jsx)("div",{className:(0,Ja.default)("vuuFilterIndicator"),"data-icon":"filter",onClick:r}):null};var wt=require("react/jsx-runtime"),Nn="vuuTable-headerCell",sl=({column:n,className:e,onClick:t,onDragStart:r,onResize:o,...s})=>{let i=(0,zt.useRef)(null),{isResizing:a,...l}=Hn({column:n,onResize:o,rootRef:i}),[c]=(0,ol.useContextMenu)(),u=(0,zt.useRef)(null),p=y=>{c(y,"header",{column:n})},f=(0,zt.useCallback)(y=>!a&&(t==null?void 0:t(y)),[a,t]),d=(0,zt.useCallback)(y=>{u.current=window.setTimeout(()=>{r==null||r(y),u.current=null},500)},[r]),h=(0,zt.useCallback)(()=>{u.current!==null&&(window.clearTimeout(u.current),u.current=null)},[]),b=(0,rl.default)(Nn,e,{vuuPinFloating:n.pin==="floating",vuuPinLeft:n.pin==="left",vuuPinRight:n.pin==="right",vuuEndPin:n.endPin,[`${Nn}-resizing`]:n.resizing,[`${Nn}-right`]:n.align==="right"});return(0,wt.jsx)("div",{className:b,...s,onClick:f,onContextMenu:p,onMouseDown:d,onMouseUp:h,ref:i,children:(0,wt.jsxs)("div",{className:`${Nn}-inner`,children:[(0,wt.jsx)(tl,{column:n}),(0,wt.jsx)("div",{className:`${Nn}-label`,children:n.label}),(0,wt.jsx)(ja,{sorted:n.sorted}),n.resizeable!==!1?(0,wt.jsx)(xn,{...l}):null]})})};var Ge=require("react/jsx-runtime"),Co="vuuTable",{RENDER_IDX:Ap}=Ae.metadataKeys,il=({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=(0,sn.useCallback)(x=>{i==null||i(x)},[i]),y=(0,sn.useMemo)(()=>n.filter(Ae.notHidden),[n]),g=(0,sn.useMemo)(()=>(0,Ae.buildColumnMap)(n),[n]),v=(0,sn.useCallback)(x=>{var P;let E=x.target.closest(".vuuTable-headerCell"),m=parseInt((P=E==null?void 0:E.dataset.idx)!=null?P:"-1"),C=(0,Ae.visibleColumnAtIndex)(n,m),M=x.shiftKey;C&&u(C,M)},[n,u]);return(0,Ge.jsxs)("div",{"aria-rowcount":h,className:`${Co}-table`,role:"table",children:[(0,Ge.jsxs)("div",{className:`${Co}-headers`,role:"rowGroup",children:[o.map((x,w)=>(0,Ge.jsx)("div",{className:"vuuTable-heading",children:x.map(({label:E,width:m},C)=>(0,Ge.jsx)("div",{className:"vuuTable-headingCell",style:{width:m},children:E},C))},w)),(0,Ge.jsx)("div",{role:"row",children:y.map((x,w)=>{let E=(0,Ae.getColumnStyle)(x);return(0,Ae.isGroupColumn)(x)?(0,Ge.jsx)(Za,{column:x,"data-idx":w,onRemoveColumn:l,onResize:s,role:"columnHeader",style:E},w):(0,Ge.jsx)(sl,{column:x,"data-idx":w,id:`${f}-${w}`,onClick:v,onDragStart:b,onResize:s,role:"columnHeader",style:E},w)})})]}),(0,Ge.jsx)("div",{className:`${Co}-body`,onContextMenu:a,role:"rowGroup",children:t==null?void 0:t.map(x=>(0,Ge.jsx)(Ua,{columnMap:g,columns:e,offset:r(x),onClick:c,virtualColSpan:d,onToggleGroup:p,row:x},x[Ap]))})]})};var Zl=require("@vuu-ui/vuu-popups"),qe=require("@vuu-ui/vuu-utils"),te=require("react");var Tr=require("@vuu-ui/vuu-utils"),zn=require("react"),{SELECTED:gE}=Tr.metadataKeys;var Eo=require("react"),Hp=require("@vuu-ui/vuu-data");var Ro=require("react"),Np=require("@vuu-ui/vuu-data");var zp=require("react"),Fp=require("@vuu-ui/vuu-data");var Bp=0,Fn=class{constructor(e,t){this.from=e,this.to=t}},Z=class{constructor(e={}){this.id=Bp++,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=Ee.match(e)),t=>{let r=e(t);return r===void 0?null:[this,r]}}};Z.closedBy=new Z({deserialize:n=>n.split(" ")});Z.openedBy=new Z({deserialize:n=>n.split(" ")});Z.group=new Z({deserialize:n=>n.split(" ")});Z.contextHash=new Z({perNode:!0});Z.lookAhead=new Z({perNode:!0});Z.mounted=new Z({perNode:!0});var Vp=Object.create(null),Ee=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):Vp,r=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),o=new Ee(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(Z.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(Z.group),s=-1;s<(o?o.length:0);s++){let i=t[s<0?r.name:o[s]];if(i)return i}}}};Ee.none=new Ee("",Object.create(null),0,8);var an=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 Ee(r.name,o,r.id,r.flags):r)}return new an(t)}},Cr=new WeakMap,al=new WeakMap,de;(function(n){n[n.ExcludeBuffers=1]="ExcludeBuffers",n[n.IncludeAnonymous=2]="IncludeAnonymous",n[n.IgnoreMounts=4]="IgnoreMounts",n[n.IgnoreOverlays=8]="IgnoreOverlays"})(de||(de={}));var me=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(Z.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 cn(this.topNode,e)}cursorAt(e,t=0,r=0){let o=Cr.get(this)||this.topNode,s=new cn(o);return s.moveTo(e,t),Cr.set(this,s._tree),s}get topNode(){return new Ue(this,0,0,null)}resolve(e,t=0){let r=ln(Cr.get(this)||this.topNode,e,t,!1);return Cr.set(this,r),r}resolveInner(e,t=0){let r=ln(al.get(this)||this.topNode,e,t,!0);return al.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&de.IncludeAnonymous)>0;for(let l=this.cursor(i|de.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:Mo(Ee.none,this.children,this.positions,0,this.children.length,0,this.length,(t,r,o)=>new me(this.type,t,r,o,this.propValues),e.makeTree||((t,r,o)=>new me(Ee.none,t,r,o)))}static build(e){return $p(e)}};me.empty=new me(Ee.none,[],[],0);var Bn=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 Bn(this.buffer,this.index)}},it=class{constructor(e,t,r){this.buffer=e,this.length=t,this.set=r}get type(){return Ee.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&&!(cl(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 it(s,i,this.set)}};function cl(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 ul(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 ln(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 Ue&&n.index<0?null:n.parent;if(!i)return n;n=i}let s=r?0:de.IgnoreOverlays;if(r)for(let i=n,a=i.parent;a;i=a,a=i.parent)i instanceof Ue&&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 Ue=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(cl(o,r,p,p+u.length)){if(u instanceof it){if(s&de.ExcludeBuffers)continue;let f=u.findChild(0,u.buffer.length,t,r-p,o);if(f>-1)return new Ye(new Do(i,u,e,p),null,f)}else if(s&de.IncludeAnonymous||!u.type.isAnonymous||Po(u)){let f;if(!(s&de.IgnoreMounts)&&u.props&&(f=u.prop(Z.mounted))&&!f.overlay)return new Ue(f.tree,p,e,i);let d=new Ue(u,p,e,i);return s&de.IncludeAnonymous||!d.type.isAnonymous?d:d.nextChild(t<0?u.children.length-1:0,t,r,o)}}}if(s&de.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&de.IgnoreOverlays)&&(o=this._tree.prop(Z.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 Ue(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 cn(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return ln(this,e,t,!1)}resolveInner(e,t=0){return ln(this,e,t,!0)}enterUnfinishedNodesBefore(e){return ul(this,e)}getChild(e,t=null,r=null){let o=Rr(this,e,t,r);return o.length?o[0]:null}getChildren(e,t=null,r=null){return Rr(this,e,t,r)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return Dr(this,e)}};function Rr(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 Dr(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 Do=class{constructor(e,t,r,o){this.parent=e,this.buffer=t,this.index=r,this.start=o}},Ye=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 Ye(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&de.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 Ye(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 Ye(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 Ye(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new cn(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 me(this.type,e,t,this.to-this.from)}resolve(e,t=0){return ln(this,e,t,!1)}resolveInner(e,t=0){return ln(this,e,t,!0)}enterUnfinishedNodesBefore(e){return ul(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,r=null){let o=Rr(this,e,t,r);return o.length?o[0]:null}getChildren(e,t=null,r=null){return Rr(this,e,t,r)}get node(){return this}matchContext(e){return Dr(this,e)}},cn=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 Ue)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 Ue?(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&de.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&de.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&de.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&de.IncludeAnonymous||a instanceof it||!a.type.isAnonymous||Po(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 Ye(this.buffer,t,this.stack[o]);return this.bufferNode=new Ye(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 Dr(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 Dr(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 Po(n){return n.children.some(e=>e instanceof it||!e.type.isAnonymous||Po(e))}function $p(n){var e;let{buffer:t,nodeSet:r,maxBufferLength:o=1024,reused:s=[],minRepeatType:i=r.types.length}=n,a=Array.isArray(t)?new Bn(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),B=a.pos-L.size,V=O.length;for(;a.pos>B;)V=y(L.start,O,V);k=new it(O,R-L.start,r),A=L.start-w}else{let O=a.pos-D;a.next();let B=[],V=[],F=P>=i?P:-1,W=0,Y=R;for(;a.pos>O;)F>=0&&a.id==F&&a.size>=0?(a.end<=Y-o&&(d(B,V,T,W,a.end,Y,F,S),W=B.length,Y=a.end),a.next()):p(T,O,B,V,F);if(F>=0&&W>0&&W<B.length&&d(B,V,T,W,T,Y,F,S),B.reverse(),V.reverse(),F>-1&&W>0){let _=f(I);k=Mo(I,B,V,0,B.length,0,R-T,_,_)}else k=h(I,B,V,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 me){if(!P&&T.type==w&&T.length==C)return T;(R=T.prop(Z.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=[Z.contextHash,c];P=P?[T].concat(P):[T]}if(M>25){let T=[Z.lookAhead,M];P=P?[T].concat(P):[T]}return new me(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 me(l[n.topID],g.reverse(),v.reverse(),x)}var ll=new WeakMap;function Er(n,e){if(!n.isAnonymous||e instanceof it||e.type!=n)return 1;let t=ll.get(e);if(t==null){t=1;for(let r of e.children){if(r.type!=n||!(r instanceof me)){t=1;break}t+=Er(n,r)}ll.set(e,t)}return t}function Mo(n,e,t,r,o,s,i,a,l){let c=0;for(let h=r;h<o;h++)c+=Er(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=Er(n,h[x]);for(x++;x<g;x++){let C=Er(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(Mo(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 Sr=class{startParse(e,t,r){return typeof e=="string"&&(e=new So(e)),r=r?r.length?r.map(o=>new Fn(o.from,o.to)):[new Fn(0,0)]:[new Fn(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}}},So=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 TE=new Z({perNode:!0});var pn=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 pn(e,[],t,r,r,0,[],0,o?new Pr(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 pn(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 ko(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 Pr(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()}},Pr=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},pl;(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"})(pl||(pl={}));var ko=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}},fn=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 fn(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 fn(this.stack,this.pos,this.index)}};function Vn(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 un=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},fl=new un,Io=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=fl,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=fl,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}},Tt=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:r}=t.p;xl(this.data,e,t,this.id,r.data,r.tokenPrecTable)}};Tt.prototype.contextual=Tt.prototype.fallback=Tt.prototype.extend=!1;var Oo=class{constructor(e,t,r){this.precTable=t,this.elseToken=r,this.data=typeof e=="string"?Vn(e):e}token(e,t){let r=e.pos,o=0;for(;;){let s=e.next<0,i=e.resolveOffset(1,1);if(xl(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))}};Oo.prototype.contextual=Tt.prototype.fallback=Tt.prototype.extend=!1;function xl(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||Wp(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 dl(n,e,t){for(let r=e,o;(o=n[r])!=65535;r++)if(o==t)return r-e;return-1}function Wp(n,e,t,r){let o=dl(t,r,e);return o<0||dl(t,r,n)<o}var Qe=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),Lo=null,ml;(function(n){n[n.Margin=25]="Margin"})(ml||(ml={}));function hl(n,e,t){let r=n.cursor(de.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 Ao=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?hl(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?hl(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 me){if(i==e){if(i<this.safeFrom)return null;let a=i+s.length;if(a<=this.safeTo){let l=s.prop(Z.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}}},Ho=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(r=>new un)}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 un,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 un,{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=at(a,c+2);else{o==0&&a[c+1]==2&&(o=this.putAction(at(a,c+2),t,r,o));break}a[c]==t&&(o=this.putAction(at(a,c+1),t,r,o))}return o}},gl;(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"})(gl||(gl={}));var No=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 Io(t,o),this.tokens=new Ho(e,this.stream),this.topTerm=e.top[1];let{from:s}=o[0];this.stacks=[pn.start(this,e.top[0],s)],this.fragments=r.length&&this.stream.end-s>e.bufferLength*4?new Ao(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&&Kp(o);if(i)return this.stackToTree(i);if(this.parser.strict)throw Qe&&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=Qe?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(Z.contextHash)||0)==u))return e.useNode(p,f),Qe&&console.log(i+this.stackID(e)+` (via reuse of ${s.getName(p.type.id)})`),!0;if(!(p instanceof me)||p.children.length==0||p.positions[0]>0)break;let d=p.children[0];if(d instanceof me&&p.positions[0]==0)p=d;else break}}let a=s.stateSlot(e.state,4);if(a>0)return e.reduce(a),Qe&&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),Qe&&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 bl(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=Qe?this.stackID(a)+" -> ":"";if(a.deadEnd&&(s||(s=!0,a.restart(),Qe&&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&&(Qe&&console.log(f+this.stackID(p)+" (via force-reduce)"),!this.advanceFully(p,r));d++)Qe&&(f=this.stackID(p)+" -> ");for(let d of a.recoverByInsert(l))Qe&&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),Qe&&console.log(u+this.stackID(a)+` (via recover-delete ${this.parser.getName(l)})`),bl(a,r)):(!o||o.score<a.score)&&(o=a)}return o}stackToTree(e){return e.close(),me.build({buffer:fn.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=(Lo||(Lo=new WeakMap)).get(e);return t||Lo.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function bl(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 zo=class{constructor(e,t,r){this.source=e,this.flags=t,this.disabled=r}allows(e){return!this.disabled||this.disabled[e]==0}};var Ft=class extends Sr{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=Z[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 an(t.map((a,l)=>Ee.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=Vn(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(yl),this.states=Vn(e.states,Uint32Array),this.data=Vn(e.stateData),this.goto=Vn(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(a=>typeof a=="number"?new Tt(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 No(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=at(r,s+2)];else{if(r[s+1]==2)return at(r,s+2);break}if(i==t||i==0)return at(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=at(this.data,s+2);else break;o=t(at(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=at(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(Ft.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]=yl(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 zo(e,r,o)}static deserialize(e){return new Ft(e)}};function at(n,e){return n[e]|n[e+1]<<16}function Kp(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 yl(n){if(n.external){let e=n.extend?1:0;return(t,r)=>n.external(t,r)<<1|e}return n.get}var Fo=Ft.deserialize({version:14,states:"%QOVQPOOOOQO'#C_'#C_O_QQO'#C^OOQO'#DO'#DOOvQQO'#C|OOQO'#DR'#DROVQPO'#CuOOQO'#C}'#C}QOQPOOOOQO'#C`'#C`O!UQQO,58xO!dQPO,59VOVQPO,59]OVQPO,59_O!iQPO,59hO!nQQO,59aOOQO'#DQ'#DQOOQO1G.d1G.dO!UQQO1G.qO!yQQO1G.wOOQO1G.y1G.yOOQO'#Cw'#CwOOQO1G/S1G/SOOQO1G.{1G.{O#[QPO'#CnO#dQPO7+$]O!UQQO'#CxO#iQPO,59YOOQO<<Gw<<GwOOQO,59d,59dOOQO-E6v-E6v",stateData:"#q~OoOS~OsPOvUO~OTXOUXOVXOWXOXXOYXO`ZO~Of[Oh]Oj^OmpX~OZ`O[`O]`O^`O~OabO~OseO~Of[Oh]OwgO~Oh]Ofeijeimeiwei~OcjOdbX~OdlO~OcjOdba~O",goto:"#YvPPw}!TPPPPPPPPPPwPP!WPP!ZP!ZP!aP!g!jPPP!p!s!aP#P!aXROU[]XQOU[]RYQRibXTOU[]XVOU[]Rf^QkhRnkRWOQSOQ_UQc[Rd]QaYQhbRmj",nodeNames:"\u26A0 Filter ColumnValueExpression Column Operator Eq NotEq Gt Lt Starts Ends Number String True False ColumnSetExpression In LBrack Values Comma RBrack AndExpression And OrExpression Or ParenthesizedExpression As FilterName",maxTerm:39,skippedNodes:[0],repeatNodeCount:1,tokenData:"6p~RnXY#PYZ#P]^#Ppq#Pqr#brs#mxy$eyz$j|}$o!O!P$t!Q![%S!^!_%_!_!`%d!`!a%i!c!}%n!}#O&V#P#Q&[#R#S%n#T#U&a#U#X%n#X#Y(w#Y#Z+]#Z#]%n#]#^.]#^#c%n#c#d/e#d#g%n#g#h0m#h#i4[#i#o%n~#USo~XY#PYZ#P]^#Ppq#P~#eP!_!`#h~#mOU~~#pWOX#mZ]#m^r#mrs$Ys#O#m#P;'S#m;'S;=`$_<%lO#m~$_O[~~$bP;=`<%l#m~$jOv~~$oOw~~$tOc~~$wP!Q![$z~%PPZ~!Q![$z~%XQZ~!O!P$t!Q![%S~%dOW~~%iOT~~%nOV~P%sUsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%n~&[Oa~~&aOd~R&fYsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c'U#c#g%n#g#h(^#h#o%nR'ZWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#W%n#W#X's#X#o%nR'zUfQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR(eUjQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR(|WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c)f#c#o%nR)kWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#W%n#W#X*T#X#o%nR*YWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h*r#h#o%nR*yUYQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR+bVsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#U+w#U#o%nR+|WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#`%n#`#a,f#a#o%nR,kWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h-T#h#o%nR-YWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#X%n#X#Y-r#Y#o%nR-yU^QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR.bWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c.z#c#o%nR/RU`QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR/jWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g0S#g#o%nR0ZUhQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR0rWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#h%n#h#i1[#i#o%nR1aVsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#U1v#U#o%nR1{WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g2e#g#o%nR2jWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#h%n#h#i3S#i#o%nR3XWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h3q#h#o%nR3xUXQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR4aWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g4y#g#o%nR5OWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#i%n#i#j5h#j#o%nR5mWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#X%n#X#Y6V#Y#o%nR6^U]QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%n",tokenizers:[0,1],topRules:{Filter:[0,1]},tokenPrec:0});var je=require("@vuu-ui/vuu-utils");var Re,vl=class{constructor(){ns(this,Re,void 0)}setFilterCombinatorOp(e,t=Ze(this,Re)){(0,je.isMultiClauseFilter)(t)&&t.op===e||Ir(this,Re,{op:e,filters:[Ze(this,Re)]})}add(e){if(Ze(this,Re)===void 0)Ir(this,Re,e);else if((0,je.isMultiClauseFilter)(Ze(this,Re)))Ze(this,Re).filters.push(e);else throw Error("Invalid filter passed to FilterExpression")}setColumn(e,t=Ze(this,Re)){if((0,je.isMultiClauseFilter)(t)){let r=t.filters.at(-1);r&&this.setColumn(e,r)}else t&&(t.column=e)}setOp(e,t=Ze(this,Re)){if((0,je.isMultiClauseFilter)(t)){let r=t.filters.at(-1);r&&this.setOp(e,r)}else t&&(t.op=e)}setValue(e,t=Ze(this,Re)){var r;if((0,je.isMultiClauseFilter)(t)){let o=t.filters.at(-1);o&&this.setValue(e,o)}else(0,je.isMultiValueFilter)(t)?((r=t.values)!=null||(t.values=[]),t.values.push(e)):(0,je.isSingleValueFilter)(t)&&(t.value=e)}toJSON(e=Ze(this,Re)){return this.name?{...e,name:this.name}:e}};Re=new WeakMap;var IE=Fo.configure({strict:!0});var Mr=require("@vuu-ui/vuu-utils"),Qp=require("react");var{KEY:KE}=Mr.metadataKeys;var Xp=n=>n.type==="vuu-links";var Zp=n=>n.type==="vuu-menu",wl=n=>Zp(n)||Xp(n),Tl=n=>n.type==="vuu-link-created"||n.type==="vuu-link-removed";var Bo=require("react"),Yp=require("@vuu-ui/vuu-data");var Ct=require("@vuu-ui/vuu-utils"),re=require("react"),{SELECTED:$n}=Ct.metadataKeys;function Cl({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]=(0,re.useState)(null),u=(0,re.useRef)(!0),p=(0,re.useRef)(!1),f=(0,re.useRef)({from:0,to:0}),d=(0,re.useRef)(null),h=(0,re.useRef)([]),b=(0,re.useMemo)(()=>new Vo((0,Ct.getFullRange)(i)),[]),y=(0,re.useCallback)(m=>{for(let C of m)b.add(C);h.current=b.data,p.current=!0},[b]),g=(0,re.useCallback)(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)):wl(m)?t==null||t(m):Tl(m)?r==null||r(m):console.log(`useDataSource unexpected message ${m.type}`)},[b,t,r,o,s,y]);(0,re.useEffect)(()=>()=>{d.current&&(cancelAnimationFrame(d.current),d.current=null),u.current=!1},[]);let v=(0,re.useCallback)(()=>{u.current&&(p.current&&(c({}),p.current=!1),d.current=requestAnimationFrame(v))},[c]);(0,re.useEffect)(()=>{d.current=requestAnimationFrame(v)},[v]);let x=(0,re.useCallback)(m=>{let{from:C}=n.range,M={from:C,to:C+m},P=(0,Ct.getFullRange)(M,a);b.setRange(P),n.range=f.current=P,n.emit("range",M)},[n,b,a]),w=(0,re.useCallback)(m=>{let C=(0,Ct.getFullRange)(m,a);b.setRange(C),n.range=f.current=C,n.emit("range",m)},[n,b,a]),E=(0,re.useCallback)(()=>b.getSelectedRows(),[b]);return(0,re.useEffect)(()=>{n==null||n.subscribe({range:f.current},g)},[n,g,e]),(0,re.useEffect)(()=>{x(l)},[x,l]),{data:h.current,getSelectedRows:E,range:f.current,setRange:w,dataSource:n}}var Vo=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 Ct.WindowRange(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[$n],i=(r=this.data[o-1])==null?void 0:r[$n];i===0&&s?this.data[o-1][$n]=2:i===2&&!s&&(this.data[o-1][$n]=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[$n]===1)}};var El=require("@heswell/salt-lab"),dn=require("react"),Rl=({onDrop:n})=>{let e=(0,dn.useRef)(),t=(0,dn.useRef)(null),r=(0,dn.useCallback)(()=>{console.log("handleDropSettle"),e.current=void 0,t.current=null},[]),{draggable:o,draggedItemIndex:s,onMouseDown:i}=(0,El.useDragDrop)({allowDragDrop:!0,draggableClassName:"vuuTable-headerCell",orientation:"horizontal",containerRef:t,itemQuery:".vuuTable-headerCell",onDrop:n,onDropSettle:r}),a=(0,dn.useCallback)(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}};var Ll=require("@vuu-ui/vuu-utils"),le=require("react");function jp(n,...e){let t=new Set(n);for(let r of e)for(let o of r)t.add(o);return t}var $o="ArrowUp",_o="ArrowDown",Wo="ArrowLeft",Ko="ArrowRight";var Go="Home",Uo="End",Qo="PageUp",Xo="PageDown";var qp=new Set(["Enter","Delete"," "]),Jp=new Set(["Tab"]),ef=new Set(["ArrowRight","ArrowLeft"]),Dl=new Set([Go,Uo,Qo,Xo,_o,Wo,Ko,$o]),tf=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),aR=jp(qp,Dl,ef,tf,Jp);var nf=["Home","End","PageUp","PageDown"],Sl=n=>nf.includes(n),Pl=n=>Dl.has(n);var Ml=n=>`.vuuTable-headers .vuuTable-headerCell:nth-child(${n+1})`,rf=(n,e)=>`.vuuTable-body > [aria-rowindex='${n}'] > [role='cell']:nth-child(${e+1})`,of=[-1,-1];function sf(n,[e,t],r,o){return n===$o?e>-1?[e-1,t]:[e,t]:n===_o?e===-1?[0,t]:e===o-1?[e,t]:[e+1,t]:n===Ko?t<r-1?[e,t+1]:[e,t]:n===Wo?t>0?[e,t-1]:[e,t]:[e,t]}var kl=({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=(0,le.useRef)([-1,-1]),u=(0,le.useRef)(),p=(0,le.useRef)([-1,0]),f=(0,le.useCallback)(([T,R])=>{var S;let D=T===-1?Ml(R):rf(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 of},b=(0,le.useCallback)(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()):(0,Ll.withinRange)(T[0],i)||(u.current=void 0,o==null||o({type:"scroll-page",direction:"up"}))}},[e,f,o,i]),y=(0,le.useCallback)((T,R,D=!1)=>{let S=[T,R];p.current=S,b(S),D&&(c.current=S)},[b]),g=(0,le.useCallback)(()=>{var T;(T=u.current)==null||T.setAttribute("tabindex",""),u.current=void 0},[]),v=(0,le.useCallback)(async(T,R)=>{switch(T){case Xo:o==null||o({type:"scroll-page",direction:"down"});break;case Qo:o==null||o({type:"scroll-page",direction:"up"});break;case Go:o==null||o({type:"scroll-end",direction:"home"});break;case Uo:o==null||o({type:"scroll-end",direction:"end"});break}return R},[o]),x=(0,le.useCallback)(()=>{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=(0,le.useCallback)(async T=>{let[R,D]=Sl(T)?await v(T,p.current):sf(T,p.current,n,s),[S,I]=p.current;(R!==S||D!==I)&&y(R,D,!0)},[n,v,s,y]),E=(0,le.useCallback)(T=>{r.length>0&&Pl(T.key)&&(T.preventDefault(),T.stopPropagation(),w(T.key))},[r,w]),m=(0,le.useCallback)(T=>{let R=T.target,D=d(R);if(D){let[S,I]=h(D);y(S,I)}},[y]),C=(0,le.useMemo)(()=>({onClick:m,onFocus:x,onKeyDown:E}),[m,x,E]);(0,le.useLayoutEffect)(()=>{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(0,le.useEffect)(()=>{var T;if(M&&u.current===void 0){let R=(T=e.current)==null?void 0:T.querySelector(Ml(0));R&&(R.setAttribute("tabindex","0"),u.current=R)}},[e,M]),C};var lt=require("@vuu-ui/vuu-utils"),Et=require("react");var Vt=require("react");var Bt=new Map,Ol=(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}},Il=new ResizeObserver(n=>{for(let e of n){let{target:t,borderBoxSize:r,contentBoxSize:o}=e,s=Bt.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=Ol(t,{height:i,width:a,contentHeight:l,contentWidth:c},d);b!==h&&(f=!0,p[d]=b)}f&&u&&u(p)}}});function Al(n,e,t,r=!1){let o=(0,Vt.useRef)(e),s=(0,Vt.useCallback)(i=>{let{width:a,height:l}=i.getBoundingClientRect(),{clientWidth:c,clientHeight:u}=i;return o.current.reduce((p,f)=>(p[f]=Ol(i,{width:a,height:l,contentHeight:u,contentWidth:c},f),p),{})},[]);(0,Vt.useEffect)(()=>{let i=n.current;async function a(){Bt.set(i,{measurements:{}}),await document.fonts.ready;let l=Bt.get(i);if(l){let c=s(i);l.measurements=c,Il.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(Bt.has(i))throw Error("useResizeObserver attemping to observe same element twice");a()}return()=>{i&&Bt.has(i)&&(Il.unobserve(i),Bt.delete(i))}},[s,n]),(0,Vt.useEffect)(()=>{let i=n.current,a=Bt.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 af=["clientHeight","clientWidth"],Hl=n=>Number.isFinite(n),lf={height:"100%",width:"100%"},cf=(n,e)=>(0,lt.isValidNumber)(n)&&(0,lt.isValidNumber)(e)?{height:`${n}px`,width:`${e}px`}:lf,uf=(n,e)=>{if((0,lt.isValidNumber)(n)&&(0,lt.isValidNumber)(e))return{height:n,width:e}},Zo=({defaultHeight:n=0,defaultWidth:e=0,height:t,width:r})=>{let o=(0,Et.useRef)(null),[s,i]=(0,Et.useState)({css:cf(t,r),inner:uf(t,r),outer:{height:t!=null?t:"100%",width:r!=null?r:"100%"}});(0,Et.useMemo)(()=>{i(l=>{let{inner:c,outer:u}=l;if((0,lt.isValidNumber)(t)&&(0,lt.isValidNumber)(r)&&c&&u){let{height:p,width:f}=c,{height:d,width:h}=u;if(d!==t||h!==r){let b=(0,lt.isValidNumber)(d)?d-p:0,y=(0,lt.isValidNumber)(h)?h-f:0;return{...l,outer:{height:t,width:r},inner:{height:t-b,width:r-y}}}}return l})},[t,r]);let a=(0,Et.useCallback)(({clientWidth:l,clientHeight:c})=>{i(u=>{let{css:p,inner:f,outer:d}=u;return Hl(c)&&Hl(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 Al(o,af,a,!0),{containerRef:o,cssSize:s.css,outerSize:s.outer,innerSize:s.inner}};var Rt=require("@vuu-ui/vuu-utils"),_n=require("react"),{IDX:pf}=Rt.metadataKeys,ff=[],Yo=({selectionModel:n,onSelectionChange:e})=>{let t=(0,_n.useRef)(-1),r=(0,_n.useRef)(ff);return(0,_n.useCallback)((s,i,a)=>{let{[pf]:l}=s,{current:c}=t,{current:u}=r,f=((0,Rt.isRowSelected)(s)?Rt.deselectItem:Rt.selectItem)(n,u,l,i,a,c);r.current=f,t.current=l,e&&e(f)},[e,n])};var Nl=require("@heswell/salt-lab"),K=require("@vuu-ui/vuu-utils"),zl=require("react"),{info:ER}=(0,K.logger)("useTableModel"),df=100,Fl=K.metadataKeys.count,mf=({serverDataType:n})=>n===void 0,hf=n=>{var e;if((0,K.isTypeDescriptor)(n.type))return(0,K.getCellRenderer)((e=n.type)==null?void 0:e.renderer)},Bl=(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"},gf=["int","long","double"],Vl=n=>n===void 0?void 0:gf.includes(n)?"right":"left",bf=n=>n.type==="columnSettings",yf=(n,e)=>{switch(e.type){case"init":return $l(e);case"moveColumn":return vf(n,e);case"resizeColumn":return Cf(n,e);case"setTableSchema":return Ef(n,e);case"hideColumns":return wf(n,e);case"showColumns":return Tf(n,e);case"pinColumn":return Rf(n,e);case"updateColumnProp":return mn(n,e);case"tableConfig":return _l(n,e);default:return console.log(`unhandled action ${e.type}`),n}},jo=(n,e)=>{let[t,r]=(0,zl.useReducer)(yf,{tableConfig:n,dataSourceConfig:e},$l);return{columns:t.columns,dispatchColumnAction:r,headings:t.headings}};function $l({dataSourceConfig:n,tableConfig:e}){let t=e.columns.map(qo(e)),r=t.some(K.isPinned)?(0,K.sortPinnedColumns)(t):t,o={columns:r,headings:(0,K.getTableHeadings)(r)};if(n){let{columns:s,...i}=n;return _l(o,{type:"tableConfig",...i})}else return o}var xf=(n,e)=>e==="uppercase"?n.toUpperCase():e==="capitalize"?n[0].toUpperCase()+n.slice(1).toLowerCase():n,qo=n=>(e,t)=>{let r=Bl(e,n.tableSchema),{columnDefaultWidth:o=df,columnFormatHeader:s}=n,{align:i=Vl(r),key:a,name:l,label:c=l,width:u=o,...p}=e,f={...p,align:i,CellRenderer:hf(e),label:xf(c,s),key:a!=null?a:t+Fl,name:l,originalIdx:t,serverDataType:r,valueFormatter:(0,K.getValueFormatter)(e),width:u};return(0,K.isGroupColumn)(f)&&(f.columns=f.columns.map(d=>qo(n)(d,d.key))),f};function vf(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:(0,Nl.moveItem)(o,s,r)}}return n}function wf(n,{columns:e}){return e.some(t=>t.hidden!==!0)?e.reduce((t,r)=>r.hidden!==!0?mn(t,{type:"updateColumnProp",column:r,hidden:!0}):t,n):n}function Tf(n,{columns:e}){return e.some(t=>t.hidden)?e.reduce((t,r)=>r.hidden?mn(t,{type:"updateColumnProp",column:r,hidden:!1}):t,n):n}function Cf(n,{column:e,phase:t,width:r}){let o="updateColumnProp",s=t!=="end";switch(t){case"begin":return mn(n,{type:o,column:e,resizing:s});case"end":return mn(n,{type:o,column:e,resizing:s,width:r});case"resize":return mn(n,{type:o,column:e,width:r});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${t}`)}}function Ef(n,{tableSchema:e}){let{columns:t}=n;if(t.some(mf)){let r=t.map(o=>{var i;let s=Bl(o,e);return{...o,align:(i=o.align)!=null?i:Vl(s),serverDataType:s}});return{...n,columns:r,tableSchema:e}}else return{...n,tableSchema:e}}function Rf(n,e){let{columns:t}=n,{column:r,pin:o}=e;return t=(0,K.updateColumn)(t,r.name,{pin:o}),t=(0,K.sortPinnedColumns)(t),console.log({withPins:t}),{...n,columns:t}}function mn(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=(0,K.updateColumn)(t,o.name,c),{...n,columns:t}}function _l(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=(0,K.getColumnName)(p),h=f+Fl,b=(0,K.findColumn)(u.columns,d);return b?b.key===h?b:{...b,key:h}:qo(n)({name:p},f)})}),a&&(u={...n,columns:(0,K.applyGroupByToColumns)(u.columns,o,t)}),c&&(u={...n,columns:(0,K.applySortToColumns)(u.columns,s)}),l?u={...n,columns:(0,K.applyFilterToColumns)(u.columns,r)}:u.columns.some(K.isFilteredColumn)&&(u={...n,columns:(0,K.stripFilterFromColumns)(u.columns)}),u}var Ce=require("react"),Wl=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]},Df=n=>{let{clientHeight:e,clientWidth:t,scrollHeight:r,scrollWidth:o}=n;return[o-t,r-e]},Kl=({onAttach:n,onDetach:e})=>{let t=(0,Ce.useRef)(null);return(0,Ce.useCallback)(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])},Gl=({onHorizontalScroll:n,onVerticalScroll:e,viewport:t})=>{let r=(0,Ce.useRef)(!1),o=(0,Ce.useRef)({scrollTop:0,scrollLeft:0}),s=(0,Ce.useRef)(null),i=(0,Ce.useRef)(null),{maxScrollContainerScrollHorizontal:a,maxScrollContainerScrollVertical:l}=t,c=(0,Ce.useCallback)(()=>{let{current:v}=i,{current:x}=s,{current:w}=r;if(w)r.current=!1;else if(v&&x){let[E,m]=Wl(x),[C,M]=Df(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=(0,Ce.useCallback)(()=>{let{current:v}=i,{current:x}=s,{current:w}=o;if(v&&x){let{scrollLeft:E,scrollTop:m}=v,[C,M]=Wl(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=(0,Ce.useCallback)(v=>{s.current=v,v.addEventListener("scroll",c,{passive:!0})},[c]),f=(0,Ce.useCallback)(v=>{s.current=null,v.removeEventListener("scroll",c)},[c]),d=(0,Ce.useCallback)(v=>{i.current=v,v.addEventListener("scroll",u,{passive:!0})},[u]),h=(0,Ce.useCallback)(v=>{i.current=null,v.removeEventListener("scroll",u)},[u]),b=Kl({onAttach:d,onDetach:h}),y=Kl({onAttach:p,onDetach:f}),g=(0,Ce.useCallback)(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}};var ct=require("react"),Lr=require("@vuu-ui/vuu-utils"),Sf=15e5,Pf={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},Mf=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}},Jo=({columns:n,headerHeight:e,headings:t,rowCount:r,rowHeight:o,size:s})=>{let i=(0,ct.useRef)(0),l=Math.min(r,Sf)*o,u=r*o-l,{pinnedWidthLeft:p,pinnedWidthRight:f,unpinnedWidth:d}=(0,ct.useMemo)(()=>Mf(n),[n]),[h,b]=(0,ct.useMemo)(()=>(0,Lr.actualRowPositioning)(o),[o]),[y,g]=(0,ct.useMemo)(()=>u?(0,Lr.virtualRowPositioning)(o,u,i):[h,b],[b,h,u,o]),v=(0,ct.useCallback)(x=>{i.current=x},[]);return(0,ct.useMemo)(()=>{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 Pf},[s,t.length,p,d,f,l,e,o,g,y,v])};var Wn=require("@vuu-ui/vuu-utils"),Me=require("react"),Ul=({columns:n,getRowAtPosition:e,setRange:t,viewportMeasurements:r})=>{let o=(0,Me.useRef)(-1),{rowCount:s,contentWidth:i,maxScrollContainerScrollHorizontal:a}=r,l=i-a,c=(0,Me.useRef)(0),[u,p]=(0,Me.useMemo)(()=>(0,Wn.getColumnsInViewport)(n,c.current,c.current+l),[l,n]),f=(0,Me.useRef)(p);(0,Me.useEffect)(()=>{h(u)},[u]);let[d,h]=(0,Me.useState)(u),b=(0,Me.useCallback)(g=>{c.current=g;let[v,x]=(0,Wn.getColumnsInViewport)(n,g,g+l);(0,Wn.itemsChanged)(d,v)&&(f.current=x,h(v))},[l,n,d]),y=(0,Me.useCallback)(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 Lf=[],{KEY:kf,IS_EXPANDED:Ql,IS_LEAF:Xl}=qe.metadataKeys,Yl=({config:n,dataSource:e,headerHeight:t,onConfigChange:r,onFeatureEnabled:o,onFeatureInvocation:s,onSelectionChange:i,renderBufferSize:a=0,rowHeight:l,selectionModel:c,...u})=>{var ne,j;let[p,f]=(0,te.useState)(e.size),d=(0,te.useRef)(!1),h=(0,te.useRef)();if(h.current=e,e===void 0)throw Error("no data source provided to Vuu Table");let b=Zo(u),y=(0,te.useCallback)($=>{f($)},[]),{columns:g,dispatchColumnAction:v,headings:x}=jo(n,e.config),{getRowAtPosition:w,getRowOffset:E,setPctScrollTop:m,...C}=Jo({columns:g,headerHeight:t,headings:x,rowCount:p,rowHeight:l,size:b.innerSize}),M=(0,te.useCallback)(({tableSchema:$})=>{$?(d.current=!0,v({type:"setTableSchema",tableSchema:$})):console.log("usbscription message with no schema")},[v]),P=(0,te.useCallback)($=>{e.select($),i==null||i($)},[e,i]),T=Yo({onSelectionChange:P,selectionModel:c}),{data:R,getSelectedRows:D,range:S,setRange:I}=Cl({dataSource:e,onFeatureEnabled:o,onFeatureInvocation:s,onSubscribed:M,onSizeChange:y,renderBufferSize:a,viewportRowCount:C.rowCount}),k=(0,te.useRef)();k.current=R;let L=(0,te.useCallback)($=>{d.current=!0,v($)},[v]),A=Fr({dataSource:e,onPersistentColumnOperation:L}),O=(0,te.useCallback)(($,q=!1,ce)=>{e&&(e.sort=(0,qe.applySort)(e.sort,$,q,ce))},[e]),B=(0,te.useCallback)(($,q,ce)=>{let ee=g.find(ge=>ge.name===q);if(ee)$==="end"&&(d.current=!0),v({type:"resizeColumn",phase:$,column:ee,width:ce});else throw Error(`useDataTable.handleColumnResize, column ${q} not found`)},[g,v]),V=(0,te.useCallback)(($,q)=>{let ce=(0,qe.isJsonGroup)(q,$),ee=$[kf];if($[Ql]){if(e.closeTreeNode(ee,!0),ce){let ge=g.indexOf(q);e.getRowsAtDepth(ge+1).some(be=>be[Ql]||be[Xl])||v({type:"hideColumns",columns:g.slice(ge+2)})}}else if(e.openTreeNode(ee),ce){let ge=e.getChildRows(ee),De=g.indexOf(q)+1,be=[g[De]];ge.some(Se=>Se[Xl])&&be.push(g[De+1]),be.some(Se=>Se.hidden)&&v({type:"showColumns",columns:be})}},[g,e,v]),{onVerticalScroll:F,onHorizontalScroll:W,columnsWithinViewport:Y,virtualColSpan:_}=Ul({columns:g,getRowAtPosition:w,setRange:I,viewportMeasurements:C}),J=(0,te.useCallback)(($,q)=>{m(q),F($)},[F,m]),{requestScroll:H,...N}=Gl({onHorizontalScroll:W,onVerticalScroll:J,viewport:C,viewportHeight:((j=(ne=b.innerSize)==null?void 0:ne.height)!=null?j:0)-t}),X=kl({columnCount:g.length,containerRef:b.containerRef,data:R,requestScroll:H,rowCount:e==null?void 0:e.size,viewportRange:S}),he=(0,te.useCallback)($=>{$?e&&e.groupBy.includes($.name)&&(e.groupBy=e.groupBy.filter(q=>q!==$.name)):e.groupBy=[]},[e]),Xe=(0,te.useCallback)(($,q)=>{let ce=e.columns[$],ee=(0,qe.moveItem)(e.columns,ce,q);ee!==e.columns&&(e.columns=ee,v({type:"tableConfig",columns:ee}))},[e,v]),G=Rl({onDrop:Xe});(0,te.useEffect)(()=>{h.current&&(d.current=!0,v({type:"init",tableConfig:n,dataSourceConfig:h.current.config}))},[n,v]),(0,te.useEffect)(()=>{e.on("config",($,q)=>{d.current=!0,v({type:"tableConfig",...$,confirmed:q})})},[e,v]),(0,te.useMemo)(()=>{d.current&&(r==null||r({...n,columns:g}),d.current=!1)},[g,n,r]);let[U]=(0,Zl.useContextMenu)(),oe=(0,te.useCallback)($=>{var be;let{current:q}=k,{current:ce}=h,ee=$.target,ge=ee==null?void 0:ee.closest("div[role='cell']"),De=ee==null?void 0:ee.closest(".vuuTableRow");if(ge&&De&&q&&ce){let{columns:Se,selectedRowsCount:Dt}=ce,Je=(0,qe.buildColumnMap)(Se),bn=parseInt((be=De.ariaRowIndex)!=null?be:"-1"),_t=Array.from(De.childNodes).indexOf(ge),He=q.find(([yn])=>yn===bn),Wt=Se[_t];U($,"grid",{columnMap:Je,columnName:Wt,row:He,selectedRows:Dt===0?Lf:D(),viewport:e==null?void 0:e.viewport})}},[e==null?void 0:e.viewport,D,U]);return{columns:g,columnsWithinViewport:Y,containerMeasurements:b,containerProps:X,data:R,dispatchColumnAction:v,getRowOffset:E,handleContextMenuAction:A,headings:x,onColumnResize:B,onContextMenu:oe,onRemoveColumnFromGroupBy:he,onRowClick:T,onSort:O,onToggleGroup:V,virtualColSpan:_,scrollProps:N,rowCount:p,viewportMeasurements:C,...G}};var ql=z(require("classnames"));var Jl=require("@vuu-ui/vuu-utils"),ut=require("react/jsx-runtime"),$t="vuuTable",If=({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=(0,kr.useIdMemo)(i),{containerMeasurements:{containerRef:w,innerSize:E,outerSize:m},containerProps:C,dispatchColumnAction:M,draggable:P,draggedItemIndex:T,handleContextMenuAction:R,scrollProps:D,viewportMeasurements:S,...I}=Yl({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=(0,ql.default)($t,e,{[`${$t}-zebra`]:g,[`${$t}-loading`]:(0,Jl.isDataLoading)(I.columns)});return(0,ut.jsx)(jl.ContextMenuProvider,{menuActionHandler:R,menuBuilder:Nr(r),children:(0,ut.jsxs)("div",{...v,...C,className:L,id:x,ref:w,style:k,tabIndex:-1,children:[E?(0,ut.jsx)("div",{className:`${$t}-scrollbarContainer`,ref:D.scrollbarContainerRef,children:(0,ut.jsx)("div",{className:`${$t}-scrollbarContent`})}):null,E?(0,ut.jsxs)("div",{className:`${$t}-contentContainer`,ref:D.contentContainerRef,children:[(0,ut.jsx)(il,{...I,headerHeight:o,tableId:x}),P]}):null,n&&E?(0,ut.jsx)(kr.Button,{className:`${$t}-settings`,"data-icon":"settings",onClick:p,variant:"secondary"}):null]})})};var ec=z(require("classnames")),gn=require("@vuu-ui/vuu-utils");var hn=require("react/jsx-runtime"),Kn="vuuJsonCell",{IS_EXPANDED:Of,KEY:Af}=gn.metadataKeys,Hf=n=>{let e=n.lastIndexOf("|");return e===-1?"":n.slice(e+1)},Nf=({column:n,row:e})=>{let{key:t}=n,r=e[t],o=!1;(0,gn.isJsonAttribute)(r)&&(r=r.slice(0,-1),o=!0);let s=Hf(e[Af]),i=(0,ec.default)({[`${Kn}-name`]:s===r,[`${Kn}-value`]:s!==r,[`${Kn}-group`]:o});if(o){let a=e[Of]?"minus-box":"plus-box";return(0,hn.jsxs)("span",{className:i,children:[(0,hn.jsx)("span",{className:`${Kn}-value`,children:r}),(0,hn.jsx)("span",{className:`${Kn}-toggle`,"data-icon":a})]})}else return r?(0,hn.jsx)("span",{className:i,children:r}):null};(0,gn.registerComponent)("json",Nf,"cell-renderer",{});
17
+ `,document.body.insertBefore(e,n)}}var er=class{constructor(){this.currentPath=null;this.tabMode=null;np()}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=Ni(r),s=document.getElementById("vuu-drop-outline");s==null||s.setAttribute("d",o),this.currentPath=o}clear(){Jn=null,Nr(),document.body.classList.remove("drawing"),Hr.PopupService.hidePopup()}get hoverDropTarget(){return Jn}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=Zo;if(Jn!==null)this.drawTarget(Jn);else if(Zo=e.nextDropTarget!=null,e.pos.tab?rp(e):Ue&&Nr(),this.drawTarget(e,t),Zo){let[s,i,l]=Oi(e);{let a=(0,$i.jsx)(Hi,{dropTarget:e,onHover:qd,orientation:l});Hr.PopupService.showPopup({left:s,top:i,component:a})}}else Hr.PopupService.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=Ni(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",tp(d))}}},zi="transition:margin-left .4s ease-out;margin-left: 63px",Fi="transition:margin-left .4s ease-out;margin-left: 0px";function rp(n){var l,a;let{AFTER:e,BEFORE:t}=Uo,{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?(Ue===null||Ue!==i)&&(i.style.cssText=zi,Ue&&(Ue.style.cssText=Fi),Ue=i):Nr()}else if((o==null?void 0:o.positionRelativeToTab)===t){if(Ue===null){let c=".vuuHeader-title";i=(a=document.getElementById(s))==null?void 0:a.querySelector(c),i.style.cssText=zi,Ue=i}}else Nr()}function Nr(){Ue&&(Ue.style.cssText=Fi,Ue=null)}var dy=new er;var Bi=V(require("classnames")),Ki=require("react");var Gi=require("react/jsx-runtime"),Wi=(0,Ki.forwardRef)(function({children:e,className:t,dropTarget:r,resizeable:o,...s},i){let l=(0,Bi.default)("DraggableLayout",t);return(0,Gi.jsx)("div",{className:l,ref:i,...s,children:e})}),_i="DraggableLayout";Wi.displayName=_i;pe(_i,Wi,"container");var il=require("@salt-ds/core"),ll=V(require("classnames")),al=require("react");var ol=require("@vuu-ui/vuu-utils"),ie=V(require("react"));var Xi=V(require("classnames"));var Qi=require("react/jsx-runtime"),Ui="vuuPlaceholder",zr=({className:n,closeable:e,flexFill:t,resizeable:r,shim:o,...s})=>(0,Qi.jsx)("div",{className:(0,Xi.default)(Ui,n,{[`${Ui}-shim`]:o}),...s,"data-placeholder":!0,"data-resizeable":!0});zr.displayName="Placeholder";pe("Placeholder",zr);var Zi=V(require("classnames")),Ce=V(require("react"));var Yo=require("react/jsx-runtime"),Yi=Ce.default.memo(function({column:e,index:t,onDrag:r,onDragEnd:o,onDragStart:s,style:i}){let l=(0,Ce.useRef)(),a=(0,Ce.useRef)(null),c=(0,Ce.useRef)(0),[u,p]=(0,Ce.useState)(!1),d=(0,Ce.useCallback)(({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=(0,Ce.useCallback)(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=(0,Ce.useRef)(f),h=g=>m.current(g),x=(0,Ce.useCallback)(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=(0,Ce.useCallback)(()=>{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=(0,Ce.useCallback)(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=(0,Zi.default)("Splitter","focusable",{active:u,column:e});return(0,Yo.jsx)("div",{className:T,"data-splitter":!0,ref:a,role:"separator",style:i,onBlur:b,onClick:y,onKeyDown:h,onMouseDown:C,tabIndex:0,children:(0,Yo.jsx)("div",{className:"grab-zone"})})});var op=require("@vuu-ui/vuu-utils"),sp=V(require("react"));var qi={},ji="auto";var fn=n=>{let{style:{width:e=ji,height:t=ji}=qi}=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 Ji(n){let{style:{flex:e,flexGrow:t,flexShrink:r,flexBasis:o}=qi}=n.props;return typeof e=="number"||o===0&&t===1&&r===1?!0:typeof o!="number"}var ip={},nr=1,rr=2,lp=n=>typeof n.intrinsicSize=="number",ap=(n,e)=>{let t={};return n.forEach(r=>{t[r]=at(e,r)}),t},Fr=(n,e,t)=>n.map((r,o)=>{var a;let s=at(r,"resizeable"),{[e]:i}=(a=fn(r))!=null?a:ip,l=Ji(r);return t?{index:o,flexOpen:l,intrinsicSize:i,resizeable:s,...ap(t,r)}:{index:o,flexOpen:l,intrinsicSize:i,resizeable:s}}),el=n=>{let e=n.length,t=n.every(lp),r=Array(e).fill(0);if(t&&e>0&&(r[0]=rr,r[e-1]=rr),e<2)return r;for(let o=0,s=0;o<e-1;o++)n[o].resizeable&&!s&&(s=nr),r[o]+=s;for(let o=e-1;o>0&&(r[o]&nr&&(r[o]-=nr),!n[o].resizeable);o--);return r},tl=(n,e)=>{let t=up(n,e),r=dp(n,e),o=t!==-1&&r!==-1?[t,r]:void 0,s=cp(n,o);return[o,s]};function cp(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 up(n,e){let t=e,r=!1;for(;t>=1&&!r;)t=t-1,r=nl(n,t);return t}function dp(n,e){let t=e,r=!1,o=n.length;for(;t<o-1&&!r;)t=t+1,r=nl(n,t);return t===o?-1:t}function nl(n,e){let{placeholder:t,splitter:r,resizeable:o,intrinsicSize:s}=n[e];return!!(!r&&!s&&(t||o))}var pp=n=>!n.splitter&&!n.placeholder,sl=({children:n,onSplitterMoved:e,style:t})=>{let r=(0,ie.useRef)(null),o=(0,ie.useRef)(),s=(0,ie.useRef)(),i=(0,ie.useRef)([]),[,l]=(0,ie.useState)({}),a=x=>{s.current=x,l({})},c=(t==null?void 0:t.flexDirection)==="column",u=c?"height":"width",p=(0,ie.useMemo)(()=>Array.isArray(n)?n:ie.default.isValidElement(n)?[n]:[],[n]),d=(0,ie.useCallback)(x=>{let{current:v}=o;if(v){let[C,y]=tl(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}=gp(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=(0,ie.useCallback)((x,v)=>{s.current&&o.current&&a(mp(s.current,o.current,v,u))},[u]),m=(0,ie.useCallback)(()=>{let x=o.current;x&&(e==null||e(x.filter(pp))),x==null||x.forEach(v=>{v.currentSize=void 0,v.flexBasis=void 0,v.flexOpen=!1})},[e]),h=(0,ie.useCallback)(x=>ie.default.createElement(Yi,{column:c,index:x,key:`splitter-${x}`,onDrag:f,onDragEnd:m,onDragStart:d}),[f,m,d,c]);return(0,ie.useMemo)(()=>{let[x,v]=fp(p,u,h,i.current);o.current=v,s.current=x},[p,h,u]),{content:s.current||[],rootRef:r}};function fp(n,e,t,r){let o=Fr(n,e),s=el(o),i=[],l=[];for(let a=0;a<n.length;a++){let c=n[a];if(a===0&&s[a]&rr&&(i.push(rl(a)),l.push({placeholder:!0,shim:!0})),c.key==null){let u=r[a]||(r[a]=(0,ol.getUniqueId)());i.push(ie.default.cloneElement(c,{key:u}))}else i.push(c);l.push(o[a]),a>0&&s[a]&rr?(i.push(rl(a)),l.push({placeholder:!0})):s[a]&nr&&(i.push(t(i.length)),l.push({splitter:!0}))}return[i,l]}function mp(n,e,t,r){return hp(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?ie.default.cloneElement(s,{style:{...s.props.style,flexBasis:f,[r]:"auto"}}):s}else return s}):n}function hp(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 rl(n){return ie.default.createElement(zr,{shim:n===0,key:`placeholder-${n}`})}function gp(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}}var ul=require("react/jsx-runtime"),qo="hwFlexbox",cl=(0,al.forwardRef)(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}=sl({children:o,onSplitterMoved:p,style:x}),b=(0,ll.default)(qo,i,{[`${qo}-column`]:s,[`${qo}-row`]:f,"flex-fill":l,"full-page":c});return(0,ul.jsx)("div",{...v,className:b,"data-resizeable":d||void 0,id:u,ref:(0,il.useForkRef)(y,t),style:{...x,gap:a,"--spacing":m},children:C})});cl.displayName="Flexbox";var Jo=cl;var gl=require("react");var $r={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"};var hn=require("react");var Lp=V(require("react"));var xp=require("@vuu-ui/vuu-utils"),vp=V(require("react"));var bp=require("@vuu-ui/vuu-utils"),dl=V(require("react"));var $t=require("react"),ze=new Map,Fe=new Map;var mn=()=>{let n=(0,$t.useCallback)((i,l)=>{let a=Fe.get(i);if(a)return l!==void 0&&a[l]!==void 0?a[l]:l!==void 0?void 0:a},[]),e=(0,$t.useCallback)((i,l,a)=>{if(l===void 0)Fe.set(i,a);else if(Fe.has(i)){let c=Fe.get(i);Fe.set(i,{...c,[l]:a})}else Fe.set(i,{[l]:a})},[]),t=(0,$t.useCallback)((i,l)=>{if(Fe.has(i)){if(l===void 0)Fe.delete(i);else if(Fe.get(i)[l]){let{[l]:c,...u}=Fe.get(i);Object.keys(u).length>0?Fe.set(i,u):Fe.delete(i)}}},[]),r=(0,$t.useCallback)((i,l)=>{let a=ze.get(i);if(a)return l!==void 0?a[l]:a},[]),o=(0,$t.useCallback)((i,l,a)=>{if(l===void 0)ze.set(i,a);else if(ze.has(i)){let c=ze.get(i);ze.set(i,{...c,[l]:a})}else ze.set(i,{[l]:a})},[]),s=(0,$t.useCallback)((i,l)=>{if(ze.has(i)){if(l===void 0)ze.delete(i);else if(ze.get(i)[l]){let{[l]:c,...u}=ze.get(i);Object.keys(u).length>0?ze.set(i,u):ze.delete(i)}}},[]);return{loadSessionState:n,loadState:r,saveSessionState:e,saveState:o,purgeState:s,purgeSessionState:t}};var wp=require("react");var Tp=V(require("react"));var Ep=V(require("react"));var Rp=V(require("react"));var Dp=require("@vuu-ui/vuu-utils"),Mp=V(require("react"));var fl=require("react"),kp=n=>console.log(`dispatch ${n.type}, have you forgotten to provide a LayoutProvider ?`),ml=(0,fl.createContext)({dispatchLayoutProvider:kp,version:-1});var hl=require("react");var Ip=require("react/jsx-runtime");var $e=()=>{let{dispatchLayoutProvider:n}=(0,hn.useContext)(ml);return n};var yl=require("react/jsx-runtime"),bl=function(e){let{path:t}=e,r=$e(),o=(0,gl.useCallback)(s=>{r({type:$r.SPLITTER_RESIZE,path:t,sizes:s})},[r,t]);return(0,yl.jsx)(Jo,{...e,onSplitterMoved:o})};bl.displayName="Flexbox";pe("Flexbox",bl,"container");var Rl=require("@salt-ds/core"),Dl=V(require("classnames")),Kr=require("react");var Xe=require("react");var Bt=require("react"),vl=["height","width"];var Vt=new WeakMap,Cl=(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}},xl=new ResizeObserver(n=>{for(let e of n){let{target:t,contentRect:r}=e,o=Vt.get(t);if(o){let{onResize:s,measurements:i}=o,l=!1;for(let[a,c]of Object.entries(i)){let u=Cl(t,r,a);u!==c&&(l=!0,i[a]=u)}l&&s&&s(i)}}});function Vr(n,e,t,r=!1){console.log("resizeObserver container",{ref:n.current});let o=(0,Bt.useRef)(e),s=(0,Bt.useCallback)(i=>{let l=i.getBoundingClientRect();return o.current.reduce((a,c)=>(a[c]=Cl(i,l,c),a),{})},[]);(0,Bt.useLayoutEffect)(()=>{let i=n.current,l=!1;async function a(){Vt.set(i,{measurements:{}}),l=!1;let{fonts:c}=document;if(c&&await c.ready,!l){let u=Vt.get(i);if(u){let p=s(i);u.measurements=p,xl.observe(i),r&&t(p)}}}if(i){if(Vt.has(i))throw Error("useResizeObserver attemping to observe same element twice");a()}return()=>{i&&Vt.has(i)&&(xl.unobserve(i),Vt.delete(i),l=!0)}},[n,s,r,t]),(0,Bt.useLayoutEffect)(()=>{let i=n.current,l=Vt.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 Ap(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 Op=([,n],[,e])=>e-n,rs=n=>Object.entries(n).sort(Op).map(([e,t],r,o)=>[e,t,r<o.length-1?o[r+1][1]:9999]),ns=null,Hp=(n="salt")=>{let{xs:e,sm:t,md:r,lg:o,xl:s}=Ap(n);return rs({xs:e,sm:t,md:r,lg:o,xl:s})},Tl=n=>(ns===null&&(ns=Hp(n)),ns);var Np=[],wl=({breakPoints:n,smallerThan:e},t)=>{let[r,o]=(0,Xe.useState)(e?!1:"lg"),s=(0,Xe.useRef)(document.body),i=(0,Xe.useRef)(n?rs(n):Tl()),l=(0,Xe.useRef)("lg"),a=(0,Xe.useCallback)(u=>{if(i.current){for(let[p,d]of i.current)if(u>=d)return p}},[i]),c=(0,Xe.useCallback)(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 Vr(t||s,i.current?["width"]:Np,({width:u})=>{let p=c(u);p!==l.current&&(l.current=p,o(p))},!0),(0,Xe.useEffect)(()=>{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 zp="data-collapsible",LC={[zp]:!0,"data-pad-start":!0,"data-pad-end":!0};var Sl=require("@vuu-ui/vuu-utils"),Ae=require("react");var Fp=["xs","sm","md","lg","xl"],$p=12,El=({children:n,cols:e,style:t})=>{let r=(0,Ae.useRef)(null),o=(0,Ae.useRef)(null),s=(0,Ae.useRef)(),i=e!=null?e:$p,a=(t==null?void 0:t.flexDirection)==="column"?"height":"width",c=(0,Ae.useMemo)(()=>Array.isArray(n)?n:(0,Ae.isValidElement)(n)?[n]:[],[n]),u=(0,Ae.useCallback)((p,d)=>{let f=Fr(p,d,Fp),m=[],h=[];for(let x=0;x<p.length;x++){let v=p[x],{style:{flex:C,...y}}=v.props;m.push((0,Ae.cloneElement)(v,{key:(0,Sl.getUniqueId)(),style:{...y,"--parent-col-count":i}})),h.push(f[x])}return[m,h]},[i]);return(0,Ae.useMemo)(()=>{let[p,d]=u(c,a);o.current=d,s.current=p},[u,c,a]),{cols:i,content:s.current,rootRef:r}};var Ml=require("react/jsx-runtime"),Br="hwFluidGrid",os=(0,Kr.forwardRef)(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=(0,Kr.useMemo)(()=>pn(o),[o]),{cols:T,content:g,rootRef:w}=El({children:b,cols:i,style:C}),D=wl({breakPoints:r},w),P=(0,Dl.default)(Br,l,{[`${Br}-column`]:s,[`${Br}-row`]:m,[`${Br}-show-grid`]:h,"flex-fill":a,"full-page":u}),E={...C,"--spacing":x,"--grid-col-count":T,"--grid-gap":c};return(0,Ml.jsx)("div",{...y,className:P,"data-breakpoint":D,"data-cols":T,"data-resizeable":f||void 0,id:p,ref:(0,Rl.useForkRef)(w,t),style:E,children:g})});os.displayName="FluidGrid";var Ll=require("react/jsx-runtime"),Pl=function(e){return(0,Ll.jsx)(os,{...e})};Pl.displayName="FluidGrid";pe("FluidGrid",Pl,"container");var zl=require("@salt-ds/core"),Ur=V(require("classnames")),wt=V(require("react"));var Tt=require("react");var Wr=(n,e,t,r)=>{var x;let{loadSessionState:o,purgeSessionState:s,purgeState:i,saveSessionState:l}=mn(),[a,c]=(0,Tt.useState)((x=o(n,"contributions"))!=null?x:[]),u=$e(),p=(0,Tt.useCallback)((v,C)=>{let y=a.concat([{location:v,content:C}]);l(n,"contributions",y),c(y)},[a,n,l]),d=(0,Tt.useCallback)(()=>{s(n,"contributions"),c([])},[n,s]),f=(0,Tt.useCallback)(()=>{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=(0,Tt.useCallback)(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[(0,Tt.useCallback)(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]};var Gr=require("@salt-ds/core"),Ol=V(require("classnames")),Te=V(require("react"));var Qe=require("react");var kl=({id:n,rootRef:e,path:t,dropTargets:r,title:o})=>{let s=$e(),{loadState:i,loadSessionState:l,purgeState:a,saveState:c,saveSessionState:u}=mn(),[p,d]=Wr(n,e,t,r),f=(0,Qe.useMemo)(()=>{var g;return(g=i("view-title"))!=null?g:o},[i,o]),m=(0,Qe.useCallback)(g=>{t&&s({type:"set-title",path:t,title:g})},[s,t]),h=(0,Qe.useMemo)(()=>i(n),[n,i]),x=(0,Qe.useCallback)(g=>i(n,g),[n,i]),v=(0,Qe.useCallback)(g=>{a(n,g),s({type:"save"})},[n,s,a]),C=(0,Qe.useCallback)((g,w)=>{c(n,w,g),s({type:"save"})},[n,s,c]),y=(0,Qe.useCallback)(g=>l(n,g),[n,l]),b=(0,Qe.useCallback)((g,w)=>u(n,w,g),[n,u]),T=(0,Qe.useCallback)(({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}};var gn=require("react"),Vp=[],Il=({mainRef:n,resize:e="responsive",rootRef:t})=>{let r=e==="defer",o=(0,gn.useRef)({}),s=(0,gn.useRef)(),i=(0,gn.useCallback)(()=>{n.current&&(n.current.style.height=o.current.height+"px",n.current.style.width=o.current.width+"px"),s.current=void 0},[n]),l=(0,gn.useCallback)(({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]);Vr(t,r?vl:Vp,l,r)};var _r=V(require("react")),Bp={dispatch:null},ss=_r.default.createContext(Bp),Al=()=>{var e;let n=(0,_r.useContext)(ss);return(e=n==null?void 0:n.dispatch)!=null?e:null};var bn=require("react/jsx-runtime"),or="vuuView",Kp=(n,e)=>n&&e?{...n,...e}:n||e,Hl=(0,Te.forwardRef)(function(e,t){let{Header:r=Nl,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=(0,Gr.useIdMemo)(f),D=(0,Te.useRef)(null),P=(0,Te.useRef)(null),[E,R]=(0,Te.useState)(),{contributions:S,dispatchViewAction:M,load:I,loadSession:L,onConfigChange:k,onEditTitle:O,purge:A,restoredState:N,save:H,saveSession:B,title:z}=kl({id:w,rootRef:D,path:x,dropTargets:u,title:T});Il({mainRef:P,resize:v,rootRef:D});let K=(0,Te.useCallback)($=>{R($)},[]),_=()=>Te.default.isValidElement(o)&&(N||E)?Te.default.cloneElement(o,Kp(N,E)):o,q=(0,Te.useMemo)(()=>({dispatch:M,id:w,path:x,title:z,load:I,loadSession:L,onConfigChange:k,purge:A,save:H,saveSession:B,setComponentProps:K}),[M,w,I,L,k,x,A,H,B,K,z]),F=typeof m=="object"?m:{};return(0,bn.jsx)("div",{...g,className:(0,Ol.default)(or,s,{[`${or}-collapsed`]:i,[`${or}-expanded`]:p,[`${or}-resize-defer`]:v==="defer"}),"data-resizeable":C,id:w,ref:(0,Gr.useForkRef)(t,D),style:b,tabIndex:-1,children:(0,bn.jsxs)(ss.Provider,{value:q,children:[m?(0,bn.jsx)(r,{...F,collapsed:i,contributions:S,expanded:p,closeable:l,onEditTitle:O,orientation:h,tearOut:y,title:z}):null,(0,bn.jsx)("div",{className:`${or}-main`,ref:P,children:_()})]})})});Hl.displayName="View";var yn=Te.default.memo(Hl);yn.displayName="View";pe("View",yn,"view");var xn=require("react/jsx-runtime"),Nl=({className:n,contributions:e,collapsed:t,closeable:r,onEditTitle:o,orientation:s="horizontal",style:i,title:l="Untitled"})=>{let a=(0,wt.useRef)(null),[c,u]=(0,wt.useState)(l),[p,d]=(0,wt.useState)(!1),f=Al(),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=(0,Ur.default)(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(wt.default.cloneElement(R.content,{key:S}));break;default:P.push(wt.default.cloneElement(R.content,{key:S}))}}),l&&D.push((0,xn.jsx)(dn,{editing:p,value:c,onChange:u,onMouseDownCapture:x,onEnterEditMode:b,onExitEditMode:g,onKeyDown:T,ref:a,tabIndex:0},"title")),r&&E.push((0,xn.jsx)(zl.Button,{"data-icon":"close",onClick:m,onMouseDown:v,variant:"secondary"},"close")),P.length>0&&D.push((0,xn.jsx)("div",{className:"vuuTooltrayProxy","data-align":"end",children:P},"contributions")),E.length>0&&D.push((0,xn.jsx)("div",{className:"vuuTooltrayProxy","data-align":"end",children:E},"actions")),(0,xn.jsx)("div",{className:(0,Ur.default)("vuuToolbarProxy",y),style:i,onMouseDown:w,children:D})};var Ql=require("@vuu-ui/vuu-popups"),ir=V(require("classnames")),Zr=V(require("react"));var Qr=require("@vuu-ui/vuu-utils"),Ze=require("react");var Wp=".vuuOverflowContainer-item:not(.wrapped)",_p=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}),is=[],sr=(n,e="horizontal")=>{let t=[],r=[],o=-1,s=!1,i=_p(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]},Fl=(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")}},Gp=(n,{overflowPriority:e})=>Math.max(n,parseInt(e)),Up=(n,{overflowPriority:e})=>Math.min(n,parseInt(e)),$l=n=>{var e;return n.length>1&&((e=n.at(-1))==null?void 0:e.index)==="overflow"},Xp=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},Vl=(n,e)=>{var o;let t=n.reduce(Up,Number.MAX_SAFE_INTEGER);return e.reduce(Gp,0)>t?!0:e.length>1&&((o=e.at(-1))==null?void 0:o.index)==="overflow"},Bl=(n,e)=>new Promise(t=>{requestAnimationFrame(()=>{let[,r]=sr(n);Yp(e,r).forEach(s=>Qp(n,s)),t(r)})}),Kl=(n,e,t)=>new Promise(r=>{requestAnimationFrame(()=>{let[,o]=sr(n),s=Xp(o);if(s){let[i,l]=ls(n,s);r([i,l])}else r([e,t])})}),Wl=(n,e)=>n.querySelector(`[data-index="${e.index}"]`),Qp=(n,e)=>{let t=Wl(n,e);if(t)t.classList.add("wrapped");else throw Error(`markElementAsWrapped element item with index ${e.index} not found`)},Zp=n=>Array.from(n.querySelectorAll(".wrapped")),Yp=(n,e)=>{let t=[];for(let r of e)n.find(({index:o})=>o===r.index)||t.push(r);return t},jp=(n,e)=>{Zp(n).forEach(r=>{let{dataset:{index:o="?"}}=r;e.find(s=>s.index===o)||r.classList.remove("wrapped")})},_l=n=>n.querySelector('[data-index="overflow"]'),qp=n=>n.querySelector(".wrapped"),Xr=n=>parseInt(getComputedStyle(n).getPropertyValue("width")),Gl=(n,e)=>{let{right:t}=n.getBoundingClientRect(),r=parseInt(getComputedStyle(n).getPropertyValue("padding-right")),{right:o}=e.getBoundingClientRect();return t-r-o},Ul=n=>{let e=_l(n),t=Gl(n,e),r=Xr(e),o=qp(n);return Xr(o)<=t+r?(n.classList.remove("overflowed"),o.classList.remove("wrapped"),!0):!1},Jp=(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)},ef=n=>Array.from(n.querySelectorAll(Wp)).sort(Jp),ls=(n,e)=>{let t=ef(n),r=Wl(n,e),o=-1,s=t.at(o),i=Xr(s),l=Xr(r),a=_l(n),c=Gl(n,a)+i;if(c>=l)tf(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]=sr(n);return jp(n,p),[u,p]},tf=(n,e)=>{if(!n||!e)throw Error("switchWrapOnElements, element undefined");n.classList.remove("wrapped"),e.classList.add("wrapped")};var Xl=({itemCount:n,onSwitchWrappedItemIntoView:e,orientation:t="horizontal"})=>{let[r,o]=(0,Ze.useState)(null),s=(0,Ze.useRef)(is),i=(0,Ze.useCallback)(async()=>{if(r){let[d,f]=sr(r,t);for(console.log({nonWrapped:d,wrapped:f}),Fl(r,f),$l(f)&&(f=await Bl(r,f));Vl(d,f);)[d,f]=await Kl(r,d,f);f.length===1&&Ul(r)&&(f=is),s.current=f}},[r,t]),l=d=>typeof d=="object"&&d!==null&&"overflowItem"in d,[a,c]=(0,Ze.useMemo)(()=>[()=>{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]=ls(r,d.overflowItem);s.current=f,e==null||e(d.overflowItem)}return!0}],[r,e]),u=(0,Ze.useMemo)(()=>{let{sizeProp:d}=Qr.MEASURES[t],f=0;return new ResizeObserver(m=>{for(let h of m){let{[d]:x}=h.contentRect;(0,Qr.isValidNumber)(x)&&f!==x&&(f=x,i())}})},[i,t]);Ii(()=>{i()},[i,n]),(0,Ze.useMemo)(()=>{r&&u.observe(r)},[r,u]);let p=(0,Ze.useCallback)(d=>{o(d)},[]);return{menuActionHandler:c,menuBuilder:a,rootRef:p}};var St=require("react/jsx-runtime"),vn="vuuOverflowContainer",Zl=Zr.default.memo(({children:n,className:e,height:t,onSwitchWrappedItemIntoView:r,orientation:o="horizontal",overflowIcon:s})=>{let i=pn(n),{menuActionHandler:l,menuBuilder:a,rootRef:c}=Xl({itemCount:i.length,onSwitchWrappedItemIntoView:r,orientation:o}),p={"--overflow-container-height":`${o==="vertical"?"100%":`${t}px`}`},d=(0,ir.default)(`${vn}-wrapContainer`,e,{[`${vn}-horizontal`]:o==="horizontal",[`${vn}-vertical`]:o==="vertical"});return(0,St.jsxs)("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(0,St.jsx)("div",{className:(0,ir.default)(`${vn}-item`),"data-index":m,"data-label":v,"data-overflow-priority":h,id:`${x}-wrapper`,children:f},m)}),(0,St.jsx)("div",{className:`${vn}-OverflowIndicator`,"data-index":"overflow",children:(0,St.jsx)(Ql.PopupMenu,{icon:s,menuBuilder:a,menuActionHandler:l})})]})});Zl.displayName="OverflowContainer.InnerContainer";var Yl=(0,Zr.forwardRef)(function({children:e,className:t,height:r=44,onSwitchWrappedItemIntoView:o,orientation:s,overflowIcon:i,...l},a){return(0,St.jsx)("div",{...l,className:(0,ir.default)((0,ir.default)(vn,t)),ref:a,children:(0,St.jsx)(Zl,{height:r,orientation:s,overflowIcon:i,onSwitchWrappedItemIntoView:o,children:e})})});var jl=require("@vuu-ui/vuu-utils"),jr=require("@salt-ds/lab"),as=V(require("classnames")),qr=require("react");var Yr=require("react/jsx-runtime"),nf=n=>{let e=n.cloneNode(!0);return e.id="",delete e.dataset.idx,e},ql=(0,qr.memo)(({className:n,children:e,idx:t,resizeable:r,header:o,closeable:s,...i})=>(0,Yr.jsx)(jr.ListItem,{className:(0,as.default)("vuuPaletteItem",n),"data-draggable":!0,...i}));ql.displayName="PaletteItem";var rf=({children:n,className:e,orientation:t="horizontal",ViewProps:r,...o})=>{let s=$e(),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=(0,jl.uuid)(),g=m?f:(0,Yr.jsx)(yn,{...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:nf(u),evt:a.nativeEvent,instructions:{DoNotRemove:!0,DoNotTransform:!0,RemoveDraggableOnDragEnd:!0,dragThreshold:10},path:"*",payload:g,type:"drag-start"})}return(0,Yr.jsx)(jr.List,{...o,borderless:!0,className:(0,as.default)(i,e,`${i}-${t}`),maxHeight:800,selected:null,children:n.map((a,c)=>a.type===ql?(0,qr.cloneElement)(a,{key:c,onMouseDown:l}):a)})};pe("Palette",rf,"view");var ea=V(require("classnames")),Et=V(require("react"));var lr=require("react/jsx-runtime"),Jl="Tabs",of=()=>{},sf=(n,e)=>{var t,r;return(r=(t=n.props)==null?void 0:t.title)!=null?r:`Tab ${e+1}`},lf=n=>{let e=[];return Et.default.Children.forEach(n,t=>{Et.default.isValidElement(t)?e.push(t):console.warn("Stack has unexpected child element type")}),e},af={allowAddTab:!1,allowCloseTab:!1,allowRenameTab:!1},cs=(0,Et.forwardRef)(function({active:e=0,children:t,className:r,getTabIcon:o=of,getTabLabel:s=sf,id:i,keyBoardActivation:l="manual",onAddTab:a,onMoveTab:c,onTabClose:u,onTabEdit:p,onTabSelectionChanged:d,showTabs:f="top",style:m,TabstripProps:h=af},x){var E;let v=Or(i),{allowCloseTab:C,allowRenameTab:y}=h,b=(0,Et.useCallback)((R,S,M,I)=>{p==null||p(I,S)},[p]),T=()=>{var R;return Et.default.isValidElement(t)?t:Array.isArray(t)&&(R=t[e])!=null?R:null},g=()=>lf(t).map((R,S)=>{let M=`${v}-${S}`,{closeable:I=C,id:L}=R.props;return(0,lr.jsx)(na,{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(0,lr.jsxs)("div",{className:(0,ea.default)(Jl,r,{[`${Jl}-horizontal`]:D}),style:m,id:v,ref:x,children:[f?(0,lr.jsx)(ta,{...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]})});cs.displayName="Stack";var ra=require("@salt-ds/core"),Rt=V(require("react"));var Jr=require("react/jsx-runtime"),cf=n=>(0,Jr.jsx)(yn,{resizeable:!0,title:`Tab ${n}`,style:{flexGrow:1,flexShrink:0,flexBasis:0},header:!0,closeable:!0,children:(0,Jr.jsx)(Wo,{style:{flex:1}})}),oa=n=>{let e=(0,Rt.useRef)(null),t=$e(),{loadState:r}=mn(),{createNewChild:o=cf,id:s,onTabSelectionChanged:i,path:l,...a}=n,{children:c}=n,u=(0,ra.useIdMemo)(s),[p]=Wr(u,e,l),d=y=>{l&&(t({type:"switch-tab",path:l,nextIdx:y}),i==null||i(y))},f=(0,Rt.useCallback)(y=>{if(Array.isArray(c)){let{props:{"data-path":b,path:T=b}}=c[y];t({type:"remove",path:T})}},[c,t]),m=(0,Rt.useCallback)(()=>{if(l){let y=Rt.default.Children.count(c),b=o(y);t({type:"add",path:l,component:b})}},[c,o,t,l]),h=(0,Rt.useCallback)((y,b)=>{l&&t({fromIndex:y,toIndex:b,path:l,type:"move-child"})},[t,l]);return(0,Jr.jsx)(cs,{...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})};oa.displayName="Stack";pe("Stack",oa,"container");var sa=V(require("react"));var ia=require("react/jsx-runtime");var la=require("@salt-ds/core"),aa=require("react/jsx-runtime");var eo="(\\d+)(?:px)?",uf=`^(?:${eo}(?:\\s${eo}(?:\\s${eo}(?:\\s${eo})?)?)?)$`,cS=new RegExp(uf);var df=V(require("react")),pf=V(require("classnames"));var ff=require("react/jsx-runtime");var wa=require("@salt-ds/core"),Sa=V(require("classnames")),Tn=V(require("react"));var xe=require("react");var ca=n=>typeof n=="object"&&n!==null&&"tabIndex"in n&&typeof n.tabIndex=="number",ua=n=>({label:"Close",location:"tab",action:"close-tab",options:n}),da=n=>({label:"Rename",location:"tab",action:"rename-tab",options:n});var hf=n=>{if(n){let e=parseInt(n.dataset.index||"");if(!isNaN(e))return e}return-1},pa=(n,e)=>{if(n){let t=n.querySelector(`[data-index]:has(${e})`);return hf(t)}return-1},us=n=>pa(n,'[aria-selected="true"]'),fa=n=>pa(n,".vuuEditableLabel-editing");var Cn=require("@vuu-ui/vuu-utils"),ut=require("react"),ma=(n,e,t="horizontal")=>{let r=(0,ut.useRef)(!1),o=(0,ut.useCallback)(()=>{r.current=!0},[]),s=(0,ut.useCallback)(()=>{r.current=!1},[]),i=(0,ut.useCallback)(()=>{var a,c;(a=n.current)==null||a.style.setProperty("--tab-thumb-transition","none"),(c=n.current)==null||c.removeEventListener("transitionend",i)},[n]),l=(0,ut.useRef)(-1);return(0,ut.useMemo)(()=>{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}=Cn.MEASURES[t];if(d&&f&&!r.current){let{[m]:x,[h]:v}=d.getBoundingClientRect(),{[m]:C}=f.getBoundingClientRect();if((0,Cn.isValidNumber)(x)&&(0,Cn.isValidNumber)(C)&&(0,Cn.isValidNumber)(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])};var ga=require("@salt-ds/core"),ba=require("@vuu-ui/vuu-utils"),fe=require("react"),we=require("@vuu-ui/vuu-utils");var ya={horizontal:{[we.Home]:"start",[we.End]:"end",[we.ArrowLeft]:"bwd",[we.ArrowRight]:"fwd"},vertical:{[we.Home]:"start",[we.End]:"end",[we.ArrowUp]:"bwd",[we.ArrowDown]:"fwd"}},gf=(n,e="horizontal")=>ya[e][n]!==void 0,bf=n=>n===we.ArrowDown;function ha(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 yf=n=>n!==null&&!n.classList.contains("wrapped"),to=(n,e)=>n?n.querySelector(`[data-index="${e}"]`):null,xa=({containerRef:n,defaultHighlightedIdx:e=-1,highlightedIdx:t,keyBoardActivation:r,orientation:o,selectedIndex:s=0})=>{let i=r==="manual",l=(0,fe.useRef)(!1),a=(0,fe.useRef)(-1),[c,u]=(0,fe.useState)(!1),[,p]=(0,fe.useState)({}),[d,f]=(0,ga.useControlled)({controlled:t,default:e,name:"UseKeyboardNavigation"}),m=(0,fe.useCallback)(S=>{f(a.current=S)},[f]),h=(0,fe.useRef)(!1),x=(0,fe.useCallback)((S,M=!1,I,L=70)=>{m(S),I===!0&&!h.current&&(h.current=!0);let k=()=>{let O=to(n.current,S);if(O){let A=(0,ba.getFocusableElement)(O);A==null||A.focus()}};M?k():setTimeout(k,L)},[n,m]),v=S=>{if(a.current===-1&&S.target.tabIndex!==-1){let M=fa(n.current);M!==-1?requestAnimationFrame(()=>{m(M)}):setTimeout(()=>{a.current===-1&&s!==null&&m(s)},200)}},C=(0,fe.useCallback)(()=>{var S,M;return(M=(S=n.current)==null?void 0:S.querySelectorAll("[data-index]").length)!=null?M:0},[n]),y=(0,fe.useCallback)((S="fwd",M)=>{let I=C(),k=ha(I,S,typeof M=="number"?M:I),O=S==="start"?"fwd":S==="end"?"bwd":S;for(;(O==="fwd"&&k<I||O==="bwd"&&k>0)&&!yf(to(n.current,k));){let A=ha(I,O,k);if(A===k)break;k=A}return k},[n,C]),b=(0,fe.useCallback)((S,M=!1)=>{let I=ya[o][S.key],L=y(I,d);L!==d?i&&x(L,!0):M&&p({})},[d,i,y,x,o]),T=(0,fe.useCallback)(()=>{let S=to(n.current,d);return S?S.querySelector(".vuuPopupMenu")!=null:!1},[n,d]),g=(0,fe.useCallback)(()=>{let S=to(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=(0,fe.useCallback)(S=>{C()>0&&gf(S.key,o)?(S.preventDefault(),h.current?b(S):(h.current=!0,b(S,!0))):bf(S.key)&&T()&&g()},[g,C,T,b,o]),D=(S,M)=>{m(M)},P=(0,fe.useCallback)(()=>{c||(u(!0),l.current?l.current=!1:h.current=!0)},[c]),E=(0,fe.useCallback)(()=>{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}};var va=require("@salt-ds/core"),ar=require("react"),xf=["Enter"," "],vf=n=>n&&n.matches('[class*="vuuTab "]'),Ca=({defaultSelected:n,highlightedIdx:e,onSelectionChange:t,selected:r})=>{let[o,s,i]=(0,va.useControlled)({controlled:r,default:n!=null?n:0,name:"Tabstrip",state:"value"}),l=(0,ar.useCallback)(p=>xf.includes(p.key),[]),a=(0,ar.useCallback)(p=>{s(p),t==null||t(p)},[t,s]),c=(0,ar.useCallback)(p=>{let d=p.target;l(p)&&e!==o&&vf(d)&&(p.stopPropagation(),p.preventDefault(),a(e))},[l,e,o,a]),u=(0,ar.useCallback)((p,d)=>{d!==o&&a(d)},[a,o]);return{activateTab:a,isControlled:i,onClick:u,onKeyDown:c,selected:o}};var Cf=new Set(["Enter"," "]),Tf=n=>Cf.has(n),wf=(n,e)=>n?n.querySelector(`[data-index="${e}"]`):null,Ta=({activeTabIndex:n,allowDragDrop:e,animateSelectionThumb:t,containerRef:r,onActiveChange:o,onAddTab:s,onCloseTab:i,onExitEditMode:l,onMoveTab:a,orientation:c,keyBoardActivation:u})=>{let p=(0,xe.useRef)(n),{focusTab:d,highlightedIdx:f,onClick:m,onKeyDown:h,setHighlightedIdx:x,...v}=xa({containerRef:r,keyBoardActivation:u,orientation:c,selectedIndex:p.current}),{activateTab:C,onClick:y,onKeyDown:b,selected:T}=Ca({highlightedIdx:f,onSelectionChange:o,selected:n});p.current=T;let{containerStyle:g,resumeAnimation:w,suspendAnimation:D}=ma(r,t?T:-1,c),P=(0,xe.useCallback)((F,$)=>{let{current:Q}=p;console.log(`useTabstrip handleDrop ${F} - ${$} ${Q}`),a==null||a(F,$);let ge=-1;$!==-1&&(Q===F?ge=$:F>Q&&$<=Q?ge=Q+1:F<Q&&$>=Q&&(ge=Q-1),ge!==-1&&(D(),C(ge),requestAnimationFrame(w)),d($,!1,!1,350))},[d,a,w,C,D]),{onMouseDown:E,...R}=kr({allowDragDrop:e,containerRef:r,draggableClassName:`tabstrip-${c}`,onDrop:P,orientation:"horizontal",itemQuery:".vuuOverflowContainer-item"}),S=(0,xe.useCallback)((F,$,Q,ge)=>{console.log(`handleExitEditMode ${F} ${$} ${Q} ${ge}`),l==null||l(F,$,Q,ge),Q||d(ge,!1,!0)},[d,l]),M=(0,xe.useCallback)((F,$)=>{m(F,$),y(F,$)},[m,y]),I=(0,xe.useCallback)((F=f)=>{let $=wf(r.current,F);if($)return $.querySelector(".vuuEditableLabel")},[r,f]),L=(0,xe.useCallback)((F=f)=>{let $=I(F);return $?$.classList.contains("vuuEditableLabel-editing"):!1},[I,f]),k=(0,xe.useCallback)((F=f)=>{let $=I(F);if($){let Q=new MouseEvent("dblclick",{view:window,bubbles:!0,cancelable:!0});$.dispatchEvent(Q)}},[I,f]),O=(0,xe.useCallback)(F=>{h(F),F.defaultPrevented||b(F),!F.defaultPrevented&&Tf(F.key)&&k()},[k,h,b]),A=(0,xe.useCallback)(F=>{let $=us(r.current),Q=$>F?$-1:$===F?0:$;return D(),i==null||i(F,Q),setTimeout(()=>{w()},200),!0},[r,i,w,D]),N=(0,xe.useCallback)(F=>(k(F),!0),[k]),H=(0,xe.useCallback)(F=>{if(ca(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]),B=(0,xe.useCallback)(()=>{L()?x(f):d(f)},[f,d,x,L]),z=(0,xe.useCallback)(F=>{let $=parseInt(F.index);isNaN($)||C($)},[C]),K={onFocus:v.onFocus,onKeyDown:O},_=(0,xe.useCallback)(()=>{s==null||s(),requestAnimationFrame(()=>{let F=us(r.current);F!==-1&&d(F)})},[r,d,s]),q={onClick:M,onKeyDown:O,onExitEditMode:S,onMenuAction:H,onMenuClose:B,onMouseDown:E};return{activeTabIndex:T,containerStyle:g,focusVisible:v.focusVisible,containerProps:{...v.containerProps,onSwitchWrappedItemIntoView:z},navigationProps:K,onClickAddTab:_,tabProps:q,...R}};var wn=require("react/jsx-runtime"),Ea=require("react"),ds="vuuTabstrip",ta=({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=(0,Tn.useRef)(null),{activeTabIndex:T,focusVisible:g,containerStyle:w,draggedItemIndex:D,onClickAddTab:P,tabProps:E,...R}=Ta({activeTabIndex:n,allowDragDrop:r,animateSelectionThumb:s,containerRef:b,keyBoardActivation:c,onActiveChange:p,onAddTab:d,onCloseTab:f,onExitEditMode:m,onMoveTab:h,orientation:x}),S=Or(a),M=(0,Sa.default)(ds,`${ds}-${x}`,l),I=C||w?{...C,...w}:void 0,L=(0,Tn.useMemo)(()=>pn(i).map((k,O)=>{let{id:A=`${S}-tab-${O}`,closeable:N=t,editable:H=o,showMenuButton:B=v}=k.props,z=O===T;return Tn.default.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:B,tabIndex:z?0:-1})}).concat(e?(0,Ea.createElement)(wa.Button,{...R.navigationProps,"aria-label":"Create Tab",className:`${ds}-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(0,wn.jsxs)(wn.Fragment,{children:[(0,wn.jsx)(Yl,{...y,...R.containerProps,className:M,height:28,id:S,orientation:x,overflowIcon:"more-horiz",ref:b,style:I,children:L}),R.draggable]})};var Ia=require("@salt-ds/core"),Aa=V(require("classnames")),_t=require("react");var Ra=require("@vuu-ui/vuu-popups"),Da=require("react"),Ma=V(require("classnames"));var La=require("react/jsx-runtime"),Sf="vuuTabMenu",Pa=({allowClose:n,allowRename:e,location:t,onMenuAction:r,onMenuClose:o,index:s})=>{let[i,l]=(0,Da.useMemo)(()=>[(a,c)=>{let u=[];return e&&u.push(da(c)),n&&u.push(ua(c)),u},{tabIndex:s}],[n,e,s]);return(0,La.jsx)(Ra.PopupMenu,{className:Sf,menuBuilder:i,menuActionHandler:r,menuLocation:(0,Ma.default)("tab",t),menuOptions:l,onMenuClose:o,tabIndex:-1})};var Wt=require("react/jsx-runtime"),Kt="vuuTab",ka=()=>{},na=(0,_t.forwardRef)(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=ka,onExitEditMode:h=ka,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=(0,_t.useRef)(null),R=(0,_t.useRef)(null),S=(0,Ia.useForkRef)(P,E),M=(0,_t.useCallback)(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?(0,Wt.jsx)(dn,{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(0,Wt.jsxs)("div",{...D,"aria-controls":e,"aria-selected":T,className:(0,Aa.default)(Kt,{[`${Kt}-closeable`]:o,"vuuDraggable-dragAway":s,[`${Kt}-editing`]:l,[`${Kt}-selected`]:T||void 0,[`${Kt}-vertical`]:b==="vertical",vuuFocusVisible:a}),onClick:M,onFocus:O,onKeyUp:L,ref:S,role:"tab",tabIndex:w,children:[(0,Wt.jsx)("div",{className:`${Kt}-main`,children:(0,Wt.jsx)("span",{className:`${Kt}-text`,"data-text":i?void 0:u,children:t!=null?t:k()})}),g?(0,Wt.jsx)(Pa,{allowClose:o,allowRename:i,location:p,onMenuAction:C,onMenuClose:y,index:c}):null]})});var lo=require("@salt-ds/core"),io=V(require("classnames")),ao=require("react");function Ef(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 ps=n=>n.closest("[data-idx],[aria-posinset]");var Oa=n=>Ef(ps(n));var Sn=require("react"),Rf=new Set(["/","-","."]),Df=n=>Rf.has(n),Ha=(n,e)=>e.startsWith(n)&&Df(e[n.length]),Na=(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=(0,Sn.useCallback)(d=>Array.isArray(o)?o.some(f=>Ha(d,f)):r,[r,o]),l=(0,Sn.useCallback)((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]=(0,Sn.useMemo)(()=>l(n,{index:0}),[l,n]),p=(0,Sn.useCallback)((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)&&Ha(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]};var Dt=require("react"),$a=require("@salt-ds/core"),za="single",Mf="checkbox",Pf="multi",Lf="extended",kf=["Enter"," "],Fa={},If=n=>n.expanded!==void 0,Va=n=>n&&n!=="none",Ba=({defaultSelected:n,highlightedIdx:e,treeNodes:t,onChange:r,selected:o,selection:s=za,selectionKeys:i=kf})=>{let l=s===za,a=s===Pf||s.startsWith(Mf),c=s===Lf,u=(0,Dt.useRef)(-1),p=(0,Dt.useCallback)(b=>i.includes(b.key),[i]),[d,f]=(0,$a.useControlled)({controlled:o,default:n!=null?n:[],name:"selected"}),m=(0,Dt.useCallback)((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=(0,Dt.useCallback)(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=(0,Dt.useCallback)((b,T)=>{if(c&&b.shiftKey){let g=t[T];m(b,T,g.id,!0)}},[c,t,m]),v=s==="none"?Fa:{onKeyDown:h,onKeyboardNavigation:x},C=(0,Dt.useCallback)(b=>{if(e!==-1){let T=t[e];If(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"?Fa:{onClick:C},selected:d,setSelected:f}};var De=require("react");var Ut=require("react");var Gt=new Map,Wa=(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 Ka=new ResizeObserver(n=>{for(let e of n){let{target:t,borderBoxSize:r,contentBoxSize:o}=e,s=Gt.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=Wa(t,{height:i,width:l,contentHeight:a,contentWidth:c},f);h!==m&&(d=!0,p[f]=h)}d&&u&&u(p)}}});function _a(n,e,t,r=!1){let o=(0,Ut.useRef)(e),s=(0,Ut.useCallback)(i=>{let{width:l,height:a}=i.getBoundingClientRect(),{clientWidth:c,clientHeight:u}=i;return o.current.reduce((p,d)=>(p[d]=Wa(i,{width:l,height:a,contentHeight:u,contentWidth:c},d),p),{})},[]);(0,Ut.useEffect)(()=>{let i=n.current;async function l(){Gt.set(i,{measurements:{}}),await document.fonts.ready;let a=Gt.get(i);if(a){let c=s(i);a.measurements=c,Ka.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(Gt.has(i))throw Error("useResizeObserver attemping to observe same element twice");l()}return()=>{i&&Gt.has(i)&&(Ka.unobserve(i),Gt.delete(i))}},[s,n]),(0,Ut.useEffect)(()=>{let i=n.current,l=Gt.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 Af=["height","scrollHeight"],Ga=(n,e,t=!1)=>{let r=(0,De.useRef)(0),o=(0,De.useRef)(!1),s=(0,De.useRef)(0),i=(0,De.useRef)(0),l=(0,De.useCallback)(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=(0,De.useCallback)(u=>{r.current=u.target.scrollTop},[]);(0,De.useEffect)(()=>{let{current:u}=n;return u&&u.addEventListener("scroll",a),()=>{u&&u.removeEventListener("scroll",a)}},[n,a]),(0,De.useLayoutEffect)(()=>{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]),(0,De.useEffect)(()=>{},[t]);let c=(0,De.useCallback)(({height:u,scrollHeight:p})=>{s.current=u,i.current=p},[]);return _a(n,Af,c,!0),o};var cr=require("react");var Ve=require("react");var Ua=({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)},Xa=n=>n.childNodes!==void 0;var fs=n=>n.header===!0,Of=new Set([".","/"]),Qa=(n,e)=>e.startsWith(n.id)?Of.has(e.charAt(n.id.length)):!1,Xt=(n,e)=>{for(let t of n){if(t.id===e)return t;if(Qa(t,e))return Xt(t.childNodes,e)}},no=(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},ro=(n,e,t)=>{let r;return n.map(s=>s.id===e?{...s,...t}:Qa(s,e)?(r=ro(s.childNodes,e,t),{...s,childNodes:r}):s)};var tc=require("@salt-ds/core");function Hf(n,...e){let t=new Set(n);for(let r of e)for(let o of r)t.add(o);return t}var ms="ArrowUp",Za="ArrowDown",En="ArrowLeft";var Ya="ArrowRight",oo="Enter";var Nf="Delete",zf=new Set([oo,Nf]),Ff=new Set(["Tab"]),$f=new Set(["ArrowRight","ArrowLeft"]),ja=new Set(["Home","End","ArrowDown","ArrowUp"]),qa=new Set(["Home","End","ArrowRight","ArrowLeft"]),Vf=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),rR=Hf(zf,qa,ja,$f,Vf,Ff);var Ja=({key:n},e="vertical")=>(e==="vertical"?ja:qa).has(n);function ec(n,e,t){return e===ms||e===En?t>0?t-1:t:t===null?0:t===n-1?t:t+1}var Bf=n=>!n.header&&!n.childNodes,Kf=n=>Bf(n)||n.expanded!==void 0,nc=({defaultHighlightedIdx:n=-1,highlightedIdx:e,treeNodes:t,onHighlight:r,onKeyboardNavigation:o,selected:s=[]})=>{let{bwd:i,fwd:l}=(0,Ve.useMemo)(()=>({bwd:ms,fwd:Za}),[]),[a,c,u]=(0,tc.useControlled)({controlled:e,default:n,name:"highlightedIdx"}),p=(0,Ve.useCallback)(b=>{r==null||r(b),c(b)},[r,c]),d=(0,Ve.useCallback)((b=l,T=b===l?-1:t.length)=>{let g=ec(t.length,b,T);for(;g!==-1&&(b===l&&g<t.length||b===i&&g>0)&&!Kf(t[g]);)g=ec(t.length,b,g);return g},[i,l,t]),f=(0,Ve.useRef)(!0),m=(0,Ve.useRef)(!1),h=b=>m.current=b,x=(0,Ve.useCallback)(()=>{if(m.current)m.current=!1;else if(s.length>0){let b=Xt(t,s[0]);if(b){let T=no(t,b);p(T)}}else p(d())},[t,d,s,p]),v=(0,Ve.useCallback)(b=>{let T=d(b.key,a);T!==a&&(p(T),o==null||o(b,T))},[a,d,o,p]),C=(0,Ve.useCallback)(b=>{t.length>0&&Ja(b,"vertical")&&(b.preventDefault(),b.stopPropagation(),f.current=!0,v(b))},[t,v]),y=(0,Ve.useMemo)(()=>({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}};var Rn=require("react");var so=(n,e=[],t={value:0})=>{let r=!1;for(let o of n)r&&!fs(o)||(e[t.value]=o,t.value+=1,r=!1,fs(o)&&o.expanded===!1?r=!0:Xa(o)&&hs(o)&&so(o.childNodes,e,t));return e},rc=n=>{let e=(0,Rn.useRef)(n),t=(0,Rn.useRef)(n),r=(0,Rn.useRef)(so(n)),[,o]=(0,Rn.useState)({});n!==e.current&&(e.current=n,t.current=n,r.current=so(n));let s=i=>{t.current=i,r.current=so(i),o({})};return{data:t.current,indexPositions:r.current,setData:s}};var dt=require("react");var Wf={},_f=n=>n&&n.hasAttribute("aria-expanded"),oc=({collapsibleHeaders:n,highlightedIdx:e,treeNodes:t,setVisibleData:r,source:o})=>{let s=(0,dt.useRef)(o),i=(0,dt.useRef)(s.current),l=(0,dt.useCallback)(m=>{r(i.current=m)},[r]),a=(0,dt.useCallback)((m,{id:h})=>ro(m,h,{expanded:!0}),[]),c=(0,dt.useCallback)((m,{id:h})=>ro(m,h,{expanded:!1}),[]),u=(0,dt.useCallback)(m=>{if(m.key===Ya||m.key===oo){let h=t[e];h&&h.expanded===!1&&(m.preventDefault(),l(a(i.current,h)))}if(m.key===En||m.key===oo){let h=t[e];h&&h.expanded&&(m.preventDefault(),l(c(i.current,h)))}},[c,a,e,t,l]),p=n?{onKeyDown:u}:Wf,f={onClick:(0,dt.useCallback)(m=>{let h=ps(m.target);if(_f(h)){m.stopPropagation(),m.preventDefault();let x=Xt(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}};var sc=require("react");var ic=({highlightedIdx:n,hiliteItemAtIndex:e,indexPositions:t,source:r})=>({listHandlers:{onKeyDown:(0,sc.useCallback)(i=>{if(i.key===En){let l=t[n],a=Ua(l);if(a){i.preventDefault();let c=Xt(r,a);if(c){let u=no(t,c);u!==void 0&&e(u)}}}},[n,e,t,r])}});var Gf=[],lc=({defaultSelected:n,sourceWithIds:e,onChange:t,onHighlight:r,selected:o,selection:s})=>{let i=(0,cr.useRef)(Gf),l=rc(e),a=(y,b)=>{var T,g;(g=(T=d.listHandlers).onKeyboardNavigation)==null||g.call(T,y,b)},{highlightedIdx:c,...u}=nc({treeNodes:l.indexPositions,onHighlight:r,onKeyboardNavigation:a,selected:i.current}),p=oc({collapsibleHeaders:!0,highlightedIdx:c,treeNodes:l.indexPositions,setVisibleData:l.setData,source:l.data}),d=Ba({defaultSelected:n,highlightedIdx:c,treeNodes:l.indexPositions,onChange:t,selected:o,selection:s}),f=ic({source:l.data,highlightedIdx:c,hiliteItemAtIndex:u.hiliteItemAtIndex,indexPositions:l.indexPositions}),m=(0,cr.useCallback)(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=(0,cr.useCallback)(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}};var Oe=require("react/jsx-runtime"),cc=require("react"),Mt="vuuTree",hs=n=>n.expanded===!0,ac=({children:n,idx:e,...t})=>(0,Oe.jsx)("li",{...t,children:n}),Uf=(0,ao.forwardRef)(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=(0,lo.useIdMemo)(s),h=(0,ao.useRef)(null),[,x,v]=Na(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}=lc({defaultSelected:r,groupSelection:o,onChange:C,onHighlight:i,selected:c,selection:u,sourceWithIds:x});Ga(h,b);let R={...{onMouseEnter:O=>{let A=O.target,N=Oa(A);T(N)}},...w,role:"treeitem"},S=Va(o);function M(O,A,N){O.push((0,Oe.jsxs)(ac,{...R,...Xf(A,N,b,D,y),children:[A.icon?(0,Oe.jsx)("span",{className:`${Mt}Node-icon`,"data-icon":A.icon}):null,(0,Oe.jsx)("span",{children:A.label})]})),N.value+=1}function I(O,A,N,H,B){let{value:z}=N;N.value+=1,O.push((0,cc.createElement)(ac,{...w,"aria-expanded":A.expanded,"aria-level":A.level,"aria-selected":D.includes(H)||void 0,className:(0,io.default)(`${Mt}Node`,{focusVisible:y===z,[`${Mt}Node-toggle`]:!S}),"data-idx":z,"data-highlighted":z===b||void 0,"data-selectable":!0,id:H,key:`header-${z}`},S?(0,Oe.jsxs)("div",{className:`${Mt}Node-label`,children:[(0,Oe.jsx)("span",{className:`${Mt}Node-toggle`}),B]}):(0,Oe.jsxs)("div",{className:`${Mt}Node-label`,children:[A.icon?(0,Oe.jsx)("span",{className:`${Mt}Node-icon`,"data-icon":A.icon}):null,(0,Oe.jsx)("span",{children:B})]}),(0,Oe.jsx)("ul",{role:"group",children:hs(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(0,Oe.jsx)("ul",{...d,...g,className:(0,io.default)(Mt,t),id:`Tree-${m}`,ref:(0,lo.useForkRef)(h,f),role:"tree",tabIndex:0,children:L(P)})}),Xf=(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:(0,io.default)("vuuTreeNode",s,{focusVisible:o===e.value})});Uf.displayName="Tree";var dc=V(require("classnames")),pt=require("react");var ur=require("react/jsx-runtime"),{KEY:uc}=co.metadataKeys,gs=(0,pt.memo)(({className:n,column:e,columnMap:t,onClick:r,row:o})=>{let s=(0,pt.useRef)(null),{align:i,CellRenderer:l,key:a,pin:c,editable:u,resizing:p,valueFormatter:d}=e,[f,m]=(0,pt.useState)(!1),h=d(o[a]),[x,v]=(0,pt.useState)(h),C=()=>{var P;(P=s.current)==null||P.focus()},y=P=>{P.key==="Enter"&&m(!0)},b=(0,pt.useCallback)(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=(0,dc.default)(n,{vuuAlignRight:i==="right",vuuPinFloating:c==="floating",vuuPinLeft:c==="left",vuuPinRight:c==="right","vuuTableCell-resizing":p})||void 0,D=(0,co.getColumnStyle)(e);return u?(0,ur.jsx)("div",{className:w,"data-editable":!0,role:"cell",style:D,onKeyDown:y,children:(0,ur.jsx)(dn,{editing:f,value:x,onChange:v,onMouseDownCapture:C,onEnterEditMode:T,onExitEditMode:g,onKeyDown:y,ref:s,tabIndex:0},"title")}):(0,ur.jsx)("div",{className:w,role:"cell",style:D,onClick:b,children:l?(0,ur.jsx)(l,{column:e,columnMap:t,row:o}):h})},Qf);gs.displayName="TableCell";function Qf(n,e){return n.column===e.column&&n.onClick===e.onClick&&n.row[uc]===e.row[uc]&&n.row[n.column.key]===e.row[e.column.key]}var Mn=require("@vuu-ui/vuu-utils"),pc=require("react");var Dn=require("react/jsx-runtime"),{IS_LEAF:Zf}=Mn.metadataKeys,fc=({column:n,onClick:e,row:t})=>{let{columns:r}=n,[o,s]=(0,Mn.getGroupValueAndOffset)(r,t),i=(0,pc.useCallback)(u=>{e==null||e(u,n)},[n,e]),l=(0,Mn.getColumnStyle)(n),a=t[Zf],c=Array(s).fill(0).map((u,p)=>(0,Dn.jsx)("span",{className:"vuuTableGroupCell-spacer"},p));return(0,Dn.jsxs)("div",{className:"vuuTableGroupCell vuuPinLeft",onClick:a?void 0:i,role:"cell",style:l,children:[c,a?null:(0,Dn.jsx)("span",{className:"vuuTableGroupCell-toggle","data-icon":"triangle-right"}),(0,Dn.jsx)("span",{children:o})]})};var pr=require("react/jsx-runtime"),{IDX:Yf,IS_EXPANDED:jf,SELECTED:qf}=Ye.metadataKeys,uo="vuuTableRow",hc=(0,dr.memo)(function({columnMap:e,columns:t,offset:r,onClick:o,onToggleGroup:s,virtualColSpan:i=0,row:l}){let{[Yf]:a,[jf]:c,[qf]:u}=l,p=(0,mc.default)(uo,{[`${uo}-even`]:a%2===0,[`${uo}-expanded`]:c,[`${uo}-preSelected`]:u===2}),d=(0,dr.useCallback)(m=>{let h=m.shiftKey,x=m.ctrlKey||m.metaKey;o==null||o(l,h,x)},[o,l]),f=(0,dr.useCallback)((m,h)=>{((0,Ye.isGroupColumn)(h)||(0,Ye.isJsonGroup)(h,l))&&(m.stopPropagation(),s==null||s(l,h))},[s,l]);return(0,pr.jsxs)("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?(0,pr.jsx)("div",{role:"cell",style:{width:i}}):null,t.filter(Ye.notHidden).map(m=>{let h=(0,Ye.isGroupColumn)(m),x=(0,Ye.isJsonColumn)(m);return(0,pr.jsx)(h?fc:gs,{column:m,columnMap:e,onClick:h||x?f:void 0,row:l},m.name)})]})});var bs=V(require("classnames")),bc=require("react");var Qt=require("react"),Zt=({column:n,onResize:e,rootRef:t})=>{let r=(0,Qt.useRef)(0),o=(0,Qt.useRef)(!1),{name:s}=n,i=(0,Qt.useCallback)(()=>{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=(0,Qt.useCallback)((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=(0,Qt.useCallback)(()=>{e&&(e("end",s,r.current),setTimeout(()=>{o.current=!1},100))},[s,e]);return{isResizing:o.current,onDrag:l,onDragStart:i,onDragEnd:a}};var je=require("react/jsx-runtime"),Pt="vuuTable-groupHeaderCell",gc=({column:n,onClick:e,...t})=>(0,je.jsx)("span",{...t,className:`${Pt}-close`,"data-icon":"close-circle",onClick:()=>e==null?void 0:e(n)}),Jf=n=>{let{children:e,column:t,className:r}=n;return(0,je.jsxs)("div",{className:(0,bs.default)(`${Pt}-col`,r),role:"columnheader",children:[(0,je.jsx)("span",{className:`${Pt}-label`,children:t.name}),e]})},yc=({column:n,className:e,onRemoveColumn:t,onResize:r,...o})=>{let s=(0,bc.useRef)(null),{isResizing:i,...l}=Zt({column:n,onResize:r,rootRef:s}),a=(0,bs.default)(Pt,e,{vuuPinLeft:n.pin==="left",[`${Pt}-right`]:n.align==="right",[`${Pt}-resizing`]:n.resizing,[`${Pt}-pending`]:n.groupConfirmed===!1}),{columns:c}=n;return(0,je.jsx)("div",{className:a,ref:s,...o,children:(0,je.jsxs)("div",{className:`${Pt}-inner`,children:[c.map(u=>(0,je.jsx)(Jf,{column:u,children:c.length>1?(0,je.jsx)(gc,{column:u,onClick:t}):null},u.key)),(0,je.jsx)(gc,{"data-align":"end",onClick:t}),n.resizeable!==!1?(0,je.jsx)(zt,{...l}):null]})})};var Ec=V(require("classnames")),Yt=require("react");var ys=V(require("classnames"));var xc="vuuSortIndicator",po=({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:(0,ys.default)(xc,"multi-col",e)},React.createElement("span",{"data-icon":`sorted-${e}`}),React.createElement("span",{className:"vuuSortPosition"},Math.abs(n))):React.createElement("div",{className:(0,ys.default)(xc,"single-col")},React.createElement("span",{"data-icon":`sorted-${e}`}))};var Rc=require("@vuu-ui/vuu-popups");var vc=require("@vuu-ui/vuu-popups"),Cc=V(require("classnames")),Tc=require("react");var Sc=require("react/jsx-runtime");var wc=({column:n,filter:e})=>{let[t]=(0,vc.useContextMenu)(),r=(0,Tc.useCallback)(o=>{o.stopPropagation(),t(o,"filter",{column:n,filter:e})},[n,e,t]);return n.filter?(0,Sc.jsx)("div",{className:(0,Cc.default)("vuuFilterIndicator"),"data-icon":"filter",onClick:r}):null};var Lt=require("react/jsx-runtime"),fr="vuuTable-headerCell",Dc=({column:n,className:e,onClick:t,onDragStart:r,onResize:o,...s})=>{let i=(0,Yt.useRef)(null),{isResizing:l,...a}=Zt({column:n,onResize:o,rootRef:i}),[c]=(0,Rc.useContextMenu)(),u=(0,Yt.useRef)(null),p=x=>{c(x,"header",{column:n})},d=(0,Yt.useCallback)(x=>!l&&(t==null?void 0:t(x)),[l,t]),f=(0,Yt.useCallback)(x=>{u.current=window.setTimeout(()=>{r==null||r(x),u.current=null},500)},[r]),m=(0,Yt.useCallback)(()=>{u.current!==null&&(window.clearTimeout(u.current),u.current=null)},[]),h=(0,Ec.default)(fr,e,{vuuPinFloating:n.pin==="floating",vuuPinLeft:n.pin==="left",vuuPinRight:n.pin==="right",vuuEndPin:n.endPin,[`${fr}-resizing`]:n.resizing,[`${fr}-right`]:n.align==="right"});return(0,Lt.jsx)("div",{className:h,...s,onClick:d,onContextMenu:p,onMouseDown:f,onMouseUp:m,ref:i,children:(0,Lt.jsxs)("div",{className:`${fr}-inner`,children:[(0,Lt.jsx)(wc,{column:n}),(0,Lt.jsx)("div",{className:`${fr}-label`,children:n.label}),(0,Lt.jsx)(po,{sorted:n.sorted}),n.resizeable!==!1?(0,Lt.jsx)(zt,{...a}):null]})})};var qe=require("react/jsx-runtime"),xs="vuuTable",{RENDER_IDX:em}=Be.metadataKeys,Mc=({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=(0,Pn.useCallback)(y=>{i==null||i(y)},[i]),x=(0,Pn.useMemo)(()=>n.filter(Be.notHidden),[n]),v=(0,Pn.useMemo)(()=>(0,Be.buildColumnMap)(n),[n]),C=(0,Pn.useCallback)(y=>{var P;let T=y.target.closest(".vuuTable-headerCell"),g=parseInt((P=T==null?void 0:T.dataset.idx)!=null?P:"-1"),w=(0,Be.visibleColumnAtIndex)(n,g),D=y.shiftKey;w&&u(w,D)},[n,u]);return(0,qe.jsxs)("div",{"aria-rowcount":m,className:`${xs}-table`,role:"table",children:[(0,qe.jsxs)("div",{className:`${xs}-headers`,role:"rowGroup",children:[o.map((y,b)=>(0,qe.jsx)("div",{className:"vuuTable-heading",children:y.map(({label:T,width:g},w)=>(0,qe.jsx)("div",{className:"vuuTable-headingCell",style:{width:g},children:T},w))},b)),(0,qe.jsx)("div",{role:"row",children:x.map((y,b)=>{let T=(0,Be.getColumnStyle)(y);return(0,Be.isGroupColumn)(y)?(0,qe.jsx)(yc,{column:y,"data-idx":b,onRemoveColumn:a,onResize:s,role:"columnHeader",style:T},b):(0,qe.jsx)(Dc,{column:y,"data-idx":b,id:`${d}-${b}`,onClick:C,onDragStart:h,onResize:s,role:"columnHeader",style:T},b)})})]}),(0,qe.jsx)("div",{className:`${xs}-body`,onContextMenu:l,role:"rowGroup",children:t==null?void 0:t.map(y=>(0,qe.jsx)(hc,{columnMap:v,columns:e,offset:r(y),onClick:c,virtualColSpan:f,onToggleGroup:p,row:y},y[em]))})]})};var hu=require("@vuu-ui/vuu-popups"),st=require("@vuu-ui/vuu-utils"),ne=require("react");var fo=require("@vuu-ui/vuu-utils"),mr=require("react"),{SELECTED:sM}=fo.metadataKeys;var vs=require("react"),tm=require("@vuu-ui/vuu-data");var Cs=require("react"),nm=require("@vuu-ui/vuu-data");var rm=require("react"),om=require("@vuu-ui/vuu-data");var sm=0,hr=class{constructor(e,t){this.from=e,this.to=t}},j=class{constructor(e={}){this.id=sm++,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=Me.match(e)),t=>{let r=e(t);return r===void 0?null:[this,r]}}};j.closedBy=new j({deserialize:n=>n.split(" ")});j.openedBy=new j({deserialize:n=>n.split(" ")});j.group=new j({deserialize:n=>n.split(" ")});j.contextHash=new j({perNode:!0});j.lookAhead=new j({perNode:!0});j.mounted=new j({perNode:!0});var im=Object.create(null),Me=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):im,r=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),o=new Me(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(j.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(j.group),s=-1;s<(o?o.length:0);s++){let i=t[s<0?r.name:o[s]];if(i)return i}}}};Me.none=new Me("",Object.create(null),0,8);var Ln=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 Me(r.name,o,r.id,r.flags):r)}return new Ln(t)}},mo=new WeakMap,Pc=new WeakMap,me;(function(n){n[n.ExcludeBuffers=1]="ExcludeBuffers",n[n.IncludeAnonymous=2]="IncludeAnonymous",n[n.IgnoreMounts=4]="IgnoreMounts",n[n.IgnoreOverlays=8]="IgnoreOverlays"})(me||(me={}));var he=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(j.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 In(this.topNode,e)}cursorAt(e,t=0,r=0){let o=mo.get(this)||this.topNode,s=new In(o);return s.moveTo(e,t),mo.set(this,s._tree),s}get topNode(){return new Je(this,0,0,null)}resolve(e,t=0){let r=kn(mo.get(this)||this.topNode,e,t,!1);return mo.set(this,r),r}resolveInner(e,t=0){let r=kn(Pc.get(this)||this.topNode,e,t,!0);return Pc.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&me.IncludeAnonymous)>0;for(let a=this.cursor(i|me.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:Es(Me.none,this.children,this.positions,0,this.children.length,0,this.length,(t,r,o)=>new he(this.type,t,r,o,this.propValues),e.makeTree||((t,r,o)=>new he(Me.none,t,r,o)))}static build(e){return lm(e)}};he.empty=new he(Me.none,[],[],0);var gr=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 gr(this.buffer,this.index)}},ft=class{constructor(e,t,r){this.buffer=e,this.length=t,this.set=r}get type(){return Me.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&&!(kc(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 ft(s,i,this.set)}};function kc(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 Ic(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 kn(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 Je&&n.index<0?null:n.parent;if(!i)return n;n=i}let s=r?0:me.IgnoreOverlays;if(r)for(let i=n,l=i.parent;l;i=l,l=i.parent)i instanceof Je&&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 Je=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(kc(o,r,p,p+u.length)){if(u instanceof ft){if(s&me.ExcludeBuffers)continue;let d=u.findChild(0,u.buffer.length,t,r-p,o);if(d>-1)return new rt(new Ts(i,u,e,p),null,d)}else if(s&me.IncludeAnonymous||!u.type.isAnonymous||Ss(u)){let d;if(!(s&me.IgnoreMounts)&&u.props&&(d=u.prop(j.mounted))&&!d.overlay)return new Je(d.tree,p,e,i);let f=new Je(u,p,e,i);return s&me.IncludeAnonymous||!f.type.isAnonymous?f:f.nextChild(t<0?u.children.length-1:0,t,r,o)}}}if(s&me.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&me.IgnoreOverlays)&&(o=this._tree.prop(j.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 Je(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 In(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return kn(this,e,t,!1)}resolveInner(e,t=0){return kn(this,e,t,!0)}enterUnfinishedNodesBefore(e){return Ic(this,e)}getChild(e,t=null,r=null){let o=go(this,e,t,r);return o.length?o[0]:null}getChildren(e,t=null,r=null){return go(this,e,t,r)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return bo(this,e)}};function go(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 bo(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 Ts=class{constructor(e,t,r,o){this.parent=e,this.buffer=t,this.index=r,this.start=o}},rt=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 rt(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&me.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 rt(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 rt(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 rt(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new In(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 he(this.type,e,t,this.to-this.from)}resolve(e,t=0){return kn(this,e,t,!1)}resolveInner(e,t=0){return kn(this,e,t,!0)}enterUnfinishedNodesBefore(e){return Ic(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,r=null){let o=go(this,e,t,r);return o.length?o[0]:null}getChildren(e,t=null,r=null){return go(this,e,t,r)}get node(){return this}matchContext(e){return bo(this,e)}},In=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 Je)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 Je?(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&me.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&me.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&me.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&me.IncludeAnonymous||l instanceof ft||!l.type.isAnonymous||Ss(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 rt(this.buffer,t,this.stack[o]);return this.bufferNode=new rt(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 bo(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 bo(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 Ss(n){return n.children.some(e=>e instanceof ft||!e.type.isAnonymous||Ss(e))}function lm(n){var e;let{buffer:t,nodeSet:r,maxBufferLength:o=1024,reused:s=[],minRepeatType:i=r.types.length}=n,l=Array.isArray(t)?new gr(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 ft(A,R-k.start,r),O=k.start-b}else{let A=l.pos-S;l.next();let N=[],H=[],B=P>=i?P:-1,z=0,K=R;for(;l.pos>A;)B>=0&&l.id==B&&l.size>=0?(l.end<=K-o&&(f(N,H,E,z,l.end,K,B,M),z=N.length,K=l.end),l.next()):p(E,A,N,H,B);if(B>=0&&z>0&&z<N.length&&f(N,H,E,z,E,K,B,M),N.reverse(),H.reverse(),B>-1&&z>0){let _=d(I);L=Es(I,N,H,0,N.length,0,R-E,_,_)}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 he){if(!P&&E.type==b&&E.length==w)return E;(R=E.prop(j.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=[j.contextHash,c];P=P?[E].concat(P):[E]}if(D>25){let E=[j.lookAhead,D];P=P?[E].concat(P):[E]}return new he(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 he(a[n.topID],v.reverse(),C.reverse(),y)}var Lc=new WeakMap;function ho(n,e){if(!n.isAnonymous||e instanceof ft||e.type!=n)return 1;let t=Lc.get(e);if(t==null){t=1;for(let r of e.children){if(r.type!=n||!(r instanceof he)){t=1;break}t+=ho(n,r)}Lc.set(e,t)}return t}function Es(n,e,t,r,o,s,i,l,a){let c=0;for(let m=r;m<o;m++)c+=ho(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=ho(n,m[y]);for(y++;y<v;y++){let w=ho(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(Es(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 yo=class{startParse(e,t,r){return typeof e=="string"&&(e=new ws(e)),r=r?r.length?r.map(o=>new hr(o.from,o.to)):[new hr(0,0)]:[new hr(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}}},ws=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 dM=new j({perNode:!0});var On=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 On(e,[],t,r,r,0,[],0,o?new xo(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 On(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 Ds(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 xo(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()}},xo=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},Ac;(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"})(Ac||(Ac={}));var Ds=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}},Hn=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 Hn(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 Hn(this.stack,this.pos,this.index)}};function br(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 An=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},Oc=new An,Ms=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=Oc,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=Oc,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}},kt=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:r}=t.p;Bc(this.data,e,t,this.id,r.data,r.tokenPrecTable)}};kt.prototype.contextual=kt.prototype.fallback=kt.prototype.extend=!1;var Ps=class{constructor(e,t,r){this.precTable=t,this.elseToken=r,this.data=typeof e=="string"?br(e):e}token(e,t){let r=e.pos,o=0;for(;;){let s=e.next<0,i=e.resolveOffset(1,1);if(Bc(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))}};Ps.prototype.contextual=kt.prototype.fallback=kt.prototype.extend=!1;function Bc(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||cm(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 Hc(n,e,t){for(let r=e,o;(o=n[r])!=65535;r++)if(o==t)return r-e;return-1}function cm(n,e,t,r){let o=Hc(t,r,e);return o<0||Hc(t,r,n)<o}var et=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),Rs=null,Nc;(function(n){n[n.Margin=25]="Margin"})(Nc||(Nc={}));function zc(n,e,t){let r=n.cursor(me.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 Ls=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?zc(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?zc(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 he){if(i==e){if(i<this.safeFrom)return null;let l=i+s.length;if(l<=this.safeTo){let a=s.prop(j.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}}},ks=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(r=>new An)}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 An,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 An,{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=mt(l,c+2);else{o==0&&l[c+1]==2&&(o=this.putAction(mt(l,c+2),t,r,o));break}l[c]==t&&(o=this.putAction(mt(l,c+1),t,r,o))}return o}},Fc;(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"})(Fc||(Fc={}));var Is=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 Ms(t,o),this.tokens=new ks(e,this.stream),this.topTerm=e.top[1];let{from:s}=o[0];this.stacks=[On.start(this,e.top[0],s)],this.fragments=r.length&&this.stream.end-s>e.bufferLength*4?new Ls(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&&um(o);if(i)return this.stackToTree(i);if(this.parser.strict)throw et&&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=et?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(j.contextHash)||0)==u))return e.useNode(p,d),et&&console.log(i+this.stackID(e)+` (via reuse of ${s.getName(p.type.id)})`),!0;if(!(p instanceof he)||p.children.length==0||p.positions[0]>0)break;let f=p.children[0];if(f instanceof he&&p.positions[0]==0)p=f;else break}}let l=s.stateSlot(e.state,4);if(l>0)return e.reduce(l),et&&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),et&&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 $c(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=et?this.stackID(l)+" -> ":"";if(l.deadEnd&&(s||(s=!0,l.restart(),et&&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&&(et&&console.log(d+this.stackID(p)+" (via force-reduce)"),!this.advanceFully(p,r));f++)et&&(d=this.stackID(p)+" -> ");for(let f of l.recoverByInsert(a))et&&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),et&&console.log(u+this.stackID(l)+` (via recover-delete ${this.parser.getName(a)})`),$c(l,r)):(!o||o.score<l.score)&&(o=l)}return o}stackToTree(e){return e.close(),he.build({buffer:Hn.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=(Rs||(Rs=new WeakMap)).get(e);return t||Rs.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function $c(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 As=class{constructor(e,t,r){this.source=e,this.flags=t,this.disabled=r}allows(e){return!this.disabled||this.disabled[e]==0}};var jt=class extends yo{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=j[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 Ln(t.map((l,a)=>Me.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=br(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(Vc),this.states=br(e.states,Uint32Array),this.data=br(e.stateData),this.goto=br(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(l=>typeof l=="number"?new kt(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 Is(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=mt(r,s+2)];else{if(r[s+1]==2)return mt(r,s+2);break}if(i==t||i==0)return mt(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=mt(this.data,s+2);else break;o=t(mt(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=mt(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(jt.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]=Vc(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 As(e,r,o)}static deserialize(e){return new jt(e)}};function mt(n,e){return n[e]|n[e+1]<<16}function um(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 Vc(n){if(n.external){let e=n.extend?1:0;return(t,r)=>n.external(t,r)<<1|e}return n.get}var Os=jt.deserialize({version:14,states:"%QOVQPOOOOQO'#C_'#C_O_QQO'#C^OOQO'#DO'#DOOvQQO'#C|OOQO'#DR'#DROVQPO'#CuOOQO'#C}'#C}QOQPOOOOQO'#C`'#C`O!UQQO,58xO!dQPO,59VOVQPO,59]OVQPO,59_O!iQPO,59hO!nQQO,59aOOQO'#DQ'#DQOOQO1G.d1G.dO!UQQO1G.qO!yQQO1G.wOOQO1G.y1G.yOOQO'#Cw'#CwOOQO1G/S1G/SOOQO1G.{1G.{O#[QPO'#CnO#dQPO7+$]O!UQQO'#CxO#iQPO,59YOOQO<<Gw<<GwOOQO,59d,59dOOQO-E6v-E6v",stateData:"#q~OoOS~OsPOvUO~OTXOUXOVXOWXOXXOYXO`ZO~Of[Oh]Oj^OmpX~OZ`O[`O]`O^`O~OabO~OseO~Of[Oh]OwgO~Oh]Ofeijeimeiwei~OcjOdbX~OdlO~OcjOdba~O",goto:"#YvPPw}!TPPPPPPPPPPwPP!WPP!ZP!ZP!aP!g!jPPP!p!s!aP#P!aXROU[]XQOU[]RYQRibXTOU[]XVOU[]Rf^QkhRnkRWOQSOQ_UQc[Rd]QaYQhbRmj",nodeNames:"\u26A0 Filter ColumnValueExpression Column Operator Eq NotEq Gt Lt Starts Ends Number String True False ColumnSetExpression In LBrack Values Comma RBrack AndExpression And OrExpression Or ParenthesizedExpression As FilterName",maxTerm:39,skippedNodes:[0],repeatNodeCount:1,tokenData:"6p~RnXY#PYZ#P]^#Ppq#Pqr#brs#mxy$eyz$j|}$o!O!P$t!Q![%S!^!_%_!_!`%d!`!a%i!c!}%n!}#O&V#P#Q&[#R#S%n#T#U&a#U#X%n#X#Y(w#Y#Z+]#Z#]%n#]#^.]#^#c%n#c#d/e#d#g%n#g#h0m#h#i4[#i#o%n~#USo~XY#PYZ#P]^#Ppq#P~#eP!_!`#h~#mOU~~#pWOX#mZ]#m^r#mrs$Ys#O#m#P;'S#m;'S;=`$_<%lO#m~$_O[~~$bP;=`<%l#m~$jOv~~$oOw~~$tOc~~$wP!Q![$z~%PPZ~!Q![$z~%XQZ~!O!P$t!Q![%S~%dOW~~%iOT~~%nOV~P%sUsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%n~&[Oa~~&aOd~R&fYsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c'U#c#g%n#g#h(^#h#o%nR'ZWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#W%n#W#X's#X#o%nR'zUfQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR(eUjQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR(|WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c)f#c#o%nR)kWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#W%n#W#X*T#X#o%nR*YWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h*r#h#o%nR*yUYQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR+bVsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#U+w#U#o%nR+|WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#`%n#`#a,f#a#o%nR,kWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h-T#h#o%nR-YWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#X%n#X#Y-r#Y#o%nR-yU^QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR.bWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c.z#c#o%nR/RU`QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR/jWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g0S#g#o%nR0ZUhQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR0rWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#h%n#h#i1[#i#o%nR1aVsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#U1v#U#o%nR1{WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g2e#g#o%nR2jWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#h%n#h#i3S#i#o%nR3XWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h3q#h#o%nR3xUXQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR4aWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g4y#g#o%nR5OWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#i%n#i#j5h#j#o%nR5mWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#X%n#X#Y6V#Y#o%nR6^U]QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%n",tokenizers:[0,1],topRules:{Filter:[0,1]},tokenPrec:0});var ot=require("@vuu-ui/vuu-utils");var Pe,Kc=class{constructor(){Js(this,Pe,void 0)}setFilterCombinatorOp(e,t=nt(this,Pe)){(0,ot.isMultiClauseFilter)(t)&&t.op===e||Po(this,Pe,{op:e,filters:[nt(this,Pe)]})}add(e){if(nt(this,Pe)===void 0)Po(this,Pe,e);else if((0,ot.isMultiClauseFilter)(nt(this,Pe)))nt(this,Pe).filters.push(e);else throw Error("Invalid filter passed to FilterExpression")}setColumn(e,t=nt(this,Pe)){if((0,ot.isMultiClauseFilter)(t)){let r=t.filters.at(-1);r&&this.setColumn(e,r)}else t&&(t.column=e)}setOp(e,t=nt(this,Pe)){if((0,ot.isMultiClauseFilter)(t)){let r=t.filters.at(-1);r&&this.setOp(e,r)}else t&&(t.op=e)}setValue(e,t=nt(this,Pe)){var r;if((0,ot.isMultiClauseFilter)(t)){let o=t.filters.at(-1);o&&this.setValue(e,o)}else(0,ot.isMultiValueFilter)(t)?((r=t.values)!=null||(t.values=[]),t.values.push(e)):(0,ot.isSingleValueFilter)(t)&&(t.value=e)}toJSON(e=nt(this,Pe)){return this.name?{...e,name:this.name}:e}};Pe=new WeakMap;var CM=Os.configure({strict:!0});var vo=require("@vuu-ui/vuu-utils"),fm=require("react");var{KEY:AM}=vo.metadataKeys;var mm=n=>n.type==="vuu-links";var hm=n=>n.type==="vuu-menu",Wc=n=>hm(n)||mm(n),_c=n=>n.type==="vuu-link-created"||n.type==="vuu-link-removed";var Hs=require("react"),gm=require("@vuu-ui/vuu-data");var It=require("@vuu-ui/vuu-utils"),oe=require("react"),{SELECTED:yr}=It.metadataKeys;function Gc({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]=(0,oe.useState)(null),u=(0,oe.useRef)(!0),p=(0,oe.useRef)(!1),d=(0,oe.useRef)({from:0,to:0}),f=(0,oe.useRef)(null),m=(0,oe.useRef)([]),h=(0,oe.useMemo)(()=>new Ns((0,It.getFullRange)(i)),[]),x=(0,oe.useCallback)(g=>{for(let w of g)h.add(w);m.current=h.data,p.current=!0},[h]),v=(0,oe.useCallback)(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)):Wc(g)?t==null||t(g):_c(g)?r==null||r(g):console.log(`useDataSource unexpected message ${g.type}`)},[h,t,r,o,s,x]);(0,oe.useEffect)(()=>()=>{f.current&&(cancelAnimationFrame(f.current),f.current=null),u.current=!1},[]);let C=(0,oe.useCallback)(()=>{u.current&&(p.current&&(c({}),p.current=!1),f.current=requestAnimationFrame(C))},[c]);(0,oe.useEffect)(()=>{f.current=requestAnimationFrame(C)},[C]);let y=(0,oe.useCallback)(g=>{let{from:w}=n.range,D={from:w,to:w+g},P=(0,It.getFullRange)(D,l);h.setRange(P),n.range=d.current=P,n.emit("range",D)},[n,h,l]),b=(0,oe.useCallback)(g=>{let w=(0,It.getFullRange)(g,l);h.setRange(w),n.range=d.current=w,n.emit("range",g)},[n,h,l]),T=(0,oe.useCallback)(()=>h.getSelectedRows(),[h]);return(0,oe.useEffect)(()=>{n==null||n.subscribe({range:d.current},v)},[n,v,e]),(0,oe.useEffect)(()=>{y(a)},[y,a]),{data:m.current,getSelectedRows:T,range:d.current,setRange:b,dataSource:n}}var Ns=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 It.WindowRange(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[yr],i=(r=this.data[o-1])==null?void 0:r[yr];i===0&&s?this.data[o-1][yr]=2:i===2&&!s&&(this.data[o-1][yr]=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[yr]===1)}};var Nn=require("react"),Uc=({onDrop:n})=>{let e=(0,Nn.useRef)(),t=(0,Nn.useRef)(null),r=(0,Nn.useCallback)(()=>{console.log("handleDropSettle"),e.current=void 0,t.current=null},[]),{draggable:o,draggedItemIndex:s,onMouseDown:i}=kr({allowDragDrop:!0,draggableClassName:"vuuTable-headerCell",orientation:"horizontal",containerRef:t,itemQuery:".vuuTable-headerCell",onDrop:n,onDropSettle:r}),l=(0,Nn.useCallback)(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}};var jc=require("@vuu-ui/vuu-utils"),ae=require("react");function bm(n,...e){let t=new Set(n);for(let r of e)for(let o of r)t.add(o);return t}var zs="ArrowUp",Fs="ArrowDown",$s="ArrowLeft",Vs="ArrowRight";var Bs="Home",Ks="End",Ws="PageUp",_s="PageDown";var ym=new Set(["Enter","Delete"," "]),xm=new Set(["Tab"]),vm=new Set(["ArrowRight","ArrowLeft"]),Xc=new Set([Bs,Ks,Ws,_s,Fs,$s,Vs,zs]),Cm=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),jM=bm(ym,Xc,vm,Cm,xm);var Tm=["Home","End","PageUp","PageDown"],Qc=n=>Tm.includes(n),Zc=n=>Xc.has(n);var Yc=n=>`.vuuTable-headers .vuuTable-headerCell:nth-child(${n+1})`,wm=(n,e)=>`.vuuTable-body > [aria-rowindex='${n}'] > [role='cell']:nth-child(${e+1})`,Sm=[-1,-1];function Em(n,[e,t],r,o){return n===zs?e>-1?[e-1,t]:[e,t]:n===Fs?e===-1?[0,t]:e===o-1?[e,t]:[e+1,t]:n===Vs?t<r-1?[e,t+1]:[e,t]:n===$s?t>0?[e,t-1]:[e,t]:[e,t]}var qc=({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=(0,ae.useRef)([-1,-1]),u=(0,ae.useRef)(),p=(0,ae.useRef)([-1,0]),d=(0,ae.useCallback)(([E,R])=>{var M;let S=E===-1?Yc(R):wm(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 Sm},h=(0,ae.useCallback)(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()):(0,jc.withinRange)(E[0],i)||(u.current=void 0,o==null||o({type:"scroll-page",direction:"up"}))}},[e,d,o,i]),x=(0,ae.useCallback)((E,R,S=!1)=>{let M=[E,R];p.current=M,h(M),S&&(c.current=M)},[h]),v=(0,ae.useCallback)(()=>{var E;(E=u.current)==null||E.setAttribute("tabindex",""),u.current=void 0},[]),C=(0,ae.useCallback)(async(E,R)=>{switch(E){case _s:o==null||o({type:"scroll-page",direction:"down"});break;case Ws:o==null||o({type:"scroll-page",direction:"up"});break;case Bs:o==null||o({type:"scroll-end",direction:"home"});break;case Ks:o==null||o({type:"scroll-end",direction:"end"});break}return R},[o]),y=(0,ae.useCallback)(()=>{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=(0,ae.useCallback)(async E=>{let[R,S]=Qc(E)?await C(E,p.current):Em(E,p.current,n,s),[M,I]=p.current;(R!==M||S!==I)&&x(R,S,!0)},[n,C,s,x]),T=(0,ae.useCallback)(E=>{r.length>0&&Zc(E.key)&&(E.preventDefault(),E.stopPropagation(),b(E.key))},[r,b]),g=(0,ae.useCallback)(E=>{let R=E.target,S=f(R);if(S){let[M,I]=m(S);x(M,I)}},[x]),w=(0,ae.useMemo)(()=>({onClick:g,onFocus:y,onKeyDown:T}),[g,y,T]);(0,ae.useLayoutEffect)(()=>{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(0,ae.useEffect)(()=>{var E;if(D&&u.current===void 0){let R=(E=e.current)==null?void 0:E.querySelector(Yc(0));R&&(R.setAttribute("tabindex","0"),u.current=R)}},[e,D]),w};var ht=require("@vuu-ui/vuu-utils"),At=require("react");var Jt=require("react");var qt=new Map,eu=(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}},Jc=new ResizeObserver(n=>{for(let e of n){let{target:t,borderBoxSize:r,contentBoxSize:o}=e,s=qt.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=eu(t,{height:i,width:l,contentHeight:a,contentWidth:c},f);h!==m&&(d=!0,p[f]=h)}d&&u&&u(p)}}});function tu(n,e,t,r=!1){let o=(0,Jt.useRef)(e),s=(0,Jt.useCallback)(i=>{let{width:l,height:a}=i.getBoundingClientRect(),{clientWidth:c,clientHeight:u}=i;return o.current.reduce((p,d)=>(p[d]=eu(i,{width:l,height:a,contentHeight:u,contentWidth:c},d),p),{})},[]);(0,Jt.useEffect)(()=>{let i=n.current;async function l(){qt.set(i,{measurements:{}}),await document.fonts.ready;let a=qt.get(i);if(a){let c=s(i);a.measurements=c,Jc.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(qt.has(i))throw Error("useResizeObserver attemping to observe same element twice");l()}return()=>{i&&qt.has(i)&&(Jc.unobserve(i),qt.delete(i))}},[s,n]),(0,Jt.useEffect)(()=>{let i=n.current,l=qt.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 Rm=["clientHeight","clientWidth"],nu=n=>Number.isFinite(n),Dm={height:"100%",width:"100%"},Mm=(n,e)=>(0,ht.isValidNumber)(n)&&(0,ht.isValidNumber)(e)?{height:`${n}px`,width:`${e}px`}:Dm,Pm=(n,e)=>{if((0,ht.isValidNumber)(n)&&(0,ht.isValidNumber)(e))return{height:n,width:e}},xr=({defaultHeight:n=0,defaultWidth:e=0,height:t,width:r})=>{let o=(0,At.useRef)(null),[s,i]=(0,At.useState)({css:Mm(t,r),inner:Pm(t,r),outer:{height:t!=null?t:"100%",width:r!=null?r:"100%"}});(0,At.useMemo)(()=>{i(a=>{let{inner:c,outer:u}=a;if((0,ht.isValidNumber)(t)&&(0,ht.isValidNumber)(r)&&c&&u){let{height:p,width:d}=c,{height:f,width:m}=u;if(f!==t||m!==r){let h=(0,ht.isValidNumber)(f)?f-p:0,x=(0,ht.isValidNumber)(m)?m-d:0;return{...a,outer:{height:t,width:r},inner:{height:t-h,width:r-x}}}}return a})},[t,r]);let l=(0,At.useCallback)(({clientWidth:a,clientHeight:c})=>{i(u=>{let{css:p,inner:d,outer:f}=u;return nu(c)&&nu(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 tu(o,Rm,l,!0),{containerRef:o,cssSize:s.css,outerSize:s.outer,innerSize:s.inner}};var Ot=require("@vuu-ui/vuu-utils"),vr=require("react"),{IDX:Lm}=Ot.metadataKeys,km=[],Cr=({selectionModel:n,onSelectionChange:e})=>{let t=(0,vr.useRef)(-1),r=(0,vr.useRef)(km);return(0,vr.useCallback)((s,i,l)=>{let{[Lm]:a}=s,{current:c}=t,{current:u}=r,d=((0,Ot.isRowSelected)(s)?Ot.deselectItem:Ot.selectItem)(n,u,a,i,l,c);r.current=d,t.current=a,e&&e(d)},[e,n])};var G=require("@vuu-ui/vuu-utils"),ru=require("react"),Im=100,ou=G.metadataKeys.count,Am=({serverDataType:n})=>n===void 0,Om=n=>{var e;if((0,G.isTypeDescriptor)(n.type))return(0,G.getCellRenderer)((e=n.type)==null?void 0:e.renderer)},su=(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"},Hm=["int","long","double"],iu=n=>n===void 0?void 0:Hm.includes(n)?"right":"left",Gs=n=>n.type==="columnSettings",Us=n=>n.type==="tableSettings",Nm=(n,e)=>{switch(e.type){case"init":return lu(e);case"moveColumn":return Fm(n,e);case"resizeColumn":return Bm(n,e);case"setTableSchema":return Km(n,e);case"hideColumns":return $m(n,e);case"showColumns":return Vm(n,e);case"pinColumn":return Wm(n,e);case"updateColumnProp":return zn(n,e);case"tableConfig":return au(n,e);default:return console.log(`unhandled action ${e.type}`),n}},Xs=(n,e)=>{let[t,r]=(0,ru.useReducer)(Nm,{tableConfig:n,dataSourceConfig:e},lu);return{columns:t.columns,dispatchColumnAction:r,headings:t.headings}};function lu({dataSourceConfig:n,tableConfig:e}){let t=e.columns.map(Qs(e)),r=t.some(G.isPinned)?(0,G.sortPinnedColumns)(t):t,o={columns:r,headings:(0,G.getTableHeadings)(r)};if(n){let{columns:s,...i}=n;return au(o,{type:"tableConfig",...i})}else return o}var zm=(n,e)=>e==="uppercase"?n.toUpperCase():e==="capitalize"?n[0].toUpperCase()+n.slice(1).toLowerCase():n,Qs=n=>(e,t)=>{let r=su(e,n.tableSchema),{columnDefaultWidth:o=Im,columnFormatHeader:s}=n,{align:i=iu(r),key:l,name:a,label:c=a,width:u=o,...p}=e,d={...p,align:i,CellRenderer:Om(e),label:zm(c,s),key:l!=null?l:t+ou,name:a,originalIdx:t,serverDataType:r,valueFormatter:(0,G.getValueFormatter)(e),width:u};return(0,G.isGroupColumn)(d)&&(d.columns=d.columns.map(f=>Qs(n)(f,f.key))),d};function Fm(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:(0,G.moveItem)(o,e,r)};return n}function $m(n,{columns:e}){return e.some(t=>t.hidden!==!0)?e.reduce((t,r)=>r.hidden!==!0?zn(t,{type:"updateColumnProp",column:r,hidden:!0}):t,n):n}function Vm(n,{columns:e}){return e.some(t=>t.hidden)?e.reduce((t,r)=>r.hidden?zn(t,{type:"updateColumnProp",column:r,hidden:!1}):t,n):n}function Bm(n,{column:e,phase:t,width:r}){let o="updateColumnProp",s=t!=="end";switch(t){case"begin":return zn(n,{type:o,column:e,resizing:s});case"end":return zn(n,{type:o,column:e,resizing:s,width:r});case"resize":return zn(n,{type:o,column:e,width:r});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${t}`)}}function Km(n,{tableSchema:e}){let{columns:t}=n;if(t.some(Am)){let r=t.map(o=>{var i;let s=su(o,e);return{...o,align:(i=o.align)!=null?i:iu(s),serverDataType:s}});return{...n,columns:r,tableSchema:e}}else return{...n,tableSchema:e}}function Wm(n,e){let{columns:t}=n,{column:r,pin:o}=e;return t=(0,G.updateColumn)(t,r.name,{pin:o}),t=(0,G.sortPinnedColumns)(t),console.log({withPins:t}),{...n,columns:t}}function zn(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=(0,G.updateColumn)(t,o.name,c),{...n,columns:t}}function au(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=(0,G.getColumnName)(p),m=d+ou,h=(0,G.findColumn)(u.columns,f);return h?h.key===m?h:{...h,key:m}:Qs(n)({name:p},d)})}),l&&(u={...n,columns:(0,G.applyGroupByToColumns)(u.columns,o,t)}),c&&(u={...n,columns:(0,G.applySortToColumns)(u.columns,s)}),a?u={...n,columns:(0,G.applyFilterToColumns)(u.columns,r)}:u.columns.some(G.isFilteredColumn)&&(u={...n,columns:(0,G.stripFilterFromColumns)(u.columns)}),u}var Se=require("react"),cu=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]},_m=n=>{let{clientHeight:e,clientWidth:t,scrollHeight:r,scrollWidth:o}=n;return[o-t,r-e]},uu=({onAttach:n,onDetach:e})=>{let t=(0,Se.useRef)(null);return(0,Se.useCallback)(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])},du=({onHorizontalScroll:n,onVerticalScroll:e,viewport:t})=>{let r=(0,Se.useRef)(!1),o=(0,Se.useRef)({scrollTop:0,scrollLeft:0}),s=(0,Se.useRef)(null),i=(0,Se.useRef)(null),{maxScrollContainerScrollHorizontal:l,maxScrollContainerScrollVertical:a}=t,c=(0,Se.useCallback)(()=>{let{current:C}=i,{current:y}=s,{current:b}=r;if(b)r.current=!1;else if(C&&y){let[T,g]=cu(y),[w,D]=_m(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=(0,Se.useCallback)(()=>{let{current:C}=i,{current:y}=s,{current:b}=o;if(C&&y){let{scrollLeft:T,scrollTop:g}=C,[w,D]=cu(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=(0,Se.useCallback)(C=>{s.current=C,C.addEventListener("scroll",c,{passive:!0})},[c]),d=(0,Se.useCallback)(C=>{s.current=null,C.removeEventListener("scroll",c)},[c]),f=(0,Se.useCallback)(C=>{i.current=C,C.addEventListener("scroll",u,{passive:!0})},[u]),m=(0,Se.useCallback)(C=>{i.current=null,C.removeEventListener("scroll",u)},[u]),h=uu({onAttach:f,onDetach:m}),x=uu({onAttach:p,onDetach:d}),v=(0,Se.useCallback)(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}};var gt=require("react"),Co=require("@vuu-ui/vuu-utils"),Gm=15e5,Um={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},Xm=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}},Tr=({columns:n,headerHeight:e,headings:t,rowCount:r,rowHeight:o,size:s})=>{let i=(0,gt.useRef)(0),a=Math.min(r,Gm)*o,u=r*o-a,{pinnedWidthLeft:p,pinnedWidthRight:d,unpinnedWidth:f}=(0,gt.useMemo)(()=>Xm(n),[n]),[m,h]=(0,gt.useMemo)(()=>(0,Co.actualRowPositioning)(o),[o]),[x,v]=(0,gt.useMemo)(()=>u?(0,Co.virtualRowPositioning)(o,u,i):[m,h],[h,m,u,o]),C=(0,gt.useCallback)(y=>{i.current=y},[]);return(0,gt.useMemo)(()=>{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 Um},[s,t.length,p,f,d,a,e,o,v,x,C])};var wr=require("@vuu-ui/vuu-utils"),He=require("react"),pu=({columns:n,getRowAtPosition:e,setRange:t,viewportMeasurements:r})=>{let o=(0,He.useRef)(-1),{rowCount:s,contentWidth:i,maxScrollContainerScrollHorizontal:l}=r,a=i-l,c=(0,He.useRef)(0),[u,p]=(0,He.useMemo)(()=>(0,wr.getColumnsInViewport)(n,c.current,c.current+a),[a,n]),d=(0,He.useRef)(p);(0,He.useEffect)(()=>{m(u)},[u]);let[f,m]=(0,He.useState)(u),h=(0,He.useCallback)(v=>{c.current=v;let[C,y]=(0,wr.getColumnsInViewport)(n,v,v+a);(0,wr.itemsChanged)(f,C)&&(d.current=y,m(C))},[a,n,f]),x=(0,He.useCallback)(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 Qm=[],{KEY:Zm,IS_EXPANDED:fu,IS_LEAF:mu}=st.metadataKeys,gu=({config:n,dataSource:e,headerHeight:t,onConfigChange:r,onFeatureEnabled:o,onFeatureInvocation:s,onSelectionChange:i,renderBufferSize:l=0,rowHeight:a,selectionModel:c,...u})=>{var re,J;let[p,d]=(0,ne.useState)(e.size),f=(0,ne.useRef)(!1),m=(0,ne.useRef)();if(m.current=e,e===void 0)throw Error("no data source provided to Vuu Table");let h=xr(u),x=(0,ne.useCallback)(W=>{d(W)},[]),{columns:v,dispatchColumnAction:C,headings:y}=Xs(n,e.config),{getRowAtPosition:b,getRowOffset:T,setPctScrollTop:g,...w}=Tr({columns:v,headerHeight:t,headings:y,rowCount:p,rowHeight:a,size:h.innerSize}),D=(0,ne.useCallback)(({tableSchema:W})=>{W?(f.current=!0,C({type:"setTableSchema",tableSchema:W})):console.log("usbscription message with no schema")},[C]),P=(0,ne.useCallback)(W=>{e.select(W),i==null||i(W)},[e,i]),E=Cr({onSelectionChange:P,selectionModel:c}),{data:R,getSelectedRows:S,range:M,setRange:I}=Gc({dataSource:e,onFeatureEnabled:o,onFeatureInvocation:s,onSubscribed:D,onSizeChange:x,renderBufferSize:l,viewportRowCount:w.rowCount}),L=(0,ne.useRef)();L.current=R;let k=(0,ne.useCallback)(W=>{f.current=!0,console.log("onPersistentColumnOperation, dispatchColumnAction",{action:W}),C(W)},[C]),O=Qn({dataSource:e,onPersistentColumnOperation:k}),A=(0,ne.useCallback)((W,ee=!1,ce)=>{e&&(e.sort=(0,st.applySort)(e.sort,W,ee,ce))},[e]),N=(0,ne.useCallback)((W,ee,ce)=>{let te=v.find(be=>be.name===ee);if(te)W==="end"&&(f.current=!0),C({type:"resizeColumn",phase:W,column:te,width:ce});else throw Error(`useDataTable.handleColumnResize, column ${ee} not found`)},[v,C]),H=(0,ne.useCallback)((W,ee)=>{let ce=(0,st.isJsonGroup)(ee,W),te=W[Zm];if(W[fu]){if(e.closeTreeNode(te,!0),ce){let be=v.indexOf(ee);e.getRowsAtDepth(be+1).some(ye=>ye[fu]||ye[mu])||C({type:"hideColumns",columns:v.slice(be+2)})}}else if(e.openTreeNode(te),ce){let be=e.getChildRows(te),ke=v.indexOf(ee)+1,ye=[v[ke]];be.some(Ie=>Ie[mu])&&ye.push(v[ke+1]),ye.some(Ie=>Ie.hidden)&&C({type:"showColumns",columns:ye})}},[v,e,C]),{onVerticalScroll:B,onHorizontalScroll:z,columnsWithinViewport:K,virtualColSpan:_}=pu({columns:v,getRowAtPosition:b,setRange:I,viewportMeasurements:w}),q=(0,ne.useCallback)((W,ee)=>{g(ee),B(W)},[B,g]),{requestScroll:F,...$}=du({onHorizontalScroll:z,onVerticalScroll:q,viewport:w,viewportHeight:((J=(re=h.innerSize)==null?void 0:re.height)!=null?J:0)-t}),Q=qc({columnCount:v.length,containerRef:h.containerRef,data:R,requestScroll:F,rowCount:e==null?void 0:e.size,viewportRange:M}),ge=(0,ne.useCallback)(W=>{W?e&&e.groupBy.includes(W.name)&&(e.groupBy=e.groupBy.filter(ee=>ee!==W.name)):e.groupBy=[]},[e]),tt=(0,ne.useCallback)((W,ee)=>{let ce=e.columns[W],te=(0,st.moveItem)(e.columns,ce,ee);te!==e.columns&&(e.columns=te,C({type:"tableConfig",columns:te}))},[e,C]),U=Uc({onDrop:tt});(0,ne.useEffect)(()=>{m.current&&(f.current=!0,C({type:"init",tableConfig:n,dataSourceConfig:m.current.config}))},[n,C]),(0,ne.useEffect)(()=>{e.on("config",(W,ee)=>{f.current=!0,C({type:"tableConfig",...W,confirmed:ee})})},[e,C]),(0,ne.useMemo)(()=>{f.current&&(r==null||r({...n,columns:v}),f.current=!1)},[v,n,r]);let[Z]=(0,hu.useContextMenu)(),se=(0,ne.useCallback)(W=>{var ye;let{current:ee}=L,{current:ce}=m,te=W.target,be=te==null?void 0:te.closest("div[role='cell']"),ke=te==null?void 0:te.closest(".vuuTableRow");if(be&&ke&&ee&&ce){let{columns:Ie,selectedRowsCount:Nt}=ce,lt=(0,st.buildColumnMap)(Ie),Gn=parseInt((ye=ke.ariaRowIndex)!=null?ye:"-1"),on=Array.from(ke.childNodes).indexOf(be),Ke=ee.find(([Un])=>Un===Gn),sn=Ie[on];Z(W,"grid",{columnMap:lt,columnName:sn,row:Ke,selectedRows:Nt===0?Qm:S(),viewport:e==null?void 0:e.viewport})}},[e==null?void 0:e.viewport,S,Z]);return{columns:v,columnsWithinViewport:K,containerMeasurements:h,containerProps:Q,data:R,dispatchColumnAction:C,getRowOffset:T,handleContextMenuAction:O,headings:y,onColumnResize:N,onContextMenu:se,onRemoveColumnFromGroupBy:ge,onRowClick:E,onSort:A,onToggleGroup:H,virtualColSpan:_,scrollProps:$,rowCount:p,viewportMeasurements:w,...U}};var yu=V(require("classnames"));var xu=require("@vuu-ui/vuu-utils"),bt=require("react/jsx-runtime"),en="vuuTable",Ym=({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=(0,To.useIdMemo)(i),{containerMeasurements:{containerRef:b,innerSize:T,outerSize:g},containerProps:w,dispatchColumnAction:D,draggable:P,draggedItemIndex:E,handleContextMenuAction:R,scrollProps:S,viewportMeasurements:M,...I}=gu({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=(0,yu.default)(en,e,{[`${en}-zebra`]:v,[`${en}-loading`]:(0,xu.isDataLoading)(I.columns)});return(0,bt.jsx)(bu.ContextMenuProvider,{menuActionHandler:R,menuBuilder:Xn(r),children:(0,bt.jsxs)("div",{...C,...w,className:k,id:y,ref:b,style:L,tabIndex:-1,children:[T?(0,bt.jsx)("div",{className:`${en}-scrollbarContainer`,ref:S.scrollbarContainerRef,children:(0,bt.jsx)("div",{className:`${en}-scrollbarContent`})}):null,T?(0,bt.jsxs)("div",{className:`${en}-contentContainer`,ref:S.contentContainerRef,children:[(0,bt.jsx)(Mc,{...I,headerHeight:o,tableId:y}),P]}):null,n&&T?(0,bt.jsx)(To.Button,{className:`${en}-settings`,"data-icon":"settings",onClick:p,variant:"secondary"}):null]})})};var vu=V(require("classnames")),$n=require("@vuu-ui/vuu-utils");var Fn=require("react/jsx-runtime"),Sr="vuuJsonCell",{IS_EXPANDED:jm,KEY:qm}=$n.metadataKeys,Jm=n=>{let e=n.lastIndexOf("|");return e===-1?"":n.slice(e+1)},eh=({column:n,row:e})=>{let{key:t}=n,r=e[t],o=!1;(0,$n.isJsonAttribute)(r)&&(r=r.slice(0,-1),o=!0);let s=Jm(e[qm]),i=(0,vu.default)({[`${Sr}-name`]:s===r,[`${Sr}-value`]:s!==r,[`${Sr}-group`]:o});if(o){let l=e[jm]?"minus-box":"plus-box";return(0,Fn.jsxs)("span",{className:i,children:[(0,Fn.jsx)("span",{className:`${Sr}-value`,children:r}),(0,Fn.jsx)("span",{className:`${Sr}-toggle`,"data-icon":l})]})}else return r?(0,Fn.jsx)("span",{className:i,children:r}):null};(0,$n.registerComponent)("json",eh,"cell-renderer",{});var Yu=require("@vuu-ui/vuu-popups"),ju=require("@vuu-ui/vuu-utils"),qu=require("react");var wo=require("react");var Cu=require("@vuu-ui/vuu-utils"),Tu=V(require("classnames")),wu=require("react"),Vn=(n,e,t)=>(0,wu.useMemo)(()=>{let r=(0,Tu.default)(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=(0,Cu.getColumnStyle)(n);return{className:r,style:o}},[n,e,t]);var Su=require("@vuu-ui/vuu-popups"),Eu=V(require("classnames")),tn=require("react");var Du=require("react/jsx-runtime"),th=n=>{if(n){let{bottom:e,left:t}=n.getBoundingClientRect();return{x:t,y:e+6}}},Ru=({className:n,column:e,...t})=>{let r=(0,tn.useRef)(null),[o,s]=(0,tn.useState)(!1),[i]=(0,Su.useContextMenu)(),l=(0,tn.useCallback)(()=>{s(!1)},[]),a=(0,tn.useCallback)(c=>{s(!0),i(c,"column-menu",{column:e,ContextMenuProps:{onClose:l,position:th(r.current)}})},[e,l,i]);return(0,Du.jsx)("span",{...t,className:(0,Eu.default)("vuuTable-columnMenu",n,{"vuuTable-columnMenu-open":o}),"data-icon":"more-vert",onClick:a,ref:r})};var nn=require("react/jsx-runtime"),Mu=({classBase:n,column:e,onClick:t,onResize:r,idx:o})=>{let s=(0,wo.useRef)(null),{isResizing:i,...l}=Zt({column:e,onResize:r,rootRef:s}),a=`${n}-col-header`,c=(0,wo.useCallback)(d=>!i&&(t==null?void 0:t(d)),[i,t]),{className:u,style:p}=Vn(e,a,!0);return(0,nn.jsxs)("div",{className:u,"data-idx":o,onClick:c,ref:s,role:"cell",style:p,children:[(0,nn.jsx)(Ru,{column:e}),(0,nn.jsx)("div",{className:`${a}-label`,children:e.name}),(0,nn.jsx)(po,{sorted:e.sorted}),e.resizeable!==!1?(0,nn.jsx)(zt,{...l}):null]})};var Kn=require("@vuu-ui/vuu-utils"),Au=V(require("classnames")),Ro=require("react");var Lu=require("react/jsx-runtime"),Pu=({column:n,row:e})=>{let{className:t,style:r}=Vn(n,"vuuTableNextCell");return(0,Lu.jsx)("div",{className:t,role:"cell",style:r,children:e[n.key]})};var So=require("@vuu-ui/vuu-utils"),ku=require("react");var Bn=require("react/jsx-runtime"),{IS_LEAF:nh}=So.metadataKeys,Iu=({column:n,onClick:e,row:t})=>{let{columns:r}=n,[o,s]=(0,So.getGroupValueAndOffset)(r,t),{className:i,style:l}=Vn(n,"vuuTable2-groupCell"),a=(0,ku.useCallback)(p=>{e==null||e(p,n)},[n,e]),c=t[nh],u=Array(s).fill(0).map((p,d)=>(0,Bn.jsx)("span",{className:"vuuTable2-groupCell-spacer"},d));return(0,Bn.jsxs)("div",{className:i,role:"cell",style:l,onClick:c?void 0:a,children:[u,c?null:(0,Bn.jsx)("span",{className:"vuuTable2-groupCell-toggle","data-icon":"vuu-triangle-right"}),(0,Bn.jsx)("span",{children:o})]})};var Eo=require("react/jsx-runtime"),Ou=require("react"),{IDX:rh,IS_EXPANDED:oh,SELECTED:sh}=Kn.metadataKeys,Ht="vuuTableNextRow",Zs=(0,Ro.memo)(({className:n,columnMap:e,columns:t,row:r,offset:o,onClick:s,onToggleGroup:i,...l})=>{let{[rh]:a,[oh]:c,[sh]:u}=r,p=(0,Ro.useCallback)(v=>{let C=v.shiftKey,y=v.ctrlKey||v.metaKey;s==null||s(r,C,y)},[s,r]),{True:d,First:f,Last:m}=Kn.RowSelected,h=(0,Au.default)(Ht,n,{[`${Ht}-even`]:a%2===0,[`${Ht}-expanded`]:c,[`${Ht}-selected`]:u&d,[`${Ht}-selectedStart`]:u&f,[`${Ht}-selectedEnd`]:u&m}),x=typeof o=="number"?{transform:`translate3d(0px, ${o}px, 0px)`}:void 0;return(0,Ou.createElement)("div",{...l,key:`row-${r[0]}`,role:"row",className:h,onClick:p,style:x},(0,Eo.jsx)("span",{className:`${Ht}-selectionDecorator vuuStickyLeft`}),t.map(v=>{let y=(0,Kn.isGroupColumn)(v)?Iu:Pu;return(0,Eo.jsx)(y,{column:v,row:r},v.key)}),(0,Eo.jsx)("span",{className:`${Ht}-selectionDecorator vuuStickyRight`}))});Zs.displayName="Row";var Qu=require("@vuu-ui/vuu-popups"),rn=require("@vuu-ui/vuu-utils"),Re=require("react");var Wn=require("react"),Hu=({dataSource:n,initialRange:e})=>{let[t,r]=(0,Wn.useState)([]);(0,Wn.useMemo)(()=>{n==null||n.subscribe({range:e},s=>{s.type==="viewport-update"&&s.rows&&r(s.rows)})},[n,e]);let o=(0,Wn.useCallback)(s=>{n.range=s},[n]);return{data:t,setRange:o}};var Do=require("react"),Nu=n=>{let e=(0,Do.useRef)(n);return(0,Do.useMemo)(()=>e.current,[])};var X=require("@vuu-ui/vuu-utils"),zu=require("react"),{info:Ys}=(0,X.logger)("useTableModel"),ih=100,Fu=X.metadataKeys.count,lh=({serverDataType:n})=>n===void 0,ah=n=>{var e;if((0,X.isTypeDescriptor)(n.type))return(0,X.getCellRenderer)((e=n.type)==null?void 0:e.renderer)},ch=(n,e)=>{var r;let t=e.columns.find(({name:o})=>o===n.name);return t?t.serverDataType:(r=n.serverDataType)!=null?r:"string"},uh=["int","long","double"],$u=n=>n===void 0?void 0:uh.includes(n)?"right":"left",dh=(n,e)=>{switch(Ys==null||Ys(`GridModelReducer ${e.type}`),e.type){case"init":return Bu(e);case"moveColumn":return fh(n,e);case"resizeColumn":return gh(n,e);case"setTableSchema":return bh(n,e);case"hideColumns":return mh(n,e);case"showColumns":return hh(n,e);case"pinColumn":return yh(n,e);case"updateColumnProp":return Er(n,e);case"tableConfig":return Wu(n,e);default:return console.log(`unhandled action ${e.type}`),n}},Vu=(n,e)=>{let[t,r]=(0,zu.useReducer)(dh,{tableConfig:n,dataSourceConfig:e},Bu);return{columns:t.columns,dispatchColumnAction:r,headings:t.headings}};function Bu({dataSourceConfig:n,tableConfig:e}){let t=e.columns.map(Ku(e)),r=t.some(X.isPinned)?(0,X.sortPinnedColumns)(t):t,o={columns:r,headings:(0,X.getTableHeadings)(r)};if(n){let{columns:s,...i}=n;return Wu(o,{type:"tableConfig",...i})}else return o}var ph=(n,e)=>e==="uppercase"?n.toUpperCase():e==="capitalize"?n[0].toUpperCase()+n.slice(1).toLowerCase():n,Ku=n=>(e,t)=>{let{columnDefaultWidth:r=ih,columnFormatHeader:o}=n,{align:s=$u(e.serverDataType),key:i,name:l,label:a=l,width:c=r,...u}=e,p={...u,align:s,CellRenderer:ah(e),label:ph(a,o),key:i!=null?i:t+Fu,name:l,originalIdx:t,valueFormatter:(0,X.getValueFormatter)(e),width:c};return(0,X.isGroupColumn)(p)&&(p.columns=p.columns.map(d=>Ku(n)(d,d.key))),p};function fh(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:ui(o,s,r)}}return n}function mh(n,{columns:e}){return e.some(t=>t.hidden!==!0)?e.reduce((t,r)=>r.hidden!==!0?Er(t,{type:"updateColumnProp",column:r,hidden:!0}):t,n):n}function hh(n,{columns:e}){return e.some(t=>t.hidden)?e.reduce((t,r)=>r.hidden?Er(t,{type:"updateColumnProp",column:r,hidden:!1}):t,n):n}function gh(n,{column:e,phase:t,width:r}){let o="updateColumnProp",s=t!=="end";switch(t){case"begin":case"end":return Er(n,{type:o,column:e,resizing:s});case"resize":return Er(n,{type:o,column:e,width:r});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${t}`)}}function bh(n,{tableSchema:e}){let{columns:t}=n;if(t.some(lh)){let r=t.map(o=>{var i;let s=ch(o,e);return{...o,align:(i=o.align)!=null?i:$u(s),serverDataType:s}});return{...n,columns:r}}else return n}function yh(n,e){let{columns:t}=n,{column:r,pin:o}=e,s=t.find(i=>i.name===r.name);return s?(t=_n(t,{...s,pin:o}),t=(0,X.sortPinnedColumns)(t),{...n,columns:t}):n}function Er(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=_n(t,{...c,align:r})),typeof i=="string"&&(t=_n(t,{...c,label:i})),typeof l=="boolean"&&(t=_n(t,{...c,resizing:l})),typeof s=="boolean"&&(t=_n(t,{...c,hidden:s})),typeof a=="number"&&(t=_n(t,{...c,width:a}))),{...n,columns:t}}function Wu(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=(0,X.getColumnName)(p),m=d+Fu,h=(0,X.findColumn)(u.columns,f);if(h)return h.key===m?h:{...h,key:m};throw Error(`useTableModel column ${p} not found`)})}),l&&(u={...n,columns:(0,X.applyGroupByToColumns)(u.columns,o,t)}),c&&(u={...n,columns:(0,X.applySortToColumns)(u.columns,s)}),a?u={...n,columns:(0,X.applyFilterToColumns)(u.columns,r)}:u.columns.some(X.isFilteredColumn)&&(u={...n,columns:(0,X.stripFilterFromColumns)(u.columns)}),u}function _n(n,e){return n.map(t=>t.name===e.name?e:t)}var Ee=require("react"),_u=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]},Gu=({onAttach:n,onDetach:e})=>{let t=(0,Ee.useRef)(null);return(0,Ee.useCallback)(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])},Uu=({maxScrollLeft:n,maxScrollTop:e,onHorizontalScroll:t,onVerticalScroll:r})=>{let o=(0,Ee.useRef)(!1),s=(0,Ee.useRef)({scrollTop:0,scrollLeft:0}),i=(0,Ee.useRef)(null),l=(0,Ee.useRef)(null),a=(0,Ee.useCallback)(()=>{let{current:v}=l,{current:C}=i,{current:y}=o;if(y)o.current=!1;else if(v&&C){let[b,T]=_u(C),g=Math.round(b*n),w=Math.round(T*e);v.scrollTo({left:g,top:w,behavior:"auto"})}},[n,e]),c=(0,Ee.useCallback)(()=>{let{current:v}=l,{current:C}=i,{current:y}=s;if(v&&C){let{scrollLeft:b,scrollTop:T}=v,[g,w]=_u(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=(0,Ee.useCallback)(v=>{i.current=v,v.addEventListener("scroll",a,{passive:!0})},[a]),p=(0,Ee.useCallback)(v=>{i.current=null,v.removeEventListener("scroll",a)},[a]),d=(0,Ee.useCallback)(v=>{l.current=v,v.addEventListener("scroll",c,{passive:!0})},[c]),f=(0,Ee.useCallback)(v=>{l.current=null,v.removeEventListener("scroll",c)},[c]),m=Gu({onAttach:d,onDetach:f}),h=Gu({onAttach:u,onDetach:p}),x=(0,Ee.useCallback)(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}};var Mo=require("react"),Xu=({columns:n,getRowAtPosition:e,setRange:t,viewportMeasurements:r})=>{let o=(0,Mo.useRef)(-1),{contentWidth:s,rowCount:i}=r;return{onVerticalScroll:(0,Mo.useCallback)(a=>{let c=e(a);c!==o.current&&(o.current=c,t({from:c,to:c+i}))},[e,t,i])}};var Zu=({config:n,dataSource:e,headerHeight:t,onConfigChange:r,onFeatureEnabled:o,onFeatureInvocation:s,onSelectionChange:i,rowHeight:l,selectionModel:a,...c})=>{let[u]=(0,Re.useState)(e.size),p=$e();if(console.log({dispatchLayoutAction:p.toString()}),e===void 0)throw Error("no data source provided to Vuu Table");let d=(0,Re.useMemo)(()=>Xn(e),[e]),{containerRef:f,...m}=xr(c),{columns:h,dispatchColumnAction:x,headings:v}=Vu(n,e.config),C=(0,Re.useMemo)(()=>(0,rn.buildColumnMap)(n.columns.map(z=>z.name)),[n.columns]);(0,Re.useEffect)(()=>{e.on("config",(z,K)=>{x({type:"tableConfig",...z,confirmed:K})})},[e,x]);let{getRowAtPosition:y,getRowOffset:b,setPctScrollTop:T,...g}=Tr({columns:h,headerHeight:t,headings:v,rowCount:u,rowHeight:l,size:m.innerSize});console.log(`useTable ${g.maxScrollContainerScrollHorizontal}, ${g.maxScrollContainerScrollVertical}`);let w=Nu({from:0,to:g.rowCount+1}),{data:D,setRange:P}=Hu({dataSource:e,initialRange:w});(0,Re.useMemo)(()=>{let{range:{from:z,to:K}}=e;g.rowCount!==K-1-z&&(e.range={from:z,to:z+g.rowCount+1})},[e,g.rowCount]);let E=(0,Re.useCallback)(z=>{Gs(z)?p({type:"set-props",path:"#context-panel",props:{expanded:!0,context:"column-settings",column:z.column,title:"Column Settings"}}):Us(z)?p({type:"set-props",path:"#context-panel",props:{expanded:!0,context:"table-settings",title:"DataGrid Settings"}}):x(z)},[x,p]),R=Qn({dataSource:e,onPersistentColumnOperation:E}),{onVerticalScroll:S}=Xu({columns:h,getRowAtPosition:y,setRange:P,viewportMeasurements:g}),M=(0,Re.useCallback)(z=>{S(z)},[S]),{requestScroll:I,...L}=Uu({maxScrollLeft:g.maxScrollContainerScrollHorizontal,maxScrollTop:g.maxScrollContainerScrollVertical,onVerticalScroll:M}),[k]=(0,Qu.useContextMenu)(),O=(0,Re.useCallback)(z=>{let K=z.target,_=K==null?void 0:K.closest("div[role='cell']"),q=K==null?void 0:K.closest("div[role='row']");if(_&&q){let F=(0,rn.buildColumnMap)(h),$=Array.from(q.childNodes).indexOf(_),Q=h[$];k(z,"grid",{columnMap:F,columnName:Q})}},[h,k]),A=(0,Re.useCallback)((z,K=!1,_)=>{e&&(e.sort=(0,rn.applySort)(e.sort,z,K,_))},[e]),N=(0,Re.useCallback)(z=>{var Q;let _=z.target.closest(".TableNext-col-header"),q=parseInt((Q=_==null?void 0:_.dataset.idx)!=null?Q:"-1"),F=(0,rn.visibleColumnAtIndex)(h,q),$=z.shiftKey;F&&A(F,$)},[h,A]),H=(0,Re.useCallback)(z=>{e.select(z),i==null||i(z)},[e,i]),B=Cr({onSelectionChange:H,selectionModel:a});return{columnMap:C,columns:h,containerRef:f,containerMeasurements:m,data:D,handleContextMenuAction:R,menuBuilder:d,onContextMenu:O,onHeaderClick:N,onRowClick:B,scrollProps:L,viewportMeasurements:g}};var Le=require("react/jsx-runtime"),it="vuuTableNext",{IDX:xh,RENDER_IDX:vh}=ju.metadataKeys,Ju=({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}=Zu({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;"),(0,qu.useEffect)(()=>{console.log("%cTableNext actual render","background-color:red;color: white;font-weight:bold;")}),(0,Le.jsx)(Yu.ContextMenuProvider,{menuActionHandler:w,menuBuilder:E,children:I?(0,Le.jsx)("div",{...x,className:it,style:L(),ref:T}):(0,Le.jsxs)("div",{...x,className:it,style:L(),ref:T,children:[(0,Le.jsx)("div",{className:`${it}-scrollbarContainer`,ref:R.scrollbarContainerRef,children:(0,Le.jsx)("div",{className:`${it}-scrollbarContent`})}),(0,Le.jsx)("div",{className:`${it}-contentContainer`,ref:R.contentContainerRef,children:(0,Le.jsxs)("div",{...M,className:`${it}-table`,children:[(0,Le.jsx)("div",{className:`${it}-col-headings`,children:(0,Le.jsx)("div",{className:`${it}-col-headers`,role:"row",children:C.map((k,O)=>(0,Le.jsx)(Mu,{classBase:it,column:k,idx:O,onClick:D},k.name))})}),(0,Le.jsx)("div",{className:`${it}-body`,children:g.map(k=>(0,Le.jsx)(Zs,{columnMap:v,columns:C,onClick:P,row:k,offset:d*k[xh]+r},k[vh]))})]})})]})})};
18
21
  //# sourceMappingURL=index.js.map